62905bd3-7f23-4198-8cee-9a5bc2390d2a
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 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 |
No slither job recorded yet.
[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"]}]}
{
"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
}
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
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "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 | — |
viewevidence_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 |
viewtrace_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 |
viewtrace_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 | — |
viewevidence_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 | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 19
}
|