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

Analysis Run

1dde14e9-bcb7-465f-803b-2ce787c6e2d9

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

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
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
30873 report.consolidate complete 1 / 1 3 months ago
94249 artifact.fetch complete 1 / 3 1 week ago
94250 tool.cast_disasm complete 1 / 3 1 week ago
94251 analysis.bundle complete 1 / 3 1 week ago
94252 capability.graph complete 1 / 3 1 week ago
94253 detector.run complete 1 / 3 1 week ago
94254 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 high-severity issue: public initializer lets an attacker set the treasury and capture fee mints if an instance is exposed before the pool initializes it.
View stderr
[codex:1398017] OpenAI Codex v0.77.0 (research preview)
[codex:1398017] --------
[codex:1398017] workdir: /tmp/codex-multi-ouv01dyr
[codex:1398017] model: gpt-5.2-codex
[codex:1398017] provider: openai
[codex:1398017] approval: never
[codex:1398017] sandbox: read-only
[codex:1398017] reasoning effort: xhigh
[codex:1398017] reasoning summaries: auto
[codex:1398017] session id: 019b7570-0edd-72a2-8898-64ce3e4bec7b
[codex:1398017] --------
[codex:1398017] user
[codex:1398017] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1398017] 
[codex:1398017] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1398017] 
[codex:1398017] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1398017] - Gas inefficiency, code quality, naming, or best practices
[codex:1398017] - Theoretical vulnerabilities without a clear extraction path
[codex:1398017] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1398017] - Front-running unless it enables theft beyond MEV
[codex:1398017] - DoS, griefing, or issues that don't result in attacker profit
[codex:1398017] - Missing events, view function issues, or informational findings
[codex:1398017] 
[codex:1398017] HIGH-VALUE PATTERNS TO HUNT:
[codex:1398017] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1398017] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1398017] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1398017] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1398017] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1398017] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1398017] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1398017] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1398017] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1398017] 
[codex:1398017] For each finding, you MUST provide:
[codex:1398017] 1. Exact file and line numbers of vulnerable code
[codex:1398017] 2. Step-by-step exploit transaction sequence
[codex:1398017] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1398017] 
[codex:1398017] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1398017] 
[codex:1398017] Output MUST be valid JSON matching the provided schema.
[codex:1398017] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1398017] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1398017] mcp startup: no servers
[codex:1398017] 
[codex:1398017] thinking
[codex:1398017] **Preparing to inspect skills and audit files**
[codex:1398017] exec
[codex:1398017] /bin/bash -lc 'rg --files' in /tmp/codex-multi-ouv01dyr succeeded in 10ms:
[codex:1398017] codex-output-schema.json
[codex:1398017] AUDIT_BUNDLE.txt
[codex:1398017] contracts/src/contracts/interfaces/IPoolAddressesProvider.sol
[codex:1398017] contracts/src/contracts/interfaces/IAaveIncentivesController.sol
[codex:1398017] contracts/src/contracts/interfaces/IACLManager.sol
[codex:1398017] contracts/src/contracts/interfaces/IPool.sol
[codex:1398017] contracts/src/contracts/interfaces/IAToken.sol
[codex:1398017] contracts/src/contracts/interfaces/IScaledBalanceToken.sol
[codex:1398017] contracts/src/contracts/interfaces/IInitializableAToken.sol
[codex:1398017] contracts/src/contracts/instances/ATokenInstance.sol
[codex:1398017] contracts/src/contracts/protocol/libraries/math/WadRayMath.sol
[codex:1398017] contracts/src/contracts/protocol/libraries/helpers/Errors.sol
[codex:1398017] contracts/src/contracts/protocol/tokenization/AToken.sol
[codex:1398017] contracts/src/contracts/misc/aave-upgradeability/VersionedInitializable.sol
[codex:1398017] contracts/src/contracts/protocol/libraries/types/DataTypes.sol
[codex:1398017] contracts/src/contracts/dependencies/openzeppelin/contracts/SafeCast.sol
[codex:1398017] contracts/src/contracts/dependencies/openzeppelin/contracts/Context.sol
[codex:1398017] contracts/src/contracts/dependencies/openzeppelin/contracts/IERC20.sol
[codex:1398017] contracts/src/contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol
[codex:1398017] contracts/src/contracts/protocol/tokenization/base/EIP712Base.sol
[codex:1398017] 
[codex:1398017] thinking
[codex:1398017] **Opening AUDIT_BUNDLE.txt**
[codex:1398017] exec
[codex:1398017] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-ouv01dyr succeeded in 5ms:
[codex:1398017] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1398017] 
[codex:1398017] ================================================================================
[codex:1398017] FILE: contracts/src/contracts/dependencies/gnosis/contracts/GPv2SafeERC20.sol
[codex:1398017] ================================================================================
[codex:1398017] // SPDX-License-Identifier: LGPL-3.0-or-later
[codex:1398017] pragma solidity ^0.8.10;
[codex:1398017] 
[codex:1398017] import {IERC20} from '../../openzeppelin/contracts/IERC20.sol';
[codex:1398017] 
[codex:1398017] /// @title Gnosis Protocol v2 Safe ERC20 Transfer Library
[codex:1398017] /// @author Gnosis Developers
[codex:1398017] /// @dev Gas-efficient version of Openzeppelin's SafeERC20 contract.
[codex:1398017] library GPv2SafeERC20 {
[codex:1398017]   /// @dev Wrapper around a call to the ERC20 function `transfer` that reverts
[codex:1398017]   /// also when the token returns `false`.
[codex:1398017]   function safeTransfer(IERC20 token, address to, uint256 value) internal {
[codex:1398017]     bytes4 selector_ = token.transfer.selector;
[codex:1398017] 
[codex:1398017]     // solhint-disable-next-line no-inline-assembly
[codex:1398017] 
[codex:1398017] thinking
[codex:1398017] **Inspecting AToken for vulnerabilities**
[codex:1398017] exec
[codex:1398017] /bin/bash -lc 'rg -n "contract AToken|function" contracts/src/contracts/protocol/tokenization/AToken.sol' in /tmp/codex-multi-ouv01dyr succeeded in 8ms:
[codex:1398017] 23:abstract contract AToken is VersionedInitializable, ScaledBalanceTokenBase, EIP712Base, IAToken {
[codex:1398017] 45:  function initialize(
[codex:1398017] 57:  function mint(
[codex:1398017] 67:  function burn(
[codex:1398017] 80:  function mintToTreasury(uint256 amount, uint256 index) external virtual override onlyPool {
[codex:1398017] 88:  function transferOnLiquidation(
[codex:1398017] 99:  function balanceOf(
[codex:1398017] 106:  function totalSupply() public view virtual override(IncentivizedERC20, IERC20) returns (uint256) {
[codex:1398017] 117:  function RESERVE_TREASURY_ADDRESS() external view override returns (address) {
[codex:1398017] 122:  function UNDERLYING_ASSET_ADDRESS() external view override returns (address) {
[codex:1398017] 127:  function transferUnderlyingTo(address target, uint256 amount) external virtual override onlyPool {
[codex:1398017] 132:  function handleRepayment(
[codex:1398017] 141:  function permit(
[codex:1398017] 174:  function _transfer(address from, address to, uint256 amount, bool validate) internal virtual {
[codex:1398017] 197:  function _transfer(address from, address to, uint128 amount) internal virtual override {
[codex:1398017] 202:   * @dev Overrides the base function to fully implement IAToken
[codex:1398017] 205:  function DOMAIN_SEPARATOR() public view override(IAToken, EIP712Base) returns (bytes32) {
[codex:1398017] 210:   * @dev Overrides the base function to fully implement IAToken
[codex:1398017] 213:  function nonces(address owner) public view override(IAToken, EIP712Base) returns (uint256) {
[codex:1398017] 218:  function _EIP712BaseId() internal view override returns (string memory) {
[codex:1398017] exec
[codex:1398017] /bin/bash -lc "sed -n '1,260p' contracts/src/contracts/protocol/tokenization/AToken.sol" in /tmp/codex-multi-ouv01dyr succeeded in 5ms:
[codex:1398017] // SPDX-License-Identifier: BUSL-1.1
[codex:1398017] pragma solidity ^0.8.10;
[codex:1398017] 
[codex:1398017] import {IERC20} from '../../dependencies/openzeppelin/contracts/IERC20.sol';
[codex:1398017] import {GPv2SafeERC20} from '../../dependencies/gnosis/contracts/GPv2SafeERC20.sol';
[codex:1398017] import {SafeCast} from '../../dependencies/openzeppelin/contracts/SafeCast.sol';
[codex:1398017] import {VersionedInitializable} from '../../misc/aave-upgradeability/VersionedInitializable.sol';
[codex:1398017] import {Errors} from '../libraries/helpers/Errors.sol';
[codex:1398017] import {WadRayMath} from '../libraries/math/WadRayMath.sol';
[codex:1398017] import {IPool} from '../../interfaces/IPool.sol';
[codex:1398017] import {IAToken} from '../../interfaces/IAToken.sol';
[codex:1398017] import {IAaveIncentivesController} from '../../interfaces/IAaveIncentivesController.sol';
[codex:1398017] import {IInitializableAToken} from '../../interfaces/IInitializableAToken.sol';
[codex:1398017] import {ScaledBalanceTokenBase} from './base/ScaledBalanceTokenBase.sol';
[codex:1398017] import {IncentivizedERC20} from './base/IncentivizedERC20.sol';
[codex:1398017] import {EIP712Base} from './base/EIP712Base.sol';
[codex:1398017] 
[codex:1398017] /**
[codex:1398017]  * @title Aave ERC20 AToken
[codex:1398017]  * @author Aave
[codex:1398017] 
[codex:1398017] thinking
[codex:1398017] **Inspecting Aave AToken initialization**
[codex:1398017] exec
[codex:1398017] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/misc/aave-upgradeability/VersionedInitializable.sol" in /tmp/codex-multi-ouv01dyr succeeded in 7ms:
[codex:1398017] // SPDX-License-Identifier: MIT
[codex:1398017] pragma solidity ^0.8.10;
[codex:1398017] 
[codex:1398017] /**
[codex:1398017]  * @title VersionedInitializable
[codex:1398017]  * @author Aave, inspired by the OpenZeppelin Initializable contract
[codex:1398017]  * @notice Helper contract to implement initializer functions. To use it, replace
[codex:1398017]  * the constructor with a function that has the `initializer` modifier.
[codex:1398017]  * @dev WARNING: Unlike constructors, initializer functions must be manually
[codex:1398017]  * invoked. This applies both to deploying an Initializable contract, as well
[codex:1398017]  * as extending an Initializable contract via inheritance.
[codex:1398017]  * WARNING: When used with inheritance, manual care must be taken to not invoke
[codex:1398017]  * a parent initializer twice, or ensure that all initializers are idempotent,
[codex:1398017]  * because this is not dealt with automatically as with constructors.
[codex:1398017]  */
[codex:1398017] abstract contract VersionedInitializable {
[codex:1398017]   /**
[codex:1398017]    * @dev Indicates that the contract has been initialized.
[codex:1398017]    */
[codex:1398017]   uint256 private lastInitializedRevision = 0;
[codex:1398017] 
[codex:1398017] thinking
[codex:1398017] **Analyzing potential initialize vulnerabilities**
[codex:1398017] exec
[codex:1398017] /bin/bash -lc "sed -n '1,220p' contracts/src/contracts/interfaces/IAToken.sol" in /tmp/codex-multi-ouv01dyr succeeded in 9ms:
[codex:1398017] // SPDX-License-Identifier: MIT
[codex:1398017] pragma solidity ^0.8.0;
[codex:1398017] 
[codex:1398017] import {IERC20} from '../dependencies/openzeppelin/contracts/IERC20.sol';
[codex:1398017] import {IScaledBalanceToken} from './IScaledBalanceToken.sol';
[codex:1398017] import {IInitializableAToken} from './IInitializableAToken.sol';
[codex:1398017] 
[codex:1398017] /**
[codex:1398017]  * @title IAToken
[codex:1398017]  * @author Aave
[codex:1398017]  * @notice Defines the basic interface for an AToken.
[codex:1398017]  */
[codex:1398017] interface IAToken is IERC20, IScaledBalanceToken, IInitializableAToken {
[codex:1398017]   /**
[codex:1398017]    * @dev Emitted during the transfer action
[codex:1398017]    * @param from The user whose tokens are being transferred
[codex:1398017]    * @param to The recipient
[codex:1398017]    * @param value The scaled amount being transferred
[codex:1398017]    * @param index The next liquidity index of the reserve
[codex:1398017]    */
[codex:1398017] 
[codex:1398017] thinking
[codex:1398017] **Inspecting IPool interface**
[codex:1398017] exec
[codex:1398017] /bin/bash -lc "sed -n '1,260p' contracts/src/contracts/interfaces/IPool.sol" in /tmp/codex-multi-ouv01dyr succeeded in 5ms:
[codex:1398017] // SPDX-License-Identifier: MIT
[codex:1398017] pragma solidity ^0.8.0;
[codex:1398017] 
[codex:1398017] import {IPoolAddressesProvider} from './IPoolAddressesProvider.sol';
[codex:1398017] import {DataTypes} from '../protocol/libraries/types/DataTypes.sol';
[codex:1398017] 
[codex:1398017] /**
[codex:1398017]  * @title IPool
[codex:1398017]  * @author Aave
[codex:1398017]  * @notice Defines the basic interface for an Aave Pool.
[codex:1398017]  */
[codex:1398017] interface IPool {
[codex:1398017]   /**
[codex:1398017]    * @dev Emitted on mintUnbacked()
[codex:1398017]    * @param reserve The address of the underlying asset of the reserve
[codex:1398017]    * @param user The address initiating the supply
[codex:1398017]    * @param onBehalfOf The beneficiary of the supplied assets, receiving the aTokens
[codex:1398017]    * @param amount The amount of supplied assets
[codex:1398017]    * @param referralCode The referral code used
[codex:1398017]    */
[codex:1398017] 
[codex:1398017] 
[codex:1398017] thinking
[codex:1398017] **Analyzing AToken initialization risks**
[codex:1398017] thinking
[codex:1398017] **Evaluating initialization exploit conditions**
[codex:1398017] 
[codex:1398017] I'll outline a step-by-step exploit if initialization isn’t atomic with deployment, highlighting how an attacker could front-run and set the treasury to themselves if a new ATokenInstance remains uninitialized and publicly callable. I’m also shifting focus to examine potential rounding or casting vulnerabilities in balance calculations next.
[codex:1398017] exec
[codex:1398017] /bin/bash -lc "sed -n '1,240p' contracts/src/contracts/protocol/libraries/math/WadRayMath.sol" in /tmp/codex-multi-ouv01dyr succeeded in 7ms:
[codex:1398017] // SPDX-License-Identifier: BUSL-1.1
[codex:1398017] pragma solidity ^0.8.0;
[codex:1398017] 
[codex:1398017] /**
[codex:1398017]  * @title WadRayMath library
[codex:1398017]  * @author Aave
[codex:1398017]  * @notice Provides functions to perform calculations with Wad and Ray units
[codex:1398017]  * @dev Provides mul and div function for wads (decimal numbers with 18 digits of precision) and rays (decimal numbers
[codex:1398017]  * with 27 digits of precision)
[codex:1398017]  * @dev Operations are rounded. If a value is >=.5, will be rounded up, otherwise rounded down.
[codex:1398017]  */
[codex:1398017] library WadRayMath {
[codex:1398017]   // HALF_WAD and HALF_RAY expressed with extended notation as constant with operations are not supported in Yul assembly
[codex:1398017]   uint256 internal constant WAD = 1e18;
[codex:1398017]   uint256 internal constant HALF_WAD = 0.5e18;
[codex:1398017] 
[codex:1398017]   uint256 internal constant RAY = 1e27;
[codex:1398017]   uint256 internal constant HALF_RAY = 0.5e27;
[codex:1398017] 
[codex:1398017]   uint256 internal constant WAD_RAY_RATIO = 1e9;
[codex:1398017] 
[codex:1398017] 
[codex:1398017] thinking
[codex:1398017] **Analyzing potential rounding vulnerabilities in scaled balances**
[codex:1398017] 
[codex:1398017] I'm carefully examining how rounding in rayDiv and rayMul during minting, transferring, and burning scaled token balances could cause small value inflation or exploitation, especially when index values exceed 1e27, potentially allowing tiny but repeated profit through off-by-one rounding effects.
[codex:1398017] thinking
[codex:1398017] **Evaluating rounding arbitrage limits and unprotected initialization risks**
[codex:1398017] 
[codex:1398017] I'm exploring how rounding effects create a small but repeatable profit margin limited by token decimals and transaction costs, while also noting the public initialize function with insufficient access control could pose a significant risk if misused.
[codex:1398017] exec
[codex:1398017] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/interfaces/IInitializableAToken.sol" in /tmp/codex-multi-ouv01dyr succeeded in 7ms:
[codex:1398017] // SPDX-License-Identifier: MIT
[codex:1398017] pragma solidity ^0.8.0;
[codex:1398017] 
[codex:1398017] import {IAaveIncentivesController} from './IAaveIncentivesController.sol';
[codex:1398017] import {IPool} from './IPool.sol';
[codex:1398017] 
[codex:1398017] /**
[codex:1398017]  * @title IInitializableAToken
[codex:1398017]  * @author Aave
[codex:1398017]  * @notice Interface for the initialize function on AToken
[codex:1398017]  */
[codex:1398017] interface IInitializableAToken {
[codex:1398017]   /**
[codex:1398017]    * @dev Emitted when an aToken is initialized
[codex:1398017]    * @param underlyingAsset The address of the underlying asset
[codex:1398017]    * @param pool The address of the associated pool
[codex:1398017]    * @param treasury The address of the treasury
[codex:1398017]    * @param incentivesController The address of the incentives controller for this aToken
[codex:1398017]    * @param aTokenDecimals The decimals of the underlying
[codex:1398017]    * @param aTokenName The name of the aToken
[codex:1398017] 
[codex:1398017] thinking
[codex:1398017] **Evaluating potential vulnerabilities and reviewing other files**
[codex:1398017] exec
[codex:1398017] /bin/bash -lc "sed -n '1,240p' contracts/src/contracts/protocol/libraries/helpers/Errors.sol" in /tmp/codex-multi-ouv01dyr succeeded in 5ms:
[codex:1398017] // SPDX-License-Identifier: MIT
[codex:1398017] pragma solidity ^0.8.0;
[codex:1398017] 
[codex:1398017] /**
[codex:1398017]  * @title Errors library
[codex:1398017]  * @author Aave
[codex:1398017]  * @notice Defines the error messages emitted by the different contracts of the Aave protocol
[codex:1398017]  */
[codex:1398017] library Errors {
[codex:1398017]   string public constant CALLER_NOT_POOL_ADMIN = '1'; // 'The caller of the function is not a pool admin'
[codex:1398017]   string public constant CALLER_NOT_EMERGENCY_ADMIN = '2'; // 'The caller of the function is not an emergency admin'
[codex:1398017]   string public constant CALLER_NOT_POOL_OR_EMERGENCY_ADMIN = '3'; // 'The caller of the function is not a pool or emergency admin'
[codex:1398017]   string public constant CALLER_NOT_RISK_OR_POOL_ADMIN = '4'; // 'The caller of the function is not a risk or pool admin'
[codex:1398017]   string public constant CALLER_NOT_ASSET_LISTING_OR_POOL_ADMIN = '5'; // 'The caller of the function is not an asset listing or pool admin'
[codex:1398017]   string public constant CALLER_NOT_BRIDGE = '6'; // 'The caller of the function is not a bridge'
[codex:1398017]   string public constant ADDRESSES_PROVIDER_NOT_REGISTERED = '7'; // 'Pool addresses provider is not registered'
[codex:1398017]   string public constant INVALID_ADDRESSES_PROVIDER_ID = '8'; // 'Invalid id for the pool addresses provider'
[codex:1398017]   string public constant NOT_CONTRACT = '9'; // 'Address is not a contract'
[codex:1398017]   string public constant CALLER_NOT_POOL_CONFIGURATOR = '10'; // 'The caller of the function is not the pool configurator'
[codex:1398017]   string public constant CALLER_NOT_ATOKEN = '11'; // 'The caller of the function is not an AToken'
[codex:1398017] 
[codex:1398017] thinking
[codex:1398017] **Checking ATokenInstance initialize method with line numbers**
[codex:1398017] exec
[codex:1398017] /bin/bash -lc "nl -ba contracts/src/contracts/instances/ATokenInstance.sol | sed -n '1,200p'" in /tmp/codex-multi-ouv01dyr succeeded in 6ms:
[codex:1398017]      1	// SPDX-License-Identifier: BUSL-1.1
[codex:1398017]      2	pragma solidity ^0.8.0;
[codex:1398017]      3	
[codex:1398017]      4	import {AToken, IPool, IAaveIncentivesController, IInitializableAToken, Errors, VersionedInitializable} from '../protocol/tokenization/AToken.sol';
[codex:1398017]      5	
[codex:1398017]      6	contract ATokenInstance is AToken {
[codex:1398017]      7	  uint256 public constant ATOKEN_REVISION = 2;
[codex:1398017]      8	
[codex:1398017]      9	  constructor(IPool pool) AToken(pool) {}
[codex:1398017]     10	
[codex:1398017]     11	  /// @inheritdoc VersionedInitializable
[codex:1398017]     12	  function getRevision() internal pure virtual override returns (uint256) {
[codex:1398017]     13	    return ATOKEN_REVISION;
[codex:1398017]     14	  }
[codex:1398017]     15	
[codex:1398017]     16	  /// @inheritdoc IInitializableAToken
[codex:1398017]     17	  function initialize(
[codex:1398017]     18	    IPool initializingPool,
[codex:1398017]     19	    address treasury,
[codex:1398017]     20	    address underlyingAsset,
[codex:1398017] 
[codex:1398017] thinking
[codex:1398017] **Analyzing unprotected initialization exploit scenario**
[codex:1398017] 
[codex:1398017] I'm examining if an unprotected `initialize` function in `ATokenInstance` could let an attacker hijack the treasury address to siphon protocol fees. The key hinge is whether any uninitialized token instances exist and if initialization happens in separate transactions, allowing a front-running attacker to set themselves as treasury and profit by redeeming accrued fees. I'll summarize a step-by-step exploit path, review code for proper access control, and assess if this is a concrete profit-extracting vulnerability worth reporting.
[codex:1398017] exec
[codex:1398017] /bin/bash -lc "nl -ba contracts/src/contracts/protocol/tokenization/AToken.sol | sed -n '60,140p'" in /tmp/codex-multi-ouv01dyr succeeded in 6ms:
[codex:1398017]     60	    uint256 amount,
[codex:1398017]     61	    uint256 index
[codex:1398017]     62	  ) public virtual override onlyPool returns (bool) {
[codex:1398017]     63	    return _mintScaled(caller, onBehalfOf, amount, index);
[codex:1398017]     64	  }
[codex:1398017]     65	
[codex:1398017]     66	  /// @inheritdoc IAToken
[codex:1398017]     67	  function burn(
[codex:1398017]     68	    address from,
[codex:1398017]     69	    address receiverOfUnderlying,
[codex:1398017]     70	    uint256 amount,
[codex:1398017]     71	    uint256 index
[codex:1398017]     72	  ) external virtual override onlyPool {
[codex:1398017]     73	    _burnScaled(from, receiverOfUnderlying, amount, index);
[codex:1398017]     74	    if (receiverOfUnderlying != address(this)) {
[codex:1398017]     75	      IERC20(_underlyingAsset).safeTransfer(receiverOfUnderlying, amount);
[codex:1398017]     76	    }
[codex:1398017]     77	  }
[codex:1398017]     78	
[codex:1398017]     79	  /// @inheritdoc IAToken
[codex:1398017] 
[codex:1398017] thinking
[codex:1398017] **Preparing detailed vulnerability report**
[codex:1398017] 
[codex:1398017] I'm gathering exact file paths and line numbers for the vulnerable `initialize` function and related profit path in `mintToTreasury`. I'll outline a step-by-step exploit scenario showing how an attacker can hijack the treasury, assign severity as high given the impact, and pick "upgradeability" as the category considering the unprotected initializer. I'm also figuring out how to suggest recommendations like access control gating while confirming adherence to the codex output schema for the final JSON.
[codex:1398017] exec
[codex:1398017] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-ouv01dyr succeeded in 6ms:
[codex:1398017] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:1398017] 
[codex:1398017] thinking
[codex:1398017] **Preparing detailed audit report JSON**
[codex:1398017] codex
[codex:1398017] {"no_findings":false,"summary":"1 high-severity issue: public initializer lets an attacker set the treasury and capture fee mints if an instance is exposed before the pool initializes it.","findings":[{"severity":"high","category":"upgradeability","title":"Unprotected initialize enables treasury hijack on uninitialized ATokenInstance","exploit_scenario":"1) Monitor for a newly deployed ATokenInstance (or proxy) that has not yet been initialized by the pool. 2) Front-run the pool’s intended initialize call by calling initialize yourself with initializingPool set to the correct POOL and all expected params, but set treasury to the attacker address. 3) The call succeeds because initialize has no caller auth and only checks the initializingPool parameter. 4) The pool later uses mintToTreasury to mint protocol fees to the attacker-controlled treasury; attacker redeems those aTokens for underlying. Profit potential: ongoing protocol fee stream for that reserve (order-of-magnitude: treasury share of interest on the reserve, potentially a significant portion of reserve balances over time).","recommendation":"Require msg.sender to be the POOL (or an authorized configurator) in initialize, or ensure deployment initializes atomically (e.g., constructor/creation calldata) so no external party can call initialize first.","evidence":"ATokenInstance.initialize is public and only checks initializingPool == POOL, then sets _treasury and other critical parameters without any caller authentication. mintToTreasury later mints fees to _treasury.","locations":["contracts/src/contracts/instances/ATokenInstance.sol:17","contracts/src/contracts/instances/ATokenInstance.sol:27","contracts/src/contracts/instances/ATokenInstance.sol:32","contracts/src/contracts/protocol/tokenization/AToken.sol:80"]}]}
[codex:1398017] tokens used
[codex:1398017] 46,975
[codex:1398017] {"no_findings":false,"summary":"1 high-severity issue: public initializer lets an attacker set the treasury and capture fee mints if an instance is exposed before the pool initializes it.","findings":[{"severity":"high","category":"upgradeability","title":"Unprotected initialize enables treasury hijack on uninitialized ATokenInstance","exploit_scenario":"1) Monitor for a newly deployed ATokenInstance (or proxy) that has not yet been initialized by the pool. 2) Front-run the pool’s intended initialize call by calling initialize yourself with initializingPool set to the correct POOL and all expected params, but set treasury to the attacker address. 3) The call succeeds because initialize has no caller auth and only checks the initializingPool parameter. 4) The pool later uses mintToTreasury to mint protocol fees to the attacker-controlled treasury; attacker redeems those aTokens for underlying. Profit potential: ongoing protocol fee stream for that reserve (order-of-magnitude: treasury share of interest on the reserve, potentially a significant portion of reserve balances over time).","recommendation":"Require msg.sender to be the POOL (or an authorized configurator) in initialize, or ensure deployment initializes atomically (e.g., constructor/creation calldata) so no external party can call initialize first.","evidence":"ATokenInstance.initialize is public and only checks initializingPool == POOL, then sets _treasury and other critical parameters without any caller authentication. mintToTreasury later mints fees to _treasury.","locations":["contracts/src/contracts/instances/ATokenInstance.sol:17","contracts/src/contracts/instances/ATokenInstance.sol:27","contracts/src/contracts/instances/ATokenInstance.sol:32","contracts/src/contracts/protocol/tokenization/AToken.sol:80"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-31T17:29:29.419258+00:00",
        "returncode": 0
    },
    "summary": "1 high-severity issue: public initializer lets an attacker set the treasury and capture fee mints if an instance is exposed before the pool initializes it.",
    "raw_final": {
        "summary": "1 high-severity issue: public initializer lets an attacker set the treasury and capture fee mints if an instance is exposed before the pool initializes it.",
        "findings": [
            {
                "title": "Unprotected initialize enables treasury hijack on uninitialized ATokenInstance",
                "category": "upgradeability",
                "evidence": "ATokenInstance.initialize is public and only checks initializingPool == POOL, then sets _treasury and other critical parameters without any caller authentication. mintToTreasury later mints fees to _treasury.",
                "severity": "high",
                "locations": [
                    "contracts/src/contracts/instances/ATokenInstance.sol:17",
                    "contracts/src/contracts/instances/ATokenInstance.sol:27",
                    "contracts/src/contracts/instances/ATokenInstance.sol:32",
                    "contracts/src/contracts/protocol/tokenization/AToken.sol:80"
                ],
                "recommendation": "Require msg.sender to be the POOL (or an authorized configurator) in initialize, or ensure deployment initializes atomically (e.g., constructor/creation calldata) so no external party can call initialize first.",
                "exploit_scenario": "1) Monitor for a newly deployed ATokenInstance (or proxy) that has not yet been initialized by the pool. 2) Front-run the pool\u2019s intended initialize call by calling initialize yourself with initializingPool set to the correct POOL and all expected params, but set treasury to the attacker address. 3) The call succeeds because initialize has no caller auth and only checks the initializingPool parameter. 4) The pool later uses mintToTreasury to mint protocol fees to the attacker-controlled treasury; attacker redeems those aTokens for underlying. Profit potential: ongoing protocol fee stream for that reserve (order-of-magnitude: treasury share of interest on the reserve, potentially a significant portion of reserve balances over time)."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
2
CALL-family (heavy)
13
EXT*/BALANCE
6
Total opcodes
6604
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 0x000f
0000000b: JUMPI
0000000c: PUSH0
0000000d: DUP1
0000000e: REVERT
0000000f: JUMPDEST
00000010: POP
00000011: PUSH1 0x04
00000013: CALLDATASIZE
00000014: LT
00000015: PUSH2 0x01fd
00000018: JUMPI
00000019: PUSH0
0000001a: CALLDATALOAD
0000001b: PUSH1 0xe0
0000001d: SHR
0000001e: DUP1
0000001f: PUSH4 0x78160376
00000024: GT
00000025: PUSH2 0x0114
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xb1bf962d
0000002f: GT
00000030: PUSH2 0x00a9
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xd7020d0a
0000003a: GT
0000003b: PUSH2 0x0079
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xd7020d0a
00000045: EQ
00000046: PUSH2 0x047f
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xdd62ed3e
00000050: EQ
00000051: PUSH2 0x0492
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xe0753986
0000005b: EQ
0000005c: PUSH2 0x04ca
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xe655dbd8
00000066: EQ
00000067: PUSH2 0x0502
0000006a: JUMPI
0000006b: DUP1
0000006c: PUSH4 0xf866c319
00000071: EQ
00000072: PUSH2 0x0515
00000075: JUMPI
00000076: PUSH0
00000077: DUP1
00000078: REVERT
00000079: JUMPDEST
0000007a: DUP1
0000007b: PUSH4 0xb1bf962d
00000080: EQ
00000081: PUSH2 0x043e
00000084: JUMPI
00000085: DUP1
00000086: PUSH4 0xb3f1c93d
0000008b: EQ
0000008c: PUSH2 0x0446
0000008f: JUMPI
00000090: DUP1
00000091: PUSH4 0xcea9d26f
00000096: EQ
00000097: PUSH2 0x0459
0000009a: JUMPI
0000009b: DUP1
0000009c: PUSH4 0xd505accf
000000a1: EQ
000000a2: PUSH2 0x046c
000000a5: JUMPI
000000a6: PUSH0
000000a7: DUP1
000000a8: REVERT
000000a9: JUMPDEST
000000aa: DUP1
000000ab: PUSH4 0xa457c2d7
000000b0: GT
000000b1: PUSH2 0x00e4
000000b4: JUMPI
000000b5: DUP1
000000b6: PUSH4 0xa457c2d7
000000bb: EQ
000000bc: PUSH2 0x03f6
000000bf: JUMPI
000000c0: DUP1
000000c1: PUSH4 0xa9059cbb
000000c6: EQ
000000c7: PUSH2 0x0409
000000ca: JUMPI
000000cb: DUP1
000000cc: PUSH4 0xae167335
000000d1: EQ
000000d2: PUSH2 0x041c
000000d5: JUMPI
000000d6: DUP1
000000d7: PUSH4 0xb16a19de
000000dc: EQ
000000dd: PUSH2 0x042d
000000e0: JUMPI
000000e1: PUSH0
000000e2: DUP1
000000e3: REVERT
000000e4: JUMPDEST
000000e5: DUP1
000000e6: PUSH4 0x78160376
000000eb: EQ
000000ec: PUSH2 0x03a8
000000ef: JUMPI
000000f0: DUP1
000000f1: PUSH4 0x7df5bd3b
000000f6: EQ
000000f7: PUSH2 0x03c8
000000fa: JUMPI
000000fb: DUP1
000000fc: PUSH4 0x7ecebe00
00000101: EQ
00000102: PUSH2 0x03db
00000105: JUMPI
00000106: DUP1
00000107: PUSH4 0x95d89b41
0000010c: EQ
0000010d: PUSH2 0x03ee
00000110: JUMPI
00000111: PUSH0
00000112: DUP1
00000113: REVERT
00000114: JUMPDEST
00000115: DUP1
00000116: PUSH4 0x30adf81f
0000011b: GT
0000011c: PUSH2 0x0195
0000011f: JUMPI
00000120: DUP1
00000121: PUSH4 0x4efecaa5
00000126: GT
00000127: PUSH2 0x0165
0000012a: JUMPI
0000012b: DUP1
0000012c: PUSH4 0x4efecaa5
00000131: EQ
00000132: PUSH2 0x031a
00000135: JUMPI
00000136: DUP1
00000137: PUSH4 0x6fd97676
0000013c: EQ
0000013d: PUSH2 0x032d
00000140: JUMPI
00000141: DUP1
00000142: PUSH4 0x70a08231
00000147: EQ
00000148: PUSH2 0x0340
0000014b: JUMPI
0000014c: DUP1
0000014d: PUSH4 0x7535d246
00000152: EQ
00000153: PUSH2 0x0353
00000156: JUMPI
00000157: DUP1
00000158: PUSH4 0x75d26413
0000015d: EQ
0000015e: PUSH2 0x0392
00000161: JUMPI
00000162: PUSH0
00000163: DUP1
00000164: REVERT
00000165: JUMPDEST
00000166: DUP1
00000167: PUSH4 0x30adf81f
0000016c: EQ
0000016d: PUSH2 0x02c3
00000170: JUMPI
00000171: DUP1
00000172: PUSH4 0x313ce567
00000177: EQ
00000178: PUSH2 0x02ea
0000017b: JUMPI
0000017c: DUP1
0000017d: PUSH4 0x3644e515
00000182: EQ
00000183: PUSH2 0x02ff
00000186: JUMPI
00000187: DUP1
00000188: PUSH4 0x39509351
0000018d: EQ
0000018e: PUSH2 0x0307
00000191: JUMPI
00000192: PUSH0
00000193: DUP1
00000194: REVERT
00000195: JUMPDEST
00000196: DUP1
00000197: PUSH4 0x18160ddd
0000019c: GT
0000019d: PUSH2 0x01d0
000001a0: JUMPI
000001a1: DUP1
000001a2: PUSH4 0x18160ddd
000001a7: EQ
000001a8: PUSH2 0x0280
000001ab: JUMPI
000001ac: DUP1
000001ad: PUSH4 0x183fb413
000001b2: EQ
000001b3: PUSH2 0x0288
000001b6: JUMPI
000001b7: DUP1
000001b8: PUSH4 0x1da24f3e
000001bd: EQ
000001be: PUSH2 0x029d
000001c1: JUMPI
000001c2: DUP1
000001c3: PUSH4 0x23b872dd
000001c8: EQ
000001c9: PUSH2 0x02b0
000001cc: JUMPI
000001cd: PUSH0
000001ce: DUP1
000001cf: REVERT
000001d0: JUMPDEST
000001d1: DUP1
000001d2: PUSH4 0x06fdde03
000001d7: EQ
000001d8: PUSH2 0x0201
000001db: JUMPI
000001dc: DUP1
000001dd: PUSH4 0x095ea7b3
000001e2: EQ
000001e3: PUSH2 0x021f
000001e6: JUMPI
000001e7: DUP1
000001e8: PUSH4 0x0afbcdc9
000001ed: EQ
000001ee: PUSH2 0x0242
000001f1: JUMPI
000001f2: DUP1
000001f3: PUSH4 0x0bd7ad3b
000001f8: EQ
000001f9: PUSH2 0x026a
000001fc: JUMPI
000001fd: JUMPDEST
000001fe: PUSH0
000001ff: DUP1
00000200: REVERT
00000201: JUMPDEST
00000202: PUSH2 0x0209
00000205: PUSH2 0x0528
00000208: JUMP
00000209: JUMPDEST
0000020a: PUSH1 0x40
0000020c: MLOAD
0000020d: PUSH2 0x0216
00000210: SWAP2
00000211: SWAP1
00000212: PUSH2 0x218b
00000215: JUMP
00000216: JUMPDEST
00000217: PUSH1 0x40
00000219: MLOAD
0000021a: DUP1
0000021b: SWAP2
0000021c: SUB
0000021d: SWAP1
0000021e: RETURN
0000021f: JUMPDEST
00000220: PUSH2 0x0232
00000223: PUSH2 0x022d
00000226: CALLDATASIZE
00000227: PUSH1 0x04
00000229: PUSH2 0x21cb
0000022c: JUMP
0000022d: JUMPDEST
0000022e: PUSH2 0x05b8
00000231: JUMP
00000232: JUMPDEST
00000233: PUSH1 0x40
00000235: MLOAD
00000236: SWAP1
00000237: ISZERO
00000238: ISZERO
00000239: DUP2
0000023a: MSTORE
0000023b: PUSH1 0x20
0000023d: ADD
0000023e: PUSH2 0x0216
00000241: JUMP
00000242: JUMPDEST
00000243: PUSH2 0x0255
00000246: PUSH2 0x0250
00000249: CALLDATASIZE
0000024a: PUSH1 0x04
0000024c: PUSH2 0x21f5
0000024f: JUMP
00000250: JUMPDEST
00000251: PUSH2 0x05ce
00000254: JUMP
00000255: JUMPDEST
00000256: PUSH1 0x40
00000258: DUP1
00000259: MLOAD
0000025a: SWAP3
0000025b: DUP4
0000025c: MSTORE
0000025d: PUSH1 0x20
0000025f: DUP4
00000260: ADD
00000261: SWAP2
00000262: SWAP1
00000263: SWAP2
00000264: MSTORE
00000265: ADD
00000266: PUSH2 0x0216
00000269: JUMP
0000026a: JUMPDEST
0000026b: PUSH2 0x0272
0000026e: PUSH1 0x02
00000270: DUP2
00000271: JUMP
00000272: JUMPDEST
00000273: PUSH1 0x40
00000275: MLOAD
00000276: SWAP1
00000277: DUP2
00000278: MSTORE
00000279: PUSH1 0x20
0000027b: ADD
0000027c: PUSH2 0x0216
0000027f: JUMP
00000280: JUMPDEST
00000281: PUSH2 0x0272
00000284: PUSH2 0x05e5
00000287: JUMP
00000288: JUMPDEST
00000289: PUSH2 0x029b
0000028c: PUSH2 0x0296
0000028f: CALLDATASIZE
00000290: PUSH1 0x04
00000292: PUSH2 0x2265
00000295: JUMP
00000296: JUMPDEST
00000297: PUSH2 0x069c
0000029a: JUMP
0000029b: JUMPDEST
0000029c: STOP
0000029d: JUMPDEST
0000029e: PUSH2 0x0272
000002a1: PUSH2 0x02ab
000002a4: CALLDATASIZE
000002a5: PUSH1 0x04
000002a7: PUSH2 0x21f5
000002aa: JUMP
000002ab: JUMPDEST
000002ac: PUSH2 0x092f
000002af: JUMP
000002b0: JUMPDEST
000002b1: PUSH2 0x0232
000002b4: PUSH2 0x02be
000002b7: CALLDATASIZE
000002b8: PUSH1 0x04
000002ba: PUSH2 0x234f
000002bd: JUMP
000002be: JUMPDEST
000002bf: PUSH2 0x0939
000002c2: JUMP
000002c3: JUMPDEST
000002c4: PUSH2 0x0272
000002c7: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
000002e8: DUP2
000002e9: JUMP
000002ea: JUMPDEST
000002eb: PUSH1 0x39
000002ed: SLOAD
000002ee: PUSH1 0x40
000002f0: MLOAD
000002f1: PUSH1 0xff
000002f3: SWAP1
000002f4: SWAP2
000002f5: AND
000002f6: DUP2
000002f7: MSTORE
000002f8: PUSH1 0x20
000002fa: ADD
000002fb: PUSH2 0x0216
000002fe: JUMP
000002ff: JUMPDEST
00000300: PUSH2 0x0272
00000303: PUSH2 0x09a1
00000306: JUMP
00000307: JUMPDEST
00000308: PUSH2 0x0232
0000030b: PUSH2 0x0315
0000030e: CALLDATASIZE
0000030f: PUSH1 0x04
00000311: PUSH2 0x21cb
00000314: JUMP
00000315: JUMPDEST
00000316: PUSH2 0x09af
00000319: JUMP
0000031a: JUMPDEST
0000031b: PUSH2 0x029b
0000031e: PUSH2 0x0328
00000321: CALLDATASIZE
00000322: PUSH1 0x04
00000324: PUSH2 0x21cb
00000327: JUMP
00000328: JUMPDEST
00000329: PUSH2 0x09e5
0000032c: JUMP
0000032d: JUMPDEST
0000032e: PUSH2 0x029b
00000331: PUSH2 0x033b
00000334: CALLDATASIZE
00000335: PUSH1 0x04
00000337: PUSH2 0x234f
0000033a: JUMP
0000033b: JUMPDEST
0000033c: PUSH2 0x0a63
0000033f: JUMP
00000340: JUMPDEST
00000341: PUSH2 0x0272
00000344: PUSH2 0x034e
00000347: CALLDATASIZE
00000348: PUSH1 0x04
0000034a: PUSH2 0x21f5
0000034d: JUMP
0000034e: JUMPDEST
0000034f: PUSH2 0x0acb
00000352: JUMP
00000353: JUMPDEST
00000354: PUSH2 0x037a
00000357: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
00000378: DUP2
00000379: JUMP
0000037a: JUMPDEST
0000037b: PUSH1 0x40
0000037d: MLOAD
0000037e: PUSH1 0x01
00000380: PUSH1 0x01
00000382: PUSH1 0xa0
00000384: SHL
00000385: SUB
00000386: SWAP1
00000387: SWAP2
00000388: AND
00000389: DUP2
0000038a: MSTORE
0000038b: PUSH1 0x20
0000038d: ADD
0000038e: PUSH2 0x0216
00000391: JUMP
00000392: JUMPDEST
00000393: PUSH1 0x39
00000395: SLOAD
00000396: PUSH2 0x0100
00000399: SWAP1
0000039a: DIV
0000039b: PUSH1 0x01
0000039d: PUSH1 0x01
0000039f: PUSH1 0xa0
000003a1: SHL
000003a2: SUB
000003a3: AND
000003a4: PUSH2 0x037a
000003a7: JUMP
000003a8: JUMPDEST
000003a9: PUSH2 0x0209
000003ac: PUSH1 0x40
000003ae: MLOAD
000003af: DUP1
000003b0: PUSH1 0x40
000003b2: ADD
000003b3: PUSH1 0x40
000003b5: MSTORE
000003b6: DUP1
000003b7: PUSH1 0x01
000003b9: DUP2
000003ba: MSTORE
000003bb: PUSH1 0x20
000003bd: ADD
000003be: PUSH1 0x31
000003c0: PUSH1 0xf8
000003c2: SHL
000003c3: DUP2
000003c4: MSTORE
000003c5: POP
000003c6: DUP2
000003c7: JUMP
000003c8: JUMPDEST
000003c9: PUSH2 0x029b
000003cc: PUSH2 0x03d6
000003cf: CALLDATASIZE
000003d0: PUSH1 0x04
000003d2: PUSH2 0x238d
000003d5: JUMP
000003d6: JUMPDEST
000003d7: PUSH2 0x0b6d
000003da: JUMP
000003db: JUMPDEST
000003dc: PUSH2 0x0272
000003df: PUSH2 0x03e9
000003e2: CALLDATASIZE
000003e3: PUSH1 0x04
000003e5: PUSH2 0x21f5
000003e8: JUMP
000003e9: JUMPDEST
000003ea: PUSH2 0x0c14
000003ed: JUMP
000003ee: JUMPDEST
000003ef: PUSH2 0x0209
000003f2: PUSH2 0x0c31
000003f5: JUMP
000003f6: JUMPDEST
000003f7: PUSH2 0x0232
000003fa: PUSH2 0x0404
000003fd: CALLDATASIZE
000003fe: PUSH1 0x04
00000400: PUSH2 0x21cb
00000403: JUMP
00000404: JUMPDEST
00000405: PUSH2 0x0c40
00000408: JUMP
00000409: JUMPDEST
0000040a: PUSH2 0x0232
0000040d: PUSH2 0x0417
00000410: CALLDATASIZE
00000411: PUSH1 0x04
00000413: PUSH2 0x21cb
00000416: JUMP
00000417: JUMPDEST
00000418: PUSH2 0x0c76
0000041b: JUMP
0000041c: JUMPDEST
0000041d: PUSH1 0x3c
0000041f: SLOAD
00000420: PUSH1 0x01
00000422: PUSH1 0x01
00000424: PUSH1 0xa0
00000426: SHL
00000427: SUB
00000428: AND
00000429: PUSH2 0x037a
0000042c: JUMP
0000042d: JUMPDEST
0000042e: PUSH1 0x3d
00000430: SLOAD
00000431: PUSH1 0x01
00000433: PUSH1 0x01
00000435: PUSH1 0xa0
00000437: SHL
00000438: SUB
00000439: AND
0000043a: PUSH2 0x037a
0000043d: JUMP
0000043e: JUMPDEST
0000043f: PUSH2 0x0272
00000442: PUSH2 0x0c98
00000445: JUMP
00000446: JUMPDEST
00000447: PUSH2 0x0232
0000044a: PUSH2 0x0454
0000044d: CALLDATASIZE
0000044e: PUSH1 0x04
00000450: PUSH2 0x23ad
00000453: JUMP
00000454: JUMPDEST
00000455: PUSH2 0x0ca2
00000458: JUMP
00000459: JUMPDEST
0000045a: PUSH2 0x029b
0000045d: PUSH2 0x0467
00000460: CALLDATASIZE
00000461: PUSH1 0x04
00000463: PUSH2 0x234f
00000466: JUMP
00000467: JUMPDEST
00000468: PUSH2 0x0d1c
0000046b: JUMP
0000046c: JUMPDEST
0000046d: PUSH2 0x029b
00000470: PUSH2 0x047a
00000473: CALLDATASIZE
00000474: PUSH1 0x04
00000476: PUSH2 0x23f0
00000479: JUMP
0000047a: JUMPDEST
0000047b: PUSH2 0x0e9c
0000047e: JUMP
0000047f: JUMPDEST
00000480: PUSH2 0x029b
00000483: PUSH2 0x048d
00000486: CALLDATASIZE
00000487: PUSH1 0x04
00000489: PUSH2 0x23ad
0000048c: JUMP
0000048d: JUMPDEST
0000048e: PUSH2 0x10cb
00000491: JUMP
00000492: JUMPDEST
00000493: PUSH2 0x0272
00000496: PUSH2 0x04a0
00000499: CALLDATASIZE
0000049a: PUSH1 0x04
0000049c: PUSH2 0x2459
0000049f: JUMP
000004a0: JUMPDEST
000004a1: PUSH1 0x01
000004a3: PUSH1 0x01
000004a5: PUSH1 0xa0
000004a7: SHL
000004a8: SUB
000004a9: SWAP2
000004aa: DUP3
000004ab: AND
000004ac: PUSH0
000004ad: SWAP1
000004ae: DUP2
000004af: MSTORE
000004b0: PUSH1 0x35
000004b2: PUSH1 0x20
000004b4: SWAP1
000004b5: DUP2
000004b6: MSTORE
000004b7: PUSH1 0x40
000004b9: DUP1
000004ba: DUP4
000004bb: KECCAK256
000004bc: SWAP4
000004bd: SWAP1
000004be: SWAP5
000004bf: AND
000004c0: DUP3
000004c1: MSTORE
000004c2: SWAP2
000004c3: SWAP1
000004c4: SWAP2
000004c5: MSTORE
000004c6: KECCAK256
000004c7: SLOAD
000004c8: SWAP1
000004c9: JUMP
000004ca: JUMPDEST
000004cb: PUSH2 0x0272
000004ce: PUSH2 0x04d8
000004d1: CALLDATASIZE
000004d2: PUSH1 0x04
000004d4: PUSH2 0x21f5
000004d7: JUMP
000004d8: JUMPDEST
000004d9: PUSH1 0x01
000004db: PUSH1 0x01
000004dd: PUSH1 0xa0
000004df: SHL
000004e0: SUB
000004e1: AND
000004e2: PUSH0
000004e3: SWAP1
000004e4: DUP2
000004e5: MSTORE
000004e6: PUSH1 0x34
000004e8: PUSH1 0x20
000004ea: MSTORE
000004eb: PUSH1 0x40
000004ed: SWAP1
000004ee: KECCAK256
000004ef: SLOAD
000004f0: PUSH1 0x01
000004f2: PUSH1 0x80
000004f4: SHL
000004f5: SWAP1
000004f6: DIV
000004f7: PUSH1 0x01
000004f9: PUSH1 0x01
000004fb: PUSH1 0x80
000004fd: SHL
000004fe: SUB
000004ff: AND
00000500: SWAP1
00000501: JUMP
00000502: JUMPDEST
00000503: PUSH2 0x029b
00000506: PUSH2 0x0510
00000509: CALLDATASIZE
0000050a: PUSH1 0x04
0000050c: PUSH2 0x21f5
0000050f: JUMP
00000510: JUMPDEST
00000511: PUSH2 0x1161
00000514: JUMP
00000515: JUMPDEST
00000516: PUSH2 0x029b
00000519: PUSH2 0x0523
0000051c: CALLDATASIZE
0000051d: PUSH1 0x04
0000051f: PUSH2 0x234f
00000522: JUMP
00000523: JUMPDEST
00000524: PUSH2 0x12ad
00000527: JUMP
00000528: JUMPDEST
00000529: PUSH1 0x60
0000052b: PUSH1 0x37
0000052d: DUP1
0000052e: SLOAD
0000052f: PUSH2 0x0537
00000532: SWAP1
00000533: PUSH2 0x2490
00000536: JUMP
00000537: JUMPDEST
00000538: DUP1
00000539: PUSH1 0x1f
0000053b: ADD
0000053c: PUSH1 0x20
0000053e: DUP1
0000053f: SWAP2
00000540: DIV
00000541: MUL
00000542: PUSH1 0x20
00000544: ADD
00000545: PUSH1 0x40
00000547: MLOAD
00000548: SWAP1
00000549: DUP2
0000054a: ADD
0000054b: PUSH1 0x40
0000054d: MSTORE
0000054e: DUP1
0000054f: SWAP3
00000550: SWAP2
00000551: SWAP1
00000552: DUP2
00000553: DUP2
00000554: MSTORE
00000555: PUSH1 0x20
00000557: ADD
00000558: DUP3
00000559: DUP1
0000055a: SLOAD
0000055b: PUSH2 0x0563
0000055e: SWAP1
0000055f: PUSH2 0x2490
00000562: JUMP
00000563: JUMPDEST
00000564: DUP1
00000565: ISZERO
00000566: PUSH2 0x05ae
00000569: JUMPI
0000056a: DUP1
0000056b: PUSH1 0x1f
0000056d: LT
0000056e: PUSH2 0x0585
00000571: JUMPI
00000572: PUSH2 0x0100
00000575: DUP1
00000576: DUP4
00000577: SLOAD
00000578: DIV
00000579: MUL
0000057a: DUP4
0000057b: MSTORE
0000057c: SWAP2
0000057d: PUSH1 0x20
0000057f: ADD
00000580: SWAP2
00000581: PUSH2 0x05ae
00000584: JUMP
00000585: JUMPDEST
00000586: DUP3
00000587: ADD
00000588: SWAP2
00000589: SWAP1
0000058a: PUSH0
0000058b: MSTORE
0000058c: PUSH1 0x20
0000058e: PUSH0
0000058f: KECCAK256
00000590: SWAP1
00000591: JUMPDEST
00000592: DUP2
00000593: SLOAD
00000594: DUP2
00000595: MSTORE
00000596: SWAP1
00000597: PUSH1 0x01
00000599: ADD
0000059a: SWAP1
0000059b: PUSH1 0x20
0000059d: ADD
0000059e: DUP1
0000059f: DUP4
000005a0: GT
000005a1: PUSH2 0x0591
000005a4: JUMPI
000005a5: DUP3
000005a6: SWAP1
000005a7: SUB
000005a8: PUSH1 0x1f
000005aa: AND
000005ab: DUP3
000005ac: ADD
000005ad: SWAP2
000005ae: JUMPDEST
000005af: POP
000005b0: POP
000005b1: POP
000005b2: POP
000005b3: POP
000005b4: SWAP1
000005b5: POP
000005b6: SWAP1
000005b7: JUMP
000005b8: JUMPDEST
000005b9: PUSH0
000005ba: PUSH2 0x05c4
000005bd: CALLER
000005be: DUP5
000005bf: DUP5
000005c0: PUSH2 0x131c
000005c3: JUMP
000005c4: JUMPDEST
000005c5: POP
000005c6: PUSH1 0x01
000005c8: JUMPDEST
000005c9: SWAP3
000005ca: SWAP2
000005cb: POP
000005cc: POP
000005cd: JUMP
000005ce: JUMPDEST
000005cf: PUSH0
000005d0: DUP1
000005d1: PUSH2 0x05d9
000005d4: DUP4
000005d5: PUSH2 0x137c
000005d8: JUMP
000005d9: JUMPDEST
000005da: PUSH1 0x36
000005dc: SLOAD
000005dd: SWAP2
000005de: POP
000005df: SWAP2
000005e0: POP
000005e1: SWAP2
000005e2: POP
000005e3: SWAP2
000005e4: JUMP
000005e5: JUMPDEST
000005e6: PUSH0
000005e7: DUP1
000005e8: PUSH2 0x05f0
000005eb: PUSH1 0x36
000005ed: SLOAD
000005ee: SWAP1
000005ef: JUMP
000005f0: JUMPDEST
000005f1: SWAP1
000005f2: POP
000005f3: DUP1
000005f4: PUSH0
000005f5: SUB
000005f6: PUSH2 0x0600
000005f9: JUMPI
000005fa: PUSH0
000005fb: SWAP2
000005fc: POP
000005fd: POP
000005fe: SWAP1
000005ff: JUMP
00000600: JUMPDEST
00000601: PUSH1 0x3d
00000603: SLOAD
00000604: PUSH1 0x40
00000606: MLOAD
00000607: PUSH4 0xd15e0053
0000060c: PUSH1 0xe0
0000060e: SHL
0000060f: DUP2
00000610: MSTORE
00000611: PUSH1 0x01
00000613: PUSH1 0x01
00000615: PUSH1 0xa0
00000617: SHL
00000618: SUB
00000619: SWAP2
0000061a: DUP3
0000061b: AND
0000061c: PUSH1 0x04
0000061e: DUP3
0000061f: ADD
00000620: MSTORE
00000621: PUSH2 0x0696
00000624: SWAP2
00000625: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
00000646: AND
00000647: SWAP1
00000648: PUSH4 0xd15e0053
0000064d: SWAP1
0000064e: PUSH1 0x24
00000650: ADD
00000651: PUSH1 0x20
00000653: PUSH1 0x40
00000655: MLOAD
00000656: DUP1
00000657: DUP4
00000658: SUB
00000659: DUP2
0000065a: DUP7
0000065b: GAS
0000065c: STATICCALL
0000065d: ISZERO
0000065e: DUP1
0000065f: ISZERO
00000660: PUSH2 0x066b
00000663: JUMPI
00000664: RETURNDATASIZE
00000665: PUSH0
00000666: DUP1
00000667: RETURNDATACOPY
00000668: RETURNDATASIZE
00000669: PUSH0
0000066a: REVERT
0000066b: JUMPDEST
0000066c: POP
0000066d: POP
0000066e: POP
0000066f: POP
00000670: PUSH1 0x40
00000672: MLOAD
00000673: RETURNDATASIZE
00000674: PUSH1 0x1f
00000676: NOT
00000677: PUSH1 0x1f
00000679: DUP3
0000067a: ADD
0000067b: AND
0000067c: DUP3
0000067d: ADD
0000067e: DUP1
0000067f: PUSH1 0x40
00000681: MSTORE
00000682: POP
00000683: DUP2
00000684: ADD
00000685: SWAP1
00000686: PUSH2 0x068f
00000689: SWAP2
0000068a: SWAP1
0000068b: PUSH2 0x24c2
0000068e: JUMP
0000068f: JUMPDEST
00000690: DUP3
00000691: SWAP1
00000692: PUSH2 0x139f
00000695: JUMP
00000696: JUMPDEST
00000697: SWAP2
00000698: POP
00000699: POP
0000069a: SWAP1
0000069b: JUMP
0000069c: JUMPDEST
0000069d: PUSH1 0x01
0000069f: SLOAD
000006a0: PUSH1 0x02
000006a2: SWAP1
000006a3: PUSH1 0xff
000006a5: AND
000006a6: DUP1
000006a7: PUSH2 0x06af
000006aa: JUMPI
000006ab: POP
000006ac: ADDRESS
000006ad: EXTCODESIZE
000006ae: ISZERO
000006af: JUMPDEST
000006b0: DUP1
000006b1: PUSH2 0x06ba
000006b4: JUMPI
000006b5: POP
000006b6: PUSH0
000006b7: SLOAD
000006b8: DUP2
000006b9: GT
000006ba: JUMPDEST
000006bb: PUSH2 0x0722
000006be: JUMPI
000006bf: PUSH1 0x40
000006c1: MLOAD
000006c2: PUSH3 0x461bcd
000006c6: PUSH1 0xe5
000006c8: SHL
000006c9: DUP2
000006ca: MSTORE
000006cb: PUSH1 0x20
000006cd: PUSH1 0x04
000006cf: DUP3
000006d0: ADD
000006d1: MSTORE
000006d2: PUSH1 0x2e
000006d4: PUSH1 0x24
000006d6: DUP3
000006d7: ADD
000006d8: MSTORE
000006d9: PUSH32 0x436f6e747261637420696e7374616e63652068617320616c7265616479206265
000006fa: PUSH1 0x44
000006fc: DUP3
000006fd: ADD
000006fe: MSTORE
000006ff: PUSH14 0x195b881a5b9a5d1a585b1a5e9959
0000070e: PUSH1 0x92
00000710: SHL
00000711: PUSH1 0x64
00000713: DUP3
00000714: ADD
00000715: MSTORE
00000716: PUSH1 0x84
00000718: ADD
00000719: JUMPDEST
0000071a: PUSH1 0x40
0000071c: MLOAD
0000071d: DUP1
0000071e: SWAP2
0000071f: SUB
00000720: SWAP1
00000721: REVERT
00000722: JUMPDEST
00000723: PUSH1 0x01
00000725: SLOAD
00000726: PUSH1 0xff
00000728: AND
00000729: ISZERO
0000072a: DUP1
0000072b: ISZERO
0000072c: PUSH2 0x0740
0000072f: JUMPI
00000730: PUSH1 0x01
00000732: DUP1
00000733: SLOAD
00000734: PUSH1 0xff
00000736: NOT
00000737: AND
00000738: DUP2
00000739: OR
0000073a: SWAP1
0000073b: SSTORE
0000073c: PUSH0
0000073d: DUP3
0000073e: SWAP1
0000073f: SSTORE
00000740: JUMPDEST
00000741: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
00000762: PUSH1 0x01
00000764: PUSH1 0x01
00000766: PUSH1 0xa0
00000768: SHL
00000769: SUB
0000076a: AND
0000076b: DUP14
0000076c: PUSH1 0x01
0000076e: PUSH1 0x01
00000770: PUSH1 0xa0
00000772: SHL
00000773: SUB
00000774: AND
00000775: EQ
00000776: PUSH1 0x40
00000778: MLOAD
00000779: DUP1
0000077a: PUSH1 0x40
0000077c: ADD
0000077d: PUSH1 0x40
0000077f: MSTORE
00000780: DUP1
00000781: PUSH1 0x02
00000783: DUP2
00000784: MSTORE
00000785: PUSH1 0x20
00000787: ADD
00000788: PUSH2 0x3837
0000078b: PUSH1 0xf0
0000078d: SHL
0000078e: DUP2
0000078f: MSTORE
00000790: POP
00000791: SWAP1
00000792: PUSH2 0x07ae
00000795: JUMPI
00000796: PUSH1 0x40
00000798: MLOAD
00000799: PUSH3 0x461bcd
0000079d: PUSH1 0xe5
0000079f: SHL
000007a0: DUP2
000007a1: MSTORE
000007a2: PUSH1 0x04
000007a4: ADD
000007a5: PUSH2 0x0719
000007a8: SWAP2
000007a9: SWAP1
000007aa: PUSH2 0x218b
000007ad: JUMP
000007ae: JUMPDEST
000007af: POP
000007b0: PUSH2 0x07ed
000007b3: DUP9
000007b4: DUP9
000007b5: DUP1
000007b6: DUP1
000007b7: PUSH1 0x1f
000007b9: ADD
000007ba: PUSH1 0x20
000007bc: DUP1
000007bd: SWAP2
000007be: DIV
000007bf: MUL
000007c0: PUSH1 0x20
000007c2: ADD
000007c3: PUSH1 0x40
000007c5: MLOAD
000007c6: SWAP1
000007c7: DUP2
000007c8: ADD
000007c9: PUSH1 0x40
000007cb: MSTORE
000007cc: DUP1
000007cd: SWAP4
000007ce: SWAP3
000007cf: SWAP2
000007d0: SWAP1
000007d1: DUP2
000007d2: DUP2
000007d3: MSTORE
000007d4: PUSH1 0x20
000007d6: ADD
000007d7: DUP4
000007d8: DUP4
000007d9: DUP1
000007da: DUP3
000007db: DUP5
000007dc: CALLDATACOPY
000007dd: PUSH0
000007de: SWAP3
000007df: ADD
000007e0: SWAP2
000007e1: SWAP1
000007e2: SWAP2
000007e3: MSTORE
000007e4: POP
000007e5: PUSH2 0x13e1
000007e8: SWAP3
000007e9: POP
000007ea: POP
000007eb: POP
000007ec: JUMP
000007ed: JUMPDEST
000007ee: PUSH2 0x082b
000007f1: DUP7
000007f2: DUP7
000007f3: DUP1
000007f4: DUP1
000007f5: PUSH1 0x1f
000007f7: ADD
000007f8: PUSH1 0x20
000007fa: DUP1
000007fb: SWAP2
000007fc: DIV
000007fd: MUL
000007fe: PUSH1 0x20
00000800: ADD
00000801: PUSH1 0x40
00000803: MLOAD
00000804: SWAP1
00000805: DUP2
00000806: ADD
00000807: PUSH1 0x40
00000809: MSTORE
0000080a: DUP1
0000080b: SWAP4
0000080c: SWAP3
0000080d: SWAP2
0000080e: SWAP1
0000080f: DUP2
00000810: DUP2
00000811: MSTORE
00000812: PUSH1 0x20
00000814: ADD
00000815: DUP4
00000816: DUP4
00000817: DUP1
00000818: DUP3
00000819: DUP5
0000081a: CALLDATACOPY
0000081b: PUSH0
0000081c: SWAP3
0000081d: ADD
0000081e: SWAP2
0000081f: SWAP1
00000820: SWAP2
00000821: MSTORE
00000822: POP
00000823: PUSH2 0x13ed
00000826: SWAP3
00000827: POP
00000828: POP
00000829: POP
0000082a: JUMP
0000082b: JUMPDEST
0000082c: PUSH1 0x39
0000082e: DUP1
0000082f: SLOAD
00000830: PUSH1 0xff
00000832: NOT
00000833: AND
00000834: PUSH1 0xff
00000836: DUP12
00000837: AND
00000838: OR
00000839: SWAP1
0000083a: SSTORE
0000083b: PUSH1 0x3c
0000083d: DUP1
0000083e: SLOAD
0000083f: PUSH1 0x01
00000841: PUSH1 0x01
00000843: PUSH1 0xa0
00000845: SHL
00000846: SUB
00000847: DUP1
00000848: DUP16
00000849: AND
0000084a: PUSH1 0x01
0000084c: PUSH1 0x01
0000084e: PUSH1 0xa0
00000850: SHL
00000851: SUB
00000852: NOT
00000853: SWAP3
00000854: DUP4
00000855: AND
00000856: OR
00000857: SWAP1
00000858: SWAP3
00000859: SSTORE
0000085a: PUSH1 0x3d
0000085c: DUP1
0000085d: SLOAD
0000085e: DUP15
0000085f: DUP5
00000860: AND
00000861: SWAP3
00000862: AND
00000863: SWAP2
00000864: SWAP1
00000865: SWAP2
00000866: OR
00000867: SWAP1
00000868: SSTORE
00000869: PUSH1 0x39
0000086b: DUP1
0000086c: SLOAD
0000086d: SWAP2
0000086e: DUP13
0000086f: AND
00000870: PUSH2 0x0100
00000873: MUL
00000874: PUSH2 0x0100
00000877: PUSH1 0x01
00000879: PUSH1 0xa8
0000087b: SHL
0000087c: SUB
0000087d: NOT
0000087e: SWAP1
0000087f: SWAP3
00000880: AND
00000881: SWAP2
00000882: SWAP1
00000883: SWAP2
00000884: OR
00000885: SWAP1
00000886: SSTORE
00000887: PUSH2 0x088e
0000088a: PUSH2 0x13f9
0000088d: JUMP
0000088e: JUMPDEST
0000088f: PUSH1 0x3b
00000891: DUP2
00000892: SWAP1
00000893: SSTORE
00000894: POP
00000895: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
000008b6: PUSH1 0x01
000008b8: PUSH1 0x01
000008ba: PUSH1 0xa0
000008bc: SHL
000008bd: SUB
000008be: AND
000008bf: DUP12
000008c0: PUSH1 0x01
000008c2: PUSH1 0x01
000008c4: PUSH1 0xa0
000008c6: SHL
000008c7: SUB
000008c8: AND
000008c9: PUSH32 0xb19e051f8af41150ccccb3fc2c2d8d15f4a4cf434f32a559ba75fe73d6eea20b
000008ea: DUP15
000008eb: DUP14
000008ec: DUP14
000008ed: DUP14
000008ee: DUP14
000008ef: DUP14
000008f0: DUP14
000008f1: DUP14
000008f2: DUP14
000008f3: PUSH1 0x40
000008f5: MLOAD
000008f6: PUSH2 0x0907
000008f9: SWAP10
000008fa: SWAP9
000008fb: SWAP8
000008fc: SWAP7
000008fd: SWAP6
000008fe: SWAP5
000008ff: SWAP4
00000900: SWAP3
00000901: SWAP2
00000902: SWAP1
00000903: PUSH2 0x2501
00000906: JUMP
00000907: JUMPDEST
00000908: PUSH1 0x40
0000090a: MLOAD
0000090b: DUP1
0000090c: SWAP2
0000090d: SUB
0000090e: SWAP1
0000090f: LOG3
00000910: DUP1
00000911: ISZERO
00000912: PUSH2 0x0920
00000915: JUMPI
00000916: PUSH1 0x01
00000918: DUP1
00000919: SLOAD
0000091a: PUSH1 0xff
0000091c: NOT
0000091d: AND
0000091e: SWAP1
0000091f: SSTORE
00000920: JUMPDEST
00000921: POP
00000922: POP
00000923: POP
00000924: POP
00000925: POP
00000926: POP
00000927: POP
00000928: POP
00000929: POP
0000092a: POP
0000092b: POP
0000092c: POP
0000092d: POP
0000092e: JUMP
0000092f: JUMPDEST
00000930: PUSH0
00000931: PUSH2 0x05c8
00000934: DUP3
00000935: PUSH2 0x137c
00000938: JUMP
00000939: JUMPDEST
0000093a: PUSH0
0000093b: DUP1
0000093c: PUSH2 0x0944
0000093f: DUP4
00000940: PUSH2 0x14a1
00000943: JUMP
00000944: JUMPDEST
00000945: PUSH1 0x01
00000947: PUSH1 0x01
00000949: PUSH1 0xa0
0000094b: SHL
0000094c: SUB
0000094d: DUP7
0000094e: AND
0000094f: PUSH0
00000950: SWAP1
00000951: DUP2
00000952: MSTORE
00000953: PUSH1 0x35
00000955: PUSH1 0x20
00000957: SWAP1
00000958: DUP2
00000959: MSTORE
0000095a: PUSH1 0x40
0000095c: DUP1
0000095d: DUP4
0000095e: KECCAK256
0000095f: CALLER
00000960: DUP1
00000961: DUP6
00000962: MSTORE
00000963: SWAP3
00000964: MSTORE
00000965: SWAP1
00000966: SWAP2
00000967: KECCAK256
00000968: SLOAD
00000969: SWAP2
0000096a: SWAP3
0000096b: POP
0000096c: PUSH2 0x098b
0000096f: SWAP2
00000970: DUP8
00000971: SWAP2
00000972: SWAP1
00000973: PUSH2 0x0986
00000976: SWAP1
00000977: PUSH1 0x01
00000979: PUSH1 0x01
0000097b: PUSH1 0x80
0000097d: SHL
0000097e: SUB
0000097f: DUP7
00000980: AND
00000981: SWAP1
00000982: PUSH2 0x2582
00000985: JUMP
00000986: JUMPDEST
00000987: PUSH2 0x131c
0000098a: JUMP
0000098b: JUMPDEST
0000098c: PUSH2 0x0996
0000098f: DUP6
00000990: DUP6
00000991: DUP4
00000992: PUSH2 0x150d
00000995: JUMP
00000996: JUMPDEST
00000997: POP
00000998: PUSH1 0x01
0000099a: SWAP5
0000099b: SWAP4
0000099c: POP
0000099d: POP
0000099e: POP
0000099f: POP
000009a0: JUMP
000009a1: JUMPDEST
000009a2: PUSH0
000009a3: PUSH2 0x09aa
000009a6: PUSH2 0x1523
000009a9: JUMP
000009aa: JUMPDEST
000009ab: SWAP1
000009ac: POP
000009ad: SWAP1
000009ae: JUMP
000009af: JUMPDEST
000009b0: CALLER
000009b1: PUSH0
000009b2: DUP2
000009b3: DUP2
000009b4: MSTORE
000009b5: PUSH1 0x35
000009b7: PUSH1 0x20
000009b9: SWAP1
000009ba: DUP2
000009bb: MSTORE
000009bc: PUSH1 0x40
000009be: DUP1
000009bf: DUP4
000009c0: KECCAK256
000009c1: PUSH1 0x01
000009c3: PUSH1 0x01
000009c5: PUSH1 0xa0
000009c7: SHL
000009c8: SUB
000009c9: DUP8
000009ca: AND
000009cb: DUP5
000009cc: MSTORE
000009cd: SWAP1
000009ce: SWAP2
000009cf: MSTORE
000009d0: DUP2
000009d1: KECCAK256
000009d2: SLOAD
000009d3: SWAP1
000009d4: SWAP2
000009d5: PUSH2 0x05c4
000009d8: SWAP2
000009d9: DUP6
000009da: SWAP1
000009db: PUSH2 0x0986
000009de: SWAP1
000009df: DUP7
000009e0: SWAP1
000009e1: PUSH2 0x2595
000009e4: JUMP
000009e5: JUMPDEST
000009e6: PUSH1 0x40
000009e8: DUP1
000009e9: MLOAD
000009ea: DUP1
000009eb: DUP3
000009ec: ADD
000009ed: SWAP1
000009ee: SWAP2
000009ef: MSTORE
000009f0: PUSH1 0x02
000009f2: DUP2
000009f3: MSTORE
000009f4: PUSH2 0x3233
000009f7: PUSH1 0xf0
000009f9: SHL
000009fa: PUSH1 0x20
000009fc: DUP3
000009fd: ADD
000009fe: MSTORE
000009ff: CALLER
00000a00: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
00000a21: PUSH1 0x01
00000a23: PUSH1 0x01
00000a25: PUSH1 0xa0
00000a27: SHL
00000a28: SUB
00000a29: AND
00000a2a: EQ
00000a2b: PUSH2 0x0a47
00000a2e: JUMPI
00000a2f: PUSH1 0x40
00000a31: MLOAD
00000a32: PUSH3 0x461bcd
00000a36: PUSH1 0xe5
00000a38: SHL
00000a39: DUP2
00000a3a: MSTORE
00000a3b: PUSH1 0x04
00000a3d: ADD
00000a3e: PUSH2 0x0719
00000a41: SWAP2
00000a42: SWAP1
00000a43: PUSH2 0x218b
00000a46: JUMP
00000a47: JUMPDEST
00000a48: POP
00000a49: PUSH1 0x3d
00000a4b: SLOAD
00000a4c: PUSH2 0x0a5f
00000a4f: SWAP1
00000a50: PUSH1 0x01
00000a52: PUSH1 0x01
00000a54: PUSH1 0xa0
00000a56: SHL
00000a57: SUB
00000a58: AND
00000a59: DUP4
00000a5a: DUP4
00000a5b: PUSH2 0x155a
00000a5e: JUMP
00000a5f: JUMPDEST
00000a60: POP
00000a61: POP
00000a62: JUMP
00000a63: JUMPDEST
00000a64: PUSH1 0x40
00000a66: DUP1
00000a67: MLOAD
00000a68: DUP1
00000a69: DUP3
00000a6a: ADD
00000a6b: SWAP1
00000a6c: SWAP2
00000a6d: MSTORE
00000a6e: PUSH1 0x02
00000a70: DUP2
00000a71: MSTORE
00000a72: PUSH2 0x3233
00000a75: PUSH1 0xf0
00000a77: SHL
00000a78: PUSH1 0x20
00000a7a: DUP3
00000a7b: ADD
00000a7c: MSTORE
00000a7d: CALLER
00000a7e: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
00000a9f: PUSH1 0x01
00000aa1: PUSH1 0x01
00000aa3: PUSH1 0xa0
00000aa5: SHL
00000aa6: SUB
00000aa7: AND
00000aa8: EQ
00000aa9: PUSH2 0x0ac5
00000aac: JUMPI
00000aad: PUSH1 0x40
00000aaf: MLOAD
00000ab0: PUSH3 0x461bcd
00000ab4: PUSH1 0xe5
00000ab6: SHL
00000ab7: DUP2
00000ab8: MSTORE
00000ab9: PUSH1 0x04
00000abb: ADD
00000abc: PUSH2 0x0719
00000abf: SWAP2
00000ac0: SWAP1
00000ac1: PUSH2 0x218b
00000ac4: JUMP
00000ac5: JUMPDEST
00000ac6: POP
00000ac7: POP
00000ac8: POP
00000ac9: POP
00000aca: JUMP
00000acb: JUMPDEST
00000acc: PUSH1 0x3d
00000ace: SLOAD
00000acf: PUSH1 0x40
00000ad1: MLOAD
00000ad2: PUSH4 0xd15e0053
00000ad7: PUSH1 0xe0
00000ad9: SHL
00000ada: DUP2
00000adb: MSTORE
00000adc: PUSH1 0x01
00000ade: PUSH1 0x01
00000ae0: PUSH1 0xa0
00000ae2: SHL
00000ae3: SUB
00000ae4: SWAP2
00000ae5: DUP3
00000ae6: AND
00000ae7: PUSH1 0x04
00000ae9: DUP3
00000aea: ADD
00000aeb: MSTORE
00000aec: PUSH0
00000aed: SWAP2
00000aee: PUSH2 0x05c8
00000af1: SWAP2
00000af2: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
00000b13: SWAP1
00000b14: SWAP2
00000b15: AND
00000b16: SWAP1
00000b17: PUSH4 0xd15e0053
00000b1c: SWAP1
00000b1d: PUSH1 0x24
00000b1f: ADD
00000b20: PUSH1 0x20
00000b22: PUSH1 0x40
00000b24: MLOAD
00000b25: DUP1
00000b26: DUP4
00000b27: SUB
00000b28: DUP2
00000b29: DUP7
00000b2a: GAS
00000b2b: STATICCALL
00000b2c: ISZERO
00000b2d: DUP1
00000b2e: ISZERO
00000b2f: PUSH2 0x0b3a
00000b32: JUMPI
00000b33: RETURNDATASIZE
00000b34: PUSH0
00000b35: DUP1
00000b36: RETURNDATACOPY
00000b37: RETURNDATASIZE
00000b38: PUSH0
00000b39: REVERT
00000b3a: JUMPDEST
00000b3b: POP
00000b3c: POP
00000b3d: POP
00000b3e: POP
00000b3f: PUSH1 0x40
00000b41: MLOAD
00000b42: RETURNDATASIZE
00000b43: PUSH1 0x1f
00000b45: NOT
00000b46: PUSH1 0x1f
00000b48: DUP3
00000b49: ADD
00000b4a: AND
00000b4b: DUP3
00000b4c: ADD
00000b4d: DUP1
00000b4e: PUSH1 0x40
00000b50: MSTORE
00000b51: POP
00000b52: DUP2
00000b53: ADD
00000b54: SWAP1
00000b55: PUSH2 0x0b5e
00000b58: SWAP2
00000b59: SWAP1
00000b5a: PUSH2 0x24c2
00000b5d: JUMP
00000b5e: JUMPDEST
00000b5f: PUSH2 0x0b67
00000b62: DUP5
00000b63: PUSH2 0x137c
00000b66: JUMP
00000b67: JUMPDEST
00000b68: SWAP1
00000b69: PUSH2 0x139f
00000b6c: JUMP
00000b6d: JUMPDEST
00000b6e: PUSH1 0x40
00000b70: DUP1
00000b71: MLOAD
00000b72: DUP1
00000b73: DUP3
00000b74: ADD
00000b75: SWAP1
00000b76: SWAP2
00000b77: MSTORE
00000b78: PUSH1 0x02
00000b7a: DUP2
00000b7b: MSTORE
00000b7c: PUSH2 0x3233
00000b7f: PUSH1 0xf0
00000b81: SHL
00000b82: PUSH1 0x20
00000b84: DUP3
00000b85: ADD
00000b86: MSTORE
00000b87: CALLER
00000b88: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
00000ba9: PUSH1 0x01
00000bab: PUSH1 0x01
00000bad: PUSH1 0xa0
00000baf: SHL
00000bb0: SUB
00000bb1: AND
00000bb2: EQ
00000bb3: PUSH2 0x0bcf
00000bb6: JUMPI
00000bb7: PUSH1 0x40
00000bb9: MLOAD
00000bba: PUSH3 0x461bcd
00000bbe: PUSH1 0xe5
00000bc0: SHL
00000bc1: DUP2
00000bc2: MSTORE
00000bc3: PUSH1 0x04
00000bc5: ADD
00000bc6: PUSH2 0x0719
00000bc9: SWAP2
00000bca: SWAP1
00000bcb: PUSH2 0x218b
00000bce: JUMP
00000bcf: JUMPDEST
00000bd0: POP
00000bd1: DUP2
00000bd2: ISZERO
00000bd3: PUSH2 0x0a5f
00000bd6: JUMPI
00000bd7: PUSH1 0x3c
00000bd9: SLOAD
00000bda: PUSH2 0x0c0f
00000bdd: SWAP1
00000bde: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
00000bff: SWAP1
00000c00: PUSH1 0x01
00000c02: PUSH1 0x01
00000c04: PUSH1 0xa0
00000c06: SHL
00000c07: SUB
00000c08: AND
00000c09: DUP5
00000c0a: DUP5
00000c0b: PUSH2 0x15e2
00000c0e: JUMP
00000c0f: JUMPDEST
00000c10: POP
00000c11: POP
00000c12: POP
00000c13: JUMP
00000c14: JUMPDEST
00000c15: PUSH1 0x01
00000c17: PUSH1 0x01
00000c19: PUSH1 0xa0
00000c1b: SHL
00000c1c: SUB
00000c1d: DUP2
00000c1e: AND
00000c1f: PUSH0
00000c20: SWAP1
00000c21: DUP2
00000c22: MSTORE
00000c23: PUSH1 0x3a
00000c25: PUSH1 0x20
00000c27: MSTORE
00000c28: PUSH1 0x40
00000c2a: DUP2
00000c2b: KECCAK256
00000c2c: SLOAD
00000c2d: PUSH2 0x05c8
00000c30: JUMP
00000c31: JUMPDEST
00000c32: PUSH1 0x60
00000c34: PUSH1 0x38
00000c36: DUP1
00000c37: SLOAD
00000c38: PUSH2 0x0537
00000c3b: SWAP1
00000c3c: PUSH2 0x2490
00000c3f: JUMP
00000c40: JUMPDEST
00000c41: CALLER
00000c42: PUSH0
00000c43: DUP2
00000c44: DUP2
00000c45: MSTORE
00000c46: PUSH1 0x35
00000c48: PUSH1 0x20
00000c4a: SWAP1
00000c4b: DUP2
00000c4c: MSTORE
00000c4d: PUSH1 0x40
00000c4f: DUP1
00000c50: DUP4
00000c51: KECCAK256
00000c52: PUSH1 0x01
00000c54: PUSH1 0x01
00000c56: PUSH1 0xa0
00000c58: SHL
00000c59: SUB
00000c5a: DUP8
00000c5b: AND
00000c5c: DUP5
00000c5d: MSTORE
00000c5e: SWAP1
00000c5f: SWAP2
00000c60: MSTORE
00000c61: DUP2
00000c62: KECCAK256
00000c63: SLOAD
00000c64: SWAP1
00000c65: SWAP2
00000c66: PUSH2 0x05c4
00000c69: SWAP2
00000c6a: DUP6
00000c6b: SWAP1
00000c6c: PUSH2 0x0986
00000c6f: SWAP1
00000c70: DUP7
00000c71: SWAP1
00000c72: PUSH2 0x2582
00000c75: JUMP
00000c76: JUMPDEST
00000c77: PUSH0
00000c78: DUP1
00000c79: PUSH2 0x0c81
00000c7c: DUP4
00000c7d: PUSH2 0x14a1
00000c80: JUMP
00000c81: JUMPDEST
00000c82: SWAP1
00000c83: POP
00000c84: PUSH2 0x0c8e
00000c87: CALLER
00000c88: DUP6
00000c89: DUP4
00000c8a: PUSH2 0x150d
00000c8d: JUMP
00000c8e: JUMPDEST
00000c8f: POP
00000c90: PUSH1 0x01
00000c92: SWAP4
00000c93: SWAP3
00000c94: POP
00000c95: POP
00000c96: POP
00000c97: JUMP
00000c98: JUMPDEST
00000c99: PUSH0
00000c9a: PUSH2 0x09aa
00000c9d: PUSH1 0x36
00000c9f: SLOAD
00000ca0: SWAP1
00000ca1: JUMP
00000ca2: JUMPDEST
00000ca3: PUSH1 0x40
00000ca5: DUP1
00000ca6: MLOAD
00000ca7: DUP1
00000ca8: DUP3
00000ca9: ADD
00000caa: SWAP1
00000cab: SWAP2
00000cac: MSTORE
00000cad: PUSH1 0x02
00000caf: DUP2
00000cb0: MSTORE
00000cb1: PUSH2 0x3233
00000cb4: PUSH1 0xf0
00000cb6: SHL
00000cb7: PUSH1 0x20
00000cb9: DUP3
00000cba: ADD
00000cbb: MSTORE
00000cbc: PUSH0
00000cbd: SWAP1
00000cbe: CALLER
00000cbf: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
00000ce0: PUSH1 0x01
00000ce2: PUSH1 0x01
00000ce4: PUSH1 0xa0
00000ce6: SHL
00000ce7: SUB
00000ce8: AND
00000ce9: EQ
00000cea: PUSH2 0x0d06
00000ced: JUMPI
00000cee: PUSH1 0x40
00000cf0: MLOAD
00000cf1: PUSH3 0x461bcd
00000cf5: PUSH1 0xe5
00000cf7: SHL
00000cf8: DUP2
00000cf9: MSTORE
00000cfa: PUSH1 0x04
00000cfc: ADD
00000cfd: PUSH2 0x0719
00000d00: SWAP2
00000d01: SWAP1
00000d02: PUSH2 0x218b
00000d05: JUMP
00000d06: JUMPDEST
00000d07: POP
00000d08: PUSH2 0x0d13
00000d0b: DUP6
00000d0c: DUP6
00000d0d: DUP6
00000d0e: DUP6
00000d0f: PUSH2 0x15e2
00000d12: JUMP
00000d13: JUMPDEST
00000d14: SWAP6
00000d15: SWAP5
00000d16: POP
00000d17: POP
00000d18: POP
00000d19: POP
00000d1a: POP
00000d1b: JUMP
00000d1c: JUMPDEST
00000d1d: PUSH0
00000d1e: PUSH32 0x0000000000000000000000005d39e06b825c1f2b80bf2756a73e28efaa128ba0
00000d3f: PUSH1 0x01
00000d41: PUSH1 0x01
00000d43: PUSH1 0xa0
00000d45: SHL
00000d46: SUB
00000d47: AND
00000d48: PUSH4 0x707cd716
00000d4d: PUSH1 0x40
00000d4f: MLOAD
00000d50: DUP2
00000d51: PUSH4 0xffffffff
00000d56: AND
00000d57: PUSH1 0xe0
00000d59: SHL
00000d5a: DUP2
00000d5b: MSTORE
00000d5c: PUSH1 0x04
00000d5e: ADD
00000d5f: PUSH1 0x20
00000d61: PUSH1 0x40
00000d63: MLOAD
00000d64: DUP1
00000d65: DUP4
00000d66: SUB
00000d67: DUP2
00000d68: DUP7
00000d69: GAS
00000d6a: STATICCALL
00000d6b: ISZERO
00000d6c: DUP1
00000d6d: ISZERO
00000d6e: PUSH2 0x0d79
00000d71: JUMPI
00000d72: RETURNDATASIZE
00000d73: PUSH0
00000d74: DUP1
00000d75: RETURNDATACOPY
00000d76: RETURNDATASIZE
00000d77: PUSH0
00000d78: REVERT
00000d79: JUMPDEST
00000d7a: POP
00000d7b: POP
00000d7c: POP
00000d7d: POP
00000d7e: PUSH1 0x40
00000d80: MLOAD
00000d81: RETURNDATASIZE
00000d82: PUSH1 0x1f
00000d84: NOT
00000d85: PUSH1 0x1f
00000d87: DUP3
00000d88: ADD
00000d89: AND
00000d8a: DUP3
00000d8b: ADD
00000d8c: DUP1
00000d8d: PUSH1 0x40
00000d8f: MSTORE
00000d90: POP
00000d91: DUP2
00000d92: ADD
00000d93: SWAP1
00000d94: PUSH2 0x0d9d
00000d97: SWAP2
00000d98: SWAP1
00000d99: PUSH2 0x25a8
00000d9c: JUMP
00000d9d: JUMPDEST
00000d9e: PUSH1 0x40
00000da0: MLOAD
00000da1: PUSH4 0x7be53ca1
00000da6: PUSH1 0xe0
00000da8: SHL
00000da9: DUP2
00000daa: MSTORE
00000dab: CALLER
00000dac: PUSH1 0x04
00000dae: DUP3
00000daf: ADD
00000db0: MSTORE
00000db1: SWAP1
00000db2: SWAP2
00000db3: POP
00000db4: PUSH1 0x01
00000db6: PUSH1 0x01
00000db8: PUSH1 0xa0
00000dba: SHL
00000dbb: SUB
00000dbc: DUP3
00000dbd: AND
00000dbe: SWAP1
00000dbf: PUSH4 0x7be53ca1
00000dc4: SWAP1
00000dc5: PUSH1 0x24
00000dc7: ADD
00000dc8: PUSH1 0x20
00000dca: PUSH1 0x40
00000dcc: MLOAD
00000dcd: DUP1
00000dce: DUP4
00000dcf: SUB
00000dd0: DUP2
00000dd1: DUP7
00000dd2: GAS
00000dd3: STATICCALL
00000dd4: ISZERO
00000dd5: DUP1
00000dd6: ISZERO
00000dd7: PUSH2 0x0de2
00000dda: JUMPI
00000ddb: RETURNDATASIZE
00000ddc: PUSH0
00000ddd: DUP1
00000dde: RETURNDATACOPY
00000ddf: RETURNDATASIZE
00000de0: PUSH0
00000de1: REVERT
00000de2: JUMPDEST
00000de3: POP
00000de4: POP
00000de5: POP
00000de6: POP
00000de7: PUSH1 0x40
00000de9: MLOAD
00000dea: RETURNDATASIZE
00000deb: PUSH1 0x1f
00000ded: NOT
00000dee: PUSH1 0x1f
00000df0: DUP3
00000df1: ADD
00000df2: AND
00000df3: DUP3
00000df4: ADD
00000df5: DUP1
00000df6: PUSH1 0x40
00000df8: MSTORE
00000df9: POP
00000dfa: DUP2
00000dfb: ADD
00000dfc: SWAP1
00000dfd: PUSH2 0x0e06
00000e00: SWAP2
00000e01: SWAP1
00000e02: PUSH2 0x25c3
00000e05: JUMP
00000e06: JUMPDEST
00000e07: PUSH1 0x40
00000e09: MLOAD
00000e0a: DUP1
00000e0b: PUSH1 0x40
00000e0d: ADD
00000e0e: PUSH1 0x40
00000e10: MSTORE
00000e11: DUP1
00000e12: PUSH1 0x01
00000e14: DUP2
00000e15: MSTORE
00000e16: PUSH1 0x20
00000e18: ADD
00000e19: PUSH1 0x31
00000e1b: PUSH1 0xf8
00000e1d: SHL
00000e1e: DUP2
00000e1f: MSTORE
00000e20: POP
00000e21: SWAP1
00000e22: PUSH2 0x0e3e
00000e25: JUMPI
00000e26: PUSH1 0x40
00000e28: MLOAD
00000e29: PUSH3 0x461bcd
00000e2d: PUSH1 0xe5
00000e2f: SHL
00000e30: DUP2
00000e31: MSTORE
00000e32: PUSH1 0x04
00000e34: ADD
00000e35: PUSH2 0x0719
00000e38: SWAP2
00000e39: SWAP1
00000e3a: PUSH2 0x218b
00000e3d: JUMP
00000e3e: JUMPDEST
00000e3f: POP
00000e40: PUSH1 0x3d
00000e42: SLOAD
00000e43: PUSH1 0x40
00000e45: DUP1
00000e46: MLOAD
00000e47: DUP1
00000e48: DUP3
00000e49: ADD
00000e4a: SWAP1
00000e4b: SWAP2
00000e4c: MSTORE
00000e4d: PUSH1 0x02
00000e4f: DUP2
00000e50: MSTORE
00000e51: PUSH2 0x3835
00000e54: PUSH1 0xf0
00000e56: SHL
00000e57: PUSH1 0x20
00000e59: DUP3
00000e5a: ADD
00000e5b: MSTORE
00000e5c: SWAP1
00000e5d: PUSH1 0x01
00000e5f: PUSH1 0x01
00000e61: PUSH1 0xa0
00000e63: SHL
00000e64: SUB
00000e65: DUP7
00000e66: DUP2
00000e67: AND
00000e68: SWAP2
00000e69: AND
00000e6a: SUB
00000e6b: PUSH2 0x0e87
00000e6e: JUMPI
00000e6f: PUSH1 0x40
00000e71: MLOAD
00000e72: PUSH3 0x461bcd
00000e76: PUSH1 0xe5
00000e78: SHL
00000e79: DUP2
00000e7a: MSTORE
00000e7b: PUSH1 0x04
00000e7d: ADD
00000e7e: PUSH2 0x0719
00000e81: SWAP2
00000e82: SWAP1
00000e83: PUSH2 0x218b
00000e86: JUMP
00000e87: JUMPDEST
00000e88: POP
00000e89: PUSH2 0x0ac5
00000e8c: PUSH1 0x01
00000e8e: PUSH1 0x01
00000e90: PUSH1 0xa0
00000e92: SHL
00000e93: SUB
00000e94: DUP6
00000e95: AND
00000e96: DUP5
00000e97: DUP5
00000e98: PUSH2 0x155a
00000e9b: JUMP
00000e9c: JUMPDEST
00000e9d: PUSH1 0x40
00000e9f: DUP1
00000ea0: MLOAD
00000ea1: DUP1
00000ea2: DUP3
00000ea3: ADD
00000ea4: SWAP1
00000ea5: SWAP2
00000ea6: MSTORE
00000ea7: PUSH1 0x02
00000ea9: DUP2
00000eaa: MSTORE
00000eab: PUSH2 0x3737
00000eae: PUSH1 0xf0
00000eb0: SHL
00000eb1: PUSH1 0x20
00000eb3: DUP3
00000eb4: ADD
00000eb5: MSTORE
00000eb6: PUSH1 0x01
00000eb8: PUSH1 0x01
00000eba: PUSH1 0xa0
00000ebc: SHL
00000ebd: SUB
00000ebe: DUP9
00000ebf: AND
00000ec0: PUSH2 0x0edc
00000ec3: JUMPI
00000ec4: PUSH1 0x40
00000ec6: MLOAD
00000ec7: PUSH3 0x461bcd
00000ecb: PUSH1 0xe5
00000ecd: SHL
00000ece: DUP2
00000ecf: MSTORE
00000ed0: PUSH1 0x04
00000ed2: ADD
00000ed3: PUSH2 0x0719
00000ed6: SWAP2
00000ed7: SWAP1
00000ed8: PUSH2 0x218b
00000edb: JUMP
00000edc: JUMPDEST
00000edd: POP
00000ede: DUP4
00000edf: TIMESTAMP
00000ee0: GT
00000ee1: ISZERO
00000ee2: PUSH1 0x40
00000ee4: MLOAD
00000ee5: DUP1
00000ee6: PUSH1 0x40
00000ee8: ADD
00000ee9: PUSH1 0x40
00000eeb: MSTORE
00000eec: DUP1
00000eed: PUSH1 0x02
00000eef: DUP2
00000ef0: MSTORE
00000ef1: PUSH1 0x20
00000ef3: ADD
00000ef4: PUSH2 0x06e7
00000ef7: PUSH1 0xf3
00000ef9: SHL
00000efa: DUP2
00000efb: MSTORE
00000efc: POP
00000efd: SWAP1
00000efe: PUSH2 0x0f1a
00000f01: JUMPI
00000f02: PUSH1 0x40
00000f04: MLOAD
00000f05: PUSH3 0x461bcd
00000f09: PUSH1 0xe5
00000f0b: SHL
00000f0c: DUP2
00000f0d: MSTORE
00000f0e: PUSH1 0x04
00000f10: ADD
00000f11: PUSH2 0x0719
00000f14: SWAP2
00000f15: SWAP1
00000f16: PUSH2 0x218b
00000f19: JUMP
00000f1a: JUMPDEST
00000f1b: POP
00000f1c: PUSH1 0x01
00000f1e: PUSH1 0x01
00000f20: PUSH1 0xa0
00000f22: SHL
00000f23: SUB
00000f24: DUP8
00000f25: AND
00000f26: PUSH0
00000f27: SWAP1
00000f28: DUP2
00000f29: MSTORE
00000f2a: PUSH1 0x3a
00000f2c: PUSH1 0x20
00000f2e: MSTORE
00000f2f: PUSH1 0x40
00000f31: DUP2
00000f32: KECCAK256
00000f33: SLOAD
00000f34: SWAP1
00000f35: PUSH2 0x0f3c
00000f38: PUSH2 0x09a1
00000f3b: JUMP
00000f3c: JUMPDEST
00000f3d: PUSH1 0x40
00000f3f: DUP1
00000f40: MLOAD
00000f41: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
00000f62: PUSH1 0x20
00000f64: DUP3
00000f65: ADD
00000f66: MSTORE
00000f67: PUSH1 0x01
00000f69: PUSH1 0x01
00000f6b: PUSH1 0xa0
00000f6d: SHL
00000f6e: SUB
00000f6f: DUP1
00000f70: DUP14
00000f71: AND
00000f72: SWAP3
00000f73: DUP3
00000f74: ADD
00000f75: SWAP3
00000f76: SWAP1
00000f77: SWAP3
00000f78: MSTORE
00000f79: SWAP1
00000f7a: DUP11
00000f7b: AND
00000f7c: PUSH1 0x60
00000f7e: DUP3
00000f7f: ADD
00000f80: MSTORE
00000f81: PUSH1 0x80
00000f83: DUP2
00000f84: ADD
00000f85: DUP10
00000f86: SWAP1
00000f87: MSTORE
00000f88: PUSH1 0xa0
00000f8a: DUP2
00000f8b: ADD
00000f8c: DUP5
00000f8d: SWAP1
00000f8e: MSTORE
00000f8f: PUSH1 0xc0
00000f91: DUP2
00000f92: ADD
00000f93: DUP9
00000f94: SWAP1
00000f95: MSTORE
00000f96: PUSH1 0xe0
00000f98: ADD
00000f99: PUSH1 0x40
00000f9b: MLOAD
00000f9c: PUSH1 0x20
00000f9e: DUP2
00000f9f: DUP4
00000fa0: SUB
00000fa1: SUB
00000fa2: DUP2
00000fa3: MSTORE
00000fa4: SWAP1
00000fa5: PUSH1 0x40
00000fa7: MSTORE
00000fa8: DUP1
00000fa9: MLOAD
00000faa: SWAP1
00000fab: PUSH1 0x20
00000fad: ADD
00000fae: KECCAK256
00000faf: PUSH1 0x40
00000fb1: MLOAD
00000fb2: PUSH1 0x20
00000fb4: ADD
00000fb5: PUSH2 0x0fd5
00000fb8: SWAP3
00000fb9: SWAP2
00000fba: SWAP1
00000fbb: PUSH2 0x1901
00000fbe: PUSH1 0xf0
00000fc0: SHL
00000fc1: DUP2
00000fc2: MSTORE
00000fc3: PUSH1 0x02
00000fc5: DUP2
00000fc6: ADD
00000fc7: SWAP3
00000fc8: SWAP1
00000fc9: SWAP3
00000fca: MSTORE
00000fcb: PUSH1 0x22
00000fcd: DUP3
00000fce: ADD
00000fcf: MSTORE
00000fd0: PUSH1 0x42
00000fd2: ADD
00000fd3: SWAP1
00000fd4: JUMP
00000fd5: JUMPDEST
00000fd6: PUSH1 0x40
00000fd8: DUP1
00000fd9: MLOAD
00000fda: PUSH1 0x1f
00000fdc: NOT
00000fdd: DUP2
00000fde: DUP5
00000fdf: SUB
00000fe0: ADD
00000fe1: DUP2
00000fe2: MSTORE
00000fe3: DUP3
00000fe4: DUP3
00000fe5: MSTORE
00000fe6: DUP1
00000fe7: MLOAD
00000fe8: PUSH1 0x20
00000fea: SWAP2
00000feb: DUP3
00000fec: ADD
00000fed: KECCAK256
00000fee: PUSH0
00000fef: DUP5
00000ff0: MSTORE
00000ff1: SWAP1
00000ff2: DUP4
00000ff3: ADD
00000ff4: DUP1
00000ff5: DUP4
00000ff6: MSTORE
00000ff7: DUP2
00000ff8: SWAP1
00000ff9: MSTORE
00000ffa: PUSH1 0xff
00000ffc: DUP9
00000ffd: AND
00000ffe: SWAP2
00000fff: DUP4
00001000: ADD
00001001: SWAP2
00001002: SWAP1
00001003: SWAP2
00001004: MSTORE
00001005: PUSH1 0x60
00001007: DUP3
00001008: ADD
00001009: DUP7
0000100a: SWAP1
0000100b: MSTORE
0000100c: PUSH1 0x80
0000100e: DUP3
0000100f: ADD
00001010: DUP6
00001011: SWAP1
00001012: MSTORE
00001013: SWAP2
00001014: POP
00001015: PUSH1 0x01
00001017: SWAP1
00001018: PUSH1 0xa0
0000101a: ADD
0000101b: PUSH1 0x20
0000101d: PUSH1 0x40
0000101f: MLOAD
00001020: PUSH1 0x20
00001022: DUP2
00001023: SUB
00001024: SWAP1
00001025: DUP1
00001026: DUP5
00001027: SUB
00001028: SWAP1
00001029: DUP6
0000102a: GAS
0000102b: STATICCALL
0000102c: ISZERO
0000102d: DUP1
0000102e: ISZERO
0000102f: PUSH2 0x103a
00001032: JUMPI
00001033: RETURNDATASIZE
00001034: PUSH0
00001035: DUP1
00001036: RETURNDATACOPY
00001037: RETURNDATASIZE
00001038: PUSH0
00001039: REVERT
0000103a: JUMPDEST
0000103b: POP
0000103c: POP
0000103d: POP
0000103e: PUSH1 0x20
00001040: PUSH1 0x40
00001042: MLOAD
00001043: SUB
00001044: MLOAD
00001045: PUSH1 0x01
00001047: PUSH1 0x01
00001049: PUSH1 0xa0
0000104b: SHL
0000104c: SUB
0000104d: AND
0000104e: DUP10
0000104f: PUSH1 0x01
00001051: PUSH1 0x01
00001053: PUSH1 0xa0
00001055: SHL
00001056: SUB
00001057: AND
00001058: EQ
00001059: PUSH1 0x40
0000105b: MLOAD
0000105c: DUP1
0000105d: PUSH1 0x40
0000105f: ADD
00001060: PUSH1 0x40
00001062: MSTORE
00001063: DUP1
00001064: PUSH1 0x02
00001066: DUP2
00001067: MSTORE
00001068: PUSH1 0x20
0000106a: ADD
0000106b: PUSH2 0x3739
0000106e: PUSH1 0xf0
00001070: SHL
00001071: DUP2
00001072: MSTORE
00001073: POP
00001074: SWAP1
00001075: PUSH2 0x1091
00001078: JUMPI
00001079: PUSH1 0x40
0000107b: MLOAD
0000107c: PUSH3 0x461bcd
00001080: PUSH1 0xe5
00001082: SHL
00001083: DUP2
00001084: MSTORE
00001085: PUSH1 0x04
00001087: ADD
00001088: PUSH2 0x0719
0000108b: SWAP2
0000108c: SWAP1
0000108d: PUSH2 0x218b
00001090: JUMP
00001091: JUMPDEST
00001092: POP
00001093: PUSH2 0x109d
00001096: DUP3
00001097: PUSH1 0x01
00001099: PUSH2 0x2595
0000109c: JUMP
0000109d: JUMPDEST
0000109e: PUSH1 0x01
000010a0: PUSH1 0x01
000010a2: PUSH1 0xa0
000010a4: SHL
000010a5: SUB
000010a6: DUP11
000010a7: AND
000010a8: PUSH0
000010a9: SWAP1
000010aa: DUP2
000010ab: MSTORE
000010ac: PUSH1 0x3a
000010ae: PUSH1 0x20
000010b0: MSTORE
000010b1: PUSH1 0x40
000010b3: SWAP1
000010b4: KECCAK256
000010b5: SSTORE
000010b6: PUSH2 0x10c0
000010b9: DUP10
000010ba: DUP10
000010bb: DUP10
000010bc: PUSH2 0x131c
000010bf: JUMP
000010c0: JUMPDEST
000010c1: POP
000010c2: POP
000010c3: POP
000010c4: POP
000010c5: POP
000010c6: POP
000010c7: POP
000010c8: POP
000010c9: POP
000010ca: JUMP
000010cb: JUMPDEST
000010cc: PUSH1 0x40
000010ce: DUP1
000010cf: MLOAD
000010d0: DUP1
000010d1: DUP3
000010d2: ADD
000010d3: SWAP1
000010d4: SWAP2
000010d5: MSTORE
000010d6: PUSH1 0x02
000010d8: DUP2
000010d9: MSTORE
000010da: PUSH2 0x3233
000010dd: PUSH1 0xf0
000010df: SHL
000010e0: PUSH1 0x20
000010e2: DUP3
000010e3: ADD
000010e4: MSTORE
000010e5: CALLER
000010e6: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
00001107: PUSH1 0x01
00001109: PUSH1 0x01
0000110b: PUSH1 0xa0
0000110d: SHL
0000110e: SUB
0000110f: AND
00001110: EQ
00001111: PUSH2 0x112d
00001114: JUMPI
00001115: PUSH1 0x40
00001117: MLOAD
00001118: PUSH3 0x461bcd
0000111c: PUSH1 0xe5
0000111e: SHL
0000111f: DUP2
00001120: MSTORE
00001121: PUSH1 0x04
00001123: ADD
00001124: PUSH2 0x0719
00001127: SWAP2
00001128: SWAP1
00001129: PUSH2 0x218b
0000112c: JUMP
0000112d: JUMPDEST
0000112e: POP
0000112f: PUSH2 0x113a
00001132: DUP5
00001133: DUP5
00001134: DUP5
00001135: DUP5
00001136: PUSH2 0x175f
00001139: JUMP
0000113a: JUMPDEST
0000113b: PUSH1 0x01
0000113d: PUSH1 0x01
0000113f: PUSH1 0xa0
00001141: SHL
00001142: SUB
00001143: DUP4
00001144: AND
00001145: ADDRESS
00001146: EQ
00001147: PUSH2 0x0ac5
0000114a: JUMPI
0000114b: PUSH1 0x3d
0000114d: SLOAD
0000114e: PUSH2 0x0ac5
00001151: SWAP1
00001152: PUSH1 0x01
00001154: PUSH1 0x01
00001156: PUSH1 0xa0
00001158: SHL
00001159: SUB
0000115a: AND
0000115b: DUP5
0000115c: DUP5
0000115d: PUSH2 0x155a
00001160: JUMP
00001161: JUMPDEST
00001162: PUSH0
00001163: PUSH32 0x0000000000000000000000005d39e06b825c1f2b80bf2756a73e28efaa128ba0
00001184: PUSH1 0x01
00001186: PUSH1 0x01
00001188: PUSH1 0xa0
0000118a: SHL
0000118b: SUB
0000118c: AND
0000118d: PUSH4 0x707cd716
00001192: PUSH1 0x40
00001194: MLOAD
00001195: DUP2
00001196: PUSH4 0xffffffff
0000119b: AND
0000119c: PUSH1 0xe0
0000119e: SHL
0000119f: DUP2
000011a0: MSTORE
000011a1: PUSH1 0x04
000011a3: ADD
000011a4: PUSH1 0x20
000011a6: PUSH1 0x40
000011a8: MLOAD
000011a9: DUP1
000011aa: DUP4
000011ab: SUB
000011ac: DUP2
000011ad: DUP7
000011ae: GAS
000011af: STATICCALL
000011b0: ISZERO
000011b1: DUP1
000011b2: ISZERO
000011b3: PUSH2 0x11be
000011b6: JUMPI
000011b7: RETURNDATASIZE
000011b8: PUSH0
000011b9: DUP1
000011ba: RETURNDATACOPY
000011bb: RETURNDATASIZE
000011bc: PUSH0
000011bd: REVERT
000011be: JUMPDEST
000011bf: POP
000011c0: POP
000011c1: POP
000011c2: POP
000011c3: PUSH1 0x40
000011c5: MLOAD
000011c6: RETURNDATASIZE
000011c7: PUSH1 0x1f
000011c9: NOT
000011ca: PUSH1 0x1f
000011cc: DUP3
000011cd: ADD
000011ce: AND
000011cf: DUP3
000011d0: ADD
000011d1: DUP1
000011d2: PUSH1 0x40
000011d4: MSTORE
000011d5: POP
000011d6: DUP2
000011d7: ADD
000011d8: SWAP1
000011d9: PUSH2 0x11e2
000011dc: SWAP2
000011dd: SWAP1
000011de: PUSH2 0x25a8
000011e1: JUMP
000011e2: JUMPDEST
000011e3: PUSH1 0x40
000011e5: MLOAD
000011e6: PUSH4 0x7be53ca1
000011eb: PUSH1 0xe0
000011ed: SHL
000011ee: DUP2
000011ef: MSTORE
000011f0: CALLER
000011f1: PUSH1 0x04
000011f3: DUP3
000011f4: ADD
000011f5: MSTORE
000011f6: SWAP1
000011f7: SWAP2
000011f8: POP
000011f9: PUSH1 0x01
000011fb: PUSH1 0x01
000011fd: PUSH1 0xa0
000011ff: SHL
00001200: SUB
00001201: DUP3
00001202: AND
00001203: SWAP1
00001204: PUSH4 0x7be53ca1
00001209: SWAP1
0000120a: PUSH1 0x24
0000120c: ADD
0000120d: PUSH1 0x20
0000120f: PUSH1 0x40
00001211: MLOAD
00001212: DUP1
00001213: DUP4
00001214: SUB
00001215: DUP2
00001216: DUP7
00001217: GAS
00001218: STATICCALL
00001219: ISZERO
0000121a: DUP1
0000121b: ISZERO
0000121c: PUSH2 0x1227
0000121f: JUMPI
00001220: RETURNDATASIZE
00001221: PUSH0
00001222: DUP1
00001223: RETURNDATACOPY
00001224: RETURNDATASIZE
00001225: PUSH0
00001226: REVERT
00001227: JUMPDEST
00001228: POP
00001229: POP
0000122a: POP
0000122b: POP
0000122c: PUSH1 0x40
0000122e: MLOAD
0000122f: RETURNDATASIZE
00001230: PUSH1 0x1f
00001232: NOT
00001233: PUSH1 0x1f
00001235: DUP3
00001236: ADD
00001237: AND
00001238: DUP3
00001239: ADD
0000123a: DUP1
0000123b: PUSH1 0x40
0000123d: MSTORE
0000123e: POP
0000123f: DUP2
00001240: ADD
00001241: SWAP1
00001242: PUSH2 0x124b
00001245: SWAP2
00001246: SWAP1
00001247: PUSH2 0x25c3
0000124a: JUMP
0000124b: JUMPDEST
0000124c: PUSH1 0x40
0000124e: MLOAD
0000124f: DUP1
00001250: PUSH1 0x40
00001252: ADD
00001253: PUSH1 0x40
00001255: MSTORE
00001256: DUP1
00001257: PUSH1 0x01
00001259: DUP2
0000125a: MSTORE
0000125b: PUSH1 0x20
0000125d: ADD
0000125e: PUSH1 0x31
00001260: PUSH1 0xf8
00001262: SHL
00001263: DUP2
00001264: MSTORE
00001265: POP
00001266: SWAP1
00001267: PUSH2 0x1283
0000126a: JUMPI
0000126b: PUSH1 0x40
0000126d: MLOAD
0000126e: PUSH3 0x461bcd
00001272: PUSH1 0xe5
00001274: SHL
00001275: DUP2
00001276: MSTORE
00001277: PUSH1 0x04
00001279: ADD
0000127a: PUSH2 0x0719
0000127d: SWAP2
0000127e: SWAP1
0000127f: PUSH2 0x218b
00001282: JUMP
00001283: JUMPDEST
00001284: POP
00001285: POP
00001286: PUSH1 0x39
00001288: DUP1
00001289: SLOAD
0000128a: PUSH1 0x01
0000128c: PUSH1 0x01
0000128e: PUSH1 0xa0
00001290: SHL
00001291: SUB
00001292: SWAP1
00001293: SWAP3
00001294: AND
00001295: PUSH2 0x0100
00001298: MUL
00001299: PUSH2 0x0100
0000129c: PUSH1 0x01
0000129e: PUSH1 0xa8
000012a0: SHL
000012a1: SUB
000012a2: NOT
000012a3: SWAP1
000012a4: SWAP3
000012a5: AND
000012a6: SWAP2
000012a7: SWAP1
000012a8: SWAP2
000012a9: OR
000012aa: SWAP1
000012ab: SSTORE
000012ac: JUMP
000012ad: JUMPDEST
000012ae: PUSH1 0x40
000012b0: DUP1
000012b1: MLOAD
000012b2: DUP1
000012b3: DUP3
000012b4: ADD
000012b5: SWAP1
000012b6: SWAP2
000012b7: MSTORE
000012b8: PUSH1 0x02
000012ba: DUP2
000012bb: MSTORE
000012bc: PUSH2 0x3233
000012bf: PUSH1 0xf0
000012c1: SHL
000012c2: PUSH1 0x20
000012c4: DUP3
000012c5: ADD
000012c6: MSTORE
000012c7: CALLER
000012c8: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
000012e9: PUSH1 0x01
000012eb: PUSH1 0x01
000012ed: PUSH1 0xa0
000012ef: SHL
000012f0: SUB
000012f1: AND
000012f2: EQ
000012f3: PUSH2 0x130f
000012f6: JUMPI
000012f7: PUSH1 0x40
000012f9: MLOAD
000012fa: PUSH3 0x461bcd
000012fe: PUSH1 0xe5
00001300: SHL
00001301: DUP2
00001302: MSTORE
00001303: PUSH1 0x04
00001305: ADD
00001306: PUSH2 0x0719
00001309: SWAP2
0000130a: SWAP1
0000130b: PUSH2 0x218b
0000130e: JUMP
0000130f: JUMPDEST
00001310: POP
00001311: PUSH2 0x0c0f
00001314: DUP4
00001315: DUP4
00001316: DUP4
00001317: PUSH0
00001318: PUSH2 0x197d
0000131b: JUMP
0000131c: JUMPDEST
0000131d: PUSH1 0x01
0000131f: PUSH1 0x01
00001321: PUSH1 0xa0
00001323: SHL
00001324: SUB
00001325: DUP4
00001326: DUP2
00001327: AND
00001328: PUSH0
00001329: DUP2
0000132a: DUP2
0000132b: MSTORE
0000132c: PUSH1 0x35
0000132e: PUSH1 0x20
00001330: SWAP1
00001331: DUP2
00001332: MSTORE
00001333: PUSH1 0x40
00001335: DUP1
00001336: DUP4
00001337: KECCAK256
00001338: SWAP5
00001339: DUP8
0000133a: AND
0000133b: DUP1
0000133c: DUP5
0000133d: MSTORE
0000133e: SWAP5
0000133f: DUP3
00001340: MSTORE
00001341: SWAP2
00001342: DUP3
00001343: SWAP1
00001344: KECCAK256
00001345: DUP6
00001346: SWAP1
00001347: SSTORE
00001348: SWAP1
00001349: MLOAD
0000134a: DUP5
0000134b: DUP2
0000134c: MSTORE
0000134d: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
0000136e: SWAP2
0000136f: ADD
00001370: PUSH1 0x40
00001372: MLOAD
00001373: DUP1
00001374: SWAP2
00001375: SUB
00001376: SWAP1
00001377: LOG3
00001378: POP
00001379: POP
0000137a: POP
0000137b: JUMP
0000137c: JUMPDEST
0000137d: PUSH1 0x01
0000137f: PUSH1 0x01
00001381: PUSH1 0xa0
00001383: SHL
00001384: SUB
00001385: AND
00001386: PUSH0
00001387: SWAP1
00001388: DUP2
00001389: MSTORE
0000138a: PUSH1 0x34
0000138c: PUSH1 0x20
0000138e: MSTORE
0000138f: PUSH1 0x40
00001391: SWAP1
00001392: KECCAK256
00001393: SLOAD
00001394: PUSH1 0x01
00001396: PUSH1 0x01
00001398: PUSH1 0x80
0000139a: SHL
0000139b: SUB
0000139c: AND
0000139d: SWAP1
0000139e: JUMP
0000139f: JUMPDEST
000013a0: PUSH0
000013a1: DUP2
000013a2: ISZERO
000013a3: PUSH12 0x019d971e4fe8401e74000000
000013b0: NOT
000013b1: DUP4
000013b2: SWAP1
000013b3: DIV
000013b4: DUP5
000013b5: GT
000013b6: ISZERO
000013b7: OR
000013b8: PUSH2 0x13bf
000013bb: JUMPI
000013bc: PUSH0
000013bd: DUP1
000013be: REVERT
000013bf: JUMPDEST
000013c0: POP
000013c1: PUSH12 0x033b2e3c9fd0803ce8000000
000013ce: SWAP2
000013cf: MUL
000013d0: PUSH12 0x019d971e4fe8401e74000000
000013dd: ADD
000013de: DIV
000013df: SWAP1
000013e0: JUMP
000013e1: JUMPDEST
000013e2: PUSH1 0x37
000013e4: PUSH2 0x0a5f
000013e7: DUP3
000013e8: DUP3
000013e9: PUSH2 0x263a
000013ec: JUMP
000013ed: JUMPDEST
000013ee: PUSH1 0x38
000013f0: PUSH2 0x0a5f
000013f3: DUP3
000013f4: DUP3
000013f5: PUSH2 0x263a
000013f8: JUMP
000013f9: JUMPDEST
000013fa: PUSH0
000013fb: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
0000141c: PUSH2 0x1423
0000141f: PUSH2 0x1b2c
00001422: JUMP
00001423: JUMPDEST
00001424: DUP1
00001425: MLOAD
00001426: PUSH1 0x20
00001428: SWAP2
00001429: DUP3
0000142a: ADD
0000142b: KECCAK256
0000142c: PUSH1 0x40
0000142e: DUP1
0000142f: MLOAD
00001430: DUP1
00001431: DUP3
00001432: ADD
00001433: DUP3
00001434: MSTORE
00001435: PUSH1 0x01
00001437: DUP2
00001438: MSTORE
00001439: PUSH1 0x31
0000143b: PUSH1 0xf8
0000143d: SHL
0000143e: SWAP1
0000143f: DUP5
00001440: ADD
00001441: MSTORE
00001442: DUP1
00001443: MLOAD
00001444: SWAP3
00001445: DUP4
00001446: ADD
00001447: SWAP4
00001448: SWAP1
00001449: SWAP4
0000144a: MSTORE
0000144b: SWAP2
0000144c: DUP2
0000144d: ADD
0000144e: SWAP2
0000144f: SWAP1
00001450: SWAP2
00001451: MSTORE
00001452: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6
00001473: PUSH1 0x60
00001475: DUP3
00001476: ADD
00001477: MSTORE
00001478: CHAINID
00001479: PUSH1 0x80
0000147b: DUP3
0000147c: ADD
0000147d: MSTORE
0000147e: ADDRESS
0000147f: PUSH1 0xa0
00001481: DUP3
00001482: ADD
00001483: MSTORE
00001484: PUSH1 0xc0
00001486: ADD
00001487: PUSH1 0x40
00001489: MLOAD
0000148a: PUSH1 0x20
0000148c: DUP2
0000148d: DUP4
0000148e: SUB
0000148f: SUB
00001490: DUP2
00001491: MSTORE
00001492: SWAP1
00001493: PUSH1 0x40
00001495: MSTORE
00001496: DUP1
00001497: MLOAD
00001498: SWAP1
00001499: PUSH1 0x20
0000149b: ADD
0000149c: KECCAK256
0000149d: SWAP1
0000149e: POP
0000149f: SWAP1
000014a0: JUMP
000014a1: JUMPDEST
000014a2: PUSH0
000014a3: PUSH1 0x01
000014a5: PUSH1 0x01
000014a7: PUSH1 0x80
000014a9: SHL
000014aa: SUB
000014ab: DUP3
000014ac: GT
000014ad: ISZERO
000014ae: PUSH2 0x1509
000014b1: JUMPI
000014b2: PUSH1 0x40
000014b4: MLOAD
000014b5: PUSH3 0x461bcd
000014b9: PUSH1 0xe5
000014bb: SHL
000014bc: DUP2
000014bd: MSTORE
000014be: PUSH1 0x20
000014c0: PUSH1 0x04
000014c2: DUP3
000014c3: ADD
000014c4: MSTORE
000014c5: PUSH1 0x27
000014c7: PUSH1 0x24
000014c9: DUP3
000014ca: ADD
000014cb: MSTORE
000014cc: PUSH32 0x53616665436173743a2076616c756520646f65736e27742066697420696e2031
000014ed: PUSH1 0x44
000014ef: DUP3
000014f0: ADD
000014f1: MSTORE
000014f2: PUSH7 0x32382062697473
000014fa: PUSH1 0xc8
000014fc: SHL
000014fd: PUSH1 0x64
000014ff: DUP3
00001500: ADD
00001501: MSTORE
00001502: PUSH1 0x84
00001504: ADD
00001505: PUSH2 0x0719
00001508: JUMP
00001509: JUMPDEST
0000150a: POP
0000150b: SWAP1
0000150c: JUMP
0000150d: JUMPDEST
0000150e: PUSH2 0x0c0f
00001511: DUP4
00001512: DUP4
00001513: DUP4
00001514: PUSH1 0x01
00001516: PUSH1 0x01
00001518: PUSH1 0x80
0000151a: SHL
0000151b: SUB
0000151c: AND
0000151d: PUSH1 0x01
0000151f: PUSH2 0x197d
00001522: JUMP
00001523: JUMPDEST
00001524: PUSH0
00001525: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
00001546: CHAINID
00001547: SUB
00001548: PUSH2 0x1552
0000154b: JUMPI
0000154c: POP
0000154d: PUSH1 0x3b
0000154f: SLOAD
00001550: SWAP1
00001551: JUMP
00001552: JUMPDEST
00001553: PUSH2 0x09aa
00001556: PUSH2 0x13f9
00001559: JUMP
0000155a: JUMPDEST
0000155b: PUSH1 0x40
0000155d: MLOAD
0000155e: PUSH4 0xa9059cbb
00001563: PUSH1 0xe0
00001565: SHL
00001566: DUP1
00001567: DUP3
00001568: MSTORE
00001569: PUSH1 0x01
0000156b: PUSH1 0x01
0000156d: PUSH1 0xa0
0000156f: SHL
00001570: SUB
00001571: DUP5
00001572: AND
00001573: PUSH1 0x04
00001575: DUP4
00001576: ADD
00001577: MSTORE
00001578: PUSH1 0x24
0000157a: DUP3
0000157b: ADD
0000157c: DUP4
0000157d: SWAP1
0000157e: MSTORE
0000157f: SWAP1
00001580: PUSH0
00001581: DUP1
00001582: PUSH1 0x44
00001584: DUP4
00001585: DUP3
00001586: DUP10
00001587: GAS
00001588: CALL
00001589: PUSH2 0x1594
0000158c: JUMPI
0000158d: RETURNDATASIZE
0000158e: PUSH0
0000158f: DUP1
00001590: RETURNDATACOPY
00001591: RETURNDATASIZE
00001592: PUSH0
00001593: REVERT
00001594: JUMPDEST
00001595: POP
00001596: PUSH2 0x159e
00001599: DUP5
0000159a: PUSH2 0x1b36
0000159d: JUMP
0000159e: JUMPDEST
0000159f: PUSH2 0x0ac5
000015a2: JUMPI
000015a3: PUSH1 0x40
000015a5: MLOAD
000015a6: PUSH3 0x461bcd
000015aa: PUSH1 0xe5
000015ac: SHL
000015ad: DUP2
000015ae: MSTORE
000015af: PUSH1 0x20
000015b1: PUSH1 0x04
000015b3: DUP3
000015b4: ADD
000015b5: MSTORE
000015b6: PUSH1 0x15
000015b8: PUSH1 0x24
000015ba: DUP3
000015bb: ADD
000015bc: MSTORE
000015bd: PUSH21 0x23a83b191d103330b4b632b2103a3930b739b332b9
000015d3: PUSH1 0x59
000015d5: SHL
000015d6: PUSH1 0x44
000015d8: DUP3
000015d9: ADD
000015da: MSTORE
000015db: PUSH1 0x64
000015dd: ADD
000015de: PUSH2 0x0719
000015e1: JUMP
000015e2: JUMPDEST
000015e3: PUSH0
000015e4: DUP1
000015e5: PUSH2 0x15ee
000015e8: DUP5
000015e9: DUP5
000015ea: PUSH2 0x1bd9
000015ed: JUMP
000015ee: JUMPDEST
000015ef: PUSH1 0x40
000015f1: DUP1
000015f2: MLOAD
000015f3: DUP1
000015f4: DUP3
000015f5: ADD
000015f6: SWAP1
000015f7: SWAP2
000015f8: MSTORE
000015f9: PUSH1 0x02
000015fb: DUP2
000015fc: MSTORE
000015fd: PUSH2 0x0c8d
00001600: PUSH1 0xf2
00001602: SHL
00001603: PUSH1 0x20
00001605: DUP3
00001606: ADD
00001607: MSTORE
00001608: SWAP1
00001609: SWAP2
0000160a: POP
0000160b: DUP2
0000160c: PUSH2 0x1628
0000160f: JUMPI
00001610: PUSH1 0x40
00001612: MLOAD
00001613: PUSH3 0x461bcd
00001617: PUSH1 0xe5
00001619: SHL
0000161a: DUP2
0000161b: MSTORE
0000161c: PUSH1 0x04
0000161e: ADD
0000161f: PUSH2 0x0719
00001622: SWAP2
00001623: SWAP1
00001624: PUSH2 0x218b
00001627: JUMP
00001628: JUMPDEST
00001629: POP
0000162a: PUSH0
0000162b: PUSH2 0x1633
0000162e: DUP7
0000162f: PUSH2 0x137c
00001632: JUMP
00001633: JUMPDEST
00001634: PUSH1 0x01
00001636: PUSH1 0x01
00001638: PUSH1 0xa0
0000163a: SHL
0000163b: SUB
0000163c: DUP8
0000163d: AND
0000163e: PUSH0
0000163f: SWAP1
00001640: DUP2
00001641: MSTORE
00001642: PUSH1 0x34
00001644: PUSH1 0x20
00001646: MSTORE
00001647: PUSH1 0x40
00001649: DUP2
0000164a: KECCAK256
0000164b: SLOAD
0000164c: SWAP2
0000164d: SWAP3
0000164e: POP
0000164f: SWAP1
00001650: PUSH2 0x166a
00001653: SWAP1
00001654: DUP4
00001655: SWAP1
00001656: PUSH1 0x01
00001658: PUSH1 0x80
0000165a: SHL
0000165b: SWAP1
0000165c: DIV
0000165d: PUSH1 0x01
0000165f: PUSH1 0x01
00001661: PUSH1 0x80
00001663: SHL
00001664: SUB
00001665: AND
00001666: PUSH2 0x139f
00001669: JUMP
0000166a: JUMPDEST
0000166b: PUSH2 0x1674
0000166e: DUP4
0000166f: DUP8
00001670: PUSH2 0x139f
00001673: JUMP
00001674: JUMPDEST
00001675: PUSH2 0x167e
00001678: SWAP2
00001679: SWAP1
0000167a: PUSH2 0x2582
0000167d: JUMP
0000167e: JUMPDEST
0000167f: SWAP1
00001680: POP
00001681: PUSH2 0x1689
00001684: DUP6
00001685: PUSH2 0x14a1
00001688: JUMP
00001689: JUMPDEST
0000168a: PUSH1 0x01
0000168c: PUSH1 0x01
0000168e: PUSH1 0xa0
00001690: SHL
00001691: SUB
00001692: DUP9
00001693: AND
00001694: PUSH0
00001695: SWAP1
00001696: DUP2
00001697: MSTORE
00001698: PUSH1 0x34
0000169a: PUSH1 0x20
0000169c: MSTORE
0000169d: PUSH1 0x40
0000169f: SWAP1
000016a0: KECCAK256
000016a1: DUP1
000016a2: SLOAD
000016a3: PUSH1 0x01
000016a5: PUSH1 0x01
000016a7: PUSH1 0x80
000016a9: SHL
000016aa: SUB
000016ab: SWAP3
000016ac: DUP4
000016ad: AND
000016ae: PUSH1 0x01
000016b0: PUSH1 0x80
000016b2: SHL
000016b3: MUL
000016b4: SWAP3
000016b5: AND
000016b6: SWAP2
000016b7: SWAP1
000016b8: SWAP2
000016b9: OR
000016ba: SWAP1
000016bb: SSTORE
000016bc: PUSH2 0x16cd
000016bf: DUP8
000016c0: PUSH2 0x16c8
000016c3: DUP6
000016c4: PUSH2 0x14a1
000016c7: JUMP
000016c8: JUMPDEST
000016c9: PUSH2 0x1c16
000016cc: JUMP
000016cd: JUMPDEST
000016ce: PUSH0
000016cf: PUSH2 0x16d8
000016d2: DUP3
000016d3: DUP9
000016d4: PUSH2 0x2595
000016d7: JUMP
000016d8: JUMPDEST
000016d9: SWAP1
000016da: POP
000016db: DUP8
000016dc: PUSH1 0x01
000016de: PUSH1 0x01
000016e0: PUSH1 0xa0
000016e2: SHL
000016e3: SUB
000016e4: AND
000016e5: PUSH0
000016e6: PUSH1 0x01
000016e8: PUSH1 0x01
000016ea: PUSH1 0xa0
000016ec: SHL
000016ed: SUB
000016ee: AND
000016ef: PUSH0
000016f0: DUP1
000016f1: MLOAD
000016f2: PUSH1 0x20
000016f4: PUSH2 0x2788
000016f7: DUP4
000016f8: CODECOPY
000016f9: DUP2
000016fa: MLOAD
000016fb: SWAP2
000016fc: MSTORE
000016fd: DUP4
000016fe: PUSH1 0x40
00001700: MLOAD
00001701: PUSH2 0x170c
00001704: SWAP2
00001705: DUP2
00001706: MSTORE
00001707: PUSH1 0x20
00001709: ADD
0000170a: SWAP1
0000170b: JUMP
0000170c: JUMPDEST
0000170d: PUSH1 0x40
0000170f: MLOAD
00001710: DUP1
00001711: SWAP2
00001712: SUB
00001713: SWAP1
00001714: LOG3
00001715: PUSH1 0x40
00001717: DUP1
00001718: MLOAD
00001719: DUP3
0000171a: DUP2
0000171b: MSTORE
0000171c: PUSH1 0x20
0000171e: DUP2
0000171f: ADD
00001720: DUP5
00001721: SWAP1
00001722: MSTORE
00001723: SWAP1
00001724: DUP2
00001725: ADD
00001726: DUP8
00001727: SWAP1
00001728: MSTORE
00001729: PUSH1 0x01
0000172b: PUSH1 0x01
0000172d: PUSH1 0xa0
0000172f: SHL
00001730: SUB
00001731: DUP1
00001732: DUP11
00001733: AND
00001734: SWAP2
00001735: SWAP1
00001736: DUP12
00001737: AND
00001738: SWAP1
00001739: PUSH0
0000173a: DUP1
0000173b: MLOAD
0000173c: PUSH1 0x20
0000173e: PUSH2 0x2768
00001741: DUP4
00001742: CODECOPY
00001743: DUP2
00001744: MLOAD
00001745: SWAP2
00001746: MSTORE
00001747: SWAP1
00001748: PUSH1 0x60
0000174a: ADD
0000174b: PUSH1 0x40
0000174d: MLOAD
0000174e: DUP1
0000174f: SWAP2
00001750: SUB
00001751: SWAP1
00001752: LOG3
00001753: POP
00001754: POP
00001755: ISZERO
00001756: SWAP7
00001757: SWAP6
00001758: POP
00001759: POP
0000175a: POP
0000175b: POP
0000175c: POP
0000175d: POP
0000175e: JUMP
0000175f: JUMPDEST
00001760: PUSH0
00001761: PUSH2 0x176a
00001764: DUP4
00001765: DUP4
00001766: PUSH2 0x1bd9
00001769: JUMP
0000176a: JUMPDEST
0000176b: PUSH1 0x40
0000176d: DUP1
0000176e: MLOAD
0000176f: DUP1
00001770: DUP3
00001771: ADD
00001772: SWAP1
00001773: SWAP2
00001774: MSTORE
00001775: PUSH1 0x02
00001777: DUP2
00001778: MSTORE
00001779: PUSH2 0x3235
0000177c: PUSH1 0xf0
0000177e: SHL
0000177f: PUSH1 0x20
00001781: DUP3
00001782: ADD
00001783: MSTORE
00001784: SWAP1
00001785: SWAP2
00001786: POP
00001787: DUP2
00001788: PUSH2 0x17a4
0000178b: JUMPI
0000178c: PUSH1 0x40
0000178e: MLOAD
0000178f: PUSH3 0x461bcd
00001793: PUSH1 0xe5
00001795: SHL
00001796: DUP2
00001797: MSTORE
00001798: PUSH1 0x04
0000179a: ADD
0000179b: PUSH2 0x0719
0000179e: SWAP2
0000179f: SWAP1
000017a0: PUSH2 0x218b
000017a3: JUMP
000017a4: JUMPDEST
000017a5: POP
000017a6: PUSH0
000017a7: PUSH2 0x17af
000017aa: DUP7
000017ab: PUSH2 0x137c
000017ae: JUMP
000017af: JUMPDEST
000017b0: PUSH1 0x01
000017b2: PUSH1 0x01
000017b4: PUSH1 0xa0
000017b6: SHL
000017b7: SUB
000017b8: DUP8
000017b9: AND
000017ba: PUSH0
000017bb: SWAP1
000017bc: DUP2
000017bd: MSTORE
000017be: PUSH1 0x34
000017c0: PUSH1 0x20
000017c2: MSTORE
000017c3: PUSH1 0x40
000017c5: DUP2
000017c6: KECCAK256
000017c7: SLOAD
000017c8: SWAP2
000017c9: SWAP3
000017ca: POP
000017cb: SWAP1
000017cc: PUSH2 0x17e6
000017cf: SWAP1
000017d0: DUP4
000017d1: SWAP1
000017d2: PUSH1 0x01
000017d4: PUSH1 0x80
000017d6: SHL
000017d7: SWAP1
000017d8: DIV
000017d9: PUSH1 0x01
000017db: PUSH1 0x01
000017dd: PUSH1 0x80
000017df: SHL
000017e0: SUB
000017e1: AND
000017e2: PUSH2 0x139f
000017e5: JUMP
000017e6: JUMPDEST
000017e7: PUSH2 0x17f0
000017ea: DUP4
000017eb: DUP7
000017ec: PUSH2 0x139f
000017ef: JUMP
000017f0: JUMPDEST
000017f1: PUSH2 0x17fa
000017f4: SWAP2
000017f5: SWAP1
000017f6: PUSH2 0x2582
000017f9: JUMP
000017fa: JUMPDEST
000017fb: SWAP1
000017fc: POP
000017fd: PUSH2 0x1805
00001800: DUP5
00001801: PUSH2 0x14a1
00001804: JUMP
00001805: JUMPDEST
00001806: PUSH1 0x01
00001808: PUSH1 0x01
0000180a: PUSH1 0xa0
0000180c: SHL
0000180d: SUB
0000180e: DUP9
0000180f: AND
00001810: PUSH0
00001811: SWAP1
00001812: DUP2
00001813: MSTORE
00001814: PUSH1 0x34
00001816: PUSH1 0x20
00001818: MSTORE
00001819: PUSH1 0x40
0000181b: SWAP1
0000181c: KECCAK256
0000181d: DUP1
0000181e: SLOAD
0000181f: PUSH1 0x01
00001821: PUSH1 0x01
00001823: PUSH1 0x80
00001825: SHL
00001826: SUB
00001827: SWAP3
00001828: DUP4
00001829: AND
0000182a: PUSH1 0x01
0000182c: PUSH1 0x80
0000182e: SHL
0000182f: MUL
00001830: SWAP3
00001831: AND
00001832: SWAP2
00001833: SWAP1
00001834: SWAP2
00001835: OR
00001836: SWAP1
00001837: SSTORE
00001838: PUSH2 0x1849
0000183b: DUP8
0000183c: PUSH2 0x1844
0000183f: DUP6
00001840: PUSH2 0x14a1
00001843: JUMP
00001844: JUMPDEST
00001845: PUSH2 0x1d00
00001848: JUMP
00001849: JUMPDEST
0000184a: DUP5
0000184b: DUP2
0000184c: GT
0000184d: ISZERO
0000184e: PUSH2 0x18d9
00001851: JUMPI
00001852: PUSH0
00001853: PUSH2 0x185c
00001856: DUP7
00001857: DUP4
00001858: PUSH2 0x2582
0000185b: JUMP
0000185c: JUMPDEST
0000185d: SWAP1
0000185e: POP
0000185f: DUP8
00001860: PUSH1 0x01
00001862: PUSH1 0x01
00001864: PUSH1 0xa0
00001866: SHL
00001867: SUB
00001868: AND
00001869: PUSH0
0000186a: PUSH1 0x01
0000186c: PUSH1 0x01
0000186e: PUSH1 0xa0
00001870: SHL
00001871: SUB
00001872: AND
00001873: PUSH0
00001874: DUP1
00001875: MLOAD
00001876: PUSH1 0x20
00001878: PUSH2 0x2788
0000187b: DUP4
0000187c: CODECOPY
0000187d: DUP2
0000187e: MLOAD
0000187f: SWAP2
00001880: MSTORE
00001881: DUP4
00001882: PUSH1 0x40
00001884: MLOAD
00001885: PUSH2 0x1890
00001888: SWAP2
00001889: DUP2
0000188a: MSTORE
0000188b: PUSH1 0x20
0000188d: ADD
0000188e: SWAP1
0000188f: JUMP
00001890: JUMPDEST
00001891: PUSH1 0x40
00001893: MLOAD
00001894: DUP1
00001895: SWAP2
00001896: SUB
00001897: SWAP1
00001898: LOG3
00001899: PUSH1 0x40
0000189b: DUP1
0000189c: MLOAD
0000189d: DUP3
0000189e: DUP2
0000189f: MSTORE
000018a0: PUSH1 0x20
000018a2: DUP2
000018a3: ADD
000018a4: DUP5
000018a5: SWAP1
000018a6: MSTORE
000018a7: SWAP1
000018a8: DUP2
000018a9: ADD
000018aa: DUP7
000018ab: SWAP1
000018ac: MSTORE
000018ad: PUSH1 0x01
000018af: PUSH1 0x01
000018b1: PUSH1 0xa0
000018b3: SHL
000018b4: SUB
000018b5: DUP10
000018b6: AND
000018b7: SWAP1
000018b8: DUP2
000018b9: SWAP1
000018ba: PUSH0
000018bb: DUP1
000018bc: MLOAD
000018bd: PUSH1 0x20
000018bf: PUSH2 0x2768
000018c2: DUP4
000018c3: CODECOPY
000018c4: DUP2
000018c5: MLOAD
000018c6: SWAP2
000018c7: MSTORE
000018c8: SWAP1
000018c9: PUSH1 0x60
000018cb: ADD
000018cc: PUSH1 0x40
000018ce: MLOAD
000018cf: DUP1
000018d0: SWAP2
000018d1: SUB
000018d2: SWAP1
000018d3: LOG3
000018d4: POP
000018d5: PUSH2 0x1974
000018d8: JUMP
000018d9: JUMPDEST
000018da: PUSH0
000018db: PUSH2 0x18e4
000018de: DUP3
000018df: DUP8
000018e0: PUSH2 0x2582
000018e3: JUMP
000018e4: JUMPDEST
000018e5: SWAP1
000018e6: POP
000018e7: PUSH0
000018e8: PUSH1 0x01
000018ea: PUSH1 0x01
000018ec: PUSH1 0xa0
000018ee: SHL
000018ef: SUB
000018f0: AND
000018f1: DUP9
000018f2: PUSH1 0x01
000018f4: PUSH1 0x01
000018f6: PUSH1 0xa0
000018f8: SHL
000018f9: SUB
000018fa: AND
000018fb: PUSH0
000018fc: DUP1
000018fd: MLOAD
000018fe: PUSH1 0x20
00001900: PUSH2 0x2788
00001903: DUP4
00001904: CODECOPY
00001905: DUP2
00001906: MLOAD
00001907: SWAP2
00001908: MSTORE
00001909: DUP4
0000190a: PUSH1 0x40
0000190c: MLOAD
0000190d: PUSH2 0x1918
00001910: SWAP2
00001911: DUP2
00001912: MSTORE
00001913: PUSH1 0x20
00001915: ADD
00001916: SWAP1
00001917: JUMP
00001918: JUMPDEST
00001919: PUSH1 0x40
0000191b: MLOAD
0000191c: DUP1
0000191d: SWAP2
0000191e: SUB
0000191f: SWAP1
00001920: LOG3
00001921: PUSH1 0x40
00001923: DUP1
00001924: MLOAD
00001925: DUP3
00001926: DUP2
00001927: MSTORE
00001928: PUSH1 0x20
0000192a: DUP2
0000192b: ADD
0000192c: DUP5
0000192d: SWAP1
0000192e: MSTORE
0000192f: SWAP1
00001930: DUP2
00001931: ADD
00001932: DUP7
00001933: SWAP1
00001934: MSTORE
00001935: PUSH1 0x01
00001937: PUSH1 0x01
00001939: PUSH1 0xa0
0000193b: SHL
0000193c: SUB
0000193d: DUP1
0000193e: DUP10
0000193f: AND
00001940: SWAP2
00001941: SWAP1
00001942: DUP11
00001943: AND
00001944: SWAP1
00001945: PUSH32 0x4cf25bc1d991c17529c25213d3cc0cda295eeaad5f13f361969b12ea48015f90
00001966: SWAP1
00001967: PUSH1 0x60
00001969: ADD
0000196a: JUMPDEST
0000196b: PUSH1 0x40
0000196d: MLOAD
0000196e: DUP1
0000196f: SWAP2
00001970: SUB
00001971: SWAP1
00001972: LOG3
00001973: POP
00001974: JUMPDEST
00001975: POP
00001976: POP
00001977: POP
00001978: POP
00001979: POP
0000197a: POP
0000197b: POP
0000197c: JUMP
0000197d: JUMPDEST
0000197e: PUSH1 0x3d
00001980: SLOAD
00001981: PUSH1 0x40
00001983: MLOAD
00001984: PUSH4 0xd15e0053
00001989: PUSH1 0xe0
0000198b: SHL
0000198c: DUP2
0000198d: MSTORE
0000198e: PUSH1 0x01
00001990: PUSH1 0x01
00001992: PUSH1 0xa0
00001994: SHL
00001995: SUB
00001996: SWAP2
00001997: DUP3
00001998: AND
00001999: PUSH1 0x04
0000199b: DUP3
0000199c: ADD
0000199d: DUP2
0000199e: SWAP1
0000199f: MSTORE
000019a0: SWAP2
000019a1: PUSH0
000019a2: SWAP2
000019a3: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
000019c4: SWAP1
000019c5: SWAP2
000019c6: AND
000019c7: SWAP1
000019c8: PUSH4 0xd15e0053
000019cd: SWAP1
000019ce: PUSH1 0x24
000019d0: ADD
000019d1: PUSH1 0x20
000019d3: PUSH1 0x40
000019d5: MLOAD
000019d6: DUP1
000019d7: DUP4
000019d8: SUB
000019d9: DUP2
000019da: DUP7
000019db: GAS
000019dc: STATICCALL
000019dd: ISZERO
000019de: DUP1
000019df: ISZERO
000019e0: PUSH2 0x19eb
000019e3: JUMPI
000019e4: RETURNDATASIZE
000019e5: PUSH0
000019e6: DUP1
000019e7: RETURNDATACOPY
000019e8: RETURNDATASIZE
000019e9: PUSH0
000019ea: REVERT
000019eb: JUMPDEST
000019ec: POP
000019ed: POP
000019ee: POP
000019ef: POP
000019f0: PUSH1 0x40
000019f2: MLOAD
000019f3: RETURNDATASIZE
000019f4: PUSH1 0x1f
000019f6: NOT
000019f7: PUSH1 0x1f
000019f9: DUP3
000019fa: ADD
000019fb: AND
000019fc: DUP3
000019fd: ADD
000019fe: DUP1
000019ff: PUSH1 0x40
00001a01: MSTORE
00001a02: POP
00001a03: DUP2
00001a04: ADD
00001a05: SWAP1
00001a06: PUSH2 0x1a0f
00001a09: SWAP2
00001a0a: SWAP1
00001a0b: PUSH2 0x24c2
00001a0e: JUMP
00001a0f: JUMPDEST
00001a10: SWAP1
00001a11: POP
00001a12: PUSH0
00001a13: PUSH2 0x1a1f
00001a16: DUP3
00001a17: PUSH2 0x0b67
00001a1a: DUP10
00001a1b: PUSH2 0x137c
00001a1e: JUMP
00001a1f: JUMPDEST
00001a20: SWAP1
00001a21: POP
00001a22: PUSH0
00001a23: PUSH2 0x1a2f
00001a26: DUP4
00001a27: PUSH2 0x0b67
00001a2a: DUP10
00001a2b: PUSH2 0x137c
00001a2e: JUMP
00001a2f: JUMPDEST
00001a30: SWAP1
00001a31: POP
00001a32: PUSH2 0x1a3d
00001a35: DUP9
00001a36: DUP9
00001a37: DUP9
00001a38: DUP7
00001a39: PUSH2 0x1d44
00001a3c: JUMP
00001a3d: JUMPDEST
00001a3e: DUP5
00001a3f: ISZERO
00001a40: PUSH2 0x1adf
00001a43: JUMPI
00001a44: PUSH1 0x40
00001a46: MLOAD
00001a47: PUSH4 0xd5ed3933
00001a4c: PUSH1 0xe0
00001a4e: SHL
00001a4f: DUP2
00001a50: MSTORE
00001a51: PUSH1 0x01
00001a53: PUSH1 0x01
00001a55: PUSH1 0xa0
00001a57: SHL
00001a58: SUB
00001a59: DUP6
00001a5a: DUP2
00001a5b: AND
00001a5c: PUSH1 0x04
00001a5e: DUP4
00001a5f: ADD
00001a60: MSTORE
00001a61: DUP10
00001a62: DUP2
00001a63: AND
00001a64: PUSH1 0x24
00001a66: DUP4
00001a67: ADD
00001a68: MSTORE
00001a69: DUP9
00001a6a: DUP2
00001a6b: AND
00001a6c: PUSH1 0x44
00001a6e: DUP4
00001a6f: ADD
00001a70: MSTORE
00001a71: PUSH1 0x64
00001a73: DUP3
00001a74: ADD
00001a75: DUP9
00001a76: SWAP1
00001a77: MSTORE
00001a78: PUSH1 0x84
00001a7a: DUP3
00001a7b: ADD
00001a7c: DUP5
00001a7d: SWAP1
00001a7e: MSTORE
00001a7f: PUSH1 0xa4
00001a81: DUP3
00001a82: ADD
00001a83: DUP4
00001a84: SWAP1
00001a85: MSTORE
00001a86: PUSH32 0x000000000000000000000000ae05cd22df81871bc7cc2a04becfb516bfe332c8
00001aa7: AND
00001aa8: SWAP1
00001aa9: PUSH4 0xd5ed3933
00001aae: SWAP1
00001aaf: PUSH1 0xc4
00001ab1: ADD
00001ab2: PUSH0
00001ab3: PUSH1 0x40
00001ab5: MLOAD
00001ab6: DUP1
00001ab7: DUP4
00001ab8: SUB
00001ab9: DUP2
00001aba: PUSH0
00001abb: DUP8
00001abc: DUP1
00001abd: EXTCODESIZE
00001abe: ISZERO
00001abf: DUP1
00001ac0: ISZERO
00001ac1: PUSH2 0x1ac8
00001ac4: JUMPI
00001ac5: PUSH0
00001ac6: DUP1
00001ac7: REVERT
00001ac8: JUMPDEST
00001ac9: POP
00001aca: GAS
00001acb: CALL
00001acc: ISZERO
00001acd: DUP1
00001ace: ISZERO
00001acf: PUSH2 0x1ada
00001ad2: JUMPI
00001ad3: RETURNDATASIZE
00001ad4: PUSH0
00001ad5: DUP1
00001ad6: RETURNDATACOPY
00001ad7: RETURNDATASIZE
00001ad8: PUSH0
00001ad9: REVERT
00001ada: JUMPDEST
00001adb: POP
00001adc: POP
00001add: POP
00001ade: POP
00001adf: JUMPDEST
00001ae0: PUSH1 0x01
00001ae2: PUSH1 0x01
00001ae4: PUSH1 0xa0
00001ae6: SHL
00001ae7: SUB
00001ae8: DUP1
00001ae9: DUP9
00001aea: AND
00001aeb: SWAP1
00001aec: DUP10
00001aed: AND
00001aee: PUSH32 0x4beccb90f994c31aced7a23b5611020728a23d8ec5cddd1a3e9d97b96fda8666
00001b0f: PUSH2 0x1b18
00001b12: DUP10
00001b13: DUP8
00001b14: PUSH2 0x1bd9
00001b17: JUMP
00001b18: JUMPDEST
00001b19: PUSH1 0x40
00001b1b: DUP1
00001b1c: MLOAD
00001b1d: SWAP2
00001b1e: DUP3
00001b1f: MSTORE
00001b20: PUSH1 0x20
00001b22: DUP3
00001b23: ADD
00001b24: DUP9
00001b25: SWAP1
00001b26: MSTORE
00001b27: ADD
00001b28: PUSH2 0x196a
00001b2b: JUMP
00001b2c: JUMPDEST
00001b2d: PUSH1 0x60
00001b2f: PUSH2 0x09aa
00001b32: PUSH2 0x0528
00001b35: JUMP
00001b36: JUMPDEST
00001b37: PUSH0
00001b38: PUSH2 0x1b58
00001b3b: JUMP
00001b3c: JUMPDEST
00001b3d: PUSH3 0x461bcd
00001b41: PUSH1 0xe5
00001b43: SHL
00001b44: PUSH0
00001b45: MSTORE
00001b46: PUSH1 0x20
00001b48: PUSH1 0x04
00001b4a: MSTORE
00001b4b: DUP1
00001b4c: PUSH1 0x24
00001b4e: MSTORE
00001b4f: POP
00001b50: DUP1
00001b51: PUSH1 0x44
00001b53: MSTORE
00001b54: PUSH1 0x64
00001b56: PUSH0
00001b57: REVERT
00001b58: JUMPDEST
00001b59: RETURNDATASIZE
00001b5a: DUP1
00001b5b: ISZERO
00001b5c: PUSH2 0x1b97
00001b5f: JUMPI
00001b60: PUSH1 0x20
00001b62: DUP2
00001b63: EQ
00001b64: PUSH2 0x1bc8
00001b67: JUMPI
00001b68: PUSH2 0x1b92
00001b6b: PUSH32 0x475076323a206d616c666f726d6564207472616e7366657220726573756c7400
00001b8c: PUSH1 0x1f
00001b8e: PUSH2 0x1b3c
00001b91: JUMP
00001b92: JUMPDEST
00001b93: PUSH2 0x1bd3
00001b96: JUMP
00001b97: JUMPDEST
00001b98: DUP3
00001b99: EXTCODESIZE
00001b9a: PUSH2 0x1bbf
00001b9d: JUMPI
00001b9e: PUSH2 0x1bbf
00001ba1: PUSH20 0x11d41d8c8e881b9bdd08184818dbdb9d1c9858dd
00001bb6: PUSH1 0x62
00001bb8: SHL
00001bb9: PUSH1 0x14
00001bbb: PUSH2 0x1b3c
00001bbe: JUMP
00001bbf: JUMPDEST
00001bc0: PUSH1 0x01
00001bc2: SWAP2
00001bc3: POP
00001bc4: PUSH2 0x1bd3
00001bc7: JUMP
00001bc8: JUMPDEST
00001bc9: RETURNDATASIZE
00001bca: PUSH0
00001bcb: DUP1
00001bcc: RETURNDATACOPY
00001bcd: PUSH0
00001bce: MLOAD
00001bcf: ISZERO
00001bd0: ISZERO
00001bd1: SWAP2
00001bd2: POP
00001bd3: JUMPDEST
00001bd4: POP
00001bd5: SWAP2
00001bd6: SWAP1
00001bd7: POP
00001bd8: JUMP
00001bd9: JUMPDEST
00001bda: PUSH0
00001bdb: DUP2
00001bdc: ISZERO
00001bdd: PUSH12 0x033b2e3c9fd0803ce8000000
00001bea: PUSH1 0x02
00001bec: DUP5
00001bed: DIV
00001bee: NOT
00001bef: DIV
00001bf0: DUP5
00001bf1: GT
00001bf2: OR
00001bf3: ISZERO
00001bf4: PUSH2 0x1bfb
00001bf7: JUMPI
00001bf8: PUSH0
00001bf9: DUP1
00001bfa: REVERT
00001bfb: JUMPDEST
00001bfc: POP
00001bfd: PUSH12 0x033b2e3c9fd0803ce8000000
00001c0a: SWAP2
00001c0b: SWAP1
00001c0c: SWAP2
00001c0d: MUL
00001c0e: PUSH1 0x02
00001c10: DUP3
00001c11: DIV
00001c12: ADD
00001c13: DIV
00001c14: SWAP1
00001c15: JUMP
00001c16: JUMPDEST
00001c17: PUSH1 0x36
00001c19: SLOAD
00001c1a: PUSH2 0x1c2c
00001c1d: PUSH1 0x01
00001c1f: PUSH1 0x01
00001c21: PUSH1 0x80
00001c23: SHL
00001c24: SUB
00001c25: DUP4
00001c26: AND
00001c27: DUP3
00001c28: PUSH2 0x2595
00001c2b: JUMP
00001c2c: JUMPDEST
00001c2d: PUSH1 0x36
00001c2f: SSTORE
00001c30: PUSH1 0x01
00001c32: PUSH1 0x01
00001c34: PUSH1 0xa0
00001c36: SHL
00001c37: SUB
00001c38: DUP4
00001c39: AND
00001c3a: PUSH0
00001c3b: SWAP1
00001c3c: DUP2
00001c3d: MSTORE
00001c3e: PUSH1 0x34
00001c40: PUSH1 0x20
00001c42: MSTORE
00001c43: PUSH1 0x40
00001c45: SWAP1
00001c46: KECCAK256
00001c47: SLOAD
00001c48: PUSH1 0x01
00001c4a: PUSH1 0x01
00001c4c: PUSH1 0x80
00001c4e: SHL
00001c4f: SUB
00001c50: AND
00001c51: PUSH2 0x1c5a
00001c54: DUP4
00001c55: DUP3
00001c56: PUSH2 0x26f6
00001c59: JUMP
00001c5a: JUMPDEST
00001c5b: PUSH1 0x01
00001c5d: PUSH1 0x01
00001c5f: PUSH1 0xa0
00001c61: SHL
00001c62: SUB
00001c63: DUP6
00001c64: DUP2
00001c65: AND
00001c66: PUSH0
00001c67: SWAP1
00001c68: DUP2
00001c69: MSTORE
00001c6a: PUSH1 0x34
00001c6c: PUSH1 0x20
00001c6e: MSTORE
00001c6f: PUSH1 0x40
00001c71: SWAP1
00001c72: KECCAK256
00001c73: DUP1
00001c74: SLOAD
00001c75: PUSH1 0x01
00001c77: PUSH1 0x01
00001c79: PUSH1 0x80
00001c7b: SHL
00001c7c: SUB
00001c7d: NOT
00001c7e: AND
00001c7f: PUSH1 0x01
00001c81: PUSH1 0x01
00001c83: PUSH1 0x80
00001c85: SHL
00001c86: SUB
00001c87: SWAP4
00001c88: SWAP1
00001c89: SWAP4
00001c8a: AND
00001c8b: SWAP3
00001c8c: SWAP1
00001c8d: SWAP3
00001c8e: OR
00001c8f: SWAP1
00001c90: SWAP2
00001c91: SSTORE
00001c92: PUSH1 0x39
00001c94: SLOAD
00001c95: PUSH2 0x0100
00001c98: SWAP1
00001c99: DIV
00001c9a: AND
00001c9b: DUP1
00001c9c: ISZERO
00001c9d: PUSH2 0x1cf9
00001ca0: JUMPI
00001ca1: PUSH1 0x40
00001ca3: MLOAD
00001ca4: PUSH4 0x18c39f17
00001ca9: PUSH1 0xe1
00001cab: SHL
00001cac: DUP2
00001cad: MSTORE
00001cae: PUSH1 0x01
00001cb0: PUSH1 0x01
00001cb2: PUSH1 0xa0
00001cb4: SHL
00001cb5: SUB
00001cb6: DUP3
00001cb7: AND
00001cb8: SWAP1
00001cb9: PUSH4 0x31873e2e
00001cbe: SWAP1
00001cbf: PUSH2 0x1cd0
00001cc2: SWAP1
00001cc3: DUP9
00001cc4: SWAP1
00001cc5: DUP8
00001cc6: SWAP1
00001cc7: DUP8
00001cc8: SWAP1
00001cc9: PUSH1 0x04
00001ccb: ADD
00001ccc: PUSH2 0x271d
00001ccf: JUMP
00001cd0: JUMPDEST
00001cd1: PUSH0
00001cd2: PUSH1 0x40
00001cd4: MLOAD
00001cd5: DUP1
00001cd6: DUP4
00001cd7: SUB
00001cd8: DUP2
00001cd9: PUSH0
00001cda: DUP8
00001cdb: DUP1
00001cdc: EXTCODESIZE
00001cdd: ISZERO
00001cde: DUP1
00001cdf: ISZERO
00001ce0: PUSH2 0x1ce7
00001ce3: JUMPI
00001ce4: PUSH0
00001ce5: DUP1
00001ce6: REVERT
00001ce7: JUMPDEST
00001ce8: POP
00001ce9: GAS
00001cea: CALL
00001ceb: ISZERO
00001cec: DUP1
00001ced: ISZERO
00001cee: PUSH2 0x10c0
00001cf1: JUMPI
00001cf2: RETURNDATASIZE
00001cf3: PUSH0
00001cf4: DUP1
00001cf5: RETURNDATACOPY
00001cf6: RETURNDATASIZE
00001cf7: PUSH0
00001cf8: REVERT
00001cf9: JUMPDEST
00001cfa: POP
00001cfb: POP
00001cfc: POP
00001cfd: POP
00001cfe: POP
00001cff: JUMP
00001d00: JUMPDEST
00001d01: PUSH1 0x36
00001d03: SLOAD
00001d04: PUSH2 0x1d16
00001d07: PUSH1 0x01
00001d09: PUSH1 0x01
00001d0b: PUSH1 0x80
00001d0d: SHL
00001d0e: SUB
00001d0f: DUP4
00001d10: AND
00001d11: DUP3
00001d12: PUSH2 0x2582
00001d15: JUMP
00001d16: JUMPDEST
00001d17: PUSH1 0x36
00001d19: SSTORE
00001d1a: PUSH1 0x01
00001d1c: PUSH1 0x01
00001d1e: PUSH1 0xa0
00001d20: SHL
00001d21: SUB
00001d22: DUP4
00001d23: AND
00001d24: PUSH0
00001d25: SWAP1
00001d26: DUP2
00001d27: MSTORE
00001d28: PUSH1 0x34
00001d2a: PUSH1 0x20
00001d2c: MSTORE
00001d2d: PUSH1 0x40
00001d2f: SWAP1
00001d30: KECCAK256
00001d31: SLOAD
00001d32: PUSH1 0x01
00001d34: PUSH1 0x01
00001d36: PUSH1 0x80
00001d38: SHL
00001d39: SUB
00001d3a: AND
00001d3b: PUSH2 0x1c5a
00001d3e: DUP4
00001d3f: DUP3
00001d40: PUSH2 0x2747
00001d43: JUMP
00001d44: JUMPDEST
00001d45: PUSH0
00001d46: PUSH2 0x1d4e
00001d49: DUP6
00001d4a: PUSH2 0x137c
00001d4d: JUMP
00001d4e: JUMPDEST
00001d4f: PUSH1 0x01
00001d51: PUSH1 0x01
00001d53: PUSH1 0xa0
00001d55: SHL
00001d56: SUB
00001d57: DUP7
00001d58: AND
00001d59: PUSH0
00001d5a: SWAP1
00001d5b: DUP2
00001d5c: MSTORE
00001d5d: PUSH1 0x34
00001d5f: PUSH1 0x20
00001d61: MSTORE
00001d62: PUSH1 0x40
00001d64: DUP2
00001d65: KECCAK256
00001d66: SLOAD
00001d67: SWAP2
00001d68: SWAP3
00001d69: POP
00001d6a: SWAP1
00001d6b: PUSH2 0x1d85
00001d6e: SWAP1
00001d6f: DUP4
00001d70: SWAP1
00001d71: PUSH1 0x01
00001d73: PUSH1 0x80
00001d75: SHL
00001d76: SWAP1
00001d77: DIV
00001d78: PUSH1 0x01
00001d7a: PUSH1 0x01
00001d7c: PUSH1 0x80
00001d7e: SHL
00001d7f: SUB
00001d80: AND
00001d81: PUSH2 0x139f
00001d84: JUMP
00001d85: JUMPDEST
00001d86: PUSH2 0x1d8f
00001d89: DUP4
00001d8a: DUP6
00001d8b: PUSH2 0x139f
00001d8e: JUMP
00001d8f: JUMPDEST
00001d90: PUSH2 0x1d99
00001d93: SWAP2
00001d94: SWAP1
00001d95: PUSH2 0x2582
00001d98: JUMP
00001d99: JUMPDEST
00001d9a: SWAP1
00001d9b: POP
00001d9c: PUSH0
00001d9d: PUSH2 0x1da5
00001da0: DUP7
00001da1: PUSH2 0x137c
00001da4: JUMP
00001da5: JUMPDEST
00001da6: PUSH1 0x01
00001da8: PUSH1 0x01
00001daa: PUSH1 0xa0
00001dac: SHL
00001dad: SUB
00001dae: DUP8
00001daf: AND
00001db0: PUSH0
00001db1: SWAP1
00001db2: DUP2
00001db3: MSTORE
00001db4: PUSH1 0x34
00001db6: PUSH1 0x20
00001db8: MSTORE
00001db9: PUSH1 0x40
00001dbb: DUP2
00001dbc: KECCAK256
00001dbd: SLOAD
00001dbe: SWAP2
00001dbf: SWAP3
00001dc0: POP
00001dc1: SWAP1
00001dc2: PUSH2 0x1ddc
00001dc5: SWAP1
00001dc6: DUP4
00001dc7: SWAP1
00001dc8: PUSH1 0x01
00001dca: PUSH1 0x80
00001dcc: SHL
00001dcd: SWAP1
00001dce: DIV
00001dcf: PUSH1 0x01
00001dd1: PUSH1 0x01
00001dd3: PUSH1 0x80
00001dd5: SHL
00001dd6: SUB
00001dd7: AND
00001dd8: PUSH2 0x139f
00001ddb: JUMP
00001ddc: JUMPDEST
00001ddd: PUSH2 0x1de6
00001de0: DUP4
00001de1: DUP8
00001de2: PUSH2 0x139f
00001de5: JUMP
00001de6: JUMPDEST
00001de7: PUSH2 0x1df0
00001dea: SWAP2
00001deb: SWAP1
00001dec: PUSH2 0x2582
00001def: JUMP
00001df0: JUMPDEST
00001df1: SWAP1
00001df2: POP
00001df3: PUSH2 0x1dfb
00001df6: DUP6
00001df7: PUSH2 0x14a1
00001dfa: JUMP
00001dfb: JUMPDEST
00001dfc: PUSH1 0x01
00001dfe: PUSH1 0x01
00001e00: PUSH1 0xa0
00001e02: SHL
00001e03: SUB
00001e04: DUP10
00001e05: AND
00001e06: PUSH0
00001e07: SWAP1
00001e08: DUP2
00001e09: MSTORE
00001e0a: PUSH1 0x34
00001e0c: PUSH1 0x20
00001e0e: MSTORE
00001e0f: PUSH1 0x40
00001e11: SWAP1
00001e12: KECCAK256
00001e13: DUP1
00001e14: SLOAD
00001e15: PUSH1 0x01
00001e17: PUSH1 0x01
00001e19: PUSH1 0x80
00001e1b: SHL
00001e1c: SUB
00001e1d: SWAP3
00001e1e: DUP4
00001e1f: AND
00001e20: PUSH1 0x01
00001e22: PUSH1 0x80
00001e24: SHL
00001e25: MUL
00001e26: SWAP3
00001e27: AND
00001e28: SWAP2
00001e29: SWAP1
00001e2a: SWAP2
00001e2b: OR
00001e2c: SWAP1
00001e2d: SSTORE
00001e2e: PUSH2 0x1e36
00001e31: DUP6
00001e32: PUSH2 0x14a1
00001e35: JUMP
00001e36: JUMPDEST
00001e37: PUSH1 0x01
00001e39: PUSH1 0x01
00001e3b: PUSH1 0xa0
00001e3d: SHL
00001e3e: SUB
00001e3f: DUP9
00001e40: AND
00001e41: PUSH0
00001e42: SWAP1
00001e43: DUP2
00001e44: MSTORE
00001e45: PUSH1 0x34
00001e47: PUSH1 0x20
00001e49: MSTORE
00001e4a: PUSH1 0x40
00001e4c: SWAP1
00001e4d: KECCAK256
00001e4e: DUP1
00001e4f: SLOAD
00001e50: PUSH1 0x01
00001e52: PUSH1 0x01
00001e54: PUSH1 0x80
00001e56: SHL
00001e57: SUB
00001e58: SWAP3
00001e59: DUP4
00001e5a: AND
00001e5b: PUSH1 0x01
00001e5d: PUSH1 0x80
00001e5f: SHL
00001e60: MUL
00001e61: SWAP3
00001e62: AND
00001e63: SWAP2
00001e64: SWAP1
00001e65: SWAP2
00001e66: OR
00001e67: SWAP1
00001e68: SSTORE
00001e69: PUSH2 0x1e84
00001e6c: DUP9
00001e6d: DUP9
00001e6e: PUSH2 0x1e7f
00001e71: PUSH2 0x1e7a
00001e74: DUP11
00001e75: DUP11
00001e76: PUSH2 0x1bd9
00001e79: JUMP
00001e7a: JUMPDEST
00001e7b: PUSH2 0x14a1
00001e7e: JUMP
00001e7f: JUMPDEST
00001e80: PUSH2 0x1fb2
00001e83: JUMP
00001e84: JUMPDEST
00001e85: DUP3
00001e86: ISZERO
00001e87: PUSH2 0x1ef2
00001e8a: JUMPI
00001e8b: PUSH1 0x40
00001e8d: MLOAD
00001e8e: DUP4
00001e8f: DUP2
00001e90: MSTORE
00001e91: PUSH1 0x01
00001e93: PUSH1 0x01
00001e95: PUSH1 0xa0
00001e97: SHL
00001e98: SUB
00001e99: DUP10
00001e9a: AND
00001e9b: SWAP1
00001e9c: PUSH0
00001e9d: SWAP1
00001e9e: PUSH0
00001e9f: DUP1
00001ea0: MLOAD
00001ea1: PUSH1 0x20
00001ea3: PUSH2 0x2788
00001ea6: DUP4
00001ea7: CODECOPY
00001ea8: DUP2
00001ea9: MLOAD
00001eaa: SWAP2
00001eab: MSTORE
00001eac: SWAP1
00001ead: PUSH1 0x20
00001eaf: ADD
00001eb0: PUSH1 0x40
00001eb2: MLOAD
00001eb3: DUP1
00001eb4: SWAP2
00001eb5: SUB
00001eb6: SWAP1
00001eb7: LOG3
00001eb8: PUSH1 0x40
00001eba: DUP1
00001ebb: MLOAD
00001ebc: DUP5
00001ebd: DUP2
00001ebe: MSTORE
00001ebf: PUSH1 0x20
00001ec1: DUP2
00001ec2: ADD
00001ec3: DUP6
00001ec4: SWAP1
00001ec5: MSTORE
00001ec6: DUP1
00001ec7: DUP3
00001ec8: ADD
00001ec9: DUP8
00001eca: SWAP1
00001ecb: MSTORE
00001ecc: SWAP1
00001ecd: MLOAD
00001ece: PUSH1 0x01
00001ed0: PUSH1 0x01
00001ed2: PUSH1 0xa0
00001ed4: SHL
00001ed5: SUB
00001ed6: DUP11
00001ed7: AND
00001ed8: SWAP2
00001ed9: CALLER
00001eda: SWAP2
00001edb: PUSH0
00001edc: DUP1
00001edd: MLOAD
00001ede: PUSH1 0x20
00001ee0: PUSH2 0x2768
00001ee3: DUP4
00001ee4: CODECOPY
00001ee5: DUP2
00001ee6: MLOAD
00001ee7: SWAP2
00001ee8: MSTORE
00001ee9: SWAP2
00001eea: DUP2
00001eeb: SWAP1
00001eec: SUB
00001eed: PUSH1 0x60
00001eef: ADD
00001ef0: SWAP1
00001ef1: LOG3
00001ef2: JUMPDEST
00001ef3: DUP7
00001ef4: PUSH1 0x01
00001ef6: PUSH1 0x01
00001ef8: PUSH1 0xa0
00001efa: SHL
00001efb: SUB
00001efc: AND
00001efd: DUP9
00001efe: PUSH1 0x01
00001f00: PUSH1 0x01
00001f02: PUSH1 0xa0
00001f04: SHL
00001f05: SUB
00001f06: AND
00001f07: EQ
00001f08: ISZERO
00001f09: DUP1
00001f0a: ISZERO
00001f0b: PUSH2 0x1f13
00001f0e: JUMPI
00001f0f: POP
00001f10: PUSH0
00001f11: DUP2
00001f12: GT
00001f13: JUMPDEST
00001f14: ISZERO
00001f15: PUSH2 0x1f80
00001f18: JUMPI
00001f19: PUSH1 0x40
00001f1b: MLOAD
00001f1c: DUP2
00001f1d: DUP2
00001f1e: MSTORE
00001f1f: PUSH1 0x01
00001f21: PUSH1 0x01
00001f23: PUSH1 0xa0
00001f25: SHL
00001f26: SUB
00001f27: DUP9
00001f28: AND
00001f29: SWAP1
00001f2a: PUSH0
00001f2b: SWAP1
00001f2c: PUSH0
00001f2d: DUP1
00001f2e: MLOAD
00001f2f: PUSH1 0x20
00001f31: PUSH2 0x2788
00001f34: DUP4
00001f35: CODECOPY
00001f36: DUP2
00001f37: MLOAD
00001f38: SWAP2
00001f39: MSTORE
00001f3a: SWAP1
00001f3b: PUSH1 0x20
00001f3d: ADD
00001f3e: PUSH1 0x40
00001f40: MLOAD
00001f41: DUP1
00001f42: SWAP2
00001f43: SUB
00001f44: SWAP1
00001f45: LOG3
00001f46: PUSH1 0x40
00001f48: DUP1
00001f49: MLOAD
00001f4a: DUP3
00001f4b: DUP2
00001f4c: MSTORE
00001f4d: PUSH1 0x20
00001f4f: DUP2
00001f50: ADD
00001f51: DUP4
00001f52: SWAP1
00001f53: MSTORE
00001f54: DUP1
00001f55: DUP3
00001f56: ADD
00001f57: DUP8
00001f58: SWAP1
00001f59: MSTORE
00001f5a: SWAP1
00001f5b: MLOAD
00001f5c: PUSH1 0x01
00001f5e: PUSH1 0x01
00001f60: PUSH1 0xa0
00001f62: SHL
00001f63: SUB
00001f64: DUP10
00001f65: AND
00001f66: SWAP2
00001f67: CALLER
00001f68: SWAP2
00001f69: PUSH0
00001f6a: DUP1
00001f6b: MLOAD
00001f6c: PUSH1 0x20
00001f6e: PUSH2 0x2768
00001f71: DUP4
00001f72: CODECOPY
00001f73: DUP2
00001f74: MLOAD
00001f75: SWAP2
00001f76: MSTORE
00001f77: SWAP2
00001f78: DUP2
00001f79: SWAP1
00001f7a: SUB
00001f7b: PUSH1 0x60
00001f7d: ADD
00001f7e: SWAP1
00001f7f: LOG3
00001f80: JUMPDEST
00001f81: DUP7
00001f82: PUSH1 0x01
00001f84: PUSH1 0x01
00001f86: PUSH1 0xa0
00001f88: SHL
00001f89: SUB
00001f8a: AND
00001f8b: DUP9
00001f8c: PUSH1 0x01
00001f8e: PUSH1 0x01
00001f90: PUSH1 0xa0
00001f92: SHL
00001f93: SUB
00001f94: AND
00001f95: PUSH0
00001f96: DUP1
00001f97: MLOAD
00001f98: PUSH1 0x20
00001f9a: PUSH2 0x2788
00001f9d: DUP4
00001f9e: CODECOPY
00001f9f: DUP2
00001fa0: MLOAD
00001fa1: SWAP2
00001fa2: MSTORE
00001fa3: DUP9
00001fa4: PUSH1 0x40
00001fa6: MLOAD
00001fa7: PUSH2 0x196a
00001faa: SWAP2
00001fab: DUP2
00001fac: MSTORE
00001fad: PUSH1 0x20
00001faf: ADD
00001fb0: SWAP1
00001fb1: JUMP
00001fb2: JUMPDEST
00001fb3: PUSH1 0x01
00001fb5: PUSH1 0x01
00001fb7: PUSH1 0xa0
00001fb9: SHL
00001fba: SUB
00001fbb: DUP4
00001fbc: AND
00001fbd: PUSH0
00001fbe: SWAP1
00001fbf: DUP2
00001fc0: MSTORE
00001fc1: PUSH1 0x34
00001fc3: PUSH1 0x20
00001fc5: MSTORE
00001fc6: PUSH1 0x40
00001fc8: SWAP1
00001fc9: KECCAK256
00001fca: SLOAD
00001fcb: PUSH1 0x01
00001fcd: PUSH1 0x01
00001fcf: PUSH1 0x80
00001fd1: SHL
00001fd2: SUB
00001fd3: AND
00001fd4: PUSH2 0x1fdd
00001fd7: DUP3
00001fd8: DUP3
00001fd9: PUSH2 0x2747
00001fdc: JUMP
00001fdd: JUMPDEST
00001fde: PUSH1 0x01
00001fe0: PUSH1 0x01
00001fe2: PUSH1 0xa0
00001fe4: SHL
00001fe5: SUB
00001fe6: DUP6
00001fe7: DUP2
00001fe8: AND
00001fe9: PUSH0
00001fea: SWAP1
00001feb: DUP2
00001fec: MSTORE
00001fed: PUSH1 0x34
00001fef: PUSH1 0x20
00001ff1: MSTORE
00001ff2: PUSH1 0x40
00001ff4: DUP1
00001ff5: DUP3
00001ff6: KECCAK256
00001ff7: DUP1
00001ff8: SLOAD
00001ff9: PUSH1 0x01
00001ffb: PUSH1 0x01
00001ffd: PUSH1 0x80
00001fff: SHL
00002000: SUB
00002001: NOT
00002002: AND
00002003: PUSH1 0x01
00002005: PUSH1 0x01
00002007: PUSH1 0x80
00002009: SHL
0000200a: SUB
0000200b: SWAP6
0000200c: DUP7
0000200d: AND
0000200e: OR
0000200f: SWAP1
00002010: SSTORE
00002011: SWAP2
00002012: DUP7
00002013: AND
00002014: DUP2
00002015: MSTORE
00002016: KECCAK256
00002017: SLOAD
00002018: AND
00002019: PUSH2 0x2022
0000201c: DUP4
0000201d: DUP3
0000201e: PUSH2 0x26f6
00002021: JUMP
00002022: JUMPDEST
00002023: PUSH1 0x01
00002025: PUSH1 0x01
00002027: PUSH1 0xa0
00002029: SHL
0000202a: SUB
0000202b: DUP6
0000202c: DUP2
0000202d: AND
0000202e: PUSH0
0000202f: SWAP1
00002030: DUP2
00002031: MSTORE
00002032: PUSH1 0x34
00002034: PUSH1 0x20
00002036: MSTORE
00002037: PUSH1 0x40
00002039: SWAP1
0000203a: KECCAK256
0000203b: DUP1
0000203c: SLOAD
0000203d: PUSH1 0x01
0000203f: PUSH1 0x01
00002041: PUSH1 0x80
00002043: SHL
00002044: SUB
00002045: NOT
00002046: AND
00002047: PUSH1 0x01
00002049: PUSH1 0x01
0000204b: PUSH1 0x80
0000204d: SHL
0000204e: SUB
0000204f: SWAP4
00002050: SWAP1
00002051: SWAP4
00002052: AND
00002053: SWAP3
00002054: SWAP1
00002055: SWAP3
00002056: OR
00002057: SWAP1
00002058: SWAP2
00002059: SSTORE
0000205a: PUSH1 0x39
0000205c: SLOAD
0000205d: PUSH2 0x0100
00002060: SWAP1
00002061: DIV
00002062: AND
00002063: DUP1
00002064: ISZERO
00002065: PUSH2 0x2140
00002068: JUMPI
00002069: PUSH1 0x36
0000206b: SLOAD
0000206c: PUSH1 0x40
0000206e: MLOAD
0000206f: PUSH4 0x18c39f17
00002074: PUSH1 0xe1
00002076: SHL
00002077: DUP2
00002078: MSTORE
00002079: PUSH1 0x01
0000207b: PUSH1 0x01
0000207d: PUSH1 0xa0
0000207f: SHL
00002080: SUB
00002081: DUP4
00002082: AND
00002083: SWAP1
00002084: PUSH4 0x31873e2e
00002089: SWAP1
0000208a: PUSH2 0x209b
0000208d: SWAP1
0000208e: DUP11
0000208f: SWAP1
00002090: DUP6
00002091: SWAP1
00002092: DUP10
00002093: SWAP1
00002094: PUSH1 0x04
00002096: ADD
00002097: PUSH2 0x271d
0000209a: JUMP
0000209b: JUMPDEST
0000209c: PUSH0
0000209d: PUSH1 0x40
0000209f: MLOAD
000020a0: DUP1
000020a1: DUP4
000020a2: SUB
000020a3: DUP2
000020a4: PUSH0
000020a5: DUP8
000020a6: DUP1
000020a7: EXTCODESIZE
000020a8: ISZERO
000020a9: DUP1
000020aa: ISZERO
000020ab: PUSH2 0x20b2
000020ae: JUMPI
000020af: PUSH0
000020b0: DUP1
000020b1: REVERT
000020b2: JUMPDEST
000020b3: POP
000020b4: GAS
000020b5: CALL
000020b6: ISZERO
000020b7: DUP1
000020b8: ISZERO
000020b9: PUSH2 0x20c4
000020bc: JUMPI
000020bd: RETURNDATASIZE
000020be: PUSH0
000020bf: DUP1
000020c0: RETURNDATACOPY
000020c1: RETURNDATASIZE
000020c2: PUSH0
000020c3: REVERT
000020c4: JUMPDEST
000020c5: POP
000020c6: POP
000020c7: POP
000020c8: POP
000020c9: DUP6
000020ca: PUSH1 0x01
000020cc: PUSH1 0x01
000020ce: PUSH1 0xa0
000020d0: SHL
000020d1: SUB
000020d2: AND
000020d3: DUP8
000020d4: PUSH1 0x01
000020d6: PUSH1 0x01
000020d8: PUSH1 0xa0
000020da: SHL
000020db: SUB
000020dc: AND
000020dd: EQ
000020de: PUSH2 0x1974
000020e1: JUMPI
000020e2: PUSH1 0x40
000020e4: MLOAD
000020e5: PUSH4 0x18c39f17
000020ea: PUSH1 0xe1
000020ec: SHL
000020ed: DUP2
000020ee: MSTORE
000020ef: PUSH1 0x01
000020f1: PUSH1 0x01
000020f3: PUSH1 0xa0
000020f5: SHL
000020f6: SUB
000020f7: DUP4
000020f8: AND
000020f9: SWAP1
000020fa: PUSH4 0x31873e2e
000020ff: SWAP1
00002100: PUSH2 0x2111
00002103: SWAP1
00002104: DUP10
00002105: SWAP1
00002106: DUP6
00002107: SWAP1
00002108: DUP9
00002109: SWAP1
0000210a: PUSH1 0x04
0000210c: ADD
0000210d: PUSH2 0x271d
00002110: JUMP
00002111: JUMPDEST
00002112: PUSH0
00002113: PUSH1 0x40
00002115: MLOAD
00002116: DUP1
00002117: DUP4
00002118: SUB
00002119: DUP2
0000211a: PUSH0
0000211b: DUP8
0000211c: DUP1
0000211d: EXTCODESIZE
0000211e: ISZERO
0000211f: DUP1
00002120: ISZERO
00002121: PUSH2 0x2128
00002124: JUMPI
00002125: PUSH0
00002126: DUP1
00002127: REVERT
00002128: JUMPDEST
00002129: POP
0000212a: GAS
0000212b: CALL
0000212c: ISZERO
0000212d: DUP1
0000212e: ISZERO
0000212f: PUSH2 0x213a
00002132: JUMPI
00002133: RETURNDATASIZE
00002134: PUSH0
00002135: DUP1
00002136: RETURNDATACOPY
00002137: RETURNDATASIZE
00002138: PUSH0
00002139: REVERT
0000213a: JUMPDEST
0000213b: POP
0000213c: POP
0000213d: POP
0000213e: POP
0000213f: POP
00002140: JUMPDEST
00002141: POP
00002142: POP
00002143: POP
00002144: POP
00002145: POP
00002146: POP
00002147: JUMP
00002148: JUMPDEST
00002149: PUSH0
0000214a: DUP2
0000214b: MLOAD
0000214c: DUP1
0000214d: DUP5
0000214e: MSTORE
0000214f: PUSH0
00002150: JUMPDEST
00002151: DUP2
00002152: DUP2
00002153: LT
00002154: ISZERO
00002155: PUSH2 0x216c
00002158: JUMPI
00002159: PUSH1 0x20
0000215b: DUP2
0000215c: DUP6
0000215d: ADD
0000215e: DUP2
0000215f: ADD
00002160: MLOAD
00002161: DUP7
00002162: DUP4
00002163: ADD
00002164: DUP3
00002165: ADD
00002166: MSTORE
00002167: ADD
00002168: PUSH2 0x2150
0000216b: JUMP
0000216c: JUMPDEST
0000216d: POP
0000216e: PUSH0
0000216f: PUSH1 0x20
00002171: DUP3
00002172: DUP7
00002173: ADD
00002174: ADD
00002175: MSTORE
00002176: PUSH1 0x20
00002178: PUSH1 0x1f
0000217a: NOT
0000217b: PUSH1 0x1f
0000217d: DUP4
0000217e: ADD
0000217f: AND
00002180: DUP6
00002181: ADD
00002182: ADD
00002183: SWAP2
00002184: POP
00002185: POP
00002186: SWAP3
00002187: SWAP2
00002188: POP
00002189: POP
0000218a: JUMP
0000218b: JUMPDEST
0000218c: PUSH1 0x20
0000218e: DUP2
0000218f: MSTORE
00002190: PUSH0
00002191: PUSH2 0x219d
00002194: PUSH1 0x20
00002196: DUP4
00002197: ADD
00002198: DUP5
00002199: PUSH2 0x2148
0000219c: JUMP
0000219d: JUMPDEST
0000219e: SWAP4
0000219f: SWAP3
000021a0: POP
000021a1: POP
000021a2: POP
000021a3: JUMP
000021a4: JUMPDEST
000021a5: PUSH1 0x01
000021a7: PUSH1 0x01
000021a9: PUSH1 0xa0
000021ab: SHL
000021ac: SUB
000021ad: DUP2
000021ae: AND
000021af: DUP2
000021b0: EQ
000021b1: PUSH2 0x21b8
000021b4: JUMPI
000021b5: PUSH0
000021b6: DUP1
000021b7: REVERT
000021b8: JUMPDEST
000021b9: POP
000021ba: JUMP
000021bb: JUMPDEST
000021bc: DUP1
000021bd: CALLDATALOAD
000021be: PUSH2 0x21c6
000021c1: DUP2
000021c2: PUSH2 0x21a4
000021c5: JUMP
000021c6: JUMPDEST
000021c7: SWAP2
000021c8: SWAP1
000021c9: POP
000021ca: JUMP
000021cb: JUMPDEST
000021cc: PUSH0
000021cd: DUP1
000021ce: PUSH1 0x40
000021d0: DUP4
000021d1: DUP6
000021d2: SUB
000021d3: SLT
000021d4: ISZERO
000021d5: PUSH2 0x21dc
000021d8: JUMPI
000021d9: PUSH0
000021da: DUP1
000021db: REVERT
000021dc: JUMPDEST
000021dd: DUP3
000021de: CALLDATALOAD
000021df: PUSH2 0x21e7
000021e2: DUP2
000021e3: PUSH2 0x21a4
000021e6: JUMP
000021e7: JUMPDEST
000021e8: SWAP5
000021e9: PUSH1 0x20
000021eb: SWAP4
000021ec: SWAP1
000021ed: SWAP4
000021ee: ADD
000021ef: CALLDATALOAD
000021f0: SWAP4
000021f1: POP
000021f2: POP
000021f3: POP
000021f4: JUMP
000021f5: JUMPDEST
000021f6: PUSH0
000021f7: PUSH1 0x20
000021f9: DUP3
000021fa: DUP5
000021fb: SUB
000021fc: SLT
000021fd: ISZERO
000021fe: PUSH2 0x2205
00002201: JUMPI
00002202: PUSH0
00002203: DUP1
00002204: REVERT
00002205: JUMPDEST
00002206: DUP2
00002207: CALLDATALOAD
00002208: PUSH2 0x219d
0000220b: DUP2
0000220c: PUSH2 0x21a4
0000220f: JUMP
00002210: JUMPDEST
00002211: DUP1
00002212: CALLDATALOAD
00002213: PUSH1 0xff
00002215: DUP2
00002216: AND
00002217: DUP2
00002218: EQ
00002219: PUSH2 0x21c6
0000221c: JUMPI
0000221d: PUSH0
0000221e: DUP1
0000221f: REVERT
00002220: JUMPDEST
00002221: PUSH0
00002222: DUP1
00002223: DUP4
00002224: PUSH1 0x1f
00002226: DUP5
00002227: ADD
00002228: SLT
00002229: PUSH2 0x2230
0000222c: JUMPI
0000222d: PUSH0
0000222e: DUP1
0000222f: REVERT
00002230: JUMPDEST
00002231: POP
00002232: DUP2
00002233: CALLDATALOAD
00002234: PUSH8 0xffffffffffffffff
0000223d: DUP2
0000223e: GT
0000223f: ISZERO
00002240: PUSH2 0x2247
00002243: JUMPI
00002244: PUSH0
00002245: DUP1
00002246: REVERT
00002247: JUMPDEST
00002248: PUSH1 0x20
0000224a: DUP4
0000224b: ADD
0000224c: SWAP2
0000224d: POP
0000224e: DUP4
0000224f: PUSH1 0x20
00002251: DUP3
00002252: DUP6
00002253: ADD
00002254: ADD
00002255: GT
00002256: ISZERO
00002257: PUSH2 0x225e
0000225a: JUMPI
0000225b: PUSH0
0000225c: DUP1
0000225d: REVERT
0000225e: JUMPDEST
0000225f: SWAP3
00002260: POP
00002261: SWAP3
00002262: SWAP1
00002263: POP
00002264: JUMP
00002265: JUMPDEST
00002266: PUSH0
00002267: DUP1
00002268: PUSH0
00002269: DUP1
0000226a: PUSH0
0000226b: DUP1
0000226c: PUSH0
0000226d: DUP1
0000226e: PUSH0
0000226f: DUP1
00002270: PUSH0
00002271: PUSH2 0x0100
00002274: DUP13
00002275: DUP15
00002276: SUB
00002277: SLT
00002278: ISZERO
00002279: PUSH2 0x2280
0000227c: JUMPI
0000227d: PUSH0
0000227e: DUP1
0000227f: REVERT
00002280: JUMPDEST
00002281: PUSH2 0x2289
00002284: DUP13
00002285: PUSH2 0x21bb
00002288: JUMP
00002289: JUMPDEST
0000228a: SWAP11
0000228b: POP
0000228c: PUSH2 0x2297
0000228f: PUSH1 0x20
00002291: DUP14
00002292: ADD
00002293: PUSH2 0x21bb
00002296: JUMP
00002297: JUMPDEST
00002298: SWAP10
00002299: POP
0000229a: PUSH2 0x22a5
0000229d: PUSH1 0x40
0000229f: DUP14
000022a0: ADD
000022a1: PUSH2 0x21bb
000022a4: JUMP
000022a5: JUMPDEST
000022a6: SWAP9
000022a7: POP
000022a8: PUSH2 0x22b3
000022ab: PUSH1 0x60
000022ad: DUP14
000022ae: ADD
000022af: PUSH2 0x21bb
000022b2: JUMP
000022b3: JUMPDEST
000022b4: SWAP8
000022b5: POP
000022b6: PUSH2 0x22c1
000022b9: PUSH1 0x80
000022bb: DUP14
000022bc: ADD
000022bd: PUSH2 0x2210
000022c0: JUMP
000022c1: JUMPDEST
000022c2: SWAP7
000022c3: POP
000022c4: PUSH8 0xffffffffffffffff
000022cd: DUP1
000022ce: PUSH1 0xa0
000022d0: DUP15
000022d1: ADD
000022d2: CALLDATALOAD
000022d3: GT
000022d4: ISZERO
000022d5: PUSH2 0x22dc
000022d8: JUMPI
000022d9: PUSH0
000022da: DUP1
000022db: REVERT
000022dc: JUMPDEST
000022dd: PUSH2 0x22ec
000022e0: DUP15
000022e1: PUSH1 0xa0
000022e3: DUP16
000022e4: ADD
000022e5: CALLDATALOAD
000022e6: DUP16
000022e7: ADD
000022e8: PUSH2 0x2220
000022eb: JUMP
000022ec: JUMPDEST
000022ed: SWAP1
000022ee: SWAP8
000022ef: POP
000022f0: SWAP6
000022f1: POP
000022f2: PUSH1 0xc0
000022f4: DUP14
000022f5: ADD
000022f6: CALLDATALOAD
000022f7: DUP2
000022f8: LT
000022f9: ISZERO
000022fa: PUSH2 0x2301
000022fd: JUMPI
000022fe: PUSH0
000022ff: DUP1
00002300: REVERT
00002301: JUMPDEST
00002302: PUSH2 0x2311
00002305: DUP15
00002306: PUSH1 0xc0
00002308: DUP16
00002309: ADD
0000230a: CALLDATALOAD
0000230b: DUP16
0000230c: ADD
0000230d: PUSH2 0x2220
00002310: JUMP
00002311: JUMPDEST
00002312: SWAP1
00002313: SWAP6
00002314: POP
00002315: SWAP4
00002316: POP
00002317: PUSH1 0xe0
00002319: DUP14
0000231a: ADD
0000231b: CALLDATALOAD
0000231c: DUP2
0000231d: LT
0000231e: ISZERO
0000231f: PUSH2 0x2326
00002322: JUMPI
00002323: PUSH0
00002324: DUP1
00002325: REVERT
00002326: JUMPDEST
00002327: POP
00002328: PUSH2 0x2337
0000232b: DUP14
0000232c: PUSH1 0xe0
0000232e: DUP15
0000232f: ADD
00002330: CALLDATALOAD
00002331: DUP15
00002332: ADD
00002333: PUSH2 0x2220
00002336: JUMP
00002337: JUMPDEST
00002338: DUP2
00002339: SWAP4
0000233a: POP
0000233b: DUP1
0000233c: SWAP3
0000233d: POP
0000233e: POP
0000233f: POP
00002340: SWAP3
00002341: SWAP6
00002342: SWAP9
00002343: SWAP12
00002344: POP
00002345: SWAP3
00002346: SWAP6
00002347: SWAP9
00002348: SWAP12
00002349: SWAP1
0000234a: SWAP4
0000234b: SWAP7
0000234c: SWAP10
0000234d: POP
0000234e: JUMP
0000234f: JUMPDEST
00002350: PUSH0
00002351: DUP1
00002352: PUSH0
00002353: PUSH1 0x60
00002355: DUP5
00002356: DUP7
00002357: SUB
00002358: SLT
00002359: ISZERO
0000235a: PUSH2 0x2361
0000235d: JUMPI
0000235e: PUSH0
0000235f: DUP1
00002360: REVERT
00002361: JUMPDEST
00002362: DUP4
00002363: CALLDATALOAD
00002364: PUSH2 0x236c
00002367: DUP2
00002368: PUSH2 0x21a4
0000236b: JUMP
0000236c: JUMPDEST
0000236d: SWAP3
0000236e: POP
0000236f: PUSH1 0x20
00002371: DUP5
00002372: ADD
00002373: CALLDATALOAD
00002374: PUSH2 0x237c
00002377: DUP2
00002378: PUSH2 0x21a4
0000237b: JUMP
0000237c: JUMPDEST
0000237d: SWAP3
0000237e: SWAP6
0000237f: SWAP3
00002380: SWAP5
00002381: POP
00002382: POP
00002383: POP
00002384: PUSH1 0x40
00002386: SWAP2
00002387: SWAP1
00002388: SWAP2
00002389: ADD
0000238a: CALLDATALOAD
0000238b: SWAP1
0000238c: JUMP
0000238d: JUMPDEST
0000238e: PUSH0
0000238f: DUP1
00002390: PUSH1 0x40
00002392: DUP4
00002393: DUP6
00002394: SUB
00002395: SLT
00002396: ISZERO
00002397: PUSH2 0x239e
0000239a: JUMPI
0000239b: PUSH0
0000239c: DUP1
0000239d: REVERT
0000239e: JUMPDEST
0000239f: POP
000023a0: POP
000023a1: DUP1
000023a2: CALLDATALOAD
000023a3: SWAP3
000023a4: PUSH1 0x20
000023a6: SWAP1
000023a7: SWAP2
000023a8: ADD
000023a9: CALLDATALOAD
000023aa: SWAP2
000023ab: POP
000023ac: JUMP
000023ad: JUMPDEST
000023ae: PUSH0
000023af: DUP1
000023b0: PUSH0
000023b1: DUP1
000023b2: PUSH1 0x80
000023b4: DUP6
000023b5: DUP8
000023b6: SUB
000023b7: SLT
000023b8: ISZERO
000023b9: PUSH2 0x23c0
000023bc: JUMPI
000023bd: PUSH0
000023be: DUP1
000023bf: REVERT
000023c0: JUMPDEST
000023c1: DUP5
000023c2: CALLDATALOAD
000023c3: PUSH2 0x23cb
000023c6: DUP2
000023c7: PUSH2 0x21a4
000023ca: JUMP
000023cb: JUMPDEST
000023cc: SWAP4
000023cd: POP
000023ce: PUSH1 0x20
000023d0: DUP6
000023d1: ADD
000023d2: CALLDATALOAD
000023d3: PUSH2 0x23db
000023d6: DUP2
000023d7: PUSH2 0x21a4
000023da: JUMP
000023db: JUMPDEST
000023dc: SWAP4
000023dd: SWAP7
000023de: SWAP4
000023df: SWAP6
000023e0: POP
000023e1: POP
000023e2: POP
000023e3: POP
000023e4: PUSH1 0x40
000023e6: DUP3
000023e7: ADD
000023e8: CALLDATALOAD
000023e9: SWAP2
000023ea: PUSH1 0x60
000023ec: ADD
000023ed: CALLDATALOAD
000023ee: SWAP1
000023ef: JUMP
000023f0: JUMPDEST
000023f1: PUSH0
000023f2: DUP1
000023f3: PUSH0
000023f4: DUP1
000023f5: PUSH0
000023f6: DUP1
000023f7: PUSH0
000023f8: PUSH1 0xe0
000023fa: DUP9
000023fb: DUP11
000023fc: SUB
000023fd: SLT
000023fe: ISZERO
000023ff: PUSH2 0x2406
00002402: JUMPI
00002403: PUSH0
00002404: DUP1
00002405: REVERT
00002406: JUMPDEST
00002407: DUP8
00002408: CALLDATALOAD
00002409: PUSH2 0x2411
0000240c: DUP2
0000240d: PUSH2 0x21a4
00002410: JUMP
00002411: JUMPDEST
00002412: SWAP7
00002413: POP
00002414: PUSH1 0x20
00002416: DUP9
00002417: ADD
00002418: CALLDATALOAD
00002419: PUSH2 0x2421
0000241c: DUP2
0000241d: PUSH2 0x21a4
00002420: JUMP
00002421: JUMPDEST
00002422: SWAP6
00002423: POP
00002424: PUSH1 0x40
00002426: DUP9
00002427: ADD
00002428: CALLDATALOAD
00002429: SWAP5
0000242a: POP
0000242b: PUSH1 0x60
0000242d: DUP9
0000242e: ADD
0000242f: CALLDATALOAD
00002430: SWAP4
00002431: POP
00002432: PUSH2 0x243d
00002435: PUSH1 0x80
00002437: DUP10
00002438: ADD
00002439: PUSH2 0x2210
0000243c: JUMP
0000243d: JUMPDEST
0000243e: SWAP3
0000243f: POP
00002440: PUSH1 0xa0
00002442: DUP9
00002443: ADD
00002444: CALLDATALOAD
00002445: SWAP2
00002446: POP
00002447: PUSH1 0xc0
00002449: DUP9
0000244a: ADD
0000244b: CALLDATALOAD
0000244c: SWAP1
0000244d: POP
0000244e: SWAP3
0000244f: SWAP6
00002450: SWAP9
00002451: SWAP2
00002452: SWAP5
00002453: SWAP8
00002454: POP
00002455: SWAP3
00002456: SWAP6
00002457: POP
00002458: JUMP
00002459: JUMPDEST
0000245a: PUSH0
0000245b: DUP1
0000245c: PUSH1 0x40
0000245e: DUP4
0000245f: DUP6
00002460: SUB
00002461: SLT
00002462: ISZERO
00002463: PUSH2 0x246a
00002466: JUMPI
00002467: PUSH0
00002468: DUP1
00002469: REVERT
0000246a: JUMPDEST
0000246b: DUP3
0000246c: CALLDATALOAD
0000246d: PUSH2 0x2475
00002470: DUP2
00002471: PUSH2 0x21a4
00002474: JUMP
00002475: JUMPDEST
00002476: SWAP2
00002477: POP
00002478: PUSH1 0x20
0000247a: DUP4
0000247b: ADD
0000247c: CALLDATALOAD
0000247d: PUSH2 0x2485
00002480: DUP2
00002481: PUSH2 0x21a4
00002484: JUMP
00002485: JUMPDEST
00002486: DUP1
00002487: SWAP2
00002488: POP
00002489: POP
0000248a: SWAP3
0000248b: POP
0000248c: SWAP3
0000248d: SWAP1
0000248e: POP
0000248f: JUMP
00002490: JUMPDEST
00002491: PUSH1 0x01
00002493: DUP2
00002494: DUP2
00002495: SHR
00002496: SWAP1
00002497: DUP3
00002498: AND
00002499: DUP1
0000249a: PUSH2 0x24a4
0000249d: JUMPI
0000249e: PUSH1 0x7f
000024a0: DUP3
000024a1: AND
000024a2: SWAP2
000024a3: POP
000024a4: JUMPDEST
000024a5: PUSH1 0x20
000024a7: DUP3
000024a8: LT
000024a9: DUP2
000024aa: SUB
000024ab: PUSH2 0x1bd3
000024ae: JUMPI
000024af: PUSH4 0x4e487b71
000024b4: PUSH1 0xe0
000024b6: SHL
000024b7: PUSH0
000024b8: MSTORE
000024b9: PUSH1 0x22
000024bb: PUSH1 0x04
000024bd: MSTORE
000024be: PUSH1 0x24
000024c0: PUSH0
000024c1: REVERT
000024c2: JUMPDEST
000024c3: PUSH0
000024c4: PUSH1 0x20
000024c6: DUP3
000024c7: DUP5
000024c8: SUB
000024c9: SLT
000024ca: ISZERO
000024cb: PUSH2 0x24d2
000024ce: JUMPI
000024cf: PUSH0
000024d0: DUP1
000024d1: REVERT
000024d2: JUMPDEST
000024d3: POP
000024d4: MLOAD
000024d5: SWAP2
000024d6: SWAP1
000024d7: POP
000024d8: JUMP
000024d9: JUMPDEST
000024da: DUP2
000024db: DUP4
000024dc: MSTORE
000024dd: DUP2
000024de: DUP2
000024df: PUSH1 0x20
000024e1: DUP6
000024e2: ADD
000024e3: CALLDATACOPY
000024e4: POP
000024e5: PUSH0
000024e6: DUP3
000024e7: DUP3
000024e8: ADD
000024e9: PUSH1 0x20
000024eb: SWAP1
000024ec: DUP2
000024ed: ADD
000024ee: SWAP2
000024ef: SWAP1
000024f0: SWAP2
000024f1: MSTORE
000024f2: PUSH1 0x1f
000024f4: SWAP1
000024f5: SWAP2
000024f6: ADD
000024f7: PUSH1 0x1f
000024f9: NOT
000024fa: AND
000024fb: SWAP1
000024fc: SWAP2
000024fd: ADD
000024fe: ADD
000024ff: SWAP1
00002500: JUMP
00002501: JUMPDEST
00002502: PUSH1 0x01
00002504: PUSH1 0x01
00002506: PUSH1 0xa0
00002508: SHL
00002509: SUB
0000250a: DUP11
0000250b: DUP2
0000250c: AND
0000250d: DUP3
0000250e: MSTORE
0000250f: DUP10
00002510: AND
00002511: PUSH1 0x20
00002513: DUP3
00002514: ADD
00002515: MSTORE
00002516: PUSH1 0xff
00002518: DUP9
00002519: AND
0000251a: PUSH1 0x40
0000251c: DUP3
0000251d: ADD
0000251e: MSTORE
0000251f: PUSH1 0xc0
00002521: PUSH1 0x60
00002523: DUP3
00002524: ADD
00002525: DUP2
00002526: SWAP1
00002527: MSTORE
00002528: PUSH0
00002529: SWAP1
0000252a: PUSH2 0x2536
0000252d: SWAP1
0000252e: DUP4
0000252f: ADD
00002530: DUP9
00002531: DUP11
00002532: PUSH2 0x24d9
00002535: JUMP
00002536: JUMPDEST
00002537: DUP3
00002538: DUP2
00002539: SUB
0000253a: PUSH1 0x80
0000253c: DUP5
0000253d: ADD
0000253e: MSTORE
0000253f: PUSH2 0x2549
00002542: DUP2
00002543: DUP8
00002544: DUP10
00002545: PUSH2 0x24d9
00002548: JUMP
00002549: JUMPDEST
0000254a: SWAP1
0000254b: POP
0000254c: DUP3
0000254d: DUP2
0000254e: SUB
0000254f: PUSH1 0xa0
00002551: DUP5
00002552: ADD
00002553: MSTORE
00002554: PUSH2 0x255e
00002557: DUP2
00002558: DUP6
00002559: DUP8
0000255a: PUSH2 0x24d9
0000255d: JUMP
0000255e: JUMPDEST
0000255f: SWAP13
00002560: SWAP12
00002561: POP
00002562: POP
00002563: POP
00002564: POP
00002565: POP
00002566: POP
00002567: POP
00002568: POP
00002569: POP
0000256a: POP
0000256b: POP
0000256c: POP
0000256d: JUMP
0000256e: JUMPDEST
0000256f: PUSH4 0x4e487b71
00002574: PUSH1 0xe0
00002576: SHL
00002577: PUSH0
00002578: MSTORE
00002579: PUSH1 0x11
0000257b: PUSH1 0x04
0000257d: MSTORE
0000257e: PUSH1 0x24
00002580: PUSH0
00002581: REVERT
00002582: JUMPDEST
00002583: DUP2
00002584: DUP2
00002585: SUB
00002586: DUP2
00002587: DUP2
00002588: GT
00002589: ISZERO
0000258a: PUSH2 0x05c8
0000258d: JUMPI
0000258e: PUSH2 0x05c8
00002591: PUSH2 0x256e
00002594: JUMP
00002595: JUMPDEST
00002596: DUP1
00002597: DUP3
00002598: ADD
00002599: DUP1
0000259a: DUP3
0000259b: GT
0000259c: ISZERO
0000259d: PUSH2 0x05c8
000025a0: JUMPI
000025a1: PUSH2 0x05c8
000025a4: PUSH2 0x256e
000025a7: JUMP
000025a8: JUMPDEST
000025a9: PUSH0
000025aa: PUSH1 0x20
000025ac: DUP3
000025ad: DUP5
000025ae: SUB
000025af: SLT
000025b0: ISZERO
000025b1: PUSH2 0x25b8
000025b4: JUMPI
000025b5: PUSH0
000025b6: DUP1
000025b7: REVERT
000025b8: JUMPDEST
000025b9: DUP2
000025ba: MLOAD
000025bb: PUSH2 0x219d
000025be: DUP2
000025bf: PUSH2 0x21a4
000025c2: JUMP
000025c3: JUMPDEST
000025c4: PUSH0
000025c5: PUSH1 0x20
000025c7: DUP3
000025c8: DUP5
000025c9: SUB
000025ca: SLT
000025cb: ISZERO
000025cc: PUSH2 0x25d3
000025cf: JUMPI
000025d0: PUSH0
000025d1: DUP1
000025d2: REVERT
000025d3: JUMPDEST
000025d4: DUP2
000025d5: MLOAD
000025d6: DUP1
000025d7: ISZERO
000025d8: ISZERO
000025d9: DUP2
000025da: EQ
000025db: PUSH2 0x219d
000025de: JUMPI
000025df: PUSH0
000025e0: DUP1
000025e1: REVERT
000025e2: JUMPDEST
000025e3: PUSH4 0x4e487b71
000025e8: PUSH1 0xe0
000025ea: SHL
000025eb: PUSH0
000025ec: MSTORE
000025ed: PUSH1 0x41
000025ef: PUSH1 0x04
000025f1: MSTORE
000025f2: PUSH1 0x24
000025f4: PUSH0
000025f5: REVERT
000025f6: JUMPDEST
000025f7: PUSH1 0x1f
000025f9: DUP3
000025fa: GT
000025fb: ISZERO
000025fc: PUSH2 0x0c0f
000025ff: JUMPI
00002600: DUP1
00002601: PUSH0
00002602: MSTORE
00002603: PUSH1 0x20
00002605: PUSH0
00002606: KECCAK256
00002607: PUSH1 0x1f
00002609: DUP5
0000260a: ADD
0000260b: PUSH1 0x05
0000260d: SHR
0000260e: DUP2
0000260f: ADD
00002610: PUSH1 0x20
00002612: DUP6
00002613: LT
00002614: ISZERO
00002615: PUSH2 0x261b
00002618: JUMPI
00002619: POP
0000261a: DUP1
0000261b: JUMPDEST
0000261c: PUSH1 0x1f
0000261e: DUP5
0000261f: ADD
00002620: PUSH1 0x05
00002622: SHR
00002623: DUP3
00002624: ADD
00002625: SWAP2
00002626: POP
00002627: JUMPDEST
00002628: DUP2
00002629: DUP2
0000262a: LT
0000262b: ISZERO
0000262c: PUSH2 0x1cf9
0000262f: JUMPI
00002630: PUSH0
00002631: DUP2
00002632: SSTORE
00002633: PUSH1 0x01
00002635: ADD
00002636: PUSH2 0x2627
00002639: JUMP
0000263a: JUMPDEST
0000263b: DUP2
0000263c: MLOAD
0000263d: PUSH8 0xffffffffffffffff
00002646: DUP2
00002647: GT
00002648: ISZERO
00002649: PUSH2 0x2654
0000264c: JUMPI
0000264d: PUSH2 0x2654
00002650: PUSH2 0x25e2
00002653: JUMP
00002654: JUMPDEST
00002655: PUSH2 0x2668
00002658: DUP2
00002659: PUSH2 0x2662
0000265c: DUP5
0000265d: SLOAD
0000265e: PUSH2 0x2490
00002661: JUMP
00002662: JUMPDEST
00002663: DUP5
00002664: PUSH2 0x25f6
00002667: JUMP
00002668: JUMPDEST
00002669: PUSH1 0x20
0000266b: DUP1
0000266c: PUSH1 0x1f
0000266e: DUP4
0000266f: GT
00002670: PUSH1 0x01
00002672: DUP2
00002673: EQ
00002674: PUSH2 0x269b
00002677: JUMPI
00002678: PUSH0
00002679: DUP5
0000267a: ISZERO
0000267b: PUSH2 0x2684
0000267e: JUMPI
0000267f: POP
00002680: DUP6
00002681: DUP4
00002682: ADD
00002683: MLOAD
00002684: JUMPDEST
00002685: PUSH0
00002686: NOT
00002687: PUSH1 0x03
00002689: DUP7
0000268a: SWAP1
0000268b: SHL
0000268c: SHR
0000268d: NOT
0000268e: AND
0000268f: PUSH1 0x01
00002691: DUP6
00002692: SWAP1
00002693: SHL
00002694: OR
00002695: DUP6
00002696: SSTORE
00002697: PUSH2 0x2140
0000269a: JUMP
0000269b: JUMPDEST
0000269c: PUSH0
0000269d: DUP6
0000269e: DUP2
0000269f: MSTORE
000026a0: PUSH1 0x20
000026a2: DUP2
000026a3: KECCAK256
000026a4: PUSH1 0x1f
000026a6: NOT
000026a7: DUP7
000026a8: AND
000026a9: SWAP2
000026aa: JUMPDEST
000026ab: DUP3
000026ac: DUP2
000026ad: LT
000026ae: ISZERO
000026af: PUSH2 0x26c9
000026b2: JUMPI
000026b3: DUP9
000026b4: DUP7
000026b5: ADD
000026b6: MLOAD
000026b7: DUP3
000026b8: SSTORE
000026b9: SWAP5
000026ba: DUP5
000026bb: ADD
000026bc: SWAP5
000026bd: PUSH1 0x01
000026bf: SWAP1
000026c0: SWAP2
000026c1: ADD
000026c2: SWAP1
000026c3: DUP5
000026c4: ADD
000026c5: PUSH2 0x26aa
000026c8: JUMP
000026c9: JUMPDEST
000026ca: POP
000026cb: DUP6
000026cc: DUP3
000026cd: LT
000026ce: ISZERO
000026cf: PUSH2 0x26e6
000026d2: JUMPI
000026d3: DUP8
000026d4: DUP6
000026d5: ADD
000026d6: MLOAD
000026d7: PUSH0
000026d8: NOT
000026d9: PUSH1 0x03
000026db: DUP9
000026dc: SWAP1
000026dd: SHL
000026de: PUSH1 0xf8
000026e0: AND
000026e1: SHR
000026e2: NOT
000026e3: AND
000026e4: DUP2
000026e5: SSTORE
000026e6: JUMPDEST
000026e7: POP
000026e8: POP
000026e9: POP
000026ea: POP
000026eb: POP
000026ec: PUSH1 0x01
000026ee: SWAP1
000026ef: DUP2
000026f0: SHL
000026f1: ADD
000026f2: SWAP1
000026f3: SSTORE
000026f4: POP
000026f5: JUMP
000026f6: JUMPDEST
000026f7: PUSH1 0x01
000026f9: PUSH1 0x01
000026fb: PUSH1 0x80
000026fd: SHL
000026fe: SUB
000026ff: DUP2
00002700: DUP2
00002701: AND
00002702: DUP4
00002703: DUP3
00002704: AND
00002705: ADD
00002706: SWAP1
00002707: DUP1
00002708: DUP3
00002709: GT
0000270a: ISZERO
0000270b: PUSH2 0x2716
0000270e: JUMPI
0000270f: PUSH2 0x2716
00002712: PUSH2 0x256e
00002715: JUMP
00002716: JUMPDEST
00002717: POP
00002718: SWAP3
00002719: SWAP2
0000271a: POP
0000271b: POP
0000271c: JUMP
0000271d: JUMPDEST
0000271e: PUSH1 0x01
00002720: PUSH1 0x01
00002722: PUSH1 0xa0
00002724: SHL
00002725: SUB
00002726: SWAP4
00002727: SWAP1
00002728: SWAP4
00002729: AND
0000272a: DUP4
0000272b: MSTORE
0000272c: PUSH1 0x20
0000272e: DUP4
0000272f: ADD
00002730: SWAP2
00002731: SWAP1
00002732: SWAP2
00002733: MSTORE
00002734: PUSH1 0x01
00002736: PUSH1 0x01
00002738: PUSH1 0x80
0000273a: SHL
0000273b: SUB
0000273c: AND
0000273d: PUSH1 0x40
0000273f: DUP3
00002740: ADD
00002741: MSTORE
00002742: PUSH1 0x60
00002744: ADD
00002745: SWAP1
00002746: JUMP
00002747: JUMPDEST
00002748: PUSH1 0x01
0000274a: PUSH1 0x01
0000274c: PUSH1 0x80
0000274e: SHL
0000274f: SUB
00002750: DUP3
00002751: DUP2
00002752: AND
00002753: DUP3
00002754: DUP3
00002755: AND
00002756: SUB
00002757: SWAP1
00002758: DUP1
00002759: DUP3
0000275a: GT
0000275b: ISZERO
0000275c: PUSH2 0x2716
0000275f: JUMPI
00002760: PUSH2 0x2716
00002763: PUSH2 0x256e
00002766: JUMP
00002767: INVALID
00002768: GASLIMIT
00002769: DUP16
0000276a: PUSH0
0000276b: LOG4
0000276c: SLT
0000276d: UNKNOWN(0xD0)
0000276e: UNKNOWN(0xF6)
0000276f: SWAP12
00002770: ADDMOD
00002771: UNKNOWN(0xDD)
00002772: DUP5
00002773: DUP8
00002774: UNKNOWN(0x2B)
00002775: MUL
00002776: ISZERO
00002777: PUSH8 0x5cc67bc1d5b6fd93
00002780: ADDRESS
00002781: EXP
00002782: SHR
00002783: CODESIZE
00002784: PUSH25 0xb86196ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4
0000279e: LOG1
0000279f: AND
000027a0: UNKNOWN(0x28)
000027a1: CREATE2
000027a2: GAS
000027a3: UNKNOWN(0x4D)
000027a4: CREATE2
000027a5: UNKNOWN(0x23)
000027a6: UNKNOWN(0xB3)
000027a7: UNKNOWN(0xEF)
000027a8: LOG1
000027a9: PUSH5 0x736f6c6343
000027af: STOP
000027b0: ADDMOD
000027b1: AND
000027b2: STOP
000027b3: EXP

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x6999652f5e03c041c2347740ffe5b5de3048746bfababac1573bc06804e769ec
call_targets: 0xb2668573828029917ffbd1e76270373511818498
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x6999652f5e03c041c2347740ffe5b5de3048746bfababac1573bc06804e769ec",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb2668573828029917ffbd1e76270373511818498"
    ],
    "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": "0xd7020d0a",
            "selector": "0xd7020d0a",
            "calldata_variants": [
                "0xd7020d0a",
                "0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe0753986",
            "selector": "0xe0753986",
            "calldata_variants": [
                "0xe0753986",
                "0xe07539860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe655dbd8",
            "selector": "0xe655dbd8",
            "calldata_variants": [
                "0xe655dbd8",
                "0xe655dbd80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf866c319",
            "selector": "0xf866c319",
            "calldata_variants": [
                "0xf866c319",
                "0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb1bf962d",
            "selector": "0xb1bf962d",
            "calldata_variants": [
                "0xb1bf962d",
                "0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb3f1c93d",
            "selector": "0xb3f1c93d",
            "calldata_variants": [
                "0xb3f1c93d",
                "0xb3f1c93d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcea9d26f",
            "selector": "0xcea9d26f",
            "calldata_variants": [
                "0xcea9d26f",
                "0xcea9d26f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5512,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6859,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7402,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 5,
    "guards_detected": [],
    "untrusted_call_count": 5
}
high upgradeability codex Unprotected initialize enables treasury hijack on uninitialized ATokenInstance 85 no
view
evidence_json
{
    "evidence": "ATokenInstance.initialize is public and only checks initializingPool == POOL, then sets _treasury and other critical parameters without any caller authentication. mintToTreasury later mints fees to _treasury.",
    "locations": [
        "contracts/src/contracts/instances/ATokenInstance.sol:17",
        "contracts/src/contracts/instances/ATokenInstance.sol:27",
        "contracts/src/contracts/instances/ATokenInstance.sol:32",
        "contracts/src/contracts/protocol/tokenization/AToken.sol:80"
    ],
    "recommendation": "Require msg.sender to be the POOL (or an authorized configurator) in initialize, or ensure deployment initializes atomically (e.g., constructor/creation calldata) so no external party can call initialize first.",
    "exploit_scenario": "1) Monitor for a newly deployed ATokenInstance (or proxy) that has not yet been initialized by the pool. 2) Front-run the pool\u2019s intended initialize call by calling initialize yourself with initializingPool set to the correct POOL and all expected params, but set treasury to the attacker address. 3) The call succeeds because initialize has no caller auth and only checks the initializingPool parameter. 4) The pool later uses mintToTreasury to mint protocol fees to the attacker-controlled treasury; attacker redeems those aTokens for underlying. Profit potential: ongoing protocol fee stream for that reserve (order-of-magnitude: treasury share of interest on the reserve, potentially a significant portion of reserve balances over time)."
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x6999652f5e03c041c2347740ffe5b5de3048746bfababac1573bc06804e769ec
call_targets: 0xb2668573828029917ffbd1e76270373511818498
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x6999652f5e03c041c2347740ffe5b5de3048746bfababac1573bc06804e769ec",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb2668573828029917ffbd1e76270373511818498"
    ],
    "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": "0xd7020d0a",
            "selector": "0xd7020d0a",
            "calldata_variants": [
                "0xd7020d0a",
                "0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe0753986",
            "selector": "0xe0753986",
            "calldata_variants": [
                "0xe0753986",
                "0xe07539860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe655dbd8",
            "selector": "0xe655dbd8",
            "calldata_variants": [
                "0xe655dbd8",
                "0xe655dbd80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf866c319",
            "selector": "0xf866c319",
            "calldata_variants": [
                "0xf866c319",
                "0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb1bf962d",
            "selector": "0xb1bf962d",
            "calldata_variants": [
                "0xb1bf962d",
                "0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb3f1c93d",
            "selector": "0xb3f1c93d",
            "calldata_variants": [
                "0xb3f1c93d",
                "0xb3f1c93d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcea9d26f",
            "selector": "0xcea9d26f",
            "calldata_variants": [
                "0xcea9d26f",
                "0xcea9d26f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5512,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6859,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 7402,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 5,
    "guards_detected": []
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0xa8a1a9743680af8d2a816640ad614dbf57c4e4f114e686fb905499019d867bb4
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0xa8a1a9743680af8d2a816640ad614dbf57c4e4f114e686fb905499019d867bb4",
    "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": "0xd7020d0a",
            "selector": "0xd7020d0a",
            "calldata_variants": [
                "0xd7020d0a",
                "0xd7020d0a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe0753986",
            "selector": "0xe0753986",
            "calldata_variants": [
                "0xe0753986",
                "0xe07539860000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe655dbd8",
            "selector": "0xe655dbd8",
            "calldata_variants": [
                "0xe655dbd8",
                "0xe655dbd80000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf866c319",
            "selector": "0xf866c319",
            "calldata_variants": [
                "0xf866c319",
                "0xf866c3190000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb1bf962d",
            "selector": "0xb1bf962d",
            "calldata_variants": [
                "0xb1bf962d",
                "0xb1bf962d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb3f1c93d",
            "selector": "0xb3f1c93d",
            "calldata_variants": [
                "0xb3f1c93d",
                "0xb3f1c93d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xcea9d26f",
            "selector": "0xcea9d26f",
            "calldata_variants": [
                "0xcea9d26f",
                "0xcea9d26f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 0,
    "create2_count": 2
}
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 EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 6
}
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": 13
}