TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

0a08cd3a-51b3-4d5e-80d8-1f93d022131c

failed
Chain ID
1
Address
Block Number
Created
Sat, Dec 27, 2025 11:35 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
SELFDESTRUCT present
crit 0 high 0 proxy context implementation known
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30238 report.consolidate complete 1 / 1 3 months ago
73612 artifact.fetch failed 1 / 3 1 week ago
73613 tool.cast_disasm complete 1 / 3 1 week ago
73614 analysis.bundle complete 1 / 3 1 week ago
73615 capability.graph complete 1 / 3 1 week ago
73616 detector.run complete 1 / 3 1 week ago
73617 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes
Verified Source: yes

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
One upgradeability/access-control risk: the initializer is callable by anyone if a proxy/implementation is deployed uninitialized, allowing a takeover and fund drains.
View stderr
[codex:702878] OpenAI Codex v0.77.0 (research preview)
[codex:702878] --------
[codex:702878] workdir: /tmp/codex-multi-xjawfxgf
[codex:702878] model: gpt-5.2-codex
[codex:702878] provider: openai
[codex:702878] approval: never
[codex:702878] sandbox: read-only
[codex:702878] reasoning effort: xhigh
[codex:702878] reasoning summaries: auto
[codex:702878] session id: 019b6228-fe9d-7930-b489-23f5b5819a73
[codex:702878] --------
[codex:702878] user
[codex:702878] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:702878] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:702878] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:702878] 
[codex:702878] Scope rules:
[codex:702878] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:702878] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:702878] 
[codex:702878] Output MUST be valid JSON matching the provided schema.
[codex:702878] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:702878] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:702878] 
[codex:702878] Output constraints (IMPORTANT):
[codex:702878] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:702878] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:702878] mcp startup: no servers
[codex:702878] 
[codex:702878] thinking
[codex:702878] **Preparing to read AUDIT_BUNDLE file**
[codex:702878] exec
[codex:702878] /bin/bash -lc ls in /tmp/codex-multi-xjawfxgf succeeded in 5ms:
[codex:702878] AUDIT_BUNDLE.txt
[codex:702878] codex-output-schema.json
[codex:702878] contracts
[codex:702878] 
[codex:702878] thinking
[codex:702878] **Reading AUDIT_BUNDLE file**
[codex:702878] exec
[codex:702878] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-xjawfxgf succeeded in 5ms:
[codex:702878] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:702878] 
[codex:702878] ================================================================================
[codex:702878] FILE: contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol
[codex:702878] ================================================================================
[codex:702878] // SPDX-License-Identifier: MIT
[codex:702878] // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/IERC20.sol)
[codex:702878] 
[codex:702878] pragma solidity ^0.8.0;
[codex:702878] 
[codex:702878] /**
[codex:702878]  * @dev Interface of the ERC20 standard as defined in the EIP.
[codex:702878]  */
[codex:702878] interface IERC20 {
[codex:702878]     /**
[codex:702878]      * @dev Returns the amount of tokens in existence.
[codex:702878]      */
[codex:702878]     function totalSupply() external view returns (uint256);
[codex:702878] 
[codex:702878]     /**
[codex:702878] 
[codex:702878] thinking
[codex:702878] **Analyzing Treasury contract for risks**
[codex:702878] exec
[codex:702878] /bin/bash -lc 'nl -ba contracts/contracts/treasury/Treasury.sol' in /tmp/codex-multi-xjawfxgf succeeded in 6ms:
[codex:702878]      1	// SPDX-License-Identifier: UNLICENSED
[codex:702878]      2	pragma solidity ^0.8.0;
[codex:702878]      3	pragma abicoder v2;
[codex:702878]      4	
[codex:702878]      5	// OpenZeppelin v4
[codex:702878]      6	import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:702878]      7	import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:702878]      8	import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:702878]      9	import { AccessControlUpgradeable } from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
[codex:702878]     10	
[codex:702878]     11	/**
[codex:702878]     12	 * @title Treasury
[codex:702878]     13	 * @author Railgun Contributors
[codex:702878]     14	 * @notice Stores treasury funds for Railgun
[codex:702878]     15	 */
[codex:702878]     16	contract Treasury is Initializable, AccessControlUpgradeable {
[codex:702878]     17	  using SafeERC20 for IERC20;
[codex:702878]     18	
[codex:702878]     19	  bytes32 public constant TRANSFER_ROLE = keccak256("TRANSFER_ROLE");
[codex:702878]     20	
[codex:702878] 
[codex:702878] thinking
[codex:702878] **Summarizing initialization vulnerability analysis**
[codex:702878] 
[codex:702878] I'll produce a clear JSON report highlighting a medium-severity upgradeability risk: if the proxy or implementation is deployed uninitialized, anyone can call the initializer to take over roles and drain funds. I'll detail the exploit scenario, recommendations, and evidence with precise file locations while keeping the output concise and compliant with the specified schema.
[codex:702878] codex
[codex:702878] {"no_findings":false,"summary":"One upgradeability/access-control risk: the initializer is callable by anyone if a proxy/implementation is deployed uninitialized, allowing a takeover and fund drains.","findings":[{"severity":"medium","category":"upgradeability","title":"Initializer allows takeover if proxy/implementation is left uninitialized","exploit_scenario":"If the proxy is deployed without calling `initializeTreasury` in the same transaction (or the implementation is deployed directly and left uninitialized), any address can call the initializer once, grant themselves `DEFAULT_ADMIN_ROLE` and `TRANSFER_ROLE`, then use `transferETH`/`transferERC20` to drain funds held by that contract instance.","recommendation":"Ensure the proxy is initialized atomically at deployment (e.g., pass initializer calldata to the proxy constructor). Add a constructor to the implementation that calls `_disableInitializers()` to lock it, and consider validating `_admin != address(0)` to avoid accidental lockout.","evidence":"`initializeTreasury` is `external initializer` and immediately grants admin and transfer roles to the caller-supplied `_admin`, with no access restriction or initializer lock in the implementation.","locations":["contracts/contracts/treasury/Treasury.sol:25","contracts/contracts/treasury/Treasury.sol:32","contracts/contracts/treasury/Treasury.sol:35"]}]}
[codex:702878] tokens used
[codex:702878] 15,614
[codex:702878] {"no_findings":false,"summary":"One upgradeability/access-control risk: the initializer is callable by anyone if a proxy/implementation is deployed uninitialized, allowing a takeover and fund drains.","findings":[{"severity":"medium","category":"upgradeability","title":"Initializer allows takeover if proxy/implementation is left uninitialized","exploit_scenario":"If the proxy is deployed without calling `initializeTreasury` in the same transaction (or the implementation is deployed directly and left uninitialized), any address can call the initializer once, grant themselves `DEFAULT_ADMIN_ROLE` and `TRANSFER_ROLE`, then use `transferETH`/`transferERC20` to drain funds held by that contract instance.","recommendation":"Ensure the proxy is initialized atomically at deployment (e.g., pass initializer calldata to the proxy constructor). Add a constructor to the implementation that calls `_disableInitializers()` to lock it, and consider validating `_admin != address(0)` to avoid accidental lockout.","evidence":"`initializeTreasury` is `external initializer` and immediately grants admin and transfer roles to the caller-supplied `_admin`, with no access restriction or initializer lock in the implementation.","locations":["contracts/contracts/treasury/Treasury.sol:25","contracts/contracts/treasury/Treasury.sol:32","contracts/contracts/treasury/Treasury.sol:35"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-27T23:35:02.875143+00:00",
        "returncode": 0
    },
    "summary": "One upgradeability/access-control risk: the initializer is callable by anyone if a proxy/implementation is deployed uninitialized, allowing a takeover and fund drains.",
    "raw_final": {
        "summary": "One upgradeability/access-control risk: the initializer is callable by anyone if a proxy/implementation is deployed uninitialized, allowing a takeover and fund drains.",
        "findings": [
            {
                "title": "Initializer allows takeover if proxy/implementation is left uninitialized",
                "category": "upgradeability",
                "evidence": "`initializeTreasury` is `external initializer` and immediately grants admin and transfer roles to the caller-supplied `_admin`, with no access restriction or initializer lock in the implementation.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/treasury/Treasury.sol:25",
                    "contracts/contracts/treasury/Treasury.sol:32",
                    "contracts/contracts/treasury/Treasury.sol:35"
                ],
                "recommendation": "Ensure the proxy is initialized atomically at deployment (e.g., pass initializer calldata to the proxy constructor). Add a constructor to the implementation that calls `_disableInitializers()` to lock it, and consider validating `_admin != address(0)` to avoid accidental lockout.",
                "exploit_scenario": "If the proxy is deployed without calling `initializeTreasury` in the same transaction (or the implementation is deployed directly and left uninitialized), any address can call the initializer once, grant themselves `DEFAULT_ADMIN_ROLE` and `TRANSFER_ROLE`, then use `transferETH`/`transferERC20` to drain funds held by that contract instance."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
1
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
2
Total opcodes
2257
Flags
selfdestruct_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00b4
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x3ed086f4
00000019: GT
0000001a: PUSH2 0x006e
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0x9db5dbe4
00000024: GT
00000025: PUSH2 0x004b
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0x9db5dbe4
0000002f: EQ
00000030: PUSH2 0x022a
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xa217fddf
0000003a: EQ
0000003b: PUSH2 0x024a
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xd547741f
00000045: EQ
00000046: PUSH2 0x025f
00000049: JUMPI
0000004a: STOP
0000004b: JUMPDEST
0000004c: DUP1
0000004d: PUSH4 0x3ed086f4
00000052: EQ
00000053: PUSH2 0x01a4
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0x7b1a4909
0000005d: EQ
0000005e: PUSH2 0x01c4
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0x91d14854
00000068: EQ
00000069: PUSH2 0x01e4
0000006c: JUMPI
0000006d: STOP
0000006e: JUMPDEST
0000006f: DUP1
00000070: PUSH4 0x248a9ca3
00000075: GT
00000076: PUSH2 0x009c
00000079: JUMPI
0000007a: DUP1
0000007b: PUSH4 0x248a9ca3
00000080: EQ
00000081: PUSH2 0x0134
00000084: JUMPI
00000085: DUP1
00000086: PUSH4 0x2f2ff15d
0000008b: EQ
0000008c: PUSH2 0x0164
0000008f: JUMPI
00000090: DUP1
00000091: PUSH4 0x36568abe
00000096: EQ
00000097: PUSH2 0x0184
0000009a: JUMPI
0000009b: STOP
0000009c: JUMPDEST
0000009d: DUP1
0000009e: PUSH4 0x01ffc9a7
000000a3: EQ
000000a4: PUSH2 0x00bd
000000a7: JUMPI
000000a8: DUP1
000000a9: PUSH4 0x206b60f9
000000ae: EQ
000000af: PUSH2 0x00f2
000000b2: JUMPI
000000b3: STOP
000000b4: JUMPDEST
000000b5: CALLDATASIZE
000000b6: PUSH2 0x00bb
000000b9: JUMPI
000000ba: STOP
000000bb: JUMPDEST
000000bc: STOP
000000bd: JUMPDEST
000000be: CALLVALUE
000000bf: DUP1
000000c0: ISZERO
000000c1: PUSH2 0x00c9
000000c4: JUMPI
000000c5: PUSH1 0x00
000000c7: DUP1
000000c8: REVERT
000000c9: JUMPDEST
000000ca: POP
000000cb: PUSH2 0x00dd
000000ce: PUSH2 0x00d8
000000d1: CALLDATASIZE
000000d2: PUSH1 0x04
000000d4: PUSH2 0x0e27
000000d7: JUMP
000000d8: JUMPDEST
000000d9: PUSH2 0x027f
000000dc: JUMP
000000dd: JUMPDEST
000000de: PUSH1 0x40
000000e0: MLOAD
000000e1: SWAP1
000000e2: ISZERO
000000e3: ISZERO
000000e4: DUP2
000000e5: MSTORE
000000e6: PUSH1 0x20
000000e8: ADD
000000e9: JUMPDEST
000000ea: PUSH1 0x40
000000ec: MLOAD
000000ed: DUP1
000000ee: SWAP2
000000ef: SUB
000000f0: SWAP1
000000f1: RETURN
000000f2: JUMPDEST
000000f3: CALLVALUE
000000f4: DUP1
000000f5: ISZERO
000000f6: PUSH2 0x00fe
000000f9: JUMPI
000000fa: PUSH1 0x00
000000fc: DUP1
000000fd: REVERT
000000fe: JUMPDEST
000000ff: POP
00000100: PUSH2 0x0126
00000103: PUSH32 0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c
00000124: DUP2
00000125: JUMP
00000126: JUMPDEST
00000127: PUSH1 0x40
00000129: MLOAD
0000012a: SWAP1
0000012b: DUP2
0000012c: MSTORE
0000012d: PUSH1 0x20
0000012f: ADD
00000130: PUSH2 0x00e9
00000133: JUMP
00000134: JUMPDEST
00000135: CALLVALUE
00000136: DUP1
00000137: ISZERO
00000138: PUSH2 0x0140
0000013b: JUMPI
0000013c: PUSH1 0x00
0000013e: DUP1
0000013f: REVERT
00000140: JUMPDEST
00000141: POP
00000142: PUSH2 0x0126
00000145: PUSH2 0x014f
00000148: CALLDATASIZE
00000149: PUSH1 0x04
0000014b: PUSH2 0x0e69
0000014e: JUMP
0000014f: JUMPDEST
00000150: PUSH1 0x00
00000152: SWAP1
00000153: DUP2
00000154: MSTORE
00000155: PUSH1 0x65
00000157: PUSH1 0x20
00000159: MSTORE
0000015a: PUSH1 0x40
0000015c: SWAP1
0000015d: KECCAK256
0000015e: PUSH1 0x01
00000160: ADD
00000161: SLOAD
00000162: SWAP1
00000163: JUMP
00000164: JUMPDEST
00000165: CALLVALUE
00000166: DUP1
00000167: ISZERO
00000168: PUSH2 0x0170
0000016b: JUMPI
0000016c: PUSH1 0x00
0000016e: DUP1
0000016f: REVERT
00000170: JUMPDEST
00000171: POP
00000172: PUSH2 0x00bb
00000175: PUSH2 0x017f
00000178: CALLDATASIZE
00000179: PUSH1 0x04
0000017b: PUSH2 0x0e9a
0000017e: JUMP
0000017f: JUMPDEST
00000180: PUSH2 0x0318
00000183: JUMP
00000184: JUMPDEST
00000185: CALLVALUE
00000186: DUP1
00000187: ISZERO
00000188: PUSH2 0x0190
0000018b: JUMPI
0000018c: PUSH1 0x00
0000018e: DUP1
0000018f: REVERT
00000190: JUMPDEST
00000191: POP
00000192: PUSH2 0x00bb
00000195: PUSH2 0x019f
00000198: CALLDATASIZE
00000199: PUSH1 0x04
0000019b: PUSH2 0x0e9a
0000019e: JUMP
0000019f: JUMPDEST
000001a0: PUSH2 0x0343
000001a3: JUMP
000001a4: JUMPDEST
000001a5: CALLVALUE
000001a6: DUP1
000001a7: ISZERO
000001a8: PUSH2 0x01b0
000001ab: JUMPI
000001ac: PUSH1 0x00
000001ae: DUP1
000001af: REVERT
000001b0: JUMPDEST
000001b1: POP
000001b2: PUSH2 0x00bb
000001b5: PUSH2 0x01bf
000001b8: CALLDATASIZE
000001b9: PUSH1 0x04
000001bb: PUSH2 0x0eca
000001be: JUMP
000001bf: JUMPDEST
000001c0: PUSH2 0x03d4
000001c3: JUMP
000001c4: JUMPDEST
000001c5: CALLVALUE
000001c6: DUP1
000001c7: ISZERO
000001c8: PUSH2 0x01d0
000001cb: JUMPI
000001cc: PUSH1 0x00
000001ce: DUP1
000001cf: REVERT
000001d0: JUMPDEST
000001d1: POP
000001d2: PUSH2 0x00bb
000001d5: PUSH2 0x01df
000001d8: CALLDATASIZE
000001d9: PUSH1 0x04
000001db: PUSH2 0x0ee7
000001de: JUMP
000001df: JUMPDEST
000001e0: PUSH2 0x04d9
000001e3: JUMP
000001e4: JUMPDEST
000001e5: CALLVALUE
000001e6: DUP1
000001e7: ISZERO
000001e8: PUSH2 0x01f0
000001eb: JUMPI
000001ec: PUSH1 0x00
000001ee: DUP1
000001ef: REVERT
000001f0: JUMPDEST
000001f1: POP
000001f2: PUSH2 0x00dd
000001f5: PUSH2 0x01ff
000001f8: CALLDATASIZE
000001f9: PUSH1 0x04
000001fb: PUSH2 0x0e9a
000001fe: JUMP
000001ff: JUMPDEST
00000200: PUSH1 0x00
00000202: SWAP2
00000203: DUP3
00000204: MSTORE
00000205: PUSH1 0x65
00000207: PUSH1 0x20
00000209: SWAP1
0000020a: DUP2
0000020b: MSTORE
0000020c: PUSH1 0x40
0000020e: DUP1
0000020f: DUP5
00000210: KECCAK256
00000211: PUSH1 0x01
00000213: PUSH1 0x01
00000215: PUSH1 0xa0
00000217: SHL
00000218: SUB
00000219: SWAP4
0000021a: SWAP1
0000021b: SWAP4
0000021c: AND
0000021d: DUP5
0000021e: MSTORE
0000021f: SWAP2
00000220: SWAP1
00000221: MSTORE
00000222: SWAP1
00000223: KECCAK256
00000224: SLOAD
00000225: PUSH1 0xff
00000227: AND
00000228: SWAP1
00000229: JUMP
0000022a: JUMPDEST
0000022b: CALLVALUE
0000022c: DUP1
0000022d: ISZERO
0000022e: PUSH2 0x0236
00000231: JUMPI
00000232: PUSH1 0x00
00000234: DUP1
00000235: REVERT
00000236: JUMPDEST
00000237: POP
00000238: PUSH2 0x00bb
0000023b: PUSH2 0x0245
0000023e: CALLDATASIZE
0000023f: PUSH1 0x04
00000241: PUSH2 0x0f13
00000244: JUMP
00000245: JUMPDEST
00000246: PUSH2 0x060f
00000249: JUMP
0000024a: JUMPDEST
0000024b: CALLVALUE
0000024c: DUP1
0000024d: ISZERO
0000024e: PUSH2 0x0256
00000251: JUMPI
00000252: PUSH1 0x00
00000254: DUP1
00000255: REVERT
00000256: JUMPDEST
00000257: POP
00000258: PUSH2 0x0126
0000025b: PUSH1 0x00
0000025d: DUP2
0000025e: JUMP
0000025f: JUMPDEST
00000260: CALLVALUE
00000261: DUP1
00000262: ISZERO
00000263: PUSH2 0x026b
00000266: JUMPI
00000267: PUSH1 0x00
00000269: DUP1
0000026a: REVERT
0000026b: JUMPDEST
0000026c: POP
0000026d: PUSH2 0x00bb
00000270: PUSH2 0x027a
00000273: CALLDATASIZE
00000274: PUSH1 0x04
00000276: PUSH2 0x0e9a
00000279: JUMP
0000027a: JUMPDEST
0000027b: PUSH2 0x06b0
0000027e: JUMP
0000027f: JUMPDEST
00000280: PUSH1 0x00
00000282: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000002a3: DUP3
000002a4: AND
000002a5: PUSH32 0x7965db0b00000000000000000000000000000000000000000000000000000000
000002c6: EQ
000002c7: DUP1
000002c8: PUSH2 0x0312
000002cb: JUMPI
000002cc: POP
000002cd: PUSH32 0x01ffc9a700000000000000000000000000000000000000000000000000000000
000002ee: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000030f: DUP4
00000310: AND
00000311: EQ
00000312: JUMPDEST
00000313: SWAP3
00000314: SWAP2
00000315: POP
00000316: POP
00000317: JUMP
00000318: JUMPDEST
00000319: PUSH1 0x00
0000031b: DUP3
0000031c: DUP2
0000031d: MSTORE
0000031e: PUSH1 0x65
00000320: PUSH1 0x20
00000322: MSTORE
00000323: PUSH1 0x40
00000325: SWAP1
00000326: KECCAK256
00000327: PUSH1 0x01
00000329: ADD
0000032a: SLOAD
0000032b: PUSH2 0x0334
0000032e: DUP2
0000032f: CALLER
00000330: PUSH2 0x06d6
00000333: JUMP
00000334: JUMPDEST
00000335: PUSH2 0x033e
00000338: DUP4
00000339: DUP4
0000033a: PUSH2 0x0756
0000033d: JUMP
0000033e: JUMPDEST
0000033f: POP
00000340: POP
00000341: POP
00000342: JUMP
00000343: JUMPDEST
00000344: PUSH1 0x01
00000346: PUSH1 0x01
00000348: PUSH1 0xa0
0000034a: SHL
0000034b: SUB
0000034c: DUP2
0000034d: AND
0000034e: CALLER
0000034f: EQ
00000350: PUSH2 0x03c6
00000353: JUMPI
00000354: PUSH1 0x40
00000356: MLOAD
00000357: PUSH3 0x461bcd
0000035b: PUSH1 0xe5
0000035d: SHL
0000035e: DUP2
0000035f: MSTORE
00000360: PUSH1 0x20
00000362: PUSH1 0x04
00000364: DUP3
00000365: ADD
00000366: MSTORE
00000367: PUSH1 0x2f
00000369: PUSH1 0x24
0000036b: DUP3
0000036c: ADD
0000036d: MSTORE
0000036e: PUSH32 0x416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365
0000038f: PUSH1 0x44
00000391: DUP3
00000392: ADD
00000393: MSTORE
00000394: PUSH32 0x20726f6c657320666f722073656c660000000000000000000000000000000000
000003b5: PUSH1 0x64
000003b7: DUP3
000003b8: ADD
000003b9: MSTORE
000003ba: PUSH1 0x84
000003bc: ADD
000003bd: JUMPDEST
000003be: PUSH1 0x40
000003c0: MLOAD
000003c1: DUP1
000003c2: SWAP2
000003c3: SUB
000003c4: SWAP1
000003c5: REVERT
000003c6: JUMPDEST
000003c7: PUSH2 0x03d0
000003ca: DUP3
000003cb: DUP3
000003cc: PUSH2 0x07f8
000003cf: JUMP
000003d0: JUMPDEST
000003d1: POP
000003d2: POP
000003d3: JUMP
000003d4: JUMPDEST
000003d5: PUSH1 0x00
000003d7: SLOAD
000003d8: PUSH2 0x0100
000003db: SWAP1
000003dc: DIV
000003dd: PUSH1 0xff
000003df: AND
000003e0: PUSH2 0x03ef
000003e3: JUMPI
000003e4: PUSH1 0x00
000003e6: SLOAD
000003e7: PUSH1 0xff
000003e9: AND
000003ea: ISZERO
000003eb: PUSH2 0x03f3
000003ee: JUMP
000003ef: JUMPDEST
000003f0: ADDRESS
000003f1: EXTCODESIZE
000003f2: ISZERO
000003f3: JUMPDEST
000003f4: PUSH2 0x0465
000003f7: JUMPI
000003f8: PUSH1 0x40
000003fa: MLOAD
000003fb: PUSH3 0x461bcd
000003ff: PUSH1 0xe5
00000401: SHL
00000402: DUP2
00000403: MSTORE
00000404: PUSH1 0x20
00000406: PUSH1 0x04
00000408: DUP3
00000409: ADD
0000040a: MSTORE
0000040b: PUSH1 0x2e
0000040d: PUSH1 0x24
0000040f: DUP3
00000410: ADD
00000411: MSTORE
00000412: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
00000433: PUSH1 0x44
00000435: DUP3
00000436: ADD
00000437: MSTORE
00000438: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000
00000459: PUSH1 0x64
0000045b: DUP3
0000045c: ADD
0000045d: MSTORE
0000045e: PUSH1 0x84
00000460: ADD
00000461: PUSH2 0x03bd
00000464: JUMP
00000465: JUMPDEST
00000466: PUSH1 0x00
00000468: SLOAD
00000469: PUSH2 0x0100
0000046c: SWAP1
0000046d: DIV
0000046e: PUSH1 0xff
00000470: AND
00000471: ISZERO
00000472: DUP1
00000473: ISZERO
00000474: PUSH2 0x0487
00000477: JUMPI
00000478: PUSH1 0x00
0000047a: DUP1
0000047b: SLOAD
0000047c: PUSH2 0xffff
0000047f: NOT
00000480: AND
00000481: PUSH2 0x0101
00000484: OR
00000485: SWAP1
00000486: SSTORE
00000487: JUMPDEST
00000488: PUSH2 0x048f
0000048b: PUSH2 0x087b
0000048e: JUMP
0000048f: JUMPDEST
00000490: PUSH2 0x049a
00000493: PUSH1 0x00
00000495: DUP4
00000496: PUSH2 0x0756
00000499: JUMP
0000049a: JUMPDEST
0000049b: PUSH2 0x04c4
0000049e: PUSH32 0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c
000004bf: DUP4
000004c0: PUSH2 0x0756
000004c3: JUMP
000004c4: JUMPDEST
000004c5: DUP1
000004c6: ISZERO
000004c7: PUSH2 0x03d0
000004ca: JUMPI
000004cb: PUSH1 0x00
000004cd: DUP1
000004ce: SLOAD
000004cf: PUSH2 0xff00
000004d2: NOT
000004d3: AND
000004d4: SWAP1
000004d5: SSTORE
000004d6: POP
000004d7: POP
000004d8: JUMP
000004d9: JUMPDEST
000004da: PUSH32 0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c
000004fb: PUSH2 0x0504
000004fe: DUP2
000004ff: CALLER
00000500: PUSH2 0x06d6
00000503: JUMP
00000504: JUMPDEST
00000505: PUSH1 0x01
00000507: PUSH1 0x01
00000509: PUSH1 0xa0
0000050b: SHL
0000050c: SUB
0000050d: DUP4
0000050e: AND
0000050f: PUSH2 0x0566
00000512: JUMPI
00000513: PUSH1 0x40
00000515: MLOAD
00000516: PUSH3 0x461bcd
0000051a: PUSH1 0xe5
0000051c: SHL
0000051d: DUP2
0000051e: MSTORE
0000051f: PUSH1 0x20
00000521: PUSH1 0x04
00000523: DUP3
00000524: ADD
00000525: MSTORE
00000526: PUSH1 0x24
00000528: DUP1
00000529: DUP3
0000052a: ADD
0000052b: MSTORE
0000052c: PUSH32 0x54726561737572793a2050726576656e74696e67206163636964656e74616c20
0000054d: PUSH1 0x44
0000054f: DUP3
00000550: ADD
00000551: MSTORE
00000552: PUSH4 0x313ab937
00000557: PUSH1 0xe1
00000559: SHL
0000055a: PUSH1 0x64
0000055c: DUP3
0000055d: ADD
0000055e: MSTORE
0000055f: PUSH1 0x84
00000561: ADD
00000562: PUSH2 0x03bd
00000565: JUMP
00000566: JUMPDEST
00000567: PUSH1 0x00
00000569: DUP4
0000056a: PUSH1 0x01
0000056c: PUSH1 0x01
0000056e: PUSH1 0xa0
00000570: SHL
00000571: SUB
00000572: AND
00000573: DUP4
00000574: PUSH1 0x40
00000576: MLOAD
00000577: PUSH1 0x00
00000579: PUSH1 0x40
0000057b: MLOAD
0000057c: DUP1
0000057d: DUP4
0000057e: SUB
0000057f: DUP2
00000580: DUP6
00000581: DUP8
00000582: GAS
00000583: CALL
00000584: SWAP3
00000585: POP
00000586: POP
00000587: POP
00000588: RETURNDATASIZE
00000589: DUP1
0000058a: PUSH1 0x00
0000058c: DUP2
0000058d: EQ
0000058e: PUSH2 0x05b3
00000591: JUMPI
00000592: PUSH1 0x40
00000594: MLOAD
00000595: SWAP2
00000596: POP
00000597: PUSH1 0x1f
00000599: NOT
0000059a: PUSH1 0x3f
0000059c: RETURNDATASIZE
0000059d: ADD
0000059e: AND
0000059f: DUP3
000005a0: ADD
000005a1: PUSH1 0x40
000005a3: MSTORE
000005a4: RETURNDATASIZE
000005a5: DUP3
000005a6: MSTORE
000005a7: RETURNDATASIZE
000005a8: PUSH1 0x00
000005aa: PUSH1 0x20
000005ac: DUP5
000005ad: ADD
000005ae: RETURNDATACOPY
000005af: PUSH2 0x05b8
000005b2: JUMP
000005b3: JUMPDEST
000005b4: PUSH1 0x60
000005b6: SWAP2
000005b7: POP
000005b8: JUMPDEST
000005b9: POP
000005ba: POP
000005bb: SWAP1
000005bc: POP
000005bd: DUP1
000005be: PUSH2 0x0609
000005c1: JUMPI
000005c2: PUSH1 0x40
000005c4: MLOAD
000005c5: PUSH3 0x461bcd
000005c9: PUSH1 0xe5
000005cb: SHL
000005cc: DUP2
000005cd: MSTORE
000005ce: PUSH1 0x20
000005d0: PUSH1 0x04
000005d2: DUP3
000005d3: ADD
000005d4: MSTORE
000005d5: PUSH1 0x14
000005d7: PUSH1 0x24
000005d9: DUP3
000005da: ADD
000005db: MSTORE
000005dc: PUSH32 0x4661696c656420746f2073656e64204574686572000000000000000000000000
000005fd: PUSH1 0x44
000005ff: DUP3
00000600: ADD
00000601: MSTORE
00000602: PUSH1 0x64
00000604: ADD
00000605: PUSH2 0x03bd
00000608: JUMP
00000609: JUMPDEST
0000060a: POP
0000060b: POP
0000060c: POP
0000060d: POP
0000060e: JUMP
0000060f: JUMPDEST
00000610: PUSH32 0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c
00000631: PUSH2 0x063a
00000634: DUP2
00000635: CALLER
00000636: PUSH2 0x06d6
00000639: JUMP
0000063a: JUMPDEST
0000063b: PUSH1 0x01
0000063d: PUSH1 0x01
0000063f: PUSH1 0xa0
00000641: SHL
00000642: SUB
00000643: DUP4
00000644: AND
00000645: PUSH2 0x069c
00000648: JUMPI
00000649: PUSH1 0x40
0000064b: MLOAD
0000064c: PUSH3 0x461bcd
00000650: PUSH1 0xe5
00000652: SHL
00000653: DUP2
00000654: MSTORE
00000655: PUSH1 0x20
00000657: PUSH1 0x04
00000659: DUP3
0000065a: ADD
0000065b: MSTORE
0000065c: PUSH1 0x24
0000065e: DUP1
0000065f: DUP3
00000660: ADD
00000661: MSTORE
00000662: PUSH32 0x54726561737572793a2050726576656e74696e67206163636964656e74616c20
00000683: PUSH1 0x44
00000685: DUP3
00000686: ADD
00000687: MSTORE
00000688: PUSH4 0x313ab937
0000068d: PUSH1 0xe1
0000068f: SHL
00000690: PUSH1 0x64
00000692: DUP3
00000693: ADD
00000694: MSTORE
00000695: PUSH1 0x84
00000697: ADD
00000698: PUSH2 0x03bd
0000069b: JUMP
0000069c: JUMPDEST
0000069d: PUSH2 0x0609
000006a0: PUSH1 0x01
000006a2: PUSH1 0x01
000006a4: PUSH1 0xa0
000006a6: SHL
000006a7: SUB
000006a8: DUP6
000006a9: AND
000006aa: DUP5
000006ab: DUP5
000006ac: PUSH2 0x08fa
000006af: JUMP
000006b0: JUMPDEST
000006b1: PUSH1 0x00
000006b3: DUP3
000006b4: DUP2
000006b5: MSTORE
000006b6: PUSH1 0x65
000006b8: PUSH1 0x20
000006ba: MSTORE
000006bb: PUSH1 0x40
000006bd: SWAP1
000006be: KECCAK256
000006bf: PUSH1 0x01
000006c1: ADD
000006c2: SLOAD
000006c3: PUSH2 0x06cc
000006c6: DUP2
000006c7: CALLER
000006c8: PUSH2 0x06d6
000006cb: JUMP
000006cc: JUMPDEST
000006cd: PUSH2 0x033e
000006d0: DUP4
000006d1: DUP4
000006d2: PUSH2 0x07f8
000006d5: JUMP
000006d6: JUMPDEST
000006d7: PUSH1 0x00
000006d9: DUP3
000006da: DUP2
000006db: MSTORE
000006dc: PUSH1 0x65
000006de: PUSH1 0x20
000006e0: SWAP1
000006e1: DUP2
000006e2: MSTORE
000006e3: PUSH1 0x40
000006e5: DUP1
000006e6: DUP4
000006e7: KECCAK256
000006e8: PUSH1 0x01
000006ea: PUSH1 0x01
000006ec: PUSH1 0xa0
000006ee: SHL
000006ef: SUB
000006f0: DUP6
000006f1: AND
000006f2: DUP5
000006f3: MSTORE
000006f4: SWAP1
000006f5: SWAP2
000006f6: MSTORE
000006f7: SWAP1
000006f8: KECCAK256
000006f9: SLOAD
000006fa: PUSH1 0xff
000006fc: AND
000006fd: PUSH2 0x03d0
00000700: JUMPI
00000701: PUSH2 0x0714
00000704: DUP2
00000705: PUSH1 0x01
00000707: PUSH1 0x01
00000709: PUSH1 0xa0
0000070b: SHL
0000070c: SUB
0000070d: AND
0000070e: PUSH1 0x14
00000710: PUSH2 0x097a
00000713: JUMP
00000714: JUMPDEST
00000715: PUSH2 0x071f
00000718: DUP4
00000719: PUSH1 0x20
0000071b: PUSH2 0x097a
0000071e: JUMP
0000071f: JUMPDEST
00000720: PUSH1 0x40
00000722: MLOAD
00000723: PUSH1 0x20
00000725: ADD
00000726: PUSH2 0x0730
00000729: SWAP3
0000072a: SWAP2
0000072b: SWAP1
0000072c: PUSH2 0x0f80
0000072f: JUMP
00000730: JUMPDEST
00000731: PUSH1 0x40
00000733: DUP1
00000734: MLOAD
00000735: PUSH1 0x1f
00000737: NOT
00000738: DUP2
00000739: DUP5
0000073a: SUB
0000073b: ADD
0000073c: DUP2
0000073d: MSTORE
0000073e: SWAP1
0000073f: DUP3
00000740: SWAP1
00000741: MSTORE
00000742: PUSH3 0x461bcd
00000746: PUSH1 0xe5
00000748: SHL
00000749: DUP3
0000074a: MSTORE
0000074b: PUSH2 0x03bd
0000074e: SWAP2
0000074f: PUSH1 0x04
00000751: ADD
00000752: PUSH2 0x1001
00000755: JUMP
00000756: JUMPDEST
00000757: PUSH1 0x00
00000759: DUP3
0000075a: DUP2
0000075b: MSTORE
0000075c: PUSH1 0x65
0000075e: PUSH1 0x20
00000760: SWAP1
00000761: DUP2
00000762: MSTORE
00000763: PUSH1 0x40
00000765: DUP1
00000766: DUP4
00000767: KECCAK256
00000768: PUSH1 0x01
0000076a: PUSH1 0x01
0000076c: PUSH1 0xa0
0000076e: SHL
0000076f: SUB
00000770: DUP6
00000771: AND
00000772: DUP5
00000773: MSTORE
00000774: SWAP1
00000775: SWAP2
00000776: MSTORE
00000777: SWAP1
00000778: KECCAK256
00000779: SLOAD
0000077a: PUSH1 0xff
0000077c: AND
0000077d: PUSH2 0x03d0
00000780: JUMPI
00000781: PUSH1 0x00
00000783: DUP3
00000784: DUP2
00000785: MSTORE
00000786: PUSH1 0x65
00000788: PUSH1 0x20
0000078a: SWAP1
0000078b: DUP2
0000078c: MSTORE
0000078d: PUSH1 0x40
0000078f: DUP1
00000790: DUP4
00000791: KECCAK256
00000792: PUSH1 0x01
00000794: PUSH1 0x01
00000796: PUSH1 0xa0
00000798: SHL
00000799: SUB
0000079a: DUP6
0000079b: AND
0000079c: DUP5
0000079d: MSTORE
0000079e: SWAP1
0000079f: SWAP2
000007a0: MSTORE
000007a1: SWAP1
000007a2: KECCAK256
000007a3: DUP1
000007a4: SLOAD
000007a5: PUSH1 0xff
000007a7: NOT
000007a8: AND
000007a9: PUSH1 0x01
000007ab: OR
000007ac: SWAP1
000007ad: SSTORE
000007ae: PUSH2 0x07b4
000007b1: CALLER
000007b2: SWAP1
000007b3: JUMP
000007b4: JUMPDEST
000007b5: PUSH1 0x01
000007b7: PUSH1 0x01
000007b9: PUSH1 0xa0
000007bb: SHL
000007bc: SUB
000007bd: AND
000007be: DUP2
000007bf: PUSH1 0x01
000007c1: PUSH1 0x01
000007c3: PUSH1 0xa0
000007c5: SHL
000007c6: SUB
000007c7: AND
000007c8: DUP4
000007c9: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
000007ea: PUSH1 0x40
000007ec: MLOAD
000007ed: PUSH1 0x40
000007ef: MLOAD
000007f0: DUP1
000007f1: SWAP2
000007f2: SUB
000007f3: SWAP1
000007f4: LOG4
000007f5: POP
000007f6: POP
000007f7: JUMP
000007f8: JUMPDEST
000007f9: PUSH1 0x00
000007fb: DUP3
000007fc: DUP2
000007fd: MSTORE
000007fe: PUSH1 0x65
00000800: PUSH1 0x20
00000802: SWAP1
00000803: DUP2
00000804: MSTORE
00000805: PUSH1 0x40
00000807: DUP1
00000808: DUP4
00000809: KECCAK256
0000080a: PUSH1 0x01
0000080c: PUSH1 0x01
0000080e: PUSH1 0xa0
00000810: SHL
00000811: SUB
00000812: DUP6
00000813: AND
00000814: DUP5
00000815: MSTORE
00000816: SWAP1
00000817: SWAP2
00000818: MSTORE
00000819: SWAP1
0000081a: KECCAK256
0000081b: SLOAD
0000081c: PUSH1 0xff
0000081e: AND
0000081f: ISZERO
00000820: PUSH2 0x03d0
00000823: JUMPI
00000824: PUSH1 0x00
00000826: DUP3
00000827: DUP2
00000828: MSTORE
00000829: PUSH1 0x65
0000082b: PUSH1 0x20
0000082d: SWAP1
0000082e: DUP2
0000082f: MSTORE
00000830: PUSH1 0x40
00000832: DUP1
00000833: DUP4
00000834: KECCAK256
00000835: PUSH1 0x01
00000837: PUSH1 0x01
00000839: PUSH1 0xa0
0000083b: SHL
0000083c: SUB
0000083d: DUP6
0000083e: AND
0000083f: DUP1
00000840: DUP6
00000841: MSTORE
00000842: SWAP3
00000843: MSTORE
00000844: DUP1
00000845: DUP4
00000846: KECCAK256
00000847: DUP1
00000848: SLOAD
00000849: PUSH1 0xff
0000084b: NOT
0000084c: AND
0000084d: SWAP1
0000084e: SSTORE
0000084f: MLOAD
00000850: CALLER
00000851: SWAP3
00000852: DUP6
00000853: SWAP2
00000854: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b
00000875: SWAP2
00000876: SWAP1
00000877: LOG4
00000878: POP
00000879: POP
0000087a: JUMP
0000087b: JUMPDEST
0000087c: PUSH1 0x00
0000087e: SLOAD
0000087f: PUSH2 0x0100
00000882: SWAP1
00000883: DIV
00000884: PUSH1 0xff
00000886: AND
00000887: PUSH2 0x08f8
0000088a: JUMPI
0000088b: PUSH1 0x40
0000088d: MLOAD
0000088e: PUSH3 0x461bcd
00000892: PUSH1 0xe5
00000894: SHL
00000895: DUP2
00000896: MSTORE
00000897: PUSH1 0x20
00000899: PUSH1 0x04
0000089b: DUP3
0000089c: ADD
0000089d: MSTORE
0000089e: PUSH1 0x2b
000008a0: PUSH1 0x24
000008a2: DUP3
000008a3: ADD
000008a4: MSTORE
000008a5: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
000008c6: PUSH1 0x44
000008c8: DUP3
000008c9: ADD
000008ca: MSTORE
000008cb: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
000008ec: PUSH1 0x64
000008ee: DUP3
000008ef: ADD
000008f0: MSTORE
000008f1: PUSH1 0x84
000008f3: ADD
000008f4: PUSH2 0x03bd
000008f7: JUMP
000008f8: JUMPDEST
000008f9: JUMP
000008fa: JUMPDEST
000008fb: PUSH1 0x40
000008fd: DUP1
000008fe: MLOAD
000008ff: PUSH1 0x01
00000901: PUSH1 0x01
00000903: PUSH1 0xa0
00000905: SHL
00000906: SUB
00000907: DUP5
00000908: AND
00000909: PUSH1 0x24
0000090b: DUP3
0000090c: ADD
0000090d: MSTORE
0000090e: PUSH1 0x44
00000910: DUP1
00000911: DUP3
00000912: ADD
00000913: DUP5
00000914: SWAP1
00000915: MSTORE
00000916: DUP3
00000917: MLOAD
00000918: DUP1
00000919: DUP4
0000091a: SUB
0000091b: SWAP1
0000091c: SWAP2
0000091d: ADD
0000091e: DUP2
0000091f: MSTORE
00000920: PUSH1 0x64
00000922: SWAP1
00000923: SWAP2
00000924: ADD
00000925: SWAP1
00000926: SWAP2
00000927: MSTORE
00000928: PUSH1 0x20
0000092a: DUP2
0000092b: ADD
0000092c: DUP1
0000092d: MLOAD
0000092e: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000094b: AND
0000094c: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
0000096d: OR
0000096e: SWAP1
0000096f: MSTORE
00000970: PUSH2 0x033e
00000973: SWAP1
00000974: DUP5
00000975: SWAP1
00000976: PUSH2 0x0baa
00000979: JUMP
0000097a: JUMPDEST
0000097b: PUSH1 0x60
0000097d: PUSH1 0x00
0000097f: PUSH2 0x0989
00000982: DUP4
00000983: PUSH1 0x02
00000985: PUSH2 0x104a
00000988: JUMP
00000989: JUMPDEST
0000098a: PUSH2 0x0994
0000098d: SWAP1
0000098e: PUSH1 0x02
00000990: PUSH2 0x1069
00000993: JUMP
00000994: JUMPDEST
00000995: PUSH8 0xffffffffffffffff
0000099e: DUP2
0000099f: GT
000009a0: ISZERO
000009a1: PUSH2 0x09ac
000009a4: JUMPI
000009a5: PUSH2 0x09ac
000009a8: PUSH2 0x1081
000009ab: JUMP
000009ac: JUMPDEST
000009ad: PUSH1 0x40
000009af: MLOAD
000009b0: SWAP1
000009b1: DUP1
000009b2: DUP3
000009b3: MSTORE
000009b4: DUP1
000009b5: PUSH1 0x1f
000009b7: ADD
000009b8: PUSH1 0x1f
000009ba: NOT
000009bb: AND
000009bc: PUSH1 0x20
000009be: ADD
000009bf: DUP3
000009c0: ADD
000009c1: PUSH1 0x40
000009c3: MSTORE
000009c4: DUP1
000009c5: ISZERO
000009c6: PUSH2 0x09d6
000009c9: JUMPI
000009ca: PUSH1 0x20
000009cc: DUP3
000009cd: ADD
000009ce: DUP2
000009cf: DUP1
000009d0: CALLDATASIZE
000009d1: DUP4
000009d2: CALLDATACOPY
000009d3: ADD
000009d4: SWAP1
000009d5: POP
000009d6: JUMPDEST
000009d7: POP
000009d8: SWAP1
000009d9: POP
000009da: PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000
000009fb: DUP2
000009fc: PUSH1 0x00
000009fe: DUP2
000009ff: MLOAD
00000a00: DUP2
00000a01: LT
00000a02: PUSH2 0x0a0d
00000a05: JUMPI
00000a06: PUSH2 0x0a0d
00000a09: PUSH2 0x1097
00000a0c: JUMP
00000a0d: JUMPDEST
00000a0e: PUSH1 0x20
00000a10: ADD
00000a11: ADD
00000a12: SWAP1
00000a13: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000a33: NOT
00000a34: AND
00000a35: SWAP1
00000a36: DUP2
00000a37: PUSH1 0x00
00000a39: BYTE
00000a3a: SWAP1
00000a3b: MSTORE8
00000a3c: POP
00000a3d: PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000
00000a5e: DUP2
00000a5f: PUSH1 0x01
00000a61: DUP2
00000a62: MLOAD
00000a63: DUP2
00000a64: LT
00000a65: PUSH2 0x0a70
00000a68: JUMPI
00000a69: PUSH2 0x0a70
00000a6c: PUSH2 0x1097
00000a6f: JUMP
00000a70: JUMPDEST
00000a71: PUSH1 0x20
00000a73: ADD
00000a74: ADD
00000a75: SWAP1
00000a76: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000a96: NOT
00000a97: AND
00000a98: SWAP1
00000a99: DUP2
00000a9a: PUSH1 0x00
00000a9c: BYTE
00000a9d: SWAP1
00000a9e: MSTORE8
00000a9f: POP
00000aa0: PUSH1 0x00
00000aa2: PUSH2 0x0aac
00000aa5: DUP5
00000aa6: PUSH1 0x02
00000aa8: PUSH2 0x104a
00000aab: JUMP
00000aac: JUMPDEST
00000aad: PUSH2 0x0ab7
00000ab0: SWAP1
00000ab1: PUSH1 0x01
00000ab3: PUSH2 0x1069
00000ab6: JUMP
00000ab7: JUMPDEST
00000ab8: SWAP1
00000ab9: POP
00000aba: JUMPDEST
00000abb: PUSH1 0x01
00000abd: DUP2
00000abe: GT
00000abf: ISZERO
00000ac0: PUSH2 0x0b54
00000ac3: JUMPI
00000ac4: PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000
00000ae5: DUP6
00000ae6: PUSH1 0x0f
00000ae8: AND
00000ae9: PUSH1 0x10
00000aeb: DUP2
00000aec: LT
00000aed: PUSH2 0x0af8
00000af0: JUMPI
00000af1: PUSH2 0x0af8
00000af4: PUSH2 0x1097
00000af7: JUMP
00000af8: JUMPDEST
00000af9: BYTE
00000afa: PUSH1 0xf8
00000afc: SHL
00000afd: DUP3
00000afe: DUP3
00000aff: DUP2
00000b00: MLOAD
00000b01: DUP2
00000b02: LT
00000b03: PUSH2 0x0b0e
00000b06: JUMPI
00000b07: PUSH2 0x0b0e
00000b0a: PUSH2 0x1097
00000b0d: JUMP
00000b0e: JUMPDEST
00000b0f: PUSH1 0x20
00000b11: ADD
00000b12: ADD
00000b13: SWAP1
00000b14: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000b34: NOT
00000b35: AND
00000b36: SWAP1
00000b37: DUP2
00000b38: PUSH1 0x00
00000b3a: BYTE
00000b3b: SWAP1
00000b3c: MSTORE8
00000b3d: POP
00000b3e: PUSH1 0x04
00000b40: SWAP5
00000b41: SWAP1
00000b42: SWAP5
00000b43: SHR
00000b44: SWAP4
00000b45: PUSH2 0x0b4d
00000b48: DUP2
00000b49: PUSH2 0x10ad
00000b4c: JUMP
00000b4d: JUMPDEST
00000b4e: SWAP1
00000b4f: POP
00000b50: PUSH2 0x0aba
00000b53: JUMP
00000b54: JUMPDEST
00000b55: POP
00000b56: DUP4
00000b57: ISZERO
00000b58: PUSH2 0x0ba3
00000b5b: JUMPI
00000b5c: PUSH1 0x40
00000b5e: MLOAD
00000b5f: PUSH3 0x461bcd
00000b63: PUSH1 0xe5
00000b65: SHL
00000b66: DUP2
00000b67: MSTORE
00000b68: PUSH1 0x20
00000b6a: PUSH1 0x04
00000b6c: DUP3
00000b6d: ADD
00000b6e: DUP2
00000b6f: SWAP1
00000b70: MSTORE
00000b71: PUSH1 0x24
00000b73: DUP3
00000b74: ADD
00000b75: MSTORE
00000b76: PUSH32 0x537472696e67733a20686578206c656e67746820696e73756666696369656e74
00000b97: PUSH1 0x44
00000b99: DUP3
00000b9a: ADD
00000b9b: MSTORE
00000b9c: PUSH1 0x64
00000b9e: ADD
00000b9f: PUSH2 0x03bd
00000ba2: JUMP
00000ba3: JUMPDEST
00000ba4: SWAP4
00000ba5: SWAP3
00000ba6: POP
00000ba7: POP
00000ba8: POP
00000ba9: JUMP
00000baa: JUMPDEST
00000bab: PUSH1 0x00
00000bad: PUSH2 0x0bff
00000bb0: DUP3
00000bb1: PUSH1 0x40
00000bb3: MLOAD
00000bb4: DUP1
00000bb5: PUSH1 0x40
00000bb7: ADD
00000bb8: PUSH1 0x40
00000bba: MSTORE
00000bbb: DUP1
00000bbc: PUSH1 0x20
00000bbe: DUP2
00000bbf: MSTORE
00000bc0: PUSH1 0x20
00000bc2: ADD
00000bc3: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00000be4: DUP2
00000be5: MSTORE
00000be6: POP
00000be7: DUP6
00000be8: PUSH1 0x01
00000bea: PUSH1 0x01
00000bec: PUSH1 0xa0
00000bee: SHL
00000bef: SUB
00000bf0: AND
00000bf1: PUSH2 0x0c8f
00000bf4: SWAP1
00000bf5: SWAP3
00000bf6: SWAP2
00000bf7: SWAP1
00000bf8: PUSH4 0xffffffff
00000bfd: AND
00000bfe: JUMP
00000bff: JUMPDEST
00000c00: DUP1
00000c01: MLOAD
00000c02: SWAP1
00000c03: SWAP2
00000c04: POP
00000c05: ISZERO
00000c06: PUSH2 0x033e
00000c09: JUMPI
00000c0a: DUP1
00000c0b: DUP1
00000c0c: PUSH1 0x20
00000c0e: ADD
00000c0f: SWAP1
00000c10: MLOAD
00000c11: DUP2
00000c12: ADD
00000c13: SWAP1
00000c14: PUSH2 0x0c1d
00000c17: SWAP2
00000c18: SWAP1
00000c19: PUSH2 0x10c4
00000c1c: JUMP
00000c1d: JUMPDEST
00000c1e: PUSH2 0x033e
00000c21: JUMPI
00000c22: PUSH1 0x40
00000c24: MLOAD
00000c25: PUSH3 0x461bcd
00000c29: PUSH1 0xe5
00000c2b: SHL
00000c2c: DUP2
00000c2d: MSTORE
00000c2e: PUSH1 0x20
00000c30: PUSH1 0x04
00000c32: DUP3
00000c33: ADD
00000c34: MSTORE
00000c35: PUSH1 0x2a
00000c37: PUSH1 0x24
00000c39: DUP3
00000c3a: ADD
00000c3b: MSTORE
00000c3c: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
00000c5d: PUSH1 0x44
00000c5f: DUP3
00000c60: ADD
00000c61: MSTORE
00000c62: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000
00000c83: PUSH1 0x64
00000c85: DUP3
00000c86: ADD
00000c87: MSTORE
00000c88: PUSH1 0x84
00000c8a: ADD
00000c8b: PUSH2 0x03bd
00000c8e: JUMP
00000c8f: JUMPDEST
00000c90: PUSH1 0x60
00000c92: PUSH2 0x0c9e
00000c95: DUP5
00000c96: DUP5
00000c97: PUSH1 0x00
00000c99: DUP6
00000c9a: PUSH2 0x0ca6
00000c9d: JUMP
00000c9e: JUMPDEST
00000c9f: SWAP5
00000ca0: SWAP4
00000ca1: POP
00000ca2: POP
00000ca3: POP
00000ca4: POP
00000ca5: JUMP
00000ca6: JUMPDEST
00000ca7: PUSH1 0x60
00000ca9: DUP3
00000caa: SELFBALANCE
00000cab: LT
00000cac: ISZERO
00000cad: PUSH2 0x0d1e
00000cb0: JUMPI
00000cb1: PUSH1 0x40
00000cb3: MLOAD
00000cb4: PUSH3 0x461bcd
00000cb8: PUSH1 0xe5
00000cba: SHL
00000cbb: DUP2
00000cbc: MSTORE
00000cbd: PUSH1 0x20
00000cbf: PUSH1 0x04
00000cc1: DUP3
00000cc2: ADD
00000cc3: MSTORE
00000cc4: PUSH1 0x26
00000cc6: PUSH1 0x24
00000cc8: DUP3
00000cc9: ADD
00000cca: MSTORE
00000ccb: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f
00000cec: PUSH1 0x44
00000cee: DUP3
00000cef: ADD
00000cf0: MSTORE
00000cf1: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000
00000d12: PUSH1 0x64
00000d14: DUP3
00000d15: ADD
00000d16: MSTORE
00000d17: PUSH1 0x84
00000d19: ADD
00000d1a: PUSH2 0x03bd
00000d1d: JUMP
00000d1e: JUMPDEST
00000d1f: PUSH1 0x01
00000d21: PUSH1 0x01
00000d23: PUSH1 0xa0
00000d25: SHL
00000d26: SUB
00000d27: DUP6
00000d28: AND
00000d29: EXTCODESIZE
00000d2a: PUSH2 0x0d75
00000d2d: JUMPI
00000d2e: PUSH1 0x40
00000d30: MLOAD
00000d31: PUSH3 0x461bcd
00000d35: PUSH1 0xe5
00000d37: SHL
00000d38: DUP2
00000d39: MSTORE
00000d3a: PUSH1 0x20
00000d3c: PUSH1 0x04
00000d3e: DUP3
00000d3f: ADD
00000d40: MSTORE
00000d41: PUSH1 0x1d
00000d43: PUSH1 0x24
00000d45: DUP3
00000d46: ADD
00000d47: MSTORE
00000d48: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00000d69: PUSH1 0x44
00000d6b: DUP3
00000d6c: ADD
00000d6d: MSTORE
00000d6e: PUSH1 0x64
00000d70: ADD
00000d71: PUSH2 0x03bd
00000d74: JUMP
00000d75: JUMPDEST
00000d76: PUSH1 0x00
00000d78: DUP1
00000d79: DUP7
00000d7a: PUSH1 0x01
00000d7c: PUSH1 0x01
00000d7e: PUSH1 0xa0
00000d80: SHL
00000d81: SUB
00000d82: AND
00000d83: DUP6
00000d84: DUP8
00000d85: PUSH1 0x40
00000d87: MLOAD
00000d88: PUSH2 0x0d91
00000d8b: SWAP2
00000d8c: SWAP1
00000d8d: PUSH2 0x10e6
00000d90: JUMP
00000d91: JUMPDEST
00000d92: PUSH1 0x00
00000d94: PUSH1 0x40
00000d96: MLOAD
00000d97: DUP1
00000d98: DUP4
00000d99: SUB
00000d9a: DUP2
00000d9b: DUP6
00000d9c: DUP8
00000d9d: GAS
00000d9e: CALL
00000d9f: SWAP3
00000da0: POP
00000da1: POP
00000da2: POP
00000da3: RETURNDATASIZE
00000da4: DUP1
00000da5: PUSH1 0x00
00000da7: DUP2
00000da8: EQ
00000da9: PUSH2 0x0dce
00000dac: JUMPI
00000dad: PUSH1 0x40
00000daf: MLOAD
00000db0: SWAP2
00000db1: POP
00000db2: PUSH1 0x1f
00000db4: NOT
00000db5: PUSH1 0x3f
00000db7: RETURNDATASIZE
00000db8: ADD
00000db9: AND
00000dba: DUP3
00000dbb: ADD
00000dbc: PUSH1 0x40
00000dbe: MSTORE
00000dbf: RETURNDATASIZE
00000dc0: DUP3
00000dc1: MSTORE
00000dc2: RETURNDATASIZE
00000dc3: PUSH1 0x00
00000dc5: PUSH1 0x20
00000dc7: DUP5
00000dc8: ADD
00000dc9: RETURNDATACOPY
00000dca: PUSH2 0x0dd3
00000dcd: JUMP
00000dce: JUMPDEST
00000dcf: PUSH1 0x60
00000dd1: SWAP2
00000dd2: POP
00000dd3: JUMPDEST
00000dd4: POP
00000dd5: SWAP2
00000dd6: POP
00000dd7: SWAP2
00000dd8: POP
00000dd9: PUSH2 0x0de3
00000ddc: DUP3
00000ddd: DUP3
00000dde: DUP7
00000ddf: PUSH2 0x0dee
00000de2: JUMP
00000de3: JUMPDEST
00000de4: SWAP8
00000de5: SWAP7
00000de6: POP
00000de7: POP
00000de8: POP
00000de9: POP
00000dea: POP
00000deb: POP
00000dec: POP
00000ded: JUMP
00000dee: JUMPDEST
00000def: PUSH1 0x60
00000df1: DUP4
00000df2: ISZERO
00000df3: PUSH2 0x0dfd
00000df6: JUMPI
00000df7: POP
00000df8: DUP2
00000df9: PUSH2 0x0ba3
00000dfc: JUMP
00000dfd: JUMPDEST
00000dfe: DUP3
00000dff: MLOAD
00000e00: ISZERO
00000e01: PUSH2 0x0e0d
00000e04: JUMPI
00000e05: DUP3
00000e06: MLOAD
00000e07: DUP1
00000e08: DUP5
00000e09: PUSH1 0x20
00000e0b: ADD
00000e0c: REVERT
00000e0d: JUMPDEST
00000e0e: DUP2
00000e0f: PUSH1 0x40
00000e11: MLOAD
00000e12: PUSH3 0x461bcd
00000e16: PUSH1 0xe5
00000e18: SHL
00000e19: DUP2
00000e1a: MSTORE
00000e1b: PUSH1 0x04
00000e1d: ADD
00000e1e: PUSH2 0x03bd
00000e21: SWAP2
00000e22: SWAP1
00000e23: PUSH2 0x1001
00000e26: JUMP
00000e27: JUMPDEST
00000e28: PUSH1 0x00
00000e2a: PUSH1 0x20
00000e2c: DUP3
00000e2d: DUP5
00000e2e: SUB
00000e2f: SLT
00000e30: ISZERO
00000e31: PUSH2 0x0e39
00000e34: JUMPI
00000e35: PUSH1 0x00
00000e37: DUP1
00000e38: REVERT
00000e39: JUMPDEST
00000e3a: DUP2
00000e3b: CALLDATALOAD
00000e3c: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000e5d: DUP2
00000e5e: AND
00000e5f: DUP2
00000e60: EQ
00000e61: PUSH2 0x0ba3
00000e64: JUMPI
00000e65: PUSH1 0x00
00000e67: DUP1
00000e68: REVERT
00000e69: JUMPDEST
00000e6a: PUSH1 0x00
00000e6c: PUSH1 0x20
00000e6e: DUP3
00000e6f: DUP5
00000e70: SUB
00000e71: SLT
00000e72: ISZERO
00000e73: PUSH2 0x0e7b
00000e76: JUMPI
00000e77: PUSH1 0x00
00000e79: DUP1
00000e7a: REVERT
00000e7b: JUMPDEST
00000e7c: POP
00000e7d: CALLDATALOAD
00000e7e: SWAP2
00000e7f: SWAP1
00000e80: POP
00000e81: JUMP
00000e82: JUMPDEST
00000e83: PUSH1 0x01
00000e85: PUSH1 0x01
00000e87: PUSH1 0xa0
00000e89: SHL
00000e8a: SUB
00000e8b: DUP2
00000e8c: AND
00000e8d: DUP2
00000e8e: EQ
00000e8f: PUSH2 0x0e97
00000e92: JUMPI
00000e93: PUSH1 0x00
00000e95: DUP1
00000e96: REVERT
00000e97: JUMPDEST
00000e98: POP
00000e99: JUMP
00000e9a: JUMPDEST
00000e9b: PUSH1 0x00
00000e9d: DUP1
00000e9e: PUSH1 0x40
00000ea0: DUP4
00000ea1: DUP6
00000ea2: SUB
00000ea3: SLT
00000ea4: ISZERO
00000ea5: PUSH2 0x0ead
00000ea8: JUMPI
00000ea9: PUSH1 0x00
00000eab: DUP1
00000eac: REVERT
00000ead: JUMPDEST
00000eae: DUP3
00000eaf: CALLDATALOAD
00000eb0: SWAP2
00000eb1: POP
00000eb2: PUSH1 0x20
00000eb4: DUP4
00000eb5: ADD
00000eb6: CALLDATALOAD
00000eb7: PUSH2 0x0ebf
00000eba: DUP2
00000ebb: PUSH2 0x0e82
00000ebe: JUMP
00000ebf: JUMPDEST
00000ec0: DUP1
00000ec1: SWAP2
00000ec2: POP
00000ec3: POP
00000ec4: SWAP3
00000ec5: POP
00000ec6: SWAP3
00000ec7: SWAP1
00000ec8: POP
00000ec9: JUMP
00000eca: JUMPDEST
00000ecb: PUSH1 0x00
00000ecd: PUSH1 0x20
00000ecf: DUP3
00000ed0: DUP5
00000ed1: SUB
00000ed2: SLT
00000ed3: ISZERO
00000ed4: PUSH2 0x0edc
00000ed7: JUMPI
00000ed8: PUSH1 0x00
00000eda: DUP1
00000edb: REVERT
00000edc: JUMPDEST
00000edd: DUP2
00000ede: CALLDATALOAD
00000edf: PUSH2 0x0ba3
00000ee2: DUP2
00000ee3: PUSH2 0x0e82
00000ee6: JUMP
00000ee7: JUMPDEST
00000ee8: PUSH1 0x00
00000eea: DUP1
00000eeb: PUSH1 0x40
00000eed: DUP4
00000eee: DUP6
00000eef: SUB
00000ef0: SLT
00000ef1: ISZERO
00000ef2: PUSH2 0x0efa
00000ef5: JUMPI
00000ef6: PUSH1 0x00
00000ef8: DUP1
00000ef9: REVERT
00000efa: JUMPDEST
00000efb: DUP3
00000efc: CALLDATALOAD
00000efd: PUSH2 0x0f05
00000f00: DUP2
00000f01: PUSH2 0x0e82
00000f04: JUMP
00000f05: JUMPDEST
00000f06: SWAP5
00000f07: PUSH1 0x20
00000f09: SWAP4
00000f0a: SWAP1
00000f0b: SWAP4
00000f0c: ADD
00000f0d: CALLDATALOAD
00000f0e: SWAP4
00000f0f: POP
00000f10: POP
00000f11: POP
00000f12: JUMP
00000f13: JUMPDEST
00000f14: PUSH1 0x00
00000f16: DUP1
00000f17: PUSH1 0x00
00000f19: PUSH1 0x60
00000f1b: DUP5
00000f1c: DUP7
00000f1d: SUB
00000f1e: SLT
00000f1f: ISZERO
00000f20: PUSH2 0x0f28
00000f23: JUMPI
00000f24: PUSH1 0x00
00000f26: DUP1
00000f27: REVERT
00000f28: JUMPDEST
00000f29: DUP4
00000f2a: CALLDATALOAD
00000f2b: PUSH2 0x0f33
00000f2e: DUP2
00000f2f: PUSH2 0x0e82
00000f32: JUMP
00000f33: JUMPDEST
00000f34: SWAP3
00000f35: POP
00000f36: PUSH1 0x20
00000f38: DUP5
00000f39: ADD
00000f3a: CALLDATALOAD
00000f3b: PUSH2 0x0f43
00000f3e: DUP2
00000f3f: PUSH2 0x0e82
00000f42: JUMP
00000f43: JUMPDEST
00000f44: SWAP3
00000f45: SWAP6
00000f46: SWAP3
00000f47: SWAP5
00000f48: POP
00000f49: POP
00000f4a: POP
00000f4b: PUSH1 0x40
00000f4d: SWAP2
00000f4e: SWAP1
00000f4f: SWAP2
00000f50: ADD
00000f51: CALLDATALOAD
00000f52: SWAP1
00000f53: JUMP
00000f54: JUMPDEST
00000f55: PUSH1 0x00
00000f57: JUMPDEST
00000f58: DUP4
00000f59: DUP2
00000f5a: LT
00000f5b: ISZERO
00000f5c: PUSH2 0x0f6f
00000f5f: JUMPI
00000f60: DUP2
00000f61: DUP2
00000f62: ADD
00000f63: MLOAD
00000f64: DUP4
00000f65: DUP3
00000f66: ADD
00000f67: MSTORE
00000f68: PUSH1 0x20
00000f6a: ADD
00000f6b: PUSH2 0x0f57
00000f6e: JUMP
00000f6f: JUMPDEST
00000f70: DUP4
00000f71: DUP2
00000f72: GT
00000f73: ISZERO
00000f74: PUSH2 0x0609
00000f77: JUMPI
00000f78: POP
00000f79: POP
00000f7a: PUSH1 0x00
00000f7c: SWAP2
00000f7d: ADD
00000f7e: MSTORE
00000f7f: JUMP
00000f80: JUMPDEST
00000f81: PUSH32 0x416363657373436f6e74726f6c3a206163636f756e7420000000000000000000
00000fa2: DUP2
00000fa3: MSTORE
00000fa4: PUSH1 0x00
00000fa6: DUP4
00000fa7: MLOAD
00000fa8: PUSH2 0x0fb8
00000fab: DUP2
00000fac: PUSH1 0x17
00000fae: DUP6
00000faf: ADD
00000fb0: PUSH1 0x20
00000fb2: DUP9
00000fb3: ADD
00000fb4: PUSH2 0x0f54
00000fb7: JUMP
00000fb8: JUMPDEST
00000fb9: PUSH32 0x206973206d697373696e6720726f6c6520000000000000000000000000000000
00000fda: PUSH1 0x17
00000fdc: SWAP2
00000fdd: DUP5
00000fde: ADD
00000fdf: SWAP2
00000fe0: DUP3
00000fe1: ADD
00000fe2: MSTORE
00000fe3: DUP4
00000fe4: MLOAD
00000fe5: PUSH2 0x0ff5
00000fe8: DUP2
00000fe9: PUSH1 0x28
00000feb: DUP5
00000fec: ADD
00000fed: PUSH1 0x20
00000fef: DUP9
00000ff0: ADD
00000ff1: PUSH2 0x0f54
00000ff4: JUMP
00000ff5: JUMPDEST
00000ff6: ADD
00000ff7: PUSH1 0x28
00000ff9: ADD
00000ffa: SWAP5
00000ffb: SWAP4
00000ffc: POP
00000ffd: POP
00000ffe: POP
00000fff: POP
00001000: JUMP
00001001: JUMPDEST
00001002: PUSH1 0x20
00001004: DUP2
00001005: MSTORE
00001006: PUSH1 0x00
00001008: DUP3
00001009: MLOAD
0000100a: DUP1
0000100b: PUSH1 0x20
0000100d: DUP5
0000100e: ADD
0000100f: MSTORE
00001010: PUSH2 0x1020
00001013: DUP2
00001014: PUSH1 0x40
00001016: DUP6
00001017: ADD
00001018: PUSH1 0x20
0000101a: DUP8
0000101b: ADD
0000101c: PUSH2 0x0f54
0000101f: JUMP
00001020: JUMPDEST
00001021: PUSH1 0x1f
00001023: ADD
00001024: PUSH1 0x1f
00001026: NOT
00001027: AND
00001028: SWAP2
00001029: SWAP1
0000102a: SWAP2
0000102b: ADD
0000102c: PUSH1 0x40
0000102e: ADD
0000102f: SWAP3
00001030: SWAP2
00001031: POP
00001032: POP
00001033: JUMP
00001034: JUMPDEST
00001035: PUSH4 0x4e487b71
0000103a: PUSH1 0xe0
0000103c: SHL
0000103d: PUSH1 0x00
0000103f: MSTORE
00001040: PUSH1 0x11
00001042: PUSH1 0x04
00001044: MSTORE
00001045: PUSH1 0x24
00001047: PUSH1 0x00
00001049: REVERT
0000104a: JUMPDEST
0000104b: PUSH1 0x00
0000104d: DUP2
0000104e: PUSH1 0x00
00001050: NOT
00001051: DIV
00001052: DUP4
00001053: GT
00001054: DUP3
00001055: ISZERO
00001056: ISZERO
00001057: AND
00001058: ISZERO
00001059: PUSH2 0x1064
0000105c: JUMPI
0000105d: PUSH2 0x1064
00001060: PUSH2 0x1034
00001063: JUMP
00001064: JUMPDEST
00001065: POP
00001066: MUL
00001067: SWAP1
00001068: JUMP
00001069: JUMPDEST
0000106a: PUSH1 0x00
0000106c: DUP3
0000106d: NOT
0000106e: DUP3
0000106f: GT
00001070: ISZERO
00001071: PUSH2 0x107c
00001074: JUMPI
00001075: PUSH2 0x107c
00001078: PUSH2 0x1034
0000107b: JUMP
0000107c: JUMPDEST
0000107d: POP
0000107e: ADD
0000107f: SWAP1
00001080: JUMP
00001081: JUMPDEST
00001082: PUSH4 0x4e487b71
00001087: PUSH1 0xe0
00001089: SHL
0000108a: PUSH1 0x00
0000108c: MSTORE
0000108d: PUSH1 0x41
0000108f: PUSH1 0x04
00001091: MSTORE
00001092: PUSH1 0x24
00001094: PUSH1 0x00
00001096: REVERT
00001097: JUMPDEST
00001098: PUSH4 0x4e487b71
0000109d: PUSH1 0xe0
0000109f: SHL
000010a0: PUSH1 0x00
000010a2: MSTORE
000010a3: PUSH1 0x32
000010a5: PUSH1 0x04
000010a7: MSTORE
000010a8: PUSH1 0x24
000010aa: PUSH1 0x00
000010ac: REVERT
000010ad: JUMPDEST
000010ae: PUSH1 0x00
000010b0: DUP2
000010b1: PUSH2 0x10bc
000010b4: JUMPI
000010b5: PUSH2 0x10bc
000010b8: PUSH2 0x1034
000010bb: JUMP
000010bc: JUMPDEST
000010bd: POP
000010be: PUSH1 0x00
000010c0: NOT
000010c1: ADD
000010c2: SWAP1
000010c3: JUMP
000010c4: JUMPDEST
000010c5: PUSH1 0x00
000010c7: PUSH1 0x20
000010c9: DUP3
000010ca: DUP5
000010cb: SUB
000010cc: SLT
000010cd: ISZERO
000010ce: PUSH2 0x10d6
000010d1: JUMPI
000010d2: PUSH1 0x00
000010d4: DUP1
000010d5: REVERT
000010d6: JUMPDEST
000010d7: DUP2
000010d8: MLOAD
000010d9: DUP1
000010da: ISZERO
000010db: ISZERO
000010dc: DUP2
000010dd: EQ
000010de: PUSH2 0x0ba3
000010e1: JUMPI
000010e2: PUSH1 0x00
000010e4: DUP1
000010e5: REVERT
000010e6: JUMPDEST
000010e7: PUSH1 0x00
000010e9: DUP3
000010ea: MLOAD
000010eb: PUSH2 0x10f8
000010ee: DUP2
000010ef: DUP5
000010f0: PUSH1 0x20
000010f2: DUP8
000010f3: ADD
000010f4: PUSH2 0x0f54
000010f7: JUMP
000010f8: JUMPDEST
000010f9: SWAP2
000010fa: SWAP1
000010fb: SWAP2
000010fc: ADD
000010fd: SWAP3
000010fe: SWAP2
000010ff: POP
00001100: POP
00001101: JUMP
00001102: INVALID
00001103: LOG2
00001104: PUSH5 0x6970667358
0000110a: UNKNOWN(0x22)
0000110b: SLT
0000110c: KECCAK256
0000110d: OR
0000110e: UNKNOWN(0xED)
0000110f: CALLVALUE
00001110: PC
00001111: UNKNOWN(0xA6)
00001112: TSTORE
00001113: SELFDESTRUCT
00001114: JUMP
00001115: SGT
00001116: UNKNOWN(0xF7)
00001117: LOG3
00001118: UNKNOWN(0xC3)
00001119: NUMBER
0000111a: DUP10
0000111b: SUB
0000111c: RETURNDATACOPY
0000111d: UNKNOWN(0xB2)
0000111e: UNKNOWN(0x2F)
0000111f: PUSH25

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other cast SELFDESTRUCT present 85 no
view
evidence_json
{
    "notes": "selfdestruct can remove contract code and send funds; review reachability",
    "selfdestruct_count": 1
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xef4fffc4f710e52de2afab33f2be19f9ffbc00fd152234e519f8bb392838d08c
call_targets: 0xa092c7577354ea82a6c7e55b423c3dd80f0df255
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xef4fffc4f710e52de2afab33f2be19f9ffbc00fd152234e519f8bb392838d08c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xa092c7577354ea82a6c7e55b423c3dd80f0df255"
    ],
    "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": "0x9db5dbe4",
            "selector": "0x9db5dbe4",
            "calldata_variants": [
                "0x9db5dbe4",
                "0x9db5dbe40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa217fddf",
            "selector": "0xa217fddf",
            "calldata_variants": [
                "0xa217fddf",
                "0xa217fddf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3ed086f4",
            "selector": "0x3ed086f4",
            "calldata_variants": [
                "0x3ed086f4",
                "0x3ed086f40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7b1a4909",
            "selector": "0x7b1a4909",
            "calldata_variants": [
                "0x7b1a4909",
                "0x7b1a49090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x91d14854",
            "selector": "0x91d14854",
            "calldata_variants": [
                "0x91d14854",
                "0x91d148540000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x248a9ca3",
            "selector": "0x248a9ca3",
            "calldata_variants": [
                "0x248a9ca3",
                "0x248a9ca30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2f2ff15d",
            "selector": "0x2f2ff15d",
            "calldata_variants": [
                "0x2f2ff15d",
                "0x2f2ff15d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1411,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3486,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xef4fffc4f710e52de2afab33f2be19f9ffbc00fd152234e519f8bb392838d08c
call_targets: 0xa092c7577354ea82a6c7e55b423c3dd80f0df255
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xef4fffc4f710e52de2afab33f2be19f9ffbc00fd152234e519f8bb392838d08c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xa092c7577354ea82a6c7e55b423c3dd80f0df255"
    ],
    "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": "0x9db5dbe4",
            "selector": "0x9db5dbe4",
            "calldata_variants": [
                "0x9db5dbe4",
                "0x9db5dbe40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa217fddf",
            "selector": "0xa217fddf",
            "calldata_variants": [
                "0xa217fddf",
                "0xa217fddf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3ed086f4",
            "selector": "0x3ed086f4",
            "calldata_variants": [
                "0x3ed086f4",
                "0x3ed086f40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7b1a4909",
            "selector": "0x7b1a4909",
            "calldata_variants": [
                "0x7b1a4909",
                "0x7b1a49090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x91d14854",
            "selector": "0x91d14854",
            "calldata_variants": [
                "0x91d14854",
                "0x91d148540000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x248a9ca3",
            "selector": "0x248a9ca3",
            "calldata_variants": [
                "0x248a9ca3",
                "0x248a9ca30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2f2ff15d",
            "selector": "0x2f2ff15d",
            "calldata_variants": [
                "0x2f2ff15d",
                "0x2f2ff15d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1411,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3486,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
high other detector SELFDESTRUCT reachable 65 no no
view
trace_id: 0x27c417d5ec3d5ff29f9caae0ec6524d96284ebff18581ad6bdc95d2fc7d57578
validation_json
{
    "sink": "SELFDESTRUCT",
    "errors": 0,
    "status": "unknown",
    "attempts": 22,
    "trace_id": "0x27c417d5ec3d5ff29f9caae0ec6524d96284ebff18581ad6bdc95d2fc7d57578",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x9db5dbe4",
            "selector": "0x9db5dbe4",
            "calldata_variants": [
                "0x9db5dbe4",
                "0x9db5dbe40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa217fddf",
            "selector": "0xa217fddf",
            "calldata_variants": [
                "0xa217fddf",
                "0xa217fddf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3ed086f4",
            "selector": "0x3ed086f4",
            "calldata_variants": [
                "0x3ed086f4",
                "0x3ed086f40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7b1a4909",
            "selector": "0x7b1a4909",
            "calldata_variants": [
                "0x7b1a4909",
                "0x7b1a49090000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x91d14854",
            "selector": "0x91d14854",
            "calldata_variants": [
                "0x91d14854",
                "0x91d148540000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x248a9ca3",
            "selector": "0x248a9ca3",
            "calldata_variants": [
                "0x248a9ca3",
                "0x248a9ca30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2f2ff15d",
            "selector": "0x2f2ff15d",
            "calldata_variants": [
                "0x2f2ff15d",
                "0x2f2ff15d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [],
    "selfdestruct_count": 1
}
medium upgradeability codex Initializer allows takeover if proxy/implementation is left uninitialized 75 no
view
evidence_json
{
    "evidence": "`initializeTreasury` is `external initializer` and immediately grants admin and transfer roles to the caller-supplied `_admin`, with no access restriction or initializer lock in the implementation.",
    "locations": [
        "contracts/contracts/treasury/Treasury.sol:25",
        "contracts/contracts/treasury/Treasury.sol:32",
        "contracts/contracts/treasury/Treasury.sol:35"
    ],
    "recommendation": "Ensure the proxy is initialized atomically at deployment (e.g., pass initializer calldata to the proxy constructor). Add a constructor to the implementation that calls `_disableInitializers()` to lock it, and consider validating `_admin != address(0)` to avoid accidental lockout.",
    "exploit_scenario": "If the proxy is deployed without calling `initializeTreasury` in the same transaction (or the implementation is deployed directly and left uninitialized), any address can call the initializer once, grant themselves `DEFAULT_ADMIN_ROLE` and `TRANSFER_ROLE`, then use `transferETH`/`transferERC20` to drain funds held by that contract instance."
}