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

Analysis Run

ff932ff9-2ce9-490b-9514-dd6f80ed85c1

complete
Chain ID
1
Address
Block Number
Created
Wed, Dec 31, 2025 6:27 PM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30886 report.consolidate complete 1 / 1 3 months ago
94327 artifact.fetch complete 1 / 3 1 week ago
94328 tool.cast_disasm complete 1 / 3 1 week ago
94329 analysis.bundle complete 1 / 3 1 week ago
94330 capability.graph complete 1 / 3 1 week ago
94331 detector.run complete 1 / 3 1 week ago
94332 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
2
No findings?
no
Summary
Found 2 profit paths: an unauthenticated V2 initializer lets attackers reset the reentrancy guard and inflate rewards, and a still-initializable deployment allows owner takeover and token drain.
View stderr
[codex:1482466] OpenAI Codex v0.77.0 (research preview)
[codex:1482466] --------
[codex:1482466] workdir: /tmp/codex-multi-9yxva5ju
[codex:1482466] model: gpt-5.2-codex
[codex:1482466] provider: openai
[codex:1482466] approval: never
[codex:1482466] sandbox: read-only
[codex:1482466] reasoning effort: xhigh
[codex:1482466] reasoning summaries: auto
[codex:1482466] session id: 019b75a3-d72d-7cb0-a882-acb32e42c6d7
[codex:1482466] --------
[codex:1482466] user
[codex:1482466] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1482466] 
[codex:1482466] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1482466] 
[codex:1482466] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1482466] - Gas inefficiency, code quality, naming, or best practices
[codex:1482466] - Theoretical vulnerabilities without a clear extraction path
[codex:1482466] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1482466] - Front-running unless it enables theft beyond MEV
[codex:1482466] - DoS, griefing, or issues that don't result in attacker profit
[codex:1482466] - Missing events, view function issues, or informational findings
[codex:1482466] 
[codex:1482466] HIGH-VALUE PATTERNS TO HUNT:
[codex:1482466] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1482466] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1482466] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1482466] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1482466] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1482466] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1482466] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1482466] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1482466] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1482466] 
[codex:1482466] For each finding, you MUST provide:
[codex:1482466] 1. Exact file and line numbers of vulnerable code
[codex:1482466] 2. Step-by-step exploit transaction sequence
[codex:1482466] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1482466] 
[codex:1482466] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1482466] 
[codex:1482466] Output MUST be valid JSON matching the provided schema.
[codex:1482466] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1482466] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1482466] mcp startup: no servers
[codex:1482466] 
[codex:1482466] thinking
[codex:1482466] **Checking for AGENTS and AUDIT_BUNDLE files**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc ls in /tmp/codex-multi-9yxva5ju succeeded in 5ms:
[codex:1482466] AUDIT_BUNDLE.txt
[codex:1482466] codex-output-schema.json
[codex:1482466] contracts
[codex:1482466] 
[codex:1482466] thinking
[codex:1482466] **Searching for instruction files**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc "rg --files -g 'AGENTS.md'" in /tmp/codex-multi-9yxva5ju exited 1 in 8ms:
[codex:1482466] 
[codex:1482466] 
[codex:1482466] thinking
[codex:1482466] **Checking for AGENTS and reading AUDIT_BUNDLE.txt**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-9yxva5ju succeeded in 6ms:
[codex:1482466] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1482466] 
[codex:1482466] ================================================================================
[codex:1482466] FILE: contracts/Contract.sol
[codex:1482466] ================================================================================
[codex:1482466] /**
[codex:1482466]  *Submitted for verification at basescan.org on 2025-07-18
[codex:1482466] */
[codex:1482466] 
[codex:1482466] // SPDX-License-Identifier: MIT
[codex:1482466] 
[codex:1482466] pragma solidity 0.8.10;
[codex:1482466] 
[codex:1482466] // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)
[codex:1482466] 
[codex:1482466] // OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
[codex:1482466] 
[codex:1482466] // OpenZeppelin Contracts (last updated v4.6.0) (proxy/utils/Initializable.sol)
[codex:1482466] 
[codex:1482466] // OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)
[codex:1482466] 
[codex:1482466] thinking
[codex:1482466] **Planning vulnerability search**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc 'rg --files' in /tmp/codex-multi-9yxva5ju succeeded in 8ms:
[codex:1482466] codex-output-schema.json
[codex:1482466] AUDIT_BUNDLE.txt
[codex:1482466] contracts/Contract.sol
[codex:1482466] 
[codex:1482466] 
[codex:1482466] 
[codex:1482466] 
[codex:1482466] thinking
[codex:1482466] **Analyzing reentrancy and initializer risks**
[codex:1482466] 
[codex:1482466] I'm unpacking how an unprotected initializer combined with an external initializePoolV2 function resetting the reentrancy guard could enable a reentrancy attack. This might let an attacker manipulate reward credits by reentering deposit functions via malicious tokens with callbacks, potentially draining rewards if the attacker exploits pools with valuable reward tokens.
[codex:1482466] thinking
[codex:1482466] **Exploring token callbacks impact on reentrancy**
[codex:1482466] 
[codex:1482466] I’m evaluating how the requirement for the staking token to have callback hooks (like ERC777) affects the reentrancy exploit feasibility. The key is whether attackers can leverage token callbacks to bypass protections and multiply reward credits, depending heavily on token standards and pool configurations.
[codex:1482466] thinking
[codex:1482466] **Analyzing reentrancy effects on reward accounting and access control**
[codex:1482466] 
[codex:1482466] There is a detailed look into which functions allow reentrancy with state updates after external calls, finding deposit is vulnerable since it updates rewardCredit before user.amount. The discussion confirms reentrancy can multiply pending rewards via repeated deposits if the staking token supports callbacks, but withdraw and claimReward are safe due to state updates before transfers. I’m also exploring how missing access control on initializePoolV2 can reset the reentrancy guard, enabling this attack once. Additional thoughts consider potential cross-pool reward token draining via stopReward if reward tokens are commingled, but limitations and protections reduce direct profit from that vector.
[codex:1482466] thinking
[codex:1482466] **Examining token behavior impact and initializer risks**
[codex:1482466] 
[codex:1482466] The focus is on how fee-on-transfer tokens interact with pool accounting, concluding leftover tokens usually don’t accumulate to enable profit. I’m also considering risks around uninitialized proxies with external initializers that let attackers take ownership and drain tokens if not called—but this depends on deployment state. Meanwhile, initializePoolV2 remains a concrete reentrancy enabler that can be exploited when paired with tokens supporting callbacks. I’ll prepare to locate exact line numbers to clearly reference these vulnerable areas for further reporting.
[codex:1482466] exec
[codex:1482466] /bin/bash -lc "rg -n \"function initialize\\(|function initializePoolV2|modifier nonReentrant|function deposit\\(|function transferFunds\" contracts/Contract.sol" in /tmp/codex-multi-9yxva5ju succeeded in 12ms:
[codex:1482466] 223: *     function initialize() initializer public {
[codex:1482466] 2254:    modifier nonReentrant() {
[codex:1482466] 2265:    function initialize() external initializer {
[codex:1482466] 2428:    function deposit(uint256 _amount, uint256 poolId) external nonReentrant {
[codex:1482466] 2631:    function initializePoolV2() external {
[codex:1482466] 2669:    function transferFunds(IERC20Upgradeable token, uint256 amount) internal returns (uint256) {
[codex:1482466] 
[codex:1482466] thinking
[codex:1482466] **Examining code context around deposit and initializePoolV2**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '2245,2355p'" in /tmp/codex-multi-9yxva5ju succeeded in 7ms:
[codex:1482466]   2245	    error CannotStopRewards();
[codex:1482466]   2246	    error CannotClaimBeforePoolEnds();
[codex:1482466]   2247	    error InvalidStakeLimit(uint256 totalStaked, uint256 stakeLimit);
[codex:1482466]   2248	    error MaximumStakeAmountReached(uint256 stakeLimit);
[codex:1482466]   2249	
[codex:1482466]   2250	    /**
[codex:1482466]   2251	     * @notice Modifier to prevent reentrant calls to certain functions.
[codex:1482466]   2252	     * @dev Keep for new deployment and comment for contract upgrade.
[codex:1482466]   2253	     */
[codex:1482466]   2254	    modifier nonReentrant() {
[codex:1482466]   2255	        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
[codex:1482466]   2256	        _status = _ENTERED;
[codex:1482466]   2257	        _;
[codex:1482466]   2258	        _status = _NOT_ENTERED;
[codex:1482466]   2259	    }
[codex:1482466]   2260	
[codex:1482466]   2261	    /**
[codex:1482466]   2262	     * @dev Initializes the staking pool contract, setting up the Ownable module and reentrancy guard.
[codex:1482466]   2263	     * @notice This function sets the contract's owner and initial status for the reentrancy guard.
[codex:1482466]   2264	     */
[codex:1482466] 
[codex:1482466] thinking
[codex:1482466] **Identifying needed lines for functions**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '2415,2495p'" in /tmp/codex-multi-9yxva5ju succeeded in 8ms:
[codex:1482466]   2415	        uint256 rewards = ((min(block.timestamp, end) - max(start, lastRewardTimestamp)) * pool.totalReward) /
[codex:1482466]   2416	            (end - start);
[codex:1482466]   2417	
[codex:1482466]   2418	        pool.accTokenPerShare = pool.accTokenPerShare + (rewards * pool.precision) / lpSupply;
[codex:1482466]   2419	        pool.lastRewardTimestamp = block.timestamp;
[codex:1482466]   2420	    }
[codex:1482466]   2421	
[codex:1482466]   2422	    /**
[codex:1482466]   2423	     * @dev Allows a user to deposit staking tokens into a specific pool.
[codex:1482466]   2424	     * @notice Users can deposit tokens to start earning rewards, without claiming existing rewards.
[codex:1482466]   2425	     * @param _amount The amount of tokens to deposit.
[codex:1482466]   2426	     * @param poolId The ID of the pool to deposit into.
[codex:1482466]   2427	     */
[codex:1482466]   2428	    function deposit(uint256 _amount, uint256 poolId) external nonReentrant {
[codex:1482466]   2429	        if (_amount == 0) revert AmountIsZero();
[codex:1482466]   2430	        if (poolId >= poolInfo.length) {
[codex:1482466]   2431	            revert PoolDoesNotExist(poolId);
[codex:1482466]   2432	        }
[codex:1482466]   2433	        PoolInfo storage pool = poolInfo[poolId];
[codex:1482466]   2434	        if (pool.totalStaked + _amount > poolStakeLimit[poolId] && poolStakeLimit[poolId] > 0) {
[codex:1482466] 
[codex:1482466] thinking
[codex:1482466] **Preparing to implement pool initialization and fund transfer**
[codex:1482466] exec
[codex:1482466] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '2605,2685p'" in /tmp/codex-multi-9yxva5ju succeeded in 6ms:
[codex:1482466]   2605	    }
[codex:1482466]   2606	
[codex:1482466]   2607	    /**
[codex:1482466]   2608	     * @dev Allows the owner to transfer tokens out of the contract for recovery purposes.
[codex:1482466]   2609	     * @notice This emergency function is used to recover tokens mistakenly sent to the contract.
[codex:1482466]   2610	     * @param tokenAddress The address of the token to transfer out.
[codex:1482466]   2611	     * @param amount The amount of tokens to transfer.
[codex:1482466]   2612	     */
[codex:1482466]   2613	    function saveMe(address tokenAddress, uint256 amount) external onlyOwner nonReentrant {
[codex:1482466]   2614	        IERC20Upgradeable token = IERC20Upgradeable(tokenAddress);
[codex:1482466]   2615	        token.safeTransfer(address(msg.sender), amount);
[codex:1482466]   2616	    }
[codex:1482466]   2617	
[codex:1482466]   2618	    /**
[codex:1482466]   2619	     * @dev Updates the current version of the staking pool contract.
[codex:1482466]   2620	     * @notice Used to track contract upgrades and changes over time.
[codex:1482466]   2621	     * @param _currentVersion The new version number to set.
[codex:1482466]   2622	     */
[codex:1482466]   2623	    function updateVersion(uint256 _currentVersion) external onlyOwner {
[codex:1482466]   2624	        currentVersion = _currentVersion;
[codex:1482466] 
[codex:1482466] 
[codex:1482466] thinking
[codex:1482466] **Analyzing detailed reentrancy exploit scenario**
[codex:1482466] 
[codex:1482466] I’m mapping out how reentrancy can inflate rewardCredit in deposit calls due to lack of nonReentrant guard reset, especially with ERC777 staking tokens allowing callbacks. This shows an attacker could multiply their rewards and even drain tokens from other pools sharing the same reward token balance, exploiting the resettable reentrancy guard via initializePoolV2 and open addPool calls. I’m weighing whether ownership and initialization edge cases yield concrete exploits too.
[codex:1482466] thinking
[codex:1482466] **Evaluating multi-pool reward token impact**
[codex:1482466] 
[codex:1482466] I’m considering how sharing reward tokens across multiple pools could enable profit from inflated rewards, and whether to report this exploit path with its prerequisites. I’m also planning a quick search for other access control issues linked to pool staking limits or pool versioning.
[codex:1482466] exec
[codex:1482466] /bin/bash -lc 'rg -n "onlyOwner|external" contracts/Contract.sol' in /tmp/codex-multi-9yxva5ju succeeded in 7ms:
[codex:1482466] 27:     * false is an externally-owned account (EOA) and not a contract.
[codex:1482466] 32:     *  - an externally-owned account
[codex:1482466] 211: * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
[codex:1482466] 392: * `onlyOwner`, which can be applied to your functions to restrict their use to
[codex:1482466] 421:    modifier onlyOwner() {
[codex:1482466] 428:     * `onlyOwner` functions anymore. Can only be called by the current owner.
[codex:1482466] 433:    function renounceOwnership() public virtual onlyOwner {
[codex:1482466] 441:    function transferOwnership(address newOwner) public virtual onlyOwner {
[codex:1482466] 489:    function totalSupply() external view returns (uint256);
[codex:1482466] 494:    function balanceOf(address account) external view returns (uint256);
[codex:1482466] 503:    function transfer(address to, uint256 amount) external returns (bool);
[codex:1482466] 512:    function allowance(address owner, address spender) external view returns (uint256);
[codex:1482466] 528:    function approve(address spender, uint256 amount) external returns (bool);
[codex:1482466] 543:    ) external returns (bool);
[codex:1482466] 2265:    function initialize() external initializer {
[codex:1482466] 2288:    ) external nonReentrant {
[codex:1482466] 2320:    function stopReward(uint256 poolId) external nonReentrant {
[codex:1482466] 2351:    function getUserInfo(address user, uint256 poolId) external view returns (UserInfo memory) {
[codex:1482466] 2362:    function pendingReward(address _user, uint256 poolId) external view returns (uint256) {
[codex:1482466] 2428:    function deposit(uint256 _amount, uint256 poolId) external nonReentrant {
[codex:1482466] 
[codex:1482466] 
[codex:1482466] thinking
[codex:1482466] **Summarizing detailed exploit analysis**
[codex:1482466] 
[codex:1482466] I’m gathering and organizing two main findings: a reentrancy vulnerability through `initializePoolV2` that resets the reentrancy guard and enables reward inflation, and an unprotected `initialize` function risk that could allow an attacker to become owner and drain tokens via `saveMe`. I’m carefully checking relevant line numbers and crafting clear step-by-step exploit scenarios, assessing severity, and preparing a JSON report per the expected schema. The reentrancy issue looks potentially high severity as it allows reward token draining under specific conditions, while unprotected initialize is classified as critical. I’m making sure to include exact file and line references and structured recommendations.
[codex:1482466] thinking
[codex:1482466] **Compiling final vulnerability report**
[codex:1482466] 
[codex:1482466] I’m finalizing a detailed JSON report including two main findings: the critical risk of uninitialized ownership takeover allowing full token drain, and the high-severity reentrancy guard reset via `initializePoolV2` enabling reward inflation attacks. I carefully put together clear step-by-step exploit scenarios, precise line number references without ranges, severity assessments, and focused recommendations, all formatted to match the required JSON schema exactly with valid syntax and escaped strings.
[codex:1482466] codex
[codex:1482466] {"no_findings":false,"summary":"Found 2 profit paths: an unauthenticated V2 initializer lets attackers reset the reentrancy guard and inflate rewards, and a still-initializable deployment allows owner takeover and token drain.","findings":[{"severity":"high","category":"reentrancy","title":"Anyone can reset the reentrancy guard via initializePoolV2, enabling reward inflation in deposit","exploit_scenario":"1) Target a pool whose staking token is ERC777 or otherwise calls back during transferFrom, and ensure initializePoolV2 has not been called yet (initializedV2 == false). 2) Stake normally to build pending rewards. 3) Call deposit() from an attacker contract; during transferFunds() the token callback calls initializePoolV2() to set _status back to _NOT_ENTERED, then reenters deposit() repeatedly before the original call finishes. Each reentrant deposit adds the same pending rewards to rewardCredit because user.amount and user.rewardDebt are not updated yet. 4) After the pool ends, call withdraw()/claimReward() to receive the inflated rewardCredit. Profit: up to the remaining rewardToken balance held by the contract for that token (order of magnitude: the pool totalReward, or more if other pools share the same reward token).","recommendation":"Make initializePoolV2 a proper reinitializer restricted to onlyOwner and never touch _status, or remove it entirely. If it must exist, add nonReentrant/onlyOwner and redesign deposit to update user state before external transfers.","evidence":"initializePoolV2 is external and resets _status (contracts/Contract.sol:2631, contracts/Contract.sol:2637). nonReentrant relies on _status (contracts/Contract.sol:2254). deposit calls transferFunds before updating user.amount/rewardDebt (contracts/Contract.sol:2446, contracts/Contract.sol:2449). transferFunds performs external token.safeTransferFrom (contracts/Contract.sol:2669, contracts/Contract.sol:2671).","locations":["contracts/Contract.sol:2254","contracts/Contract.sol:2428","contracts/Contract.sol:2446","contracts/Contract.sol:2449","contracts/Contract.sol:2631","contracts/Contract.sol:2637","contracts/Contract.sol:2669","contracts/Contract.sol:2671"]},{"severity":"critical","category":"access_control","title":"Uninitialized deployment lets anyone become owner and drain all tokens","exploit_scenario":"1) If the proxy/contract is deployed without calling initialize(), an attacker calls initialize() to become owner (Ownable sets owner = msg.sender). 2) The attacker calls saveMe() to transfer out any ERC20 balances held by the contract (reward tokens and staked tokens). Profit: entire contract token balances (order of magnitude: total TVL in all pools).","recommendation":"Call initialize during deployment and add a constructor that calls _disableInitializers() on the implementation; alternatively restrict initialize to a trusted deployer via an initializer-only access control pattern.","evidence":"initialize() is external and assigns ownership via __Ownable_init (contracts/Contract.sol:2265). saveMe() allows the owner to transfer arbitrary ERC20 balances (contracts/Contract.sol:2613).","locations":["contracts/Contract.sol:2265","contracts/Contract.sol:2613"]}]}
[codex:1482466] tokens used
[codex:1482466] 68,293
[codex:1482466] {"no_findings":false,"summary":"Found 2 profit paths: an unauthenticated V2 initializer lets attackers reset the reentrancy guard and inflate rewards, and a still-initializable deployment allows owner takeover and token drain.","findings":[{"severity":"high","category":"reentrancy","title":"Anyone can reset the reentrancy guard via initializePoolV2, enabling reward inflation in deposit","exploit_scenario":"1) Target a pool whose staking token is ERC777 or otherwise calls back during transferFrom, and ensure initializePoolV2 has not been called yet (initializedV2 == false). 2) Stake normally to build pending rewards. 3) Call deposit() from an attacker contract; during transferFunds() the token callback calls initializePoolV2() to set _status back to _NOT_ENTERED, then reenters deposit() repeatedly before the original call finishes. Each reentrant deposit adds the same pending rewards to rewardCredit because user.amount and user.rewardDebt are not updated yet. 4) After the pool ends, call withdraw()/claimReward() to receive the inflated rewardCredit. Profit: up to the remaining rewardToken balance held by the contract for that token (order of magnitude: the pool totalReward, or more if other pools share the same reward token).","recommendation":"Make initializePoolV2 a proper reinitializer restricted to onlyOwner and never touch _status, or remove it entirely. If it must exist, add nonReentrant/onlyOwner and redesign deposit to update user state before external transfers.","evidence":"initializePoolV2 is external and resets _status (contracts/Contract.sol:2631, contracts/Contract.sol:2637). nonReentrant relies on _status (contracts/Contract.sol:2254). deposit calls transferFunds before updating user.amount/rewardDebt (contracts/Contract.sol:2446, contracts/Contract.sol:2449). transferFunds performs external token.safeTransferFrom (contracts/Contract.sol:2669, contracts/Contract.sol:2671).","locations":["contracts/Contract.sol:2254","contracts/Contract.sol:2428","contracts/Contract.sol:2446","contracts/Contract.sol:2449","contracts/Contract.sol:2631","contracts/Contract.sol:2637","contracts/Contract.sol:2669","contracts/Contract.sol:2671"]},{"severity":"critical","category":"access_control","title":"Uninitialized deployment lets anyone become owner and drain all tokens","exploit_scenario":"1) If the proxy/contract is deployed without calling initialize(), an attacker calls initialize() to become owner (Ownable sets owner = msg.sender). 2) The attacker calls saveMe() to transfer out any ERC20 balances held by the contract (reward tokens and staked tokens). Profit: entire contract token balances (order of magnitude: total TVL in all pools).","recommendation":"Call initialize during deployment and add a constructor that calls _disableInitializers() on the implementation; alternatively restrict initialize to a trusted deployer via an initializer-only access control pattern.","evidence":"initialize() is external and assigns ownership via __Ownable_init (contracts/Contract.sol:2265). saveMe() allows the owner to transfer arbitrary ERC20 balances (contracts/Contract.sol:2613).","locations":["contracts/Contract.sol:2265","contracts/Contract.sol:2613"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-31T18:27:38.107868+00:00",
        "returncode": 0
    },
    "summary": "Found 2 profit paths: an unauthenticated V2 initializer lets attackers reset the reentrancy guard and inflate rewards, and a still-initializable deployment allows owner takeover and token drain.",
    "raw_final": {
        "summary": "Found 2 profit paths: an unauthenticated V2 initializer lets attackers reset the reentrancy guard and inflate rewards, and a still-initializable deployment allows owner takeover and token drain.",
        "findings": [
            {
                "title": "Anyone can reset the reentrancy guard via initializePoolV2, enabling reward inflation in deposit",
                "category": "reentrancy",
                "evidence": "initializePoolV2 is external and resets _status (contracts/Contract.sol:2631, contracts/Contract.sol:2637). nonReentrant relies on _status (contracts/Contract.sol:2254). deposit calls transferFunds before updating user.amount/rewardDebt (contracts/Contract.sol:2446, contracts/Contract.sol:2449). transferFunds performs external token.safeTransferFrom (contracts/Contract.sol:2669, contracts/Contract.sol:2671).",
                "severity": "high",
                "locations": [
                    "contracts/Contract.sol:2254",
                    "contracts/Contract.sol:2428",
                    "contracts/Contract.sol:2446",
                    "contracts/Contract.sol:2449",
                    "contracts/Contract.sol:2631",
                    "contracts/Contract.sol:2637",
                    "contracts/Contract.sol:2669",
                    "contracts/Contract.sol:2671"
                ],
                "recommendation": "Make initializePoolV2 a proper reinitializer restricted to onlyOwner and never touch _status, or remove it entirely. If it must exist, add nonReentrant/onlyOwner and redesign deposit to update user state before external transfers.",
                "exploit_scenario": "1) Target a pool whose staking token is ERC777 or otherwise calls back during transferFrom, and ensure initializePoolV2 has not been called yet (initializedV2 == false). 2) Stake normally to build pending rewards. 3) Call deposit() from an attacker contract; during transferFunds() the token callback calls initializePoolV2() to set _status back to _NOT_ENTERED, then reenters deposit() repeatedly before the original call finishes. Each reentrant deposit adds the same pending rewards to rewardCredit because user.amount and user.rewardDebt are not updated yet. 4) After the pool ends, call withdraw()/claimReward() to receive the inflated rewardCredit. Profit: up to the remaining rewardToken balance held by the contract for that token (order of magnitude: the pool totalReward, or more if other pools share the same reward token)."
            },
            {
                "title": "Uninitialized deployment lets anyone become owner and drain all tokens",
                "category": "access_control",
                "evidence": "initialize() is external and assigns ownership via __Ownable_init (contracts/Contract.sol:2265). saveMe() allows the owner to transfer arbitrary ERC20 balances (contracts/Contract.sol:2613).",
                "severity": "critical",
                "locations": [
                    "contracts/Contract.sol:2265",
                    "contracts/Contract.sol:2613"
                ],
                "recommendation": "Call initialize during deployment and add a constructor that calls _disableInitializers() on the implementation; alternatively restrict initialize to a trusted deployer via an initializer-only access control pattern.",
                "exploit_scenario": "1) If the proxy/contract is deployed without calling initialize(), an attacker calls initialize() to become owner (Ownable sets owner = msg.sender). 2) The attacker calls saveMe() to transfer out any ERC20 balances held by the contract (reward tokens and staked tokens). Profit: entire contract token balances (order of magnitude: total TVL in all pools)."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
1
Total opcodes
8639
Flags
No heuristic flags raised.
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 0x018e
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x8129fc1c
00000026: GT
00000027: PUSH2 0x00de
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xb3944d52
00000031: GT
00000032: PUSH2 0x0097
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xf2fde38b
0000003c: GT
0000003d: PUSH2 0x0071
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xf2fde38b
00000047: EQ
00000048: PUSH2 0x0463
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xf430cf0d
00000052: EQ
00000053: PUSH2 0x047f
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xfa31a89c
0000005d: EQ
0000005e: PUSH2 0x04af
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xffd47db9
00000068: EQ
00000069: PUSH2 0x04cb
0000006c: JUMPI
0000006d: PUSH2 0x018e
00000070: JUMP
00000071: JUMPDEST
00000072: DUP1
00000073: PUSH4 0xb3944d52
00000078: EQ
00000079: PUSH2 0x041f
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0xc5f879dc
00000083: EQ
00000084: PUSH2 0x043d
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0xe2bbb158
0000008e: EQ
0000008f: PUSH2 0x0447
00000092: JUMPI
00000093: PUSH2 0x018e
00000096: JUMP
00000097: JUMPDEST
00000098: DUP1
00000099: PUSH4 0x8129fc1c
0000009e: EQ
0000009f: PUSH2 0x0371
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0x8da5cb5b
000000a9: EQ
000000aa: PUSH2 0x037b
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0x93c335ad
000000b4: EQ
000000b5: PUSH2 0x0399
000000b8: JUMPI
000000b9: DUP1
000000ba: PUSH4 0x9d888e86
000000bf: EQ
000000c0: PUSH2 0x03c9
000000c3: JUMPI
000000c4: DUP1
000000c5: PUSH4 0xa87f884e
000000ca: EQ
000000cb: PUSH2 0x03e7
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0xae169a50
000000d5: EQ
000000d6: PUSH2 0x0403
000000d9: JUMPI
000000da: PUSH2 0x018e
000000dd: JUMP
000000de: JUMPDEST
000000df: DUP1
000000e0: PUSH4 0x51eb05a6
000000e5: GT
000000e6: PUSH2 0x014b
000000e9: JUMPI
000000ea: DUP1
000000eb: PUSH4 0x6968ff72
000000f0: GT
000000f1: PUSH2 0x0125
000000f4: JUMPI
000000f5: DUP1
000000f6: PUSH4 0x6968ff72
000000fb: EQ
000000fc: PUSH2 0x02eb
000000ff: JUMPI
00000100: DUP1
00000101: PUSH4 0x715018a6
00000106: EQ
00000107: PUSH2 0x031b
0000010a: JUMPI
0000010b: DUP1
0000010c: PUSH4 0x76e8424f
00000111: EQ
00000112: PUSH2 0x0325
00000115: JUMPI
00000116: DUP1
00000117: PUSH4 0x77300089
0000011c: EQ
0000011d: PUSH2 0x0355
00000120: JUMPI
00000121: PUSH2 0x018e
00000124: JUMP
00000125: JUMPDEST
00000126: DUP1
00000127: PUSH4 0x51eb05a6
0000012c: EQ
0000012d: PUSH2 0x0295
00000130: JUMPI
00000131: DUP1
00000132: PUSH4 0x5312ea8e
00000137: EQ
00000138: PUSH2 0x02b1
0000013b: JUMPI
0000013c: DUP1
0000013d: PUSH4 0x673a2a1f
00000142: EQ
00000143: PUSH2 0x02cd
00000146: JUMPI
00000147: PUSH2 0x018e
0000014a: JUMP
0000014b: JUMPDEST
0000014c: DUP1
0000014d: PUSH4 0x097f0f11
00000152: EQ
00000153: PUSH2 0x0193
00000156: JUMPI
00000157: DUP1
00000158: PUSH4 0x1526fe27
0000015d: EQ
0000015e: PUSH2 0x01c3
00000161: JUMPI
00000162: DUP1
00000163: PUSH4 0x214ac2f6
00000168: EQ
00000169: PUSH2 0x01fc
0000016c: JUMPI
0000016d: DUP1
0000016e: PUSH4 0x21ce919d
00000173: EQ
00000174: PUSH2 0x0218
00000177: JUMPI
00000178: DUP1
00000179: PUSH4 0x3b9a4d03
0000017e: EQ
0000017f: PUSH2 0x0249
00000182: JUMPI
00000183: DUP1
00000184: PUSH4 0x441a3e70
00000189: EQ
0000018a: PUSH2 0x0279
0000018d: JUMPI
0000018e: JUMPDEST
0000018f: PUSH1 0x00
00000191: DUP1
00000192: REVERT
00000193: JUMPDEST
00000194: PUSH2 0x01ad
00000197: PUSH1 0x04
00000199: DUP1
0000019a: CALLDATASIZE
0000019b: SUB
0000019c: DUP2
0000019d: ADD
0000019e: SWAP1
0000019f: PUSH2 0x01a8
000001a2: SWAP2
000001a3: SWAP1
000001a4: PUSH2 0x3071
000001a7: JUMP
000001a8: JUMPDEST
000001a9: PUSH2 0x04e7
000001ac: JUMP
000001ad: JUMPDEST
000001ae: PUSH1 0x40
000001b0: MLOAD
000001b1: PUSH2 0x01ba
000001b4: SWAP2
000001b5: SWAP1
000001b6: PUSH2 0x30ad
000001b9: JUMP
000001ba: JUMPDEST
000001bb: PUSH1 0x40
000001bd: MLOAD
000001be: DUP1
000001bf: SWAP2
000001c0: SUB
000001c1: SWAP1
000001c2: RETURN
000001c3: JUMPDEST
000001c4: PUSH2 0x01dd
000001c7: PUSH1 0x04
000001c9: DUP1
000001ca: CALLDATASIZE
000001cb: SUB
000001cc: DUP2
000001cd: ADD
000001ce: SWAP1
000001cf: PUSH2 0x01d8
000001d2: SWAP2
000001d3: SWAP1
000001d4: PUSH2 0x3071
000001d7: JUMP
000001d8: JUMPDEST
000001d9: PUSH2 0x04ff
000001dc: JUMP
000001dd: JUMPDEST
000001de: PUSH1 0x40
000001e0: MLOAD
000001e1: PUSH2 0x01f3
000001e4: SWAP11
000001e5: SWAP10
000001e6: SWAP9
000001e7: SWAP8
000001e8: SWAP7
000001e9: SWAP6
000001ea: SWAP5
000001eb: SWAP4
000001ec: SWAP3
000001ed: SWAP2
000001ee: SWAP1
000001ef: PUSH2 0x3168
000001f2: JUMP
000001f3: JUMPDEST
000001f4: PUSH1 0x40
000001f6: MLOAD
000001f7: DUP1
000001f8: SWAP2
000001f9: SUB
000001fa: SWAP1
000001fb: RETURN
000001fc: JUMPDEST
000001fd: PUSH2 0x0216
00000200: PUSH1 0x04
00000202: DUP1
00000203: CALLDATASIZE
00000204: SUB
00000205: DUP2
00000206: ADD
00000207: SWAP1
00000208: PUSH2 0x0211
0000020b: SWAP2
0000020c: SWAP1
0000020d: PUSH2 0x3204
00000210: JUMP
00000211: JUMPDEST
00000212: PUSH2 0x05c3
00000215: JUMP
00000216: JUMPDEST
00000217: STOP
00000218: JUMPDEST
00000219: PUSH2 0x0232
0000021c: PUSH1 0x04
0000021e: DUP1
0000021f: CALLDATASIZE
00000220: SUB
00000221: DUP2
00000222: ADD
00000223: SWAP1
00000224: PUSH2 0x022d
00000227: SWAP2
00000228: SWAP1
00000229: PUSH2 0x3270
0000022c: JUMP
0000022d: JUMPDEST
0000022e: PUSH2 0x08aa
00000231: JUMP
00000232: JUMPDEST
00000233: PUSH1 0x40
00000235: MLOAD
00000236: PUSH2 0x0240
00000239: SWAP3
0000023a: SWAP2
0000023b: SWAP1
0000023c: PUSH2 0x32b0
0000023f: JUMP
00000240: JUMPDEST
00000241: PUSH1 0x40
00000243: MLOAD
00000244: DUP1
00000245: SWAP2
00000246: SUB
00000247: SWAP1
00000248: RETURN
00000249: JUMPDEST
0000024a: PUSH2 0x0263
0000024d: PUSH1 0x04
0000024f: DUP1
00000250: CALLDATASIZE
00000251: SUB
00000252: DUP2
00000253: ADD
00000254: SWAP1
00000255: PUSH2 0x025e
00000258: SWAP2
00000259: SWAP1
0000025a: PUSH2 0x3071
0000025d: JUMP
0000025e: JUMPDEST
0000025f: PUSH2 0x08db
00000262: JUMP
00000263: JUMPDEST
00000264: PUSH1 0x40
00000266: MLOAD
00000267: PUSH2 0x0270
0000026a: SWAP2
0000026b: SWAP1
0000026c: PUSH2 0x30ad
0000026f: JUMP
00000270: JUMPDEST
00000271: PUSH1 0x40
00000273: MLOAD
00000274: DUP1
00000275: SWAP2
00000276: SUB
00000277: SWAP1
00000278: RETURN
00000279: JUMPDEST
0000027a: PUSH2 0x0293
0000027d: PUSH1 0x04
0000027f: DUP1
00000280: CALLDATASIZE
00000281: SUB
00000282: DUP2
00000283: ADD
00000284: SWAP1
00000285: PUSH2 0x028e
00000288: SWAP2
00000289: SWAP1
0000028a: PUSH2 0x3204
0000028d: JUMP
0000028e: JUMPDEST
0000028f: PUSH2 0x08f3
00000292: JUMP
00000293: JUMPDEST
00000294: STOP
00000295: JUMPDEST
00000296: PUSH2 0x02af
00000299: PUSH1 0x04
0000029b: DUP1
0000029c: CALLDATASIZE
0000029d: SUB
0000029e: DUP2
0000029f: ADD
000002a0: SWAP1
000002a1: PUSH2 0x02aa
000002a4: SWAP2
000002a5: SWAP1
000002a6: PUSH2 0x3071
000002a9: JUMP
000002aa: JUMPDEST
000002ab: PUSH2 0x0dfa
000002ae: JUMP
000002af: JUMPDEST
000002b0: STOP
000002b1: JUMPDEST
000002b2: PUSH2 0x02cb
000002b5: PUSH1 0x04
000002b7: DUP1
000002b8: CALLDATASIZE
000002b9: SUB
000002ba: DUP2
000002bb: ADD
000002bc: SWAP1
000002bd: PUSH2 0x02c6
000002c0: SWAP2
000002c1: SWAP1
000002c2: PUSH2 0x3071
000002c5: JUMP
000002c6: JUMPDEST
000002c7: PUSH2 0x0f5e
000002ca: JUMP
000002cb: JUMPDEST
000002cc: STOP
000002cd: JUMPDEST
000002ce: PUSH2 0x02d5
000002d1: PUSH2 0x1225
000002d4: JUMP
000002d5: JUMPDEST
000002d6: PUSH1 0x40
000002d8: MLOAD
000002d9: PUSH2 0x02e2
000002dc: SWAP2
000002dd: SWAP1
000002de: PUSH2 0x3482
000002e1: JUMP
000002e2: JUMPDEST
000002e3: PUSH1 0x40
000002e5: MLOAD
000002e6: DUP1
000002e7: SWAP2
000002e8: SUB
000002e9: SWAP1
000002ea: RETURN
000002eb: JUMPDEST
000002ec: PUSH2 0x0305
000002ef: PUSH1 0x04
000002f1: DUP1
000002f2: CALLDATASIZE
000002f3: SUB
000002f4: DUP2
000002f5: ADD
000002f6: SWAP1
000002f7: PUSH2 0x0300
000002fa: SWAP2
000002fb: SWAP1
000002fc: PUSH2 0x3071
000002ff: JUMP
00000300: JUMPDEST
00000301: PUSH2 0x13cd
00000304: JUMP
00000305: JUMPDEST
00000306: PUSH1 0x40
00000308: MLOAD
00000309: PUSH2 0x0312
0000030c: SWAP2
0000030d: SWAP1
0000030e: PUSH2 0x34bf
00000311: JUMP
00000312: JUMPDEST
00000313: PUSH1 0x40
00000315: MLOAD
00000316: DUP1
00000317: SWAP2
00000318: SUB
00000319: SWAP1
0000031a: RETURN
0000031b: JUMPDEST
0000031c: PUSH2 0x0323
0000031f: PUSH2 0x13ed
00000322: JUMP
00000323: JUMPDEST
00000324: STOP
00000325: JUMPDEST
00000326: PUSH2 0x033f
00000329: PUSH1 0x04
0000032b: DUP1
0000032c: CALLDATASIZE
0000032d: SUB
0000032e: DUP2
0000032f: ADD
00000330: SWAP1
00000331: PUSH2 0x033a
00000334: SWAP2
00000335: SWAP1
00000336: PUSH2 0x3270
00000339: JUMP
0000033a: JUMPDEST
0000033b: PUSH2 0x1475
0000033e: JUMP
0000033f: JUMPDEST
00000340: PUSH1 0x40
00000342: MLOAD
00000343: PUSH2 0x034c
00000346: SWAP2
00000347: SWAP1
00000348: PUSH2 0x3509
0000034b: JUMP
0000034c: JUMPDEST
0000034d: PUSH1 0x40
0000034f: MLOAD
00000350: DUP1
00000351: SWAP2
00000352: SUB
00000353: SWAP1
00000354: RETURN
00000355: JUMPDEST
00000356: PUSH2 0x036f
00000359: PUSH1 0x04
0000035b: DUP1
0000035c: CALLDATASIZE
0000035d: SUB
0000035e: DUP2
0000035f: ADD
00000360: SWAP1
00000361: PUSH2 0x036a
00000364: SWAP2
00000365: SWAP1
00000366: PUSH2 0x3071
00000369: JUMP
0000036a: JUMPDEST
0000036b: PUSH2 0x14f4
0000036e: JUMP
0000036f: JUMPDEST
00000370: STOP
00000371: JUMPDEST
00000372: PUSH2 0x0379
00000375: PUSH2 0x1780
00000378: JUMP
00000379: JUMPDEST
0000037a: STOP
0000037b: JUMPDEST
0000037c: PUSH2 0x0383
0000037f: PUSH2 0x1824
00000382: JUMP
00000383: JUMPDEST
00000384: PUSH1 0x40
00000386: MLOAD
00000387: PUSH2 0x0390
0000038a: SWAP2
0000038b: SWAP1
0000038c: PUSH2 0x3524
0000038f: JUMP
00000390: JUMPDEST
00000391: PUSH1 0x40
00000393: MLOAD
00000394: DUP1
00000395: SWAP2
00000396: SUB
00000397: SWAP1
00000398: RETURN
00000399: JUMPDEST
0000039a: PUSH2 0x03b3
0000039d: PUSH1 0x04
0000039f: DUP1
000003a0: CALLDATASIZE
000003a1: SUB
000003a2: DUP2
000003a3: ADD
000003a4: SWAP1
000003a5: PUSH2 0x03ae
000003a8: SWAP2
000003a9: SWAP1
000003aa: PUSH2 0x3270
000003ad: JUMP
000003ae: JUMPDEST
000003af: PUSH2 0x184e
000003b2: JUMP
000003b3: JUMPDEST
000003b4: PUSH1 0x40
000003b6: MLOAD
000003b7: PUSH2 0x03c0
000003ba: SWAP2
000003bb: SWAP1
000003bc: PUSH2 0x30ad
000003bf: JUMP
000003c0: JUMPDEST
000003c1: PUSH1 0x40
000003c3: MLOAD
000003c4: DUP1
000003c5: SWAP2
000003c6: SUB
000003c7: SWAP1
000003c8: RETURN
000003c9: JUMPDEST
000003ca: PUSH2 0x03d1
000003cd: PUSH2 0x1873
000003d0: JUMP
000003d1: JUMPDEST
000003d2: PUSH1 0x40
000003d4: MLOAD
000003d5: PUSH2 0x03de
000003d8: SWAP2
000003d9: SWAP1
000003da: PUSH2 0x30ad
000003dd: JUMP
000003de: JUMPDEST
000003df: PUSH1 0x40
000003e1: MLOAD
000003e2: DUP1
000003e3: SWAP2
000003e4: SUB
000003e5: SWAP1
000003e6: RETURN
000003e7: JUMPDEST
000003e8: PUSH2 0x0401
000003eb: PUSH1 0x04
000003ed: DUP1
000003ee: CALLDATASIZE
000003ef: SUB
000003f0: DUP2
000003f1: ADD
000003f2: SWAP1
000003f3: PUSH2 0x03fc
000003f6: SWAP2
000003f7: SWAP1
000003f8: PUSH2 0x3071
000003fb: JUMP
000003fc: JUMPDEST
000003fd: PUSH2 0x1879
00000400: JUMP
00000401: JUMPDEST
00000402: STOP
00000403: JUMPDEST
00000404: PUSH2 0x041d
00000407: PUSH1 0x04
00000409: DUP1
0000040a: CALLDATASIZE
0000040b: SUB
0000040c: DUP2
0000040d: ADD
0000040e: SWAP1
0000040f: PUSH2 0x0418
00000412: SWAP2
00000413: SWAP1
00000414: PUSH2 0x3071
00000417: JUMP
00000418: JUMPDEST
00000419: PUSH2 0x18ff
0000041c: JUMP
0000041d: JUMPDEST
0000041e: STOP
0000041f: JUMPDEST
00000420: PUSH2 0x0427
00000423: PUSH2 0x1c22
00000426: JUMP
00000427: JUMPDEST
00000428: PUSH1 0x40
0000042a: MLOAD
0000042b: PUSH2 0x0434
0000042e: SWAP2
0000042f: SWAP1
00000430: PUSH2 0x30ad
00000433: JUMP
00000434: JUMPDEST
00000435: PUSH1 0x40
00000437: MLOAD
00000438: DUP1
00000439: SWAP2
0000043a: SUB
0000043b: SWAP1
0000043c: RETURN
0000043d: JUMPDEST
0000043e: PUSH2 0x0445
00000441: PUSH2 0x1c2f
00000444: JUMP
00000445: JUMPDEST
00000446: STOP
00000447: JUMPDEST
00000448: PUSH2 0x0461
0000044b: PUSH1 0x04
0000044d: DUP1
0000044e: CALLDATASIZE
0000044f: SUB
00000450: DUP2
00000451: ADD
00000452: SWAP1
00000453: PUSH2 0x045c
00000456: SWAP2
00000457: SWAP1
00000458: PUSH2 0x3204
0000045b: JUMP
0000045c: JUMPDEST
0000045d: PUSH2 0x1cac
00000460: JUMP
00000461: JUMPDEST
00000462: STOP
00000463: JUMPDEST
00000464: PUSH2 0x047d
00000467: PUSH1 0x04
00000469: DUP1
0000046a: CALLDATASIZE
0000046b: SUB
0000046c: DUP2
0000046d: ADD
0000046e: SWAP1
0000046f: PUSH2 0x0478
00000472: SWAP2
00000473: SWAP1
00000474: PUSH2 0x353f
00000477: JUMP
00000478: JUMPDEST
00000479: PUSH2 0x2032
0000047c: JUMP
0000047d: JUMPDEST
0000047e: STOP
0000047f: JUMPDEST
00000480: PUSH2 0x0499
00000483: PUSH1 0x04
00000485: DUP1
00000486: CALLDATASIZE
00000487: SUB
00000488: DUP2
00000489: ADD
0000048a: SWAP1
0000048b: PUSH2 0x0494
0000048e: SWAP2
0000048f: SWAP1
00000490: PUSH2 0x3270
00000493: JUMP
00000494: JUMPDEST
00000495: PUSH2 0x212a
00000498: JUMP
00000499: JUMPDEST
0000049a: PUSH1 0x40
0000049c: MLOAD
0000049d: PUSH2 0x04a6
000004a0: SWAP2
000004a1: SWAP1
000004a2: PUSH2 0x30ad
000004a5: JUMP
000004a6: JUMPDEST
000004a7: PUSH1 0x40
000004a9: MLOAD
000004aa: DUP1
000004ab: SWAP2
000004ac: SUB
000004ad: SWAP1
000004ae: RETURN
000004af: JUMPDEST
000004b0: PUSH2 0x04c9
000004b3: PUSH1 0x04
000004b5: DUP1
000004b6: CALLDATASIZE
000004b7: SUB
000004b8: DUP2
000004b9: ADD
000004ba: SWAP1
000004bb: PUSH2 0x04c4
000004be: SWAP2
000004bf: SWAP1
000004c0: PUSH2 0x356c
000004c3: JUMP
000004c4: JUMPDEST
000004c5: PUSH2 0x2362
000004c8: JUMP
000004c9: JUMPDEST
000004ca: STOP
000004cb: JUMPDEST
000004cc: PUSH2 0x04e5
000004cf: PUSH1 0x04
000004d1: DUP1
000004d2: CALLDATASIZE
000004d3: SUB
000004d4: DUP2
000004d5: ADD
000004d6: SWAP1
000004d7: PUSH2 0x04e0
000004da: SWAP2
000004db: SWAP1
000004dc: PUSH2 0x3270
000004df: JUMP
000004e0: JUMPDEST
000004e1: PUSH2 0x279f
000004e4: JUMP
000004e5: JUMPDEST
000004e6: STOP
000004e7: JUMPDEST
000004e8: PUSH1 0x6b
000004ea: PUSH1 0x20
000004ec: MSTORE
000004ed: DUP1
000004ee: PUSH1 0x00
000004f0: MSTORE
000004f1: PUSH1 0x40
000004f3: PUSH1 0x00
000004f5: KECCAK256
000004f6: PUSH1 0x00
000004f8: SWAP2
000004f9: POP
000004fa: SWAP1
000004fb: POP
000004fc: SLOAD
000004fd: DUP2
000004fe: JUMP
000004ff: JUMPDEST
00000500: PUSH1 0x65
00000502: DUP2
00000503: DUP2
00000504: SLOAD
00000505: DUP2
00000506: LT
00000507: PUSH2 0x050f
0000050a: JUMPI
0000050b: PUSH1 0x00
0000050d: DUP1
0000050e: REVERT
0000050f: JUMPDEST
00000510: SWAP1
00000511: PUSH1 0x00
00000513: MSTORE
00000514: PUSH1 0x20
00000516: PUSH1 0x00
00000518: KECCAK256
00000519: SWAP1
0000051a: PUSH1 0x0a
0000051c: MUL
0000051d: ADD
0000051e: PUSH1 0x00
00000520: SWAP2
00000521: POP
00000522: SWAP1
00000523: POP
00000524: DUP1
00000525: PUSH1 0x00
00000527: ADD
00000528: PUSH1 0x00
0000052a: SWAP1
0000052b: SLOAD
0000052c: SWAP1
0000052d: PUSH2 0x0100
00000530: EXP
00000531: SWAP1
00000532: DIV
00000533: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000548: AND
00000549: SWAP1
0000054a: DUP1
0000054b: PUSH1 0x01
0000054d: ADD
0000054e: PUSH1 0x00
00000550: SWAP1
00000551: SLOAD
00000552: SWAP1
00000553: PUSH2 0x0100
00000556: EXP
00000557: SWAP1
00000558: DIV
00000559: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000056e: AND
0000056f: SWAP1
00000570: DUP1
00000571: PUSH1 0x02
00000573: ADD
00000574: SLOAD
00000575: SWAP1
00000576: DUP1
00000577: PUSH1 0x03
00000579: ADD
0000057a: SLOAD
0000057b: SWAP1
0000057c: DUP1
0000057d: PUSH1 0x04
0000057f: ADD
00000580: SLOAD
00000581: SWAP1
00000582: DUP1
00000583: PUSH1 0x05
00000585: ADD
00000586: SLOAD
00000587: SWAP1
00000588: DUP1
00000589: PUSH1 0x06
0000058b: ADD
0000058c: SLOAD
0000058d: SWAP1
0000058e: DUP1
0000058f: PUSH1 0x07
00000591: ADD
00000592: SLOAD
00000593: SWAP1
00000594: DUP1
00000595: PUSH1 0x08
00000597: ADD
00000598: SLOAD
00000599: SWAP1
0000059a: DUP1
0000059b: PUSH1 0x09
0000059d: ADD
0000059e: PUSH1 0x00
000005a0: SWAP1
000005a1: SLOAD
000005a2: SWAP1
000005a3: PUSH2 0x0100
000005a6: EXP
000005a7: SWAP1
000005a8: DIV
000005a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000005be: AND
000005bf: SWAP1
000005c0: POP
000005c1: DUP11
000005c2: JUMP
000005c3: JUMPDEST
000005c4: PUSH1 0x65
000005c6: DUP1
000005c7: SLOAD
000005c8: SWAP1
000005c9: POP
000005ca: DUP3
000005cb: LT
000005cc: PUSH2 0x060c
000005cf: JUMPI
000005d0: DUP2
000005d1: PUSH1 0x40
000005d3: MLOAD
000005d4: PUSH32 0x1e657b1d00000000000000000000000000000000000000000000000000000000
000005f5: DUP2
000005f6: MSTORE
000005f7: PUSH1 0x04
000005f9: ADD
000005fa: PUSH2 0x0603
000005fd: SWAP2
000005fe: SWAP1
000005ff: PUSH2 0x30ad
00000602: JUMP
00000603: JUMPDEST
00000604: PUSH1 0x40
00000606: MLOAD
00000607: DUP1
00000608: SWAP2
00000609: SUB
0000060a: SWAP1
0000060b: REVERT
0000060c: JUMPDEST
0000060d: PUSH1 0x00
0000060f: PUSH1 0x65
00000611: DUP4
00000612: DUP2
00000613: SLOAD
00000614: DUP2
00000615: LT
00000616: PUSH2 0x0622
00000619: JUMPI
0000061a: PUSH2 0x0621
0000061d: PUSH2 0x35f9
00000620: JUMP
00000621: JUMPDEST
00000622: JUMPDEST
00000623: SWAP1
00000624: PUSH1 0x00
00000626: MSTORE
00000627: PUSH1 0x20
00000629: PUSH1 0x00
0000062b: KECCAK256
0000062c: SWAP1
0000062d: PUSH1 0x0a
0000062f: MUL
00000630: ADD
00000631: PUSH1 0x40
00000633: MLOAD
00000634: DUP1
00000635: PUSH2 0x0140
00000638: ADD
00000639: PUSH1 0x40
0000063b: MSTORE
0000063c: SWAP1
0000063d: DUP2
0000063e: PUSH1 0x00
00000640: DUP3
00000641: ADD
00000642: PUSH1 0x00
00000644: SWAP1
00000645: SLOAD
00000646: SWAP1
00000647: PUSH2 0x0100
0000064a: EXP
0000064b: SWAP1
0000064c: DIV
0000064d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000662: AND
00000663: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000678: AND
00000679: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000068e: AND
0000068f: DUP2
00000690: MSTORE
00000691: PUSH1 0x20
00000693: ADD
00000694: PUSH1 0x01
00000696: DUP3
00000697: ADD
00000698: PUSH1 0x00
0000069a: SWAP1
0000069b: SLOAD
0000069c: SWAP1
0000069d: PUSH2 0x0100
000006a0: EXP
000006a1: SWAP1
000006a2: DIV
000006a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006b8: AND
000006b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006ce: AND
000006cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006e4: AND
000006e5: DUP2
000006e6: MSTORE
000006e7: PUSH1 0x20
000006e9: ADD
000006ea: PUSH1 0x02
000006ec: DUP3
000006ed: ADD
000006ee: SLOAD
000006ef: DUP2
000006f0: MSTORE
000006f1: PUSH1 0x20
000006f3: ADD
000006f4: PUSH1 0x03
000006f6: DUP3
000006f7: ADD
000006f8: SLOAD
000006f9: DUP2
000006fa: MSTORE
000006fb: PUSH1 0x20
000006fd: ADD
000006fe: PUSH1 0x04
00000700: DUP3
00000701: ADD
00000702: SLOAD
00000703: DUP2
00000704: MSTORE
00000705: PUSH1 0x20
00000707: ADD
00000708: PUSH1 0x05
0000070a: DUP3
0000070b: ADD
0000070c: SLOAD
0000070d: DUP2
0000070e: MSTORE
0000070f: PUSH1 0x20
00000711: ADD
00000712: PUSH1 0x06
00000714: DUP3
00000715: ADD
00000716: SLOAD
00000717: DUP2
00000718: MSTORE
00000719: PUSH1 0x20
0000071b: ADD
0000071c: PUSH1 0x07
0000071e: DUP3
0000071f: ADD
00000720: SLOAD
00000721: DUP2
00000722: MSTORE
00000723: PUSH1 0x20
00000725: ADD
00000726: PUSH1 0x08
00000728: DUP3
00000729: ADD
0000072a: SLOAD
0000072b: DUP2
0000072c: MSTORE
0000072d: PUSH1 0x20
0000072f: ADD
00000730: PUSH1 0x09
00000732: DUP3
00000733: ADD
00000734: PUSH1 0x00
00000736: SWAP1
00000737: SLOAD
00000738: SWAP1
00000739: PUSH2 0x0100
0000073c: EXP
0000073d: SWAP1
0000073e: DIV
0000073f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000754: AND
00000755: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000076a: AND
0000076b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000780: AND
00000781: DUP2
00000782: MSTORE
00000783: POP
00000784: POP
00000785: SWAP1
00000786: POP
00000787: DUP1
00000788: PUSH2 0x0120
0000078b: ADD
0000078c: MLOAD
0000078d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007a2: AND
000007a3: CALLER
000007a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007b9: AND
000007ba: EQ
000007bb: PUSH2 0x0802
000007be: JUMPI
000007bf: DUP1
000007c0: PUSH2 0x0120
000007c3: ADD
000007c4: MLOAD
000007c5: CALLER
000007c6: PUSH1 0x40
000007c8: MLOAD
000007c9: PUSH32 0x15a39f3500000000000000000000000000000000000000000000000000000000
000007ea: DUP2
000007eb: MSTORE
000007ec: PUSH1 0x04
000007ee: ADD
000007ef: PUSH2 0x07f9
000007f2: SWAP3
000007f3: SWAP2
000007f4: SWAP1
000007f5: PUSH2 0x3628
000007f8: JUMP
000007f9: JUMPDEST
000007fa: PUSH1 0x40
000007fc: MLOAD
000007fd: DUP1
000007fe: SWAP2
000007ff: SUB
00000800: SWAP1
00000801: REVERT
00000802: JUMPDEST
00000803: DUP1
00000804: PUSH1 0xa0
00000806: ADD
00000807: MLOAD
00000808: TIMESTAMP
00000809: LT
0000080a: PUSH2 0x083f
0000080d: JUMPI
0000080e: PUSH1 0x40
00000810: MLOAD
00000811: PUSH32 0xba56b90400000000000000000000000000000000000000000000000000000000
00000832: DUP2
00000833: MSTORE
00000834: PUSH1 0x04
00000836: ADD
00000837: PUSH1 0x40
00000839: MLOAD
0000083a: DUP1
0000083b: SWAP2
0000083c: SUB
0000083d: SWAP1
0000083e: REVERT
0000083f: JUMPDEST
00000840: DUP2
00000841: DUP2
00000842: PUSH1 0xe0
00000844: ADD
00000845: MLOAD
00000846: LT
00000847: PUSH2 0x088d
0000084a: JUMPI
0000084b: DUP1
0000084c: PUSH1 0xe0
0000084e: ADD
0000084f: MLOAD
00000850: DUP3
00000851: PUSH1 0x40
00000853: MLOAD
00000854: PUSH32 0xbc4fada100000000000000000000000000000000000000000000000000000000
00000875: DUP2
00000876: MSTORE
00000877: PUSH1 0x04
00000879: ADD
0000087a: PUSH2 0x0884
0000087d: SWAP3
0000087e: SWAP2
0000087f: SWAP1
00000880: PUSH2 0x32b0
00000883: JUMP
00000884: JUMPDEST
00000885: PUSH1 0x40
00000887: MLOAD
00000888: DUP1
00000889: SWAP2
0000088a: SUB
0000088b: SWAP1
0000088c: REVERT
0000088d: JUMPDEST
0000088e: DUP2
0000088f: PUSH1 0x6c
00000891: PUSH1 0x00
00000893: DUP6
00000894: DUP2
00000895: MSTORE
00000896: PUSH1 0x20
00000898: ADD
00000899: SWAP1
0000089a: DUP2
0000089b: MSTORE
0000089c: PUSH1 0x20
0000089e: ADD
0000089f: PUSH1 0x00
000008a1: KECCAK256
000008a2: DUP2
000008a3: SWAP1
000008a4: SSTORE
000008a5: POP
000008a6: POP
000008a7: POP
000008a8: POP
000008a9: JUMP
000008aa: JUMPDEST
000008ab: PUSH1 0x66
000008ad: PUSH1 0x20
000008af: MSTORE
000008b0: DUP2
000008b1: PUSH1 0x00
000008b3: MSTORE
000008b4: PUSH1 0x40
000008b6: PUSH1 0x00
000008b8: KECCAK256
000008b9: PUSH1 0x20
000008bb: MSTORE
000008bc: DUP1
000008bd: PUSH1 0x00
000008bf: MSTORE
000008c0: PUSH1 0x40
000008c2: PUSH1 0x00
000008c4: KECCAK256
000008c5: PUSH1 0x00
000008c7: SWAP2
000008c8: POP
000008c9: SWAP2
000008ca: POP
000008cb: POP
000008cc: DUP1
000008cd: PUSH1 0x00
000008cf: ADD
000008d0: SLOAD
000008d1: SWAP1
000008d2: DUP1
000008d3: PUSH1 0x01
000008d5: ADD
000008d6: SLOAD
000008d7: SWAP1
000008d8: POP
000008d9: DUP3
000008da: JUMP
000008db: JUMPDEST
000008dc: PUSH1 0x6c
000008de: PUSH1 0x20
000008e0: MSTORE
000008e1: DUP1
000008e2: PUSH1 0x00
000008e4: MSTORE
000008e5: PUSH1 0x40
000008e7: PUSH1 0x00
000008e9: KECCAK256
000008ea: PUSH1 0x00
000008ec: SWAP2
000008ed: POP
000008ee: SWAP1
000008ef: POP
000008f0: SLOAD
000008f1: DUP2
000008f2: JUMP
000008f3: JUMPDEST
000008f4: PUSH1 0x02
000008f6: PUSH1 0x67
000008f8: SLOAD
000008f9: EQ
000008fa: ISZERO
000008fb: PUSH2 0x0939
000008fe: JUMPI
000008ff: PUSH1 0x40
00000901: MLOAD
00000902: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000923: DUP2
00000924: MSTORE
00000925: PUSH1 0x04
00000927: ADD
00000928: PUSH2 0x0930
0000092b: SWAP1
0000092c: PUSH2 0x36ae
0000092f: JUMP
00000930: JUMPDEST
00000931: PUSH1 0x40
00000933: MLOAD
00000934: DUP1
00000935: SWAP2
00000936: SUB
00000937: SWAP1
00000938: REVERT
00000939: JUMPDEST
0000093a: PUSH1 0x02
0000093c: PUSH1 0x67
0000093e: DUP2
0000093f: SWAP1
00000940: SSTORE
00000941: POP
00000942: PUSH1 0x00
00000944: DUP3
00000945: EQ
00000946: ISZERO
00000947: PUSH2 0x097c
0000094a: JUMPI
0000094b: PUSH1 0x40
0000094d: MLOAD
0000094e: PUSH32 0x43ad20fc00000000000000000000000000000000000000000000000000000000
0000096f: DUP2
00000970: MSTORE
00000971: PUSH1 0x04
00000973: ADD
00000974: PUSH1 0x40
00000976: MLOAD
00000977: DUP1
00000978: SWAP2
00000979: SUB
0000097a: SWAP1
0000097b: REVERT
0000097c: JUMPDEST
0000097d: PUSH1 0x65
0000097f: DUP1
00000980: SLOAD
00000981: SWAP1
00000982: POP
00000983: DUP2
00000984: LT
00000985: PUSH2 0x09c5
00000988: JUMPI
00000989: DUP1
0000098a: PUSH1 0x40
0000098c: MLOAD
0000098d: PUSH32 0x1e657b1d00000000000000000000000000000000000000000000000000000000
000009ae: DUP2
000009af: MSTORE
000009b0: PUSH1 0x04
000009b2: ADD
000009b3: PUSH2 0x09bc
000009b6: SWAP2
000009b7: SWAP1
000009b8: PUSH2 0x30ad
000009bb: JUMP
000009bc: JUMPDEST
000009bd: PUSH1 0x40
000009bf: MLOAD
000009c0: DUP1
000009c1: SWAP2
000009c2: SUB
000009c3: SWAP1
000009c4: REVERT
000009c5: JUMPDEST
000009c6: PUSH1 0x00
000009c8: PUSH1 0x65
000009ca: DUP3
000009cb: DUP2
000009cc: SLOAD
000009cd: DUP2
000009ce: LT
000009cf: PUSH2 0x09db
000009d2: JUMPI
000009d3: PUSH2 0x09da
000009d6: PUSH2 0x35f9
000009d9: JUMP
000009da: JUMPDEST
000009db: JUMPDEST
000009dc: SWAP1
000009dd: PUSH1 0x00
000009df: MSTORE
000009e0: PUSH1 0x20
000009e2: PUSH1 0x00
000009e4: KECCAK256
000009e5: SWAP1
000009e6: PUSH1 0x0a
000009e8: MUL
000009e9: ADD
000009ea: SWAP1
000009eb: POP
000009ec: DUP1
000009ed: PUSH1 0x05
000009ef: ADD
000009f0: SLOAD
000009f1: TIMESTAMP
000009f2: LT
000009f3: ISZERO
000009f4: PUSH2 0x0a29
000009f7: JUMPI
000009f8: PUSH1 0x40
000009fa: MLOAD
000009fb: PUSH32 0x4614779a00000000000000000000000000000000000000000000000000000000
00000a1c: DUP2
00000a1d: MSTORE
00000a1e: PUSH1 0x04
00000a20: ADD
00000a21: PUSH1 0x40
00000a23: MLOAD
00000a24: DUP1
00000a25: SWAP2
00000a26: SUB
00000a27: SWAP1
00000a28: REVERT
00000a29: JUMPDEST
00000a2a: PUSH1 0x00
00000a2c: PUSH1 0x66
00000a2e: PUSH1 0x00
00000a30: CALLER
00000a31: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a46: AND
00000a47: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a5c: AND
00000a5d: DUP2
00000a5e: MSTORE
00000a5f: PUSH1 0x20
00000a61: ADD
00000a62: SWAP1
00000a63: DUP2
00000a64: MSTORE
00000a65: PUSH1 0x20
00000a67: ADD
00000a68: PUSH1 0x00
00000a6a: KECCAK256
00000a6b: PUSH1 0x00
00000a6d: DUP5
00000a6e: DUP2
00000a6f: MSTORE
00000a70: PUSH1 0x20
00000a72: ADD
00000a73: SWAP1
00000a74: DUP2
00000a75: MSTORE
00000a76: PUSH1 0x20
00000a78: ADD
00000a79: PUSH1 0x00
00000a7b: KECCAK256
00000a7c: SWAP1
00000a7d: POP
00000a7e: PUSH1 0x00
00000a80: DUP2
00000a81: PUSH1 0x00
00000a83: ADD
00000a84: SLOAD
00000a85: SWAP1
00000a86: POP
00000a87: PUSH1 0x00
00000a89: DUP6
00000a8a: DUP3
00000a8b: PUSH2 0x0a94
00000a8e: SWAP2
00000a8f: SWAP1
00000a90: PUSH2 0x36fd
00000a93: JUMP
00000a94: JUMPDEST
00000a95: SWAP1
00000a96: POP
00000a97: PUSH2 0x0a9f
00000a9a: DUP6
00000a9b: PUSH2 0x0dfa
00000a9e: JUMP
00000a9f: JUMPDEST
00000aa0: PUSH1 0x00
00000aa2: DUP5
00000aa3: PUSH1 0x03
00000aa5: ADD
00000aa6: SLOAD
00000aa7: SWAP1
00000aa8: POP
00000aa9: PUSH1 0x00
00000aab: DUP6
00000aac: PUSH1 0x06
00000aae: ADD
00000aaf: SLOAD
00000ab0: SWAP1
00000ab1: POP
00000ab2: PUSH1 0x00
00000ab4: PUSH1 0x6d
00000ab6: PUSH1 0x00
00000ab8: CALLER
00000ab9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ace: AND
00000acf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ae4: AND
00000ae5: DUP2
00000ae6: MSTORE
00000ae7: PUSH1 0x20
00000ae9: ADD
00000aea: SWAP1
00000aeb: DUP2
00000aec: MSTORE
00000aed: PUSH1 0x20
00000aef: ADD
00000af0: PUSH1 0x00
00000af2: KECCAK256
00000af3: PUSH1 0x00
00000af5: DUP10
00000af6: DUP2
00000af7: MSTORE
00000af8: PUSH1 0x20
00000afa: ADD
00000afb: SWAP1
00000afc: DUP2
00000afd: MSTORE
00000afe: PUSH1 0x20
00000b00: ADD
00000b01: PUSH1 0x00
00000b03: KECCAK256
00000b04: SLOAD
00000b05: DUP7
00000b06: PUSH1 0x01
00000b08: ADD
00000b09: SLOAD
00000b0a: DUP4
00000b0b: DUP6
00000b0c: DUP9
00000b0d: PUSH2 0x0b16
00000b10: SWAP2
00000b11: SWAP1
00000b12: PUSH2 0x3731
00000b15: JUMP
00000b16: JUMPDEST
00000b17: PUSH2 0x0b20
00000b1a: SWAP2
00000b1b: SWAP1
00000b1c: PUSH2 0x37ba
00000b1f: JUMP
00000b20: JUMPDEST
00000b21: PUSH2 0x0b2a
00000b24: SWAP2
00000b25: SWAP1
00000b26: PUSH2 0x36fd
00000b29: JUMP
00000b2a: JUMPDEST
00000b2b: PUSH2 0x0b34
00000b2e: SWAP2
00000b2f: SWAP1
00000b30: PUSH2 0x37eb
00000b33: JUMP
00000b34: JUMPDEST
00000b35: SWAP1
00000b36: POP
00000b37: PUSH1 0x00
00000b39: PUSH1 0x6d
00000b3b: PUSH1 0x00
00000b3d: CALLER
00000b3e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b53: AND
00000b54: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b69: AND
00000b6a: DUP2
00000b6b: MSTORE
00000b6c: PUSH1 0x20
00000b6e: ADD
00000b6f: SWAP1
00000b70: DUP2
00000b71: MSTORE
00000b72: PUSH1 0x20
00000b74: ADD
00000b75: PUSH1 0x00
00000b77: KECCAK256
00000b78: PUSH1 0x00
00000b7a: DUP11
00000b7b: DUP2
00000b7c: MSTORE
00000b7d: PUSH1 0x20
00000b7f: ADD
00000b80: SWAP1
00000b81: DUP2
00000b82: MSTORE
00000b83: PUSH1 0x20
00000b85: ADD
00000b86: PUSH1 0x00
00000b88: KECCAK256
00000b89: DUP2
00000b8a: SWAP1
00000b8b: SSTORE
00000b8c: POP
00000b8d: DUP4
00000b8e: DUP7
00000b8f: PUSH1 0x00
00000b91: ADD
00000b92: DUP2
00000b93: SWAP1
00000b94: SSTORE
00000b95: POP
00000b96: DUP9
00000b97: DUP8
00000b98: PUSH1 0x07
00000b9a: ADD
00000b9b: PUSH1 0x00
00000b9d: DUP3
00000b9e: DUP3
00000b9f: SLOAD
00000ba0: PUSH2 0x0ba9
00000ba3: SWAP2
00000ba4: SWAP1
00000ba5: PUSH2 0x36fd
00000ba8: JUMP
00000ba9: JUMPDEST
00000baa: SWAP3
00000bab: POP
00000bac: POP
00000bad: DUP2
00000bae: SWAP1
00000baf: SSTORE
00000bb0: POP
00000bb1: DUP2
00000bb2: DUP4
00000bb3: DUP6
00000bb4: PUSH2 0x0bbd
00000bb7: SWAP2
00000bb8: SWAP1
00000bb9: PUSH2 0x3731
00000bbc: JUMP
00000bbd: JUMPDEST
00000bbe: PUSH2 0x0bc7
00000bc1: SWAP2
00000bc2: SWAP1
00000bc3: PUSH2 0x37ba
00000bc6: JUMP
00000bc7: JUMPDEST
00000bc8: DUP7
00000bc9: PUSH1 0x01
00000bcb: ADD
00000bcc: DUP2
00000bcd: SWAP1
00000bce: SSTORE
00000bcf: POP
00000bd0: PUSH1 0x00
00000bd2: DUP2
00000bd3: EQ
00000bd4: ISZERO
00000bd5: PUSH2 0x0c2c
00000bd8: JUMPI
00000bd9: PUSH2 0x0c27
00000bdc: CALLER
00000bdd: DUP11
00000bde: DUP10
00000bdf: PUSH1 0x00
00000be1: ADD
00000be2: PUSH1 0x00
00000be4: SWAP1
00000be5: SLOAD
00000be6: SWAP1
00000be7: PUSH2 0x0100
00000bea: EXP
00000beb: SWAP1
00000bec: DIV
00000bed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c02: AND
00000c03: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c18: AND
00000c19: PUSH2 0x28a6
00000c1c: SWAP1
00000c1d: SWAP3
00000c1e: SWAP2
00000c1f: SWAP1
00000c20: PUSH4 0xffffffff
00000c25: AND
00000c26: JUMP
00000c27: JUMPDEST
00000c28: PUSH2 0x0d97
00000c2b: JUMP
00000c2c: JUMPDEST
00000c2d: PUSH1 0x00
00000c2f: DUP8
00000c30: PUSH1 0x00
00000c32: ADD
00000c33: PUSH1 0x00
00000c35: SWAP1
00000c36: SLOAD
00000c37: SWAP1
00000c38: PUSH2 0x0100
00000c3b: EXP
00000c3c: SWAP1
00000c3d: DIV
00000c3e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c53: AND
00000c54: SWAP1
00000c55: POP
00000c56: PUSH1 0x00
00000c58: DUP9
00000c59: PUSH1 0x01
00000c5b: ADD
00000c5c: PUSH1 0x00
00000c5e: SWAP1
00000c5f: SLOAD
00000c60: SWAP1
00000c61: PUSH2 0x0100
00000c64: EXP
00000c65: SWAP1
00000c66: DIV
00000c67: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c7c: AND
00000c7d: SWAP1
00000c7e: POP
00000c7f: DUP1
00000c80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c95: AND
00000c96: DUP3
00000c97: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cac: AND
00000cad: EQ
00000cae: ISZERO
00000caf: PUSH2 0x0ced
00000cb2: JUMPI
00000cb3: PUSH2 0x0ce8
00000cb6: CALLER
00000cb7: DUP5
00000cb8: DUP14
00000cb9: PUSH2 0x0cc2
00000cbc: SWAP2
00000cbd: SWAP1
00000cbe: PUSH2 0x37eb
00000cc1: JUMP
00000cc2: JUMPDEST
00000cc3: DUP5
00000cc4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cd9: AND
00000cda: PUSH2 0x28a6
00000cdd: SWAP1
00000cde: SWAP3
00000cdf: SWAP2
00000ce0: SWAP1
00000ce1: PUSH4 0xffffffff
00000ce6: AND
00000ce7: JUMP
00000ce8: JUMPDEST
00000ce9: PUSH2 0x0d44
00000cec: JUMP
00000ced: JUMPDEST
00000cee: PUSH2 0x0d18
00000cf1: CALLER
00000cf2: DUP5
00000cf3: DUP4
00000cf4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d09: AND
00000d0a: PUSH2 0x28a6
00000d0d: SWAP1
00000d0e: SWAP3
00000d0f: SWAP2
00000d10: SWAP1
00000d11: PUSH4 0xffffffff
00000d16: AND
00000d17: JUMP
00000d18: JUMPDEST
00000d19: PUSH2 0x0d43
00000d1c: CALLER
00000d1d: DUP13
00000d1e: DUP5
00000d1f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d34: AND
00000d35: PUSH2 0x28a6
00000d38: SWAP1
00000d39: SWAP3
00000d3a: SWAP2
00000d3b: SWAP1
00000d3c: PUSH4 0xffffffff
00000d41: AND
00000d42: JUMP
00000d43: JUMPDEST
00000d44: JUMPDEST
00000d45: CALLER
00000d46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d5b: AND
00000d5c: PUSH32 0x34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf7
00000d7d: DUP5
00000d7e: DUP13
00000d7f: PUSH1 0x40
00000d81: MLOAD
00000d82: PUSH2 0x0d8c
00000d85: SWAP3
00000d86: SWAP2
00000d87: SWAP1
00000d88: PUSH2 0x32b0
00000d8b: JUMP
00000d8c: JUMPDEST
00000d8d: PUSH1 0x40
00000d8f: MLOAD
00000d90: DUP1
00000d91: SWAP2
00000d92: SUB
00000d93: SWAP1
00000d94: LOG2
00000d95: POP
00000d96: POP
00000d97: JUMPDEST
00000d98: CALLER
00000d99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dae: AND
00000daf: PUSH32 0xf279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568
00000dd0: DUP11
00000dd1: DUP11
00000dd2: PUSH1 0x40
00000dd4: MLOAD
00000dd5: PUSH2 0x0ddf
00000dd8: SWAP3
00000dd9: SWAP2
00000dda: SWAP1
00000ddb: PUSH2 0x32b0
00000dde: JUMP
00000ddf: JUMPDEST
00000de0: PUSH1 0x40
00000de2: MLOAD
00000de3: DUP1
00000de4: SWAP2
00000de5: SUB
00000de6: SWAP1
00000de7: LOG2
00000de8: POP
00000de9: POP
00000dea: POP
00000deb: POP
00000dec: POP
00000ded: POP
00000dee: POP
00000def: PUSH1 0x01
00000df1: PUSH1 0x67
00000df3: DUP2
00000df4: SWAP1
00000df5: SSTORE
00000df6: POP
00000df7: POP
00000df8: POP
00000df9: JUMP
00000dfa: JUMPDEST
00000dfb: PUSH1 0x65
00000dfd: DUP1
00000dfe: SLOAD
00000dff: SWAP1
00000e00: POP
00000e01: DUP2
00000e02: LT
00000e03: PUSH2 0x0e43
00000e06: JUMPI
00000e07: DUP1
00000e08: PUSH1 0x40
00000e0a: MLOAD
00000e0b: PUSH32 0x1e657b1d00000000000000000000000000000000000000000000000000000000
00000e2c: DUP2
00000e2d: MSTORE
00000e2e: PUSH1 0x04
00000e30: ADD
00000e31: PUSH2 0x0e3a
00000e34: SWAP2
00000e35: SWAP1
00000e36: PUSH2 0x30ad
00000e39: JUMP
00000e3a: JUMPDEST
00000e3b: PUSH1 0x40
00000e3d: MLOAD
00000e3e: DUP1
00000e3f: SWAP2
00000e40: SUB
00000e41: SWAP1
00000e42: REVERT
00000e43: JUMPDEST
00000e44: PUSH1 0x00
00000e46: PUSH1 0x65
00000e48: DUP3
00000e49: DUP2
00000e4a: SLOAD
00000e4b: DUP2
00000e4c: LT
00000e4d: PUSH2 0x0e59
00000e50: JUMPI
00000e51: PUSH2 0x0e58
00000e54: PUSH2 0x35f9
00000e57: JUMP
00000e58: JUMPDEST
00000e59: JUMPDEST
00000e5a: SWAP1
00000e5b: PUSH1 0x00
00000e5d: MSTORE
00000e5e: PUSH1 0x20
00000e60: PUSH1 0x00
00000e62: KECCAK256
00000e63: SWAP1
00000e64: PUSH1 0x0a
00000e66: MUL
00000e67: ADD
00000e68: SWAP1
00000e69: POP
00000e6a: PUSH1 0x00
00000e6c: DUP2
00000e6d: PUSH1 0x02
00000e6f: ADD
00000e70: SLOAD
00000e71: SWAP1
00000e72: POP
00000e73: DUP1
00000e74: TIMESTAMP
00000e75: GT
00000e76: PUSH2 0x0e80
00000e79: JUMPI
00000e7a: POP
00000e7b: POP
00000e7c: PUSH2 0x0f5b
00000e7f: JUMP
00000e80: JUMPDEST
00000e81: PUSH1 0x00
00000e83: DUP3
00000e84: PUSH1 0x07
00000e86: ADD
00000e87: SLOAD
00000e88: SWAP1
00000e89: POP
00000e8a: PUSH1 0x00
00000e8c: DUP4
00000e8d: PUSH1 0x04
00000e8f: ADD
00000e90: SLOAD
00000e91: SWAP1
00000e92: POP
00000e93: PUSH1 0x00
00000e95: DUP3
00000e96: EQ
00000e97: DUP1
00000e98: PUSH2 0x0ea0
00000e9b: JUMPI
00000e9c: POP
00000e9d: TIMESTAMP
00000e9e: DUP2
00000e9f: GT
00000ea0: JUMPDEST
00000ea1: ISZERO
00000ea2: PUSH2 0x0eb7
00000ea5: JUMPI
00000ea6: TIMESTAMP
00000ea7: DUP5
00000ea8: PUSH1 0x02
00000eaa: ADD
00000eab: DUP2
00000eac: SWAP1
00000ead: SSTORE
00000eae: POP
00000eaf: POP
00000eb0: POP
00000eb1: POP
00000eb2: POP
00000eb3: PUSH2 0x0f5b
00000eb6: JUMP
00000eb7: JUMPDEST
00000eb8: PUSH1 0x00
00000eba: DUP5
00000ebb: PUSH1 0x05
00000ebd: ADD
00000ebe: SLOAD
00000ebf: SWAP1
00000ec0: POP
00000ec1: DUP1
00000ec2: DUP5
00000ec3: GT
00000ec4: ISZERO
00000ec5: PUSH2 0x0ed2
00000ec8: JUMPI
00000ec9: POP
00000eca: POP
00000ecb: POP
00000ecc: POP
00000ecd: POP
00000ece: PUSH2 0x0f5b
00000ed1: JUMP
00000ed2: JUMPDEST
00000ed3: PUSH1 0x00
00000ed5: DUP3
00000ed6: DUP3
00000ed7: PUSH2 0x0ee0
00000eda: SWAP2
00000edb: SWAP1
00000edc: PUSH2 0x36fd
00000edf: JUMP
00000ee0: JUMPDEST
00000ee1: DUP7
00000ee2: PUSH1 0x08
00000ee4: ADD
00000ee5: SLOAD
00000ee6: PUSH2 0x0eef
00000ee9: DUP6
00000eea: DUP9
00000eeb: PUSH2 0x292c
00000eee: JUMP
00000eef: JUMPDEST
00000ef0: PUSH2 0x0ef9
00000ef3: TIMESTAMP
00000ef4: DUP7
00000ef5: PUSH2 0x2945
00000ef8: JUMP
00000ef9: JUMPDEST
00000efa: PUSH2 0x0f03
00000efd: SWAP2
00000efe: SWAP1
00000eff: PUSH2 0x36fd
00000f02: JUMP
00000f03: JUMPDEST
00000f04: PUSH2 0x0f0d
00000f07: SWAP2
00000f08: SWAP1
00000f09: PUSH2 0x3731
00000f0c: JUMP
00000f0d: JUMPDEST
00000f0e: PUSH2 0x0f17
00000f11: SWAP2
00000f12: SWAP1
00000f13: PUSH2 0x37ba
00000f16: JUMP
00000f17: JUMPDEST
00000f18: SWAP1
00000f19: POP
00000f1a: DUP4
00000f1b: DUP7
00000f1c: PUSH1 0x06
00000f1e: ADD
00000f1f: SLOAD
00000f20: DUP3
00000f21: PUSH2 0x0f2a
00000f24: SWAP2
00000f25: SWAP1
00000f26: PUSH2 0x3731
00000f29: JUMP
00000f2a: JUMPDEST
00000f2b: PUSH2 0x0f34
00000f2e: SWAP2
00000f2f: SWAP1
00000f30: PUSH2 0x37ba
00000f33: JUMP
00000f34: JUMPDEST
00000f35: DUP7
00000f36: PUSH1 0x03
00000f38: ADD
00000f39: SLOAD
00000f3a: PUSH2 0x0f43
00000f3d: SWAP2
00000f3e: SWAP1
00000f3f: PUSH2 0x37eb
00000f42: JUMP
00000f43: JUMPDEST
00000f44: DUP7
00000f45: PUSH1 0x03
00000f47: ADD
00000f48: DUP2
00000f49: SWAP1
00000f4a: SSTORE
00000f4b: POP
00000f4c: TIMESTAMP
00000f4d: DUP7
00000f4e: PUSH1 0x02
00000f50: ADD
00000f51: DUP2
00000f52: SWAP1
00000f53: SSTORE
00000f54: POP
00000f55: POP
00000f56: POP
00000f57: POP
00000f58: POP
00000f59: POP
00000f5a: POP
00000f5b: JUMPDEST
00000f5c: POP
00000f5d: JUMP
00000f5e: JUMPDEST
00000f5f: PUSH1 0x02
00000f61: PUSH1 0x67
00000f63: SLOAD
00000f64: EQ
00000f65: ISZERO
00000f66: PUSH2 0x0fa4
00000f69: JUMPI
00000f6a: PUSH1 0x40
00000f6c: MLOAD
00000f6d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000f8e: DUP2
00000f8f: MSTORE
00000f90: PUSH1 0x04
00000f92: ADD
00000f93: PUSH2 0x0f9b
00000f96: SWAP1
00000f97: PUSH2 0x36ae
00000f9a: JUMP
00000f9b: JUMPDEST
00000f9c: PUSH1 0x40
00000f9e: MLOAD
00000f9f: DUP1
00000fa0: SWAP2
00000fa1: SUB
00000fa2: SWAP1
00000fa3: REVERT
00000fa4: JUMPDEST
00000fa5: PUSH1 0x02
00000fa7: PUSH1 0x67
00000fa9: DUP2
00000faa: SWAP1
00000fab: SSTORE
00000fac: POP
00000fad: PUSH1 0x65
00000faf: DUP1
00000fb0: SLOAD
00000fb1: SWAP1
00000fb2: POP
00000fb3: DUP2
00000fb4: LT
00000fb5: PUSH2 0x0ff5
00000fb8: JUMPI
00000fb9: DUP1
00000fba: PUSH1 0x40
00000fbc: MLOAD
00000fbd: PUSH32 0x1e657b1d00000000000000000000000000000000000000000000000000000000
00000fde: DUP2
00000fdf: MSTORE
00000fe0: PUSH1 0x04
00000fe2: ADD
00000fe3: PUSH2 0x0fec
00000fe6: SWAP2
00000fe7: SWAP1
00000fe8: PUSH2 0x30ad
00000feb: JUMP
00000fec: JUMPDEST
00000fed: PUSH1 0x40
00000fef: MLOAD
00000ff0: DUP1
00000ff1: SWAP2
00000ff2: SUB
00000ff3: SWAP1
00000ff4: REVERT
00000ff5: JUMPDEST
00000ff6: PUSH1 0x00
00000ff8: PUSH1 0x65
00000ffa: DUP3
00000ffb: DUP2
00000ffc: SLOAD
00000ffd: DUP2
00000ffe: LT
00000fff: PUSH2 0x100b
00001002: JUMPI
00001003: PUSH2 0x100a
00001006: PUSH2 0x35f9
00001009: JUMP
0000100a: JUMPDEST
0000100b: JUMPDEST
0000100c: SWAP1
0000100d: PUSH1 0x00
0000100f: MSTORE
00001010: PUSH1 0x20
00001012: PUSH1 0x00
00001014: KECCAK256
00001015: SWAP1
00001016: PUSH1 0x0a
00001018: MUL
00001019: ADD
0000101a: SWAP1
0000101b: POP
0000101c: DUP1
0000101d: PUSH1 0x05
0000101f: ADD
00001020: SLOAD
00001021: TIMESTAMP
00001022: LT
00001023: ISZERO
00001024: PUSH2 0x1059
00001027: JUMPI
00001028: PUSH1 0x40
0000102a: MLOAD
0000102b: PUSH32 0x4614779a00000000000000000000000000000000000000000000000000000000
0000104c: DUP2
0000104d: MSTORE
0000104e: PUSH1 0x04
00001050: ADD
00001051: PUSH1 0x40
00001053: MLOAD
00001054: DUP1
00001055: SWAP2
00001056: SUB
00001057: SWAP1
00001058: REVERT
00001059: JUMPDEST
0000105a: PUSH1 0x00
0000105c: PUSH1 0x66
0000105e: PUSH1 0x00
00001060: CALLER
00001061: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001076: AND
00001077: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000108c: AND
0000108d: DUP2
0000108e: MSTORE
0000108f: PUSH1 0x20
00001091: ADD
00001092: SWAP1
00001093: DUP2
00001094: MSTORE
00001095: PUSH1 0x20
00001097: ADD
00001098: PUSH1 0x00
0000109a: KECCAK256
0000109b: PUSH1 0x00
0000109d: DUP5
0000109e: DUP2
0000109f: MSTORE
000010a0: PUSH1 0x20
000010a2: ADD
000010a3: SWAP1
000010a4: DUP2
000010a5: MSTORE
000010a6: PUSH1 0x20
000010a8: ADD
000010a9: PUSH1 0x00
000010ab: KECCAK256
000010ac: SWAP1
000010ad: POP
000010ae: PUSH1 0x00
000010b0: DUP2
000010b1: PUSH1 0x00
000010b3: ADD
000010b4: SLOAD
000010b5: SWAP1
000010b6: POP
000010b7: PUSH1 0x00
000010b9: DUP2
000010ba: EQ
000010bb: ISZERO
000010bc: PUSH2 0x10f1
000010bf: JUMPI
000010c0: PUSH1 0x40
000010c2: MLOAD
000010c3: PUSH32 0x43ad20fc00000000000000000000000000000000000000000000000000000000
000010e4: DUP2
000010e5: MSTORE
000010e6: PUSH1 0x04
000010e8: ADD
000010e9: PUSH1 0x40
000010eb: MLOAD
000010ec: DUP1
000010ed: SWAP2
000010ee: SUB
000010ef: SWAP1
000010f0: REVERT
000010f1: JUMPDEST
000010f2: DUP2
000010f3: PUSH1 0x00
000010f5: ADD
000010f6: SLOAD
000010f7: DUP4
000010f8: PUSH1 0x07
000010fa: ADD
000010fb: PUSH1 0x00
000010fd: DUP3
000010fe: DUP3
000010ff: SLOAD
00001100: PUSH2 0x1109
00001103: SWAP2
00001104: SWAP1
00001105: PUSH2 0x36fd
00001108: JUMP
00001109: JUMPDEST
0000110a: SWAP3
0000110b: POP
0000110c: POP
0000110d: DUP2
0000110e: SWAP1
0000110f: SSTORE
00001110: POP
00001111: PUSH1 0x00
00001113: DUP3
00001114: PUSH1 0x00
00001116: ADD
00001117: DUP2
00001118: SWAP1
00001119: SSTORE
0000111a: POP
0000111b: PUSH1 0x00
0000111d: DUP3
0000111e: PUSH1 0x01
00001120: ADD
00001121: DUP2
00001122: SWAP1
00001123: SSTORE
00001124: POP
00001125: PUSH1 0x00
00001127: PUSH1 0x6d
00001129: PUSH1 0x00
0000112b: CALLER
0000112c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001141: AND
00001142: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001157: AND
00001158: DUP2
00001159: MSTORE
0000115a: PUSH1 0x20
0000115c: ADD
0000115d: SWAP1
0000115e: DUP2
0000115f: MSTORE
00001160: PUSH1 0x20
00001162: ADD
00001163: PUSH1 0x00
00001165: KECCAK256
00001166: PUSH1 0x00
00001168: DUP7
00001169: DUP2
0000116a: MSTORE
0000116b: PUSH1 0x20
0000116d: ADD
0000116e: SWAP1
0000116f: DUP2
00001170: MSTORE
00001171: PUSH1 0x20
00001173: ADD
00001174: PUSH1 0x00
00001176: KECCAK256
00001177: DUP2
00001178: SWAP1
00001179: SSTORE
0000117a: POP
0000117b: PUSH2 0x11c9
0000117e: CALLER
0000117f: DUP3
00001180: DUP6
00001181: PUSH1 0x00
00001183: ADD
00001184: PUSH1 0x00
00001186: SWAP1
00001187: SLOAD
00001188: SWAP1
00001189: PUSH2 0x0100
0000118c: EXP
0000118d: SWAP1
0000118e: DIV
0000118f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011a4: AND
000011a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011ba: AND
000011bb: PUSH2 0x28a6
000011be: SWAP1
000011bf: SWAP3
000011c0: SWAP2
000011c1: SWAP1
000011c2: PUSH4 0xffffffff
000011c7: AND
000011c8: JUMP
000011c9: JUMPDEST
000011ca: CALLER
000011cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011e0: AND
000011e1: PUSH32 0x5fafa99d0643513820be26656b45130b01e1c03062e1266bf36f88cbd3bd9695
00001202: DUP3
00001203: PUSH1 0x40
00001205: MLOAD
00001206: PUSH2 0x120f
00001209: SWAP2
0000120a: SWAP1
0000120b: PUSH2 0x30ad
0000120e: JUMP
0000120f: JUMPDEST
00001210: PUSH1 0x40
00001212: MLOAD
00001213: DUP1
00001214: SWAP2
00001215: SUB
00001216: SWAP1
00001217: LOG2
00001218: POP
00001219: POP
0000121a: POP
0000121b: PUSH1 0x01
0000121d: PUSH1 0x67
0000121f: DUP2
00001220: SWAP1
00001221: SSTORE
00001222: POP
00001223: POP
00001224: JUMP
00001225: JUMPDEST
00001226: PUSH1 0x60
00001228: PUSH1 0x65
0000122a: DUP1
0000122b: SLOAD
0000122c: DUP1
0000122d: PUSH1 0x20
0000122f: MUL
00001230: PUSH1 0x20
00001232: ADD
00001233: PUSH1 0x40
00001235: MLOAD
00001236: SWAP1
00001237: DUP2
00001238: ADD
00001239: PUSH1 0x40
0000123b: MSTORE
0000123c: DUP1
0000123d: SWAP3
0000123e: SWAP2
0000123f: SWAP1
00001240: DUP2
00001241: DUP2
00001242: MSTORE
00001243: PUSH1 0x20
00001245: ADD
00001246: PUSH1 0x00
00001248: SWAP1
00001249: JUMPDEST
0000124a: DUP3
0000124b: DUP3
0000124c: LT
0000124d: ISZERO
0000124e: PUSH2 0x13c4
00001251: JUMPI
00001252: DUP4
00001253: DUP3
00001254: SWAP1
00001255: PUSH1 0x00
00001257: MSTORE
00001258: PUSH1 0x20
0000125a: PUSH1 0x00
0000125c: KECCAK256
0000125d: SWAP1
0000125e: PUSH1 0x0a
00001260: MUL
00001261: ADD
00001262: PUSH1 0x40
00001264: MLOAD
00001265: DUP1
00001266: PUSH2 0x0140
00001269: ADD
0000126a: PUSH1 0x40
0000126c: MSTORE
0000126d: SWAP1
0000126e: DUP2
0000126f: PUSH1 0x00
00001271: DUP3
00001272: ADD
00001273: PUSH1 0x00
00001275: SWAP1
00001276: SLOAD
00001277: SWAP1
00001278: PUSH2 0x0100
0000127b: EXP
0000127c: SWAP1
0000127d: DIV
0000127e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001293: AND
00001294: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012a9: AND
000012aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012bf: AND
000012c0: DUP2
000012c1: MSTORE
000012c2: PUSH1 0x20
000012c4: ADD
000012c5: PUSH1 0x01
000012c7: DUP3
000012c8: ADD
000012c9: PUSH1 0x00
000012cb: SWAP1
000012cc: SLOAD
000012cd: SWAP1
000012ce: PUSH2 0x0100
000012d1: EXP
000012d2: SWAP1
000012d3: DIV
000012d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012e9: AND
000012ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012ff: AND
00001300: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001315: AND
00001316: DUP2
00001317: MSTORE
00001318: PUSH1 0x20
0000131a: ADD
0000131b: PUSH1 0x02
0000131d: DUP3
0000131e: ADD
0000131f: SLOAD
00001320: DUP2
00001321: MSTORE
00001322: PUSH1 0x20
00001324: ADD
00001325: PUSH1 0x03
00001327: DUP3
00001328: ADD
00001329: SLOAD
0000132a: DUP2
0000132b: MSTORE
0000132c: PUSH1 0x20
0000132e: ADD
0000132f: PUSH1 0x04
00001331: DUP3
00001332: ADD
00001333: SLOAD
00001334: DUP2
00001335: MSTORE
00001336: PUSH1 0x20
00001338: ADD
00001339: PUSH1 0x05
0000133b: DUP3
0000133c: ADD
0000133d: SLOAD
0000133e: DUP2
0000133f: MSTORE
00001340: PUSH1 0x20
00001342: ADD
00001343: PUSH1 0x06
00001345: DUP3
00001346: ADD
00001347: SLOAD
00001348: DUP2
00001349: MSTORE
0000134a: PUSH1 0x20
0000134c: ADD
0000134d: PUSH1 0x07
0000134f: DUP3
00001350: ADD
00001351: SLOAD
00001352: DUP2
00001353: MSTORE
00001354: PUSH1 0x20
00001356: ADD
00001357: PUSH1 0x08
00001359: DUP3
0000135a: ADD
0000135b: SLOAD
0000135c: DUP2
0000135d: MSTORE
0000135e: PUSH1 0x20
00001360: ADD
00001361: PUSH1 0x09
00001363: DUP3
00001364: ADD
00001365: PUSH1 0x00
00001367: SWAP1
00001368: SLOAD
00001369: SWAP1
0000136a: PUSH2 0x0100
0000136d: EXP
0000136e: SWAP1
0000136f: DIV
00001370: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001385: AND
00001386: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000139b: AND
0000139c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013b1: AND
000013b2: DUP2
000013b3: MSTORE
000013b4: POP
000013b5: POP
000013b6: DUP2
000013b7: MSTORE
000013b8: PUSH1 0x20
000013ba: ADD
000013bb: SWAP1
000013bc: PUSH1 0x01
000013be: ADD
000013bf: SWAP1
000013c0: PUSH2 0x1249
000013c3: JUMP
000013c4: JUMPDEST
000013c5: POP
000013c6: POP
000013c7: POP
000013c8: POP
000013c9: SWAP1
000013ca: POP
000013cb: SWAP1
000013cc: JUMP
000013cd: JUMPDEST
000013ce: PUSH1 0x6a
000013d0: PUSH1 0x20
000013d2: MSTORE
000013d3: DUP1
000013d4: PUSH1 0x00
000013d6: MSTORE
000013d7: PUSH1 0x40
000013d9: PUSH1 0x00
000013db: KECCAK256
000013dc: PUSH1 0x00
000013de: SWAP2
000013df: POP
000013e0: SLOAD
000013e1: SWAP1
000013e2: PUSH2 0x0100
000013e5: EXP
000013e6: SWAP1
000013e7: DIV
000013e8: PUSH1 0xff
000013ea: AND
000013eb: DUP2
000013ec: JUMP
000013ed: JUMPDEST
000013ee: PUSH2 0x13f5
000013f1: PUSH2 0x295e
000013f4: JUMP
000013f5: JUMPDEST
000013f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000140b: AND
0000140c: PUSH2 0x1413
0000140f: PUSH2 0x1824
00001412: JUMP
00001413: JUMPDEST
00001414: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001429: AND
0000142a: EQ
0000142b: PUSH2 0x1469
0000142e: JUMPI
0000142f: PUSH1 0x40
00001431: MLOAD
00001432: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001453: DUP2
00001454: MSTORE
00001455: PUSH1 0x04
00001457: ADD
00001458: PUSH2 0x1460
0000145b: SWAP1
0000145c: PUSH2 0x388d
0000145f: JUMP
00001460: JUMPDEST
00001461: PUSH1 0x40
00001463: MLOAD
00001464: DUP1
00001465: SWAP2
00001466: SUB
00001467: SWAP1
00001468: REVERT
00001469: JUMPDEST
0000146a: PUSH2 0x1473
0000146d: PUSH1 0x00
0000146f: PUSH2 0x2966
00001472: JUMP
00001473: JUMPDEST
00001474: JUMP
00001475: JUMPDEST
00001476: PUSH2 0x147d
00001479: PUSH2 0x301c
0000147c: JUMP
0000147d: JUMPDEST
0000147e: PUSH1 0x66
00001480: PUSH1 0x00
00001482: DUP5
00001483: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001498: AND
00001499: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014ae: AND
000014af: DUP2
000014b0: MSTORE
000014b1: PUSH1 0x20
000014b3: ADD
000014b4: SWAP1
000014b5: DUP2
000014b6: MSTORE
000014b7: PUSH1 0x20
000014b9: ADD
000014ba: PUSH1 0x00
000014bc: KECCAK256
000014bd: PUSH1 0x00
000014bf: DUP4
000014c0: DUP2
000014c1: MSTORE
000014c2: PUSH1 0x20
000014c4: ADD
000014c5: SWAP1
000014c6: DUP2
000014c7: MSTORE
000014c8: PUSH1 0x20
000014ca: ADD
000014cb: PUSH1 0x00
000014cd: KECCAK256
000014ce: PUSH1 0x40
000014d0: MLOAD
000014d1: DUP1
000014d2: PUSH1 0x40
000014d4: ADD
000014d5: PUSH1 0x40
000014d7: MSTORE
000014d8: SWAP1
000014d9: DUP2
000014da: PUSH1 0x00
000014dc: DUP3
000014dd: ADD
000014de: SLOAD
000014df: DUP2
000014e0: MSTORE
000014e1: PUSH1 0x20
000014e3: ADD
000014e4: PUSH1 0x01
000014e6: DUP3
000014e7: ADD
000014e8: SLOAD
000014e9: DUP2
000014ea: MSTORE
000014eb: POP
000014ec: POP
000014ed: SWAP1
000014ee: POP
000014ef: SWAP3
000014f0: SWAP2
000014f1: POP
000014f2: POP
000014f3: JUMP
000014f4: JUMPDEST
000014f5: PUSH1 0x02
000014f7: PUSH1 0x67
000014f9: SLOAD
000014fa: EQ
000014fb: ISZERO
000014fc: PUSH2 0x153a
000014ff: JUMPI
00001500: PUSH1 0x40
00001502: MLOAD
00001503: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001524: DUP2
00001525: MSTORE
00001526: PUSH1 0x04
00001528: ADD
00001529: PUSH2 0x1531
0000152c: SWAP1
0000152d: PUSH2 0x36ae
00001530: JUMP
00001531: JUMPDEST
00001532: PUSH1 0x40
00001534: MLOAD
00001535: DUP1
00001536: SWAP2
00001537: SUB
00001538: SWAP1
00001539: REVERT
0000153a: JUMPDEST
0000153b: PUSH1 0x02
0000153d: PUSH1 0x67
0000153f: DUP2
00001540: SWAP1
00001541: SSTORE
00001542: POP
00001543: PUSH2 0x154b
00001546: DUP2
00001547: PUSH2 0x0dfa
0000154a: JUMP
0000154b: JUMPDEST
0000154c: PUSH1 0x00
0000154e: PUSH1 0x65
00001550: DUP3
00001551: DUP2
00001552: SLOAD
00001553: DUP2
00001554: LT
00001555: PUSH2 0x1561
00001558: JUMPI
00001559: PUSH2 0x1560
0000155c: PUSH2 0x35f9
0000155f: JUMP
00001560: JUMPDEST
00001561: JUMPDEST
00001562: SWAP1
00001563: PUSH1 0x00
00001565: MSTORE
00001566: PUSH1 0x20
00001568: PUSH1 0x00
0000156a: KECCAK256
0000156b: SWAP1
0000156c: PUSH1 0x0a
0000156e: MUL
0000156f: ADD
00001570: SWAP1
00001571: POP
00001572: PUSH1 0x00
00001574: DUP2
00001575: PUSH1 0x09
00001577: ADD
00001578: PUSH1 0x00
0000157a: SWAP1
0000157b: SLOAD
0000157c: SWAP1
0000157d: PUSH2 0x0100
00001580: EXP
00001581: SWAP1
00001582: DIV
00001583: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001598: AND
00001599: SWAP1
0000159a: POP
0000159b: CALLER
0000159c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015b1: AND
000015b2: DUP2
000015b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000015c8: AND
000015c9: EQ
000015ca: PUSH2 0x160c
000015cd: JUMPI
000015ce: DUP1
000015cf: CALLER
000015d0: PUSH1 0x40
000015d2: MLOAD
000015d3: PUSH32 0x15a39f3500000000000000000000000000000000000000000000000000000000
000015f4: DUP2
000015f5: MSTORE
000015f6: PUSH1 0x04
000015f8: ADD
000015f9: PUSH2 0x1603
000015fc: SWAP3
000015fd: SWAP2
000015fe: SWAP1
000015ff: PUSH2 0x3628
00001602: JUMP
00001603: JUMPDEST
00001604: PUSH1 0x40
00001606: MLOAD
00001607: DUP1
00001608: SWAP2
00001609: SUB
0000160a: SWAP1
0000160b: REVERT
0000160c: JUMPDEST
0000160d: PUSH1 0x00
0000160f: DUP3
00001610: PUSH1 0x05
00001612: ADD
00001613: SLOAD
00001614: SWAP1
00001615: POP
00001616: TIMESTAMP
00001617: DUP2
00001618: GT
00001619: PUSH2 0x164e
0000161c: JUMPI
0000161d: PUSH1 0x40
0000161f: MLOAD
00001620: PUSH32 0xba56b90400000000000000000000000000000000000000000000000000000000
00001641: DUP2
00001642: MSTORE
00001643: PUSH1 0x04
00001645: ADD
00001646: PUSH1 0x40
00001648: MLOAD
00001649: DUP1
0000164a: SWAP2
0000164b: SUB
0000164c: SWAP1
0000164d: REVERT
0000164e: JUMPDEST
0000164f: PUSH1 0x00
00001651: DUP4
00001652: PUSH1 0x04
00001654: ADD
00001655: SLOAD
00001656: SWAP1
00001657: POP
00001658: TIMESTAMP
00001659: DUP2
0000165a: LT
0000165b: DUP1
0000165c: ISZERO
0000165d: PUSH2 0x1672
00001660: JUMPI
00001661: POP
00001662: PUSH2 0x0e10
00001665: DUP2
00001666: DUP4
00001667: PUSH2 0x1670
0000166a: SWAP2
0000166b: SWAP1
0000166c: PUSH2 0x36fd
0000166f: JUMP
00001670: JUMPDEST
00001671: LT
00001672: JUMPDEST
00001673: ISZERO
00001674: PUSH2 0x16a9
00001677: JUMPI
00001678: PUSH1 0x40
0000167a: MLOAD
0000167b: PUSH32 0xb2ef032800000000000000000000000000000000000000000000000000000000
0000169c: DUP2
0000169d: MSTORE
0000169e: PUSH1 0x04
000016a0: ADD
000016a1: PUSH1 0x40
000016a3: MLOAD
000016a4: DUP1
000016a5: SWAP2
000016a6: SUB
000016a7: SWAP1
000016a8: REVERT
000016a9: JUMPDEST
000016aa: TIMESTAMP
000016ab: DUP5
000016ac: PUSH1 0x05
000016ae: ADD
000016af: DUP2
000016b0: SWAP1
000016b1: SSTORE
000016b2: POP
000016b3: PUSH2 0x173a
000016b6: DUP4
000016b7: DUP3
000016b8: DUP5
000016b9: PUSH2 0x16c2
000016bc: SWAP2
000016bd: SWAP1
000016be: PUSH2 0x36fd
000016c1: JUMP
000016c2: JUMPDEST
000016c3: DUP7
000016c4: PUSH1 0x08
000016c6: ADD
000016c7: SLOAD
000016c8: PUSH2 0x16d1
000016cb: TIMESTAMP
000016cc: DUP7
000016cd: PUSH2 0x292c
000016d0: JUMP
000016d1: JUMPDEST
000016d2: DUP7
000016d3: PUSH2 0x16dc
000016d6: SWAP2
000016d7: SWAP1
000016d8: PUSH2 0x36fd
000016db: JUMP
000016dc: JUMPDEST
000016dd: PUSH2 0x16e6
000016e0: SWAP2
000016e1: SWAP1
000016e2: PUSH2 0x3731
000016e5: JUMP
000016e6: JUMPDEST
000016e7: PUSH2 0x16f0
000016ea: SWAP2
000016eb: SWAP1
000016ec: PUSH2 0x37ba
000016ef: JUMP
000016f0: JUMPDEST
000016f1: DUP7
000016f2: PUSH1 0x01
000016f4: ADD
000016f5: PUSH1 0x00
000016f7: SWAP1
000016f8: SLOAD
000016f9: SWAP1
000016fa: PUSH2 0x0100
000016fd: EXP
000016fe: SWAP1
000016ff: DIV
00001700: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001715: AND
00001716: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000172b: AND
0000172c: PUSH2 0x28a6
0000172f: SWAP1
00001730: SWAP3
00001731: SWAP2
00001732: SWAP1
00001733: PUSH4 0xffffffff
00001738: AND
00001739: JUMP
0000173a: JUMPDEST
0000173b: PUSH32 0xc2c6bc4b1942f09f130e276e73f6b1242d5ee60f65446bdc726ae019e13a4821
0000175c: DUP6
0000175d: PUSH1 0x40
0000175f: MLOAD
00001760: PUSH2 0x1769
00001763: SWAP2
00001764: SWAP1
00001765: PUSH2 0x30ad
00001768: JUMP
00001769: JUMPDEST
0000176a: PUSH1 0x40
0000176c: MLOAD
0000176d: DUP1
0000176e: SWAP2
0000176f: SUB
00001770: SWAP1
00001771: LOG1
00001772: POP
00001773: POP
00001774: POP
00001775: POP
00001776: PUSH1 0x01
00001778: PUSH1 0x67
0000177a: DUP2
0000177b: SWAP1
0000177c: SSTORE
0000177d: POP
0000177e: POP
0000177f: JUMP
00001780: JUMPDEST
00001781: PUSH1 0x00
00001783: PUSH2 0x178c
00001786: PUSH1 0x01
00001788: PUSH2 0x2a2c
0000178b: JUMP
0000178c: JUMPDEST
0000178d: SWAP1
0000178e: POP
0000178f: DUP1
00001790: ISZERO
00001791: PUSH2 0x17b0
00001794: JUMPI
00001795: PUSH1 0x01
00001797: PUSH1 0x00
00001799: PUSH1 0x01
0000179b: PUSH2 0x0100
0000179e: EXP
0000179f: DUP2
000017a0: SLOAD
000017a1: DUP2
000017a2: PUSH1 0xff
000017a4: MUL
000017a5: NOT
000017a6: AND
000017a7: SWAP1
000017a8: DUP4
000017a9: ISZERO
000017aa: ISZERO
000017ab: MUL
000017ac: OR
000017ad: SWAP1
000017ae: SSTORE
000017af: POP
000017b0: JUMPDEST
000017b1: PUSH2 0x17b8
000017b4: PUSH2 0x2b1c
000017b7: JUMP
000017b8: JUMPDEST
000017b9: PUSH1 0x01
000017bb: PUSH1 0x67
000017bd: DUP2
000017be: SWAP1
000017bf: SSTORE
000017c0: POP
000017c1: PUSH1 0x02
000017c3: PUSH1 0x68
000017c5: DUP2
000017c6: SWAP1
000017c7: SSTORE
000017c8: POP
000017c9: DUP1
000017ca: ISZERO
000017cb: PUSH2 0x1821
000017ce: JUMPI
000017cf: PUSH1 0x00
000017d1: DUP1
000017d2: PUSH1 0x01
000017d4: PUSH2 0x0100
000017d7: EXP
000017d8: DUP2
000017d9: SLOAD
000017da: DUP2
000017db: PUSH1 0xff
000017dd: MUL
000017de: NOT
000017df: AND
000017e0: SWAP1
000017e1: DUP4
000017e2: ISZERO
000017e3: ISZERO
000017e4: MUL
000017e5: OR
000017e6: SWAP1
000017e7: SSTORE
000017e8: POP
000017e9: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498
0000180a: PUSH1 0x01
0000180c: PUSH1 0x40
0000180e: MLOAD
0000180f: PUSH2 0x1818
00001812: SWAP2
00001813: SWAP1
00001814: PUSH2 0x38f5
00001817: JUMP
00001818: JUMPDEST
00001819: PUSH1 0x40
0000181b: MLOAD
0000181c: DUP1
0000181d: SWAP2
0000181e: SUB
0000181f: SWAP1
00001820: LOG1
00001821: JUMPDEST
00001822: POP
00001823: JUMP
00001824: JUMPDEST
00001825: PUSH1 0x00
00001827: PUSH1 0x33
00001829: PUSH1 0x00
0000182b: SWAP1
0000182c: SLOAD
0000182d: SWAP1
0000182e: PUSH2 0x0100
00001831: EXP
00001832: SWAP1
00001833: DIV
00001834: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001849: AND
0000184a: SWAP1
0000184b: POP
0000184c: SWAP1
0000184d: JUMP
0000184e: JUMPDEST
0000184f: PUSH1 0x6d
00001851: PUSH1 0x20
00001853: MSTORE
00001854: DUP2
00001855: PUSH1 0x00
00001857: MSTORE
00001858: PUSH1 0x40
0000185a: PUSH1 0x00
0000185c: KECCAK256
0000185d: PUSH1 0x20
0000185f: MSTORE
00001860: DUP1
00001861: PUSH1 0x00
00001863: MSTORE
00001864: PUSH1 0x40
00001866: PUSH1 0x00
00001868: KECCAK256
00001869: PUSH1 0x00
0000186b: SWAP2
0000186c: POP
0000186d: SWAP2
0000186e: POP
0000186f: POP
00001870: SLOAD
00001871: DUP2
00001872: JUMP
00001873: JUMPDEST
00001874: PUSH1 0x68
00001876: SLOAD
00001877: DUP2
00001878: JUMP
00001879: JUMPDEST
0000187a: PUSH2 0x1881
0000187d: PUSH2 0x295e
00001880: JUMP
00001881: JUMPDEST
00001882: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001897: AND
00001898: PUSH2 0x189f
0000189b: PUSH2 0x1824
0000189e: JUMP
0000189f: JUMPDEST
000018a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018b5: AND
000018b6: EQ
000018b7: PUSH2 0x18f5
000018ba: JUMPI
000018bb: PUSH1 0x40
000018bd: MLOAD
000018be: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000018df: DUP2
000018e0: MSTORE
000018e1: PUSH1 0x04
000018e3: ADD
000018e4: PUSH2 0x18ec
000018e7: SWAP1
000018e8: PUSH2 0x388d
000018eb: JUMP
000018ec: JUMPDEST
000018ed: PUSH1 0x40
000018ef: MLOAD
000018f0: DUP1
000018f1: SWAP2
000018f2: SUB
000018f3: SWAP1
000018f4: REVERT
000018f5: JUMPDEST
000018f6: DUP1
000018f7: PUSH1 0x68
000018f9: DUP2
000018fa: SWAP1
000018fb: SSTORE
000018fc: POP
000018fd: POP
000018fe: JUMP
000018ff: JUMPDEST
00001900: PUSH1 0x02
00001902: PUSH1 0x67
00001904: SLOAD
00001905: EQ
00001906: ISZERO
00001907: PUSH2 0x1945
0000190a: JUMPI
0000190b: PUSH1 0x40
0000190d: MLOAD
0000190e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000192f: DUP2
00001930: MSTORE
00001931: PUSH1 0x04
00001933: ADD
00001934: PUSH2 0x193c
00001937: SWAP1
00001938: PUSH2 0x36ae
0000193b: JUMP
0000193c: JUMPDEST
0000193d: PUSH1 0x40
0000193f: MLOAD
00001940: DUP1
00001941: SWAP2
00001942: SUB
00001943: SWAP1
00001944: REVERT
00001945: JUMPDEST
00001946: PUSH1 0x02
00001948: PUSH1 0x67
0000194a: DUP2
0000194b: SWAP1
0000194c: SSTORE
0000194d: POP
0000194e: PUSH1 0x65
00001950: DUP1
00001951: SLOAD
00001952: SWAP1
00001953: POP
00001954: DUP2
00001955: LT
00001956: PUSH2 0x1996
00001959: JUMPI
0000195a: DUP1
0000195b: PUSH1 0x40
0000195d: MLOAD
0000195e: PUSH32 0x1e657b1d00000000000000000000000000000000000000000000000000000000
0000197f: DUP2
00001980: MSTORE
00001981: PUSH1 0x04
00001983: ADD
00001984: PUSH2 0x198d
00001987: SWAP2
00001988: SWAP1
00001989: PUSH2 0x30ad
0000198c: JUMP
0000198d: JUMPDEST
0000198e: PUSH1 0x40
00001990: MLOAD
00001991: DUP1
00001992: SWAP2
00001993: SUB
00001994: SWAP1
00001995: REVERT
00001996: JUMPDEST
00001997: PUSH1 0x00
00001999: PUSH1 0x65
0000199b: DUP3
0000199c: DUP2
0000199d: SLOAD
0000199e: DUP2
0000199f: LT
000019a0: PUSH2 0x19ac
000019a3: JUMPI
000019a4: PUSH2 0x19ab
000019a7: PUSH2 0x35f9
000019aa: JUMP
000019ab: JUMPDEST
000019ac: JUMPDEST
000019ad: SWAP1
000019ae: PUSH1 0x00
000019b0: MSTORE
000019b1: PUSH1 0x20
000019b3: PUSH1 0x00
000019b5: KECCAK256
000019b6: SWAP1
000019b7: PUSH1 0x0a
000019b9: MUL
000019ba: ADD
000019bb: SWAP1
000019bc: POP
000019bd: DUP1
000019be: PUSH1 0x05
000019c0: ADD
000019c1: SLOAD
000019c2: TIMESTAMP
000019c3: LT
000019c4: ISZERO
000019c5: PUSH2 0x19fa
000019c8: JUMPI
000019c9: PUSH1 0x40
000019cb: MLOAD
000019cc: PUSH32 0x4614779a00000000000000000000000000000000000000000000000000000000
000019ed: DUP2
000019ee: MSTORE
000019ef: PUSH1 0x04
000019f1: ADD
000019f2: PUSH1 0x40
000019f4: MLOAD
000019f5: DUP1
000019f6: SWAP2
000019f7: SUB
000019f8: SWAP1
000019f9: REVERT
000019fa: JUMPDEST
000019fb: PUSH1 0x00
000019fd: PUSH1 0x66
000019ff: PUSH1 0x00
00001a01: CALLER
00001a02: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a17: AND
00001a18: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a2d: AND
00001a2e: DUP2
00001a2f: MSTORE
00001a30: PUSH1 0x20
00001a32: ADD
00001a33: SWAP1
00001a34: DUP2
00001a35: MSTORE
00001a36: PUSH1 0x20
00001a38: ADD
00001a39: PUSH1 0x00
00001a3b: KECCAK256
00001a3c: PUSH1 0x00
00001a3e: DUP5
00001a3f: DUP2
00001a40: MSTORE
00001a41: PUSH1 0x20
00001a43: ADD
00001a44: SWAP1
00001a45: DUP2
00001a46: MSTORE
00001a47: PUSH1 0x20
00001a49: ADD
00001a4a: PUSH1 0x00
00001a4c: KECCAK256
00001a4d: SWAP1
00001a4e: POP
00001a4f: PUSH2 0x1a57
00001a52: DUP4
00001a53: PUSH2 0x0dfa
00001a56: JUMP
00001a57: JUMPDEST
00001a58: PUSH1 0x00
00001a5a: DUP3
00001a5b: PUSH1 0x03
00001a5d: ADD
00001a5e: SLOAD
00001a5f: SWAP1
00001a60: POP
00001a61: PUSH1 0x00
00001a63: PUSH1 0x6d
00001a65: PUSH1 0x00
00001a67: CALLER
00001a68: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a7d: AND
00001a7e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a93: AND
00001a94: DUP2
00001a95: MSTORE
00001a96: PUSH1 0x20
00001a98: ADD
00001a99: SWAP1
00001a9a: DUP2
00001a9b: MSTORE
00001a9c: PUSH1 0x20
00001a9e: ADD
00001a9f: PUSH1 0x00
00001aa1: KECCAK256
00001aa2: PUSH1 0x00
00001aa4: DUP7
00001aa5: DUP2
00001aa6: MSTORE
00001aa7: PUSH1 0x20
00001aa9: ADD
00001aaa: SWAP1
00001aab: DUP2
00001aac: MSTORE
00001aad: PUSH1 0x20
00001aaf: ADD
00001ab0: PUSH1 0x00
00001ab2: KECCAK256
00001ab3: SLOAD
00001ab4: DUP4
00001ab5: PUSH1 0x01
00001ab7: ADD
00001ab8: SLOAD
00001ab9: DUP6
00001aba: PUSH1 0x06
00001abc: ADD
00001abd: SLOAD
00001abe: DUP5
00001abf: DUP7
00001ac0: PUSH1 0x00
00001ac2: ADD
00001ac3: SLOAD
00001ac4: PUSH2 0x1acd
00001ac7: SWAP2
00001ac8: SWAP1
00001ac9: PUSH2 0x3731
00001acc: JUMP
00001acd: JUMPDEST
00001ace: PUSH2 0x1ad7
00001ad1: SWAP2
00001ad2: SWAP1
00001ad3: PUSH2 0x37ba
00001ad6: JUMP
00001ad7: JUMPDEST
00001ad8: PUSH2 0x1ae1
00001adb: SWAP2
00001adc: SWAP1
00001add: PUSH2 0x36fd
00001ae0: JUMP
00001ae1: JUMPDEST
00001ae2: PUSH2 0x1aeb
00001ae5: SWAP2
00001ae6: SWAP1
00001ae7: PUSH2 0x37eb
00001aea: JUMP
00001aeb: JUMPDEST
00001aec: SWAP1
00001aed: POP
00001aee: DUP4
00001aef: PUSH1 0x06
00001af1: ADD
00001af2: SLOAD
00001af3: DUP3
00001af4: DUP5
00001af5: PUSH1 0x00
00001af7: ADD
00001af8: SLOAD
00001af9: PUSH2 0x1b02
00001afc: SWAP2
00001afd: SWAP1
00001afe: PUSH2 0x3731
00001b01: JUMP
00001b02: JUMPDEST
00001b03: PUSH2 0x1b0c
00001b06: SWAP2
00001b07: SWAP1
00001b08: PUSH2 0x37ba
00001b0b: JUMP
00001b0c: JUMPDEST
00001b0d: DUP4
00001b0e: PUSH1 0x01
00001b10: ADD
00001b11: DUP2
00001b12: SWAP1
00001b13: SSTORE
00001b14: POP
00001b15: PUSH1 0x00
00001b17: PUSH1 0x6d
00001b19: PUSH1 0x00
00001b1b: CALLER
00001b1c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b31: AND
00001b32: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b47: AND
00001b48: DUP2
00001b49: MSTORE
00001b4a: PUSH1 0x20
00001b4c: ADD
00001b4d: SWAP1
00001b4e: DUP2
00001b4f: MSTORE
00001b50: PUSH1 0x20
00001b52: ADD
00001b53: PUSH1 0x00
00001b55: KECCAK256
00001b56: PUSH1 0x00
00001b58: DUP8
00001b59: DUP2
00001b5a: MSTORE
00001b5b: PUSH1 0x20
00001b5d: ADD
00001b5e: SWAP1
00001b5f: DUP2
00001b60: MSTORE
00001b61: PUSH1 0x20
00001b63: ADD
00001b64: PUSH1 0x00
00001b66: KECCAK256
00001b67: DUP2
00001b68: SWAP1
00001b69: SSTORE
00001b6a: POP
00001b6b: PUSH1 0x00
00001b6d: DUP2
00001b6e: GT
00001b6f: ISZERO
00001b70: PUSH2 0x1c13
00001b73: JUMPI
00001b74: PUSH2 0x1bc2
00001b77: CALLER
00001b78: DUP3
00001b79: DUP7
00001b7a: PUSH1 0x01
00001b7c: ADD
00001b7d: PUSH1 0x00
00001b7f: SWAP1
00001b80: SLOAD
00001b81: SWAP1
00001b82: PUSH2 0x0100
00001b85: EXP
00001b86: SWAP1
00001b87: DIV
00001b88: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b9d: AND
00001b9e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bb3: AND
00001bb4: PUSH2 0x28a6
00001bb7: SWAP1
00001bb8: SWAP3
00001bb9: SWAP2
00001bba: SWAP1
00001bbb: PUSH4 0xffffffff
00001bc0: AND
00001bc1: JUMP
00001bc2: JUMPDEST
00001bc3: CALLER
00001bc4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001bd9: AND
00001bda: PUSH32 0x34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf7
00001bfb: DUP3
00001bfc: DUP8
00001bfd: PUSH1 0x40
00001bff: MLOAD
00001c00: PUSH2 0x1c0a
00001c03: SWAP3
00001c04: SWAP2
00001c05: SWAP1
00001c06: PUSH2 0x32b0
00001c09: JUMP
00001c0a: JUMPDEST
00001c0b: PUSH1 0x40
00001c0d: MLOAD
00001c0e: DUP1
00001c0f: SWAP2
00001c10: SUB
00001c11: SWAP1
00001c12: LOG2
00001c13: JUMPDEST
00001c14: POP
00001c15: POP
00001c16: POP
00001c17: POP
00001c18: PUSH1 0x01
00001c1a: PUSH1 0x67
00001c1c: DUP2
00001c1d: SWAP1
00001c1e: SSTORE
00001c1f: POP
00001c20: POP
00001c21: JUMP
00001c22: JUMPDEST
00001c23: PUSH1 0x00
00001c25: PUSH1 0x65
00001c27: DUP1
00001c28: SLOAD
00001c29: SWAP1
00001c2a: POP
00001c2b: SWAP1
00001c2c: POP
00001c2d: SWAP1
00001c2e: JUMP
00001c2f: JUMPDEST
00001c30: PUSH1 0x69
00001c32: PUSH1 0x00
00001c34: SWAP1
00001c35: SLOAD
00001c36: SWAP1
00001c37: PUSH2 0x0100
00001c3a: EXP
00001c3b: SWAP1
00001c3c: DIV
00001c3d: PUSH1 0xff
00001c3f: AND
00001c40: ISZERO
00001c41: PUSH2 0x1c7f
00001c44: JUMPI
00001c45: PUSH1 0x40
00001c47: MLOAD
00001c48: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001c69: DUP2
00001c6a: MSTORE
00001c6b: PUSH1 0x04
00001c6d: ADD
00001c6e: PUSH2 0x1c76
00001c71: SWAP1
00001c72: PUSH2 0x395c
00001c75: JUMP
00001c76: JUMPDEST
00001c77: PUSH1 0x40
00001c79: MLOAD
00001c7a: DUP1
00001c7b: SWAP2
00001c7c: SUB
00001c7d: SWAP1
00001c7e: REVERT
00001c7f: JUMPDEST
00001c80: PUSH1 0x01
00001c82: PUSH1 0x69
00001c84: PUSH1 0x00
00001c86: PUSH2 0x0100
00001c89: EXP
00001c8a: DUP2
00001c8b: SLOAD
00001c8c: DUP2
00001c8d: PUSH1 0xff
00001c8f: MUL
00001c90: NOT
00001c91: AND
00001c92: SWAP1
00001c93: DUP4
00001c94: ISZERO
00001c95: ISZERO
00001c96: MUL
00001c97: OR
00001c98: SWAP1
00001c99: SSTORE
00001c9a: POP
00001c9b: PUSH1 0x02
00001c9d: PUSH1 0x68
00001c9f: DUP2
00001ca0: SWAP1
00001ca1: SSTORE
00001ca2: POP
00001ca3: PUSH1 0x01
00001ca5: PUSH1 0x67
00001ca7: DUP2
00001ca8: SWAP1
00001ca9: SSTORE
00001caa: POP
00001cab: JUMP
00001cac: JUMPDEST
00001cad: PUSH1 0x02
00001caf: PUSH1 0x67
00001cb1: SLOAD
00001cb2: EQ
00001cb3: ISZERO
00001cb4: PUSH2 0x1cf2
00001cb7: JUMPI
00001cb8: PUSH1 0x40
00001cba: MLOAD
00001cbb: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001cdc: DUP2
00001cdd: MSTORE
00001cde: PUSH1 0x04
00001ce0: ADD
00001ce1: PUSH2 0x1ce9
00001ce4: SWAP1
00001ce5: PUSH2 0x36ae
00001ce8: JUMP
00001ce9: JUMPDEST
00001cea: PUSH1 0x40
00001cec: MLOAD
00001ced: DUP1
00001cee: SWAP2
00001cef: SUB
00001cf0: SWAP1
00001cf1: REVERT
00001cf2: JUMPDEST
00001cf3: PUSH1 0x02
00001cf5: PUSH1 0x67
00001cf7: DUP2
00001cf8: SWAP1
00001cf9: SSTORE
00001cfa: POP
00001cfb: PUSH1 0x00
00001cfd: DUP3
00001cfe: EQ
00001cff: ISZERO
00001d00: PUSH2 0x1d35
00001d03: JUMPI
00001d04: PUSH1 0x40
00001d06: MLOAD
00001d07: PUSH32 0x43ad20fc00000000000000000000000000000000000000000000000000000000
00001d28: DUP2
00001d29: MSTORE
00001d2a: PUSH1 0x04
00001d2c: ADD
00001d2d: PUSH1 0x40
00001d2f: MLOAD
00001d30: DUP1
00001d31: SWAP2
00001d32: SUB
00001d33: SWAP1
00001d34: REVERT
00001d35: JUMPDEST
00001d36: PUSH1 0x65
00001d38: DUP1
00001d39: SLOAD
00001d3a: SWAP1
00001d3b: POP
00001d3c: DUP2
00001d3d: LT
00001d3e: PUSH2 0x1d7e
00001d41: JUMPI
00001d42: DUP1
00001d43: PUSH1 0x40
00001d45: MLOAD
00001d46: PUSH32 0x1e657b1d00000000000000000000000000000000000000000000000000000000
00001d67: DUP2
00001d68: MSTORE
00001d69: PUSH1 0x04
00001d6b: ADD
00001d6c: PUSH2 0x1d75
00001d6f: SWAP2
00001d70: SWAP1
00001d71: PUSH2 0x30ad
00001d74: JUMP
00001d75: JUMPDEST
00001d76: PUSH1 0x40
00001d78: MLOAD
00001d79: DUP1
00001d7a: SWAP2
00001d7b: SUB
00001d7c: SWAP1
00001d7d: REVERT
00001d7e: JUMPDEST
00001d7f: PUSH1 0x00
00001d81: PUSH1 0x65
00001d83: DUP3
00001d84: DUP2
00001d85: SLOAD
00001d86: DUP2
00001d87: LT
00001d88: PUSH2 0x1d94
00001d8b: JUMPI
00001d8c: PUSH2 0x1d93
00001d8f: PUSH2 0x35f9
00001d92: JUMP
00001d93: JUMPDEST
00001d94: JUMPDEST
00001d95: SWAP1
00001d96: PUSH1 0x00
00001d98: MSTORE
00001d99: PUSH1 0x20
00001d9b: PUSH1 0x00
00001d9d: KECCAK256
00001d9e: SWAP1
00001d9f: PUSH1 0x0a
00001da1: MUL
00001da2: ADD
00001da3: SWAP1
00001da4: POP
00001da5: PUSH1 0x6c
00001da7: PUSH1 0x00
00001da9: DUP4
00001daa: DUP2
00001dab: MSTORE
00001dac: PUSH1 0x20
00001dae: ADD
00001daf: SWAP1
00001db0: DUP2
00001db1: MSTORE
00001db2: PUSH1 0x20
00001db4: ADD
00001db5: PUSH1 0x00
00001db7: KECCAK256
00001db8: SLOAD
00001db9: DUP4
00001dba: DUP3
00001dbb: PUSH1 0x07
00001dbd: ADD
00001dbe: SLOAD
00001dbf: PUSH2 0x1dc8
00001dc2: SWAP2
00001dc3: SWAP1
00001dc4: PUSH2 0x37eb
00001dc7: JUMP
00001dc8: JUMPDEST
00001dc9: GT
00001dca: DUP1
00001dcb: ISZERO
00001dcc: PUSH2 0x1de8
00001dcf: JUMPI
00001dd0: POP
00001dd1: PUSH1 0x00
00001dd3: PUSH1 0x6c
00001dd5: PUSH1 0x00
00001dd7: DUP5
00001dd8: DUP2
00001dd9: MSTORE
00001dda: PUSH1 0x20
00001ddc: ADD
00001ddd: SWAP1
00001dde: DUP2
00001ddf: MSTORE
00001de0: PUSH1 0x20
00001de2: ADD
00001de3: PUSH1 0x00
00001de5: KECCAK256
00001de6: SLOAD
00001de7: GT
00001de8: JUMPDEST
00001de9: ISZERO
00001dea: PUSH2 0x1e3d
00001ded: JUMPI
00001dee: PUSH1 0x6c
00001df0: PUSH1 0x00
00001df2: DUP4
00001df3: DUP2
00001df4: MSTORE
00001df5: PUSH1 0x20
00001df7: ADD
00001df8: SWAP1
00001df9: DUP2
00001dfa: MSTORE
00001dfb: PUSH1 0x20
00001dfd: ADD
00001dfe: PUSH1 0x00
00001e00: KECCAK256
00001e01: SLOAD
00001e02: PUSH1 0x40
00001e04: MLOAD
00001e05: PUSH32 0x8c5402b500000000000000000000000000000000000000000000000000000000
00001e26: DUP2
00001e27: MSTORE
00001e28: PUSH1 0x04
00001e2a: ADD
00001e2b: PUSH2 0x1e34
00001e2e: SWAP2
00001e2f: SWAP1
00001e30: PUSH2 0x30ad
00001e33: JUMP
00001e34: JUMPDEST
00001e35: PUSH1 0x40
00001e37: MLOAD
00001e38: DUP1
00001e39: SWAP2
00001e3a: SUB
00001e3b: SWAP1
00001e3c: REVERT
00001e3d: JUMPDEST
00001e3e: PUSH1 0x00
00001e40: PUSH1 0x66
00001e42: PUSH1 0x00
00001e44: CALLER
00001e45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e5a: AND
00001e5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e70: AND
00001e71: DUP2
00001e72: MSTORE
00001e73: PUSH1 0x20
00001e75: ADD
00001e76: SWAP1
00001e77: DUP2
00001e78: MSTORE
00001e79: PUSH1 0x20
00001e7b: ADD
00001e7c: PUSH1 0x00
00001e7e: KECCAK256
00001e7f: PUSH1 0x00
00001e81: DUP5
00001e82: DUP2
00001e83: MSTORE
00001e84: PUSH1 0x20
00001e86: ADD
00001e87: SWAP1
00001e88: DUP2
00001e89: MSTORE
00001e8a: PUSH1 0x20
00001e8c: ADD
00001e8d: PUSH1 0x00
00001e8f: KECCAK256
00001e90: SWAP1
00001e91: POP
00001e92: PUSH2 0x1e9a
00001e95: DUP4
00001e96: PUSH2 0x0dfa
00001e99: JUMP
00001e9a: JUMPDEST
00001e9b: PUSH1 0x00
00001e9d: DUP2
00001e9e: PUSH1 0x00
00001ea0: ADD
00001ea1: SLOAD
00001ea2: GT
00001ea3: ISZERO
00001ea4: PUSH2 0x1f40
00001ea7: JUMPI
00001ea8: DUP1
00001ea9: PUSH1 0x01
00001eab: ADD
00001eac: SLOAD
00001ead: DUP3
00001eae: PUSH1 0x06
00001eb0: ADD
00001eb1: SLOAD
00001eb2: DUP4
00001eb3: PUSH1 0x03
00001eb5: ADD
00001eb6: SLOAD
00001eb7: DUP4
00001eb8: PUSH1 0x00
00001eba: ADD
00001ebb: SLOAD
00001ebc: PUSH2 0x1ec5
00001ebf: SWAP2
00001ec0: SWAP1
00001ec1: PUSH2 0x3731
00001ec4: JUMP
00001ec5: JUMPDEST
00001ec6: PUSH2 0x1ecf
00001ec9: SWAP2
00001eca: SWAP1
00001ecb: PUSH2 0x37ba
00001ece: JUMP
00001ecf: JUMPDEST
00001ed0: PUSH2 0x1ed9
00001ed3: SWAP2
00001ed4: SWAP1
00001ed5: PUSH2 0x36fd
00001ed8: JUMP
00001ed9: JUMPDEST
00001eda: PUSH1 0x6d
00001edc: PUSH1 0x00
00001ede: CALLER
00001edf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ef4: AND
00001ef5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f0a: AND
00001f0b: DUP2
00001f0c: MSTORE
00001f0d: PUSH1 0x20
00001f0f: ADD
00001f10: SWAP1
00001f11: DUP2
00001f12: MSTORE
00001f13: PUSH1 0x20
00001f15: ADD
00001f16: PUSH1 0x00
00001f18: KECCAK256
00001f19: PUSH1 0x00
00001f1b: DUP6
00001f1c: DUP2
00001f1d: MSTORE
00001f1e: PUSH1 0x20
00001f20: ADD
00001f21: SWAP1
00001f22: DUP2
00001f23: MSTORE
00001f24: PUSH1 0x20
00001f26: ADD
00001f27: PUSH1 0x00
00001f29: KECCAK256
00001f2a: PUSH1 0x00
00001f2c: DUP3
00001f2d: DUP3
00001f2e: SLOAD
00001f2f: PUSH2 0x1f38
00001f32: SWAP2
00001f33: SWAP1
00001f34: PUSH2 0x37eb
00001f37: JUMP
00001f38: JUMPDEST
00001f39: SWAP3
00001f3a: POP
00001f3b: POP
00001f3c: DUP2
00001f3d: SWAP1
00001f3e: SSTORE
00001f3f: POP
00001f40: JUMPDEST
00001f41: PUSH1 0x00
00001f43: PUSH2 0x1f70
00001f46: DUP4
00001f47: PUSH1 0x00
00001f49: ADD
00001f4a: PUSH1 0x00
00001f4c: SWAP1
00001f4d: SLOAD
00001f4e: SWAP1
00001f4f: PUSH2 0x0100
00001f52: EXP
00001f53: SWAP1
00001f54: DIV
00001f55: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001f6a: AND
00001f6b: DUP7
00001f6c: PUSH2 0x2b75
00001f6f: JUMP
00001f70: JUMPDEST
00001f71: SWAP1
00001f72: POP
00001f73: DUP1
00001f74: DUP3
00001f75: PUSH1 0x00
00001f77: ADD
00001f78: PUSH1 0x00
00001f7a: DUP3
00001f7b: DUP3
00001f7c: SLOAD
00001f7d: PUSH2 0x1f86
00001f80: SWAP2
00001f81: SWAP1
00001f82: PUSH2 0x37eb
00001f85: JUMP
00001f86: JUMPDEST
00001f87: SWAP3
00001f88: POP
00001f89: POP
00001f8a: DUP2
00001f8b: SWAP1
00001f8c: SSTORE
00001f8d: POP
00001f8e: DUP3
00001f8f: PUSH1 0x06
00001f91: ADD
00001f92: SLOAD
00001f93: DUP4
00001f94: PUSH1 0x03
00001f96: ADD
00001f97: SLOAD
00001f98: DUP4
00001f99: PUSH1 0x00
00001f9b: ADD
00001f9c: SLOAD
00001f9d: PUSH2 0x1fa6
00001fa0: SWAP2
00001fa1: SWAP1
00001fa2: PUSH2 0x3731
00001fa5: JUMP
00001fa6: JUMPDEST
00001fa7: PUSH2 0x1fb0
00001faa: SWAP2
00001fab: SWAP1
00001fac: PUSH2 0x37ba
00001faf: JUMP
00001fb0: JUMPDEST
00001fb1: DUP3
00001fb2: PUSH1 0x01
00001fb4: ADD
00001fb5: DUP2
00001fb6: SWAP1
00001fb7: SSTORE
00001fb8: POP
00001fb9: DUP1
00001fba: DUP4
00001fbb: PUSH1 0x07
00001fbd: ADD
00001fbe: PUSH1 0x00
00001fc0: DUP3
00001fc1: DUP3
00001fc2: SLOAD
00001fc3: PUSH2 0x1fcc
00001fc6: SWAP2
00001fc7: SWAP1
00001fc8: PUSH2 0x37eb
00001fcb: JUMP
00001fcc: JUMPDEST
00001fcd: SWAP3
00001fce: POP
00001fcf: POP
00001fd0: DUP2
00001fd1: SWAP1
00001fd2: SSTORE
00001fd3: POP
00001fd4: CALLER
00001fd5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fea: AND
00001feb: PUSH32 0x90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15
0000200c: DUP3
0000200d: DUP7
0000200e: PUSH1 0x40
00002010: MLOAD
00002011: PUSH2 0x201b
00002014: SWAP3
00002015: SWAP2
00002016: SWAP1
00002017: PUSH2 0x32b0
0000201a: JUMP
0000201b: JUMPDEST
0000201c: PUSH1 0x40
0000201e: MLOAD
0000201f: DUP1
00002020: SWAP2
00002021: SUB
00002022: SWAP1
00002023: LOG2
00002024: POP
00002025: POP
00002026: POP
00002027: PUSH1 0x01
00002029: PUSH1 0x67
0000202b: DUP2
0000202c: SWAP1
0000202d: SSTORE
0000202e: POP
0000202f: POP
00002030: POP
00002031: JUMP
00002032: JUMPDEST
00002033: PUSH2 0x203a
00002036: PUSH2 0x295e
00002039: JUMP
0000203a: JUMPDEST
0000203b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002050: AND
00002051: PUSH2 0x2058
00002054: PUSH2 0x1824
00002057: JUMP
00002058: JUMPDEST
00002059: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000206e: AND
0000206f: EQ
00002070: PUSH2 0x20ae
00002073: JUMPI
00002074: PUSH1 0x40
00002076: MLOAD
00002077: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002098: DUP2
00002099: MSTORE
0000209a: PUSH1 0x04
0000209c: ADD
0000209d: PUSH2 0x20a5
000020a0: SWAP1
000020a1: PUSH2 0x388d
000020a4: JUMP
000020a5: JUMPDEST
000020a6: PUSH1 0x40
000020a8: MLOAD
000020a9: DUP1
000020aa: SWAP2
000020ab: SUB
000020ac: SWAP1
000020ad: REVERT
000020ae: JUMPDEST
000020af: PUSH1 0x00
000020b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020c6: AND
000020c7: DUP2
000020c8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020dd: AND
000020de: EQ
000020df: ISZERO
000020e0: PUSH2 0x211e
000020e3: JUMPI
000020e4: PUSH1 0x40
000020e6: MLOAD
000020e7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002108: DUP2
00002109: MSTORE
0000210a: PUSH1 0x04
0000210c: ADD
0000210d: PUSH2 0x2115
00002110: SWAP1
00002111: PUSH2 0x39ee
00002114: JUMP
00002115: JUMPDEST
00002116: PUSH1 0x40
00002118: MLOAD
00002119: DUP1
0000211a: SWAP2
0000211b: SUB
0000211c: SWAP1
0000211d: REVERT
0000211e: JUMPDEST
0000211f: PUSH2 0x2127
00002122: DUP2
00002123: PUSH2 0x2966
00002126: JUMP
00002127: JUMPDEST
00002128: POP
00002129: JUMP
0000212a: JUMPDEST
0000212b: PUSH1 0x00
0000212d: DUP1
0000212e: PUSH1 0x65
00002130: DUP4
00002131: DUP2
00002132: SLOAD
00002133: DUP2
00002134: LT
00002135: PUSH2 0x2141
00002138: JUMPI
00002139: PUSH2 0x2140
0000213c: PUSH2 0x35f9
0000213f: JUMP
00002140: JUMPDEST
00002141: JUMPDEST
00002142: SWAP1
00002143: PUSH1 0x00
00002145: MSTORE
00002146: PUSH1 0x20
00002148: PUSH1 0x00
0000214a: KECCAK256
0000214b: SWAP1
0000214c: PUSH1 0x0a
0000214e: MUL
0000214f: ADD
00002150: SWAP1
00002151: POP
00002152: PUSH1 0x00
00002154: PUSH1 0x66
00002156: PUSH1 0x00
00002158: DUP7
00002159: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000216e: AND
0000216f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002184: AND
00002185: DUP2
00002186: MSTORE
00002187: PUSH1 0x20
00002189: ADD
0000218a: SWAP1
0000218b: DUP2
0000218c: MSTORE
0000218d: PUSH1 0x20
0000218f: ADD
00002190: PUSH1 0x00
00002192: KECCAK256
00002193: PUSH1 0x00
00002195: DUP6
00002196: DUP2
00002197: MSTORE
00002198: PUSH1 0x20
0000219a: ADD
0000219b: SWAP1
0000219c: DUP2
0000219d: MSTORE
0000219e: PUSH1 0x20
000021a0: ADD
000021a1: PUSH1 0x00
000021a3: KECCAK256
000021a4: SWAP1
000021a5: POP
000021a6: PUSH1 0x00
000021a8: DUP3
000021a9: PUSH1 0x03
000021ab: ADD
000021ac: SLOAD
000021ad: SWAP1
000021ae: POP
000021af: PUSH1 0x00
000021b1: DUP4
000021b2: PUSH1 0x07
000021b4: ADD
000021b5: SLOAD
000021b6: SWAP1
000021b7: POP
000021b8: PUSH1 0x00
000021ba: DUP5
000021bb: PUSH1 0x06
000021bd: ADD
000021be: SLOAD
000021bf: SWAP1
000021c0: POP
000021c1: PUSH1 0x00
000021c3: DUP6
000021c4: PUSH1 0x02
000021c6: ADD
000021c7: SLOAD
000021c8: SWAP1
000021c9: POP
000021ca: PUSH1 0x00
000021cc: DUP7
000021cd: PUSH1 0x04
000021cf: ADD
000021d0: SLOAD
000021d1: SWAP1
000021d2: POP
000021d3: PUSH1 0x00
000021d5: DUP8
000021d6: PUSH1 0x05
000021d8: ADD
000021d9: SLOAD
000021da: SWAP1
000021db: POP
000021dc: PUSH1 0x00
000021de: PUSH1 0x6d
000021e0: PUSH1 0x00
000021e2: DUP14
000021e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000021f8: AND
000021f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000220e: AND
0000220f: DUP2
00002210: MSTORE
00002211: PUSH1 0x20
00002213: ADD
00002214: SWAP1
00002215: DUP2
00002216: MSTORE
00002217: PUSH1 0x20
00002219: ADD
0000221a: PUSH1 0x00
0000221c: KECCAK256
0000221d: PUSH1 0x00
0000221f: DUP13
00002220: DUP2
00002221: MSTORE
00002222: PUSH1 0x20
00002224: ADD
00002225: SWAP1
00002226: DUP2
00002227: MSTORE
00002228: PUSH1 0x20
0000222a: ADD
0000222b: PUSH1 0x00
0000222d: KECCAK256
0000222e: SLOAD
0000222f: SWAP1
00002230: POP
00002231: DUP2
00002232: DUP5
00002233: GT
00002234: DUP1
00002235: ISZERO
00002236: PUSH2 0x2240
00002239: JUMPI
0000223a: POP
0000223b: PUSH1 0x00
0000223d: DUP7
0000223e: EQ
0000223f: ISZERO
00002240: JUMPDEST
00002241: ISZERO
00002242: PUSH2 0x228a
00002245: JUMPI
00002246: DUP1
00002247: DUP9
00002248: PUSH1 0x01
0000224a: ADD
0000224b: SLOAD
0000224c: DUP7
0000224d: DUP10
0000224e: DUP12
0000224f: PUSH1 0x00
00002251: ADD
00002252: SLOAD
00002253: PUSH2 0x225c
00002256: SWAP2
00002257: SWAP1
00002258: PUSH2 0x3731
0000225b: JUMP
0000225c: JUMPDEST
0000225d: PUSH2 0x2266
00002260: SWAP2
00002261: SWAP1
00002262: PUSH2 0x37ba
00002265: JUMP
00002266: JUMPDEST
00002267: PUSH2 0x2270
0000226a: SWAP2
0000226b: SWAP1
0000226c: PUSH2 0x36fd
0000226f: JUMP
00002270: JUMPDEST
00002271: PUSH2 0x227a
00002274: SWAP2
00002275: SWAP1
00002276: PUSH2 0x37eb
00002279: JUMP
0000227a: JUMPDEST
0000227b: SWAP10
0000227c: POP
0000227d: POP
0000227e: POP
0000227f: POP
00002280: POP
00002281: POP
00002282: POP
00002283: POP
00002284: POP
00002285: POP
00002286: PUSH2 0x235c
00002289: JUMP
0000228a: JUMPDEST
0000228b: DUP4
0000228c: TIMESTAMP
0000228d: GT
0000228e: DUP1
0000228f: ISZERO
00002290: PUSH2 0x229a
00002293: JUMPI
00002294: POP
00002295: PUSH1 0x00
00002297: DUP7
00002298: EQ
00002299: ISZERO
0000229a: JUMPDEST
0000229b: DUP1
0000229c: ISZERO
0000229d: PUSH2 0x22a9
000022a0: JUMPI
000022a1: POP
000022a2: DUP9
000022a3: PUSH1 0x04
000022a5: ADD
000022a6: SLOAD
000022a7: TIMESTAMP
000022a8: GT
000022a9: JUMPDEST
000022aa: ISZERO
000022ab: PUSH2 0x231b
000022ae: JUMPI
000022af: PUSH1 0x00
000022b1: DUP4
000022b2: DUP4
000022b3: PUSH2 0x22bc
000022b6: SWAP2
000022b7: SWAP1
000022b8: PUSH2 0x36fd
000022bb: JUMP
000022bc: JUMPDEST
000022bd: DUP11
000022be: PUSH1 0x08
000022c0: ADD
000022c1: SLOAD
000022c2: PUSH2 0x22cb
000022c5: DUP7
000022c6: DUP9
000022c7: PUSH2 0x292c
000022ca: JUMP
000022cb: JUMPDEST
000022cc: PUSH2 0x22d5
000022cf: TIMESTAMP
000022d0: DUP8
000022d1: PUSH2 0x2945
000022d4: JUMP
000022d5: JUMPDEST
000022d6: PUSH2 0x22df
000022d9: SWAP2
000022da: SWAP1
000022db: PUSH2 0x36fd
000022de: JUMP
000022df: JUMPDEST
000022e0: PUSH2 0x22e9
000022e3: SWAP2
000022e4: SWAP1
000022e5: PUSH2 0x3731
000022e8: JUMP
000022e9: JUMPDEST
000022ea: PUSH2 0x22f3
000022ed: SWAP2
000022ee: SWAP1
000022ef: PUSH2 0x37ba
000022f2: JUMP
000022f3: JUMPDEST
000022f4: SWAP1
000022f5: POP
000022f6: DUP7
000022f7: DUP7
000022f8: DUP3
000022f9: PUSH2 0x2302
000022fc: SWAP2
000022fd: SWAP1
000022fe: PUSH2 0x3731
00002301: JUMP
00002302: JUMPDEST
00002303: PUSH2 0x230c
00002306: SWAP2
00002307: SWAP1
00002308: PUSH2 0x37ba
0000230b: JUMP
0000230c: JUMPDEST
0000230d: DUP9
0000230e: PUSH2 0x2317
00002311: SWAP2
00002312: SWAP1
00002313: PUSH2 0x37eb
00002316: JUMP
00002317: JUMPDEST
00002318: SWAP8
00002319: POP
0000231a: POP
0000231b: JUMPDEST
0000231c: DUP1
0000231d: DUP9
0000231e: PUSH1 0x01
00002320: ADD
00002321: SLOAD
00002322: DUP7
00002323: DUP10
00002324: DUP12
00002325: PUSH1 0x00
00002327: ADD
00002328: SLOAD
00002329: PUSH2 0x2332
0000232c: SWAP2
0000232d: SWAP1
0000232e: PUSH2 0x3731
00002331: JUMP
00002332: JUMPDEST
00002333: PUSH2 0x233c
00002336: SWAP2
00002337: SWAP1
00002338: PUSH2 0x37ba
0000233b: JUMP
0000233c: JUMPDEST
0000233d: PUSH2 0x2346
00002340: SWAP2
00002341: SWAP1
00002342: PUSH2 0x36fd
00002345: JUMP
00002346: JUMPDEST
00002347: PUSH2 0x2350
0000234a: SWAP2
0000234b: SWAP1
0000234c: PUSH2 0x37eb
0000234f: JUMP
00002350: JUMPDEST
00002351: SWAP10
00002352: POP
00002353: POP
00002354: POP
00002355: POP
00002356: POP
00002357: POP
00002358: POP
00002359: POP
0000235a: POP
0000235b: POP
0000235c: JUMPDEST
0000235d: SWAP3
0000235e: SWAP2
0000235f: POP
00002360: POP
00002361: JUMP
00002362: JUMPDEST
00002363: PUSH1 0x02
00002365: PUSH1 0x67
00002367: SLOAD
00002368: EQ
00002369: ISZERO
0000236a: PUSH2 0x23a8
0000236d: JUMPI
0000236e: PUSH1 0x40
00002370: MLOAD
00002371: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002392: DUP2
00002393: MSTORE
00002394: PUSH1 0x04
00002396: ADD
00002397: PUSH2 0x239f
0000239a: SWAP1
0000239b: PUSH2 0x36ae
0000239e: JUMP
0000239f: JUMPDEST
000023a0: PUSH1 0x40
000023a2: MLOAD
000023a3: DUP1
000023a4: SWAP2
000023a5: SUB
000023a6: SWAP1
000023a7: REVERT
000023a8: JUMPDEST
000023a9: PUSH1 0x02
000023ab: PUSH1 0x67
000023ad: DUP2
000023ae: SWAP1
000023af: SSTORE
000023b0: POP
000023b1: PUSH1 0x00
000023b3: DUP6
000023b4: SWAP1
000023b5: POP
000023b6: PUSH1 0x00
000023b8: DUP3
000023b9: EQ
000023ba: ISZERO
000023bb: PUSH2 0x23f0
000023be: JUMPI
000023bf: PUSH1 0x40
000023c1: MLOAD
000023c2: PUSH32 0x589efd7300000000000000000000000000000000000000000000000000000000
000023e3: DUP2
000023e4: MSTORE
000023e5: PUSH1 0x04
000023e7: ADD
000023e8: PUSH1 0x40
000023ea: MLOAD
000023eb: DUP1
000023ec: SWAP2
000023ed: SUB
000023ee: SWAP1
000023ef: REVERT
000023f0: JUMPDEST
000023f1: TIMESTAMP
000023f2: DUP6
000023f3: LT
000023f4: DUP1
000023f5: PUSH2 0x23fd
000023f8: JUMPI
000023f9: POP
000023fa: TIMESTAMP
000023fb: DUP5
000023fc: LT
000023fd: JUMPDEST
000023fe: ISZERO
000023ff: PUSH2 0x2434
00002402: JUMPI
00002403: PUSH1 0x40
00002405: MLOAD
00002406: PUSH32 0x12d8cb1c00000000000000000000000000000000000000000000000000000000
00002427: DUP2
00002428: MSTORE
00002429: PUSH1 0x04
0000242b: ADD
0000242c: PUSH1 0x40
0000242e: MLOAD
0000242f: DUP1
00002430: SWAP2
00002431: SUB
00002432: SWAP1
00002433: REVERT
00002434: JUMPDEST
00002435: PUSH1 0x06
00002437: DUP4
00002438: LT
00002439: DUP1
0000243a: PUSH2 0x2443
0000243d: JUMPI
0000243e: POP
0000243f: PUSH1 0x24
00002441: DUP4
00002442: GT
00002443: JUMPDEST
00002444: ISZERO
00002445: PUSH2 0x247a
00002448: JUMPI
00002449: PUSH1 0x40
0000244b: MLOAD
0000244c: PUSH32 0xaa8828e700000000000000000000000000000000000000000000000000000000
0000246d: DUP2
0000246e: MSTORE
0000246f: PUSH1 0x04
00002471: ADD
00002472: PUSH1 0x40
00002474: MLOAD
00002475: DUP1
00002476: SWAP2
00002477: SUB
00002478: SWAP1
00002479: REVERT
0000247a: JUMPDEST
0000247b: DUP4
0000247c: DUP6
0000247d: LT
0000247e: PUSH2 0x24b3
00002481: JUMPI
00002482: PUSH1 0x40
00002484: MLOAD
00002485: PUSH32 0x77eb2f1700000000000000000000000000000000000000000000000000000000
000024a6: DUP2
000024a7: MSTORE
000024a8: PUSH1 0x04
000024aa: ADD
000024ab: PUSH1 0x40
000024ad: MLOAD
000024ae: DUP1
000024af: SWAP2
000024b0: SUB
000024b1: SWAP1
000024b2: REVERT
000024b3: JUMPDEST
000024b4: PUSH4 0x09660180
000024b9: DUP6
000024ba: DUP6
000024bb: PUSH2 0x24c4
000024be: SWAP2
000024bf: SWAP1
000024c0: PUSH2 0x36fd
000024c3: JUMP
000024c4: JUMPDEST
000024c5: GT
000024c6: ISZERO
000024c7: PUSH2 0x24fc
000024ca: JUMPI
000024cb: PUSH1 0x40
000024cd: MLOAD
000024ce: PUSH32 0x77eb2f1700000000000000000000000000000000000000000000000000000000
000024ef: DUP2
000024f0: MSTORE
000024f1: PUSH1 0x04
000024f3: ADD
000024f4: PUSH1 0x40
000024f6: MLOAD
000024f7: DUP1
000024f8: SWAP2
000024f9: SUB
000024fa: SWAP1
000024fb: REVERT
000024fc: JUMPDEST
000024fd: PUSH1 0x00
000024ff: PUSH2 0x2508
00002502: DUP3
00002503: DUP5
00002504: PUSH2 0x2b75
00002507: JUMP
00002508: JUMPDEST
00002509: SWAP1
0000250a: POP
0000250b: PUSH1 0x65
0000250d: PUSH1 0x40
0000250f: MLOAD
00002510: DUP1
00002511: PUSH2 0x0140
00002514: ADD
00002515: PUSH1 0x40
00002517: MSTORE
00002518: DUP1
00002519: DUP11
0000251a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000252f: AND
00002530: DUP2
00002531: MSTORE
00002532: PUSH1 0x20
00002534: ADD
00002535: DUP5
00002536: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000254b: AND
0000254c: DUP2
0000254d: MSTORE
0000254e: PUSH1 0x20
00002550: ADD
00002551: PUSH1 0x00
00002553: DUP2
00002554: MSTORE
00002555: PUSH1 0x20
00002557: ADD
00002558: PUSH1 0x00
0000255a: DUP2
0000255b: MSTORE
0000255c: PUSH1 0x20
0000255e: ADD
0000255f: DUP9
00002560: DUP2
00002561: MSTORE
00002562: PUSH1 0x20
00002564: ADD
00002565: DUP8
00002566: DUP2
00002567: MSTORE
00002568: PUSH1 0x20
0000256a: ADD
0000256b: DUP7
0000256c: PUSH1 0x0a
0000256e: PUSH2 0x2577
00002571: SWAP2
00002572: SWAP1
00002573: PUSH2 0x3b41
00002576: JUMP
00002577: JUMPDEST
00002578: DUP2
00002579: MSTORE
0000257a: PUSH1 0x20
0000257c: ADD
0000257d: PUSH1 0x00
0000257f: DUP2
00002580: MSTORE
00002581: PUSH1 0x20
00002583: ADD
00002584: DUP4
00002585: DUP2
00002586: MSTORE
00002587: PUSH1 0x20
00002589: ADD
0000258a: CALLER
0000258b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025a0: AND
000025a1: DUP2
000025a2: MSTORE
000025a3: POP
000025a4: SWAP1
000025a5: DUP1
000025a6: PUSH1 0x01
000025a8: DUP2
000025a9: SLOAD
000025aa: ADD
000025ab: DUP1
000025ac: DUP3
000025ad: SSTORE
000025ae: DUP1
000025af: SWAP2
000025b0: POP
000025b1: POP
000025b2: PUSH1 0x01
000025b4: SWAP1
000025b5: SUB
000025b6: SWAP1
000025b7: PUSH1 0x00
000025b9: MSTORE
000025ba: PUSH1 0x20
000025bc: PUSH1 0x00
000025be: KECCAK256
000025bf: SWAP1
000025c0: PUSH1 0x0a
000025c2: MUL
000025c3: ADD
000025c4: PUSH1 0x00
000025c6: SWAP1
000025c7: SWAP2
000025c8: SWAP1
000025c9: SWAP2
000025ca: SWAP1
000025cb: SWAP2
000025cc: POP
000025cd: PUSH1 0x00
000025cf: DUP3
000025d0: ADD
000025d1: MLOAD
000025d2: DUP2
000025d3: PUSH1 0x00
000025d5: ADD
000025d6: PUSH1 0x00
000025d8: PUSH2 0x0100
000025db: EXP
000025dc: DUP2
000025dd: SLOAD
000025de: DUP2
000025df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000025f4: MUL
000025f5: NOT
000025f6: AND
000025f7: SWAP1
000025f8: DUP4
000025f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000260e: AND
0000260f: MUL
00002610: OR
00002611: SWAP1
00002612: SSTORE
00002613: POP
00002614: PUSH1 0x20
00002616: DUP3
00002617: ADD
00002618: MLOAD
00002619: DUP2
0000261a: PUSH1 0x01
0000261c: ADD
0000261d: PUSH1 0x00
0000261f: PUSH2 0x0100
00002622: EXP
00002623: DUP2
00002624: SLOAD
00002625: DUP2
00002626: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000263b: MUL
0000263c: NOT
0000263d: AND
0000263e: SWAP1
0000263f: DUP4
00002640: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002655: AND
00002656: MUL
00002657: OR
00002658: SWAP1
00002659: SSTORE
0000265a: POP
0000265b: PUSH1 0x40
0000265d: DUP3
0000265e: ADD
0000265f: MLOAD
00002660: DUP2
00002661: PUSH1 0x02
00002663: ADD
00002664: SSTORE
00002665: PUSH1 0x60
00002667: DUP3
00002668: ADD
00002669: MLOAD
0000266a: DUP2
0000266b: PUSH1 0x03
0000266d: ADD
0000266e: SSTORE
0000266f: PUSH1 0x80
00002671: DUP3
00002672: ADD
00002673: MLOAD
00002674: DUP2
00002675: PUSH1 0x04
00002677: ADD
00002678: SSTORE
00002679: PUSH1 0xa0
0000267b: DUP3
0000267c: ADD
0000267d: MLOAD
0000267e: DUP2
0000267f: PUSH1 0x05
00002681: ADD
00002682: SSTORE
00002683: PUSH1 0xc0
00002685: DUP3
00002686: ADD
00002687: MLOAD
00002688: DUP2
00002689: PUSH1 0x06
0000268b: ADD
0000268c: SSTORE
0000268d: PUSH1 0xe0
0000268f: DUP3
00002690: ADD
00002691: MLOAD
00002692: DUP2
00002693: PUSH1 0x07
00002695: ADD
00002696: SSTORE
00002697: PUSH2 0x0100
0000269a: DUP3
0000269b: ADD
0000269c: MLOAD
0000269d: DUP2
0000269e: PUSH1 0x08
000026a0: ADD
000026a1: SSTORE
000026a2: PUSH2 0x0120
000026a5: DUP3
000026a6: ADD
000026a7: MLOAD
000026a8: DUP2
000026a9: PUSH1 0x09
000026ab: ADD
000026ac: PUSH1 0x00
000026ae: PUSH2 0x0100
000026b1: EXP
000026b2: DUP2
000026b3: SLOAD
000026b4: DUP2
000026b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026ca: MUL
000026cb: NOT
000026cc: AND
000026cd: SWAP1
000026ce: DUP4
000026cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026e4: AND
000026e5: MUL
000026e6: OR
000026e7: SWAP1
000026e8: SSTORE
000026e9: POP
000026ea: POP
000026eb: POP
000026ec: PUSH1 0x68
000026ee: SLOAD
000026ef: PUSH1 0x6b
000026f1: PUSH1 0x00
000026f3: PUSH1 0x01
000026f5: PUSH1 0x65
000026f7: DUP1
000026f8: SLOAD
000026f9: SWAP1
000026fa: POP
000026fb: PUSH2 0x2704
000026fe: SWAP2
000026ff: SWAP1
00002700: PUSH2 0x36fd
00002703: JUMP
00002704: JUMPDEST
00002705: DUP2
00002706: MSTORE
00002707: PUSH1 0x20
00002709: ADD
0000270a: SWAP1
0000270b: DUP2
0000270c: MSTORE
0000270d: PUSH1 0x20
0000270f: ADD
00002710: PUSH1 0x00
00002712: KECCAK256
00002713: DUP2
00002714: SWAP1
00002715: SSTORE
00002716: POP
00002717: DUP7
00002718: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000272d: AND
0000272e: DUP9
0000272f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002744: AND
00002745: PUSH32 0x3da36bae0e345f496aff0cfa4df201a3a21b5bc0f04efa5f1f55d27b51c5fa32
00002766: DUP9
00002767: DUP9
00002768: DUP9
00002769: PUSH1 0x0a
0000276b: PUSH2 0x2774
0000276e: SWAP2
0000276f: SWAP1
00002770: PUSH2 0x3b41
00002773: JUMP
00002774: JUMPDEST
00002775: DUP7
00002776: PUSH1 0x40
00002778: MLOAD
00002779: PUSH2 0x2785
0000277c: SWAP5
0000277d: SWAP4
0000277e: SWAP3
0000277f: SWAP2
00002780: SWAP1
00002781: PUSH2 0x3b8c
00002784: JUMP
00002785: JUMPDEST
00002786: PUSH1 0x40
00002788: MLOAD
00002789: DUP1
0000278a: SWAP2
0000278b: SUB
0000278c: SWAP1
0000278d: LOG3
0000278e: POP
0000278f: POP
00002790: PUSH1 0x01
00002792: PUSH1 0x67
00002794: DUP2
00002795: SWAP1
00002796: SSTORE
00002797: POP
00002798: POP
00002799: POP
0000279a: POP
0000279b: POP
0000279c: POP
0000279d: POP
0000279e: JUMP
0000279f: JUMPDEST
000027a0: PUSH2 0x27a7
000027a3: PUSH2 0x295e
000027a6: JUMP
000027a7: JUMPDEST
000027a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000027bd: AND
000027be: PUSH2 0x27c5
000027c1: PUSH2 0x1824
000027c4: JUMP
000027c5: JUMPDEST
000027c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000027db: AND
000027dc: EQ
000027dd: PUSH2 0x281b
000027e0: JUMPI
000027e1: PUSH1 0x40
000027e3: MLOAD
000027e4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002805: DUP2
00002806: MSTORE
00002807: PUSH1 0x04
00002809: ADD
0000280a: PUSH2 0x2812
0000280d: SWAP1
0000280e: PUSH2 0x388d
00002811: JUMP
00002812: JUMPDEST
00002813: PUSH1 0x40
00002815: MLOAD
00002816: DUP1
00002817: SWAP2
00002818: SUB
00002819: SWAP1
0000281a: REVERT
0000281b: JUMPDEST
0000281c: PUSH1 0x02
0000281e: PUSH1 0x67
00002820: SLOAD
00002821: EQ
00002822: ISZERO
00002823: PUSH2 0x2861
00002826: JUMPI
00002827: PUSH1 0x40
00002829: MLOAD
0000282a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000284b: DUP2
0000284c: MSTORE
0000284d: PUSH1 0x04
0000284f: ADD
00002850: PUSH2 0x2858
00002853: SWAP1
00002854: PUSH2 0x36ae
00002857: JUMP
00002858: JUMPDEST
00002859: PUSH1 0x40
0000285b: MLOAD
0000285c: DUP1
0000285d: SWAP2
0000285e: SUB
0000285f: SWAP1
00002860: REVERT
00002861: JUMPDEST
00002862: PUSH1 0x02
00002864: PUSH1 0x67
00002866: DUP2
00002867: SWAP1
00002868: SSTORE
00002869: POP
0000286a: PUSH1 0x00
0000286c: DUP3
0000286d: SWAP1
0000286e: POP
0000286f: PUSH2 0x2899
00002872: CALLER
00002873: DUP4
00002874: DUP4
00002875: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000288a: AND
0000288b: PUSH2 0x28a6
0000288e: SWAP1
0000288f: SWAP3
00002890: SWAP2
00002891: SWAP1
00002892: PUSH4 0xffffffff
00002897: AND
00002898: JUMP
00002899: JUMPDEST
0000289a: POP
0000289b: PUSH1 0x01
0000289d: PUSH1 0x67
0000289f: DUP2
000028a0: SWAP1
000028a1: SSTORE
000028a2: POP
000028a3: POP
000028a4: POP
000028a5: JUMP
000028a6: JUMPDEST
000028a7: PUSH2 0x2927
000028aa: DUP4
000028ab: PUSH4 0xa9059cbb
000028b0: PUSH1 0xe0
000028b2: SHL
000028b3: DUP5
000028b4: DUP5
000028b5: PUSH1 0x40
000028b7: MLOAD
000028b8: PUSH1 0x24
000028ba: ADD
000028bb: PUSH2 0x28c5
000028be: SWAP3
000028bf: SWAP2
000028c0: SWAP1
000028c1: PUSH2 0x3bd1
000028c4: JUMP
000028c5: JUMPDEST
000028c6: PUSH1 0x40
000028c8: MLOAD
000028c9: PUSH1 0x20
000028cb: DUP2
000028cc: DUP4
000028cd: SUB
000028ce: SUB
000028cf: DUP2
000028d0: MSTORE
000028d1: SWAP1
000028d2: PUSH1 0x40
000028d4: MSTORE
000028d5: SWAP1
000028d6: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000028f3: NOT
000028f4: AND
000028f5: PUSH1 0x20
000028f7: DUP3
000028f8: ADD
000028f9: DUP1
000028fa: MLOAD
000028fb: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002918: DUP4
00002919: DUP2
0000291a: DUP4
0000291b: AND
0000291c: OR
0000291d: DUP4
0000291e: MSTORE
0000291f: POP
00002920: POP
00002921: POP
00002922: POP
00002923: PUSH2 0x2cb5
00002926: JUMP
00002927: JUMPDEST
00002928: POP
00002929: POP
0000292a: POP
0000292b: JUMP
0000292c: JUMPDEST
0000292d: PUSH1 0x00
0000292f: DUP2
00002930: DUP4
00002931: GT
00002932: PUSH2 0x293b
00002935: JUMPI
00002936: DUP2
00002937: PUSH2 0x293d
0000293a: JUMP
0000293b: JUMPDEST
0000293c: DUP3
0000293d: JUMPDEST
0000293e: SWAP1
0000293f: POP
00002940: SWAP3
00002941: SWAP2
00002942: POP
00002943: POP
00002944: JUMP
00002945: JUMPDEST
00002946: PUSH1 0x00
00002948: DUP2
00002949: DUP4
0000294a: LT
0000294b: PUSH2 0x2954
0000294e: JUMPI
0000294f: DUP2
00002950: PUSH2 0x2956
00002953: JUMP
00002954: JUMPDEST
00002955: DUP3
00002956: JUMPDEST
00002957: SWAP1
00002958: POP
00002959: SWAP3
0000295a: SWAP2
0000295b: POP
0000295c: POP
0000295d: JUMP
0000295e: JUMPDEST
0000295f: PUSH1 0x00
00002961: CALLER
00002962: SWAP1
00002963: POP
00002964: SWAP1
00002965: JUMP
00002966: JUMPDEST
00002967: PUSH1 0x00
00002969: PUSH1 0x33
0000296b: PUSH1 0x00
0000296d: SWAP1
0000296e: SLOAD
0000296f: SWAP1
00002970: PUSH2 0x0100
00002973: EXP
00002974: SWAP1
00002975: DIV
00002976: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000298b: AND
0000298c: SWAP1
0000298d: POP
0000298e: DUP2
0000298f: PUSH1 0x33
00002991: PUSH1 0x00
00002993: PUSH2 0x0100
00002996: EXP
00002997: DUP2
00002998: SLOAD
00002999: DUP2
0000299a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029af: MUL
000029b0: NOT
000029b1: AND
000029b2: SWAP1
000029b3: DUP4
000029b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029c9: AND
000029ca: MUL
000029cb: OR
000029cc: SWAP1
000029cd: SSTORE
000029ce: POP
000029cf: DUP2
000029d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029e5: AND
000029e6: DUP2
000029e7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029fc: AND
000029fd: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00002a1e: PUSH1 0x40
00002a20: MLOAD
00002a21: PUSH1 0x40
00002a23: MLOAD
00002a24: DUP1
00002a25: SWAP2
00002a26: SUB
00002a27: SWAP1
00002a28: LOG3
00002a29: POP
00002a2a: POP
00002a2b: JUMP
00002a2c: JUMPDEST
00002a2d: PUSH1 0x00
00002a2f: DUP1
00002a30: PUSH1 0x01
00002a32: SWAP1
00002a33: SLOAD
00002a34: SWAP1
00002a35: PUSH2 0x0100
00002a38: EXP
00002a39: SWAP1
00002a3a: DIV
00002a3b: PUSH1 0xff
00002a3d: AND
00002a3e: ISZERO
00002a3f: PUSH2 0x2aa3
00002a42: JUMPI
00002a43: PUSH1 0x01
00002a45: DUP3
00002a46: PUSH1 0xff
00002a48: AND
00002a49: EQ
00002a4a: DUP1
00002a4b: ISZERO
00002a4c: PUSH2 0x2a5b
00002a4f: JUMPI
00002a50: POP
00002a51: PUSH2 0x2a59
00002a54: ADDRESS
00002a55: PUSH2 0x2d7c
00002a58: JUMP
00002a59: JUMPDEST
00002a5a: ISZERO
00002a5b: JUMPDEST
00002a5c: PUSH2 0x2a9a
00002a5f: JUMPI
00002a60: PUSH1 0x40
00002a62: MLOAD
00002a63: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002a84: DUP2
00002a85: MSTORE
00002a86: PUSH1 0x04
00002a88: ADD
00002a89: PUSH2 0x2a91
00002a8c: SWAP1
00002a8d: PUSH2 0x3c6c
00002a90: JUMP
00002a91: JUMPDEST
00002a92: PUSH1 0x40
00002a94: MLOAD
00002a95: DUP1
00002a96: SWAP2
00002a97: SUB
00002a98: SWAP1
00002a99: REVERT
00002a9a: JUMPDEST
00002a9b: PUSH1 0x00
00002a9d: SWAP1
00002a9e: POP
00002a9f: PUSH2 0x2b17
00002aa2: JUMP
00002aa3: JUMPDEST
00002aa4: DUP2
00002aa5: PUSH1 0xff
00002aa7: AND
00002aa8: PUSH1 0x00
00002aaa: DUP1
00002aab: SLOAD
00002aac: SWAP1
00002aad: PUSH2 0x0100
00002ab0: EXP
00002ab1: SWAP1
00002ab2: DIV
00002ab3: PUSH1 0xff
00002ab5: AND
00002ab6: PUSH1 0xff
00002ab8: AND
00002ab9: LT
00002aba: PUSH2 0x2af8
00002abd: JUMPI
00002abe: PUSH1 0x40
00002ac0: MLOAD
00002ac1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002ae2: DUP2
00002ae3: MSTORE
00002ae4: PUSH1 0x04
00002ae6: ADD
00002ae7: PUSH2 0x2aef
00002aea: SWAP1
00002aeb: PUSH2 0x3c6c
00002aee: JUMP
00002aef: JUMPDEST
00002af0: PUSH1 0x40
00002af2: MLOAD
00002af3: DUP1
00002af4: SWAP2
00002af5: SUB
00002af6: SWAP1
00002af7: REVERT
00002af8: JUMPDEST
00002af9: DUP2
00002afa: PUSH1 0x00
00002afc: DUP1
00002afd: PUSH2 0x0100
00002b00: EXP
00002b01: DUP2
00002b02: SLOAD
00002b03: DUP2
00002b04: PUSH1 0xff
00002b06: MUL
00002b07: NOT
00002b08: AND
00002b09: SWAP1
00002b0a: DUP4
00002b0b: PUSH1 0xff
00002b0d: AND
00002b0e: MUL
00002b0f: OR
00002b10: SWAP1
00002b11: SSTORE
00002b12: POP
00002b13: PUSH1 0x01
00002b15: SWAP1
00002b16: POP
00002b17: JUMPDEST
00002b18: SWAP2
00002b19: SWAP1
00002b1a: POP
00002b1b: JUMP
00002b1c: JUMPDEST
00002b1d: PUSH1 0x00
00002b1f: PUSH1 0x01
00002b21: SWAP1
00002b22: SLOAD
00002b23: SWAP1
00002b24: PUSH2 0x0100
00002b27: EXP
00002b28: SWAP1
00002b29: DIV
00002b2a: PUSH1 0xff
00002b2c: AND
00002b2d: PUSH2 0x2b6b
00002b30: JUMPI
00002b31: PUSH1 0x40
00002b33: MLOAD
00002b34: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002b55: DUP2
00002b56: MSTORE
00002b57: PUSH1 0x04
00002b59: ADD
00002b5a: PUSH2 0x2b62
00002b5d: SWAP1
00002b5e: PUSH2 0x3cfe
00002b61: JUMP
00002b62: JUMPDEST
00002b63: PUSH1 0x40
00002b65: MLOAD
00002b66: DUP1
00002b67: SWAP2
00002b68: SUB
00002b69: SWAP1
00002b6a: REVERT
00002b6b: JUMPDEST
00002b6c: PUSH2 0x2b73
00002b6f: PUSH2 0x2d9f
00002b72: JUMP
00002b73: JUMPDEST
00002b74: JUMP
00002b75: JUMPDEST
00002b76: PUSH1 0x00
00002b78: DUP1
00002b79: DUP4
00002b7a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b8f: AND
00002b90: PUSH4 0x70a08231
00002b95: ADDRESS
00002b96: PUSH1 0x40
00002b98: MLOAD
00002b99: DUP3
00002b9a: PUSH4 0xffffffff
00002b9f: AND
00002ba0: PUSH1 0xe0
00002ba2: SHL
00002ba3: DUP2
00002ba4: MSTORE
00002ba5: PUSH1 0x04
00002ba7: ADD
00002ba8: PUSH2 0x2bb1
00002bab: SWAP2
00002bac: SWAP1
00002bad: PUSH2 0x3524
00002bb0: JUMP
00002bb1: JUMPDEST
00002bb2: PUSH1 0x20
00002bb4: PUSH1 0x40
00002bb6: MLOAD
00002bb7: DUP1
00002bb8: DUP4
00002bb9: SUB
00002bba: DUP2
00002bbb: DUP7
00002bbc: GAS
00002bbd: STATICCALL
00002bbe: ISZERO
00002bbf: DUP1
00002bc0: ISZERO
00002bc1: PUSH2 0x2bce
00002bc4: JUMPI
00002bc5: RETURNDATASIZE
00002bc6: PUSH1 0x00
00002bc8: DUP1
00002bc9: RETURNDATACOPY
00002bca: RETURNDATASIZE
00002bcb: PUSH1 0x00
00002bcd: REVERT
00002bce: JUMPDEST
00002bcf: POP
00002bd0: POP
00002bd1: POP
00002bd2: POP
00002bd3: PUSH1 0x40
00002bd5: MLOAD
00002bd6: RETURNDATASIZE
00002bd7: PUSH1 0x1f
00002bd9: NOT
00002bda: PUSH1 0x1f
00002bdc: DUP3
00002bdd: ADD
00002bde: AND
00002bdf: DUP3
00002be0: ADD
00002be1: DUP1
00002be2: PUSH1 0x40
00002be4: MSTORE
00002be5: POP
00002be6: DUP2
00002be7: ADD
00002be8: SWAP1
00002be9: PUSH2 0x2bf2
00002bec: SWAP2
00002bed: SWAP1
00002bee: PUSH2 0x3d33
00002bf1: JUMP
00002bf2: JUMPDEST
00002bf3: SWAP1
00002bf4: POP
00002bf5: PUSH2 0x2c21
00002bf8: CALLER
00002bf9: ADDRESS
00002bfa: DUP6
00002bfb: DUP8
00002bfc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c11: AND
00002c12: PUSH2 0x2e00
00002c15: SWAP1
00002c16: SWAP4
00002c17: SWAP3
00002c18: SWAP2
00002c19: SWAP1
00002c1a: PUSH4 0xffffffff
00002c1f: AND
00002c20: JUMP
00002c21: JUMPDEST
00002c22: PUSH1 0x00
00002c24: DUP5
00002c25: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c3a: AND
00002c3b: PUSH4 0x70a08231
00002c40: ADDRESS
00002c41: PUSH1 0x40
00002c43: MLOAD
00002c44: DUP3
00002c45: PUSH4 0xffffffff
00002c4a: AND
00002c4b: PUSH1 0xe0
00002c4d: SHL
00002c4e: DUP2
00002c4f: MSTORE
00002c50: PUSH1 0x04
00002c52: ADD
00002c53: PUSH2 0x2c5c
00002c56: SWAP2
00002c57: SWAP1
00002c58: PUSH2 0x3524
00002c5b: JUMP
00002c5c: JUMPDEST
00002c5d: PUSH1 0x20
00002c5f: PUSH1 0x40
00002c61: MLOAD
00002c62: DUP1
00002c63: DUP4
00002c64: SUB
00002c65: DUP2
00002c66: DUP7
00002c67: GAS
00002c68: STATICCALL
00002c69: ISZERO
00002c6a: DUP1
00002c6b: ISZERO
00002c6c: PUSH2 0x2c79
00002c6f: JUMPI
00002c70: RETURNDATASIZE
00002c71: PUSH1 0x00
00002c73: DUP1
00002c74: RETURNDATACOPY
00002c75: RETURNDATASIZE
00002c76: PUSH1 0x00
00002c78: REVERT
00002c79: JUMPDEST
00002c7a: POP
00002c7b: POP
00002c7c: POP
00002c7d: POP
00002c7e: PUSH1 0x40
00002c80: MLOAD
00002c81: RETURNDATASIZE
00002c82: PUSH1 0x1f
00002c84: NOT
00002c85: PUSH1 0x1f
00002c87: DUP3
00002c88: ADD
00002c89: AND
00002c8a: DUP3
00002c8b: ADD
00002c8c: DUP1
00002c8d: PUSH1 0x40
00002c8f: MSTORE
00002c90: POP
00002c91: DUP2
00002c92: ADD
00002c93: SWAP1
00002c94: PUSH2 0x2c9d
00002c97: SWAP2
00002c98: SWAP1
00002c99: PUSH2 0x3d33
00002c9c: JUMP
00002c9d: JUMPDEST
00002c9e: SWAP1
00002c9f: POP
00002ca0: DUP2
00002ca1: DUP2
00002ca2: PUSH2 0x2cab
00002ca5: SWAP2
00002ca6: SWAP1
00002ca7: PUSH2 0x36fd
00002caa: JUMP
00002cab: JUMPDEST
00002cac: SWAP3
00002cad: POP
00002cae: POP
00002caf: POP
00002cb0: SWAP3
00002cb1: SWAP2
00002cb2: POP
00002cb3: POP
00002cb4: JUMP
00002cb5: JUMPDEST
00002cb6: PUSH1 0x00
00002cb8: PUSH2 0x2d17
00002cbb: DUP3
00002cbc: PUSH1 0x40
00002cbe: MLOAD
00002cbf: DUP1
00002cc0: PUSH1 0x40
00002cc2: ADD
00002cc3: PUSH1 0x40
00002cc5: MSTORE
00002cc6: DUP1
00002cc7: PUSH1 0x20
00002cc9: DUP2
00002cca: MSTORE
00002ccb: PUSH1 0x20
00002ccd: ADD
00002cce: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
00002cef: DUP2
00002cf0: MSTORE
00002cf1: POP
00002cf2: DUP6
00002cf3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d08: AND
00002d09: PUSH2 0x2e89
00002d0c: SWAP1
00002d0d: SWAP3
00002d0e: SWAP2
00002d0f: SWAP1
00002d10: PUSH4 0xffffffff
00002d15: AND
00002d16: JUMP
00002d17: JUMPDEST
00002d18: SWAP1
00002d19: POP
00002d1a: PUSH1 0x00
00002d1c: DUP2
00002d1d: MLOAD
00002d1e: GT
00002d1f: ISZERO
00002d20: PUSH2 0x2d77
00002d23: JUMPI
00002d24: DUP1
00002d25: DUP1
00002d26: PUSH1 0x20
00002d28: ADD
00002d29: SWAP1
00002d2a: MLOAD
00002d2b: DUP2
00002d2c: ADD
00002d2d: SWAP1
00002d2e: PUSH2 0x2d37
00002d31: SWAP2
00002d32: SWAP1
00002d33: PUSH2 0x3d8c
00002d36: JUMP
00002d37: JUMPDEST
00002d38: PUSH2 0x2d76
00002d3b: JUMPI
00002d3c: PUSH1 0x40
00002d3e: MLOAD
00002d3f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002d60: DUP2
00002d61: MSTORE
00002d62: PUSH1 0x04
00002d64: ADD
00002d65: PUSH2 0x2d6d
00002d68: SWAP1
00002d69: PUSH2 0x3e2b
00002d6c: JUMP
00002d6d: JUMPDEST
00002d6e: PUSH1 0x40
00002d70: MLOAD
00002d71: DUP1
00002d72: SWAP2
00002d73: SUB
00002d74: SWAP1
00002d75: REVERT
00002d76: JUMPDEST
00002d77: JUMPDEST
00002d78: POP
00002d79: POP
00002d7a: POP
00002d7b: JUMP
00002d7c: JUMPDEST
00002d7d: PUSH1 0x00
00002d7f: DUP1
00002d80: DUP3
00002d81: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002d96: AND
00002d97: EXTCODESIZE
00002d98: GT
00002d99: SWAP1
00002d9a: POP
00002d9b: SWAP2
00002d9c: SWAP1
00002d9d: POP
00002d9e: JUMP
00002d9f: JUMPDEST
00002da0: PUSH1 0x00
00002da2: PUSH1 0x01
00002da4: SWAP1
00002da5: SLOAD
00002da6: SWAP1
00002da7: PUSH2 0x0100
00002daa: EXP
00002dab: SWAP1
00002dac: DIV
00002dad: PUSH1 0xff
00002daf: AND
00002db0: PUSH2 0x2dee
00002db3: JUMPI
00002db4: PUSH1 0x40
00002db6: MLOAD
00002db7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002dd8: DUP2
00002dd9: MSTORE
00002dda: PUSH1 0x04
00002ddc: ADD
00002ddd: PUSH2 0x2de5
00002de0: SWAP1
00002de1: PUSH2 0x3cfe
00002de4: JUMP
00002de5: JUMPDEST
00002de6: PUSH1 0x40
00002de8: MLOAD
00002de9: DUP1
00002dea: SWAP2
00002deb: SUB
00002dec: SWAP1
00002ded: REVERT
00002dee: JUMPDEST
00002def: PUSH2 0x2dfe
00002df2: PUSH2 0x2df9
00002df5: PUSH2 0x295e
00002df8: JUMP
00002df9: JUMPDEST
00002dfa: PUSH2 0x2966
00002dfd: JUMP
00002dfe: JUMPDEST
00002dff: JUMP
00002e00: JUMPDEST
00002e01: PUSH2 0x2e83
00002e04: DUP5
00002e05: PUSH4 0x23b872dd
00002e0a: PUSH1 0xe0
00002e0c: SHL
00002e0d: DUP6
00002e0e: DUP6
00002e0f: DUP6
00002e10: PUSH1 0x40
00002e12: MLOAD
00002e13: PUSH1 0x24
00002e15: ADD
00002e16: PUSH2 0x2e21
00002e19: SWAP4
00002e1a: SWAP3
00002e1b: SWAP2
00002e1c: SWAP1
00002e1d: PUSH2 0x3e4b
00002e20: JUMP
00002e21: JUMPDEST
00002e22: PUSH1 0x40
00002e24: MLOAD
00002e25: PUSH1 0x20
00002e27: DUP2
00002e28: DUP4
00002e29: SUB
00002e2a: SUB
00002e2b: DUP2
00002e2c: MSTORE
00002e2d: SWAP1
00002e2e: PUSH1 0x40
00002e30: MSTORE
00002e31: SWAP1
00002e32: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002e4f: NOT
00002e50: AND
00002e51: PUSH1 0x20
00002e53: DUP3
00002e54: ADD
00002e55: DUP1
00002e56: MLOAD
00002e57: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002e74: DUP4
00002e75: DUP2
00002e76: DUP4
00002e77: AND
00002e78: OR
00002e79: DUP4
00002e7a: MSTORE
00002e7b: POP
00002e7c: POP
00002e7d: POP
00002e7e: POP
00002e7f: PUSH2 0x2cb5
00002e82: JUMP
00002e83: JUMPDEST
00002e84: POP
00002e85: POP
00002e86: POP
00002e87: POP
00002e88: JUMP
00002e89: JUMPDEST
00002e8a: PUSH1 0x60
00002e8c: PUSH2 0x2e98
00002e8f: DUP5
00002e90: DUP5
00002e91: PUSH1 0x00
00002e93: DUP6
00002e94: PUSH2 0x2ea1
00002e97: JUMP
00002e98: JUMPDEST
00002e99: SWAP1
00002e9a: POP
00002e9b: SWAP4
00002e9c: SWAP3
00002e9d: POP
00002e9e: POP
00002e9f: POP
00002ea0: JUMP
00002ea1: JUMPDEST
00002ea2: PUSH1 0x60
00002ea4: DUP3
00002ea5: SELFBALANCE
00002ea6: LT
00002ea7: ISZERO
00002ea8: PUSH2 0x2ee6
00002eab: JUMPI
00002eac: PUSH1 0x40
00002eae: MLOAD
00002eaf: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002ed0: DUP2
00002ed1: MSTORE
00002ed2: PUSH1 0x04
00002ed4: ADD
00002ed5: PUSH2 0x2edd
00002ed8: SWAP1
00002ed9: PUSH2 0x3ef4
00002edc: JUMP
00002edd: JUMPDEST
00002ede: PUSH1 0x40
00002ee0: MLOAD
00002ee1: DUP1
00002ee2: SWAP2
00002ee3: SUB
00002ee4: SWAP1
00002ee5: REVERT
00002ee6: JUMPDEST
00002ee7: PUSH2 0x2eef
00002eea: DUP6
00002eeb: PUSH2 0x2d7c
00002eee: JUMP
00002eef: JUMPDEST
00002ef0: PUSH2 0x2f2e
00002ef3: JUMPI
00002ef4: PUSH1 0x40
00002ef6: MLOAD
00002ef7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002f18: DUP2
00002f19: MSTORE
00002f1a: PUSH1 0x04
00002f1c: ADD
00002f1d: PUSH2 0x2f25
00002f20: SWAP1
00002f21: PUSH2 0x3f60
00002f24: JUMP
00002f25: JUMPDEST
00002f26: PUSH1 0x40
00002f28: MLOAD
00002f29: DUP1
00002f2a: SWAP2
00002f2b: SUB
00002f2c: SWAP1
00002f2d: REVERT
00002f2e: JUMPDEST
00002f2f: PUSH1 0x00
00002f31: DUP1
00002f32: DUP7
00002f33: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f48: AND
00002f49: DUP6
00002f4a: DUP8
00002f4b: PUSH1 0x40
00002f4d: MLOAD
00002f4e: PUSH2 0x2f57
00002f51: SWAP2
00002f52: SWAP1
00002f53: PUSH2 0x3ffa
00002f56: JUMP
00002f57: JUMPDEST
00002f58: PUSH1 0x00
00002f5a: PUSH1 0x40
00002f5c: MLOAD
00002f5d: DUP1
00002f5e: DUP4
00002f5f: SUB
00002f60: DUP2
00002f61: DUP6
00002f62: DUP8
00002f63: GAS
00002f64: CALL
00002f65: SWAP3
00002f66: POP
00002f67: POP
00002f68: POP
00002f69: RETURNDATASIZE
00002f6a: DUP1
00002f6b: PUSH1 0x00
00002f6d: DUP2
00002f6e: EQ
00002f6f: PUSH2 0x2f94
00002f72: JUMPI
00002f73: PUSH1 0x40
00002f75: MLOAD
00002f76: SWAP2
00002f77: POP
00002f78: PUSH1 0x1f
00002f7a: NOT
00002f7b: PUSH1 0x3f
00002f7d: RETURNDATASIZE
00002f7e: ADD
00002f7f: AND
00002f80: DUP3
00002f81: ADD
00002f82: PUSH1 0x40
00002f84: MSTORE
00002f85: RETURNDATASIZE
00002f86: DUP3
00002f87: MSTORE
00002f88: RETURNDATASIZE
00002f89: PUSH1 0x00
00002f8b: PUSH1 0x20
00002f8d: DUP5
00002f8e: ADD
00002f8f: RETURNDATACOPY
00002f90: PUSH2 0x2f99
00002f93: JUMP
00002f94: JUMPDEST
00002f95: PUSH1 0x60
00002f97: SWAP2
00002f98: POP
00002f99: JUMPDEST
00002f9a: POP
00002f9b: SWAP2
00002f9c: POP
00002f9d: SWAP2
00002f9e: POP
00002f9f: PUSH2 0x2fa9
00002fa2: DUP3
00002fa3: DUP3
00002fa4: DUP7
00002fa5: PUSH2 0x2fb5
00002fa8: JUMP
00002fa9: JUMPDEST
00002faa: SWAP3
00002fab: POP
00002fac: POP
00002fad: POP
00002fae: SWAP5
00002faf: SWAP4
00002fb0: POP
00002fb1: POP
00002fb2: POP
00002fb3: POP
00002fb4: JUMP
00002fb5: JUMPDEST
00002fb6: PUSH1 0x60
00002fb8: DUP4
00002fb9: ISZERO
00002fba: PUSH2 0x2fc5
00002fbd: JUMPI
00002fbe: DUP3
00002fbf: SWAP1
00002fc0: POP
00002fc1: PUSH2 0x3015
00002fc4: JUMP
00002fc5: JUMPDEST
00002fc6: PUSH1 0x00
00002fc8: DUP4
00002fc9: MLOAD
00002fca: GT
00002fcb: ISZERO
00002fcc: PUSH2 0x2fd8
00002fcf: JUMPI
00002fd0: DUP3
00002fd1: MLOAD
00002fd2: DUP1
00002fd3: DUP5
00002fd4: PUSH1 0x20
00002fd6: ADD
00002fd7: REVERT
00002fd8: JUMPDEST
00002fd9: DUP2
00002fda: PUSH1 0x40
00002fdc: MLOAD
00002fdd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002ffe: DUP2
00002fff: MSTORE
00003000: PUSH1 0x04
00003002: ADD
00003003: PUSH2 0x300c
00003006: SWAP2
00003007: SWAP1
00003008: PUSH2 0x4066
0000300b: JUMP
0000300c: JUMPDEST
0000300d: PUSH1 0x40
0000300f: MLOAD
00003010: DUP1
00003011: SWAP2
00003012: SUB
00003013: SWAP1
00003014: REVERT
00003015: JUMPDEST
00003016: SWAP4
00003017: SWAP3
00003018: POP
00003019: POP
0000301a: POP
0000301b: JUMP
0000301c: JUMPDEST
0000301d: PUSH1 0x40
0000301f: MLOAD
00003020: DUP1
00003021: PUSH1 0x40
00003023: ADD
00003024: PUSH1 0x40
00003026: MSTORE
00003027: DUP1
00003028: PUSH1 0x00
0000302a: DUP2
0000302b: MSTORE
0000302c: PUSH1 0x20
0000302e: ADD
0000302f: PUSH1 0x00
00003031: DUP2
00003032: MSTORE
00003033: POP
00003034: SWAP1
00003035: JUMP
00003036: JUMPDEST
00003037: PUSH1 0x00
00003039: DUP1
0000303a: REVERT
0000303b: JUMPDEST
0000303c: PUSH1 0x00
0000303e: DUP2
0000303f: SWAP1
00003040: POP
00003041: SWAP2
00003042: SWAP1
00003043: POP
00003044: JUMP
00003045: JUMPDEST
00003046: PUSH2 0x304e
00003049: DUP2
0000304a: PUSH2 0x303b
0000304d: JUMP
0000304e: JUMPDEST
0000304f: DUP2
00003050: EQ
00003051: PUSH2 0x3059
00003054: JUMPI
00003055: PUSH1 0x00
00003057: DUP1
00003058: REVERT
00003059: JUMPDEST
0000305a: POP
0000305b: JUMP
0000305c: JUMPDEST
0000305d: PUSH1 0x00
0000305f: DUP2
00003060: CALLDATALOAD
00003061: SWAP1
00003062: POP
00003063: PUSH2 0x306b
00003066: DUP2
00003067: PUSH2 0x3045
0000306a: JUMP
0000306b: JUMPDEST
0000306c: SWAP3
0000306d: SWAP2
0000306e: POP
0000306f: POP
00003070: JUMP
00003071: JUMPDEST
00003072: PUSH1 0x00
00003074: PUSH1 0x20
00003076: DUP3
00003077: DUP5
00003078: SUB
00003079: SLT
0000307a: ISZERO
0000307b: PUSH2 0x3087
0000307e: JUMPI
0000307f: PUSH2 0x3086
00003082: PUSH2 0x3036
00003085: JUMP
00003086: JUMPDEST
00003087: JUMPDEST
00003088: PUSH1 0x00
0000308a: PUSH2 0x3095
0000308d: DUP5
0000308e: DUP3
0000308f: DUP6
00003090: ADD
00003091: PUSH2 0x305c
00003094: JUMP
00003095: JUMPDEST
00003096: SWAP2
00003097: POP
00003098: POP
00003099: SWAP3
0000309a: SWAP2
0000309b: POP
0000309c: POP
0000309d: JUMP
0000309e: JUMPDEST
0000309f: PUSH2 0x30a7
000030a2: DUP2
000030a3: PUSH2 0x303b
000030a6: JUMP
000030a7: JUMPDEST
000030a8: DUP3
000030a9: MSTORE
000030aa: POP
000030ab: POP
000030ac: JUMP
000030ad: JUMPDEST
000030ae: PUSH1 0x00
000030b0: PUSH1 0x20
000030b2: DUP3
000030b3: ADD
000030b4: SWAP1
000030b5: POP
000030b6: PUSH2 0x30c2
000030b9: PUSH1 0x00
000030bb: DUP4
000030bc: ADD
000030bd: DUP5
000030be: PUSH2 0x309e
000030c1: JUMP
000030c2: JUMPDEST
000030c3: SWAP3
000030c4: SWAP2
000030c5: POP
000030c6: POP
000030c7: JUMP
000030c8: JUMPDEST
000030c9: PUSH1 0x00
000030cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000030e0: DUP3
000030e1: AND
000030e2: SWAP1
000030e3: POP
000030e4: SWAP2
000030e5: SWAP1
000030e6: POP
000030e7: JUMP
000030e8: JUMPDEST
000030e9: PUSH1 0x00
000030eb: DUP2
000030ec: SWAP1
000030ed: POP
000030ee: SWAP2
000030ef: SWAP1
000030f0: POP
000030f1: JUMP
000030f2: JUMPDEST
000030f3: PUSH1 0x00
000030f5: PUSH2 0x310d
000030f8: PUSH2 0x3108
000030fb: PUSH2 0x3103
000030fe: DUP5
000030ff: PUSH2 0x30c8
00003102: JUMP
00003103: JUMPDEST
00003104: PUSH2 0x30e8
00003107: JUMP
00003108: JUMPDEST
00003109: PUSH2 0x30c8
0000310c: JUMP
0000310d: JUMPDEST
0000310e: SWAP1
0000310f: POP
00003110: SWAP2
00003111: SWAP1
00003112: POP
00003113: JUMP
00003114: JUMPDEST
00003115: PUSH1 0x00
00003117: PUSH2 0x311f
0000311a: DUP3
0000311b: PUSH2 0x30f2
0000311e: JUMP
0000311f: JUMPDEST
00003120: SWAP1
00003121: POP
00003122: SWAP2
00003123: SWAP1
00003124: POP
00003125: JUMP
00003126: JUMPDEST
00003127: PUSH1 0x00
00003129: PUSH2 0x3131
0000312c: DUP3
0000312d: PUSH2 0x3114
00003130: JUMP
00003131: JUMPDEST
00003132: SWAP1
00003133: POP
00003134: SWAP2
00003135: SWAP1
00003136: POP
00003137: JUMP
00003138: JUMPDEST
00003139: PUSH2 0x3141
0000313c: DUP2
0000313d: PUSH2 0x3126
00003140: JUMP
00003141: JUMPDEST
00003142: DUP3
00003143: MSTORE
00003144: POP
00003145: POP
00003146: JUMP
00003147: JUMPDEST
00003148: PUSH1 0x00
0000314a: PUSH2 0x3152
0000314d: DUP3
0000314e: PUSH2 0x30c8
00003151: JUMP
00003152: JUMPDEST
00003153: SWAP1
00003154: POP
00003155: SWAP2
00003156: SWAP1
00003157: POP
00003158: JUMP
00003159: JUMPDEST
0000315a: PUSH2 0x3162
0000315d: DUP2
0000315e: PUSH2 0x3147
00003161: JUMP
00003162: JUMPDEST
00003163: DUP3
00003164: MSTORE
00003165: POP
00003166: POP
00003167: JUMP
00003168: JUMPDEST
00003169: PUSH1 0x00
0000316b: PUSH2 0x0140
0000316e: DUP3
0000316f: ADD
00003170: SWAP1
00003171: POP
00003172: PUSH2 0x317e
00003175: PUSH1 0x00
00003177: DUP4
00003178: ADD
00003179: DUP14
0000317a: PUSH2 0x3138
0000317d: JUMP
0000317e: JUMPDEST
0000317f: PUSH2 0x318b
00003182: PUSH1 0x20
00003184: DUP4
00003185: ADD
00003186: DUP13
00003187: PUSH2 0x3138
0000318a: JUMP
0000318b: JUMPDEST
0000318c: PUSH2 0x3198
0000318f: PUSH1 0x40
00003191: DUP4
00003192: ADD
00003193: DUP12
00003194: PUSH2 0x309e
00003197: JUMP
00003198: JUMPDEST
00003199: PUSH2 0x31a5
0000319c: PUSH1 0x60
0000319e: DUP4
0000319f: ADD
000031a0: DUP11
000031a1: PUSH2 0x309e
000031a4: JUMP
000031a5: JUMPDEST
000031a6: PUSH2 0x31b2
000031a9: PUSH1 0x80
000031ab: DUP4
000031ac: ADD
000031ad: DUP10
000031ae: PUSH2 0x309e
000031b1: JUMP
000031b2: JUMPDEST
000031b3: PUSH2 0x31bf
000031b6: PUSH1 0xa0
000031b8: DUP4
000031b9: ADD
000031ba: DUP9
000031bb: PUSH2 0x309e
000031be: JUMP
000031bf: JUMPDEST
000031c0: PUSH2 0x31cc
000031c3: PUSH1 0xc0
000031c5: DUP4
000031c6: ADD
000031c7: DUP8
000031c8: PUSH2 0x309e
000031cb: JUMP
000031cc: JUMPDEST
000031cd: PUSH2 0x31d9
000031d0: PUSH1 0xe0
000031d2: DUP4
000031d3: ADD
000031d4: DUP7
000031d5: PUSH2 0x309e
000031d8: JUMP
000031d9: JUMPDEST
000031da: PUSH2 0x31e7
000031dd: PUSH2 0x0100
000031e0: DUP4
000031e1: ADD
000031e2: DUP6
000031e3: PUSH2 0x309e
000031e6: JUMP
000031e7: JUMPDEST
000031e8: PUSH2 0x31f5
000031eb: PUSH2 0x0120
000031ee: DUP4
000031ef: ADD
000031f0: DUP5
000031f1: PUSH2 0x3159
000031f4: JUMP
000031f5: JUMPDEST
000031f6: SWAP12
000031f7: SWAP11
000031f8: POP
000031f9: POP
000031fa: POP
000031fb: POP
000031fc: POP
000031fd: POP
000031fe: POP
000031ff: POP
00003200: POP
00003201: POP
00003202: POP
00003203: JUMP
00003204: JUMPDEST
00003205: PUSH1 0x00
00003207: DUP1
00003208: PUSH1 0x40
0000320a: DUP4
0000320b: DUP6
0000320c: SUB
0000320d: SLT
0000320e: ISZERO
0000320f: PUSH2 0x321b
00003212: JUMPI
00003213: PUSH2 0x321a
00003216: PUSH2 0x3036
00003219: JUMP
0000321a: JUMPDEST
0000321b: JUMPDEST
0000321c: PUSH1 0x00
0000321e: PUSH2 0x3229
00003221: DUP6
00003222: DUP3
00003223: DUP7
00003224: ADD
00003225: PUSH2 0x305c
00003228: JUMP
00003229: JUMPDEST
0000322a: SWAP3
0000322b: POP
0000322c: POP
0000322d: PUSH1 0x20
0000322f: PUSH2 0x323a
00003232: DUP6
00003233: DUP3
00003234: DUP7
00003235: ADD
00003236: PUSH2 0x305c
00003239: JUMP
0000323a: JUMPDEST
0000323b: SWAP2
0000323c: POP
0000323d: POP
0000323e: SWAP3
0000323f: POP
00003240: SWAP3
00003241: SWAP1
00003242: POP
00003243: JUMP
00003244: JUMPDEST
00003245: PUSH2 0x324d
00003248: DUP2
00003249: PUSH2 0x3147
0000324c: JUMP
0000324d: JUMPDEST
0000324e: DUP2
0000324f: EQ
00003250: PUSH2 0x3258
00003253: JUMPI
00003254: PUSH1 0x00
00003256: DUP1
00003257: REVERT
00003258: JUMPDEST
00003259: POP
0000325a: JUMP
0000325b: JUMPDEST
0000325c: PUSH1 0x00
0000325e: DUP2
0000325f: CALLDATALOAD
00003260: SWAP1
00003261: POP
00003262: PUSH2 0x326a
00003265: DUP2
00003266: PUSH2 0x3244
00003269: JUMP
0000326a: JUMPDEST
0000326b: SWAP3
0000326c: SWAP2
0000326d: POP
0000326e: POP
0000326f: JUMP
00003270: JUMPDEST
00003271: PUSH1 0x00
00003273: DUP1
00003274: PUSH1 0x40
00003276: DUP4
00003277: DUP6
00003278: SUB
00003279: SLT
0000327a: ISZERO
0000327b: PUSH2 0x3287
0000327e: JUMPI
0000327f: PUSH2 0x3286
00003282: PUSH2 0x3036
00003285: JUMP
00003286: JUMPDEST
00003287: JUMPDEST
00003288: PUSH1 0x00
0000328a: PUSH2 0x3295
0000328d: DUP6
0000328e: DUP3
0000328f: DUP7
00003290: ADD
00003291: PUSH2 0x325b
00003294: JUMP
00003295: JUMPDEST
00003296: SWAP3
00003297: POP
00003298: POP
00003299: PUSH1 0x20
0000329b: PUSH2 0x32a6
0000329e: DUP6
0000329f: DUP3
000032a0: DUP7
000032a1: ADD
000032a2: PUSH2 0x305c
000032a5: JUMP
000032a6: JUMPDEST
000032a7: SWAP2
000032a8: POP
000032a9: POP
000032aa: SWAP3
000032ab: POP
000032ac: SWAP3
000032ad: SWAP1
000032ae: POP
000032af: JUMP
000032b0: JUMPDEST
000032b1: PUSH1 0x00
000032b3: PUSH1 0x40
000032b5: DUP3
000032b6: ADD
000032b7: SWAP1
000032b8: POP
000032b9: PUSH2 0x32c5
000032bc: PUSH1 0x00
000032be: DUP4
000032bf: ADD
000032c0: DUP6
000032c1: PUSH2 0x309e
000032c4: JUMP
000032c5: JUMPDEST
000032c6: PUSH2 0x32d2
000032c9: PUSH1 0x20
000032cb: DUP4
000032cc: ADD
000032cd: DUP5
000032ce: PUSH2 0x309e
000032d1: JUMP
000032d2: JUMPDEST
000032d3: SWAP4
000032d4: SWAP3
000032d5: POP
000032d6: POP
000032d7: POP
000032d8: JUMP
000032d9: JUMPDEST
000032da: PUSH1 0x00
000032dc: DUP2
000032dd: MLOAD
000032de: SWAP1
000032df: POP
000032e0: SWAP2
000032e1: SWAP1
000032e2: POP
000032e3: JUMP
000032e4: JUMPDEST
000032e5: PUSH1 0x00
000032e7: DUP3
000032e8: DUP3
000032e9: MSTORE
000032ea: PUSH1 0x20
000032ec: DUP3
000032ed: ADD
000032ee: SWAP1
000032ef: POP
000032f0: SWAP3
000032f1: SWAP2
000032f2: POP
000032f3: POP
000032f4: JUMP
000032f5: JUMPDEST
000032f6: PUSH1 0x00
000032f8: DUP2
000032f9: SWAP1
000032fa: POP
000032fb: PUSH1 0x20
000032fd: DUP3
000032fe: ADD
000032ff: SWAP1
00003300: POP
00003301: SWAP2
00003302: SWAP1
00003303: POP
00003304: JUMP
00003305: JUMPDEST
00003306: PUSH2 0x330e
00003309: DUP2
0000330a: PUSH2 0x3126
0000330d: JUMP
0000330e: JUMPDEST
0000330f: DUP3
00003310: MSTORE
00003311: POP
00003312: POP
00003313: JUMP
00003314: JUMPDEST
00003315: PUSH2 0x331d
00003318: DUP2
00003319: PUSH2 0x303b
0000331c: JUMP
0000331d: JUMPDEST
0000331e: DUP3
0000331f: MSTORE
00003320: POP
00003321: POP
00003322: JUMP
00003323: JUMPDEST
00003324: PUSH2 0x332c
00003327: DUP2
00003328: PUSH2 0x3147
0000332b: JUMP
0000332c: JUMPDEST
0000332d: DUP3
0000332e: MSTORE
0000332f: POP
00003330: POP
00003331: JUMP
00003332: JUMPDEST
00003333: PUSH2 0x0140
00003336: DUP3
00003337: ADD
00003338: PUSH1 0x00
0000333a: DUP3
0000333b: ADD
0000333c: MLOAD
0000333d: PUSH2 0x3349
00003340: PUSH1 0x00
00003342: DUP6
00003343: ADD
00003344: DUP3
00003345: PUSH2 0x3305
00003348: JUMP
00003349: JUMPDEST
0000334a: POP
0000334b: PUSH1 0x20
0000334d: DUP3
0000334e: ADD
0000334f: MLOAD
00003350: PUSH2 0x335c
00003353: PUSH1 0x20
00003355: DUP6
00003356: ADD
00003357: DUP3
00003358: PUSH2 0x3305
0000335b: JUMP
0000335c: JUMPDEST
0000335d: POP
0000335e: PUSH1 0x40
00003360: DUP3
00003361: ADD
00003362: MLOAD
00003363: PUSH2 0x336f
00003366: PUSH1 0x40
00003368: DUP6
00003369: ADD
0000336a: DUP3
0000336b: PUSH2 0x3314
0000336e: JUMP
0000336f: JUMPDEST
00003370: POP
00003371: PUSH1 0x60
00003373: DUP3
00003374: ADD
00003375: MLOAD
00003376: PUSH2 0x3382
00003379: PUSH1 0x60
0000337b: DUP6
0000337c: ADD
0000337d: DUP3
0000337e: PUSH2 0x3314
00003381: JUMP
00003382: JUMPDEST
00003383: POP
00003384: PUSH1 0x80
00003386: DUP3
00003387: ADD
00003388: MLOAD
00003389: PUSH2 0x3395
0000338c: PUSH1 0x80
0000338e: DUP6
0000338f: ADD
00003390: DUP3
00003391: PUSH2 0x3314
00003394: JUMP
00003395: JUMPDEST
00003396: POP
00003397: PUSH1 0xa0
00003399: DUP3
0000339a: ADD
0000339b: MLOAD
0000339c: PUSH2 0x33a8
0000339f: PUSH1 0xa0
000033a1: DUP6
000033a2: ADD
000033a3: DUP3
000033a4: PUSH2 0x3314
000033a7: JUMP
000033a8: JUMPDEST
000033a9: POP
000033aa: PUSH1 0xc0
000033ac: DUP3
000033ad: ADD
000033ae: MLOAD
000033af: PUSH2 0x33bb
000033b2: PUSH1 0xc0
000033b4: DUP6
000033b5: ADD
000033b6: DUP3
000033b7: PUSH2 0x3314
000033ba: JUMP
000033bb: JUMPDEST
000033bc: POP
000033bd: PUSH1 0xe0
000033bf: DUP3
000033c0: ADD
000033c1: MLOAD
000033c2: PUSH2 0x33ce
000033c5: PUSH1 0xe0
000033c7: DUP6
000033c8: ADD
000033c9: DUP3
000033ca: PUSH2 0x3314
000033cd: JUMP
000033ce: JUMPDEST
000033cf: POP
000033d0: PUSH2 0x0100
000033d3: DUP3
000033d4: ADD
000033d5: MLOAD
000033d6: PUSH2 0x33e3
000033d9: PUSH2 0x0100
000033dc: DUP6
000033dd: ADD
000033de: DUP3
000033df: PUSH2 0x3314
000033e2: JUMP
000033e3: JUMPDEST
000033e4: POP
000033e5: PUSH2 0x0120
000033e8: DUP3
000033e9: ADD
000033ea: MLOAD
000033eb: PUSH2 0x33f8
000033ee: PUSH2 0x0120
000033f1: DUP6
000033f2: ADD
000033f3: DUP3
000033f4: PUSH2 0x3323
000033f7: JUMP
000033f8: JUMPDEST
000033f9: POP
000033fa: POP
000033fb: POP
000033fc: POP
000033fd: JUMP
000033fe: JUMPDEST
000033ff: PUSH1 0x00
00003401: PUSH2 0x340a
00003404: DUP4
00003405: DUP4
00003406: PUSH2 0x3332
00003409: JUMP
0000340a: JUMPDEST
0000340b: PUSH2 0x0140
0000340e: DUP4
0000340f: ADD
00003410: SWAP1
00003411: POP
00003412: SWAP3
00003413: SWAP2
00003414: POP
00003415: POP
00003416: JUMP
00003417: JUMPDEST
00003418: PUSH1 0x00
0000341a: PUSH1 0x20
0000341c: DUP3
0000341d: ADD
0000341e: SWAP1
0000341f: POP
00003420: SWAP2
00003421: SWAP1
00003422: POP
00003423: JUMP
00003424: JUMPDEST
00003425: PUSH1 0x00
00003427: PUSH2 0x342f
0000342a: DUP3
0000342b: PUSH2 0x32d9
0000342e: JUMP
0000342f: JUMPDEST
00003430: PUSH2 0x3439
00003433: DUP2
00003434: DUP6
00003435: PUSH2 0x32e4
00003438: JUMP
00003439: JUMPDEST
0000343a: SWAP4
0000343b: POP
0000343c: PUSH2 0x3444
0000343f: DUP4
00003440: PUSH2 0x32f5
00003443: JUMP
00003444: JUMPDEST
00003445: DUP1
00003446: PUSH1 0x00
00003448: JUMPDEST
00003449: DUP4
0000344a: DUP2
0000344b: LT
0000344c: ISZERO
0000344d: PUSH2 0x3475
00003450: JUMPI
00003451: DUP2
00003452: MLOAD
00003453: PUSH2 0x345c
00003456: DUP9
00003457: DUP3
00003458: PUSH2 0x33fe
0000345b: JUMP
0000345c: JUMPDEST
0000345d: SWAP8
0000345e: POP
0000345f: PUSH2 0x3467
00003462: DUP4
00003463: PUSH2 0x3417
00003466: JUMP
00003467: JUMPDEST
00003468: SWAP3
00003469: POP
0000346a: POP
0000346b: PUSH1 0x01
0000346d: DUP2
0000346e: ADD
0000346f: SWAP1
00003470: POP
00003471: PUSH2 0x3448
00003474: JUMP
00003475: JUMPDEST
00003476: POP
00003477: DUP6
00003478: SWAP4
00003479: POP
0000347a: POP
0000347b: POP
0000347c: POP
0000347d: SWAP3
0000347e: SWAP2
0000347f: POP
00003480: POP
00003481: JUMP
00003482: JUMPDEST
00003483: PUSH1 0x00
00003485: PUSH1 0x20
00003487: DUP3
00003488: ADD
00003489: SWAP1
0000348a: POP
0000348b: DUP2
0000348c: DUP2
0000348d: SUB
0000348e: PUSH1 0x00
00003490: DUP4
00003491: ADD
00003492: MSTORE
00003493: PUSH2 0x349c
00003496: DUP2
00003497: DUP5
00003498: PUSH2 0x3424
0000349b: JUMP
0000349c: JUMPDEST
0000349d: SWAP1
0000349e: POP
0000349f: SWAP3
000034a0: SWAP2
000034a1: POP
000034a2: POP
000034a3: JUMP
000034a4: JUMPDEST
000034a5: PUSH1 0x00
000034a7: DUP2
000034a8: ISZERO
000034a9: ISZERO
000034aa: SWAP1
000034ab: POP
000034ac: SWAP2
000034ad: SWAP1
000034ae: POP
000034af: JUMP
000034b0: JUMPDEST
000034b1: PUSH2 0x34b9
000034b4: DUP2
000034b5: PUSH2 0x34a4
000034b8: JUMP
000034b9: JUMPDEST
000034ba: DUP3
000034bb: MSTORE
000034bc: POP
000034bd: POP
000034be: JUMP
000034bf: JUMPDEST
000034c0: PUSH1 0x00
000034c2: PUSH1 0x20
000034c4: DUP3
000034c5: ADD
000034c6: SWAP1
000034c7: POP
000034c8: PUSH2 0x34d4
000034cb: PUSH1 0x00
000034cd: DUP4
000034ce: ADD
000034cf: DUP5
000034d0: PUSH2 0x34b0
000034d3: JUMP
000034d4: JUMPDEST
000034d5: SWAP3
000034d6: SWAP2
000034d7: POP
000034d8: POP
000034d9: JUMP
000034da: JUMPDEST
000034db: PUSH1 0x40
000034dd: DUP3
000034de: ADD
000034df: PUSH1 0x00
000034e1: DUP3
000034e2: ADD
000034e3: MLOAD
000034e4: PUSH2 0x34f0
000034e7: PUSH1 0x00
000034e9: DUP6
000034ea: ADD
000034eb: DUP3
000034ec: PUSH2 0x3314
000034ef: JUMP
000034f0: JUMPDEST
000034f1: POP
000034f2: PUSH1 0x20
000034f4: DUP3
000034f5: ADD
000034f6: MLOAD
000034f7: PUSH2 0x3503
000034fa: PUSH1 0x20
000034fc: DUP6
000034fd: ADD
000034fe: DUP3
000034ff: PUSH2 0x3314
00003502: JUMP
00003503: JUMPDEST
00003504: POP
00003505: POP
00003506: POP
00003507: POP
00003508: JUMP
00003509: JUMPDEST
0000350a: PUSH1 0x00
0000350c: PUSH1 0x40
0000350e: DUP3
0000350f: ADD
00003510: SWAP1
00003511: POP
00003512: PUSH2 0x351e
00003515: PUSH1 0x00
00003517: DUP4
00003518: ADD
00003519: DUP5
0000351a: PUSH2 0x34da
0000351d: JUMP
0000351e: JUMPDEST
0000351f: SWAP3
00003520: SWAP2
00003521: POP
00003522: POP
00003523: JUMP
00003524: JUMPDEST
00003525: PUSH1 0x00
00003527: PUSH1 0x20
00003529: DUP3
0000352a: ADD
0000352b: SWAP1
0000352c: POP
0000352d: PUSH2 0x3539
00003530: PUSH1 0x00
00003532: DUP4
00003533: ADD
00003534: DUP5
00003535: PUSH2 0x3159
00003538: JUMP
00003539: JUMPDEST
0000353a: SWAP3
0000353b: SWAP2
0000353c: POP
0000353d: POP
0000353e: JUMP
0000353f: JUMPDEST
00003540: PUSH1 0x00
00003542: PUSH1 0x20
00003544: DUP3
00003545: DUP5
00003546: SUB
00003547: SLT
00003548: ISZERO
00003549: PUSH2 0x3555
0000354c: JUMPI
0000354d: PUSH2 0x3554
00003550: PUSH2 0x3036
00003553: JUMP
00003554: JUMPDEST
00003555: JUMPDEST
00003556: PUSH1 0x00
00003558: PUSH2 0x3563
0000355b: DUP5
0000355c: DUP3
0000355d: DUP6
0000355e: ADD
0000355f: PUSH2 0x325b
00003562: JUMP
00003563: JUMPDEST
00003564: SWAP2
00003565: POP
00003566: POP
00003567: SWAP3
00003568: SWAP2
00003569: POP
0000356a: POP
0000356b: JUMP
0000356c: JUMPDEST
0000356d: PUSH1 0x00
0000356f: DUP1
00003570: PUSH1 0x00
00003572: DUP1
00003573: PUSH1 0x00
00003575: DUP1
00003576: PUSH1 0xc0
00003578: DUP8
00003579: DUP10
0000357a: SUB
0000357b: SLT
0000357c: ISZERO
0000357d: PUSH2 0x3589
00003580: JUMPI
00003581: PUSH2 0x3588
00003584: PUSH2 0x3036
00003587: JUMP
00003588: JUMPDEST
00003589: JUMPDEST
0000358a: PUSH1 0x00
0000358c: PUSH2 0x3597
0000358f: DUP10
00003590: DUP3
00003591: DUP11
00003592: ADD
00003593: PUSH2 0x325b
00003596: JUMP
00003597: JUMPDEST
00003598: SWAP7
00003599: POP
0000359a: POP
0000359b: PUSH1 0x20
0000359d: PUSH2 0x35a8
000035a0: DUP10
000035a1: DUP3
000035a2: DUP11
000035a3: ADD
000035a4: PUSH2 0x325b
000035a7: JUMP
000035a8: JUMPDEST
000035a9: SWAP6
000035aa: POP
000035ab: POP
000035ac: PUSH1 0x40
000035ae: PUSH2 0x35b9
000035b1: DUP10
000035b2: DUP3
000035b3: DUP11
000035b4: ADD
000035b5: PUSH2 0x305c
000035b8: JUMP
000035b9: JUMPDEST
000035ba: SWAP5
000035bb: POP
000035bc: POP
000035bd: PUSH1 0x60
000035bf: PUSH2 0x35ca
000035c2: DUP10
000035c3: DUP3
000035c4: DUP11
000035c5: ADD
000035c6: PUSH2 0x305c
000035c9: JUMP
000035ca: JUMPDEST
000035cb: SWAP4
000035cc: POP
000035cd: POP
000035ce: PUSH1 0x80
000035d0: PUSH2 0x35db
000035d3: DUP10
000035d4: DUP3
000035d5: DUP11
000035d6: ADD
000035d7: PUSH2 0x305c
000035da: JUMP
000035db: JUMPDEST
000035dc: SWAP3
000035dd: POP
000035de: POP
000035df: PUSH1 0xa0
000035e1: PUSH2 0x35ec
000035e4: DUP10
000035e5: DUP3
000035e6: DUP11
000035e7: ADD
000035e8: PUSH2 0x305c
000035eb: JUMP
000035ec: JUMPDEST
000035ed: SWAP2
000035ee: POP
000035ef: POP
000035f0: SWAP3
000035f1: SWAP6
000035f2: POP
000035f3: SWAP3
000035f4: SWAP6
000035f5: POP
000035f6: SWAP3
000035f7: SWAP6
000035f8: JUMP
000035f9: JUMPDEST
000035fa: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
0000361b: PUSH1 0x00
0000361d: MSTORE
0000361e: PUSH1 0x32
00003620: PUSH1 0x04
00003622: MSTORE
00003623: PUSH1 0x24
00003625: PUSH1 0x00
00003627: REVERT
00003628: JUMPDEST
00003629: PUSH1 0x00
0000362b: PUSH1 0x40
0000362d: DUP3
0000362e: ADD
0000362f: SWAP1
00003630: POP
00003631: PUSH2 0x363d
00003634: PUSH1 0x00
00003636: DUP4
00003637: ADD
00003638: DUP6
00003639: PUSH2 0x3159
0000363c: JUMP
0000363d: JUMPDEST
0000363e: PUSH2 0x364a
00003641: PUSH1 0x20
00003643: DUP4
00003644: ADD
00003645: DUP5
00003646: PUSH2 0x3159
00003649: JUMP
0000364a: JUMPDEST
0000364b: SWAP4
0000364c: SWAP3
0000364d: POP
0000364e: POP
0000364f: POP
00003650: JUMP
00003651: JUMPDEST
00003652: PUSH1 0x00
00003654: DUP3
00003655: DUP3
00003656: MSTORE
00003657: PUSH1 0x20
00003659: DUP3
0000365a: ADD
0000365b: SWAP1
0000365c: POP
0000365d: SWAP3
0000365e: SWAP2
0000365f: POP
00003660: POP
00003661: JUMP
00003662: JUMPDEST
00003663: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00
00003684: PUSH1 0x00
00003686: DUP3
00003687: ADD
00003688: MSTORE
00003689: POP
0000368a: JUMP
0000368b: JUMPDEST
0000368c: PUSH1 0x00
0000368e: PUSH2 0x3698
00003691: PUSH1 0x1f
00003693: DUP4
00003694: PUSH2 0x3651
00003697: JUMP
00003698: JUMPDEST
00003699: SWAP2
0000369a: POP
0000369b: PUSH2 0x36a3
0000369e: DUP3
0000369f: PUSH2 0x3662
000036a2: JUMP
000036a3: JUMPDEST
000036a4: PUSH1 0x20
000036a6: DUP3
000036a7: ADD
000036a8: SWAP1
000036a9: POP
000036aa: SWAP2
000036ab: SWAP1
000036ac: POP
000036ad: JUMP
000036ae: JUMPDEST
000036af: PUSH1 0x00
000036b1: PUSH1 0x20
000036b3: DUP3
000036b4: ADD
000036b5: SWAP1
000036b6: POP
000036b7: DUP2
000036b8: DUP2
000036b9: SUB
000036ba: PUSH1 0x00
000036bc: DUP4
000036bd: ADD
000036be: MSTORE
000036bf: PUSH2 0x36c7
000036c2: DUP2
000036c3: PUSH2 0x368b
000036c6: JUMP
000036c7: JUMPDEST
000036c8: SWAP1
000036c9: POP
000036ca: SWAP2
000036cb: SWAP1
000036cc: POP
000036cd: JUMP
000036ce: JUMPDEST
000036cf: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000036f0: PUSH1 0x00
000036f2: MSTORE
000036f3: PUSH1 0x11
000036f5: PUSH1 0x04
000036f7: MSTORE
000036f8: PUSH1 0x24
000036fa: PUSH1 0x00
000036fc: REVERT
000036fd: JUMPDEST
000036fe: PUSH1 0x00
00003700: PUSH2 0x3708
00003703: DUP3
00003704: PUSH2 0x303b
00003707: JUMP
00003708: JUMPDEST
00003709: SWAP2
0000370a: POP
0000370b: PUSH2 0x3713
0000370e: DUP4
0000370f: PUSH2 0x303b
00003712: JUMP
00003713: JUMPDEST
00003714: SWAP3
00003715: POP
00003716: DUP3
00003717: DUP3
00003718: LT
00003719: ISZERO
0000371a: PUSH2 0x3726
0000371d: JUMPI
0000371e: PUSH2 0x3725
00003721: PUSH2 0x36ce
00003724: JUMP
00003725: JUMPDEST
00003726: JUMPDEST
00003727: DUP3
00003728: DUP3
00003729: SUB
0000372a: SWAP1
0000372b: POP
0000372c: SWAP3
0000372d: SWAP2
0000372e: POP
0000372f: POP
00003730: JUMP
00003731: JUMPDEST
00003732: PUSH1 0x00
00003734: PUSH2 0x373c
00003737: DUP3
00003738: PUSH2 0x303b
0000373b: JUMP
0000373c: JUMPDEST
0000373d: SWAP2
0000373e: POP
0000373f: PUSH2 0x3747
00003742: DUP4
00003743: PUSH2 0x303b
00003746: JUMP
00003747: JUMPDEST
00003748: SWAP3
00003749: POP
0000374a: DUP2
0000374b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000376c: DIV
0000376d: DUP4
0000376e: GT
0000376f: DUP3
00003770: ISZERO
00003771: ISZERO
00003772: AND
00003773: ISZERO
00003774: PUSH2 0x3780
00003777: JUMPI
00003778: PUSH2 0x377f
0000377b: PUSH2 0x36ce
0000377e: JUMP
0000377f: JUMPDEST
00003780: JUMPDEST
00003781: DUP3
00003782: DUP3
00003783: MUL
00003784: SWAP1
00003785: POP
00003786: SWAP3
00003787: SWAP2
00003788: POP
00003789: POP
0000378a: JUMP
0000378b: JUMPDEST
0000378c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000037ad: PUSH1 0x00
000037af: MSTORE
000037b0: PUSH1 0x12
000037b2: PUSH1 0x04
000037b4: MSTORE
000037b5: PUSH1 0x24
000037b7: PUSH1 0x00
000037b9: REVERT
000037ba: JUMPDEST
000037bb: PUSH1 0x00
000037bd: PUSH2 0x37c5
000037c0: DUP3
000037c1: PUSH2 0x303b
000037c4: JUMP
000037c5: JUMPDEST
000037c6: SWAP2
000037c7: POP
000037c8: PUSH2 0x37d0
000037cb: DUP4
000037cc: PUSH2 0x303b
000037cf: JUMP
000037d0: JUMPDEST
000037d1: SWAP3
000037d2: POP
000037d3: DUP3
000037d4: PUSH2 0x37e0
000037d7: JUMPI
000037d8: PUSH2 0x37df
000037db: PUSH2 0x378b
000037de: JUMP
000037df: JUMPDEST
000037e0: JUMPDEST
000037e1: DUP3
000037e2: DUP3
000037e3: DIV
000037e4: SWAP1
000037e5: POP
000037e6: SWAP3
000037e7: SWAP2
000037e8: POP
000037e9: POP
000037ea: JUMP
000037eb: JUMPDEST
000037ec: PUSH1 0x00
000037ee: PUSH2 0x37f6
000037f1: DUP3
000037f2: PUSH2 0x303b
000037f5: JUMP
000037f6: JUMPDEST
000037f7: SWAP2
000037f8: POP
000037f9: PUSH2 0x3801
000037fc: DUP4
000037fd: PUSH2 0x303b
00003800: JUMP
00003801: JUMPDEST
00003802: SWAP3
00003803: POP
00003804: DUP3
00003805: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003826: SUB
00003827: DUP3
00003828: GT
00003829: ISZERO
0000382a: PUSH2 0x3836
0000382d: JUMPI
0000382e: PUSH2 0x3835
00003831: PUSH2 0x36ce
00003834: JUMP
00003835: JUMPDEST
00003836: JUMPDEST
00003837: DUP3
00003838: DUP3
00003839: ADD
0000383a: SWAP1
0000383b: POP
0000383c: SWAP3
0000383d: SWAP2
0000383e: POP
0000383f: POP
00003840: JUMP
00003841: JUMPDEST
00003842: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
00003863: PUSH1 0x00
00003865: DUP3
00003866: ADD
00003867: MSTORE
00003868: POP
00003869: JUMP
0000386a: JUMPDEST
0000386b: PUSH1 0x00
0000386d: PUSH2 0x3877
00003870: PUSH1 0x20
00003872: DUP4
00003873: PUSH2 0x3651
00003876: JUMP
00003877: JUMPDEST
00003878: SWAP2
00003879: POP
0000387a: PUSH2 0x3882
0000387d: DUP3
0000387e: PUSH2 0x3841
00003881: JUMP
00003882: JUMPDEST
00003883: PUSH1 0x20
00003885: DUP3
00003886: ADD
00003887: SWAP1
00003888: POP
00003889: SWAP2
0000388a: SWAP1
0000388b: POP
0000388c: JUMP
0000388d: JUMPDEST
0000388e: PUSH1 0x00
00003890: PUSH1 0x20
00003892: DUP3
00003893: ADD
00003894: SWAP1
00003895: POP
00003896: DUP2
00003897: DUP2
00003898: SUB
00003899: PUSH1 0x00
0000389b: DUP4
0000389c: ADD
0000389d: MSTORE
0000389e: PUSH2 0x38a6
000038a1: DUP2
000038a2: PUSH2 0x386a
000038a5: JUMP
000038a6: JUMPDEST
000038a7: SWAP1
000038a8: POP
000038a9: SWAP2
000038aa: SWAP1
000038ab: POP
000038ac: JUMP
000038ad: JUMPDEST
000038ae: PUSH1 0x00
000038b0: DUP2
000038b1: SWAP1
000038b2: POP
000038b3: SWAP2
000038b4: SWAP1
000038b5: POP
000038b6: JUMP
000038b7: JUMPDEST
000038b8: PUSH1 0x00
000038ba: PUSH1 0xff
000038bc: DUP3
000038bd: AND
000038be: SWAP1
000038bf: POP
000038c0: SWAP2
000038c1: SWAP1
000038c2: POP
000038c3: JUMP
000038c4: JUMPDEST
000038c5: PUSH1 0x00
000038c7: PUSH2 0x38df
000038ca: PUSH2 0x38da
000038cd: PUSH2 0x38d5
000038d0: DUP5
000038d1: PUSH2 0x38ad
000038d4: JUMP
000038d5: JUMPDEST
000038d6: PUSH2 0x30e8
000038d9: JUMP
000038da: JUMPDEST
000038db: PUSH2 0x38b7
000038de: JUMP
000038df: JUMPDEST
000038e0: SWAP1
000038e1: POP
000038e2: SWAP2
000038e3: SWAP1
000038e4: POP
000038e5: JUMP
000038e6: JUMPDEST
000038e7: PUSH2 0x38ef
000038ea: DUP2
000038eb: PUSH2 0x38c4
000038ee: JUMP
000038ef: JUMPDEST
000038f0: DUP3
000038f1: MSTORE
000038f2: POP
000038f3: POP
000038f4: JUMP
000038f5: JUMPDEST
000038f6: PUSH1 0x00
000038f8: PUSH1 0x20
000038fa: DUP3
000038fb: ADD
000038fc: SWAP1
000038fd: POP
000038fe: PUSH2 0x390a
00003901: PUSH1 0x00
00003903: DUP4
00003904: ADD
00003905: DUP5
00003906: PUSH2 0x38e6
00003909: JUMP
0000390a: JUMPDEST
0000390b: SWAP3
0000390c: SWAP2
0000390d: POP
0000390e: POP
0000390f: JUMP
00003910: JUMPDEST
00003911: PUSH32 0x416c726561647920496e7469616c697a65645632000000000000000000000000
00003932: PUSH1 0x00
00003934: DUP3
00003935: ADD
00003936: MSTORE
00003937: POP
00003938: JUMP
00003939: JUMPDEST
0000393a: PUSH1 0x00
0000393c: PUSH2 0x3946
0000393f: PUSH1 0x14
00003941: DUP4
00003942: PUSH2 0x3651
00003945: JUMP
00003946: JUMPDEST
00003947: SWAP2
00003948: POP
00003949: PUSH2 0x3951
0000394c: DUP3
0000394d: PUSH2 0x3910
00003950: JUMP
00003951: JUMPDEST
00003952: PUSH1 0x20
00003954: DUP3
00003955: ADD
00003956: SWAP1
00003957: POP
00003958: SWAP2
00003959: SWAP1
0000395a: POP
0000395b: JUMP
0000395c: JUMPDEST
0000395d: PUSH1 0x00
0000395f: PUSH1 0x20
00003961: DUP3
00003962: ADD
00003963: SWAP1
00003964: POP
00003965: DUP2
00003966: DUP2
00003967: SUB
00003968: PUSH1 0x00
0000396a: DUP4
0000396b: ADD
0000396c: MSTORE
0000396d: PUSH2 0x3975
00003970: DUP2
00003971: PUSH2 0x3939
00003974: JUMP
00003975: JUMPDEST
00003976: SWAP1
00003977: POP
00003978: SWAP2
00003979: SWAP1
0000397a: POP
0000397b: JUMP
0000397c: JUMPDEST
0000397d: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061
0000399e: PUSH1 0x00
000039a0: DUP3
000039a1: ADD
000039a2: MSTORE
000039a3: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000
000039c4: PUSH1 0x20
000039c6: DUP3
000039c7: ADD
000039c8: MSTORE
000039c9: POP
000039ca: JUMP
000039cb: JUMPDEST
000039cc: PUSH1 0x00
000039ce: PUSH2 0x39d8
000039d1: PUSH1 0x26
000039d3: DUP4
000039d4: PUSH2 0x3651
000039d7: JUMP
000039d8: JUMPDEST
000039d9: SWAP2
000039da: POP
000039db: PUSH2 0x39e3
000039de: DUP3
000039df: PUSH2 0x397c
000039e2: JUMP
000039e3: JUMPDEST
000039e4: PUSH1 0x40
000039e6: DUP3
000039e7: ADD
000039e8: SWAP1
000039e9: POP
000039ea: SWAP2
000039eb: SWAP1
000039ec: POP
000039ed: JUMP
000039ee: JUMPDEST
000039ef: PUSH1 0x00
000039f1: PUSH1 0x20
000039f3: DUP3
000039f4: ADD
000039f5: SWAP1
000039f6: POP
000039f7: DUP2
000039f8: DUP2
000039f9: SUB
000039fa: PUSH1 0x00
000039fc: DUP4
000039fd: ADD
000039fe: MSTORE
000039ff: PUSH2 0x3a07
00003a02: DUP2
00003a03: PUSH2 0x39cb
00003a06: JUMP
00003a07: JUMPDEST
00003a08: SWAP1
00003a09: POP
00003a0a: SWAP2
00003a0b: SWAP1
00003a0c: POP
00003a0d: JUMP
00003a0e: JUMPDEST
00003a0f: PUSH1 0x00
00003a11: DUP2
00003a12: PUSH1 0x01
00003a14: SHR
00003a15: SWAP1
00003a16: POP
00003a17: SWAP2
00003a18: SWAP1
00003a19: POP
00003a1a: JUMP
00003a1b: JUMPDEST
00003a1c: PUSH1 0x00
00003a1e: DUP1
00003a1f: DUP3
00003a20: SWAP2
00003a21: POP
00003a22: DUP4
00003a23: SWAP1
00003a24: POP
00003a25: JUMPDEST
00003a26: PUSH1 0x01
00003a28: DUP6
00003a29: GT
00003a2a: ISZERO
00003a2b: PUSH2 0x3a65
00003a2e: JUMPI
00003a2f: DUP1
00003a30: DUP7
00003a31: DIV
00003a32: DUP2
00003a33: GT
00003a34: ISZERO
00003a35: PUSH2 0x3a41
00003a38: JUMPI
00003a39: PUSH2 0x3a40
00003a3c: PUSH2 0x36ce
00003a3f: JUMP
00003a40: JUMPDEST
00003a41: JUMPDEST
00003a42: PUSH1 0x01
00003a44: DUP6
00003a45: AND
00003a46: ISZERO
00003a47: PUSH2 0x3a50
00003a4a: JUMPI
00003a4b: DUP1
00003a4c: DUP3
00003a4d: MUL
00003a4e: SWAP2
00003a4f: POP
00003a50: JUMPDEST
00003a51: DUP1
00003a52: DUP2
00003a53: MUL
00003a54: SWAP1
00003a55: POP
00003a56: PUSH2 0x3a5e
00003a59: DUP6
00003a5a: PUSH2 0x3a0e
00003a5d: JUMP
00003a5e: JUMPDEST
00003a5f: SWAP5
00003a60: POP
00003a61: PUSH2 0x3a25
00003a64: JUMP
00003a65: JUMPDEST
00003a66: SWAP5
00003a67: POP
00003a68: SWAP5
00003a69: SWAP3
00003a6a: POP
00003a6b: POP
00003a6c: POP
00003a6d: JUMP
00003a6e: JUMPDEST
00003a6f: PUSH1 0x00
00003a71: DUP3
00003a72: PUSH2 0x3a7e
00003a75: JUMPI
00003a76: PUSH1 0x01
00003a78: SWAP1
00003a79: POP
00003a7a: PUSH2 0x3b3a
00003a7d: JUMP
00003a7e: JUMPDEST
00003a7f: DUP2
00003a80: PUSH2 0x3a8c
00003a83: JUMPI
00003a84: PUSH1 0x00
00003a86: SWAP1
00003a87: POP
00003a88: PUSH2 0x3b3a
00003a8b: JUMP
00003a8c: JUMPDEST
00003a8d: DUP2
00003a8e: PUSH1 0x01
00003a90: DUP2
00003a91: EQ
00003a92: PUSH2 0x3aa2
00003a95: JUMPI
00003a96: PUSH1 0x02
00003a98: DUP2
00003a99: EQ
00003a9a: PUSH2 0x3aac
00003a9d: JUMPI
00003a9e: PUSH2 0x3adb
00003aa1: JUMP
00003aa2: JUMPDEST
00003aa3: PUSH1 0x01
00003aa5: SWAP2
00003aa6: POP
00003aa7: POP
00003aa8: PUSH2 0x3b3a
00003aab: JUMP
00003aac: JUMPDEST
00003aad: PUSH1 0xff
00003aaf: DUP5
00003ab0: GT
00003ab1: ISZERO
00003ab2: PUSH2 0x3abe
00003ab5: JUMPI
00003ab6: PUSH2 0x3abd
00003ab9: PUSH2 0x36ce
00003abc: JUMP
00003abd: JUMPDEST
00003abe: JUMPDEST
00003abf: DUP4
00003ac0: PUSH1 0x02
00003ac2: EXP
00003ac3: SWAP2
00003ac4: POP
00003ac5: DUP5
00003ac6: DUP3
00003ac7: GT
00003ac8: ISZERO
00003ac9: PUSH2 0x3ad5
00003acc: JUMPI
00003acd: PUSH2 0x3ad4
00003ad0: PUSH2 0x36ce
00003ad3: JUMP
00003ad4: JUMPDEST
00003ad5: JUMPDEST
00003ad6: POP
00003ad7: PUSH2 0x3b3a
00003ada: JUMP
00003adb: JUMPDEST
00003adc: POP
00003add: PUSH1 0x20
00003adf: DUP4
00003ae0: LT
00003ae1: PUSH2 0x0133
00003ae4: DUP4
00003ae5: LT
00003ae6: AND
00003ae7: PUSH1 0x4e
00003ae9: DUP5
00003aea: LT
00003aeb: PUSH1 0x0b
00003aed: DUP5
00003aee: LT
00003aef: AND
00003af0: OR
00003af1: ISZERO
00003af2: PUSH2 0x3b10
00003af5: JUMPI
00003af6: DUP3
00003af7: DUP3
00003af8: EXP
00003af9: SWAP1
00003afa: POP
00003afb: DUP4
00003afc: DUP2
00003afd: GT
00003afe: ISZERO
00003aff: PUSH2 0x3b0b
00003b02: JUMPI
00003b03: PUSH2 0x3b0a
00003b06: PUSH2 0x36ce
00003b09: JUMP
00003b0a: JUMPDEST
00003b0b: JUMPDEST
00003b0c: PUSH2 0x3b3a
00003b0f: JUMP
00003b10: JUMPDEST
00003b11: PUSH2 0x3b1d
00003b14: DUP5
00003b15: DUP5
00003b16: DUP5
00003b17: PUSH1 0x01
00003b19: PUSH2 0x3a1b
00003b1c: JUMP
00003b1d: JUMPDEST
00003b1e: SWAP3
00003b1f: POP
00003b20: SWAP1
00003b21: POP
00003b22: DUP2
00003b23: DUP5
00003b24: DIV
00003b25: DUP2
00003b26: GT
00003b27: ISZERO
00003b28: PUSH2 0x3b34
00003b2b: JUMPI
00003b2c: PUSH2 0x3b33
00003b2f: PUSH2 0x36ce
00003b32: JUMP
00003b33: JUMPDEST
00003b34: JUMPDEST
00003b35: DUP2
00003b36: DUP2
00003b37: MUL
00003b38: SWAP1
00003b39: POP
00003b3a: JUMPDEST
00003b3b: SWAP4
00003b3c: SWAP3
00003b3d: POP
00003b3e: POP
00003b3f: POP
00003b40: JUMP
00003b41: JUMPDEST
00003b42: PUSH1 0x00
00003b44: PUSH2 0x3b4c
00003b47: DUP3
00003b48: PUSH2 0x303b
00003b4b: JUMP
00003b4c: JUMPDEST
00003b4d: SWAP2
00003b4e: POP
00003b4f: PUSH2 0x3b57
00003b52: DUP4
00003b53: PUSH2 0x303b
00003b56: JUMP
00003b57: JUMPDEST
00003b58: SWAP3
00003b59: POP
00003b5a: PUSH2 0x3b84
00003b5d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003b7e: DUP5
00003b7f: DUP5
00003b80: PUSH2 0x3a6e
00003b83: JUMP
00003b84: JUMPDEST
00003b85: SWAP1
00003b86: POP
00003b87: SWAP3
00003b88: SWAP2
00003b89: POP
00003b8a: POP
00003b8b: JUMP
00003b8c: JUMPDEST
00003b8d: PUSH1 0x00
00003b8f: PUSH1 0x80
00003b91: DUP3
00003b92: ADD
00003b93: SWAP1
00003b94: POP
00003b95: PUSH2 0x3ba1
00003b98: PUSH1 0x00
00003b9a: DUP4
00003b9b: ADD
00003b9c: DUP8
00003b9d: PUSH2 0x309e
00003ba0: JUMP
00003ba1: JUMPDEST
00003ba2: PUSH2 0x3bae
00003ba5: PUSH1 0x20
00003ba7: DUP4
00003ba8: ADD
00003ba9: DUP7
00003baa: PUSH2 0x309e
00003bad: JUMP
00003bae: JUMPDEST
00003baf: PUSH2 0x3bbb
00003bb2: PUSH1 0x40
00003bb4: DUP4
00003bb5: ADD
00003bb6: DUP6
00003bb7: PUSH2 0x309e
00003bba: JUMP
00003bbb: JUMPDEST
00003bbc: PUSH2 0x3bc8
00003bbf: PUSH1 0x60
00003bc1: DUP4
00003bc2: ADD
00003bc3: DUP5
00003bc4: PUSH2 0x309e
00003bc7: JUMP
00003bc8: JUMPDEST
00003bc9: SWAP6
00003bca: SWAP5
00003bcb: POP
00003bcc: POP
00003bcd: POP
00003bce: POP
00003bcf: POP
00003bd0: JUMP
00003bd1: JUMPDEST
00003bd2: PUSH1 0x00
00003bd4: PUSH1 0x40
00003bd6: DUP3
00003bd7: ADD
00003bd8: SWAP1
00003bd9: POP
00003bda: PUSH2 0x3be6
00003bdd: PUSH1 0x00
00003bdf: DUP4
00003be0: ADD
00003be1: DUP6
00003be2: PUSH2 0x3159
00003be5: JUMP
00003be6: JUMPDEST
00003be7: PUSH2 0x3bf3
00003bea: PUSH1 0x20
00003bec: DUP4
00003bed: ADD
00003bee: DUP5
00003bef: PUSH2 0x309e
00003bf2: JUMP
00003bf3: JUMPDEST
00003bf4: SWAP4
00003bf5: SWAP3
00003bf6: POP
00003bf7: POP
00003bf8: POP
00003bf9: JUMP
00003bfa: JUMPDEST
00003bfb: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561
00003c1c: PUSH1 0x00
00003c1e: DUP3
00003c1f: ADD
00003c20: MSTORE
00003c21: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000
00003c42: PUSH1 0x20
00003c44: DUP3
00003c45: ADD
00003c46: MSTORE
00003c47: POP
00003c48: JUMP
00003c49: JUMPDEST
00003c4a: PUSH1 0x00
00003c4c: PUSH2 0x3c56
00003c4f: PUSH1 0x2e
00003c51: DUP4
00003c52: PUSH2 0x3651
00003c55: JUMP
00003c56: JUMPDEST
00003c57: SWAP2
00003c58: POP
00003c59: PUSH2 0x3c61
00003c5c: DUP3
00003c5d: PUSH2 0x3bfa
00003c60: JUMP
00003c61: JUMPDEST
00003c62: PUSH1 0x40
00003c64: DUP3
00003c65: ADD
00003c66: SWAP1
00003c67: POP
00003c68: SWAP2
00003c69: SWAP1
00003c6a: POP
00003c6b: JUMP
00003c6c: JUMPDEST
00003c6d: PUSH1 0x00
00003c6f: PUSH1 0x20
00003c71: DUP3
00003c72: ADD
00003c73: SWAP1
00003c74: POP
00003c75: DUP2
00003c76: DUP2
00003c77: SUB
00003c78: PUSH1 0x00
00003c7a: DUP4
00003c7b: ADD
00003c7c: MSTORE
00003c7d: PUSH2 0x3c85
00003c80: DUP2
00003c81: PUSH2 0x3c49
00003c84: JUMP
00003c85: JUMPDEST
00003c86: SWAP1
00003c87: POP
00003c88: SWAP2
00003c89: SWAP1
00003c8a: POP
00003c8b: JUMP
00003c8c: JUMPDEST
00003c8d: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069
00003cae: PUSH1 0x00
00003cb0: DUP3
00003cb1: ADD
00003cb2: MSTORE
00003cb3: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000
00003cd4: PUSH1 0x20
00003cd6: DUP3
00003cd7: ADD
00003cd8: MSTORE
00003cd9: POP
00003cda: JUMP
00003cdb: JUMPDEST
00003cdc: PUSH1 0x00
00003cde: PUSH2 0x3ce8
00003ce1: PUSH1 0x2b
00003ce3: DUP4
00003ce4: PUSH2 0x3651
00003ce7: JUMP
00003ce8: JUMPDEST
00003ce9: SWAP2
00003cea: POP
00003ceb: PUSH2 0x3cf3
00003cee: DUP3
00003cef: PUSH2 0x3c8c
00003cf2: JUMP
00003cf3: JUMPDEST
00003cf4: PUSH1 0x40
00003cf6: DUP3
00003cf7: ADD
00003cf8: SWAP1
00003cf9: POP
00003cfa: SWAP2
00003cfb: SWAP1
00003cfc: POP
00003cfd: JUMP
00003cfe: JUMPDEST
00003cff: PUSH1 0x00
00003d01: PUSH1 0x20
00003d03: DUP3
00003d04: ADD
00003d05: SWAP1
00003d06: POP
00003d07: DUP2
00003d08: DUP2
00003d09: SUB
00003d0a: PUSH1 0x00
00003d0c: DUP4
00003d0d: ADD
00003d0e: MSTORE
00003d0f: PUSH2 0x3d17
00003d12: DUP2
00003d13: PUSH2 0x3cdb
00003d16: JUMP
00003d17: JUMPDEST
00003d18: SWAP1
00003d19: POP
00003d1a: SWAP2
00003d1b: SWAP1
00003d1c: POP
00003d1d: JUMP
00003d1e: JUMPDEST
00003d1f: PUSH1 0x00
00003d21: DUP2
00003d22: MLOAD
00003d23: SWAP1
00003d24: POP
00003d25: PUSH2 0x3d2d
00003d28: DUP2
00003d29: PUSH2 0x3045
00003d2c: JUMP
00003d2d: JUMPDEST
00003d2e: SWAP3
00003d2f: SWAP2
00003d30: POP
00003d31: POP
00003d32: JUMP
00003d33: JUMPDEST
00003d34: PUSH1 0x00
00003d36: PUSH1 0x20
00003d38: DUP3
00003d39: DUP5
00003d3a: SUB
00003d3b: SLT
00003d3c: ISZERO
00003d3d: PUSH2 0x3d49
00003d40: JUMPI
00003d41: PUSH2 0x3d48
00003d44: PUSH2 0x3036
00003d47: JUMP
00003d48: JUMPDEST
00003d49: JUMPDEST
00003d4a: PUSH1 0x00
00003d4c: PUSH2 0x3d57
00003d4f: DUP5
00003d50: DUP3
00003d51: DUP6
00003d52: ADD
00003d53: PUSH2 0x3d1e
00003d56: JUMP
00003d57: JUMPDEST
00003d58: SWAP2
00003d59: POP
00003d5a: POP
00003d5b: SWAP3
00003d5c: SWAP2
00003d5d: POP
00003d5e: POP
00003d5f: JUMP
00003d60: JUMPDEST
00003d61: PUSH2 0x3d69
00003d64: DUP2
00003d65: PUSH2 0x34a4
00003d68: JUMP
00003d69: JUMPDEST
00003d6a: DUP2
00003d6b: EQ
00003d6c: PUSH2 0x3d74
00003d6f: JUMPI
00003d70: PUSH1 0x00
00003d72: DUP1
00003d73: REVERT
00003d74: JUMPDEST
00003d75: POP
00003d76: JUMP
00003d77: JUMPDEST
00003d78: PUSH1 0x00
00003d7a: DUP2
00003d7b: MLOAD
00003d7c: SWAP1
00003d7d: POP
00003d7e: PUSH2 0x3d86
00003d81: DUP2
00003d82: PUSH2 0x3d60
00003d85: JUMP
00003d86: JUMPDEST
00003d87: SWAP3
00003d88: SWAP2
00003d89: POP
00003d8a: POP
00003d8b: JUMP
00003d8c: JUMPDEST
00003d8d: PUSH1 0x00
00003d8f: PUSH1 0x20
00003d91: DUP3
00003d92: DUP5
00003d93: SUB
00003d94: SLT
00003d95: ISZERO
00003d96: PUSH2 0x3da2
00003d99: JUMPI
00003d9a: PUSH2 0x3da1
00003d9d: PUSH2 0x3036
00003da0: JUMP
00003da1: JUMPDEST
00003da2: JUMPDEST
00003da3: PUSH1 0x00
00003da5: PUSH2 0x3db0
00003da8: DUP5
00003da9: DUP3
00003daa: DUP6
00003dab: ADD
00003dac: PUSH2 0x3d77
00003daf: JUMP
00003db0: JUMPDEST
00003db1: SWAP2
00003db2: POP
00003db3: POP
00003db4: SWAP3
00003db5: SWAP2
00003db6: POP
00003db7: POP
00003db8: JUMP
00003db9: JUMPDEST
00003dba: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e
00003ddb: PUSH1 0x00
00003ddd: DUP3
00003dde: ADD
00003ddf: MSTORE
00003de0: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000
00003e01: PUSH1 0x20
00003e03: DUP3
00003e04: ADD
00003e05: MSTORE
00003e06: POP
00003e07: JUMP
00003e08: JUMPDEST
00003e09: PUSH1 0x00
00003e0b: PUSH2 0x3e15
00003e0e: PUSH1 0x2a
00003e10: DUP4
00003e11: PUSH2 0x3651
00003e14: JUMP
00003e15: JUMPDEST
00003e16: SWAP2
00003e17: POP
00003e18: PUSH2 0x3e20
00003e1b: DUP3
00003e1c: PUSH2 0x3db9
00003e1f: JUMP
00003e20: JUMPDEST
00003e21: PUSH1 0x40
00003e23: DUP3
00003e24: ADD
00003e25: SWAP1
00003e26: POP
00003e27: SWAP2
00003e28: SWAP1
00003e29: POP
00003e2a: JUMP
00003e2b: JUMPDEST
00003e2c: PUSH1 0x00
00003e2e: PUSH1 0x20
00003e30: DUP3
00003e31: ADD
00003e32: SWAP1
00003e33: POP
00003e34: DUP2
00003e35: DUP2
00003e36: SUB
00003e37: PUSH1 0x00
00003e39: DUP4
00003e3a: ADD
00003e3b: MSTORE
00003e3c: PUSH2 0x3e44
00003e3f: DUP2
00003e40: PUSH2 0x3e08
00003e43: JUMP
00003e44: JUMPDEST
00003e45: SWAP1
00003e46: POP
00003e47: SWAP2
00003e48: SWAP1
00003e49: POP
00003e4a: JUMP
00003e4b: JUMPDEST
00003e4c: PUSH1 0x00
00003e4e: PUSH1 0x60
00003e50: DUP3
00003e51: ADD
00003e52: SWAP1
00003e53: POP
00003e54: PUSH2 0x3e60
00003e57: PUSH1 0x00
00003e59: DUP4
00003e5a: ADD
00003e5b: DUP7
00003e5c: PUSH2 0x3159
00003e5f: JUMP
00003e60: JUMPDEST
00003e61: PUSH2 0x3e6d
00003e64: PUSH1 0x20
00003e66: DUP4
00003e67: ADD
00003e68: DUP6
00003e69: PUSH2 0x3159
00003e6c: JUMP
00003e6d: JUMPDEST
00003e6e: PUSH2 0x3e7a
00003e71: PUSH1 0x40
00003e73: DUP4
00003e74: ADD
00003e75: DUP5
00003e76: PUSH2 0x309e
00003e79: JUMP
00003e7a: JUMPDEST
00003e7b: SWAP5
00003e7c: SWAP4
00003e7d: POP
00003e7e: POP
00003e7f: POP
00003e80: POP
00003e81: JUMP
00003e82: JUMPDEST
00003e83: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f
00003ea4: PUSH1 0x00
00003ea6: DUP3
00003ea7: ADD
00003ea8: MSTORE
00003ea9: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000
00003eca: PUSH1 0x20
00003ecc: DUP3
00003ecd: ADD
00003ece: MSTORE
00003ecf: POP
00003ed0: JUMP
00003ed1: JUMPDEST
00003ed2: PUSH1 0x00
00003ed4: PUSH2 0x3ede
00003ed7: PUSH1 0x26
00003ed9: DUP4
00003eda: PUSH2 0x3651
00003edd: JUMP
00003ede: JUMPDEST
00003edf: SWAP2
00003ee0: POP
00003ee1: PUSH2 0x3ee9
00003ee4: DUP3
00003ee5: PUSH2 0x3e82
00003ee8: JUMP
00003ee9: JUMPDEST
00003eea: PUSH1 0x40
00003eec: DUP3
00003eed: ADD
00003eee: SWAP1
00003eef: POP
00003ef0: SWAP2
00003ef1: SWAP1
00003ef2: POP
00003ef3: JUMP
00003ef4: JUMPDEST
00003ef5: PUSH1 0x00
00003ef7: PUSH1 0x20
00003ef9: DUP3
00003efa: ADD
00003efb: SWAP1
00003efc: POP
00003efd: DUP2
00003efe: DUP2
00003eff: SUB
00003f00: PUSH1 0x00
00003f02: DUP4
00003f03: ADD
00003f04: MSTORE
00003f05: PUSH2 0x3f0d
00003f08: DUP2
00003f09: PUSH2 0x3ed1
00003f0c: JUMP
00003f0d: JUMPDEST
00003f0e: SWAP1
00003f0f: POP
00003f10: SWAP2
00003f11: SWAP1
00003f12: POP
00003f13: JUMP
00003f14: JUMPDEST
00003f15: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00003f36: PUSH1 0x00
00003f38: DUP3
00003f39: ADD
00003f3a: MSTORE
00003f3b: POP
00003f3c: JUMP
00003f3d: JUMPDEST
00003f3e: PUSH1 0x00
00003f40: PUSH2 0x3f4a
00003f43: PUSH1 0x1d
00003f45: DUP4
00003f46: PUSH2 0x3651
00003f49: JUMP
00003f4a: JUMPDEST
00003f4b: SWAP2
00003f4c: POP
00003f4d: PUSH2 0x3f55
00003f50: DUP3
00003f51: PUSH2 0x3f14
00003f54: JUMP
00003f55: JUMPDEST
00003f56: PUSH1 0x20
00003f58: DUP3
00003f59: ADD
00003f5a: SWAP1
00003f5b: POP
00003f5c: SWAP2
00003f5d: SWAP1
00003f5e: POP
00003f5f: JUMP
00003f60: JUMPDEST
00003f61: PUSH1 0x00
00003f63: PUSH1 0x20
00003f65: DUP3
00003f66: ADD
00003f67: SWAP1
00003f68: POP
00003f69: DUP2
00003f6a: DUP2
00003f6b: SUB
00003f6c: PUSH1 0x00
00003f6e: DUP4
00003f6f: ADD
00003f70: MSTORE
00003f71: PUSH2 0x3f79
00003f74: DUP2
00003f75: PUSH2 0x3f3d
00003f78: JUMP
00003f79: JUMPDEST
00003f7a: SWAP1
00003f7b: POP
00003f7c: SWAP2
00003f7d: SWAP1
00003f7e: POP
00003f7f: JUMP
00003f80: JUMPDEST
00003f81: PUSH1 0x00
00003f83: DUP2
00003f84: MLOAD
00003f85: SWAP1
00003f86: POP
00003f87: SWAP2
00003f88: SWAP1
00003f89: POP
00003f8a: JUMP
00003f8b: JUMPDEST
00003f8c: PUSH1 0x00
00003f8e: DUP2
00003f8f: SWAP1
00003f90: POP
00003f91: SWAP3
00003f92: SWAP2
00003f93: POP
00003f94: POP
00003f95: JUMP
00003f96: JUMPDEST
00003f97: PUSH1 0x00
00003f99: JUMPDEST
00003f9a: DUP4
00003f9b: DUP2
00003f9c: LT
00003f9d: ISZERO
00003f9e: PUSH2 0x3fb4
00003fa1: JUMPI
00003fa2: DUP1
00003fa3: DUP3
00003fa4: ADD
00003fa5: MLOAD
00003fa6: DUP2
00003fa7: DUP5
00003fa8: ADD
00003fa9: MSTORE
00003faa: PUSH1 0x20
00003fac: DUP2
00003fad: ADD
00003fae: SWAP1
00003faf: POP
00003fb0: PUSH2 0x3f99
00003fb3: JUMP
00003fb4: JUMPDEST
00003fb5: DUP4
00003fb6: DUP2
00003fb7: GT
00003fb8: ISZERO
00003fb9: PUSH2 0x3fc3
00003fbc: JUMPI
00003fbd: PUSH1 0x00
00003fbf: DUP5
00003fc0: DUP5
00003fc1: ADD
00003fc2: MSTORE
00003fc3: JUMPDEST
00003fc4: POP
00003fc5: POP
00003fc6: POP
00003fc7: POP
00003fc8: JUMP
00003fc9: JUMPDEST
00003fca: PUSH1 0x00
00003fcc: PUSH2 0x3fd4
00003fcf: DUP3
00003fd0: PUSH2 0x3f80
00003fd3: JUMP
00003fd4: JUMPDEST
00003fd5: PUSH2 0x3fde
00003fd8: DUP2
00003fd9: DUP6
00003fda: PUSH2 0x3f8b
00003fdd: JUMP
00003fde: JUMPDEST
00003fdf: SWAP4
00003fe0: POP
00003fe1: PUSH2 0x3fee
00003fe4: DUP2
00003fe5: DUP6
00003fe6: PUSH1 0x20
00003fe8: DUP7
00003fe9: ADD
00003fea: PUSH2 0x3f96
00003fed: JUMP
00003fee: JUMPDEST
00003fef: DUP1
00003ff0: DUP5
00003ff1: ADD
00003ff2: SWAP2
00003ff3: POP
00003ff4: POP
00003ff5: SWAP3
00003ff6: SWAP2
00003ff7: POP
00003ff8: POP
00003ff9: JUMP
00003ffa: JUMPDEST
00003ffb: PUSH1 0x00
00003ffd: PUSH2 0x4006
00004000: DUP3
00004001: DUP5
00004002: PUSH2 0x3fc9
00004005: JUMP
00004006: JUMPDEST
00004007: SWAP2
00004008: POP
00004009: DUP2
0000400a: SWAP1
0000400b: POP
0000400c: SWAP3
0000400d: SWAP2
0000400e: POP
0000400f: POP
00004010: JUMP
00004011: JUMPDEST
00004012: PUSH1 0x00
00004014: DUP2
00004015: MLOAD
00004016: SWAP1
00004017: POP
00004018: SWAP2
00004019: SWAP1
0000401a: POP
0000401b: JUMP
0000401c: JUMPDEST
0000401d: PUSH1 0x00
0000401f: PUSH1 0x1f
00004021: NOT
00004022: PUSH1 0x1f
00004024: DUP4
00004025: ADD
00004026: AND
00004027: SWAP1
00004028: POP
00004029: SWAP2
0000402a: SWAP1
0000402b: POP
0000402c: JUMP
0000402d: JUMPDEST
0000402e: PUSH1 0x00
00004030: PUSH2 0x4038
00004033: DUP3
00004034: PUSH2 0x4011
00004037: JUMP
00004038: JUMPDEST
00004039: PUSH2 0x4042
0000403c: DUP2
0000403d: DUP6
0000403e: PUSH2 0x3651
00004041: JUMP
00004042: JUMPDEST
00004043: SWAP4
00004044: POP
00004045: PUSH2 0x4052
00004048: DUP2
00004049: DUP6
0000404a: PUSH1 0x20
0000404c: DUP7
0000404d: ADD
0000404e: PUSH2 0x3f96
00004051: JUMP
00004052: JUMPDEST
00004053: PUSH2 0x405b
00004056: DUP2
00004057: PUSH2 0x401c
0000405a: JUMP
0000405b: JUMPDEST
0000405c: DUP5
0000405d: ADD
0000405e: SWAP2
0000405f: POP
00004060: POP
00004061: SWAP3
00004062: SWAP2
00004063: POP
00004064: POP
00004065: JUMP
00004066: JUMPDEST
00004067: PUSH1 0x00
00004069: PUSH1 0x20
0000406b: DUP3
0000406c: ADD
0000406d: SWAP1
0000406e: POP
0000406f: DUP2
00004070: DUP2
00004071: SUB
00004072: PUSH1 0x00
00004074: DUP4
00004075: ADD
00004076: MSTORE
00004077: PUSH2 0x4080
0000407a: DUP2
0000407b: DUP5
0000407c: PUSH2 0x402d
0000407f: JUMP
00004080: JUMPDEST
00004081: SWAP1
00004082: POP
00004083: SWAP3
00004084: SWAP2
00004085: POP
00004086: POP
00004087: JUMP
00004088: INVALID
00004089: LOG2
0000408a: PUSH5 0x6970667358
00004090: UNKNOWN(0x22)
00004091: SLT
00004092: KECCAK256
00004093: PUSH25 0xd7ed53a21d26e5a22b7a702620883a9263288620a1d940913c
000040ad: RETURNDATACOPY
000040ae: UNKNOWN(0xF8)
000040af: UNKNOWN(0xAA)
000040b0: DUP11
000040b1: UNKNOWN(0xE1)
000040b2: UNKNOWN(0xEF)
000040b3: PUSH5 0x736f6c6343
000040b9: STOP
000040ba: ADDMOD
000040bb: EXP
000040bc: STOP
000040bd: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical access_control codex Uninitialized deployment lets anyone become owner and drain all tokens 90 no
view
evidence_json
{
    "evidence": "initialize() is external and assigns ownership via __Ownable_init (contracts/Contract.sol:2265). saveMe() allows the owner to transfer arbitrary ERC20 balances (contracts/Contract.sol:2613).",
    "locations": [
        "contracts/Contract.sol:2265",
        "contracts/Contract.sol:2613"
    ],
    "recommendation": "Call initialize during deployment and add a constructor that calls _disableInitializers() on the implementation; alternatively restrict initialize to a trusted deployer via an initializer-only access control pattern.",
    "exploit_scenario": "1) If the proxy/contract is deployed without calling initialize(), an attacker calls initialize() to become owner (Ownable sets owner = msg.sender). 2) The attacker calls saveMe() to transfer out any ERC20 balances held by the contract (reward tokens and staked tokens). Profit: entire contract token balances (order of magnitude: total TVL in all pools)."
}
high reentrancy codex Anyone can reset the reentrancy guard via initializePoolV2, enabling reward inflation in deposit 85 no
view
evidence_json
{
    "evidence": "initializePoolV2 is external and resets _status (contracts/Contract.sol:2631, contracts/Contract.sol:2637). nonReentrant relies on _status (contracts/Contract.sol:2254). deposit calls transferFunds before updating user.amount/rewardDebt (contracts/Contract.sol:2446, contracts/Contract.sol:2449). transferFunds performs external token.safeTransferFrom (contracts/Contract.sol:2669, contracts/Contract.sol:2671).",
    "locations": [
        "contracts/Contract.sol:2254",
        "contracts/Contract.sol:2428",
        "contracts/Contract.sol:2446",
        "contracts/Contract.sol:2449",
        "contracts/Contract.sol:2631",
        "contracts/Contract.sol:2637",
        "contracts/Contract.sol:2669",
        "contracts/Contract.sol:2671"
    ],
    "recommendation": "Make initializePoolV2 a proper reinitializer restricted to onlyOwner and never touch _status, or remove it entirely. If it must exist, add nonReentrant/onlyOwner and redesign deposit to update user state before external transfers.",
    "exploit_scenario": "1) Target a pool whose staking token is ERC777 or otherwise calls back during transferFrom, and ensure initializePoolV2 has not been called yet (initializedV2 == false). 2) Stake normally to build pending rewards. 3) Call deposit() from an attacker contract; during transferFunds() the token callback calls initializePoolV2() to set _status back to _NOT_ENTERED, then reenters deposit() repeatedly before the original call finishes. Each reentrant deposit adds the same pending rewards to rewardCredit because user.amount and user.rewardDebt are not updated yet. 4) After the pool ends, call withdraw()/claimReward() to receive the inflated rewardCredit. Profit: up to the remaining rewardToken balance held by the contract for that token (order of magnitude: the pool totalReward, or more if other pools share the same reward token)."
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xe9ad3e9fcb2b720f4b3130378462e18a4b342edf03465c31fa0256ade2e7124a
call_targets: 0xfc59ab348e0c0e789e914b0864f08cab98db1553
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xe9ad3e9fcb2b720f4b3130378462e18a4b342edf03465c31fa0256ade2e7124a",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xfc59ab348e0c0e789e914b0864f08cab98db1553"
    ],
    "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": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf430cf0d",
            "selector": "0xf430cf0d",
            "calldata_variants": [
                "0xf430cf0d",
                "0xf430cf0d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa31a89c",
            "selector": "0xfa31a89c",
            "calldata_variants": [
                "0xfa31a89c",
                "0xfa31a89c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffd47db9",
            "selector": "0xffd47db9",
            "calldata_variants": [
                "0xffd47db9",
                "0xffd47db90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb3944d52",
            "selector": "0xb3944d52",
            "calldata_variants": [
                "0xb3944d52",
                "0xb3944d520000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc5f879dc",
            "selector": "0xc5f879dc",
            "calldata_variants": [
                "0xc5f879dc",
                "0xc5f879dc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe2bbb158",
            "selector": "0xe2bbb158",
            "calldata_variants": [
                "0xe2bbb158",
                "0xe2bbb1580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8129fc1c",
            "selector": "0x8129fc1c",
            "calldata_variants": [
                "0x8129fc1c",
                "0x8129fc1c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 12132,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 1,
    "guards_detected": [
        {
            "pc": 1955,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ],
    "untrusted_call_count": 1
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xe9ad3e9fcb2b720f4b3130378462e18a4b342edf03465c31fa0256ade2e7124a
call_targets: 0xfc59ab348e0c0e789e914b0864f08cab98db1553
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xe9ad3e9fcb2b720f4b3130378462e18a4b342edf03465c31fa0256ade2e7124a",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xfc59ab348e0c0e789e914b0864f08cab98db1553"
    ],
    "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": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf430cf0d",
            "selector": "0xf430cf0d",
            "calldata_variants": [
                "0xf430cf0d",
                "0xf430cf0d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfa31a89c",
            "selector": "0xfa31a89c",
            "calldata_variants": [
                "0xfa31a89c",
                "0xfa31a89c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffd47db9",
            "selector": "0xffd47db9",
            "calldata_variants": [
                "0xffd47db9",
                "0xffd47db90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb3944d52",
            "selector": "0xb3944d52",
            "calldata_variants": [
                "0xb3944d52",
                "0xb3944d520000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc5f879dc",
            "selector": "0xc5f879dc",
            "calldata_variants": [
                "0xc5f879dc",
                "0xc5f879dc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe2bbb158",
            "selector": "0xe2bbb158",
            "calldata_variants": [
                "0xe2bbb158",
                "0xe2bbb1580000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8129fc1c",
            "selector": "0x8129fc1c",
            "calldata_variants": [
                "0x8129fc1c",
                "0x8129fc1c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 12132,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 1,
    "guards_detected": [
        {
            "pc": 1955,
            "type": "msg_sender_eq_const",
            "value": "0xffffffffffffffffffffffffffffffffffffffff"
        }
    ]
}