3b4bae17-4cc2-45cb-a041-6dc87f0fbe7a
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 |
|---|---|---|---|---|
| 30511 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 103925 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 103926 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 103927 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 103928 | capability.graph | complete | 1 / 3 | 1 week ago |
| 103929 | detector.run | complete | 1 / 3 | 1 week ago |
| 103930 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1064208] OpenAI Codex v0.77.0 (research preview)
[codex:1064208] --------
[codex:1064208] workdir: /tmp/codex-multi-w9zp0ae9
[codex:1064208] model: gpt-5.2-codex
[codex:1064208] provider: openai
[codex:1064208] approval: never
[codex:1064208] sandbox: read-only
[codex:1064208] reasoning effort: xhigh
[codex:1064208] reasoning summaries: auto
[codex:1064208] session id: 019b6aa4-0d8a-7250-952a-bb984667201e
[codex:1064208] --------
[codex:1064208] user
[codex:1064208] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1064208] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1064208] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1064208]
[codex:1064208] Scope rules:
[codex:1064208] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1064208] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1064208]
[codex:1064208] Output MUST be valid JSON matching the provided schema.
[codex:1064208] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1064208] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1064208]
[codex:1064208] Output constraints (IMPORTANT):
[codex:1064208] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1064208] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1064208] mcp startup: no servers
[codex:1064208]
[codex:1064208] thinking
[codex:1064208] **Checking AUDIT_BUNDLE file**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-w9zp0ae9 succeeded in 5ms:
[codex:1064208] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1064208]
[codex:1064208] ================================================================================
[codex:1064208] FILE: contracts/@openzeppelin/contracts/access/Ownable.sol
[codex:1064208] ================================================================================
[codex:1064208] // SPDX-License-Identifier: MIT
[codex:1064208] // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
[codex:1064208]
[codex:1064208] pragma solidity ^0.8.20;
[codex:1064208]
[codex:1064208] import {Context} from "../utils/Context.sol";
[codex:1064208]
[codex:1064208] /**
[codex:1064208] * @dev Contract module which provides a basic access control mechanism, where
[codex:1064208] * there is an account (an owner) that can be granted exclusive access to
[codex:1064208] * specific functions.
[codex:1064208] *
[codex:1064208] * The initial owner is set to the address provided by the deployer. This can
[codex:1064208] * later be changed with {transferOwnership}.
[codex:1064208] *
[codex:1064208]
[codex:1064208] thinking
[codex:1064208] **Searching for main contract source**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc 'rg -n "contract ZtakingPool|ZtakingPool" AUDIT_BUNDLE.txt' in /tmp/codex-multi-w9zp0ae9 succeeded in 7ms:
[codex:1064208] 2205:FILE: contracts/contracts/ZtakingPool.sol
[codex:1064208] 2221:import "./interface/IZtakingPool.sol";
[codex:1064208] 2226:contract ZtakingPool is IZtakingPool, Ownable2Step, Pausable, EIP712, Nonces {
[codex:1064208] 2251: constructor(address _signer, address[] memory _tokensAllowed, address _weth) Ownable(msg.sender) EIP712("ZtakingPool", "1"){
[codex:1064208] 2271: * @inheritdoc IZtakingPool
[codex:1064208] 2297: * @inheritdoc IZtakingPool
[codex:1064208] 2309: * @inheritdoc IZtakingPool
[codex:1064208] 2344: * @inheritdoc IZtakingPool
[codex:1064208] 2431: * @inheritdoc IZtakingPool
[codex:1064208] 2442: * @inheritdoc IZtakingPool
[codex:1064208] 2453: * @inheritdoc IZtakingPool
[codex:1064208] 2464: * @inheritdoc IZtakingPool
[codex:1064208] 2471: * @inheritdoc IZtakingPool
[codex:1064208] 2523:FILE: contracts/contracts/interface/IZtakingPool.sol
[codex:1064208] 2530:/// @notice An interface containing externally accessible functions of the ZtakingPool contract
[codex:1064208] 2532:interface IZtakingPool {
[codex:1064208] 2580: ///@notice Emitted when a staker migrates their tokens from the ZtakingPool to Zircuit.
[codex:1064208] 2583: ///@param tokens The addresses of the tokens being being migrated from the ZtakingPool to Zircuit
[codex:1064208]
[codex:1064208] thinking
[codex:1064208] **Checking ZtakingPool contents**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc "sed -n '2205,2522p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-w9zp0ae9 succeeded in 5ms:
[codex:1064208] FILE: contracts/contracts/ZtakingPool.sol
[codex:1064208] ================================================================================
[codex:1064208] // SPDX-License-Identifier: UNLICENSED
[codex:1064208] pragma solidity 0.8.24;
[codex:1064208]
[codex:1064208] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1064208] import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1064208] import {Ownable2Step} from "@openzeppelin/contracts/access/Ownable2Step.sol";
[codex:1064208] import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
[codex:1064208] import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";
[codex:1064208] import {Pausable} from "@openzeppelin/contracts/utils/Pausable.sol";
[codex:1064208] import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";
[codex:1064208] import {Nonces} from "@openzeppelin/contracts/utils/Nonces.sol";
[codex:1064208] import "./interface/IWETH.sol";
[codex:1064208]
[codex:1064208] import "./interface/IMigrator.sol";
[codex:1064208] import "./interface/IZtakingPool.sol";
[codex:1064208]
[codex:1064208]
[codex:1064208] /// @title Ztaking Pool
[codex:1064208]
[codex:1064208] thinking
[codex:1064208] **Preparing to audit contract code**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc 'rg -n "FILE: contracts/contracts/" AUDIT_BUNDLE.txt' in /tmp/codex-multi-w9zp0ae9 succeeded in 7ms:
[codex:1064208] 2205:FILE: contracts/contracts/ZtakingPool.sol
[codex:1064208] 2486:FILE: contracts/contracts/interface/IMigrator.sol
[codex:1064208] 2510:FILE: contracts/contracts/interface/IWETH.sol
[codex:1064208] 2523:FILE: contracts/contracts/interface/IZtakingPool.sol
[codex:1064208]
[codex:1064208]
[codex:1064208]
[codex:1064208]
[codex:1064208] thinking
[codex:1064208] **Analyzing potential vulnerabilities in token pool contract**
[codex:1064208]
[codex:1064208] There's a lot here! I'm carefully examining functions like deposit, withdraw, migrate, and migrateWithSig for reentrancy risks, signature handling, allowance management, and balance accounting—especially around deflationary tokens, approvals without safe checks, and migration authorization. I'm curious about reentrancy during token transferFrom calls, approve front-running, and how signatures are validated and used. The handling of approvals, allowance overwrites, and token accounting for fee-on-transfer tokens stands out as potential medium-level risks. Let's see how these interplay to identify real vulnerabilities.
[codex:1064208] thinking
[codex:1064208] **Reviewing signature handling and reentrancy risks**
[codex:1064208]
[codex:1064208] I'm examining signature validation details for migrateWithSig, especially EIP712 domain and array hashing quirks, plus nonce consumption order and potential replay scenarios. I'm also digging into reentrancy possibilities triggered by token callbacks during deposit, which could allow draining tokens if a malicious or fee-on-transfer token is allowlisted. The nuances of signature scopes, nonce usage, and external calls all seem important to connect here.
[codex:1064208] thinking
[codex:1064208] **Detecting allowance and reentrancy concerns**
[codex:1064208]
[codex:1064208] I'm digging into how the contract handles token approvals without checking return values, which can cause stuck user balances or unintended allowances. The sequence of external calls during migration and deposits could enable reentrancy, especially if malicious or non-standard tokens are involved. I'm also noting nuanced behaviors around signature validation, nonce usage, and token allowlist checks to fully assess risks.
[codex:1064208] thinking
[codex:1064208] **Summarizing migration and deposit vulnerabilities**
[codex:1064208]
[codex:1064208] I'm wrapping up by compiling the main findings: the deposit function credits user balances before actual token transfer, which can lead to inflation of credited amounts if tokens charge fees. Also, the migration function uses raw approve calls without checking returns, risking stuck user funds or stale allowances. I’ll package these with relevant code references for clarity.
[codex:1064208] exec
[codex:1064208] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '2265,2365p'" in /tmp/codex-multi-w9zp0ae9 succeeded in 9ms:
[codex:1064208] 2265 /*//////////////////////////////////////////////////////////////
[codex:1064208] 2266 Staker Functions
[codex:1064208] 2267 //////////////////////////////////////////////////////////////*/
[codex:1064208] 2268
[codex:1064208] 2269
[codex:1064208] 2270 /**
[codex:1064208] 2271 * @inheritdoc IZtakingPool
[codex:1064208] 2272 */
[codex:1064208] 2273 function depositFor(address _token, address _for, uint256 _amount) whenNotPaused external {
[codex:1064208] 2274 if (_amount == 0) revert DepositAmountCannotBeZero();
[codex:1064208] 2275 if (_for== address(0)) revert CannotDepositForZeroAddress();
[codex:1064208] 2276 if (!tokenAllowlist[_token]) revert TokenNotAllowedForStaking();
[codex:1064208] 2277
[codex:1064208] 2278 balance[_token][_for] += _amount;
[codex:1064208] 2279
[codex:1064208] 2280 emit Deposit(++eventId, _for, _token, _amount);
[codex:1064208] 2281
[codex:1064208] 2282 IERC20(_token).safeTransferFrom(msg.sender, address(this), _amount);
[codex:1064208] 2283 }
[codex:1064208] 2284
[codex:1064208]
[codex:1064208] thinking
[codex:1064208] **Noting need for line numbers**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc "nl -ba AUDIT_BUNDLE.txt | sed -n '2388,2475p'" in /tmp/codex-multi-w9zp0ae9 succeeded in 6ms:
[codex:1064208] 2388 }
[codex:1064208] 2389
[codex:1064208] 2390 if (block.timestamp >= _signatureExpiry) revert SignatureExpired();// allows us to invalidate signature by having it expired
[codex:1064208] 2391
[codex:1064208] 2392 if (migratorBlocklist[_migratorContract]) revert MigratorBlocked();
[codex:1064208] 2393 }
[codex:1064208] 2394
[codex:1064208] 2395 function _migrate(
[codex:1064208] 2396 address _user,
[codex:1064208] 2397 address _destination,
[codex:1064208] 2398 address _migratorContract,
[codex:1064208] 2399 address[] calldata _tokens,
[codex:1064208] 2400 uint256[] memory _amounts)
[codex:1064208] 2401 internal {
[codex:1064208] 2402
[codex:1064208] 2403 uint256 length = _tokens.length;
[codex:1064208] 2404 //effects for-loop (state changes)
[codex:1064208] 2405 for(uint256 i; i < length; ++i){
[codex:1064208] 2406 //if the balance has been already set to zero, then _tokens[i] is a duplicate of a previous token in the array
[codex:1064208] 2407 if (balance[_tokens[i]][_user] == 0) revert DuplicateToken();
[codex:1064208]
[codex:1064208] thinking
[codex:1064208] **Clarifying line numbering approach**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc "nl -ba contracts/contracts/ZtakingPool.sol | sed -n '60,170p'" in /tmp/codex-multi-w9zp0ae9 succeeded in 6ms:
[codex:1064208] 60 Staker Functions
[codex:1064208] 61 //////////////////////////////////////////////////////////////*/
[codex:1064208] 62
[codex:1064208] 63
[codex:1064208] 64 /**
[codex:1064208] 65 * @inheritdoc IZtakingPool
[codex:1064208] 66 */
[codex:1064208] 67 function depositFor(address _token, address _for, uint256 _amount) whenNotPaused external {
[codex:1064208] 68 if (_amount == 0) revert DepositAmountCannotBeZero();
[codex:1064208] 69 if (_for== address(0)) revert CannotDepositForZeroAddress();
[codex:1064208] 70 if (!tokenAllowlist[_token]) revert TokenNotAllowedForStaking();
[codex:1064208] 71
[codex:1064208] 72 balance[_token][_for] += _amount;
[codex:1064208] 73
[codex:1064208] 74 emit Deposit(++eventId, _for, _token, _amount);
[codex:1064208] 75
[codex:1064208] 76 IERC20(_token).safeTransferFrom(msg.sender, address(this), _amount);
[codex:1064208] 77 }
[codex:1064208] 78
[codex:1064208] 79 function depositETHFor(address _for) whenNotPaused payable external {
[codex:1064208]
[codex:1064208] thinking
[codex:1064208] **Preparing migration lines**
[codex:1064208] exec
[codex:1064208] /bin/bash -lc "nl -ba contracts/contracts/ZtakingPool.sol | sed -n '170,260p'" in /tmp/codex-multi-w9zp0ae9 succeeded in 6ms:
[codex:1064208] 170
[codex:1064208] 171 function _migrateChecks(address _user, address[] calldata _tokens, uint256 _signatureExpiry, address _migratorContract)
[codex:1064208] 172 internal view returns (uint256[] memory _amounts){
[codex:1064208] 173
[codex:1064208] 174 uint256 length = _tokens.length;
[codex:1064208] 175 if (length == 0) revert TokenArrayCannotBeEmpty();
[codex:1064208] 176
[codex:1064208] 177 _amounts = new uint256[](length);
[codex:1064208] 178
[codex:1064208] 179 for(uint256 i; i < length; ++i){
[codex:1064208] 180 _amounts[i] = balance[_tokens[i]][_user];
[codex:1064208] 181 if (_amounts[i] == 0) revert UserDoesNotHaveStake();
[codex:1064208] 182 }
[codex:1064208] 183
[codex:1064208] 184 if (block.timestamp >= _signatureExpiry) revert SignatureExpired();// allows us to invalidate signature by having it expired
[codex:1064208] 185
[codex:1064208] 186 if (migratorBlocklist[_migratorContract]) revert MigratorBlocked();
[codex:1064208] 187 }
[codex:1064208] 188
[codex:1064208] 189 function _migrate(
[codex:1064208]
[codex:1064208] thinking
[codex:1064208] **Formulating detailed vulnerability report**
[codex:1064208] codex
[codex:1064208] {"no_findings":false,"summary":"Found 2 issues: deposit accounting can be inflated by fee-on-transfer tokens, and migration uses unchecked approve that can desync balances/allowances for non-standard tokens.","findings":[{"severity":"medium","category":"math","title":"Fee-on-transfer tokens can inflate balances and drain pool","exploit_scenario":"If a fee-on-transfer or deflationary token is allowlisted, an attacker can deposit 100 units while the pool receives less (e.g., 90). The pool credits the full 100 to the attacker, who can later withdraw 100, effectively taking the shortfall from other stakers’ liquidity or causing insolvency for late withdrawers.","recommendation":"Credit deposits based on the actual amount received (balance-before/after delta), or explicitly disallow fee-on-transfer/rebasing tokens and enforce it in allowlist policy and/or runtime checks.","evidence":"`depositFor` increments `balance[_token][_for]` by `_amount` before calling `safeTransferFrom`, so credited balances do not reflect actual received tokens for taxed tokens.","locations":["contracts/contracts/ZtakingPool.sol:72"]},{"severity":"low","category":"other","title":"Unchecked ERC20 approve during migration can desync balances/allowances for non-standard tokens","exploit_scenario":"For tokens that return false on `approve` or require allowance to be zeroed first, the `approve` call can silently fail. Since balances are already zeroed, the pool proceeds to the migrator; if the migrator does not revert on a failed `transferFrom`, the user’s balance is gone while tokens remain in the pool or stale allowances persist.","recommendation":"Use `SafeERC20.forceApprove`/`safeIncreaseAllowance` and handle failures; consider zeroing balances only after approvals and migrator transfers succeed.","evidence":"`_migrate` zeroes balances, then calls `IERC20(_tokens[i]).approve(_migratorContract, _amounts[i])` without checking the return value.","locations":["contracts/contracts/ZtakingPool.sol:210"]}]}
[codex:1064208] tokens used
[codex:1064208] 39,033
[codex:1064208] {"no_findings":false,"summary":"Found 2 issues: deposit accounting can be inflated by fee-on-transfer tokens, and migration uses unchecked approve that can desync balances/allowances for non-standard tokens.","findings":[{"severity":"medium","category":"math","title":"Fee-on-transfer tokens can inflate balances and drain pool","exploit_scenario":"If a fee-on-transfer or deflationary token is allowlisted, an attacker can deposit 100 units while the pool receives less (e.g., 90). The pool credits the full 100 to the attacker, who can later withdraw 100, effectively taking the shortfall from other stakers’ liquidity or causing insolvency for late withdrawers.","recommendation":"Credit deposits based on the actual amount received (balance-before/after delta), or explicitly disallow fee-on-transfer/rebasing tokens and enforce it in allowlist policy and/or runtime checks.","evidence":"`depositFor` increments `balance[_token][_for]` by `_amount` before calling `safeTransferFrom`, so credited balances do not reflect actual received tokens for taxed tokens.","locations":["contracts/contracts/ZtakingPool.sol:72"]},{"severity":"low","category":"other","title":"Unchecked ERC20 approve during migration can desync balances/allowances for non-standard tokens","exploit_scenario":"For tokens that return false on `approve` or require allowance to be zeroed first, the `approve` call can silently fail. Since balances are already zeroed, the pool proceeds to the migrator; if the migrator does not revert on a failed `transferFrom`, the user’s balance is gone while tokens remain in the pool or stale allowances persist.","recommendation":"Use `SafeERC20.forceApprove`/`safeIncreaseAllowance` and handle failures; consider zeroing balances only after approvals and migrator transfers succeed.","evidence":"`_migrate` zeroes balances, then calls `IERC20(_tokens[i]).approve(_migratorContract, _amounts[i])` without checking the return value.","locations":["contracts/contracts/ZtakingPool.sol:210"]}]}
{
"codex": {
"ran_at": "2025-12-29T15:10:27.979395+00:00",
"returncode": 0
},
"summary": "Found 2 issues: deposit accounting can be inflated by fee-on-transfer tokens, and migration uses unchecked approve that can desync balances/allowances for non-standard tokens.",
"raw_final": {
"summary": "Found 2 issues: deposit accounting can be inflated by fee-on-transfer tokens, and migration uses unchecked approve that can desync balances/allowances for non-standard tokens.",
"findings": [
{
"title": "Fee-on-transfer tokens can inflate balances and drain pool",
"category": "math",
"evidence": "`depositFor` increments `balance[_token][_for]` by `_amount` before calling `safeTransferFrom`, so credited balances do not reflect actual received tokens for taxed tokens.",
"severity": "medium",
"locations": [
"contracts/contracts/ZtakingPool.sol:72"
],
"recommendation": "Credit deposits based on the actual amount received (balance-before/after delta), or explicitly disallow fee-on-transfer/rebasing tokens and enforce it in allowlist policy and/or runtime checks.",
"exploit_scenario": "If a fee-on-transfer or deflationary token is allowlisted, an attacker can deposit 100 units while the pool receives less (e.g., 90). The pool credits the full 100 to the attacker, who can later withdraw 100, effectively taking the shortfall from other stakers\u2019 liquidity or causing insolvency for late withdrawers."
},
{
"title": "Unchecked ERC20 approve during migration can desync balances/allowances for non-standard tokens",
"category": "other",
"evidence": "`_migrate` zeroes balances, then calls `IERC20(_tokens[i]).approve(_migratorContract, _amounts[i])` without checking the return value.",
"severity": "low",
"locations": [
"contracts/contracts/ZtakingPool.sol:210"
],
"recommendation": "Use `SafeERC20.forceApprove`/`safeIncreaseAllowance` and handle failures; consider zeroing balances only after approvals and migrator transfers succeed.",
"exploit_scenario": "For tokens that return false on `approve` or require allowance to be zeroed first, the `approve` call can silently fail. Since balances are already zeroed, the pool proceeds to the migrator; if the migrator does not revert on a failed `transferFrom`, the user\u2019s balance is gone while tokens remain in the pool or stale allowances persist."
}
],
"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 0x0135 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0xa5a21fdf 00000019: GT 0000001a: PUSH2 0x00ab 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xe3c34216 00000024: GT 00000025: PUSH2 0x006f 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xe3c34216 0000002f: EQ 00000030: PUSH2 0x0398 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xe63b81a6 0000003a: EQ 0000003b: PUSH2 0x03b8 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xf03639e3 00000045: EQ 00000046: PUSH2 0x03d8 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf2fde38b 00000050: EQ 00000051: PUSH2 0x03f8 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf3fef3a3 0000005b: EQ 0000005c: PUSH2 0x0418 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xf6203e35 00000066: EQ 00000067: PUSH2 0x0438 0000006a: JUMPI 0000006b: PUSH1 0x00 0000006d: DUP1 0000006e: REVERT 0000006f: JUMPDEST 00000070: DUP1 00000071: PUSH4 0xa5a21fdf 00000076: EQ 00000077: PUSH2 0x02e2 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xb203bb99 00000081: EQ 00000082: PUSH2 0x0302 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xb3db428b 0000008c: EQ 0000008d: PUSH2 0x033a 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0xda3a3a88 00000097: EQ 00000098: PUSH2 0x035a 0000009b: JUMPI 0000009c: DUP1 0000009d: PUSH4 0xe30c3978 000000a2: EQ 000000a3: PUSH2 0x037a 000000a6: JUMPI 000000a7: PUSH1 0x00 000000a9: DUP1 000000aa: REVERT 000000ab: JUMPDEST 000000ac: DUP1 000000ad: PUSH4 0x79ba5097 000000b2: GT 000000b3: PUSH2 0x00fd 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x79ba5097 000000bd: EQ 000000be: PUSH2 0x01fe 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0x7ecebe00 000000c8: EQ 000000c9: PUSH2 0x0213 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0x8135369a 000000d3: EQ 000000d4: PUSH2 0x0257 000000d7: JUMPI 000000d8: DUP1 000000d9: PUSH4 0x8456cb59 000000de: EQ 000000df: PUSH2 0x0287 000000e2: JUMPI 000000e3: DUP1 000000e4: PUSH4 0x84b0196e 000000e9: EQ 000000ea: PUSH2 0x029c 000000ed: JUMPI 000000ee: DUP1 000000ef: PUSH4 0x8da5cb5b 000000f4: EQ 000000f5: PUSH2 0x02c4 000000f8: JUMPI 000000f9: PUSH1 0x00 000000fb: DUP1 000000fc: REVERT 000000fd: JUMPDEST 000000fe: DUP1 000000ff: PUSH4 0x3f4ba83a 00000104: EQ 00000105: PUSH2 0x013a 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0x44e7cb13 0000010f: EQ 00000110: PUSH2 0x0151 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0x5c975abb 0000011a: EQ 0000011b: PUSH2 0x018e 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0x715018a6 00000125: EQ 00000126: PUSH2 0x01b9 00000129: JUMPI 0000012a: DUP1 0000012b: PUSH4 0x79a26cd0 00000130: EQ 00000131: PUSH2 0x01ce 00000134: JUMPI 00000135: JUMPDEST 00000136: PUSH1 0x00 00000138: DUP1 00000139: REVERT 0000013a: JUMPDEST 0000013b: CALLVALUE 0000013c: DUP1 0000013d: ISZERO 0000013e: PUSH2 0x0146 00000141: JUMPI 00000142: PUSH1 0x00 00000144: DUP1 00000145: REVERT 00000146: JUMPDEST 00000147: POP 00000148: PUSH2 0x014f 0000014b: PUSH2 0x044b 0000014e: JUMP 0000014f: JUMPDEST 00000150: STOP 00000151: JUMPDEST 00000152: CALLVALUE 00000153: DUP1 00000154: ISZERO 00000155: PUSH2 0x015d 00000158: JUMPI 00000159: PUSH1 0x00 0000015b: DUP1 0000015c: REVERT 0000015d: JUMPDEST 0000015e: POP 0000015f: PUSH1 0x09 00000161: SLOAD 00000162: PUSH2 0x0171 00000165: SWAP1 00000166: PUSH1 0x01 00000168: PUSH1 0x01 0000016a: PUSH1 0xa0 0000016c: SHL 0000016d: SUB 0000016e: AND 0000016f: DUP2 00000170: JUMP 00000171: JUMPDEST 00000172: PUSH1 0x40 00000174: MLOAD 00000175: PUSH1 0x01 00000177: PUSH1 0x01 00000179: PUSH1 0xa0 0000017b: SHL 0000017c: SUB 0000017d: SWAP1 0000017e: SWAP2 0000017f: AND 00000180: DUP2 00000181: MSTORE 00000182: PUSH1 0x20 00000184: ADD 00000185: JUMPDEST 00000186: PUSH1 0x40 00000188: MLOAD 00000189: DUP1 0000018a: SWAP2 0000018b: SUB 0000018c: SWAP1 0000018d: RETURN 0000018e: JUMPDEST 0000018f: CALLVALUE 00000190: DUP1 00000191: ISZERO 00000192: PUSH2 0x019a 00000195: JUMPI 00000196: PUSH1 0x00 00000198: DUP1 00000199: REVERT 0000019a: JUMPDEST 0000019b: POP 0000019c: PUSH1 0x01 0000019e: SLOAD 0000019f: PUSH1 0x01 000001a1: PUSH1 0xa0 000001a3: SHL 000001a4: SWAP1 000001a5: DIV 000001a6: PUSH1 0xff 000001a8: AND 000001a9: JUMPDEST 000001aa: PUSH1 0x40 000001ac: MLOAD 000001ad: SWAP1 000001ae: ISZERO 000001af: ISZERO 000001b0: DUP2 000001b1: MSTORE 000001b2: PUSH1 0x20 000001b4: ADD 000001b5: PUSH2 0x0185 000001b8: JUMP 000001b9: JUMPDEST 000001ba: CALLVALUE 000001bb: DUP1 000001bc: ISZERO 000001bd: PUSH2 0x01c5 000001c0: JUMPI 000001c1: PUSH1 0x00 000001c3: DUP1 000001c4: REVERT 000001c5: JUMPDEST 000001c6: POP 000001c7: PUSH2 0x014f 000001ca: PUSH2 0x0465 000001cd: JUMP 000001ce: JUMPDEST 000001cf: CALLVALUE 000001d0: DUP1 000001d1: ISZERO 000001d2: PUSH2 0x01da 000001d5: JUMPI 000001d6: PUSH1 0x00 000001d8: DUP1 000001d9: REVERT 000001da: JUMPDEST 000001db: POP 000001dc: PUSH2 0x01a9 000001df: PUSH2 0x01e9 000001e2: CALLDATASIZE 000001e3: PUSH1 0x04 000001e5: PUSH2 0x1b61 000001e8: JUMP 000001e9: JUMPDEST 000001ea: PUSH1 0x07 000001ec: PUSH1 0x20 000001ee: MSTORE 000001ef: PUSH1 0x00 000001f1: SWAP1 000001f2: DUP2 000001f3: MSTORE 000001f4: PUSH1 0x40 000001f6: SWAP1 000001f7: KECCAK256 000001f8: SLOAD 000001f9: PUSH1 0xff 000001fb: AND 000001fc: DUP2 000001fd: JUMP 000001fe: JUMPDEST 000001ff: CALLVALUE 00000200: DUP1 00000201: ISZERO 00000202: PUSH2 0x020a 00000205: JUMPI 00000206: PUSH1 0x00 00000208: DUP1 00000209: REVERT 0000020a: JUMPDEST 0000020b: POP 0000020c: PUSH2 0x014f 0000020f: PUSH2 0x047e 00000212: JUMP 00000213: JUMPDEST 00000214: CALLVALUE 00000215: DUP1 00000216: ISZERO 00000217: PUSH2 0x021f 0000021a: JUMPI 0000021b: PUSH1 0x00 0000021d: DUP1 0000021e: REVERT 0000021f: JUMPDEST 00000220: POP 00000221: PUSH2 0x0249 00000224: PUSH2 0x022e 00000227: CALLDATASIZE 00000228: PUSH1 0x04 0000022a: PUSH2 0x1b61 0000022d: JUMP 0000022e: JUMPDEST 0000022f: PUSH1 0x01 00000231: PUSH1 0x01 00000233: PUSH1 0xa0 00000235: SHL 00000236: SUB 00000237: AND 00000238: PUSH1 0x00 0000023a: SWAP1 0000023b: DUP2 0000023c: MSTORE 0000023d: PUSH1 0x04 0000023f: PUSH1 0x20 00000241: MSTORE 00000242: PUSH1 0x40 00000244: SWAP1 00000245: KECCAK256 00000246: SLOAD 00000247: SWAP1 00000248: JUMP 00000249: JUMPDEST 0000024a: PUSH1 0x40 0000024c: MLOAD 0000024d: SWAP1 0000024e: DUP2 0000024f: MSTORE 00000250: PUSH1 0x20 00000252: ADD 00000253: PUSH2 0x0185 00000256: JUMP 00000257: JUMPDEST 00000258: CALLVALUE 00000259: DUP1 0000025a: ISZERO 0000025b: PUSH2 0x0263 0000025e: JUMPI 0000025f: PUSH1 0x00 00000261: DUP1 00000262: REVERT 00000263: JUMPDEST 00000264: POP 00000265: PUSH2 0x01a9 00000268: PUSH2 0x0272 0000026b: CALLDATASIZE 0000026c: PUSH1 0x04 0000026e: PUSH2 0x1b61 00000271: JUMP 00000272: JUMPDEST 00000273: PUSH1 0x05 00000275: PUSH1 0x20 00000277: MSTORE 00000278: PUSH1 0x00 0000027a: SWAP1 0000027b: DUP2 0000027c: MSTORE 0000027d: PUSH1 0x40 0000027f: SWAP1 00000280: KECCAK256 00000281: SLOAD 00000282: PUSH1 0xff 00000284: AND 00000285: DUP2 00000286: JUMP 00000287: JUMPDEST 00000288: CALLVALUE 00000289: DUP1 0000028a: ISZERO 0000028b: PUSH2 0x0293 0000028e: JUMPI 0000028f: PUSH1 0x00 00000291: DUP1 00000292: REVERT 00000293: JUMPDEST 00000294: POP 00000295: PUSH2 0x014f 00000298: PUSH2 0x04c7 0000029b: JUMP 0000029c: JUMPDEST 0000029d: CALLVALUE 0000029e: DUP1 0000029f: ISZERO 000002a0: PUSH2 0x02a8 000002a3: JUMPI 000002a4: PUSH1 0x00 000002a6: DUP1 000002a7: REVERT 000002a8: JUMPDEST 000002a9: POP 000002aa: PUSH2 0x02b1 000002ad: PUSH2 0x04df 000002b0: JUMP 000002b1: JUMPDEST 000002b2: PUSH1 0x40 000002b4: MLOAD 000002b5: PUSH2 0x0185 000002b8: SWAP8 000002b9: SWAP7 000002ba: SWAP6 000002bb: SWAP5 000002bc: SWAP4 000002bd: SWAP3 000002be: SWAP2 000002bf: SWAP1 000002c0: PUSH2 0x1c08 000002c3: JUMP 000002c4: JUMPDEST 000002c5: CALLVALUE 000002c6: DUP1 000002c7: ISZERO 000002c8: PUSH2 0x02d0 000002cb: JUMPI 000002cc: PUSH1 0x00 000002ce: DUP1 000002cf: REVERT 000002d0: JUMPDEST 000002d1: POP 000002d2: PUSH1 0x00 000002d4: SLOAD 000002d5: PUSH1 0x01 000002d7: PUSH1 0x01 000002d9: PUSH1 0xa0 000002db: SHL 000002dc: SUB 000002dd: AND 000002de: PUSH2 0x0171 000002e1: JUMP 000002e2: JUMPDEST 000002e3: CALLVALUE 000002e4: DUP1 000002e5: ISZERO 000002e6: PUSH2 0x02ee 000002e9: JUMPI 000002ea: PUSH1 0x00 000002ec: DUP1 000002ed: REVERT 000002ee: JUMPDEST 000002ef: POP 000002f0: PUSH2 0x014f 000002f3: PUSH2 0x02fd 000002f6: CALLDATASIZE 000002f7: PUSH1 0x04 000002f9: PUSH2 0x1cda 000002fc: JUMP 000002fd: JUMPDEST 000002fe: PUSH2 0x0525 00000301: JUMP 00000302: JUMPDEST 00000303: CALLVALUE 00000304: DUP1 00000305: ISZERO 00000306: PUSH2 0x030e 00000309: JUMPI 0000030a: PUSH1 0x00 0000030c: DUP1 0000030d: REVERT 0000030e: JUMPDEST 0000030f: POP 00000310: PUSH2 0x0249 00000313: PUSH2 0x031d 00000316: CALLDATASIZE 00000317: PUSH1 0x04 00000319: PUSH2 0x1df4 0000031c: JUMP 0000031d: JUMPDEST 0000031e: PUSH1 0x06 00000320: PUSH1 0x20 00000322: SWAP1 00000323: DUP2 00000324: MSTORE 00000325: PUSH1 0x00 00000327: SWAP3 00000328: DUP4 00000329: MSTORE 0000032a: PUSH1 0x40 0000032c: DUP1 0000032d: DUP5 0000032e: KECCAK256 0000032f: SWAP1 00000330: SWAP2 00000331: MSTORE 00000332: SWAP1 00000333: DUP3 00000334: MSTORE 00000335: SWAP1 00000336: KECCAK256 00000337: SLOAD 00000338: DUP2 00000339: JUMP 0000033a: JUMPDEST 0000033b: CALLVALUE 0000033c: DUP1 0000033d: ISZERO 0000033e: PUSH2 0x0346 00000341: JUMPI 00000342: PUSH1 0x00 00000344: DUP1 00000345: REVERT 00000346: JUMPDEST 00000347: POP 00000348: PUSH2 0x014f 0000034b: PUSH2 0x0355 0000034e: CALLDATASIZE 0000034f: PUSH1 0x04 00000351: PUSH2 0x1e27 00000354: JUMP 00000355: JUMPDEST 00000356: PUSH2 0x065e 00000359: JUMP 0000035a: JUMPDEST 0000035b: CALLVALUE 0000035c: DUP1 0000035d: ISZERO 0000035e: PUSH2 0x0366 00000361: JUMPI 00000362: PUSH1 0x00 00000364: DUP1 00000365: REVERT 00000366: JUMPDEST 00000367: POP 00000368: PUSH2 0x014f 0000036b: PUSH2 0x0375 0000036e: CALLDATASIZE 0000036f: PUSH1 0x04 00000371: PUSH2 0x1b61 00000374: JUMP 00000375: JUMPDEST 00000376: PUSH2 0x0799 00000379: JUMP 0000037a: JUMPDEST 0000037b: CALLVALUE 0000037c: DUP1 0000037d: ISZERO 0000037e: PUSH2 0x0386 00000381: JUMPI 00000382: PUSH1 0x00 00000384: DUP1 00000385: REVERT 00000386: JUMPDEST 00000387: POP 00000388: PUSH1 0x01 0000038a: SLOAD 0000038b: PUSH1 0x01 0000038d: PUSH1 0x01 0000038f: PUSH1 0xa0 00000391: SHL 00000392: SUB 00000393: AND 00000394: PUSH2 0x0171 00000397: JUMP 00000398: JUMPDEST 00000399: CALLVALUE 0000039a: DUP1 0000039b: ISZERO 0000039c: PUSH2 0x03a4 0000039f: JUMPI 000003a0: PUSH1 0x00 000003a2: DUP1 000003a3: REVERT 000003a4: JUMPDEST 000003a5: POP 000003a6: PUSH2 0x014f 000003a9: PUSH2 0x03b3 000003ac: CALLDATASIZE 000003ad: PUSH1 0x04 000003af: PUSH2 0x1e63 000003b2: JUMP 000003b3: JUMPDEST 000003b4: PUSH2 0x084b 000003b7: JUMP 000003b8: JUMPDEST 000003b9: CALLVALUE 000003ba: DUP1 000003bb: ISZERO 000003bc: PUSH2 0x03c4 000003bf: JUMPI 000003c0: PUSH1 0x00 000003c2: DUP1 000003c3: REVERT 000003c4: JUMPDEST 000003c5: POP 000003c6: PUSH2 0x014f 000003c9: PUSH2 0x03d3 000003cc: CALLDATASIZE 000003cd: PUSH1 0x04 000003cf: PUSH2 0x1f3c 000003d2: JUMP 000003d3: JUMPDEST 000003d4: PUSH2 0x0977 000003d7: JUMP 000003d8: JUMPDEST 000003d9: CALLVALUE 000003da: DUP1 000003db: ISZERO 000003dc: PUSH2 0x03e4 000003df: JUMPI 000003e0: PUSH1 0x00 000003e2: DUP1 000003e3: REVERT 000003e4: JUMPDEST 000003e5: POP 000003e6: PUSH2 0x014f 000003e9: PUSH2 0x03f3 000003ec: CALLDATASIZE 000003ed: PUSH1 0x04 000003ef: PUSH2 0x1f3c 000003f2: JUMP 000003f3: JUMPDEST 000003f4: PUSH2 0x0a4b 000003f7: JUMP 000003f8: JUMPDEST 000003f9: CALLVALUE 000003fa: DUP1 000003fb: ISZERO 000003fc: PUSH2 0x0404 000003ff: JUMPI 00000400: PUSH1 0x00 00000402: DUP1 00000403: REVERT 00000404: JUMPDEST 00000405: POP 00000406: PUSH2 0x014f 00000409: PUSH2 0x0413 0000040c: CALLDATASIZE 0000040d: PUSH1 0x04 0000040f: PUSH2 0x1b61 00000412: JUMP 00000413: JUMPDEST 00000414: PUSH2 0x0b17 00000417: JUMP 00000418: JUMPDEST 00000419: CALLVALUE 0000041a: DUP1 0000041b: ISZERO 0000041c: PUSH2 0x0424 0000041f: JUMPI 00000420: PUSH1 0x00 00000422: DUP1 00000423: REVERT 00000424: JUMPDEST 00000425: POP 00000426: PUSH2 0x014f 00000429: PUSH2 0x0433 0000042c: CALLDATASIZE 0000042d: PUSH1 0x04 0000042f: PUSH2 0x1f73 00000432: JUMP 00000433: JUMPDEST 00000434: PUSH2 0x0b88 00000437: JUMP 00000438: JUMPDEST 00000439: PUSH2 0x014f 0000043c: PUSH2 0x0446 0000043f: CALLDATASIZE 00000440: PUSH1 0x04 00000442: PUSH2 0x1b61 00000445: JUMP 00000446: JUMPDEST 00000447: PUSH2 0x0c4e 0000044a: JUMP 0000044b: JUMPDEST 0000044c: PUSH2 0x0453 0000044f: PUSH2 0x0e46 00000452: JUMP 00000453: JUMPDEST 00000454: PUSH2 0x045b 00000457: PUSH2 0x0e73 0000045a: JUMP 0000045b: JUMPDEST 0000045c: PUSH2 0x0463 0000045f: PUSH2 0x0e9d 00000462: JUMP 00000463: JUMPDEST 00000464: JUMP 00000465: JUMPDEST 00000466: PUSH1 0x40 00000468: MLOAD 00000469: PUSH4 0x77aeb0ad 0000046e: PUSH1 0xe0 00000470: SHL 00000471: DUP2 00000472: MSTORE 00000473: PUSH1 0x04 00000475: ADD 00000476: PUSH1 0x40 00000478: MLOAD 00000479: DUP1 0000047a: SWAP2 0000047b: SUB 0000047c: SWAP1 0000047d: REVERT 0000047e: JUMPDEST 0000047f: PUSH1 0x01 00000481: SLOAD 00000482: CALLER 00000483: SWAP1 00000484: PUSH1 0x01 00000486: PUSH1 0x01 00000488: PUSH1 0xa0 0000048a: SHL 0000048b: SUB 0000048c: AND 0000048d: DUP2 0000048e: EQ 0000048f: PUSH2 0x04bb 00000492: JUMPI 00000493: PUSH1 0x40 00000495: MLOAD 00000496: PUSH4 0x118cdaa7 0000049b: PUSH1 0xe0 0000049d: SHL 0000049e: DUP2 0000049f: MSTORE 000004a0: PUSH1 0x01 000004a2: PUSH1 0x01 000004a4: PUSH1 0xa0 000004a6: SHL 000004a7: SUB 000004a8: DUP3 000004a9: AND 000004aa: PUSH1 0x04 000004ac: DUP3 000004ad: ADD 000004ae: MSTORE 000004af: PUSH1 0x24 000004b1: ADD 000004b2: JUMPDEST 000004b3: PUSH1 0x40 000004b5: MLOAD 000004b6: DUP1 000004b7: SWAP2 000004b8: SUB 000004b9: SWAP1 000004ba: REVERT 000004bb: JUMPDEST 000004bc: PUSH2 0x04c4 000004bf: DUP2 000004c0: PUSH2 0x0ef2 000004c3: JUMP 000004c4: JUMPDEST 000004c5: POP 000004c6: JUMP 000004c7: JUMPDEST 000004c8: PUSH2 0x04cf 000004cb: PUSH2 0x0e46 000004ce: JUMP 000004cf: JUMPDEST 000004d0: PUSH2 0x04d7 000004d3: PUSH2 0x0f0b 000004d6: JUMP 000004d7: JUMPDEST 000004d8: PUSH2 0x0463 000004db: PUSH2 0x0f36 000004de: JUMP 000004df: JUMPDEST 000004e0: PUSH1 0x00 000004e2: PUSH1 0x60 000004e4: DUP1 000004e5: PUSH1 0x00 000004e7: DUP1 000004e8: PUSH1 0x00 000004ea: PUSH1 0x60 000004ec: PUSH2 0x04f3 000004ef: PUSH2 0x0f79 000004f2: JUMP 000004f3: JUMPDEST 000004f4: PUSH2 0x04fb 000004f7: PUSH2 0x0fab 000004fa: JUMP 000004fb: JUMPDEST 000004fc: PUSH1 0x40 000004fe: DUP1 000004ff: MLOAD 00000500: PUSH1 0x00 00000502: DUP1 00000503: DUP3 00000504: MSTORE 00000505: PUSH1 0x20 00000507: DUP3 00000508: ADD 00000509: SWAP1 0000050a: SWAP3 0000050b: MSTORE 0000050c: PUSH1 0x0f 0000050e: PUSH1 0xf8 00000510: SHL 00000511: SWAP12 00000512: SWAP4 00000513: SWAP11 00000514: POP 00000515: SWAP2 00000516: SWAP9 00000517: POP 00000518: CHAINID 00000519: SWAP8 0000051a: POP 0000051b: ADDRESS 0000051c: SWAP7 0000051d: POP 0000051e: SWAP5 0000051f: POP 00000520: SWAP3 00000521: POP 00000522: SWAP1 00000523: POP 00000524: JUMP 00000525: JUMPDEST 00000526: PUSH2 0x052d 00000529: PUSH2 0x0e46 0000052c: JUMP 0000052d: JUMPDEST 0000052e: PUSH1 0x00 00000530: PUSH32 0xe08f530a0e71c7f642d765489160fd44eac817278745c067606534c347d9a2ec 00000551: DUP9 00000552: DUP7 00000553: DUP7 00000554: DUP11 00000555: DUP11 00000556: PUSH1 0x40 00000558: MLOAD 00000559: PUSH1 0x20 0000055b: ADD 0000055c: PUSH2 0x0566 0000055f: SWAP3 00000560: SWAP2 00000561: SWAP1 00000562: PUSH2 0x1f9d 00000565: JUMP 00000566: JUMPDEST 00000567: PUSH1 0x40 00000569: MLOAD 0000056a: PUSH1 0x20 0000056c: DUP2 0000056d: DUP4 0000056e: SUB 0000056f: SUB 00000570: DUP2 00000571: MSTORE 00000572: SWAP1 00000573: PUSH1 0x40 00000575: MSTORE 00000576: DUP1 00000577: MLOAD 00000578: SWAP1 00000579: PUSH1 0x20 0000057b: ADD 0000057c: KECCAK256 0000057d: DUP8 0000057e: PUSH2 0x05a4 00000581: DUP15 00000582: PUSH1 0x01 00000584: PUSH1 0x01 00000586: PUSH1 0xa0 00000588: SHL 00000589: SUB 0000058a: AND 0000058b: PUSH1 0x00 0000058d: SWAP1 0000058e: DUP2 0000058f: MSTORE 00000590: PUSH1 0x04 00000592: PUSH1 0x20 00000594: MSTORE 00000595: PUSH1 0x40 00000597: SWAP1 00000598: KECCAK256 00000599: DUP1 0000059a: SLOAD 0000059b: PUSH1 0x01 0000059d: DUP2 0000059e: ADD 0000059f: SWAP1 000005a0: SWAP2 000005a1: SSTORE 000005a2: SWAP1 000005a3: JUMP 000005a4: JUMPDEST 000005a5: PUSH1 0x40 000005a7: DUP1 000005a8: MLOAD 000005a9: PUSH1 0x20 000005ab: DUP2 000005ac: ADD 000005ad: SWAP9 000005ae: SWAP1 000005af: SWAP9 000005b0: MSTORE 000005b1: PUSH1 0x01 000005b3: PUSH1 0x01 000005b5: PUSH1 0xa0 000005b7: SHL 000005b8: SUB 000005b9: SWAP7 000005ba: DUP8 000005bb: AND 000005bc: SWAP1 000005bd: DUP9 000005be: ADD 000005bf: MSTORE 000005c0: SWAP4 000005c1: DUP6 000005c2: AND 000005c3: PUSH1 0x60 000005c5: DUP8 000005c6: ADD 000005c7: MSTORE 000005c8: SWAP4 000005c9: SWAP1 000005ca: SWAP2 000005cb: AND 000005cc: PUSH1 0x80 000005ce: DUP6 000005cf: ADD 000005d0: MSTORE 000005d1: PUSH1 0xa0 000005d3: DUP5 000005d4: ADD 000005d5: MSTORE 000005d6: PUSH1 0xc0 000005d8: DUP4 000005d9: ADD 000005da: SWAP2 000005db: SWAP1 000005dc: SWAP2 000005dd: MSTORE 000005de: PUSH1 0xe0 000005e0: DUP3 000005e1: ADD 000005e2: MSTORE 000005e3: PUSH2 0x0100 000005e6: ADD 000005e7: PUSH1 0x40 000005e9: MLOAD 000005ea: PUSH1 0x20 000005ec: DUP2 000005ed: DUP4 000005ee: SUB 000005ef: SUB 000005f0: DUP2 000005f1: MSTORE 000005f2: SWAP1 000005f3: PUSH1 0x40 000005f5: MSTORE 000005f6: DUP1 000005f7: MLOAD 000005f8: SWAP1 000005f9: PUSH1 0x20 000005fb: ADD 000005fc: KECCAK256 000005fd: SWAP1 000005fe: POP 000005ff: PUSH1 0x00 00000601: PUSH2 0x0609 00000604: DUP3 00000605: PUSH2 0x0fd8 00000608: JUMP 00000609: JUMPDEST 0000060a: SWAP1 0000060b: POP 0000060c: PUSH2 0x0616 0000060f: DUP10 00000610: DUP3 00000611: DUP6 00000612: PUSH2 0x100b 00000615: JUMP 00000616: JUMPDEST 00000617: PUSH2 0x0633 0000061a: JUMPI 0000061b: PUSH1 0x40 0000061d: MLOAD 0000061e: PUSH4 0x37e8456b 00000623: PUSH1 0xe0 00000625: SHL 00000626: DUP2 00000627: MSTORE 00000628: PUSH1 0x04 0000062a: ADD 0000062b: PUSH1 0x40 0000062d: MLOAD 0000062e: DUP1 0000062f: SWAP2 00000630: SUB 00000631: SWAP1 00000632: REVERT 00000633: JUMPDEST 00000634: POP 00000635: POP 00000636: PUSH1 0x00 00000638: PUSH2 0x0644 0000063b: DUP9 0000063c: DUP9 0000063d: DUP9 0000063e: DUP7 0000063f: DUP10 00000640: PUSH2 0x106f 00000643: JUMP 00000644: JUMPDEST 00000645: SWAP1 00000646: POP 00000647: PUSH2 0x0654 0000064a: DUP9 0000064b: DUP6 0000064c: DUP8 0000064d: DUP11 0000064e: DUP11 0000064f: DUP7 00000650: PUSH2 0x1218 00000653: JUMP 00000654: JUMPDEST 00000655: POP 00000656: POP 00000657: POP 00000658: POP 00000659: POP 0000065a: POP 0000065b: POP 0000065c: POP 0000065d: JUMP 0000065e: JUMPDEST 0000065f: PUSH2 0x0666 00000662: PUSH2 0x0f0b 00000665: JUMP 00000666: JUMPDEST 00000667: DUP1 00000668: PUSH1 0x00 0000066a: SUB 0000066b: PUSH2 0x0687 0000066e: JUMPI 0000066f: PUSH1 0x40 00000671: MLOAD 00000672: PUSH4 0x18bb7589 00000677: PUSH1 0xe1 00000679: SHL 0000067a: DUP2 0000067b: MSTORE 0000067c: PUSH1 0x04 0000067e: ADD 0000067f: PUSH1 0x40 00000681: MLOAD 00000682: DUP1 00000683: SWAP2 00000684: SUB 00000685: SWAP1 00000686: REVERT 00000687: JUMPDEST 00000688: PUSH1 0x01 0000068a: PUSH1 0x01 0000068c: PUSH1 0xa0 0000068e: SHL 0000068f: SUB 00000690: DUP3 00000691: AND 00000692: PUSH2 0x06ad 00000695: JUMPI 00000696: PUSH1 0x40 00000698: MLOAD 00000699: PUSH3 0xbbe085 0000069d: PUSH1 0xe3 0000069f: SHL 000006a0: DUP2 000006a1: MSTORE 000006a2: PUSH1 0x04 000006a4: ADD 000006a5: PUSH1 0x40 000006a7: MLOAD 000006a8: DUP1 000006a9: SWAP2 000006aa: SUB 000006ab: SWAP1 000006ac: REVERT 000006ad: JUMPDEST 000006ae: PUSH1 0x01 000006b0: PUSH1 0x01 000006b2: PUSH1 0xa0 000006b4: SHL 000006b5: SUB 000006b6: DUP4 000006b7: AND 000006b8: PUSH1 0x00 000006ba: SWAP1 000006bb: DUP2 000006bc: MSTORE 000006bd: PUSH1 0x05 000006bf: PUSH1 0x20 000006c1: MSTORE 000006c2: PUSH1 0x40 000006c4: SWAP1 000006c5: KECCAK256 000006c6: SLOAD 000006c7: PUSH1 0xff 000006c9: AND 000006ca: PUSH2 0x06e6 000006cd: JUMPI 000006ce: PUSH1 0x40 000006d0: MLOAD 000006d1: PUSH4 0x072b889f 000006d6: PUSH1 0xe1 000006d8: SHL 000006d9: DUP2 000006da: MSTORE 000006db: PUSH1 0x04 000006dd: ADD 000006de: PUSH1 0x40 000006e0: MLOAD 000006e1: DUP1 000006e2: SWAP2 000006e3: SUB 000006e4: SWAP1 000006e5: REVERT 000006e6: JUMPDEST 000006e7: PUSH1 0x01 000006e9: PUSH1 0x01 000006eb: PUSH1 0xa0 000006ed: SHL 000006ee: SUB 000006ef: DUP1 000006f0: DUP5 000006f1: AND 000006f2: PUSH1 0x00 000006f4: SWAP1 000006f5: DUP2 000006f6: MSTORE 000006f7: PUSH1 0x06 000006f9: PUSH1 0x20 000006fb: SWAP1 000006fc: DUP2 000006fd: MSTORE 000006fe: PUSH1 0x40 00000700: DUP1 00000701: DUP4 00000702: KECCAK256 00000703: SWAP4 00000704: DUP7 00000705: AND 00000706: DUP4 00000707: MSTORE 00000708: SWAP3 00000709: SWAP1 0000070a: MSTORE 0000070b: SWAP1 0000070c: DUP2 0000070d: KECCAK256 0000070e: DUP1 0000070f: SLOAD 00000710: DUP4 00000711: SWAP3 00000712: SWAP1 00000713: PUSH2 0x071d 00000716: SWAP1 00000717: DUP5 00000718: SWAP1 00000719: PUSH2 0x1ff3 0000071c: JUMP 0000071d: JUMPDEST 0000071e: SWAP3 0000071f: POP 00000720: POP 00000721: DUP2 00000722: SWAP1 00000723: SSTORE 00000724: POP 00000725: DUP3 00000726: PUSH1 0x01 00000728: PUSH1 0x01 0000072a: PUSH1 0xa0 0000072c: SHL 0000072d: SUB 0000072e: AND 0000072f: DUP3 00000730: PUSH1 0x01 00000732: PUSH1 0x01 00000734: PUSH1 0xa0 00000736: SHL 00000737: SUB 00000738: AND 00000739: PUSH1 0x08 0000073b: PUSH1 0x00 0000073d: DUP2 0000073e: SLOAD 0000073f: PUSH2 0x0747 00000742: SWAP1 00000743: PUSH2 0x2006 00000746: JUMP 00000747: JUMPDEST 00000748: SWAP2 00000749: DUP3 0000074a: SWAP1 0000074b: SSTORE 0000074c: POP 0000074d: PUSH1 0x40 0000074f: MLOAD 00000750: DUP5 00000751: DUP2 00000752: MSTORE 00000753: PUSH32 0x2c0f148b435140de488c1b34647f1511c646f7077e87007bacf22ef9977a16d8 00000774: SWAP1 00000775: PUSH1 0x20 00000777: ADD 00000778: PUSH1 0x40 0000077a: MLOAD 0000077b: DUP1 0000077c: SWAP2 0000077d: SUB 0000077e: SWAP1 0000077f: LOG4 00000780: PUSH2 0x0794 00000783: PUSH1 0x01 00000785: PUSH1 0x01 00000787: PUSH1 0xa0 00000789: SHL 0000078a: SUB 0000078b: DUP5 0000078c: AND 0000078d: CALLER 0000078e: ADDRESS 0000078f: DUP5 00000790: PUSH2 0x149e 00000793: JUMP 00000794: JUMPDEST 00000795: POP 00000796: POP 00000797: POP 00000798: JUMP 00000799: JUMPDEST 0000079a: PUSH2 0x07a1 0000079d: PUSH2 0x0e46 000007a0: JUMP 000007a1: JUMPDEST 000007a2: PUSH1 0x01 000007a4: PUSH1 0x01 000007a6: PUSH1 0xa0 000007a8: SHL 000007a9: SUB 000007aa: DUP2 000007ab: AND 000007ac: PUSH2 0x07c8 000007af: JUMPI 000007b0: PUSH1 0x40 000007b2: MLOAD 000007b3: PUSH4 0x67db0845 000007b8: PUSH1 0xe1 000007ba: SHL 000007bb: DUP2 000007bc: MSTORE 000007bd: PUSH1 0x04 000007bf: ADD 000007c0: PUSH1 0x40 000007c2: MLOAD 000007c3: DUP1 000007c4: SWAP2 000007c5: SUB 000007c6: SWAP1 000007c7: REVERT 000007c8: JUMPDEST 000007c9: PUSH1 0x09 000007cb: SLOAD 000007cc: PUSH1 0x01 000007ce: PUSH1 0x01 000007d0: PUSH1 0xa0 000007d2: SHL 000007d3: SUB 000007d4: SWAP1 000007d5: DUP2 000007d6: AND 000007d7: SWAP1 000007d8: DUP3 000007d9: AND 000007da: SUB 000007db: PUSH2 0x07f7 000007de: JUMPI 000007df: PUSH1 0x40 000007e1: MLOAD 000007e2: PUSH4 0xc0af9fdf 000007e7: PUSH1 0xe0 000007e9: SHL 000007ea: DUP2 000007eb: MSTORE 000007ec: PUSH1 0x04 000007ee: ADD 000007ef: PUSH1 0x40 000007f1: MLOAD 000007f2: DUP1 000007f3: SWAP2 000007f4: SUB 000007f5: SWAP1 000007f6: REVERT 000007f7: JUMPDEST 000007f8: PUSH1 0x09 000007fa: DUP1 000007fb: SLOAD 000007fc: PUSH1 0x01 000007fe: PUSH1 0x01 00000800: PUSH1 0xa0 00000802: SHL 00000803: SUB 00000804: NOT 00000805: AND 00000806: PUSH1 0x01 00000808: PUSH1 0x01 0000080a: PUSH1 0xa0 0000080c: SHL 0000080d: SUB 0000080e: DUP4 0000080f: AND 00000810: SWAP1 00000811: DUP2 00000812: OR 00000813: SWAP1 00000814: SWAP2 00000815: SSTORE 00000816: PUSH1 0x40 00000818: MLOAD 00000819: SWAP1 0000081a: DUP2 0000081b: MSTORE 0000081c: PUSH32 0x5719a5656c5cfdaafa148ecf366fd3b0a7fae06449ce2a46225977fb7417e29d 0000083d: SWAP1 0000083e: PUSH1 0x20 00000840: ADD 00000841: PUSH1 0x40 00000843: MLOAD 00000844: DUP1 00000845: SWAP2 00000846: SUB 00000847: SWAP1 00000848: LOG1 00000849: POP 0000084a: JUMP 0000084b: JUMPDEST 0000084c: PUSH1 0x00 0000084e: PUSH2 0x085a 00000851: CALLER 00000852: DUP10 00000853: DUP10 00000854: DUP8 00000855: DUP11 00000856: PUSH2 0x106f 00000859: JUMP 0000085a: JUMPDEST 0000085b: PUSH1 0x40 0000085d: MLOAD 0000085e: PUSH12 0xffffffffffffffffffffffff 0000086b: NOT 0000086c: PUSH1 0x60 0000086e: DUP10 0000086f: DUP2 00000870: SHL 00000871: DUP3 00000872: AND 00000873: PUSH1 0x20 00000875: DUP5 00000876: ADD 00000877: MSTORE 00000878: PUSH1 0x34 0000087a: DUP4 0000087b: ADD 0000087c: DUP9 0000087d: SWAP1 0000087e: MSTORE 0000087f: ADDRESS 00000880: SWAP1 00000881: SHL 00000882: AND 00000883: PUSH1 0x54 00000885: DUP3 00000886: ADD 00000887: MSTORE 00000888: CHAINID 00000889: PUSH1 0x68 0000088b: DUP3 0000088c: ADD 0000088d: MSTORE 0000088e: SWAP1 0000088f: SWAP2 00000890: POP 00000891: PUSH1 0x00 00000893: SWAP1 00000894: PUSH1 0x88 00000896: ADD 00000897: PUSH1 0x40 00000899: DUP1 0000089a: MLOAD 0000089b: PUSH1 0x1f 0000089d: NOT 0000089e: DUP2 0000089f: DUP5 000008a0: SUB 000008a1: ADD 000008a2: DUP2 000008a3: MSTORE 000008a4: SWAP1 000008a5: DUP3 000008a6: SWAP1 000008a7: MSTORE 000008a8: DUP1 000008a9: MLOAD 000008aa: PUSH1 0x20 000008ac: SWAP2 000008ad: DUP3 000008ae: ADD 000008af: KECCAK256 000008b0: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 000008d1: SWAP2 000008d2: DUP4 000008d3: ADD 000008d4: SWAP2 000008d5: SWAP1 000008d6: SWAP2 000008d7: MSTORE 000008d8: PUSH1 0x3c 000008da: DUP3 000008db: ADD 000008dc: MSTORE 000008dd: PUSH1 0x5c 000008df: ADD 000008e0: PUSH1 0x40 000008e2: DUP1 000008e3: MLOAD 000008e4: PUSH1 0x1f 000008e6: NOT 000008e7: DUP2 000008e8: DUP5 000008e9: SUB 000008ea: ADD 000008eb: DUP2 000008ec: MSTORE 000008ed: DUP3 000008ee: DUP3 000008ef: MSTORE 000008f0: DUP1 000008f1: MLOAD 000008f2: PUSH1 0x20 000008f4: SWAP2 000008f5: DUP3 000008f6: ADD 000008f7: KECCAK256 000008f8: PUSH1 0x09 000008fa: SLOAD 000008fb: PUSH1 0x1f 000008fd: DUP9 000008fe: ADD 000008ff: DUP4 00000900: SWAP1 00000901: DIV 00000902: DUP4 00000903: MUL 00000904: DUP6 00000905: ADD 00000906: DUP4 00000907: ADD 00000908: SWAP1 00000909: SWAP4 0000090a: MSTORE 0000090b: DUP7 0000090c: DUP5 0000090d: MSTORE 0000090e: SWAP4 0000090f: POP 00000910: PUSH2 0x0941 00000913: SWAP3 00000914: PUSH1 0x01 00000916: PUSH1 0x01 00000918: PUSH1 0xa0 0000091a: SHL 0000091b: SUB 0000091c: SWAP1 0000091d: SWAP3 0000091e: AND 0000091f: SWAP2 00000920: DUP5 00000921: SWAP2 00000922: DUP9 00000923: SWAP1 00000924: DUP9 00000925: SWAP1 00000926: DUP2 00000927: SWAP1 00000928: DUP5 00000929: ADD 0000092a: DUP4 0000092b: DUP3 0000092c: DUP1 0000092d: DUP3 0000092e: DUP5 0000092f: CALLDATACOPY 00000930: PUSH1 0x00 00000932: SWAP3 00000933: ADD 00000934: SWAP2 00000935: SWAP1 00000936: SWAP2 00000937: MSTORE 00000938: POP 00000939: PUSH2 0x100b 0000093c: SWAP3 0000093d: POP 0000093e: POP 0000093f: POP 00000940: JUMP 00000941: JUMPDEST 00000942: PUSH2 0x095e 00000945: JUMPI 00000946: PUSH1 0x40 00000948: MLOAD 00000949: PUSH4 0x37e8456b 0000094e: PUSH1 0xe0 00000950: SHL 00000951: DUP2 00000952: MSTORE 00000953: PUSH1 0x04 00000955: ADD 00000956: PUSH1 0x40 00000958: MLOAD 00000959: DUP1 0000095a: SWAP2 0000095b: SUB 0000095c: SWAP1 0000095d: REVERT 0000095e: JUMPDEST 0000095f: PUSH2 0x096c 00000962: CALLER 00000963: DUP8 00000964: DUP10 00000965: DUP13 00000966: DUP13 00000967: DUP8 00000968: PUSH2 0x1218 0000096b: JUMP 0000096c: JUMPDEST 0000096d: POP 0000096e: POP 0000096f: POP 00000970: POP 00000971: POP 00000972: POP 00000973: POP 00000974: POP 00000975: POP 00000976: JUMP 00000977: JUMPDEST 00000978: PUSH2 0x097f 0000097b: PUSH2 0x0e46 0000097e: JUMP 0000097f: JUMPDEST 00000980: PUSH1 0x01 00000982: PUSH1 0x01 00000984: PUSH1 0xa0 00000986: SHL 00000987: SUB 00000988: DUP3 00000989: AND 0000098a: PUSH2 0x09a6 0000098d: JUMPI 0000098e: PUSH1 0x40 00000990: MLOAD 00000991: PUSH4 0x5f5d3399 00000996: PUSH1 0xe0 00000998: SHL 00000999: DUP2 0000099a: MSTORE 0000099b: PUSH1 0x04 0000099d: ADD 0000099e: PUSH1 0x40 000009a0: MLOAD 000009a1: DUP1 000009a2: SWAP2 000009a3: SUB 000009a4: SWAP1 000009a5: REVERT 000009a6: JUMPDEST 000009a7: PUSH1 0x01 000009a9: PUSH1 0x01 000009ab: PUSH1 0xa0 000009ad: SHL 000009ae: SUB 000009af: DUP3 000009b0: AND 000009b1: PUSH1 0x00 000009b3: SWAP1 000009b4: DUP2 000009b5: MSTORE 000009b6: PUSH1 0x05 000009b8: PUSH1 0x20 000009ba: MSTORE 000009bb: PUSH1 0x40 000009bd: SWAP1 000009be: KECCAK256 000009bf: SLOAD 000009c0: DUP2 000009c1: ISZERO 000009c2: ISZERO 000009c3: PUSH1 0xff 000009c5: SWAP1 000009c6: SWAP2 000009c7: AND 000009c8: ISZERO 000009c9: ISZERO 000009ca: SUB 000009cb: PUSH2 0x09e7 000009ce: JUMPI 000009cf: PUSH1 0x40 000009d1: MLOAD 000009d2: PUSH4 0x7565bf8f 000009d7: PUSH1 0xe1 000009d9: SHL 000009da: DUP2 000009db: MSTORE 000009dc: PUSH1 0x04 000009de: ADD 000009df: PUSH1 0x40 000009e1: MLOAD 000009e2: DUP1 000009e3: SWAP2 000009e4: SUB 000009e5: SWAP1 000009e6: REVERT 000009e7: JUMPDEST 000009e8: PUSH1 0x01 000009ea: PUSH1 0x01 000009ec: PUSH1 0xa0 000009ee: SHL 000009ef: SUB 000009f0: DUP3 000009f1: AND 000009f2: PUSH1 0x00 000009f4: DUP2 000009f5: DUP2 000009f6: MSTORE 000009f7: PUSH1 0x05 000009f9: PUSH1 0x20 000009fb: SWAP1 000009fc: DUP2 000009fd: MSTORE 000009fe: PUSH1 0x40 00000a00: SWAP2 00000a01: DUP3 00000a02: SWAP1 00000a03: KECCAK256 00000a04: DUP1 00000a05: SLOAD 00000a06: PUSH1 0xff 00000a08: NOT 00000a09: AND 00000a0a: DUP6 00000a0b: ISZERO 00000a0c: ISZERO 00000a0d: SWAP1 00000a0e: DUP2 00000a0f: OR 00000a10: SWAP1 00000a11: SWAP2 00000a12: SSTORE 00000a13: DUP3 00000a14: MLOAD 00000a15: SWAP4 00000a16: DUP5 00000a17: MSTORE 00000a18: SWAP1 00000a19: DUP4 00000a1a: ADD 00000a1b: MSTORE 00000a1c: PUSH32 0x303d37f32762627f23f474bb09535b3c1c7cb4f0f75c8960c42512b046ee24a8 00000a3d: SWAP2 00000a3e: ADD 00000a3f: JUMPDEST 00000a40: PUSH1 0x40 00000a42: MLOAD 00000a43: DUP1 00000a44: SWAP2 00000a45: SUB 00000a46: SWAP1 00000a47: LOG1 00000a48: POP 00000a49: POP 00000a4a: JUMP 00000a4b: JUMPDEST 00000a4c: PUSH2 0x0a53 00000a4f: PUSH2 0x0e46 00000a52: JUMP 00000a53: JUMPDEST 00000a54: PUSH1 0x01 00000a56: PUSH1 0x01 00000a58: PUSH1 0xa0 00000a5a: SHL 00000a5b: SUB 00000a5c: DUP3 00000a5d: AND 00000a5e: PUSH2 0x0a7a 00000a61: JUMPI 00000a62: PUSH1 0x40 00000a64: MLOAD 00000a65: PUSH4 0x1a86f045 00000a6a: PUSH1 0xe0 00000a6c: SHL 00000a6d: DUP2 00000a6e: MSTORE 00000a6f: PUSH1 0x04 00000a71: ADD 00000a72: PUSH1 0x40 00000a74: MLOAD 00000a75: DUP1 00000a76: SWAP2 00000a77: SUB 00000a78: SWAP1 00000a79: REVERT 00000a7a: JUMPDEST 00000a7b: PUSH1 0x01 00000a7d: PUSH1 0x01 00000a7f: PUSH1 0xa0 00000a81: SHL 00000a82: SUB 00000a83: DUP3 00000a84: AND 00000a85: PUSH1 0x00 00000a87: SWAP1 00000a88: DUP2 00000a89: MSTORE 00000a8a: PUSH1 0x07 00000a8c: PUSH1 0x20 00000a8e: MSTORE 00000a8f: PUSH1 0x40 00000a91: SWAP1 00000a92: KECCAK256 00000a93: SLOAD 00000a94: DUP2 00000a95: ISZERO 00000a96: ISZERO 00000a97: PUSH1 0xff 00000a99: SWAP1 00000a9a: SWAP2 00000a9b: AND 00000a9c: ISZERO 00000a9d: ISZERO 00000a9e: SUB 00000a9f: PUSH2 0x0abb 00000aa2: JUMPI 00000aa3: PUSH1 0x40 00000aa5: MLOAD 00000aa6: PUSH4 0x1e5a9769 00000aab: PUSH1 0xe3 00000aad: SHL 00000aae: DUP2 00000aaf: MSTORE 00000ab0: PUSH1 0x04 00000ab2: ADD 00000ab3: PUSH1 0x40 00000ab5: MLOAD 00000ab6: DUP1 00000ab7: SWAP2 00000ab8: SUB 00000ab9: SWAP1 00000aba: REVERT 00000abb: JUMPDEST 00000abc: PUSH1 0x01 00000abe: PUSH1 0x01 00000ac0: PUSH1 0xa0 00000ac2: SHL 00000ac3: SUB 00000ac4: DUP3 00000ac5: AND 00000ac6: PUSH1 0x00 00000ac8: DUP2 00000ac9: DUP2 00000aca: MSTORE 00000acb: PUSH1 0x07 00000acd: PUSH1 0x20 00000acf: SWAP1 00000ad0: DUP2 00000ad1: MSTORE 00000ad2: PUSH1 0x40 00000ad4: SWAP2 00000ad5: DUP3 00000ad6: SWAP1 00000ad7: KECCAK256 00000ad8: DUP1 00000ad9: SLOAD 00000ada: PUSH1 0xff 00000adc: NOT 00000add: AND 00000ade: DUP6 00000adf: ISZERO 00000ae0: ISZERO 00000ae1: SWAP1 00000ae2: DUP2 00000ae3: OR 00000ae4: SWAP1 00000ae5: SWAP2 00000ae6: SSTORE 00000ae7: DUP3 00000ae8: MLOAD 00000ae9: SWAP4 00000aea: DUP5 00000aeb: MSTORE 00000aec: SWAP1 00000aed: DUP4 00000aee: ADD 00000aef: MSTORE 00000af0: PUSH32 0x939ba97d9885a19f5539df8bc7d0698b79b1361793009861943fdd9806048033 00000b11: SWAP2 00000b12: ADD 00000b13: PUSH2 0x0a3f 00000b16: JUMP 00000b17: JUMPDEST 00000b18: PUSH2 0x0b1f 00000b1b: PUSH2 0x0e46 00000b1e: JUMP 00000b1f: JUMPDEST 00000b20: PUSH1 0x01 00000b22: DUP1 00000b23: SLOAD 00000b24: PUSH1 0x01 00000b26: PUSH1 0x01 00000b28: PUSH1 0xa0 00000b2a: SHL 00000b2b: SUB 00000b2c: DUP4 00000b2d: AND 00000b2e: PUSH1 0x01 00000b30: PUSH1 0x01 00000b32: PUSH1 0xa0 00000b34: SHL 00000b35: SUB 00000b36: NOT 00000b37: SWAP1 00000b38: SWAP2 00000b39: AND 00000b3a: DUP2 00000b3b: OR 00000b3c: SWAP1 00000b3d: SWAP2 00000b3e: SSTORE 00000b3f: PUSH2 0x0b50 00000b42: PUSH1 0x00 00000b44: SLOAD 00000b45: PUSH1 0x01 00000b47: PUSH1 0x01 00000b49: PUSH1 0xa0 00000b4b: SHL 00000b4c: SUB 00000b4d: AND 00000b4e: SWAP1 00000b4f: JUMP 00000b50: JUMPDEST 00000b51: PUSH1 0x01 00000b53: PUSH1 0x01 00000b55: PUSH1 0xa0 00000b57: SHL 00000b58: SUB 00000b59: AND 00000b5a: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700 00000b7b: PUSH1 0x40 00000b7d: MLOAD 00000b7e: PUSH1 0x40 00000b80: MLOAD 00000b81: DUP1 00000b82: SWAP2 00000b83: SUB 00000b84: SWAP1 00000b85: LOG3 00000b86: POP 00000b87: JUMP 00000b88: JUMPDEST 00000b89: DUP1 00000b8a: PUSH1 0x00 00000b8c: SUB 00000b8d: PUSH2 0x0ba9 00000b90: JUMPI 00000b91: PUSH1 0x40 00000b93: MLOAD 00000b94: PUSH4 0xb8fc0f3b 00000b99: PUSH1 0xe0 00000b9b: SHL 00000b9c: DUP2 00000b9d: MSTORE 00000b9e: PUSH1 0x04 00000ba0: ADD 00000ba1: PUSH1 0x40 00000ba3: MLOAD 00000ba4: DUP1 00000ba5: SWAP2 00000ba6: SUB 00000ba7: SWAP1 00000ba8: REVERT 00000ba9: JUMPDEST 00000baa: PUSH1 0x01 00000bac: PUSH1 0x01 00000bae: PUSH1 0xa0 00000bb0: SHL 00000bb1: SUB 00000bb2: DUP3 00000bb3: AND 00000bb4: PUSH1 0x00 00000bb6: SWAP1 00000bb7: DUP2 00000bb8: MSTORE 00000bb9: PUSH1 0x06 00000bbb: PUSH1 0x20 00000bbd: SWAP1 00000bbe: DUP2 00000bbf: MSTORE 00000bc0: PUSH1 0x40 00000bc2: DUP1 00000bc3: DUP4 00000bc4: KECCAK256 00000bc5: CALLER 00000bc6: DUP5 00000bc7: MSTORE 00000bc8: SWAP1 00000bc9: SWAP2 00000bca: MSTORE 00000bcb: DUP2 00000bcc: KECCAK256 00000bcd: DUP1 00000bce: SLOAD 00000bcf: DUP4 00000bd0: SWAP3 00000bd1: SWAP1 00000bd2: PUSH2 0x0bdc 00000bd5: SWAP1 00000bd6: DUP5 00000bd7: SWAP1 00000bd8: PUSH2 0x201f 00000bdb: JUMP 00000bdc: JUMPDEST 00000bdd: SWAP1 00000bde: SWAP2 00000bdf: SSTORE 00000be0: POP 00000be1: POP 00000be2: PUSH1 0x08 00000be4: DUP1 00000be5: SLOAD 00000be6: PUSH1 0x01 00000be8: PUSH1 0x01 00000bea: PUSH1 0xa0 00000bec: SHL 00000bed: SUB 00000bee: DUP5 00000bef: AND 00000bf0: SWAP2 00000bf1: CALLER 00000bf2: SWAP2 00000bf3: PUSH1 0x00 00000bf5: SWAP1 00000bf6: PUSH2 0x0bfe 00000bf9: SWAP1 00000bfa: PUSH2 0x2006 00000bfd: JUMP 00000bfe: JUMPDEST 00000bff: SWAP2 00000c00: DUP3 00000c01: SWAP1 00000c02: SSTORE 00000c03: POP 00000c04: PUSH1 0x40 00000c06: MLOAD 00000c07: DUP5 00000c08: DUP2 00000c09: MSTORE 00000c0a: PUSH32 0xfeb2000dca3e617cd6f3a8bbb63014bb54a124aac6ccbf73ee7229b4cd01f120 00000c2b: SWAP1 00000c2c: PUSH1 0x20 00000c2e: ADD 00000c2f: PUSH1 0x40 00000c31: MLOAD 00000c32: DUP1 00000c33: SWAP2 00000c34: SUB 00000c35: SWAP1 00000c36: LOG4 00000c37: PUSH2 0x0c4a 00000c3a: PUSH1 0x01 00000c3c: PUSH1 0x01 00000c3e: PUSH1 0xa0 00000c40: SHL 00000c41: SUB 00000c42: DUP4 00000c43: AND 00000c44: CALLER 00000c45: DUP4 00000c46: PUSH2 0x150b 00000c49: JUMP 00000c4a: JUMPDEST 00000c4b: POP 00000c4c: POP 00000c4d: JUMP 00000c4e: JUMPDEST 00000c4f: PUSH2 0x0c56 00000c52: PUSH2 0x0f0b 00000c55: JUMP 00000c56: JUMPDEST 00000c57: CALLVALUE 00000c58: PUSH1 0x00 00000c5a: SUB 00000c5b: PUSH2 0x0c77 00000c5e: JUMPI 00000c5f: PUSH1 0x40 00000c61: MLOAD 00000c62: PUSH4 0x18bb7589 00000c67: PUSH1 0xe1 00000c69: SHL 00000c6a: DUP2 00000c6b: MSTORE 00000c6c: PUSH1 0x04 00000c6e: ADD 00000c6f: PUSH1 0x40 00000c71: MLOAD 00000c72: DUP1 00000c73: SWAP2 00000c74: SUB 00000c75: SWAP1 00000c76: REVERT 00000c77: JUMPDEST 00000c78: PUSH1 0x01 00000c7a: PUSH1 0x01 00000c7c: PUSH1 0xa0 00000c7e: SHL 00000c7f: SUB 00000c80: DUP2 00000c81: AND 00000c82: PUSH2 0x0c9d 00000c85: JUMPI 00000c86: PUSH1 0x40 00000c88: MLOAD 00000c89: PUSH3 0xbbe085 00000c8d: PUSH1 0xe3 00000c8f: SHL 00000c90: DUP2 00000c91: MSTORE 00000c92: PUSH1 0x04 00000c94: ADD 00000c95: PUSH1 0x40 00000c97: MLOAD 00000c98: DUP1 00000c99: SWAP2 00000c9a: SUB 00000c9b: SWAP1 00000c9c: REVERT 00000c9d: JUMPDEST 00000c9e: PUSH1 0x01 00000ca0: PUSH1 0x01 00000ca2: PUSH1 0xa0 00000ca4: SHL 00000ca5: SUB 00000ca6: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000cc7: AND 00000cc8: PUSH1 0x00 00000cca: SWAP1 00000ccb: DUP2 00000ccc: MSTORE 00000ccd: PUSH1 0x05 00000ccf: PUSH1 0x20 00000cd1: MSTORE 00000cd2: PUSH1 0x40 00000cd4: SWAP1 00000cd5: KECCAK256 00000cd6: SLOAD 00000cd7: PUSH1 0xff 00000cd9: AND 00000cda: PUSH2 0x0cf6 00000cdd: JUMPI 00000cde: PUSH1 0x40 00000ce0: MLOAD 00000ce1: PUSH4 0x072b889f 00000ce6: PUSH1 0xe1 00000ce8: SHL 00000ce9: DUP2 00000cea: MSTORE 00000ceb: PUSH1 0x04 00000ced: ADD 00000cee: PUSH1 0x40 00000cf0: MLOAD 00000cf1: DUP1 00000cf2: SWAP2 00000cf3: SUB 00000cf4: SWAP1 00000cf5: REVERT 00000cf6: JUMPDEST 00000cf7: PUSH1 0x01 00000cf9: PUSH1 0x01 00000cfb: PUSH1 0xa0 00000cfd: SHL 00000cfe: SUB 00000cff: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000d20: DUP2 00000d21: AND 00000d22: PUSH1 0x00 00000d24: SWAP1 00000d25: DUP2 00000d26: MSTORE 00000d27: PUSH1 0x06 00000d29: PUSH1 0x20 00000d2b: SWAP1 00000d2c: DUP2 00000d2d: MSTORE 00000d2e: PUSH1 0x40 00000d30: DUP1 00000d31: DUP4 00000d32: KECCAK256 00000d33: SWAP4 00000d34: DUP6 00000d35: AND 00000d36: DUP4 00000d37: MSTORE 00000d38: SWAP3 00000d39: SWAP1 00000d3a: MSTORE 00000d3b: SWAP1 00000d3c: DUP2 00000d3d: KECCAK256 00000d3e: DUP1 00000d3f: SLOAD 00000d40: CALLVALUE 00000d41: SWAP3 00000d42: SWAP1 00000d43: PUSH2 0x0d4d 00000d46: SWAP1 00000d47: DUP5 00000d48: SWAP1 00000d49: PUSH2 0x1ff3 00000d4c: JUMP 00000d4d: JUMPDEST 00000d4e: SWAP3 00000d4f: POP 00000d50: POP 00000d51: DUP2 00000d52: SWAP1 00000d53: SSTORE 00000d54: POP 00000d55: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000d76: PUSH1 0x01 00000d78: PUSH1 0x01 00000d7a: PUSH1 0xa0 00000d7c: SHL 00000d7d: SUB 00000d7e: AND 00000d7f: DUP2 00000d80: PUSH1 0x01 00000d82: PUSH1 0x01 00000d84: PUSH1 0xa0 00000d86: SHL 00000d87: SUB 00000d88: AND 00000d89: PUSH1 0x08 00000d8b: PUSH1 0x00 00000d8d: DUP2 00000d8e: SLOAD 00000d8f: PUSH2 0x0d97 00000d92: SWAP1 00000d93: PUSH2 0x2006 00000d96: JUMP 00000d97: JUMPDEST 00000d98: SWAP2 00000d99: DUP3 00000d9a: SWAP1 00000d9b: SSTORE 00000d9c: POP 00000d9d: PUSH1 0x40 00000d9f: MLOAD 00000da0: CALLVALUE 00000da1: DUP2 00000da2: MSTORE 00000da3: PUSH32 0x2c0f148b435140de488c1b34647f1511c646f7077e87007bacf22ef9977a16d8 00000dc4: SWAP1 00000dc5: PUSH1 0x20 00000dc7: ADD 00000dc8: PUSH1 0x40 00000dca: MLOAD 00000dcb: DUP1 00000dcc: SWAP2 00000dcd: SUB 00000dce: SWAP1 00000dcf: LOG4 00000dd0: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00000df1: PUSH1 0x01 00000df3: PUSH1 0x01 00000df5: PUSH1 0xa0 00000df7: SHL 00000df8: SUB 00000df9: AND 00000dfa: PUSH4 0xd0e30db0 00000dff: CALLVALUE 00000e00: PUSH1 0x40 00000e02: MLOAD 00000e03: DUP3 00000e04: PUSH4 0xffffffff 00000e09: AND 00000e0a: PUSH1 0xe0 00000e0c: SHL 00000e0d: DUP2 00000e0e: MSTORE 00000e0f: PUSH1 0x04 00000e11: ADD 00000e12: PUSH1 0x00 00000e14: PUSH1 0x40 00000e16: MLOAD 00000e17: DUP1 00000e18: DUP4 00000e19: SUB 00000e1a: DUP2 00000e1b: DUP6 00000e1c: DUP9 00000e1d: DUP1 00000e1e: EXTCODESIZE 00000e1f: ISZERO 00000e20: DUP1 00000e21: ISZERO 00000e22: PUSH2 0x0e2a 00000e25: JUMPI 00000e26: PUSH1 0x00 00000e28: DUP1 00000e29: REVERT 00000e2a: JUMPDEST 00000e2b: POP 00000e2c: GAS 00000e2d: CALL 00000e2e: ISZERO 00000e2f: DUP1 00000e30: ISZERO 00000e31: PUSH2 0x0e3e 00000e34: JUMPI 00000e35: RETURNDATASIZE 00000e36: PUSH1 0x00 00000e38: DUP1 00000e39: RETURNDATACOPY 00000e3a: RETURNDATASIZE 00000e3b: PUSH1 0x00 00000e3d: REVERT 00000e3e: JUMPDEST 00000e3f: POP 00000e40: POP 00000e41: POP 00000e42: POP 00000e43: POP 00000e44: POP 00000e45: JUMP 00000e46: JUMPDEST 00000e47: PUSH1 0x00 00000e49: SLOAD 00000e4a: PUSH1 0x01 00000e4c: PUSH1 0x01 00000e4e: PUSH1 0xa0 00000e50: SHL 00000e51: SUB 00000e52: AND 00000e53: CALLER 00000e54: EQ 00000e55: PUSH2 0x0463 00000e58: JUMPI 00000e59: PUSH1 0x40 00000e5b: MLOAD 00000e5c: PUSH4 0x118cdaa7 00000e61: PUSH1 0xe0 00000e63: SHL 00000e64: DUP2 00000e65: MSTORE 00000e66: CALLER 00000e67: PUSH1 0x04 00000e69: DUP3 00000e6a: ADD 00000e6b: MSTORE 00000e6c: PUSH1 0x24 00000e6e: ADD 00000e6f: PUSH2 0x04b2 00000e72: JUMP 00000e73: JUMPDEST 00000e74: PUSH1 0x01 00000e76: SLOAD 00000e77: PUSH1 0x01 00000e79: PUSH1 0xa0 00000e7b: SHL 00000e7c: SWAP1 00000e7d: DIV 00000e7e: PUSH1 0xff 00000e80: AND 00000e81: PUSH2 0x0463 00000e84: JUMPI 00000e85: PUSH1 0x40 00000e87: MLOAD 00000e88: PUSH4 0x8dfc202b 00000e8d: PUSH1 0xe0 00000e8f: SHL 00000e90: DUP2 00000e91: MSTORE 00000e92: PUSH1 0x04 00000e94: ADD 00000e95: PUSH1 0x40 00000e97: MLOAD 00000e98: DUP1 00000e99: SWAP2 00000e9a: SUB 00000e9b: SWAP1 00000e9c: REVERT 00000e9d: JUMPDEST 00000e9e: PUSH2 0x0ea5 00000ea1: PUSH2 0x0e73 00000ea4: JUMP 00000ea5: JUMPDEST 00000ea6: PUSH1 0x01 00000ea8: DUP1 00000ea9: SLOAD 00000eaa: PUSH1 0xff 00000eac: PUSH1 0xa0 00000eae: SHL 00000eaf: NOT 00000eb0: AND 00000eb1: SWAP1 00000eb2: SSTORE 00000eb3: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa 00000ed4: CALLER 00000ed5: JUMPDEST 00000ed6: PUSH1 0x40 00000ed8: MLOAD 00000ed9: PUSH1 0x01 00000edb: PUSH1 0x01 00000edd: PUSH1 0xa0 00000edf: SHL 00000ee0: SUB 00000ee1: SWAP1 00000ee2: SWAP2 00000ee3: AND 00000ee4: DUP2 00000ee5: MSTORE 00000ee6: PUSH1 0x20 00000ee8: ADD 00000ee9: PUSH1 0x40 00000eeb: MLOAD 00000eec: DUP1 00000eed: SWAP2 00000eee: SUB 00000eef: SWAP1 00000ef0: LOG1 00000ef1: JUMP 00000ef2: JUMPDEST 00000ef3: PUSH1 0x01 00000ef5: DUP1 00000ef6: SLOAD 00000ef7: PUSH1 0x01 00000ef9: PUSH1 0x01 00000efb: PUSH1 0xa0 00000efd: SHL 00000efe: SUB 00000eff: NOT 00000f00: AND 00000f01: SWAP1 00000f02: SSTORE 00000f03: PUSH2 0x04c4 00000f06: DUP2 00000f07: PUSH2 0x153c 00000f0a: JUMP 00000f0b: JUMPDEST 00000f0c: PUSH1 0x01 00000f0e: SLOAD 00000f0f: PUSH1 0x01 00000f11: PUSH1 0xa0 00000f13: SHL 00000f14: SWAP1 00000f15: DIV 00000f16: PUSH1 0xff 00000f18: AND 00000f19: ISZERO 00000f1a: PUSH2 0x0463 00000f1d: JUMPI 00000f1e: PUSH1 0x40 00000f20: MLOAD 00000f21: PUSH4 0xd93c0665 00000f26: PUSH1 0xe0 00000f28: SHL 00000f29: DUP2 00000f2a: MSTORE 00000f2b: PUSH1 0x04 00000f2d: ADD 00000f2e: PUSH1 0x40 00000f30: MLOAD 00000f31: DUP1 00000f32: SWAP2 00000f33: SUB 00000f34: SWAP1 00000f35: REVERT 00000f36: JUMPDEST 00000f37: PUSH2 0x0f3e 00000f3a: PUSH2 0x0f0b 00000f3d: JUMP 00000f3e: JUMPDEST 00000f3f: PUSH1 0x01 00000f41: DUP1 00000f42: SLOAD 00000f43: PUSH1 0xff 00000f45: PUSH1 0xa0 00000f47: SHL 00000f48: NOT 00000f49: AND 00000f4a: PUSH1 0x01 00000f4c: PUSH1 0xa0 00000f4e: SHL 00000f4f: OR 00000f50: SWAP1 00000f51: SSTORE 00000f52: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258 00000f73: PUSH2 0x0ed5 00000f76: CALLER 00000f77: SWAP1 00000f78: JUMP 00000f79: JUMPDEST 00000f7a: PUSH1 0x60 00000f7c: PUSH2 0x0fa6 00000f7f: PUSH32 0x5a74616b696e67506f6f6c00000000000000000000000000000000000000000b 00000fa0: PUSH1 0x02 00000fa2: PUSH2 0x158c 00000fa5: JUMP 00000fa6: JUMPDEST 00000fa7: SWAP1 00000fa8: POP 00000fa9: SWAP1 00000faa: JUMP 00000fab: JUMPDEST 00000fac: PUSH1 0x60 00000fae: PUSH2 0x0fa6 00000fb1: PUSH32 0x3100000000000000000000000000000000000000000000000000000000000001 00000fd2: PUSH1 0x03 00000fd4: PUSH2 0x158c 00000fd7: JUMP 00000fd8: JUMPDEST 00000fd9: PUSH1 0x00 00000fdb: PUSH2 0x1005 00000fde: PUSH2 0x0fe5 00000fe1: PUSH2 0x1638 00000fe4: JUMP 00000fe5: JUMPDEST 00000fe6: DUP4 00000fe7: PUSH1 0x40 00000fe9: MLOAD 00000fea: PUSH2 0x1901 00000fed: PUSH1 0xf0 00000fef: SHL 00000ff0: DUP2 00000ff1: MSTORE 00000ff2: PUSH1 0x02 00000ff4: DUP2 00000ff5: ADD 00000ff6: SWAP3 00000ff7: SWAP1 00000ff8: SWAP3 00000ff9: MSTORE 00000ffa: PUSH1 0x22 00000ffc: DUP3 00000ffd: ADD 00000ffe: MSTORE 00000fff: PUSH1 0x42 00001001: SWAP1 00001002: KECCAK256 00001003: SWAP1 00001004: JUMP 00001005: JUMPDEST 00001006: SWAP3 00001007: SWAP2 00001008: POP 00001009: POP 0000100a: JUMP 0000100b: JUMPDEST 0000100c: PUSH1 0x00 0000100e: DUP1 0000100f: PUSH1 0x00 00001011: PUSH2 0x101a 00001014: DUP6 00001015: DUP6 00001016: PUSH2 0x1763 00001019: JUMP 0000101a: JUMPDEST 0000101b: POP 0000101c: SWAP1 0000101d: SWAP3 0000101e: POP 0000101f: SWAP1 00001020: POP 00001021: PUSH1 0x00 00001023: DUP2 00001024: PUSH1 0x03 00001026: DUP2 00001027: GT 00001028: ISZERO 00001029: PUSH2 0x1034 0000102c: JUMPI 0000102d: PUSH2 0x1034 00001030: PUSH2 0x2032 00001033: JUMP 00001034: JUMPDEST 00001035: EQ 00001036: DUP1 00001037: ISZERO 00001038: PUSH2 0x1052 0000103b: JUMPI 0000103c: POP 0000103d: DUP6 0000103e: PUSH1 0x01 00001040: PUSH1 0x01 00001042: PUSH1 0xa0 00001044: SHL 00001045: SUB 00001046: AND 00001047: DUP3 00001048: PUSH1 0x01 0000104a: PUSH1 0x01 0000104c: PUSH1 0xa0 0000104e: SHL 0000104f: SUB 00001050: AND 00001051: EQ 00001052: JUMPDEST 00001053: DUP1 00001054: PUSH2 0x1063 00001057: JUMPI 00001058: POP 00001059: PUSH2 0x1063 0000105c: DUP7 0000105d: DUP7 0000105e: DUP7 0000105f: PUSH2 0x17b0 00001062: JUMP 00001063: JUMPDEST 00001064: SWAP3 00001065: POP 00001066: POP 00001067: POP 00001068: JUMPDEST 00001069: SWAP4 0000106a: SWAP3 0000106b: POP 0000106c: POP 0000106d: POP 0000106e: JUMP 0000106f: JUMPDEST 00001070: PUSH1 0x60 00001072: DUP4 00001073: PUSH1 0x00 00001075: DUP2 00001076: SWAP1 00001077: SUB 00001078: PUSH2 0x1094 0000107b: JUMPI 0000107c: PUSH1 0x40 0000107e: MLOAD 0000107f: PUSH4 0xe78703a3 00001084: PUSH1 0xe0 00001086: SHL 00001087: DUP2 00001088: MSTORE 00001089: PUSH1 0x04 0000108b: ADD 0000108c: PUSH1 0x40 0000108e: MLOAD 0000108f: DUP1 00001090: SWAP2 00001091: SUB 00001092: SWAP1 00001093: REVERT 00001094: JUMPDEST 00001095: DUP1 00001096: PUSH8 0xffffffffffffffff 0000109f: DUP2 000010a0: GT 000010a1: ISZERO 000010a2: PUSH2 0x10ad 000010a5: JUMPI 000010a6: PUSH2 0x10ad 000010a9: PUSH2 0x1cc4 000010ac: JUMP 000010ad: JUMPDEST 000010ae: PUSH1 0x40 000010b0: MLOAD 000010b1: SWAP1 000010b2: DUP1 000010b3: DUP3 000010b4: MSTORE 000010b5: DUP1 000010b6: PUSH1 0x20 000010b8: MUL 000010b9: PUSH1 0x20 000010bb: ADD 000010bc: DUP3 000010bd: ADD 000010be: PUSH1 0x40 000010c0: MSTORE 000010c1: DUP1 000010c2: ISZERO 000010c3: PUSH2 0x10d6 000010c6: JUMPI 000010c7: DUP2 000010c8: PUSH1 0x20 000010ca: ADD 000010cb: PUSH1 0x20 000010cd: DUP3 000010ce: MUL 000010cf: DUP1 000010d0: CALLDATASIZE 000010d1: DUP4 000010d2: CALLDATACOPY 000010d3: ADD 000010d4: SWAP1 000010d5: POP 000010d6: JUMPDEST 000010d7: POP 000010d8: SWAP2 000010d9: POP 000010da: PUSH1 0x00 000010dc: JUMPDEST 000010dd: DUP2 000010de: DUP2 000010df: LT 000010e0: ISZERO 000010e1: PUSH2 0x11b3 000010e4: JUMPI 000010e5: PUSH1 0x06 000010e7: PUSH1 0x00 000010e9: DUP9 000010ea: DUP9 000010eb: DUP5 000010ec: DUP2 000010ed: DUP2 000010ee: LT 000010ef: PUSH2 0x10fa 000010f2: JUMPI 000010f3: PUSH2 0x10fa 000010f6: PUSH2 0x2048 000010f9: JUMP 000010fa: JUMPDEST 000010fb: SWAP1 000010fc: POP 000010fd: PUSH1 0x20 000010ff: MUL 00001100: ADD 00001101: PUSH1 0x20 00001103: DUP2 00001104: ADD 00001105: SWAP1 00001106: PUSH2 0x110f 00001109: SWAP2 0000110a: SWAP1 0000110b: PUSH2 0x1b61 0000110e: JUMP 0000110f: JUMPDEST 00001110: PUSH1 0x01 00001112: PUSH1 0x01 00001114: PUSH1 0xa0 00001116: SHL 00001117: SUB 00001118: AND 00001119: PUSH1 0x01 0000111b: PUSH1 0x01 0000111d: PUSH1 0xa0 0000111f: SHL 00001120: SUB 00001121: AND 00001122: DUP2 00001123: MSTORE 00001124: PUSH1 0x20 00001126: ADD 00001127: SWAP1 00001128: DUP2 00001129: MSTORE 0000112a: PUSH1 0x20 0000112c: ADD 0000112d: PUSH1 0x00 0000112f: KECCAK256 00001130: PUSH1 0x00 00001132: DUP10 00001133: PUSH1 0x01 00001135: PUSH1 0x01 00001137: PUSH1 0xa0 00001139: SHL 0000113a: SUB 0000113b: AND 0000113c: PUSH1 0x01 0000113e: PUSH1 0x01 00001140: PUSH1 0xa0 00001142: SHL 00001143: SUB 00001144: AND 00001145: DUP2 00001146: MSTORE 00001147: PUSH1 0x20 00001149: ADD 0000114a: SWAP1 0000114b: DUP2 0000114c: MSTORE 0000114d: PUSH1 0x20 0000114f: ADD 00001150: PUSH1 0x00 00001152: KECCAK256 00001153: SLOAD 00001154: DUP4 00001155: DUP3 00001156: DUP2 00001157: MLOAD 00001158: DUP2 00001159: LT 0000115a: PUSH2 0x1165 0000115d: JUMPI 0000115e: PUSH2 0x1165 00001161: PUSH2 0x2048 00001164: JUMP 00001165: JUMPDEST 00001166: PUSH1 0x20 00001168: MUL 00001169: PUSH1 0x20 0000116b: ADD 0000116c: ADD 0000116d: DUP2 0000116e: DUP2 0000116f: MSTORE 00001170: POP 00001171: POP 00001172: DUP3 00001173: DUP2 00001174: DUP2 00001175: MLOAD 00001176: DUP2 00001177: LT 00001178: PUSH2 0x1183 0000117b: JUMPI 0000117c: PUSH2 0x1183 0000117f: PUSH2 0x2048 00001182: JUMP 00001183: JUMPDEST 00001184: PUSH1 0x20 00001186: MUL 00001187: PUSH1 0x20 00001189: ADD 0000118a: ADD 0000118b: MLOAD 0000118c: PUSH1 0x00 0000118e: SUB 0000118f: PUSH2 0x11ab 00001192: JUMPI 00001193: PUSH1 0x40 00001195: MLOAD 00001196: PUSH4 0xa809389f 0000119b: PUSH1 0xe0 0000119d: SHL 0000119e: DUP2 0000119f: MSTORE 000011a0: PUSH1 0x04 000011a2: ADD 000011a3: PUSH1 0x40 000011a5: MLOAD 000011a6: DUP1 000011a7: SWAP2 000011a8: SUB 000011a9: SWAP1 000011aa: REVERT 000011ab: JUMPDEST 000011ac: PUSH1 0x01 000011ae: ADD 000011af: PUSH2 0x10dc 000011b2: JUMP 000011b3: JUMPDEST 000011b4: POP 000011b5: DUP4 000011b6: TIMESTAMP 000011b7: LT 000011b8: PUSH2 0x11d4 000011bb: JUMPI 000011bc: PUSH1 0x40 000011be: MLOAD 000011bf: PUSH4 0x0819bdcd 000011c4: PUSH1 0xe0 000011c6: SHL 000011c7: DUP2 000011c8: MSTORE 000011c9: PUSH1 0x04 000011cb: ADD 000011cc: PUSH1 0x40 000011ce: MLOAD 000011cf: DUP1 000011d0: SWAP2 000011d1: SUB 000011d2: SWAP1 000011d3: REVERT 000011d4: JUMPDEST 000011d5: PUSH1 0x01 000011d7: PUSH1 0x01 000011d9: PUSH1 0xa0 000011db: SHL 000011dc: SUB 000011dd: DUP4 000011de: AND 000011df: PUSH1 0x00 000011e1: SWAP1 000011e2: DUP2 000011e3: MSTORE 000011e4: PUSH1 0x07 000011e6: PUSH1 0x20 000011e8: MSTORE 000011e9: PUSH1 0x40 000011eb: SWAP1 000011ec: KECCAK256 000011ed: SLOAD 000011ee: PUSH1 0xff 000011f0: AND 000011f1: ISZERO 000011f2: PUSH2 0x120e 000011f5: JUMPI 000011f6: PUSH1 0x40 000011f8: MLOAD 000011f9: PUSH4 0x9997d665 000011fe: PUSH1 0xe0 00001200: SHL 00001201: DUP2 00001202: MSTORE 00001203: PUSH1 0x04 00001205: ADD 00001206: PUSH1 0x40 00001208: MLOAD 00001209: DUP1 0000120a: SWAP2 0000120b: SUB 0000120c: SWAP1 0000120d: REVERT 0000120e: JUMPDEST 0000120f: POP 00001210: SWAP6 00001211: SWAP5 00001212: POP 00001213: POP 00001214: POP 00001215: POP 00001216: POP 00001217: JUMP 00001218: JUMPDEST 00001219: DUP2 0000121a: PUSH1 0x00 0000121c: JUMPDEST 0000121d: DUP2 0000121e: DUP2 0000121f: LT 00001220: ISZERO 00001221: PUSH2 0x12f7 00001224: JUMPI 00001225: PUSH1 0x06 00001227: PUSH1 0x00 00001229: DUP7 0000122a: DUP7 0000122b: DUP5 0000122c: DUP2 0000122d: DUP2 0000122e: LT 0000122f: PUSH2 0x123a 00001232: JUMPI 00001233: PUSH2 0x123a 00001236: PUSH2 0x2048 00001239: JUMP 0000123a: JUMPDEST 0000123b: SWAP1 0000123c: POP 0000123d: PUSH1 0x20 0000123f: MUL 00001240: ADD 00001241: PUSH1 0x20 00001243: DUP2 00001244: ADD 00001245: SWAP1 00001246: PUSH2 0x124f 00001249: SWAP2 0000124a: SWAP1 0000124b: PUSH2 0x1b61 0000124e: JUMP 0000124f: JUMPDEST 00001250: PUSH1 0x01 00001252: PUSH1 0x01 00001254: PUSH1 0xa0 00001256: SHL 00001257: SUB 00001258: SWAP1 00001259: DUP2 0000125a: AND 0000125b: DUP3 0000125c: MSTORE 0000125d: PUSH1 0x20 0000125f: DUP1 00001260: DUP4 00001261: ADD 00001262: SWAP4 00001263: SWAP1 00001264: SWAP4 00001265: MSTORE 00001266: PUSH1 0x40 00001268: SWAP2 00001269: DUP3 0000126a: ADD 0000126b: PUSH1 0x00 0000126d: SWAP1 0000126e: DUP2 0000126f: KECCAK256 00001270: SWAP2 00001271: DUP13 00001272: AND 00001273: DUP2 00001274: MSTORE 00001275: SWAP3 00001276: MSTORE 00001277: DUP2 00001278: KECCAK256 00001279: SLOAD 0000127a: SWAP1 0000127b: SUB 0000127c: PUSH2 0x1298 0000127f: JUMPI 00001280: PUSH1 0x40 00001282: MLOAD 00001283: PUSH4 0x23271fb5 00001288: PUSH1 0xe1 0000128a: SHL 0000128b: DUP2 0000128c: MSTORE 0000128d: PUSH1 0x04 0000128f: ADD 00001290: PUSH1 0x40 00001292: MLOAD 00001293: DUP1 00001294: SWAP2 00001295: SUB 00001296: SWAP1 00001297: REVERT 00001298: JUMPDEST 00001299: PUSH1 0x00 0000129b: PUSH1 0x06 0000129d: PUSH1 0x00 0000129f: DUP8 000012a0: DUP8 000012a1: DUP6 000012a2: DUP2 000012a3: DUP2 000012a4: LT 000012a5: PUSH2 0x12b0 000012a8: JUMPI 000012a9: PUSH2 0x12b0 000012ac: PUSH2 0x2048 000012af: JUMP 000012b0: JUMPDEST 000012b1: SWAP1 000012b2: POP 000012b3: PUSH1 0x20 000012b5: MUL 000012b6: ADD 000012b7: PUSH1 0x20 000012b9: DUP2 000012ba: ADD 000012bb: SWAP1 000012bc: PUSH2 0x12c5 000012bf: SWAP2 000012c0: SWAP1 000012c1: PUSH2 0x1b61 000012c4: JUMP 000012c5: JUMPDEST 000012c6: PUSH1 0x01 000012c8: PUSH1 0x01 000012ca: PUSH1 0xa0 000012cc: SHL 000012cd: SUB 000012ce: SWAP1 000012cf: DUP2 000012d0: AND 000012d1: DUP3 000012d2: MSTORE 000012d3: PUSH1 0x20 000012d5: DUP1 000012d6: DUP4 000012d7: ADD 000012d8: SWAP4 000012d9: SWAP1 000012da: SWAP4 000012db: MSTORE 000012dc: PUSH1 0x40 000012de: SWAP2 000012df: DUP3 000012e0: ADD 000012e1: PUSH1 0x00 000012e3: SWAP1 000012e4: DUP2 000012e5: KECCAK256 000012e6: SWAP2 000012e7: DUP14 000012e8: AND 000012e9: DUP2 000012ea: MSTORE 000012eb: SWAP3 000012ec: MSTORE 000012ed: SWAP1 000012ee: KECCAK256 000012ef: SSTORE 000012f0: PUSH1 0x01 000012f2: ADD 000012f3: PUSH2 0x121c 000012f6: JUMP 000012f7: JUMPDEST 000012f8: POP 000012f9: DUP7 000012fa: PUSH1 0x01 000012fc: PUSH1 0x01 000012fe: PUSH1 0xa0 00001300: SHL 00001301: SUB 00001302: AND 00001303: PUSH1 0x08 00001305: PUSH1 0x00 00001307: DUP2 00001308: SLOAD 00001309: PUSH2 0x1311 0000130c: SWAP1 0000130d: PUSH2 0x2006 00001310: JUMP 00001311: JUMPDEST 00001312: SWAP2 00001313: SWAP1 00001314: POP 00001315: DUP2 00001316: SWAP1 00001317: SSTORE 00001318: PUSH32 0x8ec7c0970f810f90b2e926cd4ee4f32efff0ef16fb5e08617c11b9fad14dfc00 00001339: DUP7 0000133a: DUP7 0000133b: DUP11 0000133c: DUP11 0000133d: DUP9 0000133e: PUSH1 0x40 00001340: MLOAD 00001341: PUSH2 0x134e 00001344: SWAP6 00001345: SWAP5 00001346: SWAP4 00001347: SWAP3 00001348: SWAP2 00001349: SWAP1 0000134a: PUSH2 0x209a 0000134d: JUMP 0000134e: JUMPDEST 0000134f: PUSH1 0x40 00001351: MLOAD 00001352: DUP1 00001353: SWAP2 00001354: SUB 00001355: SWAP1 00001356: LOG3 00001357: PUSH1 0x00 00001359: JUMPDEST 0000135a: DUP2 0000135b: DUP2 0000135c: LT 0000135d: ISZERO 0000135e: PUSH2 0x142e 00001361: JUMPI 00001362: DUP5 00001363: DUP5 00001364: DUP3 00001365: DUP2 00001366: DUP2 00001367: LT 00001368: PUSH2 0x1373 0000136b: JUMPI 0000136c: PUSH2 0x1373 0000136f: PUSH2 0x2048 00001372: JUMP 00001373: JUMPDEST 00001374: SWAP1 00001375: POP 00001376: PUSH1 0x20 00001378: MUL 00001379: ADD 0000137a: PUSH1 0x20 0000137c: DUP2 0000137d: ADD 0000137e: SWAP1 0000137f: PUSH2 0x1388 00001382: SWAP2 00001383: SWAP1 00001384: PUSH2 0x1b61 00001387: JUMP 00001388: JUMPDEST 00001389: PUSH1 0x01 0000138b: PUSH1 0x01 0000138d: PUSH1 0xa0 0000138f: SHL 00001390: SUB 00001391: AND 00001392: PUSH4 0x095ea7b3 00001397: DUP8 00001398: DUP6 00001399: DUP5 0000139a: DUP2 0000139b: MLOAD 0000139c: DUP2 0000139d: LT 0000139e: PUSH2 0x13a9 000013a1: JUMPI 000013a2: PUSH2 0x13a9 000013a5: PUSH2 0x2048 000013a8: JUMP 000013a9: JUMPDEST 000013aa: PUSH1 0x20 000013ac: MUL 000013ad: PUSH1 0x20 000013af: ADD 000013b0: ADD 000013b1: MLOAD 000013b2: PUSH1 0x40 000013b4: MLOAD 000013b5: DUP4 000013b6: PUSH4 0xffffffff 000013bb: AND 000013bc: PUSH1 0xe0 000013be: SHL 000013bf: DUP2 000013c0: MSTORE 000013c1: PUSH1 0x04 000013c3: ADD 000013c4: PUSH2 0x13e2 000013c7: SWAP3 000013c8: SWAP2 000013c9: SWAP1 000013ca: PUSH1 0x01 000013cc: PUSH1 0x01 000013ce: PUSH1 0xa0 000013d0: SHL 000013d1: SUB 000013d2: SWAP3 000013d3: SWAP1 000013d4: SWAP3 000013d5: AND 000013d6: DUP3 000013d7: MSTORE 000013d8: PUSH1 0x20 000013da: DUP3 000013db: ADD 000013dc: MSTORE 000013dd: PUSH1 0x40 000013df: ADD 000013e0: SWAP1 000013e1: JUMP 000013e2: JUMPDEST 000013e3: PUSH1 0x20 000013e5: PUSH1 0x40 000013e7: MLOAD 000013e8: DUP1 000013e9: DUP4 000013ea: SUB 000013eb: DUP2 000013ec: PUSH1 0x00 000013ee: DUP8 000013ef: GAS 000013f0: CALL 000013f1: ISZERO 000013f2: DUP1 000013f3: ISZERO 000013f4: PUSH2 0x1401 000013f7: JUMPI 000013f8: RETURNDATASIZE 000013f9: PUSH1 0x00 000013fb: DUP1 000013fc: RETURNDATACOPY 000013fd: RETURNDATASIZE 000013fe: PUSH1 0x00 00001400: REVERT 00001401: JUMPDEST 00001402: POP 00001403: POP 00001404: POP 00001405: POP 00001406: PUSH1 0x40 00001408: MLOAD 00001409: RETURNDATASIZE 0000140a: PUSH1 0x1f 0000140c: NOT 0000140d: PUSH1 0x1f 0000140f: DUP3 00001410: ADD 00001411: AND 00001412: DUP3 00001413: ADD 00001414: DUP1 00001415: PUSH1 0x40 00001417: MSTORE 00001418: POP 00001419: DUP2 0000141a: ADD 0000141b: SWAP1 0000141c: PUSH2 0x1425 0000141f: SWAP2 00001420: SWAP1 00001421: PUSH2 0x20e3 00001424: JUMP 00001425: JUMPDEST 00001426: POP 00001427: PUSH1 0x01 00001429: ADD 0000142a: PUSH2 0x1359 0000142d: JUMP 0000142e: JUMPDEST 0000142f: POP 00001430: PUSH1 0x40 00001432: MLOAD 00001433: PUSH4 0x55e663bf 00001438: PUSH1 0xe1 0000143a: SHL 0000143b: DUP2 0000143c: MSTORE 0000143d: PUSH1 0x01 0000143f: PUSH1 0x01 00001441: PUSH1 0xa0 00001443: SHL 00001444: SUB 00001445: DUP7 00001446: AND 00001447: SWAP1 00001448: PUSH4 0xabccc77e 0000144d: SWAP1 0000144e: PUSH2 0x1463 00001451: SWAP1 00001452: DUP11 00001453: SWAP1 00001454: DUP9 00001455: SWAP1 00001456: DUP9 00001457: SWAP1 00001458: DUP13 00001459: SWAP1 0000145a: DUP10 0000145b: SWAP1 0000145c: PUSH1 0x04 0000145e: ADD 0000145f: PUSH2 0x2100 00001462: JUMP 00001463: JUMPDEST 00001464: PUSH1 0x00 00001466: PUSH1 0x40 00001468: MLOAD 00001469: DUP1 0000146a: DUP4 0000146b: SUB 0000146c: DUP2 0000146d: PUSH1 0x00 0000146f: DUP8 00001470: DUP1 00001471: EXTCODESIZE 00001472: ISZERO 00001473: DUP1 00001474: ISZERO 00001475: PUSH2 0x147d 00001478: JUMPI 00001479: PUSH1 0x00 0000147b: DUP1 0000147c: REVERT 0000147d: JUMPDEST 0000147e: POP 0000147f: GAS 00001480: CALL 00001481: ISZERO 00001482: DUP1 00001483: ISZERO 00001484: PUSH2 0x1491 00001487: JUMPI 00001488: RETURNDATASIZE 00001489: PUSH1 0x00 0000148b: DUP1 0000148c: RETURNDATACOPY 0000148d: RETURNDATASIZE 0000148e: PUSH1 0x00 00001490: REVERT 00001491: JUMPDEST 00001492: POP 00001493: POP 00001494: POP 00001495: POP 00001496: POP 00001497: POP 00001498: POP 00001499: POP 0000149a: POP 0000149b: POP 0000149c: POP 0000149d: JUMP 0000149e: JUMPDEST 0000149f: PUSH1 0x40 000014a1: MLOAD 000014a2: PUSH1 0x01 000014a4: PUSH1 0x01 000014a6: PUSH1 0xa0 000014a8: SHL 000014a9: SUB 000014aa: DUP5 000014ab: DUP2 000014ac: AND 000014ad: PUSH1 0x24 000014af: DUP4 000014b0: ADD 000014b1: MSTORE 000014b2: DUP4 000014b3: DUP2 000014b4: AND 000014b5: PUSH1 0x44 000014b7: DUP4 000014b8: ADD 000014b9: MSTORE 000014ba: PUSH1 0x64 000014bc: DUP3 000014bd: ADD 000014be: DUP4 000014bf: SWAP1 000014c0: MSTORE 000014c1: PUSH2 0x1505 000014c4: SWAP2 000014c5: DUP7 000014c6: SWAP2 000014c7: DUP3 000014c8: AND 000014c9: SWAP1 000014ca: PUSH4 0x23b872dd 000014cf: SWAP1 000014d0: PUSH1 0x84 000014d2: ADD 000014d3: JUMPDEST 000014d4: PUSH1 0x40 000014d6: MLOAD 000014d7: PUSH1 0x20 000014d9: DUP2 000014da: DUP4 000014db: SUB 000014dc: SUB 000014dd: DUP2 000014de: MSTORE 000014df: SWAP1 000014e0: PUSH1 0x40 000014e2: MSTORE 000014e3: SWAP2 000014e4: POP 000014e5: PUSH1 0xe0 000014e7: SHL 000014e8: PUSH1 0x20 000014ea: DUP3 000014eb: ADD 000014ec: DUP1 000014ed: MLOAD 000014ee: PUSH1 0x01 000014f0: PUSH1 0x01 000014f2: PUSH1 0xe0 000014f4: SHL 000014f5: SUB 000014f6: DUP4 000014f7: DUP2 000014f8: DUP4 000014f9: AND 000014fa: OR 000014fb: DUP4 000014fc: MSTORE 000014fd: POP 000014fe: POP 000014ff: POP 00001500: POP 00001501: PUSH2 0x188b 00001504: JUMP 00001505: JUMPDEST 00001506: POP 00001507: POP 00001508: POP 00001509: POP 0000150a: JUMP 0000150b: JUMPDEST 0000150c: PUSH1 0x40 0000150e: MLOAD 0000150f: PUSH1 0x01 00001511: PUSH1 0x01 00001513: PUSH1 0xa0 00001515: SHL 00001516: SUB 00001517: DUP4 00001518: DUP2 00001519: AND 0000151a: PUSH1 0x24 0000151c: DUP4 0000151d: ADD 0000151e: MSTORE 0000151f: PUSH1 0x44 00001521: DUP3 00001522: ADD 00001523: DUP4 00001524: SWAP1 00001525: MSTORE 00001526: PUSH2 0x0794 00001529: SWAP2 0000152a: DUP6 0000152b: SWAP2 0000152c: DUP3 0000152d: AND 0000152e: SWAP1 0000152f: PUSH4 0xa9059cbb 00001534: SWAP1 00001535: PUSH1 0x64 00001537: ADD 00001538: PUSH2 0x14d3 0000153b: JUMP 0000153c: JUMPDEST 0000153d: PUSH1 0x00 0000153f: DUP1 00001540: SLOAD 00001541: PUSH1 0x01 00001543: PUSH1 0x01 00001545: PUSH1 0xa0 00001547: SHL 00001548: SUB 00001549: DUP4 0000154a: DUP2 0000154b: AND 0000154c: PUSH1 0x01 0000154e: PUSH1 0x01 00001550: PUSH1 0xa0 00001552: SHL 00001553: SUB 00001554: NOT 00001555: DUP4 00001556: AND 00001557: DUP2 00001558: OR 00001559: DUP5 0000155a: SSTORE 0000155b: PUSH1 0x40 0000155d: MLOAD 0000155e: SWAP2 0000155f: SWAP1 00001560: SWAP3 00001561: AND 00001562: SWAP3 00001563: DUP4 00001564: SWAP2 00001565: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001586: SWAP2 00001587: SWAP1 00001588: LOG3 00001589: POP 0000158a: POP 0000158b: JUMP 0000158c: JUMPDEST 0000158d: PUSH1 0x60 0000158f: PUSH1 0xff 00001591: DUP4 00001592: EQ 00001593: PUSH2 0x15a6 00001596: JUMPI 00001597: PUSH2 0x159f 0000159a: DUP4 0000159b: PUSH2 0x18ee 0000159e: JUMP 0000159f: JUMPDEST 000015a0: SWAP1 000015a1: POP 000015a2: PUSH2 0x1005 000015a5: JUMP 000015a6: JUMPDEST 000015a7: DUP2 000015a8: DUP1 000015a9: SLOAD 000015aa: PUSH2 0x15b2 000015ad: SWAP1 000015ae: PUSH2 0x214a 000015b1: JUMP 000015b2: JUMPDEST 000015b3: DUP1 000015b4: PUSH1 0x1f 000015b6: ADD 000015b7: PUSH1 0x20 000015b9: DUP1 000015ba: SWAP2 000015bb: DIV 000015bc: MUL 000015bd: PUSH1 0x20 000015bf: ADD 000015c0: PUSH1 0x40 000015c2: MLOAD 000015c3: SWAP1 000015c4: DUP2 000015c5: ADD 000015c6: PUSH1 0x40 000015c8: MSTORE 000015c9: DUP1 000015ca: SWAP3 000015cb: SWAP2 000015cc: SWAP1 000015cd: DUP2 000015ce: DUP2 000015cf: MSTORE 000015d0: PUSH1 0x20 000015d2: ADD 000015d3: DUP3 000015d4: DUP1 000015d5: SLOAD 000015d6: PUSH2 0x15de 000015d9: SWAP1 000015da: PUSH2 0x214a 000015dd: JUMP 000015de: JUMPDEST 000015df: DUP1 000015e0: ISZERO 000015e1: PUSH2 0x162b 000015e4: JUMPI 000015e5: DUP1 000015e6: PUSH1 0x1f 000015e8: LT 000015e9: PUSH2 0x1600 000015ec: JUMPI 000015ed: PUSH2 0x0100 000015f0: DUP1 000015f1: DUP4 000015f2: SLOAD 000015f3: DIV 000015f4: MUL 000015f5: DUP4 000015f6: MSTORE 000015f7: SWAP2 000015f8: PUSH1 0x20 000015fa: ADD 000015fb: SWAP2 000015fc: PUSH2 0x162b 000015ff: JUMP 00001600: JUMPDEST 00001601: DUP3 00001602: ADD 00001603: SWAP2 00001604: SWAP1 00001605: PUSH1 0x00 00001607: MSTORE 00001608: PUSH1 0x20 0000160a: PUSH1 0x00 0000160c: KECCAK256 0000160d: SWAP1 0000160e: JUMPDEST 0000160f: DUP2 00001610: SLOAD 00001611: DUP2 00001612: MSTORE 00001613: SWAP1 00001614: PUSH1 0x01 00001616: ADD 00001617: SWAP1 00001618: PUSH1 0x20 0000161a: ADD 0000161b: DUP1 0000161c: DUP4 0000161d: GT 0000161e: PUSH2 0x160e 00001621: JUMPI 00001622: DUP3 00001623: SWAP1 00001624: SUB 00001625: PUSH1 0x1f 00001627: AND 00001628: DUP3 00001629: ADD 0000162a: SWAP2 0000162b: JUMPDEST 0000162c: POP 0000162d: POP 0000162e: POP 0000162f: POP 00001630: POP 00001631: SWAP1 00001632: POP 00001633: SWAP3 00001634: SWAP2 00001635: POP 00001636: POP 00001637: JUMP 00001638: JUMPDEST 00001639: PUSH1 0x00 0000163b: ADDRESS 0000163c: PUSH1 0x01 0000163e: PUSH1 0x01 00001640: PUSH1 0xa0 00001642: SHL 00001643: SUB 00001644: PUSH32 0x000000000000000000000000f047ab4c75cebf0eb9ed34ae2c186f3611aeafa6 00001665: AND 00001666: EQ 00001667: DUP1 00001668: ISZERO 00001669: PUSH2 0x1691 0000166c: JUMPI 0000166d: POP 0000166e: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 0000168f: CHAINID 00001690: EQ 00001691: JUMPDEST 00001692: ISZERO 00001693: PUSH2 0x16bb 00001696: JUMPI 00001697: POP 00001698: PUSH32 0x60f132f61eb52350d38debb9545285dbe460422d845fc94e3c03e39d35fe23fd 000016b9: SWAP1 000016ba: JUMP 000016bb: JUMPDEST 000016bc: PUSH2 0x0fa6 000016bf: PUSH1 0x40 000016c1: DUP1 000016c2: MLOAD 000016c3: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 000016e4: PUSH1 0x20 000016e6: DUP3 000016e7: ADD 000016e8: MSTORE 000016e9: PUSH32 0xcf7936818770c7c65596ab2682c0a2826f5f1e1aaa24c0b6acd2ee27ef08e64c 0000170a: SWAP2 0000170b: DUP2 0000170c: ADD 0000170d: SWAP2 0000170e: SWAP1 0000170f: SWAP2 00001710: MSTORE 00001711: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6 00001732: PUSH1 0x60 00001734: DUP3 00001735: ADD 00001736: MSTORE 00001737: CHAINID 00001738: PUSH1 0x80 0000173a: DUP3 0000173b: ADD 0000173c: MSTORE 0000173d: ADDRESS 0000173e: PUSH1 0xa0 00001740: DUP3 00001741: ADD 00001742: MSTORE 00001743: PUSH1 0x00 00001745: SWAP1 00001746: PUSH1 0xc0 00001748: ADD 00001749: PUSH1 0x40 0000174b: MLOAD 0000174c: PUSH1 0x20 0000174e: DUP2 0000174f: DUP4 00001750: SUB 00001751: SUB 00001752: DUP2 00001753: MSTORE 00001754: SWAP1 00001755: PUSH1 0x40 00001757: MSTORE 00001758: DUP1 00001759: MLOAD 0000175a: SWAP1 0000175b: PUSH1 0x20 0000175d: ADD 0000175e: KECCAK256 0000175f: SWAP1 00001760: POP 00001761: SWAP1 00001762: JUMP 00001763: JUMPDEST 00001764: PUSH1 0x00 00001766: DUP1 00001767: PUSH1 0x00 00001769: DUP4 0000176a: MLOAD 0000176b: PUSH1 0x41 0000176d: SUB 0000176e: PUSH2 0x179d 00001771: JUMPI 00001772: PUSH1 0x20 00001774: DUP5 00001775: ADD 00001776: MLOAD 00001777: PUSH1 0x40 00001779: DUP6 0000177a: ADD 0000177b: MLOAD 0000177c: PUSH1 0x60 0000177e: DUP7 0000177f: ADD 00001780: MLOAD 00001781: PUSH1 0x00 00001783: BYTE 00001784: PUSH2 0x178f 00001787: DUP9 00001788: DUP3 00001789: DUP6 0000178a: DUP6 0000178b: PUSH2 0x192d 0000178e: JUMP 0000178f: JUMPDEST 00001790: SWAP6 00001791: POP 00001792: SWAP6 00001793: POP 00001794: SWAP6 00001795: POP 00001796: POP 00001797: POP 00001798: POP 00001799: PUSH2 0x17a9 0000179c: JUMP 0000179d: JUMPDEST 0000179e: POP 0000179f: POP 000017a0: DUP2 000017a1: MLOAD 000017a2: PUSH1 0x00 000017a4: SWAP2 000017a5: POP 000017a6: PUSH1 0x02 000017a8: SWAP1 000017a9: JUMPDEST 000017aa: SWAP3 000017ab: POP 000017ac: SWAP3 000017ad: POP 000017ae: SWAP3 000017af: JUMP 000017b0: JUMPDEST 000017b1: PUSH1 0x00 000017b3: DUP1 000017b4: PUSH1 0x00 000017b6: DUP6 000017b7: PUSH1 0x01 000017b9: PUSH1 0x01 000017bb: PUSH1 0xa0 000017bd: SHL 000017be: SUB 000017bf: AND 000017c0: DUP6 000017c1: DUP6 000017c2: PUSH1 0x40 000017c4: MLOAD 000017c5: PUSH1 0x24 000017c7: ADD 000017c8: PUSH2 0x17d2 000017cb: SWAP3 000017cc: SWAP2 000017cd: SWAP1 000017ce: PUSH2 0x2184 000017d1: JUMP 000017d2: JUMPDEST 000017d3: PUSH1 0x40 000017d5: DUP1 000017d6: MLOAD 000017d7: PUSH1 0x1f 000017d9: NOT 000017da: DUP2 000017db: DUP5 000017dc: SUB 000017dd: ADD 000017de: DUP2 000017df: MSTORE 000017e0: SWAP2 000017e1: DUP2 000017e2: MSTORE 000017e3: PUSH1 0x20 000017e5: DUP3 000017e6: ADD 000017e7: DUP1 000017e8: MLOAD 000017e9: PUSH1 0x01 000017eb: PUSH1 0x01 000017ed: PUSH1 0xe0 000017ef: SHL 000017f0: SUB 000017f1: AND 000017f2: PUSH4 0x0b135d3f 000017f7: PUSH1 0xe1 000017f9: SHL 000017fa: OR 000017fb: SWAP1 000017fc: MSTORE 000017fd: MLOAD 000017fe: PUSH2 0x1807 00001801: SWAP2 00001802: SWAP1 00001803: PUSH2 0x21a5 00001806: JUMP 00001807: JUMPDEST 00001808: PUSH1 0x00 0000180a: PUSH1 0x40 0000180c: MLOAD 0000180d: DUP1 0000180e: DUP4 0000180f: SUB 00001810: DUP2 00001811: DUP6 00001812: GAS 00001813: STATICCALL 00001814: SWAP2 00001815: POP 00001816: POP 00001817: RETURNDATASIZE 00001818: DUP1 00001819: PUSH1 0x00 0000181b: DUP2 0000181c: EQ 0000181d: PUSH2 0x1842 00001820: JUMPI 00001821: PUSH1 0x40 00001823: MLOAD 00001824: SWAP2 00001825: POP 00001826: PUSH1 0x1f 00001828: NOT 00001829: PUSH1 0x3f 0000182b: RETURNDATASIZE 0000182c: ADD 0000182d: AND 0000182e: DUP3 0000182f: ADD 00001830: PUSH1 0x40 00001832: MSTORE 00001833: RETURNDATASIZE 00001834: DUP3 00001835: MSTORE 00001836: RETURNDATASIZE 00001837: PUSH1 0x00 00001839: PUSH1 0x20 0000183b: DUP5 0000183c: ADD 0000183d: RETURNDATACOPY 0000183e: PUSH2 0x1847 00001841: JUMP 00001842: JUMPDEST 00001843: PUSH1 0x60 00001845: SWAP2 00001846: POP 00001847: JUMPDEST 00001848: POP 00001849: SWAP2 0000184a: POP 0000184b: SWAP2 0000184c: POP 0000184d: DUP2 0000184e: DUP1 0000184f: ISZERO 00001850: PUSH2 0x185b 00001853: JUMPI 00001854: POP 00001855: PUSH1 0x20 00001857: DUP2 00001858: MLOAD 00001859: LT 0000185a: ISZERO 0000185b: JUMPDEST 0000185c: DUP1 0000185d: ISZERO 0000185e: PUSH2 0x1063 00001861: JUMPI 00001862: POP 00001863: DUP1 00001864: MLOAD 00001865: PUSH4 0x0b135d3f 0000186a: PUSH1 0xe1 0000186c: SHL 0000186d: SWAP1 0000186e: PUSH2 0x1880 00001871: SWAP1 00001872: DUP4 00001873: ADD 00001874: PUSH1 0x20 00001876: SWAP1 00001877: DUP2 00001878: ADD 00001879: SWAP1 0000187a: DUP5 0000187b: ADD 0000187c: PUSH2 0x21c1 0000187f: JUMP 00001880: JUMPDEST 00001881: EQ 00001882: SWAP7 00001883: SWAP6 00001884: POP 00001885: POP 00001886: POP 00001887: POP 00001888: POP 00001889: POP 0000188a: JUMP 0000188b: JUMPDEST 0000188c: PUSH1 0x00 0000188e: PUSH2 0x18a0 00001891: PUSH1 0x01 00001893: PUSH1 0x01 00001895: PUSH1 0xa0 00001897: SHL 00001898: SUB 00001899: DUP5 0000189a: AND 0000189b: DUP4 0000189c: PUSH2 0x19fc 0000189f: JUMP 000018a0: JUMPDEST 000018a1: SWAP1 000018a2: POP 000018a3: DUP1 000018a4: MLOAD 000018a5: PUSH1 0x00 000018a7: EQ 000018a8: ISZERO 000018a9: DUP1 000018aa: ISZERO 000018ab: PUSH2 0x18c5 000018ae: JUMPI 000018af: POP 000018b0: DUP1 000018b1: DUP1 000018b2: PUSH1 0x20 000018b4: ADD 000018b5: SWAP1 000018b6: MLOAD 000018b7: DUP2 000018b8: ADD 000018b9: SWAP1 000018ba: PUSH2 0x18c3 000018bd: SWAP2 000018be: SWAP1 000018bf: PUSH2 0x20e3 000018c2: JUMP 000018c3: JUMPDEST 000018c4: ISZERO 000018c5: JUMPDEST 000018c6: ISZERO 000018c7: PUSH2 0x0794 000018ca: JUMPI 000018cb: PUSH1 0x40 000018cd: MLOAD 000018ce: PUSH4 0x5274afe7 000018d3: PUSH1 0xe0 000018d5: SHL 000018d6: DUP2 000018d7: MSTORE 000018d8: PUSH1 0x01 000018da: PUSH1 0x01 000018dc: PUSH1 0xa0 000018de: SHL 000018df: SUB 000018e0: DUP5 000018e1: AND 000018e2: PUSH1 0x04 000018e4: DUP3 000018e5: ADD 000018e6: MSTORE 000018e7: PUSH1 0x24 000018e9: ADD 000018ea: PUSH2 0x04b2 000018ed: JUMP 000018ee: JUMPDEST 000018ef: PUSH1 0x60 000018f1: PUSH1 0x00 000018f3: PUSH2 0x18fb 000018f6: DUP4 000018f7: PUSH2 0x1a0a 000018fa: JUMP 000018fb: JUMPDEST 000018fc: PUSH1 0x40 000018fe: DUP1 000018ff: MLOAD 00001900: PUSH1 0x20 00001902: DUP1 00001903: DUP3 00001904: MSTORE 00001905: DUP2 00001906: DUP4 00001907: ADD 00001908: SWAP1 00001909: SWAP3 0000190a: MSTORE 0000190b: SWAP2 0000190c: SWAP3 0000190d: POP 0000190e: PUSH1 0x00 00001910: SWAP2 00001911: SWAP1 00001912: PUSH1 0x20 00001914: DUP3 00001915: ADD 00001916: DUP2 00001917: DUP1 00001918: CALLDATASIZE 00001919: DUP4 0000191a: CALLDATACOPY 0000191b: POP 0000191c: POP 0000191d: POP 0000191e: SWAP2 0000191f: DUP3 00001920: MSTORE 00001921: POP 00001922: PUSH1 0x20 00001924: DUP2 00001925: ADD 00001926: SWAP3 00001927: SWAP1 00001928: SWAP3 00001929: MSTORE 0000192a: POP 0000192b: SWAP1 0000192c: JUMP 0000192d: JUMPDEST 0000192e: PUSH1 0x00 00001930: DUP1 00001931: DUP1 00001932: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 00001953: DUP5 00001954: GT 00001955: ISZERO 00001956: PUSH2 0x1968 00001959: JUMPI 0000195a: POP 0000195b: PUSH1 0x00 0000195d: SWAP2 0000195e: POP 0000195f: PUSH1 0x03 00001961: SWAP1 00001962: POP 00001963: DUP3 00001964: PUSH2 0x19f2 00001967: JUMP 00001968: JUMPDEST 00001969: PUSH1 0x40 0000196b: DUP1 0000196c: MLOAD 0000196d: PUSH1 0x00 0000196f: DUP1 00001970: DUP3 00001971: MSTORE 00001972: PUSH1 0x20 00001974: DUP3 00001975: ADD 00001976: DUP1 00001977: DUP5 00001978: MSTORE 00001979: DUP11 0000197a: SWAP1 0000197b: MSTORE 0000197c: PUSH1 0xff 0000197e: DUP10 0000197f: AND 00001980: SWAP3 00001981: DUP3 00001982: ADD 00001983: SWAP3 00001984: SWAP1 00001985: SWAP3 00001986: MSTORE 00001987: PUSH1 0x60 00001989: DUP2 0000198a: ADD 0000198b: DUP8 0000198c: SWAP1 0000198d: MSTORE 0000198e: PUSH1 0x80 00001990: DUP2 00001991: ADD 00001992: DUP7 00001993: SWAP1 00001994: MSTORE 00001995: PUSH1 0x01 00001997: SWAP1 00001998: PUSH1 0xa0 0000199a: ADD 0000199b: PUSH1 0x20 0000199d: PUSH1 0x40 0000199f: MLOAD 000019a0: PUSH1 0x20 000019a2: DUP2 000019a3: SUB 000019a4: SWAP1 000019a5: DUP1 000019a6: DUP5 000019a7: SUB 000019a8: SWAP1 000019a9: DUP6 000019aa: GAS 000019ab: STATICCALL 000019ac: ISZERO 000019ad: DUP1 000019ae: ISZERO 000019af: PUSH2 0x19bc 000019b2: JUMPI 000019b3: RETURNDATASIZE 000019b4: PUSH1 0x00 000019b6: DUP1 000019b7: RETURNDATACOPY 000019b8: RETURNDATASIZE 000019b9: PUSH1 0x00 000019bb: REVERT 000019bc: JUMPDEST 000019bd: POP 000019be: POP 000019bf: PUSH1 0x40 000019c1: MLOAD 000019c2: PUSH1 0x1f 000019c4: NOT 000019c5: ADD 000019c6: MLOAD 000019c7: SWAP2 000019c8: POP 000019c9: POP 000019ca: PUSH1 0x01 000019cc: PUSH1 0x01 000019ce: PUSH1 0xa0 000019d0: SHL 000019d1: SUB 000019d2: DUP2 000019d3: AND 000019d4: PUSH2 0x19e8 000019d7: JUMPI 000019d8: POP 000019d9: PUSH1 0x00 000019db: SWAP3 000019dc: POP 000019dd: PUSH1 0x01 000019df: SWAP2 000019e0: POP 000019e1: DUP3 000019e2: SWAP1 000019e3: POP 000019e4: PUSH2 0x19f2 000019e7: JUMP 000019e8: JUMPDEST 000019e9: SWAP3 000019ea: POP 000019eb: PUSH1 0x00 000019ed: SWAP2 000019ee: POP 000019ef: DUP2 000019f0: SWAP1 000019f1: POP 000019f2: JUMPDEST 000019f3: SWAP5 000019f4: POP 000019f5: SWAP5 000019f6: POP 000019f7: SWAP5 000019f8: SWAP2 000019f9: POP 000019fa: POP 000019fb: JUMP 000019fc: JUMPDEST 000019fd: PUSH1 0x60 000019ff: PUSH2 0x1068 00001a02: DUP4 00001a03: DUP4 00001a04: PUSH1 0x00 00001a06: PUSH2 0x1a32 00001a09: JUMP 00001a0a: JUMPDEST 00001a0b: PUSH1 0x00 00001a0d: PUSH1 0xff 00001a0f: DUP3 00001a10: AND 00001a11: PUSH1 0x1f 00001a13: DUP2 00001a14: GT 00001a15: ISZERO 00001a16: PUSH2 0x1005 00001a19: JUMPI 00001a1a: PUSH1 0x40 00001a1c: MLOAD 00001a1d: PUSH4 0x2cd44ac3 00001a22: PUSH1 0xe2 00001a24: SHL 00001a25: DUP2 00001a26: MSTORE 00001a27: PUSH1 0x04 00001a29: ADD 00001a2a: PUSH1 0x40 00001a2c: MLOAD 00001a2d: DUP1 00001a2e: SWAP2 00001a2f: SUB 00001a30: SWAP1 00001a31: REVERT 00001a32: JUMPDEST 00001a33: PUSH1 0x60 00001a35: DUP2 00001a36: SELFBALANCE 00001a37: LT 00001a38: ISZERO 00001a39: PUSH2 0x1a57 00001a3c: JUMPI 00001a3d: PUSH1 0x40 00001a3f: MLOAD 00001a40: PUSH4 0xcd786059 00001a45: PUSH1 0xe0 00001a47: SHL 00001a48: DUP2 00001a49: MSTORE 00001a4a: ADDRESS 00001a4b: PUSH1 0x04 00001a4d: DUP3 00001a4e: ADD 00001a4f: MSTORE 00001a50: PUSH1 0x24 00001a52: ADD 00001a53: PUSH2 0x04b2 00001a56: JUMP 00001a57: JUMPDEST 00001a58: PUSH1 0x00 00001a5a: DUP1 00001a5b: DUP6 00001a5c: PUSH1 0x01 00001a5e: PUSH1 0x01 00001a60: PUSH1 0xa0 00001a62: SHL 00001a63: SUB 00001a64: AND 00001a65: DUP5 00001a66: DUP7 00001a67: PUSH1 0x40 00001a69: MLOAD 00001a6a: PUSH2 0x1a73 00001a6d: SWAP2 00001a6e: SWAP1 00001a6f: PUSH2 0x21a5 00001a72: JUMP 00001a73: JUMPDEST 00001a74: PUSH1 0x00 00001a76: PUSH1 0x40 00001a78: MLOAD 00001a79: DUP1 00001a7a: DUP4 00001a7b: SUB 00001a7c: DUP2 00001a7d: DUP6 00001a7e: DUP8 00001a7f: GAS 00001a80: CALL 00001a81: SWAP3 00001a82: POP 00001a83: POP 00001a84: POP 00001a85: RETURNDATASIZE 00001a86: DUP1 00001a87: PUSH1 0x00 00001a89: DUP2 00001a8a: EQ 00001a8b: PUSH2 0x1ab0 00001a8e: JUMPI 00001a8f: PUSH1 0x40 00001a91: MLOAD 00001a92: SWAP2 00001a93: POP 00001a94: PUSH1 0x1f 00001a96: NOT 00001a97: PUSH1 0x3f 00001a99: RETURNDATASIZE 00001a9a: ADD 00001a9b: AND 00001a9c: DUP3 00001a9d: ADD 00001a9e: PUSH1 0x40 00001aa0: MSTORE 00001aa1: RETURNDATASIZE 00001aa2: DUP3 00001aa3: MSTORE 00001aa4: RETURNDATASIZE 00001aa5: PUSH1 0x00 00001aa7: PUSH1 0x20 00001aa9: DUP5 00001aaa: ADD 00001aab: RETURNDATACOPY 00001aac: PUSH2 0x1ab5 00001aaf: JUMP 00001ab0: JUMPDEST 00001ab1: PUSH1 0x60 00001ab3: SWAP2 00001ab4: POP 00001ab5: JUMPDEST 00001ab6: POP 00001ab7: SWAP2 00001ab8: POP 00001ab9: SWAP2 00001aba: POP 00001abb: PUSH2 0x1063 00001abe: DUP7 00001abf: DUP4 00001ac0: DUP4 00001ac1: PUSH1 0x60 00001ac3: DUP3 00001ac4: PUSH2 0x1ad5 00001ac7: JUMPI 00001ac8: PUSH2 0x1ad0 00001acb: DUP3 00001acc: PUSH2 0x1b1c 00001acf: JUMP 00001ad0: JUMPDEST 00001ad1: PUSH2 0x1068 00001ad4: JUMP 00001ad5: JUMPDEST 00001ad6: DUP2 00001ad7: MLOAD 00001ad8: ISZERO 00001ad9: DUP1 00001ada: ISZERO 00001adb: PUSH2 0x1aec 00001ade: JUMPI 00001adf: POP 00001ae0: PUSH1 0x01 00001ae2: PUSH1 0x01 00001ae4: PUSH1 0xa0 00001ae6: SHL 00001ae7: SUB 00001ae8: DUP5 00001ae9: AND 00001aea: EXTCODESIZE 00001aeb: ISZERO 00001aec: JUMPDEST 00001aed: ISZERO 00001aee: PUSH2 0x1b15 00001af1: JUMPI 00001af2: PUSH1 0x40 00001af4: MLOAD 00001af5: PUSH4 0x9996b315 00001afa: PUSH1 0xe0 00001afc: SHL 00001afd: DUP2 00001afe: MSTORE 00001aff: PUSH1 0x01 00001b01: PUSH1 0x01 00001b03: PUSH1 0xa0 00001b05: SHL 00001b06: SUB 00001b07: DUP6 00001b08: AND 00001b09: PUSH1 0x04 00001b0b: DUP3 00001b0c: ADD 00001b0d: MSTORE 00001b0e: PUSH1 0x24 00001b10: ADD 00001b11: PUSH2 0x04b2 00001b14: JUMP 00001b15: JUMPDEST 00001b16: POP 00001b17: DUP1 00001b18: PUSH2 0x1068 00001b1b: JUMP 00001b1c: JUMPDEST 00001b1d: DUP1 00001b1e: MLOAD 00001b1f: ISZERO 00001b20: PUSH2 0x1b2c 00001b23: JUMPI 00001b24: DUP1 00001b25: MLOAD 00001b26: DUP1 00001b27: DUP3 00001b28: PUSH1 0x20 00001b2a: ADD 00001b2b: REVERT 00001b2c: JUMPDEST 00001b2d: PUSH1 0x40 00001b2f: MLOAD 00001b30: PUSH4 0x0a12f521 00001b35: PUSH1 0xe1 00001b37: SHL 00001b38: DUP2 00001b39: MSTORE 00001b3a: PUSH1 0x04 00001b3c: ADD 00001b3d: PUSH1 0x40 00001b3f: MLOAD 00001b40: DUP1 00001b41: SWAP2 00001b42: SUB 00001b43: SWAP1 00001b44: REVERT 00001b45: JUMPDEST 00001b46: DUP1 00001b47: CALLDATALOAD 00001b48: PUSH1 0x01 00001b4a: PUSH1 0x01 00001b4c: PUSH1 0xa0 00001b4e: SHL 00001b4f: SUB 00001b50: DUP2 00001b51: AND 00001b52: DUP2 00001b53: EQ 00001b54: PUSH2 0x1b5c 00001b57: JUMPI 00001b58: PUSH1 0x00 00001b5a: DUP1 00001b5b: REVERT 00001b5c: JUMPDEST 00001b5d: SWAP2 00001b5e: SWAP1 00001b5f: POP 00001b60: JUMP 00001b61: JUMPDEST 00001b62: PUSH1 0x00 00001b64: PUSH1 0x20 00001b66: DUP3 00001b67: DUP5 00001b68: SUB 00001b69: SLT 00001b6a: ISZERO 00001b6b: PUSH2 0x1b73 00001b6e: JUMPI 00001b6f: PUSH1 0x00 00001b71: DUP1 00001b72: REVERT 00001b73: JUMPDEST 00001b74: PUSH2 0x1068 00001b77: DUP3 00001b78: PUSH2 0x1b45 00001b7b: JUMP 00001b7c: JUMPDEST 00001b7d: PUSH1 0x00 00001b7f: JUMPDEST 00001b80: DUP4 00001b81: DUP2 00001b82: LT 00001b83: ISZERO 00001b84: PUSH2 0x1b97 00001b87: JUMPI 00001b88: DUP2 00001b89: DUP2 00001b8a: ADD 00001b8b: MLOAD 00001b8c: DUP4 00001b8d: DUP3 00001b8e: ADD 00001b8f: MSTORE 00001b90: PUSH1 0x20 00001b92: ADD 00001b93: PUSH2 0x1b7f 00001b96: JUMP 00001b97: JUMPDEST 00001b98: POP 00001b99: POP 00001b9a: PUSH1 0x00 00001b9c: SWAP2 00001b9d: ADD 00001b9e: MSTORE 00001b9f: JUMP 00001ba0: JUMPDEST 00001ba1: PUSH1 0x00 00001ba3: DUP2 00001ba4: MLOAD 00001ba5: DUP1 00001ba6: DUP5 00001ba7: MSTORE 00001ba8: PUSH2 0x1bb8 00001bab: DUP2 00001bac: PUSH1 0x20 00001bae: DUP7 00001baf: ADD 00001bb0: PUSH1 0x20 00001bb2: DUP7 00001bb3: ADD 00001bb4: PUSH2 0x1b7c 00001bb7: JUMP 00001bb8: JUMPDEST 00001bb9: PUSH1 0x1f 00001bbb: ADD 00001bbc: PUSH1 0x1f 00001bbe: NOT 00001bbf: AND 00001bc0: SWAP3 00001bc1: SWAP1 00001bc2: SWAP3 00001bc3: ADD 00001bc4: PUSH1 0x20 00001bc6: ADD 00001bc7: SWAP3 00001bc8: SWAP2 00001bc9: POP 00001bca: POP 00001bcb: JUMP 00001bcc: JUMPDEST 00001bcd: PUSH1 0x00 00001bcf: DUP2 00001bd0: MLOAD 00001bd1: DUP1 00001bd2: DUP5 00001bd3: MSTORE 00001bd4: PUSH1 0x20 00001bd6: DUP1 00001bd7: DUP6 00001bd8: ADD 00001bd9: SWAP5 00001bda: POP 00001bdb: PUSH1 0x20 00001bdd: DUP5 00001bde: ADD 00001bdf: PUSH1 0x00 00001be1: JUMPDEST 00001be2: DUP4 00001be3: DUP2 00001be4: LT 00001be5: ISZERO 00001be6: PUSH2 0x1bfd 00001be9: JUMPI 00001bea: DUP2 00001beb: MLOAD 00001bec: DUP8 00001bed: MSTORE 00001bee: SWAP6 00001bef: DUP3 00001bf0: ADD 00001bf1: SWAP6 00001bf2: SWAP1 00001bf3: DUP3 00001bf4: ADD 00001bf5: SWAP1 00001bf6: PUSH1 0x01 00001bf8: ADD 00001bf9: PUSH2 0x1be1 00001bfc: JUMP 00001bfd: JUMPDEST 00001bfe: POP 00001bff: SWAP5 00001c00: SWAP6 00001c01: SWAP5 00001c02: POP 00001c03: POP 00001c04: POP 00001c05: POP 00001c06: POP 00001c07: JUMP 00001c08: JUMPDEST 00001c09: PUSH1 0xff 00001c0b: PUSH1 0xf8 00001c0d: SHL 00001c0e: DUP9 00001c0f: AND 00001c10: DUP2 00001c11: MSTORE 00001c12: PUSH1 0xe0 00001c14: PUSH1 0x20 00001c16: DUP3 00001c17: ADD 00001c18: MSTORE 00001c19: PUSH1 0x00 00001c1b: PUSH2 0x1c27 00001c1e: PUSH1 0xe0 00001c20: DUP4 00001c21: ADD 00001c22: DUP10 00001c23: PUSH2 0x1ba0 00001c26: JUMP 00001c27: JUMPDEST 00001c28: DUP3 00001c29: DUP2 00001c2a: SUB 00001c2b: PUSH1 0x40 00001c2d: DUP5 00001c2e: ADD 00001c2f: MSTORE 00001c30: PUSH2 0x1c39 00001c33: DUP2 00001c34: DUP10 00001c35: PUSH2 0x1ba0 00001c38: JUMP 00001c39: JUMPDEST 00001c3a: PUSH1 0x60 00001c3c: DUP5 00001c3d: ADD 00001c3e: DUP9 00001c3f: SWAP1 00001c40: MSTORE 00001c41: PUSH1 0x01 00001c43: PUSH1 0x01 00001c45: PUSH1 0xa0 00001c47: SHL 00001c48: SUB 00001c49: DUP8 00001c4a: AND 00001c4b: PUSH1 0x80 00001c4d: DUP6 00001c4e: ADD 00001c4f: MSTORE 00001c50: PUSH1 0xa0 00001c52: DUP5 00001c53: ADD 00001c54: DUP7 00001c55: SWAP1 00001c56: MSTORE 00001c57: DUP4 00001c58: DUP2 00001c59: SUB 00001c5a: PUSH1 0xc0 00001c5c: DUP6 00001c5d: ADD 00001c5e: MSTORE 00001c5f: SWAP1 00001c60: POP 00001c61: PUSH2 0x1c6a 00001c64: DUP2 00001c65: DUP6 00001c66: PUSH2 0x1bcc 00001c69: JUMP 00001c6a: JUMPDEST 00001c6b: SWAP11 00001c6c: SWAP10 00001c6d: POP 00001c6e: POP 00001c6f: POP 00001c70: POP 00001c71: POP 00001c72: POP 00001c73: POP 00001c74: POP 00001c75: POP 00001c76: POP 00001c77: JUMP 00001c78: JUMPDEST 00001c79: PUSH1 0x00 00001c7b: DUP1 00001c7c: DUP4 00001c7d: PUSH1 0x1f 00001c7f: DUP5 00001c80: ADD 00001c81: SLT 00001c82: PUSH2 0x1c8a 00001c85: JUMPI 00001c86: PUSH1 0x00 00001c88: DUP1 00001c89: REVERT 00001c8a: JUMPDEST 00001c8b: POP 00001c8c: DUP2 00001c8d: CALLDATALOAD 00001c8e: PUSH8 0xffffffffffffffff 00001c97: DUP2 00001c98: GT 00001c99: ISZERO 00001c9a: PUSH2 0x1ca2 00001c9d: JUMPI 00001c9e: PUSH1 0x00 00001ca0: DUP1 00001ca1: REVERT 00001ca2: JUMPDEST 00001ca3: PUSH1 0x20 00001ca5: DUP4 00001ca6: ADD 00001ca7: SWAP2 00001ca8: POP 00001ca9: DUP4 00001caa: PUSH1 0x20 00001cac: DUP3 00001cad: PUSH1 0x05 00001caf: SHL 00001cb0: DUP6 00001cb1: ADD 00001cb2: ADD 00001cb3: GT 00001cb4: ISZERO 00001cb5: PUSH2 0x1cbd 00001cb8: JUMPI 00001cb9: PUSH1 0x00 00001cbb: DUP1 00001cbc: REVERT 00001cbd: JUMPDEST 00001cbe: SWAP3 00001cbf: POP 00001cc0: SWAP3 00001cc1: SWAP1 00001cc2: POP 00001cc3: JUMP 00001cc4: JUMPDEST 00001cc5: PUSH4 0x4e487b71 00001cca: PUSH1 0xe0 00001ccc: SHL 00001ccd: PUSH1 0x00 00001ccf: MSTORE 00001cd0: PUSH1 0x41 00001cd2: PUSH1 0x04 00001cd4: MSTORE 00001cd5: PUSH1 0x24 00001cd7: PUSH1 0x00 00001cd9: REVERT 00001cda: JUMPDEST 00001cdb: PUSH1 0x00 00001cdd: DUP1 00001cde: PUSH1 0x00 00001ce0: DUP1 00001ce1: PUSH1 0x00 00001ce3: DUP1 00001ce4: PUSH1 0x00 00001ce6: PUSH1 0xc0 00001ce8: DUP9 00001ce9: DUP11 00001cea: SUB 00001ceb: SLT 00001cec: ISZERO 00001ced: PUSH2 0x1cf5 00001cf0: JUMPI 00001cf1: PUSH1 0x00 00001cf3: DUP1 00001cf4: REVERT 00001cf5: JUMPDEST 00001cf6: PUSH2 0x1cfe 00001cf9: DUP9 00001cfa: PUSH2 0x1b45 00001cfd: JUMP 00001cfe: JUMPDEST 00001cff: SWAP7 00001d00: POP 00001d01: PUSH1 0x20 00001d03: DUP9 00001d04: ADD 00001d05: CALLDATALOAD 00001d06: PUSH8 0xffffffffffffffff 00001d0f: DUP1 00001d10: DUP3 00001d11: GT 00001d12: ISZERO 00001d13: PUSH2 0x1d1b 00001d16: JUMPI 00001d17: PUSH1 0x00 00001d19: DUP1 00001d1a: REVERT 00001d1b: JUMPDEST 00001d1c: PUSH2 0x1d27 00001d1f: DUP12 00001d20: DUP4 00001d21: DUP13 00001d22: ADD 00001d23: PUSH2 0x1c78 00001d26: JUMP 00001d27: JUMPDEST 00001d28: SWAP1 00001d29: SWAP9 00001d2a: POP 00001d2b: SWAP7 00001d2c: POP 00001d2d: DUP7 00001d2e: SWAP2 00001d2f: POP 00001d30: PUSH2 0x1d3b 00001d33: PUSH1 0x40 00001d35: DUP12 00001d36: ADD 00001d37: PUSH2 0x1b45 00001d3a: JUMP 00001d3b: JUMPDEST 00001d3c: SWAP6 00001d3d: POP 00001d3e: PUSH2 0x1d49 00001d41: PUSH1 0x60 00001d43: DUP12 00001d44: ADD 00001d45: PUSH2 0x1b45 00001d48: JUMP 00001d49: JUMPDEST 00001d4a: SWAP5 00001d4b: POP 00001d4c: PUSH1 0x80 00001d4e: DUP11 00001d4f: ADD 00001d50: CALLDATALOAD 00001d51: SWAP4 00001d52: POP 00001d53: PUSH1 0xa0 00001d55: DUP11 00001d56: ADD 00001d57: CALLDATALOAD 00001d58: SWAP2 00001d59: POP 00001d5a: DUP1 00001d5b: DUP3 00001d5c: GT 00001d5d: ISZERO 00001d5e: PUSH2 0x1d66 00001d61: JUMPI 00001d62: PUSH1 0x00 00001d64: DUP1 00001d65: REVERT 00001d66: JUMPDEST 00001d67: DUP2 00001d68: DUP11 00001d69: ADD 00001d6a: SWAP2 00001d6b: POP 00001d6c: DUP11 00001d6d: PUSH1 0x1f 00001d6f: DUP4 00001d70: ADD 00001d71: SLT 00001d72: PUSH2 0x1d7a 00001d75: JUMPI 00001d76: PUSH1 0x00 00001d78: DUP1 00001d79: REVERT 00001d7a: JUMPDEST 00001d7b: DUP2 00001d7c: CALLDATALOAD 00001d7d: DUP2 00001d7e: DUP2 00001d7f: GT 00001d80: ISZERO 00001d81: PUSH2 0x1d8c 00001d84: JUMPI 00001d85: PUSH2 0x1d8c 00001d88: PUSH2 0x1cc4 00001d8b: JUMP 00001d8c: JUMPDEST 00001d8d: PUSH1 0x40 00001d8f: MLOAD 00001d90: PUSH1 0x1f 00001d92: DUP3 00001d93: ADD 00001d94: PUSH1 0x1f 00001d96: NOT 00001d97: SWAP1 00001d98: DUP2 00001d99: AND 00001d9a: PUSH1 0x3f 00001d9c: ADD 00001d9d: AND 00001d9e: DUP2 00001d9f: ADD 00001da0: SWAP1 00001da1: DUP4 00001da2: DUP3 00001da3: GT 00001da4: DUP2 00001da5: DUP4 00001da6: LT 00001da7: OR 00001da8: ISZERO 00001da9: PUSH2 0x1db4 00001dac: JUMPI 00001dad: PUSH2 0x1db4 00001db0: PUSH2 0x1cc4 00001db3: JUMP 00001db4: JUMPDEST 00001db5: DUP2 00001db6: PUSH1 0x40 00001db8: MSTORE 00001db9: DUP3 00001dba: DUP2 00001dbb: MSTORE 00001dbc: DUP14 00001dbd: PUSH1 0x20 00001dbf: DUP5 00001dc0: DUP8 00001dc1: ADD 00001dc2: ADD 00001dc3: GT 00001dc4: ISZERO 00001dc5: PUSH2 0x1dcd 00001dc8: JUMPI 00001dc9: PUSH1 0x00 00001dcb: DUP1 00001dcc: REVERT 00001dcd: JUMPDEST 00001dce: DUP3 00001dcf: PUSH1 0x20 00001dd1: DUP7 00001dd2: ADD 00001dd3: PUSH1 0x20 00001dd5: DUP4 00001dd6: ADD 00001dd7: CALLDATACOPY 00001dd8: PUSH1 0x00 00001dda: PUSH1 0x20 00001ddc: DUP5 00001ddd: DUP4 00001dde: ADD 00001ddf: ADD 00001de0: MSTORE 00001de1: DUP1 00001de2: SWAP6 00001de3: POP 00001de4: POP 00001de5: POP 00001de6: POP 00001de7: POP 00001de8: POP 00001de9: SWAP3 00001dea: SWAP6 00001deb: SWAP9 00001dec: SWAP2 00001ded: SWAP5 00001dee: SWAP8 00001def: POP 00001df0: SWAP3 00001df1: SWAP6 00001df2: POP 00001df3: JUMP 00001df4: JUMPDEST 00001df5: PUSH1 0x00 00001df7: DUP1 00001df8: PUSH1 0x40 00001dfa: DUP4 00001dfb: DUP6 00001dfc: SUB 00001dfd: SLT 00001dfe: ISZERO 00001dff: PUSH2 0x1e07 00001e02: JUMPI 00001e03: PUSH1 0x00 00001e05: DUP1 00001e06: REVERT 00001e07: JUMPDEST 00001e08: PUSH2 0x1e10 00001e0b: DUP4 00001e0c: PUSH2 0x1b45 00001e0f: JUMP 00001e10: JUMPDEST 00001e11: SWAP2 00001e12: POP 00001e13: PUSH2 0x1e1e 00001e16: PUSH1 0x20 00001e18: DUP5 00001e19: ADD 00001e1a: PUSH2 0x1b45 00001e1d: JUMP 00001e1e: JUMPDEST 00001e1f: SWAP1 00001e20: POP 00001e21: SWAP3 00001e22: POP 00001e23: SWAP3 00001e24: SWAP1 00001e25: POP 00001e26: JUMP 00001e27: JUMPDEST 00001e28: PUSH1 0x00 00001e2a: DUP1 00001e2b: PUSH1 0x00 00001e2d: PUSH1 0x60 00001e2f: DUP5 00001e30: DUP7 00001e31: SUB 00001e32: SLT 00001e33: ISZERO 00001e34: PUSH2 0x1e3c 00001e37: JUMPI 00001e38: PUSH1 0x00 00001e3a: DUP1 00001e3b: REVERT 00001e3c: JUMPDEST 00001e3d: PUSH2 0x1e45 00001e40: DUP5 00001e41: PUSH2 0x1b45 00001e44: JUMP 00001e45: JUMPDEST 00001e46: SWAP3 00001e47: POP 00001e48: PUSH2 0x1e53 00001e4b: PUSH1 0x20 00001e4d: DUP6 00001e4e: ADD 00001e4f: PUSH2 0x1b45 00001e52: JUMP 00001e53: JUMPDEST 00001e54: SWAP2 00001e55: POP 00001e56: PUSH1 0x40 00001e58: DUP5 00001e59: ADD 00001e5a: CALLDATALOAD 00001e5b: SWAP1 00001e5c: POP 00001e5d: SWAP3 00001e5e: POP 00001e5f: SWAP3 00001e60: POP 00001e61: SWAP3 00001e62: JUMP 00001e63: JUMPDEST 00001e64: PUSH1 0x00 00001e66: DUP1 00001e67: PUSH1 0x00 00001e69: DUP1 00001e6a: PUSH1 0x00 00001e6c: DUP1 00001e6d: PUSH1 0x00 00001e6f: PUSH1 0xa0 00001e71: DUP9 00001e72: DUP11 00001e73: SUB 00001e74: SLT 00001e75: ISZERO 00001e76: PUSH2 0x1e7e 00001e79: JUMPI 00001e7a: PUSH1 0x00 00001e7c: DUP1 00001e7d: REVERT 00001e7e: JUMPDEST 00001e7f: DUP8 00001e80: CALLDATALOAD 00001e81: PUSH8 0xffffffffffffffff 00001e8a: DUP1 00001e8b: DUP3 00001e8c: GT 00001e8d: ISZERO 00001e8e: PUSH2 0x1e96 00001e91: JUMPI 00001e92: PUSH1 0x00 00001e94: DUP1 00001e95: REVERT 00001e96: JUMPDEST 00001e97: PUSH2 0x1ea2 00001e9a: DUP12 00001e9b: DUP4 00001e9c: DUP13 00001e9d: ADD 00001e9e: PUSH2 0x1c78 00001ea1: JUMP 00001ea2: JUMPDEST 00001ea3: SWAP1 00001ea4: SWAP10 00001ea5: POP 00001ea6: SWAP8 00001ea7: POP 00001ea8: DUP8 00001ea9: SWAP2 00001eaa: POP 00001eab: PUSH2 0x1eb6 00001eae: PUSH1 0x20 00001eb0: DUP12 00001eb1: ADD 00001eb2: PUSH2 0x1b45 00001eb5: JUMP 00001eb6: JUMPDEST 00001eb7: SWAP7 00001eb8: POP 00001eb9: PUSH2 0x1ec4 00001ebc: PUSH1 0x40 00001ebe: DUP12 00001ebf: ADD 00001ec0: PUSH2 0x1b45 00001ec3: JUMP 00001ec4: JUMPDEST 00001ec5: SWAP6 00001ec6: POP 00001ec7: PUSH1 0x60 00001ec9: DUP11 00001eca: ADD 00001ecb: CALLDATALOAD 00001ecc: SWAP5 00001ecd: POP 00001ece: PUSH1 0x80 00001ed0: DUP11 00001ed1: ADD 00001ed2: CALLDATALOAD 00001ed3: SWAP2 00001ed4: POP 00001ed5: DUP1 00001ed6: DUP3 00001ed7: GT 00001ed8: ISZERO 00001ed9: PUSH2 0x1ee1 00001edc: JUMPI 00001edd: PUSH1 0x00 00001edf: DUP1 00001ee0: REVERT 00001ee1: JUMPDEST 00001ee2: DUP2 00001ee3: DUP11 00001ee4: ADD 00001ee5: SWAP2 00001ee6: POP 00001ee7: DUP11 00001ee8: PUSH1 0x1f 00001eea: DUP4 00001eeb: ADD 00001eec: SLT 00001eed: PUSH2 0x1ef5 00001ef0: JUMPI 00001ef1: PUSH1 0x00 00001ef3: DUP1 00001ef4: REVERT 00001ef5: JUMPDEST 00001ef6: DUP2 00001ef7: CALLDATALOAD 00001ef8: DUP2 00001ef9: DUP2 00001efa: GT 00001efb: ISZERO 00001efc: PUSH2 0x1f04 00001eff: JUMPI 00001f00: PUSH1 0x00 00001f02: DUP1 00001f03: REVERT 00001f04: JUMPDEST 00001f05: DUP12 00001f06: PUSH1 0x20 00001f08: DUP3 00001f09: DUP6 00001f0a: ADD 00001f0b: ADD 00001f0c: GT 00001f0d: ISZERO 00001f0e: PUSH2 0x1f16 00001f11: JUMPI 00001f12: PUSH1 0x00 00001f14: DUP1 00001f15: REVERT 00001f16: JUMPDEST 00001f17: PUSH1 0x20 00001f19: DUP4 00001f1a: ADD 00001f1b: SWAP5 00001f1c: POP 00001f1d: DUP1 00001f1e: SWAP4 00001f1f: POP 00001f20: POP 00001f21: POP 00001f22: POP 00001f23: SWAP3 00001f24: SWAP6 00001f25: SWAP9 00001f26: SWAP2 00001f27: SWAP5 00001f28: SWAP8 00001f29: POP 00001f2a: SWAP3 00001f2b: SWAP6 00001f2c: POP 00001f2d: JUMP 00001f2e: JUMPDEST 00001f2f: DUP1 00001f30: ISZERO 00001f31: ISZERO 00001f32: DUP2 00001f33: EQ 00001f34: PUSH2 0x04c4 00001f37: JUMPI 00001f38: PUSH1 0x00 00001f3a: DUP1 00001f3b: REVERT 00001f3c: JUMPDEST 00001f3d: PUSH1 0x00 00001f3f: DUP1 00001f40: PUSH1 0x40 00001f42: DUP4 00001f43: DUP6 00001f44: SUB 00001f45: SLT 00001f46: ISZERO 00001f47: PUSH2 0x1f4f 00001f4a: JUMPI 00001f4b: PUSH1 0x00 00001f4d: DUP1 00001f4e: REVERT 00001f4f: JUMPDEST 00001f50: PUSH2 0x1f58 00001f53: DUP4 00001f54: PUSH2 0x1b45 00001f57: JUMP 00001f58: JUMPDEST 00001f59: SWAP2 00001f5a: POP 00001f5b: PUSH1 0x20 00001f5d: DUP4 00001f5e: ADD 00001f5f: CALLDATALOAD 00001f60: PUSH2 0x1f68 00001f63: DUP2 00001f64: PUSH2 0x1f2e 00001f67: JUMP 00001f68: JUMPDEST 00001f69: DUP1 00001f6a: SWAP2 00001f6b: POP 00001f6c: POP 00001f6d: SWAP3 00001f6e: POP 00001f6f: SWAP3 00001f70: SWAP1 00001f71: POP 00001f72: JUMP 00001f73: JUMPDEST 00001f74: PUSH1 0x00 00001f76: DUP1 00001f77: PUSH1 0x40 00001f79: DUP4 00001f7a: DUP6 00001f7b: SUB 00001f7c: SLT 00001f7d: ISZERO 00001f7e: PUSH2 0x1f86 00001f81: JUMPI 00001f82: PUSH1 0x00 00001f84: DUP1 00001f85: REVERT 00001f86: JUMPDEST 00001f87: PUSH2 0x1f8f 00001f8a: DUP4 00001f8b: PUSH2 0x1b45 00001f8e: JUMP 00001f8f: JUMPDEST 00001f90: SWAP5 00001f91: PUSH1 0x20 00001f93: SWAP4 00001f94: SWAP1 00001f95: SWAP4 00001f96: ADD 00001f97: CALLDATALOAD 00001f98: SWAP4 00001f99: POP 00001f9a: POP 00001f9b: POP 00001f9c: JUMP 00001f9d: JUMPDEST 00001f9e: PUSH1 0x00 00001fa0: DUP2 00001fa1: DUP5 00001fa2: DUP3 00001fa3: JUMPDEST 00001fa4: DUP6 00001fa5: DUP2 00001fa6: LT 00001fa7: ISZERO 00001fa8: PUSH2 0x1fd2 00001fab: JUMPI 00001fac: PUSH1 0x01 00001fae: PUSH1 0x01 00001fb0: PUSH1 0xa0 00001fb2: SHL 00001fb3: SUB 00001fb4: PUSH2 0x1fbc 00001fb7: DUP4 00001fb8: PUSH2 0x1b45 00001fbb: JUMP 00001fbc: JUMPDEST 00001fbd: AND 00001fbe: DUP4 00001fbf: MSTORE 00001fc0: PUSH1 0x20 00001fc2: SWAP3 00001fc3: DUP4 00001fc4: ADD 00001fc5: SWAP3 00001fc6: SWAP2 00001fc7: SWAP1 00001fc8: SWAP2 00001fc9: ADD 00001fca: SWAP1 00001fcb: PUSH1 0x01 00001fcd: ADD 00001fce: PUSH2 0x1fa3 00001fd1: JUMP 00001fd2: JUMPDEST 00001fd3: POP 00001fd4: SWAP1 00001fd5: SWAP6 00001fd6: SWAP5 00001fd7: POP 00001fd8: POP 00001fd9: POP 00001fda: POP 00001fdb: POP 00001fdc: JUMP 00001fdd: JUMPDEST 00001fde: PUSH4 0x4e487b71 00001fe3: PUSH1 0xe0 00001fe5: SHL 00001fe6: PUSH1 0x00 00001fe8: MSTORE 00001fe9: PUSH1 0x11 00001feb: PUSH1 0x04 00001fed: MSTORE 00001fee: PUSH1 0x24 00001ff0: PUSH1 0x00 00001ff2: REVERT 00001ff3: JUMPDEST 00001ff4: DUP1 00001ff5: DUP3 00001ff6: ADD 00001ff7: DUP1 00001ff8: DUP3 00001ff9: GT 00001ffa: ISZERO 00001ffb: PUSH2 0x1005 00001ffe: JUMPI 00001fff: PUSH2 0x1005 00002002: PUSH2 0x1fdd 00002005: JUMP 00002006: JUMPDEST 00002007: PUSH1 0x00 00002009: PUSH1 0x01 0000200b: DUP3 0000200c: ADD 0000200d: PUSH2 0x2018 00002010: JUMPI 00002011: PUSH2 0x2018 00002014: PUSH2 0x1fdd 00002017: JUMP 00002018: JUMPDEST 00002019: POP 0000201a: PUSH1 0x01 0000201c: ADD 0000201d: SWAP1 0000201e: JUMP 0000201f: JUMPDEST 00002020: DUP2 00002021: DUP2 00002022: SUB 00002023: DUP2 00002024: DUP2 00002025: GT 00002026: ISZERO 00002027: PUSH2 0x1005 0000202a: JUMPI 0000202b: PUSH2 0x1005 0000202e: PUSH2 0x1fdd 00002031: JUMP 00002032: JUMPDEST 00002033: PUSH4 0x4e487b71 00002038: PUSH1 0xe0 0000203a: SHL 0000203b: PUSH1 0x00 0000203d: MSTORE 0000203e: PUSH1 0x21 00002040: PUSH1 0x04 00002042: MSTORE 00002043: PUSH1 0x24 00002045: PUSH1 0x00 00002047: REVERT 00002048: JUMPDEST 00002049: PUSH4 0x4e487b71 0000204e: PUSH1 0xe0 00002050: SHL 00002051: PUSH1 0x00 00002053: MSTORE 00002054: PUSH1 0x32 00002056: PUSH1 0x04 00002058: MSTORE 00002059: PUSH1 0x24 0000205b: PUSH1 0x00 0000205d: REVERT 0000205e: JUMPDEST 0000205f: DUP2 00002060: DUP4 00002061: MSTORE 00002062: PUSH1 0x00 00002064: PUSH1 0x20 00002066: DUP1 00002067: DUP6 00002068: ADD 00002069: SWAP5 0000206a: POP 0000206b: DUP3 0000206c: PUSH1 0x00 0000206e: JUMPDEST 0000206f: DUP6 00002070: DUP2 00002071: LT 00002072: ISZERO 00002073: PUSH2 0x1bfd 00002076: JUMPI 00002077: PUSH1 0x01 00002079: PUSH1 0x01 0000207b: PUSH1 0xa0 0000207d: SHL 0000207e: SUB 0000207f: PUSH2 0x2087 00002082: DUP4 00002083: PUSH2 0x1b45 00002086: JUMP 00002087: JUMPDEST 00002088: AND 00002089: DUP8 0000208a: MSTORE 0000208b: SWAP6 0000208c: DUP3 0000208d: ADD 0000208e: SWAP6 0000208f: SWAP1 00002090: DUP3 00002091: ADD 00002092: SWAP1 00002093: PUSH1 0x01 00002095: ADD 00002096: PUSH2 0x206e 00002099: JUMP 0000209a: JUMPDEST 0000209b: PUSH1 0x80 0000209d: DUP2 0000209e: MSTORE 0000209f: PUSH1 0x00 000020a1: PUSH2 0x20ae 000020a4: PUSH1 0x80 000020a6: DUP4 000020a7: ADD 000020a8: DUP8 000020a9: DUP10 000020aa: PUSH2 0x205e 000020ad: JUMP 000020ae: JUMPDEST 000020af: PUSH1 0x01 000020b1: PUSH1 0x01 000020b3: PUSH1 0xa0 000020b5: SHL 000020b6: SUB 000020b7: DUP7 000020b8: DUP2 000020b9: AND 000020ba: PUSH1 0x20 000020bc: DUP6 000020bd: ADD 000020be: MSTORE 000020bf: DUP6 000020c0: AND 000020c1: PUSH1 0x40 000020c3: DUP5 000020c4: ADD 000020c5: MSTORE 000020c6: DUP3 000020c7: DUP2 000020c8: SUB 000020c9: PUSH1 0x60 000020cb: DUP5 000020cc: ADD 000020cd: MSTORE 000020ce: PUSH2 0x20d7 000020d1: DUP2 000020d2: DUP6 000020d3: PUSH2 0x1bcc 000020d6: JUMP 000020d7: JUMPDEST 000020d8: SWAP9 000020d9: SWAP8 000020da: POP 000020db: POP 000020dc: POP 000020dd: POP 000020de: POP 000020df: POP 000020e0: POP 000020e1: POP 000020e2: JUMP 000020e3: JUMPDEST 000020e4: PUSH1 0x00 000020e6: PUSH1 0x20 000020e8: DUP3 000020e9: DUP5 000020ea: SUB 000020eb: SLT 000020ec: ISZERO 000020ed: PUSH2 0x20f5 000020f0: JUMPI 000020f1: PUSH1 0x00 000020f3: DUP1 000020f4: REVERT 000020f5: JUMPDEST 000020f6: DUP2 000020f7: MLOAD 000020f8: PUSH2 0x1068 000020fb: DUP2 000020fc: PUSH2 0x1f2e 000020ff: JUMP 00002100: JUMPDEST 00002101: PUSH1 0x00 00002103: PUSH1 0x01 00002105: DUP1 00002106: PUSH1 0xa0 00002108: SHL 00002109: SUB 0000210a: DUP1 0000210b: DUP9 0000210c: AND 0000210d: DUP4 0000210e: MSTORE 0000210f: PUSH1 0x80 00002111: PUSH1 0x20 00002113: DUP5 00002114: ADD 00002115: MSTORE 00002116: PUSH2 0x2123 00002119: PUSH1 0x80 0000211b: DUP5 0000211c: ADD 0000211d: DUP8 0000211e: DUP10 0000211f: PUSH2 0x205e 00002122: JUMP 00002123: JUMPDEST 00002124: DUP2 00002125: DUP7 00002126: AND 00002127: PUSH1 0x40 00002129: DUP6 0000212a: ADD 0000212b: MSTORE 0000212c: DUP4 0000212d: DUP2 0000212e: SUB 0000212f: PUSH1 0x60 00002131: DUP6 00002132: ADD 00002133: MSTORE 00002134: PUSH2 0x213d 00002137: DUP2 00002138: DUP7 00002139: PUSH2 0x1bcc 0000213c: JUMP 0000213d: JUMPDEST 0000213e: SWAP10 0000213f: SWAP9 00002140: POP 00002141: POP 00002142: POP 00002143: POP 00002144: POP 00002145: POP 00002146: POP 00002147: POP 00002148: POP 00002149: JUMP 0000214a: JUMPDEST 0000214b: PUSH1 0x01 0000214d: DUP2 0000214e: DUP2 0000214f: SHR 00002150: SWAP1 00002151: DUP3 00002152: AND 00002153: DUP1 00002154: PUSH2 0x215e 00002157: JUMPI 00002158: PUSH1 0x7f 0000215a: DUP3 0000215b: AND 0000215c: SWAP2 0000215d: POP 0000215e: JUMPDEST 0000215f: PUSH1 0x20 00002161: DUP3 00002162: LT 00002163: DUP2 00002164: SUB 00002165: PUSH2 0x217e 00002168: JUMPI 00002169: PUSH4 0x4e487b71 0000216e: PUSH1 0xe0 00002170: SHL 00002171: PUSH1 0x00 00002173: MSTORE 00002174: PUSH1 0x22 00002176: PUSH1 0x04 00002178: MSTORE 00002179: PUSH1 0x24 0000217b: PUSH1 0x00 0000217d: REVERT 0000217e: JUMPDEST 0000217f: POP 00002180: SWAP2 00002181: SWAP1 00002182: POP 00002183: JUMP 00002184: JUMPDEST 00002185: DUP3 00002186: DUP2 00002187: MSTORE 00002188: PUSH1 0x40 0000218a: PUSH1 0x20 0000218c: DUP3 0000218d: ADD 0000218e: MSTORE 0000218f: PUSH1 0x00 00002191: PUSH2 0x219d 00002194: PUSH1 0x40 00002196: DUP4 00002197: ADD 00002198: DUP5 00002199: PUSH2 0x1ba0 0000219c: JUMP 0000219d: JUMPDEST 0000219e: SWAP5 0000219f: SWAP4 000021a0: POP 000021a1: POP 000021a2: POP 000021a3: POP 000021a4: JUMP 000021a5: JUMPDEST 000021a6: PUSH1 0x00 000021a8: DUP3 000021a9: MLOAD 000021aa: PUSH2 0x21b7 000021ad: DUP2 000021ae: DUP5 000021af: PUSH1 0x20 000021b1: DUP8 000021b2: ADD 000021b3: PUSH2 0x1b7c 000021b6: JUMP 000021b7: JUMPDEST 000021b8: SWAP2 000021b9: SWAP1 000021ba: SWAP2 000021bb: ADD 000021bc: SWAP3 000021bd: SWAP2 000021be: POP 000021bf: POP 000021c0: JUMP 000021c1: JUMPDEST 000021c2: PUSH1 0x00 000021c4: PUSH1 0x20 000021c6: DUP3 000021c7: DUP5 000021c8: SUB 000021c9: SLT 000021ca: ISZERO 000021cb: PUSH2 0x21d3 000021ce: JUMPI 000021cf: PUSH1 0x00 000021d1: DUP1 000021d2: REVERT 000021d3: JUMPDEST 000021d4: POP 000021d5: MLOAD 000021d6: SWAP2 000021d7: SWAP1 000021d8: POP 000021d9: JUMP 000021da: INVALID 000021db: LOG2 000021dc: PUSH5 0x6970667358 000021e2: UNKNOWN(0x22) 000021e3: SLT 000021e4: KECCAK256 000021e5: UNKNOWN(0xF7) 000021e6: UNKNOWN(0xBF) 000021e7: UNKNOWN(0xC8) 000021e8: PUSH21 0x00d175520d3a2e90e3041f83766bb8dbee0c14db0d 000021fe: UNKNOWN(0xB8) 000021ff: RETURN 00002200: TIMESTAMP 00002201: DUP1 00002202: PUSH14
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x593749e54baf1b341657ac42e07bf4c04eb3521f7d651fac9f25be0a81c9c8c8
call_targets:
0xf047ab4c75cebf0eb9ed34ae2c186f3611aeafa6
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x593749e54baf1b341657ac42e07bf4c04eb3521f7d651fac9f25be0a81c9c8c8",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf047ab4c75cebf0eb9ed34ae2c186f3611aeafa6"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xe3c34216",
"selector": "0xe3c34216",
"calldata_variants": [
"0xe3c34216",
"0xe3c342160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe63b81a6",
"selector": "0xe63b81a6",
"calldata_variants": [
"0xe63b81a6",
"0xe63b81a60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf03639e3",
"selector": "0xf03639e3",
"calldata_variants": [
"0xf03639e3",
"0xf03639e30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3fef3a3",
"selector": "0xf3fef3a3",
"calldata_variants": [
"0xf3fef3a3",
"0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6203e35",
"selector": "0xf6203e35",
"calldata_variants": [
"0xf6203e35",
"0xf6203e350000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa5a21fdf",
"selector": "0xa5a21fdf",
"calldata_variants": [
"0xa5a21fdf",
"0xa5a21fdf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb203bb99",
"selector": "0xb203bb99",
"calldata_variants": [
"0xb203bb99",
"0xb203bb990000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3629,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5104,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5248,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 4,
"guards_detected": [],
"untrusted_call_count": 4
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x593749e54baf1b341657ac42e07bf4c04eb3521f7d651fac9f25be0a81c9c8c8
call_targets:
0xf047ab4c75cebf0eb9ed34ae2c186f3611aeafa6
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x593749e54baf1b341657ac42e07bf4c04eb3521f7d651fac9f25be0a81c9c8c8",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf047ab4c75cebf0eb9ed34ae2c186f3611aeafa6"
],
"matched_probe": null,
"target_varies": false,
"classification": "constant_target"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xe3c34216",
"selector": "0xe3c34216",
"calldata_variants": [
"0xe3c34216",
"0xe3c342160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe63b81a6",
"selector": "0xe63b81a6",
"calldata_variants": [
"0xe63b81a6",
"0xe63b81a60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf03639e3",
"selector": "0xf03639e3",
"calldata_variants": [
"0xf03639e3",
"0xf03639e30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3fef3a3",
"selector": "0xf3fef3a3",
"calldata_variants": [
"0xf3fef3a3",
"0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6203e35",
"selector": "0xf6203e35",
"calldata_variants": [
"0xf6203e35",
"0xf6203e350000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa5a21fdf",
"selector": "0xa5a21fdf",
"calldata_variants": [
"0xa5a21fdf",
"0xa5a21fdf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb203bb99",
"selector": "0xb203bb99",
"calldata_variants": [
"0xb203bb99",
"0xb203bb990000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3629,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5104,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5248,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 4,
"guards_detected": []
}
|
| medium | math | codex | Fee-on-transfer tokens can inflate balances and drain pool | 75 | no | — |
viewevidence_json{
"evidence": "`depositFor` increments `balance[_token][_for]` by `_amount` before calling `safeTransferFrom`, so credited balances do not reflect actual received tokens for taxed tokens.",
"locations": [
"contracts/contracts/ZtakingPool.sol:72"
],
"recommendation": "Credit deposits based on the actual amount received (balance-before/after delta), or explicitly disallow fee-on-transfer/rebasing tokens and enforce it in allowlist policy and/or runtime checks.",
"exploit_scenario": "If a fee-on-transfer or deflationary token is allowlisted, an attacker can deposit 100 units while the pool receives less (e.g., 90). The pool credits the full 100 to the attacker, who can later withdraw 100, effectively taking the shortfall from other stakers\u2019 liquidity or causing insolvency for late withdrawers."
}
|
| low | other | codex | Unchecked ERC20 approve during migration can desync balances/allowances for non-standard tokens | 65 | no | — |
viewevidence_json{
"evidence": "`_migrate` zeroes balances, then calls `IERC20(_tokens[i]).approve(_migratorContract, _amounts[i])` without checking the return value.",
"locations": [
"contracts/contracts/ZtakingPool.sol:210"
],
"recommendation": "Use `SafeERC20.forceApprove`/`safeIncreaseAllowance` and handle failures; consider zeroing balances only after approvals and migrator transfers succeed.",
"exploit_scenario": "For tokens that return false on `approve` or require allowance to be zeroed first, the `approve` call can silently fail. Since balances are already zeroed, the pool proceeds to the migrator; if the migrator does not revert on a failed `transferFrom`, the user\u2019s balance is gone while tokens remain in the pool or stale allowances persist."
}
|