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

Analysis Run

2b376d5a-7463-439f-990e-2ac02e70a615

complete
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 8:03 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 CALL target/value 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
30572 report.consolidate complete 1 / 1 3 months ago
104291 artifact.fetch complete 1 / 3 1 week ago
104292 tool.cast_disasm complete 1 / 3 1 week ago
104293 analysis.bundle complete 1 / 3 1 week ago
104294 capability.graph complete 1 / 3 1 week ago
104295 detector.run complete 1 / 3 1 week ago
104296 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
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
Found 1 low severity issue: legacy forwarder calls omit payload-size checks after deprecation, enabling short-address style parameter shifting for callers that still use the legacy contract.
View stderr
[codex:195970] OpenAI Codex v0.77.0 (research preview)
[codex:195970] --------
[codex:195970] workdir: /tmp/codex-multi-4qi7mjdy
[codex:195970] model: gpt-5.2-codex
[codex:195970] provider: openai
[codex:195970] approval: never
[codex:195970] sandbox: read-only
[codex:195970] reasoning effort: xhigh
[codex:195970] reasoning summaries: auto
[codex:195970] session id: 019b6bb1-6630-7bf2-a3fa-660abf84316d
[codex:195970] --------
[codex:195970] user
[codex:195970] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:195970] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:195970] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:195970] 
[codex:195970] Scope rules:
[codex:195970] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:195970] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:195970] 
[codex:195970] Output MUST be valid JSON matching the provided schema.
[codex:195970] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:195970] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:195970] 
[codex:195970] Output constraints (IMPORTANT):
[codex:195970] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:195970] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:195970] mcp startup: no servers
[codex:195970] 
[codex:195970] thinking
[codex:195970] **Preparing to read AUDIT_BUNDLE.txt**
[codex:195970] exec
[codex:195970] /bin/bash -lc ls in /tmp/codex-multi-4qi7mjdy succeeded in 6ms:
[codex:195970] AUDIT_BUNDLE.txt
[codex:195970] codex-output-schema.json
[codex:195970] contracts
[codex:195970] 
[codex:195970] thinking
[codex:195970] **Reading AUDIT_BUNDLE.txt**
[codex:195970] exec
[codex:195970] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-4qi7mjdy succeeded in 5ms:
[codex:195970] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:195970] 
[codex:195970] ================================================================================
[codex:195970] FILE: contracts/Contract.sol
[codex:195970] ================================================================================
[codex:195970] pragma solidity ^0.4.17;
[codex:195970] 
[codex:195970] /**
[codex:195970]  * @title SafeMath
[codex:195970]  * @dev Math operations with safety checks that throw on error
[codex:195970]  */
[codex:195970] library SafeMath {
[codex:195970]     function mul(uint256 a, uint256 b) internal pure returns (uint256) {
[codex:195970]         if (a == 0) {
[codex:195970]             return 0;
[codex:195970]         }
[codex:195970]         uint256 c = a * b;
[codex:195970]         assert(c / a == b);
[codex:195970]         return c;
[codex:195970]     }
[codex:195970] 
[codex:195970] 
[codex:195970] 
[codex:195970] thinking
[codex:195970] **Analyzing potential vulnerabilities and risks in legacy token contract forwarding**
[codex:195970] thinking
[codex:195970] **Evaluating upgrade forwarding risks and input handling inconsistencies**
[codex:195970] 
[codex:195970] I'm reviewing how deprecated mode impacts balance tracking and function calls, especially how `destroyBlackFunds` uses balances from the upgraded contract but zeroes legacy storage, causing inconsistencies. I'm also looking at upgrade misconfigurations like setting upgraded address to self or an externally owned account, which could freeze transfers. Additionally, I see that in deprecated mode, missing payload size checks on transfer functions might expose the contract to short address attack risks. These nuances feel important for understanding potential subtle issues rather than clear exploits.
[codex:195970] thinking
[codex:195970] **Identifying upgrade path vulnerabilities and payload size bypass**
[codex:195970] 
[codex:195970] I'm noticing that the lack of payload size checks in deprecated mode exposes risk of short address attacks when calls forward to the upgraded contract. There's also the risk that owner-set upgraded addresses may be invalid, causing frozen tokens. While many issues are related to upgrade patterns and owner privileges, these points highlight potential upgradeability and input validation weaknesses worth noting.
[codex:195970] exec
[codex:195970] /bin/bash -lc 'nl -ba contracts/Contract.sol' in /tmp/codex-multi-4qi7mjdy succeeded in 8ms:
[codex:195970]      1	pragma solidity ^0.4.17;
[codex:195970]      2	
[codex:195970]      3	/**
[codex:195970]      4	 * @title SafeMath
[codex:195970]      5	 * @dev Math operations with safety checks that throw on error
[codex:195970]      6	 */
[codex:195970]      7	library SafeMath {
[codex:195970]      8	    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
[codex:195970]      9	        if (a == 0) {
[codex:195970]     10	            return 0;
[codex:195970]     11	        }
[codex:195970]     12	        uint256 c = a * b;
[codex:195970]     13	        assert(c / a == b);
[codex:195970]     14	        return c;
[codex:195970]     15	    }
[codex:195970]     16	
[codex:195970]     17	    function div(uint256 a, uint256 b) internal pure returns (uint256) {
[codex:195970]     18	        // assert(b > 0); // Solidity automatically throws when dividing by 0
[codex:195970]     19	        uint256 c = a / b;
[codex:195970]     20	        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
[codex:195970] 
[codex:195970] thinking
[codex:195970] **Analyzing short address and upgrade risks**
[codex:195970] exec
[codex:195970] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-4qi7mjdy succeeded in 6ms:
[codex:195970] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:195970] 
[codex:195970] thinking
[codex:195970] **Summarizing audit findings with detailed analysis**
[codex:195970] codex
[codex:195970] {"no_findings":false,"summary":"Found 1 low severity issue: legacy forwarder calls omit payload-size checks after deprecation, enabling short-address style parameter shifting for callers that still use the legacy contract.","findings":[{"severity":"low","category":"other","title":"Legacy forwarder lacks payload-size checks after deprecation","exploit_scenario":"Once deprecated is true, users may still interact with the legacy token address. Because transfer/transferFrom in the legacy contract do not enforce msg.data length in the deprecated branch, a caller can craft short calldata (classic short-address attack) that shifts the decoded parameters. Integrations that build calldata manually (e.g., exchange withdrawal systems) could be tricked into sending a larger amount or to a different address than intended while the call still succeeds on the upgraded contract.","recommendation":"Add onlyPayloadSize(2*32) to TetherToken.transfer and onlyPayloadSize(3*32) to TetherToken.transferFrom (or perform an explicit msg.data.length check) before any forwarding logic, so the legacy forwarder enforces the same payload-size protection even after deprecation.","evidence":"TetherToken.transfer and TetherToken.transferFrom omit onlyPayloadSize and directly forward to UpgradedStandardToken when deprecated, so msg.data length is not validated in the deprecated branch.","locations":["contracts/Contract.sol:336","contracts/Contract.sol:346"]}]}
[codex:195970] tokens used
[codex:195970] 29,176
[codex:195970] {"no_findings":false,"summary":"Found 1 low severity issue: legacy forwarder calls omit payload-size checks after deprecation, enabling short-address style parameter shifting for callers that still use the legacy contract.","findings":[{"severity":"low","category":"other","title":"Legacy forwarder lacks payload-size checks after deprecation","exploit_scenario":"Once deprecated is true, users may still interact with the legacy token address. Because transfer/transferFrom in the legacy contract do not enforce msg.data length in the deprecated branch, a caller can craft short calldata (classic short-address attack) that shifts the decoded parameters. Integrations that build calldata manually (e.g., exchange withdrawal systems) could be tricked into sending a larger amount or to a different address than intended while the call still succeeds on the upgraded contract.","recommendation":"Add onlyPayloadSize(2*32) to TetherToken.transfer and onlyPayloadSize(3*32) to TetherToken.transferFrom (or perform an explicit msg.data.length check) before any forwarding logic, so the legacy forwarder enforces the same payload-size protection even after deprecation.","evidence":"TetherToken.transfer and TetherToken.transferFrom omit onlyPayloadSize and directly forward to UpgradedStandardToken when deprecated, so msg.data length is not validated in the deprecated branch.","locations":["contracts/Contract.sol:336","contracts/Contract.sol:346"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T20:03:58.415385+00:00",
        "returncode": 0
    },
    "summary": "Found 1 low severity issue: legacy forwarder calls omit payload-size checks after deprecation, enabling short-address style parameter shifting for callers that still use the legacy contract.",
    "raw_final": {
        "summary": "Found 1 low severity issue: legacy forwarder calls omit payload-size checks after deprecation, enabling short-address style parameter shifting for callers that still use the legacy contract.",
        "findings": [
            {
                "title": "Legacy forwarder lacks payload-size checks after deprecation",
                "category": "other",
                "evidence": "TetherToken.transfer and TetherToken.transferFrom omit onlyPayloadSize and directly forward to UpgradedStandardToken when deprecated, so msg.data length is not validated in the deprecated branch.",
                "severity": "low",
                "locations": [
                    "contracts/Contract.sol:336",
                    "contracts/Contract.sol:346"
                ],
                "recommendation": "Add onlyPayloadSize(2*32) to TetherToken.transfer and onlyPayloadSize(3*32) to TetherToken.transferFrom (or perform an explicit msg.data.length check) before any forwarding logic, so the legacy forwarder enforces the same payload-size protection even after deprecation.",
                "exploit_scenario": "Once deprecated is true, users may still interact with the legacy token address. Because transfer/transferFrom in the legacy contract do not enforce msg.data length in the deprecated branch, a caller can craft short calldata (classic short-address attack) that shifts the decoded parameters. Integrations that build calldata manually (e.g., exchange withdrawal systems) could be tricked into sending a larger amount or to a different address than intended while the call still succeeds on the upgraded contract."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
6
Total opcodes
4901
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0196
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0000002e: SWAP1
0000002f: DIV
00000030: PUSH4 0xffffffff
00000035: AND
00000036: DUP1
00000037: PUSH4 0x06fdde03
0000003c: EQ
0000003d: PUSH2 0x019b
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0x0753c30c
00000047: EQ
00000048: PUSH2 0x0229
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0x095ea7b3
00000052: EQ
00000053: PUSH2 0x0262
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0x0e136b19
0000005d: EQ
0000005e: PUSH2 0x02a4
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0x0ecb93c0
00000068: EQ
00000069: PUSH2 0x02d1
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0x18160ddd
00000073: EQ
00000074: PUSH2 0x030a
00000077: JUMPI
00000078: DUP1
00000079: PUSH4 0x23b872dd
0000007e: EQ
0000007f: PUSH2 0x0333
00000082: JUMPI
00000083: DUP1
00000084: PUSH4 0x26976e3f
00000089: EQ
0000008a: PUSH2 0x0394
0000008d: JUMPI
0000008e: DUP1
0000008f: PUSH4 0x27e235e3
00000094: EQ
00000095: PUSH2 0x03e9
00000098: JUMPI
00000099: DUP1
0000009a: PUSH4 0x313ce567
0000009f: EQ
000000a0: PUSH2 0x0436
000000a3: JUMPI
000000a4: DUP1
000000a5: PUSH4 0x35390714
000000aa: EQ
000000ab: PUSH2 0x045f
000000ae: JUMPI
000000af: DUP1
000000b0: PUSH4 0x3eaaf86b
000000b5: EQ
000000b6: PUSH2 0x0488
000000b9: JUMPI
000000ba: DUP1
000000bb: PUSH4 0x3f4ba83a
000000c0: EQ
000000c1: PUSH2 0x04b1
000000c4: JUMPI
000000c5: DUP1
000000c6: PUSH4 0x59bf1abe
000000cb: EQ
000000cc: PUSH2 0x04c6
000000cf: JUMPI
000000d0: DUP1
000000d1: PUSH4 0x5c658165
000000d6: EQ
000000d7: PUSH2 0x0517
000000da: JUMPI
000000db: DUP1
000000dc: PUSH4 0x5c975abb
000000e1: EQ
000000e2: PUSH2 0x0583
000000e5: JUMPI
000000e6: DUP1
000000e7: PUSH4 0x70a08231
000000ec: EQ
000000ed: PUSH2 0x05b0
000000f0: JUMPI
000000f1: DUP1
000000f2: PUSH4 0x8456cb59
000000f7: EQ
000000f8: PUSH2 0x05fd
000000fb: JUMPI
000000fc: DUP1
000000fd: PUSH4 0x893d20e8
00000102: EQ
00000103: PUSH2 0x0612
00000106: JUMPI
00000107: DUP1
00000108: PUSH4 0x8da5cb5b
0000010d: EQ
0000010e: PUSH2 0x0667
00000111: JUMPI
00000112: DUP1
00000113: PUSH4 0x95d89b41
00000118: EQ
00000119: PUSH2 0x06bc
0000011c: JUMPI
0000011d: DUP1
0000011e: PUSH4 0xa9059cbb
00000123: EQ
00000124: PUSH2 0x074a
00000127: JUMPI
00000128: DUP1
00000129: PUSH4 0xc0324c77
0000012e: EQ
0000012f: PUSH2 0x078c
00000132: JUMPI
00000133: DUP1
00000134: PUSH4 0xcc872b66
00000139: EQ
0000013a: PUSH2 0x07b8
0000013d: JUMPI
0000013e: DUP1
0000013f: PUSH4 0xdb006a75
00000144: EQ
00000145: PUSH2 0x07db
00000148: JUMPI
00000149: DUP1
0000014a: PUSH4 0xdd62ed3e
0000014f: EQ
00000150: PUSH2 0x07fe
00000153: JUMPI
00000154: DUP1
00000155: PUSH4 0xdd644f72
0000015a: EQ
0000015b: PUSH2 0x086a
0000015e: JUMPI
0000015f: DUP1
00000160: PUSH4 0xe47d6060
00000165: EQ
00000166: PUSH2 0x0893
00000169: JUMPI
0000016a: DUP1
0000016b: PUSH4 0xe4997dc5
00000170: EQ
00000171: PUSH2 0x08e4
00000174: JUMPI
00000175: DUP1
00000176: PUSH4 0xe5b5019a
0000017b: EQ
0000017c: PUSH2 0x091d
0000017f: JUMPI
00000180: DUP1
00000181: PUSH4 0xf2fde38b
00000186: EQ
00000187: PUSH2 0x0946
0000018a: JUMPI
0000018b: DUP1
0000018c: PUSH4 0xf3bdc228
00000191: EQ
00000192: PUSH2 0x097f
00000195: JUMPI
00000196: JUMPDEST
00000197: PUSH1 0x00
00000199: DUP1
0000019a: REVERT
0000019b: JUMPDEST
0000019c: CALLVALUE
0000019d: ISZERO
0000019e: PUSH2 0x01a6
000001a1: JUMPI
000001a2: PUSH1 0x00
000001a4: DUP1
000001a5: REVERT
000001a6: JUMPDEST
000001a7: PUSH2 0x01ae
000001aa: PUSH2 0x09b8
000001ad: JUMP
000001ae: JUMPDEST
000001af: PUSH1 0x40
000001b1: MLOAD
000001b2: DUP1
000001b3: DUP1
000001b4: PUSH1 0x20
000001b6: ADD
000001b7: DUP3
000001b8: DUP2
000001b9: SUB
000001ba: DUP3
000001bb: MSTORE
000001bc: DUP4
000001bd: DUP2
000001be: DUP2
000001bf: MLOAD
000001c0: DUP2
000001c1: MSTORE
000001c2: PUSH1 0x20
000001c4: ADD
000001c5: SWAP2
000001c6: POP
000001c7: DUP1
000001c8: MLOAD
000001c9: SWAP1
000001ca: PUSH1 0x20
000001cc: ADD
000001cd: SWAP1
000001ce: DUP1
000001cf: DUP4
000001d0: DUP4
000001d1: PUSH1 0x00
000001d3: JUMPDEST
000001d4: DUP4
000001d5: DUP2
000001d6: LT
000001d7: ISZERO
000001d8: PUSH2 0x01ee
000001db: JUMPI
000001dc: DUP1
000001dd: DUP3
000001de: ADD
000001df: MLOAD
000001e0: DUP2
000001e1: DUP5
000001e2: ADD
000001e3: MSTORE
000001e4: PUSH1 0x20
000001e6: DUP2
000001e7: ADD
000001e8: SWAP1
000001e9: POP
000001ea: PUSH2 0x01d3
000001ed: JUMP
000001ee: JUMPDEST
000001ef: POP
000001f0: POP
000001f1: POP
000001f2: POP
000001f3: SWAP1
000001f4: POP
000001f5: SWAP1
000001f6: DUP2
000001f7: ADD
000001f8: SWAP1
000001f9: PUSH1 0x1f
000001fb: AND
000001fc: DUP1
000001fd: ISZERO
000001fe: PUSH2 0x021b
00000201: JUMPI
00000202: DUP1
00000203: DUP3
00000204: SUB
00000205: DUP1
00000206: MLOAD
00000207: PUSH1 0x01
00000209: DUP4
0000020a: PUSH1 0x20
0000020c: SUB
0000020d: PUSH2 0x0100
00000210: EXP
00000211: SUB
00000212: NOT
00000213: AND
00000214: DUP2
00000215: MSTORE
00000216: PUSH1 0x20
00000218: ADD
00000219: SWAP2
0000021a: POP
0000021b: JUMPDEST
0000021c: POP
0000021d: SWAP3
0000021e: POP
0000021f: POP
00000220: POP
00000221: PUSH1 0x40
00000223: MLOAD
00000224: DUP1
00000225: SWAP2
00000226: SUB
00000227: SWAP1
00000228: RETURN
00000229: JUMPDEST
0000022a: CALLVALUE
0000022b: ISZERO
0000022c: PUSH2 0x0234
0000022f: JUMPI
00000230: PUSH1 0x00
00000232: DUP1
00000233: REVERT
00000234: JUMPDEST
00000235: PUSH2 0x0260
00000238: PUSH1 0x04
0000023a: DUP1
0000023b: DUP1
0000023c: CALLDATALOAD
0000023d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000252: AND
00000253: SWAP1
00000254: PUSH1 0x20
00000256: ADD
00000257: SWAP1
00000258: SWAP2
00000259: SWAP1
0000025a: POP
0000025b: POP
0000025c: PUSH2 0x0a56
0000025f: JUMP
00000260: JUMPDEST
00000261: STOP
00000262: JUMPDEST
00000263: CALLVALUE
00000264: ISZERO
00000265: PUSH2 0x026d
00000268: JUMPI
00000269: PUSH1 0x00
0000026b: DUP1
0000026c: REVERT
0000026d: JUMPDEST
0000026e: PUSH2 0x02a2
00000271: PUSH1 0x04
00000273: DUP1
00000274: DUP1
00000275: CALLDATALOAD
00000276: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000028b: AND
0000028c: SWAP1
0000028d: PUSH1 0x20
0000028f: ADD
00000290: SWAP1
00000291: SWAP2
00000292: SWAP1
00000293: DUP1
00000294: CALLDATALOAD
00000295: SWAP1
00000296: PUSH1 0x20
00000298: ADD
00000299: SWAP1
0000029a: SWAP2
0000029b: SWAP1
0000029c: POP
0000029d: POP
0000029e: PUSH2 0x0b73
000002a1: JUMP
000002a2: JUMPDEST
000002a3: STOP
000002a4: JUMPDEST
000002a5: CALLVALUE
000002a6: ISZERO
000002a7: PUSH2 0x02af
000002aa: JUMPI
000002ab: PUSH1 0x00
000002ad: DUP1
000002ae: REVERT
000002af: JUMPDEST
000002b0: PUSH2 0x02b7
000002b3: PUSH2 0x0cc1
000002b6: JUMP
000002b7: JUMPDEST
000002b8: PUSH1 0x40
000002ba: MLOAD
000002bb: DUP1
000002bc: DUP3
000002bd: ISZERO
000002be: ISZERO
000002bf: ISZERO
000002c0: ISZERO
000002c1: DUP2
000002c2: MSTORE
000002c3: PUSH1 0x20
000002c5: ADD
000002c6: SWAP2
000002c7: POP
000002c8: POP
000002c9: PUSH1 0x40
000002cb: MLOAD
000002cc: DUP1
000002cd: SWAP2
000002ce: SUB
000002cf: SWAP1
000002d0: RETURN
000002d1: JUMPDEST
000002d2: CALLVALUE
000002d3: ISZERO
000002d4: PUSH2 0x02dc
000002d7: JUMPI
000002d8: PUSH1 0x00
000002da: DUP1
000002db: REVERT
000002dc: JUMPDEST
000002dd: PUSH2 0x0308
000002e0: PUSH1 0x04
000002e2: DUP1
000002e3: DUP1
000002e4: CALLDATALOAD
000002e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002fa: AND
000002fb: SWAP1
000002fc: PUSH1 0x20
000002fe: ADD
000002ff: SWAP1
00000300: SWAP2
00000301: SWAP1
00000302: POP
00000303: POP
00000304: PUSH2 0x0cd4
00000307: JUMP
00000308: JUMPDEST
00000309: STOP
0000030a: JUMPDEST
0000030b: CALLVALUE
0000030c: ISZERO
0000030d: PUSH2 0x0315
00000310: JUMPI
00000311: PUSH1 0x00
00000313: DUP1
00000314: REVERT
00000315: JUMPDEST
00000316: PUSH2 0x031d
00000319: PUSH2 0x0ded
0000031c: JUMP
0000031d: JUMPDEST
0000031e: PUSH1 0x40
00000320: MLOAD
00000321: DUP1
00000322: DUP3
00000323: DUP2
00000324: MSTORE
00000325: PUSH1 0x20
00000327: ADD
00000328: SWAP2
00000329: POP
0000032a: POP
0000032b: PUSH1 0x40
0000032d: MLOAD
0000032e: DUP1
0000032f: SWAP2
00000330: SUB
00000331: SWAP1
00000332: RETURN
00000333: JUMPDEST
00000334: CALLVALUE
00000335: ISZERO
00000336: PUSH2 0x033e
00000339: JUMPI
0000033a: PUSH1 0x00
0000033c: DUP1
0000033d: REVERT
0000033e: JUMPDEST
0000033f: PUSH2 0x0392
00000342: PUSH1 0x04
00000344: DUP1
00000345: DUP1
00000346: CALLDATALOAD
00000347: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000035c: AND
0000035d: SWAP1
0000035e: PUSH1 0x20
00000360: ADD
00000361: SWAP1
00000362: SWAP2
00000363: SWAP1
00000364: DUP1
00000365: CALLDATALOAD
00000366: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000037b: AND
0000037c: SWAP1
0000037d: PUSH1 0x20
0000037f: ADD
00000380: SWAP1
00000381: SWAP2
00000382: SWAP1
00000383: DUP1
00000384: CALLDATALOAD
00000385: SWAP1
00000386: PUSH1 0x20
00000388: ADD
00000389: SWAP1
0000038a: SWAP2
0000038b: SWAP1
0000038c: POP
0000038d: POP
0000038e: PUSH2 0x0ebd
00000391: JUMP
00000392: JUMPDEST
00000393: STOP
00000394: JUMPDEST
00000395: CALLVALUE
00000396: ISZERO
00000397: PUSH2 0x039f
0000039a: JUMPI
0000039b: PUSH1 0x00
0000039d: DUP1
0000039e: REVERT
0000039f: JUMPDEST
000003a0: PUSH2 0x03a7
000003a3: PUSH2 0x109d
000003a6: JUMP
000003a7: JUMPDEST
000003a8: PUSH1 0x40
000003aa: MLOAD
000003ab: DUP1
000003ac: DUP3
000003ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003c2: AND
000003c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003d8: AND
000003d9: DUP2
000003da: MSTORE
000003db: PUSH1 0x20
000003dd: ADD
000003de: SWAP2
000003df: POP
000003e0: POP
000003e1: PUSH1 0x40
000003e3: MLOAD
000003e4: DUP1
000003e5: SWAP2
000003e6: SUB
000003e7: SWAP1
000003e8: RETURN
000003e9: JUMPDEST
000003ea: CALLVALUE
000003eb: ISZERO
000003ec: PUSH2 0x03f4
000003ef: JUMPI
000003f0: PUSH1 0x00
000003f2: DUP1
000003f3: REVERT
000003f4: JUMPDEST
000003f5: PUSH2 0x0420
000003f8: PUSH1 0x04
000003fa: DUP1
000003fb: DUP1
000003fc: CALLDATALOAD
000003fd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000412: AND
00000413: SWAP1
00000414: PUSH1 0x20
00000416: ADD
00000417: SWAP1
00000418: SWAP2
00000419: SWAP1
0000041a: POP
0000041b: POP
0000041c: PUSH2 0x10c3
0000041f: JUMP
00000420: JUMPDEST
00000421: PUSH1 0x40
00000423: MLOAD
00000424: DUP1
00000425: DUP3
00000426: DUP2
00000427: MSTORE
00000428: PUSH1 0x20
0000042a: ADD
0000042b: SWAP2
0000042c: POP
0000042d: POP
0000042e: PUSH1 0x40
00000430: MLOAD
00000431: DUP1
00000432: SWAP2
00000433: SUB
00000434: SWAP1
00000435: RETURN
00000436: JUMPDEST
00000437: CALLVALUE
00000438: ISZERO
00000439: PUSH2 0x0441
0000043c: JUMPI
0000043d: PUSH1 0x00
0000043f: DUP1
00000440: REVERT
00000441: JUMPDEST
00000442: PUSH2 0x0449
00000445: PUSH2 0x10db
00000448: JUMP
00000449: JUMPDEST
0000044a: PUSH1 0x40
0000044c: MLOAD
0000044d: DUP1
0000044e: DUP3
0000044f: DUP2
00000450: MSTORE
00000451: PUSH1 0x20
00000453: ADD
00000454: SWAP2
00000455: POP
00000456: POP
00000457: PUSH1 0x40
00000459: MLOAD
0000045a: DUP1
0000045b: SWAP2
0000045c: SUB
0000045d: SWAP1
0000045e: RETURN
0000045f: JUMPDEST
00000460: CALLVALUE
00000461: ISZERO
00000462: PUSH2 0x046a
00000465: JUMPI
00000466: PUSH1 0x00
00000468: DUP1
00000469: REVERT
0000046a: JUMPDEST
0000046b: PUSH2 0x0472
0000046e: PUSH2 0x10e1
00000471: JUMP
00000472: JUMPDEST
00000473: PUSH1 0x40
00000475: MLOAD
00000476: DUP1
00000477: DUP3
00000478: DUP2
00000479: MSTORE
0000047a: PUSH1 0x20
0000047c: ADD
0000047d: SWAP2
0000047e: POP
0000047f: POP
00000480: PUSH1 0x40
00000482: MLOAD
00000483: DUP1
00000484: SWAP2
00000485: SUB
00000486: SWAP1
00000487: RETURN
00000488: JUMPDEST
00000489: CALLVALUE
0000048a: ISZERO
0000048b: PUSH2 0x0493
0000048e: JUMPI
0000048f: PUSH1 0x00
00000491: DUP1
00000492: REVERT
00000493: JUMPDEST
00000494: PUSH2 0x049b
00000497: PUSH2 0x10e7
0000049a: JUMP
0000049b: JUMPDEST
0000049c: PUSH1 0x40
0000049e: MLOAD
0000049f: DUP1
000004a0: DUP3
000004a1: DUP2
000004a2: MSTORE
000004a3: PUSH1 0x20
000004a5: ADD
000004a6: SWAP2
000004a7: POP
000004a8: POP
000004a9: PUSH1 0x40
000004ab: MLOAD
000004ac: DUP1
000004ad: SWAP2
000004ae: SUB
000004af: SWAP1
000004b0: RETURN
000004b1: JUMPDEST
000004b2: CALLVALUE
000004b3: ISZERO
000004b4: PUSH2 0x04bc
000004b7: JUMPI
000004b8: PUSH1 0x00
000004ba: DUP1
000004bb: REVERT
000004bc: JUMPDEST
000004bd: PUSH2 0x04c4
000004c0: PUSH2 0x10ed
000004c3: JUMP
000004c4: JUMPDEST
000004c5: STOP
000004c6: JUMPDEST
000004c7: CALLVALUE
000004c8: ISZERO
000004c9: PUSH2 0x04d1
000004cc: JUMPI
000004cd: PUSH1 0x00
000004cf: DUP1
000004d0: REVERT
000004d1: JUMPDEST
000004d2: PUSH2 0x04fd
000004d5: PUSH1 0x04
000004d7: DUP1
000004d8: DUP1
000004d9: CALLDATALOAD
000004da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004ef: AND
000004f0: SWAP1
000004f1: PUSH1 0x20
000004f3: ADD
000004f4: SWAP1
000004f5: SWAP2
000004f6: SWAP1
000004f7: POP
000004f8: POP
000004f9: PUSH2 0x11ab
000004fc: JUMP
000004fd: JUMPDEST
000004fe: PUSH1 0x40
00000500: MLOAD
00000501: DUP1
00000502: DUP3
00000503: ISZERO
00000504: ISZERO
00000505: ISZERO
00000506: ISZERO
00000507: DUP2
00000508: MSTORE
00000509: PUSH1 0x20
0000050b: ADD
0000050c: SWAP2
0000050d: POP
0000050e: POP
0000050f: PUSH1 0x40
00000511: MLOAD
00000512: DUP1
00000513: SWAP2
00000514: SUB
00000515: SWAP1
00000516: RETURN
00000517: JUMPDEST
00000518: CALLVALUE
00000519: ISZERO
0000051a: PUSH2 0x0522
0000051d: JUMPI
0000051e: PUSH1 0x00
00000520: DUP1
00000521: REVERT
00000522: JUMPDEST
00000523: PUSH2 0x056d
00000526: PUSH1 0x04
00000528: DUP1
00000529: DUP1
0000052a: CALLDATALOAD
0000052b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000540: AND
00000541: SWAP1
00000542: PUSH1 0x20
00000544: ADD
00000545: SWAP1
00000546: SWAP2
00000547: SWAP1
00000548: DUP1
00000549: CALLDATALOAD
0000054a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000055f: AND
00000560: SWAP1
00000561: PUSH1 0x20
00000563: ADD
00000564: SWAP1
00000565: SWAP2
00000566: SWAP1
00000567: POP
00000568: POP
00000569: PUSH2 0x1201
0000056c: JUMP
0000056d: JUMPDEST
0000056e: PUSH1 0x40
00000570: MLOAD
00000571: DUP1
00000572: DUP3
00000573: DUP2
00000574: MSTORE
00000575: PUSH1 0x20
00000577: ADD
00000578: SWAP2
00000579: POP
0000057a: POP
0000057b: PUSH1 0x40
0000057d: MLOAD
0000057e: DUP1
0000057f: SWAP2
00000580: SUB
00000581: SWAP1
00000582: RETURN
00000583: JUMPDEST
00000584: CALLVALUE
00000585: ISZERO
00000586: PUSH2 0x058e
00000589: JUMPI
0000058a: PUSH1 0x00
0000058c: DUP1
0000058d: REVERT
0000058e: JUMPDEST
0000058f: PUSH2 0x0596
00000592: PUSH2 0x1226
00000595: JUMP
00000596: JUMPDEST
00000597: PUSH1 0x40
00000599: MLOAD
0000059a: DUP1
0000059b: DUP3
0000059c: ISZERO
0000059d: ISZERO
0000059e: ISZERO
0000059f: ISZERO
000005a0: DUP2
000005a1: MSTORE
000005a2: PUSH1 0x20
000005a4: ADD
000005a5: SWAP2
000005a6: POP
000005a7: POP
000005a8: PUSH1 0x40
000005aa: MLOAD
000005ab: DUP1
000005ac: SWAP2
000005ad: SUB
000005ae: SWAP1
000005af: RETURN
000005b0: JUMPDEST
000005b1: CALLVALUE
000005b2: ISZERO
000005b3: PUSH2 0x05bb
000005b6: JUMPI
000005b7: PUSH1 0x00
000005b9: DUP1
000005ba: REVERT
000005bb: JUMPDEST
000005bc: PUSH2 0x05e7
000005bf: PUSH1 0x04
000005c1: DUP1
000005c2: DUP1
000005c3: CALLDATALOAD
000005c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005d9: AND
000005da: SWAP1
000005db: PUSH1 0x20
000005dd: ADD
000005de: SWAP1
000005df: SWAP2
000005e0: SWAP1
000005e1: POP
000005e2: POP
000005e3: PUSH2 0x1239
000005e6: JUMP
000005e7: JUMPDEST
000005e8: PUSH1 0x40
000005ea: MLOAD
000005eb: DUP1
000005ec: DUP3
000005ed: DUP2
000005ee: MSTORE
000005ef: PUSH1 0x20
000005f1: ADD
000005f2: SWAP2
000005f3: POP
000005f4: POP
000005f5: PUSH1 0x40
000005f7: MLOAD
000005f8: DUP1
000005f9: SWAP2
000005fa: SUB
000005fb: SWAP1
000005fc: RETURN
000005fd: JUMPDEST
000005fe: CALLVALUE
000005ff: ISZERO
00000600: PUSH2 0x0608
00000603: JUMPI
00000604: PUSH1 0x00
00000606: DUP1
00000607: REVERT
00000608: JUMPDEST
00000609: PUSH2 0x0610
0000060c: PUSH2 0x1348
0000060f: JUMP
00000610: JUMPDEST
00000611: STOP
00000612: JUMPDEST
00000613: CALLVALUE
00000614: ISZERO
00000615: PUSH2 0x061d
00000618: JUMPI
00000619: PUSH1 0x00
0000061b: DUP1
0000061c: REVERT
0000061d: JUMPDEST
0000061e: PUSH2 0x0625
00000621: PUSH2 0x1408
00000624: JUMP
00000625: JUMPDEST
00000626: PUSH1 0x40
00000628: MLOAD
00000629: DUP1
0000062a: DUP3
0000062b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000640: AND
00000641: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000656: AND
00000657: DUP2
00000658: MSTORE
00000659: PUSH1 0x20
0000065b: ADD
0000065c: SWAP2
0000065d: POP
0000065e: POP
0000065f: PUSH1 0x40
00000661: MLOAD
00000662: DUP1
00000663: SWAP2
00000664: SUB
00000665: SWAP1
00000666: RETURN
00000667: JUMPDEST
00000668: CALLVALUE
00000669: ISZERO
0000066a: PUSH2 0x0672
0000066d: JUMPI
0000066e: PUSH1 0x00
00000670: DUP1
00000671: REVERT
00000672: JUMPDEST
00000673: PUSH2 0x067a
00000676: PUSH2 0x1431
00000679: JUMP
0000067a: JUMPDEST
0000067b: PUSH1 0x40
0000067d: MLOAD
0000067e: DUP1
0000067f: DUP3
00000680: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000695: AND
00000696: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006ab: AND
000006ac: DUP2
000006ad: MSTORE
000006ae: PUSH1 0x20
000006b0: ADD
000006b1: SWAP2
000006b2: POP
000006b3: POP
000006b4: PUSH1 0x40
000006b6: MLOAD
000006b7: DUP1
000006b8: SWAP2
000006b9: SUB
000006ba: SWAP1
000006bb: RETURN
000006bc: JUMPDEST
000006bd: CALLVALUE
000006be: ISZERO
000006bf: PUSH2 0x06c7
000006c2: JUMPI
000006c3: PUSH1 0x00
000006c5: DUP1
000006c6: REVERT
000006c7: JUMPDEST
000006c8: PUSH2 0x06cf
000006cb: PUSH2 0x1456
000006ce: JUMP
000006cf: JUMPDEST
000006d0: PUSH1 0x40
000006d2: MLOAD
000006d3: DUP1
000006d4: DUP1
000006d5: PUSH1 0x20
000006d7: ADD
000006d8: DUP3
000006d9: DUP2
000006da: SUB
000006db: DUP3
000006dc: MSTORE
000006dd: DUP4
000006de: DUP2
000006df: DUP2
000006e0: MLOAD
000006e1: DUP2
000006e2: MSTORE
000006e3: PUSH1 0x20
000006e5: ADD
000006e6: SWAP2
000006e7: POP
000006e8: DUP1
000006e9: MLOAD
000006ea: SWAP1
000006eb: PUSH1 0x20
000006ed: ADD
000006ee: SWAP1
000006ef: DUP1
000006f0: DUP4
000006f1: DUP4
000006f2: PUSH1 0x00
000006f4: JUMPDEST
000006f5: DUP4
000006f6: DUP2
000006f7: LT
000006f8: ISZERO
000006f9: PUSH2 0x070f
000006fc: JUMPI
000006fd: DUP1
000006fe: DUP3
000006ff: ADD
00000700: MLOAD
00000701: DUP2
00000702: DUP5
00000703: ADD
00000704: MSTORE
00000705: PUSH1 0x20
00000707: DUP2
00000708: ADD
00000709: SWAP1
0000070a: POP
0000070b: PUSH2 0x06f4
0000070e: JUMP
0000070f: JUMPDEST
00000710: POP
00000711: POP
00000712: POP
00000713: POP
00000714: SWAP1
00000715: POP
00000716: SWAP1
00000717: DUP2
00000718: ADD
00000719: SWAP1
0000071a: PUSH1 0x1f
0000071c: AND
0000071d: DUP1
0000071e: ISZERO
0000071f: PUSH2 0x073c
00000722: JUMPI
00000723: DUP1
00000724: DUP3
00000725: SUB
00000726: DUP1
00000727: MLOAD
00000728: PUSH1 0x01
0000072a: DUP4
0000072b: PUSH1 0x20
0000072d: SUB
0000072e: PUSH2 0x0100
00000731: EXP
00000732: SUB
00000733: NOT
00000734: AND
00000735: DUP2
00000736: MSTORE
00000737: PUSH1 0x20
00000739: ADD
0000073a: SWAP2
0000073b: POP
0000073c: JUMPDEST
0000073d: POP
0000073e: SWAP3
0000073f: POP
00000740: POP
00000741: POP
00000742: PUSH1 0x40
00000744: MLOAD
00000745: DUP1
00000746: SWAP2
00000747: SUB
00000748: SWAP1
00000749: RETURN
0000074a: JUMPDEST
0000074b: CALLVALUE
0000074c: ISZERO
0000074d: PUSH2 0x0755
00000750: JUMPI
00000751: PUSH1 0x00
00000753: DUP1
00000754: REVERT
00000755: JUMPDEST
00000756: PUSH2 0x078a
00000759: PUSH1 0x04
0000075b: DUP1
0000075c: DUP1
0000075d: CALLDATALOAD
0000075e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000773: AND
00000774: SWAP1
00000775: PUSH1 0x20
00000777: ADD
00000778: SWAP1
00000779: SWAP2
0000077a: SWAP1
0000077b: DUP1
0000077c: CALLDATALOAD
0000077d: SWAP1
0000077e: PUSH1 0x20
00000780: ADD
00000781: SWAP1
00000782: SWAP2
00000783: SWAP1
00000784: POP
00000785: POP
00000786: PUSH2 0x14f4
00000789: JUMP
0000078a: JUMPDEST
0000078b: STOP
0000078c: JUMPDEST
0000078d: CALLVALUE
0000078e: ISZERO
0000078f: PUSH2 0x0797
00000792: JUMPI
00000793: PUSH1 0x00
00000795: DUP1
00000796: REVERT
00000797: JUMPDEST
00000798: PUSH2 0x07b6
0000079b: PUSH1 0x04
0000079d: DUP1
0000079e: DUP1
0000079f: CALLDATALOAD
000007a0: SWAP1
000007a1: PUSH1 0x20
000007a3: ADD
000007a4: SWAP1
000007a5: SWAP2
000007a6: SWAP1
000007a7: DUP1
000007a8: CALLDATALOAD
000007a9: SWAP1
000007aa: PUSH1 0x20
000007ac: ADD
000007ad: SWAP1
000007ae: SWAP2
000007af: SWAP1
000007b0: POP
000007b1: POP
000007b2: PUSH2 0x169e
000007b5: JUMP
000007b6: JUMPDEST
000007b7: STOP
000007b8: JUMPDEST
000007b9: CALLVALUE
000007ba: ISZERO
000007bb: PUSH2 0x07c3
000007be: JUMPI
000007bf: PUSH1 0x00
000007c1: DUP1
000007c2: REVERT
000007c3: JUMPDEST
000007c4: PUSH2 0x07d9
000007c7: PUSH1 0x04
000007c9: DUP1
000007ca: DUP1
000007cb: CALLDATALOAD
000007cc: SWAP1
000007cd: PUSH1 0x20
000007cf: ADD
000007d0: SWAP1
000007d1: SWAP2
000007d2: SWAP1
000007d3: POP
000007d4: POP
000007d5: PUSH2 0x1783
000007d8: JUMP
000007d9: JUMPDEST
000007da: STOP
000007db: JUMPDEST
000007dc: CALLVALUE
000007dd: ISZERO
000007de: PUSH2 0x07e6
000007e1: JUMPI
000007e2: PUSH1 0x00
000007e4: DUP1
000007e5: REVERT
000007e6: JUMPDEST
000007e7: PUSH2 0x07fc
000007ea: PUSH1 0x04
000007ec: DUP1
000007ed: DUP1
000007ee: CALLDATALOAD
000007ef: SWAP1
000007f0: PUSH1 0x20
000007f2: ADD
000007f3: SWAP1
000007f4: SWAP2
000007f5: SWAP1
000007f6: POP
000007f7: POP
000007f8: PUSH2 0x197a
000007fb: JUMP
000007fc: JUMPDEST
000007fd: STOP
000007fe: JUMPDEST
000007ff: CALLVALUE
00000800: ISZERO
00000801: PUSH2 0x0809
00000804: JUMPI
00000805: PUSH1 0x00
00000807: DUP1
00000808: REVERT
00000809: JUMPDEST
0000080a: PUSH2 0x0854
0000080d: PUSH1 0x04
0000080f: DUP1
00000810: DUP1
00000811: CALLDATALOAD
00000812: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000827: AND
00000828: SWAP1
00000829: PUSH1 0x20
0000082b: ADD
0000082c: SWAP1
0000082d: SWAP2
0000082e: SWAP1
0000082f: DUP1
00000830: CALLDATALOAD
00000831: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000846: AND
00000847: SWAP1
00000848: PUSH1 0x20
0000084a: ADD
0000084b: SWAP1
0000084c: SWAP2
0000084d: SWAP1
0000084e: POP
0000084f: POP
00000850: PUSH2 0x1b0d
00000853: JUMP
00000854: JUMPDEST
00000855: PUSH1 0x40
00000857: MLOAD
00000858: DUP1
00000859: DUP3
0000085a: DUP2
0000085b: MSTORE
0000085c: PUSH1 0x20
0000085e: ADD
0000085f: SWAP2
00000860: POP
00000861: POP
00000862: PUSH1 0x40
00000864: MLOAD
00000865: DUP1
00000866: SWAP2
00000867: SUB
00000868: SWAP1
00000869: RETURN
0000086a: JUMPDEST
0000086b: CALLVALUE
0000086c: ISZERO
0000086d: PUSH2 0x0875
00000870: JUMPI
00000871: PUSH1 0x00
00000873: DUP1
00000874: REVERT
00000875: JUMPDEST
00000876: PUSH2 0x087d
00000879: PUSH2 0x1c52
0000087c: JUMP
0000087d: JUMPDEST
0000087e: PUSH1 0x40
00000880: MLOAD
00000881: DUP1
00000882: DUP3
00000883: DUP2
00000884: MSTORE
00000885: PUSH1 0x20
00000887: ADD
00000888: SWAP2
00000889: POP
0000088a: POP
0000088b: PUSH1 0x40
0000088d: MLOAD
0000088e: DUP1
0000088f: SWAP2
00000890: SUB
00000891: SWAP1
00000892: RETURN
00000893: JUMPDEST
00000894: CALLVALUE
00000895: ISZERO
00000896: PUSH2 0x089e
00000899: JUMPI
0000089a: PUSH1 0x00
0000089c: DUP1
0000089d: REVERT
0000089e: JUMPDEST
0000089f: PUSH2 0x08ca
000008a2: PUSH1 0x04
000008a4: DUP1
000008a5: DUP1
000008a6: CALLDATALOAD
000008a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008bc: AND
000008bd: SWAP1
000008be: PUSH1 0x20
000008c0: ADD
000008c1: SWAP1
000008c2: SWAP2
000008c3: SWAP1
000008c4: POP
000008c5: POP
000008c6: PUSH2 0x1c58
000008c9: JUMP
000008ca: JUMPDEST
000008cb: PUSH1 0x40
000008cd: MLOAD
000008ce: DUP1
000008cf: DUP3
000008d0: ISZERO
000008d1: ISZERO
000008d2: ISZERO
000008d3: ISZERO
000008d4: DUP2
000008d5: MSTORE
000008d6: PUSH1 0x20
000008d8: ADD
000008d9: SWAP2
000008da: POP
000008db: POP
000008dc: PUSH1 0x40
000008de: MLOAD
000008df: DUP1
000008e0: SWAP2
000008e1: SUB
000008e2: SWAP1
000008e3: RETURN
000008e4: JUMPDEST
000008e5: CALLVALUE
000008e6: ISZERO
000008e7: PUSH2 0x08ef
000008ea: JUMPI
000008eb: PUSH1 0x00
000008ed: DUP1
000008ee: REVERT
000008ef: JUMPDEST
000008f0: PUSH2 0x091b
000008f3: PUSH1 0x04
000008f5: DUP1
000008f6: DUP1
000008f7: CALLDATALOAD
000008f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000090d: AND
0000090e: SWAP1
0000090f: PUSH1 0x20
00000911: ADD
00000912: SWAP1
00000913: SWAP2
00000914: SWAP1
00000915: POP
00000916: POP
00000917: PUSH2 0x1c78
0000091a: JUMP
0000091b: JUMPDEST
0000091c: STOP
0000091d: JUMPDEST
0000091e: CALLVALUE
0000091f: ISZERO
00000920: PUSH2 0x0928
00000923: JUMPI
00000924: PUSH1 0x00
00000926: DUP1
00000927: REVERT
00000928: JUMPDEST
00000929: PUSH2 0x0930
0000092c: PUSH2 0x1d91
0000092f: JUMP
00000930: JUMPDEST
00000931: PUSH1 0x40
00000933: MLOAD
00000934: DUP1
00000935: DUP3
00000936: DUP2
00000937: MSTORE
00000938: PUSH1 0x20
0000093a: ADD
0000093b: SWAP2
0000093c: POP
0000093d: POP
0000093e: PUSH1 0x40
00000940: MLOAD
00000941: DUP1
00000942: SWAP2
00000943: SUB
00000944: SWAP1
00000945: RETURN
00000946: JUMPDEST
00000947: CALLVALUE
00000948: ISZERO
00000949: PUSH2 0x0951
0000094c: JUMPI
0000094d: PUSH1 0x00
0000094f: DUP1
00000950: REVERT
00000951: JUMPDEST
00000952: PUSH2 0x097d
00000955: PUSH1 0x04
00000957: DUP1
00000958: DUP1
00000959: CALLDATALOAD
0000095a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000096f: AND
00000970: SWAP1
00000971: PUSH1 0x20
00000973: ADD
00000974: SWAP1
00000975: SWAP2
00000976: SWAP1
00000977: POP
00000978: POP
00000979: PUSH2 0x1db5
0000097c: JUMP
0000097d: JUMPDEST
0000097e: STOP
0000097f: JUMPDEST
00000980: CALLVALUE
00000981: ISZERO
00000982: PUSH2 0x098a
00000985: JUMPI
00000986: PUSH1 0x00
00000988: DUP1
00000989: REVERT
0000098a: JUMPDEST
0000098b: PUSH2 0x09b6
0000098e: PUSH1 0x04
00000990: DUP1
00000991: DUP1
00000992: CALLDATALOAD
00000993: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009a8: AND
000009a9: SWAP1
000009aa: PUSH1 0x20
000009ac: ADD
000009ad: SWAP1
000009ae: SWAP2
000009af: SWAP1
000009b0: POP
000009b1: POP
000009b2: PUSH2 0x1e8a
000009b5: JUMP
000009b6: JUMPDEST
000009b7: STOP
000009b8: JUMPDEST
000009b9: PUSH1 0x07
000009bb: DUP1
000009bc: SLOAD
000009bd: PUSH1 0x01
000009bf: DUP2
000009c0: PUSH1 0x01
000009c2: AND
000009c3: ISZERO
000009c4: PUSH2 0x0100
000009c7: MUL
000009c8: SUB
000009c9: AND
000009ca: PUSH1 0x02
000009cc: SWAP1
000009cd: DIV
000009ce: DUP1
000009cf: PUSH1 0x1f
000009d1: ADD
000009d2: PUSH1 0x20
000009d4: DUP1
000009d5: SWAP2
000009d6: DIV
000009d7: MUL
000009d8: PUSH1 0x20
000009da: ADD
000009db: PUSH1 0x40
000009dd: MLOAD
000009de: SWAP1
000009df: DUP2
000009e0: ADD
000009e1: PUSH1 0x40
000009e3: MSTORE
000009e4: DUP1
000009e5: SWAP3
000009e6: SWAP2
000009e7: SWAP1
000009e8: DUP2
000009e9: DUP2
000009ea: MSTORE
000009eb: PUSH1 0x20
000009ed: ADD
000009ee: DUP3
000009ef: DUP1
000009f0: SLOAD
000009f1: PUSH1 0x01
000009f3: DUP2
000009f4: PUSH1 0x01
000009f6: AND
000009f7: ISZERO
000009f8: PUSH2 0x0100
000009fb: MUL
000009fc: SUB
000009fd: AND
000009fe: PUSH1 0x02
00000a00: SWAP1
00000a01: DIV
00000a02: DUP1
00000a03: ISZERO
00000a04: PUSH2 0x0a4e
00000a07: JUMPI
00000a08: DUP1
00000a09: PUSH1 0x1f
00000a0b: LT
00000a0c: PUSH2 0x0a23
00000a0f: JUMPI
00000a10: PUSH2 0x0100
00000a13: DUP1
00000a14: DUP4
00000a15: SLOAD
00000a16: DIV
00000a17: MUL
00000a18: DUP4
00000a19: MSTORE
00000a1a: SWAP2
00000a1b: PUSH1 0x20
00000a1d: ADD
00000a1e: SWAP2
00000a1f: PUSH2 0x0a4e
00000a22: JUMP
00000a23: JUMPDEST
00000a24: DUP3
00000a25: ADD
00000a26: SWAP2
00000a27: SWAP1
00000a28: PUSH1 0x00
00000a2a: MSTORE
00000a2b: PUSH1 0x20
00000a2d: PUSH1 0x00
00000a2f: KECCAK256
00000a30: SWAP1
00000a31: JUMPDEST
00000a32: DUP2
00000a33: SLOAD
00000a34: DUP2
00000a35: MSTORE
00000a36: SWAP1
00000a37: PUSH1 0x01
00000a39: ADD
00000a3a: SWAP1
00000a3b: PUSH1 0x20
00000a3d: ADD
00000a3e: DUP1
00000a3f: DUP4
00000a40: GT
00000a41: PUSH2 0x0a31
00000a44: JUMPI
00000a45: DUP3
00000a46: SWAP1
00000a47: SUB
00000a48: PUSH1 0x1f
00000a4a: AND
00000a4b: DUP3
00000a4c: ADD
00000a4d: SWAP2
00000a4e: JUMPDEST
00000a4f: POP
00000a50: POP
00000a51: POP
00000a52: POP
00000a53: POP
00000a54: DUP2
00000a55: JUMP
00000a56: JUMPDEST
00000a57: PUSH1 0x00
00000a59: DUP1
00000a5a: SWAP1
00000a5b: SLOAD
00000a5c: SWAP1
00000a5d: PUSH2 0x0100
00000a60: EXP
00000a61: SWAP1
00000a62: DIV
00000a63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a78: AND
00000a79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a8e: AND
00000a8f: CALLER
00000a90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000aa5: AND
00000aa6: EQ
00000aa7: ISZERO
00000aa8: ISZERO
00000aa9: PUSH2 0x0ab1
00000aac: JUMPI
00000aad: PUSH1 0x00
00000aaf: DUP1
00000ab0: REVERT
00000ab1: JUMPDEST
00000ab2: PUSH1 0x01
00000ab4: PUSH1 0x0a
00000ab6: PUSH1 0x14
00000ab8: PUSH2 0x0100
00000abb: EXP
00000abc: DUP2
00000abd: SLOAD
00000abe: DUP2
00000abf: PUSH1 0xff
00000ac1: MUL
00000ac2: NOT
00000ac3: AND
00000ac4: SWAP1
00000ac5: DUP4
00000ac6: ISZERO
00000ac7: ISZERO
00000ac8: MUL
00000ac9: OR
00000aca: SWAP1
00000acb: SSTORE
00000acc: POP
00000acd: DUP1
00000ace: PUSH1 0x0a
00000ad0: PUSH1 0x00
00000ad2: PUSH2 0x0100
00000ad5: EXP
00000ad6: DUP2
00000ad7: SLOAD
00000ad8: DUP2
00000ad9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000aee: MUL
00000aef: NOT
00000af0: AND
00000af1: SWAP1
00000af2: DUP4
00000af3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b08: AND
00000b09: MUL
00000b0a: OR
00000b0b: SWAP1
00000b0c: SSTORE
00000b0d: POP
00000b0e: PUSH32 0xcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e
00000b2f: DUP2
00000b30: PUSH1 0x40
00000b32: MLOAD
00000b33: DUP1
00000b34: DUP3
00000b35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b4a: AND
00000b4b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b60: AND
00000b61: DUP2
00000b62: MSTORE
00000b63: PUSH1 0x20
00000b65: ADD
00000b66: SWAP2
00000b67: POP
00000b68: POP
00000b69: PUSH1 0x40
00000b6b: MLOAD
00000b6c: DUP1
00000b6d: SWAP2
00000b6e: SUB
00000b6f: SWAP1
00000b70: LOG1
00000b71: POP
00000b72: JUMP
00000b73: JUMPDEST
00000b74: PUSH1 0x40
00000b76: PUSH1 0x04
00000b78: DUP2
00000b79: ADD
00000b7a: PUSH1 0x00
00000b7c: CALLDATASIZE
00000b7d: SWAP1
00000b7e: POP
00000b7f: LT
00000b80: ISZERO
00000b81: ISZERO
00000b82: ISZERO
00000b83: PUSH2 0x0b8b
00000b86: JUMPI
00000b87: PUSH1 0x00
00000b89: DUP1
00000b8a: REVERT
00000b8b: JUMPDEST
00000b8c: PUSH1 0x0a
00000b8e: PUSH1 0x14
00000b90: SWAP1
00000b91: SLOAD
00000b92: SWAP1
00000b93: PUSH2 0x0100
00000b96: EXP
00000b97: SWAP1
00000b98: DIV
00000b99: PUSH1 0xff
00000b9b: AND
00000b9c: ISZERO
00000b9d: PUSH2 0x0cb1
00000ba0: JUMPI
00000ba1: PUSH1 0x0a
00000ba3: PUSH1 0x00
00000ba5: SWAP1
00000ba6: SLOAD
00000ba7: SWAP1
00000ba8: PUSH2 0x0100
00000bab: EXP
00000bac: SWAP1
00000bad: DIV
00000bae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bc3: AND
00000bc4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bd9: AND
00000bda: PUSH4 0xaee92d33
00000bdf: CALLER
00000be0: DUP6
00000be1: DUP6
00000be2: PUSH1 0x40
00000be4: MLOAD
00000be5: DUP5
00000be6: PUSH4 0xffffffff
00000beb: AND
00000bec: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000c0a: MUL
00000c0b: DUP2
00000c0c: MSTORE
00000c0d: PUSH1 0x04
00000c0f: ADD
00000c10: DUP1
00000c11: DUP5
00000c12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c27: AND
00000c28: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c3d: AND
00000c3e: DUP2
00000c3f: MSTORE
00000c40: PUSH1 0x20
00000c42: ADD
00000c43: DUP4
00000c44: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c59: AND
00000c5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c6f: AND
00000c70: DUP2
00000c71: MSTORE
00000c72: PUSH1 0x20
00000c74: ADD
00000c75: DUP3
00000c76: DUP2
00000c77: MSTORE
00000c78: PUSH1 0x20
00000c7a: ADD
00000c7b: SWAP4
00000c7c: POP
00000c7d: POP
00000c7e: POP
00000c7f: POP
00000c80: PUSH1 0x00
00000c82: PUSH1 0x40
00000c84: MLOAD
00000c85: DUP1
00000c86: DUP4
00000c87: SUB
00000c88: DUP2
00000c89: PUSH1 0x00
00000c8b: DUP8
00000c8c: DUP1
00000c8d: EXTCODESIZE
00000c8e: ISZERO
00000c8f: ISZERO
00000c90: PUSH2 0x0c98
00000c93: JUMPI
00000c94: PUSH1 0x00
00000c96: DUP1
00000c97: REVERT
00000c98: JUMPDEST
00000c99: PUSH2 0x02c6
00000c9c: GAS
00000c9d: SUB
00000c9e: CALL
00000c9f: ISZERO
00000ca0: ISZERO
00000ca1: PUSH2 0x0ca9
00000ca4: JUMPI
00000ca5: PUSH1 0x00
00000ca7: DUP1
00000ca8: REVERT
00000ca9: JUMPDEST
00000caa: POP
00000cab: POP
00000cac: POP
00000cad: PUSH2 0x0cbc
00000cb0: JUMP
00000cb1: JUMPDEST
00000cb2: PUSH2 0x0cbb
00000cb5: DUP4
00000cb6: DUP4
00000cb7: PUSH2 0x200e
00000cba: JUMP
00000cbb: JUMPDEST
00000cbc: JUMPDEST
00000cbd: POP
00000cbe: POP
00000cbf: POP
00000cc0: JUMP
00000cc1: JUMPDEST
00000cc2: PUSH1 0x0a
00000cc4: PUSH1 0x14
00000cc6: SWAP1
00000cc7: SLOAD
00000cc8: SWAP1
00000cc9: PUSH2 0x0100
00000ccc: EXP
00000ccd: SWAP1
00000cce: DIV
00000ccf: PUSH1 0xff
00000cd1: AND
00000cd2: DUP2
00000cd3: JUMP
00000cd4: JUMPDEST
00000cd5: PUSH1 0x00
00000cd7: DUP1
00000cd8: SWAP1
00000cd9: SLOAD
00000cda: SWAP1
00000cdb: PUSH2 0x0100
00000cde: EXP
00000cdf: SWAP1
00000ce0: DIV
00000ce1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cf6: AND
00000cf7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d0c: AND
00000d0d: CALLER
00000d0e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d23: AND
00000d24: EQ
00000d25: ISZERO
00000d26: ISZERO
00000d27: PUSH2 0x0d2f
00000d2a: JUMPI
00000d2b: PUSH1 0x00
00000d2d: DUP1
00000d2e: REVERT
00000d2f: JUMPDEST
00000d30: PUSH1 0x01
00000d32: PUSH1 0x06
00000d34: PUSH1 0x00
00000d36: DUP4
00000d37: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d4c: AND
00000d4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d62: AND
00000d63: DUP2
00000d64: MSTORE
00000d65: PUSH1 0x20
00000d67: ADD
00000d68: SWAP1
00000d69: DUP2
00000d6a: MSTORE
00000d6b: PUSH1 0x20
00000d6d: ADD
00000d6e: PUSH1 0x00
00000d70: KECCAK256
00000d71: PUSH1 0x00
00000d73: PUSH2 0x0100
00000d76: EXP
00000d77: DUP2
00000d78: SLOAD
00000d79: DUP2
00000d7a: PUSH1 0xff
00000d7c: MUL
00000d7d: NOT
00000d7e: AND
00000d7f: SWAP1
00000d80: DUP4
00000d81: ISZERO
00000d82: ISZERO
00000d83: MUL
00000d84: OR
00000d85: SWAP1
00000d86: SSTORE
00000d87: POP
00000d88: PUSH32 0x42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc
00000da9: DUP2
00000daa: PUSH1 0x40
00000dac: MLOAD
00000dad: DUP1
00000dae: DUP3
00000daf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dc4: AND
00000dc5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dda: AND
00000ddb: DUP2
00000ddc: MSTORE
00000ddd: PUSH1 0x20
00000ddf: ADD
00000de0: SWAP2
00000de1: POP
00000de2: POP
00000de3: PUSH1 0x40
00000de5: MLOAD
00000de6: DUP1
00000de7: SWAP2
00000de8: SUB
00000de9: SWAP1
00000dea: LOG1
00000deb: POP
00000dec: JUMP
00000ded: JUMPDEST
00000dee: PUSH1 0x00
00000df0: PUSH1 0x0a
00000df2: PUSH1 0x14
00000df4: SWAP1
00000df5: SLOAD
00000df6: SWAP1
00000df7: PUSH2 0x0100
00000dfa: EXP
00000dfb: SWAP1
00000dfc: DIV
00000dfd: PUSH1 0xff
00000dff: AND
00000e00: ISZERO
00000e01: PUSH2 0x0eb4
00000e04: JUMPI
00000e05: PUSH1 0x0a
00000e07: PUSH1 0x00
00000e09: SWAP1
00000e0a: SLOAD
00000e0b: SWAP1
00000e0c: PUSH2 0x0100
00000e0f: EXP
00000e10: SWAP1
00000e11: DIV
00000e12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e27: AND
00000e28: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e3d: AND
00000e3e: PUSH4 0x18160ddd
00000e43: PUSH1 0x00
00000e45: PUSH1 0x40
00000e47: MLOAD
00000e48: PUSH1 0x20
00000e4a: ADD
00000e4b: MSTORE
00000e4c: PUSH1 0x40
00000e4e: MLOAD
00000e4f: DUP2
00000e50: PUSH4 0xffffffff
00000e55: AND
00000e56: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000e74: MUL
00000e75: DUP2
00000e76: MSTORE
00000e77: PUSH1 0x04
00000e79: ADD
00000e7a: PUSH1 0x20
00000e7c: PUSH1 0x40
00000e7e: MLOAD
00000e7f: DUP1
00000e80: DUP4
00000e81: SUB
00000e82: DUP2
00000e83: PUSH1 0x00
00000e85: DUP8
00000e86: DUP1
00000e87: EXTCODESIZE
00000e88: ISZERO
00000e89: ISZERO
00000e8a: PUSH2 0x0e92
00000e8d: JUMPI
00000e8e: PUSH1 0x00
00000e90: DUP1
00000e91: REVERT
00000e92: JUMPDEST
00000e93: PUSH2 0x02c6
00000e96: GAS
00000e97: SUB
00000e98: CALL
00000e99: ISZERO
00000e9a: ISZERO
00000e9b: PUSH2 0x0ea3
00000e9e: JUMPI
00000e9f: PUSH1 0x00
00000ea1: DUP1
00000ea2: REVERT
00000ea3: JUMPDEST
00000ea4: POP
00000ea5: POP
00000ea6: POP
00000ea7: PUSH1 0x40
00000ea9: MLOAD
00000eaa: DUP1
00000eab: MLOAD
00000eac: SWAP1
00000ead: POP
00000eae: SWAP1
00000eaf: POP
00000eb0: PUSH2 0x0eba
00000eb3: JUMP
00000eb4: JUMPDEST
00000eb5: PUSH1 0x01
00000eb7: SLOAD
00000eb8: SWAP1
00000eb9: POP
00000eba: JUMPDEST
00000ebb: SWAP1
00000ebc: JUMP
00000ebd: JUMPDEST
00000ebe: PUSH1 0x00
00000ec0: PUSH1 0x14
00000ec2: SWAP1
00000ec3: SLOAD
00000ec4: SWAP1
00000ec5: PUSH2 0x0100
00000ec8: EXP
00000ec9: SWAP1
00000eca: DIV
00000ecb: PUSH1 0xff
00000ecd: AND
00000ece: ISZERO
00000ecf: ISZERO
00000ed0: ISZERO
00000ed1: PUSH2 0x0ed9
00000ed4: JUMPI
00000ed5: PUSH1 0x00
00000ed7: DUP1
00000ed8: REVERT
00000ed9: JUMPDEST
00000eda: PUSH1 0x06
00000edc: PUSH1 0x00
00000ede: DUP5
00000edf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ef4: AND
00000ef5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f0a: AND
00000f0b: DUP2
00000f0c: MSTORE
00000f0d: PUSH1 0x20
00000f0f: ADD
00000f10: SWAP1
00000f11: DUP2
00000f12: MSTORE
00000f13: PUSH1 0x20
00000f15: ADD
00000f16: PUSH1 0x00
00000f18: KECCAK256
00000f19: PUSH1 0x00
00000f1b: SWAP1
00000f1c: SLOAD
00000f1d: SWAP1
00000f1e: PUSH2 0x0100
00000f21: EXP
00000f22: SWAP1
00000f23: DIV
00000f24: PUSH1 0xff
00000f26: AND
00000f27: ISZERO
00000f28: ISZERO
00000f29: ISZERO
00000f2a: PUSH2 0x0f32
00000f2d: JUMPI
00000f2e: PUSH1 0x00
00000f30: DUP1
00000f31: REVERT
00000f32: JUMPDEST
00000f33: PUSH1 0x0a
00000f35: PUSH1 0x14
00000f37: SWAP1
00000f38: SLOAD
00000f39: SWAP1
00000f3a: PUSH2 0x0100
00000f3d: EXP
00000f3e: SWAP1
00000f3f: DIV
00000f40: PUSH1 0xff
00000f42: AND
00000f43: ISZERO
00000f44: PUSH2 0x108c
00000f47: JUMPI
00000f48: PUSH1 0x0a
00000f4a: PUSH1 0x00
00000f4c: SWAP1
00000f4d: SLOAD
00000f4e: SWAP1
00000f4f: PUSH2 0x0100
00000f52: EXP
00000f53: SWAP1
00000f54: DIV
00000f55: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f6a: AND
00000f6b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f80: AND
00000f81: PUSH4 0x8b477adb
00000f86: CALLER
00000f87: DUP6
00000f88: DUP6
00000f89: DUP6
00000f8a: PUSH1 0x40
00000f8c: MLOAD
00000f8d: DUP6
00000f8e: PUSH4 0xffffffff
00000f93: AND
00000f94: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000fb2: MUL
00000fb3: DUP2
00000fb4: MSTORE
00000fb5: PUSH1 0x04
00000fb7: ADD
00000fb8: DUP1
00000fb9: DUP6
00000fba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000fcf: AND
00000fd0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000fe5: AND
00000fe6: DUP2
00000fe7: MSTORE
00000fe8: PUSH1 0x20
00000fea: ADD
00000feb: DUP5
00000fec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001001: AND
00001002: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001017: AND
00001018: DUP2
00001019: MSTORE
0000101a: PUSH1 0x20
0000101c: ADD
0000101d: DUP4
0000101e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001033: AND
00001034: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001049: AND
0000104a: DUP2
0000104b: MSTORE
0000104c: PUSH1 0x20
0000104e: ADD
0000104f: DUP3
00001050: DUP2
00001051: MSTORE
00001052: PUSH1 0x20
00001054: ADD
00001055: SWAP5
00001056: POP
00001057: POP
00001058: POP
00001059: POP
0000105a: POP
0000105b: PUSH1 0x00
0000105d: PUSH1 0x40
0000105f: MLOAD
00001060: DUP1
00001061: DUP4
00001062: SUB
00001063: DUP2
00001064: PUSH1 0x00
00001066: DUP8
00001067: DUP1
00001068: EXTCODESIZE
00001069: ISZERO
0000106a: ISZERO
0000106b: PUSH2 0x1073
0000106e: JUMPI
0000106f: PUSH1 0x00
00001071: DUP1
00001072: REVERT
00001073: JUMPDEST
00001074: PUSH2 0x02c6
00001077: GAS
00001078: SUB
00001079: CALL
0000107a: ISZERO
0000107b: ISZERO
0000107c: PUSH2 0x1084
0000107f: JUMPI
00001080: PUSH1 0x00
00001082: DUP1
00001083: REVERT
00001084: JUMPDEST
00001085: POP
00001086: POP
00001087: POP
00001088: PUSH2 0x1098
0000108b: JUMP
0000108c: JUMPDEST
0000108d: PUSH2 0x1097
00001090: DUP4
00001091: DUP4
00001092: DUP4
00001093: PUSH2 0x21ab
00001096: JUMP
00001097: JUMPDEST
00001098: JUMPDEST
00001099: POP
0000109a: POP
0000109b: POP
0000109c: JUMP
0000109d: JUMPDEST
0000109e: PUSH1 0x0a
000010a0: PUSH1 0x00
000010a2: SWAP1
000010a3: SLOAD
000010a4: SWAP1
000010a5: PUSH2 0x0100
000010a8: EXP
000010a9: SWAP1
000010aa: DIV
000010ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010c0: AND
000010c1: DUP2
000010c2: JUMP
000010c3: JUMPDEST
000010c4: PUSH1 0x02
000010c6: PUSH1 0x20
000010c8: MSTORE
000010c9: DUP1
000010ca: PUSH1 0x00
000010cc: MSTORE
000010cd: PUSH1 0x40
000010cf: PUSH1 0x00
000010d1: KECCAK256
000010d2: PUSH1 0x00
000010d4: SWAP2
000010d5: POP
000010d6: SWAP1
000010d7: POP
000010d8: SLOAD
000010d9: DUP2
000010da: JUMP
000010db: JUMPDEST
000010dc: PUSH1 0x09
000010de: SLOAD
000010df: DUP2
000010e0: JUMP
000010e1: JUMPDEST
000010e2: PUSH1 0x04
000010e4: SLOAD
000010e5: DUP2
000010e6: JUMP
000010e7: JUMPDEST
000010e8: PUSH1 0x01
000010ea: SLOAD
000010eb: DUP2
000010ec: JUMP
000010ed: JUMPDEST
000010ee: PUSH1 0x00
000010f0: DUP1
000010f1: SWAP1
000010f2: SLOAD
000010f3: SWAP1
000010f4: PUSH2 0x0100
000010f7: EXP
000010f8: SWAP1
000010f9: DIV
000010fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000110f: AND
00001110: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001125: AND
00001126: CALLER
00001127: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000113c: AND
0000113d: EQ
0000113e: ISZERO
0000113f: ISZERO
00001140: PUSH2 0x1148
00001143: JUMPI
00001144: PUSH1 0x00
00001146: DUP1
00001147: REVERT
00001148: JUMPDEST
00001149: PUSH1 0x00
0000114b: PUSH1 0x14
0000114d: SWAP1
0000114e: SLOAD
0000114f: SWAP1
00001150: PUSH2 0x0100
00001153: EXP
00001154: SWAP1
00001155: DIV
00001156: PUSH1 0xff
00001158: AND
00001159: ISZERO
0000115a: ISZERO
0000115b: PUSH2 0x1163
0000115e: JUMPI
0000115f: PUSH1 0x00
00001161: DUP1
00001162: REVERT
00001163: JUMPDEST
00001164: PUSH1 0x00
00001166: DUP1
00001167: PUSH1 0x14
00001169: PUSH2 0x0100
0000116c: EXP
0000116d: DUP2
0000116e: SLOAD
0000116f: DUP2
00001170: PUSH1 0xff
00001172: MUL
00001173: NOT
00001174: AND
00001175: SWAP1
00001176: DUP4
00001177: ISZERO
00001178: ISZERO
00001179: MUL
0000117a: OR
0000117b: SWAP1
0000117c: SSTORE
0000117d: POP
0000117e: PUSH32 0x7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33
0000119f: PUSH1 0x40
000011a1: MLOAD
000011a2: PUSH1 0x40
000011a4: MLOAD
000011a5: DUP1
000011a6: SWAP2
000011a7: SUB
000011a8: SWAP1
000011a9: LOG1
000011aa: JUMP
000011ab: JUMPDEST
000011ac: PUSH1 0x00
000011ae: PUSH1 0x06
000011b0: PUSH1 0x00
000011b2: DUP4
000011b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011c8: AND
000011c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011de: AND
000011df: DUP2
000011e0: MSTORE
000011e1: PUSH1 0x20
000011e3: ADD
000011e4: SWAP1
000011e5: DUP2
000011e6: MSTORE
000011e7: PUSH1 0x20
000011e9: ADD
000011ea: PUSH1 0x00
000011ec: KECCAK256
000011ed: PUSH1 0x00
000011ef: SWAP1
000011f0: SLOAD
000011f1: SWAP1
000011f2: PUSH2 0x0100
000011f5: EXP
000011f6: SWAP1
000011f7: DIV
000011f8: PUSH1 0xff
000011fa: AND
000011fb: SWAP1
000011fc: POP
000011fd: SWAP2
000011fe: SWAP1
000011ff: POP
00001200: JUMP
00001201: JUMPDEST
00001202: PUSH1 0x05
00001204: PUSH1 0x20
00001206: MSTORE
00001207: DUP2
00001208: PUSH1 0x00
0000120a: MSTORE
0000120b: PUSH1 0x40
0000120d: PUSH1 0x00
0000120f: KECCAK256
00001210: PUSH1 0x20
00001212: MSTORE
00001213: DUP1
00001214: PUSH1 0x00
00001216: MSTORE
00001217: PUSH1 0x40
00001219: PUSH1 0x00
0000121b: KECCAK256
0000121c: PUSH1 0x00
0000121e: SWAP2
0000121f: POP
00001220: SWAP2
00001221: POP
00001222: POP
00001223: SLOAD
00001224: DUP2
00001225: JUMP
00001226: JUMPDEST
00001227: PUSH1 0x00
00001229: PUSH1 0x14
0000122b: SWAP1
0000122c: SLOAD
0000122d: SWAP1
0000122e: PUSH2 0x0100
00001231: EXP
00001232: SWAP1
00001233: DIV
00001234: PUSH1 0xff
00001236: AND
00001237: DUP2
00001238: JUMP
00001239: JUMPDEST
0000123a: PUSH1 0x00
0000123c: PUSH1 0x0a
0000123e: PUSH1 0x14
00001240: SWAP1
00001241: SLOAD
00001242: SWAP1
00001243: PUSH2 0x0100
00001246: EXP
00001247: SWAP1
00001248: DIV
00001249: PUSH1 0xff
0000124b: AND
0000124c: ISZERO
0000124d: PUSH2 0x1337
00001250: JUMPI
00001251: PUSH1 0x0a
00001253: PUSH1 0x00
00001255: SWAP1
00001256: SLOAD
00001257: SWAP1
00001258: PUSH2 0x0100
0000125b: EXP
0000125c: SWAP1
0000125d: DIV
0000125e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001273: AND
00001274: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001289: AND
0000128a: PUSH4 0x70a08231
0000128f: DUP4
00001290: PUSH1 0x00
00001292: PUSH1 0x40
00001294: MLOAD
00001295: PUSH1 0x20
00001297: ADD
00001298: MSTORE
00001299: PUSH1 0x40
0000129b: MLOAD
0000129c: DUP3
0000129d: PUSH4 0xffffffff
000012a2: AND
000012a3: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000012c1: MUL
000012c2: DUP2
000012c3: MSTORE
000012c4: PUSH1 0x04
000012c6: ADD
000012c7: DUP1
000012c8: DUP3
000012c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012de: AND
000012df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012f4: AND
000012f5: DUP2
000012f6: MSTORE
000012f7: PUSH1 0x20
000012f9: ADD
000012fa: SWAP2
000012fb: POP
000012fc: POP
000012fd: PUSH1 0x20
000012ff: PUSH1 0x40
00001301: MLOAD
00001302: DUP1
00001303: DUP4
00001304: SUB
00001305: DUP2
00001306: PUSH1 0x00
00001308: DUP8
00001309: DUP1
0000130a: EXTCODESIZE
0000130b: ISZERO
0000130c: ISZERO
0000130d: PUSH2 0x1315
00001310: JUMPI
00001311: PUSH1 0x00
00001313: DUP1
00001314: REVERT
00001315: JUMPDEST
00001316: PUSH2 0x02c6
00001319: GAS
0000131a: SUB
0000131b: CALL
0000131c: ISZERO
0000131d: ISZERO
0000131e: PUSH2 0x1326
00001321: JUMPI
00001322: PUSH1 0x00
00001324: DUP1
00001325: REVERT
00001326: JUMPDEST
00001327: POP
00001328: POP
00001329: POP
0000132a: PUSH1 0x40
0000132c: MLOAD
0000132d: DUP1
0000132e: MLOAD
0000132f: SWAP1
00001330: POP
00001331: SWAP1
00001332: POP
00001333: PUSH2 0x1343
00001336: JUMP
00001337: JUMPDEST
00001338: PUSH2 0x1340
0000133b: DUP3
0000133c: PUSH2 0x2652
0000133f: JUMP
00001340: JUMPDEST
00001341: SWAP1
00001342: POP
00001343: JUMPDEST
00001344: SWAP2
00001345: SWAP1
00001346: POP
00001347: JUMP
00001348: JUMPDEST
00001349: PUSH1 0x00
0000134b: DUP1
0000134c: SWAP1
0000134d: SLOAD
0000134e: SWAP1
0000134f: PUSH2 0x0100
00001352: EXP
00001353: SWAP1
00001354: DIV
00001355: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000136a: AND
0000136b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001380: AND
00001381: CALLER
00001382: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001397: AND
00001398: EQ
00001399: ISZERO
0000139a: ISZERO
0000139b: PUSH2 0x13a3
0000139e: JUMPI
0000139f: PUSH1 0x00
000013a1: DUP1
000013a2: REVERT
000013a3: JUMPDEST
000013a4: PUSH1 0x00
000013a6: PUSH1 0x14
000013a8: SWAP1
000013a9: SLOAD
000013aa: SWAP1
000013ab: PUSH2 0x0100
000013ae: EXP
000013af: SWAP1
000013b0: DIV
000013b1: PUSH1 0xff
000013b3: AND
000013b4: ISZERO
000013b5: ISZERO
000013b6: ISZERO
000013b7: PUSH2 0x13bf
000013ba: JUMPI
000013bb: PUSH1 0x00
000013bd: DUP1
000013be: REVERT
000013bf: JUMPDEST
000013c0: PUSH1 0x01
000013c2: PUSH1 0x00
000013c4: PUSH1 0x14
000013c6: PUSH2 0x0100
000013c9: EXP
000013ca: DUP2
000013cb: SLOAD
000013cc: DUP2
000013cd: PUSH1 0xff
000013cf: MUL
000013d0: NOT
000013d1: AND
000013d2: SWAP1
000013d3: DUP4
000013d4: ISZERO
000013d5: ISZERO
000013d6: MUL
000013d7: OR
000013d8: SWAP1
000013d9: SSTORE
000013da: POP
000013db: PUSH32 0x6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625
000013fc: PUSH1 0x40
000013fe: MLOAD
000013ff: PUSH1 0x40
00001401: MLOAD
00001402: DUP1
00001403: SWAP2
00001404: SUB
00001405: SWAP1
00001406: LOG1
00001407: JUMP
00001408: JUMPDEST
00001409: PUSH1 0x00
0000140b: DUP1
0000140c: PUSH1 0x00
0000140e: SWAP1
0000140f: SLOAD
00001410: SWAP1
00001411: PUSH2 0x0100
00001414: EXP
00001415: SWAP1
00001416: DIV
00001417: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000142c: AND
0000142d: SWAP1
0000142e: POP
0000142f: SWAP1
00001430: JUMP
00001431: JUMPDEST
00001432: PUSH1 0x00
00001434: DUP1
00001435: SWAP1
00001436: SLOAD
00001437: SWAP1
00001438: PUSH2 0x0100
0000143b: EXP
0000143c: SWAP1
0000143d: DIV
0000143e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001453: AND
00001454: DUP2
00001455: JUMP
00001456: JUMPDEST
00001457: PUSH1 0x08
00001459: DUP1
0000145a: SLOAD
0000145b: PUSH1 0x01
0000145d: DUP2
0000145e: PUSH1 0x01
00001460: AND
00001461: ISZERO
00001462: PUSH2 0x0100
00001465: MUL
00001466: SUB
00001467: AND
00001468: PUSH1 0x02
0000146a: SWAP1
0000146b: DIV
0000146c: DUP1
0000146d: PUSH1 0x1f
0000146f: ADD
00001470: PUSH1 0x20
00001472: DUP1
00001473: SWAP2
00001474: DIV
00001475: MUL
00001476: PUSH1 0x20
00001478: ADD
00001479: PUSH1 0x40
0000147b: MLOAD
0000147c: SWAP1
0000147d: DUP2
0000147e: ADD
0000147f: PUSH1 0x40
00001481: MSTORE
00001482: DUP1
00001483: SWAP3
00001484: SWAP2
00001485: SWAP1
00001486: DUP2
00001487: DUP2
00001488: MSTORE
00001489: PUSH1 0x20
0000148b: ADD
0000148c: DUP3
0000148d: DUP1
0000148e: SLOAD
0000148f: PUSH1 0x01
00001491: DUP2
00001492: PUSH1 0x01
00001494: AND
00001495: ISZERO
00001496: PUSH2 0x0100
00001499: MUL
0000149a: SUB
0000149b: AND
0000149c: PUSH1 0x02
0000149e: SWAP1
0000149f: DIV
000014a0: DUP1
000014a1: ISZERO
000014a2: PUSH2 0x14ec
000014a5: JUMPI
000014a6: DUP1
000014a7: PUSH1 0x1f
000014a9: LT
000014aa: PUSH2 0x14c1
000014ad: JUMPI
000014ae: PUSH2 0x0100
000014b1: DUP1
000014b2: DUP4
000014b3: SLOAD
000014b4: DIV
000014b5: MUL
000014b6: DUP4
000014b7: MSTORE
000014b8: SWAP2
000014b9: PUSH1 0x20
000014bb: ADD
000014bc: SWAP2
000014bd: PUSH2 0x14ec
000014c0: JUMP
000014c1: JUMPDEST
000014c2: DUP3
000014c3: ADD
000014c4: SWAP2
000014c5: SWAP1
000014c6: PUSH1 0x00
000014c8: MSTORE
000014c9: PUSH1 0x20
000014cb: PUSH1 0x00
000014cd: KECCAK256
000014ce: SWAP1
000014cf: JUMPDEST
000014d0: DUP2
000014d1: SLOAD
000014d2: DUP2
000014d3: MSTORE
000014d4: SWAP1
000014d5: PUSH1 0x01
000014d7: ADD
000014d8: SWAP1
000014d9: PUSH1 0x20
000014db: ADD
000014dc: DUP1
000014dd: DUP4
000014de: GT
000014df: PUSH2 0x14cf
000014e2: JUMPI
000014e3: DUP3
000014e4: SWAP1
000014e5: SUB
000014e6: PUSH1 0x1f
000014e8: AND
000014e9: DUP3
000014ea: ADD
000014eb: SWAP2
000014ec: JUMPDEST
000014ed: POP
000014ee: POP
000014ef: POP
000014f0: POP
000014f1: POP
000014f2: DUP2
000014f3: JUMP
000014f4: JUMPDEST
000014f5: PUSH1 0x00
000014f7: PUSH1 0x14
000014f9: SWAP1
000014fa: SLOAD
000014fb: SWAP1
000014fc: PUSH2 0x0100
000014ff: EXP
00001500: SWAP1
00001501: DIV
00001502: PUSH1 0xff
00001504: AND
00001505: ISZERO
00001506: ISZERO
00001507: ISZERO
00001508: PUSH2 0x1510
0000150b: JUMPI
0000150c: PUSH1 0x00
0000150e: DUP1
0000150f: REVERT
00001510: JUMPDEST
00001511: PUSH1 0x06
00001513: PUSH1 0x00
00001515: CALLER
00001516: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000152b: AND
0000152c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001541: AND
00001542: DUP2
00001543: MSTORE
00001544: PUSH1 0x20
00001546: ADD
00001547: SWAP1
00001548: DUP2
00001549: MSTORE
0000154a: PUSH1 0x20
0000154c: ADD
0000154d: PUSH1 0x00
0000154f: KECCAK256
00001550: PUSH1 0x00
00001552: SWAP1
00001553: SLOAD
00001554: SWAP1
00001555: PUSH2 0x0100
00001558: EXP
00001559: SWAP1
0000155a: DIV
0000155b: PUSH1 0xff
0000155d: AND
0000155e: ISZERO
0000155f: ISZERO
00001560: ISZERO
00001561: PUSH2 0x1569
00001564: JUMPI
00001565: PUSH1 0x00
00001567: DUP1
00001568: REVERT
00001569: JUMPDEST
0000156a: PUSH1 0x0a
0000156c: PUSH1 0x14
0000156e: SWAP1
0000156f: SLOAD
00001570: SWAP1
00001571: PUSH2 0x0100
00001574: EXP
00001575: SWAP1
00001576: DIV
00001577: PUSH1 0xff
00001579: AND
0000157a: ISZERO
0000157b: PUSH2 0x168f
0000157e: JUMPI
0000157f: PUSH1 0x0a
00001581: PUSH1 0x00
00001583: SWAP1
00001584: SLOAD
00001585: SWAP1
00001586: PUSH2 0x0100
00001589: EXP
0000158a: SWAP1
0000158b: DIV
0000158c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015a1: AND
000015a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015b7: AND
000015b8: PUSH4 0x6e18980a
000015bd: CALLER
000015be: DUP5
000015bf: DUP5
000015c0: PUSH1 0x40
000015c2: MLOAD
000015c3: DUP5
000015c4: PUSH4 0xffffffff
000015c9: AND
000015ca: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
000015e8: MUL
000015e9: DUP2
000015ea: MSTORE
000015eb: PUSH1 0x04
000015ed: ADD
000015ee: DUP1
000015ef: DUP5
000015f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001605: AND
00001606: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000161b: AND
0000161c: DUP2
0000161d: MSTORE
0000161e: PUSH1 0x20
00001620: ADD
00001621: DUP4
00001622: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001637: AND
00001638: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000164d: AND
0000164e: DUP2
0000164f: MSTORE
00001650: PUSH1 0x20
00001652: ADD
00001653: DUP3
00001654: DUP2
00001655: MSTORE
00001656: PUSH1 0x20
00001658: ADD
00001659: SWAP4
0000165a: POP
0000165b: POP
0000165c: POP
0000165d: POP
0000165e: PUSH1 0x00
00001660: PUSH1 0x40
00001662: MLOAD
00001663: DUP1
00001664: DUP4
00001665: SUB
00001666: DUP2
00001667: PUSH1 0x00
00001669: DUP8
0000166a: DUP1
0000166b: EXTCODESIZE
0000166c: ISZERO
0000166d: ISZERO
0000166e: PUSH2 0x1676
00001671: JUMPI
00001672: PUSH1 0x00
00001674: DUP1
00001675: REVERT
00001676: JUMPDEST
00001677: PUSH2 0x02c6
0000167a: GAS
0000167b: SUB
0000167c: CALL
0000167d: ISZERO
0000167e: ISZERO
0000167f: PUSH2 0x1687
00001682: JUMPI
00001683: PUSH1 0x00
00001685: DUP1
00001686: REVERT
00001687: JUMPDEST
00001688: POP
00001689: POP
0000168a: POP
0000168b: PUSH2 0x169a
0000168e: JUMP
0000168f: JUMPDEST
00001690: PUSH2 0x1699
00001693: DUP3
00001694: DUP3
00001695: PUSH2 0x269b
00001698: JUMP
00001699: JUMPDEST
0000169a: JUMPDEST
0000169b: POP
0000169c: POP
0000169d: JUMP
0000169e: JUMPDEST
0000169f: PUSH1 0x00
000016a1: DUP1
000016a2: SWAP1
000016a3: SLOAD
000016a4: SWAP1
000016a5: PUSH2 0x0100
000016a8: EXP
000016a9: SWAP1
000016aa: DIV
000016ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016c0: AND
000016c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016d6: AND
000016d7: CALLER
000016d8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016ed: AND
000016ee: EQ
000016ef: ISZERO
000016f0: ISZERO
000016f1: PUSH2 0x16f9
000016f4: JUMPI
000016f5: PUSH1 0x00
000016f7: DUP1
000016f8: REVERT
000016f9: JUMPDEST
000016fa: PUSH1 0x14
000016fc: DUP3
000016fd: LT
000016fe: ISZERO
000016ff: ISZERO
00001700: PUSH2 0x1708
00001703: JUMPI
00001704: PUSH1 0x00
00001706: DUP1
00001707: REVERT
00001708: JUMPDEST
00001709: PUSH1 0x32
0000170b: DUP2
0000170c: LT
0000170d: ISZERO
0000170e: ISZERO
0000170f: PUSH2 0x1717
00001712: JUMPI
00001713: PUSH1 0x00
00001715: DUP1
00001716: REVERT
00001717: JUMPDEST
00001718: DUP2
00001719: PUSH1 0x03
0000171b: DUP2
0000171c: SWAP1
0000171d: SSTORE
0000171e: POP
0000171f: PUSH2 0x1736
00001722: PUSH1 0x09
00001724: SLOAD
00001725: PUSH1 0x0a
00001727: EXP
00001728: DUP3
00001729: PUSH2 0x2a03
0000172c: SWAP1
0000172d: SWAP2
0000172e: SWAP1
0000172f: PUSH4 0xffffffff
00001734: AND
00001735: JUMP
00001736: JUMPDEST
00001737: PUSH1 0x04
00001739: DUP2
0000173a: SWAP1
0000173b: SSTORE
0000173c: POP
0000173d: PUSH32 0xb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e
0000175e: PUSH1 0x03
00001760: SLOAD
00001761: PUSH1 0x04
00001763: SLOAD
00001764: PUSH1 0x40
00001766: MLOAD
00001767: DUP1
00001768: DUP4
00001769: DUP2
0000176a: MSTORE
0000176b: PUSH1 0x20
0000176d: ADD
0000176e: DUP3
0000176f: DUP2
00001770: MSTORE
00001771: PUSH1 0x20
00001773: ADD
00001774: SWAP3
00001775: POP
00001776: POP
00001777: POP
00001778: PUSH1 0x40
0000177a: MLOAD
0000177b: DUP1
0000177c: SWAP2
0000177d: SUB
0000177e: SWAP1
0000177f: LOG1
00001780: POP
00001781: POP
00001782: JUMP
00001783: JUMPDEST
00001784: PUSH1 0x00
00001786: DUP1
00001787: SWAP1
00001788: SLOAD
00001789: SWAP1
0000178a: PUSH2 0x0100
0000178d: EXP
0000178e: SWAP1
0000178f: DIV
00001790: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017a5: AND
000017a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017bb: AND
000017bc: CALLER
000017bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017d2: AND
000017d3: EQ
000017d4: ISZERO
000017d5: ISZERO
000017d6: PUSH2 0x17de
000017d9: JUMPI
000017da: PUSH1 0x00
000017dc: DUP1
000017dd: REVERT
000017de: JUMPDEST
000017df: PUSH1 0x01
000017e1: SLOAD
000017e2: DUP2
000017e3: PUSH1 0x01
000017e5: SLOAD
000017e6: ADD
000017e7: GT
000017e8: ISZERO
000017e9: ISZERO
000017ea: PUSH2 0x17f2
000017ed: JUMPI
000017ee: PUSH1 0x00
000017f0: DUP1
000017f1: REVERT
000017f2: JUMPDEST
000017f3: PUSH1 0x02
000017f5: PUSH1 0x00
000017f7: DUP1
000017f8: PUSH1 0x00
000017fa: SWAP1
000017fb: SLOAD
000017fc: SWAP1
000017fd: PUSH2 0x0100
00001800: EXP
00001801: SWAP1
00001802: DIV
00001803: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001818: AND
00001819: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000182e: AND
0000182f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001844: AND
00001845: DUP2
00001846: MSTORE
00001847: PUSH1 0x20
00001849: ADD
0000184a: SWAP1
0000184b: DUP2
0000184c: MSTORE
0000184d: PUSH1 0x20
0000184f: ADD
00001850: PUSH1 0x00
00001852: KECCAK256
00001853: SLOAD
00001854: DUP2
00001855: PUSH1 0x02
00001857: PUSH1 0x00
00001859: DUP1
0000185a: PUSH1 0x00
0000185c: SWAP1
0000185d: SLOAD
0000185e: SWAP1
0000185f: PUSH2 0x0100
00001862: EXP
00001863: SWAP1
00001864: DIV
00001865: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000187a: AND
0000187b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001890: AND
00001891: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018a6: AND
000018a7: DUP2
000018a8: MSTORE
000018a9: PUSH1 0x20
000018ab: ADD
000018ac: SWAP1
000018ad: DUP2
000018ae: MSTORE
000018af: PUSH1 0x20
000018b1: ADD
000018b2: PUSH1 0x00
000018b4: KECCAK256
000018b5: SLOAD
000018b6: ADD
000018b7: GT
000018b8: ISZERO
000018b9: ISZERO
000018ba: PUSH2 0x18c2
000018bd: JUMPI
000018be: PUSH1 0x00
000018c0: DUP1
000018c1: REVERT
000018c2: JUMPDEST
000018c3: DUP1
000018c4: PUSH1 0x02
000018c6: PUSH1 0x00
000018c8: DUP1
000018c9: PUSH1 0x00
000018cb: SWAP1
000018cc: SLOAD
000018cd: SWAP1
000018ce: PUSH2 0x0100
000018d1: EXP
000018d2: SWAP1
000018d3: DIV
000018d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018e9: AND
000018ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018ff: AND
00001900: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001915: AND
00001916: DUP2
00001917: MSTORE
00001918: PUSH1 0x20
0000191a: ADD
0000191b: SWAP1
0000191c: DUP2
0000191d: MSTORE
0000191e: PUSH1 0x20
00001920: ADD
00001921: PUSH1 0x00
00001923: KECCAK256
00001924: PUSH1 0x00
00001926: DUP3
00001927: DUP3
00001928: SLOAD
00001929: ADD
0000192a: SWAP3
0000192b: POP
0000192c: POP
0000192d: DUP2
0000192e: SWAP1
0000192f: SSTORE
00001930: POP
00001931: DUP1
00001932: PUSH1 0x01
00001934: PUSH1 0x00
00001936: DUP3
00001937: DUP3
00001938: SLOAD
00001939: ADD
0000193a: SWAP3
0000193b: POP
0000193c: POP
0000193d: DUP2
0000193e: SWAP1
0000193f: SSTORE
00001940: POP
00001941: PUSH32 0xcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a
00001962: DUP2
00001963: PUSH1 0x40
00001965: MLOAD
00001966: DUP1
00001967: DUP3
00001968: DUP2
00001969: MSTORE
0000196a: PUSH1 0x20
0000196c: ADD
0000196d: SWAP2
0000196e: POP
0000196f: POP
00001970: PUSH1 0x40
00001972: MLOAD
00001973: DUP1
00001974: SWAP2
00001975: SUB
00001976: SWAP1
00001977: LOG1
00001978: POP
00001979: JUMP
0000197a: JUMPDEST
0000197b: PUSH1 0x00
0000197d: DUP1
0000197e: SWAP1
0000197f: SLOAD
00001980: SWAP1
00001981: PUSH2 0x0100
00001984: EXP
00001985: SWAP1
00001986: DIV
00001987: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000199c: AND
0000199d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019b2: AND
000019b3: CALLER
000019b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019c9: AND
000019ca: EQ
000019cb: ISZERO
000019cc: ISZERO
000019cd: PUSH2 0x19d5
000019d0: JUMPI
000019d1: PUSH1 0x00
000019d3: DUP1
000019d4: REVERT
000019d5: JUMPDEST
000019d6: DUP1
000019d7: PUSH1 0x01
000019d9: SLOAD
000019da: LT
000019db: ISZERO
000019dc: ISZERO
000019dd: ISZERO
000019de: PUSH2 0x19e6
000019e1: JUMPI
000019e2: PUSH1 0x00
000019e4: DUP1
000019e5: REVERT
000019e6: JUMPDEST
000019e7: DUP1
000019e8: PUSH1 0x02
000019ea: PUSH1 0x00
000019ec: DUP1
000019ed: PUSH1 0x00
000019ef: SWAP1
000019f0: SLOAD
000019f1: SWAP1
000019f2: PUSH2 0x0100
000019f5: EXP
000019f6: SWAP1
000019f7: DIV
000019f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a0d: AND
00001a0e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a23: AND
00001a24: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a39: AND
00001a3a: DUP2
00001a3b: MSTORE
00001a3c: PUSH1 0x20
00001a3e: ADD
00001a3f: SWAP1
00001a40: DUP2
00001a41: MSTORE
00001a42: PUSH1 0x20
00001a44: ADD
00001a45: PUSH1 0x00
00001a47: KECCAK256
00001a48: SLOAD
00001a49: LT
00001a4a: ISZERO
00001a4b: ISZERO
00001a4c: ISZERO
00001a4d: PUSH2 0x1a55
00001a50: JUMPI
00001a51: PUSH1 0x00
00001a53: DUP1
00001a54: REVERT
00001a55: JUMPDEST
00001a56: DUP1
00001a57: PUSH1 0x01
00001a59: PUSH1 0x00
00001a5b: DUP3
00001a5c: DUP3
00001a5d: SLOAD
00001a5e: SUB
00001a5f: SWAP3
00001a60: POP
00001a61: POP
00001a62: DUP2
00001a63: SWAP1
00001a64: SSTORE
00001a65: POP
00001a66: DUP1
00001a67: PUSH1 0x02
00001a69: PUSH1 0x00
00001a6b: DUP1
00001a6c: PUSH1 0x00
00001a6e: SWAP1
00001a6f: SLOAD
00001a70: SWAP1
00001a71: PUSH2 0x0100
00001a74: EXP
00001a75: SWAP1
00001a76: DIV
00001a77: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a8c: AND
00001a8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001aa2: AND
00001aa3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ab8: AND
00001ab9: DUP2
00001aba: MSTORE
00001abb: PUSH1 0x20
00001abd: ADD
00001abe: SWAP1
00001abf: DUP2
00001ac0: MSTORE
00001ac1: PUSH1 0x20
00001ac3: ADD
00001ac4: PUSH1 0x00
00001ac6: KECCAK256
00001ac7: PUSH1 0x00
00001ac9: DUP3
00001aca: DUP3
00001acb: SLOAD
00001acc: SUB
00001acd: SWAP3
00001ace: POP
00001acf: POP
00001ad0: DUP2
00001ad1: SWAP1
00001ad2: SSTORE
00001ad3: POP
00001ad4: PUSH32 0x702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a44
00001af5: DUP2
00001af6: PUSH1 0x40
00001af8: MLOAD
00001af9: DUP1
00001afa: DUP3
00001afb: DUP2
00001afc: MSTORE
00001afd: PUSH1 0x20
00001aff: ADD
00001b00: SWAP2
00001b01: POP
00001b02: POP
00001b03: PUSH1 0x40
00001b05: MLOAD
00001b06: DUP1
00001b07: SWAP2
00001b08: SUB
00001b09: SWAP1
00001b0a: LOG1
00001b0b: POP
00001b0c: JUMP
00001b0d: JUMPDEST
00001b0e: PUSH1 0x00
00001b10: PUSH1 0x0a
00001b12: PUSH1 0x14
00001b14: SWAP1
00001b15: SLOAD
00001b16: SWAP1
00001b17: PUSH2 0x0100
00001b1a: EXP
00001b1b: SWAP1
00001b1c: DIV
00001b1d: PUSH1 0xff
00001b1f: AND
00001b20: ISZERO
00001b21: PUSH2 0x1c3f
00001b24: JUMPI
00001b25: PUSH1 0x0a
00001b27: PUSH1 0x00
00001b29: SWAP1
00001b2a: SLOAD
00001b2b: SWAP1
00001b2c: PUSH2 0x0100
00001b2f: EXP
00001b30: SWAP1
00001b31: DIV
00001b32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b47: AND
00001b48: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b5d: AND
00001b5e: PUSH4 0xdd62ed3e
00001b63: DUP5
00001b64: DUP5
00001b65: PUSH1 0x00
00001b67: PUSH1 0x40
00001b69: MLOAD
00001b6a: PUSH1 0x20
00001b6c: ADD
00001b6d: MSTORE
00001b6e: PUSH1 0x40
00001b70: MLOAD
00001b71: DUP4
00001b72: PUSH4 0xffffffff
00001b77: AND
00001b78: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00001b96: MUL
00001b97: DUP2
00001b98: MSTORE
00001b99: PUSH1 0x04
00001b9b: ADD
00001b9c: DUP1
00001b9d: DUP4
00001b9e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bb3: AND
00001bb4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bc9: AND
00001bca: DUP2
00001bcb: MSTORE
00001bcc: PUSH1 0x20
00001bce: ADD
00001bcf: DUP3
00001bd0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001be5: AND
00001be6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bfb: AND
00001bfc: DUP2
00001bfd: MSTORE
00001bfe: PUSH1 0x20
00001c00: ADD
00001c01: SWAP3
00001c02: POP
00001c03: POP
00001c04: POP
00001c05: PUSH1 0x20
00001c07: PUSH1 0x40
00001c09: MLOAD
00001c0a: DUP1
00001c0b: DUP4
00001c0c: SUB
00001c0d: DUP2
00001c0e: PUSH1 0x00
00001c10: DUP8
00001c11: DUP1
00001c12: EXTCODESIZE
00001c13: ISZERO
00001c14: ISZERO
00001c15: PUSH2 0x1c1d
00001c18: JUMPI
00001c19: PUSH1 0x00
00001c1b: DUP1
00001c1c: REVERT
00001c1d: JUMPDEST
00001c1e: PUSH2 0x02c6
00001c21: GAS
00001c22: SUB
00001c23: CALL
00001c24: ISZERO
00001c25: ISZERO
00001c26: PUSH2 0x1c2e
00001c29: JUMPI
00001c2a: PUSH1 0x00
00001c2c: DUP1
00001c2d: REVERT
00001c2e: JUMPDEST
00001c2f: POP
00001c30: POP
00001c31: POP
00001c32: PUSH1 0x40
00001c34: MLOAD
00001c35: DUP1
00001c36: MLOAD
00001c37: SWAP1
00001c38: POP
00001c39: SWAP1
00001c3a: POP
00001c3b: PUSH2 0x1c4c
00001c3e: JUMP
00001c3f: JUMPDEST
00001c40: PUSH2 0x1c49
00001c43: DUP4
00001c44: DUP4
00001c45: PUSH2 0x2a3e
00001c48: JUMP
00001c49: JUMPDEST
00001c4a: SWAP1
00001c4b: POP
00001c4c: JUMPDEST
00001c4d: SWAP3
00001c4e: SWAP2
00001c4f: POP
00001c50: POP
00001c51: JUMP
00001c52: JUMPDEST
00001c53: PUSH1 0x03
00001c55: SLOAD
00001c56: DUP2
00001c57: JUMP
00001c58: JUMPDEST
00001c59: PUSH1 0x06
00001c5b: PUSH1 0x20
00001c5d: MSTORE
00001c5e: DUP1
00001c5f: PUSH1 0x00
00001c61: MSTORE
00001c62: PUSH1 0x40
00001c64: PUSH1 0x00
00001c66: KECCAK256
00001c67: PUSH1 0x00
00001c69: SWAP2
00001c6a: POP
00001c6b: SLOAD
00001c6c: SWAP1
00001c6d: PUSH2 0x0100
00001c70: EXP
00001c71: SWAP1
00001c72: DIV
00001c73: PUSH1 0xff
00001c75: AND
00001c76: DUP2
00001c77: JUMP
00001c78: JUMPDEST
00001c79: PUSH1 0x00
00001c7b: DUP1
00001c7c: SWAP1
00001c7d: SLOAD
00001c7e: SWAP1
00001c7f: PUSH2 0x0100
00001c82: EXP
00001c83: SWAP1
00001c84: DIV
00001c85: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c9a: AND
00001c9b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cb0: AND
00001cb1: CALLER
00001cb2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cc7: AND
00001cc8: EQ
00001cc9: ISZERO
00001cca: ISZERO
00001ccb: PUSH2 0x1cd3
00001cce: JUMPI
00001ccf: PUSH1 0x00
00001cd1: DUP1
00001cd2: REVERT
00001cd3: JUMPDEST
00001cd4: PUSH1 0x00
00001cd6: PUSH1 0x06
00001cd8: PUSH1 0x00
00001cda: DUP4
00001cdb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cf0: AND
00001cf1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d06: AND
00001d07: DUP2
00001d08: MSTORE
00001d09: PUSH1 0x20
00001d0b: ADD
00001d0c: SWAP1
00001d0d: DUP2
00001d0e: MSTORE
00001d0f: PUSH1 0x20
00001d11: ADD
00001d12: PUSH1 0x00
00001d14: KECCAK256
00001d15: PUSH1 0x00
00001d17: PUSH2 0x0100
00001d1a: EXP
00001d1b: DUP2
00001d1c: SLOAD
00001d1d: DUP2
00001d1e: PUSH1 0xff
00001d20: MUL
00001d21: NOT
00001d22: AND
00001d23: SWAP1
00001d24: DUP4
00001d25: ISZERO
00001d26: ISZERO
00001d27: MUL
00001d28: OR
00001d29: SWAP1
00001d2a: SSTORE
00001d2b: POP
00001d2c: PUSH32 0xd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c
00001d4d: DUP2
00001d4e: PUSH1 0x40
00001d50: MLOAD
00001d51: DUP1
00001d52: DUP3
00001d53: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d68: AND
00001d69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d7e: AND
00001d7f: DUP2
00001d80: MSTORE
00001d81: PUSH1 0x20
00001d83: ADD
00001d84: SWAP2
00001d85: POP
00001d86: POP
00001d87: PUSH1 0x40
00001d89: MLOAD
00001d8a: DUP1
00001d8b: SWAP2
00001d8c: SUB
00001d8d: SWAP1
00001d8e: LOG1
00001d8f: POP
00001d90: JUMP
00001d91: JUMPDEST
00001d92: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001db3: DUP2
00001db4: JUMP
00001db5: JUMPDEST
00001db6: PUSH1 0x00
00001db8: DUP1
00001db9: SWAP1
00001dba: SLOAD
00001dbb: SWAP1
00001dbc: PUSH2 0x0100
00001dbf: EXP
00001dc0: SWAP1
00001dc1: DIV
00001dc2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001dd7: AND
00001dd8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ded: AND
00001dee: CALLER
00001def: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e04: AND
00001e05: EQ
00001e06: ISZERO
00001e07: ISZERO
00001e08: PUSH2 0x1e10
00001e0b: JUMPI
00001e0c: PUSH1 0x00
00001e0e: DUP1
00001e0f: REVERT
00001e10: JUMPDEST
00001e11: PUSH1 0x00
00001e13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e28: AND
00001e29: DUP2
00001e2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e3f: AND
00001e40: EQ
00001e41: ISZERO
00001e42: ISZERO
00001e43: PUSH2 0x1e87
00001e46: JUMPI
00001e47: DUP1
00001e48: PUSH1 0x00
00001e4a: DUP1
00001e4b: PUSH2 0x0100
00001e4e: EXP
00001e4f: DUP2
00001e50: SLOAD
00001e51: DUP2
00001e52: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e67: MUL
00001e68: NOT
00001e69: AND
00001e6a: SWAP1
00001e6b: DUP4
00001e6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e81: AND
00001e82: MUL
00001e83: OR
00001e84: SWAP1
00001e85: SSTORE
00001e86: POP
00001e87: JUMPDEST
00001e88: POP
00001e89: JUMP
00001e8a: JUMPDEST
00001e8b: PUSH1 0x00
00001e8d: DUP1
00001e8e: PUSH1 0x00
00001e90: SWAP1
00001e91: SLOAD
00001e92: SWAP1
00001e93: PUSH2 0x0100
00001e96: EXP
00001e97: SWAP1
00001e98: DIV
00001e99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001eae: AND
00001eaf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ec4: AND
00001ec5: CALLER
00001ec6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001edb: AND
00001edc: EQ
00001edd: ISZERO
00001ede: ISZERO
00001edf: PUSH2 0x1ee7
00001ee2: JUMPI
00001ee3: PUSH1 0x00
00001ee5: DUP1
00001ee6: REVERT
00001ee7: JUMPDEST
00001ee8: PUSH1 0x06
00001eea: PUSH1 0x00
00001eec: DUP4
00001eed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f02: AND
00001f03: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f18: AND
00001f19: DUP2
00001f1a: MSTORE
00001f1b: PUSH1 0x20
00001f1d: ADD
00001f1e: SWAP1
00001f1f: DUP2
00001f20: MSTORE
00001f21: PUSH1 0x20
00001f23: ADD
00001f24: PUSH1 0x00
00001f26: KECCAK256
00001f27: PUSH1 0x00
00001f29: SWAP1
00001f2a: SLOAD
00001f2b: SWAP1
00001f2c: PUSH2 0x0100
00001f2f: EXP
00001f30: SWAP1
00001f31: DIV
00001f32: PUSH1 0xff
00001f34: AND
00001f35: ISZERO
00001f36: ISZERO
00001f37: PUSH2 0x1f3f
00001f3a: JUMPI
00001f3b: PUSH1 0x00
00001f3d: DUP1
00001f3e: REVERT
00001f3f: JUMPDEST
00001f40: PUSH2 0x1f48
00001f43: DUP3
00001f44: PUSH2 0x1239
00001f47: JUMP
00001f48: JUMPDEST
00001f49: SWAP1
00001f4a: POP
00001f4b: PUSH1 0x00
00001f4d: PUSH1 0x02
00001f4f: PUSH1 0x00
00001f51: DUP5
00001f52: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f67: AND
00001f68: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f7d: AND
00001f7e: DUP2
00001f7f: MSTORE
00001f80: PUSH1 0x20
00001f82: ADD
00001f83: SWAP1
00001f84: DUP2
00001f85: MSTORE
00001f86: PUSH1 0x20
00001f88: ADD
00001f89: PUSH1 0x00
00001f8b: KECCAK256
00001f8c: DUP2
00001f8d: SWAP1
00001f8e: SSTORE
00001f8f: POP
00001f90: DUP1
00001f91: PUSH1 0x01
00001f93: PUSH1 0x00
00001f95: DUP3
00001f96: DUP3
00001f97: SLOAD
00001f98: SUB
00001f99: SWAP3
00001f9a: POP
00001f9b: POP
00001f9c: DUP2
00001f9d: SWAP1
00001f9e: SSTORE
00001f9f: POP
00001fa0: PUSH32 0x61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c6
00001fc1: DUP3
00001fc2: DUP3
00001fc3: PUSH1 0x40
00001fc5: MLOAD
00001fc6: DUP1
00001fc7: DUP4
00001fc8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fdd: AND
00001fde: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ff3: AND
00001ff4: DUP2
00001ff5: MSTORE
00001ff6: PUSH1 0x20
00001ff8: ADD
00001ff9: DUP3
00001ffa: DUP2
00001ffb: MSTORE
00001ffc: PUSH1 0x20
00001ffe: ADD
00001fff: SWAP3
00002000: POP
00002001: POP
00002002: POP
00002003: PUSH1 0x40
00002005: MLOAD
00002006: DUP1
00002007: SWAP2
00002008: SUB
00002009: SWAP1
0000200a: LOG1
0000200b: POP
0000200c: POP
0000200d: JUMP
0000200e: JUMPDEST
0000200f: PUSH1 0x40
00002011: PUSH1 0x04
00002013: DUP2
00002014: ADD
00002015: PUSH1 0x00
00002017: CALLDATASIZE
00002018: SWAP1
00002019: POP
0000201a: LT
0000201b: ISZERO
0000201c: ISZERO
0000201d: ISZERO
0000201e: PUSH2 0x2026
00002021: JUMPI
00002022: PUSH1 0x00
00002024: DUP1
00002025: REVERT
00002026: JUMPDEST
00002027: PUSH1 0x00
00002029: DUP3
0000202a: EQ
0000202b: ISZERO
0000202c: DUP1
0000202d: ISZERO
0000202e: PUSH2 0x20b4
00002031: JUMPI
00002032: POP
00002033: PUSH1 0x00
00002035: PUSH1 0x05
00002037: PUSH1 0x00
00002039: CALLER
0000203a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000204f: AND
00002050: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002065: AND
00002066: DUP2
00002067: MSTORE
00002068: PUSH1 0x20
0000206a: ADD
0000206b: SWAP1
0000206c: DUP2
0000206d: MSTORE
0000206e: PUSH1 0x20
00002070: ADD
00002071: PUSH1 0x00
00002073: KECCAK256
00002074: PUSH1 0x00
00002076: DUP6
00002077: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000208c: AND
0000208d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020a2: AND
000020a3: DUP2
000020a4: MSTORE
000020a5: PUSH1 0x20
000020a7: ADD
000020a8: SWAP1
000020a9: DUP2
000020aa: MSTORE
000020ab: PUSH1 0x20
000020ad: ADD
000020ae: PUSH1 0x00
000020b0: KECCAK256
000020b1: SLOAD
000020b2: EQ
000020b3: ISZERO
000020b4: JUMPDEST
000020b5: ISZERO
000020b6: ISZERO
000020b7: ISZERO
000020b8: PUSH2 0x20c0
000020bb: JUMPI
000020bc: PUSH1 0x00
000020be: DUP1
000020bf: REVERT
000020c0: JUMPDEST
000020c1: DUP2
000020c2: PUSH1 0x05
000020c4: PUSH1 0x00
000020c6: CALLER
000020c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020dc: AND
000020dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020f2: AND
000020f3: DUP2
000020f4: MSTORE
000020f5: PUSH1 0x20
000020f7: ADD
000020f8: SWAP1
000020f9: DUP2
000020fa: MSTORE
000020fb: PUSH1 0x20
000020fd: ADD
000020fe: PUSH1 0x00
00002100: KECCAK256
00002101: PUSH1 0x00
00002103: DUP6
00002104: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002119: AND
0000211a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000212f: AND
00002130: DUP2
00002131: MSTORE
00002132: PUSH1 0x20
00002134: ADD
00002135: SWAP1
00002136: DUP2
00002137: MSTORE
00002138: PUSH1 0x20
0000213a: ADD
0000213b: PUSH1 0x00
0000213d: KECCAK256
0000213e: DUP2
0000213f: SWAP1
00002140: SSTORE
00002141: POP
00002142: DUP3
00002143: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002158: AND
00002159: CALLER
0000215a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000216f: AND
00002170: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00002191: DUP5
00002192: PUSH1 0x40
00002194: MLOAD
00002195: DUP1
00002196: DUP3
00002197: DUP2
00002198: MSTORE
00002199: PUSH1 0x20
0000219b: ADD
0000219c: SWAP2
0000219d: POP
0000219e: POP
0000219f: PUSH1 0x40
000021a1: MLOAD
000021a2: DUP1
000021a3: SWAP2
000021a4: SUB
000021a5: SWAP1
000021a6: LOG3
000021a7: POP
000021a8: POP
000021a9: POP
000021aa: JUMP
000021ab: JUMPDEST
000021ac: PUSH1 0x00
000021ae: DUP1
000021af: PUSH1 0x00
000021b1: PUSH1 0x60
000021b3: PUSH1 0x04
000021b5: DUP2
000021b6: ADD
000021b7: PUSH1 0x00
000021b9: CALLDATASIZE
000021ba: SWAP1
000021bb: POP
000021bc: LT
000021bd: ISZERO
000021be: ISZERO
000021bf: ISZERO
000021c0: PUSH2 0x21c8
000021c3: JUMPI
000021c4: PUSH1 0x00
000021c6: DUP1
000021c7: REVERT
000021c8: JUMPDEST
000021c9: PUSH1 0x05
000021cb: PUSH1 0x00
000021cd: DUP9
000021ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021e3: AND
000021e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021f9: AND
000021fa: DUP2
000021fb: MSTORE
000021fc: PUSH1 0x20
000021fe: ADD
000021ff: SWAP1
00002200: DUP2
00002201: MSTORE
00002202: PUSH1 0x20
00002204: ADD
00002205: PUSH1 0x00
00002207: KECCAK256
00002208: PUSH1 0x00
0000220a: CALLER
0000220b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002220: AND
00002221: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002236: AND
00002237: DUP2
00002238: MSTORE
00002239: PUSH1 0x20
0000223b: ADD
0000223c: SWAP1
0000223d: DUP2
0000223e: MSTORE
0000223f: PUSH1 0x20
00002241: ADD
00002242: PUSH1 0x00
00002244: KECCAK256
00002245: SLOAD
00002246: SWAP4
00002247: POP
00002248: PUSH2 0x2270
0000224b: PUSH2 0x2710
0000224e: PUSH2 0x2262
00002251: PUSH1 0x03
00002253: SLOAD
00002254: DUP9
00002255: PUSH2 0x2a03
00002258: SWAP1
00002259: SWAP2
0000225a: SWAP1
0000225b: PUSH4 0xffffffff
00002260: AND
00002261: JUMP
00002262: JUMPDEST
00002263: PUSH2 0x2ac5
00002266: SWAP1
00002267: SWAP2
00002268: SWAP1
00002269: PUSH4 0xffffffff
0000226e: AND
0000226f: JUMP
00002270: JUMPDEST
00002271: SWAP3
00002272: POP
00002273: PUSH1 0x04
00002275: SLOAD
00002276: DUP4
00002277: GT
00002278: ISZERO
00002279: PUSH2 0x2282
0000227c: JUMPI
0000227d: PUSH1 0x04
0000227f: SLOAD
00002280: SWAP3
00002281: POP
00002282: JUMPDEST
00002283: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000022a4: DUP5
000022a5: LT
000022a6: ISZERO
000022a7: PUSH2 0x233e
000022aa: JUMPI
000022ab: PUSH2 0x22bd
000022ae: DUP6
000022af: DUP6
000022b0: PUSH2 0x2ae0
000022b3: SWAP1
000022b4: SWAP2
000022b5: SWAP1
000022b6: PUSH4 0xffffffff
000022bb: AND
000022bc: JUMP
000022bd: JUMPDEST
000022be: PUSH1 0x05
000022c0: PUSH1 0x00
000022c2: DUP10
000022c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022d8: AND
000022d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022ee: AND
000022ef: DUP2
000022f0: MSTORE
000022f1: PUSH1 0x20
000022f3: ADD
000022f4: SWAP1
000022f5: DUP2
000022f6: MSTORE
000022f7: PUSH1 0x20
000022f9: ADD
000022fa: PUSH1 0x00
000022fc: KECCAK256
000022fd: PUSH1 0x00
000022ff: CALLER
00002300: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002315: AND
00002316: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000232b: AND
0000232c: DUP2
0000232d: MSTORE
0000232e: PUSH1 0x20
00002330: ADD
00002331: SWAP1
00002332: DUP2
00002333: MSTORE
00002334: PUSH1 0x20
00002336: ADD
00002337: PUSH1 0x00
00002339: KECCAK256
0000233a: DUP2
0000233b: SWAP1
0000233c: SSTORE
0000233d: POP
0000233e: JUMPDEST
0000233f: PUSH2 0x2351
00002342: DUP4
00002343: DUP7
00002344: PUSH2 0x2ae0
00002347: SWAP1
00002348: SWAP2
00002349: SWAP1
0000234a: PUSH4 0xffffffff
0000234f: AND
00002350: JUMP
00002351: JUMPDEST
00002352: SWAP2
00002353: POP
00002354: PUSH2 0x23a5
00002357: DUP6
00002358: PUSH1 0x02
0000235a: PUSH1 0x00
0000235c: DUP11
0000235d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002372: AND
00002373: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002388: AND
00002389: DUP2
0000238a: MSTORE
0000238b: PUSH1 0x20
0000238d: ADD
0000238e: SWAP1
0000238f: DUP2
00002390: MSTORE
00002391: PUSH1 0x20
00002393: ADD
00002394: PUSH1 0x00
00002396: KECCAK256
00002397: SLOAD
00002398: PUSH2 0x2ae0
0000239b: SWAP1
0000239c: SWAP2
0000239d: SWAP1
0000239e: PUSH4 0xffffffff
000023a3: AND
000023a4: JUMP
000023a5: JUMPDEST
000023a6: PUSH1 0x02
000023a8: PUSH1 0x00
000023aa: DUP10
000023ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023c0: AND
000023c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023d6: AND
000023d7: DUP2
000023d8: MSTORE
000023d9: PUSH1 0x20
000023db: ADD
000023dc: SWAP1
000023dd: DUP2
000023de: MSTORE
000023df: PUSH1 0x20
000023e1: ADD
000023e2: PUSH1 0x00
000023e4: KECCAK256
000023e5: DUP2
000023e6: SWAP1
000023e7: SSTORE
000023e8: POP
000023e9: PUSH2 0x243a
000023ec: DUP3
000023ed: PUSH1 0x02
000023ef: PUSH1 0x00
000023f1: DUP10
000023f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002407: AND
00002408: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000241d: AND
0000241e: DUP2
0000241f: MSTORE
00002420: PUSH1 0x20
00002422: ADD
00002423: SWAP1
00002424: DUP2
00002425: MSTORE
00002426: PUSH1 0x20
00002428: ADD
00002429: PUSH1 0x00
0000242b: KECCAK256
0000242c: SLOAD
0000242d: PUSH2 0x2af9
00002430: SWAP1
00002431: SWAP2
00002432: SWAP1
00002433: PUSH4 0xffffffff
00002438: AND
00002439: JUMP
0000243a: JUMPDEST
0000243b: PUSH1 0x02
0000243d: PUSH1 0x00
0000243f: DUP9
00002440: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002455: AND
00002456: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000246b: AND
0000246c: DUP2
0000246d: MSTORE
0000246e: PUSH1 0x20
00002470: ADD
00002471: SWAP1
00002472: DUP2
00002473: MSTORE
00002474: PUSH1 0x20
00002476: ADD
00002477: PUSH1 0x00
00002479: KECCAK256
0000247a: DUP2
0000247b: SWAP1
0000247c: SSTORE
0000247d: POP
0000247e: PUSH1 0x00
00002480: DUP4
00002481: GT
00002482: ISZERO
00002483: PUSH2 0x25e4
00002486: JUMPI
00002487: PUSH2 0x24f9
0000248a: DUP4
0000248b: PUSH1 0x02
0000248d: PUSH1 0x00
0000248f: DUP1
00002490: PUSH1 0x00
00002492: SWAP1
00002493: SLOAD
00002494: SWAP1
00002495: PUSH2 0x0100
00002498: EXP
00002499: SWAP1
0000249a: DIV
0000249b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024b0: AND
000024b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024c6: AND
000024c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024dc: AND
000024dd: DUP2
000024de: MSTORE
000024df: PUSH1 0x20
000024e1: ADD
000024e2: SWAP1
000024e3: DUP2
000024e4: MSTORE
000024e5: PUSH1 0x20
000024e7: ADD
000024e8: PUSH1 0x00
000024ea: KECCAK256
000024eb: SLOAD
000024ec: PUSH2 0x2af9
000024ef: SWAP1
000024f0: SWAP2
000024f1: SWAP1
000024f2: PUSH4 0xffffffff
000024f7: AND
000024f8: JUMP
000024f9: JUMPDEST
000024fa: PUSH1 0x02
000024fc: PUSH1 0x00
000024fe: DUP1
000024ff: PUSH1 0x00
00002501: SWAP1
00002502: SLOAD
00002503: SWAP1
00002504: PUSH2 0x0100
00002507: EXP
00002508: SWAP1
00002509: DIV
0000250a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000251f: AND
00002520: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002535: AND
00002536: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000254b: AND
0000254c: DUP2
0000254d: MSTORE
0000254e: PUSH1 0x20
00002550: ADD
00002551: SWAP1
00002552: DUP2
00002553: MSTORE
00002554: PUSH1 0x20
00002556: ADD
00002557: PUSH1 0x00
00002559: KECCAK256
0000255a: DUP2
0000255b: SWAP1
0000255c: SSTORE
0000255d: POP
0000255e: PUSH1 0x00
00002560: DUP1
00002561: SWAP1
00002562: SLOAD
00002563: SWAP1
00002564: PUSH2 0x0100
00002567: EXP
00002568: SWAP1
00002569: DIV
0000256a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000257f: AND
00002580: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002595: AND
00002596: DUP8
00002597: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025ac: AND
000025ad: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
000025ce: DUP6
000025cf: PUSH1 0x40
000025d1: MLOAD
000025d2: DUP1
000025d3: DUP3
000025d4: DUP2
000025d5: MSTORE
000025d6: PUSH1 0x20
000025d8: ADD
000025d9: SWAP2
000025da: POP
000025db: POP
000025dc: PUSH1 0x40
000025de: MLOAD
000025df: DUP1
000025e0: SWAP2
000025e1: SUB
000025e2: SWAP1
000025e3: LOG3
000025e4: JUMPDEST
000025e5: DUP6
000025e6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025fb: AND
000025fc: DUP8
000025fd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002612: AND
00002613: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00002634: DUP5
00002635: PUSH1 0x40
00002637: MLOAD
00002638: DUP1
00002639: DUP3
0000263a: DUP2
0000263b: MSTORE
0000263c: PUSH1 0x20
0000263e: ADD
0000263f: SWAP2
00002640: POP
00002641: POP
00002642: PUSH1 0x40
00002644: MLOAD
00002645: DUP1
00002646: SWAP2
00002647: SUB
00002648: SWAP1
00002649: LOG3
0000264a: POP
0000264b: POP
0000264c: POP
0000264d: POP
0000264e: POP
0000264f: POP
00002650: POP
00002651: JUMP
00002652: JUMPDEST
00002653: PUSH1 0x00
00002655: PUSH1 0x02
00002657: PUSH1 0x00
00002659: DUP4
0000265a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000266f: AND
00002670: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002685: AND
00002686: DUP2
00002687: MSTORE
00002688: PUSH1 0x20
0000268a: ADD
0000268b: SWAP1
0000268c: DUP2
0000268d: MSTORE
0000268e: PUSH1 0x20
00002690: ADD
00002691: PUSH1 0x00
00002693: KECCAK256
00002694: SLOAD
00002695: SWAP1
00002696: POP
00002697: SWAP2
00002698: SWAP1
00002699: POP
0000269a: JUMP
0000269b: JUMPDEST
0000269c: PUSH1 0x00
0000269e: DUP1
0000269f: PUSH1 0x40
000026a1: PUSH1 0x04
000026a3: DUP2
000026a4: ADD
000026a5: PUSH1 0x00
000026a7: CALLDATASIZE
000026a8: SWAP1
000026a9: POP
000026aa: LT
000026ab: ISZERO
000026ac: ISZERO
000026ad: ISZERO
000026ae: PUSH2 0x26b6
000026b1: JUMPI
000026b2: PUSH1 0x00
000026b4: DUP1
000026b5: REVERT
000026b6: JUMPDEST
000026b7: PUSH2 0x26df
000026ba: PUSH2 0x2710
000026bd: PUSH2 0x26d1
000026c0: PUSH1 0x03
000026c2: SLOAD
000026c3: DUP8
000026c4: PUSH2 0x2a03
000026c7: SWAP1
000026c8: SWAP2
000026c9: SWAP1
000026ca: PUSH4 0xffffffff
000026cf: AND
000026d0: JUMP
000026d1: JUMPDEST
000026d2: PUSH2 0x2ac5
000026d5: SWAP1
000026d6: SWAP2
000026d7: SWAP1
000026d8: PUSH4 0xffffffff
000026dd: AND
000026de: JUMP
000026df: JUMPDEST
000026e0: SWAP3
000026e1: POP
000026e2: PUSH1 0x04
000026e4: SLOAD
000026e5: DUP4
000026e6: GT
000026e7: ISZERO
000026e8: PUSH2 0x26f1
000026eb: JUMPI
000026ec: PUSH1 0x04
000026ee: SLOAD
000026ef: SWAP3
000026f0: POP
000026f1: JUMPDEST
000026f2: PUSH2 0x2704
000026f5: DUP4
000026f6: DUP6
000026f7: PUSH2 0x2ae0
000026fa: SWAP1
000026fb: SWAP2
000026fc: SWAP1
000026fd: PUSH4 0xffffffff
00002702: AND
00002703: JUMP
00002704: JUMPDEST
00002705: SWAP2
00002706: POP
00002707: PUSH2 0x2758
0000270a: DUP5
0000270b: PUSH1 0x02
0000270d: PUSH1 0x00
0000270f: CALLER
00002710: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002725: AND
00002726: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000273b: AND
0000273c: DUP2
0000273d: MSTORE
0000273e: PUSH1 0x20
00002740: ADD
00002741: SWAP1
00002742: DUP2
00002743: MSTORE
00002744: PUSH1 0x20
00002746: ADD
00002747: PUSH1 0x00
00002749: KECCAK256
0000274a: SLOAD
0000274b: PUSH2 0x2ae0
0000274e: SWAP1
0000274f: SWAP2
00002750: SWAP1
00002751: PUSH4 0xffffffff
00002756: AND
00002757: JUMP
00002758: JUMPDEST
00002759: PUSH1 0x02
0000275b: PUSH1 0x00
0000275d: CALLER
0000275e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002773: AND
00002774: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002789: AND
0000278a: DUP2
0000278b: MSTORE
0000278c: PUSH1 0x20
0000278e: ADD
0000278f: SWAP1
00002790: DUP2
00002791: MSTORE
00002792: PUSH1 0x20
00002794: ADD
00002795: PUSH1 0x00
00002797: KECCAK256
00002798: DUP2
00002799: SWAP1
0000279a: SSTORE
0000279b: POP
0000279c: PUSH2 0x27ed
0000279f: DUP3
000027a0: PUSH1 0x02
000027a2: PUSH1 0x00
000027a4: DUP9
000027a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000027ba: AND
000027bb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000027d0: AND
000027d1: DUP2
000027d2: MSTORE
000027d3: PUSH1 0x20
000027d5: ADD
000027d6: SWAP1
000027d7: DUP2
000027d8: MSTORE
000027d9: PUSH1 0x20
000027db: ADD
000027dc: PUSH1 0x00
000027de: KECCAK256
000027df: SLOAD
000027e0: PUSH2 0x2af9
000027e3: SWAP1
000027e4: SWAP2
000027e5: SWAP1
000027e6: PUSH4 0xffffffff
000027eb: AND
000027ec: JUMP
000027ed: JUMPDEST
000027ee: PUSH1 0x02
000027f0: PUSH1 0x00
000027f2: DUP8
000027f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002808: AND
00002809: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000281e: AND
0000281f: DUP2
00002820: MSTORE
00002821: PUSH1 0x20
00002823: ADD
00002824: SWAP1
00002825: DUP2
00002826: MSTORE
00002827: PUSH1 0x20
00002829: ADD
0000282a: PUSH1 0x00
0000282c: KECCAK256
0000282d: DUP2
0000282e: SWAP1
0000282f: SSTORE
00002830: POP
00002831: PUSH1 0x00
00002833: DUP4
00002834: GT
00002835: ISZERO
00002836: PUSH2 0x2997
00002839: JUMPI
0000283a: PUSH2 0x28ac
0000283d: DUP4
0000283e: PUSH1 0x02
00002840: PUSH1 0x00
00002842: DUP1
00002843: PUSH1 0x00
00002845: SWAP1
00002846: SLOAD
00002847: SWAP1
00002848: PUSH2 0x0100
0000284b: EXP
0000284c: SWAP1
0000284d: DIV
0000284e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002863: AND
00002864: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002879: AND
0000287a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000288f: AND
00002890: DUP2
00002891: MSTORE
00002892: PUSH1 0x20
00002894: ADD
00002895: SWAP1
00002896: DUP2
00002897: MSTORE
00002898: PUSH1 0x20
0000289a: ADD
0000289b: PUSH1 0x00
0000289d: KECCAK256
0000289e: SLOAD
0000289f: PUSH2 0x2af9
000028a2: SWAP1
000028a3: SWAP2
000028a4: SWAP1
000028a5: PUSH4 0xffffffff
000028aa: AND
000028ab: JUMP
000028ac: JUMPDEST
000028ad: PUSH1 0x02
000028af: PUSH1 0x00
000028b1: DUP1
000028b2: PUSH1 0x00
000028b4: SWAP1
000028b5: SLOAD
000028b6: SWAP1
000028b7: PUSH2 0x0100
000028ba: EXP
000028bb: SWAP1
000028bc: DIV
000028bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000028d2: AND
000028d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000028e8: AND
000028e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000028fe: AND
000028ff: DUP2
00002900: MSTORE
00002901: PUSH1 0x20
00002903: ADD
00002904: SWAP1
00002905: DUP2
00002906: MSTORE
00002907: PUSH1 0x20
00002909: ADD
0000290a: PUSH1 0x00
0000290c: KECCAK256
0000290d: DUP2
0000290e: SWAP1
0000290f: SSTORE
00002910: POP
00002911: PUSH1 0x00
00002913: DUP1
00002914: SWAP1
00002915: SLOAD
00002916: SWAP1
00002917: PUSH2 0x0100
0000291a: EXP
0000291b: SWAP1
0000291c: DIV
0000291d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002932: AND
00002933: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002948: AND
00002949: CALLER
0000294a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000295f: AND
00002960: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00002981: DUP6
00002982: PUSH1 0x40
00002984: MLOAD
00002985: DUP1
00002986: DUP3
00002987: DUP2
00002988: MSTORE
00002989: PUSH1 0x20
0000298b: ADD
0000298c: SWAP2
0000298d: POP
0000298e: POP
0000298f: PUSH1 0x40
00002991: MLOAD
00002992: DUP1
00002993: SWAP2
00002994: SUB
00002995: SWAP1
00002996: LOG3
00002997: JUMPDEST
00002998: DUP5
00002999: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029ae: AND
000029af: CALLER
000029b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029c5: AND
000029c6: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
000029e7: DUP5
000029e8: PUSH1 0x40
000029ea: MLOAD
000029eb: DUP1
000029ec: DUP3
000029ed: DUP2
000029ee: MSTORE
000029ef: PUSH1 0x20
000029f1: ADD
000029f2: SWAP2
000029f3: POP
000029f4: POP
000029f5: PUSH1 0x40
000029f7: MLOAD
000029f8: DUP1
000029f9: SWAP2
000029fa: SUB
000029fb: SWAP1
000029fc: LOG3
000029fd: POP
000029fe: POP
000029ff: POP
00002a00: POP
00002a01: POP
00002a02: JUMP
00002a03: JUMPDEST
00002a04: PUSH1 0x00
00002a06: DUP1
00002a07: PUSH1 0x00
00002a09: DUP5
00002a0a: EQ
00002a0b: ISZERO
00002a0c: PUSH2 0x2a18
00002a0f: JUMPI
00002a10: PUSH1 0x00
00002a12: SWAP2
00002a13: POP
00002a14: PUSH2 0x2a37
00002a17: JUMP
00002a18: JUMPDEST
00002a19: DUP3
00002a1a: DUP5
00002a1b: MUL
00002a1c: SWAP1
00002a1d: POP
00002a1e: DUP3
00002a1f: DUP5
00002a20: DUP3
00002a21: DUP2
00002a22: ISZERO
00002a23: ISZERO
00002a24: PUSH2 0x2a29
00002a27: JUMPI
00002a28: INVALID
00002a29: JUMPDEST
00002a2a: DIV
00002a2b: EQ
00002a2c: ISZERO
00002a2d: ISZERO
00002a2e: PUSH2 0x2a33
00002a31: JUMPI
00002a32: INVALID
00002a33: JUMPDEST
00002a34: DUP1
00002a35: SWAP2
00002a36: POP
00002a37: JUMPDEST
00002a38: POP
00002a39: SWAP3
00002a3a: SWAP2
00002a3b: POP
00002a3c: POP
00002a3d: JUMP
00002a3e: JUMPDEST
00002a3f: PUSH1 0x00
00002a41: PUSH1 0x05
00002a43: PUSH1 0x00
00002a45: DUP5
00002a46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a5b: AND
00002a5c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a71: AND
00002a72: DUP2
00002a73: MSTORE
00002a74: PUSH1 0x20
00002a76: ADD
00002a77: SWAP1
00002a78: DUP2
00002a79: MSTORE
00002a7a: PUSH1 0x20
00002a7c: ADD
00002a7d: PUSH1 0x00
00002a7f: KECCAK256
00002a80: PUSH1 0x00
00002a82: DUP4
00002a83: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a98: AND
00002a99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002aae: AND
00002aaf: DUP2
00002ab0: MSTORE
00002ab1: PUSH1 0x20
00002ab3: ADD
00002ab4: SWAP1
00002ab5: DUP2
00002ab6: MSTORE
00002ab7: PUSH1 0x20
00002ab9: ADD
00002aba: PUSH1 0x00
00002abc: KECCAK256
00002abd: SLOAD
00002abe: SWAP1
00002abf: POP
00002ac0: SWAP3
00002ac1: SWAP2
00002ac2: POP
00002ac3: POP
00002ac4: JUMP
00002ac5: JUMPDEST
00002ac6: PUSH1 0x00
00002ac8: DUP1
00002ac9: DUP3
00002aca: DUP5
00002acb: DUP2
00002acc: ISZERO
00002acd: ISZERO
00002ace: PUSH2 0x2ad3
00002ad1: JUMPI
00002ad2: INVALID
00002ad3: JUMPDEST
00002ad4: DIV
00002ad5: SWAP1
00002ad6: POP
00002ad7: DUP1
00002ad8: SWAP2
00002ad9: POP
00002ada: POP
00002adb: SWAP3
00002adc: SWAP2
00002add: POP
00002ade: POP
00002adf: JUMP
00002ae0: JUMPDEST
00002ae1: PUSH1 0x00
00002ae3: DUP3
00002ae4: DUP3
00002ae5: GT
00002ae6: ISZERO
00002ae7: ISZERO
00002ae8: ISZERO
00002ae9: PUSH2 0x2aee
00002aec: JUMPI
00002aed: INVALID
00002aee: JUMPDEST
00002aef: DUP2
00002af0: DUP4
00002af1: SUB
00002af2: SWAP1
00002af3: POP
00002af4: SWAP3
00002af5: SWAP2
00002af6: POP
00002af7: POP
00002af8: JUMP
00002af9: JUMPDEST
00002afa: PUSH1 0x00
00002afc: DUP1
00002afd: DUP3
00002afe: DUP5
00002aff: ADD
00002b00: SWAP1
00002b01: POP
00002b02: DUP4
00002b03: DUP2
00002b04: LT
00002b05: ISZERO
00002b06: ISZERO
00002b07: ISZERO
00002b08: PUSH2 0x2b0d
00002b0b: JUMPI
00002b0c: INVALID
00002b0d: JUMPDEST
00002b0e: DUP1
00002b0f: SWAP2
00002b10: POP
00002b11: POP
00002b12: SWAP3
00002b13: SWAP2
00002b14: POP
00002b15: POP
00002b16: JUMP
00002b17: STOP
00002b18: LOG1
00002b19: PUSH6 0x627a7a723058
00002b20: KECCAK256
00002b21: PUSH5 0x5ee12d73db
00002b27: SELFBALANCE
00002b28: REVERT
00002b29: PUSH25 0xba77fa1f824c3c8f9184061b3b10386beb4dc9236abb280029

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x4a617e9bb1ccae3674a01971557f9e6fbd94c5cc51a33da75b6a4b8f19569d94
call_targets: 0xdac17f958d2ee523a2206206994597c13d831ec7
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x4a617e9bb1ccae3674a01971557f9e6fbd94c5cc51a33da75b6a4b8f19569d94",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xdac17f958d2ee523a2206206994597c13d831ec7"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0753c30c",
            "selector": "0x0753c30c",
            "calldata_variants": [
                "0x0753c30c",
                "0x0753c30c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0e136b19",
            "selector": "0x0e136b19",
            "calldata_variants": [
                "0x0e136b19",
                "0x0e136b190000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ecb93c0",
            "selector": "0x0ecb93c0",
            "calldata_variants": [
                "0x0ecb93c0",
                "0x0ecb93c00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3230,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3736,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4217,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 6,
    "guards_detected": [
        {
            "pc": 2703,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 3341,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4390,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4993,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5847,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6076,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6579,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 7345,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 7662,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 7877,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 6
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x4a617e9bb1ccae3674a01971557f9e6fbd94c5cc51a33da75b6a4b8f19569d94
call_targets: 0xdac17f958d2ee523a2206206994597c13d831ec7
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x4a617e9bb1ccae3674a01971557f9e6fbd94c5cc51a33da75b6a4b8f19569d94",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xdac17f958d2ee523a2206206994597c13d831ec7"
    ],
    "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": "0xffffffff",
            "selector": "0xffffffff",
            "calldata_variants": [
                "0xffffffff",
                "0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0753c30c",
            "selector": "0x0753c30c",
            "calldata_variants": [
                "0x0753c30c",
                "0x0753c30c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0e136b19",
            "selector": "0x0e136b19",
            "calldata_variants": [
                "0x0e136b19",
                "0x0e136b190000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ecb93c0",
            "selector": "0x0ecb93c0",
            "calldata_variants": [
                "0x0ecb93c0",
                "0x0ecb93c00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x23b872dd",
            "selector": "0x23b872dd",
            "calldata_variants": [
                "0x23b872dd",
                "0x23b872dd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3230,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 3736,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4217,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 6,
    "guards_detected": [
        {
            "pc": 2703,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 3341,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4390,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 4993,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5847,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6076,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6579,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 7345,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 7662,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 7877,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
low other codex Legacy forwarder lacks payload-size checks after deprecation 65 no
view
evidence_json
{
    "evidence": "TetherToken.transfer and TetherToken.transferFrom omit onlyPayloadSize and directly forward to UpgradedStandardToken when deprecated, so msg.data length is not validated in the deprecated branch.",
    "locations": [
        "contracts/Contract.sol:336",
        "contracts/Contract.sol:346"
    ],
    "recommendation": "Add onlyPayloadSize(2*32) to TetherToken.transfer and onlyPayloadSize(3*32) to TetherToken.transferFrom (or perform an explicit msg.data.length check) before any forwarding logic, so the legacy forwarder enforces the same payload-size protection even after deprecation.",
    "exploit_scenario": "Once deprecated is true, users may still interact with the legacy token address. Because transfer/transferFrom in the legacy contract do not enforce msg.data length in the deprecated branch, a caller can craft short calldata (classic short-address attack) that shifts the decoded parameters. Integrations that build calldata manually (e.g., exchange withdrawal systems) could be tricked into sending a larger amount or to a different address than intended while the call still succeeds on the upgraded contract."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 6
}