1d994932-0503-468b-953d-2697ac274172
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 31313 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 110876 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 110877 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 110878 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 110879 | capability.graph | complete | 1 / 3 | 1 week ago |
| 110880 | detector.run | complete | 1 / 3 | 1 week ago |
| 110881 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:416116] OpenAI Codex v0.77.0 (research preview)
[codex:416116] --------
[codex:416116] workdir: /tmp/codex-multi-6utv7vr8
[codex:416116] model: gpt-5.2-codex
[codex:416116] provider: openai
[codex:416116] approval: never
[codex:416116] sandbox: read-only
[codex:416116] reasoning effort: xhigh
[codex:416116] reasoning summaries: auto
[codex:416116] session id: 019b7fed-f3b2-78d3-9b52-3f67f2404d15
[codex:416116] --------
[codex:416116] user
[codex:416116] You are a profit-focused exploit hunter analyzing EVM bytecode. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:416116]
[codex:416116] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:416116]
[codex:416116] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:416116] - Gas inefficiency, code quality, or best practices
[codex:416116] - Theoretical vulnerabilities without a clear extraction path
[codex:416116] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:416116] - Issues requiring social engineering or off-chain coordination
[codex:416116]
[codex:416116] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:416116] - CALL/DELEGATECALL with controllable destination or calldata
[codex:416116] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:416116] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:416116] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:416116] - External calls before state updates (reentrancy)
[codex:416116] - SELFDESTRUCT with controllable beneficiary
[codex:416116] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:416116]
[codex:416116] For each finding, you MUST explain:
[codex:416116] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:416116] 2. The concrete sequence of transactions to extract value
[codex:416116] 3. Why you believe this is exploitable (not just suspicious)
[codex:416116]
[codex:416116] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:416116] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:416116]
[codex:416116] Output MUST be valid JSON matching the provided schema.
[codex:416116] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:416116] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:416116] mcp startup: no servers
[codex:416116]
[codex:416116] thinking
[codex:416116] **Reading BYTECODE_BUNDLE file**
[codex:416116] exec
[codex:416116] /bin/bash -lc ls in /tmp/codex-multi-6utv7vr8 succeeded in 6ms:
[codex:416116] BYTECODE_BUNDLE.txt
[codex:416116] codex-output-schema.json
[codex:416116] exec
[codex:416116] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-6utv7vr8 succeeded in 6ms:
[codex:416116] Runtime bytecode bundle for best-effort auditing.
[codex:416116] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:416116]
[codex:416116] FILE: runtime_bytecode.hex
[codex:416116] 0x6080604052600436106101355760003560e01c80637362d9c8116100ab578063929a0be61161006f578063929a0be614610945578063c0a0dce314610982578063c23c033c14610ae9578063cf30901214610b1c578063f2fde38b14610b31578063ffd2a7d314610b6457610135565b80637362d9c81461085d57806379a9ce36146108905780637ea10e79146108c35780638da5cb5b146108ff5780638f32d59b1461093057610135565b80635239413b116100fd5780635239413b1461069157806354ba6951146106bf5780635b3a48bb146107245780636897e97414610757578063715018a61461078a578063723b60d71461079f57610135565b80631d8794e01461013a5780632091d0791461018a57806335107cd7146102d3578063390dcbf7146104475780634dbda95514610665575b600080fd5b34801561014657600080fd5b506101766004803603604081101561015d57600080fd5b5080356001600160a01b0316906020013560ff16610b79565b604080519115158252519081900360200190f35b34801561019657600080fd5b506102d1600480360360608110156101ad57600080fd5b810190602081018135600160201b8111156101c757600080fd5b8201836020820111156101d957600080fd5b803590602001918460018302840111600160201b831117156101fa57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092956001600160a01b03853516959094909350604081019250602001359050600160201b81111561025d57600080fd5b82018360208201111561026f57600080fd5b803590602001918460018302840111600160201b8311171561029057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c9f945050505050565b005b3480156102df57600080fd5b506102d1600480360360e08110156102f657600080fd5b6001600160a01b03823581169261ffff602082013516926001600160401b036040830135169263ffffffff6060840135169260808101359091169181019060c0810160a0820135600160201b81111561034e57600080fd5b82018360208201111561036057600080fd5b803590602001918460018302840111600160201b8311171561038157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156103d357600080fd5b8201836020820111156103e557600080fd5b803590602001918460018302840111600160201b8311171561040657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610fe5945050505050565b34801561045357600080fd5b506102d1600480360361020081101561046b57600080fd5b6040805180820182526001600160a01b038435169392830192916060830191906020840190600290839083908082843760009201919091525050604080518082018252929594938181019392509060029083908390808284376000920191909152505060408051808201825292956001600160401b03853516959094909360608201935091602090910190600290839083908082843760009201919091525091946001600160401b038435169463ffffffff602086013516946001600160a01b03604082013516945091925090608081019060600135600160201b81111561055257600080fd5b82018360208201111561056457600080fd5b803590602001918460018302840111600160201b8311171561058557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156105d757600080fd5b8201836020820111156105e957600080fd5b803590602001918460018302840111600160201b8311171561060a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550506001600160401b0383358116945060208401358116936040013516915061148b9050565b34801561067157600080fd5b5061067a611759565b6040805161ffff9092168252519081900360200190f35b34801561069d57600080fd5b506102d1600480360360208110156106b457600080fd5b503561ffff1661176a565b3480156106cb57600080fd5b506106d46117d3565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156107105781810151838201526020016106f8565b505050509050019250505060405180910390f35b34801561073057600080fd5b506102d16004803603602081101561074757600080fd5b50356001600160a01b0316611886565b34801561076357600080fd5b506102d16004803603602081101561077a57600080fd5b50356001600160a01b0316611ad5565b34801561079657600080fd5b506102d1611b66565b3480156107ab57600080fd5b506106d4600480360360408110156107c257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156107ec57600080fd5b8201836020820111156107fe57600080fd5b803590602001918460208302840111600160201b8311171561081f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611bf7945050505050565b34801561086957600080fd5b506102d16004803603602081101561088057600080fd5b50356001600160a01b0316611d5e565b34801561089c57600080fd5b506102d1600480360360208110156108b357600080fd5b50356001600160a01b0316611def565b3480156108cf57600080fd5b5061067a600480360360408110156108e657600080fd5b5080356001600160a01b0316906020013560ff16611e80565b34801561090b57600080fd5b50610914611fb6565b604080516001600160a01b039092168252519081900360200190f35b34801561093c57600080fd5b50610176611fc5565b34801561095157600080fd5b506102d16004803603604081101561096857600080fd5b5080356001600160a01b0316906020013561ffff16611fd6565b6102d1600480360360e081101561099857600080fd5b6001600160a01b03823581169261ffff602082013516926001600160401b036040830135169263ffffffff6060840135169260808101359091169181019060c0810160a0820135600160201b8111156109f057600080fd5b820183602082011115610a0257600080fd5b803590602001918460018302840111600160201b83111715610a2357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610a7557600080fd5b820183602082011115610a8757600080fd5b803590602001918460018302840111600160201b83111715610aa857600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061233b945050505050565b348015610af557600080fd5b506102d160048036036020811015610b0c57600080fd5b50356001600160a01b03166126cc565b348015610b2857600080fd5b5061017661275d565b348015610b3d57600080fd5b506102d160048036036020811015610b5457600080fd5b50356001600160a01b031661276d565b348015610b7057600080fd5b506106d46127c0565b60006001826001811115610b8957fe5b1115610bd5576040805162461bcd60e51b8152602060048201526016602482015275496e76616c69642077686974656c697374207479706560501b604482015290519081900360640190fd5b6001600160a01b038316600090815260026020819052604090912054600019610100600183161502011604610c0c57506000610c99565b6000826001811115610c1a57fe5b60ff16600260ff160a60026000866001600160a01b03166001600160a01b031681526020019081526020016000206000815460018160011615610100020316600290048110610c6557fe5b815460011615610c845790600052602060002090602091828204019190065b9054901a600160f81b0260f81c1660ff161190505b92915050565b610cac600084848461287d565b610ce75760405162461bcd60e51b81526004018080602001828103825260218152602001806143ca6021913960400191505060405180910390fd5b60006063845181610cf457fe5b04905060005b818161ffff161015610f455761ffff606382021660008080610d1d89828661296c565b8b8701602201519295509093509150610d378a8683612990565b610d88576040805162461bcd60e51b815260206004820152601960248201527f55736572207369676e617475726520697320696e76616c696400000000000000604482015290519081900360640190fd5b610d90614035565b610d9a8286612ad2565b805161ffff87166000908152600560205260409020549192506001600160401b03908116868216039116600882900b1315610e1c576040805162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e74207661756c742062756666657200000000000000604482015290519081900360640190fd5b816020015163ffffffff168463ffffffff1611610e6a5760405162461bcd60e51b81526004018080602001828103825260358152602001806142686035913960400191505060405180910390fd5b60005461ffff600160b81b909104811690871610610ebf576040805162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5908185cdcd95d609a1b604482015290519081900360640190fd5b6001600160401b038516825263ffffffff84166020830152610ee18383612ca2565b61ffff959095166000908152600560209081526040808320805467ffffffffffffffff198082166001600160401b039283168c900383161790925560049093529220805492831692821690970116179094555050506001929092019150610cfa9050565b507f87a48f7996cb0768a7ff6b2aa1411875c4e7e13631745f388a62923a617d14ed846040518080602001828103825283818151815260200191508051906020019080838360005b83811015610fa5578181015183820152602001610f8d565b50505050905090810190601f168015610fd25780820380516001836020036101000a031916815260200191505b509250505060405180910390a150505050565b600054600160a01b900460ff161561102e5760405162461bcd60e51b815260040180806020018281038252603281526020018061413a6032913960400191505060405180910390fd5b6000805460ff60a01b1916600160a01b179081905561ffff600160b81b909104811690871610611095576040805162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5908185cdcd95d609a1b604482015290519081900360640190fd5b336001600160a01b038816146110dc5760405162461bcd60e51b81526004018080602001828103825260318152602001806142076031913960400191505060405180910390fd5b866001600160a01b0316836001600160a01b03161461112c5760405162461bcd60e51b81526004018080602001828103825260318152602001806143eb6031913960400191505060405180910390fd5b604080516001600160601b031960608a901b1660208201526001600160f01b031960f089901b1660348201526001600160c01b031960c088901b1660368201526001600160e01b031960e087901b16603e8201528151602281830301815260429091019091526111a190600390858585612fdb565b6111e6576040805162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b6111ee614035565b6111f88888612ad2565b9050806020015163ffffffff168563ffffffff16116112485760405162461bcd60e51b81526004018080602001828103825260278152602001806143a36027913960400191505060405180910390fd5b80516001600160401b038088169116101561129f576040805162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b604482015290519081900360640190fd5b61ffff87166000908152600460209081526040909120805467ffffffffffffffff1981166001600160401b039182168a900382161790915563ffffffff87169183019190915281518790031681526112f78882612ca2565b61130288888861307e565b7f1e7f91273d70e85b3418ba15a115fd91715dc834a212c47ebe55745f18b3e0a88888888888888860405180886001600160a01b03166001600160a01b031681526020018761ffff1661ffff168152602001866001600160401b03166001600160401b031681526020018563ffffffff1663ffffffff168152602001846001600160a01b03166001600160a01b031681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156113d35781810151838201526020016113bb565b50505050905090810190601f1680156114005780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561143357818101518382015260200161141b565b50505050905090810190601f1680156114605780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a150506000805460ff60a01b19169055505050505050565b896001600160401b0316836001600160401b031611156114dc5760405162461bcd60e51b815260040180806020018281038252602281526020018061416c6022913960400191505060405180910390fd5b88516001600160401b0390811690831610156115295760405162461bcd60e51b815260040180806020018281038252602f8152602001806142ed602f913960400191505060405180910390fd5b88600160200201516001600160401b0316826001600160401b031611156115815760405162461bcd60e51b815260040180806020018281038252603181526020018061441c6031913960400191505060405180910390fd5b876001600160401b0316816001600160401b031611156115d25760405162461bcd60e51b81526004018080602001828103825260238152602001806141e46023913960400191505060405180910390fd5b60608d8d600060200201518e600160200201518e600060200201518f6001602090810291909101516040805160609790971b6001600160601b0319168784015260f095861b6001600160f01b031990811660348901529490951b909316603686015260e091821b6001600160e01b031990811660388701529290911b909116603c8401528151808403909101815291810190529050808b8b600060200201518c600160200201518c8c6040516020018087805190602001908083835b602083106116ad5780518252601f19909201916020918201910161168e565b51815160209384036101000a600019018019909216911617905260c0998a1b6001600160c01b03199081169290940191825297891b8316600882015295881b82166010870152509290951b909116601883015260e01b6001600160e01b0319169181019190915260408051600481840301815260249092019052925061173a91508290508f89898961320f565b6117498e8e8e8787878e61326a565b5050505050505050505050505050565b600054600160a81b900461ffff1681565b611772611fc5565b6117b1576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b6000805461ffff909216600160a81b0261ffff60a81b19909216919091179055565b606080600060179054906101000a900461ffff1661ffff16604051908082528060200260200182016040528015611814578160200160208202803883390190505b50905060005b60005461ffff600160b81b9091048116908216101561187f5761ffff811660008181526004602052604090205483516001600160401b03909116918491811061185f57fe5b6001600160401b039092166020928302919091019091015260010161181a565b5090505b90565b6001600160a01b03811633146118e3576040805162461bcd60e51b815260206004820152601d60248201527f4164647265737320646f6573206e6f74206d617463682073656e646572000000604482015290519081900360640190fd5b604080516001600160d01b03194360d01b1660208083019190915282518083036006018152602690920183526001600160a01b0384166000908152600291829052929092205490916007600019610100600185161502019092160410156119e4576001600160a01b0382166000908152600260208190526040909120546000196101006001831615020116046119bd5760026000836001600160a01b03166001600160a01b03168152602001908152602001600020805460018160011615610100020316600290048091906001016119bb919061405c565b505b6001600160a01b03821660009081526002602052604090206119df9082613385565b611a95565b60005b6006811015611a93578181815181106119fc57fe5b602001015160f81c60f81b60026000856001600160a01b03166001600160a01b0316815260200190815260200160002082600101815460018160011615610100020316600290048110611a4b57fe5b815460011615611a6a5790600052602060002090602091828204019190065b601f036101000a81548160ff02191690600160f81b8404021790555080806001019150506119e7565b505b604080516001600160a01b038416815290517f7c6947eb6f707f58d1a16902e136c738797923b7c4a9509d9bd4be1f30e05b9d9181900360200190a15050565b611add611fc5565b611b1c576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b611b278160016134d3565b604080516001600160a01b038316815290517f62f539fdce72b1b8414b4761dac3c935f18860d32f042f01d4a8bf581fa863319181900360200190a150565b611b6e611fc5565b611bad576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060808251604051908082528060200260200182016040528015611c25578160200160208202803883390190505b50905060005b8351811015611c8157611c5185858381518110611c4457fe5b6020026020010151612ad2565b60000151828281518110611c6157fe5b6001600160401b0390921660209283029190910190910152600101611c2b565b507ffb7de0621328a977285d9d780b9cff64b112259bf180f5e2642267ef9bc1c63c84848360405180846001600160a01b03166001600160a01b031681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611d02578181015183820152602001611cea565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015611d41578181015183820152602001611d29565b505050509050019550505050505060405180910390a19392505050565b611d66611fc5565b611da5576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b611db0816001613613565b604080516001600160a01b038316815290517ff6dd8be138fcbc416afd31ac8a434b3685c35be0bffc8730eebf36cb50b5f78d9181900360200190a150565b611df7611fc5565b611e36576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b611e41816000613613565b604080516001600160a01b038316815290517f86185c63d21a208b65358328f7182bc77aafd60929c0897348857bc710eca2d29181900360200190a150565b6000611e8d336001610b79565b611ed6576040805162461bcd60e51b81526020600482015260156024820152742737ba1030903bb434ba32b634b9ba1030b236b4b760591b604482015290519081900360640190fd5b60005461ffff600160b81b9091048116600101811610611f3d576040805162461bcd60e51b815260206004820152601860248201527f4173736574206964207370616365206578686175737465640000000000000000604482015290519081900360640190fd5b506000805461ffff600160b81b808304821660018181018416830261ffff60b81b1990951694909417855584526020929092526040832080546001600160a01b03871660ff60a01b60a088901b16176001600160a81b03166001600160a81b031990911617905591546000199190049091160192915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b600054600160a01b900460ff161561201f5760405162461bcd60e51b815260040180806020018281038252603281526020018061413a6032913960400191505060405180910390fd5b6000805460ff60a01b1916600160a01b1781556001600160a01b03831681526002602081815260409283902080548451601f600019600184161561010002019092169490940490810183900483028401830190945283835260609390918301828280156120cd5780601f106120a2576101008083540402835291602001916120cd565b820191906000526020600020905b8154815290600101906020018083116120b057829003601f168201915b50505050509050600080905060078251106120e9575060078101515b65ffffffffffff8116158015906121175750600054600160a81b900461ffff16810165ffffffffffff164310155b6121525760405162461bcd60e51b815260040180806020018281038252603981526020018061436a6039913960400191505060405180910390fd5b6001600160a01b03841633146121af576040805162461bcd60e51b815260206004820152601d60248201527f4164647265737320646f6573206e6f74206d617463682073656e646572000000604482015290519081900360640190fd5b60005461ffff600160b81b909104811690841610612204576040805162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5908185cdcd95d609a1b604482015290519081900360640190fd5b61220c614035565b6122168585612ad2565b805160008252606082015191925090801561223957506001600160401b03811615155b612275576040805162461bcd60e51b81526020600482015260086024820152674e6f2066756e647360c01b604482015290519081900360640190fd5b61ffff8516600090815260046020526040902080546001600160401b038082168490031667ffffffffffffffff199091161790556122b38683612ca2565b6122be86868361307e565b602080830151604080516001600160a01b038a16815261ffff8916938101939093526001600160401b0384168382015263ffffffff9091166060830152517fb6602b0a60e2a9abe4a7816783781b101bf31e81b66cf004aa5ff3f9c533b5d09181900360800190a150506000805460ff60a01b1916905550505050565b600054600160a01b900460ff16156123845760405162461bcd60e51b815260040180806020018281038252603281526020018061413a6032913960400191505060405180910390fd5b6000805460ff60a01b1916600160a01b179081905561ffff600160b81b9091048116908716106123eb576040805162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5908185cdcd95d609a1b604482015290519081900360640190fd5b336001600160a01b038816146124325760405162461bcd60e51b81526004018080602001828103825260308152602001806142386030913960400191505060405180910390fd5b866001600160a01b0316836001600160a01b0316146124825760405162461bcd60e51b81526004018080602001828103825260308152602001806141b46030913960400191505060405180910390fd5b604080516001600160601b031960608a901b1660208201526001600160f01b031960f089901b1660348201526001600160c01b031960c088901b1660368201526001600160e01b031960e087901b16603e8201528151602281830301815260429091019091526124f790600290858585612fdb565b61253c576040805162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b612544614035565b61254e8888612ad2565b9050806020015163ffffffff168563ffffffff161161259e5760405162461bcd60e51b81526004018080602001828103825260278152602001806143a36027913960400191505060405180910390fd5b61ffff87166000908152600460209081526040909120805467ffffffffffffffff1981166001600160401b039182168a018216179091558251880116825263ffffffff8616908201526125f18882612ca2565b6125fc88888861381f565b7f334f906ad6a83b11ef611b474f217126a930d0beda33fe1f99567b0835051a4e8888888888888860405180886001600160a01b03166001600160a01b031681526020018761ffff1661ffff168152602001866001600160401b03166001600160401b031681526020018563ffffffff1663ffffffff168152602001846001600160a01b03166001600160a01b03168152602001806020018060200183810383528581815181526020019150805190602001908083836000838110156113d35781810151838201526020016113bb565b6126d4611fc5565b612713576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b61271e8160006134d3565b604080516001600160a01b038316815290517fd09f686f0004011c426dd8e783304238db2b407d25f0cbcabd206d671dcfc6f39181900360200190a150565b600054600160a01b900460ff1681565b612775611fc5565b6127b4576040805162461bcd60e51b8152602060048201819052602482015260008051602061434a833981519152604482015290519081900360640190fd5b6127bd81613934565b50565b606080600060179054906101000a900461ffff1661ffff16604051908082528060200260200182016040528015612801578160200160208202803883390190505b50905060005b60005461ffff600160b81b9091048116908216101561187f5761ffff811660008181526005602090815260408083205460049092529091205484516001600160401b039182169190921601918491811061285d57fe5b6001600160401b0390921660209283029190910190910152600101612807565b600061288a836000610b79565b61289657506000612964565b60006129408660038111156128a757fe5b8686604051602001808460ff1660ff1660f81b815260010183805190602001908083835b602083106128ea5780518252601f1990920191602091820191016128cb565b6001836020036101000a038019825116818451168082178552505050505050905001826001600160a01b03166001600160a01b031660601b815260140193505050506040516020818303038152906040526139d4565b9050836001600160a01b03166129568285613a25565b6001600160a01b0316149150505b949350505050565b600e91820261ffff1601919091016002810151600a82015191909201519192909190565b81830160428101516062820151606383015160009392919060606129b689896022613ab5565b90506000612a3a8183604051602001808360ff1660ff1660f81b815260010182805190602001908083835b60208310612a005780518252601f1990920191602091820191016129e1565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040526139d4565b9050601b8360ff161015612a4f57601b830192505b6040805160008152602080820180845284905260ff861682840152606082018890526080820187905291516001600160a01b038b169260019260a080820193601f1981019281900390910190855afa158015612aaf573d6000803e3d6000fd5b505050602060405103516001600160a01b03161496505050505050509392505050565b612ada614035565b6001600160a01b0383166000908152600260208190526040909120546015600019610100600184161502019091169190910410612c71576001600160a01b0383166000908152600260208190526040822054600e9160061960001961010060018516150201909216040104905060005b8161ffff168161ffff161015612c6e576001600160a01b0385166000908152600260208181526040808420805482516001821615610100026000190190911694909404601f810184900484028501840190925281845284938493612c0a9391929190830182828015612bfd5780601f10612bd257610100808354040283529160200191612bfd565b820191906000526020600020905b815481529060010190602001808311612be057829003601f168201915b505050505085600761296c565b9250925092508661ffff168361ffff161415612c63576040518060800160405280836001600160401b031681526020018263ffffffff1681526020018561ffff1681526020016001151581525095505050505050610c99565b505050600101612b4a565b50505b506040805160808101825260008082526020820181905261ffff841692820192909252606081019190915292915050565b6060816060015115612dcf5760008260400151600e0260090161ffff1690508260000151836020015160405160200180836001600160401b03166001600160401b031660c01b81526008018263ffffffff1663ffffffff1660e01b815260040192505050604051602081830303815290604052915060008090505b600c811015612dc857828181518110612d3257fe5b602001015160f81c60f81b60026000876001600160a01b03166001600160a01b03168152602001908152602001600020828401815460018160011615610100020316600290048110612d8057fe5b815460011615612d9f5790600052602060002090602091828204019190065b601f036101000a81548160ff02191690600160f81b840402179055508080600101915050612d1d565b5050612fd6565b506040818101518251602080850151845160f09490941b6001600160f01b0319168483015260c09290921b6001600160c01b031916602284015260e09190911b6001600160e01b031916602a8301528251808303600e018152602e90920183526001600160a01b0385166000908152600291829052929092205490916001821615610100026000190190911604612eec57600081604051602001808366ffffffffffffff1666ffffffffffffff1660c81b815260070182805190602001908083835b60208310612eb05780518252601f199092019160209182019101612e91565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050612fb4565b60026000846001600160a01b03166001600160a01b0316815260200190815260200160002080546001816001161561010002031660029004905060011415612fb457600081604051602001808365ffffffffffff1665ffffffffffff1660d01b815260060182805190602001908083835b60208310612f7c5780518252601f199092019160209182019101612f5d565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290505b6001600160a01b0383166000908152600260205260409020612fd69082613385565b505050565b60008061302f876003811115612fed57fe5b8787604051602001808460ff1660ff1660f81b81526001018380519060200190808383602083106128ea5780518252601f1990920191602091820191016128cb565b9050846001600160a01b03166130458286613a25565b6001600160a01b03161461305d576000915050613075565b61307161306a8285613a25565b6000610b79565b9150505b95945050505050565b61ffff82166130d2576040516001600160a01b038416906402540be4006001600160401b0384160280156108fc02916000818181858888f193505050501580156130cc573d6000803e3d6000fd5b50612fd6565b60006130dd83613b35565b90508060006130eb85613b54565b90506001600160401b038416600860ff83161015613119578160080360ff16600a0a818161311557fe5b0490505b60088260ff1611156131325760ff600719830116600a0a025b6040805163a9059cbb60e01b81526001600160a01b03898116600483015260248201849052915160009286169163a9059cbb91604480830192602092919082900301818787803b15801561318557600080fd5b505af1158015613199573d6000803e3d6000fd5b505050506040513d60208110156131af57600080fd5b5051905080613205576040805162461bcd60e51b815260206004820152601860248201527f436f756c64206e6f74207472616e736665722066756e64730000000000000000604482015290519081900360640190fd5b5050505050505050565b61321e60018686868686613b6f565b613263576040805162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b604482015290519081900360640190fd5b5050505050565b855185516305f5e1006001600160401b038781168682168102839004949188160291909104916132a6918b9163ffffffff16858a886000613ca3565b602080890151908801516132c6918b9163ffffffff168585886001613ca3565b7f83894d4e8b2a45cbd6d36fa4cfdf5ec3c73257f8a4dcac4af7c380e887ec513b8989600060200201518a600160200201518a600060200201518b600160209081029190910151604080516001600160a01b03909716875261ffff95861692870192909252929093168484015263ffffffff90811660608501529081166080840152861660a08301526001600160401b03808a1660c084015280891660e0840152871661010083015251908190036101200190a1505050505050505050565b8154600260018083161561010002038216048251808201602081106020841001600281146134335760018114613458578660005260208404602060002001600160028402018855602085066020850681602003808a01878b016001836101000a038083511687540187556001870196506020830192505b8183101561341957825187556001870196506020830192506133fc565b50815191036101000a9081900402909355506134ca915050565b60028302826020036101000a846020036101000a6020890151040201850187556134ca565b8660005260208404602060002001600160028402018855846020038088018589016001836101000a038083511660ff198b160185556020830192506001850194505b818310156134b7578251855560018501945060208301925061349a565b50815191036101000a9081900402909155505b50505050505050565b6001600160a01b0382166000908152600260208190526040909120546000196101006001831615020116046135075761360f565b80600181111561351357fe5b60ff16600260ff160a60ff0360026000846001600160a01b03166001600160a01b03168152602001908152602001600020600081546001816001161561010002031660029004811061356157fe5b8154600116156135805790600052602060002090602091828204019190065b9054901a600160f81b0260f81c1660f81b60026000846001600160a01b03166001600160a01b0316815260200190815260200160002060008154600181600116156101000203166002900481106135d357fe5b8154600116156135f25790600052602060002090602091828204019190065b601f036101000a81548160ff02191690600160f81b840402179055505b5050565b6001600160a01b038216600090815260026020819052604090912054600019610100600183161502011604613707576001600160a01b038216600090815260026020526040902081600181111561366657fe5b60ff16600260ff160a60f81b90808054603f811680603e81146136a35760028301845560018316613695578192505b6001600284040193506136bb565b600084815260209081902060ff198516905560419094555b50505090600182038154600116156136e25790600052602060002090602091828204019190065b90919290919091601f036101000a81548160ff02191690600160f81b84040217905550505b80600181111561371357fe5b60ff16600260ff160a60026000846001600160a01b03166001600160a01b03168152602001908152602001600020600081546001816001161561010002031660029004811061375e57fe5b81546001161561377d5790600052602060002090602091828204019190065b9054901a600160f81b0260f81c1760f81b60026000846001600160a01b03166001600160a01b0316815260200190815260200160002060008154600181600116156101000203166002900481106137d057fe5b8154600116156137ef5790600052602060002090602091828204019190065b8282829054901a600160f81b02179250601f036101000a81548160ff02191690600160f81b840402179055505050565b61ffff821661387b5734816001600160401b03166402540be40002146138765760405162461bcd60e51b815260040180806020018281038252602e81526020018061431c602e913960400191505060405180910390fd5b612fd6565b600061388683613b35565b905080600061389485613b54565b90506001600160401b038416600860ff831610156138c2578160080360ff16600a0a81816138be57fe5b0490505b60088260ff1611156138db5760ff600719830116600a0a025b604080516323b872dd60e01b81526001600160a01b0389811660048301523060248301526044820184905291516000928616916323b872dd91606480830192602092919082900301818787803b15801561318557600080fd5b6001600160a01b0381166139795760405162461bcd60e51b815260040180806020018281038252602681526020018061418e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b8051602091820120604080517f19457468657265756d205369676e6564204d6573736167653a0a33320000000081850152603c8082019390935281518082039093018352605c019052805191012090565b6020810151604082015160418301516000929190601b60ff82161015613a4957601b015b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa158015613aa0573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b606081830184511015613ac757600080fd5b606082158015613ae257604051915060208201604052613b2c565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015613b1b578051835260209283019201613b03565b5050858452601f01601f1916604052505b50949350505050565b61ffff166000908152600160205260409020546001600160a81b031690565b61ffff1660009081526001602052604081205460581b901a90565b6000613b7c846000610b79565b613b8857506000613c99565b6000613c4f886003811115613b9957fe5b888888604051602001808560ff1660ff1660f81b815260010184805190602001908083835b60208310613bdd5780518252601f199092019160209182019101613bbe565b6001836020036101000a038019825116818451168082178552505050505050905001836001600160a01b03166001600160a01b031660601b8152601401826001600160a01b03166001600160a01b031660601b81526014019450505050506040516020818303038152906040526139d4565b9050856001600160a01b0316613c658286613a25565b6001600160a01b0316148015613c955750846001600160a01b0316613c8a8285613a25565b6001600160a01b0316145b9150505b9695505050505050565b61ffff8681161415613cb4576134ca565b60005461ffff600160b81b909104811690871610613d0c576040805162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908185cdcd95d081a5960821b604482015290519081900360640190fd5b613d14614035565b613d1e8888612ad2565b9050806020015163ffffffff16866001600160401b031614613d715760405162461bcd60e51b81526004018080602001828103825260278152602001806142c66027913960400191505060405180910390fd5b600082613d7e5785613d81565b60005b6001600160a01b038a16600090815260036020908152604080832061ffff8d16845282528083206001600160401b03808d16855290835281842063ffffffff8a168552909252909120549187019250600891820b9182900b9083161215613e195760405162461bcd60e51b815260040180806020018281038252602981526020018061429d6029913960400191505060405180910390fd5b6001600160401b0382168190038415613efd5761ffff8a166000908152600560205260409020546001600160401b0380831691161015613ea0576040805162461bcd60e51b815260206004820181905260248201527f4e6f7420656e6f75676820617373657473206c65667420696e20627566666572604482015290519081900360640190fd5b61ffff8a16600090815260046020908152604080832080546001600160401b038082168701811667ffffffffffffffff19928316179092556005909352922080548084168590038416921691909117905584518201168452613fae565b83516001600160401b0380831691161015613f54576040805162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b604482015290519081900360640190fd5b61ffff8a16600090815260046020908152604080832080546001600160401b03808216879003811667ffffffffffffffff199283161790925560059093529220805480841685018416921691909117905584518290031684525b6001600160a01b038b16600090815260036020908152604080832061ffff8e16845282528083206001600160401b038d8116855290835281842063ffffffff8b168552909252909120805491831660080b68ffffffffffffffffff1668ffffffffffffffffff199092169190911790556140288b85612ca2565b5050505050505050505050565b60408051608081018252600080825260208201819052918101829052606081019190915290565b81546001816001161561010002031660029004825481601f106140b75782601f1061409c575b826008026101000360020a80910402828001178355612fd6565b60ff1916836000526020600020558180016001018355612fd6565b82601f106140e7575082600052602060002080549082601f01602090048101906140e1919061411b565b50614082565b50818001600101835581811115612fd657601f016020900481601f01602090048360005260206000209182019101612fd691905b61188391905b808211156141355760008155600101614121565b509056fe536d61727420636f6e74726163742066756e6374696f6e65642063616c6c65642066726f6d206c6f636b65642073746174655472616e73616374696f6e206578636565647320616c6c6f77656420616d6f756e744f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737346756e6374696f6e206d757374206265207369676e65642062792075736572206465706f736974696e672066756e64735472616e73616374696f6e206665652065786365656473206d6178696d756d2066656546756e6374696f6e206d7573742062652063616c6c65642062792075736572207769746864726177696e672066756e647346756e6374696f6e206d7573742062652063616c6c65642062792075736572206465706f736974696e672066756e6473486967686572206e6f6e636520686173206265656e207265636f72646564206279207573657220666f72207468697320617373657455706461746564206f7264657220736d616c6c207468616e2070726576696f75732076657273696f6e4173736574206e6f6e636520646f6573206e6f7420657175616c207369676e6564206e6f6e63655472616e73616374696f6e20756e646572206d696e696d756d20616c6c6f7765642065786368616e67652072617465416d6f756e7420706172616d6574657220646f6573206e6f74206d617463682070726f76696465642065746865724f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724e6f7420656e6f75676820626c6f636b732068617665207061737365642073696e6365207769746864726177616c20696e6974696174696f6e486967686572206e6f6e636520686173206265656e207265636f7264656420666f722075736572496e76616c6964206d61746368696e6720656e67696e65207369676e617475726546756e6374696f6e206d757374206265207369676e65642062792075736572207769746864726177696e672066756e64735472616e73616374696f6e2065786365656473206d6178696d756d20616c6c6f7765642065786368616e67652072617465a265627a7a723158205601412bf284c30ec003e1019519c27e5b1a674c80eabf83f14577b6c31f8eff64736f6c634300050b0032
[codex:416116]
[codex:416116] thinking
[codex:416116] **Analyzing bytecode for exploit patterns**
[codex:416116]
[codex:416116] I'm examining the bytecode deeply to find concrete exploit paths that could lead to unauthorized fund transfers. Since source is missing, I'm focusing on identifying risky call patterns like unchecked CALLs, delegatecalls, and signature misuse by parsing selectors, string clues, and opcode occurrences, while preparing to run lightweight Python scripts to locate critical opcodes and their context.
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import binascii
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('FILE: runtime_bytecode.hex',1)[1]
[codex:416116] # extract hex after 0x
[codex:416116] import re
[codex:416116] m = re.search(r'0x([0-9a-fA-F]+)', hexdata)
[codex:416116] if not m:
[codex:416116] raise SystemExit('no hex')
[codex:416116] hexstr = m.group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116] # opcode names
[codex:416116] opnames = {0xf1:'CALL',0xf2:'CALLCODE',0xf4:'DELEGATECALL',0xfa:'STATICCALL',0xff:'SELFDESTRUCT',0xf0:'CREATE',0xf5:'CREATE2'}
[codex:416116] # simple disasm to locate opcodes
[codex:416116] op_offsets=[]
[codex:416116] i=0
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 exited 1 in 28ms:
[codex:416116] File "<stdin>", line 15
[codex:416116] i=0
[codex:416116] IndentationError: unexpected indent
[codex:416116]
[codex:416116] thinking
[codex:416116] **Fixing indentation error and rerunning**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] m = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata)
[codex:416116] if not m:
[codex:416116] raise SystemExit('no hex')
[codex:416116] hexstr = m.group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116]
[codex:416116] opnames = {0xf1:'CALL',0xf2:'CALLCODE',0xf4:'DELEGATECALL',0xfa:'STATICCALL',0xff:'SELFDESTRUCT',0xf0:'CREATE',0xf5:'CREATE2'}
[codex:416116]
[codex:416116] op_offsets=[]
[codex:416116]
[codex:416116] i=0
[codex:416116] while i < len(bytecode):
[codex:416116] op = bytecode[i]
[codex:416116] if op in opnames:
[codex:416116] op_offsets.append((i, opnames[op]))
[codex:416116] if 0x60 <= op <= 0x7f:
[codex:416116] i += 1 + (op-0x5f)
[codex:416116] else:
[codex:416116] i += 1
[codex:416116]
[codex:416116] print('len',len(bytecode))
[codex:416116] for off, name in op_offsets:
[codex:416116] print(hex(off), name)
[codex:416116]
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 31ms:
[codex:416116] len 17537
[codex:416116] 0x2a9e STATICCALL
[codex:416116] 0x30b6 CALL
[codex:416116] 0x3188 CALL
[codex:416116] 0x3a8f STATICCALL
[codex:416116] 0x445a CALLCODE
[codex:416116]
[codex:416116] thinking
[codex:416116] **Investigating CALL and CALLCODE usage**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] m = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata)
[codex:416116] hexstr = m.group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116]
[codex:416116] # opcode table
[codex:416116] opcodes = {i: f'PUSH{i-0x5f}' for i in range(0x60,0x80)}
[codex:416116] # basic names
[codex:416116] names = {
[codex:416116] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:416116] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:416116] 0x20:'SHA3',
[codex:416116] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:416116] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:416116] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:416116] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:416116] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:416116] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:416116] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:416116] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:416116] }
[codex:416116]
[codex:416116]
[codex:416116] def disasm(start, count=40):
[codex:416116] i = start
[codex:416116] out = []
[codex:416116] while i < len(bytecode) and len(out) < count:
[codex:416116] op = bytecode[i]
[codex:416116] name = names.get(op, f'OP{op:02x}')
[codex:416116] if 0x60 <= op <= 0x7f:
[codex:416116] n = op-0x5f
[codex:416116] data = bytecode[i+1:i+1+n]
[codex:416116] out.append((i, name, data.hex()))
[codex:416116] i += 1 + n
[codex:416116] else:
[codex:416116] out.append((i, name, ''))
[codex:416116] i += 1
[codex:416116] return out
[codex:416116]
[codex:416116] # print around call offsets
[codex:416116] call_offsets = [0x30b6, 0x3188, 0x2a9e, 0x3a8f, 0x445a]
[codex:416116] for off in call_offsets:
[codex:416116] print('--- around', hex(off))
[codex:416116] for ins in disasm(off-20, 50):
[codex:416116] print(f\"{ins[0]:#06x} {ins[1]:<12} {ins[2]}\")
[codex:416116]
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 30ms:
[codex:416116] --- around 0x30b6
[codex:416116] 0x30a2 SHL
[codex:416116] 0x30a3 SUB
[codex:416116] 0x30a4 DUP5
[codex:416116] 0x30a5 AND
[codex:416116] 0x30a6 MUL
[codex:416116] 0x30a7 DUP1
[codex:416116] 0x30a8 ISZERO
[codex:416116] 0x30a9 PUSH2 08fc
[codex:416116] 0x30ac MUL
[codex:416116] 0x30ad SWAP2
[codex:416116] 0x30ae PUSH1 00
[codex:416116] 0x30b0 DUP2
[codex:416116] 0x30b1 DUP2
[codex:416116] 0x30b2 DUP2
[codex:416116] 0x30b3 DUP6
[codex:416116] 0x30b4 DUP9
[codex:416116] 0x30b5 DUP9
[codex:416116] 0x30b6 CALL
[codex:416116] 0x30b7 SWAP4
[codex:416116]
[codex:416116] thinking
[codex:416116] **Analyzing CALL arguments in disassembly**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116]
[codex:416116] names = {
[codex:416116] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:416116] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:416116] 0x20:'SHA3',
[codex:416116] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:416116] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:416116] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:416116] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:416116] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:416116] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:416116] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:416116] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:416116] }
[codex:416116]
[codex:416116] def disasm(start, end):
[codex:416116] i = start
[codex:416116] out = []
[codex:416116] while i < len(bytecode) and i < end:
[codex:416116] op = bytecode[i]
[codex:416116] name = names.get(op, f'OP{op:02x}')
[codex:416116] if 0x60 <= op <= 0x7f:
[codex:416116] n = op-0x5f
[codex:416116] data = bytecode[i+1:i+1+n]
[codex:416116] out.append((i, name, data.hex()))
[codex:416116] i += 1 + n
[codex:416116] else:
[codex:416116] out.append((i, name, ''))
[codex:416116] i += 1
[codex:416116] return out
[codex:416116]
[codex:416116] start=0x3060
[codex:416116] end=0x30c5
[codex:416116] for ins in disasm(start,end):
[codex:416116] print(f\"{ins[0]:#06x} {ins[1]:<12} {ins[2]}\")
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 29ms:
[codex:416116] 0x3060 PUSH18 61306a8285613a25565b6000610b79565b91
[codex:416116] 0x3073 POP
[codex:416116] 0x3074 POP
[codex:416116] 0x3075 JUMPDEST
[codex:416116] 0x3076 SWAP6
[codex:416116] 0x3077 SWAP5
[codex:416116] 0x3078 POP
[codex:416116] 0x3079 POP
[codex:416116] 0x307a POP
[codex:416116] 0x307b POP
[codex:416116] 0x307c POP
[codex:416116] 0x307d JUMP
[codex:416116] 0x307e JUMPDEST
[codex:416116] 0x307f PUSH2 ffff
[codex:416116] 0x3082 DUP3
[codex:416116] 0x3083 AND
[codex:416116] 0x3084 PUSH2 30d2
[codex:416116] 0x3087 JUMPI
[codex:416116] 0x3088 PUSH1 40
[codex:416116] 0x308a MLOAD
[codex:416116]
[codex:416116] thinking
[codex:416116] **Analyzing low-level token transfer call**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116]
[codex:416116] names = {
[codex:416116] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:416116] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:416116] 0x20:'SHA3',
[codex:416116] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:416116] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:416116] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:416116] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:416116] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:416116] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:416116] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:416116] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:416116] }
[codex:416116]
[codex:416116] def disasm(start, end):
[codex:416116] i = start
[codex:416116] out = []
[codex:416116] while i < len(bytecode) and i < end:
[codex:416116] op = bytecode[i]
[codex:416116] name = names.get(op, f'OP{op:02x}')
[codex:416116] if 0x60 <= op <= 0x7f:
[codex:416116] n = op-0x5f
[codex:416116] data = bytecode[i+1:i+1+n]
[codex:416116] out.append((i, name, data.hex()))
[codex:416116] i += 1 + n
[codex:416116] else:
[codex:416116] out.append((i, name, ''))
[codex:416116] i += 1
[codex:416116] return out
[codex:416116]
[codex:416116] start=0x3120
[codex:416116] end=0x31d0
[codex:416116] for ins in disasm(start,end):
[codex:416116] print(f\"{ins[0]:#06x} {ins[1]:<12} {ins[2]}\")
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 28ms:
[codex:416116] 0x3120 GT
[codex:416116] 0x3121 ISZERO
[codex:416116] 0x3122 PUSH2 3132
[codex:416116] 0x3125 JUMPI
[codex:416116] 0x3126 PUSH1 ff
[codex:416116] 0x3128 PUSH1 07
[codex:416116] 0x312a NOT
[codex:416116] 0x312b DUP4
[codex:416116] 0x312c ADD
[codex:416116] 0x312d AND
[codex:416116] 0x312e PUSH1 0a
[codex:416116] 0x3130 EXP
[codex:416116] 0x3131 MUL
[codex:416116] 0x3132 JUMPDEST
[codex:416116] 0x3133 PUSH1 40
[codex:416116] 0x3135 DUP1
[codex:416116] 0x3136 MLOAD
[codex:416116] 0x3137 PUSH4 a9059cbb
[codex:416116] 0x313c PUSH1 e0
[codex:416116] 0x313e SHL
[codex:416116]
[codex:416116] thinking
[codex:416116] **Analyzing call usage and stack effects**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116]
[codex:416116] # minimal opcode decode
[codex:416116]
[codex:416116] def iter_ops(start, end):
[codex:416116] i = start
[codex:416116] while i < end:
[codex:416116] op = bytecode[i]
[codex:416116] if 0x60 <= op <= 0x7f:
[codex:416116] n = op - 0x5f
[codex:416116] data = bytecode[i+1:i+1+n]
[codex:416116] yield i, op, data
[codex:416116] i += 1 + n
[codex:416116] else:
[codex:416116] yield i, op, None
[codex:416116] i += 1
[codex:416116]
[codex:416116] # symbolic stack
[codex:416116] class Sym(str):
[codex:416116] pass
[codex:416116]
[codex:416116] # map op to name
[codex:416116] names = {
[codex:416116] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:416116] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:416116] 0x20:'SHA3',
[codex:416116] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:416116] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:416116] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:416116] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:416116] }
[codex:416116]
[codex:416116] # initialize stack with 12 symbols a0 (top), a1, ...
[codex:416116] stack = [Sym(f'a{i}') for i in range(12)]
[codex:416116]
[codex:416116] start=0x307e
[codex:416116] end=0x30b7
[codex:416116]
[codex:416116] for pc, op, data in iter_ops(start,end):
[codex:416116] name = names.get(op, f'OP{op:02x}')
[codex:416116] # print state
[codex:416116] #print(pc, name, data.hex() if data else '')
[codex:416116] if 0x60 <= op <= 0x7f:
[codex:416116] val = int.from_bytes(data, 'big')
[codex:416116] stack.insert(0, Sym(hex(val)))
[codex:416116] elif 0x80 <= op <= 0x8f: # DUP1..DUP16
[codex:416116] n = op - 0x7f
[codex:416116] stack.insert(0, stack[n-1])
[codex:416116] elif 0x90 <= op <= 0x9f: # SWAP1..SWAP16
[codex:416116] n = op - 0x8f
[codex:416116] stack[0], stack[n] = stack[n], stack[0]
[codex:416116] else:
[codex:416116] # handle some ops
[codex:416116] def pop():
[codex:416116] return stack.pop(0)
[codex:416116] def push(x):
[codex:416116] stack.insert(0, Sym(x) if not isinstance(x, Sym) else x)
[codex:416116] if name in ('POP',):
[codex:416116] pop()
[codex:416116] elif name in ('ADD','SUB','MUL','DIV','AND','OR','XOR','SHL','SHR','SAR'):
[codex:416116] a = pop(); b = pop()
[codex:416116] push(Sym(f'({a} {name} {b})'))
[codex:416116] elif name in ('ISZERO','NOT','EXTCODESIZE'):
[codex:416116] a = pop(); push(Sym(f'{name}({a})'))
[codex:416116] elif name in ('MLOAD',):
[codex:416116] a = pop(); push(Sym(f'MLOAD({a})'))
[codex:416116] elif name in ('MSTORE','MSTORE8','SSTORE','JUMP','JUMPI'):
[codex:416116] # pop required args
[codex:416116] if name=='MSTORE' or name=='MSTORE8':
[codex:416116] pop(); pop()
[codex:416116] elif name=='SSTORE':
[codex:416116] pop(); pop()
[codex:416116] elif name=='JUMP':
[codex:416116] pop()
[codex:416116] elif name=='JUMPI':
[codex:416116] pop(); pop()
[codex:416116] elif name in ('CALL',):
[codex:416116] # stop before call
[codex:416116] print('Stack before CALL at', hex(pc))
[codex:416116] print(stack[:10])
[codex:416116] break
[codex:416116] elif name in ('GAS',):
[codex:416116] push(Sym('GAS'))
[codex:416116] elif name in ('PUSH1','PUSH2','PUSH3','PUSH4','PUSH5','PUSH6','PUSH7','PUSH8','PUSH9','PUSH10','PUSH11','PUSH12','PUSH13','PUSH14','PUSH15','PUSH16','PUSH17','PUSH18','PUSH19','PUSH20','PUSH21','PUSH22','PUSH23','PUSH24','PUSH25','PUSH26','PUSH27','PUSH28','PUSH29','PUSH30','PUSH31','PUSH32'):
[codex:416116] pass
[codex:416116] elif name in ('STOP','RETURN','REVERT','INVALID'):
[codex:416116] break
[codex:416116] else:
[codex:416116] # for unhandled, just note? treat as no stack change (may be wrong)
[codex:416116] # to keep moving, skip
[codex:416116] pass
[codex:416116]
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 32ms:
[codex:416116] Stack before CALL at 0x30b6
[codex:416116] ['(0x8fc MUL ISZERO(((a0 AND ((0x40 SHL 0x1) SUB 0x1)) MUL 0x2540be400)))', '(a2 AND ((0xa0 SHL 0x1) SUB 0x1))', '((a0 AND ((0x40 SHL 0x1) SUB 0x1)) MUL 0x2540be400)', 'MLOAD(0x40)', '0x0', 'MLOAD(0x40)', '0x0', 'MLOAD(0x40)', '((a0 AND ((0x40 SHL 0x1) SUB 0x1)) MUL 0x2540be400)', '(0x8fc MUL ISZERO(((a0 AND ((0x40 SHL 0x1) SUB 0x1)) MUL 0x2540be400)))']
[codex:416116]
[codex:416116] thinking
[codex:416116] **Analyzing opcode operand order and stack modeling**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116]
[codex:416116] names = {
[codex:416116] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:416116] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:416116] 0x20:'SHA3',
[codex:416116] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:416116] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:416116] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:416116] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:416116] }
[codex:416116]
[codex:416116] # initialize stack with 12 symbols a0 (top), a1, ...
[codex:416116] stack = [f'a{i}' for i in range(12)]
[codex:416116]
[codex:416116] def push(x):
[codex:416116] stack.insert(0, x)
[codex:416116]
[codex:416116] def pop():
[codex:416116] return stack.pop(0)
[codex:416116]
[codex:416116] # simulate
[codex:416116] start=0x307e
[codex:416116] end=0x30b7
[codex:416116]
[codex:416116] # decode loop
[codex:416116] pc = start
[codex:416116] while pc < end:
[codex:416116] op = bytecode[pc]
[codex:416116] name = names.get(op, f'OP{op:02x}')
[codex:416116] if 0x60 <= op <= 0x7f:
[codex:416116] n = op-0x5f
[codex:416116] data = bytecode[pc+1:pc+1+n]
[codex:416116] push(hex(int.from_bytes(data,'big')))
[codex:416116] pc += 1+n
[codex:416116] continue
[codex:416116] if 0x80 <= op <= 0x8f:
[codex:416116] n = op-0x7f
[codex:416116] push(stack[n-1])
[codex:416116] pc += 1
[codex:416116] continue
[codex:416116] if 0x90 <= op <= 0x9f:
[codex:416116] n = op-0x8f
[codex:416116] stack[0], stack[n] = stack[n], stack[0]
[codex:416116] pc += 1
[codex:416116] continue
[codex:416116]
[codex:416116] # process selected ops
[codex:416116] if name == 'POP':
[codex:416116] pop()
[codex:416116] elif name in ('ADD','SUB','MUL','DIV','AND','OR','XOR','SHL','SHR','SAR'):
[codex:416116] a = pop(); b = pop() # a=top, b=next
[codex:416116] push(f'({b} {name} {a})')
[codex:416116] elif name in ('ISZERO','NOT','EXTCODESIZE'):
[codex:416116] a = pop(); push(f'{name}({a})')
[codex:416116] elif name == 'MLOAD':
[codex:416116] a = pop(); push(f'MLOAD({a})')
[codex:416116] elif name == 'MSTORE' or name == 'MSTORE8':
[codex:416116] pop(); pop()
[codex:416116] elif name == 'SSTORE':
[codex:416116] pop(); pop()
[codex:416116] elif name == 'JUMP':
[codex:416116] pop()
[codex:416116] elif name == 'JUMPI':
[codex:416116] pop(); pop()
[codex:416116] elif name == 'GAS':
[codex:416116] push('GAS')
[codex:416116] elif name == 'CALL':
[codex:416116] print('Stack before CALL at', hex(pc))
[codex:416116] print(stack[:10])
[codex:416116] break
[codex:416116] else:
[codex:416116] # unhandled; assume no stack effect
[codex:416116] pass
[codex:416116] pc += 1
[codex:416116]
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 27ms:
[codex:416116] Stack before CALL at 0x30b6
[codex:416116] ['(ISZERO((0x2540be400 MUL ((0x1 SUB (0x1 SHL 0x40)) AND a0))) MUL 0x8fc)', '((0x1 SUB (0x1 SHL 0xa0)) AND a2)', '(0x2540be400 MUL ((0x1 SUB (0x1 SHL 0x40)) AND a0))', 'MLOAD(0x40)', '0x0', 'MLOAD(0x40)', '0x0', 'MLOAD(0x40)', '(0x2540be400 MUL ((0x1 SUB (0x1 SHL 0x40)) AND a0))', '(ISZERO((0x2540be400 MUL ((0x1 SUB (0x1 SHL 0x40)) AND a0))) MUL 0x8fc)']
[codex:416116]
[codex:416116] thinking
[codex:416116] **Analyzing ETH transfer call mechanics**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116]
[codex:416116] # find SSTORE opcodes
[codex:416116] sstore_offsets=[]
[codex:416116]
[codex:416116] i=0
[codex:416116] while i < len(bytecode):
[codex:416116] op=bytecode[i]
[codex:416116] if op==0x55:
[codex:416116] sstore_offsets.append(i)
[codex:416116] if 0x60 <= op <= 0x7f:
[codex:416116] i += 1 + (op-0x5f)
[codex:416116] else:
[codex:416116] i += 1
[codex:416116]
[codex:416116] print('SSTORE count', len(sstore_offsets))
[codex:416116] print([hex(o) for o in sstore_offsets[:20]])
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 33ms:
[codex:416116] SSTORE count 42
[codex:416116] ['0xf1c', '0xf33', '0x1043', '0x12d7', '0x1483', '0x17d1', '0x1a85', '0x1bf5', '0x1f68', '0x1fa4', '0x2032', '0x22a9', '0x2335', '0x2399', '0x25d5', '0x2dba', '0x33cc', '0x33ef', '0x3408', '0x342a']
[codex:416116]
[codex:416116] thinking
[codex:416116] **Analyzing potential vulnerability paths**
[codex:416116]
[codex:416116] I'm considering whether there are unprotected functions that could let an attacker steal funds, focusing on owner updates and withdrawal functions. I'm checking protections like onlyOwner, user signatures, and replay prevention. A tricky part is tracing ETH transfers internally by finding where certain jump destinations are called, so I plan to parse the bytecode for jump instructions targeting a specific address using Python. Let's explore this carefully!
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116]
[codex:416116] # find PUSH2 0x307e (opcode 0x61 0x30 0x7e)
[codex:416116] pattern = bytes([0x61, 0x30, 0x7e])
[codex:416116] indices = [i for i in range(len(bytecode)-2) if bytecode[i:i+3]==pattern]
[codex:416116] print('occurrences', len(indices))
[codex:416116] for i in indices:
[codex:416116] # show nearby opcodes bytes
[codex:416116] print(hex(i), bytecode[i-5:i+10].hex())
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 37ms:
[codex:416116] occurrences 2
[codex:416116] 0x12fe 130288888861307e565b7f1e7f9127
[codex:416116] 0x22ba 22be86868361307e565b6020808301
[codex:416116]
[codex:416116] thinking
[codex:416116] **Analyzing function call references**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata = Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr = re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)', hexdata).group(1)
[codex:416116] bytecode = bytes.fromhex(hexstr)
[codex:416116]
[codex:416116] names = {
[codex:416116] 0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
[codex:416116] 0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
[codex:416116] 0x20:'SHA3',
[codex:416116] 0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
[codex:416116] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:416116] 0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
[codex:416116] 0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
[codex:416116] 0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:416116] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:416116] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:416116] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:416116] }
[codex:416116]
[codex:416116] def disasm(start, end):
[codex:416116] i = start
[codex:416116] while i < end:
[codex:416116] op = bytecode[i]
[codex:416116] name = names.get(op, f'OP{op:02x}')
[codex:416116] if 0x60 <= op <= 0x7f:
[codex:416116] n = op-0x5f
[codex:416116] data = bytecode[i+1:i+1+n]
[codex:416116] print(f\"{i:#06x} {name:<12} {data.hex()}\")
[codex:416116] i += 1+n
[codex:416116] else:
[codex:416116] print(f\"{i:#06x} {name:<12}\")
[codex:416116] i += 1
[codex:416116]
[codex:416116] print('--- around 0x12f0')
[codex:416116] disasm(0x12d0, 0x1315)
[codex:416116] print('--- around 0x22b0')
[codex:416116] disasm(0x2290, 0x22d5)
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 28ms:
[codex:416116] --- around 0x12f0
[codex:416116] 0x12d0 SWAP1
[codex:416116] 0x12d1 SUB
[codex:416116] 0x12d2 DUP3
[codex:416116] 0x12d3 AND
[codex:416116] 0x12d4 OR
[codex:416116] 0x12d5 SWAP1
[codex:416116] 0x12d6 SWAP2
[codex:416116] 0x12d7 SSTORE
[codex:416116] 0x12d8 PUSH4 ffffffff
[codex:416116] 0x12dd DUP8
[codex:416116] 0x12de AND
[codex:416116] 0x12df SWAP2
[codex:416116] 0x12e0 DUP4
[codex:416116] 0x12e1 ADD
[codex:416116] 0x12e2 SWAP2
[codex:416116] 0x12e3 SWAP1
[codex:416116] 0x12e4 SWAP2
[codex:416116] 0x12e5 MSTORE
[codex:416116] 0x12e6 DUP2
[codex:416116]
[codex:416116] thinking
[codex:416116] **Analyzing ETH transfer call contexts**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)',hexdata).group(1)
[codex:416116] bytecode=bytes.fromhex(hexstr)
[codex:416116] # find jumpdests around 0x12d0
[codex:416116] positions=[i for i,b in enumerate(bytecode) if b==0x5b]
[codex:416116] near=[p for p in positions if 0x1200<=p<=0x1300]
[codex:416116] print(near)
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 32ms:
[codex:416116] [4680, 4767, 4855]
[codex:416116]
[codex:416116] thinking
[codex:416116] **Examining jump destinations**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)',hexdata).group(1)
[codex:416116] bytecode=bytes.fromhex(hexstr)
[codex:416116]
[codex:416116] names={
[codex:416116] 0x5b:'JUMPDEST',0x56:'JUMP',0x57:'JUMPI',0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x73:'PUSH20',0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
[codex:416116] 0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
[codex:416116] }
[codex:416116]
[codex:416116] def disasm(start,end):
[codex:416116] i=start
[codex:416116] while i<end:
[codex:416116] op=bytecode[i]
[codex:416116] name=names.get(op)
[codex:416116] if 0x60<=op<=0x7f:
[codex:416116] n=op-0x5f
[codex:416116] data=bytecode[i+1:i+1+n]
[codex:416116] print(f\"{i:#06x} PUSH{n:<2} {data.hex()}\")
[codex:416116] i+=1+n
[codex:416116] else:
[codex:416116] if name:
[codex:416116] print(f\"{i:#06x} {name}\")
[codex:416116] else:
[codex:416116] print(f\"{i:#06x} OP{op:02x}\")
[codex:416116] i+=1
[codex:416116]
[codex:416116] print('--- around 0x1240')
[codex:416116] disasm(0x1230,0x12b0)
[codex:416116] print('--- around 0x12b0')
[codex:416116] disasm(0x12b0,0x1310)
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 27ms:
[codex:416116] --- around 0x1240
[codex:416116] 0x1230 OP20
[codex:416116] 0x1231 OP01
[codex:416116] 0x1232 DUP1
[codex:416116] 0x1233 PUSH2 43a3
[codex:416116] 0x1236 PUSH1 27
[codex:416116] 0x1238 SWAP2
[codex:416116] 0x1239 OP39
[codex:416116] 0x123a PUSH1 40
[codex:416116] 0x123c OP01
[codex:416116] 0x123d SWAP2
[codex:416116] 0x123e OP50
[codex:416116] 0x123f OP50
[codex:416116] 0x1240 PUSH1 40
[codex:416116] 0x1242 OP51
[codex:416116] 0x1243 DUP1
[codex:416116] 0x1244 SWAP2
[codex:416116] 0x1245 OP03
[codex:416116] 0x1246 SWAP1
[codex:416116] 0x1247 OPfd
[codex:416116]
[codex:416116] thinking
[codex:416116] **Mapping function selectors to code offsets**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)',hexdata).group(1)
[codex:416116] bytecode=bytes.fromhex(hexstr)
[codex:416116]
[codex:416116] # scan for pattern PUSH4 <sel> EQ PUSH2 <dest> JUMPI
[codex:416116] results=[]
[codex:416116]
[codex:416116] # disasm to get opcodes and immediates with pc
[codex:416116] ops=[]
[codex:416116] i=0
[codex:416116] while i < len(bytecode):
[codex:416116] op=bytecode[i]
[codex:416116] if 0x60 <= op <= 0x7f:
[codex:416116] n=op-0x5f
[codex:416116] data=bytecode[i+1:i+1+n]
[codex:416116] ops.append((i, op, data))
[codex:416116] i += 1+n
[codex:416116] else:
[codex:416116] ops.append((i, op, None))
[codex:416116] i += 1
[codex:416116]
[codex:416116] # find pattern
[codex:416116] for idx in range(len(ops)-4):
[codex:416116] pc, op, data = ops[idx]
[codex:416116] if op==0x63: # PUSH4
[codex:416116] sel = data.hex()
[codex:416116] # next op should be EQ (0x14)
[codex:416116] if ops[idx+1][1]==0x14 and ops[idx+2][1]==0x61 and ops[idx+4][1]==0x57:
[codex:416116] dest = int.from_bytes(ops[idx+2][2], 'big')
[codex:416116] results.append((sel, dest, pc))
[codex:416116]
[codex:416116] # print unique selectors/dests
[codex:416116] for sel,dest,pc in results:
[codex:416116] print(sel, hex(dest), hex(pc))
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 34ms:
[codex:416116]
[codex:416116]
[codex:416116] thinking
[codex:416116] **Analyzing bytecode dispatch pattern**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)',hexdata).group(1)
[codex:416116] # search pattern in hex string for push4 eq push2 jumpi
[codex:416116] pat=re.compile(r'63([0-9a-fA-F]{8})14' # push4 sel, eq
[codex:416116] r'61([0-9a-fA-F]{4})57') # push2 dest, jumpi
[codex:416116] matches=list(pat.finditer(hexstr))
[codex:416116] print('matches', len(matches))
[codex:416116] for m in matches[:30]:
[codex:416116] sel=m.group(1)
[codex:416116] dest=m.group(2)
[codex:416116] print(sel, dest)
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 29ms:
[codex:416116] matches 22
[codex:416116] 929a0be6 0945
[codex:416116] c0a0dce3 0982
[codex:416116] c23c033c 0ae9
[codex:416116] cf309012 0b1c
[codex:416116] f2fde38b 0b31
[codex:416116] ffd2a7d3 0b64
[codex:416116] 7362d9c8 085d
[codex:416116] 79a9ce36 0890
[codex:416116] 7ea10e79 08c3
[codex:416116] 8da5cb5b 08ff
[codex:416116] 8f32d59b 0930
[codex:416116] 5239413b 0691
[codex:416116] 54ba6951 06bf
[codex:416116] 5b3a48bb 0724
[codex:416116] 6897e974 0757
[codex:416116] 715018a6 078a
[codex:416116] 723b60d7 079f
[codex:416116] 1d8794e0 013a
[codex:416116] 2091d079 018a
[codex:416116]
[codex:416116] thinking
[codex:416116] **Mapping jump destinations to functions**
[codex:416116] exec
[codex:416116] /bin/bash -lc "python - <<'PY'
[codex:416116] from pathlib import Path
[codex:416116] import re
[codex:416116] hexdata=Path('BYTECODE_BUNDLE.txt').read_text()
[codex:416116] hexstr=re.search(r'FILE: runtime_bytecode.hex\\n0x([0-9a-fA-F]+)',hexdata).group(1)
[codex:416116] pat='61124856'
[codex:416116] idx=[m.start() for m in re.finditer(pat, hexstr)]
[codex:416116] print('occurrences', len(idx))
[codex:416116] print([hex(i//2) for i in idx[:10]])
[codex:416116] PY" in /tmp/codex-multi-6utv7vr8 succeeded in 28ms:
[codex:416116] occurrences 0
[codex:416116] []
[codex:416116]
[codex:416116] thinking
[codex:416116] **Analyzing internal function boundaries and vulnerability potential**
[codex:416116]
[codex:416116] I'm mapping internal function addresses and jump destinations to understand which function includes specific code regions like 0x1248 and 0x22b0, aiming to clarify the control flow. Then, I evaluate the contract's security by checking for unprotected calls, ownership controls, signature verifications, and unusual call patterns such as delegatecalls or selfdestructs. After thorough inspection, I find no obvious exploitable vulnerabilities or unprotected fund transfers, so I'll prepare a JSON report indicating no findings with a concise summary explaining this conclusion.
[codex:416116] codex
[codex:416116] {"no_findings":true,"summary":"Reviewed the full runtime bytecode bundle. The only value transfers observed are standard ERC20 `transfer`/`transferFrom` calls and an ETH `CALL` using a 2300‑gas stipend, all embedded in complex balance/nonce/signature logic. No delegatecall/selfdestruct, no controllable upgrade path, and no unprotected value-transfer path were identified from bytecode alone.","findings":[]}
[codex:416116] tokens used
[codex:416116] 100,613
[codex:416116] {"no_findings":true,"summary":"Reviewed the full runtime bytecode bundle. The only value transfers observed are standard ERC20 `transfer`/`transferFrom` calls and an ETH `CALL` using a 2300‑gas stipend, all embedded in complex balance/nonce/signature logic. No delegatecall/selfdestruct, no controllable upgrade path, and no unprotected value-transfer path were identified from bytecode alone.","findings":[]}
{
"codex": {
"ran_at": "2026-01-02T18:25:11.706576+00:00",
"returncode": 0
},
"summary": "Reviewed the full runtime bytecode bundle. The only value transfers observed are standard ERC20 `transfer`/`transferFrom` calls and an ETH `CALL` using a 2300\u2011gas stipend, all embedded in complex balance/nonce/signature logic. No delegatecall/selfdestruct, no controllable upgrade path, and no unprotected value-transfer path were identified from bytecode alone.",
"raw_final": {
"summary": "Reviewed the full runtime bytecode bundle. The only value transfers observed are standard ERC20 `transfer`/`transferFrom` calls and an ETH `CALL` using a 2300\u2011gas stipend, all embedded in complex balance/nonce/signature logic. No delegatecall/selfdestruct, no controllable upgrade path, and no unprotected value-transfer path were identified from bytecode alone.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0135 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x7362d9c8 00000019: GT 0000001a: PUSH2 0x00ab 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x929a0be6 00000024: GT 00000025: PUSH2 0x006f 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0x929a0be6 0000002f: EQ 00000030: PUSH2 0x0945 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xc0a0dce3 0000003a: EQ 0000003b: PUSH2 0x0982 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xc23c033c 00000045: EQ 00000046: PUSH2 0x0ae9 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xcf309012 00000050: EQ 00000051: PUSH2 0x0b1c 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf2fde38b 0000005b: EQ 0000005c: PUSH2 0x0b31 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xffd2a7d3 00000066: EQ 00000067: PUSH2 0x0b64 0000006a: JUMPI 0000006b: PUSH2 0x0135 0000006e: JUMP 0000006f: JUMPDEST 00000070: DUP1 00000071: PUSH4 0x7362d9c8 00000076: EQ 00000077: PUSH2 0x085d 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0x79a9ce36 00000081: EQ 00000082: PUSH2 0x0890 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0x7ea10e79 0000008c: EQ 0000008d: PUSH2 0x08c3 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0x8da5cb5b 00000097: EQ 00000098: PUSH2 0x08ff 0000009b: JUMPI 0000009c: DUP1 0000009d: PUSH4 0x8f32d59b 000000a2: EQ 000000a3: PUSH2 0x0930 000000a6: JUMPI 000000a7: PUSH2 0x0135 000000aa: JUMP 000000ab: JUMPDEST 000000ac: DUP1 000000ad: PUSH4 0x5239413b 000000b2: GT 000000b3: PUSH2 0x00fd 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x5239413b 000000bd: EQ 000000be: PUSH2 0x0691 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0x54ba6951 000000c8: EQ 000000c9: PUSH2 0x06bf 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0x5b3a48bb 000000d3: EQ 000000d4: PUSH2 0x0724 000000d7: JUMPI 000000d8: DUP1 000000d9: PUSH4 0x6897e974 000000de: EQ 000000df: PUSH2 0x0757 000000e2: JUMPI 000000e3: DUP1 000000e4: PUSH4 0x715018a6 000000e9: EQ 000000ea: PUSH2 0x078a 000000ed: JUMPI 000000ee: DUP1 000000ef: PUSH4 0x723b60d7 000000f4: EQ 000000f5: PUSH2 0x079f 000000f8: JUMPI 000000f9: PUSH2 0x0135 000000fc: JUMP 000000fd: JUMPDEST 000000fe: DUP1 000000ff: PUSH4 0x1d8794e0 00000104: EQ 00000105: PUSH2 0x013a 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0x2091d079 0000010f: EQ 00000110: PUSH2 0x018a 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0x35107cd7 0000011a: EQ 0000011b: PUSH2 0x02d3 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0x390dcbf7 00000125: EQ 00000126: PUSH2 0x0447 00000129: JUMPI 0000012a: DUP1 0000012b: PUSH4 0x4dbda955 00000130: EQ 00000131: PUSH2 0x0665 00000134: JUMPI 00000135: JUMPDEST 00000136: PUSH1 0x00 00000138: DUP1 00000139: REVERT 0000013a: JUMPDEST 0000013b: CALLVALUE 0000013c: DUP1 0000013d: ISZERO 0000013e: PUSH2 0x0146 00000141: JUMPI 00000142: PUSH1 0x00 00000144: DUP1 00000145: REVERT 00000146: JUMPDEST 00000147: POP 00000148: PUSH2 0x0176 0000014b: PUSH1 0x04 0000014d: DUP1 0000014e: CALLDATASIZE 0000014f: SUB 00000150: PUSH1 0x40 00000152: DUP2 00000153: LT 00000154: ISZERO 00000155: PUSH2 0x015d 00000158: JUMPI 00000159: PUSH1 0x00 0000015b: DUP1 0000015c: REVERT 0000015d: JUMPDEST 0000015e: POP 0000015f: DUP1 00000160: CALLDATALOAD 00000161: PUSH1 0x01 00000163: PUSH1 0x01 00000165: PUSH1 0xa0 00000167: SHL 00000168: SUB 00000169: AND 0000016a: SWAP1 0000016b: PUSH1 0x20 0000016d: ADD 0000016e: CALLDATALOAD 0000016f: PUSH1 0xff 00000171: AND 00000172: PUSH2 0x0b79 00000175: JUMP 00000176: JUMPDEST 00000177: PUSH1 0x40 00000179: DUP1 0000017a: MLOAD 0000017b: SWAP2 0000017c: ISZERO 0000017d: ISZERO 0000017e: DUP3 0000017f: MSTORE 00000180: MLOAD 00000181: SWAP1 00000182: DUP2 00000183: SWAP1 00000184: SUB 00000185: PUSH1 0x20 00000187: ADD 00000188: SWAP1 00000189: RETURN 0000018a: JUMPDEST 0000018b: CALLVALUE 0000018c: DUP1 0000018d: ISZERO 0000018e: PUSH2 0x0196 00000191: JUMPI 00000192: PUSH1 0x00 00000194: DUP1 00000195: REVERT 00000196: JUMPDEST 00000197: POP 00000198: PUSH2 0x02d1 0000019b: PUSH1 0x04 0000019d: DUP1 0000019e: CALLDATASIZE 0000019f: SUB 000001a0: PUSH1 0x60 000001a2: DUP2 000001a3: LT 000001a4: ISZERO 000001a5: PUSH2 0x01ad 000001a8: JUMPI 000001a9: PUSH1 0x00 000001ab: DUP1 000001ac: REVERT 000001ad: JUMPDEST 000001ae: DUP2 000001af: ADD 000001b0: SWAP1 000001b1: PUSH1 0x20 000001b3: DUP2 000001b4: ADD 000001b5: DUP2 000001b6: CALLDATALOAD 000001b7: PUSH1 0x01 000001b9: PUSH1 0x20 000001bb: SHL 000001bc: DUP2 000001bd: GT 000001be: ISZERO 000001bf: PUSH2 0x01c7 000001c2: JUMPI 000001c3: PUSH1 0x00 000001c5: DUP1 000001c6: REVERT 000001c7: JUMPDEST 000001c8: DUP3 000001c9: ADD 000001ca: DUP4 000001cb: PUSH1 0x20 000001cd: DUP3 000001ce: ADD 000001cf: GT 000001d0: ISZERO 000001d1: PUSH2 0x01d9 000001d4: JUMPI 000001d5: PUSH1 0x00 000001d7: DUP1 000001d8: REVERT 000001d9: JUMPDEST 000001da: DUP1 000001db: CALLDATALOAD 000001dc: SWAP1 000001dd: PUSH1 0x20 000001df: ADD 000001e0: SWAP2 000001e1: DUP5 000001e2: PUSH1 0x01 000001e4: DUP4 000001e5: MUL 000001e6: DUP5 000001e7: ADD 000001e8: GT 000001e9: PUSH1 0x01 000001eb: PUSH1 0x20 000001ed: SHL 000001ee: DUP4 000001ef: GT 000001f0: OR 000001f1: ISZERO 000001f2: PUSH2 0x01fa 000001f5: JUMPI 000001f6: PUSH1 0x00 000001f8: DUP1 000001f9: REVERT 000001fa: JUMPDEST 000001fb: SWAP2 000001fc: SWAP1 000001fd: DUP1 000001fe: DUP1 000001ff: PUSH1 0x1f 00000201: ADD 00000202: PUSH1 0x20 00000204: DUP1 00000205: SWAP2 00000206: DIV 00000207: MUL 00000208: PUSH1 0x20 0000020a: ADD 0000020b: PUSH1 0x40 0000020d: MLOAD 0000020e: SWAP1 0000020f: DUP2 00000210: ADD 00000211: PUSH1 0x40 00000213: MSTORE 00000214: DUP1 00000215: SWAP4 00000216: SWAP3 00000217: SWAP2 00000218: SWAP1 00000219: DUP2 0000021a: DUP2 0000021b: MSTORE 0000021c: PUSH1 0x20 0000021e: ADD 0000021f: DUP4 00000220: DUP4 00000221: DUP1 00000222: DUP3 00000223: DUP5 00000224: CALLDATACOPY 00000225: PUSH1 0x00 00000227: SWAP3 00000228: ADD 00000229: SWAP2 0000022a: SWAP1 0000022b: SWAP2 0000022c: MSTORE 0000022d: POP 0000022e: SWAP3 0000022f: SWAP6 00000230: PUSH1 0x01 00000232: PUSH1 0x01 00000234: PUSH1 0xa0 00000236: SHL 00000237: SUB 00000238: DUP6 00000239: CALLDATALOAD 0000023a: AND 0000023b: SWAP6 0000023c: SWAP1 0000023d: SWAP5 0000023e: SWAP1 0000023f: SWAP4 00000240: POP 00000241: PUSH1 0x40 00000243: DUP2 00000244: ADD 00000245: SWAP3 00000246: POP 00000247: PUSH1 0x20 00000249: ADD 0000024a: CALLDATALOAD 0000024b: SWAP1 0000024c: POP 0000024d: PUSH1 0x01 0000024f: PUSH1 0x20 00000251: SHL 00000252: DUP2 00000253: GT 00000254: ISZERO 00000255: PUSH2 0x025d 00000258: JUMPI 00000259: PUSH1 0x00 0000025b: DUP1 0000025c: REVERT 0000025d: JUMPDEST 0000025e: DUP3 0000025f: ADD 00000260: DUP4 00000261: PUSH1 0x20 00000263: DUP3 00000264: ADD 00000265: GT 00000266: ISZERO 00000267: PUSH2 0x026f 0000026a: JUMPI 0000026b: PUSH1 0x00 0000026d: DUP1 0000026e: REVERT 0000026f: JUMPDEST 00000270: DUP1 00000271: CALLDATALOAD 00000272: SWAP1 00000273: PUSH1 0x20 00000275: ADD 00000276: SWAP2 00000277: DUP5 00000278: PUSH1 0x01 0000027a: DUP4 0000027b: MUL 0000027c: DUP5 0000027d: ADD 0000027e: GT 0000027f: PUSH1 0x01 00000281: PUSH1 0x20 00000283: SHL 00000284: DUP4 00000285: GT 00000286: OR 00000287: ISZERO 00000288: PUSH2 0x0290 0000028b: JUMPI 0000028c: PUSH1 0x00 0000028e: DUP1 0000028f: REVERT 00000290: JUMPDEST 00000291: SWAP2 00000292: SWAP1 00000293: DUP1 00000294: DUP1 00000295: PUSH1 0x1f 00000297: ADD 00000298: PUSH1 0x20 0000029a: DUP1 0000029b: SWAP2 0000029c: DIV 0000029d: MUL 0000029e: PUSH1 0x20 000002a0: ADD 000002a1: PUSH1 0x40 000002a3: MLOAD 000002a4: SWAP1 000002a5: DUP2 000002a6: ADD 000002a7: PUSH1 0x40 000002a9: MSTORE 000002aa: DUP1 000002ab: SWAP4 000002ac: SWAP3 000002ad: SWAP2 000002ae: SWAP1 000002af: DUP2 000002b0: DUP2 000002b1: MSTORE 000002b2: PUSH1 0x20 000002b4: ADD 000002b5: DUP4 000002b6: DUP4 000002b7: DUP1 000002b8: DUP3 000002b9: DUP5 000002ba: CALLDATACOPY 000002bb: PUSH1 0x00 000002bd: SWAP3 000002be: ADD 000002bf: SWAP2 000002c0: SWAP1 000002c1: SWAP2 000002c2: MSTORE 000002c3: POP 000002c4: SWAP3 000002c5: SWAP6 000002c6: POP 000002c7: PUSH2 0x0c9f 000002ca: SWAP5 000002cb: POP 000002cc: POP 000002cd: POP 000002ce: POP 000002cf: POP 000002d0: JUMP 000002d1: JUMPDEST 000002d2: STOP 000002d3: JUMPDEST 000002d4: CALLVALUE 000002d5: DUP1 000002d6: ISZERO 000002d7: PUSH2 0x02df 000002da: JUMPI 000002db: PUSH1 0x00 000002dd: DUP1 000002de: REVERT 000002df: JUMPDEST 000002e0: POP 000002e1: PUSH2 0x02d1 000002e4: PUSH1 0x04 000002e6: DUP1 000002e7: CALLDATASIZE 000002e8: SUB 000002e9: PUSH1 0xe0 000002eb: DUP2 000002ec: LT 000002ed: ISZERO 000002ee: PUSH2 0x02f6 000002f1: JUMPI 000002f2: PUSH1 0x00 000002f4: DUP1 000002f5: REVERT 000002f6: JUMPDEST 000002f7: PUSH1 0x01 000002f9: PUSH1 0x01 000002fb: PUSH1 0xa0 000002fd: SHL 000002fe: SUB 000002ff: DUP3 00000300: CALLDATALOAD 00000301: DUP2 00000302: AND 00000303: SWAP3 00000304: PUSH2 0xffff 00000307: PUSH1 0x20 00000309: DUP3 0000030a: ADD 0000030b: CALLDATALOAD 0000030c: AND 0000030d: SWAP3 0000030e: PUSH1 0x01 00000310: PUSH1 0x01 00000312: PUSH1 0x40 00000314: SHL 00000315: SUB 00000316: PUSH1 0x40 00000318: DUP4 00000319: ADD 0000031a: CALLDATALOAD 0000031b: AND 0000031c: SWAP3 0000031d: PUSH4 0xffffffff 00000322: PUSH1 0x60 00000324: DUP5 00000325: ADD 00000326: CALLDATALOAD 00000327: AND 00000328: SWAP3 00000329: PUSH1 0x80 0000032b: DUP2 0000032c: ADD 0000032d: CALLDATALOAD 0000032e: SWAP1 0000032f: SWAP2 00000330: AND 00000331: SWAP2 00000332: DUP2 00000333: ADD 00000334: SWAP1 00000335: PUSH1 0xc0 00000337: DUP2 00000338: ADD 00000339: PUSH1 0xa0 0000033b: DUP3 0000033c: ADD 0000033d: CALLDATALOAD 0000033e: PUSH1 0x01 00000340: PUSH1 0x20 00000342: SHL 00000343: DUP2 00000344: GT 00000345: ISZERO 00000346: PUSH2 0x034e 00000349: JUMPI 0000034a: PUSH1 0x00 0000034c: DUP1 0000034d: REVERT 0000034e: JUMPDEST 0000034f: DUP3 00000350: ADD 00000351: DUP4 00000352: PUSH1 0x20 00000354: DUP3 00000355: ADD 00000356: GT 00000357: ISZERO 00000358: PUSH2 0x0360 0000035b: JUMPI 0000035c: PUSH1 0x00 0000035e: DUP1 0000035f: REVERT 00000360: JUMPDEST 00000361: DUP1 00000362: CALLDATALOAD 00000363: SWAP1 00000364: PUSH1 0x20 00000366: ADD 00000367: SWAP2 00000368: DUP5 00000369: PUSH1 0x01 0000036b: DUP4 0000036c: MUL 0000036d: DUP5 0000036e: ADD 0000036f: GT 00000370: PUSH1 0x01 00000372: PUSH1 0x20 00000374: SHL 00000375: DUP4 00000376: GT 00000377: OR 00000378: ISZERO 00000379: PUSH2 0x0381 0000037c: JUMPI 0000037d: PUSH1 0x00 0000037f: DUP1 00000380: REVERT 00000381: JUMPDEST 00000382: SWAP2 00000383: SWAP1 00000384: DUP1 00000385: DUP1 00000386: PUSH1 0x1f 00000388: ADD 00000389: PUSH1 0x20 0000038b: DUP1 0000038c: SWAP2 0000038d: DIV 0000038e: MUL 0000038f: PUSH1 0x20 00000391: ADD 00000392: PUSH1 0x40 00000394: MLOAD 00000395: SWAP1 00000396: DUP2 00000397: ADD 00000398: PUSH1 0x40 0000039a: MSTORE 0000039b: DUP1 0000039c: SWAP4 0000039d: SWAP3 0000039e: SWAP2 0000039f: SWAP1 000003a0: DUP2 000003a1: DUP2 000003a2: MSTORE 000003a3: PUSH1 0x20 000003a5: ADD 000003a6: DUP4 000003a7: DUP4 000003a8: DUP1 000003a9: DUP3 000003aa: DUP5 000003ab: CALLDATACOPY 000003ac: PUSH1 0x00 000003ae: SWAP3 000003af: ADD 000003b0: SWAP2 000003b1: SWAP1 000003b2: SWAP2 000003b3: MSTORE 000003b4: POP 000003b5: SWAP3 000003b6: SWAP6 000003b7: SWAP5 000003b8: SWAP4 000003b9: PUSH1 0x20 000003bb: DUP2 000003bc: ADD 000003bd: SWAP4 000003be: POP 000003bf: CALLDATALOAD 000003c0: SWAP2 000003c1: POP 000003c2: POP 000003c3: PUSH1 0x01 000003c5: PUSH1 0x20 000003c7: SHL 000003c8: DUP2 000003c9: GT 000003ca: ISZERO 000003cb: PUSH2 0x03d3 000003ce: JUMPI 000003cf: PUSH1 0x00 000003d1: DUP1 000003d2: REVERT 000003d3: JUMPDEST 000003d4: DUP3 000003d5: ADD 000003d6: DUP4 000003d7: PUSH1 0x20 000003d9: DUP3 000003da: ADD 000003db: GT 000003dc: ISZERO 000003dd: PUSH2 0x03e5 000003e0: JUMPI 000003e1: PUSH1 0x00 000003e3: DUP1 000003e4: REVERT 000003e5: JUMPDEST 000003e6: DUP1 000003e7: CALLDATALOAD 000003e8: SWAP1 000003e9: PUSH1 0x20 000003eb: ADD 000003ec: SWAP2 000003ed: DUP5 000003ee: PUSH1 0x01 000003f0: DUP4 000003f1: MUL 000003f2: DUP5 000003f3: ADD 000003f4: GT 000003f5: PUSH1 0x01 000003f7: PUSH1 0x20 000003f9: SHL 000003fa: DUP4 000003fb: GT 000003fc: OR 000003fd: ISZERO 000003fe: PUSH2 0x0406 00000401: JUMPI 00000402: PUSH1 0x00 00000404: DUP1 00000405: REVERT 00000406: JUMPDEST 00000407: SWAP2 00000408: SWAP1 00000409: DUP1 0000040a: DUP1 0000040b: PUSH1 0x1f 0000040d: ADD 0000040e: PUSH1 0x20 00000410: DUP1 00000411: SWAP2 00000412: DIV 00000413: MUL 00000414: PUSH1 0x20 00000416: ADD 00000417: PUSH1 0x40 00000419: MLOAD 0000041a: SWAP1 0000041b: DUP2 0000041c: ADD 0000041d: PUSH1 0x40 0000041f: MSTORE 00000420: DUP1 00000421: SWAP4 00000422: SWAP3 00000423: SWAP2 00000424: SWAP1 00000425: DUP2 00000426: DUP2 00000427: MSTORE 00000428: PUSH1 0x20 0000042a: ADD 0000042b: DUP4 0000042c: DUP4 0000042d: DUP1 0000042e: DUP3 0000042f: DUP5 00000430: CALLDATACOPY 00000431: PUSH1 0x00 00000433: SWAP3 00000434: ADD 00000435: SWAP2 00000436: SWAP1 00000437: SWAP2 00000438: MSTORE 00000439: POP 0000043a: SWAP3 0000043b: SWAP6 0000043c: POP 0000043d: PUSH2 0x0fe5 00000440: SWAP5 00000441: POP 00000442: POP 00000443: POP 00000444: POP 00000445: POP 00000446: JUMP 00000447: JUMPDEST 00000448: CALLVALUE 00000449: DUP1 0000044a: ISZERO 0000044b: PUSH2 0x0453 0000044e: JUMPI 0000044f: PUSH1 0x00 00000451: DUP1 00000452: REVERT 00000453: JUMPDEST 00000454: POP 00000455: PUSH2 0x02d1 00000458: PUSH1 0x04 0000045a: DUP1 0000045b: CALLDATASIZE 0000045c: SUB 0000045d: PUSH2 0x0200 00000460: DUP2 00000461: LT 00000462: ISZERO 00000463: PUSH2 0x046b 00000466: JUMPI 00000467: PUSH1 0x00 00000469: DUP1 0000046a: REVERT 0000046b: JUMPDEST 0000046c: PUSH1 0x40 0000046e: DUP1 0000046f: MLOAD 00000470: DUP1 00000471: DUP3 00000472: ADD 00000473: DUP3 00000474: MSTORE 00000475: PUSH1 0x01 00000477: PUSH1 0x01 00000479: PUSH1 0xa0 0000047b: SHL 0000047c: SUB 0000047d: DUP5 0000047e: CALLDATALOAD 0000047f: AND 00000480: SWAP4 00000481: SWAP3 00000482: DUP4 00000483: ADD 00000484: SWAP3 00000485: SWAP2 00000486: PUSH1 0x60 00000488: DUP4 00000489: ADD 0000048a: SWAP2 0000048b: SWAP1 0000048c: PUSH1 0x20 0000048e: DUP5 0000048f: ADD 00000490: SWAP1 00000491: PUSH1 0x02 00000493: SWAP1 00000494: DUP4 00000495: SWAP1 00000496: DUP4 00000497: SWAP1 00000498: DUP1 00000499: DUP3 0000049a: DUP5 0000049b: CALLDATACOPY 0000049c: PUSH1 0x00 0000049e: SWAP3 0000049f: ADD 000004a0: SWAP2 000004a1: SWAP1 000004a2: SWAP2 000004a3: MSTORE 000004a4: POP 000004a5: POP 000004a6: PUSH1 0x40 000004a8: DUP1 000004a9: MLOAD 000004aa: DUP1 000004ab: DUP3 000004ac: ADD 000004ad: DUP3 000004ae: MSTORE 000004af: SWAP3 000004b0: SWAP6 000004b1: SWAP5 000004b2: SWAP4 000004b3: DUP2 000004b4: DUP2 000004b5: ADD 000004b6: SWAP4 000004b7: SWAP3 000004b8: POP 000004b9: SWAP1 000004ba: PUSH1 0x02 000004bc: SWAP1 000004bd: DUP4 000004be: SWAP1 000004bf: DUP4 000004c0: SWAP1 000004c1: DUP1 000004c2: DUP3 000004c3: DUP5 000004c4: CALLDATACOPY 000004c5: PUSH1 0x00 000004c7: SWAP3 000004c8: ADD 000004c9: SWAP2 000004ca: SWAP1 000004cb: SWAP2 000004cc: MSTORE 000004cd: POP 000004ce: POP 000004cf: PUSH1 0x40 000004d1: DUP1 000004d2: MLOAD 000004d3: DUP1 000004d4: DUP3 000004d5: ADD 000004d6: DUP3 000004d7: MSTORE 000004d8: SWAP3 000004d9: SWAP6 000004da: PUSH1 0x01 000004dc: PUSH1 0x01 000004de: PUSH1 0x40 000004e0: SHL 000004e1: SUB 000004e2: DUP6 000004e3: CALLDATALOAD 000004e4: AND 000004e5: SWAP6 000004e6: SWAP1 000004e7: SWAP5 000004e8: SWAP1 000004e9: SWAP4 000004ea: PUSH1 0x60 000004ec: DUP3 000004ed: ADD 000004ee: SWAP4 000004ef: POP 000004f0: SWAP2 000004f1: PUSH1 0x20 000004f3: SWAP1 000004f4: SWAP2 000004f5: ADD 000004f6: SWAP1 000004f7: PUSH1 0x02 000004f9: SWAP1 000004fa: DUP4 000004fb: SWAP1 000004fc: DUP4 000004fd: SWAP1 000004fe: DUP1 000004ff: DUP3 00000500: DUP5 00000501: CALLDATACOPY 00000502: PUSH1 0x00 00000504: SWAP3 00000505: ADD 00000506: SWAP2 00000507: SWAP1 00000508: SWAP2 00000509: MSTORE 0000050a: POP 0000050b: SWAP2 0000050c: SWAP5 0000050d: PUSH1 0x01 0000050f: PUSH1 0x01 00000511: PUSH1 0x40 00000513: SHL 00000514: SUB 00000515: DUP5 00000516: CALLDATALOAD 00000517: AND 00000518: SWAP5 00000519: PUSH4 0xffffffff 0000051e: PUSH1 0x20 00000520: DUP7 00000521: ADD 00000522: CALLDATALOAD 00000523: AND 00000524: SWAP5 00000525: PUSH1 0x01 00000527: PUSH1 0x01 00000529: PUSH1 0xa0 0000052b: SHL 0000052c: SUB 0000052d: PUSH1 0x40 0000052f: DUP3 00000530: ADD 00000531: CALLDATALOAD 00000532: AND 00000533: SWAP5 00000534: POP 00000535: SWAP2 00000536: SWAP3 00000537: POP 00000538: SWAP1 00000539: PUSH1 0x80 0000053b: DUP2 0000053c: ADD 0000053d: SWAP1 0000053e: PUSH1 0x60 00000540: ADD 00000541: CALLDATALOAD 00000542: PUSH1 0x01 00000544: PUSH1 0x20 00000546: SHL 00000547: DUP2 00000548: GT 00000549: ISZERO 0000054a: PUSH2 0x0552 0000054d: JUMPI 0000054e: PUSH1 0x00 00000550: DUP1 00000551: REVERT 00000552: JUMPDEST 00000553: DUP3 00000554: ADD 00000555: DUP4 00000556: PUSH1 0x20 00000558: DUP3 00000559: ADD 0000055a: GT 0000055b: ISZERO 0000055c: PUSH2 0x0564 0000055f: JUMPI 00000560: PUSH1 0x00 00000562: DUP1 00000563: REVERT 00000564: JUMPDEST 00000565: DUP1 00000566: CALLDATALOAD 00000567: SWAP1 00000568: PUSH1 0x20 0000056a: ADD 0000056b: SWAP2 0000056c: DUP5 0000056d: PUSH1 0x01 0000056f: DUP4 00000570: MUL 00000571: DUP5 00000572: ADD 00000573: GT 00000574: PUSH1 0x01 00000576: PUSH1 0x20 00000578: SHL 00000579: DUP4 0000057a: GT 0000057b: OR 0000057c: ISZERO 0000057d: PUSH2 0x0585 00000580: JUMPI 00000581: PUSH1 0x00 00000583: DUP1 00000584: REVERT 00000585: JUMPDEST 00000586: SWAP2 00000587: SWAP1 00000588: DUP1 00000589: DUP1 0000058a: PUSH1 0x1f 0000058c: ADD 0000058d: PUSH1 0x20 0000058f: DUP1 00000590: SWAP2 00000591: DIV 00000592: MUL 00000593: PUSH1 0x20 00000595: ADD 00000596: PUSH1 0x40 00000598: MLOAD 00000599: SWAP1 0000059a: DUP2 0000059b: ADD 0000059c: PUSH1 0x40 0000059e: MSTORE 0000059f: DUP1 000005a0: SWAP4 000005a1: SWAP3 000005a2: SWAP2 000005a3: SWAP1 000005a4: DUP2 000005a5: DUP2 000005a6: MSTORE 000005a7: PUSH1 0x20 000005a9: ADD 000005aa: DUP4 000005ab: DUP4 000005ac: DUP1 000005ad: DUP3 000005ae: DUP5 000005af: CALLDATACOPY 000005b0: PUSH1 0x00 000005b2: SWAP3 000005b3: ADD 000005b4: SWAP2 000005b5: SWAP1 000005b6: SWAP2 000005b7: MSTORE 000005b8: POP 000005b9: SWAP3 000005ba: SWAP6 000005bb: SWAP5 000005bc: SWAP4 000005bd: PUSH1 0x20 000005bf: DUP2 000005c0: ADD 000005c1: SWAP4 000005c2: POP 000005c3: CALLDATALOAD 000005c4: SWAP2 000005c5: POP 000005c6: POP 000005c7: PUSH1 0x01 000005c9: PUSH1 0x20 000005cb: SHL 000005cc: DUP2 000005cd: GT 000005ce: ISZERO 000005cf: PUSH2 0x05d7 000005d2: JUMPI 000005d3: PUSH1 0x00 000005d5: DUP1 000005d6: REVERT 000005d7: JUMPDEST 000005d8: DUP3 000005d9: ADD 000005da: DUP4 000005db: PUSH1 0x20 000005dd: DUP3 000005de: ADD 000005df: GT 000005e0: ISZERO 000005e1: PUSH2 0x05e9 000005e4: JUMPI 000005e5: PUSH1 0x00 000005e7: DUP1 000005e8: REVERT 000005e9: JUMPDEST 000005ea: DUP1 000005eb: CALLDATALOAD 000005ec: SWAP1 000005ed: PUSH1 0x20 000005ef: ADD 000005f0: SWAP2 000005f1: DUP5 000005f2: PUSH1 0x01 000005f4: DUP4 000005f5: MUL 000005f6: DUP5 000005f7: ADD 000005f8: GT 000005f9: PUSH1 0x01 000005fb: PUSH1 0x20 000005fd: SHL 000005fe: DUP4 000005ff: GT 00000600: OR 00000601: ISZERO 00000602: PUSH2 0x060a 00000605: JUMPI 00000606: PUSH1 0x00 00000608: DUP1 00000609: REVERT 0000060a: JUMPDEST 0000060b: SWAP2 0000060c: SWAP1 0000060d: DUP1 0000060e: DUP1 0000060f: PUSH1 0x1f 00000611: ADD 00000612: PUSH1 0x20 00000614: DUP1 00000615: SWAP2 00000616: DIV 00000617: MUL 00000618: PUSH1 0x20 0000061a: ADD 0000061b: PUSH1 0x40 0000061d: MLOAD 0000061e: SWAP1 0000061f: DUP2 00000620: ADD 00000621: PUSH1 0x40 00000623: MSTORE 00000624: DUP1 00000625: SWAP4 00000626: SWAP3 00000627: SWAP2 00000628: SWAP1 00000629: DUP2 0000062a: DUP2 0000062b: MSTORE 0000062c: PUSH1 0x20 0000062e: ADD 0000062f: DUP4 00000630: DUP4 00000631: DUP1 00000632: DUP3 00000633: DUP5 00000634: CALLDATACOPY 00000635: PUSH1 0x00 00000637: SWAP3 00000638: ADD 00000639: SWAP2 0000063a: SWAP1 0000063b: SWAP2 0000063c: MSTORE 0000063d: POP 0000063e: SWAP3 0000063f: SWAP6 00000640: POP 00000641: POP 00000642: PUSH1 0x01 00000644: PUSH1 0x01 00000646: PUSH1 0x40 00000648: SHL 00000649: SUB 0000064a: DUP4 0000064b: CALLDATALOAD 0000064c: DUP2 0000064d: AND 0000064e: SWAP5 0000064f: POP 00000650: PUSH1 0x20 00000652: DUP5 00000653: ADD 00000654: CALLDATALOAD 00000655: DUP2 00000656: AND 00000657: SWAP4 00000658: PUSH1 0x40 0000065a: ADD 0000065b: CALLDATALOAD 0000065c: AND 0000065d: SWAP2 0000065e: POP 0000065f: PUSH2 0x148b 00000662: SWAP1 00000663: POP 00000664: JUMP 00000665: JUMPDEST 00000666: CALLVALUE 00000667: DUP1 00000668: ISZERO 00000669: PUSH2 0x0671 0000066c: JUMPI 0000066d: PUSH1 0x00 0000066f: DUP1 00000670: REVERT 00000671: JUMPDEST 00000672: POP 00000673: PUSH2 0x067a 00000676: PUSH2 0x1759 00000679: JUMP 0000067a: JUMPDEST 0000067b: PUSH1 0x40 0000067d: DUP1 0000067e: MLOAD 0000067f: PUSH2 0xffff 00000682: SWAP1 00000683: SWAP3 00000684: AND 00000685: DUP3 00000686: MSTORE 00000687: MLOAD 00000688: SWAP1 00000689: DUP2 0000068a: SWAP1 0000068b: SUB 0000068c: PUSH1 0x20 0000068e: ADD 0000068f: SWAP1 00000690: RETURN 00000691: JUMPDEST 00000692: CALLVALUE 00000693: DUP1 00000694: ISZERO 00000695: PUSH2 0x069d 00000698: JUMPI 00000699: PUSH1 0x00 0000069b: DUP1 0000069c: REVERT 0000069d: JUMPDEST 0000069e: POP 0000069f: PUSH2 0x02d1 000006a2: PUSH1 0x04 000006a4: DUP1 000006a5: CALLDATASIZE 000006a6: SUB 000006a7: PUSH1 0x20 000006a9: DUP2 000006aa: LT 000006ab: ISZERO 000006ac: PUSH2 0x06b4 000006af: JUMPI 000006b0: PUSH1 0x00 000006b2: DUP1 000006b3: REVERT 000006b4: JUMPDEST 000006b5: POP 000006b6: CALLDATALOAD 000006b7: PUSH2 0xffff 000006ba: AND 000006bb: PUSH2 0x176a 000006be: JUMP 000006bf: JUMPDEST 000006c0: CALLVALUE 000006c1: DUP1 000006c2: ISZERO 000006c3: PUSH2 0x06cb 000006c6: JUMPI 000006c7: PUSH1 0x00 000006c9: DUP1 000006ca: REVERT 000006cb: JUMPDEST 000006cc: POP 000006cd: PUSH2 0x06d4 000006d0: PUSH2 0x17d3 000006d3: JUMP 000006d4: JUMPDEST 000006d5: PUSH1 0x40 000006d7: DUP1 000006d8: MLOAD 000006d9: PUSH1 0x20 000006db: DUP1 000006dc: DUP3 000006dd: MSTORE 000006de: DUP4 000006df: MLOAD 000006e0: DUP2 000006e1: DUP4 000006e2: ADD 000006e3: MSTORE 000006e4: DUP4 000006e5: MLOAD 000006e6: SWAP2 000006e7: SWAP3 000006e8: DUP4 000006e9: SWAP3 000006ea: SWAP1 000006eb: DUP4 000006ec: ADD 000006ed: SWAP2 000006ee: DUP6 000006ef: DUP2 000006f0: ADD 000006f1: SWAP2 000006f2: MUL 000006f3: DUP1 000006f4: DUP4 000006f5: DUP4 000006f6: PUSH1 0x00 000006f8: JUMPDEST 000006f9: DUP4 000006fa: DUP2 000006fb: LT 000006fc: ISZERO 000006fd: PUSH2 0x0710 00000700: JUMPI 00000701: DUP2 00000702: DUP2 00000703: ADD 00000704: MLOAD 00000705: DUP4 00000706: DUP3 00000707: ADD 00000708: MSTORE 00000709: PUSH1 0x20 0000070b: ADD 0000070c: PUSH2 0x06f8 0000070f: JUMP 00000710: JUMPDEST 00000711: POP 00000712: POP 00000713: POP 00000714: POP 00000715: SWAP1 00000716: POP 00000717: ADD 00000718: SWAP3 00000719: POP 0000071a: POP 0000071b: POP 0000071c: PUSH1 0x40 0000071e: MLOAD 0000071f: DUP1 00000720: SWAP2 00000721: SUB 00000722: SWAP1 00000723: RETURN 00000724: JUMPDEST 00000725: CALLVALUE 00000726: DUP1 00000727: ISZERO 00000728: PUSH2 0x0730 0000072b: JUMPI 0000072c: PUSH1 0x00 0000072e: DUP1 0000072f: REVERT 00000730: JUMPDEST 00000731: POP 00000732: PUSH2 0x02d1 00000735: PUSH1 0x04 00000737: DUP1 00000738: CALLDATASIZE 00000739: SUB 0000073a: PUSH1 0x20 0000073c: DUP2 0000073d: LT 0000073e: ISZERO 0000073f: PUSH2 0x0747 00000742: JUMPI 00000743: PUSH1 0x00 00000745: DUP1 00000746: REVERT 00000747: JUMPDEST 00000748: POP 00000749: CALLDATALOAD 0000074a: PUSH1 0x01 0000074c: PUSH1 0x01 0000074e: PUSH1 0xa0 00000750: SHL 00000751: SUB 00000752: AND 00000753: PUSH2 0x1886 00000756: JUMP 00000757: JUMPDEST 00000758: CALLVALUE 00000759: DUP1 0000075a: ISZERO 0000075b: PUSH2 0x0763 0000075e: JUMPI 0000075f: PUSH1 0x00 00000761: DUP1 00000762: REVERT 00000763: JUMPDEST 00000764: POP 00000765: PUSH2 0x02d1 00000768: PUSH1 0x04 0000076a: DUP1 0000076b: CALLDATASIZE 0000076c: SUB 0000076d: PUSH1 0x20 0000076f: DUP2 00000770: LT 00000771: ISZERO 00000772: PUSH2 0x077a 00000775: JUMPI 00000776: PUSH1 0x00 00000778: DUP1 00000779: REVERT 0000077a: JUMPDEST 0000077b: POP 0000077c: CALLDATALOAD 0000077d: PUSH1 0x01 0000077f: PUSH1 0x01 00000781: PUSH1 0xa0 00000783: SHL 00000784: SUB 00000785: AND 00000786: PUSH2 0x1ad5 00000789: JUMP 0000078a: JUMPDEST 0000078b: CALLVALUE 0000078c: DUP1 0000078d: ISZERO 0000078e: PUSH2 0x0796 00000791: JUMPI 00000792: PUSH1 0x00 00000794: DUP1 00000795: REVERT 00000796: JUMPDEST 00000797: POP 00000798: PUSH2 0x02d1 0000079b: PUSH2 0x1b66 0000079e: JUMP 0000079f: JUMPDEST 000007a0: CALLVALUE 000007a1: DUP1 000007a2: ISZERO 000007a3: PUSH2 0x07ab 000007a6: JUMPI 000007a7: PUSH1 0x00 000007a9: DUP1 000007aa: REVERT 000007ab: JUMPDEST 000007ac: POP 000007ad: PUSH2 0x06d4 000007b0: PUSH1 0x04 000007b2: DUP1 000007b3: CALLDATASIZE 000007b4: SUB 000007b5: PUSH1 0x40 000007b7: DUP2 000007b8: LT 000007b9: ISZERO 000007ba: PUSH2 0x07c2 000007bd: JUMPI 000007be: PUSH1 0x00 000007c0: DUP1 000007c1: REVERT 000007c2: JUMPDEST 000007c3: PUSH1 0x01 000007c5: PUSH1 0x01 000007c7: PUSH1 0xa0 000007c9: SHL 000007ca: SUB 000007cb: DUP3 000007cc: CALLDATALOAD 000007cd: AND 000007ce: SWAP2 000007cf: SWAP1 000007d0: DUP2 000007d1: ADD 000007d2: SWAP1 000007d3: PUSH1 0x40 000007d5: DUP2 000007d6: ADD 000007d7: PUSH1 0x20 000007d9: DUP3 000007da: ADD 000007db: CALLDATALOAD 000007dc: PUSH1 0x01 000007de: PUSH1 0x20 000007e0: SHL 000007e1: DUP2 000007e2: GT 000007e3: ISZERO 000007e4: PUSH2 0x07ec 000007e7: JUMPI 000007e8: PUSH1 0x00 000007ea: DUP1 000007eb: REVERT 000007ec: JUMPDEST 000007ed: DUP3 000007ee: ADD 000007ef: DUP4 000007f0: PUSH1 0x20 000007f2: DUP3 000007f3: ADD 000007f4: GT 000007f5: ISZERO 000007f6: PUSH2 0x07fe 000007f9: JUMPI 000007fa: PUSH1 0x00 000007fc: DUP1 000007fd: REVERT 000007fe: JUMPDEST 000007ff: DUP1 00000800: CALLDATALOAD 00000801: SWAP1 00000802: PUSH1 0x20 00000804: ADD 00000805: SWAP2 00000806: DUP5 00000807: PUSH1 0x20 00000809: DUP4 0000080a: MUL 0000080b: DUP5 0000080c: ADD 0000080d: GT 0000080e: PUSH1 0x01 00000810: PUSH1 0x20 00000812: SHL 00000813: DUP4 00000814: GT 00000815: OR 00000816: ISZERO 00000817: PUSH2 0x081f 0000081a: JUMPI 0000081b: PUSH1 0x00 0000081d: DUP1 0000081e: REVERT 0000081f: JUMPDEST 00000820: SWAP2 00000821: SWAP1 00000822: DUP1 00000823: DUP1 00000824: PUSH1 0x20 00000826: MUL 00000827: PUSH1 0x20 00000829: ADD 0000082a: PUSH1 0x40 0000082c: MLOAD 0000082d: SWAP1 0000082e: DUP2 0000082f: ADD 00000830: PUSH1 0x40 00000832: MSTORE 00000833: DUP1 00000834: SWAP4 00000835: SWAP3 00000836: SWAP2 00000837: SWAP1 00000838: DUP2 00000839: DUP2 0000083a: MSTORE 0000083b: PUSH1 0x20 0000083d: ADD 0000083e: DUP4 0000083f: DUP4 00000840: PUSH1 0x20 00000842: MUL 00000843: DUP1 00000844: DUP3 00000845: DUP5 00000846: CALLDATACOPY 00000847: PUSH1 0x00 00000849: SWAP3 0000084a: ADD 0000084b: SWAP2 0000084c: SWAP1 0000084d: SWAP2 0000084e: MSTORE 0000084f: POP 00000850: SWAP3 00000851: SWAP6 00000852: POP 00000853: PUSH2 0x1bf7 00000856: SWAP5 00000857: POP 00000858: POP 00000859: POP 0000085a: POP 0000085b: POP 0000085c: JUMP 0000085d: JUMPDEST 0000085e: CALLVALUE 0000085f: DUP1 00000860: ISZERO 00000861: PUSH2 0x0869 00000864: JUMPI 00000865: PUSH1 0x00 00000867: DUP1 00000868: REVERT 00000869: JUMPDEST 0000086a: POP 0000086b: PUSH2 0x02d1 0000086e: PUSH1 0x04 00000870: DUP1 00000871: CALLDATASIZE 00000872: SUB 00000873: PUSH1 0x20 00000875: DUP2 00000876: LT 00000877: ISZERO 00000878: PUSH2 0x0880 0000087b: JUMPI 0000087c: PUSH1 0x00 0000087e: DUP1 0000087f: REVERT 00000880: JUMPDEST 00000881: POP 00000882: CALLDATALOAD 00000883: PUSH1 0x01 00000885: PUSH1 0x01 00000887: PUSH1 0xa0 00000889: SHL 0000088a: SUB 0000088b: AND 0000088c: PUSH2 0x1d5e 0000088f: JUMP 00000890: JUMPDEST 00000891: CALLVALUE 00000892: DUP1 00000893: ISZERO 00000894: PUSH2 0x089c 00000897: JUMPI 00000898: PUSH1 0x00 0000089a: DUP1 0000089b: REVERT 0000089c: JUMPDEST 0000089d: POP 0000089e: PUSH2 0x02d1 000008a1: PUSH1 0x04 000008a3: DUP1 000008a4: CALLDATASIZE 000008a5: SUB 000008a6: PUSH1 0x20 000008a8: DUP2 000008a9: LT 000008aa: ISZERO 000008ab: PUSH2 0x08b3 000008ae: JUMPI 000008af: PUSH1 0x00 000008b1: DUP1 000008b2: REVERT 000008b3: JUMPDEST 000008b4: POP 000008b5: CALLDATALOAD 000008b6: PUSH1 0x01 000008b8: PUSH1 0x01 000008ba: PUSH1 0xa0 000008bc: SHL 000008bd: SUB 000008be: AND 000008bf: PUSH2 0x1def 000008c2: JUMP 000008c3: JUMPDEST 000008c4: CALLVALUE 000008c5: DUP1 000008c6: ISZERO 000008c7: PUSH2 0x08cf 000008ca: JUMPI 000008cb: PUSH1 0x00 000008cd: DUP1 000008ce: REVERT 000008cf: JUMPDEST 000008d0: POP 000008d1: PUSH2 0x067a 000008d4: PUSH1 0x04 000008d6: DUP1 000008d7: CALLDATASIZE 000008d8: SUB 000008d9: PUSH1 0x40 000008db: DUP2 000008dc: LT 000008dd: ISZERO 000008de: PUSH2 0x08e6 000008e1: JUMPI 000008e2: PUSH1 0x00 000008e4: DUP1 000008e5: REVERT 000008e6: JUMPDEST 000008e7: POP 000008e8: DUP1 000008e9: CALLDATALOAD 000008ea: PUSH1 0x01 000008ec: PUSH1 0x01 000008ee: PUSH1 0xa0 000008f0: SHL 000008f1: SUB 000008f2: AND 000008f3: SWAP1 000008f4: PUSH1 0x20 000008f6: ADD 000008f7: CALLDATALOAD 000008f8: PUSH1 0xff 000008fa: AND 000008fb: PUSH2 0x1e80 000008fe: JUMP 000008ff: JUMPDEST 00000900: CALLVALUE 00000901: DUP1 00000902: ISZERO 00000903: PUSH2 0x090b 00000906: JUMPI 00000907: PUSH1 0x00 00000909: DUP1 0000090a: REVERT 0000090b: JUMPDEST 0000090c: POP 0000090d: PUSH2 0x0914 00000910: PUSH2 0x1fb6 00000913: JUMP 00000914: JUMPDEST 00000915: PUSH1 0x40 00000917: DUP1 00000918: MLOAD 00000919: PUSH1 0x01 0000091b: PUSH1 0x01 0000091d: PUSH1 0xa0 0000091f: SHL 00000920: SUB 00000921: SWAP1 00000922: SWAP3 00000923: AND 00000924: DUP3 00000925: MSTORE 00000926: MLOAD 00000927: SWAP1 00000928: DUP2 00000929: SWAP1 0000092a: SUB 0000092b: PUSH1 0x20 0000092d: ADD 0000092e: SWAP1 0000092f: RETURN 00000930: JUMPDEST 00000931: CALLVALUE 00000932: DUP1 00000933: ISZERO 00000934: PUSH2 0x093c 00000937: JUMPI 00000938: PUSH1 0x00 0000093a: DUP1 0000093b: REVERT 0000093c: JUMPDEST 0000093d: POP 0000093e: PUSH2 0x0176 00000941: PUSH2 0x1fc5 00000944: JUMP 00000945: JUMPDEST 00000946: CALLVALUE 00000947: DUP1 00000948: ISZERO 00000949: PUSH2 0x0951 0000094c: JUMPI 0000094d: PUSH1 0x00 0000094f: DUP1 00000950: REVERT 00000951: JUMPDEST 00000952: POP 00000953: PUSH2 0x02d1 00000956: PUSH1 0x04 00000958: DUP1 00000959: CALLDATASIZE 0000095a: SUB 0000095b: PUSH1 0x40 0000095d: DUP2 0000095e: LT 0000095f: ISZERO 00000960: PUSH2 0x0968 00000963: JUMPI 00000964: PUSH1 0x00 00000966: DUP1 00000967: REVERT 00000968: JUMPDEST 00000969: POP 0000096a: DUP1 0000096b: CALLDATALOAD 0000096c: PUSH1 0x01 0000096e: PUSH1 0x01 00000970: PUSH1 0xa0 00000972: SHL 00000973: SUB 00000974: AND 00000975: SWAP1 00000976: PUSH1 0x20 00000978: ADD 00000979: CALLDATALOAD 0000097a: PUSH2 0xffff 0000097d: AND 0000097e: PUSH2 0x1fd6 00000981: JUMP 00000982: JUMPDEST 00000983: PUSH2 0x02d1 00000986: PUSH1 0x04 00000988: DUP1 00000989: CALLDATASIZE 0000098a: SUB 0000098b: PUSH1 0xe0 0000098d: DUP2 0000098e: LT 0000098f: ISZERO 00000990: PUSH2 0x0998 00000993: JUMPI 00000994: PUSH1 0x00 00000996: DUP1 00000997: REVERT 00000998: JUMPDEST 00000999: PUSH1 0x01 0000099b: PUSH1 0x01 0000099d: PUSH1 0xa0 0000099f: SHL 000009a0: SUB 000009a1: DUP3 000009a2: CALLDATALOAD 000009a3: DUP2 000009a4: AND 000009a5: SWAP3 000009a6: PUSH2 0xffff 000009a9: PUSH1 0x20 000009ab: DUP3 000009ac: ADD 000009ad: CALLDATALOAD 000009ae: AND 000009af: SWAP3 000009b0: PUSH1 0x01 000009b2: PUSH1 0x01 000009b4: PUSH1 0x40 000009b6: SHL 000009b7: SUB 000009b8: PUSH1 0x40 000009ba: DUP4 000009bb: ADD 000009bc: CALLDATALOAD 000009bd: AND 000009be: SWAP3 000009bf: PUSH4 0xffffffff 000009c4: PUSH1 0x60 000009c6: DUP5 000009c7: ADD 000009c8: CALLDATALOAD 000009c9: AND 000009ca: SWAP3 000009cb: PUSH1 0x80 000009cd: DUP2 000009ce: ADD 000009cf: CALLDATALOAD 000009d0: SWAP1 000009d1: SWAP2 000009d2: AND 000009d3: SWAP2 000009d4: DUP2 000009d5: ADD 000009d6: SWAP1 000009d7: PUSH1 0xc0 000009d9: DUP2 000009da: ADD 000009db: PUSH1 0xa0 000009dd: DUP3 000009de: ADD 000009df: CALLDATALOAD 000009e0: PUSH1 0x01 000009e2: PUSH1 0x20 000009e4: SHL 000009e5: DUP2 000009e6: GT 000009e7: ISZERO 000009e8: PUSH2 0x09f0 000009eb: JUMPI 000009ec: PUSH1 0x00 000009ee: DUP1 000009ef: REVERT 000009f0: JUMPDEST 000009f1: DUP3 000009f2: ADD 000009f3: DUP4 000009f4: PUSH1 0x20 000009f6: DUP3 000009f7: ADD 000009f8: GT 000009f9: ISZERO 000009fa: PUSH2 0x0a02 000009fd: JUMPI 000009fe: PUSH1 0x00 00000a00: DUP1 00000a01: REVERT 00000a02: JUMPDEST 00000a03: DUP1 00000a04: CALLDATALOAD 00000a05: SWAP1 00000a06: PUSH1 0x20 00000a08: ADD 00000a09: SWAP2 00000a0a: DUP5 00000a0b: PUSH1 0x01 00000a0d: DUP4 00000a0e: MUL 00000a0f: DUP5 00000a10: ADD 00000a11: GT 00000a12: PUSH1 0x01 00000a14: PUSH1 0x20 00000a16: SHL 00000a17: DUP4 00000a18: GT 00000a19: OR 00000a1a: ISZERO 00000a1b: PUSH2 0x0a23 00000a1e: JUMPI 00000a1f: PUSH1 0x00 00000a21: DUP1 00000a22: REVERT 00000a23: JUMPDEST 00000a24: SWAP2 00000a25: SWAP1 00000a26: DUP1 00000a27: DUP1 00000a28: PUSH1 0x1f 00000a2a: ADD 00000a2b: PUSH1 0x20 00000a2d: DUP1 00000a2e: SWAP2 00000a2f: DIV 00000a30: MUL 00000a31: PUSH1 0x20 00000a33: ADD 00000a34: PUSH1 0x40 00000a36: MLOAD 00000a37: SWAP1 00000a38: DUP2 00000a39: ADD 00000a3a: PUSH1 0x40 00000a3c: MSTORE 00000a3d: DUP1 00000a3e: SWAP4 00000a3f: SWAP3 00000a40: SWAP2 00000a41: SWAP1 00000a42: DUP2 00000a43: DUP2 00000a44: MSTORE 00000a45: PUSH1 0x20 00000a47: ADD 00000a48: DUP4 00000a49: DUP4 00000a4a: DUP1 00000a4b: DUP3 00000a4c: DUP5 00000a4d: CALLDATACOPY 00000a4e: PUSH1 0x00 00000a50: SWAP3 00000a51: ADD 00000a52: SWAP2 00000a53: SWAP1 00000a54: SWAP2 00000a55: MSTORE 00000a56: POP 00000a57: SWAP3 00000a58: SWAP6 00000a59: SWAP5 00000a5a: SWAP4 00000a5b: PUSH1 0x20 00000a5d: DUP2 00000a5e: ADD 00000a5f: SWAP4 00000a60: POP 00000a61: CALLDATALOAD 00000a62: SWAP2 00000a63: POP 00000a64: POP 00000a65: PUSH1 0x01 00000a67: PUSH1 0x20 00000a69: SHL 00000a6a: DUP2 00000a6b: GT 00000a6c: ISZERO 00000a6d: PUSH2 0x0a75 00000a70: JUMPI 00000a71: PUSH1 0x00 00000a73: DUP1 00000a74: REVERT 00000a75: JUMPDEST 00000a76: DUP3 00000a77: ADD 00000a78: DUP4 00000a79: PUSH1 0x20 00000a7b: DUP3 00000a7c: ADD 00000a7d: GT 00000a7e: ISZERO 00000a7f: PUSH2 0x0a87 00000a82: JUMPI 00000a83: PUSH1 0x00 00000a85: DUP1 00000a86: REVERT 00000a87: JUMPDEST 00000a88: DUP1 00000a89: CALLDATALOAD 00000a8a: SWAP1 00000a8b: PUSH1 0x20 00000a8d: ADD 00000a8e: SWAP2 00000a8f: DUP5 00000a90: PUSH1 0x01 00000a92: DUP4 00000a93: MUL 00000a94: DUP5 00000a95: ADD 00000a96: GT 00000a97: PUSH1 0x01 00000a99: PUSH1 0x20 00000a9b: SHL 00000a9c: DUP4 00000a9d: GT 00000a9e: OR 00000a9f: ISZERO 00000aa0: PUSH2 0x0aa8 00000aa3: JUMPI 00000aa4: PUSH1 0x00 00000aa6: DUP1 00000aa7: REVERT 00000aa8: JUMPDEST 00000aa9: SWAP2 00000aaa: SWAP1 00000aab: DUP1 00000aac: DUP1 00000aad: PUSH1 0x1f 00000aaf: ADD 00000ab0: PUSH1 0x20 00000ab2: DUP1 00000ab3: SWAP2 00000ab4: DIV 00000ab5: MUL 00000ab6: PUSH1 0x20 00000ab8: ADD 00000ab9: PUSH1 0x40 00000abb: MLOAD 00000abc: SWAP1 00000abd: DUP2 00000abe: ADD 00000abf: PUSH1 0x40 00000ac1: MSTORE 00000ac2: DUP1 00000ac3: SWAP4 00000ac4: SWAP3 00000ac5: SWAP2 00000ac6: SWAP1 00000ac7: DUP2 00000ac8: DUP2 00000ac9: MSTORE 00000aca: PUSH1 0x20 00000acc: ADD 00000acd: DUP4 00000ace: DUP4 00000acf: DUP1 00000ad0: DUP3 00000ad1: DUP5 00000ad2: CALLDATACOPY 00000ad3: PUSH1 0x00 00000ad5: SWAP3 00000ad6: ADD 00000ad7: SWAP2 00000ad8: SWAP1 00000ad9: SWAP2 00000ada: MSTORE 00000adb: POP 00000adc: SWAP3 00000add: SWAP6 00000ade: POP 00000adf: PUSH2 0x233b 00000ae2: SWAP5 00000ae3: POP 00000ae4: POP 00000ae5: POP 00000ae6: POP 00000ae7: POP 00000ae8: JUMP 00000ae9: JUMPDEST 00000aea: CALLVALUE 00000aeb: DUP1 00000aec: ISZERO 00000aed: PUSH2 0x0af5 00000af0: JUMPI 00000af1: PUSH1 0x00 00000af3: DUP1 00000af4: REVERT 00000af5: JUMPDEST 00000af6: POP 00000af7: PUSH2 0x02d1 00000afa: PUSH1 0x04 00000afc: DUP1 00000afd: CALLDATASIZE 00000afe: SUB 00000aff: PUSH1 0x20 00000b01: DUP2 00000b02: LT 00000b03: ISZERO 00000b04: PUSH2 0x0b0c 00000b07: JUMPI 00000b08: PUSH1 0x00 00000b0a: DUP1 00000b0b: REVERT 00000b0c: JUMPDEST 00000b0d: POP 00000b0e: CALLDATALOAD 00000b0f: PUSH1 0x01 00000b11: PUSH1 0x01 00000b13: PUSH1 0xa0 00000b15: SHL 00000b16: SUB 00000b17: AND 00000b18: PUSH2 0x26cc 00000b1b: JUMP 00000b1c: JUMPDEST 00000b1d: CALLVALUE 00000b1e: DUP1 00000b1f: ISZERO 00000b20: PUSH2 0x0b28 00000b23: JUMPI 00000b24: PUSH1 0x00 00000b26: DUP1 00000b27: REVERT 00000b28: JUMPDEST 00000b29: POP 00000b2a: PUSH2 0x0176 00000b2d: PUSH2 0x275d 00000b30: JUMP 00000b31: JUMPDEST 00000b32: CALLVALUE 00000b33: DUP1 00000b34: ISZERO 00000b35: PUSH2 0x0b3d 00000b38: JUMPI 00000b39: PUSH1 0x00 00000b3b: DUP1 00000b3c: REVERT 00000b3d: JUMPDEST 00000b3e: POP 00000b3f: PUSH2 0x02d1 00000b42: PUSH1 0x04 00000b44: DUP1 00000b45: CALLDATASIZE 00000b46: SUB 00000b47: PUSH1 0x20 00000b49: DUP2 00000b4a: LT 00000b4b: ISZERO 00000b4c: PUSH2 0x0b54 00000b4f: JUMPI 00000b50: PUSH1 0x00 00000b52: DUP1 00000b53: REVERT 00000b54: JUMPDEST 00000b55: POP 00000b56: CALLDATALOAD 00000b57: PUSH1 0x01 00000b59: PUSH1 0x01 00000b5b: PUSH1 0xa0 00000b5d: SHL 00000b5e: SUB 00000b5f: AND 00000b60: PUSH2 0x276d 00000b63: JUMP 00000b64: JUMPDEST 00000b65: CALLVALUE 00000b66: DUP1 00000b67: ISZERO 00000b68: PUSH2 0x0b70 00000b6b: JUMPI 00000b6c: PUSH1 0x00 00000b6e: DUP1 00000b6f: REVERT 00000b70: JUMPDEST 00000b71: POP 00000b72: PUSH2 0x06d4 00000b75: PUSH2 0x27c0 00000b78: JUMP 00000b79: JUMPDEST 00000b7a: PUSH1 0x00 00000b7c: PUSH1 0x01 00000b7e: DUP3 00000b7f: PUSH1 0x01 00000b81: DUP2 00000b82: GT 00000b83: ISZERO 00000b84: PUSH2 0x0b89 00000b87: JUMPI 00000b88: INVALID 00000b89: JUMPDEST 00000b8a: GT 00000b8b: ISZERO 00000b8c: PUSH2 0x0bd5 00000b8f: JUMPI 00000b90: PUSH1 0x40 00000b92: DUP1 00000b93: MLOAD 00000b94: PUSH3 0x461bcd 00000b98: PUSH1 0xe5 00000b9a: SHL 00000b9b: DUP2 00000b9c: MSTORE 00000b9d: PUSH1 0x20 00000b9f: PUSH1 0x04 00000ba1: DUP3 00000ba2: ADD 00000ba3: MSTORE 00000ba4: PUSH1 0x16 00000ba6: PUSH1 0x24 00000ba8: DUP3 00000ba9: ADD 00000baa: MSTORE 00000bab: PUSH22 0x496e76616c69642077686974656c6973742074797065 00000bc2: PUSH1 0x50 00000bc4: SHL 00000bc5: PUSH1 0x44 00000bc7: DUP3 00000bc8: ADD 00000bc9: MSTORE 00000bca: SWAP1 00000bcb: MLOAD 00000bcc: SWAP1 00000bcd: DUP2 00000bce: SWAP1 00000bcf: SUB 00000bd0: PUSH1 0x64 00000bd2: ADD 00000bd3: SWAP1 00000bd4: REVERT 00000bd5: JUMPDEST 00000bd6: PUSH1 0x01 00000bd8: PUSH1 0x01 00000bda: PUSH1 0xa0 00000bdc: SHL 00000bdd: SUB 00000bde: DUP4 00000bdf: AND 00000be0: PUSH1 0x00 00000be2: SWAP1 00000be3: DUP2 00000be4: MSTORE 00000be5: PUSH1 0x02 00000be7: PUSH1 0x20 00000be9: DUP2 00000bea: SWAP1 00000beb: MSTORE 00000bec: PUSH1 0x40 00000bee: SWAP1 00000bef: SWAP2 00000bf0: KECCAK256 00000bf1: SLOAD 00000bf2: PUSH1 0x00 00000bf4: NOT 00000bf5: PUSH2 0x0100 00000bf8: PUSH1 0x01 00000bfa: DUP4 00000bfb: AND 00000bfc: ISZERO 00000bfd: MUL 00000bfe: ADD 00000bff: AND 00000c00: DIV 00000c01: PUSH2 0x0c0c 00000c04: JUMPI 00000c05: POP 00000c06: PUSH1 0x00 00000c08: PUSH2 0x0c99 00000c0b: JUMP 00000c0c: JUMPDEST 00000c0d: PUSH1 0x00 00000c0f: DUP3 00000c10: PUSH1 0x01 00000c12: DUP2 00000c13: GT 00000c14: ISZERO 00000c15: PUSH2 0x0c1a 00000c18: JUMPI 00000c19: INVALID 00000c1a: JUMPDEST 00000c1b: PUSH1 0xff 00000c1d: AND 00000c1e: PUSH1 0x02 00000c20: PUSH1 0xff 00000c22: AND 00000c23: EXP 00000c24: PUSH1 0x02 00000c26: PUSH1 0x00 00000c28: DUP7 00000c29: PUSH1 0x01 00000c2b: PUSH1 0x01 00000c2d: PUSH1 0xa0 00000c2f: SHL 00000c30: SUB 00000c31: AND 00000c32: PUSH1 0x01 00000c34: PUSH1 0x01 00000c36: PUSH1 0xa0 00000c38: SHL 00000c39: SUB 00000c3a: AND 00000c3b: DUP2 00000c3c: MSTORE 00000c3d: PUSH1 0x20 00000c3f: ADD 00000c40: SWAP1 00000c41: DUP2 00000c42: MSTORE 00000c43: PUSH1 0x20 00000c45: ADD 00000c46: PUSH1 0x00 00000c48: KECCAK256 00000c49: PUSH1 0x00 00000c4b: DUP2 00000c4c: SLOAD 00000c4d: PUSH1 0x01 00000c4f: DUP2 00000c50: PUSH1 0x01 00000c52: AND 00000c53: ISZERO 00000c54: PUSH2 0x0100 00000c57: MUL 00000c58: SUB 00000c59: AND 00000c5a: PUSH1 0x02 00000c5c: SWAP1 00000c5d: DIV 00000c5e: DUP2 00000c5f: LT 00000c60: PUSH2 0x0c65 00000c63: JUMPI 00000c64: INVALID 00000c65: JUMPDEST 00000c66: DUP2 00000c67: SLOAD 00000c68: PUSH1 0x01 00000c6a: AND 00000c6b: ISZERO 00000c6c: PUSH2 0x0c84 00000c6f: JUMPI 00000c70: SWAP1 00000c71: PUSH1 0x00 00000c73: MSTORE 00000c74: PUSH1 0x20 00000c76: PUSH1 0x00 00000c78: KECCAK256 00000c79: SWAP1 00000c7a: PUSH1 0x20 00000c7c: SWAP2 00000c7d: DUP3 00000c7e: DUP3 00000c7f: DIV 00000c80: ADD 00000c81: SWAP2 00000c82: SWAP1 00000c83: MOD 00000c84: JUMPDEST 00000c85: SWAP1 00000c86: SLOAD 00000c87: SWAP1 00000c88: BYTE 00000c89: PUSH1 0x01 00000c8b: PUSH1 0xf8 00000c8d: SHL 00000c8e: MUL 00000c8f: PUSH1 0xf8 00000c91: SHR 00000c92: AND 00000c93: PUSH1 0xff 00000c95: AND 00000c96: GT 00000c97: SWAP1 00000c98: POP 00000c99: JUMPDEST 00000c9a: SWAP3 00000c9b: SWAP2 00000c9c: POP 00000c9d: POP 00000c9e: JUMP 00000c9f: JUMPDEST 00000ca0: PUSH2 0x0cac 00000ca3: PUSH1 0x00 00000ca5: DUP5 00000ca6: DUP5 00000ca7: DUP5 00000ca8: PUSH2 0x287d 00000cab: JUMP 00000cac: JUMPDEST 00000cad: PUSH2 0x0ce7 00000cb0: JUMPI 00000cb1: PUSH1 0x40 00000cb3: MLOAD 00000cb4: PUSH3 0x461bcd 00000cb8: PUSH1 0xe5 00000cba: SHL 00000cbb: DUP2 00000cbc: MSTORE 00000cbd: PUSH1 0x04 00000cbf: ADD 00000cc0: DUP1 00000cc1: DUP1 00000cc2: PUSH1 0x20 00000cc4: ADD 00000cc5: DUP3 00000cc6: DUP2 00000cc7: SUB 00000cc8: DUP3 00000cc9: MSTORE 00000cca: PUSH1 0x21 00000ccc: DUP2 00000ccd: MSTORE 00000cce: PUSH1 0x20 00000cd0: ADD 00000cd1: DUP1 00000cd2: PUSH2 0x43ca 00000cd5: PUSH1 0x21 00000cd7: SWAP2 00000cd8: CODECOPY 00000cd9: PUSH1 0x40 00000cdb: ADD 00000cdc: SWAP2 00000cdd: POP 00000cde: POP 00000cdf: PUSH1 0x40 00000ce1: MLOAD 00000ce2: DUP1 00000ce3: SWAP2 00000ce4: SUB 00000ce5: SWAP1 00000ce6: REVERT 00000ce7: JUMPDEST 00000ce8: PUSH1 0x00 00000cea: PUSH1 0x63 00000cec: DUP5 00000ced: MLOAD 00000cee: DUP2 00000cef: PUSH2 0x0cf4 00000cf2: JUMPI 00000cf3: INVALID 00000cf4: JUMPDEST 00000cf5: DIV 00000cf6: SWAP1 00000cf7: POP 00000cf8: PUSH1 0x00 00000cfa: JUMPDEST 00000cfb: DUP2 00000cfc: DUP2 00000cfd: PUSH2 0xffff 00000d00: AND 00000d01: LT 00000d02: ISZERO 00000d03: PUSH2 0x0f45 00000d06: JUMPI 00000d07: PUSH2 0xffff 00000d0a: PUSH1 0x63 00000d0c: DUP3 00000d0d: MUL 00000d0e: AND 00000d0f: PUSH1 0x00 00000d11: DUP1 00000d12: DUP1 00000d13: PUSH2 0x0d1d 00000d16: DUP10 00000d17: DUP3 00000d18: DUP7 00000d19: PUSH2 0x296c 00000d1c: JUMP 00000d1d: JUMPDEST 00000d1e: DUP12 00000d1f: DUP8 00000d20: ADD 00000d21: PUSH1 0x22 00000d23: ADD 00000d24: MLOAD 00000d25: SWAP3 00000d26: SWAP6 00000d27: POP 00000d28: SWAP1 00000d29: SWAP4 00000d2a: POP 00000d2b: SWAP2 00000d2c: POP 00000d2d: PUSH2 0x0d37 00000d30: DUP11 00000d31: DUP7 00000d32: DUP4 00000d33: PUSH2 0x2990 00000d36: JUMP 00000d37: JUMPDEST 00000d38: PUSH2 0x0d88 00000d3b: JUMPI 00000d3c: PUSH1 0x40 00000d3e: DUP1 00000d3f: MLOAD 00000d40: PUSH3 0x461bcd 00000d44: PUSH1 0xe5 00000d46: SHL 00000d47: DUP2 00000d48: MSTORE 00000d49: PUSH1 0x20 00000d4b: PUSH1 0x04 00000d4d: DUP3 00000d4e: ADD 00000d4f: MSTORE 00000d50: PUSH1 0x19 00000d52: PUSH1 0x24 00000d54: DUP3 00000d55: ADD 00000d56: MSTORE 00000d57: PUSH32 0x55736572207369676e617475726520697320696e76616c696400000000000000 00000d78: PUSH1 0x44 00000d7a: DUP3 00000d7b: ADD 00000d7c: MSTORE 00000d7d: SWAP1 00000d7e: MLOAD 00000d7f: SWAP1 00000d80: DUP2 00000d81: SWAP1 00000d82: SUB 00000d83: PUSH1 0x64 00000d85: ADD 00000d86: SWAP1 00000d87: REVERT 00000d88: JUMPDEST 00000d89: PUSH2 0x0d90 00000d8c: PUSH2 0x4035 00000d8f: JUMP 00000d90: JUMPDEST 00000d91: PUSH2 0x0d9a 00000d94: DUP3 00000d95: DUP7 00000d96: PUSH2 0x2ad2 00000d99: JUMP 00000d9a: JUMPDEST 00000d9b: DUP1 00000d9c: MLOAD 00000d9d: PUSH2 0xffff 00000da0: DUP8 00000da1: AND 00000da2: PUSH1 0x00 00000da4: SWAP1 00000da5: DUP2 00000da6: MSTORE 00000da7: PUSH1 0x05 00000da9: PUSH1 0x20 00000dab: MSTORE 00000dac: PUSH1 0x40 00000dae: SWAP1 00000daf: KECCAK256 00000db0: SLOAD 00000db1: SWAP2 00000db2: SWAP3 00000db3: POP 00000db4: PUSH1 0x01 00000db6: PUSH1 0x01 00000db8: PUSH1 0x40 00000dba: SHL 00000dbb: SUB 00000dbc: SWAP1 00000dbd: DUP2 00000dbe: AND 00000dbf: DUP7 00000dc0: DUP3 00000dc1: AND 00000dc2: SUB 00000dc3: SWAP2 00000dc4: AND 00000dc5: PUSH1 0x08 00000dc7: DUP3 00000dc8: SWAP1 00000dc9: SIGNEXTEND 00000dca: SGT 00000dcb: ISZERO 00000dcc: PUSH2 0x0e1c 00000dcf: JUMPI 00000dd0: PUSH1 0x40 00000dd2: DUP1 00000dd3: MLOAD 00000dd4: PUSH3 0x461bcd 00000dd8: PUSH1 0xe5 00000dda: SHL 00000ddb: DUP2 00000ddc: MSTORE 00000ddd: PUSH1 0x20 00000ddf: PUSH1 0x04 00000de1: DUP3 00000de2: ADD 00000de3: MSTORE 00000de4: PUSH1 0x19 00000de6: PUSH1 0x24 00000de8: DUP3 00000de9: ADD 00000dea: MSTORE 00000deb: PUSH32 0x496e73756666696369656e74207661756c742062756666657200000000000000 00000e0c: PUSH1 0x44 00000e0e: DUP3 00000e0f: ADD 00000e10: MSTORE 00000e11: SWAP1 00000e12: MLOAD 00000e13: SWAP1 00000e14: DUP2 00000e15: SWAP1 00000e16: SUB 00000e17: PUSH1 0x64 00000e19: ADD 00000e1a: SWAP1 00000e1b: REVERT 00000e1c: JUMPDEST 00000e1d: DUP2 00000e1e: PUSH1 0x20 00000e20: ADD 00000e21: MLOAD 00000e22: PUSH4 0xffffffff 00000e27: AND 00000e28: DUP5 00000e29: PUSH4 0xffffffff 00000e2e: AND 00000e2f: GT 00000e30: PUSH2 0x0e6a 00000e33: JUMPI 00000e34: PUSH1 0x40 00000e36: MLOAD 00000e37: PUSH3 0x461bcd 00000e3b: PUSH1 0xe5 00000e3d: SHL 00000e3e: DUP2 00000e3f: MSTORE 00000e40: PUSH1 0x04 00000e42: ADD 00000e43: DUP1 00000e44: DUP1 00000e45: PUSH1 0x20 00000e47: ADD 00000e48: DUP3 00000e49: DUP2 00000e4a: SUB 00000e4b: DUP3 00000e4c: MSTORE 00000e4d: PUSH1 0x35 00000e4f: DUP2 00000e50: MSTORE 00000e51: PUSH1 0x20 00000e53: ADD 00000e54: DUP1 00000e55: PUSH2 0x4268 00000e58: PUSH1 0x35 00000e5a: SWAP2 00000e5b: CODECOPY 00000e5c: PUSH1 0x40 00000e5e: ADD 00000e5f: SWAP2 00000e60: POP 00000e61: POP 00000e62: PUSH1 0x40 00000e64: MLOAD 00000e65: DUP1 00000e66: SWAP2 00000e67: SUB 00000e68: SWAP1 00000e69: REVERT 00000e6a: JUMPDEST 00000e6b: PUSH1 0x00 00000e6d: SLOAD 00000e6e: PUSH2 0xffff 00000e71: PUSH1 0x01 00000e73: PUSH1 0xb8 00000e75: SHL 00000e76: SWAP1 00000e77: SWAP2 00000e78: DIV 00000e79: DUP2 00000e7a: AND 00000e7b: SWAP1 00000e7c: DUP8 00000e7d: AND 00000e7e: LT 00000e7f: PUSH2 0x0ebf 00000e82: JUMPI 00000e83: PUSH1 0x40 00000e85: DUP1 00000e86: MLOAD 00000e87: PUSH3 0x461bcd 00000e8b: PUSH1 0xe5 00000e8d: SHL 00000e8e: DUP2 00000e8f: MSTORE 00000e90: PUSH1 0x20 00000e92: PUSH1 0x04 00000e94: DUP3 00000e95: ADD 00000e96: MSTORE 00000e97: PUSH1 0x0d 00000e99: PUSH1 0x24 00000e9b: DUP3 00000e9c: ADD 00000e9d: MSTORE 00000e9e: PUSH13 0x125b9d985b1a5908185cdcd95d 00000eac: PUSH1 0x9a 00000eae: SHL 00000eaf: PUSH1 0x44 00000eb1: DUP3 00000eb2: ADD 00000eb3: MSTORE 00000eb4: SWAP1 00000eb5: MLOAD 00000eb6: SWAP1 00000eb7: DUP2 00000eb8: SWAP1 00000eb9: SUB 00000eba: PUSH1 0x64 00000ebc: ADD 00000ebd: SWAP1 00000ebe: REVERT 00000ebf: JUMPDEST 00000ec0: PUSH1 0x01 00000ec2: PUSH1 0x01 00000ec4: PUSH1 0x40 00000ec6: SHL 00000ec7: SUB 00000ec8: DUP6 00000ec9: AND 00000eca: DUP3 00000ecb: MSTORE 00000ecc: PUSH4 0xffffffff 00000ed1: DUP5 00000ed2: AND 00000ed3: PUSH1 0x20 00000ed5: DUP4 00000ed6: ADD 00000ed7: MSTORE 00000ed8: PUSH2 0x0ee1 00000edb: DUP4 00000edc: DUP4 00000edd: PUSH2 0x2ca2 00000ee0: JUMP 00000ee1: JUMPDEST 00000ee2: PUSH2 0xffff 00000ee5: SWAP6 00000ee6: SWAP1 00000ee7: SWAP6 00000ee8: AND 00000ee9: PUSH1 0x00 00000eeb: SWAP1 00000eec: DUP2 00000eed: MSTORE 00000eee: PUSH1 0x05 00000ef0: PUSH1 0x20 00000ef2: SWAP1 00000ef3: DUP2 00000ef4: MSTORE 00000ef5: PUSH1 0x40 00000ef7: DUP1 00000ef8: DUP4 00000ef9: KECCAK256 00000efa: DUP1 00000efb: SLOAD 00000efc: PUSH8 0xffffffffffffffff 00000f05: NOT 00000f06: DUP1 00000f07: DUP3 00000f08: AND 00000f09: PUSH1 0x01 00000f0b: PUSH1 0x01 00000f0d: PUSH1 0x40 00000f0f: SHL 00000f10: SUB 00000f11: SWAP3 00000f12: DUP4 00000f13: AND 00000f14: DUP13 00000f15: SWAP1 00000f16: SUB 00000f17: DUP4 00000f18: AND 00000f19: OR 00000f1a: SWAP1 00000f1b: SWAP3 00000f1c: SSTORE 00000f1d: PUSH1 0x04 00000f1f: SWAP1 00000f20: SWAP4 00000f21: MSTORE 00000f22: SWAP3 00000f23: KECCAK256 00000f24: DUP1 00000f25: SLOAD 00000f26: SWAP3 00000f27: DUP4 00000f28: AND 00000f29: SWAP3 00000f2a: DUP3 00000f2b: AND 00000f2c: SWAP1 00000f2d: SWAP8 00000f2e: ADD 00000f2f: AND 00000f30: OR 00000f31: SWAP1 00000f32: SWAP5 00000f33: SSTORE 00000f34: POP 00000f35: POP 00000f36: POP 00000f37: PUSH1 0x01 00000f39: SWAP3 00000f3a: SWAP1 00000f3b: SWAP3 00000f3c: ADD 00000f3d: SWAP2 00000f3e: POP 00000f3f: PUSH2 0x0cfa 00000f42: SWAP1 00000f43: POP 00000f44: JUMP 00000f45: JUMPDEST 00000f46: POP 00000f47: PUSH32 0x87a48f7996cb0768a7ff6b2aa1411875c4e7e13631745f388a62923a617d14ed 00000f68: DUP5 00000f69: PUSH1 0x40 00000f6b: MLOAD 00000f6c: DUP1 00000f6d: DUP1 00000f6e: PUSH1 0x20 00000f70: ADD 00000f71: DUP3 00000f72: DUP2 00000f73: SUB 00000f74: DUP3 00000f75: MSTORE 00000f76: DUP4 00000f77: DUP2 00000f78: DUP2 00000f79: MLOAD 00000f7a: DUP2 00000f7b: MSTORE 00000f7c: PUSH1 0x20 00000f7e: ADD 00000f7f: SWAP2 00000f80: POP 00000f81: DUP1 00000f82: MLOAD 00000f83: SWAP1 00000f84: PUSH1 0x20 00000f86: ADD 00000f87: SWAP1 00000f88: DUP1 00000f89: DUP4 00000f8a: DUP4 00000f8b: PUSH1 0x00 00000f8d: JUMPDEST 00000f8e: DUP4 00000f8f: DUP2 00000f90: LT 00000f91: ISZERO 00000f92: PUSH2 0x0fa5 00000f95: JUMPI 00000f96: DUP2 00000f97: DUP2 00000f98: ADD 00000f99: MLOAD 00000f9a: DUP4 00000f9b: DUP3 00000f9c: ADD 00000f9d: MSTORE 00000f9e: PUSH1 0x20 00000fa0: ADD 00000fa1: PUSH2 0x0f8d 00000fa4: JUMP 00000fa5: JUMPDEST 00000fa6: POP 00000fa7: POP 00000fa8: POP 00000fa9: POP 00000faa: SWAP1 00000fab: POP 00000fac: SWAP1 00000fad: DUP2 00000fae: ADD 00000faf: SWAP1 00000fb0: PUSH1 0x1f 00000fb2: AND 00000fb3: DUP1 00000fb4: ISZERO 00000fb5: PUSH2 0x0fd2 00000fb8: JUMPI 00000fb9: DUP1 00000fba: DUP3 00000fbb: SUB 00000fbc: DUP1 00000fbd: MLOAD 00000fbe: PUSH1 0x01 00000fc0: DUP4 00000fc1: PUSH1 0x20 00000fc3: SUB 00000fc4: PUSH2 0x0100 00000fc7: EXP 00000fc8: SUB 00000fc9: NOT 00000fca: AND 00000fcb: DUP2 00000fcc: MSTORE 00000fcd: PUSH1 0x20 00000fcf: ADD 00000fd0: SWAP2 00000fd1: POP 00000fd2: JUMPDEST 00000fd3: POP 00000fd4: SWAP3 00000fd5: POP 00000fd6: POP 00000fd7: POP 00000fd8: PUSH1 0x40 00000fda: MLOAD 00000fdb: DUP1 00000fdc: SWAP2 00000fdd: SUB 00000fde: SWAP1 00000fdf: LOG1 00000fe0: POP 00000fe1: POP 00000fe2: POP 00000fe3: POP 00000fe4: JUMP 00000fe5: JUMPDEST 00000fe6: PUSH1 0x00 00000fe8: SLOAD 00000fe9: PUSH1 0x01 00000feb: PUSH1 0xa0 00000fed: SHL 00000fee: SWAP1 00000fef: DIV 00000ff0: PUSH1 0xff 00000ff2: AND 00000ff3: ISZERO 00000ff4: PUSH2 0x102e 00000ff7: JUMPI 00000ff8: PUSH1 0x40 00000ffa: MLOAD 00000ffb: PUSH3 0x461bcd 00000fff: PUSH1 0xe5 00001001: SHL 00001002: DUP2 00001003: MSTORE 00001004: PUSH1 0x04 00001006: ADD 00001007: DUP1 00001008: DUP1 00001009: PUSH1 0x20 0000100b: ADD 0000100c: DUP3 0000100d: DUP2 0000100e: SUB 0000100f: DUP3 00001010: MSTORE 00001011: PUSH1 0x32 00001013: DUP2 00001014: MSTORE 00001015: PUSH1 0x20 00001017: ADD 00001018: DUP1 00001019: PUSH2 0x413a 0000101c: PUSH1 0x32 0000101e: SWAP2 0000101f: CODECOPY 00001020: PUSH1 0x40 00001022: ADD 00001023: SWAP2 00001024: POP 00001025: POP 00001026: PUSH1 0x40 00001028: MLOAD 00001029: DUP1 0000102a: SWAP2 0000102b: SUB 0000102c: SWAP1 0000102d: REVERT 0000102e: JUMPDEST 0000102f: PUSH1 0x00 00001031: DUP1 00001032: SLOAD 00001033: PUSH1 0xff 00001035: PUSH1 0xa0 00001037: SHL 00001038: NOT 00001039: AND 0000103a: PUSH1 0x01 0000103c: PUSH1 0xa0 0000103e: SHL 0000103f: OR 00001040: SWAP1 00001041: DUP2 00001042: SWAP1 00001043: SSTORE 00001044: PUSH2 0xffff 00001047: PUSH1 0x01 00001049: PUSH1 0xb8 0000104b: SHL 0000104c: SWAP1 0000104d: SWAP2 0000104e: DIV 0000104f: DUP2 00001050: AND 00001051: SWAP1 00001052: DUP8 00001053: AND 00001054: LT 00001055: PUSH2 0x1095 00001058: JUMPI 00001059: PUSH1 0x40 0000105b: DUP1 0000105c: MLOAD 0000105d: PUSH3 0x461bcd 00001061: PUSH1 0xe5 00001063: SHL 00001064: DUP2 00001065: MSTORE 00001066: PUSH1 0x20 00001068: PUSH1 0x04 0000106a: DUP3 0000106b: ADD 0000106c: MSTORE 0000106d: PUSH1 0x0d 0000106f: PUSH1 0x24 00001071: DUP3 00001072: ADD 00001073: MSTORE 00001074: PUSH13 0x125b9d985b1a5908185cdcd95d 00001082: PUSH1 0x9a 00001084: SHL 00001085: PUSH1 0x44 00001087: DUP3 00001088: ADD 00001089: MSTORE 0000108a: SWAP1 0000108b: MLOAD 0000108c: SWAP1 0000108d: DUP2 0000108e: SWAP1 0000108f: SUB 00001090: PUSH1 0x64 00001092: ADD 00001093: SWAP1 00001094: REVERT 00001095: JUMPDEST 00001096: CALLER 00001097: PUSH1 0x01 00001099: PUSH1 0x01 0000109b: PUSH1 0xa0 0000109d: SHL 0000109e: SUB 0000109f: DUP9 000010a0: AND 000010a1: EQ 000010a2: PUSH2 0x10dc 000010a5: JUMPI 000010a6: PUSH1 0x40 000010a8: MLOAD 000010a9: PUSH3 0x461bcd 000010ad: PUSH1 0xe5 000010af: SHL 000010b0: DUP2 000010b1: MSTORE 000010b2: PUSH1 0x04 000010b4: ADD 000010b5: DUP1 000010b6: DUP1 000010b7: PUSH1 0x20 000010b9: ADD 000010ba: DUP3 000010bb: DUP2 000010bc: SUB 000010bd: DUP3 000010be: MSTORE 000010bf: PUSH1 0x31 000010c1: DUP2 000010c2: MSTORE 000010c3: PUSH1 0x20 000010c5: ADD 000010c6: DUP1 000010c7: PUSH2 0x4207 000010ca: PUSH1 0x31 000010cc: SWAP2 000010cd: CODECOPY 000010ce: PUSH1 0x40 000010d0: ADD 000010d1: SWAP2 000010d2: POP 000010d3: POP 000010d4: PUSH1 0x40 000010d6: MLOAD 000010d7: DUP1 000010d8: SWAP2 000010d9: SUB 000010da: SWAP1 000010db: REVERT 000010dc: JUMPDEST 000010dd: DUP7 000010de: PUSH1 0x01 000010e0: PUSH1 0x01 000010e2: PUSH1 0xa0 000010e4: SHL 000010e5: SUB 000010e6: AND 000010e7: DUP4 000010e8: PUSH1 0x01 000010ea: PUSH1 0x01 000010ec: PUSH1 0xa0 000010ee: SHL 000010ef: SUB 000010f0: AND 000010f1: EQ 000010f2: PUSH2 0x112c 000010f5: JUMPI 000010f6: PUSH1 0x40 000010f8: MLOAD 000010f9: PUSH3 0x461bcd 000010fd: PUSH1 0xe5 000010ff: SHL 00001100: DUP2 00001101: MSTORE 00001102: PUSH1 0x04 00001104: ADD 00001105: DUP1 00001106: DUP1 00001107: PUSH1 0x20 00001109: ADD 0000110a: DUP3 0000110b: DUP2 0000110c: SUB 0000110d: DUP3 0000110e: MSTORE 0000110f: PUSH1 0x31 00001111: DUP2 00001112: MSTORE 00001113: PUSH1 0x20 00001115: ADD 00001116: DUP1 00001117: PUSH2 0x43eb 0000111a: PUSH1 0x31 0000111c: SWAP2 0000111d: CODECOPY 0000111e: PUSH1 0x40 00001120: ADD 00001121: SWAP2 00001122: POP 00001123: POP 00001124: PUSH1 0x40 00001126: MLOAD 00001127: DUP1 00001128: SWAP2 00001129: SUB 0000112a: SWAP1 0000112b: REVERT 0000112c: JUMPDEST 0000112d: PUSH1 0x40 0000112f: DUP1 00001130: MLOAD 00001131: PUSH1 0x01 00001133: PUSH1 0x01 00001135: PUSH1 0x60 00001137: SHL 00001138: SUB 00001139: NOT 0000113a: PUSH1 0x60 0000113c: DUP11 0000113d: SWAP1 0000113e: SHL 0000113f: AND 00001140: PUSH1 0x20 00001142: DUP3 00001143: ADD 00001144: MSTORE 00001145: PUSH1 0x01 00001147: PUSH1 0x01 00001149: PUSH1 0xf0 0000114b: SHL 0000114c: SUB 0000114d: NOT 0000114e: PUSH1 0xf0 00001150: DUP10 00001151: SWAP1 00001152: SHL 00001153: AND 00001154: PUSH1 0x34 00001156: DUP3 00001157: ADD 00001158: MSTORE 00001159: PUSH1 0x01 0000115b: PUSH1 0x01 0000115d: PUSH1 0xc0 0000115f: SHL 00001160: SUB 00001161: NOT 00001162: PUSH1 0xc0 00001164: DUP9 00001165: SWAP1 00001166: SHL 00001167: AND 00001168: PUSH1 0x36 0000116a: DUP3 0000116b: ADD 0000116c: MSTORE 0000116d: PUSH1 0x01 0000116f: PUSH1 0x01 00001171: PUSH1 0xe0 00001173: SHL 00001174: SUB 00001175: NOT 00001176: PUSH1 0xe0 00001178: DUP8 00001179: SWAP1 0000117a: SHL 0000117b: AND 0000117c: PUSH1 0x3e 0000117e: DUP3 0000117f: ADD 00001180: MSTORE 00001181: DUP2 00001182: MLOAD 00001183: PUSH1 0x22 00001185: DUP2 00001186: DUP4 00001187: SUB 00001188: ADD 00001189: DUP2 0000118a: MSTORE 0000118b: PUSH1 0x42 0000118d: SWAP1 0000118e: SWAP2 0000118f: ADD 00001190: SWAP1 00001191: SWAP2 00001192: MSTORE 00001193: PUSH2 0x11a1 00001196: SWAP1 00001197: PUSH1 0x03 00001199: SWAP1 0000119a: DUP6 0000119b: DUP6 0000119c: DUP6 0000119d: PUSH2 0x2fdb 000011a0: JUMP 000011a1: JUMPDEST 000011a2: PUSH2 0x11e6 000011a5: JUMPI 000011a6: PUSH1 0x40 000011a8: DUP1 000011a9: MLOAD 000011aa: PUSH3 0x461bcd 000011ae: PUSH1 0xe5 000011b0: SHL 000011b1: DUP2 000011b2: MSTORE 000011b3: PUSH1 0x20 000011b5: PUSH1 0x04 000011b7: DUP3 000011b8: ADD 000011b9: MSTORE 000011ba: PUSH1 0x11 000011bc: PUSH1 0x24 000011be: DUP3 000011bf: ADD 000011c0: MSTORE 000011c1: PUSH17 0x496e76616c6964207369676e6174757265 000011d3: PUSH1 0x78 000011d5: SHL 000011d6: PUSH1 0x44 000011d8: DUP3 000011d9: ADD 000011da: MSTORE 000011db: SWAP1 000011dc: MLOAD 000011dd: SWAP1 000011de: DUP2 000011df: SWAP1 000011e0: SUB 000011e1: PUSH1 0x64 000011e3: ADD 000011e4: SWAP1 000011e5: REVERT 000011e6: JUMPDEST 000011e7: PUSH2 0x11ee 000011ea: PUSH2 0x4035 000011ed: JUMP 000011ee: JUMPDEST 000011ef: PUSH2 0x11f8 000011f2: DUP9 000011f3: DUP9 000011f4: PUSH2 0x2ad2 000011f7: JUMP 000011f8: JUMPDEST 000011f9: SWAP1 000011fa: POP 000011fb: DUP1 000011fc: PUSH1 0x20 000011fe: ADD 000011ff: MLOAD 00001200: PUSH4 0xffffffff 00001205: AND 00001206: DUP6 00001207: PUSH4 0xffffffff 0000120c: AND 0000120d: GT 0000120e: PUSH2 0x1248 00001211: JUMPI 00001212: PUSH1 0x40 00001214: MLOAD 00001215: PUSH3 0x461bcd 00001219: PUSH1 0xe5 0000121b: SHL 0000121c: DUP2 0000121d: MSTORE 0000121e: PUSH1 0x04 00001220: ADD 00001221: DUP1 00001222: DUP1 00001223: PUSH1 0x20 00001225: ADD 00001226: DUP3 00001227: DUP2 00001228: SUB 00001229: DUP3 0000122a: MSTORE 0000122b: PUSH1 0x27 0000122d: DUP2 0000122e: MSTORE 0000122f: PUSH1 0x20 00001231: ADD 00001232: DUP1 00001233: PUSH2 0x43a3 00001236: PUSH1 0x27 00001238: SWAP2 00001239: CODECOPY 0000123a: PUSH1 0x40 0000123c: ADD 0000123d: SWAP2 0000123e: POP 0000123f: POP 00001240: PUSH1 0x40 00001242: MLOAD 00001243: DUP1 00001244: SWAP2 00001245: SUB 00001246: SWAP1 00001247: REVERT 00001248: JUMPDEST 00001249: DUP1 0000124a: MLOAD 0000124b: PUSH1 0x01 0000124d: PUSH1 0x01 0000124f: PUSH1 0x40 00001251: SHL 00001252: SUB 00001253: DUP1 00001254: DUP9 00001255: AND 00001256: SWAP2 00001257: AND 00001258: LT 00001259: ISZERO 0000125a: PUSH2 0x129f 0000125d: JUMPI 0000125e: PUSH1 0x40 00001260: DUP1 00001261: MLOAD 00001262: PUSH3 0x461bcd 00001266: PUSH1 0xe5 00001268: SHL 00001269: DUP2 0000126a: MSTORE 0000126b: PUSH1 0x20 0000126d: PUSH1 0x04 0000126f: DUP3 00001270: ADD 00001271: MSTORE 00001272: PUSH1 0x12 00001274: PUSH1 0x24 00001276: DUP3 00001277: ADD 00001278: MSTORE 00001279: PUSH18 0x496e73756666696369656e742066756e6473 0000128c: PUSH1 0x70 0000128e: SHL 0000128f: PUSH1 0x44 00001291: DUP3 00001292: ADD 00001293: MSTORE 00001294: SWAP1 00001295: MLOAD 00001296: SWAP1 00001297: DUP2 00001298: SWAP1 00001299: SUB 0000129a: PUSH1 0x64 0000129c: ADD 0000129d: SWAP1 0000129e: REVERT 0000129f: JUMPDEST 000012a0: PUSH2 0xffff 000012a3: DUP8 000012a4: AND 000012a5: PUSH1 0x00 000012a7: SWAP1 000012a8: DUP2 000012a9: MSTORE 000012aa: PUSH1 0x04 000012ac: PUSH1 0x20 000012ae: SWAP1 000012af: DUP2 000012b0: MSTORE 000012b1: PUSH1 0x40 000012b3: SWAP1 000012b4: SWAP2 000012b5: KECCAK256 000012b6: DUP1 000012b7: SLOAD 000012b8: PUSH8 0xffffffffffffffff 000012c1: NOT 000012c2: DUP2 000012c3: AND 000012c4: PUSH1 0x01 000012c6: PUSH1 0x01 000012c8: PUSH1 0x40 000012ca: SHL 000012cb: SUB 000012cc: SWAP2 000012cd: DUP3 000012ce: AND 000012cf: DUP11 000012d0: SWAP1 000012d1: SUB 000012d2: DUP3 000012d3: AND 000012d4: OR 000012d5: SWAP1 000012d6: SWAP2 000012d7: SSTORE 000012d8: PUSH4 0xffffffff 000012dd: DUP8 000012de: AND 000012df: SWAP2 000012e0: DUP4 000012e1: ADD 000012e2: SWAP2 000012e3: SWAP1 000012e4: SWAP2 000012e5: MSTORE 000012e6: DUP2 000012e7: MLOAD 000012e8: DUP8 000012e9: SWAP1 000012ea: SUB 000012eb: AND 000012ec: DUP2 000012ed: MSTORE 000012ee: PUSH2 0x12f7 000012f1: DUP9 000012f2: DUP3 000012f3: PUSH2 0x2ca2 000012f6: JUMP 000012f7: JUMPDEST 000012f8: PUSH2 0x1302 000012fb: DUP9 000012fc: DUP9 000012fd: DUP9 000012fe: PUSH2 0x307e 00001301: JUMP 00001302: JUMPDEST 00001303: PUSH32 0x1e7f91273d70e85b3418ba15a115fd91715dc834a212c47ebe55745f18b3e0a8 00001324: DUP9 00001325: DUP9 00001326: DUP9 00001327: DUP9 00001328: DUP9 00001329: DUP9 0000132a: DUP9 0000132b: PUSH1 0x40 0000132d: MLOAD 0000132e: DUP1 0000132f: DUP9 00001330: PUSH1 0x01 00001332: PUSH1 0x01 00001334: PUSH1 0xa0 00001336: SHL 00001337: SUB 00001338: AND 00001339: PUSH1 0x01 0000133b: PUSH1 0x01 0000133d: PUSH1 0xa0 0000133f: SHL 00001340: SUB 00001341: AND 00001342: DUP2 00001343: MSTORE 00001344: PUSH1 0x20 00001346: ADD 00001347: DUP8 00001348: PUSH2 0xffff 0000134b: AND 0000134c: PUSH2 0xffff 0000134f: AND 00001350: DUP2 00001351: MSTORE 00001352: PUSH1 0x20 00001354: ADD 00001355: DUP7 00001356: PUSH1 0x01 00001358: PUSH1 0x01 0000135a: PUSH1 0x40 0000135c: SHL 0000135d: SUB 0000135e: AND 0000135f: PUSH1 0x01 00001361: PUSH1 0x01 00001363: PUSH1 0x40 00001365: SHL 00001366: SUB 00001367: AND 00001368: DUP2 00001369: MSTORE 0000136a: PUSH1 0x20 0000136c: ADD 0000136d: DUP6 0000136e: PUSH4 0xffffffff 00001373: AND 00001374: PUSH4 0xffffffff 00001379: AND 0000137a: DUP2 0000137b: MSTORE 0000137c: PUSH1 0x20 0000137e: ADD 0000137f: DUP5 00001380: PUSH1 0x01 00001382: PUSH1 0x01 00001384: PUSH1 0xa0 00001386: SHL 00001387: SUB 00001388: AND 00001389: PUSH1 0x01 0000138b: PUSH1 0x01 0000138d: PUSH1 0xa0 0000138f: SHL 00001390: SUB 00001391: AND 00001392: DUP2 00001393: MSTORE 00001394: PUSH1 0x20 00001396: ADD 00001397: DUP1 00001398: PUSH1 0x20 0000139a: ADD 0000139b: DUP1 0000139c: PUSH1 0x20 0000139e: ADD 0000139f: DUP4 000013a0: DUP2 000013a1: SUB 000013a2: DUP4 000013a3: MSTORE 000013a4: DUP6 000013a5: DUP2 000013a6: DUP2 000013a7: MLOAD 000013a8: DUP2 000013a9: MSTORE 000013aa: PUSH1 0x20 000013ac: ADD 000013ad: SWAP2 000013ae: POP 000013af: DUP1 000013b0: MLOAD 000013b1: SWAP1 000013b2: PUSH1 0x20 000013b4: ADD 000013b5: SWAP1 000013b6: DUP1 000013b7: DUP4 000013b8: DUP4 000013b9: PUSH1 0x00 000013bb: JUMPDEST 000013bc: DUP4 000013bd: DUP2 000013be: LT 000013bf: ISZERO 000013c0: PUSH2 0x13d3 000013c3: JUMPI 000013c4: DUP2 000013c5: DUP2 000013c6: ADD 000013c7: MLOAD 000013c8: DUP4 000013c9: DUP3 000013ca: ADD 000013cb: MSTORE 000013cc: PUSH1 0x20 000013ce: ADD 000013cf: PUSH2 0x13bb 000013d2: JUMP 000013d3: JUMPDEST 000013d4: POP 000013d5: POP 000013d6: POP 000013d7: POP 000013d8: SWAP1 000013d9: POP 000013da: SWAP1 000013db: DUP2 000013dc: ADD 000013dd: SWAP1 000013de: PUSH1 0x1f 000013e0: AND 000013e1: DUP1 000013e2: ISZERO 000013e3: PUSH2 0x1400 000013e6: JUMPI 000013e7: DUP1 000013e8: DUP3 000013e9: SUB 000013ea: DUP1 000013eb: MLOAD 000013ec: PUSH1 0x01 000013ee: DUP4 000013ef: PUSH1 0x20 000013f1: SUB 000013f2: PUSH2 0x0100 000013f5: EXP 000013f6: SUB 000013f7: NOT 000013f8: AND 000013f9: DUP2 000013fa: MSTORE 000013fb: PUSH1 0x20 000013fd: ADD 000013fe: SWAP2 000013ff: POP 00001400: JUMPDEST 00001401: POP 00001402: DUP4 00001403: DUP2 00001404: SUB 00001405: DUP3 00001406: MSTORE 00001407: DUP5 00001408: MLOAD 00001409: DUP2 0000140a: MSTORE 0000140b: DUP5 0000140c: MLOAD 0000140d: PUSH1 0x20 0000140f: SWAP2 00001410: DUP3 00001411: ADD 00001412: SWAP2 00001413: DUP7 00001414: ADD 00001415: SWAP1 00001416: DUP1 00001417: DUP4 00001418: DUP4 00001419: PUSH1 0x00 0000141b: JUMPDEST 0000141c: DUP4 0000141d: DUP2 0000141e: LT 0000141f: ISZERO 00001420: PUSH2 0x1433 00001423: JUMPI 00001424: DUP2 00001425: DUP2 00001426: ADD 00001427: MLOAD 00001428: DUP4 00001429: DUP3 0000142a: ADD 0000142b: MSTORE 0000142c: PUSH1 0x20 0000142e: ADD 0000142f: PUSH2 0x141b 00001432: JUMP 00001433: JUMPDEST 00001434: POP 00001435: POP 00001436: POP 00001437: POP 00001438: SWAP1 00001439: POP 0000143a: SWAP1 0000143b: DUP2 0000143c: ADD 0000143d: SWAP1 0000143e: PUSH1 0x1f 00001440: AND 00001441: DUP1 00001442: ISZERO 00001443: PUSH2 0x1460 00001446: JUMPI 00001447: DUP1 00001448: DUP3 00001449: SUB 0000144a: DUP1 0000144b: MLOAD 0000144c: PUSH1 0x01 0000144e: DUP4 0000144f: PUSH1 0x20 00001451: SUB 00001452: PUSH2 0x0100 00001455: EXP 00001456: SUB 00001457: NOT 00001458: AND 00001459: DUP2 0000145a: MSTORE 0000145b: PUSH1 0x20 0000145d: ADD 0000145e: SWAP2 0000145f: POP 00001460: JUMPDEST 00001461: POP 00001462: SWAP10 00001463: POP 00001464: POP 00001465: POP 00001466: POP 00001467: POP 00001468: POP 00001469: POP 0000146a: POP 0000146b: POP 0000146c: POP 0000146d: PUSH1 0x40 0000146f: MLOAD 00001470: DUP1 00001471: SWAP2 00001472: SUB 00001473: SWAP1 00001474: LOG1 00001475: POP 00001476: POP 00001477: PUSH1 0x00 00001479: DUP1 0000147a: SLOAD 0000147b: PUSH1 0xff 0000147d: PUSH1 0xa0 0000147f: SHL 00001480: NOT 00001481: AND 00001482: SWAP1 00001483: SSTORE 00001484: POP 00001485: POP 00001486: POP 00001487: POP 00001488: POP 00001489: POP 0000148a: JUMP 0000148b: JUMPDEST 0000148c: DUP10 0000148d: PUSH1 0x01 0000148f: PUSH1 0x01 00001491: PUSH1 0x40 00001493: SHL 00001494: SUB 00001495: AND 00001496: DUP4 00001497: PUSH1 0x01 00001499: PUSH1 0x01 0000149b: PUSH1 0x40 0000149d: SHL 0000149e: SUB 0000149f: AND 000014a0: GT 000014a1: ISZERO 000014a2: PUSH2 0x14dc 000014a5: JUMPI 000014a6: PUSH1 0x40 000014a8: MLOAD 000014a9: PUSH3 0x461bcd 000014ad: PUSH1 0xe5 000014af: SHL 000014b0: DUP2 000014b1: MSTORE 000014b2: PUSH1 0x04 000014b4: ADD 000014b5: DUP1 000014b6: DUP1 000014b7: PUSH1 0x20 000014b9: ADD 000014ba: DUP3 000014bb: DUP2 000014bc: SUB 000014bd: DUP3 000014be: MSTORE 000014bf: PUSH1 0x22 000014c1: DUP2 000014c2: MSTORE 000014c3: PUSH1 0x20 000014c5: ADD 000014c6: DUP1 000014c7: PUSH2 0x416c 000014ca: PUSH1 0x22 000014cc: SWAP2 000014cd: CODECOPY 000014ce: PUSH1 0x40 000014d0: ADD 000014d1: SWAP2 000014d2: POP 000014d3: POP 000014d4: PUSH1 0x40 000014d6: MLOAD 000014d7: DUP1 000014d8: SWAP2 000014d9: SUB 000014da: SWAP1 000014db: REVERT 000014dc: JUMPDEST 000014dd: DUP9 000014de: MLOAD 000014df: PUSH1 0x01 000014e1: PUSH1 0x01 000014e3: PUSH1 0x40 000014e5: SHL 000014e6: SUB 000014e7: SWAP1 000014e8: DUP2 000014e9: AND 000014ea: SWAP1 000014eb: DUP4 000014ec: AND 000014ed: LT 000014ee: ISZERO 000014ef: PUSH2 0x1529 000014f2: JUMPI 000014f3: PUSH1 0x40 000014f5: MLOAD 000014f6: PUSH3 0x461bcd 000014fa: PUSH1 0xe5 000014fc: SHL 000014fd: DUP2 000014fe: MSTORE 000014ff: PUSH1 0x04 00001501: ADD 00001502: DUP1 00001503: DUP1 00001504: PUSH1 0x20 00001506: ADD 00001507: DUP3 00001508: DUP2 00001509: SUB 0000150a: DUP3 0000150b: MSTORE 0000150c: PUSH1 0x2f 0000150e: DUP2 0000150f: MSTORE 00001510: PUSH1 0x20 00001512: ADD 00001513: DUP1 00001514: PUSH2 0x42ed 00001517: PUSH1 0x2f 00001519: SWAP2 0000151a: CODECOPY 0000151b: PUSH1 0x40 0000151d: ADD 0000151e: SWAP2 0000151f: POP 00001520: POP 00001521: PUSH1 0x40 00001523: MLOAD 00001524: DUP1 00001525: SWAP2 00001526: SUB 00001527: SWAP1 00001528: REVERT 00001529: JUMPDEST 0000152a: DUP9 0000152b: PUSH1 0x01 0000152d: PUSH1 0x20 0000152f: MUL 00001530: ADD 00001531: MLOAD 00001532: PUSH1 0x01 00001534: PUSH1 0x01 00001536: PUSH1 0x40 00001538: SHL 00001539: SUB 0000153a: AND 0000153b: DUP3 0000153c: PUSH1 0x01 0000153e: PUSH1 0x01 00001540: PUSH1 0x40 00001542: SHL 00001543: SUB 00001544: AND 00001545: GT 00001546: ISZERO 00001547: PUSH2 0x1581 0000154a: JUMPI 0000154b: PUSH1 0x40 0000154d: MLOAD 0000154e: PUSH3 0x461bcd 00001552: PUSH1 0xe5 00001554: SHL 00001555: DUP2 00001556: MSTORE 00001557: PUSH1 0x04 00001559: ADD 0000155a: DUP1 0000155b: DUP1 0000155c: PUSH1 0x20 0000155e: ADD 0000155f: DUP3 00001560: DUP2 00001561: SUB 00001562: DUP3 00001563: MSTORE 00001564: PUSH1 0x31 00001566: DUP2 00001567: MSTORE 00001568: PUSH1 0x20 0000156a: ADD 0000156b: DUP1 0000156c: PUSH2 0x441c 0000156f: PUSH1 0x31 00001571: SWAP2 00001572: CODECOPY 00001573: PUSH1 0x40 00001575: ADD 00001576: SWAP2 00001577: POP 00001578: POP 00001579: PUSH1 0x40 0000157b: MLOAD 0000157c: DUP1 0000157d: SWAP2 0000157e: SUB 0000157f: SWAP1 00001580: REVERT 00001581: JUMPDEST 00001582: DUP8 00001583: PUSH1 0x01 00001585: PUSH1 0x01 00001587: PUSH1 0x40 00001589: SHL 0000158a: SUB 0000158b: AND 0000158c: DUP2 0000158d: PUSH1 0x01 0000158f: PUSH1 0x01 00001591: PUSH1 0x40 00001593: SHL 00001594: SUB 00001595: AND 00001596: GT 00001597: ISZERO 00001598: PUSH2 0x15d2 0000159b: JUMPI 0000159c: PUSH1 0x40 0000159e: MLOAD 0000159f: PUSH3 0x461bcd 000015a3: PUSH1 0xe5 000015a5: SHL 000015a6: DUP2 000015a7: MSTORE 000015a8: PUSH1 0x04 000015aa: ADD 000015ab: DUP1 000015ac: DUP1 000015ad: PUSH1 0x20 000015af: ADD 000015b0: DUP3 000015b1: DUP2 000015b2: SUB 000015b3: DUP3 000015b4: MSTORE 000015b5: PUSH1 0x23 000015b7: DUP2 000015b8: MSTORE 000015b9: PUSH1 0x20 000015bb: ADD 000015bc: DUP1 000015bd: PUSH2 0x41e4 000015c0: PUSH1 0x23 000015c2: SWAP2 000015c3: CODECOPY 000015c4: PUSH1 0x40 000015c6: ADD 000015c7: SWAP2 000015c8: POP 000015c9: POP 000015ca: PUSH1 0x40 000015cc: MLOAD 000015cd: DUP1 000015ce: SWAP2 000015cf: SUB 000015d0: SWAP1 000015d1: REVERT 000015d2: JUMPDEST 000015d3: PUSH1 0x60 000015d5: DUP14 000015d6: DUP14 000015d7: PUSH1 0x00 000015d9: PUSH1 0x20 000015db: MUL 000015dc: ADD 000015dd: MLOAD 000015de: DUP15 000015df: PUSH1 0x01 000015e1: PUSH1 0x20 000015e3: MUL 000015e4: ADD 000015e5: MLOAD 000015e6: DUP15 000015e7: PUSH1 0x00 000015e9: PUSH1 0x20 000015eb: MUL 000015ec: ADD 000015ed: MLOAD 000015ee: DUP16 000015ef: PUSH1 0x01 000015f1: PUSH1 0x20 000015f3: SWAP1 000015f4: DUP2 000015f5: MUL 000015f6: SWAP2 000015f7: SWAP1 000015f8: SWAP2 000015f9: ADD 000015fa: MLOAD 000015fb: PUSH1 0x40 000015fd: DUP1 000015fe: MLOAD 000015ff: PUSH1 0x60 00001601: SWAP8 00001602: SWAP1 00001603: SWAP8 00001604: SHL 00001605: PUSH1 0x01 00001607: PUSH1 0x01 00001609: PUSH1 0x60 0000160b: SHL 0000160c: SUB 0000160d: NOT 0000160e: AND 0000160f: DUP8 00001610: DUP5 00001611: ADD 00001612: MSTORE 00001613: PUSH1 0xf0 00001615: SWAP6 00001616: DUP7 00001617: SHL 00001618: PUSH1 0x01 0000161a: PUSH1 0x01 0000161c: PUSH1 0xf0 0000161e: SHL 0000161f: SUB 00001620: NOT 00001621: SWAP1 00001622: DUP2 00001623: AND 00001624: PUSH1 0x34 00001626: DUP10 00001627: ADD 00001628: MSTORE 00001629: SWAP5 0000162a: SWAP1 0000162b: SWAP6 0000162c: SHL 0000162d: SWAP1 0000162e: SWAP4 0000162f: AND 00001630: PUSH1 0x36 00001632: DUP7 00001633: ADD 00001634: MSTORE 00001635: PUSH1 0xe0 00001637: SWAP2 00001638: DUP3 00001639: SHL 0000163a: PUSH1 0x01 0000163c: PUSH1 0x01 0000163e: PUSH1 0xe0 00001640: SHL 00001641: SUB 00001642: NOT 00001643: SWAP1 00001644: DUP2 00001645: AND 00001646: PUSH1 0x38 00001648: DUP8 00001649: ADD 0000164a: MSTORE 0000164b: SWAP3 0000164c: SWAP1 0000164d: SWAP2 0000164e: SHL 0000164f: SWAP1 00001650: SWAP2 00001651: AND 00001652: PUSH1 0x3c 00001654: DUP5 00001655: ADD 00001656: MSTORE 00001657: DUP2 00001658: MLOAD 00001659: DUP1 0000165a: DUP5 0000165b: SUB 0000165c: SWAP1 0000165d: SWAP2 0000165e: ADD 0000165f: DUP2 00001660: MSTORE 00001661: SWAP2 00001662: DUP2 00001663: ADD 00001664: SWAP1 00001665: MSTORE 00001666: SWAP1 00001667: POP 00001668: DUP1 00001669: DUP12 0000166a: DUP12 0000166b: PUSH1 0x00 0000166d: PUSH1 0x20 0000166f: MUL 00001670: ADD 00001671: MLOAD 00001672: DUP13 00001673: PUSH1 0x01 00001675: PUSH1 0x20 00001677: MUL 00001678: ADD 00001679: MLOAD 0000167a: DUP13 0000167b: DUP13 0000167c: PUSH1 0x40 0000167e: MLOAD 0000167f: PUSH1 0x20 00001681: ADD 00001682: DUP1 00001683: DUP8 00001684: DUP1 00001685: MLOAD 00001686: SWAP1 00001687: PUSH1 0x20 00001689: ADD 0000168a: SWAP1 0000168b: DUP1 0000168c: DUP4 0000168d: DUP4 0000168e: JUMPDEST 0000168f: PUSH1 0x20 00001691: DUP4 00001692: LT 00001693: PUSH2 0x16ad 00001696: JUMPI 00001697: DUP1 00001698: MLOAD 00001699: DUP3 0000169a: MSTORE 0000169b: PUSH1 0x1f 0000169d: NOT 0000169e: SWAP1 0000169f: SWAP3 000016a0: ADD 000016a1: SWAP2 000016a2: PUSH1 0x20 000016a4: SWAP2 000016a5: DUP3 000016a6: ADD 000016a7: SWAP2 000016a8: ADD 000016a9: PUSH2 0x168e 000016ac: JUMP 000016ad: JUMPDEST 000016ae: MLOAD 000016af: DUP2 000016b0: MLOAD 000016b1: PUSH1 0x20 000016b3: SWAP4 000016b4: DUP5 000016b5: SUB 000016b6: PUSH2 0x0100 000016b9: EXP 000016ba: PUSH1 0x00 000016bc: NOT 000016bd: ADD 000016be: DUP1 000016bf: NOT 000016c0: SWAP1 000016c1: SWAP3 000016c2: AND 000016c3: SWAP2 000016c4: AND 000016c5: OR 000016c6: SWAP1 000016c7: MSTORE 000016c8: PUSH1 0xc0 000016ca: SWAP10 000016cb: DUP11 000016cc: SHL 000016cd: PUSH1 0x01 000016cf: PUSH1 0x01 000016d1: PUSH1 0xc0 000016d3: SHL 000016d4: SUB 000016d5: NOT 000016d6: SWAP1 000016d7: DUP2 000016d8: AND 000016d9: SWAP3 000016da: SWAP1 000016db: SWAP5 000016dc: ADD 000016dd: SWAP2 000016de: DUP3 000016df: MSTORE 000016e0: SWAP8 000016e1: DUP10 000016e2: SHL 000016e3: DUP4 000016e4: AND 000016e5: PUSH1 0x08 000016e7: DUP3 000016e8: ADD 000016e9: MSTORE 000016ea: SWAP6 000016eb: DUP9 000016ec: SHL 000016ed: DUP3 000016ee: AND 000016ef: PUSH1 0x10 000016f1: DUP8 000016f2: ADD 000016f3: MSTORE 000016f4: POP 000016f5: SWAP3 000016f6: SWAP1 000016f7: SWAP6 000016f8: SHL 000016f9: SWAP1 000016fa: SWAP2 000016fb: AND 000016fc: PUSH1 0x18 000016fe: DUP4 000016ff: ADD 00001700: MSTORE 00001701: PUSH1 0xe0 00001703: SHL 00001704: PUSH1 0x01 00001706: PUSH1 0x01 00001708: PUSH1 0xe0 0000170a: SHL 0000170b: SUB 0000170c: NOT 0000170d: AND 0000170e: SWAP2 0000170f: DUP2 00001710: ADD 00001711: SWAP2 00001712: SWAP1 00001713: SWAP2 00001714: MSTORE 00001715: PUSH1 0x40 00001717: DUP1 00001718: MLOAD 00001719: PUSH1 0x04 0000171b: DUP2 0000171c: DUP5 0000171d: SUB 0000171e: ADD 0000171f: DUP2 00001720: MSTORE 00001721: PUSH1 0x24 00001723: SWAP1 00001724: SWAP3 00001725: ADD 00001726: SWAP1 00001727: MSTORE 00001728: SWAP3 00001729: POP 0000172a: PUSH2 0x173a 0000172d: SWAP2 0000172e: POP 0000172f: DUP3 00001730: SWAP1 00001731: POP 00001732: DUP16 00001733: DUP10 00001734: DUP10 00001735: DUP10 00001736: PUSH2 0x320f 00001739: JUMP 0000173a: JUMPDEST 0000173b: PUSH2 0x1749 0000173e: DUP15 0000173f: DUP15 00001740: DUP15 00001741: DUP8 00001742: DUP8 00001743: DUP8 00001744: DUP15 00001745: PUSH2 0x326a 00001748: JUMP 00001749: JUMPDEST 0000174a: POP 0000174b: POP 0000174c: POP 0000174d: POP 0000174e: POP 0000174f: POP 00001750: POP 00001751: POP 00001752: POP 00001753: POP 00001754: POP 00001755: POP 00001756: POP 00001757: POP 00001758: JUMP 00001759: JUMPDEST 0000175a: PUSH1 0x00 0000175c: SLOAD 0000175d: PUSH1 0x01 0000175f: PUSH1 0xa8 00001761: SHL 00001762: SWAP1 00001763: DIV 00001764: PUSH2 0xffff 00001767: AND 00001768: DUP2 00001769: JUMP 0000176a: JUMPDEST 0000176b: PUSH2 0x1772 0000176e: PUSH2 0x1fc5 00001771: JUMP 00001772: JUMPDEST 00001773: PUSH2 0x17b1 00001776: JUMPI 00001777: PUSH1 0x40 00001779: DUP1 0000177a: MLOAD 0000177b: PUSH3 0x461bcd 0000177f: PUSH1 0xe5 00001781: SHL 00001782: DUP2 00001783: MSTORE 00001784: PUSH1 0x20 00001786: PUSH1 0x04 00001788: DUP3 00001789: ADD 0000178a: DUP2 0000178b: SWAP1 0000178c: MSTORE 0000178d: PUSH1 0x24 0000178f: DUP3 00001790: ADD 00001791: MSTORE 00001792: PUSH1 0x00 00001794: DUP1 00001795: MLOAD 00001796: PUSH1 0x20 00001798: PUSH2 0x434a 0000179b: DUP4 0000179c: CODECOPY 0000179d: DUP2 0000179e: MLOAD 0000179f: SWAP2 000017a0: MSTORE 000017a1: PUSH1 0x44 000017a3: DUP3 000017a4: ADD 000017a5: MSTORE 000017a6: SWAP1 000017a7: MLOAD 000017a8: SWAP1 000017a9: DUP2 000017aa: SWAP1 000017ab: SUB 000017ac: PUSH1 0x64 000017ae: ADD 000017af: SWAP1 000017b0: REVERT 000017b1: JUMPDEST 000017b2: PUSH1 0x00 000017b4: DUP1 000017b5: SLOAD 000017b6: PUSH2 0xffff 000017b9: SWAP1 000017ba: SWAP3 000017bb: AND 000017bc: PUSH1 0x01 000017be: PUSH1 0xa8 000017c0: SHL 000017c1: MUL 000017c2: PUSH2 0xffff 000017c5: PUSH1 0xa8 000017c7: SHL 000017c8: NOT 000017c9: SWAP1 000017ca: SWAP3 000017cb: AND 000017cc: SWAP2 000017cd: SWAP1 000017ce: SWAP2 000017cf: OR 000017d0: SWAP1 000017d1: SSTORE 000017d2: JUMP 000017d3: JUMPDEST 000017d4: PUSH1 0x60 000017d6: DUP1 000017d7: PUSH1 0x00 000017d9: PUSH1 0x17 000017db: SWAP1 000017dc: SLOAD 000017dd: SWAP1 000017de: PUSH2 0x0100 000017e1: EXP 000017e2: SWAP1 000017e3: DIV 000017e4: PUSH2 0xffff 000017e7: AND 000017e8: PUSH2 0xffff 000017eb: AND 000017ec: PUSH1 0x40 000017ee: MLOAD 000017ef: SWAP1 000017f0: DUP1 000017f1: DUP3 000017f2: MSTORE 000017f3: DUP1 000017f4: PUSH1 0x20 000017f6: MUL 000017f7: PUSH1 0x20 000017f9: ADD 000017fa: DUP3 000017fb: ADD 000017fc: PUSH1 0x40 000017fe: MSTORE 000017ff: DUP1 00001800: ISZERO 00001801: PUSH2 0x1814 00001804: JUMPI 00001805: DUP2 00001806: PUSH1 0x20 00001808: ADD 00001809: PUSH1 0x20 0000180b: DUP3 0000180c: MUL 0000180d: DUP1 0000180e: CODESIZE 0000180f: DUP4 00001810: CODECOPY 00001811: ADD 00001812: SWAP1 00001813: POP 00001814: JUMPDEST 00001815: POP 00001816: SWAP1 00001817: POP 00001818: PUSH1 0x00 0000181a: JUMPDEST 0000181b: PUSH1 0x00 0000181d: SLOAD 0000181e: PUSH2 0xffff 00001821: PUSH1 0x01 00001823: PUSH1 0xb8 00001825: SHL 00001826: SWAP1 00001827: SWAP2 00001828: DIV 00001829: DUP2 0000182a: AND 0000182b: SWAP1 0000182c: DUP3 0000182d: AND 0000182e: LT 0000182f: ISZERO 00001830: PUSH2 0x187f 00001833: JUMPI 00001834: PUSH2 0xffff 00001837: DUP2 00001838: AND 00001839: PUSH1 0x00 0000183b: DUP2 0000183c: DUP2 0000183d: MSTORE 0000183e: PUSH1 0x04 00001840: PUSH1 0x20 00001842: MSTORE 00001843: PUSH1 0x40 00001845: SWAP1 00001846: KECCAK256 00001847: SLOAD 00001848: DUP4 00001849: MLOAD 0000184a: PUSH1 0x01 0000184c: PUSH1 0x01 0000184e: PUSH1 0x40 00001850: SHL 00001851: SUB 00001852: SWAP1 00001853: SWAP2 00001854: AND 00001855: SWAP2 00001856: DUP5 00001857: SWAP2 00001858: DUP2 00001859: LT 0000185a: PUSH2 0x185f 0000185d: JUMPI 0000185e: INVALID 0000185f: JUMPDEST 00001860: PUSH1 0x01 00001862: PUSH1 0x01 00001864: PUSH1 0x40 00001866: SHL 00001867: SUB 00001868: SWAP1 00001869: SWAP3 0000186a: AND 0000186b: PUSH1 0x20 0000186d: SWAP3 0000186e: DUP4 0000186f: MUL 00001870: SWAP2 00001871: SWAP1 00001872: SWAP2 00001873: ADD 00001874: SWAP1 00001875: SWAP2 00001876: ADD 00001877: MSTORE 00001878: PUSH1 0x01 0000187a: ADD 0000187b: PUSH2 0x181a 0000187e: JUMP 0000187f: JUMPDEST 00001880: POP 00001881: SWAP1 00001882: POP 00001883: JUMPDEST 00001884: SWAP1 00001885: JUMP 00001886: JUMPDEST 00001887: PUSH1 0x01 00001889: PUSH1 0x01 0000188b: PUSH1 0xa0 0000188d: SHL 0000188e: SUB 0000188f: DUP2 00001890: AND 00001891: CALLER 00001892: EQ 00001893: PUSH2 0x18e3 00001896: JUMPI 00001897: PUSH1 0x40 00001899: DUP1 0000189a: MLOAD 0000189b: PUSH3 0x461bcd 0000189f: PUSH1 0xe5 000018a1: SHL 000018a2: DUP2 000018a3: MSTORE 000018a4: PUSH1 0x20 000018a6: PUSH1 0x04 000018a8: DUP3 000018a9: ADD 000018aa: MSTORE 000018ab: PUSH1 0x1d 000018ad: PUSH1 0x24 000018af: DUP3 000018b0: ADD 000018b1: MSTORE 000018b2: PUSH32 0x4164647265737320646f6573206e6f74206d617463682073656e646572000000 000018d3: PUSH1 0x44 000018d5: DUP3 000018d6: ADD 000018d7: MSTORE 000018d8: SWAP1 000018d9: MLOAD 000018da: SWAP1 000018db: DUP2 000018dc: SWAP1 000018dd: SUB 000018de: PUSH1 0x64 000018e0: ADD 000018e1: SWAP1 000018e2: REVERT 000018e3: JUMPDEST 000018e4: PUSH1 0x40 000018e6: DUP1 000018e7: MLOAD 000018e8: PUSH1 0x01 000018ea: PUSH1 0x01 000018ec: PUSH1 0xd0 000018ee: SHL 000018ef: SUB 000018f0: NOT 000018f1: NUMBER 000018f2: PUSH1 0xd0 000018f4: SHL 000018f5: AND 000018f6: PUSH1 0x20 000018f8: DUP1 000018f9: DUP4 000018fa: ADD 000018fb: SWAP2 000018fc: SWAP1 000018fd: SWAP2 000018fe: MSTORE 000018ff: DUP3 00001900: MLOAD 00001901: DUP1 00001902: DUP4 00001903: SUB 00001904: PUSH1 0x06 00001906: ADD 00001907: DUP2 00001908: MSTORE 00001909: PUSH1 0x26 0000190b: SWAP1 0000190c: SWAP3 0000190d: ADD 0000190e: DUP4 0000190f: MSTORE 00001910: PUSH1 0x01 00001912: PUSH1 0x01 00001914: PUSH1 0xa0 00001916: SHL 00001917: SUB 00001918: DUP5 00001919: AND 0000191a: PUSH1 0x00 0000191c: SWAP1 0000191d: DUP2 0000191e: MSTORE 0000191f: PUSH1 0x02 00001921: SWAP2 00001922: DUP3 00001923: SWAP1 00001924: MSTORE 00001925: SWAP3 00001926: SWAP1 00001927: SWAP3 00001928: KECCAK256 00001929: SLOAD 0000192a: SWAP1 0000192b: SWAP2 0000192c: PUSH1 0x07 0000192e: PUSH1 0x00 00001930: NOT 00001931: PUSH2 0x0100 00001934: PUSH1 0x01 00001936: DUP6 00001937: AND 00001938: ISZERO 00001939: MUL 0000193a: ADD 0000193b: SWAP1 0000193c: SWAP3 0000193d: AND 0000193e: DIV 0000193f: LT 00001940: ISZERO 00001941: PUSH2 0x19e4 00001944: JUMPI 00001945: PUSH1 0x01 00001947: PUSH1 0x01 00001949: PUSH1 0xa0 0000194b: SHL 0000194c: SUB 0000194d: DUP3 0000194e: AND 0000194f: PUSH1 0x00 00001951: SWAP1 00001952: DUP2 00001953: MSTORE 00001954: PUSH1 0x02 00001956: PUSH1 0x20 00001958: DUP2 00001959: SWAP1 0000195a: MSTORE 0000195b: PUSH1 0x40 0000195d: SWAP1 0000195e: SWAP2 0000195f: KECCAK256 00001960: SLOAD 00001961: PUSH1 0x00 00001963: NOT 00001964: PUSH2 0x0100 00001967: PUSH1 0x01 00001969: DUP4 0000196a: AND 0000196b: ISZERO 0000196c: MUL 0000196d: ADD 0000196e: AND 0000196f: DIV 00001970: PUSH2 0x19bd 00001973: JUMPI 00001974: PUSH1 0x02 00001976: PUSH1 0x00 00001978: DUP4 00001979: PUSH1 0x01 0000197b: PUSH1 0x01 0000197d: PUSH1 0xa0 0000197f: SHL 00001980: SUB 00001981: AND 00001982: PUSH1 0x01 00001984: PUSH1 0x01 00001986: PUSH1 0xa0 00001988: SHL 00001989: SUB 0000198a: AND 0000198b: DUP2 0000198c: MSTORE 0000198d: PUSH1 0x20 0000198f: ADD 00001990: SWAP1 00001991: DUP2 00001992: MSTORE 00001993: PUSH1 0x20 00001995: ADD 00001996: PUSH1 0x00 00001998: KECCAK256 00001999: DUP1 0000199a: SLOAD 0000199b: PUSH1 0x01 0000199d: DUP2 0000199e: PUSH1 0x01 000019a0: AND 000019a1: ISZERO 000019a2: PUSH2 0x0100 000019a5: MUL 000019a6: SUB 000019a7: AND 000019a8: PUSH1 0x02 000019aa: SWAP1 000019ab: DIV 000019ac: DUP1 000019ad: SWAP2 000019ae: SWAP1 000019af: PUSH1 0x01 000019b1: ADD 000019b2: PUSH2 0x19bb 000019b5: SWAP2 000019b6: SWAP1 000019b7: PUSH2 0x405c 000019ba: JUMP 000019bb: JUMPDEST 000019bc: POP 000019bd: JUMPDEST 000019be: PUSH1 0x01 000019c0: PUSH1 0x01 000019c2: PUSH1 0xa0 000019c4: SHL 000019c5: SUB 000019c6: DUP3 000019c7: AND 000019c8: PUSH1 0x00 000019ca: SWAP1 000019cb: DUP2 000019cc: MSTORE 000019cd: PUSH1 0x02 000019cf: PUSH1 0x20 000019d1: MSTORE 000019d2: PUSH1 0x40 000019d4: SWAP1 000019d5: KECCAK256 000019d6: PUSH2 0x19df 000019d9: SWAP1 000019da: DUP3 000019db: PUSH2 0x3385 000019de: JUMP 000019df: JUMPDEST 000019e0: PUSH2 0x1a95 000019e3: JUMP 000019e4: JUMPDEST 000019e5: PUSH1 0x00 000019e7: JUMPDEST 000019e8: PUSH1 0x06 000019ea: DUP2 000019eb: LT 000019ec: ISZERO 000019ed: PUSH2 0x1a93 000019f0: JUMPI 000019f1: DUP2 000019f2: DUP2 000019f3: DUP2 000019f4: MLOAD 000019f5: DUP2 000019f6: LT 000019f7: PUSH2 0x19fc 000019fa: JUMPI 000019fb: INVALID 000019fc: JUMPDEST 000019fd: PUSH1 0x20 000019ff: ADD 00001a00: ADD 00001a01: MLOAD 00001a02: PUSH1 0xf8 00001a04: SHR 00001a05: PUSH1 0xf8 00001a07: SHL 00001a08: PUSH1 0x02 00001a0a: PUSH1 0x00 00001a0c: DUP6 00001a0d: PUSH1 0x01 00001a0f: PUSH1 0x01 00001a11: PUSH1 0xa0 00001a13: SHL 00001a14: SUB 00001a15: AND 00001a16: PUSH1 0x01 00001a18: PUSH1 0x01 00001a1a: PUSH1 0xa0 00001a1c: SHL 00001a1d: SUB 00001a1e: AND 00001a1f: DUP2 00001a20: MSTORE 00001a21: PUSH1 0x20 00001a23: ADD 00001a24: SWAP1 00001a25: DUP2 00001a26: MSTORE 00001a27: PUSH1 0x20 00001a29: ADD 00001a2a: PUSH1 0x00 00001a2c: KECCAK256 00001a2d: DUP3 00001a2e: PUSH1 0x01 00001a30: ADD 00001a31: DUP2 00001a32: SLOAD 00001a33: PUSH1 0x01 00001a35: DUP2 00001a36: PUSH1 0x01 00001a38: AND 00001a39: ISZERO 00001a3a: PUSH2 0x0100 00001a3d: MUL 00001a3e: SUB 00001a3f: AND 00001a40: PUSH1 0x02 00001a42: SWAP1 00001a43: DIV 00001a44: DUP2 00001a45: LT 00001a46: PUSH2 0x1a4b 00001a49: JUMPI 00001a4a: INVALID 00001a4b: JUMPDEST 00001a4c: DUP2 00001a4d: SLOAD 00001a4e: PUSH1 0x01 00001a50: AND 00001a51: ISZERO 00001a52: PUSH2 0x1a6a 00001a55: JUMPI 00001a56: SWAP1 00001a57: PUSH1 0x00 00001a59: MSTORE 00001a5a: PUSH1 0x20 00001a5c: PUSH1 0x00 00001a5e: KECCAK256 00001a5f: SWAP1 00001a60: PUSH1 0x20 00001a62: SWAP2 00001a63: DUP3 00001a64: DUP3 00001a65: DIV 00001a66: ADD 00001a67: SWAP2 00001a68: SWAP1 00001a69: MOD 00001a6a: JUMPDEST 00001a6b: PUSH1 0x1f 00001a6d: SUB 00001a6e: PUSH2 0x0100 00001a71: EXP 00001a72: DUP2 00001a73: SLOAD 00001a74: DUP2 00001a75: PUSH1 0xff 00001a77: MUL 00001a78: NOT 00001a79: AND 00001a7a: SWAP1 00001a7b: PUSH1 0x01 00001a7d: PUSH1 0xf8 00001a7f: SHL 00001a80: DUP5 00001a81: DIV 00001a82: MUL 00001a83: OR 00001a84: SWAP1 00001a85: SSTORE 00001a86: POP 00001a87: DUP1 00001a88: DUP1 00001a89: PUSH1 0x01 00001a8b: ADD 00001a8c: SWAP2 00001a8d: POP 00001a8e: POP 00001a8f: PUSH2 0x19e7 00001a92: JUMP 00001a93: JUMPDEST 00001a94: POP 00001a95: JUMPDEST 00001a96: PUSH1 0x40 00001a98: DUP1 00001a99: MLOAD 00001a9a: PUSH1 0x01 00001a9c: PUSH1 0x01 00001a9e: PUSH1 0xa0 00001aa0: SHL 00001aa1: SUB 00001aa2: DUP5 00001aa3: AND 00001aa4: DUP2 00001aa5: MSTORE 00001aa6: SWAP1 00001aa7: MLOAD 00001aa8: PUSH32 0x7c6947eb6f707f58d1a16902e136c738797923b7c4a9509d9bd4be1f30e05b9d 00001ac9: SWAP2 00001aca: DUP2 00001acb: SWAP1 00001acc: SUB 00001acd: PUSH1 0x20 00001acf: ADD 00001ad0: SWAP1 00001ad1: LOG1 00001ad2: POP 00001ad3: POP 00001ad4: JUMP 00001ad5: JUMPDEST 00001ad6: PUSH2 0x1add 00001ad9: PUSH2 0x1fc5 00001adc: JUMP 00001add: JUMPDEST 00001ade: PUSH2 0x1b1c 00001ae1: JUMPI 00001ae2: PUSH1 0x40 00001ae4: DUP1 00001ae5: MLOAD 00001ae6: PUSH3 0x461bcd 00001aea: PUSH1 0xe5 00001aec: SHL 00001aed: DUP2 00001aee: MSTORE 00001aef: PUSH1 0x20 00001af1: PUSH1 0x04 00001af3: DUP3 00001af4: ADD 00001af5: DUP2 00001af6: SWAP1 00001af7: MSTORE 00001af8: PUSH1 0x24 00001afa: DUP3 00001afb: ADD 00001afc: MSTORE 00001afd: PUSH1 0x00 00001aff: DUP1 00001b00: MLOAD 00001b01: PUSH1 0x20 00001b03: PUSH2 0x434a 00001b06: DUP4 00001b07: CODECOPY 00001b08: DUP2 00001b09: MLOAD 00001b0a: SWAP2 00001b0b: MSTORE 00001b0c: PUSH1 0x44 00001b0e: DUP3 00001b0f: ADD 00001b10: MSTORE 00001b11: SWAP1 00001b12: MLOAD 00001b13: SWAP1 00001b14: DUP2 00001b15: SWAP1 00001b16: SUB 00001b17: PUSH1 0x64 00001b19: ADD 00001b1a: SWAP1 00001b1b: REVERT 00001b1c: JUMPDEST 00001b1d: PUSH2 0x1b27 00001b20: DUP2 00001b21: PUSH1 0x01 00001b23: PUSH2 0x34d3 00001b26: JUMP 00001b27: JUMPDEST 00001b28: PUSH1 0x40 00001b2a: DUP1 00001b2b: MLOAD 00001b2c: PUSH1 0x01 00001b2e: PUSH1 0x01 00001b30: PUSH1 0xa0 00001b32: SHL 00001b33: SUB 00001b34: DUP4 00001b35: AND 00001b36: DUP2 00001b37: MSTORE 00001b38: SWAP1 00001b39: MLOAD 00001b3a: PUSH32 0x62f539fdce72b1b8414b4761dac3c935f18860d32f042f01d4a8bf581fa86331 00001b5b: SWAP2 00001b5c: DUP2 00001b5d: SWAP1 00001b5e: SUB 00001b5f: PUSH1 0x20 00001b61: ADD 00001b62: SWAP1 00001b63: LOG1 00001b64: POP 00001b65: JUMP 00001b66: JUMPDEST 00001b67: PUSH2 0x1b6e 00001b6a: PUSH2 0x1fc5 00001b6d: JUMP 00001b6e: JUMPDEST 00001b6f: PUSH2 0x1bad 00001b72: JUMPI 00001b73: PUSH1 0x40 00001b75: DUP1 00001b76: MLOAD 00001b77: PUSH3 0x461bcd 00001b7b: PUSH1 0xe5 00001b7d: SHL 00001b7e: DUP2 00001b7f: MSTORE 00001b80: PUSH1 0x20 00001b82: PUSH1 0x04 00001b84: DUP3 00001b85: ADD 00001b86: DUP2 00001b87: SWAP1 00001b88: MSTORE 00001b89: PUSH1 0x24 00001b8b: DUP3 00001b8c: ADD 00001b8d: MSTORE 00001b8e: PUSH1 0x00 00001b90: DUP1 00001b91: MLOAD 00001b92: PUSH1 0x20 00001b94: PUSH2 0x434a 00001b97: DUP4 00001b98: CODECOPY 00001b99: DUP2 00001b9a: MLOAD 00001b9b: SWAP2 00001b9c: MSTORE 00001b9d: PUSH1 0x44 00001b9f: DUP3 00001ba0: ADD 00001ba1: MSTORE 00001ba2: SWAP1 00001ba3: MLOAD 00001ba4: SWAP1 00001ba5: DUP2 00001ba6: SWAP1 00001ba7: SUB 00001ba8: PUSH1 0x64 00001baa: ADD 00001bab: SWAP1 00001bac: REVERT 00001bad: JUMPDEST 00001bae: PUSH1 0x00 00001bb0: DUP1 00001bb1: SLOAD 00001bb2: PUSH1 0x40 00001bb4: MLOAD 00001bb5: PUSH1 0x01 00001bb7: PUSH1 0x01 00001bb9: PUSH1 0xa0 00001bbb: SHL 00001bbc: SUB 00001bbd: SWAP1 00001bbe: SWAP2 00001bbf: AND 00001bc0: SWAP1 00001bc1: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001be2: SWAP1 00001be3: DUP4 00001be4: SWAP1 00001be5: LOG3 00001be6: PUSH1 0x00 00001be8: DUP1 00001be9: SLOAD 00001bea: PUSH1 0x01 00001bec: PUSH1 0x01 00001bee: PUSH1 0xa0 00001bf0: SHL 00001bf1: SUB 00001bf2: NOT 00001bf3: AND 00001bf4: SWAP1 00001bf5: SSTORE 00001bf6: JUMP 00001bf7: JUMPDEST 00001bf8: PUSH1 0x60 00001bfa: DUP1 00001bfb: DUP3 00001bfc: MLOAD 00001bfd: PUSH1 0x40 00001bff: MLOAD 00001c00: SWAP1 00001c01: DUP1 00001c02: DUP3 00001c03: MSTORE 00001c04: DUP1 00001c05: PUSH1 0x20 00001c07: MUL 00001c08: PUSH1 0x20 00001c0a: ADD 00001c0b: DUP3 00001c0c: ADD 00001c0d: PUSH1 0x40 00001c0f: MSTORE 00001c10: DUP1 00001c11: ISZERO 00001c12: PUSH2 0x1c25 00001c15: JUMPI 00001c16: DUP2 00001c17: PUSH1 0x20 00001c19: ADD 00001c1a: PUSH1 0x20 00001c1c: DUP3 00001c1d: MUL 00001c1e: DUP1 00001c1f: CODESIZE 00001c20: DUP4 00001c21: CODECOPY 00001c22: ADD 00001c23: SWAP1 00001c24: POP 00001c25: JUMPDEST 00001c26: POP 00001c27: SWAP1 00001c28: POP 00001c29: PUSH1 0x00 00001c2b: JUMPDEST 00001c2c: DUP4 00001c2d: MLOAD 00001c2e: DUP2 00001c2f: LT 00001c30: ISZERO 00001c31: PUSH2 0x1c81 00001c34: JUMPI 00001c35: PUSH2 0x1c51 00001c38: DUP6 00001c39: DUP6 00001c3a: DUP4 00001c3b: DUP2 00001c3c: MLOAD 00001c3d: DUP2 00001c3e: LT 00001c3f: PUSH2 0x1c44 00001c42: JUMPI 00001c43: INVALID 00001c44: JUMPDEST 00001c45: PUSH1 0x20 00001c47: MUL 00001c48: PUSH1 0x20 00001c4a: ADD 00001c4b: ADD 00001c4c: MLOAD 00001c4d: PUSH2 0x2ad2 00001c50: JUMP 00001c51: JUMPDEST 00001c52: PUSH1 0x00 00001c54: ADD 00001c55: MLOAD 00001c56: DUP3 00001c57: DUP3 00001c58: DUP2 00001c59: MLOAD 00001c5a: DUP2 00001c5b: LT 00001c5c: PUSH2 0x1c61 00001c5f: JUMPI 00001c60: INVALID 00001c61: JUMPDEST 00001c62: PUSH1 0x01 00001c64: PUSH1 0x01 00001c66: PUSH1 0x40 00001c68: SHL 00001c69: SUB 00001c6a: SWAP1 00001c6b: SWAP3 00001c6c: AND 00001c6d: PUSH1 0x20 00001c6f: SWAP3 00001c70: DUP4 00001c71: MUL 00001c72: SWAP2 00001c73: SWAP1 00001c74: SWAP2 00001c75: ADD 00001c76: SWAP1 00001c77: SWAP2 00001c78: ADD 00001c79: MSTORE 00001c7a: PUSH1 0x01 00001c7c: ADD 00001c7d: PUSH2 0x1c2b 00001c80: JUMP 00001c81: JUMPDEST 00001c82: POP 00001c83: PUSH32 0xfb7de0621328a977285d9d780b9cff64b112259bf180f5e2642267ef9bc1c63c 00001ca4: DUP5 00001ca5: DUP5 00001ca6: DUP4 00001ca7: PUSH1 0x40 00001ca9: MLOAD 00001caa: DUP1 00001cab: DUP5 00001cac: PUSH1 0x01 00001cae: PUSH1 0x01 00001cb0: PUSH1 0xa0 00001cb2: SHL 00001cb3: SUB 00001cb4: AND 00001cb5: PUSH1 0x01 00001cb7: PUSH1 0x01 00001cb9: PUSH1 0xa0 00001cbb: SHL 00001cbc: SUB 00001cbd: AND 00001cbe: DUP2 00001cbf: MSTORE 00001cc0: PUSH1 0x20 00001cc2: ADD 00001cc3: DUP1 00001cc4: PUSH1 0x20 00001cc6: ADD 00001cc7: DUP1 00001cc8: PUSH1 0x20 00001cca: ADD 00001ccb: DUP4 00001ccc: DUP2 00001ccd: SUB 00001cce: DUP4 00001ccf: MSTORE 00001cd0: DUP6 00001cd1: DUP2 00001cd2: DUP2 00001cd3: MLOAD 00001cd4: DUP2 00001cd5: MSTORE 00001cd6: PUSH1 0x20 00001cd8: ADD 00001cd9: SWAP2 00001cda: POP 00001cdb: DUP1 00001cdc: MLOAD 00001cdd: SWAP1 00001cde: PUSH1 0x20 00001ce0: ADD 00001ce1: SWAP1 00001ce2: PUSH1 0x20 00001ce4: MUL 00001ce5: DUP1 00001ce6: DUP4 00001ce7: DUP4 00001ce8: PUSH1 0x00 00001cea: JUMPDEST 00001ceb: DUP4 00001cec: DUP2 00001ced: LT 00001cee: ISZERO 00001cef: PUSH2 0x1d02 00001cf2: JUMPI 00001cf3: DUP2 00001cf4: DUP2 00001cf5: ADD 00001cf6: MLOAD 00001cf7: DUP4 00001cf8: DUP3 00001cf9: ADD 00001cfa: MSTORE 00001cfb: PUSH1 0x20 00001cfd: ADD 00001cfe: PUSH2 0x1cea 00001d01: JUMP 00001d02: JUMPDEST 00001d03: POP 00001d04: POP 00001d05: POP 00001d06: POP 00001d07: SWAP1 00001d08: POP 00001d09: ADD 00001d0a: DUP4 00001d0b: DUP2 00001d0c: SUB 00001d0d: DUP3 00001d0e: MSTORE 00001d0f: DUP5 00001d10: DUP2 00001d11: DUP2 00001d12: MLOAD 00001d13: DUP2 00001d14: MSTORE 00001d15: PUSH1 0x20 00001d17: ADD 00001d18: SWAP2 00001d19: POP 00001d1a: DUP1 00001d1b: MLOAD 00001d1c: SWAP1 00001d1d: PUSH1 0x20 00001d1f: ADD 00001d20: SWAP1 00001d21: PUSH1 0x20 00001d23: MUL 00001d24: DUP1 00001d25: DUP4 00001d26: DUP4 00001d27: PUSH1 0x00 00001d29: JUMPDEST 00001d2a: DUP4 00001d2b: DUP2 00001d2c: LT 00001d2d: ISZERO 00001d2e: PUSH2 0x1d41 00001d31: JUMPI 00001d32: DUP2 00001d33: DUP2 00001d34: ADD 00001d35: MLOAD 00001d36: DUP4 00001d37: DUP3 00001d38: ADD 00001d39: MSTORE 00001d3a: PUSH1 0x20 00001d3c: ADD 00001d3d: PUSH2 0x1d29 00001d40: JUMP 00001d41: JUMPDEST 00001d42: POP 00001d43: POP 00001d44: POP 00001d45: POP 00001d46: SWAP1 00001d47: POP 00001d48: ADD 00001d49: SWAP6 00001d4a: POP 00001d4b: POP 00001d4c: POP 00001d4d: POP 00001d4e: POP 00001d4f: POP 00001d50: PUSH1 0x40 00001d52: MLOAD 00001d53: DUP1 00001d54: SWAP2 00001d55: SUB 00001d56: SWAP1 00001d57: LOG1 00001d58: SWAP4 00001d59: SWAP3 00001d5a: POP 00001d5b: POP 00001d5c: POP 00001d5d: JUMP 00001d5e: JUMPDEST 00001d5f: PUSH2 0x1d66 00001d62: PUSH2 0x1fc5 00001d65: JUMP 00001d66: JUMPDEST 00001d67: PUSH2 0x1da5 00001d6a: JUMPI 00001d6b: PUSH1 0x40 00001d6d: DUP1 00001d6e: MLOAD 00001d6f: PUSH3 0x461bcd 00001d73: PUSH1 0xe5 00001d75: SHL 00001d76: DUP2 00001d77: MSTORE 00001d78: PUSH1 0x20 00001d7a: PUSH1 0x04 00001d7c: DUP3 00001d7d: ADD 00001d7e: DUP2 00001d7f: SWAP1 00001d80: MSTORE 00001d81: PUSH1 0x24 00001d83: DUP3 00001d84: ADD 00001d85: MSTORE 00001d86: PUSH1 0x00 00001d88: DUP1 00001d89: MLOAD 00001d8a: PUSH1 0x20 00001d8c: PUSH2 0x434a 00001d8f: DUP4 00001d90: CODECOPY 00001d91: DUP2 00001d92: MLOAD 00001d93: SWAP2 00001d94: MSTORE 00001d95: PUSH1 0x44 00001d97: DUP3 00001d98: ADD 00001d99: MSTORE 00001d9a: SWAP1 00001d9b: MLOAD 00001d9c: SWAP1 00001d9d: DUP2 00001d9e: SWAP1 00001d9f: SUB 00001da0: PUSH1 0x64 00001da2: ADD 00001da3: SWAP1 00001da4: REVERT 00001da5: JUMPDEST 00001da6: PUSH2 0x1db0 00001da9: DUP2 00001daa: PUSH1 0x01 00001dac: PUSH2 0x3613 00001daf: JUMP 00001db0: JUMPDEST 00001db1: PUSH1 0x40 00001db3: DUP1 00001db4: MLOAD 00001db5: PUSH1 0x01 00001db7: PUSH1 0x01 00001db9: PUSH1 0xa0 00001dbb: SHL 00001dbc: SUB 00001dbd: DUP4 00001dbe: AND 00001dbf: DUP2 00001dc0: MSTORE 00001dc1: SWAP1 00001dc2: MLOAD 00001dc3: PUSH32 0xf6dd8be138fcbc416afd31ac8a434b3685c35be0bffc8730eebf36cb50b5f78d 00001de4: SWAP2 00001de5: DUP2 00001de6: SWAP1 00001de7: SUB 00001de8: PUSH1 0x20 00001dea: ADD 00001deb: SWAP1 00001dec: LOG1 00001ded: POP 00001dee: JUMP 00001def: JUMPDEST 00001df0: PUSH2 0x1df7 00001df3: PUSH2 0x1fc5 00001df6: JUMP 00001df7: JUMPDEST 00001df8: PUSH2 0x1e36 00001dfb: JUMPI 00001dfc: PUSH1 0x40 00001dfe: DUP1 00001dff: MLOAD 00001e00: PUSH3 0x461bcd 00001e04: PUSH1 0xe5 00001e06: SHL 00001e07: DUP2 00001e08: MSTORE 00001e09: PUSH1 0x20 00001e0b: PUSH1 0x04 00001e0d: DUP3 00001e0e: ADD 00001e0f: DUP2 00001e10: SWAP1 00001e11: MSTORE 00001e12: PUSH1 0x24 00001e14: DUP3 00001e15: ADD 00001e16: MSTORE 00001e17: PUSH1 0x00 00001e19: DUP1 00001e1a: MLOAD 00001e1b: PUSH1 0x20 00001e1d: PUSH2 0x434a 00001e20: DUP4 00001e21: CODECOPY 00001e22: DUP2 00001e23: MLOAD 00001e24: SWAP2 00001e25: MSTORE 00001e26: PUSH1 0x44 00001e28: DUP3 00001e29: ADD 00001e2a: MSTORE 00001e2b: SWAP1 00001e2c: MLOAD 00001e2d: SWAP1 00001e2e: DUP2 00001e2f: SWAP1 00001e30: SUB 00001e31: PUSH1 0x64 00001e33: ADD 00001e34: SWAP1 00001e35: REVERT 00001e36: JUMPDEST 00001e37: PUSH2 0x1e41 00001e3a: DUP2 00001e3b: PUSH1 0x00 00001e3d: PUSH2 0x3613 00001e40: JUMP 00001e41: JUMPDEST 00001e42: PUSH1 0x40 00001e44: DUP1 00001e45: MLOAD 00001e46: PUSH1 0x01 00001e48: PUSH1 0x01 00001e4a: PUSH1 0xa0 00001e4c: SHL 00001e4d: SUB 00001e4e: DUP4 00001e4f: AND 00001e50: DUP2 00001e51: MSTORE 00001e52: SWAP1 00001e53: MLOAD 00001e54: PUSH32 0x86185c63d21a208b65358328f7182bc77aafd60929c0897348857bc710eca2d2 00001e75: SWAP2 00001e76: DUP2 00001e77: SWAP1 00001e78: SUB 00001e79: PUSH1 0x20 00001e7b: ADD 00001e7c: SWAP1 00001e7d: LOG1 00001e7e: POP 00001e7f: JUMP 00001e80: JUMPDEST 00001e81: PUSH1 0x00 00001e83: PUSH2 0x1e8d 00001e86: CALLER 00001e87: PUSH1 0x01 00001e89: PUSH2 0x0b79 00001e8c: JUMP 00001e8d: JUMPDEST 00001e8e: PUSH2 0x1ed6 00001e91: JUMPI 00001e92: PUSH1 0x40 00001e94: DUP1 00001e95: MLOAD 00001e96: PUSH3 0x461bcd 00001e9a: PUSH1 0xe5 00001e9c: SHL 00001e9d: DUP2 00001e9e: MSTORE 00001e9f: PUSH1 0x20 00001ea1: PUSH1 0x04 00001ea3: DUP3 00001ea4: ADD 00001ea5: MSTORE 00001ea6: PUSH1 0x15 00001ea8: PUSH1 0x24 00001eaa: DUP3 00001eab: ADD 00001eac: MSTORE 00001ead: PUSH21 0x2737ba1030903bb434ba32b634b9ba1030b236b4b7 00001ec3: PUSH1 0x59 00001ec5: SHL 00001ec6: PUSH1 0x44 00001ec8: DUP3 00001ec9: ADD 00001eca: MSTORE 00001ecb: SWAP1 00001ecc: MLOAD 00001ecd: SWAP1 00001ece: DUP2 00001ecf: SWAP1 00001ed0: SUB 00001ed1: PUSH1 0x64 00001ed3: ADD 00001ed4: SWAP1 00001ed5: REVERT 00001ed6: JUMPDEST 00001ed7: PUSH1 0x00 00001ed9: SLOAD 00001eda: PUSH2 0xffff 00001edd: PUSH1 0x01 00001edf: PUSH1 0xb8 00001ee1: SHL 00001ee2: SWAP1 00001ee3: SWAP2 00001ee4: DIV 00001ee5: DUP2 00001ee6: AND 00001ee7: PUSH1 0x01 00001ee9: ADD 00001eea: DUP2 00001eeb: AND 00001eec: LT 00001eed: PUSH2 0x1f3d 00001ef0: JUMPI 00001ef1: PUSH1 0x40 00001ef3: DUP1 00001ef4: MLOAD 00001ef5: PUSH3 0x461bcd 00001ef9: PUSH1 0xe5 00001efb: SHL 00001efc: DUP2 00001efd: MSTORE 00001efe: PUSH1 0x20 00001f00: PUSH1 0x04 00001f02: DUP3 00001f03: ADD 00001f04: MSTORE 00001f05: PUSH1 0x18 00001f07: PUSH1 0x24 00001f09: DUP3 00001f0a: ADD 00001f0b: MSTORE 00001f0c: PUSH32 0x4173736574206964207370616365206578686175737465640000000000000000 00001f2d: PUSH1 0x44 00001f2f: DUP3 00001f30: ADD 00001f31: MSTORE 00001f32: SWAP1 00001f33: MLOAD 00001f34: SWAP1 00001f35: DUP2 00001f36: SWAP1 00001f37: SUB 00001f38: PUSH1 0x64 00001f3a: ADD 00001f3b: SWAP1 00001f3c: REVERT 00001f3d: JUMPDEST 00001f3e: POP 00001f3f: PUSH1 0x00 00001f41: DUP1 00001f42: SLOAD 00001f43: PUSH2 0xffff 00001f46: PUSH1 0x01 00001f48: PUSH1 0xb8 00001f4a: SHL 00001f4b: DUP1 00001f4c: DUP4 00001f4d: DIV 00001f4e: DUP3 00001f4f: AND 00001f50: PUSH1 0x01 00001f52: DUP2 00001f53: DUP2 00001f54: ADD 00001f55: DUP5 00001f56: AND 00001f57: DUP4 00001f58: MUL 00001f59: PUSH2 0xffff 00001f5c: PUSH1 0xb8 00001f5e: SHL 00001f5f: NOT 00001f60: SWAP1 00001f61: SWAP6 00001f62: AND 00001f63: SWAP5 00001f64: SWAP1 00001f65: SWAP5 00001f66: OR 00001f67: DUP6 00001f68: SSTORE 00001f69: DUP5 00001f6a: MSTORE 00001f6b: PUSH1 0x20 00001f6d: SWAP3 00001f6e: SWAP1 00001f6f: SWAP3 00001f70: MSTORE 00001f71: PUSH1 0x40 00001f73: DUP4 00001f74: KECCAK256 00001f75: DUP1 00001f76: SLOAD 00001f77: PUSH1 0x01 00001f79: PUSH1 0x01 00001f7b: PUSH1 0xa0 00001f7d: SHL 00001f7e: SUB 00001f7f: DUP8 00001f80: AND 00001f81: PUSH1 0xff 00001f83: PUSH1 0xa0 00001f85: SHL 00001f86: PUSH1 0xa0 00001f88: DUP9 00001f89: SWAP1 00001f8a: SHL 00001f8b: AND 00001f8c: OR 00001f8d: PUSH1 0x01 00001f8f: PUSH1 0x01 00001f91: PUSH1 0xa8 00001f93: SHL 00001f94: SUB 00001f95: AND 00001f96: PUSH1 0x01 00001f98: PUSH1 0x01 00001f9a: PUSH1 0xa8 00001f9c: SHL 00001f9d: SUB 00001f9e: NOT 00001f9f: SWAP1 00001fa0: SWAP2 00001fa1: AND 00001fa2: OR 00001fa3: SWAP1 00001fa4: SSTORE 00001fa5: SWAP2 00001fa6: SLOAD 00001fa7: PUSH1 0x00 00001fa9: NOT 00001faa: SWAP2 00001fab: SWAP1 00001fac: DIV 00001fad: SWAP1 00001fae: SWAP2 00001faf: AND 00001fb0: ADD 00001fb1: SWAP3 00001fb2: SWAP2 00001fb3: POP 00001fb4: POP 00001fb5: JUMP 00001fb6: JUMPDEST 00001fb7: PUSH1 0x00 00001fb9: SLOAD 00001fba: PUSH1 0x01 00001fbc: PUSH1 0x01 00001fbe: PUSH1 0xa0 00001fc0: SHL 00001fc1: SUB 00001fc2: AND 00001fc3: SWAP1 00001fc4: JUMP 00001fc5: JUMPDEST 00001fc6: PUSH1 0x00 00001fc8: SLOAD 00001fc9: PUSH1 0x01 00001fcb: PUSH1 0x01 00001fcd: PUSH1 0xa0 00001fcf: SHL 00001fd0: SUB 00001fd1: AND 00001fd2: CALLER 00001fd3: EQ 00001fd4: SWAP1 00001fd5: JUMP 00001fd6: JUMPDEST 00001fd7: PUSH1 0x00 00001fd9: SLOAD 00001fda: PUSH1 0x01 00001fdc: PUSH1 0xa0 00001fde: SHL 00001fdf: SWAP1 00001fe0: DIV 00001fe1: PUSH1 0xff 00001fe3: AND 00001fe4: ISZERO 00001fe5: PUSH2 0x201f 00001fe8: JUMPI 00001fe9: PUSH1 0x40 00001feb: MLOAD 00001fec: PUSH3 0x461bcd 00001ff0: PUSH1 0xe5 00001ff2: SHL 00001ff3: DUP2 00001ff4: MSTORE 00001ff5: PUSH1 0x04 00001ff7: ADD 00001ff8: DUP1 00001ff9: DUP1 00001ffa: PUSH1 0x20 00001ffc: ADD 00001ffd: DUP3 00001ffe: DUP2 00001fff: SUB 00002000: DUP3 00002001: MSTORE 00002002: PUSH1 0x32 00002004: DUP2 00002005: MSTORE 00002006: PUSH1 0x20 00002008: ADD 00002009: DUP1 0000200a: PUSH2 0x413a 0000200d: PUSH1 0x32 0000200f: SWAP2 00002010: CODECOPY 00002011: PUSH1 0x40 00002013: ADD 00002014: SWAP2 00002015: POP 00002016: POP 00002017: PUSH1 0x40 00002019: MLOAD 0000201a: DUP1 0000201b: SWAP2 0000201c: SUB 0000201d: SWAP1 0000201e: REVERT 0000201f: JUMPDEST 00002020: PUSH1 0x00 00002022: DUP1 00002023: SLOAD 00002024: PUSH1 0xff 00002026: PUSH1 0xa0 00002028: SHL 00002029: NOT 0000202a: AND 0000202b: PUSH1 0x01 0000202d: PUSH1 0xa0 0000202f: SHL 00002030: OR 00002031: DUP2 00002032: SSTORE 00002033: PUSH1 0x01 00002035: PUSH1 0x01 00002037: PUSH1 0xa0 00002039: SHL 0000203a: SUB 0000203b: DUP4 0000203c: AND 0000203d: DUP2 0000203e: MSTORE 0000203f: PUSH1 0x02 00002041: PUSH1 0x20 00002043: DUP2 00002044: DUP2 00002045: MSTORE 00002046: PUSH1 0x40 00002048: SWAP3 00002049: DUP4 0000204a: SWAP1 0000204b: KECCAK256 0000204c: DUP1 0000204d: SLOAD 0000204e: DUP5 0000204f: MLOAD 00002050: PUSH1 0x1f 00002052: PUSH1 0x00 00002054: NOT 00002055: PUSH1 0x01 00002057: DUP5 00002058: AND 00002059: ISZERO 0000205a: PUSH2 0x0100 0000205d: MUL 0000205e: ADD 0000205f: SWAP1 00002060: SWAP3 00002061: AND 00002062: SWAP5 00002063: SWAP1 00002064: SWAP5 00002065: DIV 00002066: SWAP1 00002067: DUP2 00002068: ADD 00002069: DUP4 0000206a: SWAP1 0000206b: DIV 0000206c: DUP4 0000206d: MUL 0000206e: DUP5 0000206f: ADD 00002070: DUP4 00002071: ADD 00002072: SWAP1 00002073: SWAP5 00002074: MSTORE 00002075: DUP4 00002076: DUP4 00002077: MSTORE 00002078: PUSH1 0x60 0000207a: SWAP4 0000207b: SWAP1 0000207c: SWAP2 0000207d: DUP4 0000207e: ADD 0000207f: DUP3 00002080: DUP3 00002081: DUP1 00002082: ISZERO 00002083: PUSH2 0x20cd 00002086: JUMPI 00002087: DUP1 00002088: PUSH1 0x1f 0000208a: LT 0000208b: PUSH2 0x20a2 0000208e: JUMPI 0000208f: PUSH2 0x0100 00002092: DUP1 00002093: DUP4 00002094: SLOAD 00002095: DIV 00002096: MUL 00002097: DUP4 00002098: MSTORE 00002099: SWAP2 0000209a: PUSH1 0x20 0000209c: ADD 0000209d: SWAP2 0000209e: PUSH2 0x20cd 000020a1: JUMP 000020a2: JUMPDEST 000020a3: DUP3 000020a4: ADD 000020a5: SWAP2 000020a6: SWAP1 000020a7: PUSH1 0x00 000020a9: MSTORE 000020aa: PUSH1 0x20 000020ac: PUSH1 0x00 000020ae: KECCAK256 000020af: SWAP1 000020b0: JUMPDEST 000020b1: DUP2 000020b2: SLOAD 000020b3: DUP2 000020b4: MSTORE 000020b5: SWAP1 000020b6: PUSH1 0x01 000020b8: ADD 000020b9: SWAP1 000020ba: PUSH1 0x20 000020bc: ADD 000020bd: DUP1 000020be: DUP4 000020bf: GT 000020c0: PUSH2 0x20b0 000020c3: JUMPI 000020c4: DUP3 000020c5: SWAP1 000020c6: SUB 000020c7: PUSH1 0x1f 000020c9: AND 000020ca: DUP3 000020cb: ADD 000020cc: SWAP2 000020cd: JUMPDEST 000020ce: POP 000020cf: POP 000020d0: POP 000020d1: POP 000020d2: POP 000020d3: SWAP1 000020d4: POP 000020d5: PUSH1 0x00 000020d7: DUP1 000020d8: SWAP1 000020d9: POP 000020da: PUSH1 0x07 000020dc: DUP3 000020dd: MLOAD 000020de: LT 000020df: PUSH2 0x20e9 000020e2: JUMPI 000020e3: POP 000020e4: PUSH1 0x07 000020e6: DUP2 000020e7: ADD 000020e8: MLOAD 000020e9: JUMPDEST 000020ea: PUSH6 0xffffffffffff 000020f1: DUP2 000020f2: AND 000020f3: ISZERO 000020f4: DUP1 000020f5: ISZERO 000020f6: SWAP1 000020f7: PUSH2 0x2117 000020fa: JUMPI 000020fb: POP 000020fc: PUSH1 0x00 000020fe: SLOAD 000020ff: PUSH1 0x01 00002101: PUSH1 0xa8 00002103: SHL 00002104: SWAP1 00002105: DIV 00002106: PUSH2 0xffff 00002109: AND 0000210a: DUP2 0000210b: ADD 0000210c: PUSH6 0xffffffffffff 00002113: AND 00002114: NUMBER 00002115: LT 00002116: ISZERO 00002117: JUMPDEST 00002118: PUSH2 0x2152 0000211b: JUMPI 0000211c: PUSH1 0x40 0000211e: MLOAD 0000211f: PUSH3 0x461bcd 00002123: PUSH1 0xe5 00002125: SHL 00002126: DUP2 00002127: MSTORE 00002128: PUSH1 0x04 0000212a: ADD 0000212b: DUP1 0000212c: DUP1 0000212d: PUSH1 0x20 0000212f: ADD 00002130: DUP3 00002131: DUP2 00002132: SUB 00002133: DUP3 00002134: MSTORE 00002135: PUSH1 0x39 00002137: DUP2 00002138: MSTORE 00002139: PUSH1 0x20 0000213b: ADD 0000213c: DUP1 0000213d: PUSH2 0x436a 00002140: PUSH1 0x39 00002142: SWAP2 00002143: CODECOPY 00002144: PUSH1 0x40 00002146: ADD 00002147: SWAP2 00002148: POP 00002149: POP 0000214a: PUSH1 0x40 0000214c: MLOAD 0000214d: DUP1 0000214e: SWAP2 0000214f: SUB 00002150: SWAP1 00002151: REVERT 00002152: JUMPDEST 00002153: PUSH1 0x01 00002155: PUSH1 0x01 00002157: PUSH1 0xa0 00002159: SHL 0000215a: SUB 0000215b: DUP5 0000215c: AND 0000215d: CALLER 0000215e: EQ 0000215f: PUSH2 0x21af 00002162: JUMPI 00002163: PUSH1 0x40 00002165: DUP1 00002166: MLOAD 00002167: PUSH3 0x461bcd 0000216b: PUSH1 0xe5 0000216d: SHL 0000216e: DUP2 0000216f: MSTORE 00002170: PUSH1 0x20 00002172: PUSH1 0x04 00002174: DUP3 00002175: ADD 00002176: MSTORE 00002177: PUSH1 0x1d 00002179: PUSH1 0x24 0000217b: DUP3 0000217c: ADD 0000217d: MSTORE 0000217e: PUSH32 0x4164647265737320646f6573206e6f74206d617463682073656e646572000000 0000219f: PUSH1 0x44 000021a1: DUP3 000021a2: ADD 000021a3: MSTORE 000021a4: SWAP1 000021a5: MLOAD 000021a6: SWAP1 000021a7: DUP2 000021a8: SWAP1 000021a9: SUB 000021aa: PUSH1 0x64 000021ac: ADD 000021ad: SWAP1 000021ae: REVERT 000021af: JUMPDEST 000021b0: PUSH1 0x00 000021b2: SLOAD 000021b3: PUSH2 0xffff 000021b6: PUSH1 0x01 000021b8: PUSH1 0xb8 000021ba: SHL 000021bb: SWAP1 000021bc: SWAP2 000021bd: DIV 000021be: DUP2 000021bf: AND 000021c0: SWAP1 000021c1: DUP5 000021c2: AND 000021c3: LT 000021c4: PUSH2 0x2204 000021c7: JUMPI 000021c8: PUSH1 0x40 000021ca: DUP1 000021cb: MLOAD 000021cc: PUSH3 0x461bcd 000021d0: PUSH1 0xe5 000021d2: SHL 000021d3: DUP2 000021d4: MSTORE 000021d5: PUSH1 0x20 000021d7: PUSH1 0x04 000021d9: DUP3 000021da: ADD 000021db: MSTORE 000021dc: PUSH1 0x0d 000021de: PUSH1 0x24 000021e0: DUP3 000021e1: ADD 000021e2: MSTORE 000021e3: PUSH13 0x125b9d985b1a5908185cdcd95d 000021f1: PUSH1 0x9a 000021f3: SHL 000021f4: PUSH1 0x44 000021f6: DUP3 000021f7: ADD 000021f8: MSTORE 000021f9: SWAP1 000021fa: MLOAD 000021fb: SWAP1 000021fc: DUP2 000021fd: SWAP1 000021fe: SUB 000021ff: PUSH1 0x64 00002201: ADD 00002202: SWAP1 00002203: REVERT 00002204: JUMPDEST 00002205: PUSH2 0x220c 00002208: PUSH2 0x4035 0000220b: JUMP 0000220c: JUMPDEST 0000220d: PUSH2 0x2216 00002210: DUP6 00002211: DUP6 00002212: PUSH2 0x2ad2 00002215: JUMP 00002216: JUMPDEST 00002217: DUP1 00002218: MLOAD 00002219: PUSH1 0x00 0000221b: DUP3 0000221c: MSTORE 0000221d: PUSH1 0x60 0000221f: DUP3 00002220: ADD 00002221: MLOAD 00002222: SWAP2 00002223: SWAP3 00002224: POP 00002225: SWAP1 00002226: DUP1 00002227: ISZERO 00002228: PUSH2 0x2239 0000222b: JUMPI 0000222c: POP 0000222d: PUSH1 0x01 0000222f: PUSH1 0x01 00002231: PUSH1 0x40 00002233: SHL 00002234: SUB 00002235: DUP2 00002236: AND 00002237: ISZERO 00002238: ISZERO 00002239: JUMPDEST 0000223a: PUSH2 0x2275 0000223d: JUMPI 0000223e: PUSH1 0x40 00002240: DUP1 00002241: MLOAD 00002242: PUSH3 0x461bcd 00002246: PUSH1 0xe5 00002248: SHL 00002249: DUP2 0000224a: MSTORE 0000224b: PUSH1 0x20 0000224d: PUSH1 0x04 0000224f: DUP3 00002250: ADD 00002251: MSTORE 00002252: PUSH1 0x08 00002254: PUSH1 0x24 00002256: DUP3 00002257: ADD 00002258: MSTORE 00002259: PUSH8 0x4e6f2066756e6473 00002262: PUSH1 0xc0 00002264: SHL 00002265: PUSH1 0x44 00002267: DUP3 00002268: ADD 00002269: MSTORE 0000226a: SWAP1 0000226b: MLOAD 0000226c: SWAP1 0000226d: DUP2 0000226e: SWAP1 0000226f: SUB 00002270: PUSH1 0x64 00002272: ADD 00002273: SWAP1 00002274: REVERT 00002275: JUMPDEST 00002276: PUSH2 0xffff 00002279: DUP6 0000227a: AND 0000227b: PUSH1 0x00 0000227d: SWAP1 0000227e: DUP2 0000227f: MSTORE 00002280: PUSH1 0x04 00002282: PUSH1 0x20 00002284: MSTORE 00002285: PUSH1 0x40 00002287: SWAP1 00002288: KECCAK256 00002289: DUP1 0000228a: SLOAD 0000228b: PUSH1 0x01 0000228d: PUSH1 0x01 0000228f: PUSH1 0x40 00002291: SHL 00002292: SUB 00002293: DUP1 00002294: DUP3 00002295: AND 00002296: DUP5 00002297: SWAP1 00002298: SUB 00002299: AND 0000229a: PUSH8 0xffffffffffffffff 000022a3: NOT 000022a4: SWAP1 000022a5: SWAP2 000022a6: AND 000022a7: OR 000022a8: SWAP1 000022a9: SSTORE 000022aa: PUSH2 0x22b3 000022ad: DUP7 000022ae: DUP4 000022af: PUSH2 0x2ca2 000022b2: JUMP 000022b3: JUMPDEST 000022b4: PUSH2 0x22be 000022b7: DUP7 000022b8: DUP7 000022b9: DUP4 000022ba: PUSH2 0x307e 000022bd: JUMP 000022be: JUMPDEST 000022bf: PUSH1 0x20 000022c1: DUP1 000022c2: DUP4 000022c3: ADD 000022c4: MLOAD 000022c5: PUSH1 0x40 000022c7: DUP1 000022c8: MLOAD 000022c9: PUSH1 0x01 000022cb: PUSH1 0x01 000022cd: PUSH1 0xa0 000022cf: SHL 000022d0: SUB 000022d1: DUP11 000022d2: AND 000022d3: DUP2 000022d4: MSTORE 000022d5: PUSH2 0xffff 000022d8: DUP10 000022d9: AND 000022da: SWAP4 000022db: DUP2 000022dc: ADD 000022dd: SWAP4 000022de: SWAP1 000022df: SWAP4 000022e0: MSTORE 000022e1: PUSH1 0x01 000022e3: PUSH1 0x01 000022e5: PUSH1 0x40 000022e7: SHL 000022e8: SUB 000022e9: DUP5 000022ea: AND 000022eb: DUP4 000022ec: DUP3 000022ed: ADD 000022ee: MSTORE 000022ef: PUSH4 0xffffffff 000022f4: SWAP1 000022f5: SWAP2 000022f6: AND 000022f7: PUSH1 0x60 000022f9: DUP4 000022fa: ADD 000022fb: MSTORE 000022fc: MLOAD 000022fd: PUSH32 0xb6602b0a60e2a9abe4a7816783781b101bf31e81b66cf004aa5ff3f9c533b5d0 0000231e: SWAP2 0000231f: DUP2 00002320: SWAP1 00002321: SUB 00002322: PUSH1 0x80 00002324: ADD 00002325: SWAP1 00002326: LOG1 00002327: POP 00002328: POP 00002329: PUSH1 0x00 0000232b: DUP1 0000232c: SLOAD 0000232d: PUSH1 0xff 0000232f: PUSH1 0xa0 00002331: SHL 00002332: NOT 00002333: AND 00002334: SWAP1 00002335: SSTORE 00002336: POP 00002337: POP 00002338: POP 00002339: POP 0000233a: JUMP 0000233b: JUMPDEST 0000233c: PUSH1 0x00 0000233e: SLOAD 0000233f: PUSH1 0x01 00002341: PUSH1 0xa0 00002343: SHL 00002344: SWAP1 00002345: DIV 00002346: PUSH1 0xff 00002348: AND 00002349: ISZERO 0000234a: PUSH2 0x2384 0000234d: JUMPI 0000234e: PUSH1 0x40 00002350: MLOAD 00002351: PUSH3 0x461bcd 00002355: PUSH1 0xe5 00002357: SHL 00002358: DUP2 00002359: MSTORE 0000235a: PUSH1 0x04 0000235c: ADD 0000235d: DUP1 0000235e: DUP1 0000235f: PUSH1 0x20 00002361: ADD 00002362: DUP3 00002363: DUP2 00002364: SUB 00002365: DUP3 00002366: MSTORE 00002367: PUSH1 0x32 00002369: DUP2 0000236a: MSTORE 0000236b: PUSH1 0x20 0000236d: ADD 0000236e: DUP1 0000236f: PUSH2 0x413a 00002372: PUSH1 0x32 00002374: SWAP2 00002375: CODECOPY 00002376: PUSH1 0x40 00002378: ADD 00002379: SWAP2 0000237a: POP 0000237b: POP 0000237c: PUSH1 0x40 0000237e: MLOAD 0000237f: DUP1 00002380: SWAP2 00002381: SUB 00002382: SWAP1 00002383: REVERT 00002384: JUMPDEST 00002385: PUSH1 0x00 00002387: DUP1 00002388: SLOAD 00002389: PUSH1 0xff 0000238b: PUSH1 0xa0 0000238d: SHL 0000238e: NOT 0000238f: AND 00002390: PUSH1 0x01 00002392: PUSH1 0xa0 00002394: SHL 00002395: OR 00002396: SWAP1 00002397: DUP2 00002398: SWAP1 00002399: SSTORE 0000239a: PUSH2 0xffff 0000239d: PUSH1 0x01 0000239f: PUSH1 0xb8 000023a1: SHL 000023a2: SWAP1 000023a3: SWAP2 000023a4: DIV 000023a5: DUP2 000023a6: AND 000023a7: SWAP1 000023a8: DUP8 000023a9: AND 000023aa: LT 000023ab: PUSH2 0x23eb 000023ae: JUMPI 000023af: PUSH1 0x40 000023b1: DUP1 000023b2: MLOAD 000023b3: PUSH3 0x461bcd 000023b7: PUSH1 0xe5 000023b9: SHL 000023ba: DUP2 000023bb: MSTORE 000023bc: PUSH1 0x20 000023be: PUSH1 0x04 000023c0: DUP3 000023c1: ADD 000023c2: MSTORE 000023c3: PUSH1 0x0d 000023c5: PUSH1 0x24 000023c7: DUP3 000023c8: ADD 000023c9: MSTORE 000023ca: PUSH13 0x125b9d985b1a5908185cdcd95d 000023d8: PUSH1 0x9a 000023da: SHL 000023db: PUSH1 0x44 000023dd: DUP3 000023de: ADD 000023df: MSTORE 000023e0: SWAP1 000023e1: MLOAD 000023e2: SWAP1 000023e3: DUP2 000023e4: SWAP1 000023e5: SUB 000023e6: PUSH1 0x64 000023e8: ADD 000023e9: SWAP1 000023ea: REVERT 000023eb: JUMPDEST 000023ec: CALLER 000023ed: PUSH1 0x01 000023ef: PUSH1 0x01 000023f1: PUSH1 0xa0 000023f3: SHL 000023f4: SUB 000023f5: DUP9 000023f6: AND 000023f7: EQ 000023f8: PUSH2 0x2432 000023fb: JUMPI 000023fc: PUSH1 0x40 000023fe: MLOAD 000023ff: PUSH3 0x461bcd 00002403: PUSH1 0xe5 00002405: SHL 00002406: DUP2 00002407: MSTORE 00002408: PUSH1 0x04 0000240a: ADD 0000240b: DUP1 0000240c: DUP1 0000240d: PUSH1 0x20 0000240f: ADD 00002410: DUP3 00002411: DUP2 00002412: SUB 00002413: DUP3 00002414: MSTORE 00002415: PUSH1 0x30 00002417: DUP2 00002418: MSTORE 00002419: PUSH1 0x20 0000241b: ADD 0000241c: DUP1 0000241d: PUSH2 0x4238 00002420: PUSH1 0x30 00002422: SWAP2 00002423: CODECOPY 00002424: PUSH1 0x40 00002426: ADD 00002427: SWAP2 00002428: POP 00002429: POP 0000242a: PUSH1 0x40 0000242c: MLOAD 0000242d: DUP1 0000242e: SWAP2 0000242f: SUB 00002430: SWAP1 00002431: REVERT 00002432: JUMPDEST 00002433: DUP7 00002434: PUSH1 0x01 00002436: PUSH1 0x01 00002438: PUSH1 0xa0 0000243a: SHL 0000243b: SUB 0000243c: AND 0000243d: DUP4 0000243e: PUSH1 0x01 00002440: PUSH1 0x01 00002442: PUSH1 0xa0 00002444: SHL 00002445: SUB 00002446: AND 00002447: EQ 00002448: PUSH2 0x2482 0000244b: JUMPI 0000244c: PUSH1 0x40 0000244e: MLOAD 0000244f: PUSH3 0x461bcd 00002453: PUSH1 0xe5 00002455: SHL 00002456: DUP2 00002457: MSTORE 00002458: PUSH1 0x04 0000245a: ADD 0000245b: DUP1 0000245c: DUP1 0000245d: PUSH1 0x20 0000245f: ADD 00002460: DUP3 00002461: DUP2 00002462: SUB 00002463: DUP3 00002464: MSTORE 00002465: PUSH1 0x30 00002467: DUP2 00002468: MSTORE 00002469: PUSH1 0x20 0000246b: ADD 0000246c: DUP1 0000246d: PUSH2 0x41b4 00002470: PUSH1 0x30 00002472: SWAP2 00002473: CODECOPY 00002474: PUSH1 0x40 00002476: ADD 00002477: SWAP2 00002478: POP 00002479: POP 0000247a: PUSH1 0x40 0000247c: MLOAD 0000247d: DUP1 0000247e: SWAP2 0000247f: SUB 00002480: SWAP1 00002481: REVERT 00002482: JUMPDEST 00002483: PUSH1 0x40 00002485: DUP1 00002486: MLOAD 00002487: PUSH1 0x01 00002489: PUSH1 0x01 0000248b: PUSH1 0x60 0000248d: SHL 0000248e: SUB 0000248f: NOT 00002490: PUSH1 0x60 00002492: DUP11 00002493: SWAP1 00002494: SHL 00002495: AND 00002496: PUSH1 0x20 00002498: DUP3 00002499: ADD 0000249a: MSTORE 0000249b: PUSH1 0x01 0000249d: PUSH1 0x01 0000249f: PUSH1 0xf0 000024a1: SHL 000024a2: SUB 000024a3: NOT 000024a4: PUSH1 0xf0 000024a6: DUP10 000024a7: SWAP1 000024a8: SHL 000024a9: AND 000024aa: PUSH1 0x34 000024ac: DUP3 000024ad: ADD 000024ae: MSTORE 000024af: PUSH1 0x01 000024b1: PUSH1 0x01 000024b3: PUSH1 0xc0 000024b5: SHL 000024b6: SUB 000024b7: NOT 000024b8: PUSH1 0xc0 000024ba: DUP9 000024bb: SWAP1 000024bc: SHL 000024bd: AND 000024be: PUSH1 0x36 000024c0: DUP3 000024c1: ADD 000024c2: MSTORE 000024c3: PUSH1 0x01 000024c5: PUSH1 0x01 000024c7: PUSH1 0xe0 000024c9: SHL 000024ca: SUB 000024cb: NOT 000024cc: PUSH1 0xe0 000024ce: DUP8 000024cf: SWAP1 000024d0: SHL 000024d1: AND 000024d2: PUSH1 0x3e 000024d4: DUP3 000024d5: ADD 000024d6: MSTORE 000024d7: DUP2 000024d8: MLOAD 000024d9: PUSH1 0x22 000024db: DUP2 000024dc: DUP4 000024dd: SUB 000024de: ADD 000024df: DUP2 000024e0: MSTORE 000024e1: PUSH1 0x42 000024e3: SWAP1 000024e4: SWAP2 000024e5: ADD 000024e6: SWAP1 000024e7: SWAP2 000024e8: MSTORE 000024e9: PUSH2 0x24f7 000024ec: SWAP1 000024ed: PUSH1 0x02 000024ef: SWAP1 000024f0: DUP6 000024f1: DUP6 000024f2: DUP6 000024f3: PUSH2 0x2fdb 000024f6: JUMP 000024f7: JUMPDEST 000024f8: PUSH2 0x253c 000024fb: JUMPI 000024fc: PUSH1 0x40 000024fe: DUP1 000024ff: MLOAD 00002500: PUSH3 0x461bcd 00002504: PUSH1 0xe5 00002506: SHL 00002507: DUP2 00002508: MSTORE 00002509: PUSH1 0x20 0000250b: PUSH1 0x04 0000250d: DUP3 0000250e: ADD 0000250f: MSTORE 00002510: PUSH1 0x11 00002512: PUSH1 0x24 00002514: DUP3 00002515: ADD 00002516: MSTORE 00002517: PUSH17 0x496e76616c6964207369676e6174757265 00002529: PUSH1 0x78 0000252b: SHL 0000252c: PUSH1 0x44 0000252e: DUP3 0000252f: ADD 00002530: MSTORE 00002531: SWAP1 00002532: MLOAD 00002533: SWAP1 00002534: DUP2 00002535: SWAP1 00002536: SUB 00002537: PUSH1 0x64 00002539: ADD 0000253a: SWAP1 0000253b: REVERT 0000253c: JUMPDEST 0000253d: PUSH2 0x2544 00002540: PUSH2 0x4035 00002543: JUMP 00002544: JUMPDEST 00002545: PUSH2 0x254e 00002548: DUP9 00002549: DUP9 0000254a: PUSH2 0x2ad2 0000254d: JUMP 0000254e: JUMPDEST 0000254f: SWAP1 00002550: POP 00002551: DUP1 00002552: PUSH1 0x20 00002554: ADD 00002555: MLOAD 00002556: PUSH4 0xffffffff 0000255b: AND 0000255c: DUP6 0000255d: PUSH4 0xffffffff 00002562: AND 00002563: GT 00002564: PUSH2 0x259e 00002567: JUMPI 00002568: PUSH1 0x40 0000256a: MLOAD 0000256b: PUSH3 0x461bcd 0000256f: PUSH1 0xe5 00002571: SHL 00002572: DUP2 00002573: MSTORE 00002574: PUSH1 0x04 00002576: ADD 00002577: DUP1 00002578: DUP1 00002579: PUSH1 0x20 0000257b: ADD 0000257c: DUP3 0000257d: DUP2 0000257e: SUB 0000257f: DUP3 00002580: MSTORE 00002581: PUSH1 0x27 00002583: DUP2 00002584: MSTORE 00002585: PUSH1 0x20 00002587: ADD 00002588: DUP1 00002589: PUSH2 0x43a3 0000258c: PUSH1 0x27 0000258e: SWAP2 0000258f: CODECOPY 00002590: PUSH1 0x40 00002592: ADD 00002593: SWAP2 00002594: POP 00002595: POP 00002596: PUSH1 0x40 00002598: MLOAD 00002599: DUP1 0000259a: SWAP2 0000259b: SUB 0000259c: SWAP1 0000259d: REVERT 0000259e: JUMPDEST 0000259f: PUSH2 0xffff 000025a2: DUP8 000025a3: AND 000025a4: PUSH1 0x00 000025a6: SWAP1 000025a7: DUP2 000025a8: MSTORE 000025a9: PUSH1 0x04 000025ab: PUSH1 0x20 000025ad: SWAP1 000025ae: DUP2 000025af: MSTORE 000025b0: PUSH1 0x40 000025b2: SWAP1 000025b3: SWAP2 000025b4: KECCAK256 000025b5: DUP1 000025b6: SLOAD 000025b7: PUSH8 0xffffffffffffffff 000025c0: NOT 000025c1: DUP2 000025c2: AND 000025c3: PUSH1 0x01 000025c5: PUSH1 0x01 000025c7: PUSH1 0x40 000025c9: SHL 000025ca: SUB 000025cb: SWAP2 000025cc: DUP3 000025cd: AND 000025ce: DUP11 000025cf: ADD 000025d0: DUP3 000025d1: AND 000025d2: OR 000025d3: SWAP1 000025d4: SWAP2 000025d5: SSTORE 000025d6: DUP3 000025d7: MLOAD 000025d8: DUP9 000025d9: ADD 000025da: AND 000025db: DUP3 000025dc: MSTORE 000025dd: PUSH4 0xffffffff 000025e2: DUP7 000025e3: AND 000025e4: SWAP1 000025e5: DUP3 000025e6: ADD 000025e7: MSTORE 000025e8: PUSH2 0x25f1 000025eb: DUP9 000025ec: DUP3 000025ed: PUSH2 0x2ca2 000025f0: JUMP 000025f1: JUMPDEST 000025f2: PUSH2 0x25fc 000025f5: DUP9 000025f6: DUP9 000025f7: DUP9 000025f8: PUSH2 0x381f 000025fb: JUMP 000025fc: JUMPDEST 000025fd: PUSH32 0x334f906ad6a83b11ef611b474f217126a930d0beda33fe1f99567b0835051a4e 0000261e: DUP9 0000261f: DUP9 00002620: DUP9 00002621: DUP9 00002622: DUP9 00002623: DUP9 00002624: DUP9 00002625: PUSH1 0x40 00002627: MLOAD 00002628: DUP1 00002629: DUP9 0000262a: PUSH1 0x01 0000262c: PUSH1 0x01 0000262e: PUSH1 0xa0 00002630: SHL 00002631: SUB 00002632: AND 00002633: PUSH1 0x01 00002635: PUSH1 0x01 00002637: PUSH1 0xa0 00002639: SHL 0000263a: SUB 0000263b: AND 0000263c: DUP2 0000263d: MSTORE 0000263e: PUSH1 0x20 00002640: ADD 00002641: DUP8 00002642: PUSH2 0xffff 00002645: AND 00002646: PUSH2 0xffff 00002649: AND 0000264a: DUP2 0000264b: MSTORE 0000264c: PUSH1 0x20 0000264e: ADD 0000264f: DUP7 00002650: PUSH1 0x01 00002652: PUSH1 0x01 00002654: PUSH1 0x40 00002656: SHL 00002657: SUB 00002658: AND 00002659: PUSH1 0x01 0000265b: PUSH1 0x01 0000265d: PUSH1 0x40 0000265f: SHL 00002660: SUB 00002661: AND 00002662: DUP2 00002663: MSTORE 00002664: PUSH1 0x20 00002666: ADD 00002667: DUP6 00002668: PUSH4 0xffffffff 0000266d: AND 0000266e: PUSH4 0xffffffff 00002673: AND 00002674: DUP2 00002675: MSTORE 00002676: PUSH1 0x20 00002678: ADD 00002679: DUP5 0000267a: PUSH1 0x01 0000267c: PUSH1 0x01 0000267e: PUSH1 0xa0 00002680: SHL 00002681: SUB 00002682: AND 00002683: PUSH1 0x01 00002685: PUSH1 0x01 00002687: PUSH1 0xa0 00002689: SHL 0000268a: SUB 0000268b: AND 0000268c: DUP2 0000268d: MSTORE 0000268e: PUSH1 0x20 00002690: ADD 00002691: DUP1 00002692: PUSH1 0x20 00002694: ADD 00002695: DUP1 00002696: PUSH1 0x20 00002698: ADD 00002699: DUP4 0000269a: DUP2 0000269b: SUB 0000269c: DUP4 0000269d: MSTORE 0000269e: DUP6 0000269f: DUP2 000026a0: DUP2 000026a1: MLOAD 000026a2: DUP2 000026a3: MSTORE 000026a4: PUSH1 0x20 000026a6: ADD 000026a7: SWAP2 000026a8: POP 000026a9: DUP1 000026aa: MLOAD 000026ab: SWAP1 000026ac: PUSH1 0x20 000026ae: ADD 000026af: SWAP1 000026b0: DUP1 000026b1: DUP4 000026b2: DUP4 000026b3: PUSH1 0x00 000026b5: DUP4 000026b6: DUP2 000026b7: LT 000026b8: ISZERO 000026b9: PUSH2 0x13d3 000026bc: JUMPI 000026bd: DUP2 000026be: DUP2 000026bf: ADD 000026c0: MLOAD 000026c1: DUP4 000026c2: DUP3 000026c3: ADD 000026c4: MSTORE 000026c5: PUSH1 0x20 000026c7: ADD 000026c8: PUSH2 0x13bb 000026cb: JUMP 000026cc: JUMPDEST 000026cd: PUSH2 0x26d4 000026d0: PUSH2 0x1fc5 000026d3: JUMP 000026d4: JUMPDEST 000026d5: PUSH2 0x2713 000026d8: JUMPI 000026d9: PUSH1 0x40 000026db: DUP1 000026dc: MLOAD 000026dd: PUSH3 0x461bcd 000026e1: PUSH1 0xe5 000026e3: SHL 000026e4: DUP2 000026e5: MSTORE 000026e6: PUSH1 0x20 000026e8: PUSH1 0x04 000026ea: DUP3 000026eb: ADD 000026ec: DUP2 000026ed: SWAP1 000026ee: MSTORE 000026ef: PUSH1 0x24 000026f1: DUP3 000026f2: ADD 000026f3: MSTORE 000026f4: PUSH1 0x00 000026f6: DUP1 000026f7: MLOAD 000026f8: PUSH1 0x20 000026fa: PUSH2 0x434a 000026fd: DUP4 000026fe: CODECOPY 000026ff: DUP2 00002700: MLOAD 00002701: SWAP2 00002702: MSTORE 00002703: PUSH1 0x44 00002705: DUP3 00002706: ADD 00002707: MSTORE 00002708: SWAP1 00002709: MLOAD 0000270a: SWAP1 0000270b: DUP2 0000270c: SWAP1 0000270d: SUB 0000270e: PUSH1 0x64 00002710: ADD 00002711: SWAP1 00002712: REVERT 00002713: JUMPDEST 00002714: PUSH2 0x271e 00002717: DUP2 00002718: PUSH1 0x00 0000271a: PUSH2 0x34d3 0000271d: JUMP 0000271e: JUMPDEST 0000271f: PUSH1 0x40 00002721: DUP1 00002722: MLOAD 00002723: PUSH1 0x01 00002725: PUSH1 0x01 00002727: PUSH1 0xa0 00002729: SHL 0000272a: SUB 0000272b: DUP4 0000272c: AND 0000272d: DUP2 0000272e: MSTORE 0000272f: SWAP1 00002730: MLOAD 00002731: PUSH32 0xd09f686f0004011c426dd8e783304238db2b407d25f0cbcabd206d671dcfc6f3 00002752: SWAP2 00002753: DUP2 00002754: SWAP1 00002755: SUB 00002756: PUSH1 0x20 00002758: ADD 00002759: SWAP1 0000275a: LOG1 0000275b: POP 0000275c: JUMP 0000275d: JUMPDEST 0000275e: PUSH1 0x00 00002760: SLOAD 00002761: PUSH1 0x01 00002763: PUSH1 0xa0 00002765: SHL 00002766: SWAP1 00002767: DIV 00002768: PUSH1 0xff 0000276a: AND 0000276b: DUP2 0000276c: JUMP 0000276d: JUMPDEST 0000276e: PUSH2 0x2775 00002771: PUSH2 0x1fc5 00002774: JUMP 00002775: JUMPDEST 00002776: PUSH2 0x27b4 00002779: JUMPI 0000277a: PUSH1 0x40 0000277c: DUP1 0000277d: MLOAD 0000277e: PUSH3 0x461bcd 00002782: PUSH1 0xe5 00002784: SHL 00002785: DUP2 00002786: MSTORE 00002787: PUSH1 0x20 00002789: PUSH1 0x04 0000278b: DUP3 0000278c: ADD 0000278d: DUP2 0000278e: SWAP1 0000278f: MSTORE 00002790: PUSH1 0x24 00002792: DUP3 00002793: ADD 00002794: MSTORE 00002795: PUSH1 0x00 00002797: DUP1 00002798: MLOAD 00002799: PUSH1 0x20 0000279b: PUSH2 0x434a 0000279e: DUP4 0000279f: CODECOPY 000027a0: DUP2 000027a1: MLOAD 000027a2: SWAP2 000027a3: MSTORE 000027a4: PUSH1 0x44 000027a6: DUP3 000027a7: ADD 000027a8: MSTORE 000027a9: SWAP1 000027aa: MLOAD 000027ab: SWAP1 000027ac: DUP2 000027ad: SWAP1 000027ae: SUB 000027af: PUSH1 0x64 000027b1: ADD 000027b2: SWAP1 000027b3: REVERT 000027b4: JUMPDEST 000027b5: PUSH2 0x27bd 000027b8: DUP2 000027b9: PUSH2 0x3934 000027bc: JUMP 000027bd: JUMPDEST 000027be: POP 000027bf: JUMP 000027c0: JUMPDEST 000027c1: PUSH1 0x60 000027c3: DUP1 000027c4: PUSH1 0x00 000027c6: PUSH1 0x17 000027c8: SWAP1 000027c9: SLOAD 000027ca: SWAP1 000027cb: PUSH2 0x0100 000027ce: EXP 000027cf: SWAP1 000027d0: DIV 000027d1: PUSH2 0xffff 000027d4: AND 000027d5: PUSH2 0xffff 000027d8: AND 000027d9: PUSH1 0x40 000027db: MLOAD 000027dc: SWAP1 000027dd: DUP1 000027de: DUP3 000027df: MSTORE 000027e0: DUP1 000027e1: PUSH1 0x20 000027e3: MUL 000027e4: PUSH1 0x20 000027e6: ADD 000027e7: DUP3 000027e8: ADD 000027e9: PUSH1 0x40 000027eb: MSTORE 000027ec: DUP1 000027ed: ISZERO 000027ee: PUSH2 0x2801 000027f1: JUMPI 000027f2: DUP2 000027f3: PUSH1 0x20 000027f5: ADD 000027f6: PUSH1 0x20 000027f8: DUP3 000027f9: MUL 000027fa: DUP1 000027fb: CODESIZE 000027fc: DUP4 000027fd: CODECOPY 000027fe: ADD 000027ff: SWAP1 00002800: POP 00002801: JUMPDEST 00002802: POP 00002803: SWAP1 00002804: POP 00002805: PUSH1 0x00 00002807: JUMPDEST 00002808: PUSH1 0x00 0000280a: SLOAD 0000280b: PUSH2 0xffff 0000280e: PUSH1 0x01 00002810: PUSH1 0xb8 00002812: SHL 00002813: SWAP1 00002814: SWAP2 00002815: DIV 00002816: DUP2 00002817: AND 00002818: SWAP1 00002819: DUP3 0000281a: AND 0000281b: LT 0000281c: ISZERO 0000281d: PUSH2 0x187f 00002820: JUMPI 00002821: PUSH2 0xffff 00002824: DUP2 00002825: AND 00002826: PUSH1 0x00 00002828: DUP2 00002829: DUP2 0000282a: MSTORE 0000282b: PUSH1 0x05 0000282d: PUSH1 0x20 0000282f: SWAP1 00002830: DUP2 00002831: MSTORE 00002832: PUSH1 0x40 00002834: DUP1 00002835: DUP4 00002836: KECCAK256 00002837: SLOAD 00002838: PUSH1 0x04 0000283a: SWAP1 0000283b: SWAP3 0000283c: MSTORE 0000283d: SWAP1 0000283e: SWAP2 0000283f: KECCAK256 00002840: SLOAD 00002841: DUP5 00002842: MLOAD 00002843: PUSH1 0x01 00002845: PUSH1 0x01 00002847: PUSH1 0x40 00002849: SHL 0000284a: SUB 0000284b: SWAP2 0000284c: DUP3 0000284d: AND 0000284e: SWAP2 0000284f: SWAP1 00002850: SWAP3 00002851: AND 00002852: ADD 00002853: SWAP2 00002854: DUP5 00002855: SWAP2 00002856: DUP2 00002857: LT 00002858: PUSH2 0x285d 0000285b: JUMPI 0000285c: INVALID 0000285d: JUMPDEST 0000285e: PUSH1 0x01 00002860: PUSH1 0x01 00002862: PUSH1 0x40 00002864: SHL 00002865: SUB 00002866: SWAP1 00002867: SWAP3 00002868: AND 00002869: PUSH1 0x20 0000286b: SWAP3 0000286c: DUP4 0000286d: MUL 0000286e: SWAP2 0000286f: SWAP1 00002870: SWAP2 00002871: ADD 00002872: SWAP1 00002873: SWAP2 00002874: ADD 00002875: MSTORE 00002876: PUSH1 0x01 00002878: ADD 00002879: PUSH2 0x2807 0000287c: JUMP 0000287d: JUMPDEST 0000287e: PUSH1 0x00 00002880: PUSH2 0x288a 00002883: DUP4 00002884: PUSH1 0x00 00002886: PUSH2 0x0b79 00002889: JUMP 0000288a: JUMPDEST 0000288b: PUSH2 0x2896 0000288e: JUMPI 0000288f: POP 00002890: PUSH1 0x00 00002892: PUSH2 0x2964 00002895: JUMP 00002896: JUMPDEST 00002897: PUSH1 0x00 00002899: PUSH2 0x2940 0000289c: DUP7 0000289d: PUSH1 0x03 0000289f: DUP2 000028a0: GT 000028a1: ISZERO 000028a2: PUSH2 0x28a7 000028a5: JUMPI 000028a6: INVALID 000028a7: JUMPDEST 000028a8: DUP7 000028a9: DUP7 000028aa: PUSH1 0x40 000028ac: MLOAD 000028ad: PUSH1 0x20 000028af: ADD 000028b0: DUP1 000028b1: DUP5 000028b2: PUSH1 0xff 000028b4: AND 000028b5: PUSH1 0xff 000028b7: AND 000028b8: PUSH1 0xf8 000028ba: SHL 000028bb: DUP2 000028bc: MSTORE 000028bd: PUSH1 0x01 000028bf: ADD 000028c0: DUP4 000028c1: DUP1 000028c2: MLOAD 000028c3: SWAP1 000028c4: PUSH1 0x20 000028c6: ADD 000028c7: SWAP1 000028c8: DUP1 000028c9: DUP4 000028ca: DUP4 000028cb: JUMPDEST 000028cc: PUSH1 0x20 000028ce: DUP4 000028cf: LT 000028d0: PUSH2 0x28ea 000028d3: JUMPI 000028d4: DUP1 000028d5: MLOAD 000028d6: DUP3 000028d7: MSTORE 000028d8: PUSH1 0x1f 000028da: NOT 000028db: SWAP1 000028dc: SWAP3 000028dd: ADD 000028de: SWAP2 000028df: PUSH1 0x20 000028e1: SWAP2 000028e2: DUP3 000028e3: ADD 000028e4: SWAP2 000028e5: ADD 000028e6: PUSH2 0x28cb 000028e9: JUMP 000028ea: JUMPDEST 000028eb: PUSH1 0x01 000028ed: DUP4 000028ee: PUSH1 0x20 000028f0: SUB 000028f1: PUSH2 0x0100 000028f4: EXP 000028f5: SUB 000028f6: DUP1 000028f7: NOT 000028f8: DUP3 000028f9: MLOAD 000028fa: AND 000028fb: DUP2 000028fc: DUP5 000028fd: MLOAD 000028fe: AND 000028ff: DUP1 00002900: DUP3 00002901: OR 00002902: DUP6 00002903: MSTORE 00002904: POP 00002905: POP 00002906: POP 00002907: POP 00002908: POP 00002909: POP 0000290a: SWAP1 0000290b: POP 0000290c: ADD 0000290d: DUP3 0000290e: PUSH1 0x01 00002910: PUSH1 0x01 00002912: PUSH1 0xa0 00002914: SHL 00002915: SUB 00002916: AND 00002917: PUSH1 0x01 00002919: PUSH1 0x01 0000291b: PUSH1 0xa0 0000291d: SHL 0000291e: SUB 0000291f: AND 00002920: PUSH1 0x60 00002922: SHL 00002923: DUP2 00002924: MSTORE 00002925: PUSH1 0x14 00002927: ADD 00002928: SWAP4 00002929: POP 0000292a: POP 0000292b: POP 0000292c: POP 0000292d: PUSH1 0x40 0000292f: MLOAD 00002930: PUSH1 0x20 00002932: DUP2 00002933: DUP4 00002934: SUB 00002935: SUB 00002936: DUP2 00002937: MSTORE 00002938: SWAP1 00002939: PUSH1 0x40 0000293b: MSTORE 0000293c: PUSH2 0x39d4 0000293f: JUMP 00002940: JUMPDEST 00002941: SWAP1 00002942: POP 00002943: DUP4 00002944: PUSH1 0x01 00002946: PUSH1 0x01 00002948: PUSH1 0xa0 0000294a: SHL 0000294b: SUB 0000294c: AND 0000294d: PUSH2 0x2956 00002950: DUP3 00002951: DUP6 00002952: PUSH2 0x3a25 00002955: JUMP 00002956: JUMPDEST 00002957: PUSH1 0x01 00002959: PUSH1 0x01 0000295b: PUSH1 0xa0 0000295d: SHL 0000295e: SUB 0000295f: AND 00002960: EQ 00002961: SWAP2 00002962: POP 00002963: POP 00002964: JUMPDEST 00002965: SWAP5 00002966: SWAP4 00002967: POP 00002968: POP 00002969: POP 0000296a: POP 0000296b: JUMP 0000296c: JUMPDEST 0000296d: PUSH1 0x0e 0000296f: SWAP2 00002970: DUP3 00002971: MUL 00002972: PUSH2 0xffff 00002975: AND 00002976: ADD 00002977: SWAP2 00002978: SWAP1 00002979: SWAP2 0000297a: ADD 0000297b: PUSH1 0x02 0000297d: DUP2 0000297e: ADD 0000297f: MLOAD 00002980: PUSH1 0x0a 00002982: DUP3 00002983: ADD 00002984: MLOAD 00002985: SWAP2 00002986: SWAP1 00002987: SWAP3 00002988: ADD 00002989: MLOAD 0000298a: SWAP2 0000298b: SWAP3 0000298c: SWAP1 0000298d: SWAP2 0000298e: SWAP1 0000298f: JUMP 00002990: JUMPDEST 00002991: DUP2 00002992: DUP4 00002993: ADD 00002994: PUSH1 0x42 00002996: DUP2 00002997: ADD 00002998: MLOAD 00002999: PUSH1 0x62 0000299b: DUP3 0000299c: ADD 0000299d: MLOAD 0000299e: PUSH1 0x63 000029a0: DUP4 000029a1: ADD 000029a2: MLOAD 000029a3: PUSH1 0x00 000029a5: SWAP4 000029a6: SWAP3 000029a7: SWAP2 000029a8: SWAP1 000029a9: PUSH1 0x60 000029ab: PUSH2 0x29b6 000029ae: DUP10 000029af: DUP10 000029b0: PUSH1 0x22 000029b2: PUSH2 0x3ab5 000029b5: JUMP 000029b6: JUMPDEST 000029b7: SWAP1 000029b8: POP 000029b9: PUSH1 0x00 000029bb: PUSH2 0x2a3a 000029be: DUP2 000029bf: DUP4 000029c0: PUSH1 0x40 000029c2: MLOAD 000029c3: PUSH1 0x20 000029c5: ADD 000029c6: DUP1 000029c7: DUP4 000029c8: PUSH1 0xff 000029ca: AND 000029cb: PUSH1 0xff 000029cd: AND 000029ce: PUSH1 0xf8 000029d0: SHL 000029d1: DUP2 000029d2: MSTORE 000029d3: PUSH1 0x01 000029d5: ADD 000029d6: DUP3 000029d7: DUP1 000029d8: MLOAD 000029d9: SWAP1 000029da: PUSH1 0x20 000029dc: ADD 000029dd: SWAP1 000029de: DUP1 000029df: DUP4 000029e0: DUP4 000029e1: JUMPDEST 000029e2: PUSH1 0x20 000029e4: DUP4 000029e5: LT 000029e6: PUSH2 0x2a00 000029e9: JUMPI 000029ea: DUP1 000029eb: MLOAD 000029ec: DUP3 000029ed: MSTORE 000029ee: PUSH1 0x1f 000029f0: NOT 000029f1: SWAP1 000029f2: SWAP3 000029f3: ADD 000029f4: SWAP2 000029f5: PUSH1 0x20 000029f7: SWAP2 000029f8: DUP3 000029f9: ADD 000029fa: SWAP2 000029fb: ADD 000029fc: PUSH2 0x29e1 000029ff: JUMP 00002a00: JUMPDEST 00002a01: PUSH1 0x01 00002a03: DUP4 00002a04: PUSH1 0x20 00002a06: SUB 00002a07: PUSH2 0x0100 00002a0a: EXP 00002a0b: SUB 00002a0c: DUP1 00002a0d: NOT 00002a0e: DUP3 00002a0f: MLOAD 00002a10: AND 00002a11: DUP2 00002a12: DUP5 00002a13: MLOAD 00002a14: AND 00002a15: DUP1 00002a16: DUP3 00002a17: OR 00002a18: DUP6 00002a19: MSTORE 00002a1a: POP 00002a1b: POP 00002a1c: POP 00002a1d: POP 00002a1e: POP 00002a1f: POP 00002a20: SWAP1 00002a21: POP 00002a22: ADD 00002a23: SWAP3 00002a24: POP 00002a25: POP 00002a26: POP 00002a27: PUSH1 0x40 00002a29: MLOAD 00002a2a: PUSH1 0x20 00002a2c: DUP2 00002a2d: DUP4 00002a2e: SUB 00002a2f: SUB 00002a30: DUP2 00002a31: MSTORE 00002a32: SWAP1 00002a33: PUSH1 0x40 00002a35: MSTORE 00002a36: PUSH2 0x39d4 00002a39: JUMP 00002a3a: JUMPDEST 00002a3b: SWAP1 00002a3c: POP 00002a3d: PUSH1 0x1b 00002a3f: DUP4 00002a40: PUSH1 0xff 00002a42: AND 00002a43: LT 00002a44: ISZERO 00002a45: PUSH2 0x2a4f 00002a48: JUMPI 00002a49: PUSH1 0x1b 00002a4b: DUP4 00002a4c: ADD 00002a4d: SWAP3 00002a4e: POP 00002a4f: JUMPDEST 00002a50: PUSH1 0x40 00002a52: DUP1 00002a53: MLOAD 00002a54: PUSH1 0x00 00002a56: DUP2 00002a57: MSTORE 00002a58: PUSH1 0x20 00002a5a: DUP1 00002a5b: DUP3 00002a5c: ADD 00002a5d: DUP1 00002a5e: DUP5 00002a5f: MSTORE 00002a60: DUP5 00002a61: SWAP1 00002a62: MSTORE 00002a63: PUSH1 0xff 00002a65: DUP7 00002a66: AND 00002a67: DUP3 00002a68: DUP5 00002a69: ADD 00002a6a: MSTORE 00002a6b: PUSH1 0x60 00002a6d: DUP3 00002a6e: ADD 00002a6f: DUP9 00002a70: SWAP1 00002a71: MSTORE 00002a72: PUSH1 0x80 00002a74: DUP3 00002a75: ADD 00002a76: DUP8 00002a77: SWAP1 00002a78: MSTORE 00002a79: SWAP2 00002a7a: MLOAD 00002a7b: PUSH1 0x01 00002a7d: PUSH1 0x01 00002a7f: PUSH1 0xa0 00002a81: SHL 00002a82: SUB 00002a83: DUP12 00002a84: AND 00002a85: SWAP3 00002a86: PUSH1 0x01 00002a88: SWAP3 00002a89: PUSH1 0xa0 00002a8b: DUP1 00002a8c: DUP3 00002a8d: ADD 00002a8e: SWAP4 00002a8f: PUSH1 0x1f 00002a91: NOT 00002a92: DUP2 00002a93: ADD 00002a94: SWAP3 00002a95: DUP2 00002a96: SWAP1 00002a97: SUB 00002a98: SWAP1 00002a99: SWAP2 00002a9a: ADD 00002a9b: SWAP1 00002a9c: DUP6 00002a9d: GAS 00002a9e: STATICCALL 00002a9f: ISZERO 00002aa0: DUP1 00002aa1: ISZERO 00002aa2: PUSH2 0x2aaf 00002aa5: JUMPI 00002aa6: RETURNDATASIZE 00002aa7: PUSH1 0x00 00002aa9: DUP1 00002aaa: RETURNDATACOPY 00002aab: RETURNDATASIZE 00002aac: PUSH1 0x00 00002aae: REVERT 00002aaf: JUMPDEST 00002ab0: POP 00002ab1: POP 00002ab2: POP 00002ab3: PUSH1 0x20 00002ab5: PUSH1 0x40 00002ab7: MLOAD 00002ab8: SUB 00002ab9: MLOAD 00002aba: PUSH1 0x01 00002abc: PUSH1 0x01 00002abe: PUSH1 0xa0 00002ac0: SHL 00002ac1: SUB 00002ac2: AND 00002ac3: EQ 00002ac4: SWAP7 00002ac5: POP 00002ac6: POP 00002ac7: POP 00002ac8: POP 00002ac9: POP 00002aca: POP 00002acb: POP 00002acc: SWAP4 00002acd: SWAP3 00002ace: POP 00002acf: POP 00002ad0: POP 00002ad1: JUMP 00002ad2: JUMPDEST 00002ad3: PUSH2 0x2ada 00002ad6: PUSH2 0x4035 00002ad9: JUMP 00002ada: JUMPDEST 00002adb: PUSH1 0x01 00002add: PUSH1 0x01 00002adf: PUSH1 0xa0 00002ae1: SHL 00002ae2: SUB 00002ae3: DUP4 00002ae4: AND 00002ae5: PUSH1 0x00 00002ae7: SWAP1 00002ae8: DUP2 00002ae9: MSTORE 00002aea: PUSH1 0x02 00002aec: PUSH1 0x20 00002aee: DUP2 00002aef: SWAP1 00002af0: MSTORE 00002af1: PUSH1 0x40 00002af3: SWAP1 00002af4: SWAP2 00002af5: KECCAK256 00002af6: SLOAD 00002af7: PUSH1 0x15 00002af9: PUSH1 0x00 00002afb: NOT 00002afc: PUSH2 0x0100 00002aff: PUSH1 0x01 00002b01: DUP5 00002b02: AND 00002b03: ISZERO 00002b04: MUL 00002b05: ADD 00002b06: SWAP1 00002b07: SWAP2 00002b08: AND 00002b09: SWAP2 00002b0a: SWAP1 00002b0b: SWAP2 00002b0c: DIV 00002b0d: LT 00002b0e: PUSH2 0x2c71 00002b11: JUMPI 00002b12: PUSH1 0x01 00002b14: PUSH1 0x01 00002b16: PUSH1 0xa0 00002b18: SHL 00002b19: SUB 00002b1a: DUP4 00002b1b: AND 00002b1c: PUSH1 0x00 00002b1e: SWAP1 00002b1f: DUP2 00002b20: MSTORE 00002b21: PUSH1 0x02 00002b23: PUSH1 0x20 00002b25: DUP2 00002b26: SWAP1 00002b27: MSTORE 00002b28: PUSH1 0x40 00002b2a: DUP3 00002b2b: KECCAK256 00002b2c: SLOAD 00002b2d: PUSH1 0x0e 00002b2f: SWAP2 00002b30: PUSH1 0x06 00002b32: NOT 00002b33: PUSH1 0x00 00002b35: NOT 00002b36: PUSH2 0x0100 00002b39: PUSH1 0x01 00002b3b: DUP6 00002b3c: AND 00002b3d: ISZERO 00002b3e: MUL 00002b3f: ADD 00002b40: SWAP1 00002b41: SWAP3 00002b42: AND 00002b43: DIV 00002b44: ADD 00002b45: DIV 00002b46: SWAP1 00002b47: POP 00002b48: PUSH1 0x00 00002b4a: JUMPDEST 00002b4b: DUP2 00002b4c: PUSH2 0xffff 00002b4f: AND 00002b50: DUP2 00002b51: PUSH2 0xffff 00002b54: AND 00002b55: LT 00002b56: ISZERO 00002b57: PUSH2 0x2c6e 00002b5a: JUMPI 00002b5b: PUSH1 0x01 00002b5d: PUSH1 0x01 00002b5f: PUSH1 0xa0 00002b61: SHL 00002b62: SUB 00002b63: DUP6 00002b64: AND 00002b65: PUSH1 0x00 00002b67: SWAP1 00002b68: DUP2 00002b69: MSTORE 00002b6a: PUSH1 0x02 00002b6c: PUSH1 0x20 00002b6e: DUP2 00002b6f: DUP2 00002b70: MSTORE 00002b71: PUSH1 0x40 00002b73: DUP1 00002b74: DUP5 00002b75: KECCAK256 00002b76: DUP1 00002b77: SLOAD 00002b78: DUP3 00002b79: MLOAD 00002b7a: PUSH1 0x01 00002b7c: DUP3 00002b7d: AND 00002b7e: ISZERO 00002b7f: PUSH2 0x0100 00002b82: MUL 00002b83: PUSH1 0x00 00002b85: NOT 00002b86: ADD 00002b87: SWAP1 00002b88: SWAP2 00002b89: AND 00002b8a: SWAP5 00002b8b: SWAP1 00002b8c: SWAP5 00002b8d: DIV 00002b8e: PUSH1 0x1f 00002b90: DUP2 00002b91: ADD 00002b92: DUP5 00002b93: SWAP1 00002b94: DIV 00002b95: DUP5 00002b96: MUL 00002b97: DUP6 00002b98: ADD 00002b99: DUP5 00002b9a: ADD 00002b9b: SWAP1 00002b9c: SWAP3 00002b9d: MSTORE 00002b9e: DUP2 00002b9f: DUP5 00002ba0: MSTORE 00002ba1: DUP5 00002ba2: SWAP4 00002ba3: DUP5 00002ba4: SWAP4 00002ba5: PUSH2 0x2c0a 00002ba8: SWAP4 00002ba9: SWAP2 00002baa: SWAP3 00002bab: SWAP2 00002bac: SWAP1 00002bad: DUP4 00002bae: ADD 00002baf: DUP3 00002bb0: DUP3 00002bb1: DUP1 00002bb2: ISZERO 00002bb3: PUSH2 0x2bfd 00002bb6: JUMPI 00002bb7: DUP1 00002bb8: PUSH1 0x1f 00002bba: LT 00002bbb: PUSH2 0x2bd2 00002bbe: JUMPI 00002bbf: PUSH2 0x0100 00002bc2: DUP1 00002bc3: DUP4 00002bc4: SLOAD 00002bc5: DIV 00002bc6: MUL 00002bc7: DUP4 00002bc8: MSTORE 00002bc9: SWAP2 00002bca: PUSH1 0x20 00002bcc: ADD 00002bcd: SWAP2 00002bce: PUSH2 0x2bfd 00002bd1: JUMP 00002bd2: JUMPDEST 00002bd3: DUP3 00002bd4: ADD 00002bd5: SWAP2 00002bd6: SWAP1 00002bd7: PUSH1 0x00 00002bd9: MSTORE 00002bda: PUSH1 0x20 00002bdc: PUSH1 0x00 00002bde: KECCAK256 00002bdf: SWAP1 00002be0: JUMPDEST 00002be1: DUP2 00002be2: SLOAD 00002be3: DUP2 00002be4: MSTORE 00002be5: SWAP1 00002be6: PUSH1 0x01 00002be8: ADD 00002be9: SWAP1 00002bea: PUSH1 0x20 00002bec: ADD 00002bed: DUP1 00002bee: DUP4 00002bef: GT 00002bf0: PUSH2 0x2be0 00002bf3: JUMPI 00002bf4: DUP3 00002bf5: SWAP1 00002bf6: SUB 00002bf7: PUSH1 0x1f 00002bf9: AND 00002bfa: DUP3 00002bfb: ADD 00002bfc: SWAP2 00002bfd: JUMPDEST 00002bfe: POP 00002bff: POP 00002c00: POP 00002c01: POP 00002c02: POP 00002c03: DUP6 00002c04: PUSH1 0x07 00002c06: PUSH2 0x296c 00002c09: JUMP 00002c0a: JUMPDEST 00002c0b: SWAP3 00002c0c: POP 00002c0d: SWAP3 00002c0e: POP 00002c0f: SWAP3 00002c10: POP 00002c11: DUP7 00002c12: PUSH2 0xffff 00002c15: AND 00002c16: DUP4 00002c17: PUSH2 0xffff 00002c1a: AND 00002c1b: EQ 00002c1c: ISZERO 00002c1d: PUSH2 0x2c63 00002c20: JUMPI 00002c21: PUSH1 0x40 00002c23: MLOAD 00002c24: DUP1 00002c25: PUSH1 0x80 00002c27: ADD 00002c28: PUSH1 0x40 00002c2a: MSTORE 00002c2b: DUP1 00002c2c: DUP4 00002c2d: PUSH1 0x01 00002c2f: PUSH1 0x01 00002c31: PUSH1 0x40 00002c33: SHL 00002c34: SUB 00002c35: AND 00002c36: DUP2 00002c37: MSTORE 00002c38: PUSH1 0x20 00002c3a: ADD 00002c3b: DUP3 00002c3c: PUSH4 0xffffffff 00002c41: AND 00002c42: DUP2 00002c43: MSTORE 00002c44: PUSH1 0x20 00002c46: ADD 00002c47: DUP6 00002c48: PUSH2 0xffff 00002c4b: AND 00002c4c: DUP2 00002c4d: MSTORE 00002c4e: PUSH1 0x20 00002c50: ADD 00002c51: PUSH1 0x01 00002c53: ISZERO 00002c54: ISZERO 00002c55: DUP2 00002c56: MSTORE 00002c57: POP 00002c58: SWAP6 00002c59: POP 00002c5a: POP 00002c5b: POP 00002c5c: POP 00002c5d: POP 00002c5e: POP 00002c5f: PUSH2 0x0c99 00002c62: JUMP 00002c63: JUMPDEST 00002c64: POP 00002c65: POP 00002c66: POP 00002c67: PUSH1 0x01 00002c69: ADD 00002c6a: PUSH2 0x2b4a 00002c6d: JUMP 00002c6e: JUMPDEST 00002c6f: POP 00002c70: POP 00002c71: JUMPDEST 00002c72: POP 00002c73: PUSH1 0x40 00002c75: DUP1 00002c76: MLOAD 00002c77: PUSH1 0x80 00002c79: DUP2 00002c7a: ADD 00002c7b: DUP3 00002c7c: MSTORE 00002c7d: PUSH1 0x00 00002c7f: DUP1 00002c80: DUP3 00002c81: MSTORE 00002c82: PUSH1 0x20 00002c84: DUP3 00002c85: ADD 00002c86: DUP2 00002c87: SWAP1 00002c88: MSTORE 00002c89: PUSH2 0xffff 00002c8c: DUP5 00002c8d: AND 00002c8e: SWAP3 00002c8f: DUP3 00002c90: ADD 00002c91: SWAP3 00002c92: SWAP1 00002c93: SWAP3 00002c94: MSTORE 00002c95: PUSH1 0x60 00002c97: DUP2 00002c98: ADD 00002c99: SWAP2 00002c9a: SWAP1 00002c9b: SWAP2 00002c9c: MSTORE 00002c9d: SWAP3 00002c9e: SWAP2 00002c9f: POP 00002ca0: POP 00002ca1: JUMP 00002ca2: JUMPDEST 00002ca3: PUSH1 0x60 00002ca5: DUP2 00002ca6: PUSH1 0x60 00002ca8: ADD 00002ca9: MLOAD 00002caa: ISZERO 00002cab: PUSH2 0x2dcf 00002cae: JUMPI 00002caf: PUSH1 0x00 00002cb1: DUP3 00002cb2: PUSH1 0x40 00002cb4: ADD 00002cb5: MLOAD 00002cb6: PUSH1 0x0e 00002cb8: MUL 00002cb9: PUSH1 0x09 00002cbb: ADD 00002cbc: PUSH2 0xffff 00002cbf: AND 00002cc0: SWAP1 00002cc1: POP 00002cc2: DUP3 00002cc3: PUSH1 0x00 00002cc5: ADD 00002cc6: MLOAD 00002cc7: DUP4 00002cc8: PUSH1 0x20 00002cca: ADD 00002ccb: MLOAD 00002ccc: PUSH1 0x40 00002cce: MLOAD 00002ccf: PUSH1 0x20 00002cd1: ADD 00002cd2: DUP1 00002cd3: DUP4 00002cd4: PUSH1 0x01 00002cd6: PUSH1 0x01 00002cd8: PUSH1 0x40 00002cda: SHL 00002cdb: SUB 00002cdc: AND 00002cdd: PUSH1 0x01 00002cdf: PUSH1 0x01 00002ce1: PUSH1 0x40 00002ce3: SHL 00002ce4: SUB 00002ce5: AND 00002ce6: PUSH1 0xc0 00002ce8: SHL 00002ce9: DUP2 00002cea: MSTORE 00002ceb: PUSH1 0x08 00002ced: ADD 00002cee: DUP3 00002cef: PUSH4 0xffffffff 00002cf4: AND 00002cf5: PUSH4 0xffffffff 00002cfa: AND 00002cfb: PUSH1 0xe0 00002cfd: SHL 00002cfe: DUP2 00002cff: MSTORE 00002d00: PUSH1 0x04 00002d02: ADD 00002d03: SWAP3 00002d04: POP 00002d05: POP 00002d06: POP 00002d07: PUSH1 0x40 00002d09: MLOAD 00002d0a: PUSH1 0x20 00002d0c: DUP2 00002d0d: DUP4 00002d0e: SUB 00002d0f: SUB 00002d10: DUP2 00002d11: MSTORE 00002d12: SWAP1 00002d13: PUSH1 0x40 00002d15: MSTORE 00002d16: SWAP2 00002d17: POP 00002d18: PUSH1 0x00 00002d1a: DUP1 00002d1b: SWAP1 00002d1c: POP 00002d1d: JUMPDEST 00002d1e: PUSH1 0x0c 00002d20: DUP2 00002d21: LT 00002d22: ISZERO 00002d23: PUSH2 0x2dc8 00002d26: JUMPI 00002d27: DUP3 00002d28: DUP2 00002d29: DUP2 00002d2a: MLOAD 00002d2b: DUP2 00002d2c: LT 00002d2d: PUSH2 0x2d32 00002d30: JUMPI 00002d31: INVALID 00002d32: JUMPDEST 00002d33: PUSH1 0x20 00002d35: ADD 00002d36: ADD 00002d37: MLOAD 00002d38: PUSH1 0xf8 00002d3a: SHR 00002d3b: PUSH1 0xf8 00002d3d: SHL 00002d3e: PUSH1 0x02 00002d40: PUSH1 0x00 00002d42: DUP8 00002d43: PUSH1 0x01 00002d45: PUSH1 0x01 00002d47: PUSH1 0xa0 00002d49: SHL 00002d4a: SUB 00002d4b: AND 00002d4c: PUSH1 0x01 00002d4e: PUSH1 0x01 00002d50: PUSH1 0xa0 00002d52: SHL 00002d53: SUB 00002d54: AND 00002d55: DUP2 00002d56: MSTORE 00002d57: PUSH1 0x20 00002d59: ADD 00002d5a: SWAP1 00002d5b: DUP2 00002d5c: MSTORE 00002d5d: PUSH1 0x20 00002d5f: ADD 00002d60: PUSH1 0x00 00002d62: KECCAK256 00002d63: DUP3 00002d64: DUP5 00002d65: ADD 00002d66: DUP2 00002d67: SLOAD 00002d68: PUSH1 0x01 00002d6a: DUP2 00002d6b: PUSH1 0x01 00002d6d: AND 00002d6e: ISZERO 00002d6f: PUSH2 0x0100 00002d72: MUL 00002d73: SUB 00002d74: AND 00002d75: PUSH1 0x02 00002d77: SWAP1 00002d78: DIV 00002d79: DUP2 00002d7a: LT 00002d7b: PUSH2 0x2d80 00002d7e: JUMPI 00002d7f: INVALID 00002d80: JUMPDEST 00002d81: DUP2 00002d82: SLOAD 00002d83: PUSH1 0x01 00002d85: AND 00002d86: ISZERO 00002d87: PUSH2 0x2d9f 00002d8a: JUMPI 00002d8b: SWAP1 00002d8c: PUSH1 0x00 00002d8e: MSTORE 00002d8f: PUSH1 0x20 00002d91: PUSH1 0x00 00002d93: KECCAK256 00002d94: SWAP1 00002d95: PUSH1 0x20 00002d97: SWAP2 00002d98: DUP3 00002d99: DUP3 00002d9a: DIV 00002d9b: ADD 00002d9c: SWAP2 00002d9d: SWAP1 00002d9e: MOD 00002d9f: JUMPDEST 00002da0: PUSH1 0x1f 00002da2: SUB 00002da3: PUSH2 0x0100 00002da6: EXP 00002da7: DUP2 00002da8: SLOAD 00002da9: DUP2 00002daa: PUSH1 0xff 00002dac: MUL 00002dad: NOT 00002dae: AND 00002daf: SWAP1 00002db0: PUSH1 0x01 00002db2: PUSH1 0xf8 00002db4: SHL 00002db5: DUP5 00002db6: DIV 00002db7: MUL 00002db8: OR 00002db9: SWAP1 00002dba: SSTORE 00002dbb: POP 00002dbc: DUP1 00002dbd: DUP1 00002dbe: PUSH1 0x01 00002dc0: ADD 00002dc1: SWAP2 00002dc2: POP 00002dc3: POP 00002dc4: PUSH2 0x2d1d 00002dc7: JUMP 00002dc8: JUMPDEST 00002dc9: POP 00002dca: POP 00002dcb: PUSH2 0x2fd6 00002dce: JUMP 00002dcf: JUMPDEST 00002dd0: POP 00002dd1: PUSH1 0x40 00002dd3: DUP2 00002dd4: DUP2 00002dd5: ADD 00002dd6: MLOAD 00002dd7: DUP3 00002dd8: MLOAD 00002dd9: PUSH1 0x20 00002ddb: DUP1 00002ddc: DUP6 00002ddd: ADD 00002dde: MLOAD 00002ddf: DUP5 00002de0: MLOAD 00002de1: PUSH1 0xf0 00002de3: SWAP5 00002de4: SWAP1 00002de5: SWAP5 00002de6: SHL 00002de7: PUSH1 0x01 00002de9: PUSH1 0x01 00002deb: PUSH1 0xf0 00002ded: SHL 00002dee: SUB 00002def: NOT 00002df0: AND 00002df1: DUP5 00002df2: DUP4 00002df3: ADD 00002df4: MSTORE 00002df5: PUSH1 0xc0 00002df7: SWAP3 00002df8: SWAP1 00002df9: SWAP3 00002dfa: SHL 00002dfb: PUSH1 0x01 00002dfd: PUSH1 0x01 00002dff: PUSH1 0xc0 00002e01: SHL 00002e02: SUB 00002e03: NOT 00002e04: AND 00002e05: PUSH1 0x22 00002e07: DUP5 00002e08: ADD 00002e09: MSTORE 00002e0a: PUSH1 0xe0 00002e0c: SWAP2 00002e0d: SWAP1 00002e0e: SWAP2 00002e0f: SHL 00002e10: PUSH1 0x01 00002e12: PUSH1 0x01 00002e14: PUSH1 0xe0 00002e16: SHL 00002e17: SUB 00002e18: NOT 00002e19: AND 00002e1a: PUSH1 0x2a 00002e1c: DUP4 00002e1d: ADD 00002e1e: MSTORE 00002e1f: DUP3 00002e20: MLOAD 00002e21: DUP1 00002e22: DUP4 00002e23: SUB 00002e24: PUSH1 0x0e 00002e26: ADD 00002e27: DUP2 00002e28: MSTORE 00002e29: PUSH1 0x2e 00002e2b: SWAP1 00002e2c: SWAP3 00002e2d: ADD 00002e2e: DUP4 00002e2f: MSTORE 00002e30: PUSH1 0x01 00002e32: PUSH1 0x01 00002e34: PUSH1 0xa0 00002e36: SHL 00002e37: SUB 00002e38: DUP6 00002e39: AND 00002e3a: PUSH1 0x00 00002e3c: SWAP1 00002e3d: DUP2 00002e3e: MSTORE 00002e3f: PUSH1 0x02 00002e41: SWAP2 00002e42: DUP3 00002e43: SWAP1 00002e44: MSTORE 00002e45: SWAP3 00002e46: SWAP1 00002e47: SWAP3 00002e48: KECCAK256 00002e49: SLOAD 00002e4a: SWAP1 00002e4b: SWAP2 00002e4c: PUSH1 0x01 00002e4e: DUP3 00002e4f: AND 00002e50: ISZERO 00002e51: PUSH2 0x0100 00002e54: MUL 00002e55: PUSH1 0x00 00002e57: NOT 00002e58: ADD 00002e59: SWAP1 00002e5a: SWAP2 00002e5b: AND 00002e5c: DIV 00002e5d: PUSH2 0x2eec 00002e60: JUMPI 00002e61: PUSH1 0x00 00002e63: DUP2 00002e64: PUSH1 0x40 00002e66: MLOAD 00002e67: PUSH1 0x20 00002e69: ADD 00002e6a: DUP1 00002e6b: DUP4 00002e6c: PUSH7 0xffffffffffffff 00002e74: AND 00002e75: PUSH7 0xffffffffffffff 00002e7d: AND 00002e7e: PUSH1 0xc8 00002e80: SHL 00002e81: DUP2 00002e82: MSTORE 00002e83: PUSH1 0x07 00002e85: ADD 00002e86: DUP3 00002e87: DUP1 00002e88: MLOAD 00002e89: SWAP1 00002e8a: PUSH1 0x20 00002e8c: ADD 00002e8d: SWAP1 00002e8e: DUP1 00002e8f: DUP4 00002e90: DUP4 00002e91: JUMPDEST 00002e92: PUSH1 0x20 00002e94: DUP4 00002e95: LT 00002e96: PUSH2 0x2eb0 00002e99: JUMPI 00002e9a: DUP1 00002e9b: MLOAD 00002e9c: DUP3 00002e9d: MSTORE 00002e9e: PUSH1 0x1f 00002ea0: NOT 00002ea1: SWAP1 00002ea2: SWAP3 00002ea3: ADD 00002ea4: SWAP2 00002ea5: PUSH1 0x20 00002ea7: SWAP2 00002ea8: DUP3 00002ea9: ADD 00002eaa: SWAP2 00002eab: ADD 00002eac: PUSH2 0x2e91 00002eaf: JUMP 00002eb0: JUMPDEST 00002eb1: PUSH1 0x01 00002eb3: DUP4 00002eb4: PUSH1 0x20 00002eb6: SUB 00002eb7: PUSH2 0x0100 00002eba: EXP 00002ebb: SUB 00002ebc: DUP1 00002ebd: NOT 00002ebe: DUP3 00002ebf: MLOAD 00002ec0: AND 00002ec1: DUP2 00002ec2: DUP5 00002ec3: MLOAD 00002ec4: AND 00002ec5: DUP1 00002ec6: DUP3 00002ec7: OR 00002ec8: DUP6 00002ec9: MSTORE 00002eca: POP 00002ecb: POP 00002ecc: POP 00002ecd: POP 00002ece: POP 00002ecf: POP 00002ed0: SWAP1 00002ed1: POP 00002ed2: ADD 00002ed3: SWAP3 00002ed4: POP 00002ed5: POP 00002ed6: POP 00002ed7: PUSH1 0x40 00002ed9: MLOAD 00002eda: PUSH1 0x20 00002edc: DUP2 00002edd: DUP4 00002ede: SUB 00002edf: SUB 00002ee0: DUP2 00002ee1: MSTORE 00002ee2: SWAP1 00002ee3: PUSH1 0x40 00002ee5: MSTORE 00002ee6: SWAP1 00002ee7: POP 00002ee8: PUSH2 0x2fb4 00002eeb: JUMP 00002eec: JUMPDEST 00002eed: PUSH1 0x02 00002eef: PUSH1 0x00 00002ef1: DUP5 00002ef2: PUSH1 0x01 00002ef4: PUSH1 0x01 00002ef6: PUSH1 0xa0 00002ef8: SHL 00002ef9: SUB 00002efa: AND 00002efb: PUSH1 0x01 00002efd: PUSH1 0x01 00002eff: PUSH1 0xa0 00002f01: SHL 00002f02: SUB 00002f03: AND 00002f04: DUP2 00002f05: MSTORE 00002f06: PUSH1 0x20 00002f08: ADD 00002f09: SWAP1 00002f0a: DUP2 00002f0b: MSTORE 00002f0c: PUSH1 0x20 00002f0e: ADD 00002f0f: PUSH1 0x00 00002f11: KECCAK256 00002f12: DUP1 00002f13: SLOAD 00002f14: PUSH1 0x01 00002f16: DUP2 00002f17: PUSH1 0x01 00002f19: AND 00002f1a: ISZERO 00002f1b: PUSH2 0x0100 00002f1e: MUL 00002f1f: SUB 00002f20: AND 00002f21: PUSH1 0x02 00002f23: SWAP1 00002f24: DIV 00002f25: SWAP1 00002f26: POP 00002f27: PUSH1 0x01 00002f29: EQ 00002f2a: ISZERO 00002f2b: PUSH2 0x2fb4 00002f2e: JUMPI 00002f2f: PUSH1 0x00 00002f31: DUP2 00002f32: PUSH1 0x40 00002f34: MLOAD 00002f35: PUSH1 0x20 00002f37: ADD 00002f38: DUP1 00002f39: DUP4 00002f3a: PUSH6 0xffffffffffff 00002f41: AND 00002f42: PUSH6 0xffffffffffff 00002f49: AND 00002f4a: PUSH1 0xd0 00002f4c: SHL 00002f4d: DUP2 00002f4e: MSTORE 00002f4f: PUSH1 0x06 00002f51: ADD 00002f52: DUP3 00002f53: DUP1 00002f54: MLOAD 00002f55: SWAP1 00002f56: PUSH1 0x20 00002f58: ADD 00002f59: SWAP1 00002f5a: DUP1 00002f5b: DUP4 00002f5c: DUP4 00002f5d: JUMPDEST 00002f5e: PUSH1 0x20 00002f60: DUP4 00002f61: LT 00002f62: PUSH2 0x2f7c 00002f65: JUMPI 00002f66: DUP1 00002f67: MLOAD 00002f68: DUP3 00002f69: MSTORE 00002f6a: PUSH1 0x1f 00002f6c: NOT 00002f6d: SWAP1 00002f6e: SWAP3 00002f6f: ADD 00002f70: SWAP2 00002f71: PUSH1 0x20 00002f73: SWAP2 00002f74: DUP3 00002f75: ADD 00002f76: SWAP2 00002f77: ADD 00002f78: PUSH2 0x2f5d 00002f7b: JUMP 00002f7c: JUMPDEST 00002f7d: PUSH1 0x01 00002f7f: DUP4 00002f80: PUSH1 0x20 00002f82: SUB 00002f83: PUSH2 0x0100 00002f86: EXP 00002f87: SUB 00002f88: DUP1 00002f89: NOT 00002f8a: DUP3 00002f8b: MLOAD 00002f8c: AND 00002f8d: DUP2 00002f8e: DUP5 00002f8f: MLOAD 00002f90: AND 00002f91: DUP1 00002f92: DUP3 00002f93: OR 00002f94: DUP6 00002f95: MSTORE 00002f96: POP 00002f97: POP 00002f98: POP 00002f99: POP 00002f9a: POP 00002f9b: POP 00002f9c: SWAP1 00002f9d: POP 00002f9e: ADD 00002f9f: SWAP3 00002fa0: POP 00002fa1: POP 00002fa2: POP 00002fa3: PUSH1 0x40 00002fa5: MLOAD 00002fa6: PUSH1 0x20 00002fa8: DUP2 00002fa9: DUP4 00002faa: SUB 00002fab: SUB 00002fac: DUP2 00002fad: MSTORE 00002fae: SWAP1 00002faf: PUSH1 0x40 00002fb1: MSTORE 00002fb2: SWAP1 00002fb3: POP 00002fb4: JUMPDEST 00002fb5: PUSH1 0x01 00002fb7: PUSH1 0x01 00002fb9: PUSH1 0xa0 00002fbb: SHL 00002fbc: SUB 00002fbd: DUP4 00002fbe: AND 00002fbf: PUSH1 0x00 00002fc1: SWAP1 00002fc2: DUP2 00002fc3: MSTORE 00002fc4: PUSH1 0x02 00002fc6: PUSH1 0x20 00002fc8: MSTORE 00002fc9: PUSH1 0x40 00002fcb: SWAP1 00002fcc: KECCAK256 00002fcd: PUSH2 0x2fd6 00002fd0: SWAP1 00002fd1: DUP3 00002fd2: PUSH2 0x3385 00002fd5: JUMP 00002fd6: JUMPDEST 00002fd7: POP 00002fd8: POP 00002fd9: POP 00002fda: JUMP 00002fdb: JUMPDEST 00002fdc: PUSH1 0x00 00002fde: DUP1 00002fdf: PUSH2 0x302f 00002fe2: DUP8 00002fe3: PUSH1 0x03 00002fe5: DUP2 00002fe6: GT 00002fe7: ISZERO 00002fe8: PUSH2 0x2fed 00002feb: JUMPI 00002fec: INVALID 00002fed: JUMPDEST 00002fee: DUP8 00002fef: DUP8 00002ff0: PUSH1 0x40 00002ff2: MLOAD 00002ff3: PUSH1 0x20 00002ff5: ADD 00002ff6: DUP1 00002ff7: DUP5 00002ff8: PUSH1 0xff 00002ffa: AND 00002ffb: PUSH1 0xff 00002ffd: AND 00002ffe: PUSH1 0xf8 00003000: SHL 00003001: DUP2 00003002: MSTORE 00003003: PUSH1 0x01 00003005: ADD 00003006: DUP4 00003007: DUP1 00003008: MLOAD 00003009: SWAP1 0000300a: PUSH1 0x20 0000300c: ADD 0000300d: SWAP1 0000300e: DUP1 0000300f: DUP4 00003010: DUP4 00003011: PUSH1 0x20 00003013: DUP4 00003014: LT 00003015: PUSH2 0x28ea 00003018: JUMPI 00003019: DUP1 0000301a: MLOAD 0000301b: DUP3 0000301c: MSTORE 0000301d: PUSH1 0x1f 0000301f: NOT 00003020: SWAP1 00003021: SWAP3 00003022: ADD 00003023: SWAP2 00003024: PUSH1 0x20 00003026: SWAP2 00003027: DUP3 00003028: ADD 00003029: SWAP2 0000302a: ADD 0000302b: PUSH2 0x28cb 0000302e: JUMP 0000302f: JUMPDEST 00003030: SWAP1 00003031: POP 00003032: DUP5 00003033: PUSH1 0x01 00003035: PUSH1 0x01 00003037: PUSH1 0xa0 00003039: SHL 0000303a: SUB 0000303b: AND 0000303c: PUSH2 0x3045 0000303f: DUP3 00003040: DUP7 00003041: PUSH2 0x3a25 00003044: JUMP 00003045: JUMPDEST 00003046: PUSH1 0x01 00003048: PUSH1 0x01 0000304a: PUSH1 0xa0 0000304c: SHL 0000304d: SUB 0000304e: AND 0000304f: EQ 00003050: PUSH2 0x305d 00003053: JUMPI 00003054: PUSH1 0x00 00003056: SWAP2 00003057: POP 00003058: POP 00003059: PUSH2 0x3075 0000305c: JUMP 0000305d: JUMPDEST 0000305e: PUSH2 0x3071 00003061: PUSH2 0x306a 00003064: DUP3 00003065: DUP6 00003066: PUSH2 0x3a25 00003069: JUMP 0000306a: JUMPDEST 0000306b: PUSH1 0x00 0000306d: PUSH2 0x0b79 00003070: JUMP 00003071: JUMPDEST 00003072: SWAP2 00003073: POP 00003074: POP 00003075: JUMPDEST 00003076: SWAP6 00003077: SWAP5 00003078: POP 00003079: POP 0000307a: POP 0000307b: POP 0000307c: POP 0000307d: JUMP 0000307e: JUMPDEST 0000307f: PUSH2 0xffff 00003082: DUP3 00003083: AND 00003084: PUSH2 0x30d2 00003087: JUMPI 00003088: PUSH1 0x40 0000308a: MLOAD 0000308b: PUSH1 0x01 0000308d: PUSH1 0x01 0000308f: PUSH1 0xa0 00003091: SHL 00003092: SUB 00003093: DUP5 00003094: AND 00003095: SWAP1 00003096: PUSH5 0x02540be400 0000309c: PUSH1 0x01 0000309e: PUSH1 0x01 000030a0: PUSH1 0x40 000030a2: SHL 000030a3: SUB 000030a4: DUP5 000030a5: AND 000030a6: MUL 000030a7: DUP1 000030a8: ISZERO 000030a9: PUSH2 0x08fc 000030ac: MUL 000030ad: SWAP2 000030ae: PUSH1 0x00 000030b0: DUP2 000030b1: DUP2 000030b2: DUP2 000030b3: DUP6 000030b4: DUP9 000030b5: DUP9 000030b6: CALL 000030b7: SWAP4 000030b8: POP 000030b9: POP 000030ba: POP 000030bb: POP 000030bc: ISZERO 000030bd: DUP1 000030be: ISZERO 000030bf: PUSH2 0x30cc 000030c2: JUMPI 000030c3: RETURNDATASIZE 000030c4: PUSH1 0x00 000030c6: DUP1 000030c7: RETURNDATACOPY 000030c8: RETURNDATASIZE 000030c9: PUSH1 0x00 000030cb: REVERT 000030cc: JUMPDEST 000030cd: POP 000030ce: PUSH2 0x2fd6 000030d1: JUMP 000030d2: JUMPDEST 000030d3: PUSH1 0x00 000030d5: PUSH2 0x30dd 000030d8: DUP4 000030d9: PUSH2 0x3b35 000030dc: JUMP 000030dd: JUMPDEST 000030de: SWAP1 000030df: POP 000030e0: DUP1 000030e1: PUSH1 0x00 000030e3: PUSH2 0x30eb 000030e6: DUP6 000030e7: PUSH2 0x3b54 000030ea: JUMP 000030eb: JUMPDEST 000030ec: SWAP1 000030ed: POP 000030ee: PUSH1 0x01 000030f0: PUSH1 0x01 000030f2: PUSH1 0x40 000030f4: SHL 000030f5: SUB 000030f6: DUP5 000030f7: AND 000030f8: PUSH1 0x08 000030fa: PUSH1 0xff 000030fc: DUP4 000030fd: AND 000030fe: LT 000030ff: ISZERO 00003100: PUSH2 0x3119 00003103: JUMPI 00003104: DUP2 00003105: PUSH1 0x08 00003107: SUB 00003108: PUSH1 0xff 0000310a: AND 0000310b: PUSH1 0x0a 0000310d: EXP 0000310e: DUP2 0000310f: DUP2 00003110: PUSH2 0x3115 00003113: JUMPI 00003114: INVALID 00003115: JUMPDEST 00003116: DIV 00003117: SWAP1 00003118: POP 00003119: JUMPDEST 0000311a: PUSH1 0x08 0000311c: DUP3 0000311d: PUSH1 0xff 0000311f: AND 00003120: GT 00003121: ISZERO 00003122: PUSH2 0x3132 00003125: JUMPI 00003126: PUSH1 0xff 00003128: PUSH1 0x07 0000312a: NOT 0000312b: DUP4 0000312c: ADD 0000312d: AND 0000312e: PUSH1 0x0a 00003130: EXP 00003131: MUL 00003132: JUMPDEST 00003133: PUSH1 0x40 00003135: DUP1 00003136: MLOAD 00003137: PUSH4 0xa9059cbb 0000313c: PUSH1 0xe0 0000313e: SHL 0000313f: DUP2 00003140: MSTORE 00003141: PUSH1 0x01 00003143: PUSH1 0x01 00003145: PUSH1 0xa0 00003147: SHL 00003148: SUB 00003149: DUP10 0000314a: DUP2 0000314b: AND 0000314c: PUSH1 0x04 0000314e: DUP4 0000314f: ADD 00003150: MSTORE 00003151: PUSH1 0x24 00003153: DUP3 00003154: ADD 00003155: DUP5 00003156: SWAP1 00003157: MSTORE 00003158: SWAP2 00003159: MLOAD 0000315a: PUSH1 0x00 0000315c: SWAP3 0000315d: DUP7 0000315e: AND 0000315f: SWAP2 00003160: PUSH4 0xa9059cbb 00003165: SWAP2 00003166: PUSH1 0x44 00003168: DUP1 00003169: DUP4 0000316a: ADD 0000316b: SWAP3 0000316c: PUSH1 0x20 0000316e: SWAP3 0000316f: SWAP2 00003170: SWAP1 00003171: DUP3 00003172: SWAP1 00003173: SUB 00003174: ADD 00003175: DUP2 00003176: DUP8 00003177: DUP8 00003178: DUP1 00003179: EXTCODESIZE 0000317a: ISZERO 0000317b: DUP1 0000317c: ISZERO 0000317d: PUSH2 0x3185 00003180: JUMPI 00003181: PUSH1 0x00 00003183: DUP1 00003184: REVERT 00003185: JUMPDEST 00003186: POP 00003187: GAS 00003188: CALL 00003189: ISZERO 0000318a: DUP1 0000318b: ISZERO 0000318c: PUSH2 0x3199 0000318f: JUMPI 00003190: RETURNDATASIZE 00003191: PUSH1 0x00 00003193: DUP1 00003194: RETURNDATACOPY 00003195: RETURNDATASIZE 00003196: PUSH1 0x00 00003198: REVERT 00003199: JUMPDEST 0000319a: POP 0000319b: POP 0000319c: POP 0000319d: POP 0000319e: PUSH1 0x40 000031a0: MLOAD 000031a1: RETURNDATASIZE 000031a2: PUSH1 0x20 000031a4: DUP2 000031a5: LT 000031a6: ISZERO 000031a7: PUSH2 0x31af 000031aa: JUMPI 000031ab: PUSH1 0x00 000031ad: DUP1 000031ae: REVERT 000031af: JUMPDEST 000031b0: POP 000031b1: MLOAD 000031b2: SWAP1 000031b3: POP 000031b4: DUP1 000031b5: PUSH2 0x3205 000031b8: JUMPI 000031b9: PUSH1 0x40 000031bb: DUP1 000031bc: MLOAD 000031bd: PUSH3 0x461bcd 000031c1: PUSH1 0xe5 000031c3: SHL 000031c4: DUP2 000031c5: MSTORE 000031c6: PUSH1 0x20 000031c8: PUSH1 0x04 000031ca: DUP3 000031cb: ADD 000031cc: MSTORE 000031cd: PUSH1 0x18 000031cf: PUSH1 0x24 000031d1: DUP3 000031d2: ADD 000031d3: MSTORE 000031d4: PUSH32 0x436f756c64206e6f74207472616e736665722066756e64730000000000000000 000031f5: PUSH1 0x44 000031f7: DUP3 000031f8: ADD 000031f9: MSTORE 000031fa: SWAP1 000031fb: MLOAD 000031fc: SWAP1 000031fd: DUP2 000031fe: SWAP1 000031ff: SUB 00003200: PUSH1 0x64 00003202: ADD 00003203: SWAP1 00003204: REVERT 00003205: JUMPDEST 00003206: POP 00003207: POP 00003208: POP 00003209: POP 0000320a: POP 0000320b: POP 0000320c: POP 0000320d: POP 0000320e: JUMP 0000320f: JUMPDEST 00003210: PUSH2 0x321e 00003213: PUSH1 0x01 00003215: DUP7 00003216: DUP7 00003217: DUP7 00003218: DUP7 00003219: DUP7 0000321a: PUSH2 0x3b6f 0000321d: JUMP 0000321e: JUMPDEST 0000321f: PUSH2 0x3263 00003222: JUMPI 00003223: PUSH1 0x40 00003225: DUP1 00003226: MLOAD 00003227: PUSH3 0x461bcd 0000322b: PUSH1 0xe5 0000322d: SHL 0000322e: DUP2 0000322f: MSTORE 00003230: PUSH1 0x20 00003232: PUSH1 0x04 00003234: DUP3 00003235: ADD 00003236: MSTORE 00003237: PUSH1 0x11 00003239: PUSH1 0x24 0000323b: DUP3 0000323c: ADD 0000323d: MSTORE 0000323e: PUSH17 0x496e76616c6964207369676e6174757265 00003250: PUSH1 0x78 00003252: SHL 00003253: PUSH1 0x44 00003255: DUP3 00003256: ADD 00003257: MSTORE 00003258: SWAP1 00003259: MLOAD 0000325a: SWAP1 0000325b: DUP2 0000325c: SWAP1 0000325d: SUB 0000325e: PUSH1 0x64 00003260: ADD 00003261: SWAP1 00003262: REVERT 00003263: JUMPDEST 00003264: POP 00003265: POP 00003266: POP 00003267: POP 00003268: POP 00003269: JUMP 0000326a: JUMPDEST 0000326b: DUP6 0000326c: MLOAD 0000326d: DUP6 0000326e: MLOAD 0000326f: PUSH4 0x05f5e100 00003274: PUSH1 0x01 00003276: PUSH1 0x01 00003278: PUSH1 0x40 0000327a: SHL 0000327b: SUB 0000327c: DUP8 0000327d: DUP2 0000327e: AND 0000327f: DUP7 00003280: DUP3 00003281: AND 00003282: DUP2 00003283: MUL 00003284: DUP4 00003285: SWAP1 00003286: DIV 00003287: SWAP5 00003288: SWAP2 00003289: DUP9 0000328a: AND 0000328b: MUL 0000328c: SWAP2 0000328d: SWAP1 0000328e: SWAP2 0000328f: DIV 00003290: SWAP2 00003291: PUSH2 0x32a6 00003294: SWAP2 00003295: DUP12 00003296: SWAP2 00003297: PUSH4 0xffffffff 0000329c: AND 0000329d: DUP6 0000329e: DUP11 0000329f: DUP9 000032a0: PUSH1 0x00 000032a2: PUSH2 0x3ca3 000032a5: JUMP 000032a6: JUMPDEST 000032a7: PUSH1 0x20 000032a9: DUP1 000032aa: DUP10 000032ab: ADD 000032ac: MLOAD 000032ad: SWAP1 000032ae: DUP9 000032af: ADD 000032b0: MLOAD 000032b1: PUSH2 0x32c6 000032b4: SWAP2 000032b5: DUP12 000032b6: SWAP2 000032b7: PUSH4 0xffffffff 000032bc: AND 000032bd: DUP6 000032be: DUP6 000032bf: DUP9 000032c0: PUSH1 0x01 000032c2: PUSH2 0x3ca3 000032c5: JUMP 000032c6: JUMPDEST 000032c7: PUSH32 0x83894d4e8b2a45cbd6d36fa4cfdf5ec3c73257f8a4dcac4af7c380e887ec513b 000032e8: DUP10 000032e9: DUP10 000032ea: PUSH1 0x00 000032ec: PUSH1 0x20 000032ee: MUL 000032ef: ADD 000032f0: MLOAD 000032f1: DUP11 000032f2: PUSH1 0x01 000032f4: PUSH1 0x20 000032f6: MUL 000032f7: ADD 000032f8: MLOAD 000032f9: DUP11 000032fa: PUSH1 0x00 000032fc: PUSH1 0x20 000032fe: MUL 000032ff: ADD 00003300: MLOAD 00003301: DUP12 00003302: PUSH1 0x01 00003304: PUSH1 0x20 00003306: SWAP1 00003307: DUP2 00003308: MUL 00003309: SWAP2 0000330a: SWAP1 0000330b: SWAP2 0000330c: ADD 0000330d: MLOAD 0000330e: PUSH1 0x40 00003310: DUP1 00003311: MLOAD 00003312: PUSH1 0x01 00003314: PUSH1 0x01 00003316: PUSH1 0xa0 00003318: SHL 00003319: SUB 0000331a: SWAP1 0000331b: SWAP8 0000331c: AND 0000331d: DUP8 0000331e: MSTORE 0000331f: PUSH2 0xffff 00003322: SWAP6 00003323: DUP7 00003324: AND 00003325: SWAP3 00003326: DUP8 00003327: ADD 00003328: SWAP3 00003329: SWAP1 0000332a: SWAP3 0000332b: MSTORE 0000332c: SWAP3 0000332d: SWAP1 0000332e: SWAP4 0000332f: AND 00003330: DUP5 00003331: DUP5 00003332: ADD 00003333: MSTORE 00003334: PUSH4 0xffffffff 00003339: SWAP1 0000333a: DUP2 0000333b: AND 0000333c: PUSH1 0x60 0000333e: DUP6 0000333f: ADD 00003340: MSTORE 00003341: SWAP1 00003342: DUP2 00003343: AND 00003344: PUSH1 0x80 00003346: DUP5 00003347: ADD 00003348: MSTORE 00003349: DUP7 0000334a: AND 0000334b: PUSH1 0xa0 0000334d: DUP4 0000334e: ADD 0000334f: MSTORE 00003350: PUSH1 0x01 00003352: PUSH1 0x01 00003354: PUSH1 0x40 00003356: SHL 00003357: SUB 00003358: DUP1 00003359: DUP11 0000335a: AND 0000335b: PUSH1 0xc0 0000335d: DUP5 0000335e: ADD 0000335f: MSTORE 00003360: DUP1 00003361: DUP10 00003362: AND 00003363: PUSH1 0xe0 00003365: DUP5 00003366: ADD 00003367: MSTORE 00003368: DUP8 00003369: AND 0000336a: PUSH2 0x0100 0000336d: DUP4 0000336e: ADD 0000336f: MSTORE 00003370: MLOAD 00003371: SWAP1 00003372: DUP2 00003373: SWAP1 00003374: SUB 00003375: PUSH2 0x0120 00003378: ADD 00003379: SWAP1 0000337a: LOG1 0000337b: POP 0000337c: POP 0000337d: POP 0000337e: POP 0000337f: POP 00003380: POP 00003381: POP 00003382: POP 00003383: POP 00003384: JUMP 00003385: JUMPDEST 00003386: DUP2 00003387: SLOAD 00003388: PUSH1 0x02 0000338a: PUSH1 0x01 0000338c: DUP1 0000338d: DUP4 0000338e: AND 0000338f: ISZERO 00003390: PUSH2 0x0100 00003393: MUL 00003394: SUB 00003395: DUP3 00003396: AND 00003397: DIV 00003398: DUP3 00003399: MLOAD 0000339a: DUP1 0000339b: DUP3 0000339c: ADD 0000339d: PUSH1 0x20 0000339f: DUP2 000033a0: LT 000033a1: PUSH1 0x20 000033a3: DUP5 000033a4: LT 000033a5: ADD 000033a6: PUSH1 0x02 000033a8: DUP2 000033a9: EQ 000033aa: PUSH2 0x3433 000033ad: JUMPI 000033ae: PUSH1 0x01 000033b0: DUP2 000033b1: EQ 000033b2: PUSH2 0x3458 000033b5: JUMPI 000033b6: DUP7 000033b7: PUSH1 0x00 000033b9: MSTORE 000033ba: PUSH1 0x20 000033bc: DUP5 000033bd: DIV 000033be: PUSH1 0x20 000033c0: PUSH1 0x00 000033c2: KECCAK256 000033c3: ADD 000033c4: PUSH1 0x01 000033c6: PUSH1 0x02 000033c8: DUP5 000033c9: MUL 000033ca: ADD 000033cb: DUP9 000033cc: SSTORE 000033cd: PUSH1 0x20 000033cf: DUP6 000033d0: MOD 000033d1: PUSH1 0x20 000033d3: DUP6 000033d4: MOD 000033d5: DUP2 000033d6: PUSH1 0x20 000033d8: SUB 000033d9: DUP1 000033da: DUP11 000033db: ADD 000033dc: DUP8 000033dd: DUP12 000033de: ADD 000033df: PUSH1 0x01 000033e1: DUP4 000033e2: PUSH2 0x0100 000033e5: EXP 000033e6: SUB 000033e7: DUP1 000033e8: DUP4 000033e9: MLOAD 000033ea: AND 000033eb: DUP8 000033ec: SLOAD 000033ed: ADD 000033ee: DUP8 000033ef: SSTORE 000033f0: PUSH1 0x01 000033f2: DUP8 000033f3: ADD 000033f4: SWAP7 000033f5: POP 000033f6: PUSH1 0x20 000033f8: DUP4 000033f9: ADD 000033fa: SWAP3 000033fb: POP 000033fc: JUMPDEST 000033fd: DUP2 000033fe: DUP4 000033ff: LT 00003400: ISZERO 00003401: PUSH2 0x3419 00003404: JUMPI 00003405: DUP3 00003406: MLOAD 00003407: DUP8 00003408: SSTORE 00003409: PUSH1 0x01 0000340b: DUP8 0000340c: ADD 0000340d: SWAP7 0000340e: POP 0000340f: PUSH1 0x20 00003411: DUP4 00003412: ADD 00003413: SWAP3 00003414: POP 00003415: PUSH2 0x33fc 00003418: JUMP 00003419: JUMPDEST 0000341a: POP 0000341b: DUP2 0000341c: MLOAD 0000341d: SWAP2 0000341e: SUB 0000341f: PUSH2 0x0100 00003422: EXP 00003423: SWAP1 00003424: DUP2 00003425: SWAP1 00003426: DIV 00003427: MUL 00003428: SWAP1 00003429: SWAP4 0000342a: SSTORE 0000342b: POP 0000342c: PUSH2 0x34ca 0000342f: SWAP2 00003430: POP 00003431: POP 00003432: JUMP 00003433: JUMPDEST 00003434: PUSH1 0x02 00003436: DUP4 00003437: MUL 00003438: DUP3 00003439: PUSH1 0x20 0000343b: SUB 0000343c: PUSH2 0x0100 0000343f: EXP 00003440: DUP5 00003441: PUSH1 0x20 00003443: SUB 00003444: PUSH2 0x0100 00003447: EXP 00003448: PUSH1 0x20 0000344a: DUP10 0000344b: ADD 0000344c: MLOAD 0000344d: DIV 0000344e: MUL 0000344f: ADD 00003450: DUP6 00003451: ADD 00003452: DUP8 00003453: SSTORE 00003454: PUSH2 0x34ca 00003457: JUMP 00003458: JUMPDEST 00003459: DUP7 0000345a: PUSH1 0x00 0000345c: MSTORE 0000345d: PUSH1 0x20 0000345f: DUP5 00003460: DIV 00003461: PUSH1 0x20 00003463: PUSH1 0x00 00003465: KECCAK256 00003466: ADD 00003467: PUSH1 0x01 00003469: PUSH1 0x02 0000346b: DUP5 0000346c: MUL 0000346d: ADD 0000346e: DUP9 0000346f: SSTORE 00003470: DUP5 00003471: PUSH1 0x20 00003473: SUB 00003474: DUP1 00003475: DUP9 00003476: ADD 00003477: DUP6 00003478: DUP10 00003479: ADD 0000347a: PUSH1 0x01 0000347c: DUP4 0000347d: PUSH2 0x0100 00003480: EXP 00003481: SUB 00003482: DUP1 00003483: DUP4 00003484: MLOAD 00003485: AND 00003486: PUSH1 0xff 00003488: NOT 00003489: DUP12 0000348a: AND 0000348b: ADD 0000348c: DUP6 0000348d: SSTORE 0000348e: PUSH1 0x20 00003490: DUP4 00003491: ADD 00003492: SWAP3 00003493: POP 00003494: PUSH1 0x01 00003496: DUP6 00003497: ADD 00003498: SWAP5 00003499: POP 0000349a: JUMPDEST 0000349b: DUP2 0000349c: DUP4 0000349d: LT 0000349e: ISZERO 0000349f: PUSH2 0x34b7 000034a2: JUMPI 000034a3: DUP3 000034a4: MLOAD 000034a5: DUP6 000034a6: SSTORE 000034a7: PUSH1 0x01 000034a9: DUP6 000034aa: ADD 000034ab: SWAP5 000034ac: POP 000034ad: PUSH1 0x20 000034af: DUP4 000034b0: ADD 000034b1: SWAP3 000034b2: POP 000034b3: PUSH2 0x349a 000034b6: JUMP 000034b7: JUMPDEST 000034b8: POP 000034b9: DUP2 000034ba: MLOAD 000034bb: SWAP2 000034bc: SUB 000034bd: PUSH2 0x0100 000034c0: EXP 000034c1: SWAP1 000034c2: DUP2 000034c3: SWAP1 000034c4: DIV 000034c5: MUL 000034c6: SWAP1 000034c7: SWAP2 000034c8: SSTORE 000034c9: POP 000034ca: JUMPDEST 000034cb: POP 000034cc: POP 000034cd: POP 000034ce: POP 000034cf: POP 000034d0: POP 000034d1: POP 000034d2: JUMP 000034d3: JUMPDEST 000034d4: PUSH1 0x01 000034d6: PUSH1 0x01 000034d8: PUSH1 0xa0 000034da: SHL 000034db: SUB 000034dc: DUP3 000034dd: AND 000034de: PUSH1 0x00 000034e0: SWAP1 000034e1: DUP2 000034e2: MSTORE 000034e3: PUSH1 0x02 000034e5: PUSH1 0x20 000034e7: DUP2 000034e8: SWAP1 000034e9: MSTORE 000034ea: PUSH1 0x40 000034ec: SWAP1 000034ed: SWAP2 000034ee: KECCAK256 000034ef: SLOAD 000034f0: PUSH1 0x00 000034f2: NOT 000034f3: PUSH2 0x0100 000034f6: PUSH1 0x01 000034f8: DUP4 000034f9: AND 000034fa: ISZERO 000034fb: MUL 000034fc: ADD 000034fd: AND 000034fe: DIV 000034ff: PUSH2 0x3507 00003502: JUMPI 00003503: PUSH2 0x360f 00003506: JUMP 00003507: JUMPDEST 00003508: DUP1 00003509: PUSH1 0x01 0000350b: DUP2 0000350c: GT 0000350d: ISZERO 0000350e: PUSH2 0x3513 00003511: JUMPI 00003512: INVALID 00003513: JUMPDEST 00003514: PUSH1 0xff 00003516: AND 00003517: PUSH1 0x02 00003519: PUSH1 0xff 0000351b: AND 0000351c: EXP 0000351d: PUSH1 0xff 0000351f: SUB 00003520: PUSH1 0x02 00003522: PUSH1 0x00 00003524: DUP5 00003525: PUSH1 0x01 00003527: PUSH1 0x01 00003529: PUSH1 0xa0 0000352b: SHL 0000352c: SUB 0000352d: AND 0000352e: PUSH1 0x01 00003530: PUSH1 0x01 00003532: PUSH1 0xa0 00003534: SHL 00003535: SUB 00003536: AND 00003537: DUP2 00003538: MSTORE 00003539: PUSH1 0x20 0000353b: ADD 0000353c: SWAP1 0000353d: DUP2 0000353e: MSTORE 0000353f: PUSH1 0x20 00003541: ADD 00003542: PUSH1 0x00 00003544: KECCAK256 00003545: PUSH1 0x00 00003547: DUP2 00003548: SLOAD 00003549: PUSH1 0x01 0000354b: DUP2 0000354c: PUSH1 0x01 0000354e: AND 0000354f: ISZERO 00003550: PUSH2 0x0100 00003553: MUL 00003554: SUB 00003555: AND 00003556: PUSH1 0x02 00003558: SWAP1 00003559: DIV 0000355a: DUP2 0000355b: LT 0000355c: PUSH2 0x3561 0000355f: JUMPI 00003560: INVALID 00003561: JUMPDEST 00003562: DUP2 00003563: SLOAD 00003564: PUSH1 0x01 00003566: AND 00003567: ISZERO 00003568: PUSH2 0x3580 0000356b: JUMPI 0000356c: SWAP1 0000356d: PUSH1 0x00 0000356f: MSTORE 00003570: PUSH1 0x20 00003572: PUSH1 0x00 00003574: KECCAK256 00003575: SWAP1 00003576: PUSH1 0x20 00003578: SWAP2 00003579: DUP3 0000357a: DUP3 0000357b: DIV 0000357c: ADD 0000357d: SWAP2 0000357e: SWAP1 0000357f: MOD 00003580: JUMPDEST 00003581: SWAP1 00003582: SLOAD 00003583: SWAP1 00003584: BYTE 00003585: PUSH1 0x01 00003587: PUSH1 0xf8 00003589: SHL 0000358a: MUL 0000358b: PUSH1 0xf8 0000358d: SHR 0000358e: AND 0000358f: PUSH1 0xf8 00003591: SHL 00003592: PUSH1 0x02 00003594: PUSH1 0x00 00003596: DUP5 00003597: PUSH1 0x01 00003599: PUSH1 0x01 0000359b: PUSH1 0xa0 0000359d: SHL 0000359e: SUB 0000359f: AND 000035a0: PUSH1 0x01 000035a2: PUSH1 0x01 000035a4: PUSH1 0xa0 000035a6: SHL 000035a7: SUB 000035a8: AND 000035a9: DUP2 000035aa: MSTORE 000035ab: PUSH1 0x20 000035ad: ADD 000035ae: SWAP1 000035af: DUP2 000035b0: MSTORE 000035b1: PUSH1 0x20 000035b3: ADD 000035b4: PUSH1 0x00 000035b6: KECCAK256 000035b7: PUSH1 0x00 000035b9: DUP2 000035ba: SLOAD 000035bb: PUSH1 0x01 000035bd: DUP2 000035be: PUSH1 0x01 000035c0: AND 000035c1: ISZERO 000035c2: PUSH2 0x0100 000035c5: MUL 000035c6: SUB 000035c7: AND 000035c8: PUSH1 0x02 000035ca: SWAP1 000035cb: DIV 000035cc: DUP2 000035cd: LT 000035ce: PUSH2 0x35d3 000035d1: JUMPI 000035d2: INVALID 000035d3: JUMPDEST 000035d4: DUP2 000035d5: SLOAD 000035d6: PUSH1 0x01 000035d8: AND 000035d9: ISZERO 000035da: PUSH2 0x35f2 000035dd: JUMPI 000035de: SWAP1 000035df: PUSH1 0x00 000035e1: MSTORE 000035e2: PUSH1 0x20 000035e4: PUSH1 0x00 000035e6: KECCAK256 000035e7: SWAP1 000035e8: PUSH1 0x20 000035ea: SWAP2 000035eb: DUP3 000035ec: DUP3 000035ed: DIV 000035ee: ADD 000035ef: SWAP2 000035f0: SWAP1 000035f1: MOD 000035f2: JUMPDEST 000035f3: PUSH1 0x1f 000035f5: SUB 000035f6: PUSH2 0x0100 000035f9: EXP 000035fa: DUP2 000035fb: SLOAD 000035fc: DUP2 000035fd: PUSH1 0xff 000035ff: MUL 00003600: NOT 00003601: AND 00003602: SWAP1 00003603: PUSH1 0x01 00003605: PUSH1 0xf8 00003607: SHL 00003608: DUP5 00003609: DIV 0000360a: MUL 0000360b: OR 0000360c: SWAP1 0000360d: SSTORE 0000360e: POP 0000360f: JUMPDEST 00003610: POP 00003611: POP 00003612: JUMP 00003613: JUMPDEST 00003614: PUSH1 0x01 00003616: PUSH1 0x01 00003618: PUSH1 0xa0 0000361a: SHL 0000361b: SUB 0000361c: DUP3 0000361d: AND 0000361e: PUSH1 0x00 00003620: SWAP1 00003621: DUP2 00003622: MSTORE 00003623: PUSH1 0x02 00003625: PUSH1 0x20 00003627: DUP2 00003628: SWAP1 00003629: MSTORE 0000362a: PUSH1 0x40 0000362c: SWAP1 0000362d: SWAP2 0000362e: KECCAK256 0000362f: SLOAD 00003630: PUSH1 0x00 00003632: NOT 00003633: PUSH2 0x0100 00003636: PUSH1 0x01 00003638: DUP4 00003639: AND 0000363a: ISZERO 0000363b: MUL 0000363c: ADD 0000363d: AND 0000363e: DIV 0000363f: PUSH2 0x3707 00003642: JUMPI 00003643: PUSH1 0x01 00003645: PUSH1 0x01 00003647: PUSH1 0xa0 00003649: SHL 0000364a: SUB 0000364b: DUP3 0000364c: AND 0000364d: PUSH1 0x00 0000364f: SWAP1 00003650: DUP2 00003651: MSTORE 00003652: PUSH1 0x02 00003654: PUSH1 0x20 00003656: MSTORE 00003657: PUSH1 0x40 00003659: SWAP1 0000365a: KECCAK256 0000365b: DUP2 0000365c: PUSH1 0x01 0000365e: DUP2 0000365f: GT 00003660: ISZERO 00003661: PUSH2 0x3666 00003664: JUMPI 00003665: INVALID 00003666: JUMPDEST 00003667: PUSH1 0xff 00003669: AND 0000366a: PUSH1 0x02 0000366c: PUSH1 0xff 0000366e: AND 0000366f: EXP 00003670: PUSH1 0xf8 00003672: SHL 00003673: SWAP1 00003674: DUP1 00003675: DUP1 00003676: SLOAD 00003677: PUSH1 0x3f 00003679: DUP2 0000367a: AND 0000367b: DUP1 0000367c: PUSH1 0x3e 0000367e: DUP2 0000367f: EQ 00003680: PUSH2 0x36a3 00003683: JUMPI 00003684: PUSH1 0x02 00003686: DUP4 00003687: ADD 00003688: DUP5 00003689: SSTORE 0000368a: PUSH1 0x01 0000368c: DUP4 0000368d: AND 0000368e: PUSH2 0x3695 00003691: JUMPI 00003692: DUP2 00003693: SWAP3 00003694: POP 00003695: JUMPDEST 00003696: PUSH1 0x01 00003698: PUSH1 0x02 0000369a: DUP5 0000369b: DIV 0000369c: ADD 0000369d: SWAP4 0000369e: POP 0000369f: PUSH2 0x36bb 000036a2: JUMP 000036a3: JUMPDEST 000036a4: PUSH1 0x00 000036a6: DUP5 000036a7: DUP2 000036a8: MSTORE 000036a9: PUSH1 0x20 000036ab: SWAP1 000036ac: DUP2 000036ad: SWAP1 000036ae: KECCAK256 000036af: PUSH1 0xff 000036b1: NOT 000036b2: DUP6 000036b3: AND 000036b4: SWAP1 000036b5: SSTORE 000036b6: PUSH1 0x41 000036b8: SWAP1 000036b9: SWAP5 000036ba: SSTORE 000036bb: JUMPDEST 000036bc: POP 000036bd: POP 000036be: POP 000036bf: SWAP1 000036c0: PUSH1 0x01 000036c2: DUP3 000036c3: SUB 000036c4: DUP2 000036c5: SLOAD 000036c6: PUSH1 0x01 000036c8: AND 000036c9: ISZERO 000036ca: PUSH2 0x36e2 000036cd: JUMPI 000036ce: SWAP1 000036cf: PUSH1 0x00 000036d1: MSTORE 000036d2: PUSH1 0x20 000036d4: PUSH1 0x00 000036d6: KECCAK256 000036d7: SWAP1 000036d8: PUSH1 0x20 000036da: SWAP2 000036db: DUP3 000036dc: DUP3 000036dd: DIV 000036de: ADD 000036df: SWAP2 000036e0: SWAP1 000036e1: MOD 000036e2: JUMPDEST 000036e3: SWAP1 000036e4: SWAP2 000036e5: SWAP3 000036e6: SWAP1 000036e7: SWAP2 000036e8: SWAP1 000036e9: SWAP2 000036ea: PUSH1 0x1f 000036ec: SUB 000036ed: PUSH2 0x0100 000036f0: EXP 000036f1: DUP2 000036f2: SLOAD 000036f3: DUP2 000036f4: PUSH1 0xff 000036f6: MUL 000036f7: NOT 000036f8: AND 000036f9: SWAP1 000036fa: PUSH1 0x01 000036fc: PUSH1 0xf8 000036fe: SHL 000036ff: DUP5 00003700: DIV 00003701: MUL 00003702: OR 00003703: SWAP1 00003704: SSTORE 00003705: POP 00003706: POP 00003707: JUMPDEST 00003708: DUP1 00003709: PUSH1 0x01 0000370b: DUP2 0000370c: GT 0000370d: ISZERO 0000370e: PUSH2 0x3713 00003711: JUMPI 00003712: INVALID 00003713: JUMPDEST 00003714: PUSH1 0xff 00003716: AND 00003717: PUSH1 0x02 00003719: PUSH1 0xff 0000371b: AND 0000371c: EXP 0000371d: PUSH1 0x02 0000371f: PUSH1 0x00 00003721: DUP5 00003722: PUSH1 0x01 00003724: PUSH1 0x01 00003726: PUSH1 0xa0 00003728: SHL 00003729: SUB 0000372a: AND 0000372b: PUSH1 0x01 0000372d: PUSH1 0x01 0000372f: PUSH1 0xa0 00003731: SHL 00003732: SUB 00003733: AND 00003734: DUP2 00003735: MSTORE 00003736: PUSH1 0x20 00003738: ADD 00003739: SWAP1 0000373a: DUP2 0000373b: MSTORE 0000373c: PUSH1 0x20 0000373e: ADD 0000373f: PUSH1 0x00 00003741: KECCAK256 00003742: PUSH1 0x00 00003744: DUP2 00003745: SLOAD 00003746: PUSH1 0x01 00003748: DUP2 00003749: PUSH1 0x01 0000374b: AND 0000374c: ISZERO 0000374d: PUSH2 0x0100 00003750: MUL 00003751: SUB 00003752: AND 00003753: PUSH1 0x02 00003755: SWAP1 00003756: DIV 00003757: DUP2 00003758: LT 00003759: PUSH2 0x375e 0000375c: JUMPI 0000375d: INVALID 0000375e: JUMPDEST 0000375f: DUP2 00003760: SLOAD 00003761: PUSH1 0x01 00003763: AND 00003764: ISZERO 00003765: PUSH2 0x377d 00003768: JUMPI 00003769: SWAP1 0000376a: PUSH1 0x00 0000376c: MSTORE 0000376d: PUSH1 0x20 0000376f: PUSH1 0x00 00003771: KECCAK256 00003772: SWAP1 00003773: PUSH1 0x20 00003775: SWAP2 00003776: DUP3 00003777: DUP3 00003778: DIV 00003779: ADD 0000377a: SWAP2 0000377b: SWAP1 0000377c: MOD 0000377d: JUMPDEST 0000377e: SWAP1 0000377f: SLOAD 00003780: SWAP1 00003781: BYTE 00003782: PUSH1 0x01 00003784: PUSH1 0xf8 00003786: SHL 00003787: MUL 00003788: PUSH1 0xf8 0000378a: SHR 0000378b: OR 0000378c: PUSH1 0xf8 0000378e: SHL 0000378f: PUSH1 0x02 00003791: PUSH1 0x00 00003793: DUP5 00003794: PUSH1 0x01 00003796: PUSH1 0x01 00003798: PUSH1 0xa0 0000379a: SHL 0000379b: SUB 0000379c: AND 0000379d: PUSH1 0x01 0000379f: PUSH1 0x01 000037a1: PUSH1 0xa0 000037a3: SHL 000037a4: SUB 000037a5: AND 000037a6: DUP2 000037a7: MSTORE 000037a8: PUSH1 0x20 000037aa: ADD 000037ab: SWAP1 000037ac: DUP2 000037ad: MSTORE 000037ae: PUSH1 0x20 000037b0: ADD 000037b1: PUSH1 0x00 000037b3: KECCAK256 000037b4: PUSH1 0x00 000037b6: DUP2 000037b7: SLOAD 000037b8: PUSH1 0x01 000037ba: DUP2 000037bb: PUSH1 0x01 000037bd: AND 000037be: ISZERO 000037bf: PUSH2 0x0100 000037c2: MUL 000037c3: SUB 000037c4: AND 000037c5: PUSH1 0x02 000037c7: SWAP1 000037c8: DIV 000037c9: DUP2 000037ca: LT 000037cb: PUSH2 0x37d0 000037ce: JUMPI 000037cf: INVALID 000037d0: JUMPDEST 000037d1: DUP2 000037d2: SLOAD 000037d3: PUSH1 0x01 000037d5: AND 000037d6: ISZERO 000037d7: PUSH2 0x37ef 000037da: JUMPI 000037db: SWAP1 000037dc: PUSH1 0x00 000037de: MSTORE 000037df: PUSH1 0x20 000037e1: PUSH1 0x00 000037e3: KECCAK256 000037e4: SWAP1 000037e5: PUSH1 0x20 000037e7: SWAP2 000037e8: DUP3 000037e9: DUP3 000037ea: DIV 000037eb: ADD 000037ec: SWAP2 000037ed: SWAP1 000037ee: MOD 000037ef: JUMPDEST 000037f0: DUP3 000037f1: DUP3 000037f2: DUP3 000037f3: SWAP1 000037f4: SLOAD 000037f5: SWAP1 000037f6: BYTE 000037f7: PUSH1 0x01 000037f9: PUSH1 0xf8 000037fb: SHL 000037fc: MUL 000037fd: OR 000037fe: SWAP3 000037ff: POP 00003800: PUSH1 0x1f 00003802: SUB 00003803: PUSH2 0x0100 00003806: EXP 00003807: DUP2 00003808: SLOAD 00003809: DUP2 0000380a: PUSH1 0xff 0000380c: MUL 0000380d: NOT 0000380e: AND 0000380f: SWAP1 00003810: PUSH1 0x01 00003812: PUSH1 0xf8 00003814: SHL 00003815: DUP5 00003816: DIV 00003817: MUL 00003818: OR 00003819: SWAP1 0000381a: SSTORE 0000381b: POP 0000381c: POP 0000381d: POP 0000381e: JUMP 0000381f: JUMPDEST 00003820: PUSH2 0xffff 00003823: DUP3 00003824: AND 00003825: PUSH2 0x387b 00003828: JUMPI 00003829: CALLVALUE 0000382a: DUP2 0000382b: PUSH1 0x01 0000382d: PUSH1 0x01 0000382f: PUSH1 0x40 00003831: SHL 00003832: SUB 00003833: AND 00003834: PUSH5 0x02540be400 0000383a: MUL 0000383b: EQ 0000383c: PUSH2 0x3876 0000383f: JUMPI 00003840: PUSH1 0x40 00003842: MLOAD 00003843: PUSH3 0x461bcd 00003847: PUSH1 0xe5 00003849: SHL 0000384a: DUP2 0000384b: MSTORE 0000384c: PUSH1 0x04 0000384e: ADD 0000384f: DUP1 00003850: DUP1 00003851: PUSH1 0x20 00003853: ADD 00003854: DUP3 00003855: DUP2 00003856: SUB 00003857: DUP3 00003858: MSTORE 00003859: PUSH1 0x2e 0000385b: DUP2 0000385c: MSTORE 0000385d: PUSH1 0x20 0000385f: ADD 00003860: DUP1 00003861: PUSH2 0x431c 00003864: PUSH1 0x2e 00003866: SWAP2 00003867: CODECOPY 00003868: PUSH1 0x40 0000386a: ADD 0000386b: SWAP2 0000386c: POP 0000386d: POP 0000386e: PUSH1 0x40 00003870: MLOAD 00003871: DUP1 00003872: SWAP2 00003873: SUB 00003874: SWAP1 00003875: REVERT 00003876: JUMPDEST 00003877: PUSH2 0x2fd6 0000387a: JUMP 0000387b: JUMPDEST 0000387c: PUSH1 0x00 0000387e: PUSH2 0x3886 00003881: DUP4 00003882: PUSH2 0x3b35 00003885: JUMP 00003886: JUMPDEST 00003887: SWAP1 00003888: POP 00003889: DUP1 0000388a: PUSH1 0x00 0000388c: PUSH2 0x3894 0000388f: DUP6 00003890: PUSH2 0x3b54 00003893: JUMP 00003894: JUMPDEST 00003895: SWAP1 00003896: POP 00003897: PUSH1 0x01 00003899: PUSH1 0x01 0000389b: PUSH1 0x40 0000389d: SHL 0000389e: SUB 0000389f: DUP5 000038a0: AND 000038a1: PUSH1 0x08 000038a3: PUSH1 0xff 000038a5: DUP4 000038a6: AND 000038a7: LT 000038a8: ISZERO 000038a9: PUSH2 0x38c2 000038ac: JUMPI 000038ad: DUP2 000038ae: PUSH1 0x08 000038b0: SUB 000038b1: PUSH1 0xff 000038b3: AND 000038b4: PUSH1 0x0a 000038b6: EXP 000038b7: DUP2 000038b8: DUP2 000038b9: PUSH2 0x38be 000038bc: JUMPI 000038bd: INVALID 000038be: JUMPDEST 000038bf: DIV 000038c0: SWAP1 000038c1: POP 000038c2: JUMPDEST 000038c3: PUSH1 0x08 000038c5: DUP3 000038c6: PUSH1 0xff 000038c8: AND 000038c9: GT 000038ca: ISZERO 000038cb: PUSH2 0x38db 000038ce: JUMPI 000038cf: PUSH1 0xff 000038d1: PUSH1 0x07 000038d3: NOT 000038d4: DUP4 000038d5: ADD 000038d6: AND 000038d7: PUSH1 0x0a 000038d9: EXP 000038da: MUL 000038db: JUMPDEST 000038dc: PUSH1 0x40 000038de: DUP1 000038df: MLOAD 000038e0: PUSH4 0x23b872dd 000038e5: PUSH1 0xe0 000038e7: SHL 000038e8: DUP2 000038e9: MSTORE 000038ea: PUSH1 0x01 000038ec: PUSH1 0x01 000038ee: PUSH1 0xa0 000038f0: SHL 000038f1: SUB 000038f2: DUP10 000038f3: DUP2 000038f4: AND 000038f5: PUSH1 0x04 000038f7: DUP4 000038f8: ADD 000038f9: MSTORE 000038fa: ADDRESS 000038fb: PUSH1 0x24 000038fd: DUP4 000038fe: ADD 000038ff: MSTORE 00003900: PUSH1 0x44 00003902: DUP3 00003903: ADD 00003904: DUP5 00003905: SWAP1 00003906: MSTORE 00003907: SWAP2 00003908: MLOAD 00003909: PUSH1 0x00 0000390b: SWAP3 0000390c: DUP7 0000390d: AND 0000390e: SWAP2 0000390f: PUSH4 0x23b872dd 00003914: SWAP2 00003915: PUSH1 0x64 00003917: DUP1 00003918: DUP4 00003919: ADD 0000391a: SWAP3 0000391b: PUSH1 0x20 0000391d: SWAP3 0000391e: SWAP2 0000391f: SWAP1 00003920: DUP3 00003921: SWAP1 00003922: SUB 00003923: ADD 00003924: DUP2 00003925: DUP8 00003926: DUP8 00003927: DUP1 00003928: EXTCODESIZE 00003929: ISZERO 0000392a: DUP1 0000392b: ISZERO 0000392c: PUSH2 0x3185 0000392f: JUMPI 00003930: PUSH1 0x00 00003932: DUP1 00003933: REVERT 00003934: JUMPDEST 00003935: PUSH1 0x01 00003937: PUSH1 0x01 00003939: PUSH1 0xa0 0000393b: SHL 0000393c: SUB 0000393d: DUP2 0000393e: AND 0000393f: PUSH2 0x3979 00003942: JUMPI 00003943: PUSH1 0x40 00003945: MLOAD 00003946: PUSH3 0x461bcd 0000394a: PUSH1 0xe5 0000394c: SHL 0000394d: DUP2 0000394e: MSTORE 0000394f: PUSH1 0x04 00003951: ADD 00003952: DUP1 00003953: DUP1 00003954: PUSH1 0x20 00003956: ADD 00003957: DUP3 00003958: DUP2 00003959: SUB 0000395a: DUP3 0000395b: MSTORE 0000395c: PUSH1 0x26 0000395e: DUP2 0000395f: MSTORE 00003960: PUSH1 0x20 00003962: ADD 00003963: DUP1 00003964: PUSH2 0x418e 00003967: PUSH1 0x26 00003969: SWAP2 0000396a: CODECOPY 0000396b: PUSH1 0x40 0000396d: ADD 0000396e: SWAP2 0000396f: POP 00003970: POP 00003971: PUSH1 0x40 00003973: MLOAD 00003974: DUP1 00003975: SWAP2 00003976: SUB 00003977: SWAP1 00003978: REVERT 00003979: JUMPDEST 0000397a: PUSH1 0x00 0000397c: DUP1 0000397d: SLOAD 0000397e: PUSH1 0x40 00003980: MLOAD 00003981: PUSH1 0x01 00003983: PUSH1 0x01 00003985: PUSH1 0xa0 00003987: SHL 00003988: SUB 00003989: DUP1 0000398a: DUP6 0000398b: AND 0000398c: SWAP4 0000398d: SWAP3 0000398e: AND 0000398f: SWAP2 00003990: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000039b1: SWAP2 000039b2: LOG3 000039b3: PUSH1 0x00 000039b5: DUP1 000039b6: SLOAD 000039b7: PUSH1 0x01 000039b9: PUSH1 0x01 000039bb: PUSH1 0xa0 000039bd: SHL 000039be: SUB 000039bf: NOT 000039c0: AND 000039c1: PUSH1 0x01 000039c3: PUSH1 0x01 000039c5: PUSH1 0xa0 000039c7: SHL 000039c8: SUB 000039c9: SWAP3 000039ca: SWAP1 000039cb: SWAP3 000039cc: AND 000039cd: SWAP2 000039ce: SWAP1 000039cf: SWAP2 000039d0: OR 000039d1: SWAP1 000039d2: SSTORE 000039d3: JUMP 000039d4: JUMPDEST 000039d5: DUP1 000039d6: MLOAD 000039d7: PUSH1 0x20 000039d9: SWAP2 000039da: DUP3 000039db: ADD 000039dc: KECCAK256 000039dd: PUSH1 0x40 000039df: DUP1 000039e0: MLOAD 000039e1: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00003a02: DUP2 00003a03: DUP6 00003a04: ADD 00003a05: MSTORE 00003a06: PUSH1 0x3c 00003a08: DUP1 00003a09: DUP3 00003a0a: ADD 00003a0b: SWAP4 00003a0c: SWAP1 00003a0d: SWAP4 00003a0e: MSTORE 00003a0f: DUP2 00003a10: MLOAD 00003a11: DUP1 00003a12: DUP3 00003a13: SUB 00003a14: SWAP1 00003a15: SWAP4 00003a16: ADD 00003a17: DUP4 00003a18: MSTORE 00003a19: PUSH1 0x5c 00003a1b: ADD 00003a1c: SWAP1 00003a1d: MSTORE 00003a1e: DUP1 00003a1f: MLOAD 00003a20: SWAP2 00003a21: ADD 00003a22: KECCAK256 00003a23: SWAP1 00003a24: JUMP 00003a25: JUMPDEST 00003a26: PUSH1 0x20 00003a28: DUP2 00003a29: ADD 00003a2a: MLOAD 00003a2b: PUSH1 0x40 00003a2d: DUP3 00003a2e: ADD 00003a2f: MLOAD 00003a30: PUSH1 0x41 00003a32: DUP4 00003a33: ADD 00003a34: MLOAD 00003a35: PUSH1 0x00 00003a37: SWAP3 00003a38: SWAP2 00003a39: SWAP1 00003a3a: PUSH1 0x1b 00003a3c: PUSH1 0xff 00003a3e: DUP3 00003a3f: AND 00003a40: LT 00003a41: ISZERO 00003a42: PUSH2 0x3a49 00003a45: JUMPI 00003a46: PUSH1 0x1b 00003a48: ADD 00003a49: JUMPDEST 00003a4a: PUSH1 0x40 00003a4c: DUP1 00003a4d: MLOAD 00003a4e: PUSH1 0x00 00003a50: DUP2 00003a51: MSTORE 00003a52: PUSH1 0x20 00003a54: DUP1 00003a55: DUP3 00003a56: ADD 00003a57: DUP1 00003a58: DUP5 00003a59: MSTORE 00003a5a: DUP10 00003a5b: SWAP1 00003a5c: MSTORE 00003a5d: PUSH1 0xff 00003a5f: DUP5 00003a60: AND 00003a61: DUP3 00003a62: DUP5 00003a63: ADD 00003a64: MSTORE 00003a65: PUSH1 0x60 00003a67: DUP3 00003a68: ADD 00003a69: DUP7 00003a6a: SWAP1 00003a6b: MSTORE 00003a6c: PUSH1 0x80 00003a6e: DUP3 00003a6f: ADD 00003a70: DUP6 00003a71: SWAP1 00003a72: MSTORE 00003a73: SWAP2 00003a74: MLOAD 00003a75: PUSH1 0x01 00003a77: SWAP3 00003a78: PUSH1 0xa0 00003a7a: DUP1 00003a7b: DUP5 00003a7c: ADD 00003a7d: SWAP4 00003a7e: SWAP2 00003a7f: SWAP3 00003a80: PUSH1 0x1f 00003a82: NOT 00003a83: DUP2 00003a84: ADD 00003a85: SWAP3 00003a86: DUP2 00003a87: SWAP1 00003a88: SUB 00003a89: SWAP1 00003a8a: SWAP2 00003a8b: ADD 00003a8c: SWAP1 00003a8d: DUP6 00003a8e: GAS 00003a8f: STATICCALL 00003a90: ISZERO 00003a91: DUP1 00003a92: ISZERO 00003a93: PUSH2 0x3aa0 00003a96: JUMPI 00003a97: RETURNDATASIZE 00003a98: PUSH1 0x00 00003a9a: DUP1 00003a9b: RETURNDATACOPY 00003a9c: RETURNDATASIZE 00003a9d: PUSH1 0x00 00003a9f: REVERT 00003aa0: JUMPDEST 00003aa1: POP 00003aa2: POP 00003aa3: PUSH1 0x40 00003aa5: MLOAD 00003aa6: PUSH1 0x1f 00003aa8: NOT 00003aa9: ADD 00003aaa: MLOAD 00003aab: SWAP8 00003aac: SWAP7 00003aad: POP 00003aae: POP 00003aaf: POP 00003ab0: POP 00003ab1: POP 00003ab2: POP 00003ab3: POP 00003ab4: JUMP 00003ab5: JUMPDEST 00003ab6: PUSH1 0x60 00003ab8: DUP2 00003ab9: DUP4 00003aba: ADD 00003abb: DUP5 00003abc: MLOAD 00003abd: LT 00003abe: ISZERO 00003abf: PUSH2 0x3ac7 00003ac2: JUMPI 00003ac3: PUSH1 0x00 00003ac5: DUP1 00003ac6: REVERT 00003ac7: JUMPDEST 00003ac8: PUSH1 0x60 00003aca: DUP3 00003acb: ISZERO 00003acc: DUP1 00003acd: ISZERO 00003ace: PUSH2 0x3ae2 00003ad1: JUMPI 00003ad2: PUSH1 0x40 00003ad4: MLOAD 00003ad5: SWAP2 00003ad6: POP 00003ad7: PUSH1 0x20 00003ad9: DUP3 00003ada: ADD 00003adb: PUSH1 0x40 00003add: MSTORE 00003ade: PUSH2 0x3b2c 00003ae1: JUMP 00003ae2: JUMPDEST 00003ae3: PUSH1 0x40 00003ae5: MLOAD 00003ae6: SWAP2 00003ae7: POP 00003ae8: PUSH1 0x1f 00003aea: DUP5 00003aeb: AND 00003aec: DUP1 00003aed: ISZERO 00003aee: PUSH1 0x20 00003af0: MUL 00003af1: DUP2 00003af2: DUP5 00003af3: ADD 00003af4: ADD 00003af5: DUP6 00003af6: DUP2 00003af7: ADD 00003af8: DUP8 00003af9: DUP4 00003afa: ISZERO 00003afb: PUSH1 0x20 00003afd: MUL 00003afe: DUP5 00003aff: DUP12 00003b00: ADD 00003b01: ADD 00003b02: ADD 00003b03: JUMPDEST 00003b04: DUP2 00003b05: DUP4 00003b06: LT 00003b07: ISZERO 00003b08: PUSH2 0x3b1b 00003b0b: JUMPI 00003b0c: DUP1 00003b0d: MLOAD 00003b0e: DUP4 00003b0f: MSTORE 00003b10: PUSH1 0x20 00003b12: SWAP3 00003b13: DUP4 00003b14: ADD 00003b15: SWAP3 00003b16: ADD 00003b17: PUSH2 0x3b03 00003b1a: JUMP 00003b1b: JUMPDEST 00003b1c: POP 00003b1d: POP 00003b1e: DUP6 00003b1f: DUP5 00003b20: MSTORE 00003b21: PUSH1 0x1f 00003b23: ADD 00003b24: PUSH1 0x1f 00003b26: NOT 00003b27: AND 00003b28: PUSH1 0x40 00003b2a: MSTORE 00003b2b: POP 00003b2c: JUMPDEST 00003b2d: POP 00003b2e: SWAP5 00003b2f: SWAP4 00003b30: POP 00003b31: POP 00003b32: POP 00003b33: POP 00003b34: JUMP 00003b35: JUMPDEST 00003b36: PUSH2 0xffff 00003b39: AND 00003b3a: PUSH1 0x00 00003b3c: SWAP1 00003b3d: DUP2 00003b3e: MSTORE 00003b3f: PUSH1 0x01 00003b41: PUSH1 0x20 00003b43: MSTORE 00003b44: PUSH1 0x40 00003b46: SWAP1 00003b47: KECCAK256 00003b48: SLOAD 00003b49: PUSH1 0x01 00003b4b: PUSH1 0x01 00003b4d: PUSH1 0xa8 00003b4f: SHL 00003b50: SUB 00003b51: AND 00003b52: SWAP1 00003b53: JUMP 00003b54: JUMPDEST 00003b55: PUSH2 0xffff 00003b58: AND 00003b59: PUSH1 0x00 00003b5b: SWAP1 00003b5c: DUP2 00003b5d: MSTORE 00003b5e: PUSH1 0x01 00003b60: PUSH1 0x20 00003b62: MSTORE 00003b63: PUSH1 0x40 00003b65: DUP2 00003b66: KECCAK256 00003b67: SLOAD 00003b68: PUSH1 0x58 00003b6a: SHL 00003b6b: SWAP1 00003b6c: BYTE 00003b6d: SWAP1 00003b6e: JUMP 00003b6f: JUMPDEST 00003b70: PUSH1 0x00 00003b72: PUSH2 0x3b7c 00003b75: DUP5 00003b76: PUSH1 0x00 00003b78: PUSH2 0x0b79 00003b7b: JUMP 00003b7c: JUMPDEST 00003b7d: PUSH2 0x3b88 00003b80: JUMPI 00003b81: POP 00003b82: PUSH1 0x00 00003b84: PUSH2 0x3c99 00003b87: JUMP 00003b88: JUMPDEST 00003b89: PUSH1 0x00 00003b8b: PUSH2 0x3c4f 00003b8e: DUP9 00003b8f: PUSH1 0x03 00003b91: DUP2 00003b92: GT 00003b93: ISZERO 00003b94: PUSH2 0x3b99 00003b97: JUMPI 00003b98: INVALID 00003b99: JUMPDEST 00003b9a: DUP9 00003b9b: DUP9 00003b9c: DUP9 00003b9d: PUSH1 0x40 00003b9f: MLOAD 00003ba0: PUSH1 0x20 00003ba2: ADD 00003ba3: DUP1 00003ba4: DUP6 00003ba5: PUSH1 0xff 00003ba7: AND 00003ba8: PUSH1 0xff 00003baa: AND 00003bab: PUSH1 0xf8 00003bad: SHL 00003bae: DUP2 00003baf: MSTORE 00003bb0: PUSH1 0x01 00003bb2: ADD 00003bb3: DUP5 00003bb4: DUP1 00003bb5: MLOAD 00003bb6: SWAP1 00003bb7: PUSH1 0x20 00003bb9: ADD 00003bba: SWAP1 00003bbb: DUP1 00003bbc: DUP4 00003bbd: DUP4 00003bbe: JUMPDEST 00003bbf: PUSH1 0x20 00003bc1: DUP4 00003bc2: LT 00003bc3: PUSH2 0x3bdd 00003bc6: JUMPI 00003bc7: DUP1 00003bc8: MLOAD 00003bc9: DUP3 00003bca: MSTORE 00003bcb: PUSH1 0x1f 00003bcd: NOT 00003bce: SWAP1 00003bcf: SWAP3 00003bd0: ADD 00003bd1: SWAP2 00003bd2: PUSH1 0x20 00003bd4: SWAP2 00003bd5: DUP3 00003bd6: ADD 00003bd7: SWAP2 00003bd8: ADD 00003bd9: PUSH2 0x3bbe 00003bdc: JUMP 00003bdd: JUMPDEST 00003bde: PUSH1 0x01 00003be0: DUP4 00003be1: PUSH1 0x20 00003be3: SUB 00003be4: PUSH2 0x0100 00003be7: EXP 00003be8: SUB 00003be9: DUP1 00003bea: NOT 00003beb: DUP3 00003bec: MLOAD 00003bed: AND 00003bee: DUP2 00003bef: DUP5 00003bf0: MLOAD 00003bf1: AND 00003bf2: DUP1 00003bf3: DUP3 00003bf4: OR 00003bf5: DUP6 00003bf6: MSTORE 00003bf7: POP 00003bf8: POP 00003bf9: POP 00003bfa: POP 00003bfb: POP 00003bfc: POP 00003bfd: SWAP1 00003bfe: POP 00003bff: ADD 00003c00: DUP4 00003c01: PUSH1 0x01 00003c03: PUSH1 0x01 00003c05: PUSH1 0xa0 00003c07: SHL 00003c08: SUB 00003c09: AND 00003c0a: PUSH1 0x01 00003c0c: PUSH1 0x01 00003c0e: PUSH1 0xa0 00003c10: SHL 00003c11: SUB 00003c12: AND 00003c13: PUSH1 0x60 00003c15: SHL 00003c16: DUP2 00003c17: MSTORE 00003c18: PUSH1 0x14 00003c1a: ADD 00003c1b: DUP3 00003c1c: PUSH1 0x01 00003c1e: PUSH1 0x01 00003c20: PUSH1 0xa0 00003c22: SHL 00003c23: SUB 00003c24: AND 00003c25: PUSH1 0x01 00003c27: PUSH1 0x01 00003c29: PUSH1 0xa0 00003c2b: SHL 00003c2c: SUB 00003c2d: AND 00003c2e: PUSH1 0x60 00003c30: SHL 00003c31: DUP2 00003c32: MSTORE 00003c33: PUSH1 0x14 00003c35: ADD 00003c36: SWAP5 00003c37: POP 00003c38: POP 00003c39: POP 00003c3a: POP 00003c3b: POP 00003c3c: PUSH1 0x40 00003c3e: MLOAD 00003c3f: PUSH1 0x20 00003c41: DUP2 00003c42: DUP4 00003c43: SUB 00003c44: SUB 00003c45: DUP2 00003c46: MSTORE 00003c47: SWAP1 00003c48: PUSH1 0x40 00003c4a: MSTORE 00003c4b: PUSH2 0x39d4 00003c4e: JUMP 00003c4f: JUMPDEST 00003c50: SWAP1 00003c51: POP 00003c52: DUP6 00003c53: PUSH1 0x01 00003c55: PUSH1 0x01 00003c57: PUSH1 0xa0 00003c59: SHL 00003c5a: SUB 00003c5b: AND 00003c5c: PUSH2 0x3c65 00003c5f: DUP3 00003c60: DUP7 00003c61: PUSH2 0x3a25 00003c64: JUMP 00003c65: JUMPDEST 00003c66: PUSH1 0x01 00003c68: PUSH1 0x01 00003c6a: PUSH1 0xa0 00003c6c: SHL 00003c6d: SUB 00003c6e: AND 00003c6f: EQ 00003c70: DUP1 00003c71: ISZERO 00003c72: PUSH2 0x3c95 00003c75: JUMPI 00003c76: POP 00003c77: DUP5 00003c78: PUSH1 0x01 00003c7a: PUSH1 0x01 00003c7c: PUSH1 0xa0 00003c7e: SHL 00003c7f: SUB 00003c80: AND 00003c81: PUSH2 0x3c8a 00003c84: DUP3 00003c85: DUP6 00003c86: PUSH2 0x3a25 00003c89: JUMP 00003c8a: JUMPDEST 00003c8b: PUSH1 0x01 00003c8d: PUSH1 0x01 00003c8f: PUSH1 0xa0 00003c91: SHL 00003c92: SUB 00003c93: AND 00003c94: EQ 00003c95: JUMPDEST 00003c96: SWAP2 00003c97: POP 00003c98: POP 00003c99: JUMPDEST 00003c9a: SWAP7 00003c9b: SWAP6 00003c9c: POP 00003c9d: POP 00003c9e: POP 00003c9f: POP 00003ca0: POP 00003ca1: POP 00003ca2: JUMP 00003ca3: JUMPDEST 00003ca4: PUSH2 0xffff 00003ca7: DUP7 00003ca8: DUP2 00003ca9: AND 00003caa: EQ 00003cab: ISZERO 00003cac: PUSH2 0x3cb4 00003caf: JUMPI 00003cb0: PUSH2 0x34ca 00003cb3: JUMP 00003cb4: JUMPDEST 00003cb5: PUSH1 0x00 00003cb7: SLOAD 00003cb8: PUSH2 0xffff 00003cbb: PUSH1 0x01 00003cbd: PUSH1 0xb8 00003cbf: SHL 00003cc0: SWAP1 00003cc1: SWAP2 00003cc2: DIV 00003cc3: DUP2 00003cc4: AND 00003cc5: SWAP1 00003cc6: DUP8 00003cc7: AND 00003cc8: LT 00003cc9: PUSH2 0x3d0c 00003ccc: JUMPI 00003ccd: PUSH1 0x40 00003ccf: DUP1 00003cd0: MLOAD 00003cd1: PUSH3 0x461bcd 00003cd5: PUSH1 0xe5 00003cd7: SHL 00003cd8: DUP2 00003cd9: MSTORE 00003cda: PUSH1 0x20 00003cdc: PUSH1 0x04 00003cde: DUP3 00003cdf: ADD 00003ce0: MSTORE 00003ce1: PUSH1 0x10 00003ce3: PUSH1 0x24 00003ce5: DUP3 00003ce6: ADD 00003ce7: MSTORE 00003ce8: PUSH16 0x125b9d985b1a5908185cdcd95d081a59 00003cf9: PUSH1 0x82 00003cfb: SHL 00003cfc: PUSH1 0x44 00003cfe: DUP3 00003cff: ADD 00003d00: MSTORE 00003d01: SWAP1 00003d02: MLOAD 00003d03: SWAP1 00003d04: DUP2 00003d05: SWAP1 00003d06: SUB 00003d07: PUSH1 0x64 00003d09: ADD 00003d0a: SWAP1 00003d0b: REVERT 00003d0c: JUMPDEST 00003d0d: PUSH2 0x3d14 00003d10: PUSH2 0x4035 00003d13: JUMP 00003d14: JUMPDEST 00003d15: PUSH2 0x3d1e 00003d18: DUP9 00003d19: DUP9 00003d1a: PUSH2 0x2ad2 00003d1d: JUMP 00003d1e: JUMPDEST 00003d1f: SWAP1 00003d20: POP 00003d21: DUP1 00003d22: PUSH1 0x20 00003d24: ADD 00003d25: MLOAD 00003d26: PUSH4 0xffffffff 00003d2b: AND 00003d2c: DUP7 00003d2d: PUSH1 0x01 00003d2f: PUSH1 0x01 00003d31: PUSH1 0x40 00003d33: SHL 00003d34: SUB 00003d35: AND 00003d36: EQ 00003d37: PUSH2 0x3d71 00003d3a: JUMPI 00003d3b: PUSH1 0x40 00003d3d: MLOAD 00003d3e: PUSH3 0x461bcd 00003d42: PUSH1 0xe5 00003d44: SHL 00003d45: DUP2 00003d46: MSTORE 00003d47: PUSH1 0x04 00003d49: ADD 00003d4a: DUP1 00003d4b: DUP1 00003d4c: PUSH1 0x20 00003d4e: ADD 00003d4f: DUP3 00003d50: DUP2 00003d51: SUB 00003d52: DUP3 00003d53: MSTORE 00003d54: PUSH1 0x27 00003d56: DUP2 00003d57: MSTORE 00003d58: PUSH1 0x20 00003d5a: ADD 00003d5b: DUP1 00003d5c: PUSH2 0x42c6 00003d5f: PUSH1 0x27 00003d61: SWAP2 00003d62: CODECOPY 00003d63: PUSH1 0x40 00003d65: ADD 00003d66: SWAP2 00003d67: POP 00003d68: POP 00003d69: PUSH1 0x40 00003d6b: MLOAD 00003d6c: DUP1 00003d6d: SWAP2 00003d6e: SUB 00003d6f: SWAP1 00003d70: REVERT 00003d71: JUMPDEST 00003d72: PUSH1 0x00 00003d74: DUP3 00003d75: PUSH2 0x3d7e 00003d78: JUMPI 00003d79: DUP6 00003d7a: PUSH2 0x3d81 00003d7d: JUMP 00003d7e: JUMPDEST 00003d7f: PUSH1 0x00 00003d81: JUMPDEST 00003d82: PUSH1 0x01 00003d84: PUSH1 0x01 00003d86: PUSH1 0xa0 00003d88: SHL 00003d89: SUB 00003d8a: DUP11 00003d8b: AND 00003d8c: PUSH1 0x00 00003d8e: SWAP1 00003d8f: DUP2 00003d90: MSTORE 00003d91: PUSH1 0x03 00003d93: PUSH1 0x20 00003d95: SWAP1 00003d96: DUP2 00003d97: MSTORE 00003d98: PUSH1 0x40 00003d9a: DUP1 00003d9b: DUP4 00003d9c: KECCAK256 00003d9d: PUSH2 0xffff 00003da0: DUP14 00003da1: AND 00003da2: DUP5 00003da3: MSTORE 00003da4: DUP3 00003da5: MSTORE 00003da6: DUP1 00003da7: DUP4 00003da8: KECCAK256 00003da9: PUSH1 0x01 00003dab: PUSH1 0x01 00003dad: PUSH1 0x40 00003daf: SHL 00003db0: SUB 00003db1: DUP1 00003db2: DUP14 00003db3: AND 00003db4: DUP6 00003db5: MSTORE 00003db6: SWAP1 00003db7: DUP4 00003db8: MSTORE 00003db9: DUP2 00003dba: DUP5 00003dbb: KECCAK256 00003dbc: PUSH4 0xffffffff 00003dc1: DUP11 00003dc2: AND 00003dc3: DUP6 00003dc4: MSTORE 00003dc5: SWAP1 00003dc6: SWAP3 00003dc7: MSTORE 00003dc8: SWAP1 00003dc9: SWAP2 00003dca: KECCAK256 00003dcb: SLOAD 00003dcc: SWAP2 00003dcd: DUP8 00003dce: ADD 00003dcf: SWAP3 00003dd0: POP 00003dd1: PUSH1 0x08 00003dd3: SWAP2 00003dd4: DUP3 00003dd5: SIGNEXTEND 00003dd6: SWAP2 00003dd7: DUP3 00003dd8: SWAP1 00003dd9: SIGNEXTEND 00003dda: SWAP1 00003ddb: DUP4 00003ddc: AND 00003ddd: SLT 00003dde: ISZERO 00003ddf: PUSH2 0x3e19 00003de2: JUMPI 00003de3: PUSH1 0x40 00003de5: MLOAD 00003de6: PUSH3 0x461bcd 00003dea: PUSH1 0xe5 00003dec: SHL 00003ded: DUP2 00003dee: MSTORE 00003def: PUSH1 0x04 00003df1: ADD 00003df2: DUP1 00003df3: DUP1 00003df4: PUSH1 0x20 00003df6: ADD 00003df7: DUP3 00003df8: DUP2 00003df9: SUB 00003dfa: DUP3 00003dfb: MSTORE 00003dfc: PUSH1 0x29 00003dfe: DUP2 00003dff: MSTORE 00003e00: PUSH1 0x20 00003e02: ADD 00003e03: DUP1 00003e04: PUSH2 0x429d 00003e07: PUSH1 0x29 00003e09: SWAP2 00003e0a: CODECOPY 00003e0b: PUSH1 0x40 00003e0d: ADD 00003e0e: SWAP2 00003e0f: POP 00003e10: POP 00003e11: PUSH1 0x40 00003e13: MLOAD 00003e14: DUP1 00003e15: SWAP2 00003e16: SUB 00003e17: SWAP1 00003e18: REVERT 00003e19: JUMPDEST 00003e1a: PUSH1 0x01 00003e1c: PUSH1 0x01 00003e1e: PUSH1 0x40 00003e20: SHL 00003e21: SUB 00003e22: DUP3 00003e23: AND 00003e24: DUP2 00003e25: SWAP1 00003e26: SUB 00003e27: DUP5 00003e28: ISZERO 00003e29: PUSH2 0x3efd 00003e2c: JUMPI 00003e2d: PUSH2 0xffff 00003e30: DUP11 00003e31: AND 00003e32: PUSH1 0x00 00003e34: SWAP1 00003e35: DUP2 00003e36: MSTORE 00003e37: PUSH1 0x05 00003e39: PUSH1 0x20 00003e3b: MSTORE 00003e3c: PUSH1 0x40 00003e3e: SWAP1 00003e3f: KECCAK256 00003e40: SLOAD 00003e41: PUSH1 0x01 00003e43: PUSH1 0x01 00003e45: PUSH1 0x40 00003e47: SHL 00003e48: SUB 00003e49: DUP1 00003e4a: DUP4 00003e4b: AND 00003e4c: SWAP2 00003e4d: AND 00003e4e: LT 00003e4f: ISZERO 00003e50: PUSH2 0x3ea0 00003e53: JUMPI 00003e54: PUSH1 0x40 00003e56: DUP1 00003e57: MLOAD 00003e58: PUSH3 0x461bcd 00003e5c: PUSH1 0xe5 00003e5e: SHL 00003e5f: DUP2 00003e60: MSTORE 00003e61: PUSH1 0x20 00003e63: PUSH1 0x04 00003e65: DUP3 00003e66: ADD 00003e67: DUP2 00003e68: SWAP1 00003e69: MSTORE 00003e6a: PUSH1 0x24 00003e6c: DUP3 00003e6d: ADD 00003e6e: MSTORE 00003e6f: PUSH32 0x4e6f7420656e6f75676820617373657473206c65667420696e20627566666572 00003e90: PUSH1 0x44 00003e92: DUP3 00003e93: ADD 00003e94: MSTORE 00003e95: SWAP1 00003e96: MLOAD 00003e97: SWAP1 00003e98: DUP2 00003e99: SWAP1 00003e9a: SUB 00003e9b: PUSH1 0x64 00003e9d: ADD 00003e9e: SWAP1 00003e9f: REVERT 00003ea0: JUMPDEST 00003ea1: PUSH2 0xffff 00003ea4: DUP11 00003ea5: AND 00003ea6: PUSH1 0x00 00003ea8: SWAP1 00003ea9: DUP2 00003eaa: MSTORE 00003eab: PUSH1 0x04 00003ead: PUSH1 0x20 00003eaf: SWAP1 00003eb0: DUP2 00003eb1: MSTORE 00003eb2: PUSH1 0x40 00003eb4: DUP1 00003eb5: DUP4 00003eb6: KECCAK256 00003eb7: DUP1 00003eb8: SLOAD 00003eb9: PUSH1 0x01 00003ebb: PUSH1 0x01 00003ebd: PUSH1 0x40 00003ebf: SHL 00003ec0: SUB 00003ec1: DUP1 00003ec2: DUP3 00003ec3: AND 00003ec4: DUP8 00003ec5: ADD 00003ec6: DUP2 00003ec7: AND 00003ec8: PUSH8 0xffffffffffffffff 00003ed1: NOT 00003ed2: SWAP3 00003ed3: DUP4 00003ed4: AND 00003ed5: OR 00003ed6: SWAP1 00003ed7: SWAP3 00003ed8: SSTORE 00003ed9: PUSH1 0x05 00003edb: SWAP1 00003edc: SWAP4 00003edd: MSTORE 00003ede: SWAP3 00003edf: KECCAK256 00003ee0: DUP1 00003ee1: SLOAD 00003ee2: DUP1 00003ee3: DUP5 00003ee4: AND 00003ee5: DUP6 00003ee6: SWAP1 00003ee7: SUB 00003ee8: DUP5 00003ee9: AND 00003eea: SWAP3 00003eeb: AND 00003eec: SWAP2 00003eed: SWAP1 00003eee: SWAP2 00003eef: OR 00003ef0: SWAP1 00003ef1: SSTORE 00003ef2: DUP5 00003ef3: MLOAD 00003ef4: DUP3 00003ef5: ADD 00003ef6: AND 00003ef7: DUP5 00003ef8: MSTORE 00003ef9: PUSH2 0x3fae 00003efc: JUMP 00003efd: JUMPDEST 00003efe: DUP4 00003eff: MLOAD 00003f00: PUSH1 0x01 00003f02: PUSH1 0x01 00003f04: PUSH1 0x40 00003f06: SHL 00003f07: SUB 00003f08: DUP1 00003f09: DUP4 00003f0a: AND 00003f0b: SWAP2 00003f0c: AND 00003f0d: LT 00003f0e: ISZERO 00003f0f: PUSH2 0x3f54 00003f12: JUMPI 00003f13: PUSH1 0x40 00003f15: DUP1 00003f16: MLOAD 00003f17: PUSH3 0x461bcd 00003f1b: PUSH1 0xe5 00003f1d: SHL 00003f1e: DUP2 00003f1f: MSTORE 00003f20: PUSH1 0x20 00003f22: PUSH1 0x04 00003f24: DUP3 00003f25: ADD 00003f26: MSTORE 00003f27: PUSH1 0x12 00003f29: PUSH1 0x24 00003f2b: DUP3 00003f2c: ADD 00003f2d: MSTORE 00003f2e: PUSH18 0x496e73756666696369656e742066756e6473 00003f41: PUSH1 0x70 00003f43: SHL 00003f44: PUSH1 0x44 00003f46: DUP3 00003f47: ADD 00003f48: MSTORE 00003f49: SWAP1 00003f4a: MLOAD 00003f4b: SWAP1 00003f4c: DUP2 00003f4d: SWAP1 00003f4e: SUB 00003f4f: PUSH1 0x64 00003f51: ADD 00003f52: SWAP1 00003f53: REVERT 00003f54: JUMPDEST 00003f55: PUSH2 0xffff 00003f58: DUP11 00003f59: AND 00003f5a: PUSH1 0x00 00003f5c: SWAP1 00003f5d: DUP2 00003f5e: MSTORE 00003f5f: PUSH1 0x04 00003f61: PUSH1 0x20 00003f63: SWAP1 00003f64: DUP2 00003f65: MSTORE 00003f66: PUSH1 0x40 00003f68: DUP1 00003f69: DUP4 00003f6a: KECCAK256 00003f6b: DUP1 00003f6c: SLOAD 00003f6d: PUSH1 0x01 00003f6f: PUSH1 0x01 00003f71: PUSH1 0x40 00003f73: SHL 00003f74: SUB 00003f75: DUP1 00003f76: DUP3 00003f77: AND 00003f78: DUP8 00003f79: SWAP1 00003f7a: SUB 00003f7b: DUP2 00003f7c: AND 00003f7d: PUSH8 0xffffffffffffffff 00003f86: NOT 00003f87: SWAP3 00003f88: DUP4 00003f89: AND 00003f8a: OR 00003f8b: SWAP1 00003f8c: SWAP3 00003f8d: SSTORE 00003f8e: PUSH1 0x05 00003f90: SWAP1 00003f91: SWAP4 00003f92: MSTORE 00003f93: SWAP3 00003f94: KECCAK256 00003f95: DUP1 00003f96: SLOAD 00003f97: DUP1 00003f98: DUP5 00003f99: AND 00003f9a: DUP6 00003f9b: ADD 00003f9c: DUP5 00003f9d: AND 00003f9e: SWAP3 00003f9f: AND 00003fa0: SWAP2 00003fa1: SWAP1 00003fa2: SWAP2 00003fa3: OR 00003fa4: SWAP1 00003fa5: SSTORE 00003fa6: DUP5 00003fa7: MLOAD 00003fa8: DUP3 00003fa9: SWAP1 00003faa: SUB 00003fab: AND 00003fac: DUP5 00003fad: MSTORE 00003fae: JUMPDEST 00003faf: PUSH1 0x01 00003fb1: PUSH1 0x01 00003fb3: PUSH1 0xa0 00003fb5: SHL 00003fb6: SUB 00003fb7: DUP12 00003fb8: AND 00003fb9: PUSH1 0x00 00003fbb: SWAP1 00003fbc: DUP2 00003fbd: MSTORE 00003fbe: PUSH1 0x03 00003fc0: PUSH1 0x20 00003fc2: SWAP1 00003fc3: DUP2 00003fc4: MSTORE 00003fc5: PUSH1 0x40 00003fc7: DUP1 00003fc8: DUP4 00003fc9: KECCAK256 00003fca: PUSH2 0xffff 00003fcd: DUP15 00003fce: AND 00003fcf: DUP5 00003fd0: MSTORE 00003fd1: DUP3 00003fd2: MSTORE 00003fd3: DUP1 00003fd4: DUP4 00003fd5: KECCAK256 00003fd6: PUSH1 0x01 00003fd8: PUSH1 0x01 00003fda: PUSH1 0x40 00003fdc: SHL 00003fdd: SUB 00003fde: DUP14 00003fdf: DUP2 00003fe0: AND 00003fe1: DUP6 00003fe2: MSTORE 00003fe3: SWAP1 00003fe4: DUP4 00003fe5: MSTORE 00003fe6: DUP2 00003fe7: DUP5 00003fe8: KECCAK256 00003fe9: PUSH4 0xffffffff 00003fee: DUP12 00003fef: AND 00003ff0: DUP6 00003ff1: MSTORE 00003ff2: SWAP1 00003ff3: SWAP3 00003ff4: MSTORE 00003ff5: SWAP1 00003ff6: SWAP2 00003ff7: KECCAK256 00003ff8: DUP1 00003ff9: SLOAD 00003ffa: SWAP2 00003ffb: DUP4 00003ffc: AND 00003ffd: PUSH1 0x08 00003fff: SIGNEXTEND 00004000: PUSH9 0xffffffffffffffffff 0000400a: AND 0000400b: PUSH9 0xffffffffffffffffff 00004015: NOT 00004016: SWAP1 00004017: SWAP3 00004018: AND 00004019: SWAP2 0000401a: SWAP1 0000401b: SWAP2 0000401c: OR 0000401d: SWAP1 0000401e: SSTORE 0000401f: PUSH2 0x4028 00004022: DUP12 00004023: DUP6 00004024: PUSH2 0x2ca2 00004027: JUMP 00004028: JUMPDEST 00004029: POP 0000402a: POP 0000402b: POP 0000402c: POP 0000402d: POP 0000402e: POP 0000402f: POP 00004030: POP 00004031: POP 00004032: POP 00004033: POP 00004034: JUMP 00004035: JUMPDEST 00004036: PUSH1 0x40 00004038: DUP1 00004039: MLOAD 0000403a: PUSH1 0x80 0000403c: DUP2 0000403d: ADD 0000403e: DUP3 0000403f: MSTORE 00004040: PUSH1 0x00 00004042: DUP1 00004043: DUP3 00004044: MSTORE 00004045: PUSH1 0x20 00004047: DUP3 00004048: ADD 00004049: DUP2 0000404a: SWAP1 0000404b: MSTORE 0000404c: SWAP2 0000404d: DUP2 0000404e: ADD 0000404f: DUP3 00004050: SWAP1 00004051: MSTORE 00004052: PUSH1 0x60 00004054: DUP2 00004055: ADD 00004056: SWAP2 00004057: SWAP1 00004058: SWAP2 00004059: MSTORE 0000405a: SWAP1 0000405b: JUMP 0000405c: JUMPDEST 0000405d: DUP2 0000405e: SLOAD 0000405f: PUSH1 0x01 00004061: DUP2 00004062: PUSH1 0x01 00004064: AND 00004065: ISZERO 00004066: PUSH2 0x0100 00004069: MUL 0000406a: SUB 0000406b: AND 0000406c: PUSH1 0x02 0000406e: SWAP1 0000406f: DIV 00004070: DUP3 00004071: SLOAD 00004072: DUP2 00004073: PUSH1 0x1f 00004075: LT 00004076: PUSH2 0x40b7 00004079: JUMPI 0000407a: DUP3 0000407b: PUSH1 0x1f 0000407d: LT 0000407e: PUSH2 0x409c 00004081: JUMPI 00004082: JUMPDEST 00004083: DUP3 00004084: PUSH1 0x08 00004086: MUL 00004087: PUSH2 0x0100 0000408a: SUB 0000408b: PUSH1 0x02 0000408d: EXP 0000408e: DUP1 0000408f: SWAP2 00004090: DIV 00004091: MUL 00004092: DUP3 00004093: DUP1 00004094: ADD 00004095: OR 00004096: DUP4 00004097: SSTORE 00004098: PUSH2 0x2fd6 0000409b: JUMP 0000409c: JUMPDEST 0000409d: PUSH1 0xff 0000409f: NOT 000040a0: AND 000040a1: DUP4 000040a2: PUSH1 0x00 000040a4: MSTORE 000040a5: PUSH1 0x20 000040a7: PUSH1 0x00 000040a9: KECCAK256 000040aa: SSTORE 000040ab: DUP2 000040ac: DUP1 000040ad: ADD 000040ae: PUSH1 0x01 000040b0: ADD 000040b1: DUP4 000040b2: SSTORE 000040b3: PUSH2 0x2fd6 000040b6: JUMP 000040b7: JUMPDEST 000040b8: DUP3 000040b9: PUSH1 0x1f 000040bb: LT 000040bc: PUSH2 0x40e7 000040bf: JUMPI 000040c0: POP 000040c1: DUP3 000040c2: PUSH1 0x00 000040c4: MSTORE 000040c5: PUSH1 0x20 000040c7: PUSH1 0x00 000040c9: KECCAK256 000040ca: DUP1 000040cb: SLOAD 000040cc: SWAP1 000040cd: DUP3 000040ce: PUSH1 0x1f 000040d0: ADD 000040d1: PUSH1 0x20 000040d3: SWAP1 000040d4: DIV 000040d5: DUP2 000040d6: ADD 000040d7: SWAP1 000040d8: PUSH2 0x40e1 000040db: SWAP2 000040dc: SWAP1 000040dd: PUSH2 0x411b 000040e0: JUMP 000040e1: JUMPDEST 000040e2: POP 000040e3: PUSH2 0x4082 000040e6: JUMP 000040e7: JUMPDEST 000040e8: POP 000040e9: DUP2 000040ea: DUP1 000040eb: ADD 000040ec: PUSH1 0x01 000040ee: ADD 000040ef: DUP4 000040f0: SSTORE 000040f1: DUP2 000040f2: DUP2 000040f3: GT 000040f4: ISZERO 000040f5: PUSH2 0x2fd6 000040f8: JUMPI 000040f9: PUSH1 0x1f 000040fb: ADD 000040fc: PUSH1 0x20 000040fe: SWAP1 000040ff: DIV 00004100: DUP2 00004101: PUSH1 0x1f 00004103: ADD 00004104: PUSH1 0x20 00004106: SWAP1 00004107: DIV 00004108: DUP4 00004109: PUSH1 0x00 0000410b: MSTORE 0000410c: PUSH1 0x20 0000410e: PUSH1 0x00 00004110: KECCAK256 00004111: SWAP2 00004112: DUP3 00004113: ADD 00004114: SWAP2 00004115: ADD 00004116: PUSH2 0x2fd6 00004119: SWAP2 0000411a: SWAP1 0000411b: JUMPDEST 0000411c: PUSH2 0x1883 0000411f: SWAP2 00004120: SWAP1 00004121: JUMPDEST 00004122: DUP1 00004123: DUP3 00004124: GT 00004125: ISZERO 00004126: PUSH2 0x4135 00004129: JUMPI 0000412a: PUSH1 0x00 0000412c: DUP2 0000412d: SSTORE 0000412e: PUSH1 0x01 00004130: ADD 00004131: PUSH2 0x4121 00004134: JUMP 00004135: JUMPDEST 00004136: POP 00004137: SWAP1 00004138: JUMP 00004139: INVALID 0000413a: MSTORE8 0000413b: PUSH14 0x61727420636f6e74726163742066 0000414a: PUSH22 0x6e6374696f6e65642063616c6c65642066726f6d206c 00004161: PUSH16 0x636b65642073746174655472616e7361 00004172: PUSH4 0x74696f6e 00004177: KECCAK256 00004178: PUSH6 0x786365656473 0000417f: KECCAK256 00004180: PUSH2 0x6c6c 00004183: PUSH16 0x77656420616d6f756e744f776e61626c 00004194: PUSH6 0x3a206e657720 0000419b: PUSH16 0x776e657220697320746865207a65726f 000041ac: KECCAK256 000041ad: PUSH2 0x6464 000041b0: PUSH19 0x65737346756e6374696f6e206d757374206265 000041c4: KECCAK256 000041c5: PUSH20 0x69676e65642062792075736572206465706f7369 000041da: PUSH21 0x696e672066756e64735472616e73616374696f6e20 000041f0: PUSH7 0x65652065786365 000041f8: PUSH6 0x6473206d6178 000041ff: PUSH10 0x6d756d2066656546756e 0000420a: PUSH4 0x74696f6e 0000420f: KECCAK256 00004210: PUSH14 0x7573742062652063616c6c656420 0000421f: PUSH3 0x792075 00004223: PUSH20 0x6572207769746864726177696e672066756e6473 00004238: CHAINID 00004239: PUSH22 0x6e6374696f6e206d7573742062652063616c6c656420 00004250: PUSH3 0x792075 00004254: PUSH20 0x6572206465706f736974696e672066756e647348 00004269: PUSH10 0x67686572206e6f6e6365 00004274: KECCAK256 00004275: PUSH9 0x6173206265656e2072 0000427f: PUSH6 0x636f72646564 00004286: KECCAK256 00004287: PUSH3 0x792075 0000428b: PUSH20 0x657220666f722074686973206173736574557064 000042a0: PUSH2 0x7465 000042a3: PUSH5 0x206f726465 000042a9: PUSH19 0x20736d616c6c207468616e2070726576696f75 000042bd: PUSH20 0x2076657273696f6e4173736574206e6f6e636520 000042d2: PUSH5 0x6f6573206e 000042d8: PUSH16 0x7420657175616c207369676e6564206e 000042e9: PUSH16 0x6e63655472616e73616374696f6e2075 000042fa: PUSH15 0x646572206d696e696d756d20616c6c 0000430a: PUSH16 0x7765642065786368616e676520726174 0000431b: PUSH6 0x416d6f756e74 00004322: KECCAK256 00004323: PUSH17 0x6172616d6574657220646f6573206e6f74 00004335: KECCAK256 00004336: PUSH14 0x617463682070726f766964656420 00004345: PUSH6 0x746865724f77 0000434c: PUSH15 0x61626c653a2063616c6c6572206973 0000435c: KECCAK256 0000435d: PUSH15 0x6f7420746865206f776e65724e6f74 0000436d: KECCAK256 0000436e: PUSH6 0x6e6f75676820 00004375: PUSH3 0x6c6f63 00004379: PUSH12 0x732068617665207061737365 00004386: PUSH5 0x2073696e63 0000438c: PUSH6 0x207769746864 00004393: PUSH19 0x6177616c20696e6974696174696f6e48696768 000043a7: PUSH6 0x72206e6f6e63 000043ae: PUSH6 0x206861732062 000043b5: PUSH6 0x656e20726563 000043bc: PUSH16 0x7264656420666f722075736572496e76 000043cd: PUSH2 0x6c69 000043d0: PUSH5 0x206d617463 000043d6: PUSH9 0x696e6720656e67696e 000043e0: PUSH6 0x207369676e61 000043e7: PUSH21 0x75726546756e6374696f6e206d7573742062652073 000043fd: PUSH10 0x676e6564206279207573 00004408: PUSH6 0x722077697468 0000440f: PUSH5 0x726177696e 00004415: PUSH8 0x2066756e64735472 0000441e: PUSH2 0x6e73 00004421: PUSH2 0x6374 00004424: PUSH10 0x6f6e2065786365656473 0000442f: KECCAK256 00004430: PUSH14 0x6178696d756d20616c6c6f776564 0000443f: KECCAK256 00004440: PUSH6 0x786368616e67 00004447: PUSH6 0x2072617465a2 0000444e: PUSH6 0x627a7a723158 00004455: KECCAK256 00004456: JUMP 00004457: ADD 00004458: COINBASE 00004459: UNKNOWN(0x2B) 0000445a: CALLCODE 0000445b: DUP5 0000445c: UNKNOWN(0xC3) 0000445d: UNKNOWN(0x0E) 0000445e: UNKNOWN(0xC0) 0000445f: SUB 00004460: UNKNOWN(0xE1) 00004461: ADD 00004462: SWAP6 00004463: NOT 00004464: UNKNOWN(0xC2) 00004465: PUSH31
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x8370fc66674ef8f7741d53d1cfb858cbdcddd9ce751a0b706ab0b96a916e4287
call_targets:
0x00f2b67b5a5ec2ff88b2be7d5a8d1a39d5929237
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x8370fc66674ef8f7741d53d1cfb858cbdcddd9ce751a0b706ab0b96a916e4287",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x00f2b67b5a5ec2ff88b2be7d5a8d1a39d5929237"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x929a0be6",
"selector": "0x929a0be6",
"calldata_variants": [
"0x929a0be6",
"0x929a0be60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc0a0dce3",
"selector": "0xc0a0dce3",
"calldata_variants": [
"0xc0a0dce3",
"0xc0a0dce30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc23c033c",
"selector": "0xc23c033c",
"calldata_variants": [
"0xc23c033c",
"0xc23c033c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcf309012",
"selector": "0xcf309012",
"calldata_variants": [
"0xcf309012",
"0xcf3090120000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffd2a7d3",
"selector": "0xffd2a7d3",
"calldata_variants": [
"0xffd2a7d3",
"0xffd2a7d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7362d9c8",
"selector": "0x7362d9c8",
"calldata_variants": [
"0x7362d9c8",
"0x7362d9c80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x79a9ce36",
"selector": "0x79a9ce36",
"calldata_variants": [
"0x79a9ce36",
"0x79a9ce360000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 12470,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 12680,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 17498,
"opcode": "CALLCODE",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x8370fc66674ef8f7741d53d1cfb858cbdcddd9ce751a0b706ab0b96a916e4287
call_targets:
0x00f2b67b5a5ec2ff88b2be7d5a8d1a39d5929237
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x8370fc66674ef8f7741d53d1cfb858cbdcddd9ce751a0b706ab0b96a916e4287",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x00f2b67b5a5ec2ff88b2be7d5a8d1a39d5929237"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x929a0be6",
"selector": "0x929a0be6",
"calldata_variants": [
"0x929a0be6",
"0x929a0be60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc0a0dce3",
"selector": "0xc0a0dce3",
"calldata_variants": [
"0xc0a0dce3",
"0xc0a0dce30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc23c033c",
"selector": "0xc23c033c",
"calldata_variants": [
"0xc23c033c",
"0xc23c033c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcf309012",
"selector": "0xcf309012",
"calldata_variants": [
"0xcf309012",
"0xcf3090120000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffd2a7d3",
"selector": "0xffd2a7d3",
"calldata_variants": [
"0xffd2a7d3",
"0xffd2a7d30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7362d9c8",
"selector": "0x7362d9c8",
"calldata_variants": [
"0x7362d9c8",
"0x7362d9c80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x79a9ce36",
"selector": "0x79a9ce36",
"calldata_variants": [
"0x79a9ce36",
"0x79a9ce360000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 12470,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 12680,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 17498,
"opcode": "CALLCODE",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|