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

Analysis Run

14d2a919-005d-46a6-a7b3-489433ee41c1

failed
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 4:25 AM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Nested initializer modifiers brick initialization
crit 0 high 0 proxy context implementation known
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30410 report.consolidate complete 1 / 1 3 months ago
93859 artifact.fetch failed 1 / 3 1 week ago
93860 tool.cast_disasm complete 1 / 3 1 week ago
93861 analysis.bundle complete 1 / 3 1 week ago
93862 capability.graph complete 1 / 3 1 week ago
93863 detector.run complete 1 / 3 1 week ago
93864 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: yes
Verified Source: yes

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
2
No findings?
no
Summary
Found 2 issues: a broken initializer chain that makes proxy initialization revert, and unchecked ERC20 transfer return values that can desync limits/events from actual token transfers.
View stderr
[codex:1120526] OpenAI Codex v0.77.0 (research preview)
[codex:1120526] --------
[codex:1120526] workdir: /tmp/codex-multi-ft4i9zca
[codex:1120526] model: gpt-5.2-codex
[codex:1120526] provider: openai
[codex:1120526] approval: never
[codex:1120526] sandbox: read-only
[codex:1120526] reasoning effort: xhigh
[codex:1120526] reasoning summaries: auto
[codex:1120526] session id: 019b6856-6af7-7162-b4c3-990bd670495f
[codex:1120526] --------
[codex:1120526] user
[codex:1120526] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1120526] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1120526] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1120526] 
[codex:1120526] Scope rules:
[codex:1120526] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1120526] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1120526] 
[codex:1120526] Output MUST be valid JSON matching the provided schema.
[codex:1120526] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1120526] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1120526] 
[codex:1120526] Output constraints (IMPORTANT):
[codex:1120526] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1120526] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1120526] mcp startup: no servers
[codex:1120526] 
[codex:1120526] thinking
[codex:1120526] **Preparing to review audit instructions**
[codex:1120526] exec
[codex:1120526] /bin/bash -lc ls in /tmp/codex-multi-ft4i9zca succeeded in 6ms:
[codex:1120526] AUDIT_BUNDLE.txt
[codex:1120526] codex-output-schema.json
[codex:1120526] contracts
[codex:1120526] 
[codex:1120526] thinking
[codex:1120526] **Reading AUDIT_BUNDLE file**
[codex:1120526] exec
[codex:1120526] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-ft4i9zca succeeded in 5ms:
[codex:1120526] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1120526] 
[codex:1120526] ================================================================================
[codex:1120526] FILE: contracts/@openzeppelin/contracts/access/IAccessControl.sol
[codex:1120526] ================================================================================
[codex:1120526] // SPDX-License-Identifier: MIT
[codex:1120526] // OpenZeppelin Contracts (last updated v5.0.0) (access/IAccessControl.sol)
[codex:1120526] 
[codex:1120526] pragma solidity ^0.8.20;
[codex:1120526] 
[codex:1120526] /**
[codex:1120526]  * @dev External interface of AccessControl declared to support ERC165 detection.
[codex:1120526]  */
[codex:1120526] interface IAccessControl {
[codex:1120526]     /**
[codex:1120526]      * @dev The `account` is missing a role.
[codex:1120526]      */
[codex:1120526]     error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);
[codex:1120526] 
[codex:1120526]     /**
[codex:1120526] 
[codex:1120526] thinking
[codex:1120526] **Identifying first-party contracts**
[codex:1120526] exec
[codex:1120526] /bin/bash -lc 'rg -n "FILE: contracts/contracts" AUDIT_BUNDLE.txt' in /tmp/codex-multi-ft4i9zca succeeded in 6ms:
[codex:1120526] 767:FILE: contracts/contracts/ExtendedAccessControlUpgradeable.sol
[codex:1120526] 880:FILE: contracts/contracts/Limiter.sol
[codex:1120526] 954:FILE: contracts/contracts/LinkedList.sol
[codex:1120526] 1031:FILE: contracts/contracts/Wallet.sol
[codex:1120526] 
[codex:1120526] thinking
[codex:1120526] **Extracting contract code for review**
[codex:1120526] exec
[codex:1120526] /bin/bash -lc "sed -n '740,930p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ft4i9zca succeeded in 5ms:
[codex:1120526] /**
[codex:1120526]  * @dev Implementation of the {IERC165} interface.
[codex:1120526]  *
[codex:1120526]  * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
[codex:1120526]  * for the additional interface id that will be supported. For example:
[codex:1120526]  *
[codex:1120526]  * ```solidity
[codex:1120526]  * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
[codex:1120526]  *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
[codex:1120526]  * }
[codex:1120526]  * ```
[codex:1120526]  */
[codex:1120526] abstract contract ERC165Upgradeable is Initializable, IERC165 {
[codex:1120526]     function __ERC165_init() internal onlyInitializing {
[codex:1120526]     }
[codex:1120526] 
[codex:1120526]     function __ERC165_init_unchained() internal onlyInitializing {
[codex:1120526]     }
[codex:1120526]     /**
[codex:1120526]      * @dev See {IERC165-supportsInterface}.
[codex:1120526] exec
[codex:1120526] /bin/bash -lc "sed -n '930,1125p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ft4i9zca succeeded in 5ms:
[codex:1120526]             if (self.operations[key].timestamp > block.timestamp - 24 hours) {
[codex:1120526]                 break;
[codex:1120526]             }
[codex:1120526]             delete self.operations[key];
[codex:1120526]             key = self.keys.remove(key);
[codex:1120526]         }
[codex:1120526]         self.operations[self.keys.generate()] = Operation({amount: amount, timestamp: block.timestamp});
[codex:1120526]     }
[codex:1120526] 
[codex:1120526]     function addOperation(Limiter storage self, uint256 amount) internal returns (bool) {
[codex:1120526]         _addOperation(self, int256(amount));
[codex:1120526]         return self.remainingLimit() >= 0;
[codex:1120526]     }
[codex:1120526] 
[codex:1120526]     function removeOperations(Limiter storage self) internal {
[codex:1120526]         uint128 key = self.keys.first;
[codex:1120526]         while (key != 0) {
[codex:1120526]             delete self.operations[key];
[codex:1120526]             key = self.keys.remove(key);
[codex:1120526]         }
[codex:1120526] 
[codex:1120526] 
[codex:1120526] thinking
[codex:1120526] **Analyzing upgradeable initializer misuse and transfer risks**
[codex:1120526] 
[codex:1120526] I'm carefully inspecting how the contract misuses OpenZeppelin’s initializer pattern—specifically nested initializers marked `initializer` instead of `onlyInitializing`—which would cause initialization to revert and potentially lock the contract unusable. This isn’t a direct exploit but a serious upgradeability flaw causing DoS by making the contract permanently uninitialized. I’m also evaluating token transfer calls without return value checks, which could let role-holders consume allowances without actual transfers if tokens return false instead of reverting. There are subtle reentrancy considerations around token transfers and limit tracking, but the contract mostly applies checks-effects-interactions. Overall, I’m focusing on how these design choices impact security and operability.
[codex:1120526] thinking
[codex:1120526] **Inspecting linked list and initializer behavior**
[codex:1120526] 
[codex:1120526] I'm examining the linked list logic for operation removal to confirm it correctly prunes old entries ordered by timestamp within a 24-hour window, considering minor timestamp manipulation is negligible. I’m also revisiting the initializer pattern, reinforcing that multiple initializers marked with `initializer` instead of `onlyInitializing` create bugs and revert during initialization. To be sure, I’m planning to verify the exact initializer modifier logic in the bundled Initializable.sol code.
[codex:1120526] exec
[codex:1120526] /bin/bash -lc 'rg -n "modifier initializer" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-ft4i9zca succeeded in 6ms:
[codex:1120526] 565:    modifier initializer() {
[codex:1120526] exec
[codex:1120526] /bin/bash -lc "sed -n '540,640p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ft4i9zca succeeded in 5ms:
[codex:1120526]     /**
[codex:1120526]      * @dev The contract is already initialized.
[codex:1120526]      */
[codex:1120526]     error InvalidInitialization();
[codex:1120526] 
[codex:1120526]     /**
[codex:1120526]      * @dev The contract is not initializing.
[codex:1120526]      */
[codex:1120526]     error NotInitializing();
[codex:1120526] 
[codex:1120526]     /**
[codex:1120526]      * @dev Triggered when the contract has been initialized or reinitialized.
[codex:1120526]      */
[codex:1120526]     event Initialized(uint64 version);
[codex:1120526] 
[codex:1120526]     /**
[codex:1120526]      * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,
[codex:1120526]      * `onlyInitializing` functions can be used to initialize parent contracts.
[codex:1120526]      *
[codex:1120526]      * Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any
[codex:1120526] 
[codex:1120526] 
[codex:1120526] thinking
[codex:1120526] **Analyzing upgradeability and token transfer issues**
[codex:1120526] 
[codex:1120526] I'm reviewing the ExtendedAccessControl initialization bug that prevents proper proxy setup, causing permanent uninitialized contracts—it's a serious deployment flaw but not directly exploitable. I'm also checking token transfer limits, noting a subtle vulnerability where very large amounts can bypass limits due to int256 conversion and a potential denial-of-service issue from unchecked IERC20 transfer return values allowing malicious tokens to exhaust limits without actual transfers. Additionally, I see some minor concerns about non-upgradeable ReentrancyGuard usage, potential overflows in timestamp arithmetic on fresh chains, and role management nuances; overall, these paint a complex picture of upgradeability and access control problems worth reporting.
[codex:1120526] thinking
[codex:1120526] **Inspecting limiter interactions and initializer misuse**
[codex:1120526] 
[codex:1120526] I'm looking closely at how global and per-beneficiary limiters interact, noting that limits default to zero and revert transfers unless properly set. The admin's ability to call temporary limit adjustments without caps seems intentional but worth mentioning. The nested initializer misuse in ExtendedAccessControlUpgradeable remains a critical issue because it causes initialization to revert, effectively bricking deployment. I'm also verifying nuances around role granting, reentrancy considerations during transfers, unchecked token transfer return values that could cause accounting issues, and whether the limiter logic safely handles edge cases like timestamp subtraction and integer conversions. Overall, these confirm the major initializer bug plus several secondary concerns about state and limit management worth documenting with file references.
[codex:1120526] exec
[codex:1120526] /bin/bash -lc 'nl -ba contracts/contracts/ExtendedAccessControlUpgradeable.sol' in /tmp/codex-multi-ft4i9zca succeeded in 5ms:
[codex:1120526]      1	// SPDX-License-Identifier: MIT
[codex:1120526]      2	pragma solidity ^0.8.20;
[codex:1120526]      3	
[codex:1120526]      4	import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
[codex:1120526]      5	
[codex:1120526]      6	contract ExtendedAccessControlUpgradeable is AccessControlUpgradeable {
[codex:1120526]      7	    /// @custom:storage-location erc7201:fortesecurities.ExtendedAccessControlUpgradeable
[codex:1120526]      8	    struct ExtendedAccessControlUpgradeableStorage {
[codex:1120526]      9	        bytes32[] roles;
[codex:1120526]     10	    }
[codex:1120526]     11	
[codex:1120526]     12	    // keccak256(abi.encode(uint256(keccak256("fortesecurities.ExtendedAccessControlUpgradeable")) - 1)) & ~bytes32(uint256(0xff))
[codex:1120526]     13	    bytes32 private constant ExtendedAccessControlUpgradeableStorageLocation =
[codex:1120526]     14	        0x19b29a04048f51eb9591acef31c8d25631a0f178287c237da958990d82c90400;
[codex:1120526]     15	
[codex:1120526]     16	    function _getExtendedAccessControlUpgradeableStorage()
[codex:1120526]     17	        private
[codex:1120526]     18	        pure
[codex:1120526]     19	        returns (ExtendedAccessControlUpgradeableStorage storage $)
[codex:1120526]     20	    {
[codex:1120526] 
[codex:1120526] thinking
[codex:1120526] **Tracking line numbers for contracts**
[codex:1120526] exec
[codex:1120526] /bin/bash -lc 'nl -ba contracts/contracts/Wallet.sol' in /tmp/codex-multi-ft4i9zca succeeded in 5ms:
[codex:1120526]      1	// SPDX-License-Identifier: MIT
[codex:1120526]      2	pragma solidity ^0.8.20;
[codex:1120526]      3	
[codex:1120526]      4	import {Limiter, LimiterLibrary, Operation} from "./Limiter.sol";
[codex:1120526]      5	import {ExtendedAccessControlUpgradeable} from "./ExtendedAccessControlUpgradeable.sol";
[codex:1120526]      6	import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
[codex:1120526]      7	
[codex:1120526]      8	using LimiterLibrary for Limiter;
[codex:1120526]      9	
[codex:1120526]     10	struct BeneficiaryLimiter {
[codex:1120526]     11	    Limiter limiter;
[codex:1120526]     12	    mapping(address => Limiter) beneficiaryLimiters;
[codex:1120526]     13	}
[codex:1120526]     14	
[codex:1120526]     15	interface IERC20 {
[codex:1120526]     16	    function transfer(address beneficiary, uint256 amount) external;
[codex:1120526]     17	}
[codex:1120526]     18	
[codex:1120526]     19	contract Wallet is ExtendedAccessControlUpgradeable, ReentrancyGuard {
[codex:1120526]     20	    error BeneficiaryLimitExceeded();
[codex:1120526] 
[codex:1120526] thinking
[codex:1120526] **Preparing audit findings JSON**
[codex:1120526] 
[codex:1120526] I’m carefully organizing two main findings—a critical nested initializer bug causing proxy lockout and a low-severity unchecked ERC20 transfer return value—into a validated JSON output, including severity, categories, detailed exploit scenarios, recommendations, evidence, and exact code locations. I’m making sure to produce a clear summary string, keep all string values correctly escaped, and verify no other exploitable issues should be included.
[codex:1120526] exec
[codex:1120526] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-ft4i9zca succeeded in 6ms:
[codex:1120526] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:1120526] 
[codex:1120526] thinking
[codex:1120526] **Preparing final JSON report with findings**
[codex:1120526] 
[codex:1120526] I’m putting together a JSON summary that strictly includes required fields and disallows extra keys. I’m making sure each finding’s locations are strings, evidence is a single line, and the summary is concise and clear. I’ll carefully escape as needed and keep the JSON clean and simple for final delivery.
[codex:1120526] codex
[codex:1120526] {"no_findings":false,"summary":"Found 2 issues: a broken initializer chain that makes proxy initialization revert, and unchecked ERC20 transfer return values that can desync limits/events from actual token transfers.","findings":[{"severity":"high","category":"upgradeability","title":"Nested initializer modifiers brick initialization","exploit_scenario":"Calling `Wallet.initialize` invokes `__ExtendedAccessControl_init`, which is marked `initializer` and internally calls `__ExtendedAccessControl_init_unchained`, also marked `initializer`. OpenZeppelin's `initializer` modifier forbids nested initializer calls, so the second call reverts, leaving the proxy permanently uninitialized and unusable (no roles can be granted, transfers and admin actions are locked).","recommendation":"Change base initializers to `onlyInitializing` (and keep a single `initializer` entry point), mirroring OpenZeppelin's pattern; alternatively remove the nested initializer and call `_addRole` directly from the top-level initializer.","evidence":"`__ExtendedAccessControl_init` and `__ExtendedAccessControl_init_unchained` both use the `initializer` modifier, and `Wallet.initialize` calls `__ExtendedAccessControl_init`.","locations":["contracts/contracts/ExtendedAccessControlUpgradeable.sol:26","contracts/contracts/ExtendedAccessControlUpgradeable.sol:30","contracts/contracts/Wallet.sol:124"]},{"severity":"low","category":"other","title":"ERC20 transfer return value ignored","exploit_scenario":"For non-compliant or malicious ERC20s that return `false` instead of reverting, `Wallet.transfer` (token version) still emits a transfer event and consumes limit capacity even though no tokens moved, enabling limit exhaustion/false accounting.","recommendation":"Use an ERC20 interface that returns `bool` and wrap transfers with `SafeERC20.safeTransfer` (or explicitly require the return value to be true).","evidence":"The IERC20 interface omits the `bool` return value and the transfer call result is not checked.","locations":["contracts/contracts/Wallet.sol:15","contracts/contracts/Wallet.sol:401"]}]}
[codex:1120526] tokens used
[codex:1120526] 48,665
[codex:1120526] {"no_findings":false,"summary":"Found 2 issues: a broken initializer chain that makes proxy initialization revert, and unchecked ERC20 transfer return values that can desync limits/events from actual token transfers.","findings":[{"severity":"high","category":"upgradeability","title":"Nested initializer modifiers brick initialization","exploit_scenario":"Calling `Wallet.initialize` invokes `__ExtendedAccessControl_init`, which is marked `initializer` and internally calls `__ExtendedAccessControl_init_unchained`, also marked `initializer`. OpenZeppelin's `initializer` modifier forbids nested initializer calls, so the second call reverts, leaving the proxy permanently uninitialized and unusable (no roles can be granted, transfers and admin actions are locked).","recommendation":"Change base initializers to `onlyInitializing` (and keep a single `initializer` entry point), mirroring OpenZeppelin's pattern; alternatively remove the nested initializer and call `_addRole` directly from the top-level initializer.","evidence":"`__ExtendedAccessControl_init` and `__ExtendedAccessControl_init_unchained` both use the `initializer` modifier, and `Wallet.initialize` calls `__ExtendedAccessControl_init`.","locations":["contracts/contracts/ExtendedAccessControlUpgradeable.sol:26","contracts/contracts/ExtendedAccessControlUpgradeable.sol:30","contracts/contracts/Wallet.sol:124"]},{"severity":"low","category":"other","title":"ERC20 transfer return value ignored","exploit_scenario":"For non-compliant or malicious ERC20s that return `false` instead of reverting, `Wallet.transfer` (token version) still emits a transfer event and consumes limit capacity even though no tokens moved, enabling limit exhaustion/false accounting.","recommendation":"Use an ERC20 interface that returns `bool` and wrap transfers with `SafeERC20.safeTransfer` (or explicitly require the return value to be true).","evidence":"The IERC20 interface omits the `bool` return value and the transfer call result is not checked.","locations":["contracts/contracts/Wallet.sol:15","contracts/contracts/Wallet.sol:401"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T04:25:58.110171+00:00",
        "returncode": 0
    },
    "summary": "Found 2 issues: a broken initializer chain that makes proxy initialization revert, and unchecked ERC20 transfer return values that can desync limits/events from actual token transfers.",
    "raw_final": {
        "summary": "Found 2 issues: a broken initializer chain that makes proxy initialization revert, and unchecked ERC20 transfer return values that can desync limits/events from actual token transfers.",
        "findings": [
            {
                "title": "Nested initializer modifiers brick initialization",
                "category": "upgradeability",
                "evidence": "`__ExtendedAccessControl_init` and `__ExtendedAccessControl_init_unchained` both use the `initializer` modifier, and `Wallet.initialize` calls `__ExtendedAccessControl_init`.",
                "severity": "high",
                "locations": [
                    "contracts/contracts/ExtendedAccessControlUpgradeable.sol:26",
                    "contracts/contracts/ExtendedAccessControlUpgradeable.sol:30",
                    "contracts/contracts/Wallet.sol:124"
                ],
                "recommendation": "Change base initializers to `onlyInitializing` (and keep a single `initializer` entry point), mirroring OpenZeppelin's pattern; alternatively remove the nested initializer and call `_addRole` directly from the top-level initializer.",
                "exploit_scenario": "Calling `Wallet.initialize` invokes `__ExtendedAccessControl_init`, which is marked `initializer` and internally calls `__ExtendedAccessControl_init_unchained`, also marked `initializer`. OpenZeppelin's `initializer` modifier forbids nested initializer calls, so the second call reverts, leaving the proxy permanently uninitialized and unusable (no roles can be granted, transfers and admin actions are locked)."
            },
            {
                "title": "ERC20 transfer return value ignored",
                "category": "other",
                "evidence": "The IERC20 interface omits the `bool` return value and the transfer call result is not checked.",
                "severity": "low",
                "locations": [
                    "contracts/contracts/Wallet.sol:15",
                    "contracts/contracts/Wallet.sol:401"
                ],
                "recommendation": "Use an ERC20 interface that returns `bool` and wrap transfers with `SafeERC20.safeTransfer` (or explicitly require the return value to be true).",
                "exploit_scenario": "For non-compliant or malicious ERC20s that return `false` instead of reverting, `Wallet.transfer` (token version) still emits a transfer event and consumes limit capacity even though no tokens moved, enabling limit exhaustion/false accounting."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
4
Total opcodes
5059
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x027a
0000000c: JUMPI
0000000d: PUSH0
0000000e: CALLDATALOAD
0000000f: PUSH1 0xe0
00000011: SHR
00000012: DUP1
00000013: PUSH4 0x7f73e314
00000018: GT
00000019: PUSH2 0x014b
0000001c: JUMPI
0000001d: DUP1
0000001e: PUSH4 0xb295a00e
00000023: GT
00000024: PUSH2 0x00c6
00000027: JUMPI
00000028: DUP1
00000029: PUSH4 0xd547741f
0000002e: GT
0000002f: PUSH2 0x007c
00000032: JUMPI
00000033: DUP1
00000034: PUSH4 0xe082e718
00000039: GT
0000003a: PUSH2 0x0062
0000003d: JUMPI
0000003e: DUP1
0000003f: PUSH4 0xe082e718
00000044: EQ
00000045: PUSH2 0x07ac
00000048: JUMPI
00000049: DUP1
0000004a: PUSH4 0xe33d547e
0000004f: EQ
00000050: PUSH2 0x07cb
00000053: JUMPI
00000054: DUP1
00000055: PUSH4 0xf3816388
0000005a: EQ
0000005b: PUSH2 0x0814
0000005e: JUMPI
0000005f: PUSH0
00000060: PUSH0
00000061: REVERT
00000062: JUMPDEST
00000063: DUP1
00000064: PUSH4 0xd547741f
00000069: EQ
0000006a: PUSH2 0x076e
0000006d: JUMPI
0000006e: DUP1
0000006f: PUSH4 0xdbba0f01
00000074: EQ
00000075: PUSH2 0x078d
00000078: JUMPI
00000079: PUSH0
0000007a: PUSH0
0000007b: REVERT
0000007c: JUMPDEST
0000007d: DUP1
0000007e: PUSH4 0xc117c3af
00000083: GT
00000084: PUSH2 0x00ac
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0xc117c3af
0000008e: EQ
0000008f: PUSH2 0x0711
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0xc4d66de8
00000099: EQ
0000009a: PUSH2 0x0730
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0xc724bfe6
000000a4: EQ
000000a5: PUSH2 0x074f
000000a8: JUMPI
000000a9: PUSH0
000000aa: PUSH0
000000ab: REVERT
000000ac: JUMPDEST
000000ad: DUP1
000000ae: PUSH4 0xb295a00e
000000b3: EQ
000000b4: PUSH2 0x06de
000000b7: JUMPI
000000b8: DUP1
000000b9: PUSH4 0xba611923
000000be: EQ
000000bf: PUSH2 0x06f2
000000c2: JUMPI
000000c3: PUSH0
000000c4: PUSH0
000000c5: REVERT
000000c6: JUMPDEST
000000c7: DUP1
000000c8: PUSH4 0x9c697750
000000cd: GT
000000ce: PUSH2 0x011b
000000d1: JUMPI
000000d2: DUP1
000000d3: PUSH4 0xa340d7cc
000000d8: GT
000000d9: PUSH2 0x0101
000000dc: JUMPI
000000dd: DUP1
000000de: PUSH4 0xa340d7cc
000000e3: EQ
000000e4: PUSH2 0x0681
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0xa9059cbb
000000ee: EQ
000000ef: PUSH2 0x06a0
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0xabc3c4e9
000000f9: EQ
000000fa: PUSH2 0x06bf
000000fd: JUMPI
000000fe: PUSH0
000000ff: PUSH0
00000100: REVERT
00000101: JUMPDEST
00000102: DUP1
00000103: PUSH4 0x9c697750
00000108: EQ
00000109: PUSH2 0x064f
0000010c: JUMPI
0000010d: DUP1
0000010e: PUSH4 0xa217fddf
00000113: EQ
00000114: PUSH2 0x066e
00000117: JUMPI
00000118: PUSH0
00000119: PUSH0
0000011a: REVERT
0000011b: JUMPDEST
0000011c: DUP1
0000011d: PUSH4 0x7f73e314
00000122: EQ
00000123: PUSH2 0x059a
00000126: JUMPI
00000127: DUP1
00000128: PUSH4 0x8fbfc312
0000012d: EQ
0000012e: PUSH2 0x05ae
00000131: JUMPI
00000132: DUP1
00000133: PUSH4 0x919dee39
00000138: EQ
00000139: PUSH2 0x05cd
0000013c: JUMPI
0000013d: DUP1
0000013e: PUSH4 0x91d14854
00000143: EQ
00000144: PUSH2 0x05ec
00000147: JUMPI
00000148: PUSH0
00000149: PUSH0
0000014a: REVERT
0000014b: JUMPDEST
0000014c: DUP1
0000014d: PUSH4 0x3133bc69
00000152: GT
00000153: PUSH2 0x01f5
00000156: JUMPI
00000157: DUP1
00000158: PUSH4 0x6ea3ab64
0000015d: GT
0000015e: PUSH2 0x01ab
00000161: JUMPI
00000162: DUP1
00000163: PUSH4 0x74201c7a
00000168: GT
00000169: PUSH2 0x0191
0000016c: JUMPI
0000016d: DUP1
0000016e: PUSH4 0x74201c7a
00000173: EQ
00000174: PUSH2 0x053d
00000177: JUMPI
00000178: DUP1
00000179: PUSH4 0x74538d52
0000017e: EQ
0000017f: PUSH2 0x055c
00000182: JUMPI
00000183: DUP1
00000184: PUSH4 0x7ec1d16a
00000189: EQ
0000018a: PUSH2 0x057b
0000018d: JUMPI
0000018e: PUSH0
0000018f: PUSH0
00000190: REVERT
00000191: JUMPDEST
00000192: DUP1
00000193: PUSH4 0x6ea3ab64
00000198: EQ
00000199: PUSH2 0x04ff
0000019c: JUMPI
0000019d: DUP1
0000019e: PUSH4 0x7288b312
000001a3: EQ
000001a4: PUSH2 0x051e
000001a7: JUMPI
000001a8: PUSH0
000001a9: PUSH0
000001aa: REVERT
000001ab: JUMPDEST
000001ac: DUP1
000001ad: PUSH4 0x392f5f64
000001b2: GT
000001b3: PUSH2 0x01db
000001b6: JUMPI
000001b7: DUP1
000001b8: PUSH4 0x392f5f64
000001bd: EQ
000001be: PUSH2 0x04a0
000001c1: JUMPI
000001c2: DUP1
000001c3: PUSH4 0x4111c1f7
000001c8: EQ
000001c9: PUSH2 0x04c1
000001cc: JUMPI
000001cd: DUP1
000001ce: PUSH4 0x59633a1c
000001d3: EQ
000001d4: PUSH2 0x04e0
000001d7: JUMPI
000001d8: PUSH0
000001d9: PUSH0
000001da: REVERT
000001db: JUMPDEST
000001dc: DUP1
000001dd: PUSH4 0x3133bc69
000001e2: EQ
000001e3: PUSH2 0x0462
000001e6: JUMPI
000001e7: DUP1
000001e8: PUSH4 0x36568abe
000001ed: EQ
000001ee: PUSH2 0x0481
000001f1: JUMPI
000001f2: PUSH0
000001f3: PUSH0
000001f4: REVERT
000001f5: JUMPDEST
000001f6: DUP1
000001f7: PUSH4 0x206b60f9
000001fc: GT
000001fd: PUSH2 0x024a
00000200: JUMPI
00000201: DUP1
00000202: PUSH4 0x25ce544c
00000207: GT
00000208: PUSH2 0x0230
0000020b: JUMPI
0000020c: DUP1
0000020d: PUSH4 0x25ce544c
00000212: EQ
00000213: PUSH2 0x0405
00000216: JUMPI
00000217: DUP1
00000218: PUSH4 0x27ea6f2b
0000021d: EQ
0000021e: PUSH2 0x0424
00000221: JUMPI
00000222: DUP1
00000223: PUSH4 0x2f2ff15d
00000228: EQ
00000229: PUSH2 0x0443
0000022c: JUMPI
0000022d: PUSH0
0000022e: PUSH0
0000022f: REVERT
00000230: JUMPDEST
00000231: DUP1
00000232: PUSH4 0x206b60f9
00000237: EQ
00000238: PUSH2 0x0385
0000023b: JUMPI
0000023c: DUP1
0000023d: PUSH4 0x248a9ca3
00000242: EQ
00000243: PUSH2 0x03b8
00000246: JUMPI
00000247: PUSH0
00000248: PUSH0
00000249: REVERT
0000024a: JUMPDEST
0000024b: DUP1
0000024c: PUSH4 0x0146dfef
00000251: EQ
00000252: PUSH2 0x02ba
00000255: JUMPI
00000256: DUP1
00000257: PUSH4 0x01ffc9a7
0000025c: EQ
0000025d: PUSH2 0x0301
00000260: JUMPI
00000261: DUP1
00000262: PUSH4 0x1a767d16
00000267: EQ
00000268: PUSH2 0x0330
0000026b: JUMPI
0000026c: DUP1
0000026d: PUSH4 0x1ce28e72
00000272: EQ
00000273: PUSH2 0x0351
00000276: JUMPI
00000277: PUSH0
00000278: PUSH0
00000279: REVERT
0000027a: JUMPDEST
0000027b: CALLDATASIZE
0000027c: PUSH2 0x02b6
0000027f: JUMPI
00000280: PUSH1 0x40
00000282: MLOAD
00000283: CALLVALUE
00000284: DUP2
00000285: MSTORE
00000286: CALLER
00000287: SWAP1
00000288: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c
000002a9: SWAP1
000002aa: PUSH1 0x20
000002ac: ADD
000002ad: PUSH1 0x40
000002af: MLOAD
000002b0: DUP1
000002b1: SWAP2
000002b2: SUB
000002b3: SWAP1
000002b4: LOG2
000002b5: STOP
000002b6: JUMPDEST
000002b7: PUSH0
000002b8: PUSH0
000002b9: REVERT
000002ba: JUMPDEST
000002bb: CALLVALUE
000002bc: DUP1
000002bd: ISZERO
000002be: PUSH2 0x02c5
000002c1: JUMPI
000002c2: PUSH0
000002c3: PUSH0
000002c4: REVERT
000002c5: JUMPDEST
000002c6: POP
000002c7: PUSH2 0x02ee
000002ca: PUSH2 0x02d4
000002cd: CALLDATASIZE
000002ce: PUSH1 0x04
000002d0: PUSH2 0x1fdc
000002d3: JUMP
000002d4: JUMPDEST
000002d5: PUSH1 0x01
000002d7: PUSH1 0x01
000002d9: PUSH1 0xa0
000002db: SHL
000002dc: SUB
000002dd: AND
000002de: PUSH0
000002df: SWAP1
000002e0: DUP2
000002e1: MSTORE
000002e2: PUSH1 0x06
000002e4: PUSH1 0x20
000002e6: MSTORE
000002e7: PUSH1 0x40
000002e9: SWAP1
000002ea: KECCAK256
000002eb: SLOAD
000002ec: SWAP1
000002ed: JUMP
000002ee: JUMPDEST
000002ef: PUSH1 0x40
000002f1: MLOAD
000002f2: SWAP1
000002f3: DUP2
000002f4: MSTORE
000002f5: PUSH1 0x20
000002f7: ADD
000002f8: JUMPDEST
000002f9: PUSH1 0x40
000002fb: MLOAD
000002fc: DUP1
000002fd: SWAP2
000002fe: SUB
000002ff: SWAP1
00000300: RETURN
00000301: JUMPDEST
00000302: CALLVALUE
00000303: DUP1
00000304: ISZERO
00000305: PUSH2 0x030c
00000308: JUMPI
00000309: PUSH0
0000030a: PUSH0
0000030b: REVERT
0000030c: JUMPDEST
0000030d: POP
0000030e: PUSH2 0x0320
00000311: PUSH2 0x031b
00000314: CALLDATASIZE
00000315: PUSH1 0x04
00000317: PUSH2 0x1ff7
0000031a: JUMP
0000031b: JUMPDEST
0000031c: PUSH2 0x0833
0000031f: JUMP
00000320: JUMPDEST
00000321: PUSH1 0x40
00000323: MLOAD
00000324: SWAP1
00000325: ISZERO
00000326: ISZERO
00000327: DUP2
00000328: MSTORE
00000329: PUSH1 0x20
0000032b: ADD
0000032c: PUSH2 0x02f8
0000032f: JUMP
00000330: JUMPDEST
00000331: CALLVALUE
00000332: DUP1
00000333: ISZERO
00000334: PUSH2 0x033b
00000337: JUMPI
00000338: PUSH0
00000339: PUSH0
0000033a: REVERT
0000033b: JUMPDEST
0000033c: POP
0000033d: PUSH2 0x034f
00000340: PUSH2 0x034a
00000343: CALLDATASIZE
00000344: PUSH1 0x04
00000346: PUSH2 0x2036
00000349: JUMP
0000034a: JUMPDEST
0000034b: PUSH2 0x08cb
0000034e: JUMP
0000034f: JUMPDEST
00000350: STOP
00000351: JUMPDEST
00000352: CALLVALUE
00000353: DUP1
00000354: ISZERO
00000355: PUSH2 0x035c
00000358: JUMPI
00000359: PUSH0
0000035a: PUSH0
0000035b: REVERT
0000035c: JUMPDEST
0000035d: POP
0000035e: PUSH2 0x02ee
00000361: PUSH2 0x036b
00000364: CALLDATASIZE
00000365: PUSH1 0x04
00000367: PUSH2 0x1fdc
0000036a: JUMP
0000036b: JUMPDEST
0000036c: PUSH1 0x01
0000036e: PUSH1 0x01
00000370: PUSH1 0xa0
00000372: SHL
00000373: SUB
00000374: AND
00000375: PUSH0
00000376: SWAP1
00000377: DUP2
00000378: MSTORE
00000379: PUSH1 0x07
0000037b: PUSH1 0x20
0000037d: MSTORE
0000037e: PUSH1 0x40
00000380: SWAP1
00000381: KECCAK256
00000382: SLOAD
00000383: SWAP1
00000384: JUMP
00000385: JUMPDEST
00000386: CALLVALUE
00000387: DUP1
00000388: ISZERO
00000389: PUSH2 0x0390
0000038c: JUMPI
0000038d: PUSH0
0000038e: PUSH0
0000038f: REVERT
00000390: JUMPDEST
00000391: POP
00000392: PUSH2 0x02ee
00000395: PUSH32 0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c
000003b6: DUP2
000003b7: JUMP
000003b8: JUMPDEST
000003b9: CALLVALUE
000003ba: DUP1
000003bb: ISZERO
000003bc: PUSH2 0x03c3
000003bf: JUMPI
000003c0: PUSH0
000003c1: PUSH0
000003c2: REVERT
000003c3: JUMPDEST
000003c4: POP
000003c5: PUSH2 0x02ee
000003c8: PUSH2 0x03d2
000003cb: CALLDATASIZE
000003cc: PUSH1 0x04
000003ce: PUSH2 0x206d
000003d1: JUMP
000003d2: JUMPDEST
000003d3: PUSH0
000003d4: SWAP1
000003d5: DUP2
000003d6: MSTORE
000003d7: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800
000003f8: PUSH1 0x20
000003fa: MSTORE
000003fb: PUSH1 0x40
000003fd: SWAP1
000003fe: KECCAK256
000003ff: PUSH1 0x01
00000401: ADD
00000402: SLOAD
00000403: SWAP1
00000404: JUMP
00000405: JUMPDEST
00000406: CALLVALUE
00000407: DUP1
00000408: ISZERO
00000409: PUSH2 0x0410
0000040c: JUMPI
0000040d: PUSH0
0000040e: PUSH0
0000040f: REVERT
00000410: JUMPDEST
00000411: POP
00000412: PUSH2 0x034f
00000415: PUSH2 0x041f
00000418: CALLDATASIZE
00000419: PUSH1 0x04
0000041b: PUSH2 0x2084
0000041e: JUMP
0000041f: JUMPDEST
00000420: PUSH2 0x0982
00000423: JUMP
00000424: JUMPDEST
00000425: CALLVALUE
00000426: DUP1
00000427: ISZERO
00000428: PUSH2 0x042f
0000042b: JUMPI
0000042c: PUSH0
0000042d: PUSH0
0000042e: REVERT
0000042f: JUMPDEST
00000430: POP
00000431: PUSH2 0x034f
00000434: PUSH2 0x043e
00000437: CALLDATASIZE
00000438: PUSH1 0x04
0000043a: PUSH2 0x206d
0000043d: JUMP
0000043e: JUMPDEST
0000043f: PUSH2 0x0a11
00000442: JUMP
00000443: JUMPDEST
00000444: CALLVALUE
00000445: DUP1
00000446: ISZERO
00000447: PUSH2 0x044e
0000044a: JUMPI
0000044b: PUSH0
0000044c: PUSH0
0000044d: REVERT
0000044e: JUMPDEST
0000044f: POP
00000450: PUSH2 0x034f
00000453: PUSH2 0x045d
00000456: CALLDATASIZE
00000457: PUSH1 0x04
00000459: PUSH2 0x20c2
0000045c: JUMP
0000045d: JUMPDEST
0000045e: PUSH2 0x0a58
00000461: JUMP
00000462: JUMPDEST
00000463: CALLVALUE
00000464: DUP1
00000465: ISZERO
00000466: PUSH2 0x046d
00000469: JUMPI
0000046a: PUSH0
0000046b: PUSH0
0000046c: REVERT
0000046d: JUMPDEST
0000046e: POP
0000046f: PUSH2 0x034f
00000472: PUSH2 0x047c
00000475: CALLDATASIZE
00000476: PUSH1 0x04
00000478: PUSH2 0x20c2
0000047b: JUMP
0000047c: JUMPDEST
0000047d: PUSH2 0x0aa1
00000480: JUMP
00000481: JUMPDEST
00000482: CALLVALUE
00000483: DUP1
00000484: ISZERO
00000485: PUSH2 0x048c
00000488: JUMPI
00000489: PUSH0
0000048a: PUSH0
0000048b: REVERT
0000048c: JUMPDEST
0000048d: POP
0000048e: PUSH2 0x034f
00000491: PUSH2 0x049b
00000494: CALLDATASIZE
00000495: PUSH1 0x04
00000497: PUSH2 0x20c2
0000049a: JUMP
0000049b: JUMPDEST
0000049c: PUSH2 0x0b04
0000049f: JUMP
000004a0: JUMPDEST
000004a1: CALLVALUE
000004a2: DUP1
000004a3: ISZERO
000004a4: PUSH2 0x04ab
000004a7: JUMPI
000004a8: PUSH0
000004a9: PUSH0
000004aa: REVERT
000004ab: JUMPDEST
000004ac: POP
000004ad: PUSH2 0x04b4
000004b0: PUSH2 0x0b55
000004b3: JUMP
000004b4: JUMPDEST
000004b5: PUSH1 0x40
000004b7: MLOAD
000004b8: PUSH2 0x02f8
000004bb: SWAP2
000004bc: SWAP1
000004bd: PUSH2 0x20e5
000004c0: JUMP
000004c1: JUMPDEST
000004c2: CALLVALUE
000004c3: DUP1
000004c4: ISZERO
000004c5: PUSH2 0x04cc
000004c8: JUMPI
000004c9: PUSH0
000004ca: PUSH0
000004cb: REVERT
000004cc: JUMPDEST
000004cd: POP
000004ce: PUSH2 0x034f
000004d1: PUSH2 0x04db
000004d4: CALLDATASIZE
000004d5: PUSH1 0x04
000004d7: PUSH2 0x1fdc
000004da: JUMP
000004db: JUMPDEST
000004dc: PUSH2 0x0bcc
000004df: JUMP
000004e0: JUMPDEST
000004e1: CALLVALUE
000004e2: DUP1
000004e3: ISZERO
000004e4: PUSH2 0x04eb
000004e7: JUMPI
000004e8: PUSH0
000004e9: PUSH0
000004ea: REVERT
000004eb: JUMPDEST
000004ec: POP
000004ed: PUSH2 0x034f
000004f0: PUSH2 0x04fa
000004f3: CALLDATASIZE
000004f4: PUSH1 0x04
000004f6: PUSH2 0x1fdc
000004f9: JUMP
000004fa: JUMPDEST
000004fb: PUSH2 0x0be4
000004fe: JUMP
000004ff: JUMPDEST
00000500: CALLVALUE
00000501: DUP1
00000502: ISZERO
00000503: PUSH2 0x050a
00000506: JUMPI
00000507: PUSH0
00000508: PUSH0
00000509: REVERT
0000050a: JUMPDEST
0000050b: POP
0000050c: PUSH2 0x034f
0000050f: PUSH2 0x0519
00000512: CALLDATASIZE
00000513: PUSH1 0x04
00000515: PUSH2 0x20c2
00000518: JUMP
00000519: JUMPDEST
0000051a: PUSH2 0x0c5f
0000051d: JUMP
0000051e: JUMPDEST
0000051f: CALLVALUE
00000520: DUP1
00000521: ISZERO
00000522: PUSH2 0x0529
00000525: JUMPI
00000526: PUSH0
00000527: PUSH0
00000528: REVERT
00000529: JUMPDEST
0000052a: POP
0000052b: PUSH2 0x02ee
0000052e: PUSH2 0x0538
00000531: CALLDATASIZE
00000532: PUSH1 0x04
00000534: PUSH2 0x1fdc
00000537: JUMP
00000538: JUMPDEST
00000539: PUSH2 0x0cc5
0000053c: JUMP
0000053d: JUMPDEST
0000053e: CALLVALUE
0000053f: DUP1
00000540: ISZERO
00000541: PUSH2 0x0548
00000544: JUMPI
00000545: PUSH0
00000546: PUSH0
00000547: REVERT
00000548: JUMPDEST
00000549: POP
0000054a: PUSH2 0x034f
0000054d: PUSH2 0x0557
00000550: CALLDATASIZE
00000551: PUSH1 0x04
00000553: PUSH2 0x2127
00000556: JUMP
00000557: JUMPDEST
00000558: PUSH2 0x0ce5
0000055b: JUMP
0000055c: JUMPDEST
0000055d: CALLVALUE
0000055e: DUP1
0000055f: ISZERO
00000560: PUSH2 0x0567
00000563: JUMPI
00000564: PUSH0
00000565: PUSH0
00000566: REVERT
00000567: JUMPDEST
00000568: POP
00000569: PUSH2 0x034f
0000056c: PUSH2 0x0576
0000056f: CALLDATASIZE
00000570: PUSH1 0x04
00000572: PUSH2 0x2127
00000575: JUMP
00000576: JUMPDEST
00000577: PUSH2 0x0d4b
0000057a: JUMP
0000057b: JUMPDEST
0000057c: CALLVALUE
0000057d: DUP1
0000057e: ISZERO
0000057f: PUSH2 0x0586
00000582: JUMPI
00000583: PUSH0
00000584: PUSH0
00000585: REVERT
00000586: JUMPDEST
00000587: POP
00000588: PUSH2 0x034f
0000058b: PUSH2 0x0595
0000058e: CALLDATASIZE
0000058f: PUSH1 0x04
00000591: PUSH2 0x1fdc
00000594: JUMP
00000595: JUMPDEST
00000596: PUSH2 0x0db1
00000599: JUMP
0000059a: JUMPDEST
0000059b: CALLVALUE
0000059c: DUP1
0000059d: ISZERO
0000059e: PUSH2 0x05a5
000005a1: JUMPI
000005a2: PUSH0
000005a3: PUSH0
000005a4: REVERT
000005a5: JUMPDEST
000005a6: POP
000005a7: PUSH2 0x02ee
000005aa: PUSH2 0x0dc4
000005ad: JUMP
000005ae: JUMPDEST
000005af: CALLVALUE
000005b0: DUP1
000005b1: ISZERO
000005b2: PUSH2 0x05b9
000005b5: JUMPI
000005b6: PUSH0
000005b7: PUSH0
000005b8: REVERT
000005b9: JUMPDEST
000005ba: POP
000005bb: PUSH2 0x034f
000005be: PUSH2 0x05c8
000005c1: CALLDATASIZE
000005c2: PUSH1 0x04
000005c4: PUSH2 0x2151
000005c7: JUMP
000005c8: JUMPDEST
000005c9: PUSH2 0x0dd4
000005cc: JUMP
000005cd: JUMPDEST
000005ce: CALLVALUE
000005cf: DUP1
000005d0: ISZERO
000005d1: PUSH2 0x05d8
000005d4: JUMPI
000005d5: PUSH0
000005d6: PUSH0
000005d7: REVERT
000005d8: JUMPDEST
000005d9: POP
000005da: PUSH2 0x034f
000005dd: PUSH2 0x05e7
000005e0: CALLDATASIZE
000005e1: PUSH1 0x04
000005e3: PUSH2 0x2084
000005e6: JUMP
000005e7: JUMPDEST
000005e8: PUSH2 0x0e3d
000005eb: JUMP
000005ec: JUMPDEST
000005ed: CALLVALUE
000005ee: DUP1
000005ef: ISZERO
000005f0: PUSH2 0x05f7
000005f3: JUMPI
000005f4: PUSH0
000005f5: PUSH0
000005f6: REVERT
000005f7: JUMPDEST
000005f8: POP
000005f9: PUSH2 0x0320
000005fc: PUSH2 0x0606
000005ff: CALLDATASIZE
00000600: PUSH1 0x04
00000602: PUSH2 0x20c2
00000605: JUMP
00000606: JUMPDEST
00000607: PUSH0
00000608: SWAP2
00000609: DUP3
0000060a: MSTORE
0000060b: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800
0000062c: PUSH1 0x20
0000062e: SWAP1
0000062f: DUP2
00000630: MSTORE
00000631: PUSH1 0x40
00000633: DUP1
00000634: DUP5
00000635: KECCAK256
00000636: PUSH1 0x01
00000638: PUSH1 0x01
0000063a: PUSH1 0xa0
0000063c: SHL
0000063d: SUB
0000063e: SWAP4
0000063f: SWAP1
00000640: SWAP4
00000641: AND
00000642: DUP5
00000643: MSTORE
00000644: SWAP2
00000645: SWAP1
00000646: MSTORE
00000647: SWAP1
00000648: KECCAK256
00000649: SLOAD
0000064a: PUSH1 0xff
0000064c: AND
0000064d: SWAP1
0000064e: JUMP
0000064f: JUMPDEST
00000650: CALLVALUE
00000651: DUP1
00000652: ISZERO
00000653: PUSH2 0x065a
00000656: JUMPI
00000657: PUSH0
00000658: PUSH0
00000659: REVERT
0000065a: JUMPDEST
0000065b: POP
0000065c: PUSH2 0x02ee
0000065f: PUSH2 0x0669
00000662: CALLDATASIZE
00000663: PUSH1 0x04
00000665: PUSH2 0x1fdc
00000668: JUMP
00000669: JUMPDEST
0000066a: PUSH2 0x0ebe
0000066d: JUMP
0000066e: JUMPDEST
0000066f: CALLVALUE
00000670: DUP1
00000671: ISZERO
00000672: PUSH2 0x0679
00000675: JUMPI
00000676: PUSH0
00000677: PUSH0
00000678: REVERT
00000679: JUMPDEST
0000067a: POP
0000067b: PUSH2 0x02ee
0000067e: PUSH0
0000067f: DUP2
00000680: JUMP
00000681: JUMPDEST
00000682: CALLVALUE
00000683: DUP1
00000684: ISZERO
00000685: PUSH2 0x068c
00000688: JUMPI
00000689: PUSH0
0000068a: PUSH0
0000068b: REVERT
0000068c: JUMPDEST
0000068d: POP
0000068e: PUSH2 0x034f
00000691: PUSH2 0x069b
00000694: CALLDATASIZE
00000695: PUSH1 0x04
00000697: PUSH2 0x206d
0000069a: JUMP
0000069b: JUMPDEST
0000069c: PUSH2 0x0ede
0000069f: JUMP
000006a0: JUMPDEST
000006a1: CALLVALUE
000006a2: DUP1
000006a3: ISZERO
000006a4: PUSH2 0x06ab
000006a7: JUMPI
000006a8: PUSH0
000006a9: PUSH0
000006aa: REVERT
000006ab: JUMPDEST
000006ac: POP
000006ad: PUSH2 0x034f
000006b0: PUSH2 0x06ba
000006b3: CALLDATASIZE
000006b4: PUSH1 0x04
000006b6: PUSH2 0x2127
000006b9: JUMP
000006ba: JUMPDEST
000006bb: PUSH2 0x0f23
000006be: JUMP
000006bf: JUMPDEST
000006c0: CALLVALUE
000006c1: DUP1
000006c2: ISZERO
000006c3: PUSH2 0x06ca
000006c6: JUMPI
000006c7: PUSH0
000006c8: PUSH0
000006c9: REVERT
000006ca: JUMPDEST
000006cb: POP
000006cc: PUSH2 0x034f
000006cf: PUSH2 0x06d9
000006d2: CALLDATASIZE
000006d3: PUSH1 0x04
000006d5: PUSH2 0x206d
000006d8: JUMP
000006d9: JUMPDEST
000006da: PUSH2 0x1091
000006dd: JUMP
000006de: JUMPDEST
000006df: CALLVALUE
000006e0: DUP1
000006e1: ISZERO
000006e2: PUSH2 0x06e9
000006e5: JUMPI
000006e6: PUSH0
000006e7: PUSH0
000006e8: REVERT
000006e9: JUMPDEST
000006ea: POP
000006eb: PUSH1 0x01
000006ed: SLOAD
000006ee: PUSH2 0x02ee
000006f1: JUMP
000006f2: JUMPDEST
000006f3: CALLVALUE
000006f4: DUP1
000006f5: ISZERO
000006f6: PUSH2 0x06fd
000006f9: JUMPI
000006fa: PUSH0
000006fb: PUSH0
000006fc: REVERT
000006fd: JUMPDEST
000006fe: POP
000006ff: PUSH2 0x02ee
00000702: PUSH2 0x070c
00000705: CALLDATASIZE
00000706: PUSH1 0x04
00000708: PUSH2 0x2036
0000070b: JUMP
0000070c: JUMPDEST
0000070d: PUSH2 0x10d6
00000710: JUMP
00000711: JUMPDEST
00000712: CALLVALUE
00000713: DUP1
00000714: ISZERO
00000715: PUSH2 0x071c
00000718: JUMPI
00000719: PUSH0
0000071a: PUSH0
0000071b: REVERT
0000071c: JUMPDEST
0000071d: POP
0000071e: PUSH2 0x034f
00000721: PUSH2 0x072b
00000724: CALLDATASIZE
00000725: PUSH1 0x04
00000727: PUSH2 0x2127
0000072a: JUMP
0000072b: JUMPDEST
0000072c: PUSH2 0x1110
0000072f: JUMP
00000730: JUMPDEST
00000731: CALLVALUE
00000732: DUP1
00000733: ISZERO
00000734: PUSH2 0x073b
00000737: JUMPI
00000738: PUSH0
00000739: PUSH0
0000073a: REVERT
0000073b: JUMPDEST
0000073c: POP
0000073d: PUSH2 0x034f
00000740: PUSH2 0x074a
00000743: CALLDATASIZE
00000744: PUSH1 0x04
00000746: PUSH2 0x1fdc
00000749: JUMP
0000074a: JUMPDEST
0000074b: PUSH2 0x1166
0000074e: JUMP
0000074f: JUMPDEST
00000750: CALLVALUE
00000751: DUP1
00000752: ISZERO
00000753: PUSH2 0x075a
00000756: JUMPI
00000757: PUSH0
00000758: PUSH0
00000759: REVERT
0000075a: JUMPDEST
0000075b: POP
0000075c: PUSH2 0x034f
0000075f: PUSH2 0x0769
00000762: CALLDATASIZE
00000763: PUSH1 0x04
00000765: PUSH2 0x1fdc
00000768: JUMP
00000769: JUMPDEST
0000076a: PUSH2 0x1307
0000076d: JUMP
0000076e: JUMPDEST
0000076f: CALLVALUE
00000770: DUP1
00000771: ISZERO
00000772: PUSH2 0x0779
00000775: JUMPI
00000776: PUSH0
00000777: PUSH0
00000778: REVERT
00000779: JUMPDEST
0000077a: POP
0000077b: PUSH2 0x034f
0000077e: PUSH2 0x0788
00000781: CALLDATASIZE
00000782: PUSH1 0x04
00000784: PUSH2 0x20c2
00000787: JUMP
00000788: JUMPDEST
00000789: PUSH2 0x1353
0000078c: JUMP
0000078d: JUMPDEST
0000078e: CALLVALUE
0000078f: DUP1
00000790: ISZERO
00000791: PUSH2 0x0798
00000794: JUMPI
00000795: PUSH0
00000796: PUSH0
00000797: REVERT
00000798: JUMPDEST
00000799: POP
0000079a: PUSH2 0x034f
0000079d: PUSH2 0x07a7
000007a0: CALLDATASIZE
000007a1: PUSH1 0x04
000007a3: PUSH2 0x2151
000007a6: JUMP
000007a7: JUMPDEST
000007a8: PUSH2 0x1396
000007ab: JUMP
000007ac: JUMPDEST
000007ad: CALLVALUE
000007ae: DUP1
000007af: ISZERO
000007b0: PUSH2 0x07b7
000007b3: JUMPI
000007b4: PUSH0
000007b5: PUSH0
000007b6: REVERT
000007b7: JUMPDEST
000007b8: POP
000007b9: PUSH2 0x034f
000007bc: PUSH2 0x07c6
000007bf: CALLDATASIZE
000007c0: PUSH1 0x04
000007c2: PUSH2 0x2036
000007c5: JUMP
000007c6: JUMPDEST
000007c7: PUSH2 0x1508
000007ca: JUMP
000007cb: JUMPDEST
000007cc: CALLVALUE
000007cd: DUP1
000007ce: ISZERO
000007cf: PUSH2 0x07d6
000007d2: JUMPI
000007d3: PUSH0
000007d4: PUSH0
000007d5: REVERT
000007d6: JUMPDEST
000007d7: POP
000007d8: PUSH2 0x02ee
000007db: PUSH2 0x07e5
000007de: CALLDATASIZE
000007df: PUSH1 0x04
000007e1: PUSH2 0x2036
000007e4: JUMP
000007e5: JUMPDEST
000007e6: PUSH1 0x01
000007e8: PUSH1 0x01
000007ea: PUSH1 0xa0
000007ec: SHL
000007ed: SUB
000007ee: DUP1
000007ef: DUP3
000007f0: AND
000007f1: PUSH0
000007f2: SWAP1
000007f3: DUP2
000007f4: MSTORE
000007f5: PUSH1 0x07
000007f7: PUSH1 0x20
000007f9: SWAP1
000007fa: DUP2
000007fb: MSTORE
000007fc: PUSH1 0x40
000007fe: DUP1
000007ff: DUP4
00000800: KECCAK256
00000801: SWAP4
00000802: DUP7
00000803: AND
00000804: DUP4
00000805: MSTORE
00000806: PUSH1 0x05
00000808: SWAP1
00000809: SWAP4
0000080a: ADD
0000080b: SWAP1
0000080c: MSTORE
0000080d: KECCAK256
0000080e: SLOAD
0000080f: SWAP3
00000810: SWAP2
00000811: POP
00000812: POP
00000813: JUMP
00000814: JUMPDEST
00000815: CALLVALUE
00000816: DUP1
00000817: ISZERO
00000818: PUSH2 0x081f
0000081b: JUMPI
0000081c: PUSH0
0000081d: PUSH0
0000081e: REVERT
0000081f: JUMPDEST
00000820: POP
00000821: PUSH2 0x034f
00000824: PUSH2 0x082e
00000827: CALLDATASIZE
00000828: PUSH1 0x04
0000082a: PUSH2 0x20c2
0000082d: JUMP
0000082e: JUMPDEST
0000082f: PUSH2 0x15ac
00000832: JUMP
00000833: JUMPDEST
00000834: PUSH0
00000835: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000856: DUP3
00000857: AND
00000858: PUSH32 0x7965db0b00000000000000000000000000000000000000000000000000000000
00000879: EQ
0000087a: DUP1
0000087b: PUSH2 0x08c5
0000087e: JUMPI
0000087f: POP
00000880: PUSH32 0x01ffc9a700000000000000000000000000000000000000000000000000000000
000008a1: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000008c2: DUP4
000008c3: AND
000008c4: EQ
000008c5: JUMPDEST
000008c6: SWAP3
000008c7: SWAP2
000008c8: POP
000008c9: POP
000008ca: JUMP
000008cb: JUMPDEST
000008cc: PUSH0
000008cd: PUSH2 0x08d5
000008d0: DUP2
000008d1: PUSH2 0x1612
000008d4: JUMP
000008d5: JUMPDEST
000008d6: PUSH0
000008d7: PUSH2 0x08de
000008da: PUSH2 0x0b55
000008dd: JUMP
000008de: JUMPDEST
000008df: SWAP1
000008e0: POP
000008e1: PUSH0
000008e2: JUMPDEST
000008e3: DUP2
000008e4: MLOAD
000008e5: DUP2
000008e6: LT
000008e7: ISZERO
000008e8: PUSH2 0x097b
000008eb: JUMPI
000008ec: PUSH0
000008ed: DUP3
000008ee: DUP3
000008ef: DUP2
000008f0: MLOAD
000008f1: DUP2
000008f2: LT
000008f3: PUSH2 0x08fe
000008f6: JUMPI
000008f7: PUSH2 0x08fe
000008fa: PUSH2 0x2190
000008fd: JUMP
000008fe: JUMPDEST
000008ff: PUSH1 0x20
00000901: MUL
00000902: PUSH1 0x20
00000904: ADD
00000905: ADD
00000906: MLOAD
00000907: SWAP1
00000908: POP
00000909: PUSH2 0x0956
0000090c: DUP2
0000090d: DUP8
0000090e: PUSH0
0000090f: SWAP2
00000910: DUP3
00000911: MSTORE
00000912: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800
00000933: PUSH1 0x20
00000935: SWAP1
00000936: DUP2
00000937: MSTORE
00000938: PUSH1 0x40
0000093a: DUP1
0000093b: DUP5
0000093c: KECCAK256
0000093d: PUSH1 0x01
0000093f: PUSH1 0x01
00000941: PUSH1 0xa0
00000943: SHL
00000944: SUB
00000945: SWAP4
00000946: SWAP1
00000947: SWAP4
00000948: AND
00000949: DUP5
0000094a: MSTORE
0000094b: SWAP2
0000094c: SWAP1
0000094d: MSTORE
0000094e: SWAP1
0000094f: KECCAK256
00000950: SLOAD
00000951: PUSH1 0xff
00000953: AND
00000954: SWAP1
00000955: JUMP
00000956: JUMPDEST
00000957: ISZERO
00000958: PUSH2 0x0972
0000095b: JUMPI
0000095c: PUSH2 0x0965
0000095f: DUP2
00000960: DUP7
00000961: PUSH2 0x161f
00000964: JUMP
00000965: JUMPDEST
00000966: POP
00000967: PUSH2 0x0970
0000096a: DUP2
0000096b: DUP8
0000096c: PUSH2 0x16f2
0000096f: JUMP
00000970: JUMPDEST
00000971: POP
00000972: JUMPDEST
00000973: POP
00000974: PUSH1 0x01
00000976: ADD
00000977: PUSH2 0x08e2
0000097a: JUMP
0000097b: JUMPDEST
0000097c: POP
0000097d: POP
0000097e: POP
0000097f: POP
00000980: POP
00000981: JUMP
00000982: JUMPDEST
00000983: PUSH0
00000984: PUSH2 0x098c
00000987: DUP2
00000988: PUSH2 0x1612
0000098b: JUMP
0000098c: JUMPDEST
0000098d: PUSH1 0x01
0000098f: PUSH1 0x01
00000991: PUSH1 0xa0
00000993: SHL
00000994: SUB
00000995: DUP1
00000996: DUP6
00000997: AND
00000998: PUSH0
00000999: SWAP1
0000099a: DUP2
0000099b: MSTORE
0000099c: PUSH1 0x07
0000099e: PUSH1 0x20
000009a0: SWAP1
000009a1: DUP2
000009a2: MSTORE
000009a3: PUSH1 0x40
000009a5: DUP1
000009a6: DUP4
000009a7: KECCAK256
000009a8: SWAP4
000009a9: DUP8
000009aa: AND
000009ab: DUP4
000009ac: MSTORE
000009ad: PUSH1 0x05
000009af: SWAP1
000009b0: SWAP4
000009b1: ADD
000009b2: SWAP1
000009b3: MSTORE
000009b4: KECCAK256
000009b5: PUSH2 0x09be
000009b8: SWAP1
000009b9: DUP4
000009ba: PUSH2 0x1796
000009bd: JUMP
000009be: JUMPDEST
000009bf: DUP4
000009c0: PUSH1 0x01
000009c2: PUSH1 0x01
000009c4: PUSH1 0xa0
000009c6: SHL
000009c7: SUB
000009c8: AND
000009c9: DUP4
000009ca: PUSH1 0x01
000009cc: PUSH1 0x01
000009ce: PUSH1 0xa0
000009d0: SHL
000009d1: SUB
000009d2: AND
000009d3: PUSH32 0x348dce15fd3de540ba6f3060c6ac52ca14be006886d73e2ed0716bf939657ff3
000009f4: DUP5
000009f5: PUSH1 0x40
000009f7: MLOAD
000009f8: PUSH2 0x0a03
000009fb: SWAP2
000009fc: DUP2
000009fd: MSTORE
000009fe: PUSH1 0x20
00000a00: ADD
00000a01: SWAP1
00000a02: JUMP
00000a03: JUMPDEST
00000a04: PUSH1 0x40
00000a06: MLOAD
00000a07: DUP1
00000a08: SWAP2
00000a09: SUB
00000a0a: SWAP1
00000a0b: LOG3
00000a0c: POP
00000a0d: POP
00000a0e: POP
00000a0f: POP
00000a10: JUMP
00000a11: JUMPDEST
00000a12: PUSH0
00000a13: PUSH2 0x0a1b
00000a16: DUP2
00000a17: PUSH2 0x1612
00000a1a: JUMP
00000a1b: JUMPDEST
00000a1c: PUSH1 0x01
00000a1e: DUP3
00000a1f: SWAP1
00000a20: SSTORE
00000a21: PUSH1 0x40
00000a23: MLOAD
00000a24: DUP3
00000a25: DUP2
00000a26: MSTORE
00000a27: PUSH32 0xb3fdd48f612996be1ea8a86a15175097c3712342340370074dfecc58d047fdfa
00000a48: SWAP1
00000a49: PUSH1 0x20
00000a4b: ADD
00000a4c: JUMPDEST
00000a4d: PUSH1 0x40
00000a4f: MLOAD
00000a50: DUP1
00000a51: SWAP2
00000a52: SUB
00000a53: SWAP1
00000a54: LOG1
00000a55: POP
00000a56: POP
00000a57: JUMP
00000a58: JUMPDEST
00000a59: PUSH0
00000a5a: DUP3
00000a5b: DUP2
00000a5c: MSTORE
00000a5d: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800
00000a7e: PUSH1 0x20
00000a80: MSTORE
00000a81: PUSH1 0x40
00000a83: SWAP1
00000a84: KECCAK256
00000a85: PUSH1 0x01
00000a87: ADD
00000a88: SLOAD
00000a89: PUSH2 0x0a91
00000a8c: DUP2
00000a8d: PUSH2 0x1612
00000a90: JUMP
00000a91: JUMPDEST
00000a92: PUSH2 0x0a9b
00000a95: DUP4
00000a96: DUP4
00000a97: PUSH2 0x161f
00000a9a: JUMP
00000a9b: JUMPDEST
00000a9c: POP
00000a9d: POP
00000a9e: POP
00000a9f: POP
00000aa0: JUMP
00000aa1: JUMPDEST
00000aa2: PUSH0
00000aa3: PUSH2 0x0aab
00000aa6: DUP2
00000aa7: PUSH2 0x1612
00000aaa: JUMP
00000aab: JUMPDEST
00000aac: PUSH1 0x01
00000aae: PUSH1 0x01
00000ab0: PUSH1 0xa0
00000ab2: SHL
00000ab3: SUB
00000ab4: DUP3
00000ab5: AND
00000ab6: PUSH0
00000ab7: DUP2
00000ab8: DUP2
00000ab9: MSTORE
00000aba: PUSH1 0x07
00000abc: PUSH1 0x20
00000abe: MSTORE
00000abf: PUSH1 0x40
00000ac1: SWAP1
00000ac2: DUP2
00000ac3: SWAP1
00000ac4: KECCAK256
00000ac5: DUP6
00000ac6: SWAP1
00000ac7: SSTORE
00000ac8: MLOAD
00000ac9: PUSH32 0xe7cb39a2d9c680f8f2806bdd291fe54a154f7f30d7d7bda0dbc7d9a55ec29659
00000aea: SWAP1
00000aeb: PUSH2 0x0af7
00000aee: SWAP1
00000aef: DUP7
00000af0: DUP2
00000af1: MSTORE
00000af2: PUSH1 0x20
00000af4: ADD
00000af5: SWAP1
00000af6: JUMP
00000af7: JUMPDEST
00000af8: PUSH1 0x40
00000afa: MLOAD
00000afb: DUP1
00000afc: SWAP2
00000afd: SUB
00000afe: SWAP1
00000aff: LOG2
00000b00: POP
00000b01: POP
00000b02: POP
00000b03: JUMP
00000b04: JUMPDEST
00000b05: PUSH1 0x01
00000b07: PUSH1 0x01
00000b09: PUSH1 0xa0
00000b0b: SHL
00000b0c: SUB
00000b0d: DUP2
00000b0e: AND
00000b0f: CALLER
00000b10: EQ
00000b11: PUSH2 0x0b46
00000b14: JUMPI
00000b15: PUSH1 0x40
00000b17: MLOAD
00000b18: PUSH32 0x6697b23200000000000000000000000000000000000000000000000000000000
00000b39: DUP2
00000b3a: MSTORE
00000b3b: PUSH1 0x04
00000b3d: ADD
00000b3e: PUSH1 0x40
00000b40: MLOAD
00000b41: DUP1
00000b42: SWAP2
00000b43: SUB
00000b44: SWAP1
00000b45: REVERT
00000b46: JUMPDEST
00000b47: PUSH2 0x0b50
00000b4a: DUP3
00000b4b: DUP3
00000b4c: PUSH2 0x16f2
00000b4f: JUMP
00000b50: JUMPDEST
00000b51: POP
00000b52: POP
00000b53: POP
00000b54: JUMP
00000b55: JUMPDEST
00000b56: PUSH1 0x60
00000b58: PUSH0
00000b59: PUSH32 0x19b29a04048f51eb9591acef31c8d25631a0f178287c237da958990d82c90400
00000b7a: DUP1
00000b7b: SLOAD
00000b7c: PUSH1 0x40
00000b7e: DUP1
00000b7f: MLOAD
00000b80: PUSH1 0x20
00000b82: DUP1
00000b83: DUP5
00000b84: MUL
00000b85: DUP3
00000b86: ADD
00000b87: DUP2
00000b88: ADD
00000b89: SWAP1
00000b8a: SWAP3
00000b8b: MSTORE
00000b8c: DUP3
00000b8d: DUP2
00000b8e: MSTORE
00000b8f: SWAP3
00000b90: SWAP4
00000b91: POP
00000b92: DUP4
00000b93: SWAP2
00000b94: SWAP1
00000b95: DUP4
00000b96: ADD
00000b97: DUP3
00000b98: DUP3
00000b99: DUP1
00000b9a: ISZERO
00000b9b: PUSH2 0x0bc1
00000b9e: JUMPI
00000b9f: PUSH1 0x20
00000ba1: MUL
00000ba2: DUP3
00000ba3: ADD
00000ba4: SWAP2
00000ba5: SWAP1
00000ba6: PUSH0
00000ba7: MSTORE
00000ba8: PUSH1 0x20
00000baa: PUSH0
00000bab: KECCAK256
00000bac: SWAP1
00000bad: JUMPDEST
00000bae: DUP2
00000baf: SLOAD
00000bb0: DUP2
00000bb1: MSTORE
00000bb2: PUSH1 0x20
00000bb4: ADD
00000bb5: SWAP1
00000bb6: PUSH1 0x01
00000bb8: ADD
00000bb9: SWAP1
00000bba: DUP1
00000bbb: DUP4
00000bbc: GT
00000bbd: PUSH2 0x0bad
00000bc0: JUMPI
00000bc1: JUMPDEST
00000bc2: POP
00000bc3: POP
00000bc4: POP
00000bc5: POP
00000bc6: POP
00000bc7: SWAP2
00000bc8: POP
00000bc9: POP
00000bca: SWAP1
00000bcb: JUMP
00000bcc: JUMPDEST
00000bcd: PUSH0
00000bce: PUSH2 0x0bd6
00000bd1: DUP2
00000bd2: PUSH2 0x1612
00000bd5: JUMP
00000bd6: JUMPDEST
00000bd7: PUSH2 0x0be0
00000bda: CALLER
00000bdb: DUP4
00000bdc: PUSH2 0x08cb
00000bdf: JUMP
00000be0: JUMPDEST
00000be1: POP
00000be2: POP
00000be3: JUMP
00000be4: JUMPDEST
00000be5: PUSH0
00000be6: PUSH2 0x0bee
00000be9: DUP2
00000bea: PUSH2 0x1612
00000bed: JUMP
00000bee: JUMPDEST
00000bef: PUSH1 0x01
00000bf1: PUSH1 0x01
00000bf3: PUSH1 0xa0
00000bf5: SHL
00000bf6: SUB
00000bf7: DUP3
00000bf8: AND
00000bf9: PUSH0
00000bfa: SWAP1
00000bfb: DUP2
00000bfc: MSTORE
00000bfd: PUSH1 0x06
00000bff: PUSH1 0x20
00000c01: MSTORE
00000c02: PUSH1 0x40
00000c04: SWAP1
00000c05: KECCAK256
00000c06: PUSH2 0x0c0e
00000c09: SWAP1
00000c0a: PUSH2 0x17a0
00000c0d: JUMP
00000c0e: JUMPDEST
00000c0f: PUSH1 0x01
00000c11: PUSH1 0x01
00000c13: PUSH1 0xa0
00000c15: SHL
00000c16: SUB
00000c17: DUP3
00000c18: AND
00000c19: PUSH0
00000c1a: DUP2
00000c1b: DUP2
00000c1c: MSTORE
00000c1d: PUSH1 0x06
00000c1f: PUSH1 0x20
00000c21: MSTORE
00000c22: PUSH1 0x40
00000c24: DUP1
00000c25: DUP3
00000c26: KECCAK256
00000c27: DUP3
00000c28: DUP2
00000c29: SSTORE
00000c2a: PUSH1 0x01
00000c2c: DUP2
00000c2d: ADD
00000c2e: DUP4
00000c2f: SWAP1
00000c30: SSTORE
00000c31: PUSH1 0x02
00000c33: ADD
00000c34: DUP3
00000c35: SWAP1
00000c36: SSTORE
00000c37: MLOAD
00000c38: PUSH32 0x49ed5a425b7b67ea44959f73b24f6619d66c387d763a7217b9dc7980801b44b0
00000c59: SWAP2
00000c5a: SWAP1
00000c5b: LOG2
00000c5c: POP
00000c5d: POP
00000c5e: JUMP
00000c5f: JUMPDEST
00000c60: PUSH0
00000c61: PUSH2 0x0c69
00000c64: DUP2
00000c65: PUSH2 0x1612
00000c68: JUMP
00000c69: JUMPDEST
00000c6a: PUSH1 0x01
00000c6c: PUSH1 0x01
00000c6e: PUSH1 0xa0
00000c70: SHL
00000c71: SUB
00000c72: DUP3
00000c73: AND
00000c74: PUSH0
00000c75: SWAP1
00000c76: DUP2
00000c77: MSTORE
00000c78: PUSH1 0x07
00000c7a: PUSH1 0x20
00000c7c: MSTORE
00000c7d: PUSH1 0x40
00000c7f: SWAP1
00000c80: KECCAK256
00000c81: PUSH2 0x0c8a
00000c84: SWAP1
00000c85: DUP5
00000c86: PUSH2 0x1796
00000c89: JUMP
00000c8a: JUMPDEST
00000c8b: DUP2
00000c8c: PUSH1 0x01
00000c8e: PUSH1 0x01
00000c90: PUSH1 0xa0
00000c92: SHL
00000c93: SUB
00000c94: AND
00000c95: PUSH32 0x25fd70cafd02a8fb68b7d75044ea128508bea53919659a16db29691c0829aee8
00000cb6: DUP5
00000cb7: PUSH1 0x40
00000cb9: MLOAD
00000cba: PUSH2 0x0af7
00000cbd: SWAP2
00000cbe: DUP2
00000cbf: MSTORE
00000cc0: PUSH1 0x20
00000cc2: ADD
00000cc3: SWAP1
00000cc4: JUMP
00000cc5: JUMPDEST
00000cc6: PUSH1 0x01
00000cc8: PUSH1 0x01
00000cca: PUSH1 0xa0
00000ccc: SHL
00000ccd: SUB
00000cce: DUP2
00000ccf: AND
00000cd0: PUSH0
00000cd1: SWAP1
00000cd2: DUP2
00000cd3: MSTORE
00000cd4: PUSH1 0x06
00000cd6: PUSH1 0x20
00000cd8: MSTORE
00000cd9: PUSH1 0x40
00000cdb: DUP2
00000cdc: KECCAK256
00000cdd: PUSH2 0x08c5
00000ce0: SWAP1
00000ce1: PUSH2 0x17f6
00000ce4: JUMP
00000ce5: JUMPDEST
00000ce6: PUSH0
00000ce7: PUSH2 0x0cef
00000cea: DUP2
00000ceb: PUSH2 0x1612
00000cee: JUMP
00000cef: JUMPDEST
00000cf0: PUSH1 0x01
00000cf2: PUSH1 0x01
00000cf4: PUSH1 0xa0
00000cf6: SHL
00000cf7: SUB
00000cf8: DUP4
00000cf9: AND
00000cfa: PUSH0
00000cfb: SWAP1
00000cfc: DUP2
00000cfd: MSTORE
00000cfe: PUSH1 0x06
00000d00: PUSH1 0x20
00000d02: MSTORE
00000d03: PUSH1 0x40
00000d05: SWAP1
00000d06: KECCAK256
00000d07: PUSH2 0x0d10
00000d0a: SWAP1
00000d0b: DUP4
00000d0c: PUSH2 0x180c
00000d0f: JUMP
00000d10: JUMPDEST
00000d11: DUP3
00000d12: PUSH1 0x01
00000d14: PUSH1 0x01
00000d16: PUSH1 0xa0
00000d18: SHL
00000d19: SUB
00000d1a: AND
00000d1b: PUSH32 0xdf6e13830d1288305cf1a35d90049184ac452bc8581642bc8c5bb1976689aaae
00000d3c: DUP4
00000d3d: PUSH1 0x40
00000d3f: MLOAD
00000d40: PUSH2 0x0af7
00000d43: SWAP2
00000d44: DUP2
00000d45: MSTORE
00000d46: PUSH1 0x20
00000d48: ADD
00000d49: SWAP1
00000d4a: JUMP
00000d4b: JUMPDEST
00000d4c: PUSH0
00000d4d: PUSH2 0x0d55
00000d50: DUP2
00000d51: PUSH2 0x1612
00000d54: JUMP
00000d55: JUMPDEST
00000d56: PUSH1 0x01
00000d58: PUSH1 0x01
00000d5a: PUSH1 0xa0
00000d5c: SHL
00000d5d: SUB
00000d5e: DUP4
00000d5f: AND
00000d60: PUSH0
00000d61: SWAP1
00000d62: DUP2
00000d63: MSTORE
00000d64: PUSH1 0x06
00000d66: PUSH1 0x20
00000d68: MSTORE
00000d69: PUSH1 0x40
00000d6b: SWAP1
00000d6c: KECCAK256
00000d6d: PUSH2 0x0d76
00000d70: SWAP1
00000d71: DUP4
00000d72: PUSH2 0x1796
00000d75: JUMP
00000d76: JUMPDEST
00000d77: DUP3
00000d78: PUSH1 0x01
00000d7a: PUSH1 0x01
00000d7c: PUSH1 0xa0
00000d7e: SHL
00000d7f: SUB
00000d80: AND
00000d81: PUSH32 0x509436508ea84ce68bfc12a8a153280793f2ff613eaaa058e00f0a7a5acd974b
00000da2: DUP4
00000da3: PUSH1 0x40
00000da5: MLOAD
00000da6: PUSH2 0x0af7
00000da9: SWAP2
00000daa: DUP2
00000dab: MSTORE
00000dac: PUSH1 0x20
00000dae: ADD
00000daf: SWAP1
00000db0: JUMP
00000db1: JUMPDEST
00000db2: PUSH0
00000db3: PUSH2 0x0dbb
00000db6: DUP2
00000db7: PUSH2 0x1612
00000dba: JUMP
00000dbb: JUMPDEST
00000dbc: PUSH2 0x0be0
00000dbf: DUP3
00000dc0: PUSH2 0x181e
00000dc3: JUMP
00000dc4: JUMPDEST
00000dc5: PUSH0
00000dc6: PUSH2 0x0dcf
00000dc9: PUSH1 0x01
00000dcb: PUSH2 0x17f6
00000dce: JUMP
00000dcf: JUMPDEST
00000dd0: SWAP1
00000dd1: POP
00000dd2: SWAP1
00000dd3: JUMP
00000dd4: JUMPDEST
00000dd5: PUSH0
00000dd6: PUSH2 0x0dde
00000dd9: DUP2
00000dda: PUSH2 0x1612
00000ddd: JUMP
00000dde: JUMPDEST
00000ddf: PUSH1 0x01
00000de1: PUSH1 0x01
00000de3: PUSH1 0xa0
00000de5: SHL
00000de6: SUB
00000de7: DUP3
00000de8: DUP2
00000de9: AND
00000dea: PUSH0
00000deb: DUP2
00000dec: DUP2
00000ded: MSTORE
00000dee: PUSH1 0x07
00000df0: PUSH1 0x20
00000df2: SWAP1
00000df3: DUP2
00000df4: MSTORE
00000df5: PUSH1 0x40
00000df7: DUP1
00000df8: DUP4
00000df9: KECCAK256
00000dfa: SWAP5
00000dfb: DUP10
00000dfc: AND
00000dfd: DUP1
00000dfe: DUP5
00000dff: MSTORE
00000e00: PUSH1 0x05
00000e02: SWAP1
00000e03: SWAP6
00000e04: ADD
00000e05: DUP3
00000e06: MSTORE
00000e07: SWAP2
00000e08: DUP3
00000e09: SWAP1
00000e0a: KECCAK256
00000e0b: DUP8
00000e0c: SWAP1
00000e0d: SSTORE
00000e0e: SWAP1
00000e0f: MLOAD
00000e10: DUP7
00000e11: DUP2
00000e12: MSTORE
00000e13: SWAP2
00000e14: SWAP3
00000e15: SWAP2
00000e16: PUSH32 0xbfae88222d7885952627643deabf78bc1ff1ff0c2b37ccb824a35412d4b3a5e2
00000e37: SWAP2
00000e38: ADD
00000e39: PUSH2 0x0a03
00000e3c: JUMP
00000e3d: JUMPDEST
00000e3e: PUSH0
00000e3f: PUSH2 0x0e47
00000e42: DUP2
00000e43: PUSH2 0x1612
00000e46: JUMP
00000e47: JUMPDEST
00000e48: PUSH1 0x01
00000e4a: PUSH1 0x01
00000e4c: PUSH1 0xa0
00000e4e: SHL
00000e4f: SUB
00000e50: DUP1
00000e51: DUP6
00000e52: AND
00000e53: PUSH0
00000e54: SWAP1
00000e55: DUP2
00000e56: MSTORE
00000e57: PUSH1 0x07
00000e59: PUSH1 0x20
00000e5b: SWAP1
00000e5c: DUP2
00000e5d: MSTORE
00000e5e: PUSH1 0x40
00000e60: DUP1
00000e61: DUP4
00000e62: KECCAK256
00000e63: SWAP4
00000e64: DUP8
00000e65: AND
00000e66: DUP4
00000e67: MSTORE
00000e68: PUSH1 0x05
00000e6a: SWAP1
00000e6b: SWAP4
00000e6c: ADD
00000e6d: SWAP1
00000e6e: MSTORE
00000e6f: KECCAK256
00000e70: PUSH2 0x0e79
00000e73: SWAP1
00000e74: DUP4
00000e75: PUSH2 0x180c
00000e78: JUMP
00000e79: JUMPDEST
00000e7a: DUP4
00000e7b: PUSH1 0x01
00000e7d: PUSH1 0x01
00000e7f: PUSH1 0xa0
00000e81: SHL
00000e82: SUB
00000e83: AND
00000e84: DUP4
00000e85: PUSH1 0x01
00000e87: PUSH1 0x01
00000e89: PUSH1 0xa0
00000e8b: SHL
00000e8c: SUB
00000e8d: AND
00000e8e: PUSH32 0x2666a8e8d912db2513b24cb988c7969d3a7f65121bf3f353aa471984b2a2a6b7
00000eaf: DUP5
00000eb0: PUSH1 0x40
00000eb2: MLOAD
00000eb3: PUSH2 0x0a03
00000eb6: SWAP2
00000eb7: DUP2
00000eb8: MSTORE
00000eb9: PUSH1 0x20
00000ebb: ADD
00000ebc: SWAP1
00000ebd: JUMP
00000ebe: JUMPDEST
00000ebf: PUSH1 0x01
00000ec1: PUSH1 0x01
00000ec3: PUSH1 0xa0
00000ec5: SHL
00000ec6: SUB
00000ec7: DUP2
00000ec8: AND
00000ec9: PUSH0
00000eca: SWAP1
00000ecb: DUP2
00000ecc: MSTORE
00000ecd: PUSH1 0x07
00000ecf: PUSH1 0x20
00000ed1: MSTORE
00000ed2: PUSH1 0x40
00000ed4: DUP2
00000ed5: KECCAK256
00000ed6: PUSH2 0x08c5
00000ed9: SWAP1
00000eda: PUSH2 0x17f6
00000edd: JUMP
00000ede: JUMPDEST
00000edf: PUSH0
00000ee0: PUSH2 0x0ee8
00000ee3: DUP2
00000ee4: PUSH2 0x1612
00000ee7: JUMP
00000ee8: JUMPDEST
00000ee9: PUSH2 0x0ef3
00000eec: PUSH1 0x01
00000eee: DUP4
00000eef: PUSH2 0x1796
00000ef2: JUMP
00000ef3: JUMPDEST
00000ef4: PUSH1 0x40
00000ef6: MLOAD
00000ef7: DUP3
00000ef8: DUP2
00000ef9: MSTORE
00000efa: PUSH32 0x80ab31e93caeb03c74e133970df2d5966135fecf612eae54818a3a988a98477f
00000f1b: SWAP1
00000f1c: PUSH1 0x20
00000f1e: ADD
00000f1f: PUSH2 0x0a4c
00000f22: JUMP
00000f23: JUMPDEST
00000f24: PUSH32 0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c
00000f45: PUSH2 0x0f4d
00000f48: DUP2
00000f49: PUSH2 0x1612
00000f4c: JUMP
00000f4d: JUMPDEST
00000f4e: PUSH2 0x0f55
00000f51: PUSH2 0x1860
00000f54: JUMP
00000f55: JUMPDEST
00000f56: PUSH2 0x0f60
00000f59: PUSH1 0x01
00000f5b: DUP4
00000f5c: PUSH2 0x18a1
00000f5f: JUMP
00000f60: JUMPDEST
00000f61: PUSH2 0x0f7d
00000f64: JUMPI
00000f65: PUSH1 0x40
00000f67: MLOAD
00000f68: PUSH4 0x1930e3c9
00000f6d: PUSH1 0xe1
00000f6f: SHL
00000f70: DUP2
00000f71: MSTORE
00000f72: PUSH1 0x04
00000f74: ADD
00000f75: PUSH1 0x40
00000f77: MLOAD
00000f78: DUP1
00000f79: SWAP2
00000f7a: SUB
00000f7b: SWAP1
00000f7c: REVERT
00000f7d: JUMPDEST
00000f7e: PUSH1 0x01
00000f80: PUSH1 0x01
00000f82: PUSH1 0xa0
00000f84: SHL
00000f85: SUB
00000f86: DUP4
00000f87: AND
00000f88: PUSH0
00000f89: SWAP1
00000f8a: DUP2
00000f8b: MSTORE
00000f8c: PUSH1 0x06
00000f8e: PUSH1 0x20
00000f90: MSTORE
00000f91: PUSH1 0x40
00000f93: SWAP1
00000f94: KECCAK256
00000f95: PUSH2 0x0f9e
00000f98: SWAP1
00000f99: DUP4
00000f9a: PUSH2 0x18a1
00000f9d: JUMP
00000f9e: JUMPDEST
00000f9f: PUSH2 0x0fbb
00000fa2: JUMPI
00000fa3: PUSH1 0x40
00000fa5: MLOAD
00000fa6: PUSH4 0x6212d28b
00000fab: PUSH1 0xe0
00000fad: SHL
00000fae: DUP2
00000faf: MSTORE
00000fb0: PUSH1 0x04
00000fb2: ADD
00000fb3: PUSH1 0x40
00000fb5: MLOAD
00000fb6: DUP1
00000fb7: SWAP2
00000fb8: SUB
00000fb9: SWAP1
00000fba: REVERT
00000fbb: JUMPDEST
00000fbc: PUSH0
00000fbd: DUP4
00000fbe: PUSH1 0x01
00000fc0: PUSH1 0x01
00000fc2: PUSH1 0xa0
00000fc4: SHL
00000fc5: SUB
00000fc6: AND
00000fc7: DUP4
00000fc8: PUSH1 0x40
00000fca: MLOAD
00000fcb: PUSH0
00000fcc: PUSH1 0x40
00000fce: MLOAD
00000fcf: DUP1
00000fd0: DUP4
00000fd1: SUB
00000fd2: DUP2
00000fd3: DUP6
00000fd4: DUP8
00000fd5: GAS
00000fd6: CALL
00000fd7: SWAP3
00000fd8: POP
00000fd9: POP
00000fda: POP
00000fdb: RETURNDATASIZE
00000fdc: DUP1
00000fdd: PUSH0
00000fde: DUP2
00000fdf: EQ
00000fe0: PUSH2 0x1004
00000fe3: JUMPI
00000fe4: PUSH1 0x40
00000fe6: MLOAD
00000fe7: SWAP2
00000fe8: POP
00000fe9: PUSH1 0x1f
00000feb: NOT
00000fec: PUSH1 0x3f
00000fee: RETURNDATASIZE
00000fef: ADD
00000ff0: AND
00000ff1: DUP3
00000ff2: ADD
00000ff3: PUSH1 0x40
00000ff5: MSTORE
00000ff6: RETURNDATASIZE
00000ff7: DUP3
00000ff8: MSTORE
00000ff9: RETURNDATASIZE
00000ffa: PUSH0
00000ffb: PUSH1 0x20
00000ffd: DUP5
00000ffe: ADD
00000fff: RETURNDATACOPY
00001000: PUSH2 0x1009
00001003: JUMP
00001004: JUMPDEST
00001005: PUSH1 0x60
00001007: SWAP2
00001008: POP
00001009: JUMPDEST
0000100a: POP
0000100b: POP
0000100c: SWAP1
0000100d: POP
0000100e: DUP1
0000100f: PUSH2 0x1044
00001012: JUMPI
00001013: PUSH1 0x40
00001015: MLOAD
00001016: PUSH32 0x81063e5100000000000000000000000000000000000000000000000000000000
00001037: DUP2
00001038: MSTORE
00001039: PUSH1 0x04
0000103b: ADD
0000103c: PUSH1 0x40
0000103e: MLOAD
0000103f: DUP1
00001040: SWAP2
00001041: SUB
00001042: SWAP1
00001043: REVERT
00001044: JUMPDEST
00001045: DUP4
00001046: PUSH1 0x01
00001048: PUSH1 0x01
0000104a: PUSH1 0xa0
0000104c: SHL
0000104d: SUB
0000104e: AND
0000104f: PUSH32 0x69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de2
00001070: DUP5
00001071: PUSH1 0x40
00001073: MLOAD
00001074: PUSH2 0x107f
00001077: SWAP2
00001078: DUP2
00001079: MSTORE
0000107a: PUSH1 0x20
0000107c: ADD
0000107d: SWAP1
0000107e: JUMP
0000107f: JUMPDEST
00001080: PUSH1 0x40
00001082: MLOAD
00001083: DUP1
00001084: SWAP2
00001085: SUB
00001086: SWAP1
00001087: LOG2
00001088: POP
00001089: PUSH2 0x0b50
0000108c: PUSH1 0x01
0000108e: PUSH0
0000108f: SSTORE
00001090: JUMP
00001091: JUMPDEST
00001092: PUSH0
00001093: PUSH2 0x109b
00001096: DUP2
00001097: PUSH2 0x1612
0000109a: JUMP
0000109b: JUMPDEST
0000109c: PUSH2 0x10a6
0000109f: PUSH1 0x01
000010a1: DUP4
000010a2: PUSH2 0x180c
000010a5: JUMP
000010a6: JUMPDEST
000010a7: PUSH1 0x40
000010a9: MLOAD
000010aa: DUP3
000010ab: DUP2
000010ac: MSTORE
000010ad: PUSH32 0x7bf95ac3ba0f9edf010d6bd1b19da79d9d9b07d1d3c3ad9ac639f3e9519729bc
000010ce: SWAP1
000010cf: PUSH1 0x20
000010d1: ADD
000010d2: PUSH2 0x0a4c
000010d5: JUMP
000010d6: JUMPDEST
000010d7: PUSH1 0x01
000010d9: PUSH1 0x01
000010db: PUSH1 0xa0
000010dd: SHL
000010de: SUB
000010df: DUP1
000010e0: DUP3
000010e1: AND
000010e2: PUSH0
000010e3: SWAP1
000010e4: DUP2
000010e5: MSTORE
000010e6: PUSH1 0x07
000010e8: PUSH1 0x20
000010ea: SWAP1
000010eb: DUP2
000010ec: MSTORE
000010ed: PUSH1 0x40
000010ef: DUP1
000010f0: DUP4
000010f1: KECCAK256
000010f2: SWAP4
000010f3: DUP7
000010f4: AND
000010f5: DUP4
000010f6: MSTORE
000010f7: PUSH1 0x05
000010f9: SWAP1
000010fa: SWAP4
000010fb: ADD
000010fc: SWAP1
000010fd: MSTORE
000010fe: SWAP1
000010ff: DUP2
00001100: KECCAK256
00001101: PUSH2 0x1109
00001104: SWAP1
00001105: PUSH2 0x17f6
00001108: JUMP
00001109: JUMPDEST
0000110a: SWAP4
0000110b: SWAP3
0000110c: POP
0000110d: POP
0000110e: POP
0000110f: JUMP
00001110: JUMPDEST
00001111: PUSH0
00001112: PUSH2 0x111a
00001115: DUP2
00001116: PUSH2 0x1612
00001119: JUMP
0000111a: JUMPDEST
0000111b: PUSH1 0x01
0000111d: PUSH1 0x01
0000111f: PUSH1 0xa0
00001121: SHL
00001122: SUB
00001123: DUP4
00001124: AND
00001125: PUSH0
00001126: DUP2
00001127: DUP2
00001128: MSTORE
00001129: PUSH1 0x06
0000112b: PUSH1 0x20
0000112d: MSTORE
0000112e: PUSH1 0x40
00001130: SWAP1
00001131: DUP2
00001132: SWAP1
00001133: KECCAK256
00001134: DUP5
00001135: SWAP1
00001136: SSTORE
00001137: MLOAD
00001138: PUSH32 0x955e88a42936c33c90f7a228bfeccd15d4f8ff1163eb8337af6879df5c83b7df
00001159: SWAP1
0000115a: PUSH2 0x0af7
0000115d: SWAP1
0000115e: DUP6
0000115f: DUP2
00001160: MSTORE
00001161: PUSH1 0x20
00001163: ADD
00001164: SWAP1
00001165: JUMP
00001166: JUMPDEST
00001167: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
00001188: DUP1
00001189: SLOAD
0000118a: PUSH9 0x010000000000000000
00001194: DUP2
00001195: DIV
00001196: PUSH1 0xff
00001198: AND
00001199: ISZERO
0000119a: SWAP1
0000119b: PUSH8 0xffffffffffffffff
000011a4: AND
000011a5: PUSH0
000011a6: DUP2
000011a7: ISZERO
000011a8: DUP1
000011a9: ISZERO
000011aa: PUSH2 0x11b0
000011ad: JUMPI
000011ae: POP
000011af: DUP3
000011b0: JUMPDEST
000011b1: SWAP1
000011b2: POP
000011b3: PUSH0
000011b4: DUP3
000011b5: PUSH8 0xffffffffffffffff
000011be: AND
000011bf: PUSH1 0x01
000011c1: EQ
000011c2: DUP1
000011c3: ISZERO
000011c4: PUSH2 0x11cc
000011c7: JUMPI
000011c8: POP
000011c9: ADDRESS
000011ca: EXTCODESIZE
000011cb: ISZERO
000011cc: JUMPDEST
000011cd: SWAP1
000011ce: POP
000011cf: DUP2
000011d0: ISZERO
000011d1: DUP1
000011d2: ISZERO
000011d3: PUSH2 0x11da
000011d6: JUMPI
000011d7: POP
000011d8: DUP1
000011d9: ISZERO
000011da: JUMPDEST
000011db: ISZERO
000011dc: PUSH2 0x11f8
000011df: JUMPI
000011e0: PUSH1 0x40
000011e2: MLOAD
000011e3: PUSH4 0xf92ee8a9
000011e8: PUSH1 0xe0
000011ea: SHL
000011eb: DUP2
000011ec: MSTORE
000011ed: PUSH1 0x04
000011ef: ADD
000011f0: PUSH1 0x40
000011f2: MLOAD
000011f3: DUP1
000011f4: SWAP2
000011f5: SUB
000011f6: SWAP1
000011f7: REVERT
000011f8: JUMPDEST
000011f9: DUP5
000011fa: SLOAD
000011fb: PUSH8 0xffffffffffffffff
00001204: NOT
00001205: AND
00001206: PUSH1 0x01
00001208: OR
00001209: DUP6
0000120a: SSTORE
0000120b: DUP4
0000120c: ISZERO
0000120d: PUSH2 0x122c
00001210: JUMPI
00001211: DUP5
00001212: SLOAD
00001213: PUSH9 0xff0000000000000000
0000121d: NOT
0000121e: AND
0000121f: PUSH9 0x010000000000000000
00001229: OR
0000122a: DUP6
0000122b: SSTORE
0000122c: JUMPDEST
0000122d: PUSH2 0x1234
00001230: PUSH2 0x18bf
00001233: JUMP
00001234: JUMPDEST
00001235: PUSH2 0x12ab
00001238: PUSH32 0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c
00001259: PUSH32 0x19b29a04048f51eb9591acef31c8d25631a0f178287c237da958990d82c90400
0000127a: DUP1
0000127b: SLOAD
0000127c: PUSH1 0x01
0000127e: DUP2
0000127f: ADD
00001280: DUP3
00001281: SSTORE
00001282: PUSH0
00001283: SWAP2
00001284: SWAP1
00001285: SWAP2
00001286: MSTORE
00001287: PUSH32 0x2cae4504136210a96a15ce9f74b88bf785298cc8f14adcee9c25329511a4764b
000012a8: ADD
000012a9: SSTORE
000012aa: JUMP
000012ab: JUMPDEST
000012ac: PUSH2 0x12b4
000012af: DUP7
000012b0: PUSH2 0x181e
000012b3: JUMP
000012b4: JUMPDEST
000012b5: DUP4
000012b6: ISZERO
000012b7: PUSH2 0x12ff
000012ba: JUMPI
000012bb: DUP5
000012bc: SLOAD
000012bd: PUSH9 0xff0000000000000000
000012c7: NOT
000012c8: AND
000012c9: DUP6
000012ca: SSTORE
000012cb: PUSH1 0x40
000012cd: MLOAD
000012ce: PUSH1 0x01
000012d0: DUP2
000012d1: MSTORE
000012d2: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
000012f3: SWAP1
000012f4: PUSH1 0x20
000012f6: ADD
000012f7: PUSH1 0x40
000012f9: MLOAD
000012fa: DUP1
000012fb: SWAP2
000012fc: SUB
000012fd: SWAP1
000012fe: LOG1
000012ff: JUMPDEST
00001300: POP
00001301: POP
00001302: POP
00001303: POP
00001304: POP
00001305: POP
00001306: JUMP
00001307: JUMPDEST
00001308: PUSH0
00001309: PUSH2 0x1311
0000130c: DUP2
0000130d: PUSH2 0x1612
00001310: JUMP
00001311: JUMPDEST
00001312: PUSH0
00001313: PUSH2 0x131a
00001316: PUSH2 0x0b55
00001319: JUMP
0000131a: JUMPDEST
0000131b: SWAP1
0000131c: POP
0000131d: PUSH0
0000131e: JUMPDEST
0000131f: DUP2
00001320: MLOAD
00001321: DUP2
00001322: LT
00001323: ISZERO
00001324: PUSH2 0x0a9b
00001327: JUMPI
00001328: PUSH2 0x134a
0000132b: DUP3
0000132c: DUP3
0000132d: DUP2
0000132e: MLOAD
0000132f: DUP2
00001330: LT
00001331: PUSH2 0x133c
00001334: JUMPI
00001335: PUSH2 0x133c
00001338: PUSH2 0x2190
0000133b: JUMP
0000133c: JUMPDEST
0000133d: PUSH1 0x20
0000133f: MUL
00001340: PUSH1 0x20
00001342: ADD
00001343: ADD
00001344: MLOAD
00001345: DUP6
00001346: PUSH2 0x16f2
00001349: JUMP
0000134a: JUMPDEST
0000134b: POP
0000134c: PUSH1 0x01
0000134e: ADD
0000134f: PUSH2 0x131e
00001352: JUMP
00001353: JUMPDEST
00001354: PUSH0
00001355: DUP3
00001356: DUP2
00001357: MSTORE
00001358: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800
00001379: PUSH1 0x20
0000137b: MSTORE
0000137c: PUSH1 0x40
0000137e: SWAP1
0000137f: KECCAK256
00001380: PUSH1 0x01
00001382: ADD
00001383: SLOAD
00001384: PUSH2 0x138c
00001387: DUP2
00001388: PUSH2 0x1612
0000138b: JUMP
0000138c: JUMPDEST
0000138d: PUSH2 0x0a9b
00001390: DUP4
00001391: DUP4
00001392: PUSH2 0x16f2
00001395: JUMP
00001396: JUMPDEST
00001397: PUSH32 0x8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c
000013b8: PUSH2 0x13c0
000013bb: DUP2
000013bc: PUSH2 0x1612
000013bf: JUMP
000013c0: JUMPDEST
000013c1: PUSH1 0x01
000013c3: PUSH1 0x01
000013c5: PUSH1 0xa0
000013c7: SHL
000013c8: SUB
000013c9: DUP3
000013ca: AND
000013cb: PUSH0
000013cc: SWAP1
000013cd: DUP2
000013ce: MSTORE
000013cf: PUSH1 0x07
000013d1: PUSH1 0x20
000013d3: MSTORE
000013d4: PUSH1 0x40
000013d6: SWAP1
000013d7: KECCAK256
000013d8: PUSH2 0x13e1
000013db: SWAP1
000013dc: DUP5
000013dd: PUSH2 0x18a1
000013e0: JUMP
000013e1: JUMPDEST
000013e2: PUSH2 0x13fe
000013e5: JUMPI
000013e6: PUSH1 0x40
000013e8: MLOAD
000013e9: PUSH4 0x1930e3c9
000013ee: PUSH1 0xe1
000013f0: SHL
000013f1: DUP2
000013f2: MSTORE
000013f3: PUSH1 0x04
000013f5: ADD
000013f6: PUSH1 0x40
000013f8: MLOAD
000013f9: DUP1
000013fa: SWAP2
000013fb: SUB
000013fc: SWAP1
000013fd: REVERT
000013fe: JUMPDEST
000013ff: PUSH1 0x01
00001401: PUSH1 0x01
00001403: PUSH1 0xa0
00001405: SHL
00001406: SUB
00001407: DUP1
00001408: DUP4
00001409: AND
0000140a: PUSH0
0000140b: SWAP1
0000140c: DUP2
0000140d: MSTORE
0000140e: PUSH1 0x07
00001410: PUSH1 0x20
00001412: SWAP1
00001413: DUP2
00001414: MSTORE
00001415: PUSH1 0x40
00001417: DUP1
00001418: DUP4
00001419: KECCAK256
0000141a: SWAP4
0000141b: DUP9
0000141c: AND
0000141d: DUP4
0000141e: MSTORE
0000141f: PUSH1 0x05
00001421: SWAP1
00001422: SWAP4
00001423: ADD
00001424: SWAP1
00001425: MSTORE
00001426: KECCAK256
00001427: PUSH2 0x1430
0000142a: SWAP1
0000142b: DUP5
0000142c: PUSH2 0x18a1
0000142f: JUMP
00001430: JUMPDEST
00001431: PUSH2 0x144d
00001434: JUMPI
00001435: PUSH1 0x40
00001437: MLOAD
00001438: PUSH4 0x6212d28b
0000143d: PUSH1 0xe0
0000143f: SHL
00001440: DUP2
00001441: MSTORE
00001442: PUSH1 0x04
00001444: ADD
00001445: PUSH1 0x40
00001447: MLOAD
00001448: DUP1
00001449: SWAP2
0000144a: SUB
0000144b: SWAP1
0000144c: REVERT
0000144d: JUMPDEST
0000144e: PUSH1 0x40
00001450: MLOAD
00001451: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00001472: DUP2
00001473: MSTORE
00001474: PUSH1 0x01
00001476: PUSH1 0x01
00001478: PUSH1 0xa0
0000147a: SHL
0000147b: SUB
0000147c: DUP6
0000147d: DUP2
0000147e: AND
0000147f: PUSH1 0x04
00001481: DUP4
00001482: ADD
00001483: MSTORE
00001484: PUSH1 0x24
00001486: DUP3
00001487: ADD
00001488: DUP6
00001489: SWAP1
0000148a: MSTORE
0000148b: DUP4
0000148c: AND
0000148d: SWAP1
0000148e: PUSH4 0xa9059cbb
00001493: SWAP1
00001494: PUSH1 0x44
00001496: ADD
00001497: PUSH0
00001498: PUSH1 0x40
0000149a: MLOAD
0000149b: DUP1
0000149c: DUP4
0000149d: SUB
0000149e: DUP2
0000149f: PUSH0
000014a0: DUP8
000014a1: DUP1
000014a2: EXTCODESIZE
000014a3: ISZERO
000014a4: DUP1
000014a5: ISZERO
000014a6: PUSH2 0x14ad
000014a9: JUMPI
000014aa: PUSH0
000014ab: PUSH0
000014ac: REVERT
000014ad: JUMPDEST
000014ae: POP
000014af: GAS
000014b0: CALL
000014b1: ISZERO
000014b2: DUP1
000014b3: ISZERO
000014b4: PUSH2 0x14bf
000014b7: JUMPI
000014b8: RETURNDATASIZE
000014b9: PUSH0
000014ba: PUSH0
000014bb: RETURNDATACOPY
000014bc: RETURNDATASIZE
000014bd: PUSH0
000014be: REVERT
000014bf: JUMPDEST
000014c0: POP
000014c1: POP
000014c2: POP
000014c3: POP
000014c4: DUP2
000014c5: PUSH1 0x01
000014c7: PUSH1 0x01
000014c9: PUSH1 0xa0
000014cb: SHL
000014cc: SUB
000014cd: AND
000014ce: DUP5
000014cf: PUSH1 0x01
000014d1: PUSH1 0x01
000014d3: PUSH1 0xa0
000014d5: SHL
000014d6: SUB
000014d7: AND
000014d8: PUSH32 0x138dbc8474f748db86063dcef24cef1495bc73385a946f8d691128085e5ebec2
000014f9: DUP6
000014fa: PUSH1 0x40
000014fc: MLOAD
000014fd: PUSH2 0x0a03
00001500: SWAP2
00001501: DUP2
00001502: MSTORE
00001503: PUSH1 0x20
00001505: ADD
00001506: SWAP1
00001507: JUMP
00001508: JUMPDEST
00001509: PUSH0
0000150a: PUSH2 0x1512
0000150d: DUP2
0000150e: PUSH2 0x1612
00001511: JUMP
00001512: JUMPDEST
00001513: PUSH1 0x01
00001515: PUSH1 0x01
00001517: PUSH1 0xa0
00001519: SHL
0000151a: SUB
0000151b: DUP1
0000151c: DUP4
0000151d: AND
0000151e: PUSH0
0000151f: SWAP1
00001520: DUP2
00001521: MSTORE
00001522: PUSH1 0x07
00001524: PUSH1 0x20
00001526: SWAP1
00001527: DUP2
00001528: MSTORE
00001529: PUSH1 0x40
0000152b: DUP1
0000152c: DUP4
0000152d: KECCAK256
0000152e: SWAP4
0000152f: DUP8
00001530: AND
00001531: DUP4
00001532: MSTORE
00001533: PUSH1 0x05
00001535: SWAP1
00001536: SWAP4
00001537: ADD
00001538: SWAP1
00001539: MSTORE
0000153a: KECCAK256
0000153b: PUSH2 0x1543
0000153e: SWAP1
0000153f: PUSH2 0x17a0
00001542: JUMP
00001543: JUMPDEST
00001544: PUSH1 0x01
00001546: PUSH1 0x01
00001548: PUSH1 0xa0
0000154a: SHL
0000154b: SUB
0000154c: DUP1
0000154d: DUP4
0000154e: AND
0000154f: PUSH0
00001550: DUP2
00001551: DUP2
00001552: MSTORE
00001553: PUSH1 0x07
00001555: PUSH1 0x20
00001557: SWAP1
00001558: DUP2
00001559: MSTORE
0000155a: PUSH1 0x40
0000155c: DUP1
0000155d: DUP4
0000155e: KECCAK256
0000155f: SWAP5
00001560: DUP9
00001561: AND
00001562: DUP1
00001563: DUP5
00001564: MSTORE
00001565: PUSH1 0x05
00001567: SWAP1
00001568: SWAP6
00001569: ADD
0000156a: SWAP1
0000156b: SWAP2
0000156c: MSTORE
0000156d: DUP1
0000156e: DUP3
0000156f: KECCAK256
00001570: DUP3
00001571: DUP2
00001572: SSTORE
00001573: PUSH1 0x01
00001575: DUP2
00001576: ADD
00001577: DUP4
00001578: SWAP1
00001579: SSTORE
0000157a: PUSH1 0x02
0000157c: ADD
0000157d: DUP3
0000157e: SWAP1
0000157f: SSTORE
00001580: MLOAD
00001581: SWAP2
00001582: SWAP3
00001583: SWAP2
00001584: PUSH32 0xa53dcaabd1891533ffedc538c80436602c3db727cadf5eddb03066fbdc2092ac
000015a5: SWAP2
000015a6: SWAP1
000015a7: LOG3
000015a8: POP
000015a9: POP
000015aa: POP
000015ab: JUMP
000015ac: JUMPDEST
000015ad: PUSH0
000015ae: PUSH2 0x15b6
000015b1: DUP2
000015b2: PUSH2 0x1612
000015b5: JUMP
000015b6: JUMPDEST
000015b7: PUSH1 0x01
000015b9: PUSH1 0x01
000015bb: PUSH1 0xa0
000015bd: SHL
000015be: SUB
000015bf: DUP3
000015c0: AND
000015c1: PUSH0
000015c2: SWAP1
000015c3: DUP2
000015c4: MSTORE
000015c5: PUSH1 0x07
000015c7: PUSH1 0x20
000015c9: MSTORE
000015ca: PUSH1 0x40
000015cc: SWAP1
000015cd: KECCAK256
000015ce: PUSH2 0x15d7
000015d1: SWAP1
000015d2: DUP5
000015d3: PUSH2 0x180c
000015d6: JUMP
000015d7: JUMPDEST
000015d8: DUP2
000015d9: PUSH1 0x01
000015db: PUSH1 0x01
000015dd: PUSH1 0xa0
000015df: SHL
000015e0: SUB
000015e1: AND
000015e2: PUSH32 0x7ddcb49ae795340963d93aec904bc140610c9cf8fa9a3000205b9cf7f1b8f25f
00001603: DUP5
00001604: PUSH1 0x40
00001606: MLOAD
00001607: PUSH2 0x0af7
0000160a: SWAP2
0000160b: DUP2
0000160c: MSTORE
0000160d: PUSH1 0x20
0000160f: ADD
00001610: SWAP1
00001611: JUMP
00001612: JUMPDEST
00001613: PUSH2 0x161c
00001616: DUP2
00001617: CALLER
00001618: PUSH2 0x19de
0000161b: JUMP
0000161c: JUMPDEST
0000161d: POP
0000161e: JUMP
0000161f: JUMPDEST
00001620: PUSH0
00001621: DUP3
00001622: DUP2
00001623: MSTORE
00001624: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800
00001645: PUSH1 0x20
00001647: DUP2
00001648: DUP2
00001649: MSTORE
0000164a: PUSH1 0x40
0000164c: DUP1
0000164d: DUP5
0000164e: KECCAK256
0000164f: PUSH1 0x01
00001651: PUSH1 0x01
00001653: PUSH1 0xa0
00001655: SHL
00001656: SUB
00001657: DUP7
00001658: AND
00001659: DUP6
0000165a: MSTORE
0000165b: SWAP1
0000165c: SWAP2
0000165d: MSTORE
0000165e: DUP3
0000165f: KECCAK256
00001660: SLOAD
00001661: PUSH1 0xff
00001663: AND
00001664: PUSH2 0x16e2
00001667: JUMPI
00001668: PUSH0
00001669: DUP5
0000166a: DUP2
0000166b: MSTORE
0000166c: PUSH1 0x20
0000166e: DUP3
0000166f: DUP2
00001670: MSTORE
00001671: PUSH1 0x40
00001673: DUP1
00001674: DUP4
00001675: KECCAK256
00001676: PUSH1 0x01
00001678: PUSH1 0x01
0000167a: PUSH1 0xa0
0000167c: SHL
0000167d: SUB
0000167e: DUP8
0000167f: AND
00001680: DUP5
00001681: MSTORE
00001682: SWAP1
00001683: SWAP2
00001684: MSTORE
00001685: SWAP1
00001686: KECCAK256
00001687: DUP1
00001688: SLOAD
00001689: PUSH1 0xff
0000168b: NOT
0000168c: AND
0000168d: PUSH1 0x01
0000168f: OR
00001690: SWAP1
00001691: SSTORE
00001692: PUSH2 0x1698
00001695: CALLER
00001696: SWAP1
00001697: JUMP
00001698: JUMPDEST
00001699: PUSH1 0x01
0000169b: PUSH1 0x01
0000169d: PUSH1 0xa0
0000169f: SHL
000016a0: SUB
000016a1: AND
000016a2: DUP4
000016a3: PUSH1 0x01
000016a5: PUSH1 0x01
000016a7: PUSH1 0xa0
000016a9: SHL
000016aa: SUB
000016ab: AND
000016ac: DUP6
000016ad: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
000016ce: PUSH1 0x40
000016d0: MLOAD
000016d1: PUSH1 0x40
000016d3: MLOAD
000016d4: DUP1
000016d5: SWAP2
000016d6: SUB
000016d7: SWAP1
000016d8: LOG4
000016d9: PUSH1 0x01
000016db: SWAP2
000016dc: POP
000016dd: POP
000016de: PUSH2 0x08c5
000016e1: JUMP
000016e2: JUMPDEST
000016e3: PUSH0
000016e4: SWAP2
000016e5: POP
000016e6: POP
000016e7: PUSH2 0x08c5
000016ea: JUMP
000016eb: JUMPDEST
000016ec: POP
000016ed: SWAP3
000016ee: SWAP2
000016ef: POP
000016f0: POP
000016f1: JUMP
000016f2: JUMPDEST
000016f3: PUSH0
000016f4: DUP3
000016f5: DUP2
000016f6: MSTORE
000016f7: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800
00001718: PUSH1 0x20
0000171a: DUP2
0000171b: DUP2
0000171c: MSTORE
0000171d: PUSH1 0x40
0000171f: DUP1
00001720: DUP5
00001721: KECCAK256
00001722: PUSH1 0x01
00001724: PUSH1 0x01
00001726: PUSH1 0xa0
00001728: SHL
00001729: SUB
0000172a: DUP7
0000172b: AND
0000172c: DUP6
0000172d: MSTORE
0000172e: SWAP1
0000172f: SWAP2
00001730: MSTORE
00001731: DUP3
00001732: KECCAK256
00001733: SLOAD
00001734: PUSH1 0xff
00001736: AND
00001737: ISZERO
00001738: PUSH2 0x16e2
0000173b: JUMPI
0000173c: PUSH0
0000173d: DUP5
0000173e: DUP2
0000173f: MSTORE
00001740: PUSH1 0x20
00001742: DUP3
00001743: DUP2
00001744: MSTORE
00001745: PUSH1 0x40
00001747: DUP1
00001748: DUP4
00001749: KECCAK256
0000174a: PUSH1 0x01
0000174c: PUSH1 0x01
0000174e: PUSH1 0xa0
00001750: SHL
00001751: SUB
00001752: DUP8
00001753: AND
00001754: DUP1
00001755: DUP6
00001756: MSTORE
00001757: SWAP3
00001758: MSTORE
00001759: DUP1
0000175a: DUP4
0000175b: KECCAK256
0000175c: DUP1
0000175d: SLOAD
0000175e: PUSH1 0xff
00001760: NOT
00001761: AND
00001762: SWAP1
00001763: SSTORE
00001764: MLOAD
00001765: CALLER
00001766: SWAP3
00001767: DUP8
00001768: SWAP2
00001769: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b
0000178a: SWAP2
0000178b: SWAP1
0000178c: LOG4
0000178d: PUSH1 0x01
0000178f: SWAP2
00001790: POP
00001791: POP
00001792: PUSH2 0x08c5
00001795: JUMP
00001796: JUMPDEST
00001797: PUSH2 0x0be0
0000179a: DUP3
0000179b: DUP3
0000179c: PUSH2 0x1a6e
0000179f: JUMP
000017a0: JUMPDEST
000017a1: PUSH1 0x01
000017a3: DUP2
000017a4: ADD
000017a5: SLOAD
000017a6: PUSH1 0x01
000017a8: PUSH1 0x01
000017aa: PUSH1 0x80
000017ac: SHL
000017ad: SUB
000017ae: AND
000017af: JUMPDEST
000017b0: PUSH1 0x01
000017b2: PUSH1 0x01
000017b4: PUSH1 0x80
000017b6: SHL
000017b7: SUB
000017b8: DUP2
000017b9: AND
000017ba: ISZERO
000017bb: PUSH2 0x0be0
000017be: JUMPI
000017bf: PUSH1 0x01
000017c1: PUSH1 0x01
000017c3: PUSH1 0x80
000017c5: SHL
000017c6: SUB
000017c7: DUP2
000017c8: AND
000017c9: PUSH0
000017ca: SWAP1
000017cb: DUP2
000017cc: MSTORE
000017cd: PUSH1 0x04
000017cf: DUP4
000017d0: ADD
000017d1: PUSH1 0x20
000017d3: MSTORE
000017d4: PUSH1 0x40
000017d6: DUP2
000017d7: KECCAK256
000017d8: DUP2
000017d9: DUP2
000017da: SSTORE
000017db: PUSH1 0x01
000017dd: SWAP1
000017de: DUP2
000017df: ADD
000017e0: SWAP2
000017e1: SWAP1
000017e2: SWAP2
000017e3: SSTORE
000017e4: PUSH2 0x17ef
000017e7: SWAP1
000017e8: DUP4
000017e9: ADD
000017ea: DUP3
000017eb: PUSH2 0x1b44
000017ee: JUMP
000017ef: JUMPDEST
000017f0: SWAP1
000017f1: POP
000017f2: PUSH2 0x17af
000017f5: JUMP
000017f6: JUMPDEST
000017f7: PUSH0
000017f8: PUSH2 0x1800
000017fb: DUP3
000017fc: PUSH2 0x1cb8
000017ff: JUMP
00001800: JUMPDEST
00001801: DUP3
00001802: SLOAD
00001803: PUSH2 0x08c5
00001806: SWAP2
00001807: SWAP1
00001808: PUSH2 0x21b8
0000180b: JUMP
0000180c: JUMPDEST
0000180d: PUSH2 0x0be0
00001810: DUP3
00001811: PUSH2 0x1819
00001814: DUP4
00001815: PUSH2 0x21d7
00001818: JUMP
00001819: JUMPDEST
0000181a: PUSH2 0x1a6e
0000181d: JUMP
0000181e: JUMPDEST
0000181f: PUSH0
00001820: PUSH2 0x1827
00001823: PUSH2 0x0b55
00001826: JUMP
00001827: JUMPDEST
00001828: SWAP1
00001829: POP
0000182a: PUSH0
0000182b: JUMPDEST
0000182c: DUP2
0000182d: MLOAD
0000182e: DUP2
0000182f: LT
00001830: ISZERO
00001831: PUSH2 0x0b50
00001834: JUMPI
00001835: PUSH2 0x1857
00001838: DUP3
00001839: DUP3
0000183a: DUP2
0000183b: MLOAD
0000183c: DUP2
0000183d: LT
0000183e: PUSH2 0x1849
00001841: JUMPI
00001842: PUSH2 0x1849
00001845: PUSH2 0x2190
00001848: JUMP
00001849: JUMPDEST
0000184a: PUSH1 0x20
0000184c: MUL
0000184d: PUSH1 0x20
0000184f: ADD
00001850: ADD
00001851: MLOAD
00001852: DUP5
00001853: PUSH2 0x161f
00001856: JUMP
00001857: JUMPDEST
00001858: POP
00001859: PUSH1 0x01
0000185b: ADD
0000185c: PUSH2 0x182b
0000185f: JUMP
00001860: JUMPDEST
00001861: PUSH1 0x02
00001863: PUSH0
00001864: SLOAD
00001865: SUB
00001866: PUSH2 0x189b
00001869: JUMPI
0000186a: PUSH1 0x40
0000186c: MLOAD
0000186d: PUSH32 0x3ee5aeb500000000000000000000000000000000000000000000000000000000
0000188e: DUP2
0000188f: MSTORE
00001890: PUSH1 0x04
00001892: ADD
00001893: PUSH1 0x40
00001895: MLOAD
00001896: DUP1
00001897: SWAP2
00001898: SUB
00001899: SWAP1
0000189a: REVERT
0000189b: JUMPDEST
0000189c: PUSH1 0x02
0000189e: PUSH0
0000189f: SSTORE
000018a0: JUMP
000018a1: JUMPDEST
000018a2: PUSH0
000018a3: PUSH2 0x18ac
000018a6: DUP4
000018a7: DUP4
000018a8: PUSH2 0x1a6e
000018ab: JUMP
000018ac: JUMPDEST
000018ad: PUSH0
000018ae: PUSH2 0x18b6
000018b1: DUP5
000018b2: PUSH2 0x17f6
000018b5: JUMP
000018b6: JUMPDEST
000018b7: SLT
000018b8: ISZERO
000018b9: SWAP4
000018ba: SWAP3
000018bb: POP
000018bc: POP
000018bd: POP
000018be: JUMP
000018bf: JUMPDEST
000018c0: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
000018e1: DUP1
000018e2: SLOAD
000018e3: PUSH9 0x010000000000000000
000018ed: DUP2
000018ee: DIV
000018ef: PUSH1 0xff
000018f1: AND
000018f2: ISZERO
000018f3: SWAP1
000018f4: PUSH8 0xffffffffffffffff
000018fd: AND
000018fe: PUSH0
000018ff: DUP2
00001900: ISZERO
00001901: DUP1
00001902: ISZERO
00001903: PUSH2 0x1909
00001906: JUMPI
00001907: POP
00001908: DUP3
00001909: JUMPDEST
0000190a: SWAP1
0000190b: POP
0000190c: PUSH0
0000190d: DUP3
0000190e: PUSH8 0xffffffffffffffff
00001917: AND
00001918: PUSH1 0x01
0000191a: EQ
0000191b: DUP1
0000191c: ISZERO
0000191d: PUSH2 0x1925
00001920: JUMPI
00001921: POP
00001922: ADDRESS
00001923: EXTCODESIZE
00001924: ISZERO
00001925: JUMPDEST
00001926: SWAP1
00001927: POP
00001928: DUP2
00001929: ISZERO
0000192a: DUP1
0000192b: ISZERO
0000192c: PUSH2 0x1933
0000192f: JUMPI
00001930: POP
00001931: DUP1
00001932: ISZERO
00001933: JUMPDEST
00001934: ISZERO
00001935: PUSH2 0x1951
00001938: JUMPI
00001939: PUSH1 0x40
0000193b: MLOAD
0000193c: PUSH4 0xf92ee8a9
00001941: PUSH1 0xe0
00001943: SHL
00001944: DUP2
00001945: MSTORE
00001946: PUSH1 0x04
00001948: ADD
00001949: PUSH1 0x40
0000194b: MLOAD
0000194c: DUP1
0000194d: SWAP2
0000194e: SUB
0000194f: SWAP1
00001950: REVERT
00001951: JUMPDEST
00001952: DUP5
00001953: SLOAD
00001954: PUSH8 0xffffffffffffffff
0000195d: NOT
0000195e: AND
0000195f: PUSH1 0x01
00001961: OR
00001962: DUP6
00001963: SSTORE
00001964: DUP4
00001965: ISZERO
00001966: PUSH2 0x1985
00001969: JUMPI
0000196a: DUP5
0000196b: SLOAD
0000196c: PUSH9 0xff0000000000000000
00001976: NOT
00001977: AND
00001978: PUSH9 0x010000000000000000
00001982: OR
00001983: DUP6
00001984: SSTORE
00001985: JUMPDEST
00001986: PUSH2 0x198d
00001989: PUSH2 0x1d59
0000198c: JUMP
0000198d: JUMPDEST
0000198e: DUP4
0000198f: ISZERO
00001990: PUSH2 0x097b
00001993: JUMPI
00001994: DUP5
00001995: SLOAD
00001996: PUSH9 0xff0000000000000000
000019a0: NOT
000019a1: AND
000019a2: DUP6
000019a3: SSTORE
000019a4: PUSH1 0x40
000019a6: MLOAD
000019a7: PUSH1 0x01
000019a9: DUP2
000019aa: MSTORE
000019ab: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
000019cc: SWAP1
000019cd: PUSH1 0x20
000019cf: ADD
000019d0: PUSH1 0x40
000019d2: MLOAD
000019d3: DUP1
000019d4: SWAP2
000019d5: SUB
000019d6: SWAP1
000019d7: LOG1
000019d8: POP
000019d9: POP
000019da: POP
000019db: POP
000019dc: POP
000019dd: JUMP
000019de: JUMPDEST
000019df: PUSH0
000019e0: DUP3
000019e1: DUP2
000019e2: MSTORE
000019e3: PUSH32 0x02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800
00001a04: PUSH1 0x20
00001a06: SWAP1
00001a07: DUP2
00001a08: MSTORE
00001a09: PUSH1 0x40
00001a0b: DUP1
00001a0c: DUP4
00001a0d: KECCAK256
00001a0e: PUSH1 0x01
00001a10: PUSH1 0x01
00001a12: PUSH1 0xa0
00001a14: SHL
00001a15: SUB
00001a16: DUP6
00001a17: AND
00001a18: DUP5
00001a19: MSTORE
00001a1a: SWAP1
00001a1b: SWAP2
00001a1c: MSTORE
00001a1d: SWAP1
00001a1e: KECCAK256
00001a1f: SLOAD
00001a20: PUSH1 0xff
00001a22: AND
00001a23: PUSH2 0x0be0
00001a26: JUMPI
00001a27: PUSH1 0x40
00001a29: MLOAD
00001a2a: PUSH32 0xe2517d3f00000000000000000000000000000000000000000000000000000000
00001a4b: DUP2
00001a4c: MSTORE
00001a4d: PUSH1 0x01
00001a4f: PUSH1 0x01
00001a51: PUSH1 0xa0
00001a53: SHL
00001a54: SUB
00001a55: DUP3
00001a56: AND
00001a57: PUSH1 0x04
00001a59: DUP3
00001a5a: ADD
00001a5b: MSTORE
00001a5c: PUSH1 0x24
00001a5e: DUP2
00001a5f: ADD
00001a60: DUP4
00001a61: SWAP1
00001a62: MSTORE
00001a63: PUSH1 0x44
00001a65: ADD
00001a66: PUSH1 0x40
00001a68: MLOAD
00001a69: DUP1
00001a6a: SWAP2
00001a6b: SUB
00001a6c: SWAP1
00001a6d: REVERT
00001a6e: JUMPDEST
00001a6f: PUSH1 0x01
00001a71: DUP3
00001a72: ADD
00001a73: SLOAD
00001a74: PUSH1 0x01
00001a76: PUSH1 0x01
00001a78: PUSH1 0x80
00001a7a: SHL
00001a7b: SUB
00001a7c: AND
00001a7d: JUMPDEST
00001a7e: PUSH1 0x01
00001a80: PUSH1 0x01
00001a82: PUSH1 0x80
00001a84: SHL
00001a85: SUB
00001a86: DUP2
00001a87: AND
00001a88: ISZERO
00001a89: PUSH2 0x1af3
00001a8c: JUMPI
00001a8d: PUSH2 0x1a99
00001a90: PUSH3 0x015180
00001a94: TIMESTAMP
00001a95: PUSH2 0x220d
00001a98: JUMP
00001a99: JUMPDEST
00001a9a: PUSH1 0x01
00001a9c: PUSH1 0x01
00001a9e: PUSH1 0x80
00001aa0: SHL
00001aa1: SUB
00001aa2: DUP3
00001aa3: AND
00001aa4: PUSH0
00001aa5: SWAP1
00001aa6: DUP2
00001aa7: MSTORE
00001aa8: PUSH1 0x04
00001aaa: DUP6
00001aab: ADD
00001aac: PUSH1 0x20
00001aae: MSTORE
00001aaf: PUSH1 0x40
00001ab1: SWAP1
00001ab2: KECCAK256
00001ab3: PUSH1 0x01
00001ab5: ADD
00001ab6: SLOAD
00001ab7: GT
00001ab8: PUSH2 0x1af3
00001abb: JUMPI
00001abc: PUSH1 0x01
00001abe: PUSH1 0x01
00001ac0: PUSH1 0x80
00001ac2: SHL
00001ac3: SUB
00001ac4: DUP2
00001ac5: AND
00001ac6: PUSH0
00001ac7: SWAP1
00001ac8: DUP2
00001ac9: MSTORE
00001aca: PUSH1 0x04
00001acc: DUP5
00001acd: ADD
00001ace: PUSH1 0x20
00001ad0: MSTORE
00001ad1: PUSH1 0x40
00001ad3: DUP2
00001ad4: KECCAK256
00001ad5: DUP2
00001ad6: DUP2
00001ad7: SSTORE
00001ad8: PUSH1 0x01
00001ada: SWAP1
00001adb: DUP2
00001adc: ADD
00001add: SWAP2
00001ade: SWAP1
00001adf: SWAP2
00001ae0: SSTORE
00001ae1: PUSH2 0x1aec
00001ae4: SWAP1
00001ae5: DUP5
00001ae6: ADD
00001ae7: DUP3
00001ae8: PUSH2 0x1b44
00001aeb: JUMP
00001aec: JUMPDEST
00001aed: SWAP1
00001aee: POP
00001aef: PUSH2 0x1a7d
00001af2: JUMP
00001af3: JUMPDEST
00001af4: PUSH1 0x40
00001af6: MLOAD
00001af7: DUP1
00001af8: PUSH1 0x40
00001afa: ADD
00001afb: PUSH1 0x40
00001afd: MSTORE
00001afe: DUP1
00001aff: DUP4
00001b00: DUP2
00001b01: MSTORE
00001b02: PUSH1 0x20
00001b04: ADD
00001b05: TIMESTAMP
00001b06: DUP2
00001b07: MSTORE
00001b08: POP
00001b09: DUP4
00001b0a: PUSH1 0x04
00001b0c: ADD
00001b0d: PUSH0
00001b0e: PUSH2 0x1b19
00001b11: DUP7
00001b12: PUSH1 0x01
00001b14: ADD
00001b15: PUSH2 0x1e74
00001b18: JUMP
00001b19: JUMPDEST
00001b1a: PUSH1 0x01
00001b1c: PUSH1 0x01
00001b1e: PUSH1 0x80
00001b20: SHL
00001b21: SUB
00001b22: AND
00001b23: DUP2
00001b24: MSTORE
00001b25: PUSH1 0x20
00001b27: DUP1
00001b28: DUP3
00001b29: ADD
00001b2a: SWAP3
00001b2b: SWAP1
00001b2c: SWAP3
00001b2d: MSTORE
00001b2e: PUSH1 0x40
00001b30: ADD
00001b31: PUSH0
00001b32: KECCAK256
00001b33: DUP3
00001b34: MLOAD
00001b35: DUP2
00001b36: SSTORE
00001b37: SWAP2
00001b38: ADD
00001b39: MLOAD
00001b3a: PUSH1 0x01
00001b3c: SWAP1
00001b3d: SWAP2
00001b3e: ADD
00001b3f: SSTORE
00001b40: POP
00001b41: POP
00001b42: POP
00001b43: JUMP
00001b44: JUMPDEST
00001b45: PUSH1 0x01
00001b47: PUSH1 0x01
00001b49: PUSH1 0x80
00001b4b: SHL
00001b4c: SUB
00001b4d: DUP1
00001b4e: DUP3
00001b4f: AND
00001b50: PUSH0
00001b51: SWAP1
00001b52: DUP2
00001b53: MSTORE
00001b54: PUSH1 0x02
00001b56: DUP5
00001b57: ADD
00001b58: PUSH1 0x20
00001b5a: MSTORE
00001b5b: PUSH1 0x40
00001b5d: DUP2
00001b5e: KECCAK256
00001b5f: DUP1
00001b60: SLOAD
00001b61: SWAP2
00001b62: SWAP3
00001b63: SWAP1
00001b64: SWAP2
00001b65: AND
00001b66: ISZERO
00001b67: PUSH2 0x1ba1
00001b6a: JUMPI
00001b6b: DUP1
00001b6c: SLOAD
00001b6d: PUSH1 0x01
00001b6f: PUSH1 0x01
00001b71: PUSH1 0x80
00001b73: SHL
00001b74: SUB
00001b75: DUP1
00001b76: DUP3
00001b77: AND
00001b78: PUSH0
00001b79: SWAP1
00001b7a: DUP2
00001b7b: MSTORE
00001b7c: PUSH1 0x02
00001b7e: DUP8
00001b7f: ADD
00001b80: PUSH1 0x20
00001b82: MSTORE
00001b83: PUSH1 0x40
00001b85: SWAP1
00001b86: KECCAK256
00001b87: DUP1
00001b88: SLOAD
00001b89: DUP3
00001b8a: AND
00001b8b: PUSH1 0x01
00001b8d: PUSH1 0x80
00001b8f: SHL
00001b90: SWAP4
00001b91: DUP5
00001b92: SWAP1
00001b93: DIV
00001b94: SWAP1
00001b95: SWAP3
00001b96: AND
00001b97: SWAP1
00001b98: SWAP3
00001b99: MUL
00001b9a: OR
00001b9b: SWAP1
00001b9c: SSTORE
00001b9d: PUSH2 0x1bcf
00001ba0: JUMP
00001ba1: JUMPDEST
00001ba2: DUP1
00001ba3: SLOAD
00001ba4: DUP5
00001ba5: SLOAD
00001ba6: PUSH1 0x01
00001ba8: PUSH1 0x80
00001baa: SHL
00001bab: SWAP1
00001bac: SWAP2
00001bad: DIV
00001bae: PUSH1 0x01
00001bb0: PUSH1 0x01
00001bb2: PUSH1 0x80
00001bb4: SHL
00001bb5: SUB
00001bb6: AND
00001bb7: PUSH16 0xffffffffffffffffffffffffffffffff
00001bc8: NOT
00001bc9: SWAP1
00001bca: SWAP2
00001bcb: AND
00001bcc: OR
00001bcd: DUP5
00001bce: SSTORE
00001bcf: JUMPDEST
00001bd0: DUP1
00001bd1: SLOAD
00001bd2: PUSH1 0x01
00001bd4: PUSH1 0x80
00001bd6: SHL
00001bd7: SWAP1
00001bd8: DIV
00001bd9: PUSH1 0x01
00001bdb: PUSH1 0x01
00001bdd: PUSH1 0x80
00001bdf: SHL
00001be0: SUB
00001be1: AND
00001be2: ISZERO
00001be3: PUSH2 0x1c2a
00001be6: JUMPI
00001be7: DUP1
00001be8: SLOAD
00001be9: PUSH1 0x01
00001beb: PUSH1 0x80
00001bed: SHL
00001bee: DUP2
00001bef: DIV
00001bf0: PUSH1 0x01
00001bf2: PUSH1 0x01
00001bf4: PUSH1 0x80
00001bf6: SHL
00001bf7: SUB
00001bf8: SWAP1
00001bf9: DUP2
00001bfa: AND
00001bfb: PUSH0
00001bfc: SWAP1
00001bfd: DUP2
00001bfe: MSTORE
00001bff: PUSH1 0x02
00001c01: DUP8
00001c02: ADD
00001c03: PUSH1 0x20
00001c05: MSTORE
00001c06: PUSH1 0x40
00001c08: SWAP1
00001c09: KECCAK256
00001c0a: DUP1
00001c0b: SLOAD
00001c0c: PUSH16 0xffffffffffffffffffffffffffffffff
00001c1d: NOT
00001c1e: AND
00001c1f: SWAP2
00001c20: SWAP1
00001c21: SWAP3
00001c22: AND
00001c23: OR
00001c24: SWAP1
00001c25: SSTORE
00001c26: PUSH2 0x1c45
00001c29: JUMP
00001c2a: JUMPDEST
00001c2b: DUP1
00001c2c: SLOAD
00001c2d: DUP5
00001c2e: SLOAD
00001c2f: PUSH1 0x01
00001c31: PUSH1 0x80
00001c33: SHL
00001c34: PUSH1 0x01
00001c36: PUSH1 0x01
00001c38: PUSH1 0x80
00001c3a: SHL
00001c3b: SUB
00001c3c: SWAP3
00001c3d: DUP4
00001c3e: AND
00001c3f: MUL
00001c40: SWAP2
00001c41: AND
00001c42: OR
00001c43: DUP5
00001c44: SSTORE
00001c45: JUMPDEST
00001c46: PUSH1 0x01
00001c48: PUSH1 0x01
00001c4a: PUSH1 0x80
00001c4c: SHL
00001c4d: SUB
00001c4e: DUP1
00001c4f: DUP5
00001c50: AND
00001c51: PUSH0
00001c52: SWAP1
00001c53: DUP2
00001c54: MSTORE
00001c55: PUSH1 0x02
00001c57: DUP7
00001c58: ADD
00001c59: PUSH1 0x20
00001c5b: MSTORE
00001c5c: PUSH1 0x40
00001c5e: DUP2
00001c5f: KECCAK256
00001c60: DUP1
00001c61: SLOAD
00001c62: SWAP2
00001c63: SWAP1
00001c64: SSTORE
00001c65: PUSH1 0x01
00001c67: DUP7
00001c68: ADD
00001c69: DUP1
00001c6a: SLOAD
00001c6b: PUSH1 0x01
00001c6d: PUSH1 0x80
00001c6f: SHL
00001c70: SWAP3
00001c71: DUP4
00001c72: SWAP1
00001c73: DIV
00001c74: DUP5
00001c75: AND
00001c76: SWAP4
00001c77: SWAP3
00001c78: SWAP1
00001c79: DIV
00001c7a: SWAP1
00001c7b: SWAP2
00001c7c: AND
00001c7d: SWAP1
00001c7e: PUSH1 0x10
00001c80: PUSH2 0x1c88
00001c83: DUP4
00001c84: PUSH2 0x2220
00001c87: JUMP
00001c88: JUMPDEST
00001c89: SWAP2
00001c8a: SWAP1
00001c8b: PUSH2 0x0100
00001c8e: EXP
00001c8f: DUP2
00001c90: SLOAD
00001c91: DUP2
00001c92: PUSH1 0x01
00001c94: PUSH1 0x01
00001c96: PUSH1 0x80
00001c98: SHL
00001c99: SUB
00001c9a: MUL
00001c9b: NOT
00001c9c: AND
00001c9d: SWAP1
00001c9e: DUP4
00001c9f: PUSH1 0x01
00001ca1: PUSH1 0x01
00001ca3: PUSH1 0x80
00001ca5: SHL
00001ca6: SUB
00001ca7: AND
00001ca8: MUL
00001ca9: OR
00001caa: SWAP1
00001cab: SSTORE
00001cac: POP
00001cad: POP
00001cae: DUP1
00001caf: SWAP3
00001cb0: POP
00001cb1: POP
00001cb2: POP
00001cb3: SWAP3
00001cb4: SWAP2
00001cb5: POP
00001cb6: POP
00001cb7: JUMP
00001cb8: JUMPDEST
00001cb9: PUSH1 0x01
00001cbb: DUP2
00001cbc: ADD
00001cbd: SLOAD
00001cbe: PUSH0
00001cbf: SWAP1
00001cc0: DUP2
00001cc1: SWAP1
00001cc2: PUSH1 0x01
00001cc4: PUSH1 0x01
00001cc6: PUSH1 0x80
00001cc8: SHL
00001cc9: SUB
00001cca: AND
00001ccb: JUMPDEST
00001ccc: PUSH1 0x01
00001cce: PUSH1 0x01
00001cd0: PUSH1 0x80
00001cd2: SHL
00001cd3: SUB
00001cd4: DUP2
00001cd5: AND
00001cd6: ISZERO
00001cd7: PUSH2 0x16eb
00001cda: JUMPI
00001cdb: PUSH2 0x1ce7
00001cde: PUSH3 0x015180
00001ce2: TIMESTAMP
00001ce3: PUSH2 0x220d
00001ce6: JUMP
00001ce7: JUMPDEST
00001ce8: PUSH1 0x01
00001cea: PUSH1 0x01
00001cec: PUSH1 0x80
00001cee: SHL
00001cef: SUB
00001cf0: DUP3
00001cf1: AND
00001cf2: PUSH0
00001cf3: SWAP1
00001cf4: DUP2
00001cf5: MSTORE
00001cf6: PUSH1 0x04
00001cf8: DUP7
00001cf9: ADD
00001cfa: PUSH1 0x20
00001cfc: MSTORE
00001cfd: PUSH1 0x40
00001cff: SWAP1
00001d00: KECCAK256
00001d01: PUSH1 0x01
00001d03: ADD
00001d04: SLOAD
00001d05: GT
00001d06: ISZERO
00001d07: PUSH2 0x1d31
00001d0a: JUMPI
00001d0b: PUSH1 0x01
00001d0d: PUSH1 0x01
00001d0f: PUSH1 0x80
00001d11: SHL
00001d12: SUB
00001d13: DUP2
00001d14: AND
00001d15: PUSH0
00001d16: SWAP1
00001d17: DUP2
00001d18: MSTORE
00001d19: PUSH1 0x04
00001d1b: DUP6
00001d1c: ADD
00001d1d: PUSH1 0x20
00001d1f: MSTORE
00001d20: PUSH1 0x40
00001d22: SWAP1
00001d23: KECCAK256
00001d24: SLOAD
00001d25: PUSH2 0x1d2e
00001d28: SWAP1
00001d29: DUP4
00001d2a: PUSH2 0x2241
00001d2d: JUMP
00001d2e: JUMPDEST
00001d2f: SWAP2
00001d30: POP
00001d31: JUMPDEST
00001d32: PUSH1 0x01
00001d34: PUSH1 0x01
00001d36: PUSH1 0x80
00001d38: SHL
00001d39: SUB
00001d3a: SWAP1
00001d3b: DUP2
00001d3c: AND
00001d3d: PUSH0
00001d3e: SWAP1
00001d3f: DUP2
00001d40: MSTORE
00001d41: PUSH1 0x03
00001d43: DUP6
00001d44: ADD
00001d45: PUSH1 0x20
00001d47: MSTORE
00001d48: PUSH1 0x40
00001d4a: SWAP1
00001d4b: KECCAK256
00001d4c: SLOAD
00001d4d: PUSH1 0x01
00001d4f: PUSH1 0x80
00001d51: SHL
00001d52: SWAP1
00001d53: DIV
00001d54: AND
00001d55: PUSH2 0x1ccb
00001d58: JUMP
00001d59: JUMPDEST
00001d5a: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
00001d7b: DUP1
00001d7c: SLOAD
00001d7d: PUSH9 0x010000000000000000
00001d87: DUP2
00001d88: DIV
00001d89: PUSH1 0xff
00001d8b: AND
00001d8c: ISZERO
00001d8d: SWAP1
00001d8e: PUSH8 0xffffffffffffffff
00001d97: AND
00001d98: PUSH0
00001d99: DUP2
00001d9a: ISZERO
00001d9b: DUP1
00001d9c: ISZERO
00001d9d: PUSH2 0x1da3
00001da0: JUMPI
00001da1: POP
00001da2: DUP3
00001da3: JUMPDEST
00001da4: SWAP1
00001da5: POP
00001da6: PUSH0
00001da7: DUP3
00001da8: PUSH8 0xffffffffffffffff
00001db1: AND
00001db2: PUSH1 0x01
00001db4: EQ
00001db5: DUP1
00001db6: ISZERO
00001db7: PUSH2 0x1dbf
00001dba: JUMPI
00001dbb: POP
00001dbc: ADDRESS
00001dbd: EXTCODESIZE
00001dbe: ISZERO
00001dbf: JUMPDEST
00001dc0: SWAP1
00001dc1: POP
00001dc2: DUP2
00001dc3: ISZERO
00001dc4: DUP1
00001dc5: ISZERO
00001dc6: PUSH2 0x1dcd
00001dc9: JUMPI
00001dca: POP
00001dcb: DUP1
00001dcc: ISZERO
00001dcd: JUMPDEST
00001dce: ISZERO
00001dcf: PUSH2 0x1deb
00001dd2: JUMPI
00001dd3: PUSH1 0x40
00001dd5: MLOAD
00001dd6: PUSH4 0xf92ee8a9
00001ddb: PUSH1 0xe0
00001ddd: SHL
00001dde: DUP2
00001ddf: MSTORE
00001de0: PUSH1 0x04
00001de2: ADD
00001de3: PUSH1 0x40
00001de5: MLOAD
00001de6: DUP1
00001de7: SWAP2
00001de8: SUB
00001de9: SWAP1
00001dea: REVERT
00001deb: JUMPDEST
00001dec: DUP5
00001ded: SLOAD
00001dee: PUSH8 0xffffffffffffffff
00001df7: NOT
00001df8: AND
00001df9: PUSH1 0x01
00001dfb: OR
00001dfc: DUP6
00001dfd: SSTORE
00001dfe: DUP4
00001dff: ISZERO
00001e00: PUSH2 0x1e1f
00001e03: JUMPI
00001e04: DUP5
00001e05: SLOAD
00001e06: PUSH9 0xff0000000000000000
00001e10: NOT
00001e11: AND
00001e12: PUSH9 0x010000000000000000
00001e1c: OR
00001e1d: DUP6
00001e1e: SSTORE
00001e1f: JUMPDEST
00001e20: PUSH32 0x19b29a04048f51eb9591acef31c8d25631a0f178287c237da958990d82c90400
00001e41: DUP1
00001e42: SLOAD
00001e43: PUSH1 0x01
00001e45: DUP2
00001e46: ADD
00001e47: DUP3
00001e48: SSTORE
00001e49: PUSH0
00001e4a: SWAP2
00001e4b: DUP3
00001e4c: MSTORE
00001e4d: PUSH32 0x2cae4504136210a96a15ce9f74b88bf785298cc8f14adcee9c25329511a4764b
00001e6e: ADD
00001e6f: SSTORE
00001e70: PUSH2 0x198d
00001e73: JUMP
00001e74: JUMPDEST
00001e75: PUSH1 0x01
00001e77: DUP2
00001e78: ADD
00001e79: DUP1
00001e7a: SLOAD
00001e7b: PUSH0
00001e7c: SWAP2
00001e7d: PUSH1 0x01
00001e7f: PUSH1 0x01
00001e81: PUSH1 0x80
00001e83: SHL
00001e84: SUB
00001e85: SWAP1
00001e86: SWAP2
00001e87: AND
00001e88: SWAP1
00001e89: DUP3
00001e8a: PUSH2 0x1e92
00001e8d: DUP4
00001e8e: PUSH2 0x2268
00001e91: JUMP
00001e92: JUMPDEST
00001e93: DUP3
00001e94: SLOAD
00001e95: PUSH2 0x0100
00001e98: SWAP3
00001e99: SWAP1
00001e9a: SWAP3
00001e9b: EXP
00001e9c: PUSH1 0x01
00001e9e: PUSH1 0x01
00001ea0: PUSH1 0x80
00001ea2: SHL
00001ea3: SUB
00001ea4: DUP2
00001ea5: DUP2
00001ea6: MUL
00001ea7: NOT
00001ea8: SWAP1
00001ea9: SWAP4
00001eaa: AND
00001eab: SWAP2
00001eac: DUP4
00001ead: AND
00001eae: MUL
00001eaf: OR
00001eb0: SWAP1
00001eb1: SWAP2
00001eb2: SSTORE
00001eb3: DUP4
00001eb4: SLOAD
00001eb5: PUSH1 0x01
00001eb7: PUSH1 0x80
00001eb9: SHL
00001eba: SWAP1
00001ebb: DIV
00001ebc: AND
00001ebd: ISZERO
00001ebe: SWAP1
00001ebf: POP
00001ec0: PUSH2 0x1f29
00001ec3: JUMPI
00001ec4: DUP2
00001ec5: SLOAD
00001ec6: PUSH1 0x01
00001ec8: DUP4
00001ec9: ADD
00001eca: DUP1
00001ecb: SLOAD
00001ecc: PUSH1 0x01
00001ece: PUSH1 0x01
00001ed0: PUSH1 0x80
00001ed2: SHL
00001ed3: SUB
00001ed4: SWAP1
00001ed5: DUP2
00001ed6: AND
00001ed7: PUSH0
00001ed8: SWAP1
00001ed9: DUP2
00001eda: MSTORE
00001edb: PUSH1 0x02
00001edd: DUP7
00001ede: ADD
00001edf: PUSH1 0x20
00001ee1: MSTORE
00001ee2: PUSH1 0x40
00001ee4: DUP1
00001ee5: DUP3
00001ee6: KECCAK256
00001ee7: DUP1
00001ee8: SLOAD
00001ee9: PUSH16 0xffffffffffffffffffffffffffffffff
00001efa: NOT
00001efb: AND
00001efc: PUSH1 0x01
00001efe: PUSH1 0x80
00001f00: SHL
00001f01: SWAP7
00001f02: DUP8
00001f03: SWAP1
00001f04: DIV
00001f05: DUP6
00001f06: AND
00001f07: OR
00001f08: SWAP1
00001f09: SSTORE
00001f0a: SWAP3
00001f0b: SLOAD
00001f0c: DUP7
00001f0d: SLOAD
00001f0e: DUP6
00001f0f: SWAP1
00001f10: DIV
00001f11: DUP4
00001f12: AND
00001f13: DUP3
00001f14: MSTORE
00001f15: SWAP3
00001f16: SWAP1
00001f17: KECCAK256
00001f18: DUP1
00001f19: SLOAD
00001f1a: SWAP3
00001f1b: DUP3
00001f1c: AND
00001f1d: SWAP1
00001f1e: SWAP4
00001f1f: MUL
00001f20: SWAP2
00001f21: AND
00001f22: OR
00001f23: SWAP1
00001f24: SSTORE
00001f25: PUSH2 0x1f52
00001f28: JUMP
00001f29: JUMPDEST
00001f2a: PUSH1 0x01
00001f2c: DUP3
00001f2d: ADD
00001f2e: SLOAD
00001f2f: DUP3
00001f30: SLOAD
00001f31: PUSH16 0xffffffffffffffffffffffffffffffff
00001f42: NOT
00001f43: AND
00001f44: PUSH1 0x01
00001f46: PUSH1 0x01
00001f48: PUSH1 0x80
00001f4a: SHL
00001f4b: SUB
00001f4c: SWAP1
00001f4d: SWAP2
00001f4e: AND
00001f4f: OR
00001f50: DUP3
00001f51: SSTORE
00001f52: JUMPDEST
00001f53: PUSH1 0x01
00001f55: DUP3
00001f56: ADD
00001f57: DUP1
00001f58: SLOAD
00001f59: DUP4
00001f5a: SLOAD
00001f5b: PUSH1 0x01
00001f5d: PUSH1 0x80
00001f5f: SHL
00001f60: PUSH1 0x01
00001f62: PUSH1 0x01
00001f64: PUSH1 0x80
00001f66: SHL
00001f67: SUB
00001f68: DUP1
00001f69: DUP5
00001f6a: AND
00001f6b: DUP3
00001f6c: MUL
00001f6d: SWAP3
00001f6e: DUP2
00001f6f: AND
00001f70: SWAP3
00001f71: SWAP1
00001f72: SWAP3
00001f73: OR
00001f74: DUP7
00001f75: SSTORE
00001f76: SWAP1
00001f77: SWAP2
00001f78: DIV
00001f79: AND
00001f7a: SWAP1
00001f7b: PUSH1 0x10
00001f7d: PUSH2 0x1f85
00001f80: DUP4
00001f81: PUSH2 0x2268
00001f84: JUMP
00001f85: JUMPDEST
00001f86: SWAP2
00001f87: SWAP1
00001f88: PUSH2 0x0100
00001f8b: EXP
00001f8c: DUP2
00001f8d: SLOAD
00001f8e: DUP2
00001f8f: PUSH1 0x01
00001f91: PUSH1 0x01
00001f93: PUSH1 0x80
00001f95: SHL
00001f96: SUB
00001f97: MUL
00001f98: NOT
00001f99: AND
00001f9a: SWAP1
00001f9b: DUP4
00001f9c: PUSH1 0x01
00001f9e: PUSH1 0x01
00001fa0: PUSH1 0x80
00001fa2: SHL
00001fa3: SUB
00001fa4: AND
00001fa5: MUL
00001fa6: OR
00001fa7: SWAP1
00001fa8: SSTORE
00001fa9: POP
00001faa: POP
00001fab: DUP2
00001fac: PUSH1 0x01
00001fae: ADD
00001faf: PUSH0
00001fb0: SWAP1
00001fb1: SLOAD
00001fb2: SWAP1
00001fb3: PUSH2 0x0100
00001fb6: EXP
00001fb7: SWAP1
00001fb8: DIV
00001fb9: PUSH1 0x01
00001fbb: PUSH1 0x01
00001fbd: PUSH1 0x80
00001fbf: SHL
00001fc0: SUB
00001fc1: AND
00001fc2: SWAP1
00001fc3: POP
00001fc4: SWAP2
00001fc5: SWAP1
00001fc6: POP
00001fc7: JUMP
00001fc8: JUMPDEST
00001fc9: PUSH1 0x01
00001fcb: PUSH1 0x01
00001fcd: PUSH1 0xa0
00001fcf: SHL
00001fd0: SUB
00001fd1: DUP2
00001fd2: AND
00001fd3: DUP2
00001fd4: EQ
00001fd5: PUSH2 0x161c
00001fd8: JUMPI
00001fd9: PUSH0
00001fda: PUSH0
00001fdb: REVERT
00001fdc: JUMPDEST
00001fdd: PUSH0
00001fde: PUSH1 0x20
00001fe0: DUP3
00001fe1: DUP5
00001fe2: SUB
00001fe3: SLT
00001fe4: ISZERO
00001fe5: PUSH2 0x1fec
00001fe8: JUMPI
00001fe9: PUSH0
00001fea: PUSH0
00001feb: REVERT
00001fec: JUMPDEST
00001fed: DUP2
00001fee: CALLDATALOAD
00001fef: PUSH2 0x1109
00001ff2: DUP2
00001ff3: PUSH2 0x1fc8
00001ff6: JUMP
00001ff7: JUMPDEST
00001ff8: PUSH0
00001ff9: PUSH1 0x20
00001ffb: DUP3
00001ffc: DUP5
00001ffd: SUB
00001ffe: SLT
00001fff: ISZERO
00002000: PUSH2 0x2007
00002003: JUMPI
00002004: PUSH0
00002005: PUSH0
00002006: REVERT
00002007: JUMPDEST
00002008: DUP2
00002009: CALLDATALOAD
0000200a: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000202b: DUP2
0000202c: AND
0000202d: DUP2
0000202e: EQ
0000202f: PUSH2 0x1109
00002032: JUMPI
00002033: PUSH0
00002034: PUSH0
00002035: REVERT
00002036: JUMPDEST
00002037: PUSH0
00002038: PUSH0
00002039: PUSH1 0x40
0000203b: DUP4
0000203c: DUP6
0000203d: SUB
0000203e: SLT
0000203f: ISZERO
00002040: PUSH2 0x2047
00002043: JUMPI
00002044: PUSH0
00002045: PUSH0
00002046: REVERT
00002047: JUMPDEST
00002048: DUP3
00002049: CALLDATALOAD
0000204a: PUSH2 0x2052
0000204d: DUP2
0000204e: PUSH2 0x1fc8
00002051: JUMP
00002052: JUMPDEST
00002053: SWAP2
00002054: POP
00002055: PUSH1 0x20
00002057: DUP4
00002058: ADD
00002059: CALLDATALOAD
0000205a: PUSH2 0x2062
0000205d: DUP2
0000205e: PUSH2 0x1fc8
00002061: JUMP
00002062: JUMPDEST
00002063: DUP1
00002064: SWAP2
00002065: POP
00002066: POP
00002067: SWAP3
00002068: POP
00002069: SWAP3
0000206a: SWAP1
0000206b: POP
0000206c: JUMP
0000206d: JUMPDEST
0000206e: PUSH0
0000206f: PUSH1 0x20
00002071: DUP3
00002072: DUP5
00002073: SUB
00002074: SLT
00002075: ISZERO
00002076: PUSH2 0x207d
00002079: JUMPI
0000207a: PUSH0
0000207b: PUSH0
0000207c: REVERT
0000207d: JUMPDEST
0000207e: POP
0000207f: CALLDATALOAD
00002080: SWAP2
00002081: SWAP1
00002082: POP
00002083: JUMP
00002084: JUMPDEST
00002085: PUSH0
00002086: PUSH0
00002087: PUSH0
00002088: PUSH1 0x60
0000208a: DUP5
0000208b: DUP7
0000208c: SUB
0000208d: SLT
0000208e: ISZERO
0000208f: PUSH2 0x2096
00002092: JUMPI
00002093: PUSH0
00002094: PUSH0
00002095: REVERT
00002096: JUMPDEST
00002097: DUP4
00002098: CALLDATALOAD
00002099: PUSH2 0x20a1
0000209c: DUP2
0000209d: PUSH2 0x1fc8
000020a0: JUMP
000020a1: JUMPDEST
000020a2: SWAP3
000020a3: POP
000020a4: PUSH1 0x20
000020a6: DUP5
000020a7: ADD
000020a8: CALLDATALOAD
000020a9: PUSH2 0x20b1
000020ac: DUP2
000020ad: PUSH2 0x1fc8
000020b0: JUMP
000020b1: JUMPDEST
000020b2: SWAP3
000020b3: SWAP6
000020b4: SWAP3
000020b5: SWAP5
000020b6: POP
000020b7: POP
000020b8: POP
000020b9: PUSH1 0x40
000020bb: SWAP2
000020bc: SWAP1
000020bd: SWAP2
000020be: ADD
000020bf: CALLDATALOAD
000020c0: SWAP1
000020c1: JUMP
000020c2: JUMPDEST
000020c3: PUSH0
000020c4: PUSH0
000020c5: PUSH1 0x40
000020c7: DUP4
000020c8: DUP6
000020c9: SUB
000020ca: SLT
000020cb: ISZERO
000020cc: PUSH2 0x20d3
000020cf: JUMPI
000020d0: PUSH0
000020d1: PUSH0
000020d2: REVERT
000020d3: JUMPDEST
000020d4: DUP3
000020d5: CALLDATALOAD
000020d6: SWAP2
000020d7: POP
000020d8: PUSH1 0x20
000020da: DUP4
000020db: ADD
000020dc: CALLDATALOAD
000020dd: PUSH2 0x2062
000020e0: DUP2
000020e1: PUSH2 0x1fc8
000020e4: JUMP
000020e5: JUMPDEST
000020e6: PUSH1 0x20
000020e8: DUP1
000020e9: DUP3
000020ea: MSTORE
000020eb: DUP3
000020ec: MLOAD
000020ed: DUP3
000020ee: DUP3
000020ef: ADD
000020f0: DUP2
000020f1: SWAP1
000020f2: MSTORE
000020f3: PUSH0
000020f4: SWAP2
000020f5: DUP5
000020f6: ADD
000020f7: SWAP1
000020f8: PUSH1 0x40
000020fa: DUP5
000020fb: ADD
000020fc: SWAP1
000020fd: DUP4
000020fe: JUMPDEST
000020ff: DUP2
00002100: DUP2
00002101: LT
00002102: ISZERO
00002103: PUSH2 0x211c
00002106: JUMPI
00002107: DUP4
00002108: MLOAD
00002109: DUP4
0000210a: MSTORE
0000210b: PUSH1 0x20
0000210d: SWAP4
0000210e: DUP5
0000210f: ADD
00002110: SWAP4
00002111: SWAP1
00002112: SWAP3
00002113: ADD
00002114: SWAP2
00002115: PUSH1 0x01
00002117: ADD
00002118: PUSH2 0x20fe
0000211b: JUMP
0000211c: JUMPDEST
0000211d: POP
0000211e: SWAP1
0000211f: SWAP6
00002120: SWAP5
00002121: POP
00002122: POP
00002123: POP
00002124: POP
00002125: POP
00002126: JUMP
00002127: JUMPDEST
00002128: PUSH0
00002129: PUSH0
0000212a: PUSH1 0x40
0000212c: DUP4
0000212d: DUP6
0000212e: SUB
0000212f: SLT
00002130: ISZERO
00002131: PUSH2 0x2138
00002134: JUMPI
00002135: PUSH0
00002136: PUSH0
00002137: REVERT
00002138: JUMPDEST
00002139: DUP3
0000213a: CALLDATALOAD
0000213b: PUSH2 0x2143
0000213e: DUP2
0000213f: PUSH2 0x1fc8
00002142: JUMP
00002143: JUMPDEST
00002144: SWAP5
00002145: PUSH1 0x20
00002147: SWAP4
00002148: SWAP1
00002149: SWAP4
0000214a: ADD
0000214b: CALLDATALOAD
0000214c: SWAP4
0000214d: POP
0000214e: POP
0000214f: POP
00002150: JUMP
00002151: JUMPDEST
00002152: PUSH0
00002153: PUSH0
00002154: PUSH0
00002155: PUSH1 0x60
00002157: DUP5
00002158: DUP7
00002159: SUB
0000215a: SLT
0000215b: ISZERO
0000215c: PUSH2 0x2163
0000215f: JUMPI
00002160: PUSH0
00002161: PUSH0
00002162: REVERT
00002163: JUMPDEST
00002164: DUP4
00002165: CALLDATALOAD
00002166: PUSH2 0x216e
00002169: DUP2
0000216a: PUSH2 0x1fc8
0000216d: JUMP
0000216e: JUMPDEST
0000216f: SWAP3
00002170: POP
00002171: PUSH1 0x20
00002173: DUP5
00002174: ADD
00002175: CALLDATALOAD
00002176: SWAP2
00002177: POP
00002178: PUSH1 0x40
0000217a: DUP5
0000217b: ADD
0000217c: CALLDATALOAD
0000217d: PUSH2 0x2185
00002180: DUP2
00002181: PUSH2 0x1fc8
00002184: JUMP
00002185: JUMPDEST
00002186: DUP1
00002187: SWAP2
00002188: POP
00002189: POP
0000218a: SWAP3
0000218b: POP
0000218c: SWAP3
0000218d: POP
0000218e: SWAP3
0000218f: JUMP
00002190: JUMPDEST
00002191: PUSH4 0x4e487b71
00002196: PUSH1 0xe0
00002198: SHL
00002199: PUSH0
0000219a: MSTORE
0000219b: PUSH1 0x32
0000219d: PUSH1 0x04
0000219f: MSTORE
000021a0: PUSH1 0x24
000021a2: PUSH0
000021a3: REVERT
000021a4: JUMPDEST
000021a5: PUSH4 0x4e487b71
000021aa: PUSH1 0xe0
000021ac: SHL
000021ad: PUSH0
000021ae: MSTORE
000021af: PUSH1 0x11
000021b1: PUSH1 0x04
000021b3: MSTORE
000021b4: PUSH1 0x24
000021b6: PUSH0
000021b7: REVERT
000021b8: JUMPDEST
000021b9: DUP2
000021ba: DUP2
000021bb: SUB
000021bc: PUSH0
000021bd: DUP4
000021be: SLT
000021bf: DUP1
000021c0: ISZERO
000021c1: DUP4
000021c2: DUP4
000021c3: SGT
000021c4: AND
000021c5: DUP4
000021c6: DUP4
000021c7: SLT
000021c8: DUP3
000021c9: AND
000021ca: OR
000021cb: ISZERO
000021cc: PUSH2 0x16eb
000021cf: JUMPI
000021d0: PUSH2 0x16eb
000021d3: PUSH2 0x21a4
000021d6: JUMP
000021d7: JUMPDEST
000021d8: PUSH0
000021d9: PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000
000021fa: DUP3
000021fb: SUB
000021fc: PUSH2 0x2207
000021ff: JUMPI
00002200: PUSH2 0x2207
00002203: PUSH2 0x21a4
00002206: JUMP
00002207: JUMPDEST
00002208: POP
00002209: PUSH0
0000220a: SUB
0000220b: SWAP1
0000220c: JUMP
0000220d: JUMPDEST
0000220e: DUP2
0000220f: DUP2
00002210: SUB
00002211: DUP2
00002212: DUP2
00002213: GT
00002214: ISZERO
00002215: PUSH2 0x08c5
00002218: JUMPI
00002219: PUSH2 0x08c5
0000221c: PUSH2 0x21a4
0000221f: JUMP
00002220: JUMPDEST
00002221: PUSH0
00002222: PUSH1 0x01
00002224: PUSH1 0x01
00002226: PUSH1 0x80
00002228: SHL
00002229: SUB
0000222a: DUP3
0000222b: AND
0000222c: DUP1
0000222d: PUSH2 0x2238
00002230: JUMPI
00002231: PUSH2 0x2238
00002234: PUSH2 0x21a4
00002237: JUMP
00002238: JUMPDEST
00002239: PUSH0
0000223a: NOT
0000223b: ADD
0000223c: SWAP3
0000223d: SWAP2
0000223e: POP
0000223f: POP
00002240: JUMP
00002241: JUMPDEST
00002242: DUP1
00002243: DUP3
00002244: ADD
00002245: DUP3
00002246: DUP2
00002247: SLT
00002248: PUSH0
00002249: DUP4
0000224a: SLT
0000224b: DUP1
0000224c: ISZERO
0000224d: DUP3
0000224e: AND
0000224f: DUP3
00002250: ISZERO
00002251: DUP3
00002252: AND
00002253: OR
00002254: ISZERO
00002255: PUSH2 0x2260
00002258: JUMPI
00002259: PUSH2 0x2260
0000225c: PUSH2 0x21a4
0000225f: JUMP
00002260: JUMPDEST
00002261: POP
00002262: POP
00002263: SWAP3
00002264: SWAP2
00002265: POP
00002266: POP
00002267: JUMP
00002268: JUMPDEST
00002269: PUSH0
0000226a: PUSH1 0x01
0000226c: PUSH1 0x01
0000226e: PUSH1 0x80
00002270: SHL
00002271: SUB
00002272: DUP3
00002273: AND
00002274: PUSH1 0x01
00002276: PUSH1 0x01
00002278: PUSH1 0x80
0000227a: SHL
0000227b: SUB
0000227c: DUP2
0000227d: SUB
0000227e: PUSH2 0x2289
00002281: JUMPI
00002282: PUSH2 0x2289
00002285: PUSH2 0x21a4
00002288: JUMP
00002289: JUMPDEST
0000228a: PUSH1 0x01
0000228c: ADD
0000228d: SWAP3
0000228e: SWAP2
0000228f: POP
00002290: POP
00002291: JUMP
00002292: INVALID
00002293: LOG2
00002294: PUSH5 0x6970667358
0000229a: UNKNOWN(0x22)
0000229b: SLT
0000229c: KECCAK256
0000229d: CALLER
0000229e: UNKNOWN(0xE9)
0000229f: MULMOD
000022a0: PUSH30 0xe09e8090232c37f81227ad54f8b11b2fbe707150420069054a70b8ae6473
000022bf: PUSH16

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high upgradeability codex Nested initializer modifiers brick initialization 85 no
view
evidence_json
{
    "evidence": "`__ExtendedAccessControl_init` and `__ExtendedAccessControl_init_unchained` both use the `initializer` modifier, and `Wallet.initialize` calls `__ExtendedAccessControl_init`.",
    "locations": [
        "contracts/contracts/ExtendedAccessControlUpgradeable.sol:26",
        "contracts/contracts/ExtendedAccessControlUpgradeable.sol:30",
        "contracts/contracts/Wallet.sol:124"
    ],
    "recommendation": "Change base initializers to `onlyInitializing` (and keep a single `initializer` entry point), mirroring OpenZeppelin's pattern; alternatively remove the nested initializer and call `_addRole` directly from the top-level initializer.",
    "exploit_scenario": "Calling `Wallet.initialize` invokes `__ExtendedAccessControl_init`, which is marked `initializer` and internally calls `__ExtendedAccessControl_init_unchained`, also marked `initializer`. OpenZeppelin's `initializer` modifier forbids nested initializer calls, so the second call reverts, leaving the proxy permanently uninitialized and unusable (no roles can be granted, transfers and admin actions are locked)."
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x837f11cc6777a935bba93f3000e1e0429f844c0a4f9c90dab4c88d6f825b0e64
call_targets: 0x1ef756da62278f3d43b0994f6e9e276f47a363e8
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x837f11cc6777a935bba93f3000e1e0429f844c0a4f9c90dab4c88d6f825b0e64",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x1ef756da62278f3d43b0994f6e9e276f47a363e8"
    ],
    "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": "0xe082e718",
            "selector": "0xe082e718",
            "calldata_variants": [
                "0xe082e718",
                "0xe082e7180000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe33d547e",
            "selector": "0xe33d547e",
            "calldata_variants": [
                "0xe33d547e",
                "0xe33d547e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3816388",
            "selector": "0xf3816388",
            "calldata_variants": [
                "0xf3816388",
                "0xf38163880000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdbba0f01",
            "selector": "0xdbba0f01",
            "calldata_variants": [
                "0xdbba0f01",
                "0xdbba0f010000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc117c3af",
            "selector": "0xc117c3af",
            "calldata_variants": [
                "0xc117c3af",
                "0xc117c3af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc4d66de8",
            "selector": "0xc4d66de8",
            "calldata_variants": [
                "0xc4d66de8",
                "0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc724bfe6",
            "selector": "0xc724bfe6",
            "calldata_variants": [
                "0xc724bfe6",
                "0xc724bfe60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4054,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5296,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x837f11cc6777a935bba93f3000e1e0429f844c0a4f9c90dab4c88d6f825b0e64
call_targets: 0x1ef756da62278f3d43b0994f6e9e276f47a363e8
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x837f11cc6777a935bba93f3000e1e0429f844c0a4f9c90dab4c88d6f825b0e64",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x1ef756da62278f3d43b0994f6e9e276f47a363e8"
    ],
    "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": "0xe082e718",
            "selector": "0xe082e718",
            "calldata_variants": [
                "0xe082e718",
                "0xe082e7180000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe33d547e",
            "selector": "0xe33d547e",
            "calldata_variants": [
                "0xe33d547e",
                "0xe33d547e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf3816388",
            "selector": "0xf3816388",
            "calldata_variants": [
                "0xf3816388",
                "0xf38163880000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdbba0f01",
            "selector": "0xdbba0f01",
            "calldata_variants": [
                "0xdbba0f01",
                "0xdbba0f010000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc117c3af",
            "selector": "0xc117c3af",
            "calldata_variants": [
                "0xc117c3af",
                "0xc117c3af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc4d66de8",
            "selector": "0xc4d66de8",
            "calldata_variants": [
                "0xc4d66de8",
                "0xc4d66de80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc724bfe6",
            "selector": "0xc724bfe6",
            "calldata_variants": [
                "0xc724bfe6",
                "0xc724bfe60000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4054,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5296,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
low other codex ERC20 transfer return value ignored 65 no
view
evidence_json
{
    "evidence": "The IERC20 interface omits the `bool` return value and the transfer call result is not checked.",
    "locations": [
        "contracts/contracts/Wallet.sol:15",
        "contracts/contracts/Wallet.sol:401"
    ],
    "recommendation": "Use an ERC20 interface that returns `bool` and wrap transfers with `SafeERC20.safeTransfer` (or explicitly require the return value to be true).",
    "exploit_scenario": "For non-compliant or malicious ERC20s that return `false` instead of reverting, `Wallet.transfer` (token version) still emits a transfer event and consumes limit capacity even though no tokens moved, enabling limit exhaustion/false accounting."
}