70e078fa-4aa6-414c-b83f-052b0b47a8c7
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 |
|---|---|---|---|---|
| 30943 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 94669 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 94670 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 94671 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 94672 | capability.graph | complete | 1 / 3 | 1 week ago |
| 94673 | detector.run | complete | 1 / 3 | 1 week ago |
| 94674 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1300326] OpenAI Codex v0.77.0 (research preview)
[codex:1300326] --------
[codex:1300326] workdir: /tmp/codex-multi-crqf3hz7
[codex:1300326] model: gpt-5.2-codex
[codex:1300326] provider: openai
[codex:1300326] approval: never
[codex:1300326] sandbox: read-only
[codex:1300326] reasoning effort: xhigh
[codex:1300326] reasoning summaries: auto
[codex:1300326] session id: 019b766d-1868-79f1-9d32-a77e4f7aeff7
[codex:1300326] --------
[codex:1300326] user
[codex:1300326] You are a profit-focused exploit hunter analyzing EVM bytecode. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1300326]
[codex:1300326] Read `BYTECODE_BUNDLE.txt` completely before concluding.
[codex:1300326]
[codex:1300326] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1300326] - Gas inefficiency, code quality, or best practices
[codex:1300326] - Theoretical vulnerabilities without a clear extraction path
[codex:1300326] - Generic footguns (unchecked return values, etc.) unless they enable theft
[codex:1300326] - Issues requiring social engineering or off-chain coordination
[codex:1300326]
[codex:1300326] PATTERNS WORTH INVESTIGATING in bytecode:
[codex:1300326] - CALL/DELEGATECALL with controllable destination or calldata
[codex:1300326] - Value transfers (CALL with non-zero value) without prior CALLER/ORIGIN checks
[codex:1300326] - SSTORE to low slots (0-10) that might be owner/admin storage
[codex:1300326] - ecrecover (signature validation) - look for missing nonce/replay protection
[codex:1300326] - External calls before state updates (reentrancy)
[codex:1300326] - SELFDESTRUCT with controllable beneficiary
[codex:1300326] - Proxy patterns (DELEGATECALL to storage slot) with unprotected upgrade paths
[codex:1300326]
[codex:1300326] For each finding, you MUST explain:
[codex:1300326] 1. The specific bytecode pattern/offsets that indicate the vulnerability
[codex:1300326] 2. The concrete sequence of transactions to extract value
[codex:1300326] 3. Why you believe this is exploitable (not just suspicious)
[codex:1300326]
[codex:1300326] If you cannot identify a concrete profit path from bytecode alone: set no_findings=true.
[codex:1300326] Do NOT hallucinate. Bytecode-only analysis is limited - be honest about uncertainty.
[codex:1300326]
[codex:1300326] Output MUST be valid JSON matching the provided schema.
[codex:1300326] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1300326] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1300326] mcp startup: no servers
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Reading BYTECODE_BUNDLE.txt content**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc ls in /tmp/codex-multi-crqf3hz7 succeeded in 9ms:
[codex:1300326] BYTECODE_BUNDLE.txt
[codex:1300326] codex-output-schema.json
[codex:1300326] exec
[codex:1300326] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-crqf3hz7 succeeded in 5ms:
[codex:1300326] Runtime bytecode bundle for best-effort auditing.
[codex:1300326] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:1300326]
[codex:1300326] FILE: runtime_bytecode.hex
[codex:1300326] 0x6080604052600436101561001e575b361561001c5761001c61218e565b005b5f3560e01c80630eb9142f1461023d57806314b7c124146102385780631626ba7e14610233578063261423351461022e57806334efb1e914610229578063388bb62c146102245780633fc8cef31461021f5780634cf3fe9c1461021a578063567aa1ba1461021557806361acbdcb1461021057806361bb41a71461020b57806369328dec146102065780636d70f7ae14610201578063715018a6146101fc5780637d6a4568146101f75780637dadbe8c146101f25780638594ac40146101ed5780638da5cb5b146101e857806395ccea67146101e35780639e165a78146101de5780639f273fbc146101d9578063a07aea1c146101d4578063a908183d146101cf578063ab06e403146101ca578063af38bf11146101c5578063b9f9fc41146101c0578063d365a377146101bb578063d49d5181146101b6578063d911c632146101b1578063e3fa62d6146101ac578063ecb9e11a146101a7578063f00baf3e146101a2578063f2fde38b1461019d5763fee1303c0361000e57611a2d565b6119e3565b611954565b611937565b6118fa565b611876565b61185b565b6117cf565b611731565b611695565b61163d565b61159f565b61150e565b611446565b6113d2565b61138f565b611367565b611180565b6110e2565b611074565b61100c565b610fc4565b610e1f565b610da2565b610d7a565b610bdb565b6108f3565b610834565b610798565b6104f1565b61048a565b610429565b61031a565b610257565b6001600160a01b0381160361025357565b5f80fd5b346102535760203660031901126102535760043561027481610242565b61028960018060a01b03603354163314611a71565b6001600160a01b031661029b8161267c565b6102a157005b60207f1886ee5ead024938d4f3f3251d2252fc79d5cea5adf88326e227cc271cdcd09091604051908152a1005b5f91031261025357565b60206040818301928281528451809452019201905f5b8181106102fb5750505090565b82516001600160a01b03168452602093840193909201916001016102ee565b34610253575f36600319011261025357604051806020609d54918281520190609d5f527fd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf7b905f5b8181106103885761038485610378818703826103b2565b604051918291826102d8565b0390f35b8254845260209093019260019283019201610361565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176103d357604052565b61039e565b6001600160401b0381116103d357601f01601f191660200190565b9291926103ff826103d8565b9161040d60405193846103b2565b829481845281830111610253578281602093845f960137010152565b34610253576040366003190112610253576024356001600160401b03811161025357366023820112156102535761047761046f60209236906024816004013591016103f3565b600435611abc565b6040516001600160e01b03199091168152f35b346102535760203660031901126102535760206104a8600435612632565b905460405160039290921b1c6001600160a01b03168152f35b9181601f84011215610253578235916001600160401b038311610253576020808501948460051b01011161025357565b34610253576060366003190112610253576004356001600160401b038111610253576105219036906004016104c1565b906024359161052f83610242565b6044359261054860018060a01b03603354163314611a71565b5f8415928315915b81811061055957005b610564818388611b44565b359061056f82610242565b85846105ce575b6001926105856105c892612368565b60405163095ea7b360e01b60208201526001600160a01b0388166024820152604481018b9052906105c382606481015b03601f1981018452836103b2565b6128a6565b01610550565b50604051636eb1769f60e11b81523060048201526001600160a01b038616602482015291602083806044810103816001600160a01b0385165afa90811561065a576105856105c8926001955f9161062c575b50159250509250610576565b61064d915060203d8111610653575b61064581836103b2565b810190612359565b5f610620565b503d61063b565b611f0d565b6001600160401b0381116103d35760051b60200190565b6001600160e01b031981160361025357565b9080601f8301121561025357813561069f8161065f565b926106ad60405194856103b2565b81845260208085019260051b82010192831161025357602001905b8282106106d55750505090565b6020809183356106e481610242565b8152019101906106c8565b906040600319830112610253576004356001600160401b0381116102535782602382011215610253578060040135906107278261065f565b9161073560405193846103b2565b8083526024602084019160051b8301019185831161025357602401905b82821061077e5750505091602435906001600160401b0382116102535761077b91600401610688565b90565b60208091833561078d81610676565b815201910190610752565b34610253576107a6366106ef565b6107bb60018060a01b03603354163314611a71565b6107c88251825114611b59565b5f5b825181101561001c5760019061082e6001600160a01b036107eb8386611ba5565b51166001600160e01b03196108008488611ba5565b51165f52609f60205260405f209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b016107ca565b34610253575f366003190112610253576040517f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03168152602090f35b9181601f84011215610253578235916001600160401b038311610253576020838186019501011161025357565b906040600319830112610253576004356001600160401b038111610253576004016080818403126102535791602435906001600160401b038211610253576108ef91600401610878565b9091565b6108fc366108a5565b9061091a610915335f52609c60205260405f2054151590565b611bb9565b610a6e610a40602085019361094361093186611bfc565b6001600160801b034291161015611c10565b61095f336001600160a01b0361095889611c50565b1614611c5a565b610a3a6060870194610a3261099c61098e61097a898c611c99565b604093919351928391602083019586611d1f565b03601f1981018352826103b2565b519020976109b26109ac8b611c50565b91611bfc565b98610a2a60408c019a61098e6109c78d611bfc565b93604051948593602085019788909493926001600160801b03908160809460a08501987f7e2137b52a88cc72d113166dcedbf48e41ea4ae592924fe4f494d74ca5a0095f865260018060a01b031660208601521660408401521660608201520152565b5190206123d3565b9236916103f3565b9061247e565b609a54610a5d906001600160a01b03165b6001600160a01b031690565b6001600160a01b0390911614611dbd565b5f5b610a7a8285611c99565b9050811015610b915780610aa5610a51610aa0600194610a9a878a611c99565b90611e08565b611c50565b610b2957610b23610afa610aed610ad6610ad0610ac686610a9a8a8d611c99565b6020810190611e6a565b90611e9c565b63ffffffff60e01b165f52609f60205260405f2090565b546001600160a01b031690565b610b0c848060a01b0382161515611ed2565b610b1d610ac684610a9a888b611c99565b916124dd565b01610a70565b610b61610b5c610b40610aa084610a9a888b611c99565b6001600160a01b03165f908152609e6020526040902054151590565b611e2a565b610b8c610b75610aa083610a9a878a611c99565b610b86610ac684610a9a888b611c99565b91612493565b610b23565b826001600160801b03610ba382611bfc565b16610baa57005b5f8080610bb78194611bfc565b6001600160801b0316818115610bd2575b4190f11561065a57005b506108fc610bc8565b3461025357602036600319011261025357600435610bf881610242565b5f5460ff8160081c1690815f14610d6d5750610c15303b15611f18565b159081610d46575b610c3660ff5f5460081c16610c31816124f3565b6124f3565b610c3f336125ea565b5f5460ff8160081c1690815f14610d395750610c5c303b15611f18565b1580610d12575b610cff575b603354610c7f906001600160a01b03163314611a71565b6001600160a01b03811615610cab57610c97906125ea565b610c9d57005b61001c61ff00195f54165f55565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b610d0d61ff00195f54165f55565b610c68565b610d2461010061ff00195f5416175f55565b610d34600160ff195f5416175f55565b610c63565b60ff610c5c911615611f18565b610d5861010061ff00195f5416175f55565b610d68600160ff195f5416175f55565b610c1d565b60ff610c15911615611f18565b34610253575f36600319011261025357609a546040516001600160a01b039091168152602090f35b34610253576020366003190112610253577fb0f5cdd73db8ff444fea735d243faf354a928879825665bf4f2f67600cbac97c6020600435610de281610242565b610df760018060a01b03603354163314611a71565b609a80546001600160a01b0319166001600160a01b03929092169182179055604051908152a1005b3461025357606036600319011261025357600435610e3c81610242565b60243590604435610e4c81610242565b610e69610e64335f52606660205260405f2054151590565b611f7b565b6001600160a01b0381165f90815260a26020526040902054610e8c901515611fc0565b6001600160a01b03821691839073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8403610f8f5750507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031690813b1561025357604051632e1a7d4d60e01b815260048101859052915f908390602490829084905af190811561065a577fb67719fc33c1f17d31bf3a698690d62066b1e0bae28fcd3c56cf2c015c2863d692610f7092610f75575b50610f565f80808089865af1610f5061200c565b5061203b565b6040519485526001600160a01b0316939081906020820190565b0390a3005b80610f835f610f89936103b2565b806102ce565b5f610f3c565b91610fbf610f7092827fb67719fc33c1f17d31bf3a698690d62066b1e0bae28fcd3c56cf2c015c2863d695612553565b610f56565b34610253576020366003190112610253576020611002600435610fe681610242565b6001600160a01b03165f90815260666020526040902054151590565b6040519015158152f35b34610253575f3660031901126102535761103160018060a01b03603354163314611a71565b603380546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346102535760203660031901126102535760043561109181610676565b63ffffffff60e01b165f5260a0602052602060018060a01b0360405f205416604051908152f35b602060031982011261025357600435906001600160401b0382116102535761077b91600401610688565b34610253576110f0366110b8565b61110560018060a01b03603354163314611a71565b5f5b815181101561001c5760019061112f6001600160a01b036111288386611ba5565b5116612b8c565b61113a575b01611107565b7fa30b4a30819461802ef73f5bd8d14569b88b857d9d64f0c5bbb33ea910ebe6896040838060a01b0361116d8487611ba5565b511681519081525f6020820152a1611134565b611189366108a5565b906111a2610915335f52609c60205260405f2054151590565b611285610a4060208501936111b961093186611bfc565b6111ce336001600160a01b0361095889611c50565b610a3a6060870194610a326111fd61098e6111e9898c611c99565b60409391935192839160208301958661207d565b5190209761120d6109ac8b611c50565b98610a2a60408c019a61098e6112228d611bfc565b93604051948593602085019788909493926001600160801b03908160809460a08501987f0ee0e02696fd63599be55592245d9b2ac8d74503d0669f8ca4cea2984abaadcc865260018060a01b031660208601521660408401521660608201520152565b5f5b6112918285611c99565b9050811015610b9157806112b7610a51610aa06001946112b1878a611c99565b90612125565b61130b576113056112e2610aed610ad6610ad06112d8866112b18a8d611c99565b6040810190611e6a565b6112f4848060a01b0382161515611ed2565b610b1d6112d8846112b1888b611c99565b01611287565b611322610b5c610b40610aa0846112b1888b611c99565b611362611336610aa0836112b1878a611c99565b6020611346846112b1888b611c99565b01359061135a6112d8856112b1898c611c99565b9290916124b2565b611305565b34610253575f366003190112610253576033546040516001600160a01b039091168152602090f35b346102535760403660031901126102535761001c6004356113af81610242565b603354602435916001600160a01b03909116906113cd338314611a71565b612553565b34610253575f36600319011261025357604051806020609b54918281520190609b5f527fbba9db4cdbea0a37c207bbb83e20f828cd4441c49891101dc94fd20dc8efc349905f5b8181106114305761038485610378818703826103b2565b8254845260209093019260019283019201611419565b3461025357611454366110b8565b61146960018060a01b03603354163314611a71565b5f5b815181101561001c576001906114936001600160a01b0361148c8386611ba5565b51166126e5565b61149e575b0161146b565b7f6df0471095ad1292c74e0f3615a3b6927ee7b5b7e925423a38cb8c23625ca07d6040838060a01b036114d18487611ba5565b51168151908152846020820152a1611498565b602060031982011261025357600435906001600160401b038211610253576108ef916004016104c1565b346102535761151c366114e4565b61153160018060a01b03603354163314611a71565b5f5b81811061157157507f4c022f03c292dfa42133bfa9f90bbf55089da679c2df97df205f337c12ab7b7c9161156c60405192839283612147565b0390a1005b806115986115826001938587611b44565b3561158c81610242565b838060a01b0316612733565b5001611533565b34610253576115ad366110b8565b6115c260018060a01b03603354163314611a71565b5f5b815181101561001c576001906115ec6001600160a01b036115e58386611ba5565b5116612781565b6115f7575b016115c4565b7fa30b4a30819461802ef73f5bd8d14569b88b857d9d64f0c5bbb33ea910ebe6896040838060a01b0361162a8487611ba5565b51168151908152846020820152a16115f1565b60403660031901126102535760043561165581610242565b602435906001600160401b0382116102535761167861001c923690600401610878565b9161168e60018060a01b03603354163314611a71565b34906124b2565b34610253576116a3366106ef565b6116b860018060a01b03603354163314611a71565b6116c58251825114611b59565b5f5b825181101561001c5760019061172b6001600160a01b036116e88386611ba5565b51166001600160e01b03196116fd8488611ba5565b51165f5260a060205260405f209060018060a01b03166bffffffffffffffffffffffff60a01b825416179055565b016116c7565b346102535761173f366110b8565b61175460018060a01b03603354163314611a71565b5f5b815181101561001c5760019061177e6001600160a01b036117778386611ba5565b5116612c2a565b611789575b01611756565b7f6df0471095ad1292c74e0f3615a3b6927ee7b5b7e925423a38cb8c23625ca07d6040838060a01b036117bc8487611ba5565b511681519081525f6020820152a1611783565b34610253576117dd366114e4565b6117f260018060a01b03603354163314611a71565b5f5b81811061182d57507fd045926746dab8a5acf225487f413b986460165cf50f6052689a2e471198e0599161156c60405192839283612147565b8061185461183e6001938587611b44565b3561184881610242565b838060a01b0316612cac565b50016117f4565b34610253575f3660031901126102535760206040515f198152f35b34610253575f366003190112610253576065546118928161065f565b906118a060405192836103b2565b8082526118af601f199161065f565b013660208301375f5b81518110156118ec57806118cd600192612632565b838060a01b0391549060031b1c166118e58285611ba5565b52016118b8565b6040518061038484826102d8565b346102535760203660031901126102535760043561191781610242565b60018060a01b03165f5260a2602052602060405f20541515604051908152f35b34610253575f366003190112610253576020606554604051908152f35b34610253575f602036600319011261025357600435611981610e64335f52606660205260405f2054151590565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316803b15610253575f90600460405180948193630d0e30db60e41b83525af1801561065a576119d7575080f35b61001c91505f906103b2565b3461025357602036600319011261025357600435611a0081610242565b611a1560018060a01b03603354163314611a71565b6001600160a01b03811615610cab5761001c906125ea565b3461025357602036600319011261025357600435611a4a81610676565b63ffffffff60e01b165f52609f602052602060018060a01b0360405f205416604051908152f35b15611a7857565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b90611b159160018060a01b03609a54169060405160208101917f19457468657265756d205369676e6564204d6573736167653a0a3332000000008352603c820152603c8152611b0c605c826103b2565b5190209061229c565b611b25576001600160e01b031990565b630b135d3f60e11b90565b634e487b7160e01b5f52603260045260245ffd5b9190811015611b545760051b0190565b611b30565b15611b6057565b60405162461bcd60e51b815260206004820152601860248201527f4578656375746f723a20696e76616c6964206c656e67746800000000000000006044820152606490fd5b8051821015611b545760209160051b010190565b15611bc057565b60405162461bcd60e51b81526020600482015260146024820152734f6e6c7920666f7277617264657220616c6c6f7760601b6044820152606490fd5b356001600160801b03811681036102535790565b15611c1757565b60405162461bcd60e51b815260206004820152601160248201527014da59db985d1d5c9948195e1c1a5c9959607a1b6044820152606490fd5b3561077b81610242565b15611c6157565b60405162461bcd60e51b815260206004820152601060248201526f24b731b7b93932b1ba1039b2b73232b960811b6044820152606490fd5b903590601e198136030182121561025357018035906001600160401b03821161025357602001918160051b3603831361025357565b9035601e19823603018112156102535701602081359101916001600160401b03821161025357813603831361025357565b908060209392818452848401375f828201840152601f01601f1916010190565b82602082016020835252604081019260408160051b83010193835f91603e1982360301945b848410611d55575050505050505090565b90919293949596603f19828203018352873587811215610253576020611dac6001936040611d9d898596018035611d8b81610242565b888060a01b0316845285810190611cce565b91909281868201520191611cff565b990193019401929195949390611d44565b15611dc457565b606460405162461bcd60e51b815260206004820152602060248201527f5369676e617475726520646f6573206e6f74206d6174636820726571756573746044820152fd5b9190811015611b545760051b81013590603e1981360301821215610253570190565b15611e3157565b60405162461bcd60e51b8152602060048201526011602482015270139bdd081858d8d95c1d19590819195cdd607a1b6044820152606490fd5b903590601e198136030182121561025357018035906001600160401b0382116102535760200191813603831361025357565b356001600160e01b0319811692919060048210611eb7575050565b6001600160e01b031960049290920360031b82901b16169150565b15611ed957565b60405162461bcd60e51b815260206004820152600c60248201526b2737ba103932b3b4b9ba32b960a11b6044820152606490fd5b6040513d5f823e3d90fd5b15611f1f57565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b15611f8257565b60405162461bcd60e51b815260206004820152601660248201527531b0b63632b91034b9903737ba1037b832b930ba37b960511b6044820152606490fd5b15611fc757565b60405162461bcd60e51b815260206004820152601b60248201527f64657374696e6174696f6e206973206e6f7420617070726f76656400000000006044820152606490fd5b3d15612036573d9061201d826103d8565b9161202b60405193846103b2565b82523d5f602084013e565b606090565b1561204257565b60405162461bcd60e51b81526020600482015260136024820152721dda5d1a191c985dc8195d1a0819985a5b1959606a1b6044820152606490fd5b82602082016020835252604081019260408160051b83010193835f91605e1982360301945b8484106120b3575050505050505090565b90919293949596603f1982820301835287358781121561025357602061211460019360606121048985960180356120e981610242565b888060a01b0316845285810135868501526040810190611cce565b9190928160408201520191611cff565b9901930194019291959493906120a2565b9190811015611b545760051b81013590605e1981360301821215610253570190565b60208082528101839052604001915f5b8181106121645750505090565b909192602080600192863561217881610242565b848060a01b031681520194019101919091612157565b5f356001600160e01b03198116906004361061220f575b506001600160e01b0319165f90815260a060205260409020546001600160a01b031680156121da576121d89036906124c8565b565b60405162461bcd60e51b815260206004820152600d60248201526c2737ba103932b3b4b9ba3932b960991b6044820152606490fd5b6001600160e01b03193660040360031b81901b9091161690505f6121a5565b6005111561223857565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60409061077b93928152816020820152019061224c565b90816020910312610253575161077b81610676565b9190916122a982846127cf565b6122b28161222e565b159081612343575b5061233b575f9261098e6122e785946040519283916020830195630b135d3f60e11b875260248401612270565b51915afa6122f361200c565b8161232f575b81612302575090565b8051630b135d3f60e11b92506001600160e01b03199161232a91810160209081019101612287565b161490565b805160201491506122f9565b505050600190565b6001600160a01b0383811691161490505f6122ba565b90816020910312610253575190565b1561236f57565b60405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608490fd5b61077b906040600b602082516123e984826103b2565b828152016a14995cd95c9d99519d5b9960aa1b81522061247660036020845161241286826103b2565b828152620322e360ec1b91019081522083517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208083019182526040830195909552948101909301524660808301523060a080840191909152825260c0826103b2565b519020612978565b61077b9161248b916127cf565b9190916129a9565b915f9291838093836040519384375af1156124aa57565b3d5f803e3d5ffd5b915f93918493836040519384375af1156124aa57565b5f91829160405190828483375af4156124aa57565b915f92918392826040519283375af4156124aa57565b156124fa57565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b6001600160a01b0381166125b157505f80809381935af161257261200c565b501561257a57565b60405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526121d8916105c382606481016105b5565b603380546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b606554811015611b545760655f5260205f2001905f90565b8054821015611b54575f5260205f2001905f90565b916126789183549060031b91821b915f19901b19161790565b9055565b5f81815260a260205260409020546126e05760a154600160401b8110156103d3576126c96126b382600185940160a15560a161264a565b819391549060031b91821b915f19901b19161790565b905560a154905f5260a260205260405f2055600190565b505f90565b5f818152609c60205260409020546126e057609b54600160401b8110156103d35761271c6126b3826001859401609b55609b61264a565b9055609b54905f52609c60205260405f2055600190565b5f818152606660205260409020546126e057606554600160401b8110156103d35761276a6126b3826001859401606555606561264a565b9055606554905f52606660205260405f2055600190565b5f818152609e60205260409020546126e057609d54600160401b8110156103d3576127b86126b3826001859401609d55609d61264a565b9055609d54905f52609e60205260405f2055600190565b8151604181036127f75750906108ef91602082015190606060408401519301515f1a90612d2e565b6040036128265760208201516040909201516108ef926001600160ff1b03821692909160ff1c601b0190612d2e565b50505f90600290565b90816020910312610253575180151581036102535790565b1561284e57565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b60018060a01b031690604051906128be6040836103b2565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020830152823b15612933575f8161290e948260208195519301915af161290861200c565b90612dd7565b805180612919575050565b8160208061292e936121d8950101910161282f565b612847565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b9060405190602082019261190160f01b845260228301526042820152604281526129a36062826103b2565b51902090565b6129b28161222e565b806129ba5750565b6129c38161222e565b60018103612a155760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015280606481015b0390fd5b612a1e8161222e565b60028103612a6b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b612a748161222e565b60038103612acc5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b80612ad860049261222e565b14612adf57565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608490fd5b5f19810191908211612b3d57565b634e487b7160e01b5f52601160045260245ffd5b80548015612b78575f190190612b67828261264a565b8154905f199060031b1b1916905555565b634e487b7160e01b5f52603160045260245ffd5b5f818152609e6020526040902054908115612c24575f19820190828211612b3d575f92612be392612bbe609d54612b2f565b90808203612be9575b505050612bd4609d612b51565b609e905f5260205260405f2090565b55600190565b612bd4612c1591612c0b612c01612c1b95609d61264a565b90549060031b1c90565b928391609d61264a565b9061265f565b555f8080612bc7565b50505f90565b5f818152609c6020526040902054908115612c24575f19820190828211612b3d575f92612be392612c5c609b54612b2f565b90808203612c81575b505050612c72609b612b51565b609c905f5260205260405f2090565b612c72612c1591612c99612c01612ca395609b61264a565b928391609b61264a565b555f8080612c65565b5f81815260666020526040902054908115612c24575f19820190828211612b3d575f92612be392612cde606554612b2f565b90808203612d03575b505050612cf46065612b51565b6066905f5260205260405f2090565b612cf4612c1591612d1b612c01612d2595606561264a565b928391606561264a565b555f8080612ce7565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311612dcc5760ff16601b81141580612dc1575b612db6576020935f93604051938493608085019385528785015260408401526060830152838052039060015afa1561065a575f516001600160a01b03811615612dae57905f90565b505f90600190565b505050505f90600490565b50601c811415612d66565b505050505f90600390565b90919015612de3575090565b815115612df35750805190602001fd5b60405162461bcd60e51b815260206004820152908190612a1190602483019061224c56fea26469706673582212206923132e935b0fcc093d7d8f210767ef7b7fe916bd5fe8dc5a176db62f69117464736f6c634300081c0033
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Evaluating bytecode for exploitable paths**
[codex:1300326]
[codex:1300326] I'm carefully analyzing the bytecode to identify any concrete, exploitable sequence that could lead to profit. I focus on function selectors, error messages, delegate calls, and signature verification patterns to detect vulnerabilities like uncontrolled calls or value transfers while ensuring findings are solid before reporting.
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import sha3
[codex:1300326] sig='isValidSignature(bytes32,bytes)'
[codex:1300326] print(hex(int.from_bytes(sha3.keccak_256(sig.encode()).digest()[:4],'big')))
[codex:1300326] print(hex(int.from_bytes(sha3.keccak_256('isValidSignature(bytes,bytes)'.encode()).digest()[:4],'big')))
[codex:1300326] print(hex(int.from_bytes(sha3.keccak_256('execute(bytes)'.encode()).digest()[:4],'big')))
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 exited 1 in 40ms:
[codex:1300326] Traceback (most recent call last):
[codex:1300326] File "<stdin>", line 1, in <module>
[codex:1300326] ModuleNotFoundError: No module named 'sha3'
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Evaluating keccak-256 alternatives**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] try:
[codex:1300326] from Crypto.Hash import keccak
[codex:1300326] k=keccak.new(digest_bits=256)
[codex:1300326] k.update(b'isValidSignature(bytes32,bytes)')
[codex:1300326] print(k.hexdigest()[:8])
[codex:1300326] k=keccak.new(digest_bits=256); k.update(b'isValidSignature(bytes,bytes)'); print(k.hexdigest()[:8])
[codex:1300326] except Exception as e:
[codex:1300326] print('err',e)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 37ms:
[codex:1300326] 1626ba7e
[codex:1300326] 20c13b0b
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing function selectors and signatures**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] from Crypto.Hash import keccak
[codex:1300326] sigs=['execute(bytes)','execute(bytes,bytes)','execute(bytes,bytes32)','execute(address,bytes)','execute(address,uint256,bytes)','execute(address,uint256,bytes,uint8)','execute(address,uint256,bytes,uint8,bytes32,bytes32)','execute(address,bytes,bytes)','execute(address,bytes,bytes32)','execute(address,bytes,uint256)','execute(address,bytes,uint256,bytes)','executeBatch(bytes[])','executeBatch(address[],uint256[],bytes[])','forward(bytes)','forward(bytes32,bytes)','forward(address,bytes)','verify(bytes,bytes)','verify(bytes32,bytes)','validate(bytes,bytes)','validate(bytes32,bytes)','swap(bytes)','isValidSignature(bytes32,bytes)','executeTransaction(address,uint256,bytes)','executeTransaction(address,uint256,bytes,bytes32)']
[codex:1300326] for sig in sigs:
[codex:1300326] k=keccak.new(digest_bits=256); k.update(sig.encode()); sel=k.hexdigest()[:8]
[codex:1300326] if sel=='0b135d3f':
[codex:1300326] print('match',sig)
[codex:1300326] break
[codex:1300326] else:
[codex:1300326] print('no match in list')
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 40ms:
[codex:1300326] no match in list
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing external call patterns and access controls**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] hexdata=open('BYTECODE_BUNDLE.txt').read().split('0x')[1].split('\\n')[0]
[codex:1300326] # Remove non-hex? Actually file has note; we need parse from runtime bytecode hex line after 'FILE: runtime_bytecode.hex' etc
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] # find positions of byte 0xf4
[codex:1300326] positions=[i for i in range(0,len(hexdata),2) if hexdata[i:i+2].lower()=='f4']
[codex:1300326] print('f4 count',len(positions))
[codex:1300326] print(positions[:20])
[codex:1300326] # also for f1 (CALL) and ff (SELFDESTRUCT)
[codex:1300326] for b in ['f1','f2','f4','ff']:
[codex:1300326] pos=[i for i in range(0,len(hexdata),2) if hexdata[i:i+2].lower()==b]
[codex:1300326] print(b,len(pos))
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 33ms:
[codex:1300326] f4 count 8
[codex:1300326] [5108, 5128, 9674, 12466, 18860, 18904, 23002, 23052]
[codex:1300326] f1 12
[codex:1300326] f2 6
[codex:1300326] f4 8
[codex:1300326] ff 71
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Planning disassembler for delegatecall analysis**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] from collections import defaultdict
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # opcode names
[codex:1300326] opnames={
[codex:1300326] 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:1300326] 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:1300326] 0x20:'SHA3',
[codex:1300326] 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:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 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:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326]
[codex:1300326] # disassemble and store
[codex:1300326] instrs=[]
[codex:1300326] pc=0
[codex:1300326] while pc < len(code):
[codex:1300326] op=code[pc]
[codex:1300326] name=opnames.get(op,f'OP{op:02x}')
[codex:1300326] if 0x60 <= op <= 0x7f:
[codex:1300326] n=op-0x5f
[codex:1300326] data=code[pc+1:pc+1+n]
[codex:1300326] instrs.append((pc,name,data))
[codex:1300326] pc += 1+n
[codex:1300326] else:
[codex:1300326] instrs.append((pc,name,None))
[codex:1300326] pc += 1
[codex:1300326]
[codex:1300326] # index by pc
[codex:1300326] idx={pc:i for i,(pc,_,_) in enumerate(instrs)}
[codex:1300326]
[codex:1300326] # find delegatecall
[codex:1300326] for pc_i,(pc,name,data) in enumerate(instrs):
[codex:1300326] if name=='DELEGATECALL':
[codex:1300326] start=max(pc_i-8,0); end=min(pc_i+5,len(instrs))
[codex:1300326] print('--- DELEGATECALL at',hex(pc))
[codex:1300326] for j in range(start,end):
[codex:1300326] pc2,name2,data2=instrs[j]
[codex:1300326] if data2 is not None:
[codex:1300326] print(hex(pc2),name2,data2.hex())
[codex:1300326] else:
[codex:1300326] print(hex(pc2),name2)
[codex:1300326]
[codex:1300326] print('done')
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 34ms:
[codex:1300326] --- DELEGATECALL at 0x24d6
[codex:1300326] 0x24cd OP60 40
[codex:1300326] 0x24cf MLOAD
[codex:1300326] 0x24d0 OP90
[codex:1300326] 0x24d1 OP82
[codex:1300326] 0x24d2 OP84
[codex:1300326] 0x24d3 OP83
[codex:1300326] 0x24d4 CALLDATACOPY
[codex:1300326] 0x24d5 GAS
[codex:1300326] 0x24d6 DELEGATECALL
[codex:1300326] 0x24d7 ISZERO
[codex:1300326] 0x24d8 OP61 24aa
[codex:1300326] 0x24db JUMPI
[codex:1300326] 0x24dc JUMP
[codex:1300326] --- DELEGATECALL at 0x24ec
[codex:1300326] 0x24e3 OP92
[codex:1300326] 0x24e4 OP82
[codex:1300326] 0x24e5 OP60 40
[codex:1300326] 0x24e7 MLOAD
[codex:1300326] 0x24e8 OP92
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing delegatecall occurrences and patterns**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # simple disassembler
[codex:1300326] opnames={
[codex:1300326] 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:1300326] 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:1300326] 0x20:'SHA3',
[codex:1300326] 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:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 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:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326]
[codex:1300326] def disasm(start,end):
[codex:1300326] pc=start
[codex:1300326] while pc<end:
[codex:1300326] op=code[pc]
[codex:1300326] name=opnames.get(op,f'OP{op:02x}')
[codex:1300326] if 0x60<=op<=0x7f:
[codex:1300326] n=op-0x5f
[codex:1300326] data=code[pc+1:pc+1+n]
[codex:1300326] print(f\"{pc:04x} {name} 0x{data.hex()}\")
[codex:1300326] pc+=1+n
[codex:1300326] else:
[codex:1300326] print(f\"{pc:04x} {name}\")
[codex:1300326] pc+=1
[codex:1300326]
[codex:1300326] # find region around 0x24c0-0x2500
[codex:1300326] start=0x24b0; end=0x2505
[codex:1300326] print('disasm',hex(start),hex(end))
[codex:1300326] disasm(start,end)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 24ms:
[codex:1300326] disasm 0x24b0 0x2505
[codex:1300326] 24b0 OP5f
[codex:1300326] 24b1 REVERT
[codex:1300326] 24b2 JUMPDEST
[codex:1300326] 24b3 OP91
[codex:1300326] 24b4 OP5f
[codex:1300326] 24b5 OP93
[codex:1300326] 24b6 OP91
[codex:1300326] 24b7 OP84
[codex:1300326] 24b8 OP93
[codex:1300326] 24b9 OP83
[codex:1300326] 24ba OP60 0x40
[codex:1300326] 24bc MLOAD
[codex:1300326] 24bd OP93
[codex:1300326] 24be OP84
[codex:1300326] 24bf CALLDATACOPY
[codex:1300326] 24c0 GAS
[codex:1300326] 24c1 CALL
[codex:1300326] 24c2 ISZERO
[codex:1300326] 24c3 OP61 0x24aa
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing delegatecall usage and permissions**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassembler
[codex:1300326] opnames={
[codex:1300326] 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:1300326] 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:1300326] 0x20:'SHA3',
[codex:1300326] 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:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 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:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326]
[codex:1300326] instrs=[]
[codex:1300326] pc=0
[codex:1300326] while pc < len(code):
[codex:1300326] op=code[pc]
[codex:1300326] name=opnames.get(op,f'OP{op:02x}')
[codex:1300326] if 0x60<=op<=0x7f:
[codex:1300326] n=op-0x5f
[codex:1300326] data=code[pc+1:pc+1+n]
[codex:1300326] instrs.append((pc,name,data))
[codex:1300326] pc += 1+n
[codex:1300326] else:
[codex:1300326] instrs.append((pc,name,None))
[codex:1300326] pc += 1
[codex:1300326]
[codex:1300326] # find CALL instructions
[codex:1300326] for i,(pc,name,data) in enumerate(instrs):
[codex:1300326] if name=='CALL':
[codex:1300326] print('--- CALL at',hex(pc))
[codex:1300326] start=max(i-8,0); end=min(i+6,len(instrs))
[codex:1300326] for j in range(start,end):
[codex:1300326] pc2,name2,data2=instrs[j]
[codex:1300326] if data2 is not None:
[codex:1300326] print(hex(pc2),name2,data2.hex())
[codex:1300326] else:
[codex:1300326] print(hex(pc2),name2)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 31ms:
[codex:1300326] --- CALL at 0xbcb
[codex:1300326] 0xbc1 OP81
[codex:1300326] 0xbc2 OP81
[codex:1300326] 0xbc3 ISZERO
[codex:1300326] 0xbc4 OP61 0bd2
[codex:1300326] 0xbc7 JUMPI
[codex:1300326] 0xbc8 JUMPDEST
[codex:1300326] 0xbc9 COINBASE
[codex:1300326] 0xbca OP90
[codex:1300326] 0xbcb CALL
[codex:1300326] 0xbcc ISZERO
[codex:1300326] 0xbcd OP61 065a
[codex:1300326] 0xbd0 JUMPI
[codex:1300326] 0xbd1 STOP
[codex:1300326] 0xbd2 JUMPDEST
[codex:1300326] --- CALL at 0xf0a
[codex:1300326] 0xf01 OP90
[codex:1300326] 0xf02 OP60 24
[codex:1300326] 0xf04 OP90
[codex:1300326] 0xf05 OP82
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing CALL opcodes and suspicious COINBASE usage**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassembler
[codex:1300326] opnames={
[codex:1300326] 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:1300326] 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:1300326] 0x20:'SHA3',
[codex:1300326] 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:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 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:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326]
[codex:1300326] def disasm(start,end):
[codex:1300326] pc=start
[codex:1300326] while pc<end:
[codex:1300326] op=code[pc]
[codex:1300326] name=opnames.get(op,f'OP{op:02x}')
[codex:1300326] if 0x60<=op<=0x7f:
[codex:1300326] n=op-0x5f
[codex:1300326] data=code[pc+1:pc+1+n]
[codex:1300326] print(f\"{pc:04x} {name} 0x{data.hex()}\")
[codex:1300326] pc+=1+n
[codex:1300326] else:
[codex:1300326] print(f\"{pc:04x} {name}\")
[codex:1300326] pc+=1
[codex:1300326]
[codex:1300326] print('region around 0x0b90')
[codex:1300326] disasm(0x0b80,0x0be5)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 23ms:
[codex:1300326] region around 0x0b90
[codex:1300326] 0b80 OP88
[codex:1300326] 0b81 OP8b
[codex:1300326] 0b82 OP61 0x1c99
[codex:1300326] 0b85 JUMP
[codex:1300326] 0b86 JUMPDEST
[codex:1300326] 0b87 OP91
[codex:1300326] 0b88 OP61 0x2493
[codex:1300326] 0b8b JUMP
[codex:1300326] 0b8c JUMPDEST
[codex:1300326] 0b8d OP61 0x0b23
[codex:1300326] 0b90 JUMP
[codex:1300326] 0b91 JUMPDEST
[codex:1300326] 0b92 OP82
[codex:1300326] 0b93 OP60 0x01
[codex:1300326] 0b95 OP60 0x01
[codex:1300326] 0b97 OP60 0x80
[codex:1300326] 0b99 SHL
[codex:1300326] 0b9a SUB
[codex:1300326] 0b9b OP61 0x0ba3
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing potential miner tip function**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassembler
[codex:1300326] opnames={
[codex:1300326] 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:1300326] 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:1300326] 0x20:'SHA3',
[codex:1300326] 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:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 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:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326]
[codex:1300326] def disasm(start,end):
[codex:1300326] pc=start
[codex:1300326] while pc<end:
[codex:1300326] op=code[pc]
[codex:1300326] name=opnames.get(op,f'OP{op:02x}')
[codex:1300326] if 0x60<=op<=0x7f:
[codex:1300326] n=op-0x5f
[codex:1300326] data=code[pc+1:pc+1+n]
[codex:1300326] print(f\"{pc:04x} {name} 0x{data.hex()}\")
[codex:1300326] pc+=1+n
[codex:1300326] else:
[codex:1300326] print(f\"{pc:04x} {name}\")
[codex:1300326] pc+=1
[codex:1300326]
[codex:1300326] print('region around 0x0e90-0x0f90')
[codex:1300326] disasm(0x0e90,0x0f90)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 46ms:
[codex:1300326] region around 0x0e90-0x0f90
[codex:1300326] 0e90 ADD
[codex:1300326] 0e91 OP60 0xa0
[codex:1300326] 0e93 SHL
[codex:1300326] 0e94 SUB
[codex:1300326] 0e95 OP82
[codex:1300326] 0e96 AND
[codex:1300326] 0e97 OP91
[codex:1300326] 0e98 OP83
[codex:1300326] 0e99 OP90
[codex:1300326] 0e9a OP73 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
[codex:1300326] 0eaf OP84
[codex:1300326] 0eb0 SUB
[codex:1300326] 0eb1 OP61 0x0f8f
[codex:1300326] 0eb4 JUMPI
[codex:1300326] 0eb5 POP
[codex:1300326] 0eb6 POP
[codex:1300326] 0eb7 OP7f 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
[codex:1300326] 0ed8 OP60 0x01
[codex:1300326] 0eda OP60 0x01
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing ETH withdrawal logic**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassembler
[codex:1300326] opnames={
[codex:1300326] 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:1300326] 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:1300326] 0x20:'SHA3',
[codex:1300326] 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:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 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:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326]
[codex:1300326] def disasm(start,end):
[codex:1300326] pc=start
[codex:1300326] while pc<end:
[codex:1300326] op=code[pc]
[codex:1300326] name=opnames.get(op,f'OP{op:02x}')
[codex:1300326] if 0x60<=op<=0x7f:
[codex:1300326] n=op-0x5f
[codex:1300326] data=code[pc+1:pc+1+n]
[codex:1300326] print(f\"{pc:04x} {name} 0x{data.hex()}\")
[codex:1300326] pc+=1+n
[codex:1300326] else:
[codex:1300326] print(f\"{pc:04x} {name}\")
[codex:1300326] pc+=1
[codex:1300326]
[codex:1300326] print('region around 0x0e20-0x0ff0')
[codex:1300326] disasm(0x0e20,0x0ff0)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 23ms:
[codex:1300326] region around 0x0e20-0x0ff0
[codex:1300326] 0e20 CALLVALUE
[codex:1300326] 0e21 OP61 0x0253
[codex:1300326] 0e24 JUMPI
[codex:1300326] 0e25 OP60 0x60
[codex:1300326] 0e27 CALLDATASIZE
[codex:1300326] 0e28 OP60 0x03
[codex:1300326] 0e2a NOT
[codex:1300326] 0e2b ADD
[codex:1300326] 0e2c SLT
[codex:1300326] 0e2d OP61 0x0253
[codex:1300326] 0e30 JUMPI
[codex:1300326] 0e31 OP60 0x04
[codex:1300326] 0e33 CALLDATALOAD
[codex:1300326] 0e34 OP61 0x0e3c
[codex:1300326] 0e37 OP81
[codex:1300326] 0e38 OP61 0x0242
[codex:1300326] 0e3b JUMP
[codex:1300326] 0e3c JUMPDEST
[codex:1300326] 0e3d OP60 0x24
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing authorization and transfer functions**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] print('a9059cbb occurrences',hexdata.lower().count('a9059cbb'))
[codex:1300326] print('23b872dd occurrences',hexdata.lower().count('23b872dd'))
[codex:1300326] print('095ea7b3 occurrences',hexdata.lower().count('095ea7b3'))
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 28ms:
[codex:1300326] a9059cbb occurrences 1
[codex:1300326] 23b872dd occurrences 0
[codex:1300326] 095ea7b3 occurrences 1
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing token transfer methods**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassembler
[codex:1300326] opnames={
[codex:1300326] 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:1300326] 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:1300326] 0x20:'SHA3',
[codex:1300326] 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:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 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:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326]
[codex:1300326] def disasm(start,end):
[codex:1300326] pc=start
[codex:1300326] while pc<end:
[codex:1300326] op=code[pc]
[codex:1300326] name=opnames.get(op,f'OP{op:02x}')
[codex:1300326] if 0x60<=op<=0x7f:
[codex:1300326] n=op-0x5f
[codex:1300326] data=code[pc+1:pc+1+n]
[codex:1300326] print(f\"{pc:04x} {name} 0x{data.hex()}\")
[codex:1300326] pc+=1+n
[codex:1300326] else:
[codex:1300326] print(f\"{pc:04x} {name}\")
[codex:1300326] pc+=1
[codex:1300326]
[codex:1300326] print('region around 0x0500')
[codex:1300326] disasm(0x0500,0x05f0)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 31ms:
[codex:1300326] region around 0x0500
[codex:1300326] 0500 MUL
[codex:1300326] 0501 MSTORE8
[codex:1300326] 0502 JUMPI
[codex:1300326] 0503 OP60 0x04
[codex:1300326] 0505 CALLDATALOAD
[codex:1300326] 0506 OP60 0x01
[codex:1300326] 0508 OP60 0x01
[codex:1300326] 050a OP60 0x40
[codex:1300326] 050c SHL
[codex:1300326] 050d SUB
[codex:1300326] 050e OP81
[codex:1300326] 050f GT
[codex:1300326] 0510 OP61 0x0253
[codex:1300326] 0513 JUMPI
[codex:1300326] 0514 OP61 0x0521
[codex:1300326] 0517 OP90
[codex:1300326] 0518 CALLDATASIZE
[codex:1300326] 0519 OP90
[codex:1300326] 051a OP60 0x04
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing function selectors and approvals**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] from Crypto.Hash import keccak
[codex:1300326] sig='balanceOf(address)'
[codex:1300326] k=keccak.new(digest_bits=256);k.update(sig.encode());print('balanceOf',k.hexdigest()[:8])
[codex:1300326] for sig in ['totalSupply()','decimals()','symbol()','name()','allowance(address,address)','increaseAllowance(address,uint256)','decreaseAllowance(address,uint256)','permit(address,address,uint256,uint256,uint8,bytes32,bytes32)','nonces(address)','DOMAIN_SEPARATOR()']:
[codex:1300326] k=keccak.new(digest_bits=256);k.update(sig.encode());print(sig,k.hexdigest()[:8])
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 52ms:
[codex:1300326] balanceOf 70a08231
[codex:1300326] totalSupply() 18160ddd
[codex:1300326] decimals() 313ce567
[codex:1300326] symbol() 95d89b41
[codex:1300326] name() 06fdde03
[codex:1300326] allowance(address,address) dd62ed3e
[codex:1300326] increaseAllowance(address,uint256) 39509351
[codex:1300326] decreaseAllowance(address,uint256) a457c2d7
[codex:1300326] permit(address,address,uint256,uint256,uint8,bytes32,bytes32) d505accf
[codex:1300326] nonces(address) 7ecebe00
[codex:1300326] DOMAIN_SEPARATOR() 3644e515
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing function access and signature checks**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassemble and find STATICCALL
[codex:1300326] opnames={0xfa:'STATICCALL'}
[codex:1300326] # parse instructions quickly to find staticcall offsets
[codex:1300326] pc=0
[codex:1300326] instrs=[]
[codex:1300326] while pc < len(code):
[codex:1300326] op=code[pc]
[codex:1300326] if 0x60<=op<=0x7f:
[codex:1300326] n=op-0x5f
[codex:1300326] pc += 1+n
[codex:1300326] else:
[codex:1300326] if op==0xfa:
[codex:1300326] instrs.append(pc)
[codex:1300326] pc+=1
[codex:1300326] print('STATICCALLs',len(instrs),instrs)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 26ms:
[codex:1300326] STATICCALLs 3 [1544, 8939, 11667]
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Disassembling around staticcall addresses**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassembler mapping
[codex:1300326] opnames={
[codex:1300326] 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:1300326] 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:1300326] 0x20:'SHA3',
[codex:1300326] 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:1300326] 0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
[codex:1300326] 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:1300326] 0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
[codex:1300326] }
[codex:1300326]
[codex:1300326] def disasm(start,end):
[codex:1300326] pc=start
[codex:1300326] while pc<end:
[codex:1300326] op=code[pc]
[codex:1300326] name=opnames.get(op,f'OP{op:02x}')
[codex:1300326] if 0x60<=op<=0x7f:
[codex:1300326] n=op-0x5f
[codex:1300326] data=code[pc+1:pc+1+n]
[codex:1300326] print(f\"{pc:04x} {name} 0x{data.hex()}\")
[codex:1300326] pc+=1+n
[codex:1300326] else:
[codex:1300326] print(f\"{pc:04x} {name}\")
[codex:1300326] pc+=1
[codex:1300326]
[codex:1300326] for start in [0x0600,0x22c0,0x2d00]:
[codex:1300326] print('\\nregion',hex(start))
[codex:1300326] disasm(start,start+0x80)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 27ms:
[codex:1300326]
[codex:1300326] region 0x600
[codex:1300326] 0600 ADD
[codex:1300326] 0601 OP60 0xa0
[codex:1300326] 0603 SHL
[codex:1300326] 0604 SUB
[codex:1300326] 0605 OP85
[codex:1300326] 0606 AND
[codex:1300326] 0607 GAS
[codex:1300326] 0608 STATICCALL
[codex:1300326] 0609 OP90
[codex:1300326] 060a OP81
[codex:1300326] 060b ISZERO
[codex:1300326] 060c OP61 0x065a
[codex:1300326] 060f JUMPI
[codex:1300326] 0610 OP61 0x0585
[codex:1300326] 0613 OP61 0x05c8
[codex:1300326] 0616 OP92
[codex:1300326] 0617 OP60 0x01
[codex:1300326] 0619 OP95
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing signature verification calls**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # disassemble and find actual SELFDESTRUCT opcodes (0xff not in push data)
[codex:1300326] opcodes=[]
[codex:1300326] pc=0
[codex:1300326] while pc < len(code):
[codex:1300326] op=code[pc]
[codex:1300326] if 0x60<=op<=0x7f:
[codex:1300326] pc += 1 + (op-0x5f)
[codex:1300326] else:
[codex:1300326] if op==0xff:
[codex:1300326] opcodes.append(pc)
[codex:1300326] pc+=1
[codex:1300326] print('SELFDESTRUCT opcodes',opcodes)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 25ms:
[codex:1300326] SELFDESTRUCT opcodes []
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Investigating CALLCODE usage**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # find actual CALLCODE opcodes (0xf2)
[codex:1300326] pcs=[]
[codex:1300326] pc=0
[codex:1300326] while pc < len(code):
[codex:1300326] op=code[pc]
[codex:1300326] if 0x60<=op<=0x7f:
[codex:1300326] pc+=1+(op-0x5f)
[codex:1300326] else:
[codex:1300326] if op==0xf2:
[codex:1300326] pcs.append(pc)
[codex:1300326] pc+=1
[codex:1300326] print('CALLCODE opcodes',pcs)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 31ms:
[codex:1300326] CALLCODE opcodes []
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing storage slot access and ownership checks**
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] import re
[codex:1300326] m=re.search(r'FILE: runtime_bytecode.hex\\n(0x[0-9a-fA-F]+)',open('BYTECODE_BUNDLE.txt').read())
[codex:1300326] hexdata=m.group(1)[2:]
[codex:1300326] code=bytes.fromhex(hexdata)
[codex:1300326] # parse instructions with immediate data
[codex:1300326] instrs=[]
[codex:1300326] pc=0
[codex:1300326] while pc < len(code):
[codex:1300326] op=code[pc]
[codex:1300326] if 0x60<=op<=0x7f:
[codex:1300326] n=op-0x5f
[codex:1300326] data=code[pc+1:pc+1+n]
[codex:1300326] instrs.append((pc,op,data))
[codex:1300326] pc+=1+n
[codex:1300326] else:
[codex:1300326] instrs.append((pc,op,None))
[codex:1300326] pc+=1
[codex:1300326]
[codex:1300326] # find push const then SSTORE/SLOAD
[codex:1300326] slots_sstore=set(); slots_sload=set();
[codex:1300326] for i,(pc,op,data) in enumerate(instrs[:-1]):
[codex:1300326] if 0x60<=op<=0x7f and data is not None:
[codex:1300326] # check next non-push? Actually immediate next instruction
[codex:1300326] nxt=instrs[i+1]
[codex:1300326] if nxt[1]==0x55: # SSTORE
[codex:1300326] val=int.from_bytes(data,'big')
[codex:1300326] slots_sstore.add(val)
[codex:1300326] if nxt[1]==0x54:
[codex:1300326] val=int.from_bytes(data,'big')
[codex:1300326] slots_sload.add(val)
[codex:1300326]
[codex:1300326] print('const sstore slots',sorted(slots_sstore)[:20],'... total',len(slots_sstore))
[codex:1300326] print('const sload slots',sorted(slots_sload)[:20],'... total',len(slots_sload))
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 29ms:
[codex:1300326] const sstore slots [101, 155, 157, 161] ... total 4
[codex:1300326] const sload slots [51, 101, 154, 155, 157, 161] ... total 6
[codex:1300326]
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Analyzing potential contract vulnerabilities**
[codex:1300326] thinking
[codex:1300326] **Investigating CALL patterns and function selectors**
[codex:1300326]
[codex:1300326] I’m looking into whether any contract functions enable calls with value using user inputs, focusing on identifying `execute`-style functions by analyzing known selectors and matching them against the dispatch table. I’ll try computing candidate selectors for common function names to narrow down what functions might exist.
[codex:1300326] exec
[codex:1300326] /bin/bash -lc "python3 - <<'PY'
[codex:1300326] from Crypto.Hash import keccak
[codex:1300326]
[codex:1300326] def sel(sig):
[codex:1300326] k=keccak.new(digest_bits=256); k.update(sig.encode());
[codex:1300326] return k.hexdigest()[:8]
[codex:1300326]
[codex:1300326] candidates=[
[codex:1300326] 'execute(bytes)','execute(bytes,bytes)','execute(bytes32,bytes)','execute(address,bytes)','execute(address,uint256,bytes)','execute(address,uint256,bytes,bytes)','execute(address,uint256,bytes,uint8,bytes32,bytes32)','execute((address,address,uint256,uint256,bytes),bytes)',
[codex:1300326] 'executeRequest((address,address,uint256,uint256,bytes),bytes)','executeRequest((address,address,uint256,uint256,address,bytes),bytes)',
[codex:1300326] 'executeCalls(bytes)','executeCall(address,bytes)','executeTransaction(address,uint256,bytes)',
[codex:1300326] 'executeTransaction(address,uint256,bytes,uint8,bytes32,bytes32)','forward(bytes)','forward(bytes,bytes)',
[codex:1300326] 'forward(address,bytes)','forward(address,uint256,bytes)',
[codex:1300326] 'fulfill((address,address,uint256,uint256,bytes),bytes)','fill((address,address,uint256,uint256,bytes),bytes)',
[codex:1300326] 'route((address,address,uint256,uint256,bytes),bytes)',
[codex:1300326] 'relay((address,address,uint256,uint256,bytes),bytes)',
[codex:1300326] 'send((address,address,uint256,uint256,bytes),bytes)',
[codex:1300326] 'swap((address,address,uint256,uint256,bytes),bytes)',
[codex:1300326] 'executeSwap(address,address,uint256,uint256,bytes)',
[codex:1300326] 'execute(bytes32,uint256,address,address,address,bytes)',
[codex:1300326] 'execute((address,address,uint256,uint256,bytes32),bytes)',
[codex:1300326] 'execute((address,address,uint256,uint256,address,bytes32),bytes)',
[codex:1300326] 'execute((address,address,uint256,uint256,address,address,bytes32),bytes)',
[codex:1300326] 'execute((address,address,uint256,uint256,address,address,bytes),bytes)'
[codex:1300326] ]
[codex:1300326]
[codex:1300326] selectors={sig:sel(sig) for sig in candidates}
[codex:1300326] # print those matching known list
[codex:1300326] known=['0eb9142f','14b7c124','1626ba7e','26142335','34efb1e9','388bb62c','3fc8cef3','4cf3fe9c','567aa1ba','61acbdcb','61bb41a7','69328dec','6d70f7ae','715018a6','7d6a4568','7dadbe8c','8594ac40','8da5cb5b','95ccea67','9e165a78','9f273fbc','a07aea1c','a908183d','ab06e403','af38bf11','b9f9fc41','d365a377','d49d5181','d911c632','e3fa62d6','ecb9e11a','f00baf3e','f2fde38b','fee1303c']
[codex:1300326] for sig,s in selectors.items():
[codex:1300326] if s in known:
[codex:1300326] print(s, sig)
[codex:1300326] PY" in /tmp/codex-multi-crqf3hz7 succeeded in 44ms:
[codex:1300326]
[codex:1300326]
[codex:1300326] thinking
[codex:1300326] **Summarizing no exploit findings**
[codex:1300326] codex
[codex:1300326] {"no_findings":true,"summary":"Analyzed the runtime bytecode in BYTECODE_BUNDLE.txt; external calls, token/ETH transfers, and delegatecalls appear gated by owner/whitelist/signature checks, and there is no observable selfdestruct or unprotected upgrade path. I did not find a concrete, exploitable value‑extraction path from bytecode alone.","findings":[]}
[codex:1300326] tokens used
[codex:1300326] 88,716
[codex:1300326] {"no_findings":true,"summary":"Analyzed the runtime bytecode in BYTECODE_BUNDLE.txt; external calls, token/ETH transfers, and delegatecalls appear gated by owner/whitelist/signature checks, and there is no observable selfdestruct or unprotected upgrade path. I did not find a concrete, exploitable value‑extraction path from bytecode alone.","findings":[]}
{
"codex": {
"ran_at": "2025-12-31T22:08:31.428047+00:00",
"returncode": 0
},
"summary": "Analyzed the runtime bytecode in BYTECODE_BUNDLE.txt; external calls, token/ETH transfers, and delegatecalls appear gated by owner/whitelist/signature checks, and there is no observable selfdestruct or unprotected upgrade path. I did not find a concrete, exploitable value\u2011extraction path from bytecode alone.",
"raw_final": {
"summary": "Analyzed the runtime bytecode in BYTECODE_BUNDLE.txt; external calls, token/ETH transfers, and delegatecalls appear gated by owner/whitelist/signature checks, and there is no observable selfdestruct or unprotected upgrade path. I did not find a concrete, exploitable value\u2011extraction path from bytecode alone.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: ISZERO 0000000a: PUSH2 0x001e 0000000d: JUMPI 0000000e: JUMPDEST 0000000f: CALLDATASIZE 00000010: ISZERO 00000011: PUSH2 0x001c 00000014: JUMPI 00000015: PUSH2 0x001c 00000018: PUSH2 0x218e 0000001b: JUMP 0000001c: JUMPDEST 0000001d: STOP 0000001e: JUMPDEST 0000001f: PUSH0 00000020: CALLDATALOAD 00000021: PUSH1 0xe0 00000023: SHR 00000024: DUP1 00000025: PUSH4 0x0eb9142f 0000002a: EQ 0000002b: PUSH2 0x023d 0000002e: JUMPI 0000002f: DUP1 00000030: PUSH4 0x14b7c124 00000035: EQ 00000036: PUSH2 0x0238 00000039: JUMPI 0000003a: DUP1 0000003b: PUSH4 0x1626ba7e 00000040: EQ 00000041: PUSH2 0x0233 00000044: JUMPI 00000045: DUP1 00000046: PUSH4 0x26142335 0000004b: EQ 0000004c: PUSH2 0x022e 0000004f: JUMPI 00000050: DUP1 00000051: PUSH4 0x34efb1e9 00000056: EQ 00000057: PUSH2 0x0229 0000005a: JUMPI 0000005b: DUP1 0000005c: PUSH4 0x388bb62c 00000061: EQ 00000062: PUSH2 0x0224 00000065: JUMPI 00000066: DUP1 00000067: PUSH4 0x3fc8cef3 0000006c: EQ 0000006d: PUSH2 0x021f 00000070: JUMPI 00000071: DUP1 00000072: PUSH4 0x4cf3fe9c 00000077: EQ 00000078: PUSH2 0x021a 0000007b: JUMPI 0000007c: DUP1 0000007d: PUSH4 0x567aa1ba 00000082: EQ 00000083: PUSH2 0x0215 00000086: JUMPI 00000087: DUP1 00000088: PUSH4 0x61acbdcb 0000008d: EQ 0000008e: PUSH2 0x0210 00000091: JUMPI 00000092: DUP1 00000093: PUSH4 0x61bb41a7 00000098: EQ 00000099: PUSH2 0x020b 0000009c: JUMPI 0000009d: DUP1 0000009e: PUSH4 0x69328dec 000000a3: EQ 000000a4: PUSH2 0x0206 000000a7: JUMPI 000000a8: DUP1 000000a9: PUSH4 0x6d70f7ae 000000ae: EQ 000000af: PUSH2 0x0201 000000b2: JUMPI 000000b3: DUP1 000000b4: PUSH4 0x715018a6 000000b9: EQ 000000ba: PUSH2 0x01fc 000000bd: JUMPI 000000be: DUP1 000000bf: PUSH4 0x7d6a4568 000000c4: EQ 000000c5: PUSH2 0x01f7 000000c8: JUMPI 000000c9: DUP1 000000ca: PUSH4 0x7dadbe8c 000000cf: EQ 000000d0: PUSH2 0x01f2 000000d3: JUMPI 000000d4: DUP1 000000d5: PUSH4 0x8594ac40 000000da: EQ 000000db: PUSH2 0x01ed 000000de: JUMPI 000000df: DUP1 000000e0: PUSH4 0x8da5cb5b 000000e5: EQ 000000e6: PUSH2 0x01e8 000000e9: JUMPI 000000ea: DUP1 000000eb: PUSH4 0x95ccea67 000000f0: EQ 000000f1: PUSH2 0x01e3 000000f4: JUMPI 000000f5: DUP1 000000f6: PUSH4 0x9e165a78 000000fb: EQ 000000fc: PUSH2 0x01de 000000ff: JUMPI 00000100: DUP1 00000101: PUSH4 0x9f273fbc 00000106: EQ 00000107: PUSH2 0x01d9 0000010a: JUMPI 0000010b: DUP1 0000010c: PUSH4 0xa07aea1c 00000111: EQ 00000112: PUSH2 0x01d4 00000115: JUMPI 00000116: DUP1 00000117: PUSH4 0xa908183d 0000011c: EQ 0000011d: PUSH2 0x01cf 00000120: JUMPI 00000121: DUP1 00000122: PUSH4 0xab06e403 00000127: EQ 00000128: PUSH2 0x01ca 0000012b: JUMPI 0000012c: DUP1 0000012d: PUSH4 0xaf38bf11 00000132: EQ 00000133: PUSH2 0x01c5 00000136: JUMPI 00000137: DUP1 00000138: PUSH4 0xb9f9fc41 0000013d: EQ 0000013e: PUSH2 0x01c0 00000141: JUMPI 00000142: DUP1 00000143: PUSH4 0xd365a377 00000148: EQ 00000149: PUSH2 0x01bb 0000014c: JUMPI 0000014d: DUP1 0000014e: PUSH4 0xd49d5181 00000153: EQ 00000154: PUSH2 0x01b6 00000157: JUMPI 00000158: DUP1 00000159: PUSH4 0xd911c632 0000015e: EQ 0000015f: PUSH2 0x01b1 00000162: JUMPI 00000163: DUP1 00000164: PUSH4 0xe3fa62d6 00000169: EQ 0000016a: PUSH2 0x01ac 0000016d: JUMPI 0000016e: DUP1 0000016f: PUSH4 0xecb9e11a 00000174: EQ 00000175: PUSH2 0x01a7 00000178: JUMPI 00000179: DUP1 0000017a: PUSH4 0xf00baf3e 0000017f: EQ 00000180: PUSH2 0x01a2 00000183: JUMPI 00000184: DUP1 00000185: PUSH4 0xf2fde38b 0000018a: EQ 0000018b: PUSH2 0x019d 0000018e: JUMPI 0000018f: PUSH4 0xfee1303c 00000194: SUB 00000195: PUSH2 0x000e 00000198: JUMPI 00000199: PUSH2 0x1a2d 0000019c: JUMP 0000019d: JUMPDEST 0000019e: PUSH2 0x19e3 000001a1: JUMP 000001a2: JUMPDEST 000001a3: PUSH2 0x1954 000001a6: JUMP 000001a7: JUMPDEST 000001a8: PUSH2 0x1937 000001ab: JUMP 000001ac: JUMPDEST 000001ad: PUSH2 0x18fa 000001b0: JUMP 000001b1: JUMPDEST 000001b2: PUSH2 0x1876 000001b5: JUMP 000001b6: JUMPDEST 000001b7: PUSH2 0x185b 000001ba: JUMP 000001bb: JUMPDEST 000001bc: PUSH2 0x17cf 000001bf: JUMP 000001c0: JUMPDEST 000001c1: PUSH2 0x1731 000001c4: JUMP 000001c5: JUMPDEST 000001c6: PUSH2 0x1695 000001c9: JUMP 000001ca: JUMPDEST 000001cb: PUSH2 0x163d 000001ce: JUMP 000001cf: JUMPDEST 000001d0: PUSH2 0x159f 000001d3: JUMP 000001d4: JUMPDEST 000001d5: PUSH2 0x150e 000001d8: JUMP 000001d9: JUMPDEST 000001da: PUSH2 0x1446 000001dd: JUMP 000001de: JUMPDEST 000001df: PUSH2 0x13d2 000001e2: JUMP 000001e3: JUMPDEST 000001e4: PUSH2 0x138f 000001e7: JUMP 000001e8: JUMPDEST 000001e9: PUSH2 0x1367 000001ec: JUMP 000001ed: JUMPDEST 000001ee: PUSH2 0x1180 000001f1: JUMP 000001f2: JUMPDEST 000001f3: PUSH2 0x10e2 000001f6: JUMP 000001f7: JUMPDEST 000001f8: PUSH2 0x1074 000001fb: JUMP 000001fc: JUMPDEST 000001fd: PUSH2 0x100c 00000200: JUMP 00000201: JUMPDEST 00000202: PUSH2 0x0fc4 00000205: JUMP 00000206: JUMPDEST 00000207: PUSH2 0x0e1f 0000020a: JUMP 0000020b: JUMPDEST 0000020c: PUSH2 0x0da2 0000020f: JUMP 00000210: JUMPDEST 00000211: PUSH2 0x0d7a 00000214: JUMP 00000215: JUMPDEST 00000216: PUSH2 0x0bdb 00000219: JUMP 0000021a: JUMPDEST 0000021b: PUSH2 0x08f3 0000021e: JUMP 0000021f: JUMPDEST 00000220: PUSH2 0x0834 00000223: JUMP 00000224: JUMPDEST 00000225: PUSH2 0x0798 00000228: JUMP 00000229: JUMPDEST 0000022a: PUSH2 0x04f1 0000022d: JUMP 0000022e: JUMPDEST 0000022f: PUSH2 0x048a 00000232: JUMP 00000233: JUMPDEST 00000234: PUSH2 0x0429 00000237: JUMP 00000238: JUMPDEST 00000239: PUSH2 0x031a 0000023c: JUMP 0000023d: JUMPDEST 0000023e: PUSH2 0x0257 00000241: JUMP 00000242: JUMPDEST 00000243: PUSH1 0x01 00000245: PUSH1 0x01 00000247: PUSH1 0xa0 00000249: SHL 0000024a: SUB 0000024b: DUP2 0000024c: AND 0000024d: SUB 0000024e: PUSH2 0x0253 00000251: JUMPI 00000252: JUMP 00000253: JUMPDEST 00000254: PUSH0 00000255: DUP1 00000256: REVERT 00000257: JUMPDEST 00000258: CALLVALUE 00000259: PUSH2 0x0253 0000025c: JUMPI 0000025d: PUSH1 0x20 0000025f: CALLDATASIZE 00000260: PUSH1 0x03 00000262: NOT 00000263: ADD 00000264: SLT 00000265: PUSH2 0x0253 00000268: JUMPI 00000269: PUSH1 0x04 0000026b: CALLDATALOAD 0000026c: PUSH2 0x0274 0000026f: DUP2 00000270: PUSH2 0x0242 00000273: JUMP 00000274: JUMPDEST 00000275: PUSH2 0x0289 00000278: PUSH1 0x01 0000027a: DUP1 0000027b: PUSH1 0xa0 0000027d: SHL 0000027e: SUB 0000027f: PUSH1 0x33 00000281: SLOAD 00000282: AND 00000283: CALLER 00000284: EQ 00000285: PUSH2 0x1a71 00000288: JUMP 00000289: JUMPDEST 0000028a: PUSH1 0x01 0000028c: PUSH1 0x01 0000028e: PUSH1 0xa0 00000290: SHL 00000291: SUB 00000292: AND 00000293: PUSH2 0x029b 00000296: DUP2 00000297: PUSH2 0x267c 0000029a: JUMP 0000029b: JUMPDEST 0000029c: PUSH2 0x02a1 0000029f: JUMPI 000002a0: STOP 000002a1: JUMPDEST 000002a2: PUSH1 0x20 000002a4: PUSH32 0x1886ee5ead024938d4f3f3251d2252fc79d5cea5adf88326e227cc271cdcd090 000002c5: SWAP2 000002c6: PUSH1 0x40 000002c8: MLOAD 000002c9: SWAP1 000002ca: DUP2 000002cb: MSTORE 000002cc: LOG1 000002cd: STOP 000002ce: JUMPDEST 000002cf: PUSH0 000002d0: SWAP2 000002d1: SUB 000002d2: SLT 000002d3: PUSH2 0x0253 000002d6: JUMPI 000002d7: JUMP 000002d8: JUMPDEST 000002d9: PUSH1 0x20 000002db: PUSH1 0x40 000002dd: DUP2 000002de: DUP4 000002df: ADD 000002e0: SWAP3 000002e1: DUP3 000002e2: DUP2 000002e3: MSTORE 000002e4: DUP5 000002e5: MLOAD 000002e6: DUP1 000002e7: SWAP5 000002e8: MSTORE 000002e9: ADD 000002ea: SWAP3 000002eb: ADD 000002ec: SWAP1 000002ed: PUSH0 000002ee: JUMPDEST 000002ef: DUP2 000002f0: DUP2 000002f1: LT 000002f2: PUSH2 0x02fb 000002f5: JUMPI 000002f6: POP 000002f7: POP 000002f8: POP 000002f9: SWAP1 000002fa: JUMP 000002fb: JUMPDEST 000002fc: DUP3 000002fd: MLOAD 000002fe: PUSH1 0x01 00000300: PUSH1 0x01 00000302: PUSH1 0xa0 00000304: SHL 00000305: SUB 00000306: AND 00000307: DUP5 00000308: MSTORE 00000309: PUSH1 0x20 0000030b: SWAP4 0000030c: DUP5 0000030d: ADD 0000030e: SWAP4 0000030f: SWAP1 00000310: SWAP3 00000311: ADD 00000312: SWAP2 00000313: PUSH1 0x01 00000315: ADD 00000316: PUSH2 0x02ee 00000319: JUMP 0000031a: JUMPDEST 0000031b: CALLVALUE 0000031c: PUSH2 0x0253 0000031f: JUMPI 00000320: PUSH0 00000321: CALLDATASIZE 00000322: PUSH1 0x03 00000324: NOT 00000325: ADD 00000326: SLT 00000327: PUSH2 0x0253 0000032a: JUMPI 0000032b: PUSH1 0x40 0000032d: MLOAD 0000032e: DUP1 0000032f: PUSH1 0x20 00000331: PUSH1 0x9d 00000333: SLOAD 00000334: SWAP2 00000335: DUP3 00000336: DUP2 00000337: MSTORE 00000338: ADD 00000339: SWAP1 0000033a: PUSH1 0x9d 0000033c: PUSH0 0000033d: MSTORE 0000033e: PUSH32 0xd26e832454299e9fabb89e0e5fffdc046d4e14431bc1bf607ffb2e8a1ddecf7b 0000035f: SWAP1 00000360: PUSH0 00000361: JUMPDEST 00000362: DUP2 00000363: DUP2 00000364: LT 00000365: PUSH2 0x0388 00000368: JUMPI 00000369: PUSH2 0x0384 0000036c: DUP6 0000036d: PUSH2 0x0378 00000370: DUP2 00000371: DUP8 00000372: SUB 00000373: DUP3 00000374: PUSH2 0x03b2 00000377: JUMP 00000378: JUMPDEST 00000379: PUSH1 0x40 0000037b: MLOAD 0000037c: SWAP2 0000037d: DUP3 0000037e: SWAP2 0000037f: DUP3 00000380: PUSH2 0x02d8 00000383: JUMP 00000384: JUMPDEST 00000385: SUB 00000386: SWAP1 00000387: RETURN 00000388: JUMPDEST 00000389: DUP3 0000038a: SLOAD 0000038b: DUP5 0000038c: MSTORE 0000038d: PUSH1 0x20 0000038f: SWAP1 00000390: SWAP4 00000391: ADD 00000392: SWAP3 00000393: PUSH1 0x01 00000395: SWAP3 00000396: DUP4 00000397: ADD 00000398: SWAP3 00000399: ADD 0000039a: PUSH2 0x0361 0000039d: JUMP 0000039e: JUMPDEST 0000039f: PUSH4 0x4e487b71 000003a4: PUSH1 0xe0 000003a6: SHL 000003a7: PUSH0 000003a8: MSTORE 000003a9: PUSH1 0x41 000003ab: PUSH1 0x04 000003ad: MSTORE 000003ae: PUSH1 0x24 000003b0: PUSH0 000003b1: REVERT 000003b2: JUMPDEST 000003b3: SWAP1 000003b4: PUSH1 0x1f 000003b6: DUP1 000003b7: NOT 000003b8: SWAP2 000003b9: ADD 000003ba: AND 000003bb: DUP2 000003bc: ADD 000003bd: SWAP1 000003be: DUP2 000003bf: LT 000003c0: PUSH1 0x01 000003c2: PUSH1 0x01 000003c4: PUSH1 0x40 000003c6: SHL 000003c7: SUB 000003c8: DUP3 000003c9: GT 000003ca: OR 000003cb: PUSH2 0x03d3 000003ce: JUMPI 000003cf: PUSH1 0x40 000003d1: MSTORE 000003d2: JUMP 000003d3: JUMPDEST 000003d4: PUSH2 0x039e 000003d7: JUMP 000003d8: JUMPDEST 000003d9: PUSH1 0x01 000003db: PUSH1 0x01 000003dd: PUSH1 0x40 000003df: SHL 000003e0: SUB 000003e1: DUP2 000003e2: GT 000003e3: PUSH2 0x03d3 000003e6: JUMPI 000003e7: PUSH1 0x1f 000003e9: ADD 000003ea: PUSH1 0x1f 000003ec: NOT 000003ed: AND 000003ee: PUSH1 0x20 000003f0: ADD 000003f1: SWAP1 000003f2: JUMP 000003f3: JUMPDEST 000003f4: SWAP3 000003f5: SWAP2 000003f6: SWAP3 000003f7: PUSH2 0x03ff 000003fa: DUP3 000003fb: PUSH2 0x03d8 000003fe: JUMP 000003ff: JUMPDEST 00000400: SWAP2 00000401: PUSH2 0x040d 00000404: PUSH1 0x40 00000406: MLOAD 00000407: SWAP4 00000408: DUP5 00000409: PUSH2 0x03b2 0000040c: JUMP 0000040d: JUMPDEST 0000040e: DUP3 0000040f: SWAP5 00000410: DUP2 00000411: DUP5 00000412: MSTORE 00000413: DUP2 00000414: DUP4 00000415: ADD 00000416: GT 00000417: PUSH2 0x0253 0000041a: JUMPI 0000041b: DUP3 0000041c: DUP2 0000041d: PUSH1 0x20 0000041f: SWAP4 00000420: DUP5 00000421: PUSH0 00000422: SWAP7 00000423: ADD 00000424: CALLDATACOPY 00000425: ADD 00000426: ADD 00000427: MSTORE 00000428: JUMP 00000429: JUMPDEST 0000042a: CALLVALUE 0000042b: PUSH2 0x0253 0000042e: JUMPI 0000042f: PUSH1 0x40 00000431: CALLDATASIZE 00000432: PUSH1 0x03 00000434: NOT 00000435: ADD 00000436: SLT 00000437: PUSH2 0x0253 0000043a: JUMPI 0000043b: PUSH1 0x24 0000043d: CALLDATALOAD 0000043e: PUSH1 0x01 00000440: PUSH1 0x01 00000442: PUSH1 0x40 00000444: SHL 00000445: SUB 00000446: DUP2 00000447: GT 00000448: PUSH2 0x0253 0000044b: JUMPI 0000044c: CALLDATASIZE 0000044d: PUSH1 0x23 0000044f: DUP3 00000450: ADD 00000451: SLT 00000452: ISZERO 00000453: PUSH2 0x0253 00000456: JUMPI 00000457: PUSH2 0x0477 0000045a: PUSH2 0x046f 0000045d: PUSH1 0x20 0000045f: SWAP3 00000460: CALLDATASIZE 00000461: SWAP1 00000462: PUSH1 0x24 00000464: DUP2 00000465: PUSH1 0x04 00000467: ADD 00000468: CALLDATALOAD 00000469: SWAP2 0000046a: ADD 0000046b: PUSH2 0x03f3 0000046e: JUMP 0000046f: JUMPDEST 00000470: PUSH1 0x04 00000472: CALLDATALOAD 00000473: PUSH2 0x1abc 00000476: JUMP 00000477: JUMPDEST 00000478: PUSH1 0x40 0000047a: MLOAD 0000047b: PUSH1 0x01 0000047d: PUSH1 0x01 0000047f: PUSH1 0xe0 00000481: SHL 00000482: SUB 00000483: NOT 00000484: SWAP1 00000485: SWAP2 00000486: AND 00000487: DUP2 00000488: MSTORE 00000489: RETURN 0000048a: JUMPDEST 0000048b: CALLVALUE 0000048c: PUSH2 0x0253 0000048f: JUMPI 00000490: PUSH1 0x20 00000492: CALLDATASIZE 00000493: PUSH1 0x03 00000495: NOT 00000496: ADD 00000497: SLT 00000498: PUSH2 0x0253 0000049b: JUMPI 0000049c: PUSH1 0x20 0000049e: PUSH2 0x04a8 000004a1: PUSH1 0x04 000004a3: CALLDATALOAD 000004a4: PUSH2 0x2632 000004a7: JUMP 000004a8: JUMPDEST 000004a9: SWAP1 000004aa: SLOAD 000004ab: PUSH1 0x40 000004ad: MLOAD 000004ae: PUSH1 0x03 000004b0: SWAP3 000004b1: SWAP1 000004b2: SWAP3 000004b3: SHL 000004b4: SHR 000004b5: PUSH1 0x01 000004b7: PUSH1 0x01 000004b9: PUSH1 0xa0 000004bb: SHL 000004bc: SUB 000004bd: AND 000004be: DUP2 000004bf: MSTORE 000004c0: RETURN 000004c1: JUMPDEST 000004c2: SWAP2 000004c3: DUP2 000004c4: PUSH1 0x1f 000004c6: DUP5 000004c7: ADD 000004c8: SLT 000004c9: ISZERO 000004ca: PUSH2 0x0253 000004cd: JUMPI 000004ce: DUP3 000004cf: CALLDATALOAD 000004d0: SWAP2 000004d1: PUSH1 0x01 000004d3: PUSH1 0x01 000004d5: PUSH1 0x40 000004d7: SHL 000004d8: SUB 000004d9: DUP4 000004da: GT 000004db: PUSH2 0x0253 000004de: JUMPI 000004df: PUSH1 0x20 000004e1: DUP1 000004e2: DUP6 000004e3: ADD 000004e4: SWAP5 000004e5: DUP5 000004e6: PUSH1 0x05 000004e8: SHL 000004e9: ADD 000004ea: ADD 000004eb: GT 000004ec: PUSH2 0x0253 000004ef: JUMPI 000004f0: JUMP 000004f1: JUMPDEST 000004f2: CALLVALUE 000004f3: PUSH2 0x0253 000004f6: JUMPI 000004f7: PUSH1 0x60 000004f9: CALLDATASIZE 000004fa: PUSH1 0x03 000004fc: NOT 000004fd: ADD 000004fe: SLT 000004ff: PUSH2 0x0253 00000502: JUMPI 00000503: PUSH1 0x04 00000505: CALLDATALOAD 00000506: PUSH1 0x01 00000508: PUSH1 0x01 0000050a: PUSH1 0x40 0000050c: SHL 0000050d: SUB 0000050e: DUP2 0000050f: GT 00000510: PUSH2 0x0253 00000513: JUMPI 00000514: PUSH2 0x0521 00000517: SWAP1 00000518: CALLDATASIZE 00000519: SWAP1 0000051a: PUSH1 0x04 0000051c: ADD 0000051d: PUSH2 0x04c1 00000520: JUMP 00000521: JUMPDEST 00000522: SWAP1 00000523: PUSH1 0x24 00000525: CALLDATALOAD 00000526: SWAP2 00000527: PUSH2 0x052f 0000052a: DUP4 0000052b: PUSH2 0x0242 0000052e: JUMP 0000052f: JUMPDEST 00000530: PUSH1 0x44 00000532: CALLDATALOAD 00000533: SWAP3 00000534: PUSH2 0x0548 00000537: PUSH1 0x01 00000539: DUP1 0000053a: PUSH1 0xa0 0000053c: SHL 0000053d: SUB 0000053e: PUSH1 0x33 00000540: SLOAD 00000541: AND 00000542: CALLER 00000543: EQ 00000544: PUSH2 0x1a71 00000547: JUMP 00000548: JUMPDEST 00000549: PUSH0 0000054a: DUP5 0000054b: ISZERO 0000054c: SWAP3 0000054d: DUP4 0000054e: ISZERO 0000054f: SWAP2 00000550: JUMPDEST 00000551: DUP2 00000552: DUP2 00000553: LT 00000554: PUSH2 0x0559 00000557: JUMPI 00000558: STOP 00000559: JUMPDEST 0000055a: PUSH2 0x0564 0000055d: DUP2 0000055e: DUP4 0000055f: DUP9 00000560: PUSH2 0x1b44 00000563: JUMP 00000564: JUMPDEST 00000565: CALLDATALOAD 00000566: SWAP1 00000567: PUSH2 0x056f 0000056a: DUP3 0000056b: PUSH2 0x0242 0000056e: JUMP 0000056f: JUMPDEST 00000570: DUP6 00000571: DUP5 00000572: PUSH2 0x05ce 00000575: JUMPI 00000576: JUMPDEST 00000577: PUSH1 0x01 00000579: SWAP3 0000057a: PUSH2 0x0585 0000057d: PUSH2 0x05c8 00000580: SWAP3 00000581: PUSH2 0x2368 00000584: JUMP 00000585: JUMPDEST 00000586: PUSH1 0x40 00000588: MLOAD 00000589: PUSH4 0x095ea7b3 0000058e: PUSH1 0xe0 00000590: SHL 00000591: PUSH1 0x20 00000593: DUP3 00000594: ADD 00000595: MSTORE 00000596: PUSH1 0x01 00000598: PUSH1 0x01 0000059a: PUSH1 0xa0 0000059c: SHL 0000059d: SUB 0000059e: DUP9 0000059f: AND 000005a0: PUSH1 0x24 000005a2: DUP3 000005a3: ADD 000005a4: MSTORE 000005a5: PUSH1 0x44 000005a7: DUP2 000005a8: ADD 000005a9: DUP12 000005aa: SWAP1 000005ab: MSTORE 000005ac: SWAP1 000005ad: PUSH2 0x05c3 000005b0: DUP3 000005b1: PUSH1 0x64 000005b3: DUP2 000005b4: ADD 000005b5: JUMPDEST 000005b6: SUB 000005b7: PUSH1 0x1f 000005b9: NOT 000005ba: DUP2 000005bb: ADD 000005bc: DUP5 000005bd: MSTORE 000005be: DUP4 000005bf: PUSH2 0x03b2 000005c2: JUMP 000005c3: JUMPDEST 000005c4: PUSH2 0x28a6 000005c7: JUMP 000005c8: JUMPDEST 000005c9: ADD 000005ca: PUSH2 0x0550 000005cd: JUMP 000005ce: JUMPDEST 000005cf: POP 000005d0: PUSH1 0x40 000005d2: MLOAD 000005d3: PUSH4 0x6eb1769f 000005d8: PUSH1 0xe1 000005da: SHL 000005db: DUP2 000005dc: MSTORE 000005dd: ADDRESS 000005de: PUSH1 0x04 000005e0: DUP3 000005e1: ADD 000005e2: MSTORE 000005e3: PUSH1 0x01 000005e5: PUSH1 0x01 000005e7: PUSH1 0xa0 000005e9: SHL 000005ea: SUB 000005eb: DUP7 000005ec: AND 000005ed: PUSH1 0x24 000005ef: DUP3 000005f0: ADD 000005f1: MSTORE 000005f2: SWAP2 000005f3: PUSH1 0x20 000005f5: DUP4 000005f6: DUP1 000005f7: PUSH1 0x44 000005f9: DUP2 000005fa: ADD 000005fb: SUB 000005fc: DUP2 000005fd: PUSH1 0x01 000005ff: PUSH1 0x01 00000601: PUSH1 0xa0 00000603: SHL 00000604: SUB 00000605: DUP6 00000606: AND 00000607: GAS 00000608: STATICCALL 00000609: SWAP1 0000060a: DUP2 0000060b: ISZERO 0000060c: PUSH2 0x065a 0000060f: JUMPI 00000610: PUSH2 0x0585 00000613: PUSH2 0x05c8 00000616: SWAP3 00000617: PUSH1 0x01 00000619: SWAP6 0000061a: PUSH0 0000061b: SWAP2 0000061c: PUSH2 0x062c 0000061f: JUMPI 00000620: JUMPDEST 00000621: POP 00000622: ISZERO 00000623: SWAP3 00000624: POP 00000625: POP 00000626: SWAP3 00000627: POP 00000628: PUSH2 0x0576 0000062b: JUMP 0000062c: JUMPDEST 0000062d: PUSH2 0x064d 00000630: SWAP2 00000631: POP 00000632: PUSH1 0x20 00000634: RETURNDATASIZE 00000635: DUP2 00000636: GT 00000637: PUSH2 0x0653 0000063a: JUMPI 0000063b: JUMPDEST 0000063c: PUSH2 0x0645 0000063f: DUP2 00000640: DUP4 00000641: PUSH2 0x03b2 00000644: JUMP 00000645: JUMPDEST 00000646: DUP2 00000647: ADD 00000648: SWAP1 00000649: PUSH2 0x2359 0000064c: JUMP 0000064d: JUMPDEST 0000064e: PUSH0 0000064f: PUSH2 0x0620 00000652: JUMP 00000653: JUMPDEST 00000654: POP 00000655: RETURNDATASIZE 00000656: PUSH2 0x063b 00000659: JUMP 0000065a: JUMPDEST 0000065b: PUSH2 0x1f0d 0000065e: JUMP 0000065f: JUMPDEST 00000660: PUSH1 0x01 00000662: PUSH1 0x01 00000664: PUSH1 0x40 00000666: SHL 00000667: SUB 00000668: DUP2 00000669: GT 0000066a: PUSH2 0x03d3 0000066d: JUMPI 0000066e: PUSH1 0x05 00000670: SHL 00000671: PUSH1 0x20 00000673: ADD 00000674: SWAP1 00000675: JUMP 00000676: JUMPDEST 00000677: PUSH1 0x01 00000679: PUSH1 0x01 0000067b: PUSH1 0xe0 0000067d: SHL 0000067e: SUB 0000067f: NOT 00000680: DUP2 00000681: AND 00000682: SUB 00000683: PUSH2 0x0253 00000686: JUMPI 00000687: JUMP 00000688: JUMPDEST 00000689: SWAP1 0000068a: DUP1 0000068b: PUSH1 0x1f 0000068d: DUP4 0000068e: ADD 0000068f: SLT 00000690: ISZERO 00000691: PUSH2 0x0253 00000694: JUMPI 00000695: DUP2 00000696: CALLDATALOAD 00000697: PUSH2 0x069f 0000069a: DUP2 0000069b: PUSH2 0x065f 0000069e: JUMP 0000069f: JUMPDEST 000006a0: SWAP3 000006a1: PUSH2 0x06ad 000006a4: PUSH1 0x40 000006a6: MLOAD 000006a7: SWAP5 000006a8: DUP6 000006a9: PUSH2 0x03b2 000006ac: JUMP 000006ad: JUMPDEST 000006ae: DUP2 000006af: DUP5 000006b0: MSTORE 000006b1: PUSH1 0x20 000006b3: DUP1 000006b4: DUP6 000006b5: ADD 000006b6: SWAP3 000006b7: PUSH1 0x05 000006b9: SHL 000006ba: DUP3 000006bb: ADD 000006bc: ADD 000006bd: SWAP3 000006be: DUP4 000006bf: GT 000006c0: PUSH2 0x0253 000006c3: JUMPI 000006c4: PUSH1 0x20 000006c6: ADD 000006c7: SWAP1 000006c8: JUMPDEST 000006c9: DUP3 000006ca: DUP3 000006cb: LT 000006cc: PUSH2 0x06d5 000006cf: JUMPI 000006d0: POP 000006d1: POP 000006d2: POP 000006d3: SWAP1 000006d4: JUMP 000006d5: JUMPDEST 000006d6: PUSH1 0x20 000006d8: DUP1 000006d9: SWAP2 000006da: DUP4 000006db: CALLDATALOAD 000006dc: PUSH2 0x06e4 000006df: DUP2 000006e0: PUSH2 0x0242 000006e3: JUMP 000006e4: JUMPDEST 000006e5: DUP2 000006e6: MSTORE 000006e7: ADD 000006e8: SWAP2 000006e9: ADD 000006ea: SWAP1 000006eb: PUSH2 0x06c8 000006ee: JUMP 000006ef: JUMPDEST 000006f0: SWAP1 000006f1: PUSH1 0x40 000006f3: PUSH1 0x03 000006f5: NOT 000006f6: DUP4 000006f7: ADD 000006f8: SLT 000006f9: PUSH2 0x0253 000006fc: JUMPI 000006fd: PUSH1 0x04 000006ff: CALLDATALOAD 00000700: PUSH1 0x01 00000702: PUSH1 0x01 00000704: PUSH1 0x40 00000706: SHL 00000707: SUB 00000708: DUP2 00000709: GT 0000070a: PUSH2 0x0253 0000070d: JUMPI 0000070e: DUP3 0000070f: PUSH1 0x23 00000711: DUP3 00000712: ADD 00000713: SLT 00000714: ISZERO 00000715: PUSH2 0x0253 00000718: JUMPI 00000719: DUP1 0000071a: PUSH1 0x04 0000071c: ADD 0000071d: CALLDATALOAD 0000071e: SWAP1 0000071f: PUSH2 0x0727 00000722: DUP3 00000723: PUSH2 0x065f 00000726: JUMP 00000727: JUMPDEST 00000728: SWAP2 00000729: PUSH2 0x0735 0000072c: PUSH1 0x40 0000072e: MLOAD 0000072f: SWAP4 00000730: DUP5 00000731: PUSH2 0x03b2 00000734: JUMP 00000735: JUMPDEST 00000736: DUP1 00000737: DUP4 00000738: MSTORE 00000739: PUSH1 0x24 0000073b: PUSH1 0x20 0000073d: DUP5 0000073e: ADD 0000073f: SWAP2 00000740: PUSH1 0x05 00000742: SHL 00000743: DUP4 00000744: ADD 00000745: ADD 00000746: SWAP2 00000747: DUP6 00000748: DUP4 00000749: GT 0000074a: PUSH2 0x0253 0000074d: JUMPI 0000074e: PUSH1 0x24 00000750: ADD 00000751: SWAP1 00000752: JUMPDEST 00000753: DUP3 00000754: DUP3 00000755: LT 00000756: PUSH2 0x077e 00000759: JUMPI 0000075a: POP 0000075b: POP 0000075c: POP 0000075d: SWAP2 0000075e: PUSH1 0x24 00000760: CALLDATALOAD 00000761: SWAP1 00000762: PUSH1 0x01 00000764: PUSH1 0x01 00000766: PUSH1 0x40 00000768: SHL 00000769: SUB 0000076a: DUP3 0000076b: GT 0000076c: PUSH2 0x0253 0000076f: JUMPI 00000770: PUSH2 0x077b 00000773: SWAP2 00000774: PUSH1 0x04 00000776: ADD 00000777: PUSH2 0x0688 0000077a: JUMP 0000077b: JUMPDEST 0000077c: SWAP1 0000077d: JUMP 0000077e: JUMPDEST 0000077f: PUSH1 0x20 00000781: DUP1 00000782: SWAP2 00000783: DUP4 00000784: CALLDATALOAD 00000785: PUSH2 0x078d 00000788: DUP2 00000789: PUSH2 0x0676 0000078c: JUMP 0000078d: JUMPDEST 0000078e: DUP2 0000078f: MSTORE 00000790: ADD 00000791: SWAP2 00000792: ADD 00000793: SWAP1 00000794: PUSH2 0x0752 00000797: JUMP 00000798: JUMPDEST 00000799: CALLVALUE 0000079a: PUSH2 0x0253 0000079d: JUMPI 0000079e: PUSH2 0x07a6 000007a1: CALLDATASIZE 000007a2: PUSH2 0x06ef 000007a5: JUMP 000007a6: JUMPDEST 000007a7: PUSH2 0x07bb 000007aa: PUSH1 0x01 000007ac: DUP1 000007ad: PUSH1 0xa0 000007af: SHL 000007b0: SUB 000007b1: PUSH1 0x33 000007b3: SLOAD 000007b4: AND 000007b5: CALLER 000007b6: EQ 000007b7: PUSH2 0x1a71 000007ba: JUMP 000007bb: JUMPDEST 000007bc: PUSH2 0x07c8 000007bf: DUP3 000007c0: MLOAD 000007c1: DUP3 000007c2: MLOAD 000007c3: EQ 000007c4: PUSH2 0x1b59 000007c7: JUMP 000007c8: JUMPDEST 000007c9: PUSH0 000007ca: JUMPDEST 000007cb: DUP3 000007cc: MLOAD 000007cd: DUP2 000007ce: LT 000007cf: ISZERO 000007d0: PUSH2 0x001c 000007d3: JUMPI 000007d4: PUSH1 0x01 000007d6: SWAP1 000007d7: PUSH2 0x082e 000007da: PUSH1 0x01 000007dc: PUSH1 0x01 000007de: PUSH1 0xa0 000007e0: SHL 000007e1: SUB 000007e2: PUSH2 0x07eb 000007e5: DUP4 000007e6: DUP7 000007e7: PUSH2 0x1ba5 000007ea: JUMP 000007eb: JUMPDEST 000007ec: MLOAD 000007ed: AND 000007ee: PUSH1 0x01 000007f0: PUSH1 0x01 000007f2: PUSH1 0xe0 000007f4: SHL 000007f5: SUB 000007f6: NOT 000007f7: PUSH2 0x0800 000007fa: DUP5 000007fb: DUP9 000007fc: PUSH2 0x1ba5 000007ff: JUMP 00000800: JUMPDEST 00000801: MLOAD 00000802: AND 00000803: PUSH0 00000804: MSTORE 00000805: PUSH1 0x9f 00000807: PUSH1 0x20 00000809: MSTORE 0000080a: PUSH1 0x40 0000080c: PUSH0 0000080d: KECCAK256 0000080e: SWAP1 0000080f: PUSH1 0x01 00000811: DUP1 00000812: PUSH1 0xa0 00000814: SHL 00000815: SUB 00000816: AND 00000817: PUSH12 0xffffffffffffffffffffffff 00000824: PUSH1 0xa0 00000826: SHL 00000827: DUP3 00000828: SLOAD 00000829: AND 0000082a: OR 0000082b: SWAP1 0000082c: SSTORE 0000082d: JUMP 0000082e: JUMPDEST 0000082f: ADD 00000830: PUSH2 0x07ca 00000833: JUMP 00000834: JUMPDEST 00000835: CALLVALUE 00000836: PUSH2 0x0253 00000839: JUMPI 0000083a: PUSH0 0000083b: CALLDATASIZE 0000083c: PUSH1 0x03 0000083e: NOT 0000083f: ADD 00000840: SLT 00000841: PUSH2 0x0253 00000844: JUMPI 00000845: PUSH1 0x40 00000847: MLOAD 00000848: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000869: PUSH1 0x01 0000086b: PUSH1 0x01 0000086d: PUSH1 0xa0 0000086f: SHL 00000870: SUB 00000871: AND 00000872: DUP2 00000873: MSTORE 00000874: PUSH1 0x20 00000876: SWAP1 00000877: RETURN 00000878: JUMPDEST 00000879: SWAP2 0000087a: DUP2 0000087b: PUSH1 0x1f 0000087d: DUP5 0000087e: ADD 0000087f: SLT 00000880: ISZERO 00000881: PUSH2 0x0253 00000884: JUMPI 00000885: DUP3 00000886: CALLDATALOAD 00000887: SWAP2 00000888: PUSH1 0x01 0000088a: PUSH1 0x01 0000088c: PUSH1 0x40 0000088e: SHL 0000088f: SUB 00000890: DUP4 00000891: GT 00000892: PUSH2 0x0253 00000895: JUMPI 00000896: PUSH1 0x20 00000898: DUP4 00000899: DUP2 0000089a: DUP7 0000089b: ADD 0000089c: SWAP6 0000089d: ADD 0000089e: ADD 0000089f: GT 000008a0: PUSH2 0x0253 000008a3: JUMPI 000008a4: JUMP 000008a5: JUMPDEST 000008a6: SWAP1 000008a7: PUSH1 0x40 000008a9: PUSH1 0x03 000008ab: NOT 000008ac: DUP4 000008ad: ADD 000008ae: SLT 000008af: PUSH2 0x0253 000008b2: JUMPI 000008b3: PUSH1 0x04 000008b5: CALLDATALOAD 000008b6: PUSH1 0x01 000008b8: PUSH1 0x01 000008ba: PUSH1 0x40 000008bc: SHL 000008bd: SUB 000008be: DUP2 000008bf: GT 000008c0: PUSH2 0x0253 000008c3: JUMPI 000008c4: PUSH1 0x04 000008c6: ADD 000008c7: PUSH1 0x80 000008c9: DUP2 000008ca: DUP5 000008cb: SUB 000008cc: SLT 000008cd: PUSH2 0x0253 000008d0: JUMPI 000008d1: SWAP2 000008d2: PUSH1 0x24 000008d4: CALLDATALOAD 000008d5: SWAP1 000008d6: PUSH1 0x01 000008d8: PUSH1 0x01 000008da: PUSH1 0x40 000008dc: SHL 000008dd: SUB 000008de: DUP3 000008df: GT 000008e0: PUSH2 0x0253 000008e3: JUMPI 000008e4: PUSH2 0x08ef 000008e7: SWAP2 000008e8: PUSH1 0x04 000008ea: ADD 000008eb: PUSH2 0x0878 000008ee: JUMP 000008ef: JUMPDEST 000008f0: SWAP1 000008f1: SWAP2 000008f2: JUMP 000008f3: JUMPDEST 000008f4: PUSH2 0x08fc 000008f7: CALLDATASIZE 000008f8: PUSH2 0x08a5 000008fb: JUMP 000008fc: JUMPDEST 000008fd: SWAP1 000008fe: PUSH2 0x091a 00000901: PUSH2 0x0915 00000904: CALLER 00000905: PUSH0 00000906: MSTORE 00000907: PUSH1 0x9c 00000909: PUSH1 0x20 0000090b: MSTORE 0000090c: PUSH1 0x40 0000090e: PUSH0 0000090f: KECCAK256 00000910: SLOAD 00000911: ISZERO 00000912: ISZERO 00000913: SWAP1 00000914: JUMP 00000915: JUMPDEST 00000916: PUSH2 0x1bb9 00000919: JUMP 0000091a: JUMPDEST 0000091b: PUSH2 0x0a6e 0000091e: PUSH2 0x0a40 00000921: PUSH1 0x20 00000923: DUP6 00000924: ADD 00000925: SWAP4 00000926: PUSH2 0x0943 00000929: PUSH2 0x0931 0000092c: DUP7 0000092d: PUSH2 0x1bfc 00000930: JUMP 00000931: JUMPDEST 00000932: PUSH1 0x01 00000934: PUSH1 0x01 00000936: PUSH1 0x80 00000938: SHL 00000939: SUB 0000093a: TIMESTAMP 0000093b: SWAP2 0000093c: AND 0000093d: LT 0000093e: ISZERO 0000093f: PUSH2 0x1c10 00000942: JUMP 00000943: JUMPDEST 00000944: PUSH2 0x095f 00000947: CALLER 00000948: PUSH1 0x01 0000094a: PUSH1 0x01 0000094c: PUSH1 0xa0 0000094e: SHL 0000094f: SUB 00000950: PUSH2 0x0958 00000953: DUP10 00000954: PUSH2 0x1c50 00000957: JUMP 00000958: JUMPDEST 00000959: AND 0000095a: EQ 0000095b: PUSH2 0x1c5a 0000095e: JUMP 0000095f: JUMPDEST 00000960: PUSH2 0x0a3a 00000963: PUSH1 0x60 00000965: DUP8 00000966: ADD 00000967: SWAP5 00000968: PUSH2 0x0a32 0000096b: PUSH2 0x099c 0000096e: PUSH2 0x098e 00000971: PUSH2 0x097a 00000974: DUP10 00000975: DUP13 00000976: PUSH2 0x1c99 00000979: JUMP 0000097a: JUMPDEST 0000097b: PUSH1 0x40 0000097d: SWAP4 0000097e: SWAP2 0000097f: SWAP4 00000980: MLOAD 00000981: SWAP3 00000982: DUP4 00000983: SWAP2 00000984: PUSH1 0x20 00000986: DUP4 00000987: ADD 00000988: SWAP6 00000989: DUP7 0000098a: PUSH2 0x1d1f 0000098d: JUMP 0000098e: JUMPDEST 0000098f: SUB 00000990: PUSH1 0x1f 00000992: NOT 00000993: DUP2 00000994: ADD 00000995: DUP4 00000996: MSTORE 00000997: DUP3 00000998: PUSH2 0x03b2 0000099b: JUMP 0000099c: JUMPDEST 0000099d: MLOAD 0000099e: SWAP1 0000099f: KECCAK256 000009a0: SWAP8 000009a1: PUSH2 0x09b2 000009a4: PUSH2 0x09ac 000009a7: DUP12 000009a8: PUSH2 0x1c50 000009ab: JUMP 000009ac: JUMPDEST 000009ad: SWAP2 000009ae: PUSH2 0x1bfc 000009b1: JUMP 000009b2: JUMPDEST 000009b3: SWAP9 000009b4: PUSH2 0x0a2a 000009b7: PUSH1 0x40 000009b9: DUP13 000009ba: ADD 000009bb: SWAP11 000009bc: PUSH2 0x098e 000009bf: PUSH2 0x09c7 000009c2: DUP14 000009c3: PUSH2 0x1bfc 000009c6: JUMP 000009c7: JUMPDEST 000009c8: SWAP4 000009c9: PUSH1 0x40 000009cb: MLOAD 000009cc: SWAP5 000009cd: DUP6 000009ce: SWAP4 000009cf: PUSH1 0x20 000009d1: DUP6 000009d2: ADD 000009d3: SWAP8 000009d4: DUP9 000009d5: SWAP1 000009d6: SWAP5 000009d7: SWAP4 000009d8: SWAP3 000009d9: PUSH1 0x01 000009db: PUSH1 0x01 000009dd: PUSH1 0x80 000009df: SHL 000009e0: SUB 000009e1: SWAP1 000009e2: DUP2 000009e3: PUSH1 0x80 000009e5: SWAP5 000009e6: PUSH1 0xa0 000009e8: DUP6 000009e9: ADD 000009ea: SWAP9 000009eb: PUSH32 0x7e2137b52a88cc72d113166dcedbf48e41ea4ae592924fe4f494d74ca5a0095f 00000a0c: DUP7 00000a0d: MSTORE 00000a0e: PUSH1 0x01 00000a10: DUP1 00000a11: PUSH1 0xa0 00000a13: SHL 00000a14: SUB 00000a15: AND 00000a16: PUSH1 0x20 00000a18: DUP7 00000a19: ADD 00000a1a: MSTORE 00000a1b: AND 00000a1c: PUSH1 0x40 00000a1e: DUP5 00000a1f: ADD 00000a20: MSTORE 00000a21: AND 00000a22: PUSH1 0x60 00000a24: DUP3 00000a25: ADD 00000a26: MSTORE 00000a27: ADD 00000a28: MSTORE 00000a29: JUMP 00000a2a: JUMPDEST 00000a2b: MLOAD 00000a2c: SWAP1 00000a2d: KECCAK256 00000a2e: PUSH2 0x23d3 00000a31: JUMP 00000a32: JUMPDEST 00000a33: SWAP3 00000a34: CALLDATASIZE 00000a35: SWAP2 00000a36: PUSH2 0x03f3 00000a39: JUMP 00000a3a: JUMPDEST 00000a3b: SWAP1 00000a3c: PUSH2 0x247e 00000a3f: JUMP 00000a40: JUMPDEST 00000a41: PUSH1 0x9a 00000a43: SLOAD 00000a44: PUSH2 0x0a5d 00000a47: SWAP1 00000a48: PUSH1 0x01 00000a4a: PUSH1 0x01 00000a4c: PUSH1 0xa0 00000a4e: SHL 00000a4f: SUB 00000a50: AND 00000a51: JUMPDEST 00000a52: PUSH1 0x01 00000a54: PUSH1 0x01 00000a56: PUSH1 0xa0 00000a58: SHL 00000a59: SUB 00000a5a: AND 00000a5b: SWAP1 00000a5c: JUMP 00000a5d: JUMPDEST 00000a5e: PUSH1 0x01 00000a60: PUSH1 0x01 00000a62: PUSH1 0xa0 00000a64: SHL 00000a65: SUB 00000a66: SWAP1 00000a67: SWAP2 00000a68: AND 00000a69: EQ 00000a6a: PUSH2 0x1dbd 00000a6d: JUMP 00000a6e: JUMPDEST 00000a6f: PUSH0 00000a70: JUMPDEST 00000a71: PUSH2 0x0a7a 00000a74: DUP3 00000a75: DUP6 00000a76: PUSH2 0x1c99 00000a79: JUMP 00000a7a: JUMPDEST 00000a7b: SWAP1 00000a7c: POP 00000a7d: DUP2 00000a7e: LT 00000a7f: ISZERO 00000a80: PUSH2 0x0b91 00000a83: JUMPI 00000a84: DUP1 00000a85: PUSH2 0x0aa5 00000a88: PUSH2 0x0a51 00000a8b: PUSH2 0x0aa0 00000a8e: PUSH1 0x01 00000a90: SWAP5 00000a91: PUSH2 0x0a9a 00000a94: DUP8 00000a95: DUP11 00000a96: PUSH2 0x1c99 00000a99: JUMP 00000a9a: JUMPDEST 00000a9b: SWAP1 00000a9c: PUSH2 0x1e08 00000a9f: JUMP 00000aa0: JUMPDEST 00000aa1: PUSH2 0x1c50 00000aa4: JUMP 00000aa5: JUMPDEST 00000aa6: PUSH2 0x0b29 00000aa9: JUMPI 00000aaa: PUSH2 0x0b23 00000aad: PUSH2 0x0afa 00000ab0: PUSH2 0x0aed 00000ab3: PUSH2 0x0ad6 00000ab6: PUSH2 0x0ad0 00000ab9: PUSH2 0x0ac6 00000abc: DUP7 00000abd: PUSH2 0x0a9a 00000ac0: DUP11 00000ac1: DUP14 00000ac2: PUSH2 0x1c99 00000ac5: JUMP 00000ac6: JUMPDEST 00000ac7: PUSH1 0x20 00000ac9: DUP2 00000aca: ADD 00000acb: SWAP1 00000acc: PUSH2 0x1e6a 00000acf: JUMP 00000ad0: JUMPDEST 00000ad1: SWAP1 00000ad2: PUSH2 0x1e9c 00000ad5: JUMP 00000ad6: JUMPDEST 00000ad7: PUSH4 0xffffffff 00000adc: PUSH1 0xe0 00000ade: SHL 00000adf: AND 00000ae0: PUSH0 00000ae1: MSTORE 00000ae2: PUSH1 0x9f 00000ae4: PUSH1 0x20 00000ae6: MSTORE 00000ae7: PUSH1 0x40 00000ae9: PUSH0 00000aea: KECCAK256 00000aeb: SWAP1 00000aec: JUMP 00000aed: JUMPDEST 00000aee: SLOAD 00000aef: PUSH1 0x01 00000af1: PUSH1 0x01 00000af3: PUSH1 0xa0 00000af5: SHL 00000af6: SUB 00000af7: AND 00000af8: SWAP1 00000af9: JUMP 00000afa: JUMPDEST 00000afb: PUSH2 0x0b0c 00000afe: DUP5 00000aff: DUP1 00000b00: PUSH1 0xa0 00000b02: SHL 00000b03: SUB 00000b04: DUP3 00000b05: AND 00000b06: ISZERO 00000b07: ISZERO 00000b08: PUSH2 0x1ed2 00000b0b: JUMP 00000b0c: JUMPDEST 00000b0d: PUSH2 0x0b1d 00000b10: PUSH2 0x0ac6 00000b13: DUP5 00000b14: PUSH2 0x0a9a 00000b17: DUP9 00000b18: DUP12 00000b19: PUSH2 0x1c99 00000b1c: JUMP 00000b1d: JUMPDEST 00000b1e: SWAP2 00000b1f: PUSH2 0x24dd 00000b22: JUMP 00000b23: JUMPDEST 00000b24: ADD 00000b25: PUSH2 0x0a70 00000b28: JUMP 00000b29: JUMPDEST 00000b2a: PUSH2 0x0b61 00000b2d: PUSH2 0x0b5c 00000b30: PUSH2 0x0b40 00000b33: PUSH2 0x0aa0 00000b36: DUP5 00000b37: PUSH2 0x0a9a 00000b3a: DUP9 00000b3b: DUP12 00000b3c: PUSH2 0x1c99 00000b3f: JUMP 00000b40: JUMPDEST 00000b41: PUSH1 0x01 00000b43: PUSH1 0x01 00000b45: PUSH1 0xa0 00000b47: SHL 00000b48: SUB 00000b49: AND 00000b4a: PUSH0 00000b4b: SWAP1 00000b4c: DUP2 00000b4d: MSTORE 00000b4e: PUSH1 0x9e 00000b50: PUSH1 0x20 00000b52: MSTORE 00000b53: PUSH1 0x40 00000b55: SWAP1 00000b56: KECCAK256 00000b57: SLOAD 00000b58: ISZERO 00000b59: ISZERO 00000b5a: SWAP1 00000b5b: JUMP 00000b5c: JUMPDEST 00000b5d: PUSH2 0x1e2a 00000b60: JUMP 00000b61: JUMPDEST 00000b62: PUSH2 0x0b8c 00000b65: PUSH2 0x0b75 00000b68: PUSH2 0x0aa0 00000b6b: DUP4 00000b6c: PUSH2 0x0a9a 00000b6f: DUP8 00000b70: DUP11 00000b71: PUSH2 0x1c99 00000b74: JUMP 00000b75: JUMPDEST 00000b76: PUSH2 0x0b86 00000b79: PUSH2 0x0ac6 00000b7c: DUP5 00000b7d: PUSH2 0x0a9a 00000b80: DUP9 00000b81: DUP12 00000b82: PUSH2 0x1c99 00000b85: JUMP 00000b86: JUMPDEST 00000b87: SWAP2 00000b88: PUSH2 0x2493 00000b8b: JUMP 00000b8c: JUMPDEST 00000b8d: PUSH2 0x0b23 00000b90: JUMP 00000b91: JUMPDEST 00000b92: DUP3 00000b93: PUSH1 0x01 00000b95: PUSH1 0x01 00000b97: PUSH1 0x80 00000b99: SHL 00000b9a: SUB 00000b9b: PUSH2 0x0ba3 00000b9e: DUP3 00000b9f: PUSH2 0x1bfc 00000ba2: JUMP 00000ba3: JUMPDEST 00000ba4: AND 00000ba5: PUSH2 0x0baa 00000ba8: JUMPI 00000ba9: STOP 00000baa: JUMPDEST 00000bab: PUSH0 00000bac: DUP1 00000bad: DUP1 00000bae: PUSH2 0x0bb7 00000bb1: DUP2 00000bb2: SWAP5 00000bb3: PUSH2 0x1bfc 00000bb6: JUMP 00000bb7: JUMPDEST 00000bb8: PUSH1 0x01 00000bba: PUSH1 0x01 00000bbc: PUSH1 0x80 00000bbe: SHL 00000bbf: SUB 00000bc0: AND 00000bc1: DUP2 00000bc2: DUP2 00000bc3: ISZERO 00000bc4: PUSH2 0x0bd2 00000bc7: JUMPI 00000bc8: JUMPDEST 00000bc9: COINBASE 00000bca: SWAP1 00000bcb: CALL 00000bcc: ISZERO 00000bcd: PUSH2 0x065a 00000bd0: JUMPI 00000bd1: STOP 00000bd2: JUMPDEST 00000bd3: POP 00000bd4: PUSH2 0x08fc 00000bd7: PUSH2 0x0bc8 00000bda: JUMP 00000bdb: JUMPDEST 00000bdc: CALLVALUE 00000bdd: PUSH2 0x0253 00000be0: JUMPI 00000be1: PUSH1 0x20 00000be3: CALLDATASIZE 00000be4: PUSH1 0x03 00000be6: NOT 00000be7: ADD 00000be8: SLT 00000be9: PUSH2 0x0253 00000bec: JUMPI 00000bed: PUSH1 0x04 00000bef: CALLDATALOAD 00000bf0: PUSH2 0x0bf8 00000bf3: DUP2 00000bf4: PUSH2 0x0242 00000bf7: JUMP 00000bf8: JUMPDEST 00000bf9: PUSH0 00000bfa: SLOAD 00000bfb: PUSH1 0xff 00000bfd: DUP2 00000bfe: PUSH1 0x08 00000c00: SHR 00000c01: AND 00000c02: SWAP1 00000c03: DUP2 00000c04: PUSH0 00000c05: EQ 00000c06: PUSH2 0x0d6d 00000c09: JUMPI 00000c0a: POP 00000c0b: PUSH2 0x0c15 00000c0e: ADDRESS 00000c0f: EXTCODESIZE 00000c10: ISZERO 00000c11: PUSH2 0x1f18 00000c14: JUMP 00000c15: JUMPDEST 00000c16: ISZERO 00000c17: SWAP1 00000c18: DUP2 00000c19: PUSH2 0x0d46 00000c1c: JUMPI 00000c1d: JUMPDEST 00000c1e: PUSH2 0x0c36 00000c21: PUSH1 0xff 00000c23: PUSH0 00000c24: SLOAD 00000c25: PUSH1 0x08 00000c27: SHR 00000c28: AND 00000c29: PUSH2 0x0c31 00000c2c: DUP2 00000c2d: PUSH2 0x24f3 00000c30: JUMP 00000c31: JUMPDEST 00000c32: PUSH2 0x24f3 00000c35: JUMP 00000c36: JUMPDEST 00000c37: PUSH2 0x0c3f 00000c3a: CALLER 00000c3b: PUSH2 0x25ea 00000c3e: JUMP 00000c3f: JUMPDEST 00000c40: PUSH0 00000c41: SLOAD 00000c42: PUSH1 0xff 00000c44: DUP2 00000c45: PUSH1 0x08 00000c47: SHR 00000c48: AND 00000c49: SWAP1 00000c4a: DUP2 00000c4b: PUSH0 00000c4c: EQ 00000c4d: PUSH2 0x0d39 00000c50: JUMPI 00000c51: POP 00000c52: PUSH2 0x0c5c 00000c55: ADDRESS 00000c56: EXTCODESIZE 00000c57: ISZERO 00000c58: PUSH2 0x1f18 00000c5b: JUMP 00000c5c: JUMPDEST 00000c5d: ISZERO 00000c5e: DUP1 00000c5f: PUSH2 0x0d12 00000c62: JUMPI 00000c63: JUMPDEST 00000c64: PUSH2 0x0cff 00000c67: JUMPI 00000c68: JUMPDEST 00000c69: PUSH1 0x33 00000c6b: SLOAD 00000c6c: PUSH2 0x0c7f 00000c6f: SWAP1 00000c70: PUSH1 0x01 00000c72: PUSH1 0x01 00000c74: PUSH1 0xa0 00000c76: SHL 00000c77: SUB 00000c78: AND 00000c79: CALLER 00000c7a: EQ 00000c7b: PUSH2 0x1a71 00000c7e: JUMP 00000c7f: JUMPDEST 00000c80: PUSH1 0x01 00000c82: PUSH1 0x01 00000c84: PUSH1 0xa0 00000c86: SHL 00000c87: SUB 00000c88: DUP2 00000c89: AND 00000c8a: ISZERO 00000c8b: PUSH2 0x0cab 00000c8e: JUMPI 00000c8f: PUSH2 0x0c97 00000c92: SWAP1 00000c93: PUSH2 0x25ea 00000c96: JUMP 00000c97: JUMPDEST 00000c98: PUSH2 0x0c9d 00000c9b: JUMPI 00000c9c: STOP 00000c9d: JUMPDEST 00000c9e: PUSH2 0x001c 00000ca1: PUSH2 0xff00 00000ca4: NOT 00000ca5: PUSH0 00000ca6: SLOAD 00000ca7: AND 00000ca8: PUSH0 00000ca9: SSTORE 00000caa: JUMP 00000cab: JUMPDEST 00000cac: PUSH1 0x40 00000cae: MLOAD 00000caf: PUSH3 0x461bcd 00000cb3: PUSH1 0xe5 00000cb5: SHL 00000cb6: DUP2 00000cb7: MSTORE 00000cb8: PUSH1 0x20 00000cba: PUSH1 0x04 00000cbc: DUP3 00000cbd: ADD 00000cbe: MSTORE 00000cbf: PUSH1 0x26 00000cc1: PUSH1 0x24 00000cc3: DUP3 00000cc4: ADD 00000cc5: MSTORE 00000cc6: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 00000ce7: PUSH1 0x44 00000ce9: DUP3 00000cea: ADD 00000ceb: MSTORE 00000cec: PUSH6 0x646472657373 00000cf3: PUSH1 0xd0 00000cf5: SHL 00000cf6: PUSH1 0x64 00000cf8: DUP3 00000cf9: ADD 00000cfa: MSTORE 00000cfb: PUSH1 0x84 00000cfd: SWAP1 00000cfe: REVERT 00000cff: JUMPDEST 00000d00: PUSH2 0x0d0d 00000d03: PUSH2 0xff00 00000d06: NOT 00000d07: PUSH0 00000d08: SLOAD 00000d09: AND 00000d0a: PUSH0 00000d0b: SSTORE 00000d0c: JUMP 00000d0d: JUMPDEST 00000d0e: PUSH2 0x0c68 00000d11: JUMP 00000d12: JUMPDEST 00000d13: PUSH2 0x0d24 00000d16: PUSH2 0x0100 00000d19: PUSH2 0xff00 00000d1c: NOT 00000d1d: PUSH0 00000d1e: SLOAD 00000d1f: AND 00000d20: OR 00000d21: PUSH0 00000d22: SSTORE 00000d23: JUMP 00000d24: JUMPDEST 00000d25: PUSH2 0x0d34 00000d28: PUSH1 0x01 00000d2a: PUSH1 0xff 00000d2c: NOT 00000d2d: PUSH0 00000d2e: SLOAD 00000d2f: AND 00000d30: OR 00000d31: PUSH0 00000d32: SSTORE 00000d33: JUMP 00000d34: JUMPDEST 00000d35: PUSH2 0x0c63 00000d38: JUMP 00000d39: JUMPDEST 00000d3a: PUSH1 0xff 00000d3c: PUSH2 0x0c5c 00000d3f: SWAP2 00000d40: AND 00000d41: ISZERO 00000d42: PUSH2 0x1f18 00000d45: JUMP 00000d46: JUMPDEST 00000d47: PUSH2 0x0d58 00000d4a: PUSH2 0x0100 00000d4d: PUSH2 0xff00 00000d50: NOT 00000d51: PUSH0 00000d52: SLOAD 00000d53: AND 00000d54: OR 00000d55: PUSH0 00000d56: SSTORE 00000d57: JUMP 00000d58: JUMPDEST 00000d59: PUSH2 0x0d68 00000d5c: PUSH1 0x01 00000d5e: PUSH1 0xff 00000d60: NOT 00000d61: PUSH0 00000d62: SLOAD 00000d63: AND 00000d64: OR 00000d65: PUSH0 00000d66: SSTORE 00000d67: JUMP 00000d68: JUMPDEST 00000d69: PUSH2 0x0c1d 00000d6c: JUMP 00000d6d: JUMPDEST 00000d6e: PUSH1 0xff 00000d70: PUSH2 0x0c15 00000d73: SWAP2 00000d74: AND 00000d75: ISZERO 00000d76: PUSH2 0x1f18 00000d79: JUMP 00000d7a: JUMPDEST 00000d7b: CALLVALUE 00000d7c: PUSH2 0x0253 00000d7f: JUMPI 00000d80: PUSH0 00000d81: CALLDATASIZE 00000d82: PUSH1 0x03 00000d84: NOT 00000d85: ADD 00000d86: SLT 00000d87: PUSH2 0x0253 00000d8a: JUMPI 00000d8b: PUSH1 0x9a 00000d8d: SLOAD 00000d8e: PUSH1 0x40 00000d90: MLOAD 00000d91: PUSH1 0x01 00000d93: PUSH1 0x01 00000d95: PUSH1 0xa0 00000d97: SHL 00000d98: SUB 00000d99: SWAP1 00000d9a: SWAP2 00000d9b: AND 00000d9c: DUP2 00000d9d: MSTORE 00000d9e: PUSH1 0x20 00000da0: SWAP1 00000da1: RETURN 00000da2: JUMPDEST 00000da3: CALLVALUE 00000da4: PUSH2 0x0253 00000da7: JUMPI 00000da8: PUSH1 0x20 00000daa: CALLDATASIZE 00000dab: PUSH1 0x03 00000dad: NOT 00000dae: ADD 00000daf: SLT 00000db0: PUSH2 0x0253 00000db3: JUMPI 00000db4: PUSH32 0xb0f5cdd73db8ff444fea735d243faf354a928879825665bf4f2f67600cbac97c 00000dd5: PUSH1 0x20 00000dd7: PUSH1 0x04 00000dd9: CALLDATALOAD 00000dda: PUSH2 0x0de2 00000ddd: DUP2 00000dde: PUSH2 0x0242 00000de1: JUMP 00000de2: JUMPDEST 00000de3: PUSH2 0x0df7 00000de6: PUSH1 0x01 00000de8: DUP1 00000de9: PUSH1 0xa0 00000deb: SHL 00000dec: SUB 00000ded: PUSH1 0x33 00000def: SLOAD 00000df0: AND 00000df1: CALLER 00000df2: EQ 00000df3: PUSH2 0x1a71 00000df6: JUMP 00000df7: JUMPDEST 00000df8: PUSH1 0x9a 00000dfa: DUP1 00000dfb: SLOAD 00000dfc: PUSH1 0x01 00000dfe: PUSH1 0x01 00000e00: PUSH1 0xa0 00000e02: SHL 00000e03: SUB 00000e04: NOT 00000e05: AND 00000e06: PUSH1 0x01 00000e08: PUSH1 0x01 00000e0a: PUSH1 0xa0 00000e0c: SHL 00000e0d: SUB 00000e0e: SWAP3 00000e0f: SWAP1 00000e10: SWAP3 00000e11: AND 00000e12: SWAP2 00000e13: DUP3 00000e14: OR 00000e15: SWAP1 00000e16: SSTORE 00000e17: PUSH1 0x40 00000e19: MLOAD 00000e1a: SWAP1 00000e1b: DUP2 00000e1c: MSTORE 00000e1d: LOG1 00000e1e: STOP 00000e1f: JUMPDEST 00000e20: CALLVALUE 00000e21: PUSH2 0x0253 00000e24: JUMPI 00000e25: PUSH1 0x60 00000e27: CALLDATASIZE 00000e28: PUSH1 0x03 00000e2a: NOT 00000e2b: ADD 00000e2c: SLT 00000e2d: PUSH2 0x0253 00000e30: JUMPI 00000e31: PUSH1 0x04 00000e33: CALLDATALOAD 00000e34: PUSH2 0x0e3c 00000e37: DUP2 00000e38: PUSH2 0x0242 00000e3b: JUMP 00000e3c: JUMPDEST 00000e3d: PUSH1 0x24 00000e3f: CALLDATALOAD 00000e40: SWAP1 00000e41: PUSH1 0x44 00000e43: CALLDATALOAD 00000e44: PUSH2 0x0e4c 00000e47: DUP2 00000e48: PUSH2 0x0242 00000e4b: JUMP 00000e4c: JUMPDEST 00000e4d: PUSH2 0x0e69 00000e50: PUSH2 0x0e64 00000e53: CALLER 00000e54: PUSH0 00000e55: MSTORE 00000e56: PUSH1 0x66 00000e58: PUSH1 0x20 00000e5a: MSTORE 00000e5b: PUSH1 0x40 00000e5d: PUSH0 00000e5e: KECCAK256 00000e5f: SLOAD 00000e60: ISZERO 00000e61: ISZERO 00000e62: SWAP1 00000e63: JUMP 00000e64: JUMPDEST 00000e65: PUSH2 0x1f7b 00000e68: JUMP 00000e69: JUMPDEST 00000e6a: PUSH1 0x01 00000e6c: PUSH1 0x01 00000e6e: PUSH1 0xa0 00000e70: SHL 00000e71: SUB 00000e72: DUP2 00000e73: AND 00000e74: PUSH0 00000e75: SWAP1 00000e76: DUP2 00000e77: MSTORE 00000e78: PUSH1 0xa2 00000e7a: PUSH1 0x20 00000e7c: MSTORE 00000e7d: PUSH1 0x40 00000e7f: SWAP1 00000e80: KECCAK256 00000e81: SLOAD 00000e82: PUSH2 0x0e8c 00000e85: SWAP1 00000e86: ISZERO 00000e87: ISZERO 00000e88: PUSH2 0x1fc0 00000e8b: JUMP 00000e8c: JUMPDEST 00000e8d: PUSH1 0x01 00000e8f: PUSH1 0x01 00000e91: PUSH1 0xa0 00000e93: SHL 00000e94: SUB 00000e95: DUP3 00000e96: AND 00000e97: SWAP2 00000e98: DUP4 00000e99: SWAP1 00000e9a: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 00000eaf: DUP5 00000eb0: SUB 00000eb1: PUSH2 0x0f8f 00000eb4: JUMPI 00000eb5: POP 00000eb6: POP 00000eb7: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000ed8: PUSH1 0x01 00000eda: PUSH1 0x01 00000edc: PUSH1 0xa0 00000ede: SHL 00000edf: SUB 00000ee0: AND 00000ee1: SWAP1 00000ee2: DUP2 00000ee3: EXTCODESIZE 00000ee4: ISZERO 00000ee5: PUSH2 0x0253 00000ee8: JUMPI 00000ee9: PUSH1 0x40 00000eeb: MLOAD 00000eec: PUSH4 0x2e1a7d4d 00000ef1: PUSH1 0xe0 00000ef3: SHL 00000ef4: DUP2 00000ef5: MSTORE 00000ef6: PUSH1 0x04 00000ef8: DUP2 00000ef9: ADD 00000efa: DUP6 00000efb: SWAP1 00000efc: MSTORE 00000efd: SWAP2 00000efe: PUSH0 00000eff: SWAP1 00000f00: DUP4 00000f01: SWAP1 00000f02: PUSH1 0x24 00000f04: SWAP1 00000f05: DUP3 00000f06: SWAP1 00000f07: DUP5 00000f08: SWAP1 00000f09: GAS 00000f0a: CALL 00000f0b: SWAP1 00000f0c: DUP2 00000f0d: ISZERO 00000f0e: PUSH2 0x065a 00000f11: JUMPI 00000f12: PUSH32 0xb67719fc33c1f17d31bf3a698690d62066b1e0bae28fcd3c56cf2c015c2863d6 00000f33: SWAP3 00000f34: PUSH2 0x0f70 00000f37: SWAP3 00000f38: PUSH2 0x0f75 00000f3b: JUMPI 00000f3c: JUMPDEST 00000f3d: POP 00000f3e: PUSH2 0x0f56 00000f41: PUSH0 00000f42: DUP1 00000f43: DUP1 00000f44: DUP1 00000f45: DUP10 00000f46: DUP7 00000f47: GAS 00000f48: CALL 00000f49: PUSH2 0x0f50 00000f4c: PUSH2 0x200c 00000f4f: JUMP 00000f50: JUMPDEST 00000f51: POP 00000f52: PUSH2 0x203b 00000f55: JUMP 00000f56: JUMPDEST 00000f57: PUSH1 0x40 00000f59: MLOAD 00000f5a: SWAP5 00000f5b: DUP6 00000f5c: MSTORE 00000f5d: PUSH1 0x01 00000f5f: PUSH1 0x01 00000f61: PUSH1 0xa0 00000f63: SHL 00000f64: SUB 00000f65: AND 00000f66: SWAP4 00000f67: SWAP1 00000f68: DUP2 00000f69: SWAP1 00000f6a: PUSH1 0x20 00000f6c: DUP3 00000f6d: ADD 00000f6e: SWAP1 00000f6f: JUMP 00000f70: JUMPDEST 00000f71: SUB 00000f72: SWAP1 00000f73: LOG3 00000f74: STOP 00000f75: JUMPDEST 00000f76: DUP1 00000f77: PUSH2 0x0f83 00000f7a: PUSH0 00000f7b: PUSH2 0x0f89 00000f7e: SWAP4 00000f7f: PUSH2 0x03b2 00000f82: JUMP 00000f83: JUMPDEST 00000f84: DUP1 00000f85: PUSH2 0x02ce 00000f88: JUMP 00000f89: JUMPDEST 00000f8a: PUSH0 00000f8b: PUSH2 0x0f3c 00000f8e: JUMP 00000f8f: JUMPDEST 00000f90: SWAP2 00000f91: PUSH2 0x0fbf 00000f94: PUSH2 0x0f70 00000f97: SWAP3 00000f98: DUP3 00000f99: PUSH32 0xb67719fc33c1f17d31bf3a698690d62066b1e0bae28fcd3c56cf2c015c2863d6 00000fba: SWAP6 00000fbb: PUSH2 0x2553 00000fbe: JUMP 00000fbf: JUMPDEST 00000fc0: PUSH2 0x0f56 00000fc3: JUMP 00000fc4: JUMPDEST 00000fc5: CALLVALUE 00000fc6: PUSH2 0x0253 00000fc9: JUMPI 00000fca: PUSH1 0x20 00000fcc: CALLDATASIZE 00000fcd: PUSH1 0x03 00000fcf: NOT 00000fd0: ADD 00000fd1: SLT 00000fd2: PUSH2 0x0253 00000fd5: JUMPI 00000fd6: PUSH1 0x20 00000fd8: PUSH2 0x1002 00000fdb: PUSH1 0x04 00000fdd: CALLDATALOAD 00000fde: PUSH2 0x0fe6 00000fe1: DUP2 00000fe2: PUSH2 0x0242 00000fe5: JUMP 00000fe6: JUMPDEST 00000fe7: PUSH1 0x01 00000fe9: PUSH1 0x01 00000feb: PUSH1 0xa0 00000fed: SHL 00000fee: SUB 00000fef: AND 00000ff0: PUSH0 00000ff1: SWAP1 00000ff2: DUP2 00000ff3: MSTORE 00000ff4: PUSH1 0x66 00000ff6: PUSH1 0x20 00000ff8: MSTORE 00000ff9: PUSH1 0x40 00000ffb: SWAP1 00000ffc: KECCAK256 00000ffd: SLOAD 00000ffe: ISZERO 00000fff: ISZERO 00001000: SWAP1 00001001: JUMP 00001002: JUMPDEST 00001003: PUSH1 0x40 00001005: MLOAD 00001006: SWAP1 00001007: ISZERO 00001008: ISZERO 00001009: DUP2 0000100a: MSTORE 0000100b: RETURN 0000100c: JUMPDEST 0000100d: CALLVALUE 0000100e: PUSH2 0x0253 00001011: JUMPI 00001012: PUSH0 00001013: CALLDATASIZE 00001014: PUSH1 0x03 00001016: NOT 00001017: ADD 00001018: SLT 00001019: PUSH2 0x0253 0000101c: JUMPI 0000101d: PUSH2 0x1031 00001020: PUSH1 0x01 00001022: DUP1 00001023: PUSH1 0xa0 00001025: SHL 00001026: SUB 00001027: PUSH1 0x33 00001029: SLOAD 0000102a: AND 0000102b: CALLER 0000102c: EQ 0000102d: PUSH2 0x1a71 00001030: JUMP 00001031: JUMPDEST 00001032: PUSH1 0x33 00001034: DUP1 00001035: SLOAD 00001036: PUSH1 0x01 00001038: PUSH1 0x01 0000103a: PUSH1 0xa0 0000103c: SHL 0000103d: SUB 0000103e: NOT 0000103f: DUP2 00001040: AND 00001041: SWAP1 00001042: SWAP2 00001043: SSTORE 00001044: PUSH0 00001045: SWAP1 00001046: PUSH1 0x01 00001048: PUSH1 0x01 0000104a: PUSH1 0xa0 0000104c: SHL 0000104d: SUB 0000104e: AND 0000104f: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001070: DUP3 00001071: DUP1 00001072: LOG3 00001073: STOP 00001074: JUMPDEST 00001075: CALLVALUE 00001076: PUSH2 0x0253 00001079: JUMPI 0000107a: PUSH1 0x20 0000107c: CALLDATASIZE 0000107d: PUSH1 0x03 0000107f: NOT 00001080: ADD 00001081: SLT 00001082: PUSH2 0x0253 00001085: JUMPI 00001086: PUSH1 0x04 00001088: CALLDATALOAD 00001089: PUSH2 0x1091 0000108c: DUP2 0000108d: PUSH2 0x0676 00001090: JUMP 00001091: JUMPDEST 00001092: PUSH4 0xffffffff 00001097: PUSH1 0xe0 00001099: SHL 0000109a: AND 0000109b: PUSH0 0000109c: MSTORE 0000109d: PUSH1 0xa0 0000109f: PUSH1 0x20 000010a1: MSTORE 000010a2: PUSH1 0x20 000010a4: PUSH1 0x01 000010a6: DUP1 000010a7: PUSH1 0xa0 000010a9: SHL 000010aa: SUB 000010ab: PUSH1 0x40 000010ad: PUSH0 000010ae: KECCAK256 000010af: SLOAD 000010b0: AND 000010b1: PUSH1 0x40 000010b3: MLOAD 000010b4: SWAP1 000010b5: DUP2 000010b6: MSTORE 000010b7: RETURN 000010b8: JUMPDEST 000010b9: PUSH1 0x20 000010bb: PUSH1 0x03 000010bd: NOT 000010be: DUP3 000010bf: ADD 000010c0: SLT 000010c1: PUSH2 0x0253 000010c4: JUMPI 000010c5: PUSH1 0x04 000010c7: CALLDATALOAD 000010c8: SWAP1 000010c9: PUSH1 0x01 000010cb: PUSH1 0x01 000010cd: PUSH1 0x40 000010cf: SHL 000010d0: SUB 000010d1: DUP3 000010d2: GT 000010d3: PUSH2 0x0253 000010d6: JUMPI 000010d7: PUSH2 0x077b 000010da: SWAP2 000010db: PUSH1 0x04 000010dd: ADD 000010de: PUSH2 0x0688 000010e1: JUMP 000010e2: JUMPDEST 000010e3: CALLVALUE 000010e4: PUSH2 0x0253 000010e7: JUMPI 000010e8: PUSH2 0x10f0 000010eb: CALLDATASIZE 000010ec: PUSH2 0x10b8 000010ef: JUMP 000010f0: JUMPDEST 000010f1: PUSH2 0x1105 000010f4: PUSH1 0x01 000010f6: DUP1 000010f7: PUSH1 0xa0 000010f9: SHL 000010fa: SUB 000010fb: PUSH1 0x33 000010fd: SLOAD 000010fe: AND 000010ff: CALLER 00001100: EQ 00001101: PUSH2 0x1a71 00001104: JUMP 00001105: JUMPDEST 00001106: PUSH0 00001107: JUMPDEST 00001108: DUP2 00001109: MLOAD 0000110a: DUP2 0000110b: LT 0000110c: ISZERO 0000110d: PUSH2 0x001c 00001110: JUMPI 00001111: PUSH1 0x01 00001113: SWAP1 00001114: PUSH2 0x112f 00001117: PUSH1 0x01 00001119: PUSH1 0x01 0000111b: PUSH1 0xa0 0000111d: SHL 0000111e: SUB 0000111f: PUSH2 0x1128 00001122: DUP4 00001123: DUP7 00001124: PUSH2 0x1ba5 00001127: JUMP 00001128: JUMPDEST 00001129: MLOAD 0000112a: AND 0000112b: PUSH2 0x2b8c 0000112e: JUMP 0000112f: JUMPDEST 00001130: PUSH2 0x113a 00001133: JUMPI 00001134: JUMPDEST 00001135: ADD 00001136: PUSH2 0x1107 00001139: JUMP 0000113a: JUMPDEST 0000113b: PUSH32 0xa30b4a30819461802ef73f5bd8d14569b88b857d9d64f0c5bbb33ea910ebe689 0000115c: PUSH1 0x40 0000115e: DUP4 0000115f: DUP1 00001160: PUSH1 0xa0 00001162: SHL 00001163: SUB 00001164: PUSH2 0x116d 00001167: DUP5 00001168: DUP8 00001169: PUSH2 0x1ba5 0000116c: JUMP 0000116d: JUMPDEST 0000116e: MLOAD 0000116f: AND 00001170: DUP2 00001171: MLOAD 00001172: SWAP1 00001173: DUP2 00001174: MSTORE 00001175: PUSH0 00001176: PUSH1 0x20 00001178: DUP3 00001179: ADD 0000117a: MSTORE 0000117b: LOG1 0000117c: PUSH2 0x1134 0000117f: JUMP 00001180: JUMPDEST 00001181: PUSH2 0x1189 00001184: CALLDATASIZE 00001185: PUSH2 0x08a5 00001188: JUMP 00001189: JUMPDEST 0000118a: SWAP1 0000118b: PUSH2 0x11a2 0000118e: PUSH2 0x0915 00001191: CALLER 00001192: PUSH0 00001193: MSTORE 00001194: PUSH1 0x9c 00001196: PUSH1 0x20 00001198: MSTORE 00001199: PUSH1 0x40 0000119b: PUSH0 0000119c: KECCAK256 0000119d: SLOAD 0000119e: ISZERO 0000119f: ISZERO 000011a0: SWAP1 000011a1: JUMP 000011a2: JUMPDEST 000011a3: PUSH2 0x1285 000011a6: PUSH2 0x0a40 000011a9: PUSH1 0x20 000011ab: DUP6 000011ac: ADD 000011ad: SWAP4 000011ae: PUSH2 0x11b9 000011b1: PUSH2 0x0931 000011b4: DUP7 000011b5: PUSH2 0x1bfc 000011b8: JUMP 000011b9: JUMPDEST 000011ba: PUSH2 0x11ce 000011bd: CALLER 000011be: PUSH1 0x01 000011c0: PUSH1 0x01 000011c2: PUSH1 0xa0 000011c4: SHL 000011c5: SUB 000011c6: PUSH2 0x0958 000011c9: DUP10 000011ca: PUSH2 0x1c50 000011cd: JUMP 000011ce: JUMPDEST 000011cf: PUSH2 0x0a3a 000011d2: PUSH1 0x60 000011d4: DUP8 000011d5: ADD 000011d6: SWAP5 000011d7: PUSH2 0x0a32 000011da: PUSH2 0x11fd 000011dd: PUSH2 0x098e 000011e0: PUSH2 0x11e9 000011e3: DUP10 000011e4: DUP13 000011e5: PUSH2 0x1c99 000011e8: JUMP 000011e9: JUMPDEST 000011ea: PUSH1 0x40 000011ec: SWAP4 000011ed: SWAP2 000011ee: SWAP4 000011ef: MLOAD 000011f0: SWAP3 000011f1: DUP4 000011f2: SWAP2 000011f3: PUSH1 0x20 000011f5: DUP4 000011f6: ADD 000011f7: SWAP6 000011f8: DUP7 000011f9: PUSH2 0x207d 000011fc: JUMP 000011fd: JUMPDEST 000011fe: MLOAD 000011ff: SWAP1 00001200: KECCAK256 00001201: SWAP8 00001202: PUSH2 0x120d 00001205: PUSH2 0x09ac 00001208: DUP12 00001209: PUSH2 0x1c50 0000120c: JUMP 0000120d: JUMPDEST 0000120e: SWAP9 0000120f: PUSH2 0x0a2a 00001212: PUSH1 0x40 00001214: DUP13 00001215: ADD 00001216: SWAP11 00001217: PUSH2 0x098e 0000121a: PUSH2 0x1222 0000121d: DUP14 0000121e: PUSH2 0x1bfc 00001221: JUMP 00001222: JUMPDEST 00001223: SWAP4 00001224: PUSH1 0x40 00001226: MLOAD 00001227: SWAP5 00001228: DUP6 00001229: SWAP4 0000122a: PUSH1 0x20 0000122c: DUP6 0000122d: ADD 0000122e: SWAP8 0000122f: DUP9 00001230: SWAP1 00001231: SWAP5 00001232: SWAP4 00001233: SWAP3 00001234: PUSH1 0x01 00001236: PUSH1 0x01 00001238: PUSH1 0x80 0000123a: SHL 0000123b: SUB 0000123c: SWAP1 0000123d: DUP2 0000123e: PUSH1 0x80 00001240: SWAP5 00001241: PUSH1 0xa0 00001243: DUP6 00001244: ADD 00001245: SWAP9 00001246: PUSH32 0x0ee0e02696fd63599be55592245d9b2ac8d74503d0669f8ca4cea2984abaadcc 00001267: DUP7 00001268: MSTORE 00001269: PUSH1 0x01 0000126b: DUP1 0000126c: PUSH1 0xa0 0000126e: SHL 0000126f: SUB 00001270: AND 00001271: PUSH1 0x20 00001273: DUP7 00001274: ADD 00001275: MSTORE 00001276: AND 00001277: PUSH1 0x40 00001279: DUP5 0000127a: ADD 0000127b: MSTORE 0000127c: AND 0000127d: PUSH1 0x60 0000127f: DUP3 00001280: ADD 00001281: MSTORE 00001282: ADD 00001283: MSTORE 00001284: JUMP 00001285: JUMPDEST 00001286: PUSH0 00001287: JUMPDEST 00001288: PUSH2 0x1291 0000128b: DUP3 0000128c: DUP6 0000128d: PUSH2 0x1c99 00001290: JUMP 00001291: JUMPDEST 00001292: SWAP1 00001293: POP 00001294: DUP2 00001295: LT 00001296: ISZERO 00001297: PUSH2 0x0b91 0000129a: JUMPI 0000129b: DUP1 0000129c: PUSH2 0x12b7 0000129f: PUSH2 0x0a51 000012a2: PUSH2 0x0aa0 000012a5: PUSH1 0x01 000012a7: SWAP5 000012a8: PUSH2 0x12b1 000012ab: DUP8 000012ac: DUP11 000012ad: PUSH2 0x1c99 000012b0: JUMP 000012b1: JUMPDEST 000012b2: SWAP1 000012b3: PUSH2 0x2125 000012b6: JUMP 000012b7: JUMPDEST 000012b8: PUSH2 0x130b 000012bb: JUMPI 000012bc: PUSH2 0x1305 000012bf: PUSH2 0x12e2 000012c2: PUSH2 0x0aed 000012c5: PUSH2 0x0ad6 000012c8: PUSH2 0x0ad0 000012cb: PUSH2 0x12d8 000012ce: DUP7 000012cf: PUSH2 0x12b1 000012d2: DUP11 000012d3: DUP14 000012d4: PUSH2 0x1c99 000012d7: JUMP 000012d8: JUMPDEST 000012d9: PUSH1 0x40 000012db: DUP2 000012dc: ADD 000012dd: SWAP1 000012de: PUSH2 0x1e6a 000012e1: JUMP 000012e2: JUMPDEST 000012e3: PUSH2 0x12f4 000012e6: DUP5 000012e7: DUP1 000012e8: PUSH1 0xa0 000012ea: SHL 000012eb: SUB 000012ec: DUP3 000012ed: AND 000012ee: ISZERO 000012ef: ISZERO 000012f0: PUSH2 0x1ed2 000012f3: JUMP 000012f4: JUMPDEST 000012f5: PUSH2 0x0b1d 000012f8: PUSH2 0x12d8 000012fb: DUP5 000012fc: PUSH2 0x12b1 000012ff: DUP9 00001300: DUP12 00001301: PUSH2 0x1c99 00001304: JUMP 00001305: JUMPDEST 00001306: ADD 00001307: PUSH2 0x1287 0000130a: JUMP 0000130b: JUMPDEST 0000130c: PUSH2 0x1322 0000130f: PUSH2 0x0b5c 00001312: PUSH2 0x0b40 00001315: PUSH2 0x0aa0 00001318: DUP5 00001319: PUSH2 0x12b1 0000131c: DUP9 0000131d: DUP12 0000131e: PUSH2 0x1c99 00001321: JUMP 00001322: JUMPDEST 00001323: PUSH2 0x1362 00001326: PUSH2 0x1336 00001329: PUSH2 0x0aa0 0000132c: DUP4 0000132d: PUSH2 0x12b1 00001330: DUP8 00001331: DUP11 00001332: PUSH2 0x1c99 00001335: JUMP 00001336: JUMPDEST 00001337: PUSH1 0x20 00001339: PUSH2 0x1346 0000133c: DUP5 0000133d: PUSH2 0x12b1 00001340: DUP9 00001341: DUP12 00001342: PUSH2 0x1c99 00001345: JUMP 00001346: JUMPDEST 00001347: ADD 00001348: CALLDATALOAD 00001349: SWAP1 0000134a: PUSH2 0x135a 0000134d: PUSH2 0x12d8 00001350: DUP6 00001351: PUSH2 0x12b1 00001354: DUP10 00001355: DUP13 00001356: PUSH2 0x1c99 00001359: JUMP 0000135a: JUMPDEST 0000135b: SWAP3 0000135c: SWAP1 0000135d: SWAP2 0000135e: PUSH2 0x24b2 00001361: JUMP 00001362: JUMPDEST 00001363: PUSH2 0x1305 00001366: JUMP 00001367: JUMPDEST 00001368: CALLVALUE 00001369: PUSH2 0x0253 0000136c: JUMPI 0000136d: PUSH0 0000136e: CALLDATASIZE 0000136f: PUSH1 0x03 00001371: NOT 00001372: ADD 00001373: SLT 00001374: PUSH2 0x0253 00001377: JUMPI 00001378: PUSH1 0x33 0000137a: SLOAD 0000137b: PUSH1 0x40 0000137d: MLOAD 0000137e: PUSH1 0x01 00001380: PUSH1 0x01 00001382: PUSH1 0xa0 00001384: SHL 00001385: SUB 00001386: SWAP1 00001387: SWAP2 00001388: AND 00001389: DUP2 0000138a: MSTORE 0000138b: PUSH1 0x20 0000138d: SWAP1 0000138e: RETURN 0000138f: JUMPDEST 00001390: CALLVALUE 00001391: PUSH2 0x0253 00001394: JUMPI 00001395: PUSH1 0x40 00001397: CALLDATASIZE 00001398: PUSH1 0x03 0000139a: NOT 0000139b: ADD 0000139c: SLT 0000139d: PUSH2 0x0253 000013a0: JUMPI 000013a1: PUSH2 0x001c 000013a4: PUSH1 0x04 000013a6: CALLDATALOAD 000013a7: PUSH2 0x13af 000013aa: DUP2 000013ab: PUSH2 0x0242 000013ae: JUMP 000013af: JUMPDEST 000013b0: PUSH1 0x33 000013b2: SLOAD 000013b3: PUSH1 0x24 000013b5: CALLDATALOAD 000013b6: SWAP2 000013b7: PUSH1 0x01 000013b9: PUSH1 0x01 000013bb: PUSH1 0xa0 000013bd: SHL 000013be: SUB 000013bf: SWAP1 000013c0: SWAP2 000013c1: AND 000013c2: SWAP1 000013c3: PUSH2 0x13cd 000013c6: CALLER 000013c7: DUP4 000013c8: EQ 000013c9: PUSH2 0x1a71 000013cc: JUMP 000013cd: JUMPDEST 000013ce: PUSH2 0x2553 000013d1: JUMP 000013d2: JUMPDEST 000013d3: CALLVALUE 000013d4: PUSH2 0x0253 000013d7: JUMPI 000013d8: PUSH0 000013d9: CALLDATASIZE 000013da: PUSH1 0x03 000013dc: NOT 000013dd: ADD 000013de: SLT 000013df: PUSH2 0x0253 000013e2: JUMPI 000013e3: PUSH1 0x40 000013e5: MLOAD 000013e6: DUP1 000013e7: PUSH1 0x20 000013e9: PUSH1 0x9b 000013eb: SLOAD 000013ec: SWAP2 000013ed: DUP3 000013ee: DUP2 000013ef: MSTORE 000013f0: ADD 000013f1: SWAP1 000013f2: PUSH1 0x9b 000013f4: PUSH0 000013f5: MSTORE 000013f6: PUSH32 0xbba9db4cdbea0a37c207bbb83e20f828cd4441c49891101dc94fd20dc8efc349 00001417: SWAP1 00001418: PUSH0 00001419: JUMPDEST 0000141a: DUP2 0000141b: DUP2 0000141c: LT 0000141d: PUSH2 0x1430 00001420: JUMPI 00001421: PUSH2 0x0384 00001424: DUP6 00001425: PUSH2 0x0378 00001428: DUP2 00001429: DUP8 0000142a: SUB 0000142b: DUP3 0000142c: PUSH2 0x03b2 0000142f: JUMP 00001430: JUMPDEST 00001431: DUP3 00001432: SLOAD 00001433: DUP5 00001434: MSTORE 00001435: PUSH1 0x20 00001437: SWAP1 00001438: SWAP4 00001439: ADD 0000143a: SWAP3 0000143b: PUSH1 0x01 0000143d: SWAP3 0000143e: DUP4 0000143f: ADD 00001440: SWAP3 00001441: ADD 00001442: PUSH2 0x1419 00001445: JUMP 00001446: JUMPDEST 00001447: CALLVALUE 00001448: PUSH2 0x0253 0000144b: JUMPI 0000144c: PUSH2 0x1454 0000144f: CALLDATASIZE 00001450: PUSH2 0x10b8 00001453: JUMP 00001454: JUMPDEST 00001455: PUSH2 0x1469 00001458: PUSH1 0x01 0000145a: DUP1 0000145b: PUSH1 0xa0 0000145d: SHL 0000145e: SUB 0000145f: PUSH1 0x33 00001461: SLOAD 00001462: AND 00001463: CALLER 00001464: EQ 00001465: PUSH2 0x1a71 00001468: JUMP 00001469: JUMPDEST 0000146a: PUSH0 0000146b: JUMPDEST 0000146c: DUP2 0000146d: MLOAD 0000146e: DUP2 0000146f: LT 00001470: ISZERO 00001471: PUSH2 0x001c 00001474: JUMPI 00001475: PUSH1 0x01 00001477: SWAP1 00001478: PUSH2 0x1493 0000147b: PUSH1 0x01 0000147d: PUSH1 0x01 0000147f: PUSH1 0xa0 00001481: SHL 00001482: SUB 00001483: PUSH2 0x148c 00001486: DUP4 00001487: DUP7 00001488: PUSH2 0x1ba5 0000148b: JUMP 0000148c: JUMPDEST 0000148d: MLOAD 0000148e: AND 0000148f: PUSH2 0x26e5 00001492: JUMP 00001493: JUMPDEST 00001494: PUSH2 0x149e 00001497: JUMPI 00001498: JUMPDEST 00001499: ADD 0000149a: PUSH2 0x146b 0000149d: JUMP 0000149e: JUMPDEST 0000149f: PUSH32 0x6df0471095ad1292c74e0f3615a3b6927ee7b5b7e925423a38cb8c23625ca07d 000014c0: PUSH1 0x40 000014c2: DUP4 000014c3: DUP1 000014c4: PUSH1 0xa0 000014c6: SHL 000014c7: SUB 000014c8: PUSH2 0x14d1 000014cb: DUP5 000014cc: DUP8 000014cd: PUSH2 0x1ba5 000014d0: JUMP 000014d1: JUMPDEST 000014d2: MLOAD 000014d3: AND 000014d4: DUP2 000014d5: MLOAD 000014d6: SWAP1 000014d7: DUP2 000014d8: MSTORE 000014d9: DUP5 000014da: PUSH1 0x20 000014dc: DUP3 000014dd: ADD 000014de: MSTORE 000014df: LOG1 000014e0: PUSH2 0x1498 000014e3: JUMP 000014e4: JUMPDEST 000014e5: PUSH1 0x20 000014e7: PUSH1 0x03 000014e9: NOT 000014ea: DUP3 000014eb: ADD 000014ec: SLT 000014ed: PUSH2 0x0253 000014f0: JUMPI 000014f1: PUSH1 0x04 000014f3: CALLDATALOAD 000014f4: SWAP1 000014f5: PUSH1 0x01 000014f7: PUSH1 0x01 000014f9: PUSH1 0x40 000014fb: SHL 000014fc: SUB 000014fd: DUP3 000014fe: GT 000014ff: PUSH2 0x0253 00001502: JUMPI 00001503: PUSH2 0x08ef 00001506: SWAP2 00001507: PUSH1 0x04 00001509: ADD 0000150a: PUSH2 0x04c1 0000150d: JUMP 0000150e: JUMPDEST 0000150f: CALLVALUE 00001510: PUSH2 0x0253 00001513: JUMPI 00001514: PUSH2 0x151c 00001517: CALLDATASIZE 00001518: PUSH2 0x14e4 0000151b: JUMP 0000151c: JUMPDEST 0000151d: PUSH2 0x1531 00001520: PUSH1 0x01 00001522: DUP1 00001523: PUSH1 0xa0 00001525: SHL 00001526: SUB 00001527: PUSH1 0x33 00001529: SLOAD 0000152a: AND 0000152b: CALLER 0000152c: EQ 0000152d: PUSH2 0x1a71 00001530: JUMP 00001531: JUMPDEST 00001532: PUSH0 00001533: JUMPDEST 00001534: DUP2 00001535: DUP2 00001536: LT 00001537: PUSH2 0x1571 0000153a: JUMPI 0000153b: POP 0000153c: PUSH32 0x4c022f03c292dfa42133bfa9f90bbf55089da679c2df97df205f337c12ab7b7c 0000155d: SWAP2 0000155e: PUSH2 0x156c 00001561: PUSH1 0x40 00001563: MLOAD 00001564: SWAP3 00001565: DUP4 00001566: SWAP3 00001567: DUP4 00001568: PUSH2 0x2147 0000156b: JUMP 0000156c: JUMPDEST 0000156d: SUB 0000156e: SWAP1 0000156f: LOG1 00001570: STOP 00001571: JUMPDEST 00001572: DUP1 00001573: PUSH2 0x1598 00001576: PUSH2 0x1582 00001579: PUSH1 0x01 0000157b: SWAP4 0000157c: DUP6 0000157d: DUP8 0000157e: PUSH2 0x1b44 00001581: JUMP 00001582: JUMPDEST 00001583: CALLDATALOAD 00001584: PUSH2 0x158c 00001587: DUP2 00001588: PUSH2 0x0242 0000158b: JUMP 0000158c: JUMPDEST 0000158d: DUP4 0000158e: DUP1 0000158f: PUSH1 0xa0 00001591: SHL 00001592: SUB 00001593: AND 00001594: PUSH2 0x2733 00001597: JUMP 00001598: JUMPDEST 00001599: POP 0000159a: ADD 0000159b: PUSH2 0x1533 0000159e: JUMP 0000159f: JUMPDEST 000015a0: CALLVALUE 000015a1: PUSH2 0x0253 000015a4: JUMPI 000015a5: PUSH2 0x15ad 000015a8: CALLDATASIZE 000015a9: PUSH2 0x10b8 000015ac: JUMP 000015ad: JUMPDEST 000015ae: PUSH2 0x15c2 000015b1: PUSH1 0x01 000015b3: DUP1 000015b4: PUSH1 0xa0 000015b6: SHL 000015b7: SUB 000015b8: PUSH1 0x33 000015ba: SLOAD 000015bb: AND 000015bc: CALLER 000015bd: EQ 000015be: PUSH2 0x1a71 000015c1: JUMP 000015c2: JUMPDEST 000015c3: PUSH0 000015c4: JUMPDEST 000015c5: DUP2 000015c6: MLOAD 000015c7: DUP2 000015c8: LT 000015c9: ISZERO 000015ca: PUSH2 0x001c 000015cd: JUMPI 000015ce: PUSH1 0x01 000015d0: SWAP1 000015d1: PUSH2 0x15ec 000015d4: PUSH1 0x01 000015d6: PUSH1 0x01 000015d8: PUSH1 0xa0 000015da: SHL 000015db: SUB 000015dc: PUSH2 0x15e5 000015df: DUP4 000015e0: DUP7 000015e1: PUSH2 0x1ba5 000015e4: JUMP 000015e5: JUMPDEST 000015e6: MLOAD 000015e7: AND 000015e8: PUSH2 0x2781 000015eb: JUMP 000015ec: JUMPDEST 000015ed: PUSH2 0x15f7 000015f0: JUMPI 000015f1: JUMPDEST 000015f2: ADD 000015f3: PUSH2 0x15c4 000015f6: JUMP 000015f7: JUMPDEST 000015f8: PUSH32 0xa30b4a30819461802ef73f5bd8d14569b88b857d9d64f0c5bbb33ea910ebe689 00001619: PUSH1 0x40 0000161b: DUP4 0000161c: DUP1 0000161d: PUSH1 0xa0 0000161f: SHL 00001620: SUB 00001621: PUSH2 0x162a 00001624: DUP5 00001625: DUP8 00001626: PUSH2 0x1ba5 00001629: JUMP 0000162a: JUMPDEST 0000162b: MLOAD 0000162c: AND 0000162d: DUP2 0000162e: MLOAD 0000162f: SWAP1 00001630: DUP2 00001631: MSTORE 00001632: DUP5 00001633: PUSH1 0x20 00001635: DUP3 00001636: ADD 00001637: MSTORE 00001638: LOG1 00001639: PUSH2 0x15f1 0000163c: JUMP 0000163d: JUMPDEST 0000163e: PUSH1 0x40 00001640: CALLDATASIZE 00001641: PUSH1 0x03 00001643: NOT 00001644: ADD 00001645: SLT 00001646: PUSH2 0x0253 00001649: JUMPI 0000164a: PUSH1 0x04 0000164c: CALLDATALOAD 0000164d: PUSH2 0x1655 00001650: DUP2 00001651: PUSH2 0x0242 00001654: JUMP 00001655: JUMPDEST 00001656: PUSH1 0x24 00001658: CALLDATALOAD 00001659: SWAP1 0000165a: PUSH1 0x01 0000165c: PUSH1 0x01 0000165e: PUSH1 0x40 00001660: SHL 00001661: SUB 00001662: DUP3 00001663: GT 00001664: PUSH2 0x0253 00001667: JUMPI 00001668: PUSH2 0x1678 0000166b: PUSH2 0x001c 0000166e: SWAP3 0000166f: CALLDATASIZE 00001670: SWAP1 00001671: PUSH1 0x04 00001673: ADD 00001674: PUSH2 0x0878 00001677: JUMP 00001678: JUMPDEST 00001679: SWAP2 0000167a: PUSH2 0x168e 0000167d: PUSH1 0x01 0000167f: DUP1 00001680: PUSH1 0xa0 00001682: SHL 00001683: SUB 00001684: PUSH1 0x33 00001686: SLOAD 00001687: AND 00001688: CALLER 00001689: EQ 0000168a: PUSH2 0x1a71 0000168d: JUMP 0000168e: JUMPDEST 0000168f: CALLVALUE 00001690: SWAP1 00001691: PUSH2 0x24b2 00001694: JUMP 00001695: JUMPDEST 00001696: CALLVALUE 00001697: PUSH2 0x0253 0000169a: JUMPI 0000169b: PUSH2 0x16a3 0000169e: CALLDATASIZE 0000169f: PUSH2 0x06ef 000016a2: JUMP 000016a3: JUMPDEST 000016a4: PUSH2 0x16b8 000016a7: PUSH1 0x01 000016a9: DUP1 000016aa: PUSH1 0xa0 000016ac: SHL 000016ad: SUB 000016ae: PUSH1 0x33 000016b0: SLOAD 000016b1: AND 000016b2: CALLER 000016b3: EQ 000016b4: PUSH2 0x1a71 000016b7: JUMP 000016b8: JUMPDEST 000016b9: PUSH2 0x16c5 000016bc: DUP3 000016bd: MLOAD 000016be: DUP3 000016bf: MLOAD 000016c0: EQ 000016c1: PUSH2 0x1b59 000016c4: JUMP 000016c5: JUMPDEST 000016c6: PUSH0 000016c7: JUMPDEST 000016c8: DUP3 000016c9: MLOAD 000016ca: DUP2 000016cb: LT 000016cc: ISZERO 000016cd: PUSH2 0x001c 000016d0: JUMPI 000016d1: PUSH1 0x01 000016d3: SWAP1 000016d4: PUSH2 0x172b 000016d7: PUSH1 0x01 000016d9: PUSH1 0x01 000016db: PUSH1 0xa0 000016dd: SHL 000016de: SUB 000016df: PUSH2 0x16e8 000016e2: DUP4 000016e3: DUP7 000016e4: PUSH2 0x1ba5 000016e7: JUMP 000016e8: JUMPDEST 000016e9: MLOAD 000016ea: AND 000016eb: PUSH1 0x01 000016ed: PUSH1 0x01 000016ef: PUSH1 0xe0 000016f1: SHL 000016f2: SUB 000016f3: NOT 000016f4: PUSH2 0x16fd 000016f7: DUP5 000016f8: DUP9 000016f9: PUSH2 0x1ba5 000016fc: JUMP 000016fd: JUMPDEST 000016fe: MLOAD 000016ff: AND 00001700: PUSH0 00001701: MSTORE 00001702: PUSH1 0xa0 00001704: PUSH1 0x20 00001706: MSTORE 00001707: PUSH1 0x40 00001709: PUSH0 0000170a: KECCAK256 0000170b: SWAP1 0000170c: PUSH1 0x01 0000170e: DUP1 0000170f: PUSH1 0xa0 00001711: SHL 00001712: SUB 00001713: AND 00001714: PUSH12 0xffffffffffffffffffffffff 00001721: PUSH1 0xa0 00001723: SHL 00001724: DUP3 00001725: SLOAD 00001726: AND 00001727: OR 00001728: SWAP1 00001729: SSTORE 0000172a: JUMP 0000172b: JUMPDEST 0000172c: ADD 0000172d: PUSH2 0x16c7 00001730: JUMP 00001731: JUMPDEST 00001732: CALLVALUE 00001733: PUSH2 0x0253 00001736: JUMPI 00001737: PUSH2 0x173f 0000173a: CALLDATASIZE 0000173b: PUSH2 0x10b8 0000173e: JUMP 0000173f: JUMPDEST 00001740: PUSH2 0x1754 00001743: PUSH1 0x01 00001745: DUP1 00001746: PUSH1 0xa0 00001748: SHL 00001749: SUB 0000174a: PUSH1 0x33 0000174c: SLOAD 0000174d: AND 0000174e: CALLER 0000174f: EQ 00001750: PUSH2 0x1a71 00001753: JUMP 00001754: JUMPDEST 00001755: PUSH0 00001756: JUMPDEST 00001757: DUP2 00001758: MLOAD 00001759: DUP2 0000175a: LT 0000175b: ISZERO 0000175c: PUSH2 0x001c 0000175f: JUMPI 00001760: PUSH1 0x01 00001762: SWAP1 00001763: PUSH2 0x177e 00001766: PUSH1 0x01 00001768: PUSH1 0x01 0000176a: PUSH1 0xa0 0000176c: SHL 0000176d: SUB 0000176e: PUSH2 0x1777 00001771: DUP4 00001772: DUP7 00001773: PUSH2 0x1ba5 00001776: JUMP 00001777: JUMPDEST 00001778: MLOAD 00001779: AND 0000177a: PUSH2 0x2c2a 0000177d: JUMP 0000177e: JUMPDEST 0000177f: PUSH2 0x1789 00001782: JUMPI 00001783: JUMPDEST 00001784: ADD 00001785: PUSH2 0x1756 00001788: JUMP 00001789: JUMPDEST 0000178a: PUSH32 0x6df0471095ad1292c74e0f3615a3b6927ee7b5b7e925423a38cb8c23625ca07d 000017ab: PUSH1 0x40 000017ad: DUP4 000017ae: DUP1 000017af: PUSH1 0xa0 000017b1: SHL 000017b2: SUB 000017b3: PUSH2 0x17bc 000017b6: DUP5 000017b7: DUP8 000017b8: PUSH2 0x1ba5 000017bb: JUMP 000017bc: JUMPDEST 000017bd: MLOAD 000017be: AND 000017bf: DUP2 000017c0: MLOAD 000017c1: SWAP1 000017c2: DUP2 000017c3: MSTORE 000017c4: PUSH0 000017c5: PUSH1 0x20 000017c7: DUP3 000017c8: ADD 000017c9: MSTORE 000017ca: LOG1 000017cb: PUSH2 0x1783 000017ce: JUMP 000017cf: JUMPDEST 000017d0: CALLVALUE 000017d1: PUSH2 0x0253 000017d4: JUMPI 000017d5: PUSH2 0x17dd 000017d8: CALLDATASIZE 000017d9: PUSH2 0x14e4 000017dc: JUMP 000017dd: JUMPDEST 000017de: PUSH2 0x17f2 000017e1: PUSH1 0x01 000017e3: DUP1 000017e4: PUSH1 0xa0 000017e6: SHL 000017e7: SUB 000017e8: PUSH1 0x33 000017ea: SLOAD 000017eb: AND 000017ec: CALLER 000017ed: EQ 000017ee: PUSH2 0x1a71 000017f1: JUMP 000017f2: JUMPDEST 000017f3: PUSH0 000017f4: JUMPDEST 000017f5: DUP2 000017f6: DUP2 000017f7: LT 000017f8: PUSH2 0x182d 000017fb: JUMPI 000017fc: POP 000017fd: PUSH32 0xd045926746dab8a5acf225487f413b986460165cf50f6052689a2e471198e059 0000181e: SWAP2 0000181f: PUSH2 0x156c 00001822: PUSH1 0x40 00001824: MLOAD 00001825: SWAP3 00001826: DUP4 00001827: SWAP3 00001828: DUP4 00001829: PUSH2 0x2147 0000182c: JUMP 0000182d: JUMPDEST 0000182e: DUP1 0000182f: PUSH2 0x1854 00001832: PUSH2 0x183e 00001835: PUSH1 0x01 00001837: SWAP4 00001838: DUP6 00001839: DUP8 0000183a: PUSH2 0x1b44 0000183d: JUMP 0000183e: JUMPDEST 0000183f: CALLDATALOAD 00001840: PUSH2 0x1848 00001843: DUP2 00001844: PUSH2 0x0242 00001847: JUMP 00001848: JUMPDEST 00001849: DUP4 0000184a: DUP1 0000184b: PUSH1 0xa0 0000184d: SHL 0000184e: SUB 0000184f: AND 00001850: PUSH2 0x2cac 00001853: JUMP 00001854: JUMPDEST 00001855: POP 00001856: ADD 00001857: PUSH2 0x17f4 0000185a: JUMP 0000185b: JUMPDEST 0000185c: CALLVALUE 0000185d: PUSH2 0x0253 00001860: JUMPI 00001861: PUSH0 00001862: CALLDATASIZE 00001863: PUSH1 0x03 00001865: NOT 00001866: ADD 00001867: SLT 00001868: PUSH2 0x0253 0000186b: JUMPI 0000186c: PUSH1 0x20 0000186e: PUSH1 0x40 00001870: MLOAD 00001871: PUSH0 00001872: NOT 00001873: DUP2 00001874: MSTORE 00001875: RETURN 00001876: JUMPDEST 00001877: CALLVALUE 00001878: PUSH2 0x0253 0000187b: JUMPI 0000187c: PUSH0 0000187d: CALLDATASIZE 0000187e: PUSH1 0x03 00001880: NOT 00001881: ADD 00001882: SLT 00001883: PUSH2 0x0253 00001886: JUMPI 00001887: PUSH1 0x65 00001889: SLOAD 0000188a: PUSH2 0x1892 0000188d: DUP2 0000188e: PUSH2 0x065f 00001891: JUMP 00001892: JUMPDEST 00001893: SWAP1 00001894: PUSH2 0x18a0 00001897: PUSH1 0x40 00001899: MLOAD 0000189a: SWAP3 0000189b: DUP4 0000189c: PUSH2 0x03b2 0000189f: JUMP 000018a0: JUMPDEST 000018a1: DUP1 000018a2: DUP3 000018a3: MSTORE 000018a4: PUSH2 0x18af 000018a7: PUSH1 0x1f 000018a9: NOT 000018aa: SWAP2 000018ab: PUSH2 0x065f 000018ae: JUMP 000018af: JUMPDEST 000018b0: ADD 000018b1: CALLDATASIZE 000018b2: PUSH1 0x20 000018b4: DUP4 000018b5: ADD 000018b6: CALLDATACOPY 000018b7: PUSH0 000018b8: JUMPDEST 000018b9: DUP2 000018ba: MLOAD 000018bb: DUP2 000018bc: LT 000018bd: ISZERO 000018be: PUSH2 0x18ec 000018c1: JUMPI 000018c2: DUP1 000018c3: PUSH2 0x18cd 000018c6: PUSH1 0x01 000018c8: SWAP3 000018c9: PUSH2 0x2632 000018cc: JUMP 000018cd: JUMPDEST 000018ce: DUP4 000018cf: DUP1 000018d0: PUSH1 0xa0 000018d2: SHL 000018d3: SUB 000018d4: SWAP2 000018d5: SLOAD 000018d6: SWAP1 000018d7: PUSH1 0x03 000018d9: SHL 000018da: SHR 000018db: AND 000018dc: PUSH2 0x18e5 000018df: DUP3 000018e0: DUP6 000018e1: PUSH2 0x1ba5 000018e4: JUMP 000018e5: JUMPDEST 000018e6: MSTORE 000018e7: ADD 000018e8: PUSH2 0x18b8 000018eb: JUMP 000018ec: JUMPDEST 000018ed: PUSH1 0x40 000018ef: MLOAD 000018f0: DUP1 000018f1: PUSH2 0x0384 000018f4: DUP5 000018f5: DUP3 000018f6: PUSH2 0x02d8 000018f9: JUMP 000018fa: JUMPDEST 000018fb: CALLVALUE 000018fc: PUSH2 0x0253 000018ff: JUMPI 00001900: PUSH1 0x20 00001902: CALLDATASIZE 00001903: PUSH1 0x03 00001905: NOT 00001906: ADD 00001907: SLT 00001908: PUSH2 0x0253 0000190b: JUMPI 0000190c: PUSH1 0x04 0000190e: CALLDATALOAD 0000190f: PUSH2 0x1917 00001912: DUP2 00001913: PUSH2 0x0242 00001916: JUMP 00001917: JUMPDEST 00001918: PUSH1 0x01 0000191a: DUP1 0000191b: PUSH1 0xa0 0000191d: SHL 0000191e: SUB 0000191f: AND 00001920: PUSH0 00001921: MSTORE 00001922: PUSH1 0xa2 00001924: PUSH1 0x20 00001926: MSTORE 00001927: PUSH1 0x20 00001929: PUSH1 0x40 0000192b: PUSH0 0000192c: KECCAK256 0000192d: SLOAD 0000192e: ISZERO 0000192f: ISZERO 00001930: PUSH1 0x40 00001932: MLOAD 00001933: SWAP1 00001934: DUP2 00001935: MSTORE 00001936: RETURN 00001937: JUMPDEST 00001938: CALLVALUE 00001939: PUSH2 0x0253 0000193c: JUMPI 0000193d: PUSH0 0000193e: CALLDATASIZE 0000193f: PUSH1 0x03 00001941: NOT 00001942: ADD 00001943: SLT 00001944: PUSH2 0x0253 00001947: JUMPI 00001948: PUSH1 0x20 0000194a: PUSH1 0x65 0000194c: SLOAD 0000194d: PUSH1 0x40 0000194f: MLOAD 00001950: SWAP1 00001951: DUP2 00001952: MSTORE 00001953: RETURN 00001954: JUMPDEST 00001955: CALLVALUE 00001956: PUSH2 0x0253 00001959: JUMPI 0000195a: PUSH0 0000195b: PUSH1 0x20 0000195d: CALLDATASIZE 0000195e: PUSH1 0x03 00001960: NOT 00001961: ADD 00001962: SLT 00001963: PUSH2 0x0253 00001966: JUMPI 00001967: PUSH1 0x04 00001969: CALLDATALOAD 0000196a: PUSH2 0x1981 0000196d: PUSH2 0x0e64 00001970: CALLER 00001971: PUSH0 00001972: MSTORE 00001973: PUSH1 0x66 00001975: PUSH1 0x20 00001977: MSTORE 00001978: PUSH1 0x40 0000197a: PUSH0 0000197b: KECCAK256 0000197c: SLOAD 0000197d: ISZERO 0000197e: ISZERO 0000197f: SWAP1 00001980: JUMP 00001981: JUMPDEST 00001982: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000019a3: PUSH1 0x01 000019a5: PUSH1 0x01 000019a7: PUSH1 0xa0 000019a9: SHL 000019aa: SUB 000019ab: AND 000019ac: DUP1 000019ad: EXTCODESIZE 000019ae: ISZERO 000019af: PUSH2 0x0253 000019b2: JUMPI 000019b3: PUSH0 000019b4: SWAP1 000019b5: PUSH1 0x04 000019b7: PUSH1 0x40 000019b9: MLOAD 000019ba: DUP1 000019bb: SWAP5 000019bc: DUP2 000019bd: SWAP4 000019be: PUSH4 0x0d0e30db 000019c3: PUSH1 0xe4 000019c5: SHL 000019c6: DUP4 000019c7: MSTORE 000019c8: GAS 000019c9: CALL 000019ca: DUP1 000019cb: ISZERO 000019cc: PUSH2 0x065a 000019cf: JUMPI 000019d0: PUSH2 0x19d7 000019d3: JUMPI 000019d4: POP 000019d5: DUP1 000019d6: RETURN 000019d7: JUMPDEST 000019d8: PUSH2 0x001c 000019db: SWAP2 000019dc: POP 000019dd: PUSH0 000019de: SWAP1 000019df: PUSH2 0x03b2 000019e2: JUMP 000019e3: JUMPDEST 000019e4: CALLVALUE 000019e5: PUSH2 0x0253 000019e8: JUMPI 000019e9: PUSH1 0x20 000019eb: CALLDATASIZE 000019ec: PUSH1 0x03 000019ee: NOT 000019ef: ADD 000019f0: SLT 000019f1: PUSH2 0x0253 000019f4: JUMPI 000019f5: PUSH1 0x04 000019f7: CALLDATALOAD 000019f8: PUSH2 0x1a00 000019fb: DUP2 000019fc: PUSH2 0x0242 000019ff: JUMP 00001a00: JUMPDEST 00001a01: PUSH2 0x1a15 00001a04: PUSH1 0x01 00001a06: DUP1 00001a07: PUSH1 0xa0 00001a09: SHL 00001a0a: SUB 00001a0b: PUSH1 0x33 00001a0d: SLOAD 00001a0e: AND 00001a0f: CALLER 00001a10: EQ 00001a11: PUSH2 0x1a71 00001a14: JUMP 00001a15: JUMPDEST 00001a16: PUSH1 0x01 00001a18: PUSH1 0x01 00001a1a: PUSH1 0xa0 00001a1c: SHL 00001a1d: SUB 00001a1e: DUP2 00001a1f: AND 00001a20: ISZERO 00001a21: PUSH2 0x0cab 00001a24: JUMPI 00001a25: PUSH2 0x001c 00001a28: SWAP1 00001a29: PUSH2 0x25ea 00001a2c: JUMP 00001a2d: JUMPDEST 00001a2e: CALLVALUE 00001a2f: PUSH2 0x0253 00001a32: JUMPI 00001a33: PUSH1 0x20 00001a35: CALLDATASIZE 00001a36: PUSH1 0x03 00001a38: NOT 00001a39: ADD 00001a3a: SLT 00001a3b: PUSH2 0x0253 00001a3e: JUMPI 00001a3f: PUSH1 0x04 00001a41: CALLDATALOAD 00001a42: PUSH2 0x1a4a 00001a45: DUP2 00001a46: PUSH2 0x0676 00001a49: JUMP 00001a4a: JUMPDEST 00001a4b: PUSH4 0xffffffff 00001a50: PUSH1 0xe0 00001a52: SHL 00001a53: AND 00001a54: PUSH0 00001a55: MSTORE 00001a56: PUSH1 0x9f 00001a58: PUSH1 0x20 00001a5a: MSTORE 00001a5b: PUSH1 0x20 00001a5d: PUSH1 0x01 00001a5f: DUP1 00001a60: PUSH1 0xa0 00001a62: SHL 00001a63: SUB 00001a64: PUSH1 0x40 00001a66: PUSH0 00001a67: KECCAK256 00001a68: SLOAD 00001a69: AND 00001a6a: PUSH1 0x40 00001a6c: MLOAD 00001a6d: SWAP1 00001a6e: DUP2 00001a6f: MSTORE 00001a70: RETURN 00001a71: JUMPDEST 00001a72: ISZERO 00001a73: PUSH2 0x1a78 00001a76: JUMPI 00001a77: JUMP 00001a78: JUMPDEST 00001a79: PUSH1 0x64 00001a7b: PUSH1 0x40 00001a7d: MLOAD 00001a7e: PUSH3 0x461bcd 00001a82: PUSH1 0xe5 00001a84: SHL 00001a85: DUP2 00001a86: MSTORE 00001a87: PUSH1 0x20 00001a89: PUSH1 0x04 00001a8b: DUP3 00001a8c: ADD 00001a8d: MSTORE 00001a8e: PUSH1 0x20 00001a90: PUSH1 0x24 00001a92: DUP3 00001a93: ADD 00001a94: MSTORE 00001a95: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00001ab6: PUSH1 0x44 00001ab8: DUP3 00001ab9: ADD 00001aba: MSTORE 00001abb: REVERT 00001abc: JUMPDEST 00001abd: SWAP1 00001abe: PUSH2 0x1b15 00001ac1: SWAP2 00001ac2: PUSH1 0x01 00001ac4: DUP1 00001ac5: PUSH1 0xa0 00001ac7: SHL 00001ac8: SUB 00001ac9: PUSH1 0x9a 00001acb: SLOAD 00001acc: AND 00001acd: SWAP1 00001ace: PUSH1 0x40 00001ad0: MLOAD 00001ad1: PUSH1 0x20 00001ad3: DUP2 00001ad4: ADD 00001ad5: SWAP2 00001ad6: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00001af7: DUP4 00001af8: MSTORE 00001af9: PUSH1 0x3c 00001afb: DUP3 00001afc: ADD 00001afd: MSTORE 00001afe: PUSH1 0x3c 00001b00: DUP2 00001b01: MSTORE 00001b02: PUSH2 0x1b0c 00001b05: PUSH1 0x5c 00001b07: DUP3 00001b08: PUSH2 0x03b2 00001b0b: JUMP 00001b0c: JUMPDEST 00001b0d: MLOAD 00001b0e: SWAP1 00001b0f: KECCAK256 00001b10: SWAP1 00001b11: PUSH2 0x229c 00001b14: JUMP 00001b15: JUMPDEST 00001b16: PUSH2 0x1b25 00001b19: JUMPI 00001b1a: PUSH1 0x01 00001b1c: PUSH1 0x01 00001b1e: PUSH1 0xe0 00001b20: SHL 00001b21: SUB 00001b22: NOT 00001b23: SWAP1 00001b24: JUMP 00001b25: JUMPDEST 00001b26: PUSH4 0x0b135d3f 00001b2b: PUSH1 0xe1 00001b2d: SHL 00001b2e: SWAP1 00001b2f: JUMP 00001b30: JUMPDEST 00001b31: PUSH4 0x4e487b71 00001b36: PUSH1 0xe0 00001b38: SHL 00001b39: PUSH0 00001b3a: MSTORE 00001b3b: PUSH1 0x32 00001b3d: PUSH1 0x04 00001b3f: MSTORE 00001b40: PUSH1 0x24 00001b42: PUSH0 00001b43: REVERT 00001b44: JUMPDEST 00001b45: SWAP2 00001b46: SWAP1 00001b47: DUP2 00001b48: LT 00001b49: ISZERO 00001b4a: PUSH2 0x1b54 00001b4d: JUMPI 00001b4e: PUSH1 0x05 00001b50: SHL 00001b51: ADD 00001b52: SWAP1 00001b53: JUMP 00001b54: JUMPDEST 00001b55: PUSH2 0x1b30 00001b58: JUMP 00001b59: JUMPDEST 00001b5a: ISZERO 00001b5b: PUSH2 0x1b60 00001b5e: JUMPI 00001b5f: JUMP 00001b60: JUMPDEST 00001b61: PUSH1 0x40 00001b63: MLOAD 00001b64: PUSH3 0x461bcd 00001b68: PUSH1 0xe5 00001b6a: SHL 00001b6b: DUP2 00001b6c: MSTORE 00001b6d: PUSH1 0x20 00001b6f: PUSH1 0x04 00001b71: DUP3 00001b72: ADD 00001b73: MSTORE 00001b74: PUSH1 0x18 00001b76: PUSH1 0x24 00001b78: DUP3 00001b79: ADD 00001b7a: MSTORE 00001b7b: PUSH32 0x4578656375746f723a20696e76616c6964206c656e6774680000000000000000 00001b9c: PUSH1 0x44 00001b9e: DUP3 00001b9f: ADD 00001ba0: MSTORE 00001ba1: PUSH1 0x64 00001ba3: SWAP1 00001ba4: REVERT 00001ba5: JUMPDEST 00001ba6: DUP1 00001ba7: MLOAD 00001ba8: DUP3 00001ba9: LT 00001baa: ISZERO 00001bab: PUSH2 0x1b54 00001bae: JUMPI 00001baf: PUSH1 0x20 00001bb1: SWAP2 00001bb2: PUSH1 0x05 00001bb4: SHL 00001bb5: ADD 00001bb6: ADD 00001bb7: SWAP1 00001bb8: JUMP 00001bb9: JUMPDEST 00001bba: ISZERO 00001bbb: PUSH2 0x1bc0 00001bbe: JUMPI 00001bbf: JUMP 00001bc0: JUMPDEST 00001bc1: PUSH1 0x40 00001bc3: MLOAD 00001bc4: PUSH3 0x461bcd 00001bc8: PUSH1 0xe5 00001bca: SHL 00001bcb: DUP2 00001bcc: MSTORE 00001bcd: PUSH1 0x20 00001bcf: PUSH1 0x04 00001bd1: DUP3 00001bd2: ADD 00001bd3: MSTORE 00001bd4: PUSH1 0x14 00001bd6: PUSH1 0x24 00001bd8: DUP3 00001bd9: ADD 00001bda: MSTORE 00001bdb: PUSH20 0x4f6e6c7920666f7277617264657220616c6c6f77 00001bf0: PUSH1 0x60 00001bf2: SHL 00001bf3: PUSH1 0x44 00001bf5: DUP3 00001bf6: ADD 00001bf7: MSTORE 00001bf8: PUSH1 0x64 00001bfa: SWAP1 00001bfb: REVERT 00001bfc: JUMPDEST 00001bfd: CALLDATALOAD 00001bfe: PUSH1 0x01 00001c00: PUSH1 0x01 00001c02: PUSH1 0x80 00001c04: SHL 00001c05: SUB 00001c06: DUP2 00001c07: AND 00001c08: DUP2 00001c09: SUB 00001c0a: PUSH2 0x0253 00001c0d: JUMPI 00001c0e: SWAP1 00001c0f: JUMP 00001c10: JUMPDEST 00001c11: ISZERO 00001c12: PUSH2 0x1c17 00001c15: JUMPI 00001c16: JUMP 00001c17: JUMPDEST 00001c18: PUSH1 0x40 00001c1a: MLOAD 00001c1b: PUSH3 0x461bcd 00001c1f: PUSH1 0xe5 00001c21: SHL 00001c22: DUP2 00001c23: MSTORE 00001c24: PUSH1 0x20 00001c26: PUSH1 0x04 00001c28: DUP3 00001c29: ADD 00001c2a: MSTORE 00001c2b: PUSH1 0x11 00001c2d: PUSH1 0x24 00001c2f: DUP3 00001c30: ADD 00001c31: MSTORE 00001c32: PUSH17 0x14da59db985d1d5c9948195e1c1a5c9959 00001c44: PUSH1 0x7a 00001c46: SHL 00001c47: PUSH1 0x44 00001c49: DUP3 00001c4a: ADD 00001c4b: MSTORE 00001c4c: PUSH1 0x64 00001c4e: SWAP1 00001c4f: REVERT 00001c50: JUMPDEST 00001c51: CALLDATALOAD 00001c52: PUSH2 0x077b 00001c55: DUP2 00001c56: PUSH2 0x0242 00001c59: JUMP 00001c5a: JUMPDEST 00001c5b: ISZERO 00001c5c: PUSH2 0x1c61 00001c5f: JUMPI 00001c60: JUMP 00001c61: JUMPDEST 00001c62: PUSH1 0x40 00001c64: MLOAD 00001c65: PUSH3 0x461bcd 00001c69: PUSH1 0xe5 00001c6b: SHL 00001c6c: DUP2 00001c6d: MSTORE 00001c6e: PUSH1 0x20 00001c70: PUSH1 0x04 00001c72: DUP3 00001c73: ADD 00001c74: MSTORE 00001c75: PUSH1 0x10 00001c77: PUSH1 0x24 00001c79: DUP3 00001c7a: ADD 00001c7b: MSTORE 00001c7c: PUSH16 0x24b731b7b93932b1ba1039b2b73232b9 00001c8d: PUSH1 0x81 00001c8f: SHL 00001c90: PUSH1 0x44 00001c92: DUP3 00001c93: ADD 00001c94: MSTORE 00001c95: PUSH1 0x64 00001c97: SWAP1 00001c98: REVERT 00001c99: JUMPDEST 00001c9a: SWAP1 00001c9b: CALLDATALOAD 00001c9c: SWAP1 00001c9d: PUSH1 0x1e 00001c9f: NOT 00001ca0: DUP2 00001ca1: CALLDATASIZE 00001ca2: SUB 00001ca3: ADD 00001ca4: DUP3 00001ca5: SLT 00001ca6: ISZERO 00001ca7: PUSH2 0x0253 00001caa: JUMPI 00001cab: ADD 00001cac: DUP1 00001cad: CALLDATALOAD 00001cae: SWAP1 00001caf: PUSH1 0x01 00001cb1: PUSH1 0x01 00001cb3: PUSH1 0x40 00001cb5: SHL 00001cb6: SUB 00001cb7: DUP3 00001cb8: GT 00001cb9: PUSH2 0x0253 00001cbc: JUMPI 00001cbd: PUSH1 0x20 00001cbf: ADD 00001cc0: SWAP2 00001cc1: DUP2 00001cc2: PUSH1 0x05 00001cc4: SHL 00001cc5: CALLDATASIZE 00001cc6: SUB 00001cc7: DUP4 00001cc8: SGT 00001cc9: PUSH2 0x0253 00001ccc: JUMPI 00001ccd: JUMP 00001cce: JUMPDEST 00001ccf: SWAP1 00001cd0: CALLDATALOAD 00001cd1: PUSH1 0x1e 00001cd3: NOT 00001cd4: DUP3 00001cd5: CALLDATASIZE 00001cd6: SUB 00001cd7: ADD 00001cd8: DUP2 00001cd9: SLT 00001cda: ISZERO 00001cdb: PUSH2 0x0253 00001cde: JUMPI 00001cdf: ADD 00001ce0: PUSH1 0x20 00001ce2: DUP2 00001ce3: CALLDATALOAD 00001ce4: SWAP2 00001ce5: ADD 00001ce6: SWAP2 00001ce7: PUSH1 0x01 00001ce9: PUSH1 0x01 00001ceb: PUSH1 0x40 00001ced: SHL 00001cee: SUB 00001cef: DUP3 00001cf0: GT 00001cf1: PUSH2 0x0253 00001cf4: JUMPI 00001cf5: DUP2 00001cf6: CALLDATASIZE 00001cf7: SUB 00001cf8: DUP4 00001cf9: SGT 00001cfa: PUSH2 0x0253 00001cfd: JUMPI 00001cfe: JUMP 00001cff: JUMPDEST 00001d00: SWAP1 00001d01: DUP1 00001d02: PUSH1 0x20 00001d04: SWAP4 00001d05: SWAP3 00001d06: DUP2 00001d07: DUP5 00001d08: MSTORE 00001d09: DUP5 00001d0a: DUP5 00001d0b: ADD 00001d0c: CALLDATACOPY 00001d0d: PUSH0 00001d0e: DUP3 00001d0f: DUP3 00001d10: ADD 00001d11: DUP5 00001d12: ADD 00001d13: MSTORE 00001d14: PUSH1 0x1f 00001d16: ADD 00001d17: PUSH1 0x1f 00001d19: NOT 00001d1a: AND 00001d1b: ADD 00001d1c: ADD 00001d1d: SWAP1 00001d1e: JUMP 00001d1f: JUMPDEST 00001d20: DUP3 00001d21: PUSH1 0x20 00001d23: DUP3 00001d24: ADD 00001d25: PUSH1 0x20 00001d27: DUP4 00001d28: MSTORE 00001d29: MSTORE 00001d2a: PUSH1 0x40 00001d2c: DUP2 00001d2d: ADD 00001d2e: SWAP3 00001d2f: PUSH1 0x40 00001d31: DUP2 00001d32: PUSH1 0x05 00001d34: SHL 00001d35: DUP4 00001d36: ADD 00001d37: ADD 00001d38: SWAP4 00001d39: DUP4 00001d3a: PUSH0 00001d3b: SWAP2 00001d3c: PUSH1 0x3e 00001d3e: NOT 00001d3f: DUP3 00001d40: CALLDATASIZE 00001d41: SUB 00001d42: ADD 00001d43: SWAP5 00001d44: JUMPDEST 00001d45: DUP5 00001d46: DUP5 00001d47: LT 00001d48: PUSH2 0x1d55 00001d4b: JUMPI 00001d4c: POP 00001d4d: POP 00001d4e: POP 00001d4f: POP 00001d50: POP 00001d51: POP 00001d52: POP 00001d53: SWAP1 00001d54: JUMP 00001d55: JUMPDEST 00001d56: SWAP1 00001d57: SWAP2 00001d58: SWAP3 00001d59: SWAP4 00001d5a: SWAP5 00001d5b: SWAP6 00001d5c: SWAP7 00001d5d: PUSH1 0x3f 00001d5f: NOT 00001d60: DUP3 00001d61: DUP3 00001d62: SUB 00001d63: ADD 00001d64: DUP4 00001d65: MSTORE 00001d66: DUP8 00001d67: CALLDATALOAD 00001d68: DUP8 00001d69: DUP2 00001d6a: SLT 00001d6b: ISZERO 00001d6c: PUSH2 0x0253 00001d6f: JUMPI 00001d70: PUSH1 0x20 00001d72: PUSH2 0x1dac 00001d75: PUSH1 0x01 00001d77: SWAP4 00001d78: PUSH1 0x40 00001d7a: PUSH2 0x1d9d 00001d7d: DUP10 00001d7e: DUP6 00001d7f: SWAP7 00001d80: ADD 00001d81: DUP1 00001d82: CALLDATALOAD 00001d83: PUSH2 0x1d8b 00001d86: DUP2 00001d87: PUSH2 0x0242 00001d8a: JUMP 00001d8b: JUMPDEST 00001d8c: DUP9 00001d8d: DUP1 00001d8e: PUSH1 0xa0 00001d90: SHL 00001d91: SUB 00001d92: AND 00001d93: DUP5 00001d94: MSTORE 00001d95: DUP6 00001d96: DUP2 00001d97: ADD 00001d98: SWAP1 00001d99: PUSH2 0x1cce 00001d9c: JUMP 00001d9d: JUMPDEST 00001d9e: SWAP2 00001d9f: SWAP1 00001da0: SWAP3 00001da1: DUP2 00001da2: DUP7 00001da3: DUP3 00001da4: ADD 00001da5: MSTORE 00001da6: ADD 00001da7: SWAP2 00001da8: PUSH2 0x1cff 00001dab: JUMP 00001dac: JUMPDEST 00001dad: SWAP10 00001dae: ADD 00001daf: SWAP4 00001db0: ADD 00001db1: SWAP5 00001db2: ADD 00001db3: SWAP3 00001db4: SWAP2 00001db5: SWAP6 00001db6: SWAP5 00001db7: SWAP4 00001db8: SWAP1 00001db9: PUSH2 0x1d44 00001dbc: JUMP 00001dbd: JUMPDEST 00001dbe: ISZERO 00001dbf: PUSH2 0x1dc4 00001dc2: JUMPI 00001dc3: JUMP 00001dc4: JUMPDEST 00001dc5: PUSH1 0x64 00001dc7: PUSH1 0x40 00001dc9: MLOAD 00001dca: PUSH3 0x461bcd 00001dce: PUSH1 0xe5 00001dd0: SHL 00001dd1: DUP2 00001dd2: MSTORE 00001dd3: PUSH1 0x20 00001dd5: PUSH1 0x04 00001dd7: DUP3 00001dd8: ADD 00001dd9: MSTORE 00001dda: PUSH1 0x20 00001ddc: PUSH1 0x24 00001dde: DUP3 00001ddf: ADD 00001de0: MSTORE 00001de1: PUSH32 0x5369676e617475726520646f6573206e6f74206d617463682072657175657374 00001e02: PUSH1 0x44 00001e04: DUP3 00001e05: ADD 00001e06: MSTORE 00001e07: REVERT 00001e08: JUMPDEST 00001e09: SWAP2 00001e0a: SWAP1 00001e0b: DUP2 00001e0c: LT 00001e0d: ISZERO 00001e0e: PUSH2 0x1b54 00001e11: JUMPI 00001e12: PUSH1 0x05 00001e14: SHL 00001e15: DUP2 00001e16: ADD 00001e17: CALLDATALOAD 00001e18: SWAP1 00001e19: PUSH1 0x3e 00001e1b: NOT 00001e1c: DUP2 00001e1d: CALLDATASIZE 00001e1e: SUB 00001e1f: ADD 00001e20: DUP3 00001e21: SLT 00001e22: ISZERO 00001e23: PUSH2 0x0253 00001e26: JUMPI 00001e27: ADD 00001e28: SWAP1 00001e29: JUMP 00001e2a: JUMPDEST 00001e2b: ISZERO 00001e2c: PUSH2 0x1e31 00001e2f: JUMPI 00001e30: JUMP 00001e31: JUMPDEST 00001e32: PUSH1 0x40 00001e34: MLOAD 00001e35: PUSH3 0x461bcd 00001e39: PUSH1 0xe5 00001e3b: SHL 00001e3c: DUP2 00001e3d: MSTORE 00001e3e: PUSH1 0x20 00001e40: PUSH1 0x04 00001e42: DUP3 00001e43: ADD 00001e44: MSTORE 00001e45: PUSH1 0x11 00001e47: PUSH1 0x24 00001e49: DUP3 00001e4a: ADD 00001e4b: MSTORE 00001e4c: PUSH17 0x139bdd081858d8d95c1d19590819195cdd 00001e5e: PUSH1 0x7a 00001e60: SHL 00001e61: PUSH1 0x44 00001e63: DUP3 00001e64: ADD 00001e65: MSTORE 00001e66: PUSH1 0x64 00001e68: SWAP1 00001e69: REVERT 00001e6a: JUMPDEST 00001e6b: SWAP1 00001e6c: CALLDATALOAD 00001e6d: SWAP1 00001e6e: PUSH1 0x1e 00001e70: NOT 00001e71: DUP2 00001e72: CALLDATASIZE 00001e73: SUB 00001e74: ADD 00001e75: DUP3 00001e76: SLT 00001e77: ISZERO 00001e78: PUSH2 0x0253 00001e7b: JUMPI 00001e7c: ADD 00001e7d: DUP1 00001e7e: CALLDATALOAD 00001e7f: SWAP1 00001e80: PUSH1 0x01 00001e82: PUSH1 0x01 00001e84: PUSH1 0x40 00001e86: SHL 00001e87: SUB 00001e88: DUP3 00001e89: GT 00001e8a: PUSH2 0x0253 00001e8d: JUMPI 00001e8e: PUSH1 0x20 00001e90: ADD 00001e91: SWAP2 00001e92: DUP2 00001e93: CALLDATASIZE 00001e94: SUB 00001e95: DUP4 00001e96: SGT 00001e97: PUSH2 0x0253 00001e9a: JUMPI 00001e9b: JUMP 00001e9c: JUMPDEST 00001e9d: CALLDATALOAD 00001e9e: PUSH1 0x01 00001ea0: PUSH1 0x01 00001ea2: PUSH1 0xe0 00001ea4: SHL 00001ea5: SUB 00001ea6: NOT 00001ea7: DUP2 00001ea8: AND 00001ea9: SWAP3 00001eaa: SWAP2 00001eab: SWAP1 00001eac: PUSH1 0x04 00001eae: DUP3 00001eaf: LT 00001eb0: PUSH2 0x1eb7 00001eb3: JUMPI 00001eb4: POP 00001eb5: POP 00001eb6: JUMP 00001eb7: JUMPDEST 00001eb8: PUSH1 0x01 00001eba: PUSH1 0x01 00001ebc: PUSH1 0xe0 00001ebe: SHL 00001ebf: SUB 00001ec0: NOT 00001ec1: PUSH1 0x04 00001ec3: SWAP3 00001ec4: SWAP1 00001ec5: SWAP3 00001ec6: SUB 00001ec7: PUSH1 0x03 00001ec9: SHL 00001eca: DUP3 00001ecb: SWAP1 00001ecc: SHL 00001ecd: AND 00001ece: AND 00001ecf: SWAP2 00001ed0: POP 00001ed1: JUMP 00001ed2: JUMPDEST 00001ed3: ISZERO 00001ed4: PUSH2 0x1ed9 00001ed7: JUMPI 00001ed8: JUMP 00001ed9: JUMPDEST 00001eda: PUSH1 0x40 00001edc: MLOAD 00001edd: PUSH3 0x461bcd 00001ee1: PUSH1 0xe5 00001ee3: SHL 00001ee4: DUP2 00001ee5: MSTORE 00001ee6: PUSH1 0x20 00001ee8: PUSH1 0x04 00001eea: DUP3 00001eeb: ADD 00001eec: MSTORE 00001eed: PUSH1 0x0c 00001eef: PUSH1 0x24 00001ef1: DUP3 00001ef2: ADD 00001ef3: MSTORE 00001ef4: PUSH12 0x2737ba103932b3b4b9ba32b9 00001f01: PUSH1 0xa1 00001f03: SHL 00001f04: PUSH1 0x44 00001f06: DUP3 00001f07: ADD 00001f08: MSTORE 00001f09: PUSH1 0x64 00001f0b: SWAP1 00001f0c: REVERT 00001f0d: JUMPDEST 00001f0e: PUSH1 0x40 00001f10: MLOAD 00001f11: RETURNDATASIZE 00001f12: PUSH0 00001f13: DUP3 00001f14: RETURNDATACOPY 00001f15: RETURNDATASIZE 00001f16: SWAP1 00001f17: REVERT 00001f18: JUMPDEST 00001f19: ISZERO 00001f1a: PUSH2 0x1f1f 00001f1d: JUMPI 00001f1e: JUMP 00001f1f: JUMPDEST 00001f20: PUSH1 0x40 00001f22: MLOAD 00001f23: PUSH3 0x461bcd 00001f27: PUSH1 0xe5 00001f29: SHL 00001f2a: DUP2 00001f2b: MSTORE 00001f2c: PUSH1 0x20 00001f2e: PUSH1 0x04 00001f30: DUP3 00001f31: ADD 00001f32: MSTORE 00001f33: PUSH1 0x2e 00001f35: PUSH1 0x24 00001f37: DUP3 00001f38: ADD 00001f39: MSTORE 00001f3a: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00001f5b: PUSH1 0x44 00001f5d: DUP3 00001f5e: ADD 00001f5f: MSTORE 00001f60: PUSH14 0x191e481a5b9a5d1a585b1a5e9959 00001f6f: PUSH1 0x92 00001f71: SHL 00001f72: PUSH1 0x64 00001f74: DUP3 00001f75: ADD 00001f76: MSTORE 00001f77: PUSH1 0x84 00001f79: SWAP1 00001f7a: REVERT 00001f7b: JUMPDEST 00001f7c: ISZERO 00001f7d: PUSH2 0x1f82 00001f80: JUMPI 00001f81: JUMP 00001f82: JUMPDEST 00001f83: PUSH1 0x40 00001f85: MLOAD 00001f86: PUSH3 0x461bcd 00001f8a: PUSH1 0xe5 00001f8c: SHL 00001f8d: DUP2 00001f8e: MSTORE 00001f8f: PUSH1 0x20 00001f91: PUSH1 0x04 00001f93: DUP3 00001f94: ADD 00001f95: MSTORE 00001f96: PUSH1 0x16 00001f98: PUSH1 0x24 00001f9a: DUP3 00001f9b: ADD 00001f9c: MSTORE 00001f9d: PUSH22 0x31b0b63632b91034b9903737ba1037b832b930ba37b9 00001fb4: PUSH1 0x51 00001fb6: SHL 00001fb7: PUSH1 0x44 00001fb9: DUP3 00001fba: ADD 00001fbb: MSTORE 00001fbc: PUSH1 0x64 00001fbe: SWAP1 00001fbf: REVERT 00001fc0: JUMPDEST 00001fc1: ISZERO 00001fc2: PUSH2 0x1fc7 00001fc5: JUMPI 00001fc6: JUMP 00001fc7: JUMPDEST 00001fc8: PUSH1 0x40 00001fca: MLOAD 00001fcb: PUSH3 0x461bcd 00001fcf: PUSH1 0xe5 00001fd1: SHL 00001fd2: DUP2 00001fd3: MSTORE 00001fd4: PUSH1 0x20 00001fd6: PUSH1 0x04 00001fd8: DUP3 00001fd9: ADD 00001fda: MSTORE 00001fdb: PUSH1 0x1b 00001fdd: PUSH1 0x24 00001fdf: DUP3 00001fe0: ADD 00001fe1: MSTORE 00001fe2: PUSH32 0x64657374696e6174696f6e206973206e6f7420617070726f7665640000000000 00002003: PUSH1 0x44 00002005: DUP3 00002006: ADD 00002007: MSTORE 00002008: PUSH1 0x64 0000200a: SWAP1 0000200b: REVERT 0000200c: JUMPDEST 0000200d: RETURNDATASIZE 0000200e: ISZERO 0000200f: PUSH2 0x2036 00002012: JUMPI 00002013: RETURNDATASIZE 00002014: SWAP1 00002015: PUSH2 0x201d 00002018: DUP3 00002019: PUSH2 0x03d8 0000201c: JUMP 0000201d: JUMPDEST 0000201e: SWAP2 0000201f: PUSH2 0x202b 00002022: PUSH1 0x40 00002024: MLOAD 00002025: SWAP4 00002026: DUP5 00002027: PUSH2 0x03b2 0000202a: JUMP 0000202b: JUMPDEST 0000202c: DUP3 0000202d: MSTORE 0000202e: RETURNDATASIZE 0000202f: PUSH0 00002030: PUSH1 0x20 00002032: DUP5 00002033: ADD 00002034: RETURNDATACOPY 00002035: JUMP 00002036: JUMPDEST 00002037: PUSH1 0x60 00002039: SWAP1 0000203a: JUMP 0000203b: JUMPDEST 0000203c: ISZERO 0000203d: PUSH2 0x2042 00002040: JUMPI 00002041: JUMP 00002042: JUMPDEST 00002043: PUSH1 0x40 00002045: MLOAD 00002046: PUSH3 0x461bcd 0000204a: PUSH1 0xe5 0000204c: SHL 0000204d: DUP2 0000204e: MSTORE 0000204f: PUSH1 0x20 00002051: PUSH1 0x04 00002053: DUP3 00002054: ADD 00002055: MSTORE 00002056: PUSH1 0x13 00002058: PUSH1 0x24 0000205a: DUP3 0000205b: ADD 0000205c: MSTORE 0000205d: PUSH19 0x1dda5d1a191c985dc8195d1a0819985a5b1959 00002071: PUSH1 0x6a 00002073: SHL 00002074: PUSH1 0x44 00002076: DUP3 00002077: ADD 00002078: MSTORE 00002079: PUSH1 0x64 0000207b: SWAP1 0000207c: REVERT 0000207d: JUMPDEST 0000207e: DUP3 0000207f: PUSH1 0x20 00002081: DUP3 00002082: ADD 00002083: PUSH1 0x20 00002085: DUP4 00002086: MSTORE 00002087: MSTORE 00002088: PUSH1 0x40 0000208a: DUP2 0000208b: ADD 0000208c: SWAP3 0000208d: PUSH1 0x40 0000208f: DUP2 00002090: PUSH1 0x05 00002092: SHL 00002093: DUP4 00002094: ADD 00002095: ADD 00002096: SWAP4 00002097: DUP4 00002098: PUSH0 00002099: SWAP2 0000209a: PUSH1 0x5e 0000209c: NOT 0000209d: DUP3 0000209e: CALLDATASIZE 0000209f: SUB 000020a0: ADD 000020a1: SWAP5 000020a2: JUMPDEST 000020a3: DUP5 000020a4: DUP5 000020a5: LT 000020a6: PUSH2 0x20b3 000020a9: JUMPI 000020aa: POP 000020ab: POP 000020ac: POP 000020ad: POP 000020ae: POP 000020af: POP 000020b0: POP 000020b1: SWAP1 000020b2: JUMP 000020b3: JUMPDEST 000020b4: SWAP1 000020b5: SWAP2 000020b6: SWAP3 000020b7: SWAP4 000020b8: SWAP5 000020b9: SWAP6 000020ba: SWAP7 000020bb: PUSH1 0x3f 000020bd: NOT 000020be: DUP3 000020bf: DUP3 000020c0: SUB 000020c1: ADD 000020c2: DUP4 000020c3: MSTORE 000020c4: DUP8 000020c5: CALLDATALOAD 000020c6: DUP8 000020c7: DUP2 000020c8: SLT 000020c9: ISZERO 000020ca: PUSH2 0x0253 000020cd: JUMPI 000020ce: PUSH1 0x20 000020d0: PUSH2 0x2114 000020d3: PUSH1 0x01 000020d5: SWAP4 000020d6: PUSH1 0x60 000020d8: PUSH2 0x2104 000020db: DUP10 000020dc: DUP6 000020dd: SWAP7 000020de: ADD 000020df: DUP1 000020e0: CALLDATALOAD 000020e1: PUSH2 0x20e9 000020e4: DUP2 000020e5: PUSH2 0x0242 000020e8: JUMP 000020e9: JUMPDEST 000020ea: DUP9 000020eb: DUP1 000020ec: PUSH1 0xa0 000020ee: SHL 000020ef: SUB 000020f0: AND 000020f1: DUP5 000020f2: MSTORE 000020f3: DUP6 000020f4: DUP2 000020f5: ADD 000020f6: CALLDATALOAD 000020f7: DUP7 000020f8: DUP6 000020f9: ADD 000020fa: MSTORE 000020fb: PUSH1 0x40 000020fd: DUP2 000020fe: ADD 000020ff: SWAP1 00002100: PUSH2 0x1cce 00002103: JUMP 00002104: JUMPDEST 00002105: SWAP2 00002106: SWAP1 00002107: SWAP3 00002108: DUP2 00002109: PUSH1 0x40 0000210b: DUP3 0000210c: ADD 0000210d: MSTORE 0000210e: ADD 0000210f: SWAP2 00002110: PUSH2 0x1cff 00002113: JUMP 00002114: JUMPDEST 00002115: SWAP10 00002116: ADD 00002117: SWAP4 00002118: ADD 00002119: SWAP5 0000211a: ADD 0000211b: SWAP3 0000211c: SWAP2 0000211d: SWAP6 0000211e: SWAP5 0000211f: SWAP4 00002120: SWAP1 00002121: PUSH2 0x20a2 00002124: JUMP 00002125: JUMPDEST 00002126: SWAP2 00002127: SWAP1 00002128: DUP2 00002129: LT 0000212a: ISZERO 0000212b: PUSH2 0x1b54 0000212e: JUMPI 0000212f: PUSH1 0x05 00002131: SHL 00002132: DUP2 00002133: ADD 00002134: CALLDATALOAD 00002135: SWAP1 00002136: PUSH1 0x5e 00002138: NOT 00002139: DUP2 0000213a: CALLDATASIZE 0000213b: SUB 0000213c: ADD 0000213d: DUP3 0000213e: SLT 0000213f: ISZERO 00002140: PUSH2 0x0253 00002143: JUMPI 00002144: ADD 00002145: SWAP1 00002146: JUMP 00002147: JUMPDEST 00002148: PUSH1 0x20 0000214a: DUP1 0000214b: DUP3 0000214c: MSTORE 0000214d: DUP2 0000214e: ADD 0000214f: DUP4 00002150: SWAP1 00002151: MSTORE 00002152: PUSH1 0x40 00002154: ADD 00002155: SWAP2 00002156: PUSH0 00002157: JUMPDEST 00002158: DUP2 00002159: DUP2 0000215a: LT 0000215b: PUSH2 0x2164 0000215e: JUMPI 0000215f: POP 00002160: POP 00002161: POP 00002162: SWAP1 00002163: JUMP 00002164: JUMPDEST 00002165: SWAP1 00002166: SWAP2 00002167: SWAP3 00002168: PUSH1 0x20 0000216a: DUP1 0000216b: PUSH1 0x01 0000216d: SWAP3 0000216e: DUP7 0000216f: CALLDATALOAD 00002170: PUSH2 0x2178 00002173: DUP2 00002174: PUSH2 0x0242 00002177: JUMP 00002178: JUMPDEST 00002179: DUP5 0000217a: DUP1 0000217b: PUSH1 0xa0 0000217d: SHL 0000217e: SUB 0000217f: AND 00002180: DUP2 00002181: MSTORE 00002182: ADD 00002183: SWAP5 00002184: ADD 00002185: SWAP2 00002186: ADD 00002187: SWAP2 00002188: SWAP1 00002189: SWAP2 0000218a: PUSH2 0x2157 0000218d: JUMP 0000218e: JUMPDEST 0000218f: PUSH0 00002190: CALLDATALOAD 00002191: PUSH1 0x01 00002193: PUSH1 0x01 00002195: PUSH1 0xe0 00002197: SHL 00002198: SUB 00002199: NOT 0000219a: DUP2 0000219b: AND 0000219c: SWAP1 0000219d: PUSH1 0x04 0000219f: CALLDATASIZE 000021a0: LT 000021a1: PUSH2 0x220f 000021a4: JUMPI 000021a5: JUMPDEST 000021a6: POP 000021a7: PUSH1 0x01 000021a9: PUSH1 0x01 000021ab: PUSH1 0xe0 000021ad: SHL 000021ae: SUB 000021af: NOT 000021b0: AND 000021b1: PUSH0 000021b2: SWAP1 000021b3: DUP2 000021b4: MSTORE 000021b5: PUSH1 0xa0 000021b7: PUSH1 0x20 000021b9: MSTORE 000021ba: PUSH1 0x40 000021bc: SWAP1 000021bd: KECCAK256 000021be: SLOAD 000021bf: PUSH1 0x01 000021c1: PUSH1 0x01 000021c3: PUSH1 0xa0 000021c5: SHL 000021c6: SUB 000021c7: AND 000021c8: DUP1 000021c9: ISZERO 000021ca: PUSH2 0x21da 000021cd: JUMPI 000021ce: PUSH2 0x21d8 000021d1: SWAP1 000021d2: CALLDATASIZE 000021d3: SWAP1 000021d4: PUSH2 0x24c8 000021d7: JUMP 000021d8: JUMPDEST 000021d9: JUMP 000021da: JUMPDEST 000021db: PUSH1 0x40 000021dd: MLOAD 000021de: PUSH3 0x461bcd 000021e2: PUSH1 0xe5 000021e4: SHL 000021e5: DUP2 000021e6: MSTORE 000021e7: PUSH1 0x20 000021e9: PUSH1 0x04 000021eb: DUP3 000021ec: ADD 000021ed: MSTORE 000021ee: PUSH1 0x0d 000021f0: PUSH1 0x24 000021f2: DUP3 000021f3: ADD 000021f4: MSTORE 000021f5: PUSH13 0x2737ba103932b3b4b9ba3932b9 00002203: PUSH1 0x99 00002205: SHL 00002206: PUSH1 0x44 00002208: DUP3 00002209: ADD 0000220a: MSTORE 0000220b: PUSH1 0x64 0000220d: SWAP1 0000220e: REVERT 0000220f: JUMPDEST 00002210: PUSH1 0x01 00002212: PUSH1 0x01 00002214: PUSH1 0xe0 00002216: SHL 00002217: SUB 00002218: NOT 00002219: CALLDATASIZE 0000221a: PUSH1 0x04 0000221c: SUB 0000221d: PUSH1 0x03 0000221f: SHL 00002220: DUP2 00002221: SWAP1 00002222: SHL 00002223: SWAP1 00002224: SWAP2 00002225: AND 00002226: AND 00002227: SWAP1 00002228: POP 00002229: PUSH0 0000222a: PUSH2 0x21a5 0000222d: JUMP 0000222e: JUMPDEST 0000222f: PUSH1 0x05 00002231: GT 00002232: ISZERO 00002233: PUSH2 0x2238 00002236: JUMPI 00002237: JUMP 00002238: JUMPDEST 00002239: PUSH4 0x4e487b71 0000223e: PUSH1 0xe0 00002240: SHL 00002241: PUSH0 00002242: MSTORE 00002243: PUSH1 0x21 00002245: PUSH1 0x04 00002247: MSTORE 00002248: PUSH1 0x24 0000224a: PUSH0 0000224b: REVERT 0000224c: JUMPDEST 0000224d: DUP1 0000224e: MLOAD 0000224f: DUP1 00002250: DUP4 00002251: MSTORE 00002252: PUSH1 0x20 00002254: SWAP3 00002255: SWAP2 00002256: DUP2 00002257: SWAP1 00002258: DUP5 00002259: ADD 0000225a: DUP5 0000225b: DUP5 0000225c: ADD 0000225d: MCOPY 0000225e: PUSH0 0000225f: DUP3 00002260: DUP3 00002261: ADD 00002262: DUP5 00002263: ADD 00002264: MSTORE 00002265: PUSH1 0x1f 00002267: ADD 00002268: PUSH1 0x1f 0000226a: NOT 0000226b: AND 0000226c: ADD 0000226d: ADD 0000226e: SWAP1 0000226f: JUMP 00002270: JUMPDEST 00002271: PUSH1 0x40 00002273: SWAP1 00002274: PUSH2 0x077b 00002277: SWAP4 00002278: SWAP3 00002279: DUP2 0000227a: MSTORE 0000227b: DUP2 0000227c: PUSH1 0x20 0000227e: DUP3 0000227f: ADD 00002280: MSTORE 00002281: ADD 00002282: SWAP1 00002283: PUSH2 0x224c 00002286: JUMP 00002287: JUMPDEST 00002288: SWAP1 00002289: DUP2 0000228a: PUSH1 0x20 0000228c: SWAP2 0000228d: SUB 0000228e: SLT 0000228f: PUSH2 0x0253 00002292: JUMPI 00002293: MLOAD 00002294: PUSH2 0x077b 00002297: DUP2 00002298: PUSH2 0x0676 0000229b: JUMP 0000229c: JUMPDEST 0000229d: SWAP2 0000229e: SWAP1 0000229f: SWAP2 000022a0: PUSH2 0x22a9 000022a3: DUP3 000022a4: DUP5 000022a5: PUSH2 0x27cf 000022a8: JUMP 000022a9: JUMPDEST 000022aa: PUSH2 0x22b2 000022ad: DUP2 000022ae: PUSH2 0x222e 000022b1: JUMP 000022b2: JUMPDEST 000022b3: ISZERO 000022b4: SWAP1 000022b5: DUP2 000022b6: PUSH2 0x2343 000022b9: JUMPI 000022ba: JUMPDEST 000022bb: POP 000022bc: PUSH2 0x233b 000022bf: JUMPI 000022c0: PUSH0 000022c1: SWAP3 000022c2: PUSH2 0x098e 000022c5: PUSH2 0x22e7 000022c8: DUP6 000022c9: SWAP5 000022ca: PUSH1 0x40 000022cc: MLOAD 000022cd: SWAP3 000022ce: DUP4 000022cf: SWAP2 000022d0: PUSH1 0x20 000022d2: DUP4 000022d3: ADD 000022d4: SWAP6 000022d5: PUSH4 0x0b135d3f 000022da: PUSH1 0xe1 000022dc: SHL 000022dd: DUP8 000022de: MSTORE 000022df: PUSH1 0x24 000022e1: DUP5 000022e2: ADD 000022e3: PUSH2 0x2270 000022e6: JUMP 000022e7: JUMPDEST 000022e8: MLOAD 000022e9: SWAP2 000022ea: GAS 000022eb: STATICCALL 000022ec: PUSH2 0x22f3 000022ef: PUSH2 0x200c 000022f2: JUMP 000022f3: JUMPDEST 000022f4: DUP2 000022f5: PUSH2 0x232f 000022f8: JUMPI 000022f9: JUMPDEST 000022fa: DUP2 000022fb: PUSH2 0x2302 000022fe: JUMPI 000022ff: POP 00002300: SWAP1 00002301: JUMP 00002302: JUMPDEST 00002303: DUP1 00002304: MLOAD 00002305: PUSH4 0x0b135d3f 0000230a: PUSH1 0xe1 0000230c: SHL 0000230d: SWAP3 0000230e: POP 0000230f: PUSH1 0x01 00002311: PUSH1 0x01 00002313: PUSH1 0xe0 00002315: SHL 00002316: SUB 00002317: NOT 00002318: SWAP2 00002319: PUSH2 0x232a 0000231c: SWAP2 0000231d: DUP2 0000231e: ADD 0000231f: PUSH1 0x20 00002321: SWAP1 00002322: DUP2 00002323: ADD 00002324: SWAP2 00002325: ADD 00002326: PUSH2 0x2287 00002329: JUMP 0000232a: JUMPDEST 0000232b: AND 0000232c: EQ 0000232d: SWAP1 0000232e: JUMP 0000232f: JUMPDEST 00002330: DUP1 00002331: MLOAD 00002332: PUSH1 0x20 00002334: EQ 00002335: SWAP2 00002336: POP 00002337: PUSH2 0x22f9 0000233a: JUMP 0000233b: JUMPDEST 0000233c: POP 0000233d: POP 0000233e: POP 0000233f: PUSH1 0x01 00002341: SWAP1 00002342: JUMP 00002343: JUMPDEST 00002344: PUSH1 0x01 00002346: PUSH1 0x01 00002348: PUSH1 0xa0 0000234a: SHL 0000234b: SUB 0000234c: DUP4 0000234d: DUP2 0000234e: AND 0000234f: SWAP2 00002350: AND 00002351: EQ 00002352: SWAP1 00002353: POP 00002354: PUSH0 00002355: PUSH2 0x22ba 00002358: JUMP 00002359: JUMPDEST 0000235a: SWAP1 0000235b: DUP2 0000235c: PUSH1 0x20 0000235e: SWAP2 0000235f: SUB 00002360: SLT 00002361: PUSH2 0x0253 00002364: JUMPI 00002365: MLOAD 00002366: SWAP1 00002367: JUMP 00002368: JUMPDEST 00002369: ISZERO 0000236a: PUSH2 0x236f 0000236d: JUMPI 0000236e: JUMP 0000236f: JUMPDEST 00002370: PUSH1 0x40 00002372: MLOAD 00002373: PUSH3 0x461bcd 00002377: PUSH1 0xe5 00002379: SHL 0000237a: DUP2 0000237b: MSTORE 0000237c: PUSH1 0x20 0000237e: PUSH1 0x04 00002380: DUP3 00002381: ADD 00002382: MSTORE 00002383: PUSH1 0x36 00002385: PUSH1 0x24 00002387: DUP3 00002388: ADD 00002389: MSTORE 0000238a: PUSH32 0x5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f 000023ab: PUSH1 0x44 000023ad: DUP3 000023ae: ADD 000023af: MSTORE 000023b0: PUSH22 0x20746f206e6f6e2d7a65726f20616c6c6f77616e6365 000023c7: PUSH1 0x50 000023c9: SHL 000023ca: PUSH1 0x64 000023cc: DUP3 000023cd: ADD 000023ce: MSTORE 000023cf: PUSH1 0x84 000023d1: SWAP1 000023d2: REVERT 000023d3: JUMPDEST 000023d4: PUSH2 0x077b 000023d7: SWAP1 000023d8: PUSH1 0x40 000023da: PUSH1 0x0b 000023dc: PUSH1 0x20 000023de: DUP3 000023df: MLOAD 000023e0: PUSH2 0x23e9 000023e3: DUP5 000023e4: DUP3 000023e5: PUSH2 0x03b2 000023e8: JUMP 000023e9: JUMPDEST 000023ea: DUP3 000023eb: DUP2 000023ec: MSTORE 000023ed: ADD 000023ee: PUSH11 0x14995cd95c9d99519d5b99 000023fa: PUSH1 0xaa 000023fc: SHL 000023fd: DUP2 000023fe: MSTORE 000023ff: KECCAK256 00002400: PUSH2 0x2476 00002403: PUSH1 0x03 00002405: PUSH1 0x20 00002407: DUP5 00002408: MLOAD 00002409: PUSH2 0x2412 0000240c: DUP7 0000240d: DUP3 0000240e: PUSH2 0x03b2 00002411: JUMP 00002412: JUMPDEST 00002413: DUP3 00002414: DUP2 00002415: MSTORE 00002416: PUSH3 0x0322e3 0000241a: PUSH1 0xec 0000241c: SHL 0000241d: SWAP2 0000241e: ADD 0000241f: SWAP1 00002420: DUP2 00002421: MSTORE 00002422: KECCAK256 00002423: DUP4 00002424: MLOAD 00002425: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 00002446: PUSH1 0x20 00002448: DUP1 00002449: DUP4 0000244a: ADD 0000244b: SWAP2 0000244c: DUP3 0000244d: MSTORE 0000244e: PUSH1 0x40 00002450: DUP4 00002451: ADD 00002452: SWAP6 00002453: SWAP1 00002454: SWAP6 00002455: MSTORE 00002456: SWAP5 00002457: DUP2 00002458: ADD 00002459: SWAP1 0000245a: SWAP4 0000245b: ADD 0000245c: MSTORE 0000245d: CHAINID 0000245e: PUSH1 0x80 00002460: DUP4 00002461: ADD 00002462: MSTORE 00002463: ADDRESS 00002464: PUSH1 0xa0 00002466: DUP1 00002467: DUP5 00002468: ADD 00002469: SWAP2 0000246a: SWAP1 0000246b: SWAP2 0000246c: MSTORE 0000246d: DUP3 0000246e: MSTORE 0000246f: PUSH1 0xc0 00002471: DUP3 00002472: PUSH2 0x03b2 00002475: JUMP 00002476: JUMPDEST 00002477: MLOAD 00002478: SWAP1 00002479: KECCAK256 0000247a: PUSH2 0x2978 0000247d: JUMP 0000247e: JUMPDEST 0000247f: PUSH2 0x077b 00002482: SWAP2 00002483: PUSH2 0x248b 00002486: SWAP2 00002487: PUSH2 0x27cf 0000248a: JUMP 0000248b: JUMPDEST 0000248c: SWAP2 0000248d: SWAP1 0000248e: SWAP2 0000248f: PUSH2 0x29a9 00002492: JUMP 00002493: JUMPDEST 00002494: SWAP2 00002495: PUSH0 00002496: SWAP3 00002497: SWAP2 00002498: DUP4 00002499: DUP1 0000249a: SWAP4 0000249b: DUP4 0000249c: PUSH1 0x40 0000249e: MLOAD 0000249f: SWAP4 000024a0: DUP5 000024a1: CALLDATACOPY 000024a2: GAS 000024a3: CALL 000024a4: ISZERO 000024a5: PUSH2 0x24aa 000024a8: JUMPI 000024a9: JUMP 000024aa: JUMPDEST 000024ab: RETURNDATASIZE 000024ac: PUSH0 000024ad: DUP1 000024ae: RETURNDATACOPY 000024af: RETURNDATASIZE 000024b0: PUSH0 000024b1: REVERT 000024b2: JUMPDEST 000024b3: SWAP2 000024b4: PUSH0 000024b5: SWAP4 000024b6: SWAP2 000024b7: DUP5 000024b8: SWAP4 000024b9: DUP4 000024ba: PUSH1 0x40 000024bc: MLOAD 000024bd: SWAP4 000024be: DUP5 000024bf: CALLDATACOPY 000024c0: GAS 000024c1: CALL 000024c2: ISZERO 000024c3: PUSH2 0x24aa 000024c6: JUMPI 000024c7: JUMP 000024c8: JUMPDEST 000024c9: PUSH0 000024ca: SWAP2 000024cb: DUP3 000024cc: SWAP2 000024cd: PUSH1 0x40 000024cf: MLOAD 000024d0: SWAP1 000024d1: DUP3 000024d2: DUP5 000024d3: DUP4 000024d4: CALLDATACOPY 000024d5: GAS 000024d6: DELEGATECALL 000024d7: ISZERO 000024d8: PUSH2 0x24aa 000024db: JUMPI 000024dc: JUMP 000024dd: JUMPDEST 000024de: SWAP2 000024df: PUSH0 000024e0: SWAP3 000024e1: SWAP2 000024e2: DUP4 000024e3: SWAP3 000024e4: DUP3 000024e5: PUSH1 0x40 000024e7: MLOAD 000024e8: SWAP3 000024e9: DUP4 000024ea: CALLDATACOPY 000024eb: GAS 000024ec: DELEGATECALL 000024ed: ISZERO 000024ee: PUSH2 0x24aa 000024f1: JUMPI 000024f2: JUMP 000024f3: JUMPDEST 000024f4: ISZERO 000024f5: PUSH2 0x24fa 000024f8: JUMPI 000024f9: JUMP 000024fa: JUMPDEST 000024fb: PUSH1 0x40 000024fd: MLOAD 000024fe: PUSH3 0x461bcd 00002502: PUSH1 0xe5 00002504: SHL 00002505: DUP2 00002506: MSTORE 00002507: PUSH1 0x20 00002509: PUSH1 0x04 0000250b: DUP3 0000250c: ADD 0000250d: MSTORE 0000250e: PUSH1 0x2b 00002510: PUSH1 0x24 00002512: DUP3 00002513: ADD 00002514: MSTORE 00002515: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00002536: PUSH1 0x44 00002538: DUP3 00002539: ADD 0000253a: MSTORE 0000253b: PUSH11 0x6e697469616c697a696e67 00002547: PUSH1 0xa8 00002549: SHL 0000254a: PUSH1 0x64 0000254c: DUP3 0000254d: ADD 0000254e: MSTORE 0000254f: PUSH1 0x84 00002551: SWAP1 00002552: REVERT 00002553: JUMPDEST 00002554: PUSH1 0x01 00002556: PUSH1 0x01 00002558: PUSH1 0xa0 0000255a: SHL 0000255b: SUB 0000255c: DUP2 0000255d: AND 0000255e: PUSH2 0x25b1 00002561: JUMPI 00002562: POP 00002563: PUSH0 00002564: DUP1 00002565: DUP1 00002566: SWAP4 00002567: DUP2 00002568: SWAP4 00002569: GAS 0000256a: CALL 0000256b: PUSH2 0x2572 0000256e: PUSH2 0x200c 00002571: JUMP 00002572: JUMPDEST 00002573: POP 00002574: ISZERO 00002575: PUSH2 0x257a 00002578: JUMPI 00002579: JUMP 0000257a: JUMPDEST 0000257b: PUSH1 0x40 0000257d: MLOAD 0000257e: PUSH3 0x461bcd 00002582: PUSH1 0xe5 00002584: SHL 00002585: DUP2 00002586: MSTORE 00002587: PUSH1 0x20 00002589: PUSH1 0x04 0000258b: DUP3 0000258c: ADD 0000258d: MSTORE 0000258e: PUSH1 0x0f 00002590: PUSH1 0x24 00002592: DUP3 00002593: ADD 00002594: MSTORE 00002595: PUSH15 0x1d1c985b9cd9995c8819985a5b1959 000025a5: PUSH1 0x8a 000025a7: SHL 000025a8: PUSH1 0x44 000025aa: DUP3 000025ab: ADD 000025ac: MSTORE 000025ad: PUSH1 0x64 000025af: SWAP1 000025b0: REVERT 000025b1: JUMPDEST 000025b2: PUSH1 0x40 000025b4: MLOAD 000025b5: PUSH4 0xa9059cbb 000025ba: PUSH1 0xe0 000025bc: SHL 000025bd: PUSH1 0x20 000025bf: DUP3 000025c0: ADD 000025c1: MSTORE 000025c2: PUSH1 0x01 000025c4: PUSH1 0x01 000025c6: PUSH1 0xa0 000025c8: SHL 000025c9: SUB 000025ca: SWAP1 000025cb: SWAP3 000025cc: AND 000025cd: PUSH1 0x24 000025cf: DUP4 000025d0: ADD 000025d1: MSTORE 000025d2: PUSH1 0x44 000025d4: DUP3 000025d5: ADD 000025d6: SWAP3 000025d7: SWAP1 000025d8: SWAP3 000025d9: MSTORE 000025da: PUSH2 0x21d8 000025dd: SWAP2 000025de: PUSH2 0x05c3 000025e1: DUP3 000025e2: PUSH1 0x64 000025e4: DUP2 000025e5: ADD 000025e6: PUSH2 0x05b5 000025e9: JUMP 000025ea: JUMPDEST 000025eb: PUSH1 0x33 000025ed: DUP1 000025ee: SLOAD 000025ef: PUSH1 0x01 000025f1: PUSH1 0x01 000025f3: PUSH1 0xa0 000025f5: SHL 000025f6: SUB 000025f7: SWAP3 000025f8: DUP4 000025f9: AND 000025fa: PUSH1 0x01 000025fc: PUSH1 0x01 000025fe: PUSH1 0xa0 00002600: SHL 00002601: SUB 00002602: NOT 00002603: DUP3 00002604: AND 00002605: DUP2 00002606: OR 00002607: SWAP1 00002608: SWAP3 00002609: SSTORE 0000260a: SWAP1 0000260b: SWAP2 0000260c: AND 0000260d: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 0000262e: PUSH0 0000262f: DUP1 00002630: LOG3 00002631: JUMP 00002632: JUMPDEST 00002633: PUSH1 0x65 00002635: SLOAD 00002636: DUP2 00002637: LT 00002638: ISZERO 00002639: PUSH2 0x1b54 0000263c: JUMPI 0000263d: PUSH1 0x65 0000263f: PUSH0 00002640: MSTORE 00002641: PUSH1 0x20 00002643: PUSH0 00002644: KECCAK256 00002645: ADD 00002646: SWAP1 00002647: PUSH0 00002648: SWAP1 00002649: JUMP 0000264a: JUMPDEST 0000264b: DUP1 0000264c: SLOAD 0000264d: DUP3 0000264e: LT 0000264f: ISZERO 00002650: PUSH2 0x1b54 00002653: JUMPI 00002654: PUSH0 00002655: MSTORE 00002656: PUSH1 0x20 00002658: PUSH0 00002659: KECCAK256 0000265a: ADD 0000265b: SWAP1 0000265c: PUSH0 0000265d: SWAP1 0000265e: JUMP 0000265f: JUMPDEST 00002660: SWAP2 00002661: PUSH2 0x2678 00002664: SWAP2 00002665: DUP4 00002666: SLOAD 00002667: SWAP1 00002668: PUSH1 0x03 0000266a: SHL 0000266b: SWAP2 0000266c: DUP3 0000266d: SHL 0000266e: SWAP2 0000266f: PUSH0 00002670: NOT 00002671: SWAP1 00002672: SHL 00002673: NOT 00002674: AND 00002675: OR 00002676: SWAP1 00002677: JUMP 00002678: JUMPDEST 00002679: SWAP1 0000267a: SSTORE 0000267b: JUMP 0000267c: JUMPDEST 0000267d: PUSH0 0000267e: DUP2 0000267f: DUP2 00002680: MSTORE 00002681: PUSH1 0xa2 00002683: PUSH1 0x20 00002685: MSTORE 00002686: PUSH1 0x40 00002688: SWAP1 00002689: KECCAK256 0000268a: SLOAD 0000268b: PUSH2 0x26e0 0000268e: JUMPI 0000268f: PUSH1 0xa1 00002691: SLOAD 00002692: PUSH1 0x01 00002694: PUSH1 0x40 00002696: SHL 00002697: DUP2 00002698: LT 00002699: ISZERO 0000269a: PUSH2 0x03d3 0000269d: JUMPI 0000269e: PUSH2 0x26c9 000026a1: PUSH2 0x26b3 000026a4: DUP3 000026a5: PUSH1 0x01 000026a7: DUP6 000026a8: SWAP5 000026a9: ADD 000026aa: PUSH1 0xa1 000026ac: SSTORE 000026ad: PUSH1 0xa1 000026af: PUSH2 0x264a 000026b2: JUMP 000026b3: JUMPDEST 000026b4: DUP2 000026b5: SWAP4 000026b6: SWAP2 000026b7: SLOAD 000026b8: SWAP1 000026b9: PUSH1 0x03 000026bb: SHL 000026bc: SWAP2 000026bd: DUP3 000026be: SHL 000026bf: SWAP2 000026c0: PUSH0 000026c1: NOT 000026c2: SWAP1 000026c3: SHL 000026c4: NOT 000026c5: AND 000026c6: OR 000026c7: SWAP1 000026c8: JUMP 000026c9: JUMPDEST 000026ca: SWAP1 000026cb: SSTORE 000026cc: PUSH1 0xa1 000026ce: SLOAD 000026cf: SWAP1 000026d0: PUSH0 000026d1: MSTORE 000026d2: PUSH1 0xa2 000026d4: PUSH1 0x20 000026d6: MSTORE 000026d7: PUSH1 0x40 000026d9: PUSH0 000026da: KECCAK256 000026db: SSTORE 000026dc: PUSH1 0x01 000026de: SWAP1 000026df: JUMP 000026e0: JUMPDEST 000026e1: POP 000026e2: PUSH0 000026e3: SWAP1 000026e4: JUMP 000026e5: JUMPDEST 000026e6: PUSH0 000026e7: DUP2 000026e8: DUP2 000026e9: MSTORE 000026ea: PUSH1 0x9c 000026ec: PUSH1 0x20 000026ee: MSTORE 000026ef: PUSH1 0x40 000026f1: SWAP1 000026f2: KECCAK256 000026f3: SLOAD 000026f4: PUSH2 0x26e0 000026f7: JUMPI 000026f8: PUSH1 0x9b 000026fa: SLOAD 000026fb: PUSH1 0x01 000026fd: PUSH1 0x40 000026ff: SHL 00002700: DUP2 00002701: LT 00002702: ISZERO 00002703: PUSH2 0x03d3 00002706: JUMPI 00002707: PUSH2 0x271c 0000270a: PUSH2 0x26b3 0000270d: DUP3 0000270e: PUSH1 0x01 00002710: DUP6 00002711: SWAP5 00002712: ADD 00002713: PUSH1 0x9b 00002715: SSTORE 00002716: PUSH1 0x9b 00002718: PUSH2 0x264a 0000271b: JUMP 0000271c: JUMPDEST 0000271d: SWAP1 0000271e: SSTORE 0000271f: PUSH1 0x9b 00002721: SLOAD 00002722: SWAP1 00002723: PUSH0 00002724: MSTORE 00002725: PUSH1 0x9c 00002727: PUSH1 0x20 00002729: MSTORE 0000272a: PUSH1 0x40 0000272c: PUSH0 0000272d: KECCAK256 0000272e: SSTORE 0000272f: PUSH1 0x01 00002731: SWAP1 00002732: JUMP 00002733: JUMPDEST 00002734: PUSH0 00002735: DUP2 00002736: DUP2 00002737: MSTORE 00002738: PUSH1 0x66 0000273a: PUSH1 0x20 0000273c: MSTORE 0000273d: PUSH1 0x40 0000273f: SWAP1 00002740: KECCAK256 00002741: SLOAD 00002742: PUSH2 0x26e0 00002745: JUMPI 00002746: PUSH1 0x65 00002748: SLOAD 00002749: PUSH1 0x01 0000274b: PUSH1 0x40 0000274d: SHL 0000274e: DUP2 0000274f: LT 00002750: ISZERO 00002751: PUSH2 0x03d3 00002754: JUMPI 00002755: PUSH2 0x276a 00002758: PUSH2 0x26b3 0000275b: DUP3 0000275c: PUSH1 0x01 0000275e: DUP6 0000275f: SWAP5 00002760: ADD 00002761: PUSH1 0x65 00002763: SSTORE 00002764: PUSH1 0x65 00002766: PUSH2 0x264a 00002769: JUMP 0000276a: JUMPDEST 0000276b: SWAP1 0000276c: SSTORE 0000276d: PUSH1 0x65 0000276f: SLOAD 00002770: SWAP1 00002771: PUSH0 00002772: MSTORE 00002773: PUSH1 0x66 00002775: PUSH1 0x20 00002777: MSTORE 00002778: PUSH1 0x40 0000277a: PUSH0 0000277b: KECCAK256 0000277c: SSTORE 0000277d: PUSH1 0x01 0000277f: SWAP1 00002780: JUMP 00002781: JUMPDEST 00002782: PUSH0 00002783: DUP2 00002784: DUP2 00002785: MSTORE 00002786: PUSH1 0x9e 00002788: PUSH1 0x20 0000278a: MSTORE 0000278b: PUSH1 0x40 0000278d: SWAP1 0000278e: KECCAK256 0000278f: SLOAD 00002790: PUSH2 0x26e0 00002793: JUMPI 00002794: PUSH1 0x9d 00002796: SLOAD 00002797: PUSH1 0x01 00002799: PUSH1 0x40 0000279b: SHL 0000279c: DUP2 0000279d: LT 0000279e: ISZERO 0000279f: PUSH2 0x03d3 000027a2: JUMPI 000027a3: PUSH2 0x27b8 000027a6: PUSH2 0x26b3 000027a9: DUP3 000027aa: PUSH1 0x01 000027ac: DUP6 000027ad: SWAP5 000027ae: ADD 000027af: PUSH1 0x9d 000027b1: SSTORE 000027b2: PUSH1 0x9d 000027b4: PUSH2 0x264a 000027b7: JUMP 000027b8: JUMPDEST 000027b9: SWAP1 000027ba: SSTORE 000027bb: PUSH1 0x9d 000027bd: SLOAD 000027be: SWAP1 000027bf: PUSH0 000027c0: MSTORE 000027c1: PUSH1 0x9e 000027c3: PUSH1 0x20 000027c5: MSTORE 000027c6: PUSH1 0x40 000027c8: PUSH0 000027c9: KECCAK256 000027ca: SSTORE 000027cb: PUSH1 0x01 000027cd: SWAP1 000027ce: JUMP 000027cf: JUMPDEST 000027d0: DUP2 000027d1: MLOAD 000027d2: PUSH1 0x41 000027d4: DUP2 000027d5: SUB 000027d6: PUSH2 0x27f7 000027d9: JUMPI 000027da: POP 000027db: SWAP1 000027dc: PUSH2 0x08ef 000027df: SWAP2 000027e0: PUSH1 0x20 000027e2: DUP3 000027e3: ADD 000027e4: MLOAD 000027e5: SWAP1 000027e6: PUSH1 0x60 000027e8: PUSH1 0x40 000027ea: DUP5 000027eb: ADD 000027ec: MLOAD 000027ed: SWAP4 000027ee: ADD 000027ef: MLOAD 000027f0: PUSH0 000027f1: BYTE 000027f2: SWAP1 000027f3: PUSH2 0x2d2e 000027f6: JUMP 000027f7: JUMPDEST 000027f8: PUSH1 0x40 000027fa: SUB 000027fb: PUSH2 0x2826 000027fe: JUMPI 000027ff: PUSH1 0x20 00002801: DUP3 00002802: ADD 00002803: MLOAD 00002804: PUSH1 0x40 00002806: SWAP1 00002807: SWAP3 00002808: ADD 00002809: MLOAD 0000280a: PUSH2 0x08ef 0000280d: SWAP3 0000280e: PUSH1 0x01 00002810: PUSH1 0x01 00002812: PUSH1 0xff 00002814: SHL 00002815: SUB 00002816: DUP3 00002817: AND 00002818: SWAP3 00002819: SWAP1 0000281a: SWAP2 0000281b: PUSH1 0xff 0000281d: SHR 0000281e: PUSH1 0x1b 00002820: ADD 00002821: SWAP1 00002822: PUSH2 0x2d2e 00002825: JUMP 00002826: JUMPDEST 00002827: POP 00002828: POP 00002829: PUSH0 0000282a: SWAP1 0000282b: PUSH1 0x02 0000282d: SWAP1 0000282e: JUMP 0000282f: JUMPDEST 00002830: SWAP1 00002831: DUP2 00002832: PUSH1 0x20 00002834: SWAP2 00002835: SUB 00002836: SLT 00002837: PUSH2 0x0253 0000283a: JUMPI 0000283b: MLOAD 0000283c: DUP1 0000283d: ISZERO 0000283e: ISZERO 0000283f: DUP2 00002840: SUB 00002841: PUSH2 0x0253 00002844: JUMPI 00002845: SWAP1 00002846: JUMP 00002847: JUMPDEST 00002848: ISZERO 00002849: PUSH2 0x284e 0000284c: JUMPI 0000284d: JUMP 0000284e: JUMPDEST 0000284f: PUSH1 0x40 00002851: MLOAD 00002852: PUSH3 0x461bcd 00002856: PUSH1 0xe5 00002858: SHL 00002859: DUP2 0000285a: MSTORE 0000285b: PUSH1 0x20 0000285d: PUSH1 0x04 0000285f: DUP3 00002860: ADD 00002861: MSTORE 00002862: PUSH1 0x2a 00002864: PUSH1 0x24 00002866: DUP3 00002867: ADD 00002868: MSTORE 00002869: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 0000288a: PUSH1 0x44 0000288c: DUP3 0000288d: ADD 0000288e: MSTORE 0000288f: PUSH10 0x1bdd081cdd58d8d95959 0000289a: PUSH1 0xb2 0000289c: SHL 0000289d: PUSH1 0x64 0000289f: DUP3 000028a0: ADD 000028a1: MSTORE 000028a2: PUSH1 0x84 000028a4: SWAP1 000028a5: REVERT 000028a6: JUMPDEST 000028a7: PUSH1 0x01 000028a9: DUP1 000028aa: PUSH1 0xa0 000028ac: SHL 000028ad: SUB 000028ae: AND 000028af: SWAP1 000028b0: PUSH1 0x40 000028b2: MLOAD 000028b3: SWAP1 000028b4: PUSH2 0x28be 000028b7: PUSH1 0x40 000028b9: DUP4 000028ba: PUSH2 0x03b2 000028bd: JUMP 000028be: JUMPDEST 000028bf: PUSH1 0x20 000028c1: DUP3 000028c2: MSTORE 000028c3: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 000028e4: PUSH1 0x20 000028e6: DUP4 000028e7: ADD 000028e8: MSTORE 000028e9: DUP3 000028ea: EXTCODESIZE 000028eb: ISZERO 000028ec: PUSH2 0x2933 000028ef: JUMPI 000028f0: PUSH0 000028f1: DUP2 000028f2: PUSH2 0x290e 000028f5: SWAP5 000028f6: DUP3 000028f7: PUSH1 0x20 000028f9: DUP2 000028fa: SWAP6 000028fb: MLOAD 000028fc: SWAP4 000028fd: ADD 000028fe: SWAP2 000028ff: GAS 00002900: CALL 00002901: PUSH2 0x2908 00002904: PUSH2 0x200c 00002907: JUMP 00002908: JUMPDEST 00002909: SWAP1 0000290a: PUSH2 0x2dd7 0000290d: JUMP 0000290e: JUMPDEST 0000290f: DUP1 00002910: MLOAD 00002911: DUP1 00002912: PUSH2 0x2919 00002915: JUMPI 00002916: POP 00002917: POP 00002918: JUMP 00002919: JUMPDEST 0000291a: DUP2 0000291b: PUSH1 0x20 0000291d: DUP1 0000291e: PUSH2 0x292e 00002921: SWAP4 00002922: PUSH2 0x21d8 00002925: SWAP6 00002926: ADD 00002927: ADD 00002928: SWAP2 00002929: ADD 0000292a: PUSH2 0x282f 0000292d: JUMP 0000292e: JUMPDEST 0000292f: PUSH2 0x2847 00002932: JUMP 00002933: JUMPDEST 00002934: PUSH1 0x40 00002936: MLOAD 00002937: PUSH3 0x461bcd 0000293b: PUSH1 0xe5 0000293d: SHL 0000293e: DUP2 0000293f: MSTORE 00002940: PUSH1 0x20 00002942: PUSH1 0x04 00002944: DUP3 00002945: ADD 00002946: MSTORE 00002947: PUSH1 0x1d 00002949: PUSH1 0x24 0000294b: DUP3 0000294c: ADD 0000294d: MSTORE 0000294e: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 0000296f: PUSH1 0x44 00002971: DUP3 00002972: ADD 00002973: MSTORE 00002974: PUSH1 0x64 00002976: SWAP1 00002977: REVERT 00002978: JUMPDEST 00002979: SWAP1 0000297a: PUSH1 0x40 0000297c: MLOAD 0000297d: SWAP1 0000297e: PUSH1 0x20 00002980: DUP3 00002981: ADD 00002982: SWAP3 00002983: PUSH2 0x1901 00002986: PUSH1 0xf0 00002988: SHL 00002989: DUP5 0000298a: MSTORE 0000298b: PUSH1 0x22 0000298d: DUP4 0000298e: ADD 0000298f: MSTORE 00002990: PUSH1 0x42 00002992: DUP3 00002993: ADD 00002994: MSTORE 00002995: PUSH1 0x42 00002997: DUP2 00002998: MSTORE 00002999: PUSH2 0x29a3 0000299c: PUSH1 0x62 0000299e: DUP3 0000299f: PUSH2 0x03b2 000029a2: JUMP 000029a3: JUMPDEST 000029a4: MLOAD 000029a5: SWAP1 000029a6: KECCAK256 000029a7: SWAP1 000029a8: JUMP 000029a9: JUMPDEST 000029aa: PUSH2 0x29b2 000029ad: DUP2 000029ae: PUSH2 0x222e 000029b1: JUMP 000029b2: JUMPDEST 000029b3: DUP1 000029b4: PUSH2 0x29ba 000029b7: JUMPI 000029b8: POP 000029b9: JUMP 000029ba: JUMPDEST 000029bb: PUSH2 0x29c3 000029be: DUP2 000029bf: PUSH2 0x222e 000029c2: JUMP 000029c3: JUMPDEST 000029c4: PUSH1 0x01 000029c6: DUP2 000029c7: SUB 000029c8: PUSH2 0x2a15 000029cb: JUMPI 000029cc: PUSH1 0x40 000029ce: MLOAD 000029cf: PUSH3 0x461bcd 000029d3: PUSH1 0xe5 000029d5: SHL 000029d6: DUP2 000029d7: MSTORE 000029d8: PUSH1 0x20 000029da: PUSH1 0x04 000029dc: DUP3 000029dd: ADD 000029de: MSTORE 000029df: PUSH1 0x18 000029e1: PUSH1 0x24 000029e3: DUP3 000029e4: ADD 000029e5: MSTORE 000029e6: PUSH32 0x45434453413a20696e76616c6964207369676e61747572650000000000000000 00002a07: PUSH1 0x44 00002a09: DUP3 00002a0a: ADD 00002a0b: MSTORE 00002a0c: DUP1 00002a0d: PUSH1 0x64 00002a0f: DUP2 00002a10: ADD 00002a11: JUMPDEST 00002a12: SUB 00002a13: SWAP1 00002a14: REVERT 00002a15: JUMPDEST 00002a16: PUSH2 0x2a1e 00002a19: DUP2 00002a1a: PUSH2 0x222e 00002a1d: JUMP 00002a1e: JUMPDEST 00002a1f: PUSH1 0x02 00002a21: DUP2 00002a22: SUB 00002a23: PUSH2 0x2a6b 00002a26: JUMPI 00002a27: PUSH1 0x40 00002a29: MLOAD 00002a2a: PUSH3 0x461bcd 00002a2e: PUSH1 0xe5 00002a30: SHL 00002a31: DUP2 00002a32: MSTORE 00002a33: PUSH1 0x20 00002a35: PUSH1 0x04 00002a37: DUP3 00002a38: ADD 00002a39: MSTORE 00002a3a: PUSH1 0x1f 00002a3c: PUSH1 0x24 00002a3e: DUP3 00002a3f: ADD 00002a40: MSTORE 00002a41: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265206c656e67746800 00002a62: PUSH1 0x44 00002a64: DUP3 00002a65: ADD 00002a66: MSTORE 00002a67: PUSH1 0x64 00002a69: SWAP1 00002a6a: REVERT 00002a6b: JUMPDEST 00002a6c: PUSH2 0x2a74 00002a6f: DUP2 00002a70: PUSH2 0x222e 00002a73: JUMP 00002a74: JUMPDEST 00002a75: PUSH1 0x03 00002a77: DUP2 00002a78: SUB 00002a79: PUSH2 0x2acc 00002a7c: JUMPI 00002a7d: PUSH1 0x40 00002a7f: MLOAD 00002a80: PUSH3 0x461bcd 00002a84: PUSH1 0xe5 00002a86: SHL 00002a87: DUP2 00002a88: MSTORE 00002a89: PUSH1 0x20 00002a8b: PUSH1 0x04 00002a8d: DUP3 00002a8e: ADD 00002a8f: MSTORE 00002a90: PUSH1 0x22 00002a92: PUSH1 0x24 00002a94: DUP3 00002a95: ADD 00002a96: MSTORE 00002a97: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265202773272076616c 00002ab8: PUSH1 0x44 00002aba: DUP3 00002abb: ADD 00002abc: MSTORE 00002abd: PUSH2 0x7565 00002ac0: PUSH1 0xf0 00002ac2: SHL 00002ac3: PUSH1 0x64 00002ac5: DUP3 00002ac6: ADD 00002ac7: MSTORE 00002ac8: PUSH1 0x84 00002aca: SWAP1 00002acb: REVERT 00002acc: JUMPDEST 00002acd: DUP1 00002ace: PUSH2 0x2ad8 00002ad1: PUSH1 0x04 00002ad3: SWAP3 00002ad4: PUSH2 0x222e 00002ad7: JUMP 00002ad8: JUMPDEST 00002ad9: EQ 00002ada: PUSH2 0x2adf 00002add: JUMPI 00002ade: JUMP 00002adf: JUMPDEST 00002ae0: PUSH1 0x40 00002ae2: MLOAD 00002ae3: PUSH3 0x461bcd 00002ae7: PUSH1 0xe5 00002ae9: SHL 00002aea: DUP2 00002aeb: MSTORE 00002aec: PUSH1 0x20 00002aee: PUSH1 0x04 00002af0: DUP3 00002af1: ADD 00002af2: MSTORE 00002af3: PUSH1 0x22 00002af5: PUSH1 0x24 00002af7: DUP3 00002af8: ADD 00002af9: MSTORE 00002afa: PUSH32 0x45434453413a20696e76616c6964207369676e6174757265202776272076616c 00002b1b: PUSH1 0x44 00002b1d: DUP3 00002b1e: ADD 00002b1f: MSTORE 00002b20: PUSH2 0x7565 00002b23: PUSH1 0xf0 00002b25: SHL 00002b26: PUSH1 0x64 00002b28: DUP3 00002b29: ADD 00002b2a: MSTORE 00002b2b: PUSH1 0x84 00002b2d: SWAP1 00002b2e: REVERT 00002b2f: JUMPDEST 00002b30: PUSH0 00002b31: NOT 00002b32: DUP2 00002b33: ADD 00002b34: SWAP2 00002b35: SWAP1 00002b36: DUP3 00002b37: GT 00002b38: PUSH2 0x2b3d 00002b3b: JUMPI 00002b3c: JUMP 00002b3d: JUMPDEST 00002b3e: PUSH4 0x4e487b71 00002b43: PUSH1 0xe0 00002b45: SHL 00002b46: PUSH0 00002b47: MSTORE 00002b48: PUSH1 0x11 00002b4a: PUSH1 0x04 00002b4c: MSTORE 00002b4d: PUSH1 0x24 00002b4f: PUSH0 00002b50: REVERT 00002b51: JUMPDEST 00002b52: DUP1 00002b53: SLOAD 00002b54: DUP1 00002b55: ISZERO 00002b56: PUSH2 0x2b78 00002b59: JUMPI 00002b5a: PUSH0 00002b5b: NOT 00002b5c: ADD 00002b5d: SWAP1 00002b5e: PUSH2 0x2b67 00002b61: DUP3 00002b62: DUP3 00002b63: PUSH2 0x264a 00002b66: JUMP 00002b67: JUMPDEST 00002b68: DUP2 00002b69: SLOAD 00002b6a: SWAP1 00002b6b: PUSH0 00002b6c: NOT 00002b6d: SWAP1 00002b6e: PUSH1 0x03 00002b70: SHL 00002b71: SHL 00002b72: NOT 00002b73: AND 00002b74: SWAP1 00002b75: SSTORE 00002b76: SSTORE 00002b77: JUMP 00002b78: JUMPDEST 00002b79: PUSH4 0x4e487b71 00002b7e: PUSH1 0xe0 00002b80: SHL 00002b81: PUSH0 00002b82: MSTORE 00002b83: PUSH1 0x31 00002b85: PUSH1 0x04 00002b87: MSTORE 00002b88: PUSH1 0x24 00002b8a: PUSH0 00002b8b: REVERT 00002b8c: JUMPDEST 00002b8d: PUSH0 00002b8e: DUP2 00002b8f: DUP2 00002b90: MSTORE 00002b91: PUSH1 0x9e 00002b93: PUSH1 0x20 00002b95: MSTORE 00002b96: PUSH1 0x40 00002b98: SWAP1 00002b99: KECCAK256 00002b9a: SLOAD 00002b9b: SWAP1 00002b9c: DUP2 00002b9d: ISZERO 00002b9e: PUSH2 0x2c24 00002ba1: JUMPI 00002ba2: PUSH0 00002ba3: NOT 00002ba4: DUP3 00002ba5: ADD 00002ba6: SWAP1 00002ba7: DUP3 00002ba8: DUP3 00002ba9: GT 00002baa: PUSH2 0x2b3d 00002bad: JUMPI 00002bae: PUSH0 00002baf: SWAP3 00002bb0: PUSH2 0x2be3 00002bb3: SWAP3 00002bb4: PUSH2 0x2bbe 00002bb7: PUSH1 0x9d 00002bb9: SLOAD 00002bba: PUSH2 0x2b2f 00002bbd: JUMP 00002bbe: JUMPDEST 00002bbf: SWAP1 00002bc0: DUP1 00002bc1: DUP3 00002bc2: SUB 00002bc3: PUSH2 0x2be9 00002bc6: JUMPI 00002bc7: JUMPDEST 00002bc8: POP 00002bc9: POP 00002bca: POP 00002bcb: PUSH2 0x2bd4 00002bce: PUSH1 0x9d 00002bd0: PUSH2 0x2b51 00002bd3: JUMP 00002bd4: JUMPDEST 00002bd5: PUSH1 0x9e 00002bd7: SWAP1 00002bd8: PUSH0 00002bd9: MSTORE 00002bda: PUSH1 0x20 00002bdc: MSTORE 00002bdd: PUSH1 0x40 00002bdf: PUSH0 00002be0: KECCAK256 00002be1: SWAP1 00002be2: JUMP 00002be3: JUMPDEST 00002be4: SSTORE 00002be5: PUSH1 0x01 00002be7: SWAP1 00002be8: JUMP 00002be9: JUMPDEST 00002bea: PUSH2 0x2bd4 00002bed: PUSH2 0x2c15 00002bf0: SWAP2 00002bf1: PUSH2 0x2c0b 00002bf4: PUSH2 0x2c01 00002bf7: PUSH2 0x2c1b 00002bfa: SWAP6 00002bfb: PUSH1 0x9d 00002bfd: PUSH2 0x264a 00002c00: JUMP 00002c01: JUMPDEST 00002c02: SWAP1 00002c03: SLOAD 00002c04: SWAP1 00002c05: PUSH1 0x03 00002c07: SHL 00002c08: SHR 00002c09: SWAP1 00002c0a: JUMP 00002c0b: JUMPDEST 00002c0c: SWAP3 00002c0d: DUP4 00002c0e: SWAP2 00002c0f: PUSH1 0x9d 00002c11: PUSH2 0x264a 00002c14: JUMP 00002c15: JUMPDEST 00002c16: SWAP1 00002c17: PUSH2 0x265f 00002c1a: JUMP 00002c1b: JUMPDEST 00002c1c: SSTORE 00002c1d: PUSH0 00002c1e: DUP1 00002c1f: DUP1 00002c20: PUSH2 0x2bc7 00002c23: JUMP 00002c24: JUMPDEST 00002c25: POP 00002c26: POP 00002c27: PUSH0 00002c28: SWAP1 00002c29: JUMP 00002c2a: JUMPDEST 00002c2b: PUSH0 00002c2c: DUP2 00002c2d: DUP2 00002c2e: MSTORE 00002c2f: PUSH1 0x9c 00002c31: PUSH1 0x20 00002c33: MSTORE 00002c34: PUSH1 0x40 00002c36: SWAP1 00002c37: KECCAK256 00002c38: SLOAD 00002c39: SWAP1 00002c3a: DUP2 00002c3b: ISZERO 00002c3c: PUSH2 0x2c24 00002c3f: JUMPI 00002c40: PUSH0 00002c41: NOT 00002c42: DUP3 00002c43: ADD 00002c44: SWAP1 00002c45: DUP3 00002c46: DUP3 00002c47: GT 00002c48: PUSH2 0x2b3d 00002c4b: JUMPI 00002c4c: PUSH0 00002c4d: SWAP3 00002c4e: PUSH2 0x2be3 00002c51: SWAP3 00002c52: PUSH2 0x2c5c 00002c55: PUSH1 0x9b 00002c57: SLOAD 00002c58: PUSH2 0x2b2f 00002c5b: JUMP 00002c5c: JUMPDEST 00002c5d: SWAP1 00002c5e: DUP1 00002c5f: DUP3 00002c60: SUB 00002c61: PUSH2 0x2c81 00002c64: JUMPI 00002c65: JUMPDEST 00002c66: POP 00002c67: POP 00002c68: POP 00002c69: PUSH2 0x2c72 00002c6c: PUSH1 0x9b 00002c6e: PUSH2 0x2b51 00002c71: JUMP 00002c72: JUMPDEST 00002c73: PUSH1 0x9c 00002c75: SWAP1 00002c76: PUSH0 00002c77: MSTORE 00002c78: PUSH1 0x20 00002c7a: MSTORE 00002c7b: PUSH1 0x40 00002c7d: PUSH0 00002c7e: KECCAK256 00002c7f: SWAP1 00002c80: JUMP 00002c81: JUMPDEST 00002c82: PUSH2 0x2c72 00002c85: PUSH2 0x2c15 00002c88: SWAP2 00002c89: PUSH2 0x2c99 00002c8c: PUSH2 0x2c01 00002c8f: PUSH2 0x2ca3 00002c92: SWAP6 00002c93: PUSH1 0x9b 00002c95: PUSH2 0x264a 00002c98: JUMP 00002c99: JUMPDEST 00002c9a: SWAP3 00002c9b: DUP4 00002c9c: SWAP2 00002c9d: PUSH1 0x9b 00002c9f: PUSH2 0x264a 00002ca2: JUMP 00002ca3: JUMPDEST 00002ca4: SSTORE 00002ca5: PUSH0 00002ca6: DUP1 00002ca7: DUP1 00002ca8: PUSH2 0x2c65 00002cab: JUMP 00002cac: JUMPDEST 00002cad: PUSH0 00002cae: DUP2 00002caf: DUP2 00002cb0: MSTORE 00002cb1: PUSH1 0x66 00002cb3: PUSH1 0x20 00002cb5: MSTORE 00002cb6: PUSH1 0x40 00002cb8: SWAP1 00002cb9: KECCAK256 00002cba: SLOAD 00002cbb: SWAP1 00002cbc: DUP2 00002cbd: ISZERO 00002cbe: PUSH2 0x2c24 00002cc1: JUMPI 00002cc2: PUSH0 00002cc3: NOT 00002cc4: DUP3 00002cc5: ADD 00002cc6: SWAP1 00002cc7: DUP3 00002cc8: DUP3 00002cc9: GT 00002cca: PUSH2 0x2b3d 00002ccd: JUMPI 00002cce: PUSH0 00002ccf: SWAP3 00002cd0: PUSH2 0x2be3 00002cd3: SWAP3 00002cd4: PUSH2 0x2cde 00002cd7: PUSH1 0x65 00002cd9: SLOAD 00002cda: PUSH2 0x2b2f 00002cdd: JUMP 00002cde: JUMPDEST 00002cdf: SWAP1 00002ce0: DUP1 00002ce1: DUP3 00002ce2: SUB 00002ce3: PUSH2 0x2d03 00002ce6: JUMPI 00002ce7: JUMPDEST 00002ce8: POP 00002ce9: POP 00002cea: POP 00002ceb: PUSH2 0x2cf4 00002cee: PUSH1 0x65 00002cf0: PUSH2 0x2b51 00002cf3: JUMP 00002cf4: JUMPDEST 00002cf5: PUSH1 0x66 00002cf7: SWAP1 00002cf8: PUSH0 00002cf9: MSTORE 00002cfa: PUSH1 0x20 00002cfc: MSTORE 00002cfd: PUSH1 0x40 00002cff: PUSH0 00002d00: KECCAK256 00002d01: SWAP1 00002d02: JUMP 00002d03: JUMPDEST 00002d04: PUSH2 0x2cf4 00002d07: PUSH2 0x2c15 00002d0a: SWAP2 00002d0b: PUSH2 0x2d1b 00002d0e: PUSH2 0x2c01 00002d11: PUSH2 0x2d25 00002d14: SWAP6 00002d15: PUSH1 0x65 00002d17: PUSH2 0x264a 00002d1a: JUMP 00002d1b: JUMPDEST 00002d1c: SWAP3 00002d1d: DUP4 00002d1e: SWAP2 00002d1f: PUSH1 0x65 00002d21: PUSH2 0x264a 00002d24: JUMP 00002d25: JUMPDEST 00002d26: SSTORE 00002d27: PUSH0 00002d28: DUP1 00002d29: DUP1 00002d2a: PUSH2 0x2ce7 00002d2d: JUMP 00002d2e: JUMPDEST 00002d2f: SWAP3 00002d30: SWAP2 00002d31: SWAP1 00002d32: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 00002d53: DUP4 00002d54: GT 00002d55: PUSH2 0x2dcc 00002d58: JUMPI 00002d59: PUSH1 0xff 00002d5b: AND 00002d5c: PUSH1 0x1b 00002d5e: DUP2 00002d5f: EQ 00002d60: ISZERO 00002d61: DUP1 00002d62: PUSH2 0x2dc1 00002d65: JUMPI 00002d66: JUMPDEST 00002d67: PUSH2 0x2db6 00002d6a: JUMPI 00002d6b: PUSH1 0x20 00002d6d: SWAP4 00002d6e: PUSH0 00002d6f: SWAP4 00002d70: PUSH1 0x40 00002d72: MLOAD 00002d73: SWAP4 00002d74: DUP5 00002d75: SWAP4 00002d76: PUSH1 0x80 00002d78: DUP6 00002d79: ADD 00002d7a: SWAP4 00002d7b: DUP6 00002d7c: MSTORE 00002d7d: DUP8 00002d7e: DUP6 00002d7f: ADD 00002d80: MSTORE 00002d81: PUSH1 0x40 00002d83: DUP5 00002d84: ADD 00002d85: MSTORE 00002d86: PUSH1 0x60 00002d88: DUP4 00002d89: ADD 00002d8a: MSTORE 00002d8b: DUP4 00002d8c: DUP1 00002d8d: MSTORE 00002d8e: SUB 00002d8f: SWAP1 00002d90: PUSH1 0x01 00002d92: GAS 00002d93: STATICCALL 00002d94: ISZERO 00002d95: PUSH2 0x065a 00002d98: JUMPI 00002d99: PUSH0 00002d9a: MLOAD 00002d9b: PUSH1 0x01 00002d9d: PUSH1 0x01 00002d9f: PUSH1 0xa0 00002da1: SHL 00002da2: SUB 00002da3: DUP2 00002da4: AND 00002da5: ISZERO 00002da6: PUSH2 0x2dae 00002da9: JUMPI 00002daa: SWAP1 00002dab: PUSH0 00002dac: SWAP1 00002dad: JUMP 00002dae: JUMPDEST 00002daf: POP 00002db0: PUSH0 00002db1: SWAP1 00002db2: PUSH1 0x01 00002db4: SWAP1 00002db5: JUMP 00002db6: JUMPDEST 00002db7: POP 00002db8: POP 00002db9: POP 00002dba: POP 00002dbb: PUSH0 00002dbc: SWAP1 00002dbd: PUSH1 0x04 00002dbf: SWAP1 00002dc0: JUMP 00002dc1: JUMPDEST 00002dc2: POP 00002dc3: PUSH1 0x1c 00002dc5: DUP2 00002dc6: EQ 00002dc7: ISZERO 00002dc8: PUSH2 0x2d66 00002dcb: JUMP 00002dcc: JUMPDEST 00002dcd: POP 00002dce: POP 00002dcf: POP 00002dd0: POP 00002dd1: PUSH0 00002dd2: SWAP1 00002dd3: PUSH1 0x03 00002dd5: SWAP1 00002dd6: JUMP 00002dd7: JUMPDEST 00002dd8: SWAP1 00002dd9: SWAP2 00002dda: SWAP1 00002ddb: ISZERO 00002ddc: PUSH2 0x2de3 00002ddf: JUMPI 00002de0: POP 00002de1: SWAP1 00002de2: JUMP 00002de3: JUMPDEST 00002de4: DUP2 00002de5: MLOAD 00002de6: ISZERO 00002de7: PUSH2 0x2df3 00002dea: JUMPI 00002deb: POP 00002dec: DUP1 00002ded: MLOAD 00002dee: SWAP1 00002def: PUSH1 0x20 00002df1: ADD 00002df2: REVERT 00002df3: JUMPDEST 00002df4: PUSH1 0x40 00002df6: MLOAD 00002df7: PUSH3 0x461bcd 00002dfb: PUSH1 0xe5 00002dfd: SHL 00002dfe: DUP2 00002dff: MSTORE 00002e00: PUSH1 0x20 00002e02: PUSH1 0x04 00002e04: DUP3 00002e05: ADD 00002e06: MSTORE 00002e07: SWAP1 00002e08: DUP2 00002e09: SWAP1 00002e0a: PUSH2 0x2a11 00002e0d: SWAP1 00002e0e: PUSH1 0x24 00002e10: DUP4 00002e11: ADD 00002e12: SWAP1 00002e13: PUSH2 0x224c 00002e16: JUMP 00002e17: INVALID 00002e18: LOG2 00002e19: PUSH5 0x6970667358 00002e1f: UNKNOWN(0x22) 00002e20: SLT 00002e21: KECCAK256 00002e22: PUSH10 0x23132e935b0fcc093d7d 00002e2d: DUP16 00002e2e: UNKNOWN(0x21) 00002e2f: SMOD 00002e30: PUSH8 0xef7b7fe916bd5fe8 00002e39: UNKNOWN(0xDC) 00002e3a: GAS 00002e3b: OR 00002e3c: PUSH14 0xb62f69117464736f6c634300081c 00002e4b: STOP 00002e4c: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0x88263b61c1180627c60ad2385a9edb23412ceb46c57bc5deb6e39975b20ef430
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0x88263b61c1180627c60ad2385a9edb23412ceb46c57bc5deb6e39975b20ef430",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x0eb9142f",
"selector": "0x0eb9142f",
"calldata_variants": [
"0x0eb9142f",
"0x0eb9142f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x14b7c124",
"selector": "0x14b7c124",
"calldata_variants": [
"0x14b7c124",
"0x14b7c1240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1626ba7e",
"selector": "0x1626ba7e",
"calldata_variants": [
"0x1626ba7e",
"0x1626ba7e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x26142335",
"selector": "0x26142335",
"calldata_variants": [
"0x26142335",
"0x261423350000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x34efb1e9",
"selector": "0x34efb1e9",
"calldata_variants": [
"0x34efb1e9",
"0x34efb1e90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x388bb62c",
"selector": "0x388bb62c",
"calldata_variants": [
"0x388bb62c",
"0x388bb62c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3fc8cef3",
"selector": "0x3fc8cef3",
"calldata_variants": [
"0x3fc8cef3",
"0x3fc8cef30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4cf3fe9c",
"selector": "0x4cf3fe9c",
"calldata_variants": [
"0x4cf3fe9c",
"0x4cf3fe9c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 9430,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 9452,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 5064,
"type": "msg_sender_eq_const",
"value": 5069
}
],
"delegatecall_count": 2,
"untrusted_delegatecall_count": 2
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 2
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xbfedc62dd4ff9dd3ee0409f7195dee2f221384fb2ef7995050b6d04db151f37d
call_targets:
0x4dffeb6b78e57aab41d09e88c796e27cf314de6b
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xbfedc62dd4ff9dd3ee0409f7195dee2f221384fb2ef7995050b6d04db151f37d",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x4dffeb6b78e57aab41d09e88c796e27cf314de6b"
],
"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": "0x0eb9142f",
"selector": "0x0eb9142f",
"calldata_variants": [
"0x0eb9142f",
"0x0eb9142f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x14b7c124",
"selector": "0x14b7c124",
"calldata_variants": [
"0x14b7c124",
"0x14b7c1240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1626ba7e",
"selector": "0x1626ba7e",
"calldata_variants": [
"0x1626ba7e",
"0x1626ba7e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x26142335",
"selector": "0x26142335",
"calldata_variants": [
"0x26142335",
"0x261423350000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x34efb1e9",
"selector": "0x34efb1e9",
"calldata_variants": [
"0x34efb1e9",
"0x34efb1e90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x388bb62c",
"selector": "0x388bb62c",
"calldata_variants": [
"0x388bb62c",
"0x388bb62c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3fc8cef3",
"selector": "0x3fc8cef3",
"calldata_variants": [
"0x3fc8cef3",
"0x3fc8cef30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4cf3fe9c",
"selector": "0x4cf3fe9c",
"calldata_variants": [
"0x4cf3fe9c",
"0x4cf3fe9c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3019,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3850,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3912,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 8,
"guards_detected": [
{
"pc": 5064,
"type": "msg_sender_eq_const",
"value": 5069
}
]
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xbfedc62dd4ff9dd3ee0409f7195dee2f221384fb2ef7995050b6d04db151f37d
call_targets:
0x4dffeb6b78e57aab41d09e88c796e27cf314de6b
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xbfedc62dd4ff9dd3ee0409f7195dee2f221384fb2ef7995050b6d04db151f37d",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x4dffeb6b78e57aab41d09e88c796e27cf314de6b"
],
"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": "0x0eb9142f",
"selector": "0x0eb9142f",
"calldata_variants": [
"0x0eb9142f",
"0x0eb9142f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x14b7c124",
"selector": "0x14b7c124",
"calldata_variants": [
"0x14b7c124",
"0x14b7c1240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1626ba7e",
"selector": "0x1626ba7e",
"calldata_variants": [
"0x1626ba7e",
"0x1626ba7e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x26142335",
"selector": "0x26142335",
"calldata_variants": [
"0x26142335",
"0x261423350000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x34efb1e9",
"selector": "0x34efb1e9",
"calldata_variants": [
"0x34efb1e9",
"0x34efb1e90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x388bb62c",
"selector": "0x388bb62c",
"calldata_variants": [
"0x388bb62c",
"0x388bb62c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3fc8cef3",
"selector": "0x3fc8cef3",
"calldata_variants": [
"0x3fc8cef3",
"0x3fc8cef30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4cf3fe9c",
"selector": "0x4cf3fe9c",
"calldata_variants": [
"0x4cf3fe9c",
"0x4cf3fe9c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3019,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3850,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3912,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 8,
"guards_detected": [
{
"pc": 5064,
"type": "msg_sender_eq_const",
"value": 5069
}
],
"untrusted_call_count": 8
}
|
| 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": 5
}
|