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

Analysis Run

019ba9bc-ec4f-704e-b7dc-fc8e546adf06

complete
Chain ID
1
Address
Block Number
Created
Sat, Jan 10, 2026 9:08 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
Untrusted DELEGATECALL target reachable
crit 0 high 0 direct contract
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
37748 artifact.fetch complete 1 / 3 3 months ago
37749 proxy.resolve complete 1 / 3 3 months ago
37750 tool.cast_disasm complete 1 / 3 3 months ago
37751 analysis.bundle complete 1 / 3 3 months ago
37752 capability.graph complete 1 / 3 3 months ago
37753 detector.run complete 1 / 3 3 months ago
37754 validation.fork complete 1 / 3 3 months ago
37899 report.consolidate complete 1 / 6 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
Summary
Found 1 low-severity access-control issue: the ambassador phase can be bypassed by forcing ETH into the contract to flip the whitelist gate.
View stdout
{"no_findings":false,"summary":"Found 1 low-severity access-control issue: the ambassador phase can be bypassed by forcing ETH into the contract to flip the whitelist gate.","findings":[{"severity":"low","category":"access_control","title":"Ambassador whitelist can be bypassed via forced ETH transfers","exploit_scenario":"An attacker can deploy a helper contract and `selfdestruct` it to force-send ETH to `ETHPlatinum`, increasing `address(this).balance`. Once the pre-balance exceeds `ambassadorQuota_`, the next call to `purchaseTokens` hits the `else` branch, sets `onlyAmbassadors = false`, and allows non-ambassador purchases even though the whitelist period should still be active. This bypass can be done with minimal cost if the balance is already near the quota.","recommendation":"Do not use `address(this).balance` to gate the ambassador phase. Track progress using internal accounting (e.g., cumulative purchases) or require an explicit admin action to end the phase; also consider a separate boolean that is not influenced by forced ETH.","evidence":"`antiEarlyWhale` checks `totalEthereumBalance() - _amountOfEthereum` to decide whether to enforce ambassador restrictions and flips `onlyAmbassadors` to false; `totalEthereumBalance()` returns `this.balance`, which can be increased via forced ETH.","locations":["contracts/Contract.sol:51","contracts/Contract.sol:400"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-0kk9252u
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: xhigh
reasoning summaries: auto
session id: 019ba9d3-beeb-7522-b0d7-1e7cca018f01
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers

thinking
**Preparing to read AUDIT_BUNDLE.txt**
exec
/bin/bash -lc ls in /tmp/codex-0kk9252u succeeded in 12ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-0kk9252u succeeded in 10ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: contracts/Contract.sol
================================================================================
pragma solidity ^0.4.25;

/*
*ETH Platinum is a community-based social project and it is not controlled by any person and can never be turned off. You can withdraw all your funds at any time and you are in total control. As people move in and out of this project, you earn dividends in Ethereum, which you can withdraw or reinvest at any time.
* www.ethplatinum.io - Official Website
* www.ethplatinum.club - Backup Website
*/


contract Ownable {
    
    address public owner;

    constructor() public {




thinking
**Analyzing contract for key vulnerabilities**
thinking
**Evaluating edge cases and potential risks**

I’m carefully examining the early-stage ambassador gating and how the contract’s ETH balance impacts purchase permissions, especially around owner-controlled flags and possible bypasses using ETH sent directly to the contract. There are some subtle centralization and availability risks where the contract might remain permanently restricted to ambassadors without owner intervention, and scenarios where selfdestruct deposits could bypass early buyer limits. Though these don't present exploitable financial vulnerabilities, they reveal interesting governance and access-control nuances worth noting.
thinking
**Identifying subtle access control weaknesses**

I’m examining complex interactions around ambassador phase gating, constructor style, and owner permissions. The key finding is the ability for forced ETH transfers to bypass ambassador-only restrictions by inflating contract balance, letting non-ambassadors purchase early at personal cost. Also, the ambassador phase can become stuck indefinitely since ambassador purchases max out their quota without flipping the phase flag, requiring owner action to resume public buys. These represent nuanced access control and availability issues rather than direct financial exploits.
thinking
**Highlighting persistent ambassador phase and balance manipulation risks**

I'm focusing on how the ambassador phase depends on contract balance, which can be manipulated by forced ETH transfers to bypass or prematurely end the phase; since ambassador quotas cap purchases exactly at the threshold, the phase may never end automatically without admin action. This creates risks of indefinite purchase locking or unintended early public buying, representing nuanced access control and logic vulnerabilities worth flagging.
exec
/bin/bash -lc 'nl -ba contracts/Contract.sol' in /tmp/codex-0kk9252u succeeded in 8ms:
     1	pragma solidity ^0.4.25;
     2	
     3	/*
     4	*ETH Platinum is a community-based social project and it is not controlled by any person and can never be turned off. You can withdraw all your funds at any time and you are in total control. As people move in and out of this project, you earn dividends in Ethereum, which you can withdraw or reinvest at any time.
     5	* www.ethplatinum.io - Official Website
     6	* www.ethplatinum.club - Backup Website
     7	*/
     8	
     9	
    10	contract Ownable {
    11	    
    12	    address public owner;
    13	
    14	    constructor() public {
    15	        owner = msg.sender;
    16	    }
    17	        }
    18	
    19	
    20	contract ETHPlatinum is Ownable{

thinking
**Preparing vulnerability report JSON**
codex
{"no_findings":false,"summary":"Found 1 low-severity access-control issue: the ambassador phase can be bypassed by forcing ETH into the contract to flip the whitelist gate.","findings":[{"severity":"low","category":"access_control","title":"Ambassador whitelist can be bypassed via forced ETH transfers","exploit_scenario":"An attacker can deploy a helper contract and `selfdestruct` it to force-send ETH to `ETHPlatinum`, increasing `address(this).balance`. Once the pre-balance exceeds `ambassadorQuota_`, the next call to `purchaseTokens` hits the `else` branch, sets `onlyAmbassadors = false`, and allows non-ambassador purchases even though the whitelist period should still be active. This bypass can be done with minimal cost if the balance is already near the quota.","recommendation":"Do not use `address(this).balance` to gate the ambassador phase. Track progress using internal accounting (e.g., cumulative purchases) or require an explicit admin action to end the phase; also consider a separate boolean that is not influenced by forced ETH.","evidence":"`antiEarlyWhale` checks `totalEthereumBalance() - _amountOfEthereum` to decide whether to enforce ambassador restrictions and flips `onlyAmbassadors` to false; `totalEthereumBalance()` returns `this.balance`, which can be increased via forced ETH.","locations":["contracts/Contract.sol:51","contracts/Contract.sol:400"]}]}
tokens used
31,908
Metadata
{
    "codex": {
        "ran_at": "2026-01-10T21:37:34.415025+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 1,
        "import_count": 0,
        "first_party_contracts_count": 1
    },
    "summary": "Found 1 low-severity access-control issue: the ambassador phase can be bypassed by forcing ETH into the contract to flip the whitelist gate.",
    "raw_final": {
        "summary": "Found 1 low-severity access-control issue: the ambassador phase can be bypassed by forcing ETH into the contract to flip the whitelist gate.",
        "findings": [
            {
                "title": "Ambassador whitelist can be bypassed via forced ETH transfers",
                "category": "access_control",
                "evidence": "`antiEarlyWhale` checks `totalEthereumBalance() - _amountOfEthereum` to decide whether to enforce ambassador restrictions and flips `onlyAmbassadors` to false; `totalEthereumBalance()` returns `this.balance`, which can be increased via forced ETH.",
                "severity": "low",
                "locations": [
                    "contracts/Contract.sol:51",
                    "contracts/Contract.sol:400"
                ],
                "recommendation": "Do not use `address(this).balance` to gate the ambassador phase. Track progress using internal accounting (e.g., cumulative purchases) or require an explicit admin action to end the phase; also consider a separate boolean that is not influenced by forced ETH.",
                "exploit_scenario": "An attacker can deploy a helper contract and `selfdestruct` it to force-send ETH to `ETHPlatinum`, increasing `address(this).balance`. Once the pre-balance exceeds `ambassadorQuota_`, the next call to `purchaseTokens` hits the `else` branch, sets `onlyAmbassadors = false`, and allows non-ambassador purchases even though the whitelist period should still be active. This bypass can be done with minimal cost if the balance is already near the quota."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
1
EXT*/BALANCE
1
Total opcodes
3682
Flags
delegatecall_present
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0168
0000000c: JUMPI
0000000d: PUSH4 0xffffffff
00000012: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000030: PUSH1 0x00
00000032: CALLDATALOAD
00000033: DIV
00000034: AND
00000035: PUSH3 0x65318b
00000039: DUP2
0000003a: EQ
0000003b: PUSH2 0x0185
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0x040d50d4
00000045: EQ
00000046: PUSH2 0x01b8
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0x06fdde03
00000050: EQ
00000051: PUSH2 0x01d2
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0x10d0ffdd
0000005b: EQ
0000005c: PUSH2 0x025c
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0x18160ddd
00000066: EQ
00000067: PUSH2 0x0274
0000006a: JUMPI
0000006b: DUP1
0000006c: PUSH4 0x22609373
00000071: EQ
00000072: PUSH2 0x0289
00000075: JUMPI
00000076: DUP1
00000077: PUSH4 0x27defa1f
0000007c: EQ
0000007d: PUSH2 0x02a1
00000080: JUMPI
00000081: DUP1
00000082: PUSH4 0x313ce567
00000087: EQ
00000088: PUSH2 0x02ca
0000008b: JUMPI
0000008c: DUP1
0000008d: PUSH4 0x3ccfd60b
00000092: EQ
00000093: PUSH2 0x02f5
00000096: JUMPI
00000097: DUP1
00000098: PUSH4 0x4b750334
0000009d: EQ
0000009e: PUSH2 0x030a
000000a1: JUMPI
000000a2: DUP1
000000a3: PUSH4 0x56d399e8
000000a8: EQ
000000a9: PUSH2 0x031f
000000ac: JUMPI
000000ad: DUP1
000000ae: PUSH4 0x688abbf7
000000b3: EQ
000000b4: PUSH2 0x0334
000000b7: JUMPI
000000b8: DUP1
000000b9: PUSH4 0x6b2f4632
000000be: EQ
000000bf: PUSH2 0x034e
000000c2: JUMPI
000000c3: DUP1
000000c4: PUSH4 0x70a08231
000000c9: EQ
000000ca: PUSH2 0x0363
000000cd: JUMPI
000000ce: DUP1
000000cf: PUSH4 0x8328b610
000000d4: EQ
000000d5: PUSH2 0x0384
000000d8: JUMPI
000000d9: DUP1
000000da: PUSH4 0x8620410b
000000df: EQ
000000e0: PUSH2 0x039c
000000e3: JUMPI
000000e4: DUP1
000000e5: PUSH4 0x8da5cb5b
000000ea: EQ
000000eb: PUSH2 0x03b1
000000ee: JUMPI
000000ef: DUP1
000000f0: PUSH4 0x949e8acd
000000f5: EQ
000000f6: PUSH2 0x03e2
000000f9: JUMPI
000000fa: DUP1
000000fb: PUSH4 0x95d89b41
00000100: EQ
00000101: PUSH2 0x03f7
00000104: JUMPI
00000105: DUP1
00000106: PUSH4 0xa8e04f34
0000010b: EQ
0000010c: PUSH2 0x040c
0000010f: JUMPI
00000110: DUP1
00000111: PUSH4 0xa9059cbb
00000116: EQ
00000117: PUSH2 0x0421
0000011a: JUMPI
0000011b: DUP1
0000011c: PUSH4 0xb84c8246
00000121: EQ
00000122: PUSH2 0x0445
00000125: JUMPI
00000126: DUP1
00000127: PUSH4 0xc47f0027
0000012c: EQ
0000012d: PUSH2 0x049e
00000130: JUMPI
00000131: DUP1
00000132: PUSH4 0xe4849b32
00000137: EQ
00000138: PUSH2 0x04f7
0000013b: JUMPI
0000013c: DUP1
0000013d: PUSH4 0xe9fad8ee
00000142: EQ
00000143: PUSH2 0x050f
00000146: JUMPI
00000147: DUP1
00000148: PUSH4 0xf088d547
0000014d: EQ
0000014e: PUSH2 0x0524
00000151: JUMPI
00000152: DUP1
00000153: PUSH4 0xf7085ec7
00000158: EQ
00000159: PUSH2 0x0538
0000015c: JUMPI
0000015d: DUP1
0000015e: PUSH4 0xfdb5a03e
00000163: EQ
00000164: PUSH2 0x054d
00000167: JUMPI
00000168: JUMPDEST
00000169: PUSH1 0x03
0000016b: SLOAD
0000016c: TIMESTAMP
0000016d: LT
0000016e: ISZERO
0000016f: PUSH2 0x0177
00000172: JUMPI
00000173: PUSH1 0x00
00000175: DUP1
00000176: REVERT
00000177: JUMPDEST
00000178: PUSH2 0x0182
0000017b: CALLVALUE
0000017c: PUSH1 0x00
0000017e: PUSH2 0x0562
00000181: JUMP
00000182: JUMPDEST
00000183: POP
00000184: STOP
00000185: JUMPDEST
00000186: CALLVALUE
00000187: DUP1
00000188: ISZERO
00000189: PUSH2 0x0191
0000018c: JUMPI
0000018d: PUSH1 0x00
0000018f: DUP1
00000190: REVERT
00000191: JUMPDEST
00000192: POP
00000193: PUSH2 0x01a6
00000196: PUSH1 0x01
00000198: PUSH1 0xa0
0000019a: PUSH1 0x02
0000019c: EXP
0000019d: SUB
0000019e: PUSH1 0x04
000001a0: CALLDATALOAD
000001a1: AND
000001a2: PUSH2 0x0b37
000001a5: JUMP
000001a6: JUMPDEST
000001a7: PUSH1 0x40
000001a9: DUP1
000001aa: MLOAD
000001ab: SWAP2
000001ac: DUP3
000001ad: MSTORE
000001ae: MLOAD
000001af: SWAP1
000001b0: DUP2
000001b1: SWAP1
000001b2: SUB
000001b3: PUSH1 0x20
000001b5: ADD
000001b6: SWAP1
000001b7: RETURN
000001b8: JUMPDEST
000001b9: CALLVALUE
000001ba: DUP1
000001bb: ISZERO
000001bc: PUSH2 0x01c4
000001bf: JUMPI
000001c0: PUSH1 0x00
000001c2: DUP1
000001c3: REVERT
000001c4: JUMPDEST
000001c5: POP
000001c6: PUSH2 0x01d0
000001c9: PUSH1 0x04
000001cb: CALLDATALOAD
000001cc: PUSH2 0x0b72
000001cf: JUMP
000001d0: JUMPDEST
000001d1: STOP
000001d2: JUMPDEST
000001d3: CALLVALUE
000001d4: DUP1
000001d5: ISZERO
000001d6: PUSH2 0x01de
000001d9: JUMPI
000001da: PUSH1 0x00
000001dc: DUP1
000001dd: REVERT
000001de: JUMPDEST
000001df: POP
000001e0: PUSH2 0x01e7
000001e3: PUSH2 0x0b8e
000001e6: JUMP
000001e7: JUMPDEST
000001e8: PUSH1 0x40
000001ea: DUP1
000001eb: MLOAD
000001ec: PUSH1 0x20
000001ee: DUP1
000001ef: DUP3
000001f0: MSTORE
000001f1: DUP4
000001f2: MLOAD
000001f3: DUP2
000001f4: DUP4
000001f5: ADD
000001f6: MSTORE
000001f7: DUP4
000001f8: MLOAD
000001f9: SWAP2
000001fa: SWAP3
000001fb: DUP4
000001fc: SWAP3
000001fd: SWAP1
000001fe: DUP4
000001ff: ADD
00000200: SWAP2
00000201: DUP6
00000202: ADD
00000203: SWAP1
00000204: DUP1
00000205: DUP4
00000206: DUP4
00000207: PUSH1 0x00
00000209: JUMPDEST
0000020a: DUP4
0000020b: DUP2
0000020c: LT
0000020d: ISZERO
0000020e: PUSH2 0x0221
00000211: JUMPI
00000212: DUP2
00000213: DUP2
00000214: ADD
00000215: MLOAD
00000216: DUP4
00000217: DUP3
00000218: ADD
00000219: MSTORE
0000021a: PUSH1 0x20
0000021c: ADD
0000021d: PUSH2 0x0209
00000220: JUMP
00000221: JUMPDEST
00000222: POP
00000223: POP
00000224: POP
00000225: POP
00000226: SWAP1
00000227: POP
00000228: SWAP1
00000229: DUP2
0000022a: ADD
0000022b: SWAP1
0000022c: PUSH1 0x1f
0000022e: AND
0000022f: DUP1
00000230: ISZERO
00000231: PUSH2 0x024e
00000234: JUMPI
00000235: DUP1
00000236: DUP3
00000237: SUB
00000238: DUP1
00000239: MLOAD
0000023a: PUSH1 0x01
0000023c: DUP4
0000023d: PUSH1 0x20
0000023f: SUB
00000240: PUSH2 0x0100
00000243: EXP
00000244: SUB
00000245: NOT
00000246: AND
00000247: DUP2
00000248: MSTORE
00000249: PUSH1 0x20
0000024b: ADD
0000024c: SWAP2
0000024d: POP
0000024e: JUMPDEST
0000024f: POP
00000250: SWAP3
00000251: POP
00000252: POP
00000253: POP
00000254: PUSH1 0x40
00000256: MLOAD
00000257: DUP1
00000258: SWAP2
00000259: SUB
0000025a: SWAP1
0000025b: RETURN
0000025c: JUMPDEST
0000025d: CALLVALUE
0000025e: DUP1
0000025f: ISZERO
00000260: PUSH2 0x0268
00000263: JUMPI
00000264: PUSH1 0x00
00000266: DUP1
00000267: REVERT
00000268: JUMPDEST
00000269: POP
0000026a: PUSH2 0x01a6
0000026d: PUSH1 0x04
0000026f: CALLDATALOAD
00000270: PUSH2 0x0c1b
00000273: JUMP
00000274: JUMPDEST
00000275: CALLVALUE
00000276: DUP1
00000277: ISZERO
00000278: PUSH2 0x0280
0000027b: JUMPI
0000027c: PUSH1 0x00
0000027e: DUP1
0000027f: REVERT
00000280: JUMPDEST
00000281: POP
00000282: PUSH2 0x01a6
00000285: PUSH2 0x0c4b
00000288: JUMP
00000289: JUMPDEST
0000028a: CALLVALUE
0000028b: DUP1
0000028c: ISZERO
0000028d: PUSH2 0x0295
00000290: JUMPI
00000291: PUSH1 0x00
00000293: DUP1
00000294: REVERT
00000295: JUMPDEST
00000296: POP
00000297: PUSH2 0x01a6
0000029a: PUSH1 0x04
0000029c: CALLDATALOAD
0000029d: PUSH2 0x0c52
000002a0: JUMP
000002a1: JUMPDEST
000002a2: CALLVALUE
000002a3: DUP1
000002a4: ISZERO
000002a5: PUSH2 0x02ad
000002a8: JUMPI
000002a9: PUSH1 0x00
000002ab: DUP1
000002ac: REVERT
000002ad: JUMPDEST
000002ae: POP
000002af: PUSH2 0x02b6
000002b2: PUSH2 0x0c8b
000002b5: JUMP
000002b6: JUMPDEST
000002b7: PUSH1 0x40
000002b9: DUP1
000002ba: MLOAD
000002bb: SWAP2
000002bc: ISZERO
000002bd: ISZERO
000002be: DUP3
000002bf: MSTORE
000002c0: MLOAD
000002c1: SWAP1
000002c2: DUP2
000002c3: SWAP1
000002c4: SUB
000002c5: PUSH1 0x20
000002c7: ADD
000002c8: SWAP1
000002c9: RETURN
000002ca: JUMPDEST
000002cb: CALLVALUE
000002cc: DUP1
000002cd: ISZERO
000002ce: PUSH2 0x02d6
000002d1: JUMPI
000002d2: PUSH1 0x00
000002d4: DUP1
000002d5: REVERT
000002d6: JUMPDEST
000002d7: POP
000002d8: PUSH2 0x02df
000002db: PUSH2 0x0c94
000002de: JUMP
000002df: JUMPDEST
000002e0: PUSH1 0x40
000002e2: DUP1
000002e3: MLOAD
000002e4: PUSH1 0xff
000002e6: SWAP1
000002e7: SWAP3
000002e8: AND
000002e9: DUP3
000002ea: MSTORE
000002eb: MLOAD
000002ec: SWAP1
000002ed: DUP2
000002ee: SWAP1
000002ef: SUB
000002f0: PUSH1 0x20
000002f2: ADD
000002f3: SWAP1
000002f4: RETURN
000002f5: JUMPDEST
000002f6: CALLVALUE
000002f7: DUP1
000002f8: ISZERO
000002f9: PUSH2 0x0301
000002fc: JUMPI
000002fd: PUSH1 0x00
000002ff: DUP1
00000300: REVERT
00000301: JUMPDEST
00000302: POP
00000303: PUSH2 0x01d0
00000306: PUSH2 0x0c99
00000309: JUMP
0000030a: JUMPDEST
0000030b: CALLVALUE
0000030c: DUP1
0000030d: ISZERO
0000030e: PUSH2 0x0316
00000311: JUMPI
00000312: PUSH1 0x00
00000314: DUP1
00000315: REVERT
00000316: JUMPDEST
00000317: POP
00000318: PUSH2 0x01a6
0000031b: PUSH2 0x0d6c
0000031e: JUMP
0000031f: JUMPDEST
00000320: CALLVALUE
00000321: DUP1
00000322: ISZERO
00000323: PUSH2 0x032b
00000326: JUMPI
00000327: PUSH1 0x00
00000329: DUP1
0000032a: REVERT
0000032b: JUMPDEST
0000032c: POP
0000032d: PUSH2 0x01a6
00000330: PUSH2 0x0dc0
00000333: JUMP
00000334: JUMPDEST
00000335: CALLVALUE
00000336: DUP1
00000337: ISZERO
00000338: PUSH2 0x0340
0000033b: JUMPI
0000033c: PUSH1 0x00
0000033e: DUP1
0000033f: REVERT
00000340: JUMPDEST
00000341: POP
00000342: PUSH2 0x01a6
00000345: PUSH1 0x04
00000347: CALLDATALOAD
00000348: ISZERO
00000349: ISZERO
0000034a: PUSH2 0x0dc6
0000034d: JUMP
0000034e: JUMPDEST
0000034f: CALLVALUE
00000350: DUP1
00000351: ISZERO
00000352: PUSH2 0x035a
00000355: JUMPI
00000356: PUSH1 0x00
00000358: DUP1
00000359: REVERT
0000035a: JUMPDEST
0000035b: POP
0000035c: PUSH2 0x01a6
0000035f: PUSH2 0x0e09
00000362: JUMP
00000363: JUMPDEST
00000364: CALLVALUE
00000365: DUP1
00000366: ISZERO
00000367: PUSH2 0x036f
0000036a: JUMPI
0000036b: PUSH1 0x00
0000036d: DUP1
0000036e: REVERT
0000036f: JUMPDEST
00000370: POP
00000371: PUSH2 0x01a6
00000374: PUSH1 0x01
00000376: PUSH1 0xa0
00000378: PUSH1 0x02
0000037a: EXP
0000037b: SUB
0000037c: PUSH1 0x04
0000037e: CALLDATALOAD
0000037f: AND
00000380: PUSH2 0x0e0e
00000383: JUMP
00000384: JUMPDEST
00000385: CALLVALUE
00000386: DUP1
00000387: ISZERO
00000388: PUSH2 0x0390
0000038b: JUMPI
0000038c: PUSH1 0x00
0000038e: DUP1
0000038f: REVERT
00000390: JUMPDEST
00000391: POP
00000392: PUSH2 0x01d0
00000395: PUSH1 0x04
00000397: CALLDATALOAD
00000398: PUSH2 0x0e29
0000039b: JUMP
0000039c: JUMPDEST
0000039d: CALLVALUE
0000039e: DUP1
0000039f: ISZERO
000003a0: PUSH2 0x03a8
000003a3: JUMPI
000003a4: PUSH1 0x00
000003a6: DUP1
000003a7: REVERT
000003a8: JUMPDEST
000003a9: POP
000003aa: PUSH2 0x01a6
000003ad: PUSH2 0x0e45
000003b0: JUMP
000003b1: JUMPDEST
000003b2: CALLVALUE
000003b3: DUP1
000003b4: ISZERO
000003b5: PUSH2 0x03bd
000003b8: JUMPI
000003b9: PUSH1 0x00
000003bb: DUP1
000003bc: REVERT
000003bd: JUMPDEST
000003be: POP
000003bf: PUSH2 0x03c6
000003c2: PUSH2 0x0e8d
000003c5: JUMP
000003c6: JUMPDEST
000003c7: PUSH1 0x40
000003c9: DUP1
000003ca: MLOAD
000003cb: PUSH1 0x01
000003cd: PUSH1 0xa0
000003cf: PUSH1 0x02
000003d1: EXP
000003d2: SUB
000003d3: SWAP1
000003d4: SWAP3
000003d5: AND
000003d6: DUP3
000003d7: MSTORE
000003d8: MLOAD
000003d9: SWAP1
000003da: DUP2
000003db: SWAP1
000003dc: SUB
000003dd: PUSH1 0x20
000003df: ADD
000003e0: SWAP1
000003e1: RETURN
000003e2: JUMPDEST
000003e3: CALLVALUE
000003e4: DUP1
000003e5: ISZERO
000003e6: PUSH2 0x03ee
000003e9: JUMPI
000003ea: PUSH1 0x00
000003ec: DUP1
000003ed: REVERT
000003ee: JUMPDEST
000003ef: POP
000003f0: PUSH2 0x01a6
000003f3: PUSH2 0x0e9c
000003f6: JUMP
000003f7: JUMPDEST
000003f8: CALLVALUE
000003f9: DUP1
000003fa: ISZERO
000003fb: PUSH2 0x0403
000003fe: JUMPI
000003ff: PUSH1 0x00
00000401: DUP1
00000402: REVERT
00000403: JUMPDEST
00000404: POP
00000405: PUSH2 0x01e7
00000408: PUSH2 0x0eaf
0000040b: JUMP
0000040c: JUMPDEST
0000040d: CALLVALUE
0000040e: DUP1
0000040f: ISZERO
00000410: PUSH2 0x0418
00000413: JUMPI
00000414: PUSH1 0x00
00000416: DUP1
00000417: REVERT
00000418: JUMPDEST
00000419: POP
0000041a: PUSH2 0x01d0
0000041d: PUSH2 0x0f07
00000420: JUMP
00000421: JUMPDEST
00000422: CALLVALUE
00000423: DUP1
00000424: ISZERO
00000425: PUSH2 0x042d
00000428: JUMPI
00000429: PUSH1 0x00
0000042b: DUP1
0000042c: REVERT
0000042d: JUMPDEST
0000042e: POP
0000042f: PUSH2 0x02b6
00000432: PUSH1 0x01
00000434: PUSH1 0xa0
00000436: PUSH1 0x02
00000438: EXP
00000439: SUB
0000043a: PUSH1 0x04
0000043c: CALLDATALOAD
0000043d: AND
0000043e: PUSH1 0x24
00000440: CALLDATALOAD
00000441: PUSH2 0x0f2a
00000444: JUMP
00000445: JUMPDEST
00000446: CALLVALUE
00000447: DUP1
00000448: ISZERO
00000449: PUSH2 0x0451
0000044c: JUMPI
0000044d: PUSH1 0x00
0000044f: DUP1
00000450: REVERT
00000451: JUMPDEST
00000452: POP
00000453: PUSH1 0x40
00000455: DUP1
00000456: MLOAD
00000457: PUSH1 0x20
00000459: PUSH1 0x04
0000045b: DUP1
0000045c: CALLDATALOAD
0000045d: DUP1
0000045e: DUP3
0000045f: ADD
00000460: CALLDATALOAD
00000461: PUSH1 0x1f
00000463: DUP2
00000464: ADD
00000465: DUP5
00000466: SWAP1
00000467: DIV
00000468: DUP5
00000469: MUL
0000046a: DUP6
0000046b: ADD
0000046c: DUP5
0000046d: ADD
0000046e: SWAP1
0000046f: SWAP6
00000470: MSTORE
00000471: DUP5
00000472: DUP5
00000473: MSTORE
00000474: PUSH2 0x01d0
00000477: SWAP5
00000478: CALLDATASIZE
00000479: SWAP5
0000047a: SWAP3
0000047b: SWAP4
0000047c: PUSH1 0x24
0000047e: SWAP4
0000047f: SWAP3
00000480: DUP5
00000481: ADD
00000482: SWAP2
00000483: SWAP1
00000484: DUP2
00000485: SWAP1
00000486: DUP5
00000487: ADD
00000488: DUP4
00000489: DUP3
0000048a: DUP1
0000048b: DUP3
0000048c: DUP5
0000048d: CALLDATACOPY
0000048e: POP
0000048f: SWAP5
00000490: SWAP8
00000491: POP
00000492: PUSH2 0x10e4
00000495: SWAP7
00000496: POP
00000497: POP
00000498: POP
00000499: POP
0000049a: POP
0000049b: POP
0000049c: POP
0000049d: JUMP
0000049e: JUMPDEST
0000049f: CALLVALUE
000004a0: DUP1
000004a1: ISZERO
000004a2: PUSH2 0x04aa
000004a5: JUMPI
000004a6: PUSH1 0x00
000004a8: DUP1
000004a9: REVERT
000004aa: JUMPDEST
000004ab: POP
000004ac: PUSH1 0x40
000004ae: DUP1
000004af: MLOAD
000004b0: PUSH1 0x20
000004b2: PUSH1 0x04
000004b4: DUP1
000004b5: CALLDATALOAD
000004b6: DUP1
000004b7: DUP3
000004b8: ADD
000004b9: CALLDATALOAD
000004ba: PUSH1 0x1f
000004bc: DUP2
000004bd: ADD
000004be: DUP5
000004bf: SWAP1
000004c0: DIV
000004c1: DUP5
000004c2: MUL
000004c3: DUP6
000004c4: ADD
000004c5: DUP5
000004c6: ADD
000004c7: SWAP1
000004c8: SWAP6
000004c9: MSTORE
000004ca: DUP5
000004cb: DUP5
000004cc: MSTORE
000004cd: PUSH2 0x01d0
000004d0: SWAP5
000004d1: CALLDATASIZE
000004d2: SWAP5
000004d3: SWAP3
000004d4: SWAP4
000004d5: PUSH1 0x24
000004d7: SWAP4
000004d8: SWAP3
000004d9: DUP5
000004da: ADD
000004db: SWAP2
000004dc: SWAP1
000004dd: DUP2
000004de: SWAP1
000004df: DUP5
000004e0: ADD
000004e1: DUP4
000004e2: DUP3
000004e3: DUP1
000004e4: DUP3
000004e5: DUP5
000004e6: CALLDATACOPY
000004e7: POP
000004e8: SWAP5
000004e9: SWAP8
000004ea: POP
000004eb: PUSH2 0x1112
000004ee: SWAP7
000004ef: POP
000004f0: POP
000004f1: POP
000004f2: POP
000004f3: POP
000004f4: POP
000004f5: POP
000004f6: JUMP
000004f7: JUMPDEST
000004f8: CALLVALUE
000004f9: DUP1
000004fa: ISZERO
000004fb: PUSH2 0x0503
000004fe: JUMPI
000004ff: PUSH1 0x00
00000501: DUP1
00000502: REVERT
00000503: JUMPDEST
00000504: POP
00000505: PUSH2 0x01d0
00000508: PUSH1 0x04
0000050a: CALLDATALOAD
0000050b: PUSH2 0x113c
0000050e: JUMP
0000050f: JUMPDEST
00000510: CALLVALUE
00000511: DUP1
00000512: ISZERO
00000513: PUSH2 0x051b
00000516: JUMPI
00000517: PUSH1 0x00
00000519: DUP1
0000051a: REVERT
0000051b: JUMPDEST
0000051c: POP
0000051d: PUSH2 0x01d0
00000520: PUSH2 0x128d
00000523: JUMP
00000524: JUMPDEST
00000525: PUSH2 0x01a6
00000528: PUSH1 0x01
0000052a: PUSH1 0xa0
0000052c: PUSH1 0x02
0000052e: EXP
0000052f: SUB
00000530: PUSH1 0x04
00000532: CALLDATALOAD
00000533: AND
00000534: PUSH2 0x12b6
00000537: JUMP
00000538: JUMPDEST
00000539: CALLVALUE
0000053a: DUP1
0000053b: ISZERO
0000053c: PUSH2 0x0544
0000053f: JUMPI
00000540: PUSH1 0x00
00000542: DUP1
00000543: REVERT
00000544: JUMPDEST
00000545: POP
00000546: PUSH2 0x01a6
00000549: PUSH2 0x12d2
0000054c: JUMP
0000054d: JUMPDEST
0000054e: CALLVALUE
0000054f: DUP1
00000550: ISZERO
00000551: PUSH2 0x0559
00000554: JUMPI
00000555: PUSH1 0x00
00000557: DUP1
00000558: REVERT
00000559: JUMPDEST
0000055a: POP
0000055b: PUSH2 0x01d0
0000055e: PUSH2 0x12d8
00000561: JUMP
00000562: JUMPDEST
00000563: PUSH1 0x00
00000565: DUP1
00000566: PUSH1 0x00
00000568: DUP1
00000569: PUSH1 0x00
0000056b: DUP1
0000056c: PUSH1 0x00
0000056e: DUP1
0000056f: PUSH1 0x00
00000571: DUP11
00000572: PUSH1 0x00
00000574: CALLER
00000575: SWAP1
00000576: POP
00000577: PUSH1 0x0c
00000579: PUSH1 0x00
0000057b: SWAP1
0000057c: SLOAD
0000057d: SWAP1
0000057e: PUSH2 0x0100
00000581: EXP
00000582: SWAP1
00000583: DIV
00000584: PUSH1 0xff
00000586: AND
00000587: DUP1
00000588: ISZERO
00000589: PUSH2 0x05a3
0000058c: JUMPI
0000058d: POP
0000058e: PUSH8 0x4563918244f40000
00000597: DUP3
00000598: PUSH2 0x059f
0000059b: PUSH2 0x0e09
0000059e: JUMP
0000059f: JUMPDEST
000005a0: SUB
000005a1: GT
000005a2: ISZERO
000005a3: JUMPDEST
000005a4: ISZERO
000005a5: PUSH2 0x08b0
000005a8: JUMPI
000005a9: PUSH1 0x01
000005ab: PUSH1 0xa0
000005ad: PUSH1 0x02
000005af: EXP
000005b0: SUB
000005b1: DUP2
000005b2: AND
000005b3: PUSH1 0x00
000005b5: SWAP1
000005b6: DUP2
000005b7: MSTORE
000005b8: PUSH1 0x05
000005ba: PUSH1 0x20
000005bc: MSTORE
000005bd: PUSH1 0x40
000005bf: SWAP1
000005c0: KECCAK256
000005c1: SLOAD
000005c2: PUSH1 0xff
000005c4: AND
000005c5: ISZERO
000005c6: ISZERO
000005c7: PUSH1 0x01
000005c9: EQ
000005ca: DUP1
000005cb: ISZERO
000005cc: PUSH2 0x05f8
000005cf: JUMPI
000005d0: POP
000005d1: PUSH1 0x01
000005d3: PUSH1 0xa0
000005d5: PUSH1 0x02
000005d7: EXP
000005d8: SUB
000005d9: DUP2
000005da: AND
000005db: PUSH1 0x00
000005dd: SWAP1
000005de: DUP2
000005df: MSTORE
000005e0: PUSH1 0x09
000005e2: PUSH1 0x20
000005e4: MSTORE
000005e5: PUSH1 0x40
000005e7: SWAP1
000005e8: KECCAK256
000005e9: SLOAD
000005ea: PUSH8 0x0de0b6b3a7640000
000005f3: SWAP1
000005f4: DUP4
000005f5: ADD
000005f6: GT
000005f7: ISZERO
000005f8: JUMPDEST
000005f9: ISZERO
000005fa: ISZERO
000005fb: PUSH2 0x0603
000005fe: JUMPI
000005ff: PUSH1 0x00
00000601: DUP1
00000602: REVERT
00000603: JUMPDEST
00000604: PUSH1 0x01
00000606: PUSH1 0xa0
00000608: PUSH1 0x02
0000060a: EXP
0000060b: SUB
0000060c: DUP2
0000060d: AND
0000060e: PUSH1 0x00
00000610: SWAP1
00000611: DUP2
00000612: MSTORE
00000613: PUSH1 0x09
00000615: PUSH1 0x20
00000617: MSTORE
00000618: PUSH1 0x40
0000061a: SWAP1
0000061b: KECCAK256
0000061c: SLOAD
0000061d: PUSH2 0x0626
00000620: SWAP1
00000621: DUP4
00000622: PUSH2 0x138e
00000625: JUMP
00000626: JUMPDEST
00000627: PUSH1 0x01
00000629: PUSH1 0xa0
0000062b: PUSH1 0x02
0000062d: EXP
0000062e: SUB
0000062f: DUP3
00000630: AND
00000631: PUSH1 0x00
00000633: SWAP1
00000634: DUP2
00000635: MSTORE
00000636: PUSH1 0x09
00000638: PUSH1 0x20
0000063a: MSTORE
0000063b: PUSH1 0x40
0000063d: SWAP1
0000063e: KECCAK256
0000063f: SSTORE
00000640: CALLER
00000641: SWAP10
00000642: POP
00000643: PUSH2 0x064d
00000646: DUP14
00000647: PUSH1 0x0a
00000649: PUSH2 0x13a4
0000064c: JUMP
0000064d: JUMPDEST
0000064e: SWAP9
0000064f: POP
00000650: PUSH2 0x065a
00000653: DUP10
00000654: PUSH1 0x02
00000656: PUSH2 0x13a4
00000659: JUMP
0000065a: JUMPDEST
0000065b: SWAP8
0000065c: POP
0000065d: PUSH2 0x0666
00000660: DUP10
00000661: DUP10
00000662: PUSH2 0x13bb
00000665: JUMP
00000666: JUMPDEST
00000667: SWAP7
00000668: POP
00000669: PUSH2 0x0672
0000066c: DUP14
0000066d: DUP11
0000066e: PUSH2 0x13bb
00000671: JUMP
00000672: JUMPDEST
00000673: SWAP6
00000674: POP
00000675: PUSH2 0x067d
00000678: DUP7
00000679: PUSH2 0x13cd
0000067c: JUMP
0000067d: JUMPDEST
0000067e: SWAP5
0000067f: POP
00000680: PUSH9 0x010000000000000000
0000068a: DUP8
0000068b: MUL
0000068c: SWAP4
0000068d: POP
0000068e: PUSH1 0x00
00000690: DUP6
00000691: GT
00000692: DUP1
00000693: ISZERO
00000694: PUSH2 0x06a7
00000697: JUMPI
00000698: POP
00000699: PUSH1 0x0a
0000069b: SLOAD
0000069c: PUSH2 0x06a5
0000069f: DUP7
000006a0: DUP3
000006a1: PUSH2 0x138e
000006a4: JUMP
000006a5: JUMPDEST
000006a6: GT
000006a7: JUMPDEST
000006a8: ISZERO
000006a9: ISZERO
000006aa: PUSH2 0x06b2
000006ad: JUMPI
000006ae: PUSH1 0x00
000006b0: DUP1
000006b1: REVERT
000006b2: JUMPDEST
000006b3: PUSH1 0x01
000006b5: PUSH1 0xa0
000006b7: PUSH1 0x02
000006b9: EXP
000006ba: SUB
000006bb: DUP13
000006bc: AND
000006bd: ISZERO
000006be: DUP1
000006bf: ISZERO
000006c0: SWAP1
000006c1: PUSH2 0x06dc
000006c4: JUMPI
000006c5: POP
000006c6: DUP10
000006c7: PUSH1 0x01
000006c9: PUSH1 0xa0
000006cb: PUSH1 0x02
000006cd: EXP
000006ce: SUB
000006cf: AND
000006d0: DUP13
000006d1: PUSH1 0x01
000006d3: PUSH1 0xa0
000006d5: PUSH1 0x02
000006d7: EXP
000006d8: SUB
000006d9: AND
000006da: EQ
000006db: ISZERO
000006dc: JUMPDEST
000006dd: DUP1
000006de: ISZERO
000006df: PUSH2 0x0702
000006e2: JUMPI
000006e3: POP
000006e4: PUSH1 0x04
000006e6: SLOAD
000006e7: PUSH1 0x01
000006e9: PUSH1 0xa0
000006eb: PUSH1 0x02
000006ed: EXP
000006ee: SUB
000006ef: DUP14
000006f0: AND
000006f1: PUSH1 0x00
000006f3: SWAP1
000006f4: DUP2
000006f5: MSTORE
000006f6: PUSH1 0x06
000006f8: PUSH1 0x20
000006fa: MSTORE
000006fb: PUSH1 0x40
000006fd: SWAP1
000006fe: KECCAK256
000006ff: SLOAD
00000700: LT
00000701: ISZERO
00000702: JUMPDEST
00000703: ISZERO
00000704: PUSH2 0x0748
00000707: JUMPI
00000708: PUSH1 0x01
0000070a: PUSH1 0xa0
0000070c: PUSH1 0x02
0000070e: EXP
0000070f: SUB
00000710: DUP13
00000711: AND
00000712: PUSH1 0x00
00000714: SWAP1
00000715: DUP2
00000716: MSTORE
00000717: PUSH1 0x07
00000719: PUSH1 0x20
0000071b: MSTORE
0000071c: PUSH1 0x40
0000071e: SWAP1
0000071f: KECCAK256
00000720: SLOAD
00000721: PUSH2 0x072a
00000724: SWAP1
00000725: DUP10
00000726: PUSH2 0x138e
00000729: JUMP
0000072a: JUMPDEST
0000072b: PUSH1 0x01
0000072d: PUSH1 0xa0
0000072f: PUSH1 0x02
00000731: EXP
00000732: SUB
00000733: DUP14
00000734: AND
00000735: PUSH1 0x00
00000737: SWAP1
00000738: DUP2
00000739: MSTORE
0000073a: PUSH1 0x07
0000073c: PUSH1 0x20
0000073e: MSTORE
0000073f: PUSH1 0x40
00000741: SWAP1
00000742: KECCAK256
00000743: SSTORE
00000744: PUSH2 0x0763
00000747: JUMP
00000748: JUMPDEST
00000749: PUSH2 0x0752
0000074c: DUP8
0000074d: DUP10
0000074e: PUSH2 0x138e
00000751: JUMP
00000752: JUMPDEST
00000753: SWAP7
00000754: POP
00000755: PUSH9 0x010000000000000000
0000075f: DUP8
00000760: MUL
00000761: SWAP4
00000762: POP
00000763: JUMPDEST
00000764: PUSH1 0x00
00000766: PUSH1 0x0a
00000768: SLOAD
00000769: GT
0000076a: ISZERO
0000076b: PUSH2 0x07c7
0000076e: JUMPI
0000076f: PUSH2 0x077a
00000772: PUSH1 0x0a
00000774: SLOAD
00000775: DUP7
00000776: PUSH2 0x138e
00000779: JUMP
0000077a: JUMPDEST
0000077b: PUSH1 0x0a
0000077d: DUP2
0000077e: SWAP1
0000077f: SSTORE
00000780: PUSH9 0x010000000000000000
0000078a: DUP9
0000078b: MUL
0000078c: DUP2
0000078d: ISZERO
0000078e: ISZERO
0000078f: PUSH2 0x0794
00000792: JUMPI
00000793: INVALID
00000794: JUMPDEST
00000795: PUSH1 0x0b
00000797: DUP1
00000798: SLOAD
00000799: SWAP3
0000079a: SWAP1
0000079b: SWAP2
0000079c: DIV
0000079d: SWAP1
0000079e: SWAP2
0000079f: ADD
000007a0: SWAP1
000007a1: SSTORE
000007a2: PUSH1 0x0a
000007a4: SLOAD
000007a5: PUSH9 0x010000000000000000
000007af: DUP9
000007b0: MUL
000007b1: DUP2
000007b2: ISZERO
000007b3: ISZERO
000007b4: PUSH2 0x07b9
000007b7: JUMPI
000007b8: INVALID
000007b9: JUMPDEST
000007ba: DIV
000007bb: DUP6
000007bc: MUL
000007bd: DUP5
000007be: SUB
000007bf: DUP5
000007c0: SUB
000007c1: SWAP4
000007c2: POP
000007c3: PUSH2 0x07cd
000007c6: JUMP
000007c7: JUMPDEST
000007c8: PUSH1 0x0a
000007ca: DUP6
000007cb: SWAP1
000007cc: SSTORE
000007cd: JUMPDEST
000007ce: PUSH1 0x01
000007d0: PUSH1 0xa0
000007d2: PUSH1 0x02
000007d4: EXP
000007d5: SUB
000007d6: DUP11
000007d7: AND
000007d8: PUSH1 0x00
000007da: SWAP1
000007db: DUP2
000007dc: MSTORE
000007dd: PUSH1 0x06
000007df: PUSH1 0x20
000007e1: MSTORE
000007e2: PUSH1 0x40
000007e4: SWAP1
000007e5: KECCAK256
000007e6: SLOAD
000007e7: PUSH2 0x07f0
000007ea: SWAP1
000007eb: DUP7
000007ec: PUSH2 0x138e
000007ef: JUMP
000007f0: JUMPDEST
000007f1: PUSH1 0x06
000007f3: PUSH1 0x00
000007f5: DUP13
000007f6: PUSH1 0x01
000007f8: PUSH1 0xa0
000007fa: PUSH1 0x02
000007fc: EXP
000007fd: SUB
000007fe: AND
000007ff: PUSH1 0x01
00000801: PUSH1 0xa0
00000803: PUSH1 0x02
00000805: EXP
00000806: SUB
00000807: AND
00000808: DUP2
00000809: MSTORE
0000080a: PUSH1 0x20
0000080c: ADD
0000080d: SWAP1
0000080e: DUP2
0000080f: MSTORE
00000810: PUSH1 0x20
00000812: ADD
00000813: PUSH1 0x00
00000815: KECCAK256
00000816: DUP2
00000817: SWAP1
00000818: SSTORE
00000819: POP
0000081a: DUP4
0000081b: DUP6
0000081c: PUSH1 0x0b
0000081e: SLOAD
0000081f: MUL
00000820: SUB
00000821: SWAP3
00000822: POP
00000823: DUP3
00000824: PUSH1 0x08
00000826: PUSH1 0x00
00000828: DUP13
00000829: PUSH1 0x01
0000082b: PUSH1 0xa0
0000082d: PUSH1 0x02
0000082f: EXP
00000830: SUB
00000831: AND
00000832: PUSH1 0x01
00000834: PUSH1 0xa0
00000836: PUSH1 0x02
00000838: EXP
00000839: SUB
0000083a: AND
0000083b: DUP2
0000083c: MSTORE
0000083d: PUSH1 0x20
0000083f: ADD
00000840: SWAP1
00000841: DUP2
00000842: MSTORE
00000843: PUSH1 0x20
00000845: ADD
00000846: PUSH1 0x00
00000848: KECCAK256
00000849: PUSH1 0x00
0000084b: DUP3
0000084c: DUP3
0000084d: SLOAD
0000084e: ADD
0000084f: SWAP3
00000850: POP
00000851: POP
00000852: DUP2
00000853: SWAP1
00000854: SSTORE
00000855: POP
00000856: DUP12
00000857: PUSH1 0x01
00000859: PUSH1 0xa0
0000085b: PUSH1 0x02
0000085d: EXP
0000085e: SUB
0000085f: AND
00000860: DUP11
00000861: PUSH1 0x01
00000863: PUSH1 0xa0
00000865: PUSH1 0x02
00000867: EXP
00000868: SUB
00000869: AND
0000086a: PUSH32 0x022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5
0000088b: DUP16
0000088c: DUP9
0000088d: PUSH1 0x40
0000088f: MLOAD
00000890: DUP1
00000891: DUP4
00000892: DUP2
00000893: MSTORE
00000894: PUSH1 0x20
00000896: ADD
00000897: DUP3
00000898: DUP2
00000899: MSTORE
0000089a: PUSH1 0x20
0000089c: ADD
0000089d: SWAP3
0000089e: POP
0000089f: POP
000008a0: POP
000008a1: PUSH1 0x40
000008a3: MLOAD
000008a4: DUP1
000008a5: SWAP2
000008a6: SUB
000008a7: SWAP1
000008a8: LOG3
000008a9: DUP5
000008aa: SWAP11
000008ab: POP
000008ac: PUSH2 0x0b27
000008af: JUMP
000008b0: JUMPDEST
000008b1: PUSH1 0x0c
000008b3: DUP1
000008b4: SLOAD
000008b5: PUSH1 0xff
000008b7: NOT
000008b8: AND
000008b9: SWAP1
000008ba: SSTORE
000008bb: CALLER
000008bc: SWAP10
000008bd: POP
000008be: PUSH2 0x08c8
000008c1: DUP14
000008c2: PUSH1 0x0a
000008c4: PUSH2 0x13a4
000008c7: JUMP
000008c8: JUMPDEST
000008c9: SWAP9
000008ca: POP
000008cb: PUSH2 0x08d5
000008ce: DUP10
000008cf: PUSH1 0x02
000008d1: PUSH2 0x13a4
000008d4: JUMP
000008d5: JUMPDEST
000008d6: SWAP8
000008d7: POP
000008d8: PUSH2 0x08e1
000008db: DUP10
000008dc: DUP10
000008dd: PUSH2 0x13bb
000008e0: JUMP
000008e1: JUMPDEST
000008e2: SWAP7
000008e3: POP
000008e4: PUSH2 0x08ed
000008e7: DUP14
000008e8: DUP11
000008e9: PUSH2 0x13bb
000008ec: JUMP
000008ed: JUMPDEST
000008ee: SWAP6
000008ef: POP
000008f0: PUSH2 0x08f8
000008f3: DUP7
000008f4: PUSH2 0x13cd
000008f7: JUMP
000008f8: JUMPDEST
000008f9: SWAP5
000008fa: POP
000008fb: PUSH9 0x010000000000000000
00000905: DUP8
00000906: MUL
00000907: SWAP4
00000908: POP
00000909: PUSH1 0x00
0000090b: DUP6
0000090c: GT
0000090d: DUP1
0000090e: ISZERO
0000090f: PUSH2 0x0922
00000912: JUMPI
00000913: POP
00000914: PUSH1 0x0a
00000916: SLOAD
00000917: PUSH2 0x0920
0000091a: DUP7
0000091b: DUP3
0000091c: PUSH2 0x138e
0000091f: JUMP
00000920: JUMPDEST
00000921: GT
00000922: JUMPDEST
00000923: ISZERO
00000924: ISZERO
00000925: PUSH2 0x092d
00000928: JUMPI
00000929: PUSH1 0x00
0000092b: DUP1
0000092c: REVERT
0000092d: JUMPDEST
0000092e: PUSH1 0x01
00000930: PUSH1 0xa0
00000932: PUSH1 0x02
00000934: EXP
00000935: SUB
00000936: DUP13
00000937: AND
00000938: ISZERO
00000939: DUP1
0000093a: ISZERO
0000093b: SWAP1
0000093c: PUSH2 0x0957
0000093f: JUMPI
00000940: POP
00000941: DUP10
00000942: PUSH1 0x01
00000944: PUSH1 0xa0
00000946: PUSH1 0x02
00000948: EXP
00000949: SUB
0000094a: AND
0000094b: DUP13
0000094c: PUSH1 0x01
0000094e: PUSH1 0xa0
00000950: PUSH1 0x02
00000952: EXP
00000953: SUB
00000954: AND
00000955: EQ
00000956: ISZERO
00000957: JUMPDEST
00000958: DUP1
00000959: ISZERO
0000095a: PUSH2 0x097d
0000095d: JUMPI
0000095e: POP
0000095f: PUSH1 0x04
00000961: SLOAD
00000962: PUSH1 0x01
00000964: PUSH1 0xa0
00000966: PUSH1 0x02
00000968: EXP
00000969: SUB
0000096a: DUP14
0000096b: AND
0000096c: PUSH1 0x00
0000096e: SWAP1
0000096f: DUP2
00000970: MSTORE
00000971: PUSH1 0x06
00000973: PUSH1 0x20
00000975: MSTORE
00000976: PUSH1 0x40
00000978: SWAP1
00000979: KECCAK256
0000097a: SLOAD
0000097b: LT
0000097c: ISZERO
0000097d: JUMPDEST
0000097e: ISZERO
0000097f: PUSH2 0x09c3
00000982: JUMPI
00000983: PUSH1 0x01
00000985: PUSH1 0xa0
00000987: PUSH1 0x02
00000989: EXP
0000098a: SUB
0000098b: DUP13
0000098c: AND
0000098d: PUSH1 0x00
0000098f: SWAP1
00000990: DUP2
00000991: MSTORE
00000992: PUSH1 0x07
00000994: PUSH1 0x20
00000996: MSTORE
00000997: PUSH1 0x40
00000999: SWAP1
0000099a: KECCAK256
0000099b: SLOAD
0000099c: PUSH2 0x09a5
0000099f: SWAP1
000009a0: DUP10
000009a1: PUSH2 0x138e
000009a4: JUMP
000009a5: JUMPDEST
000009a6: PUSH1 0x01
000009a8: PUSH1 0xa0
000009aa: PUSH1 0x02
000009ac: EXP
000009ad: SUB
000009ae: DUP14
000009af: AND
000009b0: PUSH1 0x00
000009b2: SWAP1
000009b3: DUP2
000009b4: MSTORE
000009b5: PUSH1 0x07
000009b7: PUSH1 0x20
000009b9: MSTORE
000009ba: PUSH1 0x40
000009bc: SWAP1
000009bd: KECCAK256
000009be: SSTORE
000009bf: PUSH2 0x09de
000009c2: JUMP
000009c3: JUMPDEST
000009c4: PUSH2 0x09cd
000009c7: DUP8
000009c8: DUP10
000009c9: PUSH2 0x138e
000009cc: JUMP
000009cd: JUMPDEST
000009ce: SWAP7
000009cf: POP
000009d0: PUSH9 0x010000000000000000
000009da: DUP8
000009db: MUL
000009dc: SWAP4
000009dd: POP
000009de: JUMPDEST
000009df: PUSH1 0x00
000009e1: PUSH1 0x0a
000009e3: SLOAD
000009e4: GT
000009e5: ISZERO
000009e6: PUSH2 0x0a42
000009e9: JUMPI
000009ea: PUSH2 0x09f5
000009ed: PUSH1 0x0a
000009ef: SLOAD
000009f0: DUP7
000009f1: PUSH2 0x138e
000009f4: JUMP
000009f5: JUMPDEST
000009f6: PUSH1 0x0a
000009f8: DUP2
000009f9: SWAP1
000009fa: SSTORE
000009fb: PUSH9 0x010000000000000000
00000a05: DUP9
00000a06: MUL
00000a07: DUP2
00000a08: ISZERO
00000a09: ISZERO
00000a0a: PUSH2 0x0a0f
00000a0d: JUMPI
00000a0e: INVALID
00000a0f: JUMPDEST
00000a10: PUSH1 0x0b
00000a12: DUP1
00000a13: SLOAD
00000a14: SWAP3
00000a15: SWAP1
00000a16: SWAP2
00000a17: DIV
00000a18: SWAP1
00000a19: SWAP2
00000a1a: ADD
00000a1b: SWAP1
00000a1c: SSTORE
00000a1d: PUSH1 0x0a
00000a1f: SLOAD
00000a20: PUSH9 0x010000000000000000
00000a2a: DUP9
00000a2b: MUL
00000a2c: DUP2
00000a2d: ISZERO
00000a2e: ISZERO
00000a2f: PUSH2 0x0a34
00000a32: JUMPI
00000a33: INVALID
00000a34: JUMPDEST
00000a35: DIV
00000a36: DUP6
00000a37: MUL
00000a38: DUP5
00000a39: SUB
00000a3a: DUP5
00000a3b: SUB
00000a3c: SWAP4
00000a3d: POP
00000a3e: PUSH2 0x0a48
00000a41: JUMP
00000a42: JUMPDEST
00000a43: PUSH1 0x0a
00000a45: DUP6
00000a46: SWAP1
00000a47: SSTORE
00000a48: JUMPDEST
00000a49: PUSH1 0x01
00000a4b: PUSH1 0xa0
00000a4d: PUSH1 0x02
00000a4f: EXP
00000a50: SUB
00000a51: DUP11
00000a52: AND
00000a53: PUSH1 0x00
00000a55: SWAP1
00000a56: DUP2
00000a57: MSTORE
00000a58: PUSH1 0x06
00000a5a: PUSH1 0x20
00000a5c: MSTORE
00000a5d: PUSH1 0x40
00000a5f: SWAP1
00000a60: KECCAK256
00000a61: SLOAD
00000a62: PUSH2 0x0a6b
00000a65: SWAP1
00000a66: DUP7
00000a67: PUSH2 0x138e
00000a6a: JUMP
00000a6b: JUMPDEST
00000a6c: PUSH1 0x06
00000a6e: PUSH1 0x00
00000a70: DUP13
00000a71: PUSH1 0x01
00000a73: PUSH1 0xa0
00000a75: PUSH1 0x02
00000a77: EXP
00000a78: SUB
00000a79: AND
00000a7a: PUSH1 0x01
00000a7c: PUSH1 0xa0
00000a7e: PUSH1 0x02
00000a80: EXP
00000a81: SUB
00000a82: AND
00000a83: DUP2
00000a84: MSTORE
00000a85: PUSH1 0x20
00000a87: ADD
00000a88: SWAP1
00000a89: DUP2
00000a8a: MSTORE
00000a8b: PUSH1 0x20
00000a8d: ADD
00000a8e: PUSH1 0x00
00000a90: KECCAK256
00000a91: DUP2
00000a92: SWAP1
00000a93: SSTORE
00000a94: POP
00000a95: DUP4
00000a96: DUP6
00000a97: PUSH1 0x0b
00000a99: SLOAD
00000a9a: MUL
00000a9b: SUB
00000a9c: SWAP3
00000a9d: POP
00000a9e: DUP3
00000a9f: PUSH1 0x08
00000aa1: PUSH1 0x00
00000aa3: DUP13
00000aa4: PUSH1 0x01
00000aa6: PUSH1 0xa0
00000aa8: PUSH1 0x02
00000aaa: EXP
00000aab: SUB
00000aac: AND
00000aad: PUSH1 0x01
00000aaf: PUSH1 0xa0
00000ab1: PUSH1 0x02
00000ab3: EXP
00000ab4: SUB
00000ab5: AND
00000ab6: DUP2
00000ab7: MSTORE
00000ab8: PUSH1 0x20
00000aba: ADD
00000abb: SWAP1
00000abc: DUP2
00000abd: MSTORE
00000abe: PUSH1 0x20
00000ac0: ADD
00000ac1: PUSH1 0x00
00000ac3: KECCAK256
00000ac4: PUSH1 0x00
00000ac6: DUP3
00000ac7: DUP3
00000ac8: SLOAD
00000ac9: ADD
00000aca: SWAP3
00000acb: POP
00000acc: POP
00000acd: DUP2
00000ace: SWAP1
00000acf: SSTORE
00000ad0: POP
00000ad1: DUP12
00000ad2: PUSH1 0x01
00000ad4: PUSH1 0xa0
00000ad6: PUSH1 0x02
00000ad8: EXP
00000ad9: SUB
00000ada: AND
00000adb: DUP11
00000adc: PUSH1 0x01
00000ade: PUSH1 0xa0
00000ae0: PUSH1 0x02
00000ae2: EXP
00000ae3: SUB
00000ae4: AND
00000ae5: PUSH32 0x022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5
00000b06: DUP16
00000b07: DUP9
00000b08: PUSH1 0x40
00000b0a: MLOAD
00000b0b: DUP1
00000b0c: DUP4
00000b0d: DUP2
00000b0e: MSTORE
00000b0f: PUSH1 0x20
00000b11: ADD
00000b12: DUP3
00000b13: DUP2
00000b14: MSTORE
00000b15: PUSH1 0x20
00000b17: ADD
00000b18: SWAP3
00000b19: POP
00000b1a: POP
00000b1b: POP
00000b1c: PUSH1 0x40
00000b1e: MLOAD
00000b1f: DUP1
00000b20: SWAP2
00000b21: SUB
00000b22: SWAP1
00000b23: LOG3
00000b24: DUP5
00000b25: SWAP11
00000b26: POP
00000b27: JUMPDEST
00000b28: POP
00000b29: POP
00000b2a: POP
00000b2b: POP
00000b2c: POP
00000b2d: POP
00000b2e: POP
00000b2f: POP
00000b30: POP
00000b31: POP
00000b32: SWAP3
00000b33: SWAP2
00000b34: POP
00000b35: POP
00000b36: JUMP
00000b37: JUMPDEST
00000b38: PUSH1 0x01
00000b3a: PUSH1 0xa0
00000b3c: PUSH1 0x02
00000b3e: EXP
00000b3f: SUB
00000b40: AND
00000b41: PUSH1 0x00
00000b43: SWAP1
00000b44: DUP2
00000b45: MSTORE
00000b46: PUSH1 0x08
00000b48: PUSH1 0x20
00000b4a: SWAP1
00000b4b: DUP2
00000b4c: MSTORE
00000b4d: PUSH1 0x40
00000b4f: DUP1
00000b50: DUP4
00000b51: KECCAK256
00000b52: SLOAD
00000b53: PUSH1 0x06
00000b55: SWAP1
00000b56: SWAP3
00000b57: MSTORE
00000b58: SWAP1
00000b59: SWAP2
00000b5a: KECCAK256
00000b5b: SLOAD
00000b5c: PUSH1 0x0b
00000b5e: SLOAD
00000b5f: PUSH9 0x010000000000000000
00000b69: SWAP2
00000b6a: MUL
00000b6b: SWAP2
00000b6c: SWAP1
00000b6d: SWAP2
00000b6e: SUB
00000b6f: DIV
00000b70: SWAP1
00000b71: JUMP
00000b72: JUMPDEST
00000b73: PUSH1 0x00
00000b75: SLOAD
00000b76: PUSH1 0x01
00000b78: PUSH1 0xa0
00000b7a: PUSH1 0x02
00000b7c: EXP
00000b7d: SUB
00000b7e: AND
00000b7f: CALLER
00000b80: EQ
00000b81: PUSH2 0x0b89
00000b84: JUMPI
00000b85: PUSH1 0x00
00000b87: DUP1
00000b88: REVERT
00000b89: JUMPDEST
00000b8a: PUSH1 0x03
00000b8c: SSTORE
00000b8d: JUMP
00000b8e: JUMPDEST
00000b8f: PUSH1 0x01
00000b91: DUP1
00000b92: SLOAD
00000b93: PUSH1 0x40
00000b95: DUP1
00000b96: MLOAD
00000b97: PUSH1 0x20
00000b99: PUSH1 0x02
00000b9b: DUP5
00000b9c: DUP7
00000b9d: AND
00000b9e: ISZERO
00000b9f: PUSH2 0x0100
00000ba2: MUL
00000ba3: PUSH1 0x00
00000ba5: NOT
00000ba6: ADD
00000ba7: SWAP1
00000ba8: SWAP5
00000ba9: AND
00000baa: SWAP4
00000bab: SWAP1
00000bac: SWAP4
00000bad: DIV
00000bae: PUSH1 0x1f
00000bb0: DUP2
00000bb1: ADD
00000bb2: DUP5
00000bb3: SWAP1
00000bb4: DIV
00000bb5: DUP5
00000bb6: MUL
00000bb7: DUP3
00000bb8: ADD
00000bb9: DUP5
00000bba: ADD
00000bbb: SWAP1
00000bbc: SWAP3
00000bbd: MSTORE
00000bbe: DUP2
00000bbf: DUP2
00000bc0: MSTORE
00000bc1: SWAP3
00000bc2: SWAP2
00000bc3: DUP4
00000bc4: ADD
00000bc5: DUP3
00000bc6: DUP3
00000bc7: DUP1
00000bc8: ISZERO
00000bc9: PUSH2 0x0c13
00000bcc: JUMPI
00000bcd: DUP1
00000bce: PUSH1 0x1f
00000bd0: LT
00000bd1: PUSH2 0x0be8
00000bd4: JUMPI
00000bd5: PUSH2 0x0100
00000bd8: DUP1
00000bd9: DUP4
00000bda: SLOAD
00000bdb: DIV
00000bdc: MUL
00000bdd: DUP4
00000bde: MSTORE
00000bdf: SWAP2
00000be0: PUSH1 0x20
00000be2: ADD
00000be3: SWAP2
00000be4: PUSH2 0x0c13
00000be7: JUMP
00000be8: JUMPDEST
00000be9: DUP3
00000bea: ADD
00000beb: SWAP2
00000bec: SWAP1
00000bed: PUSH1 0x00
00000bef: MSTORE
00000bf0: PUSH1 0x20
00000bf2: PUSH1 0x00
00000bf4: KECCAK256
00000bf5: SWAP1
00000bf6: JUMPDEST
00000bf7: DUP2
00000bf8: SLOAD
00000bf9: DUP2
00000bfa: MSTORE
00000bfb: SWAP1
00000bfc: PUSH1 0x01
00000bfe: ADD
00000bff: SWAP1
00000c00: PUSH1 0x20
00000c02: ADD
00000c03: DUP1
00000c04: DUP4
00000c05: GT
00000c06: PUSH2 0x0bf6
00000c09: JUMPI
00000c0a: DUP3
00000c0b: SWAP1
00000c0c: SUB
00000c0d: PUSH1 0x1f
00000c0f: AND
00000c10: DUP3
00000c11: ADD
00000c12: SWAP2
00000c13: JUMPDEST
00000c14: POP
00000c15: POP
00000c16: POP
00000c17: POP
00000c18: POP
00000c19: DUP2
00000c1a: JUMP
00000c1b: JUMPDEST
00000c1c: PUSH1 0x00
00000c1e: DUP1
00000c1f: DUP1
00000c20: DUP1
00000c21: PUSH2 0x0c2b
00000c24: DUP6
00000c25: PUSH1 0x0a
00000c27: PUSH2 0x13a4
00000c2a: JUMP
00000c2b: JUMPDEST
00000c2c: SWAP3
00000c2d: POP
00000c2e: PUSH2 0x0c37
00000c31: DUP6
00000c32: DUP5
00000c33: PUSH2 0x13bb
00000c36: JUMP
00000c37: JUMPDEST
00000c38: SWAP2
00000c39: POP
00000c3a: PUSH2 0x0c42
00000c3d: DUP3
00000c3e: PUSH2 0x13cd
00000c41: JUMP
00000c42: JUMPDEST
00000c43: SWAP6
00000c44: SWAP5
00000c45: POP
00000c46: POP
00000c47: POP
00000c48: POP
00000c49: POP
00000c4a: JUMP
00000c4b: JUMPDEST
00000c4c: PUSH1 0x0a
00000c4e: SLOAD
00000c4f: JUMPDEST
00000c50: SWAP1
00000c51: JUMP
00000c52: JUMPDEST
00000c53: PUSH1 0x00
00000c55: DUP1
00000c56: PUSH1 0x00
00000c58: DUP1
00000c59: PUSH1 0x0a
00000c5b: SLOAD
00000c5c: DUP6
00000c5d: GT
00000c5e: ISZERO
00000c5f: ISZERO
00000c60: ISZERO
00000c61: PUSH2 0x0c69
00000c64: JUMPI
00000c65: PUSH1 0x00
00000c67: DUP1
00000c68: REVERT
00000c69: JUMPDEST
00000c6a: PUSH2 0x0c72
00000c6d: DUP6
00000c6e: PUSH2 0x1465
00000c71: JUMP
00000c72: JUMPDEST
00000c73: SWAP3
00000c74: POP
00000c75: PUSH2 0x0c7f
00000c78: DUP4
00000c79: PUSH1 0x0a
00000c7b: PUSH2 0x13a4
00000c7e: JUMP
00000c7f: JUMPDEST
00000c80: SWAP2
00000c81: POP
00000c82: PUSH2 0x0c42
00000c85: DUP4
00000c86: DUP4
00000c87: PUSH2 0x13bb
00000c8a: JUMP
00000c8b: JUMPDEST
00000c8c: PUSH1 0x0c
00000c8e: SLOAD
00000c8f: PUSH1 0xff
00000c91: AND
00000c92: DUP2
00000c93: JUMP
00000c94: JUMPDEST
00000c95: PUSH1 0x12
00000c97: DUP2
00000c98: JUMP
00000c99: JUMPDEST
00000c9a: PUSH1 0x00
00000c9c: DUP1
00000c9d: PUSH1 0x00
00000c9f: PUSH2 0x0ca8
00000ca2: PUSH1 0x01
00000ca4: PUSH2 0x0dc6
00000ca7: JUMP
00000ca8: JUMPDEST
00000ca9: GT
00000caa: PUSH2 0x0cb2
00000cad: JUMPI
00000cae: PUSH1 0x00
00000cb0: DUP1
00000cb1: REVERT
00000cb2: JUMPDEST
00000cb3: CALLER
00000cb4: SWAP2
00000cb5: POP
00000cb6: PUSH2 0x0cbf
00000cb9: PUSH1 0x00
00000cbb: PUSH2 0x0dc6
00000cbe: JUMP
00000cbf: JUMPDEST
00000cc0: PUSH1 0x01
00000cc2: PUSH1 0xa0
00000cc4: PUSH1 0x02
00000cc6: EXP
00000cc7: SUB
00000cc8: DUP4
00000cc9: AND
00000cca: PUSH1 0x00
00000ccc: DUP2
00000ccd: DUP2
00000cce: MSTORE
00000ccf: PUSH1 0x08
00000cd1: PUSH1 0x20
00000cd3: SWAP1
00000cd4: DUP2
00000cd5: MSTORE
00000cd6: PUSH1 0x40
00000cd8: DUP1
00000cd9: DUP4
00000cda: KECCAK256
00000cdb: DUP1
00000cdc: SLOAD
00000cdd: PUSH9 0x010000000000000000
00000ce7: DUP8
00000ce8: MUL
00000ce9: ADD
00000cea: SWAP1
00000ceb: SSTORE
00000cec: PUSH1 0x07
00000cee: SWAP1
00000cef: SWAP2
00000cf0: MSTORE
00000cf1: DUP1
00000cf2: DUP3
00000cf3: KECCAK256
00000cf4: DUP1
00000cf5: SLOAD
00000cf6: SWAP1
00000cf7: DUP4
00000cf8: SWAP1
00000cf9: SSTORE
00000cfa: SWAP1
00000cfb: MLOAD
00000cfc: SWAP4
00000cfd: ADD
00000cfe: SWAP4
00000cff: POP
00000d00: SWAP1
00000d01: SWAP2
00000d02: DUP4
00000d03: ISZERO
00000d04: PUSH2 0x08fc
00000d07: MUL
00000d08: SWAP2
00000d09: DUP5
00000d0a: SWAP2
00000d0b: SWAP1
00000d0c: DUP2
00000d0d: DUP2
00000d0e: DUP2
00000d0f: DUP6
00000d10: DUP9
00000d11: DUP9
00000d12: CALL
00000d13: SWAP4
00000d14: POP
00000d15: POP
00000d16: POP
00000d17: POP
00000d18: ISZERO
00000d19: DUP1
00000d1a: ISZERO
00000d1b: PUSH2 0x0d28
00000d1e: JUMPI
00000d1f: RETURNDATASIZE
00000d20: PUSH1 0x00
00000d22: DUP1
00000d23: RETURNDATACOPY
00000d24: RETURNDATASIZE
00000d25: PUSH1 0x00
00000d27: REVERT
00000d28: JUMPDEST
00000d29: POP
00000d2a: PUSH1 0x40
00000d2c: DUP1
00000d2d: MLOAD
00000d2e: DUP3
00000d2f: DUP2
00000d30: MSTORE
00000d31: SWAP1
00000d32: MLOAD
00000d33: PUSH1 0x01
00000d35: PUSH1 0xa0
00000d37: PUSH1 0x02
00000d39: EXP
00000d3a: SUB
00000d3b: DUP5
00000d3c: AND
00000d3d: SWAP2
00000d3e: PUSH32 0xccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc
00000d5f: SWAP2
00000d60: SWAP1
00000d61: DUP2
00000d62: SWAP1
00000d63: SUB
00000d64: PUSH1 0x20
00000d66: ADD
00000d67: SWAP1
00000d68: LOG2
00000d69: POP
00000d6a: POP
00000d6b: JUMP
00000d6c: JUMPDEST
00000d6d: PUSH1 0x00
00000d6f: DUP1
00000d70: PUSH1 0x00
00000d72: DUP1
00000d73: PUSH1 0x0a
00000d75: SLOAD
00000d76: PUSH1 0x00
00000d78: EQ
00000d79: ISZERO
00000d7a: PUSH2 0x0d8a
00000d7d: JUMPI
00000d7e: PUSH5 0x14f46b0400
00000d84: SWAP4
00000d85: POP
00000d86: PUSH2 0x0dba
00000d89: JUMP
00000d8a: JUMPDEST
00000d8b: PUSH2 0x0d9b
00000d8e: PUSH8 0x0de0b6b3a7640000
00000d97: PUSH2 0x1465
00000d9a: JUMP
00000d9b: JUMPDEST
00000d9c: SWAP3
00000d9d: POP
00000d9e: PUSH2 0x0da8
00000da1: DUP4
00000da2: PUSH1 0x0a
00000da4: PUSH2 0x13a4
00000da7: JUMP
00000da8: JUMPDEST
00000da9: SWAP2
00000daa: POP
00000dab: PUSH2 0x0db4
00000dae: DUP4
00000daf: DUP4
00000db0: PUSH2 0x13bb
00000db3: JUMP
00000db4: JUMPDEST
00000db5: SWAP1
00000db6: POP
00000db7: DUP1
00000db8: SWAP4
00000db9: POP
00000dba: JUMPDEST
00000dbb: POP
00000dbc: POP
00000dbd: POP
00000dbe: SWAP1
00000dbf: JUMP
00000dc0: JUMPDEST
00000dc1: PUSH1 0x04
00000dc3: SLOAD
00000dc4: DUP2
00000dc5: JUMP
00000dc6: JUMPDEST
00000dc7: PUSH1 0x00
00000dc9: CALLER
00000dca: DUP3
00000dcb: PUSH2 0x0ddc
00000dce: JUMPI
00000dcf: PUSH2 0x0dd7
00000dd2: DUP2
00000dd3: PUSH2 0x0b37
00000dd6: JUMP
00000dd7: JUMPDEST
00000dd8: PUSH2 0x0e00
00000ddb: JUMP
00000ddc: JUMPDEST
00000ddd: PUSH1 0x01
00000ddf: PUSH1 0xa0
00000de1: PUSH1 0x02
00000de3: EXP
00000de4: SUB
00000de5: DUP2
00000de6: AND
00000de7: PUSH1 0x00
00000de9: SWAP1
00000dea: DUP2
00000deb: MSTORE
00000dec: PUSH1 0x07
00000dee: PUSH1 0x20
00000df0: MSTORE
00000df1: PUSH1 0x40
00000df3: SWAP1
00000df4: KECCAK256
00000df5: SLOAD
00000df6: PUSH2 0x0dfe
00000df9: DUP3
00000dfa: PUSH2 0x0b37
00000dfd: JUMP
00000dfe: JUMPDEST
00000dff: ADD
00000e00: JUMPDEST
00000e01: SWAP2
00000e02: POP
00000e03: JUMPDEST
00000e04: POP
00000e05: SWAP2
00000e06: SWAP1
00000e07: POP
00000e08: JUMP
00000e09: JUMPDEST
00000e0a: ADDRESS
00000e0b: BALANCE
00000e0c: SWAP1
00000e0d: JUMP
00000e0e: JUMPDEST
00000e0f: PUSH1 0x01
00000e11: PUSH1 0xa0
00000e13: PUSH1 0x02
00000e15: EXP
00000e16: SUB
00000e17: AND
00000e18: PUSH1 0x00
00000e1a: SWAP1
00000e1b: DUP2
00000e1c: MSTORE
00000e1d: PUSH1 0x06
00000e1f: PUSH1 0x20
00000e21: MSTORE
00000e22: PUSH1 0x40
00000e24: SWAP1
00000e25: KECCAK256
00000e26: SLOAD
00000e27: SWAP1
00000e28: JUMP
00000e29: JUMPDEST
00000e2a: PUSH1 0x00
00000e2c: SLOAD
00000e2d: PUSH1 0x01
00000e2f: PUSH1 0xa0
00000e31: PUSH1 0x02
00000e33: EXP
00000e34: SUB
00000e35: AND
00000e36: CALLER
00000e37: EQ
00000e38: PUSH2 0x0e40
00000e3b: JUMPI
00000e3c: PUSH1 0x00
00000e3e: DUP1
00000e3f: REVERT
00000e40: JUMPDEST
00000e41: PUSH1 0x04
00000e43: SSTORE
00000e44: JUMP
00000e45: JUMPDEST
00000e46: PUSH1 0x00
00000e48: DUP1
00000e49: PUSH1 0x00
00000e4b: DUP1
00000e4c: PUSH1 0x0a
00000e4e: SLOAD
00000e4f: PUSH1 0x00
00000e51: EQ
00000e52: ISZERO
00000e53: PUSH2 0x0e63
00000e56: JUMPI
00000e57: PUSH5 0x199c82cc00
00000e5d: SWAP4
00000e5e: POP
00000e5f: PUSH2 0x0dba
00000e62: JUMP
00000e63: JUMPDEST
00000e64: PUSH2 0x0e74
00000e67: PUSH8 0x0de0b6b3a7640000
00000e70: PUSH2 0x1465
00000e73: JUMP
00000e74: JUMPDEST
00000e75: SWAP3
00000e76: POP
00000e77: PUSH2 0x0e81
00000e7a: DUP4
00000e7b: PUSH1 0x0a
00000e7d: PUSH2 0x13a4
00000e80: JUMP
00000e81: JUMPDEST
00000e82: SWAP2
00000e83: POP
00000e84: PUSH2 0x0db4
00000e87: DUP4
00000e88: DUP4
00000e89: PUSH2 0x138e
00000e8c: JUMP
00000e8d: JUMPDEST
00000e8e: PUSH1 0x00
00000e90: SLOAD
00000e91: PUSH1 0x01
00000e93: PUSH1 0xa0
00000e95: PUSH1 0x02
00000e97: EXP
00000e98: SUB
00000e99: AND
00000e9a: DUP2
00000e9b: JUMP
00000e9c: JUMPDEST
00000e9d: PUSH1 0x00
00000e9f: CALLER
00000ea0: PUSH2 0x0ea8
00000ea3: DUP2
00000ea4: PUSH2 0x0e0e
00000ea7: JUMP
00000ea8: JUMPDEST
00000ea9: SWAP2
00000eaa: POP
00000eab: JUMPDEST
00000eac: POP
00000ead: SWAP1
00000eae: JUMP
00000eaf: JUMPDEST
00000eb0: PUSH1 0x02
00000eb2: DUP1
00000eb3: SLOAD
00000eb4: PUSH1 0x40
00000eb6: DUP1
00000eb7: MLOAD
00000eb8: PUSH1 0x20
00000eba: PUSH1 0x01
00000ebc: DUP5
00000ebd: AND
00000ebe: ISZERO
00000ebf: PUSH2 0x0100
00000ec2: MUL
00000ec3: PUSH1 0x00
00000ec5: NOT
00000ec6: ADD
00000ec7: SWAP1
00000ec8: SWAP4
00000ec9: AND
00000eca: DUP5
00000ecb: SWAP1
00000ecc: DIV
00000ecd: PUSH1 0x1f
00000ecf: DUP2
00000ed0: ADD
00000ed1: DUP5
00000ed2: SWAP1
00000ed3: DIV
00000ed4: DUP5
00000ed5: MUL
00000ed6: DUP3
00000ed7: ADD
00000ed8: DUP5
00000ed9: ADD
00000eda: SWAP1
00000edb: SWAP3
00000edc: MSTORE
00000edd: DUP2
00000ede: DUP2
00000edf: MSTORE
00000ee0: SWAP3
00000ee1: SWAP2
00000ee2: DUP4
00000ee3: ADD
00000ee4: DUP3
00000ee5: DUP3
00000ee6: DUP1
00000ee7: ISZERO
00000ee8: PUSH2 0x0c13
00000eeb: JUMPI
00000eec: DUP1
00000eed: PUSH1 0x1f
00000eef: LT
00000ef0: PUSH2 0x0be8
00000ef3: JUMPI
00000ef4: PUSH2 0x0100
00000ef7: DUP1
00000ef8: DUP4
00000ef9: SLOAD
00000efa: DIV
00000efb: MUL
00000efc: DUP4
00000efd: MSTORE
00000efe: SWAP2
00000eff: PUSH1 0x20
00000f01: ADD
00000f02: SWAP2
00000f03: PUSH2 0x0c13
00000f06: JUMP
00000f07: JUMPDEST
00000f08: PUSH1 0x00
00000f0a: SLOAD
00000f0b: PUSH1 0x01
00000f0d: PUSH1 0xa0
00000f0f: PUSH1 0x02
00000f11: EXP
00000f12: SUB
00000f13: AND
00000f14: CALLER
00000f15: EQ
00000f16: PUSH2 0x0f1e
00000f19: JUMPI
00000f1a: PUSH1 0x00
00000f1c: DUP1
00000f1d: REVERT
00000f1e: JUMPDEST
00000f1f: PUSH1 0x0c
00000f21: DUP1
00000f22: SLOAD
00000f23: PUSH1 0xff
00000f25: NOT
00000f26: AND
00000f27: SWAP1
00000f28: SSTORE
00000f29: JUMP
00000f2a: JUMPDEST
00000f2b: PUSH1 0x00
00000f2d: DUP1
00000f2e: PUSH1 0x00
00000f30: DUP1
00000f31: PUSH1 0x00
00000f33: DUP1
00000f34: PUSH2 0x0f3b
00000f37: PUSH2 0x0e9c
00000f3a: JUMP
00000f3b: JUMPDEST
00000f3c: GT
00000f3d: PUSH2 0x0f45
00000f40: JUMPI
00000f41: PUSH1 0x00
00000f43: DUP1
00000f44: REVERT
00000f45: JUMPDEST
00000f46: PUSH1 0x0c
00000f48: SLOAD
00000f49: CALLER
00000f4a: SWAP5
00000f4b: POP
00000f4c: PUSH1 0xff
00000f4e: AND
00000f4f: ISZERO
00000f50: DUP1
00000f51: ISZERO
00000f52: PUSH2 0x0f73
00000f55: JUMPI
00000f56: POP
00000f57: PUSH1 0x01
00000f59: PUSH1 0xa0
00000f5b: PUSH1 0x02
00000f5d: EXP
00000f5e: SUB
00000f5f: DUP5
00000f60: AND
00000f61: PUSH1 0x00
00000f63: SWAP1
00000f64: DUP2
00000f65: MSTORE
00000f66: PUSH1 0x06
00000f68: PUSH1 0x20
00000f6a: MSTORE
00000f6b: PUSH1 0x40
00000f6d: SWAP1
00000f6e: KECCAK256
00000f6f: SLOAD
00000f70: DUP7
00000f71: GT
00000f72: ISZERO
00000f73: JUMPDEST
00000f74: ISZERO
00000f75: ISZERO
00000f76: PUSH2 0x0f7e
00000f79: JUMPI
00000f7a: PUSH1 0x00
00000f7c: DUP1
00000f7d: REVERT
00000f7e: JUMPDEST
00000f7f: PUSH1 0x00
00000f81: PUSH2 0x0f8a
00000f84: PUSH1 0x01
00000f86: PUSH2 0x0dc6
00000f89: JUMP
00000f8a: JUMPDEST
00000f8b: GT
00000f8c: ISZERO
00000f8d: PUSH2 0x0f98
00000f90: JUMPI
00000f91: PUSH2 0x0f98
00000f94: PUSH2 0x0c99
00000f97: JUMP
00000f98: JUMPDEST
00000f99: PUSH2 0x0fa3
00000f9c: DUP7
00000f9d: PUSH1 0x0a
00000f9f: PUSH2 0x13a4
00000fa2: JUMP
00000fa3: JUMPDEST
00000fa4: SWAP3
00000fa5: POP
00000fa6: PUSH2 0x0faf
00000fa9: DUP7
00000faa: DUP5
00000fab: PUSH2 0x13bb
00000fae: JUMP
00000faf: JUMPDEST
00000fb0: SWAP2
00000fb1: POP
00000fb2: PUSH2 0x0fba
00000fb5: DUP4
00000fb6: PUSH2 0x1465
00000fb9: JUMP
00000fba: JUMPDEST
00000fbb: SWAP1
00000fbc: POP
00000fbd: PUSH2 0x0fc8
00000fc0: PUSH1 0x0a
00000fc2: SLOAD
00000fc3: DUP5
00000fc4: PUSH2 0x13bb
00000fc7: JUMP
00000fc8: JUMPDEST
00000fc9: PUSH1 0x0a
00000fcb: SSTORE
00000fcc: PUSH1 0x01
00000fce: PUSH1 0xa0
00000fd0: PUSH1 0x02
00000fd2: EXP
00000fd3: SUB
00000fd4: DUP5
00000fd5: AND
00000fd6: PUSH1 0x00
00000fd8: SWAP1
00000fd9: DUP2
00000fda: MSTORE
00000fdb: PUSH1 0x06
00000fdd: PUSH1 0x20
00000fdf: MSTORE
00000fe0: PUSH1 0x40
00000fe2: SWAP1
00000fe3: KECCAK256
00000fe4: SLOAD
00000fe5: PUSH2 0x0fee
00000fe8: SWAP1
00000fe9: DUP8
00000fea: PUSH2 0x13bb
00000fed: JUMP
00000fee: JUMPDEST
00000fef: PUSH1 0x01
00000ff1: PUSH1 0xa0
00000ff3: PUSH1 0x02
00000ff5: EXP
00000ff6: SUB
00000ff7: DUP1
00000ff8: DUP7
00000ff9: AND
00000ffa: PUSH1 0x00
00000ffc: SWAP1
00000ffd: DUP2
00000ffe: MSTORE
00000fff: PUSH1 0x06
00001001: PUSH1 0x20
00001003: MSTORE
00001004: PUSH1 0x40
00001006: DUP1
00001007: DUP3
00001008: KECCAK256
00001009: SWAP4
0000100a: SWAP1
0000100b: SWAP4
0000100c: SSTORE
0000100d: SWAP1
0000100e: DUP10
0000100f: AND
00001010: DUP2
00001011: MSTORE
00001012: KECCAK256
00001013: SLOAD
00001014: PUSH2 0x101d
00001017: SWAP1
00001018: DUP4
00001019: PUSH2 0x138e
0000101c: JUMP
0000101d: JUMPDEST
0000101e: PUSH1 0x01
00001020: PUSH1 0xa0
00001022: PUSH1 0x02
00001024: EXP
00001025: SUB
00001026: DUP9
00001027: DUP2
00001028: AND
00001029: PUSH1 0x00
0000102b: DUP2
0000102c: DUP2
0000102d: MSTORE
0000102e: PUSH1 0x06
00001030: PUSH1 0x20
00001032: SWAP1
00001033: DUP2
00001034: MSTORE
00001035: PUSH1 0x40
00001037: DUP1
00001038: DUP4
00001039: KECCAK256
0000103a: SWAP6
0000103b: SWAP1
0000103c: SWAP6
0000103d: SSTORE
0000103e: PUSH1 0x0b
00001040: DUP1
00001041: SLOAD
00001042: SWAP5
00001043: DUP11
00001044: AND
00001045: DUP4
00001046: MSTORE
00001047: PUSH1 0x08
00001049: SWAP1
0000104a: SWAP2
0000104b: MSTORE
0000104c: DUP5
0000104d: DUP3
0000104e: KECCAK256
0000104f: DUP1
00001050: SLOAD
00001051: SWAP5
00001052: DUP13
00001053: MUL
00001054: SWAP1
00001055: SWAP5
00001056: SUB
00001057: SWAP1
00001058: SWAP4
00001059: SSTORE
0000105a: DUP3
0000105b: SLOAD
0000105c: SWAP2
0000105d: DUP2
0000105e: MSTORE
0000105f: SWAP3
00001060: SWAP1
00001061: SWAP3
00001062: KECCAK256
00001063: DUP1
00001064: SLOAD
00001065: SWAP3
00001066: DUP6
00001067: MUL
00001068: SWAP1
00001069: SWAP3
0000106a: ADD
0000106b: SWAP1
0000106c: SWAP2
0000106d: SSTORE
0000106e: SLOAD
0000106f: PUSH1 0x0a
00001071: SLOAD
00001072: PUSH2 0x1091
00001075: SWAP2
00001076: SWAP1
00001077: PUSH9 0x010000000000000000
00001081: DUP5
00001082: MUL
00001083: DUP2
00001084: ISZERO
00001085: ISZERO
00001086: PUSH2 0x108b
00001089: JUMPI
0000108a: INVALID
0000108b: JUMPDEST
0000108c: DIV
0000108d: PUSH2 0x138e
00001090: JUMP
00001091: JUMPDEST
00001092: PUSH1 0x0b
00001094: SSTORE
00001095: PUSH1 0x40
00001097: DUP1
00001098: MLOAD
00001099: DUP4
0000109a: DUP2
0000109b: MSTORE
0000109c: SWAP1
0000109d: MLOAD
0000109e: PUSH1 0x01
000010a0: PUSH1 0xa0
000010a2: PUSH1 0x02
000010a4: EXP
000010a5: SUB
000010a6: DUP1
000010a7: DUP11
000010a8: AND
000010a9: SWAP3
000010aa: SWAP1
000010ab: DUP8
000010ac: AND
000010ad: SWAP2
000010ae: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
000010cf: SWAP2
000010d0: DUP2
000010d1: SWAP1
000010d2: SUB
000010d3: PUSH1 0x20
000010d5: ADD
000010d6: SWAP1
000010d7: LOG3
000010d8: POP
000010d9: PUSH1 0x01
000010db: SWAP7
000010dc: SWAP6
000010dd: POP
000010de: POP
000010df: POP
000010e0: POP
000010e1: POP
000010e2: POP
000010e3: JUMP
000010e4: JUMPDEST
000010e5: PUSH1 0x00
000010e7: SLOAD
000010e8: PUSH1 0x01
000010ea: PUSH1 0xa0
000010ec: PUSH1 0x02
000010ee: EXP
000010ef: SUB
000010f0: AND
000010f1: CALLER
000010f2: EQ
000010f3: PUSH2 0x10fb
000010f6: JUMPI
000010f7: PUSH1 0x00
000010f9: DUP1
000010fa: REVERT
000010fb: JUMPDEST
000010fc: DUP1
000010fd: MLOAD
000010fe: PUSH2 0x110e
00001101: SWAP1
00001102: PUSH1 0x02
00001104: SWAP1
00001105: PUSH1 0x20
00001107: DUP5
00001108: ADD
00001109: SWAP1
0000110a: PUSH2 0x1506
0000110d: JUMP
0000110e: JUMPDEST
0000110f: POP
00001110: POP
00001111: JUMP
00001112: JUMPDEST
00001113: PUSH1 0x00
00001115: SLOAD
00001116: PUSH1 0x01
00001118: PUSH1 0xa0
0000111a: PUSH1 0x02
0000111c: EXP
0000111d: SUB
0000111e: AND
0000111f: CALLER
00001120: EQ
00001121: PUSH2 0x1129
00001124: JUMPI
00001125: PUSH1 0x00
00001127: DUP1
00001128: REVERT
00001129: JUMPDEST
0000112a: DUP1
0000112b: MLOAD
0000112c: PUSH2 0x110e
0000112f: SWAP1
00001130: PUSH1 0x01
00001132: SWAP1
00001133: PUSH1 0x20
00001135: DUP5
00001136: ADD
00001137: SWAP1
00001138: PUSH2 0x1506
0000113b: JUMP
0000113c: JUMPDEST
0000113d: PUSH1 0x00
0000113f: DUP1
00001140: PUSH1 0x00
00001142: DUP1
00001143: PUSH1 0x00
00001145: DUP1
00001146: PUSH1 0x00
00001148: PUSH2 0x114f
0000114b: PUSH2 0x0e9c
0000114e: JUMP
0000114f: JUMPDEST
00001150: GT
00001151: PUSH2 0x1159
00001154: JUMPI
00001155: PUSH1 0x00
00001157: DUP1
00001158: REVERT
00001159: JUMPDEST
0000115a: CALLER
0000115b: PUSH1 0x00
0000115d: DUP2
0000115e: DUP2
0000115f: MSTORE
00001160: PUSH1 0x06
00001162: PUSH1 0x20
00001164: MSTORE
00001165: PUSH1 0x40
00001167: SWAP1
00001168: KECCAK256
00001169: SLOAD
0000116a: SWAP1
0000116b: SWAP7
0000116c: POP
0000116d: DUP8
0000116e: GT
0000116f: ISZERO
00001170: PUSH2 0x1178
00001173: JUMPI
00001174: PUSH1 0x00
00001176: DUP1
00001177: REVERT
00001178: JUMPDEST
00001179: DUP7
0000117a: SWAP5
0000117b: POP
0000117c: PUSH2 0x1184
0000117f: DUP6
00001180: PUSH2 0x1465
00001183: JUMP
00001184: JUMPDEST
00001185: SWAP4
00001186: POP
00001187: PUSH2 0x1191
0000118a: DUP5
0000118b: PUSH1 0x0a
0000118d: PUSH2 0x13a4
00001190: JUMP
00001191: JUMPDEST
00001192: SWAP3
00001193: POP
00001194: PUSH2 0x119d
00001197: DUP5
00001198: DUP5
00001199: PUSH2 0x13bb
0000119c: JUMP
0000119d: JUMPDEST
0000119e: SWAP2
0000119f: POP
000011a0: PUSH2 0x11ab
000011a3: PUSH1 0x0a
000011a5: SLOAD
000011a6: DUP7
000011a7: PUSH2 0x13bb
000011aa: JUMP
000011ab: JUMPDEST
000011ac: PUSH1 0x0a
000011ae: SSTORE
000011af: PUSH1 0x01
000011b1: PUSH1 0xa0
000011b3: PUSH1 0x02
000011b5: EXP
000011b6: SUB
000011b7: DUP7
000011b8: AND
000011b9: PUSH1 0x00
000011bb: SWAP1
000011bc: DUP2
000011bd: MSTORE
000011be: PUSH1 0x06
000011c0: PUSH1 0x20
000011c2: MSTORE
000011c3: PUSH1 0x40
000011c5: SWAP1
000011c6: KECCAK256
000011c7: SLOAD
000011c8: PUSH2 0x11d1
000011cb: SWAP1
000011cc: DUP7
000011cd: PUSH2 0x13bb
000011d0: JUMP
000011d1: JUMPDEST
000011d2: PUSH1 0x01
000011d4: PUSH1 0xa0
000011d6: PUSH1 0x02
000011d8: EXP
000011d9: SUB
000011da: DUP8
000011db: AND
000011dc: PUSH1 0x00
000011de: SWAP1
000011df: DUP2
000011e0: MSTORE
000011e1: PUSH1 0x06
000011e3: PUSH1 0x20
000011e5: SWAP1
000011e6: DUP2
000011e7: MSTORE
000011e8: PUSH1 0x40
000011ea: DUP1
000011eb: DUP4
000011ec: KECCAK256
000011ed: SWAP4
000011ee: SWAP1
000011ef: SWAP4
000011f0: SSTORE
000011f1: PUSH1 0x0b
000011f3: SLOAD
000011f4: PUSH1 0x08
000011f6: SWAP1
000011f7: SWAP2
000011f8: MSTORE
000011f9: SWAP2
000011fa: DUP2
000011fb: KECCAK256
000011fc: DUP1
000011fd: SLOAD
000011fe: SWAP3
000011ff: DUP9
00001200: MUL
00001201: PUSH9 0x010000000000000000
0000120b: DUP7
0000120c: MUL
0000120d: ADD
0000120e: SWAP3
0000120f: DUP4
00001210: SWAP1
00001211: SUB
00001212: SWAP1
00001213: SSTORE
00001214: PUSH1 0x0a
00001216: SLOAD
00001217: SWAP2
00001218: SWAP3
00001219: POP
0000121a: LT
0000121b: ISZERO
0000121c: PUSH2 0x1241
0000121f: JUMPI
00001220: PUSH2 0x123d
00001223: PUSH1 0x0b
00001225: SLOAD
00001226: PUSH1 0x0a
00001228: SLOAD
00001229: PUSH9 0x010000000000000000
00001233: DUP7
00001234: MUL
00001235: DUP2
00001236: ISZERO
00001237: ISZERO
00001238: PUSH2 0x108b
0000123b: JUMPI
0000123c: INVALID
0000123d: JUMPDEST
0000123e: PUSH1 0x0b
00001240: SSTORE
00001241: JUMPDEST
00001242: PUSH1 0x40
00001244: DUP1
00001245: MLOAD
00001246: DUP7
00001247: DUP2
00001248: MSTORE
00001249: PUSH1 0x20
0000124b: DUP2
0000124c: ADD
0000124d: DUP5
0000124e: SWAP1
0000124f: MSTORE
00001250: DUP2
00001251: MLOAD
00001252: PUSH1 0x01
00001254: PUSH1 0xa0
00001256: PUSH1 0x02
00001258: EXP
00001259: SUB
0000125a: DUP10
0000125b: AND
0000125c: SWAP3
0000125d: PUSH32 0xc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a31139
0000127e: SWAP3
0000127f: DUP3
00001280: SWAP1
00001281: SUB
00001282: ADD
00001283: SWAP1
00001284: LOG2
00001285: POP
00001286: POP
00001287: POP
00001288: POP
00001289: POP
0000128a: POP
0000128b: POP
0000128c: JUMP
0000128d: JUMPDEST
0000128e: CALLER
0000128f: PUSH1 0x00
00001291: DUP2
00001292: DUP2
00001293: MSTORE
00001294: PUSH1 0x06
00001296: PUSH1 0x20
00001298: MSTORE
00001299: PUSH1 0x40
0000129b: DUP2
0000129c: KECCAK256
0000129d: SLOAD
0000129e: SWAP1
0000129f: DUP2
000012a0: GT
000012a1: ISZERO
000012a2: PUSH2 0x12ae
000012a5: JUMPI
000012a6: PUSH2 0x12ae
000012a9: DUP2
000012aa: PUSH2 0x113c
000012ad: JUMP
000012ae: JUMPDEST
000012af: PUSH2 0x110e
000012b2: PUSH2 0x0c99
000012b5: JUMP
000012b6: JUMPDEST
000012b7: PUSH1 0x03
000012b9: SLOAD
000012ba: PUSH1 0x00
000012bc: SWAP1
000012bd: TIMESTAMP
000012be: LT
000012bf: ISZERO
000012c0: PUSH2 0x12c8
000012c3: JUMPI
000012c4: PUSH1 0x00
000012c6: DUP1
000012c7: REVERT
000012c8: JUMPDEST
000012c9: PUSH2 0x0e03
000012cc: CALLVALUE
000012cd: DUP4
000012ce: PUSH2 0x0562
000012d1: JUMP
000012d2: JUMPDEST
000012d3: PUSH1 0x03
000012d5: SLOAD
000012d6: DUP2
000012d7: JUMP
000012d8: JUMPDEST
000012d9: PUSH1 0x00
000012db: DUP1
000012dc: PUSH1 0x00
000012de: DUP1
000012df: PUSH2 0x12e8
000012e2: PUSH1 0x01
000012e4: PUSH2 0x0dc6
000012e7: JUMP
000012e8: JUMPDEST
000012e9: GT
000012ea: PUSH2 0x12f2
000012ed: JUMPI
000012ee: PUSH1 0x00
000012f0: DUP1
000012f1: REVERT
000012f2: JUMPDEST
000012f3: PUSH2 0x12fc
000012f6: PUSH1 0x00
000012f8: PUSH2 0x0dc6
000012fb: JUMP
000012fc: JUMPDEST
000012fd: CALLER
000012fe: PUSH1 0x00
00001300: DUP2
00001301: DUP2
00001302: MSTORE
00001303: PUSH1 0x08
00001305: PUSH1 0x20
00001307: SWAP1
00001308: DUP2
00001309: MSTORE
0000130a: PUSH1 0x40
0000130c: DUP1
0000130d: DUP4
0000130e: KECCAK256
0000130f: DUP1
00001310: SLOAD
00001311: PUSH9 0x010000000000000000
0000131b: DUP8
0000131c: MUL
0000131d: ADD
0000131e: SWAP1
0000131f: SSTORE
00001320: PUSH1 0x07
00001322: SWAP1
00001323: SWAP2
00001324: MSTORE
00001325: DUP2
00001326: KECCAK256
00001327: DUP1
00001328: SLOAD
00001329: SWAP1
0000132a: DUP3
0000132b: SWAP1
0000132c: SSTORE
0000132d: SWAP1
0000132e: SWAP3
0000132f: ADD
00001330: SWAP5
00001331: POP
00001332: SWAP3
00001333: POP
00001334: PUSH2 0x133e
00001337: SWAP1
00001338: DUP5
00001339: SWAP1
0000133a: PUSH2 0x0562
0000133d: JUMP
0000133e: JUMPDEST
0000133f: SWAP1
00001340: POP
00001341: DUP2
00001342: PUSH1 0x01
00001344: PUSH1 0xa0
00001346: PUSH1 0x02
00001348: EXP
00001349: SUB
0000134a: AND
0000134b: PUSH32 0xbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab3615326458
0000136c: DUP5
0000136d: DUP4
0000136e: PUSH1 0x40
00001370: MLOAD
00001371: DUP1
00001372: DUP4
00001373: DUP2
00001374: MSTORE
00001375: PUSH1 0x20
00001377: ADD
00001378: DUP3
00001379: DUP2
0000137a: MSTORE
0000137b: PUSH1 0x20
0000137d: ADD
0000137e: SWAP3
0000137f: POP
00001380: POP
00001381: POP
00001382: PUSH1 0x40
00001384: MLOAD
00001385: DUP1
00001386: SWAP2
00001387: SUB
00001388: SWAP1
00001389: LOG2
0000138a: POP
0000138b: POP
0000138c: POP
0000138d: JUMP
0000138e: JUMPDEST
0000138f: PUSH1 0x00
00001391: DUP3
00001392: DUP3
00001393: ADD
00001394: DUP4
00001395: DUP2
00001396: LT
00001397: ISZERO
00001398: PUSH2 0x139d
0000139b: JUMPI
0000139c: INVALID
0000139d: JUMPDEST
0000139e: SWAP4
0000139f: SWAP3
000013a0: POP
000013a1: POP
000013a2: POP
000013a3: JUMP
000013a4: JUMPDEST
000013a5: PUSH1 0x00
000013a7: DUP1
000013a8: DUP3
000013a9: DUP5
000013aa: DUP2
000013ab: ISZERO
000013ac: ISZERO
000013ad: PUSH2 0x13b2
000013b0: JUMPI
000013b1: INVALID
000013b2: JUMPDEST
000013b3: DIV
000013b4: SWAP5
000013b5: SWAP4
000013b6: POP
000013b7: POP
000013b8: POP
000013b9: POP
000013ba: JUMP
000013bb: JUMPDEST
000013bc: PUSH1 0x00
000013be: DUP3
000013bf: DUP3
000013c0: GT
000013c1: ISZERO
000013c2: PUSH2 0x13c7
000013c5: JUMPI
000013c6: INVALID
000013c7: JUMPDEST
000013c8: POP
000013c9: SWAP1
000013ca: SUB
000013cb: SWAP1
000013cc: JUMP
000013cd: JUMPDEST
000013ce: PUSH1 0x0a
000013d0: SLOAD
000013d1: PUSH1 0x00
000013d3: SWAP1
000013d4: PUSH13 0x01431e0fae6d7217caa0000000
000013e2: SWAP1
000013e3: DUP3
000013e4: SWAP1
000013e5: PUSH5 0x02540be400
000013eb: PUSH2 0x1452
000013ee: PUSH2 0x144c
000013f1: PUSH20 0x0380d4bd8a8678c1bb542c80deb4800000000000
00001406: DUP9
00001407: MUL
00001408: PUSH9 0x056bc75e2d63100000
00001412: PUSH1 0x02
00001414: DUP7
00001415: EXP
00001416: MUL
00001417: ADD
00001418: PUSH17 0x05e0a1fd2712875988becaad0000000000
0000142a: DUP6
0000142b: MUL
0000142c: ADD
0000142d: PUSH25 0x0197d4df19d605767337e9f14d3eec8920e400000000000000
00001447: ADD
00001448: PUSH2 0x14d1
0000144b: JUMP
0000144c: JUMPDEST
0000144d: DUP6
0000144e: PUSH2 0x13bb
00001451: JUMP
00001452: JUMPDEST
00001453: DUP2
00001454: ISZERO
00001455: ISZERO
00001456: PUSH2 0x145b
00001459: JUMPI
0000145a: INVALID
0000145b: JUMPDEST
0000145c: DIV
0000145d: SUB
0000145e: SWAP5
0000145f: SWAP4
00001460: POP
00001461: POP
00001462: POP
00001463: POP
00001464: JUMP
00001465: JUMPDEST
00001466: PUSH1 0x0a
00001468: SLOAD
00001469: PUSH1 0x00
0000146b: SWAP1
0000146c: PUSH8 0x0de0b6b3a7640000
00001475: DUP4
00001476: DUP2
00001477: ADD
00001478: SWAP2
00001479: DUP2
0000147a: ADD
0000147b: SWAP1
0000147c: DUP4
0000147d: SWAP1
0000147e: PUSH2 0x14be
00001481: PUSH5 0x14f46b0400
00001487: DUP3
00001488: DUP6
00001489: DIV
0000148a: PUSH5 0x02540be400
00001490: MUL
00001491: ADD
00001492: DUP8
00001493: MUL
00001494: PUSH1 0x02
00001496: DUP4
00001497: PUSH8 0x0de0b6b3a763ffff
000014a0: NOT
000014a1: DUP3
000014a2: DUP10
000014a3: EXP
000014a4: DUP12
000014a5: SWAP1
000014a6: SUB
000014a7: ADD
000014a8: DIV
000014a9: PUSH5 0x02540be400
000014af: MUL
000014b0: DUP2
000014b1: ISZERO
000014b2: ISZERO
000014b3: PUSH2 0x14b8
000014b6: JUMPI
000014b7: INVALID
000014b8: JUMPDEST
000014b9: DIV
000014ba: PUSH2 0x13bb
000014bd: JUMP
000014be: JUMPDEST
000014bf: DUP2
000014c0: ISZERO
000014c1: ISZERO
000014c2: PUSH2 0x14c7
000014c5: JUMPI
000014c6: INVALID
000014c7: JUMPDEST
000014c8: DIV
000014c9: SWAP6
000014ca: SWAP5
000014cb: POP
000014cc: POP
000014cd: POP
000014ce: POP
000014cf: POP
000014d0: JUMP
000014d1: JUMPDEST
000014d2: DUP1
000014d3: PUSH1 0x02
000014d5: PUSH1 0x01
000014d7: DUP3
000014d8: ADD
000014d9: DIV
000014da: JUMPDEST
000014db: DUP2
000014dc: DUP2
000014dd: LT
000014de: ISZERO
000014df: PUSH2 0x0e03
000014e2: JUMPI
000014e3: DUP1
000014e4: SWAP2
000014e5: POP
000014e6: PUSH1 0x02
000014e8: DUP2
000014e9: DUP3
000014ea: DUP6
000014eb: DUP2
000014ec: ISZERO
000014ed: ISZERO
000014ee: PUSH2 0x14f3
000014f1: JUMPI
000014f2: INVALID
000014f3: JUMPDEST
000014f4: DIV
000014f5: ADD
000014f6: DUP2
000014f7: ISZERO
000014f8: ISZERO
000014f9: PUSH2 0x14fe
000014fc: JUMPI
000014fd: INVALID
000014fe: JUMPDEST
000014ff: DIV
00001500: SWAP1
00001501: POP
00001502: PUSH2 0x14da
00001505: JUMP
00001506: JUMPDEST
00001507: DUP3
00001508: DUP1
00001509: SLOAD
0000150a: PUSH1 0x01
0000150c: DUP2
0000150d: PUSH1 0x01
0000150f: AND
00001510: ISZERO
00001511: PUSH2 0x0100
00001514: MUL
00001515: SUB
00001516: AND
00001517: PUSH1 0x02
00001519: SWAP1
0000151a: DIV
0000151b: SWAP1
0000151c: PUSH1 0x00
0000151e: MSTORE
0000151f: PUSH1 0x20
00001521: PUSH1 0x00
00001523: KECCAK256
00001524: SWAP1
00001525: PUSH1 0x1f
00001527: ADD
00001528: PUSH1 0x20
0000152a: SWAP1
0000152b: DIV
0000152c: DUP2
0000152d: ADD
0000152e: SWAP3
0000152f: DUP3
00001530: PUSH1 0x1f
00001532: LT
00001533: PUSH2 0x1547
00001536: JUMPI
00001537: DUP1
00001538: MLOAD
00001539: PUSH1 0xff
0000153b: NOT
0000153c: AND
0000153d: DUP4
0000153e: DUP1
0000153f: ADD
00001540: OR
00001541: DUP6
00001542: SSTORE
00001543: PUSH2 0x1574
00001546: JUMP
00001547: JUMPDEST
00001548: DUP3
00001549: DUP1
0000154a: ADD
0000154b: PUSH1 0x01
0000154d: ADD
0000154e: DUP6
0000154f: SSTORE
00001550: DUP3
00001551: ISZERO
00001552: PUSH2 0x1574
00001555: JUMPI
00001556: SWAP2
00001557: DUP3
00001558: ADD
00001559: JUMPDEST
0000155a: DUP3
0000155b: DUP2
0000155c: GT
0000155d: ISZERO
0000155e: PUSH2 0x1574
00001561: JUMPI
00001562: DUP3
00001563: MLOAD
00001564: DUP3
00001565: SSTORE
00001566: SWAP2
00001567: PUSH1 0x20
00001569: ADD
0000156a: SWAP2
0000156b: SWAP1
0000156c: PUSH1 0x01
0000156e: ADD
0000156f: SWAP1
00001570: PUSH2 0x1559
00001573: JUMP
00001574: JUMPDEST
00001575: POP
00001576: PUSH2 0x0eab
00001579: SWAP3
0000157a: PUSH2 0x0c4f
0000157d: SWAP3
0000157e: POP
0000157f: SWAP1
00001580: JUMPDEST
00001581: DUP1
00001582: DUP3
00001583: GT
00001584: ISZERO
00001585: PUSH2 0x0eab
00001588: JUMPI
00001589: PUSH1 0x00
0000158b: DUP2
0000158c: SSTORE
0000158d: PUSH1 0x01
0000158f: ADD
00001590: PUSH2 0x1580
00001593: JUMP
00001594: STOP
00001595: LOG1
00001596: PUSH6 0x627a7a723058
0000159d: KECCAK256
0000159e: ISZERO
0000159f: SWAP16
000015a0: PUSH4 0xefe0c7c6
000015a5: DELEGATECALL
000015a6: UNKNOWN(0x2D)
000015a7: PUSH16 0x34ee0531718c3bb16c521d951b926d35
000015b8: UNKNOWN(0xB2)
000015b9: BASEFEE
000015ba: SWAP6
000015bb: UNKNOWN(0xBC)
000015bc: UNKNOWN(0xAB)
000015bd: UNKNOWN(0xE9)
000015be: STOP
000015bf: UNKNOWN(0x29)

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0x800a58afdfcf86694903d81f3fbc3838a6ef627d3ac7be2b845b768b8451c038
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0x800a58afdfcf86694903d81f3fbc3838a6ef627d3ac7be2b845b768b8451c038",
    "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": "0x040d50d4",
            "selector": "0x040d50d4",
            "calldata_variants": [
                "0x040d50d4",
                "0x040d50d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x10d0ffdd",
            "selector": "0x10d0ffdd",
            "calldata_variants": [
                "0x10d0ffdd",
                "0x10d0ffdd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x22609373",
            "selector": "0x22609373",
            "calldata_variants": [
                "0x22609373",
                "0x226093730000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x27defa1f",
            "selector": "0x27defa1f",
            "calldata_variants": [
                "0x27defa1f",
                "0x27defa1f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3ccfd60b",
            "selector": "0x3ccfd60b",
            "calldata_variants": [
                "0x3ccfd60b",
                "0x3ccfd60b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5541,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x87f376d648c7fa9b2d72098c63ef9c188f256768e173a6c0929b68ebc4a1f9d7
call_targets: 0x510f9a9642ac14ded91629a1aad552be4b24b5f0
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x87f376d648c7fa9b2d72098c63ef9c188f256768e173a6c0929b68ebc4a1f9d7",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x510f9a9642ac14ded91629a1aad552be4b24b5f0"
    ],
    "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": "0x040d50d4",
            "selector": "0x040d50d4",
            "calldata_variants": [
                "0x040d50d4",
                "0x040d50d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x10d0ffdd",
            "selector": "0x10d0ffdd",
            "calldata_variants": [
                "0x10d0ffdd",
                "0x10d0ffdd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x22609373",
            "selector": "0x22609373",
            "calldata_variants": [
                "0x22609373",
                "0x226093730000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x27defa1f",
            "selector": "0x27defa1f",
            "calldata_variants": [
                "0x27defa1f",
                "0x27defa1f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3ccfd60b",
            "selector": "0x3ccfd60b",
            "calldata_variants": [
                "0x3ccfd60b",
                "0x3ccfd60b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3346,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 1,
    "guards_detected": [],
    "untrusted_call_count": 1
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x87f376d648c7fa9b2d72098c63ef9c188f256768e173a6c0929b68ebc4a1f9d7
call_targets: 0x510f9a9642ac14ded91629a1aad552be4b24b5f0
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x87f376d648c7fa9b2d72098c63ef9c188f256768e173a6c0929b68ebc4a1f9d7",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x510f9a9642ac14ded91629a1aad552be4b24b5f0"
    ],
    "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": "0x040d50d4",
            "selector": "0x040d50d4",
            "calldata_variants": [
                "0x040d50d4",
                "0x040d50d40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x10d0ffdd",
            "selector": "0x10d0ffdd",
            "calldata_variants": [
                "0x10d0ffdd",
                "0x10d0ffdd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x22609373",
            "selector": "0x22609373",
            "calldata_variants": [
                "0x22609373",
                "0x226093730000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x27defa1f",
            "selector": "0x27defa1f",
            "calldata_variants": [
                "0x27defa1f",
                "0x27defa1f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3ccfd60b",
            "selector": "0x3ccfd60b",
            "calldata_variants": [
                "0x3ccfd60b",
                "0x3ccfd60b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3346,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 1,
    "guards_detected": []
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
low access_control codex Ambassador whitelist can be bypassed via forced ETH transfers 65 no
view
evidence_json
{
    "evidence": "`antiEarlyWhale` checks `totalEthereumBalance() - _amountOfEthereum` to decide whether to enforce ambassador restrictions and flips `onlyAmbassadors` to false; `totalEthereumBalance()` returns `this.balance`, which can be increased via forced ETH.",
    "locations": [
        "contracts/Contract.sol:51",
        "contracts/Contract.sol:400"
    ],
    "recommendation": "Do not use `address(this).balance` to gate the ambassador phase. Track progress using internal accounting (e.g., cumulative purchases) or require an explicit admin action to end the phase; also consider a separate boolean that is not influenced by forced ETH.",
    "exploit_scenario": "An attacker can deploy a helper contract and `selfdestruct` it to force-send ETH to `ETHPlatinum`, increasing `address(this).balance`. Once the pre-balance exceeds `ambassadorQuota_`, the next call to `purchaseTokens` hits the `else` branch, sets `onlyAmbassadors = false`, and allows non-ambassador purchases even though the whitelist period should still be active. This bypass can be done with minimal cost if the balance is already near the quota."
}