@atlantiswap/lite-periphery
Version:
Peripheral smart contracts for interacting with Atlantiswap Lite
253 lines • 87.8 kB
JSON
{
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "factory_",
"type": "address"
},
{
"internalType": "uint256",
"name": "windowSize_",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "granularity_",
"type": "uint8"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenIn",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "address",
"name": "tokenOut",
"type": "address"
}
],
"name": "consult",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "granularity",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"name": "observationIndexOf",
"outputs": [
{
"internalType": "uint8",
"name": "index",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "pairObservations",
"outputs": [
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "price0Cumulative",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "price1Cumulative",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "periodSize",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
}
],
"name": "update",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "windowSize",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"evm": {
"bytecode": {
"linkReferences": {},
"object": "61010060405234801561001157600080fd5b506040516113a83803806113a88339818101604052606081101561003457600080fd5b5080516020820151604090920151909190600160ff82161161009d576040805162461bcd60e51b815260206004820181905260248201527f536c6964696e6757696e646f774f7261636c653a204752414e554c4152495459604482015290519081900360640190fd5b8160ff82168082816100ab57fe5b0460e081905202146100ee5760405162461bcd60e51b81526004018080602001828103825260308152602001806113786030913960400191505060405180910390fd5b606083901b6001600160601b03191660805260a082905260f881901b7fff000000000000000000000000000000000000000000000000000000000000001660c05260e0516001600160a01b039093169260ff909116906111d961019f600039806102f7528061059452806105e752806106475250806101f452806104d752806106135280610766525080610218528061027e528061031b525080610242528061045c528061048552506111d96000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c45a01551161005b578063c45a01551461015f578063c640752d14610190578063dbaad32f146101cd578063e4463eb2146101ea57610088565b8063556f0dc71461008d5780638a14117a146100ab5780638c86f1e4146100c5578063bfcc8e4214610108575b600080fd5b6100956101f2565b6040805160ff9092168252519081900360200190f35b6100b3610216565b60408051918252519081900360200190f35b6100b3600480360360608110156100db57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040909101351661023a565b6101416004803603604081101561011e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561041b565b60408051938452602084019290925282820152519081900360600190f35b61016761045a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101cb600480360360408110156101a657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661047e565b005b610095600480360360208110156101e357600080fd5b50356105e2565b6100b3610645565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102687f00000000000000000000000000000000000000000000000000000000000000008685610669565b9050600061027582610754565b805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156102f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806110d06033913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006002027f000000000000000000000000000000000000000000000000000000000000000003811015610393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611127602c913960400191505060405180910390fd5b60008061039f856107fc565b509150915060006103b08a89610a83565b5090508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610404576103f7856001015484868c610bc0565b9650505050505050610414565b6103f7856002015483868c610bc0565b9392505050565b6000602052816000526040600020818154811061043457fe5b600091825260209091206003909102018054600182015460029092015490935090915083565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006104ab7f00000000000000000000000000000000000000000000000000000000000000008484610669565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020549091505b7f000000000000000000000000000000000000000000000000000000000000000060ff168110156105365773ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054600190810182559152016104d5565b506000610542426105e2565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604081208054929350909160ff841690811061057b57fe5b60009182526020909120600390910201805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156105da576000806105c6866107fc565b504286556001860191909155600285015550505b505050505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161060e57fe5b0490507f000000000000000000000000000000000000000000000000000000000000000060ff16818161063d57fe5b069392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006106788585610a83565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f443b809cf6503337cb9cfa139d0f9e5e47fec8bac51e4fd01edd3ea6f2de2564609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080610760426105e2565b905060007f000000000000000000000000000000000000000000000000000000000000000060ff168260010160ff168161079657fe5b0690506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208160ff16815481106107e557fe5b906000526020600020906003020192505050919050565b6000806000610809610c33565b90508373ffffffffffffffffffffffffffffffffffffffff16635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d602081101561087b57600080fd5b5051604080517f5a3d5493000000000000000000000000000000000000000000000000000000008152905191945073ffffffffffffffffffffffffffffffffffffffff861691635a3d549391600480820192602092909190829003018186803b1580156108e757600080fd5b505afa1580156108fb573d6000803e3d6000fd5b505050506040513d602081101561091157600080fd5b5051604080517f0902f1ac00000000000000000000000000000000000000000000000000000000815290519193506000918291829173ffffffffffffffffffffffffffffffffffffffff891691630902f1ac916004808301926060929190829003018186803b15801561098357600080fd5b505afa158015610997573d6000803e3d6000fd5b505050506040513d60608110156109ad57600080fd5b5080516020820151604090920151909450909250905063ffffffff80821690851614610a795780840363ffffffff81166109fa6dffffffffffffffffffffffffffff808616908716610c3d565b600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602870196508063ffffffff16610a52856dffffffffffffffffffffffffffff16856dffffffffffffffffffffffffffff16610c3d565b517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16029590950194505b5050509193909250565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610b0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611179602b913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610b45578284610b48565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610bb9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806111036024913960400191505060405180910390fd5b9250929050565b6000610bca6110aa565b60405180602001604052808588880381610be057fe5b047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690529050610c15610c108285610e52565b610f15565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b63ffffffff421690565b610c456110aa565b60008211610c9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111536026913960400191505060405180910390fd5b82610cb85750604080516020810190915260008152610e4c565b71ffffffffffffffffffffffffffffffffffff8311610da357600082607085901b81610ce057fe5b0490507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115610d6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b6040518060200160405280827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815250915050610e4c565b6000610dbf846e01000000000000000000000000000085610f1c565b90507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115610d6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b92915050565b610e5a6110bc565b6000821580610e9557505082517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682810290838281610e9257fe5b04145b610f0057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4669786564506f696e743a3a6d756c3a206f766572666c6f7700000000000000604482015290519081900360640190fd5b60408051602081019091529081529392505050565b5160701c90565b6000806000610f2b8686610fef565b9150915060008480610f3957fe5b868809905082811115610f4d576001820391505b918290039181610f6b57848381610f6057fe5b049350505050610414565b848210610fd957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015290519081900360640190fd5b610fe483838761103a565b979650505050505050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84860990508385029250828103915082811015611032576001820391505b509250929050565b6000818103821680838161104a57fe5b04925080858161105657fe5b04945080816000038161106557fe5b60028581038087028203028087028203028087028203028087028203028087028203028087028203029586029003909402930460010193909302939093010292915050565b60408051602081019091526000815290565b604051806020016040528060008152509056fe536c6964696e6757696e646f774f7261636c653a204d495353494e475f484953544f524943414c5f4f42534552564154494f4e41746c616e7469737761704c6974654c6962726172793a205a45524f5f41444452455353536c6964696e6757696e646f774f7261636c653a20554e45585045435445445f54494d455f454c41505345444669786564506f696e743a3a6672616374696f6e3a206469766973696f6e206279207a65726f41746c616e7469737761704c6974654c6962726172793a204944454e544943414c5f414444524553534553a26469706673582212206d30f204c72309a58f65dbbef896dce18ff66e37a14e8b579b264babec78b78a64736f6c63430006060033536c6964696e6757696e646f774f7261636c653a2057494e444f575f4e4f545f4556454e4c595f444956495349424c45",
"opcodes": "PUSH2 0x100 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x13A8 CODESIZE SUB DUP1 PUSH2 0x13A8 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xFF DUP3 AND GT PUSH2 0x9D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536C6964696E6757696E646F774F7261636C653A204752414E554C4152495459 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 PUSH1 0xFF DUP3 AND DUP1 DUP3 DUP2 PUSH2 0xAB JUMPI INVALID JUMPDEST DIV PUSH1 0xE0 DUP2 SWAP1 MSTORE MUL EQ PUSH2 0xEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x30 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1378 PUSH1 0x30 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH1 0xA0 DUP3 SWAP1 MSTORE PUSH1 0xF8 DUP2 SWAP1 SHL PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 AND PUSH1 0xC0 MSTORE PUSH1 0xE0 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP3 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 PUSH2 0x11D9 PUSH2 0x19F PUSH1 0x0 CODECOPY DUP1 PUSH2 0x2F7 MSTORE DUP1 PUSH2 0x594 MSTORE DUP1 PUSH2 0x5E7 MSTORE DUP1 PUSH2 0x647 MSTORE POP DUP1 PUSH2 0x1F4 MSTORE DUP1 PUSH2 0x4D7 MSTORE DUP1 PUSH2 0x613 MSTORE DUP1 PUSH2 0x766 MSTORE POP DUP1 PUSH2 0x218 MSTORE DUP1 PUSH2 0x27E MSTORE DUP1 PUSH2 0x31B MSTORE POP DUP1 PUSH2 0x242 MSTORE DUP1 PUSH2 0x45C MSTORE DUP1 PUSH2 0x485 MSTORE POP PUSH2 0x11D9 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 0xC45A0155 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xC640752D EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0xDBAAD32F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0xE4463EB2 EQ PUSH2 0x1EA JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x556F0DC7 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x8A14117A EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x8C86F1E4 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0xBFCC8E42 EQ PUSH2 0x108 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x1F2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0x216 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 SWAP1 SWAP2 ADD CALLDATALOAD AND PUSH2 0x23A JUMP JUMPDEST PUSH2 0x141 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x11E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x167 PUSH2 0x45A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1CB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x47E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x5E2 JUMP JUMPDEST PUSH2 0xB3 PUSH2 0x645 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x268 PUSH32 0x0 DUP7 DUP6 PUSH2 0x669 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x275 DUP3 PUSH2 0x754 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x2F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x10D0 PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x2 MUL PUSH32 0x0 SUB DUP2 LT ISZERO PUSH2 0x393 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1127 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x39F DUP6 PUSH2 0x7FC JUMP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3B0 DUP11 DUP10 PUSH2 0xA83 JUMP JUMPDEST POP SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x404 JUMPI PUSH2 0x3F7 DUP6 PUSH1 0x1 ADD SLOAD DUP5 DUP7 DUP13 PUSH2 0xBC0 JUMP JUMPDEST SWAP7 POP POP POP POP POP POP POP PUSH2 0x414 JUMP JUMPDEST PUSH2 0x3F7 DUP6 PUSH1 0x2 ADD SLOAD DUP4 DUP7 DUP13 PUSH2 0xBC0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x434 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP4 POP SWAP1 SWAP2 POP DUP4 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4AB PUSH32 0x0 DUP5 DUP5 PUSH2 0x669 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP JUMPDEST PUSH32 0x0 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x536 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 ADD DUP3 SSTORE SWAP2 MSTORE ADD PUSH2 0x4D5 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x542 TIMESTAMP PUSH2 0x5E2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH1 0xFF DUP5 AND SWAP1 DUP2 LT PUSH2 0x57B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 PUSH2 0x5C6 DUP7 PUSH2 0x7FC JUMP JUMPDEST POP TIMESTAMP DUP7 SSTORE PUSH1 0x1 DUP7 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x2 DUP6 ADD SSTORE POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x0 DUP4 DUP2 PUSH2 0x60E JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH32 0x0 PUSH1 0xFF AND DUP2 DUP2 PUSH2 0x63D JUMPI INVALID JUMPDEST MOD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x678 DUP6 DUP6 PUSH2 0xA83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000 PUSH1 0x60 SWAP5 DUP6 SHL DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 DUP6 SHL DUP2 AND PUSH1 0x34 DUP4 ADD MSTORE DUP3 MLOAD PUSH1 0x28 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x48 DUP4 ADD DUP5 MSTORE DUP1 MLOAD SWAP1 DUP6 ADD KECCAK256 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x68 DUP5 ADD MSTORE SWAP11 SWAP1 SWAP5 SHL SWAP1 SWAP4 AND PUSH1 0x69 DUP5 ADD MSTORE PUSH1 0x7D DUP4 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH32 0x443B809CF6503337CB9CFA139D0F9E5E47FEC8BAC51E4FD01EDD3EA6F2DE2564 PUSH1 0x9D DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP9 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xBD SWAP1 SWAP3 ADD SWAP1 SWAP8 MSTORE DUP1 MLOAD SWAP7 ADD SWAP6 SWAP1 SWAP6 KECCAK256 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x760 TIMESTAMP PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0xFF AND DUP3 PUSH1 0x1 ADD PUSH1 0xFF AND DUP2 PUSH2 0x796 JUMPI INVALID JUMPDEST MOD SWAP1 POP PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 PUSH1 0xFF AND DUP2 SLOAD DUP2 LT PUSH2 0x7E5 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x809 PUSH2 0xC33 JUMP JUMPDEST SWAP1 POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5909C0D5 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x865 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x87B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x5A3D549300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND SWAP2 PUSH4 0x5A3D5493 SWAP2 PUSH1 0x4 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8FB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x911 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x902F1AC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP2 PUSH4 0x902F1AC SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x60 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x983 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x997 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x9AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP5 POP SWAP1 SWAP3 POP SWAP1 POP PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP1 DUP6 AND EQ PUSH2 0xA79 JUMPI DUP1 DUP5 SUB PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x9FA PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP7 AND SWAP1 DUP8 AND PUSH2 0xC3D JUMP JUMPDEST PUSH1 0x0 ADD MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL DUP8 ADD SWAP7 POP DUP1 PUSH4 0xFFFFFFFF AND PUSH2 0xA52 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC3D JUMP JUMPDEST MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL SWAP6 SWAP1 SWAP6 ADD SWAP5 POP JUMPDEST POP POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0xB0B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1179 PUSH1 0x2B SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xB45 JUMPI DUP3 DUP5 PUSH2 0xB48 JUMP JUMPDEST DUP4 DUP4 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xBB9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1103 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBCA PUSH2 0x10AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP9 DUP9 SUB DUP2 PUSH2 0xBE0 JUMPI INVALID JUMPDEST DIV PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 MSTORE SWAP1 POP PUSH2 0xC15 PUSH2 0xC10 DUP3 DUP6 PUSH2 0xE52 JUMP JUMPDEST PUSH2 0xF15 JUMP JUMPDEST PUSH18 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF TIMESTAMP AND SWAP1 JUMP JUMPDEST PUSH2 0xC45 PUSH2 0x10AA JUMP JUMPDEST PUSH1 0x0 DUP3 GT PUSH2 0xC9E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x26 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1153 PUSH1 0x26 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH2 0xCB8 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH2 0xE4C JUMP JUMPDEST PUSH18 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT PUSH2 0xDA3 JUMPI PUSH1 0x0 DUP3 PUSH1 0x70 DUP6 SWAP1 SHL DUP2 PUSH2 0xCE0 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD6E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A3A6672616374696F6E3A206F766572666C6F770000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP2 POP POP PUSH2 0xE4C JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDBF DUP5 PUSH15 0x10000000000000000000000000000 DUP6 PUSH2 0xF1C JUMP JUMPDEST SWAP1 POP PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD6E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A3A6672616374696F6E3A206F766572666C6F770000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE5A PUSH2 0x10BC JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO DUP1 PUSH2 0xE95 JUMPI POP POP DUP3 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 DUP2 MUL SWAP1 DUP4 DUP3 DUP2 PUSH2 0xE92 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xF00 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4669786564506F696E743A3A6D756C3A206F766572666C6F7700000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 DUP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST MLOAD PUSH1 0x70 SHR SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xF2B DUP7 DUP7 PUSH2 0xFEF JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP5 DUP1 PUSH2 0xF39 JUMPI INVALID JUMPDEST DUP7 DUP9 MULMOD SWAP1 POP DUP3 DUP2 GT ISZERO PUSH2 0xF4D JUMPI PUSH1 0x1 DUP3 SUB SWAP2 POP JUMPDEST SWAP2 DUP3 SWAP1 SUB SWAP2 DUP2 PUSH2 0xF6B JUMPI DUP5 DUP4 DUP2 PUSH2 0xF60 JUMPI INVALID JUMPDEST DIV SWAP4 POP POP POP POP PUSH2 0x414 JUMP JUMPDEST DUP5 DUP3 LT PUSH2 0xFD9 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x46756C6C4D6174683A2046554C4C4449565F4F564552464C4F57000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0xFE4 DUP4 DUP4 DUP8 PUSH2 0x103A JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP7 MULMOD SWAP1 POP DUP4 DUP6 MUL SWAP3 POP DUP3 DUP2 SUB SWAP2 POP DUP3 DUP2 LT ISZERO PUSH2 0x1032 JUMPI PUSH1 0x1 DUP3 SUB SWAP2 POP JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SUB DUP3 AND DUP1 DUP4 DUP2 PUSH2 0x104A JUMPI INVALID JUMPDEST DIV SWAP3 POP DUP1 DUP6 DUP2 PUSH2 0x1056 JUMPI INVALID JUMPDEST DIV SWAP5 POP DUP1 DUP2 PUSH1 0x0 SUB DUP2 PUSH2 0x1065 JUMPI INVALID JUMPDEST PUSH1 0x2 DUP6 DUP2 SUB DUP1 DUP8 MUL DUP3 SUB MUL DUP1 DUP8 MUL DUP3 SUB MUL DUP1 DUP8 MUL DUP3 SUB MUL DUP1 DUP8 MUL DUP3 SUB MUL DUP1 DUP8 MUL DUP3 SUB MUL DUP1 DUP8 MUL DUP3 SUB MUL SWAP6 DUP7 MUL SWAP1 SUB SWAP1 SWAP5 MUL SWAP4 DIV PUSH1 0x1 ADD SWAP4 SWAP1 SWAP4 MUL SWAP4 SWAP1 SWAP4 ADD MUL SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP INVALID MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A204D495353 0x49 0x4E SELFBALANCE 0x5F 0x48 0x49 MSTORE8 SLOAD 0x4F MSTORE 0x49 NUMBER COINBASE 0x4C 0x5F 0x4F TIMESTAMP MSTORE8 GASLIMIT MSTORE JUMP COINBASE SLOAD 0x49 0x4F 0x4E COINBASE PUSH21 0x6C616E7469737761704C6974654C6962726172793A KECCAK256 GAS GASLIMIT MSTORE 0x4F 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 MSTORE8 PUSH13 0x6964696E6757696E646F774F72 PUSH2 0x636C PUSH6 0x3A20554E4558 POP GASLIMIT NUMBER SLOAD GASLIMIT DIFFICULTY 0x5F SLOAD 0x49 0x4D GASLIMIT 0x5F GASLIMIT 0x4C COINBASE POP MSTORE8 GASLIMIT DIFFICULTY CHAINID PUSH10 0x786564506F696E743A3A PUSH7 0x72616374696F6E GASPRICE KECCAK256 PUSH5 0x6976697369 PUSH16 0x6E206279207A65726F41746C616E7469 PUSH20 0x7761704C6974654C6962726172793A204944454E SLOAD 0x49 NUMBER COINBASE 0x4C 0x5F COINBASE DIFFICULTY DIFFICULTY MSTORE GASLIMIT MSTORE8 MSTORE8 GASLIMIT MSTORE8 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0x30F204C72309A58F65DBBEF896DC 0xE1 DUP16 0xF6 PUSH15 0x37A14E8B579B264BABEC78B78A6473 PUSH16 0x6C63430006060033536C6964696E6757 PUSH10 0x6E646F774F7261636C65 GASPRICE KECCAK256 JUMPI 0x49 0x4E DIFFICULTY 0x4F JUMPI 0x5F 0x4E 0x4F SLOAD 0x5F GASLIMIT JUMP GASLIMIT 0x4E 0x4C MSIZE 0x5F DIFFICULTY 0x49 JUMP 0x49 MSTORE8 0x49 TIMESTAMP 0x4C GASLIMIT ",
"sourceMap": "740:5735:14:-:0;;;2011:427;5:9:-1;2:2;;;27:1;24;17:12;2:2;2011:427:14;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;2011:427:14;;;;;;;;;;;;;;2119:1;2104:16;;;;2096:61;;;;;-1:-1:-1;;;2096:61:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2248:11;2188:56;;;;2248:11;2188:56;2202:26;;;;;2189:39;;;;2188:56;:71;2167:166;;;;-1:-1:-1;;;2167:166:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2343:18;;;;-1:-1:-1;;;;;;2343:18:14;;;2371:24;;;;2405:26;;;;;;;;740:5735;;-1:-1:-1;;;;;740:5735:14;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {
"6227": [
{
"length": 32,
"start": 578
},
{
"length": 32,
"start": 1116
},
{
"length": 32,
"start": 1157
}
],
"6229": [
{
"length": 32,
"start": 536
},
{
"length": 32,
"start": 638
},
{
"length": 32,
"start": 795
}
],
"6231": [
{
"length": 32,
"start": 500
},
{
"length": 32,
"start": 1239
},
{
"length": 32,
"start": 1555
},
{
"length": 32,
"start": 1894
}
],
"6233": [
{
"length": 32,
"start": 759
},
{
"length": 32,
"start": 1428
},
{
"length": 32,
"start": 1511
},
{
"length": 32,
"start": 1607
}
]
},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100885760003560e01c8063c45a01551161005b578063c45a01551461015f578063c640752d14610190578063dbaad32f146101cd578063e4463eb2146101ea57610088565b8063556f0dc71461008d5780638a14117a146100ab5780638c86f1e4146100c5578063bfcc8e4214610108575b600080fd5b6100956101f2565b6040805160ff9092168252519081900360200190f35b6100b3610216565b60408051918252519081900360200190f35b6100b3600480360360608110156100db57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135916040909101351661023a565b6101416004803603604081101561011e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561041b565b60408051938452602084019290925282820152519081900360600190f35b61016761045a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101cb600480360360408110156101a657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661047e565b005b610095600480360360208110156101e357600080fd5b50356105e2565b6100b3610645565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806102687f00000000000000000000000000000000000000000000000000000000000000008685610669565b9050600061027582610754565b805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156102f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806110d06033913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006002027f000000000000000000000000000000000000000000000000000000000000000003811015610393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180611127602c913960400191505060405180910390fd5b60008061039f856107fc565b509150915060006103b08a89610a83565b5090508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610404576103f7856001015484868c610bc0565b9650505050505050610414565b6103f7856002015483868c610bc0565b9392505050565b6000602052816000526040600020818154811061043457fe5b600091825260209091206003909102018054600182015460029092015490935090915083565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006104ab7f00000000000000000000000000000000000000000000000000000000000000008484610669565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020549091505b7f000000000000000000000000000000000000000000000000000000000000000060ff168110156105365773ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054600190810182559152016104d5565b506000610542426105e2565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604081208054929350909160ff841690811061057b57fe5b60009182526020909120600390910201805490915042037f00000000000000000000000000000000000000000000000000000000000000008111156105da576000806105c6866107fc565b504286556001860191909155600285015550505b505050505050565b6000807f0000000000000000000000000000000000000000000000000000000000000000838161060e57fe5b0490507f000000000000000000000000000000000000000000000000000000000000000060ff16818161063d57fe5b069392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060006106788585610a83565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501207fff0000000000000000000000000000000000000000000000000000000000000060688401529a90941b9093166069840152607d8301989098527f443b809cf6503337cb9cfa139d0f9e5e47fec8bac51e4fd01edd3ea6f2de2564609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b600080610760426105e2565b905060007f000000000000000000000000000000000000000000000000000000000000000060ff168260010160ff168161079657fe5b0690506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208160ff16815481106107e557fe5b906000526020600020906003020192505050919050565b6000806000610809610c33565b90508373ffffffffffffffffffffffffffffffffffffffff16635909c0d56040518163ffffffff1660e01b815260040160206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d602081101561087b57600080fd5b5051604080517f5a3d5493000000000000000000000000000000000000000000000000000000008152905191945073ffffffffffffffffffffffffffffffffffffffff861691635a3d549391600480820192602092909190829003018186803b1580156108e757600080fd5b505afa1580156108fb573d6000803e3d6000fd5b505050506040513d602081101561091157600080fd5b5051604080517f0902f1ac00000000000000000000000000000000000000000000000000000000815290519193506000918291829173ffffffffffffffffffffffffffffffffffffffff891691630902f1ac916004808301926060929190829003018186803b15801561098357600080fd5b505afa158015610997573d6000803e3d6000fd5b505050506040513d60608110156109ad57600080fd5b5080516020820151604090920151909450909250905063ffffffff80821690851614610a795780840363ffffffff81166109fa6dffffffffffffffffffffffffffff808616908716610c3d565b600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602870196508063ffffffff16610a52856dffffffffffffffffffffffffffff16856dffffffffffffffffffffffffffff16610c3d565b517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16029590950194505b5050509193909250565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610b0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180611179602b913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610b45578284610b48565b83835b909250905073ffffffffffffffffffffffffffffffffffffffff8216610bb9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806111036024913960400191505060405180910390fd5b9250929050565b6000610bca6110aa565b60405180602001604052808588880381610be057fe5b047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690529050610c15610c108285610e52565b610f15565b71ffffffffffffffffffffffffffffffffffff169695505050505050565b63ffffffff421690565b610c456110aa565b60008211610c9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806111536026913960400191505060405180910390fd5b82610cb85750604080516020810190915260008152610e4c565b71ffffffffffffffffffffffffffffffffffff8311610da357600082607085901b81610ce057fe5b0490507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115610d6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b6040518060200160405280827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16815250915050610e4c565b6000610dbf846e01000000000000000000000000000085610f1c565b90507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115610d6e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4669786564506f696e743a3a6672616374696f6e3a206f766572666c6f770000604482015290519081900360640190fd5b92915050565b610e5a6110bc565b6000821580610e9557505082517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1682810290838281610e9257fe5b04145b610f0057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4669786564506f696e743a3a6d756c3a206f766572666c6f7700000000000000604482015290519081900360640190fd5b60408051602081019091529081529392505050565b5160701c90565b6000806000610f2b8686610fef565b9150915060008480610f3957fe5b868809905082811115610f4d576001820391505b918290039181610f6b57848381610f6057fe5b049350505050610414565b848210610fd957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f46756c6c4d6174683a2046554c4c4449565f4f564552464c4f57000000000000604482015290519081900360640190fd5b610fe483838761103a565b979650505050505050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84860990508385029250828103915082811015611032576001820391505b509250929050565b6000818103821680838161104a57fe5b04925080858161105657fe5b04945080816000038161106557fe5b60028581038087028203028087028203028087028203028087028203028087028203028087028203029586029003909402930460010193909302939093010292915050565b60408051602081019091526000815290565b604051806020016040528060008152509056fe536c6964696e6757696e646f774f7261636c653a204d495353494e475f484953544f524943414c5f4f42534552564154494f4e41746c616e7469737761704c6974654c6962726172793a205a45524f5f41444452455353536c6964696e6757696e646f774f7261636c653a20554e45585045435445445f54494d455f454c41505345444669786564506f696e743a3a6672616374696f6e3a206469766973696f6e206279207a65726f41746c616e7469737761704c6974654c6962726172793a204944454e544943414c5f414444524553534553a26469706673582212206d30f204c72309a58f65dbbef896dce18ff66e37a14e8b579b264babec78b78a64736f6c63430006060033",
"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 0xC45A0155 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x15F JUMPI DUP1 PUSH4 0xC640752D EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0xDBAAD32F EQ PUSH2 0x1CD JUMPI DUP1 PUSH4 0xE4463EB2 EQ PUSH2 0x1EA JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x556F0DC7 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x8A14117A EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x8C86F1E4 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0xBFCC8E42 EQ PUSH2 0x108 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x1F2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0x216 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 SWAP1 SWAP2 ADD CALLDATALOAD AND PUSH2 0x23A JUMP JUMPDEST PUSH2 0x141 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x11E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 DUP3 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x167 PUSH2 0x45A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1CB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x47E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x5E2 JUMP JUMPDEST PUSH2 0xB3 PUSH2 0x645 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x268 PUSH32 0x0 DUP7 DUP6 PUSH2 0x669 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x275 DUP3 PUSH2 0x754 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x2F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x33 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x10D0 PUSH1 0x33 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 PUSH1 0x2 MUL PUSH32 0x0 SUB DUP2 LT ISZERO PUSH2 0x393 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2C DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x1127 PUSH1 0x2C SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x39F DUP6 PUSH2 0x7FC JUMP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0x3B0 DUP11 DUP10 PUSH2 0xA83 JUMP JUMPDEST POP SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x404 JUMPI PUSH2 0x3F7 DUP6 PUSH1 0x1 ADD SLOAD DUP5 DUP7 DUP13 PUSH2 0xBC0 JUMP JUMPDEST SWAP7 POP POP POP POP POP POP POP PUSH2 0x414 JUMP JUMPDEST PUSH2 0x3F7 DUP6 PUSH1 0x2 ADD SLOAD DUP4 DUP7 DUP13 PUSH2 0xBC0 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x434 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 SWAP1 SWAP3 ADD SLOAD SWAP1 SWAP4 POP SWAP1 SWAP2 POP DUP4 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4AB PUSH32 0x0 DUP5 DUP5 PUSH2 0x669 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP JUMPDEST PUSH32 0x0 PUSH1 0xFF AND DUP2 LT ISZERO PUSH2 0x536 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 ADD DUP3 SSTORE SWAP2 MSTORE ADD PUSH2 0x4D5 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x542 TIMESTAMP PUSH2 0x5E2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH1 0xFF DUP5 AND SWAP1 DUP2 LT PUSH2 0x57B JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 SWAP2 MUL ADD DUP1 SLOAD SWAP1 SWAP2 POP TIMESTAMP SUB PUSH32 0x0 DUP2 GT ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 PUSH2 0x5C6 DUP7 PUSH2 0x7FC JUMP JUMPDEST POP TIMESTAMP DUP7 SSTORE PUSH1 0x1 DUP7 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x2 DUP6 ADD SSTORE POP POP JUMPDEST POP POP P