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

Analysis Run

d07213c7-d170-4ec7-9a2f-5a0a3c2a27d3

failed
Chain ID
1
Address
Block Number
Created
Tue, Dec 30, 2025 12:30 AM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Authorization based on tx.origin
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
30629 report.consolidate complete 1 / 1 3 months ago
74770 artifact.fetch failed 1 / 3 1 week ago
74771 tool.cast_disasm complete 1 / 3 1 week ago
74772 analysis.bundle complete 1 / 3 1 week ago
74773 capability.graph complete 1 / 3 1 week ago
74774 detector.run complete 1 / 3 1 week ago
74775 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
1
No findings?
no
Summary
1 medium upgradeability issue: initialize is permissionless, enabling takeover if a proxy/upgrade isn’t initialized atomically.
View stderr
[codex:839956] OpenAI Codex v0.77.0 (research preview)
[codex:839956] --------
[codex:839956] workdir: /tmp/codex-multi-ut7g149n
[codex:839956] model: gpt-5.2-codex
[codex:839956] provider: openai
[codex:839956] approval: never
[codex:839956] sandbox: read-only
[codex:839956] reasoning effort: xhigh
[codex:839956] reasoning summaries: auto
[codex:839956] session id: 019b6ca5-75ee-7ba2-93eb-9ab97cec6e9c
[codex:839956] --------
[codex:839956] user
[codex:839956] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:839956] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:839956] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:839956] 
[codex:839956] Scope rules:
[codex:839956] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:839956] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:839956] 
[codex:839956] Output MUST be valid JSON matching the provided schema.
[codex:839956] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:839956] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:839956] 
[codex:839956] Output constraints (IMPORTANT):
[codex:839956] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:839956] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:839956] mcp startup: no servers
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Preparing to read audit bundle**
[codex:839956] exec
[codex:839956] /bin/bash -lc ls in /tmp/codex-multi-ut7g149n succeeded in 5ms:
[codex:839956] AUDIT_BUNDLE.txt
[codex:839956] codex-output-schema.json
[codex:839956] contracts
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 7ms:
[codex:839956] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:839956] 
[codex:839956] ================================================================================
[codex:839956] FILE: contracts/contracts/dependencies/openzeppelin/contracts/Address.sol
[codex:839956] ================================================================================
[codex:839956] // SPDX-License-Identifier: MIT
[codex:839956] 
[codex:839956] pragma solidity >=0.6.2 <0.8.0;
[codex:839956] 
[codex:839956] /**
[codex:839956]  * @dev Collection of functions related to the address type
[codex:839956]  */
[codex:839956] library Address {
[codex:839956]     /**
[codex:839956]      * @dev Returns true if `account` is a contract.
[codex:839956]      *
[codex:839956]      * [IMPORTANT]
[codex:839956]      * ====
[codex:839956]      * It is unsafe to assume that an address for which this function returns
[codex:839956]      * false is an externally-owned account (EOA) and not a contract.
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Reviewing AUDIT_BUNDLE content and scope**
[codex:839956] exec
[codex:839956] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-ut7g149n succeeded in 7ms:
[codex:839956] 4:FILE: contracts/contracts/dependencies/openzeppelin/contracts/Address.sol
[codex:839956] 261:FILE: contracts/contracts/dependencies/openzeppelin/contracts/Context.sol
[codex:839956] 289:FILE: contracts/contracts/dependencies/openzeppelin/contracts/IERC20.sol
[codex:839956] 383:FILE: contracts/contracts/dependencies/openzeppelin/contracts/IERC20Metadata.sol
[codex:839956] 415:FILE: contracts/contracts/dependencies/openzeppelin/contracts/SafeERC20.sol
[codex:839956] 551:FILE: contracts/contracts/dependencies/openzeppelin/contracts/SafeMath.sol
[codex:839956] 801:FILE: contracts/contracts/interfaces/IAToken.sol
[codex:839956] 932:FILE: contracts/contracts/interfaces/IInitializableAToken.sol
[codex:839956] 986:FILE: contracts/contracts/interfaces/ILendingPool.sol
[codex:839956] 1455:FILE: contracts/contracts/interfaces/ILendingPoolAddressesProvider.sol
[codex:839956] 1524:FILE: contracts/contracts/interfaces/IPhiatIncentivesController.sol
[codex:839956] 1628:FILE: contracts/contracts/interfaces/IScaledBalanceToken.sol
[codex:839956] 1661:FILE: contracts/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol
[codex:839956] 1744:FILE: contracts/contracts/protocol/libraries/helpers/Errors.sol
[codex:839956] 1882:FILE: contracts/contracts/protocol/libraries/math/WadRayMath.sol
[codex:839956] 2036:FILE: contracts/contracts/protocol/libraries/types/DataTypes.sol
[codex:839956] 2102:FILE: contracts/contracts/protocol/tokenization/AToken.sol
[codex:839956] 2578:FILE: contracts/contracts/protocol/tokenization/IncentivizedERC20.sol
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Planning full AUDIT_BUNDLE read**
[codex:839956] exec
[codex:839956] /bin/bash -lc 'wc -l AUDIT_BUNDLE.txt' in /tmp/codex-multi-ut7g149n succeeded in 5ms:
[codex:839956] 2893 AUDIT_BUNDLE.txt
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Continuing to read file segments**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956]     /**
[codex:839956]      * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
[codex:839956]      * but performing a delegate call.
[codex:839956]      *
[codex:839956]      * _Available since v3.4._
[codex:839956]      */
[codex:839956]     function functionDelegateCall(address target, bytes memory data)
[codex:839956]         internal
[codex:839956]         returns (bytes memory)
[codex:839956]     {
[codex:839956]         return
[codex:839956]             functionDelegateCall(
[codex:839956]                 target,
[codex:839956]                 data,
[codex:839956]                 "Address: low-level delegate call failed"
[codex:839956]             );
[codex:839956]     }
[codex:839956] 
[codex:839956]     /**
[codex:839956]      * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Continuing exploration**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 7ms:
[codex:839956]      */
[codex:839956]     function name() external view returns (string memory);
[codex:839956] 
[codex:839956]     /**
[codex:839956]      * @dev Returns the symbol of the token.
[codex:839956]      */
[codex:839956]     function symbol() external view returns (string memory);
[codex:839956] 
[codex:839956]     /**
[codex:839956]      * @dev Returns the decimals places of the token.
[codex:839956]      */
[codex:839956]     function decimals() external view returns (uint8);
[codex:839956] }
[codex:839956] 
[codex:839956] ================================================================================
[codex:839956] FILE: contracts/contracts/dependencies/openzeppelin/contracts/SafeERC20.sol
[codex:839956] ================================================================================
[codex:839956] // SPDX-License-Identifier: MIT
[codex:839956] 
[codex:839956] pragma solidity >=0.6.0 <0.8.0;
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Continuing reading**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956] ================================================================================
[codex:839956] FILE: contracts/contracts/interfaces/IAToken.sol
[codex:839956] ================================================================================
[codex:839956] // SPDX-License-Identifier: agpl-3.0
[codex:839956] pragma solidity 0.7.6;
[codex:839956] 
[codex:839956] import {IERC20} from "../dependencies/openzeppelin/contracts/IERC20.sol";
[codex:839956] import {IScaledBalanceToken} from "./IScaledBalanceToken.sol";
[codex:839956] import {IInitializableAToken} from "./IInitializableAToken.sol";
[codex:839956] import {IPhiatIncentivesController} from "./IPhiatIncentivesController.sol";
[codex:839956] 
[codex:839956] interface IAToken is IERC20, IScaledBalanceToken, IInitializableAToken {
[codex:839956]     /**
[codex:839956]      * @dev Emitted after the mint action
[codex:839956]      * @param from The address performing the mint
[codex:839956]      * @param value The amount being
[codex:839956]      * @param index The new liquidity index of the reserve
[codex:839956]      **/
[codex:839956]     event Mint(address indexed from, uint256 value, uint256 index);
[codex:839956] 
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Continuing process**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '1200,1600p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956]      * @param asset The address of the underlying asset to withdraw
[codex:839956]      * @param amount The underlying amount to be withdrawn
[codex:839956]      *   - Send the value type(uint256).max in order to withdraw the whole aToken balance
[codex:839956]      * @param to Address that will receive the underlying, same as msg.sender if the user
[codex:839956]      *   wants to receive it on his own wallet, or a different address if the beneficiary is a
[codex:839956]      *   different wallet
[codex:839956]      * @return The final amount withdrawn
[codex:839956]      **/
[codex:839956]     function withdraw(
[codex:839956]         address asset,
[codex:839956]         uint256 amount,
[codex:839956]         address to
[codex:839956]     ) external returns (uint256);
[codex:839956] 
[codex:839956]     /**
[codex:839956]      * @dev Allows users to borrow a specific `amount` of the reserve underlying asset, provided that the borrower
[codex:839956]      * already deposited enough collateral, or he was given enough allowance by a credit delegator on the
[codex:839956]      * corresponding debt token (StableDebtToken or VariableDebtToken)
[codex:839956]      * - E.g. User borrows 100 USDC passing as `onBehalfOf` his own address, receiving the 100 USDC in his wallet
[codex:839956]      *   and 100 stable/variable debt tokens, depending on the `interestRateMode`
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Continuing process**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '1600,2000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 5ms:
[codex:839956]     function getUserAssetData(address user, address asset)
[codex:839956]         external
[codex:839956]         view
[codex:839956]         returns (uint256);
[codex:839956] 
[codex:839956]     /**
[codex:839956]      * @dev claim all user rewards
[codex:839956]      * @param user the address of the user
[codex:839956]      */
[codex:839956]     function claimRewards(address user) external;
[codex:839956] 
[codex:839956]     /**
[codex:839956]      * @dev for backward compatibility with previous implementation of the Incentives controller
[codex:839956]      */
[codex:839956]     function REWARD_TOKEN() external view returns (address);
[codex:839956] 
[codex:839956]     /**
[codex:839956]      * @dev for backward compatibility with previous implementation of the Incentives controller
[codex:839956]      */
[codex:839956]     function PRECISION() external view returns (uint8);
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Proceeding with task**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '2000,2400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956]             a <= (type(uint256).max - halfB) / RAY,
[codex:839956]             Errors.MATH_MULTIPLICATION_OVERFLOW
[codex:839956]         );
[codex:839956] 
[codex:839956]         return (a * RAY + halfB) / b;
[codex:839956]     }
[codex:839956] 
[codex:839956]     /**
[codex:839956]      * @dev Casts ray down to wad
[codex:839956]      * @param a Ray
[codex:839956]      * @return a casted to wad, rounded half up to the nearest wad
[codex:839956]      **/
[codex:839956]     function rayToWad(uint256 a) internal pure returns (uint256) {
[codex:839956]         uint256 halfRatio = WAD_RAY_RATIO / 2;
[codex:839956]         uint256 result = halfRatio + a;
[codex:839956]         require(result >= halfRatio, Errors.MATH_ADDITION_OVERFLOW);
[codex:839956] 
[codex:839956]         return result / WAD_RAY_RATIO;
[codex:839956]     }
[codex:839956] 
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Continuing with AToken implementation**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '2400,2800p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956]         return super.totalSupply();
[codex:839956]     }
[codex:839956] 
[codex:839956]     /**
[codex:839956]      * @dev Returns the address of the Aave treasury, receiving the fees on this aToken
[codex:839956]      **/
[codex:839956]     function RESERVE_TREASURY_ADDRESS() public view override returns (address) {
[codex:839956]         return _treasury;
[codex:839956]     }
[codex:839956] 
[codex:839956]     /**
[codex:839956]      * @dev Returns the address of the underlying asset of this aToken (E.g. WETH for aWETH)
[codex:839956]      **/
[codex:839956]     function UNDERLYING_ASSET_ADDRESS() public view override returns (address) {
[codex:839956]         return _underlyingAsset;
[codex:839956]     }
[codex:839956] 
[codex:839956]     /**
[codex:839956]      * @dev Returns the address of the lending pool where this aToken is used
[codex:839956]      **/
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Continuing final steps**
[codex:839956] exec
[codex:839956] /bin/bash -lc "sed -n '2800,2893p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956]         uint256 oldRecipientBalance = _balances[recipient];
[codex:839956]         _balances[recipient] = _balances[recipient].add(amount);
[codex:839956] 
[codex:839956]         if (address(_getIncentivesController()) != address(0)) {
[codex:839956]             uint256 currentTotalSupply = _totalSupply;
[codex:839956]             _getIncentivesController().handleAction(
[codex:839956]                 sender,
[codex:839956]                 oldSenderBalance,
[codex:839956]                 currentTotalSupply
[codex:839956]             );
[codex:839956]             if (sender != recipient) {
[codex:839956]                 _getIncentivesController().handleAction(
[codex:839956]                     recipient,
[codex:839956]                     oldRecipientBalance,
[codex:839956]                     currentTotalSupply
[codex:839956]                 );
[codex:839956]             }
[codex:839956]         }
[codex:839956]     }
[codex:839956] 
[codex:839956] 
[codex:839956] 
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Analyzing potential vulnerabilities in token contracts**
[codex:839956] 
[codex:839956] I've carefully audited the AToken and IncentivizedERC20 code, focusing on permit signature validation, access control in initialization, possible reentrancy from external calls, and rounding or accounting mismatches in token transfers. I've identified typical risks like missing access control on initialize, the effects of signature malleability, and slight inconsistencies that might impact state but seem mostly safe. The initializer's lack of strict access control stands out as a notable risk for attack if deployment steps aren't atomic.
[codex:839956] thinking
[codex:839956] **Evaluating reentrancy and upgrade-related risks**
[codex:839956] 
[codex:839956] I'm examining external calls to the incentives controller during token transfers, noting a reentrancy window before LendingPool finalizes transfers that might allow state inconsistencies exploitable under certain conditions. The most significant issue seems to be unprotected initializer functions that could let an attacker seize control if initialization isn’t performed atomically, especially after upgrades. Other areas like permit signature checks and rounding effects appear minor or typical for such contracts.
[codex:839956] thinking
[codex:839956] **Preparing audit report details**
[codex:839956] 
[codex:839956] I'm organizing the key findings to generate a JSON report, planning to include precise file paths and line numbers by inspecting the actual source files, starting with AToken.sol. This way, the audit output will clearly reference code locations for the user.
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/protocol/tokenization/AToken.sol | sed -n '1,200p'" in /tmp/codex-multi-ut7g149n succeeded in 7ms:
[codex:839956]      1	// SPDX-License-Identifier: agpl-3.0
[codex:839956]      2	pragma solidity 0.7.6;
[codex:839956]      3	
[codex:839956]      4	import {IERC20} from "../../dependencies/openzeppelin/contracts/IERC20.sol";
[codex:839956]      5	import {SafeERC20} from "../../dependencies/openzeppelin/contracts/SafeERC20.sol";
[codex:839956]      6	import {ILendingPool} from "../../interfaces/ILendingPool.sol";
[codex:839956]      7	import {IAToken} from "../../interfaces/IAToken.sol";
[codex:839956]      8	import {WadRayMath} from "../libraries/math/WadRayMath.sol";
[codex:839956]      9	import {Errors} from "../libraries/helpers/Errors.sol";
[codex:839956]     10	import {VersionedInitializable} from "../libraries/aave-upgradeability/VersionedInitializable.sol";
[codex:839956]     11	import {IncentivizedERC20} from "./IncentivizedERC20.sol";
[codex:839956]     12	import {IPhiatIncentivesController} from "../../interfaces/IPhiatIncentivesController.sol";
[codex:839956]     13	import {SafeMath} from "../../dependencies/openzeppelin/contracts/SafeMath.sol";
[codex:839956]     14	
[codex:839956]     15	/**
[codex:839956]     16	 * @title Aave ERC20 AToken
[codex:839956]     17	 * @dev Implementation of the interest bearing token for the Aave protocol
[codex:839956]     18	 * @author Aave
[codex:839956]     19	 */
[codex:839956]     20	contract AToken is
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Checking line numbers around transfer function**
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/protocol/tokenization/IncentivizedERC20.sol | sed -n '120,260p'" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956]    120	        returns (uint256)
[codex:839956]    121	    {
[codex:839956]    122	        return _allowances[owner][spender];
[codex:839956]    123	    }
[codex:839956]    124	
[codex:839956]    125	    /**
[codex:839956]    126	     * @dev Allows `spender` to spend the tokens owned by _msgSender()
[codex:839956]    127	     * @param spender The user allowed to spend _msgSender() tokens
[codex:839956]    128	     * @return `true`
[codex:839956]    129	     **/
[codex:839956]    130	    function approve(address spender, uint256 amount)
[codex:839956]    131	        public
[codex:839956]    132	        virtual
[codex:839956]    133	        override
[codex:839956]    134	        returns (bool)
[codex:839956]    135	    {
[codex:839956]    136	        _approve(_msgSender(), spender, amount);
[codex:839956]    137	        return true;
[codex:839956]    138	    }
[codex:839956]    139	
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Analyzing security implications and vulnerabilities**
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/protocol/tokenization/AToken.sol | sed -n '200,340p'" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956]    200	     * @param to The recipient
[codex:839956]    201	     * @param value The amount of tokens getting transferred
[codex:839956]    202	     **/
[codex:839956]    203	    function transferOnLiquidation(
[codex:839956]    204	        address from,
[codex:839956]    205	        address to,
[codex:839956]    206	        uint256 value
[codex:839956]    207	    ) external override onlyLendingPool {
[codex:839956]    208	        // Being a normal transfer, the Transfer() and BalanceTransfer() are emitted
[codex:839956]    209	        // so no need to emit a specific event here
[codex:839956]    210	        _transfer(from, to, value, false);
[codex:839956]    211	
[codex:839956]    212	        emit Transfer(from, to, value);
[codex:839956]    213	    }
[codex:839956]    214	
[codex:839956]    215	    /**
[codex:839956]    216	     * @dev Calculates the balance of the user: principal balance + interest generated by the principal
[codex:839956]    217	     * @param user The user whose balance is calculated
[codex:839956]    218	     * @return The balance of the user
[codex:839956]    219	     **/
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Noting need for line numbers**
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/protocol/tokenization/AToken.sol | sed -n '340,520p'" in /tmp/codex-multi-ut7g149n succeeded in 7ms:
[codex:839956]    340	        external
[codex:839956]    341	        view
[codex:839956]    342	        override
[codex:839956]    343	        returns (IPhiatIncentivesController)
[codex:839956]    344	    {
[codex:839956]    345	        return _getIncentivesController();
[codex:839956]    346	    }
[codex:839956]    347	
[codex:839956]    348	    /**
[codex:839956]    349	     * @dev Transfers the underlying asset to `target`. Used by the LendingPool to transfer
[codex:839956]    350	     * assets in borrow(), withdraw() and flashLoan()
[codex:839956]    351	     * @param target The recipient of the aTokens
[codex:839956]    352	     * @param amount The amount getting transferred
[codex:839956]    353	     * @return The amount transferred
[codex:839956]    354	     **/
[codex:839956]    355	    function transferUnderlyingTo(address target, uint256 amount)
[codex:839956]    356	        external
[codex:839956]    357	        override
[codex:839956]    358	        onlyLendingPool
[codex:839956]    359	        returns (uint256)
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Checking transfer parameter consistency**
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/interfaces/ILendingPool.sol | sed -n '210,340p'" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956]    210	    /**
[codex:839956]    211	     * @dev Withdraws an `amount` of underlying asset from the reserve, burning the equivalent aTokens owned
[codex:839956]    212	     * E.g. User has 100 aUSDC, calls withdraw() and receives 100 USDC, burning the 100 aUSDC
[codex:839956]    213	     * @param asset The address of the underlying asset to withdraw
[codex:839956]    214	     * @param amount The underlying amount to be withdrawn
[codex:839956]    215	     *   - Send the value type(uint256).max in order to withdraw the whole aToken balance
[codex:839956]    216	     * @param to Address that will receive the underlying, same as msg.sender if the user
[codex:839956]    217	     *   wants to receive it on his own wallet, or a different address if the beneficiary is a
[codex:839956]    218	     *   different wallet
[codex:839956]    219	     * @return The final amount withdrawn
[codex:839956]    220	     **/
[codex:839956]    221	    function withdraw(
[codex:839956]    222	        address asset,
[codex:839956]    223	        uint256 amount,
[codex:839956]    224	        address to
[codex:839956]    225	    ) external returns (uint256);
[codex:839956]    226	
[codex:839956]    227	    /**
[codex:839956]    228	     * @dev Allows users to borrow a specific `amount` of the reserve underlying asset, provided that the borrower
[codex:839956]    229	     * already deposited enough collateral, or he was given enough allowance by a credit delegator on the
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Adding line numbers near finalizeTransfer**
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/interfaces/ILendingPool.sol | sed -n '430,520p'" in /tmp/codex-multi-ut7g149n succeeded in 8ms:
[codex:839956]    430	        external
[codex:839956]    431	        view
[codex:839956]    432	        returns (DataTypes.ReserveData memory);
[codex:839956]    433	
[codex:839956]    434	    /**
[codex:839956]    435	     * @dev Returns the limits of the reserve
[codex:839956]    436	     * @param asset The address of the underlying asset of the reserve
[codex:839956]    437	     * @return The limits of the reserve
[codex:839956]    438	     **/
[codex:839956]    439	    function getReserveLimits(address asset)
[codex:839956]    440	        external
[codex:839956]    441	        view
[codex:839956]    442	        returns (DataTypes.ReserveLimits memory);
[codex:839956]    443	
[codex:839956]    444	    function finalizeTransfer(
[codex:839956]    445	        address asset,
[codex:839956]    446	        address from,
[codex:839956]    447	        address to,
[codex:839956]    448	        uint256 amount,
[codex:839956]    449	        uint256 balanceFromAfter,
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Analyzing transfer parameter mismatch and reentrancy risks**
[codex:839956] exec
[codex:839956] /bin/bash -lc "nl -ba contracts/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol | sed -n '1,120p'" in /tmp/codex-multi-ut7g149n succeeded in 6ms:
[codex:839956]      1	// SPDX-License-Identifier: agpl-3.0
[codex:839956]      2	pragma solidity 0.7.6;
[codex:839956]      3	
[codex:839956]      4	/**
[codex:839956]      5	 * @title VersionedInitializable
[codex:839956]      6	 *
[codex:839956]      7	 * @dev Helper contract to implement initializer functions. To use it, replace
[codex:839956]      8	 * the constructor with a function that has the `initializer` modifier.
[codex:839956]      9	 * WARNING: Unlike constructors, initializer functions must be manually
[codex:839956]     10	 * invoked. This applies both to deploying an Initializable contract, as well
[codex:839956]     11	 * as extending an Initializable contract via inheritance.
[codex:839956]     12	 * WARNING: When used with inheritance, manual care must be taken to not invoke
[codex:839956]     13	 * a parent initializer twice, or ensure that all initializers are idempotent,
[codex:839956]     14	 * because this is not dealt with automatically as with constructors.
[codex:839956]     15	 *
[codex:839956]     16	 * @author Aave, inspired by the OpenZeppelin Initializable contract
[codex:839956]     17	 */
[codex:839956]     18	abstract contract VersionedInitializable {
[codex:839956]     19	    /**
[codex:839956]     20	     * @dev Indicates that the contract has been initialized.
[codex:839956] 
[codex:839956] thinking
[codex:839956] **Preparing JSON report for upgradeability finding**
[codex:839956] 
[codex:839956] I'm putting together a valid JSON report that highlights an unprotected initializer vulnerability across two contract locations, ensuring the summary, exploit scenario, evidence, and recommendation are detailed properly without any extra text or formatting beyond strict JSON.
[codex:839956] codex
[codex:839956] {"no_findings":false,"summary":"1 medium upgradeability issue: initialize is permissionless, enabling takeover if a proxy/upgrade isn’t initialized atomically.","findings":[{"severity":"medium","category":"upgradeability","title":"Unprotected initializer allows takeover of uninitialized proxy or post-upgrade reinitialization","exploit_scenario":"If a proxy is deployed without calling `initialize` in the same transaction (or an upgrade introduces a new revision), any external account can call `initialize` first and set `_pool`, `_treasury`, and `_underlyingAsset` to attacker-controlled values. That lets the attacker become the `onlyLendingPool` and mint/burn aTokens or call `transferUnderlyingTo`, potentially draining any underlying held by the token contract and permanently breaking the intended pool integration.","recommendation":"Restrict `initialize` to a trusted admin (e.g., pool configurator/addresses provider) and invoke it atomically via `upgradeToAndCall` during deployment/upgrades. Consider adding an implementation-side initializer lock (e.g., OZ’s `_disableInitializers`) to prevent initializing the logic contract directly.","evidence":"`AToken.initialize` is `external` and only guarded by the `initializer` modifier; `VersionedInitializable` enforces revision ordering but does not restrict who can call the initializer.","locations":["contracts/contracts/protocol/tokenization/AToken.sol:69","contracts/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol:32"]}]}
[codex:839956] tokens used
[codex:839956] 69,231
[codex:839956] {"no_findings":false,"summary":"1 medium upgradeability issue: initialize is permissionless, enabling takeover if a proxy/upgrade isn’t initialized atomically.","findings":[{"severity":"medium","category":"upgradeability","title":"Unprotected initializer allows takeover of uninitialized proxy or post-upgrade reinitialization","exploit_scenario":"If a proxy is deployed without calling `initialize` in the same transaction (or an upgrade introduces a new revision), any external account can call `initialize` first and set `_pool`, `_treasury`, and `_underlyingAsset` to attacker-controlled values. That lets the attacker become the `onlyLendingPool` and mint/burn aTokens or call `transferUnderlyingTo`, potentially draining any underlying held by the token contract and permanently breaking the intended pool integration.","recommendation":"Restrict `initialize` to a trusted admin (e.g., pool configurator/addresses provider) and invoke it atomically via `upgradeToAndCall` during deployment/upgrades. Consider adding an implementation-side initializer lock (e.g., OZ’s `_disableInitializers`) to prevent initializing the logic contract directly.","evidence":"`AToken.initialize` is `external` and only guarded by the `initializer` modifier; `VersionedInitializable` enforces revision ordering but does not restrict who can call the initializer.","locations":["contracts/contracts/protocol/tokenization/AToken.sol:69","contracts/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol:32"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-30T00:30:59.212293+00:00",
        "returncode": 0
    },
    "summary": "1 medium upgradeability issue: initialize is permissionless, enabling takeover if a proxy/upgrade isn\u2019t initialized atomically.",
    "raw_final": {
        "summary": "1 medium upgradeability issue: initialize is permissionless, enabling takeover if a proxy/upgrade isn\u2019t initialized atomically.",
        "findings": [
            {
                "title": "Unprotected initializer allows takeover of uninitialized proxy or post-upgrade reinitialization",
                "category": "upgradeability",
                "evidence": "`AToken.initialize` is `external` and only guarded by the `initializer` modifier; `VersionedInitializable` enforces revision ordering but does not restrict who can call the initializer.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/protocol/tokenization/AToken.sol:69",
                    "contracts/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol:32"
                ],
                "recommendation": "Restrict `initialize` to a trusted admin (e.g., pool configurator/addresses provider) and invoke it atomically via `upgradeToAndCall` during deployment/upgrades. Consider adding an implementation-side initializer lock (e.g., OZ\u2019s `_disableInitializers`) to prevent initializing the logic contract directly.",
                "exploit_scenario": "If a proxy is deployed without calling `initialize` in the same transaction (or an upgrade introduces a new revision), any external account can call `initialize` first and set `_pool`, `_treasury`, and `_underlyingAsset` to attacker-controlled values. That lets the attacker become the `onlyLendingPool` and mint/burn aTokens or call `transferUnderlyingTo`, potentially draining any underlying held by the token contract and permanently breaking the intended pool integration."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
2
CALL-family (heavy)
12
EXT*/BALANCE
11
Total opcodes
7288
Flags
create_opcodes_present heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x01e5
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x75d26413
00000026: GT
00000027: PUSH2 0x010f
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xb16a19de
00000031: GT
00000032: PUSH2 0x00a2
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xd505accf
0000003c: GT
0000003d: PUSH2 0x0071
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xd505accf
00000047: EQ
00000048: PUSH2 0x06a4
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xd7020d0a
00000052: EQ
00000053: PUSH2 0x06f5
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xdd62ed3e
0000005d: EQ
0000005e: PUSH2 0x0731
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xf866c319
00000068: EQ
00000069: PUSH2 0x075f
0000006c: JUMPI
0000006d: PUSH2 0x01e5
00000070: JUMP
00000071: JUMPDEST
00000072: DUP1
00000073: PUSH4 0xb16a19de
00000078: EQ
00000079: PUSH2 0x052f
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0xb1bf962d
00000083: EQ
00000084: PUSH2 0x0537
00000087: JUMPI
00000088: DUP1
00000089: PUSH4 0xb9844d8d
0000008e: EQ
0000008f: PUSH2 0x053f
00000092: JUMPI
00000093: DUP1
00000094: PUSH4 0xc222ec8a
00000099: EQ
0000009a: PUSH2 0x0565
0000009d: JUMPI
0000009e: PUSH2 0x01e5
000000a1: JUMP
000000a2: JUMPDEST
000000a3: DUP1
000000a4: PUSH4 0x95d89b41
000000a9: GT
000000aa: PUSH2 0x00de
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0x95d89b41
000000b4: EQ
000000b5: PUSH2 0x04c7
000000b8: JUMPI
000000b9: DUP1
000000ba: PUSH4 0xa457c2d7
000000bf: EQ
000000c0: PUSH2 0x04cf
000000c3: JUMPI
000000c4: DUP1
000000c5: PUSH4 0xa9059cbb
000000ca: EQ
000000cb: PUSH2 0x04fb
000000ce: JUMPI
000000cf: DUP1
000000d0: PUSH4 0xae167335
000000d5: EQ
000000d6: PUSH2 0x0527
000000d9: JUMPI
000000da: PUSH2 0x01e5
000000dd: JUMP
000000de: JUMPDEST
000000df: DUP1
000000e0: PUSH4 0x75d26413
000000e5: EQ
000000e6: PUSH2 0x0466
000000e9: JUMPI
000000ea: DUP1
000000eb: PUSH4 0x78160376
000000f0: EQ
000000f1: PUSH2 0x046e
000000f4: JUMPI
000000f5: DUP1
000000f6: PUSH4 0x7df5bd3b
000000fb: EQ
000000fc: PUSH2 0x0476
000000ff: JUMPI
00000100: DUP1
00000101: PUSH4 0x88dd91a1
00000106: EQ
00000107: PUSH2 0x049b
0000010a: JUMPI
0000010b: PUSH2 0x01e5
0000010e: JUMP
0000010f: JUMPDEST
00000110: DUP1
00000111: PUSH4 0x23b872dd
00000116: GT
00000117: PUSH2 0x0187
0000011a: JUMPI
0000011b: DUP1
0000011c: PUSH4 0x39509351
00000121: GT
00000122: PUSH2 0x0156
00000125: JUMPI
00000126: DUP1
00000127: PUSH4 0x39509351
0000012c: EQ
0000012d: PUSH2 0x03c4
00000130: JUMPI
00000131: DUP1
00000132: PUSH4 0x4efecaa5
00000137: EQ
00000138: PUSH2 0x03f0
0000013b: JUMPI
0000013c: DUP1
0000013d: PUSH4 0x70a08231
00000142: EQ
00000143: PUSH2 0x041c
00000146: JUMPI
00000147: DUP1
00000148: PUSH4 0x7535d246
0000014d: EQ
0000014e: PUSH2 0x0442
00000151: JUMPI
00000152: PUSH2 0x01e5
00000155: JUMP
00000156: JUMPDEST
00000157: DUP1
00000158: PUSH4 0x23b872dd
0000015d: EQ
0000015e: PUSH2 0x0360
00000161: JUMPI
00000162: DUP1
00000163: PUSH4 0x30adf81f
00000168: EQ
00000169: PUSH2 0x0396
0000016c: JUMPI
0000016d: DUP1
0000016e: PUSH4 0x313ce567
00000173: EQ
00000174: PUSH2 0x039e
00000177: JUMPI
00000178: DUP1
00000179: PUSH4 0x3644e515
0000017e: EQ
0000017f: PUSH2 0x03bc
00000182: JUMPI
00000183: PUSH2 0x01e5
00000186: JUMP
00000187: JUMPDEST
00000188: DUP1
00000189: PUSH4 0x0bd7ad3b
0000018e: GT
0000018f: PUSH2 0x01c3
00000192: JUMPI
00000193: DUP1
00000194: PUSH4 0x0bd7ad3b
00000199: EQ
0000019a: PUSH2 0x02e6
0000019d: JUMPI
0000019e: DUP1
0000019f: PUSH4 0x156e29f6
000001a4: EQ
000001a5: PUSH2 0x0300
000001a8: JUMPI
000001a9: DUP1
000001aa: PUSH4 0x18160ddd
000001af: EQ
000001b0: PUSH2 0x0332
000001b3: JUMPI
000001b4: DUP1
000001b5: PUSH4 0x1da24f3e
000001ba: EQ
000001bb: PUSH2 0x033a
000001be: JUMPI
000001bf: PUSH2 0x01e5
000001c2: JUMP
000001c3: JUMPDEST
000001c4: DUP1
000001c5: PUSH4 0x06fdde03
000001ca: EQ
000001cb: PUSH2 0x01ea
000001ce: JUMPI
000001cf: DUP1
000001d0: PUSH4 0x095ea7b3
000001d5: EQ
000001d6: PUSH2 0x0267
000001d9: JUMPI
000001da: DUP1
000001db: PUSH4 0x0afbcdc9
000001e0: EQ
000001e1: PUSH2 0x02a7
000001e4: JUMPI
000001e5: JUMPDEST
000001e6: PUSH1 0x00
000001e8: DUP1
000001e9: REVERT
000001ea: JUMPDEST
000001eb: PUSH2 0x01f2
000001ee: PUSH2 0x0795
000001f1: JUMP
000001f2: JUMPDEST
000001f3: PUSH1 0x40
000001f5: DUP1
000001f6: MLOAD
000001f7: PUSH1 0x20
000001f9: DUP1
000001fa: DUP3
000001fb: MSTORE
000001fc: DUP4
000001fd: MLOAD
000001fe: DUP2
000001ff: DUP4
00000200: ADD
00000201: MSTORE
00000202: DUP4
00000203: MLOAD
00000204: SWAP2
00000205: SWAP3
00000206: DUP4
00000207: SWAP3
00000208: SWAP1
00000209: DUP4
0000020a: ADD
0000020b: SWAP2
0000020c: DUP6
0000020d: ADD
0000020e: SWAP1
0000020f: DUP1
00000210: DUP4
00000211: DUP4
00000212: PUSH1 0x00
00000214: JUMPDEST
00000215: DUP4
00000216: DUP2
00000217: LT
00000218: ISZERO
00000219: PUSH2 0x022c
0000021c: JUMPI
0000021d: DUP2
0000021e: DUP2
0000021f: ADD
00000220: MLOAD
00000221: DUP4
00000222: DUP3
00000223: ADD
00000224: MSTORE
00000225: PUSH1 0x20
00000227: ADD
00000228: PUSH2 0x0214
0000022b: JUMP
0000022c: JUMPDEST
0000022d: POP
0000022e: POP
0000022f: POP
00000230: POP
00000231: SWAP1
00000232: POP
00000233: SWAP1
00000234: DUP2
00000235: ADD
00000236: SWAP1
00000237: PUSH1 0x1f
00000239: AND
0000023a: DUP1
0000023b: ISZERO
0000023c: PUSH2 0x0259
0000023f: JUMPI
00000240: DUP1
00000241: DUP3
00000242: SUB
00000243: DUP1
00000244: MLOAD
00000245: PUSH1 0x01
00000247: DUP4
00000248: PUSH1 0x20
0000024a: SUB
0000024b: PUSH2 0x0100
0000024e: EXP
0000024f: SUB
00000250: NOT
00000251: AND
00000252: DUP2
00000253: MSTORE
00000254: PUSH1 0x20
00000256: ADD
00000257: SWAP2
00000258: POP
00000259: JUMPDEST
0000025a: POP
0000025b: SWAP3
0000025c: POP
0000025d: POP
0000025e: POP
0000025f: PUSH1 0x40
00000261: MLOAD
00000262: DUP1
00000263: SWAP2
00000264: SUB
00000265: SWAP1
00000266: RETURN
00000267: JUMPDEST
00000268: PUSH2 0x0293
0000026b: PUSH1 0x04
0000026d: DUP1
0000026e: CALLDATASIZE
0000026f: SUB
00000270: PUSH1 0x40
00000272: DUP2
00000273: LT
00000274: ISZERO
00000275: PUSH2 0x027d
00000278: JUMPI
00000279: PUSH1 0x00
0000027b: DUP1
0000027c: REVERT
0000027d: JUMPDEST
0000027e: POP
0000027f: PUSH1 0x01
00000281: PUSH1 0x01
00000283: PUSH1 0xa0
00000285: SHL
00000286: SUB
00000287: DUP2
00000288: CALLDATALOAD
00000289: AND
0000028a: SWAP1
0000028b: PUSH1 0x20
0000028d: ADD
0000028e: CALLDATALOAD
0000028f: PUSH2 0x082c
00000292: JUMP
00000293: JUMPDEST
00000294: PUSH1 0x40
00000296: DUP1
00000297: MLOAD
00000298: SWAP2
00000299: ISZERO
0000029a: ISZERO
0000029b: DUP3
0000029c: MSTORE
0000029d: MLOAD
0000029e: SWAP1
0000029f: DUP2
000002a0: SWAP1
000002a1: SUB
000002a2: PUSH1 0x20
000002a4: ADD
000002a5: SWAP1
000002a6: RETURN
000002a7: JUMPDEST
000002a8: PUSH2 0x02cd
000002ab: PUSH1 0x04
000002ad: DUP1
000002ae: CALLDATASIZE
000002af: SUB
000002b0: PUSH1 0x20
000002b2: DUP2
000002b3: LT
000002b4: ISZERO
000002b5: PUSH2 0x02bd
000002b8: JUMPI
000002b9: PUSH1 0x00
000002bb: DUP1
000002bc: REVERT
000002bd: JUMPDEST
000002be: POP
000002bf: CALLDATALOAD
000002c0: PUSH1 0x01
000002c2: PUSH1 0x01
000002c4: PUSH1 0xa0
000002c6: SHL
000002c7: SUB
000002c8: AND
000002c9: PUSH2 0x084a
000002cc: JUMP
000002cd: JUMPDEST
000002ce: PUSH1 0x40
000002d0: DUP1
000002d1: MLOAD
000002d2: SWAP3
000002d3: DUP4
000002d4: MSTORE
000002d5: PUSH1 0x20
000002d7: DUP4
000002d8: ADD
000002d9: SWAP2
000002da: SWAP1
000002db: SWAP2
000002dc: MSTORE
000002dd: DUP1
000002de: MLOAD
000002df: SWAP2
000002e0: DUP3
000002e1: SWAP1
000002e2: SUB
000002e3: ADD
000002e4: SWAP1
000002e5: RETURN
000002e6: JUMPDEST
000002e7: PUSH2 0x02ee
000002ea: PUSH2 0x0867
000002ed: JUMP
000002ee: JUMPDEST
000002ef: PUSH1 0x40
000002f1: DUP1
000002f2: MLOAD
000002f3: SWAP2
000002f4: DUP3
000002f5: MSTORE
000002f6: MLOAD
000002f7: SWAP1
000002f8: DUP2
000002f9: SWAP1
000002fa: SUB
000002fb: PUSH1 0x20
000002fd: ADD
000002fe: SWAP1
000002ff: RETURN
00000300: JUMPDEST
00000301: PUSH2 0x0293
00000304: PUSH1 0x04
00000306: DUP1
00000307: CALLDATASIZE
00000308: SUB
00000309: PUSH1 0x60
0000030b: DUP2
0000030c: LT
0000030d: ISZERO
0000030e: PUSH2 0x0316
00000311: JUMPI
00000312: PUSH1 0x00
00000314: DUP1
00000315: REVERT
00000316: JUMPDEST
00000317: POP
00000318: PUSH1 0x01
0000031a: PUSH1 0x01
0000031c: PUSH1 0xa0
0000031e: SHL
0000031f: SUB
00000320: DUP2
00000321: CALLDATALOAD
00000322: AND
00000323: SWAP1
00000324: PUSH1 0x20
00000326: DUP2
00000327: ADD
00000328: CALLDATALOAD
00000329: SWAP1
0000032a: PUSH1 0x40
0000032c: ADD
0000032d: CALLDATALOAD
0000032e: PUSH2 0x086c
00000331: JUMP
00000332: JUMPDEST
00000333: PUSH2 0x02ee
00000336: PUSH2 0x0a41
00000339: JUMP
0000033a: JUMPDEST
0000033b: PUSH2 0x02ee
0000033e: PUSH1 0x04
00000340: DUP1
00000341: CALLDATASIZE
00000342: SUB
00000343: PUSH1 0x20
00000345: DUP2
00000346: LT
00000347: ISZERO
00000348: PUSH2 0x0350
0000034b: JUMPI
0000034c: PUSH1 0x00
0000034e: DUP1
0000034f: REVERT
00000350: JUMPDEST
00000351: POP
00000352: CALLDATALOAD
00000353: PUSH1 0x01
00000355: PUSH1 0x01
00000357: PUSH1 0xa0
00000359: SHL
0000035a: SUB
0000035b: AND
0000035c: PUSH2 0x0aef
0000035f: JUMP
00000360: JUMPDEST
00000361: PUSH2 0x0293
00000364: PUSH1 0x04
00000366: DUP1
00000367: CALLDATASIZE
00000368: SUB
00000369: PUSH1 0x60
0000036b: DUP2
0000036c: LT
0000036d: ISZERO
0000036e: PUSH2 0x0376
00000371: JUMPI
00000372: PUSH1 0x00
00000374: DUP1
00000375: REVERT
00000376: JUMPDEST
00000377: POP
00000378: PUSH1 0x01
0000037a: PUSH1 0x01
0000037c: PUSH1 0xa0
0000037e: SHL
0000037f: SUB
00000380: DUP2
00000381: CALLDATALOAD
00000382: DUP2
00000383: AND
00000384: SWAP2
00000385: PUSH1 0x20
00000387: DUP2
00000388: ADD
00000389: CALLDATALOAD
0000038a: SWAP1
0000038b: SWAP2
0000038c: AND
0000038d: SWAP1
0000038e: PUSH1 0x40
00000390: ADD
00000391: CALLDATALOAD
00000392: PUSH2 0x0afa
00000395: JUMP
00000396: JUMPDEST
00000397: PUSH2 0x02ee
0000039a: PUSH2 0x0bba
0000039d: JUMP
0000039e: JUMPDEST
0000039f: PUSH2 0x03a6
000003a2: PUSH2 0x0bde
000003a5: JUMP
000003a6: JUMPDEST
000003a7: PUSH1 0x40
000003a9: DUP1
000003aa: MLOAD
000003ab: PUSH1 0xff
000003ad: SWAP1
000003ae: SWAP3
000003af: AND
000003b0: DUP3
000003b1: MSTORE
000003b2: MLOAD
000003b3: SWAP1
000003b4: DUP2
000003b5: SWAP1
000003b6: SUB
000003b7: PUSH1 0x20
000003b9: ADD
000003ba: SWAP1
000003bb: RETURN
000003bc: JUMPDEST
000003bd: PUSH2 0x02ee
000003c0: PUSH2 0x0be7
000003c3: JUMP
000003c4: JUMPDEST
000003c5: PUSH2 0x0293
000003c8: PUSH1 0x04
000003ca: DUP1
000003cb: CALLDATASIZE
000003cc: SUB
000003cd: PUSH1 0x40
000003cf: DUP2
000003d0: LT
000003d1: ISZERO
000003d2: PUSH2 0x03da
000003d5: JUMPI
000003d6: PUSH1 0x00
000003d8: DUP1
000003d9: REVERT
000003da: JUMPDEST
000003db: POP
000003dc: PUSH1 0x01
000003de: PUSH1 0x01
000003e0: PUSH1 0xa0
000003e2: SHL
000003e3: SUB
000003e4: DUP2
000003e5: CALLDATALOAD
000003e6: AND
000003e7: SWAP1
000003e8: PUSH1 0x20
000003ea: ADD
000003eb: CALLDATALOAD
000003ec: PUSH2 0x0bed
000003ef: JUMP
000003f0: JUMPDEST
000003f1: PUSH2 0x02ee
000003f4: PUSH1 0x04
000003f6: DUP1
000003f7: CALLDATASIZE
000003f8: SUB
000003f9: PUSH1 0x40
000003fb: DUP2
000003fc: LT
000003fd: ISZERO
000003fe: PUSH2 0x0406
00000401: JUMPI
00000402: PUSH1 0x00
00000404: DUP1
00000405: REVERT
00000406: JUMPDEST
00000407: POP
00000408: PUSH1 0x01
0000040a: PUSH1 0x01
0000040c: PUSH1 0xa0
0000040e: SHL
0000040f: SUB
00000410: DUP2
00000411: CALLDATALOAD
00000412: AND
00000413: SWAP1
00000414: PUSH1 0x20
00000416: ADD
00000417: CALLDATALOAD
00000418: PUSH2 0x0c3b
0000041b: JUMP
0000041c: JUMPDEST
0000041d: PUSH2 0x02ee
00000420: PUSH1 0x04
00000422: DUP1
00000423: CALLDATASIZE
00000424: SUB
00000425: PUSH1 0x20
00000427: DUP2
00000428: LT
00000429: ISZERO
0000042a: PUSH2 0x0432
0000042d: JUMPI
0000042e: PUSH1 0x00
00000430: DUP1
00000431: REVERT
00000432: JUMPDEST
00000433: POP
00000434: CALLDATALOAD
00000435: PUSH1 0x01
00000437: PUSH1 0x01
00000439: PUSH1 0xa0
0000043b: SHL
0000043c: SUB
0000043d: AND
0000043e: PUSH2 0x0ce6
00000441: JUMP
00000442: JUMPDEST
00000443: PUSH2 0x044a
00000446: PUSH2 0x0d7b
00000449: JUMP
0000044a: JUMPDEST
0000044b: PUSH1 0x40
0000044d: DUP1
0000044e: MLOAD
0000044f: PUSH1 0x01
00000451: PUSH1 0x01
00000453: PUSH1 0xa0
00000455: SHL
00000456: SUB
00000457: SWAP1
00000458: SWAP3
00000459: AND
0000045a: DUP3
0000045b: MSTORE
0000045c: MLOAD
0000045d: SWAP1
0000045e: DUP2
0000045f: SWAP1
00000460: SUB
00000461: PUSH1 0x20
00000463: ADD
00000464: SWAP1
00000465: RETURN
00000466: JUMPDEST
00000467: PUSH2 0x044a
0000046a: PUSH2 0x0d8f
0000046d: JUMP
0000046e: JUMPDEST
0000046f: PUSH2 0x01f2
00000472: PUSH2 0x0d9e
00000475: JUMP
00000476: JUMPDEST
00000477: PUSH2 0x0499
0000047a: PUSH1 0x04
0000047c: DUP1
0000047d: CALLDATASIZE
0000047e: SUB
0000047f: PUSH1 0x40
00000481: DUP2
00000482: LT
00000483: ISZERO
00000484: PUSH2 0x048c
00000487: JUMPI
00000488: PUSH1 0x00
0000048a: DUP1
0000048b: REVERT
0000048c: JUMPDEST
0000048d: POP
0000048e: DUP1
0000048f: CALLDATALOAD
00000490: SWAP1
00000491: PUSH1 0x20
00000493: ADD
00000494: CALLDATALOAD
00000495: PUSH2 0x0dbb
00000498: JUMP
00000499: JUMPDEST
0000049a: STOP
0000049b: JUMPDEST
0000049c: PUSH2 0x0499
0000049f: PUSH1 0x04
000004a1: DUP1
000004a2: CALLDATASIZE
000004a3: SUB
000004a4: PUSH1 0x40
000004a6: DUP2
000004a7: LT
000004a8: ISZERO
000004a9: PUSH2 0x04b1
000004ac: JUMPI
000004ad: PUSH1 0x00
000004af: DUP1
000004b0: REVERT
000004b1: JUMPDEST
000004b2: POP
000004b3: PUSH1 0x01
000004b5: PUSH1 0x01
000004b7: PUSH1 0xa0
000004b9: SHL
000004ba: SUB
000004bb: DUP2
000004bc: CALLDATALOAD
000004bd: AND
000004be: SWAP1
000004bf: PUSH1 0x20
000004c1: ADD
000004c2: CALLDATALOAD
000004c3: PUSH2 0x0ee7
000004c6: JUMP
000004c7: JUMPDEST
000004c8: PUSH2 0x01f2
000004cb: PUSH2 0x0f76
000004ce: JUMP
000004cf: JUMPDEST
000004d0: PUSH2 0x0293
000004d3: PUSH1 0x04
000004d5: DUP1
000004d6: CALLDATASIZE
000004d7: SUB
000004d8: PUSH1 0x40
000004da: DUP2
000004db: LT
000004dc: ISZERO
000004dd: PUSH2 0x04e5
000004e0: JUMPI
000004e1: PUSH1 0x00
000004e3: DUP1
000004e4: REVERT
000004e5: JUMPDEST
000004e6: POP
000004e7: PUSH1 0x01
000004e9: PUSH1 0x01
000004eb: PUSH1 0xa0
000004ed: SHL
000004ee: SUB
000004ef: DUP2
000004f0: CALLDATALOAD
000004f1: AND
000004f2: SWAP1
000004f3: PUSH1 0x20
000004f5: ADD
000004f6: CALLDATALOAD
000004f7: PUSH2 0x0fd7
000004fa: JUMP
000004fb: JUMPDEST
000004fc: PUSH2 0x0293
000004ff: PUSH1 0x04
00000501: DUP1
00000502: CALLDATASIZE
00000503: SUB
00000504: PUSH1 0x40
00000506: DUP2
00000507: LT
00000508: ISZERO
00000509: PUSH2 0x0511
0000050c: JUMPI
0000050d: PUSH1 0x00
0000050f: DUP1
00000510: REVERT
00000511: JUMPDEST
00000512: POP
00000513: PUSH1 0x01
00000515: PUSH1 0x01
00000517: PUSH1 0xa0
00000519: SHL
0000051a: SUB
0000051b: DUP2
0000051c: CALLDATALOAD
0000051d: AND
0000051e: SWAP1
0000051f: PUSH1 0x20
00000521: ADD
00000522: CALLDATALOAD
00000523: PUSH2 0x103f
00000526: JUMP
00000527: JUMPDEST
00000528: PUSH2 0x044a
0000052b: PUSH2 0x109c
0000052e: JUMP
0000052f: JUMPDEST
00000530: PUSH2 0x044a
00000533: PUSH2 0x10ab
00000536: JUMP
00000537: JUMPDEST
00000538: PUSH2 0x02ee
0000053b: PUSH2 0x10ba
0000053e: JUMP
0000053f: JUMPDEST
00000540: PUSH2 0x02ee
00000543: PUSH1 0x04
00000545: DUP1
00000546: CALLDATASIZE
00000547: SUB
00000548: PUSH1 0x20
0000054a: DUP2
0000054b: LT
0000054c: ISZERO
0000054d: PUSH2 0x0555
00000550: JUMPI
00000551: PUSH1 0x00
00000553: DUP1
00000554: REVERT
00000555: JUMPDEST
00000556: POP
00000557: CALLDATALOAD
00000558: PUSH1 0x01
0000055a: PUSH1 0x01
0000055c: PUSH1 0xa0
0000055e: SHL
0000055f: SUB
00000560: AND
00000561: PUSH2 0x10c4
00000564: JUMP
00000565: JUMPDEST
00000566: PUSH2 0x0499
00000569: PUSH1 0x04
0000056b: DUP1
0000056c: CALLDATASIZE
0000056d: SUB
0000056e: PUSH1 0xe0
00000570: DUP2
00000571: LT
00000572: ISZERO
00000573: PUSH2 0x057b
00000576: JUMPI
00000577: PUSH1 0x00
00000579: DUP1
0000057a: REVERT
0000057b: JUMPDEST
0000057c: PUSH1 0x01
0000057e: PUSH1 0x01
00000580: PUSH1 0xa0
00000582: SHL
00000583: SUB
00000584: DUP3
00000585: CALLDATALOAD
00000586: DUP2
00000587: AND
00000588: SWAP3
00000589: PUSH1 0x20
0000058b: DUP2
0000058c: ADD
0000058d: CALLDATALOAD
0000058e: DUP3
0000058f: AND
00000590: SWAP3
00000591: PUSH1 0x40
00000593: DUP3
00000594: ADD
00000595: CALLDATALOAD
00000596: SWAP1
00000597: SWAP3
00000598: AND
00000599: SWAP2
0000059a: PUSH1 0xff
0000059c: PUSH1 0x60
0000059e: DUP4
0000059f: ADD
000005a0: CALLDATALOAD
000005a1: AND
000005a2: SWAP2
000005a3: SWAP1
000005a4: DUP2
000005a5: ADD
000005a6: SWAP1
000005a7: PUSH1 0xa0
000005a9: DUP2
000005aa: ADD
000005ab: PUSH1 0x80
000005ad: DUP3
000005ae: ADD
000005af: CALLDATALOAD
000005b0: PUSH5 0x0100000000
000005b6: DUP2
000005b7: GT
000005b8: ISZERO
000005b9: PUSH2 0x05c1
000005bc: JUMPI
000005bd: PUSH1 0x00
000005bf: DUP1
000005c0: REVERT
000005c1: JUMPDEST
000005c2: DUP3
000005c3: ADD
000005c4: DUP4
000005c5: PUSH1 0x20
000005c7: DUP3
000005c8: ADD
000005c9: GT
000005ca: ISZERO
000005cb: PUSH2 0x05d3
000005ce: JUMPI
000005cf: PUSH1 0x00
000005d1: DUP1
000005d2: REVERT
000005d3: JUMPDEST
000005d4: DUP1
000005d5: CALLDATALOAD
000005d6: SWAP1
000005d7: PUSH1 0x20
000005d9: ADD
000005da: SWAP2
000005db: DUP5
000005dc: PUSH1 0x01
000005de: DUP4
000005df: MUL
000005e0: DUP5
000005e1: ADD
000005e2: GT
000005e3: PUSH5 0x0100000000
000005e9: DUP4
000005ea: GT
000005eb: OR
000005ec: ISZERO
000005ed: PUSH2 0x05f5
000005f0: JUMPI
000005f1: PUSH1 0x00
000005f3: DUP1
000005f4: REVERT
000005f5: JUMPDEST
000005f6: SWAP2
000005f7: SWAP4
000005f8: SWAP1
000005f9: SWAP3
000005fa: SWAP1
000005fb: SWAP2
000005fc: PUSH1 0x20
000005fe: DUP2
000005ff: ADD
00000600: SWAP1
00000601: CALLDATALOAD
00000602: PUSH5 0x0100000000
00000608: DUP2
00000609: GT
0000060a: ISZERO
0000060b: PUSH2 0x0613
0000060e: JUMPI
0000060f: PUSH1 0x00
00000611: DUP1
00000612: REVERT
00000613: JUMPDEST
00000614: DUP3
00000615: ADD
00000616: DUP4
00000617: PUSH1 0x20
00000619: DUP3
0000061a: ADD
0000061b: GT
0000061c: ISZERO
0000061d: PUSH2 0x0625
00000620: JUMPI
00000621: PUSH1 0x00
00000623: DUP1
00000624: REVERT
00000625: JUMPDEST
00000626: DUP1
00000627: CALLDATALOAD
00000628: SWAP1
00000629: PUSH1 0x20
0000062b: ADD
0000062c: SWAP2
0000062d: DUP5
0000062e: PUSH1 0x01
00000630: DUP4
00000631: MUL
00000632: DUP5
00000633: ADD
00000634: GT
00000635: PUSH5 0x0100000000
0000063b: DUP4
0000063c: GT
0000063d: OR
0000063e: ISZERO
0000063f: PUSH2 0x0647
00000642: JUMPI
00000643: PUSH1 0x00
00000645: DUP1
00000646: REVERT
00000647: JUMPDEST
00000648: SWAP2
00000649: SWAP4
0000064a: SWAP1
0000064b: SWAP3
0000064c: SWAP1
0000064d: SWAP2
0000064e: PUSH1 0x20
00000650: DUP2
00000651: ADD
00000652: SWAP1
00000653: CALLDATALOAD
00000654: PUSH5 0x0100000000
0000065a: DUP2
0000065b: GT
0000065c: ISZERO
0000065d: PUSH2 0x0665
00000660: JUMPI
00000661: PUSH1 0x00
00000663: DUP1
00000664: REVERT
00000665: JUMPDEST
00000666: DUP3
00000667: ADD
00000668: DUP4
00000669: PUSH1 0x20
0000066b: DUP3
0000066c: ADD
0000066d: GT
0000066e: ISZERO
0000066f: PUSH2 0x0677
00000672: JUMPI
00000673: PUSH1 0x00
00000675: DUP1
00000676: REVERT
00000677: JUMPDEST
00000678: DUP1
00000679: CALLDATALOAD
0000067a: SWAP1
0000067b: PUSH1 0x20
0000067d: ADD
0000067e: SWAP2
0000067f: DUP5
00000680: PUSH1 0x01
00000682: DUP4
00000683: MUL
00000684: DUP5
00000685: ADD
00000686: GT
00000687: PUSH5 0x0100000000
0000068d: DUP4
0000068e: GT
0000068f: OR
00000690: ISZERO
00000691: PUSH2 0x0699
00000694: JUMPI
00000695: PUSH1 0x00
00000697: DUP1
00000698: REVERT
00000699: JUMPDEST
0000069a: POP
0000069b: SWAP1
0000069c: SWAP3
0000069d: POP
0000069e: SWAP1
0000069f: POP
000006a0: PUSH2 0x10d6
000006a3: JUMP
000006a4: JUMPDEST
000006a5: PUSH2 0x0499
000006a8: PUSH1 0x04
000006aa: DUP1
000006ab: CALLDATASIZE
000006ac: SUB
000006ad: PUSH1 0xe0
000006af: DUP2
000006b0: LT
000006b1: ISZERO
000006b2: PUSH2 0x06ba
000006b5: JUMPI
000006b6: PUSH1 0x00
000006b8: DUP1
000006b9: REVERT
000006ba: JUMPDEST
000006bb: POP
000006bc: PUSH1 0x01
000006be: PUSH1 0x01
000006c0: PUSH1 0xa0
000006c2: SHL
000006c3: SUB
000006c4: DUP2
000006c5: CALLDATALOAD
000006c6: DUP2
000006c7: AND
000006c8: SWAP2
000006c9: PUSH1 0x20
000006cb: DUP2
000006cc: ADD
000006cd: CALLDATALOAD
000006ce: SWAP1
000006cf: SWAP2
000006d0: AND
000006d1: SWAP1
000006d2: PUSH1 0x40
000006d4: DUP2
000006d5: ADD
000006d6: CALLDATALOAD
000006d7: SWAP1
000006d8: PUSH1 0x60
000006da: DUP2
000006db: ADD
000006dc: CALLDATALOAD
000006dd: SWAP1
000006de: PUSH1 0xff
000006e0: PUSH1 0x80
000006e2: DUP3
000006e3: ADD
000006e4: CALLDATALOAD
000006e5: AND
000006e6: SWAP1
000006e7: PUSH1 0xa0
000006e9: DUP2
000006ea: ADD
000006eb: CALLDATALOAD
000006ec: SWAP1
000006ed: PUSH1 0xc0
000006ef: ADD
000006f0: CALLDATALOAD
000006f1: PUSH2 0x14ba
000006f4: JUMP
000006f5: JUMPDEST
000006f6: PUSH2 0x0499
000006f9: PUSH1 0x04
000006fb: DUP1
000006fc: CALLDATASIZE
000006fd: SUB
000006fe: PUSH1 0x80
00000700: DUP2
00000701: LT
00000702: ISZERO
00000703: PUSH2 0x070b
00000706: JUMPI
00000707: PUSH1 0x00
00000709: DUP1
0000070a: REVERT
0000070b: JUMPDEST
0000070c: POP
0000070d: PUSH1 0x01
0000070f: PUSH1 0x01
00000711: PUSH1 0xa0
00000713: SHL
00000714: SUB
00000715: DUP2
00000716: CALLDATALOAD
00000717: DUP2
00000718: AND
00000719: SWAP2
0000071a: PUSH1 0x20
0000071c: DUP2
0000071d: ADD
0000071e: CALLDATALOAD
0000071f: SWAP1
00000720: SWAP2
00000721: AND
00000722: SWAP1
00000723: PUSH1 0x40
00000725: DUP2
00000726: ADD
00000727: CALLDATALOAD
00000728: SWAP1
00000729: PUSH1 0x60
0000072b: ADD
0000072c: CALLDATALOAD
0000072d: PUSH2 0x1701
00000730: JUMP
00000731: JUMPDEST
00000732: PUSH2 0x02ee
00000735: PUSH1 0x04
00000737: DUP1
00000738: CALLDATASIZE
00000739: SUB
0000073a: PUSH1 0x40
0000073c: DUP2
0000073d: LT
0000073e: ISZERO
0000073f: PUSH2 0x0747
00000742: JUMPI
00000743: PUSH1 0x00
00000745: DUP1
00000746: REVERT
00000747: JUMPDEST
00000748: POP
00000749: PUSH1 0x01
0000074b: PUSH1 0x01
0000074d: PUSH1 0xa0
0000074f: SHL
00000750: SUB
00000751: DUP2
00000752: CALLDATALOAD
00000753: DUP2
00000754: AND
00000755: SWAP2
00000756: PUSH1 0x20
00000758: ADD
00000759: CALLDATALOAD
0000075a: AND
0000075b: PUSH2 0x18ab
0000075e: JUMP
0000075f: JUMPDEST
00000760: PUSH2 0x0499
00000763: PUSH1 0x04
00000765: DUP1
00000766: CALLDATASIZE
00000767: SUB
00000768: PUSH1 0x60
0000076a: DUP2
0000076b: LT
0000076c: ISZERO
0000076d: PUSH2 0x0775
00000770: JUMPI
00000771: PUSH1 0x00
00000773: DUP1
00000774: REVERT
00000775: JUMPDEST
00000776: POP
00000777: PUSH1 0x01
00000779: PUSH1 0x01
0000077b: PUSH1 0xa0
0000077d: SHL
0000077e: SUB
0000077f: DUP2
00000780: CALLDATALOAD
00000781: DUP2
00000782: AND
00000783: SWAP2
00000784: PUSH1 0x20
00000786: DUP2
00000787: ADD
00000788: CALLDATALOAD
00000789: SWAP1
0000078a: SWAP2
0000078b: AND
0000078c: SWAP1
0000078d: PUSH1 0x40
0000078f: ADD
00000790: CALLDATALOAD
00000791: PUSH2 0x18d6
00000794: JUMP
00000795: JUMPDEST
00000796: PUSH1 0x37
00000798: DUP1
00000799: SLOAD
0000079a: PUSH1 0x40
0000079c: DUP1
0000079d: MLOAD
0000079e: PUSH1 0x20
000007a0: PUSH1 0x1f
000007a2: PUSH1 0x02
000007a4: PUSH1 0x00
000007a6: NOT
000007a7: PUSH2 0x0100
000007aa: PUSH1 0x01
000007ac: DUP9
000007ad: AND
000007ae: ISZERO
000007af: MUL
000007b0: ADD
000007b1: SWAP1
000007b2: SWAP6
000007b3: AND
000007b4: SWAP5
000007b5: SWAP1
000007b6: SWAP5
000007b7: DIV
000007b8: SWAP4
000007b9: DUP5
000007ba: ADD
000007bb: DUP2
000007bc: SWAP1
000007bd: DIV
000007be: DUP2
000007bf: MUL
000007c0: DUP3
000007c1: ADD
000007c2: DUP2
000007c3: ADD
000007c4: SWAP1
000007c5: SWAP3
000007c6: MSTORE
000007c7: DUP3
000007c8: DUP2
000007c9: MSTORE
000007ca: PUSH1 0x60
000007cc: SWAP4
000007cd: SWAP1
000007ce: SWAP3
000007cf: SWAP1
000007d0: SWAP2
000007d1: DUP4
000007d2: ADD
000007d3: DUP3
000007d4: DUP3
000007d5: DUP1
000007d6: ISZERO
000007d7: PUSH2 0x0821
000007da: JUMPI
000007db: DUP1
000007dc: PUSH1 0x1f
000007de: LT
000007df: PUSH2 0x07f6
000007e2: JUMPI
000007e3: PUSH2 0x0100
000007e6: DUP1
000007e7: DUP4
000007e8: SLOAD
000007e9: DIV
000007ea: MUL
000007eb: DUP4
000007ec: MSTORE
000007ed: SWAP2
000007ee: PUSH1 0x20
000007f0: ADD
000007f1: SWAP2
000007f2: PUSH2 0x0821
000007f5: JUMP
000007f6: JUMPDEST
000007f7: DUP3
000007f8: ADD
000007f9: SWAP2
000007fa: SWAP1
000007fb: PUSH1 0x00
000007fd: MSTORE
000007fe: PUSH1 0x20
00000800: PUSH1 0x00
00000802: KECCAK256
00000803: SWAP1
00000804: JUMPDEST
00000805: DUP2
00000806: SLOAD
00000807: DUP2
00000808: MSTORE
00000809: SWAP1
0000080a: PUSH1 0x01
0000080c: ADD
0000080d: SWAP1
0000080e: PUSH1 0x20
00000810: ADD
00000811: DUP1
00000812: DUP4
00000813: GT
00000814: PUSH2 0x0804
00000817: JUMPI
00000818: DUP3
00000819: SWAP1
0000081a: SUB
0000081b: PUSH1 0x1f
0000081d: AND
0000081e: DUP3
0000081f: ADD
00000820: SWAP2
00000821: JUMPDEST
00000822: POP
00000823: POP
00000824: POP
00000825: POP
00000826: POP
00000827: SWAP1
00000828: POP
00000829: JUMPDEST
0000082a: SWAP1
0000082b: JUMP
0000082c: JUMPDEST
0000082d: PUSH1 0x00
0000082f: PUSH2 0x0840
00000832: PUSH2 0x0839
00000835: PUSH2 0x19ac
00000838: JUMP
00000839: JUMPDEST
0000083a: DUP5
0000083b: DUP5
0000083c: PUSH2 0x19b0
0000083f: JUMP
00000840: JUMPDEST
00000841: POP
00000842: PUSH1 0x01
00000844: JUMPDEST
00000845: SWAP3
00000846: SWAP2
00000847: POP
00000848: POP
00000849: JUMP
0000084a: JUMPDEST
0000084b: PUSH1 0x00
0000084d: DUP1
0000084e: PUSH2 0x0856
00000851: DUP4
00000852: PUSH2 0x1a9c
00000855: JUMP
00000856: JUMPDEST
00000857: PUSH2 0x085e
0000085a: PUSH2 0x1ab7
0000085d: JUMP
0000085e: JUMPDEST
0000085f: SWAP2
00000860: POP
00000861: SWAP2
00000862: POP
00000863: SWAP2
00000864: POP
00000865: SWAP2
00000866: JUMP
00000867: JUMPDEST
00000868: PUSH1 0x01
0000086a: DUP2
0000086b: JUMP
0000086c: JUMPDEST
0000086d: PUSH1 0x39
0000086f: SLOAD
00000870: PUSH1 0x00
00000872: SWAP1
00000873: PUSH2 0x0100
00000876: SWAP1
00000877: DIV
00000878: PUSH1 0x01
0000087a: PUSH1 0x01
0000087c: PUSH1 0xa0
0000087e: SHL
0000087f: SUB
00000880: AND
00000881: PUSH2 0x0888
00000884: PUSH2 0x19ac
00000887: JUMP
00000888: JUMPDEST
00000889: PUSH1 0x01
0000088b: PUSH1 0x01
0000088d: PUSH1 0xa0
0000088f: SHL
00000890: SUB
00000891: AND
00000892: EQ
00000893: PUSH1 0x40
00000895: MLOAD
00000896: DUP1
00000897: PUSH1 0x40
00000899: ADD
0000089a: PUSH1 0x40
0000089c: MSTORE
0000089d: DUP1
0000089e: PUSH1 0x02
000008a0: DUP2
000008a1: MSTORE
000008a2: PUSH1 0x20
000008a4: ADD
000008a5: PUSH2 0x3239
000008a8: PUSH1 0xf0
000008aa: SHL
000008ab: DUP2
000008ac: MSTORE
000008ad: POP
000008ae: SWAP1
000008af: PUSH2 0x0936
000008b2: JUMPI
000008b3: PUSH1 0x40
000008b5: MLOAD
000008b6: PUSH3 0x461bcd
000008ba: PUSH1 0xe5
000008bc: SHL
000008bd: DUP2
000008be: MSTORE
000008bf: PUSH1 0x04
000008c1: ADD
000008c2: DUP1
000008c3: DUP1
000008c4: PUSH1 0x20
000008c6: ADD
000008c7: DUP3
000008c8: DUP2
000008c9: SUB
000008ca: DUP3
000008cb: MSTORE
000008cc: DUP4
000008cd: DUP2
000008ce: DUP2
000008cf: MLOAD
000008d0: DUP2
000008d1: MSTORE
000008d2: PUSH1 0x20
000008d4: ADD
000008d5: SWAP2
000008d6: POP
000008d7: DUP1
000008d8: MLOAD
000008d9: SWAP1
000008da: PUSH1 0x20
000008dc: ADD
000008dd: SWAP1
000008de: DUP1
000008df: DUP4
000008e0: DUP4
000008e1: PUSH1 0x00
000008e3: JUMPDEST
000008e4: DUP4
000008e5: DUP2
000008e6: LT
000008e7: ISZERO
000008e8: PUSH2 0x08fb
000008eb: JUMPI
000008ec: DUP2
000008ed: DUP2
000008ee: ADD
000008ef: MLOAD
000008f0: DUP4
000008f1: DUP3
000008f2: ADD
000008f3: MSTORE
000008f4: PUSH1 0x20
000008f6: ADD
000008f7: PUSH2 0x08e3
000008fa: JUMP
000008fb: JUMPDEST
000008fc: POP
000008fd: POP
000008fe: POP
000008ff: POP
00000900: SWAP1
00000901: POP
00000902: SWAP1
00000903: DUP2
00000904: ADD
00000905: SWAP1
00000906: PUSH1 0x1f
00000908: AND
00000909: DUP1
0000090a: ISZERO
0000090b: PUSH2 0x0928
0000090e: JUMPI
0000090f: DUP1
00000910: DUP3
00000911: SUB
00000912: DUP1
00000913: MLOAD
00000914: PUSH1 0x01
00000916: DUP4
00000917: PUSH1 0x20
00000919: SUB
0000091a: PUSH2 0x0100
0000091d: EXP
0000091e: SUB
0000091f: NOT
00000920: AND
00000921: DUP2
00000922: MSTORE
00000923: PUSH1 0x20
00000925: ADD
00000926: SWAP2
00000927: POP
00000928: JUMPDEST
00000929: POP
0000092a: SWAP3
0000092b: POP
0000092c: POP
0000092d: POP
0000092e: PUSH1 0x40
00000930: MLOAD
00000931: DUP1
00000932: SWAP2
00000933: SUB
00000934: SWAP1
00000935: REVERT
00000936: JUMPDEST
00000937: POP
00000938: PUSH1 0x00
0000093a: PUSH2 0x0942
0000093d: DUP6
0000093e: PUSH2 0x1a9c
00000941: JUMP
00000942: JUMPDEST
00000943: SWAP1
00000944: POP
00000945: PUSH1 0x00
00000947: PUSH2 0x0950
0000094a: DUP6
0000094b: DUP6
0000094c: PUSH2 0x1abd
0000094f: JUMP
00000950: JUMPDEST
00000951: PUSH1 0x40
00000953: DUP1
00000954: MLOAD
00000955: DUP1
00000956: DUP3
00000957: ADD
00000958: SWAP1
00000959: SWAP2
0000095a: MSTORE
0000095b: PUSH1 0x02
0000095d: DUP2
0000095e: MSTORE
0000095f: PUSH2 0x1a9b
00000962: PUSH1 0xf1
00000964: SHL
00000965: PUSH1 0x20
00000967: DUP3
00000968: ADD
00000969: MSTORE
0000096a: SWAP1
0000096b: SWAP2
0000096c: POP
0000096d: DUP2
0000096e: PUSH2 0x09b8
00000971: JUMPI
00000972: PUSH1 0x40
00000974: MLOAD
00000975: PUSH3 0x461bcd
00000979: PUSH1 0xe5
0000097b: SHL
0000097c: DUP2
0000097d: MSTORE
0000097e: PUSH1 0x20
00000980: PUSH1 0x04
00000982: DUP3
00000983: ADD
00000984: DUP2
00000985: DUP2
00000986: MSTORE
00000987: DUP4
00000988: MLOAD
00000989: PUSH1 0x24
0000098b: DUP5
0000098c: ADD
0000098d: MSTORE
0000098e: DUP4
0000098f: MLOAD
00000990: SWAP1
00000991: SWAP3
00000992: DUP4
00000993: SWAP3
00000994: PUSH1 0x44
00000996: SWAP1
00000997: SWAP2
00000998: ADD
00000999: SWAP2
0000099a: SWAP1
0000099b: DUP6
0000099c: ADD
0000099d: SWAP1
0000099e: DUP1
0000099f: DUP4
000009a0: DUP4
000009a1: PUSH1 0x00
000009a3: DUP4
000009a4: ISZERO
000009a5: PUSH2 0x08fb
000009a8: JUMPI
000009a9: DUP2
000009aa: DUP2
000009ab: ADD
000009ac: MLOAD
000009ad: DUP4
000009ae: DUP3
000009af: ADD
000009b0: MSTORE
000009b1: PUSH1 0x20
000009b3: ADD
000009b4: PUSH2 0x08e3
000009b7: JUMP
000009b8: JUMPDEST
000009b9: POP
000009ba: PUSH2 0x09c3
000009bd: DUP7
000009be: DUP3
000009bf: PUSH2 0x1bc4
000009c2: JUMP
000009c3: JUMPDEST
000009c4: PUSH1 0x40
000009c6: DUP1
000009c7: MLOAD
000009c8: DUP7
000009c9: DUP2
000009ca: MSTORE
000009cb: SWAP1
000009cc: MLOAD
000009cd: PUSH1 0x01
000009cf: PUSH1 0x01
000009d1: PUSH1 0xa0
000009d3: SHL
000009d4: SUB
000009d5: DUP9
000009d6: AND
000009d7: SWAP2
000009d8: PUSH1 0x00
000009da: SWAP2
000009db: PUSH1 0x00
000009dd: DUP1
000009de: MLOAD
000009df: PUSH1 0x20
000009e1: PUSH2 0x2995
000009e4: DUP4
000009e5: CODECOPY
000009e6: DUP2
000009e7: MLOAD
000009e8: SWAP2
000009e9: MSTORE
000009ea: SWAP2
000009eb: DUP2
000009ec: SWAP1
000009ed: SUB
000009ee: PUSH1 0x20
000009f0: ADD
000009f1: SWAP1
000009f2: LOG3
000009f3: PUSH1 0x40
000009f5: DUP1
000009f6: MLOAD
000009f7: DUP7
000009f8: DUP2
000009f9: MSTORE
000009fa: PUSH1 0x20
000009fc: DUP2
000009fd: ADD
000009fe: DUP7
000009ff: SWAP1
00000a00: MSTORE
00000a01: DUP2
00000a02: MLOAD
00000a03: PUSH1 0x01
00000a05: PUSH1 0x01
00000a07: PUSH1 0xa0
00000a09: SHL
00000a0a: SUB
00000a0b: DUP10
00000a0c: AND
00000a0d: SWAP3
00000a0e: PUSH32 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f
00000a2f: SWAP3
00000a30: DUP3
00000a31: SWAP1
00000a32: SUB
00000a33: ADD
00000a34: SWAP1
00000a35: LOG2
00000a36: POP
00000a37: ISZERO
00000a38: SWAP1
00000a39: POP
00000a3a: JUMPDEST
00000a3b: SWAP4
00000a3c: SWAP3
00000a3d: POP
00000a3e: POP
00000a3f: POP
00000a40: JUMP
00000a41: JUMPDEST
00000a42: PUSH1 0x00
00000a44: DUP1
00000a45: PUSH2 0x0a4c
00000a48: PUSH2 0x1ab7
00000a4b: JUMP
00000a4c: JUMPDEST
00000a4d: SWAP1
00000a4e: POP
00000a4f: DUP1
00000a50: PUSH2 0x0a5d
00000a53: JUMPI
00000a54: PUSH1 0x00
00000a56: SWAP2
00000a57: POP
00000a58: POP
00000a59: PUSH2 0x0829
00000a5c: JUMP
00000a5d: JUMPDEST
00000a5e: PUSH1 0x39
00000a60: SLOAD
00000a61: PUSH1 0x3a
00000a63: SLOAD
00000a64: PUSH1 0x40
00000a66: DUP1
00000a67: MLOAD
00000a68: PUSH4 0xd15e0053
00000a6d: PUSH1 0xe0
00000a6f: SHL
00000a70: DUP2
00000a71: MSTORE
00000a72: PUSH1 0x01
00000a74: PUSH1 0x01
00000a76: PUSH1 0xa0
00000a78: SHL
00000a79: SUB
00000a7a: SWAP3
00000a7b: DUP4
00000a7c: AND
00000a7d: PUSH1 0x04
00000a7f: DUP3
00000a80: ADD
00000a81: MSTORE
00000a82: SWAP1
00000a83: MLOAD
00000a84: PUSH2 0x0ae9
00000a87: SWAP4
00000a88: PUSH2 0x0100
00000a8b: SWAP1
00000a8c: DIV
00000a8d: SWAP1
00000a8e: SWAP3
00000a8f: AND
00000a90: SWAP2
00000a91: PUSH4 0xd15e0053
00000a96: SWAP2
00000a97: PUSH1 0x24
00000a99: DUP1
00000a9a: DUP3
00000a9b: ADD
00000a9c: SWAP3
00000a9d: PUSH1 0x20
00000a9f: SWAP3
00000aa0: SWAP1
00000aa1: SWAP2
00000aa2: SWAP1
00000aa3: DUP3
00000aa4: SWAP1
00000aa5: SUB
00000aa6: ADD
00000aa7: DUP2
00000aa8: DUP7
00000aa9: DUP1
00000aaa: EXTCODESIZE
00000aab: ISZERO
00000aac: DUP1
00000aad: ISZERO
00000aae: PUSH2 0x0ab6
00000ab1: JUMPI
00000ab2: PUSH1 0x00
00000ab4: DUP1
00000ab5: REVERT
00000ab6: JUMPDEST
00000ab7: POP
00000ab8: GAS
00000ab9: STATICCALL
00000aba: ISZERO
00000abb: DUP1
00000abc: ISZERO
00000abd: PUSH2 0x0aca
00000ac0: JUMPI
00000ac1: RETURNDATASIZE
00000ac2: PUSH1 0x00
00000ac4: DUP1
00000ac5: RETURNDATACOPY
00000ac6: RETURNDATASIZE
00000ac7: PUSH1 0x00
00000ac9: REVERT
00000aca: JUMPDEST
00000acb: POP
00000acc: POP
00000acd: POP
00000ace: POP
00000acf: PUSH1 0x40
00000ad1: MLOAD
00000ad2: RETURNDATASIZE
00000ad3: PUSH1 0x20
00000ad5: DUP2
00000ad6: LT
00000ad7: ISZERO
00000ad8: PUSH2 0x0ae0
00000adb: JUMPI
00000adc: PUSH1 0x00
00000ade: DUP1
00000adf: REVERT
00000ae0: JUMPDEST
00000ae1: POP
00000ae2: MLOAD
00000ae3: DUP3
00000ae4: SWAP1
00000ae5: PUSH2 0x1d15
00000ae8: JUMP
00000ae9: JUMPDEST
00000aea: SWAP2
00000aeb: POP
00000aec: POP
00000aed: SWAP1
00000aee: JUMP
00000aef: JUMPDEST
00000af0: PUSH1 0x00
00000af2: PUSH2 0x0844
00000af5: DUP3
00000af6: PUSH2 0x1a9c
00000af9: JUMP
00000afa: JUMPDEST
00000afb: PUSH1 0x00
00000afd: PUSH2 0x0b07
00000b00: DUP5
00000b01: DUP5
00000b02: DUP5
00000b03: PUSH2 0x1dd3
00000b06: JUMP
00000b07: JUMPDEST
00000b08: PUSH2 0x0b77
00000b0b: DUP5
00000b0c: PUSH2 0x0b13
00000b0f: PUSH2 0x19ac
00000b12: JUMP
00000b13: JUMPDEST
00000b14: PUSH2 0x0b72
00000b17: DUP6
00000b18: PUSH1 0x40
00000b1a: MLOAD
00000b1b: DUP1
00000b1c: PUSH1 0x60
00000b1e: ADD
00000b1f: PUSH1 0x40
00000b21: MSTORE
00000b22: DUP1
00000b23: PUSH1 0x28
00000b25: DUP2
00000b26: MSTORE
00000b27: PUSH1 0x20
00000b29: ADD
00000b2a: PUSH2 0x2917
00000b2d: PUSH1 0x28
00000b2f: SWAP2
00000b30: CODECOPY
00000b31: PUSH1 0x01
00000b33: PUSH1 0x01
00000b35: PUSH1 0xa0
00000b37: SHL
00000b38: SUB
00000b39: DUP11
00000b3a: AND
00000b3b: PUSH1 0x00
00000b3d: SWAP1
00000b3e: DUP2
00000b3f: MSTORE
00000b40: PUSH1 0x35
00000b42: PUSH1 0x20
00000b44: MSTORE
00000b45: PUSH1 0x40
00000b47: DUP2
00000b48: KECCAK256
00000b49: SWAP1
00000b4a: PUSH2 0x0b51
00000b4d: PUSH2 0x19ac
00000b50: JUMP
00000b51: JUMPDEST
00000b52: PUSH1 0x01
00000b54: PUSH1 0x01
00000b56: PUSH1 0xa0
00000b58: SHL
00000b59: SUB
00000b5a: AND
00000b5b: DUP2
00000b5c: MSTORE
00000b5d: PUSH1 0x20
00000b5f: DUP2
00000b60: ADD
00000b61: SWAP2
00000b62: SWAP1
00000b63: SWAP2
00000b64: MSTORE
00000b65: PUSH1 0x40
00000b67: ADD
00000b68: PUSH1 0x00
00000b6a: KECCAK256
00000b6b: SLOAD
00000b6c: SWAP2
00000b6d: SWAP1
00000b6e: PUSH2 0x1de0
00000b71: JUMP
00000b72: JUMPDEST
00000b73: PUSH2 0x19b0
00000b76: JUMP
00000b77: JUMPDEST
00000b78: DUP3
00000b79: PUSH1 0x01
00000b7b: PUSH1 0x01
00000b7d: PUSH1 0xa0
00000b7f: SHL
00000b80: SUB
00000b81: AND
00000b82: DUP5
00000b83: PUSH1 0x01
00000b85: PUSH1 0x01
00000b87: PUSH1 0xa0
00000b89: SHL
00000b8a: SUB
00000b8b: AND
00000b8c: PUSH1 0x00
00000b8e: DUP1
00000b8f: MLOAD
00000b90: PUSH1 0x20
00000b92: PUSH2 0x2995
00000b95: DUP4
00000b96: CODECOPY
00000b97: DUP2
00000b98: MLOAD
00000b99: SWAP2
00000b9a: MSTORE
00000b9b: DUP5
00000b9c: PUSH1 0x40
00000b9e: MLOAD
00000b9f: DUP1
00000ba0: DUP3
00000ba1: DUP2
00000ba2: MSTORE
00000ba3: PUSH1 0x20
00000ba5: ADD
00000ba6: SWAP2
00000ba7: POP
00000ba8: POP
00000ba9: PUSH1 0x40
00000bab: MLOAD
00000bac: DUP1
00000bad: SWAP2
00000bae: SUB
00000baf: SWAP1
00000bb0: LOG3
00000bb1: POP
00000bb2: PUSH1 0x01
00000bb4: SWAP4
00000bb5: SWAP3
00000bb6: POP
00000bb7: POP
00000bb8: POP
00000bb9: JUMP
00000bba: JUMPDEST
00000bbb: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
00000bdc: DUP2
00000bdd: JUMP
00000bde: JUMPDEST
00000bdf: PUSH1 0x39
00000be1: SLOAD
00000be2: PUSH1 0xff
00000be4: AND
00000be5: SWAP1
00000be6: JUMP
00000be7: JUMPDEST
00000be8: PUSH1 0x3c
00000bea: SLOAD
00000beb: DUP2
00000bec: JUMP
00000bed: JUMPDEST
00000bee: PUSH1 0x00
00000bf0: PUSH2 0x0840
00000bf3: PUSH2 0x0bfa
00000bf6: PUSH2 0x19ac
00000bf9: JUMP
00000bfa: JUMPDEST
00000bfb: DUP5
00000bfc: PUSH2 0x0b72
00000bff: DUP6
00000c00: PUSH1 0x35
00000c02: PUSH1 0x00
00000c04: PUSH2 0x0c0b
00000c07: PUSH2 0x19ac
00000c0a: JUMP
00000c0b: JUMPDEST
00000c0c: PUSH1 0x01
00000c0e: PUSH1 0x01
00000c10: PUSH1 0xa0
00000c12: SHL
00000c13: SUB
00000c14: SWAP1
00000c15: DUP2
00000c16: AND
00000c17: DUP3
00000c18: MSTORE
00000c19: PUSH1 0x20
00000c1b: DUP1
00000c1c: DUP4
00000c1d: ADD
00000c1e: SWAP4
00000c1f: SWAP1
00000c20: SWAP4
00000c21: MSTORE
00000c22: PUSH1 0x40
00000c24: SWAP2
00000c25: DUP3
00000c26: ADD
00000c27: PUSH1 0x00
00000c29: SWAP1
00000c2a: DUP2
00000c2b: KECCAK256
00000c2c: SWAP2
00000c2d: DUP13
00000c2e: AND
00000c2f: DUP2
00000c30: MSTORE
00000c31: SWAP3
00000c32: MSTORE
00000c33: SWAP1
00000c34: KECCAK256
00000c35: SLOAD
00000c36: SWAP1
00000c37: PUSH2 0x1e3a
00000c3a: JUMP
00000c3b: JUMPDEST
00000c3c: PUSH1 0x39
00000c3e: SLOAD
00000c3f: PUSH1 0x00
00000c41: SWAP1
00000c42: PUSH2 0x0100
00000c45: SWAP1
00000c46: DIV
00000c47: PUSH1 0x01
00000c49: PUSH1 0x01
00000c4b: PUSH1 0xa0
00000c4d: SHL
00000c4e: SUB
00000c4f: AND
00000c50: PUSH2 0x0c57
00000c53: PUSH2 0x19ac
00000c56: JUMP
00000c57: JUMPDEST
00000c58: PUSH1 0x01
00000c5a: PUSH1 0x01
00000c5c: PUSH1 0xa0
00000c5e: SHL
00000c5f: SUB
00000c60: AND
00000c61: EQ
00000c62: PUSH1 0x40
00000c64: MLOAD
00000c65: DUP1
00000c66: PUSH1 0x40
00000c68: ADD
00000c69: PUSH1 0x40
00000c6b: MSTORE
00000c6c: DUP1
00000c6d: PUSH1 0x02
00000c6f: DUP2
00000c70: MSTORE
00000c71: PUSH1 0x20
00000c73: ADD
00000c74: PUSH2 0x3239
00000c77: PUSH1 0xf0
00000c79: SHL
00000c7a: DUP2
00000c7b: MSTORE
00000c7c: POP
00000c7d: SWAP1
00000c7e: PUSH2 0x0cc8
00000c81: JUMPI
00000c82: PUSH1 0x40
00000c84: MLOAD
00000c85: PUSH3 0x461bcd
00000c89: PUSH1 0xe5
00000c8b: SHL
00000c8c: DUP2
00000c8d: MSTORE
00000c8e: PUSH1 0x20
00000c90: PUSH1 0x04
00000c92: DUP3
00000c93: ADD
00000c94: DUP2
00000c95: DUP2
00000c96: MSTORE
00000c97: DUP4
00000c98: MLOAD
00000c99: PUSH1 0x24
00000c9b: DUP5
00000c9c: ADD
00000c9d: MSTORE
00000c9e: DUP4
00000c9f: MLOAD
00000ca0: SWAP1
00000ca1: SWAP3
00000ca2: DUP4
00000ca3: SWAP3
00000ca4: PUSH1 0x44
00000ca6: SWAP1
00000ca7: SWAP2
00000ca8: ADD
00000ca9: SWAP2
00000caa: SWAP1
00000cab: DUP6
00000cac: ADD
00000cad: SWAP1
00000cae: DUP1
00000caf: DUP4
00000cb0: DUP4
00000cb1: PUSH1 0x00
00000cb3: DUP4
00000cb4: ISZERO
00000cb5: PUSH2 0x08fb
00000cb8: JUMPI
00000cb9: DUP2
00000cba: DUP2
00000cbb: ADD
00000cbc: MLOAD
00000cbd: DUP4
00000cbe: DUP3
00000cbf: ADD
00000cc0: MSTORE
00000cc1: PUSH1 0x20
00000cc3: ADD
00000cc4: PUSH2 0x08e3
00000cc7: JUMP
00000cc8: JUMPDEST
00000cc9: POP
00000cca: PUSH1 0x3a
00000ccc: SLOAD
00000ccd: PUSH2 0x0ce0
00000cd0: SWAP1
00000cd1: PUSH1 0x01
00000cd3: PUSH1 0x01
00000cd5: PUSH1 0xa0
00000cd7: SHL
00000cd8: SUB
00000cd9: AND
00000cda: DUP5
00000cdb: DUP5
00000cdc: PUSH2 0x1e94
00000cdf: JUMP
00000ce0: JUMPDEST
00000ce1: POP
00000ce2: SWAP2
00000ce3: SWAP1
00000ce4: POP
00000ce5: JUMP
00000ce6: JUMPDEST
00000ce7: PUSH1 0x39
00000ce9: SLOAD
00000cea: PUSH1 0x3a
00000cec: SLOAD
00000ced: PUSH1 0x40
00000cef: DUP1
00000cf0: MLOAD
00000cf1: PUSH4 0xd15e0053
00000cf6: PUSH1 0xe0
00000cf8: SHL
00000cf9: DUP2
00000cfa: MSTORE
00000cfb: PUSH1 0x01
00000cfd: PUSH1 0x01
00000cff: PUSH1 0xa0
00000d01: SHL
00000d02: SUB
00000d03: SWAP3
00000d04: DUP4
00000d05: AND
00000d06: PUSH1 0x04
00000d08: DUP3
00000d09: ADD
00000d0a: MSTORE
00000d0b: SWAP1
00000d0c: MLOAD
00000d0d: PUSH1 0x00
00000d0f: SWAP4
00000d10: PUSH2 0x0844
00000d13: SWAP4
00000d14: PUSH2 0x0100
00000d17: SWAP1
00000d18: SWAP2
00000d19: DIV
00000d1a: AND
00000d1b: SWAP2
00000d1c: PUSH4 0xd15e0053
00000d21: SWAP2
00000d22: PUSH1 0x24
00000d24: DUP1
00000d25: DUP4
00000d26: ADD
00000d27: SWAP3
00000d28: PUSH1 0x20
00000d2a: SWAP3
00000d2b: SWAP2
00000d2c: SWAP1
00000d2d: DUP3
00000d2e: SWAP1
00000d2f: SUB
00000d30: ADD
00000d31: DUP2
00000d32: DUP7
00000d33: DUP1
00000d34: EXTCODESIZE
00000d35: ISZERO
00000d36: DUP1
00000d37: ISZERO
00000d38: PUSH2 0x0d40
00000d3b: JUMPI
00000d3c: PUSH1 0x00
00000d3e: DUP1
00000d3f: REVERT
00000d40: JUMPDEST
00000d41: POP
00000d42: GAS
00000d43: STATICCALL
00000d44: ISZERO
00000d45: DUP1
00000d46: ISZERO
00000d47: PUSH2 0x0d54
00000d4a: JUMPI
00000d4b: RETURNDATASIZE
00000d4c: PUSH1 0x00
00000d4e: DUP1
00000d4f: RETURNDATACOPY
00000d50: RETURNDATASIZE
00000d51: PUSH1 0x00
00000d53: REVERT
00000d54: JUMPDEST
00000d55: POP
00000d56: POP
00000d57: POP
00000d58: POP
00000d59: PUSH1 0x40
00000d5b: MLOAD
00000d5c: RETURNDATASIZE
00000d5d: PUSH1 0x20
00000d5f: DUP2
00000d60: LT
00000d61: ISZERO
00000d62: PUSH2 0x0d6a
00000d65: JUMPI
00000d66: PUSH1 0x00
00000d68: DUP1
00000d69: REVERT
00000d6a: JUMPDEST
00000d6b: POP
00000d6c: MLOAD
00000d6d: PUSH2 0x0d75
00000d70: DUP5
00000d71: PUSH2 0x1a9c
00000d74: JUMP
00000d75: JUMPDEST
00000d76: SWAP1
00000d77: PUSH2 0x1d15
00000d7a: JUMP
00000d7b: JUMPDEST
00000d7c: PUSH1 0x39
00000d7e: SLOAD
00000d7f: PUSH2 0x0100
00000d82: SWAP1
00000d83: DIV
00000d84: PUSH1 0x01
00000d86: PUSH1 0x01
00000d88: PUSH1 0xa0
00000d8a: SHL
00000d8b: SUB
00000d8c: AND
00000d8d: SWAP1
00000d8e: JUMP
00000d8f: JUMPDEST
00000d90: PUSH1 0x00
00000d92: PUSH2 0x0d99
00000d95: PUSH2 0x1ee6
00000d98: JUMP
00000d99: JUMPDEST
00000d9a: SWAP1
00000d9b: POP
00000d9c: SWAP1
00000d9d: JUMP
00000d9e: JUMPDEST
00000d9f: PUSH1 0x40
00000da1: MLOAD
00000da2: DUP1
00000da3: PUSH1 0x40
00000da5: ADD
00000da6: PUSH1 0x40
00000da8: MSTORE
00000da9: DUP1
00000daa: PUSH1 0x01
00000dac: DUP2
00000dad: MSTORE
00000dae: PUSH1 0x20
00000db0: ADD
00000db1: PUSH1 0x31
00000db3: PUSH1 0xf8
00000db5: SHL
00000db6: DUP2
00000db7: MSTORE
00000db8: POP
00000db9: DUP2
00000dba: JUMP
00000dbb: JUMPDEST
00000dbc: PUSH1 0x39
00000dbe: SLOAD
00000dbf: PUSH2 0x0100
00000dc2: SWAP1
00000dc3: DIV
00000dc4: PUSH1 0x01
00000dc6: PUSH1 0x01
00000dc8: PUSH1 0xa0
00000dca: SHL
00000dcb: SUB
00000dcc: AND
00000dcd: PUSH2 0x0dd4
00000dd0: PUSH2 0x19ac
00000dd3: JUMP
00000dd4: JUMPDEST
00000dd5: PUSH1 0x01
00000dd7: PUSH1 0x01
00000dd9: PUSH1 0xa0
00000ddb: SHL
00000ddc: SUB
00000ddd: AND
00000dde: EQ
00000ddf: PUSH1 0x40
00000de1: MLOAD
00000de2: DUP1
00000de3: PUSH1 0x40
00000de5: ADD
00000de6: PUSH1 0x40
00000de8: MSTORE
00000de9: DUP1
00000dea: PUSH1 0x02
00000dec: DUP2
00000ded: MSTORE
00000dee: PUSH1 0x20
00000df0: ADD
00000df1: PUSH2 0x3239
00000df4: PUSH1 0xf0
00000df6: SHL
00000df7: DUP2
00000df8: MSTORE
00000df9: POP
00000dfa: SWAP1
00000dfb: PUSH2 0x0e45
00000dfe: JUMPI
00000dff: PUSH1 0x40
00000e01: MLOAD
00000e02: PUSH3 0x461bcd
00000e06: PUSH1 0xe5
00000e08: SHL
00000e09: DUP2
00000e0a: MSTORE
00000e0b: PUSH1 0x20
00000e0d: PUSH1 0x04
00000e0f: DUP3
00000e10: ADD
00000e11: DUP2
00000e12: DUP2
00000e13: MSTORE
00000e14: DUP4
00000e15: MLOAD
00000e16: PUSH1 0x24
00000e18: DUP5
00000e19: ADD
00000e1a: MSTORE
00000e1b: DUP4
00000e1c: MLOAD
00000e1d: SWAP1
00000e1e: SWAP3
00000e1f: DUP4
00000e20: SWAP3
00000e21: PUSH1 0x44
00000e23: SWAP1
00000e24: SWAP2
00000e25: ADD
00000e26: SWAP2
00000e27: SWAP1
00000e28: DUP6
00000e29: ADD
00000e2a: SWAP1
00000e2b: DUP1
00000e2c: DUP4
00000e2d: DUP4
00000e2e: PUSH1 0x00
00000e30: DUP4
00000e31: ISZERO
00000e32: PUSH2 0x08fb
00000e35: JUMPI
00000e36: DUP2
00000e37: DUP2
00000e38: ADD
00000e39: MLOAD
00000e3a: DUP4
00000e3b: DUP3
00000e3c: ADD
00000e3d: MSTORE
00000e3e: PUSH1 0x20
00000e40: ADD
00000e41: PUSH2 0x08e3
00000e44: JUMP
00000e45: JUMPDEST
00000e46: POP
00000e47: DUP2
00000e48: PUSH2 0x0e50
00000e4b: JUMPI
00000e4c: PUSH2 0x0ee3
00000e4f: JUMP
00000e50: JUMPDEST
00000e51: PUSH1 0x3d
00000e53: SLOAD
00000e54: PUSH1 0x01
00000e56: PUSH1 0x01
00000e58: PUSH1 0xa0
00000e5a: SHL
00000e5b: SUB
00000e5c: AND
00000e5d: PUSH2 0x0e6f
00000e60: DUP2
00000e61: PUSH2 0x0e6a
00000e64: DUP6
00000e65: DUP6
00000e66: PUSH2 0x1abd
00000e69: JUMP
00000e6a: JUMPDEST
00000e6b: PUSH2 0x1bc4
00000e6e: JUMP
00000e6f: JUMPDEST
00000e70: PUSH1 0x40
00000e72: DUP1
00000e73: MLOAD
00000e74: DUP5
00000e75: DUP2
00000e76: MSTORE
00000e77: SWAP1
00000e78: MLOAD
00000e79: PUSH1 0x01
00000e7b: PUSH1 0x01
00000e7d: PUSH1 0xa0
00000e7f: SHL
00000e80: SUB
00000e81: DUP4
00000e82: AND
00000e83: SWAP2
00000e84: PUSH1 0x00
00000e86: SWAP2
00000e87: PUSH1 0x00
00000e89: DUP1
00000e8a: MLOAD
00000e8b: PUSH1 0x20
00000e8d: PUSH2 0x2995
00000e90: DUP4
00000e91: CODECOPY
00000e92: DUP2
00000e93: MLOAD
00000e94: SWAP2
00000e95: MSTORE
00000e96: SWAP2
00000e97: DUP2
00000e98: SWAP1
00000e99: SUB
00000e9a: PUSH1 0x20
00000e9c: ADD
00000e9d: SWAP1
00000e9e: LOG3
00000e9f: PUSH1 0x40
00000ea1: DUP1
00000ea2: MLOAD
00000ea3: DUP5
00000ea4: DUP2
00000ea5: MSTORE
00000ea6: PUSH1 0x20
00000ea8: DUP2
00000ea9: ADD
00000eaa: DUP5
00000eab: SWAP1
00000eac: MSTORE
00000ead: DUP2
00000eae: MLOAD
00000eaf: PUSH1 0x01
00000eb1: PUSH1 0x01
00000eb3: PUSH1 0xa0
00000eb5: SHL
00000eb6: SUB
00000eb7: DUP5
00000eb8: AND
00000eb9: SWAP3
00000eba: PUSH32 0x4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f
00000edb: SWAP3
00000edc: DUP3
00000edd: SWAP1
00000ede: SUB
00000edf: ADD
00000ee0: SWAP1
00000ee1: LOG2
00000ee2: POP
00000ee3: JUMPDEST
00000ee4: POP
00000ee5: POP
00000ee6: JUMP
00000ee7: JUMPDEST
00000ee8: PUSH1 0x39
00000eea: SLOAD
00000eeb: PUSH2 0x0100
00000eee: SWAP1
00000eef: DIV
00000ef0: PUSH1 0x01
00000ef2: PUSH1 0x01
00000ef4: PUSH1 0xa0
00000ef6: SHL
00000ef7: SUB
00000ef8: AND
00000ef9: PUSH2 0x0f00
00000efc: PUSH2 0x19ac
00000eff: JUMP
00000f00: JUMPDEST
00000f01: PUSH1 0x01
00000f03: PUSH1 0x01
00000f05: PUSH1 0xa0
00000f07: SHL
00000f08: SUB
00000f09: AND
00000f0a: EQ
00000f0b: PUSH1 0x40
00000f0d: MLOAD
00000f0e: DUP1
00000f0f: PUSH1 0x40
00000f11: ADD
00000f12: PUSH1 0x40
00000f14: MSTORE
00000f15: DUP1
00000f16: PUSH1 0x02
00000f18: DUP2
00000f19: MSTORE
00000f1a: PUSH1 0x20
00000f1c: ADD
00000f1d: PUSH2 0x3239
00000f20: PUSH1 0xf0
00000f22: SHL
00000f23: DUP2
00000f24: MSTORE
00000f25: POP
00000f26: SWAP1
00000f27: PUSH2 0x0f71
00000f2a: JUMPI
00000f2b: PUSH1 0x40
00000f2d: MLOAD
00000f2e: PUSH3 0x461bcd
00000f32: PUSH1 0xe5
00000f34: SHL
00000f35: DUP2
00000f36: MSTORE
00000f37: PUSH1 0x20
00000f39: PUSH1 0x04
00000f3b: DUP3
00000f3c: ADD
00000f3d: DUP2
00000f3e: DUP2
00000f3f: MSTORE
00000f40: DUP4
00000f41: MLOAD
00000f42: PUSH1 0x24
00000f44: DUP5
00000f45: ADD
00000f46: MSTORE
00000f47: DUP4
00000f48: MLOAD
00000f49: SWAP1
00000f4a: SWAP3
00000f4b: DUP4
00000f4c: SWAP3
00000f4d: PUSH1 0x44
00000f4f: SWAP1
00000f50: SWAP2
00000f51: ADD
00000f52: SWAP2
00000f53: SWAP1
00000f54: DUP6
00000f55: ADD
00000f56: SWAP1
00000f57: DUP1
00000f58: DUP4
00000f59: DUP4
00000f5a: PUSH1 0x00
00000f5c: DUP4
00000f5d: ISZERO
00000f5e: PUSH2 0x08fb
00000f61: JUMPI
00000f62: DUP2
00000f63: DUP2
00000f64: ADD
00000f65: MLOAD
00000f66: DUP4
00000f67: DUP3
00000f68: ADD
00000f69: MSTORE
00000f6a: PUSH1 0x20
00000f6c: ADD
00000f6d: PUSH2 0x08e3
00000f70: JUMP
00000f71: JUMPDEST
00000f72: POP
00000f73: POP
00000f74: POP
00000f75: JUMP
00000f76: JUMPDEST
00000f77: PUSH1 0x38
00000f79: DUP1
00000f7a: SLOAD
00000f7b: PUSH1 0x40
00000f7d: DUP1
00000f7e: MLOAD
00000f7f: PUSH1 0x20
00000f81: PUSH1 0x1f
00000f83: PUSH1 0x02
00000f85: PUSH1 0x00
00000f87: NOT
00000f88: PUSH2 0x0100
00000f8b: PUSH1 0x01
00000f8d: DUP9
00000f8e: AND
00000f8f: ISZERO
00000f90: MUL
00000f91: ADD
00000f92: SWAP1
00000f93: SWAP6
00000f94: AND
00000f95: SWAP5
00000f96: SWAP1
00000f97: SWAP5
00000f98: DIV
00000f99: SWAP4
00000f9a: DUP5
00000f9b: ADD
00000f9c: DUP2
00000f9d: SWAP1
00000f9e: DIV
00000f9f: DUP2
00000fa0: MUL
00000fa1: DUP3
00000fa2: ADD
00000fa3: DUP2
00000fa4: ADD
00000fa5: SWAP1
00000fa6: SWAP3
00000fa7: MSTORE
00000fa8: DUP3
00000fa9: DUP2
00000faa: MSTORE
00000fab: PUSH1 0x60
00000fad: SWAP4
00000fae: SWAP1
00000faf: SWAP3
00000fb0: SWAP1
00000fb1: SWAP2
00000fb2: DUP4
00000fb3: ADD
00000fb4: DUP3
00000fb5: DUP3
00000fb6: DUP1
00000fb7: ISZERO
00000fb8: PUSH2 0x0821
00000fbb: JUMPI
00000fbc: DUP1
00000fbd: PUSH1 0x1f
00000fbf: LT
00000fc0: PUSH2 0x07f6
00000fc3: JUMPI
00000fc4: PUSH2 0x0100
00000fc7: DUP1
00000fc8: DUP4
00000fc9: SLOAD
00000fca: DIV
00000fcb: MUL
00000fcc: DUP4
00000fcd: MSTORE
00000fce: SWAP2
00000fcf: PUSH1 0x20
00000fd1: ADD
00000fd2: SWAP2
00000fd3: PUSH2 0x0821
00000fd6: JUMP
00000fd7: JUMPDEST
00000fd8: PUSH1 0x00
00000fda: PUSH2 0x0840
00000fdd: PUSH2 0x0fe4
00000fe0: PUSH2 0x19ac
00000fe3: JUMP
00000fe4: JUMPDEST
00000fe5: DUP5
00000fe6: PUSH2 0x0b72
00000fe9: DUP6
00000fea: PUSH1 0x40
00000fec: MLOAD
00000fed: DUP1
00000fee: PUSH1 0x60
00000ff0: ADD
00000ff1: PUSH1 0x40
00000ff3: MSTORE
00000ff4: DUP1
00000ff5: PUSH1 0x25
00000ff7: DUP2
00000ff8: MSTORE
00000ff9: PUSH1 0x20
00000ffb: ADD
00000ffc: PUSH2 0x2a49
00000fff: PUSH1 0x25
00001001: SWAP2
00001002: CODECOPY
00001003: PUSH1 0x35
00001005: PUSH1 0x00
00001007: PUSH2 0x100e
0000100a: PUSH2 0x19ac
0000100d: JUMP
0000100e: JUMPDEST
0000100f: PUSH1 0x01
00001011: PUSH1 0x01
00001013: PUSH1 0xa0
00001015: SHL
00001016: SUB
00001017: SWAP1
00001018: DUP2
00001019: AND
0000101a: DUP3
0000101b: MSTORE
0000101c: PUSH1 0x20
0000101e: DUP1
0000101f: DUP4
00001020: ADD
00001021: SWAP4
00001022: SWAP1
00001023: SWAP4
00001024: MSTORE
00001025: PUSH1 0x40
00001027: SWAP2
00001028: DUP3
00001029: ADD
0000102a: PUSH1 0x00
0000102c: SWAP1
0000102d: DUP2
0000102e: KECCAK256
0000102f: SWAP2
00001030: DUP14
00001031: AND
00001032: DUP2
00001033: MSTORE
00001034: SWAP3
00001035: MSTORE
00001036: SWAP1
00001037: KECCAK256
00001038: SLOAD
00001039: SWAP2
0000103a: SWAP1
0000103b: PUSH2 0x1de0
0000103e: JUMP
0000103f: JUMPDEST
00001040: PUSH1 0x00
00001042: PUSH2 0x1053
00001045: PUSH2 0x104c
00001048: PUSH2 0x19ac
0000104b: JUMP
0000104c: JUMPDEST
0000104d: DUP5
0000104e: DUP5
0000104f: PUSH2 0x1dd3
00001052: JUMP
00001053: JUMPDEST
00001054: DUP3
00001055: PUSH1 0x01
00001057: PUSH1 0x01
00001059: PUSH1 0xa0
0000105b: SHL
0000105c: SUB
0000105d: AND
0000105e: PUSH2 0x1065
00001061: PUSH2 0x19ac
00001064: JUMP
00001065: JUMPDEST
00001066: PUSH1 0x01
00001068: PUSH1 0x01
0000106a: PUSH1 0xa0
0000106c: SHL
0000106d: SUB
0000106e: AND
0000106f: PUSH1 0x00
00001071: DUP1
00001072: MLOAD
00001073: PUSH1 0x20
00001075: PUSH2 0x2995
00001078: DUP4
00001079: CODECOPY
0000107a: DUP2
0000107b: MLOAD
0000107c: SWAP2
0000107d: MSTORE
0000107e: DUP5
0000107f: PUSH1 0x40
00001081: MLOAD
00001082: DUP1
00001083: DUP3
00001084: DUP2
00001085: MSTORE
00001086: PUSH1 0x20
00001088: ADD
00001089: SWAP2
0000108a: POP
0000108b: POP
0000108c: PUSH1 0x40
0000108e: MLOAD
0000108f: DUP1
00001090: SWAP2
00001091: SUB
00001092: SWAP1
00001093: LOG3
00001094: POP
00001095: PUSH1 0x01
00001097: SWAP3
00001098: SWAP2
00001099: POP
0000109a: POP
0000109b: JUMP
0000109c: JUMPDEST
0000109d: PUSH1 0x3d
0000109f: SLOAD
000010a0: PUSH1 0x01
000010a2: PUSH1 0x01
000010a4: PUSH1 0xa0
000010a6: SHL
000010a7: SUB
000010a8: AND
000010a9: SWAP1
000010aa: JUMP
000010ab: JUMPDEST
000010ac: PUSH1 0x3a
000010ae: SLOAD
000010af: PUSH1 0x01
000010b1: PUSH1 0x01
000010b3: PUSH1 0xa0
000010b5: SHL
000010b6: SUB
000010b7: AND
000010b8: SWAP1
000010b9: JUMP
000010ba: JUMPDEST
000010bb: PUSH1 0x00
000010bd: PUSH2 0x0d99
000010c0: PUSH2 0x1ab7
000010c3: JUMP
000010c4: JUMPDEST
000010c5: PUSH1 0x3b
000010c7: PUSH1 0x20
000010c9: MSTORE
000010ca: PUSH1 0x00
000010cc: SWAP1
000010cd: DUP2
000010ce: MSTORE
000010cf: PUSH1 0x40
000010d1: SWAP1
000010d2: KECCAK256
000010d3: SLOAD
000010d4: DUP2
000010d5: JUMP
000010d6: JUMPDEST
000010d7: PUSH1 0x00
000010d9: PUSH2 0x10e0
000010dc: PUSH2 0x1fd5
000010df: JUMP
000010e0: JUMPDEST
000010e1: PUSH1 0x01
000010e3: SLOAD
000010e4: SWAP1
000010e5: SWAP2
000010e6: POP
000010e7: PUSH1 0xff
000010e9: AND
000010ea: DUP1
000010eb: PUSH2 0x10f7
000010ee: JUMPI
000010ef: POP
000010f0: PUSH2 0x10f7
000010f3: PUSH2 0x1fda
000010f6: JUMP
000010f7: JUMPDEST
000010f8: DUP1
000010f9: PUSH2 0x1103
000010fc: JUMPI
000010fd: POP
000010fe: PUSH1 0x00
00001100: SLOAD
00001101: DUP2
00001102: GT
00001103: JUMPDEST
00001104: PUSH2 0x113e
00001107: JUMPI
00001108: PUSH1 0x40
0000110a: MLOAD
0000110b: PUSH3 0x461bcd
0000110f: PUSH1 0xe5
00001111: SHL
00001112: DUP2
00001113: MSTORE
00001114: PUSH1 0x04
00001116: ADD
00001117: DUP1
00001118: DUP1
00001119: PUSH1 0x20
0000111b: ADD
0000111c: DUP3
0000111d: DUP2
0000111e: SUB
0000111f: DUP3
00001120: MSTORE
00001121: PUSH1 0x2e
00001123: DUP2
00001124: MSTORE
00001125: PUSH1 0x20
00001127: ADD
00001128: DUP1
00001129: PUSH2 0x293f
0000112c: PUSH1 0x2e
0000112e: SWAP2
0000112f: CODECOPY
00001130: PUSH1 0x40
00001132: ADD
00001133: SWAP2
00001134: POP
00001135: POP
00001136: PUSH1 0x40
00001138: MLOAD
00001139: DUP1
0000113a: SWAP2
0000113b: SUB
0000113c: SWAP1
0000113d: REVERT
0000113e: JUMPDEST
0000113f: PUSH1 0x01
00001141: SLOAD
00001142: PUSH1 0xff
00001144: AND
00001145: ISZERO
00001146: DUP1
00001147: ISZERO
00001148: PUSH2 0x115d
0000114b: JUMPI
0000114c: PUSH1 0x01
0000114e: DUP1
0000114f: SLOAD
00001150: PUSH1 0xff
00001152: NOT
00001153: AND
00001154: DUP2
00001155: OR
00001156: SWAP1
00001157: SSTORE
00001158: PUSH1 0x00
0000115a: DUP3
0000115b: SWAP1
0000115c: SSTORE
0000115d: JUMPDEST
0000115e: PUSH1 0x01
00001160: PUSH1 0x01
00001162: PUSH1 0xa0
00001164: SHL
00001165: SUB
00001166: DUP12
00001167: AND
00001168: PUSH2 0x11b8
0000116b: JUMPI
0000116c: PUSH1 0x40
0000116e: DUP1
0000116f: MLOAD
00001170: PUSH3 0x461bcd
00001174: PUSH1 0xe5
00001176: SHL
00001177: DUP2
00001178: MSTORE
00001179: PUSH1 0x20
0000117b: PUSH1 0x04
0000117d: DUP3
0000117e: ADD
0000117f: DUP2
00001180: SWAP1
00001181: MSTORE
00001182: PUSH1 0x24
00001184: DUP3
00001185: ADD
00001186: MSTORE
00001187: PUSH32 0x54726561737572792063616e206e6f74206265207a65726f2061646472657373
000011a8: PUSH1 0x44
000011aa: DUP3
000011ab: ADD
000011ac: MSTORE
000011ad: SWAP1
000011ae: MLOAD
000011af: SWAP1
000011b0: DUP2
000011b1: SWAP1
000011b2: SUB
000011b3: PUSH1 0x64
000011b5: ADD
000011b6: SWAP1
000011b7: REVERT
000011b8: JUMPDEST
000011b9: PUSH1 0x01
000011bb: PUSH1 0x01
000011bd: PUSH1 0xa0
000011bf: SHL
000011c0: SUB
000011c1: DUP11
000011c2: AND
000011c3: PUSH2 0x11fd
000011c6: JUMPI
000011c7: PUSH1 0x40
000011c9: MLOAD
000011ca: PUSH3 0x461bcd
000011ce: PUSH1 0xe5
000011d0: SHL
000011d1: DUP2
000011d2: MSTORE
000011d3: PUSH1 0x04
000011d5: ADD
000011d6: DUP1
000011d7: DUP1
000011d8: PUSH1 0x20
000011da: ADD
000011db: DUP3
000011dc: DUP2
000011dd: SUB
000011de: DUP3
000011df: MSTORE
000011e0: PUSH1 0x28
000011e2: DUP2
000011e3: MSTORE
000011e4: PUSH1 0x20
000011e6: ADD
000011e7: DUP1
000011e8: PUSH2 0x296d
000011eb: PUSH1 0x28
000011ed: SWAP2
000011ee: CODECOPY
000011ef: PUSH1 0x40
000011f1: ADD
000011f2: SWAP2
000011f3: POP
000011f4: POP
000011f5: PUSH1 0x40
000011f7: MLOAD
000011f8: DUP1
000011f9: SWAP2
000011fa: SUB
000011fb: SWAP1
000011fc: REVERT
000011fd: JUMPDEST
000011fe: PUSH1 0x00
00001200: CHAINID
00001201: SWAP1
00001202: POP
00001203: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
00001224: DUP10
00001225: DUP10
00001226: PUSH1 0x40
00001228: MLOAD
00001229: DUP1
0000122a: DUP4
0000122b: DUP4
0000122c: DUP1
0000122d: DUP3
0000122e: DUP5
0000122f: CALLDATACOPY
00001230: DUP1
00001231: DUP4
00001232: ADD
00001233: SWAP3
00001234: POP
00001235: POP
00001236: POP
00001237: SWAP3
00001238: POP
00001239: POP
0000123a: POP
0000123b: PUSH1 0x40
0000123d: MLOAD
0000123e: DUP1
0000123f: SWAP2
00001240: SUB
00001241: SWAP1
00001242: KECCAK256
00001243: PUSH1 0x40
00001245: MLOAD
00001246: DUP1
00001247: PUSH1 0x40
00001249: ADD
0000124a: PUSH1 0x40
0000124c: MSTORE
0000124d: DUP1
0000124e: PUSH1 0x01
00001250: DUP2
00001251: MSTORE
00001252: PUSH1 0x20
00001254: ADD
00001255: PUSH1 0x31
00001257: PUSH1 0xf8
00001259: SHL
0000125a: DUP2
0000125b: MSTORE
0000125c: POP
0000125d: DUP1
0000125e: MLOAD
0000125f: SWAP1
00001260: PUSH1 0x20
00001262: ADD
00001263: KECCAK256
00001264: DUP4
00001265: ADDRESS
00001266: PUSH1 0x40
00001268: MLOAD
00001269: PUSH1 0x20
0000126b: ADD
0000126c: DUP1
0000126d: DUP7
0000126e: DUP2
0000126f: MSTORE
00001270: PUSH1 0x20
00001272: ADD
00001273: DUP6
00001274: DUP2
00001275: MSTORE
00001276: PUSH1 0x20
00001278: ADD
00001279: DUP5
0000127a: DUP2
0000127b: MSTORE
0000127c: PUSH1 0x20
0000127e: ADD
0000127f: DUP4
00001280: DUP2
00001281: MSTORE
00001282: PUSH1 0x20
00001284: ADD
00001285: DUP3
00001286: PUSH1 0x01
00001288: PUSH1 0x01
0000128a: PUSH1 0xa0
0000128c: SHL
0000128d: SUB
0000128e: AND
0000128f: DUP2
00001290: MSTORE
00001291: PUSH1 0x20
00001293: ADD
00001294: SWAP6
00001295: POP
00001296: POP
00001297: POP
00001298: POP
00001299: POP
0000129a: POP
0000129b: PUSH1 0x40
0000129d: MLOAD
0000129e: PUSH1 0x20
000012a0: DUP2
000012a1: DUP4
000012a2: SUB
000012a3: SUB
000012a4: DUP2
000012a5: MSTORE
000012a6: SWAP1
000012a7: PUSH1 0x40
000012a9: MSTORE
000012aa: DUP1
000012ab: MLOAD
000012ac: SWAP1
000012ad: PUSH1 0x20
000012af: ADD
000012b0: KECCAK256
000012b1: PUSH1 0x3c
000012b3: DUP2
000012b4: SWAP1
000012b5: SSTORE
000012b6: POP
000012b7: PUSH2 0x12f5
000012ba: DUP10
000012bb: DUP10
000012bc: DUP1
000012bd: DUP1
000012be: PUSH1 0x1f
000012c0: ADD
000012c1: PUSH1 0x20
000012c3: DUP1
000012c4: SWAP2
000012c5: DIV
000012c6: MUL
000012c7: PUSH1 0x20
000012c9: ADD
000012ca: PUSH1 0x40
000012cc: MLOAD
000012cd: SWAP1
000012ce: DUP2
000012cf: ADD
000012d0: PUSH1 0x40
000012d2: MSTORE
000012d3: DUP1
000012d4: SWAP4
000012d5: SWAP3
000012d6: SWAP2
000012d7: SWAP1
000012d8: DUP2
000012d9: DUP2
000012da: MSTORE
000012db: PUSH1 0x20
000012dd: ADD
000012de: DUP4
000012df: DUP4
000012e0: DUP1
000012e1: DUP3
000012e2: DUP5
000012e3: CALLDATACOPY
000012e4: PUSH1 0x00
000012e6: SWAP3
000012e7: ADD
000012e8: SWAP2
000012e9: SWAP1
000012ea: SWAP2
000012eb: MSTORE
000012ec: POP
000012ed: PUSH2 0x1fe0
000012f0: SWAP3
000012f1: POP
000012f2: POP
000012f3: POP
000012f4: JUMP
000012f5: JUMPDEST
000012f6: PUSH2 0x1334
000012f9: DUP8
000012fa: DUP8
000012fb: DUP1
000012fc: DUP1
000012fd: PUSH1 0x1f
000012ff: ADD
00001300: PUSH1 0x20
00001302: DUP1
00001303: SWAP2
00001304: DIV
00001305: MUL
00001306: PUSH1 0x20
00001308: ADD
00001309: PUSH1 0x40
0000130b: MLOAD
0000130c: SWAP1
0000130d: DUP2
0000130e: ADD
0000130f: PUSH1 0x40
00001311: MSTORE
00001312: DUP1
00001313: SWAP4
00001314: SWAP3
00001315: SWAP2
00001316: SWAP1
00001317: DUP2
00001318: DUP2
00001319: MSTORE
0000131a: PUSH1 0x20
0000131c: ADD
0000131d: DUP4
0000131e: DUP4
0000131f: DUP1
00001320: DUP3
00001321: DUP5
00001322: CALLDATACOPY
00001323: PUSH1 0x00
00001325: SWAP3
00001326: ADD
00001327: SWAP2
00001328: SWAP1
00001329: SWAP2
0000132a: MSTORE
0000132b: POP
0000132c: PUSH2 0x1ff3
0000132f: SWAP3
00001330: POP
00001331: POP
00001332: POP
00001333: JUMP
00001334: JUMPDEST
00001335: PUSH2 0x133d
00001338: DUP11
00001339: PUSH2 0x2006
0000133c: JUMP
0000133d: JUMPDEST
0000133e: DUP13
0000133f: PUSH1 0x39
00001341: PUSH1 0x01
00001343: PUSH2 0x0100
00001346: EXP
00001347: DUP2
00001348: SLOAD
00001349: DUP2
0000134a: PUSH1 0x01
0000134c: PUSH1 0x01
0000134e: PUSH1 0xa0
00001350: SHL
00001351: SUB
00001352: MUL
00001353: NOT
00001354: AND
00001355: SWAP1
00001356: DUP4
00001357: PUSH1 0x01
00001359: PUSH1 0x01
0000135b: PUSH1 0xa0
0000135d: SHL
0000135e: SUB
0000135f: AND
00001360: MUL
00001361: OR
00001362: SWAP1
00001363: SSTORE
00001364: POP
00001365: DUP12
00001366: PUSH1 0x3d
00001368: PUSH1 0x00
0000136a: PUSH2 0x0100
0000136d: EXP
0000136e: DUP2
0000136f: SLOAD
00001370: DUP2
00001371: PUSH1 0x01
00001373: PUSH1 0x01
00001375: PUSH1 0xa0
00001377: SHL
00001378: SUB
00001379: MUL
0000137a: NOT
0000137b: AND
0000137c: SWAP1
0000137d: DUP4
0000137e: PUSH1 0x01
00001380: PUSH1 0x01
00001382: PUSH1 0xa0
00001384: SHL
00001385: SUB
00001386: AND
00001387: MUL
00001388: OR
00001389: SWAP1
0000138a: SSTORE
0000138b: POP
0000138c: DUP11
0000138d: PUSH1 0x3a
0000138f: PUSH1 0x00
00001391: PUSH2 0x0100
00001394: EXP
00001395: DUP2
00001396: SLOAD
00001397: DUP2
00001398: PUSH1 0x01
0000139a: PUSH1 0x01
0000139c: PUSH1 0xa0
0000139e: SHL
0000139f: SUB
000013a0: MUL
000013a1: NOT
000013a2: AND
000013a3: SWAP1
000013a4: DUP4
000013a5: PUSH1 0x01
000013a7: PUSH1 0x01
000013a9: PUSH1 0xa0
000013ab: SHL
000013ac: SUB
000013ad: AND
000013ae: MUL
000013af: OR
000013b0: SWAP1
000013b1: SSTORE
000013b2: POP
000013b3: DUP13
000013b4: PUSH1 0x01
000013b6: PUSH1 0x01
000013b8: PUSH1 0xa0
000013ba: SHL
000013bb: SUB
000013bc: AND
000013bd: DUP12
000013be: PUSH1 0x01
000013c0: PUSH1 0x01
000013c2: PUSH1 0xa0
000013c4: SHL
000013c5: SUB
000013c6: AND
000013c7: PUSH32 0x40251fbfb6656cfa65a00d7879029fec1fad21d28fdcff2f4f68f52795b74f2c
000013e8: DUP15
000013e9: DUP14
000013ea: DUP14
000013eb: DUP14
000013ec: DUP14
000013ed: DUP14
000013ee: DUP14
000013ef: DUP14
000013f0: PUSH1 0x40
000013f2: MLOAD
000013f3: DUP1
000013f4: DUP10
000013f5: PUSH1 0x01
000013f7: PUSH1 0x01
000013f9: PUSH1 0xa0
000013fb: SHL
000013fc: SUB
000013fd: AND
000013fe: DUP2
000013ff: MSTORE
00001400: PUSH1 0x20
00001402: ADD
00001403: DUP9
00001404: PUSH1 0xff
00001406: AND
00001407: DUP2
00001408: MSTORE
00001409: PUSH1 0x20
0000140b: ADD
0000140c: DUP1
0000140d: PUSH1 0x20
0000140f: ADD
00001410: DUP1
00001411: PUSH1 0x20
00001413: ADD
00001414: DUP1
00001415: PUSH1 0x20
00001417: ADD
00001418: DUP5
00001419: DUP2
0000141a: SUB
0000141b: DUP5
0000141c: MSTORE
0000141d: DUP11
0000141e: DUP11
0000141f: DUP3
00001420: DUP2
00001421: DUP2
00001422: MSTORE
00001423: PUSH1 0x20
00001425: ADD
00001426: SWAP3
00001427: POP
00001428: DUP1
00001429: DUP3
0000142a: DUP5
0000142b: CALLDATACOPY
0000142c: PUSH1 0x00
0000142e: DUP4
0000142f: DUP3
00001430: ADD
00001431: MSTORE
00001432: PUSH1 0x1f
00001434: ADD
00001435: PUSH1 0x1f
00001437: NOT
00001438: AND
00001439: SWAP1
0000143a: SWAP2
0000143b: ADD
0000143c: DUP6
0000143d: DUP2
0000143e: SUB
0000143f: DUP5
00001440: MSTORE
00001441: DUP9
00001442: DUP2
00001443: MSTORE
00001444: PUSH1 0x20
00001446: ADD
00001447: SWAP1
00001448: POP
00001449: DUP9
0000144a: DUP9
0000144b: DUP1
0000144c: DUP3
0000144d: DUP5
0000144e: CALLDATACOPY
0000144f: PUSH1 0x00
00001451: DUP4
00001452: DUP3
00001453: ADD
00001454: MSTORE
00001455: PUSH1 0x1f
00001457: ADD
00001458: PUSH1 0x1f
0000145a: NOT
0000145b: AND
0000145c: SWAP1
0000145d: SWAP2
0000145e: ADD
0000145f: DUP6
00001460: DUP2
00001461: SUB
00001462: DUP4
00001463: MSTORE
00001464: DUP7
00001465: DUP2
00001466: MSTORE
00001467: PUSH1 0x20
00001469: ADD
0000146a: SWAP1
0000146b: POP
0000146c: DUP7
0000146d: DUP7
0000146e: DUP1
0000146f: DUP3
00001470: DUP5
00001471: CALLDATACOPY
00001472: PUSH1 0x00
00001474: DUP4
00001475: DUP3
00001476: ADD
00001477: MSTORE
00001478: PUSH1 0x40
0000147a: MLOAD
0000147b: PUSH1 0x1f
0000147d: SWAP1
0000147e: SWAP2
0000147f: ADD
00001480: PUSH1 0x1f
00001482: NOT
00001483: AND
00001484: SWAP1
00001485: SWAP3
00001486: ADD
00001487: DUP3
00001488: SWAP1
00001489: SUB
0000148a: SWAP14
0000148b: POP
0000148c: SWAP1
0000148d: SWAP12
0000148e: POP
0000148f: POP
00001490: POP
00001491: POP
00001492: POP
00001493: POP
00001494: POP
00001495: POP
00001496: POP
00001497: POP
00001498: POP
00001499: POP
0000149a: LOG3
0000149b: POP
0000149c: DUP1
0000149d: ISZERO
0000149e: PUSH2 0x14ac
000014a1: JUMPI
000014a2: PUSH1 0x01
000014a4: DUP1
000014a5: SLOAD
000014a6: PUSH1 0xff
000014a8: NOT
000014a9: AND
000014aa: SWAP1
000014ab: SSTORE
000014ac: JUMPDEST
000014ad: POP
000014ae: POP
000014af: POP
000014b0: POP
000014b1: POP
000014b2: POP
000014b3: POP
000014b4: POP
000014b5: POP
000014b6: POP
000014b7: POP
000014b8: POP
000014b9: JUMP
000014ba: JUMPDEST
000014bb: PUSH1 0x01
000014bd: PUSH1 0x01
000014bf: PUSH1 0xa0
000014c1: SHL
000014c2: SUB
000014c3: DUP8
000014c4: AND
000014c5: PUSH2 0x1505
000014c8: JUMPI
000014c9: PUSH1 0x40
000014cb: DUP1
000014cc: MLOAD
000014cd: PUSH3 0x461bcd
000014d1: PUSH1 0xe5
000014d3: SHL
000014d4: DUP2
000014d5: MSTORE
000014d6: PUSH1 0x20
000014d8: PUSH1 0x04
000014da: DUP3
000014db: ADD
000014dc: MSTORE
000014dd: PUSH1 0x0d
000014df: PUSH1 0x24
000014e1: DUP3
000014e2: ADD
000014e3: MSTORE
000014e4: PUSH13 0x24a72b20a624a22fa7aba722a9
000014f2: PUSH1 0x99
000014f4: SHL
000014f5: PUSH1 0x44
000014f7: DUP3
000014f8: ADD
000014f9: MSTORE
000014fa: SWAP1
000014fb: MLOAD
000014fc: SWAP1
000014fd: DUP2
000014fe: SWAP1
000014ff: SUB
00001500: PUSH1 0x64
00001502: ADD
00001503: SWAP1
00001504: REVERT
00001505: JUMPDEST
00001506: DUP4
00001507: TIMESTAMP
00001508: GT
00001509: ISZERO
0000150a: PUSH2 0x154f
0000150d: JUMPI
0000150e: PUSH1 0x40
00001510: DUP1
00001511: MLOAD
00001512: PUSH3 0x461bcd
00001516: PUSH1 0xe5
00001518: SHL
00001519: DUP2
0000151a: MSTORE
0000151b: PUSH1 0x20
0000151d: PUSH1 0x04
0000151f: DUP3
00001520: ADD
00001521: MSTORE
00001522: PUSH1 0x12
00001524: PUSH1 0x24
00001526: DUP3
00001527: ADD
00001528: MSTORE
00001529: PUSH18 0x24a72b20a624a22fa2ac2824a920aa24a7a7
0000153c: PUSH1 0x71
0000153e: SHL
0000153f: PUSH1 0x44
00001541: DUP3
00001542: ADD
00001543: MSTORE
00001544: SWAP1
00001545: MLOAD
00001546: SWAP1
00001547: DUP2
00001548: SWAP1
00001549: SUB
0000154a: PUSH1 0x64
0000154c: ADD
0000154d: SWAP1
0000154e: REVERT
0000154f: JUMPDEST
00001550: PUSH1 0x01
00001552: PUSH1 0x01
00001554: PUSH1 0xa0
00001556: SHL
00001557: SUB
00001558: DUP1
00001559: DUP9
0000155a: AND
0000155b: PUSH1 0x00
0000155d: DUP2
0000155e: DUP2
0000155f: MSTORE
00001560: PUSH1 0x3b
00001562: PUSH1 0x20
00001564: SWAP1
00001565: DUP2
00001566: MSTORE
00001567: PUSH1 0x40
00001569: DUP1
0000156a: DUP4
0000156b: KECCAK256
0000156c: SLOAD
0000156d: PUSH1 0x3c
0000156f: SLOAD
00001570: DUP3
00001571: MLOAD
00001572: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
00001593: DUP2
00001594: DUP7
00001595: ADD
00001596: MSTORE
00001597: DUP1
00001598: DUP5
00001599: ADD
0000159a: SWAP7
0000159b: SWAP1
0000159c: SWAP7
0000159d: MSTORE
0000159e: SWAP6
0000159f: DUP13
000015a0: AND
000015a1: PUSH1 0x60
000015a3: DUP7
000015a4: ADD
000015a5: MSTORE
000015a6: PUSH1 0x80
000015a8: DUP6
000015a9: ADD
000015aa: DUP12
000015ab: SWAP1
000015ac: MSTORE
000015ad: PUSH1 0xa0
000015af: DUP6
000015b0: ADD
000015b1: DUP2
000015b2: SWAP1
000015b3: MSTORE
000015b4: PUSH1 0xc0
000015b6: DUP1
000015b7: DUP7
000015b8: ADD
000015b9: DUP12
000015ba: SWAP1
000015bb: MSTORE
000015bc: DUP3
000015bd: MLOAD
000015be: DUP1
000015bf: DUP8
000015c0: SUB
000015c1: SWAP1
000015c2: SWAP2
000015c3: ADD
000015c4: DUP2
000015c5: MSTORE
000015c6: PUSH1 0xe0
000015c8: DUP7
000015c9: ADD
000015ca: DUP4
000015cb: MSTORE
000015cc: DUP1
000015cd: MLOAD
000015ce: SWAP1
000015cf: DUP5
000015d0: ADD
000015d1: KECCAK256
000015d2: PUSH2 0x1901
000015d5: PUSH1 0xf0
000015d7: SHL
000015d8: PUSH2 0x0100
000015db: DUP8
000015dc: ADD
000015dd: MSTORE
000015de: PUSH2 0x0102
000015e1: DUP7
000015e2: ADD
000015e3: SWAP7
000015e4: SWAP1
000015e5: SWAP7
000015e6: MSTORE
000015e7: PUSH2 0x0122
000015ea: DUP1
000015eb: DUP7
000015ec: ADD
000015ed: SWAP7
000015ee: SWAP1
000015ef: SWAP7
000015f0: MSTORE
000015f1: DUP2
000015f2: MLOAD
000015f3: DUP1
000015f4: DUP7
000015f5: SUB
000015f6: SWAP1
000015f7: SWAP7
000015f8: ADD
000015f9: DUP7
000015fa: MSTORE
000015fb: PUSH2 0x0142
000015fe: DUP6
000015ff: ADD
00001600: DUP1
00001601: DUP4
00001602: MSTORE
00001603: DUP7
00001604: MLOAD
00001605: SWAP7
00001606: DUP5
00001607: ADD
00001608: SWAP7
00001609: SWAP1
0000160a: SWAP7
0000160b: KECCAK256
0000160c: SWAP4
0000160d: SWAP1
0000160e: SWAP6
0000160f: MSTORE
00001610: PUSH2 0x0162
00001613: DUP5
00001614: ADD
00001615: DUP1
00001616: DUP3
00001617: MSTORE
00001618: DUP4
00001619: SWAP1
0000161a: MSTORE
0000161b: PUSH1 0xff
0000161d: DUP9
0000161e: AND
0000161f: PUSH2 0x0182
00001622: DUP6
00001623: ADD
00001624: MSTORE
00001625: PUSH2 0x01a2
00001628: DUP5
00001629: ADD
0000162a: DUP8
0000162b: SWAP1
0000162c: MSTORE
0000162d: PUSH2 0x01c2
00001630: DUP5
00001631: ADD
00001632: DUP7
00001633: SWAP1
00001634: MSTORE
00001635: MLOAD
00001636: SWAP2
00001637: SWAP3
00001638: PUSH1 0x01
0000163a: SWAP3
0000163b: PUSH2 0x01e2
0000163e: DUP1
0000163f: DUP4
00001640: ADD
00001641: SWAP4
00001642: SWAP3
00001643: PUSH1 0x1f
00001645: NOT
00001646: DUP4
00001647: ADD
00001648: SWAP3
00001649: SWAP1
0000164a: DUP2
0000164b: SWAP1
0000164c: SUB
0000164d: SWAP1
0000164e: SWAP2
0000164f: ADD
00001650: SWAP1
00001651: DUP6
00001652: GAS
00001653: STATICCALL
00001654: ISZERO
00001655: DUP1
00001656: ISZERO
00001657: PUSH2 0x1664
0000165a: JUMPI
0000165b: RETURNDATASIZE
0000165c: PUSH1 0x00
0000165e: DUP1
0000165f: RETURNDATACOPY
00001660: RETURNDATASIZE
00001661: PUSH1 0x00
00001663: REVERT
00001664: JUMPDEST
00001665: POP
00001666: POP
00001667: POP
00001668: PUSH1 0x20
0000166a: PUSH1 0x40
0000166c: MLOAD
0000166d: SUB
0000166e: MLOAD
0000166f: PUSH1 0x01
00001671: PUSH1 0x01
00001673: PUSH1 0xa0
00001675: SHL
00001676: SUB
00001677: AND
00001678: DUP10
00001679: PUSH1 0x01
0000167b: PUSH1 0x01
0000167d: PUSH1 0xa0
0000167f: SHL
00001680: SUB
00001681: AND
00001682: EQ
00001683: PUSH2 0x16c7
00001686: JUMPI
00001687: PUSH1 0x40
00001689: DUP1
0000168a: MLOAD
0000168b: PUSH3 0x461bcd
0000168f: PUSH1 0xe5
00001691: SHL
00001692: DUP2
00001693: MSTORE
00001694: PUSH1 0x20
00001696: PUSH1 0x04
00001698: DUP3
00001699: ADD
0000169a: MSTORE
0000169b: PUSH1 0x11
0000169d: PUSH1 0x24
0000169f: DUP3
000016a0: ADD
000016a1: MSTORE
000016a2: PUSH17 0x494e56414c49445f5349474e4154555245
000016b4: PUSH1 0x78
000016b6: SHL
000016b7: PUSH1 0x44
000016b9: DUP3
000016ba: ADD
000016bb: MSTORE
000016bc: SWAP1
000016bd: MLOAD
000016be: SWAP1
000016bf: DUP2
000016c0: SWAP1
000016c1: SUB
000016c2: PUSH1 0x64
000016c4: ADD
000016c5: SWAP1
000016c6: REVERT
000016c7: JUMPDEST
000016c8: PUSH2 0x16d2
000016cb: DUP3
000016cc: PUSH1 0x01
000016ce: PUSH2 0x1e3a
000016d1: JUMP
000016d2: JUMPDEST
000016d3: PUSH1 0x01
000016d5: PUSH1 0x01
000016d7: PUSH1 0xa0
000016d9: SHL
000016da: SUB
000016db: DUP11
000016dc: AND
000016dd: PUSH1 0x00
000016df: SWAP1
000016e0: DUP2
000016e1: MSTORE
000016e2: PUSH1 0x3b
000016e4: PUSH1 0x20
000016e6: MSTORE
000016e7: PUSH1 0x40
000016e9: SWAP1
000016ea: KECCAK256
000016eb: SSTORE
000016ec: PUSH2 0x16f6
000016ef: DUP10
000016f0: DUP10
000016f1: DUP10
000016f2: PUSH2 0x19b0
000016f5: JUMP
000016f6: JUMPDEST
000016f7: POP
000016f8: POP
000016f9: POP
000016fa: POP
000016fb: POP
000016fc: POP
000016fd: POP
000016fe: POP
000016ff: POP
00001700: JUMP
00001701: JUMPDEST
00001702: PUSH1 0x39
00001704: SLOAD
00001705: PUSH2 0x0100
00001708: SWAP1
00001709: DIV
0000170a: PUSH1 0x01
0000170c: PUSH1 0x01
0000170e: PUSH1 0xa0
00001710: SHL
00001711: SUB
00001712: AND
00001713: PUSH2 0x171a
00001716: PUSH2 0x19ac
00001719: JUMP
0000171a: JUMPDEST
0000171b: PUSH1 0x01
0000171d: PUSH1 0x01
0000171f: PUSH1 0xa0
00001721: SHL
00001722: SUB
00001723: AND
00001724: EQ
00001725: PUSH1 0x40
00001727: MLOAD
00001728: DUP1
00001729: PUSH1 0x40
0000172b: ADD
0000172c: PUSH1 0x40
0000172e: MSTORE
0000172f: DUP1
00001730: PUSH1 0x02
00001732: DUP2
00001733: MSTORE
00001734: PUSH1 0x20
00001736: ADD
00001737: PUSH2 0x3239
0000173a: PUSH1 0xf0
0000173c: SHL
0000173d: DUP2
0000173e: MSTORE
0000173f: POP
00001740: SWAP1
00001741: PUSH2 0x178b
00001744: JUMPI
00001745: PUSH1 0x40
00001747: MLOAD
00001748: PUSH3 0x461bcd
0000174c: PUSH1 0xe5
0000174e: SHL
0000174f: DUP2
00001750: MSTORE
00001751: PUSH1 0x20
00001753: PUSH1 0x04
00001755: DUP3
00001756: ADD
00001757: DUP2
00001758: DUP2
00001759: MSTORE
0000175a: DUP4
0000175b: MLOAD
0000175c: PUSH1 0x24
0000175e: DUP5
0000175f: ADD
00001760: MSTORE
00001761: DUP4
00001762: MLOAD
00001763: SWAP1
00001764: SWAP3
00001765: DUP4
00001766: SWAP3
00001767: PUSH1 0x44
00001769: SWAP1
0000176a: SWAP2
0000176b: ADD
0000176c: SWAP2
0000176d: SWAP1
0000176e: DUP6
0000176f: ADD
00001770: SWAP1
00001771: DUP1
00001772: DUP4
00001773: DUP4
00001774: PUSH1 0x00
00001776: DUP4
00001777: ISZERO
00001778: PUSH2 0x08fb
0000177b: JUMPI
0000177c: DUP2
0000177d: DUP2
0000177e: ADD
0000177f: MLOAD
00001780: DUP4
00001781: DUP3
00001782: ADD
00001783: MSTORE
00001784: PUSH1 0x20
00001786: ADD
00001787: PUSH2 0x08e3
0000178a: JUMP
0000178b: JUMPDEST
0000178c: POP
0000178d: PUSH1 0x00
0000178f: PUSH2 0x1798
00001792: DUP4
00001793: DUP4
00001794: PUSH2 0x1abd
00001797: JUMP
00001798: JUMPDEST
00001799: PUSH1 0x40
0000179b: DUP1
0000179c: MLOAD
0000179d: DUP1
0000179e: DUP3
0000179f: ADD
000017a0: SWAP1
000017a1: SWAP2
000017a2: MSTORE
000017a3: PUSH1 0x02
000017a5: DUP2
000017a6: MSTORE
000017a7: PUSH2 0x06a7
000017aa: PUSH1 0xf3
000017ac: SHL
000017ad: PUSH1 0x20
000017af: DUP3
000017b0: ADD
000017b1: MSTORE
000017b2: SWAP1
000017b3: SWAP2
000017b4: POP
000017b5: DUP2
000017b6: PUSH2 0x1800
000017b9: JUMPI
000017ba: PUSH1 0x40
000017bc: MLOAD
000017bd: PUSH3 0x461bcd
000017c1: PUSH1 0xe5
000017c3: SHL
000017c4: DUP2
000017c5: MSTORE
000017c6: PUSH1 0x20
000017c8: PUSH1 0x04
000017ca: DUP3
000017cb: ADD
000017cc: DUP2
000017cd: DUP2
000017ce: MSTORE
000017cf: DUP4
000017d0: MLOAD
000017d1: PUSH1 0x24
000017d3: DUP5
000017d4: ADD
000017d5: MSTORE
000017d6: DUP4
000017d7: MLOAD
000017d8: SWAP1
000017d9: SWAP3
000017da: DUP4
000017db: SWAP3
000017dc: PUSH1 0x44
000017de: SWAP1
000017df: SWAP2
000017e0: ADD
000017e1: SWAP2
000017e2: SWAP1
000017e3: DUP6
000017e4: ADD
000017e5: SWAP1
000017e6: DUP1
000017e7: DUP4
000017e8: DUP4
000017e9: PUSH1 0x00
000017eb: DUP4
000017ec: ISZERO
000017ed: PUSH2 0x08fb
000017f0: JUMPI
000017f1: DUP2
000017f2: DUP2
000017f3: ADD
000017f4: MLOAD
000017f5: DUP4
000017f6: DUP3
000017f7: ADD
000017f8: MSTORE
000017f9: PUSH1 0x20
000017fb: ADD
000017fc: PUSH2 0x08e3
000017ff: JUMP
00001800: JUMPDEST
00001801: POP
00001802: PUSH2 0x180b
00001805: DUP6
00001806: DUP3
00001807: PUSH2 0x201c
0000180a: JUMP
0000180b: JUMPDEST
0000180c: PUSH1 0x3a
0000180e: SLOAD
0000180f: PUSH2 0x1822
00001812: SWAP1
00001813: PUSH1 0x01
00001815: PUSH1 0x01
00001817: PUSH1 0xa0
00001819: SHL
0000181a: SUB
0000181b: AND
0000181c: DUP6
0000181d: DUP6
0000181e: PUSH2 0x1e94
00001821: JUMP
00001822: JUMPDEST
00001823: PUSH1 0x40
00001825: DUP1
00001826: MLOAD
00001827: DUP5
00001828: DUP2
00001829: MSTORE
0000182a: SWAP1
0000182b: MLOAD
0000182c: PUSH1 0x00
0000182e: SWAP2
0000182f: PUSH1 0x01
00001831: PUSH1 0x01
00001833: PUSH1 0xa0
00001835: SHL
00001836: SUB
00001837: DUP9
00001838: AND
00001839: SWAP2
0000183a: PUSH1 0x00
0000183c: DUP1
0000183d: MLOAD
0000183e: PUSH1 0x20
00001840: PUSH2 0x2995
00001843: DUP4
00001844: CODECOPY
00001845: DUP2
00001846: MLOAD
00001847: SWAP2
00001848: MSTORE
00001849: SWAP2
0000184a: DUP2
0000184b: SWAP1
0000184c: SUB
0000184d: PUSH1 0x20
0000184f: ADD
00001850: SWAP1
00001851: LOG3
00001852: DUP4
00001853: PUSH1 0x01
00001855: PUSH1 0x01
00001857: PUSH1 0xa0
00001859: SHL
0000185a: SUB
0000185b: AND
0000185c: DUP6
0000185d: PUSH1 0x01
0000185f: PUSH1 0x01
00001861: PUSH1 0xa0
00001863: SHL
00001864: SUB
00001865: AND
00001866: PUSH32 0x5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa2
00001887: DUP6
00001888: DUP6
00001889: PUSH1 0x40
0000188b: MLOAD
0000188c: DUP1
0000188d: DUP4
0000188e: DUP2
0000188f: MSTORE
00001890: PUSH1 0x20
00001892: ADD
00001893: DUP3
00001894: DUP2
00001895: MSTORE
00001896: PUSH1 0x20
00001898: ADD
00001899: SWAP3
0000189a: POP
0000189b: POP
0000189c: POP
0000189d: PUSH1 0x40
0000189f: MLOAD
000018a0: DUP1
000018a1: SWAP2
000018a2: SUB
000018a3: SWAP1
000018a4: LOG3
000018a5: POP
000018a6: POP
000018a7: POP
000018a8: POP
000018a9: POP
000018aa: JUMP
000018ab: JUMPDEST
000018ac: PUSH1 0x01
000018ae: PUSH1 0x01
000018b0: PUSH1 0xa0
000018b2: SHL
000018b3: SUB
000018b4: SWAP2
000018b5: DUP3
000018b6: AND
000018b7: PUSH1 0x00
000018b9: SWAP1
000018ba: DUP2
000018bb: MSTORE
000018bc: PUSH1 0x35
000018be: PUSH1 0x20
000018c0: SWAP1
000018c1: DUP2
000018c2: MSTORE
000018c3: PUSH1 0x40
000018c5: DUP1
000018c6: DUP4
000018c7: KECCAK256
000018c8: SWAP4
000018c9: SWAP1
000018ca: SWAP5
000018cb: AND
000018cc: DUP3
000018cd: MSTORE
000018ce: SWAP2
000018cf: SWAP1
000018d0: SWAP2
000018d1: MSTORE
000018d2: KECCAK256
000018d3: SLOAD
000018d4: SWAP1
000018d5: JUMP
000018d6: JUMPDEST
000018d7: PUSH1 0x39
000018d9: SLOAD
000018da: PUSH2 0x0100
000018dd: SWAP1
000018de: DIV
000018df: PUSH1 0x01
000018e1: PUSH1 0x01
000018e3: PUSH1 0xa0
000018e5: SHL
000018e6: SUB
000018e7: AND
000018e8: PUSH2 0x18ef
000018eb: PUSH2 0x19ac
000018ee: JUMP
000018ef: JUMPDEST
000018f0: PUSH1 0x01
000018f2: PUSH1 0x01
000018f4: PUSH1 0xa0
000018f6: SHL
000018f7: SUB
000018f8: AND
000018f9: EQ
000018fa: PUSH1 0x40
000018fc: MLOAD
000018fd: DUP1
000018fe: PUSH1 0x40
00001900: ADD
00001901: PUSH1 0x40
00001903: MSTORE
00001904: DUP1
00001905: PUSH1 0x02
00001907: DUP2
00001908: MSTORE
00001909: PUSH1 0x20
0000190b: ADD
0000190c: PUSH2 0x3239
0000190f: PUSH1 0xf0
00001911: SHL
00001912: DUP2
00001913: MSTORE
00001914: POP
00001915: SWAP1
00001916: PUSH2 0x1960
00001919: JUMPI
0000191a: PUSH1 0x40
0000191c: MLOAD
0000191d: PUSH3 0x461bcd
00001921: PUSH1 0xe5
00001923: SHL
00001924: DUP2
00001925: MSTORE
00001926: PUSH1 0x20
00001928: PUSH1 0x04
0000192a: DUP3
0000192b: ADD
0000192c: DUP2
0000192d: DUP2
0000192e: MSTORE
0000192f: DUP4
00001930: MLOAD
00001931: PUSH1 0x24
00001933: DUP5
00001934: ADD
00001935: MSTORE
00001936: DUP4
00001937: MLOAD
00001938: SWAP1
00001939: SWAP3
0000193a: DUP4
0000193b: SWAP3
0000193c: PUSH1 0x44
0000193e: SWAP1
0000193f: SWAP2
00001940: ADD
00001941: SWAP2
00001942: SWAP1
00001943: DUP6
00001944: ADD
00001945: SWAP1
00001946: DUP1
00001947: DUP4
00001948: DUP4
00001949: PUSH1 0x00
0000194b: DUP4
0000194c: ISZERO
0000194d: PUSH2 0x08fb
00001950: JUMPI
00001951: DUP2
00001952: DUP2
00001953: ADD
00001954: MLOAD
00001955: DUP4
00001956: DUP3
00001957: ADD
00001958: MSTORE
00001959: PUSH1 0x20
0000195b: ADD
0000195c: PUSH2 0x08e3
0000195f: JUMP
00001960: JUMPDEST
00001961: POP
00001962: PUSH2 0x196e
00001965: DUP4
00001966: DUP4
00001967: DUP4
00001968: PUSH1 0x00
0000196a: PUSH2 0x20c0
0000196d: JUMP
0000196e: JUMPDEST
0000196f: DUP2
00001970: PUSH1 0x01
00001972: PUSH1 0x01
00001974: PUSH1 0xa0
00001976: SHL
00001977: SUB
00001978: AND
00001979: DUP4
0000197a: PUSH1 0x01
0000197c: PUSH1 0x01
0000197e: PUSH1 0xa0
00001980: SHL
00001981: SUB
00001982: AND
00001983: PUSH1 0x00
00001985: DUP1
00001986: MLOAD
00001987: PUSH1 0x20
00001989: PUSH2 0x2995
0000198c: DUP4
0000198d: CODECOPY
0000198e: DUP2
0000198f: MLOAD
00001990: SWAP2
00001991: MSTORE
00001992: DUP4
00001993: PUSH1 0x40
00001995: MLOAD
00001996: DUP1
00001997: DUP3
00001998: DUP2
00001999: MSTORE
0000199a: PUSH1 0x20
0000199c: ADD
0000199d: SWAP2
0000199e: POP
0000199f: POP
000019a0: PUSH1 0x40
000019a2: MLOAD
000019a3: DUP1
000019a4: SWAP2
000019a5: SUB
000019a6: SWAP1
000019a7: LOG3
000019a8: POP
000019a9: POP
000019aa: POP
000019ab: JUMP
000019ac: JUMPDEST
000019ad: CALLER
000019ae: SWAP1
000019af: JUMP
000019b0: JUMPDEST
000019b1: PUSH1 0x01
000019b3: PUSH1 0x01
000019b5: PUSH1 0xa0
000019b7: SHL
000019b8: SUB
000019b9: DUP4
000019ba: AND
000019bb: PUSH2 0x19f5
000019be: JUMPI
000019bf: PUSH1 0x40
000019c1: MLOAD
000019c2: PUSH3 0x461bcd
000019c6: PUSH1 0xe5
000019c8: SHL
000019c9: DUP2
000019ca: MSTORE
000019cb: PUSH1 0x04
000019cd: ADD
000019ce: DUP1
000019cf: DUP1
000019d0: PUSH1 0x20
000019d2: ADD
000019d3: DUP3
000019d4: DUP2
000019d5: SUB
000019d6: DUP3
000019d7: MSTORE
000019d8: PUSH1 0x24
000019da: DUP2
000019db: MSTORE
000019dc: PUSH1 0x20
000019de: ADD
000019df: DUP1
000019e0: PUSH2 0x29fb
000019e3: PUSH1 0x24
000019e5: SWAP2
000019e6: CODECOPY
000019e7: PUSH1 0x40
000019e9: ADD
000019ea: SWAP2
000019eb: POP
000019ec: POP
000019ed: PUSH1 0x40
000019ef: MLOAD
000019f0: DUP1
000019f1: SWAP2
000019f2: SUB
000019f3: SWAP1
000019f4: REVERT
000019f5: JUMPDEST
000019f6: PUSH1 0x01
000019f8: PUSH1 0x01
000019fa: PUSH1 0xa0
000019fc: SHL
000019fd: SUB
000019fe: DUP3
000019ff: AND
00001a00: PUSH2 0x1a3a
00001a03: JUMPI
00001a04: PUSH1 0x40
00001a06: MLOAD
00001a07: PUSH3 0x461bcd
00001a0b: PUSH1 0xe5
00001a0d: SHL
00001a0e: DUP2
00001a0f: MSTORE
00001a10: PUSH1 0x04
00001a12: ADD
00001a13: DUP1
00001a14: DUP1
00001a15: PUSH1 0x20
00001a17: ADD
00001a18: DUP3
00001a19: DUP2
00001a1a: SUB
00001a1b: DUP3
00001a1c: MSTORE
00001a1d: PUSH1 0x22
00001a1f: DUP2
00001a20: MSTORE
00001a21: PUSH1 0x20
00001a23: ADD
00001a24: DUP1
00001a25: PUSH2 0x28a9
00001a28: PUSH1 0x22
00001a2a: SWAP2
00001a2b: CODECOPY
00001a2c: PUSH1 0x40
00001a2e: ADD
00001a2f: SWAP2
00001a30: POP
00001a31: POP
00001a32: PUSH1 0x40
00001a34: MLOAD
00001a35: DUP1
00001a36: SWAP2
00001a37: SUB
00001a38: SWAP1
00001a39: REVERT
00001a3a: JUMPDEST
00001a3b: PUSH1 0x01
00001a3d: PUSH1 0x01
00001a3f: PUSH1 0xa0
00001a41: SHL
00001a42: SUB
00001a43: DUP1
00001a44: DUP5
00001a45: AND
00001a46: PUSH1 0x00
00001a48: DUP2
00001a49: DUP2
00001a4a: MSTORE
00001a4b: PUSH1 0x35
00001a4d: PUSH1 0x20
00001a4f: SWAP1
00001a50: DUP2
00001a51: MSTORE
00001a52: PUSH1 0x40
00001a54: DUP1
00001a55: DUP4
00001a56: KECCAK256
00001a57: SWAP5
00001a58: DUP8
00001a59: AND
00001a5a: DUP1
00001a5b: DUP5
00001a5c: MSTORE
00001a5d: SWAP5
00001a5e: DUP3
00001a5f: MSTORE
00001a60: SWAP2
00001a61: DUP3
00001a62: SWAP1
00001a63: KECCAK256
00001a64: DUP6
00001a65: SWAP1
00001a66: SSTORE
00001a67: DUP2
00001a68: MLOAD
00001a69: DUP6
00001a6a: DUP2
00001a6b: MSTORE
00001a6c: SWAP2
00001a6d: MLOAD
00001a6e: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00001a8f: SWAP3
00001a90: DUP2
00001a91: SWAP1
00001a92: SUB
00001a93: SWAP1
00001a94: SWAP2
00001a95: ADD
00001a96: SWAP1
00001a97: LOG3
00001a98: POP
00001a99: POP
00001a9a: POP
00001a9b: JUMP
00001a9c: JUMPDEST
00001a9d: PUSH1 0x01
00001a9f: PUSH1 0x01
00001aa1: PUSH1 0xa0
00001aa3: SHL
00001aa4: SUB
00001aa5: AND
00001aa6: PUSH1 0x00
00001aa8: SWAP1
00001aa9: DUP2
00001aaa: MSTORE
00001aab: PUSH1 0x34
00001aad: PUSH1 0x20
00001aaf: MSTORE
00001ab0: PUSH1 0x40
00001ab2: SWAP1
00001ab3: KECCAK256
00001ab4: SLOAD
00001ab5: SWAP1
00001ab6: JUMP
00001ab7: JUMPDEST
00001ab8: PUSH1 0x36
00001aba: SLOAD
00001abb: SWAP1
00001abc: JUMP
00001abd: JUMPDEST
00001abe: PUSH1 0x40
00001ac0: DUP1
00001ac1: MLOAD
00001ac2: DUP1
00001ac3: DUP3
00001ac4: ADD
00001ac5: SWAP1
00001ac6: SWAP2
00001ac7: MSTORE
00001ac8: PUSH1 0x02
00001aca: DUP2
00001acb: MSTORE
00001acc: PUSH2 0x0353
00001acf: PUSH1 0xf4
00001ad1: SHL
00001ad2: PUSH1 0x20
00001ad4: DUP3
00001ad5: ADD
00001ad6: MSTORE
00001ad7: PUSH1 0x00
00001ad9: SWAP1
00001ada: DUP3
00001adb: PUSH2 0x1b25
00001ade: JUMPI
00001adf: PUSH1 0x40
00001ae1: MLOAD
00001ae2: PUSH3 0x461bcd
00001ae6: PUSH1 0xe5
00001ae8: SHL
00001ae9: DUP2
00001aea: MSTORE
00001aeb: PUSH1 0x20
00001aed: PUSH1 0x04
00001aef: DUP3
00001af0: ADD
00001af1: DUP2
00001af2: DUP2
00001af3: MSTORE
00001af4: DUP4
00001af5: MLOAD
00001af6: PUSH1 0x24
00001af8: DUP5
00001af9: ADD
00001afa: MSTORE
00001afb: DUP4
00001afc: MLOAD
00001afd: SWAP1
00001afe: SWAP3
00001aff: DUP4
00001b00: SWAP3
00001b01: PUSH1 0x44
00001b03: SWAP1
00001b04: SWAP2
00001b05: ADD
00001b06: SWAP2
00001b07: SWAP1
00001b08: DUP6
00001b09: ADD
00001b0a: SWAP1
00001b0b: DUP1
00001b0c: DUP4
00001b0d: DUP4
00001b0e: PUSH1 0x00
00001b10: DUP4
00001b11: ISZERO
00001b12: PUSH2 0x08fb
00001b15: JUMPI
00001b16: DUP2
00001b17: DUP2
00001b18: ADD
00001b19: MLOAD
00001b1a: DUP4
00001b1b: DUP3
00001b1c: ADD
00001b1d: MSTORE
00001b1e: PUSH1 0x20
00001b20: ADD
00001b21: PUSH2 0x08e3
00001b24: JUMP
00001b25: JUMPDEST
00001b26: POP
00001b27: PUSH1 0x40
00001b29: DUP1
00001b2a: MLOAD
00001b2b: DUP1
00001b2c: DUP3
00001b2d: ADD
00001b2e: SWAP1
00001b2f: SWAP2
00001b30: MSTORE
00001b31: PUSH1 0x02
00001b33: DUP1
00001b34: DUP3
00001b35: MSTORE
00001b36: PUSH2 0x0687
00001b39: PUSH1 0xf3
00001b3b: SHL
00001b3c: PUSH1 0x20
00001b3e: DUP4
00001b3f: ADD
00001b40: MSTORE
00001b41: DUP4
00001b42: DIV
00001b43: SWAP1
00001b44: PUSH12 0x033b2e3c9fd0803ce8000000
00001b51: DUP3
00001b52: NOT
00001b53: DIV
00001b54: DUP6
00001b55: GT
00001b56: ISZERO
00001b57: PUSH2 0x1ba1
00001b5a: JUMPI
00001b5b: PUSH1 0x40
00001b5d: MLOAD
00001b5e: PUSH3 0x461bcd
00001b62: PUSH1 0xe5
00001b64: SHL
00001b65: DUP2
00001b66: MSTORE
00001b67: PUSH1 0x20
00001b69: PUSH1 0x04
00001b6b: DUP3
00001b6c: ADD
00001b6d: DUP2
00001b6e: DUP2
00001b6f: MSTORE
00001b70: DUP4
00001b71: MLOAD
00001b72: PUSH1 0x24
00001b74: DUP5
00001b75: ADD
00001b76: MSTORE
00001b77: DUP4
00001b78: MLOAD
00001b79: SWAP1
00001b7a: SWAP3
00001b7b: DUP4
00001b7c: SWAP3
00001b7d: PUSH1 0x44
00001b7f: SWAP1
00001b80: SWAP2
00001b81: ADD
00001b82: SWAP2
00001b83: SWAP1
00001b84: DUP6
00001b85: ADD
00001b86: SWAP1
00001b87: DUP1
00001b88: DUP4
00001b89: DUP4
00001b8a: PUSH1 0x00
00001b8c: DUP4
00001b8d: ISZERO
00001b8e: PUSH2 0x08fb
00001b91: JUMPI
00001b92: DUP2
00001b93: DUP2
00001b94: ADD
00001b95: MLOAD
00001b96: DUP4
00001b97: DUP3
00001b98: ADD
00001b99: MSTORE
00001b9a: PUSH1 0x20
00001b9c: ADD
00001b9d: PUSH2 0x08e3
00001ba0: JUMP
00001ba1: JUMPDEST
00001ba2: POP
00001ba3: DUP3
00001ba4: DUP2
00001ba5: PUSH12 0x033b2e3c9fd0803ce8000000
00001bb2: DUP7
00001bb3: MUL
00001bb4: ADD
00001bb5: DUP2
00001bb6: PUSH2 0x1bbb
00001bb9: JUMPI
00001bba: INVALID
00001bbb: JUMPDEST
00001bbc: DIV
00001bbd: SWAP5
00001bbe: SWAP4
00001bbf: POP
00001bc0: POP
00001bc1: POP
00001bc2: POP
00001bc3: JUMP
00001bc4: JUMPDEST
00001bc5: PUSH1 0x01
00001bc7: PUSH1 0x01
00001bc9: PUSH1 0xa0
00001bcb: SHL
00001bcc: SUB
00001bcd: DUP3
00001bce: AND
00001bcf: PUSH2 0x1c1f
00001bd2: JUMPI
00001bd3: PUSH1 0x40
00001bd5: DUP1
00001bd6: MLOAD
00001bd7: PUSH3 0x461bcd
00001bdb: PUSH1 0xe5
00001bdd: SHL
00001bde: DUP2
00001bdf: MSTORE
00001be0: PUSH1 0x20
00001be2: PUSH1 0x04
00001be4: DUP3
00001be5: ADD
00001be6: MSTORE
00001be7: PUSH1 0x1f
00001be9: PUSH1 0x24
00001beb: DUP3
00001bec: ADD
00001bed: MSTORE
00001bee: PUSH32 0x45524332303a206d696e7420746f20746865207a65726f206164647265737300
00001c0f: PUSH1 0x44
00001c11: DUP3
00001c12: ADD
00001c13: MSTORE
00001c14: SWAP1
00001c15: MLOAD
00001c16: SWAP1
00001c17: DUP2
00001c18: SWAP1
00001c19: SUB
00001c1a: PUSH1 0x64
00001c1c: ADD
00001c1d: SWAP1
00001c1e: REVERT
00001c1f: JUMPDEST
00001c20: PUSH2 0x1c2b
00001c23: PUSH1 0x00
00001c25: DUP4
00001c26: DUP4
00001c27: PUSH2 0x0f71
00001c2a: JUMP
00001c2b: JUMPDEST
00001c2c: PUSH1 0x36
00001c2e: SLOAD
00001c2f: PUSH2 0x1c38
00001c32: DUP2
00001c33: DUP4
00001c34: PUSH2 0x1e3a
00001c37: JUMP
00001c38: JUMPDEST
00001c39: PUSH1 0x36
00001c3b: SSTORE
00001c3c: PUSH1 0x01
00001c3e: PUSH1 0x01
00001c40: PUSH1 0xa0
00001c42: SHL
00001c43: SUB
00001c44: DUP4
00001c45: AND
00001c46: PUSH1 0x00
00001c48: SWAP1
00001c49: DUP2
00001c4a: MSTORE
00001c4b: PUSH1 0x34
00001c4d: PUSH1 0x20
00001c4f: MSTORE
00001c50: PUSH1 0x40
00001c52: SWAP1
00001c53: KECCAK256
00001c54: SLOAD
00001c55: PUSH2 0x1c5e
00001c58: DUP2
00001c59: DUP5
00001c5a: PUSH2 0x1e3a
00001c5d: JUMP
00001c5e: JUMPDEST
00001c5f: PUSH1 0x01
00001c61: PUSH1 0x01
00001c63: PUSH1 0xa0
00001c65: SHL
00001c66: SUB
00001c67: DUP6
00001c68: AND
00001c69: PUSH1 0x00
00001c6b: SWAP1
00001c6c: DUP2
00001c6d: MSTORE
00001c6e: PUSH1 0x34
00001c70: PUSH1 0x20
00001c72: MSTORE
00001c73: PUSH1 0x40
00001c75: DUP2
00001c76: KECCAK256
00001c77: SWAP2
00001c78: SWAP1
00001c79: SWAP2
00001c7a: SSTORE
00001c7b: PUSH2 0x1c82
00001c7e: PUSH2 0x1ee6
00001c81: JUMP
00001c82: JUMPDEST
00001c83: PUSH1 0x01
00001c85: PUSH1 0x01
00001c87: PUSH1 0xa0
00001c89: SHL
00001c8a: SUB
00001c8b: AND
00001c8c: EQ
00001c8d: PUSH2 0x1d0f
00001c90: JUMPI
00001c91: PUSH2 0x1c98
00001c94: PUSH2 0x1ee6
00001c97: JUMP
00001c98: JUMPDEST
00001c99: PUSH1 0x01
00001c9b: PUSH1 0x01
00001c9d: PUSH1 0xa0
00001c9f: SHL
00001ca0: SUB
00001ca1: AND
00001ca2: PUSH4 0x31873e2e
00001ca7: DUP6
00001ca8: DUP4
00001ca9: DUP6
00001caa: PUSH1 0x40
00001cac: MLOAD
00001cad: DUP5
00001cae: PUSH4 0xffffffff
00001cb3: AND
00001cb4: PUSH1 0xe0
00001cb6: SHL
00001cb7: DUP2
00001cb8: MSTORE
00001cb9: PUSH1 0x04
00001cbb: ADD
00001cbc: DUP1
00001cbd: DUP5
00001cbe: PUSH1 0x01
00001cc0: PUSH1 0x01
00001cc2: PUSH1 0xa0
00001cc4: SHL
00001cc5: SUB
00001cc6: AND
00001cc7: DUP2
00001cc8: MSTORE
00001cc9: PUSH1 0x20
00001ccb: ADD
00001ccc: DUP4
00001ccd: DUP2
00001cce: MSTORE
00001ccf: PUSH1 0x20
00001cd1: ADD
00001cd2: DUP3
00001cd3: DUP2
00001cd4: MSTORE
00001cd5: PUSH1 0x20
00001cd7: ADD
00001cd8: SWAP4
00001cd9: POP
00001cda: POP
00001cdb: POP
00001cdc: POP
00001cdd: PUSH1 0x00
00001cdf: PUSH1 0x40
00001ce1: MLOAD
00001ce2: DUP1
00001ce3: DUP4
00001ce4: SUB
00001ce5: DUP2
00001ce6: PUSH1 0x00
00001ce8: DUP8
00001ce9: DUP1
00001cea: EXTCODESIZE
00001ceb: ISZERO
00001cec: DUP1
00001ced: ISZERO
00001cee: PUSH2 0x1cf6
00001cf1: JUMPI
00001cf2: PUSH1 0x00
00001cf4: DUP1
00001cf5: REVERT
00001cf6: JUMPDEST
00001cf7: POP
00001cf8: GAS
00001cf9: CALL
00001cfa: ISZERO
00001cfb: DUP1
00001cfc: ISZERO
00001cfd: PUSH2 0x1d0a
00001d00: JUMPI
00001d01: RETURNDATASIZE
00001d02: PUSH1 0x00
00001d04: DUP1
00001d05: RETURNDATACOPY
00001d06: RETURNDATASIZE
00001d07: PUSH1 0x00
00001d09: REVERT
00001d0a: JUMPDEST
00001d0b: POP
00001d0c: POP
00001d0d: POP
00001d0e: POP
00001d0f: JUMPDEST
00001d10: POP
00001d11: POP
00001d12: POP
00001d13: POP
00001d14: JUMP
00001d15: JUMPDEST
00001d16: PUSH1 0x00
00001d18: DUP3
00001d19: ISZERO
00001d1a: DUP1
00001d1b: PUSH2 0x1d22
00001d1e: JUMPI
00001d1f: POP
00001d20: DUP2
00001d21: ISZERO
00001d22: JUMPDEST
00001d23: ISZERO
00001d24: PUSH2 0x1d2f
00001d27: JUMPI
00001d28: POP
00001d29: PUSH1 0x00
00001d2b: PUSH2 0x0844
00001d2e: JUMP
00001d2f: JUMPDEST
00001d30: DUP2
00001d31: PUSH12 0x019d971e4fe8401e74000000
00001d3e: NOT
00001d3f: DUP2
00001d40: PUSH2 0x1d45
00001d43: JUMPI
00001d44: INVALID
00001d45: JUMPDEST
00001d46: DIV
00001d47: DUP4
00001d48: GT
00001d49: ISZERO
00001d4a: PUSH1 0x40
00001d4c: MLOAD
00001d4d: DUP1
00001d4e: PUSH1 0x40
00001d50: ADD
00001d51: PUSH1 0x40
00001d53: MSTORE
00001d54: DUP1
00001d55: PUSH1 0x02
00001d57: DUP2
00001d58: MSTORE
00001d59: PUSH1 0x20
00001d5b: ADD
00001d5c: PUSH2 0x0687
00001d5f: PUSH1 0xf3
00001d61: SHL
00001d62: DUP2
00001d63: MSTORE
00001d64: POP
00001d65: SWAP1
00001d66: PUSH2 0x1db0
00001d69: JUMPI
00001d6a: PUSH1 0x40
00001d6c: MLOAD
00001d6d: PUSH3 0x461bcd
00001d71: PUSH1 0xe5
00001d73: SHL
00001d74: DUP2
00001d75: MSTORE
00001d76: PUSH1 0x20
00001d78: PUSH1 0x04
00001d7a: DUP3
00001d7b: ADD
00001d7c: DUP2
00001d7d: DUP2
00001d7e: MSTORE
00001d7f: DUP4
00001d80: MLOAD
00001d81: PUSH1 0x24
00001d83: DUP5
00001d84: ADD
00001d85: MSTORE
00001d86: DUP4
00001d87: MLOAD
00001d88: SWAP1
00001d89: SWAP3
00001d8a: DUP4
00001d8b: SWAP3
00001d8c: PUSH1 0x44
00001d8e: SWAP1
00001d8f: SWAP2
00001d90: ADD
00001d91: SWAP2
00001d92: SWAP1
00001d93: DUP6
00001d94: ADD
00001d95: SWAP1
00001d96: DUP1
00001d97: DUP4
00001d98: DUP4
00001d99: PUSH1 0x00
00001d9b: DUP4
00001d9c: ISZERO
00001d9d: PUSH2 0x08fb
00001da0: JUMPI
00001da1: DUP2
00001da2: DUP2
00001da3: ADD
00001da4: MLOAD
00001da5: DUP4
00001da6: DUP3
00001da7: ADD
00001da8: MSTORE
00001da9: PUSH1 0x20
00001dab: ADD
00001dac: PUSH2 0x08e3
00001daf: JUMP
00001db0: JUMPDEST
00001db1: POP
00001db2: POP
00001db3: PUSH12 0x033b2e3c9fd0803ce8000000
00001dc0: SWAP2
00001dc1: MUL
00001dc2: PUSH12 0x019d971e4fe8401e74000000
00001dcf: ADD
00001dd0: DIV
00001dd1: SWAP1
00001dd2: JUMP
00001dd3: JUMPDEST
00001dd4: PUSH2 0x0f71
00001dd7: DUP4
00001dd8: DUP4
00001dd9: DUP4
00001dda: PUSH1 0x01
00001ddc: PUSH2 0x20c0
00001ddf: JUMP
00001de0: JUMPDEST
00001de1: PUSH1 0x00
00001de3: DUP2
00001de4: DUP5
00001de5: DUP5
00001de6: GT
00001de7: ISZERO
00001de8: PUSH2 0x1e32
00001deb: JUMPI
00001dec: PUSH1 0x40
00001dee: MLOAD
00001def: PUSH3 0x461bcd
00001df3: PUSH1 0xe5
00001df5: SHL
00001df6: DUP2
00001df7: MSTORE
00001df8: PUSH1 0x20
00001dfa: PUSH1 0x04
00001dfc: DUP3
00001dfd: ADD
00001dfe: DUP2
00001dff: DUP2
00001e00: MSTORE
00001e01: DUP4
00001e02: MLOAD
00001e03: PUSH1 0x24
00001e05: DUP5
00001e06: ADD
00001e07: MSTORE
00001e08: DUP4
00001e09: MLOAD
00001e0a: SWAP1
00001e0b: SWAP3
00001e0c: DUP4
00001e0d: SWAP3
00001e0e: PUSH1 0x44
00001e10: SWAP1
00001e11: SWAP2
00001e12: ADD
00001e13: SWAP2
00001e14: SWAP1
00001e15: DUP6
00001e16: ADD
00001e17: SWAP1
00001e18: DUP1
00001e19: DUP4
00001e1a: DUP4
00001e1b: PUSH1 0x00
00001e1d: DUP4
00001e1e: ISZERO
00001e1f: PUSH2 0x08fb
00001e22: JUMPI
00001e23: DUP2
00001e24: DUP2
00001e25: ADD
00001e26: MLOAD
00001e27: DUP4
00001e28: DUP3
00001e29: ADD
00001e2a: MSTORE
00001e2b: PUSH1 0x20
00001e2d: ADD
00001e2e: PUSH2 0x08e3
00001e31: JUMP
00001e32: JUMPDEST
00001e33: POP
00001e34: POP
00001e35: POP
00001e36: SWAP1
00001e37: SUB
00001e38: SWAP1
00001e39: JUMP
00001e3a: JUMPDEST
00001e3b: PUSH1 0x00
00001e3d: DUP3
00001e3e: DUP3
00001e3f: ADD
00001e40: DUP4
00001e41: DUP2
00001e42: LT
00001e43: ISZERO
00001e44: PUSH2 0x0a3a
00001e47: JUMPI
00001e48: PUSH1 0x40
00001e4a: DUP1
00001e4b: MLOAD
00001e4c: PUSH3 0x461bcd
00001e50: PUSH1 0xe5
00001e52: SHL
00001e53: DUP2
00001e54: MSTORE
00001e55: PUSH1 0x20
00001e57: PUSH1 0x04
00001e59: DUP3
00001e5a: ADD
00001e5b: MSTORE
00001e5c: PUSH1 0x1b
00001e5e: PUSH1 0x24
00001e60: DUP3
00001e61: ADD
00001e62: MSTORE
00001e63: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000
00001e84: PUSH1 0x44
00001e86: DUP3
00001e87: ADD
00001e88: MSTORE
00001e89: SWAP1
00001e8a: MLOAD
00001e8b: SWAP1
00001e8c: DUP2
00001e8d: SWAP1
00001e8e: SUB
00001e8f: PUSH1 0x64
00001e91: ADD
00001e92: SWAP1
00001e93: REVERT
00001e94: JUMPDEST
00001e95: PUSH1 0x40
00001e97: DUP1
00001e98: MLOAD
00001e99: PUSH1 0x01
00001e9b: PUSH1 0x01
00001e9d: PUSH1 0xa0
00001e9f: SHL
00001ea0: SUB
00001ea1: DUP5
00001ea2: AND
00001ea3: PUSH1 0x24
00001ea5: DUP3
00001ea6: ADD
00001ea7: MSTORE
00001ea8: PUSH1 0x44
00001eaa: DUP1
00001eab: DUP3
00001eac: ADD
00001ead: DUP5
00001eae: SWAP1
00001eaf: MSTORE
00001eb0: DUP3
00001eb1: MLOAD
00001eb2: DUP1
00001eb3: DUP4
00001eb4: SUB
00001eb5: SWAP1
00001eb6: SWAP2
00001eb7: ADD
00001eb8: DUP2
00001eb9: MSTORE
00001eba: PUSH1 0x64
00001ebc: SWAP1
00001ebd: SWAP2
00001ebe: ADD
00001ebf: SWAP1
00001ec0: SWAP2
00001ec1: MSTORE
00001ec2: PUSH1 0x20
00001ec4: DUP2
00001ec5: ADD
00001ec6: DUP1
00001ec7: MLOAD
00001ec8: PUSH1 0x01
00001eca: PUSH1 0x01
00001ecc: PUSH1 0xe0
00001ece: SHL
00001ecf: SUB
00001ed0: AND
00001ed1: PUSH4 0xa9059cbb
00001ed6: PUSH1 0xe0
00001ed8: SHL
00001ed9: OR
00001eda: SWAP1
00001edb: MSTORE
00001edc: PUSH2 0x0f71
00001edf: SWAP1
00001ee0: DUP5
00001ee1: SWAP1
00001ee2: PUSH2 0x226f
00001ee5: JUMP
00001ee6: JUMPDEST
00001ee7: PUSH1 0x00
00001ee9: PUSH1 0x39
00001eeb: PUSH1 0x01
00001eed: SWAP1
00001eee: SLOAD
00001eef: SWAP1
00001ef0: PUSH2 0x0100
00001ef3: EXP
00001ef4: SWAP1
00001ef5: DIV
00001ef6: PUSH1 0x01
00001ef8: PUSH1 0x01
00001efa: PUSH1 0xa0
00001efc: SHL
00001efd: SUB
00001efe: AND
00001eff: PUSH1 0x01
00001f01: PUSH1 0x01
00001f03: PUSH1 0xa0
00001f05: SHL
00001f06: SUB
00001f07: AND
00001f08: PUSH4 0xfe65acfe
00001f0d: PUSH1 0x40
00001f0f: MLOAD
00001f10: DUP2
00001f11: PUSH4 0xffffffff
00001f16: AND
00001f17: PUSH1 0xe0
00001f19: SHL
00001f1a: DUP2
00001f1b: MSTORE
00001f1c: PUSH1 0x04
00001f1e: ADD
00001f1f: PUSH1 0x20
00001f21: PUSH1 0x40
00001f23: MLOAD
00001f24: DUP1
00001f25: DUP4
00001f26: SUB
00001f27: DUP2
00001f28: DUP7
00001f29: DUP1
00001f2a: EXTCODESIZE
00001f2b: ISZERO
00001f2c: DUP1
00001f2d: ISZERO
00001f2e: PUSH2 0x1f36
00001f31: JUMPI
00001f32: PUSH1 0x00
00001f34: DUP1
00001f35: REVERT
00001f36: JUMPDEST
00001f37: POP
00001f38: GAS
00001f39: STATICCALL
00001f3a: ISZERO
00001f3b: DUP1
00001f3c: ISZERO
00001f3d: PUSH2 0x1f4a
00001f40: JUMPI
00001f41: RETURNDATASIZE
00001f42: PUSH1 0x00
00001f44: DUP1
00001f45: RETURNDATACOPY
00001f46: RETURNDATASIZE
00001f47: PUSH1 0x00
00001f49: REVERT
00001f4a: JUMPDEST
00001f4b: POP
00001f4c: POP
00001f4d: POP
00001f4e: POP
00001f4f: PUSH1 0x40
00001f51: MLOAD
00001f52: RETURNDATASIZE
00001f53: PUSH1 0x20
00001f55: DUP2
00001f56: LT
00001f57: ISZERO
00001f58: PUSH2 0x1f60
00001f5b: JUMPI
00001f5c: PUSH1 0x00
00001f5e: DUP1
00001f5f: REVERT
00001f60: JUMPDEST
00001f61: POP
00001f62: MLOAD
00001f63: PUSH1 0x40
00001f65: DUP1
00001f66: MLOAD
00001f67: PUSH4 0x75d26413
00001f6c: PUSH1 0xe0
00001f6e: SHL
00001f6f: DUP2
00001f70: MSTORE
00001f71: SWAP1
00001f72: MLOAD
00001f73: PUSH1 0x01
00001f75: PUSH1 0x01
00001f77: PUSH1 0xa0
00001f79: SHL
00001f7a: SUB
00001f7b: SWAP1
00001f7c: SWAP3
00001f7d: AND
00001f7e: SWAP2
00001f7f: PUSH4 0x75d26413
00001f84: SWAP2
00001f85: PUSH1 0x04
00001f87: DUP1
00001f88: DUP3
00001f89: ADD
00001f8a: SWAP3
00001f8b: PUSH1 0x20
00001f8d: SWAP3
00001f8e: SWAP1
00001f8f: SWAP2
00001f90: SWAP1
00001f91: DUP3
00001f92: SWAP1
00001f93: SUB
00001f94: ADD
00001f95: DUP2
00001f96: DUP7
00001f97: DUP1
00001f98: EXTCODESIZE
00001f99: ISZERO
00001f9a: DUP1
00001f9b: ISZERO
00001f9c: PUSH2 0x1fa4
00001f9f: JUMPI
00001fa0: PUSH1 0x00
00001fa2: DUP1
00001fa3: REVERT
00001fa4: JUMPDEST
00001fa5: POP
00001fa6: GAS
00001fa7: STATICCALL
00001fa8: ISZERO
00001fa9: DUP1
00001faa: ISZERO
00001fab: PUSH2 0x1fb8
00001fae: JUMPI
00001faf: RETURNDATASIZE
00001fb0: PUSH1 0x00
00001fb2: DUP1
00001fb3: RETURNDATACOPY
00001fb4: RETURNDATASIZE
00001fb5: PUSH1 0x00
00001fb7: REVERT
00001fb8: JUMPDEST
00001fb9: POP
00001fba: POP
00001fbb: POP
00001fbc: POP
00001fbd: PUSH1 0x40
00001fbf: MLOAD
00001fc0: RETURNDATASIZE
00001fc1: PUSH1 0x20
00001fc3: DUP2
00001fc4: LT
00001fc5: ISZERO
00001fc6: PUSH2 0x1fce
00001fc9: JUMPI
00001fca: PUSH1 0x00
00001fcc: DUP1
00001fcd: REVERT
00001fce: JUMPDEST
00001fcf: POP
00001fd0: MLOAD
00001fd1: SWAP1
00001fd2: POP
00001fd3: SWAP1
00001fd4: JUMP
00001fd5: JUMPDEST
00001fd6: PUSH1 0x01
00001fd8: SWAP1
00001fd9: JUMP
00001fda: JUMPDEST
00001fdb: ADDRESS
00001fdc: EXTCODESIZE
00001fdd: ISZERO
00001fde: SWAP1
00001fdf: JUMP
00001fe0: JUMPDEST
00001fe1: DUP1
00001fe2: MLOAD
00001fe3: PUSH2 0x0ee3
00001fe6: SWAP1
00001fe7: PUSH1 0x37
00001fe9: SWAP1
00001fea: PUSH1 0x20
00001fec: DUP5
00001fed: ADD
00001fee: SWAP1
00001fef: PUSH2 0x27c2
00001ff2: JUMP
00001ff3: JUMPDEST
00001ff4: DUP1
00001ff5: MLOAD
00001ff6: PUSH2 0x0ee3
00001ff9: SWAP1
00001ffa: PUSH1 0x38
00001ffc: SWAP1
00001ffd: PUSH1 0x20
00001fff: DUP5
00002000: ADD
00002001: SWAP1
00002002: PUSH2 0x27c2
00002005: JUMP
00002006: JUMPDEST
00002007: PUSH1 0x39
00002009: DUP1
0000200a: SLOAD
0000200b: PUSH1 0xff
0000200d: NOT
0000200e: AND
0000200f: PUSH1 0xff
00002011: SWAP3
00002012: SWAP1
00002013: SWAP3
00002014: AND
00002015: SWAP2
00002016: SWAP1
00002017: SWAP2
00002018: OR
00002019: SWAP1
0000201a: SSTORE
0000201b: JUMP
0000201c: JUMPDEST
0000201d: PUSH1 0x01
0000201f: PUSH1 0x01
00002021: PUSH1 0xa0
00002023: SHL
00002024: SUB
00002025: DUP3
00002026: AND
00002027: PUSH2 0x2061
0000202a: JUMPI
0000202b: PUSH1 0x40
0000202d: MLOAD
0000202e: PUSH3 0x461bcd
00002032: PUSH1 0xe5
00002034: SHL
00002035: DUP2
00002036: MSTORE
00002037: PUSH1 0x04
00002039: ADD
0000203a: DUP1
0000203b: DUP1
0000203c: PUSH1 0x20
0000203e: ADD
0000203f: DUP3
00002040: DUP2
00002041: SUB
00002042: DUP3
00002043: MSTORE
00002044: PUSH1 0x21
00002046: DUP2
00002047: MSTORE
00002048: PUSH1 0x20
0000204a: ADD
0000204b: DUP1
0000204c: PUSH2 0x29b5
0000204f: PUSH1 0x21
00002051: SWAP2
00002052: CODECOPY
00002053: PUSH1 0x40
00002055: ADD
00002056: SWAP2
00002057: POP
00002058: POP
00002059: PUSH1 0x40
0000205b: MLOAD
0000205c: DUP1
0000205d: SWAP2
0000205e: SUB
0000205f: SWAP1
00002060: REVERT
00002061: JUMPDEST
00002062: PUSH2 0x206d
00002065: DUP3
00002066: PUSH1 0x00
00002068: DUP4
00002069: PUSH2 0x0f71
0000206c: JUMP
0000206d: JUMPDEST
0000206e: PUSH1 0x36
00002070: SLOAD
00002071: PUSH2 0x207a
00002074: DUP2
00002075: DUP4
00002076: PUSH2 0x2320
00002079: JUMP
0000207a: JUMPDEST
0000207b: PUSH1 0x36
0000207d: SSTORE
0000207e: PUSH1 0x01
00002080: PUSH1 0x01
00002082: PUSH1 0xa0
00002084: SHL
00002085: SUB
00002086: DUP4
00002087: AND
00002088: PUSH1 0x00
0000208a: SWAP1
0000208b: DUP2
0000208c: MSTORE
0000208d: PUSH1 0x34
0000208f: PUSH1 0x20
00002091: SWAP1
00002092: DUP2
00002093: MSTORE
00002094: PUSH1 0x40
00002096: SWAP2
00002097: DUP3
00002098: SWAP1
00002099: KECCAK256
0000209a: SLOAD
0000209b: DUP3
0000209c: MLOAD
0000209d: PUSH1 0x60
0000209f: DUP2
000020a0: ADD
000020a1: SWAP1
000020a2: SWAP4
000020a3: MSTORE
000020a4: PUSH1 0x22
000020a6: DUP1
000020a7: DUP5
000020a8: MSTORE
000020a9: SWAP1
000020aa: SWAP3
000020ab: PUSH2 0x1c5e
000020ae: SWAP3
000020af: DUP7
000020b0: SWAP3
000020b1: SWAP1
000020b2: PUSH2 0x2887
000020b5: SWAP1
000020b6: DUP4
000020b7: ADD
000020b8: CODECOPY
000020b9: DUP4
000020ba: SWAP2
000020bb: SWAP1
000020bc: PUSH2 0x1de0
000020bf: JUMP
000020c0: JUMPDEST
000020c1: PUSH1 0x3a
000020c3: SLOAD
000020c4: PUSH1 0x39
000020c6: SLOAD
000020c7: PUSH1 0x40
000020c9: DUP1
000020ca: MLOAD
000020cb: PUSH4 0xd15e0053
000020d0: PUSH1 0xe0
000020d2: SHL
000020d3: DUP2
000020d4: MSTORE
000020d5: PUSH1 0x01
000020d7: PUSH1 0x01
000020d9: PUSH1 0xa0
000020db: SHL
000020dc: SUB
000020dd: SWAP4
000020de: DUP5
000020df: AND
000020e0: PUSH1 0x04
000020e2: DUP3
000020e3: ADD
000020e4: DUP2
000020e5: SWAP1
000020e6: MSTORE
000020e7: SWAP2
000020e8: MLOAD
000020e9: SWAP2
000020ea: SWAP4
000020eb: PUSH2 0x0100
000020ee: SWAP1
000020ef: SWAP4
000020f0: DIV
000020f1: SWAP1
000020f2: SWAP3
000020f3: AND
000020f4: SWAP2
000020f5: PUSH1 0x00
000020f7: SWAP2
000020f8: DUP4
000020f9: SWAP2
000020fa: PUSH4 0xd15e0053
000020ff: SWAP2
00002100: PUSH1 0x24
00002102: DUP1
00002103: DUP4
00002104: ADD
00002105: SWAP3
00002106: PUSH1 0x20
00002108: SWAP3
00002109: SWAP2
0000210a: SWAP1
0000210b: DUP3
0000210c: SWAP1
0000210d: SUB
0000210e: ADD
0000210f: DUP2
00002110: DUP7
00002111: DUP1
00002112: EXTCODESIZE
00002113: ISZERO
00002114: DUP1
00002115: ISZERO
00002116: PUSH2 0x211e
00002119: JUMPI
0000211a: PUSH1 0x00
0000211c: DUP1
0000211d: REVERT
0000211e: JUMPDEST
0000211f: POP
00002120: GAS
00002121: STATICCALL
00002122: ISZERO
00002123: DUP1
00002124: ISZERO
00002125: PUSH2 0x2132
00002128: JUMPI
00002129: RETURNDATASIZE
0000212a: PUSH1 0x00
0000212c: DUP1
0000212d: RETURNDATACOPY
0000212e: RETURNDATASIZE
0000212f: PUSH1 0x00
00002131: REVERT
00002132: JUMPDEST
00002133: POP
00002134: POP
00002135: POP
00002136: POP
00002137: PUSH1 0x40
00002139: MLOAD
0000213a: RETURNDATASIZE
0000213b: PUSH1 0x20
0000213d: DUP2
0000213e: LT
0000213f: ISZERO
00002140: PUSH2 0x2148
00002143: JUMPI
00002144: PUSH1 0x00
00002146: DUP1
00002147: REVERT
00002148: JUMPDEST
00002149: POP
0000214a: MLOAD
0000214b: SWAP1
0000214c: POP
0000214d: PUSH1 0x00
0000214f: PUSH2 0x215b
00002152: DUP3
00002153: PUSH2 0x0d75
00002156: DUP11
00002157: PUSH2 0x1a9c
0000215a: JUMP
0000215b: JUMPDEST
0000215c: SWAP1
0000215d: POP
0000215e: PUSH1 0x00
00002160: PUSH2 0x216c
00002163: DUP4
00002164: PUSH2 0x0d75
00002167: DUP11
00002168: PUSH2 0x1a9c
0000216b: JUMP
0000216c: JUMPDEST
0000216d: SWAP1
0000216e: POP
0000216f: PUSH2 0x2182
00002172: DUP10
00002173: DUP10
00002174: PUSH2 0x217d
00002177: DUP11
00002178: DUP8
00002179: PUSH2 0x1abd
0000217c: JUMP
0000217d: JUMPDEST
0000217e: PUSH2 0x237d
00002181: JUMP
00002182: JUMPDEST
00002183: DUP6
00002184: ISZERO
00002185: PUSH2 0x2211
00002188: JUMPI
00002189: PUSH1 0x40
0000218b: DUP1
0000218c: MLOAD
0000218d: PUSH4 0xd5ed3933
00002192: PUSH1 0xe0
00002194: SHL
00002195: DUP2
00002196: MSTORE
00002197: PUSH1 0x01
00002199: PUSH1 0x01
0000219b: PUSH1 0xa0
0000219d: SHL
0000219e: SUB
0000219f: DUP8
000021a0: DUP2
000021a1: AND
000021a2: PUSH1 0x04
000021a4: DUP4
000021a5: ADD
000021a6: MSTORE
000021a7: DUP12
000021a8: DUP2
000021a9: AND
000021aa: PUSH1 0x24
000021ac: DUP4
000021ad: ADD
000021ae: MSTORE
000021af: DUP11
000021b0: DUP2
000021b1: AND
000021b2: PUSH1 0x44
000021b4: DUP4
000021b5: ADD
000021b6: MSTORE
000021b7: PUSH1 0x64
000021b9: DUP3
000021ba: ADD
000021bb: DUP11
000021bc: SWAP1
000021bd: MSTORE
000021be: PUSH1 0x84
000021c0: DUP3
000021c1: ADD
000021c2: DUP6
000021c3: SWAP1
000021c4: MSTORE
000021c5: PUSH1 0xa4
000021c7: DUP3
000021c8: ADD
000021c9: DUP5
000021ca: SWAP1
000021cb: MSTORE
000021cc: SWAP2
000021cd: MLOAD
000021ce: SWAP2
000021cf: DUP7
000021d0: AND
000021d1: SWAP2
000021d2: PUSH4 0xd5ed3933
000021d7: SWAP2
000021d8: PUSH1 0xc4
000021da: DUP1
000021db: DUP3
000021dc: ADD
000021dd: SWAP3
000021de: PUSH1 0x00
000021e0: SWAP3
000021e1: SWAP1
000021e2: SWAP2
000021e3: SWAP1
000021e4: DUP3
000021e5: SWAP1
000021e6: SUB
000021e7: ADD
000021e8: DUP2
000021e9: DUP4
000021ea: DUP8
000021eb: DUP1
000021ec: EXTCODESIZE
000021ed: ISZERO
000021ee: DUP1
000021ef: ISZERO
000021f0: PUSH2 0x21f8
000021f3: JUMPI
000021f4: PUSH1 0x00
000021f6: DUP1
000021f7: REVERT
000021f8: JUMPDEST
000021f9: POP
000021fa: GAS
000021fb: CALL
000021fc: ISZERO
000021fd: DUP1
000021fe: ISZERO
000021ff: PUSH2 0x220c
00002202: JUMPI
00002203: RETURNDATASIZE
00002204: PUSH1 0x00
00002206: DUP1
00002207: RETURNDATACOPY
00002208: RETURNDATASIZE
00002209: PUSH1 0x00
0000220b: REVERT
0000220c: JUMPDEST
0000220d: POP
0000220e: POP
0000220f: POP
00002210: POP
00002211: JUMPDEST
00002212: DUP8
00002213: PUSH1 0x01
00002215: PUSH1 0x01
00002217: PUSH1 0xa0
00002219: SHL
0000221a: SUB
0000221b: AND
0000221c: DUP10
0000221d: PUSH1 0x01
0000221f: PUSH1 0x01
00002221: PUSH1 0xa0
00002223: SHL
00002224: SUB
00002225: AND
00002226: PUSH32 0x4beccb90f994c31aced7a23b5611020728a23d8ec5cddd1a3e9d97b96fda8666
00002247: DUP10
00002248: DUP7
00002249: PUSH1 0x40
0000224b: MLOAD
0000224c: DUP1
0000224d: DUP4
0000224e: DUP2
0000224f: MSTORE
00002250: PUSH1 0x20
00002252: ADD
00002253: DUP3
00002254: DUP2
00002255: MSTORE
00002256: PUSH1 0x20
00002258: ADD
00002259: SWAP3
0000225a: POP
0000225b: POP
0000225c: POP
0000225d: PUSH1 0x40
0000225f: MLOAD
00002260: DUP1
00002261: SWAP2
00002262: SUB
00002263: SWAP1
00002264: LOG3
00002265: POP
00002266: POP
00002267: POP
00002268: POP
00002269: POP
0000226a: POP
0000226b: POP
0000226c: POP
0000226d: POP
0000226e: JUMP
0000226f: JUMPDEST
00002270: PUSH1 0x00
00002272: PUSH2 0x22c4
00002275: DUP3
00002276: PUSH1 0x40
00002278: MLOAD
00002279: DUP1
0000227a: PUSH1 0x40
0000227c: ADD
0000227d: PUSH1 0x40
0000227f: MSTORE
00002280: DUP1
00002281: PUSH1 0x20
00002283: DUP2
00002284: MSTORE
00002285: PUSH1 0x20
00002287: ADD
00002288: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
000022a9: DUP2
000022aa: MSTORE
000022ab: POP
000022ac: DUP6
000022ad: PUSH1 0x01
000022af: PUSH1 0x01
000022b1: PUSH1 0xa0
000022b3: SHL
000022b4: SUB
000022b5: AND
000022b6: PUSH2 0x25e4
000022b9: SWAP1
000022ba: SWAP3
000022bb: SWAP2
000022bc: SWAP1
000022bd: PUSH4 0xffffffff
000022c2: AND
000022c3: JUMP
000022c4: JUMPDEST
000022c5: DUP1
000022c6: MLOAD
000022c7: SWAP1
000022c8: SWAP2
000022c9: POP
000022ca: ISZERO
000022cb: PUSH2 0x0f71
000022ce: JUMPI
000022cf: DUP1
000022d0: DUP1
000022d1: PUSH1 0x20
000022d3: ADD
000022d4: SWAP1
000022d5: MLOAD
000022d6: PUSH1 0x20
000022d8: DUP2
000022d9: LT
000022da: ISZERO
000022db: PUSH2 0x22e3
000022de: JUMPI
000022df: PUSH1 0x00
000022e1: DUP1
000022e2: REVERT
000022e3: JUMPDEST
000022e4: POP
000022e5: MLOAD
000022e6: PUSH2 0x0f71
000022e9: JUMPI
000022ea: PUSH1 0x40
000022ec: MLOAD
000022ed: PUSH3 0x461bcd
000022f1: PUSH1 0xe5
000022f3: SHL
000022f4: DUP2
000022f5: MSTORE
000022f6: PUSH1 0x04
000022f8: ADD
000022f9: DUP1
000022fa: DUP1
000022fb: PUSH1 0x20
000022fd: ADD
000022fe: DUP3
000022ff: DUP2
00002300: SUB
00002301: DUP3
00002302: MSTORE
00002303: PUSH1 0x2a
00002305: DUP2
00002306: MSTORE
00002307: PUSH1 0x20
00002309: ADD
0000230a: DUP1
0000230b: PUSH2 0x2a1f
0000230e: PUSH1 0x2a
00002310: SWAP2
00002311: CODECOPY
00002312: PUSH1 0x40
00002314: ADD
00002315: SWAP2
00002316: POP
00002317: POP
00002318: PUSH1 0x40
0000231a: MLOAD
0000231b: DUP1
0000231c: SWAP2
0000231d: SUB
0000231e: SWAP1
0000231f: REVERT
00002320: JUMPDEST
00002321: PUSH1 0x00
00002323: DUP3
00002324: DUP3
00002325: GT
00002326: ISZERO
00002327: PUSH2 0x2377
0000232a: JUMPI
0000232b: PUSH1 0x40
0000232d: DUP1
0000232e: MLOAD
0000232f: PUSH3 0x461bcd
00002333: PUSH1 0xe5
00002335: SHL
00002336: DUP2
00002337: MSTORE
00002338: PUSH1 0x20
0000233a: PUSH1 0x04
0000233c: DUP3
0000233d: ADD
0000233e: MSTORE
0000233f: PUSH1 0x1e
00002341: PUSH1 0x24
00002343: DUP3
00002344: ADD
00002345: MSTORE
00002346: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
00002367: PUSH1 0x44
00002369: DUP3
0000236a: ADD
0000236b: MSTORE
0000236c: SWAP1
0000236d: MLOAD
0000236e: SWAP1
0000236f: DUP2
00002370: SWAP1
00002371: SUB
00002372: PUSH1 0x64
00002374: ADD
00002375: SWAP1
00002376: REVERT
00002377: JUMPDEST
00002378: POP
00002379: SWAP1
0000237a: SUB
0000237b: SWAP1
0000237c: JUMP
0000237d: JUMPDEST
0000237e: PUSH1 0x01
00002380: PUSH1 0x01
00002382: PUSH1 0xa0
00002384: SHL
00002385: SUB
00002386: DUP4
00002387: AND
00002388: PUSH2 0x23c2
0000238b: JUMPI
0000238c: PUSH1 0x40
0000238e: MLOAD
0000238f: PUSH3 0x461bcd
00002393: PUSH1 0xe5
00002395: SHL
00002396: DUP2
00002397: MSTORE
00002398: PUSH1 0x04
0000239a: ADD
0000239b: DUP1
0000239c: DUP1
0000239d: PUSH1 0x20
0000239f: ADD
000023a0: DUP3
000023a1: DUP2
000023a2: SUB
000023a3: DUP3
000023a4: MSTORE
000023a5: PUSH1 0x25
000023a7: DUP2
000023a8: MSTORE
000023a9: PUSH1 0x20
000023ab: ADD
000023ac: DUP1
000023ad: PUSH2 0x29d6
000023b0: PUSH1 0x25
000023b2: SWAP2
000023b3: CODECOPY
000023b4: PUSH1 0x40
000023b6: ADD
000023b7: SWAP2
000023b8: POP
000023b9: POP
000023ba: PUSH1 0x40
000023bc: MLOAD
000023bd: DUP1
000023be: SWAP2
000023bf: SUB
000023c0: SWAP1
000023c1: REVERT
000023c2: JUMPDEST
000023c3: PUSH1 0x01
000023c5: PUSH1 0x01
000023c7: PUSH1 0xa0
000023c9: SHL
000023ca: SUB
000023cb: DUP3
000023cc: AND
000023cd: PUSH2 0x2407
000023d0: JUMPI
000023d1: PUSH1 0x40
000023d3: MLOAD
000023d4: PUSH3 0x461bcd
000023d8: PUSH1 0xe5
000023da: SHL
000023db: DUP2
000023dc: MSTORE
000023dd: PUSH1 0x04
000023df: ADD
000023e0: DUP1
000023e1: DUP1
000023e2: PUSH1 0x20
000023e4: ADD
000023e5: DUP3
000023e6: DUP2
000023e7: SUB
000023e8: DUP3
000023e9: MSTORE
000023ea: PUSH1 0x23
000023ec: DUP2
000023ed: MSTORE
000023ee: PUSH1 0x20
000023f0: ADD
000023f1: DUP1
000023f2: PUSH2 0x2864
000023f5: PUSH1 0x23
000023f7: SWAP2
000023f8: CODECOPY
000023f9: PUSH1 0x40
000023fb: ADD
000023fc: SWAP2
000023fd: POP
000023fe: POP
000023ff: PUSH1 0x40
00002401: MLOAD
00002402: DUP1
00002403: SWAP2
00002404: SUB
00002405: SWAP1
00002406: REVERT
00002407: JUMPDEST
00002408: PUSH2 0x2412
0000240b: DUP4
0000240c: DUP4
0000240d: DUP4
0000240e: PUSH2 0x0f71
00002411: JUMP
00002412: JUMPDEST
00002413: PUSH1 0x00
00002415: PUSH1 0x34
00002417: PUSH1 0x00
00002419: DUP6
0000241a: PUSH1 0x01
0000241c: PUSH1 0x01
0000241e: PUSH1 0xa0
00002420: SHL
00002421: SUB
00002422: AND
00002423: PUSH1 0x01
00002425: PUSH1 0x01
00002427: PUSH1 0xa0
00002429: SHL
0000242a: SUB
0000242b: AND
0000242c: DUP2
0000242d: MSTORE
0000242e: PUSH1 0x20
00002430: ADD
00002431: SWAP1
00002432: DUP2
00002433: MSTORE
00002434: PUSH1 0x20
00002436: ADD
00002437: PUSH1 0x00
00002439: KECCAK256
0000243a: SLOAD
0000243b: SWAP1
0000243c: POP
0000243d: PUSH2 0x2461
00002440: DUP3
00002441: PUSH1 0x40
00002443: MLOAD
00002444: DUP1
00002445: PUSH1 0x60
00002447: ADD
00002448: PUSH1 0x40
0000244a: MSTORE
0000244b: DUP1
0000244c: PUSH1 0x26
0000244e: DUP2
0000244f: MSTORE
00002450: PUSH1 0x20
00002452: ADD
00002453: PUSH2 0x28cb
00002456: PUSH1 0x26
00002458: SWAP2
00002459: CODECOPY
0000245a: DUP4
0000245b: SWAP2
0000245c: SWAP1
0000245d: PUSH2 0x1de0
00002460: JUMP
00002461: JUMPDEST
00002462: PUSH1 0x01
00002464: PUSH1 0x01
00002466: PUSH1 0xa0
00002468: SHL
00002469: SUB
0000246a: DUP1
0000246b: DUP7
0000246c: AND
0000246d: PUSH1 0x00
0000246f: SWAP1
00002470: DUP2
00002471: MSTORE
00002472: PUSH1 0x34
00002474: PUSH1 0x20
00002476: MSTORE
00002477: PUSH1 0x40
00002479: DUP1
0000247a: DUP3
0000247b: KECCAK256
0000247c: SWAP4
0000247d: SWAP1
0000247e: SWAP4
0000247f: SSTORE
00002480: SWAP1
00002481: DUP6
00002482: AND
00002483: DUP2
00002484: MSTORE
00002485: KECCAK256
00002486: SLOAD
00002487: PUSH2 0x2490
0000248a: DUP2
0000248b: DUP5
0000248c: PUSH2 0x1e3a
0000248f: JUMP
00002490: JUMPDEST
00002491: PUSH1 0x01
00002493: PUSH1 0x01
00002495: PUSH1 0xa0
00002497: SHL
00002498: SUB
00002499: DUP6
0000249a: AND
0000249b: PUSH1 0x00
0000249d: SWAP1
0000249e: DUP2
0000249f: MSTORE
000024a0: PUSH1 0x34
000024a2: PUSH1 0x20
000024a4: MSTORE
000024a5: PUSH1 0x40
000024a7: DUP2
000024a8: KECCAK256
000024a9: SWAP2
000024aa: SWAP1
000024ab: SWAP2
000024ac: SSTORE
000024ad: PUSH2 0x24b4
000024b0: PUSH2 0x1ee6
000024b3: JUMP
000024b4: JUMPDEST
000024b5: PUSH1 0x01
000024b7: PUSH1 0x01
000024b9: PUSH1 0xa0
000024bb: SHL
000024bc: SUB
000024bd: AND
000024be: EQ
000024bf: PUSH2 0x25dd
000024c2: JUMPI
000024c3: PUSH1 0x36
000024c5: SLOAD
000024c6: PUSH2 0x24cd
000024c9: PUSH2 0x1ee6
000024cc: JUMP
000024cd: JUMPDEST
000024ce: PUSH1 0x01
000024d0: PUSH1 0x01
000024d2: PUSH1 0xa0
000024d4: SHL
000024d5: SUB
000024d6: AND
000024d7: PUSH4 0x31873e2e
000024dc: DUP8
000024dd: DUP6
000024de: DUP5
000024df: PUSH1 0x40
000024e1: MLOAD
000024e2: DUP5
000024e3: PUSH4 0xffffffff
000024e8: AND
000024e9: PUSH1 0xe0
000024eb: SHL
000024ec: DUP2
000024ed: MSTORE
000024ee: PUSH1 0x04
000024f0: ADD
000024f1: DUP1
000024f2: DUP5
000024f3: PUSH1 0x01
000024f5: PUSH1 0x01
000024f7: PUSH1 0xa0
000024f9: SHL
000024fa: SUB
000024fb: AND
000024fc: DUP2
000024fd: MSTORE
000024fe: PUSH1 0x20
00002500: ADD
00002501: DUP4
00002502: DUP2
00002503: MSTORE
00002504: PUSH1 0x20
00002506: ADD
00002507: DUP3
00002508: DUP2
00002509: MSTORE
0000250a: PUSH1 0x20
0000250c: ADD
0000250d: SWAP4
0000250e: POP
0000250f: POP
00002510: POP
00002511: POP
00002512: PUSH1 0x00
00002514: PUSH1 0x40
00002516: MLOAD
00002517: DUP1
00002518: DUP4
00002519: SUB
0000251a: DUP2
0000251b: PUSH1 0x00
0000251d: DUP8
0000251e: DUP1
0000251f: EXTCODESIZE
00002520: ISZERO
00002521: DUP1
00002522: ISZERO
00002523: PUSH2 0x252b
00002526: JUMPI
00002527: PUSH1 0x00
00002529: DUP1
0000252a: REVERT
0000252b: JUMPDEST
0000252c: POP
0000252d: GAS
0000252e: CALL
0000252f: ISZERO
00002530: DUP1
00002531: ISZERO
00002532: PUSH2 0x253f
00002535: JUMPI
00002536: RETURNDATASIZE
00002537: PUSH1 0x00
00002539: DUP1
0000253a: RETURNDATACOPY
0000253b: RETURNDATASIZE
0000253c: PUSH1 0x00
0000253e: REVERT
0000253f: JUMPDEST
00002540: POP
00002541: POP
00002542: POP
00002543: POP
00002544: DUP5
00002545: PUSH1 0x01
00002547: PUSH1 0x01
00002549: PUSH1 0xa0
0000254b: SHL
0000254c: SUB
0000254d: AND
0000254e: DUP7
0000254f: PUSH1 0x01
00002551: PUSH1 0x01
00002553: PUSH1 0xa0
00002555: SHL
00002556: SUB
00002557: AND
00002558: EQ
00002559: PUSH2 0x25db
0000255c: JUMPI
0000255d: PUSH2 0x2564
00002560: PUSH2 0x1ee6
00002563: JUMP
00002564: JUMPDEST
00002565: PUSH1 0x01
00002567: PUSH1 0x01
00002569: PUSH1 0xa0
0000256b: SHL
0000256c: SUB
0000256d: AND
0000256e: PUSH4 0x31873e2e
00002573: DUP7
00002574: DUP5
00002575: DUP5
00002576: PUSH1 0x40
00002578: MLOAD
00002579: DUP5
0000257a: PUSH4 0xffffffff
0000257f: AND
00002580: PUSH1 0xe0
00002582: SHL
00002583: DUP2
00002584: MSTORE
00002585: PUSH1 0x04
00002587: ADD
00002588: DUP1
00002589: DUP5
0000258a: PUSH1 0x01
0000258c: PUSH1 0x01
0000258e: PUSH1 0xa0
00002590: SHL
00002591: SUB
00002592: AND
00002593: DUP2
00002594: MSTORE
00002595: PUSH1 0x20
00002597: ADD
00002598: DUP4
00002599: DUP2
0000259a: MSTORE
0000259b: PUSH1 0x20
0000259d: ADD
0000259e: DUP3
0000259f: DUP2
000025a0: MSTORE
000025a1: PUSH1 0x20
000025a3: ADD
000025a4: SWAP4
000025a5: POP
000025a6: POP
000025a7: POP
000025a8: POP
000025a9: PUSH1 0x00
000025ab: PUSH1 0x40
000025ad: MLOAD
000025ae: DUP1
000025af: DUP4
000025b0: SUB
000025b1: DUP2
000025b2: PUSH1 0x00
000025b4: DUP8
000025b5: DUP1
000025b6: EXTCODESIZE
000025b7: ISZERO
000025b8: DUP1
000025b9: ISZERO
000025ba: PUSH2 0x25c2
000025bd: JUMPI
000025be: PUSH1 0x00
000025c0: DUP1
000025c1: REVERT
000025c2: JUMPDEST
000025c3: POP
000025c4: GAS
000025c5: CALL
000025c6: ISZERO
000025c7: DUP1
000025c8: ISZERO
000025c9: PUSH2 0x25d6
000025cc: JUMPI
000025cd: RETURNDATASIZE
000025ce: PUSH1 0x00
000025d0: DUP1
000025d1: RETURNDATACOPY
000025d2: RETURNDATASIZE
000025d3: PUSH1 0x00
000025d5: REVERT
000025d6: JUMPDEST
000025d7: POP
000025d8: POP
000025d9: POP
000025da: POP
000025db: JUMPDEST
000025dc: POP
000025dd: JUMPDEST
000025de: POP
000025df: POP
000025e0: POP
000025e1: POP
000025e2: POP
000025e3: JUMP
000025e4: JUMPDEST
000025e5: PUSH1 0x60
000025e7: PUSH2 0x25f3
000025ea: DUP5
000025eb: DUP5
000025ec: PUSH1 0x00
000025ee: DUP6
000025ef: PUSH2 0x25fb
000025f2: JUMP
000025f3: JUMPDEST
000025f4: SWAP5
000025f5: SWAP4
000025f6: POP
000025f7: POP
000025f8: POP
000025f9: POP
000025fa: JUMP
000025fb: JUMPDEST
000025fc: PUSH1 0x60
000025fe: DUP3
000025ff: SELFBALANCE
00002600: LT
00002601: ISZERO
00002602: PUSH2 0x263c
00002605: JUMPI
00002606: PUSH1 0x40
00002608: MLOAD
00002609: PUSH3 0x461bcd
0000260d: PUSH1 0xe5
0000260f: SHL
00002610: DUP2
00002611: MSTORE
00002612: PUSH1 0x04
00002614: ADD
00002615: DUP1
00002616: DUP1
00002617: PUSH1 0x20
00002619: ADD
0000261a: DUP3
0000261b: DUP2
0000261c: SUB
0000261d: DUP3
0000261e: MSTORE
0000261f: PUSH1 0x26
00002621: DUP2
00002622: MSTORE
00002623: PUSH1 0x20
00002625: ADD
00002626: DUP1
00002627: PUSH2 0x28f1
0000262a: PUSH1 0x26
0000262c: SWAP2
0000262d: CODECOPY
0000262e: PUSH1 0x40
00002630: ADD
00002631: SWAP2
00002632: POP
00002633: POP
00002634: PUSH1 0x40
00002636: MLOAD
00002637: DUP1
00002638: SWAP2
00002639: SUB
0000263a: SWAP1
0000263b: REVERT
0000263c: JUMPDEST
0000263d: PUSH2 0x2645
00002640: DUP6
00002641: PUSH2 0x2756
00002644: JUMP
00002645: JUMPDEST
00002646: PUSH2 0x2696
00002649: JUMPI
0000264a: PUSH1 0x40
0000264c: DUP1
0000264d: MLOAD
0000264e: PUSH3 0x461bcd
00002652: PUSH1 0xe5
00002654: SHL
00002655: DUP2
00002656: MSTORE
00002657: PUSH1 0x20
00002659: PUSH1 0x04
0000265b: DUP3
0000265c: ADD
0000265d: MSTORE
0000265e: PUSH1 0x1d
00002660: PUSH1 0x24
00002662: DUP3
00002663: ADD
00002664: MSTORE
00002665: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00002686: PUSH1 0x44
00002688: DUP3
00002689: ADD
0000268a: MSTORE
0000268b: SWAP1
0000268c: MLOAD
0000268d: SWAP1
0000268e: DUP2
0000268f: SWAP1
00002690: SUB
00002691: PUSH1 0x64
00002693: ADD
00002694: SWAP1
00002695: REVERT
00002696: JUMPDEST
00002697: PUSH1 0x00
00002699: DUP1
0000269a: DUP7
0000269b: PUSH1 0x01
0000269d: PUSH1 0x01
0000269f: PUSH1 0xa0
000026a1: SHL
000026a2: SUB
000026a3: AND
000026a4: DUP6
000026a5: DUP8
000026a6: PUSH1 0x40
000026a8: MLOAD
000026a9: DUP1
000026aa: DUP3
000026ab: DUP1
000026ac: MLOAD
000026ad: SWAP1
000026ae: PUSH1 0x20
000026b0: ADD
000026b1: SWAP1
000026b2: DUP1
000026b3: DUP4
000026b4: DUP4
000026b5: JUMPDEST
000026b6: PUSH1 0x20
000026b8: DUP4
000026b9: LT
000026ba: PUSH2 0x26d4
000026bd: JUMPI
000026be: DUP1
000026bf: MLOAD
000026c0: DUP3
000026c1: MSTORE
000026c2: PUSH1 0x1f
000026c4: NOT
000026c5: SWAP1
000026c6: SWAP3
000026c7: ADD
000026c8: SWAP2
000026c9: PUSH1 0x20
000026cb: SWAP2
000026cc: DUP3
000026cd: ADD
000026ce: SWAP2
000026cf: ADD
000026d0: PUSH2 0x26b5
000026d3: JUMP
000026d4: JUMPDEST
000026d5: PUSH1 0x01
000026d7: DUP4
000026d8: PUSH1 0x20
000026da: SUB
000026db: PUSH2 0x0100
000026de: EXP
000026df: SUB
000026e0: DUP1
000026e1: NOT
000026e2: DUP3
000026e3: MLOAD
000026e4: AND
000026e5: DUP2
000026e6: DUP5
000026e7: MLOAD
000026e8: AND
000026e9: DUP1
000026ea: DUP3
000026eb: OR
000026ec: DUP6
000026ed: MSTORE
000026ee: POP
000026ef: POP
000026f0: POP
000026f1: POP
000026f2: POP
000026f3: POP
000026f4: SWAP1
000026f5: POP
000026f6: ADD
000026f7: SWAP2
000026f8: POP
000026f9: POP
000026fa: PUSH1 0x00
000026fc: PUSH1 0x40
000026fe: MLOAD
000026ff: DUP1
00002700: DUP4
00002701: SUB
00002702: DUP2
00002703: DUP6
00002704: DUP8
00002705: GAS
00002706: CALL
00002707: SWAP3
00002708: POP
00002709: POP
0000270a: POP
0000270b: RETURNDATASIZE
0000270c: DUP1
0000270d: PUSH1 0x00
0000270f: DUP2
00002710: EQ
00002711: PUSH2 0x2736
00002714: JUMPI
00002715: PUSH1 0x40
00002717: MLOAD
00002718: SWAP2
00002719: POP
0000271a: PUSH1 0x1f
0000271c: NOT
0000271d: PUSH1 0x3f
0000271f: RETURNDATASIZE
00002720: ADD
00002721: AND
00002722: DUP3
00002723: ADD
00002724: PUSH1 0x40
00002726: MSTORE
00002727: RETURNDATASIZE
00002728: DUP3
00002729: MSTORE
0000272a: RETURNDATASIZE
0000272b: PUSH1 0x00
0000272d: PUSH1 0x20
0000272f: DUP5
00002730: ADD
00002731: RETURNDATACOPY
00002732: PUSH2 0x273b
00002735: JUMP
00002736: JUMPDEST
00002737: PUSH1 0x60
00002739: SWAP2
0000273a: POP
0000273b: JUMPDEST
0000273c: POP
0000273d: SWAP2
0000273e: POP
0000273f: SWAP2
00002740: POP
00002741: PUSH2 0x274b
00002744: DUP3
00002745: DUP3
00002746: DUP7
00002747: PUSH2 0x275c
0000274a: JUMP
0000274b: JUMPDEST
0000274c: SWAP8
0000274d: SWAP7
0000274e: POP
0000274f: POP
00002750: POP
00002751: POP
00002752: POP
00002753: POP
00002754: POP
00002755: JUMP
00002756: JUMPDEST
00002757: EXTCODESIZE
00002758: ISZERO
00002759: ISZERO
0000275a: SWAP1
0000275b: JUMP
0000275c: JUMPDEST
0000275d: PUSH1 0x60
0000275f: DUP4
00002760: ISZERO
00002761: PUSH2 0x276b
00002764: JUMPI
00002765: POP
00002766: DUP2
00002767: PUSH2 0x0a3a
0000276a: JUMP
0000276b: JUMPDEST
0000276c: DUP3
0000276d: MLOAD
0000276e: ISZERO
0000276f: PUSH2 0x277b
00002772: JUMPI
00002773: DUP3
00002774: MLOAD
00002775: DUP1
00002776: DUP5
00002777: PUSH1 0x20
00002779: ADD
0000277a: REVERT
0000277b: JUMPDEST
0000277c: PUSH1 0x40
0000277e: MLOAD
0000277f: PUSH3 0x461bcd
00002783: PUSH1 0xe5
00002785: SHL
00002786: DUP2
00002787: MSTORE
00002788: PUSH1 0x20
0000278a: PUSH1 0x04
0000278c: DUP3
0000278d: ADD
0000278e: DUP2
0000278f: DUP2
00002790: MSTORE
00002791: DUP5
00002792: MLOAD
00002793: PUSH1 0x24
00002795: DUP5
00002796: ADD
00002797: MSTORE
00002798: DUP5
00002799: MLOAD
0000279a: DUP6
0000279b: SWAP4
0000279c: SWAP2
0000279d: SWAP3
0000279e: DUP4
0000279f: SWAP3
000027a0: PUSH1 0x44
000027a2: ADD
000027a3: SWAP2
000027a4: SWAP1
000027a5: DUP6
000027a6: ADD
000027a7: SWAP1
000027a8: DUP1
000027a9: DUP4
000027aa: DUP4
000027ab: PUSH1 0x00
000027ad: DUP4
000027ae: ISZERO
000027af: PUSH2 0x08fb
000027b2: JUMPI
000027b3: DUP2
000027b4: DUP2
000027b5: ADD
000027b6: MLOAD
000027b7: DUP4
000027b8: DUP3
000027b9: ADD
000027ba: MSTORE
000027bb: PUSH1 0x20
000027bd: ADD
000027be: PUSH2 0x08e3
000027c1: JUMP
000027c2: JUMPDEST
000027c3: DUP3
000027c4: DUP1
000027c5: SLOAD
000027c6: PUSH1 0x01
000027c8: DUP2
000027c9: PUSH1 0x01
000027cb: AND
000027cc: ISZERO
000027cd: PUSH2 0x0100
000027d0: MUL
000027d1: SUB
000027d2: AND
000027d3: PUSH1 0x02
000027d5: SWAP1
000027d6: DIV
000027d7: SWAP1
000027d8: PUSH1 0x00
000027da: MSTORE
000027db: PUSH1 0x20
000027dd: PUSH1 0x00
000027df: KECCAK256
000027e0: SWAP1
000027e1: PUSH1 0x1f
000027e3: ADD
000027e4: PUSH1 0x20
000027e6: SWAP1
000027e7: DIV
000027e8: DUP2
000027e9: ADD
000027ea: SWAP3
000027eb: DUP3
000027ec: PUSH2 0x27f8
000027ef: JUMPI
000027f0: PUSH1 0x00
000027f2: DUP6
000027f3: SSTORE
000027f4: PUSH2 0x283e
000027f7: JUMP
000027f8: JUMPDEST
000027f9: DUP3
000027fa: PUSH1 0x1f
000027fc: LT
000027fd: PUSH2 0x2811
00002800: JUMPI
00002801: DUP1
00002802: MLOAD
00002803: PUSH1 0xff
00002805: NOT
00002806: AND
00002807: DUP4
00002808: DUP1
00002809: ADD
0000280a: OR
0000280b: DUP6
0000280c: SSTORE
0000280d: PUSH2 0x283e
00002810: JUMP
00002811: JUMPDEST
00002812: DUP3
00002813: DUP1
00002814: ADD
00002815: PUSH1 0x01
00002817: ADD
00002818: DUP6
00002819: SSTORE
0000281a: DUP3
0000281b: ISZERO
0000281c: PUSH2 0x283e
0000281f: JUMPI
00002820: SWAP2
00002821: DUP3
00002822: ADD
00002823: JUMPDEST
00002824: DUP3
00002825: DUP2
00002826: GT
00002827: ISZERO
00002828: PUSH2 0x283e
0000282b: JUMPI
0000282c: DUP3
0000282d: MLOAD
0000282e: DUP3
0000282f: SSTORE
00002830: SWAP2
00002831: PUSH1 0x20
00002833: ADD
00002834: SWAP2
00002835: SWAP1
00002836: PUSH1 0x01
00002838: ADD
00002839: SWAP1
0000283a: PUSH2 0x2823
0000283d: JUMP
0000283e: JUMPDEST
0000283f: POP
00002840: PUSH2 0x284a
00002843: SWAP3
00002844: SWAP2
00002845: POP
00002846: PUSH2 0x284e
00002849: JUMP
0000284a: JUMPDEST
0000284b: POP
0000284c: SWAP1
0000284d: JUMP
0000284e: JUMPDEST
0000284f: JUMPDEST
00002850: DUP1
00002851: DUP3
00002852: GT
00002853: ISZERO
00002854: PUSH2 0x284a
00002857: JUMPI
00002858: PUSH1 0x00
0000285a: DUP2
0000285b: SSTORE
0000285c: PUSH1 0x01
0000285e: ADD
0000285f: PUSH2 0x284f
00002862: JUMP
00002863: INVALID
00002864: GASLIMIT
00002865: MSTORE
00002866: NUMBER
00002867: ORIGIN
00002868: ADDRESS
00002869: GASPRICE
0000286a: KECCAK256
0000286b: PUSH21 0x72616e7366657220746f20746865207a65726f2061
00002881: PUSH5 0x6472657373
00002887: GASLIMIT
00002888: MSTORE
00002889: NUMBER
0000288a: ORIGIN
0000288b: ADDRESS
0000288c: GASPRICE
0000288d: KECCAK256
0000288e: PUSH3 0x75726e
00002892: KECCAK256
00002893: PUSH2 0x6d6f
00002896: PUSH22 0x6e7420657863656564732062616c616e636545524332
000028ad: ADDRESS
000028ae: GASPRICE
000028af: KECCAK256
000028b0: PUSH2 0x7070
000028b3: PUSH19 0x6f766520746f20746865207a65726f20616464
000028c7: PUSH19 0x65737345524332303a207472616e7366657220
000028db: PUSH2 0x6d6f
000028de: PUSH22 0x6e7420657863656564732062616c616e636541646472
000028f5: PUSH6 0x73733a20696e
000028fc: PUSH20 0x756666696369656e742062616c616e636520666f
00002911: PUSH19 0x2063616c6c45524332303a207472616e736665
00002925: PUSH19 0x20616d6f756e74206578636565647320616c6c
00002939: PUSH16 0x77616e6365436f6e747261637420696e
0000294a: PUSH20 0x74616e63652068617320616c7265616479206265
0000295f: PUSH6 0x6e20696e6974
00002966: PUSH10 0x616c697a6564556e6465
00002971: PUSH19 0x6c79696e672061737365742063616e206e6f74
00002985: KECCAK256
00002986: PUSH3 0x65207a
0000298a: PUSH6 0x726f20616464
00002991: PUSH19 0x657373ddf252ad1be2c89b69c2b068fc378daa
000029a5: SWAP6
000029a6: UNKNOWN(0x2B)
000029a7: UNKNOWN(0xA7)
000029a8: CALL
000029a9: PUSH4 0xc4a11628
000029ae: CREATE2
000029af: GAS
000029b0: UNKNOWN(0x4D)
000029b1: CREATE2
000029b2: UNKNOWN(0x23)
000029b3: UNKNOWN(0xB3)
000029b4: UNKNOWN(0xEF)
000029b5: GASLIMIT
000029b6: MSTORE
000029b7: NUMBER
000029b8: ORIGIN
000029b9: ADDRESS
000029ba: GASPRICE
000029bb: KECCAK256
000029bc: PUSH3 0x75726e
000029c0: KECCAK256
000029c1: PUSH7 0x726f6d20746865
000029c9: KECCAK256
000029ca: PUSH27 0x65726f206164647265737345524332303a207472616e7366657220
000029e6: PUSH7 0x726f6d20746865
000029ee: KECCAK256
000029ef: PUSH27 0x65726f206164647265737345524332303a20617070726f76652066
00002a0b: PUSH19 0x6f6d20746865207a65726f2061646472657373
00002a1f: MSTORE8
00002a20: PUSH2 0x6665
00002a23: GASLIMIT
00002a24: MSTORE
00002a25: NUMBER
00002a26: ORIGIN
00002a27: ADDRESS
00002a28: GASPRICE
00002a29: KECCAK256
00002a2a: GASLIMIT
00002a2b: MSTORE
00002a2c: NUMBER
00002a2d: ORIGIN
00002a2e: ADDRESS
00002a2f: KECCAK256
00002a30: PUSH16 0x7065726174696f6e20646964206e6f74
00002a41: KECCAK256
00002a42: PUSH20 0x75636365656445524332303a2064656372656173
00002a57: PUSH6 0x6420616c6c6f
00002a5e: PUSH24 0x616e63652062656c6f77207a65726fa26469706673582212
00002a77: KECCAK256
00002a78: PUSH20 0x505c26059da335cd55bae0ff13590c23ee3f9359
00002a8d: UNKNOWN(0xC4)
00002a8e: SMOD
00002a8f: PUSH25

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xd505accf",
            "selector": "0xd505accf",
            "calldata_variants": [
                "0xd505accf",
                "0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7020d0a",
            "selector": "0xd7020d0a",
            "calldata_variants": [
                "0xd7020d0a",
                "0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf866c319",
            "selector": "0xf866c319",
            "calldata_variants": [
                "0xf866c319",
                "0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb16a19de",
            "selector": "0xb16a19de",
            "calldata_variants": [
                "0xb16a19de",
                "0xb16a19de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb1bf962d",
            "selector": "0xb1bf962d",
            "calldata_variants": [
                "0xb1bf962d",
                "0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb9844d8d",
            "selector": "0xb9844d8d",
            "calldata_variants": [
                "0xb9844d8d",
                "0xb9844d8d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc222ec8a",
            "selector": "0xc222ec8a",
            "calldata_variants": [
                "0xc222ec8a",
                "0xc222ec8a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 10343,
            "type": "tx_origin_used"
        },
        {
            "pc": 10378,
            "type": "tx_origin_used"
        },
        {
            "pc": 10680,
            "type": "tx_origin_used"
        },
        {
            "pc": 10790,
            "type": "tx_origin_used"
        },
        {
            "pc": 10797,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x70fcac2c1751d14aaa8a53ab47cb2562c5db1d18d07fc3eeae8d2b9008e22781
call_targets: 0x850e6306c2777e1a66b66680c7999240e7d312bf
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x70fcac2c1751d14aaa8a53ab47cb2562c5db1d18d07fc3eeae8d2b9008e22781",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x850e6306c2777e1a66b66680c7999240e7d312bf"
    ],
    "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": "0xd505accf",
            "selector": "0xd505accf",
            "calldata_variants": [
                "0xd505accf",
                "0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7020d0a",
            "selector": "0xd7020d0a",
            "calldata_variants": [
                "0xd7020d0a",
                "0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf866c319",
            "selector": "0xf866c319",
            "calldata_variants": [
                "0xf866c319",
                "0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb16a19de",
            "selector": "0xb16a19de",
            "calldata_variants": [
                "0xb16a19de",
                "0xb16a19de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb1bf962d",
            "selector": "0xb1bf962d",
            "calldata_variants": [
                "0xb1bf962d",
                "0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb9844d8d",
            "selector": "0xb9844d8d",
            "calldata_variants": [
                "0xb9844d8d",
                "0xb9844d8d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc222ec8a",
            "selector": "0xc222ec8a",
            "calldata_variants": [
                "0xc222ec8a",
                "0xc222ec8a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7417,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8699,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9518,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 6,
    "guards_detected": [
        {
            "pc": 10343,
            "type": "tx_origin_used"
        },
        {
            "pc": 10378,
            "type": "tx_origin_used"
        },
        {
            "pc": 10680,
            "type": "tx_origin_used"
        },
        {
            "pc": 10790,
            "type": "tx_origin_used"
        },
        {
            "pc": 10797,
            "type": "tx_origin_used"
        }
    ]
}
medium upgradeability codex Unprotected initializer allows takeover of uninitialized proxy or post-upgrade reinitialization 75 no
view
evidence_json
{
    "evidence": "`AToken.initialize` is `external` and only guarded by the `initializer` modifier; `VersionedInitializable` enforces revision ordering but does not restrict who can call the initializer.",
    "locations": [
        "contracts/contracts/protocol/tokenization/AToken.sol:69",
        "contracts/contracts/protocol/libraries/aave-upgradeability/VersionedInitializable.sol:32"
    ],
    "recommendation": "Restrict `initialize` to a trusted admin (e.g., pool configurator/addresses provider) and invoke it atomically via `upgradeToAndCall` during deployment/upgrades. Consider adding an implementation-side initializer lock (e.g., OZ\u2019s `_disableInitializers`) to prevent initializing the logic contract directly.",
    "exploit_scenario": "If a proxy is deployed without calling `initialize` in the same transaction (or an upgrade introduces a new revision), any external account can call `initialize` first and set `_pool`, `_treasury`, and `_underlyingAsset` to attacker-controlled values. That lets the attacker become the `onlyLendingPool` and mint/burn aTokens or call `transferUnderlyingTo`, potentially draining any underlying held by the token contract and permanently breaking the intended pool integration."
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x8bffc655cec688e6fd25309af199eb27715768da690baf1a6a18dabc0d33d9f2
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x8bffc655cec688e6fd25309af199eb27715768da690baf1a6a18dabc0d33d9f2",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xd505accf",
            "selector": "0xd505accf",
            "calldata_variants": [
                "0xd505accf",
                "0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7020d0a",
            "selector": "0xd7020d0a",
            "calldata_variants": [
                "0xd7020d0a",
                "0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf866c319",
            "selector": "0xf866c319",
            "calldata_variants": [
                "0xf866c319",
                "0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb16a19de",
            "selector": "0xb16a19de",
            "calldata_variants": [
                "0xb16a19de",
                "0xb16a19de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb1bf962d",
            "selector": "0xb1bf962d",
            "calldata_variants": [
                "0xb1bf962d",
                "0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb9844d8d",
            "selector": "0xb9844d8d",
            "calldata_variants": [
                "0xb9844d8d",
                "0xb9844d8d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc222ec8a",
            "selector": "0xc222ec8a",
            "calldata_variants": [
                "0xc222ec8a",
                "0xc222ec8a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 0,
    "create2_count": 2
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x70fcac2c1751d14aaa8a53ab47cb2562c5db1d18d07fc3eeae8d2b9008e22781
call_targets: 0x850e6306c2777e1a66b66680c7999240e7d312bf
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x70fcac2c1751d14aaa8a53ab47cb2562c5db1d18d07fc3eeae8d2b9008e22781",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x850e6306c2777e1a66b66680c7999240e7d312bf"
    ],
    "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": "0xd505accf",
            "selector": "0xd505accf",
            "calldata_variants": [
                "0xd505accf",
                "0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7020d0a",
            "selector": "0xd7020d0a",
            "calldata_variants": [
                "0xd7020d0a",
                "0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf866c319",
            "selector": "0xf866c319",
            "calldata_variants": [
                "0xf866c319",
                "0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb16a19de",
            "selector": "0xb16a19de",
            "calldata_variants": [
                "0xb16a19de",
                "0xb16a19de0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb1bf962d",
            "selector": "0xb1bf962d",
            "calldata_variants": [
                "0xb1bf962d",
                "0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb9844d8d",
            "selector": "0xb9844d8d",
            "calldata_variants": [
                "0xb9844d8d",
                "0xb9844d8d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc222ec8a",
            "selector": "0xc222ec8a",
            "calldata_variants": [
                "0xc222ec8a",
                "0xc222ec8a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7417,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 8699,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 9518,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 6,
    "guards_detected": [
        {
            "pc": 10343,
            "type": "tx_origin_used"
        },
        {
            "pc": 10378,
            "type": "tx_origin_used"
        },
        {
            "pc": 10680,
            "type": "tx_origin_used"
        },
        {
            "pc": 10790,
            "type": "tx_origin_used"
        },
        {
            "pc": 10797,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 5
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 0,
    "create2_count": 2
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 12
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 11
}