3f64d8b1-7867-4b19-ac8a-e7491ef06aa9
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 |
|---|---|---|---|---|
| 30334 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 74188 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 74189 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 74190 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 74191 | capability.graph | complete | 1 / 3 | 1 week ago |
| 74192 | detector.run | complete | 1 / 3 | 1 week ago |
| 74193 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:718012] OpenAI Codex v0.77.0 (research preview)
[codex:718012] --------
[codex:718012] workdir: /tmp/codex-multi-34vp6iro
[codex:718012] model: gpt-5.2-codex
[codex:718012] provider: openai
[codex:718012] approval: never
[codex:718012] sandbox: read-only
[codex:718012] reasoning effort: xhigh
[codex:718012] reasoning summaries: auto
[codex:718012] session id: 019b65e8-7b8b-7a11-9642-a0618f0788a6
[codex:718012] --------
[codex:718012] user
[codex:718012] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:718012] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:718012] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:718012]
[codex:718012] Scope rules:
[codex:718012] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:718012] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:718012]
[codex:718012] Output MUST be valid JSON matching the provided schema.
[codex:718012] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:718012] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:718012]
[codex:718012] Output constraints (IMPORTANT):
[codex:718012] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:718012] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:718012] mcp startup: no servers
[codex:718012]
[codex:718012] thinking
[codex:718012] **Reading AUDIT_BUNDLE.txt**
[codex:718012] exec
[codex:718012] /bin/bash -lc ls in /tmp/codex-multi-34vp6iro succeeded in 5ms:
[codex:718012] AUDIT_BUNDLE.txt
[codex:718012] codex-output-schema.json
[codex:718012] contracts
[codex:718012]
[codex:718012] thinking
[codex:718012] **Opening AUDIT_BUNDLE.txt**
[codex:718012] exec
[codex:718012] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-34vp6iro succeeded in 6ms:
[codex:718012] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:718012]
[codex:718012] ================================================================================
[codex:718012] FILE: contracts/src/components/Governance.sol
[codex:718012] ================================================================================
[codex:718012] /*
[codex:718012] Copyright 2019-2024 StarkWare Industries Ltd.
[codex:718012]
[codex:718012] Licensed under the Apache License, Version 2.0 (the "License").
[codex:718012] You may not use this file except in compliance with the License.
[codex:718012] You may obtain a copy of the License at
[codex:718012]
[codex:718012] https://www.starkware.co/open-source-license/
[codex:718012]
[codex:718012] Unless required by applicable law or agreed to in writing,
[codex:718012] software distributed under the License is distributed on an "AS IS" BASIS,
[codex:718012] WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:718012] See the License for the specific language governing permissions
[codex:718012] and limitations under the License.
[codex:718012] */
[codex:718012]
[codex:718012] thinking
[codex:718012] **Preparing to fully read audit bundle**
[codex:718012] exec
[codex:718012] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-34vp6iro succeeded in 6ms:
[codex:718012] 4:FILE: contracts/src/components/Governance.sol
[codex:718012] 131:FILE: contracts/src/components/GovernanceStorage.sol
[codex:718012] 161:FILE: contracts/src/components/MainStorage.sol
[codex:718012] 301:FILE: contracts/src/interfaces/BlockDirectCall.sol
[codex:718012] 341:FILE: contracts/src/interfaces/IDispatcherBase.sol
[codex:718012] 382:FILE: contracts/src/interfaces/Identity.sol
[codex:718012] 410:FILE: contracts/src/interfaces/MGovernance.sol
[codex:718012] 443:FILE: contracts/src/interfaces/MainDispatcher.sol
[codex:718012] 531:FILE: contracts/src/interfaces/MainDispatcherBase.sol
[codex:718012] 767:FILE: contracts/src/interfaces/SubContractor.sol
[codex:718012] 804:FILE: contracts/src/libraries/Addresses.sol
[codex:718012] 866:FILE: contracts/src/libraries/StarkExTypes.sol
[codex:718012] 902:FILE: contracts/src/perpetual/StarkPerpetual.sol
[codex:718012] 984:FILE: contracts/src/perpetual/components/PerpetualStorage.sol
[codex:718012] 1034:FILE: contracts/src/upgrade/ProxyStorage.sol
[codex:718012]
[codex:718012] thinking
[codex:718012] **Preparing to read MainDispatcherBase file**
[codex:718012] exec
[codex:718012] /bin/bash -lc "sed -n '430,620p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-34vp6iro succeeded in 5ms:
[codex:718012] abstract contract MGovernance {
[codex:718012] function _isGovernor(address user) internal view virtual returns (bool);
[codex:718012]
[codex:718012] /*
[codex:718012] Allows calling the function only by a Governor.
[codex:718012] */
[codex:718012] modifier onlyGovernance() {
[codex:718012] require(_isGovernor(msg.sender), "ONLY_GOVERNANCE");
[codex:718012] _;
[codex:718012] }
[codex:718012] }
[codex:718012]
[codex:718012] ================================================================================
[codex:718012] FILE: contracts/src/interfaces/MainDispatcher.sol
[codex:718012] ================================================================================
[codex:718012] /*
[codex:718012] Copyright 2019-2024 StarkWare Industries Ltd.
[codex:718012]
[codex:718012] Licensed under the Apache License, Version 2.0 (the "License").
[codex:718012] You may not use this file except in compliance with the License.
[codex:718012]
[codex:718012] thinking
[codex:718012] **Continuing file reading**
[codex:718012] exec
[codex:718012] /bin/bash -lc "sed -n '620,860p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-34vp6iro succeeded in 6ms:
[codex:718012] may corrupt it.
[codex:718012]
[codex:718012] In the event that some state initialization is required, the EIC is a hook that allows this.
[codex:718012] It may be deployed and called specifically for this purpose.
[codex:718012]
[codex:718012] The address of the EIC must be provided (if at all) when a new implementation is added to
[codex:718012] a Proxy contract (as part of the initialization vector).
[codex:718012] Hence, it is considered part of the code open to reviewers prior to a time-locked upgrade.
[codex:718012]
[codex:718012] When a custom initialization is performed using an EIC,
[codex:718012] the main dispatcher initialize extracts and stores the sub-contracts addresses, and then
[codex:718012] yields to the EIC, skipping the rest of its initialization code.
[codex:718012]
[codex:718012]
[codex:718012] Flow of MainDispatcher initialize
[codex:718012] ---------------------------------
[codex:718012] 1. Extraction and assignment of subcontracts addresses
[codex:718012] Main dispatcher expects a valid and consistent set of addresses in the passed data.
[codex:718012] It validates that, extracts the addresses from the data, and validates that the addresses
[codex:718012] are of the expected type and order. Then those addresses are stored.
[codex:718012]
[codex:718012]
[codex:718012] thinking
[codex:718012] **Identifying initialization and upgrade vulnerabilities**
[codex:718012]
[codex:718012] I'm analyzing the MainDispatcherBase's initialize function and governance components to spot security risks, focusing on access control and proxy upgrade patterns. It looks like initialize is externally callable via proxy fallback without explicit restrictions, potentially allowing anyone to reset subContracts or trigger delegatecalls to arbitrary external initializers. The lack of strong one-time initialization guards or governance checks in this code raises serious upgradeability and reentrancy concerns, though proxy-level protections might exist externally but aren't visible here. I want to explore how this could be exploited and recommend tighter access control within initialize or at least rigorous sentinel checks.
[codex:718012] thinking
[codex:718012] **Verifying arithmetic checks and fallback behavior**
[codex:718012]
[codex:718012] I'm examining the arithmetic overflow protections in totalInitSizes calculations and confirming that delegatecalls in the fallback function properly handle value and reentrancy concerns. The size overflow risk seems negligible due to calldata and gas limits, and delegatecall properly preserves msg.value. I’m making sure no overlooked issues remain by scanning earlier parts of the audit bundle and other governance files.
[codex:718012] exec
[codex:718012] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-34vp6iro succeeded in 5ms:
[codex:718012] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:718012]
[codex:718012] ================================================================================
[codex:718012] FILE: contracts/src/components/Governance.sol
[codex:718012] ================================================================================
[codex:718012] /*
[codex:718012] Copyright 2019-2024 StarkWare Industries Ltd.
[codex:718012]
[codex:718012] Licensed under the Apache License, Version 2.0 (the "License").
[codex:718012] You may not use this file except in compliance with the License.
[codex:718012] You may obtain a copy of the License at
[codex:718012]
[codex:718012] https://www.starkware.co/open-source-license/
[codex:718012]
[codex:718012] Unless required by applicable law or agreed to in writing,
[codex:718012] software distributed under the License is distributed on an "AS IS" BASIS,
[codex:718012] WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:718012] See the License for the specific language governing permissions
[codex:718012] and limitations under the License.
[codex:718012] */
[codex:718012]
[codex:718012] thinking
[codex:718012] **Assessing critical initialize vulnerability**
[codex:718012] exec
[codex:718012] /bin/bash -lc "nl -ba contracts/src/interfaces/MainDispatcherBase.sol | sed -n '1,220p'" in /tmp/codex-multi-34vp6iro succeeded in 6ms:
[codex:718012] 1 /*
[codex:718012] 2 Copyright 2019-2024 StarkWare Industries Ltd.
[codex:718012] 3
[codex:718012] 4 Licensed under the Apache License, Version 2.0 (the "License").
[codex:718012] 5 You may not use this file except in compliance with the License.
[codex:718012] 6 You may obtain a copy of the License at
[codex:718012] 7
[codex:718012] 8 https://www.starkware.co/open-source-license/
[codex:718012] 9
[codex:718012] 10 Unless required by applicable law or agreed to in writing,
[codex:718012] 11 software distributed under the License is distributed on an "AS IS" BASIS,
[codex:718012] 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[codex:718012] 13 See the License for the specific language governing permissions
[codex:718012] 14 and limitations under the License.
[codex:718012] 15 */
[codex:718012] 16 // SPDX-License-Identifier: Apache-2.0.
[codex:718012] 17 pragma solidity ^0.6.12;
[codex:718012] 18
[codex:718012] 19 import "./SubContractor.sol";
[codex:718012] 20 import "./IDispatcherBase.sol";
[codex:718012]
[codex:718012] thinking
[codex:718012] **Displaying callExternalInitializer line numbers**
[codex:718012] exec
[codex:718012] /bin/bash -lc "nl -ba contracts/src/interfaces/MainDispatcherBase.sol | sed -n '220,320p'" in /tmp/codex-multi-34vp6iro succeeded in 6ms:
[codex:718012] 220 function callExternalInitializer(address externalInitializerAddr, bytes calldata extInitData)
[codex:718012] 221 private
[codex:718012] 222 {
[codex:718012] 223 require(externalInitializerAddr.isContract(), "NOT_A_CONTRACT");
[codex:718012] 224
[codex:718012] 225 // NOLINTNEXTLINE: low-level-calls, controlled-delegatecall.
[codex:718012] 226 (bool success, bytes memory returndata) = externalInitializerAddr.delegatecall(
[codex:718012] 227 abi.encodeWithSelector(this.initialize.selector, extInitData)
[codex:718012] 228 );
[codex:718012] 229 require(success, string(returndata));
[codex:718012] 230 require(returndata.length == 0, string(returndata));
[codex:718012] 231 }
[codex:718012] 232 }
[codex:718012]
[codex:718012] thinking
[codex:718012] **Preparing detailed upgradeability finding**
[codex:718012] codex
[codex:718012] {"no_findings":false,"summary":"Found 1 critical upgradeability/access-control issue: the dispatcher initializer is callable by any proxy caller and can rewrite sub-contract routing or delegatecall arbitrary initializer code.","findings":[{"severity":"critical","category":"upgradeability","title":"Unrestricted dispatcher initialize allows sub-contract takeover and arbitrary delegatecall","exploit_scenario":"An attacker calls `initialize(bytes)` through the proxy (passes `notCalledDirectly`) with crafted calldata. Because there is no access control or one-time guard at the entry, they can replace `subContracts` with malicious contracts (or supply a malicious external initializer) and thus seize control of all delegated logic, drain funds, or corrupt state.","recommendation":"Restrict `initialize` to governance/proxy admin only, and enforce a one-time or upgrade-only guard before writing `subContracts` (e.g., require an initialized flag or an upgrade context set by the proxy). Consider validating/whitelisting the external initializer and removing the `additionalDataSize==0` early return unless explicitly authorized by the upgrade mechanism.","evidence":"`initialize` is external and only gated by `notCalledDirectly`, yet it overwrites `subContracts` and can delegatecall an arbitrary external initializer without any governance check.","locations":["contracts/src/interfaces/MainDispatcherBase.sol:124","contracts/src/interfaces/MainDispatcherBase.sol:144","contracts/src/interfaces/MainDispatcherBase.sol:165","contracts/src/interfaces/MainDispatcherBase.sol:172","contracts/src/interfaces/MainDispatcherBase.sol:226"]}]}
[codex:718012] tokens used
[codex:718012] 34,885
[codex:718012] {"no_findings":false,"summary":"Found 1 critical upgradeability/access-control issue: the dispatcher initializer is callable by any proxy caller and can rewrite sub-contract routing or delegatecall arbitrary initializer code.","findings":[{"severity":"critical","category":"upgradeability","title":"Unrestricted dispatcher initialize allows sub-contract takeover and arbitrary delegatecall","exploit_scenario":"An attacker calls `initialize(bytes)` through the proxy (passes `notCalledDirectly`) with crafted calldata. Because there is no access control or one-time guard at the entry, they can replace `subContracts` with malicious contracts (or supply a malicious external initializer) and thus seize control of all delegated logic, drain funds, or corrupt state.","recommendation":"Restrict `initialize` to governance/proxy admin only, and enforce a one-time or upgrade-only guard before writing `subContracts` (e.g., require an initialized flag or an upgrade context set by the proxy). Consider validating/whitelisting the external initializer and removing the `additionalDataSize==0` early return unless explicitly authorized by the upgrade mechanism.","evidence":"`initialize` is external and only gated by `notCalledDirectly`, yet it overwrites `subContracts` and can delegatecall an arbitrary external initializer without any governance check.","locations":["contracts/src/interfaces/MainDispatcherBase.sol:124","contracts/src/interfaces/MainDispatcherBase.sol:144","contracts/src/interfaces/MainDispatcherBase.sol:165","contracts/src/interfaces/MainDispatcherBase.sol:172","contracts/src/interfaces/MainDispatcherBase.sol:226"]}]}
{
"codex": {
"ran_at": "2025-12-28T17:04:08.911638+00:00",
"returncode": 0
},
"summary": "Found 1 critical upgradeability/access-control issue: the dispatcher initializer is callable by any proxy caller and can rewrite sub-contract routing or delegatecall arbitrary initializer code.",
"raw_final": {
"summary": "Found 1 critical upgradeability/access-control issue: the dispatcher initializer is callable by any proxy caller and can rewrite sub-contract routing or delegatecall arbitrary initializer code.",
"findings": [
{
"title": "Unrestricted dispatcher initialize allows sub-contract takeover and arbitrary delegatecall",
"category": "upgradeability",
"evidence": "`initialize` is external and only gated by `notCalledDirectly`, yet it overwrites `subContracts` and can delegatecall an arbitrary external initializer without any governance check.",
"severity": "critical",
"locations": [
"contracts/src/interfaces/MainDispatcherBase.sol:124",
"contracts/src/interfaces/MainDispatcherBase.sol:144",
"contracts/src/interfaces/MainDispatcherBase.sol:165",
"contracts/src/interfaces/MainDispatcherBase.sol:172",
"contracts/src/interfaces/MainDispatcherBase.sol:226"
],
"recommendation": "Restrict `initialize` to governance/proxy admin only, and enforce a one-time or upgrade-only guard before writing `subContracts` (e.g., require an initialized flag or an upgrade context set by the proxy). Consider validating/whitelisting the external initializer and removing the `additionalDataSize==0` early return unless explicitly authorized by the upgrade mechanism.",
"exploit_scenario": "An attacker calls `initialize(bytes)` through the proxy (passes `notCalledDirectly`) with crafted calldata. Because there is no access control or one-time guard at the entry, they can replace `subContracts` with malicious contracts (or supply a malicious external initializer) and thus seize control of all delegated logic, drain funds, or corrupt state."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x0064 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x2f9014b4 00000019: EQ 0000001a: PUSH2 0x0149 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x439fab91 00000024: EQ 00000025: PUSH2 0x0199 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xadac3e15 0000002f: EQ 00000030: PUSH2 0x0216 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xc1a85130 0000003a: EQ 0000003b: PUSH2 0x023d 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xd4e878e8 00000045: EQ 00000046: PUSH2 0x0252 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf2011f66 00000050: EQ 00000051: PUSH2 0x02fb 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xffa1ad74 0000005b: EQ 0000005c: PUSH2 0x0325 0000005f: JUMPI 00000060: PUSH2 0x00b6 00000063: JUMP 00000064: JUMPDEST 00000065: CALLDATASIZE 00000066: PUSH2 0x00b6 00000069: JUMPI 0000006a: PUSH1 0x40 0000006c: DUP1 0000006d: MLOAD 0000006e: PUSH3 0x461bcd 00000072: PUSH1 0xe5 00000074: SHL 00000075: DUP2 00000076: MSTORE 00000077: PUSH1 0x20 00000079: PUSH1 0x04 0000007b: DUP3 0000007c: ADD 0000007d: DUP2 0000007e: SWAP1 0000007f: MSTORE 00000080: PUSH1 0x24 00000082: DUP3 00000083: ADD 00000084: MSTORE 00000085: PUSH32 0x434f4e54524143545f4e4f545f45585045435445445f544f5f52454345495645 000000a6: PUSH1 0x44 000000a8: DUP3 000000a9: ADD 000000aa: MSTORE 000000ab: SWAP1 000000ac: MLOAD 000000ad: SWAP1 000000ae: DUP2 000000af: SWAP1 000000b0: SUB 000000b1: PUSH1 0x64 000000b3: ADD 000000b4: SWAP1 000000b5: REVERT 000000b6: JUMPDEST 000000b7: PUSH1 0x00 000000b9: PUSH2 0x00cd 000000bc: PUSH1 0x00 000000be: CALLDATALOAD 000000bf: PUSH1 0x01 000000c1: PUSH1 0x01 000000c3: PUSH1 0xe0 000000c5: SHL 000000c6: SUB 000000c7: NOT 000000c8: AND 000000c9: PUSH2 0x033a 000000cc: JUMP 000000cd: JUMPDEST 000000ce: SWAP1 000000cf: POP 000000d0: PUSH1 0x01 000000d2: PUSH1 0x01 000000d4: PUSH1 0xa0 000000d6: SHL 000000d7: SUB 000000d8: DUP2 000000d9: AND 000000da: PUSH2 0x0125 000000dd: JUMPI 000000de: PUSH1 0x40 000000e0: DUP1 000000e1: MLOAD 000000e2: PUSH3 0x461bcd 000000e6: PUSH1 0xe5 000000e8: SHL 000000e9: DUP2 000000ea: MSTORE 000000eb: PUSH1 0x20 000000ed: PUSH1 0x04 000000ef: DUP3 000000f0: ADD 000000f1: MSTORE 000000f2: PUSH1 0x18 000000f4: PUSH1 0x24 000000f6: DUP3 000000f7: ADD 000000f8: MSTORE 000000f9: PUSH24 0x2727afa1a7a72a2920a1aa2fa327a92fa32aa721aa24a7a7 00000112: PUSH1 0x41 00000114: SHL 00000115: PUSH1 0x44 00000117: DUP3 00000118: ADD 00000119: MSTORE 0000011a: SWAP1 0000011b: MLOAD 0000011c: SWAP1 0000011d: DUP2 0000011e: SWAP1 0000011f: SUB 00000120: PUSH1 0x64 00000122: ADD 00000123: SWAP1 00000124: REVERT 00000125: JUMPDEST 00000126: CALLDATASIZE 00000127: PUSH1 0x00 00000129: DUP1 0000012a: CALLDATACOPY 0000012b: PUSH1 0x00 0000012d: DUP1 0000012e: CALLDATASIZE 0000012f: PUSH1 0x00 00000131: DUP5 00000132: GAS 00000133: DELEGATECALL 00000134: RETURNDATASIZE 00000135: PUSH1 0x00 00000137: DUP1 00000138: RETURNDATACOPY 00000139: DUP1 0000013a: DUP1 0000013b: ISZERO 0000013c: PUSH2 0x0144 0000013f: JUMPI 00000140: RETURNDATASIZE 00000141: PUSH1 0x00 00000143: RETURN 00000144: JUMPDEST 00000145: RETURNDATASIZE 00000146: PUSH1 0x00 00000148: REVERT 00000149: JUMPDEST 0000014a: CALLVALUE 0000014b: DUP1 0000014c: ISZERO 0000014d: PUSH2 0x0155 00000150: JUMPI 00000151: PUSH1 0x00 00000153: DUP1 00000154: REVERT 00000155: JUMPDEST 00000156: POP 00000157: PUSH2 0x017d 0000015a: PUSH1 0x04 0000015c: DUP1 0000015d: CALLDATASIZE 0000015e: SUB 0000015f: PUSH1 0x20 00000161: DUP2 00000162: LT 00000163: ISZERO 00000164: PUSH2 0x016c 00000167: JUMPI 00000168: PUSH1 0x00 0000016a: DUP1 0000016b: REVERT 0000016c: JUMPDEST 0000016d: POP 0000016e: CALLDATALOAD 0000016f: PUSH1 0x01 00000171: PUSH1 0x01 00000173: PUSH1 0xe0 00000175: SHL 00000176: SUB 00000177: NOT 00000178: AND 00000179: PUSH2 0x033a 0000017c: JUMP 0000017d: JUMPDEST 0000017e: PUSH1 0x40 00000180: DUP1 00000181: MLOAD 00000182: PUSH1 0x01 00000184: PUSH1 0x01 00000186: PUSH1 0xa0 00000188: SHL 00000189: SUB 0000018a: SWAP1 0000018b: SWAP3 0000018c: AND 0000018d: DUP3 0000018e: MSTORE 0000018f: MLOAD 00000190: SWAP1 00000191: DUP2 00000192: SWAP1 00000193: SUB 00000194: PUSH1 0x20 00000196: ADD 00000197: SWAP1 00000198: RETURN 00000199: JUMPDEST 0000019a: CALLVALUE 0000019b: DUP1 0000019c: ISZERO 0000019d: PUSH2 0x01a5 000001a0: JUMPI 000001a1: PUSH1 0x00 000001a3: DUP1 000001a4: REVERT 000001a5: JUMPDEST 000001a6: POP 000001a7: PUSH2 0x0214 000001aa: PUSH1 0x04 000001ac: DUP1 000001ad: CALLDATASIZE 000001ae: SUB 000001af: PUSH1 0x20 000001b1: DUP2 000001b2: LT 000001b3: ISZERO 000001b4: PUSH2 0x01bc 000001b7: JUMPI 000001b8: PUSH1 0x00 000001ba: DUP1 000001bb: REVERT 000001bc: JUMPDEST 000001bd: DUP2 000001be: ADD 000001bf: SWAP1 000001c0: PUSH1 0x20 000001c2: DUP2 000001c3: ADD 000001c4: DUP2 000001c5: CALLDATALOAD 000001c6: PUSH1 0x01 000001c8: PUSH1 0x20 000001ca: SHL 000001cb: DUP2 000001cc: GT 000001cd: ISZERO 000001ce: PUSH2 0x01d6 000001d1: JUMPI 000001d2: PUSH1 0x00 000001d4: DUP1 000001d5: REVERT 000001d6: JUMPDEST 000001d7: DUP3 000001d8: ADD 000001d9: DUP4 000001da: PUSH1 0x20 000001dc: DUP3 000001dd: ADD 000001de: GT 000001df: ISZERO 000001e0: PUSH2 0x01e8 000001e3: JUMPI 000001e4: PUSH1 0x00 000001e6: DUP1 000001e7: REVERT 000001e8: JUMPDEST 000001e9: DUP1 000001ea: CALLDATALOAD 000001eb: SWAP1 000001ec: PUSH1 0x20 000001ee: ADD 000001ef: SWAP2 000001f0: DUP5 000001f1: PUSH1 0x01 000001f3: DUP4 000001f4: MUL 000001f5: DUP5 000001f6: ADD 000001f7: GT 000001f8: PUSH1 0x01 000001fa: PUSH1 0x20 000001fc: SHL 000001fd: DUP4 000001fe: GT 000001ff: OR 00000200: ISZERO 00000201: PUSH2 0x0209 00000204: JUMPI 00000205: PUSH1 0x00 00000207: DUP1 00000208: REVERT 00000209: JUMPDEST 0000020a: POP 0000020b: SWAP1 0000020c: SWAP3 0000020d: POP 0000020e: SWAP1 0000020f: POP 00000210: PUSH2 0x036b 00000213: JUMP 00000214: JUMPDEST 00000215: STOP 00000216: JUMPDEST 00000217: CALLVALUE 00000218: DUP1 00000219: ISZERO 0000021a: PUSH2 0x0222 0000021d: JUMPI 0000021e: PUSH1 0x00 00000220: DUP1 00000221: REVERT 00000222: JUMPDEST 00000223: POP 00000224: PUSH2 0x022b 00000227: PUSH2 0x09bc 0000022a: JUMP 0000022b: JUMPDEST 0000022c: PUSH1 0x40 0000022e: DUP1 0000022f: MLOAD 00000230: SWAP2 00000231: DUP3 00000232: MSTORE 00000233: MLOAD 00000234: SWAP1 00000235: DUP2 00000236: SWAP1 00000237: SUB 00000238: PUSH1 0x20 0000023a: ADD 0000023b: SWAP1 0000023c: RETURN 0000023d: JUMPDEST 0000023e: CALLVALUE 0000023f: DUP1 00000240: ISZERO 00000241: PUSH2 0x0249 00000244: JUMPI 00000245: PUSH1 0x00 00000247: DUP1 00000248: REVERT 00000249: JUMPDEST 0000024a: POP 0000024b: PUSH2 0x022b 0000024e: PUSH2 0x09ca 00000251: JUMP 00000252: JUMPDEST 00000253: CALLVALUE 00000254: DUP1 00000255: ISZERO 00000256: PUSH2 0x025e 00000259: JUMPI 0000025a: PUSH1 0x00 0000025c: DUP1 0000025d: REVERT 0000025e: JUMPDEST 0000025f: POP 00000260: PUSH2 0x0286 00000263: PUSH1 0x04 00000265: DUP1 00000266: CALLDATASIZE 00000267: SUB 00000268: PUSH1 0x20 0000026a: DUP2 0000026b: LT 0000026c: ISZERO 0000026d: PUSH2 0x0275 00000270: JUMPI 00000271: PUSH1 0x00 00000273: DUP1 00000274: REVERT 00000275: JUMPDEST 00000276: POP 00000277: CALLDATALOAD 00000278: PUSH1 0x01 0000027a: PUSH1 0x01 0000027c: PUSH1 0xe0 0000027e: SHL 0000027f: SUB 00000280: NOT 00000281: AND 00000282: PUSH2 0x09d8 00000285: JUMP 00000286: JUMPDEST 00000287: PUSH1 0x40 00000289: DUP1 0000028a: MLOAD 0000028b: PUSH1 0x20 0000028d: DUP1 0000028e: DUP3 0000028f: MSTORE 00000290: DUP4 00000291: MLOAD 00000292: DUP2 00000293: DUP4 00000294: ADD 00000295: MSTORE 00000296: DUP4 00000297: MLOAD 00000298: SWAP2 00000299: SWAP3 0000029a: DUP4 0000029b: SWAP3 0000029c: SWAP1 0000029d: DUP4 0000029e: ADD 0000029f: SWAP2 000002a0: DUP6 000002a1: ADD 000002a2: SWAP1 000002a3: DUP1 000002a4: DUP4 000002a5: DUP4 000002a6: PUSH1 0x00 000002a8: JUMPDEST 000002a9: DUP4 000002aa: DUP2 000002ab: LT 000002ac: ISZERO 000002ad: PUSH2 0x02c0 000002b0: JUMPI 000002b1: DUP2 000002b2: DUP2 000002b3: ADD 000002b4: MLOAD 000002b5: DUP4 000002b6: DUP3 000002b7: ADD 000002b8: MSTORE 000002b9: PUSH1 0x20 000002bb: ADD 000002bc: PUSH2 0x02a8 000002bf: JUMP 000002c0: JUMPDEST 000002c1: POP 000002c2: POP 000002c3: POP 000002c4: POP 000002c5: SWAP1 000002c6: POP 000002c7: SWAP1 000002c8: DUP2 000002c9: ADD 000002ca: SWAP1 000002cb: PUSH1 0x1f 000002cd: AND 000002ce: DUP1 000002cf: ISZERO 000002d0: PUSH2 0x02ed 000002d3: JUMPI 000002d4: DUP1 000002d5: DUP3 000002d6: SUB 000002d7: DUP1 000002d8: MLOAD 000002d9: PUSH1 0x01 000002db: DUP4 000002dc: PUSH1 0x20 000002de: SUB 000002df: PUSH2 0x0100 000002e2: EXP 000002e3: SUB 000002e4: NOT 000002e5: AND 000002e6: DUP2 000002e7: MSTORE 000002e8: PUSH1 0x20 000002ea: ADD 000002eb: SWAP2 000002ec: POP 000002ed: JUMPDEST 000002ee: POP 000002ef: SWAP3 000002f0: POP 000002f1: POP 000002f2: POP 000002f3: PUSH1 0x40 000002f5: MLOAD 000002f6: DUP1 000002f7: SWAP2 000002f8: SUB 000002f9: SWAP1 000002fa: RETURN 000002fb: JUMPDEST 000002fc: CALLVALUE 000002fd: DUP1 000002fe: ISZERO 000002ff: PUSH2 0x0307 00000302: JUMPI 00000303: PUSH1 0x00 00000305: DUP1 00000306: REVERT 00000307: JUMPDEST 00000308: POP 00000309: PUSH2 0x022b 0000030c: PUSH1 0x04 0000030e: DUP1 0000030f: CALLDATASIZE 00000310: SUB 00000311: PUSH1 0x20 00000313: DUP2 00000314: LT 00000315: ISZERO 00000316: PUSH2 0x031e 00000319: JUMPI 0000031a: PUSH1 0x00 0000031c: DUP1 0000031d: REVERT 0000031e: JUMPDEST 0000031f: POP 00000320: CALLDATALOAD 00000321: PUSH2 0x09f7 00000324: JUMP 00000325: JUMPDEST 00000326: CALLVALUE 00000327: DUP1 00000328: ISZERO 00000329: PUSH2 0x0331 0000032c: JUMPI 0000032d: PUSH1 0x00 0000032f: DUP1 00000330: REVERT 00000331: JUMPDEST 00000332: POP 00000333: PUSH2 0x0286 00000336: PUSH2 0x0a11 00000339: JUMP 0000033a: JUMPDEST 0000033b: PUSH1 0x00 0000033d: PUSH1 0x1e 0000033f: PUSH1 0x00 00000341: PUSH2 0x0349 00000344: DUP5 00000345: PUSH2 0x0a32 00000348: JUMP 00000349: JUMPDEST 0000034a: DUP2 0000034b: MSTORE 0000034c: PUSH1 0x20 0000034e: DUP2 0000034f: ADD 00000350: SWAP2 00000351: SWAP1 00000352: SWAP2 00000353: MSTORE 00000354: PUSH1 0x40 00000356: ADD 00000357: PUSH1 0x00 00000359: KECCAK256 0000035a: SLOAD 0000035b: PUSH1 0x01 0000035d: PUSH1 0x01 0000035f: PUSH1 0xa0 00000361: SHL 00000362: SUB 00000363: AND 00000364: SWAP1 00000365: POP 00000366: JUMPDEST 00000367: SWAP2 00000368: SWAP1 00000369: POP 0000036a: JUMP 0000036b: JUMPDEST 0000036c: PUSH32 0x0000000000000000000000008c43c9bec15d82d153c52518030e0a9590abd35d 0000038d: PUSH1 0x01 0000038f: PUSH1 0x01 00000391: PUSH1 0xa0 00000393: SHL 00000394: SUB 00000395: AND 00000396: ADDRESS 00000397: EQ 00000398: ISZERO 00000399: PUSH2 0x03e2 0000039c: JUMPI 0000039d: PUSH1 0x40 0000039f: DUP1 000003a0: MLOAD 000003a1: PUSH3 0x461bcd 000003a5: PUSH1 0xe5 000003a7: SHL 000003a8: DUP2 000003a9: MSTORE 000003aa: PUSH1 0x20 000003ac: PUSH1 0x04 000003ae: DUP3 000003af: ADD 000003b0: MSTORE 000003b1: PUSH1 0x16 000003b3: PUSH1 0x24 000003b5: DUP3 000003b6: ADD 000003b7: MSTORE 000003b8: PUSH22 0x1112549150d517d0d0531317d11254d0531313d5d151 000003cf: PUSH1 0x52 000003d1: SHL 000003d2: PUSH1 0x44 000003d4: DUP3 000003d5: ADD 000003d6: MSTORE 000003d7: SWAP1 000003d8: MLOAD 000003d9: SWAP1 000003da: DUP2 000003db: SWAP1 000003dc: SUB 000003dd: PUSH1 0x64 000003df: ADD 000003e0: SWAP1 000003e1: REVERT 000003e2: JUMPDEST 000003e3: PUSH1 0x00 000003e5: PUSH2 0x03ec 000003e8: PUSH2 0x0aab 000003eb: JUMP 000003ec: JUMPDEST 000003ed: SWAP1 000003ee: POP 000003ef: PUSH1 0x0f 000003f1: DUP2 000003f2: GT 000003f3: ISZERO 000003f4: PUSH2 0x043d 000003f7: JUMPI 000003f8: PUSH1 0x40 000003fa: DUP1 000003fb: MLOAD 000003fc: PUSH3 0x461bcd 00000400: PUSH1 0xe5 00000402: SHL 00000403: DUP2 00000404: MSTORE 00000405: PUSH1 0x20 00000407: PUSH1 0x04 00000409: DUP3 0000040a: ADD 0000040b: MSTORE 0000040c: PUSH1 0x16 0000040e: PUSH1 0x24 00000410: DUP3 00000411: ADD 00000412: MSTORE 00000413: PUSH22 0x544f4f5f4d414e595f5355425f434f4e545241435453 0000042a: PUSH1 0x50 0000042c: SHL 0000042d: PUSH1 0x44 0000042f: DUP3 00000430: ADD 00000431: MSTORE 00000432: SWAP1 00000433: MLOAD 00000434: SWAP1 00000435: DUP2 00000436: SWAP1 00000437: SUB 00000438: PUSH1 0x64 0000043a: ADD 0000043b: SWAP1 0000043c: REVERT 0000043d: JUMPDEST 0000043e: PUSH1 0x00 00000440: PUSH1 0x20 00000442: PUSH1 0x01 00000444: DUP4 00000445: ADD 00000446: MUL 00000447: DUP1 00000448: DUP5 00000449: LT 0000044a: ISZERO 0000044b: PUSH2 0x049b 0000044e: JUMPI 0000044f: PUSH1 0x40 00000451: DUP1 00000452: MLOAD 00000453: PUSH3 0x461bcd 00000457: PUSH1 0xe5 00000459: SHL 0000045a: DUP2 0000045b: MSTORE 0000045c: PUSH1 0x20 0000045e: PUSH1 0x04 00000460: DUP3 00000461: ADD 00000462: MSTORE 00000463: PUSH1 0x1a 00000465: PUSH1 0x24 00000467: DUP3 00000468: ADD 00000469: MSTORE 0000046a: PUSH32 0x5355425f434f4e5452414354535f4e4f545f50524f5649444544000000000000 0000048b: PUSH1 0x44 0000048d: DUP3 0000048e: ADD 0000048f: MSTORE 00000490: SWAP1 00000491: MLOAD 00000492: SWAP1 00000493: DUP2 00000494: SWAP1 00000495: SUB 00000496: PUSH1 0x64 00000498: ADD 00000499: SWAP1 0000049a: REVERT 0000049b: JUMPDEST 0000049c: DUP1 0000049d: DUP5 0000049e: SUB 0000049f: PUSH1 0x01 000004a1: JUMPDEST 000004a2: DUP5 000004a3: DUP2 000004a4: GT 000004a5: PUSH2 0x04f8 000004a8: JUMPI 000004a9: PUSH1 0x00 000004ab: PUSH2 0x04c0 000004ae: PUSH1 0x20 000004b0: DUP1 000004b1: DUP5 000004b2: MUL 000004b3: SWAP1 000004b4: PUSH1 0x00 000004b6: NOT 000004b7: DUP6 000004b8: ADD 000004b9: MUL 000004ba: DUP10 000004bb: DUP12 000004bc: PUSH2 0x1424 000004bf: JUMP 000004c0: JUMPDEST 000004c1: PUSH1 0x20 000004c3: DUP2 000004c4: LT 000004c5: ISZERO 000004c6: PUSH2 0x04ce 000004c9: JUMPI 000004ca: PUSH1 0x00 000004cc: DUP1 000004cd: REVERT 000004ce: JUMPDEST 000004cf: POP 000004d0: CALLDATALOAD 000004d1: PUSH1 0x01 000004d3: PUSH1 0x01 000004d5: PUSH1 0xa0 000004d7: SHL 000004d8: SUB 000004d9: AND 000004da: SWAP1 000004db: POP 000004dc: PUSH2 0x04e5 000004df: DUP3 000004e0: DUP3 000004e1: PUSH2 0x0ab0 000004e4: JUMP 000004e5: JUMPDEST 000004e6: PUSH2 0x04ef 000004e9: DUP3 000004ea: DUP3 000004eb: PUSH2 0x0e8c 000004ee: JUMP 000004ef: JUMPDEST 000004f0: POP 000004f1: PUSH1 0x01 000004f3: ADD 000004f4: PUSH2 0x04a1 000004f7: JUMP 000004f8: JUMPDEST 000004f9: POP 000004fa: PUSH1 0x00 000004fc: PUSH2 0x050b 000004ff: DUP4 00000500: PUSH1 0x1f 00000502: NOT 00000503: DUP2 00000504: ADD 00000505: DUP9 00000506: DUP11 00000507: PUSH2 0x1424 0000050a: JUMP 0000050b: JUMPDEST 0000050c: PUSH1 0x20 0000050e: DUP2 0000050f: LT 00000510: ISZERO 00000511: PUSH2 0x0519 00000514: JUMPI 00000515: PUSH1 0x00 00000517: DUP1 00000518: REVERT 00000519: JUMPDEST 0000051a: POP 0000051b: CALLDATALOAD 0000051c: PUSH1 0x01 0000051e: PUSH1 0x01 00000520: PUSH1 0xa0 00000522: SHL 00000523: SUB 00000524: AND 00000525: SWAP1 00000526: POP 00000527: DUP1 00000528: ISZERO 00000529: PUSH2 0x054b 0000052c: JUMPI 0000052d: PUSH2 0x0541 00000530: DUP2 00000531: PUSH2 0x053c 00000534: DUP9 00000535: DUP7 00000536: DUP2 00000537: DUP13 00000538: PUSH2 0x1424 0000053b: JUMP 0000053c: JUMPDEST 0000053d: PUSH2 0x0eba 00000540: JUMP 00000541: JUMPDEST 00000542: POP 00000543: POP 00000544: POP 00000545: POP 00000546: POP 00000547: PUSH2 0x09b8 0000054a: JUMP 0000054b: JUMPDEST 0000054c: DUP2 0000054d: PUSH2 0x055a 00000550: JUMPI 00000551: POP 00000552: POP 00000553: POP 00000554: POP 00000555: POP 00000556: PUSH2 0x09b8 00000559: JUMP 0000055a: JUMPDEST 0000055b: PUSH1 0x01 0000055d: PUSH1 0x01 0000055f: PUSH1 0xa0 00000561: SHL 00000562: SUB 00000563: DUP2 00000564: AND 00000565: ISZERO 00000566: PUSH2 0x056b 00000569: JUMPI 0000056a: INVALID 0000056b: JUMPDEST 0000056c: PUSH2 0x0573 0000056f: PUSH2 0x10c8 00000572: JUMP 00000573: JUMPDEST 00000574: PUSH1 0x01 00000576: JUMPDEST 00000577: DUP6 00000578: DUP2 00000579: GT 0000057a: PUSH2 0x095d 0000057d: JUMPI 0000057e: PUSH1 0x00 00000580: PUSH2 0x0595 00000583: PUSH1 0x20 00000585: DUP1 00000586: DUP5 00000587: MUL 00000588: SWAP1 00000589: PUSH1 0x00 0000058b: NOT 0000058c: DUP6 0000058d: ADD 0000058e: MUL 0000058f: DUP11 00000590: DUP13 00000591: PUSH2 0x1424 00000594: JUMP 00000595: JUMPDEST 00000596: PUSH1 0x20 00000598: DUP2 00000599: LT 0000059a: ISZERO 0000059b: PUSH2 0x05a3 0000059e: JUMPI 0000059f: PUSH1 0x00 000005a1: DUP1 000005a2: REVERT 000005a3: JUMPDEST 000005a4: POP 000005a5: PUSH1 0x40 000005a7: DUP1 000005a8: MLOAD 000005a9: PUSH1 0x04 000005ab: DUP2 000005ac: MSTORE 000005ad: PUSH1 0x24 000005af: DUP2 000005b0: ADD 000005b1: DUP3 000005b2: MSTORE 000005b3: PUSH1 0x20 000005b5: DUP2 000005b6: ADD 000005b7: DUP1 000005b8: MLOAD 000005b9: PUSH4 0x3cc660ad 000005be: PUSH1 0xe0 000005c0: SHL 000005c1: PUSH1 0x01 000005c3: PUSH1 0x01 000005c5: PUSH1 0xe0 000005c7: SHL 000005c8: SUB 000005c9: SWAP1 000005ca: SWAP2 000005cb: AND 000005cc: OR 000005cd: DUP2 000005ce: MSTORE 000005cf: SWAP2 000005d0: MLOAD 000005d1: DUP2 000005d2: MLOAD 000005d3: SWAP4 000005d4: CALLDATALOAD 000005d5: PUSH1 0x01 000005d7: PUSH1 0x01 000005d9: PUSH1 0xa0 000005db: SHL 000005dc: SUB 000005dd: AND 000005de: SWAP5 000005df: POP 000005e0: PUSH1 0x00 000005e2: SWAP4 000005e3: PUSH1 0x60 000005e5: SWAP4 000005e6: DUP7 000005e7: SWAP4 000005e8: SWAP3 000005e9: SWAP2 000005ea: DUP3 000005eb: SWAP2 000005ec: SWAP1 000005ed: DUP1 000005ee: DUP4 000005ef: DUP4 000005f0: JUMPDEST 000005f1: PUSH1 0x20 000005f3: DUP4 000005f4: LT 000005f5: PUSH2 0x060f 000005f8: JUMPI 000005f9: DUP1 000005fa: MLOAD 000005fb: DUP3 000005fc: MSTORE 000005fd: PUSH1 0x1f 000005ff: NOT 00000600: SWAP1 00000601: SWAP3 00000602: ADD 00000603: SWAP2 00000604: PUSH1 0x20 00000606: SWAP2 00000607: DUP3 00000608: ADD 00000609: SWAP2 0000060a: ADD 0000060b: PUSH2 0x05f0 0000060e: JUMP 0000060f: JUMPDEST 00000610: PUSH1 0x01 00000612: DUP4 00000613: PUSH1 0x20 00000615: SUB 00000616: PUSH2 0x0100 00000619: EXP 0000061a: SUB 0000061b: DUP1 0000061c: NOT 0000061d: DUP3 0000061e: MLOAD 0000061f: AND 00000620: DUP2 00000621: DUP5 00000622: MLOAD 00000623: AND 00000624: DUP1 00000625: DUP3 00000626: OR 00000627: DUP6 00000628: MSTORE 00000629: POP 0000062a: POP 0000062b: POP 0000062c: POP 0000062d: POP 0000062e: POP 0000062f: SWAP1 00000630: POP 00000631: ADD 00000632: SWAP2 00000633: POP 00000634: POP 00000635: PUSH1 0x00 00000637: PUSH1 0x40 00000639: MLOAD 0000063a: DUP1 0000063b: DUP4 0000063c: SUB 0000063d: DUP2 0000063e: DUP6 0000063f: GAS 00000640: DELEGATECALL 00000641: SWAP2 00000642: POP 00000643: POP 00000644: RETURNDATASIZE 00000645: DUP1 00000646: PUSH1 0x00 00000648: DUP2 00000649: EQ 0000064a: PUSH2 0x066f 0000064d: JUMPI 0000064e: PUSH1 0x40 00000650: MLOAD 00000651: SWAP2 00000652: POP 00000653: PUSH1 0x1f 00000655: NOT 00000656: PUSH1 0x3f 00000658: RETURNDATASIZE 00000659: ADD 0000065a: AND 0000065b: DUP3 0000065c: ADD 0000065d: PUSH1 0x40 0000065f: MSTORE 00000660: RETURNDATASIZE 00000661: DUP3 00000662: MSTORE 00000663: RETURNDATASIZE 00000664: PUSH1 0x00 00000666: PUSH1 0x20 00000668: DUP5 00000669: ADD 0000066a: RETURNDATACOPY 0000066b: PUSH2 0x0674 0000066e: JUMP 0000066f: JUMPDEST 00000670: PUSH1 0x60 00000672: SWAP2 00000673: POP 00000674: JUMPDEST 00000675: POP 00000676: SWAP2 00000677: POP 00000678: SWAP2 00000679: POP 0000067a: DUP2 0000067b: DUP2 0000067c: SWAP1 0000067d: PUSH2 0x0704 00000680: JUMPI 00000681: PUSH1 0x40 00000683: MLOAD 00000684: PUSH3 0x461bcd 00000688: PUSH1 0xe5 0000068a: SHL 0000068b: DUP2 0000068c: MSTORE 0000068d: PUSH1 0x04 0000068f: ADD 00000690: DUP1 00000691: DUP1 00000692: PUSH1 0x20 00000694: ADD 00000695: DUP3 00000696: DUP2 00000697: SUB 00000698: DUP3 00000699: MSTORE 0000069a: DUP4 0000069b: DUP2 0000069c: DUP2 0000069d: MLOAD 0000069e: DUP2 0000069f: MSTORE 000006a0: PUSH1 0x20 000006a2: ADD 000006a3: SWAP2 000006a4: POP 000006a5: DUP1 000006a6: MLOAD 000006a7: SWAP1 000006a8: PUSH1 0x20 000006aa: ADD 000006ab: SWAP1 000006ac: DUP1 000006ad: DUP4 000006ae: DUP4 000006af: PUSH1 0x00 000006b1: JUMPDEST 000006b2: DUP4 000006b3: DUP2 000006b4: LT 000006b5: ISZERO 000006b6: PUSH2 0x06c9 000006b9: JUMPI 000006ba: DUP2 000006bb: DUP2 000006bc: ADD 000006bd: MLOAD 000006be: DUP4 000006bf: DUP3 000006c0: ADD 000006c1: MSTORE 000006c2: PUSH1 0x20 000006c4: ADD 000006c5: PUSH2 0x06b1 000006c8: JUMP 000006c9: JUMPDEST 000006ca: POP 000006cb: POP 000006cc: POP 000006cd: POP 000006ce: SWAP1 000006cf: POP 000006d0: SWAP1 000006d1: DUP2 000006d2: ADD 000006d3: SWAP1 000006d4: PUSH1 0x1f 000006d6: AND 000006d7: DUP1 000006d8: ISZERO 000006d9: PUSH2 0x06f6 000006dc: JUMPI 000006dd: DUP1 000006de: DUP3 000006df: SUB 000006e0: DUP1 000006e1: MLOAD 000006e2: PUSH1 0x01 000006e4: DUP4 000006e5: PUSH1 0x20 000006e7: SUB 000006e8: PUSH2 0x0100 000006eb: EXP 000006ec: SUB 000006ed: NOT 000006ee: AND 000006ef: DUP2 000006f0: MSTORE 000006f1: PUSH1 0x20 000006f3: ADD 000006f4: SWAP2 000006f5: POP 000006f6: JUMPDEST 000006f7: POP 000006f8: SWAP3 000006f9: POP 000006fa: POP 000006fb: POP 000006fc: PUSH1 0x40 000006fe: MLOAD 000006ff: DUP1 00000700: SWAP2 00000701: SUB 00000702: SWAP1 00000703: REVERT 00000704: JUMPDEST 00000705: POP 00000706: PUSH1 0x00 00000708: DUP2 00000709: DUP1 0000070a: PUSH1 0x20 0000070c: ADD 0000070d: SWAP1 0000070e: MLOAD 0000070f: PUSH1 0x20 00000711: DUP2 00000712: LT 00000713: ISZERO 00000714: PUSH2 0x071c 00000717: JUMPI 00000718: PUSH1 0x00 0000071a: DUP1 0000071b: REVERT 0000071c: JUMPDEST 0000071d: POP 0000071e: MLOAD 0000071f: SWAP1 00000720: POP 00000721: DUP7 00000722: DUP2 00000723: GT 00000724: ISZERO 00000725: PUSH2 0x0770 00000728: JUMPI 00000729: PUSH1 0x40 0000072b: DUP1 0000072c: MLOAD 0000072d: PUSH3 0x461bcd 00000731: PUSH1 0xe5 00000733: SHL 00000734: DUP2 00000735: MSTORE 00000736: PUSH1 0x20 00000738: PUSH1 0x04 0000073a: DUP3 0000073b: ADD 0000073c: MSTORE 0000073d: PUSH1 0x18 0000073f: PUSH1 0x24 00000741: DUP3 00000742: ADD 00000743: MSTORE 00000744: PUSH24 0x494e56414c49445f494e495449414c495a45525f53495a45 0000075d: PUSH1 0x40 0000075f: SHL 00000760: PUSH1 0x44 00000762: DUP3 00000763: ADD 00000764: MSTORE 00000765: SWAP1 00000766: MLOAD 00000767: SWAP1 00000768: DUP2 00000769: SWAP1 0000076a: SUB 0000076b: PUSH1 0x64 0000076d: ADD 0000076e: SWAP1 0000076f: REVERT 00000770: JUMPDEST 00000771: DUP7 00000772: DUP2 00000773: DUP11 00000774: ADD 00000775: GT 00000776: ISZERO 00000777: PUSH2 0x07c2 0000077a: JUMPI 0000077b: PUSH1 0x40 0000077d: DUP1 0000077e: MLOAD 0000077f: PUSH3 0x461bcd 00000783: PUSH1 0xe5 00000785: SHL 00000786: DUP2 00000787: MSTORE 00000788: PUSH1 0x20 0000078a: PUSH1 0x04 0000078c: DUP3 0000078d: ADD 0000078e: MSTORE 0000078f: PUSH1 0x18 00000791: PUSH1 0x24 00000793: DUP3 00000794: ADD 00000795: MSTORE 00000796: PUSH24 0x494e56414c49445f494e495449414c495a45525f53495a45 000007af: PUSH1 0x40 000007b1: SHL 000007b2: PUSH1 0x44 000007b4: DUP3 000007b5: ADD 000007b6: MSTORE 000007b7: SWAP1 000007b8: MLOAD 000007b9: SWAP1 000007ba: DUP2 000007bb: SWAP1 000007bc: SUB 000007bd: PUSH1 0x64 000007bf: ADD 000007c0: SWAP1 000007c1: REVERT 000007c2: JUMPDEST 000007c3: DUP1 000007c4: PUSH2 0x07d0 000007c7: JUMPI 000007c8: POP 000007c9: POP 000007ca: POP 000007cb: POP 000007cc: PUSH2 0x0955 000007cf: JUMP 000007d0: JUMPDEST 000007d1: DUP4 000007d2: PUSH1 0x01 000007d4: PUSH1 0x01 000007d6: PUSH1 0xa0 000007d8: SHL 000007d9: SUB 000007da: AND 000007db: PUSH4 0x439fab91 000007e0: PUSH1 0xe0 000007e2: SHL 000007e3: DUP14 000007e4: DUP14 000007e5: DUP12 000007e6: SWAP1 000007e7: DUP6 000007e8: DUP14 000007e9: ADD 000007ea: SWAP3 000007eb: PUSH2 0x07f6 000007ee: SWAP4 000007ef: SWAP3 000007f0: SWAP2 000007f1: SWAP1 000007f2: PUSH2 0x1424 000007f5: JUMP 000007f6: JUMPDEST 000007f7: PUSH1 0x40 000007f9: MLOAD 000007fa: PUSH1 0x20 000007fc: PUSH1 0x24 000007fe: DUP3 000007ff: ADD 00000800: SWAP1 00000801: DUP2 00000802: MSTORE 00000803: PUSH1 0x44 00000805: DUP3 00000806: ADD 00000807: DUP4 00000808: SWAP1 00000809: MSTORE 0000080a: SWAP1 0000080b: DUP2 0000080c: SWAP1 0000080d: PUSH1 0x64 0000080f: ADD 00000810: DUP5 00000811: DUP5 00000812: DUP1 00000813: DUP3 00000814: DUP5 00000815: CALLDATACOPY 00000816: PUSH1 0x00 00000818: DUP4 00000819: DUP3 0000081a: ADD 0000081b: MSTORE 0000081c: PUSH1 0x40 0000081e: DUP1 0000081f: MLOAD 00000820: PUSH1 0x1f 00000822: SWAP1 00000823: SWAP3 00000824: ADD 00000825: PUSH1 0x1f 00000827: NOT 00000828: SWAP1 00000829: DUP2 0000082a: AND 0000082b: SWAP1 0000082c: SWAP5 0000082d: ADD 0000082e: DUP3 0000082f: DUP2 00000830: SUB 00000831: SWAP1 00000832: SWAP5 00000833: ADD 00000834: DUP3 00000835: MSTORE 00000836: SWAP3 00000837: DUP4 00000838: MSTORE 00000839: PUSH1 0x20 0000083b: DUP2 0000083c: ADD 0000083d: DUP1 0000083e: MLOAD 0000083f: PUSH1 0x01 00000841: PUSH1 0x01 00000843: PUSH1 0xe0 00000845: SHL 00000846: SUB 00000847: AND 00000848: PUSH1 0x01 0000084a: PUSH1 0x01 0000084c: PUSH1 0xe0 0000084e: SHL 0000084f: SUB 00000850: NOT 00000851: SWAP1 00000852: SWAP10 00000853: AND 00000854: SWAP9 00000855: SWAP1 00000856: SWAP9 00000857: OR 00000858: DUP9 00000859: MSTORE 0000085a: SWAP2 0000085b: MLOAD 0000085c: DUP3 0000085d: MLOAD 0000085e: SWAP3 0000085f: SWAP8 00000860: SWAP1 00000861: SWAP7 00000862: POP 00000863: DUP7 00000864: SWAP6 00000865: POP 00000866: SWAP4 00000867: POP 00000868: SWAP1 00000869: SWAP2 0000086a: POP 0000086b: DUP2 0000086c: SWAP1 0000086d: POP 0000086e: DUP4 0000086f: DUP4 00000870: JUMPDEST 00000871: PUSH1 0x20 00000873: DUP4 00000874: LT 00000875: PUSH2 0x088f 00000878: JUMPI 00000879: DUP1 0000087a: MLOAD 0000087b: DUP3 0000087c: MSTORE 0000087d: PUSH1 0x1f 0000087f: NOT 00000880: SWAP1 00000881: SWAP3 00000882: ADD 00000883: SWAP2 00000884: PUSH1 0x20 00000886: SWAP2 00000887: DUP3 00000888: ADD 00000889: SWAP2 0000088a: ADD 0000088b: PUSH2 0x0870 0000088e: JUMP 0000088f: JUMPDEST 00000890: PUSH1 0x01 00000892: DUP4 00000893: PUSH1 0x20 00000895: SUB 00000896: PUSH2 0x0100 00000899: EXP 0000089a: SUB 0000089b: DUP1 0000089c: NOT 0000089d: DUP3 0000089e: MLOAD 0000089f: AND 000008a0: DUP2 000008a1: DUP5 000008a2: MLOAD 000008a3: AND 000008a4: DUP1 000008a5: DUP3 000008a6: OR 000008a7: DUP6 000008a8: MSTORE 000008a9: POP 000008aa: POP 000008ab: POP 000008ac: POP 000008ad: POP 000008ae: POP 000008af: SWAP1 000008b0: POP 000008b1: ADD 000008b2: SWAP2 000008b3: POP 000008b4: POP 000008b5: PUSH1 0x00 000008b7: PUSH1 0x40 000008b9: MLOAD 000008ba: DUP1 000008bb: DUP4 000008bc: SUB 000008bd: DUP2 000008be: DUP6 000008bf: GAS 000008c0: DELEGATECALL 000008c1: SWAP2 000008c2: POP 000008c3: POP 000008c4: RETURNDATASIZE 000008c5: DUP1 000008c6: PUSH1 0x00 000008c8: DUP2 000008c9: EQ 000008ca: PUSH2 0x08ef 000008cd: JUMPI 000008ce: PUSH1 0x40 000008d0: MLOAD 000008d1: SWAP2 000008d2: POP 000008d3: PUSH1 0x1f 000008d5: NOT 000008d6: PUSH1 0x3f 000008d8: RETURNDATASIZE 000008d9: ADD 000008da: AND 000008db: DUP3 000008dc: ADD 000008dd: PUSH1 0x40 000008df: MSTORE 000008e0: RETURNDATASIZE 000008e1: DUP3 000008e2: MSTORE 000008e3: RETURNDATASIZE 000008e4: PUSH1 0x00 000008e6: PUSH1 0x20 000008e8: DUP5 000008e9: ADD 000008ea: RETURNDATACOPY 000008eb: PUSH2 0x08f4 000008ee: JUMP 000008ef: JUMPDEST 000008f0: PUSH1 0x60 000008f2: SWAP2 000008f3: POP 000008f4: JUMPDEST 000008f5: POP 000008f6: SWAP1 000008f7: SWAP4 000008f8: POP 000008f9: SWAP2 000008fa: POP 000008fb: DUP2 000008fc: DUP4 000008fd: PUSH2 0x0947 00000900: JUMPI 00000901: PUSH1 0x40 00000903: MLOAD 00000904: PUSH3 0x461bcd 00000908: PUSH1 0xe5 0000090a: SHL 0000090b: DUP2 0000090c: MSTORE 0000090d: PUSH1 0x20 0000090f: PUSH1 0x04 00000911: DUP3 00000912: ADD 00000913: DUP2 00000914: DUP2 00000915: MSTORE 00000916: DUP4 00000917: MLOAD 00000918: PUSH1 0x24 0000091a: DUP5 0000091b: ADD 0000091c: MSTORE 0000091d: DUP4 0000091e: MLOAD 0000091f: SWAP1 00000920: SWAP3 00000921: DUP4 00000922: SWAP3 00000923: PUSH1 0x44 00000925: SWAP1 00000926: SWAP2 00000927: ADD 00000928: SWAP2 00000929: SWAP1 0000092a: DUP6 0000092b: ADD 0000092c: SWAP1 0000092d: DUP1 0000092e: DUP4 0000092f: DUP4 00000930: PUSH1 0x00 00000932: DUP4 00000933: ISZERO 00000934: PUSH2 0x06c9 00000937: JUMPI 00000938: DUP2 00000939: DUP2 0000093a: ADD 0000093b: MLOAD 0000093c: DUP4 0000093d: DUP3 0000093e: ADD 0000093f: MSTORE 00000940: PUSH1 0x20 00000942: ADD 00000943: PUSH2 0x06b1 00000946: JUMP 00000947: JUMPDEST 00000948: POP 00000949: SWAP8 0000094a: DUP9 0000094b: ADD 0000094c: SWAP8 0000094d: SWAP7 0000094e: SWAP1 0000094f: SWAP7 00000950: ADD 00000951: SWAP6 00000952: POP 00000953: POP 00000954: POP 00000955: JUMPDEST 00000956: PUSH1 0x01 00000958: ADD 00000959: PUSH2 0x0576 0000095c: JUMP 0000095d: JUMPDEST 0000095e: POP 0000095f: DUP4 00000960: DUP3 00000961: EQ 00000962: PUSH2 0x09b2 00000965: JUMPI 00000966: PUSH1 0x40 00000968: DUP1 00000969: MLOAD 0000096a: PUSH3 0x461bcd 0000096e: PUSH1 0xe5 00000970: SHL 00000971: DUP2 00000972: MSTORE 00000973: PUSH1 0x20 00000975: PUSH1 0x04 00000977: DUP3 00000978: ADD 00000979: MSTORE 0000097a: PUSH1 0x1a 0000097c: PUSH1 0x24 0000097e: DUP3 0000097f: ADD 00000980: MSTORE 00000981: PUSH32 0x4d49534d41544348494e475f494e49545f444154415f53495a45000000000000 000009a2: PUSH1 0x44 000009a4: DUP3 000009a5: ADD 000009a6: MSTORE 000009a7: SWAP1 000009a8: MLOAD 000009a9: SWAP1 000009aa: DUP2 000009ab: SWAP1 000009ac: SUB 000009ad: PUSH1 0x64 000009af: ADD 000009b0: SWAP1 000009b1: REVERT 000009b2: JUMPDEST 000009b3: POP 000009b4: POP 000009b5: POP 000009b6: POP 000009b7: POP 000009b8: JUMPDEST 000009b9: POP 000009ba: POP 000009bb: JUMP 000009bc: JUMPDEST 000009bd: PUSH9 0x010000000000000001 000009c7: SLOAD 000009c8: DUP2 000009c9: JUMP 000009ca: JUMPDEST 000009cb: PUSH9 0x010000000000000004 000009d5: SLOAD 000009d6: DUP2 000009d7: JUMP 000009d8: JUMPDEST 000009d9: PUSH1 0x60 000009db: PUSH1 0x00 000009dd: PUSH2 0x09e5 000009e0: DUP4 000009e1: PUSH2 0x0a32 000009e4: JUMP 000009e5: JUMPDEST 000009e6: SWAP1 000009e7: POP 000009e8: PUSH2 0x09f0 000009eb: DUP2 000009ec: PUSH2 0x11fd 000009ef: JUMP 000009f0: JUMPDEST 000009f1: SWAP4 000009f2: SWAP3 000009f3: POP 000009f4: POP 000009f5: POP 000009f6: JUMP 000009f7: JUMPDEST 000009f8: PUSH9 0x010000000000000002 00000a02: PUSH1 0x20 00000a04: MSTORE 00000a05: PUSH1 0x00 00000a07: SWAP1 00000a08: DUP2 00000a09: MSTORE 00000a0a: PUSH1 0x40 00000a0c: SWAP1 00000a0d: KECCAK256 00000a0e: SLOAD 00000a0f: DUP2 00000a10: JUMP 00000a11: JUMPDEST 00000a12: PUSH1 0x40 00000a14: MLOAD 00000a15: DUP1 00000a16: PUSH1 0x40 00000a18: ADD 00000a19: PUSH1 0x40 00000a1b: MSTORE 00000a1c: DUP1 00000a1d: PUSH1 0x05 00000a1f: DUP2 00000a20: MSTORE 00000a21: PUSH1 0x20 00000a23: ADD 00000a24: PUSH5 0x0332e322e3 00000a2a: PUSH1 0xdc 00000a2c: SHL 00000a2d: DUP2 00000a2e: MSTORE 00000a2f: POP 00000a30: DUP2 00000a31: JUMP 00000a32: JUMPDEST 00000a33: PUSH1 0x00 00000a35: DUP1 00000a36: DUP3 00000a37: PUSH2 0x0a3e 00000a3a: PUSH2 0x1317 00000a3d: JUMP 00000a3e: JUMPDEST 00000a3f: PUSH1 0x40 00000a41: MLOAD 00000a42: PUSH1 0x20 00000a44: ADD 00000a45: DUP1 00000a46: DUP4 00000a47: PUSH1 0x01 00000a49: PUSH1 0x01 00000a4b: PUSH1 0xe0 00000a4d: SHL 00000a4e: SUB 00000a4f: NOT 00000a50: AND 00000a51: DUP2 00000a52: MSTORE 00000a53: PUSH1 0x04 00000a55: ADD 00000a56: DUP3 00000a57: DUP2 00000a58: MSTORE 00000a59: PUSH1 0x20 00000a5b: ADD 00000a5c: SWAP3 00000a5d: POP 00000a5e: POP 00000a5f: POP 00000a60: PUSH1 0x40 00000a62: MLOAD 00000a63: PUSH1 0x20 00000a65: DUP2 00000a66: DUP4 00000a67: SUB 00000a68: SUB 00000a69: DUP2 00000a6a: MSTORE 00000a6b: SWAP1 00000a6c: PUSH1 0x40 00000a6e: MSTORE 00000a6f: DUP1 00000a70: MLOAD 00000a71: SWAP1 00000a72: PUSH1 0x20 00000a74: ADD 00000a75: KECCAK256 00000a76: PUSH1 0x00 00000a78: SHR 00000a79: PUSH1 0xff 00000a7b: AND 00000a7c: SWAP1 00000a7d: POP 00000a7e: PUSH1 0x00 00000a80: PUSH2 0x0100 00000a83: DUP3 00000a84: PUSH1 0x04 00000a86: MUL 00000a87: DUP2 00000a88: PUSH2 0x0a8d 00000a8b: JUMPI 00000a8c: INVALID 00000a8d: JUMPDEST 00000a8e: MOD 00000a8f: SWAP1 00000a90: POP 00000a91: DUP1 00000a92: PUSH2 0x0a9e 00000a95: PUSH1 0x06 00000a97: DUP5 00000a98: SWAP1 00000a99: SHR 00000a9a: PUSH2 0x131e 00000a9d: JUMP 00000a9e: JUMPDEST 00000a9f: PUSH1 0x0f 00000aa1: SWAP2 00000aa2: SHR 00000aa3: AND 00000aa4: SWAP5 00000aa5: SWAP4 00000aa6: POP 00000aa7: POP 00000aa8: POP 00000aa9: POP 00000aaa: JUMP 00000aab: JUMPDEST 00000aac: PUSH1 0x04 00000aae: SWAP1 00000aaf: JUMP 00000ab0: JUMPDEST 00000ab1: PUSH1 0x60 00000ab3: DUP2 00000ab4: PUSH1 0x01 00000ab6: PUSH1 0x01 00000ab8: PUSH1 0xa0 00000aba: SHL 00000abb: SUB 00000abc: AND 00000abd: PUSH4 0xeeb72866 00000ac2: PUSH1 0x40 00000ac4: MLOAD 00000ac5: DUP2 00000ac6: PUSH4 0xffffffff 00000acb: AND 00000acc: PUSH1 0xe0 00000ace: SHL 00000acf: DUP2 00000ad0: MSTORE 00000ad1: PUSH1 0x04 00000ad3: ADD 00000ad4: PUSH1 0x00 00000ad6: PUSH1 0x40 00000ad8: MLOAD 00000ad9: DUP1 00000ada: DUP4 00000adb: SUB 00000adc: DUP2 00000add: DUP7 00000ade: DUP1 00000adf: EXTCODESIZE 00000ae0: ISZERO 00000ae1: DUP1 00000ae2: ISZERO 00000ae3: PUSH2 0x0aeb 00000ae6: JUMPI 00000ae7: PUSH1 0x00 00000ae9: DUP1 00000aea: REVERT 00000aeb: JUMPDEST 00000aec: POP 00000aed: GAS 00000aee: STATICCALL 00000aef: ISZERO 00000af0: DUP1 00000af1: ISZERO 00000af2: PUSH2 0x0aff 00000af5: JUMPI 00000af6: RETURNDATASIZE 00000af7: PUSH1 0x00 00000af9: DUP1 00000afa: RETURNDATACOPY 00000afb: RETURNDATASIZE 00000afc: PUSH1 0x00 00000afe: REVERT 00000aff: JUMPDEST 00000b00: POP 00000b01: POP 00000b02: POP 00000b03: POP 00000b04: PUSH1 0x40 00000b06: MLOAD 00000b07: RETURNDATASIZE 00000b08: PUSH1 0x00 00000b0a: DUP3 00000b0b: RETURNDATACOPY 00000b0c: PUSH1 0x1f 00000b0e: RETURNDATASIZE 00000b0f: SWAP1 00000b10: DUP2 00000b11: ADD 00000b12: PUSH1 0x1f 00000b14: NOT 00000b15: AND 00000b16: DUP3 00000b17: ADD 00000b18: PUSH1 0x40 00000b1a: MSTORE 00000b1b: PUSH1 0x20 00000b1d: DUP2 00000b1e: LT 00000b1f: ISZERO 00000b20: PUSH2 0x0b28 00000b23: JUMPI 00000b24: PUSH1 0x00 00000b26: DUP1 00000b27: REVERT 00000b28: JUMPDEST 00000b29: DUP2 00000b2a: ADD 00000b2b: SWAP1 00000b2c: DUP1 00000b2d: DUP1 00000b2e: MLOAD 00000b2f: PUSH1 0x40 00000b31: MLOAD 00000b32: SWAP4 00000b33: SWAP3 00000b34: SWAP2 00000b35: SWAP1 00000b36: DUP5 00000b37: PUSH1 0x01 00000b39: PUSH1 0x20 00000b3b: SHL 00000b3c: DUP3 00000b3d: GT 00000b3e: ISZERO 00000b3f: PUSH2 0x0b47 00000b42: JUMPI 00000b43: PUSH1 0x00 00000b45: DUP1 00000b46: REVERT 00000b47: JUMPDEST 00000b48: SWAP1 00000b49: DUP4 00000b4a: ADD 00000b4b: SWAP1 00000b4c: PUSH1 0x20 00000b4e: DUP3 00000b4f: ADD 00000b50: DUP6 00000b51: DUP2 00000b52: GT 00000b53: ISZERO 00000b54: PUSH2 0x0b5c 00000b57: JUMPI 00000b58: PUSH1 0x00 00000b5a: DUP1 00000b5b: REVERT 00000b5c: JUMPDEST 00000b5d: DUP3 00000b5e: MLOAD 00000b5f: PUSH1 0x01 00000b61: PUSH1 0x20 00000b63: SHL 00000b64: DUP2 00000b65: GT 00000b66: DUP3 00000b67: DUP3 00000b68: ADD 00000b69: DUP9 00000b6a: LT 00000b6b: OR 00000b6c: ISZERO 00000b6d: PUSH2 0x0b75 00000b70: JUMPI 00000b71: PUSH1 0x00 00000b73: DUP1 00000b74: REVERT 00000b75: JUMPDEST 00000b76: DUP3 00000b77: MSTORE 00000b78: POP 00000b79: DUP2 00000b7a: MLOAD 00000b7b: PUSH1 0x20 00000b7d: SWAP2 00000b7e: DUP3 00000b7f: ADD 00000b80: SWAP3 00000b81: SWAP1 00000b82: SWAP2 00000b83: ADD 00000b84: SWAP1 00000b85: DUP1 00000b86: DUP4 00000b87: DUP4 00000b88: PUSH1 0x00 00000b8a: JUMPDEST 00000b8b: DUP4 00000b8c: DUP2 00000b8d: LT 00000b8e: ISZERO 00000b8f: PUSH2 0x0ba2 00000b92: JUMPI 00000b93: DUP2 00000b94: DUP2 00000b95: ADD 00000b96: MLOAD 00000b97: DUP4 00000b98: DUP3 00000b99: ADD 00000b9a: MSTORE 00000b9b: PUSH1 0x20 00000b9d: ADD 00000b9e: PUSH2 0x0b8a 00000ba1: JUMP 00000ba2: JUMPDEST 00000ba3: POP 00000ba4: POP 00000ba5: POP 00000ba6: POP 00000ba7: SWAP1 00000ba8: POP 00000ba9: SWAP1 00000baa: DUP2 00000bab: ADD 00000bac: SWAP1 00000bad: PUSH1 0x1f 00000baf: AND 00000bb0: DUP1 00000bb1: ISZERO 00000bb2: PUSH2 0x0bcf 00000bb5: JUMPI 00000bb6: DUP1 00000bb7: DUP3 00000bb8: SUB 00000bb9: DUP1 00000bba: MLOAD 00000bbb: PUSH1 0x01 00000bbd: DUP4 00000bbe: PUSH1 0x20 00000bc0: SUB 00000bc1: PUSH2 0x0100 00000bc4: EXP 00000bc5: SUB 00000bc6: NOT 00000bc7: AND 00000bc8: DUP2 00000bc9: MSTORE 00000bca: PUSH1 0x20 00000bcc: ADD 00000bcd: SWAP2 00000bce: POP 00000bcf: JUMPDEST 00000bd0: POP 00000bd1: PUSH1 0x40 00000bd3: MSTORE 00000bd4: POP 00000bd5: POP 00000bd6: POP 00000bd7: SWAP1 00000bd8: POP 00000bd9: PUSH1 0x00 00000bdb: PUSH2 0x0be3 00000bde: DUP5 00000bdf: PUSH2 0x11fd 00000be2: JUMP 00000be3: JUMPDEST 00000be4: PUSH1 0x40 00000be6: MLOAD 00000be7: PUSH1 0x20 00000be9: ADD 00000bea: DUP1 00000beb: DUP3 00000bec: DUP1 00000bed: MLOAD 00000bee: SWAP1 00000bef: PUSH1 0x20 00000bf1: ADD 00000bf2: SWAP1 00000bf3: DUP1 00000bf4: DUP4 00000bf5: DUP4 00000bf6: JUMPDEST 00000bf7: PUSH1 0x20 00000bf9: DUP4 00000bfa: LT 00000bfb: PUSH2 0x0c15 00000bfe: JUMPI 00000bff: DUP1 00000c00: MLOAD 00000c01: DUP3 00000c02: MSTORE 00000c03: PUSH1 0x1f 00000c05: NOT 00000c06: SWAP1 00000c07: SWAP3 00000c08: ADD 00000c09: SWAP2 00000c0a: PUSH1 0x20 00000c0c: SWAP2 00000c0d: DUP3 00000c0e: ADD 00000c0f: SWAP2 00000c10: ADD 00000c11: PUSH2 0x0bf6 00000c14: JUMP 00000c15: JUMPDEST 00000c16: PUSH1 0x01 00000c18: DUP4 00000c19: PUSH1 0x20 00000c1b: SUB 00000c1c: PUSH2 0x0100 00000c1f: EXP 00000c20: SUB 00000c21: DUP1 00000c22: NOT 00000c23: DUP3 00000c24: MLOAD 00000c25: AND 00000c26: DUP2 00000c27: DUP5 00000c28: MLOAD 00000c29: AND 00000c2a: DUP1 00000c2b: DUP3 00000c2c: OR 00000c2d: DUP6 00000c2e: MSTORE 00000c2f: POP 00000c30: POP 00000c31: POP 00000c32: POP 00000c33: POP 00000c34: POP 00000c35: SWAP1 00000c36: POP 00000c37: ADD 00000c38: SWAP2 00000c39: POP 00000c3a: POP 00000c3b: PUSH1 0x40 00000c3d: MLOAD 00000c3e: PUSH1 0x20 00000c40: DUP2 00000c41: DUP4 00000c42: SUB 00000c43: SUB 00000c44: DUP2 00000c45: MSTORE 00000c46: SWAP1 00000c47: PUSH1 0x40 00000c49: MSTORE 00000c4a: DUP1 00000c4b: MLOAD 00000c4c: SWAP1 00000c4d: PUSH1 0x20 00000c4f: ADD 00000c50: KECCAK256 00000c51: SWAP1 00000c52: POP 00000c53: DUP2 00000c54: PUSH1 0x40 00000c56: MLOAD 00000c57: PUSH1 0x20 00000c59: ADD 00000c5a: DUP1 00000c5b: DUP3 00000c5c: DUP1 00000c5d: MLOAD 00000c5e: SWAP1 00000c5f: PUSH1 0x20 00000c61: ADD 00000c62: SWAP1 00000c63: DUP1 00000c64: DUP4 00000c65: DUP4 00000c66: JUMPDEST 00000c67: PUSH1 0x20 00000c69: DUP4 00000c6a: LT 00000c6b: PUSH2 0x0c85 00000c6e: JUMPI 00000c6f: DUP1 00000c70: MLOAD 00000c71: DUP3 00000c72: MSTORE 00000c73: PUSH1 0x1f 00000c75: NOT 00000c76: SWAP1 00000c77: SWAP3 00000c78: ADD 00000c79: SWAP2 00000c7a: PUSH1 0x20 00000c7c: SWAP2 00000c7d: DUP3 00000c7e: ADD 00000c7f: SWAP2 00000c80: ADD 00000c81: PUSH2 0x0c66 00000c84: JUMP 00000c85: JUMPDEST 00000c86: PUSH1 0x01 00000c88: DUP4 00000c89: PUSH1 0x20 00000c8b: SUB 00000c8c: PUSH2 0x0100 00000c8f: EXP 00000c90: SUB 00000c91: DUP1 00000c92: NOT 00000c93: DUP3 00000c94: MLOAD 00000c95: AND 00000c96: DUP2 00000c97: DUP5 00000c98: MLOAD 00000c99: AND 00000c9a: DUP1 00000c9b: DUP3 00000c9c: OR 00000c9d: DUP6 00000c9e: MSTORE 00000c9f: POP 00000ca0: POP 00000ca1: POP 00000ca2: POP 00000ca3: POP 00000ca4: POP 00000ca5: SWAP1 00000ca6: POP 00000ca7: ADD 00000ca8: SWAP2 00000ca9: POP 00000caa: POP 00000cab: PUSH1 0x40 00000cad: MLOAD 00000cae: PUSH1 0x20 00000cb0: DUP2 00000cb1: DUP4 00000cb2: SUB 00000cb3: SUB 00000cb4: DUP2 00000cb5: MSTORE 00000cb6: SWAP1 00000cb7: PUSH1 0x40 00000cb9: MSTORE 00000cba: DUP1 00000cbb: MLOAD 00000cbc: SWAP1 00000cbd: PUSH1 0x20 00000cbf: ADD 00000cc0: KECCAK256 00000cc1: DUP2 00000cc2: EQ 00000cc3: PUSH2 0x0cfd 00000cc6: JUMPI 00000cc7: PUSH1 0x40 00000cc9: MLOAD 00000cca: PUSH3 0x461bcd 00000cce: PUSH1 0xe5 00000cd0: SHL 00000cd1: DUP2 00000cd2: MSTORE 00000cd3: PUSH1 0x04 00000cd5: ADD 00000cd6: DUP1 00000cd7: DUP1 00000cd8: PUSH1 0x20 00000cda: ADD 00000cdb: DUP3 00000cdc: DUP2 00000cdd: SUB 00000cde: DUP3 00000cdf: MSTORE 00000ce0: PUSH1 0x22 00000ce2: DUP2 00000ce3: MSTORE 00000ce4: PUSH1 0x20 00000ce6: ADD 00000ce7: DUP1 00000ce8: PUSH2 0x1477 00000ceb: PUSH1 0x22 00000ced: SWAP2 00000cee: CODECOPY 00000cef: PUSH1 0x40 00000cf1: ADD 00000cf2: SWAP2 00000cf3: POP 00000cf4: POP 00000cf5: PUSH1 0x40 00000cf7: MLOAD 00000cf8: DUP1 00000cf9: SWAP2 00000cfa: SUB 00000cfb: SWAP1 00000cfc: REVERT 00000cfd: JUMPDEST 00000cfe: PUSH1 0x60 00000d00: DUP4 00000d01: PUSH1 0x01 00000d03: PUSH1 0x01 00000d05: PUSH1 0xa0 00000d07: SHL 00000d08: SUB 00000d09: AND 00000d0a: PUSH4 0x0ebdac03 00000d0f: PUSH1 0x40 00000d11: MLOAD 00000d12: DUP2 00000d13: PUSH4 0xffffffff 00000d18: AND 00000d19: PUSH1 0xe0 00000d1b: SHL 00000d1c: DUP2 00000d1d: MSTORE 00000d1e: PUSH1 0x04 00000d20: ADD 00000d21: PUSH1 0x00 00000d23: PUSH1 0x40 00000d25: MLOAD 00000d26: DUP1 00000d27: DUP4 00000d28: SUB 00000d29: DUP2 00000d2a: DUP7 00000d2b: DUP1 00000d2c: EXTCODESIZE 00000d2d: ISZERO 00000d2e: DUP1 00000d2f: ISZERO 00000d30: PUSH2 0x0d38 00000d33: JUMPI 00000d34: PUSH1 0x00 00000d36: DUP1 00000d37: REVERT 00000d38: JUMPDEST 00000d39: POP 00000d3a: GAS 00000d3b: STATICCALL 00000d3c: ISZERO 00000d3d: DUP1 00000d3e: ISZERO 00000d3f: PUSH2 0x0d4c 00000d42: JUMPI 00000d43: RETURNDATASIZE 00000d44: PUSH1 0x00 00000d46: DUP1 00000d47: RETURNDATACOPY 00000d48: RETURNDATASIZE 00000d49: PUSH1 0x00 00000d4b: REVERT 00000d4c: JUMPDEST 00000d4d: POP 00000d4e: POP 00000d4f: POP 00000d50: POP 00000d51: PUSH1 0x40 00000d53: MLOAD 00000d54: RETURNDATASIZE 00000d55: PUSH1 0x00 00000d57: DUP3 00000d58: RETURNDATACOPY 00000d59: PUSH1 0x1f 00000d5b: RETURNDATASIZE 00000d5c: SWAP1 00000d5d: DUP2 00000d5e: ADD 00000d5f: PUSH1 0x1f 00000d61: NOT 00000d62: AND 00000d63: DUP3 00000d64: ADD 00000d65: PUSH1 0x40 00000d67: MSTORE 00000d68: PUSH1 0x20 00000d6a: DUP2 00000d6b: LT 00000d6c: ISZERO 00000d6d: PUSH2 0x0d75 00000d70: JUMPI 00000d71: PUSH1 0x00 00000d73: DUP1 00000d74: REVERT 00000d75: JUMPDEST 00000d76: DUP2 00000d77: ADD 00000d78: SWAP1 00000d79: DUP1 00000d7a: DUP1 00000d7b: MLOAD 00000d7c: PUSH1 0x40 00000d7e: MLOAD 00000d7f: SWAP4 00000d80: SWAP3 00000d81: SWAP2 00000d82: SWAP1 00000d83: DUP5 00000d84: PUSH1 0x01 00000d86: PUSH1 0x20 00000d88: SHL 00000d89: DUP3 00000d8a: GT 00000d8b: ISZERO 00000d8c: PUSH2 0x0d94 00000d8f: JUMPI 00000d90: PUSH1 0x00 00000d92: DUP1 00000d93: REVERT 00000d94: JUMPDEST 00000d95: SWAP1 00000d96: DUP4 00000d97: ADD 00000d98: SWAP1 00000d99: PUSH1 0x20 00000d9b: DUP3 00000d9c: ADD 00000d9d: DUP6 00000d9e: DUP2 00000d9f: GT 00000da0: ISZERO 00000da1: PUSH2 0x0da9 00000da4: JUMPI 00000da5: PUSH1 0x00 00000da7: DUP1 00000da8: REVERT 00000da9: JUMPDEST 00000daa: DUP3 00000dab: MLOAD 00000dac: DUP7 00000dad: PUSH1 0x20 00000daf: DUP3 00000db0: MUL 00000db1: DUP4 00000db2: ADD 00000db3: GT 00000db4: PUSH1 0x01 00000db6: PUSH1 0x20 00000db8: SHL 00000db9: DUP3 00000dba: GT 00000dbb: OR 00000dbc: ISZERO 00000dbd: PUSH2 0x0dc5 00000dc0: JUMPI 00000dc1: PUSH1 0x00 00000dc3: DUP1 00000dc4: REVERT 00000dc5: JUMPDEST 00000dc6: DUP3 00000dc7: MSTORE 00000dc8: POP 00000dc9: DUP2 00000dca: MLOAD 00000dcb: PUSH1 0x20 00000dcd: SWAP2 00000dce: DUP3 00000dcf: ADD 00000dd0: SWAP3 00000dd1: DUP3 00000dd2: ADD 00000dd3: SWAP2 00000dd4: MUL 00000dd5: DUP1 00000dd6: DUP4 00000dd7: DUP4 00000dd8: PUSH1 0x00 00000dda: JUMPDEST 00000ddb: DUP4 00000ddc: DUP2 00000ddd: LT 00000dde: ISZERO 00000ddf: PUSH2 0x0df2 00000de2: JUMPI 00000de3: DUP2 00000de4: DUP2 00000de5: ADD 00000de6: MLOAD 00000de7: DUP4 00000de8: DUP3 00000de9: ADD 00000dea: MSTORE 00000deb: PUSH1 0x20 00000ded: ADD 00000dee: PUSH2 0x0dda 00000df1: JUMP 00000df2: JUMPDEST 00000df3: POP 00000df4: POP 00000df5: POP 00000df6: POP 00000df7: SWAP1 00000df8: POP 00000df9: ADD 00000dfa: PUSH1 0x40 00000dfc: MSTORE 00000dfd: POP 00000dfe: POP 00000dff: POP 00000e00: SWAP1 00000e01: POP 00000e02: PUSH1 0x00 00000e04: JUMPDEST 00000e05: DUP2 00000e06: MLOAD 00000e07: DUP2 00000e08: LT 00000e09: ISZERO 00000e0a: PUSH2 0x0e84 00000e0d: JUMPI 00000e0e: DUP6 00000e0f: PUSH2 0x0e2a 00000e12: DUP4 00000e13: DUP4 00000e14: DUP2 00000e15: MLOAD 00000e16: DUP2 00000e17: LT 00000e18: PUSH2 0x0e1d 00000e1b: JUMPI 00000e1c: INVALID 00000e1d: JUMPDEST 00000e1e: PUSH1 0x20 00000e20: MUL 00000e21: PUSH1 0x20 00000e23: ADD 00000e24: ADD 00000e25: MLOAD 00000e26: PUSH2 0x0a32 00000e29: JUMP 00000e2a: JUMPDEST 00000e2b: EQ 00000e2c: PUSH2 0x0e7c 00000e2f: JUMPI 00000e30: PUSH1 0x40 00000e32: DUP1 00000e33: MLOAD 00000e34: PUSH3 0x461bcd 00000e38: PUSH1 0xe5 00000e3a: SHL 00000e3b: DUP2 00000e3c: MSTORE 00000e3d: PUSH1 0x20 00000e3f: PUSH1 0x04 00000e41: DUP3 00000e42: ADD 00000e43: MSTORE 00000e44: PUSH1 0x1b 00000e46: PUSH1 0x24 00000e48: DUP3 00000e49: ADD 00000e4a: MSTORE 00000e4b: PUSH32 0x494e434f4e53495354454e545f444953504154434845525f4d41500000000000 00000e6c: PUSH1 0x44 00000e6e: DUP3 00000e6f: ADD 00000e70: MSTORE 00000e71: SWAP1 00000e72: MLOAD 00000e73: SWAP1 00000e74: DUP2 00000e75: SWAP1 00000e76: SUB 00000e77: PUSH1 0x64 00000e79: ADD 00000e7a: SWAP1 00000e7b: REVERT 00000e7c: JUMPDEST 00000e7d: PUSH1 0x01 00000e7f: ADD 00000e80: PUSH2 0x0e04 00000e83: JUMP 00000e84: JUMPDEST 00000e85: POP 00000e86: POP 00000e87: POP 00000e88: POP 00000e89: POP 00000e8a: POP 00000e8b: JUMP 00000e8c: JUMPDEST 00000e8d: PUSH1 0x00 00000e8f: SWAP2 00000e90: DUP3 00000e91: MSTORE 00000e92: PUSH1 0x1e 00000e94: PUSH1 0x20 00000e96: MSTORE 00000e97: PUSH1 0x40 00000e99: SWAP1 00000e9a: SWAP2 00000e9b: KECCAK256 00000e9c: DUP1 00000e9d: SLOAD 00000e9e: PUSH1 0x01 00000ea0: PUSH1 0x01 00000ea2: PUSH1 0xa0 00000ea4: SHL 00000ea5: SUB 00000ea6: NOT 00000ea7: AND 00000ea8: PUSH1 0x01 00000eaa: PUSH1 0x01 00000eac: PUSH1 0xa0 00000eae: SHL 00000eaf: SUB 00000eb0: SWAP1 00000eb1: SWAP3 00000eb2: AND 00000eb3: SWAP2 00000eb4: SWAP1 00000eb5: SWAP2 00000eb6: OR 00000eb7: SWAP1 00000eb8: SSTORE 00000eb9: JUMP 00000eba: JUMPDEST 00000ebb: PUSH2 0x0ecc 00000ebe: DUP4 00000ebf: PUSH1 0x01 00000ec1: PUSH1 0x01 00000ec3: PUSH1 0xa0 00000ec5: SHL 00000ec6: SUB 00000ec7: AND 00000ec8: PUSH2 0x141e 00000ecb: JUMP 00000ecc: JUMPDEST 00000ecd: PUSH2 0x0f0e 00000ed0: JUMPI 00000ed1: PUSH1 0x40 00000ed3: DUP1 00000ed4: MLOAD 00000ed5: PUSH3 0x461bcd 00000ed9: PUSH1 0xe5 00000edb: SHL 00000edc: DUP2 00000edd: MSTORE 00000ede: PUSH1 0x20 00000ee0: PUSH1 0x04 00000ee2: DUP3 00000ee3: ADD 00000ee4: MSTORE 00000ee5: PUSH1 0x0e 00000ee7: PUSH1 0x24 00000ee9: DUP3 00000eea: ADD 00000eeb: MSTORE 00000eec: PUSH14 0x1393d517d057d0d3d395149050d5 00000efb: PUSH1 0x92 00000efd: SHL 00000efe: PUSH1 0x44 00000f00: DUP3 00000f01: ADD 00000f02: MSTORE 00000f03: SWAP1 00000f04: MLOAD 00000f05: SWAP1 00000f06: DUP2 00000f07: SWAP1 00000f08: SUB 00000f09: PUSH1 0x64 00000f0b: ADD 00000f0c: SWAP1 00000f0d: REVERT 00000f0e: JUMPDEST 00000f0f: PUSH1 0x00 00000f11: PUSH1 0x60 00000f13: DUP5 00000f14: PUSH1 0x01 00000f16: PUSH1 0x01 00000f18: PUSH1 0xa0 00000f1a: SHL 00000f1b: SUB 00000f1c: AND 00000f1d: PUSH4 0x439fab91 00000f22: PUSH1 0xe0 00000f24: SHL 00000f25: DUP6 00000f26: DUP6 00000f27: PUSH1 0x40 00000f29: MLOAD 00000f2a: PUSH1 0x24 00000f2c: ADD 00000f2d: DUP1 00000f2e: DUP1 00000f2f: PUSH1 0x20 00000f31: ADD 00000f32: DUP3 00000f33: DUP2 00000f34: SUB 00000f35: DUP3 00000f36: MSTORE 00000f37: DUP5 00000f38: DUP5 00000f39: DUP3 00000f3a: DUP2 00000f3b: DUP2 00000f3c: MSTORE 00000f3d: PUSH1 0x20 00000f3f: ADD 00000f40: SWAP3 00000f41: POP 00000f42: DUP1 00000f43: DUP3 00000f44: DUP5 00000f45: CALLDATACOPY 00000f46: PUSH1 0x00 00000f48: DUP4 00000f49: DUP3 00000f4a: ADD 00000f4b: MSTORE 00000f4c: PUSH1 0x40 00000f4e: DUP1 00000f4f: MLOAD 00000f50: PUSH1 0x1f 00000f52: SWAP1 00000f53: SWAP3 00000f54: ADD 00000f55: PUSH1 0x1f 00000f57: NOT 00000f58: SWAP1 00000f59: DUP2 00000f5a: AND 00000f5b: SWAP1 00000f5c: SWAP5 00000f5d: ADD 00000f5e: DUP3 00000f5f: DUP2 00000f60: SUB 00000f61: SWAP1 00000f62: SWAP5 00000f63: ADD 00000f64: DUP3 00000f65: MSTORE 00000f66: SWAP3 00000f67: DUP4 00000f68: MSTORE 00000f69: PUSH1 0x20 00000f6b: DUP2 00000f6c: ADD 00000f6d: DUP1 00000f6e: MLOAD 00000f6f: PUSH1 0x01 00000f71: PUSH1 0x01 00000f73: PUSH1 0xe0 00000f75: SHL 00000f76: SUB 00000f77: AND 00000f78: PUSH1 0x01 00000f7a: PUSH1 0x01 00000f7c: PUSH1 0xe0 00000f7e: SHL 00000f7f: SUB 00000f80: NOT 00000f81: SWAP1 00000f82: SWAP10 00000f83: AND 00000f84: SWAP9 00000f85: SWAP1 00000f86: SWAP9 00000f87: OR 00000f88: DUP9 00000f89: MSTORE 00000f8a: SWAP2 00000f8b: MLOAD 00000f8c: DUP3 00000f8d: MLOAD 00000f8e: SWAP3 00000f8f: SWAP8 00000f90: SWAP1 00000f91: SWAP7 00000f92: POP 00000f93: DUP7 00000f94: SWAP6 00000f95: POP 00000f96: SWAP4 00000f97: POP 00000f98: SWAP1 00000f99: SWAP2 00000f9a: POP 00000f9b: DUP2 00000f9c: SWAP1 00000f9d: POP 00000f9e: DUP4 00000f9f: DUP4 00000fa0: JUMPDEST 00000fa1: PUSH1 0x20 00000fa3: DUP4 00000fa4: LT 00000fa5: PUSH2 0x0fbf 00000fa8: JUMPI 00000fa9: DUP1 00000faa: MLOAD 00000fab: DUP3 00000fac: MSTORE 00000fad: PUSH1 0x1f 00000faf: NOT 00000fb0: SWAP1 00000fb1: SWAP3 00000fb2: ADD 00000fb3: SWAP2 00000fb4: PUSH1 0x20 00000fb6: SWAP2 00000fb7: DUP3 00000fb8: ADD 00000fb9: SWAP2 00000fba: ADD 00000fbb: PUSH2 0x0fa0 00000fbe: JUMP 00000fbf: JUMPDEST 00000fc0: PUSH1 0x01 00000fc2: DUP4 00000fc3: PUSH1 0x20 00000fc5: SUB 00000fc6: PUSH2 0x0100 00000fc9: EXP 00000fca: SUB 00000fcb: DUP1 00000fcc: NOT 00000fcd: DUP3 00000fce: MLOAD 00000fcf: AND 00000fd0: DUP2 00000fd1: DUP5 00000fd2: MLOAD 00000fd3: AND 00000fd4: DUP1 00000fd5: DUP3 00000fd6: OR 00000fd7: DUP6 00000fd8: MSTORE 00000fd9: POP 00000fda: POP 00000fdb: POP 00000fdc: POP 00000fdd: POP 00000fde: POP 00000fdf: SWAP1 00000fe0: POP 00000fe1: ADD 00000fe2: SWAP2 00000fe3: POP 00000fe4: POP 00000fe5: PUSH1 0x00 00000fe7: PUSH1 0x40 00000fe9: MLOAD 00000fea: DUP1 00000feb: DUP4 00000fec: SUB 00000fed: DUP2 00000fee: DUP6 00000fef: GAS 00000ff0: DELEGATECALL 00000ff1: SWAP2 00000ff2: POP 00000ff3: POP 00000ff4: RETURNDATASIZE 00000ff5: DUP1 00000ff6: PUSH1 0x00 00000ff8: DUP2 00000ff9: EQ 00000ffa: PUSH2 0x101f 00000ffd: JUMPI 00000ffe: PUSH1 0x40 00001000: MLOAD 00001001: SWAP2 00001002: POP 00001003: PUSH1 0x1f 00001005: NOT 00001006: PUSH1 0x3f 00001008: RETURNDATASIZE 00001009: ADD 0000100a: AND 0000100b: DUP3 0000100c: ADD 0000100d: PUSH1 0x40 0000100f: MSTORE 00001010: RETURNDATASIZE 00001011: DUP3 00001012: MSTORE 00001013: RETURNDATASIZE 00001014: PUSH1 0x00 00001016: PUSH1 0x20 00001018: DUP5 00001019: ADD 0000101a: RETURNDATACOPY 0000101b: PUSH2 0x1024 0000101e: JUMP 0000101f: JUMPDEST 00001020: PUSH1 0x60 00001022: SWAP2 00001023: POP 00001024: JUMPDEST 00001025: POP 00001026: SWAP2 00001027: POP 00001028: SWAP2 00001029: POP 0000102a: DUP2 0000102b: DUP2 0000102c: SWAP1 0000102d: PUSH2 0x1077 00001030: JUMPI 00001031: PUSH1 0x40 00001033: MLOAD 00001034: PUSH3 0x461bcd 00001038: PUSH1 0xe5 0000103a: SHL 0000103b: DUP2 0000103c: MSTORE 0000103d: PUSH1 0x20 0000103f: PUSH1 0x04 00001041: DUP3 00001042: ADD 00001043: DUP2 00001044: DUP2 00001045: MSTORE 00001046: DUP4 00001047: MLOAD 00001048: PUSH1 0x24 0000104a: DUP5 0000104b: ADD 0000104c: MSTORE 0000104d: DUP4 0000104e: MLOAD 0000104f: SWAP1 00001050: SWAP3 00001051: DUP4 00001052: SWAP3 00001053: PUSH1 0x44 00001055: SWAP1 00001056: SWAP2 00001057: ADD 00001058: SWAP2 00001059: SWAP1 0000105a: DUP6 0000105b: ADD 0000105c: SWAP1 0000105d: DUP1 0000105e: DUP4 0000105f: DUP4 00001060: PUSH1 0x00 00001062: DUP4 00001063: ISZERO 00001064: PUSH2 0x06c9 00001067: JUMPI 00001068: DUP2 00001069: DUP2 0000106a: ADD 0000106b: MLOAD 0000106c: DUP4 0000106d: DUP3 0000106e: ADD 0000106f: MSTORE 00001070: PUSH1 0x20 00001072: ADD 00001073: PUSH2 0x06b1 00001076: JUMP 00001077: JUMPDEST 00001078: POP 00001079: DUP1 0000107a: MLOAD 0000107b: DUP2 0000107c: SWAP1 0000107d: ISZERO 0000107e: PUSH2 0x0e84 00001081: JUMPI 00001082: PUSH1 0x40 00001084: MLOAD 00001085: PUSH3 0x461bcd 00001089: PUSH1 0xe5 0000108b: SHL 0000108c: DUP2 0000108d: MSTORE 0000108e: PUSH1 0x20 00001090: PUSH1 0x04 00001092: DUP3 00001093: ADD 00001094: DUP2 00001095: DUP2 00001096: MSTORE 00001097: DUP4 00001098: MLOAD 00001099: PUSH1 0x24 0000109b: DUP5 0000109c: ADD 0000109d: MSTORE 0000109e: DUP4 0000109f: MLOAD 000010a0: SWAP1 000010a1: SWAP3 000010a2: DUP4 000010a3: SWAP3 000010a4: PUSH1 0x44 000010a6: SWAP1 000010a7: SWAP2 000010a8: ADD 000010a9: SWAP2 000010aa: SWAP1 000010ab: DUP6 000010ac: ADD 000010ad: SWAP1 000010ae: DUP1 000010af: DUP4 000010b0: DUP4 000010b1: PUSH1 0x00 000010b3: DUP4 000010b4: ISZERO 000010b5: PUSH2 0x06c9 000010b8: JUMPI 000010b9: DUP2 000010ba: DUP2 000010bb: ADD 000010bc: MLOAD 000010bd: DUP4 000010be: DUP3 000010bf: ADD 000010c0: MSTORE 000010c1: PUSH1 0x20 000010c3: ADD 000010c4: PUSH2 0x06b1 000010c7: JUMP 000010c8: JUMPDEST 000010c9: PUSH1 0x40 000010cb: DUP1 000010cc: MLOAD 000010cd: DUP1 000010ce: DUP3 000010cf: ADD 000010d0: SWAP1 000010d1: SWAP2 000010d2: MSTORE 000010d3: PUSH1 0x16 000010d5: DUP2 000010d6: MSTORE 000010d7: PUSH22 0x12539255125053125690551253d397d09313d0d2d151 000010ee: PUSH1 0x52 000010f0: SHL 000010f1: PUSH1 0x20 000010f3: DUP3 000010f4: ADD 000010f5: MSTORE 000010f6: PUSH9 0x010000000000000003 00001100: SLOAD 00001101: DUP2 00001102: SWAP1 00001103: ISZERO 00001104: PUSH2 0x114e 00001107: JUMPI 00001108: PUSH1 0x40 0000110a: MLOAD 0000110b: PUSH3 0x461bcd 0000110f: PUSH1 0xe5 00001111: SHL 00001112: DUP2 00001113: MSTORE 00001114: PUSH1 0x20 00001116: PUSH1 0x04 00001118: DUP3 00001119: ADD 0000111a: DUP2 0000111b: DUP2 0000111c: MSTORE 0000111d: DUP4 0000111e: MLOAD 0000111f: PUSH1 0x24 00001121: DUP5 00001122: ADD 00001123: MSTORE 00001124: DUP4 00001125: MLOAD 00001126: SWAP1 00001127: SWAP3 00001128: DUP4 00001129: SWAP3 0000112a: PUSH1 0x44 0000112c: SWAP1 0000112d: SWAP2 0000112e: ADD 0000112f: SWAP2 00001130: SWAP1 00001131: DUP6 00001132: ADD 00001133: SWAP1 00001134: DUP1 00001135: DUP4 00001136: DUP4 00001137: PUSH1 0x00 00001139: DUP4 0000113a: ISZERO 0000113b: PUSH2 0x06c9 0000113e: JUMPI 0000113f: DUP2 00001140: DUP2 00001141: ADD 00001142: MLOAD 00001143: DUP4 00001144: DUP3 00001145: ADD 00001146: MSTORE 00001147: PUSH1 0x20 00001149: ADD 0000114a: PUSH2 0x06b1 0000114d: JUMP 0000114e: JUMPDEST 0000114f: POP 00001150: PUSH9 0x010000000000000001 0000115a: SLOAD 0000115b: DUP2 0000115c: SWAP1 0000115d: ISZERO 0000115e: PUSH2 0x11a8 00001161: JUMPI 00001162: PUSH1 0x40 00001164: MLOAD 00001165: PUSH3 0x461bcd 00001169: PUSH1 0xe5 0000116b: SHL 0000116c: DUP2 0000116d: MSTORE 0000116e: PUSH1 0x20 00001170: PUSH1 0x04 00001172: DUP3 00001173: ADD 00001174: DUP2 00001175: DUP2 00001176: MSTORE 00001177: DUP4 00001178: MLOAD 00001179: PUSH1 0x24 0000117b: DUP5 0000117c: ADD 0000117d: MSTORE 0000117e: DUP4 0000117f: MLOAD 00001180: SWAP1 00001181: SWAP3 00001182: DUP4 00001183: SWAP3 00001184: PUSH1 0x44 00001186: SWAP1 00001187: SWAP2 00001188: ADD 00001189: SWAP2 0000118a: SWAP1 0000118b: DUP6 0000118c: ADD 0000118d: SWAP1 0000118e: DUP1 0000118f: DUP4 00001190: DUP4 00001191: PUSH1 0x00 00001193: DUP4 00001194: ISZERO 00001195: PUSH2 0x06c9 00001198: JUMPI 00001199: DUP2 0000119a: DUP2 0000119b: ADD 0000119c: MLOAD 0000119d: DUP4 0000119e: DUP3 0000119f: ADD 000011a0: MSTORE 000011a1: PUSH1 0x20 000011a3: ADD 000011a4: PUSH2 0x06b1 000011a7: JUMP 000011a8: JUMPDEST 000011a9: POP 000011aa: PUSH1 0x01 000011ac: PUSH1 0x40 000011ae: SHL 000011af: SLOAD 000011b0: DUP2 000011b1: SWAP1 000011b2: ISZERO 000011b3: PUSH2 0x09b8 000011b6: JUMPI 000011b7: PUSH1 0x40 000011b9: MLOAD 000011ba: PUSH3 0x461bcd 000011be: PUSH1 0xe5 000011c0: SHL 000011c1: DUP2 000011c2: MSTORE 000011c3: PUSH1 0x20 000011c5: PUSH1 0x04 000011c7: DUP3 000011c8: ADD 000011c9: DUP2 000011ca: DUP2 000011cb: MSTORE 000011cc: DUP4 000011cd: MLOAD 000011ce: PUSH1 0x24 000011d0: DUP5 000011d1: ADD 000011d2: MSTORE 000011d3: DUP4 000011d4: MLOAD 000011d5: SWAP1 000011d6: SWAP3 000011d7: DUP4 000011d8: SWAP3 000011d9: PUSH1 0x44 000011db: SWAP1 000011dc: SWAP2 000011dd: ADD 000011de: SWAP2 000011df: SWAP1 000011e0: DUP6 000011e1: ADD 000011e2: SWAP1 000011e3: DUP1 000011e4: DUP4 000011e5: DUP4 000011e6: PUSH1 0x00 000011e8: DUP4 000011e9: ISZERO 000011ea: PUSH2 0x06c9 000011ed: JUMPI 000011ee: DUP2 000011ef: DUP2 000011f0: ADD 000011f1: MLOAD 000011f2: DUP4 000011f3: DUP3 000011f4: ADD 000011f5: MSTORE 000011f6: PUSH1 0x20 000011f8: ADD 000011f9: PUSH2 0x06b1 000011fc: JUMP 000011fd: JUMPDEST 000011fe: PUSH1 0x60 00001200: DUP2 00001201: PUSH1 0x01 00001203: EQ 00001204: ISZERO 00001205: PUSH2 0x1242 00001208: JUMPI 00001209: POP 0000120a: PUSH1 0x40 0000120c: DUP1 0000120d: MLOAD 0000120e: DUP1 0000120f: DUP3 00001210: ADD 00001211: SWAP1 00001212: SWAP2 00001213: MSTORE 00001214: PUSH1 0x1d 00001216: DUP2 00001217: MSTORE 00001218: PUSH32 0x537461726b576172655f416c6c5665726966696572735f323032325f32000000 00001239: PUSH1 0x20 0000123b: DUP3 0000123c: ADD 0000123d: MSTORE 0000123e: PUSH2 0x0366 00001241: JUMP 00001242: JUMPDEST 00001243: DUP2 00001244: PUSH1 0x02 00001246: EQ 00001247: ISZERO 00001248: PUSH2 0x126b 0000124b: JUMPI 0000124c: PUSH1 0x40 0000124e: MLOAD 0000124f: DUP1 00001250: PUSH1 0x60 00001252: ADD 00001253: PUSH1 0x40 00001255: MSTORE 00001256: DUP1 00001257: PUSH1 0x2a 00001259: DUP2 0000125a: MSTORE 0000125b: PUSH1 0x20 0000125d: ADD 0000125e: PUSH2 0x144d 00001261: PUSH1 0x2a 00001263: SWAP2 00001264: CODECOPY 00001265: SWAP1 00001266: POP 00001267: PUSH2 0x0366 0000126a: JUMP 0000126b: JUMPDEST 0000126c: DUP2 0000126d: PUSH1 0x03 0000126f: EQ 00001270: ISZERO 00001271: PUSH2 0x12ae 00001274: JUMPI 00001275: POP 00001276: PUSH1 0x40 00001278: DUP1 00001279: MLOAD 0000127a: DUP1 0000127b: DUP3 0000127c: ADD 0000127d: SWAP1 0000127e: SWAP2 0000127f: MSTORE 00001280: PUSH1 0x1f 00001282: DUP2 00001283: MSTORE 00001284: PUSH32 0x537461726b576172655f50657270657475616c53746174655f323032335f3400 000012a5: PUSH1 0x20 000012a7: DUP3 000012a8: ADD 000012a9: MSTORE 000012aa: PUSH2 0x0366 000012ad: JUMP 000012ae: JUMPDEST 000012af: DUP2 000012b0: PUSH1 0x04 000012b2: EQ 000012b3: ISZERO 000012b4: PUSH2 0x12d7 000012b7: JUMPI 000012b8: PUSH1 0x40 000012ba: MLOAD 000012bb: DUP1 000012bc: PUSH1 0x60 000012be: ADD 000012bf: PUSH1 0x40 000012c1: MSTORE 000012c2: DUP1 000012c3: PUSH1 0x27 000012c5: DUP2 000012c6: MSTORE 000012c7: PUSH1 0x20 000012c9: ADD 000012ca: PUSH2 0x1499 000012cd: PUSH1 0x27 000012cf: SWAP2 000012d0: CODECOPY 000012d1: SWAP1 000012d2: POP 000012d3: PUSH2 0x0366 000012d6: JUMP 000012d7: JUMPDEST 000012d8: PUSH1 0x40 000012da: DUP1 000012db: MLOAD 000012dc: PUSH3 0x461bcd 000012e0: PUSH1 0xe5 000012e2: SHL 000012e3: DUP2 000012e4: MSTORE 000012e5: PUSH1 0x20 000012e7: PUSH1 0x04 000012e9: DUP3 000012ea: ADD 000012eb: MSTORE 000012ec: PUSH1 0x10 000012ee: PUSH1 0x24 000012f0: DUP3 000012f1: ADD 000012f2: MSTORE 000012f3: PUSH16 0x0aa9c8ab0a08a86a88a88be929c888ab 00001304: PUSH1 0x83 00001306: SHL 00001307: PUSH1 0x44 00001309: DUP3 0000130a: ADD 0000130b: MSTORE 0000130c: SWAP1 0000130d: MLOAD 0000130e: SWAP1 0000130f: DUP2 00001310: SWAP1 00001311: SUB 00001312: PUSH1 0x64 00001314: ADD 00001315: SWAP1 00001316: REVERT 00001317: JUMPDEST 00001318: PUSH3 0x05556c 0000131c: SWAP1 0000131d: JUMP 0000131e: JUMPDEST 0000131f: PUSH1 0x00 00001321: DUP2 00001322: PUSH2 0x134c 00001325: JUMPI 00001326: POP 00001327: PUSH32 0x2124100000000202022040002000000020022010011100002003000001000000 00001348: PUSH2 0x0366 0000134b: JUMP 0000134c: JUMPDEST 0000134d: DUP2 0000134e: PUSH1 0x01 00001350: EQ 00001351: ISZERO 00001352: PUSH2 0x137b 00001355: JUMPI 00001356: POP 00001357: PUSH31 0x10003203010020002002200030330000100020300002001003030000100202 00001377: PUSH2 0x0366 0000137a: JUMP 0000137b: JUMPDEST 0000137c: DUP2 0000137d: PUSH1 0x02 0000137f: EQ 00001380: ISZERO 00001381: PUSH2 0x13ab 00001384: JUMPI 00001385: POP 00001386: PUSH32 0x3000002000310000040022000010000000100013430002033100300200000302 000013a7: PUSH2 0x0366 000013aa: JUMP 000013ab: JUMPDEST 000013ac: DUP2 000013ad: PUSH1 0x03 000013af: EQ 000013b0: ISZERO 000013b1: PUSH2 0x13db 000013b4: JUMPI 000013b5: POP 000013b6: PUSH32 0x1103103010020000102000000400320031030100023000004000300000000000 000013d7: PUSH2 0x0366 000013da: JUMP 000013db: JUMPDEST 000013dc: PUSH1 0x40 000013de: DUP1 000013df: MLOAD 000013e0: PUSH3 0x461bcd 000013e4: PUSH1 0xe5 000013e6: SHL 000013e7: DUP2 000013e8: MSTORE 000013e9: PUSH1 0x20 000013eb: PUSH1 0x04 000013ed: DUP3 000013ee: ADD 000013ef: MSTORE 000013f0: PUSH1 0x13 000013f2: PUSH1 0x24 000013f4: DUP3 000013f5: ADD 000013f6: MSTORE 000013f7: PUSH19 0x2120a22fa4a22c2fa6a0a82fa9a2a1aa24a7a7 0000140b: PUSH1 0x69 0000140d: SHL 0000140e: PUSH1 0x44 00001410: DUP3 00001411: ADD 00001412: MSTORE 00001413: SWAP1 00001414: MLOAD 00001415: SWAP1 00001416: DUP2 00001417: SWAP1 00001418: SUB 00001419: PUSH1 0x64 0000141b: ADD 0000141c: SWAP1 0000141d: REVERT 0000141e: JUMPDEST 0000141f: EXTCODESIZE 00001420: ISZERO 00001421: ISZERO 00001422: SWAP1 00001423: JUMP 00001424: JUMPDEST 00001425: PUSH1 0x00 00001427: DUP1 00001428: DUP6 00001429: DUP6 0000142a: GT 0000142b: ISZERO 0000142c: PUSH2 0x1433 0000142f: JUMPI 00001430: DUP2 00001431: DUP3 00001432: REVERT 00001433: JUMPDEST 00001434: DUP4 00001435: DUP7 00001436: GT 00001437: ISZERO 00001438: PUSH2 0x143f 0000143b: JUMPI 0000143c: DUP2 0000143d: DUP3 0000143e: REVERT 0000143f: JUMPDEST 00001440: POP 00001441: POP 00001442: DUP3 00001443: ADD 00001444: SWAP4 00001445: SWAP2 00001446: SWAP1 00001447: SWAP3 00001448: SUB 00001449: SWAP2 0000144a: POP 0000144b: JUMP 0000144c: INVALID 0000144d: MSTORE8 0000144e: PUSH21 0x61726b576172655f50657270657475616c546f6b65 00001464: PUSH15 0x73416e6452616d70696e675f323032 00001474: ORIGIN 00001475: PUSH0 00001476: ORIGIN 00001477: UNKNOWN(0x4D) 00001478: BLOBHASH 00001479: MSTORE8 0000147a: POP 0000147b: UNKNOWN(0x4C) 0000147c: COINBASE 0000147d: NUMBER 0000147e: GASLIMIT 0000147f: DIFFICULTY 00001480: PUSH0 00001481: BLOBHASH 00001482: UNKNOWN(0x4E) 00001483: DIFFICULTY 00001484: GASLIMIT 00001485: PC 00001486: PUSH0 00001487: UNKNOWN(0x4F) 00001488: MSTORE 00001489: PUSH0 0000148a: TIMESTAMP 0000148b: COINBASE 0000148c: DIFFICULTY 0000148d: PUSH0 0000148e: NUMBER 0000148f: UNKNOWN(0x4F) 00001490: UNKNOWN(0x4E) 00001491: SLOAD 00001492: MSTORE 00001493: COINBASE 00001494: NUMBER 00001495: SLOAD 00001496: PUSH0 00001497: BLOBHASH 00001498: DIFFICULTY 00001499: MSTORE8 0000149a: PUSH21 0x61726b576172655f50657270657475616c466f7263 000014b0: PUSH6 0x64416374696f 000014b7: PUSH15 0x735f323032325f32a2646970667358 000014c7: UNKNOWN(0x22) 000014c8: SLT 000014c9: KECCAK256 000014ca: UNKNOWN(0xCE) 000014cb: UNKNOWN(0xC3) 000014cc: UNKNOWN(0x22) 000014cd: UNKNOWN(0xC2) 000014ce: UNKNOWN(0xD0) 000014cf: RETURN 000014d0: NUMBER 000014d1: PUSH3 0x372972 000014d5: MSTORE8 000014d6: SWAP5 000014d7: PUSH29 0x655fd7ef44eed69e5aa4f5783518c3e5316c64736f6c634300060c0033
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | codex | Unrestricted dispatcher initialize allows sub-contract takeover and arbitrary delegatecall | 90 | no | — |
viewevidence_json{
"evidence": "`initialize` is external and only gated by `notCalledDirectly`, yet it overwrites `subContracts` and can delegatecall an arbitrary external initializer without any governance check.",
"locations": [
"contracts/src/interfaces/MainDispatcherBase.sol:124",
"contracts/src/interfaces/MainDispatcherBase.sol:144",
"contracts/src/interfaces/MainDispatcherBase.sol:165",
"contracts/src/interfaces/MainDispatcherBase.sol:172",
"contracts/src/interfaces/MainDispatcherBase.sol:226"
],
"recommendation": "Restrict `initialize` to governance/proxy admin only, and enforce a one-time or upgrade-only guard before writing `subContracts` (e.g., require an initialized flag or an upgrade context set by the proxy). Consider validating/whitelisting the external initializer and removing the `additionalDataSize==0` early return unless explicitly authorized by the upgrade mechanism.",
"exploit_scenario": "An attacker calls `initialize(bytes)` through the proxy (passes `notCalledDirectly`) with crafted calldata. Because there is no access control or one-time guard at the entry, they can replace `subContracts` with malicious contracts (or supply a malicious external initializer) and thus seize control of all delegated logic, drain funds, or corrupt state."
}
|
| high | upgradeability | detector | Untrusted DELEGATECALL target reachable | 55 | no | no |
viewtrace_id: 0xabeab3354616435143810209afdb6cae043d50a3e2c8669136e3a4b15f82d29d
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 84,
"trace_id": "0xabeab3354616435143810209afdb6cae043d50a3e2c8669136e3a4b15f82d29d",
"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": "0x2f9014b4",
"selector": "0x2f9014b4",
"calldata_variants": [
"0x2f9014b4",
"0x2f9014b40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x439fab91",
"selector": "0x439fab91",
"calldata_variants": [
"0x439fab91",
"0x439fab910000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xadac3e15",
"selector": "0xadac3e15",
"calldata_variants": [
"0xadac3e15",
"0xadac3e150000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc1a85130",
"selector": "0xc1a85130",
"calldata_variants": [
"0xc1a85130",
"0xc1a851300000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd4e878e8",
"selector": "0xd4e878e8",
"calldata_variants": [
"0xd4e878e8",
"0xd4e878e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2011f66",
"selector": "0xf2011f66",
"calldata_variants": [
"0xf2011f66",
"0xf2011f660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffa1ad74",
"selector": "0xffa1ad74",
"calldata_variants": [
"0xffa1ad74",
"0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 307,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 1600,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
},
{
"pc": 2240,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [
{
"pc": 5236,
"type": "tx_origin_used"
},
{
"pc": 5238,
"type": "tx_origin_used"
}
],
"delegatecall_count": 4,
"untrusted_delegatecall_count": 4
}
|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x2f9014b4",
"selector": "0x2f9014b4",
"calldata_variants": [
"0x2f9014b4",
"0x2f9014b40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x439fab91",
"selector": "0x439fab91",
"calldata_variants": [
"0x439fab91",
"0x439fab910000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xadac3e15",
"selector": "0xadac3e15",
"calldata_variants": [
"0xadac3e15",
"0xadac3e150000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc1a85130",
"selector": "0xc1a85130",
"calldata_variants": [
"0xc1a85130",
"0xc1a851300000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd4e878e8",
"selector": "0xd4e878e8",
"calldata_variants": [
"0xd4e878e8",
"0xd4e878e80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2011f66",
"selector": "0xf2011f66",
"calldata_variants": [
"0xf2011f66",
"0xf2011f660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffa1ad74",
"selector": "0xffa1ad74",
"calldata_variants": [
"0xffa1ad74",
"0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 5236,
"type": "tx_origin_used"
},
{
"pc": 5238,
"type": "tx_origin_used"
}
]
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 4
}
|