a831cc82-3332-44dc-a8fb-dcf51c8ffe78
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 |
|---|---|---|---|---|
| 30263 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 73762 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 73763 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 73764 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 73765 | capability.graph | complete | 1 / 3 | 1 week ago |
| 73766 | detector.run | complete | 1 / 3 | 1 week ago |
| 73767 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:554559] OpenAI Codex v0.77.0 (research preview)
[codex:554559] --------
[codex:554559] workdir: /tmp/codex-multi-0tr2yh_g
[codex:554559] model: gpt-5.2-codex
[codex:554559] provider: openai
[codex:554559] approval: never
[codex:554559] sandbox: read-only
[codex:554559] reasoning effort: xhigh
[codex:554559] reasoning summaries: auto
[codex:554559] session id: 019b62a6-b12c-7023-8f27-ee57d0015ad9
[codex:554559] --------
[codex:554559] user
[codex:554559] You are a security auditor. You are given EVM runtime bytecode (and possibly a disassembly) for a contract with NO verified source.
[codex:554559] This is best-effort. Do not hallucinate: only flag issues when there's a concrete, explainable angle from bytecode/disasm patterns.
[codex:554559]
[codex:554559] You MUST read the full `BYTECODE_BUNDLE.txt` before concluding.
[codex:554559]
[codex:554559] Output MUST be valid JSON matching the provided schema.
[codex:554559] - If you cannot identify a concrete issue from bytecode/disasm alone: set no_findings=true and findings=[].
[codex:554559] - Otherwise: include findings with severity/category/title/evidence and point locations to BYTECODE_BUNDLE.txt line ranges when possible.
[codex:554559]
[codex:554559] Output constraints (IMPORTANT):
[codex:554559] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:554559] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:554559] mcp startup: no servers
[codex:554559]
[codex:554559] thinking
[codex:554559] **Preparing to read BYTECODE_BUNDLE.txt**
[codex:554559] exec
[codex:554559] /bin/bash -lc ls in /tmp/codex-multi-0tr2yh_g succeeded in 6ms:
[codex:554559] BYTECODE_BUNDLE.txt
[codex:554559] codex-output-schema.json
[codex:554559] exec
[codex:554559] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-0tr2yh_g succeeded in 5ms:
[codex:554559] Runtime bytecode bundle for best-effort auditing.
[codex:554559] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:554559]
[codex:554559] FILE: runtime_bytecode.hex
[codex:554559] 0x6080604052600436106100955760003560e01c80639d118770116100595780639d11877014610345578063a7b8e68814610365578063d292572314610378578063d69ea74d1461038b578063fa461e33146103b457610114565b806310c117ab146102d757806323a69e75146102ea5780632768b07e1461030a5780635c19a95c1461031d5780637c04575b1461033057610114565b36610114573360008051602061291e833981519152146101125760008051602061291e8339815191526001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156100f857600080fd5b505af115801561010c573d6000803e3d6000fd5b50505050505b005b61011c6103d4565b60008060405160016000823780519250600a600182375190506001600160b01b03198116156101bd57426101516001436123d2565b4060405160200161016c929190918252602082015260400190565b604051602081830303815290604052805190602001206001600160b01b031916816001600160b01b031916146101bd5760405162461bcd60e51b81526004016101b4906123eb565b60405180910390fd5b600160f91b6001600160f81b03198316908111159015806101eb5750600360f81b6001600160f81b03198416145b156101f957610112816104c7565b600560f81b6001600160f81b031984161161027157610217816105c5565b600160f91b6001600160f81b0319841614806102405750600560f81b6001600160f81b03198416145b156101125760405141903480156108fc02916000818181858888f19350505050158015610112573d6000803e3d6000fd5b6001600160f81b03198316600360f91b0361028e57610112610697565b610296610912565b6001600160f81b03198316600160fb1b036101125760405141903480156108fc02916000818181858888f19350505050158015610112573d6000803e3d6000fd5b6101126102e5366004612485565b610b66565b3480156102f657600080fd5b506101126103053660046124eb565b610c7a565b610112610318366004612485565b610c88565b61011261032b36600461253e565b610e24565b34801561033c57600080fd5b50610112610e5e565b34801561035157600080fd5b50610112610360366004612559565b610e71565b610112610373366004612584565b610f7c565b610112610386366004612606565b6110a9565b61039e61039936600461265a565b6112ae565b6040516103ab91906126ec565b60405180910390f35b3480156103c057600080fd5b506101126103cf3660046124eb565b6113c0565b6104c573a6ae57b1da8238cd149bc718c40578e4620b752c33148061040c57507326ce7c1976c5eec83ea6ac22d83cb341b08850af33145b8061042a575073b58555fcba6479fced7de1485eb054943a09af7b33145b80610448575073b7ab1de5b259a880c4bb5451bdbe6f80f379853833145b806104665750734f80b2cd1f550f81581c15f690bdd623f3824c8633145b806104845750735b5001c4f80f33ec93b891062ed2e1d0acc05bb633145b806104a257507352b86a86e4d764e8275391c436127e60340a0e6a33145b806104c057507341d3ab85aafed2ef9e644cb7d3bbca2fc4d8cac833145b6113ce565b565b600080600080600080604051603b600b8237600c8103519650601481015160f81c60021b601582015160e01c80821b945050506019810151955060398101519450603a81015191505061052560008051602061291e83398151915290565b925086156105505761054b6104c0878585896001600160f81b03198a1615156000611476565b6105bc565b6000806040516016604682378051601490910151909250905086610586868a876001600160f81b03198b161515600088886114bc565b10156105b95760405162461bcd60e51b8152602060048201526002602482015261463160f01b60448201526064016101b4565b50505b50505050505050565b6000806000806000604051604e600b8237600c81035195506008810151945060288101519350604881015160f81c60021b604982015160e01c80821b94505050604d8101519150508515610635576106306104c0858786866001600160f81b03198716156000611476565b61068f565b6000806040516003605982378051600190910151909250905061068c846106858989896001600160f81b0319891615156000736015551cd911ff4685072e2793f56c841e3ab66160611b896114bc565b10156113ce565b50505b505050505050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152600080600080600060405160bb600b8237805160f81c6002600182180660208a015260018160011c16955060018160021c1696508060031c60a0890152506001600160a01b03600b8203511688526001600160a01b0360098201511687526001600160a01b03601d820151166020880152603d81015160f81c60021b603e82015160e01c80821b60808b015250506042810151604088015260628101519250608281015191506083810151935060858101516060890152608781015160808801526001600160a01b03609b820151166060880152506107de60008051602061291e83398151915290565b6001600160a01b0316604088015250821561083157806107fe87876115a1565b10156106305760405162461bcd60e51b8152602060048201526002602482015261533160f01b60448201526064016101b4565b85602001511561088f5761085986600001518760400151886080015185888a60000151611476565b61088a5760405162461bcd60e51b8152602060048201526002602482015261299960f11b60448201526064016101b4565b6108f0565b816108bd876040015188600001518960800151888a600001518b6020015160601b8d6060015160f01b6114bc565b10156108f05760405162461bcd60e51b8152602060048201526002602482015261533360f01b60448201526064016101b4565b61068f6104c0866000015187602001518860400151858a60a001516000611476565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152600080600080600060405160bb600b8237805160f81c6002600182180660208a015260018160011c16955060018160021c1696508060031c60a0890152506001600160a01b03600b8203511688526001600160a01b0360098201511687526001600160a01b03601d8201511660408901526001600160a01b03603182015116602088015260518101516080890152607181015193506091810151604088015260b181015160f81c60021b60b282015160e01c80821b9450505060b6810151915060998101516060890152609b810151608088015250610a5960008051602061291e83398151915290565b6001600160a01b03166060870152508215610aac5780610a7987876115a1565b10156106305760405162461bcd60e51b8152602060048201526002602482015261453160f01b60448201526064016101b4565b856020015115610b0557610ad486600001518760400151886080015185888a60000151611476565b61088a5760405162461bcd60e51b8152602060048201526002602482015261229960f11b60448201526064016101b4565b81610b33876040015188600001518960800151888a600001518b6020015160601b8d6060015160f01b6114bc565b10156108f05760405162461bcd60e51b8152602060048201526002602482015261453360f01b60448201526064016101b4565b610b6e611748565b610b7b60208201826126ff565b6001600160b01b03191615610c075742610b966001436123d2565b40604051602001610bb1929190918252602082015260400190565b60408051601f1981840301815291905280516020918201206001600160b01b03191690610be0908301836126ff565b6001600160b01b03191614610c075760405162461bcd60e51b81526004016101b4906123eb565b604051633095c05760e01b81526001600160a01b03851690633095c05790610c359086908690600401612752565b600060405180830381600087803b158015610c4f57600080fd5b505af1158015610c63573d6000803e3d6000fd5b50505050610c7481602001356117a2565b50505050565b610c74848484846001611909565b610c90611748565b610c9d60208201826126ff565b6001600160b01b03191615610d295742610cb86001436123d2565b40604051602001610cd3929190918252602082015260400190565b60408051601f1981840301815291905280516020918201206001600160b01b03191690610d02908301836126ff565b6001600160b01b03191614610d295760405162461bcd60e51b81526004016101b4906123eb565b6040516370a0823160e01b815230600482015260009060008051602061291e833981519152906370a0823190602401602060405180830381865afa158015610d75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d99919061276e565b9050610db860008051602061291e833981519152868460200135611d5d565b604051633095c05760e01b81526001600160a01b03861690633095c05790610de69087908790600401612752565b600060405180830381600087803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b5050506000919091555050505050565b610e2c6103d4565b6040516024360380602483376000808284865af43d9150816000843e808015610e53578284f35b8284fd5b5050505050565b610e66611e87565b600160008190558055565b610e796103d4565b8015610f7957604051632e1a7d4d60e01b81526004810182905260008051602061291e83398151915290632e1a7d4d90602401600060405180830381600087803b158015610ec657600080fd5b505af1158015610eda573d6000803e3d6000fd5b5050604080516000808252602082019283905293503392508491610efe919061279d565b60006040518083038185875af1925050503d8060008114610f3b576040519150601f19603f3d011682016040523d82523d6000602084013e610f40565b606091505b5050905080610f775760405162461bcd60e51b815260206004820152600360248201526244455360e81b60448201526064016101b4565b505b33ff5b610f84611e87565b610f9160208601866126ff565b6001600160b01b0319161561101d5742610fac6001436123d2565b40604051602001610fc7929190918252602082015260400190565b60408051601f1981840301815291905280516020918201206001600160b01b03191690610ff6908701876126ff565b6001600160b01b0319161461101d5760405162461bcd60e51b81526004016101b4906123eb565b61102d604086016020870161253e565b6001600160a01b031663dcb698ab34868686866040518663ffffffff1660e01b815260040161105f94939291906127b9565b6000604051808303818588803b15801561107857600080fd5b505af115801561108c573d6000803e3d6000fd5b505050505061109e8560400135611fd0565b505060018055505050565b6110b1611e87565b341580156110c157506001546001145b6110f35760405162461bcd60e51b81526020600482015260036024820152622b2b2b60e91b60448201526064016101b4565b61110060208401846126ff565b6001600160b01b0319161561118c574261111b6001436123d2565b40604051602001611136929190918252602082015260400190565b60408051601f1981840301815291905280516020918201206001600160b01b03191690611165908501856126ff565b6001600160b01b0319161461118c5760405162461bcd60e51b81526004016101b4906123eb565b6040516370a0823160e01b815230600482015260009060008051602061291e833981519152906370a0823190602401602060405180830381865afa1580156111d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fc919061276e565b90506040840135156112345761123460008051602061291e83398151915261122a604087016020880161253e565b8660400135611d5d565b611244604085016020860161253e565b6001600160a01b03166307a1018e84846040518363ffffffff1660e01b8152600401611271929190612752565b600060405180830381600087803b15801561128b57600080fd5b505af115801561129f573d6000803e3d6000fd5b50505060019190915550505050565b60606112b8611e87565b83156112d7576112d760008051602061291e8339815191528686611d5d565b600080866001600160a01b03163486866040516112f59291906127eb565b60006040518083038185875af1925050503d8060008114611332576040519150601f19603f3d011682016040523d82523d6000602084013e611337565b606091505b5091509150816113b6576044815110156113835760405162461bcd60e51b815260206004820152600d60248201526c1cda5b195b9d081c995d995c9d609a1b60448201526064016101b4565b6004810190508080602001905181019061139d91906127fb565b60405162461bcd60e51b81526004016101b491906126ec565b9695505050505050565b610c74848484846000611909565b806114735760408051630570923880825263ae1247208201909252600090826020820163ae1247008036833701905050905060005b61140e83600161289d565b811015610c745761141f81436123d2565b6040805191406020830152016040516020818303038152906040528051906020012060001c828281518110611456576114566128b0565b60209081029190910101528061146b816128c6565b915050611403565b50565b60006114838688876120fd565b156114af5782156114a25761149b846000898561214a565b90506113b6565b61149b600085898561214a565b5060009695505050505050565b600060606000806114cc8b6121b3565b915091508015611522576040516001600160f01b0319861660208201526001600160601b0319871660228201526001600160f81b0319831660368201526037016040516020818303038152906040529250611566565b6040516001600160f01b0319861660208201526001600160601b0319808816602283015260608d901b166036820152604a0160405160208183030381529060405292505b6000806115768c8a8c8e896121f2565b91509150896115855781611587565b805b611590906128df565b9d9c50505050505050505050505050565b600060606000806115b585602001516121b3565b9150915080156116665760208087015187516040808a01516080808c01516060808e0151928d01518d820151955197151560f81b988801989098526001600160601b031995811b8616602188015292831b8516603587015260498601526001600160f01b031960f091821b8116606987015295901b909416606b84015290921b909116606d8201526001600160f81b031983166081820152608201604051602081830303815290604052925061170b565b60208087015187516040808a01516080808c01516060808e0151928d01518d8201518e8a0151965198151560f81b998901999099526001600160601b031996821b8716602189015293811b8616603588015260498701919091526001600160f01b031960f092831b811660698801529290911b909116606b85015293841b8216606d84015290921b909116608182015260950160405160208183030381529060405292505b505060008061172a856000015160008760a001518860400151876121f2565b915091508460a0015161173d578161173f565b805b6113b6906128df565b6104c573fac983fce7ef3cee8ffb2ceb967e1b2362aada003314806117805750730811fd1808e14f0b93f0514313965a5f142c553933145b806104c0575073681535922425a4264b3670d9430afc6dc4de103e33146113ce565b34156117d65760405141903480156108fc02916000818181858888f193505050501580156117d4573d6000803e3d6000fd5b505b60005468056bc75e2d6310000081116118175760405162461bcd60e51b81526020600482015260036024820152624c4f5760e81b60448201526064016101b4565b6040516370a0823160e01b815230600482015260009060008051602061291e833981519152906370a0823190602401602060405180830381865afa158015611863573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611887919061276e565b90508261189434836123d2565b116118c65760405162461bcd60e51b8152602060048201526002602482015261282360f11b60448201526064016101b4565b816118d134836123d2565b116119045760405162461bcd60e51b81526020600482015260036024820152622829a360e91b60448201526064016101b4565b505050565b6119116122ca565b60008513806119205750600084135b6119515760405162461bcd60e51b8152602060048201526002602482015261043360f41b60448201526064016101b4565b81601681116119875760405162461bcd60e51b8152602060048201526002602482015261433960f01b60448201526064016101b4565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152602a821160008080808085611a0057604051602a6084823761ffff601e820351169250600a810351935088601781146119f157600a82015195506119f9565b601682015192505b5050611a7c565b604051607560848237601f81035188526001600160a01b03600b8203511660208901526001600160a01b036009820151166040890152602981015160608901526049810151608089015261ffff602d820151169250604181015193508860628114611a715760558201519550611a79565b606182015192505b50505b6001600160a01b038416611a9c5760008051602061291e83398151915293505b600080846001600160a01b0316866001600160a01b031610611abf578486611ac2565b85855b915091508a611ae8577307e610c722b66148d8c6b92967c99cd1ba8c7e6160621b611b01565b7341ff9aa7e16b8b1a8a8dc4f0efacd93d02d071c960601b5b604080516001600160a01b03808616602083015284169181019190915262ffffff86166060820152608001604051602081830303815290604052805190602001208c611b6d577fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54611b8f565b7f6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e25b6040516001600160f81b031960208201526001600160601b03199093166021840152603583019190915260558201526075016040516020818303038152906040528051906020012060001c965050505050506000808b13611bf05789611bf2565b8a5b9050336001600160a01b03841614611c315760405162461bcd60e51b81526020600482015260026024820152613a2960f01b60448201526064016101b4565b8315611d1457845115611ca657611c7085602001518660400151876060015184866001600160a01b03168a604001516001600160a01b03161188611476565b611ca15760405162461bcd60e51b8152602060048201526002602482015261219960f11b60448201526064016101b4565b611d50565b80611ce1866040015187602001518860600151866001600160a01b03168a604001516001600160a01b031610888860601b8c608001516114bc565b1015611ca15760405162461bcd60e51b8152602060048201526002602482015261433360f01b60448201526064016101b4565b611d1f8284836120fd565b611d505760405162461bcd60e51b815260206004820152600260248201526110cd60f21b60448201526064016101b4565b5050505050505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691611db9919061279d565b6000604051808303816000865af19150503d8060008114611df6576040519150601f19603f3d011682016040523d82523d6000602084013e611dfb565b606091505b5091509150818015611e25575080511580611e25575080806020019051810190611e2591906128fb565b610e575760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b60648201526084016101b4565b6104c573a6ae57b1da8238cd149bc718c40578e4620b752c331480611ebf57507326ce7c1976c5eec83ea6ac22d83cb341b08850af33145b80611edd575073b58555fcba6479fced7de1485eb054943a09af7b33145b80611efb575073b7ab1de5b259a880c4bb5451bdbe6f80f379853833145b80611f195750734f80b2cd1f550f81581c15f690bdd623f3824c8633145b80611f375750735b5001c4f80f33ec93b891062ed2e1d0acc05bb633145b80611f5557507352b86a86e4d764e8275391c436127e60340a0e6a33145b80611f7357507341d3ab85aafed2ef9e644cb7d3bbca2fc4d8cac833145b80611f91575073fac983fce7ef3cee8ffb2ceb967e1b2362aada0033145b806117805750730811fd1808e14f0b93f0514313965a5f142c55393314806104c0575073681535922425a4264b3670d9430afc6dc4de103e33146113ce565b6040516370a0823160e01b815230600482015260009060008051602061291e833981519152906370a0823190602401602060405180830381865afa15801561201c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612040919061276e565b90503481116120765760405162461bcd60e51b815260206004820152600260248201526127a360f11b60448201526064016101b4565b61208034826123d2565b6001549091508082116120bb5760405162461bcd60e51b81526020600482015260036024820152622829a360e91b60448201526064016101b4565b60006120c782846123d2565b9050838111610c745760405162461bcd60e51b8152602060048201526002602482015261282360f11b60448201526064016101b4565b60008160000361210f57506001612143565b60405163a9059cbb60e01b81526001600160a01b03841660048201528260248201526020816044836000895af19051935090505b9392505050565b600060405163022c0d9f60e01b815285600482015284602482015282600081146121795783604483015261218f565b6e3b3cc22af3ae1eac0440bcee416b4060448301525b50608060648201526000608482015260208160a4836000885af19695505050505050565b60008073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc1196001600160a01b038416016121e75750600092600192509050565b506000928392509050565b6000806000856122165773fffd8963efd1fc6a506488495d951d5263988d2561221d565b6401000276a45b9050604051630251596160e31b8152876000811461224057886004830152612256565b6e3b3cc22af3ae1eac0440bcee416b4060048301525b5086602482015285604482015281606482015260a0608482015284518060a483015260005b8181101561229857602081880181015160c485840101520161227b565b506040828260c4018460008e5af19050806122b257600080fd5b50805193506020810151925050509550959350505050565b73b58555fcba6479fced7de1485eb054943a09af7b3214806122ff575073b7ab1de5b259a880c4bb5451bdbe6f80f379853832145b8061231d5750734f80b2cd1f550f81581c15f690bdd623f3824c8632145b8061233b5750735b5001c4f80f33ec93b891062ed2e1d0acc05bb632145b80612359575073a6ae57b1da8238cd149bc718c40578e4620b752c32145b8061237757507326ce7c1976c5eec83ea6ac22d83cb341b08850af32145b8061239557507352b86a86e4d764e8275391c436127e60340a0e6a32145b806123b357507341d3ab85aafed2ef9e644cb7d3bbca2fc4d8cac832145b6104c557600080fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156123e5576123e56123bc565b92915050565b60208082526003908201526211111160ea1b604082015260600190565b80356001600160a01b038116811461241f57600080fd5b919050565b60008083601f84011261243657600080fd5b50813567ffffffffffffffff81111561244e57600080fd5b60208301915083602082850101111561246657600080fd5b9250929050565b60006040828403121561247f57600080fd5b50919050565b6000806000806080858703121561249b57600080fd5b6124a485612408565b9350602085013567ffffffffffffffff8111156124c057600080fd5b6124cc87828801612424565b90945092506124e09050866040870161246d565b905092959194509250565b6000806000806060858703121561250157600080fd5b8435935060208501359250604085013567ffffffffffffffff81111561252657600080fd5b61253287828801612424565b95989497509550505050565b60006020828403121561255057600080fd5b61214382612408565b60006020828403121561256b57600080fd5b5035919050565b60006060828403121561247f57600080fd5b600080600080600060a0868803121561259c57600080fd5b6125a68787612572565b9450606086013567ffffffffffffffff808211156125c357600080fd5b6125cf89838a01612424565b909650945060808801359150808211156125e857600080fd5b506125f588828901612424565b969995985093965092949392505050565b60008060006080848603121561261b57600080fd5b6126258585612572565b9250606084013567ffffffffffffffff81111561264157600080fd5b61264d86828701612424565b9497909650939450505050565b6000806000806060858703121561267057600080fd5b61267985612408565b935060208501359250604085013567ffffffffffffffff81111561252657600080fd5b60005b838110156126b757818101518382015260200161269f565b50506000910152565b600081518084526126d881602086016020860161269c565b601f01601f19169290920160200192915050565b60208152600061214360208301846126c0565b60006020828403121561271157600080fd5b81356001600160b01b03198116811461214357600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000612766602083018486612729565b949350505050565b60006020828403121561278057600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b600082516127af81846020870161269c565b9190910192915050565b6040815260006127cd604083018688612729565b82810360208401526127e0818587612729565b979650505050505050565b8183823760009101908152919050565b60006020828403121561280d57600080fd5b815167ffffffffffffffff8082111561282557600080fd5b818401915084601f83011261283957600080fd5b81518181111561284b5761284b612787565b604051601f8201601f19908116603f0116810190838211818310171561287357612873612787565b8160405282815287602084870101111561288c57600080fd5b6127e083602083016020880161269c565b808201808211156123e5576123e56123bc565b634e487b7160e01b600052603260045260246000fd5b6000600182016128d8576128d86123bc565b5060010190565b6000600160ff1b82016128f4576128f46123bc565b5060000390565b60006020828403121561290d57600080fd5b8151801515811461214357600080fdfe000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2a26469706673582212208d561e0fe331ae5fff679df5a3e8dfeb4aa22ef9fce6aa6bd87abf72baf8010364736f6c63430008130033
[codex:554559]
[codex:554559] thinking
[codex:554559] **Extracting JSON schema structure**
[codex:554559] exec
[codex:554559] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-0tr2yh_g succeeded in 5ms:
[codex:554559] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:554559]
[codex:554559] thinking
[codex:554559] **Analyzing bytecode for vulnerabilities**
[codex:554559] exec
[codex:554559] /bin/bash -lc 'nl -ba BYTECODE_BUNDLE.txt' in /tmp/codex-multi-0tr2yh_g succeeded in 5ms:
[codex:554559] 1 Runtime bytecode bundle for best-effort auditing.
[codex:554559] 2 Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:554559] 3
[codex:554559] 4 FILE: runtime_bytecode.hex
[codex:554559] 5 0x6080604052600436106100955760003560e01c80639d118770116100595780639d11877014610345578063a7b8e68814610365578063d292572314610378578063d69ea74d1461038b578063fa461e33146103b457610114565b806310c117ab146102d757806323a69e75146102ea5780632768b07e1461030a5780635c19a95c1461031d5780637c04575b1461033057610114565b36610114573360008051602061291e833981519152146101125760008051602061291e8339815191526001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b1580156100f857600080fd5b505af115801561010c573d6000803e3d6000fd5b50505050505b005b61011c6103d4565b60008060405160016000823780519250600a600182375190506001600160b01b03198116156101bd57426101516001436123d2565b4060405160200161016c929190918252602082015260400190565b604051602081830303815290604052805190602001206001600160b01b031916816001600160b01b031916146101bd5760405162461bcd60e51b81526004016101b4906123eb565b60405180910390fd5b600160f91b6001600160f81b03198316908111159015806101eb5750600360f81b6001600160f81b03198416145b156101f957610112816104c7565b600560f81b6001600160f81b031984161161027157610217816105c5565b600160f91b6001600160f81b0319841614806102405750600560f81b6001600160f81b03198416145b156101125760405141903480156108fc02916000818181858888f19350505050158015610112573d6000803e3d6000fd5b6001600160f81b03198316600360f91b0361028e57610112610697565b610296610912565b6001600160f81b03198316600160fb1b036101125760405141903480156108fc02916000818181858888f19350505050158015610112573d6000803e3d6000fd5b6101126102e5366004612485565b610b66565b3480156102f657600080fd5b506101126103053660046124eb565b610c7a565b610112610318366004612485565b610c88565b61011261032b36600461253e565b610e24565b34801561033c57600080fd5b50610112610e5e565b34801561035157600080fd5b50610112610360366004612559565b610e71565b610112610373366004612584565b610f7c565b610112610386366004612606565b6110a9565b61039e61039936600461265a565b6112ae565b6040516103ab91906126ec565b60405180910390f35b3480156103c057600080fd5b506101126103cf3660046124eb565b6113c0565b6104c573a6ae57b1da8238cd149bc718c40578e4620b752c33148061040c57507326ce7c1976c5eec83ea6ac22d83cb341b08850af33145b8061042a575073b58555fcba6479fced7de1485eb054943a09af7b33145b80610448575073b7ab1de5b259a880c4bb5451bdbe6f80f379853833145b806104665750734f80b2cd1f550f81581c15f690bdd623f3824c8633145b806104845750735b5001c4f80f33ec93b891062ed2e1d0acc05bb633145b806104a257507352b86a86e4d764e8275391c436127e60340a0e6a33145b806104c057507341d3ab85aafed2ef9e644cb7d3bbca2fc4d8cac833145b6113ce565b565b600080600080600080604051603b600b8237600c8103519650601481015160f81c60021b601582015160e01c80821b945050506019810151955060398101519450603a81015191505061052560008051602061291e83398151915290565b925086156105505761054b6104c0878585896001600160f81b03198a1615156000611476565b6105bc565b6000806040516016604682378051601490910151909250905086610586868a876001600160f81b03198b161515600088886114bc565b10156105b95760405162461bcd60e51b8152602060048201526002602482015261463160f01b60448201526064016101b4565b50505b50505050505050565b6000806000806000604051604e600b8237600c81035195506008810151945060288101519350604881015160f81c60021b604982015160e01c80821b94505050604d8101519150508515610635576106306104c0858786866001600160f81b03198716156000611476565b61068f565b6000806040516003605982378051600190910151909250905061068c846106858989896001600160f81b0319891615156000736015551cd911ff4685072e2793f56c841e3ab66160611b896114bc565b10156113ce565b50505b505050505050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152600080600080600060405160bb600b8237805160f81c6002600182180660208a015260018160011c16955060018160021c1696508060031c60a0890152506001600160a01b03600b8203511688526001600160a01b0360098201511687526001600160a01b03601d820151166020880152603d81015160f81c60021b603e82015160e01c80821b60808b015250506042810151604088015260628101519250608281015191506083810151935060858101516060890152608781015160808801526001600160a01b03609b820151166060880152506107de60008051602061291e83398151915290565b6001600160a01b0316604088015250821561083157806107fe87876115a1565b10156106305760405162461bcd60e51b8152602060048201526002602482015261533160f01b60448201526064016101b4565b85602001511561088f5761085986600001518760400151886080015185888a60000151611476565b61088a5760405162461bcd60e51b8152602060048201526002602482015261299960f11b60448201526064016101b4565b6108f0565b816108bd876040015188600001518960800151888a600001518b6020015160601b8d6060015160f01b6114bc565b10156108f05760405162461bcd60e51b8152602060048201526002602482015261533360f01b60448201526064016101b4565b61068f6104c0866000015187602001518860400151858a60a001516000611476565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152600080600080600060405160bb600b8237805160f81c6002600182180660208a015260018160011c16955060018160021c1696508060031c60a0890152506001600160a01b03600b8203511688526001600160a01b0360098201511687526001600160a01b03601d8201511660408901526001600160a01b03603182015116602088015260518101516080890152607181015193506091810151604088015260b181015160f81c60021b60b282015160e01c80821b9450505060b6810151915060998101516060890152609b810151608088015250610a5960008051602061291e83398151915290565b6001600160a01b03166060870152508215610aac5780610a7987876115a1565b10156106305760405162461bcd60e51b8152602060048201526002602482015261453160f01b60448201526064016101b4565b856020015115610b0557610ad486600001518760400151886080015185888a60000151611476565b61088a5760405162461bcd60e51b8152602060048201526002602482015261229960f11b60448201526064016101b4565b81610b33876040015188600001518960800151888a600001518b6020015160601b8d6060015160f01b6114bc565b10156108f05760405162461bcd60e51b8152602060048201526002602482015261453360f01b60448201526064016101b4565b610b6e611748565b610b7b60208201826126ff565b6001600160b01b03191615610c075742610b966001436123d2565b40604051602001610bb1929190918252602082015260400190565b60408051601f1981840301815291905280516020918201206001600160b01b03191690610be0908301836126ff565b6001600160b01b03191614610c075760405162461bcd60e51b81526004016101b4906123eb565b604051633095c05760e01b81526001600160a01b03851690633095c05790610c359086908690600401612752565b600060405180830381600087803b158015610c4f57600080fd5b505af1158015610c63573d6000803e3d6000fd5b50505050610c7481602001356117a2565b50505050565b610c74848484846001611909565b610c90611748565b610c9d60208201826126ff565b6001600160b01b03191615610d295742610cb86001436123d2565b40604051602001610cd3929190918252602082015260400190565b60408051601f1981840301815291905280516020918201206001600160b01b03191690610d02908301836126ff565b6001600160b01b03191614610d295760405162461bcd60e51b81526004016101b4906123eb565b6040516370a0823160e01b815230600482015260009060008051602061291e833981519152906370a0823190602401602060405180830381865afa158015610d75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d99919061276e565b9050610db860008051602061291e833981519152868460200135611d5d565b604051633095c05760e01b81526001600160a01b03861690633095c05790610de69087908790600401612752565b600060405180830381600087803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b5050506000919091555050505050565b610e2c6103d4565b6040516024360380602483376000808284865af43d9150816000843e808015610e53578284f35b8284fd5b5050505050565b610e66611e87565b600160008190558055565b610e796103d4565b8015610f7957604051632e1a7d4d60e01b81526004810182905260008051602061291e83398151915290632e1a7d4d90602401600060405180830381600087803b158015610ec657600080fd5b505af1158015610eda573d6000803e3d6000fd5b5050604080516000808252602082019283905293503392508491610efe919061279d565b60006040518083038185875af1925050503d8060008114610f3b576040519150601f19603f3d011682016040523d82523d6000602084013e610f40565b606091505b5050905080610f775760405162461bcd60e51b815260206004820152600360248201526244455360e81b60448201526064016101b4565b505b33ff5b610f84611e87565b610f9160208601866126ff565b6001600160b01b0319161561101d5742610fac6001436123d2565b40604051602001610fc7929190918252602082015260400190565b60408051601f1981840301815291905280516020918201206001600160b01b03191690610ff6908701876126ff565b6001600160b01b0319161461101d5760405162461bcd60e51b81526004016101b4906123eb565b61102d604086016020870161253e565b6001600160a01b031663dcb698ab34868686866040518663ffffffff1660e01b815260040161105f94939291906127b9565b6000604051808303818588803b15801561107857600080fd5b505af115801561108c573d6000803e3d6000fd5b505050505061109e8560400135611fd0565b505060018055505050565b6110b1611e87565b341580156110c157506001546001145b6110f35760405162461bcd60e51b81526020600482015260036024820152622b2b2b60e91b60448201526064016101b4565b61110060208401846126ff565b6001600160b01b0319161561118c574261111b6001436123d2565b40604051602001611136929190918252602082015260400190565b60408051601f1981840301815291905280516020918201206001600160b01b03191690611165908501856126ff565b6001600160b01b0319161461118c5760405162461bcd60e51b81526004016101b4906123eb565b6040516370a0823160e01b815230600482015260009060008051602061291e833981519152906370a0823190602401602060405180830381865afa1580156111d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fc919061276e565b90506040840135156112345761123460008051602061291e83398151915261122a604087016020880161253e565b8660400135611d5d565b611244604085016020860161253e565b6001600160a01b03166307a1018e84846040518363ffffffff1660e01b8152600401611271929190612752565b600060405180830381600087803b15801561128b57600080fd5b505af115801561129f573d6000803e3d6000fd5b50505060019190915550505050565b60606112b8611e87565b83156112d7576112d760008051602061291e8339815191528686611d5d565b600080866001600160a01b03163486866040516112f59291906127eb565b60006040518083038185875af1925050503d8060008114611332576040519150601f19603f3d011682016040523d82523d6000602084013e611337565b606091505b5091509150816113b6576044815110156113835760405162461bcd60e51b815260206004820152600d60248201526c1cda5b195b9d081c995d995c9d609a1b60448201526064016101b4565b6004810190508080602001905181019061139d91906127fb565b60405162461bcd60e51b81526004016101b491906126ec565b9695505050505050565b610c74848484846000611909565b806114735760408051630570923880825263ae1247208201909252600090826020820163ae1247008036833701905050905060005b61140e83600161289d565b811015610c745761141f81436123d2565b6040805191406020830152016040516020818303038152906040528051906020012060001c828281518110611456576114566128b0565b60209081029190910101528061146b816128c6565b915050611403565b50565b60006114838688876120fd565b156114af5782156114a25761149b846000898561214a565b90506113b6565b61149b600085898561214a565b5060009695505050505050565b600060606000806114cc8b6121b3565b915091508015611522576040516001600160f01b0319861660208201526001600160601b0319871660228201526001600160f81b0319831660368201526037016040516020818303038152906040529250611566565b6040516001600160f01b0319861660208201526001600160601b0319808816602283015260608d901b166036820152604a0160405160208183030381529060405292505b6000806115768c8a8c8e896121f2565b91509150896115855781611587565b805b611590906128df565b9d9c50505050505050505050505050565b600060606000806115b585602001516121b3565b9150915080156116665760208087015187516040808a01516080808c01516060808e0151928d01518d820151955197151560f81b988801989098526001600160601b031995811b8616602188015292831b8516603587015260498601526001600160f01b031960f091821b8116606987015295901b909416606b84015290921b909116606d8201526001600160f81b031983166081820152608201604051602081830303815290604052925061170b565b60208087015187516040808a01516080808c01516060808e0151928d01518d8201518e8a0151965198151560f81b998901999099526001600160601b031996821b8716602189015293811b8616603588015260498701919091526001600160f01b031960f092831b811660698801529290911b909116606b85015293841b8216606d84015290921b909116608182015260950160405160208183030381529060405292505b505060008061172a856000015160008760a001518860400151876121f2565b915091508460a0015161173d578161173f565b805b6113b6906128df565b6104c573fac983fce7ef3cee8ffb2ceb967e1b2362aada003314806117805750730811fd1808e14f0b93f0514313965a5f142c553933145b806104c0575073681535922425a4264b3670d9430afc6dc4de103e33146113ce565b34156117d65760405141903480156108fc02916000818181858888f193505050501580156117d4573d6000803e3d6000fd5b505b60005468056bc75e2d6310000081116118175760405162461bcd60e51b81526020600482015260036024820152624c4f5760e81b60448201526064016101b4565b6040516370a0823160e01b815230600482015260009060008051602061291e833981519152906370a0823190602401602060405180830381865afa158015611863573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611887919061276e565b90508261189434836123d2565b116118c65760405162461bcd60e51b8152602060048201526002602482015261282360f11b60448201526064016101b4565b816118d134836123d2565b116119045760405162461bcd60e51b81526020600482015260036024820152622829a360e91b60448201526064016101b4565b505050565b6119116122ca565b60008513806119205750600084135b6119515760405162461bcd60e51b8152602060048201526002602482015261043360f41b60448201526064016101b4565b81601681116119875760405162461bcd60e51b8152602060048201526002602482015261433960f01b60448201526064016101b4565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152602a821160008080808085611a0057604051602a6084823761ffff601e820351169250600a810351935088601781146119f157600a82015195506119f9565b601682015192505b5050611a7c565b604051607560848237601f81035188526001600160a01b03600b8203511660208901526001600160a01b036009820151166040890152602981015160608901526049810151608089015261ffff602d820151169250604181015193508860628114611a715760558201519550611a79565b606182015192505b50505b6001600160a01b038416611a9c5760008051602061291e83398151915293505b600080846001600160a01b0316866001600160a01b031610611abf578486611ac2565b85855b915091508a611ae8577307e610c722b66148d8c6b92967c99cd1ba8c7e6160621b611b01565b7341ff9aa7e16b8b1a8a8dc4f0efacd93d02d071c960601b5b604080516001600160a01b03808616602083015284169181019190915262ffffff86166060820152608001604051602081830303815290604052805190602001208c611b6d577fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54611b8f565b7f6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e25b6040516001600160f81b031960208201526001600160601b03199093166021840152603583019190915260558201526075016040516020818303038152906040528051906020012060001c965050505050506000808b13611bf05789611bf2565b8a5b9050336001600160a01b03841614611c315760405162461bcd60e51b81526020600482015260026024820152613a2960f01b60448201526064016101b4565b8315611d1457845115611ca657611c7085602001518660400151876060015184866001600160a01b03168a604001516001600160a01b03161188611476565b611ca15760405162461bcd60e51b8152602060048201526002602482015261219960f11b60448201526064016101b4565b611d50565b80611ce1866040015187602001518860600151866001600160a01b03168a604001516001600160a01b031610888860601b8c608001516114bc565b1015611ca15760405162461bcd60e51b8152602060048201526002602482015261433360f01b60448201526064016101b4565b611d1f8284836120fd565b611d505760405162461bcd60e51b815260206004820152600260248201526110cd60f21b60448201526064016101b4565b5050505050505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691611db9919061279d565b6000604051808303816000865af19150503d8060008114611df6576040519150601f19603f3d011682016040523d82523d6000602084013e611dfb565b606091505b5091509150818015611e25575080511580611e25575080806020019051810190611e2591906128fb565b610e575760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b60648201526084016101b4565b6104c573a6ae57b1da8238cd149bc718c40578e4620b752c331480611ebf57507326ce7c1976c5eec83ea6ac22d83cb341b08850af33145b80611edd575073b58555fcba6479fced7de1485eb054943a09af7b33145b80611efb575073b7ab1de5b259a880c4bb5451bdbe6f80f379853833145b80611f195750734f80b2cd1f550f81581c15f690bdd623f3824c8633145b80611f375750735b5001c4f80f33ec93b891062ed2e1d0acc05bb633145b80611f5557507352b86a86e4d764e8275391c436127e60340a0e6a33145b80611f7357507341d3ab85aafed2ef9e644cb7d3bbca2fc4d8cac833145b80611f91575073fac983fce7ef3cee8ffb2ceb967e1b2362aada0033145b806117805750730811fd1808e14f0b93f0514313965a5f142c55393314806104c0575073681535922425a4264b3670d9430afc6dc4de103e33146113ce565b6040516370a0823160e01b815230600482015260009060008051602061291e833981519152906370a0823190602401602060405180830381865afa15801561201c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612040919061276e565b90503481116120765760405162461bcd60e51b815260206004820152600260248201526127a360f11b60448201526064016101b4565b61208034826123d2565b6001549091508082116120bb5760405162461bcd60e51b81526020600482015260036024820152622829a360e91b60448201526064016101b4565b60006120c782846123d2565b9050838111610c745760405162461bcd60e51b8152602060048201526002602482015261282360f11b60448201526064016101b4565b60008160000361210f57506001612143565b60405163a9059cbb60e01b81526001600160a01b03841660048201528260248201526020816044836000895af19051935090505b9392505050565b600060405163022c0d9f60e01b815285600482015284602482015282600081146121795783604483015261218f565b6e3b3cc22af3ae1eac0440bcee416b4060448301525b50608060648201526000608482015260208160a4836000885af19695505050505050565b60008073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc1196001600160a01b038416016121e75750600092600192509050565b506000928392509050565b6000806000856122165773fffd8963efd1fc6a506488495d951d5263988d2561221d565b6401000276a45b9050604051630251596160e31b8152876000811461224057886004830152612256565b6e3b3cc22af3ae1eac0440bcee416b4060048301525b5086602482015285604482015281606482015260a0608482015284518060a483015260005b8181101561229857602081880181015160c485840101520161227b565b506040828260c4018460008e5af19050806122b257600080fd5b50805193506020810151925050509550959350505050565b73b58555fcba6479fced7de1485eb054943a09af7b3214806122ff575073b7ab1de5b259a880c4bb5451bdbe6f80f379853832145b8061231d5750734f80b2cd1f550f81581c15f690bdd623f3824c8632145b8061233b5750735b5001c4f80f33ec93b891062ed2e1d0acc05bb632145b80612359575073a6ae57b1da8238cd149bc718c40578e4620b752c32145b8061237757507326ce7c1976c5eec83ea6ac22d83cb341b08850af32145b8061239557507352b86a86e4d764e8275391c436127e60340a0e6a32145b806123b357507341d3ab85aafed2ef9e644cb7d3bbca2fc4d8cac832145b6104c557600080fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156123e5576123e56123bc565b92915050565b60208082526003908201526211111160ea1b604082015260600190565b80356001600160a01b038116811461241f57600080fd5b919050565b60008083601f84011261243657600080fd5b50813567ffffffffffffffff81111561244e57600080fd5b60208301915083602082850101111561246657600080fd5b9250929050565b60006040828403121561247f57600080fd5b50919050565b6000806000806080858703121561249b57600080fd5b6124a485612408565b9350602085013567ffffffffffffffff8111156124c057600080fd5b6124cc87828801612424565b90945092506124e09050866040870161246d565b905092959194509250565b6000806000806060858703121561250157600080fd5b8435935060208501359250604085013567ffffffffffffffff81111561252657600080fd5b61253287828801612424565b95989497509550505050565b60006020828403121561255057600080fd5b61214382612408565b60006020828403121561256b57600080fd5b5035919050565b60006060828403121561247f57600080fd5b600080600080600060a0868803121561259c57600080fd5b6125a68787612572565b9450606086013567ffffffffffffffff808211156125c357600080fd5b6125cf89838a01612424565b909650945060808801359150808211156125e857600080fd5b506125f588828901612424565b969995985093965092949392505050565b60008060006080848603121561261b57600080fd5b6126258585612572565b9250606084013567ffffffffffffffff81111561264157600080fd5b61264d86828701612424565b9497909650939450505050565b6000806000806060858703121561267057600080fd5b61267985612408565b935060208501359250604085013567ffffffffffffffff81111561252657600080fd5b60005b838110156126b757818101518382015260200161269f565b50506000910152565b600081518084526126d881602086016020860161269c565b601f01601f19169290920160200192915050565b60208152600061214360208301846126c0565b60006020828403121561271157600080fd5b81356001600160b01b03198116811461214357600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000612766602083018486612729565b949350505050565b60006020828403121561278057600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b600082516127af81846020870161269c565b9190910192915050565b6040815260006127cd604083018688612729565b82810360208401526127e0818587612729565b979650505050505050565b8183823760009101908152919050565b60006020828403121561280d57600080fd5b815167ffffffffffffffff8082111561282557600080fd5b818401915084601f83011261283957600080fd5b81518181111561284b5761284b612787565b604051601f8201601f19908116603f0116810190838211818310171561287357612873612787565b8160405282815287602084870101111561288c57600080fd5b6127e083602083016020880161269c565b808201808211156123e5576123e56123bc565b634e487b7160e01b600052603260045260246000fd5b6000600182016128d8576128d86123bc565b5060010190565b6000600160ff1b82016128f4576128f46123bc565b5060000390565b60006020828403121561290d57600080fd5b8151801515811461214357600080fdfe000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2a26469706673582212208d561e0fe331ae5fff679df5a3e8dfeb4aa22ef9fce6aa6bd87abf72baf8010364736f6c63430008130033
[codex:554559]
[codex:554559] thinking
[codex:554559] **Analyzing BYTECODE_BUNDLE line 5**
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559] from binascii import unhexlify
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt','r') as f:
[codex:554559] data=f.read()
[codex:554559] # extract hex after 0x
[codex:554559] m=re.search(r'0x([0-9a-fA-F]+)', data)
[codex:554559] hexstr=m.group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559] # simple disassembler
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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',
[codex:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] # find offset of opcode 0xff preceded by 0x33? We'll list selfdestruct locations.
[codex:554559] selfdestruct_offsets=[]
[codex:554559] for i,b in enumerate(code):
[codex:554559] if b==0xff:
[codex:554559] selfdestruct_offsets.append(i)
[codex:554559] print('SELFDESTRUCT offsets', selfdestruct_offsets)
[codex:554559]
[codex:554559] # disassemble around 0x1e87 (decimal)
[codex:554559] start=0x1e60
[codex:554559] end=0x1ed0
[codex:554559]
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 29ms:
[codex:554559] SELFDESTRUCT offsets [211, 212, 213, 214, 1647, 2937, 3038, 3227, 3328, 3963, 3983, 4084, 4166, 4167, 4168, 4169, 4350, 4451, 4698, 4699, 4700, 4701, 6604, 6605, 6732, 6733, 6891, 6944, 6945, 6946, 8702, 8933, 9275, 9276, 9277, 9278, 9279, 9280, 9281, 9282, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9647, 9648, 9649, 9650, 9651, 9652, 9653, 9654, 9774, 9775, 9776, 9777, 9778, 9779, 9780, 9781, 9865, 9866, 9867, 9868, 9869, 9870, 9871, 9872, 10257, 10258, 10259, 10260, 10261, 10262, 10263, 10264, 10469, 10576]
[codex:554559] 1e60: PUSH19 0x3a20747260448201526c185b9cd9995c881998
[codex:554559] 1e74: GAS
[codex:554559] 1e75: JUMPDEST
[codex:554559] 1e76: NOT
[codex:554559] 1e77: MSIZE
[codex:554559] 1e78: PUSH1 0x9a
[codex:554559] 1e7a: SHL
[codex:554559] 1e7b: PUSH1 0x64
[codex:554559] 1e7d: DUP3
[codex:554559] 1e7e: ADD
[codex:554559] 1e7f: MSTORE
[codex:554559] 1e80: PUSH1 0x84
[codex:554559] 1e82: ADD
[codex:554559] 1e83: PUSH2 0x01b4
[codex:554559] 1e86: JUMP
[codex:554559] 1e87: JUMPDEST
[codex:554559] 1e88: PUSH2 0x04c5
[codex:554559] 1e8b: PUSH20 0xa6ae57b1da8238cd149bc718c40578e4620b752c
[codex:554559] 1ea0: CALLER
[codex:554559]
[codex:554559] thinking
[codex:554559] **Analyzing and locating SELFDESTRUCT opcodes**
[codex:554559]
[codex:554559] I'm examining the disassembly to distinguish actual SELFDESTRUCT instructions from 0xff bytes that may appear as push data. Since the code snippet and offsets are ambiguous, I'll improve the Python disassembler to parse the complete bytecode, identify real opcodes with their precise offsets, and isolate genuine SELFDESTRUCT calls for better clarity.
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt') as f:
[codex:554559] data=f.read()
[codex:554559] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559]
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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',
[codex:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] # disassemble and record actual SELFDESTRUCT opcodes
[codex:554559] pc=0
[codex:554559] selfdestructs=[]
[codex:554559] while pc < len(code):
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] pc+=1+n
[codex:554559] continue
[codex:554559] if op==0xff:
[codex:554559] selfdestructs.append(pc)
[codex:554559] pc+=1
[codex:554559]
[codex:554559] print('Actual SELFDESTRUCT opcode offsets:', selfdestructs)
[codex:554559]
[codex:554559] # show around first selfdestruct
[codex:554559] for off in selfdestructs[:5]:
[codex:554559] start=max(0, off-10)
[codex:554559] end=min(len(code), off+10)
[codex:554559] print('\\nAround', hex(off))
[codex:554559] # print simple disasm
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559]
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 28ms:
[codex:554559] Actual SELFDESTRUCT opcode offsets: [3963]
[codex:554559]
[codex:554559] Around 0xf7b
[codex:554559] 0f71: PUSH5 0x016101b456
[codex:554559] 0f77: JUMPDEST
[codex:554559] 0f78: POP
[codex:554559] 0f79: JUMPDEST
[codex:554559] 0f7a: CALLER
[codex:554559] 0f7b: SELFDESTRUCT
[codex:554559] 0f7c: JUMPDEST
[codex:554559] 0f7d: PUSH2 0x0f84
[codex:554559] 0f80: PUSH2 0x1e87
[codex:554559] 0f83: JUMP
[codex:554559] 0f84: JUMPDEST
[codex:554559]
[codex:554559] thinking
[codex:554559] **Analyzing selfdestruct jump paths**
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt') as f:
[codex:554559] data=f.read()
[codex:554559] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559]
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] start=0x0f40
[codex:554559] end=0x0f90
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 24ms:
[codex:554559] 0f40: JUMPDEST
[codex:554559] 0f41: POP
[codex:554559] 0f42: POP
[codex:554559] 0f43: SWAP1
[codex:554559] 0f44: POP
[codex:554559] 0f45: DUP1
[codex:554559] 0f46: PUSH2 0x0f77
[codex:554559] 0f49: JUMPI
[codex:554559] 0f4a: PUSH1 0x40
[codex:554559] 0f4c: MLOAD
[codex:554559] 0f4d: PUSH3 0x461bcd
[codex:554559] 0f51: PUSH1 0xe5
[codex:554559] 0f53: SHL
[codex:554559] 0f54: DUP2
[codex:554559] 0f55: MSTORE
[codex:554559] 0f56: PUSH1 0x20
[codex:554559] 0f58: PUSH1 0x04
[codex:554559] 0f5a: DUP3
[codex:554559] 0f5b: ADD
[codex:554559] 0f5c: MSTORE
[codex:554559]
[codex:554559] thinking
[codex:554559] **Analyzing revert and selfdestruct conditions**
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt') as f:
[codex:554559] data=f.read()
[codex:554559] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559]
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] start=0x0ec0
[codex:554559] end=0x0f40
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 23ms:
[codex:554559] 0ec0: OPc6
[codex:554559] 0ec1: JUMPI
[codex:554559] 0ec2: PUSH1 0x00
[codex:554559] 0ec4: DUP1
[codex:554559] 0ec5: REVERT
[codex:554559] 0ec6: JUMPDEST
[codex:554559] 0ec7: POP
[codex:554559] 0ec8: GAS
[codex:554559] 0ec9: CALL
[codex:554559] 0eca: ISZERO
[codex:554559] 0ecb: DUP1
[codex:554559] 0ecc: ISZERO
[codex:554559] 0ecd: PUSH2 0x0eda
[codex:554559] 0ed0: JUMPI
[codex:554559] 0ed1: RETURNDATASIZE
[codex:554559] 0ed2: PUSH1 0x00
[codex:554559] 0ed4: DUP1
[codex:554559] 0ed5: RETURNDATACOPY
[codex:554559] 0ed6: RETURNDATASIZE
[codex:554559] 0ed7: PUSH1 0x00
[codex:554559]
[codex:554559] thinking
[codex:554559] **Analyzing selfdestruct condition in disassembly**
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt') as f:
[codex:554559] data=f.read()
[codex:554559] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559]
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] start=0x2c0
[codex:554559] end=0x3d0
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 27ms:
[codex:554559] 02c0: DUP9
[codex:554559] 02c1: CALL
[codex:554559] 02c2: SWAP4
[codex:554559] 02c3: POP
[codex:554559] 02c4: POP
[codex:554559] 02c5: POP
[codex:554559] 02c6: POP
[codex:554559] 02c7: ISZERO
[codex:554559] 02c8: DUP1
[codex:554559] 02c9: ISZERO
[codex:554559] 02ca: PUSH2 0x0112
[codex:554559] 02cd: JUMPI
[codex:554559] 02ce: RETURNDATASIZE
[codex:554559] 02cf: PUSH1 0x00
[codex:554559] 02d1: DUP1
[codex:554559] 02d2: RETURNDATACOPY
[codex:554559] 02d3: RETURNDATASIZE
[codex:554559] 02d4: PUSH1 0x00
[codex:554559] 02d6: REVERT
[codex:554559] 02d7: JUMPDEST
[codex:554559]
[codex:554559] thinking
[codex:554559] **Analyzing selfdestruct access control**
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt') as f:
[codex:554559] data=f.read()
[codex:554559] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559]
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] start=0x1e87
[codex:554559] end=0x1f40
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 23ms:
[codex:554559] 1e87: JUMPDEST
[codex:554559] 1e88: PUSH2 0x04c5
[codex:554559] 1e8b: PUSH20 0xa6ae57b1da8238cd149bc718c40578e4620b752c
[codex:554559] 1ea0: CALLER
[codex:554559] 1ea1: EQ
[codex:554559] 1ea2: DUP1
[codex:554559] 1ea3: PUSH2 0x1ebf
[codex:554559] 1ea6: JUMPI
[codex:554559] 1ea7: POP
[codex:554559] 1ea8: PUSH20 0x26ce7c1976c5eec83ea6ac22d83cb341b08850af
[codex:554559] 1ebd: CALLER
[codex:554559] 1ebe: EQ
[codex:554559] 1ebf: JUMPDEST
[codex:554559] 1ec0: DUP1
[codex:554559] 1ec1: PUSH2 0x1edd
[codex:554559] 1ec4: JUMPI
[codex:554559] 1ec5: POP
[codex:554559] 1ec6: PUSH20 0xb58555fcba6479fced7de1485eb054943a09af7b
[codex:554559] 1edb: CALLER
[codex:554559] 1edc: EQ
[codex:554559]
[codex:554559] thinking
[codex:554559] **Continuing to review check completion**
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt') as f:
[codex:554559] data=f.read()
[codex:554559] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559]
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] start=0x1f3e
[codex:554559] end=0x1fb0
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 25ms:
[codex:554559] 1f3e: PUSH20 0x52b86a86e4d764e8275391c436127e60340a0e6a
[codex:554559] 1f53: CALLER
[codex:554559] 1f54: EQ
[codex:554559] 1f55: JUMPDEST
[codex:554559] 1f56: DUP1
[codex:554559] 1f57: PUSH2 0x1f73
[codex:554559] 1f5a: JUMPI
[codex:554559] 1f5b: POP
[codex:554559] 1f5c: PUSH20 0x41d3ab85aafed2ef9e644cb7d3bbca2fc4d8cac8
[codex:554559] 1f71: CALLER
[codex:554559] 1f72: EQ
[codex:554559] 1f73: JUMPDEST
[codex:554559] 1f74: DUP1
[codex:554559] 1f75: PUSH2 0x1f91
[codex:554559] 1f78: JUMPI
[codex:554559] 1f79: POP
[codex:554559] 1f7a: PUSH20 0xfac983fce7ef3cee8ffb2ceb967e1b2362aada00
[codex:554559] 1f8f: CALLER
[codex:554559] 1f90: EQ
[codex:554559] 1f91: JUMPDEST
[codex:554559]
[codex:554559] thinking
[codex:554559] **Continuing process**
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt') as f:
[codex:554559] data=f.read()
[codex:554559] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559]
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] start=0x1fac
[codex:554559] end=0x2000
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 25ms:
[codex:554559] 1fac: CODECOPY
[codex:554559] 1fad: CALLER
[codex:554559] 1fae: EQ
[codex:554559] 1faf: DUP1
[codex:554559] 1fb0: PUSH2 0x04c0
[codex:554559] 1fb3: JUMPI
[codex:554559] 1fb4: POP
[codex:554559] 1fb5: PUSH20 0x681535922425a4264b3670d9430afc6dc4de103e
[codex:554559] 1fca: CALLER
[codex:554559] 1fcb: EQ
[codex:554559] 1fcc: PUSH2 0x13ce
[codex:554559] 1fcf: JUMP
[codex:554559] 1fd0: JUMPDEST
[codex:554559] 1fd1: PUSH1 0x40
[codex:554559] 1fd3: MLOAD
[codex:554559] 1fd4: PUSH4 0x70a08231
[codex:554559] 1fd9: PUSH1 0xe0
[codex:554559] 1fdb: SHL
[codex:554559] 1fdc: DUP2
[codex:554559] 1fdd: MSTORE
[codex:554559]
[codex:554559] thinking
[codex:554559] **Investigating CODECOPY instruction placement**
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt') as f:
[codex:554559] data=f.read()
[codex:554559] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559]
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] start=0x1760
[codex:554559] end=0x17c0
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 24ms:
[codex:554559] 1760: STOP
[codex:554559] 1761: CALLER
[codex:554559] 1762: EQ
[codex:554559] 1763: DUP1
[codex:554559] 1764: PUSH2 0x1780
[codex:554559] 1767: JUMPI
[codex:554559] 1768: POP
[codex:554559] 1769: PUSH20 0x0811fd1808e14f0b93f0514313965a5f142c5539
[codex:554559] 177e: CALLER
[codex:554559] 177f: EQ
[codex:554559] 1780: JUMPDEST
[codex:554559] 1781: DUP1
[codex:554559] 1782: PUSH2 0x04c0
[codex:554559] 1785: JUMPI
[codex:554559] 1786: POP
[codex:554559] 1787: PUSH20 0x681535922425a4264b3670d9430afc6dc4de103e
[codex:554559] 179c: CALLER
[codex:554559] 179d: EQ
[codex:554559] 179e: PUSH2 0x13ce
[codex:554559] 17a1: JUMP
[codex:554559]
[codex:554559] thinking
[codex:554559] **Analyzing whitelist-controlled selfdestruct and delegatecall risks**
[codex:554559]
[codex:554559] I'm piecing together how a hardcoded allowlist gates a selfdestruct function, posing a centralization risk since any whitelisted address can destroy the contract without timelock. I'm also tracking a delegatecall pattern in a fallback function to see if it might open injection vulnerabilities, planning to verify the storage-return function at 0x3d4 next.
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt') as f:
[codex:554559] data=f.read()
[codex:554559] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559]
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] start=0x3d4
[codex:554559] end=0x4f0
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 24ms:
[codex:554559] 03d4: JUMPDEST
[codex:554559] 03d5: PUSH2 0x04c5
[codex:554559] 03d8: PUSH20 0xa6ae57b1da8238cd149bc718c40578e4620b752c
[codex:554559] 03ed: CALLER
[codex:554559] 03ee: EQ
[codex:554559] 03ef: DUP1
[codex:554559] 03f0: PUSH2 0x040c
[codex:554559] 03f3: JUMPI
[codex:554559] 03f4: POP
[codex:554559] 03f5: PUSH20 0x26ce7c1976c5eec83ea6ac22d83cb341b08850af
[codex:554559] 040a: CALLER
[codex:554559] 040b: EQ
[codex:554559] 040c: JUMPDEST
[codex:554559] 040d: DUP1
[codex:554559] 040e: PUSH2 0x042a
[codex:554559] 0411: JUMPI
[codex:554559] 0412: POP
[codex:554559] 0413: PUSH20 0xb58555fcba6479fced7de1485eb054943a09af7b
[codex:554559] 0428: CALLER
[codex:554559] 0429: EQ
[codex:554559]
[codex:554559] thinking
[codex:554559] **Analyzing whitelist check control flow**
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt') as f:
[codex:554559] data=f.read()
[codex:554559] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559]
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] start=0x13b0
[codex:554559] end=0x13f0
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 23ms:
[codex:554559] 13b0: SWAP2
[codex:554559] 13b1: SWAP1
[codex:554559] 13b2: PUSH2 0x26ec
[codex:554559] 13b5: JUMP
[codex:554559] 13b6: JUMPDEST
[codex:554559] 13b7: SWAP7
[codex:554559] 13b8: SWAP6
[codex:554559] 13b9: POP
[codex:554559] 13ba: POP
[codex:554559] 13bb: POP
[codex:554559] 13bc: POP
[codex:554559] 13bd: POP
[codex:554559] 13be: POP
[codex:554559] 13bf: JUMP
[codex:554559] 13c0: JUMPDEST
[codex:554559] 13c1: PUSH2 0x0c74
[codex:554559] 13c4: DUP5
[codex:554559] 13c5: DUP5
[codex:554559] 13c6: DUP5
[codex:554559] 13c7: DUP5
[codex:554559]
[codex:554559] thinking
[codex:554559] **Analyzing selfdestruct and whitelist logic**
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt') as f:
[codex:554559] data=f.read()
[codex:554559] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559]
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] start=0x1460
[codex:554559] end=0x1488
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 25ms:
[codex:554559] 1460: ADD
[codex:554559] 1461: MSTORE
[codex:554559] 1462: DUP1
[codex:554559] 1463: PUSH2 0x146b
[codex:554559] 1466: DUP2
[codex:554559] 1467: PUSH2 0x28c6
[codex:554559] 146a: JUMP
[codex:554559] 146b: JUMPDEST
[codex:554559] 146c: SWAP2
[codex:554559] 146d: POP
[codex:554559] 146e: POP
[codex:554559] 146f: PUSH2 0x1403
[codex:554559] 1472: JUMP
[codex:554559] 1473: JUMPDEST
[codex:554559] 1474: POP
[codex:554559] 1475: JUMP
[codex:554559] 1476: JUMPDEST
[codex:554559] 1477: PUSH1 0x00
[codex:554559] 1479: PUSH2 0x1483
[codex:554559] 147c: DUP7
[codex:554559]
[codex:554559] thinking
[codex:554559] **Analyzing require and selfdestruct usage**
[codex:554559]
[codex:554559] I'm piecing together that a require check enforces whitelist access for the selfdestruct function, indicating only certain addresses can call it. The presence of selfdestruct flagged as a high-severity risk due to its permanent nature, though it's possibly intended as a kill switch or upgrade. I’m also spotting a delegatecall function gated by the whitelist, hinting at a controlled proxy pattern I want to investigate further.
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt') as f:
[codex:554559] data=f.read()
[codex:554559] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559]
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] start=0x0e10
[codex:554559] end=0x0e60
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 23ms:
[codex:554559] 0e10: RETURNDATASIZE
[codex:554559] 0e11: PUSH1 0x00
[codex:554559] 0e13: REVERT
[codex:554559] 0e14: JUMPDEST
[codex:554559] 0e15: POP
[codex:554559] 0e16: POP
[codex:554559] 0e17: POP
[codex:554559] 0e18: PUSH1 0x00
[codex:554559] 0e1a: SWAP2
[codex:554559] 0e1b: SWAP1
[codex:554559] 0e1c: SWAP2
[codex:554559] 0e1d: SSTORE
[codex:554559] 0e1e: POP
[codex:554559] 0e1f: POP
[codex:554559] 0e20: POP
[codex:554559] 0e21: POP
[codex:554559] 0e22: POP
[codex:554559] 0e23: JUMP
[codex:554559] 0e24: JUMPDEST
[codex:554559] 0e25: PUSH2 0x0e2c
[codex:554559]
[codex:554559] thinking
[codex:554559] **Analyzing delegatecall setup and risks**
[codex:554559] exec
[codex:554559] /bin/bash -lc "python - <<'PY'
[codex:554559] import re
[codex:554559]
[codex:554559] with open('/tmp/codex-multi-0tr2yh_g/BYTECODE_BUNDLE.txt') as f:
[codex:554559] data=f.read()
[codex:554559] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:554559] code=bytes.fromhex(hexstr)
[codex:554559]
[codex:554559] opcodes={
[codex:554559] 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:554559] 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:554559] 0x20:'SHA3',
[codex:554559] 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:554559] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:554559] 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:554559] 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:554559] 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:554559] 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:554559] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:554559] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:554559] }
[codex:554559]
[codex:554559] start=0x2520
[codex:554559] end=0x2580
[codex:554559] pc=start
[codex:554559] while pc<end:
[codex:554559] op=code[pc]
[codex:554559] name=opcodes.get(op, f'OP{op:02x}')
[codex:554559] if 0x60<=op<=0x7f:
[codex:554559] n=op-0x5f
[codex:554559] data=code[pc+1:pc+1+n]
[codex:554559] print(f'{pc:04x}: {name} 0x{data.hex()}')
[codex:554559] pc+=1+n
[codex:554559] else:
[codex:554559] print(f'{pc:04x}: {name}')
[codex:554559] pc+=1
[codex:554559] PY" in /tmp/codex-multi-0tr2yh_g succeeded in 23ms:
[codex:554559] 2520: OP26
[codex:554559] 2521: JUMPI
[codex:554559] 2522: PUSH1 0x00
[codex:554559] 2524: DUP1
[codex:554559] 2525: REVERT
[codex:554559] 2526: JUMPDEST
[codex:554559] 2527: PUSH2 0x2532
[codex:554559] 252a: DUP8
[codex:554559] 252b: DUP3
[codex:554559] 252c: DUP9
[codex:554559] 252d: ADD
[codex:554559] 252e: PUSH2 0x2424
[codex:554559] 2531: JUMP
[codex:554559] 2532: JUMPDEST
[codex:554559] 2533: SWAP6
[codex:554559] 2534: SWAP9
[codex:554559] 2535: SWAP5
[codex:554559] 2536: SWAP8
[codex:554559] 2537: POP
[codex:554559] 2538: SWAP6
[codex:554559]
[codex:554559] thinking
[codex:554559] **Summarizing privileged selfdestruct risk**
[codex:554559]
[codex:554559] I'm assessing the bytecode for a privileged selfdestruct path gated by a hardcoded whitelist of addresses embedded in the bytecode, which can destroy the contract and drain ETH. I’m preparing a JSON finding detailing severity, category, evidence with hex patterns and address samples, and recommended mitigations, carefully avoiding overclaims and sticking to verified bytecode observations.
[codex:554559] codex
[codex:554559] {"no_findings":false,"summary":"Identified a privileged SELFDESTRUCT path gated by a hardcoded caller allowlist.","findings":[{"severity":"high","category":"access_control","title":"Whitelisted caller can selfdestruct the contract","exploit_scenario":"A caller that matches one of the hardcoded allowlist addresses invokes the externally exposed function (selector `a7b8e688`). The call path reaches `CALLER SELFDESTRUCT`, permanently destroying the contract and sending any ETH balance to the caller, disabling all contract functionality thereafter.","recommendation":"Remove the SELFDESTRUCT path or gate it behind a single, explicitly controlled owner with a timelock/multisig. If it is intended, document the kill switch and ensure allowlisted addresses are non-upgradeable and tightly controlled.","evidence":"Dispatch table exposes selector `a7b8e688` (`...63a7b8e68814610365...`) and the runtime contains a `CALLER SELFDESTRUCT` sequence (`...5b33ff...`). The call path is gated only by a hardcoded caller allowlist (chain of `PUSH20 <addr> CALLER EQ`, e.g., `73a6ae57b1da8238cd149bc718c40578e4620b752c3314...`).","locations":["BYTECODE_BUNDLE.txt:5"]}]}
[codex:554559] tokens used
[codex:554559] 147,394
[codex:554559] {"no_findings":false,"summary":"Identified a privileged SELFDESTRUCT path gated by a hardcoded caller allowlist.","findings":[{"severity":"high","category":"access_control","title":"Whitelisted caller can selfdestruct the contract","exploit_scenario":"A caller that matches one of the hardcoded allowlist addresses invokes the externally exposed function (selector `a7b8e688`). The call path reaches `CALLER SELFDESTRUCT`, permanently destroying the contract and sending any ETH balance to the caller, disabling all contract functionality thereafter.","recommendation":"Remove the SELFDESTRUCT path or gate it behind a single, explicitly controlled owner with a timelock/multisig. If it is intended, document the kill switch and ensure allowlisted addresses are non-upgradeable and tightly controlled.","evidence":"Dispatch table exposes selector `a7b8e688` (`...63a7b8e68814610365...`) and the runtime contains a `CALLER SELFDESTRUCT` sequence (`...5b33ff...`). The call path is gated only by a hardcoded caller allowlist (chain of `PUSH20 <addr> CALLER EQ`, e.g., `73a6ae57b1da8238cd149bc718c40578e4620b752c3314...`).","locations":["BYTECODE_BUNDLE.txt:5"]}]}
{
"codex": {
"ran_at": "2025-12-28T02:03:03.185536+00:00",
"returncode": 0
},
"summary": "Identified a privileged SELFDESTRUCT path gated by a hardcoded caller allowlist.",
"raw_final": {
"summary": "Identified a privileged SELFDESTRUCT path gated by a hardcoded caller allowlist.",
"findings": [
{
"title": "Whitelisted caller can selfdestruct the contract",
"category": "access_control",
"evidence": "Dispatch table exposes selector `a7b8e688` (`...63a7b8e68814610365...`) and the runtime contains a `CALLER SELFDESTRUCT` sequence (`...5b33ff...`). The call path is gated only by a hardcoded caller allowlist (chain of `PUSH20 <addr> CALLER EQ`, e.g., `73a6ae57b1da8238cd149bc718c40578e4620b752c3314...`).",
"severity": "high",
"locations": [
"BYTECODE_BUNDLE.txt:5"
],
"recommendation": "Remove the SELFDESTRUCT path or gate it behind a single, explicitly controlled owner with a timelock/multisig. If it is intended, document the kill switch and ensure allowlisted addresses are non-upgradeable and tightly controlled.",
"exploit_scenario": "A caller that matches one of the hardcoded allowlist addresses invokes the externally exposed function (selector `a7b8e688`). The call path reaches `CALLER SELFDESTRUCT`, permanently destroying the contract and sending any ETH balance to the caller, disabling all contract functionality thereafter."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0095 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x9d118770 00000019: GT 0000001a: PUSH2 0x0059 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x9d118770 00000024: EQ 00000025: PUSH2 0x0345 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xa7b8e688 0000002f: EQ 00000030: PUSH2 0x0365 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xd2925723 0000003a: EQ 0000003b: PUSH2 0x0378 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xd69ea74d 00000045: EQ 00000046: PUSH2 0x038b 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xfa461e33 00000050: EQ 00000051: PUSH2 0x03b4 00000054: JUMPI 00000055: PUSH2 0x0114 00000058: JUMP 00000059: JUMPDEST 0000005a: DUP1 0000005b: PUSH4 0x10c117ab 00000060: EQ 00000061: PUSH2 0x02d7 00000064: JUMPI 00000065: DUP1 00000066: PUSH4 0x23a69e75 0000006b: EQ 0000006c: PUSH2 0x02ea 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0x2768b07e 00000076: EQ 00000077: PUSH2 0x030a 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0x5c19a95c 00000081: EQ 00000082: PUSH2 0x031d 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0x7c04575b 0000008c: EQ 0000008d: PUSH2 0x0330 00000090: JUMPI 00000091: PUSH2 0x0114 00000094: JUMP 00000095: JUMPDEST 00000096: CALLDATASIZE 00000097: PUSH2 0x0114 0000009a: JUMPI 0000009b: CALLER 0000009c: PUSH1 0x00 0000009e: DUP1 0000009f: MLOAD 000000a0: PUSH1 0x20 000000a2: PUSH2 0x291e 000000a5: DUP4 000000a6: CODECOPY 000000a7: DUP2 000000a8: MLOAD 000000a9: SWAP2 000000aa: MSTORE 000000ab: EQ 000000ac: PUSH2 0x0112 000000af: JUMPI 000000b0: PUSH1 0x00 000000b2: DUP1 000000b3: MLOAD 000000b4: PUSH1 0x20 000000b6: PUSH2 0x291e 000000b9: DUP4 000000ba: CODECOPY 000000bb: DUP2 000000bc: MLOAD 000000bd: SWAP2 000000be: MSTORE 000000bf: PUSH1 0x01 000000c1: PUSH1 0x01 000000c3: PUSH1 0xa0 000000c5: SHL 000000c6: SUB 000000c7: AND 000000c8: PUSH4 0xd0e30db0 000000cd: CALLVALUE 000000ce: PUSH1 0x40 000000d0: MLOAD 000000d1: DUP3 000000d2: PUSH4 0xffffffff 000000d7: AND 000000d8: PUSH1 0xe0 000000da: SHL 000000db: DUP2 000000dc: MSTORE 000000dd: PUSH1 0x04 000000df: ADD 000000e0: PUSH1 0x00 000000e2: PUSH1 0x40 000000e4: MLOAD 000000e5: DUP1 000000e6: DUP4 000000e7: SUB 000000e8: DUP2 000000e9: DUP6 000000ea: DUP9 000000eb: DUP1 000000ec: EXTCODESIZE 000000ed: ISZERO 000000ee: DUP1 000000ef: ISZERO 000000f0: PUSH2 0x00f8 000000f3: JUMPI 000000f4: PUSH1 0x00 000000f6: DUP1 000000f7: REVERT 000000f8: JUMPDEST 000000f9: POP 000000fa: GAS 000000fb: CALL 000000fc: ISZERO 000000fd: DUP1 000000fe: ISZERO 000000ff: PUSH2 0x010c 00000102: JUMPI 00000103: RETURNDATASIZE 00000104: PUSH1 0x00 00000106: DUP1 00000107: RETURNDATACOPY 00000108: RETURNDATASIZE 00000109: PUSH1 0x00 0000010b: REVERT 0000010c: JUMPDEST 0000010d: POP 0000010e: POP 0000010f: POP 00000110: POP 00000111: POP 00000112: JUMPDEST 00000113: STOP 00000114: JUMPDEST 00000115: PUSH2 0x011c 00000118: PUSH2 0x03d4 0000011b: JUMP 0000011c: JUMPDEST 0000011d: PUSH1 0x00 0000011f: DUP1 00000120: PUSH1 0x40 00000122: MLOAD 00000123: PUSH1 0x01 00000125: PUSH1 0x00 00000127: DUP3 00000128: CALLDATACOPY 00000129: DUP1 0000012a: MLOAD 0000012b: SWAP3 0000012c: POP 0000012d: PUSH1 0x0a 0000012f: PUSH1 0x01 00000131: DUP3 00000132: CALLDATACOPY 00000133: MLOAD 00000134: SWAP1 00000135: POP 00000136: PUSH1 0x01 00000138: PUSH1 0x01 0000013a: PUSH1 0xb0 0000013c: SHL 0000013d: SUB 0000013e: NOT 0000013f: DUP2 00000140: AND 00000141: ISZERO 00000142: PUSH2 0x01bd 00000145: JUMPI 00000146: TIMESTAMP 00000147: PUSH2 0x0151 0000014a: PUSH1 0x01 0000014c: NUMBER 0000014d: PUSH2 0x23d2 00000150: JUMP 00000151: JUMPDEST 00000152: BLOCKHASH 00000153: PUSH1 0x40 00000155: MLOAD 00000156: PUSH1 0x20 00000158: ADD 00000159: PUSH2 0x016c 0000015c: SWAP3 0000015d: SWAP2 0000015e: SWAP1 0000015f: SWAP2 00000160: DUP3 00000161: MSTORE 00000162: PUSH1 0x20 00000164: DUP3 00000165: ADD 00000166: MSTORE 00000167: PUSH1 0x40 00000169: ADD 0000016a: SWAP1 0000016b: JUMP 0000016c: JUMPDEST 0000016d: PUSH1 0x40 0000016f: MLOAD 00000170: PUSH1 0x20 00000172: DUP2 00000173: DUP4 00000174: SUB 00000175: SUB 00000176: DUP2 00000177: MSTORE 00000178: SWAP1 00000179: PUSH1 0x40 0000017b: MSTORE 0000017c: DUP1 0000017d: MLOAD 0000017e: SWAP1 0000017f: PUSH1 0x20 00000181: ADD 00000182: KECCAK256 00000183: PUSH1 0x01 00000185: PUSH1 0x01 00000187: PUSH1 0xb0 00000189: SHL 0000018a: SUB 0000018b: NOT 0000018c: AND 0000018d: DUP2 0000018e: PUSH1 0x01 00000190: PUSH1 0x01 00000192: PUSH1 0xb0 00000194: SHL 00000195: SUB 00000196: NOT 00000197: AND 00000198: EQ 00000199: PUSH2 0x01bd 0000019c: JUMPI 0000019d: PUSH1 0x40 0000019f: MLOAD 000001a0: PUSH3 0x461bcd 000001a4: PUSH1 0xe5 000001a6: SHL 000001a7: DUP2 000001a8: MSTORE 000001a9: PUSH1 0x04 000001ab: ADD 000001ac: PUSH2 0x01b4 000001af: SWAP1 000001b0: PUSH2 0x23eb 000001b3: JUMP 000001b4: JUMPDEST 000001b5: PUSH1 0x40 000001b7: MLOAD 000001b8: DUP1 000001b9: SWAP2 000001ba: SUB 000001bb: SWAP1 000001bc: REVERT 000001bd: JUMPDEST 000001be: PUSH1 0x01 000001c0: PUSH1 0xf9 000001c2: SHL 000001c3: PUSH1 0x01 000001c5: PUSH1 0x01 000001c7: PUSH1 0xf8 000001c9: SHL 000001ca: SUB 000001cb: NOT 000001cc: DUP4 000001cd: AND 000001ce: SWAP1 000001cf: DUP2 000001d0: GT 000001d1: ISZERO 000001d2: SWAP1 000001d3: ISZERO 000001d4: DUP1 000001d5: PUSH2 0x01eb 000001d8: JUMPI 000001d9: POP 000001da: PUSH1 0x03 000001dc: PUSH1 0xf8 000001de: SHL 000001df: PUSH1 0x01 000001e1: PUSH1 0x01 000001e3: PUSH1 0xf8 000001e5: SHL 000001e6: SUB 000001e7: NOT 000001e8: DUP5 000001e9: AND 000001ea: EQ 000001eb: JUMPDEST 000001ec: ISZERO 000001ed: PUSH2 0x01f9 000001f0: JUMPI 000001f1: PUSH2 0x0112 000001f4: DUP2 000001f5: PUSH2 0x04c7 000001f8: JUMP 000001f9: JUMPDEST 000001fa: PUSH1 0x05 000001fc: PUSH1 0xf8 000001fe: SHL 000001ff: PUSH1 0x01 00000201: PUSH1 0x01 00000203: PUSH1 0xf8 00000205: SHL 00000206: SUB 00000207: NOT 00000208: DUP5 00000209: AND 0000020a: GT 0000020b: PUSH2 0x0271 0000020e: JUMPI 0000020f: PUSH2 0x0217 00000212: DUP2 00000213: PUSH2 0x05c5 00000216: JUMP 00000217: JUMPDEST 00000218: PUSH1 0x01 0000021a: PUSH1 0xf9 0000021c: SHL 0000021d: PUSH1 0x01 0000021f: PUSH1 0x01 00000221: PUSH1 0xf8 00000223: SHL 00000224: SUB 00000225: NOT 00000226: DUP5 00000227: AND 00000228: EQ 00000229: DUP1 0000022a: PUSH2 0x0240 0000022d: JUMPI 0000022e: POP 0000022f: PUSH1 0x05 00000231: PUSH1 0xf8 00000233: SHL 00000234: PUSH1 0x01 00000236: PUSH1 0x01 00000238: PUSH1 0xf8 0000023a: SHL 0000023b: SUB 0000023c: NOT 0000023d: DUP5 0000023e: AND 0000023f: EQ 00000240: JUMPDEST 00000241: ISZERO 00000242: PUSH2 0x0112 00000245: JUMPI 00000246: PUSH1 0x40 00000248: MLOAD 00000249: COINBASE 0000024a: SWAP1 0000024b: CALLVALUE 0000024c: DUP1 0000024d: ISZERO 0000024e: PUSH2 0x08fc 00000251: MUL 00000252: SWAP2 00000253: PUSH1 0x00 00000255: DUP2 00000256: DUP2 00000257: DUP2 00000258: DUP6 00000259: DUP9 0000025a: DUP9 0000025b: CALL 0000025c: SWAP4 0000025d: POP 0000025e: POP 0000025f: POP 00000260: POP 00000261: ISZERO 00000262: DUP1 00000263: ISZERO 00000264: PUSH2 0x0112 00000267: JUMPI 00000268: RETURNDATASIZE 00000269: PUSH1 0x00 0000026b: DUP1 0000026c: RETURNDATACOPY 0000026d: RETURNDATASIZE 0000026e: PUSH1 0x00 00000270: REVERT 00000271: JUMPDEST 00000272: PUSH1 0x01 00000274: PUSH1 0x01 00000276: PUSH1 0xf8 00000278: SHL 00000279: SUB 0000027a: NOT 0000027b: DUP4 0000027c: AND 0000027d: PUSH1 0x03 0000027f: PUSH1 0xf9 00000281: SHL 00000282: SUB 00000283: PUSH2 0x028e 00000286: JUMPI 00000287: PUSH2 0x0112 0000028a: PUSH2 0x0697 0000028d: JUMP 0000028e: JUMPDEST 0000028f: PUSH2 0x0296 00000292: PUSH2 0x0912 00000295: JUMP 00000296: JUMPDEST 00000297: PUSH1 0x01 00000299: PUSH1 0x01 0000029b: PUSH1 0xf8 0000029d: SHL 0000029e: SUB 0000029f: NOT 000002a0: DUP4 000002a1: AND 000002a2: PUSH1 0x01 000002a4: PUSH1 0xfb 000002a6: SHL 000002a7: SUB 000002a8: PUSH2 0x0112 000002ab: JUMPI 000002ac: PUSH1 0x40 000002ae: MLOAD 000002af: COINBASE 000002b0: SWAP1 000002b1: CALLVALUE 000002b2: DUP1 000002b3: ISZERO 000002b4: PUSH2 0x08fc 000002b7: MUL 000002b8: SWAP2 000002b9: PUSH1 0x00 000002bb: DUP2 000002bc: DUP2 000002bd: DUP2 000002be: DUP6 000002bf: DUP9 000002c0: DUP9 000002c1: CALL 000002c2: SWAP4 000002c3: POP 000002c4: POP 000002c5: POP 000002c6: POP 000002c7: ISZERO 000002c8: DUP1 000002c9: ISZERO 000002ca: PUSH2 0x0112 000002cd: JUMPI 000002ce: RETURNDATASIZE 000002cf: PUSH1 0x00 000002d1: DUP1 000002d2: RETURNDATACOPY 000002d3: RETURNDATASIZE 000002d4: PUSH1 0x00 000002d6: REVERT 000002d7: JUMPDEST 000002d8: PUSH2 0x0112 000002db: PUSH2 0x02e5 000002de: CALLDATASIZE 000002df: PUSH1 0x04 000002e1: PUSH2 0x2485 000002e4: JUMP 000002e5: JUMPDEST 000002e6: PUSH2 0x0b66 000002e9: JUMP 000002ea: JUMPDEST 000002eb: CALLVALUE 000002ec: DUP1 000002ed: ISZERO 000002ee: PUSH2 0x02f6 000002f1: JUMPI 000002f2: PUSH1 0x00 000002f4: DUP1 000002f5: REVERT 000002f6: JUMPDEST 000002f7: POP 000002f8: PUSH2 0x0112 000002fb: PUSH2 0x0305 000002fe: CALLDATASIZE 000002ff: PUSH1 0x04 00000301: PUSH2 0x24eb 00000304: JUMP 00000305: JUMPDEST 00000306: PUSH2 0x0c7a 00000309: JUMP 0000030a: JUMPDEST 0000030b: PUSH2 0x0112 0000030e: PUSH2 0x0318 00000311: CALLDATASIZE 00000312: PUSH1 0x04 00000314: PUSH2 0x2485 00000317: JUMP 00000318: JUMPDEST 00000319: PUSH2 0x0c88 0000031c: JUMP 0000031d: JUMPDEST 0000031e: PUSH2 0x0112 00000321: PUSH2 0x032b 00000324: CALLDATASIZE 00000325: PUSH1 0x04 00000327: PUSH2 0x253e 0000032a: JUMP 0000032b: JUMPDEST 0000032c: PUSH2 0x0e24 0000032f: JUMP 00000330: JUMPDEST 00000331: CALLVALUE 00000332: DUP1 00000333: ISZERO 00000334: PUSH2 0x033c 00000337: JUMPI 00000338: PUSH1 0x00 0000033a: DUP1 0000033b: REVERT 0000033c: JUMPDEST 0000033d: POP 0000033e: PUSH2 0x0112 00000341: PUSH2 0x0e5e 00000344: JUMP 00000345: JUMPDEST 00000346: CALLVALUE 00000347: DUP1 00000348: ISZERO 00000349: PUSH2 0x0351 0000034c: JUMPI 0000034d: PUSH1 0x00 0000034f: DUP1 00000350: REVERT 00000351: JUMPDEST 00000352: POP 00000353: PUSH2 0x0112 00000356: PUSH2 0x0360 00000359: CALLDATASIZE 0000035a: PUSH1 0x04 0000035c: PUSH2 0x2559 0000035f: JUMP 00000360: JUMPDEST 00000361: PUSH2 0x0e71 00000364: JUMP 00000365: JUMPDEST 00000366: PUSH2 0x0112 00000369: PUSH2 0x0373 0000036c: CALLDATASIZE 0000036d: PUSH1 0x04 0000036f: PUSH2 0x2584 00000372: JUMP 00000373: JUMPDEST 00000374: PUSH2 0x0f7c 00000377: JUMP 00000378: JUMPDEST 00000379: PUSH2 0x0112 0000037c: PUSH2 0x0386 0000037f: CALLDATASIZE 00000380: PUSH1 0x04 00000382: PUSH2 0x2606 00000385: JUMP 00000386: JUMPDEST 00000387: PUSH2 0x10a9 0000038a: JUMP 0000038b: JUMPDEST 0000038c: PUSH2 0x039e 0000038f: PUSH2 0x0399 00000392: CALLDATASIZE 00000393: PUSH1 0x04 00000395: PUSH2 0x265a 00000398: JUMP 00000399: JUMPDEST 0000039a: PUSH2 0x12ae 0000039d: JUMP 0000039e: JUMPDEST 0000039f: PUSH1 0x40 000003a1: MLOAD 000003a2: PUSH2 0x03ab 000003a5: SWAP2 000003a6: SWAP1 000003a7: PUSH2 0x26ec 000003aa: JUMP 000003ab: JUMPDEST 000003ac: PUSH1 0x40 000003ae: MLOAD 000003af: DUP1 000003b0: SWAP2 000003b1: SUB 000003b2: SWAP1 000003b3: RETURN 000003b4: JUMPDEST 000003b5: CALLVALUE 000003b6: DUP1 000003b7: ISZERO 000003b8: PUSH2 0x03c0 000003bb: JUMPI 000003bc: PUSH1 0x00 000003be: DUP1 000003bf: REVERT 000003c0: JUMPDEST 000003c1: POP 000003c2: PUSH2 0x0112 000003c5: PUSH2 0x03cf 000003c8: CALLDATASIZE 000003c9: PUSH1 0x04 000003cb: PUSH2 0x24eb 000003ce: JUMP 000003cf: JUMPDEST 000003d0: PUSH2 0x13c0 000003d3: JUMP 000003d4: JUMPDEST 000003d5: PUSH2 0x04c5 000003d8: PUSH20 0xa6ae57b1da8238cd149bc718c40578e4620b752c 000003ed: CALLER 000003ee: EQ 000003ef: DUP1 000003f0: PUSH2 0x040c 000003f3: JUMPI 000003f4: POP 000003f5: PUSH20 0x26ce7c1976c5eec83ea6ac22d83cb341b08850af 0000040a: CALLER 0000040b: EQ 0000040c: JUMPDEST 0000040d: DUP1 0000040e: PUSH2 0x042a 00000411: JUMPI 00000412: POP 00000413: PUSH20 0xb58555fcba6479fced7de1485eb054943a09af7b 00000428: CALLER 00000429: EQ 0000042a: JUMPDEST 0000042b: DUP1 0000042c: PUSH2 0x0448 0000042f: JUMPI 00000430: POP 00000431: PUSH20 0xb7ab1de5b259a880c4bb5451bdbe6f80f3798538 00000446: CALLER 00000447: EQ 00000448: JUMPDEST 00000449: DUP1 0000044a: PUSH2 0x0466 0000044d: JUMPI 0000044e: POP 0000044f: PUSH20 0x4f80b2cd1f550f81581c15f690bdd623f3824c86 00000464: CALLER 00000465: EQ 00000466: JUMPDEST 00000467: DUP1 00000468: PUSH2 0x0484 0000046b: JUMPI 0000046c: POP 0000046d: PUSH20 0x5b5001c4f80f33ec93b891062ed2e1d0acc05bb6 00000482: CALLER 00000483: EQ 00000484: JUMPDEST 00000485: DUP1 00000486: PUSH2 0x04a2 00000489: JUMPI 0000048a: POP 0000048b: PUSH20 0x52b86a86e4d764e8275391c436127e60340a0e6a 000004a0: CALLER 000004a1: EQ 000004a2: JUMPDEST 000004a3: DUP1 000004a4: PUSH2 0x04c0 000004a7: JUMPI 000004a8: POP 000004a9: PUSH20 0x41d3ab85aafed2ef9e644cb7d3bbca2fc4d8cac8 000004be: CALLER 000004bf: EQ 000004c0: JUMPDEST 000004c1: PUSH2 0x13ce 000004c4: JUMP 000004c5: JUMPDEST 000004c6: JUMP 000004c7: JUMPDEST 000004c8: PUSH1 0x00 000004ca: DUP1 000004cb: PUSH1 0x00 000004cd: DUP1 000004ce: PUSH1 0x00 000004d0: DUP1 000004d1: PUSH1 0x40 000004d3: MLOAD 000004d4: PUSH1 0x3b 000004d6: PUSH1 0x0b 000004d8: DUP3 000004d9: CALLDATACOPY 000004da: PUSH1 0x0c 000004dc: DUP2 000004dd: SUB 000004de: MLOAD 000004df: SWAP7 000004e0: POP 000004e1: PUSH1 0x14 000004e3: DUP2 000004e4: ADD 000004e5: MLOAD 000004e6: PUSH1 0xf8 000004e8: SHR 000004e9: PUSH1 0x02 000004eb: SHL 000004ec: PUSH1 0x15 000004ee: DUP3 000004ef: ADD 000004f0: MLOAD 000004f1: PUSH1 0xe0 000004f3: SHR 000004f4: DUP1 000004f5: DUP3 000004f6: SHL 000004f7: SWAP5 000004f8: POP 000004f9: POP 000004fa: POP 000004fb: PUSH1 0x19 000004fd: DUP2 000004fe: ADD 000004ff: MLOAD 00000500: SWAP6 00000501: POP 00000502: PUSH1 0x39 00000504: DUP2 00000505: ADD 00000506: MLOAD 00000507: SWAP5 00000508: POP 00000509: PUSH1 0x3a 0000050b: DUP2 0000050c: ADD 0000050d: MLOAD 0000050e: SWAP2 0000050f: POP 00000510: POP 00000511: PUSH2 0x0525 00000514: PUSH1 0x00 00000516: DUP1 00000517: MLOAD 00000518: PUSH1 0x20 0000051a: PUSH2 0x291e 0000051d: DUP4 0000051e: CODECOPY 0000051f: DUP2 00000520: MLOAD 00000521: SWAP2 00000522: MSTORE 00000523: SWAP1 00000524: JUMP 00000525: JUMPDEST 00000526: SWAP3 00000527: POP 00000528: DUP7 00000529: ISZERO 0000052a: PUSH2 0x0550 0000052d: JUMPI 0000052e: PUSH2 0x054b 00000531: PUSH2 0x04c0 00000534: DUP8 00000535: DUP6 00000536: DUP6 00000537: DUP10 00000538: PUSH1 0x01 0000053a: PUSH1 0x01 0000053c: PUSH1 0xf8 0000053e: SHL 0000053f: SUB 00000540: NOT 00000541: DUP11 00000542: AND 00000543: ISZERO 00000544: ISZERO 00000545: PUSH1 0x00 00000547: PUSH2 0x1476 0000054a: JUMP 0000054b: JUMPDEST 0000054c: PUSH2 0x05bc 0000054f: JUMP 00000550: JUMPDEST 00000551: PUSH1 0x00 00000553: DUP1 00000554: PUSH1 0x40 00000556: MLOAD 00000557: PUSH1 0x16 00000559: PUSH1 0x46 0000055b: DUP3 0000055c: CALLDATACOPY 0000055d: DUP1 0000055e: MLOAD 0000055f: PUSH1 0x14 00000561: SWAP1 00000562: SWAP2 00000563: ADD 00000564: MLOAD 00000565: SWAP1 00000566: SWAP3 00000567: POP 00000568: SWAP1 00000569: POP 0000056a: DUP7 0000056b: PUSH2 0x0586 0000056e: DUP7 0000056f: DUP11 00000570: DUP8 00000571: PUSH1 0x01 00000573: PUSH1 0x01 00000575: PUSH1 0xf8 00000577: SHL 00000578: SUB 00000579: NOT 0000057a: DUP12 0000057b: AND 0000057c: ISZERO 0000057d: ISZERO 0000057e: PUSH1 0x00 00000580: DUP9 00000581: DUP9 00000582: PUSH2 0x14bc 00000585: JUMP 00000586: JUMPDEST 00000587: LT 00000588: ISZERO 00000589: PUSH2 0x05b9 0000058c: JUMPI 0000058d: PUSH1 0x40 0000058f: MLOAD 00000590: PUSH3 0x461bcd 00000594: PUSH1 0xe5 00000596: SHL 00000597: DUP2 00000598: MSTORE 00000599: PUSH1 0x20 0000059b: PUSH1 0x04 0000059d: DUP3 0000059e: ADD 0000059f: MSTORE 000005a0: PUSH1 0x02 000005a2: PUSH1 0x24 000005a4: DUP3 000005a5: ADD 000005a6: MSTORE 000005a7: PUSH2 0x4631 000005aa: PUSH1 0xf0 000005ac: SHL 000005ad: PUSH1 0x44 000005af: DUP3 000005b0: ADD 000005b1: MSTORE 000005b2: PUSH1 0x64 000005b4: ADD 000005b5: PUSH2 0x01b4 000005b8: JUMP 000005b9: JUMPDEST 000005ba: POP 000005bb: POP 000005bc: JUMPDEST 000005bd: POP 000005be: POP 000005bf: POP 000005c0: POP 000005c1: POP 000005c2: POP 000005c3: POP 000005c4: JUMP 000005c5: JUMPDEST 000005c6: PUSH1 0x00 000005c8: DUP1 000005c9: PUSH1 0x00 000005cb: DUP1 000005cc: PUSH1 0x00 000005ce: PUSH1 0x40 000005d0: MLOAD 000005d1: PUSH1 0x4e 000005d3: PUSH1 0x0b 000005d5: DUP3 000005d6: CALLDATACOPY 000005d7: PUSH1 0x0c 000005d9: DUP2 000005da: SUB 000005db: MLOAD 000005dc: SWAP6 000005dd: POP 000005de: PUSH1 0x08 000005e0: DUP2 000005e1: ADD 000005e2: MLOAD 000005e3: SWAP5 000005e4: POP 000005e5: PUSH1 0x28 000005e7: DUP2 000005e8: ADD 000005e9: MLOAD 000005ea: SWAP4 000005eb: POP 000005ec: PUSH1 0x48 000005ee: DUP2 000005ef: ADD 000005f0: MLOAD 000005f1: PUSH1 0xf8 000005f3: SHR 000005f4: PUSH1 0x02 000005f6: SHL 000005f7: PUSH1 0x49 000005f9: DUP3 000005fa: ADD 000005fb: MLOAD 000005fc: PUSH1 0xe0 000005fe: SHR 000005ff: DUP1 00000600: DUP3 00000601: SHL 00000602: SWAP5 00000603: POP 00000604: POP 00000605: POP 00000606: PUSH1 0x4d 00000608: DUP2 00000609: ADD 0000060a: MLOAD 0000060b: SWAP2 0000060c: POP 0000060d: POP 0000060e: DUP6 0000060f: ISZERO 00000610: PUSH2 0x0635 00000613: JUMPI 00000614: PUSH2 0x0630 00000617: PUSH2 0x04c0 0000061a: DUP6 0000061b: DUP8 0000061c: DUP7 0000061d: DUP7 0000061e: PUSH1 0x01 00000620: PUSH1 0x01 00000622: PUSH1 0xf8 00000624: SHL 00000625: SUB 00000626: NOT 00000627: DUP8 00000628: AND 00000629: ISZERO 0000062a: PUSH1 0x00 0000062c: PUSH2 0x1476 0000062f: JUMP 00000630: JUMPDEST 00000631: PUSH2 0x068f 00000634: JUMP 00000635: JUMPDEST 00000636: PUSH1 0x00 00000638: DUP1 00000639: PUSH1 0x40 0000063b: MLOAD 0000063c: PUSH1 0x03 0000063e: PUSH1 0x59 00000640: DUP3 00000641: CALLDATACOPY 00000642: DUP1 00000643: MLOAD 00000644: PUSH1 0x01 00000646: SWAP1 00000647: SWAP2 00000648: ADD 00000649: MLOAD 0000064a: SWAP1 0000064b: SWAP3 0000064c: POP 0000064d: SWAP1 0000064e: POP 0000064f: PUSH2 0x068c 00000652: DUP5 00000653: PUSH2 0x0685 00000656: DUP10 00000657: DUP10 00000658: DUP10 00000659: PUSH1 0x01 0000065b: PUSH1 0x01 0000065d: PUSH1 0xf8 0000065f: SHL 00000660: SUB 00000661: NOT 00000662: DUP10 00000663: AND 00000664: ISZERO 00000665: ISZERO 00000666: PUSH1 0x00 00000668: PUSH20 0x6015551cd911ff4685072e2793f56c841e3ab661 0000067d: PUSH1 0x61 0000067f: SHL 00000680: DUP10 00000681: PUSH2 0x14bc 00000684: JUMP 00000685: JUMPDEST 00000686: LT 00000687: ISZERO 00000688: PUSH2 0x13ce 0000068b: JUMP 0000068c: JUMPDEST 0000068d: POP 0000068e: POP 0000068f: JUMPDEST 00000690: POP 00000691: POP 00000692: POP 00000693: POP 00000694: POP 00000695: POP 00000696: JUMP 00000697: JUMPDEST 00000698: PUSH1 0x40 0000069a: DUP1 0000069b: MLOAD 0000069c: PUSH1 0xa0 0000069e: DUP2 0000069f: ADD 000006a0: DUP3 000006a1: MSTORE 000006a2: PUSH1 0x00 000006a4: DUP1 000006a5: DUP3 000006a6: MSTORE 000006a7: PUSH1 0x20 000006a9: DUP3 000006aa: ADD 000006ab: DUP2 000006ac: SWAP1 000006ad: MSTORE 000006ae: SWAP2 000006af: DUP2 000006b0: ADD 000006b1: DUP3 000006b2: SWAP1 000006b3: MSTORE 000006b4: PUSH1 0x60 000006b6: DUP2 000006b7: ADD 000006b8: DUP3 000006b9: SWAP1 000006ba: MSTORE 000006bb: PUSH1 0x80 000006bd: DUP2 000006be: ADD 000006bf: SWAP2 000006c0: SWAP1 000006c1: SWAP2 000006c2: MSTORE 000006c3: PUSH1 0x40 000006c5: DUP1 000006c6: MLOAD 000006c7: PUSH1 0xc0 000006c9: DUP2 000006ca: ADD 000006cb: DUP3 000006cc: MSTORE 000006cd: PUSH1 0x00 000006cf: DUP1 000006d0: DUP3 000006d1: MSTORE 000006d2: PUSH1 0x20 000006d4: DUP3 000006d5: ADD 000006d6: DUP2 000006d7: SWAP1 000006d8: MSTORE 000006d9: SWAP2 000006da: DUP2 000006db: ADD 000006dc: DUP3 000006dd: SWAP1 000006de: MSTORE 000006df: PUSH1 0x60 000006e1: DUP2 000006e2: ADD 000006e3: DUP3 000006e4: SWAP1 000006e5: MSTORE 000006e6: PUSH1 0x80 000006e8: DUP2 000006e9: ADD 000006ea: DUP3 000006eb: SWAP1 000006ec: MSTORE 000006ed: PUSH1 0xa0 000006ef: DUP2 000006f0: ADD 000006f1: SWAP2 000006f2: SWAP1 000006f3: SWAP2 000006f4: MSTORE 000006f5: PUSH1 0x00 000006f7: DUP1 000006f8: PUSH1 0x00 000006fa: DUP1 000006fb: PUSH1 0x00 000006fd: PUSH1 0x40 000006ff: MLOAD 00000700: PUSH1 0xbb 00000702: PUSH1 0x0b 00000704: DUP3 00000705: CALLDATACOPY 00000706: DUP1 00000707: MLOAD 00000708: PUSH1 0xf8 0000070a: SHR 0000070b: PUSH1 0x02 0000070d: PUSH1 0x01 0000070f: DUP3 00000710: XOR 00000711: MOD 00000712: PUSH1 0x20 00000714: DUP11 00000715: ADD 00000716: MSTORE 00000717: PUSH1 0x01 00000719: DUP2 0000071a: PUSH1 0x01 0000071c: SHR 0000071d: AND 0000071e: SWAP6 0000071f: POP 00000720: PUSH1 0x01 00000722: DUP2 00000723: PUSH1 0x02 00000725: SHR 00000726: AND 00000727: SWAP7 00000728: POP 00000729: DUP1 0000072a: PUSH1 0x03 0000072c: SHR 0000072d: PUSH1 0xa0 0000072f: DUP10 00000730: ADD 00000731: MSTORE 00000732: POP 00000733: PUSH1 0x01 00000735: PUSH1 0x01 00000737: PUSH1 0xa0 00000739: SHL 0000073a: SUB 0000073b: PUSH1 0x0b 0000073d: DUP3 0000073e: SUB 0000073f: MLOAD 00000740: AND 00000741: DUP9 00000742: MSTORE 00000743: PUSH1 0x01 00000745: PUSH1 0x01 00000747: PUSH1 0xa0 00000749: SHL 0000074a: SUB 0000074b: PUSH1 0x09 0000074d: DUP3 0000074e: ADD 0000074f: MLOAD 00000750: AND 00000751: DUP8 00000752: MSTORE 00000753: PUSH1 0x01 00000755: PUSH1 0x01 00000757: PUSH1 0xa0 00000759: SHL 0000075a: SUB 0000075b: PUSH1 0x1d 0000075d: DUP3 0000075e: ADD 0000075f: MLOAD 00000760: AND 00000761: PUSH1 0x20 00000763: DUP9 00000764: ADD 00000765: MSTORE 00000766: PUSH1 0x3d 00000768: DUP2 00000769: ADD 0000076a: MLOAD 0000076b: PUSH1 0xf8 0000076d: SHR 0000076e: PUSH1 0x02 00000770: SHL 00000771: PUSH1 0x3e 00000773: DUP3 00000774: ADD 00000775: MLOAD 00000776: PUSH1 0xe0 00000778: SHR 00000779: DUP1 0000077a: DUP3 0000077b: SHL 0000077c: PUSH1 0x80 0000077e: DUP12 0000077f: ADD 00000780: MSTORE 00000781: POP 00000782: POP 00000783: PUSH1 0x42 00000785: DUP2 00000786: ADD 00000787: MLOAD 00000788: PUSH1 0x40 0000078a: DUP9 0000078b: ADD 0000078c: MSTORE 0000078d: PUSH1 0x62 0000078f: DUP2 00000790: ADD 00000791: MLOAD 00000792: SWAP3 00000793: POP 00000794: PUSH1 0x82 00000796: DUP2 00000797: ADD 00000798: MLOAD 00000799: SWAP2 0000079a: POP 0000079b: PUSH1 0x83 0000079d: DUP2 0000079e: ADD 0000079f: MLOAD 000007a0: SWAP4 000007a1: POP 000007a2: PUSH1 0x85 000007a4: DUP2 000007a5: ADD 000007a6: MLOAD 000007a7: PUSH1 0x60 000007a9: DUP10 000007aa: ADD 000007ab: MSTORE 000007ac: PUSH1 0x87 000007ae: DUP2 000007af: ADD 000007b0: MLOAD 000007b1: PUSH1 0x80 000007b3: DUP9 000007b4: ADD 000007b5: MSTORE 000007b6: PUSH1 0x01 000007b8: PUSH1 0x01 000007ba: PUSH1 0xa0 000007bc: SHL 000007bd: SUB 000007be: PUSH1 0x9b 000007c0: DUP3 000007c1: ADD 000007c2: MLOAD 000007c3: AND 000007c4: PUSH1 0x60 000007c6: DUP9 000007c7: ADD 000007c8: MSTORE 000007c9: POP 000007ca: PUSH2 0x07de 000007cd: PUSH1 0x00 000007cf: DUP1 000007d0: MLOAD 000007d1: PUSH1 0x20 000007d3: PUSH2 0x291e 000007d6: DUP4 000007d7: CODECOPY 000007d8: DUP2 000007d9: MLOAD 000007da: SWAP2 000007db: MSTORE 000007dc: SWAP1 000007dd: JUMP 000007de: JUMPDEST 000007df: PUSH1 0x01 000007e1: PUSH1 0x01 000007e3: PUSH1 0xa0 000007e5: SHL 000007e6: SUB 000007e7: AND 000007e8: PUSH1 0x40 000007ea: DUP9 000007eb: ADD 000007ec: MSTORE 000007ed: POP 000007ee: DUP3 000007ef: ISZERO 000007f0: PUSH2 0x0831 000007f3: JUMPI 000007f4: DUP1 000007f5: PUSH2 0x07fe 000007f8: DUP8 000007f9: DUP8 000007fa: PUSH2 0x15a1 000007fd: JUMP 000007fe: JUMPDEST 000007ff: LT 00000800: ISZERO 00000801: PUSH2 0x0630 00000804: JUMPI 00000805: PUSH1 0x40 00000807: MLOAD 00000808: PUSH3 0x461bcd 0000080c: PUSH1 0xe5 0000080e: SHL 0000080f: DUP2 00000810: MSTORE 00000811: PUSH1 0x20 00000813: PUSH1 0x04 00000815: DUP3 00000816: ADD 00000817: MSTORE 00000818: PUSH1 0x02 0000081a: PUSH1 0x24 0000081c: DUP3 0000081d: ADD 0000081e: MSTORE 0000081f: PUSH2 0x5331 00000822: PUSH1 0xf0 00000824: SHL 00000825: PUSH1 0x44 00000827: DUP3 00000828: ADD 00000829: MSTORE 0000082a: PUSH1 0x64 0000082c: ADD 0000082d: PUSH2 0x01b4 00000830: JUMP 00000831: JUMPDEST 00000832: DUP6 00000833: PUSH1 0x20 00000835: ADD 00000836: MLOAD 00000837: ISZERO 00000838: PUSH2 0x088f 0000083b: JUMPI 0000083c: PUSH2 0x0859 0000083f: DUP7 00000840: PUSH1 0x00 00000842: ADD 00000843: MLOAD 00000844: DUP8 00000845: PUSH1 0x40 00000847: ADD 00000848: MLOAD 00000849: DUP9 0000084a: PUSH1 0x80 0000084c: ADD 0000084d: MLOAD 0000084e: DUP6 0000084f: DUP9 00000850: DUP11 00000851: PUSH1 0x00 00000853: ADD 00000854: MLOAD 00000855: PUSH2 0x1476 00000858: JUMP 00000859: JUMPDEST 0000085a: PUSH2 0x088a 0000085d: JUMPI 0000085e: PUSH1 0x40 00000860: MLOAD 00000861: PUSH3 0x461bcd 00000865: PUSH1 0xe5 00000867: SHL 00000868: DUP2 00000869: MSTORE 0000086a: PUSH1 0x20 0000086c: PUSH1 0x04 0000086e: DUP3 0000086f: ADD 00000870: MSTORE 00000871: PUSH1 0x02 00000873: PUSH1 0x24 00000875: DUP3 00000876: ADD 00000877: MSTORE 00000878: PUSH2 0x2999 0000087b: PUSH1 0xf1 0000087d: SHL 0000087e: PUSH1 0x44 00000880: DUP3 00000881: ADD 00000882: MSTORE 00000883: PUSH1 0x64 00000885: ADD 00000886: PUSH2 0x01b4 00000889: JUMP 0000088a: JUMPDEST 0000088b: PUSH2 0x08f0 0000088e: JUMP 0000088f: JUMPDEST 00000890: DUP2 00000891: PUSH2 0x08bd 00000894: DUP8 00000895: PUSH1 0x40 00000897: ADD 00000898: MLOAD 00000899: DUP9 0000089a: PUSH1 0x00 0000089c: ADD 0000089d: MLOAD 0000089e: DUP10 0000089f: PUSH1 0x80 000008a1: ADD 000008a2: MLOAD 000008a3: DUP9 000008a4: DUP11 000008a5: PUSH1 0x00 000008a7: ADD 000008a8: MLOAD 000008a9: DUP12 000008aa: PUSH1 0x20 000008ac: ADD 000008ad: MLOAD 000008ae: PUSH1 0x60 000008b0: SHL 000008b1: DUP14 000008b2: PUSH1 0x60 000008b4: ADD 000008b5: MLOAD 000008b6: PUSH1 0xf0 000008b8: SHL 000008b9: PUSH2 0x14bc 000008bc: JUMP 000008bd: JUMPDEST 000008be: LT 000008bf: ISZERO 000008c0: PUSH2 0x08f0 000008c3: JUMPI 000008c4: PUSH1 0x40 000008c6: MLOAD 000008c7: PUSH3 0x461bcd 000008cb: PUSH1 0xe5 000008cd: SHL 000008ce: DUP2 000008cf: MSTORE 000008d0: PUSH1 0x20 000008d2: PUSH1 0x04 000008d4: DUP3 000008d5: ADD 000008d6: MSTORE 000008d7: PUSH1 0x02 000008d9: PUSH1 0x24 000008db: DUP3 000008dc: ADD 000008dd: MSTORE 000008de: PUSH2 0x5333 000008e1: PUSH1 0xf0 000008e3: SHL 000008e4: PUSH1 0x44 000008e6: DUP3 000008e7: ADD 000008e8: MSTORE 000008e9: PUSH1 0x64 000008eb: ADD 000008ec: PUSH2 0x01b4 000008ef: JUMP 000008f0: JUMPDEST 000008f1: PUSH2 0x068f 000008f4: PUSH2 0x04c0 000008f7: DUP7 000008f8: PUSH1 0x00 000008fa: ADD 000008fb: MLOAD 000008fc: DUP8 000008fd: PUSH1 0x20 000008ff: ADD 00000900: MLOAD 00000901: DUP9 00000902: PUSH1 0x40 00000904: ADD 00000905: MLOAD 00000906: DUP6 00000907: DUP11 00000908: PUSH1 0xa0 0000090a: ADD 0000090b: MLOAD 0000090c: PUSH1 0x00 0000090e: PUSH2 0x1476 00000911: JUMP 00000912: JUMPDEST 00000913: PUSH1 0x40 00000915: DUP1 00000916: MLOAD 00000917: PUSH1 0xa0 00000919: DUP2 0000091a: ADD 0000091b: DUP3 0000091c: MSTORE 0000091d: PUSH1 0x00 0000091f: DUP1 00000920: DUP3 00000921: MSTORE 00000922: PUSH1 0x20 00000924: DUP3 00000925: ADD 00000926: DUP2 00000927: SWAP1 00000928: MSTORE 00000929: SWAP2 0000092a: DUP2 0000092b: ADD 0000092c: DUP3 0000092d: SWAP1 0000092e: MSTORE 0000092f: PUSH1 0x60 00000931: DUP2 00000932: ADD 00000933: DUP3 00000934: SWAP1 00000935: MSTORE 00000936: PUSH1 0x80 00000938: DUP2 00000939: ADD 0000093a: SWAP2 0000093b: SWAP1 0000093c: SWAP2 0000093d: MSTORE 0000093e: PUSH1 0x40 00000940: DUP1 00000941: MLOAD 00000942: PUSH1 0xc0 00000944: DUP2 00000945: ADD 00000946: DUP3 00000947: MSTORE 00000948: PUSH1 0x00 0000094a: DUP1 0000094b: DUP3 0000094c: MSTORE 0000094d: PUSH1 0x20 0000094f: DUP3 00000950: ADD 00000951: DUP2 00000952: SWAP1 00000953: MSTORE 00000954: SWAP2 00000955: DUP2 00000956: ADD 00000957: DUP3 00000958: SWAP1 00000959: MSTORE 0000095a: PUSH1 0x60 0000095c: DUP2 0000095d: ADD 0000095e: DUP3 0000095f: SWAP1 00000960: MSTORE 00000961: PUSH1 0x80 00000963: DUP2 00000964: ADD 00000965: DUP3 00000966: SWAP1 00000967: MSTORE 00000968: PUSH1 0xa0 0000096a: DUP2 0000096b: ADD 0000096c: SWAP2 0000096d: SWAP1 0000096e: SWAP2 0000096f: MSTORE 00000970: PUSH1 0x00 00000972: DUP1 00000973: PUSH1 0x00 00000975: DUP1 00000976: PUSH1 0x00 00000978: PUSH1 0x40 0000097a: MLOAD 0000097b: PUSH1 0xbb 0000097d: PUSH1 0x0b 0000097f: DUP3 00000980: CALLDATACOPY 00000981: DUP1 00000982: MLOAD 00000983: PUSH1 0xf8 00000985: SHR 00000986: PUSH1 0x02 00000988: PUSH1 0x01 0000098a: DUP3 0000098b: XOR 0000098c: MOD 0000098d: PUSH1 0x20 0000098f: DUP11 00000990: ADD 00000991: MSTORE 00000992: PUSH1 0x01 00000994: DUP2 00000995: PUSH1 0x01 00000997: SHR 00000998: AND 00000999: SWAP6 0000099a: POP 0000099b: PUSH1 0x01 0000099d: DUP2 0000099e: PUSH1 0x02 000009a0: SHR 000009a1: AND 000009a2: SWAP7 000009a3: POP 000009a4: DUP1 000009a5: PUSH1 0x03 000009a7: SHR 000009a8: PUSH1 0xa0 000009aa: DUP10 000009ab: ADD 000009ac: MSTORE 000009ad: POP 000009ae: PUSH1 0x01 000009b0: PUSH1 0x01 000009b2: PUSH1 0xa0 000009b4: SHL 000009b5: SUB 000009b6: PUSH1 0x0b 000009b8: DUP3 000009b9: SUB 000009ba: MLOAD 000009bb: AND 000009bc: DUP9 000009bd: MSTORE 000009be: PUSH1 0x01 000009c0: PUSH1 0x01 000009c2: PUSH1 0xa0 000009c4: SHL 000009c5: SUB 000009c6: PUSH1 0x09 000009c8: DUP3 000009c9: ADD 000009ca: MLOAD 000009cb: AND 000009cc: DUP8 000009cd: MSTORE 000009ce: PUSH1 0x01 000009d0: PUSH1 0x01 000009d2: PUSH1 0xa0 000009d4: SHL 000009d5: SUB 000009d6: PUSH1 0x1d 000009d8: DUP3 000009d9: ADD 000009da: MLOAD 000009db: AND 000009dc: PUSH1 0x40 000009de: DUP10 000009df: ADD 000009e0: MSTORE 000009e1: PUSH1 0x01 000009e3: PUSH1 0x01 000009e5: PUSH1 0xa0 000009e7: SHL 000009e8: SUB 000009e9: PUSH1 0x31 000009eb: DUP3 000009ec: ADD 000009ed: MLOAD 000009ee: AND 000009ef: PUSH1 0x20 000009f1: DUP9 000009f2: ADD 000009f3: MSTORE 000009f4: PUSH1 0x51 000009f6: DUP2 000009f7: ADD 000009f8: MLOAD 000009f9: PUSH1 0x80 000009fb: DUP10 000009fc: ADD 000009fd: MSTORE 000009fe: PUSH1 0x71 00000a00: DUP2 00000a01: ADD 00000a02: MLOAD 00000a03: SWAP4 00000a04: POP 00000a05: PUSH1 0x91 00000a07: DUP2 00000a08: ADD 00000a09: MLOAD 00000a0a: PUSH1 0x40 00000a0c: DUP9 00000a0d: ADD 00000a0e: MSTORE 00000a0f: PUSH1 0xb1 00000a11: DUP2 00000a12: ADD 00000a13: MLOAD 00000a14: PUSH1 0xf8 00000a16: SHR 00000a17: PUSH1 0x02 00000a19: SHL 00000a1a: PUSH1 0xb2 00000a1c: DUP3 00000a1d: ADD 00000a1e: MLOAD 00000a1f: PUSH1 0xe0 00000a21: SHR 00000a22: DUP1 00000a23: DUP3 00000a24: SHL 00000a25: SWAP5 00000a26: POP 00000a27: POP 00000a28: POP 00000a29: PUSH1 0xb6 00000a2b: DUP2 00000a2c: ADD 00000a2d: MLOAD 00000a2e: SWAP2 00000a2f: POP 00000a30: PUSH1 0x99 00000a32: DUP2 00000a33: ADD 00000a34: MLOAD 00000a35: PUSH1 0x60 00000a37: DUP10 00000a38: ADD 00000a39: MSTORE 00000a3a: PUSH1 0x9b 00000a3c: DUP2 00000a3d: ADD 00000a3e: MLOAD 00000a3f: PUSH1 0x80 00000a41: DUP9 00000a42: ADD 00000a43: MSTORE 00000a44: POP 00000a45: PUSH2 0x0a59 00000a48: PUSH1 0x00 00000a4a: DUP1 00000a4b: MLOAD 00000a4c: PUSH1 0x20 00000a4e: PUSH2 0x291e 00000a51: DUP4 00000a52: CODECOPY 00000a53: DUP2 00000a54: MLOAD 00000a55: SWAP2 00000a56: MSTORE 00000a57: SWAP1 00000a58: JUMP 00000a59: JUMPDEST 00000a5a: PUSH1 0x01 00000a5c: PUSH1 0x01 00000a5e: PUSH1 0xa0 00000a60: SHL 00000a61: SUB 00000a62: AND 00000a63: PUSH1 0x60 00000a65: DUP8 00000a66: ADD 00000a67: MSTORE 00000a68: POP 00000a69: DUP3 00000a6a: ISZERO 00000a6b: PUSH2 0x0aac 00000a6e: JUMPI 00000a6f: DUP1 00000a70: PUSH2 0x0a79 00000a73: DUP8 00000a74: DUP8 00000a75: PUSH2 0x15a1 00000a78: JUMP 00000a79: JUMPDEST 00000a7a: LT 00000a7b: ISZERO 00000a7c: PUSH2 0x0630 00000a7f: JUMPI 00000a80: PUSH1 0x40 00000a82: MLOAD 00000a83: PUSH3 0x461bcd 00000a87: PUSH1 0xe5 00000a89: SHL 00000a8a: DUP2 00000a8b: MSTORE 00000a8c: PUSH1 0x20 00000a8e: PUSH1 0x04 00000a90: DUP3 00000a91: ADD 00000a92: MSTORE 00000a93: PUSH1 0x02 00000a95: PUSH1 0x24 00000a97: DUP3 00000a98: ADD 00000a99: MSTORE 00000a9a: PUSH2 0x4531 00000a9d: PUSH1 0xf0 00000a9f: SHL 00000aa0: PUSH1 0x44 00000aa2: DUP3 00000aa3: ADD 00000aa4: MSTORE 00000aa5: PUSH1 0x64 00000aa7: ADD 00000aa8: PUSH2 0x01b4 00000aab: JUMP 00000aac: JUMPDEST 00000aad: DUP6 00000aae: PUSH1 0x20 00000ab0: ADD 00000ab1: MLOAD 00000ab2: ISZERO 00000ab3: PUSH2 0x0b05 00000ab6: JUMPI 00000ab7: PUSH2 0x0ad4 00000aba: DUP7 00000abb: PUSH1 0x00 00000abd: ADD 00000abe: MLOAD 00000abf: DUP8 00000ac0: PUSH1 0x40 00000ac2: ADD 00000ac3: MLOAD 00000ac4: DUP9 00000ac5: PUSH1 0x80 00000ac7: ADD 00000ac8: MLOAD 00000ac9: DUP6 00000aca: DUP9 00000acb: DUP11 00000acc: PUSH1 0x00 00000ace: ADD 00000acf: MLOAD 00000ad0: PUSH2 0x1476 00000ad3: JUMP 00000ad4: JUMPDEST 00000ad5: PUSH2 0x088a 00000ad8: JUMPI 00000ad9: PUSH1 0x40 00000adb: MLOAD 00000adc: PUSH3 0x461bcd 00000ae0: PUSH1 0xe5 00000ae2: SHL 00000ae3: DUP2 00000ae4: MSTORE 00000ae5: PUSH1 0x20 00000ae7: PUSH1 0x04 00000ae9: DUP3 00000aea: ADD 00000aeb: MSTORE 00000aec: PUSH1 0x02 00000aee: PUSH1 0x24 00000af0: DUP3 00000af1: ADD 00000af2: MSTORE 00000af3: PUSH2 0x2299 00000af6: PUSH1 0xf1 00000af8: SHL 00000af9: PUSH1 0x44 00000afb: DUP3 00000afc: ADD 00000afd: MSTORE 00000afe: PUSH1 0x64 00000b00: ADD 00000b01: PUSH2 0x01b4 00000b04: JUMP 00000b05: JUMPDEST 00000b06: DUP2 00000b07: PUSH2 0x0b33 00000b0a: DUP8 00000b0b: PUSH1 0x40 00000b0d: ADD 00000b0e: MLOAD 00000b0f: DUP9 00000b10: PUSH1 0x00 00000b12: ADD 00000b13: MLOAD 00000b14: DUP10 00000b15: PUSH1 0x80 00000b17: ADD 00000b18: MLOAD 00000b19: DUP9 00000b1a: DUP11 00000b1b: PUSH1 0x00 00000b1d: ADD 00000b1e: MLOAD 00000b1f: DUP12 00000b20: PUSH1 0x20 00000b22: ADD 00000b23: MLOAD 00000b24: PUSH1 0x60 00000b26: SHL 00000b27: DUP14 00000b28: PUSH1 0x60 00000b2a: ADD 00000b2b: MLOAD 00000b2c: PUSH1 0xf0 00000b2e: SHL 00000b2f: PUSH2 0x14bc 00000b32: JUMP 00000b33: JUMPDEST 00000b34: LT 00000b35: ISZERO 00000b36: PUSH2 0x08f0 00000b39: JUMPI 00000b3a: PUSH1 0x40 00000b3c: MLOAD 00000b3d: PUSH3 0x461bcd 00000b41: PUSH1 0xe5 00000b43: SHL 00000b44: DUP2 00000b45: MSTORE 00000b46: PUSH1 0x20 00000b48: PUSH1 0x04 00000b4a: DUP3 00000b4b: ADD 00000b4c: MSTORE 00000b4d: PUSH1 0x02 00000b4f: PUSH1 0x24 00000b51: DUP3 00000b52: ADD 00000b53: MSTORE 00000b54: PUSH2 0x4533 00000b57: PUSH1 0xf0 00000b59: SHL 00000b5a: PUSH1 0x44 00000b5c: DUP3 00000b5d: ADD 00000b5e: MSTORE 00000b5f: PUSH1 0x64 00000b61: ADD 00000b62: PUSH2 0x01b4 00000b65: JUMP 00000b66: JUMPDEST 00000b67: PUSH2 0x0b6e 00000b6a: PUSH2 0x1748 00000b6d: JUMP 00000b6e: JUMPDEST 00000b6f: PUSH2 0x0b7b 00000b72: PUSH1 0x20 00000b74: DUP3 00000b75: ADD 00000b76: DUP3 00000b77: PUSH2 0x26ff 00000b7a: JUMP 00000b7b: JUMPDEST 00000b7c: PUSH1 0x01 00000b7e: PUSH1 0x01 00000b80: PUSH1 0xb0 00000b82: SHL 00000b83: SUB 00000b84: NOT 00000b85: AND 00000b86: ISZERO 00000b87: PUSH2 0x0c07 00000b8a: JUMPI 00000b8b: TIMESTAMP 00000b8c: PUSH2 0x0b96 00000b8f: PUSH1 0x01 00000b91: NUMBER 00000b92: PUSH2 0x23d2 00000b95: JUMP 00000b96: JUMPDEST 00000b97: BLOCKHASH 00000b98: PUSH1 0x40 00000b9a: MLOAD 00000b9b: PUSH1 0x20 00000b9d: ADD 00000b9e: PUSH2 0x0bb1 00000ba1: SWAP3 00000ba2: SWAP2 00000ba3: SWAP1 00000ba4: SWAP2 00000ba5: DUP3 00000ba6: MSTORE 00000ba7: PUSH1 0x20 00000ba9: DUP3 00000baa: ADD 00000bab: MSTORE 00000bac: PUSH1 0x40 00000bae: ADD 00000baf: SWAP1 00000bb0: JUMP 00000bb1: JUMPDEST 00000bb2: PUSH1 0x40 00000bb4: DUP1 00000bb5: MLOAD 00000bb6: PUSH1 0x1f 00000bb8: NOT 00000bb9: DUP2 00000bba: DUP5 00000bbb: SUB 00000bbc: ADD 00000bbd: DUP2 00000bbe: MSTORE 00000bbf: SWAP2 00000bc0: SWAP1 00000bc1: MSTORE 00000bc2: DUP1 00000bc3: MLOAD 00000bc4: PUSH1 0x20 00000bc6: SWAP2 00000bc7: DUP3 00000bc8: ADD 00000bc9: KECCAK256 00000bca: PUSH1 0x01 00000bcc: PUSH1 0x01 00000bce: PUSH1 0xb0 00000bd0: SHL 00000bd1: SUB 00000bd2: NOT 00000bd3: AND 00000bd4: SWAP1 00000bd5: PUSH2 0x0be0 00000bd8: SWAP1 00000bd9: DUP4 00000bda: ADD 00000bdb: DUP4 00000bdc: PUSH2 0x26ff 00000bdf: JUMP 00000be0: JUMPDEST 00000be1: PUSH1 0x01 00000be3: PUSH1 0x01 00000be5: PUSH1 0xb0 00000be7: SHL 00000be8: SUB 00000be9: NOT 00000bea: AND 00000beb: EQ 00000bec: PUSH2 0x0c07 00000bef: JUMPI 00000bf0: PUSH1 0x40 00000bf2: MLOAD 00000bf3: PUSH3 0x461bcd 00000bf7: PUSH1 0xe5 00000bf9: SHL 00000bfa: DUP2 00000bfb: MSTORE 00000bfc: PUSH1 0x04 00000bfe: ADD 00000bff: PUSH2 0x01b4 00000c02: SWAP1 00000c03: PUSH2 0x23eb 00000c06: JUMP 00000c07: JUMPDEST 00000c08: PUSH1 0x40 00000c0a: MLOAD 00000c0b: PUSH4 0x3095c057 00000c10: PUSH1 0xe0 00000c12: SHL 00000c13: DUP2 00000c14: MSTORE 00000c15: PUSH1 0x01 00000c17: PUSH1 0x01 00000c19: PUSH1 0xa0 00000c1b: SHL 00000c1c: SUB 00000c1d: DUP6 00000c1e: AND 00000c1f: SWAP1 00000c20: PUSH4 0x3095c057 00000c25: SWAP1 00000c26: PUSH2 0x0c35 00000c29: SWAP1 00000c2a: DUP7 00000c2b: SWAP1 00000c2c: DUP7 00000c2d: SWAP1 00000c2e: PUSH1 0x04 00000c30: ADD 00000c31: PUSH2 0x2752 00000c34: JUMP 00000c35: JUMPDEST 00000c36: PUSH1 0x00 00000c38: PUSH1 0x40 00000c3a: MLOAD 00000c3b: DUP1 00000c3c: DUP4 00000c3d: SUB 00000c3e: DUP2 00000c3f: PUSH1 0x00 00000c41: DUP8 00000c42: DUP1 00000c43: EXTCODESIZE 00000c44: ISZERO 00000c45: DUP1 00000c46: ISZERO 00000c47: PUSH2 0x0c4f 00000c4a: JUMPI 00000c4b: PUSH1 0x00 00000c4d: DUP1 00000c4e: REVERT 00000c4f: JUMPDEST 00000c50: POP 00000c51: GAS 00000c52: CALL 00000c53: ISZERO 00000c54: DUP1 00000c55: ISZERO 00000c56: PUSH2 0x0c63 00000c59: JUMPI 00000c5a: RETURNDATASIZE 00000c5b: PUSH1 0x00 00000c5d: DUP1 00000c5e: RETURNDATACOPY 00000c5f: RETURNDATASIZE 00000c60: PUSH1 0x00 00000c62: REVERT 00000c63: JUMPDEST 00000c64: POP 00000c65: POP 00000c66: POP 00000c67: POP 00000c68: PUSH2 0x0c74 00000c6b: DUP2 00000c6c: PUSH1 0x20 00000c6e: ADD 00000c6f: CALLDATALOAD 00000c70: PUSH2 0x17a2 00000c73: JUMP 00000c74: JUMPDEST 00000c75: POP 00000c76: POP 00000c77: POP 00000c78: POP 00000c79: JUMP 00000c7a: JUMPDEST 00000c7b: PUSH2 0x0c74 00000c7e: DUP5 00000c7f: DUP5 00000c80: DUP5 00000c81: DUP5 00000c82: PUSH1 0x01 00000c84: PUSH2 0x1909 00000c87: JUMP 00000c88: JUMPDEST 00000c89: PUSH2 0x0c90 00000c8c: PUSH2 0x1748 00000c8f: JUMP 00000c90: JUMPDEST 00000c91: PUSH2 0x0c9d 00000c94: PUSH1 0x20 00000c96: DUP3 00000c97: ADD 00000c98: DUP3 00000c99: PUSH2 0x26ff 00000c9c: JUMP 00000c9d: JUMPDEST 00000c9e: PUSH1 0x01 00000ca0: PUSH1 0x01 00000ca2: PUSH1 0xb0 00000ca4: SHL 00000ca5: SUB 00000ca6: NOT 00000ca7: AND 00000ca8: ISZERO 00000ca9: PUSH2 0x0d29 00000cac: JUMPI 00000cad: TIMESTAMP 00000cae: PUSH2 0x0cb8 00000cb1: PUSH1 0x01 00000cb3: NUMBER 00000cb4: PUSH2 0x23d2 00000cb7: JUMP 00000cb8: JUMPDEST 00000cb9: BLOCKHASH 00000cba: PUSH1 0x40 00000cbc: MLOAD 00000cbd: PUSH1 0x20 00000cbf: ADD 00000cc0: PUSH2 0x0cd3 00000cc3: SWAP3 00000cc4: SWAP2 00000cc5: SWAP1 00000cc6: SWAP2 00000cc7: DUP3 00000cc8: MSTORE 00000cc9: PUSH1 0x20 00000ccb: DUP3 00000ccc: ADD 00000ccd: MSTORE 00000cce: PUSH1 0x40 00000cd0: ADD 00000cd1: SWAP1 00000cd2: JUMP 00000cd3: JUMPDEST 00000cd4: PUSH1 0x40 00000cd6: DUP1 00000cd7: MLOAD 00000cd8: PUSH1 0x1f 00000cda: NOT 00000cdb: DUP2 00000cdc: DUP5 00000cdd: SUB 00000cde: ADD 00000cdf: DUP2 00000ce0: MSTORE 00000ce1: SWAP2 00000ce2: SWAP1 00000ce3: MSTORE 00000ce4: DUP1 00000ce5: MLOAD 00000ce6: PUSH1 0x20 00000ce8: SWAP2 00000ce9: DUP3 00000cea: ADD 00000ceb: KECCAK256 00000cec: PUSH1 0x01 00000cee: PUSH1 0x01 00000cf0: PUSH1 0xb0 00000cf2: SHL 00000cf3: SUB 00000cf4: NOT 00000cf5: AND 00000cf6: SWAP1 00000cf7: PUSH2 0x0d02 00000cfa: SWAP1 00000cfb: DUP4 00000cfc: ADD 00000cfd: DUP4 00000cfe: PUSH2 0x26ff 00000d01: JUMP 00000d02: JUMPDEST 00000d03: PUSH1 0x01 00000d05: PUSH1 0x01 00000d07: PUSH1 0xb0 00000d09: SHL 00000d0a: SUB 00000d0b: NOT 00000d0c: AND 00000d0d: EQ 00000d0e: PUSH2 0x0d29 00000d11: JUMPI 00000d12: PUSH1 0x40 00000d14: MLOAD 00000d15: PUSH3 0x461bcd 00000d19: PUSH1 0xe5 00000d1b: SHL 00000d1c: DUP2 00000d1d: MSTORE 00000d1e: PUSH1 0x04 00000d20: ADD 00000d21: PUSH2 0x01b4 00000d24: SWAP1 00000d25: PUSH2 0x23eb 00000d28: JUMP 00000d29: JUMPDEST 00000d2a: PUSH1 0x40 00000d2c: MLOAD 00000d2d: PUSH4 0x70a08231 00000d32: PUSH1 0xe0 00000d34: SHL 00000d35: DUP2 00000d36: MSTORE 00000d37: ADDRESS 00000d38: PUSH1 0x04 00000d3a: DUP3 00000d3b: ADD 00000d3c: MSTORE 00000d3d: PUSH1 0x00 00000d3f: SWAP1 00000d40: PUSH1 0x00 00000d42: DUP1 00000d43: MLOAD 00000d44: PUSH1 0x20 00000d46: PUSH2 0x291e 00000d49: DUP4 00000d4a: CODECOPY 00000d4b: DUP2 00000d4c: MLOAD 00000d4d: SWAP2 00000d4e: MSTORE 00000d4f: SWAP1 00000d50: PUSH4 0x70a08231 00000d55: SWAP1 00000d56: PUSH1 0x24 00000d58: ADD 00000d59: PUSH1 0x20 00000d5b: PUSH1 0x40 00000d5d: MLOAD 00000d5e: DUP1 00000d5f: DUP4 00000d60: SUB 00000d61: DUP2 00000d62: DUP7 00000d63: GAS 00000d64: STATICCALL 00000d65: ISZERO 00000d66: DUP1 00000d67: ISZERO 00000d68: PUSH2 0x0d75 00000d6b: JUMPI 00000d6c: RETURNDATASIZE 00000d6d: PUSH1 0x00 00000d6f: DUP1 00000d70: RETURNDATACOPY 00000d71: RETURNDATASIZE 00000d72: PUSH1 0x00 00000d74: REVERT 00000d75: JUMPDEST 00000d76: POP 00000d77: POP 00000d78: POP 00000d79: POP 00000d7a: PUSH1 0x40 00000d7c: MLOAD 00000d7d: RETURNDATASIZE 00000d7e: PUSH1 0x1f 00000d80: NOT 00000d81: PUSH1 0x1f 00000d83: DUP3 00000d84: ADD 00000d85: AND 00000d86: DUP3 00000d87: ADD 00000d88: DUP1 00000d89: PUSH1 0x40 00000d8b: MSTORE 00000d8c: POP 00000d8d: DUP2 00000d8e: ADD 00000d8f: SWAP1 00000d90: PUSH2 0x0d99 00000d93: SWAP2 00000d94: SWAP1 00000d95: PUSH2 0x276e 00000d98: JUMP 00000d99: JUMPDEST 00000d9a: SWAP1 00000d9b: POP 00000d9c: PUSH2 0x0db8 00000d9f: PUSH1 0x00 00000da1: DUP1 00000da2: MLOAD 00000da3: PUSH1 0x20 00000da5: PUSH2 0x291e 00000da8: DUP4 00000da9: CODECOPY 00000daa: DUP2 00000dab: MLOAD 00000dac: SWAP2 00000dad: MSTORE 00000dae: DUP7 00000daf: DUP5 00000db0: PUSH1 0x20 00000db2: ADD 00000db3: CALLDATALOAD 00000db4: PUSH2 0x1d5d 00000db7: JUMP 00000db8: JUMPDEST 00000db9: PUSH1 0x40 00000dbb: MLOAD 00000dbc: PUSH4 0x3095c057 00000dc1: PUSH1 0xe0 00000dc3: SHL 00000dc4: DUP2 00000dc5: MSTORE 00000dc6: PUSH1 0x01 00000dc8: PUSH1 0x01 00000dca: PUSH1 0xa0 00000dcc: SHL 00000dcd: SUB 00000dce: DUP7 00000dcf: AND 00000dd0: SWAP1 00000dd1: PUSH4 0x3095c057 00000dd6: SWAP1 00000dd7: PUSH2 0x0de6 00000dda: SWAP1 00000ddb: DUP8 00000ddc: SWAP1 00000ddd: DUP8 00000dde: SWAP1 00000ddf: PUSH1 0x04 00000de1: ADD 00000de2: PUSH2 0x2752 00000de5: JUMP 00000de6: JUMPDEST 00000de7: PUSH1 0x00 00000de9: PUSH1 0x40 00000deb: MLOAD 00000dec: DUP1 00000ded: DUP4 00000dee: SUB 00000def: DUP2 00000df0: PUSH1 0x00 00000df2: DUP8 00000df3: DUP1 00000df4: EXTCODESIZE 00000df5: ISZERO 00000df6: DUP1 00000df7: ISZERO 00000df8: PUSH2 0x0e00 00000dfb: JUMPI 00000dfc: PUSH1 0x00 00000dfe: DUP1 00000dff: REVERT 00000e00: JUMPDEST 00000e01: POP 00000e02: GAS 00000e03: CALL 00000e04: ISZERO 00000e05: DUP1 00000e06: ISZERO 00000e07: PUSH2 0x0e14 00000e0a: JUMPI 00000e0b: RETURNDATASIZE 00000e0c: PUSH1 0x00 00000e0e: DUP1 00000e0f: RETURNDATACOPY 00000e10: RETURNDATASIZE 00000e11: PUSH1 0x00 00000e13: REVERT 00000e14: JUMPDEST 00000e15: POP 00000e16: POP 00000e17: POP 00000e18: PUSH1 0x00 00000e1a: SWAP2 00000e1b: SWAP1 00000e1c: SWAP2 00000e1d: SSTORE 00000e1e: POP 00000e1f: POP 00000e20: POP 00000e21: POP 00000e22: POP 00000e23: JUMP 00000e24: JUMPDEST 00000e25: PUSH2 0x0e2c 00000e28: PUSH2 0x03d4 00000e2b: JUMP 00000e2c: JUMPDEST 00000e2d: PUSH1 0x40 00000e2f: MLOAD 00000e30: PUSH1 0x24 00000e32: CALLDATASIZE 00000e33: SUB 00000e34: DUP1 00000e35: PUSH1 0x24 00000e37: DUP4 00000e38: CALLDATACOPY 00000e39: PUSH1 0x00 00000e3b: DUP1 00000e3c: DUP3 00000e3d: DUP5 00000e3e: DUP7 00000e3f: GAS 00000e40: DELEGATECALL 00000e41: RETURNDATASIZE 00000e42: SWAP2 00000e43: POP 00000e44: DUP2 00000e45: PUSH1 0x00 00000e47: DUP5 00000e48: RETURNDATACOPY 00000e49: DUP1 00000e4a: DUP1 00000e4b: ISZERO 00000e4c: PUSH2 0x0e53 00000e4f: JUMPI 00000e50: DUP3 00000e51: DUP5 00000e52: RETURN 00000e53: JUMPDEST 00000e54: DUP3 00000e55: DUP5 00000e56: REVERT 00000e57: JUMPDEST 00000e58: POP 00000e59: POP 00000e5a: POP 00000e5b: POP 00000e5c: POP 00000e5d: JUMP 00000e5e: JUMPDEST 00000e5f: PUSH2 0x0e66 00000e62: PUSH2 0x1e87 00000e65: JUMP 00000e66: JUMPDEST 00000e67: PUSH1 0x01 00000e69: PUSH1 0x00 00000e6b: DUP2 00000e6c: SWAP1 00000e6d: SSTORE 00000e6e: DUP1 00000e6f: SSTORE 00000e70: JUMP 00000e71: JUMPDEST 00000e72: PUSH2 0x0e79 00000e75: PUSH2 0x03d4 00000e78: JUMP 00000e79: JUMPDEST 00000e7a: DUP1 00000e7b: ISZERO 00000e7c: PUSH2 0x0f79 00000e7f: JUMPI 00000e80: PUSH1 0x40 00000e82: MLOAD 00000e83: PUSH4 0x2e1a7d4d 00000e88: PUSH1 0xe0 00000e8a: SHL 00000e8b: DUP2 00000e8c: MSTORE 00000e8d: PUSH1 0x04 00000e8f: DUP2 00000e90: ADD 00000e91: DUP3 00000e92: SWAP1 00000e93: MSTORE 00000e94: PUSH1 0x00 00000e96: DUP1 00000e97: MLOAD 00000e98: PUSH1 0x20 00000e9a: PUSH2 0x291e 00000e9d: DUP4 00000e9e: CODECOPY 00000e9f: DUP2 00000ea0: MLOAD 00000ea1: SWAP2 00000ea2: MSTORE 00000ea3: SWAP1 00000ea4: PUSH4 0x2e1a7d4d 00000ea9: SWAP1 00000eaa: PUSH1 0x24 00000eac: ADD 00000ead: PUSH1 0x00 00000eaf: PUSH1 0x40 00000eb1: MLOAD 00000eb2: DUP1 00000eb3: DUP4 00000eb4: SUB 00000eb5: DUP2 00000eb6: PUSH1 0x00 00000eb8: DUP8 00000eb9: DUP1 00000eba: EXTCODESIZE 00000ebb: ISZERO 00000ebc: DUP1 00000ebd: ISZERO 00000ebe: PUSH2 0x0ec6 00000ec1: JUMPI 00000ec2: PUSH1 0x00 00000ec4: DUP1 00000ec5: REVERT 00000ec6: JUMPDEST 00000ec7: POP 00000ec8: GAS 00000ec9: CALL 00000eca: ISZERO 00000ecb: DUP1 00000ecc: ISZERO 00000ecd: PUSH2 0x0eda 00000ed0: JUMPI 00000ed1: RETURNDATASIZE 00000ed2: PUSH1 0x00 00000ed4: DUP1 00000ed5: RETURNDATACOPY 00000ed6: RETURNDATASIZE 00000ed7: PUSH1 0x00 00000ed9: REVERT 00000eda: JUMPDEST 00000edb: POP 00000edc: POP 00000edd: PUSH1 0x40 00000edf: DUP1 00000ee0: MLOAD 00000ee1: PUSH1 0x00 00000ee3: DUP1 00000ee4: DUP3 00000ee5: MSTORE 00000ee6: PUSH1 0x20 00000ee8: DUP3 00000ee9: ADD 00000eea: SWAP3 00000eeb: DUP4 00000eec: SWAP1 00000eed: MSTORE 00000eee: SWAP4 00000eef: POP 00000ef0: CALLER 00000ef1: SWAP3 00000ef2: POP 00000ef3: DUP5 00000ef4: SWAP2 00000ef5: PUSH2 0x0efe 00000ef8: SWAP2 00000ef9: SWAP1 00000efa: PUSH2 0x279d 00000efd: JUMP 00000efe: JUMPDEST 00000eff: PUSH1 0x00 00000f01: PUSH1 0x40 00000f03: MLOAD 00000f04: DUP1 00000f05: DUP4 00000f06: SUB 00000f07: DUP2 00000f08: DUP6 00000f09: DUP8 00000f0a: GAS 00000f0b: CALL 00000f0c: SWAP3 00000f0d: POP 00000f0e: POP 00000f0f: POP 00000f10: RETURNDATASIZE 00000f11: DUP1 00000f12: PUSH1 0x00 00000f14: DUP2 00000f15: EQ 00000f16: PUSH2 0x0f3b 00000f19: JUMPI 00000f1a: PUSH1 0x40 00000f1c: MLOAD 00000f1d: SWAP2 00000f1e: POP 00000f1f: PUSH1 0x1f 00000f21: NOT 00000f22: PUSH1 0x3f 00000f24: RETURNDATASIZE 00000f25: ADD 00000f26: AND 00000f27: DUP3 00000f28: ADD 00000f29: PUSH1 0x40 00000f2b: MSTORE 00000f2c: RETURNDATASIZE 00000f2d: DUP3 00000f2e: MSTORE 00000f2f: RETURNDATASIZE 00000f30: PUSH1 0x00 00000f32: PUSH1 0x20 00000f34: DUP5 00000f35: ADD 00000f36: RETURNDATACOPY 00000f37: PUSH2 0x0f40 00000f3a: JUMP 00000f3b: JUMPDEST 00000f3c: PUSH1 0x60 00000f3e: SWAP2 00000f3f: POP 00000f40: JUMPDEST 00000f41: POP 00000f42: POP 00000f43: SWAP1 00000f44: POP 00000f45: DUP1 00000f46: PUSH2 0x0f77 00000f49: JUMPI 00000f4a: PUSH1 0x40 00000f4c: MLOAD 00000f4d: PUSH3 0x461bcd 00000f51: PUSH1 0xe5 00000f53: SHL 00000f54: DUP2 00000f55: MSTORE 00000f56: PUSH1 0x20 00000f58: PUSH1 0x04 00000f5a: DUP3 00000f5b: ADD 00000f5c: MSTORE 00000f5d: PUSH1 0x03 00000f5f: PUSH1 0x24 00000f61: DUP3 00000f62: ADD 00000f63: MSTORE 00000f64: PUSH3 0x444553 00000f68: PUSH1 0xe8 00000f6a: SHL 00000f6b: PUSH1 0x44 00000f6d: DUP3 00000f6e: ADD 00000f6f: MSTORE 00000f70: PUSH1 0x64 00000f72: ADD 00000f73: PUSH2 0x01b4 00000f76: JUMP 00000f77: JUMPDEST 00000f78: POP 00000f79: JUMPDEST 00000f7a: CALLER 00000f7b: SELFDESTRUCT 00000f7c: JUMPDEST 00000f7d: PUSH2 0x0f84 00000f80: PUSH2 0x1e87 00000f83: JUMP 00000f84: JUMPDEST 00000f85: PUSH2 0x0f91 00000f88: PUSH1 0x20 00000f8a: DUP7 00000f8b: ADD 00000f8c: DUP7 00000f8d: PUSH2 0x26ff 00000f90: JUMP 00000f91: JUMPDEST 00000f92: PUSH1 0x01 00000f94: PUSH1 0x01 00000f96: PUSH1 0xb0 00000f98: SHL 00000f99: SUB 00000f9a: NOT 00000f9b: AND 00000f9c: ISZERO 00000f9d: PUSH2 0x101d 00000fa0: JUMPI 00000fa1: TIMESTAMP 00000fa2: PUSH2 0x0fac 00000fa5: PUSH1 0x01 00000fa7: NUMBER 00000fa8: PUSH2 0x23d2 00000fab: JUMP 00000fac: JUMPDEST 00000fad: BLOCKHASH 00000fae: PUSH1 0x40 00000fb0: MLOAD 00000fb1: PUSH1 0x20 00000fb3: ADD 00000fb4: PUSH2 0x0fc7 00000fb7: SWAP3 00000fb8: SWAP2 00000fb9: SWAP1 00000fba: SWAP2 00000fbb: DUP3 00000fbc: MSTORE 00000fbd: PUSH1 0x20 00000fbf: DUP3 00000fc0: ADD 00000fc1: MSTORE 00000fc2: PUSH1 0x40 00000fc4: ADD 00000fc5: SWAP1 00000fc6: JUMP 00000fc7: JUMPDEST 00000fc8: PUSH1 0x40 00000fca: DUP1 00000fcb: MLOAD 00000fcc: PUSH1 0x1f 00000fce: NOT 00000fcf: DUP2 00000fd0: DUP5 00000fd1: SUB 00000fd2: ADD 00000fd3: DUP2 00000fd4: MSTORE 00000fd5: SWAP2 00000fd6: SWAP1 00000fd7: MSTORE 00000fd8: DUP1 00000fd9: MLOAD 00000fda: PUSH1 0x20 00000fdc: SWAP2 00000fdd: DUP3 00000fde: ADD 00000fdf: KECCAK256 00000fe0: PUSH1 0x01 00000fe2: PUSH1 0x01 00000fe4: PUSH1 0xb0 00000fe6: SHL 00000fe7: SUB 00000fe8: NOT 00000fe9: AND 00000fea: SWAP1 00000feb: PUSH2 0x0ff6 00000fee: SWAP1 00000fef: DUP8 00000ff0: ADD 00000ff1: DUP8 00000ff2: PUSH2 0x26ff 00000ff5: JUMP 00000ff6: JUMPDEST 00000ff7: PUSH1 0x01 00000ff9: PUSH1 0x01 00000ffb: PUSH1 0xb0 00000ffd: SHL 00000ffe: SUB 00000fff: NOT 00001000: AND 00001001: EQ 00001002: PUSH2 0x101d 00001005: JUMPI 00001006: PUSH1 0x40 00001008: MLOAD 00001009: PUSH3 0x461bcd 0000100d: PUSH1 0xe5 0000100f: SHL 00001010: DUP2 00001011: MSTORE 00001012: PUSH1 0x04 00001014: ADD 00001015: PUSH2 0x01b4 00001018: SWAP1 00001019: PUSH2 0x23eb 0000101c: JUMP 0000101d: JUMPDEST 0000101e: PUSH2 0x102d 00001021: PUSH1 0x40 00001023: DUP7 00001024: ADD 00001025: PUSH1 0x20 00001027: DUP8 00001028: ADD 00001029: PUSH2 0x253e 0000102c: JUMP 0000102d: JUMPDEST 0000102e: PUSH1 0x01 00001030: PUSH1 0x01 00001032: PUSH1 0xa0 00001034: SHL 00001035: SUB 00001036: AND 00001037: PUSH4 0xdcb698ab 0000103c: CALLVALUE 0000103d: DUP7 0000103e: DUP7 0000103f: DUP7 00001040: DUP7 00001041: PUSH1 0x40 00001043: MLOAD 00001044: DUP7 00001045: PUSH4 0xffffffff 0000104a: AND 0000104b: PUSH1 0xe0 0000104d: SHL 0000104e: DUP2 0000104f: MSTORE 00001050: PUSH1 0x04 00001052: ADD 00001053: PUSH2 0x105f 00001056: SWAP5 00001057: SWAP4 00001058: SWAP3 00001059: SWAP2 0000105a: SWAP1 0000105b: PUSH2 0x27b9 0000105e: JUMP 0000105f: JUMPDEST 00001060: PUSH1 0x00 00001062: PUSH1 0x40 00001064: MLOAD 00001065: DUP1 00001066: DUP4 00001067: SUB 00001068: DUP2 00001069: DUP6 0000106a: DUP9 0000106b: DUP1 0000106c: EXTCODESIZE 0000106d: ISZERO 0000106e: DUP1 0000106f: ISZERO 00001070: PUSH2 0x1078 00001073: JUMPI 00001074: PUSH1 0x00 00001076: DUP1 00001077: REVERT 00001078: JUMPDEST 00001079: POP 0000107a: GAS 0000107b: CALL 0000107c: ISZERO 0000107d: DUP1 0000107e: ISZERO 0000107f: PUSH2 0x108c 00001082: JUMPI 00001083: RETURNDATASIZE 00001084: PUSH1 0x00 00001086: DUP1 00001087: RETURNDATACOPY 00001088: RETURNDATASIZE 00001089: PUSH1 0x00 0000108b: REVERT 0000108c: JUMPDEST 0000108d: POP 0000108e: POP 0000108f: POP 00001090: POP 00001091: POP 00001092: PUSH2 0x109e 00001095: DUP6 00001096: PUSH1 0x40 00001098: ADD 00001099: CALLDATALOAD 0000109a: PUSH2 0x1fd0 0000109d: JUMP 0000109e: JUMPDEST 0000109f: POP 000010a0: POP 000010a1: PUSH1 0x01 000010a3: DUP1 000010a4: SSTORE 000010a5: POP 000010a6: POP 000010a7: POP 000010a8: JUMP 000010a9: JUMPDEST 000010aa: PUSH2 0x10b1 000010ad: PUSH2 0x1e87 000010b0: JUMP 000010b1: JUMPDEST 000010b2: CALLVALUE 000010b3: ISZERO 000010b4: DUP1 000010b5: ISZERO 000010b6: PUSH2 0x10c1 000010b9: JUMPI 000010ba: POP 000010bb: PUSH1 0x01 000010bd: SLOAD 000010be: PUSH1 0x01 000010c0: EQ 000010c1: JUMPDEST 000010c2: PUSH2 0x10f3 000010c5: JUMPI 000010c6: PUSH1 0x40 000010c8: MLOAD 000010c9: PUSH3 0x461bcd 000010cd: PUSH1 0xe5 000010cf: SHL 000010d0: DUP2 000010d1: MSTORE 000010d2: PUSH1 0x20 000010d4: PUSH1 0x04 000010d6: DUP3 000010d7: ADD 000010d8: MSTORE 000010d9: PUSH1 0x03 000010db: PUSH1 0x24 000010dd: DUP3 000010de: ADD 000010df: MSTORE 000010e0: PUSH3 0x2b2b2b 000010e4: PUSH1 0xe9 000010e6: SHL 000010e7: PUSH1 0x44 000010e9: DUP3 000010ea: ADD 000010eb: MSTORE 000010ec: PUSH1 0x64 000010ee: ADD 000010ef: PUSH2 0x01b4 000010f2: JUMP 000010f3: JUMPDEST 000010f4: PUSH2 0x1100 000010f7: PUSH1 0x20 000010f9: DUP5 000010fa: ADD 000010fb: DUP5 000010fc: PUSH2 0x26ff 000010ff: JUMP 00001100: JUMPDEST 00001101: PUSH1 0x01 00001103: PUSH1 0x01 00001105: PUSH1 0xb0 00001107: SHL 00001108: SUB 00001109: NOT 0000110a: AND 0000110b: ISZERO 0000110c: PUSH2 0x118c 0000110f: JUMPI 00001110: TIMESTAMP 00001111: PUSH2 0x111b 00001114: PUSH1 0x01 00001116: NUMBER 00001117: PUSH2 0x23d2 0000111a: JUMP 0000111b: JUMPDEST 0000111c: BLOCKHASH 0000111d: PUSH1 0x40 0000111f: MLOAD 00001120: PUSH1 0x20 00001122: ADD 00001123: PUSH2 0x1136 00001126: SWAP3 00001127: SWAP2 00001128: SWAP1 00001129: SWAP2 0000112a: DUP3 0000112b: MSTORE 0000112c: PUSH1 0x20 0000112e: DUP3 0000112f: ADD 00001130: MSTORE 00001131: PUSH1 0x40 00001133: ADD 00001134: SWAP1 00001135: JUMP 00001136: JUMPDEST 00001137: PUSH1 0x40 00001139: DUP1 0000113a: MLOAD 0000113b: PUSH1 0x1f 0000113d: NOT 0000113e: DUP2 0000113f: DUP5 00001140: SUB 00001141: ADD 00001142: DUP2 00001143: MSTORE 00001144: SWAP2 00001145: SWAP1 00001146: MSTORE 00001147: DUP1 00001148: MLOAD 00001149: PUSH1 0x20 0000114b: SWAP2 0000114c: DUP3 0000114d: ADD 0000114e: KECCAK256 0000114f: PUSH1 0x01 00001151: PUSH1 0x01 00001153: PUSH1 0xb0 00001155: SHL 00001156: SUB 00001157: NOT 00001158: AND 00001159: SWAP1 0000115a: PUSH2 0x1165 0000115d: SWAP1 0000115e: DUP6 0000115f: ADD 00001160: DUP6 00001161: PUSH2 0x26ff 00001164: JUMP 00001165: JUMPDEST 00001166: PUSH1 0x01 00001168: PUSH1 0x01 0000116a: PUSH1 0xb0 0000116c: SHL 0000116d: SUB 0000116e: NOT 0000116f: AND 00001170: EQ 00001171: PUSH2 0x118c 00001174: JUMPI 00001175: PUSH1 0x40 00001177: MLOAD 00001178: PUSH3 0x461bcd 0000117c: PUSH1 0xe5 0000117e: SHL 0000117f: DUP2 00001180: MSTORE 00001181: PUSH1 0x04 00001183: ADD 00001184: PUSH2 0x01b4 00001187: SWAP1 00001188: PUSH2 0x23eb 0000118b: JUMP 0000118c: JUMPDEST 0000118d: PUSH1 0x40 0000118f: MLOAD 00001190: PUSH4 0x70a08231 00001195: PUSH1 0xe0 00001197: SHL 00001198: DUP2 00001199: MSTORE 0000119a: ADDRESS 0000119b: PUSH1 0x04 0000119d: DUP3 0000119e: ADD 0000119f: MSTORE 000011a0: PUSH1 0x00 000011a2: SWAP1 000011a3: PUSH1 0x00 000011a5: DUP1 000011a6: MLOAD 000011a7: PUSH1 0x20 000011a9: PUSH2 0x291e 000011ac: DUP4 000011ad: CODECOPY 000011ae: DUP2 000011af: MLOAD 000011b0: SWAP2 000011b1: MSTORE 000011b2: SWAP1 000011b3: PUSH4 0x70a08231 000011b8: SWAP1 000011b9: PUSH1 0x24 000011bb: ADD 000011bc: PUSH1 0x20 000011be: PUSH1 0x40 000011c0: MLOAD 000011c1: DUP1 000011c2: DUP4 000011c3: SUB 000011c4: DUP2 000011c5: DUP7 000011c6: GAS 000011c7: STATICCALL 000011c8: ISZERO 000011c9: DUP1 000011ca: ISZERO 000011cb: PUSH2 0x11d8 000011ce: JUMPI 000011cf: RETURNDATASIZE 000011d0: PUSH1 0x00 000011d2: DUP1 000011d3: RETURNDATACOPY 000011d4: RETURNDATASIZE 000011d5: PUSH1 0x00 000011d7: REVERT 000011d8: JUMPDEST 000011d9: POP 000011da: POP 000011db: POP 000011dc: POP 000011dd: PUSH1 0x40 000011df: MLOAD 000011e0: RETURNDATASIZE 000011e1: PUSH1 0x1f 000011e3: NOT 000011e4: PUSH1 0x1f 000011e6: DUP3 000011e7: ADD 000011e8: AND 000011e9: DUP3 000011ea: ADD 000011eb: DUP1 000011ec: PUSH1 0x40 000011ee: MSTORE 000011ef: POP 000011f0: DUP2 000011f1: ADD 000011f2: SWAP1 000011f3: PUSH2 0x11fc 000011f6: SWAP2 000011f7: SWAP1 000011f8: PUSH2 0x276e 000011fb: JUMP 000011fc: JUMPDEST 000011fd: SWAP1 000011fe: POP 000011ff: PUSH1 0x40 00001201: DUP5 00001202: ADD 00001203: CALLDATALOAD 00001204: ISZERO 00001205: PUSH2 0x1234 00001208: JUMPI 00001209: PUSH2 0x1234 0000120c: PUSH1 0x00 0000120e: DUP1 0000120f: MLOAD 00001210: PUSH1 0x20 00001212: PUSH2 0x291e 00001215: DUP4 00001216: CODECOPY 00001217: DUP2 00001218: MLOAD 00001219: SWAP2 0000121a: MSTORE 0000121b: PUSH2 0x122a 0000121e: PUSH1 0x40 00001220: DUP8 00001221: ADD 00001222: PUSH1 0x20 00001224: DUP9 00001225: ADD 00001226: PUSH2 0x253e 00001229: JUMP 0000122a: JUMPDEST 0000122b: DUP7 0000122c: PUSH1 0x40 0000122e: ADD 0000122f: CALLDATALOAD 00001230: PUSH2 0x1d5d 00001233: JUMP 00001234: JUMPDEST 00001235: PUSH2 0x1244 00001238: PUSH1 0x40 0000123a: DUP6 0000123b: ADD 0000123c: PUSH1 0x20 0000123e: DUP7 0000123f: ADD 00001240: PUSH2 0x253e 00001243: JUMP 00001244: JUMPDEST 00001245: PUSH1 0x01 00001247: PUSH1 0x01 00001249: PUSH1 0xa0 0000124b: SHL 0000124c: SUB 0000124d: AND 0000124e: PUSH4 0x07a1018e 00001253: DUP5 00001254: DUP5 00001255: PUSH1 0x40 00001257: MLOAD 00001258: DUP4 00001259: PUSH4 0xffffffff 0000125e: AND 0000125f: PUSH1 0xe0 00001261: SHL 00001262: DUP2 00001263: MSTORE 00001264: PUSH1 0x04 00001266: ADD 00001267: PUSH2 0x1271 0000126a: SWAP3 0000126b: SWAP2 0000126c: SWAP1 0000126d: PUSH2 0x2752 00001270: JUMP 00001271: JUMPDEST 00001272: PUSH1 0x00 00001274: PUSH1 0x40 00001276: MLOAD 00001277: DUP1 00001278: DUP4 00001279: SUB 0000127a: DUP2 0000127b: PUSH1 0x00 0000127d: DUP8 0000127e: DUP1 0000127f: EXTCODESIZE 00001280: ISZERO 00001281: DUP1 00001282: ISZERO 00001283: PUSH2 0x128b 00001286: JUMPI 00001287: PUSH1 0x00 00001289: DUP1 0000128a: REVERT 0000128b: JUMPDEST 0000128c: POP 0000128d: GAS 0000128e: CALL 0000128f: ISZERO 00001290: DUP1 00001291: ISZERO 00001292: PUSH2 0x129f 00001295: JUMPI 00001296: RETURNDATASIZE 00001297: PUSH1 0x00 00001299: DUP1 0000129a: RETURNDATACOPY 0000129b: RETURNDATASIZE 0000129c: PUSH1 0x00 0000129e: REVERT 0000129f: JUMPDEST 000012a0: POP 000012a1: POP 000012a2: POP 000012a3: PUSH1 0x01 000012a5: SWAP2 000012a6: SWAP1 000012a7: SWAP2 000012a8: SSTORE 000012a9: POP 000012aa: POP 000012ab: POP 000012ac: POP 000012ad: JUMP 000012ae: JUMPDEST 000012af: PUSH1 0x60 000012b1: PUSH2 0x12b8 000012b4: PUSH2 0x1e87 000012b7: JUMP 000012b8: JUMPDEST 000012b9: DUP4 000012ba: ISZERO 000012bb: PUSH2 0x12d7 000012be: JUMPI 000012bf: PUSH2 0x12d7 000012c2: PUSH1 0x00 000012c4: DUP1 000012c5: MLOAD 000012c6: PUSH1 0x20 000012c8: PUSH2 0x291e 000012cb: DUP4 000012cc: CODECOPY 000012cd: DUP2 000012ce: MLOAD 000012cf: SWAP2 000012d0: MSTORE 000012d1: DUP7 000012d2: DUP7 000012d3: PUSH2 0x1d5d 000012d6: JUMP 000012d7: JUMPDEST 000012d8: PUSH1 0x00 000012da: DUP1 000012db: DUP7 000012dc: PUSH1 0x01 000012de: PUSH1 0x01 000012e0: PUSH1 0xa0 000012e2: SHL 000012e3: SUB 000012e4: AND 000012e5: CALLVALUE 000012e6: DUP7 000012e7: DUP7 000012e8: PUSH1 0x40 000012ea: MLOAD 000012eb: PUSH2 0x12f5 000012ee: SWAP3 000012ef: SWAP2 000012f0: SWAP1 000012f1: PUSH2 0x27eb 000012f4: JUMP 000012f5: JUMPDEST 000012f6: PUSH1 0x00 000012f8: PUSH1 0x40 000012fa: MLOAD 000012fb: DUP1 000012fc: DUP4 000012fd: SUB 000012fe: DUP2 000012ff: DUP6 00001300: DUP8 00001301: GAS 00001302: CALL 00001303: SWAP3 00001304: POP 00001305: POP 00001306: POP 00001307: RETURNDATASIZE 00001308: DUP1 00001309: PUSH1 0x00 0000130b: DUP2 0000130c: EQ 0000130d: PUSH2 0x1332 00001310: JUMPI 00001311: PUSH1 0x40 00001313: MLOAD 00001314: SWAP2 00001315: POP 00001316: PUSH1 0x1f 00001318: NOT 00001319: PUSH1 0x3f 0000131b: RETURNDATASIZE 0000131c: ADD 0000131d: AND 0000131e: DUP3 0000131f: ADD 00001320: PUSH1 0x40 00001322: MSTORE 00001323: RETURNDATASIZE 00001324: DUP3 00001325: MSTORE 00001326: RETURNDATASIZE 00001327: PUSH1 0x00 00001329: PUSH1 0x20 0000132b: DUP5 0000132c: ADD 0000132d: RETURNDATACOPY 0000132e: PUSH2 0x1337 00001331: JUMP 00001332: JUMPDEST 00001333: PUSH1 0x60 00001335: SWAP2 00001336: POP 00001337: JUMPDEST 00001338: POP 00001339: SWAP2 0000133a: POP 0000133b: SWAP2 0000133c: POP 0000133d: DUP2 0000133e: PUSH2 0x13b6 00001341: JUMPI 00001342: PUSH1 0x44 00001344: DUP2 00001345: MLOAD 00001346: LT 00001347: ISZERO 00001348: PUSH2 0x1383 0000134b: JUMPI 0000134c: PUSH1 0x40 0000134e: MLOAD 0000134f: PUSH3 0x461bcd 00001353: PUSH1 0xe5 00001355: SHL 00001356: DUP2 00001357: MSTORE 00001358: PUSH1 0x20 0000135a: PUSH1 0x04 0000135c: DUP3 0000135d: ADD 0000135e: MSTORE 0000135f: PUSH1 0x0d 00001361: PUSH1 0x24 00001363: DUP3 00001364: ADD 00001365: MSTORE 00001366: PUSH13 0x1cda5b195b9d081c995d995c9d 00001374: PUSH1 0x9a 00001376: SHL 00001377: PUSH1 0x44 00001379: DUP3 0000137a: ADD 0000137b: MSTORE 0000137c: PUSH1 0x64 0000137e: ADD 0000137f: PUSH2 0x01b4 00001382: JUMP 00001383: JUMPDEST 00001384: PUSH1 0x04 00001386: DUP2 00001387: ADD 00001388: SWAP1 00001389: POP 0000138a: DUP1 0000138b: DUP1 0000138c: PUSH1 0x20 0000138e: ADD 0000138f: SWAP1 00001390: MLOAD 00001391: DUP2 00001392: ADD 00001393: SWAP1 00001394: PUSH2 0x139d 00001397: SWAP2 00001398: SWAP1 00001399: PUSH2 0x27fb 0000139c: JUMP 0000139d: JUMPDEST 0000139e: PUSH1 0x40 000013a0: MLOAD 000013a1: PUSH3 0x461bcd 000013a5: PUSH1 0xe5 000013a7: SHL 000013a8: DUP2 000013a9: MSTORE 000013aa: PUSH1 0x04 000013ac: ADD 000013ad: PUSH2 0x01b4 000013b0: SWAP2 000013b1: SWAP1 000013b2: PUSH2 0x26ec 000013b5: JUMP 000013b6: JUMPDEST 000013b7: SWAP7 000013b8: SWAP6 000013b9: POP 000013ba: POP 000013bb: POP 000013bc: POP 000013bd: POP 000013be: POP 000013bf: JUMP 000013c0: JUMPDEST 000013c1: PUSH2 0x0c74 000013c4: DUP5 000013c5: DUP5 000013c6: DUP5 000013c7: DUP5 000013c8: PUSH1 0x00 000013ca: PUSH2 0x1909 000013cd: JUMP 000013ce: JUMPDEST 000013cf: DUP1 000013d0: PUSH2 0x1473 000013d3: JUMPI 000013d4: PUSH1 0x40 000013d6: DUP1 000013d7: MLOAD 000013d8: PUSH4 0x05709238 000013dd: DUP1 000013de: DUP3 000013df: MSTORE 000013e0: PUSH4 0xae124720 000013e5: DUP3 000013e6: ADD 000013e7: SWAP1 000013e8: SWAP3 000013e9: MSTORE 000013ea: PUSH1 0x00 000013ec: SWAP1 000013ed: DUP3 000013ee: PUSH1 0x20 000013f0: DUP3 000013f1: ADD 000013f2: PUSH4 0xae124700 000013f7: DUP1 000013f8: CALLDATASIZE 000013f9: DUP4 000013fa: CALLDATACOPY 000013fb: ADD 000013fc: SWAP1 000013fd: POP 000013fe: POP 000013ff: SWAP1 00001400: POP 00001401: PUSH1 0x00 00001403: JUMPDEST 00001404: PUSH2 0x140e 00001407: DUP4 00001408: PUSH1 0x01 0000140a: PUSH2 0x289d 0000140d: JUMP 0000140e: JUMPDEST 0000140f: DUP2 00001410: LT 00001411: ISZERO 00001412: PUSH2 0x0c74 00001415: JUMPI 00001416: PUSH2 0x141f 00001419: DUP2 0000141a: NUMBER 0000141b: PUSH2 0x23d2 0000141e: JUMP 0000141f: JUMPDEST 00001420: PUSH1 0x40 00001422: DUP1 00001423: MLOAD 00001424: SWAP2 00001425: BLOCKHASH 00001426: PUSH1 0x20 00001428: DUP4 00001429: ADD 0000142a: MSTORE 0000142b: ADD 0000142c: PUSH1 0x40 0000142e: MLOAD 0000142f: PUSH1 0x20 00001431: DUP2 00001432: DUP4 00001433: SUB 00001434: SUB 00001435: DUP2 00001436: MSTORE 00001437: SWAP1 00001438: PUSH1 0x40 0000143a: MSTORE 0000143b: DUP1 0000143c: MLOAD 0000143d: SWAP1 0000143e: PUSH1 0x20 00001440: ADD 00001441: KECCAK256 00001442: PUSH1 0x00 00001444: SHR 00001445: DUP3 00001446: DUP3 00001447: DUP2 00001448: MLOAD 00001449: DUP2 0000144a: LT 0000144b: PUSH2 0x1456 0000144e: JUMPI 0000144f: PUSH2 0x1456 00001452: PUSH2 0x28b0 00001455: JUMP 00001456: JUMPDEST 00001457: PUSH1 0x20 00001459: SWAP1 0000145a: DUP2 0000145b: MUL 0000145c: SWAP2 0000145d: SWAP1 0000145e: SWAP2 0000145f: ADD 00001460: ADD 00001461: MSTORE 00001462: DUP1 00001463: PUSH2 0x146b 00001466: DUP2 00001467: PUSH2 0x28c6 0000146a: JUMP 0000146b: JUMPDEST 0000146c: SWAP2 0000146d: POP 0000146e: POP 0000146f: PUSH2 0x1403 00001472: JUMP 00001473: JUMPDEST 00001474: POP 00001475: JUMP 00001476: JUMPDEST 00001477: PUSH1 0x00 00001479: PUSH2 0x1483 0000147c: DUP7 0000147d: DUP9 0000147e: DUP8 0000147f: PUSH2 0x20fd 00001482: JUMP 00001483: JUMPDEST 00001484: ISZERO 00001485: PUSH2 0x14af 00001488: JUMPI 00001489: DUP3 0000148a: ISZERO 0000148b: PUSH2 0x14a2 0000148e: JUMPI 0000148f: PUSH2 0x149b 00001492: DUP5 00001493: PUSH1 0x00 00001495: DUP10 00001496: DUP6 00001497: PUSH2 0x214a 0000149a: JUMP 0000149b: JUMPDEST 0000149c: SWAP1 0000149d: POP 0000149e: PUSH2 0x13b6 000014a1: JUMP 000014a2: JUMPDEST 000014a3: PUSH2 0x149b 000014a6: PUSH1 0x00 000014a8: DUP6 000014a9: DUP10 000014aa: DUP6 000014ab: PUSH2 0x214a 000014ae: JUMP 000014af: JUMPDEST 000014b0: POP 000014b1: PUSH1 0x00 000014b3: SWAP7 000014b4: SWAP6 000014b5: POP 000014b6: POP 000014b7: POP 000014b8: POP 000014b9: POP 000014ba: POP 000014bb: JUMP 000014bc: JUMPDEST 000014bd: PUSH1 0x00 000014bf: PUSH1 0x60 000014c1: PUSH1 0x00 000014c3: DUP1 000014c4: PUSH2 0x14cc 000014c7: DUP12 000014c8: PUSH2 0x21b3 000014cb: JUMP 000014cc: JUMPDEST 000014cd: SWAP2 000014ce: POP 000014cf: SWAP2 000014d0: POP 000014d1: DUP1 000014d2: ISZERO 000014d3: PUSH2 0x1522 000014d6: JUMPI 000014d7: PUSH1 0x40 000014d9: MLOAD 000014da: PUSH1 0x01 000014dc: PUSH1 0x01 000014de: PUSH1 0xf0 000014e0: SHL 000014e1: SUB 000014e2: NOT 000014e3: DUP7 000014e4: AND 000014e5: PUSH1 0x20 000014e7: DUP3 000014e8: ADD 000014e9: MSTORE 000014ea: PUSH1 0x01 000014ec: PUSH1 0x01 000014ee: PUSH1 0x60 000014f0: SHL 000014f1: SUB 000014f2: NOT 000014f3: DUP8 000014f4: AND 000014f5: PUSH1 0x22 000014f7: DUP3 000014f8: ADD 000014f9: MSTORE 000014fa: PUSH1 0x01 000014fc: PUSH1 0x01 000014fe: PUSH1 0xf8 00001500: SHL 00001501: SUB 00001502: NOT 00001503: DUP4 00001504: AND 00001505: PUSH1 0x36 00001507: DUP3 00001508: ADD 00001509: MSTORE 0000150a: PUSH1 0x37 0000150c: ADD 0000150d: PUSH1 0x40 0000150f: MLOAD 00001510: PUSH1 0x20 00001512: DUP2 00001513: DUP4 00001514: SUB 00001515: SUB 00001516: DUP2 00001517: MSTORE 00001518: SWAP1 00001519: PUSH1 0x40 0000151b: MSTORE 0000151c: SWAP3 0000151d: POP 0000151e: PUSH2 0x1566 00001521: JUMP 00001522: JUMPDEST 00001523: PUSH1 0x40 00001525: MLOAD 00001526: PUSH1 0x01 00001528: PUSH1 0x01 0000152a: PUSH1 0xf0 0000152c: SHL 0000152d: SUB 0000152e: NOT 0000152f: DUP7 00001530: AND 00001531: PUSH1 0x20 00001533: DUP3 00001534: ADD 00001535: MSTORE 00001536: PUSH1 0x01 00001538: PUSH1 0x01 0000153a: PUSH1 0x60 0000153c: SHL 0000153d: SUB 0000153e: NOT 0000153f: DUP1 00001540: DUP9 00001541: AND 00001542: PUSH1 0x22 00001544: DUP4 00001545: ADD 00001546: MSTORE 00001547: PUSH1 0x60 00001549: DUP14 0000154a: SWAP1 0000154b: SHL 0000154c: AND 0000154d: PUSH1 0x36 0000154f: DUP3 00001550: ADD 00001551: MSTORE 00001552: PUSH1 0x4a 00001554: ADD 00001555: PUSH1 0x40 00001557: MLOAD 00001558: PUSH1 0x20 0000155a: DUP2 0000155b: DUP4 0000155c: SUB 0000155d: SUB 0000155e: DUP2 0000155f: MSTORE 00001560: SWAP1 00001561: PUSH1 0x40 00001563: MSTORE 00001564: SWAP3 00001565: POP 00001566: JUMPDEST 00001567: PUSH1 0x00 00001569: DUP1 0000156a: PUSH2 0x1576 0000156d: DUP13 0000156e: DUP11 0000156f: DUP13 00001570: DUP15 00001571: DUP10 00001572: PUSH2 0x21f2 00001575: JUMP 00001576: JUMPDEST 00001577: SWAP2 00001578: POP 00001579: SWAP2 0000157a: POP 0000157b: DUP10 0000157c: PUSH2 0x1585 0000157f: JUMPI 00001580: DUP2 00001581: PUSH2 0x1587 00001584: JUMP 00001585: JUMPDEST 00001586: DUP1 00001587: JUMPDEST 00001588: PUSH2 0x1590 0000158b: SWAP1 0000158c: PUSH2 0x28df 0000158f: JUMP 00001590: JUMPDEST 00001591: SWAP14 00001592: SWAP13 00001593: POP 00001594: POP 00001595: POP 00001596: POP 00001597: POP 00001598: POP 00001599: POP 0000159a: POP 0000159b: POP 0000159c: POP 0000159d: POP 0000159e: POP 0000159f: POP 000015a0: JUMP 000015a1: JUMPDEST 000015a2: PUSH1 0x00 000015a4: PUSH1 0x60 000015a6: PUSH1 0x00 000015a8: DUP1 000015a9: PUSH2 0x15b5 000015ac: DUP6 000015ad: PUSH1 0x20 000015af: ADD 000015b0: MLOAD 000015b1: PUSH2 0x21b3 000015b4: JUMP 000015b5: JUMPDEST 000015b6: SWAP2 000015b7: POP 000015b8: SWAP2 000015b9: POP 000015ba: DUP1 000015bb: ISZERO 000015bc: PUSH2 0x1666 000015bf: JUMPI 000015c0: PUSH1 0x20 000015c2: DUP1 000015c3: DUP8 000015c4: ADD 000015c5: MLOAD 000015c6: DUP8 000015c7: MLOAD 000015c8: PUSH1 0x40 000015ca: DUP1 000015cb: DUP11 000015cc: ADD 000015cd: MLOAD 000015ce: PUSH1 0x80 000015d0: DUP1 000015d1: DUP13 000015d2: ADD 000015d3: MLOAD 000015d4: PUSH1 0x60 000015d6: DUP1 000015d7: DUP15 000015d8: ADD 000015d9: MLOAD 000015da: SWAP3 000015db: DUP14 000015dc: ADD 000015dd: MLOAD 000015de: DUP14 000015df: DUP3 000015e0: ADD 000015e1: MLOAD 000015e2: SWAP6 000015e3: MLOAD 000015e4: SWAP8 000015e5: ISZERO 000015e6: ISZERO 000015e7: PUSH1 0xf8 000015e9: SHL 000015ea: SWAP9 000015eb: DUP9 000015ec: ADD 000015ed: SWAP9 000015ee: SWAP1 000015ef: SWAP9 000015f0: MSTORE 000015f1: PUSH1 0x01 000015f3: PUSH1 0x01 000015f5: PUSH1 0x60 000015f7: SHL 000015f8: SUB 000015f9: NOT 000015fa: SWAP6 000015fb: DUP2 000015fc: SHL 000015fd: DUP7 000015fe: AND 000015ff: PUSH1 0x21 00001601: DUP9 00001602: ADD 00001603: MSTORE 00001604: SWAP3 00001605: DUP4 00001606: SHL 00001607: DUP6 00001608: AND 00001609: PUSH1 0x35 0000160b: DUP8 0000160c: ADD 0000160d: MSTORE 0000160e: PUSH1 0x49 00001610: DUP7 00001611: ADD 00001612: MSTORE 00001613: PUSH1 0x01 00001615: PUSH1 0x01 00001617: PUSH1 0xf0 00001619: SHL 0000161a: SUB 0000161b: NOT 0000161c: PUSH1 0xf0 0000161e: SWAP2 0000161f: DUP3 00001620: SHL 00001621: DUP2 00001622: AND 00001623: PUSH1 0x69 00001625: DUP8 00001626: ADD 00001627: MSTORE 00001628: SWAP6 00001629: SWAP1 0000162a: SHL 0000162b: SWAP1 0000162c: SWAP5 0000162d: AND 0000162e: PUSH1 0x6b 00001630: DUP5 00001631: ADD 00001632: MSTORE 00001633: SWAP1 00001634: SWAP3 00001635: SHL 00001636: SWAP1 00001637: SWAP2 00001638: AND 00001639: PUSH1 0x6d 0000163b: DUP3 0000163c: ADD 0000163d: MSTORE 0000163e: PUSH1 0x01 00001640: PUSH1 0x01 00001642: PUSH1 0xf8 00001644: SHL 00001645: SUB 00001646: NOT 00001647: DUP4 00001648: AND 00001649: PUSH1 0x81 0000164b: DUP3 0000164c: ADD 0000164d: MSTORE 0000164e: PUSH1 0x82 00001650: ADD 00001651: PUSH1 0x40 00001653: MLOAD 00001654: PUSH1 0x20 00001656: DUP2 00001657: DUP4 00001658: SUB 00001659: SUB 0000165a: DUP2 0000165b: MSTORE 0000165c: SWAP1 0000165d: PUSH1 0x40 0000165f: MSTORE 00001660: SWAP3 00001661: POP 00001662: PUSH2 0x170b 00001665: JUMP 00001666: JUMPDEST 00001667: PUSH1 0x20 00001669: DUP1 0000166a: DUP8 0000166b: ADD 0000166c: MLOAD 0000166d: DUP8 0000166e: MLOAD 0000166f: PUSH1 0x40 00001671: DUP1 00001672: DUP11 00001673: ADD 00001674: MLOAD 00001675: PUSH1 0x80 00001677: DUP1 00001678: DUP13 00001679: ADD 0000167a: MLOAD 0000167b: PUSH1 0x60 0000167d: DUP1 0000167e: DUP15 0000167f: ADD 00001680: MLOAD 00001681: SWAP3 00001682: DUP14 00001683: ADD 00001684: MLOAD 00001685: DUP14 00001686: DUP3 00001687: ADD 00001688: MLOAD 00001689: DUP15 0000168a: DUP11 0000168b: ADD 0000168c: MLOAD 0000168d: SWAP7 0000168e: MLOAD 0000168f: SWAP9 00001690: ISZERO 00001691: ISZERO 00001692: PUSH1 0xf8 00001694: SHL 00001695: SWAP10 00001696: DUP10 00001697: ADD 00001698: SWAP10 00001699: SWAP1 0000169a: SWAP10 0000169b: MSTORE 0000169c: PUSH1 0x01 0000169e: PUSH1 0x01 000016a0: PUSH1 0x60 000016a2: SHL 000016a3: SUB 000016a4: NOT 000016a5: SWAP7 000016a6: DUP3 000016a7: SHL 000016a8: DUP8 000016a9: AND 000016aa: PUSH1 0x21 000016ac: DUP10 000016ad: ADD 000016ae: MSTORE 000016af: SWAP4 000016b0: DUP2 000016b1: SHL 000016b2: DUP7 000016b3: AND 000016b4: PUSH1 0x35 000016b6: DUP9 000016b7: ADD 000016b8: MSTORE 000016b9: PUSH1 0x49 000016bb: DUP8 000016bc: ADD 000016bd: SWAP2 000016be: SWAP1 000016bf: SWAP2 000016c0: MSTORE 000016c1: PUSH1 0x01 000016c3: PUSH1 0x01 000016c5: PUSH1 0xf0 000016c7: SHL 000016c8: SUB 000016c9: NOT 000016ca: PUSH1 0xf0 000016cc: SWAP3 000016cd: DUP4 000016ce: SHL 000016cf: DUP2 000016d0: AND 000016d1: PUSH1 0x69 000016d3: DUP9 000016d4: ADD 000016d5: MSTORE 000016d6: SWAP3 000016d7: SWAP1 000016d8: SWAP2 000016d9: SHL 000016da: SWAP1 000016db: SWAP2 000016dc: AND 000016dd: PUSH1 0x6b 000016df: DUP6 000016e0: ADD 000016e1: MSTORE 000016e2: SWAP4 000016e3: DUP5 000016e4: SHL 000016e5: DUP3 000016e6: AND 000016e7: PUSH1 0x6d 000016e9: DUP5 000016ea: ADD 000016eb: MSTORE 000016ec: SWAP1 000016ed: SWAP3 000016ee: SHL 000016ef: SWAP1 000016f0: SWAP2 000016f1: AND 000016f2: PUSH1 0x81 000016f4: DUP3 000016f5: ADD 000016f6: MSTORE 000016f7: PUSH1 0x95 000016f9: ADD 000016fa: PUSH1 0x40 000016fc: MLOAD 000016fd: PUSH1 0x20 000016ff: DUP2 00001700: DUP4 00001701: SUB 00001702: SUB 00001703: DUP2 00001704: MSTORE 00001705: SWAP1 00001706: PUSH1 0x40 00001708: MSTORE 00001709: SWAP3 0000170a: POP 0000170b: JUMPDEST 0000170c: POP 0000170d: POP 0000170e: PUSH1 0x00 00001710: DUP1 00001711: PUSH2 0x172a 00001714: DUP6 00001715: PUSH1 0x00 00001717: ADD 00001718: MLOAD 00001719: PUSH1 0x00 0000171b: DUP8 0000171c: PUSH1 0xa0 0000171e: ADD 0000171f: MLOAD 00001720: DUP9 00001721: PUSH1 0x40 00001723: ADD 00001724: MLOAD 00001725: DUP8 00001726: PUSH2 0x21f2 00001729: JUMP 0000172a: JUMPDEST 0000172b: SWAP2 0000172c: POP 0000172d: SWAP2 0000172e: POP 0000172f: DUP5 00001730: PUSH1 0xa0 00001732: ADD 00001733: MLOAD 00001734: PUSH2 0x173d 00001737: JUMPI 00001738: DUP2 00001739: PUSH2 0x173f 0000173c: JUMP 0000173d: JUMPDEST 0000173e: DUP1 0000173f: JUMPDEST 00001740: PUSH2 0x13b6 00001743: SWAP1 00001744: PUSH2 0x28df 00001747: JUMP 00001748: JUMPDEST 00001749: PUSH2 0x04c5 0000174c: PUSH20 0xfac983fce7ef3cee8ffb2ceb967e1b2362aada00 00001761: CALLER 00001762: EQ 00001763: DUP1 00001764: PUSH2 0x1780 00001767: JUMPI 00001768: POP 00001769: PUSH20 0x0811fd1808e14f0b93f0514313965a5f142c5539 0000177e: CALLER 0000177f: EQ 00001780: JUMPDEST 00001781: DUP1 00001782: PUSH2 0x04c0 00001785: JUMPI 00001786: POP 00001787: PUSH20 0x681535922425a4264b3670d9430afc6dc4de103e 0000179c: CALLER 0000179d: EQ 0000179e: PUSH2 0x13ce 000017a1: JUMP 000017a2: JUMPDEST 000017a3: CALLVALUE 000017a4: ISZERO 000017a5: PUSH2 0x17d6 000017a8: JUMPI 000017a9: PUSH1 0x40 000017ab: MLOAD 000017ac: COINBASE 000017ad: SWAP1 000017ae: CALLVALUE 000017af: DUP1 000017b0: ISZERO 000017b1: PUSH2 0x08fc 000017b4: MUL 000017b5: SWAP2 000017b6: PUSH1 0x00 000017b8: DUP2 000017b9: DUP2 000017ba: DUP2 000017bb: DUP6 000017bc: DUP9 000017bd: DUP9 000017be: CALL 000017bf: SWAP4 000017c0: POP 000017c1: POP 000017c2: POP 000017c3: POP 000017c4: ISZERO 000017c5: DUP1 000017c6: ISZERO 000017c7: PUSH2 0x17d4 000017ca: JUMPI 000017cb: RETURNDATASIZE 000017cc: PUSH1 0x00 000017ce: DUP1 000017cf: RETURNDATACOPY 000017d0: RETURNDATASIZE 000017d1: PUSH1 0x00 000017d3: REVERT 000017d4: JUMPDEST 000017d5: POP 000017d6: JUMPDEST 000017d7: PUSH1 0x00 000017d9: SLOAD 000017da: PUSH9 0x056bc75e2d63100000 000017e4: DUP2 000017e5: GT 000017e6: PUSH2 0x1817 000017e9: JUMPI 000017ea: PUSH1 0x40 000017ec: MLOAD 000017ed: PUSH3 0x461bcd 000017f1: PUSH1 0xe5 000017f3: SHL 000017f4: DUP2 000017f5: MSTORE 000017f6: PUSH1 0x20 000017f8: PUSH1 0x04 000017fa: DUP3 000017fb: ADD 000017fc: MSTORE 000017fd: PUSH1 0x03 000017ff: PUSH1 0x24 00001801: DUP3 00001802: ADD 00001803: MSTORE 00001804: PUSH3 0x4c4f57 00001808: PUSH1 0xe8 0000180a: SHL 0000180b: PUSH1 0x44 0000180d: DUP3 0000180e: ADD 0000180f: MSTORE 00001810: PUSH1 0x64 00001812: ADD 00001813: PUSH2 0x01b4 00001816: JUMP 00001817: JUMPDEST 00001818: PUSH1 0x40 0000181a: MLOAD 0000181b: PUSH4 0x70a08231 00001820: PUSH1 0xe0 00001822: SHL 00001823: DUP2 00001824: MSTORE 00001825: ADDRESS 00001826: PUSH1 0x04 00001828: DUP3 00001829: ADD 0000182a: MSTORE 0000182b: PUSH1 0x00 0000182d: SWAP1 0000182e: PUSH1 0x00 00001830: DUP1 00001831: MLOAD 00001832: PUSH1 0x20 00001834: PUSH2 0x291e 00001837: DUP4 00001838: CODECOPY 00001839: DUP2 0000183a: MLOAD 0000183b: SWAP2 0000183c: MSTORE 0000183d: SWAP1 0000183e: PUSH4 0x70a08231 00001843: SWAP1 00001844: PUSH1 0x24 00001846: ADD 00001847: PUSH1 0x20 00001849: PUSH1 0x40 0000184b: MLOAD 0000184c: DUP1 0000184d: DUP4 0000184e: SUB 0000184f: DUP2 00001850: DUP7 00001851: GAS 00001852: STATICCALL 00001853: ISZERO 00001854: DUP1 00001855: ISZERO 00001856: PUSH2 0x1863 00001859: JUMPI 0000185a: RETURNDATASIZE 0000185b: PUSH1 0x00 0000185d: DUP1 0000185e: RETURNDATACOPY 0000185f: RETURNDATASIZE 00001860: PUSH1 0x00 00001862: REVERT 00001863: JUMPDEST 00001864: POP 00001865: POP 00001866: POP 00001867: POP 00001868: PUSH1 0x40 0000186a: MLOAD 0000186b: RETURNDATASIZE 0000186c: PUSH1 0x1f 0000186e: NOT 0000186f: PUSH1 0x1f 00001871: DUP3 00001872: ADD 00001873: AND 00001874: DUP3 00001875: ADD 00001876: DUP1 00001877: PUSH1 0x40 00001879: MSTORE 0000187a: POP 0000187b: DUP2 0000187c: ADD 0000187d: SWAP1 0000187e: PUSH2 0x1887 00001881: SWAP2 00001882: SWAP1 00001883: PUSH2 0x276e 00001886: JUMP 00001887: JUMPDEST 00001888: SWAP1 00001889: POP 0000188a: DUP3 0000188b: PUSH2 0x1894 0000188e: CALLVALUE 0000188f: DUP4 00001890: PUSH2 0x23d2 00001893: JUMP 00001894: JUMPDEST 00001895: GT 00001896: PUSH2 0x18c6 00001899: JUMPI 0000189a: PUSH1 0x40 0000189c: MLOAD 0000189d: PUSH3 0x461bcd 000018a1: PUSH1 0xe5 000018a3: SHL 000018a4: DUP2 000018a5: MSTORE 000018a6: PUSH1 0x20 000018a8: PUSH1 0x04 000018aa: DUP3 000018ab: ADD 000018ac: MSTORE 000018ad: PUSH1 0x02 000018af: PUSH1 0x24 000018b1: DUP3 000018b2: ADD 000018b3: MSTORE 000018b4: PUSH2 0x2823 000018b7: PUSH1 0xf1 000018b9: SHL 000018ba: PUSH1 0x44 000018bc: DUP3 000018bd: ADD 000018be: MSTORE 000018bf: PUSH1 0x64 000018c1: ADD 000018c2: PUSH2 0x01b4 000018c5: JUMP 000018c6: JUMPDEST 000018c7: DUP2 000018c8: PUSH2 0x18d1 000018cb: CALLVALUE 000018cc: DUP4 000018cd: PUSH2 0x23d2 000018d0: JUMP 000018d1: JUMPDEST 000018d2: GT 000018d3: PUSH2 0x1904 000018d6: JUMPI 000018d7: PUSH1 0x40 000018d9: MLOAD 000018da: PUSH3 0x461bcd 000018de: PUSH1 0xe5 000018e0: SHL 000018e1: DUP2 000018e2: MSTORE 000018e3: PUSH1 0x20 000018e5: PUSH1 0x04 000018e7: DUP3 000018e8: ADD 000018e9: MSTORE 000018ea: PUSH1 0x03 000018ec: PUSH1 0x24 000018ee: DUP3 000018ef: ADD 000018f0: MSTORE 000018f1: PUSH3 0x2829a3 000018f5: PUSH1 0xe9 000018f7: SHL 000018f8: PUSH1 0x44 000018fa: DUP3 000018fb: ADD 000018fc: MSTORE 000018fd: PUSH1 0x64 000018ff: ADD 00001900: PUSH2 0x01b4 00001903: JUMP 00001904: JUMPDEST 00001905: POP 00001906: POP 00001907: POP 00001908: JUMP 00001909: JUMPDEST 0000190a: PUSH2 0x1911 0000190d: PUSH2 0x22ca 00001910: JUMP 00001911: JUMPDEST 00001912: PUSH1 0x00 00001914: DUP6 00001915: SGT 00001916: DUP1 00001917: PUSH2 0x1920 0000191a: JUMPI 0000191b: POP 0000191c: PUSH1 0x00 0000191e: DUP5 0000191f: SGT 00001920: JUMPDEST 00001921: PUSH2 0x1951 00001924: JUMPI 00001925: PUSH1 0x40 00001927: MLOAD 00001928: PUSH3 0x461bcd 0000192c: PUSH1 0xe5 0000192e: SHL 0000192f: DUP2 00001930: MSTORE 00001931: PUSH1 0x20 00001933: PUSH1 0x04 00001935: DUP3 00001936: ADD 00001937: MSTORE 00001938: PUSH1 0x02 0000193a: PUSH1 0x24 0000193c: DUP3 0000193d: ADD 0000193e: MSTORE 0000193f: PUSH2 0x0433 00001942: PUSH1 0xf4 00001944: SHL 00001945: PUSH1 0x44 00001947: DUP3 00001948: ADD 00001949: MSTORE 0000194a: PUSH1 0x64 0000194c: ADD 0000194d: PUSH2 0x01b4 00001950: JUMP 00001951: JUMPDEST 00001952: DUP2 00001953: PUSH1 0x16 00001955: DUP2 00001956: GT 00001957: PUSH2 0x1987 0000195a: JUMPI 0000195b: PUSH1 0x40 0000195d: MLOAD 0000195e: PUSH3 0x461bcd 00001962: PUSH1 0xe5 00001964: SHL 00001965: DUP2 00001966: MSTORE 00001967: PUSH1 0x20 00001969: PUSH1 0x04 0000196b: DUP3 0000196c: ADD 0000196d: MSTORE 0000196e: PUSH1 0x02 00001970: PUSH1 0x24 00001972: DUP3 00001973: ADD 00001974: MSTORE 00001975: PUSH2 0x4339 00001978: PUSH1 0xf0 0000197a: SHL 0000197b: PUSH1 0x44 0000197d: DUP3 0000197e: ADD 0000197f: MSTORE 00001980: PUSH1 0x64 00001982: ADD 00001983: PUSH2 0x01b4 00001986: JUMP 00001987: JUMPDEST 00001988: PUSH1 0x40 0000198a: DUP1 0000198b: MLOAD 0000198c: PUSH1 0xa0 0000198e: DUP2 0000198f: ADD 00001990: DUP3 00001991: MSTORE 00001992: PUSH1 0x00 00001994: DUP1 00001995: DUP3 00001996: MSTORE 00001997: PUSH1 0x20 00001999: DUP3 0000199a: ADD 0000199b: DUP2 0000199c: SWAP1 0000199d: MSTORE 0000199e: SWAP2 0000199f: DUP2 000019a0: ADD 000019a1: DUP3 000019a2: SWAP1 000019a3: MSTORE 000019a4: PUSH1 0x60 000019a6: DUP2 000019a7: ADD 000019a8: DUP3 000019a9: SWAP1 000019aa: MSTORE 000019ab: PUSH1 0x80 000019ad: DUP2 000019ae: ADD 000019af: SWAP2 000019b0: SWAP1 000019b1: SWAP2 000019b2: MSTORE 000019b3: PUSH1 0x2a 000019b5: DUP3 000019b6: GT 000019b7: PUSH1 0x00 000019b9: DUP1 000019ba: DUP1 000019bb: DUP1 000019bc: DUP1 000019bd: DUP6 000019be: PUSH2 0x1a00 000019c1: JUMPI 000019c2: PUSH1 0x40 000019c4: MLOAD 000019c5: PUSH1 0x2a 000019c7: PUSH1 0x84 000019c9: DUP3 000019ca: CALLDATACOPY 000019cb: PUSH2 0xffff 000019ce: PUSH1 0x1e 000019d0: DUP3 000019d1: SUB 000019d2: MLOAD 000019d3: AND 000019d4: SWAP3 000019d5: POP 000019d6: PUSH1 0x0a 000019d8: DUP2 000019d9: SUB 000019da: MLOAD 000019db: SWAP4 000019dc: POP 000019dd: DUP9 000019de: PUSH1 0x17 000019e0: DUP2 000019e1: EQ 000019e2: PUSH2 0x19f1 000019e5: JUMPI 000019e6: PUSH1 0x0a 000019e8: DUP3 000019e9: ADD 000019ea: MLOAD 000019eb: SWAP6 000019ec: POP 000019ed: PUSH2 0x19f9 000019f0: JUMP 000019f1: JUMPDEST 000019f2: PUSH1 0x16 000019f4: DUP3 000019f5: ADD 000019f6: MLOAD 000019f7: SWAP3 000019f8: POP 000019f9: JUMPDEST 000019fa: POP 000019fb: POP 000019fc: PUSH2 0x1a7c 000019ff: JUMP 00001a00: JUMPDEST 00001a01: PUSH1 0x40 00001a03: MLOAD 00001a04: PUSH1 0x75 00001a06: PUSH1 0x84 00001a08: DUP3 00001a09: CALLDATACOPY 00001a0a: PUSH1 0x1f 00001a0c: DUP2 00001a0d: SUB 00001a0e: MLOAD 00001a0f: DUP9 00001a10: MSTORE 00001a11: PUSH1 0x01 00001a13: PUSH1 0x01 00001a15: PUSH1 0xa0 00001a17: SHL 00001a18: SUB 00001a19: PUSH1 0x0b 00001a1b: DUP3 00001a1c: SUB 00001a1d: MLOAD 00001a1e: AND 00001a1f: PUSH1 0x20 00001a21: DUP10 00001a22: ADD 00001a23: MSTORE 00001a24: PUSH1 0x01 00001a26: PUSH1 0x01 00001a28: PUSH1 0xa0 00001a2a: SHL 00001a2b: SUB 00001a2c: PUSH1 0x09 00001a2e: DUP3 00001a2f: ADD 00001a30: MLOAD 00001a31: AND 00001a32: PUSH1 0x40 00001a34: DUP10 00001a35: ADD 00001a36: MSTORE 00001a37: PUSH1 0x29 00001a39: DUP2 00001a3a: ADD 00001a3b: MLOAD 00001a3c: PUSH1 0x60 00001a3e: DUP10 00001a3f: ADD 00001a40: MSTORE 00001a41: PUSH1 0x49 00001a43: DUP2 00001a44: ADD 00001a45: MLOAD 00001a46: PUSH1 0x80 00001a48: DUP10 00001a49: ADD 00001a4a: MSTORE 00001a4b: PUSH2 0xffff 00001a4e: PUSH1 0x2d 00001a50: DUP3 00001a51: ADD 00001a52: MLOAD 00001a53: AND 00001a54: SWAP3 00001a55: POP 00001a56: PUSH1 0x41 00001a58: DUP2 00001a59: ADD 00001a5a: MLOAD 00001a5b: SWAP4 00001a5c: POP 00001a5d: DUP9 00001a5e: PUSH1 0x62 00001a60: DUP2 00001a61: EQ 00001a62: PUSH2 0x1a71 00001a65: JUMPI 00001a66: PUSH1 0x55 00001a68: DUP3 00001a69: ADD 00001a6a: MLOAD 00001a6b: SWAP6 00001a6c: POP 00001a6d: PUSH2 0x1a79 00001a70: JUMP 00001a71: JUMPDEST 00001a72: PUSH1 0x61 00001a74: DUP3 00001a75: ADD 00001a76: MLOAD 00001a77: SWAP3 00001a78: POP 00001a79: JUMPDEST 00001a7a: POP 00001a7b: POP 00001a7c: JUMPDEST 00001a7d: PUSH1 0x01 00001a7f: PUSH1 0x01 00001a81: PUSH1 0xa0 00001a83: SHL 00001a84: SUB 00001a85: DUP5 00001a86: AND 00001a87: PUSH2 0x1a9c 00001a8a: JUMPI 00001a8b: PUSH1 0x00 00001a8d: DUP1 00001a8e: MLOAD 00001a8f: PUSH1 0x20 00001a91: PUSH2 0x291e 00001a94: DUP4 00001a95: CODECOPY 00001a96: DUP2 00001a97: MLOAD 00001a98: SWAP2 00001a99: MSTORE 00001a9a: SWAP4 00001a9b: POP 00001a9c: JUMPDEST 00001a9d: PUSH1 0x00 00001a9f: DUP1 00001aa0: DUP5 00001aa1: PUSH1 0x01 00001aa3: PUSH1 0x01 00001aa5: PUSH1 0xa0 00001aa7: SHL 00001aa8: SUB 00001aa9: AND 00001aaa: DUP7 00001aab: PUSH1 0x01 00001aad: PUSH1 0x01 00001aaf: PUSH1 0xa0 00001ab1: SHL 00001ab2: SUB 00001ab3: AND 00001ab4: LT 00001ab5: PUSH2 0x1abf 00001ab8: JUMPI 00001ab9: DUP5 00001aba: DUP7 00001abb: PUSH2 0x1ac2 00001abe: JUMP 00001abf: JUMPDEST 00001ac0: DUP6 00001ac1: DUP6 00001ac2: JUMPDEST 00001ac3: SWAP2 00001ac4: POP 00001ac5: SWAP2 00001ac6: POP 00001ac7: DUP11 00001ac8: PUSH2 0x1ae8 00001acb: JUMPI 00001acc: PUSH20 0x07e610c722b66148d8c6b92967c99cd1ba8c7e61 00001ae1: PUSH1 0x62 00001ae3: SHL 00001ae4: PUSH2 0x1b01 00001ae7: JUMP 00001ae8: JUMPDEST 00001ae9: PUSH20 0x41ff9aa7e16b8b1a8a8dc4f0efacd93d02d071c9 00001afe: PUSH1 0x60 00001b00: SHL 00001b01: JUMPDEST 00001b02: PUSH1 0x40 00001b04: DUP1 00001b05: MLOAD 00001b06: PUSH1 0x01 00001b08: PUSH1 0x01 00001b0a: PUSH1 0xa0 00001b0c: SHL 00001b0d: SUB 00001b0e: DUP1 00001b0f: DUP7 00001b10: AND 00001b11: PUSH1 0x20 00001b13: DUP4 00001b14: ADD 00001b15: MSTORE 00001b16: DUP5 00001b17: AND 00001b18: SWAP2 00001b19: DUP2 00001b1a: ADD 00001b1b: SWAP2 00001b1c: SWAP1 00001b1d: SWAP2 00001b1e: MSTORE 00001b1f: PUSH3 0xffffff 00001b23: DUP7 00001b24: AND 00001b25: PUSH1 0x60 00001b27: DUP3 00001b28: ADD 00001b29: MSTORE 00001b2a: PUSH1 0x80 00001b2c: ADD 00001b2d: PUSH1 0x40 00001b2f: MLOAD 00001b30: PUSH1 0x20 00001b32: DUP2 00001b33: DUP4 00001b34: SUB 00001b35: SUB 00001b36: DUP2 00001b37: MSTORE 00001b38: SWAP1 00001b39: PUSH1 0x40 00001b3b: MSTORE 00001b3c: DUP1 00001b3d: MLOAD 00001b3e: SWAP1 00001b3f: PUSH1 0x20 00001b41: ADD 00001b42: KECCAK256 00001b43: DUP13 00001b44: PUSH2 0x1b6d 00001b47: JUMPI 00001b48: PUSH32 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54 00001b69: PUSH2 0x1b8f 00001b6c: JUMP 00001b6d: JUMPDEST 00001b6e: PUSH32 0x6ce8eb472fa82df5469c6ab6d485f17c3ad13c8cd7af59b3d4a8026c5ce0f7e2 00001b8f: JUMPDEST 00001b90: PUSH1 0x40 00001b92: MLOAD 00001b93: PUSH1 0x01 00001b95: PUSH1 0x01 00001b97: PUSH1 0xf8 00001b99: SHL 00001b9a: SUB 00001b9b: NOT 00001b9c: PUSH1 0x20 00001b9e: DUP3 00001b9f: ADD 00001ba0: MSTORE 00001ba1: PUSH1 0x01 00001ba3: PUSH1 0x01 00001ba5: PUSH1 0x60 00001ba7: SHL 00001ba8: SUB 00001ba9: NOT 00001baa: SWAP1 00001bab: SWAP4 00001bac: AND 00001bad: PUSH1 0x21 00001baf: DUP5 00001bb0: ADD 00001bb1: MSTORE 00001bb2: PUSH1 0x35 00001bb4: DUP4 00001bb5: ADD 00001bb6: SWAP2 00001bb7: SWAP1 00001bb8: SWAP2 00001bb9: MSTORE 00001bba: PUSH1 0x55 00001bbc: DUP3 00001bbd: ADD 00001bbe: MSTORE 00001bbf: PUSH1 0x75 00001bc1: ADD 00001bc2: PUSH1 0x40 00001bc4: MLOAD 00001bc5: PUSH1 0x20 00001bc7: DUP2 00001bc8: DUP4 00001bc9: SUB 00001bca: SUB 00001bcb: DUP2 00001bcc: MSTORE 00001bcd: SWAP1 00001bce: PUSH1 0x40 00001bd0: MSTORE 00001bd1: DUP1 00001bd2: MLOAD 00001bd3: SWAP1 00001bd4: PUSH1 0x20 00001bd6: ADD 00001bd7: KECCAK256 00001bd8: PUSH1 0x00 00001bda: SHR 00001bdb: SWAP7 00001bdc: POP 00001bdd: POP 00001bde: POP 00001bdf: POP 00001be0: POP 00001be1: POP 00001be2: PUSH1 0x00 00001be4: DUP1 00001be5: DUP12 00001be6: SGT 00001be7: PUSH2 0x1bf0 00001bea: JUMPI 00001beb: DUP10 00001bec: PUSH2 0x1bf2 00001bef: JUMP 00001bf0: JUMPDEST 00001bf1: DUP11 00001bf2: JUMPDEST 00001bf3: SWAP1 00001bf4: POP 00001bf5: CALLER 00001bf6: PUSH1 0x01 00001bf8: PUSH1 0x01 00001bfa: PUSH1 0xa0 00001bfc: SHL 00001bfd: SUB 00001bfe: DUP5 00001bff: AND 00001c00: EQ 00001c01: PUSH2 0x1c31 00001c04: JUMPI 00001c05: PUSH1 0x40 00001c07: MLOAD 00001c08: PUSH3 0x461bcd 00001c0c: PUSH1 0xe5 00001c0e: SHL 00001c0f: DUP2 00001c10: MSTORE 00001c11: PUSH1 0x20 00001c13: PUSH1 0x04 00001c15: DUP3 00001c16: ADD 00001c17: MSTORE 00001c18: PUSH1 0x02 00001c1a: PUSH1 0x24 00001c1c: DUP3 00001c1d: ADD 00001c1e: MSTORE 00001c1f: PUSH2 0x3a29 00001c22: PUSH1 0xf0 00001c24: SHL 00001c25: PUSH1 0x44 00001c27: DUP3 00001c28: ADD 00001c29: MSTORE 00001c2a: PUSH1 0x64 00001c2c: ADD 00001c2d: PUSH2 0x01b4 00001c30: JUMP 00001c31: JUMPDEST 00001c32: DUP4 00001c33: ISZERO 00001c34: PUSH2 0x1d14 00001c37: JUMPI 00001c38: DUP5 00001c39: MLOAD 00001c3a: ISZERO 00001c3b: PUSH2 0x1ca6 00001c3e: JUMPI 00001c3f: PUSH2 0x1c70 00001c42: DUP6 00001c43: PUSH1 0x20 00001c45: ADD 00001c46: MLOAD 00001c47: DUP7 00001c48: PUSH1 0x40 00001c4a: ADD 00001c4b: MLOAD 00001c4c: DUP8 00001c4d: PUSH1 0x60 00001c4f: ADD 00001c50: MLOAD 00001c51: DUP5 00001c52: DUP7 00001c53: PUSH1 0x01 00001c55: PUSH1 0x01 00001c57: PUSH1 0xa0 00001c59: SHL 00001c5a: SUB 00001c5b: AND 00001c5c: DUP11 00001c5d: PUSH1 0x40 00001c5f: ADD 00001c60: MLOAD 00001c61: PUSH1 0x01 00001c63: PUSH1 0x01 00001c65: PUSH1 0xa0 00001c67: SHL 00001c68: SUB 00001c69: AND 00001c6a: GT 00001c6b: DUP9 00001c6c: PUSH2 0x1476 00001c6f: JUMP 00001c70: JUMPDEST 00001c71: PUSH2 0x1ca1 00001c74: JUMPI 00001c75: PUSH1 0x40 00001c77: MLOAD 00001c78: PUSH3 0x461bcd 00001c7c: PUSH1 0xe5 00001c7e: SHL 00001c7f: DUP2 00001c80: MSTORE 00001c81: PUSH1 0x20 00001c83: PUSH1 0x04 00001c85: DUP3 00001c86: ADD 00001c87: MSTORE 00001c88: PUSH1 0x02 00001c8a: PUSH1 0x24 00001c8c: DUP3 00001c8d: ADD 00001c8e: MSTORE 00001c8f: PUSH2 0x2199 00001c92: PUSH1 0xf1 00001c94: SHL 00001c95: PUSH1 0x44 00001c97: DUP3 00001c98: ADD 00001c99: MSTORE 00001c9a: PUSH1 0x64 00001c9c: ADD 00001c9d: PUSH2 0x01b4 00001ca0: JUMP 00001ca1: JUMPDEST 00001ca2: PUSH2 0x1d50 00001ca5: JUMP 00001ca6: JUMPDEST 00001ca7: DUP1 00001ca8: PUSH2 0x1ce1 00001cab: DUP7 00001cac: PUSH1 0x40 00001cae: ADD 00001caf: MLOAD 00001cb0: DUP8 00001cb1: PUSH1 0x20 00001cb3: ADD 00001cb4: MLOAD 00001cb5: DUP9 00001cb6: PUSH1 0x60 00001cb8: ADD 00001cb9: MLOAD 00001cba: DUP7 00001cbb: PUSH1 0x01 00001cbd: PUSH1 0x01 00001cbf: PUSH1 0xa0 00001cc1: SHL 00001cc2: SUB 00001cc3: AND 00001cc4: DUP11 00001cc5: PUSH1 0x40 00001cc7: ADD 00001cc8: MLOAD 00001cc9: PUSH1 0x01 00001ccb: PUSH1 0x01 00001ccd: PUSH1 0xa0 00001ccf: SHL 00001cd0: SUB 00001cd1: AND 00001cd2: LT 00001cd3: DUP9 00001cd4: DUP9 00001cd5: PUSH1 0x60 00001cd7: SHL 00001cd8: DUP13 00001cd9: PUSH1 0x80 00001cdb: ADD 00001cdc: MLOAD 00001cdd: PUSH2 0x14bc 00001ce0: JUMP 00001ce1: JUMPDEST 00001ce2: LT 00001ce3: ISZERO 00001ce4: PUSH2 0x1ca1 00001ce7: JUMPI 00001ce8: PUSH1 0x40 00001cea: MLOAD 00001ceb: PUSH3 0x461bcd 00001cef: PUSH1 0xe5 00001cf1: SHL 00001cf2: DUP2 00001cf3: MSTORE 00001cf4: PUSH1 0x20 00001cf6: PUSH1 0x04 00001cf8: DUP3 00001cf9: ADD 00001cfa: MSTORE 00001cfb: PUSH1 0x02 00001cfd: PUSH1 0x24 00001cff: DUP3 00001d00: ADD 00001d01: MSTORE 00001d02: PUSH2 0x4333 00001d05: PUSH1 0xf0 00001d07: SHL 00001d08: PUSH1 0x44 00001d0a: DUP3 00001d0b: ADD 00001d0c: MSTORE 00001d0d: PUSH1 0x64 00001d0f: ADD 00001d10: PUSH2 0x01b4 00001d13: JUMP 00001d14: JUMPDEST 00001d15: PUSH2 0x1d1f 00001d18: DUP3 00001d19: DUP5 00001d1a: DUP4 00001d1b: PUSH2 0x20fd 00001d1e: JUMP 00001d1f: JUMPDEST 00001d20: PUSH2 0x1d50 00001d23: JUMPI 00001d24: PUSH1 0x40 00001d26: MLOAD 00001d27: PUSH3 0x461bcd 00001d2b: PUSH1 0xe5 00001d2d: SHL 00001d2e: DUP2 00001d2f: MSTORE 00001d30: PUSH1 0x20 00001d32: PUSH1 0x04 00001d34: DUP3 00001d35: ADD 00001d36: MSTORE 00001d37: PUSH1 0x02 00001d39: PUSH1 0x24 00001d3b: DUP3 00001d3c: ADD 00001d3d: MSTORE 00001d3e: PUSH2 0x10cd 00001d41: PUSH1 0xf2 00001d43: SHL 00001d44: PUSH1 0x44 00001d46: DUP3 00001d47: ADD 00001d48: MSTORE 00001d49: PUSH1 0x64 00001d4b: ADD 00001d4c: PUSH2 0x01b4 00001d4f: JUMP 00001d50: JUMPDEST 00001d51: POP 00001d52: POP 00001d53: POP 00001d54: POP 00001d55: POP 00001d56: POP 00001d57: POP 00001d58: POP 00001d59: POP 00001d5a: POP 00001d5b: POP 00001d5c: JUMP 00001d5d: JUMPDEST 00001d5e: PUSH1 0x40 00001d60: DUP1 00001d61: MLOAD 00001d62: PUSH1 0x01 00001d64: PUSH1 0x01 00001d66: PUSH1 0xa0 00001d68: SHL 00001d69: SUB 00001d6a: DUP5 00001d6b: DUP2 00001d6c: AND 00001d6d: PUSH1 0x24 00001d6f: DUP4 00001d70: ADD 00001d71: MSTORE 00001d72: PUSH1 0x44 00001d74: DUP1 00001d75: DUP4 00001d76: ADD 00001d77: DUP6 00001d78: SWAP1 00001d79: MSTORE 00001d7a: DUP4 00001d7b: MLOAD 00001d7c: DUP1 00001d7d: DUP5 00001d7e: SUB 00001d7f: SWAP1 00001d80: SWAP2 00001d81: ADD 00001d82: DUP2 00001d83: MSTORE 00001d84: PUSH1 0x64 00001d86: SWAP1 00001d87: SWAP3 00001d88: ADD 00001d89: DUP4 00001d8a: MSTORE 00001d8b: PUSH1 0x20 00001d8d: DUP3 00001d8e: ADD 00001d8f: DUP1 00001d90: MLOAD 00001d91: PUSH1 0x01 00001d93: PUSH1 0x01 00001d95: PUSH1 0xe0 00001d97: SHL 00001d98: SUB 00001d99: AND 00001d9a: PUSH4 0xa9059cbb 00001d9f: PUSH1 0xe0 00001da1: SHL 00001da2: OR 00001da3: SWAP1 00001da4: MSTORE 00001da5: SWAP2 00001da6: MLOAD 00001da7: PUSH1 0x00 00001da9: SWAP3 00001daa: DUP4 00001dab: SWAP3 00001dac: SWAP1 00001dad: DUP8 00001dae: AND 00001daf: SWAP2 00001db0: PUSH2 0x1db9 00001db3: SWAP2 00001db4: SWAP1 00001db5: PUSH2 0x279d 00001db8: JUMP 00001db9: JUMPDEST 00001dba: PUSH1 0x00 00001dbc: PUSH1 0x40 00001dbe: MLOAD 00001dbf: DUP1 00001dc0: DUP4 00001dc1: SUB 00001dc2: DUP2 00001dc3: PUSH1 0x00 00001dc5: DUP7 00001dc6: GAS 00001dc7: CALL 00001dc8: SWAP2 00001dc9: POP 00001dca: POP 00001dcb: RETURNDATASIZE 00001dcc: DUP1 00001dcd: PUSH1 0x00 00001dcf: DUP2 00001dd0: EQ 00001dd1: PUSH2 0x1df6 00001dd4: JUMPI 00001dd5: PUSH1 0x40 00001dd7: MLOAD 00001dd8: SWAP2 00001dd9: POP 00001dda: PUSH1 0x1f 00001ddc: NOT 00001ddd: PUSH1 0x3f 00001ddf: RETURNDATASIZE 00001de0: ADD 00001de1: AND 00001de2: DUP3 00001de3: ADD 00001de4: PUSH1 0x40 00001de6: MSTORE 00001de7: RETURNDATASIZE 00001de8: DUP3 00001de9: MSTORE 00001dea: RETURNDATASIZE 00001deb: PUSH1 0x00 00001ded: PUSH1 0x20 00001def: DUP5 00001df0: ADD 00001df1: RETURNDATACOPY 00001df2: PUSH2 0x1dfb 00001df5: JUMP 00001df6: JUMPDEST 00001df7: PUSH1 0x60 00001df9: SWAP2 00001dfa: POP 00001dfb: JUMPDEST 00001dfc: POP 00001dfd: SWAP2 00001dfe: POP 00001dff: SWAP2 00001e00: POP 00001e01: DUP2 00001e02: DUP1 00001e03: ISZERO 00001e04: PUSH2 0x1e25 00001e07: JUMPI 00001e08: POP 00001e09: DUP1 00001e0a: MLOAD 00001e0b: ISZERO 00001e0c: DUP1 00001e0d: PUSH2 0x1e25 00001e10: JUMPI 00001e11: POP 00001e12: DUP1 00001e13: DUP1 00001e14: PUSH1 0x20 00001e16: ADD 00001e17: SWAP1 00001e18: MLOAD 00001e19: DUP2 00001e1a: ADD 00001e1b: SWAP1 00001e1c: PUSH2 0x1e25 00001e1f: SWAP2 00001e20: SWAP1 00001e21: PUSH2 0x28fb 00001e24: JUMP 00001e25: JUMPDEST 00001e26: PUSH2 0x0e57 00001e29: JUMPI 00001e2a: PUSH1 0x40 00001e2c: MLOAD 00001e2d: PUSH3 0x461bcd 00001e31: PUSH1 0xe5 00001e33: SHL 00001e34: DUP2 00001e35: MSTORE 00001e36: PUSH1 0x20 00001e38: PUSH1 0x04 00001e3a: DUP3 00001e3b: ADD 00001e3c: MSTORE 00001e3d: PUSH1 0x2d 00001e3f: PUSH1 0x24 00001e41: DUP3 00001e42: ADD 00001e43: MSTORE 00001e44: PUSH32 0x5472616e7366657248656c7065723a3a736166655472616e736665723a207472 00001e65: PUSH1 0x44 00001e67: DUP3 00001e68: ADD 00001e69: MSTORE 00001e6a: PUSH13 0x185b9cd9995c8819985a5b1959 00001e78: PUSH1 0x9a 00001e7a: SHL 00001e7b: PUSH1 0x64 00001e7d: DUP3 00001e7e: ADD 00001e7f: MSTORE 00001e80: PUSH1 0x84 00001e82: ADD 00001e83: PUSH2 0x01b4 00001e86: JUMP 00001e87: JUMPDEST 00001e88: PUSH2 0x04c5 00001e8b: PUSH20 0xa6ae57b1da8238cd149bc718c40578e4620b752c 00001ea0: CALLER 00001ea1: EQ 00001ea2: DUP1 00001ea3: PUSH2 0x1ebf 00001ea6: JUMPI 00001ea7: POP 00001ea8: PUSH20 0x26ce7c1976c5eec83ea6ac22d83cb341b08850af 00001ebd: CALLER 00001ebe: EQ 00001ebf: JUMPDEST 00001ec0: DUP1 00001ec1: PUSH2 0x1edd 00001ec4: JUMPI 00001ec5: POP 00001ec6: PUSH20 0xb58555fcba6479fced7de1485eb054943a09af7b 00001edb: CALLER 00001edc: EQ 00001edd: JUMPDEST 00001ede: DUP1 00001edf: PUSH2 0x1efb 00001ee2: JUMPI 00001ee3: POP 00001ee4: PUSH20 0xb7ab1de5b259a880c4bb5451bdbe6f80f3798538 00001ef9: CALLER 00001efa: EQ 00001efb: JUMPDEST 00001efc: DUP1 00001efd: PUSH2 0x1f19 00001f00: JUMPI 00001f01: POP 00001f02: PUSH20 0x4f80b2cd1f550f81581c15f690bdd623f3824c86 00001f17: CALLER 00001f18: EQ 00001f19: JUMPDEST 00001f1a: DUP1 00001f1b: PUSH2 0x1f37 00001f1e: JUMPI 00001f1f: POP 00001f20: PUSH20 0x5b5001c4f80f33ec93b891062ed2e1d0acc05bb6 00001f35: CALLER 00001f36: EQ 00001f37: JUMPDEST 00001f38: DUP1 00001f39: PUSH2 0x1f55 00001f3c: JUMPI 00001f3d: POP 00001f3e: PUSH20 0x52b86a86e4d764e8275391c436127e60340a0e6a 00001f53: CALLER 00001f54: EQ 00001f55: JUMPDEST 00001f56: DUP1 00001f57: PUSH2 0x1f73 00001f5a: JUMPI 00001f5b: POP 00001f5c: PUSH20 0x41d3ab85aafed2ef9e644cb7d3bbca2fc4d8cac8 00001f71: CALLER 00001f72: EQ 00001f73: JUMPDEST 00001f74: DUP1 00001f75: PUSH2 0x1f91 00001f78: JUMPI 00001f79: POP 00001f7a: PUSH20 0xfac983fce7ef3cee8ffb2ceb967e1b2362aada00 00001f8f: CALLER 00001f90: EQ 00001f91: JUMPDEST 00001f92: DUP1 00001f93: PUSH2 0x1780 00001f96: JUMPI 00001f97: POP 00001f98: PUSH20 0x0811fd1808e14f0b93f0514313965a5f142c5539 00001fad: CALLER 00001fae: EQ 00001faf: DUP1 00001fb0: PUSH2 0x04c0 00001fb3: JUMPI 00001fb4: POP 00001fb5: PUSH20 0x681535922425a4264b3670d9430afc6dc4de103e 00001fca: CALLER 00001fcb: EQ 00001fcc: PUSH2 0x13ce 00001fcf: JUMP 00001fd0: JUMPDEST 00001fd1: PUSH1 0x40 00001fd3: MLOAD 00001fd4: PUSH4 0x70a08231 00001fd9: PUSH1 0xe0 00001fdb: SHL 00001fdc: DUP2 00001fdd: MSTORE 00001fde: ADDRESS 00001fdf: PUSH1 0x04 00001fe1: DUP3 00001fe2: ADD 00001fe3: MSTORE 00001fe4: PUSH1 0x00 00001fe6: SWAP1 00001fe7: PUSH1 0x00 00001fe9: DUP1 00001fea: MLOAD 00001feb: PUSH1 0x20 00001fed: PUSH2 0x291e 00001ff0: DUP4 00001ff1: CODECOPY 00001ff2: DUP2 00001ff3: MLOAD 00001ff4: SWAP2 00001ff5: MSTORE 00001ff6: SWAP1 00001ff7: PUSH4 0x70a08231 00001ffc: SWAP1 00001ffd: PUSH1 0x24 00001fff: ADD 00002000: PUSH1 0x20 00002002: PUSH1 0x40 00002004: MLOAD 00002005: DUP1 00002006: DUP4 00002007: SUB 00002008: DUP2 00002009: DUP7 0000200a: GAS 0000200b: STATICCALL 0000200c: ISZERO 0000200d: DUP1 0000200e: ISZERO 0000200f: PUSH2 0x201c 00002012: JUMPI 00002013: RETURNDATASIZE 00002014: PUSH1 0x00 00002016: DUP1 00002017: RETURNDATACOPY 00002018: RETURNDATASIZE 00002019: PUSH1 0x00 0000201b: REVERT 0000201c: JUMPDEST 0000201d: POP 0000201e: POP 0000201f: POP 00002020: POP 00002021: PUSH1 0x40 00002023: MLOAD 00002024: RETURNDATASIZE 00002025: PUSH1 0x1f 00002027: NOT 00002028: PUSH1 0x1f 0000202a: DUP3 0000202b: ADD 0000202c: AND 0000202d: DUP3 0000202e: ADD 0000202f: DUP1 00002030: PUSH1 0x40 00002032: MSTORE 00002033: POP 00002034: DUP2 00002035: ADD 00002036: SWAP1 00002037: PUSH2 0x2040 0000203a: SWAP2 0000203b: SWAP1 0000203c: PUSH2 0x276e 0000203f: JUMP 00002040: JUMPDEST 00002041: SWAP1 00002042: POP 00002043: CALLVALUE 00002044: DUP2 00002045: GT 00002046: PUSH2 0x2076 00002049: JUMPI 0000204a: PUSH1 0x40 0000204c: MLOAD 0000204d: PUSH3 0x461bcd 00002051: PUSH1 0xe5 00002053: SHL 00002054: DUP2 00002055: MSTORE 00002056: PUSH1 0x20 00002058: PUSH1 0x04 0000205a: DUP3 0000205b: ADD 0000205c: MSTORE 0000205d: PUSH1 0x02 0000205f: PUSH1 0x24 00002061: DUP3 00002062: ADD 00002063: MSTORE 00002064: PUSH2 0x27a3 00002067: PUSH1 0xf1 00002069: SHL 0000206a: PUSH1 0x44 0000206c: DUP3 0000206d: ADD 0000206e: MSTORE 0000206f: PUSH1 0x64 00002071: ADD 00002072: PUSH2 0x01b4 00002075: JUMP 00002076: JUMPDEST 00002077: PUSH2 0x2080 0000207a: CALLVALUE 0000207b: DUP3 0000207c: PUSH2 0x23d2 0000207f: JUMP 00002080: JUMPDEST 00002081: PUSH1 0x01 00002083: SLOAD 00002084: SWAP1 00002085: SWAP2 00002086: POP 00002087: DUP1 00002088: DUP3 00002089: GT 0000208a: PUSH2 0x20bb 0000208d: JUMPI 0000208e: PUSH1 0x40 00002090: MLOAD 00002091: PUSH3 0x461bcd 00002095: PUSH1 0xe5 00002097: SHL 00002098: DUP2 00002099: MSTORE 0000209a: PUSH1 0x20 0000209c: PUSH1 0x04 0000209e: DUP3 0000209f: ADD 000020a0: MSTORE 000020a1: PUSH1 0x03 000020a3: PUSH1 0x24 000020a5: DUP3 000020a6: ADD 000020a7: MSTORE 000020a8: PUSH3 0x2829a3 000020ac: PUSH1 0xe9 000020ae: SHL 000020af: PUSH1 0x44 000020b1: DUP3 000020b2: ADD 000020b3: MSTORE 000020b4: PUSH1 0x64 000020b6: ADD 000020b7: PUSH2 0x01b4 000020ba: JUMP 000020bb: JUMPDEST 000020bc: PUSH1 0x00 000020be: PUSH2 0x20c7 000020c1: DUP3 000020c2: DUP5 000020c3: PUSH2 0x23d2 000020c6: JUMP 000020c7: JUMPDEST 000020c8: SWAP1 000020c9: POP 000020ca: DUP4 000020cb: DUP2 000020cc: GT 000020cd: PUSH2 0x0c74 000020d0: JUMPI 000020d1: PUSH1 0x40 000020d3: MLOAD 000020d4: PUSH3 0x461bcd 000020d8: PUSH1 0xe5 000020da: SHL 000020db: DUP2 000020dc: MSTORE 000020dd: PUSH1 0x20 000020df: PUSH1 0x04 000020e1: DUP3 000020e2: ADD 000020e3: MSTORE 000020e4: PUSH1 0x02 000020e6: PUSH1 0x24 000020e8: DUP3 000020e9: ADD 000020ea: MSTORE 000020eb: PUSH2 0x2823 000020ee: PUSH1 0xf1 000020f0: SHL 000020f1: PUSH1 0x44 000020f3: DUP3 000020f4: ADD 000020f5: MSTORE 000020f6: PUSH1 0x64 000020f8: ADD 000020f9: PUSH2 0x01b4 000020fc: JUMP 000020fd: JUMPDEST 000020fe: PUSH1 0x00 00002100: DUP2 00002101: PUSH1 0x00 00002103: SUB 00002104: PUSH2 0x210f 00002107: JUMPI 00002108: POP 00002109: PUSH1 0x01 0000210b: PUSH2 0x2143 0000210e: JUMP 0000210f: JUMPDEST 00002110: PUSH1 0x40 00002112: MLOAD 00002113: PUSH4 0xa9059cbb 00002118: PUSH1 0xe0 0000211a: SHL 0000211b: DUP2 0000211c: MSTORE 0000211d: PUSH1 0x01 0000211f: PUSH1 0x01 00002121: PUSH1 0xa0 00002123: SHL 00002124: SUB 00002125: DUP5 00002126: AND 00002127: PUSH1 0x04 00002129: DUP3 0000212a: ADD 0000212b: MSTORE 0000212c: DUP3 0000212d: PUSH1 0x24 0000212f: DUP3 00002130: ADD 00002131: MSTORE 00002132: PUSH1 0x20 00002134: DUP2 00002135: PUSH1 0x44 00002137: DUP4 00002138: PUSH1 0x00 0000213a: DUP10 0000213b: GAS 0000213c: CALL 0000213d: SWAP1 0000213e: MLOAD 0000213f: SWAP4 00002140: POP 00002141: SWAP1 00002142: POP 00002143: JUMPDEST 00002144: SWAP4 00002145: SWAP3 00002146: POP 00002147: POP 00002148: POP 00002149: JUMP 0000214a: JUMPDEST 0000214b: PUSH1 0x00 0000214d: PUSH1 0x40 0000214f: MLOAD 00002150: PUSH4 0x022c0d9f 00002155: PUSH1 0xe0 00002157: SHL 00002158: DUP2 00002159: MSTORE 0000215a: DUP6 0000215b: PUSH1 0x04 0000215d: DUP3 0000215e: ADD 0000215f: MSTORE 00002160: DUP5 00002161: PUSH1 0x24 00002163: DUP3 00002164: ADD 00002165: MSTORE 00002166: DUP3 00002167: PUSH1 0x00 00002169: DUP2 0000216a: EQ 0000216b: PUSH2 0x2179 0000216e: JUMPI 0000216f: DUP4 00002170: PUSH1 0x44 00002172: DUP4 00002173: ADD 00002174: MSTORE 00002175: PUSH2 0x218f 00002178: JUMP 00002179: JUMPDEST 0000217a: PUSH15 0x3b3cc22af3ae1eac0440bcee416b40 0000218a: PUSH1 0x44 0000218c: DUP4 0000218d: ADD 0000218e: MSTORE 0000218f: JUMPDEST 00002190: POP 00002191: PUSH1 0x80 00002193: PUSH1 0x64 00002195: DUP3 00002196: ADD 00002197: MSTORE 00002198: PUSH1 0x00 0000219a: PUSH1 0x84 0000219c: DUP3 0000219d: ADD 0000219e: MSTORE 0000219f: PUSH1 0x20 000021a1: DUP2 000021a2: PUSH1 0xa4 000021a4: DUP4 000021a5: PUSH1 0x00 000021a7: DUP9 000021a8: GAS 000021a9: CALL 000021aa: SWAP7 000021ab: SWAP6 000021ac: POP 000021ad: POP 000021ae: POP 000021af: POP 000021b0: POP 000021b1: POP 000021b2: JUMP 000021b3: JUMPDEST 000021b4: PUSH1 0x00 000021b6: DUP1 000021b7: PUSH20 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc1 000021cc: NOT 000021cd: PUSH1 0x01 000021cf: PUSH1 0x01 000021d1: PUSH1 0xa0 000021d3: SHL 000021d4: SUB 000021d5: DUP5 000021d6: AND 000021d7: ADD 000021d8: PUSH2 0x21e7 000021db: JUMPI 000021dc: POP 000021dd: PUSH1 0x00 000021df: SWAP3 000021e0: PUSH1 0x01 000021e2: SWAP3 000021e3: POP 000021e4: SWAP1 000021e5: POP 000021e6: JUMP 000021e7: JUMPDEST 000021e8: POP 000021e9: PUSH1 0x00 000021eb: SWAP3 000021ec: DUP4 000021ed: SWAP3 000021ee: POP 000021ef: SWAP1 000021f0: POP 000021f1: JUMP 000021f2: JUMPDEST 000021f3: PUSH1 0x00 000021f5: DUP1 000021f6: PUSH1 0x00 000021f8: DUP6 000021f9: PUSH2 0x2216 000021fc: JUMPI 000021fd: PUSH20 0xfffd8963efd1fc6a506488495d951d5263988d25 00002212: PUSH2 0x221d 00002215: JUMP 00002216: JUMPDEST 00002217: PUSH5 0x01000276a4 0000221d: JUMPDEST 0000221e: SWAP1 0000221f: POP 00002220: PUSH1 0x40 00002222: MLOAD 00002223: PUSH4 0x02515961 00002228: PUSH1 0xe3 0000222a: SHL 0000222b: DUP2 0000222c: MSTORE 0000222d: DUP8 0000222e: PUSH1 0x00 00002230: DUP2 00002231: EQ 00002232: PUSH2 0x2240 00002235: JUMPI 00002236: DUP9 00002237: PUSH1 0x04 00002239: DUP4 0000223a: ADD 0000223b: MSTORE 0000223c: PUSH2 0x2256 0000223f: JUMP 00002240: JUMPDEST 00002241: PUSH15 0x3b3cc22af3ae1eac0440bcee416b40 00002251: PUSH1 0x04 00002253: DUP4 00002254: ADD 00002255: MSTORE 00002256: JUMPDEST 00002257: POP 00002258: DUP7 00002259: PUSH1 0x24 0000225b: DUP3 0000225c: ADD 0000225d: MSTORE 0000225e: DUP6 0000225f: PUSH1 0x44 00002261: DUP3 00002262: ADD 00002263: MSTORE 00002264: DUP2 00002265: PUSH1 0x64 00002267: DUP3 00002268: ADD 00002269: MSTORE 0000226a: PUSH1 0xa0 0000226c: PUSH1 0x84 0000226e: DUP3 0000226f: ADD 00002270: MSTORE 00002271: DUP5 00002272: MLOAD 00002273: DUP1 00002274: PUSH1 0xa4 00002276: DUP4 00002277: ADD 00002278: MSTORE 00002279: PUSH1 0x00 0000227b: JUMPDEST 0000227c: DUP2 0000227d: DUP2 0000227e: LT 0000227f: ISZERO 00002280: PUSH2 0x2298 00002283: JUMPI 00002284: PUSH1 0x20 00002286: DUP2 00002287: DUP9 00002288: ADD 00002289: DUP2 0000228a: ADD 0000228b: MLOAD 0000228c: PUSH1 0xc4 0000228e: DUP6 0000228f: DUP5 00002290: ADD 00002291: ADD 00002292: MSTORE 00002293: ADD 00002294: PUSH2 0x227b 00002297: JUMP 00002298: JUMPDEST 00002299: POP 0000229a: PUSH1 0x40 0000229c: DUP3 0000229d: DUP3 0000229e: PUSH1 0xc4 000022a0: ADD 000022a1: DUP5 000022a2: PUSH1 0x00 000022a4: DUP15 000022a5: GAS 000022a6: CALL 000022a7: SWAP1 000022a8: POP 000022a9: DUP1 000022aa: PUSH2 0x22b2 000022ad: JUMPI 000022ae: PUSH1 0x00 000022b0: DUP1 000022b1: REVERT 000022b2: JUMPDEST 000022b3: POP 000022b4: DUP1 000022b5: MLOAD 000022b6: SWAP4 000022b7: POP 000022b8: PUSH1 0x20 000022ba: DUP2 000022bb: ADD 000022bc: MLOAD 000022bd: SWAP3 000022be: POP 000022bf: POP 000022c0: POP 000022c1: SWAP6 000022c2: POP 000022c3: SWAP6 000022c4: SWAP4 000022c5: POP 000022c6: POP 000022c7: POP 000022c8: POP 000022c9: JUMP 000022ca: JUMPDEST 000022cb: PUSH20 0xb58555fcba6479fced7de1485eb054943a09af7b 000022e0: ORIGIN 000022e1: EQ 000022e2: DUP1 000022e3: PUSH2 0x22ff 000022e6: JUMPI 000022e7: POP 000022e8: PUSH20 0xb7ab1de5b259a880c4bb5451bdbe6f80f3798538 000022fd: ORIGIN 000022fe: EQ 000022ff: JUMPDEST 00002300: DUP1 00002301: PUSH2 0x231d 00002304: JUMPI 00002305: POP 00002306: PUSH20 0x4f80b2cd1f550f81581c15f690bdd623f3824c86 0000231b: ORIGIN 0000231c: EQ 0000231d: JUMPDEST 0000231e: DUP1 0000231f: PUSH2 0x233b 00002322: JUMPI 00002323: POP 00002324: PUSH20 0x5b5001c4f80f33ec93b891062ed2e1d0acc05bb6 00002339: ORIGIN 0000233a: EQ 0000233b: JUMPDEST 0000233c: DUP1 0000233d: PUSH2 0x2359 00002340: JUMPI 00002341: POP 00002342: PUSH20 0xa6ae57b1da8238cd149bc718c40578e4620b752c 00002357: ORIGIN 00002358: EQ 00002359: JUMPDEST 0000235a: DUP1 0000235b: PUSH2 0x2377 0000235e: JUMPI 0000235f: POP 00002360: PUSH20 0x26ce7c1976c5eec83ea6ac22d83cb341b08850af 00002375: ORIGIN 00002376: EQ 00002377: JUMPDEST 00002378: DUP1 00002379: PUSH2 0x2395 0000237c: JUMPI 0000237d: POP 0000237e: PUSH20 0x52b86a86e4d764e8275391c436127e60340a0e6a 00002393: ORIGIN 00002394: EQ 00002395: JUMPDEST 00002396: DUP1 00002397: PUSH2 0x23b3 0000239a: JUMPI 0000239b: POP 0000239c: PUSH20 0x41d3ab85aafed2ef9e644cb7d3bbca2fc4d8cac8 000023b1: ORIGIN 000023b2: EQ 000023b3: JUMPDEST 000023b4: PUSH2 0x04c5 000023b7: JUMPI 000023b8: PUSH1 0x00 000023ba: DUP1 000023bb: REVERT 000023bc: JUMPDEST 000023bd: PUSH4 0x4e487b71 000023c2: PUSH1 0xe0 000023c4: SHL 000023c5: PUSH1 0x00 000023c7: MSTORE 000023c8: PUSH1 0x11 000023ca: PUSH1 0x04 000023cc: MSTORE 000023cd: PUSH1 0x24 000023cf: PUSH1 0x00 000023d1: REVERT 000023d2: JUMPDEST 000023d3: DUP2 000023d4: DUP2 000023d5: SUB 000023d6: DUP2 000023d7: DUP2 000023d8: GT 000023d9: ISZERO 000023da: PUSH2 0x23e5 000023dd: JUMPI 000023de: PUSH2 0x23e5 000023e1: PUSH2 0x23bc 000023e4: JUMP 000023e5: JUMPDEST 000023e6: SWAP3 000023e7: SWAP2 000023e8: POP 000023e9: POP 000023ea: JUMP 000023eb: JUMPDEST 000023ec: PUSH1 0x20 000023ee: DUP1 000023ef: DUP3 000023f0: MSTORE 000023f1: PUSH1 0x03 000023f3: SWAP1 000023f4: DUP3 000023f5: ADD 000023f6: MSTORE 000023f7: PUSH3 0x111111 000023fb: PUSH1 0xea 000023fd: SHL 000023fe: PUSH1 0x40 00002400: DUP3 00002401: ADD 00002402: MSTORE 00002403: PUSH1 0x60 00002405: ADD 00002406: SWAP1 00002407: JUMP 00002408: JUMPDEST 00002409: DUP1 0000240a: CALLDATALOAD 0000240b: PUSH1 0x01 0000240d: PUSH1 0x01 0000240f: PUSH1 0xa0 00002411: SHL 00002412: SUB 00002413: DUP2 00002414: AND 00002415: DUP2 00002416: EQ 00002417: PUSH2 0x241f 0000241a: JUMPI 0000241b: PUSH1 0x00 0000241d: DUP1 0000241e: REVERT 0000241f: JUMPDEST 00002420: SWAP2 00002421: SWAP1 00002422: POP 00002423: JUMP 00002424: JUMPDEST 00002425: PUSH1 0x00 00002427: DUP1 00002428: DUP4 00002429: PUSH1 0x1f 0000242b: DUP5 0000242c: ADD 0000242d: SLT 0000242e: PUSH2 0x2436 00002431: JUMPI 00002432: PUSH1 0x00 00002434: DUP1 00002435: REVERT 00002436: JUMPDEST 00002437: POP 00002438: DUP2 00002439: CALLDATALOAD 0000243a: PUSH8 0xffffffffffffffff 00002443: DUP2 00002444: GT 00002445: ISZERO 00002446: PUSH2 0x244e 00002449: JUMPI 0000244a: PUSH1 0x00 0000244c: DUP1 0000244d: REVERT 0000244e: JUMPDEST 0000244f: PUSH1 0x20 00002451: DUP4 00002452: ADD 00002453: SWAP2 00002454: POP 00002455: DUP4 00002456: PUSH1 0x20 00002458: DUP3 00002459: DUP6 0000245a: ADD 0000245b: ADD 0000245c: GT 0000245d: ISZERO 0000245e: PUSH2 0x2466 00002461: JUMPI 00002462: PUSH1 0x00 00002464: DUP1 00002465: REVERT 00002466: JUMPDEST 00002467: SWAP3 00002468: POP 00002469: SWAP3 0000246a: SWAP1 0000246b: POP 0000246c: JUMP 0000246d: JUMPDEST 0000246e: PUSH1 0x00 00002470: PUSH1 0x40 00002472: DUP3 00002473: DUP5 00002474: SUB 00002475: SLT 00002476: ISZERO 00002477: PUSH2 0x247f 0000247a: JUMPI 0000247b: PUSH1 0x00 0000247d: DUP1 0000247e: REVERT 0000247f: JUMPDEST 00002480: POP 00002481: SWAP2 00002482: SWAP1 00002483: POP 00002484: JUMP 00002485: JUMPDEST 00002486: PUSH1 0x00 00002488: DUP1 00002489: PUSH1 0x00 0000248b: DUP1 0000248c: PUSH1 0x80 0000248e: DUP6 0000248f: DUP8 00002490: SUB 00002491: SLT 00002492: ISZERO 00002493: PUSH2 0x249b 00002496: JUMPI 00002497: PUSH1 0x00 00002499: DUP1 0000249a: REVERT 0000249b: JUMPDEST 0000249c: PUSH2 0x24a4 0000249f: DUP6 000024a0: PUSH2 0x2408 000024a3: JUMP 000024a4: JUMPDEST 000024a5: SWAP4 000024a6: POP 000024a7: PUSH1 0x20 000024a9: DUP6 000024aa: ADD 000024ab: CALLDATALOAD 000024ac: PUSH8 0xffffffffffffffff 000024b5: DUP2 000024b6: GT 000024b7: ISZERO 000024b8: PUSH2 0x24c0 000024bb: JUMPI 000024bc: PUSH1 0x00 000024be: DUP1 000024bf: REVERT 000024c0: JUMPDEST 000024c1: PUSH2 0x24cc 000024c4: DUP8 000024c5: DUP3 000024c6: DUP9 000024c7: ADD 000024c8: PUSH2 0x2424 000024cb: JUMP 000024cc: JUMPDEST 000024cd: SWAP1 000024ce: SWAP5 000024cf: POP 000024d0: SWAP3 000024d1: POP 000024d2: PUSH2 0x24e0 000024d5: SWAP1 000024d6: POP 000024d7: DUP7 000024d8: PUSH1 0x40 000024da: DUP8 000024db: ADD 000024dc: PUSH2 0x246d 000024df: JUMP 000024e0: JUMPDEST 000024e1: SWAP1 000024e2: POP 000024e3: SWAP3 000024e4: SWAP6 000024e5: SWAP2 000024e6: SWAP5 000024e7: POP 000024e8: SWAP3 000024e9: POP 000024ea: JUMP 000024eb: JUMPDEST 000024ec: PUSH1 0x00 000024ee: DUP1 000024ef: PUSH1 0x00 000024f1: DUP1 000024f2: PUSH1 0x60 000024f4: DUP6 000024f5: DUP8 000024f6: SUB 000024f7: SLT 000024f8: ISZERO 000024f9: PUSH2 0x2501 000024fc: JUMPI 000024fd: PUSH1 0x00 000024ff: DUP1 00002500: REVERT 00002501: JUMPDEST 00002502: DUP5 00002503: CALLDATALOAD 00002504: SWAP4 00002505: POP 00002506: PUSH1 0x20 00002508: DUP6 00002509: ADD 0000250a: CALLDATALOAD 0000250b: SWAP3 0000250c: POP 0000250d: PUSH1 0x40 0000250f: DUP6 00002510: ADD 00002511: CALLDATALOAD 00002512: PUSH8 0xffffffffffffffff 0000251b: DUP2 0000251c: GT 0000251d: ISZERO 0000251e: PUSH2 0x2526 00002521: JUMPI 00002522: PUSH1 0x00 00002524: DUP1 00002525: REVERT 00002526: JUMPDEST 00002527: PUSH2 0x2532 0000252a: DUP8 0000252b: DUP3 0000252c: DUP9 0000252d: ADD 0000252e: PUSH2 0x2424 00002531: JUMP 00002532: JUMPDEST 00002533: SWAP6 00002534: SWAP9 00002535: SWAP5 00002536: SWAP8 00002537: POP 00002538: SWAP6 00002539: POP 0000253a: POP 0000253b: POP 0000253c: POP 0000253d: JUMP 0000253e: JUMPDEST 0000253f: PUSH1 0x00 00002541: PUSH1 0x20 00002543: DUP3 00002544: DUP5 00002545: SUB 00002546: SLT 00002547: ISZERO 00002548: PUSH2 0x2550 0000254b: JUMPI 0000254c: PUSH1 0x00 0000254e: DUP1 0000254f: REVERT 00002550: JUMPDEST 00002551: PUSH2 0x2143 00002554: DUP3 00002555: PUSH2 0x2408 00002558: JUMP 00002559: JUMPDEST 0000255a: PUSH1 0x00 0000255c: PUSH1 0x20 0000255e: DUP3 0000255f: DUP5 00002560: SUB 00002561: SLT 00002562: ISZERO 00002563: PUSH2 0x256b 00002566: JUMPI 00002567: PUSH1 0x00 00002569: DUP1 0000256a: REVERT 0000256b: JUMPDEST 0000256c: POP 0000256d: CALLDATALOAD 0000256e: SWAP2 0000256f: SWAP1 00002570: POP 00002571: JUMP 00002572: JUMPDEST 00002573: PUSH1 0x00 00002575: PUSH1 0x60 00002577: DUP3 00002578: DUP5 00002579: SUB 0000257a: SLT 0000257b: ISZERO 0000257c: PUSH2 0x247f 0000257f: JUMPI 00002580: PUSH1 0x00 00002582: DUP1 00002583: REVERT 00002584: JUMPDEST 00002585: PUSH1 0x00 00002587: DUP1 00002588: PUSH1 0x00 0000258a: DUP1 0000258b: PUSH1 0x00 0000258d: PUSH1 0xa0 0000258f: DUP7 00002590: DUP9 00002591: SUB 00002592: SLT 00002593: ISZERO 00002594: PUSH2 0x259c 00002597: JUMPI 00002598: PUSH1 0x00 0000259a: DUP1 0000259b: REVERT 0000259c: JUMPDEST 0000259d: PUSH2 0x25a6 000025a0: DUP8 000025a1: DUP8 000025a2: PUSH2 0x2572 000025a5: JUMP 000025a6: JUMPDEST 000025a7: SWAP5 000025a8: POP 000025a9: PUSH1 0x60 000025ab: DUP7 000025ac: ADD 000025ad: CALLDATALOAD 000025ae: PUSH8 0xffffffffffffffff 000025b7: DUP1 000025b8: DUP3 000025b9: GT 000025ba: ISZERO 000025bb: PUSH2 0x25c3 000025be: JUMPI 000025bf: PUSH1 0x00 000025c1: DUP1 000025c2: REVERT 000025c3: JUMPDEST 000025c4: PUSH2 0x25cf 000025c7: DUP10 000025c8: DUP4 000025c9: DUP11 000025ca: ADD 000025cb: PUSH2 0x2424 000025ce: JUMP 000025cf: JUMPDEST 000025d0: SWAP1 000025d1: SWAP7 000025d2: POP 000025d3: SWAP5 000025d4: POP 000025d5: PUSH1 0x80 000025d7: DUP9 000025d8: ADD 000025d9: CALLDATALOAD 000025da: SWAP2 000025db: POP 000025dc: DUP1 000025dd: DUP3 000025de: GT 000025df: ISZERO 000025e0: PUSH2 0x25e8 000025e3: JUMPI 000025e4: PUSH1 0x00 000025e6: DUP1 000025e7: REVERT 000025e8: JUMPDEST 000025e9: POP 000025ea: PUSH2 0x25f5 000025ed: DUP9 000025ee: DUP3 000025ef: DUP10 000025f0: ADD 000025f1: PUSH2 0x2424 000025f4: JUMP 000025f5: JUMPDEST 000025f6: SWAP7 000025f7: SWAP10 000025f8: SWAP6 000025f9: SWAP9 000025fa: POP 000025fb: SWAP4 000025fc: SWAP7 000025fd: POP 000025fe: SWAP3 000025ff: SWAP5 00002600: SWAP4 00002601: SWAP3 00002602: POP 00002603: POP 00002604: POP 00002605: JUMP 00002606: JUMPDEST 00002607: PUSH1 0x00 00002609: DUP1 0000260a: PUSH1 0x00 0000260c: PUSH1 0x80 0000260e: DUP5 0000260f: DUP7 00002610: SUB 00002611: SLT 00002612: ISZERO 00002613: PUSH2 0x261b 00002616: JUMPI 00002617: PUSH1 0x00 00002619: DUP1 0000261a: REVERT 0000261b: JUMPDEST 0000261c: PUSH2 0x2625 0000261f: DUP6 00002620: DUP6 00002621: PUSH2 0x2572 00002624: JUMP 00002625: JUMPDEST 00002626: SWAP3 00002627: POP 00002628: PUSH1 0x60 0000262a: DUP5 0000262b: ADD 0000262c: CALLDATALOAD 0000262d: PUSH8 0xffffffffffffffff 00002636: DUP2 00002637: GT 00002638: ISZERO 00002639: PUSH2 0x2641 0000263c: JUMPI 0000263d: PUSH1 0x00 0000263f: DUP1 00002640: REVERT 00002641: JUMPDEST 00002642: PUSH2 0x264d 00002645: DUP7 00002646: DUP3 00002647: DUP8 00002648: ADD 00002649: PUSH2 0x2424 0000264c: JUMP 0000264d: JUMPDEST 0000264e: SWAP5 0000264f: SWAP8 00002650: SWAP1 00002651: SWAP7 00002652: POP 00002653: SWAP4 00002654: SWAP5 00002655: POP 00002656: POP 00002657: POP 00002658: POP 00002659: JUMP 0000265a: JUMPDEST 0000265b: PUSH1 0x00 0000265d: DUP1 0000265e: PUSH1 0x00 00002660: DUP1 00002661: PUSH1 0x60 00002663: DUP6 00002664: DUP8 00002665: SUB 00002666: SLT 00002667: ISZERO 00002668: PUSH2 0x2670 0000266b: JUMPI 0000266c: PUSH1 0x00 0000266e: DUP1 0000266f: REVERT 00002670: JUMPDEST 00002671: PUSH2 0x2679 00002674: DUP6 00002675: PUSH2 0x2408 00002678: JUMP 00002679: JUMPDEST 0000267a: SWAP4 0000267b: POP 0000267c: PUSH1 0x20 0000267e: DUP6 0000267f: ADD 00002680: CALLDATALOAD 00002681: SWAP3 00002682: POP 00002683: PUSH1 0x40 00002685: DUP6 00002686: ADD 00002687: CALLDATALOAD 00002688: PUSH8 0xffffffffffffffff 00002691: DUP2 00002692: GT 00002693: ISZERO 00002694: PUSH2 0x2526 00002697: JUMPI 00002698: PUSH1 0x00 0000269a: DUP1 0000269b: REVERT 0000269c: JUMPDEST 0000269d: PUSH1 0x00 0000269f: JUMPDEST 000026a0: DUP4 000026a1: DUP2 000026a2: LT 000026a3: ISZERO 000026a4: PUSH2 0x26b7 000026a7: JUMPI 000026a8: DUP2 000026a9: DUP2 000026aa: ADD 000026ab: MLOAD 000026ac: DUP4 000026ad: DUP3 000026ae: ADD 000026af: MSTORE 000026b0: PUSH1 0x20 000026b2: ADD 000026b3: PUSH2 0x269f 000026b6: JUMP 000026b7: JUMPDEST 000026b8: POP 000026b9: POP 000026ba: PUSH1 0x00 000026bc: SWAP2 000026bd: ADD 000026be: MSTORE 000026bf: JUMP 000026c0: JUMPDEST 000026c1: PUSH1 0x00 000026c3: DUP2 000026c4: MLOAD 000026c5: DUP1 000026c6: DUP5 000026c7: MSTORE 000026c8: PUSH2 0x26d8 000026cb: DUP2 000026cc: PUSH1 0x20 000026ce: DUP7 000026cf: ADD 000026d0: PUSH1 0x20 000026d2: DUP7 000026d3: ADD 000026d4: PUSH2 0x269c 000026d7: JUMP 000026d8: JUMPDEST 000026d9: PUSH1 0x1f 000026db: ADD 000026dc: PUSH1 0x1f 000026de: NOT 000026df: AND 000026e0: SWAP3 000026e1: SWAP1 000026e2: SWAP3 000026e3: ADD 000026e4: PUSH1 0x20 000026e6: ADD 000026e7: SWAP3 000026e8: SWAP2 000026e9: POP 000026ea: POP 000026eb: JUMP 000026ec: JUMPDEST 000026ed: PUSH1 0x20 000026ef: DUP2 000026f0: MSTORE 000026f1: PUSH1 0x00 000026f3: PUSH2 0x2143 000026f6: PUSH1 0x20 000026f8: DUP4 000026f9: ADD 000026fa: DUP5 000026fb: PUSH2 0x26c0 000026fe: JUMP 000026ff: JUMPDEST 00002700: PUSH1 0x00 00002702: PUSH1 0x20 00002704: DUP3 00002705: DUP5 00002706: SUB 00002707: SLT 00002708: ISZERO 00002709: PUSH2 0x2711 0000270c: JUMPI 0000270d: PUSH1 0x00 0000270f: DUP1 00002710: REVERT 00002711: JUMPDEST 00002712: DUP2 00002713: CALLDATALOAD 00002714: PUSH1 0x01 00002716: PUSH1 0x01 00002718: PUSH1 0xb0 0000271a: SHL 0000271b: SUB 0000271c: NOT 0000271d: DUP2 0000271e: AND 0000271f: DUP2 00002720: EQ 00002721: PUSH2 0x2143 00002724: JUMPI 00002725: PUSH1 0x00 00002727: DUP1 00002728: REVERT 00002729: JUMPDEST 0000272a: DUP2 0000272b: DUP4 0000272c: MSTORE 0000272d: DUP2 0000272e: DUP2 0000272f: PUSH1 0x20 00002731: DUP6 00002732: ADD 00002733: CALLDATACOPY 00002734: POP 00002735: PUSH1 0x00 00002737: DUP3 00002738: DUP3 00002739: ADD 0000273a: PUSH1 0x20 0000273c: SWAP1 0000273d: DUP2 0000273e: ADD 0000273f: SWAP2 00002740: SWAP1 00002741: SWAP2 00002742: MSTORE 00002743: PUSH1 0x1f 00002745: SWAP1 00002746: SWAP2 00002747: ADD 00002748: PUSH1 0x1f 0000274a: NOT 0000274b: AND 0000274c: SWAP1 0000274d: SWAP2 0000274e: ADD 0000274f: ADD 00002750: SWAP1 00002751: JUMP 00002752: JUMPDEST 00002753: PUSH1 0x20 00002755: DUP2 00002756: MSTORE 00002757: PUSH1 0x00 00002759: PUSH2 0x2766 0000275c: PUSH1 0x20 0000275e: DUP4 0000275f: ADD 00002760: DUP5 00002761: DUP7 00002762: PUSH2 0x2729 00002765: JUMP 00002766: JUMPDEST 00002767: SWAP5 00002768: SWAP4 00002769: POP 0000276a: POP 0000276b: POP 0000276c: POP 0000276d: JUMP 0000276e: JUMPDEST 0000276f: PUSH1 0x00 00002771: PUSH1 0x20 00002773: DUP3 00002774: DUP5 00002775: SUB 00002776: SLT 00002777: ISZERO 00002778: PUSH2 0x2780 0000277b: JUMPI 0000277c: PUSH1 0x00 0000277e: DUP1 0000277f: REVERT 00002780: JUMPDEST 00002781: POP 00002782: MLOAD 00002783: SWAP2 00002784: SWAP1 00002785: POP 00002786: JUMP 00002787: JUMPDEST 00002788: PUSH4 0x4e487b71 0000278d: PUSH1 0xe0 0000278f: SHL 00002790: PUSH1 0x00 00002792: MSTORE 00002793: PUSH1 0x41 00002795: PUSH1 0x04 00002797: MSTORE 00002798: PUSH1 0x24 0000279a: PUSH1 0x00 0000279c: REVERT 0000279d: JUMPDEST 0000279e: PUSH1 0x00 000027a0: DUP3 000027a1: MLOAD 000027a2: PUSH2 0x27af 000027a5: DUP2 000027a6: DUP5 000027a7: PUSH1 0x20 000027a9: DUP8 000027aa: ADD 000027ab: PUSH2 0x269c 000027ae: JUMP 000027af: JUMPDEST 000027b0: SWAP2 000027b1: SWAP1 000027b2: SWAP2 000027b3: ADD 000027b4: SWAP3 000027b5: SWAP2 000027b6: POP 000027b7: POP 000027b8: JUMP 000027b9: JUMPDEST 000027ba: PUSH1 0x40 000027bc: DUP2 000027bd: MSTORE 000027be: PUSH1 0x00 000027c0: PUSH2 0x27cd 000027c3: PUSH1 0x40 000027c5: DUP4 000027c6: ADD 000027c7: DUP7 000027c8: DUP9 000027c9: PUSH2 0x2729 000027cc: JUMP 000027cd: JUMPDEST 000027ce: DUP3 000027cf: DUP2 000027d0: SUB 000027d1: PUSH1 0x20 000027d3: DUP5 000027d4: ADD 000027d5: MSTORE 000027d6: PUSH2 0x27e0 000027d9: DUP2 000027da: DUP6 000027db: DUP8 000027dc: PUSH2 0x2729 000027df: JUMP 000027e0: JUMPDEST 000027e1: SWAP8 000027e2: SWAP7 000027e3: POP 000027e4: POP 000027e5: POP 000027e6: POP 000027e7: POP 000027e8: POP 000027e9: POP 000027ea: JUMP 000027eb: JUMPDEST 000027ec: DUP2 000027ed: DUP4 000027ee: DUP3 000027ef: CALLDATACOPY 000027f0: PUSH1 0x00 000027f2: SWAP2 000027f3: ADD 000027f4: SWAP1 000027f5: DUP2 000027f6: MSTORE 000027f7: SWAP2 000027f8: SWAP1 000027f9: POP 000027fa: JUMP 000027fb: JUMPDEST 000027fc: PUSH1 0x00 000027fe: PUSH1 0x20 00002800: DUP3 00002801: DUP5 00002802: SUB 00002803: SLT 00002804: ISZERO 00002805: PUSH2 0x280d 00002808: JUMPI 00002809: PUSH1 0x00 0000280b: DUP1 0000280c: REVERT 0000280d: JUMPDEST 0000280e: DUP2 0000280f: MLOAD 00002810: PUSH8 0xffffffffffffffff 00002819: DUP1 0000281a: DUP3 0000281b: GT 0000281c: ISZERO 0000281d: PUSH2 0x2825 00002820: JUMPI 00002821: PUSH1 0x00 00002823: DUP1 00002824: REVERT 00002825: JUMPDEST 00002826: DUP2 00002827: DUP5 00002828: ADD 00002829: SWAP2 0000282a: POP 0000282b: DUP5 0000282c: PUSH1 0x1f 0000282e: DUP4 0000282f: ADD 00002830: SLT 00002831: PUSH2 0x2839 00002834: JUMPI 00002835: PUSH1 0x00 00002837: DUP1 00002838: REVERT 00002839: JUMPDEST 0000283a: DUP2 0000283b: MLOAD 0000283c: DUP2 0000283d: DUP2 0000283e: GT 0000283f: ISZERO 00002840: PUSH2 0x284b 00002843: JUMPI 00002844: PUSH2 0x284b 00002847: PUSH2 0x2787 0000284a: JUMP 0000284b: JUMPDEST 0000284c: PUSH1 0x40 0000284e: MLOAD 0000284f: PUSH1 0x1f 00002851: DUP3 00002852: ADD 00002853: PUSH1 0x1f 00002855: NOT 00002856: SWAP1 00002857: DUP2 00002858: AND 00002859: PUSH1 0x3f 0000285b: ADD 0000285c: AND 0000285d: DUP2 0000285e: ADD 0000285f: SWAP1 00002860: DUP4 00002861: DUP3 00002862: GT 00002863: DUP2 00002864: DUP4 00002865: LT 00002866: OR 00002867: ISZERO 00002868: PUSH2 0x2873 0000286b: JUMPI 0000286c: PUSH2 0x2873 0000286f: PUSH2 0x2787 00002872: JUMP 00002873: JUMPDEST 00002874: DUP2 00002875: PUSH1 0x40 00002877: MSTORE 00002878: DUP3 00002879: DUP2 0000287a: MSTORE 0000287b: DUP8 0000287c: PUSH1 0x20 0000287e: DUP5 0000287f: DUP8 00002880: ADD 00002881: ADD 00002882: GT 00002883: ISZERO 00002884: PUSH2 0x288c 00002887: JUMPI 00002888: PUSH1 0x00 0000288a: DUP1 0000288b: REVERT 0000288c: JUMPDEST 0000288d: PUSH2 0x27e0 00002890: DUP4 00002891: PUSH1 0x20 00002893: DUP4 00002894: ADD 00002895: PUSH1 0x20 00002897: DUP9 00002898: ADD 00002899: PUSH2 0x269c 0000289c: JUMP 0000289d: JUMPDEST 0000289e: DUP1 0000289f: DUP3 000028a0: ADD 000028a1: DUP1 000028a2: DUP3 000028a3: GT 000028a4: ISZERO 000028a5: PUSH2 0x23e5 000028a8: JUMPI 000028a9: PUSH2 0x23e5 000028ac: PUSH2 0x23bc 000028af: JUMP 000028b0: JUMPDEST 000028b1: PUSH4 0x4e487b71 000028b6: PUSH1 0xe0 000028b8: SHL 000028b9: PUSH1 0x00 000028bb: MSTORE 000028bc: PUSH1 0x32 000028be: PUSH1 0x04 000028c0: MSTORE 000028c1: PUSH1 0x24 000028c3: PUSH1 0x00 000028c5: REVERT 000028c6: JUMPDEST 000028c7: PUSH1 0x00 000028c9: PUSH1 0x01 000028cb: DUP3 000028cc: ADD 000028cd: PUSH2 0x28d8 000028d0: JUMPI 000028d1: PUSH2 0x28d8 000028d4: PUSH2 0x23bc 000028d7: JUMP 000028d8: JUMPDEST 000028d9: POP 000028da: PUSH1 0x01 000028dc: ADD 000028dd: SWAP1 000028de: JUMP 000028df: JUMPDEST 000028e0: PUSH1 0x00 000028e2: PUSH1 0x01 000028e4: PUSH1 0xff 000028e6: SHL 000028e7: DUP3 000028e8: ADD 000028e9: PUSH2 0x28f4 000028ec: JUMPI 000028ed: PUSH2 0x28f4 000028f0: PUSH2 0x23bc 000028f3: JUMP 000028f4: JUMPDEST 000028f5: POP 000028f6: PUSH1 0x00 000028f8: SUB 000028f9: SWAP1 000028fa: JUMP 000028fb: JUMPDEST 000028fc: PUSH1 0x00 000028fe: PUSH1 0x20 00002900: DUP3 00002901: DUP5 00002902: SUB 00002903: SLT 00002904: ISZERO 00002905: PUSH2 0x290d 00002908: JUMPI 00002909: PUSH1 0x00 0000290b: DUP1 0000290c: REVERT 0000290d: JUMPDEST 0000290e: DUP2 0000290f: MLOAD 00002910: DUP1 00002911: ISZERO 00002912: ISZERO 00002913: DUP2 00002914: EQ 00002915: PUSH2 0x2143 00002918: JUMPI 00002919: PUSH1 0x00 0000291b: DUP1 0000291c: REVERT 0000291d: INVALID 0000291e: STOP 0000291f: STOP 00002920: STOP 00002921: STOP 00002922: STOP 00002923: STOP 00002924: STOP 00002925: STOP 00002926: STOP 00002927: STOP 00002928: STOP 00002929: STOP 0000292a: UNKNOWN(0xC0) 0000292b: UNKNOWN(0x2A) 0000292c: UNKNOWN(0xAA) 0000292d: CODECOPY 0000292e: UNKNOWN(0xB2) 0000292f: UNKNOWN(0x23) 00002930: INVALID 00002931: DUP14 00002932: EXP 00002933: UNKNOWN(0x0E) 00002934: TLOAD 00002935: UNKNOWN(0x4F) 00002936: UNKNOWN(0x27) 00002937: UNKNOWN(0xEA) 00002938: UNKNOWN(0xD9) 00002939: ADDMOD 0000293a: EXTCODECOPY 0000293b: PUSH22 0x6cc2a26469706673582212208d561e0fe331ae5fff67 00002952: SWAP14 00002953: CREATE2 00002954: LOG3 00002955: UNKNOWN(0xE8) 00002956: UNKNOWN(0xDF) 00002957: UNKNOWN(0xEB) 00002958: BLOBBASEFEE 00002959: LOG2 0000295a: UNKNOWN(0x2E) 0000295b: UNKNOWN(0xF9) 0000295c: UNKNOWN(0xFC) 0000295d: UNKNOWN(0xE6) 0000295e: UNKNOWN(0xAA) 0000295f: PUSH12 0xd87abf72baf8010364736f6c 0000296c: PUSH4 0x43000813 00002971: STOP 00002972: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | access_control | codex | Whitelisted caller can selfdestruct the contract | 85 | no | — |
viewevidence_json{
"evidence": "Dispatch table exposes selector `a7b8e688` (`...63a7b8e68814610365...`) and the runtime contains a `CALLER SELFDESTRUCT` sequence (`...5b33ff...`). The call path is gated only by a hardcoded caller allowlist (chain of `PUSH20 <addr> CALLER EQ`, e.g., `73a6ae57b1da8238cd149bc718c40578e4620b752c3314...`).",
"locations": [
"BYTECODE_BUNDLE.txt:5"
],
"recommendation": "Remove the SELFDESTRUCT path or gate it behind a single, explicitly controlled owner with a timelock/multisig. If it is intended, document the kill switch and ensure allowlisted addresses are non-upgradeable and tightly controlled.",
"exploit_scenario": "A caller that matches one of the hardcoded allowlist addresses invokes the externally exposed function (selector `a7b8e688`). The call path reaches `CALLER SELFDESTRUCT`, permanently destroying the contract and sending any ETH balance to the caller, disabling all contract functionality thereafter."
}
|
| high | other | cast | SELFDESTRUCT present | 85 | no | — |
viewevidence_json{
"notes": "selfdestruct can remove contract code and send funds; review reachability",
"selfdestruct_count": 1
}
|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0xda2ea0da3420ddfe382fb44d5a41900c07b38472b7a06403191e67145487f317
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 120,
"trace_id": "0xda2ea0da3420ddfe382fb44d5a41900c07b38472b7a06403191e67145487f317",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x9d118770",
"selector": "0x9d118770",
"calldata_variants": [
"0x9d118770",
"0x9d1187700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa7b8e688",
"selector": "0xa7b8e688",
"calldata_variants": [
"0xa7b8e688",
"0xa7b8e6880000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd2925723",
"selector": "0xd2925723",
"calldata_variants": [
"0xd2925723",
"0xd29257230000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd69ea74d",
"selector": "0xd69ea74d",
"calldata_variants": [
"0xd69ea74d",
"0xd69ea74d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa461e33",
"selector": "0xfa461e33",
"calldata_variants": [
"0xfa461e33",
"0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10c117ab",
"selector": "0x10c117ab",
"calldata_variants": [
"0x10c117ab",
"0x10c117ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23a69e75",
"selector": "0x23a69e75",
"calldata_variants": [
"0x23a69e75",
"0x23a69e750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2768b07e",
"selector": "0x2768b07e",
"calldata_variants": [
"0x2768b07e",
"0x2768b07e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3648,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 1006,
"type": "msg_sender_eq_const",
"value": 9.515804369106045e+47
},
{
"pc": 1035,
"type": "msg_sender_eq_const",
"value": 2.2154641339059453e+47
},
{
"pc": 1065,
"type": "msg_sender_eq_const",
"value": 1.0363008191737383e+48
},
{
"pc": 1095,
"type": "msg_sender_eq_const",
"value": 1.0485613429077335e+48
},
{
"pc": 1125,
"type": "msg_sender_eq_const",
"value": 4.5388034206692405e+47
},
{
"pc": 1155,
"type": "msg_sender_eq_const",
"value": 5.213023738982092e+47
},
{
"pc": 1185,
"type": "msg_sender_eq_const",
"value": 4.722498601284128e+47
},
{
"pc": 1215,
"type": "msg_sender_eq_const",
"value": 3.758047990261806e+47
},
{
"pc": 5986,
"type": "msg_sender_eq_const",
"value": 1.431741640259772e+48
},
{
"pc": 6015,
"type": "msg_sender_eq_const",
"value": 4.607308642188697e+46
},
{
"pc": 6045,
"type": "msg_sender_eq_const",
"value": 5.9420802249527606e+47
},
{
"pc": 7841,
"type": "msg_sender_eq_const",
"value": 9.515804369106045e+47
},
{
"pc": 7870,
"type": "msg_sender_eq_const",
"value": 2.2154641339059453e+47
},
{
"pc": 7900,
"type": "msg_sender_eq_const",
"value": 1.0363008191737383e+48
},
{
"pc": 7930,
"type": "msg_sender_eq_const",
"value": 1.0485613429077335e+48
},
{
"pc": 7960,
"type": "msg_sender_eq_const",
"value": 4.5388034206692405e+47
},
{
"pc": 7990,
"type": "msg_sender_eq_const",
"value": 5.213023738982092e+47
},
{
"pc": 8020,
"type": "msg_sender_eq_const",
"value": 4.722498601284128e+47
},
{
"pc": 8050,
"type": "msg_sender_eq_const",
"value": 3.758047990261806e+47
},
{
"pc": 8080,
"type": "msg_sender_eq_const",
"value": 1.431741640259772e+48
},
{
"pc": 8110,
"type": "msg_sender_eq_const",
"value": 4.607308642188697e+46
},
{
"pc": 8139,
"type": "msg_sender_eq_const",
"value": 5.9420802249527606e+47
},
{
"pc": 8929,
"type": "tx_origin_used"
},
{
"pc": 8958,
"type": "tx_origin_used"
},
{
"pc": 8988,
"type": "tx_origin_used"
},
{
"pc": 9018,
"type": "tx_origin_used"
},
{
"pc": 9048,
"type": "tx_origin_used"
},
{
"pc": 9078,
"type": "tx_origin_used"
},
{
"pc": 9108,
"type": "tx_origin_used"
},
{
"pc": 9138,
"type": "tx_origin_used"
},
{
"pc": 8928,
"type": "tx_origin_used"
},
{
"pc": 8957,
"type": "tx_origin_used"
},
{
"pc": 8987,
"type": "tx_origin_used"
},
{
"pc": 9017,
"type": "tx_origin_used"
},
{
"pc": 9047,
"type": "tx_origin_used"
},
{
"pc": 9077,
"type": "tx_origin_used"
},
{
"pc": 9107,
"type": "tx_origin_used"
},
{
"pc": 9137,
"type": "tx_origin_used"
}
],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x9d118770",
"selector": "0x9d118770",
"calldata_variants": [
"0x9d118770",
"0x9d1187700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa7b8e688",
"selector": "0xa7b8e688",
"calldata_variants": [
"0xa7b8e688",
"0xa7b8e6880000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd2925723",
"selector": "0xd2925723",
"calldata_variants": [
"0xd2925723",
"0xd29257230000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd69ea74d",
"selector": "0xd69ea74d",
"calldata_variants": [
"0xd69ea74d",
"0xd69ea74d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa461e33",
"selector": "0xfa461e33",
"calldata_variants": [
"0xfa461e33",
"0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10c117ab",
"selector": "0x10c117ab",
"calldata_variants": [
"0x10c117ab",
"0x10c117ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23a69e75",
"selector": "0x23a69e75",
"calldata_variants": [
"0x23a69e75",
"0x23a69e750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2768b07e",
"selector": "0x2768b07e",
"calldata_variants": [
"0x2768b07e",
"0x2768b07e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 1006,
"type": "msg_sender_eq_const",
"value": 9.515804369106045e+47
},
{
"pc": 1035,
"type": "msg_sender_eq_const",
"value": 2.2154641339059453e+47
},
{
"pc": 1065,
"type": "msg_sender_eq_const",
"value": 1.0363008191737383e+48
},
{
"pc": 1095,
"type": "msg_sender_eq_const",
"value": 1.0485613429077335e+48
},
{
"pc": 1125,
"type": "msg_sender_eq_const",
"value": 4.5388034206692405e+47
},
{
"pc": 1155,
"type": "msg_sender_eq_const",
"value": 5.213023738982092e+47
},
{
"pc": 1185,
"type": "msg_sender_eq_const",
"value": 4.722498601284128e+47
},
{
"pc": 1215,
"type": "msg_sender_eq_const",
"value": 3.758047990261806e+47
},
{
"pc": 5986,
"type": "msg_sender_eq_const",
"value": 1.431741640259772e+48
},
{
"pc": 6015,
"type": "msg_sender_eq_const",
"value": 4.607308642188697e+46
},
{
"pc": 6045,
"type": "msg_sender_eq_const",
"value": 5.9420802249527606e+47
},
{
"pc": 7841,
"type": "msg_sender_eq_const",
"value": 9.515804369106045e+47
},
{
"pc": 7870,
"type": "msg_sender_eq_const",
"value": 2.2154641339059453e+47
},
{
"pc": 7900,
"type": "msg_sender_eq_const",
"value": 1.0363008191737383e+48
},
{
"pc": 7930,
"type": "msg_sender_eq_const",
"value": 1.0485613429077335e+48
},
{
"pc": 7960,
"type": "msg_sender_eq_const",
"value": 4.5388034206692405e+47
},
{
"pc": 7990,
"type": "msg_sender_eq_const",
"value": 5.213023738982092e+47
},
{
"pc": 8020,
"type": "msg_sender_eq_const",
"value": 4.722498601284128e+47
},
{
"pc": 8050,
"type": "msg_sender_eq_const",
"value": 3.758047990261806e+47
},
{
"pc": 8080,
"type": "msg_sender_eq_const",
"value": 1.431741640259772e+48
},
{
"pc": 8110,
"type": "msg_sender_eq_const",
"value": 4.607308642188697e+46
},
{
"pc": 8139,
"type": "msg_sender_eq_const",
"value": 5.9420802249527606e+47
},
{
"pc": 8929,
"type": "tx_origin_used"
},
{
"pc": 8958,
"type": "tx_origin_used"
},
{
"pc": 8988,
"type": "tx_origin_used"
},
{
"pc": 9018,
"type": "tx_origin_used"
},
{
"pc": 9048,
"type": "tx_origin_used"
},
{
"pc": 9078,
"type": "tx_origin_used"
},
{
"pc": 9108,
"type": "tx_origin_used"
},
{
"pc": 9138,
"type": "tx_origin_used"
},
{
"pc": 8928,
"type": "tx_origin_used"
},
{
"pc": 8957,
"type": "tx_origin_used"
},
{
"pc": 8987,
"type": "tx_origin_used"
},
{
"pc": 9017,
"type": "tx_origin_used"
},
{
"pc": 9047,
"type": "tx_origin_used"
},
{
"pc": 9077,
"type": "tx_origin_used"
},
{
"pc": 9107,
"type": "tx_origin_used"
},
{
"pc": 9137,
"type": "tx_origin_used"
}
]
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xf664ef7ab61209f2105186d34dda9a7df57758f6eddcd720eb1144caaaf8fd6e
call_targets:
0x00000000003b3cc22af3ae1eac0440bcee416b40
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xf664ef7ab61209f2105186d34dda9a7df57758f6eddcd720eb1144caaaf8fd6e",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x00000000003b3cc22af3ae1eac0440bcee416b40"
],
"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": "0x9d118770",
"selector": "0x9d118770",
"calldata_variants": [
"0x9d118770",
"0x9d1187700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa7b8e688",
"selector": "0xa7b8e688",
"calldata_variants": [
"0xa7b8e688",
"0xa7b8e6880000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd2925723",
"selector": "0xd2925723",
"calldata_variants": [
"0xd2925723",
"0xd29257230000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd69ea74d",
"selector": "0xd69ea74d",
"calldata_variants": [
"0xd69ea74d",
"0xd69ea74d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa461e33",
"selector": "0xfa461e33",
"calldata_variants": [
"0xfa461e33",
"0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10c117ab",
"selector": "0x10c117ab",
"calldata_variants": [
"0x10c117ab",
"0x10c117ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23a69e75",
"selector": "0x23a69e75",
"calldata_variants": [
"0x23a69e75",
"0x23a69e750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2768b07e",
"selector": "0x2768b07e",
"calldata_variants": [
"0x2768b07e",
"0x2768b07e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 251,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 603,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 705,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 15,
"guards_detected": [
{
"pc": 1006,
"type": "msg_sender_eq_const",
"value": 9.515804369106045e+47
},
{
"pc": 1035,
"type": "msg_sender_eq_const",
"value": 2.2154641339059453e+47
},
{
"pc": 1065,
"type": "msg_sender_eq_const",
"value": 1.0363008191737383e+48
},
{
"pc": 1095,
"type": "msg_sender_eq_const",
"value": 1.0485613429077335e+48
},
{
"pc": 1125,
"type": "msg_sender_eq_const",
"value": 4.5388034206692405e+47
},
{
"pc": 1155,
"type": "msg_sender_eq_const",
"value": 5.213023738982092e+47
},
{
"pc": 1185,
"type": "msg_sender_eq_const",
"value": 4.722498601284128e+47
},
{
"pc": 1215,
"type": "msg_sender_eq_const",
"value": 3.758047990261806e+47
},
{
"pc": 5986,
"type": "msg_sender_eq_const",
"value": 1.431741640259772e+48
},
{
"pc": 6015,
"type": "msg_sender_eq_const",
"value": 4.607308642188697e+46
},
{
"pc": 6045,
"type": "msg_sender_eq_const",
"value": 5.9420802249527606e+47
},
{
"pc": 7841,
"type": "msg_sender_eq_const",
"value": 9.515804369106045e+47
},
{
"pc": 7870,
"type": "msg_sender_eq_const",
"value": 2.2154641339059453e+47
},
{
"pc": 7900,
"type": "msg_sender_eq_const",
"value": 1.0363008191737383e+48
},
{
"pc": 7930,
"type": "msg_sender_eq_const",
"value": 1.0485613429077335e+48
},
{
"pc": 7960,
"type": "msg_sender_eq_const",
"value": 4.5388034206692405e+47
},
{
"pc": 7990,
"type": "msg_sender_eq_const",
"value": 5.213023738982092e+47
},
{
"pc": 8020,
"type": "msg_sender_eq_const",
"value": 4.722498601284128e+47
},
{
"pc": 8050,
"type": "msg_sender_eq_const",
"value": 3.758047990261806e+47
},
{
"pc": 8080,
"type": "msg_sender_eq_const",
"value": 1.431741640259772e+48
},
{
"pc": 8110,
"type": "msg_sender_eq_const",
"value": 4.607308642188697e+46
},
{
"pc": 8139,
"type": "msg_sender_eq_const",
"value": 5.9420802249527606e+47
},
{
"pc": 8929,
"type": "tx_origin_used"
},
{
"pc": 8958,
"type": "tx_origin_used"
},
{
"pc": 8988,
"type": "tx_origin_used"
},
{
"pc": 9018,
"type": "tx_origin_used"
},
{
"pc": 9048,
"type": "tx_origin_used"
},
{
"pc": 9078,
"type": "tx_origin_used"
},
{
"pc": 9108,
"type": "tx_origin_used"
},
{
"pc": 9138,
"type": "tx_origin_used"
},
{
"pc": 8928,
"type": "tx_origin_used"
},
{
"pc": 8957,
"type": "tx_origin_used"
},
{
"pc": 8987,
"type": "tx_origin_used"
},
{
"pc": 9017,
"type": "tx_origin_used"
},
{
"pc": 9047,
"type": "tx_origin_used"
},
{
"pc": 9077,
"type": "tx_origin_used"
},
{
"pc": 9107,
"type": "tx_origin_used"
},
{
"pc": 9137,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 15
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xf664ef7ab61209f2105186d34dda9a7df57758f6eddcd720eb1144caaaf8fd6e
call_targets:
0x00000000003b3cc22af3ae1eac0440bcee416b40
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xf664ef7ab61209f2105186d34dda9a7df57758f6eddcd720eb1144caaaf8fd6e",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x00000000003b3cc22af3ae1eac0440bcee416b40"
],
"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": "0x9d118770",
"selector": "0x9d118770",
"calldata_variants": [
"0x9d118770",
"0x9d1187700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa7b8e688",
"selector": "0xa7b8e688",
"calldata_variants": [
"0xa7b8e688",
"0xa7b8e6880000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd2925723",
"selector": "0xd2925723",
"calldata_variants": [
"0xd2925723",
"0xd29257230000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd69ea74d",
"selector": "0xd69ea74d",
"calldata_variants": [
"0xd69ea74d",
"0xd69ea74d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa461e33",
"selector": "0xfa461e33",
"calldata_variants": [
"0xfa461e33",
"0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10c117ab",
"selector": "0x10c117ab",
"calldata_variants": [
"0x10c117ab",
"0x10c117ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23a69e75",
"selector": "0x23a69e75",
"calldata_variants": [
"0x23a69e75",
"0x23a69e750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2768b07e",
"selector": "0x2768b07e",
"calldata_variants": [
"0x2768b07e",
"0x2768b07e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 251,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 603,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 705,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 15,
"guards_detected": [
{
"pc": 1006,
"type": "msg_sender_eq_const",
"value": 9.515804369106045e+47
},
{
"pc": 1035,
"type": "msg_sender_eq_const",
"value": 2.2154641339059453e+47
},
{
"pc": 1065,
"type": "msg_sender_eq_const",
"value": 1.0363008191737383e+48
},
{
"pc": 1095,
"type": "msg_sender_eq_const",
"value": 1.0485613429077335e+48
},
{
"pc": 1125,
"type": "msg_sender_eq_const",
"value": 4.5388034206692405e+47
},
{
"pc": 1155,
"type": "msg_sender_eq_const",
"value": 5.213023738982092e+47
},
{
"pc": 1185,
"type": "msg_sender_eq_const",
"value": 4.722498601284128e+47
},
{
"pc": 1215,
"type": "msg_sender_eq_const",
"value": 3.758047990261806e+47
},
{
"pc": 5986,
"type": "msg_sender_eq_const",
"value": 1.431741640259772e+48
},
{
"pc": 6015,
"type": "msg_sender_eq_const",
"value": 4.607308642188697e+46
},
{
"pc": 6045,
"type": "msg_sender_eq_const",
"value": 5.9420802249527606e+47
},
{
"pc": 7841,
"type": "msg_sender_eq_const",
"value": 9.515804369106045e+47
},
{
"pc": 7870,
"type": "msg_sender_eq_const",
"value": 2.2154641339059453e+47
},
{
"pc": 7900,
"type": "msg_sender_eq_const",
"value": 1.0363008191737383e+48
},
{
"pc": 7930,
"type": "msg_sender_eq_const",
"value": 1.0485613429077335e+48
},
{
"pc": 7960,
"type": "msg_sender_eq_const",
"value": 4.5388034206692405e+47
},
{
"pc": 7990,
"type": "msg_sender_eq_const",
"value": 5.213023738982092e+47
},
{
"pc": 8020,
"type": "msg_sender_eq_const",
"value": 4.722498601284128e+47
},
{
"pc": 8050,
"type": "msg_sender_eq_const",
"value": 3.758047990261806e+47
},
{
"pc": 8080,
"type": "msg_sender_eq_const",
"value": 1.431741640259772e+48
},
{
"pc": 8110,
"type": "msg_sender_eq_const",
"value": 4.607308642188697e+46
},
{
"pc": 8139,
"type": "msg_sender_eq_const",
"value": 5.9420802249527606e+47
},
{
"pc": 8929,
"type": "tx_origin_used"
},
{
"pc": 8958,
"type": "tx_origin_used"
},
{
"pc": 8988,
"type": "tx_origin_used"
},
{
"pc": 9018,
"type": "tx_origin_used"
},
{
"pc": 9048,
"type": "tx_origin_used"
},
{
"pc": 9078,
"type": "tx_origin_used"
},
{
"pc": 9108,
"type": "tx_origin_used"
},
{
"pc": 9138,
"type": "tx_origin_used"
},
{
"pc": 8928,
"type": "tx_origin_used"
},
{
"pc": 8957,
"type": "tx_origin_used"
},
{
"pc": 8987,
"type": "tx_origin_used"
},
{
"pc": 9017,
"type": "tx_origin_used"
},
{
"pc": 9047,
"type": "tx_origin_used"
},
{
"pc": 9077,
"type": "tx_origin_used"
},
{
"pc": 9107,
"type": "tx_origin_used"
},
{
"pc": 9137,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | SELFDESTRUCT reachable | 45 | no | no |
viewtrace_id: 0x482d7034c93f0cb88a32886089473b14a02e804cac865e65728d14d821882721
validation_json{
"sink": "SELFDESTRUCT",
"errors": 0,
"status": "unknown",
"attempts": 20,
"trace_id": "0x482d7034c93f0cb88a32886089473b14a02e804cac865e65728d14d821882721",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x9d118770",
"selector": "0x9d118770",
"calldata_variants": [
"0x9d118770",
"0x9d1187700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa7b8e688",
"selector": "0xa7b8e688",
"calldata_variants": [
"0xa7b8e688",
"0xa7b8e6880000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd2925723",
"selector": "0xd2925723",
"calldata_variants": [
"0xd2925723",
"0xd29257230000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd69ea74d",
"selector": "0xd69ea74d",
"calldata_variants": [
"0xd69ea74d",
"0xd69ea74d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa461e33",
"selector": "0xfa461e33",
"calldata_variants": [
"0xfa461e33",
"0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10c117ab",
"selector": "0x10c117ab",
"calldata_variants": [
"0x10c117ab",
"0x10c117ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23a69e75",
"selector": "0x23a69e75",
"calldata_variants": [
"0x23a69e75",
"0x23a69e750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2768b07e",
"selector": "0x2768b07e",
"calldata_variants": [
"0x2768b07e",
"0x2768b07e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 1006,
"type": "msg_sender_eq_const",
"value": 9.515804369106045e+47
},
{
"pc": 1035,
"type": "msg_sender_eq_const",
"value": 2.2154641339059453e+47
},
{
"pc": 1065,
"type": "msg_sender_eq_const",
"value": 1.0363008191737383e+48
},
{
"pc": 1095,
"type": "msg_sender_eq_const",
"value": 1.0485613429077335e+48
},
{
"pc": 1125,
"type": "msg_sender_eq_const",
"value": 4.5388034206692405e+47
},
{
"pc": 1155,
"type": "msg_sender_eq_const",
"value": 5.213023738982092e+47
},
{
"pc": 1185,
"type": "msg_sender_eq_const",
"value": 4.722498601284128e+47
},
{
"pc": 1215,
"type": "msg_sender_eq_const",
"value": 3.758047990261806e+47
},
{
"pc": 5986,
"type": "msg_sender_eq_const",
"value": 1.431741640259772e+48
},
{
"pc": 6015,
"type": "msg_sender_eq_const",
"value": 4.607308642188697e+46
},
{
"pc": 6045,
"type": "msg_sender_eq_const",
"value": 5.9420802249527606e+47
},
{
"pc": 7841,
"type": "msg_sender_eq_const",
"value": 9.515804369106045e+47
},
{
"pc": 7870,
"type": "msg_sender_eq_const",
"value": 2.2154641339059453e+47
},
{
"pc": 7900,
"type": "msg_sender_eq_const",
"value": 1.0363008191737383e+48
},
{
"pc": 7930,
"type": "msg_sender_eq_const",
"value": 1.0485613429077335e+48
},
{
"pc": 7960,
"type": "msg_sender_eq_const",
"value": 4.5388034206692405e+47
},
{
"pc": 7990,
"type": "msg_sender_eq_const",
"value": 5.213023738982092e+47
},
{
"pc": 8020,
"type": "msg_sender_eq_const",
"value": 4.722498601284128e+47
},
{
"pc": 8050,
"type": "msg_sender_eq_const",
"value": 3.758047990261806e+47
},
{
"pc": 8080,
"type": "msg_sender_eq_const",
"value": 1.431741640259772e+48
},
{
"pc": 8110,
"type": "msg_sender_eq_const",
"value": 4.607308642188697e+46
},
{
"pc": 8139,
"type": "msg_sender_eq_const",
"value": 5.9420802249527606e+47
},
{
"pc": 8929,
"type": "tx_origin_used"
},
{
"pc": 8958,
"type": "tx_origin_used"
},
{
"pc": 8988,
"type": "tx_origin_used"
},
{
"pc": 9018,
"type": "tx_origin_used"
},
{
"pc": 9048,
"type": "tx_origin_used"
},
{
"pc": 9078,
"type": "tx_origin_used"
},
{
"pc": 9108,
"type": "tx_origin_used"
},
{
"pc": 9138,
"type": "tx_origin_used"
},
{
"pc": 8928,
"type": "tx_origin_used"
},
{
"pc": 8957,
"type": "tx_origin_used"
},
{
"pc": 8987,
"type": "tx_origin_used"
},
{
"pc": 9017,
"type": "tx_origin_used"
},
{
"pc": 9047,
"type": "tx_origin_used"
},
{
"pc": 9077,
"type": "tx_origin_used"
},
{
"pc": 9107,
"type": "tx_origin_used"
},
{
"pc": 9137,
"type": "tx_origin_used"
}
],
"selfdestruct_count": 1
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x482d7034c93f0cb88a32886089473b14a02e804cac865e65728d14d821882721
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 20,
"trace_id": "0x482d7034c93f0cb88a32886089473b14a02e804cac865e65728d14d821882721",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x9d118770",
"selector": "0x9d118770",
"calldata_variants": [
"0x9d118770",
"0x9d1187700000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa7b8e688",
"selector": "0xa7b8e688",
"calldata_variants": [
"0xa7b8e688",
"0xa7b8e6880000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd2925723",
"selector": "0xd2925723",
"calldata_variants": [
"0xd2925723",
"0xd29257230000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd69ea74d",
"selector": "0xd69ea74d",
"calldata_variants": [
"0xd69ea74d",
"0xd69ea74d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa461e33",
"selector": "0xfa461e33",
"calldata_variants": [
"0xfa461e33",
"0xfa461e330000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x10c117ab",
"selector": "0x10c117ab",
"calldata_variants": [
"0x10c117ab",
"0x10c117ab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x23a69e75",
"selector": "0x23a69e75",
"calldata_variants": [
"0x23a69e75",
"0x23a69e750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2768b07e",
"selector": "0x2768b07e",
"calldata_variants": [
"0x2768b07e",
"0x2768b07e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 1
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 0,
"create2_count": 1
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 19
}
|
| 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": 7
}
|