358279af-80d9-45a4-92f6-34d52a3af971
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 |
|---|---|---|---|---|
| 31736 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 95839 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 95840 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 95841 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 95842 | capability.graph | complete | 1 / 3 | 1 week ago |
| 95843 | detector.run | complete | 1 / 3 | 1 week ago |
| 95844 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:602868] OpenAI Codex v0.77.0 (research preview)
[codex:602868] --------
[codex:602868] workdir: /tmp/codex-multi-cfuedr3_
[codex:602868] model: gpt-5.2-codex
[codex:602868] provider: openai
[codex:602868] approval: never
[codex:602868] sandbox: read-only
[codex:602868] reasoning effort: xhigh
[codex:602868] reasoning summaries: auto
[codex:602868] session id: 019b8f75-5e72-7f13-a62e-1a8c10f84702
[codex:602868] --------
[codex:602868] user
[codex:602868] 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:602868]
[codex:602868] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:602868]
[codex:602868] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:602868] - Gas inefficiency, code quality, or best practices
[codex:602868] - Theoretical vulnerabilities without a clear extraction path
[codex:602868] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:602868] - Issues requiring social engineering or off-chain coordination
[codex:602868]
[codex:602868] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:602868] - CALL/DELEGATECALL with controllable destination or calldata
[codex:602868] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:602868] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:602868] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:602868] - External calls before state updates (reentrancy)
[codex:602868] - SELFDESTRUCT with controllable beneficiary
[codex:602868] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:602868]
[codex:602868] For each finding, you MUST explain:
[codex:602868] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:602868] 2. The concrete sequence of transactions to extract value
[codex:602868] 3. Why you believe this is exploitable (not just suspicious)
[codex:602868]
[codex:602868] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:602868] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:602868]
[codex:602868] Output MUST be valid JSON matching the provided schema.
[codex:602868] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:602868] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:602868] mcp startup: no servers
[codex:602868]
[codex:602868] thinking
[codex:602868] **Reading BYTECODE_BUNDLE.txt**
[codex:602868] exec
[codex:602868] /bin/bash -lc ls in /tmp/codex-multi-cfuedr3_ succeeded in 6ms:
[codex:602868] BYTECODE_BUNDLE.txt
[codex:602868] codex-output-schema.json
[codex:602868] exec
[codex:602868] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-cfuedr3_ succeeded in 6ms:
[codex:602868] Runtime bytecode bundle for best-effort auditing.
[codex:602868] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:602868]
[codex:602868] FILE: runtime_bytecode.hex
[codex:602868] 0x6080604052600436106102305760003560e01c80638da5cb5b1161012e578063cb99728a116100ab578063dd7c5e541161006f578063dd7c5e5414610664578063ecc7ccbd14610679578063f2fde38b146106a2578063f5ac6319146106c2578063f640d508146106d757610230565b8063cb99728a146105cb578063cd7f6315146105eb578063cfed197014610600578063d0e50f0314610624578063d6c772691461064457610230565b8063acbef968116100f2578063acbef96814610534578063b45aae5214610554578063b640be8d14610574578063bfea2b3714610589578063c2b6b58c146105a957610230565b80638da5cb5b1461049057806391b7f5ed146104b257806392b3285c146104d257806396cdd995146104f2578063a0b9c7eb1461050757610230565b8063370158ea116101bc5780635d02e94b116101805780635d02e94b146103f5578063715018a61461041557806381452c071461042a57806383cbc5d41461044e578063845c93061461047d57610230565b8063370158ea14610352578063389705b9146103805780633f0bdec41461039557806347786d37146103b557806349c256e7146103d557610230565b80631b0472a9116102035780631b0472a9146102c85780631ee3c796146102e8578063235b6ea1146103085780632c19b7f31461031d5780632e1839f91461033257610230565b806304288dba14610235578063052d7c0014610257578063060cf4e8146102825780631692872e14610297575b600080fd5b34801561024157600080fd5b50610255610250366004612683565b6106f7565b005b34801561026357600080fd5b5061026c610748565b6040516102799190612fd1565b60405180910390f35b34801561028e57600080fd5b5061026c61079c565b3480156102a357600080fd5b506102b76102b2366004612549565b6107a2565b604051610279959493929190613060565b3480156102d457600080fd5b506102556102e33660046127a1565b610901565b3480156102f457600080fd5b5061026c610303366004612919565b610991565b34801561031457600080fd5b5061026c610af6565b34801561032957600080fd5b5061026c610afc565b34801561033e57600080fd5b5061025561034d366004612875565b610b02565b34801561035e57600080fd5b50610367610b8b565b6040516102799d9c9b9a99989796959493929190612ae7565b34801561038c57600080fd5b5061026c610cdf565b3480156103a157600080fd5b506102556103b0366004612771565b610ce5565b3480156103c157600080fd5b506102556103d0366004612771565b610d1f565b3480156103e157600080fd5b506102556103f03660046125a6565b610d59565b34801561040157600080fd5b50610255610410366004612549565b610e5d565b34801561042157600080fd5b50610255610eba565b34801561043657600080fd5b5061043f610f39565b60405161027993929190612b7b565b34801561045a57600080fd5b5061046e610469366004612771565b611152565b60405161027993929190612bd2565b61025561048b366004612771565b611212565b34801561049c57600080fd5b506104a561142c565b6040516102799190612aba565b3480156104be57600080fd5b506102556104cd366004612771565b61143b565b3480156104de57600080fd5b506102556104ed3660046125e5565b611475565b3480156104fe57600080fd5b506104a5611681565b34801561051357600080fd5b50610527610522366004612771565b611695565b6040516102799190612bbf565b34801561054057600080fd5b5061025561054f366004612946565b611742565b34801561056057600080fd5b5061026c61056f366004612549565b611785565b34801561058057600080fd5b5061026c6117f5565b34801561059557600080fd5b506102556105a43660046127d0565b611860565b3480156105b557600080fd5b506105be61193c565b6040516102799190612bb4565b3480156105d757600080fd5b506102556105e636600461282c565b611979565b3480156105f757600080fd5b5061026c6119fe565b34801561060c57600080fd5b50610615611a04565b60405161027993929190612fda565b34801561063057600080fd5b5061026c61063f366004612549565b611cfa565b34801561065057600080fd5b5061025561065f3660046128b1565b611d53565b34801561067057600080fd5b506105be611e05565b34801561068557600080fd5b5061068e611e0e565b604051610279989796959493929190613005565b3480156106ae57600080fd5b506102556106bd366004612549565b611f60565b3480156106ce57600080fd5b5061026c612016565b3480156106e357600080fd5b506102556106f2366004612565565b61201c565b6106ff61216f565b6000546001600160a01b039081169116146107355760405162461bcd60e51b815260040161072c90612e6c565b60405180910390fd5b6007805460ff1916911515919091179055565b600154600090815b6008548110156107955761078b6008828154811061076a57fe5b9060005260206000209060050201600101548361217390919063ffffffff16565b9150600101610750565b5090505b90565b60065481565b60408051602081019091526000808252908190600490826107c286611785565b94506107cc61193c565b6108f8576001544281111561080757600093506040516020016107ee90612a2a565b60405160208183030381529060405292508091506108f6565b6000805b6008548110156108f357610820816001612173565b96506008818154811061082f57fe5b9060005260206000209060050201915061085682600101548461217390919063ffffffff16565b9250824210156108eb576000600283015460ff16600181111561087557fe5b14156108a3576001955060405160200161088e90612a86565b60405160208183030381529060405294508293505b6001600283015460ff1660018111156108b857fe5b14156108e657600395506040516020016108d190612a5d565b60405160208183030381529060405294508293505b6108f3565b60010161080b565b50505b505b91939590929450565b61090961216f565b6000546001600160a01b039081169116146109365760405162461bcd60e51b815260040161072c90612e6c565b814710156109565760405162461bcd60e51b815260040161072c90612c9d565b6040516001600160a01b0382169083156108fc029084906000818181858888f1935050505015801561098c573d6000803e3d6000fd5b505050565b600083158061099e575082155b156109ab57506000610aef565b60006109b88560016121a1565b905060006109c78560016121a1565b60085490915082106109eb5760405162461bcd60e51b815260040161072c90612d5d565b6009548110610a0c5760405162461bcd60e51b815260040161072c90612c31565b60098181548110610a1957fe5b600091825260208083206001600160a01b03881684526001600290930201919091019052604090205460ff1615610ae857600060088381548110610a5957fe5b90600052602060002090600502016004016000866001600160a01b03166001600160a01b03168152602001908152602001600020549050600060088481548110610a9f57fe5b90600052602060002090600502016003018381548110610abb57fe5b9060005260206000200154905080821015610ae557610ada81836121a1565b945050505050610aef565b50505b6000925050505b9392505050565b60025481565b60045481565b610b0a61216f565b6000546001600160a01b03908116911614610b375760405162461bcd60e51b815260040161072c90612e6c565b6009548310610b585760405162461bcd60e51b815260040161072c90612c05565b600060098481548110610b6757fe5b600091825260209091206002909102019050610b84818484612249565b5050505050565b60408051808201909152600381526208aa8960eb1b602082015260009060128280808060608180808080610bbd6117f5565b9750610bc7610748565b9650604051806040016040528060018152602001604360f81b8152509550610bed61193c565b610c9c57600154421015610c1c57604051806040016040528060018152602001600560fc1b8152509550610c9c565b8688148015610c2a57508642105b80610c3e57508688108015610c3e57508742105b15610c6057604051806040016040528060018152602001604f60f81b81525095505b8688108015610c6f5750874210155b8015610c7a57508642105b15610c9c57604051806040016040528060018152602001602360f91b81525095505b5050600254600154600354600654600454600554600754959d50939b5091965094509250906001600160a01b0361010090910416909192939495969798999a9b9c565b60035481565b610ced61216f565b6000546001600160a01b03908116911614610d1a5760405162461bcd60e51b815260040161072c90612e6c565b600155565b610d2761216f565b6000546001600160a01b03908116911614610d545760405162461bcd60e51b815260040161072c90612e6c565b600655565b610d6161216f565b6000546001600160a01b03908116911614610d8e5760405162461bcd60e51b815260040161072c90612e6c565b80610dab5760405162461bcd60e51b815260040161072c90612f4d565b610db7600960006122c7565b60005b8181101561098c5760096040518060200160405280858585818110610ddb57fe5b9050602002810190610ded9190613097565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050835460018101855593815260209081902083518051949560020290910193610e529350849291909101906122eb565b505050600101610dba565b610e6561216f565b6000546001600160a01b03908116911614610e925760405162461bcd60e51b815260040161072c90612e6c565b600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b610ec261216f565b6000546001600160a01b03908116911614610eef5760405162461bcd60e51b815260040161072c90612e6c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60608060608060608060006008805490501115611146576008546001600160401b0381118015610f6857600080fd5b50604051908082528060200260200182016040528015610f9c57816020015b6060815260200190600190039081610f875790505b506008549093506001600160401b0381118015610fb857600080fd5b50604051908082528060200260200182016040528015610fe2578160200160208202803683370190505b506008549092506001600160401b0381118015610ffe57600080fd5b50604051908082528060200260200182016040528015611028578160200160208202803683370190505b5060015490915060005b600854811015611143576008818154811061104957fe5b6000918252602091829020600590910201805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156110dc5780601f106110b1576101008083540402835291602001916110dc565b820191906000526020600020905b8154815290600101906020018083116110bf57829003601f168201915b50505050508582815181106110ed57fe5b60200260200101819052508184828151811061110557fe5b6020026020010181815250506111216008828154811061076a57fe5b91508183828151811061113057fe5b6020908102919091010152600101611032565b50505b91945092509050909192565b6008818154811061115f57fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f8101859004850283018501909152808252919350918391908301828280156111f85780601f106111cd576101008083540402835291602001916111f8565b820191906000526020600020905b8154815290600101906020018083116111db57829003601f168201915b50505050600183015460029093015491929160ff16905083565b600081116112325760405162461bcd60e51b815260040161072c90612d28565b6000806000611240336107a2565b505092509250925080600114806112575750806003145b6112735760405162461bcd60e51b815260040161072c90612f16565b61127e828433610991565b84111561129d5760405162461bcd60e51b815260040161072c90612db1565b6006546004546112ad9086612173565b11156112cb5760405162461bcd60e51b815260040161072c90612ea1565b60006112e2600254866121e390919063ffffffff16565b90508034146113035760405162461bcd60e51b815260040161072c90612ecd565b61130c33611cfa565b6113225760035461131e906001612173565b6003555b60045461132f9086612173565b60045560055461133f9082612173565b6005556113838560086113538660016121a1565b8154811061135d57fe5b600091825260208083203384526004600590930201919091019052604090205490612173565b60086113908560016121a1565b8154811061139a57fe5b600091825260208083203380855260046005909402909101830190915260408084209490945560075493516340c10f1960e01b81526101009094046001600160a01b0316936340c10f1993926113f392918b9101612ace565b6000604051808303818588803b15801561140c57600080fd5b505af1158015611420573d6000803e3d6000fd5b50505050505050505050565b6000546001600160a01b031690565b61144361216f565b6000546001600160a01b039081169116146114705760405162461bcd60e51b815260040161072c90612e6c565b600255565b61147d61216f565b6000546001600160a01b039081169116146114aa5760405162461bcd60e51b815260040161072c90612e6c565b856114c75760405162461bcd60e51b815260040161072c90612df4565b8584146114e65760405162461bcd60e51b815260040161072c90612df4565b6114f260086000612359565b60005b8681101561167757600860405180608001604052808a8a8581811061151657fe5b90506020028101906115289190613097565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200188888581811061156e57fe5b90506020020135815260200186868581811061158657fe5b905060200201602081019061159b91906126bb565b60018111156115a657fe5b8152602001846001600160401b03811180156115c157600080fd5b506040519080825280602002602001820160405280156115eb578160200160208202803683370190505b5090528154600181018355600092835260209283902082518051939460059093029091019261161d92849201906122eb565b506020820151816001015560408201518160020160006101000a81548160ff0219169083600181111561164c57fe5b02179055506060820151805161166c91600384019160209091019061237a565b5050506001016114f5565b5050505050505050565b60075461010090046001600160a01b031681565b600981815481106116a257fe5b60009182526020918290206002918202018054604080516001831615610100026000190190921693909304601f8101859004850282018501909352828152909350918391908301828280156117385780601f1061170d57610100808354040283529160200191611738565b820191906000526020600020905b81548152906001019060200180831161171b57829003601f168201915b5050505050905081565b61174a61216f565b6000546001600160a01b039081169116146117775760405162461bcd60e51b815260040161072c90612e6c565b600392909255600455600555565b6009546000905b80156117ea57600961179f8260016121a1565b815481106117a957fe5b600091825260208083206001600160a01b03871684526001600290930201919091019052604090205460ff16156117e15790506117f0565b6000190161178c565b50600090505b919050565b600154600090815b6008548110156107955760016008828154811061181657fe5b600091825260209091206002600590920201015460ff16600181111561183857fe5b141561184657509050610799565b6118566008828154811061076a57fe5b91506001016117fd565b61186861216f565b6000546001600160a01b039081169116146118955760405162461bcd60e51b815260040161072c90612e6c565b60095484106118b65760405162461bcd60e51b815260040161072c90612c05565b6000600985815481106118c557fe5b9060005260206000209060020201905060005b838110156119345760008585838181106118ee57fe5b90506020020160208101906119039190612549565b6001600160a01b0316600090815260018085016020526040909120805460ff191686151790559190910190506118d8565b505050505050565b60075460009060ff16806119575750611953610748565b4210155b80611966575060065460045410155b1561197357506001610799565b50600090565b61198161216f565b6000546001600160a01b039081169116146119ae5760405162461bcd60e51b815260040161072c90612e6c565b60085483106119cf5760405162461bcd60e51b815260040161072c90612d84565b6000600884815481106119de57fe5b600091825260209091206005909102019050610b846003820184846123b4565b60015481565b6007546040516370a0823160e01b8152600091606091829161010090046001600160a01b031690849082906370a0823190611a43903390600401612aba565b60206040518083038186803b158015611a5b57600080fd5b505afa158015611a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a939190612789565b90508015611c8057806001600160401b0381118015611ab157600080fd5b50604051908082528060200260200182016040528015611adb578160200160208202803683370190505b509350806001600160401b0381118015611af457600080fd5b50604051908082528060200260200182016040528015611b2857816020015b6060815260200190600190039081611b135790505b50925060005b81811015611c7e57604051632f745c5960e01b81526001600160a01b03841690632f745c5990611b649033908590600401612ace565b60206040518083038186803b158015611b7c57600080fd5b505afa158015611b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb49190612789565b858281518110611bc057fe5b602002602001018181525050826001600160a01b031663c87b56dd868381518110611be757fe5b60200260200101516040518263ffffffff1660e01b8152600401611c0b9190612fd1565b60006040518083038186803b158015611c2357600080fd5b505afa158015611c37573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c5f91908101906126d7565b848281518110611c6b57fe5b6020908102919091010152600101611b2e565b505b816001600160a01b03166365cf7c9b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611cb957600080fd5b505afa158015611ccd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf19190612789565b94505050909192565b600080805b600854811015611d4c5760088181548110611d1657fe5b600091825260208083206001600160a01b0388168452600460059093020191909101905260409020549190910190600101611cff565b5092915050565b611d5b61216f565b6000546001600160a01b03908116911614611d885760405162461bcd60e51b815260040161072c90612e6c565b6008548510611da95760405162461bcd60e51b815260040161072c90612d84565b600060088681548110611db857fe5b600091825260209091206005909102019050611dd5818686612249565b506001808201849055600282018054849260ff19909116908381811115611df857fe5b0217905550505050505050565b60075460ff1681565b60008060606000606060008060008060008060606000611e2d336107a2565b94509450945094509450606085600014611ef5576009611e4e8760016121a1565b81548110611e5857fe5b60009182526020918290206002918202018054604080516001831615610100026000190190921693909304601f810185900485028201850190935282815292909190830182828015611eeb5780601f10611ec057610100808354040283529160200191611eeb565b820191906000526020600020905b815481529060010190602001808311611ece57829003601f168201915b5050505050611f10565b604051806040016040528060018152602001602d60f81b8152505b9050336001600160a01b031631336001600160a01b03163182868686611f378b8d33610991565b611f4033611cfa565b9d509d509d509d509d509d509d509d505050505050509091929394959697565b611f6861216f565b6000546001600160a01b03908116911614611f955760405162461bcd60e51b815260040161072c90612e6c565b6001600160a01b038116611fbb5760405162461bcd60e51b815260040161072c90612c57565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60055481565b61202461216f565b6000546001600160a01b039081169116146120515760405162461bcd60e51b815260040161072c90612e6c565b6040516370a0823160e01b8152839083906001600160a01b038316906370a0823190612081903090600401612aba565b60206040518083038186803b15801561209957600080fd5b505afa1580156120ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d19190612789565b10156120ef5760405162461bcd60e51b815260040161072c90612f84565b60405163a9059cbb60e01b81526001600160a01b0382169063a9059cbb9061211d9085908790600401612ace565b602060405180830381600087803b15801561213757600080fd5b505af115801561214b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b84919061269f565b3390565b6000828201838110156121985760405162461bcd60e51b815260040161072c90612cf1565b90505b92915050565b600061219883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061221d565b6000826121f25750600061219b565b828202828482816121ff57fe5b04146121985760405162461bcd60e51b815260040161072c90612e2b565b600081848411156122415760405162461bcd60e51b815260040161072c9190612bbf565b505050900390565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061228a5782800160ff198235161785556122b7565b828001600101855582156122b7579182015b828111156122b757823582559160200191906001019061229c565b506122c39291506123ee565b5090565b50805460008255600202906000526020600020908101906122e89190612403565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061232c57805160ff19168380011785556122b7565b828001600101855582156122b7579182015b828111156122b757825182559160200191906001019061233e565b50805460008255600502906000526020600020908101906122e89190612420565b8280548282559060005260206000209081019282156122b757916020028201828111156122b757825182559160200191906001019061233e565b8280548282559060005260206000209081019282156122b757916020028201828111156122b757823582559160200191906001019061229c565b5b808211156122c357600081556001016123ef565b808211156122c35760006124178282612460565b50600201612403565b808211156122c35760006124348282612460565b60006001830181905560028301805460ff191690556124579060038401906124a4565b50600501612420565b50805460018160011615610100020316600290046000825580601f1061248657506122e8565b601f0160209004906000526020600020908101906122e891906123ee565b50805460008255906000526020600020908101906122e891906123ee565b60008083601f8401126124d3578182fd5b5081356001600160401b038111156124e9578182fd5b602083019150836020808302850101111561250357600080fd5b9250929050565b60008083601f84011261251b578182fd5b5081356001600160401b03811115612531578182fd5b60208301915083602082850101111561250357600080fd5b60006020828403121561255a578081fd5b81356121988161310b565b600080600060608486031215612579578182fd5b83356125848161310b565b925060208401359150604084013561259b8161310b565b809150509250925092565b600080602083850312156125b8578182fd5b82356001600160401b038111156125cd578283fd5b6125d9858286016124c2565b90969095509350505050565b60008060008060008060006080888a0312156125ff578283fd5b87356001600160401b0380821115612615578485fd5b6126218b838c016124c2565b909950975060208a0135915080821115612639578485fd5b6126458b838c016124c2565b909750955060408a013591508082111561265d578485fd5b5061266a8a828b016124c2565b989b979a50959894979596606090950135949350505050565b600060208284031215612694578081fd5b813561219881613120565b6000602082840312156126b0578081fd5b815161219881613120565b6000602082840312156126cc578081fd5b81356121988161312e565b6000602082840312156126e8578081fd5b81516001600160401b03808211156126fe578283fd5b818401915084601f830112612711578283fd5b81518181111561271f578384fd5b604051601f8201601f19168101602001838111828210171561273f578586fd5b604052818152838201602001871015612756578485fd5b6127678260208301602087016130db565b9695505050505050565b600060208284031215612782578081fd5b5035919050565b60006020828403121561279a578081fd5b5051919050565b600080604083850312156127b3578182fd5b8235915060208301356127c58161310b565b809150509250929050565b600080600080606085870312156127e5578384fd5b8435935060208501356001600160401b03811115612801578384fd5b61280d878288016124c2565b909450925050604085013561282181613120565b939692955090935050565b600080600060408486031215612840578081fd5b8335925060208401356001600160401b0381111561285c578182fd5b612868868287016124c2565b9497909650939450505050565b600080600060408486031215612889578081fd5b8335925060208401356001600160401b038111156128a5578182fd5b6128688682870161250a565b6000806000806000608086880312156128c8578283fd5b8535945060208601356001600160401b038111156128e4578384fd5b6128f08882890161250a565b90955093505060408601359150606086013561290b8161312e565b809150509295509295909350565b60008060006060848603121561292d578081fd5b8335925060208401359150604084013561259b8161310b565b60008060006060848603121561295a578081fd5b505081359360208301359350604090920135919050565b6000815180845260208085018081965082840281019150828601855b858110156129b75782840389526129a58483516129fe565b9885019893509084019060010161298d565b5091979650505050505050565b6000815180845260208085019450808401835b838110156129f3578151875295820195908201906001016129d7565b509495945050505050565b60008151808452612a168160208601602086016130db565b601f01601f19169290920160200192915050565b7f416c6c6f636174696f6e20526f756e64203c753e6f70656e733c2f753e20696e8152601d60f91b602082015260210190565b7f4643465320526f756e64203c753e636c6f7365733c2f753e20696e3a000000008152601c0190565b7f416c6c6f636174696f6e20526f756e64203c753e636c6f7365733c2f753e2069815261371d60f11b602082015260220190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b038e1681526101a060208201819052600090612b0c9083018f6129fe565b8d60408401528c60608401528b60808401528a60a08401528960c084015282810360e0840152612b3c818a6129fe565b61010084019890985250506101208101949094526101408401929092526101608301526001600160a01b03166101809091015298975050505050505050565b600060608252612b8e6060830186612971565b8281036020840152612ba081866129c4565b9050828103604084015261276781856129c4565b901515815260200190565b60006020825261219860208301846129fe565b600060608252612be560608301866129fe565b905083602083015260028310612bf757fe5b826040830152949350505050565b602080825260129082015271092dcecc2d8d2c840e8d2cae440d2dcc8caf60731b604082015260600190565b6020808252600c908201526b24b73b30b634b2103a34b2b960a11b604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526034908201527f496e737566666963656e74206e617469766520746f6b656e2062616c616e6365604082015273103a37903a3930b739b332b91030b6b7bab73a1760611b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252818101527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f604082015260600190565b6020808252600d908201526c125b9d985b1a59081c9bdd5b99609a1b604082015260600190565b602080825260139082015272092dcecc2d8d2c840e4deeadcc840d2dcc8caf606b1b604082015260600190565b60208082526023908201527f416d6f756e7420657863656564732072656d61696e696e6720616c6c6f63617460408201526234b7b760e91b606082015260800190565b60208082526018908201527f496e76616c696420726f756e6473207370656369666965640000000000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601290820152710416d6f756e742065786365656473206361760741b604082015260600190565b60208082526029908201527f496e737566666963656e74206e617469766520746f6b656e2073656e7420746f6040820152680818dbdb9d1c9858dd60ba1b606082015260800190565b6020808252601c908201527f50617274696369706174696f6e206e6f742076616c69642f6f70656e00000000604082015260600190565b60208082526017908201527f496e76616c696420746965727320737065636966696564000000000000000000604082015260600190565b6020808252602d908201527f496e737566666963656e7420746f6b656e2062616c616e636520746f2074726160408201526c3739b332b91030b6b7bab73a1760991b606082015260800190565b90815260200190565b600084825260606020830152612ff360608301856129c4565b82810360408401526127678185612971565b60006101008a83528960208401528060408401526130258184018a6129fe565b9050876060840152828103608084015261303f81886129fe565b60a0840196909652505060c081019290925260e09091015295945050505050565b600086825285602083015284604083015260a0606083015261308560a08301856129fe565b90508260808301529695505050505050565b6000808335601e198436030181126130ad578283fd5b8301803591506001600160401b038211156130c6578283fd5b60200191503681900382131561250357600080fd5b60005b838110156130f65781810151838201526020016130de565b83811115613105576000848401525b50505050565b6001600160a01b03811681146122e857600080fd5b80151581146122e857600080fd5b600281106122e857600080fdfea2646970667358221220ca3a74557c979baf917473dc22321c4d9527653be91e030acad3ab7b6205f0b364736f6c634300060c0033
[codex:602868]
[codex:602868] thinking
[codex:602868] **Analyzing bytecode for exploits**
[codex:602868]
[codex:602868] I'm carefully dissecting the contract's bytecode to identify any exploitable vulnerabilities, focusing on owner checks, token or ETH transfers, and special opcodes like SELFDESTRUCT. I’m mapping function selectors to names, interpreting internal calls like `_msgSender()`, and considering writing a lightweight disassembler in Python to detect risky CALL instructions while ensuring any findings are concrete before reporting.
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] # first line after 0x... read until newline? Actually file contains hex on one line
[codex:602868] hexdata = hexdata.strip()
[codex:602868] # remove any non-hex chars
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] print('len bytes', len(hexdata)//2)
[codex:602868] # opcode map
[codex:602868] opnames = {
[codex:602868] 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:602868] 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:602868] 0x20:'SHA3',
[codex:602868] 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:602868] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:602868] 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:602868] 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:602868] 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:602868] 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:602868] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:602868] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:602868] }
[codex:602868] # disassemble and collect indices of CALL/DELEGATECALL/SELFDESTRUCT
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868] ops = []
[codex:602868] i=0
[codex:602868] while i < len(bytecode):
[codex:602868] op = bytecode[i]
[codex:602868] name = opnames.get(op, 'INVALID')
[codex:602868] ops.append((i,op,name))
[codex:602868] i += 1
[codex:602868] if 0x60 <= op <= 0x7f:
[codex:602868] i += (op-0x5f)
[codex:602868]
[codex:602868] # find CALL/DELEGATECALL/SELFDESTRUCT
[codex:602868] for i,op,name in ops:
[codex:602868] if name in ('CALL','DELEGATECALL','SELFDESTRUCT'):
[codex:602868] print(hex(i), name)
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 42ms:
[codex:602868] len bytes 12657
[codex:602868] 0x976 CALL
[codex:602868] 0x140f CALL
[codex:602868] 0x213a CALL
[codex:602868]
[codex:602868] thinking
[codex:602868] **Analyzing CALL instructions in bytecode**
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868]
[codex:602868] opnames = {
[codex:602868] 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:602868] 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:602868] 0x20:'SHA3',
[codex:602868] 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:602868] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:602868] 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:602868] 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:602868] 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:602868] 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:602868] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:602868] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:602868] }
[codex:602868]
[codex:602868] # simple disassembler
[codex:602868]
[codex:602868] def disasm(start, end):
[codex:602868] i = start
[codex:602868] out = []
[codex:602868] while i < end and i < len(bytecode):
[codex:602868] op = bytecode[i]
[codex:602868] name = opnames.get(op, 'INVALID')
[codex:602868] i0 = i
[codex:602868] i += 1
[codex:602868] if 0x60 <= op <= 0x7f:
[codex:602868] n = op - 0x5f
[codex:602868] data = bytecode[i:i+n]
[codex:602868] out.append((i0, name, data.hex()))
[codex:602868] i += n
[codex:602868] else:
[codex:602868] out.append((i0, name, None))
[codex:602868] return out
[codex:602868]
[codex:602868] call_offsets = [0x976,0x140f,0x213a]
[codex:602868] for off in call_offsets:
[codex:602868] print('--- CALL at', hex(off),'---')
[codex:602868] start = max(0, off-60)
[codex:602868] end = off+40
[codex:602868] for addr, name, data in disasm(start, end):
[codex:602868] if addr==off: marker='>>'
[codex:602868] else: marker=' '
[codex:602868] if data is not None:
[codex:602868] print(f\"{marker}{addr:04x}: {name} {data}\")
[codex:602868] else:
[codex:602868] print(f\"{marker}{addr:04x}: {name}\")
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 47ms:
[codex:602868] --- CALL at 0x976 ---
[codex:602868] 093a: ISZERO
[codex:602868] 093b: PUSH2 0956
[codex:602868] 093e: JUMPI
[codex:602868] 093f: PUSH1 40
[codex:602868] 0941: MLOAD
[codex:602868] 0942: PUSH3 461bcd
[codex:602868] 0946: PUSH1 e5
[codex:602868] 0948: SHL
[codex:602868] 0949: DUP2
[codex:602868] 094a: MSTORE
[codex:602868] 094b: PUSH1 04
[codex:602868] 094d: ADD
[codex:602868] 094e: PUSH2 072c
[codex:602868] 0951: SWAP1
[codex:602868] 0952: PUSH2 2c9d
[codex:602868] 0955: JUMP
[codex:602868] 0956: JUMPDEST
[codex:602868] 0957: PUSH1 40
[codex:602868] 0959: MLOAD
[codex:602868]
[codex:602868] thinking
[codex:602868] **Analyzing CALL instructions and function mapping**
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868] # find jumpdest near 0x901
[codex:602868] jds = [i for i,b in enumerate(bytecode) if b==0x5b]
[codex:602868] for i in jds:
[codex:602868] if 0x8e0 <= i <= 0x920:
[codex:602868] print(hex(i))
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 31ms:
[codex:602868] 0x8e6
[codex:602868] 0x8eb
[codex:602868] 0x8f3
[codex:602868] 0x8f6
[codex:602868] 0x8f8
[codex:602868] 0x901
[codex:602868] 0x909
[codex:602868]
[codex:602868] thinking
[codex:602868] **Analyzing function dispatch and internal calls**
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868]
[codex:602868] opnames = {i: name for i, name in {
[codex:602868] 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:602868] 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:602868] 0x20:'SHA3',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:602868] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:602868] 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:602868] 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:602868] 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:602868] 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:602868] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:602868] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:602868] }.items()}
[codex:602868]
[codex:602868] def disasm(start, end):
[codex:602868] i = start
[codex:602868] while i < end and i < len(bytecode):
[codex:602868] op = bytecode[i]
[codex:602868] name = opnames.get(op, 'INVALID')
[codex:602868] addr=i
[codex:602868] i+=1
[codex:602868] if 0x60 <= op <= 0x7f:
[codex:602868] n=op-0x5f
[codex:602868] data=bytecode[i:i+n]
[codex:602868] i+=n
[codex:602868] print(f\"{addr:04x}: {name} {data.hex()}\")
[codex:602868] else:
[codex:602868] print(f\"{addr:04x}: {name}\")
[codex:602868]
[codex:602868] print('disasm around 0x901:')
[codex:602868] disasm(0x901, 0x9c0)
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 31ms:
[codex:602868] disasm around 0x901:
[codex:602868] 0901: JUMPDEST
[codex:602868] 0902: PUSH2 0909
[codex:602868] 0905: PUSH2 216f
[codex:602868] 0908: JUMP
[codex:602868] 0909: JUMPDEST
[codex:602868] 090a: PUSH1 00
[codex:602868] 090c: SLOAD
[codex:602868] 090d: PUSH1 01
[codex:602868] 090f: PUSH1 01
[codex:602868] 0911: PUSH1 a0
[codex:602868] 0913: SHL
[codex:602868] 0914: SUB
[codex:602868] 0915: SWAP1
[codex:602868] 0916: DUP2
[codex:602868] 0917: AND
[codex:602868] 0918: SWAP2
[codex:602868] 0919: AND
[codex:602868] 091a: EQ
[codex:602868] 091b: PUSH2 0936
[codex:602868]
[codex:602868] thinking
[codex:602868] **Analyzing withdrawal function mechanics**
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868]
[codex:602868] opnames = {i: name for i, name in {
[codex:602868] 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:602868] 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:602868] 0x20:'SHA3',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:602868] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:602868] 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:602868] 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:602868] 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:602868] 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:602868] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:602868] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:602868] }.items()}
[codex:602868]
[codex:602868] def disasm(start, end):
[codex:602868] i = start
[codex:602868] while i < end and i < len(bytecode):
[codex:602868] op = bytecode[i]
[codex:602868] name = opnames.get(op, 'INVALID')
[codex:602868] addr=i
[codex:602868] i+=1
[codex:602868] if 0x60 <= op <= 0x7f:
[codex:602868] n=op-0x5f
[codex:602868] data=bytecode[i:i+n]
[codex:602868] i+=n
[codex:602868] print(f\"{addr:04x}: {name} {data.hex()}\")
[codex:602868] else:
[codex:602868] print(f\"{addr:04x}: {name}\")
[codex:602868]
[codex:602868] print('disasm around 0x12b0-0x1450:')
[codex:602868] disasm(0x12b0, 0x1450)
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 37ms:
[codex:602868] disasm around 0x12b0-0x1450:
[codex:602868] 12b0: PUSH2 12cb
[codex:602868] 12b3: JUMPI
[codex:602868] 12b4: PUSH1 40
[codex:602868] 12b6: MLOAD
[codex:602868] 12b7: PUSH3 461bcd
[codex:602868] 12bb: PUSH1 e5
[codex:602868] 12bd: SHL
[codex:602868] 12be: DUP2
[codex:602868] 12bf: MSTORE
[codex:602868] 12c0: PUSH1 04
[codex:602868] 12c2: ADD
[codex:602868] 12c3: PUSH2 072c
[codex:602868] 12c6: SWAP1
[codex:602868] 12c7: PUSH2 2ea1
[codex:602868] 12ca: JUMP
[codex:602868] 12cb: JUMPDEST
[codex:602868] 12cc: PUSH1 00
[codex:602868] 12ce: PUSH2 12e2
[codex:602868] 12d1: PUSH1 02
[codex:602868]
[codex:602868] thinking
[codex:602868] **Tracing function caller and access controls**
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868] for i,b in enumerate(bytecode):
[codex:602868] if b==0x5b and 0x1100 <= i <= 0x1300:
[codex:602868] print(hex(i))
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 32ms:
[codex:602868] 0x1105
[codex:602868] 0x1121
[codex:602868] 0x1130
[codex:602868] 0x1143
[codex:602868] 0x1146
[codex:602868] 0x1152
[codex:602868] 0x115f
[codex:602868] 0x11cd
[codex:602868] 0x11db
[codex:602868] 0x11f8
[codex:602868] 0x1212
[codex:602868] 0x1232
[codex:602868] 0x1240
[codex:602868] 0x1257
[codex:602868] 0x1273
[codex:602868] 0x127e
[codex:602868] 0x129d
[codex:602868] 0x12ad
[codex:602868] 0x12cb
[codex:602868] 0x12e2
[codex:602868]
[codex:602868] thinking
[codex:602868] **Analyzing potential function entry points**
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868]
[codex:602868] opnames = {i: name for i, name in {
[codex:602868] 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:602868] 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:602868] 0x20:'SHA3',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:602868] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:602868] 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:602868] 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:602868] 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:602868] 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:602868] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:602868] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:602868] }.items()}
[codex:602868]
[codex:602868] def disasm(start, end):
[codex:602868] i = start
[codex:602868] while i < end and i < len(bytecode):
[codex:602868] op = bytecode[i]
[codex:602868] name = opnames.get(op, 'INVALID')
[codex:602868] addr=i
[codex:602868] i+=1
[codex:602868] if 0x60 <= op <= 0x7f:
[codex:602868] n=op-0x5f
[codex:602868] data=bytecode[i:i+n]
[codex:602868] i+=n
[codex:602868] print(f\"{addr:04x}: {name} {data.hex()}\")
[codex:602868] else:
[codex:602868] print(f\"{addr:04x}: {name}\")
[codex:602868]
[codex:602868] print('disasm 0x11f0-0x12f0:')
[codex:602868] disasm(0x11f0, 0x12f0)
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 47ms:
[codex:602868] disasm 0x11f0-0x12f0:
[codex:602868] 11f0: SWAP1
[codex:602868] 11f1: SUB
[codex:602868] 11f2: PUSH1 1f
[codex:602868] 11f4: AND
[codex:602868] 11f5: DUP3
[codex:602868] 11f6: ADD
[codex:602868] 11f7: SWAP2
[codex:602868] 11f8: JUMPDEST
[codex:602868] 11f9: POP
[codex:602868] 11fa: POP
[codex:602868] 11fb: POP
[codex:602868] 11fc: POP
[codex:602868] 11fd: PUSH1 01
[codex:602868] 11ff: DUP4
[codex:602868] 1200: ADD
[codex:602868] 1201: SLOAD
[codex:602868] 1202: PUSH1 02
[codex:602868] 1204: SWAP1
[codex:602868] 1205: SWAP4
[codex:602868]
[codex:602868] thinking
[codex:602868] **Analyzing function behavior and safety checks**
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868]
[codex:602868] opnames = {i: name for i, name in {
[codex:602868] 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:602868] 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:602868] 0x20:'SHA3',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:602868] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:602868] 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:602868] 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:602868] 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:602868] 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:602868] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:602868] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:602868] }.items()}
[codex:602868]
[codex:602868] def disasm(start, end):
[codex:602868] i = start
[codex:602868] while i < end and i < len(bytecode):
[codex:602868] op = bytecode[i]
[codex:602868] name = opnames.get(op, 'INVALID')
[codex:602868] addr=i
[codex:602868] i+=1
[codex:602868] if 0x60 <= op <= 0x7f:
[codex:602868] n=op-0x5f
[codex:602868] data=bytecode[i:i+n]
[codex:602868] i+=n
[codex:602868] print(f\"{addr:04x}: {name} {data.hex()}\")
[codex:602868] else:
[codex:602868] print(f\"{addr:04x}: {name}\")
[codex:602868]
[codex:602868] print('disasm 0x1ff0-0x2180:')
[codex:602868] disasm(0x1ff0, 0x2180)
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 29ms:
[codex:602868] disasm 0x1ff0-0x2180:
[codex:602868] 1ff0: PUSH5 57e091a360
[codex:602868] 1ff6: STOP
[codex:602868] 1ff7: DUP1
[codex:602868] 1ff8: SLOAD
[codex:602868] 1ff9: PUSH1 01
[codex:602868] 1ffb: PUSH1 01
[codex:602868] 1ffd: PUSH1 a0
[codex:602868] 1fff: SHL
[codex:602868] 2000: SUB
[codex:602868] 2001: NOT
[codex:602868] 2002: AND
[codex:602868] 2003: PUSH1 01
[codex:602868] 2005: PUSH1 01
[codex:602868] 2007: PUSH1 a0
[codex:602868] 2009: SHL
[codex:602868] 200a: SUB
[codex:602868] 200b: SWAP3
[codex:602868] 200c: SWAP1
[codex:602868] 200d: SWAP3
[codex:602868]
[codex:602868] thinking
[codex:602868] **Analyzing owner checks and storage writes**
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868] # find ORIGIN opcode 0x32 positions
[codex:602868] positions = [i for i,b in enumerate(bytecode) if b==0x32]
[codex:602868] print('ORIGIN count', len(positions))
[codex:602868] print('first few', [hex(p) for p in positions[:10]])
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 31ms:
[codex:602868] ORIGIN count 7
[codex:602868] first few ['0x1fd', '0x1141', '0x1219', '0x2cda', '0x2ebc', '0x2fba', '0x3153']
[codex:602868]
[codex:602868] thinking
[codex:602868] **Examining ORIGIN opcode occurrences**
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868]
[codex:602868] opnames = {i: name for i, name in {
[codex:602868] 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:602868] 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:602868] 0x20:'SHA3',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:602868] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:602868] 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:602868] 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:602868] 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:602868] 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:602868] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:602868] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:602868] }.items()}
[codex:602868]
[codex:602868] def disasm(start, end):
[codex:602868] i=start
[codex:602868] while i<end and i < len(bytecode):
[codex:602868] op=bytecode[i]
[codex:602868] name=opnames.get(op,'INVALID')
[codex:602868] addr=i
[codex:602868] i+=1
[codex:602868] if 0x60 <= op <= 0x7f:
[codex:602868] n=op-0x5f
[codex:602868] data=bytecode[i:i+n]
[codex:602868] i+=n
[codex:602868] print(f\"{addr:04x}: {name} {data.hex()}\")
[codex:602868] else:
[codex:602868] print(f\"{addr:04x}: {name}\")
[codex:602868]
[codex:602868] for start in [0x1100,0x1130,0x1140,0x1150]:
[codex:602868] print('\\n--',hex(start),'--')
[codex:602868] disasm(start,start+0x30)
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 33ms:
[codex:602868]
[codex:602868] -- 0x1100 --
[codex:602868] 1100: PUSH2 1105
[codex:602868] 1103: JUMPI
[codex:602868] 1104: INVALID
[codex:602868] 1105: JUMPDEST
[codex:602868] 1106: PUSH1 20
[codex:602868] 1108: MUL
[codex:602868] 1109: PUSH1 20
[codex:602868] 110b: ADD
[codex:602868] 110c: ADD
[codex:602868] 110d: DUP2
[codex:602868] 110e: DUP2
[codex:602868] 110f: MSTORE
[codex:602868] 1110: POP
[codex:602868] 1111: POP
[codex:602868] 1112: PUSH2 1121
[codex:602868] 1115: PUSH1 08
[codex:602868] 1117: DUP3
[codex:602868] 1118: DUP2
[codex:602868]
[codex:602868] thinking
[codex:602868] **Analyzing contract functions and reentrancy risks**
[codex:602868]
[codex:602868] I'm examining function layouts to spot owner-only controls, token minting, and possible reentrancy vectors, especially verifying if state updates happen before external calls to ensure safe execution flow. I’m also considering if token contract callbacks might bypass protections, and scanning for signature verification patterns that could have nonce-related flaws.
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868]
[codex:602868] staticcalls = [i for i,b in enumerate(bytecode) if b==0xfa]
[codex:602868] print('STATICCALLs', len(staticcalls))
[codex:602868] print([hex(i) for i in staticcalls[:20]])
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 28ms:
[codex:602868] STATICCALLs 8
[codex:602868] ['0x642', '0x130a', '0x1a5e', '0x1b7f', '0x1c26', '0x1cbc', '0x1f3e', '0x209c']
[codex:602868]
[codex:602868] thinking
[codex:602868] **Analyzing potential token sale vulnerabilities**
[codex:602868]
[codex:602868] I'm examining bytecode and error strings that suggest a token sale contract with rounds and tiers. The key is whether token claims or refunds could be exploited by missing state updates, but only one ERC20 transfer call exists—likely owner-only withdrawals. Minting appears direct to participants, so I’m focusing on whether integer division or rounding in price calculations could let attackers pay zero or less than intended. I'll explore the function near 0x21e3 to understand the pricing logic better.
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868]
[codex:602868] opnames = {i: name for i, name in {
[codex:602868] 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:602868] 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:602868] 0x20:'SHA3',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:602868] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:602868] 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:602868] 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:602868] 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:602868] 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:602868] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:602868] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:602868] }.items()}
[codex:602868]
[codex:602868] def disasm(start, end):
[codex:602868] i=start
[codex:602868] while i<end and i<len(bytecode):
[codex:602868] op=bytecode[i]
[codex:602868] name=opnames.get(op,'INVALID')
[codex:602868] addr=i
[codex:602868] i+=1
[codex:602868] if 0x60<=op<=0x7f:
[codex:602868] n=op-0x5f
[codex:602868] data=bytecode[i:i+n]
[codex:602868] i+=n
[codex:602868] print(f\"{addr:04x}: {name} {data.hex()}\")
[codex:602868] else:
[codex:602868] print(f\"{addr:04x}: {name}\")
[codex:602868]
[codex:602868] # find jumpdest near 0x21e3
[codex:602868] for i,b in enumerate(bytecode):
[codex:602868] if b==0x5b and 0x21d0<=i<=0x2220:
[codex:602868] print('JUMPDEST',hex(i))
[codex:602868] print('disasm around 0x21d0:')
[codex:602868] disasm(0x21d0,0x2230)
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 31ms:
[codex:602868] JUMPDEST 0x21e3
[codex:602868] JUMPDEST 0x21f2
[codex:602868] JUMPDEST 0x21ff
[codex:602868] JUMPDEST 0x221d
[codex:602868] disasm around 0x21d0:
[codex:602868] 21d0: PUSH15 206f766572666c6f77000081525061
[codex:602868] 21e0: INVALID
[codex:602868] 21e1: SAR
[codex:602868] 21e2: JUMP
[codex:602868] 21e3: JUMPDEST
[codex:602868] 21e4: PUSH1 00
[codex:602868] 21e6: DUP3
[codex:602868] 21e7: PUSH2 21f2
[codex:602868] 21ea: JUMPI
[codex:602868] 21eb: POP
[codex:602868] 21ec: PUSH1 00
[codex:602868] 21ee: PUSH2 219b
[codex:602868] 21f1: JUMP
[codex:602868] 21f2: JUMPDEST
[codex:602868] 21f3: DUP3
[codex:602868]
[codex:602868] thinking
[codex:602868] **Analyzing SafeMath and storage writes for vulnerabilities**
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868]
[codex:602868] opnames = {i: name for i, name in {
[codex:602868] 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:602868] 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:602868] 0x20:'SHA3',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:602868] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:602868] 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:602868] 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:602868] 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:602868] 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:602868] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:602868] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:602868] }.items()}
[codex:602868]
[codex:602868] # disassemble into list of (addr, op, name, pushdata)
[codex:602868] ops=[]
[codex:602868] i=0
[codex:602868] while i < len(bytecode):
[codex:602868] op=bytecode[i]
[codex:602868] name=opnames.get(op,'INVALID')
[codex:602868] addr=i
[codex:602868] i+=1
[codex:602868] data=None
[codex:602868] if 0x60<=op<=0x7f:
[codex:602868] n=op-0x5f
[codex:602868] data=bytecode[i:i+n]
[codex:602868] i+=n
[codex:602868] ops.append((addr,op,name,data))
[codex:602868]
[codex:602868] # map addr to index for quick lookup
[codex:602868] addr_to_idx = {addr:idx for idx,(addr,_,_,_) in enumerate(ops)}
[codex:602868]
[codex:602868] sstore_info=[]
[codex:602868] for idx,(addr,op,name,data) in enumerate(ops):
[codex:602868] if name=='SSTORE':
[codex:602868] # capture previous 6 ops
[codex:602868] prev = ops[max(0, idx-6):idx]
[codex:602868] sstore_info.append((addr, prev))
[codex:602868]
[codex:602868] # print summary of SSTORE with immediate PUSH const if present
[codex:602868] for addr, prev in sstore_info:
[codex:602868] prev_str = []
[codex:602868] for a,o,n,d in prev:
[codex:602868] if d is not None:
[codex:602868] prev_str.append(f\"{a:04x}:{n} {d.hex()}\")
[codex:602868] else:
[codex:602868] prev_str.append(f\"{a:04x}:{n}\")
[codex:602868] print(f\"SSTORE at {addr:04x} prev: {' | '.join(prev_str)}\")
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 38ms:
[codex:602868] SSTORE at 0746 prev: 0740:ISZERO | 0741:SWAP2 | 0742:SWAP1 | 0743:SWAP2 | 0744:OR | 0745:SWAP1
[codex:602868] SSTORE at 0d1d prev: 0d12:PUSH2 072c | 0d15:SWAP1 | 0d16:PUSH2 2e6c | 0d19:JUMP | 0d1a:JUMPDEST | 0d1b:PUSH1 01
[codex:602868] SSTORE at 0d57 prev: 0d4c:PUSH2 072c | 0d4f:SWAP1 | 0d50:PUSH2 2e6c | 0d53:JUMP | 0d54:JUMPDEST | 0d55:PUSH1 06
[codex:602868] SSTORE at 0e2b prev: 0e24:DUP4 | 0e25:SLOAD | 0e26:PUSH1 01 | 0e28:DUP2 | 0e29:ADD | 0e2a:DUP6
[codex:602868] SSTORE at 0eb8 prev: 0eb2:AND | 0eb3:SWAP2 | 0eb4:SWAP1 | 0eb5:SWAP2 | 0eb6:OR | 0eb7:SWAP1
[codex:602868] SSTORE at 0f37 prev: 0f30:PUSH1 a0 | 0f32:SHL | 0f33:SUB | 0f34:NOT | 0f35:AND | 0f36:SWAP1
[codex:602868] SSTORE at 1321 prev: 1317:SWAP1 | 1318:PUSH1 01 | 131a:PUSH2 2173 | 131d:JUMP | 131e:JUMPDEST | 131f:PUSH1 03
[codex:602868] SSTORE at 1332 prev: 1329:SWAP1 | 132a:DUP7 | 132b:PUSH2 2173 | 132e:JUMP | 132f:JUMPDEST | 1330:PUSH1 04
[codex:602868] SSTORE at 1342 prev: 1339:SWAP1 | 133a:DUP3 | 133b:PUSH2 2173 | 133e:JUMP | 133f:JUMPDEST | 1340:PUSH1 05
[codex:602868] SSTORE at 13c0 prev: 13ba:DUP1 | 13bb:DUP5 | 13bc:SHA3 | 13bd:SWAP5 | 13be:SWAP1 | 13bf:SWAP5
[codex:602868] SSTORE at 1473 prev: 1468:PUSH2 072c | 146b:SWAP1 | 146c:PUSH2 2e6c | 146f:JUMP | 1470:JUMPDEST | 1471:PUSH1 02
[codex:602868] SSTORE at 15f6 prev: 15ef:DUP2 | 15f0:SLOAD | 15f1:PUSH1 01 | 15f3:DUP2 | 15f4:ADD | 15f5:DUP4
[codex:602868] SSTORE at 1628 prev: 1621:DUP3 | 1622:ADD | 1623:MLOAD | 1624:DUP2 | 1625:PUSH1 01 | 1627:ADD
[codex:602868] SSTORE at 1650 prev: 164a:JUMPI | 164b:INVALID | 164c:JUMPDEST | 164d:MUL | 164e:OR | 164f:SWAP1
[codex:602868] SSTORE at 177d prev: 1776:JUMP | 1777:JUMPDEST | 1778:PUSH1 03 | 177a:SWAP3 | 177b:SWAP1 | 177c:SWAP3
[codex:602868] SSTORE at 1780 prev: 1778:PUSH1 03 | 177a:SWAP3 | 177b:SWAP1 | 177c:SWAP3 | 177d:SSTORE | 177e:PUSH1 04
[codex:602868] SSTORE at 1783 prev: 177b:SWAP1 | 177c:SWAP3 | 177d:SSTORE | 177e:PUSH1 04 | 1780:SSTORE | 1781:PUSH1 05
[codex:602868] SSTORE at 1929 prev: 1923:NOT | 1924:AND | 1925:DUP7 | 1926:ISZERO | 1927:OR | 1928:SWAP1
[codex:602868] SSTORE at 1dde prev: 1dd7:PUSH1 01 | 1dd9:DUP1 | 1dda:DUP3 | 1ddb:ADD | 1ddc:DUP5 | 1ddd:SWAP1
[codex:602868] SSTORE at 1dfc prev: 1df6:JUMPI | 1df7:INVALID | 1df8:JUMPDEST | 1df9:MUL | 1dfa:OR | 1dfb:SWAP1
[codex:602868]
[codex:602868] thinking
[codex:602868] **Analyzing storage writes for owner checks**
[codex:602868] exec
[codex:602868] /bin/bash -lc "python - <<'PY'
[codex:602868] from pathlib import Path
[codex:602868] hexdata = Path('BYTECODE_BUNDLE.txt').read_text().split('0x',1)[1].split('\\n',1)[0].strip()
[codex:602868] hexdata = ''.join(c for c in hexdata if c in '0123456789abcdefABCDEF')
[codex:602868] bytecode = bytes.fromhex(hexdata)
[codex:602868]
[codex:602868] opnames = {i: name for i, name in {
[codex:602868] 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:602868] 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:602868] 0x20:'SHA3',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:602868] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:602868] 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:602868] 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:602868] 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:602868] 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:602868] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:602868] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:602868] }.items()}
[codex:602868]
[codex:602868] def disasm(start,end):
[codex:602868] i=start
[codex:602868] while i<end and i < len(bytecode):
[codex:602868] op=bytecode[i]
[codex:602868] name=opnames.get(op,'INVALID')
[codex:602868] addr=i
[codex:602868] i+=1
[codex:602868] if 0x60<=op<=0x7f:
[codex:602868] n=op-0x5f
[codex:602868] data=bytecode[i:i+n]
[codex:602868] i+=n
[codex:602868] print(f\"{addr:04x}: {name} {data.hex()}\")
[codex:602868] else:
[codex:602868] print(f\"{addr:04x}: {name}\")
[codex:602868]
[codex:602868] print('disasm 0x0cc0-0x0d80:')
[codex:602868] disasm(0x0cc0,0x0d80)
[codex:602868] PY" in /tmp/codex-multi-cfuedr3_ succeeded in 31ms:
[codex:602868] disasm 0x0cc0-0x0d80:
[codex:602868] 0cc0: POP
[codex:602868] 0cc1: SWAP1
[codex:602868] 0cc2: PUSH1 01
[codex:602868] 0cc4: PUSH1 01
[codex:602868] 0cc6: PUSH1 a0
[codex:602868] 0cc8: SHL
[codex:602868] 0cc9: SUB
[codex:602868] 0cca: PUSH2 0100
[codex:602868] 0ccd: SWAP1
[codex:602868] 0cce: SWAP2
[codex:602868] 0ccf: DIV
[codex:602868] 0cd0: AND
[codex:602868] 0cd1: SWAP1
[codex:602868] 0cd2: SWAP2
[codex:602868] 0cd3: SWAP3
[codex:602868] 0cd4: SWAP4
[codex:602868] 0cd5: SWAP5
[codex:602868] 0cd6: SWAP6
[codex:602868] 0cd7: SWAP7
[codex:602868]
[codex:602868] thinking
[codex:602868] **Preparing JSON response for exploit search**
[codex:602868] codex
[codex:602868] {"no_findings":true,"summary":"Reviewed runtime bytecode in BYTECODE_BUNDLE.txt; only three external CALLs found (ETH transfer, ERC20 mint, ERC20 transfer) and no DELEGATECALL/SELFDESTRUCT. The value-transferring calls are gated by owner checks or strict payment/round logic, and no unprotected value-transfer or upgrade path was visible. No concrete profit-extraction path identified from bytecode alone.","findings":[]}
[codex:602868] tokens used
[codex:602868] 82,244
[codex:602868] {"no_findings":true,"summary":"Reviewed runtime bytecode in BYTECODE_BUNDLE.txt; only three external CALLs found (ETH transfer, ERC20 mint, ERC20 transfer) and no DELEGATECALL/SELFDESTRUCT. The value-transferring calls are gated by owner checks or strict payment/round logic, and no unprotected value-transfer or upgrade path was visible. No concrete profit-extraction path identified from bytecode alone.","findings":[]}
{
"codex": {
"ran_at": "2026-01-05T18:47:49.245556+00:00",
"returncode": 0
},
"summary": "Reviewed runtime bytecode in BYTECODE_BUNDLE.txt; only three external CALLs found (ETH transfer, ERC20 mint, ERC20 transfer) and no DELEGATECALL/SELFDESTRUCT. The value-transferring calls are gated by owner checks or strict payment/round logic, and no unprotected value-transfer or upgrade path was visible. No concrete profit-extraction path identified from bytecode alone.",
"raw_final": {
"summary": "Reviewed runtime bytecode in BYTECODE_BUNDLE.txt; only three external CALLs found (ETH transfer, ERC20 mint, ERC20 transfer) and no DELEGATECALL/SELFDESTRUCT. The value-transferring calls are gated by owner checks or strict payment/round logic, and no unprotected value-transfer or upgrade path was visible. No concrete profit-extraction path 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 0x0230 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x8da5cb5b 00000019: GT 0000001a: PUSH2 0x012e 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xcb99728a 00000024: GT 00000025: PUSH2 0x00ab 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xdd7c5e54 0000002f: GT 00000030: PUSH2 0x006f 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xdd7c5e54 0000003a: EQ 0000003b: PUSH2 0x0664 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xecc7ccbd 00000045: EQ 00000046: PUSH2 0x0679 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf2fde38b 00000050: EQ 00000051: PUSH2 0x06a2 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf5ac6319 0000005b: EQ 0000005c: PUSH2 0x06c2 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xf640d508 00000066: EQ 00000067: PUSH2 0x06d7 0000006a: JUMPI 0000006b: PUSH2 0x0230 0000006e: JUMP 0000006f: JUMPDEST 00000070: DUP1 00000071: PUSH4 0xcb99728a 00000076: EQ 00000077: PUSH2 0x05cb 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xcd7f6315 00000081: EQ 00000082: PUSH2 0x05eb 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xcfed1970 0000008c: EQ 0000008d: PUSH2 0x0600 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0xd0e50f03 00000097: EQ 00000098: PUSH2 0x0624 0000009b: JUMPI 0000009c: DUP1 0000009d: PUSH4 0xd6c77269 000000a2: EQ 000000a3: PUSH2 0x0644 000000a6: JUMPI 000000a7: PUSH2 0x0230 000000aa: JUMP 000000ab: JUMPDEST 000000ac: DUP1 000000ad: PUSH4 0xacbef968 000000b2: GT 000000b3: PUSH2 0x00f2 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0xacbef968 000000bd: EQ 000000be: PUSH2 0x0534 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0xb45aae52 000000c8: EQ 000000c9: PUSH2 0x0554 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0xb640be8d 000000d3: EQ 000000d4: PUSH2 0x0574 000000d7: JUMPI 000000d8: DUP1 000000d9: PUSH4 0xbfea2b37 000000de: EQ 000000df: PUSH2 0x0589 000000e2: JUMPI 000000e3: DUP1 000000e4: PUSH4 0xc2b6b58c 000000e9: EQ 000000ea: PUSH2 0x05a9 000000ed: JUMPI 000000ee: PUSH2 0x0230 000000f1: JUMP 000000f2: JUMPDEST 000000f3: DUP1 000000f4: PUSH4 0x8da5cb5b 000000f9: EQ 000000fa: PUSH2 0x0490 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0x91b7f5ed 00000104: EQ 00000105: PUSH2 0x04b2 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0x92b3285c 0000010f: EQ 00000110: PUSH2 0x04d2 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0x96cdd995 0000011a: EQ 0000011b: PUSH2 0x04f2 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0xa0b9c7eb 00000125: EQ 00000126: PUSH2 0x0507 00000129: JUMPI 0000012a: PUSH2 0x0230 0000012d: JUMP 0000012e: JUMPDEST 0000012f: DUP1 00000130: PUSH4 0x370158ea 00000135: GT 00000136: PUSH2 0x01bc 00000139: JUMPI 0000013a: DUP1 0000013b: PUSH4 0x5d02e94b 00000140: GT 00000141: PUSH2 0x0180 00000144: JUMPI 00000145: DUP1 00000146: PUSH4 0x5d02e94b 0000014b: EQ 0000014c: PUSH2 0x03f5 0000014f: JUMPI 00000150: DUP1 00000151: PUSH4 0x715018a6 00000156: EQ 00000157: PUSH2 0x0415 0000015a: JUMPI 0000015b: DUP1 0000015c: PUSH4 0x81452c07 00000161: EQ 00000162: PUSH2 0x042a 00000165: JUMPI 00000166: DUP1 00000167: PUSH4 0x83cbc5d4 0000016c: EQ 0000016d: PUSH2 0x044e 00000170: JUMPI 00000171: DUP1 00000172: PUSH4 0x845c9306 00000177: EQ 00000178: PUSH2 0x047d 0000017b: JUMPI 0000017c: PUSH2 0x0230 0000017f: JUMP 00000180: JUMPDEST 00000181: DUP1 00000182: PUSH4 0x370158ea 00000187: EQ 00000188: PUSH2 0x0352 0000018b: JUMPI 0000018c: DUP1 0000018d: PUSH4 0x389705b9 00000192: EQ 00000193: PUSH2 0x0380 00000196: JUMPI 00000197: DUP1 00000198: PUSH4 0x3f0bdec4 0000019d: EQ 0000019e: PUSH2 0x0395 000001a1: JUMPI 000001a2: DUP1 000001a3: PUSH4 0x47786d37 000001a8: EQ 000001a9: PUSH2 0x03b5 000001ac: JUMPI 000001ad: DUP1 000001ae: PUSH4 0x49c256e7 000001b3: EQ 000001b4: PUSH2 0x03d5 000001b7: JUMPI 000001b8: PUSH2 0x0230 000001bb: JUMP 000001bc: JUMPDEST 000001bd: DUP1 000001be: PUSH4 0x1b0472a9 000001c3: GT 000001c4: PUSH2 0x0203 000001c7: JUMPI 000001c8: DUP1 000001c9: PUSH4 0x1b0472a9 000001ce: EQ 000001cf: PUSH2 0x02c8 000001d2: JUMPI 000001d3: DUP1 000001d4: PUSH4 0x1ee3c796 000001d9: EQ 000001da: PUSH2 0x02e8 000001dd: JUMPI 000001de: DUP1 000001df: PUSH4 0x235b6ea1 000001e4: EQ 000001e5: PUSH2 0x0308 000001e8: JUMPI 000001e9: DUP1 000001ea: PUSH4 0x2c19b7f3 000001ef: EQ 000001f0: PUSH2 0x031d 000001f3: JUMPI 000001f4: DUP1 000001f5: PUSH4 0x2e1839f9 000001fa: EQ 000001fb: PUSH2 0x0332 000001fe: JUMPI 000001ff: PUSH2 0x0230 00000202: JUMP 00000203: JUMPDEST 00000204: DUP1 00000205: PUSH4 0x04288dba 0000020a: EQ 0000020b: PUSH2 0x0235 0000020e: JUMPI 0000020f: DUP1 00000210: PUSH4 0x052d7c00 00000215: EQ 00000216: PUSH2 0x0257 00000219: JUMPI 0000021a: DUP1 0000021b: PUSH4 0x060cf4e8 00000220: EQ 00000221: PUSH2 0x0282 00000224: JUMPI 00000225: DUP1 00000226: PUSH4 0x1692872e 0000022b: EQ 0000022c: PUSH2 0x0297 0000022f: JUMPI 00000230: JUMPDEST 00000231: PUSH1 0x00 00000233: DUP1 00000234: REVERT 00000235: JUMPDEST 00000236: CALLVALUE 00000237: DUP1 00000238: ISZERO 00000239: PUSH2 0x0241 0000023c: JUMPI 0000023d: PUSH1 0x00 0000023f: DUP1 00000240: REVERT 00000241: JUMPDEST 00000242: POP 00000243: PUSH2 0x0255 00000246: PUSH2 0x0250 00000249: CALLDATASIZE 0000024a: PUSH1 0x04 0000024c: PUSH2 0x2683 0000024f: JUMP 00000250: JUMPDEST 00000251: PUSH2 0x06f7 00000254: JUMP 00000255: JUMPDEST 00000256: STOP 00000257: JUMPDEST 00000258: CALLVALUE 00000259: DUP1 0000025a: ISZERO 0000025b: PUSH2 0x0263 0000025e: JUMPI 0000025f: PUSH1 0x00 00000261: DUP1 00000262: REVERT 00000263: JUMPDEST 00000264: POP 00000265: PUSH2 0x026c 00000268: PUSH2 0x0748 0000026b: JUMP 0000026c: JUMPDEST 0000026d: PUSH1 0x40 0000026f: MLOAD 00000270: PUSH2 0x0279 00000273: SWAP2 00000274: SWAP1 00000275: PUSH2 0x2fd1 00000278: JUMP 00000279: JUMPDEST 0000027a: PUSH1 0x40 0000027c: MLOAD 0000027d: DUP1 0000027e: SWAP2 0000027f: SUB 00000280: SWAP1 00000281: RETURN 00000282: JUMPDEST 00000283: CALLVALUE 00000284: DUP1 00000285: ISZERO 00000286: PUSH2 0x028e 00000289: JUMPI 0000028a: PUSH1 0x00 0000028c: DUP1 0000028d: REVERT 0000028e: JUMPDEST 0000028f: POP 00000290: PUSH2 0x026c 00000293: PUSH2 0x079c 00000296: JUMP 00000297: JUMPDEST 00000298: CALLVALUE 00000299: DUP1 0000029a: ISZERO 0000029b: PUSH2 0x02a3 0000029e: JUMPI 0000029f: PUSH1 0x00 000002a1: DUP1 000002a2: REVERT 000002a3: JUMPDEST 000002a4: POP 000002a5: PUSH2 0x02b7 000002a8: PUSH2 0x02b2 000002ab: CALLDATASIZE 000002ac: PUSH1 0x04 000002ae: PUSH2 0x2549 000002b1: JUMP 000002b2: JUMPDEST 000002b3: PUSH2 0x07a2 000002b6: JUMP 000002b7: JUMPDEST 000002b8: PUSH1 0x40 000002ba: MLOAD 000002bb: PUSH2 0x0279 000002be: SWAP6 000002bf: SWAP5 000002c0: SWAP4 000002c1: SWAP3 000002c2: SWAP2 000002c3: SWAP1 000002c4: PUSH2 0x3060 000002c7: JUMP 000002c8: JUMPDEST 000002c9: CALLVALUE 000002ca: DUP1 000002cb: ISZERO 000002cc: PUSH2 0x02d4 000002cf: JUMPI 000002d0: PUSH1 0x00 000002d2: DUP1 000002d3: REVERT 000002d4: JUMPDEST 000002d5: POP 000002d6: PUSH2 0x0255 000002d9: PUSH2 0x02e3 000002dc: CALLDATASIZE 000002dd: PUSH1 0x04 000002df: PUSH2 0x27a1 000002e2: JUMP 000002e3: JUMPDEST 000002e4: PUSH2 0x0901 000002e7: JUMP 000002e8: JUMPDEST 000002e9: CALLVALUE 000002ea: DUP1 000002eb: ISZERO 000002ec: PUSH2 0x02f4 000002ef: JUMPI 000002f0: PUSH1 0x00 000002f2: DUP1 000002f3: REVERT 000002f4: JUMPDEST 000002f5: POP 000002f6: PUSH2 0x026c 000002f9: PUSH2 0x0303 000002fc: CALLDATASIZE 000002fd: PUSH1 0x04 000002ff: PUSH2 0x2919 00000302: JUMP 00000303: JUMPDEST 00000304: PUSH2 0x0991 00000307: JUMP 00000308: JUMPDEST 00000309: CALLVALUE 0000030a: DUP1 0000030b: ISZERO 0000030c: PUSH2 0x0314 0000030f: JUMPI 00000310: PUSH1 0x00 00000312: DUP1 00000313: REVERT 00000314: JUMPDEST 00000315: POP 00000316: PUSH2 0x026c 00000319: PUSH2 0x0af6 0000031c: JUMP 0000031d: JUMPDEST 0000031e: CALLVALUE 0000031f: DUP1 00000320: ISZERO 00000321: PUSH2 0x0329 00000324: JUMPI 00000325: PUSH1 0x00 00000327: DUP1 00000328: REVERT 00000329: JUMPDEST 0000032a: POP 0000032b: PUSH2 0x026c 0000032e: PUSH2 0x0afc 00000331: JUMP 00000332: JUMPDEST 00000333: CALLVALUE 00000334: DUP1 00000335: ISZERO 00000336: PUSH2 0x033e 00000339: JUMPI 0000033a: PUSH1 0x00 0000033c: DUP1 0000033d: REVERT 0000033e: JUMPDEST 0000033f: POP 00000340: PUSH2 0x0255 00000343: PUSH2 0x034d 00000346: CALLDATASIZE 00000347: PUSH1 0x04 00000349: PUSH2 0x2875 0000034c: JUMP 0000034d: JUMPDEST 0000034e: PUSH2 0x0b02 00000351: JUMP 00000352: JUMPDEST 00000353: CALLVALUE 00000354: DUP1 00000355: ISZERO 00000356: PUSH2 0x035e 00000359: JUMPI 0000035a: PUSH1 0x00 0000035c: DUP1 0000035d: REVERT 0000035e: JUMPDEST 0000035f: POP 00000360: PUSH2 0x0367 00000363: PUSH2 0x0b8b 00000366: JUMP 00000367: JUMPDEST 00000368: PUSH1 0x40 0000036a: MLOAD 0000036b: PUSH2 0x0279 0000036e: SWAP14 0000036f: SWAP13 00000370: SWAP12 00000371: SWAP11 00000372: SWAP10 00000373: SWAP9 00000374: SWAP8 00000375: SWAP7 00000376: SWAP6 00000377: SWAP5 00000378: SWAP4 00000379: SWAP3 0000037a: SWAP2 0000037b: SWAP1 0000037c: PUSH2 0x2ae7 0000037f: JUMP 00000380: JUMPDEST 00000381: CALLVALUE 00000382: DUP1 00000383: ISZERO 00000384: PUSH2 0x038c 00000387: JUMPI 00000388: PUSH1 0x00 0000038a: DUP1 0000038b: REVERT 0000038c: JUMPDEST 0000038d: POP 0000038e: PUSH2 0x026c 00000391: PUSH2 0x0cdf 00000394: JUMP 00000395: JUMPDEST 00000396: CALLVALUE 00000397: DUP1 00000398: ISZERO 00000399: PUSH2 0x03a1 0000039c: JUMPI 0000039d: PUSH1 0x00 0000039f: DUP1 000003a0: REVERT 000003a1: JUMPDEST 000003a2: POP 000003a3: PUSH2 0x0255 000003a6: PUSH2 0x03b0 000003a9: CALLDATASIZE 000003aa: PUSH1 0x04 000003ac: PUSH2 0x2771 000003af: JUMP 000003b0: JUMPDEST 000003b1: PUSH2 0x0ce5 000003b4: JUMP 000003b5: JUMPDEST 000003b6: CALLVALUE 000003b7: DUP1 000003b8: ISZERO 000003b9: PUSH2 0x03c1 000003bc: JUMPI 000003bd: PUSH1 0x00 000003bf: DUP1 000003c0: REVERT 000003c1: JUMPDEST 000003c2: POP 000003c3: PUSH2 0x0255 000003c6: PUSH2 0x03d0 000003c9: CALLDATASIZE 000003ca: PUSH1 0x04 000003cc: PUSH2 0x2771 000003cf: JUMP 000003d0: JUMPDEST 000003d1: PUSH2 0x0d1f 000003d4: JUMP 000003d5: JUMPDEST 000003d6: CALLVALUE 000003d7: DUP1 000003d8: ISZERO 000003d9: PUSH2 0x03e1 000003dc: JUMPI 000003dd: PUSH1 0x00 000003df: DUP1 000003e0: REVERT 000003e1: JUMPDEST 000003e2: POP 000003e3: PUSH2 0x0255 000003e6: PUSH2 0x03f0 000003e9: CALLDATASIZE 000003ea: PUSH1 0x04 000003ec: PUSH2 0x25a6 000003ef: JUMP 000003f0: JUMPDEST 000003f1: PUSH2 0x0d59 000003f4: JUMP 000003f5: JUMPDEST 000003f6: CALLVALUE 000003f7: DUP1 000003f8: ISZERO 000003f9: PUSH2 0x0401 000003fc: JUMPI 000003fd: PUSH1 0x00 000003ff: DUP1 00000400: REVERT 00000401: JUMPDEST 00000402: POP 00000403: PUSH2 0x0255 00000406: PUSH2 0x0410 00000409: CALLDATASIZE 0000040a: PUSH1 0x04 0000040c: PUSH2 0x2549 0000040f: JUMP 00000410: JUMPDEST 00000411: PUSH2 0x0e5d 00000414: JUMP 00000415: JUMPDEST 00000416: CALLVALUE 00000417: DUP1 00000418: ISZERO 00000419: PUSH2 0x0421 0000041c: JUMPI 0000041d: PUSH1 0x00 0000041f: DUP1 00000420: REVERT 00000421: JUMPDEST 00000422: POP 00000423: PUSH2 0x0255 00000426: PUSH2 0x0eba 00000429: JUMP 0000042a: JUMPDEST 0000042b: CALLVALUE 0000042c: DUP1 0000042d: ISZERO 0000042e: PUSH2 0x0436 00000431: JUMPI 00000432: PUSH1 0x00 00000434: DUP1 00000435: REVERT 00000436: JUMPDEST 00000437: POP 00000438: PUSH2 0x043f 0000043b: PUSH2 0x0f39 0000043e: JUMP 0000043f: JUMPDEST 00000440: PUSH1 0x40 00000442: MLOAD 00000443: PUSH2 0x0279 00000446: SWAP4 00000447: SWAP3 00000448: SWAP2 00000449: SWAP1 0000044a: PUSH2 0x2b7b 0000044d: JUMP 0000044e: JUMPDEST 0000044f: CALLVALUE 00000450: DUP1 00000451: ISZERO 00000452: PUSH2 0x045a 00000455: JUMPI 00000456: PUSH1 0x00 00000458: DUP1 00000459: REVERT 0000045a: JUMPDEST 0000045b: POP 0000045c: PUSH2 0x046e 0000045f: PUSH2 0x0469 00000462: CALLDATASIZE 00000463: PUSH1 0x04 00000465: PUSH2 0x2771 00000468: JUMP 00000469: JUMPDEST 0000046a: PUSH2 0x1152 0000046d: JUMP 0000046e: JUMPDEST 0000046f: PUSH1 0x40 00000471: MLOAD 00000472: PUSH2 0x0279 00000475: SWAP4 00000476: SWAP3 00000477: SWAP2 00000478: SWAP1 00000479: PUSH2 0x2bd2 0000047c: JUMP 0000047d: JUMPDEST 0000047e: PUSH2 0x0255 00000481: PUSH2 0x048b 00000484: CALLDATASIZE 00000485: PUSH1 0x04 00000487: PUSH2 0x2771 0000048a: JUMP 0000048b: JUMPDEST 0000048c: PUSH2 0x1212 0000048f: JUMP 00000490: JUMPDEST 00000491: CALLVALUE 00000492: DUP1 00000493: ISZERO 00000494: PUSH2 0x049c 00000497: JUMPI 00000498: PUSH1 0x00 0000049a: DUP1 0000049b: REVERT 0000049c: JUMPDEST 0000049d: POP 0000049e: PUSH2 0x04a5 000004a1: PUSH2 0x142c 000004a4: JUMP 000004a5: JUMPDEST 000004a6: PUSH1 0x40 000004a8: MLOAD 000004a9: PUSH2 0x0279 000004ac: SWAP2 000004ad: SWAP1 000004ae: PUSH2 0x2aba 000004b1: JUMP 000004b2: JUMPDEST 000004b3: CALLVALUE 000004b4: DUP1 000004b5: ISZERO 000004b6: PUSH2 0x04be 000004b9: JUMPI 000004ba: PUSH1 0x00 000004bc: DUP1 000004bd: REVERT 000004be: JUMPDEST 000004bf: POP 000004c0: PUSH2 0x0255 000004c3: PUSH2 0x04cd 000004c6: CALLDATASIZE 000004c7: PUSH1 0x04 000004c9: PUSH2 0x2771 000004cc: JUMP 000004cd: JUMPDEST 000004ce: PUSH2 0x143b 000004d1: JUMP 000004d2: JUMPDEST 000004d3: CALLVALUE 000004d4: DUP1 000004d5: ISZERO 000004d6: PUSH2 0x04de 000004d9: JUMPI 000004da: PUSH1 0x00 000004dc: DUP1 000004dd: REVERT 000004de: JUMPDEST 000004df: POP 000004e0: PUSH2 0x0255 000004e3: PUSH2 0x04ed 000004e6: CALLDATASIZE 000004e7: PUSH1 0x04 000004e9: PUSH2 0x25e5 000004ec: JUMP 000004ed: JUMPDEST 000004ee: PUSH2 0x1475 000004f1: JUMP 000004f2: JUMPDEST 000004f3: CALLVALUE 000004f4: DUP1 000004f5: ISZERO 000004f6: PUSH2 0x04fe 000004f9: JUMPI 000004fa: PUSH1 0x00 000004fc: DUP1 000004fd: REVERT 000004fe: JUMPDEST 000004ff: POP 00000500: PUSH2 0x04a5 00000503: PUSH2 0x1681 00000506: JUMP 00000507: JUMPDEST 00000508: CALLVALUE 00000509: DUP1 0000050a: ISZERO 0000050b: PUSH2 0x0513 0000050e: JUMPI 0000050f: PUSH1 0x00 00000511: DUP1 00000512: REVERT 00000513: JUMPDEST 00000514: POP 00000515: PUSH2 0x0527 00000518: PUSH2 0x0522 0000051b: CALLDATASIZE 0000051c: PUSH1 0x04 0000051e: PUSH2 0x2771 00000521: JUMP 00000522: JUMPDEST 00000523: PUSH2 0x1695 00000526: JUMP 00000527: JUMPDEST 00000528: PUSH1 0x40 0000052a: MLOAD 0000052b: PUSH2 0x0279 0000052e: SWAP2 0000052f: SWAP1 00000530: PUSH2 0x2bbf 00000533: JUMP 00000534: JUMPDEST 00000535: CALLVALUE 00000536: DUP1 00000537: ISZERO 00000538: PUSH2 0x0540 0000053b: JUMPI 0000053c: PUSH1 0x00 0000053e: DUP1 0000053f: REVERT 00000540: JUMPDEST 00000541: POP 00000542: PUSH2 0x0255 00000545: PUSH2 0x054f 00000548: CALLDATASIZE 00000549: PUSH1 0x04 0000054b: PUSH2 0x2946 0000054e: JUMP 0000054f: JUMPDEST 00000550: PUSH2 0x1742 00000553: JUMP 00000554: JUMPDEST 00000555: CALLVALUE 00000556: DUP1 00000557: ISZERO 00000558: PUSH2 0x0560 0000055b: JUMPI 0000055c: PUSH1 0x00 0000055e: DUP1 0000055f: REVERT 00000560: JUMPDEST 00000561: POP 00000562: PUSH2 0x026c 00000565: PUSH2 0x056f 00000568: CALLDATASIZE 00000569: PUSH1 0x04 0000056b: PUSH2 0x2549 0000056e: JUMP 0000056f: JUMPDEST 00000570: PUSH2 0x1785 00000573: JUMP 00000574: JUMPDEST 00000575: CALLVALUE 00000576: DUP1 00000577: ISZERO 00000578: PUSH2 0x0580 0000057b: JUMPI 0000057c: PUSH1 0x00 0000057e: DUP1 0000057f: REVERT 00000580: JUMPDEST 00000581: POP 00000582: PUSH2 0x026c 00000585: PUSH2 0x17f5 00000588: JUMP 00000589: JUMPDEST 0000058a: CALLVALUE 0000058b: DUP1 0000058c: ISZERO 0000058d: PUSH2 0x0595 00000590: JUMPI 00000591: PUSH1 0x00 00000593: DUP1 00000594: REVERT 00000595: JUMPDEST 00000596: POP 00000597: PUSH2 0x0255 0000059a: PUSH2 0x05a4 0000059d: CALLDATASIZE 0000059e: PUSH1 0x04 000005a0: PUSH2 0x27d0 000005a3: JUMP 000005a4: JUMPDEST 000005a5: PUSH2 0x1860 000005a8: JUMP 000005a9: JUMPDEST 000005aa: CALLVALUE 000005ab: DUP1 000005ac: ISZERO 000005ad: PUSH2 0x05b5 000005b0: JUMPI 000005b1: PUSH1 0x00 000005b3: DUP1 000005b4: REVERT 000005b5: JUMPDEST 000005b6: POP 000005b7: PUSH2 0x05be 000005ba: PUSH2 0x193c 000005bd: JUMP 000005be: JUMPDEST 000005bf: PUSH1 0x40 000005c1: MLOAD 000005c2: PUSH2 0x0279 000005c5: SWAP2 000005c6: SWAP1 000005c7: PUSH2 0x2bb4 000005ca: JUMP 000005cb: JUMPDEST 000005cc: CALLVALUE 000005cd: DUP1 000005ce: ISZERO 000005cf: PUSH2 0x05d7 000005d2: JUMPI 000005d3: PUSH1 0x00 000005d5: DUP1 000005d6: REVERT 000005d7: JUMPDEST 000005d8: POP 000005d9: PUSH2 0x0255 000005dc: PUSH2 0x05e6 000005df: CALLDATASIZE 000005e0: PUSH1 0x04 000005e2: PUSH2 0x282c 000005e5: JUMP 000005e6: JUMPDEST 000005e7: PUSH2 0x1979 000005ea: JUMP 000005eb: JUMPDEST 000005ec: CALLVALUE 000005ed: DUP1 000005ee: ISZERO 000005ef: PUSH2 0x05f7 000005f2: JUMPI 000005f3: PUSH1 0x00 000005f5: DUP1 000005f6: REVERT 000005f7: JUMPDEST 000005f8: POP 000005f9: PUSH2 0x026c 000005fc: PUSH2 0x19fe 000005ff: JUMP 00000600: JUMPDEST 00000601: CALLVALUE 00000602: DUP1 00000603: ISZERO 00000604: PUSH2 0x060c 00000607: JUMPI 00000608: PUSH1 0x00 0000060a: DUP1 0000060b: REVERT 0000060c: JUMPDEST 0000060d: POP 0000060e: PUSH2 0x0615 00000611: PUSH2 0x1a04 00000614: JUMP 00000615: JUMPDEST 00000616: PUSH1 0x40 00000618: MLOAD 00000619: PUSH2 0x0279 0000061c: SWAP4 0000061d: SWAP3 0000061e: SWAP2 0000061f: SWAP1 00000620: PUSH2 0x2fda 00000623: JUMP 00000624: JUMPDEST 00000625: CALLVALUE 00000626: DUP1 00000627: ISZERO 00000628: PUSH2 0x0630 0000062b: JUMPI 0000062c: PUSH1 0x00 0000062e: DUP1 0000062f: REVERT 00000630: JUMPDEST 00000631: POP 00000632: PUSH2 0x026c 00000635: PUSH2 0x063f 00000638: CALLDATASIZE 00000639: PUSH1 0x04 0000063b: PUSH2 0x2549 0000063e: JUMP 0000063f: JUMPDEST 00000640: PUSH2 0x1cfa 00000643: JUMP 00000644: JUMPDEST 00000645: CALLVALUE 00000646: DUP1 00000647: ISZERO 00000648: PUSH2 0x0650 0000064b: JUMPI 0000064c: PUSH1 0x00 0000064e: DUP1 0000064f: REVERT 00000650: JUMPDEST 00000651: POP 00000652: PUSH2 0x0255 00000655: PUSH2 0x065f 00000658: CALLDATASIZE 00000659: PUSH1 0x04 0000065b: PUSH2 0x28b1 0000065e: JUMP 0000065f: JUMPDEST 00000660: PUSH2 0x1d53 00000663: JUMP 00000664: JUMPDEST 00000665: CALLVALUE 00000666: DUP1 00000667: ISZERO 00000668: PUSH2 0x0670 0000066b: JUMPI 0000066c: PUSH1 0x00 0000066e: DUP1 0000066f: REVERT 00000670: JUMPDEST 00000671: POP 00000672: PUSH2 0x05be 00000675: PUSH2 0x1e05 00000678: JUMP 00000679: JUMPDEST 0000067a: CALLVALUE 0000067b: DUP1 0000067c: ISZERO 0000067d: PUSH2 0x0685 00000680: JUMPI 00000681: PUSH1 0x00 00000683: DUP1 00000684: REVERT 00000685: JUMPDEST 00000686: POP 00000687: PUSH2 0x068e 0000068a: PUSH2 0x1e0e 0000068d: JUMP 0000068e: JUMPDEST 0000068f: PUSH1 0x40 00000691: MLOAD 00000692: PUSH2 0x0279 00000695: SWAP9 00000696: SWAP8 00000697: SWAP7 00000698: SWAP6 00000699: SWAP5 0000069a: SWAP4 0000069b: SWAP3 0000069c: SWAP2 0000069d: SWAP1 0000069e: PUSH2 0x3005 000006a1: JUMP 000006a2: JUMPDEST 000006a3: CALLVALUE 000006a4: DUP1 000006a5: ISZERO 000006a6: PUSH2 0x06ae 000006a9: JUMPI 000006aa: PUSH1 0x00 000006ac: DUP1 000006ad: REVERT 000006ae: JUMPDEST 000006af: POP 000006b0: PUSH2 0x0255 000006b3: PUSH2 0x06bd 000006b6: CALLDATASIZE 000006b7: PUSH1 0x04 000006b9: PUSH2 0x2549 000006bc: JUMP 000006bd: JUMPDEST 000006be: PUSH2 0x1f60 000006c1: JUMP 000006c2: JUMPDEST 000006c3: CALLVALUE 000006c4: DUP1 000006c5: ISZERO 000006c6: PUSH2 0x06ce 000006c9: JUMPI 000006ca: PUSH1 0x00 000006cc: DUP1 000006cd: REVERT 000006ce: JUMPDEST 000006cf: POP 000006d0: PUSH2 0x026c 000006d3: PUSH2 0x2016 000006d6: JUMP 000006d7: JUMPDEST 000006d8: CALLVALUE 000006d9: DUP1 000006da: ISZERO 000006db: PUSH2 0x06e3 000006de: JUMPI 000006df: PUSH1 0x00 000006e1: DUP1 000006e2: REVERT 000006e3: JUMPDEST 000006e4: POP 000006e5: PUSH2 0x0255 000006e8: PUSH2 0x06f2 000006eb: CALLDATASIZE 000006ec: PUSH1 0x04 000006ee: PUSH2 0x2565 000006f1: JUMP 000006f2: JUMPDEST 000006f3: PUSH2 0x201c 000006f6: JUMP 000006f7: JUMPDEST 000006f8: PUSH2 0x06ff 000006fb: PUSH2 0x216f 000006fe: JUMP 000006ff: JUMPDEST 00000700: PUSH1 0x00 00000702: SLOAD 00000703: PUSH1 0x01 00000705: PUSH1 0x01 00000707: PUSH1 0xa0 00000709: SHL 0000070a: SUB 0000070b: SWAP1 0000070c: DUP2 0000070d: AND 0000070e: SWAP2 0000070f: AND 00000710: EQ 00000711: PUSH2 0x0735 00000714: JUMPI 00000715: PUSH1 0x40 00000717: MLOAD 00000718: PUSH3 0x461bcd 0000071c: PUSH1 0xe5 0000071e: SHL 0000071f: DUP2 00000720: MSTORE 00000721: PUSH1 0x04 00000723: ADD 00000724: PUSH2 0x072c 00000727: SWAP1 00000728: PUSH2 0x2e6c 0000072b: JUMP 0000072c: JUMPDEST 0000072d: PUSH1 0x40 0000072f: MLOAD 00000730: DUP1 00000731: SWAP2 00000732: SUB 00000733: SWAP1 00000734: REVERT 00000735: JUMPDEST 00000736: PUSH1 0x07 00000738: DUP1 00000739: SLOAD 0000073a: PUSH1 0xff 0000073c: NOT 0000073d: AND 0000073e: SWAP2 0000073f: ISZERO 00000740: ISZERO 00000741: SWAP2 00000742: SWAP1 00000743: SWAP2 00000744: OR 00000745: SWAP1 00000746: SSTORE 00000747: JUMP 00000748: JUMPDEST 00000749: PUSH1 0x01 0000074b: SLOAD 0000074c: PUSH1 0x00 0000074e: SWAP1 0000074f: DUP2 00000750: JUMPDEST 00000751: PUSH1 0x08 00000753: SLOAD 00000754: DUP2 00000755: LT 00000756: ISZERO 00000757: PUSH2 0x0795 0000075a: JUMPI 0000075b: PUSH2 0x078b 0000075e: PUSH1 0x08 00000760: DUP3 00000761: DUP2 00000762: SLOAD 00000763: DUP2 00000764: LT 00000765: PUSH2 0x076a 00000768: JUMPI 00000769: INVALID 0000076a: JUMPDEST 0000076b: SWAP1 0000076c: PUSH1 0x00 0000076e: MSTORE 0000076f: PUSH1 0x20 00000771: PUSH1 0x00 00000773: KECCAK256 00000774: SWAP1 00000775: PUSH1 0x05 00000777: MUL 00000778: ADD 00000779: PUSH1 0x01 0000077b: ADD 0000077c: SLOAD 0000077d: DUP4 0000077e: PUSH2 0x2173 00000781: SWAP1 00000782: SWAP2 00000783: SWAP1 00000784: PUSH4 0xffffffff 00000789: AND 0000078a: JUMP 0000078b: JUMPDEST 0000078c: SWAP2 0000078d: POP 0000078e: PUSH1 0x01 00000790: ADD 00000791: PUSH2 0x0750 00000794: JUMP 00000795: JUMPDEST 00000796: POP 00000797: SWAP1 00000798: POP 00000799: JUMPDEST 0000079a: SWAP1 0000079b: JUMP 0000079c: JUMPDEST 0000079d: PUSH1 0x06 0000079f: SLOAD 000007a0: DUP2 000007a1: JUMP 000007a2: JUMPDEST 000007a3: PUSH1 0x40 000007a5: DUP1 000007a6: MLOAD 000007a7: PUSH1 0x20 000007a9: DUP2 000007aa: ADD 000007ab: SWAP1 000007ac: SWAP2 000007ad: MSTORE 000007ae: PUSH1 0x00 000007b0: DUP1 000007b1: DUP3 000007b2: MSTORE 000007b3: SWAP1 000007b4: DUP2 000007b5: SWAP1 000007b6: PUSH1 0x04 000007b8: SWAP1 000007b9: DUP3 000007ba: PUSH2 0x07c2 000007bd: DUP7 000007be: PUSH2 0x1785 000007c1: JUMP 000007c2: JUMPDEST 000007c3: SWAP5 000007c4: POP 000007c5: PUSH2 0x07cc 000007c8: PUSH2 0x193c 000007cb: JUMP 000007cc: JUMPDEST 000007cd: PUSH2 0x08f8 000007d0: JUMPI 000007d1: PUSH1 0x01 000007d3: SLOAD 000007d4: TIMESTAMP 000007d5: DUP2 000007d6: GT 000007d7: ISZERO 000007d8: PUSH2 0x0807 000007db: JUMPI 000007dc: PUSH1 0x00 000007de: SWAP4 000007df: POP 000007e0: PUSH1 0x40 000007e2: MLOAD 000007e3: PUSH1 0x20 000007e5: ADD 000007e6: PUSH2 0x07ee 000007e9: SWAP1 000007ea: PUSH2 0x2a2a 000007ed: JUMP 000007ee: JUMPDEST 000007ef: PUSH1 0x40 000007f1: MLOAD 000007f2: PUSH1 0x20 000007f4: DUP2 000007f5: DUP4 000007f6: SUB 000007f7: SUB 000007f8: DUP2 000007f9: MSTORE 000007fa: SWAP1 000007fb: PUSH1 0x40 000007fd: MSTORE 000007fe: SWAP3 000007ff: POP 00000800: DUP1 00000801: SWAP2 00000802: POP 00000803: PUSH2 0x08f6 00000806: JUMP 00000807: JUMPDEST 00000808: PUSH1 0x00 0000080a: DUP1 0000080b: JUMPDEST 0000080c: PUSH1 0x08 0000080e: SLOAD 0000080f: DUP2 00000810: LT 00000811: ISZERO 00000812: PUSH2 0x08f3 00000815: JUMPI 00000816: PUSH2 0x0820 00000819: DUP2 0000081a: PUSH1 0x01 0000081c: PUSH2 0x2173 0000081f: JUMP 00000820: JUMPDEST 00000821: SWAP7 00000822: POP 00000823: PUSH1 0x08 00000825: DUP2 00000826: DUP2 00000827: SLOAD 00000828: DUP2 00000829: LT 0000082a: PUSH2 0x082f 0000082d: JUMPI 0000082e: INVALID 0000082f: JUMPDEST 00000830: SWAP1 00000831: PUSH1 0x00 00000833: MSTORE 00000834: PUSH1 0x20 00000836: PUSH1 0x00 00000838: KECCAK256 00000839: SWAP1 0000083a: PUSH1 0x05 0000083c: MUL 0000083d: ADD 0000083e: SWAP2 0000083f: POP 00000840: PUSH2 0x0856 00000843: DUP3 00000844: PUSH1 0x01 00000846: ADD 00000847: SLOAD 00000848: DUP5 00000849: PUSH2 0x2173 0000084c: SWAP1 0000084d: SWAP2 0000084e: SWAP1 0000084f: PUSH4 0xffffffff 00000854: AND 00000855: JUMP 00000856: JUMPDEST 00000857: SWAP3 00000858: POP 00000859: DUP3 0000085a: TIMESTAMP 0000085b: LT 0000085c: ISZERO 0000085d: PUSH2 0x08eb 00000860: JUMPI 00000861: PUSH1 0x00 00000863: PUSH1 0x02 00000865: DUP4 00000866: ADD 00000867: SLOAD 00000868: PUSH1 0xff 0000086a: AND 0000086b: PUSH1 0x01 0000086d: DUP2 0000086e: GT 0000086f: ISZERO 00000870: PUSH2 0x0875 00000873: JUMPI 00000874: INVALID 00000875: JUMPDEST 00000876: EQ 00000877: ISZERO 00000878: PUSH2 0x08a3 0000087b: JUMPI 0000087c: PUSH1 0x01 0000087e: SWAP6 0000087f: POP 00000880: PUSH1 0x40 00000882: MLOAD 00000883: PUSH1 0x20 00000885: ADD 00000886: PUSH2 0x088e 00000889: SWAP1 0000088a: PUSH2 0x2a86 0000088d: JUMP 0000088e: JUMPDEST 0000088f: PUSH1 0x40 00000891: MLOAD 00000892: PUSH1 0x20 00000894: DUP2 00000895: DUP4 00000896: SUB 00000897: SUB 00000898: DUP2 00000899: MSTORE 0000089a: SWAP1 0000089b: PUSH1 0x40 0000089d: MSTORE 0000089e: SWAP5 0000089f: POP 000008a0: DUP3 000008a1: SWAP4 000008a2: POP 000008a3: JUMPDEST 000008a4: PUSH1 0x01 000008a6: PUSH1 0x02 000008a8: DUP4 000008a9: ADD 000008aa: SLOAD 000008ab: PUSH1 0xff 000008ad: AND 000008ae: PUSH1 0x01 000008b0: DUP2 000008b1: GT 000008b2: ISZERO 000008b3: PUSH2 0x08b8 000008b6: JUMPI 000008b7: INVALID 000008b8: JUMPDEST 000008b9: EQ 000008ba: ISZERO 000008bb: PUSH2 0x08e6 000008be: JUMPI 000008bf: PUSH1 0x03 000008c1: SWAP6 000008c2: POP 000008c3: PUSH1 0x40 000008c5: MLOAD 000008c6: PUSH1 0x20 000008c8: ADD 000008c9: PUSH2 0x08d1 000008cc: SWAP1 000008cd: PUSH2 0x2a5d 000008d0: JUMP 000008d1: JUMPDEST 000008d2: PUSH1 0x40 000008d4: MLOAD 000008d5: PUSH1 0x20 000008d7: DUP2 000008d8: DUP4 000008d9: SUB 000008da: SUB 000008db: DUP2 000008dc: MSTORE 000008dd: SWAP1 000008de: PUSH1 0x40 000008e0: MSTORE 000008e1: SWAP5 000008e2: POP 000008e3: DUP3 000008e4: SWAP4 000008e5: POP 000008e6: JUMPDEST 000008e7: PUSH2 0x08f3 000008ea: JUMP 000008eb: JUMPDEST 000008ec: PUSH1 0x01 000008ee: ADD 000008ef: PUSH2 0x080b 000008f2: JUMP 000008f3: JUMPDEST 000008f4: POP 000008f5: POP 000008f6: JUMPDEST 000008f7: POP 000008f8: JUMPDEST 000008f9: SWAP2 000008fa: SWAP4 000008fb: SWAP6 000008fc: SWAP1 000008fd: SWAP3 000008fe: SWAP5 000008ff: POP 00000900: JUMP 00000901: JUMPDEST 00000902: PUSH2 0x0909 00000905: PUSH2 0x216f 00000908: JUMP 00000909: JUMPDEST 0000090a: PUSH1 0x00 0000090c: SLOAD 0000090d: PUSH1 0x01 0000090f: PUSH1 0x01 00000911: PUSH1 0xa0 00000913: SHL 00000914: SUB 00000915: SWAP1 00000916: DUP2 00000917: AND 00000918: SWAP2 00000919: AND 0000091a: EQ 0000091b: PUSH2 0x0936 0000091e: JUMPI 0000091f: PUSH1 0x40 00000921: MLOAD 00000922: PUSH3 0x461bcd 00000926: PUSH1 0xe5 00000928: SHL 00000929: DUP2 0000092a: MSTORE 0000092b: PUSH1 0x04 0000092d: ADD 0000092e: PUSH2 0x072c 00000931: SWAP1 00000932: PUSH2 0x2e6c 00000935: JUMP 00000936: JUMPDEST 00000937: DUP2 00000938: SELFBALANCE 00000939: LT 0000093a: ISZERO 0000093b: PUSH2 0x0956 0000093e: JUMPI 0000093f: PUSH1 0x40 00000941: MLOAD 00000942: PUSH3 0x461bcd 00000946: PUSH1 0xe5 00000948: SHL 00000949: DUP2 0000094a: MSTORE 0000094b: PUSH1 0x04 0000094d: ADD 0000094e: PUSH2 0x072c 00000951: SWAP1 00000952: PUSH2 0x2c9d 00000955: JUMP 00000956: JUMPDEST 00000957: PUSH1 0x40 00000959: MLOAD 0000095a: PUSH1 0x01 0000095c: PUSH1 0x01 0000095e: PUSH1 0xa0 00000960: SHL 00000961: SUB 00000962: DUP3 00000963: AND 00000964: SWAP1 00000965: DUP4 00000966: ISZERO 00000967: PUSH2 0x08fc 0000096a: MUL 0000096b: SWAP1 0000096c: DUP5 0000096d: SWAP1 0000096e: PUSH1 0x00 00000970: DUP2 00000971: DUP2 00000972: DUP2 00000973: DUP6 00000974: DUP9 00000975: DUP9 00000976: CALL 00000977: SWAP4 00000978: POP 00000979: POP 0000097a: POP 0000097b: POP 0000097c: ISZERO 0000097d: DUP1 0000097e: ISZERO 0000097f: PUSH2 0x098c 00000982: JUMPI 00000983: RETURNDATASIZE 00000984: PUSH1 0x00 00000986: DUP1 00000987: RETURNDATACOPY 00000988: RETURNDATASIZE 00000989: PUSH1 0x00 0000098b: REVERT 0000098c: JUMPDEST 0000098d: POP 0000098e: POP 0000098f: POP 00000990: JUMP 00000991: JUMPDEST 00000992: PUSH1 0x00 00000994: DUP4 00000995: ISZERO 00000996: DUP1 00000997: PUSH2 0x099e 0000099a: JUMPI 0000099b: POP 0000099c: DUP3 0000099d: ISZERO 0000099e: JUMPDEST 0000099f: ISZERO 000009a0: PUSH2 0x09ab 000009a3: JUMPI 000009a4: POP 000009a5: PUSH1 0x00 000009a7: PUSH2 0x0aef 000009aa: JUMP 000009ab: JUMPDEST 000009ac: PUSH1 0x00 000009ae: PUSH2 0x09b8 000009b1: DUP6 000009b2: PUSH1 0x01 000009b4: PUSH2 0x21a1 000009b7: JUMP 000009b8: JUMPDEST 000009b9: SWAP1 000009ba: POP 000009bb: PUSH1 0x00 000009bd: PUSH2 0x09c7 000009c0: DUP6 000009c1: PUSH1 0x01 000009c3: PUSH2 0x21a1 000009c6: JUMP 000009c7: JUMPDEST 000009c8: PUSH1 0x08 000009ca: SLOAD 000009cb: SWAP1 000009cc: SWAP2 000009cd: POP 000009ce: DUP3 000009cf: LT 000009d0: PUSH2 0x09eb 000009d3: JUMPI 000009d4: PUSH1 0x40 000009d6: MLOAD 000009d7: PUSH3 0x461bcd 000009db: PUSH1 0xe5 000009dd: SHL 000009de: DUP2 000009df: MSTORE 000009e0: PUSH1 0x04 000009e2: ADD 000009e3: PUSH2 0x072c 000009e6: SWAP1 000009e7: PUSH2 0x2d5d 000009ea: JUMP 000009eb: JUMPDEST 000009ec: PUSH1 0x09 000009ee: SLOAD 000009ef: DUP2 000009f0: LT 000009f1: PUSH2 0x0a0c 000009f4: JUMPI 000009f5: PUSH1 0x40 000009f7: MLOAD 000009f8: PUSH3 0x461bcd 000009fc: PUSH1 0xe5 000009fe: SHL 000009ff: DUP2 00000a00: MSTORE 00000a01: PUSH1 0x04 00000a03: ADD 00000a04: PUSH2 0x072c 00000a07: SWAP1 00000a08: PUSH2 0x2c31 00000a0b: JUMP 00000a0c: JUMPDEST 00000a0d: PUSH1 0x09 00000a0f: DUP2 00000a10: DUP2 00000a11: SLOAD 00000a12: DUP2 00000a13: LT 00000a14: PUSH2 0x0a19 00000a17: JUMPI 00000a18: INVALID 00000a19: JUMPDEST 00000a1a: PUSH1 0x00 00000a1c: SWAP2 00000a1d: DUP3 00000a1e: MSTORE 00000a1f: PUSH1 0x20 00000a21: DUP1 00000a22: DUP4 00000a23: KECCAK256 00000a24: PUSH1 0x01 00000a26: PUSH1 0x01 00000a28: PUSH1 0xa0 00000a2a: SHL 00000a2b: SUB 00000a2c: DUP9 00000a2d: AND 00000a2e: DUP5 00000a2f: MSTORE 00000a30: PUSH1 0x01 00000a32: PUSH1 0x02 00000a34: SWAP1 00000a35: SWAP4 00000a36: MUL 00000a37: ADD 00000a38: SWAP2 00000a39: SWAP1 00000a3a: SWAP2 00000a3b: ADD 00000a3c: SWAP1 00000a3d: MSTORE 00000a3e: PUSH1 0x40 00000a40: SWAP1 00000a41: KECCAK256 00000a42: SLOAD 00000a43: PUSH1 0xff 00000a45: AND 00000a46: ISZERO 00000a47: PUSH2 0x0ae8 00000a4a: JUMPI 00000a4b: PUSH1 0x00 00000a4d: PUSH1 0x08 00000a4f: DUP4 00000a50: DUP2 00000a51: SLOAD 00000a52: DUP2 00000a53: LT 00000a54: PUSH2 0x0a59 00000a57: JUMPI 00000a58: INVALID 00000a59: JUMPDEST 00000a5a: SWAP1 00000a5b: PUSH1 0x00 00000a5d: MSTORE 00000a5e: PUSH1 0x20 00000a60: PUSH1 0x00 00000a62: KECCAK256 00000a63: SWAP1 00000a64: PUSH1 0x05 00000a66: MUL 00000a67: ADD 00000a68: PUSH1 0x04 00000a6a: ADD 00000a6b: PUSH1 0x00 00000a6d: DUP7 00000a6e: PUSH1 0x01 00000a70: PUSH1 0x01 00000a72: PUSH1 0xa0 00000a74: SHL 00000a75: SUB 00000a76: AND 00000a77: PUSH1 0x01 00000a79: PUSH1 0x01 00000a7b: PUSH1 0xa0 00000a7d: SHL 00000a7e: SUB 00000a7f: AND 00000a80: DUP2 00000a81: MSTORE 00000a82: PUSH1 0x20 00000a84: ADD 00000a85: SWAP1 00000a86: DUP2 00000a87: MSTORE 00000a88: PUSH1 0x20 00000a8a: ADD 00000a8b: PUSH1 0x00 00000a8d: KECCAK256 00000a8e: SLOAD 00000a8f: SWAP1 00000a90: POP 00000a91: PUSH1 0x00 00000a93: PUSH1 0x08 00000a95: DUP5 00000a96: DUP2 00000a97: SLOAD 00000a98: DUP2 00000a99: LT 00000a9a: PUSH2 0x0a9f 00000a9d: JUMPI 00000a9e: INVALID 00000a9f: JUMPDEST 00000aa0: SWAP1 00000aa1: PUSH1 0x00 00000aa3: MSTORE 00000aa4: PUSH1 0x20 00000aa6: PUSH1 0x00 00000aa8: KECCAK256 00000aa9: SWAP1 00000aaa: PUSH1 0x05 00000aac: MUL 00000aad: ADD 00000aae: PUSH1 0x03 00000ab0: ADD 00000ab1: DUP4 00000ab2: DUP2 00000ab3: SLOAD 00000ab4: DUP2 00000ab5: LT 00000ab6: PUSH2 0x0abb 00000ab9: JUMPI 00000aba: INVALID 00000abb: JUMPDEST 00000abc: SWAP1 00000abd: PUSH1 0x00 00000abf: MSTORE 00000ac0: PUSH1 0x20 00000ac2: PUSH1 0x00 00000ac4: KECCAK256 00000ac5: ADD 00000ac6: SLOAD 00000ac7: SWAP1 00000ac8: POP 00000ac9: DUP1 00000aca: DUP3 00000acb: LT 00000acc: ISZERO 00000acd: PUSH2 0x0ae5 00000ad0: JUMPI 00000ad1: PUSH2 0x0ada 00000ad4: DUP2 00000ad5: DUP4 00000ad6: PUSH2 0x21a1 00000ad9: JUMP 00000ada: JUMPDEST 00000adb: SWAP5 00000adc: POP 00000add: POP 00000ade: POP 00000adf: POP 00000ae0: POP 00000ae1: PUSH2 0x0aef 00000ae4: JUMP 00000ae5: JUMPDEST 00000ae6: POP 00000ae7: POP 00000ae8: JUMPDEST 00000ae9: PUSH1 0x00 00000aeb: SWAP3 00000aec: POP 00000aed: POP 00000aee: POP 00000aef: JUMPDEST 00000af0: SWAP4 00000af1: SWAP3 00000af2: POP 00000af3: POP 00000af4: POP 00000af5: JUMP 00000af6: JUMPDEST 00000af7: PUSH1 0x02 00000af9: SLOAD 00000afa: DUP2 00000afb: JUMP 00000afc: JUMPDEST 00000afd: PUSH1 0x04 00000aff: SLOAD 00000b00: DUP2 00000b01: JUMP 00000b02: JUMPDEST 00000b03: PUSH2 0x0b0a 00000b06: PUSH2 0x216f 00000b09: JUMP 00000b0a: JUMPDEST 00000b0b: PUSH1 0x00 00000b0d: SLOAD 00000b0e: PUSH1 0x01 00000b10: PUSH1 0x01 00000b12: PUSH1 0xa0 00000b14: SHL 00000b15: SUB 00000b16: SWAP1 00000b17: DUP2 00000b18: AND 00000b19: SWAP2 00000b1a: AND 00000b1b: EQ 00000b1c: PUSH2 0x0b37 00000b1f: JUMPI 00000b20: PUSH1 0x40 00000b22: MLOAD 00000b23: PUSH3 0x461bcd 00000b27: PUSH1 0xe5 00000b29: SHL 00000b2a: DUP2 00000b2b: MSTORE 00000b2c: PUSH1 0x04 00000b2e: ADD 00000b2f: PUSH2 0x072c 00000b32: SWAP1 00000b33: PUSH2 0x2e6c 00000b36: JUMP 00000b37: JUMPDEST 00000b38: PUSH1 0x09 00000b3a: SLOAD 00000b3b: DUP4 00000b3c: LT 00000b3d: PUSH2 0x0b58 00000b40: JUMPI 00000b41: PUSH1 0x40 00000b43: MLOAD 00000b44: PUSH3 0x461bcd 00000b48: PUSH1 0xe5 00000b4a: SHL 00000b4b: DUP2 00000b4c: MSTORE 00000b4d: PUSH1 0x04 00000b4f: ADD 00000b50: PUSH2 0x072c 00000b53: SWAP1 00000b54: PUSH2 0x2c05 00000b57: JUMP 00000b58: JUMPDEST 00000b59: PUSH1 0x00 00000b5b: PUSH1 0x09 00000b5d: DUP5 00000b5e: DUP2 00000b5f: SLOAD 00000b60: DUP2 00000b61: LT 00000b62: PUSH2 0x0b67 00000b65: JUMPI 00000b66: INVALID 00000b67: JUMPDEST 00000b68: PUSH1 0x00 00000b6a: SWAP2 00000b6b: DUP3 00000b6c: MSTORE 00000b6d: PUSH1 0x20 00000b6f: SWAP1 00000b70: SWAP2 00000b71: KECCAK256 00000b72: PUSH1 0x02 00000b74: SWAP1 00000b75: SWAP2 00000b76: MUL 00000b77: ADD 00000b78: SWAP1 00000b79: POP 00000b7a: PUSH2 0x0b84 00000b7d: DUP2 00000b7e: DUP5 00000b7f: DUP5 00000b80: PUSH2 0x2249 00000b83: JUMP 00000b84: JUMPDEST 00000b85: POP 00000b86: POP 00000b87: POP 00000b88: POP 00000b89: POP 00000b8a: JUMP 00000b8b: JUMPDEST 00000b8c: PUSH1 0x40 00000b8e: DUP1 00000b8f: MLOAD 00000b90: DUP1 00000b91: DUP3 00000b92: ADD 00000b93: SWAP1 00000b94: SWAP2 00000b95: MSTORE 00000b96: PUSH1 0x03 00000b98: DUP2 00000b99: MSTORE 00000b9a: PUSH3 0x08aa89 00000b9e: PUSH1 0xeb 00000ba0: SHL 00000ba1: PUSH1 0x20 00000ba3: DUP3 00000ba4: ADD 00000ba5: MSTORE 00000ba6: PUSH1 0x00 00000ba8: SWAP1 00000ba9: PUSH1 0x12 00000bab: DUP3 00000bac: DUP1 00000bad: DUP1 00000bae: DUP1 00000baf: PUSH1 0x60 00000bb1: DUP2 00000bb2: DUP1 00000bb3: DUP1 00000bb4: DUP1 00000bb5: DUP1 00000bb6: PUSH2 0x0bbd 00000bb9: PUSH2 0x17f5 00000bbc: JUMP 00000bbd: JUMPDEST 00000bbe: SWAP8 00000bbf: POP 00000bc0: PUSH2 0x0bc7 00000bc3: PUSH2 0x0748 00000bc6: JUMP 00000bc7: JUMPDEST 00000bc8: SWAP7 00000bc9: POP 00000bca: PUSH1 0x40 00000bcc: MLOAD 00000bcd: DUP1 00000bce: PUSH1 0x40 00000bd0: ADD 00000bd1: PUSH1 0x40 00000bd3: MSTORE 00000bd4: DUP1 00000bd5: PUSH1 0x01 00000bd7: DUP2 00000bd8: MSTORE 00000bd9: PUSH1 0x20 00000bdb: ADD 00000bdc: PUSH1 0x43 00000bde: PUSH1 0xf8 00000be0: SHL 00000be1: DUP2 00000be2: MSTORE 00000be3: POP 00000be4: SWAP6 00000be5: POP 00000be6: PUSH2 0x0bed 00000be9: PUSH2 0x193c 00000bec: JUMP 00000bed: JUMPDEST 00000bee: PUSH2 0x0c9c 00000bf1: JUMPI 00000bf2: PUSH1 0x01 00000bf4: SLOAD 00000bf5: TIMESTAMP 00000bf6: LT 00000bf7: ISZERO 00000bf8: PUSH2 0x0c1c 00000bfb: JUMPI 00000bfc: PUSH1 0x40 00000bfe: MLOAD 00000bff: DUP1 00000c00: PUSH1 0x40 00000c02: ADD 00000c03: PUSH1 0x40 00000c05: MSTORE 00000c06: DUP1 00000c07: PUSH1 0x01 00000c09: DUP2 00000c0a: MSTORE 00000c0b: PUSH1 0x20 00000c0d: ADD 00000c0e: PUSH1 0x05 00000c10: PUSH1 0xfc 00000c12: SHL 00000c13: DUP2 00000c14: MSTORE 00000c15: POP 00000c16: SWAP6 00000c17: POP 00000c18: PUSH2 0x0c9c 00000c1b: JUMP 00000c1c: JUMPDEST 00000c1d: DUP7 00000c1e: DUP9 00000c1f: EQ 00000c20: DUP1 00000c21: ISZERO 00000c22: PUSH2 0x0c2a 00000c25: JUMPI 00000c26: POP 00000c27: DUP7 00000c28: TIMESTAMP 00000c29: LT 00000c2a: JUMPDEST 00000c2b: DUP1 00000c2c: PUSH2 0x0c3e 00000c2f: JUMPI 00000c30: POP 00000c31: DUP7 00000c32: DUP9 00000c33: LT 00000c34: DUP1 00000c35: ISZERO 00000c36: PUSH2 0x0c3e 00000c39: JUMPI 00000c3a: POP 00000c3b: DUP8 00000c3c: TIMESTAMP 00000c3d: LT 00000c3e: JUMPDEST 00000c3f: ISZERO 00000c40: PUSH2 0x0c60 00000c43: JUMPI 00000c44: PUSH1 0x40 00000c46: MLOAD 00000c47: DUP1 00000c48: PUSH1 0x40 00000c4a: ADD 00000c4b: PUSH1 0x40 00000c4d: MSTORE 00000c4e: DUP1 00000c4f: PUSH1 0x01 00000c51: DUP2 00000c52: MSTORE 00000c53: PUSH1 0x20 00000c55: ADD 00000c56: PUSH1 0x4f 00000c58: PUSH1 0xf8 00000c5a: SHL 00000c5b: DUP2 00000c5c: MSTORE 00000c5d: POP 00000c5e: SWAP6 00000c5f: POP 00000c60: JUMPDEST 00000c61: DUP7 00000c62: DUP9 00000c63: LT 00000c64: DUP1 00000c65: ISZERO 00000c66: PUSH2 0x0c6f 00000c69: JUMPI 00000c6a: POP 00000c6b: DUP8 00000c6c: TIMESTAMP 00000c6d: LT 00000c6e: ISZERO 00000c6f: JUMPDEST 00000c70: DUP1 00000c71: ISZERO 00000c72: PUSH2 0x0c7a 00000c75: JUMPI 00000c76: POP 00000c77: DUP7 00000c78: TIMESTAMP 00000c79: LT 00000c7a: JUMPDEST 00000c7b: ISZERO 00000c7c: PUSH2 0x0c9c 00000c7f: JUMPI 00000c80: PUSH1 0x40 00000c82: MLOAD 00000c83: DUP1 00000c84: PUSH1 0x40 00000c86: ADD 00000c87: PUSH1 0x40 00000c89: MSTORE 00000c8a: DUP1 00000c8b: PUSH1 0x01 00000c8d: DUP2 00000c8e: MSTORE 00000c8f: PUSH1 0x20 00000c91: ADD 00000c92: PUSH1 0x23 00000c94: PUSH1 0xf9 00000c96: SHL 00000c97: DUP2 00000c98: MSTORE 00000c99: POP 00000c9a: SWAP6 00000c9b: POP 00000c9c: JUMPDEST 00000c9d: POP 00000c9e: POP 00000c9f: PUSH1 0x02 00000ca1: SLOAD 00000ca2: PUSH1 0x01 00000ca4: SLOAD 00000ca5: PUSH1 0x03 00000ca7: SLOAD 00000ca8: PUSH1 0x06 00000caa: SLOAD 00000cab: PUSH1 0x04 00000cad: SLOAD 00000cae: PUSH1 0x05 00000cb0: SLOAD 00000cb1: PUSH1 0x07 00000cb3: SLOAD 00000cb4: SWAP6 00000cb5: SWAP14 00000cb6: POP 00000cb7: SWAP4 00000cb8: SWAP12 00000cb9: POP 00000cba: SWAP2 00000cbb: SWAP7 00000cbc: POP 00000cbd: SWAP5 00000cbe: POP 00000cbf: SWAP3 00000cc0: POP 00000cc1: SWAP1 00000cc2: PUSH1 0x01 00000cc4: PUSH1 0x01 00000cc6: PUSH1 0xa0 00000cc8: SHL 00000cc9: SUB 00000cca: PUSH2 0x0100 00000ccd: SWAP1 00000cce: SWAP2 00000ccf: DIV 00000cd0: AND 00000cd1: SWAP1 00000cd2: SWAP2 00000cd3: SWAP3 00000cd4: SWAP4 00000cd5: SWAP5 00000cd6: SWAP6 00000cd7: SWAP7 00000cd8: SWAP8 00000cd9: SWAP9 00000cda: SWAP10 00000cdb: SWAP11 00000cdc: SWAP12 00000cdd: SWAP13 00000cde: JUMP 00000cdf: JUMPDEST 00000ce0: PUSH1 0x03 00000ce2: SLOAD 00000ce3: DUP2 00000ce4: JUMP 00000ce5: JUMPDEST 00000ce6: PUSH2 0x0ced 00000ce9: PUSH2 0x216f 00000cec: JUMP 00000ced: JUMPDEST 00000cee: PUSH1 0x00 00000cf0: SLOAD 00000cf1: PUSH1 0x01 00000cf3: PUSH1 0x01 00000cf5: PUSH1 0xa0 00000cf7: SHL 00000cf8: SUB 00000cf9: SWAP1 00000cfa: DUP2 00000cfb: AND 00000cfc: SWAP2 00000cfd: AND 00000cfe: EQ 00000cff: PUSH2 0x0d1a 00000d02: JUMPI 00000d03: PUSH1 0x40 00000d05: MLOAD 00000d06: PUSH3 0x461bcd 00000d0a: PUSH1 0xe5 00000d0c: SHL 00000d0d: DUP2 00000d0e: MSTORE 00000d0f: PUSH1 0x04 00000d11: ADD 00000d12: PUSH2 0x072c 00000d15: SWAP1 00000d16: PUSH2 0x2e6c 00000d19: JUMP 00000d1a: JUMPDEST 00000d1b: PUSH1 0x01 00000d1d: SSTORE 00000d1e: JUMP 00000d1f: JUMPDEST 00000d20: PUSH2 0x0d27 00000d23: PUSH2 0x216f 00000d26: JUMP 00000d27: JUMPDEST 00000d28: PUSH1 0x00 00000d2a: SLOAD 00000d2b: PUSH1 0x01 00000d2d: PUSH1 0x01 00000d2f: PUSH1 0xa0 00000d31: SHL 00000d32: SUB 00000d33: SWAP1 00000d34: DUP2 00000d35: AND 00000d36: SWAP2 00000d37: AND 00000d38: EQ 00000d39: PUSH2 0x0d54 00000d3c: JUMPI 00000d3d: PUSH1 0x40 00000d3f: MLOAD 00000d40: PUSH3 0x461bcd 00000d44: PUSH1 0xe5 00000d46: SHL 00000d47: DUP2 00000d48: MSTORE 00000d49: PUSH1 0x04 00000d4b: ADD 00000d4c: PUSH2 0x072c 00000d4f: SWAP1 00000d50: PUSH2 0x2e6c 00000d53: JUMP 00000d54: JUMPDEST 00000d55: PUSH1 0x06 00000d57: SSTORE 00000d58: JUMP 00000d59: JUMPDEST 00000d5a: PUSH2 0x0d61 00000d5d: PUSH2 0x216f 00000d60: JUMP 00000d61: JUMPDEST 00000d62: PUSH1 0x00 00000d64: SLOAD 00000d65: PUSH1 0x01 00000d67: PUSH1 0x01 00000d69: PUSH1 0xa0 00000d6b: SHL 00000d6c: SUB 00000d6d: SWAP1 00000d6e: DUP2 00000d6f: AND 00000d70: SWAP2 00000d71: AND 00000d72: EQ 00000d73: PUSH2 0x0d8e 00000d76: JUMPI 00000d77: PUSH1 0x40 00000d79: MLOAD 00000d7a: PUSH3 0x461bcd 00000d7e: PUSH1 0xe5 00000d80: SHL 00000d81: DUP2 00000d82: MSTORE 00000d83: PUSH1 0x04 00000d85: ADD 00000d86: PUSH2 0x072c 00000d89: SWAP1 00000d8a: PUSH2 0x2e6c 00000d8d: JUMP 00000d8e: JUMPDEST 00000d8f: DUP1 00000d90: PUSH2 0x0dab 00000d93: JUMPI 00000d94: PUSH1 0x40 00000d96: MLOAD 00000d97: PUSH3 0x461bcd 00000d9b: PUSH1 0xe5 00000d9d: SHL 00000d9e: DUP2 00000d9f: MSTORE 00000da0: PUSH1 0x04 00000da2: ADD 00000da3: PUSH2 0x072c 00000da6: SWAP1 00000da7: PUSH2 0x2f4d 00000daa: JUMP 00000dab: JUMPDEST 00000dac: PUSH2 0x0db7 00000daf: PUSH1 0x09 00000db1: PUSH1 0x00 00000db3: PUSH2 0x22c7 00000db6: JUMP 00000db7: JUMPDEST 00000db8: PUSH1 0x00 00000dba: JUMPDEST 00000dbb: DUP2 00000dbc: DUP2 00000dbd: LT 00000dbe: ISZERO 00000dbf: PUSH2 0x098c 00000dc2: JUMPI 00000dc3: PUSH1 0x09 00000dc5: PUSH1 0x40 00000dc7: MLOAD 00000dc8: DUP1 00000dc9: PUSH1 0x20 00000dcb: ADD 00000dcc: PUSH1 0x40 00000dce: MSTORE 00000dcf: DUP1 00000dd0: DUP6 00000dd1: DUP6 00000dd2: DUP6 00000dd3: DUP2 00000dd4: DUP2 00000dd5: LT 00000dd6: PUSH2 0x0ddb 00000dd9: JUMPI 00000dda: INVALID 00000ddb: JUMPDEST 00000ddc: SWAP1 00000ddd: POP 00000dde: PUSH1 0x20 00000de0: MUL 00000de1: DUP2 00000de2: ADD 00000de3: SWAP1 00000de4: PUSH2 0x0ded 00000de7: SWAP2 00000de8: SWAP1 00000de9: PUSH2 0x3097 00000dec: JUMP 00000ded: JUMPDEST 00000dee: DUP1 00000def: DUP1 00000df0: PUSH1 0x1f 00000df2: ADD 00000df3: PUSH1 0x20 00000df5: DUP1 00000df6: SWAP2 00000df7: DIV 00000df8: MUL 00000df9: PUSH1 0x20 00000dfb: ADD 00000dfc: PUSH1 0x40 00000dfe: MLOAD 00000dff: SWAP1 00000e00: DUP2 00000e01: ADD 00000e02: PUSH1 0x40 00000e04: MSTORE 00000e05: DUP1 00000e06: SWAP4 00000e07: SWAP3 00000e08: SWAP2 00000e09: SWAP1 00000e0a: DUP2 00000e0b: DUP2 00000e0c: MSTORE 00000e0d: PUSH1 0x20 00000e0f: ADD 00000e10: DUP4 00000e11: DUP4 00000e12: DUP1 00000e13: DUP3 00000e14: DUP5 00000e15: CALLDATACOPY 00000e16: PUSH1 0x00 00000e18: SWAP3 00000e19: ADD 00000e1a: DUP3 00000e1b: SWAP1 00000e1c: MSTORE 00000e1d: POP 00000e1e: SWAP4 00000e1f: SWAP1 00000e20: SWAP5 00000e21: MSTORE 00000e22: POP 00000e23: POP 00000e24: DUP4 00000e25: SLOAD 00000e26: PUSH1 0x01 00000e28: DUP2 00000e29: ADD 00000e2a: DUP6 00000e2b: SSTORE 00000e2c: SWAP4 00000e2d: DUP2 00000e2e: MSTORE 00000e2f: PUSH1 0x20 00000e31: SWAP1 00000e32: DUP2 00000e33: SWAP1 00000e34: KECCAK256 00000e35: DUP4 00000e36: MLOAD 00000e37: DUP1 00000e38: MLOAD 00000e39: SWAP5 00000e3a: SWAP6 00000e3b: PUSH1 0x02 00000e3d: MUL 00000e3e: SWAP1 00000e3f: SWAP2 00000e40: ADD 00000e41: SWAP4 00000e42: PUSH2 0x0e52 00000e45: SWAP4 00000e46: POP 00000e47: DUP5 00000e48: SWAP3 00000e49: SWAP2 00000e4a: SWAP1 00000e4b: SWAP2 00000e4c: ADD 00000e4d: SWAP1 00000e4e: PUSH2 0x22eb 00000e51: JUMP 00000e52: JUMPDEST 00000e53: POP 00000e54: POP 00000e55: POP 00000e56: PUSH1 0x01 00000e58: ADD 00000e59: PUSH2 0x0dba 00000e5c: JUMP 00000e5d: JUMPDEST 00000e5e: PUSH2 0x0e65 00000e61: PUSH2 0x216f 00000e64: JUMP 00000e65: JUMPDEST 00000e66: PUSH1 0x00 00000e68: SLOAD 00000e69: PUSH1 0x01 00000e6b: PUSH1 0x01 00000e6d: PUSH1 0xa0 00000e6f: SHL 00000e70: SUB 00000e71: SWAP1 00000e72: DUP2 00000e73: AND 00000e74: SWAP2 00000e75: AND 00000e76: EQ 00000e77: PUSH2 0x0e92 00000e7a: JUMPI 00000e7b: PUSH1 0x40 00000e7d: MLOAD 00000e7e: PUSH3 0x461bcd 00000e82: PUSH1 0xe5 00000e84: SHL 00000e85: DUP2 00000e86: MSTORE 00000e87: PUSH1 0x04 00000e89: ADD 00000e8a: PUSH2 0x072c 00000e8d: SWAP1 00000e8e: PUSH2 0x2e6c 00000e91: JUMP 00000e92: JUMPDEST 00000e93: PUSH1 0x07 00000e95: DUP1 00000e96: SLOAD 00000e97: PUSH1 0x01 00000e99: PUSH1 0x01 00000e9b: PUSH1 0xa0 00000e9d: SHL 00000e9e: SUB 00000e9f: SWAP1 00000ea0: SWAP3 00000ea1: AND 00000ea2: PUSH2 0x0100 00000ea5: MUL 00000ea6: PUSH2 0x0100 00000ea9: PUSH1 0x01 00000eab: PUSH1 0xa8 00000ead: SHL 00000eae: SUB 00000eaf: NOT 00000eb0: SWAP1 00000eb1: SWAP3 00000eb2: AND 00000eb3: SWAP2 00000eb4: SWAP1 00000eb5: SWAP2 00000eb6: OR 00000eb7: SWAP1 00000eb8: SSTORE 00000eb9: JUMP 00000eba: JUMPDEST 00000ebb: PUSH2 0x0ec2 00000ebe: PUSH2 0x216f 00000ec1: JUMP 00000ec2: JUMPDEST 00000ec3: PUSH1 0x00 00000ec5: SLOAD 00000ec6: PUSH1 0x01 00000ec8: PUSH1 0x01 00000eca: PUSH1 0xa0 00000ecc: SHL 00000ecd: SUB 00000ece: SWAP1 00000ecf: DUP2 00000ed0: AND 00000ed1: SWAP2 00000ed2: AND 00000ed3: EQ 00000ed4: PUSH2 0x0eef 00000ed7: JUMPI 00000ed8: PUSH1 0x40 00000eda: MLOAD 00000edb: PUSH3 0x461bcd 00000edf: PUSH1 0xe5 00000ee1: SHL 00000ee2: DUP2 00000ee3: MSTORE 00000ee4: PUSH1 0x04 00000ee6: ADD 00000ee7: PUSH2 0x072c 00000eea: SWAP1 00000eeb: PUSH2 0x2e6c 00000eee: JUMP 00000eef: JUMPDEST 00000ef0: PUSH1 0x00 00000ef2: DUP1 00000ef3: SLOAD 00000ef4: PUSH1 0x40 00000ef6: MLOAD 00000ef7: PUSH1 0x01 00000ef9: PUSH1 0x01 00000efb: PUSH1 0xa0 00000efd: SHL 00000efe: SUB 00000eff: SWAP1 00000f00: SWAP2 00000f01: AND 00000f02: SWAP1 00000f03: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00000f24: SWAP1 00000f25: DUP4 00000f26: SWAP1 00000f27: LOG3 00000f28: PUSH1 0x00 00000f2a: DUP1 00000f2b: SLOAD 00000f2c: PUSH1 0x01 00000f2e: PUSH1 0x01 00000f30: PUSH1 0xa0 00000f32: SHL 00000f33: SUB 00000f34: NOT 00000f35: AND 00000f36: SWAP1 00000f37: SSTORE 00000f38: JUMP 00000f39: JUMPDEST 00000f3a: PUSH1 0x60 00000f3c: DUP1 00000f3d: PUSH1 0x60 00000f3f: DUP1 00000f40: PUSH1 0x60 00000f42: DUP1 00000f43: PUSH1 0x00 00000f45: PUSH1 0x08 00000f47: DUP1 00000f48: SLOAD 00000f49: SWAP1 00000f4a: POP 00000f4b: GT 00000f4c: ISZERO 00000f4d: PUSH2 0x1146 00000f50: JUMPI 00000f51: PUSH1 0x08 00000f53: SLOAD 00000f54: PUSH1 0x01 00000f56: PUSH1 0x01 00000f58: PUSH1 0x40 00000f5a: SHL 00000f5b: SUB 00000f5c: DUP2 00000f5d: GT 00000f5e: DUP1 00000f5f: ISZERO 00000f60: PUSH2 0x0f68 00000f63: JUMPI 00000f64: PUSH1 0x00 00000f66: DUP1 00000f67: REVERT 00000f68: JUMPDEST 00000f69: POP 00000f6a: PUSH1 0x40 00000f6c: MLOAD 00000f6d: SWAP1 00000f6e: DUP1 00000f6f: DUP3 00000f70: MSTORE 00000f71: DUP1 00000f72: PUSH1 0x20 00000f74: MUL 00000f75: PUSH1 0x20 00000f77: ADD 00000f78: DUP3 00000f79: ADD 00000f7a: PUSH1 0x40 00000f7c: MSTORE 00000f7d: DUP1 00000f7e: ISZERO 00000f7f: PUSH2 0x0f9c 00000f82: JUMPI 00000f83: DUP2 00000f84: PUSH1 0x20 00000f86: ADD 00000f87: JUMPDEST 00000f88: PUSH1 0x60 00000f8a: DUP2 00000f8b: MSTORE 00000f8c: PUSH1 0x20 00000f8e: ADD 00000f8f: SWAP1 00000f90: PUSH1 0x01 00000f92: SWAP1 00000f93: SUB 00000f94: SWAP1 00000f95: DUP2 00000f96: PUSH2 0x0f87 00000f99: JUMPI 00000f9a: SWAP1 00000f9b: POP 00000f9c: JUMPDEST 00000f9d: POP 00000f9e: PUSH1 0x08 00000fa0: SLOAD 00000fa1: SWAP1 00000fa2: SWAP4 00000fa3: POP 00000fa4: PUSH1 0x01 00000fa6: PUSH1 0x01 00000fa8: PUSH1 0x40 00000faa: SHL 00000fab: SUB 00000fac: DUP2 00000fad: GT 00000fae: DUP1 00000faf: ISZERO 00000fb0: PUSH2 0x0fb8 00000fb3: JUMPI 00000fb4: PUSH1 0x00 00000fb6: DUP1 00000fb7: REVERT 00000fb8: JUMPDEST 00000fb9: POP 00000fba: PUSH1 0x40 00000fbc: MLOAD 00000fbd: SWAP1 00000fbe: DUP1 00000fbf: DUP3 00000fc0: MSTORE 00000fc1: DUP1 00000fc2: PUSH1 0x20 00000fc4: MUL 00000fc5: PUSH1 0x20 00000fc7: ADD 00000fc8: DUP3 00000fc9: ADD 00000fca: PUSH1 0x40 00000fcc: MSTORE 00000fcd: DUP1 00000fce: ISZERO 00000fcf: PUSH2 0x0fe2 00000fd2: JUMPI 00000fd3: DUP2 00000fd4: PUSH1 0x20 00000fd6: ADD 00000fd7: PUSH1 0x20 00000fd9: DUP3 00000fda: MUL 00000fdb: DUP1 00000fdc: CALLDATASIZE 00000fdd: DUP4 00000fde: CALLDATACOPY 00000fdf: ADD 00000fe0: SWAP1 00000fe1: POP 00000fe2: JUMPDEST 00000fe3: POP 00000fe4: PUSH1 0x08 00000fe6: SLOAD 00000fe7: SWAP1 00000fe8: SWAP3 00000fe9: POP 00000fea: PUSH1 0x01 00000fec: PUSH1 0x01 00000fee: PUSH1 0x40 00000ff0: SHL 00000ff1: SUB 00000ff2: DUP2 00000ff3: GT 00000ff4: DUP1 00000ff5: ISZERO 00000ff6: PUSH2 0x0ffe 00000ff9: JUMPI 00000ffa: PUSH1 0x00 00000ffc: DUP1 00000ffd: REVERT 00000ffe: JUMPDEST 00000fff: POP 00001000: PUSH1 0x40 00001002: MLOAD 00001003: SWAP1 00001004: DUP1 00001005: DUP3 00001006: MSTORE 00001007: DUP1 00001008: PUSH1 0x20 0000100a: MUL 0000100b: PUSH1 0x20 0000100d: ADD 0000100e: DUP3 0000100f: ADD 00001010: PUSH1 0x40 00001012: MSTORE 00001013: DUP1 00001014: ISZERO 00001015: PUSH2 0x1028 00001018: JUMPI 00001019: DUP2 0000101a: PUSH1 0x20 0000101c: ADD 0000101d: PUSH1 0x20 0000101f: DUP3 00001020: MUL 00001021: DUP1 00001022: CALLDATASIZE 00001023: DUP4 00001024: CALLDATACOPY 00001025: ADD 00001026: SWAP1 00001027: POP 00001028: JUMPDEST 00001029: POP 0000102a: PUSH1 0x01 0000102c: SLOAD 0000102d: SWAP1 0000102e: SWAP2 0000102f: POP 00001030: PUSH1 0x00 00001032: JUMPDEST 00001033: PUSH1 0x08 00001035: SLOAD 00001036: DUP2 00001037: LT 00001038: ISZERO 00001039: PUSH2 0x1143 0000103c: JUMPI 0000103d: PUSH1 0x08 0000103f: DUP2 00001040: DUP2 00001041: SLOAD 00001042: DUP2 00001043: LT 00001044: PUSH2 0x1049 00001047: JUMPI 00001048: INVALID 00001049: JUMPDEST 0000104a: PUSH1 0x00 0000104c: SWAP2 0000104d: DUP3 0000104e: MSTORE 0000104f: PUSH1 0x20 00001051: SWAP2 00001052: DUP3 00001053: SWAP1 00001054: KECCAK256 00001055: PUSH1 0x05 00001057: SWAP1 00001058: SWAP2 00001059: MUL 0000105a: ADD 0000105b: DUP1 0000105c: SLOAD 0000105d: PUSH1 0x40 0000105f: DUP1 00001060: MLOAD 00001061: PUSH1 0x1f 00001063: PUSH1 0x02 00001065: PUSH1 0x00 00001067: NOT 00001068: PUSH2 0x0100 0000106b: PUSH1 0x01 0000106d: DUP8 0000106e: AND 0000106f: ISZERO 00001070: MUL 00001071: ADD 00001072: SWAP1 00001073: SWAP5 00001074: AND 00001075: SWAP4 00001076: SWAP1 00001077: SWAP4 00001078: DIV 00001079: SWAP3 0000107a: DUP4 0000107b: ADD 0000107c: DUP6 0000107d: SWAP1 0000107e: DIV 0000107f: DUP6 00001080: MUL 00001081: DUP2 00001082: ADD 00001083: DUP6 00001084: ADD 00001085: SWAP1 00001086: SWAP2 00001087: MSTORE 00001088: DUP2 00001089: DUP2 0000108a: MSTORE 0000108b: SWAP3 0000108c: DUP4 0000108d: ADD 0000108e: DUP3 0000108f: DUP3 00001090: DUP1 00001091: ISZERO 00001092: PUSH2 0x10dc 00001095: JUMPI 00001096: DUP1 00001097: PUSH1 0x1f 00001099: LT 0000109a: PUSH2 0x10b1 0000109d: JUMPI 0000109e: PUSH2 0x0100 000010a1: DUP1 000010a2: DUP4 000010a3: SLOAD 000010a4: DIV 000010a5: MUL 000010a6: DUP4 000010a7: MSTORE 000010a8: SWAP2 000010a9: PUSH1 0x20 000010ab: ADD 000010ac: SWAP2 000010ad: PUSH2 0x10dc 000010b0: JUMP 000010b1: JUMPDEST 000010b2: DUP3 000010b3: ADD 000010b4: SWAP2 000010b5: SWAP1 000010b6: PUSH1 0x00 000010b8: MSTORE 000010b9: PUSH1 0x20 000010bb: PUSH1 0x00 000010bd: KECCAK256 000010be: SWAP1 000010bf: JUMPDEST 000010c0: DUP2 000010c1: SLOAD 000010c2: DUP2 000010c3: MSTORE 000010c4: SWAP1 000010c5: PUSH1 0x01 000010c7: ADD 000010c8: SWAP1 000010c9: PUSH1 0x20 000010cb: ADD 000010cc: DUP1 000010cd: DUP4 000010ce: GT 000010cf: PUSH2 0x10bf 000010d2: JUMPI 000010d3: DUP3 000010d4: SWAP1 000010d5: SUB 000010d6: PUSH1 0x1f 000010d8: AND 000010d9: DUP3 000010da: ADD 000010db: SWAP2 000010dc: JUMPDEST 000010dd: POP 000010de: POP 000010df: POP 000010e0: POP 000010e1: POP 000010e2: DUP6 000010e3: DUP3 000010e4: DUP2 000010e5: MLOAD 000010e6: DUP2 000010e7: LT 000010e8: PUSH2 0x10ed 000010eb: JUMPI 000010ec: INVALID 000010ed: JUMPDEST 000010ee: PUSH1 0x20 000010f0: MUL 000010f1: PUSH1 0x20 000010f3: ADD 000010f4: ADD 000010f5: DUP2 000010f6: SWAP1 000010f7: MSTORE 000010f8: POP 000010f9: DUP2 000010fa: DUP5 000010fb: DUP3 000010fc: DUP2 000010fd: MLOAD 000010fe: DUP2 000010ff: LT 00001100: PUSH2 0x1105 00001103: JUMPI 00001104: INVALID 00001105: JUMPDEST 00001106: PUSH1 0x20 00001108: MUL 00001109: PUSH1 0x20 0000110b: ADD 0000110c: ADD 0000110d: DUP2 0000110e: DUP2 0000110f: MSTORE 00001110: POP 00001111: POP 00001112: PUSH2 0x1121 00001115: PUSH1 0x08 00001117: DUP3 00001118: DUP2 00001119: SLOAD 0000111a: DUP2 0000111b: LT 0000111c: PUSH2 0x076a 0000111f: JUMPI 00001120: INVALID 00001121: JUMPDEST 00001122: SWAP2 00001123: POP 00001124: DUP2 00001125: DUP4 00001126: DUP3 00001127: DUP2 00001128: MLOAD 00001129: DUP2 0000112a: LT 0000112b: PUSH2 0x1130 0000112e: JUMPI 0000112f: INVALID 00001130: JUMPDEST 00001131: PUSH1 0x20 00001133: SWAP1 00001134: DUP2 00001135: MUL 00001136: SWAP2 00001137: SWAP1 00001138: SWAP2 00001139: ADD 0000113a: ADD 0000113b: MSTORE 0000113c: PUSH1 0x01 0000113e: ADD 0000113f: PUSH2 0x1032 00001142: JUMP 00001143: JUMPDEST 00001144: POP 00001145: POP 00001146: JUMPDEST 00001147: SWAP2 00001148: SWAP5 00001149: POP 0000114a: SWAP3 0000114b: POP 0000114c: SWAP1 0000114d: POP 0000114e: SWAP1 0000114f: SWAP2 00001150: SWAP3 00001151: JUMP 00001152: JUMPDEST 00001153: PUSH1 0x08 00001155: DUP2 00001156: DUP2 00001157: SLOAD 00001158: DUP2 00001159: LT 0000115a: PUSH2 0x115f 0000115d: JUMPI 0000115e: INVALID 0000115f: JUMPDEST 00001160: PUSH1 0x00 00001162: SWAP2 00001163: DUP3 00001164: MSTORE 00001165: PUSH1 0x20 00001167: SWAP2 00001168: DUP3 00001169: SWAP1 0000116a: KECCAK256 0000116b: PUSH1 0x05 0000116d: SWAP2 0000116e: SWAP1 0000116f: SWAP2 00001170: MUL 00001171: ADD 00001172: DUP1 00001173: SLOAD 00001174: PUSH1 0x40 00001176: DUP1 00001177: MLOAD 00001178: PUSH1 0x02 0000117a: PUSH1 0x01 0000117c: DUP5 0000117d: AND 0000117e: ISZERO 0000117f: PUSH2 0x0100 00001182: MUL 00001183: PUSH1 0x00 00001185: NOT 00001186: ADD 00001187: SWAP1 00001188: SWAP4 00001189: AND 0000118a: SWAP3 0000118b: SWAP1 0000118c: SWAP3 0000118d: DIV 0000118e: PUSH1 0x1f 00001190: DUP2 00001191: ADD 00001192: DUP6 00001193: SWAP1 00001194: DIV 00001195: DUP6 00001196: MUL 00001197: DUP4 00001198: ADD 00001199: DUP6 0000119a: ADD 0000119b: SWAP1 0000119c: SWAP2 0000119d: MSTORE 0000119e: DUP1 0000119f: DUP3 000011a0: MSTORE 000011a1: SWAP2 000011a2: SWAP4 000011a3: POP 000011a4: SWAP2 000011a5: DUP4 000011a6: SWAP2 000011a7: SWAP1 000011a8: DUP4 000011a9: ADD 000011aa: DUP3 000011ab: DUP3 000011ac: DUP1 000011ad: ISZERO 000011ae: PUSH2 0x11f8 000011b1: JUMPI 000011b2: DUP1 000011b3: PUSH1 0x1f 000011b5: LT 000011b6: PUSH2 0x11cd 000011b9: JUMPI 000011ba: PUSH2 0x0100 000011bd: DUP1 000011be: DUP4 000011bf: SLOAD 000011c0: DIV 000011c1: MUL 000011c2: DUP4 000011c3: MSTORE 000011c4: SWAP2 000011c5: PUSH1 0x20 000011c7: ADD 000011c8: SWAP2 000011c9: PUSH2 0x11f8 000011cc: JUMP 000011cd: JUMPDEST 000011ce: DUP3 000011cf: ADD 000011d0: SWAP2 000011d1: SWAP1 000011d2: PUSH1 0x00 000011d4: MSTORE 000011d5: PUSH1 0x20 000011d7: PUSH1 0x00 000011d9: KECCAK256 000011da: SWAP1 000011db: JUMPDEST 000011dc: DUP2 000011dd: SLOAD 000011de: DUP2 000011df: MSTORE 000011e0: SWAP1 000011e1: PUSH1 0x01 000011e3: ADD 000011e4: SWAP1 000011e5: PUSH1 0x20 000011e7: ADD 000011e8: DUP1 000011e9: DUP4 000011ea: GT 000011eb: PUSH2 0x11db 000011ee: JUMPI 000011ef: DUP3 000011f0: SWAP1 000011f1: SUB 000011f2: PUSH1 0x1f 000011f4: AND 000011f5: DUP3 000011f6: ADD 000011f7: SWAP2 000011f8: JUMPDEST 000011f9: POP 000011fa: POP 000011fb: POP 000011fc: POP 000011fd: PUSH1 0x01 000011ff: DUP4 00001200: ADD 00001201: SLOAD 00001202: PUSH1 0x02 00001204: SWAP1 00001205: SWAP4 00001206: ADD 00001207: SLOAD 00001208: SWAP2 00001209: SWAP3 0000120a: SWAP2 0000120b: PUSH1 0xff 0000120d: AND 0000120e: SWAP1 0000120f: POP 00001210: DUP4 00001211: JUMP 00001212: JUMPDEST 00001213: PUSH1 0x00 00001215: DUP2 00001216: GT 00001217: PUSH2 0x1232 0000121a: JUMPI 0000121b: PUSH1 0x40 0000121d: MLOAD 0000121e: PUSH3 0x461bcd 00001222: PUSH1 0xe5 00001224: SHL 00001225: DUP2 00001226: MSTORE 00001227: PUSH1 0x04 00001229: ADD 0000122a: PUSH2 0x072c 0000122d: SWAP1 0000122e: PUSH2 0x2d28 00001231: JUMP 00001232: JUMPDEST 00001233: PUSH1 0x00 00001235: DUP1 00001236: PUSH1 0x00 00001238: PUSH2 0x1240 0000123b: CALLER 0000123c: PUSH2 0x07a2 0000123f: JUMP 00001240: JUMPDEST 00001241: POP 00001242: POP 00001243: SWAP3 00001244: POP 00001245: SWAP3 00001246: POP 00001247: SWAP3 00001248: POP 00001249: DUP1 0000124a: PUSH1 0x01 0000124c: EQ 0000124d: DUP1 0000124e: PUSH2 0x1257 00001251: JUMPI 00001252: POP 00001253: DUP1 00001254: PUSH1 0x03 00001256: EQ 00001257: JUMPDEST 00001258: PUSH2 0x1273 0000125b: JUMPI 0000125c: PUSH1 0x40 0000125e: MLOAD 0000125f: PUSH3 0x461bcd 00001263: PUSH1 0xe5 00001265: SHL 00001266: DUP2 00001267: MSTORE 00001268: PUSH1 0x04 0000126a: ADD 0000126b: PUSH2 0x072c 0000126e: SWAP1 0000126f: PUSH2 0x2f16 00001272: JUMP 00001273: JUMPDEST 00001274: PUSH2 0x127e 00001277: DUP3 00001278: DUP5 00001279: CALLER 0000127a: PUSH2 0x0991 0000127d: JUMP 0000127e: JUMPDEST 0000127f: DUP5 00001280: GT 00001281: ISZERO 00001282: PUSH2 0x129d 00001285: JUMPI 00001286: PUSH1 0x40 00001288: MLOAD 00001289: PUSH3 0x461bcd 0000128d: PUSH1 0xe5 0000128f: SHL 00001290: DUP2 00001291: MSTORE 00001292: PUSH1 0x04 00001294: ADD 00001295: PUSH2 0x072c 00001298: SWAP1 00001299: PUSH2 0x2db1 0000129c: JUMP 0000129d: JUMPDEST 0000129e: PUSH1 0x06 000012a0: SLOAD 000012a1: PUSH1 0x04 000012a3: SLOAD 000012a4: PUSH2 0x12ad 000012a7: SWAP1 000012a8: DUP7 000012a9: PUSH2 0x2173 000012ac: JUMP 000012ad: JUMPDEST 000012ae: GT 000012af: ISZERO 000012b0: PUSH2 0x12cb 000012b3: JUMPI 000012b4: PUSH1 0x40 000012b6: MLOAD 000012b7: PUSH3 0x461bcd 000012bb: PUSH1 0xe5 000012bd: SHL 000012be: DUP2 000012bf: MSTORE 000012c0: PUSH1 0x04 000012c2: ADD 000012c3: PUSH2 0x072c 000012c6: SWAP1 000012c7: PUSH2 0x2ea1 000012ca: JUMP 000012cb: JUMPDEST 000012cc: PUSH1 0x00 000012ce: PUSH2 0x12e2 000012d1: PUSH1 0x02 000012d3: SLOAD 000012d4: DUP7 000012d5: PUSH2 0x21e3 000012d8: SWAP1 000012d9: SWAP2 000012da: SWAP1 000012db: PUSH4 0xffffffff 000012e0: AND 000012e1: JUMP 000012e2: JUMPDEST 000012e3: SWAP1 000012e4: POP 000012e5: DUP1 000012e6: CALLVALUE 000012e7: EQ 000012e8: PUSH2 0x1303 000012eb: JUMPI 000012ec: PUSH1 0x40 000012ee: MLOAD 000012ef: PUSH3 0x461bcd 000012f3: PUSH1 0xe5 000012f5: SHL 000012f6: DUP2 000012f7: MSTORE 000012f8: PUSH1 0x04 000012fa: ADD 000012fb: PUSH2 0x072c 000012fe: SWAP1 000012ff: PUSH2 0x2ecd 00001302: JUMP 00001303: JUMPDEST 00001304: PUSH2 0x130c 00001307: CALLER 00001308: PUSH2 0x1cfa 0000130b: JUMP 0000130c: JUMPDEST 0000130d: PUSH2 0x1322 00001310: JUMPI 00001311: PUSH1 0x03 00001313: SLOAD 00001314: PUSH2 0x131e 00001317: SWAP1 00001318: PUSH1 0x01 0000131a: PUSH2 0x2173 0000131d: JUMP 0000131e: JUMPDEST 0000131f: PUSH1 0x03 00001321: SSTORE 00001322: JUMPDEST 00001323: PUSH1 0x04 00001325: SLOAD 00001326: PUSH2 0x132f 00001329: SWAP1 0000132a: DUP7 0000132b: PUSH2 0x2173 0000132e: JUMP 0000132f: JUMPDEST 00001330: PUSH1 0x04 00001332: SSTORE 00001333: PUSH1 0x05 00001335: SLOAD 00001336: PUSH2 0x133f 00001339: SWAP1 0000133a: DUP3 0000133b: PUSH2 0x2173 0000133e: JUMP 0000133f: JUMPDEST 00001340: PUSH1 0x05 00001342: SSTORE 00001343: PUSH2 0x1383 00001346: DUP6 00001347: PUSH1 0x08 00001349: PUSH2 0x1353 0000134c: DUP7 0000134d: PUSH1 0x01 0000134f: PUSH2 0x21a1 00001352: JUMP 00001353: JUMPDEST 00001354: DUP2 00001355: SLOAD 00001356: DUP2 00001357: LT 00001358: PUSH2 0x135d 0000135b: JUMPI 0000135c: INVALID 0000135d: JUMPDEST 0000135e: PUSH1 0x00 00001360: SWAP2 00001361: DUP3 00001362: MSTORE 00001363: PUSH1 0x20 00001365: DUP1 00001366: DUP4 00001367: KECCAK256 00001368: CALLER 00001369: DUP5 0000136a: MSTORE 0000136b: PUSH1 0x04 0000136d: PUSH1 0x05 0000136f: SWAP1 00001370: SWAP4 00001371: MUL 00001372: ADD 00001373: SWAP2 00001374: SWAP1 00001375: SWAP2 00001376: ADD 00001377: SWAP1 00001378: MSTORE 00001379: PUSH1 0x40 0000137b: SWAP1 0000137c: KECCAK256 0000137d: SLOAD 0000137e: SWAP1 0000137f: PUSH2 0x2173 00001382: JUMP 00001383: JUMPDEST 00001384: PUSH1 0x08 00001386: PUSH2 0x1390 00001389: DUP6 0000138a: PUSH1 0x01 0000138c: PUSH2 0x21a1 0000138f: JUMP 00001390: JUMPDEST 00001391: DUP2 00001392: SLOAD 00001393: DUP2 00001394: LT 00001395: PUSH2 0x139a 00001398: JUMPI 00001399: INVALID 0000139a: JUMPDEST 0000139b: PUSH1 0x00 0000139d: SWAP2 0000139e: DUP3 0000139f: MSTORE 000013a0: PUSH1 0x20 000013a2: DUP1 000013a3: DUP4 000013a4: KECCAK256 000013a5: CALLER 000013a6: DUP1 000013a7: DUP6 000013a8: MSTORE 000013a9: PUSH1 0x04 000013ab: PUSH1 0x05 000013ad: SWAP1 000013ae: SWAP5 000013af: MUL 000013b0: SWAP1 000013b1: SWAP2 000013b2: ADD 000013b3: DUP4 000013b4: ADD 000013b5: SWAP1 000013b6: SWAP2 000013b7: MSTORE 000013b8: PUSH1 0x40 000013ba: DUP1 000013bb: DUP5 000013bc: KECCAK256 000013bd: SWAP5 000013be: SWAP1 000013bf: SWAP5 000013c0: SSTORE 000013c1: PUSH1 0x07 000013c3: SLOAD 000013c4: SWAP4 000013c5: MLOAD 000013c6: PUSH4 0x40c10f19 000013cb: PUSH1 0xe0 000013cd: SHL 000013ce: DUP2 000013cf: MSTORE 000013d0: PUSH2 0x0100 000013d3: SWAP1 000013d4: SWAP5 000013d5: DIV 000013d6: PUSH1 0x01 000013d8: PUSH1 0x01 000013da: PUSH1 0xa0 000013dc: SHL 000013dd: SUB 000013de: AND 000013df: SWAP4 000013e0: PUSH4 0x40c10f19 000013e5: SWAP4 000013e6: SWAP3 000013e7: PUSH2 0x13f3 000013ea: SWAP3 000013eb: SWAP2 000013ec: DUP12 000013ed: SWAP2 000013ee: ADD 000013ef: PUSH2 0x2ace 000013f2: JUMP 000013f3: JUMPDEST 000013f4: PUSH1 0x00 000013f6: PUSH1 0x40 000013f8: MLOAD 000013f9: DUP1 000013fa: DUP4 000013fb: SUB 000013fc: DUP2 000013fd: DUP6 000013fe: DUP9 000013ff: DUP1 00001400: EXTCODESIZE 00001401: ISZERO 00001402: DUP1 00001403: ISZERO 00001404: PUSH2 0x140c 00001407: JUMPI 00001408: PUSH1 0x00 0000140a: DUP1 0000140b: REVERT 0000140c: JUMPDEST 0000140d: POP 0000140e: GAS 0000140f: CALL 00001410: ISZERO 00001411: DUP1 00001412: ISZERO 00001413: PUSH2 0x1420 00001416: JUMPI 00001417: RETURNDATASIZE 00001418: PUSH1 0x00 0000141a: DUP1 0000141b: RETURNDATACOPY 0000141c: RETURNDATASIZE 0000141d: PUSH1 0x00 0000141f: REVERT 00001420: JUMPDEST 00001421: POP 00001422: POP 00001423: POP 00001424: POP 00001425: POP 00001426: POP 00001427: POP 00001428: POP 00001429: POP 0000142a: POP 0000142b: JUMP 0000142c: JUMPDEST 0000142d: PUSH1 0x00 0000142f: SLOAD 00001430: PUSH1 0x01 00001432: PUSH1 0x01 00001434: PUSH1 0xa0 00001436: SHL 00001437: SUB 00001438: AND 00001439: SWAP1 0000143a: JUMP 0000143b: JUMPDEST 0000143c: PUSH2 0x1443 0000143f: PUSH2 0x216f 00001442: JUMP 00001443: JUMPDEST 00001444: PUSH1 0x00 00001446: SLOAD 00001447: PUSH1 0x01 00001449: PUSH1 0x01 0000144b: PUSH1 0xa0 0000144d: SHL 0000144e: SUB 0000144f: SWAP1 00001450: DUP2 00001451: AND 00001452: SWAP2 00001453: AND 00001454: EQ 00001455: PUSH2 0x1470 00001458: JUMPI 00001459: PUSH1 0x40 0000145b: MLOAD 0000145c: PUSH3 0x461bcd 00001460: PUSH1 0xe5 00001462: SHL 00001463: DUP2 00001464: MSTORE 00001465: PUSH1 0x04 00001467: ADD 00001468: PUSH2 0x072c 0000146b: SWAP1 0000146c: PUSH2 0x2e6c 0000146f: JUMP 00001470: JUMPDEST 00001471: PUSH1 0x02 00001473: SSTORE 00001474: JUMP 00001475: JUMPDEST 00001476: PUSH2 0x147d 00001479: PUSH2 0x216f 0000147c: JUMP 0000147d: JUMPDEST 0000147e: PUSH1 0x00 00001480: SLOAD 00001481: PUSH1 0x01 00001483: PUSH1 0x01 00001485: PUSH1 0xa0 00001487: SHL 00001488: SUB 00001489: SWAP1 0000148a: DUP2 0000148b: AND 0000148c: SWAP2 0000148d: AND 0000148e: EQ 0000148f: PUSH2 0x14aa 00001492: JUMPI 00001493: PUSH1 0x40 00001495: MLOAD 00001496: PUSH3 0x461bcd 0000149a: PUSH1 0xe5 0000149c: SHL 0000149d: DUP2 0000149e: MSTORE 0000149f: PUSH1 0x04 000014a1: ADD 000014a2: PUSH2 0x072c 000014a5: SWAP1 000014a6: PUSH2 0x2e6c 000014a9: JUMP 000014aa: JUMPDEST 000014ab: DUP6 000014ac: PUSH2 0x14c7 000014af: JUMPI 000014b0: PUSH1 0x40 000014b2: MLOAD 000014b3: PUSH3 0x461bcd 000014b7: PUSH1 0xe5 000014b9: SHL 000014ba: DUP2 000014bb: MSTORE 000014bc: PUSH1 0x04 000014be: ADD 000014bf: PUSH2 0x072c 000014c2: SWAP1 000014c3: PUSH2 0x2df4 000014c6: JUMP 000014c7: JUMPDEST 000014c8: DUP6 000014c9: DUP5 000014ca: EQ 000014cb: PUSH2 0x14e6 000014ce: JUMPI 000014cf: PUSH1 0x40 000014d1: MLOAD 000014d2: PUSH3 0x461bcd 000014d6: PUSH1 0xe5 000014d8: SHL 000014d9: DUP2 000014da: MSTORE 000014db: PUSH1 0x04 000014dd: ADD 000014de: PUSH2 0x072c 000014e1: SWAP1 000014e2: PUSH2 0x2df4 000014e5: JUMP 000014e6: JUMPDEST 000014e7: PUSH2 0x14f2 000014ea: PUSH1 0x08 000014ec: PUSH1 0x00 000014ee: PUSH2 0x2359 000014f1: JUMP 000014f2: JUMPDEST 000014f3: PUSH1 0x00 000014f5: JUMPDEST 000014f6: DUP7 000014f7: DUP2 000014f8: LT 000014f9: ISZERO 000014fa: PUSH2 0x1677 000014fd: JUMPI 000014fe: PUSH1 0x08 00001500: PUSH1 0x40 00001502: MLOAD 00001503: DUP1 00001504: PUSH1 0x80 00001506: ADD 00001507: PUSH1 0x40 00001509: MSTORE 0000150a: DUP1 0000150b: DUP11 0000150c: DUP11 0000150d: DUP6 0000150e: DUP2 0000150f: DUP2 00001510: LT 00001511: PUSH2 0x1516 00001514: JUMPI 00001515: INVALID 00001516: JUMPDEST 00001517: SWAP1 00001518: POP 00001519: PUSH1 0x20 0000151b: MUL 0000151c: DUP2 0000151d: ADD 0000151e: SWAP1 0000151f: PUSH2 0x1528 00001522: SWAP2 00001523: SWAP1 00001524: PUSH2 0x3097 00001527: JUMP 00001528: JUMPDEST 00001529: DUP1 0000152a: DUP1 0000152b: PUSH1 0x1f 0000152d: ADD 0000152e: PUSH1 0x20 00001530: DUP1 00001531: SWAP2 00001532: DIV 00001533: MUL 00001534: PUSH1 0x20 00001536: ADD 00001537: PUSH1 0x40 00001539: MLOAD 0000153a: SWAP1 0000153b: DUP2 0000153c: ADD 0000153d: PUSH1 0x40 0000153f: MSTORE 00001540: DUP1 00001541: SWAP4 00001542: SWAP3 00001543: SWAP2 00001544: SWAP1 00001545: DUP2 00001546: DUP2 00001547: MSTORE 00001548: PUSH1 0x20 0000154a: ADD 0000154b: DUP4 0000154c: DUP4 0000154d: DUP1 0000154e: DUP3 0000154f: DUP5 00001550: CALLDATACOPY 00001551: PUSH1 0x00 00001553: SWAP3 00001554: ADD 00001555: SWAP2 00001556: SWAP1 00001557: SWAP2 00001558: MSTORE 00001559: POP 0000155a: POP 0000155b: POP 0000155c: SWAP1 0000155d: DUP3 0000155e: MSTORE 0000155f: POP 00001560: PUSH1 0x20 00001562: ADD 00001563: DUP9 00001564: DUP9 00001565: DUP6 00001566: DUP2 00001567: DUP2 00001568: LT 00001569: PUSH2 0x156e 0000156c: JUMPI 0000156d: INVALID 0000156e: JUMPDEST 0000156f: SWAP1 00001570: POP 00001571: PUSH1 0x20 00001573: MUL 00001574: ADD 00001575: CALLDATALOAD 00001576: DUP2 00001577: MSTORE 00001578: PUSH1 0x20 0000157a: ADD 0000157b: DUP7 0000157c: DUP7 0000157d: DUP6 0000157e: DUP2 0000157f: DUP2 00001580: LT 00001581: PUSH2 0x1586 00001584: JUMPI 00001585: INVALID 00001586: JUMPDEST 00001587: SWAP1 00001588: POP 00001589: PUSH1 0x20 0000158b: MUL 0000158c: ADD 0000158d: PUSH1 0x20 0000158f: DUP2 00001590: ADD 00001591: SWAP1 00001592: PUSH2 0x159b 00001595: SWAP2 00001596: SWAP1 00001597: PUSH2 0x26bb 0000159a: JUMP 0000159b: JUMPDEST 0000159c: PUSH1 0x01 0000159e: DUP2 0000159f: GT 000015a0: ISZERO 000015a1: PUSH2 0x15a6 000015a4: JUMPI 000015a5: INVALID 000015a6: JUMPDEST 000015a7: DUP2 000015a8: MSTORE 000015a9: PUSH1 0x20 000015ab: ADD 000015ac: DUP5 000015ad: PUSH1 0x01 000015af: PUSH1 0x01 000015b1: PUSH1 0x40 000015b3: SHL 000015b4: SUB 000015b5: DUP2 000015b6: GT 000015b7: DUP1 000015b8: ISZERO 000015b9: PUSH2 0x15c1 000015bc: JUMPI 000015bd: PUSH1 0x00 000015bf: DUP1 000015c0: REVERT 000015c1: JUMPDEST 000015c2: POP 000015c3: PUSH1 0x40 000015c5: MLOAD 000015c6: SWAP1 000015c7: DUP1 000015c8: DUP3 000015c9: MSTORE 000015ca: DUP1 000015cb: PUSH1 0x20 000015cd: MUL 000015ce: PUSH1 0x20 000015d0: ADD 000015d1: DUP3 000015d2: ADD 000015d3: PUSH1 0x40 000015d5: MSTORE 000015d6: DUP1 000015d7: ISZERO 000015d8: PUSH2 0x15eb 000015db: JUMPI 000015dc: DUP2 000015dd: PUSH1 0x20 000015df: ADD 000015e0: PUSH1 0x20 000015e2: DUP3 000015e3: MUL 000015e4: DUP1 000015e5: CALLDATASIZE 000015e6: DUP4 000015e7: CALLDATACOPY 000015e8: ADD 000015e9: SWAP1 000015ea: POP 000015eb: JUMPDEST 000015ec: POP 000015ed: SWAP1 000015ee: MSTORE 000015ef: DUP2 000015f0: SLOAD 000015f1: PUSH1 0x01 000015f3: DUP2 000015f4: ADD 000015f5: DUP4 000015f6: SSTORE 000015f7: PUSH1 0x00 000015f9: SWAP3 000015fa: DUP4 000015fb: MSTORE 000015fc: PUSH1 0x20 000015fe: SWAP3 000015ff: DUP4 00001600: SWAP1 00001601: KECCAK256 00001602: DUP3 00001603: MLOAD 00001604: DUP1 00001605: MLOAD 00001606: SWAP4 00001607: SWAP5 00001608: PUSH1 0x05 0000160a: SWAP1 0000160b: SWAP4 0000160c: MUL 0000160d: SWAP1 0000160e: SWAP2 0000160f: ADD 00001610: SWAP3 00001611: PUSH2 0x161d 00001614: SWAP3 00001615: DUP5 00001616: SWAP3 00001617: ADD 00001618: SWAP1 00001619: PUSH2 0x22eb 0000161c: JUMP 0000161d: JUMPDEST 0000161e: POP 0000161f: PUSH1 0x20 00001621: DUP3 00001622: ADD 00001623: MLOAD 00001624: DUP2 00001625: PUSH1 0x01 00001627: ADD 00001628: SSTORE 00001629: PUSH1 0x40 0000162b: DUP3 0000162c: ADD 0000162d: MLOAD 0000162e: DUP2 0000162f: PUSH1 0x02 00001631: ADD 00001632: PUSH1 0x00 00001634: PUSH2 0x0100 00001637: EXP 00001638: DUP2 00001639: SLOAD 0000163a: DUP2 0000163b: PUSH1 0xff 0000163d: MUL 0000163e: NOT 0000163f: AND 00001640: SWAP1 00001641: DUP4 00001642: PUSH1 0x01 00001644: DUP2 00001645: GT 00001646: ISZERO 00001647: PUSH2 0x164c 0000164a: JUMPI 0000164b: INVALID 0000164c: JUMPDEST 0000164d: MUL 0000164e: OR 0000164f: SWAP1 00001650: SSTORE 00001651: POP 00001652: PUSH1 0x60 00001654: DUP3 00001655: ADD 00001656: MLOAD 00001657: DUP1 00001658: MLOAD 00001659: PUSH2 0x166c 0000165c: SWAP2 0000165d: PUSH1 0x03 0000165f: DUP5 00001660: ADD 00001661: SWAP2 00001662: PUSH1 0x20 00001664: SWAP1 00001665: SWAP2 00001666: ADD 00001667: SWAP1 00001668: PUSH2 0x237a 0000166b: JUMP 0000166c: JUMPDEST 0000166d: POP 0000166e: POP 0000166f: POP 00001670: PUSH1 0x01 00001672: ADD 00001673: PUSH2 0x14f5 00001676: JUMP 00001677: JUMPDEST 00001678: POP 00001679: POP 0000167a: POP 0000167b: POP 0000167c: POP 0000167d: POP 0000167e: POP 0000167f: POP 00001680: JUMP 00001681: JUMPDEST 00001682: PUSH1 0x07 00001684: SLOAD 00001685: PUSH2 0x0100 00001688: SWAP1 00001689: DIV 0000168a: PUSH1 0x01 0000168c: PUSH1 0x01 0000168e: PUSH1 0xa0 00001690: SHL 00001691: SUB 00001692: AND 00001693: DUP2 00001694: JUMP 00001695: JUMPDEST 00001696: PUSH1 0x09 00001698: DUP2 00001699: DUP2 0000169a: SLOAD 0000169b: DUP2 0000169c: LT 0000169d: PUSH2 0x16a2 000016a0: JUMPI 000016a1: INVALID 000016a2: JUMPDEST 000016a3: PUSH1 0x00 000016a5: SWAP2 000016a6: DUP3 000016a7: MSTORE 000016a8: PUSH1 0x20 000016aa: SWAP2 000016ab: DUP3 000016ac: SWAP1 000016ad: KECCAK256 000016ae: PUSH1 0x02 000016b0: SWAP2 000016b1: DUP3 000016b2: MUL 000016b3: ADD 000016b4: DUP1 000016b5: SLOAD 000016b6: PUSH1 0x40 000016b8: DUP1 000016b9: MLOAD 000016ba: PUSH1 0x01 000016bc: DUP4 000016bd: AND 000016be: ISZERO 000016bf: PUSH2 0x0100 000016c2: MUL 000016c3: PUSH1 0x00 000016c5: NOT 000016c6: ADD 000016c7: SWAP1 000016c8: SWAP3 000016c9: AND 000016ca: SWAP4 000016cb: SWAP1 000016cc: SWAP4 000016cd: DIV 000016ce: PUSH1 0x1f 000016d0: DUP2 000016d1: ADD 000016d2: DUP6 000016d3: SWAP1 000016d4: DIV 000016d5: DUP6 000016d6: MUL 000016d7: DUP3 000016d8: ADD 000016d9: DUP6 000016da: ADD 000016db: SWAP1 000016dc: SWAP4 000016dd: MSTORE 000016de: DUP3 000016df: DUP2 000016e0: MSTORE 000016e1: SWAP1 000016e2: SWAP4 000016e3: POP 000016e4: SWAP2 000016e5: DUP4 000016e6: SWAP2 000016e7: SWAP1 000016e8: DUP4 000016e9: ADD 000016ea: DUP3 000016eb: DUP3 000016ec: DUP1 000016ed: ISZERO 000016ee: PUSH2 0x1738 000016f1: JUMPI 000016f2: DUP1 000016f3: PUSH1 0x1f 000016f5: LT 000016f6: PUSH2 0x170d 000016f9: JUMPI 000016fa: PUSH2 0x0100 000016fd: DUP1 000016fe: DUP4 000016ff: SLOAD 00001700: DIV 00001701: MUL 00001702: DUP4 00001703: MSTORE 00001704: SWAP2 00001705: PUSH1 0x20 00001707: ADD 00001708: SWAP2 00001709: PUSH2 0x1738 0000170c: JUMP 0000170d: JUMPDEST 0000170e: DUP3 0000170f: ADD 00001710: SWAP2 00001711: SWAP1 00001712: PUSH1 0x00 00001714: MSTORE 00001715: PUSH1 0x20 00001717: PUSH1 0x00 00001719: KECCAK256 0000171a: SWAP1 0000171b: JUMPDEST 0000171c: DUP2 0000171d: SLOAD 0000171e: DUP2 0000171f: MSTORE 00001720: SWAP1 00001721: PUSH1 0x01 00001723: ADD 00001724: SWAP1 00001725: PUSH1 0x20 00001727: ADD 00001728: DUP1 00001729: DUP4 0000172a: GT 0000172b: PUSH2 0x171b 0000172e: JUMPI 0000172f: DUP3 00001730: SWAP1 00001731: SUB 00001732: PUSH1 0x1f 00001734: AND 00001735: DUP3 00001736: ADD 00001737: SWAP2 00001738: JUMPDEST 00001739: POP 0000173a: POP 0000173b: POP 0000173c: POP 0000173d: POP 0000173e: SWAP1 0000173f: POP 00001740: DUP2 00001741: JUMP 00001742: JUMPDEST 00001743: PUSH2 0x174a 00001746: PUSH2 0x216f 00001749: JUMP 0000174a: JUMPDEST 0000174b: PUSH1 0x00 0000174d: SLOAD 0000174e: PUSH1 0x01 00001750: PUSH1 0x01 00001752: PUSH1 0xa0 00001754: SHL 00001755: SUB 00001756: SWAP1 00001757: DUP2 00001758: AND 00001759: SWAP2 0000175a: AND 0000175b: EQ 0000175c: PUSH2 0x1777 0000175f: JUMPI 00001760: PUSH1 0x40 00001762: MLOAD 00001763: PUSH3 0x461bcd 00001767: PUSH1 0xe5 00001769: SHL 0000176a: DUP2 0000176b: MSTORE 0000176c: PUSH1 0x04 0000176e: ADD 0000176f: PUSH2 0x072c 00001772: SWAP1 00001773: PUSH2 0x2e6c 00001776: JUMP 00001777: JUMPDEST 00001778: PUSH1 0x03 0000177a: SWAP3 0000177b: SWAP1 0000177c: SWAP3 0000177d: SSTORE 0000177e: PUSH1 0x04 00001780: SSTORE 00001781: PUSH1 0x05 00001783: SSTORE 00001784: JUMP 00001785: JUMPDEST 00001786: PUSH1 0x09 00001788: SLOAD 00001789: PUSH1 0x00 0000178b: SWAP1 0000178c: JUMPDEST 0000178d: DUP1 0000178e: ISZERO 0000178f: PUSH2 0x17ea 00001792: JUMPI 00001793: PUSH1 0x09 00001795: PUSH2 0x179f 00001798: DUP3 00001799: PUSH1 0x01 0000179b: PUSH2 0x21a1 0000179e: JUMP 0000179f: JUMPDEST 000017a0: DUP2 000017a1: SLOAD 000017a2: DUP2 000017a3: LT 000017a4: PUSH2 0x17a9 000017a7: JUMPI 000017a8: INVALID 000017a9: JUMPDEST 000017aa: PUSH1 0x00 000017ac: SWAP2 000017ad: DUP3 000017ae: MSTORE 000017af: PUSH1 0x20 000017b1: DUP1 000017b2: DUP4 000017b3: KECCAK256 000017b4: PUSH1 0x01 000017b6: PUSH1 0x01 000017b8: PUSH1 0xa0 000017ba: SHL 000017bb: SUB 000017bc: DUP8 000017bd: AND 000017be: DUP5 000017bf: MSTORE 000017c0: PUSH1 0x01 000017c2: PUSH1 0x02 000017c4: SWAP1 000017c5: SWAP4 000017c6: MUL 000017c7: ADD 000017c8: SWAP2 000017c9: SWAP1 000017ca: SWAP2 000017cb: ADD 000017cc: SWAP1 000017cd: MSTORE 000017ce: PUSH1 0x40 000017d0: SWAP1 000017d1: KECCAK256 000017d2: SLOAD 000017d3: PUSH1 0xff 000017d5: AND 000017d6: ISZERO 000017d7: PUSH2 0x17e1 000017da: JUMPI 000017db: SWAP1 000017dc: POP 000017dd: PUSH2 0x17f0 000017e0: JUMP 000017e1: JUMPDEST 000017e2: PUSH1 0x00 000017e4: NOT 000017e5: ADD 000017e6: PUSH2 0x178c 000017e9: JUMP 000017ea: JUMPDEST 000017eb: POP 000017ec: PUSH1 0x00 000017ee: SWAP1 000017ef: POP 000017f0: JUMPDEST 000017f1: SWAP2 000017f2: SWAP1 000017f3: POP 000017f4: JUMP 000017f5: JUMPDEST 000017f6: PUSH1 0x01 000017f8: SLOAD 000017f9: PUSH1 0x00 000017fb: SWAP1 000017fc: DUP2 000017fd: JUMPDEST 000017fe: PUSH1 0x08 00001800: SLOAD 00001801: DUP2 00001802: LT 00001803: ISZERO 00001804: PUSH2 0x0795 00001807: JUMPI 00001808: PUSH1 0x01 0000180a: PUSH1 0x08 0000180c: DUP3 0000180d: DUP2 0000180e: SLOAD 0000180f: DUP2 00001810: LT 00001811: PUSH2 0x1816 00001814: JUMPI 00001815: INVALID 00001816: JUMPDEST 00001817: PUSH1 0x00 00001819: SWAP2 0000181a: DUP3 0000181b: MSTORE 0000181c: PUSH1 0x20 0000181e: SWAP1 0000181f: SWAP2 00001820: KECCAK256 00001821: PUSH1 0x02 00001823: PUSH1 0x05 00001825: SWAP1 00001826: SWAP3 00001827: MUL 00001828: ADD 00001829: ADD 0000182a: SLOAD 0000182b: PUSH1 0xff 0000182d: AND 0000182e: PUSH1 0x01 00001830: DUP2 00001831: GT 00001832: ISZERO 00001833: PUSH2 0x1838 00001836: JUMPI 00001837: INVALID 00001838: JUMPDEST 00001839: EQ 0000183a: ISZERO 0000183b: PUSH2 0x1846 0000183e: JUMPI 0000183f: POP 00001840: SWAP1 00001841: POP 00001842: PUSH2 0x0799 00001845: JUMP 00001846: JUMPDEST 00001847: PUSH2 0x1856 0000184a: PUSH1 0x08 0000184c: DUP3 0000184d: DUP2 0000184e: SLOAD 0000184f: DUP2 00001850: LT 00001851: PUSH2 0x076a 00001854: JUMPI 00001855: INVALID 00001856: JUMPDEST 00001857: SWAP2 00001858: POP 00001859: PUSH1 0x01 0000185b: ADD 0000185c: PUSH2 0x17fd 0000185f: JUMP 00001860: JUMPDEST 00001861: PUSH2 0x1868 00001864: PUSH2 0x216f 00001867: JUMP 00001868: JUMPDEST 00001869: PUSH1 0x00 0000186b: SLOAD 0000186c: PUSH1 0x01 0000186e: PUSH1 0x01 00001870: PUSH1 0xa0 00001872: SHL 00001873: SUB 00001874: SWAP1 00001875: DUP2 00001876: AND 00001877: SWAP2 00001878: AND 00001879: EQ 0000187a: PUSH2 0x1895 0000187d: JUMPI 0000187e: PUSH1 0x40 00001880: MLOAD 00001881: PUSH3 0x461bcd 00001885: PUSH1 0xe5 00001887: SHL 00001888: DUP2 00001889: MSTORE 0000188a: PUSH1 0x04 0000188c: ADD 0000188d: PUSH2 0x072c 00001890: SWAP1 00001891: PUSH2 0x2e6c 00001894: JUMP 00001895: JUMPDEST 00001896: PUSH1 0x09 00001898: SLOAD 00001899: DUP5 0000189a: LT 0000189b: PUSH2 0x18b6 0000189e: JUMPI 0000189f: PUSH1 0x40 000018a1: MLOAD 000018a2: PUSH3 0x461bcd 000018a6: PUSH1 0xe5 000018a8: SHL 000018a9: DUP2 000018aa: MSTORE 000018ab: PUSH1 0x04 000018ad: ADD 000018ae: PUSH2 0x072c 000018b1: SWAP1 000018b2: PUSH2 0x2c05 000018b5: JUMP 000018b6: JUMPDEST 000018b7: PUSH1 0x00 000018b9: PUSH1 0x09 000018bb: DUP6 000018bc: DUP2 000018bd: SLOAD 000018be: DUP2 000018bf: LT 000018c0: PUSH2 0x18c5 000018c3: JUMPI 000018c4: INVALID 000018c5: JUMPDEST 000018c6: SWAP1 000018c7: PUSH1 0x00 000018c9: MSTORE 000018ca: PUSH1 0x20 000018cc: PUSH1 0x00 000018ce: KECCAK256 000018cf: SWAP1 000018d0: PUSH1 0x02 000018d2: MUL 000018d3: ADD 000018d4: SWAP1 000018d5: POP 000018d6: PUSH1 0x00 000018d8: JUMPDEST 000018d9: DUP4 000018da: DUP2 000018db: LT 000018dc: ISZERO 000018dd: PUSH2 0x1934 000018e0: JUMPI 000018e1: PUSH1 0x00 000018e3: DUP6 000018e4: DUP6 000018e5: DUP4 000018e6: DUP2 000018e7: DUP2 000018e8: LT 000018e9: PUSH2 0x18ee 000018ec: JUMPI 000018ed: INVALID 000018ee: JUMPDEST 000018ef: SWAP1 000018f0: POP 000018f1: PUSH1 0x20 000018f3: MUL 000018f4: ADD 000018f5: PUSH1 0x20 000018f7: DUP2 000018f8: ADD 000018f9: SWAP1 000018fa: PUSH2 0x1903 000018fd: SWAP2 000018fe: SWAP1 000018ff: PUSH2 0x2549 00001902: JUMP 00001903: JUMPDEST 00001904: PUSH1 0x01 00001906: PUSH1 0x01 00001908: PUSH1 0xa0 0000190a: SHL 0000190b: SUB 0000190c: AND 0000190d: PUSH1 0x00 0000190f: SWAP1 00001910: DUP2 00001911: MSTORE 00001912: PUSH1 0x01 00001914: DUP1 00001915: DUP6 00001916: ADD 00001917: PUSH1 0x20 00001919: MSTORE 0000191a: PUSH1 0x40 0000191c: SWAP1 0000191d: SWAP2 0000191e: KECCAK256 0000191f: DUP1 00001920: SLOAD 00001921: PUSH1 0xff 00001923: NOT 00001924: AND 00001925: DUP7 00001926: ISZERO 00001927: OR 00001928: SWAP1 00001929: SSTORE 0000192a: SWAP2 0000192b: SWAP1 0000192c: SWAP2 0000192d: ADD 0000192e: SWAP1 0000192f: POP 00001930: PUSH2 0x18d8 00001933: JUMP 00001934: JUMPDEST 00001935: POP 00001936: POP 00001937: POP 00001938: POP 00001939: POP 0000193a: POP 0000193b: JUMP 0000193c: JUMPDEST 0000193d: PUSH1 0x07 0000193f: SLOAD 00001940: PUSH1 0x00 00001942: SWAP1 00001943: PUSH1 0xff 00001945: AND 00001946: DUP1 00001947: PUSH2 0x1957 0000194a: JUMPI 0000194b: POP 0000194c: PUSH2 0x1953 0000194f: PUSH2 0x0748 00001952: JUMP 00001953: JUMPDEST 00001954: TIMESTAMP 00001955: LT 00001956: ISZERO 00001957: JUMPDEST 00001958: DUP1 00001959: PUSH2 0x1966 0000195c: JUMPI 0000195d: POP 0000195e: PUSH1 0x06 00001960: SLOAD 00001961: PUSH1 0x04 00001963: SLOAD 00001964: LT 00001965: ISZERO 00001966: JUMPDEST 00001967: ISZERO 00001968: PUSH2 0x1973 0000196b: JUMPI 0000196c: POP 0000196d: PUSH1 0x01 0000196f: PUSH2 0x0799 00001972: JUMP 00001973: JUMPDEST 00001974: POP 00001975: PUSH1 0x00 00001977: SWAP1 00001978: JUMP 00001979: JUMPDEST 0000197a: PUSH2 0x1981 0000197d: PUSH2 0x216f 00001980: JUMP 00001981: JUMPDEST 00001982: PUSH1 0x00 00001984: SLOAD 00001985: PUSH1 0x01 00001987: PUSH1 0x01 00001989: PUSH1 0xa0 0000198b: SHL 0000198c: SUB 0000198d: SWAP1 0000198e: DUP2 0000198f: AND 00001990: SWAP2 00001991: AND 00001992: EQ 00001993: PUSH2 0x19ae 00001996: JUMPI 00001997: PUSH1 0x40 00001999: MLOAD 0000199a: PUSH3 0x461bcd 0000199e: PUSH1 0xe5 000019a0: SHL 000019a1: DUP2 000019a2: MSTORE 000019a3: PUSH1 0x04 000019a5: ADD 000019a6: PUSH2 0x072c 000019a9: SWAP1 000019aa: PUSH2 0x2e6c 000019ad: JUMP 000019ae: JUMPDEST 000019af: PUSH1 0x08 000019b1: SLOAD 000019b2: DUP4 000019b3: LT 000019b4: PUSH2 0x19cf 000019b7: JUMPI 000019b8: PUSH1 0x40 000019ba: MLOAD 000019bb: PUSH3 0x461bcd 000019bf: PUSH1 0xe5 000019c1: SHL 000019c2: DUP2 000019c3: MSTORE 000019c4: PUSH1 0x04 000019c6: ADD 000019c7: PUSH2 0x072c 000019ca: SWAP1 000019cb: PUSH2 0x2d84 000019ce: JUMP 000019cf: JUMPDEST 000019d0: PUSH1 0x00 000019d2: PUSH1 0x08 000019d4: DUP5 000019d5: DUP2 000019d6: SLOAD 000019d7: DUP2 000019d8: LT 000019d9: PUSH2 0x19de 000019dc: JUMPI 000019dd: INVALID 000019de: JUMPDEST 000019df: PUSH1 0x00 000019e1: SWAP2 000019e2: DUP3 000019e3: MSTORE 000019e4: PUSH1 0x20 000019e6: SWAP1 000019e7: SWAP2 000019e8: KECCAK256 000019e9: PUSH1 0x05 000019eb: SWAP1 000019ec: SWAP2 000019ed: MUL 000019ee: ADD 000019ef: SWAP1 000019f0: POP 000019f1: PUSH2 0x0b84 000019f4: PUSH1 0x03 000019f6: DUP3 000019f7: ADD 000019f8: DUP5 000019f9: DUP5 000019fa: PUSH2 0x23b4 000019fd: JUMP 000019fe: JUMPDEST 000019ff: PUSH1 0x01 00001a01: SLOAD 00001a02: DUP2 00001a03: JUMP 00001a04: JUMPDEST 00001a05: PUSH1 0x07 00001a07: SLOAD 00001a08: PUSH1 0x40 00001a0a: MLOAD 00001a0b: PUSH4 0x70a08231 00001a10: PUSH1 0xe0 00001a12: SHL 00001a13: DUP2 00001a14: MSTORE 00001a15: PUSH1 0x00 00001a17: SWAP2 00001a18: PUSH1 0x60 00001a1a: SWAP2 00001a1b: DUP3 00001a1c: SWAP2 00001a1d: PUSH2 0x0100 00001a20: SWAP1 00001a21: DIV 00001a22: PUSH1 0x01 00001a24: PUSH1 0x01 00001a26: PUSH1 0xa0 00001a28: SHL 00001a29: SUB 00001a2a: AND 00001a2b: SWAP1 00001a2c: DUP5 00001a2d: SWAP1 00001a2e: DUP3 00001a2f: SWAP1 00001a30: PUSH4 0x70a08231 00001a35: SWAP1 00001a36: PUSH2 0x1a43 00001a39: SWAP1 00001a3a: CALLER 00001a3b: SWAP1 00001a3c: PUSH1 0x04 00001a3e: ADD 00001a3f: PUSH2 0x2aba 00001a42: JUMP 00001a43: JUMPDEST 00001a44: PUSH1 0x20 00001a46: PUSH1 0x40 00001a48: MLOAD 00001a49: DUP1 00001a4a: DUP4 00001a4b: SUB 00001a4c: DUP2 00001a4d: DUP7 00001a4e: DUP1 00001a4f: EXTCODESIZE 00001a50: ISZERO 00001a51: DUP1 00001a52: ISZERO 00001a53: PUSH2 0x1a5b 00001a56: JUMPI 00001a57: PUSH1 0x00 00001a59: DUP1 00001a5a: REVERT 00001a5b: JUMPDEST 00001a5c: POP 00001a5d: GAS 00001a5e: STATICCALL 00001a5f: ISZERO 00001a60: DUP1 00001a61: ISZERO 00001a62: PUSH2 0x1a6f 00001a65: JUMPI 00001a66: RETURNDATASIZE 00001a67: PUSH1 0x00 00001a69: DUP1 00001a6a: RETURNDATACOPY 00001a6b: RETURNDATASIZE 00001a6c: PUSH1 0x00 00001a6e: REVERT 00001a6f: JUMPDEST 00001a70: POP 00001a71: POP 00001a72: POP 00001a73: POP 00001a74: PUSH1 0x40 00001a76: MLOAD 00001a77: RETURNDATASIZE 00001a78: PUSH1 0x1f 00001a7a: NOT 00001a7b: PUSH1 0x1f 00001a7d: DUP3 00001a7e: ADD 00001a7f: AND 00001a80: DUP3 00001a81: ADD 00001a82: DUP1 00001a83: PUSH1 0x40 00001a85: MSTORE 00001a86: POP 00001a87: DUP2 00001a88: ADD 00001a89: SWAP1 00001a8a: PUSH2 0x1a93 00001a8d: SWAP2 00001a8e: SWAP1 00001a8f: PUSH2 0x2789 00001a92: JUMP 00001a93: JUMPDEST 00001a94: SWAP1 00001a95: POP 00001a96: DUP1 00001a97: ISZERO 00001a98: PUSH2 0x1c80 00001a9b: JUMPI 00001a9c: DUP1 00001a9d: PUSH1 0x01 00001a9f: PUSH1 0x01 00001aa1: PUSH1 0x40 00001aa3: SHL 00001aa4: SUB 00001aa5: DUP2 00001aa6: GT 00001aa7: DUP1 00001aa8: ISZERO 00001aa9: PUSH2 0x1ab1 00001aac: JUMPI 00001aad: PUSH1 0x00 00001aaf: DUP1 00001ab0: REVERT 00001ab1: JUMPDEST 00001ab2: POP 00001ab3: PUSH1 0x40 00001ab5: MLOAD 00001ab6: SWAP1 00001ab7: DUP1 00001ab8: DUP3 00001ab9: MSTORE 00001aba: DUP1 00001abb: PUSH1 0x20 00001abd: MUL 00001abe: PUSH1 0x20 00001ac0: ADD 00001ac1: DUP3 00001ac2: ADD 00001ac3: PUSH1 0x40 00001ac5: MSTORE 00001ac6: DUP1 00001ac7: ISZERO 00001ac8: PUSH2 0x1adb 00001acb: JUMPI 00001acc: DUP2 00001acd: PUSH1 0x20 00001acf: ADD 00001ad0: PUSH1 0x20 00001ad2: DUP3 00001ad3: MUL 00001ad4: DUP1 00001ad5: CALLDATASIZE 00001ad6: DUP4 00001ad7: CALLDATACOPY 00001ad8: ADD 00001ad9: SWAP1 00001ada: POP 00001adb: JUMPDEST 00001adc: POP 00001add: SWAP4 00001ade: POP 00001adf: DUP1 00001ae0: PUSH1 0x01 00001ae2: PUSH1 0x01 00001ae4: PUSH1 0x40 00001ae6: SHL 00001ae7: SUB 00001ae8: DUP2 00001ae9: GT 00001aea: DUP1 00001aeb: ISZERO 00001aec: PUSH2 0x1af4 00001aef: JUMPI 00001af0: PUSH1 0x00 00001af2: DUP1 00001af3: REVERT 00001af4: JUMPDEST 00001af5: POP 00001af6: PUSH1 0x40 00001af8: MLOAD 00001af9: SWAP1 00001afa: DUP1 00001afb: DUP3 00001afc: MSTORE 00001afd: DUP1 00001afe: PUSH1 0x20 00001b00: MUL 00001b01: PUSH1 0x20 00001b03: ADD 00001b04: DUP3 00001b05: ADD 00001b06: PUSH1 0x40 00001b08: MSTORE 00001b09: DUP1 00001b0a: ISZERO 00001b0b: PUSH2 0x1b28 00001b0e: JUMPI 00001b0f: DUP2 00001b10: PUSH1 0x20 00001b12: ADD 00001b13: JUMPDEST 00001b14: PUSH1 0x60 00001b16: DUP2 00001b17: MSTORE 00001b18: PUSH1 0x20 00001b1a: ADD 00001b1b: SWAP1 00001b1c: PUSH1 0x01 00001b1e: SWAP1 00001b1f: SUB 00001b20: SWAP1 00001b21: DUP2 00001b22: PUSH2 0x1b13 00001b25: JUMPI 00001b26: SWAP1 00001b27: POP 00001b28: JUMPDEST 00001b29: POP 00001b2a: SWAP3 00001b2b: POP 00001b2c: PUSH1 0x00 00001b2e: JUMPDEST 00001b2f: DUP2 00001b30: DUP2 00001b31: LT 00001b32: ISZERO 00001b33: PUSH2 0x1c7e 00001b36: JUMPI 00001b37: PUSH1 0x40 00001b39: MLOAD 00001b3a: PUSH4 0x2f745c59 00001b3f: PUSH1 0xe0 00001b41: SHL 00001b42: DUP2 00001b43: MSTORE 00001b44: PUSH1 0x01 00001b46: PUSH1 0x01 00001b48: PUSH1 0xa0 00001b4a: SHL 00001b4b: SUB 00001b4c: DUP5 00001b4d: AND 00001b4e: SWAP1 00001b4f: PUSH4 0x2f745c59 00001b54: SWAP1 00001b55: PUSH2 0x1b64 00001b58: SWAP1 00001b59: CALLER 00001b5a: SWAP1 00001b5b: DUP6 00001b5c: SWAP1 00001b5d: PUSH1 0x04 00001b5f: ADD 00001b60: PUSH2 0x2ace 00001b63: JUMP 00001b64: JUMPDEST 00001b65: PUSH1 0x20 00001b67: PUSH1 0x40 00001b69: MLOAD 00001b6a: DUP1 00001b6b: DUP4 00001b6c: SUB 00001b6d: DUP2 00001b6e: DUP7 00001b6f: DUP1 00001b70: EXTCODESIZE 00001b71: ISZERO 00001b72: DUP1 00001b73: ISZERO 00001b74: PUSH2 0x1b7c 00001b77: JUMPI 00001b78: PUSH1 0x00 00001b7a: DUP1 00001b7b: REVERT 00001b7c: JUMPDEST 00001b7d: POP 00001b7e: GAS 00001b7f: STATICCALL 00001b80: ISZERO 00001b81: DUP1 00001b82: ISZERO 00001b83: PUSH2 0x1b90 00001b86: JUMPI 00001b87: RETURNDATASIZE 00001b88: PUSH1 0x00 00001b8a: DUP1 00001b8b: RETURNDATACOPY 00001b8c: RETURNDATASIZE 00001b8d: PUSH1 0x00 00001b8f: REVERT 00001b90: JUMPDEST 00001b91: POP 00001b92: POP 00001b93: POP 00001b94: POP 00001b95: PUSH1 0x40 00001b97: MLOAD 00001b98: RETURNDATASIZE 00001b99: PUSH1 0x1f 00001b9b: NOT 00001b9c: PUSH1 0x1f 00001b9e: DUP3 00001b9f: ADD 00001ba0: AND 00001ba1: DUP3 00001ba2: ADD 00001ba3: DUP1 00001ba4: PUSH1 0x40 00001ba6: MSTORE 00001ba7: POP 00001ba8: DUP2 00001ba9: ADD 00001baa: SWAP1 00001bab: PUSH2 0x1bb4 00001bae: SWAP2 00001baf: SWAP1 00001bb0: PUSH2 0x2789 00001bb3: JUMP 00001bb4: JUMPDEST 00001bb5: DUP6 00001bb6: DUP3 00001bb7: DUP2 00001bb8: MLOAD 00001bb9: DUP2 00001bba: LT 00001bbb: PUSH2 0x1bc0 00001bbe: JUMPI 00001bbf: INVALID 00001bc0: JUMPDEST 00001bc1: PUSH1 0x20 00001bc3: MUL 00001bc4: PUSH1 0x20 00001bc6: ADD 00001bc7: ADD 00001bc8: DUP2 00001bc9: DUP2 00001bca: MSTORE 00001bcb: POP 00001bcc: POP 00001bcd: DUP3 00001bce: PUSH1 0x01 00001bd0: PUSH1 0x01 00001bd2: PUSH1 0xa0 00001bd4: SHL 00001bd5: SUB 00001bd6: AND 00001bd7: PUSH4 0xc87b56dd 00001bdc: DUP7 00001bdd: DUP4 00001bde: DUP2 00001bdf: MLOAD 00001be0: DUP2 00001be1: LT 00001be2: PUSH2 0x1be7 00001be5: JUMPI 00001be6: INVALID 00001be7: JUMPDEST 00001be8: PUSH1 0x20 00001bea: MUL 00001beb: PUSH1 0x20 00001bed: ADD 00001bee: ADD 00001bef: MLOAD 00001bf0: PUSH1 0x40 00001bf2: MLOAD 00001bf3: DUP3 00001bf4: PUSH4 0xffffffff 00001bf9: AND 00001bfa: PUSH1 0xe0 00001bfc: SHL 00001bfd: DUP2 00001bfe: MSTORE 00001bff: PUSH1 0x04 00001c01: ADD 00001c02: PUSH2 0x1c0b 00001c05: SWAP2 00001c06: SWAP1 00001c07: PUSH2 0x2fd1 00001c0a: JUMP 00001c0b: JUMPDEST 00001c0c: PUSH1 0x00 00001c0e: PUSH1 0x40 00001c10: MLOAD 00001c11: DUP1 00001c12: DUP4 00001c13: SUB 00001c14: DUP2 00001c15: DUP7 00001c16: DUP1 00001c17: EXTCODESIZE 00001c18: ISZERO 00001c19: DUP1 00001c1a: ISZERO 00001c1b: PUSH2 0x1c23 00001c1e: JUMPI 00001c1f: PUSH1 0x00 00001c21: DUP1 00001c22: REVERT 00001c23: JUMPDEST 00001c24: POP 00001c25: GAS 00001c26: STATICCALL 00001c27: ISZERO 00001c28: DUP1 00001c29: ISZERO 00001c2a: PUSH2 0x1c37 00001c2d: JUMPI 00001c2e: RETURNDATASIZE 00001c2f: PUSH1 0x00 00001c31: DUP1 00001c32: RETURNDATACOPY 00001c33: RETURNDATASIZE 00001c34: PUSH1 0x00 00001c36: REVERT 00001c37: JUMPDEST 00001c38: POP 00001c39: POP 00001c3a: POP 00001c3b: POP 00001c3c: PUSH1 0x40 00001c3e: MLOAD 00001c3f: RETURNDATASIZE 00001c40: PUSH1 0x00 00001c42: DUP3 00001c43: RETURNDATACOPY 00001c44: PUSH1 0x1f 00001c46: RETURNDATASIZE 00001c47: SWAP1 00001c48: DUP2 00001c49: ADD 00001c4a: PUSH1 0x1f 00001c4c: NOT 00001c4d: AND 00001c4e: DUP3 00001c4f: ADD 00001c50: PUSH1 0x40 00001c52: MSTORE 00001c53: PUSH2 0x1c5f 00001c56: SWAP2 00001c57: SWAP1 00001c58: DUP2 00001c59: ADD 00001c5a: SWAP1 00001c5b: PUSH2 0x26d7 00001c5e: JUMP 00001c5f: JUMPDEST 00001c60: DUP5 00001c61: DUP3 00001c62: DUP2 00001c63: MLOAD 00001c64: DUP2 00001c65: LT 00001c66: PUSH2 0x1c6b 00001c69: JUMPI 00001c6a: INVALID 00001c6b: JUMPDEST 00001c6c: PUSH1 0x20 00001c6e: SWAP1 00001c6f: DUP2 00001c70: MUL 00001c71: SWAP2 00001c72: SWAP1 00001c73: SWAP2 00001c74: ADD 00001c75: ADD 00001c76: MSTORE 00001c77: PUSH1 0x01 00001c79: ADD 00001c7a: PUSH2 0x1b2e 00001c7d: JUMP 00001c7e: JUMPDEST 00001c7f: POP 00001c80: JUMPDEST 00001c81: DUP2 00001c82: PUSH1 0x01 00001c84: PUSH1 0x01 00001c86: PUSH1 0xa0 00001c88: SHL 00001c89: SUB 00001c8a: AND 00001c8b: PUSH4 0x65cf7c9b 00001c90: PUSH1 0x40 00001c92: MLOAD 00001c93: DUP2 00001c94: PUSH4 0xffffffff 00001c99: AND 00001c9a: PUSH1 0xe0 00001c9c: SHL 00001c9d: DUP2 00001c9e: MSTORE 00001c9f: PUSH1 0x04 00001ca1: ADD 00001ca2: PUSH1 0x20 00001ca4: PUSH1 0x40 00001ca6: MLOAD 00001ca7: DUP1 00001ca8: DUP4 00001ca9: SUB 00001caa: DUP2 00001cab: DUP7 00001cac: DUP1 00001cad: EXTCODESIZE 00001cae: ISZERO 00001caf: DUP1 00001cb0: ISZERO 00001cb1: PUSH2 0x1cb9 00001cb4: JUMPI 00001cb5: PUSH1 0x00 00001cb7: DUP1 00001cb8: REVERT 00001cb9: JUMPDEST 00001cba: POP 00001cbb: GAS 00001cbc: STATICCALL 00001cbd: ISZERO 00001cbe: DUP1 00001cbf: ISZERO 00001cc0: PUSH2 0x1ccd 00001cc3: JUMPI 00001cc4: RETURNDATASIZE 00001cc5: PUSH1 0x00 00001cc7: DUP1 00001cc8: RETURNDATACOPY 00001cc9: RETURNDATASIZE 00001cca: PUSH1 0x00 00001ccc: REVERT 00001ccd: JUMPDEST 00001cce: POP 00001ccf: POP 00001cd0: POP 00001cd1: POP 00001cd2: PUSH1 0x40 00001cd4: MLOAD 00001cd5: RETURNDATASIZE 00001cd6: PUSH1 0x1f 00001cd8: NOT 00001cd9: PUSH1 0x1f 00001cdb: DUP3 00001cdc: ADD 00001cdd: AND 00001cde: DUP3 00001cdf: ADD 00001ce0: DUP1 00001ce1: PUSH1 0x40 00001ce3: MSTORE 00001ce4: POP 00001ce5: DUP2 00001ce6: ADD 00001ce7: SWAP1 00001ce8: PUSH2 0x1cf1 00001ceb: SWAP2 00001cec: SWAP1 00001ced: PUSH2 0x2789 00001cf0: JUMP 00001cf1: JUMPDEST 00001cf2: SWAP5 00001cf3: POP 00001cf4: POP 00001cf5: POP 00001cf6: SWAP1 00001cf7: SWAP2 00001cf8: SWAP3 00001cf9: JUMP 00001cfa: JUMPDEST 00001cfb: PUSH1 0x00 00001cfd: DUP1 00001cfe: DUP1 00001cff: JUMPDEST 00001d00: PUSH1 0x08 00001d02: SLOAD 00001d03: DUP2 00001d04: LT 00001d05: ISZERO 00001d06: PUSH2 0x1d4c 00001d09: JUMPI 00001d0a: PUSH1 0x08 00001d0c: DUP2 00001d0d: DUP2 00001d0e: SLOAD 00001d0f: DUP2 00001d10: LT 00001d11: PUSH2 0x1d16 00001d14: JUMPI 00001d15: INVALID 00001d16: JUMPDEST 00001d17: PUSH1 0x00 00001d19: SWAP2 00001d1a: DUP3 00001d1b: MSTORE 00001d1c: PUSH1 0x20 00001d1e: DUP1 00001d1f: DUP4 00001d20: KECCAK256 00001d21: PUSH1 0x01 00001d23: PUSH1 0x01 00001d25: PUSH1 0xa0 00001d27: SHL 00001d28: SUB 00001d29: DUP9 00001d2a: AND 00001d2b: DUP5 00001d2c: MSTORE 00001d2d: PUSH1 0x04 00001d2f: PUSH1 0x05 00001d31: SWAP1 00001d32: SWAP4 00001d33: MUL 00001d34: ADD 00001d35: SWAP2 00001d36: SWAP1 00001d37: SWAP2 00001d38: ADD 00001d39: SWAP1 00001d3a: MSTORE 00001d3b: PUSH1 0x40 00001d3d: SWAP1 00001d3e: KECCAK256 00001d3f: SLOAD 00001d40: SWAP2 00001d41: SWAP1 00001d42: SWAP2 00001d43: ADD 00001d44: SWAP1 00001d45: PUSH1 0x01 00001d47: ADD 00001d48: PUSH2 0x1cff 00001d4b: JUMP 00001d4c: JUMPDEST 00001d4d: POP 00001d4e: SWAP3 00001d4f: SWAP2 00001d50: POP 00001d51: POP 00001d52: JUMP 00001d53: JUMPDEST 00001d54: PUSH2 0x1d5b 00001d57: PUSH2 0x216f 00001d5a: JUMP 00001d5b: JUMPDEST 00001d5c: PUSH1 0x00 00001d5e: SLOAD 00001d5f: PUSH1 0x01 00001d61: PUSH1 0x01 00001d63: PUSH1 0xa0 00001d65: SHL 00001d66: SUB 00001d67: SWAP1 00001d68: DUP2 00001d69: AND 00001d6a: SWAP2 00001d6b: AND 00001d6c: EQ 00001d6d: PUSH2 0x1d88 00001d70: JUMPI 00001d71: PUSH1 0x40 00001d73: MLOAD 00001d74: PUSH3 0x461bcd 00001d78: PUSH1 0xe5 00001d7a: SHL 00001d7b: DUP2 00001d7c: MSTORE 00001d7d: PUSH1 0x04 00001d7f: ADD 00001d80: PUSH2 0x072c 00001d83: SWAP1 00001d84: PUSH2 0x2e6c 00001d87: JUMP 00001d88: JUMPDEST 00001d89: PUSH1 0x08 00001d8b: SLOAD 00001d8c: DUP6 00001d8d: LT 00001d8e: PUSH2 0x1da9 00001d91: JUMPI 00001d92: PUSH1 0x40 00001d94: MLOAD 00001d95: PUSH3 0x461bcd 00001d99: PUSH1 0xe5 00001d9b: SHL 00001d9c: DUP2 00001d9d: MSTORE 00001d9e: PUSH1 0x04 00001da0: ADD 00001da1: PUSH2 0x072c 00001da4: SWAP1 00001da5: PUSH2 0x2d84 00001da8: JUMP 00001da9: JUMPDEST 00001daa: PUSH1 0x00 00001dac: PUSH1 0x08 00001dae: DUP7 00001daf: DUP2 00001db0: SLOAD 00001db1: DUP2 00001db2: LT 00001db3: PUSH2 0x1db8 00001db6: JUMPI 00001db7: INVALID 00001db8: JUMPDEST 00001db9: PUSH1 0x00 00001dbb: SWAP2 00001dbc: DUP3 00001dbd: MSTORE 00001dbe: PUSH1 0x20 00001dc0: SWAP1 00001dc1: SWAP2 00001dc2: KECCAK256 00001dc3: PUSH1 0x05 00001dc5: SWAP1 00001dc6: SWAP2 00001dc7: MUL 00001dc8: ADD 00001dc9: SWAP1 00001dca: POP 00001dcb: PUSH2 0x1dd5 00001dce: DUP2 00001dcf: DUP7 00001dd0: DUP7 00001dd1: PUSH2 0x2249 00001dd4: JUMP 00001dd5: JUMPDEST 00001dd6: POP 00001dd7: PUSH1 0x01 00001dd9: DUP1 00001dda: DUP3 00001ddb: ADD 00001ddc: DUP5 00001ddd: SWAP1 00001dde: SSTORE 00001ddf: PUSH1 0x02 00001de1: DUP3 00001de2: ADD 00001de3: DUP1 00001de4: SLOAD 00001de5: DUP5 00001de6: SWAP3 00001de7: PUSH1 0xff 00001de9: NOT 00001dea: SWAP1 00001deb: SWAP2 00001dec: AND 00001ded: SWAP1 00001dee: DUP4 00001def: DUP2 00001df0: DUP2 00001df1: GT 00001df2: ISZERO 00001df3: PUSH2 0x1df8 00001df6: JUMPI 00001df7: INVALID 00001df8: JUMPDEST 00001df9: MUL 00001dfa: OR 00001dfb: SWAP1 00001dfc: SSTORE 00001dfd: POP 00001dfe: POP 00001dff: POP 00001e00: POP 00001e01: POP 00001e02: POP 00001e03: POP 00001e04: JUMP 00001e05: JUMPDEST 00001e06: PUSH1 0x07 00001e08: SLOAD 00001e09: PUSH1 0xff 00001e0b: AND 00001e0c: DUP2 00001e0d: JUMP 00001e0e: JUMPDEST 00001e0f: PUSH1 0x00 00001e11: DUP1 00001e12: PUSH1 0x60 00001e14: PUSH1 0x00 00001e16: PUSH1 0x60 00001e18: PUSH1 0x00 00001e1a: DUP1 00001e1b: PUSH1 0x00 00001e1d: DUP1 00001e1e: PUSH1 0x00 00001e20: DUP1 00001e21: PUSH1 0x60 00001e23: PUSH1 0x00 00001e25: PUSH2 0x1e2d 00001e28: CALLER 00001e29: PUSH2 0x07a2 00001e2c: JUMP 00001e2d: JUMPDEST 00001e2e: SWAP5 00001e2f: POP 00001e30: SWAP5 00001e31: POP 00001e32: SWAP5 00001e33: POP 00001e34: SWAP5 00001e35: POP 00001e36: SWAP5 00001e37: POP 00001e38: PUSH1 0x60 00001e3a: DUP6 00001e3b: PUSH1 0x00 00001e3d: EQ 00001e3e: PUSH2 0x1ef5 00001e41: JUMPI 00001e42: PUSH1 0x09 00001e44: PUSH2 0x1e4e 00001e47: DUP8 00001e48: PUSH1 0x01 00001e4a: PUSH2 0x21a1 00001e4d: JUMP 00001e4e: JUMPDEST 00001e4f: DUP2 00001e50: SLOAD 00001e51: DUP2 00001e52: LT 00001e53: PUSH2 0x1e58 00001e56: JUMPI 00001e57: INVALID 00001e58: JUMPDEST 00001e59: PUSH1 0x00 00001e5b: SWAP2 00001e5c: DUP3 00001e5d: MSTORE 00001e5e: PUSH1 0x20 00001e60: SWAP2 00001e61: DUP3 00001e62: SWAP1 00001e63: KECCAK256 00001e64: PUSH1 0x02 00001e66: SWAP2 00001e67: DUP3 00001e68: MUL 00001e69: ADD 00001e6a: DUP1 00001e6b: SLOAD 00001e6c: PUSH1 0x40 00001e6e: DUP1 00001e6f: MLOAD 00001e70: PUSH1 0x01 00001e72: DUP4 00001e73: AND 00001e74: ISZERO 00001e75: PUSH2 0x0100 00001e78: MUL 00001e79: PUSH1 0x00 00001e7b: NOT 00001e7c: ADD 00001e7d: SWAP1 00001e7e: SWAP3 00001e7f: AND 00001e80: SWAP4 00001e81: SWAP1 00001e82: SWAP4 00001e83: DIV 00001e84: PUSH1 0x1f 00001e86: DUP2 00001e87: ADD 00001e88: DUP6 00001e89: SWAP1 00001e8a: DIV 00001e8b: DUP6 00001e8c: MUL 00001e8d: DUP3 00001e8e: ADD 00001e8f: DUP6 00001e90: ADD 00001e91: SWAP1 00001e92: SWAP4 00001e93: MSTORE 00001e94: DUP3 00001e95: DUP2 00001e96: MSTORE 00001e97: SWAP3 00001e98: SWAP1 00001e99: SWAP2 00001e9a: SWAP1 00001e9b: DUP4 00001e9c: ADD 00001e9d: DUP3 00001e9e: DUP3 00001e9f: DUP1 00001ea0: ISZERO 00001ea1: PUSH2 0x1eeb 00001ea4: JUMPI 00001ea5: DUP1 00001ea6: PUSH1 0x1f 00001ea8: LT 00001ea9: PUSH2 0x1ec0 00001eac: JUMPI 00001ead: PUSH2 0x0100 00001eb0: DUP1 00001eb1: DUP4 00001eb2: SLOAD 00001eb3: DIV 00001eb4: MUL 00001eb5: DUP4 00001eb6: MSTORE 00001eb7: SWAP2 00001eb8: PUSH1 0x20 00001eba: ADD 00001ebb: SWAP2 00001ebc: PUSH2 0x1eeb 00001ebf: JUMP 00001ec0: JUMPDEST 00001ec1: DUP3 00001ec2: ADD 00001ec3: SWAP2 00001ec4: SWAP1 00001ec5: PUSH1 0x00 00001ec7: MSTORE 00001ec8: PUSH1 0x20 00001eca: PUSH1 0x00 00001ecc: KECCAK256 00001ecd: SWAP1 00001ece: JUMPDEST 00001ecf: DUP2 00001ed0: SLOAD 00001ed1: DUP2 00001ed2: MSTORE 00001ed3: SWAP1 00001ed4: PUSH1 0x01 00001ed6: ADD 00001ed7: SWAP1 00001ed8: PUSH1 0x20 00001eda: ADD 00001edb: DUP1 00001edc: DUP4 00001edd: GT 00001ede: PUSH2 0x1ece 00001ee1: JUMPI 00001ee2: DUP3 00001ee3: SWAP1 00001ee4: SUB 00001ee5: PUSH1 0x1f 00001ee7: AND 00001ee8: DUP3 00001ee9: ADD 00001eea: SWAP2 00001eeb: JUMPDEST 00001eec: POP 00001eed: POP 00001eee: POP 00001eef: POP 00001ef0: POP 00001ef1: PUSH2 0x1f10 00001ef4: JUMP 00001ef5: JUMPDEST 00001ef6: PUSH1 0x40 00001ef8: MLOAD 00001ef9: DUP1 00001efa: PUSH1 0x40 00001efc: ADD 00001efd: PUSH1 0x40 00001eff: MSTORE 00001f00: DUP1 00001f01: PUSH1 0x01 00001f03: DUP2 00001f04: MSTORE 00001f05: PUSH1 0x20 00001f07: ADD 00001f08: PUSH1 0x2d 00001f0a: PUSH1 0xf8 00001f0c: SHL 00001f0d: DUP2 00001f0e: MSTORE 00001f0f: POP 00001f10: JUMPDEST 00001f11: SWAP1 00001f12: POP 00001f13: CALLER 00001f14: PUSH1 0x01 00001f16: PUSH1 0x01 00001f18: PUSH1 0xa0 00001f1a: SHL 00001f1b: SUB 00001f1c: AND 00001f1d: BALANCE 00001f1e: CALLER 00001f1f: PUSH1 0x01 00001f21: PUSH1 0x01 00001f23: PUSH1 0xa0 00001f25: SHL 00001f26: SUB 00001f27: AND 00001f28: BALANCE 00001f29: DUP3 00001f2a: DUP7 00001f2b: DUP7 00001f2c: DUP7 00001f2d: PUSH2 0x1f37 00001f30: DUP12 00001f31: DUP14 00001f32: CALLER 00001f33: PUSH2 0x0991 00001f36: JUMP 00001f37: JUMPDEST 00001f38: PUSH2 0x1f40 00001f3b: CALLER 00001f3c: PUSH2 0x1cfa 00001f3f: JUMP 00001f40: JUMPDEST 00001f41: SWAP14 00001f42: POP 00001f43: SWAP14 00001f44: POP 00001f45: SWAP14 00001f46: POP 00001f47: SWAP14 00001f48: POP 00001f49: SWAP14 00001f4a: POP 00001f4b: SWAP14 00001f4c: POP 00001f4d: SWAP14 00001f4e: POP 00001f4f: SWAP14 00001f50: POP 00001f51: POP 00001f52: POP 00001f53: POP 00001f54: POP 00001f55: POP 00001f56: POP 00001f57: SWAP1 00001f58: SWAP2 00001f59: SWAP3 00001f5a: SWAP4 00001f5b: SWAP5 00001f5c: SWAP6 00001f5d: SWAP7 00001f5e: SWAP8 00001f5f: JUMP 00001f60: JUMPDEST 00001f61: PUSH2 0x1f68 00001f64: PUSH2 0x216f 00001f67: JUMP 00001f68: JUMPDEST 00001f69: PUSH1 0x00 00001f6b: SLOAD 00001f6c: PUSH1 0x01 00001f6e: PUSH1 0x01 00001f70: PUSH1 0xa0 00001f72: SHL 00001f73: SUB 00001f74: SWAP1 00001f75: DUP2 00001f76: AND 00001f77: SWAP2 00001f78: AND 00001f79: EQ 00001f7a: PUSH2 0x1f95 00001f7d: JUMPI 00001f7e: PUSH1 0x40 00001f80: MLOAD 00001f81: PUSH3 0x461bcd 00001f85: PUSH1 0xe5 00001f87: SHL 00001f88: DUP2 00001f89: MSTORE 00001f8a: PUSH1 0x04 00001f8c: ADD 00001f8d: PUSH2 0x072c 00001f90: SWAP1 00001f91: PUSH2 0x2e6c 00001f94: JUMP 00001f95: JUMPDEST 00001f96: PUSH1 0x01 00001f98: PUSH1 0x01 00001f9a: PUSH1 0xa0 00001f9c: SHL 00001f9d: SUB 00001f9e: DUP2 00001f9f: AND 00001fa0: PUSH2 0x1fbb 00001fa3: JUMPI 00001fa4: PUSH1 0x40 00001fa6: MLOAD 00001fa7: PUSH3 0x461bcd 00001fab: PUSH1 0xe5 00001fad: SHL 00001fae: DUP2 00001faf: MSTORE 00001fb0: PUSH1 0x04 00001fb2: ADD 00001fb3: PUSH2 0x072c 00001fb6: SWAP1 00001fb7: PUSH2 0x2c57 00001fba: JUMP 00001fbb: JUMPDEST 00001fbc: PUSH1 0x00 00001fbe: DUP1 00001fbf: SLOAD 00001fc0: PUSH1 0x40 00001fc2: MLOAD 00001fc3: PUSH1 0x01 00001fc5: PUSH1 0x01 00001fc7: PUSH1 0xa0 00001fc9: SHL 00001fca: SUB 00001fcb: DUP1 00001fcc: DUP6 00001fcd: AND 00001fce: SWAP4 00001fcf: SWAP3 00001fd0: AND 00001fd1: SWAP2 00001fd2: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001ff3: SWAP2 00001ff4: LOG3 00001ff5: PUSH1 0x00 00001ff7: DUP1 00001ff8: SLOAD 00001ff9: PUSH1 0x01 00001ffb: PUSH1 0x01 00001ffd: PUSH1 0xa0 00001fff: SHL 00002000: SUB 00002001: NOT 00002002: AND 00002003: PUSH1 0x01 00002005: PUSH1 0x01 00002007: PUSH1 0xa0 00002009: SHL 0000200a: SUB 0000200b: SWAP3 0000200c: SWAP1 0000200d: SWAP3 0000200e: AND 0000200f: SWAP2 00002010: SWAP1 00002011: SWAP2 00002012: OR 00002013: SWAP1 00002014: SSTORE 00002015: JUMP 00002016: JUMPDEST 00002017: PUSH1 0x05 00002019: SLOAD 0000201a: DUP2 0000201b: JUMP 0000201c: JUMPDEST 0000201d: PUSH2 0x2024 00002020: PUSH2 0x216f 00002023: JUMP 00002024: JUMPDEST 00002025: PUSH1 0x00 00002027: SLOAD 00002028: PUSH1 0x01 0000202a: PUSH1 0x01 0000202c: PUSH1 0xa0 0000202e: SHL 0000202f: SUB 00002030: SWAP1 00002031: DUP2 00002032: AND 00002033: SWAP2 00002034: AND 00002035: EQ 00002036: PUSH2 0x2051 00002039: JUMPI 0000203a: PUSH1 0x40 0000203c: MLOAD 0000203d: PUSH3 0x461bcd 00002041: PUSH1 0xe5 00002043: SHL 00002044: DUP2 00002045: MSTORE 00002046: PUSH1 0x04 00002048: ADD 00002049: PUSH2 0x072c 0000204c: SWAP1 0000204d: PUSH2 0x2e6c 00002050: JUMP 00002051: JUMPDEST 00002052: PUSH1 0x40 00002054: MLOAD 00002055: PUSH4 0x70a08231 0000205a: PUSH1 0xe0 0000205c: SHL 0000205d: DUP2 0000205e: MSTORE 0000205f: DUP4 00002060: SWAP1 00002061: DUP4 00002062: SWAP1 00002063: PUSH1 0x01 00002065: PUSH1 0x01 00002067: PUSH1 0xa0 00002069: SHL 0000206a: SUB 0000206b: DUP4 0000206c: AND 0000206d: SWAP1 0000206e: PUSH4 0x70a08231 00002073: SWAP1 00002074: PUSH2 0x2081 00002077: SWAP1 00002078: ADDRESS 00002079: SWAP1 0000207a: PUSH1 0x04 0000207c: ADD 0000207d: PUSH2 0x2aba 00002080: JUMP 00002081: JUMPDEST 00002082: PUSH1 0x20 00002084: PUSH1 0x40 00002086: MLOAD 00002087: DUP1 00002088: DUP4 00002089: SUB 0000208a: DUP2 0000208b: DUP7 0000208c: DUP1 0000208d: EXTCODESIZE 0000208e: ISZERO 0000208f: DUP1 00002090: ISZERO 00002091: PUSH2 0x2099 00002094: JUMPI 00002095: PUSH1 0x00 00002097: DUP1 00002098: REVERT 00002099: JUMPDEST 0000209a: POP 0000209b: GAS 0000209c: STATICCALL 0000209d: ISZERO 0000209e: DUP1 0000209f: ISZERO 000020a0: PUSH2 0x20ad 000020a3: JUMPI 000020a4: RETURNDATASIZE 000020a5: PUSH1 0x00 000020a7: DUP1 000020a8: RETURNDATACOPY 000020a9: RETURNDATASIZE 000020aa: PUSH1 0x00 000020ac: REVERT 000020ad: JUMPDEST 000020ae: POP 000020af: POP 000020b0: POP 000020b1: POP 000020b2: PUSH1 0x40 000020b4: MLOAD 000020b5: RETURNDATASIZE 000020b6: PUSH1 0x1f 000020b8: NOT 000020b9: PUSH1 0x1f 000020bb: DUP3 000020bc: ADD 000020bd: AND 000020be: DUP3 000020bf: ADD 000020c0: DUP1 000020c1: PUSH1 0x40 000020c3: MSTORE 000020c4: POP 000020c5: DUP2 000020c6: ADD 000020c7: SWAP1 000020c8: PUSH2 0x20d1 000020cb: SWAP2 000020cc: SWAP1 000020cd: PUSH2 0x2789 000020d0: JUMP 000020d1: JUMPDEST 000020d2: LT 000020d3: ISZERO 000020d4: PUSH2 0x20ef 000020d7: JUMPI 000020d8: PUSH1 0x40 000020da: MLOAD 000020db: PUSH3 0x461bcd 000020df: PUSH1 0xe5 000020e1: SHL 000020e2: DUP2 000020e3: MSTORE 000020e4: PUSH1 0x04 000020e6: ADD 000020e7: PUSH2 0x072c 000020ea: SWAP1 000020eb: PUSH2 0x2f84 000020ee: JUMP 000020ef: JUMPDEST 000020f0: PUSH1 0x40 000020f2: MLOAD 000020f3: PUSH4 0xa9059cbb 000020f8: PUSH1 0xe0 000020fa: SHL 000020fb: DUP2 000020fc: MSTORE 000020fd: PUSH1 0x01 000020ff: PUSH1 0x01 00002101: PUSH1 0xa0 00002103: SHL 00002104: SUB 00002105: DUP3 00002106: AND 00002107: SWAP1 00002108: PUSH4 0xa9059cbb 0000210d: SWAP1 0000210e: PUSH2 0x211d 00002111: SWAP1 00002112: DUP6 00002113: SWAP1 00002114: DUP8 00002115: SWAP1 00002116: PUSH1 0x04 00002118: ADD 00002119: PUSH2 0x2ace 0000211c: JUMP 0000211d: JUMPDEST 0000211e: PUSH1 0x20 00002120: PUSH1 0x40 00002122: MLOAD 00002123: DUP1 00002124: DUP4 00002125: SUB 00002126: DUP2 00002127: PUSH1 0x00 00002129: DUP8 0000212a: DUP1 0000212b: EXTCODESIZE 0000212c: ISZERO 0000212d: DUP1 0000212e: ISZERO 0000212f: PUSH2 0x2137 00002132: JUMPI 00002133: PUSH1 0x00 00002135: DUP1 00002136: REVERT 00002137: JUMPDEST 00002138: POP 00002139: GAS 0000213a: CALL 0000213b: ISZERO 0000213c: DUP1 0000213d: ISZERO 0000213e: PUSH2 0x214b 00002141: JUMPI 00002142: RETURNDATASIZE 00002143: PUSH1 0x00 00002145: DUP1 00002146: RETURNDATACOPY 00002147: RETURNDATASIZE 00002148: PUSH1 0x00 0000214a: REVERT 0000214b: JUMPDEST 0000214c: POP 0000214d: POP 0000214e: POP 0000214f: POP 00002150: PUSH1 0x40 00002152: MLOAD 00002153: RETURNDATASIZE 00002154: PUSH1 0x1f 00002156: NOT 00002157: PUSH1 0x1f 00002159: DUP3 0000215a: ADD 0000215b: AND 0000215c: DUP3 0000215d: ADD 0000215e: DUP1 0000215f: PUSH1 0x40 00002161: MSTORE 00002162: POP 00002163: DUP2 00002164: ADD 00002165: SWAP1 00002166: PUSH2 0x0b84 00002169: SWAP2 0000216a: SWAP1 0000216b: PUSH2 0x269f 0000216e: JUMP 0000216f: JUMPDEST 00002170: CALLER 00002171: SWAP1 00002172: JUMP 00002173: JUMPDEST 00002174: PUSH1 0x00 00002176: DUP3 00002177: DUP3 00002178: ADD 00002179: DUP4 0000217a: DUP2 0000217b: LT 0000217c: ISZERO 0000217d: PUSH2 0x2198 00002180: JUMPI 00002181: PUSH1 0x40 00002183: MLOAD 00002184: PUSH3 0x461bcd 00002188: PUSH1 0xe5 0000218a: SHL 0000218b: DUP2 0000218c: MSTORE 0000218d: PUSH1 0x04 0000218f: ADD 00002190: PUSH2 0x072c 00002193: SWAP1 00002194: PUSH2 0x2cf1 00002197: JUMP 00002198: JUMPDEST 00002199: SWAP1 0000219a: POP 0000219b: JUMPDEST 0000219c: SWAP3 0000219d: SWAP2 0000219e: POP 0000219f: POP 000021a0: JUMP 000021a1: JUMPDEST 000021a2: PUSH1 0x00 000021a4: PUSH2 0x2198 000021a7: DUP4 000021a8: DUP4 000021a9: PUSH1 0x40 000021ab: MLOAD 000021ac: DUP1 000021ad: PUSH1 0x40 000021af: ADD 000021b0: PUSH1 0x40 000021b2: MSTORE 000021b3: DUP1 000021b4: PUSH1 0x1e 000021b6: DUP2 000021b7: MSTORE 000021b8: PUSH1 0x20 000021ba: ADD 000021bb: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000 000021dc: DUP2 000021dd: MSTORE 000021de: POP 000021df: PUSH2 0x221d 000021e2: JUMP 000021e3: JUMPDEST 000021e4: PUSH1 0x00 000021e6: DUP3 000021e7: PUSH2 0x21f2 000021ea: JUMPI 000021eb: POP 000021ec: PUSH1 0x00 000021ee: PUSH2 0x219b 000021f1: JUMP 000021f2: JUMPDEST 000021f3: DUP3 000021f4: DUP3 000021f5: MUL 000021f6: DUP3 000021f7: DUP5 000021f8: DUP3 000021f9: DUP2 000021fa: PUSH2 0x21ff 000021fd: JUMPI 000021fe: INVALID 000021ff: JUMPDEST 00002200: DIV 00002201: EQ 00002202: PUSH2 0x2198 00002205: JUMPI 00002206: PUSH1 0x40 00002208: MLOAD 00002209: PUSH3 0x461bcd 0000220d: PUSH1 0xe5 0000220f: SHL 00002210: DUP2 00002211: MSTORE 00002212: PUSH1 0x04 00002214: ADD 00002215: PUSH2 0x072c 00002218: SWAP1 00002219: PUSH2 0x2e2b 0000221c: JUMP 0000221d: JUMPDEST 0000221e: PUSH1 0x00 00002220: DUP2 00002221: DUP5 00002222: DUP5 00002223: GT 00002224: ISZERO 00002225: PUSH2 0x2241 00002228: JUMPI 00002229: PUSH1 0x40 0000222b: MLOAD 0000222c: PUSH3 0x461bcd 00002230: PUSH1 0xe5 00002232: SHL 00002233: DUP2 00002234: MSTORE 00002235: PUSH1 0x04 00002237: ADD 00002238: PUSH2 0x072c 0000223b: SWAP2 0000223c: SWAP1 0000223d: PUSH2 0x2bbf 00002240: JUMP 00002241: JUMPDEST 00002242: POP 00002243: POP 00002244: POP 00002245: SWAP1 00002246: SUB 00002247: SWAP1 00002248: JUMP 00002249: JUMPDEST 0000224a: DUP3 0000224b: DUP1 0000224c: SLOAD 0000224d: PUSH1 0x01 0000224f: DUP2 00002250: PUSH1 0x01 00002252: AND 00002253: ISZERO 00002254: PUSH2 0x0100 00002257: MUL 00002258: SUB 00002259: AND 0000225a: PUSH1 0x02 0000225c: SWAP1 0000225d: DIV 0000225e: SWAP1 0000225f: PUSH1 0x00 00002261: MSTORE 00002262: PUSH1 0x20 00002264: PUSH1 0x00 00002266: KECCAK256 00002267: SWAP1 00002268: PUSH1 0x1f 0000226a: ADD 0000226b: PUSH1 0x20 0000226d: SWAP1 0000226e: DIV 0000226f: DUP2 00002270: ADD 00002271: SWAP3 00002272: DUP3 00002273: PUSH1 0x1f 00002275: LT 00002276: PUSH2 0x228a 00002279: JUMPI 0000227a: DUP3 0000227b: DUP1 0000227c: ADD 0000227d: PUSH1 0xff 0000227f: NOT 00002280: DUP3 00002281: CALLDATALOAD 00002282: AND 00002283: OR 00002284: DUP6 00002285: SSTORE 00002286: PUSH2 0x22b7 00002289: JUMP 0000228a: JUMPDEST 0000228b: DUP3 0000228c: DUP1 0000228d: ADD 0000228e: PUSH1 0x01 00002290: ADD 00002291: DUP6 00002292: SSTORE 00002293: DUP3 00002294: ISZERO 00002295: PUSH2 0x22b7 00002298: JUMPI 00002299: SWAP2 0000229a: DUP3 0000229b: ADD 0000229c: JUMPDEST 0000229d: DUP3 0000229e: DUP2 0000229f: GT 000022a0: ISZERO 000022a1: PUSH2 0x22b7 000022a4: JUMPI 000022a5: DUP3 000022a6: CALLDATALOAD 000022a7: DUP3 000022a8: SSTORE 000022a9: SWAP2 000022aa: PUSH1 0x20 000022ac: ADD 000022ad: SWAP2 000022ae: SWAP1 000022af: PUSH1 0x01 000022b1: ADD 000022b2: SWAP1 000022b3: PUSH2 0x229c 000022b6: JUMP 000022b7: JUMPDEST 000022b8: POP 000022b9: PUSH2 0x22c3 000022bc: SWAP3 000022bd: SWAP2 000022be: POP 000022bf: PUSH2 0x23ee 000022c2: JUMP 000022c3: JUMPDEST 000022c4: POP 000022c5: SWAP1 000022c6: JUMP 000022c7: JUMPDEST 000022c8: POP 000022c9: DUP1 000022ca: SLOAD 000022cb: PUSH1 0x00 000022cd: DUP3 000022ce: SSTORE 000022cf: PUSH1 0x02 000022d1: MUL 000022d2: SWAP1 000022d3: PUSH1 0x00 000022d5: MSTORE 000022d6: PUSH1 0x20 000022d8: PUSH1 0x00 000022da: KECCAK256 000022db: SWAP1 000022dc: DUP2 000022dd: ADD 000022de: SWAP1 000022df: PUSH2 0x22e8 000022e2: SWAP2 000022e3: SWAP1 000022e4: PUSH2 0x2403 000022e7: JUMP 000022e8: JUMPDEST 000022e9: POP 000022ea: JUMP 000022eb: JUMPDEST 000022ec: DUP3 000022ed: DUP1 000022ee: SLOAD 000022ef: PUSH1 0x01 000022f1: DUP2 000022f2: PUSH1 0x01 000022f4: AND 000022f5: ISZERO 000022f6: PUSH2 0x0100 000022f9: MUL 000022fa: SUB 000022fb: AND 000022fc: PUSH1 0x02 000022fe: SWAP1 000022ff: DIV 00002300: SWAP1 00002301: PUSH1 0x00 00002303: MSTORE 00002304: PUSH1 0x20 00002306: PUSH1 0x00 00002308: KECCAK256 00002309: SWAP1 0000230a: PUSH1 0x1f 0000230c: ADD 0000230d: PUSH1 0x20 0000230f: SWAP1 00002310: DIV 00002311: DUP2 00002312: ADD 00002313: SWAP3 00002314: DUP3 00002315: PUSH1 0x1f 00002317: LT 00002318: PUSH2 0x232c 0000231b: JUMPI 0000231c: DUP1 0000231d: MLOAD 0000231e: PUSH1 0xff 00002320: NOT 00002321: AND 00002322: DUP4 00002323: DUP1 00002324: ADD 00002325: OR 00002326: DUP6 00002327: SSTORE 00002328: PUSH2 0x22b7 0000232b: JUMP 0000232c: JUMPDEST 0000232d: DUP3 0000232e: DUP1 0000232f: ADD 00002330: PUSH1 0x01 00002332: ADD 00002333: DUP6 00002334: SSTORE 00002335: DUP3 00002336: ISZERO 00002337: PUSH2 0x22b7 0000233a: JUMPI 0000233b: SWAP2 0000233c: DUP3 0000233d: ADD 0000233e: JUMPDEST 0000233f: DUP3 00002340: DUP2 00002341: GT 00002342: ISZERO 00002343: PUSH2 0x22b7 00002346: JUMPI 00002347: DUP3 00002348: MLOAD 00002349: DUP3 0000234a: SSTORE 0000234b: SWAP2 0000234c: PUSH1 0x20 0000234e: ADD 0000234f: SWAP2 00002350: SWAP1 00002351: PUSH1 0x01 00002353: ADD 00002354: SWAP1 00002355: PUSH2 0x233e 00002358: JUMP 00002359: JUMPDEST 0000235a: POP 0000235b: DUP1 0000235c: SLOAD 0000235d: PUSH1 0x00 0000235f: DUP3 00002360: SSTORE 00002361: PUSH1 0x05 00002363: MUL 00002364: SWAP1 00002365: PUSH1 0x00 00002367: MSTORE 00002368: PUSH1 0x20 0000236a: PUSH1 0x00 0000236c: KECCAK256 0000236d: SWAP1 0000236e: DUP2 0000236f: ADD 00002370: SWAP1 00002371: PUSH2 0x22e8 00002374: SWAP2 00002375: SWAP1 00002376: PUSH2 0x2420 00002379: JUMP 0000237a: JUMPDEST 0000237b: DUP3 0000237c: DUP1 0000237d: SLOAD 0000237e: DUP3 0000237f: DUP3 00002380: SSTORE 00002381: SWAP1 00002382: PUSH1 0x00 00002384: MSTORE 00002385: PUSH1 0x20 00002387: PUSH1 0x00 00002389: KECCAK256 0000238a: SWAP1 0000238b: DUP2 0000238c: ADD 0000238d: SWAP3 0000238e: DUP3 0000238f: ISZERO 00002390: PUSH2 0x22b7 00002393: JUMPI 00002394: SWAP2 00002395: PUSH1 0x20 00002397: MUL 00002398: DUP3 00002399: ADD 0000239a: DUP3 0000239b: DUP2 0000239c: GT 0000239d: ISZERO 0000239e: PUSH2 0x22b7 000023a1: JUMPI 000023a2: DUP3 000023a3: MLOAD 000023a4: DUP3 000023a5: SSTORE 000023a6: SWAP2 000023a7: PUSH1 0x20 000023a9: ADD 000023aa: SWAP2 000023ab: SWAP1 000023ac: PUSH1 0x01 000023ae: ADD 000023af: SWAP1 000023b0: PUSH2 0x233e 000023b3: JUMP 000023b4: JUMPDEST 000023b5: DUP3 000023b6: DUP1 000023b7: SLOAD 000023b8: DUP3 000023b9: DUP3 000023ba: SSTORE 000023bb: SWAP1 000023bc: PUSH1 0x00 000023be: MSTORE 000023bf: PUSH1 0x20 000023c1: PUSH1 0x00 000023c3: KECCAK256 000023c4: SWAP1 000023c5: DUP2 000023c6: ADD 000023c7: SWAP3 000023c8: DUP3 000023c9: ISZERO 000023ca: PUSH2 0x22b7 000023cd: JUMPI 000023ce: SWAP2 000023cf: PUSH1 0x20 000023d1: MUL 000023d2: DUP3 000023d3: ADD 000023d4: DUP3 000023d5: DUP2 000023d6: GT 000023d7: ISZERO 000023d8: PUSH2 0x22b7 000023db: JUMPI 000023dc: DUP3 000023dd: CALLDATALOAD 000023de: DUP3 000023df: SSTORE 000023e0: SWAP2 000023e1: PUSH1 0x20 000023e3: ADD 000023e4: SWAP2 000023e5: SWAP1 000023e6: PUSH1 0x01 000023e8: ADD 000023e9: SWAP1 000023ea: PUSH2 0x229c 000023ed: JUMP 000023ee: JUMPDEST 000023ef: JUMPDEST 000023f0: DUP1 000023f1: DUP3 000023f2: GT 000023f3: ISZERO 000023f4: PUSH2 0x22c3 000023f7: JUMPI 000023f8: PUSH1 0x00 000023fa: DUP2 000023fb: SSTORE 000023fc: PUSH1 0x01 000023fe: ADD 000023ff: PUSH2 0x23ef 00002402: JUMP 00002403: JUMPDEST 00002404: DUP1 00002405: DUP3 00002406: GT 00002407: ISZERO 00002408: PUSH2 0x22c3 0000240b: JUMPI 0000240c: PUSH1 0x00 0000240e: PUSH2 0x2417 00002411: DUP3 00002412: DUP3 00002413: PUSH2 0x2460 00002416: JUMP 00002417: JUMPDEST 00002418: POP 00002419: PUSH1 0x02 0000241b: ADD 0000241c: PUSH2 0x2403 0000241f: JUMP 00002420: JUMPDEST 00002421: DUP1 00002422: DUP3 00002423: GT 00002424: ISZERO 00002425: PUSH2 0x22c3 00002428: JUMPI 00002429: PUSH1 0x00 0000242b: PUSH2 0x2434 0000242e: DUP3 0000242f: DUP3 00002430: PUSH2 0x2460 00002433: JUMP 00002434: JUMPDEST 00002435: PUSH1 0x00 00002437: PUSH1 0x01 00002439: DUP4 0000243a: ADD 0000243b: DUP2 0000243c: SWAP1 0000243d: SSTORE 0000243e: PUSH1 0x02 00002440: DUP4 00002441: ADD 00002442: DUP1 00002443: SLOAD 00002444: PUSH1 0xff 00002446: NOT 00002447: AND 00002448: SWAP1 00002449: SSTORE 0000244a: PUSH2 0x2457 0000244d: SWAP1 0000244e: PUSH1 0x03 00002450: DUP5 00002451: ADD 00002452: SWAP1 00002453: PUSH2 0x24a4 00002456: JUMP 00002457: JUMPDEST 00002458: POP 00002459: PUSH1 0x05 0000245b: ADD 0000245c: PUSH2 0x2420 0000245f: JUMP 00002460: JUMPDEST 00002461: POP 00002462: DUP1 00002463: SLOAD 00002464: PUSH1 0x01 00002466: DUP2 00002467: PUSH1 0x01 00002469: AND 0000246a: ISZERO 0000246b: PUSH2 0x0100 0000246e: MUL 0000246f: SUB 00002470: AND 00002471: PUSH1 0x02 00002473: SWAP1 00002474: DIV 00002475: PUSH1 0x00 00002477: DUP3 00002478: SSTORE 00002479: DUP1 0000247a: PUSH1 0x1f 0000247c: LT 0000247d: PUSH2 0x2486 00002480: JUMPI 00002481: POP 00002482: PUSH2 0x22e8 00002485: JUMP 00002486: JUMPDEST 00002487: PUSH1 0x1f 00002489: ADD 0000248a: PUSH1 0x20 0000248c: SWAP1 0000248d: DIV 0000248e: SWAP1 0000248f: PUSH1 0x00 00002491: MSTORE 00002492: PUSH1 0x20 00002494: PUSH1 0x00 00002496: KECCAK256 00002497: SWAP1 00002498: DUP2 00002499: ADD 0000249a: SWAP1 0000249b: PUSH2 0x22e8 0000249e: SWAP2 0000249f: SWAP1 000024a0: PUSH2 0x23ee 000024a3: JUMP 000024a4: JUMPDEST 000024a5: POP 000024a6: DUP1 000024a7: SLOAD 000024a8: PUSH1 0x00 000024aa: DUP3 000024ab: SSTORE 000024ac: SWAP1 000024ad: PUSH1 0x00 000024af: MSTORE 000024b0: PUSH1 0x20 000024b2: PUSH1 0x00 000024b4: KECCAK256 000024b5: SWAP1 000024b6: DUP2 000024b7: ADD 000024b8: SWAP1 000024b9: PUSH2 0x22e8 000024bc: SWAP2 000024bd: SWAP1 000024be: PUSH2 0x23ee 000024c1: JUMP 000024c2: JUMPDEST 000024c3: PUSH1 0x00 000024c5: DUP1 000024c6: DUP4 000024c7: PUSH1 0x1f 000024c9: DUP5 000024ca: ADD 000024cb: SLT 000024cc: PUSH2 0x24d3 000024cf: JUMPI 000024d0: DUP2 000024d1: DUP3 000024d2: REVERT 000024d3: JUMPDEST 000024d4: POP 000024d5: DUP2 000024d6: CALLDATALOAD 000024d7: PUSH1 0x01 000024d9: PUSH1 0x01 000024db: PUSH1 0x40 000024dd: SHL 000024de: SUB 000024df: DUP2 000024e0: GT 000024e1: ISZERO 000024e2: PUSH2 0x24e9 000024e5: JUMPI 000024e6: DUP2 000024e7: DUP3 000024e8: REVERT 000024e9: JUMPDEST 000024ea: PUSH1 0x20 000024ec: DUP4 000024ed: ADD 000024ee: SWAP2 000024ef: POP 000024f0: DUP4 000024f1: PUSH1 0x20 000024f3: DUP1 000024f4: DUP4 000024f5: MUL 000024f6: DUP6 000024f7: ADD 000024f8: ADD 000024f9: GT 000024fa: ISZERO 000024fb: PUSH2 0x2503 000024fe: JUMPI 000024ff: PUSH1 0x00 00002501: DUP1 00002502: REVERT 00002503: JUMPDEST 00002504: SWAP3 00002505: POP 00002506: SWAP3 00002507: SWAP1 00002508: POP 00002509: JUMP 0000250a: JUMPDEST 0000250b: PUSH1 0x00 0000250d: DUP1 0000250e: DUP4 0000250f: PUSH1 0x1f 00002511: DUP5 00002512: ADD 00002513: SLT 00002514: PUSH2 0x251b 00002517: JUMPI 00002518: DUP2 00002519: DUP3 0000251a: REVERT 0000251b: JUMPDEST 0000251c: POP 0000251d: DUP2 0000251e: CALLDATALOAD 0000251f: PUSH1 0x01 00002521: PUSH1 0x01 00002523: PUSH1 0x40 00002525: SHL 00002526: SUB 00002527: DUP2 00002528: GT 00002529: ISZERO 0000252a: PUSH2 0x2531 0000252d: JUMPI 0000252e: DUP2 0000252f: DUP3 00002530: REVERT 00002531: JUMPDEST 00002532: PUSH1 0x20 00002534: DUP4 00002535: ADD 00002536: SWAP2 00002537: POP 00002538: DUP4 00002539: PUSH1 0x20 0000253b: DUP3 0000253c: DUP6 0000253d: ADD 0000253e: ADD 0000253f: GT 00002540: ISZERO 00002541: PUSH2 0x2503 00002544: JUMPI 00002545: PUSH1 0x00 00002547: DUP1 00002548: REVERT 00002549: JUMPDEST 0000254a: PUSH1 0x00 0000254c: PUSH1 0x20 0000254e: DUP3 0000254f: DUP5 00002550: SUB 00002551: SLT 00002552: ISZERO 00002553: PUSH2 0x255a 00002556: JUMPI 00002557: DUP1 00002558: DUP2 00002559: REVERT 0000255a: JUMPDEST 0000255b: DUP2 0000255c: CALLDATALOAD 0000255d: PUSH2 0x2198 00002560: DUP2 00002561: PUSH2 0x310b 00002564: JUMP 00002565: JUMPDEST 00002566: PUSH1 0x00 00002568: DUP1 00002569: PUSH1 0x00 0000256b: PUSH1 0x60 0000256d: DUP5 0000256e: DUP7 0000256f: SUB 00002570: SLT 00002571: ISZERO 00002572: PUSH2 0x2579 00002575: JUMPI 00002576: DUP2 00002577: DUP3 00002578: REVERT 00002579: JUMPDEST 0000257a: DUP4 0000257b: CALLDATALOAD 0000257c: PUSH2 0x2584 0000257f: DUP2 00002580: PUSH2 0x310b 00002583: JUMP 00002584: JUMPDEST 00002585: SWAP3 00002586: POP 00002587: PUSH1 0x20 00002589: DUP5 0000258a: ADD 0000258b: CALLDATALOAD 0000258c: SWAP2 0000258d: POP 0000258e: PUSH1 0x40 00002590: DUP5 00002591: ADD 00002592: CALLDATALOAD 00002593: PUSH2 0x259b 00002596: DUP2 00002597: PUSH2 0x310b 0000259a: JUMP 0000259b: JUMPDEST 0000259c: DUP1 0000259d: SWAP2 0000259e: POP 0000259f: POP 000025a0: SWAP3 000025a1: POP 000025a2: SWAP3 000025a3: POP 000025a4: SWAP3 000025a5: JUMP 000025a6: JUMPDEST 000025a7: PUSH1 0x00 000025a9: DUP1 000025aa: PUSH1 0x20 000025ac: DUP4 000025ad: DUP6 000025ae: SUB 000025af: SLT 000025b0: ISZERO 000025b1: PUSH2 0x25b8 000025b4: JUMPI 000025b5: DUP2 000025b6: DUP3 000025b7: REVERT 000025b8: JUMPDEST 000025b9: DUP3 000025ba: CALLDATALOAD 000025bb: PUSH1 0x01 000025bd: PUSH1 0x01 000025bf: PUSH1 0x40 000025c1: SHL 000025c2: SUB 000025c3: DUP2 000025c4: GT 000025c5: ISZERO 000025c6: PUSH2 0x25cd 000025c9: JUMPI 000025ca: DUP3 000025cb: DUP4 000025cc: REVERT 000025cd: JUMPDEST 000025ce: PUSH2 0x25d9 000025d1: DUP6 000025d2: DUP3 000025d3: DUP7 000025d4: ADD 000025d5: PUSH2 0x24c2 000025d8: JUMP 000025d9: JUMPDEST 000025da: SWAP1 000025db: SWAP7 000025dc: SWAP1 000025dd: SWAP6 000025de: POP 000025df: SWAP4 000025e0: POP 000025e1: POP 000025e2: POP 000025e3: POP 000025e4: JUMP 000025e5: JUMPDEST 000025e6: PUSH1 0x00 000025e8: DUP1 000025e9: PUSH1 0x00 000025eb: DUP1 000025ec: PUSH1 0x00 000025ee: DUP1 000025ef: PUSH1 0x00 000025f1: PUSH1 0x80 000025f3: DUP9 000025f4: DUP11 000025f5: SUB 000025f6: SLT 000025f7: ISZERO 000025f8: PUSH2 0x25ff 000025fb: JUMPI 000025fc: DUP3 000025fd: DUP4 000025fe: REVERT 000025ff: JUMPDEST 00002600: DUP8 00002601: CALLDATALOAD 00002602: PUSH1 0x01 00002604: PUSH1 0x01 00002606: PUSH1 0x40 00002608: SHL 00002609: SUB 0000260a: DUP1 0000260b: DUP3 0000260c: GT 0000260d: ISZERO 0000260e: PUSH2 0x2615 00002611: JUMPI 00002612: DUP5 00002613: DUP6 00002614: REVERT 00002615: JUMPDEST 00002616: PUSH2 0x2621 00002619: DUP12 0000261a: DUP4 0000261b: DUP13 0000261c: ADD 0000261d: PUSH2 0x24c2 00002620: JUMP 00002621: JUMPDEST 00002622: SWAP1 00002623: SWAP10 00002624: POP 00002625: SWAP8 00002626: POP 00002627: PUSH1 0x20 00002629: DUP11 0000262a: ADD 0000262b: CALLDATALOAD 0000262c: SWAP2 0000262d: POP 0000262e: DUP1 0000262f: DUP3 00002630: GT 00002631: ISZERO 00002632: PUSH2 0x2639 00002635: JUMPI 00002636: DUP5 00002637: DUP6 00002638: REVERT 00002639: JUMPDEST 0000263a: PUSH2 0x2645 0000263d: DUP12 0000263e: DUP4 0000263f: DUP13 00002640: ADD 00002641: PUSH2 0x24c2 00002644: JUMP 00002645: JUMPDEST 00002646: SWAP1 00002647: SWAP8 00002648: POP 00002649: SWAP6 0000264a: POP 0000264b: PUSH1 0x40 0000264d: DUP11 0000264e: ADD 0000264f: CALLDATALOAD 00002650: SWAP2 00002651: POP 00002652: DUP1 00002653: DUP3 00002654: GT 00002655: ISZERO 00002656: PUSH2 0x265d 00002659: JUMPI 0000265a: DUP5 0000265b: DUP6 0000265c: REVERT 0000265d: JUMPDEST 0000265e: POP 0000265f: PUSH2 0x266a 00002662: DUP11 00002663: DUP3 00002664: DUP12 00002665: ADD 00002666: PUSH2 0x24c2 00002669: JUMP 0000266a: JUMPDEST 0000266b: SWAP9 0000266c: SWAP12 0000266d: SWAP8 0000266e: SWAP11 0000266f: POP 00002670: SWAP6 00002671: SWAP9 00002672: SWAP5 00002673: SWAP8 00002674: SWAP6 00002675: SWAP7 00002676: PUSH1 0x60 00002678: SWAP1 00002679: SWAP6 0000267a: ADD 0000267b: CALLDATALOAD 0000267c: SWAP5 0000267d: SWAP4 0000267e: POP 0000267f: POP 00002680: POP 00002681: POP 00002682: JUMP 00002683: JUMPDEST 00002684: PUSH1 0x00 00002686: PUSH1 0x20 00002688: DUP3 00002689: DUP5 0000268a: SUB 0000268b: SLT 0000268c: ISZERO 0000268d: PUSH2 0x2694 00002690: JUMPI 00002691: DUP1 00002692: DUP2 00002693: REVERT 00002694: JUMPDEST 00002695: DUP2 00002696: CALLDATALOAD 00002697: PUSH2 0x2198 0000269a: DUP2 0000269b: PUSH2 0x3120 0000269e: JUMP 0000269f: JUMPDEST 000026a0: PUSH1 0x00 000026a2: PUSH1 0x20 000026a4: DUP3 000026a5: DUP5 000026a6: SUB 000026a7: SLT 000026a8: ISZERO 000026a9: PUSH2 0x26b0 000026ac: JUMPI 000026ad: DUP1 000026ae: DUP2 000026af: REVERT 000026b0: JUMPDEST 000026b1: DUP2 000026b2: MLOAD 000026b3: PUSH2 0x2198 000026b6: DUP2 000026b7: PUSH2 0x3120 000026ba: JUMP 000026bb: JUMPDEST 000026bc: PUSH1 0x00 000026be: PUSH1 0x20 000026c0: DUP3 000026c1: DUP5 000026c2: SUB 000026c3: SLT 000026c4: ISZERO 000026c5: PUSH2 0x26cc 000026c8: JUMPI 000026c9: DUP1 000026ca: DUP2 000026cb: REVERT 000026cc: JUMPDEST 000026cd: DUP2 000026ce: CALLDATALOAD 000026cf: PUSH2 0x2198 000026d2: DUP2 000026d3: PUSH2 0x312e 000026d6: JUMP 000026d7: JUMPDEST 000026d8: PUSH1 0x00 000026da: PUSH1 0x20 000026dc: DUP3 000026dd: DUP5 000026de: SUB 000026df: SLT 000026e0: ISZERO 000026e1: PUSH2 0x26e8 000026e4: JUMPI 000026e5: DUP1 000026e6: DUP2 000026e7: REVERT 000026e8: JUMPDEST 000026e9: DUP2 000026ea: MLOAD 000026eb: PUSH1 0x01 000026ed: PUSH1 0x01 000026ef: PUSH1 0x40 000026f1: SHL 000026f2: SUB 000026f3: DUP1 000026f4: DUP3 000026f5: GT 000026f6: ISZERO 000026f7: PUSH2 0x26fe 000026fa: JUMPI 000026fb: DUP3 000026fc: DUP4 000026fd: REVERT 000026fe: JUMPDEST 000026ff: DUP2 00002700: DUP5 00002701: ADD 00002702: SWAP2 00002703: POP 00002704: DUP5 00002705: PUSH1 0x1f 00002707: DUP4 00002708: ADD 00002709: SLT 0000270a: PUSH2 0x2711 0000270d: JUMPI 0000270e: DUP3 0000270f: DUP4 00002710: REVERT 00002711: JUMPDEST 00002712: DUP2 00002713: MLOAD 00002714: DUP2 00002715: DUP2 00002716: GT 00002717: ISZERO 00002718: PUSH2 0x271f 0000271b: JUMPI 0000271c: DUP4 0000271d: DUP5 0000271e: REVERT 0000271f: JUMPDEST 00002720: PUSH1 0x40 00002722: MLOAD 00002723: PUSH1 0x1f 00002725: DUP3 00002726: ADD 00002727: PUSH1 0x1f 00002729: NOT 0000272a: AND 0000272b: DUP2 0000272c: ADD 0000272d: PUSH1 0x20 0000272f: ADD 00002730: DUP4 00002731: DUP2 00002732: GT 00002733: DUP3 00002734: DUP3 00002735: LT 00002736: OR 00002737: ISZERO 00002738: PUSH2 0x273f 0000273b: JUMPI 0000273c: DUP6 0000273d: DUP7 0000273e: REVERT 0000273f: JUMPDEST 00002740: PUSH1 0x40 00002742: MSTORE 00002743: DUP2 00002744: DUP2 00002745: MSTORE 00002746: DUP4 00002747: DUP3 00002748: ADD 00002749: PUSH1 0x20 0000274b: ADD 0000274c: DUP8 0000274d: LT 0000274e: ISZERO 0000274f: PUSH2 0x2756 00002752: JUMPI 00002753: DUP5 00002754: DUP6 00002755: REVERT 00002756: JUMPDEST 00002757: PUSH2 0x2767 0000275a: DUP3 0000275b: PUSH1 0x20 0000275d: DUP4 0000275e: ADD 0000275f: PUSH1 0x20 00002761: DUP8 00002762: ADD 00002763: PUSH2 0x30db 00002766: JUMP 00002767: JUMPDEST 00002768: SWAP7 00002769: SWAP6 0000276a: POP 0000276b: POP 0000276c: POP 0000276d: POP 0000276e: POP 0000276f: POP 00002770: JUMP 00002771: JUMPDEST 00002772: PUSH1 0x00 00002774: PUSH1 0x20 00002776: DUP3 00002777: DUP5 00002778: SUB 00002779: SLT 0000277a: ISZERO 0000277b: PUSH2 0x2782 0000277e: JUMPI 0000277f: DUP1 00002780: DUP2 00002781: REVERT 00002782: JUMPDEST 00002783: POP 00002784: CALLDATALOAD 00002785: SWAP2 00002786: SWAP1 00002787: POP 00002788: JUMP 00002789: JUMPDEST 0000278a: PUSH1 0x00 0000278c: PUSH1 0x20 0000278e: DUP3 0000278f: DUP5 00002790: SUB 00002791: SLT 00002792: ISZERO 00002793: PUSH2 0x279a 00002796: JUMPI 00002797: DUP1 00002798: DUP2 00002799: REVERT 0000279a: JUMPDEST 0000279b: POP 0000279c: MLOAD 0000279d: SWAP2 0000279e: SWAP1 0000279f: POP 000027a0: JUMP 000027a1: JUMPDEST 000027a2: PUSH1 0x00 000027a4: DUP1 000027a5: PUSH1 0x40 000027a7: DUP4 000027a8: DUP6 000027a9: SUB 000027aa: SLT 000027ab: ISZERO 000027ac: PUSH2 0x27b3 000027af: JUMPI 000027b0: DUP2 000027b1: DUP3 000027b2: REVERT 000027b3: JUMPDEST 000027b4: DUP3 000027b5: CALLDATALOAD 000027b6: SWAP2 000027b7: POP 000027b8: PUSH1 0x20 000027ba: DUP4 000027bb: ADD 000027bc: CALLDATALOAD 000027bd: PUSH2 0x27c5 000027c0: DUP2 000027c1: PUSH2 0x310b 000027c4: JUMP 000027c5: JUMPDEST 000027c6: DUP1 000027c7: SWAP2 000027c8: POP 000027c9: POP 000027ca: SWAP3 000027cb: POP 000027cc: SWAP3 000027cd: SWAP1 000027ce: POP 000027cf: JUMP 000027d0: JUMPDEST 000027d1: PUSH1 0x00 000027d3: DUP1 000027d4: PUSH1 0x00 000027d6: DUP1 000027d7: PUSH1 0x60 000027d9: DUP6 000027da: DUP8 000027db: SUB 000027dc: SLT 000027dd: ISZERO 000027de: PUSH2 0x27e5 000027e1: JUMPI 000027e2: DUP4 000027e3: DUP5 000027e4: REVERT 000027e5: JUMPDEST 000027e6: DUP5 000027e7: CALLDATALOAD 000027e8: SWAP4 000027e9: POP 000027ea: PUSH1 0x20 000027ec: DUP6 000027ed: ADD 000027ee: CALLDATALOAD 000027ef: PUSH1 0x01 000027f1: PUSH1 0x01 000027f3: PUSH1 0x40 000027f5: SHL 000027f6: SUB 000027f7: DUP2 000027f8: GT 000027f9: ISZERO 000027fa: PUSH2 0x2801 000027fd: JUMPI 000027fe: DUP4 000027ff: DUP5 00002800: REVERT 00002801: JUMPDEST 00002802: PUSH2 0x280d 00002805: DUP8 00002806: DUP3 00002807: DUP9 00002808: ADD 00002809: PUSH2 0x24c2 0000280c: JUMP 0000280d: JUMPDEST 0000280e: SWAP1 0000280f: SWAP5 00002810: POP 00002811: SWAP3 00002812: POP 00002813: POP 00002814: PUSH1 0x40 00002816: DUP6 00002817: ADD 00002818: CALLDATALOAD 00002819: PUSH2 0x2821 0000281c: DUP2 0000281d: PUSH2 0x3120 00002820: JUMP 00002821: JUMPDEST 00002822: SWAP4 00002823: SWAP7 00002824: SWAP3 00002825: SWAP6 00002826: POP 00002827: SWAP1 00002828: SWAP4 00002829: POP 0000282a: POP 0000282b: JUMP 0000282c: JUMPDEST 0000282d: PUSH1 0x00 0000282f: DUP1 00002830: PUSH1 0x00 00002832: PUSH1 0x40 00002834: DUP5 00002835: DUP7 00002836: SUB 00002837: SLT 00002838: ISZERO 00002839: PUSH2 0x2840 0000283c: JUMPI 0000283d: DUP1 0000283e: DUP2 0000283f: REVERT 00002840: JUMPDEST 00002841: DUP4 00002842: CALLDATALOAD 00002843: SWAP3 00002844: POP 00002845: PUSH1 0x20 00002847: DUP5 00002848: ADD 00002849: CALLDATALOAD 0000284a: PUSH1 0x01 0000284c: PUSH1 0x01 0000284e: PUSH1 0x40 00002850: SHL 00002851: SUB 00002852: DUP2 00002853: GT 00002854: ISZERO 00002855: PUSH2 0x285c 00002858: JUMPI 00002859: DUP2 0000285a: DUP3 0000285b: REVERT 0000285c: JUMPDEST 0000285d: PUSH2 0x2868 00002860: DUP7 00002861: DUP3 00002862: DUP8 00002863: ADD 00002864: PUSH2 0x24c2 00002867: JUMP 00002868: JUMPDEST 00002869: SWAP5 0000286a: SWAP8 0000286b: SWAP1 0000286c: SWAP7 0000286d: POP 0000286e: SWAP4 0000286f: SWAP5 00002870: POP 00002871: POP 00002872: POP 00002873: POP 00002874: JUMP 00002875: JUMPDEST 00002876: PUSH1 0x00 00002878: DUP1 00002879: PUSH1 0x00 0000287b: PUSH1 0x40 0000287d: DUP5 0000287e: DUP7 0000287f: SUB 00002880: SLT 00002881: ISZERO 00002882: PUSH2 0x2889 00002885: JUMPI 00002886: DUP1 00002887: DUP2 00002888: REVERT 00002889: JUMPDEST 0000288a: DUP4 0000288b: CALLDATALOAD 0000288c: SWAP3 0000288d: POP 0000288e: PUSH1 0x20 00002890: DUP5 00002891: ADD 00002892: CALLDATALOAD 00002893: PUSH1 0x01 00002895: PUSH1 0x01 00002897: PUSH1 0x40 00002899: SHL 0000289a: SUB 0000289b: DUP2 0000289c: GT 0000289d: ISZERO 0000289e: PUSH2 0x28a5 000028a1: JUMPI 000028a2: DUP2 000028a3: DUP3 000028a4: REVERT 000028a5: JUMPDEST 000028a6: PUSH2 0x2868 000028a9: DUP7 000028aa: DUP3 000028ab: DUP8 000028ac: ADD 000028ad: PUSH2 0x250a 000028b0: JUMP 000028b1: JUMPDEST 000028b2: PUSH1 0x00 000028b4: DUP1 000028b5: PUSH1 0x00 000028b7: DUP1 000028b8: PUSH1 0x00 000028ba: PUSH1 0x80 000028bc: DUP7 000028bd: DUP9 000028be: SUB 000028bf: SLT 000028c0: ISZERO 000028c1: PUSH2 0x28c8 000028c4: JUMPI 000028c5: DUP3 000028c6: DUP4 000028c7: REVERT 000028c8: JUMPDEST 000028c9: DUP6 000028ca: CALLDATALOAD 000028cb: SWAP5 000028cc: POP 000028cd: PUSH1 0x20 000028cf: DUP7 000028d0: ADD 000028d1: CALLDATALOAD 000028d2: PUSH1 0x01 000028d4: PUSH1 0x01 000028d6: PUSH1 0x40 000028d8: SHL 000028d9: SUB 000028da: DUP2 000028db: GT 000028dc: ISZERO 000028dd: PUSH2 0x28e4 000028e0: JUMPI 000028e1: DUP4 000028e2: DUP5 000028e3: REVERT 000028e4: JUMPDEST 000028e5: PUSH2 0x28f0 000028e8: DUP9 000028e9: DUP3 000028ea: DUP10 000028eb: ADD 000028ec: PUSH2 0x250a 000028ef: JUMP 000028f0: JUMPDEST 000028f1: SWAP1 000028f2: SWAP6 000028f3: POP 000028f4: SWAP4 000028f5: POP 000028f6: POP 000028f7: PUSH1 0x40 000028f9: DUP7 000028fa: ADD 000028fb: CALLDATALOAD 000028fc: SWAP2 000028fd: POP 000028fe: PUSH1 0x60 00002900: DUP7 00002901: ADD 00002902: CALLDATALOAD 00002903: PUSH2 0x290b 00002906: DUP2 00002907: PUSH2 0x312e 0000290a: JUMP 0000290b: JUMPDEST 0000290c: DUP1 0000290d: SWAP2 0000290e: POP 0000290f: POP 00002910: SWAP3 00002911: SWAP6 00002912: POP 00002913: SWAP3 00002914: SWAP6 00002915: SWAP1 00002916: SWAP4 00002917: POP 00002918: JUMP 00002919: JUMPDEST 0000291a: PUSH1 0x00 0000291c: DUP1 0000291d: PUSH1 0x00 0000291f: PUSH1 0x60 00002921: DUP5 00002922: DUP7 00002923: SUB 00002924: SLT 00002925: ISZERO 00002926: PUSH2 0x292d 00002929: JUMPI 0000292a: DUP1 0000292b: DUP2 0000292c: REVERT 0000292d: JUMPDEST 0000292e: DUP4 0000292f: CALLDATALOAD 00002930: SWAP3 00002931: POP 00002932: PUSH1 0x20 00002934: DUP5 00002935: ADD 00002936: CALLDATALOAD 00002937: SWAP2 00002938: POP 00002939: PUSH1 0x40 0000293b: DUP5 0000293c: ADD 0000293d: CALLDATALOAD 0000293e: PUSH2 0x259b 00002941: DUP2 00002942: PUSH2 0x310b 00002945: JUMP 00002946: JUMPDEST 00002947: PUSH1 0x00 00002949: DUP1 0000294a: PUSH1 0x00 0000294c: PUSH1 0x60 0000294e: DUP5 0000294f: DUP7 00002950: SUB 00002951: SLT 00002952: ISZERO 00002953: PUSH2 0x295a 00002956: JUMPI 00002957: DUP1 00002958: DUP2 00002959: REVERT 0000295a: JUMPDEST 0000295b: POP 0000295c: POP 0000295d: DUP2 0000295e: CALLDATALOAD 0000295f: SWAP4 00002960: PUSH1 0x20 00002962: DUP4 00002963: ADD 00002964: CALLDATALOAD 00002965: SWAP4 00002966: POP 00002967: PUSH1 0x40 00002969: SWAP1 0000296a: SWAP3 0000296b: ADD 0000296c: CALLDATALOAD 0000296d: SWAP2 0000296e: SWAP1 0000296f: POP 00002970: JUMP 00002971: JUMPDEST 00002972: PUSH1 0x00 00002974: DUP2 00002975: MLOAD 00002976: DUP1 00002977: DUP5 00002978: MSTORE 00002979: PUSH1 0x20 0000297b: DUP1 0000297c: DUP6 0000297d: ADD 0000297e: DUP1 0000297f: DUP2 00002980: SWAP7 00002981: POP 00002982: DUP3 00002983: DUP5 00002984: MUL 00002985: DUP2 00002986: ADD 00002987: SWAP2 00002988: POP 00002989: DUP3 0000298a: DUP7 0000298b: ADD 0000298c: DUP6 0000298d: JUMPDEST 0000298e: DUP6 0000298f: DUP2 00002990: LT 00002991: ISZERO 00002992: PUSH2 0x29b7 00002995: JUMPI 00002996: DUP3 00002997: DUP5 00002998: SUB 00002999: DUP10 0000299a: MSTORE 0000299b: PUSH2 0x29a5 0000299e: DUP5 0000299f: DUP4 000029a0: MLOAD 000029a1: PUSH2 0x29fe 000029a4: JUMP 000029a5: JUMPDEST 000029a6: SWAP9 000029a7: DUP6 000029a8: ADD 000029a9: SWAP9 000029aa: SWAP4 000029ab: POP 000029ac: SWAP1 000029ad: DUP5 000029ae: ADD 000029af: SWAP1 000029b0: PUSH1 0x01 000029b2: ADD 000029b3: PUSH2 0x298d 000029b6: JUMP 000029b7: JUMPDEST 000029b8: POP 000029b9: SWAP2 000029ba: SWAP8 000029bb: SWAP7 000029bc: POP 000029bd: POP 000029be: POP 000029bf: POP 000029c0: POP 000029c1: POP 000029c2: POP 000029c3: JUMP 000029c4: JUMPDEST 000029c5: PUSH1 0x00 000029c7: DUP2 000029c8: MLOAD 000029c9: DUP1 000029ca: DUP5 000029cb: MSTORE 000029cc: PUSH1 0x20 000029ce: DUP1 000029cf: DUP6 000029d0: ADD 000029d1: SWAP5 000029d2: POP 000029d3: DUP1 000029d4: DUP5 000029d5: ADD 000029d6: DUP4 000029d7: JUMPDEST 000029d8: DUP4 000029d9: DUP2 000029da: LT 000029db: ISZERO 000029dc: PUSH2 0x29f3 000029df: JUMPI 000029e0: DUP2 000029e1: MLOAD 000029e2: DUP8 000029e3: MSTORE 000029e4: SWAP6 000029e5: DUP3 000029e6: ADD 000029e7: SWAP6 000029e8: SWAP1 000029e9: DUP3 000029ea: ADD 000029eb: SWAP1 000029ec: PUSH1 0x01 000029ee: ADD 000029ef: PUSH2 0x29d7 000029f2: JUMP 000029f3: JUMPDEST 000029f4: POP 000029f5: SWAP5 000029f6: SWAP6 000029f7: SWAP5 000029f8: POP 000029f9: POP 000029fa: POP 000029fb: POP 000029fc: POP 000029fd: JUMP 000029fe: JUMPDEST 000029ff: PUSH1 0x00 00002a01: DUP2 00002a02: MLOAD 00002a03: DUP1 00002a04: DUP5 00002a05: MSTORE 00002a06: PUSH2 0x2a16 00002a09: DUP2 00002a0a: PUSH1 0x20 00002a0c: DUP7 00002a0d: ADD 00002a0e: PUSH1 0x20 00002a10: DUP7 00002a11: ADD 00002a12: PUSH2 0x30db 00002a15: JUMP 00002a16: JUMPDEST 00002a17: PUSH1 0x1f 00002a19: ADD 00002a1a: PUSH1 0x1f 00002a1c: NOT 00002a1d: AND 00002a1e: SWAP3 00002a1f: SWAP1 00002a20: SWAP3 00002a21: ADD 00002a22: PUSH1 0x20 00002a24: ADD 00002a25: SWAP3 00002a26: SWAP2 00002a27: POP 00002a28: POP 00002a29: JUMP 00002a2a: JUMPDEST 00002a2b: PUSH32 0x416c6c6f636174696f6e20526f756e64203c753e6f70656e733c2f753e20696e 00002a4c: DUP2 00002a4d: MSTORE 00002a4e: PUSH1 0x1d 00002a50: PUSH1 0xf9 00002a52: SHL 00002a53: PUSH1 0x20 00002a55: DUP3 00002a56: ADD 00002a57: MSTORE 00002a58: PUSH1 0x21 00002a5a: ADD 00002a5b: SWAP1 00002a5c: JUMP 00002a5d: JUMPDEST 00002a5e: PUSH32 0x4643465320526f756e64203c753e636c6f7365733c2f753e20696e3a00000000 00002a7f: DUP2 00002a80: MSTORE 00002a81: PUSH1 0x1c 00002a83: ADD 00002a84: SWAP1 00002a85: JUMP 00002a86: JUMPDEST 00002a87: PUSH32 0x416c6c6f636174696f6e20526f756e64203c753e636c6f7365733c2f753e2069 00002aa8: DUP2 00002aa9: MSTORE 00002aaa: PUSH2 0x371d 00002aad: PUSH1 0xf1 00002aaf: SHL 00002ab0: PUSH1 0x20 00002ab2: DUP3 00002ab3: ADD 00002ab4: MSTORE 00002ab5: PUSH1 0x22 00002ab7: ADD 00002ab8: SWAP1 00002ab9: JUMP 00002aba: JUMPDEST 00002abb: PUSH1 0x01 00002abd: PUSH1 0x01 00002abf: PUSH1 0xa0 00002ac1: SHL 00002ac2: SUB 00002ac3: SWAP2 00002ac4: SWAP1 00002ac5: SWAP2 00002ac6: AND 00002ac7: DUP2 00002ac8: MSTORE 00002ac9: PUSH1 0x20 00002acb: ADD 00002acc: SWAP1 00002acd: JUMP 00002ace: JUMPDEST 00002acf: PUSH1 0x01 00002ad1: PUSH1 0x01 00002ad3: PUSH1 0xa0 00002ad5: SHL 00002ad6: SUB 00002ad7: SWAP3 00002ad8: SWAP1 00002ad9: SWAP3 00002ada: AND 00002adb: DUP3 00002adc: MSTORE 00002add: PUSH1 0x20 00002adf: DUP3 00002ae0: ADD 00002ae1: MSTORE 00002ae2: PUSH1 0x40 00002ae4: ADD 00002ae5: SWAP1 00002ae6: JUMP 00002ae7: JUMPDEST 00002ae8: PUSH1 0x01 00002aea: PUSH1 0x01 00002aec: PUSH1 0xa0 00002aee: SHL 00002aef: SUB 00002af0: DUP15 00002af1: AND 00002af2: DUP2 00002af3: MSTORE 00002af4: PUSH2 0x01a0 00002af7: PUSH1 0x20 00002af9: DUP3 00002afa: ADD 00002afb: DUP2 00002afc: SWAP1 00002afd: MSTORE 00002afe: PUSH1 0x00 00002b00: SWAP1 00002b01: PUSH2 0x2b0c 00002b04: SWAP1 00002b05: DUP4 00002b06: ADD 00002b07: DUP16 00002b08: PUSH2 0x29fe 00002b0b: JUMP 00002b0c: JUMPDEST 00002b0d: DUP14 00002b0e: PUSH1 0x40 00002b10: DUP5 00002b11: ADD 00002b12: MSTORE 00002b13: DUP13 00002b14: PUSH1 0x60 00002b16: DUP5 00002b17: ADD 00002b18: MSTORE 00002b19: DUP12 00002b1a: PUSH1 0x80 00002b1c: DUP5 00002b1d: ADD 00002b1e: MSTORE 00002b1f: DUP11 00002b20: PUSH1 0xa0 00002b22: DUP5 00002b23: ADD 00002b24: MSTORE 00002b25: DUP10 00002b26: PUSH1 0xc0 00002b28: DUP5 00002b29: ADD 00002b2a: MSTORE 00002b2b: DUP3 00002b2c: DUP2 00002b2d: SUB 00002b2e: PUSH1 0xe0 00002b30: DUP5 00002b31: ADD 00002b32: MSTORE 00002b33: PUSH2 0x2b3c 00002b36: DUP2 00002b37: DUP11 00002b38: PUSH2 0x29fe 00002b3b: JUMP 00002b3c: JUMPDEST 00002b3d: PUSH2 0x0100 00002b40: DUP5 00002b41: ADD 00002b42: SWAP9 00002b43: SWAP1 00002b44: SWAP9 00002b45: MSTORE 00002b46: POP 00002b47: POP 00002b48: PUSH2 0x0120 00002b4b: DUP2 00002b4c: ADD 00002b4d: SWAP5 00002b4e: SWAP1 00002b4f: SWAP5 00002b50: MSTORE 00002b51: PUSH2 0x0140 00002b54: DUP5 00002b55: ADD 00002b56: SWAP3 00002b57: SWAP1 00002b58: SWAP3 00002b59: MSTORE 00002b5a: PUSH2 0x0160 00002b5d: DUP4 00002b5e: ADD 00002b5f: MSTORE 00002b60: PUSH1 0x01 00002b62: PUSH1 0x01 00002b64: PUSH1 0xa0 00002b66: SHL 00002b67: SUB 00002b68: AND 00002b69: PUSH2 0x0180 00002b6c: SWAP1 00002b6d: SWAP2 00002b6e: ADD 00002b6f: MSTORE 00002b70: SWAP9 00002b71: SWAP8 00002b72: POP 00002b73: POP 00002b74: POP 00002b75: POP 00002b76: POP 00002b77: POP 00002b78: POP 00002b79: POP 00002b7a: JUMP 00002b7b: JUMPDEST 00002b7c: PUSH1 0x00 00002b7e: PUSH1 0x60 00002b80: DUP3 00002b81: MSTORE 00002b82: PUSH2 0x2b8e 00002b85: PUSH1 0x60 00002b87: DUP4 00002b88: ADD 00002b89: DUP7 00002b8a: PUSH2 0x2971 00002b8d: JUMP 00002b8e: JUMPDEST 00002b8f: DUP3 00002b90: DUP2 00002b91: SUB 00002b92: PUSH1 0x20 00002b94: DUP5 00002b95: ADD 00002b96: MSTORE 00002b97: PUSH2 0x2ba0 00002b9a: DUP2 00002b9b: DUP7 00002b9c: PUSH2 0x29c4 00002b9f: JUMP 00002ba0: JUMPDEST 00002ba1: SWAP1 00002ba2: POP 00002ba3: DUP3 00002ba4: DUP2 00002ba5: SUB 00002ba6: PUSH1 0x40 00002ba8: DUP5 00002ba9: ADD 00002baa: MSTORE 00002bab: PUSH2 0x2767 00002bae: DUP2 00002baf: DUP6 00002bb0: PUSH2 0x29c4 00002bb3: JUMP 00002bb4: JUMPDEST 00002bb5: SWAP1 00002bb6: ISZERO 00002bb7: ISZERO 00002bb8: DUP2 00002bb9: MSTORE 00002bba: PUSH1 0x20 00002bbc: ADD 00002bbd: SWAP1 00002bbe: JUMP 00002bbf: JUMPDEST 00002bc0: PUSH1 0x00 00002bc2: PUSH1 0x20 00002bc4: DUP3 00002bc5: MSTORE 00002bc6: PUSH2 0x2198 00002bc9: PUSH1 0x20 00002bcb: DUP4 00002bcc: ADD 00002bcd: DUP5 00002bce: PUSH2 0x29fe 00002bd1: JUMP 00002bd2: JUMPDEST 00002bd3: PUSH1 0x00 00002bd5: PUSH1 0x60 00002bd7: DUP3 00002bd8: MSTORE 00002bd9: PUSH2 0x2be5 00002bdc: PUSH1 0x60 00002bde: DUP4 00002bdf: ADD 00002be0: DUP7 00002be1: PUSH2 0x29fe 00002be4: JUMP 00002be5: JUMPDEST 00002be6: SWAP1 00002be7: POP 00002be8: DUP4 00002be9: PUSH1 0x20 00002beb: DUP4 00002bec: ADD 00002bed: MSTORE 00002bee: PUSH1 0x02 00002bf0: DUP4 00002bf1: LT 00002bf2: PUSH2 0x2bf7 00002bf5: JUMPI 00002bf6: INVALID 00002bf7: JUMPDEST 00002bf8: DUP3 00002bf9: PUSH1 0x40 00002bfb: DUP4 00002bfc: ADD 00002bfd: MSTORE 00002bfe: SWAP5 00002bff: SWAP4 00002c00: POP 00002c01: POP 00002c02: POP 00002c03: POP 00002c04: JUMP 00002c05: JUMPDEST 00002c06: PUSH1 0x20 00002c08: DUP1 00002c09: DUP3 00002c0a: MSTORE 00002c0b: PUSH1 0x12 00002c0d: SWAP1 00002c0e: DUP3 00002c0f: ADD 00002c10: MSTORE 00002c11: PUSH18 0x092dcecc2d8d2c840e8d2cae440d2dcc8caf 00002c24: PUSH1 0x73 00002c26: SHL 00002c27: PUSH1 0x40 00002c29: DUP3 00002c2a: ADD 00002c2b: MSTORE 00002c2c: PUSH1 0x60 00002c2e: ADD 00002c2f: SWAP1 00002c30: JUMP 00002c31: JUMPDEST 00002c32: PUSH1 0x20 00002c34: DUP1 00002c35: DUP3 00002c36: MSTORE 00002c37: PUSH1 0x0c 00002c39: SWAP1 00002c3a: DUP3 00002c3b: ADD 00002c3c: MSTORE 00002c3d: PUSH12 0x24b73b30b634b2103a34b2b9 00002c4a: PUSH1 0xa1 00002c4c: SHL 00002c4d: PUSH1 0x40 00002c4f: DUP3 00002c50: ADD 00002c51: MSTORE 00002c52: PUSH1 0x60 00002c54: ADD 00002c55: SWAP1 00002c56: JUMP 00002c57: JUMPDEST 00002c58: PUSH1 0x20 00002c5a: DUP1 00002c5b: DUP3 00002c5c: MSTORE 00002c5d: PUSH1 0x26 00002c5f: SWAP1 00002c60: DUP3 00002c61: ADD 00002c62: MSTORE 00002c63: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 00002c84: PUSH1 0x40 00002c86: DUP3 00002c87: ADD 00002c88: MSTORE 00002c89: PUSH6 0x646472657373 00002c90: PUSH1 0xd0 00002c92: SHL 00002c93: PUSH1 0x60 00002c95: DUP3 00002c96: ADD 00002c97: MSTORE 00002c98: PUSH1 0x80 00002c9a: ADD 00002c9b: SWAP1 00002c9c: JUMP 00002c9d: JUMPDEST 00002c9e: PUSH1 0x20 00002ca0: DUP1 00002ca1: DUP3 00002ca2: MSTORE 00002ca3: PUSH1 0x34 00002ca5: SWAP1 00002ca6: DUP3 00002ca7: ADD 00002ca8: MSTORE 00002ca9: PUSH32 0x496e737566666963656e74206e617469766520746f6b656e2062616c616e6365 00002cca: PUSH1 0x40 00002ccc: DUP3 00002ccd: ADD 00002cce: MSTORE 00002ccf: PUSH20 0x103a37903a3930b739b332b91030b6b7bab73a17 00002ce4: PUSH1 0x61 00002ce6: SHL 00002ce7: PUSH1 0x60 00002ce9: DUP3 00002cea: ADD 00002ceb: MSTORE 00002cec: PUSH1 0x80 00002cee: ADD 00002cef: SWAP1 00002cf0: JUMP 00002cf1: JUMPDEST 00002cf2: PUSH1 0x20 00002cf4: DUP1 00002cf5: DUP3 00002cf6: MSTORE 00002cf7: PUSH1 0x1b 00002cf9: SWAP1 00002cfa: DUP3 00002cfb: ADD 00002cfc: MSTORE 00002cfd: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000 00002d1e: PUSH1 0x40 00002d20: DUP3 00002d21: ADD 00002d22: MSTORE 00002d23: PUSH1 0x60 00002d25: ADD 00002d26: SWAP1 00002d27: JUMP 00002d28: JUMPDEST 00002d29: PUSH1 0x20 00002d2b: DUP1 00002d2c: DUP3 00002d2d: MSTORE 00002d2e: DUP2 00002d2f: DUP2 00002d30: ADD 00002d31: MSTORE 00002d32: PUSH32 0x416d6f756e74206d7573742062652067726561746572207468616e207a65726f 00002d53: PUSH1 0x40 00002d55: DUP3 00002d56: ADD 00002d57: MSTORE 00002d58: PUSH1 0x60 00002d5a: ADD 00002d5b: SWAP1 00002d5c: JUMP 00002d5d: JUMPDEST 00002d5e: PUSH1 0x20 00002d60: DUP1 00002d61: DUP3 00002d62: MSTORE 00002d63: PUSH1 0x0d 00002d65: SWAP1 00002d66: DUP3 00002d67: ADD 00002d68: MSTORE 00002d69: PUSH13 0x125b9d985b1a59081c9bdd5b99 00002d77: PUSH1 0x9a 00002d79: SHL 00002d7a: PUSH1 0x40 00002d7c: DUP3 00002d7d: ADD 00002d7e: MSTORE 00002d7f: PUSH1 0x60 00002d81: ADD 00002d82: SWAP1 00002d83: JUMP 00002d84: JUMPDEST 00002d85: PUSH1 0x20 00002d87: DUP1 00002d88: DUP3 00002d89: MSTORE 00002d8a: PUSH1 0x13 00002d8c: SWAP1 00002d8d: DUP3 00002d8e: ADD 00002d8f: MSTORE 00002d90: PUSH19 0x092dcecc2d8d2c840e4deeadcc840d2dcc8caf 00002da4: PUSH1 0x6b 00002da6: SHL 00002da7: PUSH1 0x40 00002da9: DUP3 00002daa: ADD 00002dab: MSTORE 00002dac: PUSH1 0x60 00002dae: ADD 00002daf: SWAP1 00002db0: JUMP 00002db1: JUMPDEST 00002db2: PUSH1 0x20 00002db4: DUP1 00002db5: DUP3 00002db6: MSTORE 00002db7: PUSH1 0x23 00002db9: SWAP1 00002dba: DUP3 00002dbb: ADD 00002dbc: MSTORE 00002dbd: PUSH32 0x416d6f756e7420657863656564732072656d61696e696e6720616c6c6f636174 00002dde: PUSH1 0x40 00002de0: DUP3 00002de1: ADD 00002de2: MSTORE 00002de3: PUSH3 0x34b7b7 00002de7: PUSH1 0xe9 00002de9: SHL 00002dea: PUSH1 0x60 00002dec: DUP3 00002ded: ADD 00002dee: MSTORE 00002def: PUSH1 0x80 00002df1: ADD 00002df2: SWAP1 00002df3: JUMP 00002df4: JUMPDEST 00002df5: PUSH1 0x20 00002df7: DUP1 00002df8: DUP3 00002df9: MSTORE 00002dfa: PUSH1 0x18 00002dfc: SWAP1 00002dfd: DUP3 00002dfe: ADD 00002dff: MSTORE 00002e00: PUSH32 0x496e76616c696420726f756e6473207370656369666965640000000000000000 00002e21: PUSH1 0x40 00002e23: DUP3 00002e24: ADD 00002e25: MSTORE 00002e26: PUSH1 0x60 00002e28: ADD 00002e29: SWAP1 00002e2a: JUMP 00002e2b: JUMPDEST 00002e2c: PUSH1 0x20 00002e2e: DUP1 00002e2f: DUP3 00002e30: MSTORE 00002e31: PUSH1 0x21 00002e33: SWAP1 00002e34: DUP3 00002e35: ADD 00002e36: MSTORE 00002e37: PUSH32 0x536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f 00002e58: PUSH1 0x40 00002e5a: DUP3 00002e5b: ADD 00002e5c: MSTORE 00002e5d: PUSH1 0x77 00002e5f: PUSH1 0xf8 00002e61: SHL 00002e62: PUSH1 0x60 00002e64: DUP3 00002e65: ADD 00002e66: MSTORE 00002e67: PUSH1 0x80 00002e69: ADD 00002e6a: SWAP1 00002e6b: JUMP 00002e6c: JUMPDEST 00002e6d: PUSH1 0x20 00002e6f: DUP1 00002e70: DUP3 00002e71: MSTORE 00002e72: DUP2 00002e73: DUP2 00002e74: ADD 00002e75: MSTORE 00002e76: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00002e97: PUSH1 0x40 00002e99: DUP3 00002e9a: ADD 00002e9b: MSTORE 00002e9c: PUSH1 0x60 00002e9e: ADD 00002e9f: SWAP1 00002ea0: JUMP 00002ea1: JUMPDEST 00002ea2: PUSH1 0x20 00002ea4: DUP1 00002ea5: DUP3 00002ea6: MSTORE 00002ea7: PUSH1 0x12 00002ea9: SWAP1 00002eaa: DUP3 00002eab: ADD 00002eac: MSTORE 00002ead: PUSH18 0x0416d6f756e7420657863656564732063617 00002ec0: PUSH1 0x74 00002ec2: SHL 00002ec3: PUSH1 0x40 00002ec5: DUP3 00002ec6: ADD 00002ec7: MSTORE 00002ec8: PUSH1 0x60 00002eca: ADD 00002ecb: SWAP1 00002ecc: JUMP 00002ecd: JUMPDEST 00002ece: PUSH1 0x20 00002ed0: DUP1 00002ed1: DUP3 00002ed2: MSTORE 00002ed3: PUSH1 0x29 00002ed5: SWAP1 00002ed6: DUP3 00002ed7: ADD 00002ed8: MSTORE 00002ed9: PUSH32 0x496e737566666963656e74206e617469766520746f6b656e2073656e7420746f 00002efa: PUSH1 0x40 00002efc: DUP3 00002efd: ADD 00002efe: MSTORE 00002eff: PUSH9 0x0818dbdb9d1c9858dd 00002f09: PUSH1 0xba 00002f0b: SHL 00002f0c: PUSH1 0x60 00002f0e: DUP3 00002f0f: ADD 00002f10: MSTORE 00002f11: PUSH1 0x80 00002f13: ADD 00002f14: SWAP1 00002f15: JUMP 00002f16: JUMPDEST 00002f17: PUSH1 0x20 00002f19: DUP1 00002f1a: DUP3 00002f1b: MSTORE 00002f1c: PUSH1 0x1c 00002f1e: SWAP1 00002f1f: DUP3 00002f20: ADD 00002f21: MSTORE 00002f22: PUSH32 0x50617274696369706174696f6e206e6f742076616c69642f6f70656e00000000 00002f43: PUSH1 0x40 00002f45: DUP3 00002f46: ADD 00002f47: MSTORE 00002f48: PUSH1 0x60 00002f4a: ADD 00002f4b: SWAP1 00002f4c: JUMP 00002f4d: JUMPDEST 00002f4e: PUSH1 0x20 00002f50: DUP1 00002f51: DUP3 00002f52: MSTORE 00002f53: PUSH1 0x17 00002f55: SWAP1 00002f56: DUP3 00002f57: ADD 00002f58: MSTORE 00002f59: PUSH32 0x496e76616c696420746965727320737065636966696564000000000000000000 00002f7a: PUSH1 0x40 00002f7c: DUP3 00002f7d: ADD 00002f7e: MSTORE 00002f7f: PUSH1 0x60 00002f81: ADD 00002f82: SWAP1 00002f83: JUMP 00002f84: JUMPDEST 00002f85: PUSH1 0x20 00002f87: DUP1 00002f88: DUP3 00002f89: MSTORE 00002f8a: PUSH1 0x2d 00002f8c: SWAP1 00002f8d: DUP3 00002f8e: ADD 00002f8f: MSTORE 00002f90: PUSH32 0x496e737566666963656e7420746f6b656e2062616c616e636520746f20747261 00002fb1: PUSH1 0x40 00002fb3: DUP3 00002fb4: ADD 00002fb5: MSTORE 00002fb6: PUSH13 0x3739b332b91030b6b7bab73a17 00002fc4: PUSH1 0x99 00002fc6: SHL 00002fc7: PUSH1 0x60 00002fc9: DUP3 00002fca: ADD 00002fcb: MSTORE 00002fcc: PUSH1 0x80 00002fce: ADD 00002fcf: SWAP1 00002fd0: JUMP 00002fd1: JUMPDEST 00002fd2: SWAP1 00002fd3: DUP2 00002fd4: MSTORE 00002fd5: PUSH1 0x20 00002fd7: ADD 00002fd8: SWAP1 00002fd9: JUMP 00002fda: JUMPDEST 00002fdb: PUSH1 0x00 00002fdd: DUP5 00002fde: DUP3 00002fdf: MSTORE 00002fe0: PUSH1 0x60 00002fe2: PUSH1 0x20 00002fe4: DUP4 00002fe5: ADD 00002fe6: MSTORE 00002fe7: PUSH2 0x2ff3 00002fea: PUSH1 0x60 00002fec: DUP4 00002fed: ADD 00002fee: DUP6 00002fef: PUSH2 0x29c4 00002ff2: JUMP 00002ff3: JUMPDEST 00002ff4: DUP3 00002ff5: DUP2 00002ff6: SUB 00002ff7: PUSH1 0x40 00002ff9: DUP5 00002ffa: ADD 00002ffb: MSTORE 00002ffc: PUSH2 0x2767 00002fff: DUP2 00003000: DUP6 00003001: PUSH2 0x2971 00003004: JUMP 00003005: JUMPDEST 00003006: PUSH1 0x00 00003008: PUSH2 0x0100 0000300b: DUP11 0000300c: DUP4 0000300d: MSTORE 0000300e: DUP10 0000300f: PUSH1 0x20 00003011: DUP5 00003012: ADD 00003013: MSTORE 00003014: DUP1 00003015: PUSH1 0x40 00003017: DUP5 00003018: ADD 00003019: MSTORE 0000301a: PUSH2 0x3025 0000301d: DUP2 0000301e: DUP5 0000301f: ADD 00003020: DUP11 00003021: PUSH2 0x29fe 00003024: JUMP 00003025: JUMPDEST 00003026: SWAP1 00003027: POP 00003028: DUP8 00003029: PUSH1 0x60 0000302b: DUP5 0000302c: ADD 0000302d: MSTORE 0000302e: DUP3 0000302f: DUP2 00003030: SUB 00003031: PUSH1 0x80 00003033: DUP5 00003034: ADD 00003035: MSTORE 00003036: PUSH2 0x303f 00003039: DUP2 0000303a: DUP9 0000303b: PUSH2 0x29fe 0000303e: JUMP 0000303f: JUMPDEST 00003040: PUSH1 0xa0 00003042: DUP5 00003043: ADD 00003044: SWAP7 00003045: SWAP1 00003046: SWAP7 00003047: MSTORE 00003048: POP 00003049: POP 0000304a: PUSH1 0xc0 0000304c: DUP2 0000304d: ADD 0000304e: SWAP3 0000304f: SWAP1 00003050: SWAP3 00003051: MSTORE 00003052: PUSH1 0xe0 00003054: SWAP1 00003055: SWAP2 00003056: ADD 00003057: MSTORE 00003058: SWAP6 00003059: SWAP5 0000305a: POP 0000305b: POP 0000305c: POP 0000305d: POP 0000305e: POP 0000305f: JUMP 00003060: JUMPDEST 00003061: PUSH1 0x00 00003063: DUP7 00003064: DUP3 00003065: MSTORE 00003066: DUP6 00003067: PUSH1 0x20 00003069: DUP4 0000306a: ADD 0000306b: MSTORE 0000306c: DUP5 0000306d: PUSH1 0x40 0000306f: DUP4 00003070: ADD 00003071: MSTORE 00003072: PUSH1 0xa0 00003074: PUSH1 0x60 00003076: DUP4 00003077: ADD 00003078: MSTORE 00003079: PUSH2 0x3085 0000307c: PUSH1 0xa0 0000307e: DUP4 0000307f: ADD 00003080: DUP6 00003081: PUSH2 0x29fe 00003084: JUMP 00003085: JUMPDEST 00003086: SWAP1 00003087: POP 00003088: DUP3 00003089: PUSH1 0x80 0000308b: DUP4 0000308c: ADD 0000308d: MSTORE 0000308e: SWAP7 0000308f: SWAP6 00003090: POP 00003091: POP 00003092: POP 00003093: POP 00003094: POP 00003095: POP 00003096: JUMP 00003097: JUMPDEST 00003098: PUSH1 0x00 0000309a: DUP1 0000309b: DUP4 0000309c: CALLDATALOAD 0000309d: PUSH1 0x1e 0000309f: NOT 000030a0: DUP5 000030a1: CALLDATASIZE 000030a2: SUB 000030a3: ADD 000030a4: DUP2 000030a5: SLT 000030a6: PUSH2 0x30ad 000030a9: JUMPI 000030aa: DUP3 000030ab: DUP4 000030ac: REVERT 000030ad: JUMPDEST 000030ae: DUP4 000030af: ADD 000030b0: DUP1 000030b1: CALLDATALOAD 000030b2: SWAP2 000030b3: POP 000030b4: PUSH1 0x01 000030b6: PUSH1 0x01 000030b8: PUSH1 0x40 000030ba: SHL 000030bb: SUB 000030bc: DUP3 000030bd: GT 000030be: ISZERO 000030bf: PUSH2 0x30c6 000030c2: JUMPI 000030c3: DUP3 000030c4: DUP4 000030c5: REVERT 000030c6: JUMPDEST 000030c7: PUSH1 0x20 000030c9: ADD 000030ca: SWAP2 000030cb: POP 000030cc: CALLDATASIZE 000030cd: DUP2 000030ce: SWAP1 000030cf: SUB 000030d0: DUP3 000030d1: SGT 000030d2: ISZERO 000030d3: PUSH2 0x2503 000030d6: JUMPI 000030d7: PUSH1 0x00 000030d9: DUP1 000030da: REVERT 000030db: JUMPDEST 000030dc: PUSH1 0x00 000030de: JUMPDEST 000030df: DUP4 000030e0: DUP2 000030e1: LT 000030e2: ISZERO 000030e3: PUSH2 0x30f6 000030e6: JUMPI 000030e7: DUP2 000030e8: DUP2 000030e9: ADD 000030ea: MLOAD 000030eb: DUP4 000030ec: DUP3 000030ed: ADD 000030ee: MSTORE 000030ef: PUSH1 0x20 000030f1: ADD 000030f2: PUSH2 0x30de 000030f5: JUMP 000030f6: JUMPDEST 000030f7: DUP4 000030f8: DUP2 000030f9: GT 000030fa: ISZERO 000030fb: PUSH2 0x3105 000030fe: JUMPI 000030ff: PUSH1 0x00 00003101: DUP5 00003102: DUP5 00003103: ADD 00003104: MSTORE 00003105: JUMPDEST 00003106: POP 00003107: POP 00003108: POP 00003109: POP 0000310a: JUMP 0000310b: JUMPDEST 0000310c: PUSH1 0x01 0000310e: PUSH1 0x01 00003110: PUSH1 0xa0 00003112: SHL 00003113: SUB 00003114: DUP2 00003115: AND 00003116: DUP2 00003117: EQ 00003118: PUSH2 0x22e8 0000311b: JUMPI 0000311c: PUSH1 0x00 0000311e: DUP1 0000311f: REVERT 00003120: JUMPDEST 00003121: DUP1 00003122: ISZERO 00003123: ISZERO 00003124: DUP2 00003125: EQ 00003126: PUSH2 0x22e8 00003129: JUMPI 0000312a: PUSH1 0x00 0000312c: DUP1 0000312d: REVERT 0000312e: JUMPDEST 0000312f: PUSH1 0x02 00003131: DUP2 00003132: LT 00003133: PUSH2 0x22e8 00003136: JUMPI 00003137: PUSH1 0x00 00003139: DUP1 0000313a: REVERT 0000313b: INVALID 0000313c: LOG2 0000313d: PUSH5 0x6970667358 00003143: UNKNOWN(0x22) 00003144: SLT 00003145: KECCAK256 00003146: UNKNOWN(0xCA) 00003147: GASPRICE 00003148: PUSH21 0x557c979baf917473dc22321c4d9527653be91e030a 0000315e: UNKNOWN(0xCA) 0000315f: UNKNOWN(0xD3) 00003160: UNKNOWN(0xAB) 00003161: PUSH28
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x2dd0d8bd9961fb4009b3b2618546542c2025e1dc65c8fb8fc9377a5ba633410a
call_targets:
0x00c3d7da14c49e73ab4a3a15e169591ddaf9d75a
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x2dd0d8bd9961fb4009b3b2618546542c2025e1dc65c8fb8fc9377a5ba633410a",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x00c3d7da14c49e73ab4a3a15e169591ddaf9d75a"
],
"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": "0xdd7c5e54",
"selector": "0xdd7c5e54",
"calldata_variants": [
"0xdd7c5e54",
"0xdd7c5e540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xecc7ccbd",
"selector": "0xecc7ccbd",
"calldata_variants": [
"0xecc7ccbd",
"0xecc7ccbd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5ac6319",
"selector": "0xf5ac6319",
"calldata_variants": [
"0xf5ac6319",
"0xf5ac63190000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf640d508",
"selector": "0xf640d508",
"calldata_variants": [
"0xf640d508",
"0xf640d5080000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcb99728a",
"selector": "0xcb99728a",
"calldata_variants": [
"0xcb99728a",
"0xcb99728a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcd7f6315",
"selector": "0xcd7f6315",
"calldata_variants": [
"0xcd7f6315",
"0xcd7f63150000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcfed1970",
"selector": "0xcfed1970",
"calldata_variants": [
"0xcfed1970",
"0xcfed19700000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2422,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5135,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8506,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x2dd0d8bd9961fb4009b3b2618546542c2025e1dc65c8fb8fc9377a5ba633410a
call_targets:
0x00c3d7da14c49e73ab4a3a15e169591ddaf9d75a
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x2dd0d8bd9961fb4009b3b2618546542c2025e1dc65c8fb8fc9377a5ba633410a",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x00c3d7da14c49e73ab4a3a15e169591ddaf9d75a"
],
"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": "0xdd7c5e54",
"selector": "0xdd7c5e54",
"calldata_variants": [
"0xdd7c5e54",
"0xdd7c5e540000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xecc7ccbd",
"selector": "0xecc7ccbd",
"calldata_variants": [
"0xecc7ccbd",
"0xecc7ccbd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5ac6319",
"selector": "0xf5ac6319",
"calldata_variants": [
"0xf5ac6319",
"0xf5ac63190000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf640d508",
"selector": "0xf640d508",
"calldata_variants": [
"0xf640d508",
"0xf640d5080000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcb99728a",
"selector": "0xcb99728a",
"calldata_variants": [
"0xcb99728a",
"0xcb99728a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcd7f6315",
"selector": "0xcd7f6315",
"calldata_variants": [
"0xcd7f6315",
"0xcd7f63150000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcfed1970",
"selector": "0xcfed1970",
"calldata_variants": [
"0xcfed1970",
"0xcfed19700000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2422,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5135,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8506,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 9
}
|