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

Analysis Run

62905bd3-7f23-4198-8cee-9a5bc2390d2a

complete
Chain ID
1
Address
Block Number
Created
Sun, Dec 28, 2025 2:43 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
2
Validated
2
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
30311 report.consolidate complete 1 / 1 3 months ago
74050 artifact.fetch complete 1 / 3 1 week ago
74051 tool.cast_disasm complete 1 / 3 1 week ago
74052 analysis.bundle complete 1 / 3 1 week ago
74053 capability.graph complete 1 / 3 1 week ago
74054 detector.run complete 1 / 3 1 week ago
74055 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 issue: reentrancy during deposit can inflate shares and drain the vault when the underlying token supports callbacks (e.g., ERC777).
View stderr
[codex:486068] OpenAI Codex v0.77.0 (research preview)
[codex:486068] --------
[codex:486068] workdir: /tmp/codex-multi-u63pnxwl
[codex:486068] model: gpt-5.2-codex
[codex:486068] provider: openai
[codex:486068] approval: never
[codex:486068] sandbox: read-only
[codex:486068] reasoning effort: xhigh
[codex:486068] reasoning summaries: auto
[codex:486068] session id: 019b6566-8125-7ee1-af8e-c268e4899e44
[codex:486068] --------
[codex:486068] user
[codex:486068] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:486068] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:486068] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:486068] 
[codex:486068] Scope rules:
[codex:486068] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:486068] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:486068] 
[codex:486068] Output MUST be valid JSON matching the provided schema.
[codex:486068] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:486068] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:486068] 
[codex:486068] Output constraints (IMPORTANT):
[codex:486068] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:486068] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:486068] mcp startup: no servers
[codex:486068] 
[codex:486068] thinking
[codex:486068] **Preparing to review skills list**
[codex:486068] exec
[codex:486068] /bin/bash -lc ls in /tmp/codex-multi-u63pnxwl succeeded in 5ms:
[codex:486068] AUDIT_BUNDLE.txt
[codex:486068] codex-output-schema.json
[codex:486068] contracts
[codex:486068] 
[codex:486068] thinking
[codex:486068] **Reading AUDIT_BUNDLE.txt**
[codex:486068] exec
[codex:486068] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-u63pnxwl succeeded in 5ms:
[codex:486068] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:486068] 
[codex:486068] ================================================================================
[codex:486068] FILE: contracts/Contract.sol
[codex:486068] ================================================================================
[codex:486068] pragma solidity ^0.5.16;
[codex:486068] 
[codex:486068] interface IERC20 {
[codex:486068]     function totalSupply() external view returns (uint256);
[codex:486068]     function balanceOf(address account) external view returns (uint256);
[codex:486068]     function transfer(address recipient, uint256 amount) external returns (bool);
[codex:486068]     function allowance(address owner, address spender) external view returns (uint256);
[codex:486068]     function approve(address spender, uint256 amount) external returns (bool);
[codex:486068]     function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
[codex:486068]     event Transfer(address indexed from, address indexed to, uint256 value);
[codex:486068]     event Approval(address indexed owner, address indexed spender, uint256 value);
[codex:486068] }
[codex:486068] 
[codex:486068] contract Context {
[codex:486068]     constructor () internal { }
[codex:486068] 
[codex:486068] 
[codex:486068] 
[codex:486068] thinking
[codex:486068] **Performing detailed contract vulnerability analysis**
[codex:486068] 
[codex:486068] I'm carefully reviewing this Yearn Vault contract for potential security issues across a variety of vulnerability categories—reentrancy, access control, upgradeability, and more. I'm considering how each function interacts, particularly around deposits, withdrawals, and external calls, to identify any exploitable weaknesses or risks in the accounting and control flow. There is a lot here to unpack, especially with token and controller interactions, so I’m assessing each scenario for practical impact!
[codex:486068] thinking
[codex:486068] **Highlighting reentrancy and share inflation risk**
[codex:486068] 
[codex:486068] There is a notable reentrancy vulnerability here related to how shares are minted during deposits. Because the pool balance is read before transferring tokens—and the total supply used in share calculation can be updated via reentrant calls—an attacker using a token with reentrant hooks (like ERC777) could repeatedly call deposit and inflate their shares beyond the actual deposited amount, profiting unfairly. This mismatch between the pre-transfer pool and post-reentrancy total supply opens a critical accounting exploit.
[codex:486068] thinking
[codex:486068] **Explaining share calculation nuances and prevention approaches**
[codex:486068] 
[codex:486068] I’m examining how caching totalSupply before transfers interacts with reentrancy during deposits; caching alone doesn’t fully fix share inflation because the pool value can be stale due to reentrant calls. The key takeaway is that without a reentrancy guard, multiple deposits triggered during token transfer can cause inflated share minting. Preventing this requires either reentrancy guards or recalculating balances after transfers. I'll look into line numbers next to pinpoint affected code for thorough reporting.
[codex:486068] exec
[codex:486068] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '200,420p'" in /tmp/codex-multi-u63pnxwl succeeded in 8ms:
[codex:486068]    200	        require((value == 0) || (token.allowance(address(this), spender) == 0),
[codex:486068]    201	            "SafeERC20: approve from non-zero to non-zero allowance"
[codex:486068]    202	        );
[codex:486068]    203	        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
[codex:486068]    204	    }
[codex:486068]    205	
[codex:486068]    206	    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
[codex:486068]    207	        uint256 newAllowance = token.allowance(address(this), spender).add(value);
[codex:486068]    208	        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
[codex:486068]    209	    }
[codex:486068]    210	
[codex:486068]    211	    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
[codex:486068]    212	        uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
[codex:486068]    213	        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
[codex:486068]    214	    }
[codex:486068]    215	    function callOptionalReturn(IERC20 token, bytes memory data) private {
[codex:486068]    216	        require(address(token).isContract(), "SafeERC20: call to non-contract");
[codex:486068]    217	
[codex:486068]    218	        // solhint-disable-next-line avoid-low-level-calls
[codex:486068]    219	        (bool success, bytes memory returndata) = address(token).call(data);
[codex:486068] 
[codex:486068] thinking
[codex:486068] **Summarizing reentrancy vulnerability**
[codex:486068] 
[codex:486068] I’m outlining a key finding about a reentrancy risk in the `deposit` function involving ERC777-style tokens with callback hooks. The attack exploits share minting with stale pool data due to reentrancy during token transfer, potentially draining the vault. I’m preparing a JSON report with detailed severity, scenario, recommendation, evidence, and precise source line references reflecting this vulnerability.
[codex:486068] codex
[codex:486068] {"no_findings":false,"summary":"Found 1 issue: reentrancy during deposit can inflate shares and drain the vault when the underlying token supports callbacks (e.g., ERC777).","findings":[{"severity":"medium","category":"reentrancy","title":"ERC777-style reentrancy in deposit can mint excess shares","exploit_scenario":"An attacker deposits a callback-enabled token (e.g., ERC777) via a contract that reenters `deposit` from the token's transfer hooks. The outer call computes `_pool` before the transfer, while the reentrant call mints shares and increases totalSupply. The outer call then mints shares using the stale `_pool` and the inflated totalSupply, granting the attacker more shares than paid for. The attacker then withdraws to drain value from existing depositors.","recommendation":"Add a `nonReentrant` guard around `deposit` (and `depositETH`) or otherwise prevent reentrancy during token transfers. A guard is the safest fix because share accounting relies on no intermediate deposits occurring mid-call.","evidence":"`deposit` computes `_pool` and then calls `token.safeTransferFrom` before minting shares, without any reentrancy protection.","locations":["contracts/Contract.sol:303","contracts/Contract.sol:304","contracts/Contract.sol:306","contracts/Contract.sol:313","contracts/Contract.sol:315"]}]}
[codex:486068] tokens used
[codex:486068] 21,353
[codex:486068] {"no_findings":false,"summary":"Found 1 issue: reentrancy during deposit can inflate shares and drain the vault when the underlying token supports callbacks (e.g., ERC777).","findings":[{"severity":"medium","category":"reentrancy","title":"ERC777-style reentrancy in deposit can mint excess shares","exploit_scenario":"An attacker deposits a callback-enabled token (e.g., ERC777) via a contract that reenters `deposit` from the token's transfer hooks. The outer call computes `_pool` before the transfer, while the reentrant call mints shares and increases totalSupply. The outer call then mints shares using the stale `_pool` and the inflated totalSupply, granting the attacker more shares than paid for. The attacker then withdraws to drain value from existing depositors.","recommendation":"Add a `nonReentrant` guard around `deposit` (and `depositETH`) or otherwise prevent reentrancy during token transfers. A guard is the safest fix because share accounting relies on no intermediate deposits occurring mid-call.","evidence":"`deposit` computes `_pool` and then calls `token.safeTransferFrom` before minting shares, without any reentrancy protection.","locations":["contracts/Contract.sol:303","contracts/Contract.sol:304","contracts/Contract.sol:306","contracts/Contract.sol:313","contracts/Contract.sol:315"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-28T14:43:59.276947+00:00",
        "returncode": 0
    },
    "summary": "Found 1 issue: reentrancy during deposit can inflate shares and drain the vault when the underlying token supports callbacks (e.g., ERC777).",
    "raw_final": {
        "summary": "Found 1 issue: reentrancy during deposit can inflate shares and drain the vault when the underlying token supports callbacks (e.g., ERC777).",
        "findings": [
            {
                "title": "ERC777-style reentrancy in deposit can mint excess shares",
                "category": "reentrancy",
                "evidence": "`deposit` computes `_pool` and then calls `token.safeTransferFrom` before minting shares, without any reentrancy protection.",
                "severity": "medium",
                "locations": [
                    "contracts/Contract.sol:303",
                    "contracts/Contract.sol:304",
                    "contracts/Contract.sol:306",
                    "contracts/Contract.sol:313",
                    "contracts/Contract.sol:315"
                ],
                "recommendation": "Add a `nonReentrant` guard around `deposit` (and `depositETH`) or otherwise prevent reentrancy during token transfers. A guard is the safest fix because share accounting relies on no intermediate deposits occurring mid-call.",
                "exploit_scenario": "An attacker deposits a callback-enabled token (e.g., ERC777) via a contract that reenters `deposit` from the token's transfer hooks. The outer call computes `_pool` before the transfer, while the reentrant call mints shares and increases totalSupply. The outer call then mints shares using the stale `_pool` and the inflated totalSupply, granting the attacker more shares than paid for. The attacker then withdraws to drain value from existing depositors."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
19
EXT*/BALANCE
18
Total opcodes
7029
Flags
heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x01d8
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x90386bbf
00000019: GT
0000001a: PUSH2 0x0102
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xd389800f
00000024: GT
00000025: PUSH2 0x0095
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xf6326fb3
0000002f: GT
00000030: PUSH2 0x0064
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xf6326fb3
0000003a: EQ
0000003b: PUSH2 0x0a45
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xf77c4791
00000045: EQ
00000046: PUSH2 0x0a4f
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf8897945
00000050: EQ
00000051: PUSH2 0x0aa6
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xfc0c546a
0000005b: EQ
0000005c: PUSH2 0x0ad1
0000005f: JUMPI
00000060: PUSH2 0x01d8
00000063: JUMP
00000064: JUMPDEST
00000065: DUP1
00000066: PUSH4 0xd389800f
0000006b: EQ
0000006c: PUSH2 0x0957
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xdd62ed3e
00000076: EQ
00000077: PUSH2 0x096e
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xde5f6268
00000081: EQ
00000082: PUSH2 0x09f3
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xf14210a6
0000008c: EQ
0000008d: PUSH2 0x0a0a
00000090: JUMPI
00000091: PUSH2 0x01d8
00000094: JUMP
00000095: JUMPDEST
00000096: DUP1
00000097: PUSH4 0xa9059cbb
0000009c: GT
0000009d: PUSH2 0x00d1
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xa9059cbb
000000a7: EQ
000000a8: PUSH2 0x082d
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xab033ea9
000000b2: EQ
000000b3: PUSH2 0x08a0
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xb69ef8a8
000000bd: EQ
000000be: PUSH2 0x08f1
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0xb6b55f25
000000c8: EQ
000000c9: PUSH2 0x091c
000000cc: JUMPI
000000cd: PUSH2 0x01d8
000000d0: JUMP
000000d1: JUMPDEST
000000d2: DUP1
000000d3: PUSH4 0x90386bbf
000000d8: EQ
000000d9: PUSH2 0x06c2
000000dc: JUMPI
000000dd: DUP1
000000de: PUSH4 0x92eefe9b
000000e3: EQ
000000e4: PUSH2 0x06d9
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0x95d89b41
000000ee: EQ
000000ef: PUSH2 0x072a
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0xa457c2d7
000000f9: EQ
000000fa: PUSH2 0x07ba
000000fd: JUMPI
000000fe: PUSH2 0x01d8
00000101: JUMP
00000102: JUMPDEST
00000103: DUP1
00000104: PUSH4 0x39509351
00000109: GT
0000010a: PUSH2 0x017a
0000010d: JUMPI
0000010e: DUP1
0000010f: PUSH4 0x6ac5db19
00000114: GT
00000115: PUSH2 0x0149
00000118: JUMPI
00000119: DUP1
0000011a: PUSH4 0x6ac5db19
0000011f: EQ
00000120: PUSH2 0x05f0
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x70a08231
0000012a: EQ
0000012b: PUSH2 0x061b
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0x77c7b8fc
00000135: EQ
00000136: PUSH2 0x0680
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0x853828b6
00000140: EQ
00000141: PUSH2 0x06ab
00000144: JUMPI
00000145: PUSH2 0x01d8
00000148: JUMP
00000149: JUMPDEST
0000014a: DUP1
0000014b: PUSH4 0x39509351
00000150: EQ
00000151: PUSH2 0x04c0
00000154: JUMPI
00000155: DUP1
00000156: PUSH4 0x45dc3dd8
0000015b: EQ
0000015c: PUSH2 0x0533
0000015f: JUMPI
00000160: DUP1
00000161: PUSH4 0x48a0d754
00000166: EQ
00000167: PUSH2 0x056e
0000016a: JUMPI
0000016b: DUP1
0000016c: PUSH4 0x5aa6e675
00000171: EQ
00000172: PUSH2 0x0599
00000175: JUMPI
00000176: PUSH2 0x01d8
00000179: JUMP
0000017a: JUMPDEST
0000017b: DUP1
0000017c: PUSH4 0x18160ddd
00000181: GT
00000182: PUSH2 0x01b6
00000185: JUMPI
00000186: DUP1
00000187: PUSH4 0x18160ddd
0000018c: EQ
0000018d: PUSH2 0x0396
00000190: JUMPI
00000191: DUP1
00000192: PUSH4 0x23b872dd
00000197: EQ
00000198: PUSH2 0x03c1
0000019b: JUMPI
0000019c: DUP1
0000019d: PUSH4 0x2e1a7d4d
000001a2: EQ
000001a3: PUSH2 0x0454
000001a6: JUMPI
000001a7: DUP1
000001a8: PUSH4 0x313ce567
000001ad: EQ
000001ae: PUSH2 0x048f
000001b1: JUMPI
000001b2: PUSH2 0x01d8
000001b5: JUMP
000001b6: JUMPDEST
000001b7: DUP1
000001b8: PUSH4 0x018ee9b7
000001bd: EQ
000001be: PUSH2 0x0238
000001c1: JUMPI
000001c2: DUP1
000001c3: PUSH4 0x06fdde03
000001c8: EQ
000001c9: PUSH2 0x0293
000001cc: JUMPI
000001cd: DUP1
000001ce: PUSH4 0x095ea7b3
000001d3: EQ
000001d4: PUSH2 0x0323
000001d7: JUMPI
000001d8: JUMPDEST
000001d9: PUSH1 0x05
000001db: PUSH1 0x01
000001dd: SWAP1
000001de: SLOAD
000001df: SWAP1
000001e0: PUSH2 0x0100
000001e3: EXP
000001e4: SWAP1
000001e5: DIV
000001e6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000001fb: AND
000001fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000211: AND
00000212: CALLER
00000213: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000228: AND
00000229: EQ
0000022a: PUSH2 0x0236
0000022d: JUMPI
0000022e: PUSH2 0x0235
00000231: PUSH2 0x0b28
00000234: JUMP
00000235: JUMPDEST
00000236: JUMPDEST
00000237: STOP
00000238: JUMPDEST
00000239: CALLVALUE
0000023a: DUP1
0000023b: ISZERO
0000023c: PUSH2 0x0244
0000023f: JUMPI
00000240: PUSH1 0x00
00000242: DUP1
00000243: REVERT
00000244: JUMPDEST
00000245: POP
00000246: PUSH2 0x0291
00000249: PUSH1 0x04
0000024b: DUP1
0000024c: CALLDATASIZE
0000024d: SUB
0000024e: PUSH1 0x40
00000250: DUP2
00000251: LT
00000252: ISZERO
00000253: PUSH2 0x025b
00000256: JUMPI
00000257: PUSH1 0x00
00000259: DUP1
0000025a: REVERT
0000025b: JUMPDEST
0000025c: DUP2
0000025d: ADD
0000025e: SWAP1
0000025f: DUP1
00000260: DUP1
00000261: CALLDATALOAD
00000262: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000277: AND
00000278: SWAP1
00000279: PUSH1 0x20
0000027b: ADD
0000027c: SWAP1
0000027d: SWAP3
0000027e: SWAP2
0000027f: SWAP1
00000280: DUP1
00000281: CALLDATALOAD
00000282: SWAP1
00000283: PUSH1 0x20
00000285: ADD
00000286: SWAP1
00000287: SWAP3
00000288: SWAP2
00000289: SWAP1
0000028a: POP
0000028b: POP
0000028c: POP
0000028d: PUSH2 0x0dea
00000290: JUMP
00000291: JUMPDEST
00000292: STOP
00000293: JUMPDEST
00000294: CALLVALUE
00000295: DUP1
00000296: ISZERO
00000297: PUSH2 0x029f
0000029a: JUMPI
0000029b: PUSH1 0x00
0000029d: DUP1
0000029e: REVERT
0000029f: JUMPDEST
000002a0: POP
000002a1: PUSH2 0x02a8
000002a4: PUSH2 0x0fc2
000002a7: JUMP
000002a8: JUMPDEST
000002a9: PUSH1 0x40
000002ab: MLOAD
000002ac: DUP1
000002ad: DUP1
000002ae: PUSH1 0x20
000002b0: ADD
000002b1: DUP3
000002b2: DUP2
000002b3: SUB
000002b4: DUP3
000002b5: MSTORE
000002b6: DUP4
000002b7: DUP2
000002b8: DUP2
000002b9: MLOAD
000002ba: DUP2
000002bb: MSTORE
000002bc: PUSH1 0x20
000002be: ADD
000002bf: SWAP2
000002c0: POP
000002c1: DUP1
000002c2: MLOAD
000002c3: SWAP1
000002c4: PUSH1 0x20
000002c6: ADD
000002c7: SWAP1
000002c8: DUP1
000002c9: DUP4
000002ca: DUP4
000002cb: PUSH1 0x00
000002cd: JUMPDEST
000002ce: DUP4
000002cf: DUP2
000002d0: LT
000002d1: ISZERO
000002d2: PUSH2 0x02e8
000002d5: JUMPI
000002d6: DUP1
000002d7: DUP3
000002d8: ADD
000002d9: MLOAD
000002da: DUP2
000002db: DUP5
000002dc: ADD
000002dd: MSTORE
000002de: PUSH1 0x20
000002e0: DUP2
000002e1: ADD
000002e2: SWAP1
000002e3: POP
000002e4: PUSH2 0x02cd
000002e7: JUMP
000002e8: JUMPDEST
000002e9: POP
000002ea: POP
000002eb: POP
000002ec: POP
000002ed: SWAP1
000002ee: POP
000002ef: SWAP1
000002f0: DUP2
000002f1: ADD
000002f2: SWAP1
000002f3: PUSH1 0x1f
000002f5: AND
000002f6: DUP1
000002f7: ISZERO
000002f8: PUSH2 0x0315
000002fb: JUMPI
000002fc: DUP1
000002fd: DUP3
000002fe: SUB
000002ff: DUP1
00000300: MLOAD
00000301: PUSH1 0x01
00000303: DUP4
00000304: PUSH1 0x20
00000306: SUB
00000307: PUSH2 0x0100
0000030a: EXP
0000030b: SUB
0000030c: NOT
0000030d: AND
0000030e: DUP2
0000030f: MSTORE
00000310: PUSH1 0x20
00000312: ADD
00000313: SWAP2
00000314: POP
00000315: JUMPDEST
00000316: POP
00000317: SWAP3
00000318: POP
00000319: POP
0000031a: POP
0000031b: PUSH1 0x40
0000031d: MLOAD
0000031e: DUP1
0000031f: SWAP2
00000320: SUB
00000321: SWAP1
00000322: RETURN
00000323: JUMPDEST
00000324: CALLVALUE
00000325: DUP1
00000326: ISZERO
00000327: PUSH2 0x032f
0000032a: JUMPI
0000032b: PUSH1 0x00
0000032d: DUP1
0000032e: REVERT
0000032f: JUMPDEST
00000330: POP
00000331: PUSH2 0x037c
00000334: PUSH1 0x04
00000336: DUP1
00000337: CALLDATASIZE
00000338: SUB
00000339: PUSH1 0x40
0000033b: DUP2
0000033c: LT
0000033d: ISZERO
0000033e: PUSH2 0x0346
00000341: JUMPI
00000342: PUSH1 0x00
00000344: DUP1
00000345: REVERT
00000346: JUMPDEST
00000347: DUP2
00000348: ADD
00000349: SWAP1
0000034a: DUP1
0000034b: DUP1
0000034c: CALLDATALOAD
0000034d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000362: AND
00000363: SWAP1
00000364: PUSH1 0x20
00000366: ADD
00000367: SWAP1
00000368: SWAP3
00000369: SWAP2
0000036a: SWAP1
0000036b: DUP1
0000036c: CALLDATALOAD
0000036d: SWAP1
0000036e: PUSH1 0x20
00000370: ADD
00000371: SWAP1
00000372: SWAP3
00000373: SWAP2
00000374: SWAP1
00000375: POP
00000376: POP
00000377: POP
00000378: PUSH2 0x1064
0000037b: JUMP
0000037c: JUMPDEST
0000037d: PUSH1 0x40
0000037f: MLOAD
00000380: DUP1
00000381: DUP3
00000382: ISZERO
00000383: ISZERO
00000384: ISZERO
00000385: ISZERO
00000386: DUP2
00000387: MSTORE
00000388: PUSH1 0x20
0000038a: ADD
0000038b: SWAP2
0000038c: POP
0000038d: POP
0000038e: PUSH1 0x40
00000390: MLOAD
00000391: DUP1
00000392: SWAP2
00000393: SUB
00000394: SWAP1
00000395: RETURN
00000396: JUMPDEST
00000397: CALLVALUE
00000398: DUP1
00000399: ISZERO
0000039a: PUSH2 0x03a2
0000039d: JUMPI
0000039e: PUSH1 0x00
000003a0: DUP1
000003a1: REVERT
000003a2: JUMPDEST
000003a3: POP
000003a4: PUSH2 0x03ab
000003a7: PUSH2 0x1082
000003aa: JUMP
000003ab: JUMPDEST
000003ac: PUSH1 0x40
000003ae: MLOAD
000003af: DUP1
000003b0: DUP3
000003b1: DUP2
000003b2: MSTORE
000003b3: PUSH1 0x20
000003b5: ADD
000003b6: SWAP2
000003b7: POP
000003b8: POP
000003b9: PUSH1 0x40
000003bb: MLOAD
000003bc: DUP1
000003bd: SWAP2
000003be: SUB
000003bf: SWAP1
000003c0: RETURN
000003c1: JUMPDEST
000003c2: CALLVALUE
000003c3: DUP1
000003c4: ISZERO
000003c5: PUSH2 0x03cd
000003c8: JUMPI
000003c9: PUSH1 0x00
000003cb: DUP1
000003cc: REVERT
000003cd: JUMPDEST
000003ce: POP
000003cf: PUSH2 0x043a
000003d2: PUSH1 0x04
000003d4: DUP1
000003d5: CALLDATASIZE
000003d6: SUB
000003d7: PUSH1 0x60
000003d9: DUP2
000003da: LT
000003db: ISZERO
000003dc: PUSH2 0x03e4
000003df: JUMPI
000003e0: PUSH1 0x00
000003e2: DUP1
000003e3: REVERT
000003e4: JUMPDEST
000003e5: DUP2
000003e6: ADD
000003e7: SWAP1
000003e8: DUP1
000003e9: DUP1
000003ea: CALLDATALOAD
000003eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000400: AND
00000401: SWAP1
00000402: PUSH1 0x20
00000404: ADD
00000405: SWAP1
00000406: SWAP3
00000407: SWAP2
00000408: SWAP1
00000409: DUP1
0000040a: CALLDATALOAD
0000040b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000420: AND
00000421: SWAP1
00000422: PUSH1 0x20
00000424: ADD
00000425: SWAP1
00000426: SWAP3
00000427: SWAP2
00000428: SWAP1
00000429: DUP1
0000042a: CALLDATALOAD
0000042b: SWAP1
0000042c: PUSH1 0x20
0000042e: ADD
0000042f: SWAP1
00000430: SWAP3
00000431: SWAP2
00000432: SWAP1
00000433: POP
00000434: POP
00000435: POP
00000436: PUSH2 0x108c
00000439: JUMP
0000043a: JUMPDEST
0000043b: PUSH1 0x40
0000043d: MLOAD
0000043e: DUP1
0000043f: DUP3
00000440: ISZERO
00000441: ISZERO
00000442: ISZERO
00000443: ISZERO
00000444: DUP2
00000445: MSTORE
00000446: PUSH1 0x20
00000448: ADD
00000449: SWAP2
0000044a: POP
0000044b: POP
0000044c: PUSH1 0x40
0000044e: MLOAD
0000044f: DUP1
00000450: SWAP2
00000451: SUB
00000452: SWAP1
00000453: RETURN
00000454: JUMPDEST
00000455: CALLVALUE
00000456: DUP1
00000457: ISZERO
00000458: PUSH2 0x0460
0000045b: JUMPI
0000045c: PUSH1 0x00
0000045e: DUP1
0000045f: REVERT
00000460: JUMPDEST
00000461: POP
00000462: PUSH2 0x048d
00000465: PUSH1 0x04
00000467: DUP1
00000468: CALLDATASIZE
00000469: SUB
0000046a: PUSH1 0x20
0000046c: DUP2
0000046d: LT
0000046e: ISZERO
0000046f: PUSH2 0x0477
00000472: JUMPI
00000473: PUSH1 0x00
00000475: DUP1
00000476: REVERT
00000477: JUMPDEST
00000478: DUP2
00000479: ADD
0000047a: SWAP1
0000047b: DUP1
0000047c: DUP1
0000047d: CALLDATALOAD
0000047e: SWAP1
0000047f: PUSH1 0x20
00000481: ADD
00000482: SWAP1
00000483: SWAP3
00000484: SWAP2
00000485: SWAP1
00000486: POP
00000487: POP
00000488: POP
00000489: PUSH2 0x1165
0000048c: JUMP
0000048d: JUMPDEST
0000048e: STOP
0000048f: JUMPDEST
00000490: CALLVALUE
00000491: DUP1
00000492: ISZERO
00000493: PUSH2 0x049b
00000496: JUMPI
00000497: PUSH1 0x00
00000499: DUP1
0000049a: REVERT
0000049b: JUMPDEST
0000049c: POP
0000049d: PUSH2 0x04a4
000004a0: PUSH2 0x14ef
000004a3: JUMP
000004a4: JUMPDEST
000004a5: PUSH1 0x40
000004a7: MLOAD
000004a8: DUP1
000004a9: DUP3
000004aa: PUSH1 0xff
000004ac: AND
000004ad: PUSH1 0xff
000004af: AND
000004b0: DUP2
000004b1: MSTORE
000004b2: PUSH1 0x20
000004b4: ADD
000004b5: SWAP2
000004b6: POP
000004b7: POP
000004b8: PUSH1 0x40
000004ba: MLOAD
000004bb: DUP1
000004bc: SWAP2
000004bd: SUB
000004be: SWAP1
000004bf: RETURN
000004c0: JUMPDEST
000004c1: CALLVALUE
000004c2: DUP1
000004c3: ISZERO
000004c4: PUSH2 0x04cc
000004c7: JUMPI
000004c8: PUSH1 0x00
000004ca: DUP1
000004cb: REVERT
000004cc: JUMPDEST
000004cd: POP
000004ce: PUSH2 0x0519
000004d1: PUSH1 0x04
000004d3: DUP1
000004d4: CALLDATASIZE
000004d5: SUB
000004d6: PUSH1 0x40
000004d8: DUP2
000004d9: LT
000004da: ISZERO
000004db: PUSH2 0x04e3
000004de: JUMPI
000004df: PUSH1 0x00
000004e1: DUP1
000004e2: REVERT
000004e3: JUMPDEST
000004e4: DUP2
000004e5: ADD
000004e6: SWAP1
000004e7: DUP1
000004e8: DUP1
000004e9: CALLDATALOAD
000004ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004ff: AND
00000500: SWAP1
00000501: PUSH1 0x20
00000503: ADD
00000504: SWAP1
00000505: SWAP3
00000506: SWAP2
00000507: SWAP1
00000508: DUP1
00000509: CALLDATALOAD
0000050a: SWAP1
0000050b: PUSH1 0x20
0000050d: ADD
0000050e: SWAP1
0000050f: SWAP3
00000510: SWAP2
00000511: SWAP1
00000512: POP
00000513: POP
00000514: POP
00000515: PUSH2 0x1506
00000518: JUMP
00000519: JUMPDEST
0000051a: PUSH1 0x40
0000051c: MLOAD
0000051d: DUP1
0000051e: DUP3
0000051f: ISZERO
00000520: ISZERO
00000521: ISZERO
00000522: ISZERO
00000523: DUP2
00000524: MSTORE
00000525: PUSH1 0x20
00000527: ADD
00000528: SWAP2
00000529: POP
0000052a: POP
0000052b: PUSH1 0x40
0000052d: MLOAD
0000052e: DUP1
0000052f: SWAP2
00000530: SUB
00000531: SWAP1
00000532: RETURN
00000533: JUMPDEST
00000534: CALLVALUE
00000535: DUP1
00000536: ISZERO
00000537: PUSH2 0x053f
0000053a: JUMPI
0000053b: PUSH1 0x00
0000053d: DUP1
0000053e: REVERT
0000053f: JUMPDEST
00000540: POP
00000541: PUSH2 0x056c
00000544: PUSH1 0x04
00000546: DUP1
00000547: CALLDATASIZE
00000548: SUB
00000549: PUSH1 0x20
0000054b: DUP2
0000054c: LT
0000054d: ISZERO
0000054e: PUSH2 0x0556
00000551: JUMPI
00000552: PUSH1 0x00
00000554: DUP1
00000555: REVERT
00000556: JUMPDEST
00000557: DUP2
00000558: ADD
00000559: SWAP1
0000055a: DUP1
0000055b: DUP1
0000055c: CALLDATALOAD
0000055d: SWAP1
0000055e: PUSH1 0x20
00000560: ADD
00000561: SWAP1
00000562: SWAP3
00000563: SWAP2
00000564: SWAP1
00000565: POP
00000566: POP
00000567: POP
00000568: PUSH2 0x15b9
0000056b: JUMP
0000056c: JUMPDEST
0000056d: STOP
0000056e: JUMPDEST
0000056f: CALLVALUE
00000570: DUP1
00000571: ISZERO
00000572: PUSH2 0x057a
00000575: JUMPI
00000576: PUSH1 0x00
00000578: DUP1
00000579: REVERT
0000057a: JUMPDEST
0000057b: POP
0000057c: PUSH2 0x0583
0000057f: PUSH2 0x1686
00000582: JUMP
00000583: JUMPDEST
00000584: PUSH1 0x40
00000586: MLOAD
00000587: DUP1
00000588: DUP3
00000589: DUP2
0000058a: MSTORE
0000058b: PUSH1 0x20
0000058d: ADD
0000058e: SWAP2
0000058f: POP
00000590: POP
00000591: PUSH1 0x40
00000593: MLOAD
00000594: DUP1
00000595: SWAP2
00000596: SUB
00000597: SWAP1
00000598: RETURN
00000599: JUMPDEST
0000059a: CALLVALUE
0000059b: DUP1
0000059c: ISZERO
0000059d: PUSH2 0x05a5
000005a0: JUMPI
000005a1: PUSH1 0x00
000005a3: DUP1
000005a4: REVERT
000005a5: JUMPDEST
000005a6: POP
000005a7: PUSH2 0x05ae
000005aa: PUSH2 0x178f
000005ad: JUMP
000005ae: JUMPDEST
000005af: PUSH1 0x40
000005b1: MLOAD
000005b2: DUP1
000005b3: DUP3
000005b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005c9: AND
000005ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005df: AND
000005e0: DUP2
000005e1: MSTORE
000005e2: PUSH1 0x20
000005e4: ADD
000005e5: SWAP2
000005e6: POP
000005e7: POP
000005e8: PUSH1 0x40
000005ea: MLOAD
000005eb: DUP1
000005ec: SWAP2
000005ed: SUB
000005ee: SWAP1
000005ef: RETURN
000005f0: JUMPDEST
000005f1: CALLVALUE
000005f2: DUP1
000005f3: ISZERO
000005f4: PUSH2 0x05fc
000005f7: JUMPI
000005f8: PUSH1 0x00
000005fa: DUP1
000005fb: REVERT
000005fc: JUMPDEST
000005fd: POP
000005fe: PUSH2 0x0605
00000601: PUSH2 0x17b5
00000604: JUMP
00000605: JUMPDEST
00000606: PUSH1 0x40
00000608: MLOAD
00000609: DUP1
0000060a: DUP3
0000060b: DUP2
0000060c: MSTORE
0000060d: PUSH1 0x20
0000060f: ADD
00000610: SWAP2
00000611: POP
00000612: POP
00000613: PUSH1 0x40
00000615: MLOAD
00000616: DUP1
00000617: SWAP2
00000618: SUB
00000619: SWAP1
0000061a: RETURN
0000061b: JUMPDEST
0000061c: CALLVALUE
0000061d: DUP1
0000061e: ISZERO
0000061f: PUSH2 0x0627
00000622: JUMPI
00000623: PUSH1 0x00
00000625: DUP1
00000626: REVERT
00000627: JUMPDEST
00000628: POP
00000629: PUSH2 0x066a
0000062c: PUSH1 0x04
0000062e: DUP1
0000062f: CALLDATASIZE
00000630: SUB
00000631: PUSH1 0x20
00000633: DUP2
00000634: LT
00000635: ISZERO
00000636: PUSH2 0x063e
00000639: JUMPI
0000063a: PUSH1 0x00
0000063c: DUP1
0000063d: REVERT
0000063e: JUMPDEST
0000063f: DUP2
00000640: ADD
00000641: SWAP1
00000642: DUP1
00000643: DUP1
00000644: CALLDATALOAD
00000645: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000065a: AND
0000065b: SWAP1
0000065c: PUSH1 0x20
0000065e: ADD
0000065f: SWAP1
00000660: SWAP3
00000661: SWAP2
00000662: SWAP1
00000663: POP
00000664: POP
00000665: POP
00000666: PUSH2 0x17bb
00000669: JUMP
0000066a: JUMPDEST
0000066b: PUSH1 0x40
0000066d: MLOAD
0000066e: DUP1
0000066f: DUP3
00000670: DUP2
00000671: MSTORE
00000672: PUSH1 0x20
00000674: ADD
00000675: SWAP2
00000676: POP
00000677: POP
00000678: PUSH1 0x40
0000067a: MLOAD
0000067b: DUP1
0000067c: SWAP2
0000067d: SUB
0000067e: SWAP1
0000067f: RETURN
00000680: JUMPDEST
00000681: CALLVALUE
00000682: DUP1
00000683: ISZERO
00000684: PUSH2 0x068c
00000687: JUMPI
00000688: PUSH1 0x00
0000068a: DUP1
0000068b: REVERT
0000068c: JUMPDEST
0000068d: POP
0000068e: PUSH2 0x0695
00000691: PUSH2 0x1803
00000694: JUMP
00000695: JUMPDEST
00000696: PUSH1 0x40
00000698: MLOAD
00000699: DUP1
0000069a: DUP3
0000069b: DUP2
0000069c: MSTORE
0000069d: PUSH1 0x20
0000069f: ADD
000006a0: SWAP2
000006a1: POP
000006a2: POP
000006a3: PUSH1 0x40
000006a5: MLOAD
000006a6: DUP1
000006a7: SWAP2
000006a8: SUB
000006a9: SWAP1
000006aa: RETURN
000006ab: JUMPDEST
000006ac: CALLVALUE
000006ad: DUP1
000006ae: ISZERO
000006af: PUSH2 0x06b7
000006b2: JUMPI
000006b3: PUSH1 0x00
000006b5: DUP1
000006b6: REVERT
000006b7: JUMPDEST
000006b8: POP
000006b9: PUSH2 0x06c0
000006bc: PUSH2 0x1845
000006bf: JUMP
000006c0: JUMPDEST
000006c1: STOP
000006c2: JUMPDEST
000006c3: CALLVALUE
000006c4: DUP1
000006c5: ISZERO
000006c6: PUSH2 0x06ce
000006c9: JUMPI
000006ca: PUSH1 0x00
000006cc: DUP1
000006cd: REVERT
000006ce: JUMPDEST
000006cf: POP
000006d0: PUSH2 0x06d7
000006d3: PUSH2 0x1858
000006d6: JUMP
000006d7: JUMPDEST
000006d8: STOP
000006d9: JUMPDEST
000006da: CALLVALUE
000006db: DUP1
000006dc: ISZERO
000006dd: PUSH2 0x06e5
000006e0: JUMPI
000006e1: PUSH1 0x00
000006e3: DUP1
000006e4: REVERT
000006e5: JUMPDEST
000006e6: POP
000006e7: PUSH2 0x0728
000006ea: PUSH1 0x04
000006ec: DUP1
000006ed: CALLDATASIZE
000006ee: SUB
000006ef: PUSH1 0x20
000006f1: DUP2
000006f2: LT
000006f3: ISZERO
000006f4: PUSH2 0x06fc
000006f7: JUMPI
000006f8: PUSH1 0x00
000006fa: DUP1
000006fb: REVERT
000006fc: JUMPDEST
000006fd: DUP2
000006fe: ADD
000006ff: SWAP1
00000700: DUP1
00000701: DUP1
00000702: CALLDATALOAD
00000703: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000718: AND
00000719: SWAP1
0000071a: PUSH1 0x20
0000071c: ADD
0000071d: SWAP1
0000071e: SWAP3
0000071f: SWAP2
00000720: SWAP1
00000721: POP
00000722: POP
00000723: POP
00000724: PUSH2 0x186b
00000727: JUMP
00000728: JUMPDEST
00000729: STOP
0000072a: JUMPDEST
0000072b: CALLVALUE
0000072c: DUP1
0000072d: ISZERO
0000072e: PUSH2 0x0736
00000731: JUMPI
00000732: PUSH1 0x00
00000734: DUP1
00000735: REVERT
00000736: JUMPDEST
00000737: POP
00000738: PUSH2 0x073f
0000073b: PUSH2 0x1972
0000073e: JUMP
0000073f: JUMPDEST
00000740: PUSH1 0x40
00000742: MLOAD
00000743: DUP1
00000744: DUP1
00000745: PUSH1 0x20
00000747: ADD
00000748: DUP3
00000749: DUP2
0000074a: SUB
0000074b: DUP3
0000074c: MSTORE
0000074d: DUP4
0000074e: DUP2
0000074f: DUP2
00000750: MLOAD
00000751: DUP2
00000752: MSTORE
00000753: PUSH1 0x20
00000755: ADD
00000756: SWAP2
00000757: POP
00000758: DUP1
00000759: MLOAD
0000075a: SWAP1
0000075b: PUSH1 0x20
0000075d: ADD
0000075e: SWAP1
0000075f: DUP1
00000760: DUP4
00000761: DUP4
00000762: PUSH1 0x00
00000764: JUMPDEST
00000765: DUP4
00000766: DUP2
00000767: LT
00000768: ISZERO
00000769: PUSH2 0x077f
0000076c: JUMPI
0000076d: DUP1
0000076e: DUP3
0000076f: ADD
00000770: MLOAD
00000771: DUP2
00000772: DUP5
00000773: ADD
00000774: MSTORE
00000775: PUSH1 0x20
00000777: DUP2
00000778: ADD
00000779: SWAP1
0000077a: POP
0000077b: PUSH2 0x0764
0000077e: JUMP
0000077f: JUMPDEST
00000780: POP
00000781: POP
00000782: POP
00000783: POP
00000784: SWAP1
00000785: POP
00000786: SWAP1
00000787: DUP2
00000788: ADD
00000789: SWAP1
0000078a: PUSH1 0x1f
0000078c: AND
0000078d: DUP1
0000078e: ISZERO
0000078f: PUSH2 0x07ac
00000792: JUMPI
00000793: DUP1
00000794: DUP3
00000795: SUB
00000796: DUP1
00000797: MLOAD
00000798: PUSH1 0x01
0000079a: DUP4
0000079b: PUSH1 0x20
0000079d: SUB
0000079e: PUSH2 0x0100
000007a1: EXP
000007a2: SUB
000007a3: NOT
000007a4: AND
000007a5: DUP2
000007a6: MSTORE
000007a7: PUSH1 0x20
000007a9: ADD
000007aa: SWAP2
000007ab: POP
000007ac: JUMPDEST
000007ad: POP
000007ae: SWAP3
000007af: POP
000007b0: POP
000007b1: POP
000007b2: PUSH1 0x40
000007b4: MLOAD
000007b5: DUP1
000007b6: SWAP2
000007b7: SUB
000007b8: SWAP1
000007b9: RETURN
000007ba: JUMPDEST
000007bb: CALLVALUE
000007bc: DUP1
000007bd: ISZERO
000007be: PUSH2 0x07c6
000007c1: JUMPI
000007c2: PUSH1 0x00
000007c4: DUP1
000007c5: REVERT
000007c6: JUMPDEST
000007c7: POP
000007c8: PUSH2 0x0813
000007cb: PUSH1 0x04
000007cd: DUP1
000007ce: CALLDATASIZE
000007cf: SUB
000007d0: PUSH1 0x40
000007d2: DUP2
000007d3: LT
000007d4: ISZERO
000007d5: PUSH2 0x07dd
000007d8: JUMPI
000007d9: PUSH1 0x00
000007db: DUP1
000007dc: REVERT
000007dd: JUMPDEST
000007de: DUP2
000007df: ADD
000007e0: SWAP1
000007e1: DUP1
000007e2: DUP1
000007e3: CALLDATALOAD
000007e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007f9: AND
000007fa: SWAP1
000007fb: PUSH1 0x20
000007fd: ADD
000007fe: SWAP1
000007ff: SWAP3
00000800: SWAP2
00000801: SWAP1
00000802: DUP1
00000803: CALLDATALOAD
00000804: SWAP1
00000805: PUSH1 0x20
00000807: ADD
00000808: SWAP1
00000809: SWAP3
0000080a: SWAP2
0000080b: SWAP1
0000080c: POP
0000080d: POP
0000080e: POP
0000080f: PUSH2 0x1a14
00000812: JUMP
00000813: JUMPDEST
00000814: PUSH1 0x40
00000816: MLOAD
00000817: DUP1
00000818: DUP3
00000819: ISZERO
0000081a: ISZERO
0000081b: ISZERO
0000081c: ISZERO
0000081d: DUP2
0000081e: MSTORE
0000081f: PUSH1 0x20
00000821: ADD
00000822: SWAP2
00000823: POP
00000824: POP
00000825: PUSH1 0x40
00000827: MLOAD
00000828: DUP1
00000829: SWAP2
0000082a: SUB
0000082b: SWAP1
0000082c: RETURN
0000082d: JUMPDEST
0000082e: CALLVALUE
0000082f: DUP1
00000830: ISZERO
00000831: PUSH2 0x0839
00000834: JUMPI
00000835: PUSH1 0x00
00000837: DUP1
00000838: REVERT
00000839: JUMPDEST
0000083a: POP
0000083b: PUSH2 0x0886
0000083e: PUSH1 0x04
00000840: DUP1
00000841: CALLDATASIZE
00000842: SUB
00000843: PUSH1 0x40
00000845: DUP2
00000846: LT
00000847: ISZERO
00000848: PUSH2 0x0850
0000084b: JUMPI
0000084c: PUSH1 0x00
0000084e: DUP1
0000084f: REVERT
00000850: JUMPDEST
00000851: DUP2
00000852: ADD
00000853: SWAP1
00000854: DUP1
00000855: DUP1
00000856: CALLDATALOAD
00000857: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000086c: AND
0000086d: SWAP1
0000086e: PUSH1 0x20
00000870: ADD
00000871: SWAP1
00000872: SWAP3
00000873: SWAP2
00000874: SWAP1
00000875: DUP1
00000876: CALLDATALOAD
00000877: SWAP1
00000878: PUSH1 0x20
0000087a: ADD
0000087b: SWAP1
0000087c: SWAP3
0000087d: SWAP2
0000087e: SWAP1
0000087f: POP
00000880: POP
00000881: POP
00000882: PUSH2 0x1ae1
00000885: JUMP
00000886: JUMPDEST
00000887: PUSH1 0x40
00000889: MLOAD
0000088a: DUP1
0000088b: DUP3
0000088c: ISZERO
0000088d: ISZERO
0000088e: ISZERO
0000088f: ISZERO
00000890: DUP2
00000891: MSTORE
00000892: PUSH1 0x20
00000894: ADD
00000895: SWAP2
00000896: POP
00000897: POP
00000898: PUSH1 0x40
0000089a: MLOAD
0000089b: DUP1
0000089c: SWAP2
0000089d: SUB
0000089e: SWAP1
0000089f: RETURN
000008a0: JUMPDEST
000008a1: CALLVALUE
000008a2: DUP1
000008a3: ISZERO
000008a4: PUSH2 0x08ac
000008a7: JUMPI
000008a8: PUSH1 0x00
000008aa: DUP1
000008ab: REVERT
000008ac: JUMPDEST
000008ad: POP
000008ae: PUSH2 0x08ef
000008b1: PUSH1 0x04
000008b3: DUP1
000008b4: CALLDATASIZE
000008b5: SUB
000008b6: PUSH1 0x20
000008b8: DUP2
000008b9: LT
000008ba: ISZERO
000008bb: PUSH2 0x08c3
000008be: JUMPI
000008bf: PUSH1 0x00
000008c1: DUP1
000008c2: REVERT
000008c3: JUMPDEST
000008c4: DUP2
000008c5: ADD
000008c6: SWAP1
000008c7: DUP1
000008c8: DUP1
000008c9: CALLDATALOAD
000008ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008df: AND
000008e0: SWAP1
000008e1: PUSH1 0x20
000008e3: ADD
000008e4: SWAP1
000008e5: SWAP3
000008e6: SWAP2
000008e7: SWAP1
000008e8: POP
000008e9: POP
000008ea: POP
000008eb: PUSH2 0x1aff
000008ee: JUMP
000008ef: JUMPDEST
000008f0: STOP
000008f1: JUMPDEST
000008f2: CALLVALUE
000008f3: DUP1
000008f4: ISZERO
000008f5: PUSH2 0x08fd
000008f8: JUMPI
000008f9: PUSH1 0x00
000008fb: DUP1
000008fc: REVERT
000008fd: JUMPDEST
000008fe: POP
000008ff: PUSH2 0x0906
00000902: PUSH2 0x1c06
00000905: JUMP
00000906: JUMPDEST
00000907: PUSH1 0x40
00000909: MLOAD
0000090a: DUP1
0000090b: DUP3
0000090c: DUP2
0000090d: MSTORE
0000090e: PUSH1 0x20
00000910: ADD
00000911: SWAP2
00000912: POP
00000913: POP
00000914: PUSH1 0x40
00000916: MLOAD
00000917: DUP1
00000918: SWAP2
00000919: SUB
0000091a: SWAP1
0000091b: RETURN
0000091c: JUMPDEST
0000091d: CALLVALUE
0000091e: DUP1
0000091f: ISZERO
00000920: PUSH2 0x0928
00000923: JUMPI
00000924: PUSH1 0x00
00000926: DUP1
00000927: REVERT
00000928: JUMPDEST
00000929: POP
0000092a: PUSH2 0x0955
0000092d: PUSH1 0x04
0000092f: DUP1
00000930: CALLDATASIZE
00000931: SUB
00000932: PUSH1 0x20
00000934: DUP2
00000935: LT
00000936: ISZERO
00000937: PUSH2 0x093f
0000093a: JUMPI
0000093b: PUSH1 0x00
0000093d: DUP1
0000093e: REVERT
0000093f: JUMPDEST
00000940: DUP2
00000941: ADD
00000942: SWAP1
00000943: DUP1
00000944: DUP1
00000945: CALLDATALOAD
00000946: SWAP1
00000947: PUSH1 0x20
00000949: ADD
0000094a: SWAP1
0000094b: SWAP3
0000094c: SWAP2
0000094d: SWAP1
0000094e: POP
0000094f: POP
00000950: POP
00000951: PUSH2 0x1df4
00000954: JUMP
00000955: JUMPDEST
00000956: STOP
00000957: JUMPDEST
00000958: CALLVALUE
00000959: DUP1
0000095a: ISZERO
0000095b: PUSH2 0x0963
0000095e: JUMPI
0000095f: PUSH1 0x00
00000961: DUP1
00000962: REVERT
00000963: JUMPDEST
00000964: POP
00000965: PUSH2 0x096c
00000968: PUSH2 0x207d
0000096b: JUMP
0000096c: JUMPDEST
0000096d: STOP
0000096e: JUMPDEST
0000096f: CALLVALUE
00000970: DUP1
00000971: ISZERO
00000972: PUSH2 0x097a
00000975: JUMPI
00000976: PUSH1 0x00
00000978: DUP1
00000979: REVERT
0000097a: JUMPDEST
0000097b: POP
0000097c: PUSH2 0x09dd
0000097f: PUSH1 0x04
00000981: DUP1
00000982: CALLDATASIZE
00000983: SUB
00000984: PUSH1 0x40
00000986: DUP2
00000987: LT
00000988: ISZERO
00000989: PUSH2 0x0991
0000098c: JUMPI
0000098d: PUSH1 0x00
0000098f: DUP1
00000990: REVERT
00000991: JUMPDEST
00000992: DUP2
00000993: ADD
00000994: SWAP1
00000995: DUP1
00000996: DUP1
00000997: CALLDATALOAD
00000998: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009ad: AND
000009ae: SWAP1
000009af: PUSH1 0x20
000009b1: ADD
000009b2: SWAP1
000009b3: SWAP3
000009b4: SWAP2
000009b5: SWAP1
000009b6: DUP1
000009b7: CALLDATALOAD
000009b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009cd: AND
000009ce: SWAP1
000009cf: PUSH1 0x20
000009d1: ADD
000009d2: SWAP1
000009d3: SWAP3
000009d4: SWAP2
000009d5: SWAP1
000009d6: POP
000009d7: POP
000009d8: POP
000009d9: PUSH2 0x21de
000009dc: JUMP
000009dd: JUMPDEST
000009de: PUSH1 0x40
000009e0: MLOAD
000009e1: DUP1
000009e2: DUP3
000009e3: DUP2
000009e4: MSTORE
000009e5: PUSH1 0x20
000009e7: ADD
000009e8: SWAP2
000009e9: POP
000009ea: POP
000009eb: PUSH1 0x40
000009ed: MLOAD
000009ee: DUP1
000009ef: SWAP2
000009f0: SUB
000009f1: SWAP1
000009f2: RETURN
000009f3: JUMPDEST
000009f4: CALLVALUE
000009f5: DUP1
000009f6: ISZERO
000009f7: PUSH2 0x09ff
000009fa: JUMPI
000009fb: PUSH1 0x00
000009fd: DUP1
000009fe: REVERT
000009ff: JUMPDEST
00000a00: POP
00000a01: PUSH2 0x0a08
00000a04: PUSH2 0x2265
00000a07: JUMP
00000a08: JUMPDEST
00000a09: STOP
00000a0a: JUMPDEST
00000a0b: CALLVALUE
00000a0c: DUP1
00000a0d: ISZERO
00000a0e: PUSH2 0x0a16
00000a11: JUMPI
00000a12: PUSH1 0x00
00000a14: DUP1
00000a15: REVERT
00000a16: JUMPDEST
00000a17: POP
00000a18: PUSH2 0x0a43
00000a1b: PUSH1 0x04
00000a1d: DUP1
00000a1e: CALLDATASIZE
00000a1f: SUB
00000a20: PUSH1 0x20
00000a22: DUP2
00000a23: LT
00000a24: ISZERO
00000a25: PUSH2 0x0a2d
00000a28: JUMPI
00000a29: PUSH1 0x00
00000a2b: DUP1
00000a2c: REVERT
00000a2d: JUMPDEST
00000a2e: DUP2
00000a2f: ADD
00000a30: SWAP1
00000a31: DUP1
00000a32: DUP1
00000a33: CALLDATALOAD
00000a34: SWAP1
00000a35: PUSH1 0x20
00000a37: ADD
00000a38: SWAP1
00000a39: SWAP3
00000a3a: SWAP2
00000a3b: SWAP1
00000a3c: POP
00000a3d: POP
00000a3e: POP
00000a3f: PUSH2 0x2349
00000a42: JUMP
00000a43: JUMPDEST
00000a44: STOP
00000a45: JUMPDEST
00000a46: PUSH2 0x0a4d
00000a49: PUSH2 0x0b28
00000a4c: JUMP
00000a4d: JUMPDEST
00000a4e: STOP
00000a4f: JUMPDEST
00000a50: CALLVALUE
00000a51: DUP1
00000a52: ISZERO
00000a53: PUSH2 0x0a5b
00000a56: JUMPI
00000a57: PUSH1 0x00
00000a59: DUP1
00000a5a: REVERT
00000a5b: JUMPDEST
00000a5c: POP
00000a5d: PUSH2 0x0a64
00000a60: PUSH2 0x275a
00000a63: JUMP
00000a64: JUMPDEST
00000a65: PUSH1 0x40
00000a67: MLOAD
00000a68: DUP1
00000a69: DUP3
00000a6a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a7f: AND
00000a80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a95: AND
00000a96: DUP2
00000a97: MSTORE
00000a98: PUSH1 0x20
00000a9a: ADD
00000a9b: SWAP2
00000a9c: POP
00000a9d: POP
00000a9e: PUSH1 0x40
00000aa0: MLOAD
00000aa1: DUP1
00000aa2: SWAP2
00000aa3: SUB
00000aa4: SWAP1
00000aa5: RETURN
00000aa6: JUMPDEST
00000aa7: CALLVALUE
00000aa8: DUP1
00000aa9: ISZERO
00000aaa: PUSH2 0x0ab2
00000aad: JUMPI
00000aae: PUSH1 0x00
00000ab0: DUP1
00000ab1: REVERT
00000ab2: JUMPDEST
00000ab3: POP
00000ab4: PUSH2 0x0abb
00000ab7: PUSH2 0x2780
00000aba: JUMP
00000abb: JUMPDEST
00000abc: PUSH1 0x40
00000abe: MLOAD
00000abf: DUP1
00000ac0: DUP3
00000ac1: DUP2
00000ac2: MSTORE
00000ac3: PUSH1 0x20
00000ac5: ADD
00000ac6: SWAP2
00000ac7: POP
00000ac8: POP
00000ac9: PUSH1 0x40
00000acb: MLOAD
00000acc: DUP1
00000acd: SWAP2
00000ace: SUB
00000acf: SWAP1
00000ad0: RETURN
00000ad1: JUMPDEST
00000ad2: CALLVALUE
00000ad3: DUP1
00000ad4: ISZERO
00000ad5: PUSH2 0x0add
00000ad8: JUMPI
00000ad9: PUSH1 0x00
00000adb: DUP1
00000adc: REVERT
00000add: JUMPDEST
00000ade: POP
00000adf: PUSH2 0x0ae6
00000ae2: PUSH2 0x2786
00000ae5: JUMP
00000ae6: JUMPDEST
00000ae7: PUSH1 0x40
00000ae9: MLOAD
00000aea: DUP1
00000aeb: DUP3
00000aec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b01: AND
00000b02: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b17: AND
00000b18: DUP2
00000b19: MSTORE
00000b1a: PUSH1 0x20
00000b1c: ADD
00000b1d: SWAP2
00000b1e: POP
00000b1f: POP
00000b20: PUSH1 0x40
00000b22: MLOAD
00000b23: DUP1
00000b24: SWAP2
00000b25: SUB
00000b26: SWAP1
00000b27: RETURN
00000b28: JUMPDEST
00000b29: PUSH1 0x00
00000b2b: PUSH2 0x0b32
00000b2e: PUSH2 0x1c06
00000b31: JUMP
00000b32: JUMPDEST
00000b33: SWAP1
00000b34: POP
00000b35: PUSH1 0x00
00000b37: PUSH1 0x05
00000b39: PUSH1 0x01
00000b3b: SWAP1
00000b3c: SLOAD
00000b3d: SWAP1
00000b3e: PUSH2 0x0100
00000b41: EXP
00000b42: SWAP1
00000b43: DIV
00000b44: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b59: AND
00000b5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b6f: AND
00000b70: PUSH4 0x70a08231
00000b75: ADDRESS
00000b76: PUSH1 0x40
00000b78: MLOAD
00000b79: DUP3
00000b7a: PUSH4 0xffffffff
00000b7f: AND
00000b80: PUSH1 0xe0
00000b82: SHL
00000b83: DUP2
00000b84: MSTORE
00000b85: PUSH1 0x04
00000b87: ADD
00000b88: DUP1
00000b89: DUP3
00000b8a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b9f: AND
00000ba0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bb5: AND
00000bb6: DUP2
00000bb7: MSTORE
00000bb8: PUSH1 0x20
00000bba: ADD
00000bbb: SWAP2
00000bbc: POP
00000bbd: POP
00000bbe: PUSH1 0x20
00000bc0: PUSH1 0x40
00000bc2: MLOAD
00000bc3: DUP1
00000bc4: DUP4
00000bc5: SUB
00000bc6: DUP2
00000bc7: DUP7
00000bc8: DUP1
00000bc9: EXTCODESIZE
00000bca: ISZERO
00000bcb: DUP1
00000bcc: ISZERO
00000bcd: PUSH2 0x0bd5
00000bd0: JUMPI
00000bd1: PUSH1 0x00
00000bd3: DUP1
00000bd4: REVERT
00000bd5: JUMPDEST
00000bd6: POP
00000bd7: GAS
00000bd8: STATICCALL
00000bd9: ISZERO
00000bda: DUP1
00000bdb: ISZERO
00000bdc: PUSH2 0x0be9
00000bdf: JUMPI
00000be0: RETURNDATASIZE
00000be1: PUSH1 0x00
00000be3: DUP1
00000be4: RETURNDATACOPY
00000be5: RETURNDATASIZE
00000be6: PUSH1 0x00
00000be8: REVERT
00000be9: JUMPDEST
00000bea: POP
00000beb: POP
00000bec: POP
00000bed: POP
00000bee: PUSH1 0x40
00000bf0: MLOAD
00000bf1: RETURNDATASIZE
00000bf2: PUSH1 0x20
00000bf4: DUP2
00000bf5: LT
00000bf6: ISZERO
00000bf7: PUSH2 0x0bff
00000bfa: JUMPI
00000bfb: PUSH1 0x00
00000bfd: DUP1
00000bfe: REVERT
00000bff: JUMPDEST
00000c00: DUP2
00000c01: ADD
00000c02: SWAP1
00000c03: DUP1
00000c04: DUP1
00000c05: MLOAD
00000c06: SWAP1
00000c07: PUSH1 0x20
00000c09: ADD
00000c0a: SWAP1
00000c0b: SWAP3
00000c0c: SWAP2
00000c0d: SWAP1
00000c0e: POP
00000c0f: POP
00000c10: POP
00000c11: SWAP1
00000c12: POP
00000c13: PUSH1 0x00
00000c15: CALLVALUE
00000c16: SWAP1
00000c17: POP
00000c18: PUSH1 0x05
00000c1a: PUSH1 0x01
00000c1c: SWAP1
00000c1d: SLOAD
00000c1e: SWAP1
00000c1f: PUSH2 0x0100
00000c22: EXP
00000c23: SWAP1
00000c24: DIV
00000c25: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c3a: AND
00000c3b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c50: AND
00000c51: PUSH4 0xd0e30db0
00000c56: DUP3
00000c57: PUSH1 0x40
00000c59: MLOAD
00000c5a: DUP3
00000c5b: PUSH4 0xffffffff
00000c60: AND
00000c61: PUSH1 0xe0
00000c63: SHL
00000c64: DUP2
00000c65: MSTORE
00000c66: PUSH1 0x04
00000c68: ADD
00000c69: PUSH1 0x00
00000c6b: PUSH1 0x40
00000c6d: MLOAD
00000c6e: DUP1
00000c6f: DUP4
00000c70: SUB
00000c71: DUP2
00000c72: DUP6
00000c73: DUP9
00000c74: DUP1
00000c75: EXTCODESIZE
00000c76: ISZERO
00000c77: DUP1
00000c78: ISZERO
00000c79: PUSH2 0x0c81
00000c7c: JUMPI
00000c7d: PUSH1 0x00
00000c7f: DUP1
00000c80: REVERT
00000c81: JUMPDEST
00000c82: POP
00000c83: GAS
00000c84: CALL
00000c85: ISZERO
00000c86: DUP1
00000c87: ISZERO
00000c88: PUSH2 0x0c95
00000c8b: JUMPI
00000c8c: RETURNDATASIZE
00000c8d: PUSH1 0x00
00000c8f: DUP1
00000c90: RETURNDATACOPY
00000c91: RETURNDATASIZE
00000c92: PUSH1 0x00
00000c94: REVERT
00000c95: JUMPDEST
00000c96: POP
00000c97: POP
00000c98: POP
00000c99: POP
00000c9a: POP
00000c9b: PUSH1 0x00
00000c9d: PUSH1 0x05
00000c9f: PUSH1 0x01
00000ca1: SWAP1
00000ca2: SLOAD
00000ca3: SWAP1
00000ca4: PUSH2 0x0100
00000ca7: EXP
00000ca8: SWAP1
00000ca9: DIV
00000caa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cbf: AND
00000cc0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cd5: AND
00000cd6: PUSH4 0x70a08231
00000cdb: ADDRESS
00000cdc: PUSH1 0x40
00000cde: MLOAD
00000cdf: DUP3
00000ce0: PUSH4 0xffffffff
00000ce5: AND
00000ce6: PUSH1 0xe0
00000ce8: SHL
00000ce9: DUP2
00000cea: MSTORE
00000ceb: PUSH1 0x04
00000ced: ADD
00000cee: DUP1
00000cef: DUP3
00000cf0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d05: AND
00000d06: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d1b: AND
00000d1c: DUP2
00000d1d: MSTORE
00000d1e: PUSH1 0x20
00000d20: ADD
00000d21: SWAP2
00000d22: POP
00000d23: POP
00000d24: PUSH1 0x20
00000d26: PUSH1 0x40
00000d28: MLOAD
00000d29: DUP1
00000d2a: DUP4
00000d2b: SUB
00000d2c: DUP2
00000d2d: DUP7
00000d2e: DUP1
00000d2f: EXTCODESIZE
00000d30: ISZERO
00000d31: DUP1
00000d32: ISZERO
00000d33: PUSH2 0x0d3b
00000d36: JUMPI
00000d37: PUSH1 0x00
00000d39: DUP1
00000d3a: REVERT
00000d3b: JUMPDEST
00000d3c: POP
00000d3d: GAS
00000d3e: STATICCALL
00000d3f: ISZERO
00000d40: DUP1
00000d41: ISZERO
00000d42: PUSH2 0x0d4f
00000d45: JUMPI
00000d46: RETURNDATASIZE
00000d47: PUSH1 0x00
00000d49: DUP1
00000d4a: RETURNDATACOPY
00000d4b: RETURNDATASIZE
00000d4c: PUSH1 0x00
00000d4e: REVERT
00000d4f: JUMPDEST
00000d50: POP
00000d51: POP
00000d52: POP
00000d53: POP
00000d54: PUSH1 0x40
00000d56: MLOAD
00000d57: RETURNDATASIZE
00000d58: PUSH1 0x20
00000d5a: DUP2
00000d5b: LT
00000d5c: ISZERO
00000d5d: PUSH2 0x0d65
00000d60: JUMPI
00000d61: PUSH1 0x00
00000d63: DUP1
00000d64: REVERT
00000d65: JUMPDEST
00000d66: DUP2
00000d67: ADD
00000d68: SWAP1
00000d69: DUP1
00000d6a: DUP1
00000d6b: MLOAD
00000d6c: SWAP1
00000d6d: PUSH1 0x20
00000d6f: ADD
00000d70: SWAP1
00000d71: SWAP3
00000d72: SWAP2
00000d73: SWAP1
00000d74: POP
00000d75: POP
00000d76: POP
00000d77: SWAP1
00000d78: POP
00000d79: PUSH2 0x0d8b
00000d7c: DUP4
00000d7d: DUP3
00000d7e: PUSH2 0x27ac
00000d81: SWAP1
00000d82: SWAP2
00000d83: SWAP1
00000d84: PUSH4 0xffffffff
00000d89: AND
00000d8a: JUMP
00000d8b: JUMPDEST
00000d8c: SWAP2
00000d8d: POP
00000d8e: PUSH1 0x00
00000d90: DUP1
00000d91: SWAP1
00000d92: POP
00000d93: PUSH1 0x00
00000d95: PUSH2 0x0d9c
00000d98: PUSH2 0x1082
00000d9b: JUMP
00000d9c: JUMPDEST
00000d9d: EQ
00000d9e: ISZERO
00000d9f: PUSH2 0x0daa
00000da2: JUMPI
00000da3: DUP3
00000da4: SWAP1
00000da5: POP
00000da6: PUSH2 0x0dd9
00000da9: JUMP
00000daa: JUMPDEST
00000dab: PUSH2 0x0dd6
00000dae: DUP6
00000daf: PUSH2 0x0dc8
00000db2: PUSH2 0x0db9
00000db5: PUSH2 0x1082
00000db8: JUMP
00000db9: JUMPDEST
00000dba: DUP7
00000dbb: PUSH2 0x27f6
00000dbe: SWAP1
00000dbf: SWAP2
00000dc0: SWAP1
00000dc1: PUSH4 0xffffffff
00000dc6: AND
00000dc7: JUMP
00000dc8: JUMPDEST
00000dc9: PUSH2 0x287c
00000dcc: SWAP1
00000dcd: SWAP2
00000dce: SWAP1
00000dcf: PUSH4 0xffffffff
00000dd4: AND
00000dd5: JUMP
00000dd6: JUMPDEST
00000dd7: SWAP1
00000dd8: POP
00000dd9: JUMPDEST
00000dda: PUSH2 0x0de3
00000ddd: CALLER
00000dde: DUP3
00000ddf: PUSH2 0x28c6
00000de2: JUMP
00000de3: JUMPDEST
00000de4: POP
00000de5: POP
00000de6: POP
00000de7: POP
00000de8: POP
00000de9: JUMP
00000dea: JUMPDEST
00000deb: PUSH1 0x08
00000ded: PUSH1 0x00
00000def: SWAP1
00000df0: SLOAD
00000df1: SWAP1
00000df2: PUSH2 0x0100
00000df5: EXP
00000df6: SWAP1
00000df7: DIV
00000df8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e0d: AND
00000e0e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e23: AND
00000e24: CALLER
00000e25: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e3a: AND
00000e3b: EQ
00000e3c: PUSH2 0x0ead
00000e3f: JUMPI
00000e40: PUSH1 0x40
00000e42: MLOAD
00000e43: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000e64: DUP2
00000e65: MSTORE
00000e66: PUSH1 0x04
00000e68: ADD
00000e69: DUP1
00000e6a: DUP1
00000e6b: PUSH1 0x20
00000e6d: ADD
00000e6e: DUP3
00000e6f: DUP2
00000e70: SUB
00000e71: DUP3
00000e72: MSTORE
00000e73: PUSH1 0x0b
00000e75: DUP2
00000e76: MSTORE
00000e77: PUSH1 0x20
00000e79: ADD
00000e7a: DUP1
00000e7b: PUSH32 0x21636f6e74726f6c6c6572000000000000000000000000000000000000000000
00000e9c: DUP2
00000e9d: MSTORE
00000e9e: POP
00000e9f: PUSH1 0x20
00000ea1: ADD
00000ea2: SWAP2
00000ea3: POP
00000ea4: POP
00000ea5: PUSH1 0x40
00000ea7: MLOAD
00000ea8: DUP1
00000ea9: SWAP2
00000eaa: SUB
00000eab: SWAP1
00000eac: REVERT
00000ead: JUMPDEST
00000eae: PUSH1 0x05
00000eb0: PUSH1 0x01
00000eb2: SWAP1
00000eb3: SLOAD
00000eb4: SWAP1
00000eb5: PUSH2 0x0100
00000eb8: EXP
00000eb9: SWAP1
00000eba: DIV
00000ebb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ed0: AND
00000ed1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ee6: AND
00000ee7: DUP3
00000ee8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000efd: AND
00000efe: EQ
00000eff: ISZERO
00000f00: PUSH2 0x0f71
00000f03: JUMPI
00000f04: PUSH1 0x40
00000f06: MLOAD
00000f07: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000f28: DUP2
00000f29: MSTORE
00000f2a: PUSH1 0x04
00000f2c: ADD
00000f2d: DUP1
00000f2e: DUP1
00000f2f: PUSH1 0x20
00000f31: ADD
00000f32: DUP3
00000f33: DUP2
00000f34: SUB
00000f35: DUP3
00000f36: MSTORE
00000f37: PUSH1 0x05
00000f39: DUP2
00000f3a: MSTORE
00000f3b: PUSH1 0x20
00000f3d: ADD
00000f3e: DUP1
00000f3f: PUSH32 0x746f6b656e000000000000000000000000000000000000000000000000000000
00000f60: DUP2
00000f61: MSTORE
00000f62: POP
00000f63: PUSH1 0x20
00000f65: ADD
00000f66: SWAP2
00000f67: POP
00000f68: POP
00000f69: PUSH1 0x40
00000f6b: MLOAD
00000f6c: DUP1
00000f6d: SWAP2
00000f6e: SUB
00000f6f: SWAP1
00000f70: REVERT
00000f71: JUMPDEST
00000f72: PUSH2 0x0fbe
00000f75: PUSH1 0x08
00000f77: PUSH1 0x00
00000f79: SWAP1
00000f7a: SLOAD
00000f7b: SWAP1
00000f7c: PUSH2 0x0100
00000f7f: EXP
00000f80: SWAP1
00000f81: DIV
00000f82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f97: AND
00000f98: DUP3
00000f99: DUP5
00000f9a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000faf: AND
00000fb0: PUSH2 0x2a81
00000fb3: SWAP1
00000fb4: SWAP3
00000fb5: SWAP2
00000fb6: SWAP1
00000fb7: PUSH4 0xffffffff
00000fbc: AND
00000fbd: JUMP
00000fbe: JUMPDEST
00000fbf: POP
00000fc0: POP
00000fc1: JUMP
00000fc2: JUMPDEST
00000fc3: PUSH1 0x60
00000fc5: PUSH1 0x03
00000fc7: DUP1
00000fc8: SLOAD
00000fc9: PUSH1 0x01
00000fcb: DUP2
00000fcc: PUSH1 0x01
00000fce: AND
00000fcf: ISZERO
00000fd0: PUSH2 0x0100
00000fd3: MUL
00000fd4: SUB
00000fd5: AND
00000fd6: PUSH1 0x02
00000fd8: SWAP1
00000fd9: DIV
00000fda: DUP1
00000fdb: PUSH1 0x1f
00000fdd: ADD
00000fde: PUSH1 0x20
00000fe0: DUP1
00000fe1: SWAP2
00000fe2: DIV
00000fe3: MUL
00000fe4: PUSH1 0x20
00000fe6: ADD
00000fe7: PUSH1 0x40
00000fe9: MLOAD
00000fea: SWAP1
00000feb: DUP2
00000fec: ADD
00000fed: PUSH1 0x40
00000fef: MSTORE
00000ff0: DUP1
00000ff1: SWAP3
00000ff2: SWAP2
00000ff3: SWAP1
00000ff4: DUP2
00000ff5: DUP2
00000ff6: MSTORE
00000ff7: PUSH1 0x20
00000ff9: ADD
00000ffa: DUP3
00000ffb: DUP1
00000ffc: SLOAD
00000ffd: PUSH1 0x01
00000fff: DUP2
00001000: PUSH1 0x01
00001002: AND
00001003: ISZERO
00001004: PUSH2 0x0100
00001007: MUL
00001008: SUB
00001009: AND
0000100a: PUSH1 0x02
0000100c: SWAP1
0000100d: DIV
0000100e: DUP1
0000100f: ISZERO
00001010: PUSH2 0x105a
00001013: JUMPI
00001014: DUP1
00001015: PUSH1 0x1f
00001017: LT
00001018: PUSH2 0x102f
0000101b: JUMPI
0000101c: PUSH2 0x0100
0000101f: DUP1
00001020: DUP4
00001021: SLOAD
00001022: DIV
00001023: MUL
00001024: DUP4
00001025: MSTORE
00001026: SWAP2
00001027: PUSH1 0x20
00001029: ADD
0000102a: SWAP2
0000102b: PUSH2 0x105a
0000102e: JUMP
0000102f: JUMPDEST
00001030: DUP3
00001031: ADD
00001032: SWAP2
00001033: SWAP1
00001034: PUSH1 0x00
00001036: MSTORE
00001037: PUSH1 0x20
00001039: PUSH1 0x00
0000103b: KECCAK256
0000103c: SWAP1
0000103d: JUMPDEST
0000103e: DUP2
0000103f: SLOAD
00001040: DUP2
00001041: MSTORE
00001042: SWAP1
00001043: PUSH1 0x01
00001045: ADD
00001046: SWAP1
00001047: PUSH1 0x20
00001049: ADD
0000104a: DUP1
0000104b: DUP4
0000104c: GT
0000104d: PUSH2 0x103d
00001050: JUMPI
00001051: DUP3
00001052: SWAP1
00001053: SUB
00001054: PUSH1 0x1f
00001056: AND
00001057: DUP3
00001058: ADD
00001059: SWAP2
0000105a: JUMPDEST
0000105b: POP
0000105c: POP
0000105d: POP
0000105e: POP
0000105f: POP
00001060: SWAP1
00001061: POP
00001062: SWAP1
00001063: JUMP
00001064: JUMPDEST
00001065: PUSH1 0x00
00001067: PUSH2 0x1078
0000106a: PUSH2 0x1071
0000106d: PUSH2 0x2b52
00001070: JUMP
00001071: JUMPDEST
00001072: DUP5
00001073: DUP5
00001074: PUSH2 0x2b5a
00001077: JUMP
00001078: JUMPDEST
00001079: PUSH1 0x01
0000107b: SWAP1
0000107c: POP
0000107d: SWAP3
0000107e: SWAP2
0000107f: POP
00001080: POP
00001081: JUMP
00001082: JUMPDEST
00001083: PUSH1 0x00
00001085: PUSH1 0x02
00001087: SLOAD
00001088: SWAP1
00001089: POP
0000108a: SWAP1
0000108b: JUMP
0000108c: JUMPDEST
0000108d: PUSH1 0x00
0000108f: PUSH2 0x1099
00001092: DUP5
00001093: DUP5
00001094: DUP5
00001095: PUSH2 0x2d51
00001098: JUMP
00001099: JUMPDEST
0000109a: PUSH2 0x115a
0000109d: DUP5
0000109e: PUSH2 0x10a5
000010a1: PUSH2 0x2b52
000010a4: JUMP
000010a5: JUMPDEST
000010a6: PUSH2 0x1155
000010a9: DUP6
000010aa: PUSH1 0x40
000010ac: MLOAD
000010ad: DUP1
000010ae: PUSH1 0x60
000010b0: ADD
000010b1: PUSH1 0x40
000010b3: MSTORE
000010b4: DUP1
000010b5: PUSH1 0x28
000010b7: DUP2
000010b8: MSTORE
000010b9: PUSH1 0x20
000010bb: ADD
000010bc: PUSH2 0x3818
000010bf: PUSH1 0x28
000010c1: SWAP2
000010c2: CODECOPY
000010c3: PUSH1 0x01
000010c5: PUSH1 0x00
000010c7: DUP12
000010c8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010dd: AND
000010de: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010f3: AND
000010f4: DUP2
000010f5: MSTORE
000010f6: PUSH1 0x20
000010f8: ADD
000010f9: SWAP1
000010fa: DUP2
000010fb: MSTORE
000010fc: PUSH1 0x20
000010fe: ADD
000010ff: PUSH1 0x00
00001101: KECCAK256
00001102: PUSH1 0x00
00001104: PUSH2 0x110b
00001107: PUSH2 0x2b52
0000110a: JUMP
0000110b: JUMPDEST
0000110c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001121: AND
00001122: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001137: AND
00001138: DUP2
00001139: MSTORE
0000113a: PUSH1 0x20
0000113c: ADD
0000113d: SWAP1
0000113e: DUP2
0000113f: MSTORE
00001140: PUSH1 0x20
00001142: ADD
00001143: PUSH1 0x00
00001145: KECCAK256
00001146: SLOAD
00001147: PUSH2 0x3007
0000114a: SWAP1
0000114b: SWAP3
0000114c: SWAP2
0000114d: SWAP1
0000114e: PUSH4 0xffffffff
00001153: AND
00001154: JUMP
00001155: JUMPDEST
00001156: PUSH2 0x2b5a
00001159: JUMP
0000115a: JUMPDEST
0000115b: PUSH1 0x01
0000115d: SWAP1
0000115e: POP
0000115f: SWAP4
00001160: SWAP3
00001161: POP
00001162: POP
00001163: POP
00001164: JUMP
00001165: JUMPDEST
00001166: PUSH1 0x00
00001168: PUSH2 0x119a
0000116b: PUSH2 0x1172
0000116e: PUSH2 0x1082
00001171: JUMP
00001172: JUMPDEST
00001173: PUSH2 0x118c
00001176: DUP5
00001177: PUSH2 0x117e
0000117a: PUSH2 0x1c06
0000117d: JUMP
0000117e: JUMPDEST
0000117f: PUSH2 0x27f6
00001182: SWAP1
00001183: SWAP2
00001184: SWAP1
00001185: PUSH4 0xffffffff
0000118a: AND
0000118b: JUMP
0000118c: JUMPDEST
0000118d: PUSH2 0x287c
00001190: SWAP1
00001191: SWAP2
00001192: SWAP1
00001193: PUSH4 0xffffffff
00001198: AND
00001199: JUMP
0000119a: JUMPDEST
0000119b: SWAP1
0000119c: POP
0000119d: PUSH2 0x11a6
000011a0: CALLER
000011a1: DUP4
000011a2: PUSH2 0x30c7
000011a5: JUMP
000011a6: JUMPDEST
000011a7: PUSH1 0x00
000011a9: PUSH1 0x05
000011ab: PUSH1 0x01
000011ad: SWAP1
000011ae: SLOAD
000011af: SWAP1
000011b0: PUSH2 0x0100
000011b3: EXP
000011b4: SWAP1
000011b5: DIV
000011b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011cb: AND
000011cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011e1: AND
000011e2: PUSH4 0x70a08231
000011e7: ADDRESS
000011e8: PUSH1 0x40
000011ea: MLOAD
000011eb: DUP3
000011ec: PUSH4 0xffffffff
000011f1: AND
000011f2: PUSH1 0xe0
000011f4: SHL
000011f5: DUP2
000011f6: MSTORE
000011f7: PUSH1 0x04
000011f9: ADD
000011fa: DUP1
000011fb: DUP3
000011fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001211: AND
00001212: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001227: AND
00001228: DUP2
00001229: MSTORE
0000122a: PUSH1 0x20
0000122c: ADD
0000122d: SWAP2
0000122e: POP
0000122f: POP
00001230: PUSH1 0x20
00001232: PUSH1 0x40
00001234: MLOAD
00001235: DUP1
00001236: DUP4
00001237: SUB
00001238: DUP2
00001239: DUP7
0000123a: DUP1
0000123b: EXTCODESIZE
0000123c: ISZERO
0000123d: DUP1
0000123e: ISZERO
0000123f: PUSH2 0x1247
00001242: JUMPI
00001243: PUSH1 0x00
00001245: DUP1
00001246: REVERT
00001247: JUMPDEST
00001248: POP
00001249: GAS
0000124a: STATICCALL
0000124b: ISZERO
0000124c: DUP1
0000124d: ISZERO
0000124e: PUSH2 0x125b
00001251: JUMPI
00001252: RETURNDATASIZE
00001253: PUSH1 0x00
00001255: DUP1
00001256: RETURNDATACOPY
00001257: RETURNDATASIZE
00001258: PUSH1 0x00
0000125a: REVERT
0000125b: JUMPDEST
0000125c: POP
0000125d: POP
0000125e: POP
0000125f: POP
00001260: PUSH1 0x40
00001262: MLOAD
00001263: RETURNDATASIZE
00001264: PUSH1 0x20
00001266: DUP2
00001267: LT
00001268: ISZERO
00001269: PUSH2 0x1271
0000126c: JUMPI
0000126d: PUSH1 0x00
0000126f: DUP1
00001270: REVERT
00001271: JUMPDEST
00001272: DUP2
00001273: ADD
00001274: SWAP1
00001275: DUP1
00001276: DUP1
00001277: MLOAD
00001278: SWAP1
00001279: PUSH1 0x20
0000127b: ADD
0000127c: SWAP1
0000127d: SWAP3
0000127e: SWAP2
0000127f: SWAP1
00001280: POP
00001281: POP
00001282: POP
00001283: SWAP1
00001284: POP
00001285: DUP2
00001286: DUP2
00001287: LT
00001288: ISZERO
00001289: PUSH2 0x149d
0000128c: JUMPI
0000128d: PUSH1 0x00
0000128f: PUSH2 0x12a1
00001292: DUP3
00001293: DUP5
00001294: PUSH2 0x27ac
00001297: SWAP1
00001298: SWAP2
00001299: SWAP1
0000129a: PUSH4 0xffffffff
0000129f: AND
000012a0: JUMP
000012a1: JUMPDEST
000012a2: SWAP1
000012a3: POP
000012a4: PUSH1 0x08
000012a6: PUSH1 0x00
000012a8: SWAP1
000012a9: SLOAD
000012aa: SWAP1
000012ab: PUSH2 0x0100
000012ae: EXP
000012af: SWAP1
000012b0: DIV
000012b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012c6: AND
000012c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012dc: AND
000012dd: PUSH4 0xf3fef3a3
000012e2: PUSH1 0x05
000012e4: PUSH1 0x01
000012e6: SWAP1
000012e7: SLOAD
000012e8: SWAP1
000012e9: PUSH2 0x0100
000012ec: EXP
000012ed: SWAP1
000012ee: DIV
000012ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001304: AND
00001305: DUP4
00001306: PUSH1 0x40
00001308: MLOAD
00001309: DUP4
0000130a: PUSH4 0xffffffff
0000130f: AND
00001310: PUSH1 0xe0
00001312: SHL
00001313: DUP2
00001314: MSTORE
00001315: PUSH1 0x04
00001317: ADD
00001318: DUP1
00001319: DUP4
0000131a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000132f: AND
00001330: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001345: AND
00001346: DUP2
00001347: MSTORE
00001348: PUSH1 0x20
0000134a: ADD
0000134b: DUP3
0000134c: DUP2
0000134d: MSTORE
0000134e: PUSH1 0x20
00001350: ADD
00001351: SWAP3
00001352: POP
00001353: POP
00001354: POP
00001355: PUSH1 0x00
00001357: PUSH1 0x40
00001359: MLOAD
0000135a: DUP1
0000135b: DUP4
0000135c: SUB
0000135d: DUP2
0000135e: PUSH1 0x00
00001360: DUP8
00001361: DUP1
00001362: EXTCODESIZE
00001363: ISZERO
00001364: DUP1
00001365: ISZERO
00001366: PUSH2 0x136e
00001369: JUMPI
0000136a: PUSH1 0x00
0000136c: DUP1
0000136d: REVERT
0000136e: JUMPDEST
0000136f: POP
00001370: GAS
00001371: CALL
00001372: ISZERO
00001373: DUP1
00001374: ISZERO
00001375: PUSH2 0x1382
00001378: JUMPI
00001379: RETURNDATASIZE
0000137a: PUSH1 0x00
0000137c: DUP1
0000137d: RETURNDATACOPY
0000137e: RETURNDATASIZE
0000137f: PUSH1 0x00
00001381: REVERT
00001382: JUMPDEST
00001383: POP
00001384: POP
00001385: POP
00001386: POP
00001387: PUSH1 0x00
00001389: PUSH1 0x05
0000138b: PUSH1 0x01
0000138d: SWAP1
0000138e: SLOAD
0000138f: SWAP1
00001390: PUSH2 0x0100
00001393: EXP
00001394: SWAP1
00001395: DIV
00001396: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013ab: AND
000013ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013c1: AND
000013c2: PUSH4 0x70a08231
000013c7: ADDRESS
000013c8: PUSH1 0x40
000013ca: MLOAD
000013cb: DUP3
000013cc: PUSH4 0xffffffff
000013d1: AND
000013d2: PUSH1 0xe0
000013d4: SHL
000013d5: DUP2
000013d6: MSTORE
000013d7: PUSH1 0x04
000013d9: ADD
000013da: DUP1
000013db: DUP3
000013dc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013f1: AND
000013f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001407: AND
00001408: DUP2
00001409: MSTORE
0000140a: PUSH1 0x20
0000140c: ADD
0000140d: SWAP2
0000140e: POP
0000140f: POP
00001410: PUSH1 0x20
00001412: PUSH1 0x40
00001414: MLOAD
00001415: DUP1
00001416: DUP4
00001417: SUB
00001418: DUP2
00001419: DUP7
0000141a: DUP1
0000141b: EXTCODESIZE
0000141c: ISZERO
0000141d: DUP1
0000141e: ISZERO
0000141f: PUSH2 0x1427
00001422: JUMPI
00001423: PUSH1 0x00
00001425: DUP1
00001426: REVERT
00001427: JUMPDEST
00001428: POP
00001429: GAS
0000142a: STATICCALL
0000142b: ISZERO
0000142c: DUP1
0000142d: ISZERO
0000142e: PUSH2 0x143b
00001431: JUMPI
00001432: RETURNDATASIZE
00001433: PUSH1 0x00
00001435: DUP1
00001436: RETURNDATACOPY
00001437: RETURNDATASIZE
00001438: PUSH1 0x00
0000143a: REVERT
0000143b: JUMPDEST
0000143c: POP
0000143d: POP
0000143e: POP
0000143f: POP
00001440: PUSH1 0x40
00001442: MLOAD
00001443: RETURNDATASIZE
00001444: PUSH1 0x20
00001446: DUP2
00001447: LT
00001448: ISZERO
00001449: PUSH2 0x1451
0000144c: JUMPI
0000144d: PUSH1 0x00
0000144f: DUP1
00001450: REVERT
00001451: JUMPDEST
00001452: DUP2
00001453: ADD
00001454: SWAP1
00001455: DUP1
00001456: DUP1
00001457: MLOAD
00001458: SWAP1
00001459: PUSH1 0x20
0000145b: ADD
0000145c: SWAP1
0000145d: SWAP3
0000145e: SWAP2
0000145f: SWAP1
00001460: POP
00001461: POP
00001462: POP
00001463: SWAP1
00001464: POP
00001465: PUSH1 0x00
00001467: PUSH2 0x1479
0000146a: DUP5
0000146b: DUP4
0000146c: PUSH2 0x27ac
0000146f: SWAP1
00001470: SWAP2
00001471: SWAP1
00001472: PUSH4 0xffffffff
00001477: AND
00001478: JUMP
00001479: JUMPDEST
0000147a: SWAP1
0000147b: POP
0000147c: DUP3
0000147d: DUP2
0000147e: LT
0000147f: ISZERO
00001480: PUSH2 0x1499
00001483: JUMPI
00001484: PUSH2 0x1496
00001487: DUP2
00001488: DUP6
00001489: PUSH2 0x327f
0000148c: SWAP1
0000148d: SWAP2
0000148e: SWAP1
0000148f: PUSH4 0xffffffff
00001494: AND
00001495: JUMP
00001496: JUMPDEST
00001497: SWAP5
00001498: POP
00001499: JUMPDEST
0000149a: POP
0000149b: POP
0000149c: POP
0000149d: JUMPDEST
0000149e: PUSH2 0x14ea
000014a1: CALLER
000014a2: DUP4
000014a3: PUSH1 0x05
000014a5: PUSH1 0x01
000014a7: SWAP1
000014a8: SLOAD
000014a9: SWAP1
000014aa: PUSH2 0x0100
000014ad: EXP
000014ae: SWAP1
000014af: DIV
000014b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014c5: AND
000014c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014db: AND
000014dc: PUSH2 0x2a81
000014df: SWAP1
000014e0: SWAP3
000014e1: SWAP2
000014e2: SWAP1
000014e3: PUSH4 0xffffffff
000014e8: AND
000014e9: JUMP
000014ea: JUMPDEST
000014eb: POP
000014ec: POP
000014ed: POP
000014ee: JUMP
000014ef: JUMPDEST
000014f0: PUSH1 0x00
000014f2: PUSH1 0x05
000014f4: PUSH1 0x00
000014f6: SWAP1
000014f7: SLOAD
000014f8: SWAP1
000014f9: PUSH2 0x0100
000014fc: EXP
000014fd: SWAP1
000014fe: DIV
000014ff: PUSH1 0xff
00001501: AND
00001502: SWAP1
00001503: POP
00001504: SWAP1
00001505: JUMP
00001506: JUMPDEST
00001507: PUSH1 0x00
00001509: PUSH2 0x15af
0000150c: PUSH2 0x1513
0000150f: PUSH2 0x2b52
00001512: JUMP
00001513: JUMPDEST
00001514: DUP5
00001515: PUSH2 0x15aa
00001518: DUP6
00001519: PUSH1 0x01
0000151b: PUSH1 0x00
0000151d: PUSH2 0x1524
00001520: PUSH2 0x2b52
00001523: JUMP
00001524: JUMPDEST
00001525: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000153a: AND
0000153b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001550: AND
00001551: DUP2
00001552: MSTORE
00001553: PUSH1 0x20
00001555: ADD
00001556: SWAP1
00001557: DUP2
00001558: MSTORE
00001559: PUSH1 0x20
0000155b: ADD
0000155c: PUSH1 0x00
0000155e: KECCAK256
0000155f: PUSH1 0x00
00001561: DUP10
00001562: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001577: AND
00001578: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000158d: AND
0000158e: DUP2
0000158f: MSTORE
00001590: PUSH1 0x20
00001592: ADD
00001593: SWAP1
00001594: DUP2
00001595: MSTORE
00001596: PUSH1 0x20
00001598: ADD
00001599: PUSH1 0x00
0000159b: KECCAK256
0000159c: SLOAD
0000159d: PUSH2 0x327f
000015a0: SWAP1
000015a1: SWAP2
000015a2: SWAP1
000015a3: PUSH4 0xffffffff
000015a8: AND
000015a9: JUMP
000015aa: JUMPDEST
000015ab: PUSH2 0x2b5a
000015ae: JUMP
000015af: JUMPDEST
000015b0: PUSH1 0x01
000015b2: SWAP1
000015b3: POP
000015b4: SWAP3
000015b5: SWAP2
000015b6: POP
000015b7: POP
000015b8: JUMP
000015b9: JUMPDEST
000015ba: PUSH1 0x07
000015bc: PUSH1 0x00
000015be: SWAP1
000015bf: SLOAD
000015c0: SWAP1
000015c1: PUSH2 0x0100
000015c4: EXP
000015c5: SWAP1
000015c6: DIV
000015c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015dc: AND
000015dd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015f2: AND
000015f3: CALLER
000015f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001609: AND
0000160a: EQ
0000160b: PUSH2 0x167c
0000160e: JUMPI
0000160f: PUSH1 0x40
00001611: MLOAD
00001612: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001633: DUP2
00001634: MSTORE
00001635: PUSH1 0x04
00001637: ADD
00001638: DUP1
00001639: DUP1
0000163a: PUSH1 0x20
0000163c: ADD
0000163d: DUP3
0000163e: DUP2
0000163f: SUB
00001640: DUP3
00001641: MSTORE
00001642: PUSH1 0x0b
00001644: DUP2
00001645: MSTORE
00001646: PUSH1 0x20
00001648: ADD
00001649: DUP1
0000164a: PUSH32 0x21676f7665726e616e6365000000000000000000000000000000000000000000
0000166b: DUP2
0000166c: MSTORE
0000166d: POP
0000166e: PUSH1 0x20
00001670: ADD
00001671: SWAP2
00001672: POP
00001673: POP
00001674: PUSH1 0x40
00001676: MLOAD
00001677: DUP1
00001678: SWAP2
00001679: SUB
0000167a: SWAP1
0000167b: REVERT
0000167c: JUMPDEST
0000167d: DUP1
0000167e: PUSH1 0x06
00001680: DUP2
00001681: SWAP1
00001682: SSTORE
00001683: POP
00001684: POP
00001685: JUMP
00001686: JUMPDEST
00001687: PUSH1 0x00
00001689: PUSH2 0x178a
0000168c: PUSH2 0x2710
0000168f: PUSH2 0x177c
00001692: PUSH1 0x06
00001694: SLOAD
00001695: PUSH1 0x05
00001697: PUSH1 0x01
00001699: SWAP1
0000169a: SLOAD
0000169b: SWAP1
0000169c: PUSH2 0x0100
0000169f: EXP
000016a0: SWAP1
000016a1: DIV
000016a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016b7: AND
000016b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016cd: AND
000016ce: PUSH4 0x70a08231
000016d3: ADDRESS
000016d4: PUSH1 0x40
000016d6: MLOAD
000016d7: DUP3
000016d8: PUSH4 0xffffffff
000016dd: AND
000016de: PUSH1 0xe0
000016e0: SHL
000016e1: DUP2
000016e2: MSTORE
000016e3: PUSH1 0x04
000016e5: ADD
000016e6: DUP1
000016e7: DUP3
000016e8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016fd: AND
000016fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001713: AND
00001714: DUP2
00001715: MSTORE
00001716: PUSH1 0x20
00001718: ADD
00001719: SWAP2
0000171a: POP
0000171b: POP
0000171c: PUSH1 0x20
0000171e: PUSH1 0x40
00001720: MLOAD
00001721: DUP1
00001722: DUP4
00001723: SUB
00001724: DUP2
00001725: DUP7
00001726: DUP1
00001727: EXTCODESIZE
00001728: ISZERO
00001729: DUP1
0000172a: ISZERO
0000172b: PUSH2 0x1733
0000172e: JUMPI
0000172f: PUSH1 0x00
00001731: DUP1
00001732: REVERT
00001733: JUMPDEST
00001734: POP
00001735: GAS
00001736: STATICCALL
00001737: ISZERO
00001738: DUP1
00001739: ISZERO
0000173a: PUSH2 0x1747
0000173d: JUMPI
0000173e: RETURNDATASIZE
0000173f: PUSH1 0x00
00001741: DUP1
00001742: RETURNDATACOPY
00001743: RETURNDATASIZE
00001744: PUSH1 0x00
00001746: REVERT
00001747: JUMPDEST
00001748: POP
00001749: POP
0000174a: POP
0000174b: POP
0000174c: PUSH1 0x40
0000174e: MLOAD
0000174f: RETURNDATASIZE
00001750: PUSH1 0x20
00001752: DUP2
00001753: LT
00001754: ISZERO
00001755: PUSH2 0x175d
00001758: JUMPI
00001759: PUSH1 0x00
0000175b: DUP1
0000175c: REVERT
0000175d: JUMPDEST
0000175e: DUP2
0000175f: ADD
00001760: SWAP1
00001761: DUP1
00001762: DUP1
00001763: MLOAD
00001764: SWAP1
00001765: PUSH1 0x20
00001767: ADD
00001768: SWAP1
00001769: SWAP3
0000176a: SWAP2
0000176b: SWAP1
0000176c: POP
0000176d: POP
0000176e: POP
0000176f: PUSH2 0x27f6
00001772: SWAP1
00001773: SWAP2
00001774: SWAP1
00001775: PUSH4 0xffffffff
0000177a: AND
0000177b: JUMP
0000177c: JUMPDEST
0000177d: PUSH2 0x287c
00001780: SWAP1
00001781: SWAP2
00001782: SWAP1
00001783: PUSH4 0xffffffff
00001788: AND
00001789: JUMP
0000178a: JUMPDEST
0000178b: SWAP1
0000178c: POP
0000178d: SWAP1
0000178e: JUMP
0000178f: JUMPDEST
00001790: PUSH1 0x07
00001792: PUSH1 0x00
00001794: SWAP1
00001795: SLOAD
00001796: SWAP1
00001797: PUSH2 0x0100
0000179a: EXP
0000179b: SWAP1
0000179c: DIV
0000179d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017b2: AND
000017b3: DUP2
000017b4: JUMP
000017b5: JUMPDEST
000017b6: PUSH2 0x2710
000017b9: DUP2
000017ba: JUMP
000017bb: JUMPDEST
000017bc: PUSH1 0x00
000017be: DUP1
000017bf: PUSH1 0x00
000017c1: DUP4
000017c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017d7: AND
000017d8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017ed: AND
000017ee: DUP2
000017ef: MSTORE
000017f0: PUSH1 0x20
000017f2: ADD
000017f3: SWAP1
000017f4: DUP2
000017f5: MSTORE
000017f6: PUSH1 0x20
000017f8: ADD
000017f9: PUSH1 0x00
000017fb: KECCAK256
000017fc: SLOAD
000017fd: SWAP1
000017fe: POP
000017ff: SWAP2
00001800: SWAP1
00001801: POP
00001802: JUMP
00001803: JUMPDEST
00001804: PUSH1 0x00
00001806: PUSH2 0x1840
00001809: PUSH2 0x1810
0000180c: PUSH2 0x1082
0000180f: JUMP
00001810: JUMPDEST
00001811: PUSH2 0x1832
00001814: PUSH8 0x0de0b6b3a7640000
0000181d: PUSH2 0x1824
00001820: PUSH2 0x1c06
00001823: JUMP
00001824: JUMPDEST
00001825: PUSH2 0x27f6
00001828: SWAP1
00001829: SWAP2
0000182a: SWAP1
0000182b: PUSH4 0xffffffff
00001830: AND
00001831: JUMP
00001832: JUMPDEST
00001833: PUSH2 0x287c
00001836: SWAP1
00001837: SWAP2
00001838: SWAP1
00001839: PUSH4 0xffffffff
0000183e: AND
0000183f: JUMP
00001840: JUMPDEST
00001841: SWAP1
00001842: POP
00001843: SWAP1
00001844: JUMP
00001845: JUMPDEST
00001846: PUSH2 0x1856
00001849: PUSH2 0x1851
0000184c: CALLER
0000184d: PUSH2 0x17bb
00001850: JUMP
00001851: JUMPDEST
00001852: PUSH2 0x1165
00001855: JUMP
00001856: JUMPDEST
00001857: JUMP
00001858: JUMPDEST
00001859: PUSH2 0x1869
0000185c: PUSH2 0x1864
0000185f: CALLER
00001860: PUSH2 0x17bb
00001863: JUMP
00001864: JUMPDEST
00001865: PUSH2 0x2349
00001868: JUMP
00001869: JUMPDEST
0000186a: JUMP
0000186b: JUMPDEST
0000186c: PUSH1 0x07
0000186e: PUSH1 0x00
00001870: SWAP1
00001871: SLOAD
00001872: SWAP1
00001873: PUSH2 0x0100
00001876: EXP
00001877: SWAP1
00001878: DIV
00001879: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000188e: AND
0000188f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018a4: AND
000018a5: CALLER
000018a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018bb: AND
000018bc: EQ
000018bd: PUSH2 0x192e
000018c0: JUMPI
000018c1: PUSH1 0x40
000018c3: MLOAD
000018c4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000018e5: DUP2
000018e6: MSTORE
000018e7: PUSH1 0x04
000018e9: ADD
000018ea: DUP1
000018eb: DUP1
000018ec: PUSH1 0x20
000018ee: ADD
000018ef: DUP3
000018f0: DUP2
000018f1: SUB
000018f2: DUP3
000018f3: MSTORE
000018f4: PUSH1 0x0b
000018f6: DUP2
000018f7: MSTORE
000018f8: PUSH1 0x20
000018fa: ADD
000018fb: DUP1
000018fc: PUSH32 0x21676f7665726e616e6365000000000000000000000000000000000000000000
0000191d: DUP2
0000191e: MSTORE
0000191f: POP
00001920: PUSH1 0x20
00001922: ADD
00001923: SWAP2
00001924: POP
00001925: POP
00001926: PUSH1 0x40
00001928: MLOAD
00001929: DUP1
0000192a: SWAP2
0000192b: SUB
0000192c: SWAP1
0000192d: REVERT
0000192e: JUMPDEST
0000192f: DUP1
00001930: PUSH1 0x08
00001932: PUSH1 0x00
00001934: PUSH2 0x0100
00001937: EXP
00001938: DUP2
00001939: SLOAD
0000193a: DUP2
0000193b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001950: MUL
00001951: NOT
00001952: AND
00001953: SWAP1
00001954: DUP4
00001955: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000196a: AND
0000196b: MUL
0000196c: OR
0000196d: SWAP1
0000196e: SSTORE
0000196f: POP
00001970: POP
00001971: JUMP
00001972: JUMPDEST
00001973: PUSH1 0x60
00001975: PUSH1 0x04
00001977: DUP1
00001978: SLOAD
00001979: PUSH1 0x01
0000197b: DUP2
0000197c: PUSH1 0x01
0000197e: AND
0000197f: ISZERO
00001980: PUSH2 0x0100
00001983: MUL
00001984: SUB
00001985: AND
00001986: PUSH1 0x02
00001988: SWAP1
00001989: DIV
0000198a: DUP1
0000198b: PUSH1 0x1f
0000198d: ADD
0000198e: PUSH1 0x20
00001990: DUP1
00001991: SWAP2
00001992: DIV
00001993: MUL
00001994: PUSH1 0x20
00001996: ADD
00001997: PUSH1 0x40
00001999: MLOAD
0000199a: SWAP1
0000199b: DUP2
0000199c: ADD
0000199d: PUSH1 0x40
0000199f: MSTORE
000019a0: DUP1
000019a1: SWAP3
000019a2: SWAP2
000019a3: SWAP1
000019a4: DUP2
000019a5: DUP2
000019a6: MSTORE
000019a7: PUSH1 0x20
000019a9: ADD
000019aa: DUP3
000019ab: DUP1
000019ac: SLOAD
000019ad: PUSH1 0x01
000019af: DUP2
000019b0: PUSH1 0x01
000019b2: AND
000019b3: ISZERO
000019b4: PUSH2 0x0100
000019b7: MUL
000019b8: SUB
000019b9: AND
000019ba: PUSH1 0x02
000019bc: SWAP1
000019bd: DIV
000019be: DUP1
000019bf: ISZERO
000019c0: PUSH2 0x1a0a
000019c3: JUMPI
000019c4: DUP1
000019c5: PUSH1 0x1f
000019c7: LT
000019c8: PUSH2 0x19df
000019cb: JUMPI
000019cc: PUSH2 0x0100
000019cf: DUP1
000019d0: DUP4
000019d1: SLOAD
000019d2: DIV
000019d3: MUL
000019d4: DUP4
000019d5: MSTORE
000019d6: SWAP2
000019d7: PUSH1 0x20
000019d9: ADD
000019da: SWAP2
000019db: PUSH2 0x1a0a
000019de: JUMP
000019df: JUMPDEST
000019e0: DUP3
000019e1: ADD
000019e2: SWAP2
000019e3: SWAP1
000019e4: PUSH1 0x00
000019e6: MSTORE
000019e7: PUSH1 0x20
000019e9: PUSH1 0x00
000019eb: KECCAK256
000019ec: SWAP1
000019ed: JUMPDEST
000019ee: DUP2
000019ef: SLOAD
000019f0: DUP2
000019f1: MSTORE
000019f2: SWAP1
000019f3: PUSH1 0x01
000019f5: ADD
000019f6: SWAP1
000019f7: PUSH1 0x20
000019f9: ADD
000019fa: DUP1
000019fb: DUP4
000019fc: GT
000019fd: PUSH2 0x19ed
00001a00: JUMPI
00001a01: DUP3
00001a02: SWAP1
00001a03: SUB
00001a04: PUSH1 0x1f
00001a06: AND
00001a07: DUP3
00001a08: ADD
00001a09: SWAP2
00001a0a: JUMPDEST
00001a0b: POP
00001a0c: POP
00001a0d: POP
00001a0e: POP
00001a0f: POP
00001a10: SWAP1
00001a11: POP
00001a12: SWAP1
00001a13: JUMP
00001a14: JUMPDEST
00001a15: PUSH1 0x00
00001a17: PUSH2 0x1ad7
00001a1a: PUSH2 0x1a21
00001a1d: PUSH2 0x2b52
00001a20: JUMP
00001a21: JUMPDEST
00001a22: DUP5
00001a23: PUSH2 0x1ad2
00001a26: DUP6
00001a27: PUSH1 0x40
00001a29: MLOAD
00001a2a: DUP1
00001a2b: PUSH1 0x60
00001a2d: ADD
00001a2e: PUSH1 0x40
00001a30: MSTORE
00001a31: DUP1
00001a32: PUSH1 0x25
00001a34: DUP2
00001a35: MSTORE
00001a36: PUSH1 0x20
00001a38: ADD
00001a39: PUSH2 0x38d4
00001a3c: PUSH1 0x25
00001a3e: SWAP2
00001a3f: CODECOPY
00001a40: PUSH1 0x01
00001a42: PUSH1 0x00
00001a44: PUSH2 0x1a4b
00001a47: PUSH2 0x2b52
00001a4a: JUMP
00001a4b: JUMPDEST
00001a4c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a61: AND
00001a62: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a77: AND
00001a78: DUP2
00001a79: MSTORE
00001a7a: PUSH1 0x20
00001a7c: ADD
00001a7d: SWAP1
00001a7e: DUP2
00001a7f: MSTORE
00001a80: PUSH1 0x20
00001a82: ADD
00001a83: PUSH1 0x00
00001a85: KECCAK256
00001a86: PUSH1 0x00
00001a88: DUP11
00001a89: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a9e: AND
00001a9f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ab4: AND
00001ab5: DUP2
00001ab6: MSTORE
00001ab7: PUSH1 0x20
00001ab9: ADD
00001aba: SWAP1
00001abb: DUP2
00001abc: MSTORE
00001abd: PUSH1 0x20
00001abf: ADD
00001ac0: PUSH1 0x00
00001ac2: KECCAK256
00001ac3: SLOAD
00001ac4: PUSH2 0x3007
00001ac7: SWAP1
00001ac8: SWAP3
00001ac9: SWAP2
00001aca: SWAP1
00001acb: PUSH4 0xffffffff
00001ad0: AND
00001ad1: JUMP
00001ad2: JUMPDEST
00001ad3: PUSH2 0x2b5a
00001ad6: JUMP
00001ad7: JUMPDEST
00001ad8: PUSH1 0x01
00001ada: SWAP1
00001adb: POP
00001adc: SWAP3
00001add: SWAP2
00001ade: POP
00001adf: POP
00001ae0: JUMP
00001ae1: JUMPDEST
00001ae2: PUSH1 0x00
00001ae4: PUSH2 0x1af5
00001ae7: PUSH2 0x1aee
00001aea: PUSH2 0x2b52
00001aed: JUMP
00001aee: JUMPDEST
00001aef: DUP5
00001af0: DUP5
00001af1: PUSH2 0x2d51
00001af4: JUMP
00001af5: JUMPDEST
00001af6: PUSH1 0x01
00001af8: SWAP1
00001af9: POP
00001afa: SWAP3
00001afb: SWAP2
00001afc: POP
00001afd: POP
00001afe: JUMP
00001aff: JUMPDEST
00001b00: PUSH1 0x07
00001b02: PUSH1 0x00
00001b04: SWAP1
00001b05: SLOAD
00001b06: SWAP1
00001b07: PUSH2 0x0100
00001b0a: EXP
00001b0b: SWAP1
00001b0c: DIV
00001b0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b22: AND
00001b23: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b38: AND
00001b39: CALLER
00001b3a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b4f: AND
00001b50: EQ
00001b51: PUSH2 0x1bc2
00001b54: JUMPI
00001b55: PUSH1 0x40
00001b57: MLOAD
00001b58: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001b79: DUP2
00001b7a: MSTORE
00001b7b: PUSH1 0x04
00001b7d: ADD
00001b7e: DUP1
00001b7f: DUP1
00001b80: PUSH1 0x20
00001b82: ADD
00001b83: DUP3
00001b84: DUP2
00001b85: SUB
00001b86: DUP3
00001b87: MSTORE
00001b88: PUSH1 0x0b
00001b8a: DUP2
00001b8b: MSTORE
00001b8c: PUSH1 0x20
00001b8e: ADD
00001b8f: DUP1
00001b90: PUSH32 0x21676f7665726e616e6365000000000000000000000000000000000000000000
00001bb1: DUP2
00001bb2: MSTORE
00001bb3: POP
00001bb4: PUSH1 0x20
00001bb6: ADD
00001bb7: SWAP2
00001bb8: POP
00001bb9: POP
00001bba: PUSH1 0x40
00001bbc: MLOAD
00001bbd: DUP1
00001bbe: SWAP2
00001bbf: SUB
00001bc0: SWAP1
00001bc1: REVERT
00001bc2: JUMPDEST
00001bc3: DUP1
00001bc4: PUSH1 0x07
00001bc6: PUSH1 0x00
00001bc8: PUSH2 0x0100
00001bcb: EXP
00001bcc: DUP2
00001bcd: SLOAD
00001bce: DUP2
00001bcf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001be4: MUL
00001be5: NOT
00001be6: AND
00001be7: SWAP1
00001be8: DUP4
00001be9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bfe: AND
00001bff: MUL
00001c00: OR
00001c01: SWAP1
00001c02: SSTORE
00001c03: POP
00001c04: POP
00001c05: JUMP
00001c06: JUMPDEST
00001c07: PUSH1 0x00
00001c09: PUSH2 0x1def
00001c0c: PUSH1 0x08
00001c0e: PUSH1 0x00
00001c10: SWAP1
00001c11: SLOAD
00001c12: SWAP1
00001c13: PUSH2 0x0100
00001c16: EXP
00001c17: SWAP1
00001c18: DIV
00001c19: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c2e: AND
00001c2f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c44: AND
00001c45: PUSH4 0x70a08231
00001c4a: PUSH1 0x05
00001c4c: PUSH1 0x01
00001c4e: SWAP1
00001c4f: SLOAD
00001c50: SWAP1
00001c51: PUSH2 0x0100
00001c54: EXP
00001c55: SWAP1
00001c56: DIV
00001c57: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c6c: AND
00001c6d: PUSH1 0x40
00001c6f: MLOAD
00001c70: DUP3
00001c71: PUSH4 0xffffffff
00001c76: AND
00001c77: PUSH1 0xe0
00001c79: SHL
00001c7a: DUP2
00001c7b: MSTORE
00001c7c: PUSH1 0x04
00001c7e: ADD
00001c7f: DUP1
00001c80: DUP3
00001c81: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c96: AND
00001c97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cac: AND
00001cad: DUP2
00001cae: MSTORE
00001caf: PUSH1 0x20
00001cb1: ADD
00001cb2: SWAP2
00001cb3: POP
00001cb4: POP
00001cb5: PUSH1 0x20
00001cb7: PUSH1 0x40
00001cb9: MLOAD
00001cba: DUP1
00001cbb: DUP4
00001cbc: SUB
00001cbd: DUP2
00001cbe: DUP7
00001cbf: DUP1
00001cc0: EXTCODESIZE
00001cc1: ISZERO
00001cc2: DUP1
00001cc3: ISZERO
00001cc4: PUSH2 0x1ccc
00001cc7: JUMPI
00001cc8: PUSH1 0x00
00001cca: DUP1
00001ccb: REVERT
00001ccc: JUMPDEST
00001ccd: POP
00001cce: GAS
00001ccf: STATICCALL
00001cd0: ISZERO
00001cd1: DUP1
00001cd2: ISZERO
00001cd3: PUSH2 0x1ce0
00001cd6: JUMPI
00001cd7: RETURNDATASIZE
00001cd8: PUSH1 0x00
00001cda: DUP1
00001cdb: RETURNDATACOPY
00001cdc: RETURNDATASIZE
00001cdd: PUSH1 0x00
00001cdf: REVERT
00001ce0: JUMPDEST
00001ce1: POP
00001ce2: POP
00001ce3: POP
00001ce4: POP
00001ce5: PUSH1 0x40
00001ce7: MLOAD
00001ce8: RETURNDATASIZE
00001ce9: PUSH1 0x20
00001ceb: DUP2
00001cec: LT
00001ced: ISZERO
00001cee: PUSH2 0x1cf6
00001cf1: JUMPI
00001cf2: PUSH1 0x00
00001cf4: DUP1
00001cf5: REVERT
00001cf6: JUMPDEST
00001cf7: DUP2
00001cf8: ADD
00001cf9: SWAP1
00001cfa: DUP1
00001cfb: DUP1
00001cfc: MLOAD
00001cfd: SWAP1
00001cfe: PUSH1 0x20
00001d00: ADD
00001d01: SWAP1
00001d02: SWAP3
00001d03: SWAP2
00001d04: SWAP1
00001d05: POP
00001d06: POP
00001d07: POP
00001d08: PUSH1 0x05
00001d0a: PUSH1 0x01
00001d0c: SWAP1
00001d0d: SLOAD
00001d0e: SWAP1
00001d0f: PUSH2 0x0100
00001d12: EXP
00001d13: SWAP1
00001d14: DIV
00001d15: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d2a: AND
00001d2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d40: AND
00001d41: PUSH4 0x70a08231
00001d46: ADDRESS
00001d47: PUSH1 0x40
00001d49: MLOAD
00001d4a: DUP3
00001d4b: PUSH4 0xffffffff
00001d50: AND
00001d51: PUSH1 0xe0
00001d53: SHL
00001d54: DUP2
00001d55: MSTORE
00001d56: PUSH1 0x04
00001d58: ADD
00001d59: DUP1
00001d5a: DUP3
00001d5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d70: AND
00001d71: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d86: AND
00001d87: DUP2
00001d88: MSTORE
00001d89: PUSH1 0x20
00001d8b: ADD
00001d8c: SWAP2
00001d8d: POP
00001d8e: POP
00001d8f: PUSH1 0x20
00001d91: PUSH1 0x40
00001d93: MLOAD
00001d94: DUP1
00001d95: DUP4
00001d96: SUB
00001d97: DUP2
00001d98: DUP7
00001d99: DUP1
00001d9a: EXTCODESIZE
00001d9b: ISZERO
00001d9c: DUP1
00001d9d: ISZERO
00001d9e: PUSH2 0x1da6
00001da1: JUMPI
00001da2: PUSH1 0x00
00001da4: DUP1
00001da5: REVERT
00001da6: JUMPDEST
00001da7: POP
00001da8: GAS
00001da9: STATICCALL
00001daa: ISZERO
00001dab: DUP1
00001dac: ISZERO
00001dad: PUSH2 0x1dba
00001db0: JUMPI
00001db1: RETURNDATASIZE
00001db2: PUSH1 0x00
00001db4: DUP1
00001db5: RETURNDATACOPY
00001db6: RETURNDATASIZE
00001db7: PUSH1 0x00
00001db9: REVERT
00001dba: JUMPDEST
00001dbb: POP
00001dbc: POP
00001dbd: POP
00001dbe: POP
00001dbf: PUSH1 0x40
00001dc1: MLOAD
00001dc2: RETURNDATASIZE
00001dc3: PUSH1 0x20
00001dc5: DUP2
00001dc6: LT
00001dc7: ISZERO
00001dc8: PUSH2 0x1dd0
00001dcb: JUMPI
00001dcc: PUSH1 0x00
00001dce: DUP1
00001dcf: REVERT
00001dd0: JUMPDEST
00001dd1: DUP2
00001dd2: ADD
00001dd3: SWAP1
00001dd4: DUP1
00001dd5: DUP1
00001dd6: MLOAD
00001dd7: SWAP1
00001dd8: PUSH1 0x20
00001dda: ADD
00001ddb: SWAP1
00001ddc: SWAP3
00001ddd: SWAP2
00001dde: SWAP1
00001ddf: POP
00001de0: POP
00001de1: POP
00001de2: PUSH2 0x327f
00001de5: SWAP1
00001de6: SWAP2
00001de7: SWAP1
00001de8: PUSH4 0xffffffff
00001ded: AND
00001dee: JUMP
00001def: JUMPDEST
00001df0: SWAP1
00001df1: POP
00001df2: SWAP1
00001df3: JUMP
00001df4: JUMPDEST
00001df5: PUSH1 0x00
00001df7: PUSH2 0x1dfe
00001dfa: PUSH2 0x1c06
00001dfd: JUMP
00001dfe: JUMPDEST
00001dff: SWAP1
00001e00: POP
00001e01: PUSH1 0x00
00001e03: PUSH1 0x05
00001e05: PUSH1 0x01
00001e07: SWAP1
00001e08: SLOAD
00001e09: SWAP1
00001e0a: PUSH2 0x0100
00001e0d: EXP
00001e0e: SWAP1
00001e0f: DIV
00001e10: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e25: AND
00001e26: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e3b: AND
00001e3c: PUSH4 0x70a08231
00001e41: ADDRESS
00001e42: PUSH1 0x40
00001e44: MLOAD
00001e45: DUP3
00001e46: PUSH4 0xffffffff
00001e4b: AND
00001e4c: PUSH1 0xe0
00001e4e: SHL
00001e4f: DUP2
00001e50: MSTORE
00001e51: PUSH1 0x04
00001e53: ADD
00001e54: DUP1
00001e55: DUP3
00001e56: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e6b: AND
00001e6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e81: AND
00001e82: DUP2
00001e83: MSTORE
00001e84: PUSH1 0x20
00001e86: ADD
00001e87: SWAP2
00001e88: POP
00001e89: POP
00001e8a: PUSH1 0x20
00001e8c: PUSH1 0x40
00001e8e: MLOAD
00001e8f: DUP1
00001e90: DUP4
00001e91: SUB
00001e92: DUP2
00001e93: DUP7
00001e94: DUP1
00001e95: EXTCODESIZE
00001e96: ISZERO
00001e97: DUP1
00001e98: ISZERO
00001e99: PUSH2 0x1ea1
00001e9c: JUMPI
00001e9d: PUSH1 0x00
00001e9f: DUP1
00001ea0: REVERT
00001ea1: JUMPDEST
00001ea2: POP
00001ea3: GAS
00001ea4: STATICCALL
00001ea5: ISZERO
00001ea6: DUP1
00001ea7: ISZERO
00001ea8: PUSH2 0x1eb5
00001eab: JUMPI
00001eac: RETURNDATASIZE
00001ead: PUSH1 0x00
00001eaf: DUP1
00001eb0: RETURNDATACOPY
00001eb1: RETURNDATASIZE
00001eb2: PUSH1 0x00
00001eb4: REVERT
00001eb5: JUMPDEST
00001eb6: POP
00001eb7: POP
00001eb8: POP
00001eb9: POP
00001eba: PUSH1 0x40
00001ebc: MLOAD
00001ebd: RETURNDATASIZE
00001ebe: PUSH1 0x20
00001ec0: DUP2
00001ec1: LT
00001ec2: ISZERO
00001ec3: PUSH2 0x1ecb
00001ec6: JUMPI
00001ec7: PUSH1 0x00
00001ec9: DUP1
00001eca: REVERT
00001ecb: JUMPDEST
00001ecc: DUP2
00001ecd: ADD
00001ece: SWAP1
00001ecf: DUP1
00001ed0: DUP1
00001ed1: MLOAD
00001ed2: SWAP1
00001ed3: PUSH1 0x20
00001ed5: ADD
00001ed6: SWAP1
00001ed7: SWAP3
00001ed8: SWAP2
00001ed9: SWAP1
00001eda: POP
00001edb: POP
00001edc: POP
00001edd: SWAP1
00001ede: POP
00001edf: PUSH2 0x1f2d
00001ee2: CALLER
00001ee3: ADDRESS
00001ee4: DUP6
00001ee5: PUSH1 0x05
00001ee7: PUSH1 0x01
00001ee9: SWAP1
00001eea: SLOAD
00001eeb: SWAP1
00001eec: PUSH2 0x0100
00001eef: EXP
00001ef0: SWAP1
00001ef1: DIV
00001ef2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f07: AND
00001f08: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f1d: AND
00001f1e: PUSH2 0x3307
00001f21: SWAP1
00001f22: SWAP4
00001f23: SWAP3
00001f24: SWAP2
00001f25: SWAP1
00001f26: PUSH4 0xffffffff
00001f2b: AND
00001f2c: JUMP
00001f2d: JUMPDEST
00001f2e: PUSH1 0x00
00001f30: PUSH1 0x05
00001f32: PUSH1 0x01
00001f34: SWAP1
00001f35: SLOAD
00001f36: SWAP1
00001f37: PUSH2 0x0100
00001f3a: EXP
00001f3b: SWAP1
00001f3c: DIV
00001f3d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f52: AND
00001f53: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f68: AND
00001f69: PUSH4 0x70a08231
00001f6e: ADDRESS
00001f6f: PUSH1 0x40
00001f71: MLOAD
00001f72: DUP3
00001f73: PUSH4 0xffffffff
00001f78: AND
00001f79: PUSH1 0xe0
00001f7b: SHL
00001f7c: DUP2
00001f7d: MSTORE
00001f7e: PUSH1 0x04
00001f80: ADD
00001f81: DUP1
00001f82: DUP3
00001f83: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f98: AND
00001f99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fae: AND
00001faf: DUP2
00001fb0: MSTORE
00001fb1: PUSH1 0x20
00001fb3: ADD
00001fb4: SWAP2
00001fb5: POP
00001fb6: POP
00001fb7: PUSH1 0x20
00001fb9: PUSH1 0x40
00001fbb: MLOAD
00001fbc: DUP1
00001fbd: DUP4
00001fbe: SUB
00001fbf: DUP2
00001fc0: DUP7
00001fc1: DUP1
00001fc2: EXTCODESIZE
00001fc3: ISZERO
00001fc4: DUP1
00001fc5: ISZERO
00001fc6: PUSH2 0x1fce
00001fc9: JUMPI
00001fca: PUSH1 0x00
00001fcc: DUP1
00001fcd: REVERT
00001fce: JUMPDEST
00001fcf: POP
00001fd0: GAS
00001fd1: STATICCALL
00001fd2: ISZERO
00001fd3: DUP1
00001fd4: ISZERO
00001fd5: PUSH2 0x1fe2
00001fd8: JUMPI
00001fd9: RETURNDATASIZE
00001fda: PUSH1 0x00
00001fdc: DUP1
00001fdd: RETURNDATACOPY
00001fde: RETURNDATASIZE
00001fdf: PUSH1 0x00
00001fe1: REVERT
00001fe2: JUMPDEST
00001fe3: POP
00001fe4: POP
00001fe5: POP
00001fe6: POP
00001fe7: PUSH1 0x40
00001fe9: MLOAD
00001fea: RETURNDATASIZE
00001feb: PUSH1 0x20
00001fed: DUP2
00001fee: LT
00001fef: ISZERO
00001ff0: PUSH2 0x1ff8
00001ff3: JUMPI
00001ff4: PUSH1 0x00
00001ff6: DUP1
00001ff7: REVERT
00001ff8: JUMPDEST
00001ff9: DUP2
00001ffa: ADD
00001ffb: SWAP1
00001ffc: DUP1
00001ffd: DUP1
00001ffe: MLOAD
00001fff: SWAP1
00002000: PUSH1 0x20
00002002: ADD
00002003: SWAP1
00002004: SWAP3
00002005: SWAP2
00002006: SWAP1
00002007: POP
00002008: POP
00002009: POP
0000200a: SWAP1
0000200b: POP
0000200c: PUSH2 0x201e
0000200f: DUP3
00002010: DUP3
00002011: PUSH2 0x27ac
00002014: SWAP1
00002015: SWAP2
00002016: SWAP1
00002017: PUSH4 0xffffffff
0000201c: AND
0000201d: JUMP
0000201e: JUMPDEST
0000201f: SWAP4
00002020: POP
00002021: PUSH1 0x00
00002023: DUP1
00002024: SWAP1
00002025: POP
00002026: PUSH1 0x00
00002028: PUSH2 0x202f
0000202b: PUSH2 0x1082
0000202e: JUMP
0000202f: JUMPDEST
00002030: EQ
00002031: ISZERO
00002032: PUSH2 0x203d
00002035: JUMPI
00002036: DUP5
00002037: SWAP1
00002038: POP
00002039: PUSH2 0x206c
0000203c: JUMP
0000203d: JUMPDEST
0000203e: PUSH2 0x2069
00002041: DUP5
00002042: PUSH2 0x205b
00002045: PUSH2 0x204c
00002048: PUSH2 0x1082
0000204b: JUMP
0000204c: JUMPDEST
0000204d: DUP9
0000204e: PUSH2 0x27f6
00002051: SWAP1
00002052: SWAP2
00002053: SWAP1
00002054: PUSH4 0xffffffff
00002059: AND
0000205a: JUMP
0000205b: JUMPDEST
0000205c: PUSH2 0x287c
0000205f: SWAP1
00002060: SWAP2
00002061: SWAP1
00002062: PUSH4 0xffffffff
00002067: AND
00002068: JUMP
00002069: JUMPDEST
0000206a: SWAP1
0000206b: POP
0000206c: JUMPDEST
0000206d: PUSH2 0x2076
00002070: CALLER
00002071: DUP3
00002072: PUSH2 0x28c6
00002075: JUMP
00002076: JUMPDEST
00002077: POP
00002078: POP
00002079: POP
0000207a: POP
0000207b: POP
0000207c: JUMP
0000207d: JUMPDEST
0000207e: PUSH1 0x00
00002080: PUSH2 0x2087
00002083: PUSH2 0x1686
00002086: JUMP
00002087: JUMPDEST
00002088: SWAP1
00002089: POP
0000208a: PUSH2 0x20f8
0000208d: PUSH1 0x08
0000208f: PUSH1 0x00
00002091: SWAP1
00002092: SLOAD
00002093: SWAP1
00002094: PUSH2 0x0100
00002097: EXP
00002098: SWAP1
00002099: DIV
0000209a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020af: AND
000020b0: DUP3
000020b1: PUSH1 0x05
000020b3: PUSH1 0x01
000020b5: SWAP1
000020b6: SLOAD
000020b7: SWAP1
000020b8: PUSH2 0x0100
000020bb: EXP
000020bc: SWAP1
000020bd: DIV
000020be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020d3: AND
000020d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020e9: AND
000020ea: PUSH2 0x2a81
000020ed: SWAP1
000020ee: SWAP3
000020ef: SWAP2
000020f0: SWAP1
000020f1: PUSH4 0xffffffff
000020f6: AND
000020f7: JUMP
000020f8: JUMPDEST
000020f9: PUSH1 0x08
000020fb: PUSH1 0x00
000020fd: SWAP1
000020fe: SLOAD
000020ff: SWAP1
00002100: PUSH2 0x0100
00002103: EXP
00002104: SWAP1
00002105: DIV
00002106: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000211b: AND
0000211c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002131: AND
00002132: PUSH4 0xb02bf4b9
00002137: PUSH1 0x05
00002139: PUSH1 0x01
0000213b: SWAP1
0000213c: SLOAD
0000213d: SWAP1
0000213e: PUSH2 0x0100
00002141: EXP
00002142: SWAP1
00002143: DIV
00002144: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002159: AND
0000215a: DUP4
0000215b: PUSH1 0x40
0000215d: MLOAD
0000215e: DUP4
0000215f: PUSH4 0xffffffff
00002164: AND
00002165: PUSH1 0xe0
00002167: SHL
00002168: DUP2
00002169: MSTORE
0000216a: PUSH1 0x04
0000216c: ADD
0000216d: DUP1
0000216e: DUP4
0000216f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002184: AND
00002185: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000219a: AND
0000219b: DUP2
0000219c: MSTORE
0000219d: PUSH1 0x20
0000219f: ADD
000021a0: DUP3
000021a1: DUP2
000021a2: MSTORE
000021a3: PUSH1 0x20
000021a5: ADD
000021a6: SWAP3
000021a7: POP
000021a8: POP
000021a9: POP
000021aa: PUSH1 0x00
000021ac: PUSH1 0x40
000021ae: MLOAD
000021af: DUP1
000021b0: DUP4
000021b1: SUB
000021b2: DUP2
000021b3: PUSH1 0x00
000021b5: DUP8
000021b6: DUP1
000021b7: EXTCODESIZE
000021b8: ISZERO
000021b9: DUP1
000021ba: ISZERO
000021bb: PUSH2 0x21c3
000021be: JUMPI
000021bf: PUSH1 0x00
000021c1: DUP1
000021c2: REVERT
000021c3: JUMPDEST
000021c4: POP
000021c5: GAS
000021c6: CALL
000021c7: ISZERO
000021c8: DUP1
000021c9: ISZERO
000021ca: PUSH2 0x21d7
000021cd: JUMPI
000021ce: RETURNDATASIZE
000021cf: PUSH1 0x00
000021d1: DUP1
000021d2: RETURNDATACOPY
000021d3: RETURNDATASIZE
000021d4: PUSH1 0x00
000021d6: REVERT
000021d7: JUMPDEST
000021d8: POP
000021d9: POP
000021da: POP
000021db: POP
000021dc: POP
000021dd: JUMP
000021de: JUMPDEST
000021df: PUSH1 0x00
000021e1: PUSH1 0x01
000021e3: PUSH1 0x00
000021e5: DUP5
000021e6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021fb: AND
000021fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002211: AND
00002212: DUP2
00002213: MSTORE
00002214: PUSH1 0x20
00002216: ADD
00002217: SWAP1
00002218: DUP2
00002219: MSTORE
0000221a: PUSH1 0x20
0000221c: ADD
0000221d: PUSH1 0x00
0000221f: KECCAK256
00002220: PUSH1 0x00
00002222: DUP4
00002223: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002238: AND
00002239: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000224e: AND
0000224f: DUP2
00002250: MSTORE
00002251: PUSH1 0x20
00002253: ADD
00002254: SWAP1
00002255: DUP2
00002256: MSTORE
00002257: PUSH1 0x20
00002259: ADD
0000225a: PUSH1 0x00
0000225c: KECCAK256
0000225d: SLOAD
0000225e: SWAP1
0000225f: POP
00002260: SWAP3
00002261: SWAP2
00002262: POP
00002263: POP
00002264: JUMP
00002265: JUMPDEST
00002266: PUSH2 0x2347
00002269: PUSH1 0x05
0000226b: PUSH1 0x01
0000226d: SWAP1
0000226e: SLOAD
0000226f: SWAP1
00002270: PUSH2 0x0100
00002273: EXP
00002274: SWAP1
00002275: DIV
00002276: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000228b: AND
0000228c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022a1: AND
000022a2: PUSH4 0x70a08231
000022a7: CALLER
000022a8: PUSH1 0x40
000022aa: MLOAD
000022ab: DUP3
000022ac: PUSH4 0xffffffff
000022b1: AND
000022b2: PUSH1 0xe0
000022b4: SHL
000022b5: DUP2
000022b6: MSTORE
000022b7: PUSH1 0x04
000022b9: ADD
000022ba: DUP1
000022bb: DUP3
000022bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022d1: AND
000022d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022e7: AND
000022e8: DUP2
000022e9: MSTORE
000022ea: PUSH1 0x20
000022ec: ADD
000022ed: SWAP2
000022ee: POP
000022ef: POP
000022f0: PUSH1 0x20
000022f2: PUSH1 0x40
000022f4: MLOAD
000022f5: DUP1
000022f6: DUP4
000022f7: SUB
000022f8: DUP2
000022f9: DUP7
000022fa: DUP1
000022fb: EXTCODESIZE
000022fc: ISZERO
000022fd: DUP1
000022fe: ISZERO
000022ff: PUSH2 0x2307
00002302: JUMPI
00002303: PUSH1 0x00
00002305: DUP1
00002306: REVERT
00002307: JUMPDEST
00002308: POP
00002309: GAS
0000230a: STATICCALL
0000230b: ISZERO
0000230c: DUP1
0000230d: ISZERO
0000230e: PUSH2 0x231b
00002311: JUMPI
00002312: RETURNDATASIZE
00002313: PUSH1 0x00
00002315: DUP1
00002316: RETURNDATACOPY
00002317: RETURNDATASIZE
00002318: PUSH1 0x00
0000231a: REVERT
0000231b: JUMPDEST
0000231c: POP
0000231d: POP
0000231e: POP
0000231f: POP
00002320: PUSH1 0x40
00002322: MLOAD
00002323: RETURNDATASIZE
00002324: PUSH1 0x20
00002326: DUP2
00002327: LT
00002328: ISZERO
00002329: PUSH2 0x2331
0000232c: JUMPI
0000232d: PUSH1 0x00
0000232f: DUP1
00002330: REVERT
00002331: JUMPDEST
00002332: DUP2
00002333: ADD
00002334: SWAP1
00002335: DUP1
00002336: DUP1
00002337: MLOAD
00002338: SWAP1
00002339: PUSH1 0x20
0000233b: ADD
0000233c: SWAP1
0000233d: SWAP3
0000233e: SWAP2
0000233f: SWAP1
00002340: POP
00002341: POP
00002342: POP
00002343: PUSH2 0x1df4
00002346: JUMP
00002347: JUMPDEST
00002348: JUMP
00002349: JUMPDEST
0000234a: PUSH1 0x00
0000234c: PUSH2 0x237e
0000234f: PUSH2 0x2356
00002352: PUSH2 0x1082
00002355: JUMP
00002356: JUMPDEST
00002357: PUSH2 0x2370
0000235a: DUP5
0000235b: PUSH2 0x2362
0000235e: PUSH2 0x1c06
00002361: JUMP
00002362: JUMPDEST
00002363: PUSH2 0x27f6
00002366: SWAP1
00002367: SWAP2
00002368: SWAP1
00002369: PUSH4 0xffffffff
0000236e: AND
0000236f: JUMP
00002370: JUMPDEST
00002371: PUSH2 0x287c
00002374: SWAP1
00002375: SWAP2
00002376: SWAP1
00002377: PUSH4 0xffffffff
0000237c: AND
0000237d: JUMP
0000237e: JUMPDEST
0000237f: SWAP1
00002380: POP
00002381: PUSH2 0x238a
00002384: CALLER
00002385: DUP4
00002386: PUSH2 0x30c7
00002389: JUMP
0000238a: JUMPDEST
0000238b: PUSH1 0x00
0000238d: PUSH1 0x05
0000238f: PUSH1 0x01
00002391: SWAP1
00002392: SLOAD
00002393: SWAP1
00002394: PUSH2 0x0100
00002397: EXP
00002398: SWAP1
00002399: DIV
0000239a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023af: AND
000023b0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023c5: AND
000023c6: PUSH4 0x70a08231
000023cb: ADDRESS
000023cc: PUSH1 0x40
000023ce: MLOAD
000023cf: DUP3
000023d0: PUSH4 0xffffffff
000023d5: AND
000023d6: PUSH1 0xe0
000023d8: SHL
000023d9: DUP2
000023da: MSTORE
000023db: PUSH1 0x04
000023dd: ADD
000023de: DUP1
000023df: DUP3
000023e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023f5: AND
000023f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000240b: AND
0000240c: DUP2
0000240d: MSTORE
0000240e: PUSH1 0x20
00002410: ADD
00002411: SWAP2
00002412: POP
00002413: POP
00002414: PUSH1 0x20
00002416: PUSH1 0x40
00002418: MLOAD
00002419: DUP1
0000241a: DUP4
0000241b: SUB
0000241c: DUP2
0000241d: DUP7
0000241e: DUP1
0000241f: EXTCODESIZE
00002420: ISZERO
00002421: DUP1
00002422: ISZERO
00002423: PUSH2 0x242b
00002426: JUMPI
00002427: PUSH1 0x00
00002429: DUP1
0000242a: REVERT
0000242b: JUMPDEST
0000242c: POP
0000242d: GAS
0000242e: STATICCALL
0000242f: ISZERO
00002430: DUP1
00002431: ISZERO
00002432: PUSH2 0x243f
00002435: JUMPI
00002436: RETURNDATASIZE
00002437: PUSH1 0x00
00002439: DUP1
0000243a: RETURNDATACOPY
0000243b: RETURNDATASIZE
0000243c: PUSH1 0x00
0000243e: REVERT
0000243f: JUMPDEST
00002440: POP
00002441: POP
00002442: POP
00002443: POP
00002444: PUSH1 0x40
00002446: MLOAD
00002447: RETURNDATASIZE
00002448: PUSH1 0x20
0000244a: DUP2
0000244b: LT
0000244c: ISZERO
0000244d: PUSH2 0x2455
00002450: JUMPI
00002451: PUSH1 0x00
00002453: DUP1
00002454: REVERT
00002455: JUMPDEST
00002456: DUP2
00002457: ADD
00002458: SWAP1
00002459: DUP1
0000245a: DUP1
0000245b: MLOAD
0000245c: SWAP1
0000245d: PUSH1 0x20
0000245f: ADD
00002460: SWAP1
00002461: SWAP3
00002462: SWAP2
00002463: SWAP1
00002464: POP
00002465: POP
00002466: POP
00002467: SWAP1
00002468: POP
00002469: DUP2
0000246a: DUP2
0000246b: LT
0000246c: ISZERO
0000246d: PUSH2 0x2681
00002470: JUMPI
00002471: PUSH1 0x00
00002473: PUSH2 0x2485
00002476: DUP3
00002477: DUP5
00002478: PUSH2 0x27ac
0000247b: SWAP1
0000247c: SWAP2
0000247d: SWAP1
0000247e: PUSH4 0xffffffff
00002483: AND
00002484: JUMP
00002485: JUMPDEST
00002486: SWAP1
00002487: POP
00002488: PUSH1 0x08
0000248a: PUSH1 0x00
0000248c: SWAP1
0000248d: SLOAD
0000248e: SWAP1
0000248f: PUSH2 0x0100
00002492: EXP
00002493: SWAP1
00002494: DIV
00002495: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024aa: AND
000024ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024c0: AND
000024c1: PUSH4 0xf3fef3a3
000024c6: PUSH1 0x05
000024c8: PUSH1 0x01
000024ca: SWAP1
000024cb: SLOAD
000024cc: SWAP1
000024cd: PUSH2 0x0100
000024d0: EXP
000024d1: SWAP1
000024d2: DIV
000024d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024e8: AND
000024e9: DUP4
000024ea: PUSH1 0x40
000024ec: MLOAD
000024ed: DUP4
000024ee: PUSH4 0xffffffff
000024f3: AND
000024f4: PUSH1 0xe0
000024f6: SHL
000024f7: DUP2
000024f8: MSTORE
000024f9: PUSH1 0x04
000024fb: ADD
000024fc: DUP1
000024fd: DUP4
000024fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002513: AND
00002514: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002529: AND
0000252a: DUP2
0000252b: MSTORE
0000252c: PUSH1 0x20
0000252e: ADD
0000252f: DUP3
00002530: DUP2
00002531: MSTORE
00002532: PUSH1 0x20
00002534: ADD
00002535: SWAP3
00002536: POP
00002537: POP
00002538: POP
00002539: PUSH1 0x00
0000253b: PUSH1 0x40
0000253d: MLOAD
0000253e: DUP1
0000253f: DUP4
00002540: SUB
00002541: DUP2
00002542: PUSH1 0x00
00002544: DUP8
00002545: DUP1
00002546: EXTCODESIZE
00002547: ISZERO
00002548: DUP1
00002549: ISZERO
0000254a: PUSH2 0x2552
0000254d: JUMPI
0000254e: PUSH1 0x00
00002550: DUP1
00002551: REVERT
00002552: JUMPDEST
00002553: POP
00002554: GAS
00002555: CALL
00002556: ISZERO
00002557: DUP1
00002558: ISZERO
00002559: PUSH2 0x2566
0000255c: JUMPI
0000255d: RETURNDATASIZE
0000255e: PUSH1 0x00
00002560: DUP1
00002561: RETURNDATACOPY
00002562: RETURNDATASIZE
00002563: PUSH1 0x00
00002565: REVERT
00002566: JUMPDEST
00002567: POP
00002568: POP
00002569: POP
0000256a: POP
0000256b: PUSH1 0x00
0000256d: PUSH1 0x05
0000256f: PUSH1 0x01
00002571: SWAP1
00002572: SLOAD
00002573: SWAP1
00002574: PUSH2 0x0100
00002577: EXP
00002578: SWAP1
00002579: DIV
0000257a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000258f: AND
00002590: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025a5: AND
000025a6: PUSH4 0x70a08231
000025ab: ADDRESS
000025ac: PUSH1 0x40
000025ae: MLOAD
000025af: DUP3
000025b0: PUSH4 0xffffffff
000025b5: AND
000025b6: PUSH1 0xe0
000025b8: SHL
000025b9: DUP2
000025ba: MSTORE
000025bb: PUSH1 0x04
000025bd: ADD
000025be: DUP1
000025bf: DUP3
000025c0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025d5: AND
000025d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025eb: AND
000025ec: DUP2
000025ed: MSTORE
000025ee: PUSH1 0x20
000025f0: ADD
000025f1: SWAP2
000025f2: POP
000025f3: POP
000025f4: PUSH1 0x20
000025f6: PUSH1 0x40
000025f8: MLOAD
000025f9: DUP1
000025fa: DUP4
000025fb: SUB
000025fc: DUP2
000025fd: DUP7
000025fe: DUP1
000025ff: EXTCODESIZE
00002600: ISZERO
00002601: DUP1
00002602: ISZERO
00002603: PUSH2 0x260b
00002606: JUMPI
00002607: PUSH1 0x00
00002609: DUP1
0000260a: REVERT
0000260b: JUMPDEST
0000260c: POP
0000260d: GAS
0000260e: STATICCALL
0000260f: ISZERO
00002610: DUP1
00002611: ISZERO
00002612: PUSH2 0x261f
00002615: JUMPI
00002616: RETURNDATASIZE
00002617: PUSH1 0x00
00002619: DUP1
0000261a: RETURNDATACOPY
0000261b: RETURNDATASIZE
0000261c: PUSH1 0x00
0000261e: REVERT
0000261f: JUMPDEST
00002620: POP
00002621: POP
00002622: POP
00002623: POP
00002624: PUSH1 0x40
00002626: MLOAD
00002627: RETURNDATASIZE
00002628: PUSH1 0x20
0000262a: DUP2
0000262b: LT
0000262c: ISZERO
0000262d: PUSH2 0x2635
00002630: JUMPI
00002631: PUSH1 0x00
00002633: DUP1
00002634: REVERT
00002635: JUMPDEST
00002636: DUP2
00002637: ADD
00002638: SWAP1
00002639: DUP1
0000263a: DUP1
0000263b: MLOAD
0000263c: SWAP1
0000263d: PUSH1 0x20
0000263f: ADD
00002640: SWAP1
00002641: SWAP3
00002642: SWAP2
00002643: SWAP1
00002644: POP
00002645: POP
00002646: POP
00002647: SWAP1
00002648: POP
00002649: PUSH1 0x00
0000264b: PUSH2 0x265d
0000264e: DUP5
0000264f: DUP4
00002650: PUSH2 0x27ac
00002653: SWAP1
00002654: SWAP2
00002655: SWAP1
00002656: PUSH4 0xffffffff
0000265b: AND
0000265c: JUMP
0000265d: JUMPDEST
0000265e: SWAP1
0000265f: POP
00002660: DUP3
00002661: DUP2
00002662: LT
00002663: ISZERO
00002664: PUSH2 0x267d
00002667: JUMPI
00002668: PUSH2 0x267a
0000266b: DUP2
0000266c: DUP6
0000266d: PUSH2 0x327f
00002670: SWAP1
00002671: SWAP2
00002672: SWAP1
00002673: PUSH4 0xffffffff
00002678: AND
00002679: JUMP
0000267a: JUMPDEST
0000267b: SWAP5
0000267c: POP
0000267d: JUMPDEST
0000267e: POP
0000267f: POP
00002680: POP
00002681: JUMPDEST
00002682: PUSH1 0x05
00002684: PUSH1 0x01
00002686: SWAP1
00002687: SLOAD
00002688: SWAP1
00002689: PUSH2 0x0100
0000268c: EXP
0000268d: SWAP1
0000268e: DIV
0000268f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026a4: AND
000026a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026ba: AND
000026bb: PUSH4 0x2e1a7d4d
000026c0: DUP4
000026c1: PUSH1 0x40
000026c3: MLOAD
000026c4: DUP3
000026c5: PUSH4 0xffffffff
000026ca: AND
000026cb: PUSH1 0xe0
000026cd: SHL
000026ce: DUP2
000026cf: MSTORE
000026d0: PUSH1 0x04
000026d2: ADD
000026d3: DUP1
000026d4: DUP3
000026d5: DUP2
000026d6: MSTORE
000026d7: PUSH1 0x20
000026d9: ADD
000026da: SWAP2
000026db: POP
000026dc: POP
000026dd: PUSH1 0x00
000026df: PUSH1 0x40
000026e1: MLOAD
000026e2: DUP1
000026e3: DUP4
000026e4: SUB
000026e5: DUP2
000026e6: PUSH1 0x00
000026e8: DUP8
000026e9: DUP1
000026ea: EXTCODESIZE
000026eb: ISZERO
000026ec: DUP1
000026ed: ISZERO
000026ee: PUSH2 0x26f6
000026f1: JUMPI
000026f2: PUSH1 0x00
000026f4: DUP1
000026f5: REVERT
000026f6: JUMPDEST
000026f7: POP
000026f8: GAS
000026f9: CALL
000026fa: ISZERO
000026fb: DUP1
000026fc: ISZERO
000026fd: PUSH2 0x270a
00002700: JUMPI
00002701: RETURNDATASIZE
00002702: PUSH1 0x00
00002704: DUP1
00002705: RETURNDATACOPY
00002706: RETURNDATASIZE
00002707: PUSH1 0x00
00002709: REVERT
0000270a: JUMPDEST
0000270b: POP
0000270c: POP
0000270d: POP
0000270e: POP
0000270f: CALLER
00002710: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002725: AND
00002726: PUSH2 0x08fc
00002729: DUP4
0000272a: SWAP1
0000272b: DUP2
0000272c: ISZERO
0000272d: MUL
0000272e: SWAP1
0000272f: PUSH1 0x40
00002731: MLOAD
00002732: PUSH1 0x00
00002734: PUSH1 0x40
00002736: MLOAD
00002737: DUP1
00002738: DUP4
00002739: SUB
0000273a: DUP2
0000273b: DUP6
0000273c: DUP9
0000273d: DUP9
0000273e: CALL
0000273f: SWAP4
00002740: POP
00002741: POP
00002742: POP
00002743: POP
00002744: ISZERO
00002745: DUP1
00002746: ISZERO
00002747: PUSH2 0x2754
0000274a: JUMPI
0000274b: RETURNDATASIZE
0000274c: PUSH1 0x00
0000274e: DUP1
0000274f: RETURNDATACOPY
00002750: RETURNDATASIZE
00002751: PUSH1 0x00
00002753: REVERT
00002754: JUMPDEST
00002755: POP
00002756: POP
00002757: POP
00002758: POP
00002759: JUMP
0000275a: JUMPDEST
0000275b: PUSH1 0x08
0000275d: PUSH1 0x00
0000275f: SWAP1
00002760: SLOAD
00002761: SWAP1
00002762: PUSH2 0x0100
00002765: EXP
00002766: SWAP1
00002767: DIV
00002768: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000277d: AND
0000277e: DUP2
0000277f: JUMP
00002780: JUMPDEST
00002781: PUSH1 0x06
00002783: SLOAD
00002784: DUP2
00002785: JUMP
00002786: JUMPDEST
00002787: PUSH1 0x05
00002789: PUSH1 0x01
0000278b: SWAP1
0000278c: SLOAD
0000278d: SWAP1
0000278e: PUSH2 0x0100
00002791: EXP
00002792: SWAP1
00002793: DIV
00002794: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000027a9: AND
000027aa: DUP2
000027ab: JUMP
000027ac: JUMPDEST
000027ad: PUSH1 0x00
000027af: PUSH2 0x27ee
000027b2: DUP4
000027b3: DUP4
000027b4: PUSH1 0x40
000027b6: MLOAD
000027b7: DUP1
000027b8: PUSH1 0x40
000027ba: ADD
000027bb: PUSH1 0x40
000027bd: MSTORE
000027be: DUP1
000027bf: PUSH1 0x1e
000027c1: DUP2
000027c2: MSTORE
000027c3: PUSH1 0x20
000027c5: ADD
000027c6: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
000027e7: DUP2
000027e8: MSTORE
000027e9: POP
000027ea: PUSH2 0x3007
000027ed: JUMP
000027ee: JUMPDEST
000027ef: SWAP1
000027f0: POP
000027f1: SWAP3
000027f2: SWAP2
000027f3: POP
000027f4: POP
000027f5: JUMP
000027f6: JUMPDEST
000027f7: PUSH1 0x00
000027f9: DUP1
000027fa: DUP4
000027fb: EQ
000027fc: ISZERO
000027fd: PUSH2 0x2809
00002800: JUMPI
00002801: PUSH1 0x00
00002803: SWAP1
00002804: POP
00002805: PUSH2 0x2876
00002808: JUMP
00002809: JUMPDEST
0000280a: PUSH1 0x00
0000280c: DUP3
0000280d: DUP5
0000280e: MUL
0000280f: SWAP1
00002810: POP
00002811: DUP3
00002812: DUP5
00002813: DUP3
00002814: DUP2
00002815: PUSH2 0x281a
00002818: JUMPI
00002819: INVALID
0000281a: JUMPDEST
0000281b: DIV
0000281c: EQ
0000281d: PUSH2 0x2871
00002820: JUMPI
00002821: PUSH1 0x40
00002823: MLOAD
00002824: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002845: DUP2
00002846: MSTORE
00002847: PUSH1 0x04
00002849: ADD
0000284a: DUP1
0000284b: DUP1
0000284c: PUSH1 0x20
0000284e: ADD
0000284f: DUP3
00002850: DUP2
00002851: SUB
00002852: DUP3
00002853: MSTORE
00002854: PUSH1 0x21
00002856: DUP2
00002857: MSTORE
00002858: PUSH1 0x20
0000285a: ADD
0000285b: DUP1
0000285c: PUSH2 0x37f7
0000285f: PUSH1 0x21
00002861: SWAP2
00002862: CODECOPY
00002863: PUSH1 0x40
00002865: ADD
00002866: SWAP2
00002867: POP
00002868: POP
00002869: PUSH1 0x40
0000286b: MLOAD
0000286c: DUP1
0000286d: SWAP2
0000286e: SUB
0000286f: SWAP1
00002870: REVERT
00002871: JUMPDEST
00002872: DUP1
00002873: SWAP2
00002874: POP
00002875: POP
00002876: JUMPDEST
00002877: SWAP3
00002878: SWAP2
00002879: POP
0000287a: POP
0000287b: JUMP
0000287c: JUMPDEST
0000287d: PUSH1 0x00
0000287f: PUSH2 0x28be
00002882: DUP4
00002883: DUP4
00002884: PUSH1 0x40
00002886: MLOAD
00002887: DUP1
00002888: PUSH1 0x40
0000288a: ADD
0000288b: PUSH1 0x40
0000288d: MSTORE
0000288e: DUP1
0000288f: PUSH1 0x1a
00002891: DUP2
00002892: MSTORE
00002893: PUSH1 0x20
00002895: ADD
00002896: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000
000028b7: DUP2
000028b8: MSTORE
000028b9: POP
000028ba: PUSH2 0x340d
000028bd: JUMP
000028be: JUMPDEST
000028bf: SWAP1
000028c0: POP
000028c1: SWAP3
000028c2: SWAP2
000028c3: POP
000028c4: POP
000028c5: JUMP
000028c6: JUMPDEST
000028c7: PUSH1 0x00
000028c9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000028de: AND
000028df: DUP3
000028e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000028f5: AND
000028f6: EQ
000028f7: ISZERO
000028f8: PUSH2 0x2969
000028fb: JUMPI
000028fc: PUSH1 0x40
000028fe: MLOAD
000028ff: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002920: DUP2
00002921: MSTORE
00002922: PUSH1 0x04
00002924: ADD
00002925: DUP1
00002926: DUP1
00002927: PUSH1 0x20
00002929: ADD
0000292a: DUP3
0000292b: DUP2
0000292c: SUB
0000292d: DUP3
0000292e: MSTORE
0000292f: PUSH1 0x1f
00002931: DUP2
00002932: MSTORE
00002933: PUSH1 0x20
00002935: ADD
00002936: DUP1
00002937: PUSH32 0x45524332303a206d696e7420746f20746865207a65726f206164647265737300
00002958: DUP2
00002959: MSTORE
0000295a: POP
0000295b: PUSH1 0x20
0000295d: ADD
0000295e: SWAP2
0000295f: POP
00002960: POP
00002961: PUSH1 0x40
00002963: MLOAD
00002964: DUP1
00002965: SWAP2
00002966: SUB
00002967: SWAP1
00002968: REVERT
00002969: JUMPDEST
0000296a: PUSH2 0x297e
0000296d: DUP2
0000296e: PUSH1 0x02
00002970: SLOAD
00002971: PUSH2 0x327f
00002974: SWAP1
00002975: SWAP2
00002976: SWAP1
00002977: PUSH4 0xffffffff
0000297c: AND
0000297d: JUMP
0000297e: JUMPDEST
0000297f: PUSH1 0x02
00002981: DUP2
00002982: SWAP1
00002983: SSTORE
00002984: POP
00002985: PUSH2 0x29d5
00002988: DUP2
00002989: PUSH1 0x00
0000298b: DUP1
0000298c: DUP6
0000298d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029a2: AND
000029a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029b8: AND
000029b9: DUP2
000029ba: MSTORE
000029bb: PUSH1 0x20
000029bd: ADD
000029be: SWAP1
000029bf: DUP2
000029c0: MSTORE
000029c1: PUSH1 0x20
000029c3: ADD
000029c4: PUSH1 0x00
000029c6: KECCAK256
000029c7: SLOAD
000029c8: PUSH2 0x327f
000029cb: SWAP1
000029cc: SWAP2
000029cd: SWAP1
000029ce: PUSH4 0xffffffff
000029d3: AND
000029d4: JUMP
000029d5: JUMPDEST
000029d6: PUSH1 0x00
000029d8: DUP1
000029d9: DUP5
000029da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029ef: AND
000029f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a05: AND
00002a06: DUP2
00002a07: MSTORE
00002a08: PUSH1 0x20
00002a0a: ADD
00002a0b: SWAP1
00002a0c: DUP2
00002a0d: MSTORE
00002a0e: PUSH1 0x20
00002a10: ADD
00002a11: PUSH1 0x00
00002a13: KECCAK256
00002a14: DUP2
00002a15: SWAP1
00002a16: SSTORE
00002a17: POP
00002a18: DUP2
00002a19: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a2e: AND
00002a2f: PUSH1 0x00
00002a31: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a46: AND
00002a47: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00002a68: DUP4
00002a69: PUSH1 0x40
00002a6b: MLOAD
00002a6c: DUP1
00002a6d: DUP3
00002a6e: DUP2
00002a6f: MSTORE
00002a70: PUSH1 0x20
00002a72: ADD
00002a73: SWAP2
00002a74: POP
00002a75: POP
00002a76: PUSH1 0x40
00002a78: MLOAD
00002a79: DUP1
00002a7a: SWAP2
00002a7b: SUB
00002a7c: SWAP1
00002a7d: LOG3
00002a7e: POP
00002a7f: POP
00002a80: JUMP
00002a81: JUMPDEST
00002a82: PUSH2 0x2b4d
00002a85: DUP4
00002a86: DUP5
00002a87: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a9c: AND
00002a9d: PUSH4 0xa9059cbb
00002aa2: SWAP1
00002aa3: POP
00002aa4: PUSH1 0xe0
00002aa6: SHL
00002aa7: DUP5
00002aa8: DUP5
00002aa9: PUSH1 0x40
00002aab: MLOAD
00002aac: PUSH1 0x24
00002aae: ADD
00002aaf: DUP1
00002ab0: DUP4
00002ab1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ac6: AND
00002ac7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002adc: AND
00002add: DUP2
00002ade: MSTORE
00002adf: PUSH1 0x20
00002ae1: ADD
00002ae2: DUP3
00002ae3: DUP2
00002ae4: MSTORE
00002ae5: PUSH1 0x20
00002ae7: ADD
00002ae8: SWAP3
00002ae9: POP
00002aea: POP
00002aeb: POP
00002aec: PUSH1 0x40
00002aee: MLOAD
00002aef: PUSH1 0x20
00002af1: DUP2
00002af2: DUP4
00002af3: SUB
00002af4: SUB
00002af5: DUP2
00002af6: MSTORE
00002af7: SWAP1
00002af8: PUSH1 0x40
00002afa: MSTORE
00002afb: SWAP1
00002afc: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002b19: NOT
00002b1a: AND
00002b1b: PUSH1 0x20
00002b1d: DUP3
00002b1e: ADD
00002b1f: DUP1
00002b20: MLOAD
00002b21: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002b3e: DUP4
00002b3f: DUP2
00002b40: DUP4
00002b41: AND
00002b42: OR
00002b43: DUP4
00002b44: MSTORE
00002b45: POP
00002b46: POP
00002b47: POP
00002b48: POP
00002b49: PUSH2 0x34d3
00002b4c: JUMP
00002b4d: JUMPDEST
00002b4e: POP
00002b4f: POP
00002b50: POP
00002b51: JUMP
00002b52: JUMPDEST
00002b53: PUSH1 0x00
00002b55: CALLER
00002b56: SWAP1
00002b57: POP
00002b58: SWAP1
00002b59: JUMP
00002b5a: JUMPDEST
00002b5b: PUSH1 0x00
00002b5d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b72: AND
00002b73: DUP4
00002b74: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b89: AND
00002b8a: EQ
00002b8b: ISZERO
00002b8c: PUSH2 0x2be0
00002b8f: JUMPI
00002b90: PUSH1 0x40
00002b92: MLOAD
00002b93: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002bb4: DUP2
00002bb5: MSTORE
00002bb6: PUSH1 0x04
00002bb8: ADD
00002bb9: DUP1
00002bba: DUP1
00002bbb: PUSH1 0x20
00002bbd: ADD
00002bbe: DUP3
00002bbf: DUP2
00002bc0: SUB
00002bc1: DUP3
00002bc2: MSTORE
00002bc3: PUSH1 0x24
00002bc5: DUP2
00002bc6: MSTORE
00002bc7: PUSH1 0x20
00002bc9: ADD
00002bca: DUP1
00002bcb: PUSH2 0x3886
00002bce: PUSH1 0x24
00002bd0: SWAP2
00002bd1: CODECOPY
00002bd2: PUSH1 0x40
00002bd4: ADD
00002bd5: SWAP2
00002bd6: POP
00002bd7: POP
00002bd8: PUSH1 0x40
00002bda: MLOAD
00002bdb: DUP1
00002bdc: SWAP2
00002bdd: SUB
00002bde: SWAP1
00002bdf: REVERT
00002be0: JUMPDEST
00002be1: PUSH1 0x00
00002be3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002bf8: AND
00002bf9: DUP3
00002bfa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c0f: AND
00002c10: EQ
00002c11: ISZERO
00002c12: PUSH2 0x2c66
00002c15: JUMPI
00002c16: PUSH1 0x40
00002c18: MLOAD
00002c19: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002c3a: DUP2
00002c3b: MSTORE
00002c3c: PUSH1 0x04
00002c3e: ADD
00002c3f: DUP1
00002c40: DUP1
00002c41: PUSH1 0x20
00002c43: ADD
00002c44: DUP3
00002c45: DUP2
00002c46: SUB
00002c47: DUP3
00002c48: MSTORE
00002c49: PUSH1 0x22
00002c4b: DUP2
00002c4c: MSTORE
00002c4d: PUSH1 0x20
00002c4f: ADD
00002c50: DUP1
00002c51: PUSH2 0x37af
00002c54: PUSH1 0x22
00002c56: SWAP2
00002c57: CODECOPY
00002c58: PUSH1 0x40
00002c5a: ADD
00002c5b: SWAP2
00002c5c: POP
00002c5d: POP
00002c5e: PUSH1 0x40
00002c60: MLOAD
00002c61: DUP1
00002c62: SWAP2
00002c63: SUB
00002c64: SWAP1
00002c65: REVERT
00002c66: JUMPDEST
00002c67: DUP1
00002c68: PUSH1 0x01
00002c6a: PUSH1 0x00
00002c6c: DUP6
00002c6d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c82: AND
00002c83: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c98: AND
00002c99: DUP2
00002c9a: MSTORE
00002c9b: PUSH1 0x20
00002c9d: ADD
00002c9e: SWAP1
00002c9f: DUP2
00002ca0: MSTORE
00002ca1: PUSH1 0x20
00002ca3: ADD
00002ca4: PUSH1 0x00
00002ca6: KECCAK256
00002ca7: PUSH1 0x00
00002ca9: DUP5
00002caa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002cbf: AND
00002cc0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002cd5: AND
00002cd6: DUP2
00002cd7: MSTORE
00002cd8: PUSH1 0x20
00002cda: ADD
00002cdb: SWAP1
00002cdc: DUP2
00002cdd: MSTORE
00002cde: PUSH1 0x20
00002ce0: ADD
00002ce1: PUSH1 0x00
00002ce3: KECCAK256
00002ce4: DUP2
00002ce5: SWAP1
00002ce6: SSTORE
00002ce7: POP
00002ce8: DUP2
00002ce9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002cfe: AND
00002cff: DUP4
00002d00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d15: AND
00002d16: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00002d37: DUP4
00002d38: PUSH1 0x40
00002d3a: MLOAD
00002d3b: DUP1
00002d3c: DUP3
00002d3d: DUP2
00002d3e: MSTORE
00002d3f: PUSH1 0x20
00002d41: ADD
00002d42: SWAP2
00002d43: POP
00002d44: POP
00002d45: PUSH1 0x40
00002d47: MLOAD
00002d48: DUP1
00002d49: SWAP2
00002d4a: SUB
00002d4b: SWAP1
00002d4c: LOG3
00002d4d: POP
00002d4e: POP
00002d4f: POP
00002d50: JUMP
00002d51: JUMPDEST
00002d52: PUSH1 0x00
00002d54: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d69: AND
00002d6a: DUP4
00002d6b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d80: AND
00002d81: EQ
00002d82: ISZERO
00002d83: PUSH2 0x2dd7
00002d86: JUMPI
00002d87: PUSH1 0x40
00002d89: MLOAD
00002d8a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002dab: DUP2
00002dac: MSTORE
00002dad: PUSH1 0x04
00002daf: ADD
00002db0: DUP1
00002db1: DUP1
00002db2: PUSH1 0x20
00002db4: ADD
00002db5: DUP3
00002db6: DUP2
00002db7: SUB
00002db8: DUP3
00002db9: MSTORE
00002dba: PUSH1 0x25
00002dbc: DUP2
00002dbd: MSTORE
00002dbe: PUSH1 0x20
00002dc0: ADD
00002dc1: DUP1
00002dc2: PUSH2 0x3861
00002dc5: PUSH1 0x25
00002dc7: SWAP2
00002dc8: CODECOPY
00002dc9: PUSH1 0x40
00002dcb: ADD
00002dcc: SWAP2
00002dcd: POP
00002dce: POP
00002dcf: PUSH1 0x40
00002dd1: MLOAD
00002dd2: DUP1
00002dd3: SWAP2
00002dd4: SUB
00002dd5: SWAP1
00002dd6: REVERT
00002dd7: JUMPDEST
00002dd8: PUSH1 0x00
00002dda: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002def: AND
00002df0: DUP3
00002df1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002e06: AND
00002e07: EQ
00002e08: ISZERO
00002e09: PUSH2 0x2e5d
00002e0c: JUMPI
00002e0d: PUSH1 0x40
00002e0f: MLOAD
00002e10: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002e31: DUP2
00002e32: MSTORE
00002e33: PUSH1 0x04
00002e35: ADD
00002e36: DUP1
00002e37: DUP1
00002e38: PUSH1 0x20
00002e3a: ADD
00002e3b: DUP3
00002e3c: DUP2
00002e3d: SUB
00002e3e: DUP3
00002e3f: MSTORE
00002e40: PUSH1 0x23
00002e42: DUP2
00002e43: MSTORE
00002e44: PUSH1 0x20
00002e46: ADD
00002e47: DUP1
00002e48: PUSH2 0x376a
00002e4b: PUSH1 0x23
00002e4d: SWAP2
00002e4e: CODECOPY
00002e4f: PUSH1 0x40
00002e51: ADD
00002e52: SWAP2
00002e53: POP
00002e54: POP
00002e55: PUSH1 0x40
00002e57: MLOAD
00002e58: DUP1
00002e59: SWAP2
00002e5a: SUB
00002e5b: SWAP1
00002e5c: REVERT
00002e5d: JUMPDEST
00002e5e: PUSH2 0x2ec8
00002e61: DUP2
00002e62: PUSH1 0x40
00002e64: MLOAD
00002e65: DUP1
00002e66: PUSH1 0x60
00002e68: ADD
00002e69: PUSH1 0x40
00002e6b: MSTORE
00002e6c: DUP1
00002e6d: PUSH1 0x26
00002e6f: DUP2
00002e70: MSTORE
00002e71: PUSH1 0x20
00002e73: ADD
00002e74: PUSH2 0x37d1
00002e77: PUSH1 0x26
00002e79: SWAP2
00002e7a: CODECOPY
00002e7b: PUSH1 0x00
00002e7d: DUP1
00002e7e: DUP8
00002e7f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002e94: AND
00002e95: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002eaa: AND
00002eab: DUP2
00002eac: MSTORE
00002ead: PUSH1 0x20
00002eaf: ADD
00002eb0: SWAP1
00002eb1: DUP2
00002eb2: MSTORE
00002eb3: PUSH1 0x20
00002eb5: ADD
00002eb6: PUSH1 0x00
00002eb8: KECCAK256
00002eb9: SLOAD
00002eba: PUSH2 0x3007
00002ebd: SWAP1
00002ebe: SWAP3
00002ebf: SWAP2
00002ec0: SWAP1
00002ec1: PUSH4 0xffffffff
00002ec6: AND
00002ec7: JUMP
00002ec8: JUMPDEST
00002ec9: PUSH1 0x00
00002ecb: DUP1
00002ecc: DUP6
00002ecd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ee2: AND
00002ee3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ef8: AND
00002ef9: DUP2
00002efa: MSTORE
00002efb: PUSH1 0x20
00002efd: ADD
00002efe: SWAP1
00002eff: DUP2
00002f00: MSTORE
00002f01: PUSH1 0x20
00002f03: ADD
00002f04: PUSH1 0x00
00002f06: KECCAK256
00002f07: DUP2
00002f08: SWAP1
00002f09: SSTORE
00002f0a: POP
00002f0b: PUSH2 0x2f5b
00002f0e: DUP2
00002f0f: PUSH1 0x00
00002f11: DUP1
00002f12: DUP6
00002f13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f28: AND
00002f29: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f3e: AND
00002f3f: DUP2
00002f40: MSTORE
00002f41: PUSH1 0x20
00002f43: ADD
00002f44: SWAP1
00002f45: DUP2
00002f46: MSTORE
00002f47: PUSH1 0x20
00002f49: ADD
00002f4a: PUSH1 0x00
00002f4c: KECCAK256
00002f4d: SLOAD
00002f4e: PUSH2 0x327f
00002f51: SWAP1
00002f52: SWAP2
00002f53: SWAP1
00002f54: PUSH4 0xffffffff
00002f59: AND
00002f5a: JUMP
00002f5b: JUMPDEST
00002f5c: PUSH1 0x00
00002f5e: DUP1
00002f5f: DUP5
00002f60: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f75: AND
00002f76: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f8b: AND
00002f8c: DUP2
00002f8d: MSTORE
00002f8e: PUSH1 0x20
00002f90: ADD
00002f91: SWAP1
00002f92: DUP2
00002f93: MSTORE
00002f94: PUSH1 0x20
00002f96: ADD
00002f97: PUSH1 0x00
00002f99: KECCAK256
00002f9a: DUP2
00002f9b: SWAP1
00002f9c: SSTORE
00002f9d: POP
00002f9e: DUP2
00002f9f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002fb4: AND
00002fb5: DUP4
00002fb6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002fcb: AND
00002fcc: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00002fed: DUP4
00002fee: PUSH1 0x40
00002ff0: MLOAD
00002ff1: DUP1
00002ff2: DUP3
00002ff3: DUP2
00002ff4: MSTORE
00002ff5: PUSH1 0x20
00002ff7: ADD
00002ff8: SWAP2
00002ff9: POP
00002ffa: POP
00002ffb: PUSH1 0x40
00002ffd: MLOAD
00002ffe: DUP1
00002fff: SWAP2
00003000: SUB
00003001: SWAP1
00003002: LOG3
00003003: POP
00003004: POP
00003005: POP
00003006: JUMP
00003007: JUMPDEST
00003008: PUSH1 0x00
0000300a: DUP4
0000300b: DUP4
0000300c: GT
0000300d: ISZERO
0000300e: DUP3
0000300f: SWAP1
00003010: PUSH2 0x30b4
00003013: JUMPI
00003014: PUSH1 0x40
00003016: MLOAD
00003017: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003038: DUP2
00003039: MSTORE
0000303a: PUSH1 0x04
0000303c: ADD
0000303d: DUP1
0000303e: DUP1
0000303f: PUSH1 0x20
00003041: ADD
00003042: DUP3
00003043: DUP2
00003044: SUB
00003045: DUP3
00003046: MSTORE
00003047: DUP4
00003048: DUP2
00003049: DUP2
0000304a: MLOAD
0000304b: DUP2
0000304c: MSTORE
0000304d: PUSH1 0x20
0000304f: ADD
00003050: SWAP2
00003051: POP
00003052: DUP1
00003053: MLOAD
00003054: SWAP1
00003055: PUSH1 0x20
00003057: ADD
00003058: SWAP1
00003059: DUP1
0000305a: DUP4
0000305b: DUP4
0000305c: PUSH1 0x00
0000305e: JUMPDEST
0000305f: DUP4
00003060: DUP2
00003061: LT
00003062: ISZERO
00003063: PUSH2 0x3079
00003066: JUMPI
00003067: DUP1
00003068: DUP3
00003069: ADD
0000306a: MLOAD
0000306b: DUP2
0000306c: DUP5
0000306d: ADD
0000306e: MSTORE
0000306f: PUSH1 0x20
00003071: DUP2
00003072: ADD
00003073: SWAP1
00003074: POP
00003075: PUSH2 0x305e
00003078: JUMP
00003079: JUMPDEST
0000307a: POP
0000307b: POP
0000307c: POP
0000307d: POP
0000307e: SWAP1
0000307f: POP
00003080: SWAP1
00003081: DUP2
00003082: ADD
00003083: SWAP1
00003084: PUSH1 0x1f
00003086: AND
00003087: DUP1
00003088: ISZERO
00003089: PUSH2 0x30a6
0000308c: JUMPI
0000308d: DUP1
0000308e: DUP3
0000308f: SUB
00003090: DUP1
00003091: MLOAD
00003092: PUSH1 0x01
00003094: DUP4
00003095: PUSH1 0x20
00003097: SUB
00003098: PUSH2 0x0100
0000309b: EXP
0000309c: SUB
0000309d: NOT
0000309e: AND
0000309f: DUP2
000030a0: MSTORE
000030a1: PUSH1 0x20
000030a3: ADD
000030a4: SWAP2
000030a5: POP
000030a6: JUMPDEST
000030a7: POP
000030a8: SWAP3
000030a9: POP
000030aa: POP
000030ab: POP
000030ac: PUSH1 0x40
000030ae: MLOAD
000030af: DUP1
000030b0: SWAP2
000030b1: SUB
000030b2: SWAP1
000030b3: REVERT
000030b4: JUMPDEST
000030b5: POP
000030b6: PUSH1 0x00
000030b8: DUP4
000030b9: DUP6
000030ba: SUB
000030bb: SWAP1
000030bc: POP
000030bd: DUP1
000030be: SWAP2
000030bf: POP
000030c0: POP
000030c1: SWAP4
000030c2: SWAP3
000030c3: POP
000030c4: POP
000030c5: POP
000030c6: JUMP
000030c7: JUMPDEST
000030c8: PUSH1 0x00
000030ca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000030df: AND
000030e0: DUP3
000030e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000030f6: AND
000030f7: EQ
000030f8: ISZERO
000030f9: PUSH2 0x314d
000030fc: JUMPI
000030fd: PUSH1 0x40
000030ff: MLOAD
00003100: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003121: DUP2
00003122: MSTORE
00003123: PUSH1 0x04
00003125: ADD
00003126: DUP1
00003127: DUP1
00003128: PUSH1 0x20
0000312a: ADD
0000312b: DUP3
0000312c: DUP2
0000312d: SUB
0000312e: DUP3
0000312f: MSTORE
00003130: PUSH1 0x21
00003132: DUP2
00003133: MSTORE
00003134: PUSH1 0x20
00003136: ADD
00003137: DUP1
00003138: PUSH2 0x3840
0000313b: PUSH1 0x21
0000313d: SWAP2
0000313e: CODECOPY
0000313f: PUSH1 0x40
00003141: ADD
00003142: SWAP2
00003143: POP
00003144: POP
00003145: PUSH1 0x40
00003147: MLOAD
00003148: DUP1
00003149: SWAP2
0000314a: SUB
0000314b: SWAP1
0000314c: REVERT
0000314d: JUMPDEST
0000314e: PUSH2 0x31b8
00003151: DUP2
00003152: PUSH1 0x40
00003154: MLOAD
00003155: DUP1
00003156: PUSH1 0x60
00003158: ADD
00003159: PUSH1 0x40
0000315b: MSTORE
0000315c: DUP1
0000315d: PUSH1 0x22
0000315f: DUP2
00003160: MSTORE
00003161: PUSH1 0x20
00003163: ADD
00003164: PUSH2 0x378d
00003167: PUSH1 0x22
00003169: SWAP2
0000316a: CODECOPY
0000316b: PUSH1 0x00
0000316d: DUP1
0000316e: DUP7
0000316f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003184: AND
00003185: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000319a: AND
0000319b: DUP2
0000319c: MSTORE
0000319d: PUSH1 0x20
0000319f: ADD
000031a0: SWAP1
000031a1: DUP2
000031a2: MSTORE
000031a3: PUSH1 0x20
000031a5: ADD
000031a6: PUSH1 0x00
000031a8: KECCAK256
000031a9: SLOAD
000031aa: PUSH2 0x3007
000031ad: SWAP1
000031ae: SWAP3
000031af: SWAP2
000031b0: SWAP1
000031b1: PUSH4 0xffffffff
000031b6: AND
000031b7: JUMP
000031b8: JUMPDEST
000031b9: PUSH1 0x00
000031bb: DUP1
000031bc: DUP5
000031bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000031d2: AND
000031d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000031e8: AND
000031e9: DUP2
000031ea: MSTORE
000031eb: PUSH1 0x20
000031ed: ADD
000031ee: SWAP1
000031ef: DUP2
000031f0: MSTORE
000031f1: PUSH1 0x20
000031f3: ADD
000031f4: PUSH1 0x00
000031f6: KECCAK256
000031f7: DUP2
000031f8: SWAP1
000031f9: SSTORE
000031fa: POP
000031fb: PUSH2 0x320f
000031fe: DUP2
000031ff: PUSH1 0x02
00003201: SLOAD
00003202: PUSH2 0x27ac
00003205: SWAP1
00003206: SWAP2
00003207: SWAP1
00003208: PUSH4 0xffffffff
0000320d: AND
0000320e: JUMP
0000320f: JUMPDEST
00003210: PUSH1 0x02
00003212: DUP2
00003213: SWAP1
00003214: SSTORE
00003215: POP
00003216: PUSH1 0x00
00003218: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000322d: AND
0000322e: DUP3
0000322f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003244: AND
00003245: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00003266: DUP4
00003267: PUSH1 0x40
00003269: MLOAD
0000326a: DUP1
0000326b: DUP3
0000326c: DUP2
0000326d: MSTORE
0000326e: PUSH1 0x20
00003270: ADD
00003271: SWAP2
00003272: POP
00003273: POP
00003274: PUSH1 0x40
00003276: MLOAD
00003277: DUP1
00003278: SWAP2
00003279: SUB
0000327a: SWAP1
0000327b: LOG3
0000327c: POP
0000327d: POP
0000327e: JUMP
0000327f: JUMPDEST
00003280: PUSH1 0x00
00003282: DUP1
00003283: DUP3
00003284: DUP5
00003285: ADD
00003286: SWAP1
00003287: POP
00003288: DUP4
00003289: DUP2
0000328a: LT
0000328b: ISZERO
0000328c: PUSH2 0x32fd
0000328f: JUMPI
00003290: PUSH1 0x40
00003292: MLOAD
00003293: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000032b4: DUP2
000032b5: MSTORE
000032b6: PUSH1 0x04
000032b8: ADD
000032b9: DUP1
000032ba: DUP1
000032bb: PUSH1 0x20
000032bd: ADD
000032be: DUP3
000032bf: DUP2
000032c0: SUB
000032c1: DUP3
000032c2: MSTORE
000032c3: PUSH1 0x1b
000032c5: DUP2
000032c6: MSTORE
000032c7: PUSH1 0x20
000032c9: ADD
000032ca: DUP1
000032cb: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000
000032ec: DUP2
000032ed: MSTORE
000032ee: POP
000032ef: PUSH1 0x20
000032f1: ADD
000032f2: SWAP2
000032f3: POP
000032f4: POP
000032f5: PUSH1 0x40
000032f7: MLOAD
000032f8: DUP1
000032f9: SWAP2
000032fa: SUB
000032fb: SWAP1
000032fc: REVERT
000032fd: JUMPDEST
000032fe: DUP1
000032ff: SWAP2
00003300: POP
00003301: POP
00003302: SWAP3
00003303: SWAP2
00003304: POP
00003305: POP
00003306: JUMP
00003307: JUMPDEST
00003308: PUSH2 0x3407
0000330b: DUP5
0000330c: DUP6
0000330d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003322: AND
00003323: PUSH4 0x23b872dd
00003328: SWAP1
00003329: POP
0000332a: PUSH1 0xe0
0000332c: SHL
0000332d: DUP6
0000332e: DUP6
0000332f: DUP6
00003330: PUSH1 0x40
00003332: MLOAD
00003333: PUSH1 0x24
00003335: ADD
00003336: DUP1
00003337: DUP5
00003338: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000334d: AND
0000334e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003363: AND
00003364: DUP2
00003365: MSTORE
00003366: PUSH1 0x20
00003368: ADD
00003369: DUP4
0000336a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000337f: AND
00003380: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003395: AND
00003396: DUP2
00003397: MSTORE
00003398: PUSH1 0x20
0000339a: ADD
0000339b: DUP3
0000339c: DUP2
0000339d: MSTORE
0000339e: PUSH1 0x20
000033a0: ADD
000033a1: SWAP4
000033a2: POP
000033a3: POP
000033a4: POP
000033a5: POP
000033a6: PUSH1 0x40
000033a8: MLOAD
000033a9: PUSH1 0x20
000033ab: DUP2
000033ac: DUP4
000033ad: SUB
000033ae: SUB
000033af: DUP2
000033b0: MSTORE
000033b1: SWAP1
000033b2: PUSH1 0x40
000033b4: MSTORE
000033b5: SWAP1
000033b6: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000033d3: NOT
000033d4: AND
000033d5: PUSH1 0x20
000033d7: DUP3
000033d8: ADD
000033d9: DUP1
000033da: MLOAD
000033db: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000033f8: DUP4
000033f9: DUP2
000033fa: DUP4
000033fb: AND
000033fc: OR
000033fd: DUP4
000033fe: MSTORE
000033ff: POP
00003400: POP
00003401: POP
00003402: POP
00003403: PUSH2 0x34d3
00003406: JUMP
00003407: JUMPDEST
00003408: POP
00003409: POP
0000340a: POP
0000340b: POP
0000340c: JUMP
0000340d: JUMPDEST
0000340e: PUSH1 0x00
00003410: DUP1
00003411: DUP4
00003412: GT
00003413: DUP3
00003414: SWAP1
00003415: PUSH2 0x34b9
00003418: JUMPI
00003419: PUSH1 0x40
0000341b: MLOAD
0000341c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000343d: DUP2
0000343e: MSTORE
0000343f: PUSH1 0x04
00003441: ADD
00003442: DUP1
00003443: DUP1
00003444: PUSH1 0x20
00003446: ADD
00003447: DUP3
00003448: DUP2
00003449: SUB
0000344a: DUP3
0000344b: MSTORE
0000344c: DUP4
0000344d: DUP2
0000344e: DUP2
0000344f: MLOAD
00003450: DUP2
00003451: MSTORE
00003452: PUSH1 0x20
00003454: ADD
00003455: SWAP2
00003456: POP
00003457: DUP1
00003458: MLOAD
00003459: SWAP1
0000345a: PUSH1 0x20
0000345c: ADD
0000345d: SWAP1
0000345e: DUP1
0000345f: DUP4
00003460: DUP4
00003461: PUSH1 0x00
00003463: JUMPDEST
00003464: DUP4
00003465: DUP2
00003466: LT
00003467: ISZERO
00003468: PUSH2 0x347e
0000346b: JUMPI
0000346c: DUP1
0000346d: DUP3
0000346e: ADD
0000346f: MLOAD
00003470: DUP2
00003471: DUP5
00003472: ADD
00003473: MSTORE
00003474: PUSH1 0x20
00003476: DUP2
00003477: ADD
00003478: SWAP1
00003479: POP
0000347a: PUSH2 0x3463
0000347d: JUMP
0000347e: JUMPDEST
0000347f: POP
00003480: POP
00003481: POP
00003482: POP
00003483: SWAP1
00003484: POP
00003485: SWAP1
00003486: DUP2
00003487: ADD
00003488: SWAP1
00003489: PUSH1 0x1f
0000348b: AND
0000348c: DUP1
0000348d: ISZERO
0000348e: PUSH2 0x34ab
00003491: JUMPI
00003492: DUP1
00003493: DUP3
00003494: SUB
00003495: DUP1
00003496: MLOAD
00003497: PUSH1 0x01
00003499: DUP4
0000349a: PUSH1 0x20
0000349c: SUB
0000349d: PUSH2 0x0100
000034a0: EXP
000034a1: SUB
000034a2: NOT
000034a3: AND
000034a4: DUP2
000034a5: MSTORE
000034a6: PUSH1 0x20
000034a8: ADD
000034a9: SWAP2
000034aa: POP
000034ab: JUMPDEST
000034ac: POP
000034ad: SWAP3
000034ae: POP
000034af: POP
000034b0: POP
000034b1: PUSH1 0x40
000034b3: MLOAD
000034b4: DUP1
000034b5: SWAP2
000034b6: SUB
000034b7: SWAP1
000034b8: REVERT
000034b9: JUMPDEST
000034ba: POP
000034bb: PUSH1 0x00
000034bd: DUP4
000034be: DUP6
000034bf: DUP2
000034c0: PUSH2 0x34c5
000034c3: JUMPI
000034c4: INVALID
000034c5: JUMPDEST
000034c6: DIV
000034c7: SWAP1
000034c8: POP
000034c9: DUP1
000034ca: SWAP2
000034cb: POP
000034cc: POP
000034cd: SWAP4
000034ce: SWAP3
000034cf: POP
000034d0: POP
000034d1: POP
000034d2: JUMP
000034d3: JUMPDEST
000034d4: PUSH2 0x34f2
000034d7: DUP3
000034d8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000034ed: AND
000034ee: PUSH2 0x371e
000034f1: JUMP
000034f2: JUMPDEST
000034f3: PUSH2 0x3564
000034f6: JUMPI
000034f7: PUSH1 0x40
000034f9: MLOAD
000034fa: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000351b: DUP2
0000351c: MSTORE
0000351d: PUSH1 0x04
0000351f: ADD
00003520: DUP1
00003521: DUP1
00003522: PUSH1 0x20
00003524: ADD
00003525: DUP3
00003526: DUP2
00003527: SUB
00003528: DUP3
00003529: MSTORE
0000352a: PUSH1 0x1f
0000352c: DUP2
0000352d: MSTORE
0000352e: PUSH1 0x20
00003530: ADD
00003531: DUP1
00003532: PUSH32 0x5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400
00003553: DUP2
00003554: MSTORE
00003555: POP
00003556: PUSH1 0x20
00003558: ADD
00003559: SWAP2
0000355a: POP
0000355b: POP
0000355c: PUSH1 0x40
0000355e: MLOAD
0000355f: DUP1
00003560: SWAP2
00003561: SUB
00003562: SWAP1
00003563: REVERT
00003564: JUMPDEST
00003565: PUSH1 0x00
00003567: PUSH1 0x60
00003569: DUP4
0000356a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000357f: AND
00003580: DUP4
00003581: PUSH1 0x40
00003583: MLOAD
00003584: DUP1
00003585: DUP3
00003586: DUP1
00003587: MLOAD
00003588: SWAP1
00003589: PUSH1 0x20
0000358b: ADD
0000358c: SWAP1
0000358d: DUP1
0000358e: DUP4
0000358f: DUP4
00003590: JUMPDEST
00003591: PUSH1 0x20
00003593: DUP4
00003594: LT
00003595: PUSH2 0x35b3
00003598: JUMPI
00003599: DUP1
0000359a: MLOAD
0000359b: DUP3
0000359c: MSTORE
0000359d: PUSH1 0x20
0000359f: DUP3
000035a0: ADD
000035a1: SWAP2
000035a2: POP
000035a3: PUSH1 0x20
000035a5: DUP2
000035a6: ADD
000035a7: SWAP1
000035a8: POP
000035a9: PUSH1 0x20
000035ab: DUP4
000035ac: SUB
000035ad: SWAP3
000035ae: POP
000035af: PUSH2 0x3590
000035b2: JUMP
000035b3: JUMPDEST
000035b4: PUSH1 0x01
000035b6: DUP4
000035b7: PUSH1 0x20
000035b9: SUB
000035ba: PUSH2 0x0100
000035bd: EXP
000035be: SUB
000035bf: DUP1
000035c0: NOT
000035c1: DUP3
000035c2: MLOAD
000035c3: AND
000035c4: DUP2
000035c5: DUP5
000035c6: MLOAD
000035c7: AND
000035c8: DUP1
000035c9: DUP3
000035ca: OR
000035cb: DUP6
000035cc: MSTORE
000035cd: POP
000035ce: POP
000035cf: POP
000035d0: POP
000035d1: POP
000035d2: POP
000035d3: SWAP1
000035d4: POP
000035d5: ADD
000035d6: SWAP2
000035d7: POP
000035d8: POP
000035d9: PUSH1 0x00
000035db: PUSH1 0x40
000035dd: MLOAD
000035de: DUP1
000035df: DUP4
000035e0: SUB
000035e1: DUP2
000035e2: PUSH1 0x00
000035e4: DUP7
000035e5: GAS
000035e6: CALL
000035e7: SWAP2
000035e8: POP
000035e9: POP
000035ea: RETURNDATASIZE
000035eb: DUP1
000035ec: PUSH1 0x00
000035ee: DUP2
000035ef: EQ
000035f0: PUSH2 0x3615
000035f3: JUMPI
000035f4: PUSH1 0x40
000035f6: MLOAD
000035f7: SWAP2
000035f8: POP
000035f9: PUSH1 0x1f
000035fb: NOT
000035fc: PUSH1 0x3f
000035fe: RETURNDATASIZE
000035ff: ADD
00003600: AND
00003601: DUP3
00003602: ADD
00003603: PUSH1 0x40
00003605: MSTORE
00003606: RETURNDATASIZE
00003607: DUP3
00003608: MSTORE
00003609: RETURNDATASIZE
0000360a: PUSH1 0x00
0000360c: PUSH1 0x20
0000360e: DUP5
0000360f: ADD
00003610: RETURNDATACOPY
00003611: PUSH2 0x361a
00003614: JUMP
00003615: JUMPDEST
00003616: PUSH1 0x60
00003618: SWAP2
00003619: POP
0000361a: JUMPDEST
0000361b: POP
0000361c: SWAP2
0000361d: POP
0000361e: SWAP2
0000361f: POP
00003620: DUP2
00003621: PUSH2 0x3692
00003624: JUMPI
00003625: PUSH1 0x40
00003627: MLOAD
00003628: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00003649: DUP2
0000364a: MSTORE
0000364b: PUSH1 0x04
0000364d: ADD
0000364e: DUP1
0000364f: DUP1
00003650: PUSH1 0x20
00003652: ADD
00003653: DUP3
00003654: DUP2
00003655: SUB
00003656: DUP3
00003657: MSTORE
00003658: PUSH1 0x20
0000365a: DUP2
0000365b: MSTORE
0000365c: PUSH1 0x20
0000365e: ADD
0000365f: DUP1
00003660: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00003681: DUP2
00003682: MSTORE
00003683: POP
00003684: PUSH1 0x20
00003686: ADD
00003687: SWAP2
00003688: POP
00003689: POP
0000368a: PUSH1 0x40
0000368c: MLOAD
0000368d: DUP1
0000368e: SWAP2
0000368f: SUB
00003690: SWAP1
00003691: REVERT
00003692: JUMPDEST
00003693: PUSH1 0x00
00003695: DUP2
00003696: MLOAD
00003697: GT
00003698: ISZERO
00003699: PUSH2 0x3718
0000369c: JUMPI
0000369d: DUP1
0000369e: DUP1
0000369f: PUSH1 0x20
000036a1: ADD
000036a2: SWAP1
000036a3: MLOAD
000036a4: PUSH1 0x20
000036a6: DUP2
000036a7: LT
000036a8: ISZERO
000036a9: PUSH2 0x36b1
000036ac: JUMPI
000036ad: PUSH1 0x00
000036af: DUP1
000036b0: REVERT
000036b1: JUMPDEST
000036b2: DUP2
000036b3: ADD
000036b4: SWAP1
000036b5: DUP1
000036b6: DUP1
000036b7: MLOAD
000036b8: SWAP1
000036b9: PUSH1 0x20
000036bb: ADD
000036bc: SWAP1
000036bd: SWAP3
000036be: SWAP2
000036bf: SWAP1
000036c0: POP
000036c1: POP
000036c2: POP
000036c3: PUSH2 0x3717
000036c6: JUMPI
000036c7: PUSH1 0x40
000036c9: MLOAD
000036ca: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000036eb: DUP2
000036ec: MSTORE
000036ed: PUSH1 0x04
000036ef: ADD
000036f0: DUP1
000036f1: DUP1
000036f2: PUSH1 0x20
000036f4: ADD
000036f5: DUP3
000036f6: DUP2
000036f7: SUB
000036f8: DUP3
000036f9: MSTORE
000036fa: PUSH1 0x2a
000036fc: DUP2
000036fd: MSTORE
000036fe: PUSH1 0x20
00003700: ADD
00003701: DUP1
00003702: PUSH2 0x38aa
00003705: PUSH1 0x2a
00003707: SWAP2
00003708: CODECOPY
00003709: PUSH1 0x40
0000370b: ADD
0000370c: SWAP2
0000370d: POP
0000370e: POP
0000370f: PUSH1 0x40
00003711: MLOAD
00003712: DUP1
00003713: SWAP2
00003714: SUB
00003715: SWAP1
00003716: REVERT
00003717: JUMPDEST
00003718: JUMPDEST
00003719: POP
0000371a: POP
0000371b: POP
0000371c: POP
0000371d: JUMP
0000371e: JUMPDEST
0000371f: PUSH1 0x00
00003721: DUP1
00003722: PUSH1 0x00
00003724: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
00003745: PUSH1 0x00
00003747: SHL
00003748: SWAP1
00003749: POP
0000374a: DUP4
0000374b: EXTCODEHASH
0000374c: SWAP2
0000374d: POP
0000374e: PUSH1 0x00
00003750: DUP1
00003751: SHL
00003752: DUP3
00003753: EQ
00003754: ISZERO
00003755: DUP1
00003756: ISZERO
00003757: PUSH2 0x3760
0000375a: JUMPI
0000375b: POP
0000375c: DUP1
0000375d: DUP3
0000375e: EQ
0000375f: ISZERO
00003760: JUMPDEST
00003761: SWAP3
00003762: POP
00003763: POP
00003764: POP
00003765: SWAP2
00003766: SWAP1
00003767: POP
00003768: JUMP
00003769: INVALID
0000376a: GASLIMIT
0000376b: MSTORE
0000376c: NUMBER
0000376d: ORIGIN
0000376e: ADDRESS
0000376f: GASPRICE
00003770: KECCAK256
00003771: PUSH21 0x72616e7366657220746f20746865207a65726f2061
00003787: PUSH5 0x6472657373
0000378d: GASLIMIT
0000378e: MSTORE
0000378f: NUMBER
00003790: ORIGIN
00003791: ADDRESS
00003792: GASPRICE
00003793: KECCAK256
00003794: PUSH3 0x75726e
00003798: KECCAK256
00003799: PUSH2 0x6d6f
0000379c: PUSH22 0x6e7420657863656564732062616c616e636545524332
000037b3: ADDRESS
000037b4: GASPRICE
000037b5: KECCAK256
000037b6: PUSH2 0x7070
000037b9: PUSH19 0x6f766520746f20746865207a65726f20616464
000037cd: PUSH19 0x65737345524332303a207472616e7366657220
000037e1: PUSH2 0x6d6f
000037e4: PUSH22 0x6e7420657863656564732062616c616e636553616665
000037fb: UNKNOWN(0x4D)
000037fc: PUSH2 0x7468
000037ff: GASPRICE
00003800: KECCAK256
00003801: PUSH14 0x756c7469706c69636174696f6e20
00003810: PUSH16 0x766572666c6f7745524332303a207472
00003821: PUSH2 0x6e73
00003824: PUSH7 0x657220616d6f75
0000382c: PUSH15 0x74206578636565647320616c6c6f77
0000383c: PUSH2 0x6e63
0000383f: PUSH6 0x45524332303a
00003846: KECCAK256
00003847: PUSH3 0x75726e
0000384b: KECCAK256
0000384c: PUSH7 0x726f6d20746865
00003854: KECCAK256
00003855: PUSH27 0x65726f206164647265737345524332303a207472616e7366657220
00003871: PUSH7 0x726f6d20746865
00003879: KECCAK256
0000387a: PUSH27 0x65726f206164647265737345524332303a20617070726f76652066
00003896: PUSH19 0x6f6d20746865207a65726f2061646472657373
000038aa: MSTORE8
000038ab: PUSH2 0x6665
000038ae: GASLIMIT
000038af: MSTORE
000038b0: NUMBER
000038b1: ORIGIN
000038b2: ADDRESS
000038b3: GASPRICE
000038b4: KECCAK256
000038b5: GASLIMIT
000038b6: MSTORE
000038b7: NUMBER
000038b8: ORIGIN
000038b9: ADDRESS
000038ba: KECCAK256
000038bb: PUSH16 0x7065726174696f6e20646964206e6f74
000038cc: KECCAK256
000038cd: PUSH20 0x75636365656445524332303a2064656372656173
000038e2: PUSH6 0x6420616c6c6f
000038e9: PUSH24 0x616e63652062656c6f77207a65726fa265627a7a72315820
00003902: UNKNOWN(0xAC)
00003903: TLOAD
00003904: CODECOPY
00003905: LT
00003906: POP
00003907: UNKNOWN(0xE7)
00003908: UNKNOWN(0x0C)
00003909: UNKNOWN(0xA6)
0000390a: DUP15
0000390b: UNKNOWN(0xB9)
0000390c: UNKNOWN(0xC2)
0000390d: UNKNOWN(0x23)
0000390e: GASLIMIT
0000390f: DUP7
00003910: UNKNOWN(0xB7)
00003911: UNKNOWN(0xD0)
00003912: SWAP9
00003913: MSIZE
00003914: MLOAD
00003915: UNKNOWN(0xAE)
00003916: SWAP12
00003917: UNKNOWN(0xDB)
00003918: BLOBBASEFEE
00003919: DUP16
0000391a: SWAP16
0000391b: CODECOPY
0000391c: GAS
0000391d: ORIGIN
0000391e: UNKNOWN(0xD0)
0000391f: PUSH24

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xf6326fb3",
            "selector": "0xf6326fb3",
            "calldata_variants": [
                "0xf6326fb3",
                "0xf6326fb30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf77c4791",
            "selector": "0xf77c4791",
            "calldata_variants": [
                "0xf77c4791",
                "0xf77c47910000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8897945",
            "selector": "0xf8897945",
            "calldata_variants": [
                "0xf8897945",
                "0xf88979450000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd389800f",
            "selector": "0xd389800f",
            "calldata_variants": [
                "0xd389800f",
                "0xd389800f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde5f6268",
            "selector": "0xde5f6268",
            "calldata_variants": [
                "0xde5f6268",
                "0xde5f62680000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf14210a6",
            "selector": "0xf14210a6",
            "calldata_variants": [
                "0xf14210a6",
                "0xf14210a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 530,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 3620,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5619,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6309,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6969,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 14189,
            "type": "tx_origin_used"
        },
        {
            "pc": 14224,
            "type": "tx_origin_used"
        },
        {
            "pc": 14513,
            "type": "tx_origin_used"
        },
        {
            "pc": 14520,
            "type": "tx_origin_used"
        },
        {
            "pc": 14621,
            "type": "tx_origin_used"
        }
    ]
}
medium reentrancy codex ERC777-style reentrancy in deposit can mint excess shares 75 no
view
evidence_json
{
    "evidence": "`deposit` computes `_pool` and then calls `token.safeTransferFrom` before minting shares, without any reentrancy protection.",
    "locations": [
        "contracts/Contract.sol:303",
        "contracts/Contract.sol:304",
        "contracts/Contract.sol:306",
        "contracts/Contract.sol:313",
        "contracts/Contract.sol:315"
    ],
    "recommendation": "Add a `nonReentrant` guard around `deposit` (and `depositETH`) or otherwise prevent reentrancy during token transfers. A guard is the safest fix because share accounting relies on no intermediate deposits occurring mid-call.",
    "exploit_scenario": "An attacker deposits a callback-enabled token (e.g., ERC777) via a contract that reenters `deposit` from the token's transfer hooks. The outer call computes `_pool` before the transfer, while the reentrant call mints shares and increases totalSupply. The outer call then mints shares using the stale `_pool` and the inflated totalSupply, granting the attacker more shares than paid for. The attacker then withdraws to drain value from existing depositors."
}
medium other detector Untrusted CALL target/value reachable 45 yes yes
view
trace_id: 0xa6b11bad43409da08e8eddaf78cdcb34a534fde4c9efe747196d6c312e3a60ab
call_targets: 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, 0xe1237aa7f535b0cc33fd973d66cbf830354d16c7
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0xa6b11bad43409da08e8eddaf78cdcb34a534fde4c9efe747196d6c312e3a60ab",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
        "0xe1237aa7f535b0cc33fd973d66cbf830354d16c7"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xf6326fb3",
            "selector": "0xf6326fb3",
            "calldata_variants": [
                "0xf6326fb3",
                "0xf6326fb30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf77c4791",
            "selector": "0xf77c4791",
            "calldata_variants": [
                "0xf77c4791",
                "0xf77c47910000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8897945",
            "selector": "0xf8897945",
            "calldata_variants": [
                "0xf8897945",
                "0xf88979450000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd389800f",
            "selector": "0xd389800f",
            "calldata_variants": [
                "0xd389800f",
                "0xd389800f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde5f6268",
            "selector": "0xde5f6268",
            "calldata_variants": [
                "0xde5f6268",
                "0xde5f62680000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf14210a6",
            "selector": "0xf14210a6",
            "calldata_variants": [
                "0xf14210a6",
                "0xf14210a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3204,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4977,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8646,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 7,
    "guards_detected": [
        {
            "pc": 530,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 3620,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5619,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6309,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6969,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 14189,
            "type": "tx_origin_used"
        },
        {
            "pc": 14224,
            "type": "tx_origin_used"
        },
        {
            "pc": 14513,
            "type": "tx_origin_used"
        },
        {
            "pc": 14520,
            "type": "tx_origin_used"
        },
        {
            "pc": 14621,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 7
}
medium other detector ETH value transfer possible 40 yes yes
view
trace_id: 0xa6b11bad43409da08e8eddaf78cdcb34a534fde4c9efe747196d6c312e3a60ab
call_targets: 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, 0xe1237aa7f535b0cc33fd973d66cbf830354d16c7
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 1,
    "trace_id": "0xa6b11bad43409da08e8eddaf78cdcb34a534fde4c9efe747196d6c312e3a60ab",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
        "0xe1237aa7f535b0cc33fd973d66cbf830354d16c7"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xf6326fb3",
            "selector": "0xf6326fb3",
            "calldata_variants": [
                "0xf6326fb3",
                "0xf6326fb30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf77c4791",
            "selector": "0xf77c4791",
            "calldata_variants": [
                "0xf77c4791",
                "0xf77c47910000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf8897945",
            "selector": "0xf8897945",
            "calldata_variants": [
                "0xf8897945",
                "0xf88979450000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd389800f",
            "selector": "0xd389800f",
            "calldata_variants": [
                "0xd389800f",
                "0xd389800f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde5f6268",
            "selector": "0xde5f6268",
            "calldata_variants": [
                "0xde5f6268",
                "0xde5f62680000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf14210a6",
            "selector": "0xf14210a6",
            "calldata_variants": [
                "0xf14210a6",
                "0xf14210a60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3204,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4977,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8646,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 7,
    "guards_detected": [
        {
            "pc": 530,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 3620,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 5619,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6309,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 6969,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        },
        {
            "pc": 14189,
            "type": "tx_origin_used"
        },
        {
            "pc": 14224,
            "type": "tx_origin_used"
        },
        {
            "pc": 14513,
            "type": "tx_origin_used"
        },
        {
            "pc": 14520,
            "type": "tx_origin_used"
        },
        {
            "pc": 14621,
            "type": "tx_origin_used"
        }
    ]
}
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": 18
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 19
}