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

Analysis Run

09fa5a2e-f3b7-46e9-8b86-0a03ea86c5f7

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

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30676 report.consolidate complete 1 / 1 3 months ago
75052 artifact.fetch complete 1 / 3 1 week ago
75053 tool.cast_disasm complete 1 / 3 1 week ago
75054 analysis.bundle complete 1 / 3 1 week ago
75055 capability.graph complete 1 / 3 1 week ago
75056 detector.run complete 1 / 3 1 week ago
75057 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
3
No findings?
no
Summary
Identified 3 issues: unprotected initializer takeover, division-by-zero claim DoS when weekly ve supply is zero, and reward distribution truncation after long inactivity.
View stderr
[codex:1044276] OpenAI Codex v0.77.0 (research preview)
[codex:1044276] --------
[codex:1044276] workdir: /tmp/codex-multi-4ke7ln7n
[codex:1044276] model: gpt-5.2-codex
[codex:1044276] provider: openai
[codex:1044276] approval: never
[codex:1044276] sandbox: read-only
[codex:1044276] reasoning effort: xhigh
[codex:1044276] reasoning summaries: auto
[codex:1044276] session id: 019b6d38-9891-7561-98af-cec6a290fd71
[codex:1044276] --------
[codex:1044276] user
[codex:1044276] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1044276] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1044276] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1044276] 
[codex:1044276] Scope rules:
[codex:1044276] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1044276] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1044276] 
[codex:1044276] Output MUST be valid JSON matching the provided schema.
[codex:1044276] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1044276] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1044276] 
[codex:1044276] Output constraints (IMPORTANT):
[codex:1044276] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1044276] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1044276] mcp startup: no servers
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Preparing to read audit instructions**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc ls in /tmp/codex-multi-4ke7ln7n succeeded in 5ms:
[codex:1044276] AUDIT_BUNDLE.txt
[codex:1044276] codex-output-schema.json
[codex:1044276] contracts
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Reading bundle**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-4ke7ln7n succeeded in 5ms:
[codex:1044276] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1044276] 
[codex:1044276] ================================================================================
[codex:1044276] FILE: contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/BalancerErrors.sol
[codex:1044276] ================================================================================
[codex:1044276] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1044276] // This program is free software: you can redistribute it and/or modify
[codex:1044276] // it under the terms of the GNU General Public License as published by
[codex:1044276] // the Free Software Foundation, either version 3 of the License, or
[codex:1044276] // (at your option) any later version.
[codex:1044276] 
[codex:1044276] // This program is distributed in the hope that it will be useful,
[codex:1044276] // but WITHOUT ANY WARRANTY; without even the implied warranty of
[codex:1044276] // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
[codex:1044276] // GNU General Public License for more details.
[codex:1044276] 
[codex:1044276] // You should have received a copy of the GNU General Public License
[codex:1044276] // along with this program.  If not, see <http://www.gnu.org/licenses/>.
[codex:1044276] 
[codex:1044276] pragma solidity >=0.7.0 <0.9.0;
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Planning full contract inspection**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc 'rg --files contracts' in /tmp/codex-multi-4ke7ln7n succeeded in 8ms:
[codex:1044276] contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/helpers/BalancerErrors.sol
[codex:1044276] contracts/@balancer-labs/v2-solidity-utils/contracts/math/Math.sol
[codex:1044276] contracts/contracts/interfaces/IRewardDistributor.sol
[codex:1044276] contracts/contracts/interfaces/IVotingEscrow.sol
[codex:1044276] contracts/contracts/RewardDistributor.sol
[codex:1044276] contracts/@balancer-labs/v2-solidity-utils/contracts/helpers/InputHelpers.sol
[codex:1044276] contracts/@balancer-labs/v2-interfaces/contracts/solidity-utils/openzeppelin/IERC20.sol
[codex:1044276] contracts/@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ReentrancyGuard.sol
[codex:1044276] contracts/@balancer-labs/v2-solidity-utils/contracts/openzeppelin/SafeERC20.sol
[codex:1044276] contracts/@balancer-labs/v2-solidity-utils/contracts/openzeppelin/EIP712.sol
[codex:1044276] contracts/@balancer-labs/v2-solidity-utils/contracts/openzeppelin/SafeMath.sol
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Distinguishing first-party from third-party code**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "sed -n '1,240p' contracts/contracts/RewardDistributor.sol" in /tmp/codex-multi-4ke7ln7n succeeded in 7ms:
[codex:1044276] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1044276] // This program is free software: you can redistribute it and/or modify
[codex:1044276] // it under the terms of the GNU General Public License as published by
[codex:1044276] // the Free Software Foundation, either version 3 of the License, or
[codex:1044276] // (at your option) any later version.
[codex:1044276] 
[codex:1044276] // This program is distributed in the hope that it will be useful,
[codex:1044276] // but WITHOUT ANY WARRANTY; without even the implied warranty of
[codex:1044276] // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
[codex:1044276] // GNU General Public License for more details.
[codex:1044276] 
[codex:1044276] // You should have received a copy of the GNU General Public License
[codex:1044276] // along with this program.  If not, see <http://www.gnu.org/licenses/>.
[codex:1044276] 
[codex:1044276] pragma solidity ^0.7.0;
[codex:1044276] pragma experimental ABIEncoderV2;
[codex:1044276] 
[codex:1044276] 
[codex:1044276] import {IVotingEscrow} from "./interfaces/IVotingEscrow.sol";
[codex:1044276] import {IRewardDistributor} from "./interfaces/IRewardDistributor.sol";
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Continuing task**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "sed -n '240,480p' contracts/contracts/RewardDistributor.sol" in /tmp/codex-multi-4ke7ln7n succeeded in 5ms:
[codex:1044276]      * @param amount - The amount of tokens to deposit.
[codex:1044276]      */
[codex:1044276]     function depositToken(
[codex:1044276]         IERC20 token,
[codex:1044276]         uint256 amount
[codex:1044276]     ) external override nonReentrant {
[codex:1044276]         require(allowedRewardTokens[address(token)], "token not allowed");
[codex:1044276]         _checkpointToken(token, false);
[codex:1044276]         token.safeTransferFrom(msg.sender, address(this), amount);
[codex:1044276]         _checkpointToken(token, true);
[codex:1044276]     }
[codex:1044276] 
[codex:1044276]     /**
[codex:1044276]      * @notice Deposits tokens to be distributed in the current week.
[codex:1044276]      * @dev A version of `depositToken` which supports depositing multiple `tokens` at once.
[codex:1044276]      * See `depositToken` for more details.
[codex:1044276]      * @param tokens - An array of ERC20 token addresses to distribute.
[codex:1044276]      * @param amounts - An array of token amounts to deposit.
[codex:1044276]      */
[codex:1044276]     function depositTokens(
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Continuing process**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "sed -n '480,720p' contracts/contracts/RewardDistributor.sol" in /tmp/codex-multi-4ke7ln7n succeeded in 6ms:
[codex:1044276]         tokenState.timeCursor = uint64(block.timestamp);
[codex:1044276] 
[codex:1044276]         uint256 tokenBalance = token.balanceOf(address(this));
[codex:1044276]         uint256 newTokensToDistribute = tokenBalance.sub(
[codex:1044276]             tokenState.cachedBalance
[codex:1044276]         );
[codex:1044276]         if (newTokensToDistribute == 0) return;
[codex:1044276]         require(
[codex:1044276]             tokenBalance <= type(uint128).max,
[codex:1044276]             "Maximum token balance exceeded"
[codex:1044276]         );
[codex:1044276]         tokenState.cachedBalance = uint128(tokenBalance);
[codex:1044276] 
[codex:1044276]         uint256 firstIncompleteWeek = _roundDownTimestamp(lastTokenTime);
[codex:1044276]         uint256 nextWeek = 0;
[codex:1044276] 
[codex:1044276]         // Distribute `newTokensToDistribute` evenly across the time period from `lastTokenTime` to now.
[codex:1044276]         // These tokens are assigned to weeks proportionally to how much of this period falls into each week.
[codex:1044276]         mapping(uint256 => uint256) storage tokensPerWeek = _tokensPerWeek[
[codex:1044276]             token
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Continuing process**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "sed -n '720,960p' contracts/contracts/RewardDistributor.sol" in /tmp/codex-multi-4ke7ln7n succeeded in 5ms:
[codex:1044276]         IERC20 token
[codex:1044276]     ) internal view returns (uint256) {
[codex:1044276]         uint256 userTimeCursor = _userTokenTimeCursor[user][token];
[codex:1044276]         if (userTimeCursor > 0) return userTimeCursor;
[codex:1044276]         // This is the first time that the user has interacted with this token.
[codex:1044276]         // We then start from the latest out of either when `user` first locked veBPT or `token` was first checkpointed.
[codex:1044276]         return
[codex:1044276]             Math.max(_userState[user].startTime, _tokenState[token].startTime);
[codex:1044276]     }
[codex:1044276] 
[codex:1044276]     /**
[codex:1044276]      * @dev Return the user epoch number for `user` corresponding to the provided `timestamp`
[codex:1044276]      */
[codex:1044276]     function _findTimestampUserEpoch(
[codex:1044276]         address user,
[codex:1044276]         uint256 timestamp,
[codex:1044276]         uint256 minUserEpoch,
[codex:1044276]         uint256 maxUserEpoch
[codex:1044276]     ) internal view returns (uint256) {
[codex:1044276]         uint256 min = minUserEpoch;
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Continuing process**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "sed -n '960,1200p' contracts/contracts/RewardDistributor.sol" in /tmp/codex-multi-4ke7ln7n succeeded in 5ms:
[codex:1044276]         uint block_time = point_0.ts;
[codex:1044276]         if (d_block != 0) {
[codex:1044276]             block_time += (d_t * (_block - point_0.blk)) / d_block;
[codex:1044276]         }
[codex:1044276] 
[codex:1044276]         upoint.bias -= upoint.slope * int128(int(block_time - upoint.ts));
[codex:1044276]         if (upoint.bias >= 0) {
[codex:1044276]             return uint(uint128(upoint.bias));
[codex:1044276]         } else {
[codex:1044276]             return 0;
[codex:1044276]         }
[codex:1044276]     }
[codex:1044276] }
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Reviewing full AUDIT_BUNDLE**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc 'tail -n 40 AUDIT_BUNDLE.txt' in /tmp/codex-multi-4ke7ln7n succeeded in 5ms:
[codex:1044276] 
[codex:1044276]     function increase_amount(uint256 _value) external;
[codex:1044276] 
[codex:1044276]     function increase_unlock_time(uint256 _unlock_time) external;
[codex:1044276] 
[codex:1044276]     function locked__end(address _addr) external view returns (uint256);
[codex:1044276] 
[codex:1044276]     function name() external view returns (string memory);
[codex:1044276] 
[codex:1044276]     function symbol() external view returns (string memory);
[codex:1044276] 
[codex:1044276]     function token() external view returns (address);
[codex:1044276] 
[codex:1044276]     function totalSupply() external view returns (uint256);
[codex:1044276] 
[codex:1044276]     function totalSupplyAt(uint256 _block) external view returns (uint256);
[codex:1044276] 
[codex:1044276]     function totalSupplyAtT(uint256 _timestamp) external view returns (uint256);
[codex:1044276] 
[codex:1044276]     function user_point_epoch(address user) external view returns (uint256);
[codex:1044276] 
[codex:1044276] 
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Analyzing AUDIT_BUNDLE and contract risks**
[codex:1044276] 
[codex:1044276] I'm reviewing the full AUDIT_BUNDLE to ensure completeness, considering how to read the large file efficiently without flooding output. I'm carefully assessing RewardDistributor and related contracts for vulnerabilities such as unprotected initialization, reentrancy protection usage, and critical issues like division by zero in reward calculations that could cause claims to revert and block users. I’m also noting potential DoS risks from zero supply weeks and effects of deflationary tokens on cached balances. There's a lot to unpack here!
[codex:1044276] thinking
[codex:1044276] **Evaluating token deposit and checkpoint mechanics**
[codex:1044276] 
[codex:1044276] I'm looking at how fee-charging tokens affect deposits and checkpointing, noting the risk of cached balance mismatches causing reverts if admins claw back tokens unsafely. I’m analyzing open access to checkpoint functions, unprotected initialization issues, and the implications of the 20-iteration loop in `_checkpointToken` that can cause tokens to remain undistributed if checkpointing is delayed over long periods, potentially leading to lost rewards. It’s interesting how allowed tokens list governs deposits but not checkpointing or claims, which might cause design quirks but not clear vulnerabilities.
[codex:1044276] thinking
[codex:1044276] **Checking initialization and planning line number extraction**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc 'rg -n "function initialize" -n contracts/contracts/RewardDistributor.sol' in /tmp/codex-multi-4ke7ln7n succeeded in 8ms:
[codex:1044276] 103:    function initialize(
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Identifying line numbers for key code locations**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc 'rg -n "_veSupplyCache" -n contracts/contracts/RewardDistributor.sol' in /tmp/codex-multi-4ke7ln7n succeeded in 7ms:
[codex:1044276] 54:    mapping(uint256 => uint256) private _veSupplyCache;
[codex:1044276] 206:        return _veSupplyCache[timestamp];
[codex:1044276] 420:                _veSupplyCache[nextUserTokenWeekToClaim];
[codex:1044276] 703:            _veSupplyCache[nextWeekToCheckpoint] = totalSupplyAtT;
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Inspecting code around line 420**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "nl -ba contracts/contracts/RewardDistributor.sol | sed -n '400,440p'" in /tmp/codex-multi-4ke7ln7n succeeded in 6ms:
[codex:1044276]    400	            _roundUpTimestamp(
[codex:1044276]    401	                Math.min(_timeCursor, _userState[user].timeCursor)
[codex:1044276]    402	            ),
[codex:1044276]    403	            _roundDownTimestamp(tokenState.timeCursor)
[codex:1044276]    404	        );
[codex:1044276]    405	
[codex:1044276]    406	        mapping(uint256 => uint256) storage tokensPerWeek = _tokensPerWeek[
[codex:1044276]    407	            token
[codex:1044276]    408	        ];
[codex:1044276]    409	        mapping(uint256 => uint256)
[codex:1044276]    410	            storage userBalanceAtTimestamp = _userBalanceAtTimestamp[user];
[codex:1044276]    411	
[codex:1044276]    412	        uint256 amount;
[codex:1044276]    413	        for (uint256 i = 0; i < 20; ++i) {
[codex:1044276]    414	            // We clearly cannot claim for `firstUnclaimableWeek` and so we break here.
[codex:1044276]    415	            if (nextUserTokenWeekToClaim >= firstUnclaimableWeek) break;
[codex:1044276]    416	
[codex:1044276]    417	            amount +=
[codex:1044276]    418	                (tokensPerWeek[nextUserTokenWeekToClaim] *
[codex:1044276]    419	                    userBalanceAtTimestamp[nextUserTokenWeekToClaim]) /
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Selecting code lines for update**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "nl -ba contracts/contracts/RewardDistributor.sol | sed -n '90,130p'" in /tmp/codex-multi-4ke7ln7n succeeded in 6ms:
[codex:1044276]     90	
[codex:1044276]     91	    mapping(address => UserState) internal _userState;
[codex:1044276]     92	    mapping(address => mapping(uint256 => uint256))
[codex:1044276]     93	        private _userBalanceAtTimestamp;
[codex:1044276]     94	    mapping(address => mapping(IERC20 => uint256)) private _userTokenTimeCursor;
[codex:1044276]     95	
[codex:1044276]     96	    constructor() EIP712("RewardDistributor", "1") {}
[codex:1044276]     97	
[codex:1044276]     98	    modifier onlyAdmin() {
[codex:1044276]     99	        require(admin == msg.sender, "not admin");
[codex:1044276]    100	        _;
[codex:1044276]    101	    }
[codex:1044276]    102	
[codex:1044276]    103	    function initialize(
[codex:1044276]    104	        IVotingEscrow votingEscrow,
[codex:1044276]    105	        uint256 startTime,
[codex:1044276]    106	        address admin_
[codex:1044276]    107	    ) external {
[codex:1044276]    108	        require(!isInitialized, "only once");
[codex:1044276]    109	        isInitialized = true;
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Inspecting line numbers near checkpoint**
[codex:1044276] exec
[codex:1044276] /bin/bash -lc "nl -ba contracts/contracts/RewardDistributor.sol | sed -n '440,560p'" in /tmp/codex-multi-4ke7ln7n succeeded in 6ms:
[codex:1044276]    440	    function _checkpointToken(IERC20 token, bool force) internal {
[codex:1044276]    441	        TokenState storage tokenState = _tokenState[token];
[codex:1044276]    442	        uint256 lastTokenTime = tokenState.timeCursor;
[codex:1044276]    443	        uint256 timeSinceLastCheckpoint;
[codex:1044276]    444	        if (lastTokenTime == 0) {
[codex:1044276]    445	            // If it's the first time we're checkpointing this token then start distributing from now.
[codex:1044276]    446	            // Also mark at which timestamp users should start attempts to claim this token from.
[codex:1044276]    447	            lastTokenTime = block.timestamp;
[codex:1044276]    448	            tokenState.startTime = uint64(_roundDownTimestamp(block.timestamp));
[codex:1044276]    449	
[codex:1044276]    450	            // Prevent someone from assigning tokens to an inaccessible week.
[codex:1044276]    451	            require(
[codex:1044276]    452	                block.timestamp > _startTime,
[codex:1044276]    453	                "Reward distribution has not started yet"
[codex:1044276]    454	            );
[codex:1044276]    455	        } else {
[codex:1044276]    456	            timeSinceLastCheckpoint = block.timestamp - lastTokenTime;
[codex:1044276]    457	
[codex:1044276]    458	            if (!force) {
[codex:1044276]    459	                // Checkpointing N times within a single week is completely equivalent to checkpointing once at the end.
[codex:1044276] 
[codex:1044276] thinking
[codex:1044276] **Preparing audit findings JSON**
[codex:1044276] codex
[codex:1044276] {"no_findings":false,"summary":"Identified 3 issues: unprotected initializer takeover, division-by-zero claim DoS when weekly ve supply is zero, and reward distribution truncation after long inactivity.","findings":[{"severity":"high","category":"access_control","title":"Unprotected initialize allows admin/votingEscrow takeover","exploit_scenario":"If the contract is deployed without calling initialize in the same transaction, any address can call initialize first, set themselves as admin and point votingEscrow to a malicious contract, then use admin-only functions (e.g., clawbackUnsafe) or break reward accounting.","recommendation":"Restrict initialize to a trusted deployer/factory (e.g., onlyAdmin/onlyFactory), or move initialization into a constructor for non-proxy deployments. If used behind a proxy, use an initializer pattern that disables further initializers on the implementation contract.","evidence":"initialize is external and only checks isInitialized; there is no access control gate before setting admin and _votingEscrow.","locations":["contracts/contracts/RewardDistributor.sol:103"]},{"severity":"medium","category":"math","title":"Claiming can revert when weekly total supply is zero","exploit_scenario":"If total ve supply at a weekly checkpoint is 0 (e.g., all locks expired), _veSupplyCache[week] becomes 0. Later claimToken/claimTokens will divide by this value and revert, blocking all claims that need to pass through that week and leaving tokens stuck.","recommendation":"Handle zero supply weeks explicitly (e.g., skip distribution when _veSupplyCache[week] == 0 or store a sentinel), or prevent checkpointing/distributing rewards into weeks with zero total supply.","evidence":"_claimToken computes (tokensPerWeek * userBalance) / _veSupplyCache[week] without a zero check.","locations":["contracts/contracts/RewardDistributor.sol:417"]},{"severity":"low","category":"math","title":"Token distribution truncates after >20 weeks of inactivity","exploit_scenario":"If a token hasn’t been checkpointed for more than 20 weeks, _checkpointToken only iterates 20 weeks but sets tokenState.timeCursor to block.timestamp. The remaining undistributed portion is never allocated to any week and becomes permanently unclaimable.","recommendation":"If the loop hits its iteration cap, leave timeCursor at the last processed week so subsequent calls continue distribution, or allow batched catch-up across multiple calls without marking the token fully up-to-date.","evidence":"_checkpointToken sets tokenState.timeCursor = block.timestamp before looping for at most 20 iterations with no continuation logic.","locations":["contracts/contracts/RewardDistributor.sol:480","contracts/contracts/RewardDistributor.sol:501"]}]}
[codex:1044276] tokens used
[codex:1044276] 58,315
[codex:1044276] {"no_findings":false,"summary":"Identified 3 issues: unprotected initializer takeover, division-by-zero claim DoS when weekly ve supply is zero, and reward distribution truncation after long inactivity.","findings":[{"severity":"high","category":"access_control","title":"Unprotected initialize allows admin/votingEscrow takeover","exploit_scenario":"If the contract is deployed without calling initialize in the same transaction, any address can call initialize first, set themselves as admin and point votingEscrow to a malicious contract, then use admin-only functions (e.g., clawbackUnsafe) or break reward accounting.","recommendation":"Restrict initialize to a trusted deployer/factory (e.g., onlyAdmin/onlyFactory), or move initialization into a constructor for non-proxy deployments. If used behind a proxy, use an initializer pattern that disables further initializers on the implementation contract.","evidence":"initialize is external and only checks isInitialized; there is no access control gate before setting admin and _votingEscrow.","locations":["contracts/contracts/RewardDistributor.sol:103"]},{"severity":"medium","category":"math","title":"Claiming can revert when weekly total supply is zero","exploit_scenario":"If total ve supply at a weekly checkpoint is 0 (e.g., all locks expired), _veSupplyCache[week] becomes 0. Later claimToken/claimTokens will divide by this value and revert, blocking all claims that need to pass through that week and leaving tokens stuck.","recommendation":"Handle zero supply weeks explicitly (e.g., skip distribution when _veSupplyCache[week] == 0 or store a sentinel), or prevent checkpointing/distributing rewards into weeks with zero total supply.","evidence":"_claimToken computes (tokensPerWeek * userBalance) / _veSupplyCache[week] without a zero check.","locations":["contracts/contracts/RewardDistributor.sol:417"]},{"severity":"low","category":"math","title":"Token distribution truncates after >20 weeks of inactivity","exploit_scenario":"If a token hasn’t been checkpointed for more than 20 weeks, _checkpointToken only iterates 20 weeks but sets tokenState.timeCursor to block.timestamp. The remaining undistributed portion is never allocated to any week and becomes permanently unclaimable.","recommendation":"If the loop hits its iteration cap, leave timeCursor at the last processed week so subsequent calls continue distribution, or allow batched catch-up across multiple calls without marking the token fully up-to-date.","evidence":"_checkpointToken sets tokenState.timeCursor = block.timestamp before looping for at most 20 iterations with no continuation logic.","locations":["contracts/contracts/RewardDistributor.sol:480","contracts/contracts/RewardDistributor.sol:501"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-30T03:10:34.251994+00:00",
        "returncode": 0
    },
    "summary": "Identified 3 issues: unprotected initializer takeover, division-by-zero claim DoS when weekly ve supply is zero, and reward distribution truncation after long inactivity.",
    "raw_final": {
        "summary": "Identified 3 issues: unprotected initializer takeover, division-by-zero claim DoS when weekly ve supply is zero, and reward distribution truncation after long inactivity.",
        "findings": [
            {
                "title": "Unprotected initialize allows admin/votingEscrow takeover",
                "category": "access_control",
                "evidence": "initialize is external and only checks isInitialized; there is no access control gate before setting admin and _votingEscrow.",
                "severity": "high",
                "locations": [
                    "contracts/contracts/RewardDistributor.sol:103"
                ],
                "recommendation": "Restrict initialize to a trusted deployer/factory (e.g., onlyAdmin/onlyFactory), or move initialization into a constructor for non-proxy deployments. If used behind a proxy, use an initializer pattern that disables further initializers on the implementation contract.",
                "exploit_scenario": "If the contract is deployed without calling initialize in the same transaction, any address can call initialize first, set themselves as admin and point votingEscrow to a malicious contract, then use admin-only functions (e.g., clawbackUnsafe) or break reward accounting."
            },
            {
                "title": "Claiming can revert when weekly total supply is zero",
                "category": "math",
                "evidence": "_claimToken computes (tokensPerWeek * userBalance) / _veSupplyCache[week] without a zero check.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/RewardDistributor.sol:417"
                ],
                "recommendation": "Handle zero supply weeks explicitly (e.g., skip distribution when _veSupplyCache[week] == 0 or store a sentinel), or prevent checkpointing/distributing rewards into weeks with zero total supply.",
                "exploit_scenario": "If total ve supply at a weekly checkpoint is 0 (e.g., all locks expired), _veSupplyCache[week] becomes 0. Later claimToken/claimTokens will divide by this value and revert, blocking all claims that need to pass through that week and leaving tokens stuck."
            },
            {
                "title": "Token distribution truncates after >20 weeks of inactivity",
                "category": "math",
                "evidence": "_checkpointToken sets tokenState.timeCursor = block.timestamp before looping for at most 20 iterations with no continuation logic.",
                "severity": "low",
                "locations": [
                    "contracts/contracts/RewardDistributor.sol:480",
                    "contracts/contracts/RewardDistributor.sol:501"
                ],
                "recommendation": "If the loop hits its iteration cap, leave timeCursor at the last processed week so subsequent calls continue distribution, or allow batched catch-up across multiple calls without marking the token fully up-to-date.",
                "exploit_scenario": "If a token hasn\u2019t been checkpointed for more than 20 weeks, _checkpointToken only iterates 20 weeks but sets tokenState.timeCursor to block.timestamp. The remaining undistributed portion is never allocated to any week and becomes permanently unclaimable."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
21
EXT*/BALANCE
20
Total opcodes
9994
Flags
delegatecall_present heavy_ext_balance_usage call_family_heavy
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 0x01cf
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x876e69a1
00000026: GT
00000027: PUSH2 0x0104
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xd07b705f
00000031: GT
00000032: PUSH2 0x00a2
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xed3a0887
0000003c: GT
0000003d: PUSH2 0x0071
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xed3a0887
00000047: EQ
00000048: PUSH2 0x0578
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xf213bd8c
00000052: EQ
00000053: PUSH2 0x05a8
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xf851a440
0000005d: EQ
0000005e: PUSH2 0x05c4
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xfdac51a1
00000068: EQ
00000069: PUSH2 0x05e2
0000006c: JUMPI
0000006d: PUSH2 0x01cf
00000070: JUMP
00000071: JUMPDEST
00000072: DUP1
00000073: PUSH4 0xd07b705f
00000078: EQ
00000079: PUSH2 0x04ca
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0xd3dc4ca1
00000083: EQ
00000084: PUSH2 0x04fa
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0xde681faf
0000008e: EQ
0000008f: PUSH2 0x052a
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0xece7514d
00000099: EQ
0000009a: PUSH2 0x055a
0000009d: JUMPI
0000009e: PUSH2 0x01cf
000000a1: JUMP
000000a2: JUMPDEST
000000a3: DUP1
000000a4: PUSH4 0xacbc1428
000000a9: GT
000000aa: PUSH2 0x00de
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0xacbc1428
000000b4: EQ
000000b5: PUSH2 0x0444
000000b8: JUMPI
000000b9: DUP1
000000ba: PUSH4 0xc2c4c5c1
000000bf: EQ
000000c0: PUSH2 0x0474
000000c3: JUMPI
000000c4: DUP1
000000c5: PUSH4 0xc350a1b5
000000ca: EQ
000000cb: PUSH2 0x047e
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0xca31879d
000000d5: EQ
000000d6: PUSH2 0x049a
000000d9: JUMPI
000000da: PUSH2 0x01cf
000000dd: JUMP
000000de: JUMPDEST
000000df: DUP1
000000e0: PUSH4 0x876e69a1
000000e5: EQ
000000e6: PUSH2 0x03c8
000000e9: JUMPI
000000ea: DUP1
000000eb: PUSH4 0x88720467
000000f0: EQ
000000f1: PUSH2 0x03f8
000000f4: JUMPI
000000f5: DUP1
000000f6: PUSH4 0x905d10ac
000000fb: EQ
000000fc: PUSH2 0x0428
000000ff: JUMPI
00000100: PUSH2 0x01cf
00000103: JUMP
00000104: JUMPDEST
00000105: DUP1
00000106: PUSH4 0x4ee2cd7e
0000010b: GT
0000010c: PUSH2 0x0171
0000010f: JUMPI
00000110: DUP1
00000111: PUSH4 0x75829def
00000116: GT
00000117: PUSH2 0x014b
0000011a: JUMPI
0000011b: DUP1
0000011c: PUSH4 0x75829def
00000121: EQ
00000122: PUSH2 0x0342
00000125: JUMPI
00000126: DUP1
00000127: PUSH4 0x7b8d6221
0000012c: EQ
0000012d: PUSH2 0x035e
00000130: JUMPI
00000131: DUP1
00000132: PUSH4 0x8050a7ee
00000137: EQ
00000138: PUSH2 0x037a
0000013b: JUMPI
0000013c: DUP1
0000013d: PUSH4 0x82aa5ad4
00000142: EQ
00000143: PUSH2 0x03aa
00000146: JUMPI
00000147: PUSH2 0x01cf
0000014a: JUMP
0000014b: JUMPDEST
0000014c: DUP1
0000014d: PUSH4 0x4ee2cd7e
00000152: EQ
00000153: PUSH2 0x02b2
00000156: JUMPI
00000157: DUP1
00000158: PUSH4 0x4f3c5090
0000015d: EQ
0000015e: PUSH2 0x02e2
00000161: JUMPI
00000162: DUP1
00000163: PUSH4 0x7116c60c
00000168: EQ
00000169: PUSH2 0x0312
0000016c: JUMPI
0000016d: PUSH2 0x01cf
00000170: JUMP
00000171: JUMPDEST
00000172: DUP1
00000173: PUSH4 0x2308805b
00000178: GT
00000179: PUSH2 0x01ad
0000017c: JUMPI
0000017d: DUP1
0000017e: PUSH4 0x2308805b
00000183: EQ
00000184: PUSH2 0x022c
00000187: JUMPI
00000188: DUP1
00000189: PUSH4 0x338b5dea
0000018e: EQ
0000018f: PUSH2 0x025c
00000192: JUMPI
00000193: DUP1
00000194: PUSH4 0x3902b9bc
00000199: EQ
0000019a: PUSH2 0x0278
0000019d: JUMPI
0000019e: DUP1
0000019f: PUSH4 0x392e53cd
000001a4: EQ
000001a5: PUSH2 0x0294
000001a8: JUMPI
000001a9: PUSH2 0x01cf
000001ac: JUMP
000001ad: JUMPDEST
000001ae: DUP1
000001af: PUSH4 0x08b0308a
000001b4: EQ
000001b5: PUSH2 0x01d4
000001b8: JUMPI
000001b9: DUP1
000001ba: PUSH4 0x14866e08
000001bf: EQ
000001c0: PUSH2 0x01f2
000001c3: JUMPI
000001c4: DUP1
000001c5: PUSH4 0x18160ddd
000001ca: EQ
000001cb: PUSH2 0x020e
000001ce: JUMPI
000001cf: JUMPDEST
000001d0: PUSH1 0x00
000001d2: DUP1
000001d3: REVERT
000001d4: JUMPDEST
000001d5: PUSH2 0x01dc
000001d8: PUSH2 0x05fe
000001db: JUMP
000001dc: JUMPDEST
000001dd: PUSH1 0x40
000001df: MLOAD
000001e0: PUSH2 0x01e9
000001e3: SWAP2
000001e4: SWAP1
000001e5: PUSH2 0x40d3
000001e8: JUMP
000001e9: JUMPDEST
000001ea: PUSH1 0x40
000001ec: MLOAD
000001ed: DUP1
000001ee: SWAP2
000001ef: SUB
000001f0: SWAP1
000001f1: RETURN
000001f2: JUMPDEST
000001f3: PUSH2 0x020c
000001f6: PUSH1 0x04
000001f8: DUP1
000001f9: CALLDATASIZE
000001fa: SUB
000001fb: DUP2
000001fc: ADD
000001fd: SWAP1
000001fe: PUSH2 0x0207
00000201: SWAP2
00000202: SWAP1
00000203: PUSH2 0x37db
00000206: JUMP
00000207: JUMPDEST
00000208: PUSH2 0x0626
0000020b: JUMP
0000020c: JUMPDEST
0000020d: STOP
0000020e: JUMPDEST
0000020f: PUSH2 0x0216
00000212: PUSH2 0x0642
00000215: JUMP
00000216: JUMPDEST
00000217: PUSH1 0x40
00000219: MLOAD
0000021a: PUSH2 0x0223
0000021d: SWAP2
0000021e: SWAP1
0000021f: PUSH2 0x420e
00000222: JUMP
00000223: JUMPDEST
00000224: PUSH1 0x40
00000226: MLOAD
00000227: DUP1
00000228: SWAP2
00000229: SUB
0000022a: SWAP1
0000022b: RETURN
0000022c: JUMPDEST
0000022d: PUSH2 0x0246
00000230: PUSH1 0x04
00000232: DUP1
00000233: CALLDATASIZE
00000234: SUB
00000235: DUP2
00000236: ADD
00000237: SWAP1
00000238: PUSH2 0x0241
0000023b: SWAP2
0000023c: SWAP1
0000023d: PUSH2 0x39fc
00000240: JUMP
00000241: JUMPDEST
00000242: PUSH2 0x0652
00000245: JUMP
00000246: JUMPDEST
00000247: PUSH1 0x40
00000249: MLOAD
0000024a: PUSH2 0x0253
0000024d: SWAP2
0000024e: SWAP1
0000024f: PUSH2 0x420e
00000252: JUMP
00000253: JUMPDEST
00000254: PUSH1 0x40
00000256: MLOAD
00000257: DUP1
00000258: SWAP2
00000259: SUB
0000025a: SWAP1
0000025b: RETURN
0000025c: JUMPDEST
0000025d: PUSH2 0x0276
00000260: PUSH1 0x04
00000262: DUP1
00000263: CALLDATASIZE
00000264: SUB
00000265: DUP2
00000266: ADD
00000267: SWAP1
00000268: PUSH2 0x0271
0000026b: SWAP2
0000026c: SWAP1
0000026d: PUSH2 0x3a25
00000270: JUMP
00000271: JUMPDEST
00000272: PUSH2 0x06cc
00000275: JUMP
00000276: JUMPDEST
00000277: STOP
00000278: JUMPDEST
00000279: PUSH2 0x0292
0000027c: PUSH1 0x04
0000027e: DUP1
0000027f: CALLDATASIZE
00000280: SUB
00000281: DUP2
00000282: ADD
00000283: SWAP1
00000284: PUSH2 0x028d
00000287: SWAP2
00000288: SWAP1
00000289: PUSH2 0x39fc
0000028c: JUMP
0000028d: JUMPDEST
0000028e: PUSH2 0x07af
00000291: JUMP
00000292: JUMPDEST
00000293: STOP
00000294: JUMPDEST
00000295: PUSH2 0x029c
00000298: PUSH2 0x07cd
0000029b: JUMP
0000029c: JUMPDEST
0000029d: PUSH1 0x40
0000029f: MLOAD
000002a0: PUSH2 0x02a9
000002a3: SWAP2
000002a4: SWAP1
000002a5: PUSH2 0x4081
000002a8: JUMP
000002a9: JUMPDEST
000002aa: PUSH1 0x40
000002ac: MLOAD
000002ad: DUP1
000002ae: SWAP2
000002af: SUB
000002b0: SWAP1
000002b1: RETURN
000002b2: JUMPDEST
000002b3: PUSH2 0x02cc
000002b6: PUSH1 0x04
000002b8: DUP1
000002b9: CALLDATASIZE
000002ba: SUB
000002bb: DUP2
000002bc: ADD
000002bd: SWAP1
000002be: PUSH2 0x02c7
000002c1: SWAP2
000002c2: SWAP1
000002c3: PUSH2 0x3898
000002c6: JUMP
000002c7: JUMPDEST
000002c8: PUSH2 0x07e0
000002cb: JUMP
000002cc: JUMPDEST
000002cd: PUSH1 0x40
000002cf: MLOAD
000002d0: PUSH2 0x02d9
000002d3: SWAP2
000002d4: SWAP1
000002d5: PUSH2 0x420e
000002d8: JUMP
000002d9: JUMPDEST
000002da: PUSH1 0x40
000002dc: MLOAD
000002dd: DUP1
000002de: SWAP2
000002df: SUB
000002e0: SWAP1
000002e1: RETURN
000002e2: JUMPDEST
000002e3: PUSH2 0x02fc
000002e6: PUSH1 0x04
000002e8: DUP1
000002e9: CALLDATASIZE
000002ea: SUB
000002eb: DUP2
000002ec: ADD
000002ed: SWAP1
000002ee: PUSH2 0x02f7
000002f1: SWAP2
000002f2: SWAP1
000002f3: PUSH2 0x3b02
000002f6: JUMP
000002f7: JUMPDEST
000002f8: PUSH2 0x0d3c
000002fb: JUMP
000002fc: JUMPDEST
000002fd: PUSH1 0x40
000002ff: MLOAD
00000300: PUSH2 0x0309
00000303: SWAP2
00000304: SWAP1
00000305: PUSH2 0x420e
00000308: JUMP
00000309: JUMPDEST
0000030a: PUSH1 0x40
0000030c: MLOAD
0000030d: DUP1
0000030e: SWAP2
0000030f: SUB
00000310: SWAP1
00000311: RETURN
00000312: JUMPDEST
00000313: PUSH2 0x032c
00000316: PUSH1 0x04
00000318: DUP1
00000319: CALLDATASIZE
0000031a: SUB
0000031b: DUP2
0000031c: ADD
0000031d: SWAP1
0000031e: PUSH2 0x0327
00000321: SWAP2
00000322: SWAP1
00000323: PUSH2 0x3b02
00000326: JUMP
00000327: JUMPDEST
00000328: PUSH2 0x0d59
0000032b: JUMP
0000032c: JUMPDEST
0000032d: PUSH1 0x40
0000032f: MLOAD
00000330: PUSH2 0x0339
00000333: SWAP2
00000334: SWAP1
00000335: PUSH2 0x420e
00000338: JUMP
00000339: JUMPDEST
0000033a: PUSH1 0x40
0000033c: MLOAD
0000033d: DUP1
0000033e: SWAP2
0000033f: SUB
00000340: SWAP1
00000341: RETURN
00000342: JUMPDEST
00000343: PUSH2 0x035c
00000346: PUSH1 0x04
00000348: DUP1
00000349: CALLDATASIZE
0000034a: SUB
0000034b: DUP2
0000034c: ADD
0000034d: SWAP1
0000034e: PUSH2 0x0357
00000351: SWAP2
00000352: SWAP1
00000353: PUSH2 0x37db
00000356: JUMP
00000357: JUMPDEST
00000358: PUSH2 0x0d6b
0000035b: JUMP
0000035c: JUMPDEST
0000035d: STOP
0000035e: JUMPDEST
0000035f: PUSH2 0x0378
00000362: PUSH1 0x04
00000364: DUP1
00000365: CALLDATASIZE
00000366: SUB
00000367: DUP2
00000368: ADD
00000369: SWAP1
0000036a: PUSH2 0x0373
0000036d: SWAP2
0000036e: SWAP1
0000036f: PUSH2 0x395e
00000372: JUMP
00000373: JUMPDEST
00000374: PUSH2 0x0ef2
00000377: JUMP
00000378: JUMPDEST
00000379: STOP
0000037a: JUMPDEST
0000037b: PUSH2 0x0394
0000037e: PUSH1 0x04
00000380: DUP1
00000381: CALLDATASIZE
00000382: SUB
00000383: DUP2
00000384: ADD
00000385: SWAP1
00000386: PUSH2 0x038f
00000389: SWAP2
0000038a: SWAP1
0000038b: PUSH2 0x385c
0000038e: JUMP
0000038f: JUMPDEST
00000390: PUSH2 0x1099
00000393: JUMP
00000394: JUMPDEST
00000395: PUSH1 0x40
00000397: MLOAD
00000398: PUSH2 0x03a1
0000039b: SWAP2
0000039c: SWAP1
0000039d: PUSH2 0x420e
000003a0: JUMP
000003a1: JUMPDEST
000003a2: PUSH1 0x40
000003a4: MLOAD
000003a5: DUP1
000003a6: SWAP2
000003a7: SUB
000003a8: SWAP1
000003a9: RETURN
000003aa: JUMPDEST
000003ab: PUSH2 0x03b2
000003ae: PUSH2 0x10ad
000003b1: JUMP
000003b2: JUMPDEST
000003b3: PUSH1 0x40
000003b5: MLOAD
000003b6: PUSH2 0x03bf
000003b9: SWAP2
000003ba: SWAP1
000003bb: PUSH2 0x420e
000003be: JUMP
000003bf: JUMPDEST
000003c0: PUSH1 0x40
000003c2: MLOAD
000003c3: DUP1
000003c4: SWAP2
000003c5: SUB
000003c6: SWAP1
000003c7: RETURN
000003c8: JUMPDEST
000003c9: PUSH2 0x03e2
000003cc: PUSH1 0x04
000003ce: DUP1
000003cf: CALLDATASIZE
000003d0: SUB
000003d1: DUP2
000003d2: ADD
000003d3: SWAP1
000003d4: PUSH2 0x03dd
000003d7: SWAP2
000003d8: SWAP1
000003d9: PUSH2 0x37db
000003dc: JUMP
000003dd: JUMPDEST
000003de: PUSH2 0x10b7
000003e1: JUMP
000003e2: JUMPDEST
000003e3: PUSH1 0x40
000003e5: MLOAD
000003e6: PUSH2 0x03ef
000003e9: SWAP2
000003ea: SWAP1
000003eb: PUSH2 0x420e
000003ee: JUMP
000003ef: JUMPDEST
000003f0: PUSH1 0x40
000003f2: MLOAD
000003f3: DUP1
000003f4: SWAP2
000003f5: SUB
000003f6: SWAP1
000003f7: RETURN
000003f8: JUMPDEST
000003f9: PUSH2 0x0412
000003fc: PUSH1 0x04
000003fe: DUP1
000003ff: CALLDATASIZE
00000400: SUB
00000401: DUP2
00000402: ADD
00000403: SWAP1
00000404: PUSH2 0x040d
00000407: SWAP2
00000408: SWAP1
00000409: PUSH2 0x3804
0000040c: JUMP
0000040d: JUMPDEST
0000040e: PUSH2 0x1121
00000411: JUMP
00000412: JUMPDEST
00000413: PUSH1 0x40
00000415: MLOAD
00000416: PUSH2 0x041f
00000419: SWAP2
0000041a: SWAP1
0000041b: PUSH2 0x405f
0000041e: JUMP
0000041f: JUMPDEST
00000420: PUSH1 0x40
00000422: MLOAD
00000423: DUP1
00000424: SWAP2
00000425: SUB
00000426: SWAP1
00000427: RETURN
00000428: JUMPDEST
00000429: PUSH2 0x0442
0000042c: PUSH1 0x04
0000042e: DUP1
0000042f: CALLDATASIZE
00000430: SUB
00000431: DUP2
00000432: ADD
00000433: SWAP1
00000434: PUSH2 0x043d
00000437: SWAP2
00000438: SWAP1
00000439: PUSH2 0x3919
0000043c: JUMP
0000043d: JUMPDEST
0000043e: PUSH2 0x1227
00000441: JUMP
00000442: JUMPDEST
00000443: STOP
00000444: JUMPDEST
00000445: PUSH2 0x045e
00000448: PUSH1 0x04
0000044a: DUP1
0000044b: CALLDATASIZE
0000044c: SUB
0000044d: DUP2
0000044e: ADD
0000044f: SWAP1
00000450: PUSH2 0x0459
00000453: SWAP2
00000454: SWAP1
00000455: PUSH2 0x39fc
00000458: JUMP
00000459: JUMPDEST
0000045a: PUSH2 0x1286
0000045d: JUMP
0000045e: JUMPDEST
0000045f: PUSH1 0x40
00000461: MLOAD
00000462: PUSH2 0x046b
00000465: SWAP2
00000466: SWAP1
00000467: PUSH2 0x420e
0000046a: JUMP
0000046b: JUMPDEST
0000046c: PUSH1 0x40
0000046e: MLOAD
0000046f: DUP1
00000470: SWAP2
00000471: SUB
00000472: SWAP1
00000473: RETURN
00000474: JUMPDEST
00000475: PUSH2 0x047c
00000478: PUSH2 0x12f0
0000047b: JUMP
0000047c: JUMPDEST
0000047d: STOP
0000047e: JUMPDEST
0000047f: PUSH2 0x0498
00000482: PUSH1 0x04
00000484: DUP1
00000485: CALLDATASIZE
00000486: SUB
00000487: DUP2
00000488: ADD
00000489: SWAP1
0000048a: PUSH2 0x0493
0000048d: SWAP2
0000048e: SWAP1
0000048f: PUSH2 0x3a61
00000492: JUMP
00000493: JUMPDEST
00000494: PUSH2 0x130a
00000497: JUMP
00000498: JUMPDEST
00000499: STOP
0000049a: JUMPDEST
0000049b: PUSH2 0x04b4
0000049e: PUSH1 0x04
000004a0: DUP1
000004a1: CALLDATASIZE
000004a2: SUB
000004a3: DUP2
000004a4: ADD
000004a5: SWAP1
000004a6: PUSH2 0x04af
000004a9: SWAP2
000004aa: SWAP1
000004ab: PUSH2 0x385c
000004ae: JUMP
000004af: JUMPDEST
000004b0: PUSH2 0x15a8
000004b3: JUMP
000004b4: JUMPDEST
000004b5: PUSH1 0x40
000004b7: MLOAD
000004b8: PUSH2 0x04c1
000004bb: SWAP2
000004bc: SWAP1
000004bd: PUSH2 0x420e
000004c0: JUMP
000004c1: JUMPDEST
000004c2: PUSH1 0x40
000004c4: MLOAD
000004c5: DUP1
000004c6: SWAP2
000004c7: SUB
000004c8: SWAP1
000004c9: RETURN
000004ca: JUMPDEST
000004cb: PUSH2 0x04e4
000004ce: PUSH1 0x04
000004d0: DUP1
000004d1: CALLDATASIZE
000004d2: SUB
000004d3: DUP2
000004d4: ADD
000004d5: SWAP1
000004d6: PUSH2 0x04df
000004d9: SWAP2
000004da: SWAP1
000004db: PUSH2 0x3898
000004de: JUMP
000004df: JUMPDEST
000004e0: PUSH2 0x15ee
000004e3: JUMP
000004e4: JUMPDEST
000004e5: PUSH1 0x40
000004e7: MLOAD
000004e8: PUSH2 0x04f1
000004eb: SWAP2
000004ec: SWAP1
000004ed: PUSH2 0x420e
000004f0: JUMP
000004f1: JUMPDEST
000004f2: PUSH1 0x40
000004f4: MLOAD
000004f5: DUP1
000004f6: SWAP2
000004f7: SUB
000004f8: SWAP1
000004f9: RETURN
000004fa: JUMPDEST
000004fb: PUSH2 0x0514
000004fe: PUSH1 0x04
00000500: DUP1
00000501: CALLDATASIZE
00000502: SUB
00000503: DUP2
00000504: ADD
00000505: SWAP1
00000506: PUSH2 0x050f
00000509: SWAP2
0000050a: SWAP1
0000050b: PUSH2 0x3a25
0000050e: JUMP
0000050f: JUMPDEST
00000510: PUSH2 0x1602
00000513: JUMP
00000514: JUMPDEST
00000515: PUSH1 0x40
00000517: MLOAD
00000518: PUSH2 0x0521
0000051b: SWAP2
0000051c: SWAP1
0000051d: PUSH2 0x420e
00000520: JUMP
00000521: JUMPDEST
00000522: PUSH1 0x40
00000524: MLOAD
00000525: DUP1
00000526: SWAP2
00000527: SUB
00000528: SWAP1
00000529: RETURN
0000052a: JUMPDEST
0000052b: PUSH2 0x0544
0000052e: PUSH1 0x04
00000530: DUP1
00000531: CALLDATASIZE
00000532: SUB
00000533: DUP2
00000534: ADD
00000535: SWAP1
00000536: PUSH2 0x053f
00000539: SWAP2
0000053a: SWAP1
0000053b: PUSH2 0x3898
0000053e: JUMP
0000053f: JUMPDEST
00000540: PUSH2 0x165d
00000543: JUMP
00000544: JUMPDEST
00000545: PUSH1 0x40
00000547: MLOAD
00000548: PUSH2 0x0551
0000054b: SWAP2
0000054c: SWAP1
0000054d: PUSH2 0x420e
00000550: JUMP
00000551: JUMPDEST
00000552: PUSH1 0x40
00000554: MLOAD
00000555: DUP1
00000556: SWAP2
00000557: SUB
00000558: SWAP1
00000559: RETURN
0000055a: JUMPDEST
0000055b: PUSH2 0x0562
0000055e: PUSH2 0x16b8
00000561: JUMP
00000562: JUMPDEST
00000563: PUSH1 0x40
00000565: MLOAD
00000566: PUSH2 0x056f
00000569: SWAP2
0000056a: SWAP1
0000056b: PUSH2 0x403d
0000056e: JUMP
0000056f: JUMPDEST
00000570: PUSH1 0x40
00000572: MLOAD
00000573: DUP1
00000574: SWAP2
00000575: SUB
00000576: SWAP1
00000577: RETURN
00000578: JUMPDEST
00000579: PUSH2 0x0592
0000057c: PUSH1 0x04
0000057e: DUP1
0000057f: CALLDATASIZE
00000580: SUB
00000581: DUP2
00000582: ADD
00000583: SWAP1
00000584: PUSH2 0x058d
00000587: SWAP2
00000588: SWAP1
00000589: PUSH2 0x37db
0000058c: JUMP
0000058d: JUMPDEST
0000058e: PUSH2 0x1746
00000591: JUMP
00000592: JUMPDEST
00000593: PUSH1 0x40
00000595: MLOAD
00000596: PUSH2 0x059f
00000599: SWAP2
0000059a: SWAP1
0000059b: PUSH2 0x4081
0000059e: JUMP
0000059f: JUMPDEST
000005a0: PUSH1 0x40
000005a2: MLOAD
000005a3: DUP1
000005a4: SWAP2
000005a5: SUB
000005a6: SWAP1
000005a7: RETURN
000005a8: JUMPDEST
000005a9: PUSH2 0x05c2
000005ac: PUSH1 0x04
000005ae: DUP1
000005af: CALLDATASIZE
000005b0: SUB
000005b1: DUP2
000005b2: ADD
000005b3: SWAP1
000005b4: PUSH2 0x05bd
000005b7: SWAP2
000005b8: SWAP1
000005b9: PUSH2 0x38d4
000005bc: JUMP
000005bd: JUMPDEST
000005be: PUSH2 0x1766
000005c1: JUMP
000005c2: JUMPDEST
000005c3: STOP
000005c4: JUMPDEST
000005c5: PUSH2 0x05cc
000005c8: PUSH2 0x1a21
000005cb: JUMP
000005cc: JUMPDEST
000005cd: PUSH1 0x40
000005cf: MLOAD
000005d0: PUSH2 0x05d9
000005d3: SWAP2
000005d4: SWAP1
000005d5: PUSH2 0x3f7d
000005d8: JUMP
000005d9: JUMPDEST
000005da: PUSH1 0x40
000005dc: MLOAD
000005dd: DUP1
000005de: SWAP2
000005df: SUB
000005e0: SWAP1
000005e1: RETURN
000005e2: JUMPDEST
000005e3: PUSH2 0x05fc
000005e6: PUSH1 0x04
000005e8: DUP1
000005e9: CALLDATASIZE
000005ea: SUB
000005eb: DUP2
000005ec: ADD
000005ed: SWAP1
000005ee: PUSH2 0x05f7
000005f1: SWAP2
000005f2: SWAP1
000005f3: PUSH2 0x39fc
000005f6: JUMP
000005f7: JUMPDEST
000005f8: PUSH2 0x1a47
000005fb: JUMP
000005fc: JUMPDEST
000005fd: STOP
000005fe: JUMPDEST
000005ff: PUSH1 0x00
00000601: PUSH1 0x01
00000603: DUP1
00000604: SLOAD
00000605: SWAP1
00000606: PUSH2 0x0100
00000609: EXP
0000060a: SWAP1
0000060b: DIV
0000060c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000621: AND
00000622: SWAP1
00000623: POP
00000624: SWAP1
00000625: JUMP
00000626: JUMPDEST
00000627: PUSH2 0x062e
0000062a: PUSH2 0x1bb5
0000062d: JUMP
0000062e: JUMPDEST
0000062f: PUSH2 0x0637
00000632: DUP2
00000633: PUSH2 0x1bd1
00000636: JUMP
00000637: JUMPDEST
00000638: PUSH2 0x063f
0000063b: PUSH2 0x2149
0000063e: JUMP
0000063f: JUMPDEST
00000640: POP
00000641: JUMP
00000642: JUMPDEST
00000643: PUSH1 0x00
00000645: PUSH2 0x064d
00000648: TIMESTAMP
00000649: PUSH2 0x2153
0000064c: JUMP
0000064d: JUMPDEST
0000064e: SWAP1
0000064f: POP
00000650: SWAP1
00000651: JUMP
00000652: JUMPDEST
00000653: PUSH1 0x00
00000655: PUSH1 0x08
00000657: PUSH1 0x00
00000659: DUP4
0000065a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000066f: AND
00000670: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000685: AND
00000686: DUP2
00000687: MSTORE
00000688: PUSH1 0x20
0000068a: ADD
0000068b: SWAP1
0000068c: DUP2
0000068d: MSTORE
0000068e: PUSH1 0x20
00000690: ADD
00000691: PUSH1 0x00
00000693: KECCAK256
00000694: PUSH1 0x00
00000696: ADD
00000697: PUSH1 0x10
00000699: SWAP1
0000069a: SLOAD
0000069b: SWAP1
0000069c: PUSH2 0x0100
0000069f: EXP
000006a0: SWAP1
000006a1: DIV
000006a2: PUSH16 0xffffffffffffffffffffffffffffffff
000006b3: AND
000006b4: PUSH16 0xffffffffffffffffffffffffffffffff
000006c5: AND
000006c6: SWAP1
000006c7: POP
000006c8: SWAP2
000006c9: SWAP1
000006ca: POP
000006cb: JUMP
000006cc: JUMPDEST
000006cd: PUSH2 0x06d4
000006d0: PUSH2 0x1bb5
000006d3: JUMP
000006d4: JUMPDEST
000006d5: PUSH1 0x07
000006d7: PUSH1 0x00
000006d9: DUP4
000006da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006ef: AND
000006f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000705: AND
00000706: DUP2
00000707: MSTORE
00000708: PUSH1 0x20
0000070a: ADD
0000070b: SWAP1
0000070c: DUP2
0000070d: MSTORE
0000070e: PUSH1 0x20
00000710: ADD
00000711: PUSH1 0x00
00000713: KECCAK256
00000714: PUSH1 0x00
00000716: SWAP1
00000717: SLOAD
00000718: SWAP1
00000719: PUSH2 0x0100
0000071c: EXP
0000071d: SWAP1
0000071e: DIV
0000071f: PUSH1 0xff
00000721: AND
00000722: PUSH2 0x0760
00000725: JUMPI
00000726: PUSH1 0x40
00000728: MLOAD
00000729: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000074a: DUP2
0000074b: MSTORE
0000074c: PUSH1 0x04
0000074e: ADD
0000074f: PUSH2 0x0757
00000752: SWAP1
00000753: PUSH2 0x410e
00000756: JUMP
00000757: JUMPDEST
00000758: PUSH1 0x40
0000075a: MLOAD
0000075b: DUP1
0000075c: SWAP2
0000075d: SUB
0000075e: SWAP1
0000075f: REVERT
00000760: JUMPDEST
00000761: PUSH2 0x076b
00000764: DUP3
00000765: PUSH1 0x00
00000767: PUSH2 0x22bc
0000076a: JUMP
0000076b: JUMPDEST
0000076c: PUSH2 0x0798
0000076f: CALLER
00000770: ADDRESS
00000771: DUP4
00000772: DUP6
00000773: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000788: AND
00000789: PUSH2 0x2740
0000078c: SWAP1
0000078d: SWAP4
0000078e: SWAP3
0000078f: SWAP2
00000790: SWAP1
00000791: PUSH4 0xffffffff
00000796: AND
00000797: JUMP
00000798: JUMPDEST
00000799: PUSH2 0x07a3
0000079c: DUP3
0000079d: PUSH1 0x01
0000079f: PUSH2 0x22bc
000007a2: JUMP
000007a3: JUMPDEST
000007a4: PUSH2 0x07ab
000007a7: PUSH2 0x2149
000007aa: JUMP
000007ab: JUMPDEST
000007ac: POP
000007ad: POP
000007ae: JUMP
000007af: JUMPDEST
000007b0: PUSH2 0x07b7
000007b3: PUSH2 0x1bb5
000007b6: JUMP
000007b7: JUMPDEST
000007b8: PUSH2 0x07c2
000007bb: DUP2
000007bc: PUSH1 0x01
000007be: PUSH2 0x22bc
000007c1: JUMP
000007c2: JUMPDEST
000007c3: PUSH2 0x07ca
000007c6: PUSH2 0x2149
000007c9: JUMP
000007ca: JUMPDEST
000007cb: POP
000007cc: JUMP
000007cd: JUMPDEST
000007ce: PUSH1 0x01
000007d0: PUSH1 0x00
000007d2: SWAP1
000007d3: SLOAD
000007d4: SWAP1
000007d5: PUSH2 0x0100
000007d8: EXP
000007d9: SWAP1
000007da: DIV
000007db: PUSH1 0xff
000007dd: AND
000007de: DUP2
000007df: JUMP
000007e0: JUMPDEST
000007e1: PUSH1 0x00
000007e3: NUMBER
000007e4: DUP3
000007e5: GT
000007e6: ISZERO
000007e7: PUSH2 0x07ef
000007ea: JUMPI
000007eb: PUSH1 0x00
000007ed: DUP1
000007ee: REVERT
000007ef: JUMPDEST
000007f0: PUSH1 0x00
000007f2: DUP1
000007f3: PUSH1 0x01
000007f5: DUP1
000007f6: SLOAD
000007f7: SWAP1
000007f8: PUSH2 0x0100
000007fb: EXP
000007fc: SWAP1
000007fd: DIV
000007fe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000813: AND
00000814: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000829: AND
0000082a: PUSH4 0x010ae757
0000082f: DUP7
00000830: PUSH1 0x40
00000832: MLOAD
00000833: DUP3
00000834: PUSH4 0xffffffff
00000839: AND
0000083a: PUSH1 0xe0
0000083c: SHL
0000083d: DUP2
0000083e: MSTORE
0000083f: PUSH1 0x04
00000841: ADD
00000842: PUSH2 0x084b
00000845: SWAP2
00000846: SWAP1
00000847: PUSH2 0x3f7d
0000084a: JUMP
0000084b: JUMPDEST
0000084c: PUSH1 0x20
0000084e: PUSH1 0x40
00000850: MLOAD
00000851: DUP1
00000852: DUP4
00000853: SUB
00000854: DUP2
00000855: DUP7
00000856: DUP1
00000857: EXTCODESIZE
00000858: ISZERO
00000859: DUP1
0000085a: ISZERO
0000085b: PUSH2 0x0863
0000085e: JUMPI
0000085f: PUSH1 0x00
00000861: DUP1
00000862: REVERT
00000863: JUMPDEST
00000864: POP
00000865: GAS
00000866: STATICCALL
00000867: ISZERO
00000868: DUP1
00000869: ISZERO
0000086a: PUSH2 0x0877
0000086d: JUMPI
0000086e: RETURNDATASIZE
0000086f: PUSH1 0x00
00000871: DUP1
00000872: RETURNDATACOPY
00000873: RETURNDATASIZE
00000874: PUSH1 0x00
00000876: REVERT
00000877: JUMPDEST
00000878: POP
00000879: POP
0000087a: POP
0000087b: POP
0000087c: PUSH1 0x40
0000087e: MLOAD
0000087f: RETURNDATASIZE
00000880: PUSH1 0x1f
00000882: NOT
00000883: PUSH1 0x1f
00000885: DUP3
00000886: ADD
00000887: AND
00000888: DUP3
00000889: ADD
0000088a: DUP1
0000088b: PUSH1 0x40
0000088d: MSTORE
0000088e: POP
0000088f: DUP2
00000890: ADD
00000891: SWAP1
00000892: PUSH2 0x089b
00000895: SWAP2
00000896: SWAP1
00000897: PUSH2 0x3b2b
0000089a: JUMP
0000089b: JUMPDEST
0000089c: SWAP1
0000089d: POP
0000089e: PUSH1 0x00
000008a0: JUMPDEST
000008a1: PUSH1 0x80
000008a3: DUP2
000008a4: LT
000008a5: ISZERO
000008a6: PUSH2 0x0999
000008a9: JUMPI
000008aa: DUP2
000008ab: DUP4
000008ac: LT
000008ad: PUSH2 0x08b5
000008b0: JUMPI
000008b1: PUSH2 0x0999
000008b4: JUMP
000008b5: JUMPDEST
000008b6: PUSH1 0x00
000008b8: PUSH1 0x02
000008ba: PUSH1 0x01
000008bc: DUP5
000008bd: DUP7
000008be: ADD
000008bf: ADD
000008c0: DUP2
000008c1: PUSH2 0x08c6
000008c4: JUMPI
000008c5: INVALID
000008c6: JUMPDEST
000008c7: DIV
000008c8: SWAP1
000008c9: POP
000008ca: DUP6
000008cb: PUSH1 0x01
000008cd: DUP1
000008ce: SLOAD
000008cf: SWAP1
000008d0: PUSH2 0x0100
000008d3: EXP
000008d4: SWAP1
000008d5: DIV
000008d6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000008eb: AND
000008ec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000901: AND
00000902: PUSH4 0x28d09d47
00000907: DUP10
00000908: DUP5
00000909: PUSH1 0x40
0000090b: MLOAD
0000090c: DUP4
0000090d: PUSH4 0xffffffff
00000912: AND
00000913: PUSH1 0xe0
00000915: SHL
00000916: DUP2
00000917: MSTORE
00000918: PUSH1 0x04
0000091a: ADD
0000091b: PUSH2 0x0925
0000091e: SWAP3
0000091f: SWAP2
00000920: SWAP1
00000921: PUSH2 0x4014
00000924: JUMP
00000925: JUMPDEST
00000926: PUSH1 0x80
00000928: PUSH1 0x40
0000092a: MLOAD
0000092b: DUP1
0000092c: DUP4
0000092d: SUB
0000092e: DUP2
0000092f: DUP7
00000930: DUP1
00000931: EXTCODESIZE
00000932: ISZERO
00000933: DUP1
00000934: ISZERO
00000935: PUSH2 0x093d
00000938: JUMPI
00000939: PUSH1 0x00
0000093b: DUP1
0000093c: REVERT
0000093d: JUMPDEST
0000093e: POP
0000093f: GAS
00000940: STATICCALL
00000941: ISZERO
00000942: DUP1
00000943: ISZERO
00000944: PUSH2 0x0951
00000947: JUMPI
00000948: RETURNDATASIZE
00000949: PUSH1 0x00
0000094b: DUP1
0000094c: RETURNDATACOPY
0000094d: RETURNDATASIZE
0000094e: PUSH1 0x00
00000950: REVERT
00000951: JUMPDEST
00000952: POP
00000953: POP
00000954: POP
00000955: POP
00000956: PUSH1 0x40
00000958: MLOAD
00000959: RETURNDATASIZE
0000095a: PUSH1 0x1f
0000095c: NOT
0000095d: PUSH1 0x1f
0000095f: DUP3
00000960: ADD
00000961: AND
00000962: DUP3
00000963: ADD
00000964: DUP1
00000965: PUSH1 0x40
00000967: MSTORE
00000968: POP
00000969: DUP2
0000096a: ADD
0000096b: SWAP1
0000096c: PUSH2 0x0975
0000096f: SWAP2
00000970: SWAP1
00000971: PUSH2 0x3ad9
00000974: JUMP
00000975: JUMPDEST
00000976: PUSH1 0x60
00000978: ADD
00000979: MLOAD
0000097a: GT
0000097b: PUSH2 0x0986
0000097e: JUMPI
0000097f: DUP1
00000980: SWAP4
00000981: POP
00000982: PUSH2 0x098d
00000985: JUMP
00000986: JUMPDEST
00000987: PUSH1 0x01
00000989: DUP2
0000098a: SUB
0000098b: SWAP3
0000098c: POP
0000098d: JUMPDEST
0000098e: POP
0000098f: DUP1
00000990: PUSH1 0x01
00000992: ADD
00000993: SWAP1
00000994: POP
00000995: PUSH2 0x08a0
00000998: JUMP
00000999: JUMPDEST
0000099a: POP
0000099b: PUSH2 0x09a2
0000099e: PUSH2 0x35c8
000009a1: JUMP
000009a2: JUMPDEST
000009a3: PUSH1 0x01
000009a5: DUP1
000009a6: SLOAD
000009a7: SWAP1
000009a8: PUSH2 0x0100
000009ab: EXP
000009ac: SWAP1
000009ad: DIV
000009ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009c3: AND
000009c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009d9: AND
000009da: PUSH4 0x28d09d47
000009df: DUP8
000009e0: DUP6
000009e1: PUSH1 0x40
000009e3: MLOAD
000009e4: DUP4
000009e5: PUSH4 0xffffffff
000009ea: AND
000009eb: PUSH1 0xe0
000009ed: SHL
000009ee: DUP2
000009ef: MSTORE
000009f0: PUSH1 0x04
000009f2: ADD
000009f3: PUSH2 0x09fd
000009f6: SWAP3
000009f7: SWAP2
000009f8: SWAP1
000009f9: PUSH2 0x4014
000009fc: JUMP
000009fd: JUMPDEST
000009fe: PUSH1 0x80
00000a00: PUSH1 0x40
00000a02: MLOAD
00000a03: DUP1
00000a04: DUP4
00000a05: SUB
00000a06: DUP2
00000a07: DUP7
00000a08: DUP1
00000a09: EXTCODESIZE
00000a0a: ISZERO
00000a0b: DUP1
00000a0c: ISZERO
00000a0d: PUSH2 0x0a15
00000a10: JUMPI
00000a11: PUSH1 0x00
00000a13: DUP1
00000a14: REVERT
00000a15: JUMPDEST
00000a16: POP
00000a17: GAS
00000a18: STATICCALL
00000a19: ISZERO
00000a1a: DUP1
00000a1b: ISZERO
00000a1c: PUSH2 0x0a29
00000a1f: JUMPI
00000a20: RETURNDATASIZE
00000a21: PUSH1 0x00
00000a23: DUP1
00000a24: RETURNDATACOPY
00000a25: RETURNDATASIZE
00000a26: PUSH1 0x00
00000a28: REVERT
00000a29: JUMPDEST
00000a2a: POP
00000a2b: POP
00000a2c: POP
00000a2d: POP
00000a2e: PUSH1 0x40
00000a30: MLOAD
00000a31: RETURNDATASIZE
00000a32: PUSH1 0x1f
00000a34: NOT
00000a35: PUSH1 0x1f
00000a37: DUP3
00000a38: ADD
00000a39: AND
00000a3a: DUP3
00000a3b: ADD
00000a3c: DUP1
00000a3d: PUSH1 0x40
00000a3f: MSTORE
00000a40: POP
00000a41: DUP2
00000a42: ADD
00000a43: SWAP1
00000a44: PUSH2 0x0a4d
00000a47: SWAP2
00000a48: SWAP1
00000a49: PUSH2 0x3ad9
00000a4c: JUMP
00000a4d: JUMPDEST
00000a4e: SWAP1
00000a4f: POP
00000a50: PUSH1 0x00
00000a52: PUSH1 0x01
00000a54: DUP1
00000a55: SLOAD
00000a56: SWAP1
00000a57: PUSH2 0x0100
00000a5a: EXP
00000a5b: SWAP1
00000a5c: DIV
00000a5d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a72: AND
00000a73: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a88: AND
00000a89: PUSH4 0x900cf0cf
00000a8e: PUSH1 0x40
00000a90: MLOAD
00000a91: DUP2
00000a92: PUSH4 0xffffffff
00000a97: AND
00000a98: PUSH1 0xe0
00000a9a: SHL
00000a9b: DUP2
00000a9c: MSTORE
00000a9d: PUSH1 0x04
00000a9f: ADD
00000aa0: PUSH1 0x20
00000aa2: PUSH1 0x40
00000aa4: MLOAD
00000aa5: DUP1
00000aa6: DUP4
00000aa7: SUB
00000aa8: DUP2
00000aa9: DUP7
00000aaa: DUP1
00000aab: EXTCODESIZE
00000aac: ISZERO
00000aad: DUP1
00000aae: ISZERO
00000aaf: PUSH2 0x0ab7
00000ab2: JUMPI
00000ab3: PUSH1 0x00
00000ab5: DUP1
00000ab6: REVERT
00000ab7: JUMPDEST
00000ab8: POP
00000ab9: GAS
00000aba: STATICCALL
00000abb: ISZERO
00000abc: DUP1
00000abd: ISZERO
00000abe: PUSH2 0x0acb
00000ac1: JUMPI
00000ac2: RETURNDATASIZE
00000ac3: PUSH1 0x00
00000ac5: DUP1
00000ac6: RETURNDATACOPY
00000ac7: RETURNDATASIZE
00000ac8: PUSH1 0x00
00000aca: REVERT
00000acb: JUMPDEST
00000acc: POP
00000acd: POP
00000ace: POP
00000acf: POP
00000ad0: PUSH1 0x40
00000ad2: MLOAD
00000ad3: RETURNDATASIZE
00000ad4: PUSH1 0x1f
00000ad6: NOT
00000ad7: PUSH1 0x1f
00000ad9: DUP3
00000ada: ADD
00000adb: AND
00000adc: DUP3
00000add: ADD
00000ade: DUP1
00000adf: PUSH1 0x40
00000ae1: MSTORE
00000ae2: POP
00000ae3: DUP2
00000ae4: ADD
00000ae5: SWAP1
00000ae6: PUSH2 0x0aef
00000ae9: SWAP2
00000aea: SWAP1
00000aeb: PUSH2 0x3b2b
00000aee: JUMP
00000aef: JUMPDEST
00000af0: SWAP1
00000af1: POP
00000af2: PUSH1 0x00
00000af4: PUSH2 0x0afd
00000af7: DUP8
00000af8: DUP4
00000af9: PUSH2 0x27c9
00000afc: JUMP
00000afd: JUMPDEST
00000afe: SWAP1
00000aff: POP
00000b00: PUSH2 0x0b07
00000b03: PUSH2 0x35c8
00000b06: JUMP
00000b07: JUMPDEST
00000b08: PUSH1 0x01
00000b0a: DUP1
00000b0b: SLOAD
00000b0c: SWAP1
00000b0d: PUSH2 0x0100
00000b10: EXP
00000b11: SWAP1
00000b12: DIV
00000b13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b28: AND
00000b29: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b3e: AND
00000b3f: PUSH4 0xd1febfb9
00000b44: DUP4
00000b45: PUSH1 0x40
00000b47: MLOAD
00000b48: DUP3
00000b49: PUSH4 0xffffffff
00000b4e: AND
00000b4f: PUSH1 0xe0
00000b51: SHL
00000b52: DUP2
00000b53: MSTORE
00000b54: PUSH1 0x04
00000b56: ADD
00000b57: PUSH2 0x0b60
00000b5a: SWAP2
00000b5b: SWAP1
00000b5c: PUSH2 0x420e
00000b5f: JUMP
00000b60: JUMPDEST
00000b61: PUSH1 0x80
00000b63: PUSH1 0x40
00000b65: MLOAD
00000b66: DUP1
00000b67: DUP4
00000b68: SUB
00000b69: DUP2
00000b6a: DUP7
00000b6b: DUP1
00000b6c: EXTCODESIZE
00000b6d: ISZERO
00000b6e: DUP1
00000b6f: ISZERO
00000b70: PUSH2 0x0b78
00000b73: JUMPI
00000b74: PUSH1 0x00
00000b76: DUP1
00000b77: REVERT
00000b78: JUMPDEST
00000b79: POP
00000b7a: GAS
00000b7b: STATICCALL
00000b7c: ISZERO
00000b7d: DUP1
00000b7e: ISZERO
00000b7f: PUSH2 0x0b8c
00000b82: JUMPI
00000b83: RETURNDATASIZE
00000b84: PUSH1 0x00
00000b86: DUP1
00000b87: RETURNDATACOPY
00000b88: RETURNDATASIZE
00000b89: PUSH1 0x00
00000b8b: REVERT
00000b8c: JUMPDEST
00000b8d: POP
00000b8e: POP
00000b8f: POP
00000b90: POP
00000b91: PUSH1 0x40
00000b93: MLOAD
00000b94: RETURNDATASIZE
00000b95: PUSH1 0x1f
00000b97: NOT
00000b98: PUSH1 0x1f
00000b9a: DUP3
00000b9b: ADD
00000b9c: AND
00000b9d: DUP3
00000b9e: ADD
00000b9f: DUP1
00000ba0: PUSH1 0x40
00000ba2: MSTORE
00000ba3: POP
00000ba4: DUP2
00000ba5: ADD
00000ba6: SWAP1
00000ba7: PUSH2 0x0bb0
00000baa: SWAP2
00000bab: SWAP1
00000bac: PUSH2 0x3ad9
00000baf: JUMP
00000bb0: JUMPDEST
00000bb1: SWAP1
00000bb2: POP
00000bb3: PUSH1 0x00
00000bb5: DUP1
00000bb6: DUP5
00000bb7: DUP5
00000bb8: LT
00000bb9: ISZERO
00000bba: PUSH2 0x0c93
00000bbd: JUMPI
00000bbe: PUSH2 0x0bc5
00000bc1: PUSH2 0x35c8
00000bc4: JUMP
00000bc5: JUMPDEST
00000bc6: PUSH1 0x01
00000bc8: DUP1
00000bc9: SLOAD
00000bca: SWAP1
00000bcb: PUSH2 0x0100
00000bce: EXP
00000bcf: SWAP1
00000bd0: DIV
00000bd1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000be6: AND
00000be7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000bfc: AND
00000bfd: PUSH4 0xd1febfb9
00000c02: PUSH1 0x01
00000c04: DUP8
00000c05: ADD
00000c06: PUSH1 0x40
00000c08: MLOAD
00000c09: DUP3
00000c0a: PUSH4 0xffffffff
00000c0f: AND
00000c10: PUSH1 0xe0
00000c12: SHL
00000c13: DUP2
00000c14: MSTORE
00000c15: PUSH1 0x04
00000c17: ADD
00000c18: PUSH2 0x0c21
00000c1b: SWAP2
00000c1c: SWAP1
00000c1d: PUSH2 0x420e
00000c20: JUMP
00000c21: JUMPDEST
00000c22: PUSH1 0x80
00000c24: PUSH1 0x40
00000c26: MLOAD
00000c27: DUP1
00000c28: DUP4
00000c29: SUB
00000c2a: DUP2
00000c2b: DUP7
00000c2c: DUP1
00000c2d: EXTCODESIZE
00000c2e: ISZERO
00000c2f: DUP1
00000c30: ISZERO
00000c31: PUSH2 0x0c39
00000c34: JUMPI
00000c35: PUSH1 0x00
00000c37: DUP1
00000c38: REVERT
00000c39: JUMPDEST
00000c3a: POP
00000c3b: GAS
00000c3c: STATICCALL
00000c3d: ISZERO
00000c3e: DUP1
00000c3f: ISZERO
00000c40: PUSH2 0x0c4d
00000c43: JUMPI
00000c44: RETURNDATASIZE
00000c45: PUSH1 0x00
00000c47: DUP1
00000c48: RETURNDATACOPY
00000c49: RETURNDATASIZE
00000c4a: PUSH1 0x00
00000c4c: REVERT
00000c4d: JUMPDEST
00000c4e: POP
00000c4f: POP
00000c50: POP
00000c51: POP
00000c52: PUSH1 0x40
00000c54: MLOAD
00000c55: RETURNDATASIZE
00000c56: PUSH1 0x1f
00000c58: NOT
00000c59: PUSH1 0x1f
00000c5b: DUP3
00000c5c: ADD
00000c5d: AND
00000c5e: DUP3
00000c5f: ADD
00000c60: DUP1
00000c61: PUSH1 0x40
00000c63: MSTORE
00000c64: POP
00000c65: DUP2
00000c66: ADD
00000c67: SWAP1
00000c68: PUSH2 0x0c71
00000c6b: SWAP2
00000c6c: SWAP1
00000c6d: PUSH2 0x3ad9
00000c70: JUMP
00000c71: JUMPDEST
00000c72: SWAP1
00000c73: POP
00000c74: DUP4
00000c75: PUSH1 0x60
00000c77: ADD
00000c78: MLOAD
00000c79: DUP2
00000c7a: PUSH1 0x60
00000c7c: ADD
00000c7d: MLOAD
00000c7e: SUB
00000c7f: SWAP3
00000c80: POP
00000c81: DUP4
00000c82: PUSH1 0x40
00000c84: ADD
00000c85: MLOAD
00000c86: DUP2
00000c87: PUSH1 0x40
00000c89: ADD
00000c8a: MLOAD
00000c8b: SUB
00000c8c: SWAP2
00000c8d: POP
00000c8e: POP
00000c8f: PUSH2 0x0ca6
00000c92: JUMP
00000c93: JUMPDEST
00000c94: DUP3
00000c95: PUSH1 0x60
00000c97: ADD
00000c98: MLOAD
00000c99: NUMBER
00000c9a: SUB
00000c9b: SWAP2
00000c9c: POP
00000c9d: DUP3
00000c9e: PUSH1 0x40
00000ca0: ADD
00000ca1: MLOAD
00000ca2: TIMESTAMP
00000ca3: SUB
00000ca4: SWAP1
00000ca5: POP
00000ca6: JUMPDEST
00000ca7: PUSH1 0x00
00000ca9: DUP4
00000caa: PUSH1 0x40
00000cac: ADD
00000cad: MLOAD
00000cae: SWAP1
00000caf: POP
00000cb0: PUSH1 0x00
00000cb2: DUP4
00000cb3: EQ
00000cb4: PUSH2 0x0cce
00000cb7: JUMPI
00000cb8: DUP3
00000cb9: DUP5
00000cba: PUSH1 0x60
00000cbc: ADD
00000cbd: MLOAD
00000cbe: DUP13
00000cbf: SUB
00000cc0: DUP4
00000cc1: MUL
00000cc2: DUP2
00000cc3: PUSH2 0x0cc8
00000cc6: JUMPI
00000cc7: INVALID
00000cc8: JUMPDEST
00000cc9: DIV
00000cca: DUP2
00000ccb: ADD
00000ccc: SWAP1
00000ccd: POP
00000cce: JUMPDEST
00000ccf: DUP7
00000cd0: PUSH1 0x40
00000cd2: ADD
00000cd3: MLOAD
00000cd4: DUP2
00000cd5: SUB
00000cd6: DUP8
00000cd7: PUSH1 0x20
00000cd9: ADD
00000cda: MLOAD
00000cdb: MUL
00000cdc: DUP8
00000cdd: PUSH1 0x00
00000cdf: ADD
00000ce0: DUP2
00000ce1: DUP2
00000ce2: MLOAD
00000ce3: SUB
00000ce4: SWAP2
00000ce5: POP
00000ce6: SWAP1
00000ce7: PUSH1 0x0f
00000ce9: SIGNEXTEND
00000cea: SWAP1
00000ceb: DUP2
00000cec: PUSH1 0x0f
00000cee: SIGNEXTEND
00000cef: DUP2
00000cf0: MSTORE
00000cf1: POP
00000cf2: POP
00000cf3: PUSH1 0x00
00000cf5: DUP8
00000cf6: PUSH1 0x00
00000cf8: ADD
00000cf9: MLOAD
00000cfa: PUSH1 0x0f
00000cfc: SIGNEXTEND
00000cfd: SLT
00000cfe: PUSH2 0x0d28
00000d01: JUMPI
00000d02: DUP7
00000d03: PUSH1 0x00
00000d05: ADD
00000d06: MLOAD
00000d07: PUSH16 0xffffffffffffffffffffffffffffffff
00000d18: AND
00000d19: SWAP10
00000d1a: POP
00000d1b: POP
00000d1c: POP
00000d1d: POP
00000d1e: POP
00000d1f: POP
00000d20: POP
00000d21: POP
00000d22: POP
00000d23: POP
00000d24: PUSH2 0x0d36
00000d27: JUMP
00000d28: JUMPDEST
00000d29: PUSH1 0x00
00000d2b: SWAP10
00000d2c: POP
00000d2d: POP
00000d2e: POP
00000d2f: POP
00000d30: POP
00000d31: POP
00000d32: POP
00000d33: POP
00000d34: POP
00000d35: POP
00000d36: JUMPDEST
00000d37: SWAP3
00000d38: SWAP2
00000d39: POP
00000d3a: POP
00000d3b: JUMP
00000d3c: JUMPDEST
00000d3d: PUSH1 0x00
00000d3f: PUSH1 0x04
00000d41: PUSH1 0x00
00000d43: DUP4
00000d44: DUP2
00000d45: MSTORE
00000d46: PUSH1 0x20
00000d48: ADD
00000d49: SWAP1
00000d4a: DUP2
00000d4b: MSTORE
00000d4c: PUSH1 0x20
00000d4e: ADD
00000d4f: PUSH1 0x00
00000d51: KECCAK256
00000d52: SLOAD
00000d53: SWAP1
00000d54: POP
00000d55: SWAP2
00000d56: SWAP1
00000d57: POP
00000d58: JUMP
00000d59: JUMPDEST
00000d5a: PUSH1 0x00
00000d5c: PUSH2 0x0d64
00000d5f: DUP3
00000d60: PUSH2 0x2153
00000d63: JUMP
00000d64: JUMPDEST
00000d65: SWAP1
00000d66: POP
00000d67: SWAP2
00000d68: SWAP1
00000d69: POP
00000d6a: JUMP
00000d6b: JUMPDEST
00000d6c: CALLER
00000d6d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d82: AND
00000d83: PUSH1 0x05
00000d85: PUSH1 0x00
00000d87: SWAP1
00000d88: SLOAD
00000d89: SWAP1
00000d8a: PUSH2 0x0100
00000d8d: EXP
00000d8e: SWAP1
00000d8f: DIV
00000d90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000da5: AND
00000da6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dbb: AND
00000dbc: EQ
00000dbd: PUSH2 0x0dfb
00000dc0: JUMPI
00000dc1: PUSH1 0x40
00000dc3: MLOAD
00000dc4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000de5: DUP2
00000de6: MSTORE
00000de7: PUSH1 0x04
00000de9: ADD
00000dea: PUSH2 0x0df2
00000ded: SWAP1
00000dee: PUSH2 0x41ee
00000df1: JUMP
00000df2: JUMPDEST
00000df3: PUSH1 0x40
00000df5: MLOAD
00000df6: DUP1
00000df7: SWAP2
00000df8: SUB
00000df9: SWAP1
00000dfa: REVERT
00000dfb: JUMPDEST
00000dfc: PUSH1 0x00
00000dfe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e13: AND
00000e14: DUP2
00000e15: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e2a: AND
00000e2b: EQ
00000e2c: ISZERO
00000e2d: PUSH2 0x0e6b
00000e30: JUMPI
00000e31: PUSH1 0x40
00000e33: MLOAD
00000e34: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000e55: DUP2
00000e56: MSTORE
00000e57: PUSH1 0x04
00000e59: ADD
00000e5a: PUSH2 0x0e62
00000e5d: SWAP1
00000e5e: PUSH2 0x41ae
00000e61: JUMP
00000e62: JUMPDEST
00000e63: PUSH1 0x40
00000e65: MLOAD
00000e66: DUP1
00000e67: SWAP2
00000e68: SUB
00000e69: SWAP1
00000e6a: REVERT
00000e6b: JUMPDEST
00000e6c: DUP1
00000e6d: PUSH1 0x05
00000e6f: PUSH1 0x00
00000e71: PUSH2 0x0100
00000e74: EXP
00000e75: DUP2
00000e76: SLOAD
00000e77: DUP2
00000e78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e8d: MUL
00000e8e: NOT
00000e8f: AND
00000e90: SWAP1
00000e91: DUP4
00000e92: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ea7: AND
00000ea8: MUL
00000ea9: OR
00000eaa: SWAP1
00000eab: SSTORE
00000eac: POP
00000ead: DUP1
00000eae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ec3: AND
00000ec4: PUSH32 0xe22b4f506b7da9a528a95d7063a6cde8d2b6268773b1f7f65c00057531704a3d
00000ee5: PUSH1 0x40
00000ee7: MLOAD
00000ee8: PUSH1 0x40
00000eea: MLOAD
00000eeb: DUP1
00000eec: SWAP2
00000eed: SUB
00000eee: SWAP1
00000eef: LOG2
00000ef0: POP
00000ef1: JUMP
00000ef2: JUMPDEST
00000ef3: PUSH2 0x0efa
00000ef6: PUSH2 0x1bb5
00000ef9: JUMP
00000efa: JUMPDEST
00000efb: PUSH2 0x0f0a
00000efe: DUP5
00000eff: DUP5
00000f00: SWAP1
00000f01: POP
00000f02: DUP4
00000f03: DUP4
00000f04: SWAP1
00000f05: POP
00000f06: PUSH2 0x28db
00000f09: JUMP
00000f0a: JUMPDEST
00000f0b: PUSH1 0x00
00000f0d: DUP5
00000f0e: DUP5
00000f0f: SWAP1
00000f10: POP
00000f11: SWAP1
00000f12: POP
00000f13: PUSH1 0x00
00000f15: JUMPDEST
00000f16: DUP2
00000f17: DUP2
00000f18: LT
00000f19: ISZERO
00000f1a: PUSH2 0x1089
00000f1d: JUMPI
00000f1e: PUSH1 0x07
00000f20: PUSH1 0x00
00000f22: DUP8
00000f23: DUP8
00000f24: DUP5
00000f25: DUP2
00000f26: DUP2
00000f27: LT
00000f28: PUSH2 0x0f2d
00000f2b: JUMPI
00000f2c: INVALID
00000f2d: JUMPDEST
00000f2e: SWAP1
00000f2f: POP
00000f30: PUSH1 0x20
00000f32: MUL
00000f33: ADD
00000f34: PUSH1 0x20
00000f36: DUP2
00000f37: ADD
00000f38: SWAP1
00000f39: PUSH2 0x0f42
00000f3c: SWAP2
00000f3d: SWAP1
00000f3e: PUSH2 0x39fc
00000f41: JUMP
00000f42: JUMPDEST
00000f43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f58: AND
00000f59: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f6e: AND
00000f6f: DUP2
00000f70: MSTORE
00000f71: PUSH1 0x20
00000f73: ADD
00000f74: SWAP1
00000f75: DUP2
00000f76: MSTORE
00000f77: PUSH1 0x20
00000f79: ADD
00000f7a: PUSH1 0x00
00000f7c: KECCAK256
00000f7d: PUSH1 0x00
00000f7f: SWAP1
00000f80: SLOAD
00000f81: SWAP1
00000f82: PUSH2 0x0100
00000f85: EXP
00000f86: SWAP1
00000f87: DIV
00000f88: PUSH1 0xff
00000f8a: AND
00000f8b: PUSH2 0x0fc9
00000f8e: JUMPI
00000f8f: PUSH1 0x40
00000f91: MLOAD
00000f92: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000fb3: DUP2
00000fb4: MSTORE
00000fb5: PUSH1 0x04
00000fb7: ADD
00000fb8: PUSH2 0x0fc0
00000fbb: SWAP1
00000fbc: PUSH2 0x410e
00000fbf: JUMP
00000fc0: JUMPDEST
00000fc1: PUSH1 0x40
00000fc3: MLOAD
00000fc4: DUP1
00000fc5: SWAP2
00000fc6: SUB
00000fc7: SWAP1
00000fc8: REVERT
00000fc9: JUMPDEST
00000fca: PUSH2 0x0ff4
00000fcd: DUP7
00000fce: DUP7
00000fcf: DUP4
00000fd0: DUP2
00000fd1: DUP2
00000fd2: LT
00000fd3: PUSH2 0x0fd8
00000fd6: JUMPI
00000fd7: INVALID
00000fd8: JUMPDEST
00000fd9: SWAP1
00000fda: POP
00000fdb: PUSH1 0x20
00000fdd: MUL
00000fde: ADD
00000fdf: PUSH1 0x20
00000fe1: DUP2
00000fe2: ADD
00000fe3: SWAP1
00000fe4: PUSH2 0x0fed
00000fe7: SWAP2
00000fe8: SWAP1
00000fe9: PUSH2 0x39fc
00000fec: JUMP
00000fed: JUMPDEST
00000fee: PUSH1 0x00
00000ff0: PUSH2 0x22bc
00000ff3: JUMP
00000ff4: JUMPDEST
00000ff5: PUSH2 0x1053
00000ff8: CALLER
00000ff9: ADDRESS
00000ffa: DUP7
00000ffb: DUP7
00000ffc: DUP6
00000ffd: DUP2
00000ffe: DUP2
00000fff: LT
00001000: PUSH2 0x1005
00001003: JUMPI
00001004: INVALID
00001005: JUMPDEST
00001006: SWAP1
00001007: POP
00001008: PUSH1 0x20
0000100a: MUL
0000100b: ADD
0000100c: CALLDATALOAD
0000100d: DUP10
0000100e: DUP10
0000100f: DUP7
00001010: DUP2
00001011: DUP2
00001012: LT
00001013: PUSH2 0x1018
00001016: JUMPI
00001017: INVALID
00001018: JUMPDEST
00001019: SWAP1
0000101a: POP
0000101b: PUSH1 0x20
0000101d: MUL
0000101e: ADD
0000101f: PUSH1 0x20
00001021: DUP2
00001022: ADD
00001023: SWAP1
00001024: PUSH2 0x102d
00001027: SWAP2
00001028: SWAP1
00001029: PUSH2 0x39fc
0000102c: JUMP
0000102d: JUMPDEST
0000102e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001043: AND
00001044: PUSH2 0x2740
00001047: SWAP1
00001048: SWAP4
00001049: SWAP3
0000104a: SWAP2
0000104b: SWAP1
0000104c: PUSH4 0xffffffff
00001051: AND
00001052: JUMP
00001053: JUMPDEST
00001054: PUSH2 0x107e
00001057: DUP7
00001058: DUP7
00001059: DUP4
0000105a: DUP2
0000105b: DUP2
0000105c: LT
0000105d: PUSH2 0x1062
00001060: JUMPI
00001061: INVALID
00001062: JUMPDEST
00001063: SWAP1
00001064: POP
00001065: PUSH1 0x20
00001067: MUL
00001068: ADD
00001069: PUSH1 0x20
0000106b: DUP2
0000106c: ADD
0000106d: SWAP1
0000106e: PUSH2 0x1077
00001071: SWAP2
00001072: SWAP1
00001073: PUSH2 0x39fc
00001076: JUMP
00001077: JUMPDEST
00001078: PUSH1 0x01
0000107a: PUSH2 0x22bc
0000107d: JUMP
0000107e: JUMPDEST
0000107f: DUP1
00001080: PUSH1 0x01
00001082: ADD
00001083: SWAP1
00001084: POP
00001085: PUSH2 0x0f15
00001088: JUMP
00001089: JUMPDEST
0000108a: POP
0000108b: POP
0000108c: PUSH2 0x1093
0000108f: PUSH2 0x2149
00001092: JUMP
00001093: JUMPDEST
00001094: POP
00001095: POP
00001096: POP
00001097: POP
00001098: JUMP
00001099: JUMPDEST
0000109a: PUSH1 0x00
0000109c: PUSH2 0x10a5
0000109f: DUP4
000010a0: DUP4
000010a1: PUSH2 0x28ec
000010a4: JUMP
000010a5: JUMPDEST
000010a6: SWAP1
000010a7: POP
000010a8: SWAP3
000010a9: SWAP2
000010aa: POP
000010ab: POP
000010ac: JUMP
000010ad: JUMPDEST
000010ae: PUSH1 0x00
000010b0: PUSH1 0x03
000010b2: SLOAD
000010b3: SWAP1
000010b4: POP
000010b5: SWAP1
000010b6: JUMP
000010b7: JUMPDEST
000010b8: PUSH1 0x00
000010ba: PUSH1 0x0a
000010bc: PUSH1 0x00
000010be: DUP4
000010bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010d4: AND
000010d5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010ea: AND
000010eb: DUP2
000010ec: MSTORE
000010ed: PUSH1 0x20
000010ef: ADD
000010f0: SWAP1
000010f1: DUP2
000010f2: MSTORE
000010f3: PUSH1 0x20
000010f5: ADD
000010f6: PUSH1 0x00
000010f8: KECCAK256
000010f9: PUSH1 0x00
000010fb: ADD
000010fc: PUSH1 0x08
000010fe: SWAP1
000010ff: SLOAD
00001100: SWAP1
00001101: PUSH2 0x0100
00001104: EXP
00001105: SWAP1
00001106: DIV
00001107: PUSH8 0xffffffffffffffff
00001110: AND
00001111: PUSH8 0xffffffffffffffff
0000111a: AND
0000111b: SWAP1
0000111c: POP
0000111d: SWAP2
0000111e: SWAP1
0000111f: POP
00001120: JUMP
00001121: JUMPDEST
00001122: PUSH1 0x60
00001124: PUSH2 0x112b
00001127: PUSH2 0x1bb5
0000112a: JUMP
0000112b: JUMPDEST
0000112c: PUSH2 0x1133
0000112f: PUSH2 0x2a54
00001132: JUMP
00001133: JUMPDEST
00001134: PUSH2 0x113c
00001137: DUP5
00001138: PUSH2 0x1bd1
0000113b: JUMP
0000113c: JUMPDEST
0000113d: PUSH1 0x00
0000113f: DUP4
00001140: DUP4
00001141: SWAP1
00001142: POP
00001143: SWAP1
00001144: POP
00001145: PUSH1 0x60
00001147: DUP2
00001148: PUSH8 0xffffffffffffffff
00001151: DUP2
00001152: GT
00001153: DUP1
00001154: ISZERO
00001155: PUSH2 0x115d
00001158: JUMPI
00001159: PUSH1 0x00
0000115b: DUP1
0000115c: REVERT
0000115d: JUMPDEST
0000115e: POP
0000115f: PUSH1 0x40
00001161: MLOAD
00001162: SWAP1
00001163: DUP1
00001164: DUP3
00001165: MSTORE
00001166: DUP1
00001167: PUSH1 0x20
00001169: MUL
0000116a: PUSH1 0x20
0000116c: ADD
0000116d: DUP3
0000116e: ADD
0000116f: PUSH1 0x40
00001171: MSTORE
00001172: DUP1
00001173: ISZERO
00001174: PUSH2 0x118c
00001177: JUMPI
00001178: DUP2
00001179: PUSH1 0x20
0000117b: ADD
0000117c: PUSH1 0x20
0000117e: DUP3
0000117f: MUL
00001180: DUP1
00001181: CALLDATASIZE
00001182: DUP4
00001183: CALLDATACOPY
00001184: DUP1
00001185: DUP3
00001186: ADD
00001187: SWAP2
00001188: POP
00001189: POP
0000118a: SWAP1
0000118b: POP
0000118c: JUMPDEST
0000118d: POP
0000118e: SWAP1
0000118f: POP
00001190: PUSH1 0x00
00001192: JUMPDEST
00001193: DUP3
00001194: DUP2
00001195: LT
00001196: ISZERO
00001197: PUSH2 0x1212
0000119a: JUMPI
0000119b: PUSH2 0x11c5
0000119e: DUP7
0000119f: DUP7
000011a0: DUP4
000011a1: DUP2
000011a2: DUP2
000011a3: LT
000011a4: PUSH2 0x11a9
000011a7: JUMPI
000011a8: INVALID
000011a9: JUMPDEST
000011aa: SWAP1
000011ab: POP
000011ac: PUSH1 0x20
000011ae: MUL
000011af: ADD
000011b0: PUSH1 0x20
000011b2: DUP2
000011b3: ADD
000011b4: SWAP1
000011b5: PUSH2 0x11be
000011b8: SWAP2
000011b9: SWAP1
000011ba: PUSH2 0x39fc
000011bd: JUMP
000011be: JUMPDEST
000011bf: PUSH1 0x00
000011c1: PUSH2 0x22bc
000011c4: JUMP
000011c5: JUMPDEST
000011c6: PUSH2 0x11ef
000011c9: DUP8
000011ca: DUP8
000011cb: DUP8
000011cc: DUP5
000011cd: DUP2
000011ce: DUP2
000011cf: LT
000011d0: PUSH2 0x11d5
000011d3: JUMPI
000011d4: INVALID
000011d5: JUMPDEST
000011d6: SWAP1
000011d7: POP
000011d8: PUSH1 0x20
000011da: MUL
000011db: ADD
000011dc: PUSH1 0x20
000011de: DUP2
000011df: ADD
000011e0: SWAP1
000011e1: PUSH2 0x11ea
000011e4: SWAP2
000011e5: SWAP1
000011e6: PUSH2 0x39fc
000011e9: JUMP
000011ea: JUMPDEST
000011eb: PUSH2 0x2b60
000011ee: JUMP
000011ef: JUMPDEST
000011f0: DUP3
000011f1: DUP3
000011f2: DUP2
000011f3: MLOAD
000011f4: DUP2
000011f5: LT
000011f6: PUSH2 0x11fb
000011f9: JUMPI
000011fa: INVALID
000011fb: JUMPDEST
000011fc: PUSH1 0x20
000011fe: MUL
000011ff: PUSH1 0x20
00001201: ADD
00001202: ADD
00001203: DUP2
00001204: DUP2
00001205: MSTORE
00001206: POP
00001207: POP
00001208: DUP1
00001209: PUSH1 0x01
0000120b: ADD
0000120c: SWAP1
0000120d: POP
0000120e: PUSH2 0x1192
00001211: JUMP
00001212: JUMPDEST
00001213: POP
00001214: DUP1
00001215: SWAP3
00001216: POP
00001217: POP
00001218: POP
00001219: PUSH2 0x1220
0000121c: PUSH2 0x2149
0000121f: JUMP
00001220: JUMPDEST
00001221: SWAP4
00001222: SWAP3
00001223: POP
00001224: POP
00001225: POP
00001226: JUMP
00001227: JUMPDEST
00001228: PUSH2 0x122f
0000122b: PUSH2 0x1bb5
0000122e: JUMP
0000122f: JUMPDEST
00001230: PUSH1 0x00
00001232: DUP3
00001233: DUP3
00001234: SWAP1
00001235: POP
00001236: SWAP1
00001237: POP
00001238: PUSH1 0x00
0000123a: JUMPDEST
0000123b: DUP2
0000123c: DUP2
0000123d: LT
0000123e: ISZERO
0000123f: PUSH2 0x1278
00001242: JUMPI
00001243: PUSH2 0x126d
00001246: DUP5
00001247: DUP5
00001248: DUP4
00001249: DUP2
0000124a: DUP2
0000124b: LT
0000124c: PUSH2 0x1251
0000124f: JUMPI
00001250: INVALID
00001251: JUMPDEST
00001252: SWAP1
00001253: POP
00001254: PUSH1 0x20
00001256: MUL
00001257: ADD
00001258: PUSH1 0x20
0000125a: DUP2
0000125b: ADD
0000125c: SWAP1
0000125d: PUSH2 0x1266
00001260: SWAP2
00001261: SWAP1
00001262: PUSH2 0x39fc
00001265: JUMP
00001266: JUMPDEST
00001267: PUSH1 0x01
00001269: PUSH2 0x22bc
0000126c: JUMP
0000126d: JUMPDEST
0000126e: DUP1
0000126f: PUSH1 0x01
00001271: ADD
00001272: SWAP1
00001273: POP
00001274: PUSH2 0x123a
00001277: JUMP
00001278: JUMPDEST
00001279: POP
0000127a: POP
0000127b: PUSH2 0x1282
0000127e: PUSH2 0x2149
00001281: JUMP
00001282: JUMPDEST
00001283: POP
00001284: POP
00001285: JUMP
00001286: JUMPDEST
00001287: PUSH1 0x00
00001289: PUSH1 0x08
0000128b: PUSH1 0x00
0000128d: DUP4
0000128e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012a3: AND
000012a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012b9: AND
000012ba: DUP2
000012bb: MSTORE
000012bc: PUSH1 0x20
000012be: ADD
000012bf: SWAP1
000012c0: DUP2
000012c1: MSTORE
000012c2: PUSH1 0x20
000012c4: ADD
000012c5: PUSH1 0x00
000012c7: KECCAK256
000012c8: PUSH1 0x00
000012ca: ADD
000012cb: PUSH1 0x08
000012cd: SWAP1
000012ce: SLOAD
000012cf: SWAP1
000012d0: PUSH2 0x0100
000012d3: EXP
000012d4: SWAP1
000012d5: DIV
000012d6: PUSH8 0xffffffffffffffff
000012df: AND
000012e0: PUSH8 0xffffffffffffffff
000012e9: AND
000012ea: SWAP1
000012eb: POP
000012ec: SWAP2
000012ed: SWAP1
000012ee: POP
000012ef: JUMP
000012f0: JUMPDEST
000012f1: PUSH2 0x12f8
000012f4: PUSH2 0x1bb5
000012f7: JUMP
000012f8: JUMPDEST
000012f9: PUSH2 0x1300
000012fc: PUSH2 0x2a54
000012ff: JUMP
00001300: JUMPDEST
00001301: PUSH2 0x1308
00001304: PUSH2 0x2149
00001307: JUMP
00001308: JUMPDEST
00001309: JUMP
0000130a: JUMPDEST
0000130b: PUSH1 0x01
0000130d: PUSH1 0x00
0000130f: SWAP1
00001310: SLOAD
00001311: SWAP1
00001312: PUSH2 0x0100
00001315: EXP
00001316: SWAP1
00001317: DIV
00001318: PUSH1 0xff
0000131a: AND
0000131b: ISZERO
0000131c: PUSH2 0x135a
0000131f: JUMPI
00001320: PUSH1 0x40
00001322: MLOAD
00001323: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001344: DUP2
00001345: MSTORE
00001346: PUSH1 0x04
00001348: ADD
00001349: PUSH2 0x1351
0000134c: SWAP1
0000134d: PUSH2 0x416e
00001350: JUMP
00001351: JUMPDEST
00001352: PUSH1 0x40
00001354: MLOAD
00001355: DUP1
00001356: SWAP2
00001357: SUB
00001358: SWAP1
00001359: REVERT
0000135a: JUMPDEST
0000135b: PUSH1 0x01
0000135d: DUP1
0000135e: PUSH1 0x00
00001360: PUSH2 0x0100
00001363: EXP
00001364: DUP2
00001365: SLOAD
00001366: DUP2
00001367: PUSH1 0xff
00001369: MUL
0000136a: NOT
0000136b: AND
0000136c: SWAP1
0000136d: DUP4
0000136e: ISZERO
0000136f: ISZERO
00001370: MUL
00001371: OR
00001372: SWAP1
00001373: SSTORE
00001374: POP
00001375: PUSH1 0x00
00001377: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000138c: AND
0000138d: DUP2
0000138e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013a3: AND
000013a4: EQ
000013a5: ISZERO
000013a6: PUSH2 0x13e4
000013a9: JUMPI
000013aa: PUSH1 0x40
000013ac: MLOAD
000013ad: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000013ce: DUP2
000013cf: MSTORE
000013d0: PUSH1 0x04
000013d2: ADD
000013d3: PUSH2 0x13db
000013d6: SWAP1
000013d7: PUSH2 0x41ae
000013da: JUMP
000013db: JUMPDEST
000013dc: PUSH1 0x40
000013de: MLOAD
000013df: DUP1
000013e0: SWAP2
000013e1: SUB
000013e2: SWAP1
000013e3: REVERT
000013e4: JUMPDEST
000013e5: DUP1
000013e6: PUSH1 0x05
000013e8: PUSH1 0x00
000013ea: PUSH2 0x0100
000013ed: EXP
000013ee: DUP2
000013ef: SLOAD
000013f0: DUP2
000013f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001406: MUL
00001407: NOT
00001408: AND
00001409: SWAP1
0000140a: DUP4
0000140b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001420: AND
00001421: MUL
00001422: OR
00001423: SWAP1
00001424: SSTORE
00001425: POP
00001426: DUP3
00001427: PUSH1 0x01
00001429: DUP1
0000142a: PUSH2 0x0100
0000142d: EXP
0000142e: DUP2
0000142f: SLOAD
00001430: DUP2
00001431: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001446: MUL
00001447: NOT
00001448: AND
00001449: SWAP1
0000144a: DUP4
0000144b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001460: AND
00001461: MUL
00001462: OR
00001463: SWAP1
00001464: SSTORE
00001465: POP
00001466: PUSH2 0x146e
00001469: DUP3
0000146a: PUSH2 0x2ecc
0000146d: JUMP
0000146e: JUMPDEST
0000146f: SWAP2
00001470: POP
00001471: PUSH1 0x00
00001473: PUSH2 0x147b
00001476: TIMESTAMP
00001477: PUSH2 0x2ecc
0000147a: JUMP
0000147b: JUMPDEST
0000147c: SWAP1
0000147d: POP
0000147e: DUP1
0000147f: DUP4
00001480: LT
00001481: ISZERO
00001482: PUSH2 0x14c0
00001485: JUMPI
00001486: PUSH1 0x40
00001488: MLOAD
00001489: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000014aa: DUP2
000014ab: MSTORE
000014ac: PUSH1 0x04
000014ae: ADD
000014af: PUSH2 0x14b7
000014b2: SWAP1
000014b3: PUSH2 0x418e
000014b6: JUMP
000014b7: JUMPDEST
000014b8: PUSH1 0x40
000014ba: MLOAD
000014bb: DUP1
000014bc: SWAP2
000014bd: SUB
000014be: SWAP1
000014bf: REVERT
000014c0: JUMPDEST
000014c1: DUP1
000014c2: DUP4
000014c3: EQ
000014c4: ISZERO
000014c5: PUSH2 0x1594
000014c8: JUMPI
000014c9: PUSH1 0x00
000014cb: DUP5
000014cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014e1: AND
000014e2: PUSH4 0x7116c60c
000014e7: DUP4
000014e8: PUSH1 0x40
000014ea: MLOAD
000014eb: DUP3
000014ec: PUSH4 0xffffffff
000014f1: AND
000014f2: PUSH1 0xe0
000014f4: SHL
000014f5: DUP2
000014f6: MSTORE
000014f7: PUSH1 0x04
000014f9: ADD
000014fa: PUSH2 0x1503
000014fd: SWAP2
000014fe: SWAP1
000014ff: PUSH2 0x420e
00001502: JUMP
00001503: JUMPDEST
00001504: PUSH1 0x20
00001506: PUSH1 0x40
00001508: MLOAD
00001509: DUP1
0000150a: DUP4
0000150b: SUB
0000150c: DUP2
0000150d: DUP7
0000150e: DUP1
0000150f: EXTCODESIZE
00001510: ISZERO
00001511: DUP1
00001512: ISZERO
00001513: PUSH2 0x151b
00001516: JUMPI
00001517: PUSH1 0x00
00001519: DUP1
0000151a: REVERT
0000151b: JUMPDEST
0000151c: POP
0000151d: GAS
0000151e: STATICCALL
0000151f: ISZERO
00001520: DUP1
00001521: ISZERO
00001522: PUSH2 0x152f
00001525: JUMPI
00001526: RETURNDATASIZE
00001527: PUSH1 0x00
00001529: DUP1
0000152a: RETURNDATACOPY
0000152b: RETURNDATASIZE
0000152c: PUSH1 0x00
0000152e: REVERT
0000152f: JUMPDEST
00001530: POP
00001531: POP
00001532: POP
00001533: POP
00001534: PUSH1 0x40
00001536: MLOAD
00001537: RETURNDATASIZE
00001538: PUSH1 0x1f
0000153a: NOT
0000153b: PUSH1 0x1f
0000153d: DUP3
0000153e: ADD
0000153f: AND
00001540: DUP3
00001541: ADD
00001542: DUP1
00001543: PUSH1 0x40
00001545: MSTORE
00001546: POP
00001547: DUP2
00001548: ADD
00001549: SWAP1
0000154a: PUSH2 0x1553
0000154d: SWAP2
0000154e: SWAP1
0000154f: PUSH2 0x3b2b
00001552: JUMP
00001553: JUMPDEST
00001554: GT
00001555: PUSH2 0x1593
00001558: JUMPI
00001559: PUSH1 0x40
0000155b: MLOAD
0000155c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000157d: DUP2
0000157e: MSTORE
0000157f: PUSH1 0x04
00001581: ADD
00001582: PUSH2 0x158a
00001585: SWAP1
00001586: PUSH2 0x41ce
00001589: JUMP
0000158a: JUMPDEST
0000158b: PUSH1 0x40
0000158d: MLOAD
0000158e: DUP1
0000158f: SWAP2
00001590: SUB
00001591: SWAP1
00001592: REVERT
00001593: JUMPDEST
00001594: JUMPDEST
00001595: DUP3
00001596: PUSH1 0x02
00001598: DUP2
00001599: SWAP1
0000159a: SSTORE
0000159b: POP
0000159c: DUP3
0000159d: PUSH1 0x03
0000159f: DUP2
000015a0: SWAP1
000015a1: SSTORE
000015a2: POP
000015a3: POP
000015a4: POP
000015a5: POP
000015a6: POP
000015a7: JUMP
000015a8: JUMPDEST
000015a9: PUSH1 0x00
000015ab: PUSH2 0x15b2
000015ae: PUSH2 0x1bb5
000015b1: JUMP
000015b2: JUMPDEST
000015b3: PUSH2 0x15ba
000015b6: PUSH2 0x2a54
000015b9: JUMP
000015ba: JUMPDEST
000015bb: PUSH2 0x15c3
000015be: DUP4
000015bf: PUSH2 0x1bd1
000015c2: JUMP
000015c3: JUMPDEST
000015c4: PUSH2 0x15ce
000015c7: DUP3
000015c8: PUSH1 0x00
000015ca: PUSH2 0x22bc
000015cd: JUMP
000015ce: JUMPDEST
000015cf: PUSH1 0x00
000015d1: PUSH2 0x15da
000015d4: DUP5
000015d5: DUP5
000015d6: PUSH2 0x2b60
000015d9: JUMP
000015da: JUMPDEST
000015db: SWAP1
000015dc: POP
000015dd: DUP1
000015de: SWAP2
000015df: POP
000015e0: POP
000015e1: PUSH2 0x15e8
000015e4: PUSH2 0x2149
000015e7: JUMP
000015e8: JUMPDEST
000015e9: SWAP3
000015ea: SWAP2
000015eb: POP
000015ec: POP
000015ed: JUMP
000015ee: JUMPDEST
000015ef: PUSH1 0x00
000015f1: PUSH2 0x15fa
000015f4: DUP4
000015f5: DUP4
000015f6: PUSH2 0x2ee4
000015f9: JUMP
000015fa: JUMPDEST
000015fb: SWAP1
000015fc: POP
000015fd: SWAP3
000015fe: SWAP2
000015ff: POP
00001600: POP
00001601: JUMP
00001602: JUMPDEST
00001603: PUSH1 0x00
00001605: PUSH1 0x09
00001607: PUSH1 0x00
00001609: DUP5
0000160a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000161f: AND
00001620: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001635: AND
00001636: DUP2
00001637: MSTORE
00001638: PUSH1 0x20
0000163a: ADD
0000163b: SWAP1
0000163c: DUP2
0000163d: MSTORE
0000163e: PUSH1 0x20
00001640: ADD
00001641: PUSH1 0x00
00001643: KECCAK256
00001644: PUSH1 0x00
00001646: DUP4
00001647: DUP2
00001648: MSTORE
00001649: PUSH1 0x20
0000164b: ADD
0000164c: SWAP1
0000164d: DUP2
0000164e: MSTORE
0000164f: PUSH1 0x20
00001651: ADD
00001652: PUSH1 0x00
00001654: KECCAK256
00001655: SLOAD
00001656: SWAP1
00001657: POP
00001658: SWAP3
00001659: SWAP2
0000165a: POP
0000165b: POP
0000165c: JUMP
0000165d: JUMPDEST
0000165e: PUSH1 0x00
00001660: PUSH1 0x0b
00001662: PUSH1 0x00
00001664: DUP5
00001665: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000167a: AND
0000167b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001690: AND
00001691: DUP2
00001692: MSTORE
00001693: PUSH1 0x20
00001695: ADD
00001696: SWAP1
00001697: DUP2
00001698: MSTORE
00001699: PUSH1 0x20
0000169b: ADD
0000169c: PUSH1 0x00
0000169e: KECCAK256
0000169f: PUSH1 0x00
000016a1: DUP4
000016a2: DUP2
000016a3: MSTORE
000016a4: PUSH1 0x20
000016a6: ADD
000016a7: SWAP1
000016a8: DUP2
000016a9: MSTORE
000016aa: PUSH1 0x20
000016ac: ADD
000016ad: PUSH1 0x00
000016af: KECCAK256
000016b0: SLOAD
000016b1: SWAP1
000016b2: POP
000016b3: SWAP3
000016b4: SWAP2
000016b5: POP
000016b6: POP
000016b7: JUMP
000016b8: JUMPDEST
000016b9: PUSH1 0x60
000016bb: PUSH1 0x06
000016bd: DUP1
000016be: SLOAD
000016bf: DUP1
000016c0: PUSH1 0x20
000016c2: MUL
000016c3: PUSH1 0x20
000016c5: ADD
000016c6: PUSH1 0x40
000016c8: MLOAD
000016c9: SWAP1
000016ca: DUP2
000016cb: ADD
000016cc: PUSH1 0x40
000016ce: MSTORE
000016cf: DUP1
000016d0: SWAP3
000016d1: SWAP2
000016d2: SWAP1
000016d3: DUP2
000016d4: DUP2
000016d5: MSTORE
000016d6: PUSH1 0x20
000016d8: ADD
000016d9: DUP3
000016da: DUP1
000016db: SLOAD
000016dc: DUP1
000016dd: ISZERO
000016de: PUSH2 0x173c
000016e1: JUMPI
000016e2: PUSH1 0x20
000016e4: MUL
000016e5: DUP3
000016e6: ADD
000016e7: SWAP2
000016e8: SWAP1
000016e9: PUSH1 0x00
000016eb: MSTORE
000016ec: PUSH1 0x20
000016ee: PUSH1 0x00
000016f0: KECCAK256
000016f1: SWAP1
000016f2: JUMPDEST
000016f3: DUP2
000016f4: PUSH1 0x00
000016f6: SWAP1
000016f7: SLOAD
000016f8: SWAP1
000016f9: PUSH2 0x0100
000016fc: EXP
000016fd: SWAP1
000016fe: DIV
000016ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001714: AND
00001715: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000172a: AND
0000172b: DUP2
0000172c: MSTORE
0000172d: PUSH1 0x20
0000172f: ADD
00001730: SWAP1
00001731: PUSH1 0x01
00001733: ADD
00001734: SWAP1
00001735: DUP1
00001736: DUP4
00001737: GT
00001738: PUSH2 0x16f2
0000173b: JUMPI
0000173c: JUMPDEST
0000173d: POP
0000173e: POP
0000173f: POP
00001740: POP
00001741: POP
00001742: SWAP1
00001743: POP
00001744: SWAP1
00001745: JUMP
00001746: JUMPDEST
00001747: PUSH1 0x07
00001749: PUSH1 0x20
0000174b: MSTORE
0000174c: DUP1
0000174d: PUSH1 0x00
0000174f: MSTORE
00001750: PUSH1 0x40
00001752: PUSH1 0x00
00001754: KECCAK256
00001755: PUSH1 0x00
00001757: SWAP2
00001758: POP
00001759: SLOAD
0000175a: SWAP1
0000175b: PUSH2 0x0100
0000175e: EXP
0000175f: SWAP1
00001760: DIV
00001761: PUSH1 0xff
00001763: AND
00001764: DUP2
00001765: JUMP
00001766: JUMPDEST
00001767: CALLER
00001768: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000177d: AND
0000177e: PUSH1 0x05
00001780: PUSH1 0x00
00001782: SWAP1
00001783: SLOAD
00001784: SWAP1
00001785: PUSH2 0x0100
00001788: EXP
00001789: SWAP1
0000178a: DIV
0000178b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017a0: AND
000017a1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017b6: AND
000017b7: EQ
000017b8: PUSH2 0x17f6
000017bb: JUMPI
000017bc: PUSH1 0x40
000017be: MLOAD
000017bf: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000017e0: DUP2
000017e1: MSTORE
000017e2: PUSH1 0x04
000017e4: ADD
000017e5: PUSH2 0x17ed
000017e8: SWAP1
000017e9: PUSH2 0x41ee
000017ec: JUMP
000017ed: JUMPDEST
000017ee: PUSH1 0x40
000017f0: MLOAD
000017f1: DUP1
000017f2: SWAP2
000017f3: SUB
000017f4: SWAP1
000017f5: REVERT
000017f6: JUMPDEST
000017f7: PUSH1 0x00
000017f9: JUMPDEST
000017fa: DUP3
000017fb: DUP3
000017fc: SWAP1
000017fd: POP
000017fe: DUP2
000017ff: LT
00001800: ISZERO
00001801: PUSH2 0x1a1c
00001804: JUMPI
00001805: PUSH1 0x07
00001807: PUSH1 0x00
00001809: DUP5
0000180a: DUP5
0000180b: DUP5
0000180c: DUP2
0000180d: DUP2
0000180e: LT
0000180f: PUSH2 0x1814
00001812: JUMPI
00001813: INVALID
00001814: JUMPDEST
00001815: SWAP1
00001816: POP
00001817: PUSH1 0x20
00001819: MUL
0000181a: ADD
0000181b: PUSH1 0x20
0000181d: DUP2
0000181e: ADD
0000181f: SWAP1
00001820: PUSH2 0x1829
00001823: SWAP2
00001824: SWAP1
00001825: PUSH2 0x37db
00001828: JUMP
00001829: JUMPDEST
0000182a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000183f: AND
00001840: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001855: AND
00001856: DUP2
00001857: MSTORE
00001858: PUSH1 0x20
0000185a: ADD
0000185b: SWAP1
0000185c: DUP2
0000185d: MSTORE
0000185e: PUSH1 0x20
00001860: ADD
00001861: PUSH1 0x00
00001863: KECCAK256
00001864: PUSH1 0x00
00001866: SWAP1
00001867: SLOAD
00001868: SWAP1
00001869: PUSH2 0x0100
0000186c: EXP
0000186d: SWAP1
0000186e: DIV
0000186f: PUSH1 0xff
00001871: AND
00001872: ISZERO
00001873: PUSH2 0x18b1
00001876: JUMPI
00001877: PUSH1 0x40
00001879: MLOAD
0000187a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000189b: DUP2
0000189c: MSTORE
0000189d: PUSH1 0x04
0000189f: ADD
000018a0: PUSH2 0x18a8
000018a3: SWAP1
000018a4: PUSH2 0x40ee
000018a7: JUMP
000018a8: JUMPDEST
000018a9: PUSH1 0x40
000018ab: MLOAD
000018ac: DUP1
000018ad: SWAP2
000018ae: SUB
000018af: SWAP1
000018b0: REVERT
000018b1: JUMPDEST
000018b2: PUSH1 0x01
000018b4: PUSH1 0x07
000018b6: PUSH1 0x00
000018b8: DUP6
000018b9: DUP6
000018ba: DUP6
000018bb: DUP2
000018bc: DUP2
000018bd: LT
000018be: PUSH2 0x18c3
000018c1: JUMPI
000018c2: INVALID
000018c3: JUMPDEST
000018c4: SWAP1
000018c5: POP
000018c6: PUSH1 0x20
000018c8: MUL
000018c9: ADD
000018ca: PUSH1 0x20
000018cc: DUP2
000018cd: ADD
000018ce: SWAP1
000018cf: PUSH2 0x18d8
000018d2: SWAP2
000018d3: SWAP1
000018d4: PUSH2 0x37db
000018d7: JUMP
000018d8: JUMPDEST
000018d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018ee: AND
000018ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001904: AND
00001905: DUP2
00001906: MSTORE
00001907: PUSH1 0x20
00001909: ADD
0000190a: SWAP1
0000190b: DUP2
0000190c: MSTORE
0000190d: PUSH1 0x20
0000190f: ADD
00001910: PUSH1 0x00
00001912: KECCAK256
00001913: PUSH1 0x00
00001915: PUSH2 0x0100
00001918: EXP
00001919: DUP2
0000191a: SLOAD
0000191b: DUP2
0000191c: PUSH1 0xff
0000191e: MUL
0000191f: NOT
00001920: AND
00001921: SWAP1
00001922: DUP4
00001923: ISZERO
00001924: ISZERO
00001925: MUL
00001926: OR
00001927: SWAP1
00001928: SSTORE
00001929: POP
0000192a: PUSH1 0x06
0000192c: DUP4
0000192d: DUP4
0000192e: DUP4
0000192f: DUP2
00001930: DUP2
00001931: LT
00001932: PUSH2 0x1937
00001935: JUMPI
00001936: INVALID
00001937: JUMPDEST
00001938: SWAP1
00001939: POP
0000193a: PUSH1 0x20
0000193c: MUL
0000193d: ADD
0000193e: PUSH1 0x20
00001940: DUP2
00001941: ADD
00001942: SWAP1
00001943: PUSH2 0x194c
00001946: SWAP2
00001947: SWAP1
00001948: PUSH2 0x37db
0000194b: JUMP
0000194c: JUMPDEST
0000194d: SWAP1
0000194e: DUP1
0000194f: PUSH1 0x01
00001951: DUP2
00001952: SLOAD
00001953: ADD
00001954: DUP1
00001955: DUP3
00001956: SSTORE
00001957: DUP1
00001958: SWAP2
00001959: POP
0000195a: POP
0000195b: PUSH1 0x01
0000195d: SWAP1
0000195e: SUB
0000195f: SWAP1
00001960: PUSH1 0x00
00001962: MSTORE
00001963: PUSH1 0x20
00001965: PUSH1 0x00
00001967: KECCAK256
00001968: ADD
00001969: PUSH1 0x00
0000196b: SWAP1
0000196c: SWAP2
0000196d: SWAP1
0000196e: SWAP2
0000196f: SWAP1
00001970: SWAP2
00001971: PUSH2 0x0100
00001974: EXP
00001975: DUP2
00001976: SLOAD
00001977: DUP2
00001978: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000198d: MUL
0000198e: NOT
0000198f: AND
00001990: SWAP1
00001991: DUP4
00001992: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019a7: AND
000019a8: MUL
000019a9: OR
000019aa: SWAP1
000019ab: SSTORE
000019ac: POP
000019ad: DUP3
000019ae: DUP3
000019af: DUP3
000019b0: DUP2
000019b1: DUP2
000019b2: LT
000019b3: PUSH2 0x19b8
000019b6: JUMPI
000019b7: INVALID
000019b8: JUMPDEST
000019b9: SWAP1
000019ba: POP
000019bb: PUSH1 0x20
000019bd: MUL
000019be: ADD
000019bf: PUSH1 0x20
000019c1: DUP2
000019c2: ADD
000019c3: SWAP1
000019c4: PUSH2 0x19cd
000019c7: SWAP2
000019c8: SWAP1
000019c9: PUSH2 0x37db
000019cc: JUMP
000019cd: JUMPDEST
000019ce: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000019e3: AND
000019e4: PUSH32 0x784c8f4dbf0ffedd6e72c76501c545a70f8b203b30a26ce542bf92ba87c248a4
00001a05: PUSH1 0x40
00001a07: MLOAD
00001a08: PUSH1 0x40
00001a0a: MLOAD
00001a0b: DUP1
00001a0c: SWAP2
00001a0d: SUB
00001a0e: SWAP1
00001a0f: LOG2
00001a10: DUP1
00001a11: DUP1
00001a12: PUSH1 0x01
00001a14: ADD
00001a15: SWAP2
00001a16: POP
00001a17: POP
00001a18: PUSH2 0x17f9
00001a1b: JUMP
00001a1c: JUMPDEST
00001a1d: POP
00001a1e: POP
00001a1f: POP
00001a20: JUMP
00001a21: JUMPDEST
00001a22: PUSH1 0x05
00001a24: PUSH1 0x00
00001a26: SWAP1
00001a27: SLOAD
00001a28: SWAP1
00001a29: PUSH2 0x0100
00001a2c: EXP
00001a2d: SWAP1
00001a2e: DIV
00001a2f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a44: AND
00001a45: DUP2
00001a46: JUMP
00001a47: JUMPDEST
00001a48: CALLER
00001a49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a5e: AND
00001a5f: PUSH1 0x05
00001a61: PUSH1 0x00
00001a63: SWAP1
00001a64: SLOAD
00001a65: SWAP1
00001a66: PUSH2 0x0100
00001a69: EXP
00001a6a: SWAP1
00001a6b: DIV
00001a6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a81: AND
00001a82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a97: AND
00001a98: EQ
00001a99: PUSH2 0x1ad7
00001a9c: JUMPI
00001a9d: PUSH1 0x40
00001a9f: MLOAD
00001aa0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001ac1: DUP2
00001ac2: MSTORE
00001ac3: PUSH1 0x04
00001ac5: ADD
00001ac6: PUSH2 0x1ace
00001ac9: SWAP1
00001aca: PUSH2 0x41ee
00001acd: JUMP
00001ace: JUMPDEST
00001acf: PUSH1 0x40
00001ad1: MLOAD
00001ad2: DUP1
00001ad3: SWAP2
00001ad4: SUB
00001ad5: SWAP1
00001ad6: REVERT
00001ad7: JUMPDEST
00001ad8: PUSH1 0x00
00001ada: DUP2
00001adb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001af0: AND
00001af1: PUSH4 0x70a08231
00001af6: ADDRESS
00001af7: PUSH1 0x40
00001af9: MLOAD
00001afa: DUP3
00001afb: PUSH4 0xffffffff
00001b00: AND
00001b01: PUSH1 0xe0
00001b03: SHL
00001b04: DUP2
00001b05: MSTORE
00001b06: PUSH1 0x04
00001b08: ADD
00001b09: PUSH2 0x1b12
00001b0c: SWAP2
00001b0d: SWAP1
00001b0e: PUSH2 0x3f7d
00001b11: JUMP
00001b12: JUMPDEST
00001b13: PUSH1 0x20
00001b15: PUSH1 0x40
00001b17: MLOAD
00001b18: DUP1
00001b19: DUP4
00001b1a: SUB
00001b1b: DUP2
00001b1c: DUP7
00001b1d: DUP1
00001b1e: EXTCODESIZE
00001b1f: ISZERO
00001b20: DUP1
00001b21: ISZERO
00001b22: PUSH2 0x1b2a
00001b25: JUMPI
00001b26: PUSH1 0x00
00001b28: DUP1
00001b29: REVERT
00001b2a: JUMPDEST
00001b2b: POP
00001b2c: GAS
00001b2d: STATICCALL
00001b2e: ISZERO
00001b2f: DUP1
00001b30: ISZERO
00001b31: PUSH2 0x1b3e
00001b34: JUMPI
00001b35: RETURNDATASIZE
00001b36: PUSH1 0x00
00001b38: DUP1
00001b39: RETURNDATACOPY
00001b3a: RETURNDATASIZE
00001b3b: PUSH1 0x00
00001b3d: REVERT
00001b3e: JUMPDEST
00001b3f: POP
00001b40: POP
00001b41: POP
00001b42: POP
00001b43: PUSH1 0x40
00001b45: MLOAD
00001b46: RETURNDATASIZE
00001b47: PUSH1 0x1f
00001b49: NOT
00001b4a: PUSH1 0x1f
00001b4c: DUP3
00001b4d: ADD
00001b4e: AND
00001b4f: DUP3
00001b50: ADD
00001b51: DUP1
00001b52: PUSH1 0x40
00001b54: MSTORE
00001b55: POP
00001b56: DUP2
00001b57: ADD
00001b58: SWAP1
00001b59: PUSH2 0x1b62
00001b5c: SWAP2
00001b5d: SWAP1
00001b5e: PUSH2 0x3b2b
00001b61: JUMP
00001b62: JUMPDEST
00001b63: SWAP1
00001b64: POP
00001b65: PUSH2 0x1bb1
00001b68: PUSH1 0x05
00001b6a: PUSH1 0x00
00001b6c: SWAP1
00001b6d: SLOAD
00001b6e: SWAP1
00001b6f: PUSH2 0x0100
00001b72: EXP
00001b73: SWAP1
00001b74: DIV
00001b75: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b8a: AND
00001b8b: DUP3
00001b8c: DUP5
00001b8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ba2: AND
00001ba3: PUSH2 0x30b5
00001ba6: SWAP1
00001ba7: SWAP3
00001ba8: SWAP2
00001ba9: SWAP1
00001baa: PUSH4 0xffffffff
00001baf: AND
00001bb0: JUMP
00001bb1: JUMPDEST
00001bb2: POP
00001bb3: POP
00001bb4: JUMP
00001bb5: JUMPDEST
00001bb6: PUSH2 0x1bc7
00001bb9: PUSH1 0x02
00001bbb: PUSH1 0x00
00001bbd: SLOAD
00001bbe: EQ
00001bbf: ISZERO
00001bc0: PUSH2 0x0190
00001bc3: PUSH2 0x313b
00001bc6: JUMP
00001bc7: JUMPDEST
00001bc8: PUSH1 0x02
00001bca: PUSH1 0x00
00001bcc: DUP2
00001bcd: SWAP1
00001bce: SSTORE
00001bcf: POP
00001bd0: JUMP
00001bd1: JUMPDEST
00001bd2: PUSH1 0x00
00001bd4: PUSH1 0x01
00001bd6: DUP1
00001bd7: SLOAD
00001bd8: SWAP1
00001bd9: PUSH2 0x0100
00001bdc: EXP
00001bdd: SWAP1
00001bde: DIV
00001bdf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bf4: AND
00001bf5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c0a: AND
00001c0b: PUSH4 0x010ae757
00001c10: DUP4
00001c11: PUSH1 0x40
00001c13: MLOAD
00001c14: DUP3
00001c15: PUSH4 0xffffffff
00001c1a: AND
00001c1b: PUSH1 0xe0
00001c1d: SHL
00001c1e: DUP2
00001c1f: MSTORE
00001c20: PUSH1 0x04
00001c22: ADD
00001c23: PUSH2 0x1c2c
00001c26: SWAP2
00001c27: SWAP1
00001c28: PUSH2 0x3f7d
00001c2b: JUMP
00001c2c: JUMPDEST
00001c2d: PUSH1 0x20
00001c2f: PUSH1 0x40
00001c31: MLOAD
00001c32: DUP1
00001c33: DUP4
00001c34: SUB
00001c35: DUP2
00001c36: DUP7
00001c37: DUP1
00001c38: EXTCODESIZE
00001c39: ISZERO
00001c3a: DUP1
00001c3b: ISZERO
00001c3c: PUSH2 0x1c44
00001c3f: JUMPI
00001c40: PUSH1 0x00
00001c42: DUP1
00001c43: REVERT
00001c44: JUMPDEST
00001c45: POP
00001c46: GAS
00001c47: STATICCALL
00001c48: ISZERO
00001c49: DUP1
00001c4a: ISZERO
00001c4b: PUSH2 0x1c58
00001c4e: JUMPI
00001c4f: RETURNDATASIZE
00001c50: PUSH1 0x00
00001c52: DUP1
00001c53: RETURNDATACOPY
00001c54: RETURNDATASIZE
00001c55: PUSH1 0x00
00001c57: REVERT
00001c58: JUMPDEST
00001c59: POP
00001c5a: POP
00001c5b: POP
00001c5c: POP
00001c5d: PUSH1 0x40
00001c5f: MLOAD
00001c60: RETURNDATASIZE
00001c61: PUSH1 0x1f
00001c63: NOT
00001c64: PUSH1 0x1f
00001c66: DUP3
00001c67: ADD
00001c68: AND
00001c69: DUP3
00001c6a: ADD
00001c6b: DUP1
00001c6c: PUSH1 0x40
00001c6e: MSTORE
00001c6f: POP
00001c70: DUP2
00001c71: ADD
00001c72: SWAP1
00001c73: PUSH2 0x1c7c
00001c76: SWAP2
00001c77: SWAP1
00001c78: PUSH2 0x3b2b
00001c7b: JUMP
00001c7c: JUMPDEST
00001c7d: SWAP1
00001c7e: POP
00001c7f: PUSH1 0x00
00001c81: DUP2
00001c82: EQ
00001c83: ISZERO
00001c84: PUSH2 0x1c8d
00001c87: JUMPI
00001c88: POP
00001c89: PUSH2 0x2146
00001c8c: JUMP
00001c8d: JUMPDEST
00001c8e: PUSH1 0x00
00001c90: PUSH1 0x0a
00001c92: PUSH1 0x00
00001c94: DUP5
00001c95: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001caa: AND
00001cab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cc0: AND
00001cc1: DUP2
00001cc2: MSTORE
00001cc3: PUSH1 0x20
00001cc5: ADD
00001cc6: SWAP1
00001cc7: DUP2
00001cc8: MSTORE
00001cc9: PUSH1 0x20
00001ccb: ADD
00001ccc: PUSH1 0x00
00001cce: KECCAK256
00001ccf: SWAP1
00001cd0: POP
00001cd1: PUSH1 0x00
00001cd3: DUP2
00001cd4: PUSH1 0x00
00001cd6: ADD
00001cd7: PUSH1 0x08
00001cd9: SWAP1
00001cda: SLOAD
00001cdb: SWAP1
00001cdc: PUSH2 0x0100
00001cdf: EXP
00001ce0: SWAP1
00001ce1: DIV
00001ce2: PUSH8 0xffffffffffffffff
00001ceb: AND
00001cec: PUSH8 0xffffffffffffffff
00001cf5: AND
00001cf6: SWAP1
00001cf7: POP
00001cf8: PUSH1 0x00
00001cfa: DUP1
00001cfb: DUP3
00001cfc: EQ
00001cfd: ISZERO
00001cfe: PUSH2 0x1d17
00001d01: JUMPI
00001d02: PUSH2 0x1d10
00001d05: DUP6
00001d06: PUSH1 0x02
00001d08: SLOAD
00001d09: PUSH1 0x00
00001d0b: DUP8
00001d0c: PUSH2 0x314e
00001d0f: JUMP
00001d10: JUMPDEST
00001d11: SWAP1
00001d12: POP
00001d13: PUSH2 0x1d77
00001d16: JUMP
00001d17: JUMPDEST
00001d18: TIMESTAMP
00001d19: DUP3
00001d1a: LT
00001d1b: PUSH2 0x1d27
00001d1e: JUMPI
00001d1f: POP
00001d20: POP
00001d21: POP
00001d22: POP
00001d23: PUSH2 0x2146
00001d26: JUMP
00001d27: JUMPDEST
00001d28: DUP3
00001d29: PUSH1 0x00
00001d2b: ADD
00001d2c: PUSH1 0x10
00001d2e: SWAP1
00001d2f: SLOAD
00001d30: SWAP1
00001d31: PUSH2 0x0100
00001d34: EXP
00001d35: SWAP1
00001d36: DIV
00001d37: PUSH16 0xffffffffffffffffffffffffffffffff
00001d48: AND
00001d49: PUSH16 0xffffffffffffffffffffffffffffffff
00001d5a: AND
00001d5b: SWAP1
00001d5c: POP
00001d5d: PUSH1 0x14
00001d5f: DUP2
00001d60: DUP6
00001d61: SUB
00001d62: GT
00001d63: ISZERO
00001d64: PUSH2 0x1d76
00001d67: JUMPI
00001d68: PUSH2 0x1d73
00001d6b: DUP6
00001d6c: DUP4
00001d6d: DUP4
00001d6e: DUP8
00001d6f: PUSH2 0x314e
00001d72: JUMP
00001d73: JUMPDEST
00001d74: SWAP1
00001d75: POP
00001d76: JUMPDEST
00001d77: JUMPDEST
00001d78: PUSH1 0x00
00001d7a: DUP2
00001d7b: EQ
00001d7c: ISZERO
00001d7d: PUSH2 0x1d85
00001d80: JUMPI
00001d81: PUSH1 0x01
00001d83: SWAP1
00001d84: POP
00001d85: JUMPDEST
00001d86: PUSH2 0x1d8d
00001d89: PUSH2 0x35c8
00001d8c: JUMP
00001d8d: JUMPDEST
00001d8e: PUSH1 0x01
00001d90: DUP1
00001d91: SLOAD
00001d92: SWAP1
00001d93: PUSH2 0x0100
00001d96: EXP
00001d97: SWAP1
00001d98: DIV
00001d99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001dae: AND
00001daf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001dc4: AND
00001dc5: PUSH4 0x28d09d47
00001dca: DUP8
00001dcb: DUP5
00001dcc: PUSH1 0x40
00001dce: MLOAD
00001dcf: DUP4
00001dd0: PUSH4 0xffffffff
00001dd5: AND
00001dd6: PUSH1 0xe0
00001dd8: SHL
00001dd9: DUP2
00001dda: MSTORE
00001ddb: PUSH1 0x04
00001ddd: ADD
00001dde: PUSH2 0x1de8
00001de1: SWAP3
00001de2: SWAP2
00001de3: SWAP1
00001de4: PUSH2 0x4014
00001de7: JUMP
00001de8: JUMPDEST
00001de9: PUSH1 0x80
00001deb: PUSH1 0x40
00001ded: MLOAD
00001dee: DUP1
00001def: DUP4
00001df0: SUB
00001df1: DUP2
00001df2: DUP7
00001df3: DUP1
00001df4: EXTCODESIZE
00001df5: ISZERO
00001df6: DUP1
00001df7: ISZERO
00001df8: PUSH2 0x1e00
00001dfb: JUMPI
00001dfc: PUSH1 0x00
00001dfe: DUP1
00001dff: REVERT
00001e00: JUMPDEST
00001e01: POP
00001e02: GAS
00001e03: STATICCALL
00001e04: ISZERO
00001e05: DUP1
00001e06: ISZERO
00001e07: PUSH2 0x1e14
00001e0a: JUMPI
00001e0b: RETURNDATASIZE
00001e0c: PUSH1 0x00
00001e0e: DUP1
00001e0f: RETURNDATACOPY
00001e10: RETURNDATASIZE
00001e11: PUSH1 0x00
00001e13: REVERT
00001e14: JUMPDEST
00001e15: POP
00001e16: POP
00001e17: POP
00001e18: POP
00001e19: PUSH1 0x40
00001e1b: MLOAD
00001e1c: RETURNDATASIZE
00001e1d: PUSH1 0x1f
00001e1f: NOT
00001e20: PUSH1 0x1f
00001e22: DUP3
00001e23: ADD
00001e24: AND
00001e25: DUP3
00001e26: ADD
00001e27: DUP1
00001e28: PUSH1 0x40
00001e2a: MSTORE
00001e2b: POP
00001e2c: DUP2
00001e2d: ADD
00001e2e: SWAP1
00001e2f: PUSH2 0x1e38
00001e32: SWAP2
00001e33: SWAP1
00001e34: PUSH2 0x3ad9
00001e37: JUMP
00001e38: JUMPDEST
00001e39: SWAP1
00001e3a: POP
00001e3b: PUSH1 0x00
00001e3d: DUP4
00001e3e: EQ
00001e3f: ISZERO
00001e40: PUSH2 0x1ecd
00001e43: JUMPI
00001e44: PUSH1 0x02
00001e46: SLOAD
00001e47: TIMESTAMP
00001e48: GT
00001e49: PUSH2 0x1e87
00001e4c: JUMPI
00001e4d: PUSH1 0x40
00001e4f: MLOAD
00001e50: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001e71: DUP2
00001e72: MSTORE
00001e73: PUSH1 0x04
00001e75: ADD
00001e76: PUSH2 0x1e7e
00001e79: SWAP1
00001e7a: PUSH2 0x414e
00001e7d: JUMP
00001e7e: JUMPDEST
00001e7f: PUSH1 0x40
00001e81: MLOAD
00001e82: DUP1
00001e83: SWAP2
00001e84: SUB
00001e85: SWAP1
00001e86: REVERT
00001e87: JUMPDEST
00001e88: PUSH2 0x1e9f
00001e8b: PUSH1 0x02
00001e8d: SLOAD
00001e8e: PUSH2 0x1e9a
00001e91: DUP4
00001e92: PUSH1 0x40
00001e94: ADD
00001e95: MLOAD
00001e96: PUSH2 0x326e
00001e99: JUMP
00001e9a: JUMPDEST
00001e9b: PUSH2 0x3288
00001e9e: JUMP
00001e9f: JUMPDEST
00001ea0: SWAP3
00001ea1: POP
00001ea2: DUP3
00001ea3: DUP5
00001ea4: PUSH1 0x00
00001ea6: ADD
00001ea7: PUSH1 0x00
00001ea9: PUSH2 0x0100
00001eac: EXP
00001ead: DUP2
00001eae: SLOAD
00001eaf: DUP2
00001eb0: PUSH8 0xffffffffffffffff
00001eb9: MUL
00001eba: NOT
00001ebb: AND
00001ebc: SWAP1
00001ebd: DUP4
00001ebe: PUSH8 0xffffffffffffffff
00001ec7: AND
00001ec8: MUL
00001ec9: OR
00001eca: SWAP1
00001ecb: SSTORE
00001ecc: POP
00001ecd: JUMPDEST
00001ece: PUSH2 0x1ed5
00001ed1: PUSH2 0x35c8
00001ed4: JUMP
00001ed5: JUMPDEST
00001ed6: PUSH1 0x00
00001ed8: JUMPDEST
00001ed9: PUSH1 0x32
00001edb: DUP2
00001edc: LT
00001edd: ISZERO
00001ede: PUSH2 0x20cb
00001ee1: JUMPI
00001ee2: DUP3
00001ee3: PUSH1 0x40
00001ee5: ADD
00001ee6: MLOAD
00001ee7: DUP6
00001ee8: LT
00001ee9: ISZERO
00001eea: DUP1
00001eeb: ISZERO
00001eec: PUSH2 0x1ef5
00001eef: JUMPI
00001ef0: POP
00001ef1: DUP7
00001ef2: DUP5
00001ef3: GT
00001ef4: ISZERO
00001ef5: JUMPDEST
00001ef6: ISZERO
00001ef7: PUSH2 0x1ff0
00001efa: JUMPI
00001efb: PUSH1 0x01
00001efd: DUP5
00001efe: ADD
00001eff: SWAP4
00001f00: POP
00001f01: DUP3
00001f02: SWAP2
00001f03: POP
00001f04: DUP7
00001f05: DUP5
00001f06: GT
00001f07: ISZERO
00001f08: PUSH2 0x1f3d
00001f0b: JUMPI
00001f0c: PUSH1 0x40
00001f0e: MLOAD
00001f0f: DUP1
00001f10: PUSH1 0x80
00001f12: ADD
00001f13: PUSH1 0x40
00001f15: MSTORE
00001f16: DUP1
00001f17: PUSH1 0x00
00001f19: PUSH1 0x0f
00001f1b: SIGNEXTEND
00001f1c: DUP2
00001f1d: MSTORE
00001f1e: PUSH1 0x20
00001f20: ADD
00001f21: PUSH1 0x00
00001f23: PUSH1 0x0f
00001f25: SIGNEXTEND
00001f26: DUP2
00001f27: MSTORE
00001f28: PUSH1 0x20
00001f2a: ADD
00001f2b: PUSH1 0x00
00001f2d: DUP2
00001f2e: MSTORE
00001f2f: PUSH1 0x20
00001f31: ADD
00001f32: PUSH1 0x00
00001f34: DUP2
00001f35: MSTORE
00001f36: POP
00001f37: SWAP3
00001f38: POP
00001f39: PUSH2 0x1feb
00001f3c: JUMP
00001f3d: JUMPDEST
00001f3e: PUSH1 0x01
00001f40: DUP1
00001f41: SLOAD
00001f42: SWAP1
00001f43: PUSH2 0x0100
00001f46: EXP
00001f47: SWAP1
00001f48: DIV
00001f49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f5e: AND
00001f5f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f74: AND
00001f75: PUSH4 0x28d09d47
00001f7a: DUP10
00001f7b: DUP7
00001f7c: PUSH1 0x40
00001f7e: MLOAD
00001f7f: DUP4
00001f80: PUSH4 0xffffffff
00001f85: AND
00001f86: PUSH1 0xe0
00001f88: SHL
00001f89: DUP2
00001f8a: MSTORE
00001f8b: PUSH1 0x04
00001f8d: ADD
00001f8e: PUSH2 0x1f98
00001f91: SWAP3
00001f92: SWAP2
00001f93: SWAP1
00001f94: PUSH2 0x4014
00001f97: JUMP
00001f98: JUMPDEST
00001f99: PUSH1 0x80
00001f9b: PUSH1 0x40
00001f9d: MLOAD
00001f9e: DUP1
00001f9f: DUP4
00001fa0: SUB
00001fa1: DUP2
00001fa2: DUP7
00001fa3: DUP1
00001fa4: EXTCODESIZE
00001fa5: ISZERO
00001fa6: DUP1
00001fa7: ISZERO
00001fa8: PUSH2 0x1fb0
00001fab: JUMPI
00001fac: PUSH1 0x00
00001fae: DUP1
00001faf: REVERT
00001fb0: JUMPDEST
00001fb1: POP
00001fb2: GAS
00001fb3: STATICCALL
00001fb4: ISZERO
00001fb5: DUP1
00001fb6: ISZERO
00001fb7: PUSH2 0x1fc4
00001fba: JUMPI
00001fbb: RETURNDATASIZE
00001fbc: PUSH1 0x00
00001fbe: DUP1
00001fbf: RETURNDATACOPY
00001fc0: RETURNDATASIZE
00001fc1: PUSH1 0x00
00001fc3: REVERT
00001fc4: JUMPDEST
00001fc5: POP
00001fc6: POP
00001fc7: POP
00001fc8: POP
00001fc9: PUSH1 0x40
00001fcb: MLOAD
00001fcc: RETURNDATASIZE
00001fcd: PUSH1 0x1f
00001fcf: NOT
00001fd0: PUSH1 0x1f
00001fd2: DUP3
00001fd3: ADD
00001fd4: AND
00001fd5: DUP3
00001fd6: ADD
00001fd7: DUP1
00001fd8: PUSH1 0x40
00001fda: MSTORE
00001fdb: POP
00001fdc: DUP2
00001fdd: ADD
00001fde: SWAP1
00001fdf: PUSH2 0x1fe8
00001fe2: SWAP2
00001fe3: SWAP1
00001fe4: PUSH2 0x3ad9
00001fe7: JUMP
00001fe8: JUMPDEST
00001fe9: SWAP3
00001fea: POP
00001feb: JUMPDEST
00001fec: PUSH2 0x20c0
00001fef: JUMP
00001ff0: JUMPDEST
00001ff1: TIMESTAMP
00001ff2: DUP6
00001ff3: LT
00001ff4: PUSH2 0x1ffc
00001ff7: JUMPI
00001ff8: PUSH2 0x20cb
00001ffb: JUMP
00001ffc: JUMPDEST
00001ffd: PUSH1 0x00
00001fff: DUP3
00002000: PUSH1 0x40
00002002: ADD
00002003: MLOAD
00002004: DUP7
00002005: SUB
00002006: SWAP1
00002007: POP
00002008: PUSH1 0x00
0000200a: DUP2
0000200b: DUP5
0000200c: PUSH1 0x20
0000200e: ADD
0000200f: MLOAD
00002010: MUL
00002011: PUSH1 0x0f
00002013: SIGNEXTEND
00002014: DUP5
00002015: PUSH1 0x00
00002017: ADD
00002018: MLOAD
00002019: PUSH1 0x0f
0000201b: SIGNEXTEND
0000201c: SGT
0000201d: PUSH2 0x2027
00002020: JUMPI
00002021: PUSH1 0x00
00002023: PUSH2 0x2038
00002026: JUMP
00002027: JUMPDEST
00002028: DUP2
00002029: DUP5
0000202a: PUSH1 0x20
0000202c: ADD
0000202d: MLOAD
0000202e: MUL
0000202f: DUP5
00002030: PUSH1 0x00
00002032: ADD
00002033: MLOAD
00002034: SUB
00002035: PUSH1 0x0f
00002037: SIGNEXTEND
00002038: JUMPDEST
00002039: SWAP1
0000203a: POP
0000203b: PUSH1 0x00
0000203d: DUP2
0000203e: EQ
0000203f: DUP1
00002040: ISZERO
00002041: PUSH2 0x2049
00002044: JUMPI
00002045: POP
00002046: DUP9
00002047: DUP7
00002048: GT
00002049: JUMPDEST
0000204a: ISZERO
0000204b: PUSH2 0x2060
0000204e: JUMPI
0000204f: PUSH2 0x2057
00002052: TIMESTAMP
00002053: PUSH2 0x326e
00002056: JUMP
00002057: JUMPDEST
00002058: SWAP7
00002059: POP
0000205a: POP
0000205b: POP
0000205c: PUSH2 0x20cb
0000205f: JUMP
00002060: JUMPDEST
00002061: DUP1
00002062: PUSH1 0x0b
00002064: PUSH1 0x00
00002066: DUP13
00002067: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000207c: AND
0000207d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002092: AND
00002093: DUP2
00002094: MSTORE
00002095: PUSH1 0x20
00002097: ADD
00002098: SWAP1
00002099: DUP2
0000209a: MSTORE
0000209b: PUSH1 0x20
0000209d: ADD
0000209e: PUSH1 0x00
000020a0: KECCAK256
000020a1: PUSH1 0x00
000020a3: DUP10
000020a4: DUP2
000020a5: MSTORE
000020a6: PUSH1 0x20
000020a8: ADD
000020a9: SWAP1
000020aa: DUP2
000020ab: MSTORE
000020ac: PUSH1 0x20
000020ae: ADD
000020af: PUSH1 0x00
000020b1: KECCAK256
000020b2: DUP2
000020b3: SWAP1
000020b4: SSTORE
000020b5: POP
000020b6: PUSH3 0x093a80
000020ba: DUP8
000020bb: ADD
000020bc: SWAP7
000020bd: POP
000020be: POP
000020bf: POP
000020c0: JUMPDEST
000020c1: DUP1
000020c2: PUSH1 0x01
000020c4: ADD
000020c5: SWAP1
000020c6: POP
000020c7: PUSH2 0x1ed8
000020ca: JUMP
000020cb: JUMPDEST
000020cc: POP
000020cd: PUSH1 0x01
000020cf: DUP4
000020d0: SUB
000020d1: PUSH8 0xffffffffffffffff
000020da: AND
000020db: DUP6
000020dc: PUSH1 0x00
000020de: ADD
000020df: PUSH1 0x10
000020e1: PUSH2 0x0100
000020e4: EXP
000020e5: DUP2
000020e6: SLOAD
000020e7: DUP2
000020e8: PUSH16 0xffffffffffffffffffffffffffffffff
000020f9: MUL
000020fa: NOT
000020fb: AND
000020fc: SWAP1
000020fd: DUP4
000020fe: PUSH16 0xffffffffffffffffffffffffffffffff
0000210f: AND
00002110: MUL
00002111: OR
00002112: SWAP1
00002113: SSTORE
00002114: POP
00002115: DUP4
00002116: DUP6
00002117: PUSH1 0x00
00002119: ADD
0000211a: PUSH1 0x08
0000211c: PUSH2 0x0100
0000211f: EXP
00002120: DUP2
00002121: SLOAD
00002122: DUP2
00002123: PUSH8 0xffffffffffffffff
0000212c: MUL
0000212d: NOT
0000212e: AND
0000212f: SWAP1
00002130: DUP4
00002131: PUSH8 0xffffffffffffffff
0000213a: AND
0000213b: MUL
0000213c: OR
0000213d: SWAP1
0000213e: SSTORE
0000213f: POP
00002140: POP
00002141: POP
00002142: POP
00002143: POP
00002144: POP
00002145: POP
00002146: JUMPDEST
00002147: POP
00002148: JUMP
00002149: JUMPDEST
0000214a: PUSH1 0x01
0000214c: PUSH1 0x00
0000214e: DUP2
0000214f: SWAP1
00002150: SSTORE
00002151: POP
00002152: JUMP
00002153: JUMPDEST
00002154: PUSH1 0x00
00002156: DUP1
00002157: PUSH1 0x01
00002159: DUP1
0000215a: SLOAD
0000215b: SWAP1
0000215c: PUSH2 0x0100
0000215f: EXP
00002160: SWAP1
00002161: DIV
00002162: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002177: AND
00002178: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000218d: AND
0000218e: PUSH4 0x900cf0cf
00002193: PUSH1 0x40
00002195: MLOAD
00002196: DUP2
00002197: PUSH4 0xffffffff
0000219c: AND
0000219d: PUSH1 0xe0
0000219f: SHL
000021a0: DUP2
000021a1: MSTORE
000021a2: PUSH1 0x04
000021a4: ADD
000021a5: PUSH1 0x20
000021a7: PUSH1 0x40
000021a9: MLOAD
000021aa: DUP1
000021ab: DUP4
000021ac: SUB
000021ad: DUP2
000021ae: DUP7
000021af: DUP1
000021b0: EXTCODESIZE
000021b1: ISZERO
000021b2: DUP1
000021b3: ISZERO
000021b4: PUSH2 0x21bc
000021b7: JUMPI
000021b8: PUSH1 0x00
000021ba: DUP1
000021bb: REVERT
000021bc: JUMPDEST
000021bd: POP
000021be: GAS
000021bf: STATICCALL
000021c0: ISZERO
000021c1: DUP1
000021c2: ISZERO
000021c3: PUSH2 0x21d0
000021c6: JUMPI
000021c7: RETURNDATASIZE
000021c8: PUSH1 0x00
000021ca: DUP1
000021cb: RETURNDATACOPY
000021cc: RETURNDATASIZE
000021cd: PUSH1 0x00
000021cf: REVERT
000021d0: JUMPDEST
000021d1: POP
000021d2: POP
000021d3: POP
000021d4: POP
000021d5: PUSH1 0x40
000021d7: MLOAD
000021d8: RETURNDATASIZE
000021d9: PUSH1 0x1f
000021db: NOT
000021dc: PUSH1 0x1f
000021de: DUP3
000021df: ADD
000021e0: AND
000021e1: DUP3
000021e2: ADD
000021e3: DUP1
000021e4: PUSH1 0x40
000021e6: MSTORE
000021e7: POP
000021e8: DUP2
000021e9: ADD
000021ea: SWAP1
000021eb: PUSH2 0x21f4
000021ee: SWAP2
000021ef: SWAP1
000021f0: PUSH2 0x3b2b
000021f3: JUMP
000021f4: JUMPDEST
000021f5: SWAP1
000021f6: POP
000021f7: PUSH2 0x21fe
000021fa: PUSH2 0x35c8
000021fd: JUMP
000021fe: JUMPDEST
000021ff: PUSH1 0x01
00002201: DUP1
00002202: SLOAD
00002203: SWAP1
00002204: PUSH2 0x0100
00002207: EXP
00002208: SWAP1
00002209: DIV
0000220a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000221f: AND
00002220: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002235: AND
00002236: PUSH4 0xd1febfb9
0000223b: DUP4
0000223c: PUSH1 0x40
0000223e: MLOAD
0000223f: DUP3
00002240: PUSH4 0xffffffff
00002245: AND
00002246: PUSH1 0xe0
00002248: SHL
00002249: DUP2
0000224a: MSTORE
0000224b: PUSH1 0x04
0000224d: ADD
0000224e: PUSH2 0x2257
00002251: SWAP2
00002252: SWAP1
00002253: PUSH2 0x420e
00002256: JUMP
00002257: JUMPDEST
00002258: PUSH1 0x80
0000225a: PUSH1 0x40
0000225c: MLOAD
0000225d: DUP1
0000225e: DUP4
0000225f: SUB
00002260: DUP2
00002261: DUP7
00002262: DUP1
00002263: EXTCODESIZE
00002264: ISZERO
00002265: DUP1
00002266: ISZERO
00002267: PUSH2 0x226f
0000226a: JUMPI
0000226b: PUSH1 0x00
0000226d: DUP1
0000226e: REVERT
0000226f: JUMPDEST
00002270: POP
00002271: GAS
00002272: STATICCALL
00002273: ISZERO
00002274: DUP1
00002275: ISZERO
00002276: PUSH2 0x2283
00002279: JUMPI
0000227a: RETURNDATASIZE
0000227b: PUSH1 0x00
0000227d: DUP1
0000227e: RETURNDATACOPY
0000227f: RETURNDATASIZE
00002280: PUSH1 0x00
00002282: REVERT
00002283: JUMPDEST
00002284: POP
00002285: POP
00002286: POP
00002287: POP
00002288: PUSH1 0x40
0000228a: MLOAD
0000228b: RETURNDATASIZE
0000228c: PUSH1 0x1f
0000228e: NOT
0000228f: PUSH1 0x1f
00002291: DUP3
00002292: ADD
00002293: AND
00002294: DUP3
00002295: ADD
00002296: DUP1
00002297: PUSH1 0x40
00002299: MSTORE
0000229a: POP
0000229b: DUP2
0000229c: ADD
0000229d: SWAP1
0000229e: PUSH2 0x22a7
000022a1: SWAP2
000022a2: SWAP1
000022a3: PUSH2 0x3ad9
000022a6: JUMP
000022a7: JUMPDEST
000022a8: SWAP1
000022a9: POP
000022aa: PUSH2 0x22b3
000022ad: DUP2
000022ae: DUP6
000022af: PUSH2 0x329b
000022b2: JUMP
000022b3: JUMPDEST
000022b4: SWAP3
000022b5: POP
000022b6: POP
000022b7: POP
000022b8: SWAP2
000022b9: SWAP1
000022ba: POP
000022bb: JUMP
000022bc: JUMPDEST
000022bd: PUSH1 0x00
000022bf: PUSH1 0x08
000022c1: PUSH1 0x00
000022c3: DUP5
000022c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022d9: AND
000022da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022ef: AND
000022f0: DUP2
000022f1: MSTORE
000022f2: PUSH1 0x20
000022f4: ADD
000022f5: SWAP1
000022f6: DUP2
000022f7: MSTORE
000022f8: PUSH1 0x20
000022fa: ADD
000022fb: PUSH1 0x00
000022fd: KECCAK256
000022fe: SWAP1
000022ff: POP
00002300: PUSH1 0x00
00002302: DUP2
00002303: PUSH1 0x00
00002305: ADD
00002306: PUSH1 0x08
00002308: SWAP1
00002309: SLOAD
0000230a: SWAP1
0000230b: PUSH2 0x0100
0000230e: EXP
0000230f: SWAP1
00002310: DIV
00002311: PUSH8 0xffffffffffffffff
0000231a: AND
0000231b: PUSH8 0xffffffffffffffff
00002324: AND
00002325: SWAP1
00002326: POP
00002327: PUSH1 0x00
00002329: DUP1
0000232a: DUP3
0000232b: EQ
0000232c: ISZERO
0000232d: PUSH2 0x23af
00002330: JUMPI
00002331: TIMESTAMP
00002332: SWAP2
00002333: POP
00002334: PUSH2 0x233c
00002337: TIMESTAMP
00002338: PUSH2 0x2ecc
0000233b: JUMP
0000233c: JUMPDEST
0000233d: DUP4
0000233e: PUSH1 0x00
00002340: ADD
00002341: PUSH1 0x00
00002343: PUSH2 0x0100
00002346: EXP
00002347: DUP2
00002348: SLOAD
00002349: DUP2
0000234a: PUSH8 0xffffffffffffffff
00002353: MUL
00002354: NOT
00002355: AND
00002356: SWAP1
00002357: DUP4
00002358: PUSH8 0xffffffffffffffff
00002361: AND
00002362: MUL
00002363: OR
00002364: SWAP1
00002365: SSTORE
00002366: POP
00002367: PUSH1 0x02
00002369: SLOAD
0000236a: TIMESTAMP
0000236b: GT
0000236c: PUSH2 0x23aa
0000236f: JUMPI
00002370: PUSH1 0x40
00002372: MLOAD
00002373: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002394: DUP2
00002395: MSTORE
00002396: PUSH1 0x04
00002398: ADD
00002399: PUSH2 0x23a1
0000239c: SWAP1
0000239d: PUSH2 0x414e
000023a0: JUMP
000023a1: JUMPDEST
000023a2: PUSH1 0x40
000023a4: MLOAD
000023a5: DUP1
000023a6: SWAP2
000023a7: SUB
000023a8: SWAP1
000023a9: REVERT
000023aa: JUMPDEST
000023ab: PUSH2 0x2402
000023ae: JUMP
000023af: JUMPDEST
000023b0: DUP2
000023b1: TIMESTAMP
000023b2: SUB
000023b3: SWAP1
000023b4: POP
000023b5: DUP4
000023b6: PUSH2 0x2401
000023b9: JUMPI
000023ba: PUSH1 0x00
000023bc: PUSH2 0x23c4
000023bf: DUP4
000023c0: PUSH2 0x2ecc
000023c3: JUMP
000023c4: JUMPDEST
000023c5: PUSH2 0x23cd
000023c8: TIMESTAMP
000023c9: PUSH2 0x2ecc
000023cc: JUMP
000023cd: JUMPDEST
000023ce: EQ
000023cf: SWAP1
000023d0: POP
000023d1: PUSH1 0x00
000023d3: PUSH3 0x015180
000023d7: TIMESTAMP
000023d8: PUSH2 0x23e0
000023db: TIMESTAMP
000023dc: PUSH2 0x326e
000023df: JUMP
000023e0: JUMPDEST
000023e1: SUB
000023e2: LT
000023e3: SWAP1
000023e4: POP
000023e5: DUP2
000023e6: DUP1
000023e7: ISZERO
000023e8: PUSH2 0x23ef
000023eb: JUMPI
000023ec: POP
000023ed: DUP1
000023ee: ISZERO
000023ef: JUMPDEST
000023f0: ISZERO
000023f1: PUSH2 0x23fe
000023f4: JUMPI
000023f5: POP
000023f6: POP
000023f7: POP
000023f8: POP
000023f9: POP
000023fa: PUSH2 0x273c
000023fd: JUMP
000023fe: JUMPDEST
000023ff: POP
00002400: POP
00002401: JUMPDEST
00002402: JUMPDEST
00002403: TIMESTAMP
00002404: DUP4
00002405: PUSH1 0x00
00002407: ADD
00002408: PUSH1 0x08
0000240a: PUSH2 0x0100
0000240d: EXP
0000240e: DUP2
0000240f: SLOAD
00002410: DUP2
00002411: PUSH8 0xffffffffffffffff
0000241a: MUL
0000241b: NOT
0000241c: AND
0000241d: SWAP1
0000241e: DUP4
0000241f: PUSH8 0xffffffffffffffff
00002428: AND
00002429: MUL
0000242a: OR
0000242b: SWAP1
0000242c: SSTORE
0000242d: POP
0000242e: PUSH1 0x00
00002430: DUP6
00002431: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002446: AND
00002447: PUSH4 0x70a08231
0000244c: ADDRESS
0000244d: PUSH1 0x40
0000244f: MLOAD
00002450: DUP3
00002451: PUSH4 0xffffffff
00002456: AND
00002457: PUSH1 0xe0
00002459: SHL
0000245a: DUP2
0000245b: MSTORE
0000245c: PUSH1 0x04
0000245e: ADD
0000245f: PUSH2 0x2468
00002462: SWAP2
00002463: SWAP1
00002464: PUSH2 0x3f7d
00002467: JUMP
00002468: JUMPDEST
00002469: PUSH1 0x20
0000246b: PUSH1 0x40
0000246d: MLOAD
0000246e: DUP1
0000246f: DUP4
00002470: SUB
00002471: DUP2
00002472: DUP7
00002473: DUP1
00002474: EXTCODESIZE
00002475: ISZERO
00002476: DUP1
00002477: ISZERO
00002478: PUSH2 0x2480
0000247b: JUMPI
0000247c: PUSH1 0x00
0000247e: DUP1
0000247f: REVERT
00002480: JUMPDEST
00002481: POP
00002482: GAS
00002483: STATICCALL
00002484: ISZERO
00002485: DUP1
00002486: ISZERO
00002487: PUSH2 0x2494
0000248a: JUMPI
0000248b: RETURNDATASIZE
0000248c: PUSH1 0x00
0000248e: DUP1
0000248f: RETURNDATACOPY
00002490: RETURNDATASIZE
00002491: PUSH1 0x00
00002493: REVERT
00002494: JUMPDEST
00002495: POP
00002496: POP
00002497: POP
00002498: POP
00002499: PUSH1 0x40
0000249b: MLOAD
0000249c: RETURNDATASIZE
0000249d: PUSH1 0x1f
0000249f: NOT
000024a0: PUSH1 0x1f
000024a2: DUP3
000024a3: ADD
000024a4: AND
000024a5: DUP3
000024a6: ADD
000024a7: DUP1
000024a8: PUSH1 0x40
000024aa: MSTORE
000024ab: POP
000024ac: DUP2
000024ad: ADD
000024ae: SWAP1
000024af: PUSH2 0x24b8
000024b2: SWAP2
000024b3: SWAP1
000024b4: PUSH2 0x3b2b
000024b7: JUMP
000024b8: JUMPDEST
000024b9: SWAP1
000024ba: POP
000024bb: PUSH1 0x00
000024bd: PUSH2 0x2501
000024c0: DUP6
000024c1: PUSH1 0x00
000024c3: ADD
000024c4: PUSH1 0x10
000024c6: SWAP1
000024c7: SLOAD
000024c8: SWAP1
000024c9: PUSH2 0x0100
000024cc: EXP
000024cd: SWAP1
000024ce: DIV
000024cf: PUSH16 0xffffffffffffffffffffffffffffffff
000024e0: AND
000024e1: PUSH16 0xffffffffffffffffffffffffffffffff
000024f2: AND
000024f3: DUP4
000024f4: PUSH2 0x3437
000024f7: SWAP1
000024f8: SWAP2
000024f9: SWAP1
000024fa: PUSH4 0xffffffff
000024ff: AND
00002500: JUMP
00002501: JUMPDEST
00002502: SWAP1
00002503: POP
00002504: PUSH1 0x00
00002506: DUP2
00002507: EQ
00002508: ISZERO
00002509: PUSH2 0x2516
0000250c: JUMPI
0000250d: POP
0000250e: POP
0000250f: POP
00002510: POP
00002511: POP
00002512: PUSH2 0x273c
00002515: JUMP
00002516: JUMPDEST
00002517: PUSH16 0xffffffffffffffffffffffffffffffff
00002528: DUP1
00002529: AND
0000252a: DUP3
0000252b: GT
0000252c: ISZERO
0000252d: PUSH2 0x256b
00002530: JUMPI
00002531: PUSH1 0x40
00002533: MLOAD
00002534: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002555: DUP2
00002556: MSTORE
00002557: PUSH1 0x04
00002559: ADD
0000255a: PUSH2 0x2562
0000255d: SWAP1
0000255e: PUSH2 0x412e
00002561: JUMP
00002562: JUMPDEST
00002563: PUSH1 0x40
00002565: MLOAD
00002566: DUP1
00002567: SWAP2
00002568: SUB
00002569: SWAP1
0000256a: REVERT
0000256b: JUMPDEST
0000256c: DUP2
0000256d: DUP6
0000256e: PUSH1 0x00
00002570: ADD
00002571: PUSH1 0x10
00002573: PUSH2 0x0100
00002576: EXP
00002577: DUP2
00002578: SLOAD
00002579: DUP2
0000257a: PUSH16 0xffffffffffffffffffffffffffffffff
0000258b: MUL
0000258c: NOT
0000258d: AND
0000258e: SWAP1
0000258f: DUP4
00002590: PUSH16 0xffffffffffffffffffffffffffffffff
000025a1: AND
000025a2: MUL
000025a3: OR
000025a4: SWAP1
000025a5: SSTORE
000025a6: POP
000025a7: PUSH1 0x00
000025a9: PUSH2 0x25b1
000025ac: DUP6
000025ad: PUSH2 0x2ecc
000025b0: JUMP
000025b1: JUMPDEST
000025b2: SWAP1
000025b3: POP
000025b4: PUSH1 0x00
000025b6: DUP1
000025b7: PUSH1 0x09
000025b9: PUSH1 0x00
000025bb: DUP12
000025bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025d1: AND
000025d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025e7: AND
000025e8: DUP2
000025e9: MSTORE
000025ea: PUSH1 0x20
000025ec: ADD
000025ed: SWAP1
000025ee: DUP2
000025ef: MSTORE
000025f0: PUSH1 0x20
000025f2: ADD
000025f3: PUSH1 0x00
000025f5: KECCAK256
000025f6: SWAP1
000025f7: POP
000025f8: PUSH1 0x00
000025fa: JUMPDEST
000025fb: PUSH1 0x14
000025fd: DUP2
000025fe: LT
000025ff: ISZERO
00002600: PUSH2 0x26f7
00002603: JUMPI
00002604: PUSH3 0x093a80
00002608: DUP5
00002609: ADD
0000260a: SWAP3
0000260b: POP
0000260c: DUP3
0000260d: TIMESTAMP
0000260e: LT
0000260f: ISZERO
00002610: PUSH2 0x267f
00002613: JUMPI
00002614: PUSH1 0x00
00002616: DUP8
00002617: EQ
00002618: DUP1
00002619: ISZERO
0000261a: PUSH2 0x2622
0000261d: JUMPI
0000261e: POP
0000261f: DUP8
00002620: TIMESTAMP
00002621: EQ
00002622: JUMPDEST
00002623: ISZERO
00002624: PUSH2 0x264c
00002627: JUMPI
00002628: DUP5
00002629: DUP3
0000262a: PUSH1 0x00
0000262c: DUP7
0000262d: DUP2
0000262e: MSTORE
0000262f: PUSH1 0x20
00002631: ADD
00002632: SWAP1
00002633: DUP2
00002634: MSTORE
00002635: PUSH1 0x20
00002637: ADD
00002638: PUSH1 0x00
0000263a: KECCAK256
0000263b: PUSH1 0x00
0000263d: DUP3
0000263e: DUP3
0000263f: SLOAD
00002640: ADD
00002641: SWAP3
00002642: POP
00002643: POP
00002644: DUP2
00002645: SWAP1
00002646: SSTORE
00002647: POP
00002648: PUSH2 0x267a
0000264b: JUMP
0000264c: JUMPDEST
0000264d: DUP7
0000264e: DUP9
0000264f: TIMESTAMP
00002650: SUB
00002651: DUP7
00002652: MUL
00002653: DUP2
00002654: PUSH2 0x2659
00002657: JUMPI
00002658: INVALID
00002659: JUMPDEST
0000265a: DIV
0000265b: DUP3
0000265c: PUSH1 0x00
0000265e: DUP7
0000265f: DUP2
00002660: MSTORE
00002661: PUSH1 0x20
00002663: ADD
00002664: SWAP1
00002665: DUP2
00002666: MSTORE
00002667: PUSH1 0x20
00002669: ADD
0000266a: PUSH1 0x00
0000266c: KECCAK256
0000266d: PUSH1 0x00
0000266f: DUP3
00002670: DUP3
00002671: SLOAD
00002672: ADD
00002673: SWAP3
00002674: POP
00002675: POP
00002676: DUP2
00002677: SWAP1
00002678: SSTORE
00002679: POP
0000267a: JUMPDEST
0000267b: PUSH2 0x26f7
0000267e: JUMP
0000267f: JUMPDEST
00002680: PUSH1 0x00
00002682: DUP8
00002683: EQ
00002684: DUP1
00002685: ISZERO
00002686: PUSH2 0x268e
00002689: JUMPI
0000268a: POP
0000268b: DUP8
0000268c: DUP4
0000268d: EQ
0000268e: JUMPDEST
0000268f: ISZERO
00002690: PUSH2 0x26b8
00002693: JUMPI
00002694: DUP5
00002695: DUP3
00002696: PUSH1 0x00
00002698: DUP7
00002699: DUP2
0000269a: MSTORE
0000269b: PUSH1 0x20
0000269d: ADD
0000269e: SWAP1
0000269f: DUP2
000026a0: MSTORE
000026a1: PUSH1 0x20
000026a3: ADD
000026a4: PUSH1 0x00
000026a6: KECCAK256
000026a7: PUSH1 0x00
000026a9: DUP3
000026aa: DUP3
000026ab: SLOAD
000026ac: ADD
000026ad: SWAP3
000026ae: POP
000026af: POP
000026b0: DUP2
000026b1: SWAP1
000026b2: SSTORE
000026b3: POP
000026b4: PUSH2 0x26e6
000026b7: JUMP
000026b8: JUMPDEST
000026b9: DUP7
000026ba: DUP9
000026bb: DUP5
000026bc: SUB
000026bd: DUP7
000026be: MUL
000026bf: DUP2
000026c0: PUSH2 0x26c5
000026c3: JUMPI
000026c4: INVALID
000026c5: JUMPDEST
000026c6: DIV
000026c7: DUP3
000026c8: PUSH1 0x00
000026ca: DUP7
000026cb: DUP2
000026cc: MSTORE
000026cd: PUSH1 0x20
000026cf: ADD
000026d0: SWAP1
000026d1: DUP2
000026d2: MSTORE
000026d3: PUSH1 0x20
000026d5: ADD
000026d6: PUSH1 0x00
000026d8: KECCAK256
000026d9: PUSH1 0x00
000026db: DUP3
000026dc: DUP3
000026dd: SLOAD
000026de: ADD
000026df: SWAP3
000026e0: POP
000026e1: POP
000026e2: DUP2
000026e3: SWAP1
000026e4: SSTORE
000026e5: POP
000026e6: JUMPDEST
000026e7: DUP3
000026e8: SWAP8
000026e9: POP
000026ea: DUP3
000026eb: SWAP4
000026ec: POP
000026ed: DUP1
000026ee: PUSH1 0x01
000026f0: ADD
000026f1: SWAP1
000026f2: POP
000026f3: PUSH2 0x25fa
000026f6: JUMP
000026f7: JUMPDEST
000026f8: POP
000026f9: PUSH32 0x9b7f1a85a4c9b4e59e1b6527d9969c50cdfb3a1a467d0c4a51fb0ed8bf07f130
0000271a: DUP11
0000271b: DUP6
0000271c: DUP10
0000271d: PUSH1 0x40
0000271f: MLOAD
00002720: PUSH2 0x272b
00002723: SWAP4
00002724: SWAP3
00002725: SWAP2
00002726: SWAP1
00002727: PUSH2 0x409c
0000272a: JUMP
0000272b: JUMPDEST
0000272c: PUSH1 0x40
0000272e: MLOAD
0000272f: DUP1
00002730: SWAP2
00002731: SUB
00002732: SWAP1
00002733: LOG1
00002734: POP
00002735: POP
00002736: POP
00002737: POP
00002738: POP
00002739: POP
0000273a: POP
0000273b: POP
0000273c: JUMPDEST
0000273d: POP
0000273e: POP
0000273f: JUMP
00002740: JUMPDEST
00002741: PUSH2 0x27c3
00002744: DUP5
00002745: PUSH4 0x23b872dd
0000274a: PUSH1 0xe0
0000274c: SHL
0000274d: DUP6
0000274e: DUP6
0000274f: DUP6
00002750: PUSH1 0x40
00002752: MLOAD
00002753: PUSH1 0x24
00002755: ADD
00002756: PUSH2 0x2761
00002759: SWAP4
0000275a: SWAP3
0000275b: SWAP2
0000275c: SWAP1
0000275d: PUSH2 0x3f98
00002760: JUMP
00002761: JUMPDEST
00002762: PUSH1 0x40
00002764: MLOAD
00002765: PUSH1 0x20
00002767: DUP2
00002768: DUP4
00002769: SUB
0000276a: SUB
0000276b: DUP2
0000276c: MSTORE
0000276d: SWAP1
0000276e: PUSH1 0x40
00002770: MSTORE
00002771: SWAP1
00002772: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000278f: NOT
00002790: AND
00002791: PUSH1 0x20
00002793: DUP3
00002794: ADD
00002795: DUP1
00002796: MLOAD
00002797: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000027b4: DUP4
000027b5: DUP2
000027b6: DUP4
000027b7: AND
000027b8: OR
000027b9: DUP4
000027ba: MSTORE
000027bb: POP
000027bc: POP
000027bd: POP
000027be: POP
000027bf: PUSH2 0x344d
000027c2: JUMP
000027c3: JUMPDEST
000027c4: POP
000027c5: POP
000027c6: POP
000027c7: POP
000027c8: JUMP
000027c9: JUMPDEST
000027ca: PUSH1 0x00
000027cc: DUP1
000027cd: PUSH1 0x00
000027cf: SWAP1
000027d0: POP
000027d1: PUSH1 0x00
000027d3: DUP4
000027d4: SWAP1
000027d5: POP
000027d6: PUSH1 0x00
000027d8: JUMPDEST
000027d9: PUSH1 0x80
000027db: DUP2
000027dc: LT
000027dd: ISZERO
000027de: PUSH2 0x28cf
000027e1: JUMPI
000027e2: DUP2
000027e3: DUP4
000027e4: LT
000027e5: PUSH2 0x27ed
000027e8: JUMPI
000027e9: PUSH2 0x28cf
000027ec: JUMP
000027ed: JUMPDEST
000027ee: PUSH1 0x00
000027f0: PUSH1 0x02
000027f2: PUSH1 0x01
000027f4: DUP5
000027f5: DUP7
000027f6: ADD
000027f7: ADD
000027f8: DUP2
000027f9: PUSH2 0x27fe
000027fc: JUMPI
000027fd: INVALID
000027fe: JUMPDEST
000027ff: DIV
00002800: SWAP1
00002801: POP
00002802: DUP7
00002803: PUSH1 0x01
00002805: DUP1
00002806: SLOAD
00002807: SWAP1
00002808: PUSH2 0x0100
0000280b: EXP
0000280c: SWAP1
0000280d: DIV
0000280e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002823: AND
00002824: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002839: AND
0000283a: PUSH4 0xd1febfb9
0000283f: DUP4
00002840: PUSH1 0x40
00002842: MLOAD
00002843: DUP3
00002844: PUSH4 0xffffffff
00002849: AND
0000284a: PUSH1 0xe0
0000284c: SHL
0000284d: DUP2
0000284e: MSTORE
0000284f: PUSH1 0x04
00002851: ADD
00002852: PUSH2 0x285b
00002855: SWAP2
00002856: SWAP1
00002857: PUSH2 0x420e
0000285a: JUMP
0000285b: JUMPDEST
0000285c: PUSH1 0x80
0000285e: PUSH1 0x40
00002860: MLOAD
00002861: DUP1
00002862: DUP4
00002863: SUB
00002864: DUP2
00002865: DUP7
00002866: DUP1
00002867: EXTCODESIZE
00002868: ISZERO
00002869: DUP1
0000286a: ISZERO
0000286b: PUSH2 0x2873
0000286e: JUMPI
0000286f: PUSH1 0x00
00002871: DUP1
00002872: REVERT
00002873: JUMPDEST
00002874: POP
00002875: GAS
00002876: STATICCALL
00002877: ISZERO
00002878: DUP1
00002879: ISZERO
0000287a: PUSH2 0x2887
0000287d: JUMPI
0000287e: RETURNDATASIZE
0000287f: PUSH1 0x00
00002881: DUP1
00002882: RETURNDATACOPY
00002883: RETURNDATASIZE
00002884: PUSH1 0x00
00002886: REVERT
00002887: JUMPDEST
00002888: POP
00002889: POP
0000288a: POP
0000288b: POP
0000288c: PUSH1 0x40
0000288e: MLOAD
0000288f: RETURNDATASIZE
00002890: PUSH1 0x1f
00002892: NOT
00002893: PUSH1 0x1f
00002895: DUP3
00002896: ADD
00002897: AND
00002898: DUP3
00002899: ADD
0000289a: DUP1
0000289b: PUSH1 0x40
0000289d: MSTORE
0000289e: POP
0000289f: DUP2
000028a0: ADD
000028a1: SWAP1
000028a2: PUSH2 0x28ab
000028a5: SWAP2
000028a6: SWAP1
000028a7: PUSH2 0x3ad9
000028aa: JUMP
000028ab: JUMPDEST
000028ac: PUSH1 0x60
000028ae: ADD
000028af: MLOAD
000028b0: GT
000028b1: PUSH2 0x28bc
000028b4: JUMPI
000028b5: DUP1
000028b6: SWAP4
000028b7: POP
000028b8: PUSH2 0x28c3
000028bb: JUMP
000028bc: JUMPDEST
000028bd: PUSH1 0x01
000028bf: DUP2
000028c0: SUB
000028c1: SWAP3
000028c2: POP
000028c3: JUMPDEST
000028c4: POP
000028c5: DUP1
000028c6: PUSH1 0x01
000028c8: ADD
000028c9: SWAP1
000028ca: POP
000028cb: PUSH2 0x27d8
000028ce: JUMP
000028cf: JUMPDEST
000028d0: POP
000028d1: DUP2
000028d2: SWAP3
000028d3: POP
000028d4: POP
000028d5: POP
000028d6: SWAP3
000028d7: SWAP2
000028d8: POP
000028d9: POP
000028da: JUMP
000028db: JUMPDEST
000028dc: PUSH2 0x28e8
000028df: DUP2
000028e0: DUP4
000028e1: EQ
000028e2: PUSH1 0x67
000028e4: PUSH2 0x313b
000028e7: JUMP
000028e8: JUMPDEST
000028e9: POP
000028ea: POP
000028eb: JUMP
000028ec: JUMPDEST
000028ed: PUSH1 0x00
000028ef: DUP1
000028f0: PUSH1 0x0c
000028f2: PUSH1 0x00
000028f4: DUP6
000028f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000290a: AND
0000290b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002920: AND
00002921: DUP2
00002922: MSTORE
00002923: PUSH1 0x20
00002925: ADD
00002926: SWAP1
00002927: DUP2
00002928: MSTORE
00002929: PUSH1 0x20
0000292b: ADD
0000292c: PUSH1 0x00
0000292e: KECCAK256
0000292f: PUSH1 0x00
00002931: DUP5
00002932: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002947: AND
00002948: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000295d: AND
0000295e: DUP2
0000295f: MSTORE
00002960: PUSH1 0x20
00002962: ADD
00002963: SWAP1
00002964: DUP2
00002965: MSTORE
00002966: PUSH1 0x20
00002968: ADD
00002969: PUSH1 0x00
0000296b: KECCAK256
0000296c: SLOAD
0000296d: SWAP1
0000296e: POP
0000296f: PUSH1 0x00
00002971: DUP2
00002972: GT
00002973: ISZERO
00002974: PUSH2 0x2980
00002977: JUMPI
00002978: DUP1
00002979: SWAP2
0000297a: POP
0000297b: POP
0000297c: PUSH2 0x2a4e
0000297f: JUMP
00002980: JUMPDEST
00002981: PUSH2 0x2a4a
00002984: PUSH1 0x0a
00002986: PUSH1 0x00
00002988: DUP7
00002989: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000299e: AND
0000299f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029b4: AND
000029b5: DUP2
000029b6: MSTORE
000029b7: PUSH1 0x20
000029b9: ADD
000029ba: SWAP1
000029bb: DUP2
000029bc: MSTORE
000029bd: PUSH1 0x20
000029bf: ADD
000029c0: PUSH1 0x00
000029c2: KECCAK256
000029c3: PUSH1 0x00
000029c5: ADD
000029c6: PUSH1 0x00
000029c8: SWAP1
000029c9: SLOAD
000029ca: SWAP1
000029cb: PUSH2 0x0100
000029ce: EXP
000029cf: SWAP1
000029d0: DIV
000029d1: PUSH8 0xffffffffffffffff
000029da: AND
000029db: PUSH8 0xffffffffffffffff
000029e4: AND
000029e5: PUSH1 0x08
000029e7: PUSH1 0x00
000029e9: DUP7
000029ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029ff: AND
00002a00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a15: AND
00002a16: DUP2
00002a17: MSTORE
00002a18: PUSH1 0x20
00002a1a: ADD
00002a1b: SWAP1
00002a1c: DUP2
00002a1d: MSTORE
00002a1e: PUSH1 0x20
00002a20: ADD
00002a21: PUSH1 0x00
00002a23: KECCAK256
00002a24: PUSH1 0x00
00002a26: ADD
00002a27: PUSH1 0x00
00002a29: SWAP1
00002a2a: SLOAD
00002a2b: SWAP1
00002a2c: PUSH2 0x0100
00002a2f: EXP
00002a30: SWAP1
00002a31: DIV
00002a32: PUSH8 0xffffffffffffffff
00002a3b: AND
00002a3c: PUSH8 0xffffffffffffffff
00002a45: AND
00002a46: PUSH2 0x3288
00002a49: JUMP
00002a4a: JUMPDEST
00002a4b: SWAP2
00002a4c: POP
00002a4d: POP
00002a4e: JUMPDEST
00002a4f: SWAP3
00002a50: SWAP2
00002a51: POP
00002a52: POP
00002a53: JUMP
00002a54: JUMPDEST
00002a55: PUSH1 0x00
00002a57: PUSH1 0x03
00002a59: SLOAD
00002a5a: SWAP1
00002a5b: POP
00002a5c: PUSH1 0x00
00002a5e: PUSH2 0x2a66
00002a61: TIMESTAMP
00002a62: PUSH2 0x2ecc
00002a65: JUMP
00002a66: JUMPDEST
00002a67: SWAP1
00002a68: POP
00002a69: DUP1
00002a6a: DUP3
00002a6b: GT
00002a6c: DUP1
00002a6d: PUSH2 0x2a75
00002a70: JUMPI
00002a71: POP
00002a72: TIMESTAMP
00002a73: DUP2
00002a74: EQ
00002a75: JUMPDEST
00002a76: ISZERO
00002a77: PUSH2 0x2a81
00002a7a: JUMPI
00002a7b: POP
00002a7c: POP
00002a7d: PUSH2 0x2b5e
00002a80: JUMP
00002a81: JUMPDEST
00002a82: PUSH1 0x01
00002a84: DUP1
00002a85: SLOAD
00002a86: SWAP1
00002a87: PUSH2 0x0100
00002a8a: EXP
00002a8b: SWAP1
00002a8c: DIV
00002a8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002aa2: AND
00002aa3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ab8: AND
00002ab9: PUSH4 0xc2c4c5c1
00002abe: PUSH1 0x40
00002ac0: MLOAD
00002ac1: DUP2
00002ac2: PUSH4 0xffffffff
00002ac7: AND
00002ac8: PUSH1 0xe0
00002aca: SHL
00002acb: DUP2
00002acc: MSTORE
00002acd: PUSH1 0x04
00002acf: ADD
00002ad0: PUSH1 0x00
00002ad2: PUSH1 0x40
00002ad4: MLOAD
00002ad5: DUP1
00002ad6: DUP4
00002ad7: SUB
00002ad8: DUP2
00002ad9: PUSH1 0x00
00002adb: DUP8
00002adc: DUP1
00002add: EXTCODESIZE
00002ade: ISZERO
00002adf: DUP1
00002ae0: ISZERO
00002ae1: PUSH2 0x2ae9
00002ae4: JUMPI
00002ae5: PUSH1 0x00
00002ae7: DUP1
00002ae8: REVERT
00002ae9: JUMPDEST
00002aea: POP
00002aeb: GAS
00002aec: CALL
00002aed: ISZERO
00002aee: DUP1
00002aef: ISZERO
00002af0: PUSH2 0x2afd
00002af3: JUMPI
00002af4: RETURNDATASIZE
00002af5: PUSH1 0x00
00002af7: DUP1
00002af8: RETURNDATACOPY
00002af9: RETURNDATASIZE
00002afa: PUSH1 0x00
00002afc: REVERT
00002afd: JUMPDEST
00002afe: POP
00002aff: POP
00002b00: POP
00002b01: POP
00002b02: PUSH1 0x00
00002b04: JUMPDEST
00002b05: PUSH1 0x14
00002b07: DUP2
00002b08: LT
00002b09: ISZERO
00002b0a: PUSH2 0x2b53
00002b0d: JUMPI
00002b0e: DUP2
00002b0f: DUP4
00002b10: GT
00002b11: ISZERO
00002b12: PUSH2 0x2b1a
00002b15: JUMPI
00002b16: PUSH2 0x2b53
00002b19: JUMP
00002b1a: JUMPDEST
00002b1b: PUSH1 0x00
00002b1d: PUSH2 0x2b25
00002b20: DUP5
00002b21: PUSH2 0x0d59
00002b24: JUMP
00002b25: JUMPDEST
00002b26: SWAP1
00002b27: POP
00002b28: DUP1
00002b29: PUSH1 0x04
00002b2b: PUSH1 0x00
00002b2d: DUP7
00002b2e: DUP2
00002b2f: MSTORE
00002b30: PUSH1 0x20
00002b32: ADD
00002b33: SWAP1
00002b34: DUP2
00002b35: MSTORE
00002b36: PUSH1 0x20
00002b38: ADD
00002b39: PUSH1 0x00
00002b3b: KECCAK256
00002b3c: DUP2
00002b3d: SWAP1
00002b3e: SSTORE
00002b3f: POP
00002b40: PUSH3 0x093a80
00002b44: DUP5
00002b45: ADD
00002b46: SWAP4
00002b47: POP
00002b48: POP
00002b49: DUP1
00002b4a: PUSH1 0x01
00002b4c: ADD
00002b4d: SWAP1
00002b4e: POP
00002b4f: PUSH2 0x2b04
00002b52: JUMP
00002b53: JUMPDEST
00002b54: POP
00002b55: DUP2
00002b56: PUSH1 0x03
00002b58: DUP2
00002b59: SWAP1
00002b5a: SSTORE
00002b5b: POP
00002b5c: POP
00002b5d: POP
00002b5e: JUMPDEST
00002b5f: JUMP
00002b60: JUMPDEST
00002b61: PUSH1 0x00
00002b63: DUP1
00002b64: PUSH1 0x08
00002b66: PUSH1 0x00
00002b68: DUP5
00002b69: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b7e: AND
00002b7f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b94: AND
00002b95: DUP2
00002b96: MSTORE
00002b97: PUSH1 0x20
00002b99: ADD
00002b9a: SWAP1
00002b9b: DUP2
00002b9c: MSTORE
00002b9d: PUSH1 0x20
00002b9f: ADD
00002ba0: PUSH1 0x00
00002ba2: KECCAK256
00002ba3: SWAP1
00002ba4: POP
00002ba5: PUSH1 0x00
00002ba7: PUSH2 0x2bb0
00002baa: DUP6
00002bab: DUP6
00002bac: PUSH2 0x28ec
00002baf: JUMP
00002bb0: JUMPDEST
00002bb1: SWAP1
00002bb2: POP
00002bb3: PUSH1 0x00
00002bb5: PUSH2 0x2c5b
00002bb8: PUSH2 0x2c2b
00002bbb: PUSH2 0x2c26
00002bbe: PUSH1 0x03
00002bc0: SLOAD
00002bc1: PUSH1 0x0a
00002bc3: PUSH1 0x00
00002bc5: DUP12
00002bc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002bdb: AND
00002bdc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002bf1: AND
00002bf2: DUP2
00002bf3: MSTORE
00002bf4: PUSH1 0x20
00002bf6: ADD
00002bf7: SWAP1
00002bf8: DUP2
00002bf9: MSTORE
00002bfa: PUSH1 0x20
00002bfc: ADD
00002bfd: PUSH1 0x00
00002bff: KECCAK256
00002c00: PUSH1 0x00
00002c02: ADD
00002c03: PUSH1 0x08
00002c05: SWAP1
00002c06: SLOAD
00002c07: SWAP1
00002c08: PUSH2 0x0100
00002c0b: EXP
00002c0c: SWAP1
00002c0d: DIV
00002c0e: PUSH8 0xffffffffffffffff
00002c17: AND
00002c18: PUSH8 0xffffffffffffffff
00002c21: AND
00002c22: PUSH2 0x3501
00002c25: JUMP
00002c26: JUMPDEST
00002c27: PUSH2 0x326e
00002c2a: JUMP
00002c2b: JUMPDEST
00002c2c: PUSH2 0x2c56
00002c2f: DUP6
00002c30: PUSH1 0x00
00002c32: ADD
00002c33: PUSH1 0x08
00002c35: SWAP1
00002c36: SLOAD
00002c37: SWAP1
00002c38: PUSH2 0x0100
00002c3b: EXP
00002c3c: SWAP1
00002c3d: DIV
00002c3e: PUSH8 0xffffffffffffffff
00002c47: AND
00002c48: PUSH8 0xffffffffffffffff
00002c51: AND
00002c52: PUSH2 0x2ecc
00002c55: JUMP
00002c56: JUMPDEST
00002c57: PUSH2 0x3501
00002c5a: JUMP
00002c5b: JUMPDEST
00002c5c: SWAP1
00002c5d: POP
00002c5e: PUSH1 0x00
00002c60: PUSH1 0x09
00002c62: PUSH1 0x00
00002c64: DUP8
00002c65: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c7a: AND
00002c7b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c90: AND
00002c91: DUP2
00002c92: MSTORE
00002c93: PUSH1 0x20
00002c95: ADD
00002c96: SWAP1
00002c97: DUP2
00002c98: MSTORE
00002c99: PUSH1 0x20
00002c9b: ADD
00002c9c: PUSH1 0x00
00002c9e: KECCAK256
00002c9f: SWAP1
00002ca0: POP
00002ca1: PUSH1 0x00
00002ca3: PUSH1 0x0b
00002ca5: PUSH1 0x00
00002ca7: DUP10
00002ca8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002cbd: AND
00002cbe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002cd3: AND
00002cd4: DUP2
00002cd5: MSTORE
00002cd6: PUSH1 0x20
00002cd8: ADD
00002cd9: SWAP1
00002cda: DUP2
00002cdb: MSTORE
00002cdc: PUSH1 0x20
00002cde: ADD
00002cdf: PUSH1 0x00
00002ce1: KECCAK256
00002ce2: SWAP1
00002ce3: POP
00002ce4: PUSH1 0x00
00002ce6: DUP1
00002ce7: PUSH1 0x00
00002ce9: SWAP1
00002cea: POP
00002ceb: JUMPDEST
00002cec: PUSH1 0x14
00002cee: DUP2
00002cef: LT
00002cf0: ISZERO
00002cf1: PUSH2 0x2d5a
00002cf4: JUMPI
00002cf5: DUP5
00002cf6: DUP7
00002cf7: LT
00002cf8: PUSH2 0x2d00
00002cfb: JUMPI
00002cfc: PUSH2 0x2d5a
00002cff: JUMP
00002d00: JUMPDEST
00002d01: PUSH1 0x04
00002d03: PUSH1 0x00
00002d05: DUP8
00002d06: DUP2
00002d07: MSTORE
00002d08: PUSH1 0x20
00002d0a: ADD
00002d0b: SWAP1
00002d0c: DUP2
00002d0d: MSTORE
00002d0e: PUSH1 0x20
00002d10: ADD
00002d11: PUSH1 0x00
00002d13: KECCAK256
00002d14: SLOAD
00002d15: DUP4
00002d16: PUSH1 0x00
00002d18: DUP9
00002d19: DUP2
00002d1a: MSTORE
00002d1b: PUSH1 0x20
00002d1d: ADD
00002d1e: SWAP1
00002d1f: DUP2
00002d20: MSTORE
00002d21: PUSH1 0x20
00002d23: ADD
00002d24: PUSH1 0x00
00002d26: KECCAK256
00002d27: SLOAD
00002d28: DUP6
00002d29: PUSH1 0x00
00002d2b: DUP10
00002d2c: DUP2
00002d2d: MSTORE
00002d2e: PUSH1 0x20
00002d30: ADD
00002d31: SWAP1
00002d32: DUP2
00002d33: MSTORE
00002d34: PUSH1 0x20
00002d36: ADD
00002d37: PUSH1 0x00
00002d39: KECCAK256
00002d3a: SLOAD
00002d3b: MUL
00002d3c: DUP2
00002d3d: PUSH2 0x2d42
00002d40: JUMPI
00002d41: INVALID
00002d42: JUMPDEST
00002d43: DIV
00002d44: DUP3
00002d45: ADD
00002d46: SWAP2
00002d47: POP
00002d48: PUSH3 0x093a80
00002d4c: DUP7
00002d4d: ADD
00002d4e: SWAP6
00002d4f: POP
00002d50: DUP1
00002d51: PUSH1 0x01
00002d53: ADD
00002d54: SWAP1
00002d55: POP
00002d56: PUSH2 0x2ceb
00002d59: JUMP
00002d5a: JUMPDEST
00002d5b: POP
00002d5c: DUP5
00002d5d: PUSH1 0x0c
00002d5f: PUSH1 0x00
00002d61: DUP12
00002d62: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d77: AND
00002d78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d8d: AND
00002d8e: DUP2
00002d8f: MSTORE
00002d90: PUSH1 0x20
00002d92: ADD
00002d93: SWAP1
00002d94: DUP2
00002d95: MSTORE
00002d96: PUSH1 0x20
00002d98: ADD
00002d99: PUSH1 0x00
00002d9b: KECCAK256
00002d9c: PUSH1 0x00
00002d9e: DUP11
00002d9f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002db4: AND
00002db5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002dca: AND
00002dcb: DUP2
00002dcc: MSTORE
00002dcd: PUSH1 0x20
00002dcf: ADD
00002dd0: SWAP1
00002dd1: DUP2
00002dd2: MSTORE
00002dd3: PUSH1 0x20
00002dd5: ADD
00002dd6: PUSH1 0x00
00002dd8: KECCAK256
00002dd9: DUP2
00002dda: SWAP1
00002ddb: SSTORE
00002ddc: POP
00002ddd: PUSH1 0x00
00002ddf: DUP2
00002de0: GT
00002de1: ISZERO
00002de2: PUSH2 0x2ebd
00002de5: JUMPI
00002de6: DUP1
00002de7: DUP7
00002de8: PUSH1 0x00
00002dea: ADD
00002deb: PUSH1 0x10
00002ded: SWAP1
00002dee: SLOAD
00002def: SWAP1
00002df0: PUSH2 0x0100
00002df3: EXP
00002df4: SWAP1
00002df5: DIV
00002df6: PUSH16 0xffffffffffffffffffffffffffffffff
00002e07: AND
00002e08: PUSH16 0xffffffffffffffffffffffffffffffff
00002e19: AND
00002e1a: SUB
00002e1b: DUP7
00002e1c: PUSH1 0x00
00002e1e: ADD
00002e1f: PUSH1 0x10
00002e21: PUSH2 0x0100
00002e24: EXP
00002e25: DUP2
00002e26: SLOAD
00002e27: DUP2
00002e28: PUSH16 0xffffffffffffffffffffffffffffffff
00002e39: MUL
00002e3a: NOT
00002e3b: AND
00002e3c: SWAP1
00002e3d: DUP4
00002e3e: PUSH16 0xffffffffffffffffffffffffffffffff
00002e4f: AND
00002e50: MUL
00002e51: OR
00002e52: SWAP1
00002e53: SSTORE
00002e54: POP
00002e55: PUSH2 0x2e7f
00002e58: DUP10
00002e59: DUP3
00002e5a: DUP11
00002e5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002e70: AND
00002e71: PUSH2 0x30b5
00002e74: SWAP1
00002e75: SWAP3
00002e76: SWAP2
00002e77: SWAP1
00002e78: PUSH4 0xffffffff
00002e7d: AND
00002e7e: JUMP
00002e7f: JUMPDEST
00002e80: PUSH32 0xff097c7d8b1957a4ff09ef1361b5fb54dcede3941ba836d0beb9d10bec725de6
00002ea1: DUP10
00002ea2: DUP10
00002ea3: DUP4
00002ea4: DUP9
00002ea5: PUSH1 0x40
00002ea7: MLOAD
00002ea8: PUSH2 0x2eb4
00002eab: SWAP5
00002eac: SWAP4
00002ead: SWAP3
00002eae: SWAP2
00002eaf: SWAP1
00002eb0: PUSH2 0x3fcf
00002eb3: JUMP
00002eb4: JUMPDEST
00002eb5: PUSH1 0x40
00002eb7: MLOAD
00002eb8: DUP1
00002eb9: SWAP2
00002eba: SUB
00002ebb: SWAP1
00002ebc: LOG1
00002ebd: JUMPDEST
00002ebe: DUP1
00002ebf: SWAP7
00002ec0: POP
00002ec1: POP
00002ec2: POP
00002ec3: POP
00002ec4: POP
00002ec5: POP
00002ec6: POP
00002ec7: SWAP3
00002ec8: SWAP2
00002ec9: POP
00002eca: POP
00002ecb: JUMP
00002ecc: JUMPDEST
00002ecd: PUSH1 0x00
00002ecf: PUSH3 0x093a80
00002ed3: DUP1
00002ed4: DUP4
00002ed5: DUP2
00002ed6: PUSH2 0x2edb
00002ed9: JUMPI
00002eda: INVALID
00002edb: JUMPDEST
00002edc: DIV
00002edd: MUL
00002ede: SWAP1
00002edf: POP
00002ee0: SWAP2
00002ee1: SWAP1
00002ee2: POP
00002ee3: JUMP
00002ee4: JUMPDEST
00002ee5: PUSH1 0x00
00002ee7: DUP1
00002ee8: PUSH1 0x01
00002eea: DUP1
00002eeb: SLOAD
00002eec: SWAP1
00002eed: PUSH2 0x0100
00002ef0: EXP
00002ef1: SWAP1
00002ef2: DIV
00002ef3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f08: AND
00002f09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f1e: AND
00002f1f: PUSH4 0x010ae757
00002f24: DUP6
00002f25: PUSH1 0x40
00002f27: MLOAD
00002f28: DUP3
00002f29: PUSH4 0xffffffff
00002f2e: AND
00002f2f: PUSH1 0xe0
00002f31: SHL
00002f32: DUP2
00002f33: MSTORE
00002f34: PUSH1 0x04
00002f36: ADD
00002f37: PUSH2 0x2f40
00002f3a: SWAP2
00002f3b: SWAP1
00002f3c: PUSH2 0x3f7d
00002f3f: JUMP
00002f40: JUMPDEST
00002f41: PUSH1 0x20
00002f43: PUSH1 0x40
00002f45: MLOAD
00002f46: DUP1
00002f47: DUP4
00002f48: SUB
00002f49: DUP2
00002f4a: DUP7
00002f4b: DUP1
00002f4c: EXTCODESIZE
00002f4d: ISZERO
00002f4e: DUP1
00002f4f: ISZERO
00002f50: PUSH2 0x2f58
00002f53: JUMPI
00002f54: PUSH1 0x00
00002f56: DUP1
00002f57: REVERT
00002f58: JUMPDEST
00002f59: POP
00002f5a: GAS
00002f5b: STATICCALL
00002f5c: ISZERO
00002f5d: DUP1
00002f5e: ISZERO
00002f5f: PUSH2 0x2f6c
00002f62: JUMPI
00002f63: RETURNDATASIZE
00002f64: PUSH1 0x00
00002f66: DUP1
00002f67: RETURNDATACOPY
00002f68: RETURNDATASIZE
00002f69: PUSH1 0x00
00002f6b: REVERT
00002f6c: JUMPDEST
00002f6d: POP
00002f6e: POP
00002f6f: POP
00002f70: POP
00002f71: PUSH1 0x40
00002f73: MLOAD
00002f74: RETURNDATASIZE
00002f75: PUSH1 0x1f
00002f77: NOT
00002f78: PUSH1 0x1f
00002f7a: DUP3
00002f7b: ADD
00002f7c: AND
00002f7d: DUP3
00002f7e: ADD
00002f7f: DUP1
00002f80: PUSH1 0x40
00002f82: MSTORE
00002f83: POP
00002f84: DUP2
00002f85: ADD
00002f86: SWAP1
00002f87: PUSH2 0x2f90
00002f8a: SWAP2
00002f8b: SWAP1
00002f8c: PUSH2 0x3b2b
00002f8f: JUMP
00002f90: JUMPDEST
00002f91: SWAP1
00002f92: POP
00002f93: PUSH1 0x00
00002f95: DUP2
00002f96: EQ
00002f97: ISZERO
00002f98: PUSH2 0x2fa5
00002f9b: JUMPI
00002f9c: PUSH1 0x00
00002f9e: SWAP2
00002f9f: POP
00002fa0: POP
00002fa1: PUSH2 0x30af
00002fa4: JUMP
00002fa5: JUMPDEST
00002fa6: PUSH2 0x2fad
00002fa9: PUSH2 0x35c8
00002fac: JUMP
00002fad: JUMPDEST
00002fae: PUSH1 0x01
00002fb0: DUP1
00002fb1: SLOAD
00002fb2: SWAP1
00002fb3: PUSH2 0x0100
00002fb6: EXP
00002fb7: SWAP1
00002fb8: DIV
00002fb9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002fce: AND
00002fcf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002fe4: AND
00002fe5: PUSH4 0x28d09d47
00002fea: DUP7
00002feb: DUP5
00002fec: PUSH1 0x40
00002fee: MLOAD
00002fef: DUP4
00002ff0: PUSH4 0xffffffff
00002ff5: AND
00002ff6: PUSH1 0xe0
00002ff8: SHL
00002ff9: DUP2
00002ffa: MSTORE
00002ffb: PUSH1 0x04
00002ffd: ADD
00002ffe: PUSH2 0x3008
00003001: SWAP3
00003002: SWAP2
00003003: SWAP1
00003004: PUSH2 0x4014
00003007: JUMP
00003008: JUMPDEST
00003009: PUSH1 0x80
0000300b: PUSH1 0x40
0000300d: MLOAD
0000300e: DUP1
0000300f: DUP4
00003010: SUB
00003011: DUP2
00003012: DUP7
00003013: DUP1
00003014: EXTCODESIZE
00003015: ISZERO
00003016: DUP1
00003017: ISZERO
00003018: PUSH2 0x3020
0000301b: JUMPI
0000301c: PUSH1 0x00
0000301e: DUP1
0000301f: REVERT
00003020: JUMPDEST
00003021: POP
00003022: GAS
00003023: STATICCALL
00003024: ISZERO
00003025: DUP1
00003026: ISZERO
00003027: PUSH2 0x3034
0000302a: JUMPI
0000302b: RETURNDATASIZE
0000302c: PUSH1 0x00
0000302e: DUP1
0000302f: RETURNDATACOPY
00003030: RETURNDATASIZE
00003031: PUSH1 0x00
00003033: REVERT
00003034: JUMPDEST
00003035: POP
00003036: POP
00003037: POP
00003038: POP
00003039: PUSH1 0x40
0000303b: MLOAD
0000303c: RETURNDATASIZE
0000303d: PUSH1 0x1f
0000303f: NOT
00003040: PUSH1 0x1f
00003042: DUP3
00003043: ADD
00003044: AND
00003045: DUP3
00003046: ADD
00003047: DUP1
00003048: PUSH1 0x40
0000304a: MSTORE
0000304b: POP
0000304c: DUP2
0000304d: ADD
0000304e: SWAP1
0000304f: PUSH2 0x3058
00003052: SWAP2
00003053: SWAP1
00003054: PUSH2 0x3ad9
00003057: JUMP
00003058: JUMPDEST
00003059: SWAP1
0000305a: POP
0000305b: DUP1
0000305c: PUSH1 0x40
0000305e: ADD
0000305f: MLOAD
00003060: DUP5
00003061: SUB
00003062: DUP2
00003063: PUSH1 0x20
00003065: ADD
00003066: MLOAD
00003067: MUL
00003068: DUP2
00003069: PUSH1 0x00
0000306b: ADD
0000306c: DUP2
0000306d: DUP2
0000306e: MLOAD
0000306f: SUB
00003070: SWAP2
00003071: POP
00003072: SWAP1
00003073: PUSH1 0x0f
00003075: SIGNEXTEND
00003076: SWAP1
00003077: DUP2
00003078: PUSH1 0x0f
0000307a: SIGNEXTEND
0000307b: DUP2
0000307c: MSTORE
0000307d: POP
0000307e: POP
0000307f: PUSH1 0x00
00003081: DUP2
00003082: PUSH1 0x00
00003084: ADD
00003085: MLOAD
00003086: PUSH1 0x0f
00003088: SIGNEXTEND
00003089: SLT
0000308a: ISZERO
0000308b: PUSH2 0x30a2
0000308e: JUMPI
0000308f: PUSH1 0x00
00003091: DUP2
00003092: PUSH1 0x00
00003094: ADD
00003095: SWAP1
00003096: PUSH1 0x0f
00003098: SIGNEXTEND
00003099: SWAP1
0000309a: DUP2
0000309b: PUSH1 0x0f
0000309d: SIGNEXTEND
0000309e: DUP2
0000309f: MSTORE
000030a0: POP
000030a1: POP
000030a2: JUMPDEST
000030a3: DUP1
000030a4: PUSH1 0x00
000030a6: ADD
000030a7: MLOAD
000030a8: PUSH1 0x0f
000030aa: SIGNEXTEND
000030ab: SWAP3
000030ac: POP
000030ad: POP
000030ae: POP
000030af: JUMPDEST
000030b0: SWAP3
000030b1: SWAP2
000030b2: POP
000030b3: POP
000030b4: JUMP
000030b5: JUMPDEST
000030b6: PUSH2 0x3136
000030b9: DUP4
000030ba: PUSH4 0xa9059cbb
000030bf: PUSH1 0xe0
000030c1: SHL
000030c2: DUP5
000030c3: DUP5
000030c4: PUSH1 0x40
000030c6: MLOAD
000030c7: PUSH1 0x24
000030c9: ADD
000030ca: PUSH2 0x30d4
000030cd: SWAP3
000030ce: SWAP2
000030cf: SWAP1
000030d0: PUSH2 0x4014
000030d3: JUMP
000030d4: JUMPDEST
000030d5: PUSH1 0x40
000030d7: MLOAD
000030d8: PUSH1 0x20
000030da: DUP2
000030db: DUP4
000030dc: SUB
000030dd: SUB
000030de: DUP2
000030df: MSTORE
000030e0: SWAP1
000030e1: PUSH1 0x40
000030e3: MSTORE
000030e4: SWAP1
000030e5: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003102: NOT
00003103: AND
00003104: PUSH1 0x20
00003106: DUP3
00003107: ADD
00003108: DUP1
00003109: MLOAD
0000310a: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003127: DUP4
00003128: DUP2
00003129: DUP4
0000312a: AND
0000312b: OR
0000312c: DUP4
0000312d: MSTORE
0000312e: POP
0000312f: POP
00003130: POP
00003131: POP
00003132: PUSH2 0x344d
00003135: JUMP
00003136: JUMPDEST
00003137: POP
00003138: POP
00003139: POP
0000313a: JUMP
0000313b: JUMPDEST
0000313c: DUP2
0000313d: PUSH2 0x314a
00003140: JUMPI
00003141: PUSH2 0x3149
00003144: DUP2
00003145: PUSH2 0x3514
00003148: JUMP
00003149: JUMPDEST
0000314a: JUMPDEST
0000314b: POP
0000314c: POP
0000314d: JUMP
0000314e: JUMPDEST
0000314f: PUSH1 0x00
00003151: DUP1
00003152: DUP4
00003153: SWAP1
00003154: POP
00003155: PUSH1 0x00
00003157: DUP4
00003158: SWAP1
00003159: POP
0000315a: PUSH1 0x00
0000315c: JUMPDEST
0000315d: PUSH1 0x80
0000315f: DUP2
00003160: LT
00003161: ISZERO
00003162: PUSH2 0x3260
00003165: JUMPI
00003166: DUP2
00003167: DUP4
00003168: LT
00003169: PUSH2 0x3171
0000316c: JUMPI
0000316d: PUSH2 0x3260
00003170: JUMP
00003171: JUMPDEST
00003172: PUSH1 0x00
00003174: PUSH1 0x02
00003176: DUP1
00003177: DUP5
00003178: DUP7
00003179: ADD
0000317a: ADD
0000317b: DUP2
0000317c: PUSH2 0x3181
0000317f: JUMPI
00003180: INVALID
00003181: JUMPDEST
00003182: DIV
00003183: SWAP1
00003184: POP
00003185: PUSH2 0x318c
00003188: PUSH2 0x35c8
0000318b: JUMP
0000318c: JUMPDEST
0000318d: PUSH1 0x01
0000318f: DUP1
00003190: SLOAD
00003191: SWAP1
00003192: PUSH2 0x0100
00003195: EXP
00003196: SWAP1
00003197: DIV
00003198: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000031ad: AND
000031ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000031c3: AND
000031c4: PUSH4 0x28d09d47
000031c9: DUP12
000031ca: DUP5
000031cb: PUSH1 0x40
000031cd: MLOAD
000031ce: DUP4
000031cf: PUSH4 0xffffffff
000031d4: AND
000031d5: PUSH1 0xe0
000031d7: SHL
000031d8: DUP2
000031d9: MSTORE
000031da: PUSH1 0x04
000031dc: ADD
000031dd: PUSH2 0x31e7
000031e0: SWAP3
000031e1: SWAP2
000031e2: SWAP1
000031e3: PUSH2 0x4014
000031e6: JUMP
000031e7: JUMPDEST
000031e8: PUSH1 0x80
000031ea: PUSH1 0x40
000031ec: MLOAD
000031ed: DUP1
000031ee: DUP4
000031ef: SUB
000031f0: DUP2
000031f1: DUP7
000031f2: DUP1
000031f3: EXTCODESIZE
000031f4: ISZERO
000031f5: DUP1
000031f6: ISZERO
000031f7: PUSH2 0x31ff
000031fa: JUMPI
000031fb: PUSH1 0x00
000031fd: DUP1
000031fe: REVERT
000031ff: JUMPDEST
00003200: POP
00003201: GAS
00003202: STATICCALL
00003203: ISZERO
00003204: DUP1
00003205: ISZERO
00003206: PUSH2 0x3213
00003209: JUMPI
0000320a: RETURNDATASIZE
0000320b: PUSH1 0x00
0000320d: DUP1
0000320e: RETURNDATACOPY
0000320f: RETURNDATASIZE
00003210: PUSH1 0x00
00003212: REVERT
00003213: JUMPDEST
00003214: POP
00003215: POP
00003216: POP
00003217: POP
00003218: PUSH1 0x40
0000321a: MLOAD
0000321b: RETURNDATASIZE
0000321c: PUSH1 0x1f
0000321e: NOT
0000321f: PUSH1 0x1f
00003221: DUP3
00003222: ADD
00003223: AND
00003224: DUP3
00003225: ADD
00003226: DUP1
00003227: PUSH1 0x40
00003229: MSTORE
0000322a: POP
0000322b: DUP2
0000322c: ADD
0000322d: SWAP1
0000322e: PUSH2 0x3237
00003231: SWAP2
00003232: SWAP1
00003233: PUSH2 0x3ad9
00003236: JUMP
00003237: JUMPDEST
00003238: SWAP1
00003239: POP
0000323a: DUP9
0000323b: DUP2
0000323c: PUSH1 0x40
0000323e: ADD
0000323f: MLOAD
00003240: GT
00003241: PUSH2 0x324c
00003244: JUMPI
00003245: DUP2
00003246: SWAP5
00003247: POP
00003248: PUSH2 0x3253
0000324b: JUMP
0000324c: JUMPDEST
0000324d: PUSH1 0x01
0000324f: DUP3
00003250: SUB
00003251: SWAP4
00003252: POP
00003253: JUMPDEST
00003254: POP
00003255: POP
00003256: DUP1
00003257: PUSH1 0x01
00003259: ADD
0000325a: SWAP1
0000325b: POP
0000325c: PUSH2 0x315c
0000325f: JUMP
00003260: JUMPDEST
00003261: POP
00003262: DUP2
00003263: SWAP3
00003264: POP
00003265: POP
00003266: POP
00003267: SWAP5
00003268: SWAP4
00003269: POP
0000326a: POP
0000326b: POP
0000326c: POP
0000326d: JUMP
0000326e: JUMPDEST
0000326f: PUSH1 0x00
00003271: PUSH2 0x3281
00003274: PUSH1 0x01
00003276: PUSH3 0x093a80
0000327a: DUP5
0000327b: ADD
0000327c: SUB
0000327d: PUSH2 0x2ecc
00003280: JUMP
00003281: JUMPDEST
00003282: SWAP1
00003283: POP
00003284: SWAP2
00003285: SWAP1
00003286: POP
00003287: JUMP
00003288: JUMPDEST
00003289: PUSH1 0x00
0000328b: DUP2
0000328c: DUP4
0000328d: LT
0000328e: DUP3
0000328f: DUP5
00003290: SUB
00003291: MUL
00003292: DUP4
00003293: SUB
00003294: SWAP1
00003295: POP
00003296: SWAP3
00003297: SWAP2
00003298: POP
00003299: POP
0000329a: JUMP
0000329b: JUMPDEST
0000329c: PUSH1 0x00
0000329e: PUSH2 0x32a5
000032a1: PUSH2 0x35c8
000032a4: JUMP
000032a5: JUMPDEST
000032a6: DUP4
000032a7: SWAP1
000032a8: POP
000032a9: PUSH1 0x00
000032ab: PUSH3 0x093a80
000032af: DUP1
000032b0: DUP4
000032b1: PUSH1 0x40
000032b3: ADD
000032b4: MLOAD
000032b5: DUP2
000032b6: PUSH2 0x32bb
000032b9: JUMPI
000032ba: INVALID
000032bb: JUMPDEST
000032bc: DIV
000032bd: MUL
000032be: SWAP1
000032bf: POP
000032c0: PUSH1 0x00
000032c2: JUMPDEST
000032c3: PUSH1 0xff
000032c5: DUP2
000032c6: LT
000032c7: ISZERO
000032c8: PUSH2 0x33f1
000032cb: JUMPI
000032cc: PUSH3 0x093a80
000032d0: DUP3
000032d1: ADD
000032d2: SWAP2
000032d3: POP
000032d4: PUSH1 0x00
000032d6: DUP6
000032d7: DUP4
000032d8: GT
000032d9: ISZERO
000032da: PUSH2 0x32e5
000032dd: JUMPI
000032de: DUP6
000032df: SWAP3
000032e0: POP
000032e1: PUSH2 0x3391
000032e4: JUMP
000032e5: JUMPDEST
000032e6: PUSH1 0x01
000032e8: DUP1
000032e9: SLOAD
000032ea: SWAP1
000032eb: PUSH2 0x0100
000032ee: EXP
000032ef: SWAP1
000032f0: DIV
000032f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003306: AND
00003307: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000331c: AND
0000331d: PUSH4 0x71197484
00003322: DUP5
00003323: PUSH1 0x40
00003325: MLOAD
00003326: DUP3
00003327: PUSH4 0xffffffff
0000332c: AND
0000332d: PUSH1 0xe0
0000332f: SHL
00003330: DUP2
00003331: MSTORE
00003332: PUSH1 0x04
00003334: ADD
00003335: PUSH2 0x333e
00003338: SWAP2
00003339: SWAP1
0000333a: PUSH2 0x420e
0000333d: JUMP
0000333e: JUMPDEST
0000333f: PUSH1 0x20
00003341: PUSH1 0x40
00003343: MLOAD
00003344: DUP1
00003345: DUP4
00003346: SUB
00003347: DUP2
00003348: DUP7
00003349: DUP1
0000334a: EXTCODESIZE
0000334b: ISZERO
0000334c: DUP1
0000334d: ISZERO
0000334e: PUSH2 0x3356
00003351: JUMPI
00003352: PUSH1 0x00
00003354: DUP1
00003355: REVERT
00003356: JUMPDEST
00003357: POP
00003358: GAS
00003359: STATICCALL
0000335a: ISZERO
0000335b: DUP1
0000335c: ISZERO
0000335d: PUSH2 0x336a
00003360: JUMPI
00003361: RETURNDATASIZE
00003362: PUSH1 0x00
00003364: DUP1
00003365: RETURNDATACOPY
00003366: RETURNDATASIZE
00003367: PUSH1 0x00
00003369: REVERT
0000336a: JUMPDEST
0000336b: POP
0000336c: POP
0000336d: POP
0000336e: POP
0000336f: PUSH1 0x40
00003371: MLOAD
00003372: RETURNDATASIZE
00003373: PUSH1 0x1f
00003375: NOT
00003376: PUSH1 0x1f
00003378: DUP3
00003379: ADD
0000337a: AND
0000337b: DUP3
0000337c: ADD
0000337d: DUP1
0000337e: PUSH1 0x40
00003380: MSTORE
00003381: POP
00003382: DUP2
00003383: ADD
00003384: SWAP1
00003385: PUSH2 0x338e
00003388: SWAP2
00003389: SWAP1
0000338a: PUSH2 0x3ab0
0000338d: JUMP
0000338e: JUMPDEST
0000338f: SWAP1
00003390: POP
00003391: JUMPDEST
00003392: DUP4
00003393: PUSH1 0x40
00003395: ADD
00003396: MLOAD
00003397: DUP4
00003398: SUB
00003399: DUP5
0000339a: PUSH1 0x20
0000339c: ADD
0000339d: MLOAD
0000339e: MUL
0000339f: DUP5
000033a0: PUSH1 0x00
000033a2: ADD
000033a3: DUP2
000033a4: DUP2
000033a5: MLOAD
000033a6: SUB
000033a7: SWAP2
000033a8: POP
000033a9: SWAP1
000033aa: PUSH1 0x0f
000033ac: SIGNEXTEND
000033ad: SWAP1
000033ae: DUP2
000033af: PUSH1 0x0f
000033b1: SIGNEXTEND
000033b2: DUP2
000033b3: MSTORE
000033b4: POP
000033b5: POP
000033b6: DUP6
000033b7: DUP4
000033b8: EQ
000033b9: ISZERO
000033ba: PUSH2 0x33c3
000033bd: JUMPI
000033be: POP
000033bf: PUSH2 0x33f1
000033c2: JUMP
000033c3: JUMPDEST
000033c4: DUP1
000033c5: DUP5
000033c6: PUSH1 0x20
000033c8: ADD
000033c9: DUP2
000033ca: DUP2
000033cb: MLOAD
000033cc: ADD
000033cd: SWAP2
000033ce: POP
000033cf: SWAP1
000033d0: PUSH1 0x0f
000033d2: SIGNEXTEND
000033d3: SWAP1
000033d4: DUP2
000033d5: PUSH1 0x0f
000033d7: SIGNEXTEND
000033d8: DUP2
000033d9: MSTORE
000033da: POP
000033db: POP
000033dc: DUP3
000033dd: DUP5
000033de: PUSH1 0x40
000033e0: ADD
000033e1: DUP2
000033e2: DUP2
000033e3: MSTORE
000033e4: POP
000033e5: POP
000033e6: POP
000033e7: DUP1
000033e8: PUSH1 0x01
000033ea: ADD
000033eb: SWAP1
000033ec: POP
000033ed: PUSH2 0x32c2
000033f0: JUMP
000033f1: JUMPDEST
000033f2: POP
000033f3: PUSH1 0x00
000033f5: DUP3
000033f6: PUSH1 0x00
000033f8: ADD
000033f9: MLOAD
000033fa: PUSH1 0x0f
000033fc: SIGNEXTEND
000033fd: SLT
000033fe: ISZERO
000033ff: PUSH2 0x3416
00003402: JUMPI
00003403: PUSH1 0x00
00003405: DUP3
00003406: PUSH1 0x00
00003408: ADD
00003409: SWAP1
0000340a: PUSH1 0x0f
0000340c: SIGNEXTEND
0000340d: SWAP1
0000340e: DUP2
0000340f: PUSH1 0x0f
00003411: SIGNEXTEND
00003412: DUP2
00003413: MSTORE
00003414: POP
00003415: POP
00003416: JUMPDEST
00003417: DUP2
00003418: PUSH1 0x00
0000341a: ADD
0000341b: MLOAD
0000341c: PUSH16 0xffffffffffffffffffffffffffffffff
0000342d: AND
0000342e: SWAP3
0000342f: POP
00003430: POP
00003431: POP
00003432: SWAP3
00003433: SWAP2
00003434: POP
00003435: POP
00003436: JUMP
00003437: JUMPDEST
00003438: PUSH1 0x00
0000343a: PUSH2 0x3445
0000343d: DUP4
0000343e: DUP4
0000343f: PUSH1 0x01
00003441: PUSH2 0x3527
00003444: JUMP
00003445: JUMPDEST
00003446: SWAP1
00003447: POP
00003448: SWAP3
00003449: SWAP2
0000344a: POP
0000344b: POP
0000344c: JUMP
0000344d: JUMPDEST
0000344e: PUSH1 0x00
00003450: PUSH1 0x60
00003452: DUP4
00003453: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003468: AND
00003469: DUP4
0000346a: PUSH1 0x40
0000346c: MLOAD
0000346d: PUSH2 0x3476
00003470: SWAP2
00003471: SWAP1
00003472: PUSH2 0x3f66
00003475: JUMP
00003476: JUMPDEST
00003477: PUSH1 0x00
00003479: PUSH1 0x40
0000347b: MLOAD
0000347c: DUP1
0000347d: DUP4
0000347e: SUB
0000347f: DUP2
00003480: PUSH1 0x00
00003482: DUP7
00003483: GAS
00003484: CALL
00003485: SWAP2
00003486: POP
00003487: POP
00003488: RETURNDATASIZE
00003489: DUP1
0000348a: PUSH1 0x00
0000348c: DUP2
0000348d: EQ
0000348e: PUSH2 0x34b3
00003491: JUMPI
00003492: PUSH1 0x40
00003494: MLOAD
00003495: SWAP2
00003496: POP
00003497: PUSH1 0x1f
00003499: NOT
0000349a: PUSH1 0x3f
0000349c: RETURNDATASIZE
0000349d: ADD
0000349e: AND
0000349f: DUP3
000034a0: ADD
000034a1: PUSH1 0x40
000034a3: MSTORE
000034a4: RETURNDATASIZE
000034a5: DUP3
000034a6: MSTORE
000034a7: RETURNDATASIZE
000034a8: PUSH1 0x00
000034aa: PUSH1 0x20
000034ac: DUP5
000034ad: ADD
000034ae: RETURNDATACOPY
000034af: PUSH2 0x34b8
000034b2: JUMP
000034b3: JUMPDEST
000034b4: PUSH1 0x60
000034b6: SWAP2
000034b7: POP
000034b8: JUMPDEST
000034b9: POP
000034ba: SWAP2
000034bb: POP
000034bc: SWAP2
000034bd: POP
000034be: PUSH1 0x00
000034c0: DUP3
000034c1: EQ
000034c2: ISZERO
000034c3: PUSH2 0x34d0
000034c6: JUMPI
000034c7: RETURNDATASIZE
000034c8: PUSH1 0x00
000034ca: DUP1
000034cb: RETURNDATACOPY
000034cc: RETURNDATASIZE
000034cd: PUSH1 0x00
000034cf: REVERT
000034d0: JUMPDEST
000034d1: PUSH2 0x34fb
000034d4: PUSH1 0x00
000034d6: DUP3
000034d7: MLOAD
000034d8: EQ
000034d9: DUP1
000034da: PUSH2 0x34f3
000034dd: JUMPI
000034de: POP
000034df: DUP2
000034e0: DUP1
000034e1: PUSH1 0x20
000034e3: ADD
000034e4: SWAP1
000034e5: MLOAD
000034e6: DUP2
000034e7: ADD
000034e8: SWAP1
000034e9: PUSH2 0x34f2
000034ec: SWAP2
000034ed: SWAP1
000034ee: PUSH2 0x39d3
000034f1: JUMP
000034f2: JUMPDEST
000034f3: JUMPDEST
000034f4: PUSH2 0x01a2
000034f7: PUSH2 0x313b
000034fa: JUMP
000034fb: JUMPDEST
000034fc: POP
000034fd: POP
000034fe: POP
000034ff: POP
00003500: JUMP
00003501: JUMPDEST
00003502: PUSH1 0x00
00003504: DUP2
00003505: DUP4
00003506: GT
00003507: DUP3
00003508: DUP5
00003509: SUB
0000350a: MUL
0000350b: DUP4
0000350c: SUB
0000350d: SWAP1
0000350e: POP
0000350f: SWAP3
00003510: SWAP2
00003511: POP
00003512: POP
00003513: JUMP
00003514: JUMPDEST
00003515: PUSH2 0x3524
00003518: DUP2
00003519: PUSH3 0x42414c
0000351d: PUSH1 0xe8
0000351f: SHL
00003520: PUSH2 0x3548
00003523: JUMP
00003524: JUMPDEST
00003525: POP
00003526: JUMP
00003527: JUMPDEST
00003528: PUSH1 0x00
0000352a: PUSH2 0x3536
0000352d: DUP5
0000352e: DUP5
0000352f: GT
00003530: ISZERO
00003531: DUP4
00003532: PUSH2 0x313b
00003535: JUMP
00003536: JUMPDEST
00003537: PUSH1 0x00
00003539: DUP4
0000353a: DUP6
0000353b: SUB
0000353c: SWAP1
0000353d: POP
0000353e: DUP1
0000353f: SWAP2
00003540: POP
00003541: POP
00003542: SWAP4
00003543: SWAP3
00003544: POP
00003545: POP
00003546: POP
00003547: JUMP
00003548: JUMPDEST
00003549: PUSH1 0x00
0000354b: DUP2
0000354c: PUSH1 0xe8
0000354e: SHR
0000354f: PUSH3 0xffffff
00003553: AND
00003554: SWAP1
00003555: POP
00003556: PUSH1 0x30
00003558: PUSH1 0x0a
0000355a: DUP5
0000355b: MOD
0000355c: ADD
0000355d: PUSH1 0x0a
0000355f: DUP5
00003560: DIV
00003561: SWAP4
00003562: POP
00003563: PUSH1 0x30
00003565: PUSH1 0x0a
00003567: DUP6
00003568: MOD
00003569: ADD
0000356a: PUSH1 0x0a
0000356c: DUP6
0000356d: DIV
0000356e: SWAP5
0000356f: POP
00003570: PUSH1 0x30
00003572: PUSH1 0x0a
00003574: DUP7
00003575: MOD
00003576: ADD
00003577: DUP4
00003578: PUSH1 0x08
0000357a: SHL
0000357b: PUSH1 0x23
0000357d: ADD
0000357e: PUSH1 0x18
00003580: SHL
00003581: DUP2
00003582: PUSH1 0x10
00003584: SHL
00003585: DUP4
00003586: PUSH1 0x08
00003588: SHL
00003589: DUP6
0000358a: ADD
0000358b: ADD
0000358c: DUP2
0000358d: ADD
0000358e: PUSH1 0xc8
00003590: SHL
00003591: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000035b2: PUSH1 0x00
000035b4: MSTORE
000035b5: PUSH1 0x20
000035b7: PUSH1 0x04
000035b9: MSTORE
000035ba: PUSH1 0x07
000035bc: PUSH1 0x24
000035be: MSTORE
000035bf: DUP1
000035c0: PUSH1 0x44
000035c2: MSTORE
000035c3: PUSH1 0x64
000035c5: PUSH1 0x00
000035c7: REVERT
000035c8: JUMPDEST
000035c9: PUSH1 0x40
000035cb: MLOAD
000035cc: DUP1
000035cd: PUSH1 0x80
000035cf: ADD
000035d0: PUSH1 0x40
000035d2: MSTORE
000035d3: DUP1
000035d4: PUSH1 0x00
000035d6: PUSH1 0x0f
000035d8: SIGNEXTEND
000035d9: DUP2
000035da: MSTORE
000035db: PUSH1 0x20
000035dd: ADD
000035de: PUSH1 0x00
000035e0: PUSH1 0x0f
000035e2: SIGNEXTEND
000035e3: DUP2
000035e4: MSTORE
000035e5: PUSH1 0x20
000035e7: ADD
000035e8: PUSH1 0x00
000035ea: DUP2
000035eb: MSTORE
000035ec: PUSH1 0x20
000035ee: ADD
000035ef: PUSH1 0x00
000035f1: DUP2
000035f2: MSTORE
000035f3: POP
000035f4: SWAP1
000035f5: JUMP
000035f6: JUMPDEST
000035f7: PUSH1 0x00
000035f9: DUP2
000035fa: CALLDATALOAD
000035fb: SWAP1
000035fc: POP
000035fd: PUSH2 0x3605
00003600: DUP2
00003601: PUSH2 0x43e3
00003604: JUMP
00003605: JUMPDEST
00003606: SWAP3
00003607: SWAP2
00003608: POP
00003609: POP
0000360a: JUMP
0000360b: JUMPDEST
0000360c: PUSH1 0x00
0000360e: DUP1
0000360f: DUP4
00003610: PUSH1 0x1f
00003612: DUP5
00003613: ADD
00003614: SLT
00003615: PUSH2 0x361d
00003618: JUMPI
00003619: PUSH1 0x00
0000361b: DUP1
0000361c: REVERT
0000361d: JUMPDEST
0000361e: DUP3
0000361f: CALLDATALOAD
00003620: SWAP1
00003621: POP
00003622: PUSH8 0xffffffffffffffff
0000362b: DUP2
0000362c: GT
0000362d: ISZERO
0000362e: PUSH2 0x3636
00003631: JUMPI
00003632: PUSH1 0x00
00003634: DUP1
00003635: REVERT
00003636: JUMPDEST
00003637: PUSH1 0x20
00003639: DUP4
0000363a: ADD
0000363b: SWAP2
0000363c: POP
0000363d: DUP4
0000363e: PUSH1 0x20
00003640: DUP3
00003641: MUL
00003642: DUP4
00003643: ADD
00003644: GT
00003645: ISZERO
00003646: PUSH2 0x364e
00003649: JUMPI
0000364a: PUSH1 0x00
0000364c: DUP1
0000364d: REVERT
0000364e: JUMPDEST
0000364f: SWAP3
00003650: POP
00003651: SWAP3
00003652: SWAP1
00003653: POP
00003654: JUMP
00003655: JUMPDEST
00003656: PUSH1 0x00
00003658: DUP1
00003659: DUP4
0000365a: PUSH1 0x1f
0000365c: DUP5
0000365d: ADD
0000365e: SLT
0000365f: PUSH2 0x3667
00003662: JUMPI
00003663: PUSH1 0x00
00003665: DUP1
00003666: REVERT
00003667: JUMPDEST
00003668: DUP3
00003669: CALLDATALOAD
0000366a: SWAP1
0000366b: POP
0000366c: PUSH8 0xffffffffffffffff
00003675: DUP2
00003676: GT
00003677: ISZERO
00003678: PUSH2 0x3680
0000367b: JUMPI
0000367c: PUSH1 0x00
0000367e: DUP1
0000367f: REVERT
00003680: JUMPDEST
00003681: PUSH1 0x20
00003683: DUP4
00003684: ADD
00003685: SWAP2
00003686: POP
00003687: DUP4
00003688: PUSH1 0x20
0000368a: DUP3
0000368b: MUL
0000368c: DUP4
0000368d: ADD
0000368e: GT
0000368f: ISZERO
00003690: PUSH2 0x3698
00003693: JUMPI
00003694: PUSH1 0x00
00003696: DUP1
00003697: REVERT
00003698: JUMPDEST
00003699: SWAP3
0000369a: POP
0000369b: SWAP3
0000369c: SWAP1
0000369d: POP
0000369e: JUMP
0000369f: JUMPDEST
000036a0: PUSH1 0x00
000036a2: DUP1
000036a3: DUP4
000036a4: PUSH1 0x1f
000036a6: DUP5
000036a7: ADD
000036a8: SLT
000036a9: PUSH2 0x36b1
000036ac: JUMPI
000036ad: PUSH1 0x00
000036af: DUP1
000036b0: REVERT
000036b1: JUMPDEST
000036b2: DUP3
000036b3: CALLDATALOAD
000036b4: SWAP1
000036b5: POP
000036b6: PUSH8 0xffffffffffffffff
000036bf: DUP2
000036c0: GT
000036c1: ISZERO
000036c2: PUSH2 0x36ca
000036c5: JUMPI
000036c6: PUSH1 0x00
000036c8: DUP1
000036c9: REVERT
000036ca: JUMPDEST
000036cb: PUSH1 0x20
000036cd: DUP4
000036ce: ADD
000036cf: SWAP2
000036d0: POP
000036d1: DUP4
000036d2: PUSH1 0x20
000036d4: DUP3
000036d5: MUL
000036d6: DUP4
000036d7: ADD
000036d8: GT
000036d9: ISZERO
000036da: PUSH2 0x36e2
000036dd: JUMPI
000036de: PUSH1 0x00
000036e0: DUP1
000036e1: REVERT
000036e2: JUMPDEST
000036e3: SWAP3
000036e4: POP
000036e5: SWAP3
000036e6: SWAP1
000036e7: POP
000036e8: JUMP
000036e9: JUMPDEST
000036ea: PUSH1 0x00
000036ec: DUP2
000036ed: MLOAD
000036ee: SWAP1
000036ef: POP
000036f0: PUSH2 0x36f8
000036f3: DUP2
000036f4: PUSH2 0x43fa
000036f7: JUMP
000036f8: JUMPDEST
000036f9: SWAP3
000036fa: SWAP2
000036fb: POP
000036fc: POP
000036fd: JUMP
000036fe: JUMPDEST
000036ff: PUSH1 0x00
00003701: DUP2
00003702: CALLDATALOAD
00003703: SWAP1
00003704: POP
00003705: PUSH2 0x370d
00003708: DUP2
00003709: PUSH2 0x4411
0000370c: JUMP
0000370d: JUMPDEST
0000370e: SWAP3
0000370f: SWAP2
00003710: POP
00003711: POP
00003712: JUMP
00003713: JUMPDEST
00003714: PUSH1 0x00
00003716: DUP2
00003717: CALLDATALOAD
00003718: SWAP1
00003719: POP
0000371a: PUSH2 0x3722
0000371d: DUP2
0000371e: PUSH2 0x4428
00003721: JUMP
00003722: JUMPDEST
00003723: SWAP3
00003724: SWAP2
00003725: POP
00003726: POP
00003727: JUMP
00003728: JUMPDEST
00003729: PUSH1 0x00
0000372b: DUP2
0000372c: MLOAD
0000372d: SWAP1
0000372e: POP
0000372f: PUSH2 0x3737
00003732: DUP2
00003733: PUSH2 0x443f
00003736: JUMP
00003737: JUMPDEST
00003738: SWAP3
00003739: SWAP2
0000373a: POP
0000373b: POP
0000373c: JUMP
0000373d: JUMPDEST
0000373e: PUSH1 0x00
00003740: PUSH1 0x80
00003742: DUP3
00003743: DUP5
00003744: SUB
00003745: SLT
00003746: ISZERO
00003747: PUSH2 0x374f
0000374a: JUMPI
0000374b: PUSH1 0x00
0000374d: DUP1
0000374e: REVERT
0000374f: JUMPDEST
00003750: PUSH2 0x3759
00003753: PUSH1 0x80
00003755: PUSH2 0x4229
00003758: JUMP
00003759: JUMPDEST
0000375a: SWAP1
0000375b: POP
0000375c: PUSH1 0x00
0000375e: PUSH2 0x3769
00003761: DUP5
00003762: DUP3
00003763: DUP6
00003764: ADD
00003765: PUSH2 0x3728
00003768: JUMP
00003769: JUMPDEST
0000376a: PUSH1 0x00
0000376c: DUP4
0000376d: ADD
0000376e: MSTORE
0000376f: POP
00003770: PUSH1 0x20
00003772: PUSH2 0x377d
00003775: DUP5
00003776: DUP3
00003777: DUP6
00003778: ADD
00003779: PUSH2 0x3728
0000377c: JUMP
0000377d: JUMPDEST
0000377e: PUSH1 0x20
00003780: DUP4
00003781: ADD
00003782: MSTORE
00003783: POP
00003784: PUSH1 0x40
00003786: PUSH2 0x3791
00003789: DUP5
0000378a: DUP3
0000378b: DUP6
0000378c: ADD
0000378d: PUSH2 0x37c6
00003790: JUMP
00003791: JUMPDEST
00003792: PUSH1 0x40
00003794: DUP4
00003795: ADD
00003796: MSTORE
00003797: POP
00003798: PUSH1 0x60
0000379a: PUSH2 0x37a5
0000379d: DUP5
0000379e: DUP3
0000379f: DUP6
000037a0: ADD
000037a1: PUSH2 0x37c6
000037a4: JUMP
000037a5: JUMPDEST
000037a6: PUSH1 0x60
000037a8: DUP4
000037a9: ADD
000037aa: MSTORE
000037ab: POP
000037ac: SWAP3
000037ad: SWAP2
000037ae: POP
000037af: POP
000037b0: JUMP
000037b1: JUMPDEST
000037b2: PUSH1 0x00
000037b4: DUP2
000037b5: CALLDATALOAD
000037b6: SWAP1
000037b7: POP
000037b8: PUSH2 0x37c0
000037bb: DUP2
000037bc: PUSH2 0x4456
000037bf: JUMP
000037c0: JUMPDEST
000037c1: SWAP3
000037c2: SWAP2
000037c3: POP
000037c4: POP
000037c5: JUMP
000037c6: JUMPDEST
000037c7: PUSH1 0x00
000037c9: DUP2
000037ca: MLOAD
000037cb: SWAP1
000037cc: POP
000037cd: PUSH2 0x37d5
000037d0: DUP2
000037d1: PUSH2 0x4456
000037d4: JUMP
000037d5: JUMPDEST
000037d6: SWAP3
000037d7: SWAP2
000037d8: POP
000037d9: POP
000037da: JUMP
000037db: JUMPDEST
000037dc: PUSH1 0x00
000037de: PUSH1 0x20
000037e0: DUP3
000037e1: DUP5
000037e2: SUB
000037e3: SLT
000037e4: ISZERO
000037e5: PUSH2 0x37ed
000037e8: JUMPI
000037e9: PUSH1 0x00
000037eb: DUP1
000037ec: REVERT
000037ed: JUMPDEST
000037ee: PUSH1 0x00
000037f0: PUSH2 0x37fb
000037f3: DUP5
000037f4: DUP3
000037f5: DUP6
000037f6: ADD
000037f7: PUSH2 0x35f6
000037fa: JUMP
000037fb: JUMPDEST
000037fc: SWAP2
000037fd: POP
000037fe: POP
000037ff: SWAP3
00003800: SWAP2
00003801: POP
00003802: POP
00003803: JUMP
00003804: JUMPDEST
00003805: PUSH1 0x00
00003807: DUP1
00003808: PUSH1 0x00
0000380a: PUSH1 0x40
0000380c: DUP5
0000380d: DUP7
0000380e: SUB
0000380f: SLT
00003810: ISZERO
00003811: PUSH2 0x3819
00003814: JUMPI
00003815: PUSH1 0x00
00003817: DUP1
00003818: REVERT
00003819: JUMPDEST
0000381a: PUSH1 0x00
0000381c: PUSH2 0x3827
0000381f: DUP7
00003820: DUP3
00003821: DUP8
00003822: ADD
00003823: PUSH2 0x35f6
00003826: JUMP
00003827: JUMPDEST
00003828: SWAP4
00003829: POP
0000382a: POP
0000382b: PUSH1 0x20
0000382d: DUP5
0000382e: ADD
0000382f: CALLDATALOAD
00003830: PUSH8 0xffffffffffffffff
00003839: DUP2
0000383a: GT
0000383b: ISZERO
0000383c: PUSH2 0x3844
0000383f: JUMPI
00003840: PUSH1 0x00
00003842: DUP1
00003843: REVERT
00003844: JUMPDEST
00003845: PUSH2 0x3850
00003848: DUP7
00003849: DUP3
0000384a: DUP8
0000384b: ADD
0000384c: PUSH2 0x3655
0000384f: JUMP
00003850: JUMPDEST
00003851: SWAP3
00003852: POP
00003853: SWAP3
00003854: POP
00003855: POP
00003856: SWAP3
00003857: POP
00003858: SWAP3
00003859: POP
0000385a: SWAP3
0000385b: JUMP
0000385c: JUMPDEST
0000385d: PUSH1 0x00
0000385f: DUP1
00003860: PUSH1 0x40
00003862: DUP4
00003863: DUP6
00003864: SUB
00003865: SLT
00003866: ISZERO
00003867: PUSH2 0x386f
0000386a: JUMPI
0000386b: PUSH1 0x00
0000386d: DUP1
0000386e: REVERT
0000386f: JUMPDEST
00003870: PUSH1 0x00
00003872: PUSH2 0x387d
00003875: DUP6
00003876: DUP3
00003877: DUP7
00003878: ADD
00003879: PUSH2 0x35f6
0000387c: JUMP
0000387d: JUMPDEST
0000387e: SWAP3
0000387f: POP
00003880: POP
00003881: PUSH1 0x20
00003883: PUSH2 0x388e
00003886: DUP6
00003887: DUP3
00003888: DUP7
00003889: ADD
0000388a: PUSH2 0x36fe
0000388d: JUMP
0000388e: JUMPDEST
0000388f: SWAP2
00003890: POP
00003891: POP
00003892: SWAP3
00003893: POP
00003894: SWAP3
00003895: SWAP1
00003896: POP
00003897: JUMP
00003898: JUMPDEST
00003899: PUSH1 0x00
0000389b: DUP1
0000389c: PUSH1 0x40
0000389e: DUP4
0000389f: DUP6
000038a0: SUB
000038a1: SLT
000038a2: ISZERO
000038a3: PUSH2 0x38ab
000038a6: JUMPI
000038a7: PUSH1 0x00
000038a9: DUP1
000038aa: REVERT
000038ab: JUMPDEST
000038ac: PUSH1 0x00
000038ae: PUSH2 0x38b9
000038b1: DUP6
000038b2: DUP3
000038b3: DUP7
000038b4: ADD
000038b5: PUSH2 0x35f6
000038b8: JUMP
000038b9: JUMPDEST
000038ba: SWAP3
000038bb: POP
000038bc: POP
000038bd: PUSH1 0x20
000038bf: PUSH2 0x38ca
000038c2: DUP6
000038c3: DUP3
000038c4: DUP7
000038c5: ADD
000038c6: PUSH2 0x37b1
000038c9: JUMP
000038ca: JUMPDEST
000038cb: SWAP2
000038cc: POP
000038cd: POP
000038ce: SWAP3
000038cf: POP
000038d0: SWAP3
000038d1: SWAP1
000038d2: POP
000038d3: JUMP
000038d4: JUMPDEST
000038d5: PUSH1 0x00
000038d7: DUP1
000038d8: PUSH1 0x20
000038da: DUP4
000038db: DUP6
000038dc: SUB
000038dd: SLT
000038de: ISZERO
000038df: PUSH2 0x38e7
000038e2: JUMPI
000038e3: PUSH1 0x00
000038e5: DUP1
000038e6: REVERT
000038e7: JUMPDEST
000038e8: PUSH1 0x00
000038ea: DUP4
000038eb: ADD
000038ec: CALLDATALOAD
000038ed: PUSH8 0xffffffffffffffff
000038f6: DUP2
000038f7: GT
000038f8: ISZERO
000038f9: PUSH2 0x3901
000038fc: JUMPI
000038fd: PUSH1 0x00
000038ff: DUP1
00003900: REVERT
00003901: JUMPDEST
00003902: PUSH2 0x390d
00003905: DUP6
00003906: DUP3
00003907: DUP7
00003908: ADD
00003909: PUSH2 0x360b
0000390c: JUMP
0000390d: JUMPDEST
0000390e: SWAP3
0000390f: POP
00003910: SWAP3
00003911: POP
00003912: POP
00003913: SWAP3
00003914: POP
00003915: SWAP3
00003916: SWAP1
00003917: POP
00003918: JUMP
00003919: JUMPDEST
0000391a: PUSH1 0x00
0000391c: DUP1
0000391d: PUSH1 0x20
0000391f: DUP4
00003920: DUP6
00003921: SUB
00003922: SLT
00003923: ISZERO
00003924: PUSH2 0x392c
00003927: JUMPI
00003928: PUSH1 0x00
0000392a: DUP1
0000392b: REVERT
0000392c: JUMPDEST
0000392d: PUSH1 0x00
0000392f: DUP4
00003930: ADD
00003931: CALLDATALOAD
00003932: PUSH8 0xffffffffffffffff
0000393b: DUP2
0000393c: GT
0000393d: ISZERO
0000393e: PUSH2 0x3946
00003941: JUMPI
00003942: PUSH1 0x00
00003944: DUP1
00003945: REVERT
00003946: JUMPDEST
00003947: PUSH2 0x3952
0000394a: DUP6
0000394b: DUP3
0000394c: DUP7
0000394d: ADD
0000394e: PUSH2 0x3655
00003951: JUMP
00003952: JUMPDEST
00003953: SWAP3
00003954: POP
00003955: SWAP3
00003956: POP
00003957: POP
00003958: SWAP3
00003959: POP
0000395a: SWAP3
0000395b: SWAP1
0000395c: POP
0000395d: JUMP
0000395e: JUMPDEST
0000395f: PUSH1 0x00
00003961: DUP1
00003962: PUSH1 0x00
00003964: DUP1
00003965: PUSH1 0x40
00003967: DUP6
00003968: DUP8
00003969: SUB
0000396a: SLT
0000396b: ISZERO
0000396c: PUSH2 0x3974
0000396f: JUMPI
00003970: PUSH1 0x00
00003972: DUP1
00003973: REVERT
00003974: JUMPDEST
00003975: PUSH1 0x00
00003977: DUP6
00003978: ADD
00003979: CALLDATALOAD
0000397a: PUSH8 0xffffffffffffffff
00003983: DUP2
00003984: GT
00003985: ISZERO
00003986: PUSH2 0x398e
00003989: JUMPI
0000398a: PUSH1 0x00
0000398c: DUP1
0000398d: REVERT
0000398e: JUMPDEST
0000398f: PUSH2 0x399a
00003992: DUP8
00003993: DUP3
00003994: DUP9
00003995: ADD
00003996: PUSH2 0x3655
00003999: JUMP
0000399a: JUMPDEST
0000399b: SWAP5
0000399c: POP
0000399d: SWAP5
0000399e: POP
0000399f: POP
000039a0: PUSH1 0x20
000039a2: DUP6
000039a3: ADD
000039a4: CALLDATALOAD
000039a5: PUSH8 0xffffffffffffffff
000039ae: DUP2
000039af: GT
000039b0: ISZERO
000039b1: PUSH2 0x39b9
000039b4: JUMPI
000039b5: PUSH1 0x00
000039b7: DUP1
000039b8: REVERT
000039b9: JUMPDEST
000039ba: PUSH2 0x39c5
000039bd: DUP8
000039be: DUP3
000039bf: DUP9
000039c0: ADD
000039c1: PUSH2 0x369f
000039c4: JUMP
000039c5: JUMPDEST
000039c6: SWAP3
000039c7: POP
000039c8: SWAP3
000039c9: POP
000039ca: POP
000039cb: SWAP3
000039cc: SWAP6
000039cd: SWAP2
000039ce: SWAP5
000039cf: POP
000039d0: SWAP3
000039d1: POP
000039d2: JUMP
000039d3: JUMPDEST
000039d4: PUSH1 0x00
000039d6: PUSH1 0x20
000039d8: DUP3
000039d9: DUP5
000039da: SUB
000039db: SLT
000039dc: ISZERO
000039dd: PUSH2 0x39e5
000039e0: JUMPI
000039e1: PUSH1 0x00
000039e3: DUP1
000039e4: REVERT
000039e5: JUMPDEST
000039e6: PUSH1 0x00
000039e8: PUSH2 0x39f3
000039eb: DUP5
000039ec: DUP3
000039ed: DUP6
000039ee: ADD
000039ef: PUSH2 0x36e9
000039f2: JUMP
000039f3: JUMPDEST
000039f4: SWAP2
000039f5: POP
000039f6: POP
000039f7: SWAP3
000039f8: SWAP2
000039f9: POP
000039fa: POP
000039fb: JUMP
000039fc: JUMPDEST
000039fd: PUSH1 0x00
000039ff: PUSH1 0x20
00003a01: DUP3
00003a02: DUP5
00003a03: SUB
00003a04: SLT
00003a05: ISZERO
00003a06: PUSH2 0x3a0e
00003a09: JUMPI
00003a0a: PUSH1 0x00
00003a0c: DUP1
00003a0d: REVERT
00003a0e: JUMPDEST
00003a0f: PUSH1 0x00
00003a11: PUSH2 0x3a1c
00003a14: DUP5
00003a15: DUP3
00003a16: DUP6
00003a17: ADD
00003a18: PUSH2 0x36fe
00003a1b: JUMP
00003a1c: JUMPDEST
00003a1d: SWAP2
00003a1e: POP
00003a1f: POP
00003a20: SWAP3
00003a21: SWAP2
00003a22: POP
00003a23: POP
00003a24: JUMP
00003a25: JUMPDEST
00003a26: PUSH1 0x00
00003a28: DUP1
00003a29: PUSH1 0x40
00003a2b: DUP4
00003a2c: DUP6
00003a2d: SUB
00003a2e: SLT
00003a2f: ISZERO
00003a30: PUSH2 0x3a38
00003a33: JUMPI
00003a34: PUSH1 0x00
00003a36: DUP1
00003a37: REVERT
00003a38: JUMPDEST
00003a39: PUSH1 0x00
00003a3b: PUSH2 0x3a46
00003a3e: DUP6
00003a3f: DUP3
00003a40: DUP7
00003a41: ADD
00003a42: PUSH2 0x36fe
00003a45: JUMP
00003a46: JUMPDEST
00003a47: SWAP3
00003a48: POP
00003a49: POP
00003a4a: PUSH1 0x20
00003a4c: PUSH2 0x3a57
00003a4f: DUP6
00003a50: DUP3
00003a51: DUP7
00003a52: ADD
00003a53: PUSH2 0x37b1
00003a56: JUMP
00003a57: JUMPDEST
00003a58: SWAP2
00003a59: POP
00003a5a: POP
00003a5b: SWAP3
00003a5c: POP
00003a5d: SWAP3
00003a5e: SWAP1
00003a5f: POP
00003a60: JUMP
00003a61: JUMPDEST
00003a62: PUSH1 0x00
00003a64: DUP1
00003a65: PUSH1 0x00
00003a67: PUSH1 0x60
00003a69: DUP5
00003a6a: DUP7
00003a6b: SUB
00003a6c: SLT
00003a6d: ISZERO
00003a6e: PUSH2 0x3a76
00003a71: JUMPI
00003a72: PUSH1 0x00
00003a74: DUP1
00003a75: REVERT
00003a76: JUMPDEST
00003a77: PUSH1 0x00
00003a79: PUSH2 0x3a84
00003a7c: DUP7
00003a7d: DUP3
00003a7e: DUP8
00003a7f: ADD
00003a80: PUSH2 0x3713
00003a83: JUMP
00003a84: JUMPDEST
00003a85: SWAP4
00003a86: POP
00003a87: POP
00003a88: PUSH1 0x20
00003a8a: PUSH2 0x3a95
00003a8d: DUP7
00003a8e: DUP3
00003a8f: DUP8
00003a90: ADD
00003a91: PUSH2 0x37b1
00003a94: JUMP
00003a95: JUMPDEST
00003a96: SWAP3
00003a97: POP
00003a98: POP
00003a99: PUSH1 0x40
00003a9b: PUSH2 0x3aa6
00003a9e: DUP7
00003a9f: DUP3
00003aa0: DUP8
00003aa1: ADD
00003aa2: PUSH2 0x35f6
00003aa5: JUMP
00003aa6: JUMPDEST
00003aa7: SWAP2
00003aa8: POP
00003aa9: POP
00003aaa: SWAP3
00003aab: POP
00003aac: SWAP3
00003aad: POP
00003aae: SWAP3
00003aaf: JUMP
00003ab0: JUMPDEST
00003ab1: PUSH1 0x00
00003ab3: PUSH1 0x20
00003ab5: DUP3
00003ab6: DUP5
00003ab7: SUB
00003ab8: SLT
00003ab9: ISZERO
00003aba: PUSH2 0x3ac2
00003abd: JUMPI
00003abe: PUSH1 0x00
00003ac0: DUP1
00003ac1: REVERT
00003ac2: JUMPDEST
00003ac3: PUSH1 0x00
00003ac5: PUSH2 0x3ad0
00003ac8: DUP5
00003ac9: DUP3
00003aca: DUP6
00003acb: ADD
00003acc: PUSH2 0x3728
00003acf: JUMP
00003ad0: JUMPDEST
00003ad1: SWAP2
00003ad2: POP
00003ad3: POP
00003ad4: SWAP3
00003ad5: SWAP2
00003ad6: POP
00003ad7: POP
00003ad8: JUMP
00003ad9: JUMPDEST
00003ada: PUSH1 0x00
00003adc: PUSH1 0x80
00003ade: DUP3
00003adf: DUP5
00003ae0: SUB
00003ae1: SLT
00003ae2: ISZERO
00003ae3: PUSH2 0x3aeb
00003ae6: JUMPI
00003ae7: PUSH1 0x00
00003ae9: DUP1
00003aea: REVERT
00003aeb: JUMPDEST
00003aec: PUSH1 0x00
00003aee: PUSH2 0x3af9
00003af1: DUP5
00003af2: DUP3
00003af3: DUP6
00003af4: ADD
00003af5: PUSH2 0x373d
00003af8: JUMP
00003af9: JUMPDEST
00003afa: SWAP2
00003afb: POP
00003afc: POP
00003afd: SWAP3
00003afe: SWAP2
00003aff: POP
00003b00: POP
00003b01: JUMP
00003b02: JUMPDEST
00003b03: PUSH1 0x00
00003b05: PUSH1 0x20
00003b07: DUP3
00003b08: DUP5
00003b09: SUB
00003b0a: SLT
00003b0b: ISZERO
00003b0c: PUSH2 0x3b14
00003b0f: JUMPI
00003b10: PUSH1 0x00
00003b12: DUP1
00003b13: REVERT
00003b14: JUMPDEST
00003b15: PUSH1 0x00
00003b17: PUSH2 0x3b22
00003b1a: DUP5
00003b1b: DUP3
00003b1c: DUP6
00003b1d: ADD
00003b1e: PUSH2 0x37b1
00003b21: JUMP
00003b22: JUMPDEST
00003b23: SWAP2
00003b24: POP
00003b25: POP
00003b26: SWAP3
00003b27: SWAP2
00003b28: POP
00003b29: POP
00003b2a: JUMP
00003b2b: JUMPDEST
00003b2c: PUSH1 0x00
00003b2e: PUSH1 0x20
00003b30: DUP3
00003b31: DUP5
00003b32: SUB
00003b33: SLT
00003b34: ISZERO
00003b35: PUSH2 0x3b3d
00003b38: JUMPI
00003b39: PUSH1 0x00
00003b3b: DUP1
00003b3c: REVERT
00003b3d: JUMPDEST
00003b3e: PUSH1 0x00
00003b40: PUSH2 0x3b4b
00003b43: DUP5
00003b44: DUP3
00003b45: DUP6
00003b46: ADD
00003b47: PUSH2 0x37c6
00003b4a: JUMP
00003b4b: JUMPDEST
00003b4c: SWAP2
00003b4d: POP
00003b4e: POP
00003b4f: SWAP3
00003b50: SWAP2
00003b51: POP
00003b52: POP
00003b53: JUMP
00003b54: JUMPDEST
00003b55: PUSH1 0x00
00003b57: PUSH2 0x3b60
00003b5a: DUP4
00003b5b: DUP4
00003b5c: PUSH2 0x3b84
00003b5f: JUMP
00003b60: JUMPDEST
00003b61: PUSH1 0x20
00003b63: DUP4
00003b64: ADD
00003b65: SWAP1
00003b66: POP
00003b67: SWAP3
00003b68: SWAP2
00003b69: POP
00003b6a: POP
00003b6b: JUMP
00003b6c: JUMPDEST
00003b6d: PUSH1 0x00
00003b6f: PUSH2 0x3b78
00003b72: DUP4
00003b73: DUP4
00003b74: PUSH2 0x3f48
00003b77: JUMP
00003b78: JUMPDEST
00003b79: PUSH1 0x20
00003b7b: DUP4
00003b7c: ADD
00003b7d: SWAP1
00003b7e: POP
00003b7f: SWAP3
00003b80: SWAP2
00003b81: POP
00003b82: POP
00003b83: JUMP
00003b84: JUMPDEST
00003b85: PUSH2 0x3b8d
00003b88: DUP2
00003b89: PUSH2 0x42ef
00003b8c: JUMP
00003b8d: JUMPDEST
00003b8e: DUP3
00003b8f: MSTORE
00003b90: POP
00003b91: POP
00003b92: JUMP
00003b93: JUMPDEST
00003b94: PUSH2 0x3b9c
00003b97: DUP2
00003b98: PUSH2 0x42ef
00003b9b: JUMP
00003b9c: JUMPDEST
00003b9d: DUP3
00003b9e: MSTORE
00003b9f: POP
00003ba0: POP
00003ba1: JUMP
00003ba2: JUMPDEST
00003ba3: PUSH1 0x00
00003ba5: PUSH2 0x3bad
00003ba8: DUP3
00003ba9: PUSH2 0x4276
00003bac: JUMP
00003bad: JUMPDEST
00003bae: PUSH2 0x3bb7
00003bb1: DUP2
00003bb2: DUP6
00003bb3: PUSH2 0x42b1
00003bb6: JUMP
00003bb7: JUMPDEST
00003bb8: SWAP4
00003bb9: POP
00003bba: PUSH2 0x3bc2
00003bbd: DUP4
00003bbe: PUSH2 0x4256
00003bc1: JUMP
00003bc2: JUMPDEST
00003bc3: DUP1
00003bc4: PUSH1 0x00
00003bc6: JUMPDEST
00003bc7: DUP4
00003bc8: DUP2
00003bc9: LT
00003bca: ISZERO
00003bcb: PUSH2 0x3bf3
00003bce: JUMPI
00003bcf: DUP2
00003bd0: MLOAD
00003bd1: PUSH2 0x3bda
00003bd4: DUP9
00003bd5: DUP3
00003bd6: PUSH2 0x3b54
00003bd9: JUMP
00003bda: JUMPDEST
00003bdb: SWAP8
00003bdc: POP
00003bdd: PUSH2 0x3be5
00003be0: DUP4
00003be1: PUSH2 0x4297
00003be4: JUMP
00003be5: JUMPDEST
00003be6: SWAP3
00003be7: POP
00003be8: POP
00003be9: PUSH1 0x01
00003beb: DUP2
00003bec: ADD
00003bed: SWAP1
00003bee: POP
00003bef: PUSH2 0x3bc6
00003bf2: JUMP
00003bf3: JUMPDEST
00003bf4: POP
00003bf5: DUP6
00003bf6: SWAP4
00003bf7: POP
00003bf8: POP
00003bf9: POP
00003bfa: POP
00003bfb: SWAP3
00003bfc: SWAP2
00003bfd: POP
00003bfe: POP
00003bff: JUMP
00003c00: JUMPDEST
00003c01: PUSH1 0x00
00003c03: PUSH2 0x3c0b
00003c06: DUP3
00003c07: PUSH2 0x4281
00003c0a: JUMP
00003c0b: JUMPDEST
00003c0c: PUSH2 0x3c15
00003c0f: DUP2
00003c10: DUP6
00003c11: PUSH2 0x42c2
00003c14: JUMP
00003c15: JUMPDEST
00003c16: SWAP4
00003c17: POP
00003c18: PUSH2 0x3c20
00003c1b: DUP4
00003c1c: PUSH2 0x4266
00003c1f: JUMP
00003c20: JUMPDEST
00003c21: DUP1
00003c22: PUSH1 0x00
00003c24: JUMPDEST
00003c25: DUP4
00003c26: DUP2
00003c27: LT
00003c28: ISZERO
00003c29: PUSH2 0x3c51
00003c2c: JUMPI
00003c2d: DUP2
00003c2e: MLOAD
00003c2f: PUSH2 0x3c38
00003c32: DUP9
00003c33: DUP3
00003c34: PUSH2 0x3b6c
00003c37: JUMP
00003c38: JUMPDEST
00003c39: SWAP8
00003c3a: POP
00003c3b: PUSH2 0x3c43
00003c3e: DUP4
00003c3f: PUSH2 0x42a4
00003c42: JUMP
00003c43: JUMPDEST
00003c44: SWAP3
00003c45: POP
00003c46: POP
00003c47: PUSH1 0x01
00003c49: DUP2
00003c4a: ADD
00003c4b: SWAP1
00003c4c: POP
00003c4d: PUSH2 0x3c24
00003c50: JUMP
00003c51: JUMPDEST
00003c52: POP
00003c53: DUP6
00003c54: SWAP4
00003c55: POP
00003c56: POP
00003c57: POP
00003c58: POP
00003c59: SWAP3
00003c5a: SWAP2
00003c5b: POP
00003c5c: POP
00003c5d: JUMP
00003c5e: JUMPDEST
00003c5f: PUSH2 0x3c67
00003c62: DUP2
00003c63: PUSH2 0x4301
00003c66: JUMP
00003c67: JUMPDEST
00003c68: DUP3
00003c69: MSTORE
00003c6a: POP
00003c6b: POP
00003c6c: JUMP
00003c6d: JUMPDEST
00003c6e: PUSH1 0x00
00003c70: PUSH2 0x3c78
00003c73: DUP3
00003c74: PUSH2 0x428c
00003c77: JUMP
00003c78: JUMPDEST
00003c79: PUSH2 0x3c82
00003c7c: DUP2
00003c7d: DUP6
00003c7e: PUSH2 0x42d3
00003c81: JUMP
00003c82: JUMPDEST
00003c83: SWAP4
00003c84: POP
00003c85: PUSH2 0x3c92
00003c88: DUP2
00003c89: DUP6
00003c8a: PUSH1 0x20
00003c8c: DUP7
00003c8d: ADD
00003c8e: PUSH2 0x43b0
00003c91: JUMP
00003c92: JUMPDEST
00003c93: DUP1
00003c94: DUP5
00003c95: ADD
00003c96: SWAP2
00003c97: POP
00003c98: POP
00003c99: SWAP3
00003c9a: SWAP2
00003c9b: POP
00003c9c: POP
00003c9d: JUMP
00003c9e: JUMPDEST
00003c9f: PUSH2 0x3ca7
00003ca2: DUP2
00003ca3: PUSH2 0x4368
00003ca6: JUMP
00003ca7: JUMPDEST
00003ca8: DUP3
00003ca9: MSTORE
00003caa: POP
00003cab: POP
00003cac: JUMP
00003cad: JUMPDEST
00003cae: PUSH2 0x3cb6
00003cb1: DUP2
00003cb2: PUSH2 0x438c
00003cb5: JUMP
00003cb6: JUMPDEST
00003cb7: DUP3
00003cb8: MSTORE
00003cb9: POP
00003cba: POP
00003cbb: JUMP
00003cbc: JUMPDEST
00003cbd: PUSH1 0x00
00003cbf: PUSH2 0x3cc9
00003cc2: PUSH1 0x0d
00003cc4: DUP4
00003cc5: PUSH2 0x42de
00003cc8: JUMP
00003cc9: JUMPDEST
00003cca: SWAP2
00003ccb: POP
00003ccc: PUSH32 0x616c726561647920657869737400000000000000000000000000000000000000
00003ced: PUSH1 0x00
00003cef: DUP4
00003cf0: ADD
00003cf1: MSTORE
00003cf2: PUSH1 0x20
00003cf4: DUP3
00003cf5: ADD
00003cf6: SWAP1
00003cf7: POP
00003cf8: SWAP2
00003cf9: SWAP1
00003cfa: POP
00003cfb: JUMP
00003cfc: JUMPDEST
00003cfd: PUSH1 0x00
00003cff: PUSH2 0x3d09
00003d02: PUSH1 0x11
00003d04: DUP4
00003d05: PUSH2 0x42de
00003d08: JUMP
00003d09: JUMPDEST
00003d0a: SWAP2
00003d0b: POP
00003d0c: PUSH32 0x746f6b656e206e6f7420616c6c6f776564000000000000000000000000000000
00003d2d: PUSH1 0x00
00003d2f: DUP4
00003d30: ADD
00003d31: MSTORE
00003d32: PUSH1 0x20
00003d34: DUP3
00003d35: ADD
00003d36: SWAP1
00003d37: POP
00003d38: SWAP2
00003d39: SWAP1
00003d3a: POP
00003d3b: JUMP
00003d3c: JUMPDEST
00003d3d: PUSH1 0x00
00003d3f: PUSH2 0x3d49
00003d42: PUSH1 0x1e
00003d44: DUP4
00003d45: PUSH2 0x42de
00003d48: JUMP
00003d49: JUMPDEST
00003d4a: SWAP2
00003d4b: POP
00003d4c: PUSH32 0x4d6178696d756d20746f6b656e2062616c616e63652065786365656465640000
00003d6d: PUSH1 0x00
00003d6f: DUP4
00003d70: ADD
00003d71: MSTORE
00003d72: PUSH1 0x20
00003d74: DUP3
00003d75: ADD
00003d76: SWAP1
00003d77: POP
00003d78: SWAP2
00003d79: SWAP1
00003d7a: POP
00003d7b: JUMP
00003d7c: JUMPDEST
00003d7d: PUSH1 0x00
00003d7f: PUSH2 0x3d89
00003d82: PUSH1 0x27
00003d84: DUP4
00003d85: PUSH2 0x42de
00003d88: JUMP
00003d89: JUMPDEST
00003d8a: SWAP2
00003d8b: POP
00003d8c: PUSH32 0x52657761726420646973747269627574696f6e20686173206e6f742073746172
00003dad: PUSH1 0x00
00003daf: DUP4
00003db0: ADD
00003db1: MSTORE
00003db2: PUSH32 0x7465642079657400000000000000000000000000000000000000000000000000
00003dd3: PUSH1 0x20
00003dd5: DUP4
00003dd6: ADD
00003dd7: MSTORE
00003dd8: PUSH1 0x40
00003dda: DUP3
00003ddb: ADD
00003ddc: SWAP1
00003ddd: POP
00003dde: SWAP2
00003ddf: SWAP1
00003de0: POP
00003de1: JUMP
00003de2: JUMPDEST
00003de3: PUSH1 0x00
00003de5: PUSH2 0x3def
00003de8: PUSH1 0x09
00003dea: DUP4
00003deb: PUSH2 0x42de
00003dee: JUMP
00003def: JUMPDEST
00003df0: SWAP2
00003df1: POP
00003df2: PUSH32 0x6f6e6c79206f6e63650000000000000000000000000000000000000000000000
00003e13: PUSH1 0x00
00003e15: DUP4
00003e16: ADD
00003e17: MSTORE
00003e18: PUSH1 0x20
00003e1a: DUP3
00003e1b: ADD
00003e1c: SWAP1
00003e1d: POP
00003e1e: SWAP2
00003e1f: SWAP1
00003e20: POP
00003e21: JUMP
00003e22: JUMPDEST
00003e23: PUSH1 0x00
00003e25: PUSH2 0x3e2f
00003e28: PUSH1 0x20
00003e2a: DUP4
00003e2b: PUSH2 0x42de
00003e2e: JUMP
00003e2f: JUMPDEST
00003e30: SWAP2
00003e31: POP
00003e32: PUSH32 0x43616e6e6f74207374617274206265666f72652063757272656e74207765656b
00003e53: PUSH1 0x00
00003e55: DUP4
00003e56: ADD
00003e57: MSTORE
00003e58: PUSH1 0x20
00003e5a: DUP3
00003e5b: ADD
00003e5c: SWAP1
00003e5d: POP
00003e5e: SWAP2
00003e5f: SWAP1
00003e60: POP
00003e61: JUMP
00003e62: JUMPDEST
00003e63: PUSH1 0x00
00003e65: PUSH2 0x3e6f
00003e68: PUSH1 0x0c
00003e6a: DUP4
00003e6b: PUSH2 0x42de
00003e6e: JUMP
00003e6f: JUMPDEST
00003e70: SWAP2
00003e71: POP
00003e72: PUSH32 0x7a65726f20616464726573730000000000000000000000000000000000000000
00003e93: PUSH1 0x00
00003e95: DUP4
00003e96: ADD
00003e97: MSTORE
00003e98: PUSH1 0x20
00003e9a: DUP3
00003e9b: ADD
00003e9c: SWAP1
00003e9d: POP
00003e9e: SWAP2
00003e9f: SWAP1
00003ea0: POP
00003ea1: JUMP
00003ea2: JUMPDEST
00003ea3: PUSH1 0x00
00003ea5: PUSH2 0x3eaf
00003ea8: PUSH1 0x28
00003eaa: DUP4
00003eab: PUSH2 0x42de
00003eae: JUMP
00003eaf: JUMPDEST
00003eb0: SWAP2
00003eb1: POP
00003eb2: PUSH32 0x5a65726f20746f74616c20737570706c7920726573756c747320696e206c6f73
00003ed3: PUSH1 0x00
00003ed5: DUP4
00003ed6: ADD
00003ed7: MSTORE
00003ed8: PUSH32 0x7420746f6b656e73000000000000000000000000000000000000000000000000
00003ef9: PUSH1 0x20
00003efb: DUP4
00003efc: ADD
00003efd: MSTORE
00003efe: PUSH1 0x40
00003f00: DUP3
00003f01: ADD
00003f02: SWAP1
00003f03: POP
00003f04: SWAP2
00003f05: SWAP1
00003f06: POP
00003f07: JUMP
00003f08: JUMPDEST
00003f09: PUSH1 0x00
00003f0b: PUSH2 0x3f15
00003f0e: PUSH1 0x09
00003f10: DUP4
00003f11: PUSH2 0x42de
00003f14: JUMP
00003f15: JUMPDEST
00003f16: SWAP2
00003f17: POP
00003f18: PUSH32 0x6e6f742061646d696e0000000000000000000000000000000000000000000000
00003f39: PUSH1 0x00
00003f3b: DUP4
00003f3c: ADD
00003f3d: MSTORE
00003f3e: PUSH1 0x20
00003f40: DUP3
00003f41: ADD
00003f42: SWAP1
00003f43: POP
00003f44: SWAP2
00003f45: SWAP1
00003f46: POP
00003f47: JUMP
00003f48: JUMPDEST
00003f49: PUSH2 0x3f51
00003f4c: DUP2
00003f4d: PUSH2 0x435e
00003f50: JUMP
00003f51: JUMPDEST
00003f52: DUP3
00003f53: MSTORE
00003f54: POP
00003f55: POP
00003f56: JUMP
00003f57: JUMPDEST
00003f58: PUSH2 0x3f60
00003f5b: DUP2
00003f5c: PUSH2 0x435e
00003f5f: JUMP
00003f60: JUMPDEST
00003f61: DUP3
00003f62: MSTORE
00003f63: POP
00003f64: POP
00003f65: JUMP
00003f66: JUMPDEST
00003f67: PUSH1 0x00
00003f69: PUSH2 0x3f72
00003f6c: DUP3
00003f6d: DUP5
00003f6e: PUSH2 0x3c6d
00003f71: JUMP
00003f72: JUMPDEST
00003f73: SWAP2
00003f74: POP
00003f75: DUP2
00003f76: SWAP1
00003f77: POP
00003f78: SWAP3
00003f79: SWAP2
00003f7a: POP
00003f7b: POP
00003f7c: JUMP
00003f7d: JUMPDEST
00003f7e: PUSH1 0x00
00003f80: PUSH1 0x20
00003f82: DUP3
00003f83: ADD
00003f84: SWAP1
00003f85: POP
00003f86: PUSH2 0x3f92
00003f89: PUSH1 0x00
00003f8b: DUP4
00003f8c: ADD
00003f8d: DUP5
00003f8e: PUSH2 0x3b93
00003f91: JUMP
00003f92: JUMPDEST
00003f93: SWAP3
00003f94: SWAP2
00003f95: POP
00003f96: POP
00003f97: JUMP
00003f98: JUMPDEST
00003f99: PUSH1 0x00
00003f9b: PUSH1 0x60
00003f9d: DUP3
00003f9e: ADD
00003f9f: SWAP1
00003fa0: POP
00003fa1: PUSH2 0x3fad
00003fa4: PUSH1 0x00
00003fa6: DUP4
00003fa7: ADD
00003fa8: DUP7
00003fa9: PUSH2 0x3b93
00003fac: JUMP
00003fad: JUMPDEST
00003fae: PUSH2 0x3fba
00003fb1: PUSH1 0x20
00003fb3: DUP4
00003fb4: ADD
00003fb5: DUP6
00003fb6: PUSH2 0x3b93
00003fb9: JUMP
00003fba: JUMPDEST
00003fbb: PUSH2 0x3fc7
00003fbe: PUSH1 0x40
00003fc0: DUP4
00003fc1: ADD
00003fc2: DUP5
00003fc3: PUSH2 0x3f57
00003fc6: JUMP
00003fc7: JUMPDEST
00003fc8: SWAP5
00003fc9: SWAP4
00003fca: POP
00003fcb: POP
00003fcc: POP
00003fcd: POP
00003fce: JUMP
00003fcf: JUMPDEST
00003fd0: PUSH1 0x00
00003fd2: PUSH1 0x80
00003fd4: DUP3
00003fd5: ADD
00003fd6: SWAP1
00003fd7: POP
00003fd8: PUSH2 0x3fe4
00003fdb: PUSH1 0x00
00003fdd: DUP4
00003fde: ADD
00003fdf: DUP8
00003fe0: PUSH2 0x3b93
00003fe3: JUMP
00003fe4: JUMPDEST
00003fe5: PUSH2 0x3ff1
00003fe8: PUSH1 0x20
00003fea: DUP4
00003feb: ADD
00003fec: DUP7
00003fed: PUSH2 0x3c9e
00003ff0: JUMP
00003ff1: JUMPDEST
00003ff2: PUSH2 0x3ffe
00003ff5: PUSH1 0x40
00003ff7: DUP4
00003ff8: ADD
00003ff9: DUP6
00003ffa: PUSH2 0x3f57
00003ffd: JUMP
00003ffe: JUMPDEST
00003fff: PUSH2 0x400b
00004002: PUSH1 0x60
00004004: DUP4
00004005: ADD
00004006: DUP5
00004007: PUSH2 0x3f57
0000400a: JUMP
0000400b: JUMPDEST
0000400c: SWAP6
0000400d: SWAP5
0000400e: POP
0000400f: POP
00004010: POP
00004011: POP
00004012: POP
00004013: JUMP
00004014: JUMPDEST
00004015: PUSH1 0x00
00004017: PUSH1 0x40
00004019: DUP3
0000401a: ADD
0000401b: SWAP1
0000401c: POP
0000401d: PUSH2 0x4029
00004020: PUSH1 0x00
00004022: DUP4
00004023: ADD
00004024: DUP6
00004025: PUSH2 0x3b93
00004028: JUMP
00004029: JUMPDEST
0000402a: PUSH2 0x4036
0000402d: PUSH1 0x20
0000402f: DUP4
00004030: ADD
00004031: DUP5
00004032: PUSH2 0x3f57
00004035: JUMP
00004036: JUMPDEST
00004037: SWAP4
00004038: SWAP3
00004039: POP
0000403a: POP
0000403b: POP
0000403c: JUMP
0000403d: JUMPDEST
0000403e: PUSH1 0x00
00004040: PUSH1 0x20
00004042: DUP3
00004043: ADD
00004044: SWAP1
00004045: POP
00004046: DUP2
00004047: DUP2
00004048: SUB
00004049: PUSH1 0x00
0000404b: DUP4
0000404c: ADD
0000404d: MSTORE
0000404e: PUSH2 0x4057
00004051: DUP2
00004052: DUP5
00004053: PUSH2 0x3ba2
00004056: JUMP
00004057: JUMPDEST
00004058: SWAP1
00004059: POP
0000405a: SWAP3
0000405b: SWAP2
0000405c: POP
0000405d: POP
0000405e: JUMP
0000405f: JUMPDEST
00004060: PUSH1 0x00
00004062: PUSH1 0x20
00004064: DUP3
00004065: ADD
00004066: SWAP1
00004067: POP
00004068: DUP2
00004069: DUP2
0000406a: SUB
0000406b: PUSH1 0x00
0000406d: DUP4
0000406e: ADD
0000406f: MSTORE
00004070: PUSH2 0x4079
00004073: DUP2
00004074: DUP5
00004075: PUSH2 0x3c00
00004078: JUMP
00004079: JUMPDEST
0000407a: SWAP1
0000407b: POP
0000407c: SWAP3
0000407d: SWAP2
0000407e: POP
0000407f: POP
00004080: JUMP
00004081: JUMPDEST
00004082: PUSH1 0x00
00004084: PUSH1 0x20
00004086: DUP3
00004087: ADD
00004088: SWAP1
00004089: POP
0000408a: PUSH2 0x4096
0000408d: PUSH1 0x00
0000408f: DUP4
00004090: ADD
00004091: DUP5
00004092: PUSH2 0x3c5e
00004095: JUMP
00004096: JUMPDEST
00004097: SWAP3
00004098: SWAP2
00004099: POP
0000409a: POP
0000409b: JUMP
0000409c: JUMPDEST
0000409d: PUSH1 0x00
0000409f: PUSH1 0x60
000040a1: DUP3
000040a2: ADD
000040a3: SWAP1
000040a4: POP
000040a5: PUSH2 0x40b1
000040a8: PUSH1 0x00
000040aa: DUP4
000040ab: ADD
000040ac: DUP7
000040ad: PUSH2 0x3c9e
000040b0: JUMP
000040b1: JUMPDEST
000040b2: PUSH2 0x40be
000040b5: PUSH1 0x20
000040b7: DUP4
000040b8: ADD
000040b9: DUP6
000040ba: PUSH2 0x3f57
000040bd: JUMP
000040be: JUMPDEST
000040bf: PUSH2 0x40cb
000040c2: PUSH1 0x40
000040c4: DUP4
000040c5: ADD
000040c6: DUP5
000040c7: PUSH2 0x3f57
000040ca: JUMP
000040cb: JUMPDEST
000040cc: SWAP5
000040cd: SWAP4
000040ce: POP
000040cf: POP
000040d0: POP
000040d1: POP
000040d2: JUMP
000040d3: JUMPDEST
000040d4: PUSH1 0x00
000040d6: PUSH1 0x20
000040d8: DUP3
000040d9: ADD
000040da: SWAP1
000040db: POP
000040dc: PUSH2 0x40e8
000040df: PUSH1 0x00
000040e1: DUP4
000040e2: ADD
000040e3: DUP5
000040e4: PUSH2 0x3cad
000040e7: JUMP
000040e8: JUMPDEST
000040e9: SWAP3
000040ea: SWAP2
000040eb: POP
000040ec: POP
000040ed: JUMP
000040ee: JUMPDEST
000040ef: PUSH1 0x00
000040f1: PUSH1 0x20
000040f3: DUP3
000040f4: ADD
000040f5: SWAP1
000040f6: POP
000040f7: DUP2
000040f8: DUP2
000040f9: SUB
000040fa: PUSH1 0x00
000040fc: DUP4
000040fd: ADD
000040fe: MSTORE
000040ff: PUSH2 0x4107
00004102: DUP2
00004103: PUSH2 0x3cbc
00004106: JUMP
00004107: JUMPDEST
00004108: SWAP1
00004109: POP
0000410a: SWAP2
0000410b: SWAP1
0000410c: POP
0000410d: JUMP
0000410e: JUMPDEST
0000410f: PUSH1 0x00
00004111: PUSH1 0x20
00004113: DUP3
00004114: ADD
00004115: SWAP1
00004116: POP
00004117: DUP2
00004118: DUP2
00004119: SUB
0000411a: PUSH1 0x00
0000411c: DUP4
0000411d: ADD
0000411e: MSTORE
0000411f: PUSH2 0x4127
00004122: DUP2
00004123: PUSH2 0x3cfc
00004126: JUMP
00004127: JUMPDEST
00004128: SWAP1
00004129: POP
0000412a: SWAP2
0000412b: SWAP1
0000412c: POP
0000412d: JUMP
0000412e: JUMPDEST
0000412f: PUSH1 0x00
00004131: PUSH1 0x20
00004133: DUP3
00004134: ADD
00004135: SWAP1
00004136: POP
00004137: DUP2
00004138: DUP2
00004139: SUB
0000413a: PUSH1 0x00
0000413c: DUP4
0000413d: ADD
0000413e: MSTORE
0000413f: PUSH2 0x4147
00004142: DUP2
00004143: PUSH2 0x3d3c
00004146: JUMP
00004147: JUMPDEST
00004148: SWAP1
00004149: POP
0000414a: SWAP2
0000414b: SWAP1
0000414c: POP
0000414d: JUMP
0000414e: JUMPDEST
0000414f: PUSH1 0x00
00004151: PUSH1 0x20
00004153: DUP3
00004154: ADD
00004155: SWAP1
00004156: POP
00004157: DUP2
00004158: DUP2
00004159: SUB
0000415a: PUSH1 0x00
0000415c: DUP4
0000415d: ADD
0000415e: MSTORE
0000415f: PUSH2 0x4167
00004162: DUP2
00004163: PUSH2 0x3d7c
00004166: JUMP
00004167: JUMPDEST
00004168: SWAP1
00004169: POP
0000416a: SWAP2
0000416b: SWAP1
0000416c: POP
0000416d: JUMP
0000416e: JUMPDEST
0000416f: PUSH1 0x00
00004171: PUSH1 0x20
00004173: DUP3
00004174: ADD
00004175: SWAP1
00004176: POP
00004177: DUP2
00004178: DUP2
00004179: SUB
0000417a: PUSH1 0x00
0000417c: DUP4
0000417d: ADD
0000417e: MSTORE
0000417f: PUSH2 0x4187
00004182: DUP2
00004183: PUSH2 0x3de2
00004186: JUMP
00004187: JUMPDEST
00004188: SWAP1
00004189: POP
0000418a: SWAP2
0000418b: SWAP1
0000418c: POP
0000418d: JUMP
0000418e: JUMPDEST
0000418f: PUSH1 0x00
00004191: PUSH1 0x20
00004193: DUP3
00004194: ADD
00004195: SWAP1
00004196: POP
00004197: DUP2
00004198: DUP2
00004199: SUB
0000419a: PUSH1 0x00
0000419c: DUP4
0000419d: ADD
0000419e: MSTORE
0000419f: PUSH2 0x41a7
000041a2: DUP2
000041a3: PUSH2 0x3e22
000041a6: JUMP
000041a7: JUMPDEST
000041a8: SWAP1
000041a9: POP
000041aa: SWAP2
000041ab: SWAP1
000041ac: POP
000041ad: JUMP
000041ae: JUMPDEST
000041af: PUSH1 0x00
000041b1: PUSH1 0x20
000041b3: DUP3
000041b4: ADD
000041b5: SWAP1
000041b6: POP
000041b7: DUP2
000041b8: DUP2
000041b9: SUB
000041ba: PUSH1 0x00
000041bc: DUP4
000041bd: ADD
000041be: MSTORE
000041bf: PUSH2 0x41c7
000041c2: DUP2
000041c3: PUSH2 0x3e62
000041c6: JUMP
000041c7: JUMPDEST
000041c8: SWAP1
000041c9: POP
000041ca: SWAP2
000041cb: SWAP1
000041cc: POP
000041cd: JUMP
000041ce: JUMPDEST
000041cf: PUSH1 0x00
000041d1: PUSH1 0x20
000041d3: DUP3
000041d4: ADD
000041d5: SWAP1
000041d6: POP
000041d7: DUP2
000041d8: DUP2
000041d9: SUB
000041da: PUSH1 0x00
000041dc: DUP4
000041dd: ADD
000041de: MSTORE
000041df: PUSH2 0x41e7
000041e2: DUP2
000041e3: PUSH2 0x3ea2
000041e6: JUMP
000041e7: JUMPDEST
000041e8: SWAP1
000041e9: POP
000041ea: SWAP2
000041eb: SWAP1
000041ec: POP
000041ed: JUMP
000041ee: JUMPDEST
000041ef: PUSH1 0x00
000041f1: PUSH1 0x20
000041f3: DUP3
000041f4: ADD
000041f5: SWAP1
000041f6: POP
000041f7: DUP2
000041f8: DUP2
000041f9: SUB
000041fa: PUSH1 0x00
000041fc: DUP4
000041fd: ADD
000041fe: MSTORE
000041ff: PUSH2 0x4207
00004202: DUP2
00004203: PUSH2 0x3f08
00004206: JUMP
00004207: JUMPDEST
00004208: SWAP1
00004209: POP
0000420a: SWAP2
0000420b: SWAP1
0000420c: POP
0000420d: JUMP
0000420e: JUMPDEST
0000420f: PUSH1 0x00
00004211: PUSH1 0x20
00004213: DUP3
00004214: ADD
00004215: SWAP1
00004216: POP
00004217: PUSH2 0x4223
0000421a: PUSH1 0x00
0000421c: DUP4
0000421d: ADD
0000421e: DUP5
0000421f: PUSH2 0x3f57
00004222: JUMP
00004223: JUMPDEST
00004224: SWAP3
00004225: SWAP2
00004226: POP
00004227: POP
00004228: JUMP
00004229: JUMPDEST
0000422a: PUSH1 0x00
0000422c: PUSH1 0x40
0000422e: MLOAD
0000422f: SWAP1
00004230: POP
00004231: DUP2
00004232: DUP2
00004233: ADD
00004234: DUP2
00004235: DUP2
00004236: LT
00004237: PUSH8 0xffffffffffffffff
00004240: DUP3
00004241: GT
00004242: OR
00004243: ISZERO
00004244: PUSH2 0x424c
00004247: JUMPI
00004248: PUSH1 0x00
0000424a: DUP1
0000424b: REVERT
0000424c: JUMPDEST
0000424d: DUP1
0000424e: PUSH1 0x40
00004250: MSTORE
00004251: POP
00004252: SWAP2
00004253: SWAP1
00004254: POP
00004255: JUMP
00004256: JUMPDEST
00004257: PUSH1 0x00
00004259: DUP2
0000425a: SWAP1
0000425b: POP
0000425c: PUSH1 0x20
0000425e: DUP3
0000425f: ADD
00004260: SWAP1
00004261: POP
00004262: SWAP2
00004263: SWAP1
00004264: POP
00004265: JUMP
00004266: JUMPDEST
00004267: PUSH1 0x00
00004269: DUP2
0000426a: SWAP1
0000426b: POP
0000426c: PUSH1 0x20
0000426e: DUP3
0000426f: ADD
00004270: SWAP1
00004271: POP
00004272: SWAP2
00004273: SWAP1
00004274: POP
00004275: JUMP
00004276: JUMPDEST
00004277: PUSH1 0x00
00004279: DUP2
0000427a: MLOAD
0000427b: SWAP1
0000427c: POP
0000427d: SWAP2
0000427e: SWAP1
0000427f: POP
00004280: JUMP
00004281: JUMPDEST
00004282: PUSH1 0x00
00004284: DUP2
00004285: MLOAD
00004286: SWAP1
00004287: POP
00004288: SWAP2
00004289: SWAP1
0000428a: POP
0000428b: JUMP
0000428c: JUMPDEST
0000428d: PUSH1 0x00
0000428f: DUP2
00004290: MLOAD
00004291: SWAP1
00004292: POP
00004293: SWAP2
00004294: SWAP1
00004295: POP
00004296: JUMP
00004297: JUMPDEST
00004298: PUSH1 0x00
0000429a: PUSH1 0x20
0000429c: DUP3
0000429d: ADD
0000429e: SWAP1
0000429f: POP
000042a0: SWAP2
000042a1: SWAP1
000042a2: POP
000042a3: JUMP
000042a4: JUMPDEST
000042a5: PUSH1 0x00
000042a7: PUSH1 0x20
000042a9: DUP3
000042aa: ADD
000042ab: SWAP1
000042ac: POP
000042ad: SWAP2
000042ae: SWAP1
000042af: POP
000042b0: JUMP
000042b1: JUMPDEST
000042b2: PUSH1 0x00
000042b4: DUP3
000042b5: DUP3
000042b6: MSTORE
000042b7: PUSH1 0x20
000042b9: DUP3
000042ba: ADD
000042bb: SWAP1
000042bc: POP
000042bd: SWAP3
000042be: SWAP2
000042bf: POP
000042c0: POP
000042c1: JUMP
000042c2: JUMPDEST
000042c3: PUSH1 0x00
000042c5: DUP3
000042c6: DUP3
000042c7: MSTORE
000042c8: PUSH1 0x20
000042ca: DUP3
000042cb: ADD
000042cc: SWAP1
000042cd: POP
000042ce: SWAP3
000042cf: SWAP2
000042d0: POP
000042d1: POP
000042d2: JUMP
000042d3: JUMPDEST
000042d4: PUSH1 0x00
000042d6: DUP2
000042d7: SWAP1
000042d8: POP
000042d9: SWAP3
000042da: SWAP2
000042db: POP
000042dc: POP
000042dd: JUMP
000042de: JUMPDEST
000042df: PUSH1 0x00
000042e1: DUP3
000042e2: DUP3
000042e3: MSTORE
000042e4: PUSH1 0x20
000042e6: DUP3
000042e7: ADD
000042e8: SWAP1
000042e9: POP
000042ea: SWAP3
000042eb: SWAP2
000042ec: POP
000042ed: POP
000042ee: JUMP
000042ef: JUMPDEST
000042f0: PUSH1 0x00
000042f2: PUSH2 0x42fa
000042f5: DUP3
000042f6: PUSH2 0x433e
000042f9: JUMP
000042fa: JUMPDEST
000042fb: SWAP1
000042fc: POP
000042fd: SWAP2
000042fe: SWAP1
000042ff: POP
00004300: JUMP
00004301: JUMPDEST
00004302: PUSH1 0x00
00004304: DUP2
00004305: ISZERO
00004306: ISZERO
00004307: SWAP1
00004308: POP
00004309: SWAP2
0000430a: SWAP1
0000430b: POP
0000430c: JUMP
0000430d: JUMPDEST
0000430e: PUSH1 0x00
00004310: PUSH2 0x4318
00004313: DUP3
00004314: PUSH2 0x42ef
00004317: JUMP
00004318: JUMPDEST
00004319: SWAP1
0000431a: POP
0000431b: SWAP2
0000431c: SWAP1
0000431d: POP
0000431e: JUMP
0000431f: JUMPDEST
00004320: PUSH1 0x00
00004322: PUSH2 0x432a
00004325: DUP3
00004326: PUSH2 0x42ef
00004329: JUMP
0000432a: JUMPDEST
0000432b: SWAP1
0000432c: POP
0000432d: SWAP2
0000432e: SWAP1
0000432f: POP
00004330: JUMP
00004331: JUMPDEST
00004332: PUSH1 0x00
00004334: DUP2
00004335: PUSH1 0x0f
00004337: SIGNEXTEND
00004338: SWAP1
00004339: POP
0000433a: SWAP2
0000433b: SWAP1
0000433c: POP
0000433d: JUMP
0000433e: JUMPDEST
0000433f: PUSH1 0x00
00004341: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004356: DUP3
00004357: AND
00004358: SWAP1
00004359: POP
0000435a: SWAP2
0000435b: SWAP1
0000435c: POP
0000435d: JUMP
0000435e: JUMPDEST
0000435f: PUSH1 0x00
00004361: DUP2
00004362: SWAP1
00004363: POP
00004364: SWAP2
00004365: SWAP1
00004366: POP
00004367: JUMP
00004368: JUMPDEST
00004369: PUSH1 0x00
0000436b: PUSH2 0x4373
0000436e: DUP3
0000436f: PUSH2 0x437a
00004372: JUMP
00004373: JUMPDEST
00004374: SWAP1
00004375: POP
00004376: SWAP2
00004377: SWAP1
00004378: POP
00004379: JUMP
0000437a: JUMPDEST
0000437b: PUSH1 0x00
0000437d: PUSH2 0x4385
00004380: DUP3
00004381: PUSH2 0x433e
00004384: JUMP
00004385: JUMPDEST
00004386: SWAP1
00004387: POP
00004388: SWAP2
00004389: SWAP1
0000438a: POP
0000438b: JUMP
0000438c: JUMPDEST
0000438d: PUSH1 0x00
0000438f: PUSH2 0x4397
00004392: DUP3
00004393: PUSH2 0x439e
00004396: JUMP
00004397: JUMPDEST
00004398: SWAP1
00004399: POP
0000439a: SWAP2
0000439b: SWAP1
0000439c: POP
0000439d: JUMP
0000439e: JUMPDEST
0000439f: PUSH1 0x00
000043a1: PUSH2 0x43a9
000043a4: DUP3
000043a5: PUSH2 0x433e
000043a8: JUMP
000043a9: JUMPDEST
000043aa: SWAP1
000043ab: POP
000043ac: SWAP2
000043ad: SWAP1
000043ae: POP
000043af: JUMP
000043b0: JUMPDEST
000043b1: PUSH1 0x00
000043b3: JUMPDEST
000043b4: DUP4
000043b5: DUP2
000043b6: LT
000043b7: ISZERO
000043b8: PUSH2 0x43ce
000043bb: JUMPI
000043bc: DUP1
000043bd: DUP3
000043be: ADD
000043bf: MLOAD
000043c0: DUP2
000043c1: DUP5
000043c2: ADD
000043c3: MSTORE
000043c4: PUSH1 0x20
000043c6: DUP2
000043c7: ADD
000043c8: SWAP1
000043c9: POP
000043ca: PUSH2 0x43b3
000043cd: JUMP
000043ce: JUMPDEST
000043cf: DUP4
000043d0: DUP2
000043d1: GT
000043d2: ISZERO
000043d3: PUSH2 0x43dd
000043d6: JUMPI
000043d7: PUSH1 0x00
000043d9: DUP5
000043da: DUP5
000043db: ADD
000043dc: MSTORE
000043dd: JUMPDEST
000043de: POP
000043df: POP
000043e0: POP
000043e1: POP
000043e2: JUMP
000043e3: JUMPDEST
000043e4: PUSH2 0x43ec
000043e7: DUP2
000043e8: PUSH2 0x42ef
000043eb: JUMP
000043ec: JUMPDEST
000043ed: DUP2
000043ee: EQ
000043ef: PUSH2 0x43f7
000043f2: JUMPI
000043f3: PUSH1 0x00
000043f5: DUP1
000043f6: REVERT
000043f7: JUMPDEST
000043f8: POP
000043f9: JUMP
000043fa: JUMPDEST
000043fb: PUSH2 0x4403
000043fe: DUP2
000043ff: PUSH2 0x4301
00004402: JUMP
00004403: JUMPDEST
00004404: DUP2
00004405: EQ
00004406: PUSH2 0x440e
00004409: JUMPI
0000440a: PUSH1 0x00
0000440c: DUP1
0000440d: REVERT
0000440e: JUMPDEST
0000440f: POP
00004410: JUMP
00004411: JUMPDEST
00004412: PUSH2 0x441a
00004415: DUP2
00004416: PUSH2 0x430d
00004419: JUMP
0000441a: JUMPDEST
0000441b: DUP2
0000441c: EQ
0000441d: PUSH2 0x4425
00004420: JUMPI
00004421: PUSH1 0x00
00004423: DUP1
00004424: REVERT
00004425: JUMPDEST
00004426: POP
00004427: JUMP
00004428: JUMPDEST
00004429: PUSH2 0x4431
0000442c: DUP2
0000442d: PUSH2 0x431f
00004430: JUMP
00004431: JUMPDEST
00004432: DUP2
00004433: EQ
00004434: PUSH2 0x443c
00004437: JUMPI
00004438: PUSH1 0x00
0000443a: DUP1
0000443b: REVERT
0000443c: JUMPDEST
0000443d: POP
0000443e: JUMP
0000443f: JUMPDEST
00004440: PUSH2 0x4448
00004443: DUP2
00004444: PUSH2 0x4331
00004447: JUMP
00004448: JUMPDEST
00004449: DUP2
0000444a: EQ
0000444b: PUSH2 0x4453
0000444e: JUMPI
0000444f: PUSH1 0x00
00004451: DUP1
00004452: REVERT
00004453: JUMPDEST
00004454: POP
00004455: JUMP
00004456: JUMPDEST
00004457: PUSH2 0x445f
0000445a: DUP2
0000445b: PUSH2 0x435e
0000445e: JUMP
0000445f: JUMPDEST
00004460: DUP2
00004461: EQ
00004462: PUSH2 0x446a
00004465: JUMPI
00004466: PUSH1 0x00
00004468: DUP1
00004469: REVERT
0000446a: JUMPDEST
0000446b: POP
0000446c: JUMP
0000446d: INVALID
0000446e: LOG2
0000446f: PUSH5 0x6970667358
00004475: UNKNOWN(0x22)
00004476: SLT
00004477: KECCAK256
00004478: UNKNOWN(0xCD)
00004479: SWAP14
0000447a: UNKNOWN(0xEF)
0000447b: UNKNOWN(0x25)
0000447c: DELEGATECALL
0000447d: UNKNOWN(0x0D)
0000447e: UNKNOWN(0xE9)
0000447f: PUSH24 0x2f4adf4759612469e2b39dccf7a498e7403c74d34a294dc0
00004498: PUSH5 0x736f6c6343
0000449e: STOP
0000449f: SMOD
000044a0: ADD
000044a1: STOP
000044a2: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0xbac5638ec1ae267bf858586a5aa1f8fe81f986db78e624c351253b53f018b89c
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0xbac5638ec1ae267bf858586a5aa1f8fe81f986db78e624c351253b53f018b89c",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xed3a0887",
            "selector": "0xed3a0887",
            "calldata_variants": [
                "0xed3a0887",
                "0xed3a08870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf213bd8c",
            "selector": "0xf213bd8c",
            "calldata_variants": [
                "0xf213bd8c",
                "0xf213bd8c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf851a440",
            "selector": "0xf851a440",
            "calldata_variants": [
                "0xf851a440",
                "0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfdac51a1",
            "selector": "0xfdac51a1",
            "calldata_variants": [
                "0xfdac51a1",
                "0xfdac51a10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd07b705f",
            "selector": "0xd07b705f",
            "calldata_variants": [
                "0xd07b705f",
                "0xd07b705f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd3dc4ca1",
            "selector": "0xd3dc4ca1",
            "calldata_variants": [
                "0xd3dc4ca1",
                "0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde681faf",
            "selector": "0xde681faf",
            "calldata_variants": [
                "0xde681faf",
                "0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xece7514d",
            "selector": "0xece7514d",
            "calldata_variants": [
                "0xece7514d",
                "0xece7514d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 17532,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
high access_control codex Unprotected initialize allows admin/votingEscrow takeover 85 no
view
evidence_json
{
    "evidence": "initialize is external and only checks isInitialized; there is no access control gate before setting admin and _votingEscrow.",
    "locations": [
        "contracts/contracts/RewardDistributor.sol:103"
    ],
    "recommendation": "Restrict initialize to a trusted deployer/factory (e.g., onlyAdmin/onlyFactory), or move initialization into a constructor for non-proxy deployments. If used behind a proxy, use an initializer pattern that disables further initializers on the implementation contract.",
    "exploit_scenario": "If the contract is deployed without calling initialize in the same transaction, any address can call initialize first, set themselves as admin and point votingEscrow to a malicious contract, then use admin-only functions (e.g., clawbackUnsafe) or break reward accounting."
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x4a3d72ac55f9d4b9a99be1aa49722652ac3fea1bf604db0f4836f04234531f83
call_targets: 0x8549ba7f483afb13b8321830d6f07f30f0a2f1de
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x4a3d72ac55f9d4b9a99be1aa49722652ac3fea1bf604db0f4836f04234531f83",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x8549ba7f483afb13b8321830d6f07f30f0a2f1de"
    ],
    "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": "0xed3a0887",
            "selector": "0xed3a0887",
            "calldata_variants": [
                "0xed3a0887",
                "0xed3a08870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf213bd8c",
            "selector": "0xf213bd8c",
            "calldata_variants": [
                "0xf213bd8c",
                "0xf213bd8c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf851a440",
            "selector": "0xf851a440",
            "calldata_variants": [
                "0xf851a440",
                "0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfdac51a1",
            "selector": "0xfdac51a1",
            "calldata_variants": [
                "0xfdac51a1",
                "0xfdac51a10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd07b705f",
            "selector": "0xd07b705f",
            "calldata_variants": [
                "0xd07b705f",
                "0xd07b705f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd3dc4ca1",
            "selector": "0xd3dc4ca1",
            "calldata_variants": [
                "0xd3dc4ca1",
                "0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde681faf",
            "selector": "0xde681faf",
            "calldata_variants": [
                "0xde681faf",
                "0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xece7514d",
            "selector": "0xece7514d",
            "calldata_variants": [
                "0xece7514d",
                "0xece7514d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 10988,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 13444,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x4a3d72ac55f9d4b9a99be1aa49722652ac3fea1bf604db0f4836f04234531f83
call_targets: 0x8549ba7f483afb13b8321830d6f07f30f0a2f1de
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x4a3d72ac55f9d4b9a99be1aa49722652ac3fea1bf604db0f4836f04234531f83",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x8549ba7f483afb13b8321830d6f07f30f0a2f1de"
    ],
    "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": "0xed3a0887",
            "selector": "0xed3a0887",
            "calldata_variants": [
                "0xed3a0887",
                "0xed3a08870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf213bd8c",
            "selector": "0xf213bd8c",
            "calldata_variants": [
                "0xf213bd8c",
                "0xf213bd8c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf851a440",
            "selector": "0xf851a440",
            "calldata_variants": [
                "0xf851a440",
                "0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfdac51a1",
            "selector": "0xfdac51a1",
            "calldata_variants": [
                "0xfdac51a1",
                "0xfdac51a10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd07b705f",
            "selector": "0xd07b705f",
            "calldata_variants": [
                "0xd07b705f",
                "0xd07b705f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd3dc4ca1",
            "selector": "0xd3dc4ca1",
            "calldata_variants": [
                "0xd3dc4ca1",
                "0xd3dc4ca10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xde681faf",
            "selector": "0xde681faf",
            "calldata_variants": [
                "0xde681faf",
                "0xde681faf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xece7514d",
            "selector": "0xece7514d",
            "calldata_variants": [
                "0xece7514d",
                "0xece7514d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 10988,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 13444,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
medium math codex Claiming can revert when weekly total supply is zero 75 no
view
evidence_json
{
    "evidence": "_claimToken computes (tokensPerWeek * userBalance) / _veSupplyCache[week] without a zero check.",
    "locations": [
        "contracts/contracts/RewardDistributor.sol:417"
    ],
    "recommendation": "Handle zero supply weeks explicitly (e.g., skip distribution when _veSupplyCache[week] == 0 or store a sentinel), or prevent checkpointing/distributing rewards into weeks with zero total supply.",
    "exploit_scenario": "If total ve supply at a weekly checkpoint is 0 (e.g., all locks expired), _veSupplyCache[week] becomes 0. Later claimToken/claimTokens will divide by this value and revert, blocking all claims that need to pass through that week and leaving tokens stuck."
}
low math codex Token distribution truncates after >20 weeks of inactivity 65 no
view
evidence_json
{
    "evidence": "_checkpointToken sets tokenState.timeCursor = block.timestamp before looping for at most 20 iterations with no continuation logic.",
    "locations": [
        "contracts/contracts/RewardDistributor.sol:480",
        "contracts/contracts/RewardDistributor.sol:501"
    ],
    "recommendation": "If the loop hits its iteration cap, leave timeCursor at the last processed week so subsequent calls continue distribution, or allow batched catch-up across multiple calls without marking the token fully up-to-date.",
    "exploit_scenario": "If a token hasn\u2019t been checkpointed for more than 20 weeks, _checkpointToken only iterates 20 weeks but sets tokenState.timeCursor to block.timestamp. The remaining undistributed portion is never allocated to any week and becomes permanently unclaimable."
}
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": 20
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 21
}