Skip to content

Instantly share code, notes, and snippets.

@Olanetsoft
Created January 11, 2024 22:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Olanetsoft/30aaac3fa4f5d4b939a69bd402629e67 to your computer and use it in GitHub Desktop.
Save Olanetsoft/30aaac3fa4f5d4b939a69bd402629e67 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.22+commit.4fc1097e.js&optimize=false&runs=200&gist=
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610aa2806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a082311461013b578063a457c2d71461016b578063a9059cbb1461019b578063dd62ed3e146101cb57610088565b8063095ea7b31461008d57806318160ddd146100bd57806323b872dd146100db578063395093511461010b575b600080fd5b6100a760048036038101906100a291906108a4565b6101fb565b6040516100b49190610902565b60405180910390f35b6100c5610212565b6040516100d2919061091d565b60405180910390f35b6100f560048036038101906100f09190610851565b610218565b6040516101029190610902565b60405180910390f35b610125600480360381019061012091906108a4565b6102ef565b6040516101329190610902565b60405180910390f35b610155600480360381019061015091906107e4565b61038d565b604051610162919061091d565b60405180910390f35b610185600480360381019061018091906108a4565b6103a5565b6040516101929190610902565b60405180910390f35b6101b560048036038101906101b091906108a4565b610443565b6040516101c29190610902565b60405180910390f35b6101e560048036038101906101e09190610811565b61045a565b6040516101f2919061091d565b60405180910390f35b600061020833848461047f565b6001905092915050565b60025481565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146102d8576102d7853385846102d2919061098e565b61047f565b5b6102e3858585610608565b60019150509392505050565b6000610383338484600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461037e9190610938565b61047f565b6001905092915050565b60006020528060005260406000206000915090505481565b6000610439338484600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610434919061098e565b61047f565b6001905092915050565b6000610450338484610608565b6001905092915050565b6001602052816000526040600020602052806000526040600020600091509150505481565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806104e65750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561051d576040517f6d187b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516105fb919061091d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061066f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156106a6576040517f6d187b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106f4919061098e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107499190610938565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107ad919061091d565b60405180910390a3505050565b6000813590506107c981610a3e565b92915050565b6000813590506107de81610a55565b92915050565b6000602082840312156107fa576107f9610a39565b5b6000610808848285016107ba565b91505092915050565b6000806040838503121561082857610827610a39565b5b6000610836858286016107ba565b9250506020610847858286016107ba565b9150509250929050565b60008060006060848603121561086a57610869610a39565b5b6000610878868287016107ba565b9350506020610889868287016107ba565b925050604061089a868287016107cf565b9150509250925092565b600080604083850312156108bb576108ba610a39565b5b60006108c9858286016107ba565b92505060206108da858286016107cf565b9150509250929050565b6108ed816109d4565b82525050565b6108fc81610a00565b82525050565b600060208201905061091760008301846108e4565b92915050565b600060208201905061093260008301846108f3565b92915050565b600061094382610a00565b915061094e83610a00565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561098357610982610a0a565b5b828201905092915050565b600061099982610a00565b91506109a483610a00565b9250828210156109b7576109b6610a0a565b5b828203905092915050565b60006109cd826109e0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b610a47816109c2565b8114610a5257600080fd5b50565b610a5e81610a00565b8114610a6957600080fd5b5056fea2646970667358221220619a2fe644997eb7b024365d2c392c7cc7003c89fddf8eecacdc7b3fef0176e364736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAA2 DUP1 PUSH2 0x20 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 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x13B JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1CB JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xDB JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x10B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x1FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x902 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0x212 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD2 SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF0 SWAP2 SWAP1 PUSH2 0x851 JUMP JUMPDEST PUSH2 0x218 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x902 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x125 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x2EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x132 SWAP2 SWAP1 PUSH2 0x902 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x155 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x150 SWAP2 SWAP1 PUSH2 0x7E4 JUMP JUMPDEST PUSH2 0x38D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x180 SWAP2 SWAP1 PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x3A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x192 SWAP2 SWAP1 PUSH2 0x902 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B0 SWAP2 SWAP1 PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C2 SWAP2 SWAP1 PUSH2 0x902 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x45A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x208 CALLER DUP5 DUP5 PUSH2 0x47F JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x2D8 JUMPI PUSH2 0x2D7 DUP6 CALLER DUP6 DUP5 PUSH2 0x2D2 SWAP2 SWAP1 PUSH2 0x98E JUMP JUMPDEST PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x2E3 DUP6 DUP6 DUP6 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x383 CALLER DUP5 DUP5 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x938 JUMP JUMPDEST PUSH2 0x47F JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x439 CALLER DUP5 DUP5 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x434 SWAP2 SWAP1 PUSH2 0x98E JUMP JUMPDEST PUSH2 0x47F JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x450 CALLER DUP5 DUP5 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x4E6 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x51D JUMPI PUSH1 0x40 MLOAD PUSH32 0x6D187B2800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x5FB SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x66F JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x6A6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6D187B2800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x6F4 SWAP2 SWAP1 PUSH2 0x98E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x749 SWAP2 SWAP1 PUSH2 0x938 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x7AD SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7C9 DUP2 PUSH2 0xA3E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7DE DUP2 PUSH2 0xA55 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7FA JUMPI PUSH2 0x7F9 PUSH2 0xA39 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x808 DUP5 DUP3 DUP6 ADD PUSH2 0x7BA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x828 JUMPI PUSH2 0x827 PUSH2 0xA39 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x836 DUP6 DUP3 DUP7 ADD PUSH2 0x7BA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x847 DUP6 DUP3 DUP7 ADD PUSH2 0x7BA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x86A JUMPI PUSH2 0x869 PUSH2 0xA39 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x878 DUP7 DUP3 DUP8 ADD PUSH2 0x7BA JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x889 DUP7 DUP3 DUP8 ADD PUSH2 0x7BA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x89A DUP7 DUP3 DUP8 ADD PUSH2 0x7CF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8BB JUMPI PUSH2 0x8BA PUSH2 0xA39 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x8C9 DUP6 DUP3 DUP7 ADD PUSH2 0x7BA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x8DA DUP6 DUP3 DUP7 ADD PUSH2 0x7CF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x8ED DUP2 PUSH2 0x9D4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x8FC DUP2 PUSH2 0xA00 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x917 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x8E4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x932 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x8F3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x943 DUP3 PUSH2 0xA00 JUMP JUMPDEST SWAP2 POP PUSH2 0x94E DUP4 PUSH2 0xA00 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x983 JUMPI PUSH2 0x982 PUSH2 0xA0A JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x999 DUP3 PUSH2 0xA00 JUMP JUMPDEST SWAP2 POP PUSH2 0x9A4 DUP4 PUSH2 0xA00 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x9B7 JUMPI PUSH2 0x9B6 PUSH2 0xA0A JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CD DUP3 PUSH2 0x9E0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA47 DUP2 PUSH2 0x9C2 JUMP JUMPDEST DUP2 EQ PUSH2 0xA52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xA5E DUP2 PUSH2 0xA00 JUMP JUMPDEST DUP2 EQ PUSH2 0xA69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH2 0x9A2F 0xE6 DIFFICULTY SWAP10 PUSH31 0xB7B024365D2C392C7CC7003C89FDDF8EECACDC7B3FEF0176E364736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "1320:5825:1:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_approve_413": {
"entryPoint": 1151,
"id": 413,
"parameterSlots": 3,
"returnSlots": 0
},
"@_transfer_295": {
"entryPoint": 1544,
"id": 295,
"parameterSlots": 3,
"returnSlots": 0
},
"@allowance_98": {
"entryPoint": 1114,
"id": 98,
"parameterSlots": 0,
"returnSlots": 0
},
"@approve_150": {
"entryPoint": 507,
"id": 150,
"parameterSlots": 2,
"returnSlots": 1
},
"@balanceOf_91": {
"entryPoint": 909,
"id": 91,
"parameterSlots": 0,
"returnSlots": 0
},
"@decreaseAllowance_249": {
"entryPoint": 933,
"id": 249,
"parameterSlots": 2,
"returnSlots": 1
},
"@increaseAllowance_222": {
"entryPoint": 751,
"id": 222,
"parameterSlots": 2,
"returnSlots": 1
},
"@totalSupply_101": {
"entryPoint": 530,
"id": 101,
"parameterSlots": 0,
"returnSlots": 0
},
"@transferFrom_195": {
"entryPoint": 536,
"id": 195,
"parameterSlots": 3,
"returnSlots": 1
},
"@transfer_129": {
"entryPoint": 1091,
"id": 129,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 1978,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1999,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 2020,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address": {
"entryPoint": 2065,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_addresst_uint256": {
"entryPoint": 2129,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 2212,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 2276,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 2291,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 2306,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 2333,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 2360,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 2446,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 2498,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 2516,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 2528,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 2560,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 2570,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 2617,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 2622,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 2645,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4587:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:2"
},
"nodeType": "YulFunctionCall",
"src": "78:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:2"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "107:26:2"
},
"nodeType": "YulFunctionCall",
"src": "107:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:2"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:2",
"type": ""
}
],
"src": "7:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "204:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "214:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "236:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "223:12:2"
},
"nodeType": "YulFunctionCall",
"src": "223:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "214:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "279:5:2"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "252:26:2"
},
"nodeType": "YulFunctionCall",
"src": "252:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "252:33:2"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "182:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "190:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "198:5:2",
"type": ""
}
],
"src": "152:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "363:263:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "409:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "411:77:2"
},
"nodeType": "YulFunctionCall",
"src": "411:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "411:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "384:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "393:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "380:3:2"
},
"nodeType": "YulFunctionCall",
"src": "380:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "405:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "376:3:2"
},
"nodeType": "YulFunctionCall",
"src": "376:32:2"
},
"nodeType": "YulIf",
"src": "373:119:2"
},
{
"nodeType": "YulBlock",
"src": "502:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "517:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "531:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "521:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "546:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "581:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "592:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "577:3:2"
},
"nodeType": "YulFunctionCall",
"src": "577:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "601:7:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "556:20:2"
},
"nodeType": "YulFunctionCall",
"src": "556:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "546:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "333:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "344:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "356:6:2",
"type": ""
}
],
"src": "297:329:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "715:391:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "761:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "763:77:2"
},
"nodeType": "YulFunctionCall",
"src": "763:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "763:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "736:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "745:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "732:3:2"
},
"nodeType": "YulFunctionCall",
"src": "732:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "757:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "728:3:2"
},
"nodeType": "YulFunctionCall",
"src": "728:32:2"
},
"nodeType": "YulIf",
"src": "725:119:2"
},
{
"nodeType": "YulBlock",
"src": "854:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "869:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "883:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "873:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "898:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "933:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "944:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "929:3:2"
},
"nodeType": "YulFunctionCall",
"src": "929:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "953:7:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "908:20:2"
},
"nodeType": "YulFunctionCall",
"src": "908:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "898:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "981:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "996:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1010:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1000:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1026:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1061:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1072:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1057:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1057:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1081:7:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1036:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1036:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1026:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "677:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "688:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "700:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "708:6:2",
"type": ""
}
],
"src": "632:474:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1212:519:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1258:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1260:77:2"
},
"nodeType": "YulFunctionCall",
"src": "1260:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "1260:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1233:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1242:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1229:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1229:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1254:2:2",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1225:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1225:32:2"
},
"nodeType": "YulIf",
"src": "1222:119:2"
},
{
"nodeType": "YulBlock",
"src": "1351:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1366:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1380:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1370:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1395:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1430:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1441:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1426:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1426:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1450:7:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1405:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1405:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1395:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1478:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1493:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1507:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1497:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1523:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1558:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1569:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1554:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1554:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1578:7:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1533:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1533:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1523:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1606:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1621:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1635:2:2",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1625:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1651:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1686:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1697:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1682:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1682:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1706:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1661:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1661:53:2"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "1651:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1166:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1177:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1189:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1197:6:2",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "1205:6:2",
"type": ""
}
],
"src": "1112:619:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1820:391:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1866:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1868:77:2"
},
"nodeType": "YulFunctionCall",
"src": "1868:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "1868:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1841:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1850:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1837:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1837:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1862:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1833:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1833:32:2"
},
"nodeType": "YulIf",
"src": "1830:119:2"
},
{
"nodeType": "YulBlock",
"src": "1959:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1974:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1988:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1978:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2003:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2038:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2049:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2034:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2034:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2058:7:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "2013:20:2"
},
"nodeType": "YulFunctionCall",
"src": "2013:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2003:6:2"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "2086:118:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2101:16:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2115:2:2",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2105:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2131:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2166:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2177:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2162:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2162:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2186:7:2"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "2141:20:2"
},
"nodeType": "YulFunctionCall",
"src": "2141:53:2"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2131:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1782:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1793:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1805:6:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1813:6:2",
"type": ""
}
],
"src": "1737:474:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2276:50:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2293:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2313:5:2"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "2298:14:2"
},
"nodeType": "YulFunctionCall",
"src": "2298:21:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2286:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2286:34:2"
},
"nodeType": "YulExpressionStatement",
"src": "2286:34:2"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2264:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2271:3:2",
"type": ""
}
],
"src": "2217:109:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2397:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2414:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2437:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2419:17:2"
},
"nodeType": "YulFunctionCall",
"src": "2419:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2407:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2407:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "2407:37:2"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2385:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2392:3:2",
"type": ""
}
],
"src": "2332:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2548:118:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2558:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2570:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2581:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2566:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2566:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2558:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2632:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2645:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2656:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2641:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2641:17:2"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "2594:37:2"
},
"nodeType": "YulFunctionCall",
"src": "2594:65:2"
},
"nodeType": "YulExpressionStatement",
"src": "2594:65:2"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2520:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2532:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2543:4:2",
"type": ""
}
],
"src": "2456:210:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2770:124:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2780:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2792:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2803:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2788:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2788:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2780:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2860:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2873:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2884:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2869:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2869:17:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "2816:43:2"
},
"nodeType": "YulFunctionCall",
"src": "2816:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "2816:71:2"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2742:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2754:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2765:4:2",
"type": ""
}
],
"src": "2672:222:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2940:35:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2950:19:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2966:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2960:5:2"
},
"nodeType": "YulFunctionCall",
"src": "2960:9:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2950:6:2"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "2933:6:2",
"type": ""
}
],
"src": "2900:75:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3025:261:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3035:25:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3058:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3040:17:2"
},
"nodeType": "YulFunctionCall",
"src": "3040:20:2"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3035:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3069:25:2",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3092:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3074:17:2"
},
"nodeType": "YulFunctionCall",
"src": "3074:20:2"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3069:1:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3232:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "3234:16:2"
},
"nodeType": "YulFunctionCall",
"src": "3234:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "3234:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3153:1:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3160:66:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3228:1:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3156:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3156:74:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3150:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3150:81:2"
},
"nodeType": "YulIf",
"src": "3147:107:2"
},
{
"nodeType": "YulAssignment",
"src": "3264:16:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3275:1:2"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3278:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3271:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3271:9:2"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "3264:3:2"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "3012:1:2",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "3015:1:2",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "3021:3:2",
"type": ""
}
],
"src": "2981:305:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3337:146:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3347:25:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3370:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3352:17:2"
},
"nodeType": "YulFunctionCall",
"src": "3352:20:2"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3347:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3381:25:2",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3404:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3386:17:2"
},
"nodeType": "YulFunctionCall",
"src": "3386:20:2"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3381:1:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3428:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "3430:16:2"
},
"nodeType": "YulFunctionCall",
"src": "3430:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "3430:18:2"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3422:1:2"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3425:1:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3419:2:2"
},
"nodeType": "YulFunctionCall",
"src": "3419:8:2"
},
"nodeType": "YulIf",
"src": "3416:34:2"
},
{
"nodeType": "YulAssignment",
"src": "3460:17:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "3472:1:2"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "3475:1:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3468:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3468:9:2"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "3460:4:2"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "3323:1:2",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "3326:1:2",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "3332:4:2",
"type": ""
}
],
"src": "3292:191:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3534:51:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3544:35:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3573:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "3555:17:2"
},
"nodeType": "YulFunctionCall",
"src": "3555:24:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3544:7:2"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3516:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3526:7:2",
"type": ""
}
],
"src": "3489:96:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3633:48:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3643:32:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3668:5:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3661:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3661:13:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3654:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3654:21:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3643:7:2"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3615:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3625:7:2",
"type": ""
}
],
"src": "3591:90:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3732:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3742:65:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3757:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3764:42:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3753:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3753:54:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3742:7:2"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3714:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3724:7:2",
"type": ""
}
],
"src": "3687:126:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3864:32:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3874:16:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "3885:5:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3874:7:2"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3846:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3856:7:2",
"type": ""
}
],
"src": "3819:77:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3930:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3947:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3950:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3940:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3940:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "3940:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4044:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4047:4:2",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4037:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4037:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "4037:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4068:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4071:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4061:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4061:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "4061:15:2"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "3902:180:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4177:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4194:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4197:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4187:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4187:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "4187:12:2"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "4088:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4300:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4317:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4320:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4310:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4310:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "4310:12:2"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "4211:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4377:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4434:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4443:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4446:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4436:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4436:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "4436:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4400:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4425:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "4407:17:2"
},
"nodeType": "YulFunctionCall",
"src": "4407:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4397:2:2"
},
"nodeType": "YulFunctionCall",
"src": "4397:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4390:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4390:43:2"
},
"nodeType": "YulIf",
"src": "4387:63:2"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4370:5:2",
"type": ""
}
],
"src": "4334:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4505:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4562:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4571:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4574:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4564:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4564:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "4564:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4528:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4553:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4535:17:2"
},
"nodeType": "YulFunctionCall",
"src": "4535:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4525:2:2"
},
"nodeType": "YulFunctionCall",
"src": "4525:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4518:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4518:43:2"
},
"nodeType": "YulIf",
"src": "4515:63:2"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4498:5:2",
"type": ""
}
],
"src": "4462:122:2"
}
]
},
"contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a082311461013b578063a457c2d71461016b578063a9059cbb1461019b578063dd62ed3e146101cb57610088565b8063095ea7b31461008d57806318160ddd146100bd57806323b872dd146100db578063395093511461010b575b600080fd5b6100a760048036038101906100a291906108a4565b6101fb565b6040516100b49190610902565b60405180910390f35b6100c5610212565b6040516100d2919061091d565b60405180910390f35b6100f560048036038101906100f09190610851565b610218565b6040516101029190610902565b60405180910390f35b610125600480360381019061012091906108a4565b6102ef565b6040516101329190610902565b60405180910390f35b610155600480360381019061015091906107e4565b61038d565b604051610162919061091d565b60405180910390f35b610185600480360381019061018091906108a4565b6103a5565b6040516101929190610902565b60405180910390f35b6101b560048036038101906101b091906108a4565b610443565b6040516101c29190610902565b60405180910390f35b6101e560048036038101906101e09190610811565b61045a565b6040516101f2919061091d565b60405180910390f35b600061020833848461047f565b6001905092915050565b60025481565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146102d8576102d7853385846102d2919061098e565b61047f565b5b6102e3858585610608565b60019150509392505050565b6000610383338484600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461037e9190610938565b61047f565b6001905092915050565b60006020528060005260406000206000915090505481565b6000610439338484600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610434919061098e565b61047f565b6001905092915050565b6000610450338484610608565b6001905092915050565b6001602052816000526040600020602052806000526040600020600091509150505481565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806104e65750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561051d576040517f6d187b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516105fb919061091d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061066f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156106a6576040517f6d187b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106f4919061098e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107499190610938565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107ad919061091d565b60405180910390a3505050565b6000813590506107c981610a3e565b92915050565b6000813590506107de81610a55565b92915050565b6000602082840312156107fa576107f9610a39565b5b6000610808848285016107ba565b91505092915050565b6000806040838503121561082857610827610a39565b5b6000610836858286016107ba565b9250506020610847858286016107ba565b9150509250929050565b60008060006060848603121561086a57610869610a39565b5b6000610878868287016107ba565b9350506020610889868287016107ba565b925050604061089a868287016107cf565b9150509250925092565b600080604083850312156108bb576108ba610a39565b5b60006108c9858286016107ba565b92505060206108da858286016107cf565b9150509250929050565b6108ed816109d4565b82525050565b6108fc81610a00565b82525050565b600060208201905061091760008301846108e4565b92915050565b600060208201905061093260008301846108f3565b92915050565b600061094382610a00565b915061094e83610a00565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561098357610982610a0a565b5b828201905092915050565b600061099982610a00565b91506109a483610a00565b9250828210156109b7576109b6610a0a565b5b828203905092915050565b60006109cd826109e0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b610a47816109c2565b8114610a5257600080fd5b50565b610a5e81610a00565b8114610a6957600080fd5b5056fea2646970667358221220619a2fe644997eb7b024365d2c392c7cc7003c89fddf8eecacdc7b3fef0176e364736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x13B JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1CB JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0xDB JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x10B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x1FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x902 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH2 0x212 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD2 SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF0 SWAP2 SWAP1 PUSH2 0x851 JUMP JUMPDEST PUSH2 0x218 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x102 SWAP2 SWAP1 PUSH2 0x902 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x125 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x120 SWAP2 SWAP1 PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x2EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x132 SWAP2 SWAP1 PUSH2 0x902 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x155 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x150 SWAP2 SWAP1 PUSH2 0x7E4 JUMP JUMPDEST PUSH2 0x38D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x180 SWAP2 SWAP1 PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x3A5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x192 SWAP2 SWAP1 PUSH2 0x902 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B0 SWAP2 SWAP1 PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x443 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C2 SWAP2 SWAP1 PUSH2 0x902 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x45A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x208 CALLER DUP5 DUP5 PUSH2 0x47F JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x2D8 JUMPI PUSH2 0x2D7 DUP6 CALLER DUP6 DUP5 PUSH2 0x2D2 SWAP2 SWAP1 PUSH2 0x98E JUMP JUMPDEST PUSH2 0x47F JUMP JUMPDEST JUMPDEST PUSH2 0x2E3 DUP6 DUP6 DUP6 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x383 CALLER DUP5 DUP5 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x938 JUMP JUMPDEST PUSH2 0x47F JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x439 CALLER DUP5 DUP5 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x434 SWAP2 SWAP1 PUSH2 0x98E JUMP JUMPDEST PUSH2 0x47F JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x450 CALLER DUP5 DUP5 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x4E6 JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x51D JUMPI PUSH1 0x40 MLOAD PUSH32 0x6D187B2800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0x5FB SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x66F JUMPI POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0x6A6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6D187B2800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x6F4 SWAP2 SWAP1 PUSH2 0x98E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x749 SWAP2 SWAP1 PUSH2 0x938 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x7AD SWAP2 SWAP1 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7C9 DUP2 PUSH2 0xA3E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7DE DUP2 PUSH2 0xA55 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7FA JUMPI PUSH2 0x7F9 PUSH2 0xA39 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x808 DUP5 DUP3 DUP6 ADD PUSH2 0x7BA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x828 JUMPI PUSH2 0x827 PUSH2 0xA39 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x836 DUP6 DUP3 DUP7 ADD PUSH2 0x7BA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x847 DUP6 DUP3 DUP7 ADD PUSH2 0x7BA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x86A JUMPI PUSH2 0x869 PUSH2 0xA39 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x878 DUP7 DUP3 DUP8 ADD PUSH2 0x7BA JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x889 DUP7 DUP3 DUP8 ADD PUSH2 0x7BA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x89A DUP7 DUP3 DUP8 ADD PUSH2 0x7CF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8BB JUMPI PUSH2 0x8BA PUSH2 0xA39 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x8C9 DUP6 DUP3 DUP7 ADD PUSH2 0x7BA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x8DA DUP6 DUP3 DUP7 ADD PUSH2 0x7CF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x8ED DUP2 PUSH2 0x9D4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x8FC DUP2 PUSH2 0xA00 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x917 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x8E4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x932 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x8F3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x943 DUP3 PUSH2 0xA00 JUMP JUMPDEST SWAP2 POP PUSH2 0x94E DUP4 PUSH2 0xA00 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x983 JUMPI PUSH2 0x982 PUSH2 0xA0A JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x999 DUP3 PUSH2 0xA00 JUMP JUMPDEST SWAP2 POP PUSH2 0x9A4 DUP4 PUSH2 0xA00 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x9B7 JUMPI PUSH2 0x9B6 PUSH2 0xA0A JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9CD DUP3 PUSH2 0x9E0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA47 DUP2 PUSH2 0x9C2 JUMP JUMPDEST DUP2 EQ PUSH2 0xA52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xA5E DUP2 PUSH2 0xA00 JUMP JUMPDEST DUP2 EQ PUSH2 0xA69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH2 0x9A2F 0xE6 DIFFICULTY SWAP10 PUSH31 0xB7B024365D2C392C7CC7003C89FDDF8EECACDC7B3FEF0176E364736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "1320:5825:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2268:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1491:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2901:365;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3661:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1351:53;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4356:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1788:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1411:73;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2268:166;2353:4;2369:37;2378:10;2390:7;2399:6;2369:8;:37::i;:::-;2423:4;2416:11;;2268:166;;;;:::o;1491:35::-;;;;:::o;2901:365::-;3009:4;3025:18;3046:9;:17;3056:6;3046:17;;;;;;;;;;;;;;;:29;3064:10;3046:29;;;;;;;;;;;;;;;;3025:50;;1572:12;3090:10;:25;3086:105;;3131:49;3140:6;3148:10;3173:6;3160:10;:19;;;;:::i;:::-;3131:8;:49::i;:::-;3086:105;3201:36;3211:6;3219:9;3230:6;3201:9;:36::i;:::-;3255:4;3248:11;;;2901:365;;;;;:::o;3661:208::-;3751:4;3767:74;3776:10;3788:7;3830:10;3797:9;:21;3807:10;3797:21;;;;;;;;;;;;;;;:30;3819:7;3797:30;;;;;;;;;;;;;;;;:43;;;;:::i;:::-;3767:8;:74::i;:::-;3858:4;3851:11;;3661:208;;;;:::o;1351:53::-;;;;;;;;;;;;;;;;;:::o;4356:218::-;4451:4;4467:79;4476:10;4488:7;4530:15;4497:9;:21;4507:10;4497:21;;;;;;;;;;;;;;;:30;4519:7;4497:30;;;;;;;;;;;;;;;;:48;;;;:::i;:::-;4467:8;:79::i;:::-;4563:4;4556:11;;4356:218;;;;:::o;1788:172::-;1876:4;1892:40;1902:10;1914:9;1925:6;1892:9;:40::i;:::-;1949:4;1942:11;;1788:172;;;;:::o;1411:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6878:265::-;6992:1;6975:19;;:5;:19;;;:44;;;;7017:1;6998:21;;:7;:21;;;6975:44;6971:73;;;7028:16;;;;;;;;;;;;;;6971:73;7083:6;7055:9;:16;7065:5;7055:16;;;;;;;;;;;;;;;:25;7072:7;7055:25;;;;;;;;;;;;;;;:34;;;;7120:7;7104:32;;7113:5;7104:32;;;7129:6;7104:32;;;;;;:::i;:::-;;;;;;;;6878:265;;;:::o;5048:308::-;5167:1;5149:20;;:6;:20;;;:47;;;;5194:1;5173:23;;:9;:23;;;5149:47;5145:76;;;5205:16;;;;;;;;;;;;;;5145:76;5253:6;5232:9;:17;5242:6;5232:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;5293:6;5269:9;:20;5279:9;5269:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5331:9;5314:35;;5323:6;5314:35;;;5342:6;5314:35;;;;;;:::i;:::-;;;;;;;;5048:308;;;:::o;7:139:2:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:119;;;411:79;;:::i;:::-;373:119;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;297:329;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:119;;;763:79;;:::i;:::-;725:119;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;632:474;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:119;;;1260:79;;:::i;:::-;1222:119;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1112:619;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:119;;;1868:79;;:::i;:::-;1830:119;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1737:474;;;;;:::o;2217:109::-;2298:21;2313:5;2298:21;:::i;:::-;2293:3;2286:34;2217:109;;:::o;2332:118::-;2419:24;2437:5;2419:24;:::i;:::-;2414:3;2407:37;2332:118;;:::o;2456:210::-;2543:4;2581:2;2570:9;2566:18;2558:26;;2594:65;2656:1;2645:9;2641:17;2632:6;2594:65;:::i;:::-;2456:210;;;;:::o;2672:222::-;2765:4;2803:2;2792:9;2788:18;2780:26;;2816:71;2884:1;2873:9;2869:17;2860:6;2816:71;:::i;:::-;2672:222;;;;:::o;2981:305::-;3021:3;3040:20;3058:1;3040:20;:::i;:::-;3035:25;;3074:20;3092:1;3074:20;:::i;:::-;3069:25;;3228:1;3160:66;3156:74;3153:1;3150:81;3147:107;;;3234:18;;:::i;:::-;3147:107;3278:1;3275;3271:9;3264:16;;2981:305;;;;:::o;3292:191::-;3332:4;3352:20;3370:1;3352:20;:::i;:::-;3347:25;;3386:20;3404:1;3386:20;:::i;:::-;3381:25;;3425:1;3422;3419:8;3416:34;;;3430:18;;:::i;:::-;3416:34;3475:1;3472;3468:9;3460:17;;3292:191;;;;:::o;3489:96::-;3526:7;3555:24;3573:5;3555:24;:::i;:::-;3544:35;;3489:96;;;:::o;3591:90::-;3625:7;3668:5;3661:13;3654:21;3643:32;;3591:90;;;:::o;3687:126::-;3724:7;3764:42;3757:5;3753:54;3742:65;;3687:126;;;:::o;3819:77::-;3856:7;3885:5;3874:16;;3819:77;;;:::o;3902:180::-;3950:77;3947:1;3940:88;4047:4;4044:1;4037:15;4071:4;4068:1;4061:15;4211:117;4320:1;4317;4310:12;4334:122;4407:24;4425:5;4407:24;:::i;:::-;4400:5;4397:35;4387:63;;4446:1;4443;4436:12;4387:63;4334:122;:::o;4462:::-;4535:24;4553:5;4535:24;:::i;:::-;4528:5;4525:35;4515:63;;4574:1;4571;4564:12;4515:63;4462:122;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "544400",
"executionCost": "581",
"totalCost": "544981"
},
"external": {
"allowance(address,address)": "infinite",
"approve(address,uint256)": "infinite",
"balanceOf(address)": "2814",
"decreaseAllowance(address,uint256)": "infinite",
"increaseAllowance(address,uint256)": "infinite",
"totalSupply()": "2452",
"transfer(address,uint256)": "infinite",
"transferFrom(address,address,uint256)": "infinite"
},
"internal": {
"_approve(address,address,uint256)": "infinite",
"_burn(address,uint256)": "infinite",
"_mint(address,uint256)": "infinite",
"_transfer(address,address,uint256)": "infinite"
}
},
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"decreaseAllowance(address,uint256)": "a457c2d7",
"increaseAllowance(address,uint256)": "39509351",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"abi": [
{
"inputs": [],
"name": "InvalidAccount",
"type": "error"
},
{
"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": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"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": "",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "InvalidAccount",
"type": "error"
},
{
"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": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"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": "",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin guidelines: functions revert instead of 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": {
"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."
},
"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."
},
"transfer(address,uint256)": {
"details": "See {IERC20-transfer}. Requirements: - `recipient` 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}. Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`."
}
},
"stateVariables": {
"allowance": {
"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."
},
"balanceOf": {
"details": "Returns the amount of tokens owned by `account`."
},
"totalSupply": {
"details": "Returns the amount of tokens in existence."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/custom-contract/ERC20.sol": "ERC20"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IERC20.sol": {
"keccak256": "0xb77ad755f4eade679279d5ca12b6926595e41e17387e143530f4fb57672d58d7",
"license": "MIT",
"urls": [
"bzz-raw://b0d01d0810d12dba98839b084440ab9b52e04d94e9431a6ffadabb1651d0f100",
"dweb:/ipfs/Qme9KLMtbmNvsAj2giGTzNFKAymkMJq88Ef445pLiawKWa"
]
},
"contracts/custom-contract/ERC20.sol": {
"keccak256": "0xc0216d466511192e7c4836b3524f6617b188b0586d51528d9a86e9b738616266",
"license": "MIT",
"urls": [
"bzz-raw://f26ad2b50403fd26fbde87cf59901587c9bbc61d42e39c7607ea34321aede258",
"dweb:/ipfs/QmYwQAwJqmU5z5hquxcuUaHnJDRySGDu4tBkHuboGe1kmS"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"burn(address,uint256)": "9dc29fac",
"mint(address,uint256)": "40c10f19"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Interface of the ERC20 standard as defined in the EIP.",
"kind": "dev",
"methods": {
"burn(address,uint256)": {
"details": "Can only be called by the minter address.",
"params": {
"amount": "The amount of tokens to burn.",
"from": "The address that will have its tokens burnt."
}
},
"mint(address,uint256)": {
"details": "Can only be called by the minter address.",
"params": {
"amount": "The amount of tokens to mint.",
"to": "The address that will receive the minted tokens."
}
}
},
"title": "IERC20MintableBurnable Interface",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"burn(address,uint256)": {
"notice": "Function to burn tokens."
},
"mint(address,uint256)": {
"notice": "Function to mint new tokens."
}
},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/custom-contract/IERC20MintableBurnable.sol": "IERC20MintableBurnable"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/custom-contract/IERC20MintableBurnable.sol": {
"keccak256": "0x43494b00a8b40d4ebb2a34255c8f50136f4a2758aaac825ce2fb69c79c0f578d",
"license": "MIT",
"urls": [
"bzz-raw://2853e7dc06c7aba6e6cfc7cf962966f5894dc3e34e91717f8b4da38b2d71afd3",
"dweb:/ipfs/QmcutkJVXBS8hYHSTFyMn1DLhDEDooP1LKf1wBFdqbgKsz"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"acceptMintership(address)": "9c176677",
"hasRole(address,uint8)": "95a8c58d",
"isMinter(address)": "aa271e1a",
"proposeMintership(address)": "b5ef694d",
"transferMintership(address)": "cf86a95a"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "fromAccount",
"type": "address"
},
{
"internalType": "address",
"name": "toAccount",
"type": "address"
},
{
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "InvalidProposedRoles",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "MissingAllRoles",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "MissingAnyOfRoles",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint8",
"name": "role",
"type": "uint8"
}
],
"name": "MissingRole",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "RolesAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "fromAccount",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "toAccount",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "RolesProposed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "RolesRemoved",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "fromMinter",
"type": "address"
}
],
"name": "acceptMintership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint8",
"name": "role",
"type": "uint8"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "isMinter",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "minter_",
"type": "address"
}
],
"name": "proposeMintership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "minter_",
"type": "address"
}
],
"name": "transferMintership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.23+commit.f704f362"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "fromAccount",
"type": "address"
},
{
"internalType": "address",
"name": "toAccount",
"type": "address"
},
{
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "InvalidProposedRoles",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "MissingAllRoles",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "MissingAnyOfRoles",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint8",
"name": "role",
"type": "uint8"
}
],
"name": "MissingRole",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "RolesAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "fromAccount",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "toAccount",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "RolesProposed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "RolesRemoved",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "fromMinter",
"type": "address"
}
],
"name": "acceptMintership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint8",
"name": "role",
"type": "uint8"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "isMinter",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "minter_",
"type": "address"
}
],
"name": "proposeMintership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "minter_",
"type": "address"
}
],
"name": "transferMintership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"acceptMintership(address)": {
"details": "Can only be called by the proposed minter.",
"params": {
"fromMinter": "The previous minter."
}
},
"hasRole(address,uint8)": {
"params": {
"account": "The address to check",
"role": "The role to check"
},
"returns": {
"_0": "True if the account has the role, false otherwise"
}
},
"isMinter(address)": {
"params": {
"addr": "the address to query for"
},
"returns": {
"_0": "bool Boolean value representing whether or not the address is a minter."
}
},
"proposeMintership(address)": {
"details": "Can only be called by the current minter.",
"params": {
"minter_": "The address of the new minter."
}
},
"transferMintership(address)": {
"details": "Can only be called by the current minter.",
"params": {
"minter_": "The address of the new minter."
}
}
},
"title": "IMinter Interface",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"acceptMintership(address)": {
"notice": "Accept a change of the minter of the contract."
},
"hasRole(address,uint8)": {
"notice": "Checks if an account has a role."
},
"isMinter(address)": {
"notice": "Query if an address is a minter"
},
"proposeMintership(address)": {
"notice": "Proposed a change of the minter of the contract."
},
"transferMintership(address)": {
"notice": "Change the minter of the contract."
}
},
"notice": "An interface for a contract module which provides a basic access control mechanism, where there is an account (a minter) that can be granted exclusive access to specific functions.",
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/custom-contract/IMinter.sol": "IMinter"
},
"evmVersion": "shanghai",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IRolesBase.sol": {
"keccak256": "0x9f8b439986230a5ec7e47084609243367995680771db149bd1ec0d74ff6565cc",
"license": "MIT",
"urls": [
"bzz-raw://284a7e08b5ba45af9c87587c22590a967c915bf1d7e944935289a751dc26b3f4",
"dweb:/ipfs/QmYLdJBSaT5wYRuR3rqUDBg46u56NiWVcUb9iBiuYNr6Dn"
]
},
"contracts/custom-contract/IMinter.sol": {
"keccak256": "0x0f5f28168a330cb730f3fe127bbd035a286e2cbaddece380d5c5b889aafb07ed",
"license": "MIT",
"urls": [
"bzz-raw://3d65a5a123063f85a76ce2036b3ae10f364667a444a4b09f49e13a0f9e94637b",
"dweb:/ipfs/QmenER9XswvfJi8KSdjawmpBRYhTVnbqyBppbFkSMNNeee"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561000f575f80fd5b5061099b8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c806395a8c58d146100595780639c17667714610089578063aa271e1a146100a5578063b5ef694d146100d5578063cf86a95a146100f1575b5f80fd5b610073600480360381019061006e91906106f5565b61010d565b604051610080919061074d565b60405180910390f35b6100a3600480360381019061009e9190610766565b610128565b005b6100bf60048036038101906100ba9190610766565b610148565b6040516100cc919061074d565b60405180910390f35b6100ef60048036038101906100ea9190610766565b61016c565b005b61010b60048036038101906101069190610766565b6101f5565b005b5f61012061011a8461027e565b83610295565b905092915050565b61014581335f60028111156101405761013f610791565b5b6102ab565b50565b5f610165825f60028111156101605761015f610791565b5b61010d565b9050919050565b5f600281111561017f5761017e610791565b5b61019161018b3361027e565b82610295565b6101d45733816040517fbb6c16390000000000000000000000000000000000000000000000000000000081526004016101cb9291906107dc565b60405180910390fd5b6101f133835f60028111156101ec576101eb610791565b5b6102c2565b5050565b5f600281111561020857610207610791565b5b61021a6102143361027e565b82610295565b61025d5733816040517fbb6c16390000000000000000000000000000000000000000000000000000000081526004016102549291906107dc565b60405180910390fd5b61027a33835f600281111561027557610274610791565b5b6102d9565b5050565b5f80610289836102f0565b90508054915050919050565b5f808260ff166001901b84161415905092915050565b6102bd83838360ff166001901b610341565b505050565b6102d483838360ff166001901b6103ad565b505050565b6102eb83838360ff166001901b610477565b505050565b5f7fde9bdca322e1a848f72215bc15cf2c87fe7749145789a9ee281a2a6290af26ab82604051602001610324929190610871565b604051602081830303815290604052805190602001209050919050565b8061034c84846104e5565b14610392578282826040517f6004fe40000000000000000000000000000000000000000000000000000000008152600401610389939291906108b4565b60405180910390fd5b61039d83835f6104fe565b6103a8838383610477565b505050565b6103bf6103b98461027e565b82610514565b6104025782816040517f7fa6fbb40000000000000000000000000000000000000000000000000000000081526004016103f99291906108e9565b60405180910390fd5b61040d8383836104fe565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167ff7158d1591c2cf17c0e6b9459d86365c47fe0969c79f40ef49e0c437d8f399148360405161046a9190610910565b60405180910390a3505050565b6104896104838461027e565b82610514565b6104cc5782816040517f7fa6fbb40000000000000000000000000000000000000000000000000000000081526004016104c39291906108e9565b60405180910390fd5b6104d68382610522565b6104e0828261058e565b505050565b5f806104f184846105f9565b9050805491505092915050565b5f61050984846105f9565b905081815550505050565b5f8182841614905092915050565b5f811961052e8461027e565b16905061053b838261064d565b8273ffffffffffffffffffffffffffffffffffffffff167fccf920c8facee98a9c2a6c6124f2857b87b17e9f3a819bfcc6945196ee77366b836040516105819190610910565b60405180910390a2505050565b5f816105998461027e565b1790506105a6838261064d565b8273ffffffffffffffffffffffffffffffffffffffff167f34e73c57659d4b6809b53db4feee9b007b892e978114eda420d2991aba150143836040516105ec9190610910565b60405180910390a2505050565b5f7ff96e07b2f4fbb81c31567d2b261589af429e98f0958d53f7e6ad5d63aea0ab7c838360405160200161062f93929190610929565b60405160208183030381529060405280519060200120905092915050565b5f610657836102f0565b9050818155505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61068e82610665565b9050919050565b61069e81610684565b81146106a8575f80fd5b50565b5f813590506106b981610695565b92915050565b5f60ff82169050919050565b6106d4816106bf565b81146106de575f80fd5b50565b5f813590506106ef816106cb565b92915050565b5f806040838503121561070b5761070a610661565b5b5f610718858286016106ab565b9250506020610729858286016106e1565b9150509250929050565b5f8115159050919050565b61074781610733565b82525050565b5f6020820190506107605f83018461073e565b92915050565b5f6020828403121561077b5761077a610661565b5b5f610788848285016106ab565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6107c781610684565b82525050565b6107d6816106bf565b82525050565b5f6040820190506107ef5f8301856107be565b6107fc60208301846107cd565b9392505050565b5f819050919050565b5f819050919050565b61082661082182610803565b61080c565b82525050565b5f8160601b9050919050565b5f6108428261082c565b9050919050565b5f61085382610838565b9050919050565b61086b61086682610684565b610849565b82525050565b5f61087c8285610815565b60208201915061088c828461085a565b6014820191508190509392505050565b5f819050919050565b6108ae8161089c565b82525050565b5f6060820190506108c75f8301866107be565b6108d460208301856107be565b6108e160408301846108a5565b949350505050565b5f6040820190506108fc5f8301856107be565b61090960208301846108a5565b9392505050565b5f6020820190506109235f8301846108a5565b92915050565b5f6109348286610815565b602082019150610944828561085a565b601482019150610954828461085a565b60148201915081905094935050505056fea2646970667358221220a3820a83dd98164622d707ac1b05afd2571279b5874079fd0558795b3d93974064736f6c63430008170033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x99B DUP1 PUSH2 0x1D PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x95A8C58D EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0x9C176677 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0xAA271E1A EQ PUSH2 0xA5 JUMPI DUP1 PUSH4 0xB5EF694D EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0xCF86A95A EQ PUSH2 0xF1 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x6F5 JUMP JUMPDEST PUSH2 0x10D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x80 SWAP2 SWAP1 PUSH2 0x74D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x766 JUMP JUMPDEST PUSH2 0x128 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xBF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBA SWAP2 SWAP1 PUSH2 0x766 JUMP JUMPDEST PUSH2 0x148 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0x74D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEA SWAP2 SWAP1 PUSH2 0x766 JUMP JUMPDEST PUSH2 0x16C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x106 SWAP2 SWAP1 PUSH2 0x766 JUMP JUMPDEST PUSH2 0x1F5 JUMP JUMPDEST STOP JUMPDEST PUSH0 PUSH2 0x120 PUSH2 0x11A DUP5 PUSH2 0x27E JUMP JUMPDEST DUP4 PUSH2 0x295 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x145 DUP2 CALLER PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x140 JUMPI PUSH2 0x13F PUSH2 0x791 JUMP JUMPDEST JUMPDEST PUSH2 0x2AB JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x165 DUP3 PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x160 JUMPI PUSH2 0x15F PUSH2 0x791 JUMP JUMPDEST JUMPDEST PUSH2 0x10D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x17F JUMPI PUSH2 0x17E PUSH2 0x791 JUMP JUMPDEST JUMPDEST PUSH2 0x191 PUSH2 0x18B CALLER PUSH2 0x27E JUMP JUMPDEST DUP3 PUSH2 0x295 JUMP JUMPDEST PUSH2 0x1D4 JUMPI CALLER DUP2 PUSH1 0x40 MLOAD PUSH32 0xBB6C163900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CB SWAP3 SWAP2 SWAP1 PUSH2 0x7DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1F1 CALLER DUP4 PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1EC JUMPI PUSH2 0x1EB PUSH2 0x791 JUMP JUMPDEST JUMPDEST PUSH2 0x2C2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x208 JUMPI PUSH2 0x207 PUSH2 0x791 JUMP JUMPDEST JUMPDEST PUSH2 0x21A PUSH2 0x214 CALLER PUSH2 0x27E JUMP JUMPDEST DUP3 PUSH2 0x295 JUMP JUMPDEST PUSH2 0x25D JUMPI CALLER DUP2 PUSH1 0x40 MLOAD PUSH32 0xBB6C163900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x254 SWAP3 SWAP2 SWAP1 PUSH2 0x7DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x27A CALLER DUP4 PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x275 JUMPI PUSH2 0x274 PUSH2 0x791 JUMP JUMPDEST JUMPDEST PUSH2 0x2D9 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x289 DUP4 PUSH2 0x2F0 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL DUP5 AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2BD DUP4 DUP4 DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL PUSH2 0x341 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x2D4 DUP4 DUP4 DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL PUSH2 0x3AD JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x2EB DUP4 DUP4 DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL PUSH2 0x477 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xDE9BDCA322E1A848F72215BC15CF2C87FE7749145789A9EE281A2A6290AF26AB DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x324 SWAP3 SWAP2 SWAP1 PUSH2 0x871 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH2 0x34C DUP5 DUP5 PUSH2 0x4E5 JUMP JUMPDEST EQ PUSH2 0x392 JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6004FE4000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x389 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x8B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x39D DUP4 DUP4 PUSH0 PUSH2 0x4FE JUMP JUMPDEST PUSH2 0x3A8 DUP4 DUP4 DUP4 PUSH2 0x477 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x3BF PUSH2 0x3B9 DUP5 PUSH2 0x27E JUMP JUMPDEST DUP3 PUSH2 0x514 JUMP JUMPDEST PUSH2 0x402 JUMPI DUP3 DUP2 PUSH1 0x40 MLOAD PUSH32 0x7FA6FBB400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3F9 SWAP3 SWAP2 SWAP1 PUSH2 0x8E9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40D DUP4 DUP4 DUP4 PUSH2 0x4FE JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF7158D1591C2CF17C0E6B9459D86365C47FE0969C79F40EF49E0C437D8F39914 DUP4 PUSH1 0x40 MLOAD PUSH2 0x46A SWAP2 SWAP1 PUSH2 0x910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x489 PUSH2 0x483 DUP5 PUSH2 0x27E JUMP JUMPDEST DUP3 PUSH2 0x514 JUMP JUMPDEST PUSH2 0x4CC JUMPI DUP3 DUP2 PUSH1 0x40 MLOAD PUSH32 0x7FA6FBB400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4C3 SWAP3 SWAP2 SWAP1 PUSH2 0x8E9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4D6 DUP4 DUP3 PUSH2 0x522 JUMP JUMPDEST PUSH2 0x4E0 DUP3 DUP3 PUSH2 0x58E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x4F1 DUP5 DUP5 PUSH2 0x5F9 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x509 DUP5 DUP5 PUSH2 0x5F9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 DUP5 AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 NOT PUSH2 0x52E DUP5 PUSH2 0x27E JUMP JUMPDEST AND SWAP1 POP PUSH2 0x53B DUP4 DUP3 PUSH2 0x64D JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xCCF920C8FACEE98A9C2A6C6124F2857B87B17E9F3A819BFCC6945196EE77366B DUP4 PUSH1 0x40 MLOAD PUSH2 0x581 SWAP2 SWAP1 PUSH2 0x910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x599 DUP5 PUSH2 0x27E JUMP JUMPDEST OR SWAP1 POP PUSH2 0x5A6 DUP4 DUP3 PUSH2 0x64D JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x34E73C57659D4B6809B53DB4FEEE9B007B892E978114EDA420D2991ABA150143 DUP4 PUSH1 0x40 MLOAD PUSH2 0x5EC SWAP2 SWAP1 PUSH2 0x910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xF96E07B2F4FBB81C31567D2B261589AF429E98F0958D53F7E6AD5D63AEA0AB7C DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x62F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x929 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x657 DUP4 PUSH2 0x2F0 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x68E DUP3 PUSH2 0x665 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x69E DUP2 PUSH2 0x684 JUMP JUMPDEST DUP2 EQ PUSH2 0x6A8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x6B9 DUP2 PUSH2 0x695 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6D4 DUP2 PUSH2 0x6BF JUMP JUMPDEST DUP2 EQ PUSH2 0x6DE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x6EF DUP2 PUSH2 0x6CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x70B JUMPI PUSH2 0x70A PUSH2 0x661 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x718 DUP6 DUP3 DUP7 ADD PUSH2 0x6AB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x729 DUP6 DUP3 DUP7 ADD PUSH2 0x6E1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x747 DUP2 PUSH2 0x733 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x760 PUSH0 DUP4 ADD DUP5 PUSH2 0x73E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x77B JUMPI PUSH2 0x77A PUSH2 0x661 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x788 DUP5 DUP3 DUP6 ADD PUSH2 0x6AB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x7C7 DUP2 PUSH2 0x684 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x7D6 DUP2 PUSH2 0x6BF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x7EF PUSH0 DUP4 ADD DUP6 PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x7FC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x7CD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x826 PUSH2 0x821 DUP3 PUSH2 0x803 JUMP JUMPDEST PUSH2 0x80C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x842 DUP3 PUSH2 0x82C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x853 DUP3 PUSH2 0x838 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x86B PUSH2 0x866 DUP3 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x849 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x87C DUP3 DUP6 PUSH2 0x815 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x88C DUP3 DUP5 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8AE DUP2 PUSH2 0x89C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x8C7 PUSH0 DUP4 ADD DUP7 PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x8D4 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x8E1 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8A5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x8FC PUSH0 DUP4 ADD DUP6 PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x909 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x8A5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x923 PUSH0 DUP4 ADD DUP5 PUSH2 0x8A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x934 DUP3 DUP7 PUSH2 0x815 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x944 DUP3 DUP6 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x954 DUP3 DUP5 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 DUP3 EXP DUP4 0xDD SWAP9 AND CHAINID 0x22 0xD7 SMOD 0xAC SHL SDIV 0xAF 0xD2 JUMPI SLT PUSH26 0xB5874079FD0558795B3D93974064736F6C634300081700330000 ",
"sourceMap": "519:1644:3:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_acceptAccountRoles_650": {
"entryPoint": 833,
"id": 650,
"parameterSlots": 3,
"returnSlots": 0
},
"@_acceptRole_593": {
"entryPoint": 683,
"id": 593,
"parameterSlots": 3,
"returnSlots": 0
},
"@_addAccountRoles_382": {
"entryPoint": 1422,
"id": 382,
"parameterSlots": 2,
"returnSlots": 0
},
"@_getProposedRoles_303": {
"entryPoint": 1253,
"id": 303,
"parameterSlots": 2,
"returnSlots": 1
},
"@_getRoles_248": {
"entryPoint": 638,
"id": 248,
"parameterSlots": 1,
"returnSlots": 1
},
"@_hasAllTheRoles_481": {
"entryPoint": 1300,
"id": 481,
"parameterSlots": 2,
"returnSlots": 1
},
"@_hasRole_463": {
"entryPoint": 661,
"id": 463,
"parameterSlots": 2,
"returnSlots": 1
},
"@_proposalKey_284": {
"entryPoint": 1529,
"id": 284,
"parameterSlots": 2,
"returnSlots": 1
},
"@_proposeAccountRoles_574": {
"entryPoint": 941,
"id": 574,
"parameterSlots": 3,
"returnSlots": 0
},
"@_proposeRole_518": {
"entryPoint": 706,
"id": 518,
"parameterSlots": 3,
"returnSlots": 0
},
"@_removeAccountRoles_443": {
"entryPoint": 1314,
"id": 443,
"parameterSlots": 2,
"returnSlots": 0
},
"@_rolesKey_232": {
"entryPoint": 752,
"id": 232,
"parameterSlots": 1,
"returnSlots": 1
},
"@_setProposedRoles_322": {
"entryPoint": 1278,
"id": 322,
"parameterSlots": 3,
"returnSlots": 0
},
"@_setRoles_264": {
"entryPoint": 1613,
"id": 264,
"parameterSlots": 2,
"returnSlots": 0
},
"@_transferAccountRoles_723": {
"entryPoint": 1143,
"id": 723,
"parameterSlots": 3,
"returnSlots": 0
},
"@_transferRole_669": {
"entryPoint": 729,
"id": 669,
"parameterSlots": 3,
"returnSlots": 0
},
"@acceptMintership_857": {
"entryPoint": 296,
"id": 857,
"parameterSlots": 1,
"returnSlots": 0
},
"@hasRole_174": {
"entryPoint": 269,
"id": 174,
"parameterSlots": 2,
"returnSlots": 1
},
"@isMinter_875": {
"entryPoint": 328,
"id": 875,
"parameterSlots": 1,
"returnSlots": 1
},
"@proposeMintership_839": {
"entryPoint": 364,
"id": 839,
"parameterSlots": 1,
"returnSlots": 0
},
"@transferMintership_814": {
"entryPoint": 501,
"id": 814,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 1707,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint8": {
"entryPoint": 1761,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 1894,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_uint8": {
"entryPoint": 1781,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1982,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack": {
"entryPoint": 2138,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 1854,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack": {
"entryPoint": 2069,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 2213,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint8_to_t_uint8_fromStack": {
"entryPoint": 1997,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_bytes32_t_address__to_t_bytes32_t_address__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 2161,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_bytes32_t_address_t_address__to_t_bytes32_t_address_t_address__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 2345,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 2228,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 2281,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed": {
"entryPoint": 2012,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 1869,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 2320,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1668,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 1843,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 2051,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1637,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 2204,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint8": {
"entryPoint": 1727,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_address": {
"entryPoint": 2121,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_bytes32": {
"entryPoint": 2060,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_uint160": {
"entryPoint": 2104,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x21": {
"entryPoint": 1937,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1633,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"shift_left_96": {
"entryPoint": 2092,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 1685,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint8": {
"entryPoint": 1739,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:6159:5",
"nodeType": "YulBlock",
"src": "0:6159:5",
"statements": [
{
"body": {
"nativeSrc": "47:35:5",
"nodeType": "YulBlock",
"src": "47:35:5",
"statements": [
{
"nativeSrc": "57:19:5",
"nodeType": "YulAssignment",
"src": "57:19:5",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "73:2:5",
"nodeType": "YulLiteral",
"src": "73:2:5",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "67:5:5",
"nodeType": "YulIdentifier",
"src": "67:5:5"
},
"nativeSrc": "67:9:5",
"nodeType": "YulFunctionCall",
"src": "67:9:5"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "57:6:5",
"nodeType": "YulIdentifier",
"src": "57:6:5"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "7:75:5",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "40:6:5",
"nodeType": "YulTypedName",
"src": "40:6:5",
"type": ""
}
],
"src": "7:75:5"
},
{
"body": {
"nativeSrc": "177:28:5",
"nodeType": "YulBlock",
"src": "177:28:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "194:1:5",
"nodeType": "YulLiteral",
"src": "194:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "197:1:5",
"nodeType": "YulLiteral",
"src": "197:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "187:6:5",
"nodeType": "YulIdentifier",
"src": "187:6:5"
},
"nativeSrc": "187:12:5",
"nodeType": "YulFunctionCall",
"src": "187:12:5"
},
"nativeSrc": "187:12:5",
"nodeType": "YulExpressionStatement",
"src": "187:12:5"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "88:117:5",
"nodeType": "YulFunctionDefinition",
"src": "88:117:5"
},
{
"body": {
"nativeSrc": "300:28:5",
"nodeType": "YulBlock",
"src": "300:28:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "317:1:5",
"nodeType": "YulLiteral",
"src": "317:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "320:1:5",
"nodeType": "YulLiteral",
"src": "320:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "310:6:5",
"nodeType": "YulIdentifier",
"src": "310:6:5"
},
"nativeSrc": "310:12:5",
"nodeType": "YulFunctionCall",
"src": "310:12:5"
},
"nativeSrc": "310:12:5",
"nodeType": "YulExpressionStatement",
"src": "310:12:5"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "211:117:5",
"nodeType": "YulFunctionDefinition",
"src": "211:117:5"
},
{
"body": {
"nativeSrc": "379:81:5",
"nodeType": "YulBlock",
"src": "379:81:5",
"statements": [
{
"nativeSrc": "389:65:5",
"nodeType": "YulAssignment",
"src": "389:65:5",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "404:5:5",
"nodeType": "YulIdentifier",
"src": "404:5:5"
},
{
"kind": "number",
"nativeSrc": "411:42:5",
"nodeType": "YulLiteral",
"src": "411:42:5",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "400:3:5",
"nodeType": "YulIdentifier",
"src": "400:3:5"
},
"nativeSrc": "400:54:5",
"nodeType": "YulFunctionCall",
"src": "400:54:5"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "389:7:5",
"nodeType": "YulIdentifier",
"src": "389:7:5"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nativeSrc": "334:126:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "361:5:5",
"nodeType": "YulTypedName",
"src": "361:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "371:7:5",
"nodeType": "YulTypedName",
"src": "371:7:5",
"type": ""
}
],
"src": "334:126:5"
},
{
"body": {
"nativeSrc": "511:51:5",
"nodeType": "YulBlock",
"src": "511:51:5",
"statements": [
{
"nativeSrc": "521:35:5",
"nodeType": "YulAssignment",
"src": "521:35:5",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "550:5:5",
"nodeType": "YulIdentifier",
"src": "550:5:5"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "532:17:5",
"nodeType": "YulIdentifier",
"src": "532:17:5"
},
"nativeSrc": "532:24:5",
"nodeType": "YulFunctionCall",
"src": "532:24:5"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "521:7:5",
"nodeType": "YulIdentifier",
"src": "521:7:5"
}
]
}
]
},
"name": "cleanup_t_address",
"nativeSrc": "466:96:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "493:5:5",
"nodeType": "YulTypedName",
"src": "493:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "503:7:5",
"nodeType": "YulTypedName",
"src": "503:7:5",
"type": ""
}
],
"src": "466:96:5"
},
{
"body": {
"nativeSrc": "611:79:5",
"nodeType": "YulBlock",
"src": "611:79:5",
"statements": [
{
"body": {
"nativeSrc": "668:16:5",
"nodeType": "YulBlock",
"src": "668:16:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "677:1:5",
"nodeType": "YulLiteral",
"src": "677:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "680:1:5",
"nodeType": "YulLiteral",
"src": "680:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "670:6:5",
"nodeType": "YulIdentifier",
"src": "670:6:5"
},
"nativeSrc": "670:12:5",
"nodeType": "YulFunctionCall",
"src": "670:12:5"
},
"nativeSrc": "670:12:5",
"nodeType": "YulExpressionStatement",
"src": "670:12:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "634:5:5",
"nodeType": "YulIdentifier",
"src": "634:5:5"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "659:5:5",
"nodeType": "YulIdentifier",
"src": "659:5:5"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "641:17:5",
"nodeType": "YulIdentifier",
"src": "641:17:5"
},
"nativeSrc": "641:24:5",
"nodeType": "YulFunctionCall",
"src": "641:24:5"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "631:2:5",
"nodeType": "YulIdentifier",
"src": "631:2:5"
},
"nativeSrc": "631:35:5",
"nodeType": "YulFunctionCall",
"src": "631:35:5"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "624:6:5",
"nodeType": "YulIdentifier",
"src": "624:6:5"
},
"nativeSrc": "624:43:5",
"nodeType": "YulFunctionCall",
"src": "624:43:5"
},
"nativeSrc": "621:63:5",
"nodeType": "YulIf",
"src": "621:63:5"
}
]
},
"name": "validator_revert_t_address",
"nativeSrc": "568:122:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "604:5:5",
"nodeType": "YulTypedName",
"src": "604:5:5",
"type": ""
}
],
"src": "568:122:5"
},
{
"body": {
"nativeSrc": "748:87:5",
"nodeType": "YulBlock",
"src": "748:87:5",
"statements": [
{
"nativeSrc": "758:29:5",
"nodeType": "YulAssignment",
"src": "758:29:5",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "780:6:5",
"nodeType": "YulIdentifier",
"src": "780:6:5"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "767:12:5",
"nodeType": "YulIdentifier",
"src": "767:12:5"
},
"nativeSrc": "767:20:5",
"nodeType": "YulFunctionCall",
"src": "767:20:5"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "758:5:5",
"nodeType": "YulIdentifier",
"src": "758:5:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "823:5:5",
"nodeType": "YulIdentifier",
"src": "823:5:5"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nativeSrc": "796:26:5",
"nodeType": "YulIdentifier",
"src": "796:26:5"
},
"nativeSrc": "796:33:5",
"nodeType": "YulFunctionCall",
"src": "796:33:5"
},
"nativeSrc": "796:33:5",
"nodeType": "YulExpressionStatement",
"src": "796:33:5"
}
]
},
"name": "abi_decode_t_address",
"nativeSrc": "696:139:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "726:6:5",
"nodeType": "YulTypedName",
"src": "726:6:5",
"type": ""
},
{
"name": "end",
"nativeSrc": "734:3:5",
"nodeType": "YulTypedName",
"src": "734:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "742:5:5",
"nodeType": "YulTypedName",
"src": "742:5:5",
"type": ""
}
],
"src": "696:139:5"
},
{
"body": {
"nativeSrc": "884:43:5",
"nodeType": "YulBlock",
"src": "884:43:5",
"statements": [
{
"nativeSrc": "894:27:5",
"nodeType": "YulAssignment",
"src": "894:27:5",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "909:5:5",
"nodeType": "YulIdentifier",
"src": "909:5:5"
},
{
"kind": "number",
"nativeSrc": "916:4:5",
"nodeType": "YulLiteral",
"src": "916:4:5",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "905:3:5",
"nodeType": "YulIdentifier",
"src": "905:3:5"
},
"nativeSrc": "905:16:5",
"nodeType": "YulFunctionCall",
"src": "905:16:5"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "894:7:5",
"nodeType": "YulIdentifier",
"src": "894:7:5"
}
]
}
]
},
"name": "cleanup_t_uint8",
"nativeSrc": "841:86:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "866:5:5",
"nodeType": "YulTypedName",
"src": "866:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "876:7:5",
"nodeType": "YulTypedName",
"src": "876:7:5",
"type": ""
}
],
"src": "841:86:5"
},
{
"body": {
"nativeSrc": "974:77:5",
"nodeType": "YulBlock",
"src": "974:77:5",
"statements": [
{
"body": {
"nativeSrc": "1029:16:5",
"nodeType": "YulBlock",
"src": "1029:16:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1038:1:5",
"nodeType": "YulLiteral",
"src": "1038:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1041:1:5",
"nodeType": "YulLiteral",
"src": "1041:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1031:6:5",
"nodeType": "YulIdentifier",
"src": "1031:6:5"
},
"nativeSrc": "1031:12:5",
"nodeType": "YulFunctionCall",
"src": "1031:12:5"
},
"nativeSrc": "1031:12:5",
"nodeType": "YulExpressionStatement",
"src": "1031:12:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "997:5:5",
"nodeType": "YulIdentifier",
"src": "997:5:5"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "1020:5:5",
"nodeType": "YulIdentifier",
"src": "1020:5:5"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nativeSrc": "1004:15:5",
"nodeType": "YulIdentifier",
"src": "1004:15:5"
},
"nativeSrc": "1004:22:5",
"nodeType": "YulFunctionCall",
"src": "1004:22:5"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "994:2:5",
"nodeType": "YulIdentifier",
"src": "994:2:5"
},
"nativeSrc": "994:33:5",
"nodeType": "YulFunctionCall",
"src": "994:33:5"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "987:6:5",
"nodeType": "YulIdentifier",
"src": "987:6:5"
},
"nativeSrc": "987:41:5",
"nodeType": "YulFunctionCall",
"src": "987:41:5"
},
"nativeSrc": "984:61:5",
"nodeType": "YulIf",
"src": "984:61:5"
}
]
},
"name": "validator_revert_t_uint8",
"nativeSrc": "933:118:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "967:5:5",
"nodeType": "YulTypedName",
"src": "967:5:5",
"type": ""
}
],
"src": "933:118:5"
},
{
"body": {
"nativeSrc": "1107:85:5",
"nodeType": "YulBlock",
"src": "1107:85:5",
"statements": [
{
"nativeSrc": "1117:29:5",
"nodeType": "YulAssignment",
"src": "1117:29:5",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "1139:6:5",
"nodeType": "YulIdentifier",
"src": "1139:6:5"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "1126:12:5",
"nodeType": "YulIdentifier",
"src": "1126:12:5"
},
"nativeSrc": "1126:20:5",
"nodeType": "YulFunctionCall",
"src": "1126:20:5"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "1117:5:5",
"nodeType": "YulIdentifier",
"src": "1117:5:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "1180:5:5",
"nodeType": "YulIdentifier",
"src": "1180:5:5"
}
],
"functionName": {
"name": "validator_revert_t_uint8",
"nativeSrc": "1155:24:5",
"nodeType": "YulIdentifier",
"src": "1155:24:5"
},
"nativeSrc": "1155:31:5",
"nodeType": "YulFunctionCall",
"src": "1155:31:5"
},
"nativeSrc": "1155:31:5",
"nodeType": "YulExpressionStatement",
"src": "1155:31:5"
}
]
},
"name": "abi_decode_t_uint8",
"nativeSrc": "1057:135:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "1085:6:5",
"nodeType": "YulTypedName",
"src": "1085:6:5",
"type": ""
},
{
"name": "end",
"nativeSrc": "1093:3:5",
"nodeType": "YulTypedName",
"src": "1093:3:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "1101:5:5",
"nodeType": "YulTypedName",
"src": "1101:5:5",
"type": ""
}
],
"src": "1057:135:5"
},
{
"body": {
"nativeSrc": "1279:389:5",
"nodeType": "YulBlock",
"src": "1279:389:5",
"statements": [
{
"body": {
"nativeSrc": "1325:83:5",
"nodeType": "YulBlock",
"src": "1325:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "1327:77:5",
"nodeType": "YulIdentifier",
"src": "1327:77:5"
},
"nativeSrc": "1327:79:5",
"nodeType": "YulFunctionCall",
"src": "1327:79:5"
},
"nativeSrc": "1327:79:5",
"nodeType": "YulExpressionStatement",
"src": "1327:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "1300:7:5",
"nodeType": "YulIdentifier",
"src": "1300:7:5"
},
{
"name": "headStart",
"nativeSrc": "1309:9:5",
"nodeType": "YulIdentifier",
"src": "1309:9:5"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "1296:3:5",
"nodeType": "YulIdentifier",
"src": "1296:3:5"
},
"nativeSrc": "1296:23:5",
"nodeType": "YulFunctionCall",
"src": "1296:23:5"
},
{
"kind": "number",
"nativeSrc": "1321:2:5",
"nodeType": "YulLiteral",
"src": "1321:2:5",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "1292:3:5",
"nodeType": "YulIdentifier",
"src": "1292:3:5"
},
"nativeSrc": "1292:32:5",
"nodeType": "YulFunctionCall",
"src": "1292:32:5"
},
"nativeSrc": "1289:119:5",
"nodeType": "YulIf",
"src": "1289:119:5"
},
{
"nativeSrc": "1418:117:5",
"nodeType": "YulBlock",
"src": "1418:117:5",
"statements": [
{
"nativeSrc": "1433:15:5",
"nodeType": "YulVariableDeclaration",
"src": "1433:15:5",
"value": {
"kind": "number",
"nativeSrc": "1447:1:5",
"nodeType": "YulLiteral",
"src": "1447:1:5",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "1437:6:5",
"nodeType": "YulTypedName",
"src": "1437:6:5",
"type": ""
}
]
},
{
"nativeSrc": "1462:63:5",
"nodeType": "YulAssignment",
"src": "1462:63:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1497:9:5",
"nodeType": "YulIdentifier",
"src": "1497:9:5"
},
{
"name": "offset",
"nativeSrc": "1508:6:5",
"nodeType": "YulIdentifier",
"src": "1508:6:5"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1493:3:5",
"nodeType": "YulIdentifier",
"src": "1493:3:5"
},
"nativeSrc": "1493:22:5",
"nodeType": "YulFunctionCall",
"src": "1493:22:5"
},
{
"name": "dataEnd",
"nativeSrc": "1517:7:5",
"nodeType": "YulIdentifier",
"src": "1517:7:5"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "1472:20:5",
"nodeType": "YulIdentifier",
"src": "1472:20:5"
},
"nativeSrc": "1472:53:5",
"nodeType": "YulFunctionCall",
"src": "1472:53:5"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "1462:6:5",
"nodeType": "YulIdentifier",
"src": "1462:6:5"
}
]
}
]
},
{
"nativeSrc": "1545:116:5",
"nodeType": "YulBlock",
"src": "1545:116:5",
"statements": [
{
"nativeSrc": "1560:16:5",
"nodeType": "YulVariableDeclaration",
"src": "1560:16:5",
"value": {
"kind": "number",
"nativeSrc": "1574:2:5",
"nodeType": "YulLiteral",
"src": "1574:2:5",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "1564:6:5",
"nodeType": "YulTypedName",
"src": "1564:6:5",
"type": ""
}
]
},
{
"nativeSrc": "1590:61:5",
"nodeType": "YulAssignment",
"src": "1590:61:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1623:9:5",
"nodeType": "YulIdentifier",
"src": "1623:9:5"
},
{
"name": "offset",
"nativeSrc": "1634:6:5",
"nodeType": "YulIdentifier",
"src": "1634:6:5"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1619:3:5",
"nodeType": "YulIdentifier",
"src": "1619:3:5"
},
"nativeSrc": "1619:22:5",
"nodeType": "YulFunctionCall",
"src": "1619:22:5"
},
{
"name": "dataEnd",
"nativeSrc": "1643:7:5",
"nodeType": "YulIdentifier",
"src": "1643:7:5"
}
],
"functionName": {
"name": "abi_decode_t_uint8",
"nativeSrc": "1600:18:5",
"nodeType": "YulIdentifier",
"src": "1600:18:5"
},
"nativeSrc": "1600:51:5",
"nodeType": "YulFunctionCall",
"src": "1600:51:5"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "1590:6:5",
"nodeType": "YulIdentifier",
"src": "1590:6:5"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint8",
"nativeSrc": "1198:470:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1241:9:5",
"nodeType": "YulTypedName",
"src": "1241:9:5",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "1252:7:5",
"nodeType": "YulTypedName",
"src": "1252:7:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "1264:6:5",
"nodeType": "YulTypedName",
"src": "1264:6:5",
"type": ""
},
{
"name": "value1",
"nativeSrc": "1272:6:5",
"nodeType": "YulTypedName",
"src": "1272:6:5",
"type": ""
}
],
"src": "1198:470:5"
},
{
"body": {
"nativeSrc": "1716:48:5",
"nodeType": "YulBlock",
"src": "1716:48:5",
"statements": [
{
"nativeSrc": "1726:32:5",
"nodeType": "YulAssignment",
"src": "1726:32:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1751:5:5",
"nodeType": "YulIdentifier",
"src": "1751:5:5"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "1744:6:5",
"nodeType": "YulIdentifier",
"src": "1744:6:5"
},
"nativeSrc": "1744:13:5",
"nodeType": "YulFunctionCall",
"src": "1744:13:5"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "1737:6:5",
"nodeType": "YulIdentifier",
"src": "1737:6:5"
},
"nativeSrc": "1737:21:5",
"nodeType": "YulFunctionCall",
"src": "1737:21:5"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1726:7:5",
"nodeType": "YulIdentifier",
"src": "1726:7:5"
}
]
}
]
},
"name": "cleanup_t_bool",
"nativeSrc": "1674:90:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1698:5:5",
"nodeType": "YulTypedName",
"src": "1698:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1708:7:5",
"nodeType": "YulTypedName",
"src": "1708:7:5",
"type": ""
}
],
"src": "1674:90:5"
},
{
"body": {
"nativeSrc": "1829:50:5",
"nodeType": "YulBlock",
"src": "1829:50:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "1846:3:5",
"nodeType": "YulIdentifier",
"src": "1846:3:5"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "1866:5:5",
"nodeType": "YulIdentifier",
"src": "1866:5:5"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nativeSrc": "1851:14:5",
"nodeType": "YulIdentifier",
"src": "1851:14:5"
},
"nativeSrc": "1851:21:5",
"nodeType": "YulFunctionCall",
"src": "1851:21:5"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1839:6:5",
"nodeType": "YulIdentifier",
"src": "1839:6:5"
},
"nativeSrc": "1839:34:5",
"nodeType": "YulFunctionCall",
"src": "1839:34:5"
},
"nativeSrc": "1839:34:5",
"nodeType": "YulExpressionStatement",
"src": "1839:34:5"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "1770:109:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1817:5:5",
"nodeType": "YulTypedName",
"src": "1817:5:5",
"type": ""
},
{
"name": "pos",
"nativeSrc": "1824:3:5",
"nodeType": "YulTypedName",
"src": "1824:3:5",
"type": ""
}
],
"src": "1770:109:5"
},
{
"body": {
"nativeSrc": "1977:118:5",
"nodeType": "YulBlock",
"src": "1977:118:5",
"statements": [
{
"nativeSrc": "1987:26:5",
"nodeType": "YulAssignment",
"src": "1987:26:5",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "1999:9:5",
"nodeType": "YulIdentifier",
"src": "1999:9:5"
},
{
"kind": "number",
"nativeSrc": "2010:2:5",
"nodeType": "YulLiteral",
"src": "2010:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1995:3:5",
"nodeType": "YulIdentifier",
"src": "1995:3:5"
},
"nativeSrc": "1995:18:5",
"nodeType": "YulFunctionCall",
"src": "1995:18:5"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1987:4:5",
"nodeType": "YulIdentifier",
"src": "1987:4:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "2061:6:5",
"nodeType": "YulIdentifier",
"src": "2061:6:5"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "2074:9:5",
"nodeType": "YulIdentifier",
"src": "2074:9:5"
},
{
"kind": "number",
"nativeSrc": "2085:1:5",
"nodeType": "YulLiteral",
"src": "2085:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2070:3:5",
"nodeType": "YulIdentifier",
"src": "2070:3:5"
},
"nativeSrc": "2070:17:5",
"nodeType": "YulFunctionCall",
"src": "2070:17:5"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "2023:37:5",
"nodeType": "YulIdentifier",
"src": "2023:37:5"
},
"nativeSrc": "2023:65:5",
"nodeType": "YulFunctionCall",
"src": "2023:65:5"
},
"nativeSrc": "2023:65:5",
"nodeType": "YulExpressionStatement",
"src": "2023:65:5"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nativeSrc": "1885:210:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1949:9:5",
"nodeType": "YulTypedName",
"src": "1949:9:5",
"type": ""
},
{
"name": "value0",
"nativeSrc": "1961:6:5",
"nodeType": "YulTypedName",
"src": "1961:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "1972:4:5",
"nodeType": "YulTypedName",
"src": "1972:4:5",
"type": ""
}
],
"src": "1885:210:5"
},
{
"body": {
"nativeSrc": "2167:263:5",
"nodeType": "YulBlock",
"src": "2167:263:5",
"statements": [
{
"body": {
"nativeSrc": "2213:83:5",
"nodeType": "YulBlock",
"src": "2213:83:5",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "2215:77:5",
"nodeType": "YulIdentifier",
"src": "2215:77:5"
},
"nativeSrc": "2215:79:5",
"nodeType": "YulFunctionCall",
"src": "2215:79:5"
},
"nativeSrc": "2215:79:5",
"nodeType": "YulExpressionStatement",
"src": "2215:79:5"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "2188:7:5",
"nodeType": "YulIdentifier",
"src": "2188:7:5"
},
{
"name": "headStart",
"nativeSrc": "2197:9:5",
"nodeType": "YulIdentifier",
"src": "2197:9:5"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "2184:3:5",
"nodeType": "YulIdentifier",
"src": "2184:3:5"
},
"nativeSrc": "2184:23:5",
"nodeType": "YulFunctionCall",
"src": "2184:23:5"
},
{
"kind": "number",
"nativeSrc": "2209:2:5",
"nodeType": "YulLiteral",
"src": "2209:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "2180:3:5",
"nodeType": "YulIdentifier",
"src": "2180:3:5"
},
"nativeSrc": "2180:32:5",
"nodeType": "YulFunctionCall",
"src": "2180:32:5"
},
"nativeSrc": "2177:119:5",
"nodeType": "YulIf",
"src": "2177:119:5"
},
{
"nativeSrc": "2306:117:5",
"nodeType": "YulBlock",
"src": "2306:117:5",
"statements": [
{
"nativeSrc": "2321:15:5",
"nodeType": "YulVariableDeclaration",
"src": "2321:15:5",
"value": {
"kind": "number",
"nativeSrc": "2335:1:5",
"nodeType": "YulLiteral",
"src": "2335:1:5",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "2325:6:5",
"nodeType": "YulTypedName",
"src": "2325:6:5",
"type": ""
}
]
},
{
"nativeSrc": "2350:63:5",
"nodeType": "YulAssignment",
"src": "2350:63:5",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "2385:9:5",
"nodeType": "YulIdentifier",
"src": "2385:9:5"
},
{
"name": "offset",
"nativeSrc": "2396:6:5",
"nodeType": "YulIdentifier",
"src": "2396:6:5"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2381:3:5",
"nodeType": "YulIdentifier",
"src": "2381:3:5"
},
"nativeSrc": "2381:22:5",
"nodeType": "YulFunctionCall",
"src": "2381:22:5"
},
{
"name": "dataEnd",
"nativeSrc": "2405:7:5",
"nodeType": "YulIdentifier",
"src": "2405:7:5"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "2360:20:5",
"nodeType": "YulIdentifier",
"src": "2360:20:5"
},
"nativeSrc": "2360:53:5",
"nodeType": "YulFunctionCall",
"src": "2360:53:5"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "2350:6:5",
"nodeType": "YulIdentifier",
"src": "2350:6:5"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nativeSrc": "2101:329:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "2137:9:5",
"nodeType": "YulTypedName",
"src": "2137:9:5",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "2148:7:5",
"nodeType": "YulTypedName",
"src": "2148:7:5",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "2160:6:5",
"nodeType": "YulTypedName",
"src": "2160:6:5",
"type": ""
}
],
"src": "2101:329:5"
},
{
"body": {
"nativeSrc": "2464:152:5",
"nodeType": "YulBlock",
"src": "2464:152:5",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2481:1:5",
"nodeType": "YulLiteral",
"src": "2481:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2484:77:5",
"nodeType": "YulLiteral",
"src": "2484:77:5",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "2474:6:5",
"nodeType": "YulIdentifier",
"src": "2474:6:5"
},
"nativeSrc": "2474:88:5",
"nodeType": "YulFunctionCall",
"src": "2474:88:5"
},
"nativeSrc": "2474:88:5",
"nodeType": "YulExpressionStatement",
"src": "2474:88:5"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2578:1:5",
"nodeType": "YulLiteral",
"src": "2578:1:5",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "2581:4:5",
"nodeType": "YulLiteral",
"src": "2581:4:5",
"type": "",
"value": "0x21"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "2571:6:5",
"nodeType": "YulIdentifier",
"src": "2571:6:5"
},
"nativeSrc": "2571:15:5",
"nodeType": "YulFunctionCall",
"src": "2571:15:5"
},
"nativeSrc": "2571:15:5",
"nodeType": "YulExpressionStatement",
"src": "2571:15:5"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2602:1:5",
"nodeType": "YulLiteral",
"src": "2602:1:5",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2605:4:5",
"nodeType": "YulLiteral",
"src": "2605:4:5",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2595:6:5",
"nodeType": "YulIdentifier",
"src": "2595:6:5"
},
"nativeSrc": "2595:15:5",
"nodeType": "YulFunctionCall",
"src": "2595:15:5"
},
"nativeSrc": "2595:15:5",
"nodeType": "YulExpressionStatement",
"src": "2595:15:5"
}
]
},
"name": "panic_error_0x21",
"nativeSrc": "2436:180:5",
"nodeType": "YulFunctionDefinition",
"src": "2436:180:5"
},
{
"body": {
"nativeSrc": "2687:53:5",
"nodeType": "YulBlock",
"src": "2687:53:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "2704:3:5",
"nodeType": "YulIdentifier",
"src": "2704:3:5"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2727:5:5",
"nodeType": "YulIdentifier",
"src": "2727:5:5"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "2709:17:5",
"nodeType": "YulIdentifier",
"src": "2709:17:5"
},
"nativeSrc": "2709:24:5",
"nodeType": "YulFunctionCall",
"src": "2709:24:5"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "2697:6:5",
"nodeType": "YulIdentifier",
"src": "2697:6:5"
},
"nativeSrc": "2697:37:5",
"nodeType": "YulFunctionCall",
"src": "2697:37:5"
},
"nativeSrc": "2697:37:5",
"nodeType": "YulExpressionStatement",
"src": "2697:37:5"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "2622:118:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2675:5:5",
"nodeType": "YulTypedName",
"src": "2675:5:5",
"type": ""
},
{
"name": "pos",
"nativeSrc": "2682:3:5",
"nodeType": "YulTypedName",
"src": "2682:3:5",
"type": ""
}
],
"src": "2622:118:5"
},
{
"body": {
"nativeSrc": "2807:51:5",
"nodeType": "YulBlock",
"src": "2807:51:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "2824:3:5",
"nodeType": "YulIdentifier",
"src": "2824:3:5"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2845:5:5",
"nodeType": "YulIdentifier",
"src": "2845:5:5"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nativeSrc": "2829:15:5",
"nodeType": "YulIdentifier",
"src": "2829:15:5"
},
"nativeSrc": "2829:22:5",
"nodeType": "YulFunctionCall",
"src": "2829:22:5"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "2817:6:5",
"nodeType": "YulIdentifier",
"src": "2817:6:5"
},
"nativeSrc": "2817:35:5",
"nodeType": "YulFunctionCall",
"src": "2817:35:5"
},
"nativeSrc": "2817:35:5",
"nodeType": "YulExpressionStatement",
"src": "2817:35:5"
}
]
},
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nativeSrc": "2746:112:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2795:5:5",
"nodeType": "YulTypedName",
"src": "2795:5:5",
"type": ""
},
{
"name": "pos",
"nativeSrc": "2802:3:5",
"nodeType": "YulTypedName",
"src": "2802:3:5",
"type": ""
}
],
"src": "2746:112:5"
},
{
"body": {
"nativeSrc": "2986:202:5",
"nodeType": "YulBlock",
"src": "2986:202:5",
"statements": [
{
"nativeSrc": "2996:26:5",
"nodeType": "YulAssignment",
"src": "2996:26:5",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "3008:9:5",
"nodeType": "YulIdentifier",
"src": "3008:9:5"
},
{
"kind": "number",
"nativeSrc": "3019:2:5",
"nodeType": "YulLiteral",
"src": "3019:2:5",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3004:3:5",
"nodeType": "YulIdentifier",
"src": "3004:3:5"
},
"nativeSrc": "3004:18:5",
"nodeType": "YulFunctionCall",
"src": "3004:18:5"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "2996:4:5",
"nodeType": "YulIdentifier",
"src": "2996:4:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "3076:6:5",
"nodeType": "YulIdentifier",
"src": "3076:6:5"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3089:9:5",
"nodeType": "YulIdentifier",
"src": "3089:9:5"
},
{
"kind": "number",
"nativeSrc": "3100:1:5",
"nodeType": "YulLiteral",
"src": "3100:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3085:3:5",
"nodeType": "YulIdentifier",
"src": "3085:3:5"
},
"nativeSrc": "3085:17:5",
"nodeType": "YulFunctionCall",
"src": "3085:17:5"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "3032:43:5",
"nodeType": "YulIdentifier",
"src": "3032:43:5"
},
"nativeSrc": "3032:71:5",
"nodeType": "YulFunctionCall",
"src": "3032:71:5"
},
"nativeSrc": "3032:71:5",
"nodeType": "YulExpressionStatement",
"src": "3032:71:5"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "3153:6:5",
"nodeType": "YulIdentifier",
"src": "3153:6:5"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3166:9:5",
"nodeType": "YulIdentifier",
"src": "3166:9:5"
},
{
"kind": "number",
"nativeSrc": "3177:2:5",
"nodeType": "YulLiteral",
"src": "3177:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3162:3:5",
"nodeType": "YulIdentifier",
"src": "3162:3:5"
},
"nativeSrc": "3162:18:5",
"nodeType": "YulFunctionCall",
"src": "3162:18:5"
}
],
"functionName": {
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nativeSrc": "3113:39:5",
"nodeType": "YulIdentifier",
"src": "3113:39:5"
},
"nativeSrc": "3113:68:5",
"nodeType": "YulFunctionCall",
"src": "3113:68:5"
},
"nativeSrc": "3113:68:5",
"nodeType": "YulExpressionStatement",
"src": "3113:68:5"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed",
"nativeSrc": "2864:324:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "2950:9:5",
"nodeType": "YulTypedName",
"src": "2950:9:5",
"type": ""
},
{
"name": "value1",
"nativeSrc": "2962:6:5",
"nodeType": "YulTypedName",
"src": "2962:6:5",
"type": ""
},
{
"name": "value0",
"nativeSrc": "2970:6:5",
"nodeType": "YulTypedName",
"src": "2970:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "2981:4:5",
"nodeType": "YulTypedName",
"src": "2981:4:5",
"type": ""
}
],
"src": "2864:324:5"
},
{
"body": {
"nativeSrc": "3239:32:5",
"nodeType": "YulBlock",
"src": "3239:32:5",
"statements": [
{
"nativeSrc": "3249:16:5",
"nodeType": "YulAssignment",
"src": "3249:16:5",
"value": {
"name": "value",
"nativeSrc": "3260:5:5",
"nodeType": "YulIdentifier",
"src": "3260:5:5"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "3249:7:5",
"nodeType": "YulIdentifier",
"src": "3249:7:5"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nativeSrc": "3194:77:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3221:5:5",
"nodeType": "YulTypedName",
"src": "3221:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "3231:7:5",
"nodeType": "YulTypedName",
"src": "3231:7:5",
"type": ""
}
],
"src": "3194:77:5"
},
{
"body": {
"nativeSrc": "3324:32:5",
"nodeType": "YulBlock",
"src": "3324:32:5",
"statements": [
{
"nativeSrc": "3334:16:5",
"nodeType": "YulAssignment",
"src": "3334:16:5",
"value": {
"name": "value",
"nativeSrc": "3345:5:5",
"nodeType": "YulIdentifier",
"src": "3345:5:5"
},
"variableNames": [
{
"name": "aligned",
"nativeSrc": "3334:7:5",
"nodeType": "YulIdentifier",
"src": "3334:7:5"
}
]
}
]
},
"name": "leftAlign_t_bytes32",
"nativeSrc": "3277:79:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3306:5:5",
"nodeType": "YulTypedName",
"src": "3306:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nativeSrc": "3316:7:5",
"nodeType": "YulTypedName",
"src": "3316:7:5",
"type": ""
}
],
"src": "3277:79:5"
},
{
"body": {
"nativeSrc": "3445:74:5",
"nodeType": "YulBlock",
"src": "3445:74:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "3462:3:5",
"nodeType": "YulIdentifier",
"src": "3462:3:5"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "3505:5:5",
"nodeType": "YulIdentifier",
"src": "3505:5:5"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nativeSrc": "3487:17:5",
"nodeType": "YulIdentifier",
"src": "3487:17:5"
},
"nativeSrc": "3487:24:5",
"nodeType": "YulFunctionCall",
"src": "3487:24:5"
}
],
"functionName": {
"name": "leftAlign_t_bytes32",
"nativeSrc": "3467:19:5",
"nodeType": "YulIdentifier",
"src": "3467:19:5"
},
"nativeSrc": "3467:45:5",
"nodeType": "YulFunctionCall",
"src": "3467:45:5"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "3455:6:5",
"nodeType": "YulIdentifier",
"src": "3455:6:5"
},
"nativeSrc": "3455:58:5",
"nodeType": "YulFunctionCall",
"src": "3455:58:5"
},
"nativeSrc": "3455:58:5",
"nodeType": "YulExpressionStatement",
"src": "3455:58:5"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nativeSrc": "3362:157:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3433:5:5",
"nodeType": "YulTypedName",
"src": "3433:5:5",
"type": ""
},
{
"name": "pos",
"nativeSrc": "3440:3:5",
"nodeType": "YulTypedName",
"src": "3440:3:5",
"type": ""
}
],
"src": "3362:157:5"
},
{
"body": {
"nativeSrc": "3567:52:5",
"nodeType": "YulBlock",
"src": "3567:52:5",
"statements": [
{
"nativeSrc": "3577:35:5",
"nodeType": "YulAssignment",
"src": "3577:35:5",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "3602:2:5",
"nodeType": "YulLiteral",
"src": "3602:2:5",
"type": "",
"value": "96"
},
{
"name": "value",
"nativeSrc": "3606:5:5",
"nodeType": "YulIdentifier",
"src": "3606:5:5"
}
],
"functionName": {
"name": "shl",
"nativeSrc": "3598:3:5",
"nodeType": "YulIdentifier",
"src": "3598:3:5"
},
"nativeSrc": "3598:14:5",
"nodeType": "YulFunctionCall",
"src": "3598:14:5"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "3577:8:5",
"nodeType": "YulIdentifier",
"src": "3577:8:5"
}
]
}
]
},
"name": "shift_left_96",
"nativeSrc": "3525:94:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3548:5:5",
"nodeType": "YulTypedName",
"src": "3548:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "3558:8:5",
"nodeType": "YulTypedName",
"src": "3558:8:5",
"type": ""
}
],
"src": "3525:94:5"
},
{
"body": {
"nativeSrc": "3672:47:5",
"nodeType": "YulBlock",
"src": "3672:47:5",
"statements": [
{
"nativeSrc": "3682:31:5",
"nodeType": "YulAssignment",
"src": "3682:31:5",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "3707:5:5",
"nodeType": "YulIdentifier",
"src": "3707:5:5"
}
],
"functionName": {
"name": "shift_left_96",
"nativeSrc": "3693:13:5",
"nodeType": "YulIdentifier",
"src": "3693:13:5"
},
"nativeSrc": "3693:20:5",
"nodeType": "YulFunctionCall",
"src": "3693:20:5"
},
"variableNames": [
{
"name": "aligned",
"nativeSrc": "3682:7:5",
"nodeType": "YulIdentifier",
"src": "3682:7:5"
}
]
}
]
},
"name": "leftAlign_t_uint160",
"nativeSrc": "3625:94:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3654:5:5",
"nodeType": "YulTypedName",
"src": "3654:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nativeSrc": "3664:7:5",
"nodeType": "YulTypedName",
"src": "3664:7:5",
"type": ""
}
],
"src": "3625:94:5"
},
{
"body": {
"nativeSrc": "3772:53:5",
"nodeType": "YulBlock",
"src": "3772:53:5",
"statements": [
{
"nativeSrc": "3782:37:5",
"nodeType": "YulAssignment",
"src": "3782:37:5",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "3813:5:5",
"nodeType": "YulIdentifier",
"src": "3813:5:5"
}
],
"functionName": {
"name": "leftAlign_t_uint160",
"nativeSrc": "3793:19:5",
"nodeType": "YulIdentifier",
"src": "3793:19:5"
},
"nativeSrc": "3793:26:5",
"nodeType": "YulFunctionCall",
"src": "3793:26:5"
},
"variableNames": [
{
"name": "aligned",
"nativeSrc": "3782:7:5",
"nodeType": "YulIdentifier",
"src": "3782:7:5"
}
]
}
]
},
"name": "leftAlign_t_address",
"nativeSrc": "3725:100:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3754:5:5",
"nodeType": "YulTypedName",
"src": "3754:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nativeSrc": "3764:7:5",
"nodeType": "YulTypedName",
"src": "3764:7:5",
"type": ""
}
],
"src": "3725:100:5"
},
{
"body": {
"nativeSrc": "3914:74:5",
"nodeType": "YulBlock",
"src": "3914:74:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "3931:3:5",
"nodeType": "YulIdentifier",
"src": "3931:3:5"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "3974:5:5",
"nodeType": "YulIdentifier",
"src": "3974:5:5"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "3956:17:5",
"nodeType": "YulIdentifier",
"src": "3956:17:5"
},
"nativeSrc": "3956:24:5",
"nodeType": "YulFunctionCall",
"src": "3956:24:5"
}
],
"functionName": {
"name": "leftAlign_t_address",
"nativeSrc": "3936:19:5",
"nodeType": "YulIdentifier",
"src": "3936:19:5"
},
"nativeSrc": "3936:45:5",
"nodeType": "YulFunctionCall",
"src": "3936:45:5"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "3924:6:5",
"nodeType": "YulIdentifier",
"src": "3924:6:5"
},
"nativeSrc": "3924:58:5",
"nodeType": "YulFunctionCall",
"src": "3924:58:5"
},
"nativeSrc": "3924:58:5",
"nodeType": "YulExpressionStatement",
"src": "3924:58:5"
}
]
},
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nativeSrc": "3831:157:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3902:5:5",
"nodeType": "YulTypedName",
"src": "3902:5:5",
"type": ""
},
{
"name": "pos",
"nativeSrc": "3909:3:5",
"nodeType": "YulTypedName",
"src": "3909:3:5",
"type": ""
}
],
"src": "3831:157:5"
},
{
"body": {
"nativeSrc": "4138:253:5",
"nodeType": "YulBlock",
"src": "4138:253:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "4211:6:5",
"nodeType": "YulIdentifier",
"src": "4211:6:5"
},
{
"name": "pos",
"nativeSrc": "4220:3:5",
"nodeType": "YulIdentifier",
"src": "4220:3:5"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nativeSrc": "4149:61:5",
"nodeType": "YulIdentifier",
"src": "4149:61:5"
},
"nativeSrc": "4149:75:5",
"nodeType": "YulFunctionCall",
"src": "4149:75:5"
},
"nativeSrc": "4149:75:5",
"nodeType": "YulExpressionStatement",
"src": "4149:75:5"
},
{
"nativeSrc": "4233:19:5",
"nodeType": "YulAssignment",
"src": "4233:19:5",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "4244:3:5",
"nodeType": "YulIdentifier",
"src": "4244:3:5"
},
{
"kind": "number",
"nativeSrc": "4249:2:5",
"nodeType": "YulLiteral",
"src": "4249:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4240:3:5",
"nodeType": "YulIdentifier",
"src": "4240:3:5"
},
"nativeSrc": "4240:12:5",
"nodeType": "YulFunctionCall",
"src": "4240:12:5"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "4233:3:5",
"nodeType": "YulIdentifier",
"src": "4233:3:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "4324:6:5",
"nodeType": "YulIdentifier",
"src": "4324:6:5"
},
{
"name": "pos",
"nativeSrc": "4333:3:5",
"nodeType": "YulIdentifier",
"src": "4333:3:5"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nativeSrc": "4262:61:5",
"nodeType": "YulIdentifier",
"src": "4262:61:5"
},
"nativeSrc": "4262:75:5",
"nodeType": "YulFunctionCall",
"src": "4262:75:5"
},
"nativeSrc": "4262:75:5",
"nodeType": "YulExpressionStatement",
"src": "4262:75:5"
},
{
"nativeSrc": "4346:19:5",
"nodeType": "YulAssignment",
"src": "4346:19:5",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "4357:3:5",
"nodeType": "YulIdentifier",
"src": "4357:3:5"
},
{
"kind": "number",
"nativeSrc": "4362:2:5",
"nodeType": "YulLiteral",
"src": "4362:2:5",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4353:3:5",
"nodeType": "YulIdentifier",
"src": "4353:3:5"
},
"nativeSrc": "4353:12:5",
"nodeType": "YulFunctionCall",
"src": "4353:12:5"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "4346:3:5",
"nodeType": "YulIdentifier",
"src": "4346:3:5"
}
]
},
{
"nativeSrc": "4375:10:5",
"nodeType": "YulAssignment",
"src": "4375:10:5",
"value": {
"name": "pos",
"nativeSrc": "4382:3:5",
"nodeType": "YulIdentifier",
"src": "4382:3:5"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "4375:3:5",
"nodeType": "YulIdentifier",
"src": "4375:3:5"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bytes32_t_address__to_t_bytes32_t_address__nonPadded_inplace_fromStack_reversed",
"nativeSrc": "3994:397:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "4109:3:5",
"nodeType": "YulTypedName",
"src": "4109:3:5",
"type": ""
},
{
"name": "value1",
"nativeSrc": "4115:6:5",
"nodeType": "YulTypedName",
"src": "4115:6:5",
"type": ""
},
{
"name": "value0",
"nativeSrc": "4123:6:5",
"nodeType": "YulTypedName",
"src": "4123:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "4134:3:5",
"nodeType": "YulTypedName",
"src": "4134:3:5",
"type": ""
}
],
"src": "3994:397:5"
},
{
"body": {
"nativeSrc": "4442:32:5",
"nodeType": "YulBlock",
"src": "4442:32:5",
"statements": [
{
"nativeSrc": "4452:16:5",
"nodeType": "YulAssignment",
"src": "4452:16:5",
"value": {
"name": "value",
"nativeSrc": "4463:5:5",
"nodeType": "YulIdentifier",
"src": "4463:5:5"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "4452:7:5",
"nodeType": "YulIdentifier",
"src": "4452:7:5"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "4397:77:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4424:5:5",
"nodeType": "YulTypedName",
"src": "4424:5:5",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "4434:7:5",
"nodeType": "YulTypedName",
"src": "4434:7:5",
"type": ""
}
],
"src": "4397:77:5"
},
{
"body": {
"nativeSrc": "4545:53:5",
"nodeType": "YulBlock",
"src": "4545:53:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "4562:3:5",
"nodeType": "YulIdentifier",
"src": "4562:3:5"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "4585:5:5",
"nodeType": "YulIdentifier",
"src": "4585:5:5"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "4567:17:5",
"nodeType": "YulIdentifier",
"src": "4567:17:5"
},
"nativeSrc": "4567:24:5",
"nodeType": "YulFunctionCall",
"src": "4567:24:5"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "4555:6:5",
"nodeType": "YulIdentifier",
"src": "4555:6:5"
},
"nativeSrc": "4555:37:5",
"nodeType": "YulFunctionCall",
"src": "4555:37:5"
},
"nativeSrc": "4555:37:5",
"nodeType": "YulExpressionStatement",
"src": "4555:37:5"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "4480:118:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4533:5:5",
"nodeType": "YulTypedName",
"src": "4533:5:5",
"type": ""
},
{
"name": "pos",
"nativeSrc": "4540:3:5",
"nodeType": "YulTypedName",
"src": "4540:3:5",
"type": ""
}
],
"src": "4480:118:5"
},
{
"body": {
"nativeSrc": "4758:288:5",
"nodeType": "YulBlock",
"src": "4758:288:5",
"statements": [
{
"nativeSrc": "4768:26:5",
"nodeType": "YulAssignment",
"src": "4768:26:5",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "4780:9:5",
"nodeType": "YulIdentifier",
"src": "4780:9:5"
},
{
"kind": "number",
"nativeSrc": "4791:2:5",
"nodeType": "YulLiteral",
"src": "4791:2:5",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4776:3:5",
"nodeType": "YulIdentifier",
"src": "4776:3:5"
},
"nativeSrc": "4776:18:5",
"nodeType": "YulFunctionCall",
"src": "4776:18:5"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "4768:4:5",
"nodeType": "YulIdentifier",
"src": "4768:4:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "4848:6:5",
"nodeType": "YulIdentifier",
"src": "4848:6:5"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4861:9:5",
"nodeType": "YulIdentifier",
"src": "4861:9:5"
},
{
"kind": "number",
"nativeSrc": "4872:1:5",
"nodeType": "YulLiteral",
"src": "4872:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4857:3:5",
"nodeType": "YulIdentifier",
"src": "4857:3:5"
},
"nativeSrc": "4857:17:5",
"nodeType": "YulFunctionCall",
"src": "4857:17:5"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "4804:43:5",
"nodeType": "YulIdentifier",
"src": "4804:43:5"
},
"nativeSrc": "4804:71:5",
"nodeType": "YulFunctionCall",
"src": "4804:71:5"
},
"nativeSrc": "4804:71:5",
"nodeType": "YulExpressionStatement",
"src": "4804:71:5"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "4929:6:5",
"nodeType": "YulIdentifier",
"src": "4929:6:5"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4942:9:5",
"nodeType": "YulIdentifier",
"src": "4942:9:5"
},
{
"kind": "number",
"nativeSrc": "4953:2:5",
"nodeType": "YulLiteral",
"src": "4953:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4938:3:5",
"nodeType": "YulIdentifier",
"src": "4938:3:5"
},
"nativeSrc": "4938:18:5",
"nodeType": "YulFunctionCall",
"src": "4938:18:5"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "4885:43:5",
"nodeType": "YulIdentifier",
"src": "4885:43:5"
},
"nativeSrc": "4885:72:5",
"nodeType": "YulFunctionCall",
"src": "4885:72:5"
},
"nativeSrc": "4885:72:5",
"nodeType": "YulExpressionStatement",
"src": "4885:72:5"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "5011:6:5",
"nodeType": "YulIdentifier",
"src": "5011:6:5"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5024:9:5",
"nodeType": "YulIdentifier",
"src": "5024:9:5"
},
{
"kind": "number",
"nativeSrc": "5035:2:5",
"nodeType": "YulLiteral",
"src": "5035:2:5",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5020:3:5",
"nodeType": "YulIdentifier",
"src": "5020:3:5"
},
"nativeSrc": "5020:18:5",
"nodeType": "YulFunctionCall",
"src": "5020:18:5"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "4967:43:5",
"nodeType": "YulIdentifier",
"src": "4967:43:5"
},
"nativeSrc": "4967:72:5",
"nodeType": "YulFunctionCall",
"src": "4967:72:5"
},
"nativeSrc": "4967:72:5",
"nodeType": "YulExpressionStatement",
"src": "4967:72:5"
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed",
"nativeSrc": "4604:442:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "4714:9:5",
"nodeType": "YulTypedName",
"src": "4714:9:5",
"type": ""
},
{
"name": "value2",
"nativeSrc": "4726:6:5",
"nodeType": "YulTypedName",
"src": "4726:6:5",
"type": ""
},
{
"name": "value1",
"nativeSrc": "4734:6:5",
"nodeType": "YulTypedName",
"src": "4734:6:5",
"type": ""
},
{
"name": "value0",
"nativeSrc": "4742:6:5",
"nodeType": "YulTypedName",
"src": "4742:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "4753:4:5",
"nodeType": "YulTypedName",
"src": "4753:4:5",
"type": ""
}
],
"src": "4604:442:5"
},
{
"body": {
"nativeSrc": "5178:206:5",
"nodeType": "YulBlock",
"src": "5178:206:5",
"statements": [
{
"nativeSrc": "5188:26:5",
"nodeType": "YulAssignment",
"src": "5188:26:5",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "5200:9:5",
"nodeType": "YulIdentifier",
"src": "5200:9:5"
},
{
"kind": "number",
"nativeSrc": "5211:2:5",
"nodeType": "YulLiteral",
"src": "5211:2:5",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5196:3:5",
"nodeType": "YulIdentifier",
"src": "5196:3:5"
},
"nativeSrc": "5196:18:5",
"nodeType": "YulFunctionCall",
"src": "5196:18:5"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "5188:4:5",
"nodeType": "YulIdentifier",
"src": "5188:4:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "5268:6:5",
"nodeType": "YulIdentifier",
"src": "5268:6:5"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5281:9:5",
"nodeType": "YulIdentifier",
"src": "5281:9:5"
},
{
"kind": "number",
"nativeSrc": "5292:1:5",
"nodeType": "YulLiteral",
"src": "5292:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5277:3:5",
"nodeType": "YulIdentifier",
"src": "5277:3:5"
},
"nativeSrc": "5277:17:5",
"nodeType": "YulFunctionCall",
"src": "5277:17:5"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "5224:43:5",
"nodeType": "YulIdentifier",
"src": "5224:43:5"
},
"nativeSrc": "5224:71:5",
"nodeType": "YulFunctionCall",
"src": "5224:71:5"
},
"nativeSrc": "5224:71:5",
"nodeType": "YulExpressionStatement",
"src": "5224:71:5"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "5349:6:5",
"nodeType": "YulIdentifier",
"src": "5349:6:5"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5362:9:5",
"nodeType": "YulIdentifier",
"src": "5362:9:5"
},
{
"kind": "number",
"nativeSrc": "5373:2:5",
"nodeType": "YulLiteral",
"src": "5373:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5358:3:5",
"nodeType": "YulIdentifier",
"src": "5358:3:5"
},
"nativeSrc": "5358:18:5",
"nodeType": "YulFunctionCall",
"src": "5358:18:5"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "5305:43:5",
"nodeType": "YulIdentifier",
"src": "5305:43:5"
},
"nativeSrc": "5305:72:5",
"nodeType": "YulFunctionCall",
"src": "5305:72:5"
},
"nativeSrc": "5305:72:5",
"nodeType": "YulExpressionStatement",
"src": "5305:72:5"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
"nativeSrc": "5052:332:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "5142:9:5",
"nodeType": "YulTypedName",
"src": "5142:9:5",
"type": ""
},
{
"name": "value1",
"nativeSrc": "5154:6:5",
"nodeType": "YulTypedName",
"src": "5154:6:5",
"type": ""
},
{
"name": "value0",
"nativeSrc": "5162:6:5",
"nodeType": "YulTypedName",
"src": "5162:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "5173:4:5",
"nodeType": "YulTypedName",
"src": "5173:4:5",
"type": ""
}
],
"src": "5052:332:5"
},
{
"body": {
"nativeSrc": "5488:124:5",
"nodeType": "YulBlock",
"src": "5488:124:5",
"statements": [
{
"nativeSrc": "5498:26:5",
"nodeType": "YulAssignment",
"src": "5498:26:5",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "5510:9:5",
"nodeType": "YulIdentifier",
"src": "5510:9:5"
},
{
"kind": "number",
"nativeSrc": "5521:2:5",
"nodeType": "YulLiteral",
"src": "5521:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5506:3:5",
"nodeType": "YulIdentifier",
"src": "5506:3:5"
},
"nativeSrc": "5506:18:5",
"nodeType": "YulFunctionCall",
"src": "5506:18:5"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "5498:4:5",
"nodeType": "YulIdentifier",
"src": "5498:4:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "5578:6:5",
"nodeType": "YulIdentifier",
"src": "5578:6:5"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5591:9:5",
"nodeType": "YulIdentifier",
"src": "5591:9:5"
},
{
"kind": "number",
"nativeSrc": "5602:1:5",
"nodeType": "YulLiteral",
"src": "5602:1:5",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5587:3:5",
"nodeType": "YulIdentifier",
"src": "5587:3:5"
},
"nativeSrc": "5587:17:5",
"nodeType": "YulFunctionCall",
"src": "5587:17:5"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "5534:43:5",
"nodeType": "YulIdentifier",
"src": "5534:43:5"
},
"nativeSrc": "5534:71:5",
"nodeType": "YulFunctionCall",
"src": "5534:71:5"
},
"nativeSrc": "5534:71:5",
"nodeType": "YulExpressionStatement",
"src": "5534:71:5"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "5390:222:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "5460:9:5",
"nodeType": "YulTypedName",
"src": "5460:9:5",
"type": ""
},
{
"name": "value0",
"nativeSrc": "5472:6:5",
"nodeType": "YulTypedName",
"src": "5472:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "5483:4:5",
"nodeType": "YulTypedName",
"src": "5483:4:5",
"type": ""
}
],
"src": "5390:222:5"
},
{
"body": {
"nativeSrc": "5790:366:5",
"nodeType": "YulBlock",
"src": "5790:366:5",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "5863:6:5",
"nodeType": "YulIdentifier",
"src": "5863:6:5"
},
{
"name": "pos",
"nativeSrc": "5872:3:5",
"nodeType": "YulIdentifier",
"src": "5872:3:5"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nativeSrc": "5801:61:5",
"nodeType": "YulIdentifier",
"src": "5801:61:5"
},
"nativeSrc": "5801:75:5",
"nodeType": "YulFunctionCall",
"src": "5801:75:5"
},
"nativeSrc": "5801:75:5",
"nodeType": "YulExpressionStatement",
"src": "5801:75:5"
},
{
"nativeSrc": "5885:19:5",
"nodeType": "YulAssignment",
"src": "5885:19:5",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "5896:3:5",
"nodeType": "YulIdentifier",
"src": "5896:3:5"
},
{
"kind": "number",
"nativeSrc": "5901:2:5",
"nodeType": "YulLiteral",
"src": "5901:2:5",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5892:3:5",
"nodeType": "YulIdentifier",
"src": "5892:3:5"
},
"nativeSrc": "5892:12:5",
"nodeType": "YulFunctionCall",
"src": "5892:12:5"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "5885:3:5",
"nodeType": "YulIdentifier",
"src": "5885:3:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "5976:6:5",
"nodeType": "YulIdentifier",
"src": "5976:6:5"
},
{
"name": "pos",
"nativeSrc": "5985:3:5",
"nodeType": "YulIdentifier",
"src": "5985:3:5"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nativeSrc": "5914:61:5",
"nodeType": "YulIdentifier",
"src": "5914:61:5"
},
"nativeSrc": "5914:75:5",
"nodeType": "YulFunctionCall",
"src": "5914:75:5"
},
"nativeSrc": "5914:75:5",
"nodeType": "YulExpressionStatement",
"src": "5914:75:5"
},
{
"nativeSrc": "5998:19:5",
"nodeType": "YulAssignment",
"src": "5998:19:5",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "6009:3:5",
"nodeType": "YulIdentifier",
"src": "6009:3:5"
},
{
"kind": "number",
"nativeSrc": "6014:2:5",
"nodeType": "YulLiteral",
"src": "6014:2:5",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6005:3:5",
"nodeType": "YulIdentifier",
"src": "6005:3:5"
},
"nativeSrc": "6005:12:5",
"nodeType": "YulFunctionCall",
"src": "6005:12:5"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "5998:3:5",
"nodeType": "YulIdentifier",
"src": "5998:3:5"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "6089:6:5",
"nodeType": "YulIdentifier",
"src": "6089:6:5"
},
{
"name": "pos",
"nativeSrc": "6098:3:5",
"nodeType": "YulIdentifier",
"src": "6098:3:5"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nativeSrc": "6027:61:5",
"nodeType": "YulIdentifier",
"src": "6027:61:5"
},
"nativeSrc": "6027:75:5",
"nodeType": "YulFunctionCall",
"src": "6027:75:5"
},
"nativeSrc": "6027:75:5",
"nodeType": "YulExpressionStatement",
"src": "6027:75:5"
},
{
"nativeSrc": "6111:19:5",
"nodeType": "YulAssignment",
"src": "6111:19:5",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "6122:3:5",
"nodeType": "YulIdentifier",
"src": "6122:3:5"
},
{
"kind": "number",
"nativeSrc": "6127:2:5",
"nodeType": "YulLiteral",
"src": "6127:2:5",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6118:3:5",
"nodeType": "YulIdentifier",
"src": "6118:3:5"
},
"nativeSrc": "6118:12:5",
"nodeType": "YulFunctionCall",
"src": "6118:12:5"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "6111:3:5",
"nodeType": "YulIdentifier",
"src": "6111:3:5"
}
]
},
{
"nativeSrc": "6140:10:5",
"nodeType": "YulAssignment",
"src": "6140:10:5",
"value": {
"name": "pos",
"nativeSrc": "6147:3:5",
"nodeType": "YulIdentifier",
"src": "6147:3:5"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "6140:3:5",
"nodeType": "YulIdentifier",
"src": "6140:3:5"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bytes32_t_address_t_address__to_t_bytes32_t_address_t_address__nonPadded_inplace_fromStack_reversed",
"nativeSrc": "5618:538:5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "5753:3:5",
"nodeType": "YulTypedName",
"src": "5753:3:5",
"type": ""
},
{
"name": "value2",
"nativeSrc": "5759:6:5",
"nodeType": "YulTypedName",
"src": "5759:6:5",
"type": ""
},
{
"name": "value1",
"nativeSrc": "5767:6:5",
"nodeType": "YulTypedName",
"src": "5767:6:5",
"type": ""
},
{
"name": "value0",
"nativeSrc": "5775:6:5",
"nodeType": "YulTypedName",
"src": "5775:6:5",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "5786:3:5",
"nodeType": "YulTypedName",
"src": "5786:3:5",
"type": ""
}
],
"src": "5618:538:5"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(value)\n }\n\n function abi_decode_tuple_t_addresst_uint8(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function abi_encode_tuple_packed_t_bytes32_t_address__to_t_bytes32_t_address__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_packed_t_bytes32_t_address_t_address__to_t_bytes32_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n}\n",
"id": 5,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561000f575f80fd5b5060043610610055575f3560e01c806395a8c58d146100595780639c17667714610089578063aa271e1a146100a5578063b5ef694d146100d5578063cf86a95a146100f1575b5f80fd5b610073600480360381019061006e91906106f5565b61010d565b604051610080919061074d565b60405180910390f35b6100a3600480360381019061009e9190610766565b610128565b005b6100bf60048036038101906100ba9190610766565b610148565b6040516100cc919061074d565b60405180910390f35b6100ef60048036038101906100ea9190610766565b61016c565b005b61010b60048036038101906101069190610766565b6101f5565b005b5f61012061011a8461027e565b83610295565b905092915050565b61014581335f60028111156101405761013f610791565b5b6102ab565b50565b5f610165825f60028111156101605761015f610791565b5b61010d565b9050919050565b5f600281111561017f5761017e610791565b5b61019161018b3361027e565b82610295565b6101d45733816040517fbb6c16390000000000000000000000000000000000000000000000000000000081526004016101cb9291906107dc565b60405180910390fd5b6101f133835f60028111156101ec576101eb610791565b5b6102c2565b5050565b5f600281111561020857610207610791565b5b61021a6102143361027e565b82610295565b61025d5733816040517fbb6c16390000000000000000000000000000000000000000000000000000000081526004016102549291906107dc565b60405180910390fd5b61027a33835f600281111561027557610274610791565b5b6102d9565b5050565b5f80610289836102f0565b90508054915050919050565b5f808260ff166001901b84161415905092915050565b6102bd83838360ff166001901b610341565b505050565b6102d483838360ff166001901b6103ad565b505050565b6102eb83838360ff166001901b610477565b505050565b5f7fde9bdca322e1a848f72215bc15cf2c87fe7749145789a9ee281a2a6290af26ab82604051602001610324929190610871565b604051602081830303815290604052805190602001209050919050565b8061034c84846104e5565b14610392578282826040517f6004fe40000000000000000000000000000000000000000000000000000000008152600401610389939291906108b4565b60405180910390fd5b61039d83835f6104fe565b6103a8838383610477565b505050565b6103bf6103b98461027e565b82610514565b6104025782816040517f7fa6fbb40000000000000000000000000000000000000000000000000000000081526004016103f99291906108e9565b60405180910390fd5b61040d8383836104fe565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167ff7158d1591c2cf17c0e6b9459d86365c47fe0969c79f40ef49e0c437d8f399148360405161046a9190610910565b60405180910390a3505050565b6104896104838461027e565b82610514565b6104cc5782816040517f7fa6fbb40000000000000000000000000000000000000000000000000000000081526004016104c39291906108e9565b60405180910390fd5b6104d68382610522565b6104e0828261058e565b505050565b5f806104f184846105f9565b9050805491505092915050565b5f61050984846105f9565b905081815550505050565b5f8182841614905092915050565b5f811961052e8461027e565b16905061053b838261064d565b8273ffffffffffffffffffffffffffffffffffffffff167fccf920c8facee98a9c2a6c6124f2857b87b17e9f3a819bfcc6945196ee77366b836040516105819190610910565b60405180910390a2505050565b5f816105998461027e565b1790506105a6838261064d565b8273ffffffffffffffffffffffffffffffffffffffff167f34e73c57659d4b6809b53db4feee9b007b892e978114eda420d2991aba150143836040516105ec9190610910565b60405180910390a2505050565b5f7ff96e07b2f4fbb81c31567d2b261589af429e98f0958d53f7e6ad5d63aea0ab7c838360405160200161062f93929190610929565b60405160208183030381529060405280519060200120905092915050565b5f610657836102f0565b9050818155505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61068e82610665565b9050919050565b61069e81610684565b81146106a8575f80fd5b50565b5f813590506106b981610695565b92915050565b5f60ff82169050919050565b6106d4816106bf565b81146106de575f80fd5b50565b5f813590506106ef816106cb565b92915050565b5f806040838503121561070b5761070a610661565b5b5f610718858286016106ab565b9250506020610729858286016106e1565b9150509250929050565b5f8115159050919050565b61074781610733565b82525050565b5f6020820190506107605f83018461073e565b92915050565b5f6020828403121561077b5761077a610661565b5b5f610788848285016106ab565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6107c781610684565b82525050565b6107d6816106bf565b82525050565b5f6040820190506107ef5f8301856107be565b6107fc60208301846107cd565b9392505050565b5f819050919050565b5f819050919050565b61082661082182610803565b61080c565b82525050565b5f8160601b9050919050565b5f6108428261082c565b9050919050565b5f61085382610838565b9050919050565b61086b61086682610684565b610849565b82525050565b5f61087c8285610815565b60208201915061088c828461085a565b6014820191508190509392505050565b5f819050919050565b6108ae8161089c565b82525050565b5f6060820190506108c75f8301866107be565b6108d460208301856107be565b6108e160408301846108a5565b949350505050565b5f6040820190506108fc5f8301856107be565b61090960208301846108a5565b9392505050565b5f6020820190506109235f8301846108a5565b92915050565b5f6109348286610815565b602082019150610944828561085a565b601482019150610954828461085a565b60148201915081905094935050505056fea2646970667358221220a3820a83dd98164622d707ac1b05afd2571279b5874079fd0558795b3d93974064736f6c63430008170033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x95A8C58D EQ PUSH2 0x59 JUMPI DUP1 PUSH4 0x9C176677 EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0xAA271E1A EQ PUSH2 0xA5 JUMPI DUP1 PUSH4 0xB5EF694D EQ PUSH2 0xD5 JUMPI DUP1 PUSH4 0xCF86A95A EQ PUSH2 0xF1 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x6F5 JUMP JUMPDEST PUSH2 0x10D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x80 SWAP2 SWAP1 PUSH2 0x74D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9E SWAP2 SWAP1 PUSH2 0x766 JUMP JUMPDEST PUSH2 0x128 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xBF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBA SWAP2 SWAP1 PUSH2 0x766 JUMP JUMPDEST PUSH2 0x148 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCC SWAP2 SWAP1 PUSH2 0x74D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xEA SWAP2 SWAP1 PUSH2 0x766 JUMP JUMPDEST PUSH2 0x16C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x106 SWAP2 SWAP1 PUSH2 0x766 JUMP JUMPDEST PUSH2 0x1F5 JUMP JUMPDEST STOP JUMPDEST PUSH0 PUSH2 0x120 PUSH2 0x11A DUP5 PUSH2 0x27E JUMP JUMPDEST DUP4 PUSH2 0x295 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x145 DUP2 CALLER PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x140 JUMPI PUSH2 0x13F PUSH2 0x791 JUMP JUMPDEST JUMPDEST PUSH2 0x2AB JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x165 DUP3 PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x160 JUMPI PUSH2 0x15F PUSH2 0x791 JUMP JUMPDEST JUMPDEST PUSH2 0x10D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x17F JUMPI PUSH2 0x17E PUSH2 0x791 JUMP JUMPDEST JUMPDEST PUSH2 0x191 PUSH2 0x18B CALLER PUSH2 0x27E JUMP JUMPDEST DUP3 PUSH2 0x295 JUMP JUMPDEST PUSH2 0x1D4 JUMPI CALLER DUP2 PUSH1 0x40 MLOAD PUSH32 0xBB6C163900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CB SWAP3 SWAP2 SWAP1 PUSH2 0x7DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1F1 CALLER DUP4 PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1EC JUMPI PUSH2 0x1EB PUSH2 0x791 JUMP JUMPDEST JUMPDEST PUSH2 0x2C2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x208 JUMPI PUSH2 0x207 PUSH2 0x791 JUMP JUMPDEST JUMPDEST PUSH2 0x21A PUSH2 0x214 CALLER PUSH2 0x27E JUMP JUMPDEST DUP3 PUSH2 0x295 JUMP JUMPDEST PUSH2 0x25D JUMPI CALLER DUP2 PUSH1 0x40 MLOAD PUSH32 0xBB6C163900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x254 SWAP3 SWAP2 SWAP1 PUSH2 0x7DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x27A CALLER DUP4 PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x275 JUMPI PUSH2 0x274 PUSH2 0x791 JUMP JUMPDEST JUMPDEST PUSH2 0x2D9 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x289 DUP4 PUSH2 0x2F0 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL DUP5 AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2BD DUP4 DUP4 DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL PUSH2 0x341 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x2D4 DUP4 DUP4 DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL PUSH2 0x3AD JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x2EB DUP4 DUP4 DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL PUSH2 0x477 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xDE9BDCA322E1A848F72215BC15CF2C87FE7749145789A9EE281A2A6290AF26AB DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x324 SWAP3 SWAP2 SWAP1 PUSH2 0x871 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH2 0x34C DUP5 DUP5 PUSH2 0x4E5 JUMP JUMPDEST EQ PUSH2 0x392 JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6004FE4000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x389 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x8B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x39D DUP4 DUP4 PUSH0 PUSH2 0x4FE JUMP JUMPDEST PUSH2 0x3A8 DUP4 DUP4 DUP4 PUSH2 0x477 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x3BF PUSH2 0x3B9 DUP5 PUSH2 0x27E JUMP JUMPDEST DUP3 PUSH2 0x514 JUMP JUMPDEST PUSH2 0x402 JUMPI DUP3 DUP2 PUSH1 0x40 MLOAD PUSH32 0x7FA6FBB400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3F9 SWAP3 SWAP2 SWAP1 PUSH2 0x8E9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x40D DUP4 DUP4 DUP4 PUSH2 0x4FE JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF7158D1591C2CF17C0E6B9459D86365C47FE0969C79F40EF49E0C437D8F39914 DUP4 PUSH1 0x40 MLOAD PUSH2 0x46A SWAP2 SWAP1 PUSH2 0x910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x489 PUSH2 0x483 DUP5 PUSH2 0x27E JUMP JUMPDEST DUP3 PUSH2 0x514 JUMP JUMPDEST PUSH2 0x4CC JUMPI DUP3 DUP2 PUSH1 0x40 MLOAD PUSH32 0x7FA6FBB400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4C3 SWAP3 SWAP2 SWAP1 PUSH2 0x8E9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4D6 DUP4 DUP3 PUSH2 0x522 JUMP JUMPDEST PUSH2 0x4E0 DUP3 DUP3 PUSH2 0x58E JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x4F1 DUP5 DUP5 PUSH2 0x5F9 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x509 DUP5 DUP5 PUSH2 0x5F9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 DUP5 AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 NOT PUSH2 0x52E DUP5 PUSH2 0x27E JUMP JUMPDEST AND SWAP1 POP PUSH2 0x53B DUP4 DUP3 PUSH2 0x64D JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xCCF920C8FACEE98A9C2A6C6124F2857B87B17E9F3A819BFCC6945196EE77366B DUP4 PUSH1 0x40 MLOAD PUSH2 0x581 SWAP2 SWAP1 PUSH2 0x910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x599 DUP5 PUSH2 0x27E JUMP JUMPDEST OR SWAP1 POP PUSH2 0x5A6 DUP4 DUP3 PUSH2 0x64D JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x34E73C57659D4B6809B53DB4FEEE9B007B892E978114EDA420D2991ABA150143 DUP4 PUSH1 0x40 MLOAD PUSH2 0x5EC SWAP2 SWAP1 PUSH2 0x910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xF96E07B2F4FBB81C31567D2B261589AF429E98F0958D53F7E6AD5D63AEA0AB7C DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x62F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x929 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x657 DUP4 PUSH2 0x2F0 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x68E DUP3 PUSH2 0x665 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x69E DUP2 PUSH2 0x684 JUMP JUMPDEST DUP2 EQ PUSH2 0x6A8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x6B9 DUP2 PUSH2 0x695 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6D4 DUP2 PUSH2 0x6BF JUMP JUMPDEST DUP2 EQ PUSH2 0x6DE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x6EF DUP2 PUSH2 0x6CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x70B JUMPI PUSH2 0x70A PUSH2 0x661 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x718 DUP6 DUP3 DUP7 ADD PUSH2 0x6AB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x729 DUP6 DUP3 DUP7 ADD PUSH2 0x6E1 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x747 DUP2 PUSH2 0x733 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x760 PUSH0 DUP4 ADD DUP5 PUSH2 0x73E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x77B JUMPI PUSH2 0x77A PUSH2 0x661 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x788 DUP5 DUP3 DUP6 ADD PUSH2 0x6AB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x7C7 DUP2 PUSH2 0x684 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x7D6 DUP2 PUSH2 0x6BF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x7EF PUSH0 DUP4 ADD DUP6 PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x7FC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x7CD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x826 PUSH2 0x821 DUP3 PUSH2 0x803 JUMP JUMPDEST PUSH2 0x80C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x842 DUP3 PUSH2 0x82C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x853 DUP3 PUSH2 0x838 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x86B PUSH2 0x866 DUP3 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x849 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x87C DUP3 DUP6 PUSH2 0x815 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x88C DUP3 DUP5 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8AE DUP2 PUSH2 0x89C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x8C7 PUSH0 DUP4 ADD DUP7 PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x8D4 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x8E1 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8A5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x8FC PUSH0 DUP4 ADD DUP6 PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x909 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x8A5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x923 PUSH0 DUP4 ADD DUP5 PUSH2 0x8A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x934 DUP3 DUP7 PUSH2 0x815 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x944 DUP3 DUP6 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x954 DUP3 DUP5 PUSH2 0x85A JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 DUP3 EXP DUP4 0xDD SWAP9 AND CHAINID 0x22 0xD7 SMOD 0xAC SHL SDIV 0xAF 0xD2 JUMPI SLT PUSH26 0xB5874079FD0558795B3D93974064736F6C634300081700330000 ",
"sourceMap": "519:1644:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1607:131:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1714:128:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2042:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1375:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1026:156;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1607:131:1;1674:4;1697:34;1706:18;1716:7;1706:9;:18::i;:::-;1726:4;1697:8;:34::i;:::-;1690:41;;1607:131;;;;:::o;1714:128:3:-;1779:56;1791:10;1803;1821:12;1815:19;;;;;;;;:::i;:::-;;1779:11;:56::i;:::-;1714:128;:::o;2042:119::-;2097:4;2120:34;2128:4;2140:12;2134:19;;;;;;;;:::i;:::-;;2120:7;:34::i;:::-;2113:41;;2042:119;;;:::o;1375:154::-;1443:12;1437:19;;;;;;;;:::i;:::-;;596:37:1;605:21;615:10;605:9;:21::i;:::-;628:4;596:8;:37::i;:::-;591:80;;654:10;666:4;642:29;;;;;;;;;;;;:::i;:::-;;;;;;;;591:80;1468:54:3::1;1481:10;1493:7;1508:12;1502:19;;;;;;;;:::i;:::-;;1468:12;:54::i;:::-;1375:154:::0;;:::o;1026:156::-;1095:12;1089:19;;;;;;;;:::i;:::-;;596:37:1;605:21;615:10;605:9;:21::i;:::-;628:4;596:8;:37::i;:::-;591:80;;654:10;666:4;642:29;;;;;;;;;;;;:::i;:::-;;;;;;;;591:80;1120:55:3::1;1134:10;1146:7;1161:12;1155:19;;;;;;;;:::i;:::-;;1120:13;:55::i;:::-;1026:156:::0;;:::o;2781:198:1:-;2840:20;2872:11;2886:18;2896:7;2886:9;:18::i;:::-;2872:32;;2959:3;2953:10;2937:26;;2923:50;2781:198;;;:::o;7606:136::-;7681:4;7734:1;7725:4;7720:9;;:1;:9;;7704:12;:26;:31;;7697:38;;7606:136;;;;:::o;11266:191::-;11396:54;11416:11;11429:9;11445:4;11440:9;;:1;:9;;11396:19;:54::i;:::-;11266:191;;;:::o;9214:185::-;9337:55;9358:11;9371:9;9387:4;9382:9;;:1;:9;;9337:20;:55::i;:::-;9214:185;;;:::o;13083:187::-;13207:56;13229:11;13242:9;13258:4;13253:9;;:1;:9;;13207:21;:56::i;:::-;13083:187;;;:::o;2414:154::-;2481:11;341:18;2552:7;2521:39;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2511:50;;;;;;2504:57;;2414:154;;;:::o;12333:431::-;12530:12;12485:41;12503:11;12516:9;12485:17;:41::i;:::-;:57;12481:153;;12586:11;12599:9;12610:12;12565:58;;;;;;;;;;;;;:::i;:::-;;;;;;;;12481:153;12644:44;12662:11;12675:9;12686:1;12644:17;:44::i;:::-;12698:59;12720:11;12733:9;12744:12;12698:21;:59::i;:::-;12333:431;;;:::o;10555:390::-;10701:53;10717:22;10727:11;10717:9;:22::i;:::-;10741:12;10701:15;:53::i;:::-;10696:109;;10779:11;10792:12;10763:42;;;;;;;;;;;;:::i;:::-;;;;;;;;10696:109;10816:55;10834:11;10847:9;10858:12;10816:17;:55::i;:::-;10914:9;10887:51;;10901:11;10887:51;;;10925:12;10887:51;;;;;;:::i;:::-;;;;;;;;10555:390;;;:::o;14138:366::-;14285:53;14301:22;14311:11;14301:9;:22::i;:::-;14325:12;14285:15;:53::i;:::-;14280:109;;14363:11;14376:12;14347:42;;;;;;;;;;;;:::i;:::-;;;;;;;;14280:109;14400:46;14420:11;14433:12;14400:19;:46::i;:::-;14456:41;14473:9;14484:12;14456:16;:41::i;:::-;14138:366;;;:::o;4114:251::-;4204:22;4238:11;4252:36;4265:11;4278:9;4252:12;:36::i;:::-;4238:50;;4345:3;4339:10;4321:28;;4307:52;4114:251;;;;:::o;4648:265::-;4787:11;4801:36;4814:11;4827:9;4801:12;:36::i;:::-;4787:50;;4882:14;4877:3;4870:27;4856:51;4648:265;;;:::o;8049:197::-;8152:4;8219:20;8194;8176:15;:38;8175:64;8168:71;;8049:197;;;;:::o;7093:251::-;7180:23;7228:12;7227:13;7206:18;7216:7;7206:9;:18::i;:::-;:34;7180:60;;7251:35;7261:7;7270:15;7251:9;:35::i;:::-;7315:7;7302:35;;;7324:12;7302:35;;;;;;:::i;:::-;;;;;;;;7170:174;7093:251;;:::o;5916:245::-;6000:23;6047:12;6026:18;6036:7;6026:9;:18::i;:::-;:33;6000:59;;6070:35;6080:7;6089:15;6070:9;:35::i;:::-;6132:7;6121:33;;;6141:12;6121:33;;;;;;:::i;:::-;;;;;;;;5990:171;5916:245;;:::o;3619:203::-;3712:11;414:26;3791:11;3804:9;3752:62;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3742:73;;;;;;3735:80;;3619:203;;;;:::o;3165:182::-;3241:11;3255:18;3265:7;3255:9;:18::i;:::-;3241:32;;3318:12;3313:3;3306:25;3292:49;3165:182;;:::o;88:117:5:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:86::-;876:7;916:4;909:5;905:16;894:27;;841:86;;;:::o;933:118::-;1004:22;1020:5;1004:22;:::i;:::-;997:5;994:33;984:61;;1041:1;1038;1031:12;984:61;933:118;:::o;1057:135::-;1101:5;1139:6;1126:20;1117:29;;1155:31;1180:5;1155:31;:::i;:::-;1057:135;;;;:::o;1198:470::-;1264:6;1272;1321:2;1309:9;1300:7;1296:23;1292:32;1289:119;;;1327:79;;:::i;:::-;1289:119;1447:1;1472:53;1517:7;1508:6;1497:9;1493:22;1472:53;:::i;:::-;1462:63;;1418:117;1574:2;1600:51;1643:7;1634:6;1623:9;1619:22;1600:51;:::i;:::-;1590:61;;1545:116;1198:470;;;;;:::o;1674:90::-;1708:7;1751:5;1744:13;1737:21;1726:32;;1674:90;;;:::o;1770:109::-;1851:21;1866:5;1851:21;:::i;:::-;1846:3;1839:34;1770:109;;:::o;1885:210::-;1972:4;2010:2;1999:9;1995:18;1987:26;;2023:65;2085:1;2074:9;2070:17;2061:6;2023:65;:::i;:::-;1885:210;;;;:::o;2101:329::-;2160:6;2209:2;2197:9;2188:7;2184:23;2180:32;2177:119;;;2215:79;;:::i;:::-;2177:119;2335:1;2360:53;2405:7;2396:6;2385:9;2381:22;2360:53;:::i;:::-;2350:63;;2306:117;2101:329;;;;:::o;2436:180::-;2484:77;2481:1;2474:88;2581:4;2578:1;2571:15;2605:4;2602:1;2595:15;2622:118;2709:24;2727:5;2709:24;:::i;:::-;2704:3;2697:37;2622:118;;:::o;2746:112::-;2829:22;2845:5;2829:22;:::i;:::-;2824:3;2817:35;2746:112;;:::o;2864:324::-;2981:4;3019:2;3008:9;3004:18;2996:26;;3032:71;3100:1;3089:9;3085:17;3076:6;3032:71;:::i;:::-;3113:68;3177:2;3166:9;3162:18;3153:6;3113:68;:::i;:::-;2864:324;;;;;:::o;3194:77::-;3231:7;3260:5;3249:16;;3194:77;;;:::o;3277:79::-;3316:7;3345:5;3334:16;;3277:79;;;:::o;3362:157::-;3467:45;3487:24;3505:5;3487:24;:::i;:::-;3467:45;:::i;:::-;3462:3;3455:58;3362:157;;:::o;3525:94::-;3558:8;3606:5;3602:2;3598:14;3577:35;;3525:94;;;:::o;3625:::-;3664:7;3693:20;3707:5;3693:20;:::i;:::-;3682:31;;3625:94;;;:::o;3725:100::-;3764:7;3793:26;3813:5;3793:26;:::i;:::-;3782:37;;3725:100;;;:::o;3831:157::-;3936:45;3956:24;3974:5;3956:24;:::i;:::-;3936:45;:::i;:::-;3931:3;3924:58;3831:157;;:::o;3994:397::-;4134:3;4149:75;4220:3;4211:6;4149:75;:::i;:::-;4249:2;4244:3;4240:12;4233:19;;4262:75;4333:3;4324:6;4262:75;:::i;:::-;4362:2;4357:3;4353:12;4346:19;;4382:3;4375:10;;3994:397;;;;;:::o;4397:77::-;4434:7;4463:5;4452:16;;4397:77;;;:::o;4480:118::-;4567:24;4585:5;4567:24;:::i;:::-;4562:3;4555:37;4480:118;;:::o;4604:442::-;4753:4;4791:2;4780:9;4776:18;4768:26;;4804:71;4872:1;4861:9;4857:17;4848:6;4804:71;:::i;:::-;4885:72;4953:2;4942:9;4938:18;4929:6;4885:72;:::i;:::-;4967;5035:2;5024:9;5020:18;5011:6;4967:72;:::i;:::-;4604:442;;;;;;:::o;5052:332::-;5173:4;5211:2;5200:9;5196:18;5188:26;;5224:71;5292:1;5281:9;5277:17;5268:6;5224:71;:::i;:::-;5305:72;5373:2;5362:9;5358:18;5349:6;5305:72;:::i;:::-;5052:332;;;;;:::o;5390:222::-;5483:4;5521:2;5510:9;5506:18;5498:26;;5534:71;5602:1;5591:9;5587:17;5578:6;5534:71;:::i;:::-;5390:222;;;;:::o;5618:538::-;5786:3;5801:75;5872:3;5863:6;5801:75;:::i;:::-;5901:2;5896:3;5892:12;5885:19;;5914:75;5985:3;5976:6;5914:75;:::i;:::-;6014:2;6009:3;6005:12;5998:19;;6027:75;6098:3;6089:6;6027:75;:::i;:::-;6127:2;6122:3;6118:12;6111:19;;6147:3;6140:10;;5618:538;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "491800",
"executionCost": "522",
"totalCost": "492322"
},
"external": {
"acceptMintership(address)": "infinite",
"hasRole(address,uint8)": "infinite",
"isMinter(address)": "infinite",
"proposeMintership(address)": "infinite",
"transferMintership(address)": "infinite"
},
"internal": {
"_addMinter(address)": "infinite"
}
},
"methodIdentifiers": {
"acceptMintership(address)": "9c176677",
"hasRole(address,uint8)": "95a8c58d",
"isMinter(address)": "aa271e1a",
"proposeMintership(address)": "b5ef694d",
"transferMintership(address)": "cf86a95a"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "fromAccount",
"type": "address"
},
{
"internalType": "address",
"name": "toAccount",
"type": "address"
},
{
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "InvalidProposedRoles",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "MissingAllRoles",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "MissingAnyOfRoles",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint8",
"name": "role",
"type": "uint8"
}
],
"name": "MissingRole",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "RolesAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "fromAccount",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "toAccount",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "RolesProposed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "RolesRemoved",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "fromMinter",
"type": "address"
}
],
"name": "acceptMintership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint8",
"name": "role",
"type": "uint8"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "isMinter",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "minter_",
"type": "address"
}
],
"name": "proposeMintership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "minter_",
"type": "address"
}
],
"name": "transferMintership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.23+commit.f704f362"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "fromAccount",
"type": "address"
},
{
"internalType": "address",
"name": "toAccount",
"type": "address"
},
{
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "InvalidProposedRoles",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "MissingAllRoles",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "MissingAnyOfRoles",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint8",
"name": "role",
"type": "uint8"
}
],
"name": "MissingRole",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "RolesAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "fromAccount",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "toAccount",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "RolesProposed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "accountRoles",
"type": "uint256"
}
],
"name": "RolesRemoved",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "fromMinter",
"type": "address"
}
],
"name": "acceptMintership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint8",
"name": "role",
"type": "uint8"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "isMinter",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "minter_",
"type": "address"
}
],
"name": "proposeMintership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "minter_",
"type": "address"
}
],
"name": "transferMintership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "This module is used through inheritance.",
"kind": "dev",
"methods": {
"acceptMintership(address)": {
"details": "Can only be called by the proposed minter.",
"params": {
"fromMinter": "The previous minter."
}
},
"hasRole(address,uint8)": {
"params": {
"account": "The address to check",
"role": "The role to check"
},
"returns": {
"_0": "True if the account has the role, false otherwise"
}
},
"isMinter(address)": {
"params": {
"addr": "the address to query for"
},
"returns": {
"_0": "bool Boolean value representing whether or not the address is a minter."
}
},
"proposeMintership(address)": {
"details": "Can only be called by the current minter.",
"params": {
"minter_": "The address of the new minter."
}
},
"transferMintership(address)": {
"details": "Can only be called by the current minter.",
"params": {
"minter_": "The address of the new minter."
}
}
},
"title": "Minter Contract",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"acceptMintership(address)": {
"notice": "Accept a change of the minter of the contract."
},
"hasRole(address,uint8)": {
"notice": "Checks if an account has a role."
},
"isMinter(address)": {
"notice": "Query if an address is a minter"
},
"proposeMintership(address)": {
"notice": "Proposes a change of the minter of the contract."
},
"transferMintership(address)": {
"notice": "Changes the minter of the contract."
}
},
"notice": "A contract module which provides a basic access control mechanism, where there is an account (a minter) that can be granted exclusive access to specific functions.",
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/custom-contract/Minter.sol": "Minter"
},
"evmVersion": "shanghai",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IRolesBase.sol": {
"keccak256": "0x9f8b439986230a5ec7e47084609243367995680771db149bd1ec0d74ff6565cc",
"license": "MIT",
"urls": [
"bzz-raw://284a7e08b5ba45af9c87587c22590a967c915bf1d7e944935289a751dc26b3f4",
"dweb:/ipfs/QmYLdJBSaT5wYRuR3rqUDBg46u56NiWVcUb9iBiuYNr6Dn"
]
},
"@axelar-network/axelar-gmp-sdk-solidity/contracts/utils/RolesBase.sol": {
"keccak256": "0x80b2c8dcd141cb3a8a75fa009794b5b60ac10c7e6f516dbb4ce8ef308adf8890",
"license": "MIT",
"urls": [
"bzz-raw://b0d84b097f19d7ef46c433fe9a5c786c691899fe1985b70c223c437fd0898e75",
"dweb:/ipfs/QmangtBhJSLAoMLvHCeqzvhcwc36QKnhFxHAJkW8P8PxEa"
]
},
"contracts/custom-contract/IMinter.sol": {
"keccak256": "0x0f5f28168a330cb730f3fe127bbd035a286e2cbaddece380d5c5b889aafb07ed",
"license": "MIT",
"urls": [
"bzz-raw://3d65a5a123063f85a76ce2036b3ae10f364667a444a4b09f49e13a0f9e94637b",
"dweb:/ipfs/QmenER9XswvfJi8KSdjawmpBRYhTVnbqyBppbFkSMNNeee"
]
},
"contracts/custom-contract/Minter.sol": {
"keccak256": "0x750d8f34f2e7ade483a8aed5185ed9fa6f8427958be62a51ce1ad73e7e14780c",
"license": "MIT",
"urls": [
"bzz-raw://42d8bd0b7d255175190678c9824d82005822fe1fbd9250280055521db29d3ba4",
"dweb:/ipfs/QmTyTWhmRRG9HhiGg2YARNZrV237N5C1RcrTXUyunvVft1"
]
},
"contracts/custom-contract/RolesConstants.sol": {
"keccak256": "0x5859078eaec5e80731dedd0ae2814ef9704f7f713cf93c29ddc012c323b767a0",
"license": "MIT",
"urls": [
"bzz-raw://323b0315874b0444b9605c9611f3b84d37731919e937277578612eb7a2113c8b",
"dweb:/ipfs/QmZJNUC1phqyoawqE429JjtaD5dYmhtv3eJ8xj32uvbLmM"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea264697066735822122083bce81c2e77eb9995412bc2ad8707e10a2809d854c4f5287dc0d61e075551ba64736f6c63430008170033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x3E DUP1 PUSH1 0x1A PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0xBC 0xE8 SHR 0x2E PUSH24 0xEB9995412BC2AD8707E10A2809D854C4F5287DC0D61E0755 MLOAD 0xBA PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ",
"sourceMap": "176:105:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040525f80fdfea264697066735822122083bce81c2e77eb9995412bc2ad8707e10a2809d854c4f5287dc0d61e075551ba64736f6c63430008170033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0xBC 0xE8 SHR 0x2E PUSH24 0xEB9995412BC2AD8707E10A2809D854C4F5287DC0D61E0755 MLOAD 0xBA PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ",
"sourceMap": "176:105:0:-:0;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "12400",
"executionCost": "64",
"totalCost": "12464"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.23+commit.f704f362"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"title": "RolesConstants",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"notice": "This contract contains enum values representing different contract roles.",
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/custom-contract/RolesConstants.sol": "RolesConstants"
},
"evmVersion": "shanghai",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/custom-contract/RolesConstants.sol": {
"keccak256": "0x5859078eaec5e80731dedd0ae2814ef9704f7f713cf93c29ddc012c323b767a0",
"license": "MIT",
"urls": [
"bzz-raw://323b0315874b0444b9605c9611f3b84d37731919e937277578612eb7a2113c8b",
"dweb:/ipfs/QmZJNUC1phqyoawqE429JjtaD5dYmhtv3eJ8xj32uvbLmM"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { IERC20 } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IERC20.sol';
/**
* @dev 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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* We have followed general OpenZeppelin guidelines: functions revert instead
* of 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}.
*/
contract ERC20 is IERC20 {
mapping(address => uint256) public override balanceOf;
mapping(address => mapping(address => uint256)) public override allowance;
uint256 public override totalSupply;
uint256 internal constant UINT256_MAX = 2 ** 256 - 1;
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `recipient` cannot be the zero address.
* - the caller must have a balance of at least `amount`.
*/
function transfer(address recipient, uint256 amount) external virtual override returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}
/**
* @dev 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.
*/
function approve(address spender, uint256 amount) external virtual override returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
/**
* @dev 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}.
*
* Requirements:
*
* - `sender` and `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
* - the caller must have allowance for ``sender``'s tokens of at least
* `amount`.
*/
function transferFrom(address sender, address recipient, uint256 amount) external virtual override returns (bool) {
uint256 _allowance = allowance[sender][msg.sender];
if (_allowance != UINT256_MAX) {
_approve(sender, msg.sender, _allowance - amount);
}
_transfer(sender, recipient, amount);
return true;
}
/**
* @dev 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.
*/
function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {
_approve(msg.sender, spender, allowance[msg.sender][spender] + addedValue);
return true;
}
/**
* @dev 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`.
*/
function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
_approve(msg.sender, spender, allowance[msg.sender][spender] - subtractedValue);
return true;
}
/**
* @dev Moves tokens `amount` from `sender` to `recipient`.
*
* This is internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* Requirements:
*
* - `sender` cannot be the zero address.
* - `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
*/
function _transfer(address sender, address recipient, uint256 amount) internal virtual {
if (sender == address(0) || recipient == address(0)) revert InvalidAccount();
balanceOf[sender] -= amount;
balanceOf[recipient] += amount;
emit Transfer(sender, recipient, amount);
}
/** @dev Creates `amount` tokens and assigns them to `account`, increasing
* the total supply.
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* Requirements:
*
* - `to` cannot be the zero address.
*/
function _mint(address account, uint256 amount) internal virtual {
if (account == address(0)) revert InvalidAccount();
totalSupply += amount;
balanceOf[account] += amount;
emit Transfer(address(0), account, amount);
}
/**
* @dev Destroys `amount` tokens from `account`, reducing the
* total supply.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
* - `account` must have at least `amount` tokens.
*/
function _burn(address account, uint256 amount) internal virtual {
if (account == address(0)) revert InvalidAccount();
balanceOf[account] -= amount;
totalSupply -= amount;
emit Transfer(account, address(0), amount);
}
/**
* @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*/
function _approve(address owner, address spender, uint256 amount) internal virtual {
if (owner == address(0) || spender == address(0)) revert InvalidAccount();
allowance[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @title IERC20MintableBurnable Interface
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20MintableBurnable {
/**
* @notice Function to mint new tokens.
* @dev Can only be called by the minter address.
* @param to The address that will receive the minted tokens.
* @param amount The amount of tokens to mint.
*/
function mint(address to, uint256 amount) external;
/**
* @notice Function to burn tokens.
* @dev Can only be called by the minter address.
* @param from The address that will have its tokens burnt.
* @param amount The amount of tokens to burn.
*/
function burn(address from, uint256 amount) external;
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { IRolesBase } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IRolesBase.sol';
/**
* @title IMinter Interface
* @notice An interface for a contract module which provides a basic access control mechanism, where
* there is an account (a minter) that can be granted exclusive access to specific functions.
*/
interface IMinter is IRolesBase {
/**
* @notice Change the minter of the contract.
* @dev Can only be called by the current minter.
* @param minter_ The address of the new minter.
*/
function transferMintership(address minter_) external;
/**
* @notice Proposed a change of the minter of the contract.
* @dev Can only be called by the current minter.
* @param minter_ The address of the new minter.
*/
function proposeMintership(address minter_) external;
/**
* @notice Accept a change of the minter of the contract.
* @dev Can only be called by the proposed minter.
* @param fromMinter The previous minter.
*/
function acceptMintership(address fromMinter) external;
/**
* @notice Query if an address is a minter
* @param addr the address to query for
* @return bool Boolean value representing whether or not the address is a minter.
*/
function isMinter(address addr) external view returns (bool);
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { IMinter } from './IMinter.sol';
import { RolesBase } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/utils/RolesBase.sol';
import { RolesConstants } from './RolesConstants.sol';
/**
* @title Minter Contract
* @notice A contract module which provides a basic access control mechanism, where
* there is an account (a minter) that can be granted exclusive access to
* specific functions.
* @dev This module is used through inheritance.
*/
contract Minter is IMinter, RolesBase, RolesConstants {
/**
* @notice Internal function that stores the new minter address in the correct storage slot.
* @param minter_ The address of the new minter.
*/
function _addMinter(address minter_) internal {
_addRole(minter_, uint8(Roles.MINTER));
}
/**
* @notice Changes the minter of the contract.
* @dev Can only be called by the current minter.
* @param minter_ The address of the new minter.
*/
function transferMintership(address minter_) external onlyRole(uint8(Roles.MINTER)) {
_transferRole(msg.sender, minter_, uint8(Roles.MINTER));
}
/**
* @notice Proposes a change of the minter of the contract.
* @dev Can only be called by the current minter.
* @param minter_ The address of the new minter.
*/
function proposeMintership(address minter_) external onlyRole(uint8(Roles.MINTER)) {
_proposeRole(msg.sender, minter_, uint8(Roles.MINTER));
}
/**
* @notice Accept a change of the minter of the contract.
* @dev Can only be called by the proposed minter.
* @param fromMinter The previous minter.
*/
function acceptMintership(address fromMinter) external {
_acceptRole(fromMinter, msg.sender, uint8(Roles.MINTER));
}
/**
* @notice Query if an address is a minter
* @param addr the address to query for
* @return bool Boolean value representing whether or not the address is a minter.
*/
function isMinter(address addr) external view returns (bool) {
return hasRole(addr, uint8(Roles.MINTER));
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @title RolesConstants
* @notice This contract contains enum values representing different contract roles.
*/
contract RolesConstants {
enum Roles {
MINTER,
OPERATOR,
FLOW_LIMITER
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { ERC20 } from './ERC20.sol';
import { Minter } from './Minter.sol';
import { IERC20MintableBurnable } from './IERC20MintableBurnable.sol';
contract TestMintableBurnableERC20 is ERC20, Minter, IERC20MintableBurnable {
string public name;
string public symbol;
uint8 public decimals;
constructor(string memory name_, string memory symbol_, uint8 decimals_) {
name = name_;
symbol = symbol_;
decimals = decimals_;
_addMinter(msg.sender);
_mint(msg.sender, 100 * 10 ** decimals_);
}
function mint(address account, uint256 amount) external onlyRole(uint8(Roles.MINTER)) {
_mint(account, amount);
}
function burn(address account, uint256 amount) external onlyRole(uint8(Roles.MINTER)) {
_burn(account, amount);
}
}
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

This file has been truncated, but you can view the full file.
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_1376": {
"entryPoint": null,
"id": 1376,
"parameterSlots": 3,
"returnSlots": 0
},
"@_addAccountRoles_462": {
"entryPoint": 578,
"id": 462,
"parameterSlots": 2,
"returnSlots": 0
},
"@_addMinter_1224": {
"entryPoint": 188,
"id": 1224,
"parameterSlots": 1,
"returnSlots": 0
},
"@_addRole_418": {
"entryPoint": 549,
"id": 418,
"parameterSlots": 2,
"returnSlots": 0
},
"@_getRoles_328": {
"entryPoint": 703,
"id": 328,
"parameterSlots": 1,
"returnSlots": 1
},
"@_mint_1058": {
"entryPoint": 230,
"id": 1058,
"parameterSlots": 2,
"returnSlots": 0
},
"@_rolesKey_312": {
"entryPoint": 762,
"id": 312,
"parameterSlots": 1,
"returnSlots": 1
},
"@_setRoles_344": {
"entryPoint": 734,
"id": 344,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 1110,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 1184,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint8_fromMemory": {
"entryPoint": 1271,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory": {
"entryPoint": 1293,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack": {
"entryPoint": 3066,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack": {
"entryPoint": 2939,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 2877,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_bytes32_t_address__to_t_bytes32_t_address__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 3093,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 2894,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 985,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 845,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 1015,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_string_storage": {
"entryPoint": 1551,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 1444,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 2819,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_exp_helper": {
"entryPoint": 2296,
"id": null,
"parameterSlots": 4,
"returnSlots": 2
},
"checked_exp_t_uint256_t_uint8": {
"entryPoint": 2620,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_exp_unsigned": {
"entryPoint": 2386,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 2700,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_string_storage": {
"entryPoint": 1860,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_address": {
"entryPoint": 2997,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 2921,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 2966,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1681,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint8": {
"entryPoint": 1234,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 1822,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 1699,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
"entryPoint": 2011,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 1068,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 1569,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 1499,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 1982,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 931,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"identity": {
"entryPoint": 1690,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_address": {
"entryPoint": 3047,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_bytes32": {
"entryPoint": 2930,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_uint160": {
"entryPoint": 3028,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 1952,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 2239,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x21": {
"entryPoint": 2774,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 1454,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 886,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 1738,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 862,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 866,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 858,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 854,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 870,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_96": {
"entryPoint": 3016,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 1584,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_1_unsigned": {
"entryPoint": 2284,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 1940,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 1794,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 1596,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 1747,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"validator_revert_t_uint8": {
"entryPoint": 1246,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 1790,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:14189:9",
"nodeType": "YulBlock",
"src": "0:14189:9",
"statements": [
{
"body": {
"nativeSrc": "47:35:9",
"nodeType": "YulBlock",
"src": "47:35:9",
"statements": [
{
"nativeSrc": "57:19:9",
"nodeType": "YulAssignment",
"src": "57:19:9",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "73:2:9",
"nodeType": "YulLiteral",
"src": "73:2:9",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "67:5:9",
"nodeType": "YulIdentifier",
"src": "67:5:9"
},
"nativeSrc": "67:9:9",
"nodeType": "YulFunctionCall",
"src": "67:9:9"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "57:6:9",
"nodeType": "YulIdentifier",
"src": "57:6:9"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "7:75:9",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "40:6:9",
"nodeType": "YulTypedName",
"src": "40:6:9",
"type": ""
}
],
"src": "7:75:9"
},
{
"body": {
"nativeSrc": "177:28:9",
"nodeType": "YulBlock",
"src": "177:28:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "194:1:9",
"nodeType": "YulLiteral",
"src": "194:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "197:1:9",
"nodeType": "YulLiteral",
"src": "197:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "187:6:9",
"nodeType": "YulIdentifier",
"src": "187:6:9"
},
"nativeSrc": "187:12:9",
"nodeType": "YulFunctionCall",
"src": "187:12:9"
},
"nativeSrc": "187:12:9",
"nodeType": "YulExpressionStatement",
"src": "187:12:9"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "88:117:9",
"nodeType": "YulFunctionDefinition",
"src": "88:117:9"
},
{
"body": {
"nativeSrc": "300:28:9",
"nodeType": "YulBlock",
"src": "300:28:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "317:1:9",
"nodeType": "YulLiteral",
"src": "317:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "320:1:9",
"nodeType": "YulLiteral",
"src": "320:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "310:6:9",
"nodeType": "YulIdentifier",
"src": "310:6:9"
},
"nativeSrc": "310:12:9",
"nodeType": "YulFunctionCall",
"src": "310:12:9"
},
"nativeSrc": "310:12:9",
"nodeType": "YulExpressionStatement",
"src": "310:12:9"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "211:117:9",
"nodeType": "YulFunctionDefinition",
"src": "211:117:9"
},
{
"body": {
"nativeSrc": "423:28:9",
"nodeType": "YulBlock",
"src": "423:28:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "440:1:9",
"nodeType": "YulLiteral",
"src": "440:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "443:1:9",
"nodeType": "YulLiteral",
"src": "443:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "433:6:9",
"nodeType": "YulIdentifier",
"src": "433:6:9"
},
"nativeSrc": "433:12:9",
"nodeType": "YulFunctionCall",
"src": "433:12:9"
},
"nativeSrc": "433:12:9",
"nodeType": "YulExpressionStatement",
"src": "433:12:9"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "334:117:9",
"nodeType": "YulFunctionDefinition",
"src": "334:117:9"
},
{
"body": {
"nativeSrc": "546:28:9",
"nodeType": "YulBlock",
"src": "546:28:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "563:1:9",
"nodeType": "YulLiteral",
"src": "563:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "566:1:9",
"nodeType": "YulLiteral",
"src": "566:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "556:6:9",
"nodeType": "YulIdentifier",
"src": "556:6:9"
},
"nativeSrc": "556:12:9",
"nodeType": "YulFunctionCall",
"src": "556:12:9"
},
"nativeSrc": "556:12:9",
"nodeType": "YulExpressionStatement",
"src": "556:12:9"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nativeSrc": "457:117:9",
"nodeType": "YulFunctionDefinition",
"src": "457:117:9"
},
{
"body": {
"nativeSrc": "628:54:9",
"nodeType": "YulBlock",
"src": "628:54:9",
"statements": [
{
"nativeSrc": "638:38:9",
"nodeType": "YulAssignment",
"src": "638:38:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "656:5:9",
"nodeType": "YulIdentifier",
"src": "656:5:9"
},
{
"kind": "number",
"nativeSrc": "663:2:9",
"nodeType": "YulLiteral",
"src": "663:2:9",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "652:3:9",
"nodeType": "YulIdentifier",
"src": "652:3:9"
},
"nativeSrc": "652:14:9",
"nodeType": "YulFunctionCall",
"src": "652:14:9"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "672:2:9",
"nodeType": "YulLiteral",
"src": "672:2:9",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nativeSrc": "668:3:9",
"nodeType": "YulIdentifier",
"src": "668:3:9"
},
"nativeSrc": "668:7:9",
"nodeType": "YulFunctionCall",
"src": "668:7:9"
}
],
"functionName": {
"name": "and",
"nativeSrc": "648:3:9",
"nodeType": "YulIdentifier",
"src": "648:3:9"
},
"nativeSrc": "648:28:9",
"nodeType": "YulFunctionCall",
"src": "648:28:9"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "638:6:9",
"nodeType": "YulIdentifier",
"src": "638:6:9"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nativeSrc": "580:102:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "611:5:9",
"nodeType": "YulTypedName",
"src": "611:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "621:6:9",
"nodeType": "YulTypedName",
"src": "621:6:9",
"type": ""
}
],
"src": "580:102:9"
},
{
"body": {
"nativeSrc": "716:152:9",
"nodeType": "YulBlock",
"src": "716:152:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "733:1:9",
"nodeType": "YulLiteral",
"src": "733:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "736:77:9",
"nodeType": "YulLiteral",
"src": "736:77:9",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "726:6:9",
"nodeType": "YulIdentifier",
"src": "726:6:9"
},
"nativeSrc": "726:88:9",
"nodeType": "YulFunctionCall",
"src": "726:88:9"
},
"nativeSrc": "726:88:9",
"nodeType": "YulExpressionStatement",
"src": "726:88:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "830:1:9",
"nodeType": "YulLiteral",
"src": "830:1:9",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "833:4:9",
"nodeType": "YulLiteral",
"src": "833:4:9",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "823:6:9",
"nodeType": "YulIdentifier",
"src": "823:6:9"
},
"nativeSrc": "823:15:9",
"nodeType": "YulFunctionCall",
"src": "823:15:9"
},
"nativeSrc": "823:15:9",
"nodeType": "YulExpressionStatement",
"src": "823:15:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "854:1:9",
"nodeType": "YulLiteral",
"src": "854:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "857:4:9",
"nodeType": "YulLiteral",
"src": "857:4:9",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "847:6:9",
"nodeType": "YulIdentifier",
"src": "847:6:9"
},
"nativeSrc": "847:15:9",
"nodeType": "YulFunctionCall",
"src": "847:15:9"
},
"nativeSrc": "847:15:9",
"nodeType": "YulExpressionStatement",
"src": "847:15:9"
}
]
},
"name": "panic_error_0x41",
"nativeSrc": "688:180:9",
"nodeType": "YulFunctionDefinition",
"src": "688:180:9"
},
{
"body": {
"nativeSrc": "917:238:9",
"nodeType": "YulBlock",
"src": "917:238:9",
"statements": [
{
"nativeSrc": "927:58:9",
"nodeType": "YulVariableDeclaration",
"src": "927:58:9",
"value": {
"arguments": [
{
"name": "memPtr",
"nativeSrc": "949:6:9",
"nodeType": "YulIdentifier",
"src": "949:6:9"
},
{
"arguments": [
{
"name": "size",
"nativeSrc": "979:4:9",
"nodeType": "YulIdentifier",
"src": "979:4:9"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "957:21:9",
"nodeType": "YulIdentifier",
"src": "957:21:9"
},
"nativeSrc": "957:27:9",
"nodeType": "YulFunctionCall",
"src": "957:27:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "945:3:9",
"nodeType": "YulIdentifier",
"src": "945:3:9"
},
"nativeSrc": "945:40:9",
"nodeType": "YulFunctionCall",
"src": "945:40:9"
},
"variables": [
{
"name": "newFreePtr",
"nativeSrc": "931:10:9",
"nodeType": "YulTypedName",
"src": "931:10:9",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "1096:22:9",
"nodeType": "YulBlock",
"src": "1096:22:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "1098:16:9",
"nodeType": "YulIdentifier",
"src": "1098:16:9"
},
"nativeSrc": "1098:18:9",
"nodeType": "YulFunctionCall",
"src": "1098:18:9"
},
"nativeSrc": "1098:18:9",
"nodeType": "YulExpressionStatement",
"src": "1098:18:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nativeSrc": "1039:10:9",
"nodeType": "YulIdentifier",
"src": "1039:10:9"
},
{
"kind": "number",
"nativeSrc": "1051:18:9",
"nodeType": "YulLiteral",
"src": "1051:18:9",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "1036:2:9",
"nodeType": "YulIdentifier",
"src": "1036:2:9"
},
"nativeSrc": "1036:34:9",
"nodeType": "YulFunctionCall",
"src": "1036:34:9"
},
{
"arguments": [
{
"name": "newFreePtr",
"nativeSrc": "1075:10:9",
"nodeType": "YulIdentifier",
"src": "1075:10:9"
},
{
"name": "memPtr",
"nativeSrc": "1087:6:9",
"nodeType": "YulIdentifier",
"src": "1087:6:9"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "1072:2:9",
"nodeType": "YulIdentifier",
"src": "1072:2:9"
},
"nativeSrc": "1072:22:9",
"nodeType": "YulFunctionCall",
"src": "1072:22:9"
}
],
"functionName": {
"name": "or",
"nativeSrc": "1033:2:9",
"nodeType": "YulIdentifier",
"src": "1033:2:9"
},
"nativeSrc": "1033:62:9",
"nodeType": "YulFunctionCall",
"src": "1033:62:9"
},
"nativeSrc": "1030:88:9",
"nodeType": "YulIf",
"src": "1030:88:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1134:2:9",
"nodeType": "YulLiteral",
"src": "1134:2:9",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nativeSrc": "1138:10:9",
"nodeType": "YulIdentifier",
"src": "1138:10:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1127:6:9",
"nodeType": "YulIdentifier",
"src": "1127:6:9"
},
"nativeSrc": "1127:22:9",
"nodeType": "YulFunctionCall",
"src": "1127:22:9"
},
"nativeSrc": "1127:22:9",
"nodeType": "YulExpressionStatement",
"src": "1127:22:9"
}
]
},
"name": "finalize_allocation",
"nativeSrc": "874:281:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nativeSrc": "903:6:9",
"nodeType": "YulTypedName",
"src": "903:6:9",
"type": ""
},
{
"name": "size",
"nativeSrc": "911:4:9",
"nodeType": "YulTypedName",
"src": "911:4:9",
"type": ""
}
],
"src": "874:281:9"
},
{
"body": {
"nativeSrc": "1202:88:9",
"nodeType": "YulBlock",
"src": "1202:88:9",
"statements": [
{
"nativeSrc": "1212:30:9",
"nodeType": "YulAssignment",
"src": "1212:30:9",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nativeSrc": "1222:18:9",
"nodeType": "YulIdentifier",
"src": "1222:18:9"
},
"nativeSrc": "1222:20:9",
"nodeType": "YulFunctionCall",
"src": "1222:20:9"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "1212:6:9",
"nodeType": "YulIdentifier",
"src": "1212:6:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nativeSrc": "1271:6:9",
"nodeType": "YulIdentifier",
"src": "1271:6:9"
},
{
"name": "size",
"nativeSrc": "1279:4:9",
"nodeType": "YulIdentifier",
"src": "1279:4:9"
}
],
"functionName": {
"name": "finalize_allocation",
"nativeSrc": "1251:19:9",
"nodeType": "YulIdentifier",
"src": "1251:19:9"
},
"nativeSrc": "1251:33:9",
"nodeType": "YulFunctionCall",
"src": "1251:33:9"
},
"nativeSrc": "1251:33:9",
"nodeType": "YulExpressionStatement",
"src": "1251:33:9"
}
]
},
"name": "allocate_memory",
"nativeSrc": "1161:129:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nativeSrc": "1186:4:9",
"nodeType": "YulTypedName",
"src": "1186:4:9",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "1195:6:9",
"nodeType": "YulTypedName",
"src": "1195:6:9",
"type": ""
}
],
"src": "1161:129:9"
},
{
"body": {
"nativeSrc": "1363:241:9",
"nodeType": "YulBlock",
"src": "1363:241:9",
"statements": [
{
"body": {
"nativeSrc": "1468:22:9",
"nodeType": "YulBlock",
"src": "1468:22:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "1470:16:9",
"nodeType": "YulIdentifier",
"src": "1470:16:9"
},
"nativeSrc": "1470:18:9",
"nodeType": "YulFunctionCall",
"src": "1470:18:9"
},
"nativeSrc": "1470:18:9",
"nodeType": "YulExpressionStatement",
"src": "1470:18:9"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nativeSrc": "1440:6:9",
"nodeType": "YulIdentifier",
"src": "1440:6:9"
},
{
"kind": "number",
"nativeSrc": "1448:18:9",
"nodeType": "YulLiteral",
"src": "1448:18:9",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "1437:2:9",
"nodeType": "YulIdentifier",
"src": "1437:2:9"
},
"nativeSrc": "1437:30:9",
"nodeType": "YulFunctionCall",
"src": "1437:30:9"
},
"nativeSrc": "1434:56:9",
"nodeType": "YulIf",
"src": "1434:56:9"
},
{
"nativeSrc": "1500:37:9",
"nodeType": "YulAssignment",
"src": "1500:37:9",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "1530:6:9",
"nodeType": "YulIdentifier",
"src": "1530:6:9"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "1508:21:9",
"nodeType": "YulIdentifier",
"src": "1508:21:9"
},
"nativeSrc": "1508:29:9",
"nodeType": "YulFunctionCall",
"src": "1508:29:9"
},
"variableNames": [
{
"name": "size",
"nativeSrc": "1500:4:9",
"nodeType": "YulIdentifier",
"src": "1500:4:9"
}
]
},
{
"nativeSrc": "1574:23:9",
"nodeType": "YulAssignment",
"src": "1574:23:9",
"value": {
"arguments": [
{
"name": "size",
"nativeSrc": "1586:4:9",
"nodeType": "YulIdentifier",
"src": "1586:4:9"
},
{
"kind": "number",
"nativeSrc": "1592:4:9",
"nodeType": "YulLiteral",
"src": "1592:4:9",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1582:3:9",
"nodeType": "YulIdentifier",
"src": "1582:3:9"
},
"nativeSrc": "1582:15:9",
"nodeType": "YulFunctionCall",
"src": "1582:15:9"
},
"variableNames": [
{
"name": "size",
"nativeSrc": "1574:4:9",
"nodeType": "YulIdentifier",
"src": "1574:4:9"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nativeSrc": "1296:308:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nativeSrc": "1347:6:9",
"nodeType": "YulTypedName",
"src": "1347:6:9",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nativeSrc": "1358:4:9",
"nodeType": "YulTypedName",
"src": "1358:4:9",
"type": ""
}
],
"src": "1296:308:9"
},
{
"body": {
"nativeSrc": "1672:184:9",
"nodeType": "YulBlock",
"src": "1672:184:9",
"statements": [
{
"nativeSrc": "1682:10:9",
"nodeType": "YulVariableDeclaration",
"src": "1682:10:9",
"value": {
"kind": "number",
"nativeSrc": "1691:1:9",
"nodeType": "YulLiteral",
"src": "1691:1:9",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "1686:1:9",
"nodeType": "YulTypedName",
"src": "1686:1:9",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "1751:63:9",
"nodeType": "YulBlock",
"src": "1751:63:9",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "1776:3:9",
"nodeType": "YulIdentifier",
"src": "1776:3:9"
},
{
"name": "i",
"nativeSrc": "1781:1:9",
"nodeType": "YulIdentifier",
"src": "1781:1:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1772:3:9",
"nodeType": "YulIdentifier",
"src": "1772:3:9"
},
"nativeSrc": "1772:11:9",
"nodeType": "YulFunctionCall",
"src": "1772:11:9"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "1795:3:9",
"nodeType": "YulIdentifier",
"src": "1795:3:9"
},
{
"name": "i",
"nativeSrc": "1800:1:9",
"nodeType": "YulIdentifier",
"src": "1800:1:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1791:3:9",
"nodeType": "YulIdentifier",
"src": "1791:3:9"
},
"nativeSrc": "1791:11:9",
"nodeType": "YulFunctionCall",
"src": "1791:11:9"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "1785:5:9",
"nodeType": "YulIdentifier",
"src": "1785:5:9"
},
"nativeSrc": "1785:18:9",
"nodeType": "YulFunctionCall",
"src": "1785:18:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1765:6:9",
"nodeType": "YulIdentifier",
"src": "1765:6:9"
},
"nativeSrc": "1765:39:9",
"nodeType": "YulFunctionCall",
"src": "1765:39:9"
},
"nativeSrc": "1765:39:9",
"nodeType": "YulExpressionStatement",
"src": "1765:39:9"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "1712:1:9",
"nodeType": "YulIdentifier",
"src": "1712:1:9"
},
{
"name": "length",
"nativeSrc": "1715:6:9",
"nodeType": "YulIdentifier",
"src": "1715:6:9"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "1709:2:9",
"nodeType": "YulIdentifier",
"src": "1709:2:9"
},
"nativeSrc": "1709:13:9",
"nodeType": "YulFunctionCall",
"src": "1709:13:9"
},
"nativeSrc": "1701:113:9",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "1723:19:9",
"nodeType": "YulBlock",
"src": "1723:19:9",
"statements": [
{
"nativeSrc": "1725:15:9",
"nodeType": "YulAssignment",
"src": "1725:15:9",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "1734:1:9",
"nodeType": "YulIdentifier",
"src": "1734:1:9"
},
{
"kind": "number",
"nativeSrc": "1737:2:9",
"nodeType": "YulLiteral",
"src": "1737:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1730:3:9",
"nodeType": "YulIdentifier",
"src": "1730:3:9"
},
"nativeSrc": "1730:10:9",
"nodeType": "YulFunctionCall",
"src": "1730:10:9"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "1725:1:9",
"nodeType": "YulIdentifier",
"src": "1725:1:9"
}
]
}
]
},
"pre": {
"nativeSrc": "1705:3:9",
"nodeType": "YulBlock",
"src": "1705:3:9",
"statements": []
},
"src": "1701:113:9"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "1834:3:9",
"nodeType": "YulIdentifier",
"src": "1834:3:9"
},
{
"name": "length",
"nativeSrc": "1839:6:9",
"nodeType": "YulIdentifier",
"src": "1839:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1830:3:9",
"nodeType": "YulIdentifier",
"src": "1830:3:9"
},
"nativeSrc": "1830:16:9",
"nodeType": "YulFunctionCall",
"src": "1830:16:9"
},
{
"kind": "number",
"nativeSrc": "1848:1:9",
"nodeType": "YulLiteral",
"src": "1848:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1823:6:9",
"nodeType": "YulIdentifier",
"src": "1823:6:9"
},
"nativeSrc": "1823:27:9",
"nodeType": "YulFunctionCall",
"src": "1823:27:9"
},
"nativeSrc": "1823:27:9",
"nodeType": "YulExpressionStatement",
"src": "1823:27:9"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "1610:246:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "1654:3:9",
"nodeType": "YulTypedName",
"src": "1654:3:9",
"type": ""
},
{
"name": "dst",
"nativeSrc": "1659:3:9",
"nodeType": "YulTypedName",
"src": "1659:3:9",
"type": ""
},
{
"name": "length",
"nativeSrc": "1664:6:9",
"nodeType": "YulTypedName",
"src": "1664:6:9",
"type": ""
}
],
"src": "1610:246:9"
},
{
"body": {
"nativeSrc": "1957:339:9",
"nodeType": "YulBlock",
"src": "1957:339:9",
"statements": [
{
"nativeSrc": "1967:75:9",
"nodeType": "YulAssignment",
"src": "1967:75:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nativeSrc": "2034:6:9",
"nodeType": "YulIdentifier",
"src": "2034:6:9"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nativeSrc": "1992:41:9",
"nodeType": "YulIdentifier",
"src": "1992:41:9"
},
"nativeSrc": "1992:49:9",
"nodeType": "YulFunctionCall",
"src": "1992:49:9"
}
],
"functionName": {
"name": "allocate_memory",
"nativeSrc": "1976:15:9",
"nodeType": "YulIdentifier",
"src": "1976:15:9"
},
"nativeSrc": "1976:66:9",
"nodeType": "YulFunctionCall",
"src": "1976:66:9"
},
"variableNames": [
{
"name": "array",
"nativeSrc": "1967:5:9",
"nodeType": "YulIdentifier",
"src": "1967:5:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nativeSrc": "2058:5:9",
"nodeType": "YulIdentifier",
"src": "2058:5:9"
},
{
"name": "length",
"nativeSrc": "2065:6:9",
"nodeType": "YulIdentifier",
"src": "2065:6:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "2051:6:9",
"nodeType": "YulIdentifier",
"src": "2051:6:9"
},
"nativeSrc": "2051:21:9",
"nodeType": "YulFunctionCall",
"src": "2051:21:9"
},
"nativeSrc": "2051:21:9",
"nodeType": "YulExpressionStatement",
"src": "2051:21:9"
},
{
"nativeSrc": "2081:27:9",
"nodeType": "YulVariableDeclaration",
"src": "2081:27:9",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "2096:5:9",
"nodeType": "YulIdentifier",
"src": "2096:5:9"
},
{
"kind": "number",
"nativeSrc": "2103:4:9",
"nodeType": "YulLiteral",
"src": "2103:4:9",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2092:3:9",
"nodeType": "YulIdentifier",
"src": "2092:3:9"
},
"nativeSrc": "2092:16:9",
"nodeType": "YulFunctionCall",
"src": "2092:16:9"
},
"variables": [
{
"name": "dst",
"nativeSrc": "2085:3:9",
"nodeType": "YulTypedName",
"src": "2085:3:9",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "2146:83:9",
"nodeType": "YulBlock",
"src": "2146:83:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nativeSrc": "2148:77:9",
"nodeType": "YulIdentifier",
"src": "2148:77:9"
},
"nativeSrc": "2148:79:9",
"nodeType": "YulFunctionCall",
"src": "2148:79:9"
},
"nativeSrc": "2148:79:9",
"nodeType": "YulExpressionStatement",
"src": "2148:79:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "2127:3:9",
"nodeType": "YulIdentifier",
"src": "2127:3:9"
},
{
"name": "length",
"nativeSrc": "2132:6:9",
"nodeType": "YulIdentifier",
"src": "2132:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2123:3:9",
"nodeType": "YulIdentifier",
"src": "2123:3:9"
},
"nativeSrc": "2123:16:9",
"nodeType": "YulFunctionCall",
"src": "2123:16:9"
},
{
"name": "end",
"nativeSrc": "2141:3:9",
"nodeType": "YulIdentifier",
"src": "2141:3:9"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "2120:2:9",
"nodeType": "YulIdentifier",
"src": "2120:2:9"
},
"nativeSrc": "2120:25:9",
"nodeType": "YulFunctionCall",
"src": "2120:25:9"
},
"nativeSrc": "2117:112:9",
"nodeType": "YulIf",
"src": "2117:112:9"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nativeSrc": "2273:3:9",
"nodeType": "YulIdentifier",
"src": "2273:3:9"
},
{
"name": "dst",
"nativeSrc": "2278:3:9",
"nodeType": "YulIdentifier",
"src": "2278:3:9"
},
{
"name": "length",
"nativeSrc": "2283:6:9",
"nodeType": "YulIdentifier",
"src": "2283:6:9"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "2238:34:9",
"nodeType": "YulIdentifier",
"src": "2238:34:9"
},
"nativeSrc": "2238:52:9",
"nodeType": "YulFunctionCall",
"src": "2238:52:9"
},
"nativeSrc": "2238:52:9",
"nodeType": "YulExpressionStatement",
"src": "2238:52:9"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nativeSrc": "1862:434:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "1930:3:9",
"nodeType": "YulTypedName",
"src": "1930:3:9",
"type": ""
},
{
"name": "length",
"nativeSrc": "1935:6:9",
"nodeType": "YulTypedName",
"src": "1935:6:9",
"type": ""
},
{
"name": "end",
"nativeSrc": "1943:3:9",
"nodeType": "YulTypedName",
"src": "1943:3:9",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nativeSrc": "1951:5:9",
"nodeType": "YulTypedName",
"src": "1951:5:9",
"type": ""
}
],
"src": "1862:434:9"
},
{
"body": {
"nativeSrc": "2389:282:9",
"nodeType": "YulBlock",
"src": "2389:282:9",
"statements": [
{
"body": {
"nativeSrc": "2438:83:9",
"nodeType": "YulBlock",
"src": "2438:83:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nativeSrc": "2440:77:9",
"nodeType": "YulIdentifier",
"src": "2440:77:9"
},
"nativeSrc": "2440:79:9",
"nodeType": "YulFunctionCall",
"src": "2440:79:9"
},
"nativeSrc": "2440:79:9",
"nodeType": "YulExpressionStatement",
"src": "2440:79:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "2417:6:9",
"nodeType": "YulIdentifier",
"src": "2417:6:9"
},
{
"kind": "number",
"nativeSrc": "2425:4:9",
"nodeType": "YulLiteral",
"src": "2425:4:9",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2413:3:9",
"nodeType": "YulIdentifier",
"src": "2413:3:9"
},
"nativeSrc": "2413:17:9",
"nodeType": "YulFunctionCall",
"src": "2413:17:9"
},
{
"name": "end",
"nativeSrc": "2432:3:9",
"nodeType": "YulIdentifier",
"src": "2432:3:9"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "2409:3:9",
"nodeType": "YulIdentifier",
"src": "2409:3:9"
},
"nativeSrc": "2409:27:9",
"nodeType": "YulFunctionCall",
"src": "2409:27:9"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "2402:6:9",
"nodeType": "YulIdentifier",
"src": "2402:6:9"
},
"nativeSrc": "2402:35:9",
"nodeType": "YulFunctionCall",
"src": "2402:35:9"
},
"nativeSrc": "2399:122:9",
"nodeType": "YulIf",
"src": "2399:122:9"
},
{
"nativeSrc": "2530:27:9",
"nodeType": "YulVariableDeclaration",
"src": "2530:27:9",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2550:6:9",
"nodeType": "YulIdentifier",
"src": "2550:6:9"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "2544:5:9",
"nodeType": "YulIdentifier",
"src": "2544:5:9"
},
"nativeSrc": "2544:13:9",
"nodeType": "YulFunctionCall",
"src": "2544:13:9"
},
"variables": [
{
"name": "length",
"nativeSrc": "2534:6:9",
"nodeType": "YulTypedName",
"src": "2534:6:9",
"type": ""
}
]
},
{
"nativeSrc": "2566:99:9",
"nodeType": "YulAssignment",
"src": "2566:99:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nativeSrc": "2638:6:9",
"nodeType": "YulIdentifier",
"src": "2638:6:9"
},
{
"kind": "number",
"nativeSrc": "2646:4:9",
"nodeType": "YulLiteral",
"src": "2646:4:9",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2634:3:9",
"nodeType": "YulIdentifier",
"src": "2634:3:9"
},
"nativeSrc": "2634:17:9",
"nodeType": "YulFunctionCall",
"src": "2634:17:9"
},
{
"name": "length",
"nativeSrc": "2653:6:9",
"nodeType": "YulIdentifier",
"src": "2653:6:9"
},
{
"name": "end",
"nativeSrc": "2661:3:9",
"nodeType": "YulIdentifier",
"src": "2661:3:9"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nativeSrc": "2575:58:9",
"nodeType": "YulIdentifier",
"src": "2575:58:9"
},
"nativeSrc": "2575:90:9",
"nodeType": "YulFunctionCall",
"src": "2575:90:9"
},
"variableNames": [
{
"name": "array",
"nativeSrc": "2566:5:9",
"nodeType": "YulIdentifier",
"src": "2566:5:9"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nativeSrc": "2316:355:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2367:6:9",
"nodeType": "YulTypedName",
"src": "2367:6:9",
"type": ""
},
{
"name": "end",
"nativeSrc": "2375:3:9",
"nodeType": "YulTypedName",
"src": "2375:3:9",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nativeSrc": "2383:5:9",
"nodeType": "YulTypedName",
"src": "2383:5:9",
"type": ""
}
],
"src": "2316:355:9"
},
{
"body": {
"nativeSrc": "2720:43:9",
"nodeType": "YulBlock",
"src": "2720:43:9",
"statements": [
{
"nativeSrc": "2730:27:9",
"nodeType": "YulAssignment",
"src": "2730:27:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "2745:5:9",
"nodeType": "YulIdentifier",
"src": "2745:5:9"
},
{
"kind": "number",
"nativeSrc": "2752:4:9",
"nodeType": "YulLiteral",
"src": "2752:4:9",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "2741:3:9",
"nodeType": "YulIdentifier",
"src": "2741:3:9"
},
"nativeSrc": "2741:16:9",
"nodeType": "YulFunctionCall",
"src": "2741:16:9"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "2730:7:9",
"nodeType": "YulIdentifier",
"src": "2730:7:9"
}
]
}
]
},
"name": "cleanup_t_uint8",
"nativeSrc": "2677:86:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2702:5:9",
"nodeType": "YulTypedName",
"src": "2702:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "2712:7:9",
"nodeType": "YulTypedName",
"src": "2712:7:9",
"type": ""
}
],
"src": "2677:86:9"
},
{
"body": {
"nativeSrc": "2810:77:9",
"nodeType": "YulBlock",
"src": "2810:77:9",
"statements": [
{
"body": {
"nativeSrc": "2865:16:9",
"nodeType": "YulBlock",
"src": "2865:16:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2874:1:9",
"nodeType": "YulLiteral",
"src": "2874:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2877:1:9",
"nodeType": "YulLiteral",
"src": "2877:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2867:6:9",
"nodeType": "YulIdentifier",
"src": "2867:6:9"
},
"nativeSrc": "2867:12:9",
"nodeType": "YulFunctionCall",
"src": "2867:12:9"
},
"nativeSrc": "2867:12:9",
"nodeType": "YulExpressionStatement",
"src": "2867:12:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "2833:5:9",
"nodeType": "YulIdentifier",
"src": "2833:5:9"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2856:5:9",
"nodeType": "YulIdentifier",
"src": "2856:5:9"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nativeSrc": "2840:15:9",
"nodeType": "YulIdentifier",
"src": "2840:15:9"
},
"nativeSrc": "2840:22:9",
"nodeType": "YulFunctionCall",
"src": "2840:22:9"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "2830:2:9",
"nodeType": "YulIdentifier",
"src": "2830:2:9"
},
"nativeSrc": "2830:33:9",
"nodeType": "YulFunctionCall",
"src": "2830:33:9"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "2823:6:9",
"nodeType": "YulIdentifier",
"src": "2823:6:9"
},
"nativeSrc": "2823:41:9",
"nodeType": "YulFunctionCall",
"src": "2823:41:9"
},
"nativeSrc": "2820:61:9",
"nodeType": "YulIf",
"src": "2820:61:9"
}
]
},
"name": "validator_revert_t_uint8",
"nativeSrc": "2769:118:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2803:5:9",
"nodeType": "YulTypedName",
"src": "2803:5:9",
"type": ""
}
],
"src": "2769:118:9"
},
{
"body": {
"nativeSrc": "2954:78:9",
"nodeType": "YulBlock",
"src": "2954:78:9",
"statements": [
{
"nativeSrc": "2964:22:9",
"nodeType": "YulAssignment",
"src": "2964:22:9",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2979:6:9",
"nodeType": "YulIdentifier",
"src": "2979:6:9"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "2973:5:9",
"nodeType": "YulIdentifier",
"src": "2973:5:9"
},
"nativeSrc": "2973:13:9",
"nodeType": "YulFunctionCall",
"src": "2973:13:9"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2964:5:9",
"nodeType": "YulIdentifier",
"src": "2964:5:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "3020:5:9",
"nodeType": "YulIdentifier",
"src": "3020:5:9"
}
],
"functionName": {
"name": "validator_revert_t_uint8",
"nativeSrc": "2995:24:9",
"nodeType": "YulIdentifier",
"src": "2995:24:9"
},
"nativeSrc": "2995:31:9",
"nodeType": "YulFunctionCall",
"src": "2995:31:9"
},
"nativeSrc": "2995:31:9",
"nodeType": "YulExpressionStatement",
"src": "2995:31:9"
}
]
},
"name": "abi_decode_t_uint8_fromMemory",
"nativeSrc": "2893:139:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2932:6:9",
"nodeType": "YulTypedName",
"src": "2932:6:9",
"type": ""
},
{
"name": "end",
"nativeSrc": "2940:3:9",
"nodeType": "YulTypedName",
"src": "2940:3:9",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "2948:5:9",
"nodeType": "YulTypedName",
"src": "2948:5:9",
"type": ""
}
],
"src": "2893:139:9"
},
{
"body": {
"nativeSrc": "3167:876:9",
"nodeType": "YulBlock",
"src": "3167:876:9",
"statements": [
{
"body": {
"nativeSrc": "3213:83:9",
"nodeType": "YulBlock",
"src": "3213:83:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "3215:77:9",
"nodeType": "YulIdentifier",
"src": "3215:77:9"
},
"nativeSrc": "3215:79:9",
"nodeType": "YulFunctionCall",
"src": "3215:79:9"
},
"nativeSrc": "3215:79:9",
"nodeType": "YulExpressionStatement",
"src": "3215:79:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "3188:7:9",
"nodeType": "YulIdentifier",
"src": "3188:7:9"
},
{
"name": "headStart",
"nativeSrc": "3197:9:9",
"nodeType": "YulIdentifier",
"src": "3197:9:9"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "3184:3:9",
"nodeType": "YulIdentifier",
"src": "3184:3:9"
},
"nativeSrc": "3184:23:9",
"nodeType": "YulFunctionCall",
"src": "3184:23:9"
},
{
"kind": "number",
"nativeSrc": "3209:2:9",
"nodeType": "YulLiteral",
"src": "3209:2:9",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "3180:3:9",
"nodeType": "YulIdentifier",
"src": "3180:3:9"
},
"nativeSrc": "3180:32:9",
"nodeType": "YulFunctionCall",
"src": "3180:32:9"
},
"nativeSrc": "3177:119:9",
"nodeType": "YulIf",
"src": "3177:119:9"
},
{
"nativeSrc": "3306:291:9",
"nodeType": "YulBlock",
"src": "3306:291:9",
"statements": [
{
"nativeSrc": "3321:38:9",
"nodeType": "YulVariableDeclaration",
"src": "3321:38:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3345:9:9",
"nodeType": "YulIdentifier",
"src": "3345:9:9"
},
{
"kind": "number",
"nativeSrc": "3356:1:9",
"nodeType": "YulLiteral",
"src": "3356:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3341:3:9",
"nodeType": "YulIdentifier",
"src": "3341:3:9"
},
"nativeSrc": "3341:17:9",
"nodeType": "YulFunctionCall",
"src": "3341:17:9"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "3335:5:9",
"nodeType": "YulIdentifier",
"src": "3335:5:9"
},
"nativeSrc": "3335:24:9",
"nodeType": "YulFunctionCall",
"src": "3335:24:9"
},
"variables": [
{
"name": "offset",
"nativeSrc": "3325:6:9",
"nodeType": "YulTypedName",
"src": "3325:6:9",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "3406:83:9",
"nodeType": "YulBlock",
"src": "3406:83:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "3408:77:9",
"nodeType": "YulIdentifier",
"src": "3408:77:9"
},
"nativeSrc": "3408:79:9",
"nodeType": "YulFunctionCall",
"src": "3408:79:9"
},
"nativeSrc": "3408:79:9",
"nodeType": "YulExpressionStatement",
"src": "3408:79:9"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "3378:6:9",
"nodeType": "YulIdentifier",
"src": "3378:6:9"
},
{
"kind": "number",
"nativeSrc": "3386:18:9",
"nodeType": "YulLiteral",
"src": "3386:18:9",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "3375:2:9",
"nodeType": "YulIdentifier",
"src": "3375:2:9"
},
"nativeSrc": "3375:30:9",
"nodeType": "YulFunctionCall",
"src": "3375:30:9"
},
"nativeSrc": "3372:117:9",
"nodeType": "YulIf",
"src": "3372:117:9"
},
{
"nativeSrc": "3503:84:9",
"nodeType": "YulAssignment",
"src": "3503:84:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3559:9:9",
"nodeType": "YulIdentifier",
"src": "3559:9:9"
},
{
"name": "offset",
"nativeSrc": "3570:6:9",
"nodeType": "YulIdentifier",
"src": "3570:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3555:3:9",
"nodeType": "YulIdentifier",
"src": "3555:3:9"
},
"nativeSrc": "3555:22:9",
"nodeType": "YulFunctionCall",
"src": "3555:22:9"
},
{
"name": "dataEnd",
"nativeSrc": "3579:7:9",
"nodeType": "YulIdentifier",
"src": "3579:7:9"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nativeSrc": "3513:41:9",
"nodeType": "YulIdentifier",
"src": "3513:41:9"
},
"nativeSrc": "3513:74:9",
"nodeType": "YulFunctionCall",
"src": "3513:74:9"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "3503:6:9",
"nodeType": "YulIdentifier",
"src": "3503:6:9"
}
]
}
]
},
{
"nativeSrc": "3607:292:9",
"nodeType": "YulBlock",
"src": "3607:292:9",
"statements": [
{
"nativeSrc": "3622:39:9",
"nodeType": "YulVariableDeclaration",
"src": "3622:39:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3646:9:9",
"nodeType": "YulIdentifier",
"src": "3646:9:9"
},
{
"kind": "number",
"nativeSrc": "3657:2:9",
"nodeType": "YulLiteral",
"src": "3657:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3642:3:9",
"nodeType": "YulIdentifier",
"src": "3642:3:9"
},
"nativeSrc": "3642:18:9",
"nodeType": "YulFunctionCall",
"src": "3642:18:9"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "3636:5:9",
"nodeType": "YulIdentifier",
"src": "3636:5:9"
},
"nativeSrc": "3636:25:9",
"nodeType": "YulFunctionCall",
"src": "3636:25:9"
},
"variables": [
{
"name": "offset",
"nativeSrc": "3626:6:9",
"nodeType": "YulTypedName",
"src": "3626:6:9",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "3708:83:9",
"nodeType": "YulBlock",
"src": "3708:83:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "3710:77:9",
"nodeType": "YulIdentifier",
"src": "3710:77:9"
},
"nativeSrc": "3710:79:9",
"nodeType": "YulFunctionCall",
"src": "3710:79:9"
},
"nativeSrc": "3710:79:9",
"nodeType": "YulExpressionStatement",
"src": "3710:79:9"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nativeSrc": "3680:6:9",
"nodeType": "YulIdentifier",
"src": "3680:6:9"
},
{
"kind": "number",
"nativeSrc": "3688:18:9",
"nodeType": "YulLiteral",
"src": "3688:18:9",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "3677:2:9",
"nodeType": "YulIdentifier",
"src": "3677:2:9"
},
"nativeSrc": "3677:30:9",
"nodeType": "YulFunctionCall",
"src": "3677:30:9"
},
"nativeSrc": "3674:117:9",
"nodeType": "YulIf",
"src": "3674:117:9"
},
{
"nativeSrc": "3805:84:9",
"nodeType": "YulAssignment",
"src": "3805:84:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3861:9:9",
"nodeType": "YulIdentifier",
"src": "3861:9:9"
},
{
"name": "offset",
"nativeSrc": "3872:6:9",
"nodeType": "YulIdentifier",
"src": "3872:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3857:3:9",
"nodeType": "YulIdentifier",
"src": "3857:3:9"
},
"nativeSrc": "3857:22:9",
"nodeType": "YulFunctionCall",
"src": "3857:22:9"
},
{
"name": "dataEnd",
"nativeSrc": "3881:7:9",
"nodeType": "YulIdentifier",
"src": "3881:7:9"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nativeSrc": "3815:41:9",
"nodeType": "YulIdentifier",
"src": "3815:41:9"
},
"nativeSrc": "3815:74:9",
"nodeType": "YulFunctionCall",
"src": "3815:74:9"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "3805:6:9",
"nodeType": "YulIdentifier",
"src": "3805:6:9"
}
]
}
]
},
{
"nativeSrc": "3909:127:9",
"nodeType": "YulBlock",
"src": "3909:127:9",
"statements": [
{
"nativeSrc": "3924:16:9",
"nodeType": "YulVariableDeclaration",
"src": "3924:16:9",
"value": {
"kind": "number",
"nativeSrc": "3938:2:9",
"nodeType": "YulLiteral",
"src": "3938:2:9",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nativeSrc": "3928:6:9",
"nodeType": "YulTypedName",
"src": "3928:6:9",
"type": ""
}
]
},
{
"nativeSrc": "3954:72:9",
"nodeType": "YulAssignment",
"src": "3954:72:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3998:9:9",
"nodeType": "YulIdentifier",
"src": "3998:9:9"
},
{
"name": "offset",
"nativeSrc": "4009:6:9",
"nodeType": "YulIdentifier",
"src": "4009:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3994:3:9",
"nodeType": "YulIdentifier",
"src": "3994:3:9"
},
"nativeSrc": "3994:22:9",
"nodeType": "YulFunctionCall",
"src": "3994:22:9"
},
{
"name": "dataEnd",
"nativeSrc": "4018:7:9",
"nodeType": "YulIdentifier",
"src": "4018:7:9"
}
],
"functionName": {
"name": "abi_decode_t_uint8_fromMemory",
"nativeSrc": "3964:29:9",
"nodeType": "YulIdentifier",
"src": "3964:29:9"
},
"nativeSrc": "3964:62:9",
"nodeType": "YulFunctionCall",
"src": "3964:62:9"
},
"variableNames": [
{
"name": "value2",
"nativeSrc": "3954:6:9",
"nodeType": "YulIdentifier",
"src": "3954:6:9"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory",
"nativeSrc": "3038:1005:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3121:9:9",
"nodeType": "YulTypedName",
"src": "3121:9:9",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "3132:7:9",
"nodeType": "YulTypedName",
"src": "3132:7:9",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "3144:6:9",
"nodeType": "YulTypedName",
"src": "3144:6:9",
"type": ""
},
{
"name": "value1",
"nativeSrc": "3152:6:9",
"nodeType": "YulTypedName",
"src": "3152:6:9",
"type": ""
},
{
"name": "value2",
"nativeSrc": "3160:6:9",
"nodeType": "YulTypedName",
"src": "3160:6:9",
"type": ""
}
],
"src": "3038:1005:9"
},
{
"body": {
"nativeSrc": "4108:40:9",
"nodeType": "YulBlock",
"src": "4108:40:9",
"statements": [
{
"nativeSrc": "4119:22:9",
"nodeType": "YulAssignment",
"src": "4119:22:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "4135:5:9",
"nodeType": "YulIdentifier",
"src": "4135:5:9"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "4129:5:9",
"nodeType": "YulIdentifier",
"src": "4129:5:9"
},
"nativeSrc": "4129:12:9",
"nodeType": "YulFunctionCall",
"src": "4129:12:9"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "4119:6:9",
"nodeType": "YulIdentifier",
"src": "4119:6:9"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "4049:99:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4091:5:9",
"nodeType": "YulTypedName",
"src": "4091:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "4101:6:9",
"nodeType": "YulTypedName",
"src": "4101:6:9",
"type": ""
}
],
"src": "4049:99:9"
},
{
"body": {
"nativeSrc": "4182:152:9",
"nodeType": "YulBlock",
"src": "4182:152:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "4199:1:9",
"nodeType": "YulLiteral",
"src": "4199:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "4202:77:9",
"nodeType": "YulLiteral",
"src": "4202:77:9",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "4192:6:9",
"nodeType": "YulIdentifier",
"src": "4192:6:9"
},
"nativeSrc": "4192:88:9",
"nodeType": "YulFunctionCall",
"src": "4192:88:9"
},
"nativeSrc": "4192:88:9",
"nodeType": "YulExpressionStatement",
"src": "4192:88:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "4296:1:9",
"nodeType": "YulLiteral",
"src": "4296:1:9",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "4299:4:9",
"nodeType": "YulLiteral",
"src": "4299:4:9",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "4289:6:9",
"nodeType": "YulIdentifier",
"src": "4289:6:9"
},
"nativeSrc": "4289:15:9",
"nodeType": "YulFunctionCall",
"src": "4289:15:9"
},
"nativeSrc": "4289:15:9",
"nodeType": "YulExpressionStatement",
"src": "4289:15:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "4320:1:9",
"nodeType": "YulLiteral",
"src": "4320:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "4323:4:9",
"nodeType": "YulLiteral",
"src": "4323:4:9",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "4313:6:9",
"nodeType": "YulIdentifier",
"src": "4313:6:9"
},
"nativeSrc": "4313:15:9",
"nodeType": "YulFunctionCall",
"src": "4313:15:9"
},
"nativeSrc": "4313:15:9",
"nodeType": "YulExpressionStatement",
"src": "4313:15:9"
}
]
},
"name": "panic_error_0x22",
"nativeSrc": "4154:180:9",
"nodeType": "YulFunctionDefinition",
"src": "4154:180:9"
},
{
"body": {
"nativeSrc": "4391:269:9",
"nodeType": "YulBlock",
"src": "4391:269:9",
"statements": [
{
"nativeSrc": "4401:22:9",
"nodeType": "YulAssignment",
"src": "4401:22:9",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "4415:4:9",
"nodeType": "YulIdentifier",
"src": "4415:4:9"
},
{
"kind": "number",
"nativeSrc": "4421:1:9",
"nodeType": "YulLiteral",
"src": "4421:1:9",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nativeSrc": "4411:3:9",
"nodeType": "YulIdentifier",
"src": "4411:3:9"
},
"nativeSrc": "4411:12:9",
"nodeType": "YulFunctionCall",
"src": "4411:12:9"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "4401:6:9",
"nodeType": "YulIdentifier",
"src": "4401:6:9"
}
]
},
{
"nativeSrc": "4432:38:9",
"nodeType": "YulVariableDeclaration",
"src": "4432:38:9",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "4462:4:9",
"nodeType": "YulIdentifier",
"src": "4462:4:9"
},
{
"kind": "number",
"nativeSrc": "4468:1:9",
"nodeType": "YulLiteral",
"src": "4468:1:9",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "4458:3:9",
"nodeType": "YulIdentifier",
"src": "4458:3:9"
},
"nativeSrc": "4458:12:9",
"nodeType": "YulFunctionCall",
"src": "4458:12:9"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "4436:18:9",
"nodeType": "YulTypedName",
"src": "4436:18:9",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "4509:51:9",
"nodeType": "YulBlock",
"src": "4509:51:9",
"statements": [
{
"nativeSrc": "4523:27:9",
"nodeType": "YulAssignment",
"src": "4523:27:9",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "4537:6:9",
"nodeType": "YulIdentifier",
"src": "4537:6:9"
},
{
"kind": "number",
"nativeSrc": "4545:4:9",
"nodeType": "YulLiteral",
"src": "4545:4:9",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "4533:3:9",
"nodeType": "YulIdentifier",
"src": "4533:3:9"
},
"nativeSrc": "4533:17:9",
"nodeType": "YulFunctionCall",
"src": "4533:17:9"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "4523:6:9",
"nodeType": "YulIdentifier",
"src": "4523:6:9"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "4489:18:9",
"nodeType": "YulIdentifier",
"src": "4489:18:9"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "4482:6:9",
"nodeType": "YulIdentifier",
"src": "4482:6:9"
},
"nativeSrc": "4482:26:9",
"nodeType": "YulFunctionCall",
"src": "4482:26:9"
},
"nativeSrc": "4479:81:9",
"nodeType": "YulIf",
"src": "4479:81:9"
},
{
"body": {
"nativeSrc": "4612:42:9",
"nodeType": "YulBlock",
"src": "4612:42:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nativeSrc": "4626:16:9",
"nodeType": "YulIdentifier",
"src": "4626:16:9"
},
"nativeSrc": "4626:18:9",
"nodeType": "YulFunctionCall",
"src": "4626:18:9"
},
"nativeSrc": "4626:18:9",
"nodeType": "YulExpressionStatement",
"src": "4626:18:9"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "4576:18:9",
"nodeType": "YulIdentifier",
"src": "4576:18:9"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "4599:6:9",
"nodeType": "YulIdentifier",
"src": "4599:6:9"
},
{
"kind": "number",
"nativeSrc": "4607:2:9",
"nodeType": "YulLiteral",
"src": "4607:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "4596:2:9",
"nodeType": "YulIdentifier",
"src": "4596:2:9"
},
"nativeSrc": "4596:14:9",
"nodeType": "YulFunctionCall",
"src": "4596:14:9"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "4573:2:9",
"nodeType": "YulIdentifier",
"src": "4573:2:9"
},
"nativeSrc": "4573:38:9",
"nodeType": "YulFunctionCall",
"src": "4573:38:9"
},
"nativeSrc": "4570:84:9",
"nodeType": "YulIf",
"src": "4570:84:9"
}
]
},
"name": "extract_byte_array_length",
"nativeSrc": "4340:320:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "4375:4:9",
"nodeType": "YulTypedName",
"src": "4375:4:9",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "4384:6:9",
"nodeType": "YulTypedName",
"src": "4384:6:9",
"type": ""
}
],
"src": "4340:320:9"
},
{
"body": {
"nativeSrc": "4720:87:9",
"nodeType": "YulBlock",
"src": "4720:87:9",
"statements": [
{
"nativeSrc": "4730:11:9",
"nodeType": "YulAssignment",
"src": "4730:11:9",
"value": {
"name": "ptr",
"nativeSrc": "4738:3:9",
"nodeType": "YulIdentifier",
"src": "4738:3:9"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "4730:4:9",
"nodeType": "YulIdentifier",
"src": "4730:4:9"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "4758:1:9",
"nodeType": "YulLiteral",
"src": "4758:1:9",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nativeSrc": "4761:3:9",
"nodeType": "YulIdentifier",
"src": "4761:3:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "4751:6:9",
"nodeType": "YulIdentifier",
"src": "4751:6:9"
},
"nativeSrc": "4751:14:9",
"nodeType": "YulFunctionCall",
"src": "4751:14:9"
},
"nativeSrc": "4751:14:9",
"nodeType": "YulExpressionStatement",
"src": "4751:14:9"
},
{
"nativeSrc": "4774:26:9",
"nodeType": "YulAssignment",
"src": "4774:26:9",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "4792:1:9",
"nodeType": "YulLiteral",
"src": "4792:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "4795:4:9",
"nodeType": "YulLiteral",
"src": "4795:4:9",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nativeSrc": "4782:9:9",
"nodeType": "YulIdentifier",
"src": "4782:9:9"
},
"nativeSrc": "4782:18:9",
"nodeType": "YulFunctionCall",
"src": "4782:18:9"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "4774:4:9",
"nodeType": "YulIdentifier",
"src": "4774:4:9"
}
]
}
]
},
"name": "array_dataslot_t_string_storage",
"nativeSrc": "4666:141:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nativeSrc": "4707:3:9",
"nodeType": "YulTypedName",
"src": "4707:3:9",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nativeSrc": "4715:4:9",
"nodeType": "YulTypedName",
"src": "4715:4:9",
"type": ""
}
],
"src": "4666:141:9"
},
{
"body": {
"nativeSrc": "4857:49:9",
"nodeType": "YulBlock",
"src": "4857:49:9",
"statements": [
{
"nativeSrc": "4867:33:9",
"nodeType": "YulAssignment",
"src": "4867:33:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "4885:5:9",
"nodeType": "YulIdentifier",
"src": "4885:5:9"
},
{
"kind": "number",
"nativeSrc": "4892:2:9",
"nodeType": "YulLiteral",
"src": "4892:2:9",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4881:3:9",
"nodeType": "YulIdentifier",
"src": "4881:3:9"
},
"nativeSrc": "4881:14:9",
"nodeType": "YulFunctionCall",
"src": "4881:14:9"
},
{
"kind": "number",
"nativeSrc": "4897:2:9",
"nodeType": "YulLiteral",
"src": "4897:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nativeSrc": "4877:3:9",
"nodeType": "YulIdentifier",
"src": "4877:3:9"
},
"nativeSrc": "4877:23:9",
"nodeType": "YulFunctionCall",
"src": "4877:23:9"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "4867:6:9",
"nodeType": "YulIdentifier",
"src": "4867:6:9"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nativeSrc": "4813:93:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4840:5:9",
"nodeType": "YulTypedName",
"src": "4840:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "4850:6:9",
"nodeType": "YulTypedName",
"src": "4850:6:9",
"type": ""
}
],
"src": "4813:93:9"
},
{
"body": {
"nativeSrc": "4965:54:9",
"nodeType": "YulBlock",
"src": "4965:54:9",
"statements": [
{
"nativeSrc": "4975:37:9",
"nodeType": "YulAssignment",
"src": "4975:37:9",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "5000:4:9",
"nodeType": "YulIdentifier",
"src": "5000:4:9"
},
{
"name": "value",
"nativeSrc": "5006:5:9",
"nodeType": "YulIdentifier",
"src": "5006:5:9"
}
],
"functionName": {
"name": "shl",
"nativeSrc": "4996:3:9",
"nodeType": "YulIdentifier",
"src": "4996:3:9"
},
"nativeSrc": "4996:16:9",
"nodeType": "YulFunctionCall",
"src": "4996:16:9"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "4975:8:9",
"nodeType": "YulIdentifier",
"src": "4975:8:9"
}
]
}
]
},
"name": "shift_left_dynamic",
"nativeSrc": "4912:107:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "4940:4:9",
"nodeType": "YulTypedName",
"src": "4940:4:9",
"type": ""
},
{
"name": "value",
"nativeSrc": "4946:5:9",
"nodeType": "YulTypedName",
"src": "4946:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "4956:8:9",
"nodeType": "YulTypedName",
"src": "4956:8:9",
"type": ""
}
],
"src": "4912:107:9"
},
{
"body": {
"nativeSrc": "5101:317:9",
"nodeType": "YulBlock",
"src": "5101:317:9",
"statements": [
{
"nativeSrc": "5111:35:9",
"nodeType": "YulVariableDeclaration",
"src": "5111:35:9",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nativeSrc": "5132:10:9",
"nodeType": "YulIdentifier",
"src": "5132:10:9"
},
{
"kind": "number",
"nativeSrc": "5144:1:9",
"nodeType": "YulLiteral",
"src": "5144:1:9",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "5128:3:9",
"nodeType": "YulIdentifier",
"src": "5128:3:9"
},
"nativeSrc": "5128:18:9",
"nodeType": "YulFunctionCall",
"src": "5128:18:9"
},
"variables": [
{
"name": "shiftBits",
"nativeSrc": "5115:9:9",
"nodeType": "YulTypedName",
"src": "5115:9:9",
"type": ""
}
]
},
{
"nativeSrc": "5155:109:9",
"nodeType": "YulVariableDeclaration",
"src": "5155:109:9",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "5186:9:9",
"nodeType": "YulIdentifier",
"src": "5186:9:9"
},
{
"kind": "number",
"nativeSrc": "5197:66:9",
"nodeType": "YulLiteral",
"src": "5197:66:9",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "5167:18:9",
"nodeType": "YulIdentifier",
"src": "5167:18:9"
},
"nativeSrc": "5167:97:9",
"nodeType": "YulFunctionCall",
"src": "5167:97:9"
},
"variables": [
{
"name": "mask",
"nativeSrc": "5159:4:9",
"nodeType": "YulTypedName",
"src": "5159:4:9",
"type": ""
}
]
},
{
"nativeSrc": "5273:51:9",
"nodeType": "YulAssignment",
"src": "5273:51:9",
"value": {
"arguments": [
{
"name": "shiftBits",
"nativeSrc": "5304:9:9",
"nodeType": "YulIdentifier",
"src": "5304:9:9"
},
{
"name": "toInsert",
"nativeSrc": "5315:8:9",
"nodeType": "YulIdentifier",
"src": "5315:8:9"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nativeSrc": "5285:18:9",
"nodeType": "YulIdentifier",
"src": "5285:18:9"
},
"nativeSrc": "5285:39:9",
"nodeType": "YulFunctionCall",
"src": "5285:39:9"
},
"variableNames": [
{
"name": "toInsert",
"nativeSrc": "5273:8:9",
"nodeType": "YulIdentifier",
"src": "5273:8:9"
}
]
},
{
"nativeSrc": "5333:30:9",
"nodeType": "YulAssignment",
"src": "5333:30:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "5346:5:9",
"nodeType": "YulIdentifier",
"src": "5346:5:9"
},
{
"arguments": [
{
"name": "mask",
"nativeSrc": "5357:4:9",
"nodeType": "YulIdentifier",
"src": "5357:4:9"
}
],
"functionName": {
"name": "not",
"nativeSrc": "5353:3:9",
"nodeType": "YulIdentifier",
"src": "5353:3:9"
},
"nativeSrc": "5353:9:9",
"nodeType": "YulFunctionCall",
"src": "5353:9:9"
}
],
"functionName": {
"name": "and",
"nativeSrc": "5342:3:9",
"nodeType": "YulIdentifier",
"src": "5342:3:9"
},
"nativeSrc": "5342:21:9",
"nodeType": "YulFunctionCall",
"src": "5342:21:9"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "5333:5:9",
"nodeType": "YulIdentifier",
"src": "5333:5:9"
}
]
},
{
"nativeSrc": "5372:40:9",
"nodeType": "YulAssignment",
"src": "5372:40:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "5385:5:9",
"nodeType": "YulIdentifier",
"src": "5385:5:9"
},
{
"arguments": [
{
"name": "toInsert",
"nativeSrc": "5396:8:9",
"nodeType": "YulIdentifier",
"src": "5396:8:9"
},
{
"name": "mask",
"nativeSrc": "5406:4:9",
"nodeType": "YulIdentifier",
"src": "5406:4:9"
}
],
"functionName": {
"name": "and",
"nativeSrc": "5392:3:9",
"nodeType": "YulIdentifier",
"src": "5392:3:9"
},
"nativeSrc": "5392:19:9",
"nodeType": "YulFunctionCall",
"src": "5392:19:9"
}
],
"functionName": {
"name": "or",
"nativeSrc": "5382:2:9",
"nodeType": "YulIdentifier",
"src": "5382:2:9"
},
"nativeSrc": "5382:30:9",
"nodeType": "YulFunctionCall",
"src": "5382:30:9"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "5372:6:9",
"nodeType": "YulIdentifier",
"src": "5372:6:9"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nativeSrc": "5025:393:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5062:5:9",
"nodeType": "YulTypedName",
"src": "5062:5:9",
"type": ""
},
{
"name": "shiftBytes",
"nativeSrc": "5069:10:9",
"nodeType": "YulTypedName",
"src": "5069:10:9",
"type": ""
},
{
"name": "toInsert",
"nativeSrc": "5081:8:9",
"nodeType": "YulTypedName",
"src": "5081:8:9",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "5094:6:9",
"nodeType": "YulTypedName",
"src": "5094:6:9",
"type": ""
}
],
"src": "5025:393:9"
},
{
"body": {
"nativeSrc": "5469:32:9",
"nodeType": "YulBlock",
"src": "5469:32:9",
"statements": [
{
"nativeSrc": "5479:16:9",
"nodeType": "YulAssignment",
"src": "5479:16:9",
"value": {
"name": "value",
"nativeSrc": "5490:5:9",
"nodeType": "YulIdentifier",
"src": "5490:5:9"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "5479:7:9",
"nodeType": "YulIdentifier",
"src": "5479:7:9"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "5424:77:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5451:5:9",
"nodeType": "YulTypedName",
"src": "5451:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "5461:7:9",
"nodeType": "YulTypedName",
"src": "5461:7:9",
"type": ""
}
],
"src": "5424:77:9"
},
{
"body": {
"nativeSrc": "5539:28:9",
"nodeType": "YulBlock",
"src": "5539:28:9",
"statements": [
{
"nativeSrc": "5549:12:9",
"nodeType": "YulAssignment",
"src": "5549:12:9",
"value": {
"name": "value",
"nativeSrc": "5556:5:9",
"nodeType": "YulIdentifier",
"src": "5556:5:9"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "5549:3:9",
"nodeType": "YulIdentifier",
"src": "5549:3:9"
}
]
}
]
},
"name": "identity",
"nativeSrc": "5507:60:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5525:5:9",
"nodeType": "YulTypedName",
"src": "5525:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "5535:3:9",
"nodeType": "YulTypedName",
"src": "5535:3:9",
"type": ""
}
],
"src": "5507:60:9"
},
{
"body": {
"nativeSrc": "5633:82:9",
"nodeType": "YulBlock",
"src": "5633:82:9",
"statements": [
{
"nativeSrc": "5643:66:9",
"nodeType": "YulAssignment",
"src": "5643:66:9",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "5701:5:9",
"nodeType": "YulIdentifier",
"src": "5701:5:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "5683:17:9",
"nodeType": "YulIdentifier",
"src": "5683:17:9"
},
"nativeSrc": "5683:24:9",
"nodeType": "YulFunctionCall",
"src": "5683:24:9"
}
],
"functionName": {
"name": "identity",
"nativeSrc": "5674:8:9",
"nodeType": "YulIdentifier",
"src": "5674:8:9"
},
"nativeSrc": "5674:34:9",
"nodeType": "YulFunctionCall",
"src": "5674:34:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "5656:17:9",
"nodeType": "YulIdentifier",
"src": "5656:17:9"
},
"nativeSrc": "5656:53:9",
"nodeType": "YulFunctionCall",
"src": "5656:53:9"
},
"variableNames": [
{
"name": "converted",
"nativeSrc": "5643:9:9",
"nodeType": "YulIdentifier",
"src": "5643:9:9"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "5573:142:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5613:5:9",
"nodeType": "YulTypedName",
"src": "5613:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nativeSrc": "5623:9:9",
"nodeType": "YulTypedName",
"src": "5623:9:9",
"type": ""
}
],
"src": "5573:142:9"
},
{
"body": {
"nativeSrc": "5768:28:9",
"nodeType": "YulBlock",
"src": "5768:28:9",
"statements": [
{
"nativeSrc": "5778:12:9",
"nodeType": "YulAssignment",
"src": "5778:12:9",
"value": {
"name": "value",
"nativeSrc": "5785:5:9",
"nodeType": "YulIdentifier",
"src": "5785:5:9"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "5778:3:9",
"nodeType": "YulIdentifier",
"src": "5778:3:9"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nativeSrc": "5721:75:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5754:5:9",
"nodeType": "YulTypedName",
"src": "5754:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nativeSrc": "5764:3:9",
"nodeType": "YulTypedName",
"src": "5764:3:9",
"type": ""
}
],
"src": "5721:75:9"
},
{
"body": {
"nativeSrc": "5878:193:9",
"nodeType": "YulBlock",
"src": "5878:193:9",
"statements": [
{
"nativeSrc": "5888:63:9",
"nodeType": "YulVariableDeclaration",
"src": "5888:63:9",
"value": {
"arguments": [
{
"name": "value_0",
"nativeSrc": "5943:7:9",
"nodeType": "YulIdentifier",
"src": "5943:7:9"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nativeSrc": "5912:30:9",
"nodeType": "YulIdentifier",
"src": "5912:30:9"
},
"nativeSrc": "5912:39:9",
"nodeType": "YulFunctionCall",
"src": "5912:39:9"
},
"variables": [
{
"name": "convertedValue_0",
"nativeSrc": "5892:16:9",
"nodeType": "YulTypedName",
"src": "5892:16:9",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "5967:4:9",
"nodeType": "YulIdentifier",
"src": "5967:4:9"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "6007:4:9",
"nodeType": "YulIdentifier",
"src": "6007:4:9"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "6001:5:9",
"nodeType": "YulIdentifier",
"src": "6001:5:9"
},
"nativeSrc": "6001:11:9",
"nodeType": "YulFunctionCall",
"src": "6001:11:9"
},
{
"name": "offset",
"nativeSrc": "6014:6:9",
"nodeType": "YulIdentifier",
"src": "6014:6:9"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nativeSrc": "6046:16:9",
"nodeType": "YulIdentifier",
"src": "6046:16:9"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nativeSrc": "6022:23:9",
"nodeType": "YulIdentifier",
"src": "6022:23:9"
},
"nativeSrc": "6022:41:9",
"nodeType": "YulFunctionCall",
"src": "6022:41:9"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nativeSrc": "5973:27:9",
"nodeType": "YulIdentifier",
"src": "5973:27:9"
},
"nativeSrc": "5973:91:9",
"nodeType": "YulFunctionCall",
"src": "5973:91:9"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "5960:6:9",
"nodeType": "YulIdentifier",
"src": "5960:6:9"
},
"nativeSrc": "5960:105:9",
"nodeType": "YulFunctionCall",
"src": "5960:105:9"
},
"nativeSrc": "5960:105:9",
"nodeType": "YulExpressionStatement",
"src": "5960:105:9"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "5802:269:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "5855:4:9",
"nodeType": "YulTypedName",
"src": "5855:4:9",
"type": ""
},
{
"name": "offset",
"nativeSrc": "5861:6:9",
"nodeType": "YulTypedName",
"src": "5861:6:9",
"type": ""
},
{
"name": "value_0",
"nativeSrc": "5869:7:9",
"nodeType": "YulTypedName",
"src": "5869:7:9",
"type": ""
}
],
"src": "5802:269:9"
},
{
"body": {
"nativeSrc": "6126:24:9",
"nodeType": "YulBlock",
"src": "6126:24:9",
"statements": [
{
"nativeSrc": "6136:8:9",
"nodeType": "YulAssignment",
"src": "6136:8:9",
"value": {
"kind": "number",
"nativeSrc": "6143:1:9",
"nodeType": "YulLiteral",
"src": "6143:1:9",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nativeSrc": "6136:3:9",
"nodeType": "YulIdentifier",
"src": "6136:3:9"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "6077:73:9",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nativeSrc": "6122:3:9",
"nodeType": "YulTypedName",
"src": "6122:3:9",
"type": ""
}
],
"src": "6077:73:9"
},
{
"body": {
"nativeSrc": "6209:136:9",
"nodeType": "YulBlock",
"src": "6209:136:9",
"statements": [
{
"nativeSrc": "6219:46:9",
"nodeType": "YulVariableDeclaration",
"src": "6219:46:9",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nativeSrc": "6233:30:9",
"nodeType": "YulIdentifier",
"src": "6233:30:9"
},
"nativeSrc": "6233:32:9",
"nodeType": "YulFunctionCall",
"src": "6233:32:9"
},
"variables": [
{
"name": "zero_0",
"nativeSrc": "6223:6:9",
"nodeType": "YulTypedName",
"src": "6223:6:9",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "6318:4:9",
"nodeType": "YulIdentifier",
"src": "6318:4:9"
},
{
"name": "offset",
"nativeSrc": "6324:6:9",
"nodeType": "YulIdentifier",
"src": "6324:6:9"
},
{
"name": "zero_0",
"nativeSrc": "6332:6:9",
"nodeType": "YulIdentifier",
"src": "6332:6:9"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nativeSrc": "6274:43:9",
"nodeType": "YulIdentifier",
"src": "6274:43:9"
},
"nativeSrc": "6274:65:9",
"nodeType": "YulFunctionCall",
"src": "6274:65:9"
},
"nativeSrc": "6274:65:9",
"nodeType": "YulExpressionStatement",
"src": "6274:65:9"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "6156:189:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "6195:4:9",
"nodeType": "YulTypedName",
"src": "6195:4:9",
"type": ""
},
{
"name": "offset",
"nativeSrc": "6201:6:9",
"nodeType": "YulTypedName",
"src": "6201:6:9",
"type": ""
}
],
"src": "6156:189:9"
},
{
"body": {
"nativeSrc": "6401:136:9",
"nodeType": "YulBlock",
"src": "6401:136:9",
"statements": [
{
"body": {
"nativeSrc": "6468:63:9",
"nodeType": "YulBlock",
"src": "6468:63:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nativeSrc": "6512:5:9",
"nodeType": "YulIdentifier",
"src": "6512:5:9"
},
{
"kind": "number",
"nativeSrc": "6519:1:9",
"nodeType": "YulLiteral",
"src": "6519:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nativeSrc": "6482:29:9",
"nodeType": "YulIdentifier",
"src": "6482:29:9"
},
"nativeSrc": "6482:39:9",
"nodeType": "YulFunctionCall",
"src": "6482:39:9"
},
"nativeSrc": "6482:39:9",
"nodeType": "YulExpressionStatement",
"src": "6482:39:9"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nativeSrc": "6421:5:9",
"nodeType": "YulIdentifier",
"src": "6421:5:9"
},
{
"name": "end",
"nativeSrc": "6428:3:9",
"nodeType": "YulIdentifier",
"src": "6428:3:9"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "6418:2:9",
"nodeType": "YulIdentifier",
"src": "6418:2:9"
},
"nativeSrc": "6418:14:9",
"nodeType": "YulFunctionCall",
"src": "6418:14:9"
},
"nativeSrc": "6411:120:9",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "6433:26:9",
"nodeType": "YulBlock",
"src": "6433:26:9",
"statements": [
{
"nativeSrc": "6435:22:9",
"nodeType": "YulAssignment",
"src": "6435:22:9",
"value": {
"arguments": [
{
"name": "start",
"nativeSrc": "6448:5:9",
"nodeType": "YulIdentifier",
"src": "6448:5:9"
},
{
"kind": "number",
"nativeSrc": "6455:1:9",
"nodeType": "YulLiteral",
"src": "6455:1:9",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6444:3:9",
"nodeType": "YulIdentifier",
"src": "6444:3:9"
},
"nativeSrc": "6444:13:9",
"nodeType": "YulFunctionCall",
"src": "6444:13:9"
},
"variableNames": [
{
"name": "start",
"nativeSrc": "6435:5:9",
"nodeType": "YulIdentifier",
"src": "6435:5:9"
}
]
}
]
},
"pre": {
"nativeSrc": "6415:2:9",
"nodeType": "YulBlock",
"src": "6415:2:9",
"statements": []
},
"src": "6411:120:9"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "6351:186:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nativeSrc": "6389:5:9",
"nodeType": "YulTypedName",
"src": "6389:5:9",
"type": ""
},
{
"name": "end",
"nativeSrc": "6396:3:9",
"nodeType": "YulTypedName",
"src": "6396:3:9",
"type": ""
}
],
"src": "6351:186:9"
},
{
"body": {
"nativeSrc": "6622:464:9",
"nodeType": "YulBlock",
"src": "6622:464:9",
"statements": [
{
"body": {
"nativeSrc": "6648:431:9",
"nodeType": "YulBlock",
"src": "6648:431:9",
"statements": [
{
"nativeSrc": "6662:54:9",
"nodeType": "YulVariableDeclaration",
"src": "6662:54:9",
"value": {
"arguments": [
{
"name": "array",
"nativeSrc": "6710:5:9",
"nodeType": "YulIdentifier",
"src": "6710:5:9"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nativeSrc": "6678:31:9",
"nodeType": "YulIdentifier",
"src": "6678:31:9"
},
"nativeSrc": "6678:38:9",
"nodeType": "YulFunctionCall",
"src": "6678:38:9"
},
"variables": [
{
"name": "dataArea",
"nativeSrc": "6666:8:9",
"nodeType": "YulTypedName",
"src": "6666:8:9",
"type": ""
}
]
},
{
"nativeSrc": "6729:63:9",
"nodeType": "YulVariableDeclaration",
"src": "6729:63:9",
"value": {
"arguments": [
{
"name": "dataArea",
"nativeSrc": "6752:8:9",
"nodeType": "YulIdentifier",
"src": "6752:8:9"
},
{
"arguments": [
{
"name": "startIndex",
"nativeSrc": "6780:10:9",
"nodeType": "YulIdentifier",
"src": "6780:10:9"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "6762:17:9",
"nodeType": "YulIdentifier",
"src": "6762:17:9"
},
"nativeSrc": "6762:29:9",
"nodeType": "YulFunctionCall",
"src": "6762:29:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6748:3:9",
"nodeType": "YulIdentifier",
"src": "6748:3:9"
},
"nativeSrc": "6748:44:9",
"nodeType": "YulFunctionCall",
"src": "6748:44:9"
},
"variables": [
{
"name": "deleteStart",
"nativeSrc": "6733:11:9",
"nodeType": "YulTypedName",
"src": "6733:11:9",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "6949:27:9",
"nodeType": "YulBlock",
"src": "6949:27:9",
"statements": [
{
"nativeSrc": "6951:23:9",
"nodeType": "YulAssignment",
"src": "6951:23:9",
"value": {
"name": "dataArea",
"nativeSrc": "6966:8:9",
"nodeType": "YulIdentifier",
"src": "6966:8:9"
},
"variableNames": [
{
"name": "deleteStart",
"nativeSrc": "6951:11:9",
"nodeType": "YulIdentifier",
"src": "6951:11:9"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nativeSrc": "6933:10:9",
"nodeType": "YulIdentifier",
"src": "6933:10:9"
},
{
"kind": "number",
"nativeSrc": "6945:2:9",
"nodeType": "YulLiteral",
"src": "6945:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "6930:2:9",
"nodeType": "YulIdentifier",
"src": "6930:2:9"
},
"nativeSrc": "6930:18:9",
"nodeType": "YulFunctionCall",
"src": "6930:18:9"
},
"nativeSrc": "6927:49:9",
"nodeType": "YulIf",
"src": "6927:49:9"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nativeSrc": "7018:11:9",
"nodeType": "YulIdentifier",
"src": "7018:11:9"
},
{
"arguments": [
{
"name": "dataArea",
"nativeSrc": "7035:8:9",
"nodeType": "YulIdentifier",
"src": "7035:8:9"
},
{
"arguments": [
{
"name": "len",
"nativeSrc": "7063:3:9",
"nodeType": "YulIdentifier",
"src": "7063:3:9"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nativeSrc": "7045:17:9",
"nodeType": "YulIdentifier",
"src": "7045:17:9"
},
"nativeSrc": "7045:22:9",
"nodeType": "YulFunctionCall",
"src": "7045:22:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7031:3:9",
"nodeType": "YulIdentifier",
"src": "7031:3:9"
},
"nativeSrc": "7031:37:9",
"nodeType": "YulFunctionCall",
"src": "7031:37:9"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nativeSrc": "6989:28:9",
"nodeType": "YulIdentifier",
"src": "6989:28:9"
},
"nativeSrc": "6989:80:9",
"nodeType": "YulFunctionCall",
"src": "6989:80:9"
},
"nativeSrc": "6989:80:9",
"nodeType": "YulExpressionStatement",
"src": "6989:80:9"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nativeSrc": "6639:3:9",
"nodeType": "YulIdentifier",
"src": "6639:3:9"
},
{
"kind": "number",
"nativeSrc": "6644:2:9",
"nodeType": "YulLiteral",
"src": "6644:2:9",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "6636:2:9",
"nodeType": "YulIdentifier",
"src": "6636:2:9"
},
"nativeSrc": "6636:11:9",
"nodeType": "YulFunctionCall",
"src": "6636:11:9"
},
"nativeSrc": "6633:446:9",
"nodeType": "YulIf",
"src": "6633:446:9"
}
]
},
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nativeSrc": "6543:543:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nativeSrc": "6598:5:9",
"nodeType": "YulTypedName",
"src": "6598:5:9",
"type": ""
},
{
"name": "len",
"nativeSrc": "6605:3:9",
"nodeType": "YulTypedName",
"src": "6605:3:9",
"type": ""
},
{
"name": "startIndex",
"nativeSrc": "6610:10:9",
"nodeType": "YulTypedName",
"src": "6610:10:9",
"type": ""
}
],
"src": "6543:543:9"
},
{
"body": {
"nativeSrc": "7155:54:9",
"nodeType": "YulBlock",
"src": "7155:54:9",
"statements": [
{
"nativeSrc": "7165:37:9",
"nodeType": "YulAssignment",
"src": "7165:37:9",
"value": {
"arguments": [
{
"name": "bits",
"nativeSrc": "7190:4:9",
"nodeType": "YulIdentifier",
"src": "7190:4:9"
},
{
"name": "value",
"nativeSrc": "7196:5:9",
"nodeType": "YulIdentifier",
"src": "7196:5:9"
}
],
"functionName": {
"name": "shr",
"nativeSrc": "7186:3:9",
"nodeType": "YulIdentifier",
"src": "7186:3:9"
},
"nativeSrc": "7186:16:9",
"nodeType": "YulFunctionCall",
"src": "7186:16:9"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "7165:8:9",
"nodeType": "YulIdentifier",
"src": "7165:8:9"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "7092:117:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nativeSrc": "7130:4:9",
"nodeType": "YulTypedName",
"src": "7130:4:9",
"type": ""
},
{
"name": "value",
"nativeSrc": "7136:5:9",
"nodeType": "YulTypedName",
"src": "7136:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "7146:8:9",
"nodeType": "YulTypedName",
"src": "7146:8:9",
"type": ""
}
],
"src": "7092:117:9"
},
{
"body": {
"nativeSrc": "7266:118:9",
"nodeType": "YulBlock",
"src": "7266:118:9",
"statements": [
{
"nativeSrc": "7276:68:9",
"nodeType": "YulVariableDeclaration",
"src": "7276:68:9",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nativeSrc": "7325:1:9",
"nodeType": "YulLiteral",
"src": "7325:1:9",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nativeSrc": "7328:5:9",
"nodeType": "YulIdentifier",
"src": "7328:5:9"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "7321:3:9",
"nodeType": "YulIdentifier",
"src": "7321:3:9"
},
"nativeSrc": "7321:13:9",
"nodeType": "YulFunctionCall",
"src": "7321:13:9"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "7340:1:9",
"nodeType": "YulLiteral",
"src": "7340:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nativeSrc": "7336:3:9",
"nodeType": "YulIdentifier",
"src": "7336:3:9"
},
"nativeSrc": "7336:6:9",
"nodeType": "YulFunctionCall",
"src": "7336:6:9"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nativeSrc": "7292:28:9",
"nodeType": "YulIdentifier",
"src": "7292:28:9"
},
"nativeSrc": "7292:51:9",
"nodeType": "YulFunctionCall",
"src": "7292:51:9"
}
],
"functionName": {
"name": "not",
"nativeSrc": "7288:3:9",
"nodeType": "YulIdentifier",
"src": "7288:3:9"
},
"nativeSrc": "7288:56:9",
"nodeType": "YulFunctionCall",
"src": "7288:56:9"
},
"variables": [
{
"name": "mask",
"nativeSrc": "7280:4:9",
"nodeType": "YulTypedName",
"src": "7280:4:9",
"type": ""
}
]
},
{
"nativeSrc": "7353:25:9",
"nodeType": "YulAssignment",
"src": "7353:25:9",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "7367:4:9",
"nodeType": "YulIdentifier",
"src": "7367:4:9"
},
{
"name": "mask",
"nativeSrc": "7373:4:9",
"nodeType": "YulIdentifier",
"src": "7373:4:9"
}
],
"functionName": {
"name": "and",
"nativeSrc": "7363:3:9",
"nodeType": "YulIdentifier",
"src": "7363:3:9"
},
"nativeSrc": "7363:15:9",
"nodeType": "YulFunctionCall",
"src": "7363:15:9"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "7353:6:9",
"nodeType": "YulIdentifier",
"src": "7353:6:9"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nativeSrc": "7215:169:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "7243:4:9",
"nodeType": "YulTypedName",
"src": "7243:4:9",
"type": ""
},
{
"name": "bytes",
"nativeSrc": "7249:5:9",
"nodeType": "YulTypedName",
"src": "7249:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "7259:6:9",
"nodeType": "YulTypedName",
"src": "7259:6:9",
"type": ""
}
],
"src": "7215:169:9"
},
{
"body": {
"nativeSrc": "7470:214:9",
"nodeType": "YulBlock",
"src": "7470:214:9",
"statements": [
{
"nativeSrc": "7603:37:9",
"nodeType": "YulAssignment",
"src": "7603:37:9",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "7630:4:9",
"nodeType": "YulIdentifier",
"src": "7630:4:9"
},
{
"name": "len",
"nativeSrc": "7636:3:9",
"nodeType": "YulIdentifier",
"src": "7636:3:9"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "7611:18:9",
"nodeType": "YulIdentifier",
"src": "7611:18:9"
},
"nativeSrc": "7611:29:9",
"nodeType": "YulFunctionCall",
"src": "7611:29:9"
},
"variableNames": [
{
"name": "data",
"nativeSrc": "7603:4:9",
"nodeType": "YulIdentifier",
"src": "7603:4:9"
}
]
},
{
"nativeSrc": "7649:29:9",
"nodeType": "YulAssignment",
"src": "7649:29:9",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "7660:4:9",
"nodeType": "YulIdentifier",
"src": "7660:4:9"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "7670:1:9",
"nodeType": "YulLiteral",
"src": "7670:1:9",
"type": "",
"value": "2"
},
{
"name": "len",
"nativeSrc": "7673:3:9",
"nodeType": "YulIdentifier",
"src": "7673:3:9"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "7666:3:9",
"nodeType": "YulIdentifier",
"src": "7666:3:9"
},
"nativeSrc": "7666:11:9",
"nodeType": "YulFunctionCall",
"src": "7666:11:9"
}
],
"functionName": {
"name": "or",
"nativeSrc": "7657:2:9",
"nodeType": "YulIdentifier",
"src": "7657:2:9"
},
"nativeSrc": "7657:21:9",
"nodeType": "YulFunctionCall",
"src": "7657:21:9"
},
"variableNames": [
{
"name": "used",
"nativeSrc": "7649:4:9",
"nodeType": "YulIdentifier",
"src": "7649:4:9"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "7389:295:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "7451:4:9",
"nodeType": "YulTypedName",
"src": "7451:4:9",
"type": ""
},
{
"name": "len",
"nativeSrc": "7457:3:9",
"nodeType": "YulTypedName",
"src": "7457:3:9",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nativeSrc": "7465:4:9",
"nodeType": "YulTypedName",
"src": "7465:4:9",
"type": ""
}
],
"src": "7389:295:9"
},
{
"body": {
"nativeSrc": "7781:1303:9",
"nodeType": "YulBlock",
"src": "7781:1303:9",
"statements": [
{
"nativeSrc": "7792:51:9",
"nodeType": "YulVariableDeclaration",
"src": "7792:51:9",
"value": {
"arguments": [
{
"name": "src",
"nativeSrc": "7839:3:9",
"nodeType": "YulIdentifier",
"src": "7839:3:9"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "7806:32:9",
"nodeType": "YulIdentifier",
"src": "7806:32:9"
},
"nativeSrc": "7806:37:9",
"nodeType": "YulFunctionCall",
"src": "7806:37:9"
},
"variables": [
{
"name": "newLen",
"nativeSrc": "7796:6:9",
"nodeType": "YulTypedName",
"src": "7796:6:9",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "7928:22:9",
"nodeType": "YulBlock",
"src": "7928:22:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nativeSrc": "7930:16:9",
"nodeType": "YulIdentifier",
"src": "7930:16:9"
},
"nativeSrc": "7930:18:9",
"nodeType": "YulFunctionCall",
"src": "7930:18:9"
},
"nativeSrc": "7930:18:9",
"nodeType": "YulExpressionStatement",
"src": "7930:18:9"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "7900:6:9",
"nodeType": "YulIdentifier",
"src": "7900:6:9"
},
{
"kind": "number",
"nativeSrc": "7908:18:9",
"nodeType": "YulLiteral",
"src": "7908:18:9",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "7897:2:9",
"nodeType": "YulIdentifier",
"src": "7897:2:9"
},
"nativeSrc": "7897:30:9",
"nodeType": "YulFunctionCall",
"src": "7897:30:9"
},
"nativeSrc": "7894:56:9",
"nodeType": "YulIf",
"src": "7894:56:9"
},
{
"nativeSrc": "7960:52:9",
"nodeType": "YulVariableDeclaration",
"src": "7960:52:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nativeSrc": "8006:4:9",
"nodeType": "YulIdentifier",
"src": "8006:4:9"
}
],
"functionName": {
"name": "sload",
"nativeSrc": "8000:5:9",
"nodeType": "YulIdentifier",
"src": "8000:5:9"
},
"nativeSrc": "8000:11:9",
"nodeType": "YulFunctionCall",
"src": "8000:11:9"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nativeSrc": "7974:25:9",
"nodeType": "YulIdentifier",
"src": "7974:25:9"
},
"nativeSrc": "7974:38:9",
"nodeType": "YulFunctionCall",
"src": "7974:38:9"
},
"variables": [
{
"name": "oldLen",
"nativeSrc": "7964:6:9",
"nodeType": "YulTypedName",
"src": "7964:6:9",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "8105:4:9",
"nodeType": "YulIdentifier",
"src": "8105:4:9"
},
{
"name": "oldLen",
"nativeSrc": "8111:6:9",
"nodeType": "YulIdentifier",
"src": "8111:6:9"
},
{
"name": "newLen",
"nativeSrc": "8119:6:9",
"nodeType": "YulIdentifier",
"src": "8119:6:9"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_string_storage",
"nativeSrc": "8059:45:9",
"nodeType": "YulIdentifier",
"src": "8059:45:9"
},
"nativeSrc": "8059:67:9",
"nodeType": "YulFunctionCall",
"src": "8059:67:9"
},
"nativeSrc": "8059:67:9",
"nodeType": "YulExpressionStatement",
"src": "8059:67:9"
},
{
"nativeSrc": "8136:18:9",
"nodeType": "YulVariableDeclaration",
"src": "8136:18:9",
"value": {
"kind": "number",
"nativeSrc": "8153:1:9",
"nodeType": "YulLiteral",
"src": "8153:1:9",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nativeSrc": "8140:9:9",
"nodeType": "YulTypedName",
"src": "8140:9:9",
"type": ""
}
]
},
{
"nativeSrc": "8164:17:9",
"nodeType": "YulAssignment",
"src": "8164:17:9",
"value": {
"kind": "number",
"nativeSrc": "8177:4:9",
"nodeType": "YulLiteral",
"src": "8177:4:9",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "8164:9:9",
"nodeType": "YulIdentifier",
"src": "8164:9:9"
}
]
},
{
"cases": [
{
"body": {
"nativeSrc": "8228:611:9",
"nodeType": "YulBlock",
"src": "8228:611:9",
"statements": [
{
"nativeSrc": "8242:37:9",
"nodeType": "YulVariableDeclaration",
"src": "8242:37:9",
"value": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "8261:6:9",
"nodeType": "YulIdentifier",
"src": "8261:6:9"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "8273:4:9",
"nodeType": "YulLiteral",
"src": "8273:4:9",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nativeSrc": "8269:3:9",
"nodeType": "YulIdentifier",
"src": "8269:3:9"
},
"nativeSrc": "8269:9:9",
"nodeType": "YulFunctionCall",
"src": "8269:9:9"
}
],
"functionName": {
"name": "and",
"nativeSrc": "8257:3:9",
"nodeType": "YulIdentifier",
"src": "8257:3:9"
},
"nativeSrc": "8257:22:9",
"nodeType": "YulFunctionCall",
"src": "8257:22:9"
},
"variables": [
{
"name": "loopEnd",
"nativeSrc": "8246:7:9",
"nodeType": "YulTypedName",
"src": "8246:7:9",
"type": ""
}
]
},
{
"nativeSrc": "8293:51:9",
"nodeType": "YulVariableDeclaration",
"src": "8293:51:9",
"value": {
"arguments": [
{
"name": "slot",
"nativeSrc": "8339:4:9",
"nodeType": "YulIdentifier",
"src": "8339:4:9"
}
],
"functionName": {
"name": "array_dataslot_t_string_storage",
"nativeSrc": "8307:31:9",
"nodeType": "YulIdentifier",
"src": "8307:31:9"
},
"nativeSrc": "8307:37:9",
"nodeType": "YulFunctionCall",
"src": "8307:37:9"
},
"variables": [
{
"name": "dstPtr",
"nativeSrc": "8297:6:9",
"nodeType": "YulTypedName",
"src": "8297:6:9",
"type": ""
}
]
},
{
"nativeSrc": "8357:10:9",
"nodeType": "YulVariableDeclaration",
"src": "8357:10:9",
"value": {
"kind": "number",
"nativeSrc": "8366:1:9",
"nodeType": "YulLiteral",
"src": "8366:1:9",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "8361:1:9",
"nodeType": "YulTypedName",
"src": "8361:1:9",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "8425:163:9",
"nodeType": "YulBlock",
"src": "8425:163:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "8450:6:9",
"nodeType": "YulIdentifier",
"src": "8450:6:9"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "8468:3:9",
"nodeType": "YulIdentifier",
"src": "8468:3:9"
},
{
"name": "srcOffset",
"nativeSrc": "8473:9:9",
"nodeType": "YulIdentifier",
"src": "8473:9:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8464:3:9",
"nodeType": "YulIdentifier",
"src": "8464:3:9"
},
"nativeSrc": "8464:19:9",
"nodeType": "YulFunctionCall",
"src": "8464:19:9"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "8458:5:9",
"nodeType": "YulIdentifier",
"src": "8458:5:9"
},
"nativeSrc": "8458:26:9",
"nodeType": "YulFunctionCall",
"src": "8458:26:9"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "8443:6:9",
"nodeType": "YulIdentifier",
"src": "8443:6:9"
},
"nativeSrc": "8443:42:9",
"nodeType": "YulFunctionCall",
"src": "8443:42:9"
},
"nativeSrc": "8443:42:9",
"nodeType": "YulExpressionStatement",
"src": "8443:42:9"
},
{
"nativeSrc": "8502:24:9",
"nodeType": "YulAssignment",
"src": "8502:24:9",
"value": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "8516:6:9",
"nodeType": "YulIdentifier",
"src": "8516:6:9"
},
{
"kind": "number",
"nativeSrc": "8524:1:9",
"nodeType": "YulLiteral",
"src": "8524:1:9",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8512:3:9",
"nodeType": "YulIdentifier",
"src": "8512:3:9"
},
"nativeSrc": "8512:14:9",
"nodeType": "YulFunctionCall",
"src": "8512:14:9"
},
"variableNames": [
{
"name": "dstPtr",
"nativeSrc": "8502:6:9",
"nodeType": "YulIdentifier",
"src": "8502:6:9"
}
]
},
{
"nativeSrc": "8543:31:9",
"nodeType": "YulAssignment",
"src": "8543:31:9",
"value": {
"arguments": [
{
"name": "srcOffset",
"nativeSrc": "8560:9:9",
"nodeType": "YulIdentifier",
"src": "8560:9:9"
},
{
"kind": "number",
"nativeSrc": "8571:2:9",
"nodeType": "YulLiteral",
"src": "8571:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8556:3:9",
"nodeType": "YulIdentifier",
"src": "8556:3:9"
},
"nativeSrc": "8556:18:9",
"nodeType": "YulFunctionCall",
"src": "8556:18:9"
},
"variableNames": [
{
"name": "srcOffset",
"nativeSrc": "8543:9:9",
"nodeType": "YulIdentifier",
"src": "8543:9:9"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "8391:1:9",
"nodeType": "YulIdentifier",
"src": "8391:1:9"
},
{
"name": "loopEnd",
"nativeSrc": "8394:7:9",
"nodeType": "YulIdentifier",
"src": "8394:7:9"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "8388:2:9",
"nodeType": "YulIdentifier",
"src": "8388:2:9"
},
"nativeSrc": "8388:14:9",
"nodeType": "YulFunctionCall",
"src": "8388:14:9"
},
"nativeSrc": "8380:208:9",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "8403:21:9",
"nodeType": "YulBlock",
"src": "8403:21:9",
"statements": [
{
"nativeSrc": "8405:17:9",
"nodeType": "YulAssignment",
"src": "8405:17:9",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "8414:1:9",
"nodeType": "YulIdentifier",
"src": "8414:1:9"
},
{
"kind": "number",
"nativeSrc": "8417:4:9",
"nodeType": "YulLiteral",
"src": "8417:4:9",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8410:3:9",
"nodeType": "YulIdentifier",
"src": "8410:3:9"
},
"nativeSrc": "8410:12:9",
"nodeType": "YulFunctionCall",
"src": "8410:12:9"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "8405:1:9",
"nodeType": "YulIdentifier",
"src": "8405:1:9"
}
]
}
]
},
"pre": {
"nativeSrc": "8384:3:9",
"nodeType": "YulBlock",
"src": "8384:3:9",
"statements": []
},
"src": "8380:208:9"
},
{
"body": {
"nativeSrc": "8624:156:9",
"nodeType": "YulBlock",
"src": "8624:156:9",
"statements": [
{
"nativeSrc": "8642:43:9",
"nodeType": "YulVariableDeclaration",
"src": "8642:43:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "8669:3:9",
"nodeType": "YulIdentifier",
"src": "8669:3:9"
},
{
"name": "srcOffset",
"nativeSrc": "8674:9:9",
"nodeType": "YulIdentifier",
"src": "8674:9:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8665:3:9",
"nodeType": "YulIdentifier",
"src": "8665:3:9"
},
"nativeSrc": "8665:19:9",
"nodeType": "YulFunctionCall",
"src": "8665:19:9"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "8659:5:9",
"nodeType": "YulIdentifier",
"src": "8659:5:9"
},
"nativeSrc": "8659:26:9",
"nodeType": "YulFunctionCall",
"src": "8659:26:9"
},
"variables": [
{
"name": "lastValue",
"nativeSrc": "8646:9:9",
"nodeType": "YulTypedName",
"src": "8646:9:9",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nativeSrc": "8709:6:9",
"nodeType": "YulIdentifier",
"src": "8709:6:9"
},
{
"arguments": [
{
"name": "lastValue",
"nativeSrc": "8736:9:9",
"nodeType": "YulIdentifier",
"src": "8736:9:9"
},
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "8751:6:9",
"nodeType": "YulIdentifier",
"src": "8751:6:9"
},
{
"kind": "number",
"nativeSrc": "8759:4:9",
"nodeType": "YulLiteral",
"src": "8759:4:9",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "8747:3:9",
"nodeType": "YulIdentifier",
"src": "8747:3:9"
},
"nativeSrc": "8747:17:9",
"nodeType": "YulFunctionCall",
"src": "8747:17:9"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nativeSrc": "8717:18:9",
"nodeType": "YulIdentifier",
"src": "8717:18:9"
},
"nativeSrc": "8717:48:9",
"nodeType": "YulFunctionCall",
"src": "8717:48:9"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "8702:6:9",
"nodeType": "YulIdentifier",
"src": "8702:6:9"
},
"nativeSrc": "8702:64:9",
"nodeType": "YulFunctionCall",
"src": "8702:64:9"
},
"nativeSrc": "8702:64:9",
"nodeType": "YulExpressionStatement",
"src": "8702:64:9"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nativeSrc": "8607:7:9",
"nodeType": "YulIdentifier",
"src": "8607:7:9"
},
{
"name": "newLen",
"nativeSrc": "8616:6:9",
"nodeType": "YulIdentifier",
"src": "8616:6:9"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "8604:2:9",
"nodeType": "YulIdentifier",
"src": "8604:2:9"
},
"nativeSrc": "8604:19:9",
"nodeType": "YulFunctionCall",
"src": "8604:19:9"
},
"nativeSrc": "8601:179:9",
"nodeType": "YulIf",
"src": "8601:179:9"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "8800:4:9",
"nodeType": "YulIdentifier",
"src": "8800:4:9"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nativeSrc": "8814:6:9",
"nodeType": "YulIdentifier",
"src": "8814:6:9"
},
{
"kind": "number",
"nativeSrc": "8822:1:9",
"nodeType": "YulLiteral",
"src": "8822:1:9",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "8810:3:9",
"nodeType": "YulIdentifier",
"src": "8810:3:9"
},
"nativeSrc": "8810:14:9",
"nodeType": "YulFunctionCall",
"src": "8810:14:9"
},
{
"kind": "number",
"nativeSrc": "8826:1:9",
"nodeType": "YulLiteral",
"src": "8826:1:9",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8806:3:9",
"nodeType": "YulIdentifier",
"src": "8806:3:9"
},
"nativeSrc": "8806:22:9",
"nodeType": "YulFunctionCall",
"src": "8806:22:9"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "8793:6:9",
"nodeType": "YulIdentifier",
"src": "8793:6:9"
},
"nativeSrc": "8793:36:9",
"nodeType": "YulFunctionCall",
"src": "8793:36:9"
},
"nativeSrc": "8793:36:9",
"nodeType": "YulExpressionStatement",
"src": "8793:36:9"
}
]
},
"nativeSrc": "8221:618:9",
"nodeType": "YulCase",
"src": "8221:618:9",
"value": {
"kind": "number",
"nativeSrc": "8226:1:9",
"nodeType": "YulLiteral",
"src": "8226:1:9",
"type": "",
"value": "1"
}
},
{
"body": {
"nativeSrc": "8856:222:9",
"nodeType": "YulBlock",
"src": "8856:222:9",
"statements": [
{
"nativeSrc": "8870:14:9",
"nodeType": "YulVariableDeclaration",
"src": "8870:14:9",
"value": {
"kind": "number",
"nativeSrc": "8883:1:9",
"nodeType": "YulLiteral",
"src": "8883:1:9",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nativeSrc": "8874:5:9",
"nodeType": "YulTypedName",
"src": "8874:5:9",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "8907:67:9",
"nodeType": "YulBlock",
"src": "8907:67:9",
"statements": [
{
"nativeSrc": "8925:35:9",
"nodeType": "YulAssignment",
"src": "8925:35:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "8944:3:9",
"nodeType": "YulIdentifier",
"src": "8944:3:9"
},
{
"name": "srcOffset",
"nativeSrc": "8949:9:9",
"nodeType": "YulIdentifier",
"src": "8949:9:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8940:3:9",
"nodeType": "YulIdentifier",
"src": "8940:3:9"
},
"nativeSrc": "8940:19:9",
"nodeType": "YulFunctionCall",
"src": "8940:19:9"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "8934:5:9",
"nodeType": "YulIdentifier",
"src": "8934:5:9"
},
"nativeSrc": "8934:26:9",
"nodeType": "YulFunctionCall",
"src": "8934:26:9"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "8925:5:9",
"nodeType": "YulIdentifier",
"src": "8925:5:9"
}
]
}
]
},
"condition": {
"name": "newLen",
"nativeSrc": "8900:6:9",
"nodeType": "YulIdentifier",
"src": "8900:6:9"
},
"nativeSrc": "8897:77:9",
"nodeType": "YulIf",
"src": "8897:77:9"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nativeSrc": "8994:4:9",
"nodeType": "YulIdentifier",
"src": "8994:4:9"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "9053:5:9",
"nodeType": "YulIdentifier",
"src": "9053:5:9"
},
{
"name": "newLen",
"nativeSrc": "9060:6:9",
"nodeType": "YulIdentifier",
"src": "9060:6:9"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nativeSrc": "9000:52:9",
"nodeType": "YulIdentifier",
"src": "9000:52:9"
},
"nativeSrc": "9000:67:9",
"nodeType": "YulFunctionCall",
"src": "9000:67:9"
}
],
"functionName": {
"name": "sstore",
"nativeSrc": "8987:6:9",
"nodeType": "YulIdentifier",
"src": "8987:6:9"
},
"nativeSrc": "8987:81:9",
"nodeType": "YulFunctionCall",
"src": "8987:81:9"
},
"nativeSrc": "8987:81:9",
"nodeType": "YulExpressionStatement",
"src": "8987:81:9"
}
]
},
"nativeSrc": "8848:230:9",
"nodeType": "YulCase",
"src": "8848:230:9",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nativeSrc": "8201:6:9",
"nodeType": "YulIdentifier",
"src": "8201:6:9"
},
{
"kind": "number",
"nativeSrc": "8209:2:9",
"nodeType": "YulLiteral",
"src": "8209:2:9",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "8198:2:9",
"nodeType": "YulIdentifier",
"src": "8198:2:9"
},
"nativeSrc": "8198:14:9",
"nodeType": "YulFunctionCall",
"src": "8198:14:9"
},
"nativeSrc": "8191:887:9",
"nodeType": "YulSwitch",
"src": "8191:887:9"
}
]
},
"name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
"nativeSrc": "7689:1395:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nativeSrc": "7770:4:9",
"nodeType": "YulTypedName",
"src": "7770:4:9",
"type": ""
},
{
"name": "src",
"nativeSrc": "7776:3:9",
"nodeType": "YulTypedName",
"src": "7776:3:9",
"type": ""
}
],
"src": "7689:1395:9"
},
{
"body": {
"nativeSrc": "9118:152:9",
"nodeType": "YulBlock",
"src": "9118:152:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "9135:1:9",
"nodeType": "YulLiteral",
"src": "9135:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "9138:77:9",
"nodeType": "YulLiteral",
"src": "9138:77:9",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "9128:6:9",
"nodeType": "YulIdentifier",
"src": "9128:6:9"
},
"nativeSrc": "9128:88:9",
"nodeType": "YulFunctionCall",
"src": "9128:88:9"
},
"nativeSrc": "9128:88:9",
"nodeType": "YulExpressionStatement",
"src": "9128:88:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "9232:1:9",
"nodeType": "YulLiteral",
"src": "9232:1:9",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "9235:4:9",
"nodeType": "YulLiteral",
"src": "9235:4:9",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "9225:6:9",
"nodeType": "YulIdentifier",
"src": "9225:6:9"
},
"nativeSrc": "9225:15:9",
"nodeType": "YulFunctionCall",
"src": "9225:15:9"
},
"nativeSrc": "9225:15:9",
"nodeType": "YulExpressionStatement",
"src": "9225:15:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "9256:1:9",
"nodeType": "YulLiteral",
"src": "9256:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "9259:4:9",
"nodeType": "YulLiteral",
"src": "9259:4:9",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "9249:6:9",
"nodeType": "YulIdentifier",
"src": "9249:6:9"
},
"nativeSrc": "9249:15:9",
"nodeType": "YulFunctionCall",
"src": "9249:15:9"
},
"nativeSrc": "9249:15:9",
"nodeType": "YulExpressionStatement",
"src": "9249:15:9"
}
]
},
"name": "panic_error_0x11",
"nativeSrc": "9090:180:9",
"nodeType": "YulFunctionDefinition",
"src": "9090:180:9"
},
{
"body": {
"nativeSrc": "9327:51:9",
"nodeType": "YulBlock",
"src": "9327:51:9",
"statements": [
{
"nativeSrc": "9337:34:9",
"nodeType": "YulAssignment",
"src": "9337:34:9",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "9362:1:9",
"nodeType": "YulLiteral",
"src": "9362:1:9",
"type": "",
"value": "1"
},
{
"name": "value",
"nativeSrc": "9365:5:9",
"nodeType": "YulIdentifier",
"src": "9365:5:9"
}
],
"functionName": {
"name": "shr",
"nativeSrc": "9358:3:9",
"nodeType": "YulIdentifier",
"src": "9358:3:9"
},
"nativeSrc": "9358:13:9",
"nodeType": "YulFunctionCall",
"src": "9358:13:9"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "9337:8:9",
"nodeType": "YulIdentifier",
"src": "9337:8:9"
}
]
}
]
},
"name": "shift_right_1_unsigned",
"nativeSrc": "9276:102:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "9308:5:9",
"nodeType": "YulTypedName",
"src": "9308:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "9318:8:9",
"nodeType": "YulTypedName",
"src": "9318:8:9",
"type": ""
}
],
"src": "9276:102:9"
},
{
"body": {
"nativeSrc": "9457:775:9",
"nodeType": "YulBlock",
"src": "9457:775:9",
"statements": [
{
"nativeSrc": "9467:15:9",
"nodeType": "YulAssignment",
"src": "9467:15:9",
"value": {
"name": "_power",
"nativeSrc": "9476:6:9",
"nodeType": "YulIdentifier",
"src": "9476:6:9"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "9467:5:9",
"nodeType": "YulIdentifier",
"src": "9467:5:9"
}
]
},
{
"nativeSrc": "9491:14:9",
"nodeType": "YulAssignment",
"src": "9491:14:9",
"value": {
"name": "_base",
"nativeSrc": "9500:5:9",
"nodeType": "YulIdentifier",
"src": "9500:5:9"
},
"variableNames": [
{
"name": "base",
"nativeSrc": "9491:4:9",
"nodeType": "YulIdentifier",
"src": "9491:4:9"
}
]
},
{
"body": {
"nativeSrc": "9549:677:9",
"nodeType": "YulBlock",
"src": "9549:677:9",
"statements": [
{
"body": {
"nativeSrc": "9637:22:9",
"nodeType": "YulBlock",
"src": "9637:22:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "9639:16:9",
"nodeType": "YulIdentifier",
"src": "9639:16:9"
},
"nativeSrc": "9639:18:9",
"nodeType": "YulFunctionCall",
"src": "9639:18:9"
},
"nativeSrc": "9639:18:9",
"nodeType": "YulExpressionStatement",
"src": "9639:18:9"
}
]
},
"condition": {
"arguments": [
{
"name": "base",
"nativeSrc": "9615:4:9",
"nodeType": "YulIdentifier",
"src": "9615:4:9"
},
{
"arguments": [
{
"name": "max",
"nativeSrc": "9625:3:9",
"nodeType": "YulIdentifier",
"src": "9625:3:9"
},
{
"name": "base",
"nativeSrc": "9630:4:9",
"nodeType": "YulIdentifier",
"src": "9630:4:9"
}
],
"functionName": {
"name": "div",
"nativeSrc": "9621:3:9",
"nodeType": "YulIdentifier",
"src": "9621:3:9"
},
"nativeSrc": "9621:14:9",
"nodeType": "YulFunctionCall",
"src": "9621:14:9"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "9612:2:9",
"nodeType": "YulIdentifier",
"src": "9612:2:9"
},
"nativeSrc": "9612:24:9",
"nodeType": "YulFunctionCall",
"src": "9612:24:9"
},
"nativeSrc": "9609:50:9",
"nodeType": "YulIf",
"src": "9609:50:9"
},
{
"body": {
"nativeSrc": "9704:419:9",
"nodeType": "YulBlock",
"src": "9704:419:9",
"statements": [
{
"nativeSrc": "10084:25:9",
"nodeType": "YulAssignment",
"src": "10084:25:9",
"value": {
"arguments": [
{
"name": "power",
"nativeSrc": "10097:5:9",
"nodeType": "YulIdentifier",
"src": "10097:5:9"
},
{
"name": "base",
"nativeSrc": "10104:4:9",
"nodeType": "YulIdentifier",
"src": "10104:4:9"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "10093:3:9",
"nodeType": "YulIdentifier",
"src": "10093:3:9"
},
"nativeSrc": "10093:16:9",
"nodeType": "YulFunctionCall",
"src": "10093:16:9"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "10084:5:9",
"nodeType": "YulIdentifier",
"src": "10084:5:9"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "exponent",
"nativeSrc": "9679:8:9",
"nodeType": "YulIdentifier",
"src": "9679:8:9"
},
{
"kind": "number",
"nativeSrc": "9689:1:9",
"nodeType": "YulLiteral",
"src": "9689:1:9",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "9675:3:9",
"nodeType": "YulIdentifier",
"src": "9675:3:9"
},
"nativeSrc": "9675:16:9",
"nodeType": "YulFunctionCall",
"src": "9675:16:9"
},
"nativeSrc": "9672:451:9",
"nodeType": "YulIf",
"src": "9672:451:9"
},
{
"nativeSrc": "10136:23:9",
"nodeType": "YulAssignment",
"src": "10136:23:9",
"value": {
"arguments": [
{
"name": "base",
"nativeSrc": "10148:4:9",
"nodeType": "YulIdentifier",
"src": "10148:4:9"
},
{
"name": "base",
"nativeSrc": "10154:4:9",
"nodeType": "YulIdentifier",
"src": "10154:4:9"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "10144:3:9",
"nodeType": "YulIdentifier",
"src": "10144:3:9"
},
"nativeSrc": "10144:15:9",
"nodeType": "YulFunctionCall",
"src": "10144:15:9"
},
"variableNames": [
{
"name": "base",
"nativeSrc": "10136:4:9",
"nodeType": "YulIdentifier",
"src": "10136:4:9"
}
]
},
{
"nativeSrc": "10172:44:9",
"nodeType": "YulAssignment",
"src": "10172:44:9",
"value": {
"arguments": [
{
"name": "exponent",
"nativeSrc": "10207:8:9",
"nodeType": "YulIdentifier",
"src": "10207:8:9"
}
],
"functionName": {
"name": "shift_right_1_unsigned",
"nativeSrc": "10184:22:9",
"nodeType": "YulIdentifier",
"src": "10184:22:9"
},
"nativeSrc": "10184:32:9",
"nodeType": "YulFunctionCall",
"src": "10184:32:9"
},
"variableNames": [
{
"name": "exponent",
"nativeSrc": "10172:8:9",
"nodeType": "YulIdentifier",
"src": "10172:8:9"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "exponent",
"nativeSrc": "9525:8:9",
"nodeType": "YulIdentifier",
"src": "9525:8:9"
},
{
"kind": "number",
"nativeSrc": "9535:1:9",
"nodeType": "YulLiteral",
"src": "9535:1:9",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "9522:2:9",
"nodeType": "YulIdentifier",
"src": "9522:2:9"
},
"nativeSrc": "9522:15:9",
"nodeType": "YulFunctionCall",
"src": "9522:15:9"
},
"nativeSrc": "9514:712:9",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "9538:2:9",
"nodeType": "YulBlock",
"src": "9538:2:9",
"statements": []
},
"pre": {
"nativeSrc": "9518:3:9",
"nodeType": "YulBlock",
"src": "9518:3:9",
"statements": []
},
"src": "9514:712:9"
}
]
},
"name": "checked_exp_helper",
"nativeSrc": "9384:848:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "_power",
"nativeSrc": "9412:6:9",
"nodeType": "YulTypedName",
"src": "9412:6:9",
"type": ""
},
{
"name": "_base",
"nativeSrc": "9420:5:9",
"nodeType": "YulTypedName",
"src": "9420:5:9",
"type": ""
},
{
"name": "exponent",
"nativeSrc": "9427:8:9",
"nodeType": "YulTypedName",
"src": "9427:8:9",
"type": ""
},
{
"name": "max",
"nativeSrc": "9437:3:9",
"nodeType": "YulTypedName",
"src": "9437:3:9",
"type": ""
}
],
"returnVariables": [
{
"name": "power",
"nativeSrc": "9445:5:9",
"nodeType": "YulTypedName",
"src": "9445:5:9",
"type": ""
},
{
"name": "base",
"nativeSrc": "9452:4:9",
"nodeType": "YulTypedName",
"src": "9452:4:9",
"type": ""
}
],
"src": "9384:848:9"
},
{
"body": {
"nativeSrc": "10298:1013:9",
"nodeType": "YulBlock",
"src": "10298:1013:9",
"statements": [
{
"body": {
"nativeSrc": "10493:20:9",
"nodeType": "YulBlock",
"src": "10493:20:9",
"statements": [
{
"nativeSrc": "10495:10:9",
"nodeType": "YulAssignment",
"src": "10495:10:9",
"value": {
"kind": "number",
"nativeSrc": "10504:1:9",
"nodeType": "YulLiteral",
"src": "10504:1:9",
"type": "",
"value": "1"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "10495:5:9",
"nodeType": "YulIdentifier",
"src": "10495:5:9"
}
]
},
{
"nativeSrc": "10506:5:9",
"nodeType": "YulLeave",
"src": "10506:5:9"
}
]
},
"condition": {
"arguments": [
{
"name": "exponent",
"nativeSrc": "10483:8:9",
"nodeType": "YulIdentifier",
"src": "10483:8:9"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "10476:6:9",
"nodeType": "YulIdentifier",
"src": "10476:6:9"
},
"nativeSrc": "10476:16:9",
"nodeType": "YulFunctionCall",
"src": "10476:16:9"
},
"nativeSrc": "10473:40:9",
"nodeType": "YulIf",
"src": "10473:40:9"
},
{
"body": {
"nativeSrc": "10538:20:9",
"nodeType": "YulBlock",
"src": "10538:20:9",
"statements": [
{
"nativeSrc": "10540:10:9",
"nodeType": "YulAssignment",
"src": "10540:10:9",
"value": {
"kind": "number",
"nativeSrc": "10549:1:9",
"nodeType": "YulLiteral",
"src": "10549:1:9",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "10540:5:9",
"nodeType": "YulIdentifier",
"src": "10540:5:9"
}
]
},
{
"nativeSrc": "10551:5:9",
"nodeType": "YulLeave",
"src": "10551:5:9"
}
]
},
"condition": {
"arguments": [
{
"name": "base",
"nativeSrc": "10532:4:9",
"nodeType": "YulIdentifier",
"src": "10532:4:9"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "10525:6:9",
"nodeType": "YulIdentifier",
"src": "10525:6:9"
},
"nativeSrc": "10525:12:9",
"nodeType": "YulFunctionCall",
"src": "10525:12:9"
},
"nativeSrc": "10522:36:9",
"nodeType": "YulIf",
"src": "10522:36:9"
},
{
"cases": [
{
"body": {
"nativeSrc": "10668:20:9",
"nodeType": "YulBlock",
"src": "10668:20:9",
"statements": [
{
"nativeSrc": "10670:10:9",
"nodeType": "YulAssignment",
"src": "10670:10:9",
"value": {
"kind": "number",
"nativeSrc": "10679:1:9",
"nodeType": "YulLiteral",
"src": "10679:1:9",
"type": "",
"value": "1"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "10670:5:9",
"nodeType": "YulIdentifier",
"src": "10670:5:9"
}
]
},
{
"nativeSrc": "10681:5:9",
"nodeType": "YulLeave",
"src": "10681:5:9"
}
]
},
"nativeSrc": "10661:27:9",
"nodeType": "YulCase",
"src": "10661:27:9",
"value": {
"kind": "number",
"nativeSrc": "10666:1:9",
"nodeType": "YulLiteral",
"src": "10666:1:9",
"type": "",
"value": "1"
}
},
{
"body": {
"nativeSrc": "10712:176:9",
"nodeType": "YulBlock",
"src": "10712:176:9",
"statements": [
{
"body": {
"nativeSrc": "10747:22:9",
"nodeType": "YulBlock",
"src": "10747:22:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "10749:16:9",
"nodeType": "YulIdentifier",
"src": "10749:16:9"
},
"nativeSrc": "10749:18:9",
"nodeType": "YulFunctionCall",
"src": "10749:18:9"
},
"nativeSrc": "10749:18:9",
"nodeType": "YulExpressionStatement",
"src": "10749:18:9"
}
]
},
"condition": {
"arguments": [
{
"name": "exponent",
"nativeSrc": "10732:8:9",
"nodeType": "YulIdentifier",
"src": "10732:8:9"
},
{
"kind": "number",
"nativeSrc": "10742:3:9",
"nodeType": "YulLiteral",
"src": "10742:3:9",
"type": "",
"value": "255"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "10729:2:9",
"nodeType": "YulIdentifier",
"src": "10729:2:9"
},
"nativeSrc": "10729:17:9",
"nodeType": "YulFunctionCall",
"src": "10729:17:9"
},
"nativeSrc": "10726:43:9",
"nodeType": "YulIf",
"src": "10726:43:9"
},
{
"nativeSrc": "10782:25:9",
"nodeType": "YulAssignment",
"src": "10782:25:9",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "10795:1:9",
"nodeType": "YulLiteral",
"src": "10795:1:9",
"type": "",
"value": "2"
},
{
"name": "exponent",
"nativeSrc": "10798:8:9",
"nodeType": "YulIdentifier",
"src": "10798:8:9"
}
],
"functionName": {
"name": "exp",
"nativeSrc": "10791:3:9",
"nodeType": "YulIdentifier",
"src": "10791:3:9"
},
"nativeSrc": "10791:16:9",
"nodeType": "YulFunctionCall",
"src": "10791:16:9"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "10782:5:9",
"nodeType": "YulIdentifier",
"src": "10782:5:9"
}
]
},
{
"body": {
"nativeSrc": "10838:22:9",
"nodeType": "YulBlock",
"src": "10838:22:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "10840:16:9",
"nodeType": "YulIdentifier",
"src": "10840:16:9"
},
"nativeSrc": "10840:18:9",
"nodeType": "YulFunctionCall",
"src": "10840:18:9"
},
"nativeSrc": "10840:18:9",
"nodeType": "YulExpressionStatement",
"src": "10840:18:9"
}
]
},
"condition": {
"arguments": [
{
"name": "power",
"nativeSrc": "10826:5:9",
"nodeType": "YulIdentifier",
"src": "10826:5:9"
},
{
"name": "max",
"nativeSrc": "10833:3:9",
"nodeType": "YulIdentifier",
"src": "10833:3:9"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "10823:2:9",
"nodeType": "YulIdentifier",
"src": "10823:2:9"
},
"nativeSrc": "10823:14:9",
"nodeType": "YulFunctionCall",
"src": "10823:14:9"
},
"nativeSrc": "10820:40:9",
"nodeType": "YulIf",
"src": "10820:40:9"
},
{
"nativeSrc": "10873:5:9",
"nodeType": "YulLeave",
"src": "10873:5:9"
}
]
},
"nativeSrc": "10697:191:9",
"nodeType": "YulCase",
"src": "10697:191:9",
"value": {
"kind": "number",
"nativeSrc": "10702:1:9",
"nodeType": "YulLiteral",
"src": "10702:1:9",
"type": "",
"value": "2"
}
}
],
"expression": {
"name": "base",
"nativeSrc": "10618:4:9",
"nodeType": "YulIdentifier",
"src": "10618:4:9"
},
"nativeSrc": "10611:277:9",
"nodeType": "YulSwitch",
"src": "10611:277:9"
},
{
"body": {
"nativeSrc": "11020:123:9",
"nodeType": "YulBlock",
"src": "11020:123:9",
"statements": [
{
"nativeSrc": "11034:28:9",
"nodeType": "YulAssignment",
"src": "11034:28:9",
"value": {
"arguments": [
{
"name": "base",
"nativeSrc": "11047:4:9",
"nodeType": "YulIdentifier",
"src": "11047:4:9"
},
{
"name": "exponent",
"nativeSrc": "11053:8:9",
"nodeType": "YulIdentifier",
"src": "11053:8:9"
}
],
"functionName": {
"name": "exp",
"nativeSrc": "11043:3:9",
"nodeType": "YulIdentifier",
"src": "11043:3:9"
},
"nativeSrc": "11043:19:9",
"nodeType": "YulFunctionCall",
"src": "11043:19:9"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "11034:5:9",
"nodeType": "YulIdentifier",
"src": "11034:5:9"
}
]
},
{
"body": {
"nativeSrc": "11093:22:9",
"nodeType": "YulBlock",
"src": "11093:22:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "11095:16:9",
"nodeType": "YulIdentifier",
"src": "11095:16:9"
},
"nativeSrc": "11095:18:9",
"nodeType": "YulFunctionCall",
"src": "11095:18:9"
},
"nativeSrc": "11095:18:9",
"nodeType": "YulExpressionStatement",
"src": "11095:18:9"
}
]
},
"condition": {
"arguments": [
{
"name": "power",
"nativeSrc": "11081:5:9",
"nodeType": "YulIdentifier",
"src": "11081:5:9"
},
{
"name": "max",
"nativeSrc": "11088:3:9",
"nodeType": "YulIdentifier",
"src": "11088:3:9"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "11078:2:9",
"nodeType": "YulIdentifier",
"src": "11078:2:9"
},
"nativeSrc": "11078:14:9",
"nodeType": "YulFunctionCall",
"src": "11078:14:9"
},
"nativeSrc": "11075:40:9",
"nodeType": "YulIf",
"src": "11075:40:9"
},
{
"nativeSrc": "11128:5:9",
"nodeType": "YulLeave",
"src": "11128:5:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "base",
"nativeSrc": "10923:4:9",
"nodeType": "YulIdentifier",
"src": "10923:4:9"
},
{
"kind": "number",
"nativeSrc": "10929:2:9",
"nodeType": "YulLiteral",
"src": "10929:2:9",
"type": "",
"value": "11"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "10920:2:9",
"nodeType": "YulIdentifier",
"src": "10920:2:9"
},
"nativeSrc": "10920:12:9",
"nodeType": "YulFunctionCall",
"src": "10920:12:9"
},
{
"arguments": [
{
"name": "exponent",
"nativeSrc": "10937:8:9",
"nodeType": "YulIdentifier",
"src": "10937:8:9"
},
{
"kind": "number",
"nativeSrc": "10947:2:9",
"nodeType": "YulLiteral",
"src": "10947:2:9",
"type": "",
"value": "78"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "10934:2:9",
"nodeType": "YulIdentifier",
"src": "10934:2:9"
},
"nativeSrc": "10934:16:9",
"nodeType": "YulFunctionCall",
"src": "10934:16:9"
}
],
"functionName": {
"name": "and",
"nativeSrc": "10916:3:9",
"nodeType": "YulIdentifier",
"src": "10916:3:9"
},
"nativeSrc": "10916:35:9",
"nodeType": "YulFunctionCall",
"src": "10916:35:9"
},
{
"arguments": [
{
"arguments": [
{
"name": "base",
"nativeSrc": "10972:4:9",
"nodeType": "YulIdentifier",
"src": "10972:4:9"
},
{
"kind": "number",
"nativeSrc": "10978:3:9",
"nodeType": "YulLiteral",
"src": "10978:3:9",
"type": "",
"value": "307"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "10969:2:9",
"nodeType": "YulIdentifier",
"src": "10969:2:9"
},
"nativeSrc": "10969:13:9",
"nodeType": "YulFunctionCall",
"src": "10969:13:9"
},
{
"arguments": [
{
"name": "exponent",
"nativeSrc": "10987:8:9",
"nodeType": "YulIdentifier",
"src": "10987:8:9"
},
{
"kind": "number",
"nativeSrc": "10997:2:9",
"nodeType": "YulLiteral",
"src": "10997:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "10984:2:9",
"nodeType": "YulIdentifier",
"src": "10984:2:9"
},
"nativeSrc": "10984:16:9",
"nodeType": "YulFunctionCall",
"src": "10984:16:9"
}
],
"functionName": {
"name": "and",
"nativeSrc": "10965:3:9",
"nodeType": "YulIdentifier",
"src": "10965:3:9"
},
"nativeSrc": "10965:36:9",
"nodeType": "YulFunctionCall",
"src": "10965:36:9"
}
],
"functionName": {
"name": "or",
"nativeSrc": "10900:2:9",
"nodeType": "YulIdentifier",
"src": "10900:2:9"
},
"nativeSrc": "10900:111:9",
"nodeType": "YulFunctionCall",
"src": "10900:111:9"
},
"nativeSrc": "10897:246:9",
"nodeType": "YulIf",
"src": "10897:246:9"
},
{
"nativeSrc": "11153:57:9",
"nodeType": "YulAssignment",
"src": "11153:57:9",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "11187:1:9",
"nodeType": "YulLiteral",
"src": "11187:1:9",
"type": "",
"value": "1"
},
{
"name": "base",
"nativeSrc": "11190:4:9",
"nodeType": "YulIdentifier",
"src": "11190:4:9"
},
{
"name": "exponent",
"nativeSrc": "11196:8:9",
"nodeType": "YulIdentifier",
"src": "11196:8:9"
},
{
"name": "max",
"nativeSrc": "11206:3:9",
"nodeType": "YulIdentifier",
"src": "11206:3:9"
}
],
"functionName": {
"name": "checked_exp_helper",
"nativeSrc": "11168:18:9",
"nodeType": "YulIdentifier",
"src": "11168:18:9"
},
"nativeSrc": "11168:42:9",
"nodeType": "YulFunctionCall",
"src": "11168:42:9"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "11153:5:9",
"nodeType": "YulIdentifier",
"src": "11153:5:9"
},
{
"name": "base",
"nativeSrc": "11160:4:9",
"nodeType": "YulIdentifier",
"src": "11160:4:9"
}
]
},
{
"body": {
"nativeSrc": "11249:22:9",
"nodeType": "YulBlock",
"src": "11249:22:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "11251:16:9",
"nodeType": "YulIdentifier",
"src": "11251:16:9"
},
"nativeSrc": "11251:18:9",
"nodeType": "YulFunctionCall",
"src": "11251:18:9"
},
"nativeSrc": "11251:18:9",
"nodeType": "YulExpressionStatement",
"src": "11251:18:9"
}
]
},
"condition": {
"arguments": [
{
"name": "power",
"nativeSrc": "11226:5:9",
"nodeType": "YulIdentifier",
"src": "11226:5:9"
},
{
"arguments": [
{
"name": "max",
"nativeSrc": "11237:3:9",
"nodeType": "YulIdentifier",
"src": "11237:3:9"
},
{
"name": "base",
"nativeSrc": "11242:4:9",
"nodeType": "YulIdentifier",
"src": "11242:4:9"
}
],
"functionName": {
"name": "div",
"nativeSrc": "11233:3:9",
"nodeType": "YulIdentifier",
"src": "11233:3:9"
},
"nativeSrc": "11233:14:9",
"nodeType": "YulFunctionCall",
"src": "11233:14:9"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "11223:2:9",
"nodeType": "YulIdentifier",
"src": "11223:2:9"
},
"nativeSrc": "11223:25:9",
"nodeType": "YulFunctionCall",
"src": "11223:25:9"
},
"nativeSrc": "11220:51:9",
"nodeType": "YulIf",
"src": "11220:51:9"
},
{
"nativeSrc": "11280:25:9",
"nodeType": "YulAssignment",
"src": "11280:25:9",
"value": {
"arguments": [
{
"name": "power",
"nativeSrc": "11293:5:9",
"nodeType": "YulIdentifier",
"src": "11293:5:9"
},
{
"name": "base",
"nativeSrc": "11300:4:9",
"nodeType": "YulIdentifier",
"src": "11300:4:9"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "11289:3:9",
"nodeType": "YulIdentifier",
"src": "11289:3:9"
},
"nativeSrc": "11289:16:9",
"nodeType": "YulFunctionCall",
"src": "11289:16:9"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "11280:5:9",
"nodeType": "YulIdentifier",
"src": "11280:5:9"
}
]
}
]
},
"name": "checked_exp_unsigned",
"nativeSrc": "10238:1073:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "base",
"nativeSrc": "10268:4:9",
"nodeType": "YulTypedName",
"src": "10268:4:9",
"type": ""
},
{
"name": "exponent",
"nativeSrc": "10274:8:9",
"nodeType": "YulTypedName",
"src": "10274:8:9",
"type": ""
},
{
"name": "max",
"nativeSrc": "10284:3:9",
"nodeType": "YulTypedName",
"src": "10284:3:9",
"type": ""
}
],
"returnVariables": [
{
"name": "power",
"nativeSrc": "10292:5:9",
"nodeType": "YulTypedName",
"src": "10292:5:9",
"type": ""
}
],
"src": "10238:1073:9"
},
{
"body": {
"nativeSrc": "11381:217:9",
"nodeType": "YulBlock",
"src": "11381:217:9",
"statements": [
{
"nativeSrc": "11391:31:9",
"nodeType": "YulAssignment",
"src": "11391:31:9",
"value": {
"arguments": [
{
"name": "base",
"nativeSrc": "11417:4:9",
"nodeType": "YulIdentifier",
"src": "11417:4:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "11399:17:9",
"nodeType": "YulIdentifier",
"src": "11399:17:9"
},
"nativeSrc": "11399:23:9",
"nodeType": "YulFunctionCall",
"src": "11399:23:9"
},
"variableNames": [
{
"name": "base",
"nativeSrc": "11391:4:9",
"nodeType": "YulIdentifier",
"src": "11391:4:9"
}
]
},
{
"nativeSrc": "11431:37:9",
"nodeType": "YulAssignment",
"src": "11431:37:9",
"value": {
"arguments": [
{
"name": "exponent",
"nativeSrc": "11459:8:9",
"nodeType": "YulIdentifier",
"src": "11459:8:9"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nativeSrc": "11443:15:9",
"nodeType": "YulIdentifier",
"src": "11443:15:9"
},
"nativeSrc": "11443:25:9",
"nodeType": "YulFunctionCall",
"src": "11443:25:9"
},
"variableNames": [
{
"name": "exponent",
"nativeSrc": "11431:8:9",
"nodeType": "YulIdentifier",
"src": "11431:8:9"
}
]
},
{
"nativeSrc": "11478:113:9",
"nodeType": "YulAssignment",
"src": "11478:113:9",
"value": {
"arguments": [
{
"name": "base",
"nativeSrc": "11508:4:9",
"nodeType": "YulIdentifier",
"src": "11508:4:9"
},
{
"name": "exponent",
"nativeSrc": "11514:8:9",
"nodeType": "YulIdentifier",
"src": "11514:8:9"
},
{
"kind": "number",
"nativeSrc": "11524:66:9",
"nodeType": "YulLiteral",
"src": "11524:66:9",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "checked_exp_unsigned",
"nativeSrc": "11487:20:9",
"nodeType": "YulIdentifier",
"src": "11487:20:9"
},
"nativeSrc": "11487:104:9",
"nodeType": "YulFunctionCall",
"src": "11487:104:9"
},
"variableNames": [
{
"name": "power",
"nativeSrc": "11478:5:9",
"nodeType": "YulIdentifier",
"src": "11478:5:9"
}
]
}
]
},
"name": "checked_exp_t_uint256_t_uint8",
"nativeSrc": "11317:281:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "base",
"nativeSrc": "11356:4:9",
"nodeType": "YulTypedName",
"src": "11356:4:9",
"type": ""
},
{
"name": "exponent",
"nativeSrc": "11362:8:9",
"nodeType": "YulTypedName",
"src": "11362:8:9",
"type": ""
}
],
"returnVariables": [
{
"name": "power",
"nativeSrc": "11375:5:9",
"nodeType": "YulTypedName",
"src": "11375:5:9",
"type": ""
}
],
"src": "11317:281:9"
},
{
"body": {
"nativeSrc": "11652:362:9",
"nodeType": "YulBlock",
"src": "11652:362:9",
"statements": [
{
"nativeSrc": "11662:25:9",
"nodeType": "YulAssignment",
"src": "11662:25:9",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "11685:1:9",
"nodeType": "YulIdentifier",
"src": "11685:1:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "11667:17:9",
"nodeType": "YulIdentifier",
"src": "11667:17:9"
},
"nativeSrc": "11667:20:9",
"nodeType": "YulFunctionCall",
"src": "11667:20:9"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "11662:1:9",
"nodeType": "YulIdentifier",
"src": "11662:1:9"
}
]
},
{
"nativeSrc": "11696:25:9",
"nodeType": "YulAssignment",
"src": "11696:25:9",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "11719:1:9",
"nodeType": "YulIdentifier",
"src": "11719:1:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "11701:17:9",
"nodeType": "YulIdentifier",
"src": "11701:17:9"
},
"nativeSrc": "11701:20:9",
"nodeType": "YulFunctionCall",
"src": "11701:20:9"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "11696:1:9",
"nodeType": "YulIdentifier",
"src": "11696:1:9"
}
]
},
{
"nativeSrc": "11730:28:9",
"nodeType": "YulVariableDeclaration",
"src": "11730:28:9",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "11753:1:9",
"nodeType": "YulIdentifier",
"src": "11753:1:9"
},
{
"name": "y",
"nativeSrc": "11756:1:9",
"nodeType": "YulIdentifier",
"src": "11756:1:9"
}
],
"functionName": {
"name": "mul",
"nativeSrc": "11749:3:9",
"nodeType": "YulIdentifier",
"src": "11749:3:9"
},
"nativeSrc": "11749:9:9",
"nodeType": "YulFunctionCall",
"src": "11749:9:9"
},
"variables": [
{
"name": "product_raw",
"nativeSrc": "11734:11:9",
"nodeType": "YulTypedName",
"src": "11734:11:9",
"type": ""
}
]
},
{
"nativeSrc": "11767:41:9",
"nodeType": "YulAssignment",
"src": "11767:41:9",
"value": {
"arguments": [
{
"name": "product_raw",
"nativeSrc": "11796:11:9",
"nodeType": "YulIdentifier",
"src": "11796:11:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "11778:17:9",
"nodeType": "YulIdentifier",
"src": "11778:17:9"
},
"nativeSrc": "11778:30:9",
"nodeType": "YulFunctionCall",
"src": "11778:30:9"
},
"variableNames": [
{
"name": "product",
"nativeSrc": "11767:7:9",
"nodeType": "YulIdentifier",
"src": "11767:7:9"
}
]
},
{
"body": {
"nativeSrc": "11985:22:9",
"nodeType": "YulBlock",
"src": "11985:22:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "11987:16:9",
"nodeType": "YulIdentifier",
"src": "11987:16:9"
},
"nativeSrc": "11987:18:9",
"nodeType": "YulFunctionCall",
"src": "11987:18:9"
},
"nativeSrc": "11987:18:9",
"nodeType": "YulExpressionStatement",
"src": "11987:18:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nativeSrc": "11918:1:9",
"nodeType": "YulIdentifier",
"src": "11918:1:9"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "11911:6:9",
"nodeType": "YulIdentifier",
"src": "11911:6:9"
},
"nativeSrc": "11911:9:9",
"nodeType": "YulFunctionCall",
"src": "11911:9:9"
},
{
"arguments": [
{
"name": "y",
"nativeSrc": "11941:1:9",
"nodeType": "YulIdentifier",
"src": "11941:1:9"
},
{
"arguments": [
{
"name": "product",
"nativeSrc": "11948:7:9",
"nodeType": "YulIdentifier",
"src": "11948:7:9"
},
{
"name": "x",
"nativeSrc": "11957:1:9",
"nodeType": "YulIdentifier",
"src": "11957:1:9"
}
],
"functionName": {
"name": "div",
"nativeSrc": "11944:3:9",
"nodeType": "YulIdentifier",
"src": "11944:3:9"
},
"nativeSrc": "11944:15:9",
"nodeType": "YulFunctionCall",
"src": "11944:15:9"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "11938:2:9",
"nodeType": "YulIdentifier",
"src": "11938:2:9"
},
"nativeSrc": "11938:22:9",
"nodeType": "YulFunctionCall",
"src": "11938:22:9"
}
],
"functionName": {
"name": "or",
"nativeSrc": "11891:2:9",
"nodeType": "YulIdentifier",
"src": "11891:2:9"
},
"nativeSrc": "11891:83:9",
"nodeType": "YulFunctionCall",
"src": "11891:83:9"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "11871:6:9",
"nodeType": "YulIdentifier",
"src": "11871:6:9"
},
"nativeSrc": "11871:113:9",
"nodeType": "YulFunctionCall",
"src": "11871:113:9"
},
"nativeSrc": "11868:139:9",
"nodeType": "YulIf",
"src": "11868:139:9"
}
]
},
"name": "checked_mul_t_uint256",
"nativeSrc": "11604:410:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "11635:1:9",
"nodeType": "YulTypedName",
"src": "11635:1:9",
"type": ""
},
{
"name": "y",
"nativeSrc": "11638:1:9",
"nodeType": "YulTypedName",
"src": "11638:1:9",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nativeSrc": "11644:7:9",
"nodeType": "YulTypedName",
"src": "11644:7:9",
"type": ""
}
],
"src": "11604:410:9"
},
{
"body": {
"nativeSrc": "12048:152:9",
"nodeType": "YulBlock",
"src": "12048:152:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "12065:1:9",
"nodeType": "YulLiteral",
"src": "12065:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "12068:77:9",
"nodeType": "YulLiteral",
"src": "12068:77:9",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "12058:6:9",
"nodeType": "YulIdentifier",
"src": "12058:6:9"
},
"nativeSrc": "12058:88:9",
"nodeType": "YulFunctionCall",
"src": "12058:88:9"
},
"nativeSrc": "12058:88:9",
"nodeType": "YulExpressionStatement",
"src": "12058:88:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "12162:1:9",
"nodeType": "YulLiteral",
"src": "12162:1:9",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "12165:4:9",
"nodeType": "YulLiteral",
"src": "12165:4:9",
"type": "",
"value": "0x21"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "12155:6:9",
"nodeType": "YulIdentifier",
"src": "12155:6:9"
},
"nativeSrc": "12155:15:9",
"nodeType": "YulFunctionCall",
"src": "12155:15:9"
},
"nativeSrc": "12155:15:9",
"nodeType": "YulExpressionStatement",
"src": "12155:15:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "12186:1:9",
"nodeType": "YulLiteral",
"src": "12186:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "12189:4:9",
"nodeType": "YulLiteral",
"src": "12189:4:9",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "12179:6:9",
"nodeType": "YulIdentifier",
"src": "12179:6:9"
},
"nativeSrc": "12179:15:9",
"nodeType": "YulFunctionCall",
"src": "12179:15:9"
},
"nativeSrc": "12179:15:9",
"nodeType": "YulExpressionStatement",
"src": "12179:15:9"
}
]
},
"name": "panic_error_0x21",
"nativeSrc": "12020:180:9",
"nodeType": "YulFunctionDefinition",
"src": "12020:180:9"
},
{
"body": {
"nativeSrc": "12250:147:9",
"nodeType": "YulBlock",
"src": "12250:147:9",
"statements": [
{
"nativeSrc": "12260:25:9",
"nodeType": "YulAssignment",
"src": "12260:25:9",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "12283:1:9",
"nodeType": "YulIdentifier",
"src": "12283:1:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "12265:17:9",
"nodeType": "YulIdentifier",
"src": "12265:17:9"
},
"nativeSrc": "12265:20:9",
"nodeType": "YulFunctionCall",
"src": "12265:20:9"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "12260:1:9",
"nodeType": "YulIdentifier",
"src": "12260:1:9"
}
]
},
{
"nativeSrc": "12294:25:9",
"nodeType": "YulAssignment",
"src": "12294:25:9",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "12317:1:9",
"nodeType": "YulIdentifier",
"src": "12317:1:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "12299:17:9",
"nodeType": "YulIdentifier",
"src": "12299:17:9"
},
"nativeSrc": "12299:20:9",
"nodeType": "YulFunctionCall",
"src": "12299:20:9"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "12294:1:9",
"nodeType": "YulIdentifier",
"src": "12294:1:9"
}
]
},
{
"nativeSrc": "12328:16:9",
"nodeType": "YulAssignment",
"src": "12328:16:9",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "12339:1:9",
"nodeType": "YulIdentifier",
"src": "12339:1:9"
},
{
"name": "y",
"nativeSrc": "12342:1:9",
"nodeType": "YulIdentifier",
"src": "12342:1:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12335:3:9",
"nodeType": "YulIdentifier",
"src": "12335:3:9"
},
"nativeSrc": "12335:9:9",
"nodeType": "YulFunctionCall",
"src": "12335:9:9"
},
"variableNames": [
{
"name": "sum",
"nativeSrc": "12328:3:9",
"nodeType": "YulIdentifier",
"src": "12328:3:9"
}
]
},
{
"body": {
"nativeSrc": "12368:22:9",
"nodeType": "YulBlock",
"src": "12368:22:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "12370:16:9",
"nodeType": "YulIdentifier",
"src": "12370:16:9"
},
"nativeSrc": "12370:18:9",
"nodeType": "YulFunctionCall",
"src": "12370:18:9"
},
"nativeSrc": "12370:18:9",
"nodeType": "YulExpressionStatement",
"src": "12370:18:9"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nativeSrc": "12360:1:9",
"nodeType": "YulIdentifier",
"src": "12360:1:9"
},
{
"name": "sum",
"nativeSrc": "12363:3:9",
"nodeType": "YulIdentifier",
"src": "12363:3:9"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "12357:2:9",
"nodeType": "YulIdentifier",
"src": "12357:2:9"
},
"nativeSrc": "12357:10:9",
"nodeType": "YulFunctionCall",
"src": "12357:10:9"
},
"nativeSrc": "12354:36:9",
"nodeType": "YulIf",
"src": "12354:36:9"
}
]
},
"name": "checked_add_t_uint256",
"nativeSrc": "12206:191:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "12237:1:9",
"nodeType": "YulTypedName",
"src": "12237:1:9",
"type": ""
},
{
"name": "y",
"nativeSrc": "12240:1:9",
"nodeType": "YulTypedName",
"src": "12240:1:9",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nativeSrc": "12246:3:9",
"nodeType": "YulTypedName",
"src": "12246:3:9",
"type": ""
}
],
"src": "12206:191:9"
},
{
"body": {
"nativeSrc": "12468:53:9",
"nodeType": "YulBlock",
"src": "12468:53:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "12485:3:9",
"nodeType": "YulIdentifier",
"src": "12485:3:9"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "12508:5:9",
"nodeType": "YulIdentifier",
"src": "12508:5:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "12490:17:9",
"nodeType": "YulIdentifier",
"src": "12490:17:9"
},
"nativeSrc": "12490:24:9",
"nodeType": "YulFunctionCall",
"src": "12490:24:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "12478:6:9",
"nodeType": "YulIdentifier",
"src": "12478:6:9"
},
"nativeSrc": "12478:37:9",
"nodeType": "YulFunctionCall",
"src": "12478:37:9"
},
"nativeSrc": "12478:37:9",
"nodeType": "YulExpressionStatement",
"src": "12478:37:9"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "12403:118:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "12456:5:9",
"nodeType": "YulTypedName",
"src": "12456:5:9",
"type": ""
},
{
"name": "pos",
"nativeSrc": "12463:3:9",
"nodeType": "YulTypedName",
"src": "12463:3:9",
"type": ""
}
],
"src": "12403:118:9"
},
{
"body": {
"nativeSrc": "12625:124:9",
"nodeType": "YulBlock",
"src": "12625:124:9",
"statements": [
{
"nativeSrc": "12635:26:9",
"nodeType": "YulAssignment",
"src": "12635:26:9",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "12647:9:9",
"nodeType": "YulIdentifier",
"src": "12647:9:9"
},
{
"kind": "number",
"nativeSrc": "12658:2:9",
"nodeType": "YulLiteral",
"src": "12658:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12643:3:9",
"nodeType": "YulIdentifier",
"src": "12643:3:9"
},
"nativeSrc": "12643:18:9",
"nodeType": "YulFunctionCall",
"src": "12643:18:9"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "12635:4:9",
"nodeType": "YulIdentifier",
"src": "12635:4:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "12715:6:9",
"nodeType": "YulIdentifier",
"src": "12715:6:9"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "12728:9:9",
"nodeType": "YulIdentifier",
"src": "12728:9:9"
},
{
"kind": "number",
"nativeSrc": "12739:1:9",
"nodeType": "YulLiteral",
"src": "12739:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "12724:3:9",
"nodeType": "YulIdentifier",
"src": "12724:3:9"
},
"nativeSrc": "12724:17:9",
"nodeType": "YulFunctionCall",
"src": "12724:17:9"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "12671:43:9",
"nodeType": "YulIdentifier",
"src": "12671:43:9"
},
"nativeSrc": "12671:71:9",
"nodeType": "YulFunctionCall",
"src": "12671:71:9"
},
"nativeSrc": "12671:71:9",
"nodeType": "YulExpressionStatement",
"src": "12671:71:9"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "12527:222:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "12597:9:9",
"nodeType": "YulTypedName",
"src": "12597:9:9",
"type": ""
},
{
"name": "value0",
"nativeSrc": "12609:6:9",
"nodeType": "YulTypedName",
"src": "12609:6:9",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "12620:4:9",
"nodeType": "YulTypedName",
"src": "12620:4:9",
"type": ""
}
],
"src": "12527:222:9"
},
{
"body": {
"nativeSrc": "12800:32:9",
"nodeType": "YulBlock",
"src": "12800:32:9",
"statements": [
{
"nativeSrc": "12810:16:9",
"nodeType": "YulAssignment",
"src": "12810:16:9",
"value": {
"name": "value",
"nativeSrc": "12821:5:9",
"nodeType": "YulIdentifier",
"src": "12821:5:9"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "12810:7:9",
"nodeType": "YulIdentifier",
"src": "12810:7:9"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nativeSrc": "12755:77:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "12782:5:9",
"nodeType": "YulTypedName",
"src": "12782:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "12792:7:9",
"nodeType": "YulTypedName",
"src": "12792:7:9",
"type": ""
}
],
"src": "12755:77:9"
},
{
"body": {
"nativeSrc": "12885:32:9",
"nodeType": "YulBlock",
"src": "12885:32:9",
"statements": [
{
"nativeSrc": "12895:16:9",
"nodeType": "YulAssignment",
"src": "12895:16:9",
"value": {
"name": "value",
"nativeSrc": "12906:5:9",
"nodeType": "YulIdentifier",
"src": "12906:5:9"
},
"variableNames": [
{
"name": "aligned",
"nativeSrc": "12895:7:9",
"nodeType": "YulIdentifier",
"src": "12895:7:9"
}
]
}
]
},
"name": "leftAlign_t_bytes32",
"nativeSrc": "12838:79:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "12867:5:9",
"nodeType": "YulTypedName",
"src": "12867:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nativeSrc": "12877:7:9",
"nodeType": "YulTypedName",
"src": "12877:7:9",
"type": ""
}
],
"src": "12838:79:9"
},
{
"body": {
"nativeSrc": "13006:74:9",
"nodeType": "YulBlock",
"src": "13006:74:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "13023:3:9",
"nodeType": "YulIdentifier",
"src": "13023:3:9"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "13066:5:9",
"nodeType": "YulIdentifier",
"src": "13066:5:9"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nativeSrc": "13048:17:9",
"nodeType": "YulIdentifier",
"src": "13048:17:9"
},
"nativeSrc": "13048:24:9",
"nodeType": "YulFunctionCall",
"src": "13048:24:9"
}
],
"functionName": {
"name": "leftAlign_t_bytes32",
"nativeSrc": "13028:19:9",
"nodeType": "YulIdentifier",
"src": "13028:19:9"
},
"nativeSrc": "13028:45:9",
"nodeType": "YulFunctionCall",
"src": "13028:45:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "13016:6:9",
"nodeType": "YulIdentifier",
"src": "13016:6:9"
},
"nativeSrc": "13016:58:9",
"nodeType": "YulFunctionCall",
"src": "13016:58:9"
},
"nativeSrc": "13016:58:9",
"nodeType": "YulExpressionStatement",
"src": "13016:58:9"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nativeSrc": "12923:157:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "12994:5:9",
"nodeType": "YulTypedName",
"src": "12994:5:9",
"type": ""
},
{
"name": "pos",
"nativeSrc": "13001:3:9",
"nodeType": "YulTypedName",
"src": "13001:3:9",
"type": ""
}
],
"src": "12923:157:9"
},
{
"body": {
"nativeSrc": "13131:81:9",
"nodeType": "YulBlock",
"src": "13131:81:9",
"statements": [
{
"nativeSrc": "13141:65:9",
"nodeType": "YulAssignment",
"src": "13141:65:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "13156:5:9",
"nodeType": "YulIdentifier",
"src": "13156:5:9"
},
{
"kind": "number",
"nativeSrc": "13163:42:9",
"nodeType": "YulLiteral",
"src": "13163:42:9",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "13152:3:9",
"nodeType": "YulIdentifier",
"src": "13152:3:9"
},
"nativeSrc": "13152:54:9",
"nodeType": "YulFunctionCall",
"src": "13152:54:9"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "13141:7:9",
"nodeType": "YulIdentifier",
"src": "13141:7:9"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nativeSrc": "13086:126:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "13113:5:9",
"nodeType": "YulTypedName",
"src": "13113:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "13123:7:9",
"nodeType": "YulTypedName",
"src": "13123:7:9",
"type": ""
}
],
"src": "13086:126:9"
},
{
"body": {
"nativeSrc": "13263:51:9",
"nodeType": "YulBlock",
"src": "13263:51:9",
"statements": [
{
"nativeSrc": "13273:35:9",
"nodeType": "YulAssignment",
"src": "13273:35:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "13302:5:9",
"nodeType": "YulIdentifier",
"src": "13302:5:9"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "13284:17:9",
"nodeType": "YulIdentifier",
"src": "13284:17:9"
},
"nativeSrc": "13284:24:9",
"nodeType": "YulFunctionCall",
"src": "13284:24:9"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "13273:7:9",
"nodeType": "YulIdentifier",
"src": "13273:7:9"
}
]
}
]
},
"name": "cleanup_t_address",
"nativeSrc": "13218:96:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "13245:5:9",
"nodeType": "YulTypedName",
"src": "13245:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "13255:7:9",
"nodeType": "YulTypedName",
"src": "13255:7:9",
"type": ""
}
],
"src": "13218:96:9"
},
{
"body": {
"nativeSrc": "13362:52:9",
"nodeType": "YulBlock",
"src": "13362:52:9",
"statements": [
{
"nativeSrc": "13372:35:9",
"nodeType": "YulAssignment",
"src": "13372:35:9",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "13397:2:9",
"nodeType": "YulLiteral",
"src": "13397:2:9",
"type": "",
"value": "96"
},
{
"name": "value",
"nativeSrc": "13401:5:9",
"nodeType": "YulIdentifier",
"src": "13401:5:9"
}
],
"functionName": {
"name": "shl",
"nativeSrc": "13393:3:9",
"nodeType": "YulIdentifier",
"src": "13393:3:9"
},
"nativeSrc": "13393:14:9",
"nodeType": "YulFunctionCall",
"src": "13393:14:9"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "13372:8:9",
"nodeType": "YulIdentifier",
"src": "13372:8:9"
}
]
}
]
},
"name": "shift_left_96",
"nativeSrc": "13320:94:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "13343:5:9",
"nodeType": "YulTypedName",
"src": "13343:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "13353:8:9",
"nodeType": "YulTypedName",
"src": "13353:8:9",
"type": ""
}
],
"src": "13320:94:9"
},
{
"body": {
"nativeSrc": "13467:47:9",
"nodeType": "YulBlock",
"src": "13467:47:9",
"statements": [
{
"nativeSrc": "13477:31:9",
"nodeType": "YulAssignment",
"src": "13477:31:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "13502:5:9",
"nodeType": "YulIdentifier",
"src": "13502:5:9"
}
],
"functionName": {
"name": "shift_left_96",
"nativeSrc": "13488:13:9",
"nodeType": "YulIdentifier",
"src": "13488:13:9"
},
"nativeSrc": "13488:20:9",
"nodeType": "YulFunctionCall",
"src": "13488:20:9"
},
"variableNames": [
{
"name": "aligned",
"nativeSrc": "13477:7:9",
"nodeType": "YulIdentifier",
"src": "13477:7:9"
}
]
}
]
},
"name": "leftAlign_t_uint160",
"nativeSrc": "13420:94:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "13449:5:9",
"nodeType": "YulTypedName",
"src": "13449:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nativeSrc": "13459:7:9",
"nodeType": "YulTypedName",
"src": "13459:7:9",
"type": ""
}
],
"src": "13420:94:9"
},
{
"body": {
"nativeSrc": "13567:53:9",
"nodeType": "YulBlock",
"src": "13567:53:9",
"statements": [
{
"nativeSrc": "13577:37:9",
"nodeType": "YulAssignment",
"src": "13577:37:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "13608:5:9",
"nodeType": "YulIdentifier",
"src": "13608:5:9"
}
],
"functionName": {
"name": "leftAlign_t_uint160",
"nativeSrc": "13588:19:9",
"nodeType": "YulIdentifier",
"src": "13588:19:9"
},
"nativeSrc": "13588:26:9",
"nodeType": "YulFunctionCall",
"src": "13588:26:9"
},
"variableNames": [
{
"name": "aligned",
"nativeSrc": "13577:7:9",
"nodeType": "YulIdentifier",
"src": "13577:7:9"
}
]
}
]
},
"name": "leftAlign_t_address",
"nativeSrc": "13520:100:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "13549:5:9",
"nodeType": "YulTypedName",
"src": "13549:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nativeSrc": "13559:7:9",
"nodeType": "YulTypedName",
"src": "13559:7:9",
"type": ""
}
],
"src": "13520:100:9"
},
{
"body": {
"nativeSrc": "13709:74:9",
"nodeType": "YulBlock",
"src": "13709:74:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "13726:3:9",
"nodeType": "YulIdentifier",
"src": "13726:3:9"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "13769:5:9",
"nodeType": "YulIdentifier",
"src": "13769:5:9"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "13751:17:9",
"nodeType": "YulIdentifier",
"src": "13751:17:9"
},
"nativeSrc": "13751:24:9",
"nodeType": "YulFunctionCall",
"src": "13751:24:9"
}
],
"functionName": {
"name": "leftAlign_t_address",
"nativeSrc": "13731:19:9",
"nodeType": "YulIdentifier",
"src": "13731:19:9"
},
"nativeSrc": "13731:45:9",
"nodeType": "YulFunctionCall",
"src": "13731:45:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "13719:6:9",
"nodeType": "YulIdentifier",
"src": "13719:6:9"
},
"nativeSrc": "13719:58:9",
"nodeType": "YulFunctionCall",
"src": "13719:58:9"
},
"nativeSrc": "13719:58:9",
"nodeType": "YulExpressionStatement",
"src": "13719:58:9"
}
]
},
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nativeSrc": "13626:157:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "13697:5:9",
"nodeType": "YulTypedName",
"src": "13697:5:9",
"type": ""
},
{
"name": "pos",
"nativeSrc": "13704:3:9",
"nodeType": "YulTypedName",
"src": "13704:3:9",
"type": ""
}
],
"src": "13626:157:9"
},
{
"body": {
"nativeSrc": "13933:253:9",
"nodeType": "YulBlock",
"src": "13933:253:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "14006:6:9",
"nodeType": "YulIdentifier",
"src": "14006:6:9"
},
{
"name": "pos",
"nativeSrc": "14015:3:9",
"nodeType": "YulIdentifier",
"src": "14015:3:9"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nativeSrc": "13944:61:9",
"nodeType": "YulIdentifier",
"src": "13944:61:9"
},
"nativeSrc": "13944:75:9",
"nodeType": "YulFunctionCall",
"src": "13944:75:9"
},
"nativeSrc": "13944:75:9",
"nodeType": "YulExpressionStatement",
"src": "13944:75:9"
},
{
"nativeSrc": "14028:19:9",
"nodeType": "YulAssignment",
"src": "14028:19:9",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "14039:3:9",
"nodeType": "YulIdentifier",
"src": "14039:3:9"
},
{
"kind": "number",
"nativeSrc": "14044:2:9",
"nodeType": "YulLiteral",
"src": "14044:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "14035:3:9",
"nodeType": "YulIdentifier",
"src": "14035:3:9"
},
"nativeSrc": "14035:12:9",
"nodeType": "YulFunctionCall",
"src": "14035:12:9"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "14028:3:9",
"nodeType": "YulIdentifier",
"src": "14028:3:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "14119:6:9",
"nodeType": "YulIdentifier",
"src": "14119:6:9"
},
{
"name": "pos",
"nativeSrc": "14128:3:9",
"nodeType": "YulIdentifier",
"src": "14128:3:9"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nativeSrc": "14057:61:9",
"nodeType": "YulIdentifier",
"src": "14057:61:9"
},
"nativeSrc": "14057:75:9",
"nodeType": "YulFunctionCall",
"src": "14057:75:9"
},
"nativeSrc": "14057:75:9",
"nodeType": "YulExpressionStatement",
"src": "14057:75:9"
},
{
"nativeSrc": "14141:19:9",
"nodeType": "YulAssignment",
"src": "14141:19:9",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "14152:3:9",
"nodeType": "YulIdentifier",
"src": "14152:3:9"
},
{
"kind": "number",
"nativeSrc": "14157:2:9",
"nodeType": "YulLiteral",
"src": "14157:2:9",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "14148:3:9",
"nodeType": "YulIdentifier",
"src": "14148:3:9"
},
"nativeSrc": "14148:12:9",
"nodeType": "YulFunctionCall",
"src": "14148:12:9"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "14141:3:9",
"nodeType": "YulIdentifier",
"src": "14141:3:9"
}
]
},
{
"nativeSrc": "14170:10:9",
"nodeType": "YulAssignment",
"src": "14170:10:9",
"value": {
"name": "pos",
"nativeSrc": "14177:3:9",
"nodeType": "YulIdentifier",
"src": "14177:3:9"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "14170:3:9",
"nodeType": "YulIdentifier",
"src": "14170:3:9"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bytes32_t_address__to_t_bytes32_t_address__nonPadded_inplace_fromStack_reversed",
"nativeSrc": "13789:397:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "13904:3:9",
"nodeType": "YulTypedName",
"src": "13904:3:9",
"type": ""
},
{
"name": "value1",
"nativeSrc": "13910:6:9",
"nodeType": "YulTypedName",
"src": "13910:6:9",
"type": ""
},
{
"name": "value0",
"nativeSrc": "13918:6:9",
"nodeType": "YulTypedName",
"src": "13918:6:9",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "13929:3:9",
"nodeType": "YulTypedName",
"src": "13929:3:9",
"type": ""
}
],
"src": "13789:397:9"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\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 mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint8(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint8_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function shift_right_1_unsigned(value) -> newValue {\n newValue :=\n\n shr(1, value)\n\n }\n\n function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n power := _power\n base := _base\n for { } gt(exponent, 1) {}\n {\n // overflow check for base * base\n if gt(base, div(max, base)) { panic_error_0x11() }\n if and(exponent, 1)\n {\n // No checks for power := mul(power, base) needed, because the check\n // for base * base above is sufficient, since:\n // |power| <= base (proof by induction) and thus:\n // |power * base| <= base * base <= max <= |min| (for signed)\n // (this is equally true for signed and unsigned exp)\n power := mul(power, base)\n }\n base := mul(base, base)\n exponent := shift_right_1_unsigned(exponent)\n }\n }\n\n function checked_exp_unsigned(base, exponent, max) -> power {\n // This function currently cannot be inlined because of the\n // \"leave\" statements. We have to improve the optimizer.\n\n // Note that 0**0 == 1\n if iszero(exponent) { power := 1 leave }\n if iszero(base) { power := 0 leave }\n\n // Specializations for small bases\n switch base\n // 0 is handled above\n case 1 { power := 1 leave }\n case 2\n {\n if gt(exponent, 255) { panic_error_0x11() }\n power := exp(2, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n if or(\n and(lt(base, 11), lt(exponent, 78)),\n and(lt(base, 307), lt(exponent, 32))\n )\n {\n power := exp(base, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n\n power, base := checked_exp_helper(1, base, exponent, max)\n\n if gt(power, div(max, base)) { panic_error_0x11() }\n power := mul(power, base)\n }\n\n function checked_exp_t_uint256_t_uint8(base, exponent) -> power {\n base := cleanup_t_uint256(base)\n exponent := cleanup_t_uint8(exponent)\n\n power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function abi_encode_tuple_packed_t_bytes32_t_address__to_t_bytes32_t_address__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n}\n",
"id": 9,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801562000010575f80fd5b50604051620025743803806200257483398181016040528101906200003691906200050d565b8260039081620000479190620007db565b508160049081620000599190620007db565b508060055f6101000a81548160ff021916908360ff1602179055506200008533620000bc60201b60201c565b620000b33382600a62000099919062000a3c565b6064620000a7919062000a8c565b620000e660201b60201c565b50505062000c44565b620000e3815f6002811115620000d757620000d662000ad6565b5b6200022560201b60201c565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200014c576040517f6d187b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060025f8282546200015f919062000b03565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620001b3919062000b03565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000219919062000b4e565b60405180910390a35050565b6200023e828260ff166001901b6200024260201b60201c565b5050565b5f816200025584620002bf60201b60201c565b1790506200026a8382620002de60201b60201c565b8273ffffffffffffffffffffffffffffffffffffffff167f34e73c57659d4b6809b53db4feee9b007b892e978114eda420d2991aba15014383604051620002b2919062000b4e565b60405180910390a2505050565b5f80620002d283620002fa60201b60201c565b90508054915050919050565b5f620002f083620002fa60201b60201c565b9050818155505050565b5f7fde9bdca322e1a848f72215bc15cf2c87fe7749145789a9ee281a2a6290af26ab826040516020016200033092919062000c15565b604051602081830303815290604052805190602001209050919050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620003ae8262000366565b810181811067ffffffffffffffff82111715620003d057620003cf62000376565b5b80604052505050565b5f620003e46200034d565b9050620003f28282620003a3565b919050565b5f67ffffffffffffffff82111562000414576200041362000376565b5b6200041f8262000366565b9050602081019050919050565b5f5b838110156200044b5780820151818401526020810190506200042e565b5f8484015250505050565b5f6200046c6200046684620003f7565b620003d9565b9050828152602081018484840111156200048b576200048a62000362565b5b620004988482856200042c565b509392505050565b5f82601f830112620004b757620004b66200035e565b5b8151620004c984826020860162000456565b91505092915050565b5f60ff82169050919050565b620004e981620004d2565b8114620004f4575f80fd5b50565b5f815190506200050781620004de565b92915050565b5f805f6060848603121562000527576200052662000356565b5b5f84015167ffffffffffffffff8111156200054757620005466200035a565b5b6200055586828701620004a0565b935050602084015167ffffffffffffffff8111156200057957620005786200035a565b5b6200058786828701620004a0565b92505060406200059a86828701620004f7565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620005f357607f821691505b602082108103620006095762000608620005ae565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200066d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000630565b62000679868362000630565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620006c3620006bd620006b78462000691565b6200069a565b62000691565b9050919050565b5f819050919050565b620006de83620006a3565b620006f6620006ed82620006ca565b8484546200063c565b825550505050565b5f90565b6200070c620006fe565b62000719818484620006d3565b505050565b5b818110156200074057620007345f8262000702565b6001810190506200071f565b5050565b601f8211156200078f5762000759816200060f565b620007648462000621565b8101602085101562000774578190505b6200078c620007838562000621565b8301826200071e565b50505b505050565b5f82821c905092915050565b5f620007b15f198460080262000794565b1980831691505092915050565b5f620007cb8383620007a0565b9150826002028217905092915050565b620007e682620005a4565b67ffffffffffffffff81111562000802576200080162000376565b5b6200080e8254620005db565b6200081b82828562000744565b5f60209050601f83116001811462000851575f84156200083c578287015190505b620008488582620007be565b865550620008b7565b601f19841662000861866200060f565b5f5b828110156200088a5784890151825560018201915060208501945060208101905062000863565b86831015620008aa5784890151620008a6601f891682620007a0565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200094957808604811115620009215762000920620008bf565b5b6001851615620009315780820291505b80810290506200094185620008ec565b945062000901565b94509492505050565b5f8262000963576001905062000a35565b8162000972575f905062000a35565b81600181146200098b57600281146200099657620009cc565b600191505062000a35565b60ff841115620009ab57620009aa620008bf565b5b8360020a915084821115620009c557620009c4620008bf565b5b5062000a35565b5060208310610133831016604e8410600b841016171562000a065782820a90508381111562000a0057620009ff620008bf565b5b62000a35565b62000a158484846001620008f8565b9250905081840481111562000a2f5762000a2e620008bf565b5b81810290505b9392505050565b5f62000a488262000691565b915062000a5583620004d2565b925062000a847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000952565b905092915050565b5f62000a988262000691565b915062000aa58362000691565b925082820262000ab58162000691565b9150828204841483151762000acf5762000ace620008bf565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f62000b0f8262000691565b915062000b1c8362000691565b925082820190508082111562000b375762000b36620008bf565b5b92915050565b62000b488162000691565b82525050565b5f60208201905062000b635f83018462000b3d565b92915050565b5f819050919050565b5f819050919050565b62000b9062000b8a8262000b69565b62000b72565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000bc18262000b96565b9050919050565b5f8160601b9050919050565b5f62000be08262000bc8565b9050919050565b5f62000bf38262000bd4565b9050919050565b62000c0f62000c098262000bb5565b62000be7565b82525050565b5f62000c22828562000b7b565b60208201915062000c34828462000bfa565b6014820191508190509392505050565b6119228062000c525f395ff3fe608060405234801561000f575f80fd5b5060043610610114575f3560e01c806395d89b41116100a0578063a9059cbb1161006f578063a9059cbb14610304578063aa271e1a14610334578063b5ef694d14610364578063cf86a95a14610380578063dd62ed3e1461039c57610114565b806395d89b411461027e5780639c1766771461029c5780639dc29fac146102b8578063a457c2d7146102d457610114565b8063313ce567116100e7578063313ce567146101b457806339509351146101d257806340c10f191461020257806370a082311461021e57806395a8c58d1461024e57610114565b806306fdde0314610118578063095ea7b31461013657806318160ddd1461016657806323b872dd14610184575b5f80fd5b6101206103cc565b60405161012d91906113c9565b60405180910390f35b610150600480360381019061014b919061147a565b610458565b60405161015d91906114d2565b60405180910390f35b61016e61046e565b60405161017b91906114fa565b60405180910390f35b61019e60048036038101906101999190611513565b610474565b6040516101ab91906114d2565b60405180910390f35b6101bc610546565b6040516101c9919061157e565b60405180910390f35b6101ec60048036038101906101e7919061147a565b610558565b6040516101f991906114d2565b60405180910390f35b61021c6004803603810190610217919061147a565b6105f1565b005b61023860048036038101906102339190611597565b610668565b60405161024591906114fa565b60405180910390f35b610268600480360381019061026391906115ec565b61067c565b60405161027591906114d2565b60405180910390f35b610286610697565b60405161029391906113c9565b60405180910390f35b6102b660048036038101906102b19190611597565b610723565b005b6102d260048036038101906102cd919061147a565b610743565b005b6102ee60048036038101906102e9919061147a565b6107ba565b6040516102fb91906114d2565b60405180910390f35b61031e6004803603810190610319919061147a565b610853565b60405161032b91906114d2565b60405180910390f35b61034e60048036038101906103499190611597565b610869565b60405161035b91906114d2565b60405180910390f35b61037e60048036038101906103799190611597565b61088d565b005b61039a60048036038101906103959190611597565b610916565b005b6103b660048036038101906103b1919061162a565b61099f565b6040516103c391906114fa565b60405180910390f35b600380546103d990611695565b80601f016020809104026020016040519081016040528092919081815260200182805461040590611695565b80156104505780601f1061042757610100808354040283529160200191610450565b820191905f5260205f20905b81548152906001019060200180831161043357829003601f168201915b505050505081565b5f6104643384846109bf565b6001905092915050565b60025481565b5f8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461052f5761052e8533858461052991906116f2565b6109bf565b5b61053a858585610b42565b60019150509392505050565b60055f9054906101000a900460ff1681565b5f6105e733848460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105e29190611725565b6109bf565b6001905092915050565b5f600281111561060457610603611758565b5b61061661061033610cec565b82610d03565b6106595733816040517fbb6c1639000000000000000000000000000000000000000000000000000000008152600401610650929190611794565b60405180910390fd5b6106638383610d19565b505050565b5f602052805f5260405f205f915090505481565b5f61068f61068984610cec565b83610d03565b905092915050565b600480546106a490611695565b80601f01602080910402602001604051908101604052809291908181526020018280546106d090611695565b801561071b5780601f106106f25761010080835404028352916020019161071b565b820191905f5260205f20905b8154815290600101906020018083116106fe57829003601f168201915b505050505081565b61074081335f600281111561073b5761073a611758565b5b610e51565b50565b5f600281111561075657610755611758565b5b61076861076233610cec565b82610d03565b6107ab5733816040517fbb6c16390000000000000000000000000000000000000000000000000000000081526004016107a2929190611794565b60405180910390fd5b6107b58383610e68565b505050565b5f61084933848460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461084491906116f2565b6109bf565b6001905092915050565b5f61085f338484610b42565b6001905092915050565b5f610886825f600281111561088157610880611758565b5b61067c565b9050919050565b5f60028111156108a05761089f611758565b5b6108b26108ac33610cec565b82610d03565b6108f55733816040517fbb6c16390000000000000000000000000000000000000000000000000000000081526004016108ec929190611794565b60405180910390fd5b61091233835f600281111561090d5761090c611758565b5b610fa0565b5050565b5f600281111561092957610928611758565b5b61093b61093533610cec565b82610d03565b61097e5733816040517fbb6c1639000000000000000000000000000000000000000000000000000000008152600401610975929190611794565b60405180910390fd5b61099b33835f600281111561099657610995611758565b5b610fb7565b5050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610a2457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610a5b576040517f6d187b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b3591906114fa565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610ba757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610bde576040517f6d187b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c2991906116f2565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c7b9190611725565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610cdf91906114fa565b60405180910390a3505050565b5f80610cf783610fce565b90508054915050919050565b5f808260ff166001901b84161415905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d7e576040517f6d187b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060025f828254610d8f9190611725565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610de19190611725565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e4591906114fa565b60405180910390a35050565b610e6383838360ff166001901b61101f565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ecd576040517f6d187b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f1891906116f2565b925050819055508060025f828254610f3091906116f2565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f9491906114fa565b60405180910390a35050565b610fb283838360ff166001901b61108b565b505050565b610fc983838360ff166001901b611155565b505050565b5f7fde9bdca322e1a848f72215bc15cf2c87fe7749145789a9ee281a2a6290af26ab82604051602001611002929190611829565b604051602081830303815290604052805190602001209050919050565b8061102a84846111c3565b14611070578282826040517f6004fe4000000000000000000000000000000000000000000000000000000000815260040161106793929190611854565b60405180910390fd5b61107b83835f6111dc565b611086838383611155565b505050565b61109d61109784610cec565b826111f2565b6110e05782816040517f7fa6fbb40000000000000000000000000000000000000000000000000000000081526004016110d7929190611889565b60405180910390fd5b6110eb8383836111dc565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167ff7158d1591c2cf17c0e6b9459d86365c47fe0969c79f40ef49e0c437d8f399148360405161114891906114fa565b60405180910390a3505050565b61116761116184610cec565b826111f2565b6111aa5782816040517f7fa6fbb40000000000000000000000000000000000000000000000000000000081526004016111a1929190611889565b60405180910390fd5b6111b48382611200565b6111be828261126c565b505050565b5f806111cf84846112d7565b9050805491505092915050565b5f6111e784846112d7565b905081815550505050565b5f8182841614905092915050565b5f811961120c84610cec565b169050611219838261132b565b8273ffffffffffffffffffffffffffffffffffffffff167fccf920c8facee98a9c2a6c6124f2857b87b17e9f3a819bfcc6945196ee77366b8360405161125f91906114fa565b60405180910390a2505050565b5f8161127784610cec565b179050611284838261132b565b8273ffffffffffffffffffffffffffffffffffffffff167f34e73c57659d4b6809b53db4feee9b007b892e978114eda420d2991aba150143836040516112ca91906114fa565b60405180910390a2505050565b5f7ff96e07b2f4fbb81c31567d2b261589af429e98f0958d53f7e6ad5d63aea0ab7c838360405160200161130d939291906118b0565b60405160208183030381529060405280519060200120905092915050565b5f61133583610fce565b9050818155505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561137657808201518184015260208101905061135b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61139b8261133f565b6113a58185611349565b93506113b5818560208601611359565b6113be81611381565b840191505092915050565b5f6020820190508181035f8301526113e18184611391565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611416826113ed565b9050919050565b6114268161140c565b8114611430575f80fd5b50565b5f813590506114418161141d565b92915050565b5f819050919050565b61145981611447565b8114611463575f80fd5b50565b5f8135905061147481611450565b92915050565b5f80604083850312156114905761148f6113e9565b5b5f61149d85828601611433565b92505060206114ae85828601611466565b9150509250929050565b5f8115159050919050565b6114cc816114b8565b82525050565b5f6020820190506114e55f8301846114c3565b92915050565b6114f481611447565b82525050565b5f60208201905061150d5f8301846114eb565b92915050565b5f805f6060848603121561152a576115296113e9565b5b5f61153786828701611433565b935050602061154886828701611433565b925050604061155986828701611466565b9150509250925092565b5f60ff82169050919050565b61157881611563565b82525050565b5f6020820190506115915f83018461156f565b92915050565b5f602082840312156115ac576115ab6113e9565b5b5f6115b984828501611433565b91505092915050565b6115cb81611563565b81146115d5575f80fd5b50565b5f813590506115e6816115c2565b92915050565b5f8060408385031215611602576116016113e9565b5b5f61160f85828601611433565b9250506020611620858286016115d8565b9150509250929050565b5f80604083850312156116405761163f6113e9565b5b5f61164d85828601611433565b925050602061165e85828601611433565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806116ac57607f821691505b6020821081036116bf576116be611668565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6116fc82611447565b915061170783611447565b925082820390508181111561171f5761171e6116c5565b5b92915050565b5f61172f82611447565b915061173a83611447565b9250828201905080821115611752576117516116c5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61178e8161140c565b82525050565b5f6040820190506117a75f830185611785565b6117b4602083018461156f565b9392505050565b5f819050919050565b5f819050919050565b6117de6117d9826117bb565b6117c4565b82525050565b5f8160601b9050919050565b5f6117fa826117e4565b9050919050565b5f61180b826117f0565b9050919050565b61182361181e8261140c565b611801565b82525050565b5f61183482856117cd565b6020820191506118448284611812565b6014820191508190509392505050565b5f6060820190506118675f830186611785565b6118746020830185611785565b61188160408301846114eb565b949350505050565b5f60408201905061189c5f830185611785565b6118a960208301846114eb565b9392505050565b5f6118bb82866117cd565b6020820191506118cb8285611812565b6014820191506118db8284611812565b60148201915081905094935050505056fea2646970667358221220365374f00a7c2912f4b61a705cb76d139db6fe5d3a5ae12fa55b364a2e37a1e164736f6c63430008160033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x10 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2574 CODESIZE SUB DUP1 PUSH3 0x2574 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x36 SWAP2 SWAP1 PUSH3 0x50D JUMP JUMPDEST DUP3 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x47 SWAP2 SWAP1 PUSH3 0x7DB JUMP JUMPDEST POP DUP2 PUSH1 0x4 SWAP1 DUP2 PUSH3 0x59 SWAP2 SWAP1 PUSH3 0x7DB JUMP JUMPDEST POP DUP1 PUSH1 0x5 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP PUSH3 0x85 CALLER PUSH3 0xBC PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0xB3 CALLER DUP3 PUSH1 0xA PUSH3 0x99 SWAP2 SWAP1 PUSH3 0xA3C JUMP JUMPDEST PUSH1 0x64 PUSH3 0xA7 SWAP2 SWAP1 PUSH3 0xA8C JUMP JUMPDEST PUSH3 0xE6 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP POP PUSH3 0xC44 JUMP JUMPDEST PUSH3 0xE3 DUP2 PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0xD7 JUMPI PUSH3 0xD6 PUSH3 0xAD6 JUMP JUMPDEST JUMPDEST PUSH3 0x225 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x14C JUMPI PUSH1 0x40 MLOAD PUSH32 0x6D187B2800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH3 0x15F SWAP2 SWAP1 PUSH3 0xB03 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH3 0x1B3 SWAP2 SWAP1 PUSH3 0xB03 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH3 0x219 SWAP2 SWAP1 PUSH3 0xB4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH3 0x23E DUP3 DUP3 PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL PUSH3 0x242 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH3 0x255 DUP5 PUSH3 0x2BF PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST OR SWAP1 POP PUSH3 0x26A DUP4 DUP3 PUSH3 0x2DE PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x34E73C57659D4B6809B53DB4FEEE9B007B892E978114EDA420D2991ABA150143 DUP4 PUSH1 0x40 MLOAD PUSH3 0x2B2 SWAP2 SWAP1 PUSH3 0xB4E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH3 0x2D2 DUP4 PUSH3 0x2FA PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2F0 DUP4 PUSH3 0x2FA PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xDE9BDCA322E1A848F72215BC15CF2C87FE7749145789A9EE281A2A6290AF26AB DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x330 SWAP3 SWAP2 SWAP1 PUSH3 0xC15 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH3 0x3AE DUP3 PUSH3 0x366 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x3D0 JUMPI PUSH3 0x3CF PUSH3 0x376 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x3E4 PUSH3 0x34D JUMP JUMPDEST SWAP1 POP PUSH3 0x3F2 DUP3 DUP3 PUSH3 0x3A3 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x414 JUMPI PUSH3 0x413 PUSH3 0x376 JUMP JUMPDEST JUMPDEST PUSH3 0x41F DUP3 PUSH3 0x366 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x44B JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x42E JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x46C PUSH3 0x466 DUP5 PUSH3 0x3F7 JUMP JUMPDEST PUSH3 0x3D9 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x48B JUMPI PUSH3 0x48A PUSH3 0x362 JUMP JUMPDEST JUMPDEST PUSH3 0x498 DUP5 DUP3 DUP6 PUSH3 0x42C JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x4B7 JUMPI PUSH3 0x4B6 PUSH3 0x35E JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x4C9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x456 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x4E9 DUP2 PUSH3 0x4D2 JUMP JUMPDEST DUP2 EQ PUSH3 0x4F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH3 0x507 DUP2 PUSH3 0x4DE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x527 JUMPI PUSH3 0x526 PUSH3 0x356 JUMP JUMPDEST JUMPDEST PUSH0 DUP5 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x547 JUMPI PUSH3 0x546 PUSH3 0x35A JUMP JUMPDEST JUMPDEST PUSH3 0x555 DUP7 DUP3 DUP8 ADD PUSH3 0x4A0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x579 JUMPI PUSH3 0x578 PUSH3 0x35A JUMP JUMPDEST JUMPDEST PUSH3 0x587 DUP7 DUP3 DUP8 ADD PUSH3 0x4A0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH3 0x59A DUP7 DUP3 DUP8 ADD PUSH3 0x4F7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x5F3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x609 JUMPI PUSH3 0x608 PUSH3 0x5AE JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH3 0x66D PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x630 JUMP JUMPDEST PUSH3 0x679 DUP7 DUP4 PUSH3 0x630 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x6C3 PUSH3 0x6BD PUSH3 0x6B7 DUP5 PUSH3 0x691 JUMP JUMPDEST PUSH3 0x69A JUMP JUMPDEST PUSH3 0x691 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x6DE DUP4 PUSH3 0x6A3 JUMP JUMPDEST PUSH3 0x6F6 PUSH3 0x6ED DUP3 PUSH3 0x6CA JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x63C JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH3 0x70C PUSH3 0x6FE JUMP JUMPDEST PUSH3 0x719 DUP2 DUP5 DUP5 PUSH3 0x6D3 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x740 JUMPI PUSH3 0x734 PUSH0 DUP3 PUSH3 0x702 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x71F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x78F JUMPI PUSH3 0x759 DUP2 PUSH3 0x60F JUMP JUMPDEST PUSH3 0x764 DUP5 PUSH3 0x621 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x774 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x78C PUSH3 0x783 DUP6 PUSH3 0x621 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x71E JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x7B1 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x794 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x7CB DUP4 DUP4 PUSH3 0x7A0 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7E6 DUP3 PUSH3 0x5A4 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x802 JUMPI PUSH3 0x801 PUSH3 0x376 JUMP JUMPDEST JUMPDEST PUSH3 0x80E DUP3 SLOAD PUSH3 0x5DB JUMP JUMPDEST PUSH3 0x81B DUP3 DUP3 DUP6 PUSH3 0x744 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x851 JUMPI PUSH0 DUP5 ISZERO PUSH3 0x83C JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x848 DUP6 DUP3 PUSH3 0x7BE JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x8B7 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x861 DUP7 PUSH3 0x60F JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x88A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x863 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x8AA JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x8A6 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x7A0 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x1 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP3 SWAP2 POP DUP4 SWAP1 POP JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH3 0x949 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH3 0x921 JUMPI PUSH3 0x920 PUSH3 0x8BF JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH3 0x931 JUMPI DUP1 DUP3 MUL SWAP2 POP JUMPDEST DUP1 DUP2 MUL SWAP1 POP PUSH3 0x941 DUP6 PUSH3 0x8EC JUMP JUMPDEST SWAP5 POP PUSH3 0x901 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH3 0x963 JUMPI PUSH1 0x1 SWAP1 POP PUSH3 0xA35 JUMP JUMPDEST DUP2 PUSH3 0x972 JUMPI PUSH0 SWAP1 POP PUSH3 0xA35 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH3 0x98B JUMPI PUSH1 0x2 DUP2 EQ PUSH3 0x996 JUMPI PUSH3 0x9CC JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH3 0xA35 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH3 0x9AB JUMPI PUSH3 0x9AA PUSH3 0x8BF JUMP JUMPDEST JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH3 0x9C5 JUMPI PUSH3 0x9C4 PUSH3 0x8BF JUMP JUMPDEST JUMPDEST POP PUSH3 0xA35 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH3 0xA06 JUMPI DUP3 DUP3 EXP SWAP1 POP DUP4 DUP2 GT ISZERO PUSH3 0xA00 JUMPI PUSH3 0x9FF PUSH3 0x8BF JUMP JUMPDEST JUMPDEST PUSH3 0xA35 JUMP JUMPDEST PUSH3 0xA15 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH3 0x8F8 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH3 0xA2F JUMPI PUSH3 0xA2E PUSH3 0x8BF JUMP JUMPDEST JUMPDEST DUP2 DUP2 MUL SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0xA48 DUP3 PUSH3 0x691 JUMP JUMPDEST SWAP2 POP PUSH3 0xA55 DUP4 PUSH3 0x4D2 JUMP JUMPDEST SWAP3 POP PUSH3 0xA84 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP5 PUSH3 0x952 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0xA98 DUP3 PUSH3 0x691 JUMP JUMPDEST SWAP2 POP PUSH3 0xAA5 DUP4 PUSH3 0x691 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH3 0xAB5 DUP2 PUSH3 0x691 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH3 0xACF JUMPI PUSH3 0xACE PUSH3 0x8BF JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH3 0xB0F DUP3 PUSH3 0x691 JUMP JUMPDEST SWAP2 POP PUSH3 0xB1C DUP4 PUSH3 0x691 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH3 0xB37 JUMPI PUSH3 0xB36 PUSH3 0x8BF JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xB48 DUP2 PUSH3 0x691 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0xB63 PUSH0 DUP4 ADD DUP5 PUSH3 0xB3D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xB90 PUSH3 0xB8A DUP3 PUSH3 0xB69 JUMP JUMPDEST PUSH3 0xB72 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0xBC1 DUP3 PUSH3 0xB96 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0xBE0 DUP3 PUSH3 0xBC8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0xBF3 DUP3 PUSH3 0xBD4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xC0F PUSH3 0xC09 DUP3 PUSH3 0xBB5 JUMP JUMPDEST PUSH3 0xBE7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH3 0xC22 DUP3 DUP6 PUSH3 0xB7B JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH3 0xC34 DUP3 DUP5 PUSH3 0xBFA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1922 DUP1 PUSH3 0xC52 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x114 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x95D89B41 GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xA9059CBB GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x304 JUMPI DUP1 PUSH4 0xAA271E1A EQ PUSH2 0x334 JUMPI DUP1 PUSH4 0xB5EF694D EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0xCF86A95A EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x39C JUMPI PUSH2 0x114 JUMP JUMPDEST DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x27E JUMPI DUP1 PUSH4 0x9C176677 EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x2D4 JUMPI PUSH2 0x114 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xE7 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0x95A8C58D EQ PUSH2 0x24E JUMPI PUSH2 0x114 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x184 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x120 PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12D SWAP2 SWAP1 PUSH2 0x13C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x150 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14B SWAP2 SWAP1 PUSH2 0x147A JUMP JUMPDEST PUSH2 0x458 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15D SWAP2 SWAP1 PUSH2 0x14D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16E PUSH2 0x46E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17B SWAP2 SWAP1 PUSH2 0x14FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x199 SWAP2 SWAP1 PUSH2 0x1513 JUMP JUMPDEST PUSH2 0x474 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AB SWAP2 SWAP1 PUSH2 0x14D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BC PUSH2 0x546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C9 SWAP2 SWAP1 PUSH2 0x157E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1EC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x147A JUMP JUMPDEST PUSH2 0x558 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0x14D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x217 SWAP2 SWAP1 PUSH2 0x147A JUMP JUMPDEST PUSH2 0x5F1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x238 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x233 SWAP2 SWAP1 PUSH2 0x1597 JUMP JUMPDEST PUSH2 0x668 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x245 SWAP2 SWAP1 PUSH2 0x14FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x268 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x15EC JUMP JUMPDEST PUSH2 0x67C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x275 SWAP2 SWAP1 PUSH2 0x14D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x286 PUSH2 0x697 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x13C9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1597 JUMP JUMPDEST PUSH2 0x723 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2D2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CD SWAP2 SWAP1 PUSH2 0x147A JUMP JUMPDEST PUSH2 0x743 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2EE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E9 SWAP2 SWAP1 PUSH2 0x147A JUMP JUMPDEST PUSH2 0x7BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FB SWAP2 SWAP1 PUSH2 0x14D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x31E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x147A JUMP JUMPDEST PUSH2 0x853 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32B SWAP2 SWAP1 PUSH2 0x14D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x34E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x349 SWAP2 SWAP1 PUSH2 0x1597 JUMP JUMPDEST PUSH2 0x869 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35B SWAP2 SWAP1 PUSH2 0x14D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x37E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x379 SWAP2 SWAP1 PUSH2 0x1597 JUMP JUMPDEST PUSH2 0x88D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x39A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x395 SWAP2 SWAP1 PUSH2 0x1597 JUMP JUMPDEST PUSH2 0x916 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x162A JUMP JUMPDEST PUSH2 0x99F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C3 SWAP2 SWAP1 PUSH2 0x14FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x3D9 SWAP1 PUSH2 0x1695 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 0x405 SWAP1 PUSH2 0x1695 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x450 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x427 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x450 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x433 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x464 CALLER DUP5 DUP5 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x52F JUMPI PUSH2 0x52E DUP6 CALLER DUP6 DUP5 PUSH2 0x529 SWAP2 SWAP1 PUSH2 0x16F2 JUMP JUMPDEST PUSH2 0x9BF JUMP JUMPDEST JUMPDEST PUSH2 0x53A DUP6 DUP6 DUP6 PUSH2 0xB42 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x5 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x5E7 CALLER DUP5 DUP5 PUSH1 0x1 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x5E2 SWAP2 SWAP1 PUSH2 0x1725 JUMP JUMPDEST PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x604 JUMPI PUSH2 0x603 PUSH2 0x1758 JUMP JUMPDEST JUMPDEST PUSH2 0x616 PUSH2 0x610 CALLER PUSH2 0xCEC JUMP JUMPDEST DUP3 PUSH2 0xD03 JUMP JUMPDEST PUSH2 0x659 JUMPI CALLER DUP2 PUSH1 0x40 MLOAD PUSH32 0xBB6C163900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x650 SWAP3 SWAP2 SWAP1 PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x663 DUP4 DUP4 PUSH2 0xD19 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x68F PUSH2 0x689 DUP5 PUSH2 0xCEC JUMP JUMPDEST DUP4 PUSH2 0xD03 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH2 0x6A4 SWAP1 PUSH2 0x1695 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 0x6D0 SWAP1 PUSH2 0x1695 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x71B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6F2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x71B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6FE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0x740 DUP2 CALLER PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x73B JUMPI PUSH2 0x73A PUSH2 0x1758 JUMP JUMPDEST JUMPDEST PUSH2 0xE51 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x756 JUMPI PUSH2 0x755 PUSH2 0x1758 JUMP JUMPDEST JUMPDEST PUSH2 0x768 PUSH2 0x762 CALLER PUSH2 0xCEC JUMP JUMPDEST DUP3 PUSH2 0xD03 JUMP JUMPDEST PUSH2 0x7AB JUMPI CALLER DUP2 PUSH1 0x40 MLOAD PUSH32 0xBB6C163900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7A2 SWAP3 SWAP2 SWAP1 PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7B5 DUP4 DUP4 PUSH2 0xE68 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x849 CALLER DUP5 DUP5 PUSH1 0x1 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x844 SWAP2 SWAP1 PUSH2 0x16F2 JUMP JUMPDEST PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x85F CALLER DUP5 DUP5 PUSH2 0xB42 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x886 DUP3 PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x881 JUMPI PUSH2 0x880 PUSH2 0x1758 JUMP JUMPDEST JUMPDEST PUSH2 0x67C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x8A0 JUMPI PUSH2 0x89F PUSH2 0x1758 JUMP JUMPDEST JUMPDEST PUSH2 0x8B2 PUSH2 0x8AC CALLER PUSH2 0xCEC JUMP JUMPDEST DUP3 PUSH2 0xD03 JUMP JUMPDEST PUSH2 0x8F5 JUMPI CALLER DUP2 PUSH1 0x40 MLOAD PUSH32 0xBB6C163900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8EC SWAP3 SWAP2 SWAP1 PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x912 CALLER DUP4 PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x90D JUMPI PUSH2 0x90C PUSH2 0x1758 JUMP JUMPDEST JUMPDEST PUSH2 0xFA0 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x929 JUMPI PUSH2 0x928 PUSH2 0x1758 JUMP JUMPDEST JUMPDEST PUSH2 0x93B PUSH2 0x935 CALLER PUSH2 0xCEC JUMP JUMPDEST DUP3 PUSH2 0xD03 JUMP JUMPDEST PUSH2 0x97E JUMPI CALLER DUP2 PUSH1 0x40 MLOAD PUSH32 0xBB6C163900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x975 SWAP3 SWAP2 SWAP1 PUSH2 0x1794 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x99B CALLER DUP4 PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x996 JUMPI PUSH2 0x995 PUSH2 0x1758 JUMP JUMPDEST JUMPDEST PUSH2 0xFB7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP2 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP2 POP POP SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xA24 JUMPI POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0xA5B JUMPI PUSH1 0x40 MLOAD PUSH32 0x6D187B2800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP4 PUSH1 0x40 MLOAD PUSH2 0xB35 SWAP2 SWAP1 PUSH2 0x14FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xBA7 JUMPI POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST ISZERO PUSH2 0xBDE JUMPI PUSH1 0x40 MLOAD PUSH32 0x6D187B2800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xC29 SWAP2 SWAP1 PUSH2 0x16F2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xC7B SWAP2 SWAP1 PUSH2 0x1725 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xCDF SWAP2 SWAP1 PUSH2 0x14FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0xCF7 DUP4 PUSH2 0xFCE JUMP JUMPDEST SWAP1 POP DUP1 SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL DUP5 AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xD7E JUMPI PUSH1 0x40 MLOAD PUSH32 0x6D187B2800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xD8F SWAP2 SWAP1 PUSH2 0x1725 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xDE1 SWAP2 SWAP1 PUSH2 0x1725 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xE45 SWAP2 SWAP1 PUSH2 0x14FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xE63 DUP4 DUP4 DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL PUSH2 0x101F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xECD JUMPI PUSH1 0x40 MLOAD PUSH32 0x6D187B2800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xF18 SWAP2 SWAP1 PUSH2 0x16F2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x2 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xF30 SWAP2 SWAP1 PUSH2 0x16F2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xF94 SWAP2 SWAP1 PUSH2 0x14FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xFB2 DUP4 DUP4 DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL PUSH2 0x108B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xFC9 DUP4 DUP4 DUP4 PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL PUSH2 0x1155 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xDE9BDCA322E1A848F72215BC15CF2C87FE7749145789A9EE281A2A6290AF26AB DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1002 SWAP3 SWAP2 SWAP1 PUSH2 0x1829 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH2 0x102A DUP5 DUP5 PUSH2 0x11C3 JUMP JUMPDEST EQ PUSH2 0x1070 JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0x6004FE4000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1067 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1854 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x107B DUP4 DUP4 PUSH0 PUSH2 0x11DC JUMP JUMPDEST PUSH2 0x1086 DUP4 DUP4 DUP4 PUSH2 0x1155 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x109D PUSH2 0x1097 DUP5 PUSH2 0xCEC JUMP JUMPDEST DUP3 PUSH2 0x11F2 JUMP JUMPDEST PUSH2 0x10E0 JUMPI DUP3 DUP2 PUSH1 0x40 MLOAD PUSH32 0x7FA6FBB400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10D7 SWAP3 SWAP2 SWAP1 PUSH2 0x1889 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x10EB DUP4 DUP4 DUP4 PUSH2 0x11DC JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF7158D1591C2CF17C0E6B9459D86365C47FE0969C79F40EF49E0C437D8F39914 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1148 SWAP2 SWAP1 PUSH2 0x14FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1167 PUSH2 0x1161 DUP5 PUSH2 0xCEC JUMP JUMPDEST DUP3 PUSH2 0x11F2 JUMP JUMPDEST PUSH2 0x11AA JUMPI DUP3 DUP2 PUSH1 0x40 MLOAD PUSH32 0x7FA6FBB400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11A1 SWAP3 SWAP2 SWAP1 PUSH2 0x1889 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x11B4 DUP4 DUP3 PUSH2 0x1200 JUMP JUMPDEST PUSH2 0x11BE DUP3 DUP3 PUSH2 0x126C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x11CF DUP5 DUP5 PUSH2 0x12D7 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x11E7 DUP5 DUP5 PUSH2 0x12D7 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 DUP5 AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 NOT PUSH2 0x120C DUP5 PUSH2 0xCEC JUMP JUMPDEST AND SWAP1 POP PUSH2 0x1219 DUP4 DUP3 PUSH2 0x132B JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xCCF920C8FACEE98A9C2A6C6124F2857B87B17E9F3A819BFCC6945196EE77366B DUP4 PUSH1 0x40 MLOAD PUSH2 0x125F SWAP2 SWAP1 PUSH2 0x14FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x1277 DUP5 PUSH2 0xCEC JUMP JUMPDEST OR SWAP1 POP PUSH2 0x1284 DUP4 DUP3 PUSH2 0x132B JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x34E73C57659D4B6809B53DB4FEEE9B007B892E978114EDA420D2991ABA150143 DUP4 PUSH1 0x40 MLOAD PUSH2 0x12CA SWAP2 SWAP1 PUSH2 0x14FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xF96E07B2F4FBB81C31567D2B261589AF429E98F0958D53F7E6AD5D63AEA0AB7C DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x130D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x18B0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1335 DUP4 PUSH2 0xFCE JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SSTORE POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1376 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x135B JUMP JUMPDEST PUSH0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x139B DUP3 PUSH2 0x133F JUMP JUMPDEST PUSH2 0x13A5 DUP2 DUP6 PUSH2 0x1349 JUMP JUMPDEST SWAP4 POP PUSH2 0x13B5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1359 JUMP JUMPDEST PUSH2 0x13BE DUP2 PUSH2 0x1381 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x13E1 DUP2 DUP5 PUSH2 0x1391 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1416 DUP3 PUSH2 0x13ED JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1426 DUP2 PUSH2 0x140C JUMP JUMPDEST DUP2 EQ PUSH2 0x1430 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1441 DUP2 PUSH2 0x141D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1459 DUP2 PUSH2 0x1447 JUMP JUMPDEST DUP2 EQ PUSH2 0x1463 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1474 DUP2 PUSH2 0x1450 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1490 JUMPI PUSH2 0x148F PUSH2 0x13E9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x149D DUP6 DUP3 DUP7 ADD PUSH2 0x1433 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x14AE DUP6 DUP3 DUP7 ADD PUSH2 0x1466 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x14CC DUP2 PUSH2 0x14B8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14E5 PUSH0 DUP4 ADD DUP5 PUSH2 0x14C3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x14F4 DUP2 PUSH2 0x1447 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x150D PUSH0 DUP4 ADD DUP5 PUSH2 0x14EB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x152A JUMPI PUSH2 0x1529 PUSH2 0x13E9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1537 DUP7 DUP3 DUP8 ADD PUSH2 0x1433 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1548 DUP7 DUP3 DUP8 ADD PUSH2 0x1433 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1559 DUP7 DUP3 DUP8 ADD PUSH2 0x1466 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1578 DUP2 PUSH2 0x1563 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1591 PUSH0 DUP4 ADD DUP5 PUSH2 0x156F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15AC JUMPI PUSH2 0x15AB PUSH2 0x13E9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x15B9 DUP5 DUP3 DUP6 ADD PUSH2 0x1433 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15CB DUP2 PUSH2 0x1563 JUMP JUMPDEST DUP2 EQ PUSH2 0x15D5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x15E6 DUP2 PUSH2 0x15C2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1602 JUMPI PUSH2 0x1601 PUSH2 0x13E9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x160F DUP6 DUP3 DUP7 ADD PUSH2 0x1433 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1620 DUP6 DUP3 DUP7 ADD PUSH2 0x15D8 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1640 JUMPI PUSH2 0x163F PUSH2 0x13E9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x164D DUP6 DUP3 DUP7 ADD PUSH2 0x1433 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x165E DUP6 DUP3 DUP7 ADD PUSH2 0x1433 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x16AC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x16BF JUMPI PUSH2 0x16BE PUSH2 0x1668 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x16FC DUP3 PUSH2 0x1447 JUMP JUMPDEST SWAP2 POP PUSH2 0x1707 DUP4 PUSH2 0x1447 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x171F JUMPI PUSH2 0x171E PUSH2 0x16C5 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x172F DUP3 PUSH2 0x1447 JUMP JUMPDEST SWAP2 POP PUSH2 0x173A DUP4 PUSH2 0x1447 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1752 JUMPI PUSH2 0x1751 PUSH2 0x16C5 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x178E DUP2 PUSH2 0x140C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x17A7 PUSH0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x17B4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x156F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17DE PUSH2 0x17D9 DUP3 PUSH2 0x17BB JUMP JUMPDEST PUSH2 0x17C4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x17FA DUP3 PUSH2 0x17E4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x180B DUP3 PUSH2 0x17F0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1823 PUSH2 0x181E DUP3 PUSH2 0x140C JUMP JUMPDEST PUSH2 0x1801 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1834 DUP3 DUP6 PUSH2 0x17CD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x1844 DUP3 DUP5 PUSH2 0x1812 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1867 PUSH0 DUP4 ADD DUP7 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x1874 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x1881 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x14EB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x189C PUSH0 DUP4 ADD DUP6 PUSH2 0x1785 JUMP JUMPDEST PUSH2 0x18A9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x14EB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x18BB DUP3 DUP7 PUSH2 0x17CD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x18CB DUP3 DUP6 PUSH2 0x1812 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x18DB DUP3 DUP5 PUSH2 0x1812 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATASIZE MSTORE8 PUSH21 0xF00A7C2912F4B61A705CB76D139DB6FE5D3A5AE12F 0xA5 JUMPDEST CALLDATASIZE 0x4A 0x2E CALLDATACOPY LOG1 0xE1 PUSH5 0x736F6C6343 STOP ADDMOD AND STOP CALLER ",
"sourceMap": "206:665:8:-:0;;;366:241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;456:5;449:4;:12;;;;;;:::i;:::-;;480:7;471:6;:16;;;;;;:::i;:::-;;508:9;497:8;;:20;;;;;;;;;;;;;;;;;;527:22;538:10;527;;;:22;;:::i;:::-;560:40;566:10;590:9;584:2;:15;;;;:::i;:::-;578:3;:21;;;;:::i;:::-;560:5;;;:40;;:::i;:::-;366:241;;;206:665;;745:101:6;801:38;810:7;825:12;819:19;;;;;;;;:::i;:::-;;801:8;;;:38;;:::i;:::-;745:101;:::o;5627:254:3:-;5725:1;5706:21;;:7;:21;;;5702:50;;5736:16;;;;;;;;;;;;;;5702:50;5778:6;5763:11;;:21;;;;;;;:::i;:::-;;;;;;;;5816:6;5794:9;:18;5804:7;5794:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;5858:7;5837:37;;5854:1;5837:37;;;5867:6;5837:37;;;;;;:::i;:::-;;;;;;;;5627:254;;:::o;5123:109:2:-;5189:36;5206:7;5220:4;5215:9;;:1;:9;;5189:16;;;:36;;:::i;:::-;5123:109;;:::o;5916:245::-;6000:23;6047:12;6026:18;6036:7;6026:9;;;:18;;:::i;:::-;:33;6000:59;;6070:35;6080:7;6089:15;6070:9;;;:35;;:::i;:::-;6132:7;6121:33;;;6141:12;6121:33;;;;;;:::i;:::-;;;;;;;;5990:171;5916:245;;:::o;2781:198::-;2840:20;2872:11;2886:18;2896:7;2886:9;;;:18;;:::i;:::-;2872:32;;2959:3;2953:10;2937:26;;2923:50;2781:198;;;:::o;3165:182::-;3241:11;3255:18;3265:7;3255:9;;;:18;;:::i;:::-;3241:32;;3318:12;3313:3;3306:25;3292:49;3165:182;;:::o;2414:154::-;2481:11;341:18;2552:7;2521:39;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2511:50;;;;;;2504:57;;2414:154;;;:::o;7:75:9:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:246::-;1691:1;1701:113;1715:6;1712:1;1709:13;1701:113;;;1800:1;1795:3;1791:11;1785:18;1781:1;1776:3;1772:11;1765:39;1737:2;1734:1;1730:10;1725:15;;1701:113;;;1848:1;1839:6;1834:3;1830:16;1823:27;1672:184;1610:246;;;:::o;1862:434::-;1951:5;1976:66;1992:49;2034:6;1992:49;:::i;:::-;1976:66;:::i;:::-;1967:75;;2065:6;2058:5;2051:21;2103:4;2096:5;2092:16;2141:3;2132:6;2127:3;2123:16;2120:25;2117:112;;;2148:79;;:::i;:::-;2117:112;2238:52;2283:6;2278:3;2273;2238:52;:::i;:::-;1957:339;1862:434;;;;;:::o;2316:355::-;2383:5;2432:3;2425:4;2417:6;2413:17;2409:27;2399:122;;2440:79;;:::i;:::-;2399:122;2550:6;2544:13;2575:90;2661:3;2653:6;2646:4;2638:6;2634:17;2575:90;:::i;:::-;2566:99;;2389:282;2316:355;;;;:::o;2677:86::-;2712:7;2752:4;2745:5;2741:16;2730:27;;2677:86;;;:::o;2769:118::-;2840:22;2856:5;2840:22;:::i;:::-;2833:5;2830:33;2820:61;;2877:1;2874;2867:12;2820:61;2769:118;:::o;2893:139::-;2948:5;2979:6;2973:13;2964:22;;2995:31;3020:5;2995:31;:::i;:::-;2893:139;;;;:::o;3038:1005::-;3144:6;3152;3160;3209:2;3197:9;3188:7;3184:23;3180:32;3177:119;;;3215:79;;:::i;:::-;3177:119;3356:1;3345:9;3341:17;3335:24;3386:18;3378:6;3375:30;3372:117;;;3408:79;;:::i;:::-;3372:117;3513:74;3579:7;3570:6;3559:9;3555:22;3513:74;:::i;:::-;3503:84;;3306:291;3657:2;3646:9;3642:18;3636:25;3688:18;3680:6;3677:30;3674:117;;;3710:79;;:::i;:::-;3674:117;3815:74;3881:7;3872:6;3861:9;3857:22;3815:74;:::i;:::-;3805:84;;3607:292;3938:2;3964:62;4018:7;4009:6;3998:9;3994:22;3964:62;:::i;:::-;3954:72;;3909:127;3038:1005;;;;;:::o;4049:99::-;4101:6;4135:5;4129:12;4119:22;;4049:99;;;:::o;4154:180::-;4202:77;4199:1;4192:88;4299:4;4296:1;4289:15;4323:4;4320:1;4313:15;4340:320;4384:6;4421:1;4415:4;4411:12;4401:22;;4468:1;4462:4;4458:12;4489:18;4479:81;;4545:4;4537:6;4533:17;4523:27;;4479:81;4607:2;4599:6;4596:14;4576:18;4573:38;4570:84;;4626:18;;:::i;:::-;4570:84;4391:269;4340:320;;;:::o;4666:141::-;4715:4;4738:3;4730:11;;4761:3;4758:1;4751:14;4795:4;4792:1;4782:18;4774:26;;4666:141;;;:::o;4813:93::-;4850:6;4897:2;4892;4885:5;4881:14;4877:23;4867:33;;4813:93;;;:::o;4912:107::-;4956:8;5006:5;5000:4;4996:16;4975:37;;4912:107;;;;:::o;5025:393::-;5094:6;5144:1;5132:10;5128:18;5167:97;5197:66;5186:9;5167:97;:::i;:::-;5285:39;5315:8;5304:9;5285:39;:::i;:::-;5273:51;;5357:4;5353:9;5346:5;5342:21;5333:30;;5406:4;5396:8;5392:19;5385:5;5382:30;5372:40;;5101:317;;5025:393;;;;;:::o;5424:77::-;5461:7;5490:5;5479:16;;5424:77;;;:::o;5507:60::-;5535:3;5556:5;5549:12;;5507:60;;;:::o;5573:142::-;5623:9;5656:53;5674:34;5683:24;5701:5;5683:24;:::i;:::-;5674:34;:::i;:::-;5656:53;:::i;:::-;5643:66;;5573:142;;;:::o;5721:75::-;5764:3;5785:5;5778:12;;5721:75;;;:::o;5802:269::-;5912:39;5943:7;5912:39;:::i;:::-;5973:91;6022:41;6046:16;6022:41;:::i;:::-;6014:6;6007:4;6001:11;5973:91;:::i;:::-;5967:4;5960:105;5878:193;5802:269;;;:::o;6077:73::-;6122:3;6077:73;:::o;6156:189::-;6233:32;;:::i;:::-;6274:65;6332:6;6324;6318:4;6274:65;:::i;:::-;6209:136;6156:189;;:::o;6351:186::-;6411:120;6428:3;6421:5;6418:14;6411:120;;;6482:39;6519:1;6512:5;6482:39;:::i;:::-;6455:1;6448:5;6444:13;6435:22;;6411:120;;;6351:186;;:::o;6543:543::-;6644:2;6639:3;6636:11;6633:446;;;6678:38;6710:5;6678:38;:::i;:::-;6762:29;6780:10;6762:29;:::i;:::-;6752:8;6748:44;6945:2;6933:10;6930:18;6927:49;;;6966:8;6951:23;;6927:49;6989:80;7045:22;7063:3;7045:22;:::i;:::-;7035:8;7031:37;7018:11;6989:80;:::i;:::-;6648:431;;6633:446;6543:543;;;:::o;7092:117::-;7146:8;7196:5;7190:4;7186:16;7165:37;;7092:117;;;;:::o;7215:169::-;7259:6;7292:51;7340:1;7336:6;7328:5;7325:1;7321:13;7292:51;:::i;:::-;7288:56;7373:4;7367;7363:15;7353:25;;7266:118;7215:169;;;;:::o;7389:295::-;7465:4;7611:29;7636:3;7630:4;7611:29;:::i;:::-;7603:37;;7673:3;7670:1;7666:11;7660:4;7657:21;7649:29;;7389:295;;;;:::o;7689:1395::-;7806:37;7839:3;7806:37;:::i;:::-;7908:18;7900:6;7897:30;7894:56;;;7930:18;;:::i;:::-;7894:56;7974:38;8006:4;8000:11;7974:38;:::i;:::-;8059:67;8119:6;8111;8105:4;8059:67;:::i;:::-;8153:1;8177:4;8164:17;;8209:2;8201:6;8198:14;8226:1;8221:618;;;;8883:1;8900:6;8897:77;;;8949:9;8944:3;8940:19;8934:26;8925:35;;8897:77;9000:67;9060:6;9053:5;9000:67;:::i;:::-;8994:4;8987:81;8856:222;8191:887;;8221:618;8273:4;8269:9;8261:6;8257:22;8307:37;8339:4;8307:37;:::i;:::-;8366:1;8380:208;8394:7;8391:1;8388:14;8380:208;;;8473:9;8468:3;8464:19;8458:26;8450:6;8443:42;8524:1;8516:6;8512:14;8502:24;;8571:2;8560:9;8556:18;8543:31;;8417:4;8414:1;8410:12;8405:17;;8380:208;;;8616:6;8607:7;8604:19;8601:179;;;8674:9;8669:3;8665:19;8659:26;8717:48;8759:4;8751:6;8747:17;8736:9;8717:48;:::i;:::-;8709:6;8702:64;8624:156;8601:179;8826:1;8822;8814:6;8810:14;8806:22;8800:4;8793:36;8228:611;;;8191:887;;7781:1303;;;7689:1395;;:::o;9090:180::-;9138:77;9135:1;9128:88;9235:4;9232:1;9225:15;9259:4;9256:1;9249:15;9276:102;9318:8;9365:5;9362:1;9358:13;9337:34;;9276:102;;;:::o;9384:848::-;9445:5;9452:4;9476:6;9467:15;;9500:5;9491:14;;9514:712;9535:1;9525:8;9522:15;9514:712;;;9630:4;9625:3;9621:14;9615:4;9612:24;9609:50;;;9639:18;;:::i;:::-;9609:50;9689:1;9679:8;9675:16;9672:451;;;10104:4;10097:5;10093:16;10084:25;;9672:451;10154:4;10148;10144:15;10136:23;;10184:32;10207:8;10184:32;:::i;:::-;10172:44;;9514:712;;;9384:848;;;;;;;:::o;10238:1073::-;10292:5;10483:8;10473:40;;10504:1;10495:10;;10506:5;;10473:40;10532:4;10522:36;;10549:1;10540:10;;10551:5;;10522:36;10618:4;10666:1;10661:27;;;;10702:1;10697:191;;;;10611:277;;10661:27;10679:1;10670:10;;10681:5;;;10697:191;10742:3;10732:8;10729:17;10726:43;;;10749:18;;:::i;:::-;10726:43;10798:8;10795:1;10791:16;10782:25;;10833:3;10826:5;10823:14;10820:40;;;10840:18;;:::i;:::-;10820:40;10873:5;;;10611:277;;10997:2;10987:8;10984:16;10978:3;10972:4;10969:13;10965:36;10947:2;10937:8;10934:16;10929:2;10923:4;10920:12;10916:35;10900:111;10897:246;;;11053:8;11047:4;11043:19;11034:28;;11088:3;11081:5;11078:14;11075:40;;;11095:18;;:::i;:::-;11075:40;11128:5;;10897:246;11168:42;11206:3;11196:8;11190:4;11187:1;11168:42;:::i;:::-;11153:57;;;;11242:4;11237:3;11233:14;11226:5;11223:25;11220:51;;;11251:18;;:::i;:::-;11220:51;11300:4;11293:5;11289:16;11280:25;;10238:1073;;;;;;:::o;11317:281::-;11375:5;11399:23;11417:4;11399:23;:::i;:::-;11391:31;;11443:25;11459:8;11443:25;:::i;:::-;11431:37;;11487:104;11524:66;11514:8;11508:4;11487:104;:::i;:::-;11478:113;;11317:281;;;;:::o;11604:410::-;11644:7;11667:20;11685:1;11667:20;:::i;:::-;11662:25;;11701:20;11719:1;11701:20;:::i;:::-;11696:25;;11756:1;11753;11749:9;11778:30;11796:11;11778:30;:::i;:::-;11767:41;;11957:1;11948:7;11944:15;11941:1;11938:22;11918:1;11911:9;11891:83;11868:139;;11987:18;;:::i;:::-;11868:139;11652:362;11604:410;;;;:::o;12020:180::-;12068:77;12065:1;12058:88;12165:4;12162:1;12155:15;12189:4;12186:1;12179:15;12206:191;12246:3;12265:20;12283:1;12265:20;:::i;:::-;12260:25;;12299:20;12317:1;12299:20;:::i;:::-;12294:25;;12342:1;12339;12335:9;12328:16;;12363:3;12360:1;12357:10;12354:36;;;12370:18;;:::i;:::-;12354:36;12206:191;;;;:::o;12403:118::-;12490:24;12508:5;12490:24;:::i;:::-;12485:3;12478:37;12403:118;;:::o;12527:222::-;12620:4;12658:2;12647:9;12643:18;12635:26;;12671:71;12739:1;12728:9;12724:17;12715:6;12671:71;:::i;:::-;12527:222;;;;:::o;12755:77::-;12792:7;12821:5;12810:16;;12755:77;;;:::o;12838:79::-;12877:7;12906:5;12895:16;;12838:79;;;:::o;12923:157::-;13028:45;13048:24;13066:5;13048:24;:::i;:::-;13028:45;:::i;:::-;13023:3;13016:58;12923:157;;:::o;13086:126::-;13123:7;13163:42;13156:5;13152:54;13141:65;;13086:126;;;:::o;13218:96::-;13255:7;13284:24;13302:5;13284:24;:::i;:::-;13273:35;;13218:96;;;:::o;13320:94::-;13353:8;13401:5;13397:2;13393:14;13372:35;;13320:94;;;:::o;13420:::-;13459:7;13488:20;13502:5;13488:20;:::i;:::-;13477:31;;13420:94;;;:::o;13520:100::-;13559:7;13588:26;13608:5;13588:26;:::i;:::-;13577:37;;13520:100;;;:::o;13626:157::-;13731:45;13751:24;13769:5;13751:24;:::i;:::-;13731:45;:::i;:::-;13726:3;13719:58;13626:157;;:::o;13789:397::-;13929:3;13944:75;14015:3;14006:6;13944:75;:::i;:::-;14044:2;14039:3;14035:12;14028:19;;14057:75;14128:3;14119:6;14057:75;:::i;:::-;14157:2;14152:3;14148:12;14141:19;;14177:3;14170:10;;13789:397;;;;;:::o;206:665:8:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_acceptAccountRoles_730": {
"entryPoint": 4127,
"id": 730,
"parameterSlots": 3,
"returnSlots": 0
},
"@_acceptRole_673": {
"entryPoint": 3665,
"id": 673,
"parameterSlots": 3,
"returnSlots": 0
},
"@_addAccountRoles_462": {
"entryPoint": 4716,
"id": 462,
"parameterSlots": 2,
"returnSlots": 0
},
"@_approve_1138": {
"entryPoint": 2495,
"id": 1138,
"parameterSlots": 3,
"returnSlots": 0
},
"@_burn_1096": {
"entryPoint": 3688,
"id": 1096,
"parameterSlots": 2,
"returnSlots": 0
},
"@_getProposedRoles_383": {
"entryPoint": 4547,
"id": 383,
"parameterSlots": 2,
"returnSlots": 1
},
"@_getRoles_328": {
"entryPoint": 3308,
"id": 328,
"parameterSlots": 1,
"returnSlots": 1
},
"@_hasAllTheRoles_561": {
"entryPoint": 4594,
"id": 561,
"parameterSlots": 2,
"returnSlots": 1
},
"@_hasRole_543": {
"entryPoint": 3331,
"id": 543,
"parameterSlots": 2,
"returnSlots": 1
},
"@_mint_1058": {
"entryPoint": 3353,
"id": 1058,
"parameterSlots": 2,
"returnSlots": 0
},
"@_proposalKey_364": {
"entryPoint": 4823,
"id": 364,
"parameterSlots": 2,
"returnSlots": 1
},
"@_proposeAccountRoles_654": {
"entryPoint": 4235,
"id": 654,
"parameterSlots": 3,
"returnSlots": 0
},
"@_proposeRole_598": {
"entryPoint": 4000,
"id": 598,
"parameterSlots": 3,
"returnSlots": 0
},
"@_removeAccountRoles_523": {
"entryPoint": 4608,
"id": 523,
"parameterSlots": 2,
"returnSlots": 0
},
"@_rolesKey_312": {
"entryPoint": 4046,
"id": 312,
"parameterSlots": 1,
"returnSlots": 1
},
"@_setProposedRoles_402": {
"entryPoint": 4572,
"id": 402,
"parameterSlots": 3,
"returnSlots": 0
},
"@_setRoles_344": {
"entryPoint": 4907,
"id": 344,
"parameterSlots": 2,
"returnSlots": 0
},
"@_transferAccountRoles_803": {
"entryPoint": 4437,
"id": 803,
"parameterSlots": 3,
"returnSlots": 0
},
"@_transferRole_749": {
"entryPoint": 4023,
"id": 749,
"parameterSlots": 3,
"returnSlots": 0
},
"@_transfer_1020": {
"entryPoint": 2882,
"id": 1020,
"parameterSlots": 3,
"returnSlots": 0
},
"@acceptMintership_1292": {
"entryPoint": 1827,
"id": 1292,
"parameterSlots": 1,
"returnSlots": 0
},
"@allowance_823": {
"entryPoint": 2463,
"id": 823,
"parameterSlots": 0,
"returnSlots": 0
},
"@approve_875": {
"entryPoint": 1112,
"id": 875,
"parameterSlots": 2,
"returnSlots": 1
},
"@balanceOf_816": {
"entryPoint": 1640,
"id": 816,
"parameterSlots": 0,
"returnSlots": 0
},
"@burn_1416": {
"entryPoint": 1859,
"id": 1416,
"parameterSlots": 2,
"returnSlots": 0
},
"@decimals_1339": {
"entryPoint": 1350,
"id": 1339,
"parameterSlots": 0,
"returnSlots": 0
},
"@decreaseAllowance_974": {
"entryPoint": 1978,
"id": 974,
"parameterSlots": 2,
"returnSlots": 1
},
"@hasRole_254": {
"entryPoint": 1660,
"id": 254,
"parameterSlots": 2,
"returnSlots": 1
},
"@increaseAllowance_947": {
"entryPoint": 1368,
"id": 947,
"parameterSlots": 2,
"returnSlots": 1
},
"@isMinter_1310": {
"entryPoint": 2153,
"id": 1310,
"parameterSlots": 1,
"returnSlots": 1
},
"@mint_1396": {
"entryPoint": 1521,
"id": 1396,
"parameterSlots": 2,
"returnSlots": 0
},
"@name_1335": {
"entryPoint": 972,
"id": 1335,
"parameterSlots": 0,
"returnSlots": 0
},
"@proposeMintership_1274": {
"entryPoint": 2189,
"id": 1274,
"parameterSlots": 1,
"returnSlots": 0
},
"@symbol_1337": {
"entryPoint": 1687,
"id": 1337,
"parameterSlots": 0,
"returnSlots": 0
},
"@totalSupply_826": {
"entryPoint": 1134,
"id": 826,
"parameterSlots": 0,
"returnSlots": 0
},
"@transferFrom_920": {
"entryPoint": 1140,
"id": 920,
"parameterSlots": 3,
"returnSlots": 1
},
"@transferMintership_1249": {
"entryPoint": 2326,
"id": 1249,
"parameterSlots": 1,
"returnSlots": 0
},
"@transfer_854": {
"entryPoint": 2131,
"id": 854,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 5171,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 5222,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint8": {
"entryPoint": 5592,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 5527,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address": {
"entryPoint": 5674,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_addresst_uint256": {
"entryPoint": 5395,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 5242,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_uint8": {
"entryPoint": 5612,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 6021,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack": {
"entryPoint": 6162,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 5315,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack": {
"entryPoint": 6093,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 5009,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 5355,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint8_to_t_uint8_fromStack": {
"entryPoint": 5487,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_bytes32_t_address__to_t_bytes32_t_address__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 6185,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_bytes32_t_address_t_address__to_t_bytes32_t_address_t_address__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 6320,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 6228,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 6281,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed": {
"entryPoint": 6036,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 5330,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 5065,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 5370,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": {
"entryPoint": 5502,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 4927,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 4937,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 5925,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 5874,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 5132,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 5304,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 6075,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 5101,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 5191,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint8": {
"entryPoint": 5475,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 4953,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 5781,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_address": {
"entryPoint": 6145,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_bytes32": {
"entryPoint": 6084,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_uint160": {
"entryPoint": 6128,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 5829,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x21": {
"entryPoint": 5976,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 5736,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 5097,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 4993,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_96": {
"entryPoint": 6116,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 5149,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 5200,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint8": {
"entryPoint": 5570,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:10674:9",
"nodeType": "YulBlock",
"src": "0:10674:9",
"statements": [
{
"body": {
"nativeSrc": "66:40:9",
"nodeType": "YulBlock",
"src": "66:40:9",
"statements": [
{
"nativeSrc": "77:22:9",
"nodeType": "YulAssignment",
"src": "77:22:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "93:5:9",
"nodeType": "YulIdentifier",
"src": "93:5:9"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "87:5:9",
"nodeType": "YulIdentifier",
"src": "87:5:9"
},
"nativeSrc": "87:12:9",
"nodeType": "YulFunctionCall",
"src": "87:12:9"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "77:6:9",
"nodeType": "YulIdentifier",
"src": "77:6:9"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "7:99:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "49:5:9",
"nodeType": "YulTypedName",
"src": "49:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "59:6:9",
"nodeType": "YulTypedName",
"src": "59:6:9",
"type": ""
}
],
"src": "7:99:9"
},
{
"body": {
"nativeSrc": "208:73:9",
"nodeType": "YulBlock",
"src": "208:73:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "225:3:9",
"nodeType": "YulIdentifier",
"src": "225:3:9"
},
{
"name": "length",
"nativeSrc": "230:6:9",
"nodeType": "YulIdentifier",
"src": "230:6:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "218:6:9",
"nodeType": "YulIdentifier",
"src": "218:6:9"
},
"nativeSrc": "218:19:9",
"nodeType": "YulFunctionCall",
"src": "218:19:9"
},
"nativeSrc": "218:19:9",
"nodeType": "YulExpressionStatement",
"src": "218:19:9"
},
{
"nativeSrc": "246:29:9",
"nodeType": "YulAssignment",
"src": "246:29:9",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "265:3:9",
"nodeType": "YulIdentifier",
"src": "265:3:9"
},
{
"kind": "number",
"nativeSrc": "270:4:9",
"nodeType": "YulLiteral",
"src": "270:4:9",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "261:3:9",
"nodeType": "YulIdentifier",
"src": "261:3:9"
},
"nativeSrc": "261:14:9",
"nodeType": "YulFunctionCall",
"src": "261:14:9"
},
"variableNames": [
{
"name": "updated_pos",
"nativeSrc": "246:11:9",
"nodeType": "YulIdentifier",
"src": "246:11:9"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "112:169:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "180:3:9",
"nodeType": "YulTypedName",
"src": "180:3:9",
"type": ""
},
{
"name": "length",
"nativeSrc": "185:6:9",
"nodeType": "YulTypedName",
"src": "185:6:9",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nativeSrc": "196:11:9",
"nodeType": "YulTypedName",
"src": "196:11:9",
"type": ""
}
],
"src": "112:169:9"
},
{
"body": {
"nativeSrc": "349:184:9",
"nodeType": "YulBlock",
"src": "349:184:9",
"statements": [
{
"nativeSrc": "359:10:9",
"nodeType": "YulVariableDeclaration",
"src": "359:10:9",
"value": {
"kind": "number",
"nativeSrc": "368:1:9",
"nodeType": "YulLiteral",
"src": "368:1:9",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nativeSrc": "363:1:9",
"nodeType": "YulTypedName",
"src": "363:1:9",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "428:63:9",
"nodeType": "YulBlock",
"src": "428:63:9",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "453:3:9",
"nodeType": "YulIdentifier",
"src": "453:3:9"
},
{
"name": "i",
"nativeSrc": "458:1:9",
"nodeType": "YulIdentifier",
"src": "458:1:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "449:3:9",
"nodeType": "YulIdentifier",
"src": "449:3:9"
},
"nativeSrc": "449:11:9",
"nodeType": "YulFunctionCall",
"src": "449:11:9"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nativeSrc": "472:3:9",
"nodeType": "YulIdentifier",
"src": "472:3:9"
},
{
"name": "i",
"nativeSrc": "477:1:9",
"nodeType": "YulIdentifier",
"src": "477:1:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "468:3:9",
"nodeType": "YulIdentifier",
"src": "468:3:9"
},
"nativeSrc": "468:11:9",
"nodeType": "YulFunctionCall",
"src": "468:11:9"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "462:5:9",
"nodeType": "YulIdentifier",
"src": "462:5:9"
},
"nativeSrc": "462:18:9",
"nodeType": "YulFunctionCall",
"src": "462:18:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "442:6:9",
"nodeType": "YulIdentifier",
"src": "442:6:9"
},
"nativeSrc": "442:39:9",
"nodeType": "YulFunctionCall",
"src": "442:39:9"
},
"nativeSrc": "442:39:9",
"nodeType": "YulExpressionStatement",
"src": "442:39:9"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nativeSrc": "389:1:9",
"nodeType": "YulIdentifier",
"src": "389:1:9"
},
{
"name": "length",
"nativeSrc": "392:6:9",
"nodeType": "YulIdentifier",
"src": "392:6:9"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "386:2:9",
"nodeType": "YulIdentifier",
"src": "386:2:9"
},
"nativeSrc": "386:13:9",
"nodeType": "YulFunctionCall",
"src": "386:13:9"
},
"nativeSrc": "378:113:9",
"nodeType": "YulForLoop",
"post": {
"nativeSrc": "400:19:9",
"nodeType": "YulBlock",
"src": "400:19:9",
"statements": [
{
"nativeSrc": "402:15:9",
"nodeType": "YulAssignment",
"src": "402:15:9",
"value": {
"arguments": [
{
"name": "i",
"nativeSrc": "411:1:9",
"nodeType": "YulIdentifier",
"src": "411:1:9"
},
{
"kind": "number",
"nativeSrc": "414:2:9",
"nodeType": "YulLiteral",
"src": "414:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "407:3:9",
"nodeType": "YulIdentifier",
"src": "407:3:9"
},
"nativeSrc": "407:10:9",
"nodeType": "YulFunctionCall",
"src": "407:10:9"
},
"variableNames": [
{
"name": "i",
"nativeSrc": "402:1:9",
"nodeType": "YulIdentifier",
"src": "402:1:9"
}
]
}
]
},
"pre": {
"nativeSrc": "382:3:9",
"nodeType": "YulBlock",
"src": "382:3:9",
"statements": []
},
"src": "378:113:9"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nativeSrc": "511:3:9",
"nodeType": "YulIdentifier",
"src": "511:3:9"
},
{
"name": "length",
"nativeSrc": "516:6:9",
"nodeType": "YulIdentifier",
"src": "516:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "507:3:9",
"nodeType": "YulIdentifier",
"src": "507:3:9"
},
"nativeSrc": "507:16:9",
"nodeType": "YulFunctionCall",
"src": "507:16:9"
},
{
"kind": "number",
"nativeSrc": "525:1:9",
"nodeType": "YulLiteral",
"src": "525:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "500:6:9",
"nodeType": "YulIdentifier",
"src": "500:6:9"
},
"nativeSrc": "500:27:9",
"nodeType": "YulFunctionCall",
"src": "500:27:9"
},
"nativeSrc": "500:27:9",
"nodeType": "YulExpressionStatement",
"src": "500:27:9"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "287:246:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nativeSrc": "331:3:9",
"nodeType": "YulTypedName",
"src": "331:3:9",
"type": ""
},
{
"name": "dst",
"nativeSrc": "336:3:9",
"nodeType": "YulTypedName",
"src": "336:3:9",
"type": ""
},
{
"name": "length",
"nativeSrc": "341:6:9",
"nodeType": "YulTypedName",
"src": "341:6:9",
"type": ""
}
],
"src": "287:246:9"
},
{
"body": {
"nativeSrc": "587:54:9",
"nodeType": "YulBlock",
"src": "587:54:9",
"statements": [
{
"nativeSrc": "597:38:9",
"nodeType": "YulAssignment",
"src": "597:38:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "615:5:9",
"nodeType": "YulIdentifier",
"src": "615:5:9"
},
{
"kind": "number",
"nativeSrc": "622:2:9",
"nodeType": "YulLiteral",
"src": "622:2:9",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nativeSrc": "611:3:9",
"nodeType": "YulIdentifier",
"src": "611:3:9"
},
"nativeSrc": "611:14:9",
"nodeType": "YulFunctionCall",
"src": "611:14:9"
},
{
"arguments": [
{
"kind": "number",
"nativeSrc": "631:2:9",
"nodeType": "YulLiteral",
"src": "631:2:9",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nativeSrc": "627:3:9",
"nodeType": "YulIdentifier",
"src": "627:3:9"
},
"nativeSrc": "627:7:9",
"nodeType": "YulFunctionCall",
"src": "627:7:9"
}
],
"functionName": {
"name": "and",
"nativeSrc": "607:3:9",
"nodeType": "YulIdentifier",
"src": "607:3:9"
},
"nativeSrc": "607:28:9",
"nodeType": "YulFunctionCall",
"src": "607:28:9"
},
"variableNames": [
{
"name": "result",
"nativeSrc": "597:6:9",
"nodeType": "YulIdentifier",
"src": "597:6:9"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nativeSrc": "539:102:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "570:5:9",
"nodeType": "YulTypedName",
"src": "570:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nativeSrc": "580:6:9",
"nodeType": "YulTypedName",
"src": "580:6:9",
"type": ""
}
],
"src": "539:102:9"
},
{
"body": {
"nativeSrc": "739:285:9",
"nodeType": "YulBlock",
"src": "739:285:9",
"statements": [
{
"nativeSrc": "749:53:9",
"nodeType": "YulVariableDeclaration",
"src": "749:53:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "796:5:9",
"nodeType": "YulIdentifier",
"src": "796:5:9"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nativeSrc": "763:32:9",
"nodeType": "YulIdentifier",
"src": "763:32:9"
},
"nativeSrc": "763:39:9",
"nodeType": "YulFunctionCall",
"src": "763:39:9"
},
"variables": [
{
"name": "length",
"nativeSrc": "753:6:9",
"nodeType": "YulTypedName",
"src": "753:6:9",
"type": ""
}
]
},
{
"nativeSrc": "811:78:9",
"nodeType": "YulAssignment",
"src": "811:78:9",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "877:3:9",
"nodeType": "YulIdentifier",
"src": "877:3:9"
},
{
"name": "length",
"nativeSrc": "882:6:9",
"nodeType": "YulIdentifier",
"src": "882:6:9"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nativeSrc": "818:58:9",
"nodeType": "YulIdentifier",
"src": "818:58:9"
},
"nativeSrc": "818:71:9",
"nodeType": "YulFunctionCall",
"src": "818:71:9"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "811:3:9",
"nodeType": "YulIdentifier",
"src": "811:3:9"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "937:5:9",
"nodeType": "YulIdentifier",
"src": "937:5:9"
},
{
"kind": "number",
"nativeSrc": "944:4:9",
"nodeType": "YulLiteral",
"src": "944:4:9",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "933:3:9",
"nodeType": "YulIdentifier",
"src": "933:3:9"
},
"nativeSrc": "933:16:9",
"nodeType": "YulFunctionCall",
"src": "933:16:9"
},
{
"name": "pos",
"nativeSrc": "951:3:9",
"nodeType": "YulIdentifier",
"src": "951:3:9"
},
{
"name": "length",
"nativeSrc": "956:6:9",
"nodeType": "YulIdentifier",
"src": "956:6:9"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nativeSrc": "898:34:9",
"nodeType": "YulIdentifier",
"src": "898:34:9"
},
"nativeSrc": "898:65:9",
"nodeType": "YulFunctionCall",
"src": "898:65:9"
},
"nativeSrc": "898:65:9",
"nodeType": "YulExpressionStatement",
"src": "898:65:9"
},
{
"nativeSrc": "972:46:9",
"nodeType": "YulAssignment",
"src": "972:46:9",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "983:3:9",
"nodeType": "YulIdentifier",
"src": "983:3:9"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "1010:6:9",
"nodeType": "YulIdentifier",
"src": "1010:6:9"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nativeSrc": "988:21:9",
"nodeType": "YulIdentifier",
"src": "988:21:9"
},
"nativeSrc": "988:29:9",
"nodeType": "YulFunctionCall",
"src": "988:29:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "979:3:9",
"nodeType": "YulIdentifier",
"src": "979:3:9"
},
"nativeSrc": "979:39:9",
"nodeType": "YulFunctionCall",
"src": "979:39:9"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "972:3:9",
"nodeType": "YulIdentifier",
"src": "972:3:9"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nativeSrc": "647:377:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "720:5:9",
"nodeType": "YulTypedName",
"src": "720:5:9",
"type": ""
},
{
"name": "pos",
"nativeSrc": "727:3:9",
"nodeType": "YulTypedName",
"src": "727:3:9",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "735:3:9",
"nodeType": "YulTypedName",
"src": "735:3:9",
"type": ""
}
],
"src": "647:377:9"
},
{
"body": {
"nativeSrc": "1148:195:9",
"nodeType": "YulBlock",
"src": "1148:195:9",
"statements": [
{
"nativeSrc": "1158:26:9",
"nodeType": "YulAssignment",
"src": "1158:26:9",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "1170:9:9",
"nodeType": "YulIdentifier",
"src": "1170:9:9"
},
{
"kind": "number",
"nativeSrc": "1181:2:9",
"nodeType": "YulLiteral",
"src": "1181:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1166:3:9",
"nodeType": "YulIdentifier",
"src": "1166:3:9"
},
"nativeSrc": "1166:18:9",
"nodeType": "YulFunctionCall",
"src": "1166:18:9"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1158:4:9",
"nodeType": "YulIdentifier",
"src": "1158:4:9"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1205:9:9",
"nodeType": "YulIdentifier",
"src": "1205:9:9"
},
{
"kind": "number",
"nativeSrc": "1216:1:9",
"nodeType": "YulLiteral",
"src": "1216:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1201:3:9",
"nodeType": "YulIdentifier",
"src": "1201:3:9"
},
"nativeSrc": "1201:17:9",
"nodeType": "YulFunctionCall",
"src": "1201:17:9"
},
{
"arguments": [
{
"name": "tail",
"nativeSrc": "1224:4:9",
"nodeType": "YulIdentifier",
"src": "1224:4:9"
},
{
"name": "headStart",
"nativeSrc": "1230:9:9",
"nodeType": "YulIdentifier",
"src": "1230:9:9"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "1220:3:9",
"nodeType": "YulIdentifier",
"src": "1220:3:9"
},
"nativeSrc": "1220:20:9",
"nodeType": "YulFunctionCall",
"src": "1220:20:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1194:6:9",
"nodeType": "YulIdentifier",
"src": "1194:6:9"
},
"nativeSrc": "1194:47:9",
"nodeType": "YulFunctionCall",
"src": "1194:47:9"
},
"nativeSrc": "1194:47:9",
"nodeType": "YulExpressionStatement",
"src": "1194:47:9"
},
{
"nativeSrc": "1250:86:9",
"nodeType": "YulAssignment",
"src": "1250:86:9",
"value": {
"arguments": [
{
"name": "value0",
"nativeSrc": "1322:6:9",
"nodeType": "YulIdentifier",
"src": "1322:6:9"
},
{
"name": "tail",
"nativeSrc": "1331:4:9",
"nodeType": "YulIdentifier",
"src": "1331:4:9"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nativeSrc": "1258:63:9",
"nodeType": "YulIdentifier",
"src": "1258:63:9"
},
"nativeSrc": "1258:78:9",
"nodeType": "YulFunctionCall",
"src": "1258:78:9"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1250:4:9",
"nodeType": "YulIdentifier",
"src": "1250:4:9"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nativeSrc": "1030:313:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1120:9:9",
"nodeType": "YulTypedName",
"src": "1120:9:9",
"type": ""
},
{
"name": "value0",
"nativeSrc": "1132:6:9",
"nodeType": "YulTypedName",
"src": "1132:6:9",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "1143:4:9",
"nodeType": "YulTypedName",
"src": "1143:4:9",
"type": ""
}
],
"src": "1030:313:9"
},
{
"body": {
"nativeSrc": "1389:35:9",
"nodeType": "YulBlock",
"src": "1389:35:9",
"statements": [
{
"nativeSrc": "1399:19:9",
"nodeType": "YulAssignment",
"src": "1399:19:9",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1415:2:9",
"nodeType": "YulLiteral",
"src": "1415:2:9",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "1409:5:9",
"nodeType": "YulIdentifier",
"src": "1409:5:9"
},
"nativeSrc": "1409:9:9",
"nodeType": "YulFunctionCall",
"src": "1409:9:9"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "1399:6:9",
"nodeType": "YulIdentifier",
"src": "1399:6:9"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "1349:75:9",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "1382:6:9",
"nodeType": "YulTypedName",
"src": "1382:6:9",
"type": ""
}
],
"src": "1349:75:9"
},
{
"body": {
"nativeSrc": "1519:28:9",
"nodeType": "YulBlock",
"src": "1519:28:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1536:1:9",
"nodeType": "YulLiteral",
"src": "1536:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1539:1:9",
"nodeType": "YulLiteral",
"src": "1539:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1529:6:9",
"nodeType": "YulIdentifier",
"src": "1529:6:9"
},
"nativeSrc": "1529:12:9",
"nodeType": "YulFunctionCall",
"src": "1529:12:9"
},
"nativeSrc": "1529:12:9",
"nodeType": "YulExpressionStatement",
"src": "1529:12:9"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "1430:117:9",
"nodeType": "YulFunctionDefinition",
"src": "1430:117:9"
},
{
"body": {
"nativeSrc": "1642:28:9",
"nodeType": "YulBlock",
"src": "1642:28:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1659:1:9",
"nodeType": "YulLiteral",
"src": "1659:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1662:1:9",
"nodeType": "YulLiteral",
"src": "1662:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1652:6:9",
"nodeType": "YulIdentifier",
"src": "1652:6:9"
},
"nativeSrc": "1652:12:9",
"nodeType": "YulFunctionCall",
"src": "1652:12:9"
},
"nativeSrc": "1652:12:9",
"nodeType": "YulExpressionStatement",
"src": "1652:12:9"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "1553:117:9",
"nodeType": "YulFunctionDefinition",
"src": "1553:117:9"
},
{
"body": {
"nativeSrc": "1721:81:9",
"nodeType": "YulBlock",
"src": "1721:81:9",
"statements": [
{
"nativeSrc": "1731:65:9",
"nodeType": "YulAssignment",
"src": "1731:65:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1746:5:9",
"nodeType": "YulIdentifier",
"src": "1746:5:9"
},
{
"kind": "number",
"nativeSrc": "1753:42:9",
"nodeType": "YulLiteral",
"src": "1753:42:9",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "1742:3:9",
"nodeType": "YulIdentifier",
"src": "1742:3:9"
},
"nativeSrc": "1742:54:9",
"nodeType": "YulFunctionCall",
"src": "1742:54:9"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1731:7:9",
"nodeType": "YulIdentifier",
"src": "1731:7:9"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nativeSrc": "1676:126:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1703:5:9",
"nodeType": "YulTypedName",
"src": "1703:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1713:7:9",
"nodeType": "YulTypedName",
"src": "1713:7:9",
"type": ""
}
],
"src": "1676:126:9"
},
{
"body": {
"nativeSrc": "1853:51:9",
"nodeType": "YulBlock",
"src": "1853:51:9",
"statements": [
{
"nativeSrc": "1863:35:9",
"nodeType": "YulAssignment",
"src": "1863:35:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1892:5:9",
"nodeType": "YulIdentifier",
"src": "1892:5:9"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "1874:17:9",
"nodeType": "YulIdentifier",
"src": "1874:17:9"
},
"nativeSrc": "1874:24:9",
"nodeType": "YulFunctionCall",
"src": "1874:24:9"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1863:7:9",
"nodeType": "YulIdentifier",
"src": "1863:7:9"
}
]
}
]
},
"name": "cleanup_t_address",
"nativeSrc": "1808:96:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1835:5:9",
"nodeType": "YulTypedName",
"src": "1835:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1845:7:9",
"nodeType": "YulTypedName",
"src": "1845:7:9",
"type": ""
}
],
"src": "1808:96:9"
},
{
"body": {
"nativeSrc": "1953:79:9",
"nodeType": "YulBlock",
"src": "1953:79:9",
"statements": [
{
"body": {
"nativeSrc": "2010:16:9",
"nodeType": "YulBlock",
"src": "2010:16:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2019:1:9",
"nodeType": "YulLiteral",
"src": "2019:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2022:1:9",
"nodeType": "YulLiteral",
"src": "2022:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2012:6:9",
"nodeType": "YulIdentifier",
"src": "2012:6:9"
},
"nativeSrc": "2012:12:9",
"nodeType": "YulFunctionCall",
"src": "2012:12:9"
},
"nativeSrc": "2012:12:9",
"nodeType": "YulExpressionStatement",
"src": "2012:12:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1976:5:9",
"nodeType": "YulIdentifier",
"src": "1976:5:9"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2001:5:9",
"nodeType": "YulIdentifier",
"src": "2001:5:9"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "1983:17:9",
"nodeType": "YulIdentifier",
"src": "1983:17:9"
},
"nativeSrc": "1983:24:9",
"nodeType": "YulFunctionCall",
"src": "1983:24:9"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "1973:2:9",
"nodeType": "YulIdentifier",
"src": "1973:2:9"
},
"nativeSrc": "1973:35:9",
"nodeType": "YulFunctionCall",
"src": "1973:35:9"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "1966:6:9",
"nodeType": "YulIdentifier",
"src": "1966:6:9"
},
"nativeSrc": "1966:43:9",
"nodeType": "YulFunctionCall",
"src": "1966:43:9"
},
"nativeSrc": "1963:63:9",
"nodeType": "YulIf",
"src": "1963:63:9"
}
]
},
"name": "validator_revert_t_address",
"nativeSrc": "1910:122:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1946:5:9",
"nodeType": "YulTypedName",
"src": "1946:5:9",
"type": ""
}
],
"src": "1910:122:9"
},
{
"body": {
"nativeSrc": "2090:87:9",
"nodeType": "YulBlock",
"src": "2090:87:9",
"statements": [
{
"nativeSrc": "2100:29:9",
"nodeType": "YulAssignment",
"src": "2100:29:9",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2122:6:9",
"nodeType": "YulIdentifier",
"src": "2122:6:9"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "2109:12:9",
"nodeType": "YulIdentifier",
"src": "2109:12:9"
},
"nativeSrc": "2109:20:9",
"nodeType": "YulFunctionCall",
"src": "2109:20:9"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2100:5:9",
"nodeType": "YulIdentifier",
"src": "2100:5:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "2165:5:9",
"nodeType": "YulIdentifier",
"src": "2165:5:9"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nativeSrc": "2138:26:9",
"nodeType": "YulIdentifier",
"src": "2138:26:9"
},
"nativeSrc": "2138:33:9",
"nodeType": "YulFunctionCall",
"src": "2138:33:9"
},
"nativeSrc": "2138:33:9",
"nodeType": "YulExpressionStatement",
"src": "2138:33:9"
}
]
},
"name": "abi_decode_t_address",
"nativeSrc": "2038:139:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2068:6:9",
"nodeType": "YulTypedName",
"src": "2068:6:9",
"type": ""
},
{
"name": "end",
"nativeSrc": "2076:3:9",
"nodeType": "YulTypedName",
"src": "2076:3:9",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "2084:5:9",
"nodeType": "YulTypedName",
"src": "2084:5:9",
"type": ""
}
],
"src": "2038:139:9"
},
{
"body": {
"nativeSrc": "2228:32:9",
"nodeType": "YulBlock",
"src": "2228:32:9",
"statements": [
{
"nativeSrc": "2238:16:9",
"nodeType": "YulAssignment",
"src": "2238:16:9",
"value": {
"name": "value",
"nativeSrc": "2249:5:9",
"nodeType": "YulIdentifier",
"src": "2249:5:9"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "2238:7:9",
"nodeType": "YulIdentifier",
"src": "2238:7:9"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "2183:77:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2210:5:9",
"nodeType": "YulTypedName",
"src": "2210:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "2220:7:9",
"nodeType": "YulTypedName",
"src": "2220:7:9",
"type": ""
}
],
"src": "2183:77:9"
},
{
"body": {
"nativeSrc": "2309:79:9",
"nodeType": "YulBlock",
"src": "2309:79:9",
"statements": [
{
"body": {
"nativeSrc": "2366:16:9",
"nodeType": "YulBlock",
"src": "2366:16:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2375:1:9",
"nodeType": "YulLiteral",
"src": "2375:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2378:1:9",
"nodeType": "YulLiteral",
"src": "2378:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2368:6:9",
"nodeType": "YulIdentifier",
"src": "2368:6:9"
},
"nativeSrc": "2368:12:9",
"nodeType": "YulFunctionCall",
"src": "2368:12:9"
},
"nativeSrc": "2368:12:9",
"nodeType": "YulExpressionStatement",
"src": "2368:12:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "2332:5:9",
"nodeType": "YulIdentifier",
"src": "2332:5:9"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2357:5:9",
"nodeType": "YulIdentifier",
"src": "2357:5:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "2339:17:9",
"nodeType": "YulIdentifier",
"src": "2339:17:9"
},
"nativeSrc": "2339:24:9",
"nodeType": "YulFunctionCall",
"src": "2339:24:9"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "2329:2:9",
"nodeType": "YulIdentifier",
"src": "2329:2:9"
},
"nativeSrc": "2329:35:9",
"nodeType": "YulFunctionCall",
"src": "2329:35:9"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "2322:6:9",
"nodeType": "YulIdentifier",
"src": "2322:6:9"
},
"nativeSrc": "2322:43:9",
"nodeType": "YulFunctionCall",
"src": "2322:43:9"
},
"nativeSrc": "2319:63:9",
"nodeType": "YulIf",
"src": "2319:63:9"
}
]
},
"name": "validator_revert_t_uint256",
"nativeSrc": "2266:122:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2302:5:9",
"nodeType": "YulTypedName",
"src": "2302:5:9",
"type": ""
}
],
"src": "2266:122:9"
},
{
"body": {
"nativeSrc": "2446:87:9",
"nodeType": "YulBlock",
"src": "2446:87:9",
"statements": [
{
"nativeSrc": "2456:29:9",
"nodeType": "YulAssignment",
"src": "2456:29:9",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "2478:6:9",
"nodeType": "YulIdentifier",
"src": "2478:6:9"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "2465:12:9",
"nodeType": "YulIdentifier",
"src": "2465:12:9"
},
"nativeSrc": "2465:20:9",
"nodeType": "YulFunctionCall",
"src": "2465:20:9"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "2456:5:9",
"nodeType": "YulIdentifier",
"src": "2456:5:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "2521:5:9",
"nodeType": "YulIdentifier",
"src": "2521:5:9"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "2494:26:9",
"nodeType": "YulIdentifier",
"src": "2494:26:9"
},
"nativeSrc": "2494:33:9",
"nodeType": "YulFunctionCall",
"src": "2494:33:9"
},
"nativeSrc": "2494:33:9",
"nodeType": "YulExpressionStatement",
"src": "2494:33:9"
}
]
},
"name": "abi_decode_t_uint256",
"nativeSrc": "2394:139:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "2424:6:9",
"nodeType": "YulTypedName",
"src": "2424:6:9",
"type": ""
},
{
"name": "end",
"nativeSrc": "2432:3:9",
"nodeType": "YulTypedName",
"src": "2432:3:9",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "2440:5:9",
"nodeType": "YulTypedName",
"src": "2440:5:9",
"type": ""
}
],
"src": "2394:139:9"
},
{
"body": {
"nativeSrc": "2622:391:9",
"nodeType": "YulBlock",
"src": "2622:391:9",
"statements": [
{
"body": {
"nativeSrc": "2668:83:9",
"nodeType": "YulBlock",
"src": "2668:83:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "2670:77:9",
"nodeType": "YulIdentifier",
"src": "2670:77:9"
},
"nativeSrc": "2670:79:9",
"nodeType": "YulFunctionCall",
"src": "2670:79:9"
},
"nativeSrc": "2670:79:9",
"nodeType": "YulExpressionStatement",
"src": "2670:79:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "2643:7:9",
"nodeType": "YulIdentifier",
"src": "2643:7:9"
},
{
"name": "headStart",
"nativeSrc": "2652:9:9",
"nodeType": "YulIdentifier",
"src": "2652:9:9"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "2639:3:9",
"nodeType": "YulIdentifier",
"src": "2639:3:9"
},
"nativeSrc": "2639:23:9",
"nodeType": "YulFunctionCall",
"src": "2639:23:9"
},
{
"kind": "number",
"nativeSrc": "2664:2:9",
"nodeType": "YulLiteral",
"src": "2664:2:9",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "2635:3:9",
"nodeType": "YulIdentifier",
"src": "2635:3:9"
},
"nativeSrc": "2635:32:9",
"nodeType": "YulFunctionCall",
"src": "2635:32:9"
},
"nativeSrc": "2632:119:9",
"nodeType": "YulIf",
"src": "2632:119:9"
},
{
"nativeSrc": "2761:117:9",
"nodeType": "YulBlock",
"src": "2761:117:9",
"statements": [
{
"nativeSrc": "2776:15:9",
"nodeType": "YulVariableDeclaration",
"src": "2776:15:9",
"value": {
"kind": "number",
"nativeSrc": "2790:1:9",
"nodeType": "YulLiteral",
"src": "2790:1:9",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "2780:6:9",
"nodeType": "YulTypedName",
"src": "2780:6:9",
"type": ""
}
]
},
{
"nativeSrc": "2805:63:9",
"nodeType": "YulAssignment",
"src": "2805:63:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "2840:9:9",
"nodeType": "YulIdentifier",
"src": "2840:9:9"
},
{
"name": "offset",
"nativeSrc": "2851:6:9",
"nodeType": "YulIdentifier",
"src": "2851:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2836:3:9",
"nodeType": "YulIdentifier",
"src": "2836:3:9"
},
"nativeSrc": "2836:22:9",
"nodeType": "YulFunctionCall",
"src": "2836:22:9"
},
{
"name": "dataEnd",
"nativeSrc": "2860:7:9",
"nodeType": "YulIdentifier",
"src": "2860:7:9"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "2815:20:9",
"nodeType": "YulIdentifier",
"src": "2815:20:9"
},
"nativeSrc": "2815:53:9",
"nodeType": "YulFunctionCall",
"src": "2815:53:9"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "2805:6:9",
"nodeType": "YulIdentifier",
"src": "2805:6:9"
}
]
}
]
},
{
"nativeSrc": "2888:118:9",
"nodeType": "YulBlock",
"src": "2888:118:9",
"statements": [
{
"nativeSrc": "2903:16:9",
"nodeType": "YulVariableDeclaration",
"src": "2903:16:9",
"value": {
"kind": "number",
"nativeSrc": "2917:2:9",
"nodeType": "YulLiteral",
"src": "2917:2:9",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "2907:6:9",
"nodeType": "YulTypedName",
"src": "2907:6:9",
"type": ""
}
]
},
{
"nativeSrc": "2933:63:9",
"nodeType": "YulAssignment",
"src": "2933:63:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "2968:9:9",
"nodeType": "YulIdentifier",
"src": "2968:9:9"
},
{
"name": "offset",
"nativeSrc": "2979:6:9",
"nodeType": "YulIdentifier",
"src": "2979:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2964:3:9",
"nodeType": "YulIdentifier",
"src": "2964:3:9"
},
"nativeSrc": "2964:22:9",
"nodeType": "YulFunctionCall",
"src": "2964:22:9"
},
{
"name": "dataEnd",
"nativeSrc": "2988:7:9",
"nodeType": "YulIdentifier",
"src": "2988:7:9"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "2943:20:9",
"nodeType": "YulIdentifier",
"src": "2943:20:9"
},
"nativeSrc": "2943:53:9",
"nodeType": "YulFunctionCall",
"src": "2943:53:9"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "2933:6:9",
"nodeType": "YulIdentifier",
"src": "2933:6:9"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nativeSrc": "2539:474:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "2584:9:9",
"nodeType": "YulTypedName",
"src": "2584:9:9",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "2595:7:9",
"nodeType": "YulTypedName",
"src": "2595:7:9",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "2607:6:9",
"nodeType": "YulTypedName",
"src": "2607:6:9",
"type": ""
},
{
"name": "value1",
"nativeSrc": "2615:6:9",
"nodeType": "YulTypedName",
"src": "2615:6:9",
"type": ""
}
],
"src": "2539:474:9"
},
{
"body": {
"nativeSrc": "3061:48:9",
"nodeType": "YulBlock",
"src": "3061:48:9",
"statements": [
{
"nativeSrc": "3071:32:9",
"nodeType": "YulAssignment",
"src": "3071:32:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "3096:5:9",
"nodeType": "YulIdentifier",
"src": "3096:5:9"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "3089:6:9",
"nodeType": "YulIdentifier",
"src": "3089:6:9"
},
"nativeSrc": "3089:13:9",
"nodeType": "YulFunctionCall",
"src": "3089:13:9"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "3082:6:9",
"nodeType": "YulIdentifier",
"src": "3082:6:9"
},
"nativeSrc": "3082:21:9",
"nodeType": "YulFunctionCall",
"src": "3082:21:9"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "3071:7:9",
"nodeType": "YulIdentifier",
"src": "3071:7:9"
}
]
}
]
},
"name": "cleanup_t_bool",
"nativeSrc": "3019:90:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3043:5:9",
"nodeType": "YulTypedName",
"src": "3043:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "3053:7:9",
"nodeType": "YulTypedName",
"src": "3053:7:9",
"type": ""
}
],
"src": "3019:90:9"
},
{
"body": {
"nativeSrc": "3174:50:9",
"nodeType": "YulBlock",
"src": "3174:50:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "3191:3:9",
"nodeType": "YulIdentifier",
"src": "3191:3:9"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "3211:5:9",
"nodeType": "YulIdentifier",
"src": "3211:5:9"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nativeSrc": "3196:14:9",
"nodeType": "YulIdentifier",
"src": "3196:14:9"
},
"nativeSrc": "3196:21:9",
"nodeType": "YulFunctionCall",
"src": "3196:21:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "3184:6:9",
"nodeType": "YulIdentifier",
"src": "3184:6:9"
},
"nativeSrc": "3184:34:9",
"nodeType": "YulFunctionCall",
"src": "3184:34:9"
},
"nativeSrc": "3184:34:9",
"nodeType": "YulExpressionStatement",
"src": "3184:34:9"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "3115:109:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3162:5:9",
"nodeType": "YulTypedName",
"src": "3162:5:9",
"type": ""
},
{
"name": "pos",
"nativeSrc": "3169:3:9",
"nodeType": "YulTypedName",
"src": "3169:3:9",
"type": ""
}
],
"src": "3115:109:9"
},
{
"body": {
"nativeSrc": "3322:118:9",
"nodeType": "YulBlock",
"src": "3322:118:9",
"statements": [
{
"nativeSrc": "3332:26:9",
"nodeType": "YulAssignment",
"src": "3332:26:9",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "3344:9:9",
"nodeType": "YulIdentifier",
"src": "3344:9:9"
},
{
"kind": "number",
"nativeSrc": "3355:2:9",
"nodeType": "YulLiteral",
"src": "3355:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3340:3:9",
"nodeType": "YulIdentifier",
"src": "3340:3:9"
},
"nativeSrc": "3340:18:9",
"nodeType": "YulFunctionCall",
"src": "3340:18:9"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "3332:4:9",
"nodeType": "YulIdentifier",
"src": "3332:4:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "3406:6:9",
"nodeType": "YulIdentifier",
"src": "3406:6:9"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3419:9:9",
"nodeType": "YulIdentifier",
"src": "3419:9:9"
},
{
"kind": "number",
"nativeSrc": "3430:1:9",
"nodeType": "YulLiteral",
"src": "3430:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3415:3:9",
"nodeType": "YulIdentifier",
"src": "3415:3:9"
},
"nativeSrc": "3415:17:9",
"nodeType": "YulFunctionCall",
"src": "3415:17:9"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "3368:37:9",
"nodeType": "YulIdentifier",
"src": "3368:37:9"
},
"nativeSrc": "3368:65:9",
"nodeType": "YulFunctionCall",
"src": "3368:65:9"
},
"nativeSrc": "3368:65:9",
"nodeType": "YulExpressionStatement",
"src": "3368:65:9"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nativeSrc": "3230:210:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3294:9:9",
"nodeType": "YulTypedName",
"src": "3294:9:9",
"type": ""
},
{
"name": "value0",
"nativeSrc": "3306:6:9",
"nodeType": "YulTypedName",
"src": "3306:6:9",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "3317:4:9",
"nodeType": "YulTypedName",
"src": "3317:4:9",
"type": ""
}
],
"src": "3230:210:9"
},
{
"body": {
"nativeSrc": "3511:53:9",
"nodeType": "YulBlock",
"src": "3511:53:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "3528:3:9",
"nodeType": "YulIdentifier",
"src": "3528:3:9"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "3551:5:9",
"nodeType": "YulIdentifier",
"src": "3551:5:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "3533:17:9",
"nodeType": "YulIdentifier",
"src": "3533:17:9"
},
"nativeSrc": "3533:24:9",
"nodeType": "YulFunctionCall",
"src": "3533:24:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "3521:6:9",
"nodeType": "YulIdentifier",
"src": "3521:6:9"
},
"nativeSrc": "3521:37:9",
"nodeType": "YulFunctionCall",
"src": "3521:37:9"
},
"nativeSrc": "3521:37:9",
"nodeType": "YulExpressionStatement",
"src": "3521:37:9"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "3446:118:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "3499:5:9",
"nodeType": "YulTypedName",
"src": "3499:5:9",
"type": ""
},
{
"name": "pos",
"nativeSrc": "3506:3:9",
"nodeType": "YulTypedName",
"src": "3506:3:9",
"type": ""
}
],
"src": "3446:118:9"
},
{
"body": {
"nativeSrc": "3668:124:9",
"nodeType": "YulBlock",
"src": "3668:124:9",
"statements": [
{
"nativeSrc": "3678:26:9",
"nodeType": "YulAssignment",
"src": "3678:26:9",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "3690:9:9",
"nodeType": "YulIdentifier",
"src": "3690:9:9"
},
{
"kind": "number",
"nativeSrc": "3701:2:9",
"nodeType": "YulLiteral",
"src": "3701:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3686:3:9",
"nodeType": "YulIdentifier",
"src": "3686:3:9"
},
"nativeSrc": "3686:18:9",
"nodeType": "YulFunctionCall",
"src": "3686:18:9"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "3678:4:9",
"nodeType": "YulIdentifier",
"src": "3678:4:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "3758:6:9",
"nodeType": "YulIdentifier",
"src": "3758:6:9"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "3771:9:9",
"nodeType": "YulIdentifier",
"src": "3771:9:9"
},
{
"kind": "number",
"nativeSrc": "3782:1:9",
"nodeType": "YulLiteral",
"src": "3782:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "3767:3:9",
"nodeType": "YulIdentifier",
"src": "3767:3:9"
},
"nativeSrc": "3767:17:9",
"nodeType": "YulFunctionCall",
"src": "3767:17:9"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "3714:43:9",
"nodeType": "YulIdentifier",
"src": "3714:43:9"
},
"nativeSrc": "3714:71:9",
"nodeType": "YulFunctionCall",
"src": "3714:71:9"
},
"nativeSrc": "3714:71:9",
"nodeType": "YulExpressionStatement",
"src": "3714:71:9"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "3570:222:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3640:9:9",
"nodeType": "YulTypedName",
"src": "3640:9:9",
"type": ""
},
{
"name": "value0",
"nativeSrc": "3652:6:9",
"nodeType": "YulTypedName",
"src": "3652:6:9",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "3663:4:9",
"nodeType": "YulTypedName",
"src": "3663:4:9",
"type": ""
}
],
"src": "3570:222:9"
},
{
"body": {
"nativeSrc": "3898:519:9",
"nodeType": "YulBlock",
"src": "3898:519:9",
"statements": [
{
"body": {
"nativeSrc": "3944:83:9",
"nodeType": "YulBlock",
"src": "3944:83:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "3946:77:9",
"nodeType": "YulIdentifier",
"src": "3946:77:9"
},
"nativeSrc": "3946:79:9",
"nodeType": "YulFunctionCall",
"src": "3946:79:9"
},
"nativeSrc": "3946:79:9",
"nodeType": "YulExpressionStatement",
"src": "3946:79:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "3919:7:9",
"nodeType": "YulIdentifier",
"src": "3919:7:9"
},
{
"name": "headStart",
"nativeSrc": "3928:9:9",
"nodeType": "YulIdentifier",
"src": "3928:9:9"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "3915:3:9",
"nodeType": "YulIdentifier",
"src": "3915:3:9"
},
"nativeSrc": "3915:23:9",
"nodeType": "YulFunctionCall",
"src": "3915:23:9"
},
{
"kind": "number",
"nativeSrc": "3940:2:9",
"nodeType": "YulLiteral",
"src": "3940:2:9",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "3911:3:9",
"nodeType": "YulIdentifier",
"src": "3911:3:9"
},
"nativeSrc": "3911:32:9",
"nodeType": "YulFunctionCall",
"src": "3911:32:9"
},
"nativeSrc": "3908:119:9",
"nodeType": "YulIf",
"src": "3908:119:9"
},
{
"nativeSrc": "4037:117:9",
"nodeType": "YulBlock",
"src": "4037:117:9",
"statements": [
{
"nativeSrc": "4052:15:9",
"nodeType": "YulVariableDeclaration",
"src": "4052:15:9",
"value": {
"kind": "number",
"nativeSrc": "4066:1:9",
"nodeType": "YulLiteral",
"src": "4066:1:9",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4056:6:9",
"nodeType": "YulTypedName",
"src": "4056:6:9",
"type": ""
}
]
},
{
"nativeSrc": "4081:63:9",
"nodeType": "YulAssignment",
"src": "4081:63:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4116:9:9",
"nodeType": "YulIdentifier",
"src": "4116:9:9"
},
{
"name": "offset",
"nativeSrc": "4127:6:9",
"nodeType": "YulIdentifier",
"src": "4127:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4112:3:9",
"nodeType": "YulIdentifier",
"src": "4112:3:9"
},
"nativeSrc": "4112:22:9",
"nodeType": "YulFunctionCall",
"src": "4112:22:9"
},
{
"name": "dataEnd",
"nativeSrc": "4136:7:9",
"nodeType": "YulIdentifier",
"src": "4136:7:9"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "4091:20:9",
"nodeType": "YulIdentifier",
"src": "4091:20:9"
},
"nativeSrc": "4091:53:9",
"nodeType": "YulFunctionCall",
"src": "4091:53:9"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "4081:6:9",
"nodeType": "YulIdentifier",
"src": "4081:6:9"
}
]
}
]
},
{
"nativeSrc": "4164:118:9",
"nodeType": "YulBlock",
"src": "4164:118:9",
"statements": [
{
"nativeSrc": "4179:16:9",
"nodeType": "YulVariableDeclaration",
"src": "4179:16:9",
"value": {
"kind": "number",
"nativeSrc": "4193:2:9",
"nodeType": "YulLiteral",
"src": "4193:2:9",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4183:6:9",
"nodeType": "YulTypedName",
"src": "4183:6:9",
"type": ""
}
]
},
{
"nativeSrc": "4209:63:9",
"nodeType": "YulAssignment",
"src": "4209:63:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4244:9:9",
"nodeType": "YulIdentifier",
"src": "4244:9:9"
},
{
"name": "offset",
"nativeSrc": "4255:6:9",
"nodeType": "YulIdentifier",
"src": "4255:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4240:3:9",
"nodeType": "YulIdentifier",
"src": "4240:3:9"
},
"nativeSrc": "4240:22:9",
"nodeType": "YulFunctionCall",
"src": "4240:22:9"
},
{
"name": "dataEnd",
"nativeSrc": "4264:7:9",
"nodeType": "YulIdentifier",
"src": "4264:7:9"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "4219:20:9",
"nodeType": "YulIdentifier",
"src": "4219:20:9"
},
"nativeSrc": "4219:53:9",
"nodeType": "YulFunctionCall",
"src": "4219:53:9"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "4209:6:9",
"nodeType": "YulIdentifier",
"src": "4209:6:9"
}
]
}
]
},
{
"nativeSrc": "4292:118:9",
"nodeType": "YulBlock",
"src": "4292:118:9",
"statements": [
{
"nativeSrc": "4307:16:9",
"nodeType": "YulVariableDeclaration",
"src": "4307:16:9",
"value": {
"kind": "number",
"nativeSrc": "4321:2:9",
"nodeType": "YulLiteral",
"src": "4321:2:9",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nativeSrc": "4311:6:9",
"nodeType": "YulTypedName",
"src": "4311:6:9",
"type": ""
}
]
},
{
"nativeSrc": "4337:63:9",
"nodeType": "YulAssignment",
"src": "4337:63:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4372:9:9",
"nodeType": "YulIdentifier",
"src": "4372:9:9"
},
{
"name": "offset",
"nativeSrc": "4383:6:9",
"nodeType": "YulIdentifier",
"src": "4383:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4368:3:9",
"nodeType": "YulIdentifier",
"src": "4368:3:9"
},
"nativeSrc": "4368:22:9",
"nodeType": "YulFunctionCall",
"src": "4368:22:9"
},
{
"name": "dataEnd",
"nativeSrc": "4392:7:9",
"nodeType": "YulIdentifier",
"src": "4392:7:9"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "4347:20:9",
"nodeType": "YulIdentifier",
"src": "4347:20:9"
},
"nativeSrc": "4347:53:9",
"nodeType": "YulFunctionCall",
"src": "4347:53:9"
},
"variableNames": [
{
"name": "value2",
"nativeSrc": "4337:6:9",
"nodeType": "YulIdentifier",
"src": "4337:6:9"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256",
"nativeSrc": "3798:619:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "3852:9:9",
"nodeType": "YulTypedName",
"src": "3852:9:9",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "3863:7:9",
"nodeType": "YulTypedName",
"src": "3863:7:9",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "3875:6:9",
"nodeType": "YulTypedName",
"src": "3875:6:9",
"type": ""
},
{
"name": "value1",
"nativeSrc": "3883:6:9",
"nodeType": "YulTypedName",
"src": "3883:6:9",
"type": ""
},
{
"name": "value2",
"nativeSrc": "3891:6:9",
"nodeType": "YulTypedName",
"src": "3891:6:9",
"type": ""
}
],
"src": "3798:619:9"
},
{
"body": {
"nativeSrc": "4466:43:9",
"nodeType": "YulBlock",
"src": "4466:43:9",
"statements": [
{
"nativeSrc": "4476:27:9",
"nodeType": "YulAssignment",
"src": "4476:27:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "4491:5:9",
"nodeType": "YulIdentifier",
"src": "4491:5:9"
},
{
"kind": "number",
"nativeSrc": "4498:4:9",
"nodeType": "YulLiteral",
"src": "4498:4:9",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "4487:3:9",
"nodeType": "YulIdentifier",
"src": "4487:3:9"
},
"nativeSrc": "4487:16:9",
"nodeType": "YulFunctionCall",
"src": "4487:16:9"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "4476:7:9",
"nodeType": "YulIdentifier",
"src": "4476:7:9"
}
]
}
]
},
"name": "cleanup_t_uint8",
"nativeSrc": "4423:86:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4448:5:9",
"nodeType": "YulTypedName",
"src": "4448:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "4458:7:9",
"nodeType": "YulTypedName",
"src": "4458:7:9",
"type": ""
}
],
"src": "4423:86:9"
},
{
"body": {
"nativeSrc": "4576:51:9",
"nodeType": "YulBlock",
"src": "4576:51:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "4593:3:9",
"nodeType": "YulIdentifier",
"src": "4593:3:9"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "4614:5:9",
"nodeType": "YulIdentifier",
"src": "4614:5:9"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nativeSrc": "4598:15:9",
"nodeType": "YulIdentifier",
"src": "4598:15:9"
},
"nativeSrc": "4598:22:9",
"nodeType": "YulFunctionCall",
"src": "4598:22:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "4586:6:9",
"nodeType": "YulIdentifier",
"src": "4586:6:9"
},
"nativeSrc": "4586:35:9",
"nodeType": "YulFunctionCall",
"src": "4586:35:9"
},
"nativeSrc": "4586:35:9",
"nodeType": "YulExpressionStatement",
"src": "4586:35:9"
}
]
},
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nativeSrc": "4515:112:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "4564:5:9",
"nodeType": "YulTypedName",
"src": "4564:5:9",
"type": ""
},
{
"name": "pos",
"nativeSrc": "4571:3:9",
"nodeType": "YulTypedName",
"src": "4571:3:9",
"type": ""
}
],
"src": "4515:112:9"
},
{
"body": {
"nativeSrc": "4727:120:9",
"nodeType": "YulBlock",
"src": "4727:120:9",
"statements": [
{
"nativeSrc": "4737:26:9",
"nodeType": "YulAssignment",
"src": "4737:26:9",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "4749:9:9",
"nodeType": "YulIdentifier",
"src": "4749:9:9"
},
{
"kind": "number",
"nativeSrc": "4760:2:9",
"nodeType": "YulLiteral",
"src": "4760:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4745:3:9",
"nodeType": "YulIdentifier",
"src": "4745:3:9"
},
"nativeSrc": "4745:18:9",
"nodeType": "YulFunctionCall",
"src": "4745:18:9"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "4737:4:9",
"nodeType": "YulIdentifier",
"src": "4737:4:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "4813:6:9",
"nodeType": "YulIdentifier",
"src": "4813:6:9"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "4826:9:9",
"nodeType": "YulIdentifier",
"src": "4826:9:9"
},
{
"kind": "number",
"nativeSrc": "4837:1:9",
"nodeType": "YulLiteral",
"src": "4837:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "4822:3:9",
"nodeType": "YulIdentifier",
"src": "4822:3:9"
},
"nativeSrc": "4822:17:9",
"nodeType": "YulFunctionCall",
"src": "4822:17:9"
}
],
"functionName": {
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nativeSrc": "4773:39:9",
"nodeType": "YulIdentifier",
"src": "4773:39:9"
},
"nativeSrc": "4773:67:9",
"nodeType": "YulFunctionCall",
"src": "4773:67:9"
},
"nativeSrc": "4773:67:9",
"nodeType": "YulExpressionStatement",
"src": "4773:67:9"
}
]
},
"name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
"nativeSrc": "4633:214:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "4699:9:9",
"nodeType": "YulTypedName",
"src": "4699:9:9",
"type": ""
},
{
"name": "value0",
"nativeSrc": "4711:6:9",
"nodeType": "YulTypedName",
"src": "4711:6:9",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "4722:4:9",
"nodeType": "YulTypedName",
"src": "4722:4:9",
"type": ""
}
],
"src": "4633:214:9"
},
{
"body": {
"nativeSrc": "4919:263:9",
"nodeType": "YulBlock",
"src": "4919:263:9",
"statements": [
{
"body": {
"nativeSrc": "4965:83:9",
"nodeType": "YulBlock",
"src": "4965:83:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "4967:77:9",
"nodeType": "YulIdentifier",
"src": "4967:77:9"
},
"nativeSrc": "4967:79:9",
"nodeType": "YulFunctionCall",
"src": "4967:79:9"
},
"nativeSrc": "4967:79:9",
"nodeType": "YulExpressionStatement",
"src": "4967:79:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "4940:7:9",
"nodeType": "YulIdentifier",
"src": "4940:7:9"
},
{
"name": "headStart",
"nativeSrc": "4949:9:9",
"nodeType": "YulIdentifier",
"src": "4949:9:9"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "4936:3:9",
"nodeType": "YulIdentifier",
"src": "4936:3:9"
},
"nativeSrc": "4936:23:9",
"nodeType": "YulFunctionCall",
"src": "4936:23:9"
},
{
"kind": "number",
"nativeSrc": "4961:2:9",
"nodeType": "YulLiteral",
"src": "4961:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "4932:3:9",
"nodeType": "YulIdentifier",
"src": "4932:3:9"
},
"nativeSrc": "4932:32:9",
"nodeType": "YulFunctionCall",
"src": "4932:32:9"
},
"nativeSrc": "4929:119:9",
"nodeType": "YulIf",
"src": "4929:119:9"
},
{
"nativeSrc": "5058:117:9",
"nodeType": "YulBlock",
"src": "5058:117:9",
"statements": [
{
"nativeSrc": "5073:15:9",
"nodeType": "YulVariableDeclaration",
"src": "5073:15:9",
"value": {
"kind": "number",
"nativeSrc": "5087:1:9",
"nodeType": "YulLiteral",
"src": "5087:1:9",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "5077:6:9",
"nodeType": "YulTypedName",
"src": "5077:6:9",
"type": ""
}
]
},
{
"nativeSrc": "5102:63:9",
"nodeType": "YulAssignment",
"src": "5102:63:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5137:9:9",
"nodeType": "YulIdentifier",
"src": "5137:9:9"
},
{
"name": "offset",
"nativeSrc": "5148:6:9",
"nodeType": "YulIdentifier",
"src": "5148:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5133:3:9",
"nodeType": "YulIdentifier",
"src": "5133:3:9"
},
"nativeSrc": "5133:22:9",
"nodeType": "YulFunctionCall",
"src": "5133:22:9"
},
{
"name": "dataEnd",
"nativeSrc": "5157:7:9",
"nodeType": "YulIdentifier",
"src": "5157:7:9"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "5112:20:9",
"nodeType": "YulIdentifier",
"src": "5112:20:9"
},
"nativeSrc": "5112:53:9",
"nodeType": "YulFunctionCall",
"src": "5112:53:9"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "5102:6:9",
"nodeType": "YulIdentifier",
"src": "5102:6:9"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nativeSrc": "4853:329:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "4889:9:9",
"nodeType": "YulTypedName",
"src": "4889:9:9",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "4900:7:9",
"nodeType": "YulTypedName",
"src": "4900:7:9",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "4912:6:9",
"nodeType": "YulTypedName",
"src": "4912:6:9",
"type": ""
}
],
"src": "4853:329:9"
},
{
"body": {
"nativeSrc": "5229:77:9",
"nodeType": "YulBlock",
"src": "5229:77:9",
"statements": [
{
"body": {
"nativeSrc": "5284:16:9",
"nodeType": "YulBlock",
"src": "5284:16:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "5293:1:9",
"nodeType": "YulLiteral",
"src": "5293:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "5296:1:9",
"nodeType": "YulLiteral",
"src": "5296:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "5286:6:9",
"nodeType": "YulIdentifier",
"src": "5286:6:9"
},
"nativeSrc": "5286:12:9",
"nodeType": "YulFunctionCall",
"src": "5286:12:9"
},
"nativeSrc": "5286:12:9",
"nodeType": "YulExpressionStatement",
"src": "5286:12:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "5252:5:9",
"nodeType": "YulIdentifier",
"src": "5252:5:9"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "5275:5:9",
"nodeType": "YulIdentifier",
"src": "5275:5:9"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nativeSrc": "5259:15:9",
"nodeType": "YulIdentifier",
"src": "5259:15:9"
},
"nativeSrc": "5259:22:9",
"nodeType": "YulFunctionCall",
"src": "5259:22:9"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "5249:2:9",
"nodeType": "YulIdentifier",
"src": "5249:2:9"
},
"nativeSrc": "5249:33:9",
"nodeType": "YulFunctionCall",
"src": "5249:33:9"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "5242:6:9",
"nodeType": "YulIdentifier",
"src": "5242:6:9"
},
"nativeSrc": "5242:41:9",
"nodeType": "YulFunctionCall",
"src": "5242:41:9"
},
"nativeSrc": "5239:61:9",
"nodeType": "YulIf",
"src": "5239:61:9"
}
]
},
"name": "validator_revert_t_uint8",
"nativeSrc": "5188:118:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "5222:5:9",
"nodeType": "YulTypedName",
"src": "5222:5:9",
"type": ""
}
],
"src": "5188:118:9"
},
{
"body": {
"nativeSrc": "5362:85:9",
"nodeType": "YulBlock",
"src": "5362:85:9",
"statements": [
{
"nativeSrc": "5372:29:9",
"nodeType": "YulAssignment",
"src": "5372:29:9",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "5394:6:9",
"nodeType": "YulIdentifier",
"src": "5394:6:9"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "5381:12:9",
"nodeType": "YulIdentifier",
"src": "5381:12:9"
},
"nativeSrc": "5381:20:9",
"nodeType": "YulFunctionCall",
"src": "5381:20:9"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "5372:5:9",
"nodeType": "YulIdentifier",
"src": "5372:5:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "5435:5:9",
"nodeType": "YulIdentifier",
"src": "5435:5:9"
}
],
"functionName": {
"name": "validator_revert_t_uint8",
"nativeSrc": "5410:24:9",
"nodeType": "YulIdentifier",
"src": "5410:24:9"
},
"nativeSrc": "5410:31:9",
"nodeType": "YulFunctionCall",
"src": "5410:31:9"
},
"nativeSrc": "5410:31:9",
"nodeType": "YulExpressionStatement",
"src": "5410:31:9"
}
]
},
"name": "abi_decode_t_uint8",
"nativeSrc": "5312:135:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "5340:6:9",
"nodeType": "YulTypedName",
"src": "5340:6:9",
"type": ""
},
{
"name": "end",
"nativeSrc": "5348:3:9",
"nodeType": "YulTypedName",
"src": "5348:3:9",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "5356:5:9",
"nodeType": "YulTypedName",
"src": "5356:5:9",
"type": ""
}
],
"src": "5312:135:9"
},
{
"body": {
"nativeSrc": "5534:389:9",
"nodeType": "YulBlock",
"src": "5534:389:9",
"statements": [
{
"body": {
"nativeSrc": "5580:83:9",
"nodeType": "YulBlock",
"src": "5580:83:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "5582:77:9",
"nodeType": "YulIdentifier",
"src": "5582:77:9"
},
"nativeSrc": "5582:79:9",
"nodeType": "YulFunctionCall",
"src": "5582:79:9"
},
"nativeSrc": "5582:79:9",
"nodeType": "YulExpressionStatement",
"src": "5582:79:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "5555:7:9",
"nodeType": "YulIdentifier",
"src": "5555:7:9"
},
{
"name": "headStart",
"nativeSrc": "5564:9:9",
"nodeType": "YulIdentifier",
"src": "5564:9:9"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "5551:3:9",
"nodeType": "YulIdentifier",
"src": "5551:3:9"
},
"nativeSrc": "5551:23:9",
"nodeType": "YulFunctionCall",
"src": "5551:23:9"
},
{
"kind": "number",
"nativeSrc": "5576:2:9",
"nodeType": "YulLiteral",
"src": "5576:2:9",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "5547:3:9",
"nodeType": "YulIdentifier",
"src": "5547:3:9"
},
"nativeSrc": "5547:32:9",
"nodeType": "YulFunctionCall",
"src": "5547:32:9"
},
"nativeSrc": "5544:119:9",
"nodeType": "YulIf",
"src": "5544:119:9"
},
{
"nativeSrc": "5673:117:9",
"nodeType": "YulBlock",
"src": "5673:117:9",
"statements": [
{
"nativeSrc": "5688:15:9",
"nodeType": "YulVariableDeclaration",
"src": "5688:15:9",
"value": {
"kind": "number",
"nativeSrc": "5702:1:9",
"nodeType": "YulLiteral",
"src": "5702:1:9",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "5692:6:9",
"nodeType": "YulTypedName",
"src": "5692:6:9",
"type": ""
}
]
},
{
"nativeSrc": "5717:63:9",
"nodeType": "YulAssignment",
"src": "5717:63:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5752:9:9",
"nodeType": "YulIdentifier",
"src": "5752:9:9"
},
{
"name": "offset",
"nativeSrc": "5763:6:9",
"nodeType": "YulIdentifier",
"src": "5763:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5748:3:9",
"nodeType": "YulIdentifier",
"src": "5748:3:9"
},
"nativeSrc": "5748:22:9",
"nodeType": "YulFunctionCall",
"src": "5748:22:9"
},
{
"name": "dataEnd",
"nativeSrc": "5772:7:9",
"nodeType": "YulIdentifier",
"src": "5772:7:9"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "5727:20:9",
"nodeType": "YulIdentifier",
"src": "5727:20:9"
},
"nativeSrc": "5727:53:9",
"nodeType": "YulFunctionCall",
"src": "5727:53:9"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "5717:6:9",
"nodeType": "YulIdentifier",
"src": "5717:6:9"
}
]
}
]
},
{
"nativeSrc": "5800:116:9",
"nodeType": "YulBlock",
"src": "5800:116:9",
"statements": [
{
"nativeSrc": "5815:16:9",
"nodeType": "YulVariableDeclaration",
"src": "5815:16:9",
"value": {
"kind": "number",
"nativeSrc": "5829:2:9",
"nodeType": "YulLiteral",
"src": "5829:2:9",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "5819:6:9",
"nodeType": "YulTypedName",
"src": "5819:6:9",
"type": ""
}
]
},
{
"nativeSrc": "5845:61:9",
"nodeType": "YulAssignment",
"src": "5845:61:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "5878:9:9",
"nodeType": "YulIdentifier",
"src": "5878:9:9"
},
{
"name": "offset",
"nativeSrc": "5889:6:9",
"nodeType": "YulIdentifier",
"src": "5889:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "5874:3:9",
"nodeType": "YulIdentifier",
"src": "5874:3:9"
},
"nativeSrc": "5874:22:9",
"nodeType": "YulFunctionCall",
"src": "5874:22:9"
},
{
"name": "dataEnd",
"nativeSrc": "5898:7:9",
"nodeType": "YulIdentifier",
"src": "5898:7:9"
}
],
"functionName": {
"name": "abi_decode_t_uint8",
"nativeSrc": "5855:18:9",
"nodeType": "YulIdentifier",
"src": "5855:18:9"
},
"nativeSrc": "5855:51:9",
"nodeType": "YulFunctionCall",
"src": "5855:51:9"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "5845:6:9",
"nodeType": "YulIdentifier",
"src": "5845:6:9"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint8",
"nativeSrc": "5453:470:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "5496:9:9",
"nodeType": "YulTypedName",
"src": "5496:9:9",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "5507:7:9",
"nodeType": "YulTypedName",
"src": "5507:7:9",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "5519:6:9",
"nodeType": "YulTypedName",
"src": "5519:6:9",
"type": ""
},
{
"name": "value1",
"nativeSrc": "5527:6:9",
"nodeType": "YulTypedName",
"src": "5527:6:9",
"type": ""
}
],
"src": "5453:470:9"
},
{
"body": {
"nativeSrc": "6012:391:9",
"nodeType": "YulBlock",
"src": "6012:391:9",
"statements": [
{
"body": {
"nativeSrc": "6058:83:9",
"nodeType": "YulBlock",
"src": "6058:83:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "6060:77:9",
"nodeType": "YulIdentifier",
"src": "6060:77:9"
},
"nativeSrc": "6060:79:9",
"nodeType": "YulFunctionCall",
"src": "6060:79:9"
},
"nativeSrc": "6060:79:9",
"nodeType": "YulExpressionStatement",
"src": "6060:79:9"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "6033:7:9",
"nodeType": "YulIdentifier",
"src": "6033:7:9"
},
{
"name": "headStart",
"nativeSrc": "6042:9:9",
"nodeType": "YulIdentifier",
"src": "6042:9:9"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "6029:3:9",
"nodeType": "YulIdentifier",
"src": "6029:3:9"
},
"nativeSrc": "6029:23:9",
"nodeType": "YulFunctionCall",
"src": "6029:23:9"
},
{
"kind": "number",
"nativeSrc": "6054:2:9",
"nodeType": "YulLiteral",
"src": "6054:2:9",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "6025:3:9",
"nodeType": "YulIdentifier",
"src": "6025:3:9"
},
"nativeSrc": "6025:32:9",
"nodeType": "YulFunctionCall",
"src": "6025:32:9"
},
"nativeSrc": "6022:119:9",
"nodeType": "YulIf",
"src": "6022:119:9"
},
{
"nativeSrc": "6151:117:9",
"nodeType": "YulBlock",
"src": "6151:117:9",
"statements": [
{
"nativeSrc": "6166:15:9",
"nodeType": "YulVariableDeclaration",
"src": "6166:15:9",
"value": {
"kind": "number",
"nativeSrc": "6180:1:9",
"nodeType": "YulLiteral",
"src": "6180:1:9",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "6170:6:9",
"nodeType": "YulTypedName",
"src": "6170:6:9",
"type": ""
}
]
},
{
"nativeSrc": "6195:63:9",
"nodeType": "YulAssignment",
"src": "6195:63:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6230:9:9",
"nodeType": "YulIdentifier",
"src": "6230:9:9"
},
{
"name": "offset",
"nativeSrc": "6241:6:9",
"nodeType": "YulIdentifier",
"src": "6241:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6226:3:9",
"nodeType": "YulIdentifier",
"src": "6226:3:9"
},
"nativeSrc": "6226:22:9",
"nodeType": "YulFunctionCall",
"src": "6226:22:9"
},
{
"name": "dataEnd",
"nativeSrc": "6250:7:9",
"nodeType": "YulIdentifier",
"src": "6250:7:9"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "6205:20:9",
"nodeType": "YulIdentifier",
"src": "6205:20:9"
},
"nativeSrc": "6205:53:9",
"nodeType": "YulFunctionCall",
"src": "6205:53:9"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "6195:6:9",
"nodeType": "YulIdentifier",
"src": "6195:6:9"
}
]
}
]
},
{
"nativeSrc": "6278:118:9",
"nodeType": "YulBlock",
"src": "6278:118:9",
"statements": [
{
"nativeSrc": "6293:16:9",
"nodeType": "YulVariableDeclaration",
"src": "6293:16:9",
"value": {
"kind": "number",
"nativeSrc": "6307:2:9",
"nodeType": "YulLiteral",
"src": "6307:2:9",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "6297:6:9",
"nodeType": "YulTypedName",
"src": "6297:6:9",
"type": ""
}
]
},
{
"nativeSrc": "6323:63:9",
"nodeType": "YulAssignment",
"src": "6323:63:9",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "6358:9:9",
"nodeType": "YulIdentifier",
"src": "6358:9:9"
},
{
"name": "offset",
"nativeSrc": "6369:6:9",
"nodeType": "YulIdentifier",
"src": "6369:6:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "6354:3:9",
"nodeType": "YulIdentifier",
"src": "6354:3:9"
},
"nativeSrc": "6354:22:9",
"nodeType": "YulFunctionCall",
"src": "6354:22:9"
},
{
"name": "dataEnd",
"nativeSrc": "6378:7:9",
"nodeType": "YulIdentifier",
"src": "6378:7:9"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "6333:20:9",
"nodeType": "YulIdentifier",
"src": "6333:20:9"
},
"nativeSrc": "6333:53:9",
"nodeType": "YulFunctionCall",
"src": "6333:53:9"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "6323:6:9",
"nodeType": "YulIdentifier",
"src": "6323:6:9"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address",
"nativeSrc": "5929:474:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "5974:9:9",
"nodeType": "YulTypedName",
"src": "5974:9:9",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "5985:7:9",
"nodeType": "YulTypedName",
"src": "5985:7:9",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "5997:6:9",
"nodeType": "YulTypedName",
"src": "5997:6:9",
"type": ""
},
{
"name": "value1",
"nativeSrc": "6005:6:9",
"nodeType": "YulTypedName",
"src": "6005:6:9",
"type": ""
}
],
"src": "5929:474:9"
},
{
"body": {
"nativeSrc": "6437:152:9",
"nodeType": "YulBlock",
"src": "6437:152:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "6454:1:9",
"nodeType": "YulLiteral",
"src": "6454:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "6457:77:9",
"nodeType": "YulLiteral",
"src": "6457:77:9",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "6447:6:9",
"nodeType": "YulIdentifier",
"src": "6447:6:9"
},
"nativeSrc": "6447:88:9",
"nodeType": "YulFunctionCall",
"src": "6447:88:9"
},
"nativeSrc": "6447:88:9",
"nodeType": "YulExpressionStatement",
"src": "6447:88:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "6551:1:9",
"nodeType": "YulLiteral",
"src": "6551:1:9",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "6554:4:9",
"nodeType": "YulLiteral",
"src": "6554:4:9",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "6544:6:9",
"nodeType": "YulIdentifier",
"src": "6544:6:9"
},
"nativeSrc": "6544:15:9",
"nodeType": "YulFunctionCall",
"src": "6544:15:9"
},
"nativeSrc": "6544:15:9",
"nodeType": "YulExpressionStatement",
"src": "6544:15:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "6575:1:9",
"nodeType": "YulLiteral",
"src": "6575:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "6578:4:9",
"nodeType": "YulLiteral",
"src": "6578:4:9",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "6568:6:9",
"nodeType": "YulIdentifier",
"src": "6568:6:9"
},
"nativeSrc": "6568:15:9",
"nodeType": "YulFunctionCall",
"src": "6568:15:9"
},
"nativeSrc": "6568:15:9",
"nodeType": "YulExpressionStatement",
"src": "6568:15:9"
}
]
},
"name": "panic_error_0x22",
"nativeSrc": "6409:180:9",
"nodeType": "YulFunctionDefinition",
"src": "6409:180:9"
},
{
"body": {
"nativeSrc": "6646:269:9",
"nodeType": "YulBlock",
"src": "6646:269:9",
"statements": [
{
"nativeSrc": "6656:22:9",
"nodeType": "YulAssignment",
"src": "6656:22:9",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "6670:4:9",
"nodeType": "YulIdentifier",
"src": "6670:4:9"
},
{
"kind": "number",
"nativeSrc": "6676:1:9",
"nodeType": "YulLiteral",
"src": "6676:1:9",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nativeSrc": "6666:3:9",
"nodeType": "YulIdentifier",
"src": "6666:3:9"
},
"nativeSrc": "6666:12:9",
"nodeType": "YulFunctionCall",
"src": "6666:12:9"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "6656:6:9",
"nodeType": "YulIdentifier",
"src": "6656:6:9"
}
]
},
{
"nativeSrc": "6687:38:9",
"nodeType": "YulVariableDeclaration",
"src": "6687:38:9",
"value": {
"arguments": [
{
"name": "data",
"nativeSrc": "6717:4:9",
"nodeType": "YulIdentifier",
"src": "6717:4:9"
},
{
"kind": "number",
"nativeSrc": "6723:1:9",
"nodeType": "YulLiteral",
"src": "6723:1:9",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nativeSrc": "6713:3:9",
"nodeType": "YulIdentifier",
"src": "6713:3:9"
},
"nativeSrc": "6713:12:9",
"nodeType": "YulFunctionCall",
"src": "6713:12:9"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "6691:18:9",
"nodeType": "YulTypedName",
"src": "6691:18:9",
"type": ""
}
]
},
{
"body": {
"nativeSrc": "6764:51:9",
"nodeType": "YulBlock",
"src": "6764:51:9",
"statements": [
{
"nativeSrc": "6778:27:9",
"nodeType": "YulAssignment",
"src": "6778:27:9",
"value": {
"arguments": [
{
"name": "length",
"nativeSrc": "6792:6:9",
"nodeType": "YulIdentifier",
"src": "6792:6:9"
},
{
"kind": "number",
"nativeSrc": "6800:4:9",
"nodeType": "YulLiteral",
"src": "6800:4:9",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nativeSrc": "6788:3:9",
"nodeType": "YulIdentifier",
"src": "6788:3:9"
},
"nativeSrc": "6788:17:9",
"nodeType": "YulFunctionCall",
"src": "6788:17:9"
},
"variableNames": [
{
"name": "length",
"nativeSrc": "6778:6:9",
"nodeType": "YulIdentifier",
"src": "6778:6:9"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "6744:18:9",
"nodeType": "YulIdentifier",
"src": "6744:18:9"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "6737:6:9",
"nodeType": "YulIdentifier",
"src": "6737:6:9"
},
"nativeSrc": "6737:26:9",
"nodeType": "YulFunctionCall",
"src": "6737:26:9"
},
"nativeSrc": "6734:81:9",
"nodeType": "YulIf",
"src": "6734:81:9"
},
{
"body": {
"nativeSrc": "6867:42:9",
"nodeType": "YulBlock",
"src": "6867:42:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nativeSrc": "6881:16:9",
"nodeType": "YulIdentifier",
"src": "6881:16:9"
},
"nativeSrc": "6881:18:9",
"nodeType": "YulFunctionCall",
"src": "6881:18:9"
},
"nativeSrc": "6881:18:9",
"nodeType": "YulExpressionStatement",
"src": "6881:18:9"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nativeSrc": "6831:18:9",
"nodeType": "YulIdentifier",
"src": "6831:18:9"
},
{
"arguments": [
{
"name": "length",
"nativeSrc": "6854:6:9",
"nodeType": "YulIdentifier",
"src": "6854:6:9"
},
{
"kind": "number",
"nativeSrc": "6862:2:9",
"nodeType": "YulLiteral",
"src": "6862:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nativeSrc": "6851:2:9",
"nodeType": "YulIdentifier",
"src": "6851:2:9"
},
"nativeSrc": "6851:14:9",
"nodeType": "YulFunctionCall",
"src": "6851:14:9"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "6828:2:9",
"nodeType": "YulIdentifier",
"src": "6828:2:9"
},
"nativeSrc": "6828:38:9",
"nodeType": "YulFunctionCall",
"src": "6828:38:9"
},
"nativeSrc": "6825:84:9",
"nodeType": "YulIf",
"src": "6825:84:9"
}
]
},
"name": "extract_byte_array_length",
"nativeSrc": "6595:320:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nativeSrc": "6630:4:9",
"nodeType": "YulTypedName",
"src": "6630:4:9",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nativeSrc": "6639:6:9",
"nodeType": "YulTypedName",
"src": "6639:6:9",
"type": ""
}
],
"src": "6595:320:9"
},
{
"body": {
"nativeSrc": "6949:152:9",
"nodeType": "YulBlock",
"src": "6949:152:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "6966:1:9",
"nodeType": "YulLiteral",
"src": "6966:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "6969:77:9",
"nodeType": "YulLiteral",
"src": "6969:77:9",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "6959:6:9",
"nodeType": "YulIdentifier",
"src": "6959:6:9"
},
"nativeSrc": "6959:88:9",
"nodeType": "YulFunctionCall",
"src": "6959:88:9"
},
"nativeSrc": "6959:88:9",
"nodeType": "YulExpressionStatement",
"src": "6959:88:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7063:1:9",
"nodeType": "YulLiteral",
"src": "7063:1:9",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "7066:4:9",
"nodeType": "YulLiteral",
"src": "7066:4:9",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "7056:6:9",
"nodeType": "YulIdentifier",
"src": "7056:6:9"
},
"nativeSrc": "7056:15:9",
"nodeType": "YulFunctionCall",
"src": "7056:15:9"
},
"nativeSrc": "7056:15:9",
"nodeType": "YulExpressionStatement",
"src": "7056:15:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7087:1:9",
"nodeType": "YulLiteral",
"src": "7087:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "7090:4:9",
"nodeType": "YulLiteral",
"src": "7090:4:9",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "7080:6:9",
"nodeType": "YulIdentifier",
"src": "7080:6:9"
},
"nativeSrc": "7080:15:9",
"nodeType": "YulFunctionCall",
"src": "7080:15:9"
},
"nativeSrc": "7080:15:9",
"nodeType": "YulExpressionStatement",
"src": "7080:15:9"
}
]
},
"name": "panic_error_0x11",
"nativeSrc": "6921:180:9",
"nodeType": "YulFunctionDefinition",
"src": "6921:180:9"
},
{
"body": {
"nativeSrc": "7152:149:9",
"nodeType": "YulBlock",
"src": "7152:149:9",
"statements": [
{
"nativeSrc": "7162:25:9",
"nodeType": "YulAssignment",
"src": "7162:25:9",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "7185:1:9",
"nodeType": "YulIdentifier",
"src": "7185:1:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7167:17:9",
"nodeType": "YulIdentifier",
"src": "7167:17:9"
},
"nativeSrc": "7167:20:9",
"nodeType": "YulFunctionCall",
"src": "7167:20:9"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "7162:1:9",
"nodeType": "YulIdentifier",
"src": "7162:1:9"
}
]
},
{
"nativeSrc": "7196:25:9",
"nodeType": "YulAssignment",
"src": "7196:25:9",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "7219:1:9",
"nodeType": "YulIdentifier",
"src": "7219:1:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7201:17:9",
"nodeType": "YulIdentifier",
"src": "7201:17:9"
},
"nativeSrc": "7201:20:9",
"nodeType": "YulFunctionCall",
"src": "7201:20:9"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "7196:1:9",
"nodeType": "YulIdentifier",
"src": "7196:1:9"
}
]
},
{
"nativeSrc": "7230:17:9",
"nodeType": "YulAssignment",
"src": "7230:17:9",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "7242:1:9",
"nodeType": "YulIdentifier",
"src": "7242:1:9"
},
{
"name": "y",
"nativeSrc": "7245:1:9",
"nodeType": "YulIdentifier",
"src": "7245:1:9"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "7238:3:9",
"nodeType": "YulIdentifier",
"src": "7238:3:9"
},
"nativeSrc": "7238:9:9",
"nodeType": "YulFunctionCall",
"src": "7238:9:9"
},
"variableNames": [
{
"name": "diff",
"nativeSrc": "7230:4:9",
"nodeType": "YulIdentifier",
"src": "7230:4:9"
}
]
},
{
"body": {
"nativeSrc": "7272:22:9",
"nodeType": "YulBlock",
"src": "7272:22:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "7274:16:9",
"nodeType": "YulIdentifier",
"src": "7274:16:9"
},
"nativeSrc": "7274:18:9",
"nodeType": "YulFunctionCall",
"src": "7274:18:9"
},
"nativeSrc": "7274:18:9",
"nodeType": "YulExpressionStatement",
"src": "7274:18:9"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nativeSrc": "7263:4:9",
"nodeType": "YulIdentifier",
"src": "7263:4:9"
},
{
"name": "x",
"nativeSrc": "7269:1:9",
"nodeType": "YulIdentifier",
"src": "7269:1:9"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "7260:2:9",
"nodeType": "YulIdentifier",
"src": "7260:2:9"
},
"nativeSrc": "7260:11:9",
"nodeType": "YulFunctionCall",
"src": "7260:11:9"
},
"nativeSrc": "7257:37:9",
"nodeType": "YulIf",
"src": "7257:37:9"
}
]
},
"name": "checked_sub_t_uint256",
"nativeSrc": "7107:194:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "7138:1:9",
"nodeType": "YulTypedName",
"src": "7138:1:9",
"type": ""
},
{
"name": "y",
"nativeSrc": "7141:1:9",
"nodeType": "YulTypedName",
"src": "7141:1:9",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nativeSrc": "7147:4:9",
"nodeType": "YulTypedName",
"src": "7147:4:9",
"type": ""
}
],
"src": "7107:194:9"
},
{
"body": {
"nativeSrc": "7351:147:9",
"nodeType": "YulBlock",
"src": "7351:147:9",
"statements": [
{
"nativeSrc": "7361:25:9",
"nodeType": "YulAssignment",
"src": "7361:25:9",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "7384:1:9",
"nodeType": "YulIdentifier",
"src": "7384:1:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7366:17:9",
"nodeType": "YulIdentifier",
"src": "7366:17:9"
},
"nativeSrc": "7366:20:9",
"nodeType": "YulFunctionCall",
"src": "7366:20:9"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "7361:1:9",
"nodeType": "YulIdentifier",
"src": "7361:1:9"
}
]
},
{
"nativeSrc": "7395:25:9",
"nodeType": "YulAssignment",
"src": "7395:25:9",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "7418:1:9",
"nodeType": "YulIdentifier",
"src": "7418:1:9"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "7400:17:9",
"nodeType": "YulIdentifier",
"src": "7400:17:9"
},
"nativeSrc": "7400:20:9",
"nodeType": "YulFunctionCall",
"src": "7400:20:9"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "7395:1:9",
"nodeType": "YulIdentifier",
"src": "7395:1:9"
}
]
},
{
"nativeSrc": "7429:16:9",
"nodeType": "YulAssignment",
"src": "7429:16:9",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "7440:1:9",
"nodeType": "YulIdentifier",
"src": "7440:1:9"
},
{
"name": "y",
"nativeSrc": "7443:1:9",
"nodeType": "YulIdentifier",
"src": "7443:1:9"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7436:3:9",
"nodeType": "YulIdentifier",
"src": "7436:3:9"
},
"nativeSrc": "7436:9:9",
"nodeType": "YulFunctionCall",
"src": "7436:9:9"
},
"variableNames": [
{
"name": "sum",
"nativeSrc": "7429:3:9",
"nodeType": "YulIdentifier",
"src": "7429:3:9"
}
]
},
{
"body": {
"nativeSrc": "7469:22:9",
"nodeType": "YulBlock",
"src": "7469:22:9",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "7471:16:9",
"nodeType": "YulIdentifier",
"src": "7471:16:9"
},
"nativeSrc": "7471:18:9",
"nodeType": "YulFunctionCall",
"src": "7471:18:9"
},
"nativeSrc": "7471:18:9",
"nodeType": "YulExpressionStatement",
"src": "7471:18:9"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nativeSrc": "7461:1:9",
"nodeType": "YulIdentifier",
"src": "7461:1:9"
},
{
"name": "sum",
"nativeSrc": "7464:3:9",
"nodeType": "YulIdentifier",
"src": "7464:3:9"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "7458:2:9",
"nodeType": "YulIdentifier",
"src": "7458:2:9"
},
"nativeSrc": "7458:10:9",
"nodeType": "YulFunctionCall",
"src": "7458:10:9"
},
"nativeSrc": "7455:36:9",
"nodeType": "YulIf",
"src": "7455:36:9"
}
]
},
"name": "checked_add_t_uint256",
"nativeSrc": "7307:191:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "7338:1:9",
"nodeType": "YulTypedName",
"src": "7338:1:9",
"type": ""
},
{
"name": "y",
"nativeSrc": "7341:1:9",
"nodeType": "YulTypedName",
"src": "7341:1:9",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nativeSrc": "7347:3:9",
"nodeType": "YulTypedName",
"src": "7347:3:9",
"type": ""
}
],
"src": "7307:191:9"
},
{
"body": {
"nativeSrc": "7532:152:9",
"nodeType": "YulBlock",
"src": "7532:152:9",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7549:1:9",
"nodeType": "YulLiteral",
"src": "7549:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "7552:77:9",
"nodeType": "YulLiteral",
"src": "7552:77:9",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "7542:6:9",
"nodeType": "YulIdentifier",
"src": "7542:6:9"
},
"nativeSrc": "7542:88:9",
"nodeType": "YulFunctionCall",
"src": "7542:88:9"
},
"nativeSrc": "7542:88:9",
"nodeType": "YulExpressionStatement",
"src": "7542:88:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7646:1:9",
"nodeType": "YulLiteral",
"src": "7646:1:9",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "7649:4:9",
"nodeType": "YulLiteral",
"src": "7649:4:9",
"type": "",
"value": "0x21"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "7639:6:9",
"nodeType": "YulIdentifier",
"src": "7639:6:9"
},
"nativeSrc": "7639:15:9",
"nodeType": "YulFunctionCall",
"src": "7639:15:9"
},
"nativeSrc": "7639:15:9",
"nodeType": "YulExpressionStatement",
"src": "7639:15:9"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "7670:1:9",
"nodeType": "YulLiteral",
"src": "7670:1:9",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "7673:4:9",
"nodeType": "YulLiteral",
"src": "7673:4:9",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "7663:6:9",
"nodeType": "YulIdentifier",
"src": "7663:6:9"
},
"nativeSrc": "7663:15:9",
"nodeType": "YulFunctionCall",
"src": "7663:15:9"
},
"nativeSrc": "7663:15:9",
"nodeType": "YulExpressionStatement",
"src": "7663:15:9"
}
]
},
"name": "panic_error_0x21",
"nativeSrc": "7504:180:9",
"nodeType": "YulFunctionDefinition",
"src": "7504:180:9"
},
{
"body": {
"nativeSrc": "7755:53:9",
"nodeType": "YulBlock",
"src": "7755:53:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "7772:3:9",
"nodeType": "YulIdentifier",
"src": "7772:3:9"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "7795:5:9",
"nodeType": "YulIdentifier",
"src": "7795:5:9"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "7777:17:9",
"nodeType": "YulIdentifier",
"src": "7777:17:9"
},
"nativeSrc": "7777:24:9",
"nodeType": "YulFunctionCall",
"src": "7777:24:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "7765:6:9",
"nodeType": "YulIdentifier",
"src": "7765:6:9"
},
"nativeSrc": "7765:37:9",
"nodeType": "YulFunctionCall",
"src": "7765:37:9"
},
"nativeSrc": "7765:37:9",
"nodeType": "YulExpressionStatement",
"src": "7765:37:9"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "7690:118:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "7743:5:9",
"nodeType": "YulTypedName",
"src": "7743:5:9",
"type": ""
},
{
"name": "pos",
"nativeSrc": "7750:3:9",
"nodeType": "YulTypedName",
"src": "7750:3:9",
"type": ""
}
],
"src": "7690:118:9"
},
{
"body": {
"nativeSrc": "7936:202:9",
"nodeType": "YulBlock",
"src": "7936:202:9",
"statements": [
{
"nativeSrc": "7946:26:9",
"nodeType": "YulAssignment",
"src": "7946:26:9",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "7958:9:9",
"nodeType": "YulIdentifier",
"src": "7958:9:9"
},
{
"kind": "number",
"nativeSrc": "7969:2:9",
"nodeType": "YulLiteral",
"src": "7969:2:9",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "7954:3:9",
"nodeType": "YulIdentifier",
"src": "7954:3:9"
},
"nativeSrc": "7954:18:9",
"nodeType": "YulFunctionCall",
"src": "7954:18:9"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "7946:4:9",
"nodeType": "YulIdentifier",
"src": "7946:4:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "8026:6:9",
"nodeType": "YulIdentifier",
"src": "8026:6:9"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "8039:9:9",
"nodeType": "YulIdentifier",
"src": "8039:9:9"
},
{
"kind": "number",
"nativeSrc": "8050:1:9",
"nodeType": "YulLiteral",
"src": "8050:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8035:3:9",
"nodeType": "YulIdentifier",
"src": "8035:3:9"
},
"nativeSrc": "8035:17:9",
"nodeType": "YulFunctionCall",
"src": "8035:17:9"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "7982:43:9",
"nodeType": "YulIdentifier",
"src": "7982:43:9"
},
"nativeSrc": "7982:71:9",
"nodeType": "YulFunctionCall",
"src": "7982:71:9"
},
"nativeSrc": "7982:71:9",
"nodeType": "YulExpressionStatement",
"src": "7982:71:9"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "8103:6:9",
"nodeType": "YulIdentifier",
"src": "8103:6:9"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "8116:9:9",
"nodeType": "YulIdentifier",
"src": "8116:9:9"
},
{
"kind": "number",
"nativeSrc": "8127:2:9",
"nodeType": "YulLiteral",
"src": "8127:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "8112:3:9",
"nodeType": "YulIdentifier",
"src": "8112:3:9"
},
"nativeSrc": "8112:18:9",
"nodeType": "YulFunctionCall",
"src": "8112:18:9"
}
],
"functionName": {
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nativeSrc": "8063:39:9",
"nodeType": "YulIdentifier",
"src": "8063:39:9"
},
"nativeSrc": "8063:68:9",
"nodeType": "YulFunctionCall",
"src": "8063:68:9"
},
"nativeSrc": "8063:68:9",
"nodeType": "YulExpressionStatement",
"src": "8063:68:9"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed",
"nativeSrc": "7814:324:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "7900:9:9",
"nodeType": "YulTypedName",
"src": "7900:9:9",
"type": ""
},
{
"name": "value1",
"nativeSrc": "7912:6:9",
"nodeType": "YulTypedName",
"src": "7912:6:9",
"type": ""
},
{
"name": "value0",
"nativeSrc": "7920:6:9",
"nodeType": "YulTypedName",
"src": "7920:6:9",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "7931:4:9",
"nodeType": "YulTypedName",
"src": "7931:4:9",
"type": ""
}
],
"src": "7814:324:9"
},
{
"body": {
"nativeSrc": "8189:32:9",
"nodeType": "YulBlock",
"src": "8189:32:9",
"statements": [
{
"nativeSrc": "8199:16:9",
"nodeType": "YulAssignment",
"src": "8199:16:9",
"value": {
"name": "value",
"nativeSrc": "8210:5:9",
"nodeType": "YulIdentifier",
"src": "8210:5:9"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "8199:7:9",
"nodeType": "YulIdentifier",
"src": "8199:7:9"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nativeSrc": "8144:77:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "8171:5:9",
"nodeType": "YulTypedName",
"src": "8171:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "8181:7:9",
"nodeType": "YulTypedName",
"src": "8181:7:9",
"type": ""
}
],
"src": "8144:77:9"
},
{
"body": {
"nativeSrc": "8274:32:9",
"nodeType": "YulBlock",
"src": "8274:32:9",
"statements": [
{
"nativeSrc": "8284:16:9",
"nodeType": "YulAssignment",
"src": "8284:16:9",
"value": {
"name": "value",
"nativeSrc": "8295:5:9",
"nodeType": "YulIdentifier",
"src": "8295:5:9"
},
"variableNames": [
{
"name": "aligned",
"nativeSrc": "8284:7:9",
"nodeType": "YulIdentifier",
"src": "8284:7:9"
}
]
}
]
},
"name": "leftAlign_t_bytes32",
"nativeSrc": "8227:79:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "8256:5:9",
"nodeType": "YulTypedName",
"src": "8256:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nativeSrc": "8266:7:9",
"nodeType": "YulTypedName",
"src": "8266:7:9",
"type": ""
}
],
"src": "8227:79:9"
},
{
"body": {
"nativeSrc": "8395:74:9",
"nodeType": "YulBlock",
"src": "8395:74:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "8412:3:9",
"nodeType": "YulIdentifier",
"src": "8412:3:9"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "8455:5:9",
"nodeType": "YulIdentifier",
"src": "8455:5:9"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nativeSrc": "8437:17:9",
"nodeType": "YulIdentifier",
"src": "8437:17:9"
},
"nativeSrc": "8437:24:9",
"nodeType": "YulFunctionCall",
"src": "8437:24:9"
}
],
"functionName": {
"name": "leftAlign_t_bytes32",
"nativeSrc": "8417:19:9",
"nodeType": "YulIdentifier",
"src": "8417:19:9"
},
"nativeSrc": "8417:45:9",
"nodeType": "YulFunctionCall",
"src": "8417:45:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "8405:6:9",
"nodeType": "YulIdentifier",
"src": "8405:6:9"
},
"nativeSrc": "8405:58:9",
"nodeType": "YulFunctionCall",
"src": "8405:58:9"
},
"nativeSrc": "8405:58:9",
"nodeType": "YulExpressionStatement",
"src": "8405:58:9"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nativeSrc": "8312:157:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "8383:5:9",
"nodeType": "YulTypedName",
"src": "8383:5:9",
"type": ""
},
{
"name": "pos",
"nativeSrc": "8390:3:9",
"nodeType": "YulTypedName",
"src": "8390:3:9",
"type": ""
}
],
"src": "8312:157:9"
},
{
"body": {
"nativeSrc": "8517:52:9",
"nodeType": "YulBlock",
"src": "8517:52:9",
"statements": [
{
"nativeSrc": "8527:35:9",
"nodeType": "YulAssignment",
"src": "8527:35:9",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "8552:2:9",
"nodeType": "YulLiteral",
"src": "8552:2:9",
"type": "",
"value": "96"
},
{
"name": "value",
"nativeSrc": "8556:5:9",
"nodeType": "YulIdentifier",
"src": "8556:5:9"
}
],
"functionName": {
"name": "shl",
"nativeSrc": "8548:3:9",
"nodeType": "YulIdentifier",
"src": "8548:3:9"
},
"nativeSrc": "8548:14:9",
"nodeType": "YulFunctionCall",
"src": "8548:14:9"
},
"variableNames": [
{
"name": "newValue",
"nativeSrc": "8527:8:9",
"nodeType": "YulIdentifier",
"src": "8527:8:9"
}
]
}
]
},
"name": "shift_left_96",
"nativeSrc": "8475:94:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "8498:5:9",
"nodeType": "YulTypedName",
"src": "8498:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nativeSrc": "8508:8:9",
"nodeType": "YulTypedName",
"src": "8508:8:9",
"type": ""
}
],
"src": "8475:94:9"
},
{
"body": {
"nativeSrc": "8622:47:9",
"nodeType": "YulBlock",
"src": "8622:47:9",
"statements": [
{
"nativeSrc": "8632:31:9",
"nodeType": "YulAssignment",
"src": "8632:31:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "8657:5:9",
"nodeType": "YulIdentifier",
"src": "8657:5:9"
}
],
"functionName": {
"name": "shift_left_96",
"nativeSrc": "8643:13:9",
"nodeType": "YulIdentifier",
"src": "8643:13:9"
},
"nativeSrc": "8643:20:9",
"nodeType": "YulFunctionCall",
"src": "8643:20:9"
},
"variableNames": [
{
"name": "aligned",
"nativeSrc": "8632:7:9",
"nodeType": "YulIdentifier",
"src": "8632:7:9"
}
]
}
]
},
"name": "leftAlign_t_uint160",
"nativeSrc": "8575:94:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "8604:5:9",
"nodeType": "YulTypedName",
"src": "8604:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nativeSrc": "8614:7:9",
"nodeType": "YulTypedName",
"src": "8614:7:9",
"type": ""
}
],
"src": "8575:94:9"
},
{
"body": {
"nativeSrc": "8722:53:9",
"nodeType": "YulBlock",
"src": "8722:53:9",
"statements": [
{
"nativeSrc": "8732:37:9",
"nodeType": "YulAssignment",
"src": "8732:37:9",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "8763:5:9",
"nodeType": "YulIdentifier",
"src": "8763:5:9"
}
],
"functionName": {
"name": "leftAlign_t_uint160",
"nativeSrc": "8743:19:9",
"nodeType": "YulIdentifier",
"src": "8743:19:9"
},
"nativeSrc": "8743:26:9",
"nodeType": "YulFunctionCall",
"src": "8743:26:9"
},
"variableNames": [
{
"name": "aligned",
"nativeSrc": "8732:7:9",
"nodeType": "YulIdentifier",
"src": "8732:7:9"
}
]
}
]
},
"name": "leftAlign_t_address",
"nativeSrc": "8675:100:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "8704:5:9",
"nodeType": "YulTypedName",
"src": "8704:5:9",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nativeSrc": "8714:7:9",
"nodeType": "YulTypedName",
"src": "8714:7:9",
"type": ""
}
],
"src": "8675:100:9"
},
{
"body": {
"nativeSrc": "8864:74:9",
"nodeType": "YulBlock",
"src": "8864:74:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "8881:3:9",
"nodeType": "YulIdentifier",
"src": "8881:3:9"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "8924:5:9",
"nodeType": "YulIdentifier",
"src": "8924:5:9"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "8906:17:9",
"nodeType": "YulIdentifier",
"src": "8906:17:9"
},
"nativeSrc": "8906:24:9",
"nodeType": "YulFunctionCall",
"src": "8906:24:9"
}
],
"functionName": {
"name": "leftAlign_t_address",
"nativeSrc": "8886:19:9",
"nodeType": "YulIdentifier",
"src": "8886:19:9"
},
"nativeSrc": "8886:45:9",
"nodeType": "YulFunctionCall",
"src": "8886:45:9"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "8874:6:9",
"nodeType": "YulIdentifier",
"src": "8874:6:9"
},
"nativeSrc": "8874:58:9",
"nodeType": "YulFunctionCall",
"src": "8874:58:9"
},
"nativeSrc": "8874:58:9",
"nodeType": "YulExpressionStatement",
"src": "8874:58:9"
}
]
},
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nativeSrc": "8781:157:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "8852:5:9",
"nodeType": "YulTypedName",
"src": "8852:5:9",
"type": ""
},
{
"name": "pos",
"nativeSrc": "8859:3:9",
"nodeType": "YulTypedName",
"src": "8859:3:9",
"type": ""
}
],
"src": "8781:157:9"
},
{
"body": {
"nativeSrc": "9088:253:9",
"nodeType": "YulBlock",
"src": "9088:253:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "9161:6:9",
"nodeType": "YulIdentifier",
"src": "9161:6:9"
},
{
"name": "pos",
"nativeSrc": "9170:3:9",
"nodeType": "YulIdentifier",
"src": "9170:3:9"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nativeSrc": "9099:61:9",
"nodeType": "YulIdentifier",
"src": "9099:61:9"
},
"nativeSrc": "9099:75:9",
"nodeType": "YulFunctionCall",
"src": "9099:75:9"
},
"nativeSrc": "9099:75:9",
"nodeType": "YulExpressionStatement",
"src": "9099:75:9"
},
{
"nativeSrc": "9183:19:9",
"nodeType": "YulAssignment",
"src": "9183:19:9",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "9194:3:9",
"nodeType": "YulIdentifier",
"src": "9194:3:9"
},
{
"kind": "number",
"nativeSrc": "9199:2:9",
"nodeType": "YulLiteral",
"src": "9199:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9190:3:9",
"nodeType": "YulIdentifier",
"src": "9190:3:9"
},
"nativeSrc": "9190:12:9",
"nodeType": "YulFunctionCall",
"src": "9190:12:9"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "9183:3:9",
"nodeType": "YulIdentifier",
"src": "9183:3:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "9274:6:9",
"nodeType": "YulIdentifier",
"src": "9274:6:9"
},
{
"name": "pos",
"nativeSrc": "9283:3:9",
"nodeType": "YulIdentifier",
"src": "9283:3:9"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nativeSrc": "9212:61:9",
"nodeType": "YulIdentifier",
"src": "9212:61:9"
},
"nativeSrc": "9212:75:9",
"nodeType": "YulFunctionCall",
"src": "9212:75:9"
},
"nativeSrc": "9212:75:9",
"nodeType": "YulExpressionStatement",
"src": "9212:75:9"
},
{
"nativeSrc": "9296:19:9",
"nodeType": "YulAssignment",
"src": "9296:19:9",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "9307:3:9",
"nodeType": "YulIdentifier",
"src": "9307:3:9"
},
{
"kind": "number",
"nativeSrc": "9312:2:9",
"nodeType": "YulLiteral",
"src": "9312:2:9",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9303:3:9",
"nodeType": "YulIdentifier",
"src": "9303:3:9"
},
"nativeSrc": "9303:12:9",
"nodeType": "YulFunctionCall",
"src": "9303:12:9"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "9296:3:9",
"nodeType": "YulIdentifier",
"src": "9296:3:9"
}
]
},
{
"nativeSrc": "9325:10:9",
"nodeType": "YulAssignment",
"src": "9325:10:9",
"value": {
"name": "pos",
"nativeSrc": "9332:3:9",
"nodeType": "YulIdentifier",
"src": "9332:3:9"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "9325:3:9",
"nodeType": "YulIdentifier",
"src": "9325:3:9"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bytes32_t_address__to_t_bytes32_t_address__nonPadded_inplace_fromStack_reversed",
"nativeSrc": "8944:397:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "9059:3:9",
"nodeType": "YulTypedName",
"src": "9059:3:9",
"type": ""
},
{
"name": "value1",
"nativeSrc": "9065:6:9",
"nodeType": "YulTypedName",
"src": "9065:6:9",
"type": ""
},
{
"name": "value0",
"nativeSrc": "9073:6:9",
"nodeType": "YulTypedName",
"src": "9073:6:9",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "9084:3:9",
"nodeType": "YulTypedName",
"src": "9084:3:9",
"type": ""
}
],
"src": "8944:397:9"
},
{
"body": {
"nativeSrc": "9501:288:9",
"nodeType": "YulBlock",
"src": "9501:288:9",
"statements": [
{
"nativeSrc": "9511:26:9",
"nodeType": "YulAssignment",
"src": "9511:26:9",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "9523:9:9",
"nodeType": "YulIdentifier",
"src": "9523:9:9"
},
{
"kind": "number",
"nativeSrc": "9534:2:9",
"nodeType": "YulLiteral",
"src": "9534:2:9",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9519:3:9",
"nodeType": "YulIdentifier",
"src": "9519:3:9"
},
"nativeSrc": "9519:18:9",
"nodeType": "YulFunctionCall",
"src": "9519:18:9"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "9511:4:9",
"nodeType": "YulIdentifier",
"src": "9511:4:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "9591:6:9",
"nodeType": "YulIdentifier",
"src": "9591:6:9"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "9604:9:9",
"nodeType": "YulIdentifier",
"src": "9604:9:9"
},
{
"kind": "number",
"nativeSrc": "9615:1:9",
"nodeType": "YulLiteral",
"src": "9615:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9600:3:9",
"nodeType": "YulIdentifier",
"src": "9600:3:9"
},
"nativeSrc": "9600:17:9",
"nodeType": "YulFunctionCall",
"src": "9600:17:9"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "9547:43:9",
"nodeType": "YulIdentifier",
"src": "9547:43:9"
},
"nativeSrc": "9547:71:9",
"nodeType": "YulFunctionCall",
"src": "9547:71:9"
},
"nativeSrc": "9547:71:9",
"nodeType": "YulExpressionStatement",
"src": "9547:71:9"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "9672:6:9",
"nodeType": "YulIdentifier",
"src": "9672:6:9"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "9685:9:9",
"nodeType": "YulIdentifier",
"src": "9685:9:9"
},
{
"kind": "number",
"nativeSrc": "9696:2:9",
"nodeType": "YulLiteral",
"src": "9696:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9681:3:9",
"nodeType": "YulIdentifier",
"src": "9681:3:9"
},
"nativeSrc": "9681:18:9",
"nodeType": "YulFunctionCall",
"src": "9681:18:9"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "9628:43:9",
"nodeType": "YulIdentifier",
"src": "9628:43:9"
},
"nativeSrc": "9628:72:9",
"nodeType": "YulFunctionCall",
"src": "9628:72:9"
},
"nativeSrc": "9628:72:9",
"nodeType": "YulExpressionStatement",
"src": "9628:72:9"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "9754:6:9",
"nodeType": "YulIdentifier",
"src": "9754:6:9"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "9767:9:9",
"nodeType": "YulIdentifier",
"src": "9767:9:9"
},
{
"kind": "number",
"nativeSrc": "9778:2:9",
"nodeType": "YulLiteral",
"src": "9778:2:9",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9763:3:9",
"nodeType": "YulIdentifier",
"src": "9763:3:9"
},
"nativeSrc": "9763:18:9",
"nodeType": "YulFunctionCall",
"src": "9763:18:9"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "9710:43:9",
"nodeType": "YulIdentifier",
"src": "9710:43:9"
},
"nativeSrc": "9710:72:9",
"nodeType": "YulFunctionCall",
"src": "9710:72:9"
},
"nativeSrc": "9710:72:9",
"nodeType": "YulExpressionStatement",
"src": "9710:72:9"
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed",
"nativeSrc": "9347:442:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "9457:9:9",
"nodeType": "YulTypedName",
"src": "9457:9:9",
"type": ""
},
{
"name": "value2",
"nativeSrc": "9469:6:9",
"nodeType": "YulTypedName",
"src": "9469:6:9",
"type": ""
},
{
"name": "value1",
"nativeSrc": "9477:6:9",
"nodeType": "YulTypedName",
"src": "9477:6:9",
"type": ""
},
{
"name": "value0",
"nativeSrc": "9485:6:9",
"nodeType": "YulTypedName",
"src": "9485:6:9",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "9496:4:9",
"nodeType": "YulTypedName",
"src": "9496:4:9",
"type": ""
}
],
"src": "9347:442:9"
},
{
"body": {
"nativeSrc": "9921:206:9",
"nodeType": "YulBlock",
"src": "9921:206:9",
"statements": [
{
"nativeSrc": "9931:26:9",
"nodeType": "YulAssignment",
"src": "9931:26:9",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "9943:9:9",
"nodeType": "YulIdentifier",
"src": "9943:9:9"
},
{
"kind": "number",
"nativeSrc": "9954:2:9",
"nodeType": "YulLiteral",
"src": "9954:2:9",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nativeSrc": "9939:3:9",
"nodeType": "YulIdentifier",
"src": "9939:3:9"
},
"nativeSrc": "9939:18:9",
"nodeType": "YulFunctionCall",
"src": "9939:18:9"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "9931:4:9",
"nodeType": "YulIdentifier",
"src": "9931:4:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "10011:6:9",
"nodeType": "YulIdentifier",
"src": "10011:6:9"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "10024:9:9",
"nodeType": "YulIdentifier",
"src": "10024:9:9"
},
{
"kind": "number",
"nativeSrc": "10035:1:9",
"nodeType": "YulLiteral",
"src": "10035:1:9",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10020:3:9",
"nodeType": "YulIdentifier",
"src": "10020:3:9"
},
"nativeSrc": "10020:17:9",
"nodeType": "YulFunctionCall",
"src": "10020:17:9"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nativeSrc": "9967:43:9",
"nodeType": "YulIdentifier",
"src": "9967:43:9"
},
"nativeSrc": "9967:71:9",
"nodeType": "YulFunctionCall",
"src": "9967:71:9"
},
"nativeSrc": "9967:71:9",
"nodeType": "YulExpressionStatement",
"src": "9967:71:9"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "10092:6:9",
"nodeType": "YulIdentifier",
"src": "10092:6:9"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "10105:9:9",
"nodeType": "YulIdentifier",
"src": "10105:9:9"
},
{
"kind": "number",
"nativeSrc": "10116:2:9",
"nodeType": "YulLiteral",
"src": "10116:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10101:3:9",
"nodeType": "YulIdentifier",
"src": "10101:3:9"
},
"nativeSrc": "10101:18:9",
"nodeType": "YulFunctionCall",
"src": "10101:18:9"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "10048:43:9",
"nodeType": "YulIdentifier",
"src": "10048:43:9"
},
"nativeSrc": "10048:72:9",
"nodeType": "YulFunctionCall",
"src": "10048:72:9"
},
"nativeSrc": "10048:72:9",
"nodeType": "YulExpressionStatement",
"src": "10048:72:9"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
"nativeSrc": "9795:332:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "9885:9:9",
"nodeType": "YulTypedName",
"src": "9885:9:9",
"type": ""
},
{
"name": "value1",
"nativeSrc": "9897:6:9",
"nodeType": "YulTypedName",
"src": "9897:6:9",
"type": ""
},
{
"name": "value0",
"nativeSrc": "9905:6:9",
"nodeType": "YulTypedName",
"src": "9905:6:9",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "9916:4:9",
"nodeType": "YulTypedName",
"src": "9916:4:9",
"type": ""
}
],
"src": "9795:332:9"
},
{
"body": {
"nativeSrc": "10305:366:9",
"nodeType": "YulBlock",
"src": "10305:366:9",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "10378:6:9",
"nodeType": "YulIdentifier",
"src": "10378:6:9"
},
{
"name": "pos",
"nativeSrc": "10387:3:9",
"nodeType": "YulIdentifier",
"src": "10387:3:9"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nativeSrc": "10316:61:9",
"nodeType": "YulIdentifier",
"src": "10316:61:9"
},
"nativeSrc": "10316:75:9",
"nodeType": "YulFunctionCall",
"src": "10316:75:9"
},
"nativeSrc": "10316:75:9",
"nodeType": "YulExpressionStatement",
"src": "10316:75:9"
},
{
"nativeSrc": "10400:19:9",
"nodeType": "YulAssignment",
"src": "10400:19:9",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "10411:3:9",
"nodeType": "YulIdentifier",
"src": "10411:3:9"
},
{
"kind": "number",
"nativeSrc": "10416:2:9",
"nodeType": "YulLiteral",
"src": "10416:2:9",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10407:3:9",
"nodeType": "YulIdentifier",
"src": "10407:3:9"
},
"nativeSrc": "10407:12:9",
"nodeType": "YulFunctionCall",
"src": "10407:12:9"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "10400:3:9",
"nodeType": "YulIdentifier",
"src": "10400:3:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nativeSrc": "10491:6:9",
"nodeType": "YulIdentifier",
"src": "10491:6:9"
},
{
"name": "pos",
"nativeSrc": "10500:3:9",
"nodeType": "YulIdentifier",
"src": "10500:3:9"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nativeSrc": "10429:61:9",
"nodeType": "YulIdentifier",
"src": "10429:61:9"
},
"nativeSrc": "10429:75:9",
"nodeType": "YulFunctionCall",
"src": "10429:75:9"
},
"nativeSrc": "10429:75:9",
"nodeType": "YulExpressionStatement",
"src": "10429:75:9"
},
{
"nativeSrc": "10513:19:9",
"nodeType": "YulAssignment",
"src": "10513:19:9",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "10524:3:9",
"nodeType": "YulIdentifier",
"src": "10524:3:9"
},
{
"kind": "number",
"nativeSrc": "10529:2:9",
"nodeType": "YulLiteral",
"src": "10529:2:9",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10520:3:9",
"nodeType": "YulIdentifier",
"src": "10520:3:9"
},
"nativeSrc": "10520:12:9",
"nodeType": "YulFunctionCall",
"src": "10520:12:9"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "10513:3:9",
"nodeType": "YulIdentifier",
"src": "10513:3:9"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nativeSrc": "10604:6:9",
"nodeType": "YulIdentifier",
"src": "10604:6:9"
},
{
"name": "pos",
"nativeSrc": "10613:3:9",
"nodeType": "YulIdentifier",
"src": "10613:3:9"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nativeSrc": "10542:61:9",
"nodeType": "YulIdentifier",
"src": "10542:61:9"
},
"nativeSrc": "10542:75:9",
"nodeType": "YulFunctionCall",
"src": "10542:75:9"
},
"nativeSrc": "10542:75:9",
"nodeType": "YulExpressionStatement",
"src": "10542:75:9"
},
{
"nativeSrc": "10626:19:9",
"nodeType": "YulAssignment",
"src": "10626:19:9",
"value": {
"arguments": [
{
"name": "pos",
"nativeSrc": "10637:3:9",
"nodeType": "YulIdentifier",
"src": "10637:3:9"
},
{
"kind": "number",
"nativeSrc": "10642:2:9",
"nodeType": "YulLiteral",
"src": "10642:2:9",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "add",
"nativeSrc": "10633:3:9",
"nodeType": "YulIdentifier",
"src": "10633:3:9"
},
"nativeSrc": "10633:12:9",
"nodeType": "YulFunctionCall",
"src": "10633:12:9"
},
"variableNames": [
{
"name": "pos",
"nativeSrc": "10626:3:9",
"nodeType": "YulIdentifier",
"src": "10626:3:9"
}
]
},
{
"nativeSrc": "10655:10:9",
"nodeType": "YulAssignment",
"src": "10655:10:9",
"value": {
"name": "pos",
"nativeSrc": "10662:3:9",
"nodeType": "YulIdentifier",
"src": "10662:3:9"
},
"variableNames": [
{
"name": "end",
"nativeSrc": "10655:3:9",
"nodeType": "YulIdentifier",
"src": "10655:3:9"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bytes32_t_address_t_address__to_t_bytes32_t_address_t_address__nonPadded_inplace_fromStack_reversed",
"nativeSrc": "10133:538:9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nativeSrc": "10268:3:9",
"nodeType": "YulTypedName",
"src": "10268:3:9",
"type": ""
},
{
"name": "value2",
"nativeSrc": "10274:6:9",
"nodeType": "YulTypedName",
"src": "10274:6:9",
"type": ""
},
{
"name": "value1",
"nativeSrc": "10282:6:9",
"nodeType": "YulTypedName",
"src": "10282:6:9",
"type": ""
},
{
"name": "value0",
"nativeSrc": "10290:6:9",
"nodeType": "YulTypedName",
"src": "10290:6:9",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nativeSrc": "10301:3:9",
"nodeType": "YulTypedName",
"src": "10301:3:9",
"type": ""
}
],
"src": "10133:538:9"
}
]
},
"contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\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 mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(value)\n }\n\n function abi_decode_tuple_t_addresst_uint8(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint8__to_t_address_t_uint8__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function abi_encode_tuple_packed_t_bytes32_t_address__to_t_bytes32_t_address__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_packed_t_bytes32_t_address_t_address__to_t_bytes32_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n}\n",
"id": 9,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561000f575f80fd5b5060043610610114575f3560e01c806395d89b41116100a0578063a9059cbb1161006f578063a9059cbb14610304578063aa271e1a14610334578063b5ef694d14610364578063cf86a95a14610380578063dd62ed3e1461039c57610114565b806395d89b411461027e5780639c1766771461029c5780639dc29fac146102b8578063a457c2d7146102d457610114565b8063313ce567116100e7578063313ce567146101b457806339509351146101d257806340c10f191461020257806370a082311461021e57806395a8c58d1461024e57610114565b806306fdde0314610118578063095ea7b31461013657806318160ddd1461016657806323b872dd14610184575b5f80fd5b6101206103cc565b60405161012d91906113c9565b60405180910390f35b610150600480360381019061014b919061147a565b610458565b60405161015d91906114d2565b60405180910390f35b61016e61046e565b60405161017b91906114fa565b60405180910390f35b61019e60048036038101906101999190611513565b610474565b6040516101ab91906114d2565b60405180910390f35b6101bc610546565b6040516101c9919061157e565b60405180910390f35b6101ec60048036038101906101e7919061147a565b610558565b6040516101f991906114d2565b60405180910390f35b61021c6004803603810190610217919061147a565b6105f1565b005b61023860048036038101906102339190611597565b610668565b60405161024591906114fa565b60405180910390f35b610268600480360381019061026391906115ec565b61067c565b60405161027591906114d2565b60405180910390f35b610286610697565b60405161029391906113c9565b60405180910390f35b6102b660048036038101906102b19190611597565b610723565b005b6102d260048036038101906102cd919061147a565b610743565b005b6102ee60048036038101906102e9919061147a565b6107ba565b6040516102fb91906114d2565b60405180910390f35b61031e6004803603810190610319919061147a565b610853565b60405161032b91906114d2565b60405180910390f35b61034e60048036038101906103499190611597565b610869565b60405161035b91906114d2565b60405180910390f35b61037e60048036038101906103799190611597565b61088d565b005b61039a60048036038101906103959190611597565b610916565b005b6103b660048036038101906103b1919061162a565b61099f565b6040516103c391906114fa565b60405180910390f35b600380546103d990611695565b80601f016020809104026020016040519081016040528092919081815260200182805461040590611695565b80156104505780601f1061042757610100808354040283529160200191610450565b820191905f5260205f20905b81548152906001019060200180831161043357829003601f168201915b505050505081565b5f6104643384846109bf565b6001905092915050565b60025481565b5f8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461052f5761052e8533858461052991906116f2565b6109bf565b5b61053a858585610b42565b60019150509392505050565b60055f9054906101000a900460ff1681565b5f6105e733848460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105e29190611725565b6109bf565b6001905092915050565b5f600281111561060457610603611758565b5b61061661061033610cec565b82610d03565b6106595733816040517fbb6c1639000000000000000000000000000000000000000000000000000000008152600401610650929190611794565b60405180910390fd5b6106638383610d19565b505050565b5f602052805f5260405f205f915090505481565b5f61068f61068984610cec565b83610d03565b905092915050565b600480546106a490611695565b80601f01602080910402602001604051908101604052809291908181526020018280546106d090611695565b801561071b5780601f106106f25761010080835404028352916020019161071b565b820191905f5260205f20905b8154815290600101906020018083116106fe57829003601f168201915b505050505081565b61074081335f600281111561073b5761073a611758565b5b610e51565b50565b5f600281111561075657610755611758565b5b61076861076233610cec565b82610d03565b6107ab5733816040517fbb6c16390000000000000000000000000000000000000000000000000000000081526004016107a2929190611794565b60405180910390fd5b6107b58383610e68565b505050565b5f61084933848460015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461084491906116f2565b6109bf565b6001905092915050565b5f61085f338484610b42565b6001905092915050565b5f610886825f600281111561088157610880611758565b5b61067c565b9050919050565b5f60028111156108a05761089f611758565b5b6108b26108ac33610cec565b82610d03565b6108f55733816040517fbb6c16390000000000000000000000000000000000000000000000000000000081526004016108ec929190611794565b60405180910390fd5b61091233835f600281111561090d5761090c611758565b5b610fa0565b5050565b5f600281111561092957610928611758565b5b61093b61093533610cec565b82610d03565b61097e5733816040517fbb6c1639000000000000000000000000000000000000000000000000000000008152600401610975929190611794565b60405180910390fd5b61099b33835f600281111561099657610995611758565b5b610fb7565b5050565b6001602052815f5260405f20602052805f5260405f205f91509150505481565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610a2457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610a5b576040517f6d187b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b3591906114fa565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610ba757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610bde576040517f6d187b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c2991906116f2565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c7b9190611725565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610cdf91906114fa565b60405180910390a3505050565b5f80610cf783610fce565b90508054915050919050565b5f808260ff166001901b84161415905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d7e576040517f6d187b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060025f828254610d8f9190611725565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610de19190611725565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e4591906114fa565b60405180910390a35050565b610e6383838360ff166001901b61101f565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ecd576040517f6d187b2800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f1891906116f2565b925050819055508060025f828254610f3091906116f2565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f9491906114fa565b60405180910390a35050565b610fb283838360ff166001901b61108b565b505050565b610fc983838360ff166001901b611155565b505050565b5f7fde9bdca322e1a848f72215bc15cf2c87fe7749145789a9ee281a2a6290af26ab82604051602001611002929190611829565b604051602081830303815290604052805190602001209050919050565b8061102a84846111c3565b14611070578282826040517f6004fe4000000000000000000000000000000000000000000000000000000000815260040161106793929190611854565b60405180910390fd5b61107b83835f6111dc565b611086838383611155565b505050565b61109d61109784610cec565b826111f2565b6110e05782816040517f7fa6fbb40000000000000000000000000000000000000000000000000000000081526004016110d7929190611889565b60405180910390fd5b6110eb8383836111dc565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167ff7158d1591c2cf17c0e6b9459d86365c47fe0969c79f40ef49e0c437d8f399148360405161114891906114fa565b60405180910390a3505050565b61116761116184610cec565b826111f2565b6111aa5782816040517f7fa6fbb40000000000000000000000000000000000000000000000000000000081526004016111a1929190611889565b60405180910390fd5b6111b48382611200565b6111be828261126c565b505050565b5f806111cf84846112d7565b9050805491505092915050565b5f6111e784846112d7565b905081815550505050565b5f8182841614905092915050565b5f811961120c84610cec565b169050611219838261132b565b8273ffffffffffffffffffffffffffffffffffffffff167fccf920c8facee98a9c2a6c6124f2857b87b17e9f3a819bfcc6945196ee77366b8360405161125f91906114fa565b60405180910390a2505050565b5f8161127784610cec565b179050611284838261132b565b8273ffffffffffffffffffffffffffffffffffffffff167f34e73c57659d4b6809b53db4feee9b007b892e978114eda420d2991aba150143836040516112ca91906114fa565b60405180910390a2505050565b5f7ff96e07b2f4fbb81c31567d2b261589af429e98f0958d53f7e6ad5d63aea0ab7c838360405160200161130d939291906118b0565b60405160208183030381529060405280519060200120905092915050565b5f61133583610fce565b9050818155505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561137657808201518184015260208101905061135b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61139b8261133f565b6113a58185611349565b93506113b5818560208601611359565b6113be81611381565b840191505092915050565b5f6020820190508181035f8301526113e18184611391565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611416826113ed565b9050919050565b6114268161140c565b8114611430575f80fd5b50565b5f813590506114418161141d565b92915050565b5f819050919050565b61145981611447565b8114611463575f80fd5b50565b5f8135905061147481611450565b92915050565b5f80604083850312156114905761148f6113e9565b5b5f61149d85828601611433565b92505060206114ae85828601611466565b9150509250929050565b5f8115159050919050565b6114cc816114b8565b82525050565b5f6020820190506114e55f8301846114c3565b92915050565b6114f481611447565b82525050565b5f60208201905061150d5f8301846114eb565b92915050565b5f805f6060848603121561152a576115296113e9565b5b5f61153786828701611433565b935050602061154886828701611433565b925050604061155986828701611466565b9150509250925092565b5f60ff82169050919050565b61157881611563565b82525050565b5f6020820190506115915f83018461156f565b92915050565b5f602082840312156115ac576115ab6113e9565b5b5f6115b984828501611433565b91505092915050565b6115cb81611563565b81146115d5575f80fd5b50565b5f813590506115e6816115c2565b92915050565b5f8060408385031215611602576116016113e9565b5b5f61160f85828601611433565b9250506020611620858286016115d8565b9150509250929050565b5f80604083850312156116405761163f6113e9565b5b5f61164d85828601611433565b925050602061165e85828601611433565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806116ac57607f821691505b6020821081036116bf576116be611668565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6116fc82611447565b915061170783611447565b925082820390508181111561171f5761171e6116c5565b5b92915050565b5f61172f82611447565b915061173a83611447565b9250828201905080821115611752576117516116c5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61178e8161140c565b82525050565b5f6040820190506117a75f830185611785565b6117b4602083018461156f565b9392505050565b5f819050919050565b5f819050919050565b6117de6117d9826117bb565b6117c4565b82525050565b5f8160601b9050919050565b5f6117fa826117e4565b9050919050565b5f61180b826117f0565b9050919050565b61182361181e8261140c565b611801565b82525050565b5f61183482856117cd565b6020820191506118448284611812565b6014820191508190509392505050565b5f6060820190506118675f830186611785565b6118746020830185611785565b61188160408301846114eb565b949350505050565b5f60408201905061189c5f830185611785565b6118a960208301846114eb565b9392505050565b5f6118bb82866117cd565b6020820191506118cb8285611812565b6014820191506118db8284611812565b60148201915081905094935050505056fea2646970667358221220365374f00a7c2912f4b61a705cb76d139db6fe5d3a5ae12fa55b364a2e37a1e164736f6c63430008160033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x114 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x95D89B41 GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xA9059CBB GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x304 JUMPI DUP1 PUSH4 0xAA271E1A EQ PUSH2 0x334 JUMPI DUP1 PUSH4 0xB5EF694D EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0xCF86A95A EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x39C JUMPI PUSH2 0x114 JUMP JUMPDEST DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x27E JUMPI DUP1 PUSH4 0x9C176677 EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x2D4 JUMPI PUSH2 0x114 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xE7 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0x95A8C58D EQ PUSH2 0x24E
View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment