214e9e7c-7d46-4b18-968f-335f407b9ed8
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 |
|---|---|---|---|---|
| 30723 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 75334 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 75335 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 75336 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 75337 | capability.graph | complete | 1 / 3 | 1 week ago |
| 75338 | detector.run | complete | 1 / 3 | 1 week ago |
| 75339 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:496117] OpenAI Codex v0.77.0 (research preview)
[codex:496117] --------
[codex:496117] workdir: /tmp/codex-multi-e4t8z5gl
[codex:496117] model: gpt-5.2-codex
[codex:496117] provider: openai
[codex:496117] approval: never
[codex:496117] sandbox: read-only
[codex:496117] reasoning effort: xhigh
[codex:496117] reasoning summaries: auto
[codex:496117] session id: 019b7085-a966-7893-8533-ef014322dd50
[codex:496117] --------
[codex:496117] user
[codex:496117] You are a security auditor. You are given EVM runtime bytecode (and possibly a disassembly) for a contract with NO verified source.
[codex:496117] This is best-effort. Do not hallucinate: only flag issues when there's a concrete, explainable angle from bytecode/disasm patterns.
[codex:496117]
[codex:496117] You MUST read the full `BYTECODE_BUNDLE.txt` before concluding.
[codex:496117]
[codex:496117] Output MUST be valid JSON matching the provided schema.
[codex:496117] - If you cannot identify a concrete issue from bytecode/disasm alone: set no_findings=true and findings=[].
[codex:496117] - Otherwise: include findings with severity/category/title/evidence and point locations to BYTECODE_BUNDLE.txt line ranges when possible.
[codex:496117]
[codex:496117] Output constraints (IMPORTANT):
[codex:496117] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:496117] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:496117] mcp startup: no servers
[codex:496117]
[codex:496117] thinking
[codex:496117] **Reading the bundle file**
[codex:496117] exec
[codex:496117] /bin/bash -lc 'cat /tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt' in /tmp/codex-multi-e4t8z5gl succeeded in 7ms:
[codex:496117] Runtime bytecode bundle for best-effort auditing.
[codex:496117] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:496117]
[codex:496117] FILE: runtime_bytecode.hex
[codex:496117] 0x6080604052600436106101c95763ffffffff60e060020a6000350416631dcea42781146101ce57806321d800ec146101ff578063232a2c1d1461022b5780632b92490e146102715780632bd0bb0514610292578063392e53cd146102bc5780633dd95d1b146102d15780633e6968b6146102e95780633f0a9f65146102fe578063437764df1461031357806343b37dd31461035d578063452f3ce0146103725780634fb3fef71461038757806351c764e01461039f57806367eeba0c146103e457806369ffa08a146103f95780637ce3489b146102d15780637fd6f15c14610420578063879ce676146104355780638aa1949a1461044d5780638d068043146104625780638da5cb5b14610477578063994390891461048c578063997b8c2d146104a15780639a454b99146104ee5780639cb7595a14610503578063a2a6ca2714610544578063acf5c6891461055c578063b20d30a914610574578063bf1fe4201461058c578063c0567656146105a4578063c6f6f216146105bc578063df0ad3de146105d4578063df25f3f0146105e9578063ea9f4968146105fe578063f20151e114610616578063f2fde38b1461062e578063f968adbe1461064f578063fe173b9714610664575b600080fd5b3480156101da57600080fd5b506101e3610679565b60408051600160a060020a039092168252519081900360200190f35b34801561020b57600080fd5b50610217600435610737565b604080519115158252519081900360200190f35b34801561023757600080fd5b5061026f6024600480358281019290820135918135808301929082013591604435808301929082013591606435918201910135610800565b005b34801561027d57600080fd5b5061026f600160a060020a03600435166109ba565b34801561029e57600080fd5b506102aa6004356109e2565b60408051918252519081900360200190f35b3480156102c857600080fd5b50610217610a9f565b3480156102dd57600080fd5b5061026f600435610b57565b3480156102f557600080fd5b506102aa610bda565b34801561030a57600080fd5b506102aa610be3565b34801561031f57600080fd5b50610328610c97565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b34801561036957600080fd5b506102aa610d3a565b34801561037e57600080fd5b506101e3610dad565b34801561039357600080fd5b506102aa600435610e21565b3480156103ab57600080fd5b50610217600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e4351661010435610e9c565b3480156103f057600080fd5b506102aa610ebd565b34801561040557600080fd5b5061026f600160a060020a0360043581169060243516610f30565b34801561042c57600080fd5b506102aa610f7a565b34801561044157600080fd5b50610217600435610fed565b34801561045957600080fd5b506102aa611037565b34801561046e57600080fd5b506102aa6110aa565b34801561048357600080fd5b506101e3611122565b34801561049857600080fd5b506101e3611196565b3480156104ad57600080fd5b50610217600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e4358116906101043590610124351661120a565b3480156104fa57600080fd5b506102aa611235565b34801561050f57600080fd5b506105186112a8565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561055057600080fd5b5061026f6004356112b2565b34801561056857600080fd5b5061026f6004356113a9565b34801561058057600080fd5b5061026f6004356114b8565b34801561059857600080fd5b5061026f6004356115ba565b3480156105b057600080fd5b506102aa6004356116c9565b3480156105c857600080fd5b5061026f600435611706565b3480156105e057600080fd5b506101e36117a7565b3480156105f557600080fd5b506102aa6117e7565b34801561060a57600080fd5b5061021760043561185a565b34801561062257600080fd5b5061026f6004356118aa565b34801561063a57600080fd5b5061026f600160a060020a036004351661194b565b34801561065b57600080fd5b506102aa611985565b34801561067057600080fd5b506102aa6119f8565b60006002600060405160200180807f6572633230746f6b656e00000000000000000000000000000000000000000000815250600a0190506040516020818303038152906040526040518082805190602001908083835b602083106106ee5780518252601f1990920191602091820191016106cf565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054600160a060020a0316949350505050565b6000600460008360405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106107bc5780518252601f19909201916020918201910161079d565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1695945050505050565b6000806000806108d886868080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508d8d808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508c8c808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508b8b80806020026020016040519081016040528093929190818152602001838360200280828437506108d394506111969350505050565b611a6b565b61091186868080601f01602080910402602001604051908101604052809392919081815260200183838082843750611cd8945050505050565b92965090945092509050600160a060020a038116301461093057600080fd5b61093982610737565b1561094357600080fd5b61094e826001611d1e565b6109588484611df0565b151561096357600080fd5b60408051600160a060020a03861681526020810185905280820184905290517f4ab7d581336d92edbea22636a613e8e76c99ac7f91137c1523db38dbfb3bf3299181900360600190a1505050505050505050505050565b6109c2611122565b600160a060020a031633146109d657600080fd5b6109df81611f0a565b50565b60008060008360405160200180807f746f74616c5370656e74506572446179000000000000000000000000000000008152506010018281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610a5e5780518252601f199092019160209182019101610a3f565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b60006004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310610b145780518252601f199092019160209182019101610af5565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff16949350505050565b610b5f611122565b600160a060020a03163314610b7357600080fd5b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6465707265636174656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b62015180420490565b600080600060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b60208310610c575780518252601f199092019160209182019101610c38565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054949350505050565b600060405160200180807f6572632d746f2d6572632d636f72650000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b60208310610d085780518252601f199092019160209182019101610ce9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905090565b600080600060405160200180807f657865637574696f6e4461696c794c696d697400000000000000000000000000815250601301905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60006002600060405160200180807f66616c6c6261636b526563697069656e740000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b60008060008360405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130182815260200191505060405160208183030381529060405260405180828051906020019080838360208310610a5e5780518252601f199092019160209182019101610a3f565b6000610eaf8a8a8a8a8a8a8a8a8a611ffc565b9a9950505050505050505050565b600080600060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b610f386117a7565b600160a060020a03163314610f4c57600080fd5b610f54610679565b600160a060020a0383811691161415610f6c57600080fd5b610f768282612690565b5050565b600080600060405160200180807f66656550657263656e7400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60008061101083611004610fff610bda565b610e21565b9063ffffffff61284c16565b90508061101b610d3a565b10158015611030575061102c611037565b8311155b9392505050565b600080600060405160200180807f657865637574696f6e4d61785065725478000000000000000000000000000000815250601101905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60006110b4611196565b600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050506040513d602081101561111b57600080fd5b5051905090565b60006002600060405160200180807f6f776e65720000000000000000000000000000000000000000000000000000008152506005019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b60006002600060405160200180807f76616c696461746f72436f6e74726163740000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b600061121582611f0a565b6112268b8b8b8b8b8b8b8b8b610e9c565b9b9a5050505050505050505050565b600080600060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6002806000909192565b6112ba611122565b600160a060020a031633146112ce57600080fd5b6112d6610ebd565b811080156112ea57506112e7611985565b81105b15156112f557600080fd5b8060008060405160200180807f6d696e506572547800000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b602083106113685780518252601f199092019160209182019101611349565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000209390935550505050565b6113b1611122565b600160a060020a031633146113c557600080fd5b600081116113d257600080fd5b8060008060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b602083106114455780518252601f199092019160209182019101611426565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb9350918290030190a150565b6114c0611122565b600160a060020a031633146114d457600080fd5b8060008060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a0190506040516020818303038152906040526040518082805190602001908083835b602083106115475780518252601f199092019160209182019101611528565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517fad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c9350918290030190a150565b6115c2611122565b600160a060020a031633146115d657600080fd5b600081116115e357600080fd5b8060008060405160200180807f676173507269636500000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b602083106116565780518252601f199092019160209182019101611637565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e9350918290030190a150565b60006127106110306116f9826116ed6116e0610f7a565b879063ffffffff61285b16565b9063ffffffff61288616565b849063ffffffff61289d16565b61170e611122565b600160a060020a0316331461172257600080fd5b61172a610ebd565b811061173557600080fd5b8060008060405160200180807f6d617850657254780000000000000000000000000000000000000000000000008152506008019050604051602081830303815290604052604051808280519060200190808383602083106113685780518252601f199092019160209182019101611349565b600030600160a060020a031663025313a26040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110f157600080fd5b600080600060405160200180807f6d696e5065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6000806118718361100461186c610bda565b6109e2565b90508061187c610ebd565b10158015611891575061188d611985565b8311155b801561103057506118a06117e7565b9092101592915050565b6118b2611122565b600160a060020a031633146118c657600080fd5b6118ce610d3a565b81106118d957600080fd5b8060008060405160200180807f657865637574696f6e4d617850657254780000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106113685780518252601f199092019160209182019101611349565b611953611122565b600160a060020a0316331461196757600080fd5b600160a060020a038116151561197c57600080fd5b6109df816128af565b600080600060405160200180807f6d61785065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b600080600060405160200180807f6761735072696365000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6000806060600080611a7c8a61296d565b1515611a8757600080fd5b85600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ac557600080fd5b505af1158015611ad9573d6000803e3d6000fd5b505050506040513d6020811015611aef57600080fd5b50518951909550851115611b0257600080fd5b611b0b8a612981565b935084604051908082528060200260200182016040528015611b37578160200160208202803883390190505b509250600091505b84821015611ccc576001848a84815181101515611b5857fe5b906020019060200201518a85815181101515611b7057fe5b906020019060200201518a86815181101515611b8857fe5b60209081029091018101516040805160008082528185018084529790975260ff9095168582015260608501939093526080840152905160a0808401949293601f19830193908390039091019190865af1158015611be9573d6000803e3d6000fd5b50505060206040510351905085600160a060020a031663facd743b826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b505050506040513d6020811015611c7a57600080fd5b50511515611c8757600080fd5b611c918382612b46565b15611c9b57600080fd5b808383815181101515611caa57fe5b600160a060020a03909216602092830290910190910152600190910190611b3f565b50505050505050505050565b600080600080611ce78561296d565b1515611cf257600080fd5b600160a060020a0360148601511693506034850151925060548501519150606885015190509193509193565b80600460008460405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310611da25780518252601f199092019160209182019101611d83565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff1916941515949094179093555050505050565b600080611dfd8484612b9f565b1515611efe57611e0b610dad565b9050600160a060020a0381161515611eaa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f66616c6c6261636b20726563697069656e7420776173206e6f7420617373696760448201527f6e65640000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611eb48184612b9f565b5080600160a060020a031684600160a060020a03167f4b186bbb80392b9b4a5cdf5f78a4f6ecdb8da0082f37d2cf24a6885e9f61fbbe60405160405180910390a360019150611f03565b600191505b5092915050565b600160a060020a0381161515611f1f57600080fd5b806002600060405160200180807f66616c6c6261636b526563697069656e7400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b60208310611f935780518252601f199092019160209182019101611f74565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03959095169490941790935550505050565b6000612006610a9f565b1561201057600080fd5b600160a060020a038a161580159061202c575061202c8a612c80565b151561203757600080fd5b87151561204357600080fd5b6000871161205057600080fd5b84841061205c57600080fd5b600160a060020a038316151561207157600080fd5b61271082106120e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c6964206665652070657263656e7400000000000000000000000000604482015290519081900360640190fd5b896002600060405160200180807f76616c696461746f72436f6e747261637400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b602083106121555780518252601f199092019160209182019101612136565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039590951694909417909355506121c691508a9050612c88565b4360008060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b602083106122395780518252601f19909201916020918201910161221a565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000818401528151601a818303018152603a9091019182905280518c949384939182918401908083835b602083106122e35780518252601f1990920191602091820191016122c4565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6761735072696365000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518b949384939182918401908083835b6020831061238d5780518252601f19909201916020918201910161236e565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6d61785065725478000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518a949384939182918401908083835b602083106124375780518252601f199092019160209182019101612418565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4461696c794c696d6974000000000000000000000000008184015281516013818303018152603390910191829052805189949384939182918401908083835b602083106124e15780518252601f1990920191602091820191016124c2565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4d617850657254780000000000000000000000000000008184015281516011818303018152603190910191829052805188949384939182918401908083835b6020831061258b5780518252601f19909201916020918201910161256c565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f66656550657263656e7400000000000000000000000000000000000000000000818401528151600a818303018152602a90910191829052805186949384939182918401908083835b602083106126355780518252601f199092019160209182019101612616565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555061267e91508490506128af565b6126886001612d22565b610eaf610a9f565b60008061269b6117a7565b600160a060020a031633146126af57600080fd5b600160a060020a03831615156126c457600080fd5b600160a060020a038416151561271057604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561270a573d6000803e3d6000fd5b50612846565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051859350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561277457600080fd5b505af1158015612788573d6000803e3d6000fd5b505050506040513d602081101561279e57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820184905291519293509084169163a9059cbb916044808201926020929091908290030181600087803b15801561280f57600080fd5b505af1158015612823573d6000803e3d6000fd5b505050506040513d602081101561283957600080fd5b5051151561284657600080fd5b50505050565b60008282018381101561103057fe5b60008083151561286e5760009150611f03565b5082820282848281151561287e57fe5b041461103057fe5b600080828481151561289457fe5b04949350505050565b6000828211156128a957fe5b50900390565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e06128d8611122565b60408051600160a060020a03928316815291841660208301528051918290030190a1806002600060405160200180807f6f776e6572000000000000000000000000000000000000000000000000000000815250600501905060405160208183030381529060405260405180828051906020019080838360208310611f935780518252601f199092019160209182019101611f74565b6000612977612de3565b8251149050919050565b604080518082018252601a81527f19457468657265756d205369676e6564204d6573736167653a0a000000000000602080830191825283518085018552600381527f313034000000000000000000000000000000000000000000000000000000000081830152935183516000959385938593899391019182918083835b60208310612a1d5780518252601f1990920191602091820191016129fe565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b60208310612a655780518252601f199092019160209182019101612a46565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310612aad5780518252601f199092019160209182019101612a8e565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310612b125780518252601f199092019160209182019101612af3565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120979650505050505050565b6000805b8351811015612b955782600160a060020a03168482815181101515612b6b57fe5b90602001906020020151600160a060020a03161415612b8d5760019150611f03565b600101612b4a565b5060009392505050565b600080612baa610679565b600160a060020a031660405180807f7472616e7366657228616464726573732c75696e7432353629000000000000008152506019019050604051809103902060e060020a900485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303816000875af1925050509050801515612c4e5760009150611f03565b3d8015612c625760208114612c6c57600080fd5b6000199150612c78565b60206000803e60005191505b509392505050565b6000903b1190565b600160a060020a03811615801590612ca45750612ca481612c80565b1515612caf57600080fd5b806002600060405160200180807f6572633230746f6b656e00000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310611f935780518252601f199092019160209182019101611f74565b806004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310612d965780518252601f199092019160209182019101612d77565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff19169415159490941790935550505050565b6068905600a165627a7a7230582053ea074de130c12a3075f5c8c5d625ca406daecb629d00f5d7b83e1ae040982a0029
[codex:496117]
[codex:496117] thinking
[codex:496117] **Analyzing runtime bytecode for vulnerabilities**
[codex:496117]
[codex:496117] I'm inspecting the runtime bytecode for patterns indicating ownership, initialization, and storage usage, focusing on potential security issues like unprotected initialize functions or access control flaws. I’m connecting function selectors to known behavior and looking for concrete evidence of vulnerabilities before flagging anything.
[codex:496117] exec
[codex:496117] /bin/bash -lc 'nl -ba /tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt' in /tmp/codex-multi-e4t8z5gl succeeded in 6ms:
[codex:496117] 1 Runtime bytecode bundle for best-effort auditing.
[codex:496117] 2 Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:496117] 3
[codex:496117] 4 FILE: runtime_bytecode.hex
[codex:496117] 5 0x6080604052600436106101c95763ffffffff60e060020a6000350416631dcea42781146101ce57806321d800ec146101ff578063232a2c1d1461022b5780632b92490e146102715780632bd0bb0514610292578063392e53cd146102bc5780633dd95d1b146102d15780633e6968b6146102e95780633f0a9f65146102fe578063437764df1461031357806343b37dd31461035d578063452f3ce0146103725780634fb3fef71461038757806351c764e01461039f57806367eeba0c146103e457806369ffa08a146103f95780637ce3489b146102d15780637fd6f15c14610420578063879ce676146104355780638aa1949a1461044d5780638d068043146104625780638da5cb5b14610477578063994390891461048c578063997b8c2d146104a15780639a454b99146104ee5780639cb7595a14610503578063a2a6ca2714610544578063acf5c6891461055c578063b20d30a914610574578063bf1fe4201461058c578063c0567656146105a4578063c6f6f216146105bc578063df0ad3de146105d4578063df25f3f0146105e9578063ea9f4968146105fe578063f20151e114610616578063f2fde38b1461062e578063f968adbe1461064f578063fe173b9714610664575b600080fd5b3480156101da57600080fd5b506101e3610679565b60408051600160a060020a039092168252519081900360200190f35b34801561020b57600080fd5b50610217600435610737565b604080519115158252519081900360200190f35b34801561023757600080fd5b5061026f6024600480358281019290820135918135808301929082013591604435808301929082013591606435918201910135610800565b005b34801561027d57600080fd5b5061026f600160a060020a03600435166109ba565b34801561029e57600080fd5b506102aa6004356109e2565b60408051918252519081900360200190f35b3480156102c857600080fd5b50610217610a9f565b3480156102dd57600080fd5b5061026f600435610b57565b3480156102f557600080fd5b506102aa610bda565b34801561030a57600080fd5b506102aa610be3565b34801561031f57600080fd5b50610328610c97565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b34801561036957600080fd5b506102aa610d3a565b34801561037e57600080fd5b506101e3610dad565b34801561039357600080fd5b506102aa600435610e21565b3480156103ab57600080fd5b50610217600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e4351661010435610e9c565b3480156103f057600080fd5b506102aa610ebd565b34801561040557600080fd5b5061026f600160a060020a0360043581169060243516610f30565b34801561042c57600080fd5b506102aa610f7a565b34801561044157600080fd5b50610217600435610fed565b34801561045957600080fd5b506102aa611037565b34801561046e57600080fd5b506102aa6110aa565b34801561048357600080fd5b506101e3611122565b34801561049857600080fd5b506101e3611196565b3480156104ad57600080fd5b50610217600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e4358116906101043590610124351661120a565b3480156104fa57600080fd5b506102aa611235565b34801561050f57600080fd5b506105186112a8565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561055057600080fd5b5061026f6004356112b2565b34801561056857600080fd5b5061026f6004356113a9565b34801561058057600080fd5b5061026f6004356114b8565b34801561059857600080fd5b5061026f6004356115ba565b3480156105b057600080fd5b506102aa6004356116c9565b3480156105c857600080fd5b5061026f600435611706565b3480156105e057600080fd5b506101e36117a7565b3480156105f557600080fd5b506102aa6117e7565b34801561060a57600080fd5b5061021760043561185a565b34801561062257600080fd5b5061026f6004356118aa565b34801561063a57600080fd5b5061026f600160a060020a036004351661194b565b34801561065b57600080fd5b506102aa611985565b34801561067057600080fd5b506102aa6119f8565b60006002600060405160200180807f6572633230746f6b656e00000000000000000000000000000000000000000000815250600a0190506040516020818303038152906040526040518082805190602001908083835b602083106106ee5780518252601f1990920191602091820191016106cf565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054600160a060020a0316949350505050565b6000600460008360405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106107bc5780518252601f19909201916020918201910161079d565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1695945050505050565b6000806000806108d886868080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508d8d808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508c8c808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508b8b80806020026020016040519081016040528093929190818152602001838360200280828437506108d394506111969350505050565b611a6b565b61091186868080601f01602080910402602001604051908101604052809392919081815260200183838082843750611cd8945050505050565b92965090945092509050600160a060020a038116301461093057600080fd5b61093982610737565b1561094357600080fd5b61094e826001611d1e565b6109588484611df0565b151561096357600080fd5b60408051600160a060020a03861681526020810185905280820184905290517f4ab7d581336d92edbea22636a613e8e76c99ac7f91137c1523db38dbfb3bf3299181900360600190a1505050505050505050505050565b6109c2611122565b600160a060020a031633146109d657600080fd5b6109df81611f0a565b50565b60008060008360405160200180807f746f74616c5370656e74506572446179000000000000000000000000000000008152506010018281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610a5e5780518252601f199092019160209182019101610a3f565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b60006004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310610b145780518252601f199092019160209182019101610af5565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff16949350505050565b610b5f611122565b600160a060020a03163314610b7357600080fd5b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6465707265636174656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b62015180420490565b600080600060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b60208310610c575780518252601f199092019160209182019101610c38565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054949350505050565b600060405160200180807f6572632d746f2d6572632d636f72650000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b60208310610d085780518252601f199092019160209182019101610ce9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905090565b600080600060405160200180807f657865637574696f6e4461696c794c696d697400000000000000000000000000815250601301905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60006002600060405160200180807f66616c6c6261636b526563697069656e740000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b60008060008360405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130182815260200191505060405160208183030381529060405260405180828051906020019080838360208310610a5e5780518252601f199092019160209182019101610a3f565b6000610eaf8a8a8a8a8a8a8a8a8a611ffc565b9a9950505050505050505050565b600080600060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b610f386117a7565b600160a060020a03163314610f4c57600080fd5b610f54610679565b600160a060020a0383811691161415610f6c57600080fd5b610f768282612690565b5050565b600080600060405160200180807f66656550657263656e7400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60008061101083611004610fff610bda565b610e21565b9063ffffffff61284c16565b90508061101b610d3a565b10158015611030575061102c611037565b8311155b9392505050565b600080600060405160200180807f657865637574696f6e4d61785065725478000000000000000000000000000000815250601101905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60006110b4611196565b600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050506040513d602081101561111b57600080fd5b5051905090565b60006002600060405160200180807f6f776e65720000000000000000000000000000000000000000000000000000008152506005019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b60006002600060405160200180807f76616c696461746f72436f6e74726163740000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b600061121582611f0a565b6112268b8b8b8b8b8b8b8b8b610e9c565b9b9a5050505050505050505050565b600080600060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6002806000909192565b6112ba611122565b600160a060020a031633146112ce57600080fd5b6112d6610ebd565b811080156112ea57506112e7611985565b81105b15156112f557600080fd5b8060008060405160200180807f6d696e506572547800000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b602083106113685780518252601f199092019160209182019101611349565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000209390935550505050565b6113b1611122565b600160a060020a031633146113c557600080fd5b600081116113d257600080fd5b8060008060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b602083106114455780518252601f199092019160209182019101611426565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb9350918290030190a150565b6114c0611122565b600160a060020a031633146114d457600080fd5b8060008060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a0190506040516020818303038152906040526040518082805190602001908083835b602083106115475780518252601f199092019160209182019101611528565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517fad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c9350918290030190a150565b6115c2611122565b600160a060020a031633146115d657600080fd5b600081116115e357600080fd5b8060008060405160200180807f676173507269636500000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b602083106116565780518252601f199092019160209182019101611637565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e9350918290030190a150565b60006127106110306116f9826116ed6116e0610f7a565b879063ffffffff61285b16565b9063ffffffff61288616565b849063ffffffff61289d16565b61170e611122565b600160a060020a0316331461172257600080fd5b61172a610ebd565b811061173557600080fd5b8060008060405160200180807f6d617850657254780000000000000000000000000000000000000000000000008152506008019050604051602081830303815290604052604051808280519060200190808383602083106113685780518252601f199092019160209182019101611349565b600030600160a060020a031663025313a26040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110f157600080fd5b600080600060405160200180807f6d696e5065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6000806118718361100461186c610bda565b6109e2565b90508061187c610ebd565b10158015611891575061188d611985565b8311155b801561103057506118a06117e7565b9092101592915050565b6118b2611122565b600160a060020a031633146118c657600080fd5b6118ce610d3a565b81106118d957600080fd5b8060008060405160200180807f657865637574696f6e4d617850657254780000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106113685780518252601f199092019160209182019101611349565b611953611122565b600160a060020a0316331461196757600080fd5b600160a060020a038116151561197c57600080fd5b6109df816128af565b600080600060405160200180807f6d61785065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b600080600060405160200180807f6761735072696365000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6000806060600080611a7c8a61296d565b1515611a8757600080fd5b85600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ac557600080fd5b505af1158015611ad9573d6000803e3d6000fd5b505050506040513d6020811015611aef57600080fd5b50518951909550851115611b0257600080fd5b611b0b8a612981565b935084604051908082528060200260200182016040528015611b37578160200160208202803883390190505b509250600091505b84821015611ccc576001848a84815181101515611b5857fe5b906020019060200201518a85815181101515611b7057fe5b906020019060200201518a86815181101515611b8857fe5b60209081029091018101516040805160008082528185018084529790975260ff9095168582015260608501939093526080840152905160a0808401949293601f19830193908390039091019190865af1158015611be9573d6000803e3d6000fd5b50505060206040510351905085600160a060020a031663facd743b826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b505050506040513d6020811015611c7a57600080fd5b50511515611c8757600080fd5b611c918382612b46565b15611c9b57600080fd5b808383815181101515611caa57fe5b600160a060020a03909216602092830290910190910152600190910190611b3f565b50505050505050505050565b600080600080611ce78561296d565b1515611cf257600080fd5b600160a060020a0360148601511693506034850151925060548501519150606885015190509193509193565b80600460008460405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310611da25780518252601f199092019160209182019101611d83565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff1916941515949094179093555050505050565b600080611dfd8484612b9f565b1515611efe57611e0b610dad565b9050600160a060020a0381161515611eaa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f66616c6c6261636b20726563697069656e7420776173206e6f7420617373696760448201527f6e65640000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611eb48184612b9f565b5080600160a060020a031684600160a060020a03167f4b186bbb80392b9b4a5cdf5f78a4f6ecdb8da0082f37d2cf24a6885e9f61fbbe60405160405180910390a360019150611f03565b600191505b5092915050565b600160a060020a0381161515611f1f57600080fd5b806002600060405160200180807f66616c6c6261636b526563697069656e7400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b60208310611f935780518252601f199092019160209182019101611f74565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03959095169490941790935550505050565b6000612006610a9f565b1561201057600080fd5b600160a060020a038a161580159061202c575061202c8a612c80565b151561203757600080fd5b87151561204357600080fd5b6000871161205057600080fd5b84841061205c57600080fd5b600160a060020a038316151561207157600080fd5b61271082106120e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c6964206665652070657263656e7400000000000000000000000000604482015290519081900360640190fd5b896002600060405160200180807f76616c696461746f72436f6e747261637400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b602083106121555780518252601f199092019160209182019101612136565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039590951694909417909355506121c691508a9050612c88565b4360008060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b602083106122395780518252601f19909201916020918201910161221a565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000818401528151601a818303018152603a9091019182905280518c949384939182918401908083835b602083106122e35780518252601f1990920191602091820191016122c4565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6761735072696365000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518b949384939182918401908083835b6020831061238d5780518252601f19909201916020918201910161236e565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6d61785065725478000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518a949384939182918401908083835b602083106124375780518252601f199092019160209182019101612418565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4461696c794c696d6974000000000000000000000000008184015281516013818303018152603390910191829052805189949384939182918401908083835b602083106124e15780518252601f1990920191602091820191016124c2565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4d617850657254780000000000000000000000000000008184015281516011818303018152603190910191829052805188949384939182918401908083835b6020831061258b5780518252601f19909201916020918201910161256c565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f66656550657263656e7400000000000000000000000000000000000000000000818401528151600a818303018152602a90910191829052805186949384939182918401908083835b602083106126355780518252601f199092019160209182019101612616565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555061267e91508490506128af565b6126886001612d22565b610eaf610a9f565b60008061269b6117a7565b600160a060020a031633146126af57600080fd5b600160a060020a03831615156126c457600080fd5b600160a060020a038416151561271057604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561270a573d6000803e3d6000fd5b50612846565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051859350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561277457600080fd5b505af1158015612788573d6000803e3d6000fd5b505050506040513d602081101561279e57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820184905291519293509084169163a9059cbb916044808201926020929091908290030181600087803b15801561280f57600080fd5b505af1158015612823573d6000803e3d6000fd5b505050506040513d602081101561283957600080fd5b5051151561284657600080fd5b50505050565b60008282018381101561103057fe5b60008083151561286e5760009150611f03565b5082820282848281151561287e57fe5b041461103057fe5b600080828481151561289457fe5b04949350505050565b6000828211156128a957fe5b50900390565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e06128d8611122565b60408051600160a060020a03928316815291841660208301528051918290030190a1806002600060405160200180807f6f776e6572000000000000000000000000000000000000000000000000000000815250600501905060405160208183030381529060405260405180828051906020019080838360208310611f935780518252601f199092019160209182019101611f74565b6000612977612de3565b8251149050919050565b604080518082018252601a81527f19457468657265756d205369676e6564204d6573736167653a0a000000000000602080830191825283518085018552600381527f313034000000000000000000000000000000000000000000000000000000000081830152935183516000959385938593899391019182918083835b60208310612a1d5780518252601f1990920191602091820191016129fe565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b60208310612a655780518252601f199092019160209182019101612a46565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310612aad5780518252601f199092019160209182019101612a8e565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310612b125780518252601f199092019160209182019101612af3565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120979650505050505050565b6000805b8351811015612b955782600160a060020a03168482815181101515612b6b57fe5b90602001906020020151600160a060020a03161415612b8d5760019150611f03565b600101612b4a565b5060009392505050565b600080612baa610679565b600160a060020a031660405180807f7472616e7366657228616464726573732c75696e7432353629000000000000008152506019019050604051809103902060e060020a900485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303816000875af1925050509050801515612c4e5760009150611f03565b3d8015612c625760208114612c6c57600080fd5b6000199150612c78565b60206000803e60005191505b509392505050565b6000903b1190565b600160a060020a03811615801590612ca45750612ca481612c80565b1515612caf57600080fd5b806002600060405160200180807f6572633230746f6b656e00000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310611f935780518252601f199092019160209182019101611f74565b806004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310612d965780518252601f199092019160209182019101612d77565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff19169415159490941790935550505050565b6068905600a165627a7a7230582053ea074de130c12a3075f5c8c5d625ca406daecb629d00f5d7b83e1ae040982a0029
[codex:496117]
[codex:496117]
[codex:496117] thinking
[codex:496117] **Analyzing bytecode for security weaknesses**
[codex:496117] thinking
[codex:496117] **Evaluating function call order and access control**
[codex:496117]
[codex:496117] I'm reviewing how the contract marks messages as relayed before executing external calls, which reduces reentrancy risk. I’m also mapping function selectors to names and checking owner access on setters like validatorContract. It looks like most setters have owner checks, and the initializer sets critical state only once. I’m scanning for any externally callable functions that can set critical flags like relayedMessages without restriction, as that could cause issues.
[codex:496117] exec
[codex:496117] /bin/bash -lc 'rg -n "611d1e" /tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt' in /tmp/codex-multi-e4t8z5gl succeeded in 15ms:
[codex:496117] 5:0x6080604052600436106101c95763ffffffff60e060020a6000350416631dcea42781146101ce57806321d800ec146101ff578063232a2c1d1461022b5780632b92490e146102715780632bd0bb0514610292578063392e53cd146102bc5780633dd95d1b146102d15780633e6968b6146102e95780633f0a9f65146102fe578063437764df1461031357806343b37dd31461035d578063452f3ce0146103725780634fb3fef71461038757806351c764e01461039f57806367eeba0c146103e457806369ffa08a146103f95780637ce3489b146102d15780637fd6f15c14610420578063879ce676146104355780638aa1949a1461044d5780638d068043146104625780638da5cb5b14610477578063994390891461048c578063997b8c2d146104a15780639a454b99146104ee5780639cb7595a14610503578063a2a6ca2714610544578063acf5c6891461055c578063b20d30a914610574578063bf1fe4201461058c578063c0567656146105a4578063c6f6f216146105bc578063df0ad3de146105d4578063df25f3f0146105e9578063ea9f4968146105fe578063f20151e114610616578063f2fde38b1461062e578063f968adbe1461064f578063fe173b9714610664575b600080fd5b3480156101da57600080fd5b506101e3610679565b60408051600160a060020a039092168252519081900360200190f35b34801561020b57600080fd5b50610217600435610737565b604080519115158252519081900360200190f35b34801561023757600080fd5b5061026f6024600480358281019290820135918135808301929082013591604435808301929082013591606435918201910135610800565b005b34801561027d57600080fd5b5061026f600160a060020a03600435166109ba565b34801561029e57600080fd5b506102aa6004356109e2565b60408051918252519081900360200190f35b3480156102c857600080fd5b50610217610a9f565b3480156102dd57600080fd5b5061026f600435610b57565b3480156102f557600080fd5b506102aa610bda565b34801561030a57600080fd5b506102aa610be3565b34801561031f57600080fd5b50610328610c97565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b34801561036957600080fd5b506102aa610d3a565b34801561037e57600080fd5b506101e3610dad565b34801561039357600080fd5b506102aa600435610e21565b3480156103ab57600080fd5b50610217600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e4351661010435610e9c565b3480156103f057600080fd5b506102aa610ebd565b34801561040557600080fd5b5061026f600160a060020a0360043581169060243516610f30565b34801561042c57600080fd5b506102aa610f7a565b34801561044157600080fd5b50610217600435610fed565b34801561045957600080fd5b506102aa611037565b34801561046e57600080fd5b506102aa6110aa565b34801561048357600080fd5b506101e3611122565b34801561049857600080fd5b506101e3611196565b3480156104ad57600080fd5b50610217600160a060020a0360043581169060243581169060443590606435906084359060a4359060c4359060e4358116906101043590610124351661120a565b3480156104fa57600080fd5b506102aa611235565b34801561050f57600080fd5b506105186112a8565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561055057600080fd5b5061026f6004356112b2565b34801561056857600080fd5b5061026f6004356113a9565b34801561058057600080fd5b5061026f6004356114b8565b34801561059857600080fd5b5061026f6004356115ba565b3480156105b057600080fd5b506102aa6004356116c9565b3480156105c857600080fd5b5061026f600435611706565b3480156105e057600080fd5b506101e36117a7565b3480156105f557600080fd5b506102aa6117e7565b34801561060a57600080fd5b5061021760043561185a565b34801561062257600080fd5b5061026f6004356118aa565b34801561063a57600080fd5b5061026f600160a060020a036004351661194b565b34801561065b57600080fd5b506102aa611985565b34801561067057600080fd5b506102aa6119f8565b60006002600060405160200180807f6572633230746f6b656e00000000000000000000000000000000000000000000815250600a0190506040516020818303038152906040526040518082805190602001908083835b602083106106ee5780518252601f1990920191602091820191016106cf565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054600160a060020a0316949350505050565b6000600460008360405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083106107bc5780518252601f19909201916020918201910161079d565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff1695945050505050565b6000806000806108d886868080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050508d8d808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508c8c808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508b8b80806020026020016040519081016040528093929190818152602001838360200280828437506108d394506111969350505050565b611a6b565b61091186868080601f01602080910402602001604051908101604052809392919081815260200183838082843750611cd8945050505050565b92965090945092509050600160a060020a038116301461093057600080fd5b61093982610737565b1561094357600080fd5b61094e826001611d1e565b6109588484611df0565b151561096357600080fd5b60408051600160a060020a03861681526020810185905280820184905290517f4ab7d581336d92edbea22636a613e8e76c99ac7f91137c1523db38dbfb3bf3299181900360600190a1505050505050505050505050565b6109c2611122565b600160a060020a031633146109d657600080fd5b6109df81611f0a565b50565b60008060008360405160200180807f746f74616c5370656e74506572446179000000000000000000000000000000008152506010018281526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610a5e5780518252601f199092019160209182019101610a3f565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205495945050505050565b60006004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310610b145780518252601f199092019160209182019101610af5565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000205460ff16949350505050565b610b5f611122565b600160a060020a03163314610b7357600080fd5b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6465707265636174656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b62015180420490565b600080600060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b60208310610c575780518252601f199092019160209182019101610c38565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528501959095529290920160002054949350505050565b600060405160200180807f6572632d746f2d6572632d636f72650000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b60208310610d085780518252601f199092019160209182019101610ce9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905090565b600080600060405160200180807f657865637574696f6e4461696c794c696d697400000000000000000000000000815250601301905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60006002600060405160200180807f66616c6c6261636b526563697069656e740000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b60008060008360405160200180807f746f74616c45786563757465645065724461790000000000000000000000000081525060130182815260200191505060405160208183030381529060405260405180828051906020019080838360208310610a5e5780518252601f199092019160209182019101610a3f565b6000610eaf8a8a8a8a8a8a8a8a8a611ffc565b9a9950505050505050505050565b600080600060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b610f386117a7565b600160a060020a03163314610f4c57600080fd5b610f54610679565b600160a060020a0383811691161415610f6c57600080fd5b610f768282612690565b5050565b600080600060405160200180807f66656550657263656e7400000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60008061101083611004610fff610bda565b610e21565b9063ffffffff61284c16565b90508061101b610d3a565b10158015611030575061102c611037565b8311155b9392505050565b600080600060405160200180807f657865637574696f6e4d61785065725478000000000000000000000000000000815250601101905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b60006110b4611196565b600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110f157600080fd5b505af1158015611105573d6000803e3d6000fd5b505050506040513d602081101561111b57600080fd5b5051905090565b60006002600060405160200180807f6f776e65720000000000000000000000000000000000000000000000000000008152506005019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b60006002600060405160200180807f76616c696461746f72436f6e74726163740000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106106ee5780518252601f1990920191602091820191016106cf565b600061121582611f0a565b6112268b8b8b8b8b8b8b8b8b610e9c565b9b9a5050505050505050505050565b600080600060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f01905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6002806000909192565b6112ba611122565b600160a060020a031633146112ce57600080fd5b6112d6610ebd565b811080156112ea57506112e7611985565b81105b15156112f557600080fd5b8060008060405160200180807f6d696e506572547800000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b602083106113685780518252601f199092019160209182019101611349565b51815160209384036101000a600019018019909216911617905260408051929094018290039091208652850195909552929092016000209390935550505050565b6113b1611122565b600160a060020a031633146113c557600080fd5b600081116113d257600080fd5b8060008060405160200180807f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000815250601a0190506040516020818303038152906040526040518082805190602001908083835b602083106114455780518252601f199092019160209182019101611426565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb9350918290030190a150565b6114c0611122565b600160a060020a031633146114d457600080fd5b8060008060405160200180807f6461696c794c696d697400000000000000000000000000000000000000000000815250600a0190506040516020818303038152906040526040518082805190602001908083835b602083106115475780518252601f199092019160209182019101611528565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517fad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c9350918290030190a150565b6115c2611122565b600160a060020a031633146115d657600080fd5b600081116115e357600080fd5b8060008060405160200180807f676173507269636500000000000000000000000000000000000000000000000081525060080190506040516020818303038152906040526040518082805190602001908083835b602083106116565780518252601f199092019160209182019101611637565b51815160001960209485036101000a019081169019919091161790526040805194909201849003909320865285830196909652509284016000209490945550815184815291517f52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e9350918290030190a150565b60006127106110306116f9826116ed6116e0610f7a565b879063ffffffff61285b16565b9063ffffffff61288616565b849063ffffffff61289d16565b61170e611122565b600160a060020a0316331461172257600080fd5b61172a610ebd565b811061173557600080fd5b8060008060405160200180807f6d617850657254780000000000000000000000000000000000000000000000008152506008019050604051602081830303815290604052604051808280519060200190808383602083106113685780518252601f199092019160209182019101611349565b600030600160a060020a031663025313a26040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110f157600080fd5b600080600060405160200180807f6d696e5065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6000806118718361100461186c610bda565b6109e2565b90508061187c610ebd565b10158015611891575061188d611985565b8311155b801561103057506118a06117e7565b9092101592915050565b6118b2611122565b600160a060020a031633146118c657600080fd5b6118ce610d3a565b81106118d957600080fd5b8060008060405160200180807f657865637574696f6e4d617850657254780000000000000000000000000000008152506011019050604051602081830303815290604052604051808280519060200190808383602083106113685780518252601f199092019160209182019101611349565b611953611122565b600160a060020a0316331461196757600080fd5b600160a060020a038116151561197c57600080fd5b6109df816128af565b600080600060405160200180807f6d61785065725478000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b600080600060405160200180807f6761735072696365000000000000000000000000000000000000000000000000815250600801905060405160208183030381529060405260405180828051906020019080838360208310610c575780518252601f199092019160209182019101610c38565b6000806060600080611a7c8a61296d565b1515611a8757600080fd5b85600160a060020a0316638d0680436040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611ac557600080fd5b505af1158015611ad9573d6000803e3d6000fd5b505050506040513d6020811015611aef57600080fd5b50518951909550851115611b0257600080fd5b611b0b8a612981565b935084604051908082528060200260200182016040528015611b37578160200160208202803883390190505b509250600091505b84821015611ccc576001848a84815181101515611b5857fe5b906020019060200201518a85815181101515611b7057fe5b906020019060200201518a86815181101515611b8857fe5b60209081029091018101516040805160008082528185018084529790975260ff9095168582015260608501939093526080840152905160a0808401949293601f19830193908390039091019190865af1158015611be9573d6000803e3d6000fd5b50505060206040510351905085600160a060020a031663facd743b826040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015611c5057600080fd5b505af1158015611c64573d6000803e3d6000fd5b505050506040513d6020811015611c7a57600080fd5b50511515611c8757600080fd5b611c918382612b46565b15611c9b57600080fd5b808383815181101515611caa57fe5b600160a060020a03909216602092830290910190910152600190910190611b3f565b50505050505050505050565b600080600080611ce78561296d565b1515611cf257600080fd5b600160a060020a0360148601511693506034850151925060548501519150606885015190509193509193565b80600460008460405160200180807f72656c617965644d657373616765730000000000000000000000000000000000815250600f0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310611da25780518252601f199092019160209182019101611d83565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff1916941515949094179093555050505050565b600080611dfd8484612b9f565b1515611efe57611e0b610dad565b9050600160a060020a0381161515611eaa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f66616c6c6261636b20726563697069656e7420776173206e6f7420617373696760448201527f6e65640000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611eb48184612b9f565b5080600160a060020a031684600160a060020a03167f4b186bbb80392b9b4a5cdf5f78a4f6ecdb8da0082f37d2cf24a6885e9f61fbbe60405160405180910390a360019150611f03565b600191505b5092915050565b600160a060020a0381161515611f1f57600080fd5b806002600060405160200180807f66616c6c6261636b526563697069656e7400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b60208310611f935780518252601f199092019160209182019101611f74565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03959095169490941790935550505050565b6000612006610a9f565b1561201057600080fd5b600160a060020a038a161580159061202c575061202c8a612c80565b151561203757600080fd5b87151561204357600080fd5b6000871161205057600080fd5b84841061205c57600080fd5b600160a060020a038316151561207157600080fd5b61271082106120e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c6964206665652070657263656e7400000000000000000000000000604482015290519081900360640190fd5b896002600060405160200180807f76616c696461746f72436f6e747261637400000000000000000000000000000081525060110190506040516020818303038152906040526040518082805190602001908083835b602083106121555780518252601f199092019160209182019101612136565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039590951694909417909355506121c691508a9050612c88565b4360008060405160200180807f6465706c6f7965644174426c6f636b0000000000000000000000000000000000815250600f0190506040516020818303038152906040526040518082805190602001908083835b602083106122395780518252601f19909201916020918201910161221a565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000818401528151601a818303018152603a9091019182905280518c949384939182918401908083835b602083106122e35780518252601f1990920191602091820191016122c4565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6761735072696365000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518b949384939182918401908083835b6020831061238d5780518252601f19909201916020918201910161236e565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f6d61785065725478000000000000000000000000000000000000000000000000818401528151600881830301815260289091019182905280518a949384939182918401908083835b602083106124375780518252601f199092019160209182019101612418565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4461696c794c696d6974000000000000000000000000008184015281516013818303018152603390910191829052805189949384939182918401908083835b602083106124e15780518252601f1990920191602091820191016124c2565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f657865637574696f6e4d617850657254780000000000000000000000000000008184015281516011818303018152603190910191829052805188949384939182918401908083835b6020831061258b5780518252601f19909201916020918201910161256c565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912086528581019690965250928301600090812095909555505080517f66656550657263656e7400000000000000000000000000000000000000000000818401528151600a818303018152602a90910191829052805186949384939182918401908083835b602083106126355780518252601f199092019160209182019101612616565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020939093555061267e91508490506128af565b6126886001612d22565b610eaf610a9f565b60008061269b6117a7565b600160a060020a031633146126af57600080fd5b600160a060020a03831615156126c457600080fd5b600160a060020a038416151561271057604051600160a060020a03841690303180156108fc02916000818181858888f1935050505015801561270a573d6000803e3d6000fd5b50612846565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051859350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561277457600080fd5b505af1158015612788573d6000803e3d6000fd5b505050506040513d602081101561279e57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820184905291519293509084169163a9059cbb916044808201926020929091908290030181600087803b15801561280f57600080fd5b505af1158015612823573d6000803e3d6000fd5b505050506040513d602081101561283957600080fd5b5051151561284657600080fd5b50505050565b60008282018381101561103057fe5b60008083151561286e5760009150611f03565b5082820282848281151561287e57fe5b041461103057fe5b600080828481151561289457fe5b04949350505050565b6000828211156128a957fe5b50900390565b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e06128d8611122565b60408051600160a060020a03928316815291841660208301528051918290030190a1806002600060405160200180807f6f776e6572000000000000000000000000000000000000000000000000000000815250600501905060405160208183030381529060405260405180828051906020019080838360208310611f935780518252601f199092019160209182019101611f74565b6000612977612de3565b8251149050919050565b604080518082018252601a81527f19457468657265756d205369676e6564204d6573736167653a0a000000000000602080830191825283518085018552600381527f313034000000000000000000000000000000000000000000000000000000000081830152935183516000959385938593899391019182918083835b60208310612a1d5780518252601f1990920191602091820191016129fe565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b60208310612a655780518252601f199092019160209182019101612a46565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310612aad5780518252601f199092019160209182019101612a8e565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040526040518082805190602001908083835b60208310612b125780518252601f199092019160209182019101612af3565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120979650505050505050565b6000805b8351811015612b955782600160a060020a03168482815181101515612b6b57fe5b90602001906020020151600160a060020a03161415612b8d5760019150611f03565b600101612b4a565b5060009392505050565b600080612baa610679565b600160a060020a031660405180807f7472616e7366657228616464726573732c75696e7432353629000000000000008152506019019050604051809103902060e060020a900485856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a03168152602001828152602001925050506000604051808303816000875af1925050509050801515612c4e5760009150611f03565b3d8015612c625760208114612c6c57600080fd5b6000199150612c78565b60206000803e60005191505b509392505050565b6000903b1190565b600160a060020a03811615801590612ca45750612ca481612c80565b1515612caf57600080fd5b806002600060405160200180807f6572633230746f6b656e00000000000000000000000000000000000000000000815250600a01905060405160208183030381529060405260405180828051906020019080838360208310611f935780518252601f199092019160209182019101611f74565b806004600060405160200180807f6973496e697469616c697a656400000000000000000000000000000000000000815250600d0190506040516020818303038152906040526040518082805190602001908083835b60208310612d965780518252601f199092019160209182019101612d77565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120865285019590955292909201600020805460ff19169415159490941790935550505050565b6068905600a165627a7a7230582053ea074de130c12a3075f5c8c5d625ca406daecb629d00f5d7b83e1ae040982a0029
[codex:496117]
[codex:496117] thinking
[codex:496117] **Analyzing contract bytecode for vulnerabilities**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] from collections import Counter
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] with open(path) as f:
[codex:496117] data=f.read()
[codex:496117] # extract hex after 0x
[codex:496117] m=re.search(r'0x([0-9a-fA-F]+)', data)
[codex:496117] hexstr=m.group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117] # disassemble minimally
[codex:496117] opcnt=Counter()
[codex:496117] positions=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117] op=code[i]
[codex:496117] opcnt[op]+=1
[codex:496117] positions.append((i,op))
[codex:496117] i+=1
[codex:496117] if 0x60 <= op <= 0x7f: # PUSH1..PUSH32
[codex:496117] n=op-0x5f
[codex:496117] i+=n
[codex:496117]
[codex:496117] # map names for key opcodes
[codex:496117] names={0xf4:'DELEGATECALL',0xf2:'CALLCODE',0xff:'SELFDESTRUCT',0xf1:'CALL',0xf0:'CREATE',0xf5:'CREATE2',0x32:'ORIGIN'}
[codex:496117] for op,name in names.items():
[codex:496117] print(name, 'count', opcnt.get(op,0))
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 29ms:
[codex:496117] DELEGATECALL count 0
[codex:496117] CALLCODE count 0
[codex:496117] SELFDESTRUCT count 0
[codex:496117] CALL count 8
[codex:496117] CREATE count 0
[codex:496117] CREATE2 count 0
[codex:496117] ORIGIN count 0
[codex:496117]
[codex:496117] thinking
[codex:496117] **Planning CALL opcode analysis**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] with open(path) as f:
[codex:496117] data=f.read()
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', data).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117]
[codex:496117] # minimal opcode names
[codex:496117] opnames={
[codex:496117] 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:496117] 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:496117] 0x20:'SHA3',
[codex:496117] 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:496117] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',
[codex:496117] 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:496117] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:496117] }
[codex:496117]
[codex:496117] # build list of instructions with pc
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117] op=code[i]
[codex:496117] name=opnames.get(op, 'UNKNOWN')
[codex:496117] arg=b''
[codex:496117] pc=i
[codex:496117] i+=1
[codex:496117] if 0x60 <= op <= 0x7f:
[codex:496117] n=op-0x5f
[codex:496117] arg=code[i:i+n]
[codex:496117] i+=n
[codex:496117] name=f'PUSH{n}'
[codex:496117] instr.append((pc,op,name,arg))
[codex:496117]
[codex:496117] # find CALLs
[codex:496117] call_idxs=[idx for idx,(_,op,_,_) in enumerate(instr) if op==0xf1]
[codex:496117] for idx in call_idxs:
[codex:496117] start=max(0, idx-6)
[codex:496117] end=min(len(instr), idx+6)
[codex:496117] print('--- CALL at pc', instr[idx][0])
[codex:496117] for j in range(start,end):
[codex:496117] pc,op,name,arg=instr[j]
[codex:496117] if name.startswith('PUSH'):
[codex:496117] print(f'{pc:04x}: {name} 0x{arg.hex()}')
[codex:496117] else:
[codex:496117] print(f'{pc:04x}: {name}')
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 28ms:
[codex:496117] --- CALL at pc 4340
[codex:496117] 10ed: PUSH1 0x00
[codex:496117] 10ef: UNKNOWN
[codex:496117] 10f0: REVERT
[codex:496117] 10f1: JUMPDEST
[codex:496117] 10f2: POP
[codex:496117] 10f3: GAS
[codex:496117] 10f4: CALL
[codex:496117] 10f5: ISZERO
[codex:496117] 10f6: UNKNOWN
[codex:496117] 10f7: ISZERO
[codex:496117] 10f8: PUSH2 0x1105
[codex:496117] 10fb: JUMPI
[codex:496117] --- CALL at pc 6856
[codex:496117] 1ac1: PUSH1 0x00
[codex:496117] 1ac3: UNKNOWN
[codex:496117] 1ac4: REVERT
[codex:496117] 1ac5: JUMPDEST
[codex:496117] 1ac6: POP
[codex:496117] 1ac7: GAS
[codex:496117]
[codex:496117] thinking
[codex:496117] **Enhancing disassembler opcode coverage**
[codex:496117]
[codex:496117] I’m reviewing how the disassembler currently misses DUP, SWAP, LOG, and some other opcodes causing unknowns; since many call instructions seem to check return values via a common pattern, I want to clarify if any calls skip that by inspecting those in unknown contexts more closely. To do that, I need to expand the disassembler to decode the missing opcodes so I can interpret those sections fully.
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117]
[codex:496117] opnames={
[codex:496117] 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:496117] 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:496117] 0x20:'SHA3',
[codex:496117] 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:496117] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',
[codex:496117] 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:496117] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:496117] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:496117] }
[codex:496117] # DUP1..DUP16
[codex:496117] for i in range(1,17):
[codex:496117] opnames[0x7f+i]=f'DUP{i}'
[codex:496117] # SWAP1..SWAP16
[codex:496117] for i in range(1,17):
[codex:496117] opnames[0x8f+i]=f'SWAP{i}'
[codex:496117]
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117] op=code[i]; pc=i; i+=1
[codex:496117] name=opnames.get(op, 'UNKNOWN')
[codex:496117] arg=b''
[codex:496117] if 0x60 <= op <= 0x7f:
[codex:496117] n=op-0x5f
[codex:496117] arg=code[i:i+n]
[codex:496117] i+=n
[codex:496117] name=f'PUSH{n}'
[codex:496117] instr.append((pc,op,name,arg))
[codex:496117]
[codex:496117] # find CALLs and print extended context
[codex:496117] call_idxs=[idx for idx,(_,op,_,_) in enumerate(instr) if op==0xf1]
[codex:496117] for idx in call_idxs:
[codex:496117] start=max(0, idx-10)
[codex:496117] end=min(len(instr), idx+10)
[codex:496117] print('--- CALL at pc', instr[idx][0])
[codex:496117] for j in range(start,end):
[codex:496117] pc,op,name,arg=instr[j]
[codex:496117] if name.startswith('PUSH'):
[codex:496117] print(f'{pc:04x}: {name} 0x{arg.hex()}')
[codex:496117] else:
[codex:496117] print(f'{pc:04x}: {name}')
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 29ms:
[codex:496117] --- CALL at pc 4340
[codex:496117] 10e7: DUP1
[codex:496117] 10e8: ISZERO
[codex:496117] 10e9: PUSH2 0x10f1
[codex:496117] 10ec: JUMPI
[codex:496117] 10ed: PUSH1 0x00
[codex:496117] 10ef: DUP1
[codex:496117] 10f0: REVERT
[codex:496117] 10f1: JUMPDEST
[codex:496117] 10f2: POP
[codex:496117] 10f3: GAS
[codex:496117] 10f4: CALL
[codex:496117] 10f5: ISZERO
[codex:496117] 10f6: DUP1
[codex:496117] 10f7: ISZERO
[codex:496117] 10f8: PUSH2 0x1105
[codex:496117] 10fb: JUMPI
[codex:496117] 10fc: RETURNDATASIZE
[codex:496117] 10fd: PUSH1 0x00
[codex:496117] 10ff: DUP1
[codex:496117]
[codex:496117] thinking
[codex:496117] **Analyzing unprotected initializer risk**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117]
[codex:496117] # simple disasm
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117] op=code[i]; pc=i; i+=1
[codex:496117] arg=b''
[codex:496117] if 0x60 <= op <= 0x7f:
[codex:496117] n=op-0x5f
[codex:496117] arg=code[i:i+n]
[codex:496117] i+=n
[codex:496117] instr.append((pc,op,arg))
[codex:496117]
[codex:496117] # find selector patterns in first part (until first JUMPDEST after dispatcher?)
[codex:496117] # We'll scan first 0x300 bytes.
[codex:496117] selectors=[]
[codex:496117] for idx,(pc,op,arg) in enumerate(instr):
[codex:496117] if pc>0x300: break
[codex:496117] if op==0x63: # PUSH4
[codex:496117] sel=arg.hex()
[codex:496117] # look ahead for EQ then PUSH2 dest
[codex:496117] if idx+2 < len(instr):
[codex:496117] # pattern: PUSH4, EQ(0x14), PUSH2
[codex:496117] # sometimes DUP1 etc; we check next few instructions
[codex:496117] for j in range(idx+1, idx+6):
[codex:496117] if j>=len(instr): break
[codex:496117] if instr[j][1]==0x14: # EQ
[codex:496117] # find next PUSH2
[codex:496117] for k in range(j+1, j+6):
[codex:496117] if k>=len(instr): break
[codex:496117] if instr[k][1]==0x61: # PUSH2
[codex:496117] dest=int.from_bytes(instr[k][2], 'big')
[codex:496117] selectors.append((sel, dest, pc))
[codex:496117] break
[codex:496117] break
[codex:496117]
[codex:496117] # print unique selectors
[codex:496117] seen=set()
[codex:496117] for sel,dest,pc in selectors:
[codex:496117] if (sel,dest) in seen: continue
[codex:496117] seen.add((sel,dest))
[codex:496117] print(f'selector 0x{sel} -> dest 0x{dest:04x} (pc {pc:04x})')
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 28ms:
[codex:496117] selector 0x1dcea427 -> dest 0x01ce (pc 001c)
[codex:496117] selector 0x21d800ec -> dest 0x01ff (pc 0028)
[codex:496117] selector 0x232a2c1d -> dest 0x022b (pc 0033)
[codex:496117] selector 0x2b92490e -> dest 0x0271 (pc 003e)
[codex:496117] selector 0x2bd0bb05 -> dest 0x0292 (pc 0049)
[codex:496117] selector 0x392e53cd -> dest 0x02bc (pc 0054)
[codex:496117] selector 0x3dd95d1b -> dest 0x02d1 (pc 005f)
[codex:496117] selector 0x3e6968b6 -> dest 0x02e9 (pc 006a)
[codex:496117] selector 0x3f0a9f65 -> dest 0x02fe (pc 0075)
[codex:496117] selector 0x437764df -> dest 0x0313 (pc 0080)
[codex:496117] selector 0x43b37dd3 -> dest 0x035d (pc 008b)
[codex:496117] selector 0x452f3ce0 -> dest 0x0372 (pc 0096)
[codex:496117] selector 0x4fb3fef7 -> dest 0x0387 (pc 00a1)
[codex:496117] selector 0x51c764e0 -> dest 0x039f (pc 00ac)
[codex:496117] selector 0x67eeba0c -> dest 0x03e4 (pc 00b7)
[codex:496117] selector 0x69ffa08a -> dest 0x03f9 (pc 00c2)
[codex:496117] selector 0x7ce3489b -> dest 0x02d1 (pc 00cd)
[codex:496117] selector 0x7fd6f15c -> dest 0x0420 (pc 00d8)
[codex:496117] selector 0x879ce676 -> dest 0x0435 (pc 00e3)
[codex:496117] selector 0x8aa1949a -> dest 0x044d (pc 00ee)
[codex:496117]
[codex:496117] thinking
[codex:496117] **Analyzing potential initializer functions**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117]
[codex:496117] # disasm helper
[codex:496117] opnames={
[codex:496117] 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:496117] 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:496117] 0x20:'SHA3',
[codex:496117] 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:496117] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',
[codex:496117] 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:496117] 0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
[codex:496117] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT',
[codex:496117] }
[codex:496117] for i in range(1,17):
[codex:496117] opnames[0x7f+i]=f'DUP{i}'
[codex:496117] for i in range(1,17):
[codex:496117] opnames[0x8f+i]=f'SWAP{i}'
[codex:496117]
[codex:496117] # build instruction list with pc mapping
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117] pc=i
[codex:496117] op=code[i]; i+=1
[codex:496117] arg=b''
[codex:496117] if 0x60 <= op <= 0x7f:
[codex:496117] n=op-0x5f
[codex:496117] arg=code[i:i+n]; i+=n
[codex:496117] name=opnames.get(op,'UNKNOWN')
[codex:496117] if 0x60 <= op <= 0x7f:
[codex:496117] name=f'PUSH{len(arg)}'
[codex:496117] instr.append((pc,op,name,arg))
[codex:496117]
[codex:496117] # map pc to index
[codex:496117] pc_to_idx={pc:idx for idx,(pc,_,_,_) in enumerate(instr)}
[codex:496117]
[codex:496117] # dump function at dest
[codex:496117] for dest in [0x0503,0x04a1,0x04ee,0x05fe]:
[codex:496117] print('\\nFunction at 0x%04x'%dest)
[codex:496117] idx=pc_to_idx.get(dest)
[codex:496117] if idx is None:
[codex:496117] print('not found'); continue
[codex:496117] for j in range(idx, min(idx+60, len(instr))):
[codex:496117] pc,op,name,arg=instr[j]
[codex:496117] if name.startswith('PUSH'):
[codex:496117] print(f'{pc:04x}: {name} 0x{arg.hex()}')
[codex:496117] else:
[codex:496117] print(f'{pc:04x}: {name}')
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 31ms:
[codex:496117]
[codex:496117] Function at 0x0503
[codex:496117] 0503: JUMPDEST
[codex:496117] 0504: CALLVALUE
[codex:496117] 0505: DUP1
[codex:496117] 0506: ISZERO
[codex:496117] 0507: PUSH2 0x050f
[codex:496117] 050a: JUMPI
[codex:496117] 050b: PUSH1 0x00
[codex:496117] 050d: DUP1
[codex:496117] 050e: REVERT
[codex:496117] 050f: JUMPDEST
[codex:496117] 0510: POP
[codex:496117] 0511: PUSH2 0x0518
[codex:496117] 0514: PUSH2 0x12a8
[codex:496117] 0517: JUMP
[codex:496117] 0518: JUMPDEST
[codex:496117] 0519: PUSH1 0x40
[codex:496117] 051b: DUP1
[codex:496117] 051c: MLOAD
[codex:496117]
[codex:496117] thinking
[codex:496117] **Analyzing function dispatch and return patterns**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117]
[codex:496117] # disasm helper
[codex:496117] opnames={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:496117] for i in range(1,17): opnames[0x7f+i]=f'DUP{i}'
[codex:496117] for i in range(1,17): opnames[0x8f+i]=f'SWAP{i}'
[codex:496117]
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117] pc=i; op=code[i]; i+=1; arg=b''
[codex:496117] if 0x60 <= op <= 0x7f:
[codex:496117] n=op-0x5f; arg=code[i:i+n]; i+=n
[codex:496117] name=opnames.get(op,'UNKNOWN')
[codex:496117] if 0x60 <= op <= 0x7f: name=f'PUSH{len(arg)}'
[codex:496117] instr.append((pc,op,name,arg))
[codex:496117]
[codex:496117] pc_to_idx={pc:idx for idx,(pc,_,_,_) in enumerate(instr)}
[codex:496117]
[codex:496117] def dump(dest, count=40):
[codex:496117] idx=pc_to_idx[dest]
[codex:496117] for j in range(idx, idx+count):
[codex:496117] pc,op,name,arg=instr[j]
[codex:496117] if name.startswith('PUSH'):
[codex:496117] print(f'{pc:04x}: {name} 0x{arg.hex()}')
[codex:496117] else:
[codex:496117] print(f'{pc:04x}: {name}')
[codex:496117]
[codex:496117] print('Function at 0x0217')
[codex:496117] dump(0x0217, 30)
[codex:496117] print('\\nFunction at 0x026f')
[codex:496117] dump(0x026f, 20)
[codex:496117] print('\\nFunction at 0x02aa')
[codex:496117] dump(0x02aa, 20)
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 34ms:
[codex:496117] Function at 0x0217
[codex:496117] 0217: JUMPDEST
[codex:496117] 0218: PUSH1 0x40
[codex:496117] 021a: DUP1
[codex:496117] 021b: MLOAD
[codex:496117] 021c: SWAP2
[codex:496117] 021d: ISZERO
[codex:496117] 021e: ISZERO
[codex:496117] 021f: DUP3
[codex:496117] 0220: MSTORE
[codex:496117] 0221: MLOAD
[codex:496117] 0222: SWAP1
[codex:496117] 0223: DUP2
[codex:496117] 0224: SWAP1
[codex:496117] 0225: SUB
[codex:496117] 0226: PUSH1 0x20
[codex:496117] 0228: ADD
[codex:496117] 0229: SWAP1
[codex:496117] 022a: RETURN
[codex:496117] 022b: JUMPDEST
[codex:496117]
[codex:496117] thinking
[codex:496117] **Analyzing return wrappers and initializer functions**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117]
[codex:496117] # disasm to get push2 values and following jump
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117] pc=i; op=code[i]; i+=1; arg=b''
[codex:496117] if 0x60 <= op <= 0x7f:
[codex:496117] n=op-0x5f; arg=code[i:i+n]; i+=n
[codex:496117] instr.append((pc,op,arg))
[codex:496117]
[codex:496117] # find occurrences of PUSH2 0x2006 followed by JUMP
[codex:496117] for idx,(pc,op,arg) in enumerate(instr[:-1]):
[codex:496117] if op==0x61 and arg==b'\\x20\\x06':
[codex:496117] # look ahead a couple instructions for JUMP
[codex:496117] seq=instr[idx:idx+4]
[codex:496117] if any(x[1]==0x56 for x in seq):
[codex:496117] print(f'PUSH2 0x2006 at pc {pc:04x}, followed by', [(hex(p),op) for p,op,_ in seq])
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 27ms:
[codex:496117] PUSH2 0x2006 at pc 1fff, followed by [('0x1fff', 97), ('0x2002', 97), ('0x2005', 86), ('0x2006', 91)]
[codex:496117]
[codex:496117] thinking
[codex:496117] **Analyzing jump targets and function calls**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117]
[codex:496117] instr=[]
[codex:496117] i=0
[codex:496117] while i < len(code):
[codex:496117] pc=i; op=code[i]; i+=1; arg=b''
[codex:496117] if 0x60 <= op <= 0x7f:
[codex:496117] n=op-0x5f; arg=code[i:i+n]; i+=n
[codex:496117] instr.append((pc,op,arg))
[codex:496117]
[codex:496117] # find push2 0x1fff
[codex:496117] for idx,(pc,op,arg) in enumerate(instr[:-1]):
[codex:496117] if op==0x61 and arg==b'\\x1f\\xff':
[codex:496117] seq=instr[idx:idx+4]
[codex:496117] if any(x[1]==0x56 for x in seq):
[codex:496117] print(f'PUSH2 0x1fff at pc {pc:04x}, seq', [(hex(p),op) for p,op,_ in seq])
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 29ms:
[codex:496117]
[codex:496117]
[codex:496117] thinking
[codex:496117] **Analyzing jump destinations near 0x1fff**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117]
[codex:496117] # disasm helper
[codex:496117] opnames={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:496117] for i in range(1,17): opnames[0x7f+i]=f'DUP{i}'
[codex:496117] for i in range(1,17): opnames[0x8f+i]=f'SWAP{i}'
[codex:496117]
[codex:496117] # disasm to list
[codex:496117] instr=[]; i=0
[codex:496117] while i < len(code):
[codex:496117] pc=i; op=code[i]; i+=1; arg=b''
[codex:496117] if 0x60 <= op <= 0x7f:
[codex:496117] n=op-0x5f; arg=code[i:i+n]; i+=n
[codex:496117] name=opnames.get(op,'UNKNOWN')
[codex:496117] if 0x60 <= op <= 0x7f: name=f'PUSH{len(arg)}'
[codex:496117] instr.append((pc,op,name,arg))
[codex:496117]
[codex:496117] # dump around pc 0x1fe0
[codex:496117] start=0x1fe0; end=0x2050
[codex:496117] # find index for start
[codex:496117] pc_to_idx={pc:idx for idx,(pc,_,_,_) in enumerate(instr)}
[codex:496117] idx=pc_to_idx.get(start)
[codex:496117] if idx is None:
[codex:496117] # find closest
[codex:496117] pcs=[pc for pc,_,_,_ in instr]
[codex:496117] idx=max(i for i,pc in enumerate(pcs) if pc<=start)
[codex:496117]
[codex:496117] for j in range(idx, len(instr)):
[codex:496117] pc,op,name,arg=instr[j]
[codex:496117] if pc>end: break
[codex:496117] if name.startswith('PUSH'):
[codex:496117] print(f'{pc:04x}: {name} 0x{arg.hex()}')
[codex:496117] else:
[codex:496117] print(f'{pc:04x}: {name}')
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 35ms:
[codex:496117] 1fcd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
[codex:496117] 1fe2: NOT
[codex:496117] 1fe3: AND
[codex:496117] 1fe4: PUSH1 0x01
[codex:496117] 1fe6: PUSH1 0xa0
[codex:496117] 1fe8: PUSH1 0x02
[codex:496117] 1fea: EXP
[codex:496117] 1feb: SUB
[codex:496117] 1fec: SWAP6
[codex:496117] 1fed: SWAP1
[codex:496117] 1fee: SWAP6
[codex:496117] 1fef: AND
[codex:496117] 1ff0: SWAP5
[codex:496117] 1ff1: SWAP1
[codex:496117] 1ff2: SWAP5
[codex:496117] 1ff3: OR
[codex:496117] 1ff4: SWAP1
[codex:496117] 1ff5: SWAP4
[codex:496117] 1ff6: SSTORE
[codex:496117] 1ff7: POP
[codex:496117]
[codex:496117] thinking
[codex:496117] **Analyzing initializer jump destinations**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117]
[codex:496117] instr=[]; i=0
[codex:496117] while i < len(code):
[codex:496117] pc=i; op=code[i]; i+=1; arg=b''
[codex:496117] if 0x60 <= op <= 0x7f:
[codex:496117] n=op-0x5f; arg=code[i:i+n]; i+=n
[codex:496117] instr.append((pc,op,arg))
[codex:496117]
[codex:496117] for idx,(pc,op,arg) in enumerate(instr[:-1]):
[codex:496117] if op==0x61 and arg==b'\\x1f\\xfc':
[codex:496117] seq=instr[idx:idx+4]
[codex:496117] if any(x[1]==0x56 for x in seq):
[codex:496117] print(f'PUSH2 0x1ffc at pc {pc:04x}, seq', [(hex(p),op) for p,op,_ in seq])
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 34ms:
[codex:496117] PUSH2 0x1ffc at pc 0eab, seq [('0xeab', 97), ('0xeae', 86), ('0xeaf', 91), ('0xeb0', 154)]
[codex:496117]
[codex:496117] thinking
[codex:496117] **Analyzing function call relationships**
[codex:496117] exec
[codex:496117] /bin/bash -lc "python - <<'PY'
[codex:496117] import re
[codex:496117] path='/tmp/codex-multi-e4t8z5gl/BYTECODE_BUNDLE.txt'
[codex:496117] hexstr=re.search(r'0x([0-9a-fA-F]+)', open(path).read()).group(1)
[codex:496117] code=bytes.fromhex(hexstr)
[codex:496117]
[codex:496117] # disasm helper
[codex:496117] opnames={0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',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',0x20:'SHA3',0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'}
[codex:496117] for i in range(1,17): opnames[0x7f+i]=f'DUP{i}'
[codex:496117] for i in range(1,17): opnames[0x8f+i]=f'SWAP{i}'
[codex:496117]
[codex:496117] instr=[]; i=0
[codex:496117] while i < len(code):
[codex:496117] pc=i; op=code[i]; i+=1; arg=b''
[codex:496117] if 0x60 <= op <= 0x7f:
[codex:496117] n=op-0x5f; arg=code[i:i+n]; i+=n
[codex:496117] name=opnames.get(op,'UNKNOWN')
[codex:496117] if 0x60 <= op <= 0x7f: name=f'PUSH{len(arg)}'
[codex:496117] instr.append((pc,op,name,arg))
[codex:496117]
[codex:496117] # dump around pc 0x0e90-0x0ec0
[codex:496117] start=0x0e90; end=0x0ec0
[codex:496117] for pc,op,name,arg in instr:
[codex:496117] if pc<start: continue
[codex:496117] if pc>end: break
[codex:496117] if name.startswith('PUSH'):
[codex:496117] print(f'{pc:04x}: {name} 0x{arg.hex()}')
[codex:496117] else:
[codex:496117] print(f'{pc:04x}: {name}')
[codex:496117] PY" in /tmp/codex-multi-e4t8z5gl succeeded in 31ms:
[codex:496117] 0e90: SWAP2
[codex:496117] 0e91: PUSH1 0x20
[codex:496117] 0e93: SWAP2
[codex:496117] 0e94: DUP3
[codex:496117] 0e95: ADD
[codex:496117] 0e96: SWAP2
[codex:496117] 0e97: ADD
[codex:496117] 0e98: PUSH2 0x0a3f
[codex:496117] 0e9b: JUMP
[codex:496117] 0e9c: JUMPDEST
[codex:496117] 0e9d: PUSH1 0x00
[codex:496117] 0e9f: PUSH2 0x0eaf
[codex:496117] 0ea2: DUP11
[codex:496117] 0ea3: DUP11
[codex:496117] 0ea4: DUP11
[codex:496117] 0ea5: DUP11
[codex:496117] 0ea6: DUP11
[codex:496117] 0ea7: DUP11
[codex:496117] 0ea8: DUP11
[codex:496117] 0ea9: DUP11
[codex:496117]
[codex:496117] thinking
[codex:496117] **Analyzing unprotected initializer vulnerability**
[codex:496117] codex
[codex:496117] {"no_findings":false,"summary":"Identified one access-control issue: the initializer is publicly callable and only gated by an isInitialized flag.","findings":[{"severity":"medium","category":"auth","title":"Initializer is publicly callable (only guarded by isInitialized flag)","exploit_scenario":"If the contract is deployed but not initialized in the same transaction, any external account can call the initializer once to set critical parameters (owner/validator/token/limits) and take administrative control, potentially misconfiguring or redirecting bridge behavior.","recommendation":"Ensure initialization is executed during deployment (same tx) or add explicit access control to the initializer. For proxy patterns, call the initializer immediately and consider disabling initializers on the implementation contract.","evidence":"Selector 0x51c764e0 routes to internal 0x0e9c which jumps to 0x1ffc. At 0x1ffc the code only checks isInitialized via 0x0a9f (ISZERO/JUMPI) and proceeds without any CALLER/owner check before setting storage, including the \"isInitialized\" key (see the \"isInitialized\" storage write near the end of the bytecode).","locations":["BYTECODE_BUNDLE.txt:5"]}]}
[codex:496117] tokens used
[codex:496117] 86,873
[codex:496117] {"no_findings":false,"summary":"Identified one access-control issue: the initializer is publicly callable and only gated by an isInitialized flag.","findings":[{"severity":"medium","category":"auth","title":"Initializer is publicly callable (only guarded by isInitialized flag)","exploit_scenario":"If the contract is deployed but not initialized in the same transaction, any external account can call the initializer once to set critical parameters (owner/validator/token/limits) and take administrative control, potentially misconfiguring or redirecting bridge behavior.","recommendation":"Ensure initialization is executed during deployment (same tx) or add explicit access control to the initializer. For proxy patterns, call the initializer immediately and consider disabling initializers on the implementation contract.","evidence":"Selector 0x51c764e0 routes to internal 0x0e9c which jumps to 0x1ffc. At 0x1ffc the code only checks isInitialized via 0x0a9f (ISZERO/JUMPI) and proceeds without any CALLER/owner check before setting storage, including the \"isInitialized\" key (see the \"isInitialized\" storage write near the end of the bytecode).","locations":["BYTECODE_BUNDLE.txt:5"]}]}
{
"codex": {
"ran_at": "2025-12-30T18:38:41.243636+00:00",
"returncode": 0
},
"summary": "Identified one access-control issue: the initializer is publicly callable and only gated by an isInitialized flag.",
"raw_final": {
"summary": "Identified one access-control issue: the initializer is publicly callable and only gated by an isInitialized flag.",
"findings": [
{
"title": "Initializer is publicly callable (only guarded by isInitialized flag)",
"category": "auth",
"evidence": "Selector 0x51c764e0 routes to internal 0x0e9c which jumps to 0x1ffc. At 0x1ffc the code only checks isInitialized via 0x0a9f (ISZERO/JUMPI) and proceeds without any CALLER/owner check before setting storage, including the \"isInitialized\" key (see the \"isInitialized\" storage write near the end of the bytecode).",
"severity": "medium",
"locations": [
"BYTECODE_BUNDLE.txt:5"
],
"recommendation": "Ensure initialization is executed during deployment (same tx) or add explicit access control to the initializer. For proxy patterns, call the initializer immediately and consider disabling initializers on the implementation contract.",
"exploit_scenario": "If the contract is deployed but not initialized in the same transaction, any external account can call the initializer once to set critical parameters (owner/validator/token/limits) and take administrative control, potentially misconfiguring or redirecting bridge behavior."
}
],
"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 0x01c9 0000000c: JUMPI 0000000d: PUSH4 0xffffffff 00000012: PUSH1 0xe0 00000014: PUSH1 0x02 00000016: EXP 00000017: PUSH1 0x00 00000019: CALLDATALOAD 0000001a: DIV 0000001b: AND 0000001c: PUSH4 0x1dcea427 00000021: DUP2 00000022: EQ 00000023: PUSH2 0x01ce 00000026: JUMPI 00000027: DUP1 00000028: PUSH4 0x21d800ec 0000002d: EQ 0000002e: PUSH2 0x01ff 00000031: JUMPI 00000032: DUP1 00000033: PUSH4 0x232a2c1d 00000038: EQ 00000039: PUSH2 0x022b 0000003c: JUMPI 0000003d: DUP1 0000003e: PUSH4 0x2b92490e 00000043: EQ 00000044: PUSH2 0x0271 00000047: JUMPI 00000048: DUP1 00000049: PUSH4 0x2bd0bb05 0000004e: EQ 0000004f: PUSH2 0x0292 00000052: JUMPI 00000053: DUP1 00000054: PUSH4 0x392e53cd 00000059: EQ 0000005a: PUSH2 0x02bc 0000005d: JUMPI 0000005e: DUP1 0000005f: PUSH4 0x3dd95d1b 00000064: EQ 00000065: PUSH2 0x02d1 00000068: JUMPI 00000069: DUP1 0000006a: PUSH4 0x3e6968b6 0000006f: EQ 00000070: PUSH2 0x02e9 00000073: JUMPI 00000074: DUP1 00000075: PUSH4 0x3f0a9f65 0000007a: EQ 0000007b: PUSH2 0x02fe 0000007e: JUMPI 0000007f: DUP1 00000080: PUSH4 0x437764df 00000085: EQ 00000086: PUSH2 0x0313 00000089: JUMPI 0000008a: DUP1 0000008b: PUSH4 0x43b37dd3 00000090: EQ 00000091: PUSH2 0x035d 00000094: JUMPI 00000095: DUP1 00000096: PUSH4 0x452f3ce0 0000009b: EQ 0000009c: PUSH2 0x0372 0000009f: JUMPI 000000a0: DUP1 000000a1: PUSH4 0x4fb3fef7 000000a6: EQ 000000a7: PUSH2 0x0387 000000aa: JUMPI 000000ab: DUP1 000000ac: PUSH4 0x51c764e0 000000b1: EQ 000000b2: PUSH2 0x039f 000000b5: JUMPI 000000b6: DUP1 000000b7: PUSH4 0x67eeba0c 000000bc: EQ 000000bd: PUSH2 0x03e4 000000c0: JUMPI 000000c1: DUP1 000000c2: PUSH4 0x69ffa08a 000000c7: EQ 000000c8: PUSH2 0x03f9 000000cb: JUMPI 000000cc: DUP1 000000cd: PUSH4 0x7ce3489b 000000d2: EQ 000000d3: PUSH2 0x02d1 000000d6: JUMPI 000000d7: DUP1 000000d8: PUSH4 0x7fd6f15c 000000dd: EQ 000000de: PUSH2 0x0420 000000e1: JUMPI 000000e2: DUP1 000000e3: PUSH4 0x879ce676 000000e8: EQ 000000e9: PUSH2 0x0435 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0x8aa1949a 000000f3: EQ 000000f4: PUSH2 0x044d 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0x8d068043 000000fe: EQ 000000ff: PUSH2 0x0462 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0x8da5cb5b 00000109: EQ 0000010a: PUSH2 0x0477 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x99439089 00000114: EQ 00000115: PUSH2 0x048c 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x997b8c2d 0000011f: EQ 00000120: PUSH2 0x04a1 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x9a454b99 0000012a: EQ 0000012b: PUSH2 0x04ee 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0x9cb7595a 00000135: EQ 00000136: PUSH2 0x0503 00000139: JUMPI 0000013a: DUP1 0000013b: PUSH4 0xa2a6ca27 00000140: EQ 00000141: PUSH2 0x0544 00000144: JUMPI 00000145: DUP1 00000146: PUSH4 0xacf5c689 0000014b: EQ 0000014c: PUSH2 0x055c 0000014f: JUMPI 00000150: DUP1 00000151: PUSH4 0xb20d30a9 00000156: EQ 00000157: PUSH2 0x0574 0000015a: JUMPI 0000015b: DUP1 0000015c: PUSH4 0xbf1fe420 00000161: EQ 00000162: PUSH2 0x058c 00000165: JUMPI 00000166: DUP1 00000167: PUSH4 0xc0567656 0000016c: EQ 0000016d: PUSH2 0x05a4 00000170: JUMPI 00000171: DUP1 00000172: PUSH4 0xc6f6f216 00000177: EQ 00000178: PUSH2 0x05bc 0000017b: JUMPI 0000017c: DUP1 0000017d: PUSH4 0xdf0ad3de 00000182: EQ 00000183: PUSH2 0x05d4 00000186: JUMPI 00000187: DUP1 00000188: PUSH4 0xdf25f3f0 0000018d: EQ 0000018e: PUSH2 0x05e9 00000191: JUMPI 00000192: DUP1 00000193: PUSH4 0xea9f4968 00000198: EQ 00000199: PUSH2 0x05fe 0000019c: JUMPI 0000019d: DUP1 0000019e: PUSH4 0xf20151e1 000001a3: EQ 000001a4: PUSH2 0x0616 000001a7: JUMPI 000001a8: DUP1 000001a9: PUSH4 0xf2fde38b 000001ae: EQ 000001af: PUSH2 0x062e 000001b2: JUMPI 000001b3: DUP1 000001b4: PUSH4 0xf968adbe 000001b9: EQ 000001ba: PUSH2 0x064f 000001bd: JUMPI 000001be: DUP1 000001bf: PUSH4 0xfe173b97 000001c4: EQ 000001c5: PUSH2 0x0664 000001c8: JUMPI 000001c9: JUMPDEST 000001ca: PUSH1 0x00 000001cc: DUP1 000001cd: REVERT 000001ce: JUMPDEST 000001cf: CALLVALUE 000001d0: DUP1 000001d1: ISZERO 000001d2: PUSH2 0x01da 000001d5: JUMPI 000001d6: PUSH1 0x00 000001d8: DUP1 000001d9: REVERT 000001da: JUMPDEST 000001db: POP 000001dc: PUSH2 0x01e3 000001df: PUSH2 0x0679 000001e2: JUMP 000001e3: JUMPDEST 000001e4: PUSH1 0x40 000001e6: DUP1 000001e7: MLOAD 000001e8: PUSH1 0x01 000001ea: PUSH1 0xa0 000001ec: PUSH1 0x02 000001ee: EXP 000001ef: SUB 000001f0: SWAP1 000001f1: SWAP3 000001f2: AND 000001f3: DUP3 000001f4: MSTORE 000001f5: MLOAD 000001f6: SWAP1 000001f7: DUP2 000001f8: SWAP1 000001f9: SUB 000001fa: PUSH1 0x20 000001fc: ADD 000001fd: SWAP1 000001fe: RETURN 000001ff: JUMPDEST 00000200: CALLVALUE 00000201: DUP1 00000202: ISZERO 00000203: PUSH2 0x020b 00000206: JUMPI 00000207: PUSH1 0x00 00000209: DUP1 0000020a: REVERT 0000020b: JUMPDEST 0000020c: POP 0000020d: PUSH2 0x0217 00000210: PUSH1 0x04 00000212: CALLDATALOAD 00000213: PUSH2 0x0737 00000216: JUMP 00000217: JUMPDEST 00000218: PUSH1 0x40 0000021a: DUP1 0000021b: MLOAD 0000021c: SWAP2 0000021d: ISZERO 0000021e: ISZERO 0000021f: DUP3 00000220: MSTORE 00000221: MLOAD 00000222: SWAP1 00000223: DUP2 00000224: SWAP1 00000225: SUB 00000226: PUSH1 0x20 00000228: ADD 00000229: SWAP1 0000022a: RETURN 0000022b: JUMPDEST 0000022c: CALLVALUE 0000022d: DUP1 0000022e: ISZERO 0000022f: PUSH2 0x0237 00000232: JUMPI 00000233: PUSH1 0x00 00000235: DUP1 00000236: REVERT 00000237: JUMPDEST 00000238: POP 00000239: PUSH2 0x026f 0000023c: PUSH1 0x24 0000023e: PUSH1 0x04 00000240: DUP1 00000241: CALLDATALOAD 00000242: DUP3 00000243: DUP2 00000244: ADD 00000245: SWAP3 00000246: SWAP1 00000247: DUP3 00000248: ADD 00000249: CALLDATALOAD 0000024a: SWAP2 0000024b: DUP2 0000024c: CALLDATALOAD 0000024d: DUP1 0000024e: DUP4 0000024f: ADD 00000250: SWAP3 00000251: SWAP1 00000252: DUP3 00000253: ADD 00000254: CALLDATALOAD 00000255: SWAP2 00000256: PUSH1 0x44 00000258: CALLDATALOAD 00000259: DUP1 0000025a: DUP4 0000025b: ADD 0000025c: SWAP3 0000025d: SWAP1 0000025e: DUP3 0000025f: ADD 00000260: CALLDATALOAD 00000261: SWAP2 00000262: PUSH1 0x64 00000264: CALLDATALOAD 00000265: SWAP2 00000266: DUP3 00000267: ADD 00000268: SWAP2 00000269: ADD 0000026a: CALLDATALOAD 0000026b: PUSH2 0x0800 0000026e: JUMP 0000026f: JUMPDEST 00000270: STOP 00000271: JUMPDEST 00000272: CALLVALUE 00000273: DUP1 00000274: ISZERO 00000275: PUSH2 0x027d 00000278: JUMPI 00000279: PUSH1 0x00 0000027b: DUP1 0000027c: REVERT 0000027d: JUMPDEST 0000027e: POP 0000027f: PUSH2 0x026f 00000282: PUSH1 0x01 00000284: PUSH1 0xa0 00000286: PUSH1 0x02 00000288: EXP 00000289: SUB 0000028a: PUSH1 0x04 0000028c: CALLDATALOAD 0000028d: AND 0000028e: PUSH2 0x09ba 00000291: JUMP 00000292: JUMPDEST 00000293: CALLVALUE 00000294: DUP1 00000295: ISZERO 00000296: PUSH2 0x029e 00000299: JUMPI 0000029a: PUSH1 0x00 0000029c: DUP1 0000029d: REVERT 0000029e: JUMPDEST 0000029f: POP 000002a0: PUSH2 0x02aa 000002a3: PUSH1 0x04 000002a5: CALLDATALOAD 000002a6: PUSH2 0x09e2 000002a9: JUMP 000002aa: JUMPDEST 000002ab: PUSH1 0x40 000002ad: DUP1 000002ae: MLOAD 000002af: SWAP2 000002b0: DUP3 000002b1: MSTORE 000002b2: MLOAD 000002b3: SWAP1 000002b4: DUP2 000002b5: SWAP1 000002b6: SUB 000002b7: PUSH1 0x20 000002b9: ADD 000002ba: SWAP1 000002bb: RETURN 000002bc: JUMPDEST 000002bd: CALLVALUE 000002be: DUP1 000002bf: ISZERO 000002c0: PUSH2 0x02c8 000002c3: JUMPI 000002c4: PUSH1 0x00 000002c6: DUP1 000002c7: REVERT 000002c8: JUMPDEST 000002c9: POP 000002ca: PUSH2 0x0217 000002cd: PUSH2 0x0a9f 000002d0: JUMP 000002d1: JUMPDEST 000002d2: CALLVALUE 000002d3: DUP1 000002d4: ISZERO 000002d5: PUSH2 0x02dd 000002d8: JUMPI 000002d9: PUSH1 0x00 000002db: DUP1 000002dc: REVERT 000002dd: JUMPDEST 000002de: POP 000002df: PUSH2 0x026f 000002e2: PUSH1 0x04 000002e4: CALLDATALOAD 000002e5: PUSH2 0x0b57 000002e8: JUMP 000002e9: JUMPDEST 000002ea: CALLVALUE 000002eb: DUP1 000002ec: ISZERO 000002ed: PUSH2 0x02f5 000002f0: JUMPI 000002f1: PUSH1 0x00 000002f3: DUP1 000002f4: REVERT 000002f5: JUMPDEST 000002f6: POP 000002f7: PUSH2 0x02aa 000002fa: PUSH2 0x0bda 000002fd: JUMP 000002fe: JUMPDEST 000002ff: CALLVALUE 00000300: DUP1 00000301: ISZERO 00000302: PUSH2 0x030a 00000305: JUMPI 00000306: PUSH1 0x00 00000308: DUP1 00000309: REVERT 0000030a: JUMPDEST 0000030b: POP 0000030c: PUSH2 0x02aa 0000030f: PUSH2 0x0be3 00000312: JUMP 00000313: JUMPDEST 00000314: CALLVALUE 00000315: DUP1 00000316: ISZERO 00000317: PUSH2 0x031f 0000031a: JUMPI 0000031b: PUSH1 0x00 0000031d: DUP1 0000031e: REVERT 0000031f: JUMPDEST 00000320: POP 00000321: PUSH2 0x0328 00000324: PUSH2 0x0c97 00000327: JUMP 00000328: JUMPDEST 00000329: PUSH1 0x40 0000032b: DUP1 0000032c: MLOAD 0000032d: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000034e: SWAP1 0000034f: SWAP3 00000350: AND 00000351: DUP3 00000352: MSTORE 00000353: MLOAD 00000354: SWAP1 00000355: DUP2 00000356: SWAP1 00000357: SUB 00000358: PUSH1 0x20 0000035a: ADD 0000035b: SWAP1 0000035c: RETURN 0000035d: JUMPDEST 0000035e: CALLVALUE 0000035f: DUP1 00000360: ISZERO 00000361: PUSH2 0x0369 00000364: JUMPI 00000365: PUSH1 0x00 00000367: DUP1 00000368: REVERT 00000369: JUMPDEST 0000036a: POP 0000036b: PUSH2 0x02aa 0000036e: PUSH2 0x0d3a 00000371: JUMP 00000372: JUMPDEST 00000373: CALLVALUE 00000374: DUP1 00000375: ISZERO 00000376: PUSH2 0x037e 00000379: JUMPI 0000037a: PUSH1 0x00 0000037c: DUP1 0000037d: REVERT 0000037e: JUMPDEST 0000037f: POP 00000380: PUSH2 0x01e3 00000383: PUSH2 0x0dad 00000386: JUMP 00000387: JUMPDEST 00000388: CALLVALUE 00000389: DUP1 0000038a: ISZERO 0000038b: PUSH2 0x0393 0000038e: JUMPI 0000038f: PUSH1 0x00 00000391: DUP1 00000392: REVERT 00000393: JUMPDEST 00000394: POP 00000395: PUSH2 0x02aa 00000398: PUSH1 0x04 0000039a: CALLDATALOAD 0000039b: PUSH2 0x0e21 0000039e: JUMP 0000039f: JUMPDEST 000003a0: CALLVALUE 000003a1: DUP1 000003a2: ISZERO 000003a3: PUSH2 0x03ab 000003a6: JUMPI 000003a7: PUSH1 0x00 000003a9: DUP1 000003aa: REVERT 000003ab: JUMPDEST 000003ac: POP 000003ad: PUSH2 0x0217 000003b0: PUSH1 0x01 000003b2: PUSH1 0xa0 000003b4: PUSH1 0x02 000003b6: EXP 000003b7: SUB 000003b8: PUSH1 0x04 000003ba: CALLDATALOAD 000003bb: DUP2 000003bc: AND 000003bd: SWAP1 000003be: PUSH1 0x24 000003c0: CALLDATALOAD 000003c1: DUP2 000003c2: AND 000003c3: SWAP1 000003c4: PUSH1 0x44 000003c6: CALLDATALOAD 000003c7: SWAP1 000003c8: PUSH1 0x64 000003ca: CALLDATALOAD 000003cb: SWAP1 000003cc: PUSH1 0x84 000003ce: CALLDATALOAD 000003cf: SWAP1 000003d0: PUSH1 0xa4 000003d2: CALLDATALOAD 000003d3: SWAP1 000003d4: PUSH1 0xc4 000003d6: CALLDATALOAD 000003d7: SWAP1 000003d8: PUSH1 0xe4 000003da: CALLDATALOAD 000003db: AND 000003dc: PUSH2 0x0104 000003df: CALLDATALOAD 000003e0: PUSH2 0x0e9c 000003e3: JUMP 000003e4: JUMPDEST 000003e5: CALLVALUE 000003e6: DUP1 000003e7: ISZERO 000003e8: PUSH2 0x03f0 000003eb: JUMPI 000003ec: PUSH1 0x00 000003ee: DUP1 000003ef: REVERT 000003f0: JUMPDEST 000003f1: POP 000003f2: PUSH2 0x02aa 000003f5: PUSH2 0x0ebd 000003f8: JUMP 000003f9: JUMPDEST 000003fa: CALLVALUE 000003fb: DUP1 000003fc: ISZERO 000003fd: PUSH2 0x0405 00000400: JUMPI 00000401: PUSH1 0x00 00000403: DUP1 00000404: REVERT 00000405: JUMPDEST 00000406: POP 00000407: PUSH2 0x026f 0000040a: PUSH1 0x01 0000040c: PUSH1 0xa0 0000040e: PUSH1 0x02 00000410: EXP 00000411: SUB 00000412: PUSH1 0x04 00000414: CALLDATALOAD 00000415: DUP2 00000416: AND 00000417: SWAP1 00000418: PUSH1 0x24 0000041a: CALLDATALOAD 0000041b: AND 0000041c: PUSH2 0x0f30 0000041f: JUMP 00000420: JUMPDEST 00000421: CALLVALUE 00000422: DUP1 00000423: ISZERO 00000424: PUSH2 0x042c 00000427: JUMPI 00000428: PUSH1 0x00 0000042a: DUP1 0000042b: REVERT 0000042c: JUMPDEST 0000042d: POP 0000042e: PUSH2 0x02aa 00000431: PUSH2 0x0f7a 00000434: JUMP 00000435: JUMPDEST 00000436: CALLVALUE 00000437: DUP1 00000438: ISZERO 00000439: PUSH2 0x0441 0000043c: JUMPI 0000043d: PUSH1 0x00 0000043f: DUP1 00000440: REVERT 00000441: JUMPDEST 00000442: POP 00000443: PUSH2 0x0217 00000446: PUSH1 0x04 00000448: CALLDATALOAD 00000449: PUSH2 0x0fed 0000044c: JUMP 0000044d: JUMPDEST 0000044e: CALLVALUE 0000044f: DUP1 00000450: ISZERO 00000451: PUSH2 0x0459 00000454: JUMPI 00000455: PUSH1 0x00 00000457: DUP1 00000458: REVERT 00000459: JUMPDEST 0000045a: POP 0000045b: PUSH2 0x02aa 0000045e: PUSH2 0x1037 00000461: JUMP 00000462: JUMPDEST 00000463: CALLVALUE 00000464: DUP1 00000465: ISZERO 00000466: PUSH2 0x046e 00000469: JUMPI 0000046a: PUSH1 0x00 0000046c: DUP1 0000046d: REVERT 0000046e: JUMPDEST 0000046f: POP 00000470: PUSH2 0x02aa 00000473: PUSH2 0x10aa 00000476: JUMP 00000477: JUMPDEST 00000478: CALLVALUE 00000479: DUP1 0000047a: ISZERO 0000047b: PUSH2 0x0483 0000047e: JUMPI 0000047f: PUSH1 0x00 00000481: DUP1 00000482: REVERT 00000483: JUMPDEST 00000484: POP 00000485: PUSH2 0x01e3 00000488: PUSH2 0x1122 0000048b: JUMP 0000048c: JUMPDEST 0000048d: CALLVALUE 0000048e: DUP1 0000048f: ISZERO 00000490: PUSH2 0x0498 00000493: JUMPI 00000494: PUSH1 0x00 00000496: DUP1 00000497: REVERT 00000498: JUMPDEST 00000499: POP 0000049a: PUSH2 0x01e3 0000049d: PUSH2 0x1196 000004a0: JUMP 000004a1: JUMPDEST 000004a2: CALLVALUE 000004a3: DUP1 000004a4: ISZERO 000004a5: PUSH2 0x04ad 000004a8: JUMPI 000004a9: PUSH1 0x00 000004ab: DUP1 000004ac: REVERT 000004ad: JUMPDEST 000004ae: POP 000004af: PUSH2 0x0217 000004b2: PUSH1 0x01 000004b4: PUSH1 0xa0 000004b6: PUSH1 0x02 000004b8: EXP 000004b9: SUB 000004ba: PUSH1 0x04 000004bc: CALLDATALOAD 000004bd: DUP2 000004be: AND 000004bf: SWAP1 000004c0: PUSH1 0x24 000004c2: CALLDATALOAD 000004c3: DUP2 000004c4: AND 000004c5: SWAP1 000004c6: PUSH1 0x44 000004c8: CALLDATALOAD 000004c9: SWAP1 000004ca: PUSH1 0x64 000004cc: CALLDATALOAD 000004cd: SWAP1 000004ce: PUSH1 0x84 000004d0: CALLDATALOAD 000004d1: SWAP1 000004d2: PUSH1 0xa4 000004d4: CALLDATALOAD 000004d5: SWAP1 000004d6: PUSH1 0xc4 000004d8: CALLDATALOAD 000004d9: SWAP1 000004da: PUSH1 0xe4 000004dc: CALLDATALOAD 000004dd: DUP2 000004de: AND 000004df: SWAP1 000004e0: PUSH2 0x0104 000004e3: CALLDATALOAD 000004e4: SWAP1 000004e5: PUSH2 0x0124 000004e8: CALLDATALOAD 000004e9: AND 000004ea: PUSH2 0x120a 000004ed: JUMP 000004ee: JUMPDEST 000004ef: CALLVALUE 000004f0: DUP1 000004f1: ISZERO 000004f2: PUSH2 0x04fa 000004f5: JUMPI 000004f6: PUSH1 0x00 000004f8: DUP1 000004f9: REVERT 000004fa: JUMPDEST 000004fb: POP 000004fc: PUSH2 0x02aa 000004ff: PUSH2 0x1235 00000502: JUMP 00000503: JUMPDEST 00000504: CALLVALUE 00000505: DUP1 00000506: ISZERO 00000507: PUSH2 0x050f 0000050a: JUMPI 0000050b: PUSH1 0x00 0000050d: DUP1 0000050e: REVERT 0000050f: JUMPDEST 00000510: POP 00000511: PUSH2 0x0518 00000514: PUSH2 0x12a8 00000517: JUMP 00000518: JUMPDEST 00000519: PUSH1 0x40 0000051b: DUP1 0000051c: MLOAD 0000051d: PUSH8 0xffffffffffffffff 00000526: SWAP5 00000527: DUP6 00000528: AND 00000529: DUP2 0000052a: MSTORE 0000052b: SWAP3 0000052c: DUP5 0000052d: AND 0000052e: PUSH1 0x20 00000530: DUP5 00000531: ADD 00000532: MSTORE 00000533: SWAP3 00000534: AND 00000535: DUP2 00000536: DUP4 00000537: ADD 00000538: MSTORE 00000539: SWAP1 0000053a: MLOAD 0000053b: SWAP1 0000053c: DUP2 0000053d: SWAP1 0000053e: SUB 0000053f: PUSH1 0x60 00000541: ADD 00000542: SWAP1 00000543: RETURN 00000544: JUMPDEST 00000545: CALLVALUE 00000546: DUP1 00000547: ISZERO 00000548: PUSH2 0x0550 0000054b: JUMPI 0000054c: PUSH1 0x00 0000054e: DUP1 0000054f: REVERT 00000550: JUMPDEST 00000551: POP 00000552: PUSH2 0x026f 00000555: PUSH1 0x04 00000557: CALLDATALOAD 00000558: PUSH2 0x12b2 0000055b: JUMP 0000055c: JUMPDEST 0000055d: CALLVALUE 0000055e: DUP1 0000055f: ISZERO 00000560: PUSH2 0x0568 00000563: JUMPI 00000564: PUSH1 0x00 00000566: DUP1 00000567: REVERT 00000568: JUMPDEST 00000569: POP 0000056a: PUSH2 0x026f 0000056d: PUSH1 0x04 0000056f: CALLDATALOAD 00000570: PUSH2 0x13a9 00000573: JUMP 00000574: JUMPDEST 00000575: CALLVALUE 00000576: DUP1 00000577: ISZERO 00000578: PUSH2 0x0580 0000057b: JUMPI 0000057c: PUSH1 0x00 0000057e: DUP1 0000057f: REVERT 00000580: JUMPDEST 00000581: POP 00000582: PUSH2 0x026f 00000585: PUSH1 0x04 00000587: CALLDATALOAD 00000588: PUSH2 0x14b8 0000058b: JUMP 0000058c: JUMPDEST 0000058d: CALLVALUE 0000058e: DUP1 0000058f: ISZERO 00000590: PUSH2 0x0598 00000593: JUMPI 00000594: PUSH1 0x00 00000596: DUP1 00000597: REVERT 00000598: JUMPDEST 00000599: POP 0000059a: PUSH2 0x026f 0000059d: PUSH1 0x04 0000059f: CALLDATALOAD 000005a0: PUSH2 0x15ba 000005a3: JUMP 000005a4: JUMPDEST 000005a5: CALLVALUE 000005a6: DUP1 000005a7: ISZERO 000005a8: PUSH2 0x05b0 000005ab: JUMPI 000005ac: PUSH1 0x00 000005ae: DUP1 000005af: REVERT 000005b0: JUMPDEST 000005b1: POP 000005b2: PUSH2 0x02aa 000005b5: PUSH1 0x04 000005b7: CALLDATALOAD 000005b8: PUSH2 0x16c9 000005bb: JUMP 000005bc: JUMPDEST 000005bd: CALLVALUE 000005be: DUP1 000005bf: ISZERO 000005c0: PUSH2 0x05c8 000005c3: JUMPI 000005c4: PUSH1 0x00 000005c6: DUP1 000005c7: REVERT 000005c8: JUMPDEST 000005c9: POP 000005ca: PUSH2 0x026f 000005cd: PUSH1 0x04 000005cf: CALLDATALOAD 000005d0: PUSH2 0x1706 000005d3: JUMP 000005d4: JUMPDEST 000005d5: CALLVALUE 000005d6: DUP1 000005d7: ISZERO 000005d8: PUSH2 0x05e0 000005db: JUMPI 000005dc: PUSH1 0x00 000005de: DUP1 000005df: REVERT 000005e0: JUMPDEST 000005e1: POP 000005e2: PUSH2 0x01e3 000005e5: PUSH2 0x17a7 000005e8: JUMP 000005e9: JUMPDEST 000005ea: CALLVALUE 000005eb: DUP1 000005ec: ISZERO 000005ed: PUSH2 0x05f5 000005f0: JUMPI 000005f1: PUSH1 0x00 000005f3: DUP1 000005f4: REVERT 000005f5: JUMPDEST 000005f6: POP 000005f7: PUSH2 0x02aa 000005fa: PUSH2 0x17e7 000005fd: JUMP 000005fe: JUMPDEST 000005ff: CALLVALUE 00000600: DUP1 00000601: ISZERO 00000602: PUSH2 0x060a 00000605: JUMPI 00000606: PUSH1 0x00 00000608: DUP1 00000609: REVERT 0000060a: JUMPDEST 0000060b: POP 0000060c: PUSH2 0x0217 0000060f: PUSH1 0x04 00000611: CALLDATALOAD 00000612: PUSH2 0x185a 00000615: JUMP 00000616: JUMPDEST 00000617: CALLVALUE 00000618: DUP1 00000619: ISZERO 0000061a: PUSH2 0x0622 0000061d: JUMPI 0000061e: PUSH1 0x00 00000620: DUP1 00000621: REVERT 00000622: JUMPDEST 00000623: POP 00000624: PUSH2 0x026f 00000627: PUSH1 0x04 00000629: CALLDATALOAD 0000062a: PUSH2 0x18aa 0000062d: JUMP 0000062e: JUMPDEST 0000062f: CALLVALUE 00000630: DUP1 00000631: ISZERO 00000632: PUSH2 0x063a 00000635: JUMPI 00000636: PUSH1 0x00 00000638: DUP1 00000639: REVERT 0000063a: JUMPDEST 0000063b: POP 0000063c: PUSH2 0x026f 0000063f: PUSH1 0x01 00000641: PUSH1 0xa0 00000643: PUSH1 0x02 00000645: EXP 00000646: SUB 00000647: PUSH1 0x04 00000649: CALLDATALOAD 0000064a: AND 0000064b: PUSH2 0x194b 0000064e: JUMP 0000064f: JUMPDEST 00000650: CALLVALUE 00000651: DUP1 00000652: ISZERO 00000653: PUSH2 0x065b 00000656: JUMPI 00000657: PUSH1 0x00 00000659: DUP1 0000065a: REVERT 0000065b: JUMPDEST 0000065c: POP 0000065d: PUSH2 0x02aa 00000660: PUSH2 0x1985 00000663: JUMP 00000664: JUMPDEST 00000665: CALLVALUE 00000666: DUP1 00000667: ISZERO 00000668: PUSH2 0x0670 0000066b: JUMPI 0000066c: PUSH1 0x00 0000066e: DUP1 0000066f: REVERT 00000670: JUMPDEST 00000671: POP 00000672: PUSH2 0x02aa 00000675: PUSH2 0x19f8 00000678: JUMP 00000679: JUMPDEST 0000067a: PUSH1 0x00 0000067c: PUSH1 0x02 0000067e: PUSH1 0x00 00000680: PUSH1 0x40 00000682: MLOAD 00000683: PUSH1 0x20 00000685: ADD 00000686: DUP1 00000687: DUP1 00000688: PUSH32 0x6572633230746f6b656e00000000000000000000000000000000000000000000 000006a9: DUP2 000006aa: MSTORE 000006ab: POP 000006ac: PUSH1 0x0a 000006ae: ADD 000006af: SWAP1 000006b0: POP 000006b1: PUSH1 0x40 000006b3: MLOAD 000006b4: PUSH1 0x20 000006b6: DUP2 000006b7: DUP4 000006b8: SUB 000006b9: SUB 000006ba: DUP2 000006bb: MSTORE 000006bc: SWAP1 000006bd: PUSH1 0x40 000006bf: MSTORE 000006c0: PUSH1 0x40 000006c2: MLOAD 000006c3: DUP1 000006c4: DUP3 000006c5: DUP1 000006c6: MLOAD 000006c7: SWAP1 000006c8: PUSH1 0x20 000006ca: ADD 000006cb: SWAP1 000006cc: DUP1 000006cd: DUP4 000006ce: DUP4 000006cf: JUMPDEST 000006d0: PUSH1 0x20 000006d2: DUP4 000006d3: LT 000006d4: PUSH2 0x06ee 000006d7: JUMPI 000006d8: DUP1 000006d9: MLOAD 000006da: DUP3 000006db: MSTORE 000006dc: PUSH1 0x1f 000006de: NOT 000006df: SWAP1 000006e0: SWAP3 000006e1: ADD 000006e2: SWAP2 000006e3: PUSH1 0x20 000006e5: SWAP2 000006e6: DUP3 000006e7: ADD 000006e8: SWAP2 000006e9: ADD 000006ea: PUSH2 0x06cf 000006ed: JUMP 000006ee: JUMPDEST 000006ef: MLOAD 000006f0: DUP2 000006f1: MLOAD 000006f2: PUSH1 0x20 000006f4: SWAP4 000006f5: DUP5 000006f6: SUB 000006f7: PUSH2 0x0100 000006fa: EXP 000006fb: PUSH1 0x00 000006fd: NOT 000006fe: ADD 000006ff: DUP1 00000700: NOT 00000701: SWAP1 00000702: SWAP3 00000703: AND 00000704: SWAP2 00000705: AND 00000706: OR 00000707: SWAP1 00000708: MSTORE 00000709: PUSH1 0x40 0000070b: DUP1 0000070c: MLOAD 0000070d: SWAP3 0000070e: SWAP1 0000070f: SWAP5 00000710: ADD 00000711: DUP3 00000712: SWAP1 00000713: SUB 00000714: SWAP1 00000715: SWAP2 00000716: KECCAK256 00000717: DUP7 00000718: MSTORE 00000719: DUP6 0000071a: ADD 0000071b: SWAP6 0000071c: SWAP1 0000071d: SWAP6 0000071e: MSTORE 0000071f: SWAP3 00000720: SWAP1 00000721: SWAP3 00000722: ADD 00000723: PUSH1 0x00 00000725: KECCAK256 00000726: SLOAD 00000727: PUSH1 0x01 00000729: PUSH1 0xa0 0000072b: PUSH1 0x02 0000072d: EXP 0000072e: SUB 0000072f: AND 00000730: SWAP5 00000731: SWAP4 00000732: POP 00000733: POP 00000734: POP 00000735: POP 00000736: JUMP 00000737: JUMPDEST 00000738: PUSH1 0x00 0000073a: PUSH1 0x04 0000073c: PUSH1 0x00 0000073e: DUP4 0000073f: PUSH1 0x40 00000741: MLOAD 00000742: PUSH1 0x20 00000744: ADD 00000745: DUP1 00000746: DUP1 00000747: PUSH32 0x72656c617965644d657373616765730000000000000000000000000000000000 00000768: DUP2 00000769: MSTORE 0000076a: POP 0000076b: PUSH1 0x0f 0000076d: ADD 0000076e: DUP3 0000076f: PUSH1 0x00 00000771: NOT 00000772: AND 00000773: PUSH1 0x00 00000775: NOT 00000776: AND 00000777: DUP2 00000778: MSTORE 00000779: PUSH1 0x20 0000077b: ADD 0000077c: SWAP2 0000077d: POP 0000077e: POP 0000077f: PUSH1 0x40 00000781: MLOAD 00000782: PUSH1 0x20 00000784: DUP2 00000785: DUP4 00000786: SUB 00000787: SUB 00000788: DUP2 00000789: MSTORE 0000078a: SWAP1 0000078b: PUSH1 0x40 0000078d: MSTORE 0000078e: PUSH1 0x40 00000790: MLOAD 00000791: DUP1 00000792: DUP3 00000793: DUP1 00000794: MLOAD 00000795: SWAP1 00000796: PUSH1 0x20 00000798: ADD 00000799: SWAP1 0000079a: DUP1 0000079b: DUP4 0000079c: DUP4 0000079d: JUMPDEST 0000079e: PUSH1 0x20 000007a0: DUP4 000007a1: LT 000007a2: PUSH2 0x07bc 000007a5: JUMPI 000007a6: DUP1 000007a7: MLOAD 000007a8: DUP3 000007a9: MSTORE 000007aa: PUSH1 0x1f 000007ac: NOT 000007ad: SWAP1 000007ae: SWAP3 000007af: ADD 000007b0: SWAP2 000007b1: PUSH1 0x20 000007b3: SWAP2 000007b4: DUP3 000007b5: ADD 000007b6: SWAP2 000007b7: ADD 000007b8: PUSH2 0x079d 000007bb: JUMP 000007bc: JUMPDEST 000007bd: MLOAD 000007be: DUP2 000007bf: MLOAD 000007c0: PUSH1 0x20 000007c2: SWAP4 000007c3: DUP5 000007c4: SUB 000007c5: PUSH2 0x0100 000007c8: EXP 000007c9: PUSH1 0x00 000007cb: NOT 000007cc: ADD 000007cd: DUP1 000007ce: NOT 000007cf: SWAP1 000007d0: SWAP3 000007d1: AND 000007d2: SWAP2 000007d3: AND 000007d4: OR 000007d5: SWAP1 000007d6: MSTORE 000007d7: PUSH1 0x40 000007d9: DUP1 000007da: MLOAD 000007db: SWAP3 000007dc: SWAP1 000007dd: SWAP5 000007de: ADD 000007df: DUP3 000007e0: SWAP1 000007e1: SUB 000007e2: SWAP1 000007e3: SWAP2 000007e4: KECCAK256 000007e5: DUP7 000007e6: MSTORE 000007e7: DUP6 000007e8: ADD 000007e9: SWAP6 000007ea: SWAP1 000007eb: SWAP6 000007ec: MSTORE 000007ed: SWAP3 000007ee: SWAP1 000007ef: SWAP3 000007f0: ADD 000007f1: PUSH1 0x00 000007f3: KECCAK256 000007f4: SLOAD 000007f5: PUSH1 0xff 000007f7: AND 000007f8: SWAP6 000007f9: SWAP5 000007fa: POP 000007fb: POP 000007fc: POP 000007fd: POP 000007fe: POP 000007ff: JUMP 00000800: JUMPDEST 00000801: PUSH1 0x00 00000803: DUP1 00000804: PUSH1 0x00 00000806: DUP1 00000807: PUSH2 0x08d8 0000080a: DUP7 0000080b: DUP7 0000080c: DUP1 0000080d: DUP1 0000080e: PUSH1 0x1f 00000810: ADD 00000811: PUSH1 0x20 00000813: DUP1 00000814: SWAP2 00000815: DIV 00000816: MUL 00000817: PUSH1 0x20 00000819: ADD 0000081a: PUSH1 0x40 0000081c: MLOAD 0000081d: SWAP1 0000081e: DUP2 0000081f: ADD 00000820: PUSH1 0x40 00000822: MSTORE 00000823: DUP1 00000824: SWAP4 00000825: SWAP3 00000826: SWAP2 00000827: SWAP1 00000828: DUP2 00000829: DUP2 0000082a: MSTORE 0000082b: PUSH1 0x20 0000082d: ADD 0000082e: DUP4 0000082f: DUP4 00000830: DUP1 00000831: DUP3 00000832: DUP5 00000833: CALLDATACOPY 00000834: DUP3 00000835: ADD 00000836: SWAP2 00000837: POP 00000838: POP 00000839: POP 0000083a: POP 0000083b: POP 0000083c: POP 0000083d: DUP14 0000083e: DUP14 0000083f: DUP1 00000840: DUP1 00000841: PUSH1 0x20 00000843: MUL 00000844: PUSH1 0x20 00000846: ADD 00000847: PUSH1 0x40 00000849: MLOAD 0000084a: SWAP1 0000084b: DUP2 0000084c: ADD 0000084d: PUSH1 0x40 0000084f: MSTORE 00000850: DUP1 00000851: SWAP4 00000852: SWAP3 00000853: SWAP2 00000854: SWAP1 00000855: DUP2 00000856: DUP2 00000857: MSTORE 00000858: PUSH1 0x20 0000085a: ADD 0000085b: DUP4 0000085c: DUP4 0000085d: PUSH1 0x20 0000085f: MUL 00000860: DUP1 00000861: DUP3 00000862: DUP5 00000863: CALLDATACOPY 00000864: DUP3 00000865: ADD 00000866: SWAP2 00000867: POP 00000868: POP 00000869: POP 0000086a: POP 0000086b: POP 0000086c: POP 0000086d: DUP13 0000086e: DUP13 0000086f: DUP1 00000870: DUP1 00000871: PUSH1 0x20 00000873: MUL 00000874: PUSH1 0x20 00000876: ADD 00000877: PUSH1 0x40 00000879: MLOAD 0000087a: SWAP1 0000087b: DUP2 0000087c: ADD 0000087d: PUSH1 0x40 0000087f: MSTORE 00000880: DUP1 00000881: SWAP4 00000882: SWAP3 00000883: SWAP2 00000884: SWAP1 00000885: DUP2 00000886: DUP2 00000887: MSTORE 00000888: PUSH1 0x20 0000088a: ADD 0000088b: DUP4 0000088c: DUP4 0000088d: PUSH1 0x20 0000088f: MUL 00000890: DUP1 00000891: DUP3 00000892: DUP5 00000893: CALLDATACOPY 00000894: DUP3 00000895: ADD 00000896: SWAP2 00000897: POP 00000898: POP 00000899: POP 0000089a: POP 0000089b: POP 0000089c: POP 0000089d: DUP12 0000089e: DUP12 0000089f: DUP1 000008a0: DUP1 000008a1: PUSH1 0x20 000008a3: MUL 000008a4: PUSH1 0x20 000008a6: ADD 000008a7: PUSH1 0x40 000008a9: MLOAD 000008aa: SWAP1 000008ab: DUP2 000008ac: ADD 000008ad: PUSH1 0x40 000008af: MSTORE 000008b0: DUP1 000008b1: SWAP4 000008b2: SWAP3 000008b3: SWAP2 000008b4: SWAP1 000008b5: DUP2 000008b6: DUP2 000008b7: MSTORE 000008b8: PUSH1 0x20 000008ba: ADD 000008bb: DUP4 000008bc: DUP4 000008bd: PUSH1 0x20 000008bf: MUL 000008c0: DUP1 000008c1: DUP3 000008c2: DUP5 000008c3: CALLDATACOPY 000008c4: POP 000008c5: PUSH2 0x08d3 000008c8: SWAP5 000008c9: POP 000008ca: PUSH2 0x1196 000008cd: SWAP4 000008ce: POP 000008cf: POP 000008d0: POP 000008d1: POP 000008d2: JUMP 000008d3: JUMPDEST 000008d4: PUSH2 0x1a6b 000008d7: JUMP 000008d8: JUMPDEST 000008d9: PUSH2 0x0911 000008dc: DUP7 000008dd: DUP7 000008de: DUP1 000008df: DUP1 000008e0: PUSH1 0x1f 000008e2: ADD 000008e3: PUSH1 0x20 000008e5: DUP1 000008e6: SWAP2 000008e7: DIV 000008e8: MUL 000008e9: PUSH1 0x20 000008eb: ADD 000008ec: PUSH1 0x40 000008ee: MLOAD 000008ef: SWAP1 000008f0: DUP2 000008f1: ADD 000008f2: PUSH1 0x40 000008f4: MSTORE 000008f5: DUP1 000008f6: SWAP4 000008f7: SWAP3 000008f8: SWAP2 000008f9: SWAP1 000008fa: DUP2 000008fb: DUP2 000008fc: MSTORE 000008fd: PUSH1 0x20 000008ff: ADD 00000900: DUP4 00000901: DUP4 00000902: DUP1 00000903: DUP3 00000904: DUP5 00000905: CALLDATACOPY 00000906: POP 00000907: PUSH2 0x1cd8 0000090a: SWAP5 0000090b: POP 0000090c: POP 0000090d: POP 0000090e: POP 0000090f: POP 00000910: JUMP 00000911: JUMPDEST 00000912: SWAP3 00000913: SWAP7 00000914: POP 00000915: SWAP1 00000916: SWAP5 00000917: POP 00000918: SWAP3 00000919: POP 0000091a: SWAP1 0000091b: POP 0000091c: PUSH1 0x01 0000091e: PUSH1 0xa0 00000920: PUSH1 0x02 00000922: EXP 00000923: SUB 00000924: DUP2 00000925: AND 00000926: ADDRESS 00000927: EQ 00000928: PUSH2 0x0930 0000092b: JUMPI 0000092c: PUSH1 0x00 0000092e: DUP1 0000092f: REVERT 00000930: JUMPDEST 00000931: PUSH2 0x0939 00000934: DUP3 00000935: PUSH2 0x0737 00000938: JUMP 00000939: JUMPDEST 0000093a: ISZERO 0000093b: PUSH2 0x0943 0000093e: JUMPI 0000093f: PUSH1 0x00 00000941: DUP1 00000942: REVERT 00000943: JUMPDEST 00000944: PUSH2 0x094e 00000947: DUP3 00000948: PUSH1 0x01 0000094a: PUSH2 0x1d1e 0000094d: JUMP 0000094e: JUMPDEST 0000094f: PUSH2 0x0958 00000952: DUP5 00000953: DUP5 00000954: PUSH2 0x1df0 00000957: JUMP 00000958: JUMPDEST 00000959: ISZERO 0000095a: ISZERO 0000095b: PUSH2 0x0963 0000095e: JUMPI 0000095f: PUSH1 0x00 00000961: DUP1 00000962: REVERT 00000963: JUMPDEST 00000964: PUSH1 0x40 00000966: DUP1 00000967: MLOAD 00000968: PUSH1 0x01 0000096a: PUSH1 0xa0 0000096c: PUSH1 0x02 0000096e: EXP 0000096f: SUB 00000970: DUP7 00000971: AND 00000972: DUP2 00000973: MSTORE 00000974: PUSH1 0x20 00000976: DUP2 00000977: ADD 00000978: DUP6 00000979: SWAP1 0000097a: MSTORE 0000097b: DUP1 0000097c: DUP3 0000097d: ADD 0000097e: DUP5 0000097f: SWAP1 00000980: MSTORE 00000981: SWAP1 00000982: MLOAD 00000983: PUSH32 0x4ab7d581336d92edbea22636a613e8e76c99ac7f91137c1523db38dbfb3bf329 000009a4: SWAP2 000009a5: DUP2 000009a6: SWAP1 000009a7: SUB 000009a8: PUSH1 0x60 000009aa: ADD 000009ab: SWAP1 000009ac: LOG1 000009ad: POP 000009ae: POP 000009af: POP 000009b0: POP 000009b1: POP 000009b2: POP 000009b3: POP 000009b4: POP 000009b5: POP 000009b6: POP 000009b7: POP 000009b8: POP 000009b9: JUMP 000009ba: JUMPDEST 000009bb: PUSH2 0x09c2 000009be: PUSH2 0x1122 000009c1: JUMP 000009c2: JUMPDEST 000009c3: PUSH1 0x01 000009c5: PUSH1 0xa0 000009c7: PUSH1 0x02 000009c9: EXP 000009ca: SUB 000009cb: AND 000009cc: CALLER 000009cd: EQ 000009ce: PUSH2 0x09d6 000009d1: JUMPI 000009d2: PUSH1 0x00 000009d4: DUP1 000009d5: REVERT 000009d6: JUMPDEST 000009d7: PUSH2 0x09df 000009da: DUP2 000009db: PUSH2 0x1f0a 000009de: JUMP 000009df: JUMPDEST 000009e0: POP 000009e1: JUMP 000009e2: JUMPDEST 000009e3: PUSH1 0x00 000009e5: DUP1 000009e6: PUSH1 0x00 000009e8: DUP4 000009e9: PUSH1 0x40 000009eb: MLOAD 000009ec: PUSH1 0x20 000009ee: ADD 000009ef: DUP1 000009f0: DUP1 000009f1: PUSH32 0x746f74616c5370656e7450657244617900000000000000000000000000000000 00000a12: DUP2 00000a13: MSTORE 00000a14: POP 00000a15: PUSH1 0x10 00000a17: ADD 00000a18: DUP3 00000a19: DUP2 00000a1a: MSTORE 00000a1b: PUSH1 0x20 00000a1d: ADD 00000a1e: SWAP2 00000a1f: POP 00000a20: POP 00000a21: PUSH1 0x40 00000a23: MLOAD 00000a24: PUSH1 0x20 00000a26: DUP2 00000a27: DUP4 00000a28: SUB 00000a29: SUB 00000a2a: DUP2 00000a2b: MSTORE 00000a2c: SWAP1 00000a2d: PUSH1 0x40 00000a2f: MSTORE 00000a30: PUSH1 0x40 00000a32: MLOAD 00000a33: DUP1 00000a34: DUP3 00000a35: DUP1 00000a36: MLOAD 00000a37: SWAP1 00000a38: PUSH1 0x20 00000a3a: ADD 00000a3b: SWAP1 00000a3c: DUP1 00000a3d: DUP4 00000a3e: DUP4 00000a3f: JUMPDEST 00000a40: PUSH1 0x20 00000a42: DUP4 00000a43: LT 00000a44: PUSH2 0x0a5e 00000a47: JUMPI 00000a48: DUP1 00000a49: MLOAD 00000a4a: DUP3 00000a4b: MSTORE 00000a4c: PUSH1 0x1f 00000a4e: NOT 00000a4f: SWAP1 00000a50: SWAP3 00000a51: ADD 00000a52: SWAP2 00000a53: PUSH1 0x20 00000a55: SWAP2 00000a56: DUP3 00000a57: ADD 00000a58: SWAP2 00000a59: ADD 00000a5a: PUSH2 0x0a3f 00000a5d: JUMP 00000a5e: JUMPDEST 00000a5f: MLOAD 00000a60: DUP2 00000a61: MLOAD 00000a62: PUSH1 0x20 00000a64: SWAP4 00000a65: DUP5 00000a66: SUB 00000a67: PUSH2 0x0100 00000a6a: EXP 00000a6b: PUSH1 0x00 00000a6d: NOT 00000a6e: ADD 00000a6f: DUP1 00000a70: NOT 00000a71: SWAP1 00000a72: SWAP3 00000a73: AND 00000a74: SWAP2 00000a75: AND 00000a76: OR 00000a77: SWAP1 00000a78: MSTORE 00000a79: PUSH1 0x40 00000a7b: DUP1 00000a7c: MLOAD 00000a7d: SWAP3 00000a7e: SWAP1 00000a7f: SWAP5 00000a80: ADD 00000a81: DUP3 00000a82: SWAP1 00000a83: SUB 00000a84: SWAP1 00000a85: SWAP2 00000a86: KECCAK256 00000a87: DUP7 00000a88: MSTORE 00000a89: DUP6 00000a8a: ADD 00000a8b: SWAP6 00000a8c: SWAP1 00000a8d: SWAP6 00000a8e: MSTORE 00000a8f: SWAP3 00000a90: SWAP1 00000a91: SWAP3 00000a92: ADD 00000a93: PUSH1 0x00 00000a95: KECCAK256 00000a96: SLOAD 00000a97: SWAP6 00000a98: SWAP5 00000a99: POP 00000a9a: POP 00000a9b: POP 00000a9c: POP 00000a9d: POP 00000a9e: JUMP 00000a9f: JUMPDEST 00000aa0: PUSH1 0x00 00000aa2: PUSH1 0x04 00000aa4: PUSH1 0x00 00000aa6: PUSH1 0x40 00000aa8: MLOAD 00000aa9: PUSH1 0x20 00000aab: ADD 00000aac: DUP1 00000aad: DUP1 00000aae: PUSH32 0x6973496e697469616c697a656400000000000000000000000000000000000000 00000acf: DUP2 00000ad0: MSTORE 00000ad1: POP 00000ad2: PUSH1 0x0d 00000ad4: ADD 00000ad5: SWAP1 00000ad6: POP 00000ad7: PUSH1 0x40 00000ad9: MLOAD 00000ada: PUSH1 0x20 00000adc: DUP2 00000add: DUP4 00000ade: SUB 00000adf: SUB 00000ae0: DUP2 00000ae1: MSTORE 00000ae2: SWAP1 00000ae3: PUSH1 0x40 00000ae5: MSTORE 00000ae6: PUSH1 0x40 00000ae8: MLOAD 00000ae9: DUP1 00000aea: DUP3 00000aeb: DUP1 00000aec: MLOAD 00000aed: SWAP1 00000aee: PUSH1 0x20 00000af0: ADD 00000af1: SWAP1 00000af2: DUP1 00000af3: DUP4 00000af4: DUP4 00000af5: JUMPDEST 00000af6: PUSH1 0x20 00000af8: DUP4 00000af9: LT 00000afa: PUSH2 0x0b14 00000afd: JUMPI 00000afe: DUP1 00000aff: MLOAD 00000b00: DUP3 00000b01: MSTORE 00000b02: PUSH1 0x1f 00000b04: NOT 00000b05: SWAP1 00000b06: SWAP3 00000b07: ADD 00000b08: SWAP2 00000b09: PUSH1 0x20 00000b0b: SWAP2 00000b0c: DUP3 00000b0d: ADD 00000b0e: SWAP2 00000b0f: ADD 00000b10: PUSH2 0x0af5 00000b13: JUMP 00000b14: JUMPDEST 00000b15: MLOAD 00000b16: DUP2 00000b17: MLOAD 00000b18: PUSH1 0x20 00000b1a: SWAP4 00000b1b: DUP5 00000b1c: SUB 00000b1d: PUSH2 0x0100 00000b20: EXP 00000b21: PUSH1 0x00 00000b23: NOT 00000b24: ADD 00000b25: DUP1 00000b26: NOT 00000b27: SWAP1 00000b28: SWAP3 00000b29: AND 00000b2a: SWAP2 00000b2b: AND 00000b2c: OR 00000b2d: SWAP1 00000b2e: MSTORE 00000b2f: PUSH1 0x40 00000b31: DUP1 00000b32: MLOAD 00000b33: SWAP3 00000b34: SWAP1 00000b35: SWAP5 00000b36: ADD 00000b37: DUP3 00000b38: SWAP1 00000b39: SUB 00000b3a: SWAP1 00000b3b: SWAP2 00000b3c: KECCAK256 00000b3d: DUP7 00000b3e: MSTORE 00000b3f: DUP6 00000b40: ADD 00000b41: SWAP6 00000b42: SWAP1 00000b43: SWAP6 00000b44: MSTORE 00000b45: SWAP3 00000b46: SWAP1 00000b47: SWAP3 00000b48: ADD 00000b49: PUSH1 0x00 00000b4b: KECCAK256 00000b4c: SLOAD 00000b4d: PUSH1 0xff 00000b4f: AND 00000b50: SWAP5 00000b51: SWAP4 00000b52: POP 00000b53: POP 00000b54: POP 00000b55: POP 00000b56: JUMP 00000b57: JUMPDEST 00000b58: PUSH2 0x0b5f 00000b5b: PUSH2 0x1122 00000b5e: JUMP 00000b5f: JUMPDEST 00000b60: PUSH1 0x01 00000b62: PUSH1 0xa0 00000b64: PUSH1 0x02 00000b66: EXP 00000b67: SUB 00000b68: AND 00000b69: CALLER 00000b6a: EQ 00000b6b: PUSH2 0x0b73 00000b6e: JUMPI 00000b6f: PUSH1 0x00 00000b71: DUP1 00000b72: REVERT 00000b73: JUMPDEST 00000b74: PUSH1 0x40 00000b76: DUP1 00000b77: MLOAD 00000b78: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000b99: DUP2 00000b9a: MSTORE 00000b9b: PUSH1 0x20 00000b9d: PUSH1 0x04 00000b9f: DUP3 00000ba0: ADD 00000ba1: MSTORE 00000ba2: PUSH1 0x0a 00000ba4: PUSH1 0x24 00000ba6: DUP3 00000ba7: ADD 00000ba8: MSTORE 00000ba9: PUSH32 0x6465707265636174656400000000000000000000000000000000000000000000 00000bca: PUSH1 0x44 00000bcc: DUP3 00000bcd: ADD 00000bce: MSTORE 00000bcf: SWAP1 00000bd0: MLOAD 00000bd1: SWAP1 00000bd2: DUP2 00000bd3: SWAP1 00000bd4: SUB 00000bd5: PUSH1 0x64 00000bd7: ADD 00000bd8: SWAP1 00000bd9: REVERT 00000bda: JUMPDEST 00000bdb: PUSH3 0x015180 00000bdf: TIMESTAMP 00000be0: DIV 00000be1: SWAP1 00000be2: JUMP 00000be3: JUMPDEST 00000be4: PUSH1 0x00 00000be6: DUP1 00000be7: PUSH1 0x00 00000be9: PUSH1 0x40 00000beb: MLOAD 00000bec: PUSH1 0x20 00000bee: ADD 00000bef: DUP1 00000bf0: DUP1 00000bf1: PUSH32 0x7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000 00000c12: DUP2 00000c13: MSTORE 00000c14: POP 00000c15: PUSH1 0x1a 00000c17: ADD 00000c18: SWAP1 00000c19: POP 00000c1a: PUSH1 0x40 00000c1c: MLOAD 00000c1d: PUSH1 0x20 00000c1f: DUP2 00000c20: DUP4 00000c21: SUB 00000c22: SUB 00000c23: DUP2 00000c24: MSTORE 00000c25: SWAP1 00000c26: PUSH1 0x40 00000c28: MSTORE 00000c29: PUSH1 0x40 00000c2b: MLOAD 00000c2c: DUP1 00000c2d: DUP3 00000c2e: DUP1 00000c2f: MLOAD 00000c30: SWAP1 00000c31: PUSH1 0x20 00000c33: ADD 00000c34: SWAP1 00000c35: DUP1 00000c36: DUP4 00000c37: DUP4 00000c38: JUMPDEST 00000c39: PUSH1 0x20 00000c3b: DUP4 00000c3c: LT 00000c3d: PUSH2 0x0c57 00000c40: JUMPI 00000c41: DUP1 00000c42: MLOAD 00000c43: DUP3 00000c44: MSTORE 00000c45: PUSH1 0x1f 00000c47: NOT 00000c48: SWAP1 00000c49: SWAP3 00000c4a: ADD 00000c4b: SWAP2 00000c4c: PUSH1 0x20 00000c4e: SWAP2 00000c4f: DUP3 00000c50: ADD 00000c51: SWAP2 00000c52: ADD 00000c53: PUSH2 0x0c38 00000c56: JUMP 00000c57: JUMPDEST 00000c58: MLOAD 00000c59: DUP2 00000c5a: MLOAD 00000c5b: PUSH1 0x20 00000c5d: SWAP4 00000c5e: DUP5 00000c5f: SUB 00000c60: PUSH2 0x0100 00000c63: EXP 00000c64: PUSH1 0x00 00000c66: NOT 00000c67: ADD 00000c68: DUP1 00000c69: NOT 00000c6a: SWAP1 00000c6b: SWAP3 00000c6c: AND 00000c6d: SWAP2 00000c6e: AND 00000c6f: OR 00000c70: SWAP1 00000c71: MSTORE 00000c72: PUSH1 0x40 00000c74: DUP1 00000c75: MLOAD 00000c76: SWAP3 00000c77: SWAP1 00000c78: SWAP5 00000c79: ADD 00000c7a: DUP3 00000c7b: SWAP1 00000c7c: SUB 00000c7d: SWAP1 00000c7e: SWAP2 00000c7f: KECCAK256 00000c80: DUP7 00000c81: MSTORE 00000c82: DUP6 00000c83: ADD 00000c84: SWAP6 00000c85: SWAP1 00000c86: SWAP6 00000c87: MSTORE 00000c88: SWAP3 00000c89: SWAP1 00000c8a: SWAP3 00000c8b: ADD 00000c8c: PUSH1 0x00 00000c8e: KECCAK256 00000c8f: SLOAD 00000c90: SWAP5 00000c91: SWAP4 00000c92: POP 00000c93: POP 00000c94: POP 00000c95: POP 00000c96: JUMP 00000c97: JUMPDEST 00000c98: PUSH1 0x00 00000c9a: PUSH1 0x40 00000c9c: MLOAD 00000c9d: PUSH1 0x20 00000c9f: ADD 00000ca0: DUP1 00000ca1: DUP1 00000ca2: PUSH32 0x6572632d746f2d6572632d636f72650000000000000000000000000000000000 00000cc3: DUP2 00000cc4: MSTORE 00000cc5: POP 00000cc6: PUSH1 0x0f 00000cc8: ADD 00000cc9: SWAP1 00000cca: POP 00000ccb: PUSH1 0x40 00000ccd: MLOAD 00000cce: PUSH1 0x20 00000cd0: DUP2 00000cd1: DUP4 00000cd2: SUB 00000cd3: SUB 00000cd4: DUP2 00000cd5: MSTORE 00000cd6: SWAP1 00000cd7: PUSH1 0x40 00000cd9: MSTORE 00000cda: PUSH1 0x40 00000cdc: MLOAD 00000cdd: DUP1 00000cde: DUP3 00000cdf: DUP1 00000ce0: MLOAD 00000ce1: SWAP1 00000ce2: PUSH1 0x20 00000ce4: ADD 00000ce5: SWAP1 00000ce6: DUP1 00000ce7: DUP4 00000ce8: DUP4 00000ce9: JUMPDEST 00000cea: PUSH1 0x20 00000cec: DUP4 00000ced: LT 00000cee: PUSH2 0x0d08 00000cf1: JUMPI 00000cf2: DUP1 00000cf3: MLOAD 00000cf4: DUP3 00000cf5: MSTORE 00000cf6: PUSH1 0x1f 00000cf8: NOT 00000cf9: SWAP1 00000cfa: SWAP3 00000cfb: ADD 00000cfc: SWAP2 00000cfd: PUSH1 0x20 00000cff: SWAP2 00000d00: DUP3 00000d01: ADD 00000d02: SWAP2 00000d03: ADD 00000d04: PUSH2 0x0ce9 00000d07: JUMP 00000d08: JUMPDEST 00000d09: PUSH1 0x01 00000d0b: DUP4 00000d0c: PUSH1 0x20 00000d0e: SUB 00000d0f: PUSH2 0x0100 00000d12: EXP 00000d13: SUB 00000d14: DUP1 00000d15: NOT 00000d16: DUP3 00000d17: MLOAD 00000d18: AND 00000d19: DUP2 00000d1a: DUP5 00000d1b: MLOAD 00000d1c: AND 00000d1d: DUP1 00000d1e: DUP3 00000d1f: OR 00000d20: DUP6 00000d21: MSTORE 00000d22: POP 00000d23: POP 00000d24: POP 00000d25: POP 00000d26: POP 00000d27: POP 00000d28: SWAP1 00000d29: POP 00000d2a: ADD 00000d2b: SWAP2 00000d2c: POP 00000d2d: POP 00000d2e: PUSH1 0x40 00000d30: MLOAD 00000d31: DUP1 00000d32: SWAP2 00000d33: SUB 00000d34: SWAP1 00000d35: KECCAK256 00000d36: SWAP1 00000d37: POP 00000d38: SWAP1 00000d39: JUMP 00000d3a: JUMPDEST 00000d3b: PUSH1 0x00 00000d3d: DUP1 00000d3e: PUSH1 0x00 00000d40: PUSH1 0x40 00000d42: MLOAD 00000d43: PUSH1 0x20 00000d45: ADD 00000d46: DUP1 00000d47: DUP1 00000d48: PUSH32 0x657865637574696f6e4461696c794c696d697400000000000000000000000000 00000d69: DUP2 00000d6a: MSTORE 00000d6b: POP 00000d6c: PUSH1 0x13 00000d6e: ADD 00000d6f: SWAP1 00000d70: POP 00000d71: PUSH1 0x40 00000d73: MLOAD 00000d74: PUSH1 0x20 00000d76: DUP2 00000d77: DUP4 00000d78: SUB 00000d79: SUB 00000d7a: DUP2 00000d7b: MSTORE 00000d7c: SWAP1 00000d7d: PUSH1 0x40 00000d7f: MSTORE 00000d80: PUSH1 0x40 00000d82: MLOAD 00000d83: DUP1 00000d84: DUP3 00000d85: DUP1 00000d86: MLOAD 00000d87: SWAP1 00000d88: PUSH1 0x20 00000d8a: ADD 00000d8b: SWAP1 00000d8c: DUP1 00000d8d: DUP4 00000d8e: DUP4 00000d8f: PUSH1 0x20 00000d91: DUP4 00000d92: LT 00000d93: PUSH2 0x0c57 00000d96: JUMPI 00000d97: DUP1 00000d98: MLOAD 00000d99: DUP3 00000d9a: MSTORE 00000d9b: PUSH1 0x1f 00000d9d: NOT 00000d9e: SWAP1 00000d9f: SWAP3 00000da0: ADD 00000da1: SWAP2 00000da2: PUSH1 0x20 00000da4: SWAP2 00000da5: DUP3 00000da6: ADD 00000da7: SWAP2 00000da8: ADD 00000da9: PUSH2 0x0c38 00000dac: JUMP 00000dad: JUMPDEST 00000dae: PUSH1 0x00 00000db0: PUSH1 0x02 00000db2: PUSH1 0x00 00000db4: PUSH1 0x40 00000db6: MLOAD 00000db7: PUSH1 0x20 00000db9: ADD 00000dba: DUP1 00000dbb: DUP1 00000dbc: PUSH32 0x66616c6c6261636b526563697069656e74000000000000000000000000000000 00000ddd: DUP2 00000dde: MSTORE 00000ddf: POP 00000de0: PUSH1 0x11 00000de2: ADD 00000de3: SWAP1 00000de4: POP 00000de5: PUSH1 0x40 00000de7: MLOAD 00000de8: PUSH1 0x20 00000dea: DUP2 00000deb: DUP4 00000dec: SUB 00000ded: SUB 00000dee: DUP2 00000def: MSTORE 00000df0: SWAP1 00000df1: PUSH1 0x40 00000df3: MSTORE 00000df4: PUSH1 0x40 00000df6: MLOAD 00000df7: DUP1 00000df8: DUP3 00000df9: DUP1 00000dfa: MLOAD 00000dfb: SWAP1 00000dfc: PUSH1 0x20 00000dfe: ADD 00000dff: SWAP1 00000e00: DUP1 00000e01: DUP4 00000e02: DUP4 00000e03: PUSH1 0x20 00000e05: DUP4 00000e06: LT 00000e07: PUSH2 0x06ee 00000e0a: JUMPI 00000e0b: DUP1 00000e0c: MLOAD 00000e0d: DUP3 00000e0e: MSTORE 00000e0f: PUSH1 0x1f 00000e11: NOT 00000e12: SWAP1 00000e13: SWAP3 00000e14: ADD 00000e15: SWAP2 00000e16: PUSH1 0x20 00000e18: SWAP2 00000e19: DUP3 00000e1a: ADD 00000e1b: SWAP2 00000e1c: ADD 00000e1d: PUSH2 0x06cf 00000e20: JUMP 00000e21: JUMPDEST 00000e22: PUSH1 0x00 00000e24: DUP1 00000e25: PUSH1 0x00 00000e27: DUP4 00000e28: PUSH1 0x40 00000e2a: MLOAD 00000e2b: PUSH1 0x20 00000e2d: ADD 00000e2e: DUP1 00000e2f: DUP1 00000e30: PUSH32 0x746f74616c457865637574656450657244617900000000000000000000000000 00000e51: DUP2 00000e52: MSTORE 00000e53: POP 00000e54: PUSH1 0x13 00000e56: ADD 00000e57: DUP3 00000e58: DUP2 00000e59: MSTORE 00000e5a: PUSH1 0x20 00000e5c: ADD 00000e5d: SWAP2 00000e5e: POP 00000e5f: POP 00000e60: PUSH1 0x40 00000e62: MLOAD 00000e63: PUSH1 0x20 00000e65: DUP2 00000e66: DUP4 00000e67: SUB 00000e68: SUB 00000e69: DUP2 00000e6a: MSTORE 00000e6b: SWAP1 00000e6c: PUSH1 0x40 00000e6e: MSTORE 00000e6f: PUSH1 0x40 00000e71: MLOAD 00000e72: DUP1 00000e73: DUP3 00000e74: DUP1 00000e75: MLOAD 00000e76: SWAP1 00000e77: PUSH1 0x20 00000e79: ADD 00000e7a: SWAP1 00000e7b: DUP1 00000e7c: DUP4 00000e7d: DUP4 00000e7e: PUSH1 0x20 00000e80: DUP4 00000e81: LT 00000e82: PUSH2 0x0a5e 00000e85: JUMPI 00000e86: DUP1 00000e87: MLOAD 00000e88: DUP3 00000e89: MSTORE 00000e8a: PUSH1 0x1f 00000e8c: NOT 00000e8d: SWAP1 00000e8e: SWAP3 00000e8f: ADD 00000e90: SWAP2 00000e91: PUSH1 0x20 00000e93: SWAP2 00000e94: DUP3 00000e95: ADD 00000e96: SWAP2 00000e97: ADD 00000e98: PUSH2 0x0a3f 00000e9b: JUMP 00000e9c: JUMPDEST 00000e9d: PUSH1 0x00 00000e9f: PUSH2 0x0eaf 00000ea2: DUP11 00000ea3: DUP11 00000ea4: DUP11 00000ea5: DUP11 00000ea6: DUP11 00000ea7: DUP11 00000ea8: DUP11 00000ea9: DUP11 00000eaa: DUP11 00000eab: PUSH2 0x1ffc 00000eae: JUMP 00000eaf: JUMPDEST 00000eb0: SWAP11 00000eb1: SWAP10 00000eb2: POP 00000eb3: POP 00000eb4: POP 00000eb5: POP 00000eb6: POP 00000eb7: POP 00000eb8: POP 00000eb9: POP 00000eba: POP 00000ebb: POP 00000ebc: JUMP 00000ebd: JUMPDEST 00000ebe: PUSH1 0x00 00000ec0: DUP1 00000ec1: PUSH1 0x00 00000ec3: PUSH1 0x40 00000ec5: MLOAD 00000ec6: PUSH1 0x20 00000ec8: ADD 00000ec9: DUP1 00000eca: DUP1 00000ecb: PUSH32 0x6461696c794c696d697400000000000000000000000000000000000000000000 00000eec: DUP2 00000eed: MSTORE 00000eee: POP 00000eef: PUSH1 0x0a 00000ef1: ADD 00000ef2: SWAP1 00000ef3: POP 00000ef4: PUSH1 0x40 00000ef6: MLOAD 00000ef7: PUSH1 0x20 00000ef9: DUP2 00000efa: DUP4 00000efb: SUB 00000efc: SUB 00000efd: DUP2 00000efe: MSTORE 00000eff: SWAP1 00000f00: PUSH1 0x40 00000f02: MSTORE 00000f03: PUSH1 0x40 00000f05: MLOAD 00000f06: DUP1 00000f07: DUP3 00000f08: DUP1 00000f09: MLOAD 00000f0a: SWAP1 00000f0b: PUSH1 0x20 00000f0d: ADD 00000f0e: SWAP1 00000f0f: DUP1 00000f10: DUP4 00000f11: DUP4 00000f12: PUSH1 0x20 00000f14: DUP4 00000f15: LT 00000f16: PUSH2 0x0c57 00000f19: JUMPI 00000f1a: DUP1 00000f1b: MLOAD 00000f1c: DUP3 00000f1d: MSTORE 00000f1e: PUSH1 0x1f 00000f20: NOT 00000f21: SWAP1 00000f22: SWAP3 00000f23: ADD 00000f24: SWAP2 00000f25: PUSH1 0x20 00000f27: SWAP2 00000f28: DUP3 00000f29: ADD 00000f2a: SWAP2 00000f2b: ADD 00000f2c: PUSH2 0x0c38 00000f2f: JUMP 00000f30: JUMPDEST 00000f31: PUSH2 0x0f38 00000f34: PUSH2 0x17a7 00000f37: JUMP 00000f38: JUMPDEST 00000f39: PUSH1 0x01 00000f3b: PUSH1 0xa0 00000f3d: PUSH1 0x02 00000f3f: EXP 00000f40: SUB 00000f41: AND 00000f42: CALLER 00000f43: EQ 00000f44: PUSH2 0x0f4c 00000f47: JUMPI 00000f48: PUSH1 0x00 00000f4a: DUP1 00000f4b: REVERT 00000f4c: JUMPDEST 00000f4d: PUSH2 0x0f54 00000f50: PUSH2 0x0679 00000f53: JUMP 00000f54: JUMPDEST 00000f55: PUSH1 0x01 00000f57: PUSH1 0xa0 00000f59: PUSH1 0x02 00000f5b: EXP 00000f5c: SUB 00000f5d: DUP4 00000f5e: DUP2 00000f5f: AND 00000f60: SWAP2 00000f61: AND 00000f62: EQ 00000f63: ISZERO 00000f64: PUSH2 0x0f6c 00000f67: JUMPI 00000f68: PUSH1 0x00 00000f6a: DUP1 00000f6b: REVERT 00000f6c: JUMPDEST 00000f6d: PUSH2 0x0f76 00000f70: DUP3 00000f71: DUP3 00000f72: PUSH2 0x2690 00000f75: JUMP 00000f76: JUMPDEST 00000f77: POP 00000f78: POP 00000f79: JUMP 00000f7a: JUMPDEST 00000f7b: PUSH1 0x00 00000f7d: DUP1 00000f7e: PUSH1 0x00 00000f80: PUSH1 0x40 00000f82: MLOAD 00000f83: PUSH1 0x20 00000f85: ADD 00000f86: DUP1 00000f87: DUP1 00000f88: PUSH32 0x66656550657263656e7400000000000000000000000000000000000000000000 00000fa9: DUP2 00000faa: MSTORE 00000fab: POP 00000fac: PUSH1 0x0a 00000fae: ADD 00000faf: SWAP1 00000fb0: POP 00000fb1: PUSH1 0x40 00000fb3: MLOAD 00000fb4: PUSH1 0x20 00000fb6: DUP2 00000fb7: DUP4 00000fb8: SUB 00000fb9: SUB 00000fba: DUP2 00000fbb: MSTORE 00000fbc: SWAP1 00000fbd: PUSH1 0x40 00000fbf: MSTORE 00000fc0: PUSH1 0x40 00000fc2: MLOAD 00000fc3: DUP1 00000fc4: DUP3 00000fc5: DUP1 00000fc6: MLOAD 00000fc7: SWAP1 00000fc8: PUSH1 0x20 00000fca: ADD 00000fcb: SWAP1 00000fcc: DUP1 00000fcd: DUP4 00000fce: DUP4 00000fcf: PUSH1 0x20 00000fd1: DUP4 00000fd2: LT 00000fd3: PUSH2 0x0c57 00000fd6: JUMPI 00000fd7: DUP1 00000fd8: MLOAD 00000fd9: DUP3 00000fda: MSTORE 00000fdb: PUSH1 0x1f 00000fdd: NOT 00000fde: SWAP1 00000fdf: SWAP3 00000fe0: ADD 00000fe1: SWAP2 00000fe2: PUSH1 0x20 00000fe4: SWAP2 00000fe5: DUP3 00000fe6: ADD 00000fe7: SWAP2 00000fe8: ADD 00000fe9: PUSH2 0x0c38 00000fec: JUMP 00000fed: JUMPDEST 00000fee: PUSH1 0x00 00000ff0: DUP1 00000ff1: PUSH2 0x1010 00000ff4: DUP4 00000ff5: PUSH2 0x1004 00000ff8: PUSH2 0x0fff 00000ffb: PUSH2 0x0bda 00000ffe: JUMP 00000fff: JUMPDEST 00001000: PUSH2 0x0e21 00001003: JUMP 00001004: JUMPDEST 00001005: SWAP1 00001006: PUSH4 0xffffffff 0000100b: PUSH2 0x284c 0000100e: AND 0000100f: JUMP 00001010: JUMPDEST 00001011: SWAP1 00001012: POP 00001013: DUP1 00001014: PUSH2 0x101b 00001017: PUSH2 0x0d3a 0000101a: JUMP 0000101b: JUMPDEST 0000101c: LT 0000101d: ISZERO 0000101e: DUP1 0000101f: ISZERO 00001020: PUSH2 0x1030 00001023: JUMPI 00001024: POP 00001025: PUSH2 0x102c 00001028: PUSH2 0x1037 0000102b: JUMP 0000102c: JUMPDEST 0000102d: DUP4 0000102e: GT 0000102f: ISZERO 00001030: JUMPDEST 00001031: SWAP4 00001032: SWAP3 00001033: POP 00001034: POP 00001035: POP 00001036: JUMP 00001037: JUMPDEST 00001038: PUSH1 0x00 0000103a: DUP1 0000103b: PUSH1 0x00 0000103d: PUSH1 0x40 0000103f: MLOAD 00001040: PUSH1 0x20 00001042: ADD 00001043: DUP1 00001044: DUP1 00001045: PUSH32 0x657865637574696f6e4d61785065725478000000000000000000000000000000 00001066: DUP2 00001067: MSTORE 00001068: POP 00001069: PUSH1 0x11 0000106b: ADD 0000106c: SWAP1 0000106d: POP 0000106e: PUSH1 0x40 00001070: MLOAD 00001071: PUSH1 0x20 00001073: DUP2 00001074: DUP4 00001075: SUB 00001076: SUB 00001077: DUP2 00001078: MSTORE 00001079: SWAP1 0000107a: PUSH1 0x40 0000107c: MSTORE 0000107d: PUSH1 0x40 0000107f: MLOAD 00001080: DUP1 00001081: DUP3 00001082: DUP1 00001083: MLOAD 00001084: SWAP1 00001085: PUSH1 0x20 00001087: ADD 00001088: SWAP1 00001089: DUP1 0000108a: DUP4 0000108b: DUP4 0000108c: PUSH1 0x20 0000108e: DUP4 0000108f: LT 00001090: PUSH2 0x0c57 00001093: JUMPI 00001094: DUP1 00001095: MLOAD 00001096: DUP3 00001097: MSTORE 00001098: PUSH1 0x1f 0000109a: NOT 0000109b: SWAP1 0000109c: SWAP3 0000109d: ADD 0000109e: SWAP2 0000109f: PUSH1 0x20 000010a1: SWAP2 000010a2: DUP3 000010a3: ADD 000010a4: SWAP2 000010a5: ADD 000010a6: PUSH2 0x0c38 000010a9: JUMP 000010aa: JUMPDEST 000010ab: PUSH1 0x00 000010ad: PUSH2 0x10b4 000010b0: PUSH2 0x1196 000010b3: JUMP 000010b4: JUMPDEST 000010b5: PUSH1 0x01 000010b7: PUSH1 0xa0 000010b9: PUSH1 0x02 000010bb: EXP 000010bc: SUB 000010bd: AND 000010be: PUSH4 0x8d068043 000010c3: PUSH1 0x40 000010c5: MLOAD 000010c6: DUP2 000010c7: PUSH4 0xffffffff 000010cc: AND 000010cd: PUSH1 0xe0 000010cf: PUSH1 0x02 000010d1: EXP 000010d2: MUL 000010d3: DUP2 000010d4: MSTORE 000010d5: PUSH1 0x04 000010d7: ADD 000010d8: PUSH1 0x20 000010da: PUSH1 0x40 000010dc: MLOAD 000010dd: DUP1 000010de: DUP4 000010df: SUB 000010e0: DUP2 000010e1: PUSH1 0x00 000010e3: DUP8 000010e4: DUP1 000010e5: EXTCODESIZE 000010e6: ISZERO 000010e7: DUP1 000010e8: ISZERO 000010e9: PUSH2 0x10f1 000010ec: JUMPI 000010ed: PUSH1 0x00 000010ef: DUP1 000010f0: REVERT 000010f1: JUMPDEST 000010f2: POP 000010f3: GAS 000010f4: CALL 000010f5: ISZERO 000010f6: DUP1 000010f7: ISZERO 000010f8: PUSH2 0x1105 000010fb: JUMPI 000010fc: RETURNDATASIZE 000010fd: PUSH1 0x00 000010ff: DUP1 00001100: RETURNDATACOPY 00001101: RETURNDATASIZE 00001102: PUSH1 0x00 00001104: REVERT 00001105: JUMPDEST 00001106: POP 00001107: POP 00001108: POP 00001109: POP 0000110a: PUSH1 0x40 0000110c: MLOAD 0000110d: RETURNDATASIZE 0000110e: PUSH1 0x20 00001110: DUP2 00001111: LT 00001112: ISZERO 00001113: PUSH2 0x111b 00001116: JUMPI 00001117: PUSH1 0x00 00001119: DUP1 0000111a: REVERT 0000111b: JUMPDEST 0000111c: POP 0000111d: MLOAD 0000111e: SWAP1 0000111f: POP 00001120: SWAP1 00001121: JUMP 00001122: JUMPDEST 00001123: PUSH1 0x00 00001125: PUSH1 0x02 00001127: PUSH1 0x00 00001129: PUSH1 0x40 0000112b: MLOAD 0000112c: PUSH1 0x20 0000112e: ADD 0000112f: DUP1 00001130: DUP1 00001131: PUSH32 0x6f776e6572000000000000000000000000000000000000000000000000000000 00001152: DUP2 00001153: MSTORE 00001154: POP 00001155: PUSH1 0x05 00001157: ADD 00001158: SWAP1 00001159: POP 0000115a: PUSH1 0x40 0000115c: MLOAD 0000115d: PUSH1 0x20 0000115f: DUP2 00001160: DUP4 00001161: SUB 00001162: SUB 00001163: DUP2 00001164: MSTORE 00001165: SWAP1 00001166: PUSH1 0x40 00001168: MSTORE 00001169: PUSH1 0x40 0000116b: MLOAD 0000116c: DUP1 0000116d: DUP3 0000116e: DUP1 0000116f: MLOAD 00001170: SWAP1 00001171: PUSH1 0x20 00001173: ADD 00001174: SWAP1 00001175: DUP1 00001176: DUP4 00001177: DUP4 00001178: PUSH1 0x20 0000117a: DUP4 0000117b: LT 0000117c: PUSH2 0x06ee 0000117f: JUMPI 00001180: DUP1 00001181: MLOAD 00001182: DUP3 00001183: MSTORE 00001184: PUSH1 0x1f 00001186: NOT 00001187: SWAP1 00001188: SWAP3 00001189: ADD 0000118a: SWAP2 0000118b: PUSH1 0x20 0000118d: SWAP2 0000118e: DUP3 0000118f: ADD 00001190: SWAP2 00001191: ADD 00001192: PUSH2 0x06cf 00001195: JUMP 00001196: JUMPDEST 00001197: PUSH1 0x00 00001199: PUSH1 0x02 0000119b: PUSH1 0x00 0000119d: PUSH1 0x40 0000119f: MLOAD 000011a0: PUSH1 0x20 000011a2: ADD 000011a3: DUP1 000011a4: DUP1 000011a5: PUSH32 0x76616c696461746f72436f6e7472616374000000000000000000000000000000 000011c6: DUP2 000011c7: MSTORE 000011c8: POP 000011c9: PUSH1 0x11 000011cb: ADD 000011cc: SWAP1 000011cd: POP 000011ce: PUSH1 0x40 000011d0: MLOAD 000011d1: PUSH1 0x20 000011d3: DUP2 000011d4: DUP4 000011d5: SUB 000011d6: SUB 000011d7: DUP2 000011d8: MSTORE 000011d9: SWAP1 000011da: PUSH1 0x40 000011dc: MSTORE 000011dd: PUSH1 0x40 000011df: MLOAD 000011e0: DUP1 000011e1: DUP3 000011e2: DUP1 000011e3: MLOAD 000011e4: SWAP1 000011e5: PUSH1 0x20 000011e7: ADD 000011e8: SWAP1 000011e9: DUP1 000011ea: DUP4 000011eb: DUP4 000011ec: PUSH1 0x20 000011ee: DUP4 000011ef: LT 000011f0: PUSH2 0x06ee 000011f3: JUMPI 000011f4: DUP1 000011f5: MLOAD 000011f6: DUP3 000011f7: MSTORE 000011f8: PUSH1 0x1f 000011fa: NOT 000011fb: SWAP1 000011fc: SWAP3 000011fd: ADD 000011fe: SWAP2 000011ff: PUSH1 0x20 00001201: SWAP2 00001202: DUP3 00001203: ADD 00001204: SWAP2 00001205: ADD 00001206: PUSH2 0x06cf 00001209: JUMP 0000120a: JUMPDEST 0000120b: PUSH1 0x00 0000120d: PUSH2 0x1215 00001210: DUP3 00001211: PUSH2 0x1f0a 00001214: JUMP 00001215: JUMPDEST 00001216: PUSH2 0x1226 00001219: DUP12 0000121a: DUP12 0000121b: DUP12 0000121c: DUP12 0000121d: DUP12 0000121e: DUP12 0000121f: DUP12 00001220: DUP12 00001221: DUP12 00001222: PUSH2 0x0e9c 00001225: JUMP 00001226: JUMPDEST 00001227: SWAP12 00001228: SWAP11 00001229: POP 0000122a: POP 0000122b: POP 0000122c: POP 0000122d: POP 0000122e: POP 0000122f: POP 00001230: POP 00001231: POP 00001232: POP 00001233: POP 00001234: JUMP 00001235: JUMPDEST 00001236: PUSH1 0x00 00001238: DUP1 00001239: PUSH1 0x00 0000123b: PUSH1 0x40 0000123d: MLOAD 0000123e: PUSH1 0x20 00001240: ADD 00001241: DUP1 00001242: DUP1 00001243: PUSH32 0x6465706c6f7965644174426c6f636b0000000000000000000000000000000000 00001264: DUP2 00001265: MSTORE 00001266: POP 00001267: PUSH1 0x0f 00001269: ADD 0000126a: SWAP1 0000126b: POP 0000126c: PUSH1 0x40 0000126e: MLOAD 0000126f: PUSH1 0x20 00001271: DUP2 00001272: DUP4 00001273: SUB 00001274: SUB 00001275: DUP2 00001276: MSTORE 00001277: SWAP1 00001278: PUSH1 0x40 0000127a: MSTORE 0000127b: PUSH1 0x40 0000127d: MLOAD 0000127e: DUP1 0000127f: DUP3 00001280: DUP1 00001281: MLOAD 00001282: SWAP1 00001283: PUSH1 0x20 00001285: ADD 00001286: SWAP1 00001287: DUP1 00001288: DUP4 00001289: DUP4 0000128a: PUSH1 0x20 0000128c: DUP4 0000128d: LT 0000128e: PUSH2 0x0c57 00001291: JUMPI 00001292: DUP1 00001293: MLOAD 00001294: DUP3 00001295: MSTORE 00001296: PUSH1 0x1f 00001298: NOT 00001299: SWAP1 0000129a: SWAP3 0000129b: ADD 0000129c: SWAP2 0000129d: PUSH1 0x20 0000129f: SWAP2 000012a0: DUP3 000012a1: ADD 000012a2: SWAP2 000012a3: ADD 000012a4: PUSH2 0x0c38 000012a7: JUMP 000012a8: JUMPDEST 000012a9: PUSH1 0x02 000012ab: DUP1 000012ac: PUSH1 0x00 000012ae: SWAP1 000012af: SWAP2 000012b0: SWAP3 000012b1: JUMP 000012b2: JUMPDEST 000012b3: PUSH2 0x12ba 000012b6: PUSH2 0x1122 000012b9: JUMP 000012ba: JUMPDEST 000012bb: PUSH1 0x01 000012bd: PUSH1 0xa0 000012bf: PUSH1 0x02 000012c1: EXP 000012c2: SUB 000012c3: AND 000012c4: CALLER 000012c5: EQ 000012c6: PUSH2 0x12ce 000012c9: JUMPI 000012ca: PUSH1 0x00 000012cc: DUP1 000012cd: REVERT 000012ce: JUMPDEST 000012cf: PUSH2 0x12d6 000012d2: PUSH2 0x0ebd 000012d5: JUMP 000012d6: JUMPDEST 000012d7: DUP2 000012d8: LT 000012d9: DUP1 000012da: ISZERO 000012db: PUSH2 0x12ea 000012de: JUMPI 000012df: POP 000012e0: PUSH2 0x12e7 000012e3: PUSH2 0x1985 000012e6: JUMP 000012e7: JUMPDEST 000012e8: DUP2 000012e9: LT 000012ea: JUMPDEST 000012eb: ISZERO 000012ec: ISZERO 000012ed: PUSH2 0x12f5 000012f0: JUMPI 000012f1: PUSH1 0x00 000012f3: DUP1 000012f4: REVERT 000012f5: JUMPDEST 000012f6: DUP1 000012f7: PUSH1 0x00 000012f9: DUP1 000012fa: PUSH1 0x40 000012fc: MLOAD 000012fd: PUSH1 0x20 000012ff: ADD 00001300: DUP1 00001301: DUP1 00001302: PUSH32 0x6d696e5065725478000000000000000000000000000000000000000000000000 00001323: DUP2 00001324: MSTORE 00001325: POP 00001326: PUSH1 0x08 00001328: ADD 00001329: SWAP1 0000132a: POP 0000132b: PUSH1 0x40 0000132d: MLOAD 0000132e: PUSH1 0x20 00001330: DUP2 00001331: DUP4 00001332: SUB 00001333: SUB 00001334: DUP2 00001335: MSTORE 00001336: SWAP1 00001337: PUSH1 0x40 00001339: MSTORE 0000133a: PUSH1 0x40 0000133c: MLOAD 0000133d: DUP1 0000133e: DUP3 0000133f: DUP1 00001340: MLOAD 00001341: SWAP1 00001342: PUSH1 0x20 00001344: ADD 00001345: SWAP1 00001346: DUP1 00001347: DUP4 00001348: DUP4 00001349: JUMPDEST 0000134a: PUSH1 0x20 0000134c: DUP4 0000134d: LT 0000134e: PUSH2 0x1368 00001351: JUMPI 00001352: DUP1 00001353: MLOAD 00001354: DUP3 00001355: MSTORE 00001356: PUSH1 0x1f 00001358: NOT 00001359: SWAP1 0000135a: SWAP3 0000135b: ADD 0000135c: SWAP2 0000135d: PUSH1 0x20 0000135f: SWAP2 00001360: DUP3 00001361: ADD 00001362: SWAP2 00001363: ADD 00001364: PUSH2 0x1349 00001367: JUMP 00001368: JUMPDEST 00001369: MLOAD 0000136a: DUP2 0000136b: MLOAD 0000136c: PUSH1 0x20 0000136e: SWAP4 0000136f: DUP5 00001370: SUB 00001371: PUSH2 0x0100 00001374: EXP 00001375: PUSH1 0x00 00001377: NOT 00001378: ADD 00001379: DUP1 0000137a: NOT 0000137b: SWAP1 0000137c: SWAP3 0000137d: AND 0000137e: SWAP2 0000137f: AND 00001380: OR 00001381: SWAP1 00001382: MSTORE 00001383: PUSH1 0x40 00001385: DUP1 00001386: MLOAD 00001387: SWAP3 00001388: SWAP1 00001389: SWAP5 0000138a: ADD 0000138b: DUP3 0000138c: SWAP1 0000138d: SUB 0000138e: SWAP1 0000138f: SWAP2 00001390: KECCAK256 00001391: DUP7 00001392: MSTORE 00001393: DUP6 00001394: ADD 00001395: SWAP6 00001396: SWAP1 00001397: SWAP6 00001398: MSTORE 00001399: SWAP3 0000139a: SWAP1 0000139b: SWAP3 0000139c: ADD 0000139d: PUSH1 0x00 0000139f: KECCAK256 000013a0: SWAP4 000013a1: SWAP1 000013a2: SWAP4 000013a3: SSTORE 000013a4: POP 000013a5: POP 000013a6: POP 000013a7: POP 000013a8: JUMP 000013a9: JUMPDEST 000013aa: PUSH2 0x13b1 000013ad: PUSH2 0x1122 000013b0: JUMP 000013b1: JUMPDEST 000013b2: PUSH1 0x01 000013b4: PUSH1 0xa0 000013b6: PUSH1 0x02 000013b8: EXP 000013b9: SUB 000013ba: AND 000013bb: CALLER 000013bc: EQ 000013bd: PUSH2 0x13c5 000013c0: JUMPI 000013c1: PUSH1 0x00 000013c3: DUP1 000013c4: REVERT 000013c5: JUMPDEST 000013c6: PUSH1 0x00 000013c8: DUP2 000013c9: GT 000013ca: PUSH2 0x13d2 000013cd: JUMPI 000013ce: PUSH1 0x00 000013d0: DUP1 000013d1: REVERT 000013d2: JUMPDEST 000013d3: DUP1 000013d4: PUSH1 0x00 000013d6: DUP1 000013d7: PUSH1 0x40 000013d9: MLOAD 000013da: PUSH1 0x20 000013dc: ADD 000013dd: DUP1 000013de: DUP1 000013df: PUSH32 0x7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000 00001400: DUP2 00001401: MSTORE 00001402: POP 00001403: PUSH1 0x1a 00001405: ADD 00001406: SWAP1 00001407: POP 00001408: PUSH1 0x40 0000140a: MLOAD 0000140b: PUSH1 0x20 0000140d: DUP2 0000140e: DUP4 0000140f: SUB 00001410: SUB 00001411: DUP2 00001412: MSTORE 00001413: SWAP1 00001414: PUSH1 0x40 00001416: MSTORE 00001417: PUSH1 0x40 00001419: MLOAD 0000141a: DUP1 0000141b: DUP3 0000141c: DUP1 0000141d: MLOAD 0000141e: SWAP1 0000141f: PUSH1 0x20 00001421: ADD 00001422: SWAP1 00001423: DUP1 00001424: DUP4 00001425: DUP4 00001426: JUMPDEST 00001427: PUSH1 0x20 00001429: DUP4 0000142a: LT 0000142b: PUSH2 0x1445 0000142e: JUMPI 0000142f: DUP1 00001430: MLOAD 00001431: DUP3 00001432: MSTORE 00001433: PUSH1 0x1f 00001435: NOT 00001436: SWAP1 00001437: SWAP3 00001438: ADD 00001439: SWAP2 0000143a: PUSH1 0x20 0000143c: SWAP2 0000143d: DUP3 0000143e: ADD 0000143f: SWAP2 00001440: ADD 00001441: PUSH2 0x1426 00001444: JUMP 00001445: JUMPDEST 00001446: MLOAD 00001447: DUP2 00001448: MLOAD 00001449: PUSH1 0x00 0000144b: NOT 0000144c: PUSH1 0x20 0000144e: SWAP5 0000144f: DUP6 00001450: SUB 00001451: PUSH2 0x0100 00001454: EXP 00001455: ADD 00001456: SWAP1 00001457: DUP2 00001458: AND 00001459: SWAP1 0000145a: NOT 0000145b: SWAP2 0000145c: SWAP1 0000145d: SWAP2 0000145e: AND 0000145f: OR 00001460: SWAP1 00001461: MSTORE 00001462: PUSH1 0x40 00001464: DUP1 00001465: MLOAD 00001466: SWAP5 00001467: SWAP1 00001468: SWAP3 00001469: ADD 0000146a: DUP5 0000146b: SWAP1 0000146c: SUB 0000146d: SWAP1 0000146e: SWAP4 0000146f: KECCAK256 00001470: DUP7 00001471: MSTORE 00001472: DUP6 00001473: DUP4 00001474: ADD 00001475: SWAP7 00001476: SWAP1 00001477: SWAP7 00001478: MSTORE 00001479: POP 0000147a: SWAP3 0000147b: DUP5 0000147c: ADD 0000147d: PUSH1 0x00 0000147f: KECCAK256 00001480: SWAP5 00001481: SWAP1 00001482: SWAP5 00001483: SSTORE 00001484: POP 00001485: DUP2 00001486: MLOAD 00001487: DUP5 00001488: DUP2 00001489: MSTORE 0000148a: SWAP2 0000148b: MLOAD 0000148c: PUSH32 0x4fb76205cd57c896b21511d2114137d8e901b4ccd659e1a0f97d6306795264fb 000014ad: SWAP4 000014ae: POP 000014af: SWAP2 000014b0: DUP3 000014b1: SWAP1 000014b2: SUB 000014b3: ADD 000014b4: SWAP1 000014b5: LOG1 000014b6: POP 000014b7: JUMP 000014b8: JUMPDEST 000014b9: PUSH2 0x14c0 000014bc: PUSH2 0x1122 000014bf: JUMP 000014c0: JUMPDEST 000014c1: PUSH1 0x01 000014c3: PUSH1 0xa0 000014c5: PUSH1 0x02 000014c7: EXP 000014c8: SUB 000014c9: AND 000014ca: CALLER 000014cb: EQ 000014cc: PUSH2 0x14d4 000014cf: JUMPI 000014d0: PUSH1 0x00 000014d2: DUP1 000014d3: REVERT 000014d4: JUMPDEST 000014d5: DUP1 000014d6: PUSH1 0x00 000014d8: DUP1 000014d9: PUSH1 0x40 000014db: MLOAD 000014dc: PUSH1 0x20 000014de: ADD 000014df: DUP1 000014e0: DUP1 000014e1: PUSH32 0x6461696c794c696d697400000000000000000000000000000000000000000000 00001502: DUP2 00001503: MSTORE 00001504: POP 00001505: PUSH1 0x0a 00001507: ADD 00001508: SWAP1 00001509: POP 0000150a: PUSH1 0x40 0000150c: MLOAD 0000150d: PUSH1 0x20 0000150f: DUP2 00001510: DUP4 00001511: SUB 00001512: SUB 00001513: DUP2 00001514: MSTORE 00001515: SWAP1 00001516: PUSH1 0x40 00001518: MSTORE 00001519: PUSH1 0x40 0000151b: MLOAD 0000151c: DUP1 0000151d: DUP3 0000151e: DUP1 0000151f: MLOAD 00001520: SWAP1 00001521: PUSH1 0x20 00001523: ADD 00001524: SWAP1 00001525: DUP1 00001526: DUP4 00001527: DUP4 00001528: JUMPDEST 00001529: PUSH1 0x20 0000152b: DUP4 0000152c: LT 0000152d: PUSH2 0x1547 00001530: JUMPI 00001531: DUP1 00001532: MLOAD 00001533: DUP3 00001534: MSTORE 00001535: PUSH1 0x1f 00001537: NOT 00001538: SWAP1 00001539: SWAP3 0000153a: ADD 0000153b: SWAP2 0000153c: PUSH1 0x20 0000153e: SWAP2 0000153f: DUP3 00001540: ADD 00001541: SWAP2 00001542: ADD 00001543: PUSH2 0x1528 00001546: JUMP 00001547: JUMPDEST 00001548: MLOAD 00001549: DUP2 0000154a: MLOAD 0000154b: PUSH1 0x00 0000154d: NOT 0000154e: PUSH1 0x20 00001550: SWAP5 00001551: DUP6 00001552: SUB 00001553: PUSH2 0x0100 00001556: EXP 00001557: ADD 00001558: SWAP1 00001559: DUP2 0000155a: AND 0000155b: SWAP1 0000155c: NOT 0000155d: SWAP2 0000155e: SWAP1 0000155f: SWAP2 00001560: AND 00001561: OR 00001562: SWAP1 00001563: MSTORE 00001564: PUSH1 0x40 00001566: DUP1 00001567: MLOAD 00001568: SWAP5 00001569: SWAP1 0000156a: SWAP3 0000156b: ADD 0000156c: DUP5 0000156d: SWAP1 0000156e: SUB 0000156f: SWAP1 00001570: SWAP4 00001571: KECCAK256 00001572: DUP7 00001573: MSTORE 00001574: DUP6 00001575: DUP4 00001576: ADD 00001577: SWAP7 00001578: SWAP1 00001579: SWAP7 0000157a: MSTORE 0000157b: POP 0000157c: SWAP3 0000157d: DUP5 0000157e: ADD 0000157f: PUSH1 0x00 00001581: KECCAK256 00001582: SWAP5 00001583: SWAP1 00001584: SWAP5 00001585: SSTORE 00001586: POP 00001587: DUP2 00001588: MLOAD 00001589: DUP5 0000158a: DUP2 0000158b: MSTORE 0000158c: SWAP2 0000158d: MLOAD 0000158e: PUSH32 0xad4123ae17c414d9c6d2fec478b402e6b01856cc250fd01fbfd252fda0089d3c 000015af: SWAP4 000015b0: POP 000015b1: SWAP2 000015b2: DUP3 000015b3: SWAP1 000015b4: SUB 000015b5: ADD 000015b6: SWAP1 000015b7: LOG1 000015b8: POP 000015b9: JUMP 000015ba: JUMPDEST 000015bb: PUSH2 0x15c2 000015be: PUSH2 0x1122 000015c1: JUMP 000015c2: JUMPDEST 000015c3: PUSH1 0x01 000015c5: PUSH1 0xa0 000015c7: PUSH1 0x02 000015c9: EXP 000015ca: SUB 000015cb: AND 000015cc: CALLER 000015cd: EQ 000015ce: PUSH2 0x15d6 000015d1: JUMPI 000015d2: PUSH1 0x00 000015d4: DUP1 000015d5: REVERT 000015d6: JUMPDEST 000015d7: PUSH1 0x00 000015d9: DUP2 000015da: GT 000015db: PUSH2 0x15e3 000015de: JUMPI 000015df: PUSH1 0x00 000015e1: DUP1 000015e2: REVERT 000015e3: JUMPDEST 000015e4: DUP1 000015e5: PUSH1 0x00 000015e7: DUP1 000015e8: PUSH1 0x40 000015ea: MLOAD 000015eb: PUSH1 0x20 000015ed: ADD 000015ee: DUP1 000015ef: DUP1 000015f0: PUSH32 0x6761735072696365000000000000000000000000000000000000000000000000 00001611: DUP2 00001612: MSTORE 00001613: POP 00001614: PUSH1 0x08 00001616: ADD 00001617: SWAP1 00001618: POP 00001619: PUSH1 0x40 0000161b: MLOAD 0000161c: PUSH1 0x20 0000161e: DUP2 0000161f: DUP4 00001620: SUB 00001621: SUB 00001622: DUP2 00001623: MSTORE 00001624: SWAP1 00001625: PUSH1 0x40 00001627: MSTORE 00001628: PUSH1 0x40 0000162a: MLOAD 0000162b: DUP1 0000162c: DUP3 0000162d: DUP1 0000162e: MLOAD 0000162f: SWAP1 00001630: PUSH1 0x20 00001632: ADD 00001633: SWAP1 00001634: DUP1 00001635: DUP4 00001636: DUP4 00001637: JUMPDEST 00001638: PUSH1 0x20 0000163a: DUP4 0000163b: LT 0000163c: PUSH2 0x1656 0000163f: JUMPI 00001640: DUP1 00001641: MLOAD 00001642: DUP3 00001643: MSTORE 00001644: PUSH1 0x1f 00001646: NOT 00001647: SWAP1 00001648: SWAP3 00001649: ADD 0000164a: SWAP2 0000164b: PUSH1 0x20 0000164d: SWAP2 0000164e: DUP3 0000164f: ADD 00001650: SWAP2 00001651: ADD 00001652: PUSH2 0x1637 00001655: JUMP 00001656: JUMPDEST 00001657: MLOAD 00001658: DUP2 00001659: MLOAD 0000165a: PUSH1 0x00 0000165c: NOT 0000165d: PUSH1 0x20 0000165f: SWAP5 00001660: DUP6 00001661: SUB 00001662: PUSH2 0x0100 00001665: EXP 00001666: ADD 00001667: SWAP1 00001668: DUP2 00001669: AND 0000166a: SWAP1 0000166b: NOT 0000166c: SWAP2 0000166d: SWAP1 0000166e: SWAP2 0000166f: AND 00001670: OR 00001671: SWAP1 00001672: MSTORE 00001673: PUSH1 0x40 00001675: DUP1 00001676: MLOAD 00001677: SWAP5 00001678: SWAP1 00001679: SWAP3 0000167a: ADD 0000167b: DUP5 0000167c: SWAP1 0000167d: SUB 0000167e: SWAP1 0000167f: SWAP4 00001680: KECCAK256 00001681: DUP7 00001682: MSTORE 00001683: DUP6 00001684: DUP4 00001685: ADD 00001686: SWAP7 00001687: SWAP1 00001688: SWAP7 00001689: MSTORE 0000168a: POP 0000168b: SWAP3 0000168c: DUP5 0000168d: ADD 0000168e: PUSH1 0x00 00001690: KECCAK256 00001691: SWAP5 00001692: SWAP1 00001693: SWAP5 00001694: SSTORE 00001695: POP 00001696: DUP2 00001697: MLOAD 00001698: DUP5 00001699: DUP2 0000169a: MSTORE 0000169b: SWAP2 0000169c: MLOAD 0000169d: PUSH32 0x52264b89e0fceafb26e79fd49ef8a366eb6297483bf4035b027f0c99a7ad512e 000016be: SWAP4 000016bf: POP 000016c0: SWAP2 000016c1: DUP3 000016c2: SWAP1 000016c3: SUB 000016c4: ADD 000016c5: SWAP1 000016c6: LOG1 000016c7: POP 000016c8: JUMP 000016c9: JUMPDEST 000016ca: PUSH1 0x00 000016cc: PUSH2 0x2710 000016cf: PUSH2 0x1030 000016d2: PUSH2 0x16f9 000016d5: DUP3 000016d6: PUSH2 0x16ed 000016d9: PUSH2 0x16e0 000016dc: PUSH2 0x0f7a 000016df: JUMP 000016e0: JUMPDEST 000016e1: DUP8 000016e2: SWAP1 000016e3: PUSH4 0xffffffff 000016e8: PUSH2 0x285b 000016eb: AND 000016ec: JUMP 000016ed: JUMPDEST 000016ee: SWAP1 000016ef: PUSH4 0xffffffff 000016f4: PUSH2 0x2886 000016f7: AND 000016f8: JUMP 000016f9: JUMPDEST 000016fa: DUP5 000016fb: SWAP1 000016fc: PUSH4 0xffffffff 00001701: PUSH2 0x289d 00001704: AND 00001705: JUMP 00001706: JUMPDEST 00001707: PUSH2 0x170e 0000170a: PUSH2 0x1122 0000170d: JUMP 0000170e: JUMPDEST 0000170f: PUSH1 0x01 00001711: PUSH1 0xa0 00001713: PUSH1 0x02 00001715: EXP 00001716: SUB 00001717: AND 00001718: CALLER 00001719: EQ 0000171a: PUSH2 0x1722 0000171d: JUMPI 0000171e: PUSH1 0x00 00001720: DUP1 00001721: REVERT 00001722: JUMPDEST 00001723: PUSH2 0x172a 00001726: PUSH2 0x0ebd 00001729: JUMP 0000172a: JUMPDEST 0000172b: DUP2 0000172c: LT 0000172d: PUSH2 0x1735 00001730: JUMPI 00001731: PUSH1 0x00 00001733: DUP1 00001734: REVERT 00001735: JUMPDEST 00001736: DUP1 00001737: PUSH1 0x00 00001739: DUP1 0000173a: PUSH1 0x40 0000173c: MLOAD 0000173d: PUSH1 0x20 0000173f: ADD 00001740: DUP1 00001741: DUP1 00001742: PUSH32 0x6d61785065725478000000000000000000000000000000000000000000000000 00001763: DUP2 00001764: MSTORE 00001765: POP 00001766: PUSH1 0x08 00001768: ADD 00001769: SWAP1 0000176a: POP 0000176b: PUSH1 0x40 0000176d: MLOAD 0000176e: PUSH1 0x20 00001770: DUP2 00001771: DUP4 00001772: SUB 00001773: SUB 00001774: DUP2 00001775: MSTORE 00001776: SWAP1 00001777: PUSH1 0x40 00001779: MSTORE 0000177a: PUSH1 0x40 0000177c: MLOAD 0000177d: DUP1 0000177e: DUP3 0000177f: DUP1 00001780: MLOAD 00001781: SWAP1 00001782: PUSH1 0x20 00001784: ADD 00001785: SWAP1 00001786: DUP1 00001787: DUP4 00001788: DUP4 00001789: PUSH1 0x20 0000178b: DUP4 0000178c: LT 0000178d: PUSH2 0x1368 00001790: JUMPI 00001791: DUP1 00001792: MLOAD 00001793: DUP3 00001794: MSTORE 00001795: PUSH1 0x1f 00001797: NOT 00001798: SWAP1 00001799: SWAP3 0000179a: ADD 0000179b: SWAP2 0000179c: PUSH1 0x20 0000179e: SWAP2 0000179f: DUP3 000017a0: ADD 000017a1: SWAP2 000017a2: ADD 000017a3: PUSH2 0x1349 000017a6: JUMP 000017a7: JUMPDEST 000017a8: PUSH1 0x00 000017aa: ADDRESS 000017ab: PUSH1 0x01 000017ad: PUSH1 0xa0 000017af: PUSH1 0x02 000017b1: EXP 000017b2: SUB 000017b3: AND 000017b4: PUSH4 0x025313a2 000017b9: PUSH1 0x40 000017bb: MLOAD 000017bc: DUP2 000017bd: PUSH4 0xffffffff 000017c2: AND 000017c3: PUSH1 0xe0 000017c5: PUSH1 0x02 000017c7: EXP 000017c8: MUL 000017c9: DUP2 000017ca: MSTORE 000017cb: PUSH1 0x04 000017cd: ADD 000017ce: PUSH1 0x20 000017d0: PUSH1 0x40 000017d2: MLOAD 000017d3: DUP1 000017d4: DUP4 000017d5: SUB 000017d6: DUP2 000017d7: PUSH1 0x00 000017d9: DUP8 000017da: DUP1 000017db: EXTCODESIZE 000017dc: ISZERO 000017dd: DUP1 000017de: ISZERO 000017df: PUSH2 0x10f1 000017e2: JUMPI 000017e3: PUSH1 0x00 000017e5: DUP1 000017e6: REVERT 000017e7: JUMPDEST 000017e8: PUSH1 0x00 000017ea: DUP1 000017eb: PUSH1 0x00 000017ed: PUSH1 0x40 000017ef: MLOAD 000017f0: PUSH1 0x20 000017f2: ADD 000017f3: DUP1 000017f4: DUP1 000017f5: PUSH32 0x6d696e5065725478000000000000000000000000000000000000000000000000 00001816: DUP2 00001817: MSTORE 00001818: POP 00001819: PUSH1 0x08 0000181b: ADD 0000181c: SWAP1 0000181d: POP 0000181e: PUSH1 0x40 00001820: MLOAD 00001821: PUSH1 0x20 00001823: DUP2 00001824: DUP4 00001825: SUB 00001826: SUB 00001827: DUP2 00001828: MSTORE 00001829: SWAP1 0000182a: PUSH1 0x40 0000182c: MSTORE 0000182d: PUSH1 0x40 0000182f: MLOAD 00001830: DUP1 00001831: DUP3 00001832: DUP1 00001833: MLOAD 00001834: SWAP1 00001835: PUSH1 0x20 00001837: ADD 00001838: SWAP1 00001839: DUP1 0000183a: DUP4 0000183b: DUP4 0000183c: PUSH1 0x20 0000183e: DUP4 0000183f: LT 00001840: PUSH2 0x0c57 00001843: JUMPI 00001844: DUP1 00001845: MLOAD 00001846: DUP3 00001847: MSTORE 00001848: PUSH1 0x1f 0000184a: NOT 0000184b: SWAP1 0000184c: SWAP3 0000184d: ADD 0000184e: SWAP2 0000184f: PUSH1 0x20 00001851: SWAP2 00001852: DUP3 00001853: ADD 00001854: SWAP2 00001855: ADD 00001856: PUSH2 0x0c38 00001859: JUMP 0000185a: JUMPDEST 0000185b: PUSH1 0x00 0000185d: DUP1 0000185e: PUSH2 0x1871 00001861: DUP4 00001862: PUSH2 0x1004 00001865: PUSH2 0x186c 00001868: PUSH2 0x0bda 0000186b: JUMP 0000186c: JUMPDEST 0000186d: PUSH2 0x09e2 00001870: JUMP 00001871: JUMPDEST 00001872: SWAP1 00001873: POP 00001874: DUP1 00001875: PUSH2 0x187c 00001878: PUSH2 0x0ebd 0000187b: JUMP 0000187c: JUMPDEST 0000187d: LT 0000187e: ISZERO 0000187f: DUP1 00001880: ISZERO 00001881: PUSH2 0x1891 00001884: JUMPI 00001885: POP 00001886: PUSH2 0x188d 00001889: PUSH2 0x1985 0000188c: JUMP 0000188d: JUMPDEST 0000188e: DUP4 0000188f: GT 00001890: ISZERO 00001891: JUMPDEST 00001892: DUP1 00001893: ISZERO 00001894: PUSH2 0x1030 00001897: JUMPI 00001898: POP 00001899: PUSH2 0x18a0 0000189c: PUSH2 0x17e7 0000189f: JUMP 000018a0: JUMPDEST 000018a1: SWAP1 000018a2: SWAP3 000018a3: LT 000018a4: ISZERO 000018a5: SWAP3 000018a6: SWAP2 000018a7: POP 000018a8: POP 000018a9: JUMP 000018aa: JUMPDEST 000018ab: PUSH2 0x18b2 000018ae: PUSH2 0x1122 000018b1: JUMP 000018b2: JUMPDEST 000018b3: PUSH1 0x01 000018b5: PUSH1 0xa0 000018b7: PUSH1 0x02 000018b9: EXP 000018ba: SUB 000018bb: AND 000018bc: CALLER 000018bd: EQ 000018be: PUSH2 0x18c6 000018c1: JUMPI 000018c2: PUSH1 0x00 000018c4: DUP1 000018c5: REVERT 000018c6: JUMPDEST 000018c7: PUSH2 0x18ce 000018ca: PUSH2 0x0d3a 000018cd: JUMP 000018ce: JUMPDEST 000018cf: DUP2 000018d0: LT 000018d1: PUSH2 0x18d9 000018d4: JUMPI 000018d5: PUSH1 0x00 000018d7: DUP1 000018d8: REVERT 000018d9: JUMPDEST 000018da: DUP1 000018db: PUSH1 0x00 000018dd: DUP1 000018de: PUSH1 0x40 000018e0: MLOAD 000018e1: PUSH1 0x20 000018e3: ADD 000018e4: DUP1 000018e5: DUP1 000018e6: PUSH32 0x657865637574696f6e4d61785065725478000000000000000000000000000000 00001907: DUP2 00001908: MSTORE 00001909: POP 0000190a: PUSH1 0x11 0000190c: ADD 0000190d: SWAP1 0000190e: POP 0000190f: PUSH1 0x40 00001911: MLOAD 00001912: PUSH1 0x20 00001914: DUP2 00001915: DUP4 00001916: SUB 00001917: SUB 00001918: DUP2 00001919: MSTORE 0000191a: SWAP1 0000191b: PUSH1 0x40 0000191d: MSTORE 0000191e: PUSH1 0x40 00001920: MLOAD 00001921: DUP1 00001922: DUP3 00001923: DUP1 00001924: MLOAD 00001925: SWAP1 00001926: PUSH1 0x20 00001928: ADD 00001929: SWAP1 0000192a: DUP1 0000192b: DUP4 0000192c: DUP4 0000192d: PUSH1 0x20 0000192f: DUP4 00001930: LT 00001931: PUSH2 0x1368 00001934: JUMPI 00001935: DUP1 00001936: MLOAD 00001937: DUP3 00001938: MSTORE 00001939: PUSH1 0x1f 0000193b: NOT 0000193c: SWAP1 0000193d: SWAP3 0000193e: ADD 0000193f: SWAP2 00001940: PUSH1 0x20 00001942: SWAP2 00001943: DUP3 00001944: ADD 00001945: SWAP2 00001946: ADD 00001947: PUSH2 0x1349 0000194a: JUMP 0000194b: JUMPDEST 0000194c: PUSH2 0x1953 0000194f: PUSH2 0x1122 00001952: JUMP 00001953: JUMPDEST 00001954: PUSH1 0x01 00001956: PUSH1 0xa0 00001958: PUSH1 0x02 0000195a: EXP 0000195b: SUB 0000195c: AND 0000195d: CALLER 0000195e: EQ 0000195f: PUSH2 0x1967 00001962: JUMPI 00001963: PUSH1 0x00 00001965: DUP1 00001966: REVERT 00001967: JUMPDEST 00001968: PUSH1 0x01 0000196a: PUSH1 0xa0 0000196c: PUSH1 0x02 0000196e: EXP 0000196f: SUB 00001970: DUP2 00001971: AND 00001972: ISZERO 00001973: ISZERO 00001974: PUSH2 0x197c 00001977: JUMPI 00001978: PUSH1 0x00 0000197a: DUP1 0000197b: REVERT 0000197c: JUMPDEST 0000197d: PUSH2 0x09df 00001980: DUP2 00001981: PUSH2 0x28af 00001984: JUMP 00001985: JUMPDEST 00001986: PUSH1 0x00 00001988: DUP1 00001989: PUSH1 0x00 0000198b: PUSH1 0x40 0000198d: MLOAD 0000198e: PUSH1 0x20 00001990: ADD 00001991: DUP1 00001992: DUP1 00001993: PUSH32 0x6d61785065725478000000000000000000000000000000000000000000000000 000019b4: DUP2 000019b5: MSTORE 000019b6: POP 000019b7: PUSH1 0x08 000019b9: ADD 000019ba: SWAP1 000019bb: POP 000019bc: PUSH1 0x40 000019be: MLOAD 000019bf: PUSH1 0x20 000019c1: DUP2 000019c2: DUP4 000019c3: SUB 000019c4: SUB 000019c5: DUP2 000019c6: MSTORE 000019c7: SWAP1 000019c8: PUSH1 0x40 000019ca: MSTORE 000019cb: PUSH1 0x40 000019cd: MLOAD 000019ce: DUP1 000019cf: DUP3 000019d0: DUP1 000019d1: MLOAD 000019d2: SWAP1 000019d3: PUSH1 0x20 000019d5: ADD 000019d6: SWAP1 000019d7: DUP1 000019d8: DUP4 000019d9: DUP4 000019da: PUSH1 0x20 000019dc: DUP4 000019dd: LT 000019de: PUSH2 0x0c57 000019e1: JUMPI 000019e2: DUP1 000019e3: MLOAD 000019e4: DUP3 000019e5: MSTORE 000019e6: PUSH1 0x1f 000019e8: NOT 000019e9: SWAP1 000019ea: SWAP3 000019eb: ADD 000019ec: SWAP2 000019ed: PUSH1 0x20 000019ef: SWAP2 000019f0: DUP3 000019f1: ADD 000019f2: SWAP2 000019f3: ADD 000019f4: PUSH2 0x0c38 000019f7: JUMP 000019f8: JUMPDEST 000019f9: PUSH1 0x00 000019fb: DUP1 000019fc: PUSH1 0x00 000019fe: PUSH1 0x40 00001a00: MLOAD 00001a01: PUSH1 0x20 00001a03: ADD 00001a04: DUP1 00001a05: DUP1 00001a06: PUSH32 0x6761735072696365000000000000000000000000000000000000000000000000 00001a27: DUP2 00001a28: MSTORE 00001a29: POP 00001a2a: PUSH1 0x08 00001a2c: ADD 00001a2d: SWAP1 00001a2e: POP 00001a2f: PUSH1 0x40 00001a31: MLOAD 00001a32: PUSH1 0x20 00001a34: DUP2 00001a35: DUP4 00001a36: SUB 00001a37: SUB 00001a38: DUP2 00001a39: MSTORE 00001a3a: SWAP1 00001a3b: PUSH1 0x40 00001a3d: MSTORE 00001a3e: PUSH1 0x40 00001a40: MLOAD 00001a41: DUP1 00001a42: DUP3 00001a43: DUP1 00001a44: MLOAD 00001a45: SWAP1 00001a46: PUSH1 0x20 00001a48: ADD 00001a49: SWAP1 00001a4a: DUP1 00001a4b: DUP4 00001a4c: DUP4 00001a4d: PUSH1 0x20 00001a4f: DUP4 00001a50: LT 00001a51: PUSH2 0x0c57 00001a54: JUMPI 00001a55: DUP1 00001a56: MLOAD 00001a57: DUP3 00001a58: MSTORE 00001a59: PUSH1 0x1f 00001a5b: NOT 00001a5c: SWAP1 00001a5d: SWAP3 00001a5e: ADD 00001a5f: SWAP2 00001a60: PUSH1 0x20 00001a62: SWAP2 00001a63: DUP3 00001a64: ADD 00001a65: SWAP2 00001a66: ADD 00001a67: PUSH2 0x0c38 00001a6a: JUMP 00001a6b: JUMPDEST 00001a6c: PUSH1 0x00 00001a6e: DUP1 00001a6f: PUSH1 0x60 00001a71: PUSH1 0x00 00001a73: DUP1 00001a74: PUSH2 0x1a7c 00001a77: DUP11 00001a78: PUSH2 0x296d 00001a7b: JUMP 00001a7c: JUMPDEST 00001a7d: ISZERO 00001a7e: ISZERO 00001a7f: PUSH2 0x1a87 00001a82: JUMPI 00001a83: PUSH1 0x00 00001a85: DUP1 00001a86: REVERT 00001a87: JUMPDEST 00001a88: DUP6 00001a89: PUSH1 0x01 00001a8b: PUSH1 0xa0 00001a8d: PUSH1 0x02 00001a8f: EXP 00001a90: SUB 00001a91: AND 00001a92: PUSH4 0x8d068043 00001a97: PUSH1 0x40 00001a99: MLOAD 00001a9a: DUP2 00001a9b: PUSH4 0xffffffff 00001aa0: AND 00001aa1: PUSH1 0xe0 00001aa3: PUSH1 0x02 00001aa5: EXP 00001aa6: MUL 00001aa7: DUP2 00001aa8: MSTORE 00001aa9: PUSH1 0x04 00001aab: ADD 00001aac: PUSH1 0x20 00001aae: PUSH1 0x40 00001ab0: MLOAD 00001ab1: DUP1 00001ab2: DUP4 00001ab3: SUB 00001ab4: DUP2 00001ab5: PUSH1 0x00 00001ab7: DUP8 00001ab8: DUP1 00001ab9: EXTCODESIZE 00001aba: ISZERO 00001abb: DUP1 00001abc: ISZERO 00001abd: PUSH2 0x1ac5 00001ac0: JUMPI 00001ac1: PUSH1 0x00 00001ac3: DUP1 00001ac4: REVERT 00001ac5: JUMPDEST 00001ac6: POP 00001ac7: GAS 00001ac8: CALL 00001ac9: ISZERO 00001aca: DUP1 00001acb: ISZERO 00001acc: PUSH2 0x1ad9 00001acf: JUMPI 00001ad0: RETURNDATASIZE 00001ad1: PUSH1 0x00 00001ad3: DUP1 00001ad4: RETURNDATACOPY 00001ad5: RETURNDATASIZE 00001ad6: PUSH1 0x00 00001ad8: REVERT 00001ad9: JUMPDEST 00001ada: POP 00001adb: POP 00001adc: POP 00001add: POP 00001ade: PUSH1 0x40 00001ae0: MLOAD 00001ae1: RETURNDATASIZE 00001ae2: PUSH1 0x20 00001ae4: DUP2 00001ae5: LT 00001ae6: ISZERO 00001ae7: PUSH2 0x1aef 00001aea: JUMPI 00001aeb: PUSH1 0x00 00001aed: DUP1 00001aee: REVERT 00001aef: JUMPDEST 00001af0: POP 00001af1: MLOAD 00001af2: DUP10 00001af3: MLOAD 00001af4: SWAP1 00001af5: SWAP6 00001af6: POP 00001af7: DUP6 00001af8: GT 00001af9: ISZERO 00001afa: PUSH2 0x1b02 00001afd: JUMPI 00001afe: PUSH1 0x00 00001b00: DUP1 00001b01: REVERT 00001b02: JUMPDEST 00001b03: PUSH2 0x1b0b 00001b06: DUP11 00001b07: PUSH2 0x2981 00001b0a: JUMP 00001b0b: JUMPDEST 00001b0c: SWAP4 00001b0d: POP 00001b0e: DUP5 00001b0f: PUSH1 0x40 00001b11: MLOAD 00001b12: SWAP1 00001b13: DUP1 00001b14: DUP3 00001b15: MSTORE 00001b16: DUP1 00001b17: PUSH1 0x20 00001b19: MUL 00001b1a: PUSH1 0x20 00001b1c: ADD 00001b1d: DUP3 00001b1e: ADD 00001b1f: PUSH1 0x40 00001b21: MSTORE 00001b22: DUP1 00001b23: ISZERO 00001b24: PUSH2 0x1b37 00001b27: JUMPI 00001b28: DUP2 00001b29: PUSH1 0x20 00001b2b: ADD 00001b2c: PUSH1 0x20 00001b2e: DUP3 00001b2f: MUL 00001b30: DUP1 00001b31: CODESIZE 00001b32: DUP4 00001b33: CODECOPY 00001b34: ADD 00001b35: SWAP1 00001b36: POP 00001b37: JUMPDEST 00001b38: POP 00001b39: SWAP3 00001b3a: POP 00001b3b: PUSH1 0x00 00001b3d: SWAP2 00001b3e: POP 00001b3f: JUMPDEST 00001b40: DUP5 00001b41: DUP3 00001b42: LT 00001b43: ISZERO 00001b44: PUSH2 0x1ccc 00001b47: JUMPI 00001b48: PUSH1 0x01 00001b4a: DUP5 00001b4b: DUP11 00001b4c: DUP5 00001b4d: DUP2 00001b4e: MLOAD 00001b4f: DUP2 00001b50: LT 00001b51: ISZERO 00001b52: ISZERO 00001b53: PUSH2 0x1b58 00001b56: JUMPI 00001b57: INVALID 00001b58: JUMPDEST 00001b59: SWAP1 00001b5a: PUSH1 0x20 00001b5c: ADD 00001b5d: SWAP1 00001b5e: PUSH1 0x20 00001b60: MUL 00001b61: ADD 00001b62: MLOAD 00001b63: DUP11 00001b64: DUP6 00001b65: DUP2 00001b66: MLOAD 00001b67: DUP2 00001b68: LT 00001b69: ISZERO 00001b6a: ISZERO 00001b6b: PUSH2 0x1b70 00001b6e: JUMPI 00001b6f: INVALID 00001b70: JUMPDEST 00001b71: SWAP1 00001b72: PUSH1 0x20 00001b74: ADD 00001b75: SWAP1 00001b76: PUSH1 0x20 00001b78: MUL 00001b79: ADD 00001b7a: MLOAD 00001b7b: DUP11 00001b7c: DUP7 00001b7d: DUP2 00001b7e: MLOAD 00001b7f: DUP2 00001b80: LT 00001b81: ISZERO 00001b82: ISZERO 00001b83: PUSH2 0x1b88 00001b86: JUMPI 00001b87: INVALID 00001b88: JUMPDEST 00001b89: PUSH1 0x20 00001b8b: SWAP1 00001b8c: DUP2 00001b8d: MUL 00001b8e: SWAP1 00001b8f: SWAP2 00001b90: ADD 00001b91: DUP2 00001b92: ADD 00001b93: MLOAD 00001b94: PUSH1 0x40 00001b96: DUP1 00001b97: MLOAD 00001b98: PUSH1 0x00 00001b9a: DUP1 00001b9b: DUP3 00001b9c: MSTORE 00001b9d: DUP2 00001b9e: DUP6 00001b9f: ADD 00001ba0: DUP1 00001ba1: DUP5 00001ba2: MSTORE 00001ba3: SWAP8 00001ba4: SWAP1 00001ba5: SWAP8 00001ba6: MSTORE 00001ba7: PUSH1 0xff 00001ba9: SWAP1 00001baa: SWAP6 00001bab: AND 00001bac: DUP6 00001bad: DUP3 00001bae: ADD 00001baf: MSTORE 00001bb0: PUSH1 0x60 00001bb2: DUP6 00001bb3: ADD 00001bb4: SWAP4 00001bb5: SWAP1 00001bb6: SWAP4 00001bb7: MSTORE 00001bb8: PUSH1 0x80 00001bba: DUP5 00001bbb: ADD 00001bbc: MSTORE 00001bbd: SWAP1 00001bbe: MLOAD 00001bbf: PUSH1 0xa0 00001bc1: DUP1 00001bc2: DUP5 00001bc3: ADD 00001bc4: SWAP5 00001bc5: SWAP3 00001bc6: SWAP4 00001bc7: PUSH1 0x1f 00001bc9: NOT 00001bca: DUP4 00001bcb: ADD 00001bcc: SWAP4 00001bcd: SWAP1 00001bce: DUP4 00001bcf: SWAP1 00001bd0: SUB 00001bd1: SWAP1 00001bd2: SWAP2 00001bd3: ADD 00001bd4: SWAP2 00001bd5: SWAP1 00001bd6: DUP7 00001bd7: GAS 00001bd8: CALL 00001bd9: ISZERO 00001bda: DUP1 00001bdb: ISZERO 00001bdc: PUSH2 0x1be9 00001bdf: JUMPI 00001be0: RETURNDATASIZE 00001be1: PUSH1 0x00 00001be3: DUP1 00001be4: RETURNDATACOPY 00001be5: RETURNDATASIZE 00001be6: PUSH1 0x00 00001be8: REVERT 00001be9: JUMPDEST 00001bea: POP 00001beb: POP 00001bec: POP 00001bed: PUSH1 0x20 00001bef: PUSH1 0x40 00001bf1: MLOAD 00001bf2: SUB 00001bf3: MLOAD 00001bf4: SWAP1 00001bf5: POP 00001bf6: DUP6 00001bf7: PUSH1 0x01 00001bf9: PUSH1 0xa0 00001bfb: PUSH1 0x02 00001bfd: EXP 00001bfe: SUB 00001bff: AND 00001c00: PUSH4 0xfacd743b 00001c05: DUP3 00001c06: PUSH1 0x40 00001c08: MLOAD 00001c09: DUP3 00001c0a: PUSH4 0xffffffff 00001c0f: AND 00001c10: PUSH1 0xe0 00001c12: PUSH1 0x02 00001c14: EXP 00001c15: MUL 00001c16: DUP2 00001c17: MSTORE 00001c18: PUSH1 0x04 00001c1a: ADD 00001c1b: DUP1 00001c1c: DUP3 00001c1d: PUSH1 0x01 00001c1f: PUSH1 0xa0 00001c21: PUSH1 0x02 00001c23: EXP 00001c24: SUB 00001c25: AND 00001c26: PUSH1 0x01 00001c28: PUSH1 0xa0 00001c2a: PUSH1 0x02 00001c2c: EXP 00001c2d: SUB 00001c2e: AND 00001c2f: DUP2 00001c30: MSTORE 00001c31: PUSH1 0x20 00001c33: ADD 00001c34: SWAP2 00001c35: POP 00001c36: POP 00001c37: PUSH1 0x20 00001c39: PUSH1 0x40 00001c3b: MLOAD 00001c3c: DUP1 00001c3d: DUP4 00001c3e: SUB 00001c3f: DUP2 00001c40: PUSH1 0x00 00001c42: DUP8 00001c43: DUP1 00001c44: EXTCODESIZE 00001c45: ISZERO 00001c46: DUP1 00001c47: ISZERO 00001c48: PUSH2 0x1c50 00001c4b: JUMPI 00001c4c: PUSH1 0x00 00001c4e: DUP1 00001c4f: REVERT 00001c50: JUMPDEST 00001c51: POP 00001c52: GAS 00001c53: CALL 00001c54: ISZERO 00001c55: DUP1 00001c56: ISZERO 00001c57: PUSH2 0x1c64 00001c5a: JUMPI 00001c5b: RETURNDATASIZE 00001c5c: PUSH1 0x00 00001c5e: DUP1 00001c5f: RETURNDATACOPY 00001c60: RETURNDATASIZE 00001c61: PUSH1 0x00 00001c63: REVERT 00001c64: JUMPDEST 00001c65: POP 00001c66: POP 00001c67: POP 00001c68: POP 00001c69: PUSH1 0x40 00001c6b: MLOAD 00001c6c: RETURNDATASIZE 00001c6d: PUSH1 0x20 00001c6f: DUP2 00001c70: LT 00001c71: ISZERO 00001c72: PUSH2 0x1c7a 00001c75: JUMPI 00001c76: PUSH1 0x00 00001c78: DUP1 00001c79: REVERT 00001c7a: JUMPDEST 00001c7b: POP 00001c7c: MLOAD 00001c7d: ISZERO 00001c7e: ISZERO 00001c7f: PUSH2 0x1c87 00001c82: JUMPI 00001c83: PUSH1 0x00 00001c85: DUP1 00001c86: REVERT 00001c87: JUMPDEST 00001c88: PUSH2 0x1c91 00001c8b: DUP4 00001c8c: DUP3 00001c8d: PUSH2 0x2b46 00001c90: JUMP 00001c91: JUMPDEST 00001c92: ISZERO 00001c93: PUSH2 0x1c9b 00001c96: JUMPI 00001c97: PUSH1 0x00 00001c99: DUP1 00001c9a: REVERT 00001c9b: JUMPDEST 00001c9c: DUP1 00001c9d: DUP4 00001c9e: DUP4 00001c9f: DUP2 00001ca0: MLOAD 00001ca1: DUP2 00001ca2: LT 00001ca3: ISZERO 00001ca4: ISZERO 00001ca5: PUSH2 0x1caa 00001ca8: JUMPI 00001ca9: INVALID 00001caa: JUMPDEST 00001cab: PUSH1 0x01 00001cad: PUSH1 0xa0 00001caf: PUSH1 0x02 00001cb1: EXP 00001cb2: SUB 00001cb3: SWAP1 00001cb4: SWAP3 00001cb5: AND 00001cb6: PUSH1 0x20 00001cb8: SWAP3 00001cb9: DUP4 00001cba: MUL 00001cbb: SWAP1 00001cbc: SWAP2 00001cbd: ADD 00001cbe: SWAP1 00001cbf: SWAP2 00001cc0: ADD 00001cc1: MSTORE 00001cc2: PUSH1 0x01 00001cc4: SWAP1 00001cc5: SWAP2 00001cc6: ADD 00001cc7: SWAP1 00001cc8: PUSH2 0x1b3f 00001ccb: JUMP 00001ccc: JUMPDEST 00001ccd: POP 00001cce: POP 00001ccf: POP 00001cd0: POP 00001cd1: POP 00001cd2: POP 00001cd3: POP 00001cd4: POP 00001cd5: POP 00001cd6: POP 00001cd7: JUMP 00001cd8: JUMPDEST 00001cd9: PUSH1 0x00 00001cdb: DUP1 00001cdc: PUSH1 0x00 00001cde: DUP1 00001cdf: PUSH2 0x1ce7 00001ce2: DUP6 00001ce3: PUSH2 0x296d 00001ce6: JUMP 00001ce7: JUMPDEST 00001ce8: ISZERO 00001ce9: ISZERO 00001cea: PUSH2 0x1cf2 00001ced: JUMPI 00001cee: PUSH1 0x00 00001cf0: DUP1 00001cf1: REVERT 00001cf2: JUMPDEST 00001cf3: PUSH1 0x01 00001cf5: PUSH1 0xa0 00001cf7: PUSH1 0x02 00001cf9: EXP 00001cfa: SUB 00001cfb: PUSH1 0x14 00001cfd: DUP7 00001cfe: ADD 00001cff: MLOAD 00001d00: AND 00001d01: SWAP4 00001d02: POP 00001d03: PUSH1 0x34 00001d05: DUP6 00001d06: ADD 00001d07: MLOAD 00001d08: SWAP3 00001d09: POP 00001d0a: PUSH1 0x54 00001d0c: DUP6 00001d0d: ADD 00001d0e: MLOAD 00001d0f: SWAP2 00001d10: POP 00001d11: PUSH1 0x68 00001d13: DUP6 00001d14: ADD 00001d15: MLOAD 00001d16: SWAP1 00001d17: POP 00001d18: SWAP2 00001d19: SWAP4 00001d1a: POP 00001d1b: SWAP2 00001d1c: SWAP4 00001d1d: JUMP 00001d1e: JUMPDEST 00001d1f: DUP1 00001d20: PUSH1 0x04 00001d22: PUSH1 0x00 00001d24: DUP5 00001d25: PUSH1 0x40 00001d27: MLOAD 00001d28: PUSH1 0x20 00001d2a: ADD 00001d2b: DUP1 00001d2c: DUP1 00001d2d: PUSH32 0x72656c617965644d657373616765730000000000000000000000000000000000 00001d4e: DUP2 00001d4f: MSTORE 00001d50: POP 00001d51: PUSH1 0x0f 00001d53: ADD 00001d54: DUP3 00001d55: PUSH1 0x00 00001d57: NOT 00001d58: AND 00001d59: PUSH1 0x00 00001d5b: NOT 00001d5c: AND 00001d5d: DUP2 00001d5e: MSTORE 00001d5f: PUSH1 0x20 00001d61: ADD 00001d62: SWAP2 00001d63: POP 00001d64: POP 00001d65: PUSH1 0x40 00001d67: MLOAD 00001d68: PUSH1 0x20 00001d6a: DUP2 00001d6b: DUP4 00001d6c: SUB 00001d6d: SUB 00001d6e: DUP2 00001d6f: MSTORE 00001d70: SWAP1 00001d71: PUSH1 0x40 00001d73: MSTORE 00001d74: PUSH1 0x40 00001d76: MLOAD 00001d77: DUP1 00001d78: DUP3 00001d79: DUP1 00001d7a: MLOAD 00001d7b: SWAP1 00001d7c: PUSH1 0x20 00001d7e: ADD 00001d7f: SWAP1 00001d80: DUP1 00001d81: DUP4 00001d82: DUP4 00001d83: JUMPDEST 00001d84: PUSH1 0x20 00001d86: DUP4 00001d87: LT 00001d88: PUSH2 0x1da2 00001d8b: JUMPI 00001d8c: DUP1 00001d8d: MLOAD 00001d8e: DUP3 00001d8f: MSTORE 00001d90: PUSH1 0x1f 00001d92: NOT 00001d93: SWAP1 00001d94: SWAP3 00001d95: ADD 00001d96: SWAP2 00001d97: PUSH1 0x20 00001d99: SWAP2 00001d9a: DUP3 00001d9b: ADD 00001d9c: SWAP2 00001d9d: ADD 00001d9e: PUSH2 0x1d83 00001da1: JUMP 00001da2: JUMPDEST 00001da3: MLOAD 00001da4: DUP2 00001da5: MLOAD 00001da6: PUSH1 0x20 00001da8: SWAP4 00001da9: DUP5 00001daa: SUB 00001dab: PUSH2 0x0100 00001dae: EXP 00001daf: PUSH1 0x00 00001db1: NOT 00001db2: ADD 00001db3: DUP1 00001db4: NOT 00001db5: SWAP1 00001db6: SWAP3 00001db7: AND 00001db8: SWAP2 00001db9: AND 00001dba: OR 00001dbb: SWAP1 00001dbc: MSTORE 00001dbd: PUSH1 0x40 00001dbf: DUP1 00001dc0: MLOAD 00001dc1: SWAP3 00001dc2: SWAP1 00001dc3: SWAP5 00001dc4: ADD 00001dc5: DUP3 00001dc6: SWAP1 00001dc7: SUB 00001dc8: SWAP1 00001dc9: SWAP2 00001dca: KECCAK256 00001dcb: DUP7 00001dcc: MSTORE 00001dcd: DUP6 00001dce: ADD 00001dcf: SWAP6 00001dd0: SWAP1 00001dd1: SWAP6 00001dd2: MSTORE 00001dd3: SWAP3 00001dd4: SWAP1 00001dd5: SWAP3 00001dd6: ADD 00001dd7: PUSH1 0x00 00001dd9: KECCAK256 00001dda: DUP1 00001ddb: SLOAD 00001ddc: PUSH1 0xff 00001dde: NOT 00001ddf: AND 00001de0: SWAP5 00001de1: ISZERO 00001de2: ISZERO 00001de3: SWAP5 00001de4: SWAP1 00001de5: SWAP5 00001de6: OR 00001de7: SWAP1 00001de8: SWAP4 00001de9: SSTORE 00001dea: POP 00001deb: POP 00001dec: POP 00001ded: POP 00001dee: POP 00001def: JUMP 00001df0: JUMPDEST 00001df1: PUSH1 0x00 00001df3: DUP1 00001df4: PUSH2 0x1dfd 00001df7: DUP5 00001df8: DUP5 00001df9: PUSH2 0x2b9f 00001dfc: JUMP 00001dfd: JUMPDEST 00001dfe: ISZERO 00001dff: ISZERO 00001e00: PUSH2 0x1efe 00001e03: JUMPI 00001e04: PUSH2 0x1e0b 00001e07: PUSH2 0x0dad 00001e0a: JUMP 00001e0b: JUMPDEST 00001e0c: SWAP1 00001e0d: POP 00001e0e: PUSH1 0x01 00001e10: PUSH1 0xa0 00001e12: PUSH1 0x02 00001e14: EXP 00001e15: SUB 00001e16: DUP2 00001e17: AND 00001e18: ISZERO 00001e19: ISZERO 00001e1a: PUSH2 0x1eaa 00001e1d: JUMPI 00001e1e: PUSH1 0x40 00001e20: DUP1 00001e21: MLOAD 00001e22: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001e43: DUP2 00001e44: MSTORE 00001e45: PUSH1 0x20 00001e47: PUSH1 0x04 00001e49: DUP3 00001e4a: ADD 00001e4b: MSTORE 00001e4c: PUSH1 0x23 00001e4e: PUSH1 0x24 00001e50: DUP3 00001e51: ADD 00001e52: MSTORE 00001e53: PUSH32 0x66616c6c6261636b20726563697069656e7420776173206e6f74206173736967 00001e74: PUSH1 0x44 00001e76: DUP3 00001e77: ADD 00001e78: MSTORE 00001e79: PUSH32 0x6e65640000000000000000000000000000000000000000000000000000000000 00001e9a: PUSH1 0x64 00001e9c: DUP3 00001e9d: ADD 00001e9e: MSTORE 00001e9f: SWAP1 00001ea0: MLOAD 00001ea1: SWAP1 00001ea2: DUP2 00001ea3: SWAP1 00001ea4: SUB 00001ea5: PUSH1 0x84 00001ea7: ADD 00001ea8: SWAP1 00001ea9: REVERT 00001eaa: JUMPDEST 00001eab: PUSH2 0x1eb4 00001eae: DUP2 00001eaf: DUP5 00001eb0: PUSH2 0x2b9f 00001eb3: JUMP 00001eb4: JUMPDEST 00001eb5: POP 00001eb6: DUP1 00001eb7: PUSH1 0x01 00001eb9: PUSH1 0xa0 00001ebb: PUSH1 0x02 00001ebd: EXP 00001ebe: SUB 00001ebf: AND 00001ec0: DUP5 00001ec1: PUSH1 0x01 00001ec3: PUSH1 0xa0 00001ec5: PUSH1 0x02 00001ec7: EXP 00001ec8: SUB 00001ec9: AND 00001eca: PUSH32 0x4b186bbb80392b9b4a5cdf5f78a4f6ecdb8da0082f37d2cf24a6885e9f61fbbe 00001eeb: PUSH1 0x40 00001eed: MLOAD 00001eee: PUSH1 0x40 00001ef0: MLOAD 00001ef1: DUP1 00001ef2: SWAP2 00001ef3: SUB 00001ef4: SWAP1 00001ef5: LOG3 00001ef6: PUSH1 0x01 00001ef8: SWAP2 00001ef9: POP 00001efa: PUSH2 0x1f03 00001efd: JUMP 00001efe: JUMPDEST 00001eff: PUSH1 0x01 00001f01: SWAP2 00001f02: POP 00001f03: JUMPDEST 00001f04: POP 00001f05: SWAP3 00001f06: SWAP2 00001f07: POP 00001f08: POP 00001f09: JUMP 00001f0a: JUMPDEST 00001f0b: PUSH1 0x01 00001f0d: PUSH1 0xa0 00001f0f: PUSH1 0x02 00001f11: EXP 00001f12: SUB 00001f13: DUP2 00001f14: AND 00001f15: ISZERO 00001f16: ISZERO 00001f17: PUSH2 0x1f1f 00001f1a: JUMPI 00001f1b: PUSH1 0x00 00001f1d: DUP1 00001f1e: REVERT 00001f1f: JUMPDEST 00001f20: DUP1 00001f21: PUSH1 0x02 00001f23: PUSH1 0x00 00001f25: PUSH1 0x40 00001f27: MLOAD 00001f28: PUSH1 0x20 00001f2a: ADD 00001f2b: DUP1 00001f2c: DUP1 00001f2d: PUSH32 0x66616c6c6261636b526563697069656e74000000000000000000000000000000 00001f4e: DUP2 00001f4f: MSTORE 00001f50: POP 00001f51: PUSH1 0x11 00001f53: ADD 00001f54: SWAP1 00001f55: POP 00001f56: PUSH1 0x40 00001f58: MLOAD 00001f59: PUSH1 0x20 00001f5b: DUP2 00001f5c: DUP4 00001f5d: SUB 00001f5e: SUB 00001f5f: DUP2 00001f60: MSTORE 00001f61: SWAP1 00001f62: PUSH1 0x40 00001f64: MSTORE 00001f65: PUSH1 0x40 00001f67: MLOAD 00001f68: DUP1 00001f69: DUP3 00001f6a: DUP1 00001f6b: MLOAD 00001f6c: SWAP1 00001f6d: PUSH1 0x20 00001f6f: ADD 00001f70: SWAP1 00001f71: DUP1 00001f72: DUP4 00001f73: DUP4 00001f74: JUMPDEST 00001f75: PUSH1 0x20 00001f77: DUP4 00001f78: LT 00001f79: PUSH2 0x1f93 00001f7c: JUMPI 00001f7d: DUP1 00001f7e: MLOAD 00001f7f: DUP3 00001f80: MSTORE 00001f81: PUSH1 0x1f 00001f83: NOT 00001f84: SWAP1 00001f85: SWAP3 00001f86: ADD 00001f87: SWAP2 00001f88: PUSH1 0x20 00001f8a: SWAP2 00001f8b: DUP3 00001f8c: ADD 00001f8d: SWAP2 00001f8e: ADD 00001f8f: PUSH2 0x1f74 00001f92: JUMP 00001f93: JUMPDEST 00001f94: MLOAD 00001f95: DUP2 00001f96: MLOAD 00001f97: PUSH1 0x20 00001f99: SWAP4 00001f9a: DUP5 00001f9b: SUB 00001f9c: PUSH2 0x0100 00001f9f: EXP 00001fa0: PUSH1 0x00 00001fa2: NOT 00001fa3: ADD 00001fa4: DUP1 00001fa5: NOT 00001fa6: SWAP1 00001fa7: SWAP3 00001fa8: AND 00001fa9: SWAP2 00001faa: AND 00001fab: OR 00001fac: SWAP1 00001fad: MSTORE 00001fae: PUSH1 0x40 00001fb0: DUP1 00001fb1: MLOAD 00001fb2: SWAP3 00001fb3: SWAP1 00001fb4: SWAP5 00001fb5: ADD 00001fb6: DUP3 00001fb7: SWAP1 00001fb8: SUB 00001fb9: SWAP1 00001fba: SWAP2 00001fbb: KECCAK256 00001fbc: DUP7 00001fbd: MSTORE 00001fbe: DUP6 00001fbf: ADD 00001fc0: SWAP6 00001fc1: SWAP1 00001fc2: SWAP6 00001fc3: MSTORE 00001fc4: SWAP3 00001fc5: SWAP1 00001fc6: SWAP3 00001fc7: ADD 00001fc8: PUSH1 0x00 00001fca: KECCAK256 00001fcb: DUP1 00001fcc: SLOAD 00001fcd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fe2: NOT 00001fe3: AND 00001fe4: PUSH1 0x01 00001fe6: PUSH1 0xa0 00001fe8: PUSH1 0x02 00001fea: EXP 00001feb: SUB 00001fec: SWAP6 00001fed: SWAP1 00001fee: SWAP6 00001fef: AND 00001ff0: SWAP5 00001ff1: SWAP1 00001ff2: SWAP5 00001ff3: OR 00001ff4: SWAP1 00001ff5: SWAP4 00001ff6: SSTORE 00001ff7: POP 00001ff8: POP 00001ff9: POP 00001ffa: POP 00001ffb: JUMP 00001ffc: JUMPDEST 00001ffd: PUSH1 0x00 00001fff: PUSH2 0x2006 00002002: PUSH2 0x0a9f 00002005: JUMP 00002006: JUMPDEST 00002007: ISZERO 00002008: PUSH2 0x2010 0000200b: JUMPI 0000200c: PUSH1 0x00 0000200e: DUP1 0000200f: REVERT 00002010: JUMPDEST 00002011: PUSH1 0x01 00002013: PUSH1 0xa0 00002015: PUSH1 0x02 00002017: EXP 00002018: SUB 00002019: DUP11 0000201a: AND 0000201b: ISZERO 0000201c: DUP1 0000201d: ISZERO 0000201e: SWAP1 0000201f: PUSH2 0x202c 00002022: JUMPI 00002023: POP 00002024: PUSH2 0x202c 00002027: DUP11 00002028: PUSH2 0x2c80 0000202b: JUMP 0000202c: JUMPDEST 0000202d: ISZERO 0000202e: ISZERO 0000202f: PUSH2 0x2037 00002032: JUMPI 00002033: PUSH1 0x00 00002035: DUP1 00002036: REVERT 00002037: JUMPDEST 00002038: DUP8 00002039: ISZERO 0000203a: ISZERO 0000203b: PUSH2 0x2043 0000203e: JUMPI 0000203f: PUSH1 0x00 00002041: DUP1 00002042: REVERT 00002043: JUMPDEST 00002044: PUSH1 0x00 00002046: DUP8 00002047: GT 00002048: PUSH2 0x2050 0000204b: JUMPI 0000204c: PUSH1 0x00 0000204e: DUP1 0000204f: REVERT 00002050: JUMPDEST 00002051: DUP5 00002052: DUP5 00002053: LT 00002054: PUSH2 0x205c 00002057: JUMPI 00002058: PUSH1 0x00 0000205a: DUP1 0000205b: REVERT 0000205c: JUMPDEST 0000205d: PUSH1 0x01 0000205f: PUSH1 0xa0 00002061: PUSH1 0x02 00002063: EXP 00002064: SUB 00002065: DUP4 00002066: AND 00002067: ISZERO 00002068: ISZERO 00002069: PUSH2 0x2071 0000206c: JUMPI 0000206d: PUSH1 0x00 0000206f: DUP1 00002070: REVERT 00002071: JUMPDEST 00002072: PUSH2 0x2710 00002075: DUP3 00002076: LT 00002077: PUSH2 0x20e1 0000207a: JUMPI 0000207b: PUSH1 0x40 0000207d: DUP1 0000207e: MLOAD 0000207f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000020a0: DUP2 000020a1: MSTORE 000020a2: PUSH1 0x20 000020a4: PUSH1 0x04 000020a6: DUP3 000020a7: ADD 000020a8: MSTORE 000020a9: PUSH1 0x13 000020ab: PUSH1 0x24 000020ad: DUP3 000020ae: ADD 000020af: MSTORE 000020b0: PUSH32 0x496e76616c6964206665652070657263656e7400000000000000000000000000 000020d1: PUSH1 0x44 000020d3: DUP3 000020d4: ADD 000020d5: MSTORE 000020d6: SWAP1 000020d7: MLOAD 000020d8: SWAP1 000020d9: DUP2 000020da: SWAP1 000020db: SUB 000020dc: PUSH1 0x64 000020de: ADD 000020df: SWAP1 000020e0: REVERT 000020e1: JUMPDEST 000020e2: DUP10 000020e3: PUSH1 0x02 000020e5: PUSH1 0x00 000020e7: PUSH1 0x40 000020e9: MLOAD 000020ea: PUSH1 0x20 000020ec: ADD 000020ed: DUP1 000020ee: DUP1 000020ef: PUSH32 0x76616c696461746f72436f6e7472616374000000000000000000000000000000 00002110: DUP2 00002111: MSTORE 00002112: POP 00002113: PUSH1 0x11 00002115: ADD 00002116: SWAP1 00002117: POP 00002118: PUSH1 0x40 0000211a: MLOAD 0000211b: PUSH1 0x20 0000211d: DUP2 0000211e: DUP4 0000211f: SUB 00002120: SUB 00002121: DUP2 00002122: MSTORE 00002123: SWAP1 00002124: PUSH1 0x40 00002126: MSTORE 00002127: PUSH1 0x40 00002129: MLOAD 0000212a: DUP1 0000212b: DUP3 0000212c: DUP1 0000212d: MLOAD 0000212e: SWAP1 0000212f: PUSH1 0x20 00002131: ADD 00002132: SWAP1 00002133: DUP1 00002134: DUP4 00002135: DUP4 00002136: JUMPDEST 00002137: PUSH1 0x20 00002139: DUP4 0000213a: LT 0000213b: PUSH2 0x2155 0000213e: JUMPI 0000213f: DUP1 00002140: MLOAD 00002141: DUP3 00002142: MSTORE 00002143: PUSH1 0x1f 00002145: NOT 00002146: SWAP1 00002147: SWAP3 00002148: ADD 00002149: SWAP2 0000214a: PUSH1 0x20 0000214c: SWAP2 0000214d: DUP3 0000214e: ADD 0000214f: SWAP2 00002150: ADD 00002151: PUSH2 0x2136 00002154: JUMP 00002155: JUMPDEST 00002156: MLOAD 00002157: DUP2 00002158: MLOAD 00002159: PUSH1 0x20 0000215b: SWAP4 0000215c: DUP5 0000215d: SUB 0000215e: PUSH2 0x0100 00002161: EXP 00002162: PUSH1 0x00 00002164: NOT 00002165: ADD 00002166: DUP1 00002167: NOT 00002168: SWAP1 00002169: SWAP3 0000216a: AND 0000216b: SWAP2 0000216c: AND 0000216d: OR 0000216e: SWAP1 0000216f: MSTORE 00002170: PUSH1 0x40 00002172: DUP1 00002173: MLOAD 00002174: SWAP3 00002175: SWAP1 00002176: SWAP5 00002177: ADD 00002178: DUP3 00002179: SWAP1 0000217a: SUB 0000217b: SWAP1 0000217c: SWAP2 0000217d: KECCAK256 0000217e: DUP7 0000217f: MSTORE 00002180: DUP6 00002181: ADD 00002182: SWAP6 00002183: SWAP1 00002184: SWAP6 00002185: MSTORE 00002186: SWAP3 00002187: SWAP1 00002188: SWAP3 00002189: ADD 0000218a: PUSH1 0x00 0000218c: KECCAK256 0000218d: DUP1 0000218e: SLOAD 0000218f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021a4: NOT 000021a5: AND 000021a6: PUSH1 0x01 000021a8: PUSH1 0xa0 000021aa: PUSH1 0x02 000021ac: EXP 000021ad: SUB 000021ae: SWAP6 000021af: SWAP1 000021b0: SWAP6 000021b1: AND 000021b2: SWAP5 000021b3: SWAP1 000021b4: SWAP5 000021b5: OR 000021b6: SWAP1 000021b7: SWAP4 000021b8: SSTORE 000021b9: POP 000021ba: PUSH2 0x21c6 000021bd: SWAP2 000021be: POP 000021bf: DUP11 000021c0: SWAP1 000021c1: POP 000021c2: PUSH2 0x2c88 000021c5: JUMP 000021c6: JUMPDEST 000021c7: NUMBER 000021c8: PUSH1 0x00 000021ca: DUP1 000021cb: PUSH1 0x40 000021cd: MLOAD 000021ce: PUSH1 0x20 000021d0: ADD 000021d1: DUP1 000021d2: DUP1 000021d3: PUSH32 0x6465706c6f7965644174426c6f636b0000000000000000000000000000000000 000021f4: DUP2 000021f5: MSTORE 000021f6: POP 000021f7: PUSH1 0x0f 000021f9: ADD 000021fa: SWAP1 000021fb: POP 000021fc: PUSH1 0x40 000021fe: MLOAD 000021ff: PUSH1 0x20 00002201: DUP2 00002202: DUP4 00002203: SUB 00002204: SUB 00002205: DUP2 00002206: MSTORE 00002207: SWAP1 00002208: PUSH1 0x40 0000220a: MSTORE 0000220b: PUSH1 0x40 0000220d: MLOAD 0000220e: DUP1 0000220f: DUP3 00002210: DUP1 00002211: MLOAD 00002212: SWAP1 00002213: PUSH1 0x20 00002215: ADD 00002216: SWAP1 00002217: DUP1 00002218: DUP4 00002219: DUP4 0000221a: JUMPDEST 0000221b: PUSH1 0x20 0000221d: DUP4 0000221e: LT 0000221f: PUSH2 0x2239 00002222: JUMPI 00002223: DUP1 00002224: MLOAD 00002225: DUP3 00002226: MSTORE 00002227: PUSH1 0x1f 00002229: NOT 0000222a: SWAP1 0000222b: SWAP3 0000222c: ADD 0000222d: SWAP2 0000222e: PUSH1 0x20 00002230: SWAP2 00002231: DUP3 00002232: ADD 00002233: SWAP2 00002234: ADD 00002235: PUSH2 0x221a 00002238: JUMP 00002239: JUMPDEST 0000223a: MLOAD 0000223b: DUP2 0000223c: MLOAD 0000223d: PUSH1 0x20 0000223f: SWAP4 00002240: DUP5 00002241: SUB 00002242: PUSH2 0x0100 00002245: EXP 00002246: PUSH1 0x00 00002248: NOT 00002249: ADD 0000224a: DUP1 0000224b: NOT 0000224c: SWAP1 0000224d: SWAP3 0000224e: AND 0000224f: SWAP2 00002250: AND 00002251: OR 00002252: SWAP1 00002253: MSTORE 00002254: PUSH1 0x40 00002256: DUP1 00002257: MLOAD 00002258: SWAP3 00002259: SWAP1 0000225a: SWAP5 0000225b: ADD 0000225c: DUP3 0000225d: SWAP1 0000225e: SUB 0000225f: SWAP1 00002260: SWAP2 00002261: KECCAK256 00002262: DUP7 00002263: MSTORE 00002264: DUP6 00002265: DUP2 00002266: ADD 00002267: SWAP7 00002268: SWAP1 00002269: SWAP7 0000226a: MSTORE 0000226b: POP 0000226c: SWAP3 0000226d: DUP4 0000226e: ADD 0000226f: PUSH1 0x00 00002271: SWAP1 00002272: DUP2 00002273: KECCAK256 00002274: SWAP6 00002275: SWAP1 00002276: SWAP6 00002277: SSTORE 00002278: POP 00002279: POP 0000227a: DUP1 0000227b: MLOAD 0000227c: PUSH32 0x7265717569726564426c6f636b436f6e6669726d6174696f6e73000000000000 0000229d: DUP2 0000229e: DUP5 0000229f: ADD 000022a0: MSTORE 000022a1: DUP2 000022a2: MLOAD 000022a3: PUSH1 0x1a 000022a5: DUP2 000022a6: DUP4 000022a7: SUB 000022a8: ADD 000022a9: DUP2 000022aa: MSTORE 000022ab: PUSH1 0x3a 000022ad: SWAP1 000022ae: SWAP2 000022af: ADD 000022b0: SWAP2 000022b1: DUP3 000022b2: SWAP1 000022b3: MSTORE 000022b4: DUP1 000022b5: MLOAD 000022b6: DUP13 000022b7: SWAP5 000022b8: SWAP4 000022b9: DUP5 000022ba: SWAP4 000022bb: SWAP2 000022bc: DUP3 000022bd: SWAP2 000022be: DUP5 000022bf: ADD 000022c0: SWAP1 000022c1: DUP1 000022c2: DUP4 000022c3: DUP4 000022c4: JUMPDEST 000022c5: PUSH1 0x20 000022c7: DUP4 000022c8: LT 000022c9: PUSH2 0x22e3 000022cc: JUMPI 000022cd: DUP1 000022ce: MLOAD 000022cf: DUP3 000022d0: MSTORE 000022d1: PUSH1 0x1f 000022d3: NOT 000022d4: SWAP1 000022d5: SWAP3 000022d6: ADD 000022d7: SWAP2 000022d8: PUSH1 0x20 000022da: SWAP2 000022db: DUP3 000022dc: ADD 000022dd: SWAP2 000022de: ADD 000022df: PUSH2 0x22c4 000022e2: JUMP 000022e3: JUMPDEST 000022e4: MLOAD 000022e5: DUP2 000022e6: MLOAD 000022e7: PUSH1 0x20 000022e9: SWAP4 000022ea: DUP5 000022eb: SUB 000022ec: PUSH2 0x0100 000022ef: EXP 000022f0: PUSH1 0x00 000022f2: NOT 000022f3: ADD 000022f4: DUP1 000022f5: NOT 000022f6: SWAP1 000022f7: SWAP3 000022f8: AND 000022f9: SWAP2 000022fa: AND 000022fb: OR 000022fc: SWAP1 000022fd: MSTORE 000022fe: PUSH1 0x40 00002300: DUP1 00002301: MLOAD 00002302: SWAP3 00002303: SWAP1 00002304: SWAP5 00002305: ADD 00002306: DUP3 00002307: SWAP1 00002308: SUB 00002309: SWAP1 0000230a: SWAP2 0000230b: KECCAK256 0000230c: DUP7 0000230d: MSTORE 0000230e: DUP6 0000230f: DUP2 00002310: ADD 00002311: SWAP7 00002312: SWAP1 00002313: SWAP7 00002314: MSTORE 00002315: POP 00002316: SWAP3 00002317: DUP4 00002318: ADD 00002319: PUSH1 0x00 0000231b: SWAP1 0000231c: DUP2 0000231d: KECCAK256 0000231e: SWAP6 0000231f: SWAP1 00002320: SWAP6 00002321: SSTORE 00002322: POP 00002323: POP 00002324: DUP1 00002325: MLOAD 00002326: PUSH32 0x6761735072696365000000000000000000000000000000000000000000000000 00002347: DUP2 00002348: DUP5 00002349: ADD 0000234a: MSTORE 0000234b: DUP2 0000234c: MLOAD 0000234d: PUSH1 0x08 0000234f: DUP2 00002350: DUP4 00002351: SUB 00002352: ADD 00002353: DUP2 00002354: MSTORE 00002355: PUSH1 0x28 00002357: SWAP1 00002358: SWAP2 00002359: ADD 0000235a: SWAP2 0000235b: DUP3 0000235c: SWAP1 0000235d: MSTORE 0000235e: DUP1 0000235f: MLOAD 00002360: DUP12 00002361: SWAP5 00002362: SWAP4 00002363: DUP5 00002364: SWAP4 00002365: SWAP2 00002366: DUP3 00002367: SWAP2 00002368: DUP5 00002369: ADD 0000236a: SWAP1 0000236b: DUP1 0000236c: DUP4 0000236d: DUP4 0000236e: JUMPDEST 0000236f: PUSH1 0x20 00002371: DUP4 00002372: LT 00002373: PUSH2 0x238d 00002376: JUMPI 00002377: DUP1 00002378: MLOAD 00002379: DUP3 0000237a: MSTORE 0000237b: PUSH1 0x1f 0000237d: NOT 0000237e: SWAP1 0000237f: SWAP3 00002380: ADD 00002381: SWAP2 00002382: PUSH1 0x20 00002384: SWAP2 00002385: DUP3 00002386: ADD 00002387: SWAP2 00002388: ADD 00002389: PUSH2 0x236e 0000238c: JUMP 0000238d: JUMPDEST 0000238e: MLOAD 0000238f: DUP2 00002390: MLOAD 00002391: PUSH1 0x20 00002393: SWAP4 00002394: DUP5 00002395: SUB 00002396: PUSH2 0x0100 00002399: EXP 0000239a: PUSH1 0x00 0000239c: NOT 0000239d: ADD 0000239e: DUP1 0000239f: NOT 000023a0: SWAP1 000023a1: SWAP3 000023a2: AND 000023a3: SWAP2 000023a4: AND 000023a5: OR 000023a6: SWAP1 000023a7: MSTORE 000023a8: PUSH1 0x40 000023aa: DUP1 000023ab: MLOAD 000023ac: SWAP3 000023ad: SWAP1 000023ae: SWAP5 000023af: ADD 000023b0: DUP3 000023b1: SWAP1 000023b2: SUB 000023b3: SWAP1 000023b4: SWAP2 000023b5: KECCAK256 000023b6: DUP7 000023b7: MSTORE 000023b8: DUP6 000023b9: DUP2 000023ba: ADD 000023bb: SWAP7 000023bc: SWAP1 000023bd: SWAP7 000023be: MSTORE 000023bf: POP 000023c0: SWAP3 000023c1: DUP4 000023c2: ADD 000023c3: PUSH1 0x00 000023c5: SWAP1 000023c6: DUP2 000023c7: KECCAK256 000023c8: SWAP6 000023c9: SWAP1 000023ca: SWAP6 000023cb: SSTORE 000023cc: POP 000023cd: POP 000023ce: DUP1 000023cf: MLOAD 000023d0: PUSH32 0x6d61785065725478000000000000000000000000000000000000000000000000 000023f1: DUP2 000023f2: DUP5 000023f3: ADD 000023f4: MSTORE 000023f5: DUP2 000023f6: MLOAD 000023f7: PUSH1 0x08 000023f9: DUP2 000023fa: DUP4 000023fb: SUB 000023fc: ADD 000023fd: DUP2 000023fe: MSTORE 000023ff: PUSH1 0x28 00002401: SWAP1 00002402: SWAP2 00002403: ADD 00002404: SWAP2 00002405: DUP3 00002406: SWAP1 00002407: MSTORE 00002408: DUP1 00002409: MLOAD 0000240a: DUP11 0000240b: SWAP5 0000240c: SWAP4 0000240d: DUP5 0000240e: SWAP4 0000240f: SWAP2 00002410: DUP3 00002411: SWAP2 00002412: DUP5 00002413: ADD 00002414: SWAP1 00002415: DUP1 00002416: DUP4 00002417: DUP4 00002418: JUMPDEST 00002419: PUSH1 0x20 0000241b: DUP4 0000241c: LT 0000241d: PUSH2 0x2437 00002420: JUMPI 00002421: DUP1 00002422: MLOAD 00002423: DUP3 00002424: MSTORE 00002425: PUSH1 0x1f 00002427: NOT 00002428: SWAP1 00002429: SWAP3 0000242a: ADD 0000242b: SWAP2 0000242c: PUSH1 0x20 0000242e: SWAP2 0000242f: DUP3 00002430: ADD 00002431: SWAP2 00002432: ADD 00002433: PUSH2 0x2418 00002436: JUMP 00002437: JUMPDEST 00002438: MLOAD 00002439: DUP2 0000243a: MLOAD 0000243b: PUSH1 0x20 0000243d: SWAP4 0000243e: DUP5 0000243f: SUB 00002440: PUSH2 0x0100 00002443: EXP 00002444: PUSH1 0x00 00002446: NOT 00002447: ADD 00002448: DUP1 00002449: NOT 0000244a: SWAP1 0000244b: SWAP3 0000244c: AND 0000244d: SWAP2 0000244e: AND 0000244f: OR 00002450: SWAP1 00002451: MSTORE 00002452: PUSH1 0x40 00002454: DUP1 00002455: MLOAD 00002456: SWAP3 00002457: SWAP1 00002458: SWAP5 00002459: ADD 0000245a: DUP3 0000245b: SWAP1 0000245c: SUB 0000245d: SWAP1 0000245e: SWAP2 0000245f: KECCAK256 00002460: DUP7 00002461: MSTORE 00002462: DUP6 00002463: DUP2 00002464: ADD 00002465: SWAP7 00002466: SWAP1 00002467: SWAP7 00002468: MSTORE 00002469: POP 0000246a: SWAP3 0000246b: DUP4 0000246c: ADD 0000246d: PUSH1 0x00 0000246f: SWAP1 00002470: DUP2 00002471: KECCAK256 00002472: SWAP6 00002473: SWAP1 00002474: SWAP6 00002475: SSTORE 00002476: POP 00002477: POP 00002478: DUP1 00002479: MLOAD 0000247a: PUSH32 0x657865637574696f6e4461696c794c696d697400000000000000000000000000 0000249b: DUP2 0000249c: DUP5 0000249d: ADD 0000249e: MSTORE 0000249f: DUP2 000024a0: MLOAD 000024a1: PUSH1 0x13 000024a3: DUP2 000024a4: DUP4 000024a5: SUB 000024a6: ADD 000024a7: DUP2 000024a8: MSTORE 000024a9: PUSH1 0x33 000024ab: SWAP1 000024ac: SWAP2 000024ad: ADD 000024ae: SWAP2 000024af: DUP3 000024b0: SWAP1 000024b1: MSTORE 000024b2: DUP1 000024b3: MLOAD 000024b4: DUP10 000024b5: SWAP5 000024b6: SWAP4 000024b7: DUP5 000024b8: SWAP4 000024b9: SWAP2 000024ba: DUP3 000024bb: SWAP2 000024bc: DUP5 000024bd: ADD 000024be: SWAP1 000024bf: DUP1 000024c0: DUP4 000024c1: DUP4 000024c2: JUMPDEST 000024c3: PUSH1 0x20 000024c5: DUP4 000024c6: LT 000024c7: PUSH2 0x24e1 000024ca: JUMPI 000024cb: DUP1 000024cc: MLOAD 000024cd: DUP3 000024ce: MSTORE 000024cf: PUSH1 0x1f 000024d1: NOT 000024d2: SWAP1 000024d3: SWAP3 000024d4: ADD 000024d5: SWAP2 000024d6: PUSH1 0x20 000024d8: SWAP2 000024d9: DUP3 000024da: ADD 000024db: SWAP2 000024dc: ADD 000024dd: PUSH2 0x24c2 000024e0: JUMP 000024e1: JUMPDEST 000024e2: MLOAD 000024e3: DUP2 000024e4: MLOAD 000024e5: PUSH1 0x20 000024e7: SWAP4 000024e8: DUP5 000024e9: SUB 000024ea: PUSH2 0x0100 000024ed: EXP 000024ee: PUSH1 0x00 000024f0: NOT 000024f1: ADD 000024f2: DUP1 000024f3: NOT 000024f4: SWAP1 000024f5: SWAP3 000024f6: AND 000024f7: SWAP2 000024f8: AND 000024f9: OR 000024fa: SWAP1 000024fb: MSTORE 000024fc: PUSH1 0x40 000024fe: DUP1 000024ff: MLOAD 00002500: SWAP3 00002501: SWAP1 00002502: SWAP5 00002503: ADD 00002504: DUP3 00002505: SWAP1 00002506: SUB 00002507: SWAP1 00002508: SWAP2 00002509: KECCAK256 0000250a: DUP7 0000250b: MSTORE 0000250c: DUP6 0000250d: DUP2 0000250e: ADD 0000250f: SWAP7 00002510: SWAP1 00002511: SWAP7 00002512: MSTORE 00002513: POP 00002514: SWAP3 00002515: DUP4 00002516: ADD 00002517: PUSH1 0x00 00002519: SWAP1 0000251a: DUP2 0000251b: KECCAK256 0000251c: SWAP6 0000251d: SWAP1 0000251e: SWAP6 0000251f: SSTORE 00002520: POP 00002521: POP 00002522: DUP1 00002523: MLOAD 00002524: PUSH32 0x657865637574696f6e4d61785065725478000000000000000000000000000000 00002545: DUP2 00002546: DUP5 00002547: ADD 00002548: MSTORE 00002549: DUP2 0000254a: MLOAD 0000254b: PUSH1 0x11 0000254d: DUP2 0000254e: DUP4 0000254f: SUB 00002550: ADD 00002551: DUP2 00002552: MSTORE 00002553: PUSH1 0x31 00002555: SWAP1 00002556: SWAP2 00002557: ADD 00002558: SWAP2 00002559: DUP3 0000255a: SWAP1 0000255b: MSTORE 0000255c: DUP1 0000255d: MLOAD 0000255e: DUP9 0000255f: SWAP5 00002560: SWAP4 00002561: DUP5 00002562: SWAP4 00002563: SWAP2 00002564: DUP3 00002565: SWAP2 00002566: DUP5 00002567: ADD 00002568: SWAP1 00002569: DUP1 0000256a: DUP4 0000256b: DUP4 0000256c: JUMPDEST 0000256d: PUSH1 0x20 0000256f: DUP4 00002570: LT 00002571: PUSH2 0x258b 00002574: JUMPI 00002575: DUP1 00002576: MLOAD 00002577: DUP3 00002578: MSTORE 00002579: PUSH1 0x1f 0000257b: NOT 0000257c: SWAP1 0000257d: SWAP3 0000257e: ADD 0000257f: SWAP2 00002580: PUSH1 0x20 00002582: SWAP2 00002583: DUP3 00002584: ADD 00002585: SWAP2 00002586: ADD 00002587: PUSH2 0x256c 0000258a: JUMP 0000258b: JUMPDEST 0000258c: MLOAD 0000258d: DUP2 0000258e: MLOAD 0000258f: PUSH1 0x20 00002591: SWAP4 00002592: DUP5 00002593: SUB 00002594: PUSH2 0x0100 00002597: EXP 00002598: PUSH1 0x00 0000259a: NOT 0000259b: ADD 0000259c: DUP1 0000259d: NOT 0000259e: SWAP1 0000259f: SWAP3 000025a0: AND 000025a1: SWAP2 000025a2: AND 000025a3: OR 000025a4: SWAP1 000025a5: MSTORE 000025a6: PUSH1 0x40 000025a8: DUP1 000025a9: MLOAD 000025aa: SWAP3 000025ab: SWAP1 000025ac: SWAP5 000025ad: ADD 000025ae: DUP3 000025af: SWAP1 000025b0: SUB 000025b1: SWAP1 000025b2: SWAP2 000025b3: KECCAK256 000025b4: DUP7 000025b5: MSTORE 000025b6: DUP6 000025b7: DUP2 000025b8: ADD 000025b9: SWAP7 000025ba: SWAP1 000025bb: SWAP7 000025bc: MSTORE 000025bd: POP 000025be: SWAP3 000025bf: DUP4 000025c0: ADD 000025c1: PUSH1 0x00 000025c3: SWAP1 000025c4: DUP2 000025c5: KECCAK256 000025c6: SWAP6 000025c7: SWAP1 000025c8: SWAP6 000025c9: SSTORE 000025ca: POP 000025cb: POP 000025cc: DUP1 000025cd: MLOAD 000025ce: PUSH32 0x66656550657263656e7400000000000000000000000000000000000000000000 000025ef: DUP2 000025f0: DUP5 000025f1: ADD 000025f2: MSTORE 000025f3: DUP2 000025f4: MLOAD 000025f5: PUSH1 0x0a 000025f7: DUP2 000025f8: DUP4 000025f9: SUB 000025fa: ADD 000025fb: DUP2 000025fc: MSTORE 000025fd: PUSH1 0x2a 000025ff: SWAP1 00002600: SWAP2 00002601: ADD 00002602: SWAP2 00002603: DUP3 00002604: SWAP1 00002605: MSTORE 00002606: DUP1 00002607: MLOAD 00002608: DUP7 00002609: SWAP5 0000260a: SWAP4 0000260b: DUP5 0000260c: SWAP4 0000260d: SWAP2 0000260e: DUP3 0000260f: SWAP2 00002610: DUP5 00002611: ADD 00002612: SWAP1 00002613: DUP1 00002614: DUP4 00002615: DUP4 00002616: JUMPDEST 00002617: PUSH1 0x20 00002619: DUP4 0000261a: LT 0000261b: PUSH2 0x2635 0000261e: JUMPI 0000261f: DUP1 00002620: MLOAD 00002621: DUP3 00002622: MSTORE 00002623: PUSH1 0x1f 00002625: NOT 00002626: SWAP1 00002627: SWAP3 00002628: ADD 00002629: SWAP2 0000262a: PUSH1 0x20 0000262c: SWAP2 0000262d: DUP3 0000262e: ADD 0000262f: SWAP2 00002630: ADD 00002631: PUSH2 0x2616 00002634: JUMP 00002635: JUMPDEST 00002636: MLOAD 00002637: DUP2 00002638: MLOAD 00002639: PUSH1 0x20 0000263b: SWAP4 0000263c: DUP5 0000263d: SUB 0000263e: PUSH2 0x0100 00002641: EXP 00002642: PUSH1 0x00 00002644: NOT 00002645: ADD 00002646: DUP1 00002647: NOT 00002648: SWAP1 00002649: SWAP3 0000264a: AND 0000264b: SWAP2 0000264c: AND 0000264d: OR 0000264e: SWAP1 0000264f: MSTORE 00002650: PUSH1 0x40 00002652: DUP1 00002653: MLOAD 00002654: SWAP3 00002655: SWAP1 00002656: SWAP5 00002657: ADD 00002658: DUP3 00002659: SWAP1 0000265a: SUB 0000265b: SWAP1 0000265c: SWAP2 0000265d: KECCAK256 0000265e: DUP7 0000265f: MSTORE 00002660: DUP6 00002661: ADD 00002662: SWAP6 00002663: SWAP1 00002664: SWAP6 00002665: MSTORE 00002666: SWAP3 00002667: SWAP1 00002668: SWAP3 00002669: ADD 0000266a: PUSH1 0x00 0000266c: KECCAK256 0000266d: SWAP4 0000266e: SWAP1 0000266f: SWAP4 00002670: SSTORE 00002671: POP 00002672: PUSH2 0x267e 00002675: SWAP2 00002676: POP 00002677: DUP5 00002678: SWAP1 00002679: POP 0000267a: PUSH2 0x28af 0000267d: JUMP 0000267e: JUMPDEST 0000267f: PUSH2 0x2688 00002682: PUSH1 0x01 00002684: PUSH2 0x2d22 00002687: JUMP 00002688: JUMPDEST 00002689: PUSH2 0x0eaf 0000268c: PUSH2 0x0a9f 0000268f: JUMP 00002690: JUMPDEST 00002691: PUSH1 0x00 00002693: DUP1 00002694: PUSH2 0x269b 00002697: PUSH2 0x17a7 0000269a: JUMP 0000269b: JUMPDEST 0000269c: PUSH1 0x01 0000269e: PUSH1 0xa0 000026a0: PUSH1 0x02 000026a2: EXP 000026a3: SUB 000026a4: AND 000026a5: CALLER 000026a6: EQ 000026a7: PUSH2 0x26af 000026aa: JUMPI 000026ab: PUSH1 0x00 000026ad: DUP1 000026ae: REVERT 000026af: JUMPDEST 000026b0: PUSH1 0x01 000026b2: PUSH1 0xa0 000026b4: PUSH1 0x02 000026b6: EXP 000026b7: SUB 000026b8: DUP4 000026b9: AND 000026ba: ISZERO 000026bb: ISZERO 000026bc: PUSH2 0x26c4 000026bf: JUMPI 000026c0: PUSH1 0x00 000026c2: DUP1 000026c3: REVERT 000026c4: JUMPDEST 000026c5: PUSH1 0x01 000026c7: PUSH1 0xa0 000026c9: PUSH1 0x02 000026cb: EXP 000026cc: SUB 000026cd: DUP5 000026ce: AND 000026cf: ISZERO 000026d0: ISZERO 000026d1: PUSH2 0x2710 000026d4: JUMPI 000026d5: PUSH1 0x40 000026d7: MLOAD 000026d8: PUSH1 0x01 000026da: PUSH1 0xa0 000026dc: PUSH1 0x02 000026de: EXP 000026df: SUB 000026e0: DUP5 000026e1: AND 000026e2: SWAP1 000026e3: ADDRESS 000026e4: BALANCE 000026e5: DUP1 000026e6: ISZERO 000026e7: PUSH2 0x08fc 000026ea: MUL 000026eb: SWAP2 000026ec: PUSH1 0x00 000026ee: DUP2 000026ef: DUP2 000026f0: DUP2 000026f1: DUP6 000026f2: DUP9 000026f3: DUP9 000026f4: CALL 000026f5: SWAP4 000026f6: POP 000026f7: POP 000026f8: POP 000026f9: POP 000026fa: ISZERO 000026fb: DUP1 000026fc: ISZERO 000026fd: PUSH2 0x270a 00002700: JUMPI 00002701: RETURNDATASIZE 00002702: PUSH1 0x00 00002704: DUP1 00002705: RETURNDATACOPY 00002706: RETURNDATASIZE 00002707: PUSH1 0x00 00002709: REVERT 0000270a: JUMPDEST 0000270b: POP 0000270c: PUSH2 0x2846 0000270f: JUMP 00002710: JUMPDEST 00002711: PUSH1 0x40 00002713: DUP1 00002714: MLOAD 00002715: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00002736: DUP2 00002737: MSTORE 00002738: ADDRESS 00002739: PUSH1 0x04 0000273b: DUP3 0000273c: ADD 0000273d: MSTORE 0000273e: SWAP1 0000273f: MLOAD 00002740: DUP6 00002741: SWAP4 00002742: POP 00002743: PUSH1 0x01 00002745: PUSH1 0xa0 00002747: PUSH1 0x02 00002749: EXP 0000274a: SUB 0000274b: DUP5 0000274c: AND 0000274d: SWAP2 0000274e: PUSH4 0x70a08231 00002753: SWAP2 00002754: PUSH1 0x24 00002756: DUP1 00002757: DUP4 00002758: ADD 00002759: SWAP3 0000275a: PUSH1 0x20 0000275c: SWAP3 0000275d: SWAP2 0000275e: SWAP1 0000275f: DUP3 00002760: SWAP1 00002761: SUB 00002762: ADD 00002763: DUP2 00002764: PUSH1 0x00 00002766: DUP8 00002767: DUP1 00002768: EXTCODESIZE 00002769: ISZERO 0000276a: DUP1 0000276b: ISZERO 0000276c: PUSH2 0x2774 0000276f: JUMPI 00002770: PUSH1 0x00 00002772: DUP1 00002773: REVERT 00002774: JUMPDEST 00002775: POP 00002776: GAS 00002777: CALL 00002778: ISZERO 00002779: DUP1 0000277a: ISZERO 0000277b: PUSH2 0x2788 0000277e: JUMPI 0000277f: RETURNDATASIZE 00002780: PUSH1 0x00 00002782: DUP1 00002783: RETURNDATACOPY 00002784: RETURNDATASIZE 00002785: PUSH1 0x00 00002787: REVERT 00002788: JUMPDEST 00002789: POP 0000278a: POP 0000278b: POP 0000278c: POP 0000278d: PUSH1 0x40 0000278f: MLOAD 00002790: RETURNDATASIZE 00002791: PUSH1 0x20 00002793: DUP2 00002794: LT 00002795: ISZERO 00002796: PUSH2 0x279e 00002799: JUMPI 0000279a: PUSH1 0x00 0000279c: DUP1 0000279d: REVERT 0000279e: JUMPDEST 0000279f: POP 000027a0: MLOAD 000027a1: PUSH1 0x40 000027a3: DUP1 000027a4: MLOAD 000027a5: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 000027c6: DUP2 000027c7: MSTORE 000027c8: PUSH1 0x01 000027ca: PUSH1 0xa0 000027cc: PUSH1 0x02 000027ce: EXP 000027cf: SUB 000027d0: DUP7 000027d1: DUP2 000027d2: AND 000027d3: PUSH1 0x04 000027d5: DUP4 000027d6: ADD 000027d7: MSTORE 000027d8: PUSH1 0x24 000027da: DUP3 000027db: ADD 000027dc: DUP5 000027dd: SWAP1 000027de: MSTORE 000027df: SWAP2 000027e0: MLOAD 000027e1: SWAP3 000027e2: SWAP4 000027e3: POP 000027e4: SWAP1 000027e5: DUP5 000027e6: AND 000027e7: SWAP2 000027e8: PUSH4 0xa9059cbb 000027ed: SWAP2 000027ee: PUSH1 0x44 000027f0: DUP1 000027f1: DUP3 000027f2: ADD 000027f3: SWAP3 000027f4: PUSH1 0x20 000027f6: SWAP3 000027f7: SWAP1 000027f8: SWAP2 000027f9: SWAP1 000027fa: DUP3 000027fb: SWAP1 000027fc: SUB 000027fd: ADD 000027fe: DUP2 000027ff: PUSH1 0x00 00002801: DUP8 00002802: DUP1 00002803: EXTCODESIZE 00002804: ISZERO 00002805: DUP1 00002806: ISZERO 00002807: PUSH2 0x280f 0000280a: JUMPI 0000280b: PUSH1 0x00 0000280d: DUP1 0000280e: REVERT 0000280f: JUMPDEST 00002810: POP 00002811: GAS 00002812: CALL 00002813: ISZERO 00002814: DUP1 00002815: ISZERO 00002816: PUSH2 0x2823 00002819: JUMPI 0000281a: RETURNDATASIZE 0000281b: PUSH1 0x00 0000281d: DUP1 0000281e: RETURNDATACOPY 0000281f: RETURNDATASIZE 00002820: PUSH1 0x00 00002822: REVERT 00002823: JUMPDEST 00002824: POP 00002825: POP 00002826: POP 00002827: POP 00002828: PUSH1 0x40 0000282a: MLOAD 0000282b: RETURNDATASIZE 0000282c: PUSH1 0x20 0000282e: DUP2 0000282f: LT 00002830: ISZERO 00002831: PUSH2 0x2839 00002834: JUMPI 00002835: PUSH1 0x00 00002837: DUP1 00002838: REVERT 00002839: JUMPDEST 0000283a: POP 0000283b: MLOAD 0000283c: ISZERO 0000283d: ISZERO 0000283e: PUSH2 0x2846 00002841: JUMPI 00002842: PUSH1 0x00 00002844: DUP1 00002845: REVERT 00002846: JUMPDEST 00002847: POP 00002848: POP 00002849: POP 0000284a: POP 0000284b: JUMP 0000284c: JUMPDEST 0000284d: PUSH1 0x00 0000284f: DUP3 00002850: DUP3 00002851: ADD 00002852: DUP4 00002853: DUP2 00002854: LT 00002855: ISZERO 00002856: PUSH2 0x1030 00002859: JUMPI 0000285a: INVALID 0000285b: JUMPDEST 0000285c: PUSH1 0x00 0000285e: DUP1 0000285f: DUP4 00002860: ISZERO 00002861: ISZERO 00002862: PUSH2 0x286e 00002865: JUMPI 00002866: PUSH1 0x00 00002868: SWAP2 00002869: POP 0000286a: PUSH2 0x1f03 0000286d: JUMP 0000286e: JUMPDEST 0000286f: POP 00002870: DUP3 00002871: DUP3 00002872: MUL 00002873: DUP3 00002874: DUP5 00002875: DUP3 00002876: DUP2 00002877: ISZERO 00002878: ISZERO 00002879: PUSH2 0x287e 0000287c: JUMPI 0000287d: INVALID 0000287e: JUMPDEST 0000287f: DIV 00002880: EQ 00002881: PUSH2 0x1030 00002884: JUMPI 00002885: INVALID 00002886: JUMPDEST 00002887: PUSH1 0x00 00002889: DUP1 0000288a: DUP3 0000288b: DUP5 0000288c: DUP2 0000288d: ISZERO 0000288e: ISZERO 0000288f: PUSH2 0x2894 00002892: JUMPI 00002893: INVALID 00002894: JUMPDEST 00002895: DIV 00002896: SWAP5 00002897: SWAP4 00002898: POP 00002899: POP 0000289a: POP 0000289b: POP 0000289c: JUMP 0000289d: JUMPDEST 0000289e: PUSH1 0x00 000028a0: DUP3 000028a1: DUP3 000028a2: GT 000028a3: ISZERO 000028a4: PUSH2 0x28a9 000028a7: JUMPI 000028a8: INVALID 000028a9: JUMPDEST 000028aa: POP 000028ab: SWAP1 000028ac: SUB 000028ad: SWAP1 000028ae: JUMP 000028af: JUMPDEST 000028b0: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000028d1: PUSH2 0x28d8 000028d4: PUSH2 0x1122 000028d7: JUMP 000028d8: JUMPDEST 000028d9: PUSH1 0x40 000028db: DUP1 000028dc: MLOAD 000028dd: PUSH1 0x01 000028df: PUSH1 0xa0 000028e1: PUSH1 0x02 000028e3: EXP 000028e4: SUB 000028e5: SWAP3 000028e6: DUP4 000028e7: AND 000028e8: DUP2 000028e9: MSTORE 000028ea: SWAP2 000028eb: DUP5 000028ec: AND 000028ed: PUSH1 0x20 000028ef: DUP4 000028f0: ADD 000028f1: MSTORE 000028f2: DUP1 000028f3: MLOAD 000028f4: SWAP2 000028f5: DUP3 000028f6: SWAP1 000028f7: SUB 000028f8: ADD 000028f9: SWAP1 000028fa: LOG1 000028fb: DUP1 000028fc: PUSH1 0x02 000028fe: PUSH1 0x00 00002900: PUSH1 0x40 00002902: MLOAD 00002903: PUSH1 0x20 00002905: ADD 00002906: DUP1 00002907: DUP1 00002908: PUSH32 0x6f776e6572000000000000000000000000000000000000000000000000000000 00002929: DUP2 0000292a: MSTORE 0000292b: POP 0000292c: PUSH1 0x05 0000292e: ADD 0000292f: SWAP1 00002930: POP 00002931: PUSH1 0x40 00002933: MLOAD 00002934: PUSH1 0x20 00002936: DUP2 00002937: DUP4 00002938: SUB 00002939: SUB 0000293a: DUP2 0000293b: MSTORE 0000293c: SWAP1 0000293d: PUSH1 0x40 0000293f: MSTORE 00002940: PUSH1 0x40 00002942: MLOAD 00002943: DUP1 00002944: DUP3 00002945: DUP1 00002946: MLOAD 00002947: SWAP1 00002948: PUSH1 0x20 0000294a: ADD 0000294b: SWAP1 0000294c: DUP1 0000294d: DUP4 0000294e: DUP4 0000294f: PUSH1 0x20 00002951: DUP4 00002952: LT 00002953: PUSH2 0x1f93 00002956: JUMPI 00002957: DUP1 00002958: MLOAD 00002959: DUP3 0000295a: MSTORE 0000295b: PUSH1 0x1f 0000295d: NOT 0000295e: SWAP1 0000295f: SWAP3 00002960: ADD 00002961: SWAP2 00002962: PUSH1 0x20 00002964: SWAP2 00002965: DUP3 00002966: ADD 00002967: SWAP2 00002968: ADD 00002969: PUSH2 0x1f74 0000296c: JUMP 0000296d: JUMPDEST 0000296e: PUSH1 0x00 00002970: PUSH2 0x2977 00002973: PUSH2 0x2de3 00002976: JUMP 00002977: JUMPDEST 00002978: DUP3 00002979: MLOAD 0000297a: EQ 0000297b: SWAP1 0000297c: POP 0000297d: SWAP2 0000297e: SWAP1 0000297f: POP 00002980: JUMP 00002981: JUMPDEST 00002982: PUSH1 0x40 00002984: DUP1 00002985: MLOAD 00002986: DUP1 00002987: DUP3 00002988: ADD 00002989: DUP3 0000298a: MSTORE 0000298b: PUSH1 0x1a 0000298d: DUP2 0000298e: MSTORE 0000298f: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a000000000000 000029b0: PUSH1 0x20 000029b2: DUP1 000029b3: DUP4 000029b4: ADD 000029b5: SWAP2 000029b6: DUP3 000029b7: MSTORE 000029b8: DUP4 000029b9: MLOAD 000029ba: DUP1 000029bb: DUP6 000029bc: ADD 000029bd: DUP6 000029be: MSTORE 000029bf: PUSH1 0x03 000029c1: DUP2 000029c2: MSTORE 000029c3: PUSH32 0x3130340000000000000000000000000000000000000000000000000000000000 000029e4: DUP2 000029e5: DUP4 000029e6: ADD 000029e7: MSTORE 000029e8: SWAP4 000029e9: MLOAD 000029ea: DUP4 000029eb: MLOAD 000029ec: PUSH1 0x00 000029ee: SWAP6 000029ef: SWAP4 000029f0: DUP6 000029f1: SWAP4 000029f2: DUP6 000029f3: SWAP4 000029f4: DUP10 000029f5: SWAP4 000029f6: SWAP2 000029f7: ADD 000029f8: SWAP2 000029f9: DUP3 000029fa: SWAP2 000029fb: DUP1 000029fc: DUP4 000029fd: DUP4 000029fe: JUMPDEST 000029ff: PUSH1 0x20 00002a01: DUP4 00002a02: LT 00002a03: PUSH2 0x2a1d 00002a06: JUMPI 00002a07: DUP1 00002a08: MLOAD 00002a09: DUP3 00002a0a: MSTORE 00002a0b: PUSH1 0x1f 00002a0d: NOT 00002a0e: SWAP1 00002a0f: SWAP3 00002a10: ADD 00002a11: SWAP2 00002a12: PUSH1 0x20 00002a14: SWAP2 00002a15: DUP3 00002a16: ADD 00002a17: SWAP2 00002a18: ADD 00002a19: PUSH2 0x29fe 00002a1c: JUMP 00002a1d: JUMPDEST 00002a1e: MLOAD 00002a1f: DUP2 00002a20: MLOAD 00002a21: PUSH1 0x20 00002a23: SWAP4 00002a24: DUP5 00002a25: SUB 00002a26: PUSH2 0x0100 00002a29: EXP 00002a2a: PUSH1 0x00 00002a2c: NOT 00002a2d: ADD 00002a2e: DUP1 00002a2f: NOT 00002a30: SWAP1 00002a31: SWAP3 00002a32: AND 00002a33: SWAP2 00002a34: AND 00002a35: OR 00002a36: SWAP1 00002a37: MSTORE 00002a38: DUP7 00002a39: MLOAD 00002a3a: SWAP2 00002a3b: SWAP1 00002a3c: SWAP4 00002a3d: ADD 00002a3e: SWAP3 00002a3f: DUP7 00002a40: ADD 00002a41: SWAP2 00002a42: POP 00002a43: DUP1 00002a44: DUP4 00002a45: DUP4 00002a46: JUMPDEST 00002a47: PUSH1 0x20 00002a49: DUP4 00002a4a: LT 00002a4b: PUSH2 0x2a65 00002a4e: JUMPI 00002a4f: DUP1 00002a50: MLOAD 00002a51: DUP3 00002a52: MSTORE 00002a53: PUSH1 0x1f 00002a55: NOT 00002a56: SWAP1 00002a57: SWAP3 00002a58: ADD 00002a59: SWAP2 00002a5a: PUSH1 0x20 00002a5c: SWAP2 00002a5d: DUP3 00002a5e: ADD 00002a5f: SWAP2 00002a60: ADD 00002a61: PUSH2 0x2a46 00002a64: JUMP 00002a65: JUMPDEST 00002a66: MLOAD 00002a67: DUP2 00002a68: MLOAD 00002a69: PUSH1 0x20 00002a6b: SWAP4 00002a6c: DUP5 00002a6d: SUB 00002a6e: PUSH2 0x0100 00002a71: EXP 00002a72: PUSH1 0x00 00002a74: NOT 00002a75: ADD 00002a76: DUP1 00002a77: NOT 00002a78: SWAP1 00002a79: SWAP3 00002a7a: AND 00002a7b: SWAP2 00002a7c: AND 00002a7d: OR 00002a7e: SWAP1 00002a7f: MSTORE 00002a80: DUP6 00002a81: MLOAD 00002a82: SWAP2 00002a83: SWAP1 00002a84: SWAP4 00002a85: ADD 00002a86: SWAP3 00002a87: DUP6 00002a88: ADD 00002a89: SWAP2 00002a8a: POP 00002a8b: DUP1 00002a8c: DUP4 00002a8d: DUP4 00002a8e: JUMPDEST 00002a8f: PUSH1 0x20 00002a91: DUP4 00002a92: LT 00002a93: PUSH2 0x2aad 00002a96: JUMPI 00002a97: DUP1 00002a98: MLOAD 00002a99: DUP3 00002a9a: MSTORE 00002a9b: PUSH1 0x1f 00002a9d: NOT 00002a9e: SWAP1 00002a9f: SWAP3 00002aa0: ADD 00002aa1: SWAP2 00002aa2: PUSH1 0x20 00002aa4: SWAP2 00002aa5: DUP3 00002aa6: ADD 00002aa7: SWAP2 00002aa8: ADD 00002aa9: PUSH2 0x2a8e 00002aac: JUMP 00002aad: JUMPDEST 00002aae: PUSH1 0x01 00002ab0: DUP4 00002ab1: PUSH1 0x20 00002ab3: SUB 00002ab4: PUSH2 0x0100 00002ab7: EXP 00002ab8: SUB 00002ab9: DUP1 00002aba: NOT 00002abb: DUP3 00002abc: MLOAD 00002abd: AND 00002abe: DUP2 00002abf: DUP5 00002ac0: MLOAD 00002ac1: AND 00002ac2: DUP1 00002ac3: DUP3 00002ac4: OR 00002ac5: DUP6 00002ac6: MSTORE 00002ac7: POP 00002ac8: POP 00002ac9: POP 00002aca: POP 00002acb: POP 00002acc: POP 00002acd: SWAP1 00002ace: POP 00002acf: ADD 00002ad0: SWAP4 00002ad1: POP 00002ad2: POP 00002ad3: POP 00002ad4: POP 00002ad5: PUSH1 0x40 00002ad7: MLOAD 00002ad8: PUSH1 0x20 00002ada: DUP2 00002adb: DUP4 00002adc: SUB 00002add: SUB 00002ade: DUP2 00002adf: MSTORE 00002ae0: SWAP1 00002ae1: PUSH1 0x40 00002ae3: MSTORE 00002ae4: PUSH1 0x40 00002ae6: MLOAD 00002ae7: DUP1 00002ae8: DUP3 00002ae9: DUP1 00002aea: MLOAD 00002aeb: SWAP1 00002aec: PUSH1 0x20 00002aee: ADD 00002aef: SWAP1 00002af0: DUP1 00002af1: DUP4 00002af2: DUP4 00002af3: JUMPDEST 00002af4: PUSH1 0x20 00002af6: DUP4 00002af7: LT 00002af8: PUSH2 0x2b12 00002afb: JUMPI 00002afc: DUP1 00002afd: MLOAD 00002afe: DUP3 00002aff: MSTORE 00002b00: PUSH1 0x1f 00002b02: NOT 00002b03: SWAP1 00002b04: SWAP3 00002b05: ADD 00002b06: SWAP2 00002b07: PUSH1 0x20 00002b09: SWAP2 00002b0a: DUP3 00002b0b: ADD 00002b0c: SWAP2 00002b0d: ADD 00002b0e: PUSH2 0x2af3 00002b11: JUMP 00002b12: JUMPDEST 00002b13: MLOAD 00002b14: DUP2 00002b15: MLOAD 00002b16: PUSH1 0x20 00002b18: SWAP4 00002b19: SWAP1 00002b1a: SWAP4 00002b1b: SUB 00002b1c: PUSH2 0x0100 00002b1f: EXP 00002b20: PUSH1 0x00 00002b22: NOT 00002b23: ADD 00002b24: DUP1 00002b25: NOT 00002b26: SWAP1 00002b27: SWAP2 00002b28: AND 00002b29: SWAP3 00002b2a: AND 00002b2b: SWAP2 00002b2c: SWAP1 00002b2d: SWAP2 00002b2e: OR 00002b2f: SWAP1 00002b30: MSTORE 00002b31: PUSH1 0x40 00002b33: MLOAD 00002b34: SWAP3 00002b35: ADD 00002b36: DUP3 00002b37: SWAP1 00002b38: SUB 00002b39: SWAP1 00002b3a: SWAP2 00002b3b: KECCAK256 00002b3c: SWAP8 00002b3d: SWAP7 00002b3e: POP 00002b3f: POP 00002b40: POP 00002b41: POP 00002b42: POP 00002b43: POP 00002b44: POP 00002b45: JUMP 00002b46: JUMPDEST 00002b47: PUSH1 0x00 00002b49: DUP1 00002b4a: JUMPDEST 00002b4b: DUP4 00002b4c: MLOAD 00002b4d: DUP2 00002b4e: LT 00002b4f: ISZERO 00002b50: PUSH2 0x2b95 00002b53: JUMPI 00002b54: DUP3 00002b55: PUSH1 0x01 00002b57: PUSH1 0xa0 00002b59: PUSH1 0x02 00002b5b: EXP 00002b5c: SUB 00002b5d: AND 00002b5e: DUP5 00002b5f: DUP3 00002b60: DUP2 00002b61: MLOAD 00002b62: DUP2 00002b63: LT 00002b64: ISZERO 00002b65: ISZERO 00002b66: PUSH2 0x2b6b 00002b69: JUMPI 00002b6a: INVALID 00002b6b: JUMPDEST 00002b6c: SWAP1 00002b6d: PUSH1 0x20 00002b6f: ADD 00002b70: SWAP1 00002b71: PUSH1 0x20 00002b73: MUL 00002b74: ADD 00002b75: MLOAD 00002b76: PUSH1 0x01 00002b78: PUSH1 0xa0 00002b7a: PUSH1 0x02 00002b7c: EXP 00002b7d: SUB 00002b7e: AND 00002b7f: EQ 00002b80: ISZERO 00002b81: PUSH2 0x2b8d 00002b84: JUMPI 00002b85: PUSH1 0x01 00002b87: SWAP2 00002b88: POP 00002b89: PUSH2 0x1f03 00002b8c: JUMP 00002b8d: JUMPDEST 00002b8e: PUSH1 0x01 00002b90: ADD 00002b91: PUSH2 0x2b4a 00002b94: JUMP 00002b95: JUMPDEST 00002b96: POP 00002b97: PUSH1 0x00 00002b99: SWAP4 00002b9a: SWAP3 00002b9b: POP 00002b9c: POP 00002b9d: POP 00002b9e: JUMP 00002b9f: JUMPDEST 00002ba0: PUSH1 0x00 00002ba2: DUP1 00002ba3: PUSH2 0x2baa 00002ba6: PUSH2 0x0679 00002ba9: JUMP 00002baa: JUMPDEST 00002bab: PUSH1 0x01 00002bad: PUSH1 0xa0 00002baf: PUSH1 0x02 00002bb1: EXP 00002bb2: SUB 00002bb3: AND 00002bb4: PUSH1 0x40 00002bb6: MLOAD 00002bb7: DUP1 00002bb8: DUP1 00002bb9: PUSH32 0x7472616e7366657228616464726573732c75696e743235362900000000000000 00002bda: DUP2 00002bdb: MSTORE 00002bdc: POP 00002bdd: PUSH1 0x19 00002bdf: ADD 00002be0: SWAP1 00002be1: POP 00002be2: PUSH1 0x40 00002be4: MLOAD 00002be5: DUP1 00002be6: SWAP2 00002be7: SUB 00002be8: SWAP1 00002be9: KECCAK256 00002bea: PUSH1 0xe0 00002bec: PUSH1 0x02 00002bee: EXP 00002bef: SWAP1 00002bf0: DIV 00002bf1: DUP6 00002bf2: DUP6 00002bf3: PUSH1 0x40 00002bf5: MLOAD 00002bf6: DUP4 00002bf7: PUSH4 0xffffffff 00002bfc: AND 00002bfd: PUSH1 0xe0 00002bff: PUSH1 0x02 00002c01: EXP 00002c02: MUL 00002c03: DUP2 00002c04: MSTORE 00002c05: PUSH1 0x04 00002c07: ADD 00002c08: DUP1 00002c09: DUP4 00002c0a: PUSH1 0x01 00002c0c: PUSH1 0xa0 00002c0e: PUSH1 0x02 00002c10: EXP 00002c11: SUB 00002c12: AND 00002c13: PUSH1 0x01 00002c15: PUSH1 0xa0 00002c17: PUSH1 0x02 00002c19: EXP 00002c1a: SUB 00002c1b: AND 00002c1c: DUP2 00002c1d: MSTORE 00002c1e: PUSH1 0x20 00002c20: ADD 00002c21: DUP3 00002c22: DUP2 00002c23: MSTORE 00002c24: PUSH1 0x20 00002c26: ADD 00002c27: SWAP3 00002c28: POP 00002c29: POP 00002c2a: POP 00002c2b: PUSH1 0x00 00002c2d: PUSH1 0x40 00002c2f: MLOAD 00002c30: DUP1 00002c31: DUP4 00002c32: SUB 00002c33: DUP2 00002c34: PUSH1 0x00 00002c36: DUP8 00002c37: GAS 00002c38: CALL 00002c39: SWAP3 00002c3a: POP 00002c3b: POP 00002c3c: POP 00002c3d: SWAP1 00002c3e: POP 00002c3f: DUP1 00002c40: ISZERO 00002c41: ISZERO 00002c42: PUSH2 0x2c4e 00002c45: JUMPI 00002c46: PUSH1 0x00 00002c48: SWAP2 00002c49: POP 00002c4a: PUSH2 0x1f03 00002c4d: JUMP 00002c4e: JUMPDEST 00002c4f: RETURNDATASIZE 00002c50: DUP1 00002c51: ISZERO 00002c52: PUSH2 0x2c62 00002c55: JUMPI 00002c56: PUSH1 0x20 00002c58: DUP2 00002c59: EQ 00002c5a: PUSH2 0x2c6c 00002c5d: JUMPI 00002c5e: PUSH1 0x00 00002c60: DUP1 00002c61: REVERT 00002c62: JUMPDEST 00002c63: PUSH1 0x00 00002c65: NOT 00002c66: SWAP2 00002c67: POP 00002c68: PUSH2 0x2c78 00002c6b: JUMP 00002c6c: JUMPDEST 00002c6d: PUSH1 0x20 00002c6f: PUSH1 0x00 00002c71: DUP1 00002c72: RETURNDATACOPY 00002c73: PUSH1 0x00 00002c75: MLOAD 00002c76: SWAP2 00002c77: POP 00002c78: JUMPDEST 00002c79: POP 00002c7a: SWAP4 00002c7b: SWAP3 00002c7c: POP 00002c7d: POP 00002c7e: POP 00002c7f: JUMP 00002c80: JUMPDEST 00002c81: PUSH1 0x00 00002c83: SWAP1 00002c84: EXTCODESIZE 00002c85: GT 00002c86: SWAP1 00002c87: JUMP 00002c88: JUMPDEST 00002c89: PUSH1 0x01 00002c8b: PUSH1 0xa0 00002c8d: PUSH1 0x02 00002c8f: EXP 00002c90: SUB 00002c91: DUP2 00002c92: AND 00002c93: ISZERO 00002c94: DUP1 00002c95: ISZERO 00002c96: SWAP1 00002c97: PUSH2 0x2ca4 00002c9a: JUMPI 00002c9b: POP 00002c9c: PUSH2 0x2ca4 00002c9f: DUP2 00002ca0: PUSH2 0x2c80 00002ca3: JUMP 00002ca4: JUMPDEST 00002ca5: ISZERO 00002ca6: ISZERO 00002ca7: PUSH2 0x2caf 00002caa: JUMPI 00002cab: PUSH1 0x00 00002cad: DUP1 00002cae: REVERT 00002caf: JUMPDEST 00002cb0: DUP1 00002cb1: PUSH1 0x02 00002cb3: PUSH1 0x00 00002cb5: PUSH1 0x40 00002cb7: MLOAD 00002cb8: PUSH1 0x20 00002cba: ADD 00002cbb: DUP1 00002cbc: DUP1 00002cbd: PUSH32 0x6572633230746f6b656e00000000000000000000000000000000000000000000 00002cde: DUP2 00002cdf: MSTORE 00002ce0: POP 00002ce1: PUSH1 0x0a 00002ce3: ADD 00002ce4: SWAP1 00002ce5: POP 00002ce6: PUSH1 0x40 00002ce8: MLOAD 00002ce9: PUSH1 0x20 00002ceb: DUP2 00002cec: DUP4 00002ced: SUB 00002cee: SUB 00002cef: DUP2 00002cf0: MSTORE 00002cf1: SWAP1 00002cf2: PUSH1 0x40 00002cf4: MSTORE 00002cf5: PUSH1 0x40 00002cf7: MLOAD 00002cf8: DUP1 00002cf9: DUP3 00002cfa: DUP1 00002cfb: MLOAD 00002cfc: SWAP1 00002cfd: PUSH1 0x20 00002cff: ADD 00002d00: SWAP1 00002d01: DUP1 00002d02: DUP4 00002d03: DUP4 00002d04: PUSH1 0x20 00002d06: DUP4 00002d07: LT 00002d08: PUSH2 0x1f93 00002d0b: JUMPI 00002d0c: DUP1 00002d0d: MLOAD 00002d0e: DUP3 00002d0f: MSTORE 00002d10: PUSH1 0x1f 00002d12: NOT 00002d13: SWAP1 00002d14: SWAP3 00002d15: ADD 00002d16: SWAP2 00002d17: PUSH1 0x20 00002d19: SWAP2 00002d1a: DUP3 00002d1b: ADD 00002d1c: SWAP2 00002d1d: ADD 00002d1e: PUSH2 0x1f74 00002d21: JUMP 00002d22: JUMPDEST 00002d23: DUP1 00002d24: PUSH1 0x04 00002d26: PUSH1 0x00 00002d28: PUSH1 0x40 00002d2a: MLOAD 00002d2b: PUSH1 0x20 00002d2d: ADD 00002d2e: DUP1 00002d2f: DUP1 00002d30: PUSH32 0x6973496e697469616c697a656400000000000000000000000000000000000000 00002d51: DUP2 00002d52: MSTORE 00002d53: POP 00002d54: PUSH1 0x0d 00002d56: ADD 00002d57: SWAP1 00002d58: POP 00002d59: PUSH1 0x40 00002d5b: MLOAD 00002d5c: PUSH1 0x20 00002d5e: DUP2 00002d5f: DUP4 00002d60: SUB 00002d61: SUB 00002d62: DUP2 00002d63: MSTORE 00002d64: SWAP1 00002d65: PUSH1 0x40 00002d67: MSTORE 00002d68: PUSH1 0x40 00002d6a: MLOAD 00002d6b: DUP1 00002d6c: DUP3 00002d6d: DUP1 00002d6e: MLOAD 00002d6f: SWAP1 00002d70: PUSH1 0x20 00002d72: ADD 00002d73: SWAP1 00002d74: DUP1 00002d75: DUP4 00002d76: DUP4 00002d77: JUMPDEST 00002d78: PUSH1 0x20 00002d7a: DUP4 00002d7b: LT 00002d7c: PUSH2 0x2d96 00002d7f: JUMPI 00002d80: DUP1 00002d81: MLOAD 00002d82: DUP3 00002d83: MSTORE 00002d84: PUSH1 0x1f 00002d86: NOT 00002d87: SWAP1 00002d88: SWAP3 00002d89: ADD 00002d8a: SWAP2 00002d8b: PUSH1 0x20 00002d8d: SWAP2 00002d8e: DUP3 00002d8f: ADD 00002d90: SWAP2 00002d91: ADD 00002d92: PUSH2 0x2d77 00002d95: JUMP 00002d96: JUMPDEST 00002d97: MLOAD 00002d98: DUP2 00002d99: MLOAD 00002d9a: PUSH1 0x20 00002d9c: SWAP4 00002d9d: DUP5 00002d9e: SUB 00002d9f: PUSH2 0x0100 00002da2: EXP 00002da3: PUSH1 0x00 00002da5: NOT 00002da6: ADD 00002da7: DUP1 00002da8: NOT 00002da9: SWAP1 00002daa: SWAP3 00002dab: AND 00002dac: SWAP2 00002dad: AND 00002dae: OR 00002daf: SWAP1 00002db0: MSTORE 00002db1: PUSH1 0x40 00002db3: DUP1 00002db4: MLOAD 00002db5: SWAP3 00002db6: SWAP1 00002db7: SWAP5 00002db8: ADD 00002db9: DUP3 00002dba: SWAP1 00002dbb: SUB 00002dbc: SWAP1 00002dbd: SWAP2 00002dbe: KECCAK256 00002dbf: DUP7 00002dc0: MSTORE 00002dc1: DUP6 00002dc2: ADD 00002dc3: SWAP6 00002dc4: SWAP1 00002dc5: SWAP6 00002dc6: MSTORE 00002dc7: SWAP3 00002dc8: SWAP1 00002dc9: SWAP3 00002dca: ADD 00002dcb: PUSH1 0x00 00002dcd: KECCAK256 00002dce: DUP1 00002dcf: SLOAD 00002dd0: PUSH1 0xff 00002dd2: NOT 00002dd3: AND 00002dd4: SWAP5 00002dd5: ISZERO 00002dd6: ISZERO 00002dd7: SWAP5 00002dd8: SWAP1 00002dd9: SWAP5 00002dda: OR 00002ddb: SWAP1 00002ddc: SWAP4 00002ddd: SSTORE 00002dde: POP 00002ddf: POP 00002de0: POP 00002de1: POP 00002de2: JUMP 00002de3: JUMPDEST 00002de4: PUSH1 0x68 00002de6: SWAP1 00002de7: JUMP 00002de8: STOP 00002de9: LOG1 00002dea: PUSH6 0x627a7a723058 00002df1: KECCAK256 00002df2: MSTORE8 00002df3: UNKNOWN(0xEA) 00002df4: SMOD 00002df5: UNKNOWN(0x4D) 00002df6: UNKNOWN(0xE1) 00002df7: ADDRESS 00002df8: UNKNOWN(0xC1) 00002df9: UNKNOWN(0x2A) 00002dfa: ADDRESS 00002dfb: PUSH22 0xf5c8c5d625ca406daecb629d00f5d7b83e1ae040982a 00002e12: STOP 00002e13: UNKNOWN(0x29)
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xa588597cfd462ab27aba4b2735ff937f650de1c7f7e7f72968aa810ddda76ffa
call_targets:
0xb95193fba71b82b245cb3456d1dd2c15ee779e01
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xa588597cfd462ab27aba4b2735ff937f650de1c7f7e7f72968aa810ddda76ffa",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb95193fba71b82b245cb3456d1dd2c15ee779e01"
],
"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": "0x1dcea427",
"selector": "0x1dcea427",
"calldata_variants": [
"0x1dcea427",
"0x1dcea4270000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x21d800ec",
"selector": "0x21d800ec",
"calldata_variants": [
"0x21d800ec",
"0x21d800ec0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x232a2c1d",
"selector": "0x232a2c1d",
"calldata_variants": [
"0x232a2c1d",
"0x232a2c1d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2b92490e",
"selector": "0x2b92490e",
"calldata_variants": [
"0x2b92490e",
"0x2b92490e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2bd0bb05",
"selector": "0x2bd0bb05",
"calldata_variants": [
"0x2bd0bb05",
"0x2bd0bb050000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x392e53cd",
"selector": "0x392e53cd",
"calldata_variants": [
"0x392e53cd",
"0x392e53cd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3dd95d1b",
"selector": "0x3dd95d1b",
"calldata_variants": [
"0x3dd95d1b",
"0x3dd95d1b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3e6968b6",
"selector": "0x3e6968b6",
"calldata_variants": [
"0x3e6968b6",
"0x3e6968b60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4340,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6856,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7128,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 8,
"guards_detected": [],
"untrusted_call_count": 8
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xa588597cfd462ab27aba4b2735ff937f650de1c7f7e7f72968aa810ddda76ffa
call_targets:
0xb95193fba71b82b245cb3456d1dd2c15ee779e01
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xa588597cfd462ab27aba4b2735ff937f650de1c7f7e7f72968aa810ddda76ffa",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb95193fba71b82b245cb3456d1dd2c15ee779e01"
],
"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": "0x1dcea427",
"selector": "0x1dcea427",
"calldata_variants": [
"0x1dcea427",
"0x1dcea4270000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x21d800ec",
"selector": "0x21d800ec",
"calldata_variants": [
"0x21d800ec",
"0x21d800ec0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x232a2c1d",
"selector": "0x232a2c1d",
"calldata_variants": [
"0x232a2c1d",
"0x232a2c1d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2b92490e",
"selector": "0x2b92490e",
"calldata_variants": [
"0x2b92490e",
"0x2b92490e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2bd0bb05",
"selector": "0x2bd0bb05",
"calldata_variants": [
"0x2bd0bb05",
"0x2bd0bb050000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x392e53cd",
"selector": "0x392e53cd",
"calldata_variants": [
"0x392e53cd",
"0x392e53cd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3dd95d1b",
"selector": "0x3dd95d1b",
"calldata_variants": [
"0x3dd95d1b",
"0x3dd95d1b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3e6968b6",
"selector": "0x3e6968b6",
"calldata_variants": [
"0x3e6968b6",
"0x3e6968b60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 4340,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6856,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7128,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 8,
"guards_detected": []
}
|
| medium | auth | codex | Initializer is publicly callable (only guarded by isInitialized flag) | 75 | no | — |
viewevidence_json{
"evidence": "Selector 0x51c764e0 routes to internal 0x0e9c which jumps to 0x1ffc. At 0x1ffc the code only checks isInitialized via 0x0a9f (ISZERO/JUMPI) and proceeds without any CALLER/owner check before setting storage, including the \"isInitialized\" key (see the \"isInitialized\" storage write near the end of the bytecode).",
"locations": [
"BYTECODE_BUNDLE.txt:5"
],
"recommendation": "Ensure initialization is executed during deployment (same tx) or add explicit access control to the initializer. For proxy patterns, call the initializer immediately and consider disabling initializers on the implementation contract.",
"exploit_scenario": "If the contract is deployed but not initialized in the same transaction, any external account can call the initializer once to set critical parameters (owner/validator/token/limits) and take administrative control, potentially misconfiguring or redirecting bridge behavior."
}
|
| 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": 8
}
|