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

Analysis Run

aae94f7c-836c-4390-a20d-a9e2f0e8a71c

complete
Chain ID
1
Address
Block Number
Created
Tue, Dec 30, 2025 3:30 PM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Checkpointing after long gaps can permanently lock undistributed tokens
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30716 report.consolidate complete 1 / 1 3 months ago
75292 artifact.fetch complete 1 / 3 1 week ago
75293 tool.cast_disasm complete 1 / 3 1 week ago
75294 analysis.bundle complete 1 / 3 1 week ago
75295 capability.graph complete 1 / 3 1 week ago
75296 detector.run complete 1 / 3 1 week ago
75297 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Found a medium-severity accounting issue in FeeDistributor's token checkpointing that can permanently strand tokens after long inactivity.
View stderr
[codex:703593] OpenAI Codex v0.77.0 (research preview)
[codex:703593] --------
[codex:703593] workdir: /tmp/codex-multi-_04vp8u7
[codex:703593] model: gpt-5.2-codex
[codex:703593] provider: openai
[codex:703593] approval: never
[codex:703593] sandbox: read-only
[codex:703593] reasoning effort: xhigh
[codex:703593] reasoning summaries: auto
[codex:703593] session id: 019b6fdc-2537-7970-b819-3af589a1fde2
[codex:703593] --------
[codex:703593] user
[codex:703593] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:703593] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:703593] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:703593] 
[codex:703593] Scope rules:
[codex:703593] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:703593] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:703593] 
[codex:703593] Output MUST be valid JSON matching the provided schema.
[codex:703593] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:703593] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:703593] 
[codex:703593] Output constraints (IMPORTANT):
[codex:703593] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:703593] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:703593] mcp startup: no servers
[codex:703593] 
[codex:703593] thinking
[codex:703593] **Preparing to read AUDIT_BUNDLE.txt**
[codex:703593] exec
[codex:703593] /bin/bash -lc ls in /tmp/codex-multi-_04vp8u7 succeeded in 5ms:
[codex:703593] AUDIT_BUNDLE.txt
[codex:703593] codex-output-schema.json
[codex:703593] contracts
[codex:703593] exec
[codex:703593] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-_04vp8u7 succeeded in 6ms:
[codex:703593] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:703593] 
[codex:703593] ================================================================================
[codex:703593] FILE: contracts/@balancer-labs/v2-interfaces/contracts/liquidity-mining/IAuthorizerAdaptor.sol
[codex:703593] ================================================================================
[codex:703593] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:703593] // This program is free software: you can redistribute it and/or modify
[codex:703593] // it under the terms of the GNU General Public License as published by
[codex:703593] // the Free Software Foundation, either version 3 of the License, or
[codex:703593] // (at your option) any later version.
[codex:703593] 
[codex:703593] // This program is distributed in the hope that it will be useful,
[codex:703593] // but WITHOUT ANY WARRANTY; without even the implied warranty of
[codex:703593] // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
[codex:703593] // GNU General Public License for more details.
[codex:703593] 
[codex:703593] // You should have received a copy of the GNU General Public License
[codex:703593] // along with this program.  If not, see <http://www.gnu.org/licenses/>.
[codex:703593] 
[codex:703593] pragma solidity ^0.7.0;
[codex:703593] 
[codex:703593] thinking
[codex:703593] **Planning full AUDIT_BUNDLE inspection**
[codex:703593] exec
[codex:703593] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-_04vp8u7 succeeded in 7ms:
[codex:703593] 4:FILE: contracts/@balancer-labs/v2-interfaces/contracts/liquidity-mining/IAuthorizerAdaptor.sol
[codex:703593] 46:FILE: contracts/@balancer-labs/v2-interfaces/contracts/liquidity-mining/IFeeDistributor.sol
[codex:703593] 218:FILE: contracts/@balancer-labs/v2-interfaces/contracts/liquidity-mining/IVotingEscrow.sol
[codex:703593] 273:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/BalancerErrors.sol
[codex:703593] 532:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/IAuthentication.sol
[codex:703593] 558:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/IOptionalOnlyCaller.sol
[codex:703593] 605:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/ISignaturesValidator.sol
[codex:703593] 639:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/ITemporarilyPausable.sol
[codex:703593] 680:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/misc/IWETH.sol
[codex:703593] 711:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/openzeppelin/IERC1271.sol
[codex:703593] 734:FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/openzeppelin/IERC20.sol
[codex:703593] 819:FILE: contracts/@balancer-labs/v2-interfaces/contracts/vault/IAsset.sol
[codex:703593] 849:FILE: contracts/@balancer-labs/v2-interfaces/contracts/vault/IAuthorizer.sol
[codex:703593] 879:FILE: contracts/@balancer-labs/v2-interfaces/contracts/vault/IFlashLoanRecipient.sol
[codex:703593] 920:FILE: contracts/@balancer-labs/v2-interfaces/contracts/vault/IProtocolFeesCollector.sol
[codex:703593] 970:FILE: contracts/@balancer-labs/v2-interfaces/contracts/vault/IVault.sol
[codex:703593] 1746:FILE: contracts/@balancer-labs/v2-solidity-utils/contracts/helpers/EOASignaturesValidator.sol
[codex:703593] 1857:FILE: contracts/@balancer-labs/v2-solidity-utils/contracts/helpers/InputHelpers.sol
[codex:703593] 1915:FILE: contracts/@balancer-labs/v2-solidity-utils/contracts/helpers/OptionalOnlyCaller.sol
[codex:703593] 1985:FILE: contracts/@balancer-labs/v2-solidity-utils/contracts/helpers/SignaturesValidator.sol
[codex:703593] 
[codex:703593] thinking
[codex:703593] **Evaluating first-party contract scope**
[codex:703593] exec
[codex:703593] /bin/bash -lc "sed -n '2591,3229p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_04vp8u7 succeeded in 6ms:
[codex:703593] FILE: contracts/contracts/fee-distribution/FeeDistributor.sol
[codex:703593] ================================================================================
[codex:703593] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:703593] // This program is free software: you can redistribute it and/or modify
[codex:703593] // it under the terms of the GNU General Public License as published by
[codex:703593] // the Free Software Foundation, either version 3 of the License, or
[codex:703593] // (at your option) any later version.
[codex:703593] 
[codex:703593] // This program is distributed in the hope that it will be useful,
[codex:703593] // but WITHOUT ANY WARRANTY; without even the implied warranty of
[codex:703593] // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
[codex:703593] // GNU General Public License for more details.
[codex:703593] 
[codex:703593] // You should have received a copy of the GNU General Public License
[codex:703593] // along with this program.  If not, see <http://www.gnu.org/licenses/>.
[codex:703593] 
[codex:703593] pragma solidity ^0.7.0;
[codex:703593] pragma experimental ABIEncoderV2;
[codex:703593] 
[codex:703593] import "@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/IAuthentication.sol";
[codex:703593] 
[codex:703593] thinking
[codex:703593] **Reviewing related contract files**
[codex:703593] exec
[codex:703593] /bin/bash -lc "sed -n '1700,2590p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_04vp8u7 succeeded in 6ms:
[codex:703593] 
[codex:703593]     // Protocol Fees
[codex:703593]     //
[codex:703593]     // Some operations cause the Vault to collect tokens in the form of protocol fees, which can then be withdrawn by
[codex:703593]     // permissioned accounts.
[codex:703593]     //
[codex:703593]     // There are two kinds of protocol fees:
[codex:703593]     //
[codex:703593]     //  - flash loan fees: charged on all flash loans, as a percentage of the amounts lent.
[codex:703593]     //
[codex:703593]     //  - swap fees: a percentage of the fees charged by Pools when performing swaps. For a number of reasons, including
[codex:703593]     // swap gas costs and interface simplicity, protocol swap fees are not charged on each individual swap. Rather,
[codex:703593]     // Pools are expected to keep track of how much they have charged in swap fees, and pay any outstanding debts to the
[codex:703593]     // Vault when they are joined or exited. This prevents users from joining a Pool with unpaid debt, as well as
[codex:703593]     // exiting a Pool in debt without first paying their share.
[codex:703593] 
[codex:703593]     /**
[codex:703593]      * @dev Returns the current protocol fee module.
[codex:703593]      */
[codex:703593]     function getProtocolFeesCollector() external view returns (IProtocolFeesCollector);
[codex:703593] 
[codex:703593] thinking
[codex:703593] **Continuing to review file from start**
[codex:703593] exec
[codex:703593] /bin/bash -lc "sed -n '1,1700p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-_04vp8u7 succeeded in 6ms:
[codex:703593] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:703593] 
[codex:703593] ================================================================================
[codex:703593] FILE: contracts/@balancer-labs/v2-interfaces/contracts/liquidity-mining/IAuthorizerAdaptor.sol
[codex:703593] ================================================================================
[codex:703593] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:703593] // This program is free software: you can redistribute it and/or modify
[codex:703593] // it under the terms of the GNU General Public License as published by
[codex:703593] // the Free Software Foundation, either version 3 of the License, or
[codex:703593] // (at your option) any later version.
[codex:703593] 
[codex:703593] // This program is distributed in the hope that it will be useful,
[codex:703593] // but WITHOUT ANY WARRANTY; without even the implied warranty of
[codex:703593] // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
[codex:703593] // GNU General Public License for more details.
[codex:703593] 
[codex:703593] // You should have received a copy of the GNU General Public License
[codex:703593] // along with this program.  If not, see <http://www.gnu.org/licenses/>.
[codex:703593] 
[codex:703593] pragma solidity ^0.7.0;
[codex:703593] 
[codex:703593] 
[codex:703593] thinking
[codex:703593] **Analyzing audit file reading and token distribution logic**
[codex:703593] 
[codex:703593] I'm figuring out how to read the entire AUDIT_BUNDLE.txt without triggering output truncation by breaking it into smaller segments, then focusing on key contract logic like FeeDistributor. I’m uncovering a subtle bug where token distribution stops after 20 weeks if checkpoints aren’t called frequently, causing tokens to get stuck and remain undistributed—a significant liveness and accounting flaw worth flagging.
[codex:703593] thinking
[codex:703593] **Inspecting edge cases and signature handling in FeeDistributor**
[codex:703593] 
[codex:703593] I'm examining how the contract deals with weeks of zero supply, possible division by zero, and the flow of token claims over multiple weeks. There is no explicit handling of zero-supply weeks which might cause claims to revert or tokens to be stuck. I’m also reviewing signature validation nuances and rounding issues, finding mostly acceptable design choices but noting some minor rounding drift that could lock small token amounts indefinitely.
[codex:703593] exec
[codex:703593] /bin/bash -lc 'rg -n "_checkpointToken" contracts/contracts/fee-distribution/FeeDistributor.sol' in /tmp/codex-multi-_04vp8u7 succeeded in 7ms:
[codex:703593] 182:        _checkpointToken(token, false);
[codex:703593] 184:        _checkpointToken(token, true);
[codex:703593] 199:            _checkpointToken(tokens[i], false);
[codex:703593] 201:            _checkpointToken(tokens[i], true);
[codex:703593] 233:        _checkpointToken(token, true);
[codex:703593] 245:            _checkpointToken(tokens[i], true);
[codex:703593] 268:        _checkpointToken(token, false);
[codex:703593] 295:            _checkpointToken(tokens[i], false);
[codex:703593] 354:    function _checkpointToken(IERC20 token, bool force) internal {
[codex:703593] 
[codex:703593] thinking
[codex:703593] **Adding line numbers for context**
[codex:703593] exec
[codex:703593] /bin/bash -lc "nl -ba contracts/contracts/fee-distribution/FeeDistributor.sol | sed -n '350,450p'" in /tmp/codex-multi-_04vp8u7 succeeded in 6ms:
[codex:703593]    350	
[codex:703593]    351	    /**
[codex:703593]    352	     * @dev Calculate the amount of `token` to be distributed to `_votingEscrow` holders since the last checkpoint.
[codex:703593]    353	     */
[codex:703593]    354	    function _checkpointToken(IERC20 token, bool force) internal {
[codex:703593]    355	        TokenState storage tokenState = _tokenState[token];
[codex:703593]    356	        uint256 lastTokenTime = tokenState.timeCursor;
[codex:703593]    357	        uint256 timeSinceLastCheckpoint;
[codex:703593]    358	        if (lastTokenTime == 0) {
[codex:703593]    359	            // If it's the first time we're checkpointing this token then start distributing from now.
[codex:703593]    360	            // Also mark at which timestamp users should start attempts to claim this token from.
[codex:703593]    361	            lastTokenTime = block.timestamp;
[codex:703593]    362	            tokenState.startTime = uint64(_roundDownTimestamp(block.timestamp));
[codex:703593]    363	
[codex:703593]    364	            // Prevent someone from assigning tokens to an inaccessible week.
[codex:703593]    365	            require(block.timestamp > _startTime, "Fee distribution has not started yet");
[codex:703593]    366	        } else {
[codex:703593]    367	            timeSinceLastCheckpoint = block.timestamp - lastTokenTime;
[codex:703593]    368	
[codex:703593]    369	            if (!force) {
[codex:703593] 
[codex:703593] 
[codex:703593] 
[codex:703593] thinking
[codex:703593] **Planning complete AUDIT_BUNDLE reading**
[codex:703593] 
[codex:703593] I’m figuring out how to fully read all 3,229 lines of AUDIT_BUNDLE.txt in manageable chunks without overwhelming the conversation. To comply with the requirement, I’m considering reading file segments by sed or other commands, focusing on relevant contract and helper files, especially non-interface logic, while balancing the output size and ensuring I cover all parts before concluding the audit.
[codex:703593] thinking
[codex:703593] **Identifying potential accounting and signature issues**
[codex:703593] 
[codex:703593] I’m reviewing token checkpointing logic for edge cases like token rebasing or long inactivity causing undistributed tokens, exploring if looping limits lead to locked funds. Also, I’m examining signature validation for missing expiry/deadline fields that might allow replay of unused signatures, balancing severity and relevance within the audit scope.
[codex:703593] thinking
[codex:703593] ```json
[codex:703593] {
[codex:703593]   "no_findings": false,
[codex:703593]   "summary": "Found a medium-severity accounting issue in FeeDistributor's token checkpointing that can permanently strand tokens after long inactivity.",
[codex:703593]   "findings": [
[codex:703593]     {
[codex:703593]       "severity": "medium",
[codex:703593]       "category": "other",
[codex:703593]       "title": "Checkpointing after >20-week gaps can permanently lock undistributed tokens",
[codex:703593]       "exploit_scenario": "If no one calls `checkpointToken` for a token for more than 20 weeks, a single call will only allocate a fraction of `newTokensToDistribute` across the first 20 weeks but still sets `timeCursor` to `block.timestamp` and `cachedBalance` to the full balance. The remaining portion is never assigned to any week, so users can never claim it and the tokens stay stuck in the contract.",
[codex:703593]       "recommendation": "When the loop hits its iteration cap, do not advance `tokenState.timeCursor` to `block.timestamp` or finalize `cachedBalance` for the entire balance. Instead, advance only to the last processed week and allow subsequent calls to continue distributing the remaining period (or increase the loop to cover the full gap and/or add pagination).",
[codex:703593]       "evidence": "tokenState.timeCursor is set to block.timestamp and cachedBalance is updated before distributing, while the distribution loop is capped at 20 iterations, so long gaps leave part of newTokensToDistribute unassigned.",
[codex:703593]       "locations": [
[codex:703593]         "contracts/contracts/fee-distribution/FeeDistributor.sol:388",
[codex:703593]         "contracts/contracts/fee-distribution/FeeDistributor.sol:402"
[codex:703593]       ]
[codex:703593]     }
[codex:703593]   ]
[codex:703593] }
[codex:703593] ```
[codex:703593] codex
[codex:703593] {"no_findings":false,"summary":"Found a medium-severity accounting issue in FeeDistributor's token checkpointing that can permanently strand tokens after long inactivity.","findings":[{"severity":"medium","category":"other","title":"Checkpointing after long gaps can permanently lock undistributed tokens","exploit_scenario":"If no one calls `checkpointToken` for a token for more than 20 weeks, a single call will only allocate a fraction of `newTokensToDistribute` across the first 20 weeks but still sets `timeCursor` to the current timestamp and `cachedBalance` to the full balance. The remaining portion is never assigned to any week, so users can never claim it and the tokens stay stuck in the contract.","recommendation":"When the loop hits its iteration cap, do not advance `tokenState.timeCursor` to the current timestamp or finalize `cachedBalance` for the entire balance. Instead, advance only to the last processed week and allow subsequent calls to continue distributing the remaining period (or add pagination/increase the iteration cap).","evidence":"`tokenState.timeCursor` is set to `block.timestamp` and `cachedBalance` is updated before distributing, while the distribution loop is capped at 20 iterations, so long gaps leave part of `newTokensToDistribute` unassigned.","locations":["contracts/contracts/fee-distribution/FeeDistributor.sol:388","contracts/contracts/fee-distribution/FeeDistributor.sol:402"]}]}
[codex:703593] tokens used
[codex:703593] 58,847
[codex:703593] {"no_findings":false,"summary":"Found a medium-severity accounting issue in FeeDistributor's token checkpointing that can permanently strand tokens after long inactivity.","findings":[{"severity":"medium","category":"other","title":"Checkpointing after long gaps can permanently lock undistributed tokens","exploit_scenario":"If no one calls `checkpointToken` for a token for more than 20 weeks, a single call will only allocate a fraction of `newTokensToDistribute` across the first 20 weeks but still sets `timeCursor` to the current timestamp and `cachedBalance` to the full balance. The remaining portion is never assigned to any week, so users can never claim it and the tokens stay stuck in the contract.","recommendation":"When the loop hits its iteration cap, do not advance `tokenState.timeCursor` to the current timestamp or finalize `cachedBalance` for the entire balance. Instead, advance only to the last processed week and allow subsequent calls to continue distributing the remaining period (or add pagination/increase the iteration cap).","evidence":"`tokenState.timeCursor` is set to `block.timestamp` and `cachedBalance` is updated before distributing, while the distribution loop is capped at 20 iterations, so long gaps leave part of `newTokensToDistribute` unassigned.","locations":["contracts/contracts/fee-distribution/FeeDistributor.sol:388","contracts/contracts/fee-distribution/FeeDistributor.sol:402"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-30T15:30:31.138702+00:00",
        "returncode": 0
    },
    "summary": "Found a medium-severity accounting issue in FeeDistributor's token checkpointing that can permanently strand tokens after long inactivity.",
    "raw_final": {
        "summary": "Found a medium-severity accounting issue in FeeDistributor's token checkpointing that can permanently strand tokens after long inactivity.",
        "findings": [
            {
                "title": "Checkpointing after long gaps can permanently lock undistributed tokens",
                "category": "other",
                "evidence": "`tokenState.timeCursor` is set to `block.timestamp` and `cachedBalance` is updated before distributing, while the distribution loop is capped at 20 iterations, so long gaps leave part of `newTokensToDistribute` unassigned.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/fee-distribution/FeeDistributor.sol:388",
                    "contracts/contracts/fee-distribution/FeeDistributor.sol:402"
                ],
                "recommendation": "When the loop hits its iteration cap, do not advance `tokenState.timeCursor` to the current timestamp or finalize `cachedBalance` for the entire balance. Instead, advance only to the last processed week and allow subsequent calls to continue distributing the remaining period (or add pagination/increase the iteration cap).",
                "exploit_scenario": "If no one calls `checkpointToken` for a token for more than 20 weeks, a single call will only allocate a fraction of `newTokensToDistribute` across the first 20 weeks but still sets `timeCursor` to the current timestamp and `cachedBalance` to the full balance. The remaining portion is never assigned to any week, so users can never claim it and the tokens stay stuck in the contract."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
10
EXT*/BALANCE
9
Total opcodes
5079
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x0182
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x90193b7c
00000026: GT
00000027: PUSH2 0x00d8
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xca31879d
00000031: GT
00000032: PUSH2 0x008c
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xe811f44b
0000003c: GT
0000003d: PUSH2 0x0066
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xe811f44b
00000047: EQ
00000048: PUSH2 0x030e
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xed24911d
00000052: EQ
00000053: PUSH2 0x0321
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xfcaa54ee
0000005d: EQ
0000005e: PUSH2 0x0329
00000061: JUMPI
00000062: PUSH2 0x0182
00000065: JUMP
00000066: JUMPDEST
00000067: DUP1
00000068: PUSH4 0xca31879d
0000006d: EQ
0000006e: PUSH2 0x02d5
00000071: JUMPI
00000072: DUP1
00000073: PUSH4 0xd3dc4ca1
00000078: EQ
00000079: PUSH2 0x02e8
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0xde681faf
00000083: EQ
00000084: PUSH2 0x02fb
00000087: JUMPI
00000088: PUSH2 0x0182
0000008b: JUMP
0000008c: JUMPDEST
0000008d: DUP1
0000008e: PUSH4 0xa1648aa5
00000093: GT
00000094: PUSH2 0x00bd
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0xa1648aa5
0000009e: EQ
0000009f: PUSH2 0x029a
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0xacbc1428
000000a9: EQ
000000aa: PUSH2 0x02ba
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0xc2c4c5c1
000000b4: EQ
000000b5: PUSH2 0x02cd
000000b8: JUMPI
000000b9: PUSH2 0x0182
000000bc: JUMP
000000bd: JUMPDEST
000000be: DUP1
000000bf: PUSH4 0x90193b7c
000000c4: EQ
000000c5: PUSH2 0x0274
000000c8: JUMPI
000000c9: DUP1
000000ca: PUSH4 0x905d10ac
000000cf: EQ
000000d0: PUSH2 0x0287
000000d3: JUMPI
000000d4: PUSH2 0x0182
000000d7: JUMP
000000d8: JUMPDEST
000000d9: DUP1
000000da: PUSH4 0x4f3c5090
000000df: GT
000000e0: PUSH2 0x013a
000000e3: JUMPI
000000e4: DUP1
000000e5: PUSH4 0x82aa5ad4
000000ea: GT
000000eb: PUSH2 0x0114
000000ee: JUMPI
000000ef: DUP1
000000f0: PUSH4 0x82aa5ad4
000000f5: EQ
000000f6: PUSH2 0x0239
000000f9: JUMPI
000000fa: DUP1
000000fb: PUSH4 0x876e69a1
00000100: EQ
00000101: PUSH2 0x0241
00000104: JUMPI
00000105: DUP1
00000106: PUSH4 0x88720467
0000010b: EQ
0000010c: PUSH2 0x0254
0000010f: JUMPI
00000110: PUSH2 0x0182
00000113: JUMP
00000114: JUMPDEST
00000115: DUP1
00000116: PUSH4 0x4f3c5090
0000011b: EQ
0000011c: PUSH2 0x0200
0000011f: JUMPI
00000120: DUP1
00000121: PUSH4 0x7b8d6221
00000126: EQ
00000127: PUSH2 0x0213
0000012a: JUMPI
0000012b: DUP1
0000012c: PUSH4 0x8050a7ee
00000131: EQ
00000132: PUSH2 0x0226
00000135: JUMPI
00000136: PUSH2 0x0182
00000139: JUMP
0000013a: JUMPDEST
0000013b: DUP1
0000013c: PUSH4 0x2308805b
00000141: GT
00000142: PUSH2 0x016b
00000145: JUMPI
00000146: DUP1
00000147: PUSH4 0x2308805b
0000014c: EQ
0000014d: PUSH2 0x01ba
00000150: JUMPI
00000151: DUP1
00000152: PUSH4 0x338b5dea
00000157: EQ
00000158: PUSH2 0x01da
0000015b: JUMPI
0000015c: DUP1
0000015d: PUSH4 0x3902b9bc
00000162: EQ
00000163: PUSH2 0x01ed
00000166: JUMPI
00000167: PUSH2 0x0182
0000016a: JUMP
0000016b: JUMPDEST
0000016c: DUP1
0000016d: PUSH4 0x08b0308a
00000172: EQ
00000173: PUSH2 0x0187
00000176: JUMPI
00000177: DUP1
00000178: PUSH4 0x14866e08
0000017d: EQ
0000017e: PUSH2 0x01a5
00000181: JUMPI
00000182: JUMPDEST
00000183: PUSH1 0x00
00000185: DUP1
00000186: REVERT
00000187: JUMPDEST
00000188: PUSH2 0x018f
0000018b: PUSH2 0x033c
0000018e: JUMP
0000018f: JUMPDEST
00000190: PUSH1 0x40
00000192: MLOAD
00000193: PUSH2 0x019c
00000196: SWAP2
00000197: SWAP1
00000198: PUSH2 0x22df
0000019b: JUMP
0000019c: JUMPDEST
0000019d: PUSH1 0x40
0000019f: MLOAD
000001a0: DUP1
000001a1: SWAP2
000001a2: SUB
000001a3: SWAP1
000001a4: RETURN
000001a5: JUMPDEST
000001a6: PUSH2 0x01b8
000001a9: PUSH2 0x01b3
000001ac: CALLDATASIZE
000001ad: PUSH1 0x04
000001af: PUSH2 0x1f44
000001b2: JUMP
000001b3: JUMPDEST
000001b4: PUSH2 0x0360
000001b7: JUMP
000001b8: JUMPDEST
000001b9: STOP
000001ba: JUMPDEST
000001bb: PUSH2 0x01cd
000001be: PUSH2 0x01c8
000001c1: CALLDATASIZE
000001c2: PUSH1 0x04
000001c4: PUSH2 0x1f44
000001c7: JUMP
000001c8: JUMPDEST
000001c9: PUSH2 0x037c
000001cc: JUMP
000001cd: JUMPDEST
000001ce: PUSH1 0x40
000001d0: MLOAD
000001d1: PUSH2 0x019c
000001d4: SWAP2
000001d5: SWAP1
000001d6: PUSH2 0x23f8
000001d9: JUMP
000001da: JUMPDEST
000001db: PUSH2 0x01b8
000001de: PUSH2 0x01e8
000001e1: CALLDATASIZE
000001e2: PUSH1 0x04
000001e4: PUSH2 0x20ba
000001e7: JUMP
000001e8: JUMPDEST
000001e9: PUSH2 0x03ca
000001ec: JUMP
000001ed: JUMPDEST
000001ee: PUSH2 0x01b8
000001f1: PUSH2 0x01fb
000001f4: CALLDATASIZE
000001f5: PUSH1 0x04
000001f7: PUSH2 0x1f44
000001fa: JUMP
000001fb: JUMPDEST
000001fc: PUSH2 0x0416
000001ff: JUMP
00000200: JUMPDEST
00000201: PUSH2 0x01cd
00000204: PUSH2 0x020e
00000207: CALLDATASIZE
00000208: PUSH1 0x04
0000020a: PUSH2 0x225d
0000020d: JUMP
0000020e: JUMPDEST
0000020f: PUSH2 0x0429
00000212: JUMP
00000213: JUMPDEST
00000214: PUSH2 0x01b8
00000217: PUSH2 0x0221
0000021a: CALLDATASIZE
0000021b: PUSH1 0x04
0000021d: PUSH2 0x2125
00000220: JUMP
00000221: JUMPDEST
00000222: PUSH2 0x043b
00000225: JUMP
00000226: JUMPDEST
00000227: PUSH2 0x01cd
0000022a: PUSH2 0x0234
0000022d: CALLDATASIZE
0000022e: PUSH1 0x04
00000230: PUSH2 0x2082
00000233: JUMP
00000234: JUMPDEST
00000235: PUSH2 0x051e
00000238: JUMP
00000239: JUMPDEST
0000023a: PUSH2 0x01cd
0000023d: PUSH2 0x0533
00000240: JUMP
00000241: JUMPDEST
00000242: PUSH2 0x01cd
00000245: PUSH2 0x024f
00000248: CALLDATASIZE
00000249: PUSH1 0x04
0000024b: PUSH2 0x1f44
0000024e: JUMP
0000024f: JUMPDEST
00000250: PUSH2 0x0539
00000253: JUMP
00000254: JUMPDEST
00000255: PUSH2 0x0267
00000258: PUSH2 0x0262
0000025b: CALLDATASIZE
0000025c: PUSH1 0x04
0000025e: PUSH2 0x1f60
00000261: JUMP
00000262: JUMPDEST
00000263: PUSH2 0x0577
00000266: JUMP
00000267: JUMPDEST
00000268: PUSH1 0x40
0000026a: MLOAD
0000026b: PUSH2 0x019c
0000026e: SWAP2
0000026f: SWAP1
00000270: PUSH2 0x23b5
00000273: JUMP
00000274: JUMPDEST
00000275: PUSH2 0x01cd
00000278: PUSH2 0x0282
0000027b: CALLDATASIZE
0000027c: PUSH1 0x04
0000027e: PUSH2 0x1f44
00000281: JUMP
00000282: JUMPDEST
00000283: PUSH2 0x065a
00000286: JUMP
00000287: JUMPDEST
00000288: PUSH2 0x01b8
0000028b: PUSH2 0x0295
0000028e: CALLDATASIZE
0000028f: PUSH1 0x04
00000291: PUSH2 0x20e5
00000294: JUMP
00000295: JUMPDEST
00000296: PUSH2 0x0682
00000299: JUMP
0000029a: JUMPDEST
0000029b: PUSH2 0x02ad
0000029e: PUSH2 0x02a8
000002a1: CALLDATASIZE
000002a2: PUSH1 0x04
000002a4: PUSH2 0x1f44
000002a7: JUMP
000002a8: JUMPDEST
000002a9: PUSH2 0x06b7
000002ac: JUMP
000002ad: JUMPDEST
000002ae: PUSH1 0x40
000002b0: MLOAD
000002b1: PUSH2 0x019c
000002b4: SWAP2
000002b5: SWAP1
000002b6: PUSH2 0x23ed
000002b9: JUMP
000002ba: JUMPDEST
000002bb: PUSH2 0x01cd
000002be: PUSH2 0x02c8
000002c1: CALLDATASIZE
000002c2: PUSH1 0x04
000002c4: PUSH2 0x1f44
000002c7: JUMP
000002c8: JUMPDEST
000002c9: PUSH2 0x06e2
000002cc: JUMP
000002cd: JUMPDEST
000002ce: PUSH2 0x01b8
000002d1: PUSH2 0x0720
000002d4: JUMP
000002d5: JUMPDEST
000002d6: PUSH2 0x01cd
000002d9: PUSH2 0x02e3
000002dc: CALLDATASIZE
000002dd: PUSH1 0x04
000002df: PUSH2 0x2082
000002e2: JUMP
000002e3: JUMPDEST
000002e4: PUSH2 0x073a
000002e7: JUMP
000002e8: JUMPDEST
000002e9: PUSH2 0x01cd
000002ec: PUSH2 0x02f6
000002ef: CALLDATASIZE
000002f0: PUSH1 0x04
000002f2: PUSH2 0x20ba
000002f5: JUMP
000002f6: JUMPDEST
000002f7: PUSH2 0x0782
000002fa: JUMP
000002fb: JUMPDEST
000002fc: PUSH2 0x01cd
000002ff: PUSH2 0x0309
00000302: CALLDATASIZE
00000303: PUSH1 0x04
00000305: PUSH2 0x20ba
00000308: JUMP
00000309: JUMPDEST
0000030a: PUSH2 0x07b7
0000030d: JUMP
0000030e: JUMPDEST
0000030f: PUSH2 0x01b8
00000312: PUSH2 0x031c
00000315: CALLDATASIZE
00000316: PUSH1 0x04
00000318: PUSH2 0x218e
0000031b: JUMP
0000031c: JUMPDEST
0000031d: PUSH2 0x07ec
00000320: JUMP
00000321: JUMPDEST
00000322: PUSH2 0x01cd
00000325: PUSH2 0x07f6
00000328: JUMP
00000329: JUMPDEST
0000032a: PUSH2 0x01b8
0000032d: PUSH2 0x0337
00000330: CALLDATASIZE
00000331: PUSH1 0x04
00000333: PUSH2 0x1fb3
00000336: JUMP
00000337: JUMPDEST
00000338: PUSH2 0x0805
0000033b: JUMP
0000033c: JUMPDEST
0000033d: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25
0000035e: SWAP1
0000035f: JUMP
00000360: JUMPDEST
00000361: PUSH2 0x0368
00000364: PUSH2 0x0876
00000367: JUMP
00000368: JUMPDEST
00000369: PUSH2 0x0371
0000036c: DUP2
0000036d: PUSH2 0x088d
00000370: JUMP
00000371: JUMPDEST
00000372: PUSH2 0x0379
00000375: PUSH2 0x0e5d
00000378: JUMP
00000379: JUMPDEST
0000037a: POP
0000037b: JUMP
0000037c: JUMPDEST
0000037d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000392: AND
00000393: PUSH1 0x00
00000395: SWAP1
00000396: DUP2
00000397: MSTORE
00000398: PUSH1 0x05
0000039a: PUSH1 0x20
0000039c: MSTORE
0000039d: PUSH1 0x40
0000039f: SWAP1
000003a0: KECCAK256
000003a1: SLOAD
000003a2: PUSH17 0x0100000000000000000000000000000000
000003b4: SWAP1
000003b5: DIV
000003b6: PUSH16 0xffffffffffffffffffffffffffffffff
000003c7: AND
000003c8: SWAP1
000003c9: JUMP
000003ca: JUMPDEST
000003cb: PUSH2 0x03d2
000003ce: PUSH2 0x0876
000003d1: JUMP
000003d2: JUMPDEST
000003d3: PUSH2 0x03dd
000003d6: DUP3
000003d7: PUSH1 0x00
000003d9: PUSH2 0x0e64
000003dc: JUMP
000003dd: JUMPDEST
000003de: PUSH2 0x03ff
000003e1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003f6: DUP4
000003f7: AND
000003f8: CALLER
000003f9: ADDRESS
000003fa: DUP5
000003fb: PUSH2 0x128e
000003fe: JUMP
000003ff: JUMPDEST
00000400: PUSH2 0x040a
00000403: DUP3
00000404: PUSH1 0x01
00000406: PUSH2 0x0e64
00000409: JUMP
0000040a: JUMPDEST
0000040b: PUSH2 0x0412
0000040e: PUSH2 0x0e5d
00000411: JUMP
00000412: JUMPDEST
00000413: POP
00000414: POP
00000415: JUMP
00000416: JUMPDEST
00000417: PUSH2 0x041e
0000041a: PUSH2 0x0876
0000041d: JUMP
0000041e: JUMPDEST
0000041f: PUSH2 0x0371
00000422: DUP2
00000423: PUSH1 0x01
00000425: PUSH2 0x0e64
00000428: JUMP
00000429: JUMPDEST
0000042a: PUSH1 0x00
0000042c: SWAP1
0000042d: DUP2
0000042e: MSTORE
0000042f: PUSH1 0x04
00000431: PUSH1 0x20
00000433: MSTORE
00000434: PUSH1 0x40
00000436: SWAP1
00000437: KECCAK256
00000438: SLOAD
00000439: SWAP1
0000043a: JUMP
0000043b: JUMPDEST
0000043c: PUSH2 0x0443
0000043f: PUSH2 0x0876
00000442: JUMP
00000443: JUMPDEST
00000444: PUSH2 0x044d
00000447: DUP4
00000448: DUP3
00000449: PUSH2 0x1331
0000044c: JUMP
0000044d: JUMPDEST
0000044e: DUP3
0000044f: PUSH1 0x00
00000451: JUMPDEST
00000452: DUP2
00000453: DUP2
00000454: LT
00000455: ISZERO
00000456: PUSH2 0x050e
00000459: JUMPI
0000045a: PUSH2 0x0484
0000045d: DUP7
0000045e: DUP7
0000045f: DUP4
00000460: DUP2
00000461: DUP2
00000462: LT
00000463: PUSH2 0x0468
00000466: JUMPI
00000467: INVALID
00000468: JUMPDEST
00000469: SWAP1
0000046a: POP
0000046b: PUSH1 0x20
0000046d: MUL
0000046e: ADD
0000046f: PUSH1 0x20
00000471: DUP2
00000472: ADD
00000473: SWAP1
00000474: PUSH2 0x047d
00000477: SWAP2
00000478: SWAP1
00000479: PUSH2 0x1f44
0000047c: JUMP
0000047d: JUMPDEST
0000047e: PUSH1 0x00
00000480: PUSH2 0x0e64
00000483: JUMP
00000484: JUMPDEST
00000485: PUSH2 0x04db
00000488: CALLER
00000489: ADDRESS
0000048a: DUP7
0000048b: DUP7
0000048c: DUP6
0000048d: DUP2
0000048e: DUP2
0000048f: LT
00000490: PUSH2 0x0495
00000493: JUMPI
00000494: INVALID
00000495: JUMPDEST
00000496: SWAP1
00000497: POP
00000498: PUSH1 0x20
0000049a: MUL
0000049b: ADD
0000049c: CALLDATALOAD
0000049d: DUP10
0000049e: DUP10
0000049f: DUP7
000004a0: DUP2
000004a1: DUP2
000004a2: LT
000004a3: PUSH2 0x04a8
000004a6: JUMPI
000004a7: INVALID
000004a8: JUMPDEST
000004a9: SWAP1
000004aa: POP
000004ab: PUSH1 0x20
000004ad: MUL
000004ae: ADD
000004af: PUSH1 0x20
000004b1: DUP2
000004b2: ADD
000004b3: SWAP1
000004b4: PUSH2 0x04bd
000004b7: SWAP2
000004b8: SWAP1
000004b9: PUSH2 0x1f44
000004bc: JUMP
000004bd: JUMPDEST
000004be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004d3: AND
000004d4: SWAP3
000004d5: SWAP2
000004d6: SWAP1
000004d7: PUSH2 0x128e
000004da: JUMP
000004db: JUMPDEST
000004dc: PUSH2 0x0506
000004df: DUP7
000004e0: DUP7
000004e1: DUP4
000004e2: DUP2
000004e3: DUP2
000004e4: LT
000004e5: PUSH2 0x04ea
000004e8: JUMPI
000004e9: INVALID
000004ea: JUMPDEST
000004eb: SWAP1
000004ec: POP
000004ed: PUSH1 0x20
000004ef: MUL
000004f0: ADD
000004f1: PUSH1 0x20
000004f3: DUP2
000004f4: ADD
000004f5: SWAP1
000004f6: PUSH2 0x04ff
000004f9: SWAP2
000004fa: SWAP1
000004fb: PUSH2 0x1f44
000004fe: JUMP
000004ff: JUMPDEST
00000500: PUSH1 0x01
00000502: PUSH2 0x0e64
00000505: JUMP
00000506: JUMPDEST
00000507: PUSH1 0x01
00000509: ADD
0000050a: PUSH2 0x0451
0000050d: JUMP
0000050e: JUMPDEST
0000050f: POP
00000510: POP
00000511: PUSH2 0x0518
00000514: PUSH2 0x0e5d
00000517: JUMP
00000518: JUMPDEST
00000519: POP
0000051a: POP
0000051b: POP
0000051c: POP
0000051d: JUMP
0000051e: JUMPDEST
0000051f: PUSH1 0x00
00000521: PUSH2 0x052a
00000524: DUP4
00000525: DUP4
00000526: PUSH2 0x133e
00000529: JUMP
0000052a: JUMPDEST
0000052b: SWAP1
0000052c: POP
0000052d: JUMPDEST
0000052e: SWAP3
0000052f: SWAP2
00000530: POP
00000531: POP
00000532: JUMP
00000533: JUMPDEST
00000534: PUSH1 0x03
00000536: SLOAD
00000537: SWAP1
00000538: JUMP
00000539: JUMPDEST
0000053a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000054f: AND
00000550: PUSH1 0x00
00000552: SWAP1
00000553: DUP2
00000554: MSTORE
00000555: PUSH1 0x07
00000557: PUSH1 0x20
00000559: MSTORE
0000055a: PUSH1 0x40
0000055c: SWAP1
0000055d: KECCAK256
0000055e: SLOAD
0000055f: PUSH9 0x010000000000000000
00000569: SWAP1
0000056a: DIV
0000056b: PUSH8 0xffffffffffffffff
00000574: AND
00000575: SWAP1
00000576: JUMP
00000577: JUMPDEST
00000578: PUSH1 0x60
0000057a: PUSH2 0x0581
0000057d: PUSH2 0x0876
00000580: JUMP
00000581: JUMPDEST
00000582: DUP4
00000583: PUSH2 0x058b
00000586: DUP2
00000587: PUSH2 0x13d6
0000058a: JUMP
0000058b: JUMPDEST
0000058c: PUSH2 0x0593
0000058f: PUSH2 0x1428
00000592: JUMP
00000593: JUMPDEST
00000594: PUSH2 0x059c
00000597: DUP6
00000598: PUSH2 0x088d
0000059b: JUMP
0000059c: JUMPDEST
0000059d: DUP3
0000059e: PUSH1 0x60
000005a0: DUP2
000005a1: PUSH8 0xffffffffffffffff
000005aa: DUP2
000005ab: GT
000005ac: DUP1
000005ad: ISZERO
000005ae: PUSH2 0x05b6
000005b1: JUMPI
000005b2: PUSH1 0x00
000005b4: DUP1
000005b5: REVERT
000005b6: JUMPDEST
000005b7: POP
000005b8: PUSH1 0x40
000005ba: MLOAD
000005bb: SWAP1
000005bc: DUP1
000005bd: DUP3
000005be: MSTORE
000005bf: DUP1
000005c0: PUSH1 0x20
000005c2: MUL
000005c3: PUSH1 0x20
000005c5: ADD
000005c6: DUP3
000005c7: ADD
000005c8: PUSH1 0x40
000005ca: MSTORE
000005cb: DUP1
000005cc: ISZERO
000005cd: PUSH2 0x05e0
000005d0: JUMPI
000005d1: DUP2
000005d2: PUSH1 0x20
000005d4: ADD
000005d5: PUSH1 0x20
000005d7: DUP3
000005d8: MUL
000005d9: DUP1
000005da: CALLDATASIZE
000005db: DUP4
000005dc: CALLDATACOPY
000005dd: ADD
000005de: SWAP1
000005df: POP
000005e0: JUMPDEST
000005e1: POP
000005e2: SWAP1
000005e3: POP
000005e4: PUSH1 0x00
000005e6: JUMPDEST
000005e7: DUP3
000005e8: DUP2
000005e9: LT
000005ea: ISZERO
000005eb: PUSH2 0x0646
000005ee: JUMPI
000005ef: PUSH2 0x05fd
000005f2: DUP8
000005f3: DUP8
000005f4: DUP4
000005f5: DUP2
000005f6: DUP2
000005f7: LT
000005f8: PUSH2 0x0468
000005fb: JUMPI
000005fc: INVALID
000005fd: JUMPDEST
000005fe: PUSH2 0x0627
00000601: DUP9
00000602: DUP9
00000603: DUP9
00000604: DUP5
00000605: DUP2
00000606: DUP2
00000607: LT
00000608: PUSH2 0x060d
0000060b: JUMPI
0000060c: INVALID
0000060d: JUMPDEST
0000060e: SWAP1
0000060f: POP
00000610: PUSH1 0x20
00000612: MUL
00000613: ADD
00000614: PUSH1 0x20
00000616: DUP2
00000617: ADD
00000618: SWAP1
00000619: PUSH2 0x0622
0000061c: SWAP2
0000061d: SWAP1
0000061e: PUSH2 0x1f44
00000621: JUMP
00000622: JUMPDEST
00000623: PUSH2 0x15d2
00000626: JUMP
00000627: JUMPDEST
00000628: DUP3
00000629: DUP3
0000062a: DUP2
0000062b: MLOAD
0000062c: DUP2
0000062d: LT
0000062e: PUSH2 0x0633
00000631: JUMPI
00000632: INVALID
00000633: JUMPDEST
00000634: PUSH1 0x20
00000636: SWAP1
00000637: DUP2
00000638: MUL
00000639: SWAP2
0000063a: SWAP1
0000063b: SWAP2
0000063c: ADD
0000063d: ADD
0000063e: MSTORE
0000063f: PUSH1 0x01
00000641: ADD
00000642: PUSH2 0x05e6
00000645: JUMP
00000646: JUMPDEST
00000647: POP
00000648: SWAP3
00000649: POP
0000064a: POP
0000064b: POP
0000064c: PUSH2 0x0653
0000064f: PUSH2 0x0e5d
00000652: JUMP
00000653: JUMPDEST
00000654: SWAP4
00000655: SWAP3
00000656: POP
00000657: POP
00000658: POP
00000659: JUMP
0000065a: JUMPDEST
0000065b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000670: AND
00000671: PUSH1 0x00
00000673: SWAP1
00000674: DUP2
00000675: MSTORE
00000676: PUSH1 0x20
00000678: DUP2
00000679: SWAP1
0000067a: MSTORE
0000067b: PUSH1 0x40
0000067d: SWAP1
0000067e: KECCAK256
0000067f: SLOAD
00000680: SWAP1
00000681: JUMP
00000682: JUMPDEST
00000683: PUSH2 0x068a
00000686: PUSH2 0x0876
00000689: JUMP
0000068a: JUMPDEST
0000068b: DUP1
0000068c: PUSH1 0x00
0000068e: JUMPDEST
0000068f: DUP2
00000690: DUP2
00000691: LT
00000692: ISZERO
00000693: PUSH2 0x06ad
00000696: JUMPI
00000697: PUSH2 0x06a5
0000069a: DUP5
0000069b: DUP5
0000069c: DUP4
0000069d: DUP2
0000069e: DUP2
0000069f: LT
000006a0: PUSH2 0x04ea
000006a3: JUMPI
000006a4: INVALID
000006a5: JUMPDEST
000006a6: PUSH1 0x01
000006a8: ADD
000006a9: PUSH2 0x068e
000006ac: JUMP
000006ad: JUMPDEST
000006ae: POP
000006af: POP
000006b0: PUSH2 0x0412
000006b3: PUSH2 0x0e5d
000006b6: JUMP
000006b7: JUMPDEST
000006b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006cd: AND
000006ce: PUSH1 0x00
000006d0: SWAP1
000006d1: DUP2
000006d2: MSTORE
000006d3: PUSH1 0x01
000006d5: PUSH1 0x20
000006d7: MSTORE
000006d8: PUSH1 0x40
000006da: SWAP1
000006db: KECCAK256
000006dc: SLOAD
000006dd: PUSH1 0xff
000006df: AND
000006e0: SWAP1
000006e1: JUMP
000006e2: JUMPDEST
000006e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006f8: AND
000006f9: PUSH1 0x00
000006fb: SWAP1
000006fc: DUP2
000006fd: MSTORE
000006fe: PUSH1 0x05
00000700: PUSH1 0x20
00000702: MSTORE
00000703: PUSH1 0x40
00000705: SWAP1
00000706: KECCAK256
00000707: SLOAD
00000708: PUSH9 0x010000000000000000
00000712: SWAP1
00000713: DIV
00000714: PUSH8 0xffffffffffffffff
0000071d: AND
0000071e: SWAP1
0000071f: JUMP
00000720: JUMPDEST
00000721: PUSH2 0x0728
00000724: PUSH2 0x0876
00000727: JUMP
00000728: JUMPDEST
00000729: PUSH2 0x0730
0000072c: PUSH2 0x1428
0000072f: JUMP
00000730: JUMPDEST
00000731: PUSH2 0x0738
00000734: PUSH2 0x0e5d
00000737: JUMP
00000738: JUMPDEST
00000739: JUMP
0000073a: JUMPDEST
0000073b: PUSH1 0x00
0000073d: PUSH2 0x0744
00000740: PUSH2 0x0876
00000743: JUMP
00000744: JUMPDEST
00000745: DUP3
00000746: PUSH2 0x074e
00000749: DUP2
0000074a: PUSH2 0x13d6
0000074d: JUMP
0000074e: JUMPDEST
0000074f: PUSH2 0x0756
00000752: PUSH2 0x1428
00000755: JUMP
00000756: JUMPDEST
00000757: PUSH2 0x075f
0000075a: DUP5
0000075b: PUSH2 0x088d
0000075e: JUMP
0000075f: JUMPDEST
00000760: PUSH2 0x076a
00000763: DUP4
00000764: PUSH1 0x00
00000766: PUSH2 0x0e64
00000769: JUMP
0000076a: JUMPDEST
0000076b: PUSH1 0x00
0000076d: PUSH2 0x0776
00000770: DUP6
00000771: DUP6
00000772: PUSH2 0x15d2
00000775: JUMP
00000776: JUMPDEST
00000777: SWAP3
00000778: POP
00000779: POP
0000077a: POP
0000077b: PUSH2 0x052d
0000077e: PUSH2 0x0e5d
00000781: JUMP
00000782: JUMPDEST
00000783: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000798: SWAP2
00000799: SWAP1
0000079a: SWAP2
0000079b: AND
0000079c: PUSH1 0x00
0000079e: SWAP1
0000079f: DUP2
000007a0: MSTORE
000007a1: PUSH1 0x06
000007a3: PUSH1 0x20
000007a5: SWAP1
000007a6: DUP2
000007a7: MSTORE
000007a8: PUSH1 0x40
000007aa: DUP1
000007ab: DUP4
000007ac: KECCAK256
000007ad: SWAP4
000007ae: DUP4
000007af: MSTORE
000007b0: SWAP3
000007b1: SWAP1
000007b2: MSTORE
000007b3: KECCAK256
000007b4: SLOAD
000007b5: SWAP1
000007b6: JUMP
000007b7: JUMPDEST
000007b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007cd: SWAP2
000007ce: SWAP1
000007cf: SWAP2
000007d0: AND
000007d1: PUSH1 0x00
000007d3: SWAP1
000007d4: DUP2
000007d5: MSTORE
000007d6: PUSH1 0x08
000007d8: PUSH1 0x20
000007da: SWAP1
000007db: DUP2
000007dc: MSTORE
000007dd: PUSH1 0x40
000007df: DUP1
000007e0: DUP4
000007e1: KECCAK256
000007e2: SWAP4
000007e3: DUP4
000007e4: MSTORE
000007e5: SWAP3
000007e6: SWAP1
000007e7: MSTORE
000007e8: KECCAK256
000007e9: SLOAD
000007ea: SWAP1
000007eb: JUMP
000007ec: JUMPDEST
000007ed: PUSH2 0x0379
000007f0: CALLER
000007f1: DUP3
000007f2: PUSH2 0x17ef
000007f5: JUMP
000007f6: JUMPDEST
000007f7: PUSH1 0x00
000007f9: PUSH2 0x0800
000007fc: PUSH2 0x187c
000007ff: JUMP
00000800: JUMPDEST
00000801: SWAP1
00000802: POP
00000803: SWAP1
00000804: JUMP
00000805: JUMPDEST
00000806: PUSH1 0x00
00000808: PUSH32 0xbd291ffccec065968fe20c5f8debdad73ab50837733f357eeae8814178015a90
00000829: DUP5
0000082a: DUP5
0000082b: PUSH2 0x0833
0000082e: DUP8
0000082f: PUSH2 0x065a
00000832: JUMP
00000833: JUMPDEST
00000834: PUSH1 0x40
00000836: MLOAD
00000837: PUSH1 0x20
00000839: ADD
0000083a: PUSH2 0x0846
0000083d: SWAP5
0000083e: SWAP4
0000083f: SWAP3
00000840: SWAP2
00000841: SWAP1
00000842: PUSH2 0x2401
00000845: JUMP
00000846: JUMPDEST
00000847: PUSH1 0x40
00000849: MLOAD
0000084a: PUSH1 0x20
0000084c: DUP2
0000084d: DUP4
0000084e: SUB
0000084f: SUB
00000850: DUP2
00000851: MSTORE
00000852: SWAP1
00000853: PUSH1 0x40
00000855: MSTORE
00000856: DUP1
00000857: MLOAD
00000858: SWAP1
00000859: PUSH1 0x20
0000085b: ADD
0000085c: KECCAK256
0000085d: SWAP1
0000085e: POP
0000085f: PUSH2 0x086c
00000862: DUP5
00000863: DUP3
00000864: DUP5
00000865: PUSH2 0x01f8
00000868: PUSH2 0x1919
0000086b: JUMP
0000086c: JUMPDEST
0000086d: PUSH2 0x0518
00000870: DUP5
00000871: DUP5
00000872: PUSH2 0x17ef
00000875: JUMP
00000876: JUMPDEST
00000877: PUSH2 0x0887
0000087a: PUSH1 0x02
0000087c: DUP1
0000087d: SLOAD
0000087e: EQ
0000087f: ISZERO
00000880: PUSH2 0x0190
00000883: PUSH2 0x1946
00000886: JUMP
00000887: JUMPDEST
00000888: PUSH1 0x02
0000088a: DUP1
0000088b: SSTORE
0000088c: JUMP
0000088d: JUMPDEST
0000088e: PUSH1 0x40
00000890: MLOAD
00000891: PUSH32 0x010ae75700000000000000000000000000000000000000000000000000000000
000008b2: DUP2
000008b3: MSTORE
000008b4: PUSH1 0x00
000008b6: SWAP1
000008b7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008cc: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25
000008ed: AND
000008ee: SWAP1
000008ef: PUSH4 0x010ae757
000008f4: SWAP1
000008f5: PUSH2 0x0902
000008f8: SWAP1
000008f9: DUP6
000008fa: SWAP1
000008fb: PUSH1 0x04
000008fd: ADD
000008fe: PUSH2 0x22df
00000901: JUMP
00000902: JUMPDEST
00000903: PUSH1 0x20
00000905: PUSH1 0x40
00000907: MLOAD
00000908: DUP1
00000909: DUP4
0000090a: SUB
0000090b: DUP2
0000090c: DUP7
0000090d: DUP1
0000090e: EXTCODESIZE
0000090f: ISZERO
00000910: DUP1
00000911: ISZERO
00000912: PUSH2 0x091a
00000915: JUMPI
00000916: PUSH1 0x00
00000918: DUP1
00000919: REVERT
0000091a: JUMPDEST
0000091b: POP
0000091c: GAS
0000091d: STATICCALL
0000091e: ISZERO
0000091f: DUP1
00000920: ISZERO
00000921: PUSH2 0x092e
00000924: JUMPI
00000925: RETURNDATASIZE
00000926: PUSH1 0x00
00000928: DUP1
00000929: RETURNDATACOPY
0000092a: RETURNDATASIZE
0000092b: PUSH1 0x00
0000092d: REVERT
0000092e: JUMPDEST
0000092f: POP
00000930: POP
00000931: POP
00000932: POP
00000933: PUSH1 0x40
00000935: MLOAD
00000936: RETURNDATASIZE
00000937: PUSH1 0x1f
00000939: NOT
0000093a: PUSH1 0x1f
0000093c: DUP3
0000093d: ADD
0000093e: AND
0000093f: DUP3
00000940: ADD
00000941: DUP1
00000942: PUSH1 0x40
00000944: MSTORE
00000945: POP
00000946: DUP2
00000947: ADD
00000948: SWAP1
00000949: PUSH2 0x0952
0000094c: SWAP2
0000094d: SWAP1
0000094e: PUSH2 0x2275
00000951: JUMP
00000952: JUMPDEST
00000953: SWAP1
00000954: POP
00000955: DUP1
00000956: PUSH2 0x095f
00000959: JUMPI
0000095a: POP
0000095b: PUSH2 0x0379
0000095e: JUMP
0000095f: JUMPDEST
00000960: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000975: DUP3
00000976: AND
00000977: PUSH1 0x00
00000979: SWAP1
0000097a: DUP2
0000097b: MSTORE
0000097c: PUSH1 0x07
0000097e: PUSH1 0x20
00000980: MSTORE
00000981: PUSH1 0x40
00000983: DUP2
00000984: KECCAK256
00000985: DUP1
00000986: SLOAD
00000987: SWAP1
00000988: SWAP2
00000989: PUSH9 0x010000000000000000
00000993: SWAP1
00000994: SWAP2
00000995: DIV
00000996: PUSH8 0xffffffffffffffff
0000099f: AND
000009a0: SWAP1
000009a1: DUP2
000009a2: PUSH2 0x09d9
000009a5: JUMPI
000009a6: PUSH2 0x09d2
000009a9: DUP6
000009aa: PUSH32 0x0000000000000000000000000000000000000000000000000000000062cf5c80
000009cb: PUSH1 0x00
000009cd: DUP8
000009ce: PUSH2 0x1954
000009d1: JUMP
000009d2: JUMPDEST
000009d3: SWAP1
000009d4: POP
000009d5: PUSH2 0x0a2c
000009d8: JUMP
000009d9: JUMPDEST
000009da: TIMESTAMP
000009db: DUP3
000009dc: LT
000009dd: PUSH2 0x09e9
000009e0: JUMPI
000009e1: POP
000009e2: POP
000009e3: POP
000009e4: POP
000009e5: PUSH2 0x0379
000009e8: JUMP
000009e9: JUMPDEST
000009ea: POP
000009eb: DUP2
000009ec: SLOAD
000009ed: PUSH17 0x0100000000000000000000000000000000
000009ff: SWAP1
00000a00: DIV
00000a01: PUSH16 0xffffffffffffffffffffffffffffffff
00000a12: AND
00000a13: PUSH1 0x14
00000a15: DUP2
00000a16: DUP6
00000a17: SUB
00000a18: GT
00000a19: ISZERO
00000a1a: PUSH2 0x0a2c
00000a1d: JUMPI
00000a1e: PUSH2 0x0a29
00000a21: DUP6
00000a22: DUP4
00000a23: DUP4
00000a24: DUP8
00000a25: PUSH2 0x1954
00000a28: JUMP
00000a29: JUMPDEST
00000a2a: SWAP1
00000a2b: POP
00000a2c: JUMPDEST
00000a2d: DUP1
00000a2e: PUSH2 0x0a35
00000a31: JUMPI
00000a32: POP
00000a33: PUSH1 0x01
00000a35: JUMPDEST
00000a36: PUSH2 0x0a3d
00000a39: PUSH2 0x1ebb
00000a3c: JUMP
00000a3d: JUMPDEST
00000a3e: PUSH1 0x40
00000a40: MLOAD
00000a41: PUSH32 0x28d09d4700000000000000000000000000000000000000000000000000000000
00000a62: DUP2
00000a63: MSTORE
00000a64: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a79: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25
00000a9a: AND
00000a9b: SWAP1
00000a9c: PUSH4 0x28d09d47
00000aa1: SWAP1
00000aa2: PUSH2 0x0ab1
00000aa5: SWAP1
00000aa6: DUP10
00000aa7: SWAP1
00000aa8: DUP7
00000aa9: SWAP1
00000aaa: PUSH1 0x04
00000aac: ADD
00000aad: PUSH2 0x238f
00000ab0: JUMP
00000ab1: JUMPDEST
00000ab2: PUSH1 0x80
00000ab4: PUSH1 0x40
00000ab6: MLOAD
00000ab7: DUP1
00000ab8: DUP4
00000ab9: SUB
00000aba: DUP2
00000abb: DUP7
00000abc: DUP1
00000abd: EXTCODESIZE
00000abe: ISZERO
00000abf: DUP1
00000ac0: ISZERO
00000ac1: PUSH2 0x0ac9
00000ac4: JUMPI
00000ac5: PUSH1 0x00
00000ac7: DUP1
00000ac8: REVERT
00000ac9: JUMPDEST
00000aca: POP
00000acb: GAS
00000acc: STATICCALL
00000acd: ISZERO
00000ace: DUP1
00000acf: ISZERO
00000ad0: PUSH2 0x0add
00000ad3: JUMPI
00000ad4: RETURNDATASIZE
00000ad5: PUSH1 0x00
00000ad7: DUP1
00000ad8: RETURNDATACOPY
00000ad9: RETURNDATASIZE
00000ada: PUSH1 0x00
00000adc: REVERT
00000add: JUMPDEST
00000ade: POP
00000adf: POP
00000ae0: POP
00000ae1: POP
00000ae2: PUSH1 0x40
00000ae4: MLOAD
00000ae5: RETURNDATASIZE
00000ae6: PUSH1 0x1f
00000ae8: NOT
00000ae9: PUSH1 0x1f
00000aeb: DUP3
00000aec: ADD
00000aed: AND
00000aee: DUP3
00000aef: ADD
00000af0: DUP1
00000af1: PUSH1 0x40
00000af3: MSTORE
00000af4: POP
00000af5: DUP2
00000af6: ADD
00000af7: SWAP1
00000af8: PUSH2 0x0b01
00000afb: SWAP2
00000afc: SWAP1
00000afd: PUSH2 0x2206
00000b00: JUMP
00000b01: JUMPDEST
00000b02: SWAP1
00000b03: POP
00000b04: DUP3
00000b05: PUSH2 0x0bd5
00000b08: JUMPI
00000b09: PUSH32 0x0000000000000000000000000000000000000000000000000000000062cf5c80
00000b2a: TIMESTAMP
00000b2b: GT
00000b2c: PUSH2 0x0b6a
00000b2f: JUMPI
00000b30: PUSH1 0x40
00000b32: MLOAD
00000b33: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000b54: DUP2
00000b55: MSTORE
00000b56: PUSH1 0x04
00000b58: ADD
00000b59: PUSH2 0x0b61
00000b5c: SWAP1
00000b5d: PUSH2 0x2548
00000b60: JUMP
00000b61: JUMPDEST
00000b62: PUSH1 0x40
00000b64: MLOAD
00000b65: DUP1
00000b66: SWAP2
00000b67: SUB
00000b68: SWAP1
00000b69: REVERT
00000b6a: JUMPDEST
00000b6b: PUSH2 0x0ba0
00000b6e: PUSH32 0x0000000000000000000000000000000000000000000000000000000062cf5c80
00000b8f: PUSH2 0x0b9b
00000b92: DUP4
00000b93: PUSH1 0x40
00000b95: ADD
00000b96: MLOAD
00000b97: PUSH2 0x1a75
00000b9a: JUMP
00000b9b: JUMPDEST
00000b9c: PUSH2 0x1a85
00000b9f: JUMP
00000ba0: JUMPDEST
00000ba1: DUP5
00000ba2: SLOAD
00000ba3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000
00000bc4: AND
00000bc5: PUSH8 0xffffffffffffffff
00000bce: DUP3
00000bcf: AND
00000bd0: OR
00000bd1: DUP6
00000bd2: SSTORE
00000bd3: SWAP3
00000bd4: POP
00000bd5: JUMPDEST
00000bd6: PUSH2 0x0bdd
00000bd9: PUSH2 0x1ebb
00000bdc: JUMP
00000bdd: JUMPDEST
00000bde: PUSH1 0x00
00000be0: JUMPDEST
00000be1: PUSH1 0x32
00000be3: DUP2
00000be4: LT
00000be5: ISZERO
00000be6: PUSH2 0x0dc2
00000be9: JUMPI
00000bea: DUP3
00000beb: PUSH1 0x40
00000bed: ADD
00000bee: MLOAD
00000bef: DUP6
00000bf0: LT
00000bf1: ISZERO
00000bf2: DUP1
00000bf3: ISZERO
00000bf4: PUSH2 0x0bfd
00000bf7: JUMPI
00000bf8: POP
00000bf9: DUP7
00000bfa: DUP5
00000bfb: GT
00000bfc: ISZERO
00000bfd: JUMPDEST
00000bfe: ISZERO
00000bff: PUSH2 0x0d11
00000c02: JUMPI
00000c03: PUSH1 0x01
00000c05: DUP5
00000c06: ADD
00000c07: SWAP4
00000c08: POP
00000c09: DUP3
00000c0a: SWAP2
00000c0b: POP
00000c0c: DUP7
00000c0d: DUP5
00000c0e: GT
00000c0f: ISZERO
00000c10: PUSH2 0x0c45
00000c13: JUMPI
00000c14: PUSH1 0x40
00000c16: MLOAD
00000c17: DUP1
00000c18: PUSH1 0x80
00000c1a: ADD
00000c1b: PUSH1 0x40
00000c1d: MSTORE
00000c1e: DUP1
00000c1f: PUSH1 0x00
00000c21: PUSH1 0x0f
00000c23: SIGNEXTEND
00000c24: DUP2
00000c25: MSTORE
00000c26: PUSH1 0x20
00000c28: ADD
00000c29: PUSH1 0x00
00000c2b: PUSH1 0x0f
00000c2d: SIGNEXTEND
00000c2e: DUP2
00000c2f: MSTORE
00000c30: PUSH1 0x20
00000c32: ADD
00000c33: PUSH1 0x00
00000c35: DUP2
00000c36: MSTORE
00000c37: PUSH1 0x20
00000c39: ADD
00000c3a: PUSH1 0x00
00000c3c: DUP2
00000c3d: MSTORE
00000c3e: POP
00000c3f: SWAP3
00000c40: POP
00000c41: PUSH2 0x0d0c
00000c44: JUMP
00000c45: JUMPDEST
00000c46: PUSH1 0x40
00000c48: MLOAD
00000c49: PUSH32 0x28d09d4700000000000000000000000000000000000000000000000000000000
00000c6a: DUP2
00000c6b: MSTORE
00000c6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c81: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25
00000ca2: AND
00000ca3: SWAP1
00000ca4: PUSH4 0x28d09d47
00000ca9: SWAP1
00000caa: PUSH2 0x0cb9
00000cad: SWAP1
00000cae: DUP12
00000caf: SWAP1
00000cb0: DUP9
00000cb1: SWAP1
00000cb2: PUSH1 0x04
00000cb4: ADD
00000cb5: PUSH2 0x238f
00000cb8: JUMP
00000cb9: JUMPDEST
00000cba: PUSH1 0x80
00000cbc: PUSH1 0x40
00000cbe: MLOAD
00000cbf: DUP1
00000cc0: DUP4
00000cc1: SUB
00000cc2: DUP2
00000cc3: DUP7
00000cc4: DUP1
00000cc5: EXTCODESIZE
00000cc6: ISZERO
00000cc7: DUP1
00000cc8: ISZERO
00000cc9: PUSH2 0x0cd1
00000ccc: JUMPI
00000ccd: PUSH1 0x00
00000ccf: DUP1
00000cd0: REVERT
00000cd1: JUMPDEST
00000cd2: POP
00000cd3: GAS
00000cd4: STATICCALL
00000cd5: ISZERO
00000cd6: DUP1
00000cd7: ISZERO
00000cd8: PUSH2 0x0ce5
00000cdb: JUMPI
00000cdc: RETURNDATASIZE
00000cdd: PUSH1 0x00
00000cdf: DUP1
00000ce0: RETURNDATACOPY
00000ce1: RETURNDATASIZE
00000ce2: PUSH1 0x00
00000ce4: REVERT
00000ce5: JUMPDEST
00000ce6: POP
00000ce7: POP
00000ce8: POP
00000ce9: POP
00000cea: PUSH1 0x40
00000cec: MLOAD
00000ced: RETURNDATASIZE
00000cee: PUSH1 0x1f
00000cf0: NOT
00000cf1: PUSH1 0x1f
00000cf3: DUP3
00000cf4: ADD
00000cf5: AND
00000cf6: DUP3
00000cf7: ADD
00000cf8: DUP1
00000cf9: PUSH1 0x40
00000cfb: MSTORE
00000cfc: POP
00000cfd: DUP2
00000cfe: ADD
00000cff: SWAP1
00000d00: PUSH2 0x0d09
00000d03: SWAP2
00000d04: SWAP1
00000d05: PUSH2 0x2206
00000d08: JUMP
00000d09: JUMPDEST
00000d0a: SWAP3
00000d0b: POP
00000d0c: JUMPDEST
00000d0d: PUSH2 0x0dba
00000d10: JUMP
00000d11: JUMPDEST
00000d12: TIMESTAMP
00000d13: DUP6
00000d14: LT
00000d15: PUSH2 0x0d1d
00000d18: JUMPI
00000d19: PUSH2 0x0dc2
00000d1c: JUMP
00000d1d: JUMPDEST
00000d1e: PUSH1 0x00
00000d20: DUP3
00000d21: PUSH1 0x40
00000d23: ADD
00000d24: MLOAD
00000d25: DUP7
00000d26: SUB
00000d27: SWAP1
00000d28: POP
00000d29: PUSH1 0x00
00000d2b: DUP2
00000d2c: DUP5
00000d2d: PUSH1 0x20
00000d2f: ADD
00000d30: MLOAD
00000d31: MUL
00000d32: PUSH1 0x0f
00000d34: SIGNEXTEND
00000d35: DUP5
00000d36: PUSH1 0x00
00000d38: ADD
00000d39: MLOAD
00000d3a: PUSH1 0x0f
00000d3c: SIGNEXTEND
00000d3d: SGT
00000d3e: PUSH2 0x0d48
00000d41: JUMPI
00000d42: PUSH1 0x00
00000d44: PUSH2 0x0d59
00000d47: JUMP
00000d48: JUMPDEST
00000d49: DUP2
00000d4a: DUP5
00000d4b: PUSH1 0x20
00000d4d: ADD
00000d4e: MLOAD
00000d4f: MUL
00000d50: DUP5
00000d51: PUSH1 0x00
00000d53: ADD
00000d54: MLOAD
00000d55: SUB
00000d56: PUSH1 0x0f
00000d58: SIGNEXTEND
00000d59: JUMPDEST
00000d5a: SWAP1
00000d5b: POP
00000d5c: DUP1
00000d5d: ISZERO
00000d5e: DUP1
00000d5f: ISZERO
00000d60: PUSH2 0x0d68
00000d63: JUMPI
00000d64: POP
00000d65: DUP9
00000d66: DUP7
00000d67: GT
00000d68: JUMPDEST
00000d69: ISZERO
00000d6a: PUSH2 0x0d7f
00000d6d: JUMPI
00000d6e: PUSH2 0x0d76
00000d71: TIMESTAMP
00000d72: PUSH2 0x1a75
00000d75: JUMP
00000d76: JUMPDEST
00000d77: SWAP7
00000d78: POP
00000d79: POP
00000d7a: POP
00000d7b: PUSH2 0x0dc2
00000d7e: JUMP
00000d7f: JUMPDEST
00000d80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d95: DUP11
00000d96: AND
00000d97: PUSH1 0x00
00000d99: SWAP1
00000d9a: DUP2
00000d9b: MSTORE
00000d9c: PUSH1 0x08
00000d9e: PUSH1 0x20
00000da0: SWAP1
00000da1: DUP2
00000da2: MSTORE
00000da3: PUSH1 0x40
00000da5: DUP1
00000da6: DUP4
00000da7: KECCAK256
00000da8: DUP11
00000da9: DUP5
00000daa: MSTORE
00000dab: SWAP1
00000dac: SWAP2
00000dad: MSTORE
00000dae: SWAP1
00000daf: KECCAK256
00000db0: SSTORE
00000db1: POP
00000db2: PUSH3 0x093a80
00000db6: SWAP1
00000db7: SWAP5
00000db8: ADD
00000db9: SWAP4
00000dba: JUMPDEST
00000dbb: PUSH1 0x01
00000dbd: ADD
00000dbe: PUSH2 0x0be0
00000dc1: JUMP
00000dc2: JUMPDEST
00000dc3: POP
00000dc4: POP
00000dc5: DUP4
00000dc6: SLOAD
00000dc7: PUSH16 0xffffffffffffffffffffffffffffffff
00000dd8: AND
00000dd9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000dfa: SWAP3
00000dfb: SWAP1
00000dfc: SWAP3
00000dfd: ADD
00000dfe: PUSH8 0xffffffffffffffff
00000e07: SWAP1
00000e08: DUP2
00000e09: AND
00000e0a: PUSH17 0x0100000000000000000000000000000000
00000e1c: MUL
00000e1d: SWAP3
00000e1e: SWAP1
00000e1f: SWAP3
00000e20: OR
00000e21: PUSH32 0xffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff
00000e42: AND
00000e43: PUSH9 0x010000000000000000
00000e4d: SWAP4
00000e4e: SWAP1
00000e4f: SWAP3
00000e50: AND
00000e51: SWAP3
00000e52: SWAP1
00000e53: SWAP3
00000e54: MUL
00000e55: OR
00000e56: SWAP1
00000e57: SWAP2
00000e58: SSTORE
00000e59: POP
00000e5a: POP
00000e5b: POP
00000e5c: JUMP
00000e5d: JUMPDEST
00000e5e: PUSH1 0x01
00000e60: PUSH1 0x02
00000e62: SSTORE
00000e63: JUMP
00000e64: JUMPDEST
00000e65: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e7a: DUP3
00000e7b: AND
00000e7c: PUSH1 0x00
00000e7e: SWAP1
00000e7f: DUP2
00000e80: MSTORE
00000e81: PUSH1 0x05
00000e83: PUSH1 0x20
00000e85: MSTORE
00000e86: PUSH1 0x40
00000e88: DUP2
00000e89: KECCAK256
00000e8a: DUP1
00000e8b: SLOAD
00000e8c: SWAP1
00000e8d: SWAP2
00000e8e: PUSH9 0x010000000000000000
00000e98: SWAP1
00000e99: SWAP2
00000e9a: DIV
00000e9b: PUSH8 0xffffffffffffffff
00000ea4: AND
00000ea5: SWAP1
00000ea6: DUP2
00000ea7: PUSH2 0x0f48
00000eaa: JUMPI
00000eab: TIMESTAMP
00000eac: SWAP2
00000ead: POP
00000eae: PUSH2 0x0eb6
00000eb1: TIMESTAMP
00000eb2: PUSH2 0x1a9c
00000eb5: JUMP
00000eb6: JUMPDEST
00000eb7: DUP4
00000eb8: SLOAD
00000eb9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000
00000eda: AND
00000edb: PUSH8 0xffffffffffffffff
00000ee4: SWAP2
00000ee5: SWAP1
00000ee6: SWAP2
00000ee7: AND
00000ee8: OR
00000ee9: DUP4
00000eea: SSTORE
00000eeb: PUSH32 0x0000000000000000000000000000000000000000000000000000000062cf5c80
00000f0c: TIMESTAMP
00000f0d: GT
00000f0e: PUSH2 0x0f43
00000f11: JUMPI
00000f12: PUSH1 0x40
00000f14: MLOAD
00000f15: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000f36: DUP2
00000f37: MSTORE
00000f38: PUSH1 0x04
00000f3a: ADD
00000f3b: PUSH2 0x0b61
00000f3e: SWAP1
00000f3f: PUSH2 0x2548
00000f42: JUMP
00000f43: JUMPDEST
00000f44: PUSH2 0x0f9a
00000f47: JUMP
00000f48: JUMPDEST
00000f49: DUP2
00000f4a: TIMESTAMP
00000f4b: SUB
00000f4c: SWAP1
00000f4d: POP
00000f4e: DUP4
00000f4f: PUSH2 0x0f9a
00000f52: JUMPI
00000f53: PUSH1 0x00
00000f55: PUSH2 0x0f5d
00000f58: DUP4
00000f59: PUSH2 0x1a9c
00000f5c: JUMP
00000f5d: JUMPDEST
00000f5e: PUSH2 0x0f66
00000f61: TIMESTAMP
00000f62: PUSH2 0x1a9c
00000f65: JUMP
00000f66: JUMPDEST
00000f67: EQ
00000f68: SWAP1
00000f69: POP
00000f6a: PUSH1 0x00
00000f6c: PUSH3 0x015180
00000f70: TIMESTAMP
00000f71: PUSH2 0x0f79
00000f74: TIMESTAMP
00000f75: PUSH2 0x1a75
00000f78: JUMP
00000f79: JUMPDEST
00000f7a: SUB
00000f7b: LT
00000f7c: SWAP1
00000f7d: POP
00000f7e: DUP2
00000f7f: DUP1
00000f80: ISZERO
00000f81: PUSH2 0x0f88
00000f84: JUMPI
00000f85: POP
00000f86: DUP1
00000f87: ISZERO
00000f88: JUMPDEST
00000f89: ISZERO
00000f8a: PUSH2 0x0f97
00000f8d: JUMPI
00000f8e: POP
00000f8f: POP
00000f90: POP
00000f91: POP
00000f92: POP
00000f93: PUSH2 0x0412
00000f96: JUMP
00000f97: JUMPDEST
00000f98: POP
00000f99: POP
00000f9a: JUMPDEST
00000f9b: DUP3
00000f9c: SLOAD
00000f9d: PUSH32 0xffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff
00000fbe: AND
00000fbf: PUSH9 0x010000000000000000
00000fc9: TIMESTAMP
00000fca: PUSH8 0xffffffffffffffff
00000fd3: AND
00000fd4: MUL
00000fd5: OR
00000fd6: DUP4
00000fd7: SSTORE
00000fd8: PUSH1 0x40
00000fda: MLOAD
00000fdb: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00000ffc: DUP2
00000ffd: MSTORE
00000ffe: PUSH1 0x00
00001000: SWAP1
00001001: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001016: DUP8
00001017: AND
00001018: SWAP1
00001019: PUSH4 0x70a08231
0000101e: SWAP1
0000101f: PUSH2 0x102c
00001022: SWAP1
00001023: ADDRESS
00001024: SWAP1
00001025: PUSH1 0x04
00001027: ADD
00001028: PUSH2 0x22df
0000102b: JUMP
0000102c: JUMPDEST
0000102d: PUSH1 0x20
0000102f: PUSH1 0x40
00001031: MLOAD
00001032: DUP1
00001033: DUP4
00001034: SUB
00001035: DUP2
00001036: DUP7
00001037: DUP1
00001038: EXTCODESIZE
00001039: ISZERO
0000103a: DUP1
0000103b: ISZERO
0000103c: PUSH2 0x1044
0000103f: JUMPI
00001040: PUSH1 0x00
00001042: DUP1
00001043: REVERT
00001044: JUMPDEST
00001045: POP
00001046: GAS
00001047: STATICCALL
00001048: ISZERO
00001049: DUP1
0000104a: ISZERO
0000104b: PUSH2 0x1058
0000104e: JUMPI
0000104f: RETURNDATASIZE
00001050: PUSH1 0x00
00001052: DUP1
00001053: RETURNDATACOPY
00001054: RETURNDATASIZE
00001055: PUSH1 0x00
00001057: REVERT
00001058: JUMPDEST
00001059: POP
0000105a: POP
0000105b: POP
0000105c: POP
0000105d: PUSH1 0x40
0000105f: MLOAD
00001060: RETURNDATASIZE
00001061: PUSH1 0x1f
00001063: NOT
00001064: PUSH1 0x1f
00001066: DUP3
00001067: ADD
00001068: AND
00001069: DUP3
0000106a: ADD
0000106b: DUP1
0000106c: PUSH1 0x40
0000106e: MSTORE
0000106f: POP
00001070: DUP2
00001071: ADD
00001072: SWAP1
00001073: PUSH2 0x107c
00001076: SWAP2
00001077: SWAP1
00001078: PUSH2 0x2275
0000107b: JUMP
0000107c: JUMPDEST
0000107d: DUP5
0000107e: SLOAD
0000107f: SWAP1
00001080: SWAP2
00001081: POP
00001082: PUSH1 0x00
00001084: SWAP1
00001085: PUSH2 0x10b5
00001088: SWAP1
00001089: DUP4
0000108a: SWAP1
0000108b: PUSH17 0x0100000000000000000000000000000000
0000109d: SWAP1
0000109e: DIV
0000109f: PUSH16 0xffffffffffffffffffffffffffffffff
000010b0: AND
000010b1: PUSH2 0x1aa8
000010b4: JUMP
000010b5: JUMPDEST
000010b6: SWAP1
000010b7: POP
000010b8: DUP1
000010b9: PUSH2 0x10c6
000010bc: JUMPI
000010bd: POP
000010be: POP
000010bf: POP
000010c0: POP
000010c1: POP
000010c2: PUSH2 0x0412
000010c5: JUMP
000010c6: JUMPDEST
000010c7: PUSH16 0xffffffffffffffffffffffffffffffff
000010d8: DUP3
000010d9: GT
000010da: ISZERO
000010db: PUSH2 0x1110
000010de: JUMPI
000010df: PUSH1 0x40
000010e1: MLOAD
000010e2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001103: DUP2
00001104: MSTORE
00001105: PUSH1 0x04
00001107: ADD
00001108: PUSH2 0x0b61
0000110b: SWAP1
0000110c: PUSH2 0x2511
0000110f: JUMP
00001110: JUMPDEST
00001111: DUP5
00001112: SLOAD
00001113: PUSH16 0xffffffffffffffffffffffffffffffff
00001124: DUP1
00001125: DUP5
00001126: AND
00001127: PUSH17 0x0100000000000000000000000000000000
00001139: MUL
0000113a: SWAP2
0000113b: AND
0000113c: OR
0000113d: DUP6
0000113e: SSTORE
0000113f: PUSH1 0x00
00001141: PUSH2 0x1149
00001144: DUP6
00001145: PUSH2 0x1a9c
00001148: JUMP
00001149: JUMPDEST
0000114a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000115f: DUP10
00001160: AND
00001161: PUSH1 0x00
00001163: SWAP1
00001164: DUP2
00001165: MSTORE
00001166: PUSH1 0x06
00001168: PUSH1 0x20
0000116a: MSTORE
0000116b: PUSH1 0x40
0000116d: DUP2
0000116e: KECCAK256
0000116f: SWAP2
00001170: SWAP3
00001171: POP
00001172: SWAP1
00001173: DUP2
00001174: JUMPDEST
00001175: PUSH1 0x14
00001177: DUP2
00001178: LT
00001179: ISZERO
0000117a: PUSH2 0x1246
0000117d: JUMPI
0000117e: DUP4
0000117f: PUSH3 0x093a80
00001183: ADD
00001184: SWAP3
00001185: POP
00001186: DUP3
00001187: TIMESTAMP
00001188: LT
00001189: ISZERO
0000118a: PUSH2 0x11e4
0000118d: JUMPI
0000118e: DUP7
0000118f: ISZERO
00001190: DUP1
00001191: ISZERO
00001192: PUSH2 0x119a
00001195: JUMPI
00001196: POP
00001197: DUP8
00001198: TIMESTAMP
00001199: EQ
0000119a: JUMPDEST
0000119b: ISZERO
0000119c: PUSH2 0x11b8
0000119f: JUMPI
000011a0: PUSH1 0x00
000011a2: DUP5
000011a3: DUP2
000011a4: MSTORE
000011a5: PUSH1 0x20
000011a7: DUP4
000011a8: SWAP1
000011a9: MSTORE
000011aa: PUSH1 0x40
000011ac: SWAP1
000011ad: KECCAK256
000011ae: DUP1
000011af: SLOAD
000011b0: DUP7
000011b1: ADD
000011b2: SWAP1
000011b3: SSTORE
000011b4: PUSH2 0x11df
000011b7: JUMP
000011b8: JUMPDEST
000011b9: DUP7
000011ba: DUP9
000011bb: TIMESTAMP
000011bc: SUB
000011bd: DUP7
000011be: MUL
000011bf: DUP2
000011c0: PUSH2 0x11c5
000011c3: JUMPI
000011c4: INVALID
000011c5: JUMPDEST
000011c6: PUSH1 0x00
000011c8: DUP7
000011c9: DUP2
000011ca: MSTORE
000011cb: PUSH1 0x20
000011cd: DUP6
000011ce: SWAP1
000011cf: MSTORE
000011d0: PUSH1 0x40
000011d2: SWAP1
000011d3: KECCAK256
000011d4: DUP1
000011d5: SLOAD
000011d6: SWAP3
000011d7: SWAP1
000011d8: SWAP2
000011d9: DIV
000011da: SWAP1
000011db: SWAP2
000011dc: ADD
000011dd: SWAP1
000011de: SSTORE
000011df: JUMPDEST
000011e0: PUSH2 0x1246
000011e3: JUMP
000011e4: JUMPDEST
000011e5: DUP7
000011e6: ISZERO
000011e7: DUP1
000011e8: ISZERO
000011e9: PUSH2 0x11f1
000011ec: JUMPI
000011ed: POP
000011ee: DUP8
000011ef: DUP4
000011f0: EQ
000011f1: JUMPDEST
000011f2: ISZERO
000011f3: PUSH2 0x120f
000011f6: JUMPI
000011f7: PUSH1 0x00
000011f9: DUP5
000011fa: DUP2
000011fb: MSTORE
000011fc: PUSH1 0x20
000011fe: DUP4
000011ff: SWAP1
00001200: MSTORE
00001201: PUSH1 0x40
00001203: SWAP1
00001204: KECCAK256
00001205: DUP1
00001206: SLOAD
00001207: DUP7
00001208: ADD
00001209: SWAP1
0000120a: SSTORE
0000120b: PUSH2 0x1236
0000120e: JUMP
0000120f: JUMPDEST
00001210: DUP7
00001211: DUP9
00001212: DUP5
00001213: SUB
00001214: DUP7
00001215: MUL
00001216: DUP2
00001217: PUSH2 0x121c
0000121a: JUMPI
0000121b: INVALID
0000121c: JUMPDEST
0000121d: PUSH1 0x00
0000121f: DUP7
00001220: DUP2
00001221: MSTORE
00001222: PUSH1 0x20
00001224: DUP6
00001225: SWAP1
00001226: MSTORE
00001227: PUSH1 0x40
00001229: SWAP1
0000122a: KECCAK256
0000122b: DUP1
0000122c: SLOAD
0000122d: SWAP3
0000122e: SWAP1
0000122f: SWAP2
00001230: DIV
00001231: SWAP1
00001232: SWAP2
00001233: ADD
00001234: SWAP1
00001235: SSTORE
00001236: JUMPDEST
00001237: SWAP2
00001238: SWAP7
00001239: POP
0000123a: DUP7
0000123b: SWAP3
0000123c: POP
0000123d: DUP3
0000123e: SWAP2
0000123f: PUSH1 0x01
00001241: ADD
00001242: PUSH2 0x1174
00001245: JUMP
00001246: JUMPDEST
00001247: POP
00001248: PUSH32 0x9b7f1a85a4c9b4e59e1b6527d9969c50cdfb3a1a467d0c4a51fb0ed8bf07f130
00001269: DUP11
0000126a: DUP6
0000126b: DUP10
0000126c: PUSH1 0x40
0000126e: MLOAD
0000126f: PUSH2 0x127a
00001272: SWAP4
00001273: SWAP3
00001274: SWAP2
00001275: SWAP1
00001276: PUSH2 0x24e3
00001279: JUMP
0000127a: JUMPDEST
0000127b: PUSH1 0x40
0000127d: MLOAD
0000127e: DUP1
0000127f: SWAP2
00001280: SUB
00001281: SWAP1
00001282: LOG1
00001283: POP
00001284: POP
00001285: POP
00001286: POP
00001287: POP
00001288: POP
00001289: POP
0000128a: POP
0000128b: POP
0000128c: POP
0000128d: JUMP
0000128e: JUMPDEST
0000128f: PUSH2 0x0518
00001292: DUP5
00001293: PUSH4 0x23b872dd
00001298: PUSH1 0xe0
0000129a: SHL
0000129b: DUP6
0000129c: DUP6
0000129d: DUP6
0000129e: PUSH1 0x40
000012a0: MLOAD
000012a1: PUSH1 0x24
000012a3: ADD
000012a4: PUSH2 0x12af
000012a7: SWAP4
000012a8: SWAP3
000012a9: SWAP2
000012aa: SWAP1
000012ab: PUSH2 0x2300
000012ae: JUMP
000012af: JUMPDEST
000012b0: PUSH1 0x40
000012b2: DUP1
000012b3: MLOAD
000012b4: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000012d5: DUP2
000012d6: DUP5
000012d7: SUB
000012d8: ADD
000012d9: DUP2
000012da: MSTORE
000012db: SWAP2
000012dc: SWAP1
000012dd: MSTORE
000012de: PUSH1 0x20
000012e0: DUP2
000012e1: ADD
000012e2: DUP1
000012e3: MLOAD
000012e4: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001301: AND
00001302: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00001323: SWAP1
00001324: SWAP4
00001325: AND
00001326: SWAP3
00001327: SWAP1
00001328: SWAP3
00001329: OR
0000132a: SWAP1
0000132b: SWAP2
0000132c: MSTORE
0000132d: PUSH2 0x1ab6
00001330: JUMP
00001331: JUMPDEST
00001332: PUSH2 0x0412
00001335: DUP2
00001336: DUP4
00001337: EQ
00001338: PUSH1 0x67
0000133a: PUSH2 0x1946
0000133d: JUMP
0000133e: JUMPDEST
0000133f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001354: DUP1
00001355: DUP4
00001356: AND
00001357: PUSH1 0x00
00001359: SWAP1
0000135a: DUP2
0000135b: MSTORE
0000135c: PUSH1 0x09
0000135e: PUSH1 0x20
00001360: SWAP1
00001361: DUP2
00001362: MSTORE
00001363: PUSH1 0x40
00001365: DUP1
00001366: DUP4
00001367: KECCAK256
00001368: SWAP4
00001369: DUP6
0000136a: AND
0000136b: DUP4
0000136c: MSTORE
0000136d: SWAP3
0000136e: SWAP1
0000136f: MSTORE
00001370: SWAP1
00001371: DUP2
00001372: KECCAK256
00001373: SLOAD
00001374: DUP1
00001375: ISZERO
00001376: PUSH2 0x1380
00001379: JUMPI
0000137a: SWAP1
0000137b: POP
0000137c: PUSH2 0x052d
0000137f: JUMP
00001380: JUMPDEST
00001381: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001396: DUP1
00001397: DUP6
00001398: AND
00001399: PUSH1 0x00
0000139b: SWAP1
0000139c: DUP2
0000139d: MSTORE
0000139e: PUSH1 0x07
000013a0: PUSH1 0x20
000013a2: SWAP1
000013a3: DUP2
000013a4: MSTORE
000013a5: PUSH1 0x40
000013a7: DUP1
000013a8: DUP4
000013a9: KECCAK256
000013aa: SLOAD
000013ab: SWAP4
000013ac: DUP8
000013ad: AND
000013ae: DUP4
000013af: MSTORE
000013b0: PUSH1 0x05
000013b2: SWAP1
000013b3: SWAP2
000013b4: MSTORE
000013b5: SWAP1
000013b6: KECCAK256
000013b7: SLOAD
000013b8: PUSH2 0x13ce
000013bb: SWAP2
000013bc: PUSH8 0xffffffffffffffff
000013c5: SWAP1
000013c6: DUP2
000013c7: AND
000013c8: SWAP2
000013c9: AND
000013ca: PUSH2 0x1a85
000013cd: JUMP
000013ce: JUMPDEST
000013cf: SWAP5
000013d0: SWAP4
000013d1: POP
000013d2: POP
000013d3: POP
000013d4: POP
000013d5: JUMP
000013d6: JUMPDEST
000013d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013ec: DUP2
000013ed: AND
000013ee: PUSH1 0x00
000013f0: SWAP1
000013f1: DUP2
000013f2: MSTORE
000013f3: PUSH1 0x01
000013f5: PUSH1 0x20
000013f7: MSTORE
000013f8: PUSH1 0x40
000013fa: SWAP1
000013fb: KECCAK256
000013fc: SLOAD
000013fd: PUSH1 0xff
000013ff: AND
00001400: ISZERO
00001401: PUSH2 0x0379
00001404: JUMPI
00001405: PUSH2 0x0379
00001408: CALLER
00001409: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000141e: DUP4
0000141f: AND
00001420: EQ
00001421: PUSH2 0x0191
00001424: PUSH2 0x1946
00001427: JUMP
00001428: JUMPDEST
00001429: PUSH1 0x03
0000142b: SLOAD
0000142c: PUSH1 0x00
0000142e: PUSH2 0x1436
00001431: TIMESTAMP
00001432: PUSH2 0x1a9c
00001435: JUMP
00001436: JUMPDEST
00001437: SWAP1
00001438: POP
00001439: DUP1
0000143a: DUP3
0000143b: GT
0000143c: DUP1
0000143d: PUSH2 0x1445
00001440: JUMPI
00001441: POP
00001442: TIMESTAMP
00001443: DUP2
00001444: EQ
00001445: JUMPDEST
00001446: ISZERO
00001447: PUSH2 0x1451
0000144a: JUMPI
0000144b: POP
0000144c: POP
0000144d: PUSH2 0x0738
00001450: JUMP
00001451: JUMPDEST
00001452: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25
00001473: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001488: AND
00001489: PUSH4 0xc2c4c5c1
0000148e: PUSH1 0x40
00001490: MLOAD
00001491: DUP2
00001492: PUSH4 0xffffffff
00001497: AND
00001498: PUSH1 0xe0
0000149a: SHL
0000149b: DUP2
0000149c: MSTORE
0000149d: PUSH1 0x04
0000149f: ADD
000014a0: PUSH1 0x00
000014a2: PUSH1 0x40
000014a4: MLOAD
000014a5: DUP1
000014a6: DUP4
000014a7: SUB
000014a8: DUP2
000014a9: PUSH1 0x00
000014ab: DUP8
000014ac: DUP1
000014ad: EXTCODESIZE
000014ae: ISZERO
000014af: DUP1
000014b0: ISZERO
000014b1: PUSH2 0x14b9
000014b4: JUMPI
000014b5: PUSH1 0x00
000014b7: DUP1
000014b8: REVERT
000014b9: JUMPDEST
000014ba: POP
000014bb: GAS
000014bc: CALL
000014bd: ISZERO
000014be: DUP1
000014bf: ISZERO
000014c0: PUSH2 0x14cd
000014c3: JUMPI
000014c4: RETURNDATASIZE
000014c5: PUSH1 0x00
000014c7: DUP1
000014c8: RETURNDATACOPY
000014c9: RETURNDATASIZE
000014ca: PUSH1 0x00
000014cc: REVERT
000014cd: JUMPDEST
000014ce: POP
000014cf: POP
000014d0: POP
000014d1: POP
000014d2: PUSH1 0x00
000014d4: JUMPDEST
000014d5: PUSH1 0x14
000014d7: DUP2
000014d8: LT
000014d9: ISZERO
000014da: PUSH2 0x15cb
000014dd: JUMPI
000014de: DUP2
000014df: DUP4
000014e0: GT
000014e1: ISZERO
000014e2: PUSH2 0x14ea
000014e5: JUMPI
000014e6: PUSH2 0x15cb
000014e9: JUMP
000014ea: JUMPDEST
000014eb: PUSH1 0x40
000014ed: MLOAD
000014ee: PUSH32 0xbd85b03900000000000000000000000000000000000000000000000000000000
0000150f: DUP2
00001510: MSTORE
00001511: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001526: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25
00001547: AND
00001548: SWAP1
00001549: PUSH4 0xbd85b039
0000154e: SWAP1
0000154f: PUSH2 0x155c
00001552: SWAP1
00001553: DUP7
00001554: SWAP1
00001555: PUSH1 0x04
00001557: ADD
00001558: PUSH2 0x23f8
0000155b: JUMP
0000155c: JUMPDEST
0000155d: PUSH1 0x20
0000155f: PUSH1 0x40
00001561: MLOAD
00001562: DUP1
00001563: DUP4
00001564: SUB
00001565: DUP2
00001566: DUP7
00001567: DUP1
00001568: EXTCODESIZE
00001569: ISZERO
0000156a: DUP1
0000156b: ISZERO
0000156c: PUSH2 0x1574
0000156f: JUMPI
00001570: PUSH1 0x00
00001572: DUP1
00001573: REVERT
00001574: JUMPDEST
00001575: POP
00001576: GAS
00001577: STATICCALL
00001578: ISZERO
00001579: DUP1
0000157a: ISZERO
0000157b: PUSH2 0x1588
0000157e: JUMPI
0000157f: RETURNDATASIZE
00001580: PUSH1 0x00
00001582: DUP1
00001583: RETURNDATACOPY
00001584: RETURNDATASIZE
00001585: PUSH1 0x00
00001587: REVERT
00001588: JUMPDEST
00001589: POP
0000158a: POP
0000158b: POP
0000158c: POP
0000158d: PUSH1 0x40
0000158f: MLOAD
00001590: RETURNDATASIZE
00001591: PUSH1 0x1f
00001593: NOT
00001594: PUSH1 0x1f
00001596: DUP3
00001597: ADD
00001598: AND
00001599: DUP3
0000159a: ADD
0000159b: DUP1
0000159c: PUSH1 0x40
0000159e: MSTORE
0000159f: POP
000015a0: DUP2
000015a1: ADD
000015a2: SWAP1
000015a3: PUSH2 0x15ac
000015a6: SWAP2
000015a7: SWAP1
000015a8: PUSH2 0x2275
000015ab: JUMP
000015ac: JUMPDEST
000015ad: PUSH1 0x00
000015af: DUP5
000015b0: DUP2
000015b1: MSTORE
000015b2: PUSH1 0x04
000015b4: PUSH1 0x20
000015b6: MSTORE
000015b7: PUSH1 0x40
000015b9: SWAP1
000015ba: KECCAK256
000015bb: SSTORE
000015bc: PUSH3 0x093a80
000015c0: SWAP1
000015c1: SWAP3
000015c2: ADD
000015c3: SWAP2
000015c4: PUSH1 0x01
000015c6: ADD
000015c7: PUSH2 0x14d4
000015ca: JUMP
000015cb: JUMPDEST
000015cc: POP
000015cd: POP
000015ce: PUSH1 0x03
000015d0: SSTORE
000015d1: JUMP
000015d2: JUMPDEST
000015d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015e8: DUP2
000015e9: AND
000015ea: PUSH1 0x00
000015ec: SWAP1
000015ed: DUP2
000015ee: MSTORE
000015ef: PUSH1 0x05
000015f1: PUSH1 0x20
000015f3: MSTORE
000015f4: PUSH1 0x40
000015f6: DUP2
000015f7: KECCAK256
000015f8: DUP2
000015f9: PUSH2 0x1602
000015fc: DUP6
000015fd: DUP6
000015fe: PUSH2 0x133e
00001601: JUMP
00001602: JUMPDEST
00001603: PUSH1 0x03
00001605: SLOAD
00001606: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000161b: DUP8
0000161c: AND
0000161d: PUSH1 0x00
0000161f: SWAP1
00001620: DUP2
00001621: MSTORE
00001622: PUSH1 0x07
00001624: PUSH1 0x20
00001626: MSTORE
00001627: PUSH1 0x40
00001629: DUP2
0000162a: KECCAK256
0000162b: SLOAD
0000162c: SWAP3
0000162d: SWAP4
0000162e: POP
0000162f: SWAP2
00001630: PUSH2 0x1682
00001633: SWAP2
00001634: PUSH2 0x165c
00001637: SWAP2
00001638: PUSH2 0x1657
0000163b: SWAP2
0000163c: SWAP1
0000163d: PUSH9 0x010000000000000000
00001647: SWAP1
00001648: DIV
00001649: PUSH8 0xffffffffffffffff
00001652: AND
00001653: PUSH2 0x1b63
00001656: JUMP
00001657: JUMPDEST
00001658: PUSH2 0x1a75
0000165b: JUMP
0000165c: JUMPDEST
0000165d: DUP5
0000165e: SLOAD
0000165f: PUSH2 0x167d
00001662: SWAP1
00001663: PUSH9 0x010000000000000000
0000166d: SWAP1
0000166e: DIV
0000166f: PUSH8 0xffffffffffffffff
00001678: AND
00001679: PUSH2 0x1a9c
0000167c: JUMP
0000167d: JUMPDEST
0000167e: PUSH2 0x1b63
00001681: JUMP
00001682: JUMPDEST
00001683: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001698: DUP1
00001699: DUP8
0000169a: AND
0000169b: PUSH1 0x00
0000169d: SWAP1
0000169e: DUP2
0000169f: MSTORE
000016a0: PUSH1 0x06
000016a2: PUSH1 0x20
000016a4: SWAP1
000016a5: DUP2
000016a6: MSTORE
000016a7: PUSH1 0x40
000016a9: DUP1
000016aa: DUP4
000016ab: KECCAK256
000016ac: SWAP4
000016ad: DUP12
000016ae: AND
000016af: DUP4
000016b0: MSTORE
000016b1: PUSH1 0x08
000016b3: SWAP1
000016b4: SWAP2
000016b5: MSTORE
000016b6: DUP2
000016b7: KECCAK256
000016b8: SWAP3
000016b9: SWAP4
000016ba: POP
000016bb: SWAP1
000016bc: SWAP2
000016bd: SWAP1
000016be: DUP1
000016bf: JUMPDEST
000016c0: PUSH1 0x14
000016c2: DUP2
000016c3: LT
000016c4: ISZERO
000016c5: PUSH2 0x1713
000016c8: JUMPI
000016c9: DUP5
000016ca: DUP7
000016cb: LT
000016cc: PUSH2 0x16d4
000016cf: JUMPI
000016d0: PUSH2 0x1713
000016d3: JUMP
000016d4: JUMPDEST
000016d5: PUSH1 0x00
000016d7: DUP7
000016d8: DUP2
000016d9: MSTORE
000016da: PUSH1 0x04
000016dc: PUSH1 0x20
000016de: SWAP1
000016df: DUP2
000016e0: MSTORE
000016e1: PUSH1 0x40
000016e3: DUP1
000016e4: DUP4
000016e5: KECCAK256
000016e6: SLOAD
000016e7: DUP7
000016e8: DUP4
000016e9: MSTORE
000016ea: DUP2
000016eb: DUP5
000016ec: KECCAK256
000016ed: SLOAD
000016ee: SWAP3
000016ef: DUP9
000016f0: SWAP1
000016f1: MSTORE
000016f2: SWAP3
000016f3: KECCAK256
000016f4: SLOAD
000016f5: MUL
000016f6: DUP2
000016f7: PUSH2 0x16fc
000016fa: JUMPI
000016fb: INVALID
000016fc: JUMPDEST
000016fd: PUSH3 0x093a80
00001701: SWAP8
00001702: SWAP1
00001703: SWAP8
00001704: ADD
00001705: SWAP7
00001706: DIV
00001707: SWAP2
00001708: SWAP1
00001709: SWAP2
0000170a: ADD
0000170b: SWAP1
0000170c: PUSH1 0x01
0000170e: ADD
0000170f: PUSH2 0x16bf
00001712: JUMP
00001713: JUMPDEST
00001714: POP
00001715: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000172a: DUP1
0000172b: DUP11
0000172c: AND
0000172d: PUSH1 0x00
0000172f: SWAP1
00001730: DUP2
00001731: MSTORE
00001732: PUSH1 0x09
00001734: PUSH1 0x20
00001736: SWAP1
00001737: DUP2
00001738: MSTORE
00001739: PUSH1 0x40
0000173b: DUP1
0000173c: DUP4
0000173d: KECCAK256
0000173e: SWAP4
0000173f: DUP13
00001740: AND
00001741: DUP4
00001742: MSTORE
00001743: SWAP3
00001744: SWAP1
00001745: MSTORE
00001746: KECCAK256
00001747: DUP6
00001748: SWAP1
00001749: SSTORE
0000174a: DUP1
0000174b: ISZERO
0000174c: PUSH2 0x17e3
0000174f: JUMPI
00001750: DUP6
00001751: SLOAD
00001752: PUSH16 0xffffffffffffffffffffffffffffffff
00001763: PUSH17 0x0100000000000000000000000000000000
00001775: DUP1
00001776: DUP4
00001777: DIV
00001778: DUP3
00001779: AND
0000177a: DUP5
0000177b: SWAP1
0000177c: SUB
0000177d: DUP3
0000177e: AND
0000177f: MUL
00001780: SWAP2
00001781: AND
00001782: OR
00001783: DUP7
00001784: SSTORE
00001785: PUSH2 0x17a5
00001788: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000179d: DUP10
0000179e: AND
0000179f: DUP11
000017a0: DUP4
000017a1: PUSH2 0x1b72
000017a4: JUMP
000017a5: JUMPDEST
000017a6: PUSH32 0xff097c7d8b1957a4ff09ef1361b5fb54dcede3941ba836d0beb9d10bec725de6
000017c7: DUP10
000017c8: DUP10
000017c9: DUP4
000017ca: DUP9
000017cb: PUSH1 0x40
000017cd: MLOAD
000017ce: PUSH2 0x17da
000017d1: SWAP5
000017d2: SWAP4
000017d3: SWAP3
000017d4: SWAP2
000017d5: SWAP1
000017d6: PUSH2 0x2359
000017d9: JUMP
000017da: JUMPDEST
000017db: PUSH1 0x40
000017dd: MLOAD
000017de: DUP1
000017df: SWAP2
000017e0: SUB
000017e1: SWAP1
000017e2: LOG1
000017e3: JUMPDEST
000017e4: SWAP9
000017e5: SWAP8
000017e6: POP
000017e7: POP
000017e8: POP
000017e9: POP
000017ea: POP
000017eb: POP
000017ec: POP
000017ed: POP
000017ee: JUMP
000017ef: JUMPDEST
000017f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001805: DUP3
00001806: AND
00001807: PUSH1 0x00
00001809: SWAP1
0000180a: DUP2
0000180b: MSTORE
0000180c: PUSH1 0x01
0000180e: PUSH1 0x20
00001810: MSTORE
00001811: PUSH1 0x40
00001813: SWAP1
00001814: DUP2
00001815: SWAP1
00001816: KECCAK256
00001817: DUP1
00001818: SLOAD
00001819: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
0000183a: AND
0000183b: DUP4
0000183c: ISZERO
0000183d: ISZERO
0000183e: OR
0000183f: SWAP1
00001840: SSTORE
00001841: MLOAD
00001842: PUSH32 0xac9874a7a931a3f5c9f202c6d9cf40de5d21506993c9f9c38ca8265add89584c
00001863: SWAP1
00001864: PUSH2 0x1870
00001867: SWAP1
00001868: DUP5
00001869: SWAP1
0000186a: DUP5
0000186b: SWAP1
0000186c: PUSH2 0x2331
0000186f: JUMP
00001870: JUMPDEST
00001871: PUSH1 0x40
00001873: MLOAD
00001874: DUP1
00001875: SWAP2
00001876: SUB
00001877: SWAP1
00001878: LOG1
00001879: POP
0000187a: POP
0000187b: JUMP
0000187c: JUMPDEST
0000187d: PUSH1 0x00
0000187f: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
000018a0: PUSH32 0x0618c188edbe06a8ffa15e11b4f74493cfd6f23aba7fab610364d908072aac99
000018c1: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6
000018e2: PUSH2 0x18e9
000018e5: PUSH2 0x1b96
000018e8: JUMP
000018e9: JUMPDEST
000018ea: ADDRESS
000018eb: PUSH1 0x40
000018ed: MLOAD
000018ee: PUSH1 0x20
000018f0: ADD
000018f1: PUSH2 0x18fe
000018f4: SWAP6
000018f5: SWAP5
000018f6: SWAP4
000018f7: SWAP3
000018f8: SWAP2
000018f9: SWAP1
000018fa: PUSH2 0x2434
000018fd: JUMP
000018fe: JUMPDEST
000018ff: PUSH1 0x40
00001901: MLOAD
00001902: PUSH1 0x20
00001904: DUP2
00001905: DUP4
00001906: SUB
00001907: SUB
00001908: DUP2
00001909: MSTORE
0000190a: SWAP1
0000190b: PUSH1 0x40
0000190d: MSTORE
0000190e: DUP1
0000190f: MLOAD
00001910: SWAP1
00001911: PUSH1 0x20
00001913: ADD
00001914: KECCAK256
00001915: SWAP1
00001916: POP
00001917: SWAP1
00001918: JUMP
00001919: JUMPDEST
0000191a: PUSH2 0x0518
0000191d: DUP5
0000191e: DUP5
0000191f: DUP5
00001920: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001941: DUP6
00001942: PUSH2 0x1b9a
00001945: JUMP
00001946: JUMPDEST
00001947: DUP2
00001948: PUSH2 0x0412
0000194b: JUMPI
0000194c: PUSH2 0x0412
0000194f: DUP2
00001950: PUSH2 0x1bfe
00001953: JUMP
00001954: JUMPDEST
00001955: PUSH1 0x00
00001957: DUP3
00001958: DUP3
00001959: DUP3
0000195a: JUMPDEST
0000195b: PUSH1 0x80
0000195d: DUP2
0000195e: LT
0000195f: ISZERO
00001960: PUSH2 0x1a69
00001963: JUMPI
00001964: DUP2
00001965: DUP4
00001966: LT
00001967: PUSH2 0x196f
0000196a: JUMPI
0000196b: PUSH2 0x1a69
0000196e: JUMP
0000196f: JUMPDEST
00001970: PUSH1 0x02
00001972: DUP3
00001973: DUP5
00001974: ADD
00001975: DUP2
00001976: ADD
00001977: DIV
00001978: PUSH2 0x197f
0000197b: PUSH2 0x1ebb
0000197e: JUMP
0000197f: JUMPDEST
00001980: PUSH1 0x40
00001982: MLOAD
00001983: PUSH32 0x28d09d4700000000000000000000000000000000000000000000000000000000
000019a4: DUP2
000019a5: MSTORE
000019a6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019bb: PUSH32 0x000000000000000000000000c128a9954e6c874ea3d62ce62b468ba073093f25
000019dc: AND
000019dd: SWAP1
000019de: PUSH4 0x28d09d47
000019e3: SWAP1
000019e4: PUSH2 0x19f3
000019e7: SWAP1
000019e8: DUP14
000019e9: SWAP1
000019ea: DUP7
000019eb: SWAP1
000019ec: PUSH1 0x04
000019ee: ADD
000019ef: PUSH2 0x238f
000019f2: JUMP
000019f3: JUMPDEST
000019f4: PUSH1 0x80
000019f6: PUSH1 0x40
000019f8: MLOAD
000019f9: DUP1
000019fa: DUP4
000019fb: SUB
000019fc: DUP2
000019fd: DUP7
000019fe: DUP1
000019ff: EXTCODESIZE
00001a00: ISZERO
00001a01: DUP1
00001a02: ISZERO
00001a03: PUSH2 0x1a0b
00001a06: JUMPI
00001a07: PUSH1 0x00
00001a09: DUP1
00001a0a: REVERT
00001a0b: JUMPDEST
00001a0c: POP
00001a0d: GAS
00001a0e: STATICCALL
00001a0f: ISZERO
00001a10: DUP1
00001a11: ISZERO
00001a12: PUSH2 0x1a1f
00001a15: JUMPI
00001a16: RETURNDATASIZE
00001a17: PUSH1 0x00
00001a19: DUP1
00001a1a: RETURNDATACOPY
00001a1b: RETURNDATASIZE
00001a1c: PUSH1 0x00
00001a1e: REVERT
00001a1f: JUMPDEST
00001a20: POP
00001a21: POP
00001a22: POP
00001a23: POP
00001a24: PUSH1 0x40
00001a26: MLOAD
00001a27: RETURNDATASIZE
00001a28: PUSH1 0x1f
00001a2a: NOT
00001a2b: PUSH1 0x1f
00001a2d: DUP3
00001a2e: ADD
00001a2f: AND
00001a30: DUP3
00001a31: ADD
00001a32: DUP1
00001a33: PUSH1 0x40
00001a35: MSTORE
00001a36: POP
00001a37: DUP2
00001a38: ADD
00001a39: SWAP1
00001a3a: PUSH2 0x1a43
00001a3d: SWAP2
00001a3e: SWAP1
00001a3f: PUSH2 0x2206
00001a42: JUMP
00001a43: JUMPDEST
00001a44: SWAP1
00001a45: POP
00001a46: DUP9
00001a47: DUP2
00001a48: PUSH1 0x40
00001a4a: ADD
00001a4b: MLOAD
00001a4c: GT
00001a4d: PUSH2 0x1a58
00001a50: JUMPI
00001a51: DUP2
00001a52: SWAP5
00001a53: POP
00001a54: PUSH2 0x1a5f
00001a57: JUMP
00001a58: JUMPDEST
00001a59: PUSH1 0x01
00001a5b: DUP3
00001a5c: SUB
00001a5d: SWAP4
00001a5e: POP
00001a5f: JUMPDEST
00001a60: POP
00001a61: POP
00001a62: PUSH1 0x01
00001a64: ADD
00001a65: PUSH2 0x195a
00001a68: JUMP
00001a69: JUMPDEST
00001a6a: POP
00001a6b: SWAP1
00001a6c: SWAP7
00001a6d: SWAP6
00001a6e: POP
00001a6f: POP
00001a70: POP
00001a71: POP
00001a72: POP
00001a73: POP
00001a74: JUMP
00001a75: JUMPDEST
00001a76: PUSH1 0x00
00001a78: PUSH2 0x052d
00001a7b: PUSH3 0x093a7f
00001a7f: DUP4
00001a80: ADD
00001a81: PUSH2 0x1a9c
00001a84: JUMP
00001a85: JUMPDEST
00001a86: PUSH1 0x00
00001a88: DUP2
00001a89: DUP4
00001a8a: LT
00001a8b: ISZERO
00001a8c: PUSH2 0x1a95
00001a8f: JUMPI
00001a90: DUP2
00001a91: PUSH2 0x052a
00001a94: JUMP
00001a95: JUMPDEST
00001a96: POP
00001a97: SWAP1
00001a98: SWAP2
00001a99: SWAP1
00001a9a: POP
00001a9b: JUMP
00001a9c: JUMPDEST
00001a9d: PUSH3 0x093a80
00001aa1: SWAP1
00001aa2: DUP2
00001aa3: SWAP1
00001aa4: DIV
00001aa5: MUL
00001aa6: SWAP1
00001aa7: JUMP
00001aa8: JUMPDEST
00001aa9: PUSH1 0x00
00001aab: PUSH2 0x052a
00001aae: DUP4
00001aaf: DUP4
00001ab0: PUSH1 0x01
00001ab2: PUSH2 0x1c6b
00001ab5: JUMP
00001ab6: JUMPDEST
00001ab7: PUSH1 0x00
00001ab9: PUSH1 0x60
00001abb: DUP4
00001abc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ad1: AND
00001ad2: DUP4
00001ad3: PUSH1 0x40
00001ad5: MLOAD
00001ad6: PUSH2 0x1adf
00001ad9: SWAP2
00001ada: SWAP1
00001adb: PUSH2 0x228d
00001ade: JUMP
00001adf: JUMPDEST
00001ae0: PUSH1 0x00
00001ae2: PUSH1 0x40
00001ae4: MLOAD
00001ae5: DUP1
00001ae6: DUP4
00001ae7: SUB
00001ae8: DUP2
00001ae9: PUSH1 0x00
00001aeb: DUP7
00001aec: GAS
00001aed: CALL
00001aee: SWAP2
00001aef: POP
00001af0: POP
00001af1: RETURNDATASIZE
00001af2: DUP1
00001af3: PUSH1 0x00
00001af5: DUP2
00001af6: EQ
00001af7: PUSH2 0x1b1c
00001afa: JUMPI
00001afb: PUSH1 0x40
00001afd: MLOAD
00001afe: SWAP2
00001aff: POP
00001b00: PUSH1 0x1f
00001b02: NOT
00001b03: PUSH1 0x3f
00001b05: RETURNDATASIZE
00001b06: ADD
00001b07: AND
00001b08: DUP3
00001b09: ADD
00001b0a: PUSH1 0x40
00001b0c: MSTORE
00001b0d: RETURNDATASIZE
00001b0e: DUP3
00001b0f: MSTORE
00001b10: RETURNDATASIZE
00001b11: PUSH1 0x00
00001b13: PUSH1 0x20
00001b15: DUP5
00001b16: ADD
00001b17: RETURNDATACOPY
00001b18: PUSH2 0x1b21
00001b1b: JUMP
00001b1c: JUMPDEST
00001b1d: PUSH1 0x60
00001b1f: SWAP2
00001b20: POP
00001b21: JUMPDEST
00001b22: POP
00001b23: SWAP2
00001b24: POP
00001b25: SWAP2
00001b26: POP
00001b27: PUSH1 0x00
00001b29: DUP3
00001b2a: EQ
00001b2b: ISZERO
00001b2c: PUSH2 0x1b39
00001b2f: JUMPI
00001b30: RETURNDATASIZE
00001b31: PUSH1 0x00
00001b33: DUP1
00001b34: RETURNDATACOPY
00001b35: RETURNDATASIZE
00001b36: PUSH1 0x00
00001b38: REVERT
00001b39: JUMPDEST
00001b3a: PUSH2 0x0518
00001b3d: DUP2
00001b3e: MLOAD
00001b3f: PUSH1 0x00
00001b41: EQ
00001b42: DUP1
00001b43: PUSH2 0x1b5b
00001b46: JUMPI
00001b47: POP
00001b48: DUP2
00001b49: DUP1
00001b4a: PUSH1 0x20
00001b4c: ADD
00001b4d: SWAP1
00001b4e: MLOAD
00001b4f: DUP2
00001b50: ADD
00001b51: SWAP1
00001b52: PUSH2 0x1b5b
00001b55: SWAP2
00001b56: SWAP1
00001b57: PUSH2 0x21aa
00001b5a: JUMP
00001b5b: JUMPDEST
00001b5c: PUSH2 0x01a2
00001b5f: PUSH2 0x1946
00001b62: JUMP
00001b63: JUMPDEST
00001b64: PUSH1 0x00
00001b66: DUP2
00001b67: DUP4
00001b68: LT
00001b69: PUSH2 0x1a95
00001b6c: JUMPI
00001b6d: DUP2
00001b6e: PUSH2 0x052a
00001b71: JUMP
00001b72: JUMPDEST
00001b73: PUSH2 0x1b91
00001b76: DUP4
00001b77: PUSH4 0xa9059cbb
00001b7c: PUSH1 0xe0
00001b7e: SHL
00001b7f: DUP5
00001b80: DUP5
00001b81: PUSH1 0x40
00001b83: MLOAD
00001b84: PUSH1 0x24
00001b86: ADD
00001b87: PUSH2 0x12af
00001b8a: SWAP3
00001b8b: SWAP2
00001b8c: SWAP1
00001b8d: PUSH2 0x238f
00001b90: JUMP
00001b91: JUMPDEST
00001b92: POP
00001b93: POP
00001b94: POP
00001b95: JUMP
00001b96: JUMPDEST
00001b97: CHAINID
00001b98: SWAP1
00001b99: JUMP
00001b9a: JUMPDEST
00001b9b: PUSH1 0x00
00001b9d: PUSH2 0x1ba5
00001ba0: DUP6
00001ba1: PUSH2 0x1c81
00001ba4: JUMP
00001ba5: JUMPDEST
00001ba6: SWAP1
00001ba7: POP
00001ba8: PUSH2 0x1bbb
00001bab: PUSH2 0x1bb5
00001bae: DUP8
00001baf: DUP4
00001bb0: DUP8
00001bb1: PUSH2 0x1cba
00001bb4: JUMP
00001bb5: JUMPDEST
00001bb6: DUP4
00001bb7: PUSH2 0x1946
00001bba: JUMP
00001bbb: JUMPDEST
00001bbc: PUSH2 0x1bca
00001bbf: TIMESTAMP
00001bc0: DUP5
00001bc1: LT
00001bc2: ISZERO
00001bc3: PUSH2 0x01b8
00001bc6: PUSH2 0x1946
00001bc9: JUMP
00001bca: JUMPDEST
00001bcb: POP
00001bcc: POP
00001bcd: POP
00001bce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001be3: SWAP1
00001be4: SWAP3
00001be5: AND
00001be6: PUSH1 0x00
00001be8: SWAP1
00001be9: DUP2
00001bea: MSTORE
00001beb: PUSH1 0x20
00001bed: DUP2
00001bee: SWAP1
00001bef: MSTORE
00001bf0: PUSH1 0x40
00001bf2: SWAP1
00001bf3: KECCAK256
00001bf4: DUP1
00001bf5: SLOAD
00001bf6: PUSH1 0x01
00001bf8: ADD
00001bf9: SWAP1
00001bfa: SSTORE
00001bfb: POP
00001bfc: POP
00001bfd: JUMP
00001bfe: JUMPDEST
00001bff: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001c20: PUSH1 0x00
00001c22: SWAP1
00001c23: DUP2
00001c24: MSTORE
00001c25: PUSH1 0x20
00001c27: PUSH1 0x04
00001c29: MSTORE
00001c2a: PUSH1 0x07
00001c2c: PUSH1 0x24
00001c2e: MSTORE
00001c2f: PUSH7 0x42414c23000030
00001c37: PUSH1 0x0a
00001c39: DUP1
00001c3a: DUP5
00001c3b: DIV
00001c3c: DUP2
00001c3d: DUP2
00001c3e: MOD
00001c3f: PUSH1 0x30
00001c41: SWAP1
00001c42: DUP2
00001c43: ADD
00001c44: PUSH1 0x08
00001c46: SHL
00001c47: SWAP6
00001c48: DUP4
00001c49: SWAP1
00001c4a: MOD
00001c4b: SWAP6
00001c4c: SWAP1
00001c4d: SWAP6
00001c4e: ADD
00001c4f: SWAP1
00001c50: DUP3
00001c51: SWAP1
00001c52: DIV
00001c53: SWAP2
00001c54: DUP3
00001c55: MOD
00001c56: SWAP1
00001c57: SWAP5
00001c58: ADD
00001c59: PUSH1 0x10
00001c5b: SHL
00001c5c: SWAP4
00001c5d: SWAP1
00001c5e: SWAP4
00001c5f: ADD
00001c60: ADD
00001c61: PUSH1 0xc8
00001c63: SHL
00001c64: PUSH1 0x44
00001c66: MSTORE
00001c67: PUSH1 0x64
00001c69: SWAP1
00001c6a: REVERT
00001c6b: JUMPDEST
00001c6c: PUSH1 0x00
00001c6e: PUSH2 0x1c7a
00001c71: DUP5
00001c72: DUP5
00001c73: GT
00001c74: ISZERO
00001c75: DUP4
00001c76: PUSH2 0x1946
00001c79: JUMP
00001c7a: JUMPDEST
00001c7b: POP
00001c7c: POP
00001c7d: SWAP1
00001c7e: SUB
00001c7f: SWAP1
00001c80: JUMP
00001c81: JUMPDEST
00001c82: PUSH1 0x00
00001c84: PUSH2 0x1c8b
00001c87: PUSH2 0x187c
00001c8a: JUMP
00001c8b: JUMPDEST
00001c8c: DUP3
00001c8d: PUSH1 0x40
00001c8f: MLOAD
00001c90: PUSH1 0x20
00001c92: ADD
00001c93: PUSH2 0x1c9d
00001c96: SWAP3
00001c97: SWAP2
00001c98: SWAP1
00001c99: PUSH2 0x22a9
00001c9c: JUMP
00001c9d: JUMPDEST
00001c9e: PUSH1 0x40
00001ca0: MLOAD
00001ca1: PUSH1 0x20
00001ca3: DUP2
00001ca4: DUP4
00001ca5: SUB
00001ca6: SUB
00001ca7: DUP2
00001ca8: MSTORE
00001ca9: SWAP1
00001caa: PUSH1 0x40
00001cac: MSTORE
00001cad: DUP1
00001cae: MLOAD
00001caf: SWAP1
00001cb0: PUSH1 0x20
00001cb2: ADD
00001cb3: KECCAK256
00001cb4: SWAP1
00001cb5: POP
00001cb6: SWAP2
00001cb7: SWAP1
00001cb8: POP
00001cb9: JUMP
00001cba: JUMPDEST
00001cbb: PUSH1 0x00
00001cbd: PUSH2 0x1cdb
00001cc0: DUP5
00001cc1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cd6: AND
00001cd7: PUSH2 0x1dc2
00001cda: JUMP
00001cdb: JUMPDEST
00001cdc: ISZERO
00001cdd: PUSH2 0x1db0
00001ce0: JUMPI
00001ce1: PUSH1 0x40
00001ce3: MLOAD
00001ce4: PUSH32 0x1626ba7e00000000000000000000000000000000000000000000000000000000
00001d05: DUP1
00001d06: DUP3
00001d07: MSTORE
00001d08: SWAP1
00001d09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d1e: DUP7
00001d1f: AND
00001d20: SWAP1
00001d21: PUSH4 0x1626ba7e
00001d26: SWAP1
00001d27: PUSH2 0x1d36
00001d2a: SWAP1
00001d2b: DUP8
00001d2c: SWAP1
00001d2d: DUP8
00001d2e: SWAP1
00001d2f: PUSH1 0x04
00001d31: ADD
00001d32: PUSH2 0x246d
00001d35: JUMP
00001d36: JUMPDEST
00001d37: PUSH1 0x20
00001d39: PUSH1 0x40
00001d3b: MLOAD
00001d3c: DUP1
00001d3d: DUP4
00001d3e: SUB
00001d3f: DUP2
00001d40: DUP7
00001d41: DUP1
00001d42: EXTCODESIZE
00001d43: ISZERO
00001d44: DUP1
00001d45: ISZERO
00001d46: PUSH2 0x1d4e
00001d49: JUMPI
00001d4a: PUSH1 0x00
00001d4c: DUP1
00001d4d: REVERT
00001d4e: JUMPDEST
00001d4f: POP
00001d50: GAS
00001d51: STATICCALL
00001d52: ISZERO
00001d53: DUP1
00001d54: ISZERO
00001d55: PUSH2 0x1d62
00001d58: JUMPI
00001d59: RETURNDATASIZE
00001d5a: PUSH1 0x00
00001d5c: DUP1
00001d5d: RETURNDATACOPY
00001d5e: RETURNDATASIZE
00001d5f: PUSH1 0x00
00001d61: REVERT
00001d62: JUMPDEST
00001d63: POP
00001d64: POP
00001d65: POP
00001d66: POP
00001d67: PUSH1 0x40
00001d69: MLOAD
00001d6a: RETURNDATASIZE
00001d6b: PUSH1 0x1f
00001d6d: NOT
00001d6e: PUSH1 0x1f
00001d70: DUP3
00001d71: ADD
00001d72: AND
00001d73: DUP3
00001d74: ADD
00001d75: DUP1
00001d76: PUSH1 0x40
00001d78: MSTORE
00001d79: POP
00001d7a: DUP2
00001d7b: ADD
00001d7c: SWAP1
00001d7d: PUSH2 0x1d86
00001d80: SWAP2
00001d81: SWAP1
00001d82: PUSH2 0x21c6
00001d85: JUMP
00001d86: JUMPDEST
00001d87: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00001da8: AND
00001da9: EQ
00001daa: SWAP1
00001dab: POP
00001dac: PUSH2 0x0653
00001daf: JUMP
00001db0: JUMPDEST
00001db1: PUSH2 0x1dbb
00001db4: DUP5
00001db5: DUP5
00001db6: DUP5
00001db7: PUSH2 0x1dc8
00001dba: JUMP
00001dbb: JUMPDEST
00001dbc: SWAP1
00001dbd: POP
00001dbe: PUSH2 0x0653
00001dc1: JUMP
00001dc2: JUMPDEST
00001dc3: EXTCODESIZE
00001dc4: ISZERO
00001dc5: ISZERO
00001dc6: SWAP1
00001dc7: JUMP
00001dc8: JUMPDEST
00001dc9: PUSH1 0x00
00001dcb: PUSH2 0x1dda
00001dce: DUP3
00001dcf: MLOAD
00001dd0: PUSH1 0x41
00001dd2: EQ
00001dd3: PUSH2 0x01b9
00001dd6: PUSH2 0x1946
00001dd9: JUMP
00001dda: JUMPDEST
00001ddb: PUSH1 0x20
00001ddd: DUP3
00001dde: DUP2
00001ddf: ADD
00001de0: MLOAD
00001de1: PUSH1 0x40
00001de3: DUP1
00001de4: DUP6
00001de5: ADD
00001de6: MLOAD
00001de7: PUSH1 0x60
00001de9: DUP7
00001dea: ADD
00001deb: MLOAD
00001dec: DUP3
00001ded: MLOAD
00001dee: PUSH1 0x00
00001df0: DUP1
00001df1: DUP3
00001df2: MSTORE
00001df3: SWAP6
00001df4: ADD
00001df5: SWAP3
00001df6: DUP4
00001df7: SWAP1
00001df8: MSTORE
00001df9: SWAP3
00001dfa: SWAP4
00001dfb: SWAP1
00001dfc: SWAP3
00001dfd: DUP2
00001dfe: BYTE
00001dff: SWAP2
00001e00: PUSH1 0x01
00001e02: SWAP1
00001e03: PUSH2 0x1e13
00001e06: SWAP1
00001e07: DUP10
00001e08: SWAP1
00001e09: DUP6
00001e0a: SWAP1
00001e0b: DUP9
00001e0c: SWAP1
00001e0d: DUP9
00001e0e: SWAP1
00001e0f: PUSH2 0x24c5
00001e12: JUMP
00001e13: JUMPDEST
00001e14: PUSH1 0x20
00001e16: PUSH1 0x40
00001e18: MLOAD
00001e19: PUSH1 0x20
00001e1b: DUP2
00001e1c: SUB
00001e1d: SWAP1
00001e1e: DUP1
00001e1f: DUP5
00001e20: SUB
00001e21: SWAP1
00001e22: DUP6
00001e23: GAS
00001e24: STATICCALL
00001e25: ISZERO
00001e26: DUP1
00001e27: ISZERO
00001e28: PUSH2 0x1e35
00001e2b: JUMPI
00001e2c: RETURNDATASIZE
00001e2d: PUSH1 0x00
00001e2f: DUP1
00001e30: RETURNDATACOPY
00001e31: RETURNDATASIZE
00001e32: PUSH1 0x00
00001e34: REVERT
00001e35: JUMPDEST
00001e36: POP
00001e37: POP
00001e38: PUSH1 0x40
00001e3a: MLOAD
00001e3b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001e5c: ADD
00001e5d: MLOAD
00001e5e: SWAP2
00001e5f: POP
00001e60: POP
00001e61: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e76: DUP2
00001e77: AND
00001e78: ISZERO
00001e79: DUP1
00001e7a: ISZERO
00001e7b: SWAP1
00001e7c: PUSH2 0x17e3
00001e7f: JUMPI
00001e80: POP
00001e81: DUP8
00001e82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e97: AND
00001e98: DUP2
00001e99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001eae: AND
00001eaf: EQ
00001eb0: SWAP9
00001eb1: SWAP8
00001eb2: POP
00001eb3: POP
00001eb4: POP
00001eb5: POP
00001eb6: POP
00001eb7: POP
00001eb8: POP
00001eb9: POP
00001eba: JUMP
00001ebb: JUMPDEST
00001ebc: PUSH1 0x40
00001ebe: MLOAD
00001ebf: DUP1
00001ec0: PUSH1 0x80
00001ec2: ADD
00001ec3: PUSH1 0x40
00001ec5: MSTORE
00001ec6: DUP1
00001ec7: PUSH1 0x00
00001ec9: PUSH1 0x0f
00001ecb: SIGNEXTEND
00001ecc: DUP2
00001ecd: MSTORE
00001ece: PUSH1 0x20
00001ed0: ADD
00001ed1: PUSH1 0x00
00001ed3: PUSH1 0x0f
00001ed5: SIGNEXTEND
00001ed6: DUP2
00001ed7: MSTORE
00001ed8: PUSH1 0x20
00001eda: ADD
00001edb: PUSH1 0x00
00001edd: DUP2
00001ede: MSTORE
00001edf: PUSH1 0x20
00001ee1: ADD
00001ee2: PUSH1 0x00
00001ee4: DUP2
00001ee5: MSTORE
00001ee6: POP
00001ee7: SWAP1
00001ee8: JUMP
00001ee9: JUMPDEST
00001eea: PUSH1 0x00
00001eec: DUP1
00001eed: DUP4
00001eee: PUSH1 0x1f
00001ef0: DUP5
00001ef1: ADD
00001ef2: SLT
00001ef3: PUSH2 0x1efa
00001ef6: JUMPI
00001ef7: DUP2
00001ef8: DUP3
00001ef9: REVERT
00001efa: JUMPDEST
00001efb: POP
00001efc: DUP2
00001efd: CALLDATALOAD
00001efe: PUSH8 0xffffffffffffffff
00001f07: DUP2
00001f08: GT
00001f09: ISZERO
00001f0a: PUSH2 0x1f11
00001f0d: JUMPI
00001f0e: DUP2
00001f0f: DUP3
00001f10: REVERT
00001f11: JUMPDEST
00001f12: PUSH1 0x20
00001f14: DUP4
00001f15: ADD
00001f16: SWAP2
00001f17: POP
00001f18: DUP4
00001f19: PUSH1 0x20
00001f1b: DUP1
00001f1c: DUP4
00001f1d: MUL
00001f1e: DUP6
00001f1f: ADD
00001f20: ADD
00001f21: GT
00001f22: ISZERO
00001f23: PUSH2 0x1f2b
00001f26: JUMPI
00001f27: PUSH1 0x00
00001f29: DUP1
00001f2a: REVERT
00001f2b: JUMPDEST
00001f2c: SWAP3
00001f2d: POP
00001f2e: SWAP3
00001f2f: SWAP1
00001f30: POP
00001f31: JUMP
00001f32: JUMPDEST
00001f33: DUP1
00001f34: MLOAD
00001f35: PUSH1 0x0f
00001f37: DUP2
00001f38: SWAP1
00001f39: SIGNEXTEND
00001f3a: DUP2
00001f3b: EQ
00001f3c: PUSH2 0x052d
00001f3f: JUMPI
00001f40: PUSH1 0x00
00001f42: DUP1
00001f43: REVERT
00001f44: JUMPDEST
00001f45: PUSH1 0x00
00001f47: PUSH1 0x20
00001f49: DUP3
00001f4a: DUP5
00001f4b: SUB
00001f4c: SLT
00001f4d: ISZERO
00001f4e: PUSH2 0x1f55
00001f51: JUMPI
00001f52: DUP1
00001f53: DUP2
00001f54: REVERT
00001f55: JUMPDEST
00001f56: DUP2
00001f57: CALLDATALOAD
00001f58: PUSH2 0x0653
00001f5b: DUP2
00001f5c: PUSH2 0x25f8
00001f5f: JUMP
00001f60: JUMPDEST
00001f61: PUSH1 0x00
00001f63: DUP1
00001f64: PUSH1 0x00
00001f66: PUSH1 0x40
00001f68: DUP5
00001f69: DUP7
00001f6a: SUB
00001f6b: SLT
00001f6c: ISZERO
00001f6d: PUSH2 0x1f74
00001f70: JUMPI
00001f71: DUP2
00001f72: DUP3
00001f73: REVERT
00001f74: JUMPDEST
00001f75: DUP4
00001f76: CALLDATALOAD
00001f77: PUSH2 0x1f7f
00001f7a: DUP2
00001f7b: PUSH2 0x25f8
00001f7e: JUMP
00001f7f: JUMPDEST
00001f80: SWAP3
00001f81: POP
00001f82: PUSH1 0x20
00001f84: DUP5
00001f85: ADD
00001f86: CALLDATALOAD
00001f87: PUSH8 0xffffffffffffffff
00001f90: DUP2
00001f91: GT
00001f92: ISZERO
00001f93: PUSH2 0x1f9a
00001f96: JUMPI
00001f97: DUP3
00001f98: DUP4
00001f99: REVERT
00001f9a: JUMPDEST
00001f9b: PUSH2 0x1fa6
00001f9e: DUP7
00001f9f: DUP3
00001fa0: DUP8
00001fa1: ADD
00001fa2: PUSH2 0x1ee9
00001fa5: JUMP
00001fa6: JUMPDEST
00001fa7: SWAP5
00001fa8: SWAP8
00001fa9: SWAP1
00001faa: SWAP7
00001fab: POP
00001fac: SWAP4
00001fad: SWAP5
00001fae: POP
00001faf: POP
00001fb0: POP
00001fb1: POP
00001fb2: JUMP
00001fb3: JUMPDEST
00001fb4: PUSH1 0x00
00001fb6: DUP1
00001fb7: PUSH1 0x00
00001fb9: PUSH1 0x60
00001fbb: DUP5
00001fbc: DUP7
00001fbd: SUB
00001fbe: SLT
00001fbf: ISZERO
00001fc0: PUSH2 0x1fc7
00001fc3: JUMPI
00001fc4: DUP3
00001fc5: DUP4
00001fc6: REVERT
00001fc7: JUMPDEST
00001fc8: DUP4
00001fc9: CALLDATALOAD
00001fca: PUSH2 0x1fd2
00001fcd: DUP2
00001fce: PUSH2 0x25f8
00001fd1: JUMP
00001fd2: JUMPDEST
00001fd3: SWAP3
00001fd4: POP
00001fd5: PUSH1 0x20
00001fd7: DUP5
00001fd8: DUP2
00001fd9: ADD
00001fda: CALLDATALOAD
00001fdb: PUSH2 0x1fe3
00001fde: DUP2
00001fdf: PUSH2 0x261a
00001fe2: JUMP
00001fe3: JUMPDEST
00001fe4: SWAP3
00001fe5: POP
00001fe6: PUSH1 0x40
00001fe8: DUP6
00001fe9: ADD
00001fea: CALLDATALOAD
00001feb: PUSH8 0xffffffffffffffff
00001ff4: DUP1
00001ff5: DUP3
00001ff6: GT
00001ff7: ISZERO
00001ff8: PUSH2 0x1fff
00001ffb: JUMPI
00001ffc: DUP4
00001ffd: DUP5
00001ffe: REVERT
00001fff: JUMPDEST
00002000: DUP2
00002001: DUP8
00002002: ADD
00002003: SWAP2
00002004: POP
00002005: DUP8
00002006: PUSH1 0x1f
00002008: DUP4
00002009: ADD
0000200a: SLT
0000200b: PUSH2 0x2012
0000200e: JUMPI
0000200f: DUP4
00002010: DUP5
00002011: REVERT
00002012: JUMPDEST
00002013: DUP2
00002014: CALLDATALOAD
00002015: DUP2
00002016: DUP2
00002017: GT
00002018: ISZERO
00002019: PUSH2 0x2020
0000201c: JUMPI
0000201d: DUP5
0000201e: DUP6
0000201f: REVERT
00002020: JUMPDEST
00002021: PUSH2 0x2050
00002024: DUP5
00002025: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00002046: PUSH1 0x1f
00002048: DUP5
00002049: ADD
0000204a: AND
0000204b: ADD
0000204c: PUSH2 0x25a5
0000204f: JUMP
00002050: JUMPDEST
00002051: SWAP2
00002052: POP
00002053: DUP1
00002054: DUP3
00002055: MSTORE
00002056: DUP9
00002057: DUP5
00002058: DUP3
00002059: DUP6
0000205a: ADD
0000205b: ADD
0000205c: GT
0000205d: ISZERO
0000205e: PUSH2 0x2065
00002061: JUMPI
00002062: DUP5
00002063: DUP6
00002064: REVERT
00002065: JUMPDEST
00002066: DUP1
00002067: DUP5
00002068: DUP5
00002069: ADD
0000206a: DUP6
0000206b: DUP5
0000206c: ADD
0000206d: CALLDATACOPY
0000206e: DUP5
0000206f: DUP5
00002070: DUP3
00002071: DUP5
00002072: ADD
00002073: ADD
00002074: MSTORE
00002075: POP
00002076: DUP1
00002077: SWAP4
00002078: POP
00002079: POP
0000207a: POP
0000207b: POP
0000207c: SWAP3
0000207d: POP
0000207e: SWAP3
0000207f: POP
00002080: SWAP3
00002081: JUMP
00002082: JUMPDEST
00002083: PUSH1 0x00
00002085: DUP1
00002086: PUSH1 0x40
00002088: DUP4
00002089: DUP6
0000208a: SUB
0000208b: SLT
0000208c: ISZERO
0000208d: PUSH2 0x2094
00002090: JUMPI
00002091: DUP2
00002092: DUP3
00002093: REVERT
00002094: JUMPDEST
00002095: DUP3
00002096: CALLDATALOAD
00002097: PUSH2 0x209f
0000209a: DUP2
0000209b: PUSH2 0x25f8
0000209e: JUMP
0000209f: JUMPDEST
000020a0: SWAP2
000020a1: POP
000020a2: PUSH1 0x20
000020a4: DUP4
000020a5: ADD
000020a6: CALLDATALOAD
000020a7: PUSH2 0x20af
000020aa: DUP2
000020ab: PUSH2 0x25f8
000020ae: JUMP
000020af: JUMPDEST
000020b0: DUP1
000020b1: SWAP2
000020b2: POP
000020b3: POP
000020b4: SWAP3
000020b5: POP
000020b6: SWAP3
000020b7: SWAP1
000020b8: POP
000020b9: JUMP
000020ba: JUMPDEST
000020bb: PUSH1 0x00
000020bd: DUP1
000020be: PUSH1 0x40
000020c0: DUP4
000020c1: DUP6
000020c2: SUB
000020c3: SLT
000020c4: ISZERO
000020c5: PUSH2 0x20cc
000020c8: JUMPI
000020c9: DUP2
000020ca: DUP3
000020cb: REVERT
000020cc: JUMPDEST
000020cd: DUP3
000020ce: CALLDATALOAD
000020cf: PUSH2 0x20d7
000020d2: DUP2
000020d3: PUSH2 0x25f8
000020d6: JUMP
000020d7: JUMPDEST
000020d8: SWAP5
000020d9: PUSH1 0x20
000020db: SWAP4
000020dc: SWAP1
000020dd: SWAP4
000020de: ADD
000020df: CALLDATALOAD
000020e0: SWAP4
000020e1: POP
000020e2: POP
000020e3: POP
000020e4: JUMP
000020e5: JUMPDEST
000020e6: PUSH1 0x00
000020e8: DUP1
000020e9: PUSH1 0x20
000020eb: DUP4
000020ec: DUP6
000020ed: SUB
000020ee: SLT
000020ef: ISZERO
000020f0: PUSH2 0x20f7
000020f3: JUMPI
000020f4: DUP2
000020f5: DUP3
000020f6: REVERT
000020f7: JUMPDEST
000020f8: DUP3
000020f9: CALLDATALOAD
000020fa: PUSH8 0xffffffffffffffff
00002103: DUP2
00002104: GT
00002105: ISZERO
00002106: PUSH2 0x210d
00002109: JUMPI
0000210a: DUP3
0000210b: DUP4
0000210c: REVERT
0000210d: JUMPDEST
0000210e: PUSH2 0x2119
00002111: DUP6
00002112: DUP3
00002113: DUP7
00002114: ADD
00002115: PUSH2 0x1ee9
00002118: JUMP
00002119: JUMPDEST
0000211a: SWAP1
0000211b: SWAP7
0000211c: SWAP1
0000211d: SWAP6
0000211e: POP
0000211f: SWAP4
00002120: POP
00002121: POP
00002122: POP
00002123: POP
00002124: JUMP
00002125: JUMPDEST
00002126: PUSH1 0x00
00002128: DUP1
00002129: PUSH1 0x00
0000212b: DUP1
0000212c: PUSH1 0x40
0000212e: DUP6
0000212f: DUP8
00002130: SUB
00002131: SLT
00002132: ISZERO
00002133: PUSH2 0x213a
00002136: JUMPI
00002137: DUP1
00002138: DUP2
00002139: REVERT
0000213a: JUMPDEST
0000213b: DUP5
0000213c: CALLDATALOAD
0000213d: PUSH8 0xffffffffffffffff
00002146: DUP1
00002147: DUP3
00002148: GT
00002149: ISZERO
0000214a: PUSH2 0x2151
0000214d: JUMPI
0000214e: DUP3
0000214f: DUP4
00002150: REVERT
00002151: JUMPDEST
00002152: PUSH2 0x215d
00002155: DUP9
00002156: DUP4
00002157: DUP10
00002158: ADD
00002159: PUSH2 0x1ee9
0000215c: JUMP
0000215d: JUMPDEST
0000215e: SWAP1
0000215f: SWAP7
00002160: POP
00002161: SWAP5
00002162: POP
00002163: PUSH1 0x20
00002165: DUP8
00002166: ADD
00002167: CALLDATALOAD
00002168: SWAP2
00002169: POP
0000216a: DUP1
0000216b: DUP3
0000216c: GT
0000216d: ISZERO
0000216e: PUSH2 0x2175
00002171: JUMPI
00002172: DUP3
00002173: DUP4
00002174: REVERT
00002175: JUMPDEST
00002176: POP
00002177: PUSH2 0x2182
0000217a: DUP8
0000217b: DUP3
0000217c: DUP9
0000217d: ADD
0000217e: PUSH2 0x1ee9
00002181: JUMP
00002182: JUMPDEST
00002183: SWAP6
00002184: SWAP9
00002185: SWAP5
00002186: SWAP8
00002187: POP
00002188: SWAP6
00002189: POP
0000218a: POP
0000218b: POP
0000218c: POP
0000218d: JUMP
0000218e: JUMPDEST
0000218f: PUSH1 0x00
00002191: PUSH1 0x20
00002193: DUP3
00002194: DUP5
00002195: SUB
00002196: SLT
00002197: ISZERO
00002198: PUSH2 0x219f
0000219b: JUMPI
0000219c: DUP1
0000219d: DUP2
0000219e: REVERT
0000219f: JUMPDEST
000021a0: DUP2
000021a1: CALLDATALOAD
000021a2: PUSH2 0x0653
000021a5: DUP2
000021a6: PUSH2 0x261a
000021a9: JUMP
000021aa: JUMPDEST
000021ab: PUSH1 0x00
000021ad: PUSH1 0x20
000021af: DUP3
000021b0: DUP5
000021b1: SUB
000021b2: SLT
000021b3: ISZERO
000021b4: PUSH2 0x21bb
000021b7: JUMPI
000021b8: DUP1
000021b9: DUP2
000021ba: REVERT
000021bb: JUMPDEST
000021bc: DUP2
000021bd: MLOAD
000021be: PUSH2 0x0653
000021c1: DUP2
000021c2: PUSH2 0x261a
000021c5: JUMP
000021c6: JUMPDEST
000021c7: PUSH1 0x00
000021c9: PUSH1 0x20
000021cb: DUP3
000021cc: DUP5
000021cd: SUB
000021ce: SLT
000021cf: ISZERO
000021d0: PUSH2 0x21d7
000021d3: JUMPI
000021d4: DUP1
000021d5: DUP2
000021d6: REVERT
000021d7: JUMPDEST
000021d8: DUP2
000021d9: MLOAD
000021da: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000021fb: DUP2
000021fc: AND
000021fd: DUP2
000021fe: EQ
000021ff: PUSH2 0x0653
00002202: JUMPI
00002203: DUP2
00002204: DUP3
00002205: REVERT
00002206: JUMPDEST
00002207: PUSH1 0x00
00002209: PUSH1 0x80
0000220b: DUP3
0000220c: DUP5
0000220d: SUB
0000220e: SLT
0000220f: ISZERO
00002210: PUSH2 0x2217
00002213: JUMPI
00002214: DUP1
00002215: DUP2
00002216: REVERT
00002217: JUMPDEST
00002218: PUSH2 0x2221
0000221b: PUSH1 0x80
0000221d: PUSH2 0x25a5
00002220: JUMP
00002221: JUMPDEST
00002222: PUSH2 0x222b
00002225: DUP5
00002226: DUP5
00002227: PUSH2 0x1f32
0000222a: JUMP
0000222b: JUMPDEST
0000222c: DUP2
0000222d: MSTORE
0000222e: PUSH2 0x223a
00002231: DUP5
00002232: PUSH1 0x20
00002234: DUP6
00002235: ADD
00002236: PUSH2 0x1f32
00002239: JUMP
0000223a: JUMPDEST
0000223b: PUSH1 0x20
0000223d: DUP3
0000223e: ADD
0000223f: MSTORE
00002240: PUSH1 0x40
00002242: DUP4
00002243: ADD
00002244: MLOAD
00002245: PUSH1 0x40
00002247: DUP3
00002248: ADD
00002249: MSTORE
0000224a: PUSH1 0x60
0000224c: DUP4
0000224d: ADD
0000224e: MLOAD
0000224f: PUSH1 0x60
00002251: DUP3
00002252: ADD
00002253: MSTORE
00002254: DUP1
00002255: SWAP2
00002256: POP
00002257: POP
00002258: SWAP3
00002259: SWAP2
0000225a: POP
0000225b: POP
0000225c: JUMP
0000225d: JUMPDEST
0000225e: PUSH1 0x00
00002260: PUSH1 0x20
00002262: DUP3
00002263: DUP5
00002264: SUB
00002265: SLT
00002266: ISZERO
00002267: PUSH2 0x226e
0000226a: JUMPI
0000226b: DUP1
0000226c: DUP2
0000226d: REVERT
0000226e: JUMPDEST
0000226f: POP
00002270: CALLDATALOAD
00002271: SWAP2
00002272: SWAP1
00002273: POP
00002274: JUMP
00002275: JUMPDEST
00002276: PUSH1 0x00
00002278: PUSH1 0x20
0000227a: DUP3
0000227b: DUP5
0000227c: SUB
0000227d: SLT
0000227e: ISZERO
0000227f: PUSH2 0x2286
00002282: JUMPI
00002283: DUP1
00002284: DUP2
00002285: REVERT
00002286: JUMPDEST
00002287: POP
00002288: MLOAD
00002289: SWAP2
0000228a: SWAP1
0000228b: POP
0000228c: JUMP
0000228d: JUMPDEST
0000228e: PUSH1 0x00
00002290: DUP3
00002291: MLOAD
00002292: PUSH2 0x229f
00002295: DUP2
00002296: DUP5
00002297: PUSH1 0x20
00002299: DUP8
0000229a: ADD
0000229b: PUSH2 0x25cc
0000229e: JUMP
0000229f: JUMPDEST
000022a0: SWAP2
000022a1: SWAP1
000022a2: SWAP2
000022a3: ADD
000022a4: SWAP3
000022a5: SWAP2
000022a6: POP
000022a7: POP
000022a8: JUMP
000022a9: JUMPDEST
000022aa: PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000
000022cb: DUP2
000022cc: MSTORE
000022cd: PUSH1 0x02
000022cf: DUP2
000022d0: ADD
000022d1: SWAP3
000022d2: SWAP1
000022d3: SWAP3
000022d4: MSTORE
000022d5: PUSH1 0x22
000022d7: DUP3
000022d8: ADD
000022d9: MSTORE
000022da: PUSH1 0x42
000022dc: ADD
000022dd: SWAP1
000022de: JUMP
000022df: JUMPDEST
000022e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022f5: SWAP2
000022f6: SWAP1
000022f7: SWAP2
000022f8: AND
000022f9: DUP2
000022fa: MSTORE
000022fb: PUSH1 0x20
000022fd: ADD
000022fe: SWAP1
000022ff: JUMP
00002300: JUMPDEST
00002301: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002316: SWAP4
00002317: DUP5
00002318: AND
00002319: DUP2
0000231a: MSTORE
0000231b: SWAP2
0000231c: SWAP1
0000231d: SWAP3
0000231e: AND
0000231f: PUSH1 0x20
00002321: DUP3
00002322: ADD
00002323: MSTORE
00002324: PUSH1 0x40
00002326: DUP2
00002327: ADD
00002328: SWAP2
00002329: SWAP1
0000232a: SWAP2
0000232b: MSTORE
0000232c: PUSH1 0x60
0000232e: ADD
0000232f: SWAP1
00002330: JUMP
00002331: JUMPDEST
00002332: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002347: SWAP3
00002348: SWAP1
00002349: SWAP3
0000234a: AND
0000234b: DUP3
0000234c: MSTORE
0000234d: ISZERO
0000234e: ISZERO
0000234f: PUSH1 0x20
00002351: DUP3
00002352: ADD
00002353: MSTORE
00002354: PUSH1 0x40
00002356: ADD
00002357: SWAP1
00002358: JUMP
00002359: JUMPDEST
0000235a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000236f: SWAP5
00002370: DUP6
00002371: AND
00002372: DUP2
00002373: MSTORE
00002374: SWAP3
00002375: SWAP1
00002376: SWAP4
00002377: AND
00002378: PUSH1 0x20
0000237a: DUP4
0000237b: ADD
0000237c: MSTORE
0000237d: PUSH1 0x40
0000237f: DUP3
00002380: ADD
00002381: MSTORE
00002382: PUSH1 0x60
00002384: DUP2
00002385: ADD
00002386: SWAP2
00002387: SWAP1
00002388: SWAP2
00002389: MSTORE
0000238a: PUSH1 0x80
0000238c: ADD
0000238d: SWAP1
0000238e: JUMP
0000238f: JUMPDEST
00002390: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023a5: SWAP3
000023a6: SWAP1
000023a7: SWAP3
000023a8: AND
000023a9: DUP3
000023aa: MSTORE
000023ab: PUSH1 0x20
000023ad: DUP3
000023ae: ADD
000023af: MSTORE
000023b0: PUSH1 0x40
000023b2: ADD
000023b3: SWAP1
000023b4: JUMP
000023b5: JUMPDEST
000023b6: PUSH1 0x20
000023b8: DUP1
000023b9: DUP3
000023ba: MSTORE
000023bb: DUP3
000023bc: MLOAD
000023bd: DUP3
000023be: DUP3
000023bf: ADD
000023c0: DUP2
000023c1: SWAP1
000023c2: MSTORE
000023c3: PUSH1 0x00
000023c5: SWAP2
000023c6: SWAP1
000023c7: DUP5
000023c8: DUP3
000023c9: ADD
000023ca: SWAP1
000023cb: PUSH1 0x40
000023cd: DUP6
000023ce: ADD
000023cf: SWAP1
000023d0: DUP5
000023d1: JUMPDEST
000023d2: DUP2
000023d3: DUP2
000023d4: LT
000023d5: ISZERO
000023d6: PUSH2 0x1a69
000023d9: JUMPI
000023da: DUP4
000023db: MLOAD
000023dc: DUP4
000023dd: MSTORE
000023de: SWAP3
000023df: DUP5
000023e0: ADD
000023e1: SWAP3
000023e2: SWAP2
000023e3: DUP5
000023e4: ADD
000023e5: SWAP2
000023e6: PUSH1 0x01
000023e8: ADD
000023e9: PUSH2 0x23d1
000023ec: JUMP
000023ed: JUMPDEST
000023ee: SWAP1
000023ef: ISZERO
000023f0: ISZERO
000023f1: DUP2
000023f2: MSTORE
000023f3: PUSH1 0x20
000023f5: ADD
000023f6: SWAP1
000023f7: JUMP
000023f8: JUMPDEST
000023f9: SWAP1
000023fa: DUP2
000023fb: MSTORE
000023fc: PUSH1 0x20
000023fe: ADD
000023ff: SWAP1
00002400: JUMP
00002401: JUMPDEST
00002402: SWAP4
00002403: DUP5
00002404: MSTORE
00002405: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000241a: SWAP3
0000241b: SWAP1
0000241c: SWAP3
0000241d: AND
0000241e: PUSH1 0x20
00002420: DUP5
00002421: ADD
00002422: MSTORE
00002423: ISZERO
00002424: ISZERO
00002425: PUSH1 0x40
00002427: DUP4
00002428: ADD
00002429: MSTORE
0000242a: PUSH1 0x60
0000242c: DUP3
0000242d: ADD
0000242e: MSTORE
0000242f: PUSH1 0x80
00002431: ADD
00002432: SWAP1
00002433: JUMP
00002434: JUMPDEST
00002435: SWAP5
00002436: DUP6
00002437: MSTORE
00002438: PUSH1 0x20
0000243a: DUP6
0000243b: ADD
0000243c: SWAP4
0000243d: SWAP1
0000243e: SWAP4
0000243f: MSTORE
00002440: PUSH1 0x40
00002442: DUP5
00002443: ADD
00002444: SWAP2
00002445: SWAP1
00002446: SWAP2
00002447: MSTORE
00002448: PUSH1 0x60
0000244a: DUP4
0000244b: ADD
0000244c: MSTORE
0000244d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002462: AND
00002463: PUSH1 0x80
00002465: DUP3
00002466: ADD
00002467: MSTORE
00002468: PUSH1 0xa0
0000246a: ADD
0000246b: SWAP1
0000246c: JUMP
0000246d: JUMPDEST
0000246e: PUSH1 0x00
00002470: DUP4
00002471: DUP3
00002472: MSTORE
00002473: PUSH1 0x40
00002475: PUSH1 0x20
00002477: DUP4
00002478: ADD
00002479: MSTORE
0000247a: DUP3
0000247b: MLOAD
0000247c: DUP1
0000247d: PUSH1 0x40
0000247f: DUP5
00002480: ADD
00002481: MSTORE
00002482: PUSH2 0x2492
00002485: DUP2
00002486: PUSH1 0x60
00002488: DUP6
00002489: ADD
0000248a: PUSH1 0x20
0000248c: DUP8
0000248d: ADD
0000248e: PUSH2 0x25cc
00002491: JUMP
00002492: JUMPDEST
00002493: PUSH1 0x1f
00002495: ADD
00002496: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000024b7: AND
000024b8: SWAP2
000024b9: SWAP1
000024ba: SWAP2
000024bb: ADD
000024bc: PUSH1 0x60
000024be: ADD
000024bf: SWAP4
000024c0: SWAP3
000024c1: POP
000024c2: POP
000024c3: POP
000024c4: JUMP
000024c5: JUMPDEST
000024c6: SWAP4
000024c7: DUP5
000024c8: MSTORE
000024c9: PUSH1 0xff
000024cb: SWAP3
000024cc: SWAP1
000024cd: SWAP3
000024ce: AND
000024cf: PUSH1 0x20
000024d1: DUP5
000024d2: ADD
000024d3: MSTORE
000024d4: PUSH1 0x40
000024d6: DUP4
000024d7: ADD
000024d8: MSTORE
000024d9: PUSH1 0x60
000024db: DUP3
000024dc: ADD
000024dd: MSTORE
000024de: PUSH1 0x80
000024e0: ADD
000024e1: SWAP1
000024e2: JUMP
000024e3: JUMPDEST
000024e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000024f9: SWAP4
000024fa: SWAP1
000024fb: SWAP4
000024fc: AND
000024fd: DUP4
000024fe: MSTORE
000024ff: PUSH1 0x20
00002501: DUP4
00002502: ADD
00002503: SWAP2
00002504: SWAP1
00002505: SWAP2
00002506: MSTORE
00002507: PUSH1 0x40
00002509: DUP3
0000250a: ADD
0000250b: MSTORE
0000250c: PUSH1 0x60
0000250e: ADD
0000250f: SWAP1
00002510: JUMP
00002511: JUMPDEST
00002512: PUSH1 0x20
00002514: DUP1
00002515: DUP3
00002516: MSTORE
00002517: PUSH1 0x1e
00002519: SWAP1
0000251a: DUP3
0000251b: ADD
0000251c: MSTORE
0000251d: PUSH32 0x4d6178696d756d20746f6b656e2062616c616e63652065786365656465640000
0000253e: PUSH1 0x40
00002540: DUP3
00002541: ADD
00002542: MSTORE
00002543: PUSH1 0x60
00002545: ADD
00002546: SWAP1
00002547: JUMP
00002548: JUMPDEST
00002549: PUSH1 0x20
0000254b: DUP1
0000254c: DUP3
0000254d: MSTORE
0000254e: PUSH1 0x24
00002550: SWAP1
00002551: DUP3
00002552: ADD
00002553: MSTORE
00002554: PUSH32 0x46656520646973747269627574696f6e20686173206e6f742073746172746564
00002575: PUSH1 0x40
00002577: DUP3
00002578: ADD
00002579: MSTORE
0000257a: PUSH32 0x2079657400000000000000000000000000000000000000000000000000000000
0000259b: PUSH1 0x60
0000259d: DUP3
0000259e: ADD
0000259f: MSTORE
000025a0: PUSH1 0x80
000025a2: ADD
000025a3: SWAP1
000025a4: JUMP
000025a5: JUMPDEST
000025a6: PUSH1 0x40
000025a8: MLOAD
000025a9: DUP2
000025aa: DUP2
000025ab: ADD
000025ac: PUSH8 0xffffffffffffffff
000025b5: DUP2
000025b6: GT
000025b7: DUP3
000025b8: DUP3
000025b9: LT
000025ba: OR
000025bb: ISZERO
000025bc: PUSH2 0x25c4
000025bf: JUMPI
000025c0: PUSH1 0x00
000025c2: DUP1
000025c3: REVERT
000025c4: JUMPDEST
000025c5: PUSH1 0x40
000025c7: MSTORE
000025c8: SWAP2
000025c9: SWAP1
000025ca: POP
000025cb: JUMP
000025cc: JUMPDEST
000025cd: PUSH1 0x00
000025cf: JUMPDEST
000025d0: DUP4
000025d1: DUP2
000025d2: LT
000025d3: ISZERO
000025d4: PUSH2 0x25e7
000025d7: JUMPI
000025d8: DUP2
000025d9: DUP2
000025da: ADD
000025db: MLOAD
000025dc: DUP4
000025dd: DUP3
000025de: ADD
000025df: MSTORE
000025e0: PUSH1 0x20
000025e2: ADD
000025e3: PUSH2 0x25cf
000025e6: JUMP
000025e7: JUMPDEST
000025e8: DUP4
000025e9: DUP2
000025ea: GT
000025eb: ISZERO
000025ec: PUSH2 0x0518
000025ef: JUMPI
000025f0: POP
000025f1: POP
000025f2: PUSH1 0x00
000025f4: SWAP2
000025f5: ADD
000025f6: MSTORE
000025f7: JUMP
000025f8: JUMPDEST
000025f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000260e: DUP2
0000260f: AND
00002610: DUP2
00002611: EQ
00002612: PUSH2 0x0379
00002615: JUMPI
00002616: PUSH1 0x00
00002618: DUP1
00002619: REVERT
0000261a: JUMPDEST
0000261b: DUP1
0000261c: ISZERO
0000261d: ISZERO
0000261e: DUP2
0000261f: EQ
00002620: PUSH2 0x0379
00002623: JUMPI
00002624: PUSH1 0x00
00002626: DUP1
00002627: REVERT
00002628: INVALID
00002629: LOG2
0000262a: PUSH5 0x6970667358
00002630: UNKNOWN(0x22)
00002631: SLT
00002632: KECCAK256
00002633: PUSH15 0x91ba3bf7fae396c65faebeef9a2ad3
00002643: ADDRESS
00002644: UNKNOWN(0xD9)
00002645: ADDMOD
00002646: PUSH19 0x56688eb7df956fb362f6a77264736f6c634300
0000265a: SMOD
0000265b: ADD
0000265c: STOP
0000265d: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
medium other codex Checkpointing after long gaps can permanently lock undistributed tokens 75 no
view
evidence_json
{
    "evidence": "`tokenState.timeCursor` is set to `block.timestamp` and `cachedBalance` is updated before distributing, while the distribution loop is capped at 20 iterations, so long gaps leave part of `newTokensToDistribute` unassigned.",
    "locations": [
        "contracts/contracts/fee-distribution/FeeDistributor.sol:388",
        "contracts/contracts/fee-distribution/FeeDistributor.sol:402"
    ],
    "recommendation": "When the loop hits its iteration cap, do not advance `tokenState.timeCursor` to the current timestamp or finalize `cachedBalance` for the entire balance. Instead, advance only to the last processed week and allow subsequent calls to continue distributing the remaining period (or add pagination/increase the iteration cap).",
    "exploit_scenario": "If no one calls `checkpointToken` for a token for more than 20 weeks, a single call will only allocate a fraction of `newTokensToDistribute` across the first 20 weeks but still sets `timeCursor` to the current timestamp and `cachedBalance` to the full balance. The remaining portion is never assigned to any week, so users can never claim it and the tokens stay stuck in the contract."
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xea7b3b20153285ada3c7af2650b6adcc90b9823979b83dd9dc69448d35a09ce8
call_targets: 0xd3cf852898b21fc233251427c2dc93d3d604f3bb
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xea7b3b20153285ada3c7af2650b6adcc90b9823979b83dd9dc69448d35a09ce8",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xd3cf852898b21fc233251427c2dc93d3d604f3bb"
    ],
    "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": "0xe811f44b",
            "selector": "0xe811f44b",
            "calldata_variants": [
                "0xe811f44b",
                "0xe811f44b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xed24911d",
            "selector": "0xed24911d",
            "calldata_variants": [
                "0xed24911d",
                "0xed24911d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfcaa54ee",
            "selector": "0xfcaa54ee",
            "calldata_variants": [
                "0xfcaa54ee",
                "0xfcaa54ee0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xca31879d",
            "selector": "0xca31879d",
            "calldata_variants": [
                "0xca31879d",
                "0xca31879d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd3dc4ca1",
            "selector": "0xd3dc4ca1",
            "calldata_variants": [
                "0xd3dc4ca1",
                "0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde681faf",
            "selector": "0xde681faf",
            "calldata_variants": [
                "0xde681faf",
                "0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa1648aa5",
            "selector": "0xa1648aa5",
            "calldata_variants": [
                "0xa1648aa5",
                "0xa1648aa50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xacbc1428",
            "selector": "0xacbc1428",
            "calldata_variants": [
                "0xacbc1428",
                "0xacbc14280000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5308,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6893,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [
        {
            "pc": 5128,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 2
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xea7b3b20153285ada3c7af2650b6adcc90b9823979b83dd9dc69448d35a09ce8
call_targets: 0xd3cf852898b21fc233251427c2dc93d3d604f3bb
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xea7b3b20153285ada3c7af2650b6adcc90b9823979b83dd9dc69448d35a09ce8",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xd3cf852898b21fc233251427c2dc93d3d604f3bb"
    ],
    "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": "0xe811f44b",
            "selector": "0xe811f44b",
            "calldata_variants": [
                "0xe811f44b",
                "0xe811f44b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xed24911d",
            "selector": "0xed24911d",
            "calldata_variants": [
                "0xed24911d",
                "0xed24911d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfcaa54ee",
            "selector": "0xfcaa54ee",
            "calldata_variants": [
                "0xfcaa54ee",
                "0xfcaa54ee0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xca31879d",
            "selector": "0xca31879d",
            "calldata_variants": [
                "0xca31879d",
                "0xca31879d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd3dc4ca1",
            "selector": "0xd3dc4ca1",
            "calldata_variants": [
                "0xd3dc4ca1",
                "0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde681faf",
            "selector": "0xde681faf",
            "calldata_variants": [
                "0xde681faf",
                "0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa1648aa5",
            "selector": "0xa1648aa5",
            "calldata_variants": [
                "0xa1648aa5",
                "0xa1648aa50000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xacbc1428",
            "selector": "0xacbc1428",
            "calldata_variants": [
                "0xacbc1428",
                "0xacbc14280000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5308,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6893,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": [
        {
            "pc": 5128,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 9
}