2cd84221-a81a-485d-a866-8346329f1cca
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 30599 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 104453 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 104454 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 104455 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 104456 | capability.graph | complete | 1 / 3 | 1 week ago |
| 104457 | detector.run | complete | 1 / 3 | 1 week ago |
| 104458 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1145989] OpenAI Codex v0.77.0 (research preview)
[codex:1145989] --------
[codex:1145989] workdir: /tmp/codex-multi-ecprekj9
[codex:1145989] model: gpt-5.2-codex
[codex:1145989] provider: openai
[codex:1145989] approval: never
[codex:1145989] sandbox: read-only
[codex:1145989] reasoning effort: xhigh
[codex:1145989] reasoning summaries: auto
[codex:1145989] session id: 019b6c50-9902-7c80-809d-9bf7cecb309d
[codex:1145989] --------
[codex:1145989] user
[codex:1145989] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1145989] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1145989] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1145989]
[codex:1145989] Scope rules:
[codex:1145989] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1145989] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1145989]
[codex:1145989] Output MUST be valid JSON matching the provided schema.
[codex:1145989] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1145989] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1145989]
[codex:1145989] Output constraints (IMPORTANT):
[codex:1145989] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1145989] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1145989] mcp startup: no servers
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Preparing to read AUDIT_BUNDLE.txt**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc ls in /tmp/codex-multi-ecprekj9 succeeded in 7ms:
[codex:1145989] AUDIT_BUNDLE.txt
[codex:1145989] codex-output-schema.json
[codex:1145989] contracts
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1145989]
[codex:1145989] ================================================================================
[codex:1145989] FILE: contracts/node_modules/@cowprotocol/contracts/src/contracts/interfaces/GPv2EIP1271.sol
[codex:1145989] ================================================================================
[codex:1145989] // SPDX-License-Identifier: LGPL-3.0-or-later
[codex:1145989] pragma solidity >=0.7.6 <0.9.0;
[codex:1145989]
[codex:1145989] library GPv2EIP1271 {
[codex:1145989] /// @dev Value returned by a call to `isValidSignature` if the signature
[codex:1145989] /// was verified successfully. The value is defined in EIP-1271 as:
[codex:1145989] /// bytes4(keccak256("isValidSignature(bytes32,bytes)"))
[codex:1145989] bytes4 internal constant MAGICVALUE = 0x1626ba7e;
[codex:1145989] }
[codex:1145989]
[codex:1145989] /// @title EIP1271 Interface
[codex:1145989] /// @dev Standardized interface for an implementation of smart contract
[codex:1145989] /// signatures as described in EIP-1271. The code that follows is identical to
[codex:1145989] /// the code in the standard with the exception of formatting and syntax
[codex:1145989] /// changes to adapt the code to our Solidity version.
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Parsing first-party contract bundle**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'ls contracts/src' in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] contracts
[codex:1145989] interfaces
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Listing contracts source files**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'ls contracts/src/contracts' in /tmp/codex-multi-ecprekj9 succeeded in 7ms:
[codex:1145989] BConst.sol
[codex:1145989] BCoWConst.sol
[codex:1145989] BCoWPool.sol
[codex:1145989] BMath.sol
[codex:1145989] BNum.sol
[codex:1145989] BPool.sol
[codex:1145989] BToken.sol
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Preparing to review files**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BCoWPool.sol" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989]
[codex:1145989] /*
[codex:1145989]
[codex:1145989] Coded for Balancer and CoW Swap with ♥ by
[codex:1145989]
[codex:1145989] ░██╗░░░░░░░██╗░█████╗░███╗░░██╗██████╗░███████╗██████╗░██╗░░░░░░█████╗░███╗░░██╗██████╗░
[codex:1145989] ░██║░░██╗░░██║██╔══██╗████╗░██║██╔══██╗██╔════╝██╔══██╗██║░░░░░██╔══██╗████╗░██║██╔══██╗
[codex:1145989] ░╚██╗████╗██╔╝██║░░██║██╔██╗██║██║░░██║█████╗░░██████╔╝██║░░░░░███████║██╔██╗██║██║░░██║
[codex:1145989] ░░████╔═████║░██║░░██║██║╚████║██║░░██║██╔══╝░░██╔══██╗██║░░░░░██╔══██║██║╚████║██║░░██║
[codex:1145989] ░░╚██╔╝░╚██╔╝░╚█████╔╝██║░╚███║██████╔╝███████╗██║░░██║███████╗██║░░██║██║░╚███║██████╔╝
[codex:1145989] ░░░╚═╝░░░╚═╝░░░╚════╝░╚═╝░░╚══╝╚═════╝░╚══════╝╚═╝░░╚═╝╚══════╝╚═╝░░╚═╝╚═╝░░╚══╝╚═════╝░
[codex:1145989]
[codex:1145989] https://defi.sucks
[codex:1145989]
[codex:1145989] */
[codex:1145989]
[codex:1145989] import {BCoWConst} from './BCoWConst.sol';
[codex:1145989] import {BPool} from './BPool.sol';
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Preparing to work on BPool**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BPool.sol" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989]
[codex:1145989] import {BMath} from './BMath.sol';
[codex:1145989] import {BToken} from './BToken.sol';
[codex:1145989] import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';
[codex:1145989] import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol';
[codex:1145989] import {IBPool} from 'interfaces/IBPool.sol';
[codex:1145989]
[codex:1145989] /**
[codex:1145989] * @title BPool
[codex:1145989] * @notice Pool contract that holds tokens, allows to swap, add and remove liquidity.
[codex:1145989] */
[codex:1145989] contract BPool is BToken, BMath, IBPool {
[codex:1145989] using SafeERC20 for IERC20;
[codex:1145989] /// @dev BFactory address to push token exitFee to
[codex:1145989]
[codex:1145989] /// @inheritdoc IBPool
[codex:1145989] address public immutable FACTORY;
[codex:1145989] /// @dev Has CONTROL role
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '200,400p' contracts/src/contracts/BPool.sol" in /tmp/codex-multi-ecprekj9 succeeded in 7ms:
[codex:1145989] function exitPool(uint256 poolAmountIn, uint256[] calldata minAmountsOut) external _logs_ _lock_ _finalized_ {
[codex:1145989] uint256 poolTotal = totalSupply();
[codex:1145989] uint256 exitFee = bmul(poolAmountIn, EXIT_FEE);
[codex:1145989] uint256 pAiAfterExitFee = bsub(poolAmountIn, exitFee);
[codex:1145989] uint256 ratio = bdiv(pAiAfterExitFee, poolTotal);
[codex:1145989] if (ratio == 0) {
[codex:1145989] revert BPool_InvalidPoolRatio();
[codex:1145989] }
[codex:1145989]
[codex:1145989] _pullPoolShare(msg.sender, poolAmountIn);
[codex:1145989] _pushPoolShare(FACTORY, exitFee);
[codex:1145989] _burnPoolShare(pAiAfterExitFee);
[codex:1145989]
[codex:1145989] uint256 tokensLength = _tokens.length;
[codex:1145989] for (uint256 i = 0; i < tokensLength; i++) {
[codex:1145989] address t = _tokens[i];
[codex:1145989] uint256 bal = IERC20(t).balanceOf(address(this));
[codex:1145989] uint256 tokenAmountOut = bmul(ratio, bal);
[codex:1145989] if (tokenAmountOut == 0) {
[codex:1145989] revert BPool_InvalidTokenAmountOut();
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '400,800p' contracts/src/contracts/BPool.sol" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] return _tokens;
[codex:1145989] }
[codex:1145989]
[codex:1145989] /// @inheritdoc IBPool
[codex:1145989] function getFinalTokens() external view _viewlock_ _finalized_ returns (address[] memory) {
[codex:1145989] return _tokens;
[codex:1145989] }
[codex:1145989]
[codex:1145989] /// @inheritdoc IBPool
[codex:1145989] function getDenormalizedWeight(address token) external view _viewlock_ returns (uint256) {
[codex:1145989] if (!_records[token].bound) {
[codex:1145989] revert BPool_TokenNotBound();
[codex:1145989] }
[codex:1145989] return _records[token].denorm;
[codex:1145989] }
[codex:1145989]
[codex:1145989] /// @inheritdoc IBPool
[codex:1145989] function getTotalDenormalizedWeight() external view _viewlock_ returns (uint256) {
[codex:1145989] return _totalWeight;
[codex:1145989] }
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Identifying additional required contracts**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BToken.sol" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989]
[codex:1145989] import {ERC20} from '@openzeppelin/contracts/token/ERC20/ERC20.sol';
[codex:1145989]
[codex:1145989] /**
[codex:1145989] * @title BToken
[codex:1145989] * @notice Balancer Pool Token base contract, providing ERC20 functionality.
[codex:1145989] */
[codex:1145989] contract BToken is ERC20 {
[codex:1145989] constructor(string memory name, string memory symbol) ERC20(name, symbol) {}
[codex:1145989]
[codex:1145989] /**
[codex:1145989] * @notice Increase the allowance of the spender.
[codex:1145989] * @param spender The address which will spend the funds.
[codex:1145989] * @param amount The amount of tokens to increase the allowance by.
[codex:1145989] * @return success True if the operation is successful.
[codex:1145989] */
[codex:1145989] function increaseApproval(address spender, uint256 amount) external returns (bool success) {
[codex:1145989] _approve(msg.sender, spender, allowance(msg.sender, spender) + amount);
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Listing necessary components**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BConst.sol" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989]
[codex:1145989] /**
[codex:1145989] * @title BConst
[codex:1145989] * @notice Constants used in the scope of the BPool contract.
[codex:1145989] */
[codex:1145989] contract BConst {
[codex:1145989] /// @notice The unit of precision used in the calculations.
[codex:1145989] uint256 public constant BONE = 10 ** 18;
[codex:1145989]
[codex:1145989] /// @notice The minimum number of bound tokens in a pool.
[codex:1145989] uint256 public constant MIN_BOUND_TOKENS = 2;
[codex:1145989] /// @notice The maximum number of bound tokens in a pool.
[codex:1145989] uint256 public constant MAX_BOUND_TOKENS = 8;
[codex:1145989]
[codex:1145989] /// @notice The minimum swap fee that can be set.
[codex:1145989] uint256 public constant MIN_FEE = BONE / 10 ** 6;
[codex:1145989] /// @notice The maximum swap fee that can be set.
[codex:1145989] uint256 public constant MAX_FEE = BONE - MIN_FEE;
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Identifying term meaning**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BCoWConst.sol" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989]
[codex:1145989] /**
[codex:1145989] * @title BCoWConst
[codex:1145989] * @notice Constants used in the scope of the BCoWPool contract.
[codex:1145989] */
[codex:1145989] contract BCoWConst {
[codex:1145989] /**
[codex:1145989] * @notice The largest possible duration of any AMM order, starting from the
[codex:1145989] * current block timestamp.
[codex:1145989] * @return _maxOrderDuration The maximum order duration.
[codex:1145989] */
[codex:1145989] uint32 public constant MAX_ORDER_DURATION = 5 minutes;
[codex:1145989] }
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Identifying required modules**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BMath.sol" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989]
[codex:1145989] import {BConst} from './BConst.sol';
[codex:1145989] import {BNum} from './BNum.sol';
[codex:1145989]
[codex:1145989] /**
[codex:1145989] * @title BMath
[codex:1145989] * @notice Includes functions for calculating the BPool related math.
[codex:1145989] */
[codex:1145989] contract BMath is BConst, BNum {
[codex:1145989] /**
[codex:1145989] * @notice Calculate the spot price of a token in terms of another one
[codex:1145989] * @dev The price denomination depends on the decimals of the tokens.
[codex:1145989] * @dev To obtain the price with 18 decimals the next formula should be applied to the result
[codex:1145989] * @dev spotPrice = spotPrice ÷ (10^tokenInDecimals) × (10^tokenOutDecimals)
[codex:1145989] * @param tokenBalanceIn The balance of the input token in the pool
[codex:1145989] * @param tokenWeightIn The weight of the input token in the pool
[codex:1145989] * @param tokenBalanceOut The balance of the output token in the pool
[codex:1145989] * @param tokenWeightOut The weight of the output token in the pool
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Noticing a brief note**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/contracts/BNum.sol" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989]
[codex:1145989] import {BConst} from './BConst.sol';
[codex:1145989]
[codex:1145989] /**
[codex:1145989] * @title BNum
[codex:1145989] * @notice Includes functions for arithmetic operations with fixed-point numbers.
[codex:1145989] * @dev The arithmetic operations are implemented with a precision of BONE.
[codex:1145989] */
[codex:1145989] // solhint-disable private-vars-leading-underscore
[codex:1145989] // solhint-disable named-return-values
[codex:1145989] contract BNum is BConst {
[codex:1145989] /**
[codex:1145989] * @notice Thrown when an overflow is encountered inside the add function
[codex:1145989] */
[codex:1145989] error BNum_AddOverflow();
[codex:1145989]
[codex:1145989] /**
[codex:1145989] * @notice Thrown when an underflow is encountered inside the sub function
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Searching for Factory in contracts/src**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'rg -n "contract|interface" contracts/src' in /tmp/codex-multi-ecprekj9 succeeded in 11ms:
[codex:1145989] contracts/src/contracts/BNum.sol:13:contract BNum is BConst {
[codex:1145989] contracts/src/interfaces/IBCoWPool.sol:5:import {IERC1271} from '@openzeppelin/contracts/interfaces/IERC1271.sol';
[codex:1145989] contracts/src/interfaces/IBCoWPool.sol:6:import {IBPool} from 'interfaces/IBPool.sol';
[codex:1145989] contracts/src/interfaces/IBCoWPool.sol:7:import {ISettlement} from 'interfaces/ISettlement.sol';
[codex:1145989] contracts/src/interfaces/IBCoWPool.sol:9:interface IBCoWPool is IERC1271, IBPool {
[codex:1145989] contracts/src/interfaces/IBCoWPool.sol:55: * does not match the one stored in this contract.
[codex:1145989] contracts/src/interfaces/IBCoWPool.sol:89: * @notice The address of the CoW Protocol settlement contract. It is the
[codex:1145989] contracts/src/contracts/BMath.sol:11:contract BMath is BConst, BNum {
[codex:1145989] contracts/src/interfaces/IBPool.sol:4:import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';
[codex:1145989] contracts/src/interfaces/IBPool.sol:6:interface IBPool is IERC20 {
[codex:1145989] contracts/src/contracts/BPool.sol:6:import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';
[codex:1145989] contracts/src/contracts/BPool.sol:7:import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol';
[codex:1145989] contracts/src/contracts/BPool.sol:8:import {IBPool} from 'interfaces/IBPool.sol';
[codex:1145989] contracts/src/contracts/BPool.sol:12: * @notice Pool contract that holds tokens, allows to swap, add and remove liquidity.
[codex:1145989] contracts/src/contracts/BPool.sol:14:contract BPool is BToken, BMath, IBPool {
[codex:1145989] contracts/src/contracts/BCoWConst.sol:6: * @notice Constants used in the scope of the BCoWPool contract.
[codex:1145989] contracts/src/contracts/BCoWConst.sol:8:contract BCoWConst {
[codex:1145989] contracts/src/interfaces/IBCoWFactory.sol:4:import {IBFactory} from 'interfaces/IBFactory.sol';
[codex:1145989] contracts/src/interfaces/IBCoWFactory.sol:6:interface IBCoWFactory is IBFactory {
[codex:1145989] contracts/src/interfaces/IBCoWFactory.sol:24: * @notice The address of the CoW Protocol settlement contract. It is the
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Reviewing IBCoWFactory interface**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1,200p' contracts/src/interfaces/IBCoWFactory.sol" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1145989] pragma solidity 0.8.25;
[codex:1145989]
[codex:1145989] import {IBFactory} from 'interfaces/IBFactory.sol';
[codex:1145989]
[codex:1145989] interface IBCoWFactory is IBFactory {
[codex:1145989] /**
[codex:1145989] * @notice Emitted when a bCoWPool created by this factory is finalized
[codex:1145989] * @param bCoWPool The pool just finalized
[codex:1145989] */
[codex:1145989] event COWAMMPoolCreated(address indexed bCoWPool);
[codex:1145989]
[codex:1145989] /**
[codex:1145989] * @notice thrown when the caller of `logBCoWPool()` is not a bCoWPool created by this factory
[codex:1145989] */
[codex:1145989] error BCoWFactory_NotValidBCoWPool();
[codex:1145989]
[codex:1145989] /**
[codex:1145989] * @notice Emits the COWAMMPoolCreated event if the caller is a bCoWPool, to be indexed by off-chain agents
[codex:1145989] */
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Searching for BFactory implementation**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'rg -n "BFactory|Factory" contracts' in /tmp/codex-multi-ecprekj9 succeeded in 9ms:
[codex:1145989] contracts/src/interfaces/IBPool.sol:372: * @notice Gets the BFactory address that deployed the pool
[codex:1145989] contracts/src/interfaces/IBCoWFactory.sol:4:import {IBFactory} from 'interfaces/IBFactory.sol';
[codex:1145989] contracts/src/interfaces/IBCoWFactory.sol:6:interface IBCoWFactory is IBFactory {
[codex:1145989] contracts/src/interfaces/IBCoWFactory.sol:16: error BCoWFactory_NotValidBCoWPool();
[codex:1145989] contracts/src/interfaces/IBFactory.sol:6:interface IBFactory {
[codex:1145989] contracts/src/interfaces/IBFactory.sol:24: error BFactory_AddressZero();
[codex:1145989] contracts/src/interfaces/IBFactory.sol:29: error BFactory_NotBDao();
[codex:1145989] contracts/src/contracts/BPool.sol:16: /// @dev BFactory address to push token exitFee to
[codex:1145989] contracts/src/contracts/BCoWPool.sol:26:import {IBCoWFactory} from 'interfaces/IBCoWFactory.sol';
[codex:1145989] contracts/src/contracts/BCoWPool.sol:155: // If this pool was not deployed using a bCoWFactory, this will revert and catch
[codex:1145989] contracts/src/contracts/BCoWPool.sol:158: try IBCoWFactory(FACTORY).logBCoWPool() {}
[codex:1145989] contracts/src/contracts/BCoWPool.sol:160: emit IBCoWFactory.COWAMMPoolCreated(address(this));
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Investigating factory implementation in audit bundle**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'rg -n "FILE: contracts/src/contracts" AUDIT_BUNDLE.txt' in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] 1984:FILE: contracts/src/contracts/BCoWConst.sol
[codex:1145989] 2003:FILE: contracts/src/contracts/BCoWPool.sol
[codex:1145989] 2170:FILE: contracts/src/contracts/BConst.sol
[codex:1145989] 2234:FILE: contracts/src/contracts/BMath.sol
[codex:1145989] 2354:FILE: contracts/src/contracts/BNum.sol
[codex:1145989] 2558:FILE: contracts/src/contracts/BPool.sol
[codex:1145989] 3094:FILE: contracts/src/contracts/BToken.sol
[codex:1145989]
[codex:1145989]
[codex:1145989]
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Analyzing contract and library vulnerabilities**
[codex:1145989]
[codex:1145989] I'm examining the interplay between main contracts and included libraries, focusing on potential security issues like reentrancy, access control, and signature validation. I'm carefully considering transient storage usage, token transfer behaviors, and signature verification flows, noting where safeguards exist or where subtle risks could arise, especially around external calls and state consistency during commitments and order processing.
[codex:1145989] thinking
[codex:1145989] **Evaluating edge cases and security nuances**
[codex:1145989]
[codex:1145989] I'm digging into subtle edge cases around locking, commitment values, and verification logic, especially how special order hashes might interact with reentrancy guards and transient storage. I'm also reviewing whether access control, token behavior, and order expiration checks could expose vulnerabilities or allow unexpected behaviors during multi-step settlement and validation.
[codex:1145989] thinking
[codex:1145989] **Validating token swaps and approval flows**
[codex:1145989]
[codex:1145989] I'm exploring potential subtle issues around token swap logic when input and output tokens are identical, allowance changes without reentrancy guards, and how zero or malformed addresses might affect token bindings or approvals. I'm also checking order verification logic, particularly around fees, token roles, and ensuring vault relayer and settlement addresses are correctly set to avoid misuse.
[codex:1145989] thinking
[codex:1145989] **Assessing allowance setup and external call risks**
[codex:1145989]
[codex:1145989] I'm reviewing whether the unlimited allowance to vault relayer set at finalize poses configuration risks if parameters are wrong, how reentrancy during approvals could happen via token hooks, and confirming external call patterns and array length checks. I’m also confirming solidity ABI decoding nuances and transient storage lock usage to ensure no unintended side effects or attack vectors arise from signature handling or transaction flow.
[codex:1145989] exec
[codex:1145989] /bin/bash -lc 'rg -n "delegatecall" AUDIT_BUNDLE.txt' in /tmp/codex-multi-ecprekj9 succeeded in 7ms:
[codex:1145989] 1895: (bool success, bytes memory returndata) = target.delegatecall(data);
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Inspecting delegatecall usage**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "sed -n '1860,1915p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] function functionCall(address target, bytes memory data) internal returns (bytes memory) {
[codex:1145989] return functionCallWithValue(target, data, 0);
[codex:1145989] }
[codex:1145989]
[codex:1145989] /**
[codex:1145989] * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
[codex:1145989] * but also transferring `value` wei to `target`.
[codex:1145989] *
[codex:1145989] * Requirements:
[codex:1145989] *
[codex:1145989] * - the calling contract must have an ETH balance of at least `value`.
[codex:1145989] * - the called Solidity function must be `payable`.
[codex:1145989] */
[codex:1145989] function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
[codex:1145989] if (address(this).balance < value) {
[codex:1145989] revert AddressInsufficientBalance(address(this));
[codex:1145989] }
[codex:1145989] (bool success, bytes memory returndata) = target.call{value: value}(data);
[codex:1145989] return verifyCallResultFromTarget(target, success, returndata);
[codex:1145989] }
[codex:1145989]
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Analyzing potential vulnerabilities and design assumptions**
[codex:1145989] thinking
[codex:1145989] **Assessing token compatibility and order expiration checks**
[codex:1145989]
[codex:1145989] I’m examining how fee-on-transfer tokens might cause accounting issues if bound by the controller, potentially enabling pool draining by traders exploiting assumed full transfers. I’m also considering that the code doesn’t explicitly verify order expiration in signature validation, which might allow expired orders to appear valid if external components don’t check `validTo`. Both are subtle limitations with security implications worth noting.
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "nl -ba contracts/src/contracts/BPool.sol | sed -n '130,260p'" in /tmp/codex-multi-ecprekj9 succeeded in 7ms:
[codex:1145989] 130 revert BPool_TokensAboveMaximum();
[codex:1145989] 131 }
[codex:1145989] 132 if (denorm < MIN_WEIGHT) {
[codex:1145989] 133 revert BPool_WeightBelowMinimum();
[codex:1145989] 134 }
[codex:1145989] 135 if (denorm > MAX_WEIGHT) {
[codex:1145989] 136 revert BPool_WeightAboveMaximum();
[codex:1145989] 137 }
[codex:1145989] 138 if (balance < MIN_BALANCE) {
[codex:1145989] 139 revert BPool_BalanceBelowMinimum();
[codex:1145989] 140 }
[codex:1145989] 141
[codex:1145989] 142 _totalWeight = badd(_totalWeight, denorm);
[codex:1145989] 143 if (_totalWeight > MAX_TOTAL_WEIGHT) {
[codex:1145989] 144 revert BPool_TotalWeightAboveMaximum();
[codex:1145989] 145 }
[codex:1145989] 146
[codex:1145989] 147 _records[token] = Record({bound: true, index: _tokens.length, denorm: denorm});
[codex:1145989] 148 _tokens.push(token);
[codex:1145989] 149
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Noting need for line numbers**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "nl -ba contracts/src/contracts/BPool.sol | sed -n '320,460p'" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] 320 revert BPool_TokenAmountInAboveMaxAmountIn();
[codex:1145989] 321 }
[codex:1145989] 322
[codex:1145989] 323 tokenInBalance = badd(tokenInBalance, tokenAmountIn);
[codex:1145989] 324 tokenOutBalance = bsub(tokenOutBalance, tokenAmountOut);
[codex:1145989] 325
[codex:1145989] 326 spotPriceAfter = calcSpotPrice(tokenInBalance, inRecord.denorm, tokenOutBalance, outRecord.denorm, _swapFee);
[codex:1145989] 327 if (spotPriceAfter < spotPriceBefore) {
[codex:1145989] 328 revert BPool_SpotPriceAfterBelowSpotPriceBefore();
[codex:1145989] 329 }
[codex:1145989] 330 if (spotPriceAfter > maxPrice) {
[codex:1145989] 331 revert BPool_SpotPriceAboveMaxPrice();
[codex:1145989] 332 }
[codex:1145989] 333 if (spotPriceBefore > bdiv(tokenAmountIn, tokenAmountOut)) {
[codex:1145989] 334 revert BPool_SpotPriceBeforeAboveTokenRatio();
[codex:1145989] 335 }
[codex:1145989] 336
[codex:1145989] 337 emit LOG_SWAP(msg.sender, tokenIn, tokenOut, tokenAmountIn, tokenAmountOut);
[codex:1145989] 338
[codex:1145989] 339 _pullUnderlying(tokenIn, msg.sender, tokenAmountIn);
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Locating method lines**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "nl -ba contracts/src/contracts/BPool.sol | sed -n '460,560p'" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] 460 /**
[codex:1145989] 461 * @dev Pulls tokens from the sender. Tokens needs to be approved first. Calls are not locked.
[codex:1145989] 462 * @param token The address of the token to pull
[codex:1145989] 463 * @param from The address to pull the tokens from
[codex:1145989] 464 * @param amount The amount of tokens to pull
[codex:1145989] 465 */
[codex:1145989] 466 function _pullUnderlying(address token, address from, uint256 amount) internal virtual {
[codex:1145989] 467 IERC20(token).safeTransferFrom(from, address(this), amount);
[codex:1145989] 468 }
[codex:1145989] 469
[codex:1145989] 470 /**
[codex:1145989] 471 * @dev Pushes tokens to the receiver. Calls are not locked.
[codex:1145989] 472 * @param token The address of the token to push
[codex:1145989] 473 * @param to The address to push the tokens to
[codex:1145989] 474 * @param amount The amount of tokens to push
[codex:1145989] 475 */
[codex:1145989] 476 function _pushUnderlying(address token, address to, uint256 amount) internal virtual {
[codex:1145989] 477 IERC20(token).safeTransfer(to, amount);
[codex:1145989] 478 }
[codex:1145989] 479
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Reviewing BCoWPool code**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "nl -ba contracts/src/contracts/BCoWPool.sol | sed -n '70,180p'" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] 70 _setLock(orderHash);
[codex:1145989] 71 }
[codex:1145989] 72
[codex:1145989] 73 /**
[codex:1145989] 74 * @inheritdoc IERC1271
[codex:1145989] 75 * @dev this function reverts if the order hash does not match the current commitment
[codex:1145989] 76 */
[codex:1145989] 77 function isValidSignature(bytes32 orderHash, bytes memory signature) external view returns (bytes4 magicValue) {
[codex:1145989] 78 (GPv2Order.Data memory order) = abi.decode(signature, (GPv2Order.Data));
[codex:1145989] 79
[codex:1145989] 80 if (order.appData != APP_DATA) {
[codex:1145989] 81 revert AppDataDoesNotMatch();
[codex:1145989] 82 }
[codex:1145989] 83
[codex:1145989] 84 bytes32 orderHash_ = order.hash(SOLUTION_SETTLER_DOMAIN_SEPARATOR);
[codex:1145989] 85 if (orderHash_ != orderHash) {
[codex:1145989] 86 revert OrderDoesNotMatchMessageHash();
[codex:1145989] 87 }
[codex:1145989] 88
[codex:1145989] 89 if (orderHash_ != _getLock()) {
[codex:1145989]
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Summarizing audit findings and crafting JSON report**
[codex:1145989]
[codex:1145989] I've analyzed multiple areas for vulnerabilities including reentrancy, access control, and accounting issues. The key finding is a medium-severity fee-on-transfer token problem causing invariant breaks, backed by code references. I’m compiling this into a JSON report with evidence, severity, and recommendations for the user.
[codex:1145989] thinking
[codex:1145989] **Detailing transfer amount mismatches and evidence**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "rg -n \"_pullUnderlying\\(tokenIn\" -n contracts/src/contracts/BPool.sol" in /tmp/codex-multi-ecprekj9 succeeded in 6ms:
[codex:1145989] 282: _pullUnderlying(tokenIn, msg.sender, tokenAmountIn);
[codex:1145989] 339: _pullUnderlying(tokenIn, msg.sender, tokenAmountIn);
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Reviewing swap function lines**
[codex:1145989] exec
[codex:1145989] /bin/bash -lc "nl -ba contracts/src/contracts/BPool.sol | sed -n '260,310p'" in /tmp/codex-multi-ecprekj9 succeeded in 5ms:
[codex:1145989] 260 tokenAmountOut =
[codex:1145989] 261 calcOutGivenIn(tokenInBalance, inRecord.denorm, tokenOutBalance, outRecord.denorm, tokenAmountIn, _swapFee);
[codex:1145989] 262 if (tokenAmountOut < minAmountOut) {
[codex:1145989] 263 revert BPool_TokenAmountOutBelowMinOut();
[codex:1145989] 264 }
[codex:1145989] 265
[codex:1145989] 266 tokenInBalance = badd(tokenInBalance, tokenAmountIn);
[codex:1145989] 267 tokenOutBalance = bsub(tokenOutBalance, tokenAmountOut);
[codex:1145989] 268
[codex:1145989] 269 spotPriceAfter = calcSpotPrice(tokenInBalance, inRecord.denorm, tokenOutBalance, outRecord.denorm, _swapFee);
[codex:1145989] 270 if (spotPriceAfter < spotPriceBefore) {
[codex:1145989] 271 revert BPool_SpotPriceAfterBelowSpotPriceBefore();
[codex:1145989] 272 }
[codex:1145989] 273 if (spotPriceAfter > maxPrice) {
[codex:1145989] 274 revert BPool_SpotPriceAboveMaxPrice();
[codex:1145989] 275 }
[codex:1145989] 276 if (spotPriceBefore > bdiv(tokenAmountIn, tokenAmountOut)) {
[codex:1145989] 277 revert BPool_SpotPriceBeforeAboveTokenRatio();
[codex:1145989] 278 }
[codex:1145989] 279
[codex:1145989]
[codex:1145989] thinking
[codex:1145989] **Preparing detailed JSON findings**
[codex:1145989] codex
[codex:1145989] {"no_findings":false,"summary":"One accounting risk: the pool assumes full ERC20 transfer amounts, which lets fee-on-transfer/deflationary tokens bypass invariants and drain value.","findings":[{"severity":"low","category":"math","title":"Fee-on-transfer tokens break pool accounting and allow value extraction","exploit_scenario":"If a bound token charges a transfer fee, an attacker can swap that token in. The pool computes `tokenAmountOut` from the nominal `tokenAmountIn`, but the pool receives less due to the fee and still sends out the full `tokenAmountOut`, letting the attacker extract excess of the other token. The same issue applies to CoW orders validated via `verify` when the buy token is fee-on-transfer.","recommendation":"Disallow fee-on-transfer/deflationary tokens (whitelist standard ERC20s) or compute actual received amounts via balance-before/after and use that for pricing. For CoW orders, either enforce standard ERC20s or adjust validation to account for actual received amounts.","evidence":"`swapExactAmountIn`/`swapExactAmountOut` calculate outputs from `tokenAmountIn` and then pull that amount without checking the balance delta; `_pullUnderlying` only calls `safeTransferFrom`. `BCoWPool.verify` uses `order.buyAmount` directly as the input amount for pricing.","locations":["contracts/src/contracts/BPool.sol:260","contracts/src/contracts/BPool.sol:282","contracts/src/contracts/BPool.sol:466","contracts/src/contracts/BCoWPool.sol:124"]}]}
[codex:1145989] tokens used
[codex:1145989] 69,120
[codex:1145989] {"no_findings":false,"summary":"One accounting risk: the pool assumes full ERC20 transfer amounts, which lets fee-on-transfer/deflationary tokens bypass invariants and drain value.","findings":[{"severity":"low","category":"math","title":"Fee-on-transfer tokens break pool accounting and allow value extraction","exploit_scenario":"If a bound token charges a transfer fee, an attacker can swap that token in. The pool computes `tokenAmountOut` from the nominal `tokenAmountIn`, but the pool receives less due to the fee and still sends out the full `tokenAmountOut`, letting the attacker extract excess of the other token. The same issue applies to CoW orders validated via `verify` when the buy token is fee-on-transfer.","recommendation":"Disallow fee-on-transfer/deflationary tokens (whitelist standard ERC20s) or compute actual received amounts via balance-before/after and use that for pricing. For CoW orders, either enforce standard ERC20s or adjust validation to account for actual received amounts.","evidence":"`swapExactAmountIn`/`swapExactAmountOut` calculate outputs from `tokenAmountIn` and then pull that amount without checking the balance delta; `_pullUnderlying` only calls `safeTransferFrom`. `BCoWPool.verify` uses `order.buyAmount` directly as the input amount for pricing.","locations":["contracts/src/contracts/BPool.sol:260","contracts/src/contracts/BPool.sol:282","contracts/src/contracts/BPool.sol:466","contracts/src/contracts/BCoWPool.sol:124"]}]}
{
"codex": {
"ran_at": "2025-12-29T23:01:34.695233+00:00",
"returncode": 0
},
"summary": "One accounting risk: the pool assumes full ERC20 transfer amounts, which lets fee-on-transfer/deflationary tokens bypass invariants and drain value.",
"raw_final": {
"summary": "One accounting risk: the pool assumes full ERC20 transfer amounts, which lets fee-on-transfer/deflationary tokens bypass invariants and drain value.",
"findings": [
{
"title": "Fee-on-transfer tokens break pool accounting and allow value extraction",
"category": "math",
"evidence": "`swapExactAmountIn`/`swapExactAmountOut` calculate outputs from `tokenAmountIn` and then pull that amount without checking the balance delta; `_pullUnderlying` only calls `safeTransferFrom`. `BCoWPool.verify` uses `order.buyAmount` directly as the input amount for pricing.",
"severity": "low",
"locations": [
"contracts/src/contracts/BPool.sol:260",
"contracts/src/contracts/BPool.sol:282",
"contracts/src/contracts/BPool.sol:466",
"contracts/src/contracts/BCoWPool.sol:124"
],
"recommendation": "Disallow fee-on-transfer/deflationary tokens (whitelist standard ERC20s) or compute actual received amounts via balance-before/after and use that for pricing. For CoW orders, either enforce standard ERC20s or adjust validation to account for actual received amounts.",
"exploit_scenario": "If a bound token charges a transfer fee, an attacker can swap that token in. The pool computes `tokenAmountOut` from the nominal `tokenAmountIn`, but the pool receives less due to the fee and still sends out the full `tokenAmountOut`, letting the attacker extract excess of the other token. The same issue applies to CoW orders validated via `verify` when the buy token is fee-on-transfer."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
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 0x039e 00000018: JUMPI 00000019: PUSH0 0000001a: CALLDATALOAD 0000001b: PUSH1 0xe0 0000001d: SHR 0000001e: DUP1 0000001f: PUSH4 0x9381cd2b 00000024: GT 00000025: PUSH2 0x01ea 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xc36596a6 0000002f: GT 00000030: PUSH2 0x0114 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xdd62ed3e 0000003a: GT 0000003b: PUSH2 0x00a9 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xf14fcbc8 00000045: GT 00000046: PUSH2 0x0079 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf14fcbc8 00000050: EQ 00000051: PUSH2 0x07fa 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf1b8a9b7 0000005b: EQ 0000005c: PUSH2 0x080d 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xf8b2cb4f 00000066: EQ 00000067: PUSH2 0x0820 0000006a: JUMPI 0000006b: DUP1 0000006c: PUSH4 0xf8d6aed4 00000071: EQ 00000072: PUSH2 0x0833 00000075: JUMPI 00000076: PUSH0 00000077: DUP1 00000078: REVERT 00000079: JUMPDEST 0000007a: DUP1 0000007b: PUSH4 0xdd62ed3e 00000080: EQ 00000081: PUSH2 0x07a0 00000084: JUMPI 00000085: DUP1 00000086: PUSH4 0xe4a28a52 0000008b: EQ 0000008c: PUSH2 0x03e3 0000008f: JUMPI 00000090: DUP1 00000091: PUSH4 0xe4e1e538 00000096: EQ 00000097: PUSH2 0x07d8 0000009a: JUMPI 0000009b: DUP1 0000009c: PUSH4 0xec093021 000000a1: EQ 000000a2: PUSH2 0x07eb 000000a5: JUMPI 000000a6: PUSH0 000000a7: DUP1 000000a8: REVERT 000000a9: JUMPDEST 000000aa: DUP1 000000ab: PUSH4 0xcf5e7bd3 000000b0: GT 000000b1: PUSH2 0x00e4 000000b4: JUMPI 000000b5: DUP1 000000b6: PUSH4 0xcf5e7bd3 000000bb: EQ 000000bc: PUSH2 0x074b 000000bf: JUMPI 000000c0: DUP1 000000c1: PUSH4 0xd4cadf68 000000c6: EQ 000000c7: PUSH2 0x075e 000000ca: JUMPI 000000cb: DUP1 000000cc: PUSH4 0xd73dd623 000000d1: EQ 000000d2: PUSH2 0x0766 000000d5: JUMPI 000000d6: DUP1 000000d7: PUSH4 0xda08c4dc 000000dc: EQ 000000dd: PUSH2 0x0779 000000e0: JUMPI 000000e1: PUSH0 000000e2: DUP1 000000e3: REVERT 000000e4: JUMPDEST 000000e5: DUP1 000000e6: PUSH4 0xc36596a6 000000eb: EQ 000000ec: PUSH2 0x045b 000000ef: JUMPI 000000f0: DUP1 000000f1: PUSH4 0xc6580d12 000000f6: EQ 000000f7: PUSH2 0x0734 000000fa: JUMPI 000000fb: DUP1 000000fc: PUSH4 0xcc77828d 00000101: EQ 00000102: PUSH2 0x073b 00000105: JUMPI 00000106: DUP1 00000107: PUSH4 0xcd2ed8fb 0000010c: EQ 0000010d: PUSH2 0x0743 00000110: JUMPI 00000111: PUSH0 00000112: DUP1 00000113: REVERT 00000114: JUMPDEST 00000115: DUP1 00000116: PUSH4 0xb02f0b73 0000011b: GT 0000011c: PUSH2 0x018a 0000011f: JUMPI 00000120: DUP1 00000121: PUSH4 0xba9530a6 00000126: GT 00000127: PUSH2 0x015a 0000012a: JUMPI 0000012b: DUP1 0000012c: PUSH4 0xba9530a6 00000131: EQ 00000132: PUSH2 0x06fc 00000135: JUMPI 00000136: DUP1 00000137: PUSH4 0xbc063e1a 0000013c: EQ 0000013d: PUSH2 0x070f 00000140: JUMPI 00000141: DUP1 00000142: PUSH4 0xbc694ea2 00000147: EQ 00000148: PUSH2 0x0717 0000014b: JUMPI 0000014c: DUP1 0000014d: PUSH4 0xbe3bbd2e 00000152: EQ 00000153: PUSH2 0x071f 00000156: JUMPI 00000157: PUSH0 00000158: DUP1 00000159: REVERT 0000015a: JUMPDEST 0000015b: DUP1 0000015c: PUSH4 0xb02f0b73 00000161: EQ 00000162: PUSH2 0x06d1 00000165: JUMPI 00000166: DUP1 00000167: PUSH4 0xb0e0d136 0000016c: EQ 0000016d: PUSH2 0x06e4 00000170: JUMPI 00000171: DUP1 00000172: PUSH4 0xb7b800a4 00000177: EQ 00000178: PUSH2 0x06ec 0000017b: JUMPI 0000017c: DUP1 0000017d: PUSH4 0xba019dab 00000182: EQ 00000183: PUSH2 0x06f4 00000186: JUMPI 00000187: PUSH0 00000188: DUP1 00000189: REVERT 0000018a: JUMPDEST 0000018b: DUP1 0000018c: PUSH4 0x981a160b 00000191: GT 00000192: PUSH2 0x01c5 00000195: JUMPI 00000196: DUP1 00000197: PUSH4 0x981a160b 0000019c: EQ 0000019d: PUSH2 0x0685 000001a0: JUMPI 000001a1: DUP1 000001a2: PUSH4 0x992e2a92 000001a7: EQ 000001a8: PUSH2 0x06a3 000001ab: JUMPI 000001ac: DUP1 000001ad: PUSH4 0xa221ee49 000001b2: EQ 000001b3: PUSH2 0x06ab 000001b6: JUMPI 000001b7: DUP1 000001b8: PUSH4 0xa9059cbb 000001bd: EQ 000001be: PUSH2 0x06be 000001c1: JUMPI 000001c2: PUSH0 000001c3: DUP1 000001c4: REVERT 000001c5: JUMPDEST 000001c6: DUP1 000001c7: PUSH4 0x9381cd2b 000001cc: EQ 000001cd: PUSH2 0x0662 000001d0: JUMPI 000001d1: DUP1 000001d2: PUSH4 0x948d8ce6 000001d7: EQ 000001d8: PUSH2 0x066a 000001db: JUMPI 000001dc: DUP1 000001dd: PUSH4 0x95d89b41 000001e2: EQ 000001e3: PUSH2 0x067d 000001e6: JUMPI 000001e7: PUSH0 000001e8: DUP1 000001e9: REVERT 000001ea: JUMPDEST 000001eb: DUP1 000001ec: PUSH4 0x313ce567 000001f1: GT 000001f2: PUSH2 0x02cb 000001f5: JUMPI 000001f6: DUP1 000001f7: PUSH4 0x76c7a3c7 000001fc: GT 000001fd: PUSH2 0x026b 00000200: JUMPI 00000201: DUP1 00000202: PUSH4 0x8b54ab1f 00000207: GT 00000208: PUSH2 0x023b 0000020b: JUMPI 0000020c: DUP1 0000020d: PUSH4 0x8b54ab1f 00000212: EQ 00000213: PUSH2 0x0615 00000216: JUMPI 00000217: DUP1 00000218: PUSH4 0x8d4e4083 0000021d: EQ 0000021e: PUSH2 0x063c 00000221: JUMPI 00000222: DUP1 00000223: PUSH4 0x92eefe9b 00000228: EQ 00000229: PUSH2 0x0647 0000022c: JUMPI 0000022d: DUP1 0000022e: PUSH4 0x936c3477 00000233: EQ 00000234: PUSH2 0x065a 00000237: JUMPI 00000238: PUSH0 00000239: DUP1 0000023a: REVERT 0000023b: JUMPDEST 0000023c: DUP1 0000023d: PUSH4 0x76c7a3c7 00000242: EQ 00000243: PUSH2 0x05ca 00000246: JUMPI 00000247: DUP1 00000248: PUSH4 0x7c5e9ea4 0000024d: EQ 0000024e: PUSH2 0x05d2 00000251: JUMPI 00000252: DUP1 00000253: PUSH4 0x8201aa3f 00000258: EQ 00000259: PUSH2 0x05fa 0000025c: JUMPI 0000025d: DUP1 0000025e: PUSH4 0x867378c5 00000263: EQ 00000264: PUSH2 0x060d 00000267: JUMPI 00000268: PUSH0 00000269: DUP1 0000026a: REVERT 0000026b: JUMPDEST 0000026c: DUP1 0000026d: PUSH4 0x4f69c0d4 00000272: GT 00000273: PUSH2 0x02a6 00000276: JUMPI 00000277: DUP1 00000278: PUSH4 0x4f69c0d4 0000027d: EQ 0000027e: PUSH2 0x0555 00000281: JUMPI 00000282: DUP1 00000283: PUSH4 0x66188463 00000288: EQ 00000289: PUSH2 0x0568 0000028c: JUMPI 0000028d: DUP1 0000028e: PUSH4 0x6dbc8813 00000293: EQ 00000294: PUSH2 0x057b 00000297: JUMPI 00000298: DUP1 00000299: PUSH4 0x70a08231 0000029e: EQ 0000029f: PUSH2 0x05a2 000002a2: JUMPI 000002a3: PUSH0 000002a4: DUP1 000002a5: REVERT 000002a6: JUMPDEST 000002a7: DUP1 000002a8: PUSH4 0x313ce567 000002ad: EQ 000002ae: PUSH2 0x052b 000002b1: JUMPI 000002b2: DUP1 000002b3: PUSH4 0x34e19907 000002b8: EQ 000002b9: PUSH2 0x053a 000002bc: JUMPI 000002bd: DUP1 000002be: PUSH4 0x4bb278f3 000002c3: EQ 000002c4: PUSH2 0x054d 000002c7: JUMPI 000002c8: PUSH0 000002c9: DUP1 000002ca: REVERT 000002cb: JUMPDEST 000002cc: DUP1 000002cd: PUSH4 0x189d00ca 000002d2: GT 000002d3: PUSH2 0x0341 000002d6: JUMPI 000002d7: DUP1 000002d8: PUSH4 0x28bd6443 000002dd: GT 000002de: PUSH2 0x0311 000002e1: JUMPI 000002e2: DUP1 000002e3: PUSH4 0x28bd6443 000002e8: EQ 000002e9: PUSH2 0x04bc 000002ec: JUMPI 000002ed: DUP1 000002ee: PUSH4 0x2dd31000 000002f3: EQ 000002f4: PUSH2 0x04d1 000002f7: JUMPI 000002f8: DUP1 000002f9: PUSH4 0x2f37b624 000002fe: EQ 000002ff: PUSH2 0x04f8 00000302: JUMPI 00000303: DUP1 00000304: PUSH4 0x3018205f 00000309: EQ 0000030a: PUSH2 0x0523 0000030d: JUMPI 0000030e: PUSH0 0000030f: DUP1 00000310: REVERT 00000311: JUMPDEST 00000312: DUP1 00000313: PUSH4 0x189d00ca 00000318: EQ 00000319: PUSH2 0x0453 0000031c: JUMPI 0000031d: DUP1 0000031e: PUSH4 0x218b5382 00000323: EQ 00000324: PUSH2 0x045b 00000327: JUMPI 00000328: DUP1 00000329: PUSH4 0x23b872dd 0000032e: EQ 0000032f: PUSH2 0x046a 00000332: JUMPI 00000333: DUP1 00000334: PUSH4 0x2626f294 00000339: EQ 0000033a: PUSH2 0x047d 0000033d: JUMPI 0000033e: PUSH0 0000033f: DUP1 00000340: REVERT 00000341: JUMPDEST 00000342: DUP1 00000343: PUSH4 0x1446a7ff 00000348: GT 00000349: PUSH2 0x037c 0000034c: JUMPI 0000034d: DUP1 0000034e: PUSH4 0x1446a7ff 00000353: EQ 00000354: PUSH2 0x03f9 00000357: JUMPI 00000358: DUP1 00000359: PUSH4 0x15e84af9 0000035e: EQ 0000035f: PUSH2 0x040c 00000362: JUMPI 00000363: DUP1 00000364: PUSH4 0x1626ba7e 00000369: EQ 0000036a: PUSH2 0x041f 0000036d: JUMPI 0000036e: DUP1 0000036f: PUSH4 0x18160ddd 00000374: EQ 00000375: PUSH2 0x044b 00000378: JUMPI 00000379: PUSH0 0000037a: DUP1 0000037b: REVERT 0000037c: JUMPDEST 0000037d: DUP1 0000037e: PUSH4 0x06fdde03 00000383: EQ 00000384: PUSH2 0x03a2 00000387: JUMPI 00000388: DUP1 00000389: PUSH4 0x095ea7b3 0000038e: EQ 0000038f: PUSH2 0x03c0 00000392: JUMPI 00000393: DUP1 00000394: PUSH4 0x09a3bbe4 00000399: EQ 0000039a: PUSH2 0x03e3 0000039d: JUMPI 0000039e: JUMPDEST 0000039f: PUSH0 000003a0: DUP1 000003a1: REVERT 000003a2: JUMPDEST 000003a3: PUSH2 0x03aa 000003a6: PUSH2 0x0846 000003a9: JUMP 000003aa: JUMPDEST 000003ab: PUSH1 0x40 000003ad: MLOAD 000003ae: PUSH2 0x03b7 000003b1: SWAP2 000003b2: SWAP1 000003b3: PUSH2 0x37f9 000003b6: JUMP 000003b7: JUMPDEST 000003b8: PUSH1 0x40 000003ba: MLOAD 000003bb: DUP1 000003bc: SWAP2 000003bd: SUB 000003be: SWAP1 000003bf: RETURN 000003c0: JUMPDEST 000003c1: PUSH2 0x03d3 000003c4: PUSH2 0x03ce 000003c7: CALLDATASIZE 000003c8: PUSH1 0x04 000003ca: PUSH2 0x384d 000003cd: JUMP 000003ce: JUMPDEST 000003cf: PUSH2 0x08d6 000003d2: JUMP 000003d3: JUMPDEST 000003d4: PUSH1 0x40 000003d6: MLOAD 000003d7: SWAP1 000003d8: ISZERO 000003d9: ISZERO 000003da: DUP2 000003db: MSTORE 000003dc: PUSH1 0x20 000003de: ADD 000003df: PUSH2 0x03b7 000003e2: JUMP 000003e3: JUMPDEST 000003e4: PUSH2 0x03eb 000003e7: PUSH2 0x08ef 000003ea: JUMP 000003eb: JUMPDEST 000003ec: PUSH1 0x40 000003ee: MLOAD 000003ef: SWAP1 000003f0: DUP2 000003f1: MSTORE 000003f2: PUSH1 0x20 000003f4: ADD 000003f5: PUSH2 0x03b7 000003f8: JUMP 000003f9: JUMPDEST 000003fa: PUSH2 0x03eb 000003fd: PUSH2 0x0407 00000400: CALLDATASIZE 00000401: PUSH1 0x04 00000403: PUSH2 0x3877 00000406: JUMP 00000407: JUMPDEST 00000408: PUSH2 0x0905 0000040b: JUMP 0000040c: JUMPDEST 0000040d: PUSH2 0x03eb 00000410: PUSH2 0x041a 00000413: CALLDATASIZE 00000414: PUSH1 0x04 00000416: PUSH2 0x3877 00000419: JUMP 0000041a: JUMPDEST 0000041b: PUSH2 0x0aa4 0000041e: JUMP 0000041f: JUMPDEST 00000420: PUSH2 0x0432 00000423: PUSH2 0x042d 00000426: CALLDATASIZE 00000427: PUSH1 0x04 00000429: PUSH2 0x391d 0000042c: JUMP 0000042d: JUMPDEST 0000042e: PUSH2 0x0c3c 00000431: JUMP 00000432: JUMPDEST 00000433: PUSH1 0x40 00000435: MLOAD 00000436: PUSH1 0x01 00000438: PUSH1 0x01 0000043a: PUSH1 0xe0 0000043c: SHL 0000043d: SUB 0000043e: NOT 0000043f: SWAP1 00000440: SWAP2 00000441: AND 00000442: DUP2 00000443: MSTORE 00000444: PUSH1 0x20 00000446: ADD 00000447: PUSH2 0x03b7 0000044a: JUMP 0000044b: JUMPDEST 0000044c: PUSH1 0x02 0000044e: SLOAD 0000044f: PUSH2 0x03eb 00000452: JUMP 00000453: JUMPDEST 00000454: PUSH2 0x03eb 00000457: PUSH2 0x0d6e 0000045a: JUMP 0000045b: JUMPDEST 0000045c: PUSH2 0x03eb 0000045f: PUSH8 0x0de0b6b3a7640000 00000468: DUP2 00000469: JUMP 0000046a: JUMPDEST 0000046b: PUSH2 0x03d3 0000046e: PUSH2 0x0478 00000471: CALLDATASIZE 00000472: PUSH1 0x04 00000474: PUSH2 0x39b6 00000477: JUMP 00000478: JUMPDEST 00000479: PUSH2 0x0d85 0000047c: JUMP 0000047d: JUMPDEST 0000047e: PUSH2 0x04a4 00000481: PUSH32 0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110 000004a2: DUP2 000004a3: JUMP 000004a4: JUMPDEST 000004a5: PUSH1 0x40 000004a7: MLOAD 000004a8: PUSH1 0x01 000004aa: PUSH1 0x01 000004ac: PUSH1 0xa0 000004ae: SHL 000004af: SUB 000004b0: SWAP1 000004b1: SWAP2 000004b2: AND 000004b3: DUP2 000004b4: MSTORE 000004b5: PUSH1 0x20 000004b7: ADD 000004b8: PUSH2 0x03b7 000004bb: JUMP 000004bc: JUMPDEST 000004bd: PUSH2 0x04cf 000004c0: PUSH2 0x04ca 000004c3: CALLDATASIZE 000004c4: PUSH1 0x04 000004c6: PUSH2 0x3a28 000004c9: JUMP 000004ca: JUMPDEST 000004cb: PUSH2 0x0daa 000004ce: JUMP 000004cf: JUMPDEST 000004d0: STOP 000004d1: JUMPDEST 000004d2: PUSH2 0x04a4 000004d5: PUSH32 0x000000000000000000000000f76c421bab7df8548604e60deccce50477c10462 000004f6: DUP2 000004f7: JUMP 000004f8: JUMPDEST 000004f9: PUSH2 0x03d3 000004fc: PUSH2 0x0506 000004ff: CALLDATASIZE 00000500: PUSH1 0x04 00000502: PUSH2 0x3ae4 00000505: JUMP 00000506: JUMPDEST 00000507: PUSH1 0x01 00000509: PUSH1 0x01 0000050b: PUSH1 0xa0 0000050d: SHL 0000050e: SUB 0000050f: AND 00000510: PUSH0 00000511: SWAP1 00000512: DUP2 00000513: MSTORE 00000514: PUSH1 0x09 00000516: PUSH1 0x20 00000518: MSTORE 00000519: PUSH1 0x40 0000051b: SWAP1 0000051c: KECCAK256 0000051d: SLOAD 0000051e: PUSH1 0xff 00000520: AND 00000521: SWAP1 00000522: JUMP 00000523: JUMPDEST 00000524: PUSH2 0x04a4 00000527: PUSH2 0x10e9 0000052a: JUMP 0000052b: JUMPDEST 0000052c: PUSH1 0x40 0000052e: MLOAD 0000052f: PUSH1 0x12 00000531: DUP2 00000532: MSTORE 00000533: PUSH1 0x20 00000535: ADD 00000536: PUSH2 0x03b7 00000539: JUMP 0000053a: JUMPDEST 0000053b: PUSH2 0x04cf 0000053e: PUSH2 0x0548 00000541: CALLDATASIZE 00000542: PUSH1 0x04 00000544: PUSH2 0x3aff 00000547: JUMP 00000548: JUMPDEST 00000549: PUSH2 0x1127 0000054c: JUMP 0000054d: JUMPDEST 0000054e: PUSH2 0x04cf 00000551: PUSH2 0x1272 00000554: JUMP 00000555: JUMPDEST 00000556: PUSH2 0x04cf 00000559: PUSH2 0x0563 0000055c: CALLDATASIZE 0000055d: PUSH1 0x04 0000055f: PUSH2 0x3b16 00000562: JUMP 00000563: JUMPDEST 00000564: PUSH2 0x13ab 00000567: JUMP 00000568: JUMPDEST 00000569: PUSH2 0x03d3 0000056c: PUSH2 0x0576 0000056f: CALLDATASIZE 00000570: PUSH1 0x04 00000572: PUSH2 0x384d 00000575: JUMP 00000576: JUMPDEST 00000577: PUSH2 0x15f0 0000057a: JUMP 0000057b: JUMPDEST 0000057c: PUSH2 0x03eb 0000057f: PUSH32 0x362e5182440b52aa8fffe70a251550fbbcbca424740fe5a14f59bf0c1b06fe1d 000005a0: DUP2 000005a1: JUMP 000005a2: JUMPDEST 000005a3: PUSH2 0x03eb 000005a6: PUSH2 0x05b0 000005a9: CALLDATASIZE 000005aa: PUSH1 0x04 000005ac: PUSH2 0x3ae4 000005af: JUMP 000005b0: JUMPDEST 000005b1: PUSH1 0x01 000005b3: PUSH1 0x01 000005b5: PUSH1 0xa0 000005b7: SHL 000005b8: SUB 000005b9: AND 000005ba: PUSH0 000005bb: SWAP1 000005bc: DUP2 000005bd: MSTORE 000005be: PUSH1 0x20 000005c0: DUP2 000005c1: SWAP1 000005c2: MSTORE 000005c3: PUSH1 0x40 000005c5: SWAP1 000005c6: KECCAK256 000005c7: SLOAD 000005c8: SWAP1 000005c9: JUMP 000005ca: JUMPDEST 000005cb: PUSH2 0x03eb 000005ce: PUSH2 0x163f 000005d1: JUMP 000005d2: JUMPDEST 000005d3: PUSH2 0x05e5 000005d6: PUSH2 0x05e0 000005d9: CALLDATASIZE 000005da: PUSH1 0x04 000005dc: PUSH2 0x3b8e 000005df: JUMP 000005e0: JUMPDEST 000005e1: PUSH2 0x1654 000005e4: JUMP 000005e5: JUMPDEST 000005e6: PUSH1 0x40 000005e8: DUP1 000005e9: MLOAD 000005ea: SWAP3 000005eb: DUP4 000005ec: MSTORE 000005ed: PUSH1 0x20 000005ef: DUP4 000005f0: ADD 000005f1: SWAP2 000005f2: SWAP1 000005f3: SWAP2 000005f4: MSTORE 000005f5: ADD 000005f6: PUSH2 0x03b7 000005f9: JUMP 000005fa: JUMPDEST 000005fb: PUSH2 0x05e5 000005fe: PUSH2 0x0608 00000601: CALLDATASIZE 00000602: PUSH1 0x04 00000604: PUSH2 0x3b8e 00000607: JUMP 00000608: JUMPDEST 00000609: PUSH2 0x1a09 0000060c: JUMP 0000060d: JUMPDEST 0000060e: PUSH2 0x03eb 00000611: PUSH2 0x1d8f 00000614: JUMP 00000615: JUMPDEST 00000616: PUSH2 0x04a4 00000619: PUSH32 0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41 0000063a: DUP2 0000063b: JUMP 0000063c: JUMPDEST 0000063d: PUSH1 0x07 0000063f: SLOAD 00000640: PUSH1 0xff 00000642: AND 00000643: PUSH2 0x03d3 00000646: JUMP 00000647: JUMPDEST 00000648: PUSH2 0x04cf 0000064b: PUSH2 0x0655 0000064e: CALLDATASIZE 0000064f: PUSH1 0x04 00000651: PUSH2 0x3ae4 00000654: JUMP 00000655: JUMPDEST 00000656: PUSH2 0x1da6 00000659: JUMP 0000065a: JUMPDEST 0000065b: PUSH2 0x03eb 0000065e: PUSH2 0x1e8b 00000661: JUMP 00000662: JUMPDEST 00000663: PUSH2 0x03eb 00000666: PUSH2 0x1ec0 00000669: JUMP 0000066a: JUMPDEST 0000066b: PUSH2 0x03eb 0000066e: PUSH2 0x0678 00000671: CALLDATASIZE 00000672: PUSH1 0x04 00000674: PUSH2 0x3ae4 00000677: JUMP 00000678: JUMPDEST 00000679: PUSH2 0x1ed3 0000067c: JUMP 0000067d: JUMPDEST 0000067e: PUSH2 0x03aa 00000681: PUSH2 0x1f5b 00000684: JUMP 00000685: JUMPDEST 00000686: PUSH2 0x068e 00000689: PUSH2 0x012c 0000068c: DUP2 0000068d: JUMP 0000068e: JUMPDEST 0000068f: PUSH1 0x40 00000691: MLOAD 00000692: PUSH4 0xffffffff 00000697: SWAP1 00000698: SWAP2 00000699: AND 0000069a: DUP2 0000069b: MSTORE 0000069c: PUSH1 0x20 0000069e: ADD 0000069f: PUSH2 0x03b7 000006a2: JUMP 000006a3: JUMPDEST 000006a4: PUSH2 0x03eb 000006a7: PUSH2 0x1f6a 000006aa: JUMP 000006ab: JUMPDEST 000006ac: PUSH2 0x03eb 000006af: PUSH2 0x06b9 000006b2: CALLDATASIZE 000006b3: PUSH1 0x04 000006b5: PUSH2 0x3bdc 000006b8: JUMP 000006b9: JUMPDEST 000006ba: PUSH2 0x1f88 000006bd: JUMP 000006be: JUMPDEST 000006bf: PUSH2 0x03d3 000006c2: PUSH2 0x06cc 000006c5: CALLDATASIZE 000006c6: PUSH1 0x04 000006c8: PUSH2 0x384d 000006cb: JUMP 000006cc: JUMPDEST 000006cd: PUSH2 0x1fee 000006d0: JUMP 000006d1: JUMPDEST 000006d2: PUSH2 0x04cf 000006d5: PUSH2 0x06df 000006d8: CALLDATASIZE 000006d9: PUSH1 0x04 000006db: PUSH2 0x3b16 000006de: JUMP 000006df: JUMPDEST 000006e0: PUSH2 0x1ffb 000006e3: JUMP 000006e4: JUMPDEST 000006e5: PUSH2 0x03eb 000006e8: PUSH1 0x08 000006ea: DUP2 000006eb: JUMP 000006ec: JUMPDEST 000006ed: PUSH2 0x03eb 000006f0: PUSH1 0x02 000006f2: DUP2 000006f3: JUMP 000006f4: JUMPDEST 000006f5: PUSH2 0x03eb 000006f8: PUSH1 0x01 000006fa: DUP2 000006fb: JUMP 000006fc: JUMPDEST 000006fd: PUSH2 0x03eb 00000700: PUSH2 0x070a 00000703: CALLDATASIZE 00000704: PUSH1 0x04 00000706: PUSH2 0x3c13 00000709: JUMP 0000070a: JUMPDEST 0000070b: PUSH2 0x2281 0000070e: JUMP 0000070f: JUMPDEST 00000710: PUSH2 0x03eb 00000713: PUSH2 0x22fd 00000716: JUMP 00000717: JUMPDEST 00000718: PUSH2 0x03eb 0000071b: PUSH2 0x2324 0000071e: JUMP 0000071f: JUMPDEST 00000720: PUSH2 0x0727 00000723: PUSH2 0x2343 00000726: JUMP 00000727: JUMPDEST 00000728: PUSH1 0x40 0000072a: MLOAD 0000072b: PUSH2 0x03b7 0000072e: SWAP2 0000072f: SWAP1 00000730: PUSH2 0x3c52 00000733: JUMP 00000734: JUMPDEST 00000735: PUSH2 0x03eb 00000738: PUSH0 00000739: DUP2 0000073a: JUMP 0000073b: JUMPDEST 0000073c: PUSH2 0x0727 0000073f: PUSH2 0x23f2 00000742: JUMP 00000743: JUMPDEST 00000744: PUSH1 0x08 00000746: SLOAD 00000747: PUSH2 0x03eb 0000074a: JUMP 0000074b: JUMPDEST 0000074c: PUSH2 0x04cf 0000074f: PUSH2 0x0759 00000752: CALLDATASIZE 00000753: PUSH1 0x04 00000755: PUSH2 0x3ae4 00000758: JUMP 00000759: JUMPDEST 0000075a: PUSH2 0x2421 0000075d: JUMP 0000075e: JUMPDEST 0000075f: PUSH2 0x03eb 00000762: PUSH2 0x270e 00000765: JUMP 00000766: JUMPDEST 00000767: PUSH2 0x03d3 0000076a: PUSH2 0x0774 0000076d: CALLDATASIZE 0000076e: PUSH1 0x04 00000770: PUSH2 0x384d 00000773: JUMP 00000774: JUMPDEST 00000775: PUSH2 0x2743 00000778: JUMP 00000779: JUMPDEST 0000077a: PUSH2 0x03eb 0000077d: PUSH32 0xc078f884a2676e1345748b1feace7b0abee5d00ecadb6e574dcdd109a63e8943 0000079e: DUP2 0000079f: JUMP 000007a0: JUMPDEST 000007a1: PUSH2 0x03eb 000007a4: PUSH2 0x07ae 000007a7: CALLDATASIZE 000007a8: PUSH1 0x04 000007aa: PUSH2 0x3877 000007ad: JUMP 000007ae: JUMPDEST 000007af: PUSH1 0x01 000007b1: PUSH1 0x01 000007b3: PUSH1 0xa0 000007b5: SHL 000007b6: SUB 000007b7: SWAP2 000007b8: DUP3 000007b9: AND 000007ba: PUSH0 000007bb: SWAP1 000007bc: DUP2 000007bd: MSTORE 000007be: PUSH1 0x01 000007c0: PUSH1 0x20 000007c2: SWAP1 000007c3: DUP2 000007c4: MSTORE 000007c5: PUSH1 0x40 000007c7: DUP1 000007c8: DUP4 000007c9: KECCAK256 000007ca: SWAP4 000007cb: SWAP1 000007cc: SWAP5 000007cd: AND 000007ce: DUP3 000007cf: MSTORE 000007d0: SWAP2 000007d1: SWAP1 000007d2: SWAP2 000007d3: MSTORE 000007d4: KECCAK256 000007d5: SLOAD 000007d6: SWAP1 000007d7: JUMP 000007d8: JUMPDEST 000007d9: PUSH2 0x04cf 000007dc: PUSH2 0x07e6 000007df: CALLDATASIZE 000007e0: PUSH1 0x04 000007e2: PUSH2 0x3c9e 000007e5: JUMP 000007e6: JUMPDEST 000007e7: PUSH2 0x2782 000007ea: JUMP 000007eb: JUMPDEST 000007ec: PUSH2 0x03eb 000007ef: PUSH8 0x06f05b59d3b20000 000007f8: DUP2 000007f9: JUMP 000007fa: JUMPDEST 000007fb: PUSH2 0x04cf 000007fe: PUSH2 0x0808 00000801: CALLDATASIZE 00000802: PUSH1 0x04 00000804: PUSH2 0x3aff 00000807: JUMP 00000808: JUMPDEST 00000809: PUSH2 0x2a19 0000080c: JUMP 0000080d: JUMPDEST 0000080e: PUSH2 0x03eb 00000811: PUSH2 0x081b 00000814: CALLDATASIZE 00000815: PUSH1 0x04 00000817: PUSH2 0x3ae4 0000081a: JUMP 0000081b: JUMPDEST 0000081c: PUSH2 0x2a98 0000081f: JUMP 00000820: JUMPDEST 00000821: PUSH2 0x03eb 00000824: PUSH2 0x082e 00000827: CALLDATASIZE 00000828: PUSH1 0x04 0000082a: PUSH2 0x3ae4 0000082d: JUMP 0000082e: JUMPDEST 0000082f: PUSH2 0x2b27 00000832: JUMP 00000833: JUMPDEST 00000834: PUSH2 0x03eb 00000837: PUSH2 0x0841 0000083a: CALLDATASIZE 0000083b: PUSH1 0x04 0000083d: PUSH2 0x3c13 00000840: JUMP 00000841: JUMPDEST 00000842: PUSH2 0x2bf3 00000845: JUMP 00000846: JUMPDEST 00000847: PUSH1 0x60 00000849: PUSH1 0x03 0000084b: DUP1 0000084c: SLOAD 0000084d: PUSH2 0x0855 00000850: SWAP1 00000851: PUSH2 0x3cd0 00000854: JUMP 00000855: JUMPDEST 00000856: DUP1 00000857: PUSH1 0x1f 00000859: ADD 0000085a: PUSH1 0x20 0000085c: DUP1 0000085d: SWAP2 0000085e: DIV 0000085f: MUL 00000860: PUSH1 0x20 00000862: ADD 00000863: PUSH1 0x40 00000865: MLOAD 00000866: SWAP1 00000867: DUP2 00000868: ADD 00000869: PUSH1 0x40 0000086b: MSTORE 0000086c: DUP1 0000086d: SWAP3 0000086e: SWAP2 0000086f: SWAP1 00000870: DUP2 00000871: DUP2 00000872: MSTORE 00000873: PUSH1 0x20 00000875: ADD 00000876: DUP3 00000877: DUP1 00000878: SLOAD 00000879: PUSH2 0x0881 0000087c: SWAP1 0000087d: PUSH2 0x3cd0 00000880: JUMP 00000881: JUMPDEST 00000882: DUP1 00000883: ISZERO 00000884: PUSH2 0x08cc 00000887: JUMPI 00000888: DUP1 00000889: PUSH1 0x1f 0000088b: LT 0000088c: PUSH2 0x08a3 0000088f: JUMPI 00000890: PUSH2 0x0100 00000893: DUP1 00000894: DUP4 00000895: SLOAD 00000896: DIV 00000897: MUL 00000898: DUP4 00000899: MSTORE 0000089a: SWAP2 0000089b: PUSH1 0x20 0000089d: ADD 0000089e: SWAP2 0000089f: PUSH2 0x08cc 000008a2: JUMP 000008a3: JUMPDEST 000008a4: DUP3 000008a5: ADD 000008a6: SWAP2 000008a7: SWAP1 000008a8: PUSH0 000008a9: MSTORE 000008aa: PUSH1 0x20 000008ac: PUSH0 000008ad: KECCAK256 000008ae: SWAP1 000008af: JUMPDEST 000008b0: DUP2 000008b1: SLOAD 000008b2: DUP2 000008b3: MSTORE 000008b4: SWAP1 000008b5: PUSH1 0x01 000008b7: ADD 000008b8: SWAP1 000008b9: PUSH1 0x20 000008bb: ADD 000008bc: DUP1 000008bd: DUP4 000008be: GT 000008bf: PUSH2 0x08af 000008c2: JUMPI 000008c3: DUP3 000008c4: SWAP1 000008c5: SUB 000008c6: PUSH1 0x1f 000008c8: AND 000008c9: DUP3 000008ca: ADD 000008cb: SWAP2 000008cc: JUMPDEST 000008cd: POP 000008ce: POP 000008cf: POP 000008d0: POP 000008d1: POP 000008d2: SWAP1 000008d3: POP 000008d4: SWAP1 000008d5: JUMP 000008d6: JUMPDEST 000008d7: PUSH0 000008d8: CALLER 000008d9: PUSH2 0x08e3 000008dc: DUP2 000008dd: DUP6 000008de: DUP6 000008df: PUSH2 0x2c72 000008e2: JUMP 000008e3: JUMPDEST 000008e4: PUSH1 0x01 000008e6: SWAP2 000008e7: POP 000008e8: POP 000008e9: JUMPDEST 000008ea: SWAP3 000008eb: SWAP2 000008ec: POP 000008ed: POP 000008ee: JUMP 000008ef: JUMPDEST 000008f0: PUSH2 0x0902 000008f3: PUSH8 0x0de0b6b3a7640000 000008fc: PUSH1 0x32 000008fe: PUSH2 0x3d1c 00000901: JUMP 00000902: JUMPDEST 00000903: DUP2 00000904: JUMP 00000905: JUMPDEST 00000906: PUSH0 00000907: PUSH0 00000908: DUP1 00000909: MLOAD 0000090a: PUSH1 0x20 0000090c: PUSH2 0x3f08 0000090f: DUP4 00000910: CODECOPY 00000911: DUP2 00000912: MLOAD 00000913: SWAP2 00000914: MSTORE 00000915: TLOAD 00000916: ISZERO 00000917: PUSH2 0x0933 0000091a: JUMPI 0000091b: PUSH1 0x40 0000091d: MLOAD 0000091e: PUSH4 0xd56a08b5 00000923: PUSH1 0xe0 00000925: SHL 00000926: DUP2 00000927: MSTORE 00000928: PUSH1 0x04 0000092a: ADD 0000092b: PUSH1 0x40 0000092d: MLOAD 0000092e: DUP1 0000092f: SWAP2 00000930: SUB 00000931: SWAP1 00000932: REVERT 00000933: JUMPDEST 00000934: PUSH1 0x01 00000936: PUSH1 0x01 00000938: PUSH1 0xa0 0000093a: SHL 0000093b: SUB 0000093c: DUP4 0000093d: AND 0000093e: PUSH0 0000093f: SWAP1 00000940: DUP2 00000941: MSTORE 00000942: PUSH1 0x09 00000944: PUSH1 0x20 00000946: MSTORE 00000947: PUSH1 0x40 00000949: SWAP1 0000094a: KECCAK256 0000094b: SLOAD 0000094c: PUSH1 0xff 0000094e: AND 0000094f: PUSH2 0x096b 00000952: JUMPI 00000953: PUSH1 0x40 00000955: MLOAD 00000956: PUSH4 0x4b16fc2d 0000095b: PUSH1 0xe1 0000095d: SHL 0000095e: DUP2 0000095f: MSTORE 00000960: PUSH1 0x04 00000962: ADD 00000963: PUSH1 0x40 00000965: MLOAD 00000966: DUP1 00000967: SWAP2 00000968: SUB 00000969: SWAP1 0000096a: REVERT 0000096b: JUMPDEST 0000096c: PUSH1 0x01 0000096e: PUSH1 0x01 00000970: PUSH1 0xa0 00000972: SHL 00000973: SUB 00000974: DUP3 00000975: AND 00000976: PUSH0 00000977: SWAP1 00000978: DUP2 00000979: MSTORE 0000097a: PUSH1 0x09 0000097c: PUSH1 0x20 0000097e: MSTORE 0000097f: PUSH1 0x40 00000981: SWAP1 00000982: KECCAK256 00000983: SLOAD 00000984: PUSH1 0xff 00000986: AND 00000987: PUSH2 0x09a3 0000098a: JUMPI 0000098b: PUSH1 0x40 0000098d: MLOAD 0000098e: PUSH4 0x4b16fc2d 00000993: PUSH1 0xe1 00000995: SHL 00000996: DUP2 00000997: MSTORE 00000998: PUSH1 0x04 0000099a: ADD 0000099b: PUSH1 0x40 0000099d: MLOAD 0000099e: DUP1 0000099f: SWAP2 000009a0: SUB 000009a1: SWAP1 000009a2: REVERT 000009a3: JUMPDEST 000009a4: PUSH1 0x01 000009a6: PUSH1 0x01 000009a8: PUSH1 0xa0 000009aa: SHL 000009ab: SUB 000009ac: DUP4 000009ad: DUP2 000009ae: AND 000009af: PUSH0 000009b0: DUP2 000009b1: DUP2 000009b2: MSTORE 000009b3: PUSH1 0x09 000009b5: PUSH1 0x20 000009b7: MSTORE 000009b8: PUSH1 0x40 000009ba: DUP1 000009bb: DUP3 000009bc: KECCAK256 000009bd: SWAP4 000009be: DUP7 000009bf: AND 000009c0: DUP3 000009c1: MSTORE 000009c2: SWAP1 000009c3: DUP2 000009c4: SWAP1 000009c5: KECCAK256 000009c6: SWAP1 000009c7: MLOAD 000009c8: PUSH4 0x70a08231 000009cd: PUSH1 0xe0 000009cf: SHL 000009d0: DUP2 000009d1: MSTORE 000009d2: ADDRESS 000009d3: PUSH1 0x04 000009d5: DUP3 000009d6: ADD 000009d7: MSTORE 000009d8: SWAP1 000009d9: SWAP2 000009da: PUSH2 0x0a9b 000009dd: SWAP2 000009de: PUSH4 0x70a08231 000009e3: SWAP1 000009e4: PUSH1 0x24 000009e6: ADD 000009e7: PUSH1 0x20 000009e9: PUSH1 0x40 000009eb: MLOAD 000009ec: DUP1 000009ed: DUP4 000009ee: SUB 000009ef: DUP2 000009f0: DUP7 000009f1: GAS 000009f2: STATICCALL 000009f3: ISZERO 000009f4: DUP1 000009f5: ISZERO 000009f6: PUSH2 0x0a01 000009f9: JUMPI 000009fa: RETURNDATASIZE 000009fb: PUSH0 000009fc: DUP1 000009fd: RETURNDATACOPY 000009fe: RETURNDATASIZE 000009ff: PUSH0 00000a00: REVERT 00000a01: JUMPDEST 00000a02: POP 00000a03: POP 00000a04: POP 00000a05: POP 00000a06: PUSH1 0x40 00000a08: MLOAD 00000a09: RETURNDATASIZE 00000a0a: PUSH1 0x1f 00000a0c: NOT 00000a0d: PUSH1 0x1f 00000a0f: DUP3 00000a10: ADD 00000a11: AND 00000a12: DUP3 00000a13: ADD 00000a14: DUP1 00000a15: PUSH1 0x40 00000a17: MSTORE 00000a18: POP 00000a19: DUP2 00000a1a: ADD 00000a1b: SWAP1 00000a1c: PUSH2 0x0a25 00000a1f: SWAP2 00000a20: SWAP1 00000a21: PUSH2 0x3d33 00000a24: JUMP 00000a25: JUMPDEST 00000a26: PUSH1 0x02 00000a28: DUP5 00000a29: ADD 00000a2a: SLOAD 00000a2b: PUSH1 0x40 00000a2d: MLOAD 00000a2e: PUSH4 0x70a08231 00000a33: PUSH1 0xe0 00000a35: SHL 00000a36: DUP2 00000a37: MSTORE 00000a38: ADDRESS 00000a39: PUSH1 0x04 00000a3b: DUP3 00000a3c: ADD 00000a3d: MSTORE 00000a3e: PUSH1 0x01 00000a40: PUSH1 0x01 00000a42: PUSH1 0xa0 00000a44: SHL 00000a45: SUB 00000a46: DUP9 00000a47: AND 00000a48: SWAP1 00000a49: PUSH4 0x70a08231 00000a4e: SWAP1 00000a4f: PUSH1 0x24 00000a51: ADD 00000a52: PUSH1 0x20 00000a54: PUSH1 0x40 00000a56: MLOAD 00000a57: DUP1 00000a58: DUP4 00000a59: SUB 00000a5a: DUP2 00000a5b: DUP7 00000a5c: GAS 00000a5d: STATICCALL 00000a5e: ISZERO 00000a5f: DUP1 00000a60: ISZERO 00000a61: PUSH2 0x0a6c 00000a64: JUMPI 00000a65: RETURNDATASIZE 00000a66: PUSH0 00000a67: DUP1 00000a68: RETURNDATACOPY 00000a69: RETURNDATASIZE 00000a6a: PUSH0 00000a6b: REVERT 00000a6c: JUMPDEST 00000a6d: POP 00000a6e: POP 00000a6f: POP 00000a70: POP 00000a71: PUSH1 0x40 00000a73: MLOAD 00000a74: RETURNDATASIZE 00000a75: PUSH1 0x1f 00000a77: NOT 00000a78: PUSH1 0x1f 00000a7a: DUP3 00000a7b: ADD 00000a7c: AND 00000a7d: DUP3 00000a7e: ADD 00000a7f: DUP1 00000a80: PUSH1 0x40 00000a82: MSTORE 00000a83: POP 00000a84: DUP2 00000a85: ADD 00000a86: SWAP1 00000a87: PUSH2 0x0a90 00000a8a: SWAP2 00000a8b: SWAP1 00000a8c: PUSH2 0x3d33 00000a8f: JUMP 00000a90: JUMPDEST 00000a91: DUP5 00000a92: PUSH1 0x02 00000a94: ADD 00000a95: SLOAD 00000a96: PUSH0 00000a97: PUSH2 0x1f88 00000a9a: JUMP 00000a9b: JUMPDEST 00000a9c: SWAP6 00000a9d: SWAP5 00000a9e: POP 00000a9f: POP 00000aa0: POP 00000aa1: POP 00000aa2: POP 00000aa3: JUMP 00000aa4: JUMPDEST 00000aa5: PUSH0 00000aa6: PUSH0 00000aa7: DUP1 00000aa8: MLOAD 00000aa9: PUSH1 0x20 00000aab: PUSH2 0x3f08 00000aae: DUP4 00000aaf: CODECOPY 00000ab0: DUP2 00000ab1: MLOAD 00000ab2: SWAP2 00000ab3: MSTORE 00000ab4: TLOAD 00000ab5: ISZERO 00000ab6: PUSH2 0x0ad2 00000ab9: JUMPI 00000aba: PUSH1 0x40 00000abc: MLOAD 00000abd: PUSH4 0xd56a08b5 00000ac2: PUSH1 0xe0 00000ac4: SHL 00000ac5: DUP2 00000ac6: MSTORE 00000ac7: PUSH1 0x04 00000ac9: ADD 00000aca: PUSH1 0x40 00000acc: MLOAD 00000acd: DUP1 00000ace: SWAP2 00000acf: SUB 00000ad0: SWAP1 00000ad1: REVERT 00000ad2: JUMPDEST 00000ad3: PUSH1 0x01 00000ad5: PUSH1 0x01 00000ad7: PUSH1 0xa0 00000ad9: SHL 00000ada: SUB 00000adb: DUP4 00000adc: AND 00000add: PUSH0 00000ade: SWAP1 00000adf: DUP2 00000ae0: MSTORE 00000ae1: PUSH1 0x09 00000ae3: PUSH1 0x20 00000ae5: MSTORE 00000ae6: PUSH1 0x40 00000ae8: SWAP1 00000ae9: KECCAK256 00000aea: SLOAD 00000aeb: PUSH1 0xff 00000aed: AND 00000aee: PUSH2 0x0b0a 00000af1: JUMPI 00000af2: PUSH1 0x40 00000af4: MLOAD 00000af5: PUSH4 0x4b16fc2d 00000afa: PUSH1 0xe1 00000afc: SHL 00000afd: DUP2 00000afe: MSTORE 00000aff: PUSH1 0x04 00000b01: ADD 00000b02: PUSH1 0x40 00000b04: MLOAD 00000b05: DUP1 00000b06: SWAP2 00000b07: SUB 00000b08: SWAP1 00000b09: REVERT 00000b0a: JUMPDEST 00000b0b: PUSH1 0x01 00000b0d: PUSH1 0x01 00000b0f: PUSH1 0xa0 00000b11: SHL 00000b12: SUB 00000b13: DUP3 00000b14: AND 00000b15: PUSH0 00000b16: SWAP1 00000b17: DUP2 00000b18: MSTORE 00000b19: PUSH1 0x09 00000b1b: PUSH1 0x20 00000b1d: MSTORE 00000b1e: PUSH1 0x40 00000b20: SWAP1 00000b21: KECCAK256 00000b22: SLOAD 00000b23: PUSH1 0xff 00000b25: AND 00000b26: PUSH2 0x0b42 00000b29: JUMPI 00000b2a: PUSH1 0x40 00000b2c: MLOAD 00000b2d: PUSH4 0x4b16fc2d 00000b32: PUSH1 0xe1 00000b34: SHL 00000b35: DUP2 00000b36: MSTORE 00000b37: PUSH1 0x04 00000b39: ADD 00000b3a: PUSH1 0x40 00000b3c: MLOAD 00000b3d: DUP1 00000b3e: SWAP2 00000b3f: SUB 00000b40: SWAP1 00000b41: REVERT 00000b42: JUMPDEST 00000b43: PUSH1 0x01 00000b45: PUSH1 0x01 00000b47: PUSH1 0xa0 00000b49: SHL 00000b4a: SUB 00000b4b: DUP4 00000b4c: DUP2 00000b4d: AND 00000b4e: PUSH0 00000b4f: DUP2 00000b50: DUP2 00000b51: MSTORE 00000b52: PUSH1 0x09 00000b54: PUSH1 0x20 00000b56: MSTORE 00000b57: PUSH1 0x40 00000b59: DUP1 00000b5a: DUP3 00000b5b: KECCAK256 00000b5c: SWAP4 00000b5d: DUP7 00000b5e: AND 00000b5f: DUP3 00000b60: MSTORE 00000b61: SWAP1 00000b62: DUP2 00000b63: SWAP1 00000b64: KECCAK256 00000b65: SWAP1 00000b66: MLOAD 00000b67: PUSH4 0x70a08231 00000b6c: PUSH1 0xe0 00000b6e: SHL 00000b6f: DUP2 00000b70: MSTORE 00000b71: ADDRESS 00000b72: PUSH1 0x04 00000b74: DUP3 00000b75: ADD 00000b76: MSTORE 00000b77: SWAP1 00000b78: SWAP2 00000b79: PUSH2 0x0a9b 00000b7c: SWAP2 00000b7d: PUSH4 0x70a08231 00000b82: SWAP1 00000b83: PUSH1 0x24 00000b85: ADD 00000b86: PUSH1 0x20 00000b88: PUSH1 0x40 00000b8a: MLOAD 00000b8b: DUP1 00000b8c: DUP4 00000b8d: SUB 00000b8e: DUP2 00000b8f: DUP7 00000b90: GAS 00000b91: STATICCALL 00000b92: ISZERO 00000b93: DUP1 00000b94: ISZERO 00000b95: PUSH2 0x0ba0 00000b98: JUMPI 00000b99: RETURNDATASIZE 00000b9a: PUSH0 00000b9b: DUP1 00000b9c: RETURNDATACOPY 00000b9d: RETURNDATASIZE 00000b9e: PUSH0 00000b9f: REVERT 00000ba0: JUMPDEST 00000ba1: POP 00000ba2: POP 00000ba3: POP 00000ba4: POP 00000ba5: PUSH1 0x40 00000ba7: MLOAD 00000ba8: RETURNDATASIZE 00000ba9: PUSH1 0x1f 00000bab: NOT 00000bac: PUSH1 0x1f 00000bae: DUP3 00000baf: ADD 00000bb0: AND 00000bb1: DUP3 00000bb2: ADD 00000bb3: DUP1 00000bb4: PUSH1 0x40 00000bb6: MSTORE 00000bb7: POP 00000bb8: DUP2 00000bb9: ADD 00000bba: SWAP1 00000bbb: PUSH2 0x0bc4 00000bbe: SWAP2 00000bbf: SWAP1 00000bc0: PUSH2 0x3d33 00000bc3: JUMP 00000bc4: JUMPDEST 00000bc5: PUSH1 0x02 00000bc7: DUP5 00000bc8: ADD 00000bc9: SLOAD 00000bca: PUSH1 0x40 00000bcc: MLOAD 00000bcd: PUSH4 0x70a08231 00000bd2: PUSH1 0xe0 00000bd4: SHL 00000bd5: DUP2 00000bd6: MSTORE 00000bd7: ADDRESS 00000bd8: PUSH1 0x04 00000bda: DUP3 00000bdb: ADD 00000bdc: MSTORE 00000bdd: PUSH1 0x01 00000bdf: PUSH1 0x01 00000be1: PUSH1 0xa0 00000be3: SHL 00000be4: SUB 00000be5: DUP9 00000be6: AND 00000be7: SWAP1 00000be8: PUSH4 0x70a08231 00000bed: SWAP1 00000bee: PUSH1 0x24 00000bf0: ADD 00000bf1: PUSH1 0x20 00000bf3: PUSH1 0x40 00000bf5: MLOAD 00000bf6: DUP1 00000bf7: DUP4 00000bf8: SUB 00000bf9: DUP2 00000bfa: DUP7 00000bfb: GAS 00000bfc: STATICCALL 00000bfd: ISZERO 00000bfe: DUP1 00000bff: ISZERO 00000c00: PUSH2 0x0c0b 00000c03: JUMPI 00000c04: RETURNDATASIZE 00000c05: PUSH0 00000c06: DUP1 00000c07: RETURNDATACOPY 00000c08: RETURNDATASIZE 00000c09: PUSH0 00000c0a: REVERT 00000c0b: JUMPDEST 00000c0c: POP 00000c0d: POP 00000c0e: POP 00000c0f: POP 00000c10: PUSH1 0x40 00000c12: MLOAD 00000c13: RETURNDATASIZE 00000c14: PUSH1 0x1f 00000c16: NOT 00000c17: PUSH1 0x1f 00000c19: DUP3 00000c1a: ADD 00000c1b: AND 00000c1c: DUP3 00000c1d: ADD 00000c1e: DUP1 00000c1f: PUSH1 0x40 00000c21: MSTORE 00000c22: POP 00000c23: DUP2 00000c24: ADD 00000c25: SWAP1 00000c26: PUSH2 0x0c2f 00000c29: SWAP2 00000c2a: SWAP1 00000c2b: PUSH2 0x3d33 00000c2e: JUMP 00000c2f: JUMPDEST 00000c30: DUP5 00000c31: PUSH1 0x02 00000c33: ADD 00000c34: SLOAD 00000c35: PUSH1 0x06 00000c37: SLOAD 00000c38: PUSH2 0x1f88 00000c3b: JUMP 00000c3c: JUMPDEST 00000c3d: PUSH0 00000c3e: DUP1 00000c3f: DUP3 00000c40: DUP1 00000c41: PUSH1 0x20 00000c43: ADD 00000c44: SWAP1 00000c45: MLOAD 00000c46: DUP2 00000c47: ADD 00000c48: SWAP1 00000c49: PUSH2 0x0c52 00000c4c: SWAP2 00000c4d: SWAP1 00000c4e: PUSH2 0x3d6b 00000c51: JUMP 00000c52: JUMPDEST 00000c53: SWAP1 00000c54: POP 00000c55: PUSH32 0x362e5182440b52aa8fffe70a251550fbbcbca424740fe5a14f59bf0c1b06fe1d 00000c76: DUP2 00000c77: PUSH1 0xc0 00000c79: ADD 00000c7a: MLOAD 00000c7b: EQ 00000c7c: PUSH2 0x0c98 00000c7f: JUMPI 00000c80: PUSH1 0x40 00000c82: MLOAD 00000c83: PUSH4 0x0e1a1b63 00000c88: PUSH1 0xe4 00000c8a: SHL 00000c8b: DUP2 00000c8c: MSTORE 00000c8d: PUSH1 0x04 00000c8f: ADD 00000c90: PUSH1 0x40 00000c92: MLOAD 00000c93: DUP1 00000c94: SWAP2 00000c95: SUB 00000c96: SWAP1 00000c97: REVERT 00000c98: JUMPDEST 00000c99: PUSH1 0x1f 00000c9b: NOT 00000c9c: DUP2 00000c9d: ADD 00000c9e: DUP1 00000c9f: MLOAD 00000ca0: PUSH32 0xd5a25ba2e97094ad7d83dc28a6572da797d6b3e7fc6663bd93efb789fc17e489 00000cc1: DUP3 00000cc2: MSTORE 00000cc3: PUSH2 0x01a0 00000cc6: DUP3 00000cc7: KECCAK256 00000cc8: SWAP2 00000cc9: MSTORE 00000cca: PUSH1 0x40 00000ccc: MLOAD 00000ccd: PUSH2 0x1901 00000cd0: PUSH1 0xf0 00000cd2: SHL 00000cd3: DUP2 00000cd4: MSTORE 00000cd5: PUSH32 0xc078f884a2676e1345748b1feace7b0abee5d00ecadb6e574dcdd109a63e8943 00000cf6: PUSH1 0x02 00000cf8: DUP3 00000cf9: ADD 00000cfa: MSTORE 00000cfb: PUSH1 0x22 00000cfd: DUP2 00000cfe: ADD 00000cff: SWAP2 00000d00: SWAP1 00000d01: SWAP2 00000d02: MSTORE 00000d03: PUSH1 0x42 00000d05: SWAP1 00000d06: KECCAK256 00000d07: DUP5 00000d08: DUP2 00000d09: EQ 00000d0a: PUSH2 0x0d26 00000d0d: JUMPI 00000d0e: PUSH1 0x40 00000d10: MLOAD 00000d11: PUSH4 0x593fcacd 00000d16: PUSH1 0xe0 00000d18: SHL 00000d19: DUP2 00000d1a: MSTORE 00000d1b: PUSH1 0x04 00000d1d: ADD 00000d1e: PUSH1 0x40 00000d20: MLOAD 00000d21: DUP1 00000d22: SWAP2 00000d23: SUB 00000d24: SWAP1 00000d25: REVERT 00000d26: JUMPDEST 00000d27: PUSH0 00000d28: DUP1 00000d29: MLOAD 00000d2a: PUSH1 0x20 00000d2c: PUSH2 0x3f08 00000d2f: DUP4 00000d30: CODECOPY 00000d31: DUP2 00000d32: MLOAD 00000d33: SWAP2 00000d34: MSTORE 00000d35: TLOAD 00000d36: DUP2 00000d37: EQ 00000d38: PUSH2 0x0d54 00000d3b: JUMPI 00000d3c: PUSH1 0x40 00000d3e: MLOAD 00000d3f: PUSH4 0xdafbdd1f 00000d44: PUSH1 0xe0 00000d46: SHL 00000d47: DUP2 00000d48: MSTORE 00000d49: PUSH1 0x04 00000d4b: ADD 00000d4c: PUSH1 0x40 00000d4e: MLOAD 00000d4f: DUP1 00000d50: SWAP2 00000d51: SUB 00000d52: SWAP1 00000d53: REVERT 00000d54: JUMPDEST 00000d55: PUSH2 0x0d5d 00000d58: DUP3 00000d59: PUSH2 0x0daa 00000d5c: JUMP 00000d5d: JUMPDEST 00000d5e: POP 00000d5f: PUSH4 0x0b135d3f 00000d64: PUSH1 0xe1 00000d66: SHL 00000d67: SWAP5 00000d68: SWAP4 00000d69: POP 00000d6a: POP 00000d6b: POP 00000d6c: POP 00000d6d: JUMP 00000d6e: JUMPDEST 00000d6f: PUSH2 0x0902 00000d72: PUSH5 0x02540be400 00000d78: PUSH8 0x0de0b6b3a7640000 00000d81: PUSH2 0x3e3b 00000d84: JUMP 00000d85: JUMPDEST 00000d86: PUSH0 00000d87: CALLER 00000d88: PUSH2 0x0d92 00000d8b: DUP6 00000d8c: DUP3 00000d8d: DUP6 00000d8e: PUSH2 0x2c7f 00000d91: JUMP 00000d92: JUMPDEST 00000d93: PUSH2 0x0d9d 00000d96: DUP6 00000d97: DUP6 00000d98: DUP6 00000d99: PUSH2 0x2cff 00000d9c: JUMP 00000d9d: JUMPDEST 00000d9e: PUSH1 0x01 00000da0: SWAP2 00000da1: POP 00000da2: POP 00000da3: JUMPDEST 00000da4: SWAP4 00000da5: SWAP3 00000da6: POP 00000da7: POP 00000da8: POP 00000da9: JUMP 00000daa: JUMPDEST 00000dab: PUSH1 0x20 00000dad: DUP1 00000dae: DUP3 00000daf: ADD 00000db0: MLOAD 00000db1: PUSH1 0x01 00000db3: PUSH1 0x01 00000db5: PUSH1 0xa0 00000db7: SHL 00000db8: SUB 00000db9: SWAP1 00000dba: DUP2 00000dbb: AND 00000dbc: PUSH0 00000dbd: SWAP1 00000dbe: DUP2 00000dbf: MSTORE 00000dc0: PUSH1 0x09 00000dc2: DUP1 00000dc3: DUP5 00000dc4: MSTORE 00000dc5: PUSH1 0x40 00000dc7: DUP1 00000dc8: DUP4 00000dc9: KECCAK256 00000dca: DUP2 00000dcb: MLOAD 00000dcc: PUSH1 0x60 00000dce: DUP1 00000dcf: DUP3 00000dd0: ADD 00000dd1: DUP5 00000dd2: MSTORE 00000dd3: DUP3 00000dd4: SLOAD 00000dd5: PUSH1 0xff 00000dd7: SWAP1 00000dd8: DUP2 00000dd9: AND 00000dda: ISZERO 00000ddb: ISZERO 00000ddc: DUP4 00000ddd: MSTORE 00000dde: PUSH1 0x01 00000de0: DUP1 00000de1: DUP6 00000de2: ADD 00000de3: SLOAD 00000de4: DUP5 00000de5: DUP12 00000de6: ADD 00000de7: MSTORE 00000de8: PUSH1 0x02 00000dea: SWAP5 00000deb: DUP6 00000dec: ADD 00000ded: SLOAD 00000dee: DUP5 00000def: DUP8 00000df0: ADD 00000df1: MSTORE 00000df2: DUP11 00000df3: MLOAD 00000df4: SWAP1 00000df5: SWAP9 00000df6: AND 00000df7: DUP8 00000df8: MSTORE 00000df9: SWAP5 00000dfa: DUP9 00000dfb: MSTORE 00000dfc: SWAP5 00000dfd: DUP4 00000dfe: SWAP1 00000dff: KECCAK256 00000e00: DUP4 00000e01: MLOAD 00000e02: SWAP6 00000e03: DUP7 00000e04: ADD 00000e05: DUP5 00000e06: MSTORE 00000e07: DUP1 00000e08: SLOAD 00000e09: SWAP1 00000e0a: SWAP5 00000e0b: AND 00000e0c: ISZERO 00000e0d: ISZERO 00000e0e: DUP6 00000e0f: MSTORE 00000e10: SWAP5 00000e11: DUP4 00000e12: ADD 00000e13: SLOAD 00000e14: SWAP6 00000e15: DUP5 00000e16: ADD 00000e17: SWAP6 00000e18: SWAP1 00000e19: SWAP6 00000e1a: MSTORE 00000e1b: SWAP4 00000e1c: ADD 00000e1d: SLOAD 00000e1e: SWAP3 00000e1f: DUP2 00000e20: ADD 00000e21: SWAP3 00000e22: SWAP1 00000e23: SWAP3 00000e24: MSTORE 00000e25: DUP1 00000e26: MLOAD 00000e27: SWAP1 00000e28: SWAP2 00000e29: SWAP1 00000e2a: ISZERO 00000e2b: DUP1 00000e2c: PUSH2 0x0e34 00000e2f: JUMPI 00000e30: POP 00000e31: DUP1 00000e32: MLOAD 00000e33: ISZERO 00000e34: JUMPDEST 00000e35: ISZERO 00000e36: PUSH2 0x0e52 00000e39: JUMPI 00000e3a: PUSH1 0x40 00000e3c: MLOAD 00000e3d: PUSH4 0x4b16fc2d 00000e42: PUSH1 0xe1 00000e44: SHL 00000e45: DUP2 00000e46: MSTORE 00000e47: PUSH1 0x04 00000e49: ADD 00000e4a: PUSH1 0x40 00000e4c: MLOAD 00000e4d: DUP1 00000e4e: SWAP2 00000e4f: SUB 00000e50: SWAP1 00000e51: REVERT 00000e52: JUMPDEST 00000e53: PUSH1 0x40 00000e55: DUP4 00000e56: ADD 00000e57: MLOAD 00000e58: PUSH1 0x01 00000e5a: PUSH1 0x01 00000e5c: PUSH1 0xa0 00000e5e: SHL 00000e5f: SUB 00000e60: AND 00000e61: ISZERO 00000e62: PUSH2 0x0e7d 00000e65: JUMPI 00000e66: PUSH1 0x40 00000e68: MLOAD 00000e69: PUSH3 0x3c9da5 00000e6d: PUSH1 0xe6 00000e6f: SHL 00000e70: DUP2 00000e71: MSTORE 00000e72: PUSH1 0x04 00000e74: ADD 00000e75: PUSH1 0x40 00000e77: MLOAD 00000e78: DUP1 00000e79: SWAP2 00000e7a: SUB 00000e7b: SWAP1 00000e7c: REVERT 00000e7d: JUMPDEST 00000e7e: PUSH2 0x0e89 00000e81: PUSH2 0x012c 00000e84: TIMESTAMP 00000e85: PUSH2 0x3e5a 00000e88: JUMP 00000e89: JUMPDEST 00000e8a: DUP4 00000e8b: PUSH1 0xa0 00000e8d: ADD 00000e8e: MLOAD 00000e8f: PUSH4 0xffffffff 00000e94: AND 00000e95: GT 00000e96: ISZERO 00000e97: PUSH2 0x0eb3 00000e9a: JUMPI 00000e9b: PUSH1 0x40 00000e9d: MLOAD 00000e9e: PUSH4 0x326389f9 00000ea3: PUSH1 0xe1 00000ea5: SHL 00000ea6: DUP2 00000ea7: MSTORE 00000ea8: PUSH1 0x04 00000eaa: ADD 00000eab: PUSH1 0x40 00000ead: MLOAD 00000eae: DUP1 00000eaf: SWAP2 00000eb0: SUB 00000eb1: SWAP1 00000eb2: REVERT 00000eb3: JUMPDEST 00000eb4: PUSH1 0xe0 00000eb6: DUP4 00000eb7: ADD 00000eb8: MLOAD 00000eb9: ISZERO 00000eba: PUSH2 0x0ed5 00000ebd: JUMPI 00000ebe: PUSH1 0x40 00000ec0: MLOAD 00000ec1: PUSH3 0x0e5bdf 00000ec5: PUSH1 0xe4 00000ec7: SHL 00000ec8: DUP2 00000ec9: MSTORE 00000eca: PUSH1 0x04 00000ecc: ADD 00000ecd: PUSH1 0x40 00000ecf: MLOAD 00000ed0: DUP1 00000ed1: SWAP2 00000ed2: SUB 00000ed3: SWAP1 00000ed4: REVERT 00000ed5: JUMPDEST 00000ed6: PUSH32 0xf3b277728b3fee749481eb3e0b3b48980dbbab78658fc419025cb16eee346775 00000ef7: DUP4 00000ef8: PUSH2 0x0100 00000efb: ADD 00000efc: MLOAD 00000efd: EQ 00000efe: PUSH2 0x0f1a 00000f01: JUMPI 00000f02: PUSH1 0x40 00000f04: MLOAD 00000f05: PUSH4 0x2c9634af 00000f0a: PUSH1 0xe0 00000f0c: SHL 00000f0d: DUP2 00000f0e: MSTORE 00000f0f: PUSH1 0x04 00000f11: ADD 00000f12: PUSH1 0x40 00000f14: MLOAD 00000f15: DUP1 00000f16: SWAP2 00000f17: SUB 00000f18: SWAP1 00000f19: REVERT 00000f1a: JUMPDEST 00000f1b: PUSH32 0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9 00000f3c: DUP4 00000f3d: PUSH2 0x0160 00000f40: ADD 00000f41: MLOAD 00000f42: EQ 00000f43: ISZERO 00000f44: DUP1 00000f45: PUSH2 0x0f73 00000f48: JUMPI 00000f49: POP 00000f4a: PUSH32 0x5a28e9363bb942b639270062aa6bb295f434bcdfc42c97267bf003f272060dc9 00000f6b: DUP4 00000f6c: PUSH2 0x0140 00000f6f: ADD 00000f70: MLOAD 00000f71: EQ 00000f72: ISZERO 00000f73: JUMPDEST 00000f74: ISZERO 00000f75: PUSH2 0x0f91 00000f78: JUMPI 00000f79: PUSH1 0x40 00000f7b: MLOAD 00000f7c: PUSH4 0x97a23281 00000f81: PUSH1 0xe0 00000f83: SHL 00000f84: DUP2 00000f85: MSTORE 00000f86: PUSH1 0x04 00000f88: ADD 00000f89: PUSH1 0x40 00000f8b: MLOAD 00000f8c: DUP1 00000f8d: SWAP2 00000f8e: SUB 00000f8f: SWAP1 00000f90: REVERT 00000f91: JUMPDEST 00000f92: PUSH1 0x20 00000f94: DUP4 00000f95: ADD 00000f96: MLOAD 00000f97: PUSH1 0x40 00000f99: MLOAD 00000f9a: PUSH4 0x70a08231 00000f9f: PUSH1 0xe0 00000fa1: SHL 00000fa2: DUP2 00000fa3: MSTORE 00000fa4: ADDRESS 00000fa5: PUSH1 0x04 00000fa7: DUP3 00000fa8: ADD 00000fa9: MSTORE 00000faa: PUSH0 00000fab: SWAP2 00000fac: PUSH1 0x01 00000fae: PUSH1 0x01 00000fb0: PUSH1 0xa0 00000fb2: SHL 00000fb3: SUB 00000fb4: AND 00000fb5: SWAP1 00000fb6: PUSH4 0x70a08231 00000fbb: SWAP1 00000fbc: PUSH1 0x24 00000fbe: ADD 00000fbf: PUSH1 0x20 00000fc1: PUSH1 0x40 00000fc3: MLOAD 00000fc4: DUP1 00000fc5: DUP4 00000fc6: SUB 00000fc7: DUP2 00000fc8: DUP7 00000fc9: GAS 00000fca: STATICCALL 00000fcb: ISZERO 00000fcc: DUP1 00000fcd: ISZERO 00000fce: PUSH2 0x0fd9 00000fd1: JUMPI 00000fd2: RETURNDATASIZE 00000fd3: PUSH0 00000fd4: DUP1 00000fd5: RETURNDATACOPY 00000fd6: RETURNDATASIZE 00000fd7: PUSH0 00000fd8: REVERT 00000fd9: JUMPDEST 00000fda: POP 00000fdb: POP 00000fdc: POP 00000fdd: POP 00000fde: PUSH1 0x40 00000fe0: MLOAD 00000fe1: RETURNDATASIZE 00000fe2: PUSH1 0x1f 00000fe4: NOT 00000fe5: PUSH1 0x1f 00000fe7: DUP3 00000fe8: ADD 00000fe9: AND 00000fea: DUP3 00000feb: ADD 00000fec: DUP1 00000fed: PUSH1 0x40 00000fef: MSTORE 00000ff0: POP 00000ff1: DUP2 00000ff2: ADD 00000ff3: SWAP1 00000ff4: PUSH2 0x0ffd 00000ff7: SWAP2 00000ff8: SWAP1 00000ff9: PUSH2 0x3d33 00000ffc: JUMP 00000ffd: JUMPDEST 00000ffe: SWAP1 00000fff: POP 00001000: PUSH2 0x1011 00001003: DUP2 00001004: PUSH8 0x06f05b59d3b20000 0000100d: PUSH2 0x2d5c 00001010: JUMP 00001011: JUMPDEST 00001012: DUP5 00001013: PUSH1 0x80 00001015: ADD 00001016: MLOAD 00001017: GT 00001018: ISZERO 00001019: PUSH2 0x1035 0000101c: JUMPI 0000101d: PUSH1 0x40 0000101f: MLOAD 00001020: PUSH4 0x558fcd91 00001025: PUSH1 0xe1 00001027: SHL 00001028: DUP2 00001029: MSTORE 0000102a: PUSH1 0x04 0000102c: ADD 0000102d: PUSH1 0x40 0000102f: MLOAD 00001030: DUP1 00001031: SWAP2 00001032: SUB 00001033: SWAP1 00001034: REVERT 00001035: JUMPDEST 00001036: PUSH1 0x40 00001038: DUP1 00001039: DUP5 0000103a: ADD 0000103b: MLOAD 0000103c: DUP6 0000103d: MLOAD 0000103e: SWAP2 0000103f: MLOAD 00001040: PUSH4 0x70a08231 00001045: PUSH1 0xe0 00001047: SHL 00001048: DUP2 00001049: MSTORE 0000104a: ADDRESS 0000104b: PUSH1 0x04 0000104d: DUP3 0000104e: ADD 0000104f: MSTORE 00001050: PUSH0 00001051: SWAP3 00001052: PUSH2 0x10bb 00001055: SWAP3 00001056: DUP6 00001057: SWAP3 00001058: SWAP1 00001059: SWAP2 0000105a: PUSH1 0x01 0000105c: PUSH1 0x01 0000105e: PUSH1 0xa0 00001060: SHL 00001061: SUB 00001062: AND 00001063: SWAP1 00001064: PUSH4 0x70a08231 00001069: SWAP1 0000106a: PUSH1 0x24 0000106c: ADD 0000106d: PUSH1 0x20 0000106f: PUSH1 0x40 00001071: MLOAD 00001072: DUP1 00001073: DUP4 00001074: SUB 00001075: DUP2 00001076: DUP7 00001077: GAS 00001078: STATICCALL 00001079: ISZERO 0000107a: DUP1 0000107b: ISZERO 0000107c: PUSH2 0x1087 0000107f: JUMPI 00001080: RETURNDATASIZE 00001081: PUSH0 00001082: DUP1 00001083: RETURNDATACOPY 00001084: RETURNDATASIZE 00001085: PUSH0 00001086: REVERT 00001087: JUMPDEST 00001088: POP 00001089: POP 0000108a: POP 0000108b: POP 0000108c: PUSH1 0x40 0000108e: MLOAD 0000108f: RETURNDATASIZE 00001090: PUSH1 0x1f 00001092: NOT 00001093: PUSH1 0x1f 00001095: DUP3 00001096: ADD 00001097: AND 00001098: DUP3 00001099: ADD 0000109a: DUP1 0000109b: PUSH1 0x40 0000109d: MSTORE 0000109e: POP 0000109f: DUP2 000010a0: ADD 000010a1: SWAP1 000010a2: PUSH2 0x10ab 000010a5: SWAP2 000010a6: SWAP1 000010a7: PUSH2 0x3d33 000010aa: JUMP 000010ab: JUMPDEST 000010ac: DUP7 000010ad: PUSH1 0x40 000010af: ADD 000010b0: MLOAD 000010b1: DUP10 000010b2: PUSH1 0x80 000010b4: ADD 000010b5: MLOAD 000010b6: PUSH0 000010b7: PUSH2 0x2281 000010ba: JUMP 000010bb: JUMPDEST 000010bc: SWAP1 000010bd: POP 000010be: DUP5 000010bf: PUSH1 0x60 000010c1: ADD 000010c2: MLOAD 000010c3: DUP2 000010c4: LT 000010c5: ISZERO 000010c6: PUSH2 0x10e2 000010c9: JUMPI 000010ca: PUSH1 0x40 000010cc: MLOAD 000010cd: PUSH4 0xd6ac3395 000010d2: PUSH1 0xe0 000010d4: SHL 000010d5: DUP2 000010d6: MSTORE 000010d7: PUSH1 0x04 000010d9: ADD 000010da: PUSH1 0x40 000010dc: MLOAD 000010dd: DUP1 000010de: SWAP2 000010df: SUB 000010e0: SWAP1 000010e1: REVERT 000010e2: JUMPDEST 000010e3: POP 000010e4: POP 000010e5: POP 000010e6: POP 000010e7: POP 000010e8: JUMP 000010e9: JUMPDEST 000010ea: PUSH0 000010eb: PUSH0 000010ec: DUP1 000010ed: MLOAD 000010ee: PUSH1 0x20 000010f0: PUSH2 0x3f08 000010f3: DUP4 000010f4: CODECOPY 000010f5: DUP2 000010f6: MLOAD 000010f7: SWAP2 000010f8: MSTORE 000010f9: TLOAD 000010fa: ISZERO 000010fb: PUSH2 0x1117 000010fe: JUMPI 000010ff: PUSH1 0x40 00001101: MLOAD 00001102: PUSH4 0xd56a08b5 00001107: PUSH1 0xe0 00001109: SHL 0000110a: DUP2 0000110b: MSTORE 0000110c: PUSH1 0x04 0000110e: ADD 0000110f: PUSH1 0x40 00001111: MLOAD 00001112: DUP1 00001113: SWAP2 00001114: SUB 00001115: SWAP1 00001116: REVERT 00001117: JUMPDEST 00001118: POP 00001119: PUSH1 0x05 0000111b: SLOAD 0000111c: PUSH1 0x01 0000111e: PUSH1 0x01 00001120: PUSH1 0xa0 00001122: SHL 00001123: SUB 00001124: AND 00001125: SWAP1 00001126: JUMP 00001127: JUMPDEST 00001128: CALLER 00001129: PUSH1 0x01 0000112b: PUSH1 0x01 0000112d: PUSH1 0xa0 0000112f: SHL 00001130: SUB 00001131: AND 00001132: PUSH0 00001133: CALLDATALOAD 00001134: PUSH1 0x01 00001136: PUSH1 0x01 00001138: PUSH1 0xe0 0000113a: SHL 0000113b: SUB 0000113c: NOT 0000113d: AND 0000113e: PUSH1 0x01 00001140: PUSH1 0x01 00001142: PUSH1 0xe0 00001144: SHL 00001145: SUB 00001146: NOT 00001147: AND 00001148: PUSH0 00001149: CALLDATASIZE 0000114a: PUSH1 0x40 0000114c: MLOAD 0000114d: PUSH2 0x1157 00001150: SWAP3 00001151: SWAP2 00001152: SWAP1 00001153: PUSH2 0x3e6d 00001156: JUMP 00001157: JUMPDEST 00001158: PUSH1 0x40 0000115a: MLOAD 0000115b: DUP1 0000115c: SWAP2 0000115d: SUB 0000115e: SWAP1 0000115f: LOG2 00001160: PUSH0 00001161: DUP1 00001162: MLOAD 00001163: PUSH1 0x20 00001165: PUSH2 0x3f08 00001168: DUP4 00001169: CODECOPY 0000116a: DUP2 0000116b: MLOAD 0000116c: SWAP2 0000116d: MSTORE 0000116e: TLOAD 0000116f: ISZERO 00001170: PUSH2 0x118c 00001173: JUMPI 00001174: PUSH1 0x40 00001176: MLOAD 00001177: PUSH4 0xd56a08b5 0000117c: PUSH1 0xe0 0000117e: SHL 0000117f: DUP2 00001180: MSTORE 00001181: PUSH1 0x04 00001183: ADD 00001184: PUSH1 0x40 00001186: MLOAD 00001187: DUP1 00001188: SWAP2 00001189: SUB 0000118a: SWAP1 0000118b: REVERT 0000118c: JUMPDEST 0000118d: PUSH2 0x1196 00001190: PUSH1 0x01 00001192: PUSH2 0x2ddf 00001195: JUMP 00001196: JUMPDEST 00001197: PUSH1 0x05 00001199: SLOAD 0000119a: PUSH1 0x01 0000119c: PUSH1 0x01 0000119e: PUSH1 0xa0 000011a0: SHL 000011a1: SUB 000011a2: AND 000011a3: CALLER 000011a4: EQ 000011a5: PUSH2 0x11c1 000011a8: JUMPI 000011a9: PUSH1 0x40 000011ab: MLOAD 000011ac: PUSH4 0x4f0f5499 000011b1: PUSH1 0xe1 000011b3: SHL 000011b4: DUP2 000011b5: MSTORE 000011b6: PUSH1 0x04 000011b8: ADD 000011b9: PUSH1 0x40 000011bb: MLOAD 000011bc: DUP1 000011bd: SWAP2 000011be: SUB 000011bf: SWAP1 000011c0: REVERT 000011c1: JUMPDEST 000011c2: PUSH1 0x07 000011c4: SLOAD 000011c5: PUSH1 0xff 000011c7: AND 000011c8: ISZERO 000011c9: PUSH2 0x11e5 000011cc: JUMPI 000011cd: PUSH1 0x40 000011cf: MLOAD 000011d0: PUSH4 0x056f633d 000011d5: PUSH1 0xe2 000011d7: SHL 000011d8: DUP2 000011d9: MSTORE 000011da: PUSH1 0x04 000011dc: ADD 000011dd: PUSH1 0x40 000011df: MLOAD 000011e0: DUP1 000011e1: SWAP2 000011e2: SUB 000011e3: SWAP1 000011e4: REVERT 000011e5: JUMPDEST 000011e6: PUSH2 0x11fa 000011e9: PUSH3 0x0f4240 000011ed: PUSH8 0x0de0b6b3a7640000 000011f6: PUSH2 0x3e3b 000011f9: JUMP 000011fa: JUMPDEST 000011fb: DUP2 000011fc: LT 000011fd: ISZERO 000011fe: PUSH2 0x121a 00001201: JUMPI 00001202: PUSH1 0x40 00001204: MLOAD 00001205: PUSH4 0x3b46575d 0000120a: PUSH1 0xe0 0000120c: SHL 0000120d: DUP2 0000120e: MSTORE 0000120f: PUSH1 0x04 00001211: ADD 00001212: PUSH1 0x40 00001214: MLOAD 00001215: DUP1 00001216: SWAP2 00001217: SUB 00001218: SWAP1 00001219: REVERT 0000121a: JUMPDEST 0000121b: PUSH2 0x122f 0000121e: PUSH3 0x0f4240 00001222: PUSH8 0x0de0b6b3a7640000 0000122b: PUSH2 0x3e3b 0000122e: JUMP 0000122f: JUMPDEST 00001230: PUSH2 0x1241 00001233: SWAP1 00001234: PUSH8 0x0de0b6b3a7640000 0000123d: PUSH2 0x3e9b 00001240: JUMP 00001241: JUMPDEST 00001242: DUP2 00001243: GT 00001244: ISZERO 00001245: PUSH2 0x1261 00001248: JUMPI 00001249: PUSH1 0x40 0000124b: MLOAD 0000124c: PUSH4 0x0f71fbbf 00001251: PUSH1 0xe1 00001253: SHL 00001254: DUP2 00001255: MSTORE 00001256: PUSH1 0x04 00001258: ADD 00001259: PUSH1 0x40 0000125b: MLOAD 0000125c: DUP1 0000125d: SWAP2 0000125e: SUB 0000125f: SWAP1 00001260: REVERT 00001261: JUMPDEST 00001262: PUSH1 0x06 00001264: DUP2 00001265: SWAP1 00001266: SSTORE 00001267: PUSH2 0x126f 0000126a: PUSH0 0000126b: PUSH2 0x2ddf 0000126e: JUMP 0000126f: JUMPDEST 00001270: POP 00001271: JUMP 00001272: JUMPDEST 00001273: CALLER 00001274: PUSH1 0x01 00001276: PUSH1 0x01 00001278: PUSH1 0xa0 0000127a: SHL 0000127b: SUB 0000127c: AND 0000127d: PUSH0 0000127e: CALLDATALOAD 0000127f: PUSH1 0x01 00001281: PUSH1 0x01 00001283: PUSH1 0xe0 00001285: SHL 00001286: SUB 00001287: NOT 00001288: AND 00001289: PUSH1 0x01 0000128b: PUSH1 0x01 0000128d: PUSH1 0xe0 0000128f: SHL 00001290: SUB 00001291: NOT 00001292: AND 00001293: PUSH0 00001294: CALLDATASIZE 00001295: PUSH1 0x40 00001297: MLOAD 00001298: PUSH2 0x12a2 0000129b: SWAP3 0000129c: SWAP2 0000129d: SWAP1 0000129e: PUSH2 0x3e6d 000012a1: JUMP 000012a2: JUMPDEST 000012a3: PUSH1 0x40 000012a5: MLOAD 000012a6: DUP1 000012a7: SWAP2 000012a8: SUB 000012a9: SWAP1 000012aa: LOG2 000012ab: PUSH0 000012ac: DUP1 000012ad: MLOAD 000012ae: PUSH1 0x20 000012b0: PUSH2 0x3f08 000012b3: DUP4 000012b4: CODECOPY 000012b5: DUP2 000012b6: MLOAD 000012b7: SWAP2 000012b8: MSTORE 000012b9: TLOAD 000012ba: ISZERO 000012bb: PUSH2 0x12d7 000012be: JUMPI 000012bf: PUSH1 0x40 000012c1: MLOAD 000012c2: PUSH4 0xd56a08b5 000012c7: PUSH1 0xe0 000012c9: SHL 000012ca: DUP2 000012cb: MSTORE 000012cc: PUSH1 0x04 000012ce: ADD 000012cf: PUSH1 0x40 000012d1: MLOAD 000012d2: DUP1 000012d3: SWAP2 000012d4: SUB 000012d5: SWAP1 000012d6: REVERT 000012d7: JUMPDEST 000012d8: PUSH2 0x12e1 000012db: PUSH1 0x01 000012dd: PUSH2 0x2ddf 000012e0: JUMP 000012e1: JUMPDEST 000012e2: PUSH1 0x05 000012e4: SLOAD 000012e5: PUSH1 0x01 000012e7: PUSH1 0x01 000012e9: PUSH1 0xa0 000012eb: SHL 000012ec: SUB 000012ed: AND 000012ee: CALLER 000012ef: EQ 000012f0: PUSH2 0x130c 000012f3: JUMPI 000012f4: PUSH1 0x40 000012f6: MLOAD 000012f7: PUSH4 0x4f0f5499 000012fc: PUSH1 0xe1 000012fe: SHL 000012ff: DUP2 00001300: MSTORE 00001301: PUSH1 0x04 00001303: ADD 00001304: PUSH1 0x40 00001306: MLOAD 00001307: DUP1 00001308: SWAP2 00001309: SUB 0000130a: SWAP1 0000130b: REVERT 0000130c: JUMPDEST 0000130d: PUSH1 0x07 0000130f: SLOAD 00001310: PUSH1 0xff 00001312: AND 00001313: ISZERO 00001314: PUSH2 0x1330 00001317: JUMPI 00001318: PUSH1 0x40 0000131a: MLOAD 0000131b: PUSH4 0x056f633d 00001320: PUSH1 0xe2 00001322: SHL 00001323: DUP2 00001324: MSTORE 00001325: PUSH1 0x04 00001327: ADD 00001328: PUSH1 0x40 0000132a: MLOAD 0000132b: DUP1 0000132c: SWAP2 0000132d: SUB 0000132e: SWAP1 0000132f: REVERT 00001330: JUMPDEST 00001331: PUSH1 0x08 00001333: SLOAD 00001334: PUSH1 0x02 00001336: GT 00001337: ISZERO 00001338: PUSH2 0x1354 0000133b: JUMPI 0000133c: PUSH1 0x40 0000133e: MLOAD 0000133f: PUSH4 0xaf785ec5 00001344: PUSH1 0xe0 00001346: SHL 00001347: DUP2 00001348: MSTORE 00001349: PUSH1 0x04 0000134b: ADD 0000134c: PUSH1 0x40 0000134e: MLOAD 0000134f: DUP1 00001350: SWAP2 00001351: SUB 00001352: SWAP1 00001353: REVERT 00001354: JUMPDEST 00001355: PUSH1 0x07 00001357: DUP1 00001358: SLOAD 00001359: PUSH1 0xff 0000135b: NOT 0000135c: AND 0000135d: PUSH1 0x01 0000135f: OR 00001360: SWAP1 00001361: SSTORE 00001362: PUSH2 0x137c 00001365: PUSH2 0x1377 00001368: PUSH8 0x0de0b6b3a7640000 00001371: PUSH1 0x64 00001373: PUSH2 0x3d1c 00001376: JUMP 00001377: JUMPDEST 00001378: PUSH2 0x2df2 0000137b: JUMP 0000137c: JUMPDEST 0000137d: PUSH2 0x1398 00001380: CALLER 00001381: PUSH2 0x1393 00001384: PUSH8 0x0de0b6b3a7640000 0000138d: PUSH1 0x64 0000138f: PUSH2 0x3d1c 00001392: JUMP 00001393: JUMPDEST 00001394: PUSH2 0x2dfc 00001397: JUMP 00001398: JUMPDEST 00001399: PUSH2 0x13a0 0000139c: PUSH2 0x2e0a 0000139f: JUMP 000013a0: JUMPDEST 000013a1: PUSH2 0x13a9 000013a4: PUSH0 000013a5: PUSH2 0x2ddf 000013a8: JUMP 000013a9: JUMPDEST 000013aa: JUMP 000013ab: JUMPDEST 000013ac: CALLER 000013ad: PUSH1 0x01 000013af: PUSH1 0x01 000013b1: PUSH1 0xa0 000013b3: SHL 000013b4: SUB 000013b5: AND 000013b6: PUSH0 000013b7: CALLDATALOAD 000013b8: PUSH1 0x01 000013ba: PUSH1 0x01 000013bc: PUSH1 0xe0 000013be: SHL 000013bf: SUB 000013c0: NOT 000013c1: AND 000013c2: PUSH1 0x01 000013c4: PUSH1 0x01 000013c6: PUSH1 0xe0 000013c8: SHL 000013c9: SUB 000013ca: NOT 000013cb: AND 000013cc: PUSH0 000013cd: CALLDATASIZE 000013ce: PUSH1 0x40 000013d0: MLOAD 000013d1: PUSH2 0x13db 000013d4: SWAP3 000013d5: SWAP2 000013d6: SWAP1 000013d7: PUSH2 0x3e6d 000013da: JUMP 000013db: JUMPDEST 000013dc: PUSH1 0x40 000013de: MLOAD 000013df: DUP1 000013e0: SWAP2 000013e1: SUB 000013e2: SWAP1 000013e3: LOG2 000013e4: PUSH0 000013e5: DUP1 000013e6: MLOAD 000013e7: PUSH1 0x20 000013e9: PUSH2 0x3f08 000013ec: DUP4 000013ed: CODECOPY 000013ee: DUP2 000013ef: MLOAD 000013f0: SWAP2 000013f1: MSTORE 000013f2: TLOAD 000013f3: ISZERO 000013f4: PUSH2 0x1410 000013f7: JUMPI 000013f8: PUSH1 0x40 000013fa: MLOAD 000013fb: PUSH4 0xd56a08b5 00001400: PUSH1 0xe0 00001402: SHL 00001403: DUP2 00001404: MSTORE 00001405: PUSH1 0x04 00001407: ADD 00001408: PUSH1 0x40 0000140a: MLOAD 0000140b: DUP1 0000140c: SWAP2 0000140d: SUB 0000140e: SWAP1 0000140f: REVERT 00001410: JUMPDEST 00001411: PUSH2 0x141a 00001414: PUSH1 0x01 00001416: PUSH2 0x2ddf 00001419: JUMP 0000141a: JUMPDEST 0000141b: PUSH1 0x07 0000141d: SLOAD 0000141e: PUSH1 0xff 00001420: AND 00001421: PUSH2 0x143d 00001424: JUMPI 00001425: PUSH1 0x40 00001427: MLOAD 00001428: PUSH4 0x2e41ba2d 0000142d: PUSH1 0xe0 0000142f: SHL 00001430: DUP2 00001431: MSTORE 00001432: PUSH1 0x04 00001434: ADD 00001435: PUSH1 0x40 00001437: MLOAD 00001438: DUP1 00001439: SWAP2 0000143a: SUB 0000143b: SWAP1 0000143c: REVERT 0000143d: JUMPDEST 0000143e: PUSH0 0000143f: PUSH2 0x1447 00001442: PUSH1 0x02 00001444: SLOAD 00001445: SWAP1 00001446: JUMP 00001447: JUMPDEST 00001448: SWAP1 00001449: POP 0000144a: PUSH0 0000144b: PUSH2 0x1454 0000144e: DUP6 0000144f: DUP4 00001450: PUSH2 0x2f0e 00001453: JUMP 00001454: JUMPDEST 00001455: SWAP1 00001456: POP 00001457: DUP1 00001458: PUSH0 00001459: SUB 0000145a: PUSH2 0x1476 0000145d: JUMPI 0000145e: PUSH1 0x40 00001460: MLOAD 00001461: PUSH4 0x0c499f47 00001466: PUSH1 0xe0 00001468: SHL 00001469: DUP2 0000146a: MSTORE 0000146b: PUSH1 0x04 0000146d: ADD 0000146e: PUSH1 0x40 00001470: MLOAD 00001471: DUP1 00001472: SWAP2 00001473: SUB 00001474: SWAP1 00001475: REVERT 00001476: JUMPDEST 00001477: PUSH1 0x08 00001479: SLOAD 0000147a: PUSH0 0000147b: JUMPDEST 0000147c: DUP2 0000147d: DUP2 0000147e: LT 0000147f: ISZERO 00001480: PUSH2 0x15c9 00001483: JUMPI 00001484: PUSH0 00001485: PUSH1 0x08 00001487: DUP3 00001488: DUP2 00001489: SLOAD 0000148a: DUP2 0000148b: LT 0000148c: PUSH2 0x1497 0000148f: JUMPI 00001490: PUSH2 0x1497 00001493: PUSH2 0x3eae 00001496: JUMP 00001497: JUMPDEST 00001498: PUSH0 00001499: SWAP2 0000149a: DUP3 0000149b: MSTORE 0000149c: PUSH1 0x20 0000149e: DUP3 0000149f: KECCAK256 000014a0: ADD 000014a1: SLOAD 000014a2: PUSH1 0x40 000014a4: MLOAD 000014a5: PUSH4 0x70a08231 000014aa: PUSH1 0xe0 000014ac: SHL 000014ad: DUP2 000014ae: MSTORE 000014af: ADDRESS 000014b0: PUSH1 0x04 000014b2: DUP3 000014b3: ADD 000014b4: MSTORE 000014b5: PUSH1 0x01 000014b7: PUSH1 0x01 000014b9: PUSH1 0xa0 000014bb: SHL 000014bc: SUB 000014bd: SWAP1 000014be: SWAP2 000014bf: AND 000014c0: SWAP3 000014c1: POP 000014c2: DUP3 000014c3: SWAP1 000014c4: PUSH4 0x70a08231 000014c9: SWAP1 000014ca: PUSH1 0x24 000014cc: ADD 000014cd: PUSH1 0x20 000014cf: PUSH1 0x40 000014d1: MLOAD 000014d2: DUP1 000014d3: DUP4 000014d4: SUB 000014d5: DUP2 000014d6: DUP7 000014d7: GAS 000014d8: STATICCALL 000014d9: ISZERO 000014da: DUP1 000014db: ISZERO 000014dc: PUSH2 0x14e7 000014df: JUMPI 000014e0: RETURNDATASIZE 000014e1: PUSH0 000014e2: DUP1 000014e3: RETURNDATACOPY 000014e4: RETURNDATASIZE 000014e5: PUSH0 000014e6: REVERT 000014e7: JUMPDEST 000014e8: POP 000014e9: POP 000014ea: POP 000014eb: POP 000014ec: PUSH1 0x40 000014ee: MLOAD 000014ef: RETURNDATASIZE 000014f0: PUSH1 0x1f 000014f2: NOT 000014f3: PUSH1 0x1f 000014f5: DUP3 000014f6: ADD 000014f7: AND 000014f8: DUP3 000014f9: ADD 000014fa: DUP1 000014fb: PUSH1 0x40 000014fd: MSTORE 000014fe: POP 000014ff: DUP2 00001500: ADD 00001501: SWAP1 00001502: PUSH2 0x150b 00001505: SWAP2 00001506: SWAP1 00001507: PUSH2 0x3d33 0000150a: JUMP 0000150b: JUMPDEST 0000150c: SWAP1 0000150d: POP 0000150e: PUSH0 0000150f: PUSH2 0x1518 00001512: DUP7 00001513: DUP4 00001514: PUSH2 0x2d5c 00001517: JUMP 00001518: JUMPDEST 00001519: SWAP1 0000151a: POP 0000151b: DUP1 0000151c: PUSH0 0000151d: SUB 0000151e: PUSH2 0x153a 00001521: JUMPI 00001522: PUSH1 0x40 00001524: MLOAD 00001525: PUSH4 0x5b00df69 0000152a: PUSH1 0xe1 0000152c: SHL 0000152d: DUP2 0000152e: MSTORE 0000152f: PUSH1 0x04 00001531: ADD 00001532: PUSH1 0x40 00001534: MLOAD 00001535: DUP1 00001536: SWAP2 00001537: SUB 00001538: SWAP1 00001539: REVERT 0000153a: JUMPDEST 0000153b: DUP9 0000153c: DUP9 0000153d: DUP6 0000153e: DUP2 0000153f: DUP2 00001540: LT 00001541: PUSH2 0x154c 00001544: JUMPI 00001545: PUSH2 0x154c 00001548: PUSH2 0x3eae 0000154b: JUMP 0000154c: JUMPDEST 0000154d: SWAP1 0000154e: POP 0000154f: PUSH1 0x20 00001551: MUL 00001552: ADD 00001553: CALLDATALOAD 00001554: DUP2 00001555: GT 00001556: ISZERO 00001557: PUSH2 0x1573 0000155a: JUMPI 0000155b: PUSH1 0x40 0000155d: MLOAD 0000155e: PUSH4 0x0451d9ed 00001563: PUSH1 0xe3 00001565: SHL 00001566: DUP2 00001567: MSTORE 00001568: PUSH1 0x04 0000156a: ADD 0000156b: PUSH1 0x40 0000156d: MLOAD 0000156e: DUP1 0000156f: SWAP2 00001570: SUB 00001571: SWAP1 00001572: REVERT 00001573: JUMPDEST 00001574: PUSH1 0x40 00001576: MLOAD 00001577: DUP2 00001578: DUP2 00001579: MSTORE 0000157a: PUSH1 0x01 0000157c: PUSH1 0x01 0000157e: PUSH1 0xa0 00001580: SHL 00001581: SUB 00001582: DUP5 00001583: AND 00001584: SWAP1 00001585: CALLER 00001586: SWAP1 00001587: PUSH32 0x63982df10efd8dfaaaa0fcc7f50b2d93b7cba26ccc48adee2873220d485dc39a 000015a8: SWAP1 000015a9: PUSH1 0x20 000015ab: ADD 000015ac: PUSH1 0x40 000015ae: MLOAD 000015af: DUP1 000015b0: SWAP2 000015b1: SUB 000015b2: SWAP1 000015b3: LOG3 000015b4: PUSH2 0x15be 000015b7: DUP4 000015b8: CALLER 000015b9: DUP4 000015ba: PUSH2 0x2fb6 000015bd: JUMP 000015be: JUMPDEST 000015bf: POP 000015c0: POP 000015c1: POP 000015c2: PUSH1 0x01 000015c4: ADD 000015c5: PUSH2 0x147b 000015c8: JUMP 000015c9: JUMPDEST 000015ca: POP 000015cb: PUSH2 0x15d3 000015ce: DUP7 000015cf: PUSH2 0x2df2 000015d2: JUMP 000015d3: JUMPDEST 000015d4: PUSH2 0x15dd 000015d7: CALLER 000015d8: DUP8 000015d9: PUSH2 0x2dfc 000015dc: JUMP 000015dd: JUMPDEST 000015de: POP 000015df: POP 000015e0: POP 000015e1: PUSH2 0x15eb 000015e4: PUSH0 000015e5: DUP1 000015e6: SHL 000015e7: PUSH2 0x2ddf 000015ea: JUMP 000015eb: JUMPDEST 000015ec: POP 000015ed: POP 000015ee: POP 000015ef: JUMP 000015f0: JUMPDEST 000015f1: CALLER 000015f2: PUSH0 000015f3: SWAP1 000015f4: DUP2 000015f5: MSTORE 000015f6: PUSH1 0x01 000015f8: PUSH1 0x20 000015fa: SWAP1 000015fb: DUP2 000015fc: MSTORE 000015fd: PUSH1 0x40 000015ff: DUP1 00001600: DUP4 00001601: KECCAK256 00001602: PUSH1 0x01 00001604: PUSH1 0x01 00001606: PUSH1 0xa0 00001608: SHL 00001609: SUB 0000160a: DUP7 0000160b: AND 0000160c: DUP5 0000160d: MSTORE 0000160e: SWAP1 0000160f: SWAP2 00001610: MSTORE 00001611: DUP2 00001612: KECCAK256 00001613: SLOAD 00001614: DUP1 00001615: DUP4 00001616: GT 00001617: ISZERO 00001618: PUSH2 0x162b 0000161b: JUMPI 0000161c: PUSH2 0x1626 0000161f: CALLER 00001620: DUP6 00001621: PUSH0 00001622: PUSH2 0x2c72 00001625: JUMP 00001626: JUMPDEST 00001627: PUSH2 0x08e3 0000162a: JUMP 0000162b: JUMPDEST 0000162c: PUSH2 0x08e3 0000162f: CALLER 00001630: DUP6 00001631: PUSH2 0x163a 00001634: DUP7 00001635: DUP6 00001636: PUSH2 0x3e9b 00001639: JUMP 0000163a: JUMPDEST 0000163b: PUSH2 0x2c72 0000163e: JUMP 0000163f: JUMPDEST 00001640: PUSH2 0x0902 00001643: PUSH3 0x0f4240 00001647: PUSH8 0x0de0b6b3a7640000 00001650: PUSH2 0x3e3b 00001653: JUMP 00001654: JUMPDEST 00001655: PUSH1 0x40 00001657: MLOAD 00001658: PUSH0 00001659: SWAP1 0000165a: DUP2 0000165b: SWAP1 0000165c: CALLER 0000165d: SWAP1 0000165e: PUSH1 0x01 00001660: PUSH1 0x01 00001662: PUSH1 0xe0 00001664: SHL 00001665: SUB 00001666: NOT 00001667: DUP4 00001668: CALLDATALOAD 00001669: AND 0000166a: SWAP1 0000166b: PUSH2 0x1677 0000166e: SWAP1 0000166f: DUP5 00001670: SWAP1 00001671: CALLDATASIZE 00001672: SWAP1 00001673: PUSH2 0x3e6d 00001676: JUMP 00001677: JUMPDEST 00001678: PUSH1 0x40 0000167a: MLOAD 0000167b: DUP1 0000167c: SWAP2 0000167d: SUB 0000167e: SWAP1 0000167f: LOG2 00001680: PUSH0 00001681: DUP1 00001682: MLOAD 00001683: PUSH1 0x20 00001685: PUSH2 0x3f08 00001688: DUP4 00001689: CODECOPY 0000168a: DUP2 0000168b: MLOAD 0000168c: SWAP2 0000168d: MSTORE 0000168e: TLOAD 0000168f: ISZERO 00001690: PUSH2 0x16ac 00001693: JUMPI 00001694: PUSH1 0x40 00001696: MLOAD 00001697: PUSH4 0xd56a08b5 0000169c: PUSH1 0xe0 0000169e: SHL 0000169f: DUP2 000016a0: MSTORE 000016a1: PUSH1 0x04 000016a3: ADD 000016a4: PUSH1 0x40 000016a6: MLOAD 000016a7: DUP1 000016a8: SWAP2 000016a9: SUB 000016aa: SWAP1 000016ab: REVERT 000016ac: JUMPDEST 000016ad: PUSH2 0x16b6 000016b0: PUSH1 0x01 000016b2: PUSH2 0x2ddf 000016b5: JUMP 000016b6: JUMPDEST 000016b7: PUSH1 0x07 000016b9: SLOAD 000016ba: PUSH1 0xff 000016bc: AND 000016bd: PUSH2 0x16d9 000016c0: JUMPI 000016c1: PUSH1 0x40 000016c3: MLOAD 000016c4: PUSH4 0x2e41ba2d 000016c9: PUSH1 0xe0 000016cb: SHL 000016cc: DUP2 000016cd: MSTORE 000016ce: PUSH1 0x04 000016d0: ADD 000016d1: PUSH1 0x40 000016d3: MLOAD 000016d4: DUP1 000016d5: SWAP2 000016d6: SUB 000016d7: SWAP1 000016d8: REVERT 000016d9: JUMPDEST 000016da: PUSH1 0x01 000016dc: PUSH1 0x01 000016de: PUSH1 0xa0 000016e0: SHL 000016e1: SUB 000016e2: DUP8 000016e3: AND 000016e4: PUSH0 000016e5: SWAP1 000016e6: DUP2 000016e7: MSTORE 000016e8: PUSH1 0x09 000016ea: PUSH1 0x20 000016ec: MSTORE 000016ed: PUSH1 0x40 000016ef: SWAP1 000016f0: KECCAK256 000016f1: SLOAD 000016f2: PUSH1 0xff 000016f4: AND 000016f5: PUSH2 0x1711 000016f8: JUMPI 000016f9: PUSH1 0x40 000016fb: MLOAD 000016fc: PUSH4 0x4b16fc2d 00001701: PUSH1 0xe1 00001703: SHL 00001704: DUP2 00001705: MSTORE 00001706: PUSH1 0x04 00001708: ADD 00001709: PUSH1 0x40 0000170b: MLOAD 0000170c: DUP1 0000170d: SWAP2 0000170e: SUB 0000170f: SWAP1 00001710: REVERT 00001711: JUMPDEST 00001712: PUSH1 0x01 00001714: PUSH1 0x01 00001716: PUSH1 0xa0 00001718: SHL 00001719: SUB 0000171a: DUP6 0000171b: AND 0000171c: PUSH0 0000171d: SWAP1 0000171e: DUP2 0000171f: MSTORE 00001720: PUSH1 0x09 00001722: PUSH1 0x20 00001724: MSTORE 00001725: PUSH1 0x40 00001727: SWAP1 00001728: KECCAK256 00001729: SLOAD 0000172a: PUSH1 0xff 0000172c: AND 0000172d: PUSH2 0x1749 00001730: JUMPI 00001731: PUSH1 0x40 00001733: MLOAD 00001734: PUSH4 0x4b16fc2d 00001739: PUSH1 0xe1 0000173b: SHL 0000173c: DUP2 0000173d: MSTORE 0000173e: PUSH1 0x04 00001740: ADD 00001741: PUSH1 0x40 00001743: MLOAD 00001744: DUP1 00001745: SWAP2 00001746: SUB 00001747: SWAP1 00001748: REVERT 00001749: JUMPDEST 0000174a: PUSH1 0x01 0000174c: PUSH1 0x01 0000174e: PUSH1 0xa0 00001750: SHL 00001751: SUB 00001752: DUP8 00001753: DUP2 00001754: AND 00001755: PUSH0 00001756: DUP2 00001757: DUP2 00001758: MSTORE 00001759: PUSH1 0x09 0000175b: PUSH1 0x20 0000175d: MSTORE 0000175e: PUSH1 0x40 00001760: DUP1 00001761: DUP3 00001762: KECCAK256 00001763: SWAP4 00001764: DUP10 00001765: AND 00001766: DUP3 00001767: MSTORE 00001768: DUP1 00001769: DUP3 0000176a: KECCAK256 0000176b: SWAP1 0000176c: MLOAD 0000176d: PUSH4 0x70a08231 00001772: PUSH1 0xe0 00001774: SHL 00001775: DUP2 00001776: MSTORE 00001777: ADDRESS 00001778: PUSH1 0x04 0000177a: DUP3 0000177b: ADD 0000177c: MSTORE 0000177d: SWAP1 0000177e: SWAP3 0000177f: SWAP1 00001780: PUSH4 0x70a08231 00001785: SWAP1 00001786: PUSH1 0x24 00001788: ADD 00001789: PUSH1 0x20 0000178b: PUSH1 0x40 0000178d: MLOAD 0000178e: DUP1 0000178f: DUP4 00001790: SUB 00001791: DUP2 00001792: DUP7 00001793: GAS 00001794: STATICCALL 00001795: ISZERO 00001796: DUP1 00001797: ISZERO 00001798: PUSH2 0x17a3 0000179b: JUMPI 0000179c: RETURNDATASIZE 0000179d: PUSH0 0000179e: DUP1 0000179f: RETURNDATACOPY 000017a0: RETURNDATASIZE 000017a1: PUSH0 000017a2: REVERT 000017a3: JUMPDEST 000017a4: POP 000017a5: POP 000017a6: POP 000017a7: POP 000017a8: PUSH1 0x40 000017aa: MLOAD 000017ab: RETURNDATASIZE 000017ac: PUSH1 0x1f 000017ae: NOT 000017af: PUSH1 0x1f 000017b1: DUP3 000017b2: ADD 000017b3: AND 000017b4: DUP3 000017b5: ADD 000017b6: DUP1 000017b7: PUSH1 0x40 000017b9: MSTORE 000017ba: POP 000017bb: DUP2 000017bc: ADD 000017bd: SWAP1 000017be: PUSH2 0x17c7 000017c1: SWAP2 000017c2: SWAP1 000017c3: PUSH2 0x3d33 000017c6: JUMP 000017c7: JUMPDEST 000017c8: PUSH1 0x40 000017ca: MLOAD 000017cb: PUSH4 0x70a08231 000017d0: PUSH1 0xe0 000017d2: SHL 000017d3: DUP2 000017d4: MSTORE 000017d5: ADDRESS 000017d6: PUSH1 0x04 000017d8: DUP3 000017d9: ADD 000017da: MSTORE 000017db: SWAP1 000017dc: SWAP2 000017dd: POP 000017de: PUSH0 000017df: SWAP1 000017e0: PUSH1 0x01 000017e2: PUSH1 0x01 000017e4: PUSH1 0xa0 000017e6: SHL 000017e7: SUB 000017e8: DUP11 000017e9: AND 000017ea: SWAP1 000017eb: PUSH4 0x70a08231 000017f0: SWAP1 000017f1: PUSH1 0x24 000017f3: ADD 000017f4: PUSH1 0x20 000017f6: PUSH1 0x40 000017f8: MLOAD 000017f9: DUP1 000017fa: DUP4 000017fb: SUB 000017fc: DUP2 000017fd: DUP7 000017fe: GAS 000017ff: STATICCALL 00001800: ISZERO 00001801: DUP1 00001802: ISZERO 00001803: PUSH2 0x180e 00001806: JUMPI 00001807: RETURNDATASIZE 00001808: PUSH0 00001809: DUP1 0000180a: RETURNDATACOPY 0000180b: RETURNDATASIZE 0000180c: PUSH0 0000180d: REVERT 0000180e: JUMPDEST 0000180f: POP 00001810: POP 00001811: POP 00001812: POP 00001813: PUSH1 0x40 00001815: MLOAD 00001816: RETURNDATASIZE 00001817: PUSH1 0x1f 00001819: NOT 0000181a: PUSH1 0x1f 0000181c: DUP3 0000181d: ADD 0000181e: AND 0000181f: DUP3 00001820: ADD 00001821: DUP1 00001822: PUSH1 0x40 00001824: MSTORE 00001825: POP 00001826: DUP2 00001827: ADD 00001828: SWAP1 00001829: PUSH2 0x1832 0000182c: SWAP2 0000182d: SWAP1 0000182e: PUSH2 0x3d33 00001831: JUMP 00001832: JUMPDEST 00001833: SWAP1 00001834: POP 00001835: PUSH2 0x185b 00001838: DUP2 00001839: PUSH2 0x184b 0000183c: PUSH1 0x03 0000183e: PUSH8 0x0de0b6b3a7640000 00001847: PUSH2 0x3e3b 0000184a: JUMP 0000184b: JUMPDEST 0000184c: PUSH2 0x1856 0000184f: SWAP1 00001850: PUSH1 0x01 00001852: PUSH2 0x3e5a 00001855: JUMP 00001856: JUMPDEST 00001857: PUSH2 0x2d5c 0000185a: JUMP 0000185b: JUMPDEST 0000185c: DUP9 0000185d: GT 0000185e: ISZERO 0000185f: PUSH2 0x187b 00001862: JUMPI 00001863: PUSH1 0x40 00001865: MLOAD 00001866: PUSH4 0xdad25d85 0000186b: PUSH1 0xe0 0000186d: SHL 0000186e: DUP2 0000186f: MSTORE 00001870: PUSH1 0x04 00001872: ADD 00001873: PUSH1 0x40 00001875: MLOAD 00001876: DUP1 00001877: SWAP2 00001878: SUB 00001879: SWAP1 0000187a: REVERT 0000187b: JUMPDEST 0000187c: PUSH0 0000187d: PUSH2 0x1893 00001880: DUP4 00001881: DUP7 00001882: PUSH1 0x02 00001884: ADD 00001885: SLOAD 00001886: DUP5 00001887: DUP8 00001888: PUSH1 0x02 0000188a: ADD 0000188b: SLOAD 0000188c: PUSH1 0x06 0000188e: SLOAD 0000188f: PUSH2 0x1f88 00001892: JUMP 00001893: JUMPDEST 00001894: SWAP1 00001895: POP 00001896: DUP8 00001897: DUP2 00001898: GT 00001899: ISZERO 0000189a: PUSH2 0x18b6 0000189d: JUMPI 0000189e: PUSH1 0x40 000018a0: MLOAD 000018a1: PUSH4 0x823a9c37 000018a6: PUSH1 0xe0 000018a8: SHL 000018a9: DUP2 000018aa: MSTORE 000018ab: PUSH1 0x04 000018ad: ADD 000018ae: PUSH1 0x40 000018b0: MLOAD 000018b1: DUP1 000018b2: SWAP2 000018b3: SUB 000018b4: SWAP1 000018b5: REVERT 000018b6: JUMPDEST 000018b7: PUSH2 0x18ce 000018ba: DUP4 000018bb: DUP7 000018bc: PUSH1 0x02 000018be: ADD 000018bf: SLOAD 000018c0: DUP5 000018c1: DUP8 000018c2: PUSH1 0x02 000018c4: ADD 000018c5: SLOAD 000018c6: DUP14 000018c7: PUSH1 0x06 000018c9: SLOAD 000018ca: PUSH2 0x2bf3 000018cd: JUMP 000018ce: JUMPDEST 000018cf: SWAP7 000018d0: POP 000018d1: DUP11 000018d2: DUP8 000018d3: GT 000018d4: ISZERO 000018d5: PUSH2 0x18f1 000018d8: JUMPI 000018d9: PUSH1 0x40 000018db: MLOAD 000018dc: PUSH4 0x0451d9ed 000018e1: PUSH1 0xe3 000018e3: SHL 000018e4: DUP2 000018e5: MSTORE 000018e6: PUSH1 0x04 000018e8: ADD 000018e9: PUSH1 0x40 000018eb: MLOAD 000018ec: DUP1 000018ed: SWAP2 000018ee: SUB 000018ef: SWAP1 000018f0: REVERT 000018f1: JUMPDEST 000018f2: PUSH2 0x18fb 000018f5: DUP4 000018f6: DUP9 000018f7: PUSH2 0x2fcb 000018fa: JUMP 000018fb: JUMPDEST 000018fc: SWAP3 000018fd: POP 000018fe: PUSH2 0x1907 00001901: DUP3 00001902: DUP11 00001903: PUSH2 0x2ff0 00001906: JUMP 00001907: JUMPDEST 00001908: SWAP2 00001909: POP 0000190a: PUSH2 0x1920 0000190d: DUP4 0000190e: DUP7 0000190f: PUSH1 0x02 00001911: ADD 00001912: SLOAD 00001913: DUP5 00001914: DUP8 00001915: PUSH1 0x02 00001917: ADD 00001918: SLOAD 00001919: PUSH1 0x06 0000191b: SLOAD 0000191c: PUSH2 0x1f88 0000191f: JUMP 00001920: JUMPDEST 00001921: SWAP6 00001922: POP 00001923: DUP1 00001924: DUP7 00001925: LT 00001926: ISZERO 00001927: PUSH2 0x1943 0000192a: JUMPI 0000192b: PUSH1 0x40 0000192d: MLOAD 0000192e: PUSH4 0x62123023 00001933: PUSH1 0xe0 00001935: SHL 00001936: DUP2 00001937: MSTORE 00001938: PUSH1 0x04 0000193a: ADD 0000193b: PUSH1 0x40 0000193d: MLOAD 0000193e: DUP1 0000193f: SWAP2 00001940: SUB 00001941: SWAP1 00001942: REVERT 00001943: JUMPDEST 00001944: DUP8 00001945: DUP7 00001946: GT 00001947: ISZERO 00001948: PUSH2 0x1964 0000194b: JUMPI 0000194c: PUSH1 0x40 0000194e: MLOAD 0000194f: PUSH4 0x823a9c37 00001954: PUSH1 0xe0 00001956: SHL 00001957: DUP2 00001958: MSTORE 00001959: PUSH1 0x04 0000195b: ADD 0000195c: PUSH1 0x40 0000195e: MLOAD 0000195f: DUP1 00001960: SWAP2 00001961: SUB 00001962: SWAP1 00001963: REVERT 00001964: JUMPDEST 00001965: PUSH2 0x196e 00001968: DUP8 00001969: DUP11 0000196a: PUSH2 0x2f0e 0000196d: JUMP 0000196e: JUMPDEST 0000196f: DUP2 00001970: GT 00001971: ISZERO 00001972: PUSH2 0x198e 00001975: JUMPI 00001976: PUSH1 0x40 00001978: MLOAD 00001979: PUSH4 0x37fb98f9 0000197e: PUSH1 0xe1 00001980: SHL 00001981: DUP2 00001982: MSTORE 00001983: PUSH1 0x04 00001985: ADD 00001986: PUSH1 0x40 00001988: MLOAD 00001989: DUP1 0000198a: SWAP2 0000198b: SUB 0000198c: SWAP1 0000198d: REVERT 0000198e: JUMPDEST 0000198f: PUSH1 0x40 00001991: DUP1 00001992: MLOAD 00001993: DUP9 00001994: DUP2 00001995: MSTORE 00001996: PUSH1 0x20 00001998: DUP2 00001999: ADD 0000199a: DUP12 0000199b: SWAP1 0000199c: MSTORE 0000199d: PUSH1 0x01 0000199f: PUSH1 0x01 000019a1: PUSH1 0xa0 000019a3: SHL 000019a4: SUB 000019a5: DUP1 000019a6: DUP14 000019a7: AND 000019a8: SWAP3 000019a9: SWAP1 000019aa: DUP16 000019ab: AND 000019ac: SWAP2 000019ad: CALLER 000019ae: SWAP2 000019af: PUSH32 0x908fb5ee8f16c6bc9bc3690973819f32a4d4b10188134543c88706e0e1d43378 000019d0: SWAP2 000019d1: ADD 000019d2: PUSH1 0x40 000019d4: MLOAD 000019d5: DUP1 000019d6: SWAP2 000019d7: SUB 000019d8: SWAP1 000019d9: LOG4 000019da: PUSH2 0x19e4 000019dd: DUP13 000019de: CALLER 000019df: DUP10 000019e0: PUSH2 0x2fb6 000019e3: JUMP 000019e4: JUMPDEST 000019e5: PUSH2 0x19ef 000019e8: DUP11 000019e9: CALLER 000019ea: DUP12 000019eb: PUSH2 0x3028 000019ee: JUMP 000019ef: JUMPDEST 000019f0: POP 000019f1: POP 000019f2: POP 000019f3: POP 000019f4: POP 000019f5: PUSH2 0x19ff 000019f8: PUSH0 000019f9: DUP1 000019fa: SHL 000019fb: PUSH2 0x2ddf 000019fe: JUMP 000019ff: JUMPDEST 00001a00: SWAP6 00001a01: POP 00001a02: SWAP6 00001a03: SWAP4 00001a04: POP 00001a05: POP 00001a06: POP 00001a07: POP 00001a08: JUMP 00001a09: JUMPDEST 00001a0a: PUSH1 0x40 00001a0c: MLOAD 00001a0d: PUSH0 00001a0e: SWAP1 00001a0f: DUP2 00001a10: SWAP1 00001a11: CALLER 00001a12: SWAP1 00001a13: PUSH1 0x01 00001a15: PUSH1 0x01 00001a17: PUSH1 0xe0 00001a19: SHL 00001a1a: SUB 00001a1b: NOT 00001a1c: DUP4 00001a1d: CALLDATALOAD 00001a1e: AND 00001a1f: SWAP1 00001a20: PUSH2 0x1a2c 00001a23: SWAP1 00001a24: DUP5 00001a25: SWAP1 00001a26: CALLDATASIZE 00001a27: SWAP1 00001a28: PUSH2 0x3e6d 00001a2b: JUMP 00001a2c: JUMPDEST 00001a2d: PUSH1 0x40 00001a2f: MLOAD 00001a30: DUP1 00001a31: SWAP2 00001a32: SUB 00001a33: SWAP1 00001a34: LOG2 00001a35: PUSH0 00001a36: DUP1 00001a37: MLOAD 00001a38: PUSH1 0x20 00001a3a: PUSH2 0x3f08 00001a3d: DUP4 00001a3e: CODECOPY 00001a3f: DUP2 00001a40: MLOAD 00001a41: SWAP2 00001a42: MSTORE 00001a43: TLOAD 00001a44: ISZERO 00001a45: PUSH2 0x1a61 00001a48: JUMPI 00001a49: PUSH1 0x40 00001a4b: MLOAD 00001a4c: PUSH4 0xd56a08b5 00001a51: PUSH1 0xe0 00001a53: SHL 00001a54: DUP2 00001a55: MSTORE 00001a56: PUSH1 0x04 00001a58: ADD 00001a59: PUSH1 0x40 00001a5b: MLOAD 00001a5c: DUP1 00001a5d: SWAP2 00001a5e: SUB 00001a5f: SWAP1 00001a60: REVERT 00001a61: JUMPDEST 00001a62: PUSH2 0x1a6b 00001a65: PUSH1 0x01 00001a67: PUSH2 0x2ddf 00001a6a: JUMP 00001a6b: JUMPDEST 00001a6c: PUSH1 0x07 00001a6e: SLOAD 00001a6f: PUSH1 0xff 00001a71: AND 00001a72: PUSH2 0x1a8e 00001a75: JUMPI 00001a76: PUSH1 0x40 00001a78: MLOAD 00001a79: PUSH4 0x2e41ba2d 00001a7e: PUSH1 0xe0 00001a80: SHL 00001a81: DUP2 00001a82: MSTORE 00001a83: PUSH1 0x04 00001a85: ADD 00001a86: PUSH1 0x40 00001a88: MLOAD 00001a89: DUP1 00001a8a: SWAP2 00001a8b: SUB 00001a8c: SWAP1 00001a8d: REVERT 00001a8e: JUMPDEST 00001a8f: PUSH1 0x01 00001a91: PUSH1 0x01 00001a93: PUSH1 0xa0 00001a95: SHL 00001a96: SUB 00001a97: DUP8 00001a98: AND 00001a99: PUSH0 00001a9a: SWAP1 00001a9b: DUP2 00001a9c: MSTORE 00001a9d: PUSH1 0x09 00001a9f: PUSH1 0x20 00001aa1: MSTORE 00001aa2: PUSH1 0x40 00001aa4: SWAP1 00001aa5: KECCAK256 00001aa6: SLOAD 00001aa7: PUSH1 0xff 00001aa9: AND 00001aaa: PUSH2 0x1ac6 00001aad: JUMPI 00001aae: PUSH1 0x40 00001ab0: MLOAD 00001ab1: PUSH4 0x4b16fc2d 00001ab6: PUSH1 0xe1 00001ab8: SHL 00001ab9: DUP2 00001aba: MSTORE 00001abb: PUSH1 0x04 00001abd: ADD 00001abe: PUSH1 0x40 00001ac0: MLOAD 00001ac1: DUP1 00001ac2: SWAP2 00001ac3: SUB 00001ac4: SWAP1 00001ac5: REVERT 00001ac6: JUMPDEST 00001ac7: PUSH1 0x01 00001ac9: PUSH1 0x01 00001acb: PUSH1 0xa0 00001acd: SHL 00001ace: SUB 00001acf: DUP6 00001ad0: AND 00001ad1: PUSH0 00001ad2: SWAP1 00001ad3: DUP2 00001ad4: MSTORE 00001ad5: PUSH1 0x09 00001ad7: PUSH1 0x20 00001ad9: MSTORE 00001ada: PUSH1 0x40 00001adc: SWAP1 00001add: KECCAK256 00001ade: SLOAD 00001adf: PUSH1 0xff 00001ae1: AND 00001ae2: PUSH2 0x1afe 00001ae5: JUMPI 00001ae6: PUSH1 0x40 00001ae8: MLOAD 00001ae9: PUSH4 0x4b16fc2d 00001aee: PUSH1 0xe1 00001af0: SHL 00001af1: DUP2 00001af2: MSTORE 00001af3: PUSH1 0x04 00001af5: ADD 00001af6: PUSH1 0x40 00001af8: MLOAD 00001af9: DUP1 00001afa: SWAP2 00001afb: SUB 00001afc: SWAP1 00001afd: REVERT 00001afe: JUMPDEST 00001aff: PUSH1 0x01 00001b01: PUSH1 0x01 00001b03: PUSH1 0xa0 00001b05: SHL 00001b06: SUB 00001b07: DUP8 00001b08: DUP2 00001b09: AND 00001b0a: PUSH0 00001b0b: DUP2 00001b0c: DUP2 00001b0d: MSTORE 00001b0e: PUSH1 0x09 00001b10: PUSH1 0x20 00001b12: MSTORE 00001b13: PUSH1 0x40 00001b15: DUP1 00001b16: DUP3 00001b17: KECCAK256 00001b18: SWAP4 00001b19: DUP10 00001b1a: AND 00001b1b: DUP3 00001b1c: MSTORE 00001b1d: DUP1 00001b1e: DUP3 00001b1f: KECCAK256 00001b20: SWAP1 00001b21: MLOAD 00001b22: PUSH4 0x70a08231 00001b27: PUSH1 0xe0 00001b29: SHL 00001b2a: DUP2 00001b2b: MSTORE 00001b2c: ADDRESS 00001b2d: PUSH1 0x04 00001b2f: DUP3 00001b30: ADD 00001b31: MSTORE 00001b32: SWAP1 00001b33: SWAP3 00001b34: SWAP1 00001b35: PUSH4 0x70a08231 00001b3a: SWAP1 00001b3b: PUSH1 0x24 00001b3d: ADD 00001b3e: PUSH1 0x20 00001b40: PUSH1 0x40 00001b42: MLOAD 00001b43: DUP1 00001b44: DUP4 00001b45: SUB 00001b46: DUP2 00001b47: DUP7 00001b48: GAS 00001b49: STATICCALL 00001b4a: ISZERO 00001b4b: DUP1 00001b4c: ISZERO 00001b4d: PUSH2 0x1b58 00001b50: JUMPI 00001b51: RETURNDATASIZE 00001b52: PUSH0 00001b53: DUP1 00001b54: RETURNDATACOPY 00001b55: RETURNDATASIZE 00001b56: PUSH0 00001b57: REVERT 00001b58: JUMPDEST 00001b59: POP 00001b5a: POP 00001b5b: POP 00001b5c: POP 00001b5d: PUSH1 0x40 00001b5f: MLOAD 00001b60: RETURNDATASIZE 00001b61: PUSH1 0x1f 00001b63: NOT 00001b64: PUSH1 0x1f 00001b66: DUP3 00001b67: ADD 00001b68: AND 00001b69: DUP3 00001b6a: ADD 00001b6b: DUP1 00001b6c: PUSH1 0x40 00001b6e: MSTORE 00001b6f: POP 00001b70: DUP2 00001b71: ADD 00001b72: SWAP1 00001b73: PUSH2 0x1b7c 00001b76: SWAP2 00001b77: SWAP1 00001b78: PUSH2 0x3d33 00001b7b: JUMP 00001b7c: JUMPDEST 00001b7d: PUSH1 0x40 00001b7f: MLOAD 00001b80: PUSH4 0x70a08231 00001b85: PUSH1 0xe0 00001b87: SHL 00001b88: DUP2 00001b89: MSTORE 00001b8a: ADDRESS 00001b8b: PUSH1 0x04 00001b8d: DUP3 00001b8e: ADD 00001b8f: MSTORE 00001b90: SWAP1 00001b91: SWAP2 00001b92: POP 00001b93: PUSH0 00001b94: SWAP1 00001b95: PUSH1 0x01 00001b97: PUSH1 0x01 00001b99: PUSH1 0xa0 00001b9b: SHL 00001b9c: SUB 00001b9d: DUP11 00001b9e: AND 00001b9f: SWAP1 00001ba0: PUSH4 0x70a08231 00001ba5: SWAP1 00001ba6: PUSH1 0x24 00001ba8: ADD 00001ba9: PUSH1 0x20 00001bab: PUSH1 0x40 00001bad: MLOAD 00001bae: DUP1 00001baf: DUP4 00001bb0: SUB 00001bb1: DUP2 00001bb2: DUP7 00001bb3: GAS 00001bb4: STATICCALL 00001bb5: ISZERO 00001bb6: DUP1 00001bb7: ISZERO 00001bb8: PUSH2 0x1bc3 00001bbb: JUMPI 00001bbc: RETURNDATASIZE 00001bbd: PUSH0 00001bbe: DUP1 00001bbf: RETURNDATACOPY 00001bc0: RETURNDATASIZE 00001bc1: PUSH0 00001bc2: REVERT 00001bc3: JUMPDEST 00001bc4: POP 00001bc5: POP 00001bc6: POP 00001bc7: POP 00001bc8: PUSH1 0x40 00001bca: MLOAD 00001bcb: RETURNDATASIZE 00001bcc: PUSH1 0x1f 00001bce: NOT 00001bcf: PUSH1 0x1f 00001bd1: DUP3 00001bd2: ADD 00001bd3: AND 00001bd4: DUP3 00001bd5: ADD 00001bd6: DUP1 00001bd7: PUSH1 0x40 00001bd9: MSTORE 00001bda: POP 00001bdb: DUP2 00001bdc: ADD 00001bdd: SWAP1 00001bde: PUSH2 0x1be7 00001be1: SWAP2 00001be2: SWAP1 00001be3: PUSH2 0x3d33 00001be6: JUMP 00001be7: JUMPDEST 00001be8: SWAP1 00001be9: POP 00001bea: PUSH2 0x1bfb 00001bed: DUP3 00001bee: PUSH8 0x06f05b59d3b20000 00001bf7: PUSH2 0x2d5c 00001bfa: JUMP 00001bfb: JUMPDEST 00001bfc: DUP11 00001bfd: GT 00001bfe: ISZERO 00001bff: PUSH2 0x1c1b 00001c02: JUMPI 00001c03: PUSH1 0x40 00001c05: MLOAD 00001c06: PUSH4 0x558fcd91 00001c0b: PUSH1 0xe1 00001c0d: SHL 00001c0e: DUP2 00001c0f: MSTORE 00001c10: PUSH1 0x04 00001c12: ADD 00001c13: PUSH1 0x40 00001c15: MLOAD 00001c16: DUP1 00001c17: SWAP2 00001c18: SUB 00001c19: SWAP1 00001c1a: REVERT 00001c1b: JUMPDEST 00001c1c: PUSH0 00001c1d: PUSH2 0x1c33 00001c20: DUP4 00001c21: DUP7 00001c22: PUSH1 0x02 00001c24: ADD 00001c25: SLOAD 00001c26: DUP5 00001c27: DUP8 00001c28: PUSH1 0x02 00001c2a: ADD 00001c2b: SLOAD 00001c2c: PUSH1 0x06 00001c2e: SLOAD 00001c2f: PUSH2 0x1f88 00001c32: JUMP 00001c33: JUMPDEST 00001c34: SWAP1 00001c35: POP 00001c36: DUP8 00001c37: DUP2 00001c38: GT 00001c39: ISZERO 00001c3a: PUSH2 0x1c56 00001c3d: JUMPI 00001c3e: PUSH1 0x40 00001c40: MLOAD 00001c41: PUSH4 0x823a9c37 00001c46: PUSH1 0xe0 00001c48: SHL 00001c49: DUP2 00001c4a: MSTORE 00001c4b: PUSH1 0x04 00001c4d: ADD 00001c4e: PUSH1 0x40 00001c50: MLOAD 00001c51: DUP1 00001c52: SWAP2 00001c53: SUB 00001c54: SWAP1 00001c55: REVERT 00001c56: JUMPDEST 00001c57: PUSH2 0x1c6e 00001c5a: DUP4 00001c5b: DUP7 00001c5c: PUSH1 0x02 00001c5e: ADD 00001c5f: SLOAD 00001c60: DUP5 00001c61: DUP8 00001c62: PUSH1 0x02 00001c64: ADD 00001c65: SLOAD 00001c66: DUP16 00001c67: PUSH1 0x06 00001c69: SLOAD 00001c6a: PUSH2 0x2281 00001c6d: JUMP 00001c6e: JUMPDEST 00001c6f: SWAP7 00001c70: POP 00001c71: DUP9 00001c72: DUP8 00001c73: LT 00001c74: ISZERO 00001c75: PUSH2 0x1c91 00001c78: JUMPI 00001c79: PUSH1 0x40 00001c7b: MLOAD 00001c7c: PUSH4 0xd6ac3395 00001c81: PUSH1 0xe0 00001c83: SHL 00001c84: DUP2 00001c85: MSTORE 00001c86: PUSH1 0x04 00001c88: ADD 00001c89: PUSH1 0x40 00001c8b: MLOAD 00001c8c: DUP1 00001c8d: SWAP2 00001c8e: SUB 00001c8f: SWAP1 00001c90: REVERT 00001c91: JUMPDEST 00001c92: PUSH2 0x1c9b 00001c95: DUP4 00001c96: DUP13 00001c97: PUSH2 0x2fcb 00001c9a: JUMP 00001c9b: JUMPDEST 00001c9c: SWAP3 00001c9d: POP 00001c9e: PUSH2 0x1ca7 00001ca1: DUP3 00001ca2: DUP9 00001ca3: PUSH2 0x2ff0 00001ca6: JUMP 00001ca7: JUMPDEST 00001ca8: SWAP2 00001ca9: POP 00001caa: PUSH2 0x1cc0 00001cad: DUP4 00001cae: DUP7 00001caf: PUSH1 0x02 00001cb1: ADD 00001cb2: SLOAD 00001cb3: DUP5 00001cb4: DUP8 00001cb5: PUSH1 0x02 00001cb7: ADD 00001cb8: SLOAD 00001cb9: PUSH1 0x06 00001cbb: SLOAD 00001cbc: PUSH2 0x1f88 00001cbf: JUMP 00001cc0: JUMPDEST 00001cc1: SWAP6 00001cc2: POP 00001cc3: DUP1 00001cc4: DUP7 00001cc5: LT 00001cc6: ISZERO 00001cc7: PUSH2 0x1ce3 00001cca: JUMPI 00001ccb: PUSH1 0x40 00001ccd: MLOAD 00001cce: PUSH4 0x62123023 00001cd3: PUSH1 0xe0 00001cd5: SHL 00001cd6: DUP2 00001cd7: MSTORE 00001cd8: PUSH1 0x04 00001cda: ADD 00001cdb: PUSH1 0x40 00001cdd: MLOAD 00001cde: DUP1 00001cdf: SWAP2 00001ce0: SUB 00001ce1: SWAP1 00001ce2: REVERT 00001ce3: JUMPDEST 00001ce4: DUP8 00001ce5: DUP7 00001ce6: GT 00001ce7: ISZERO 00001ce8: PUSH2 0x1d04 00001ceb: JUMPI 00001cec: PUSH1 0x40 00001cee: MLOAD 00001cef: PUSH4 0x823a9c37 00001cf4: PUSH1 0xe0 00001cf6: SHL 00001cf7: DUP2 00001cf8: MSTORE 00001cf9: PUSH1 0x04 00001cfb: ADD 00001cfc: PUSH1 0x40 00001cfe: MLOAD 00001cff: DUP1 00001d00: SWAP2 00001d01: SUB 00001d02: SWAP1 00001d03: REVERT 00001d04: JUMPDEST 00001d05: PUSH2 0x1d0e 00001d08: DUP12 00001d09: DUP9 00001d0a: PUSH2 0x2f0e 00001d0d: JUMP 00001d0e: JUMPDEST 00001d0f: DUP2 00001d10: GT 00001d11: ISZERO 00001d12: PUSH2 0x1d2e 00001d15: JUMPI 00001d16: PUSH1 0x40 00001d18: MLOAD 00001d19: PUSH4 0x37fb98f9 00001d1e: PUSH1 0xe1 00001d20: SHL 00001d21: DUP2 00001d22: MSTORE 00001d23: PUSH1 0x04 00001d25: ADD 00001d26: PUSH1 0x40 00001d28: MLOAD 00001d29: DUP1 00001d2a: SWAP2 00001d2b: SUB 00001d2c: SWAP1 00001d2d: REVERT 00001d2e: JUMPDEST 00001d2f: PUSH1 0x40 00001d31: DUP1 00001d32: MLOAD 00001d33: DUP13 00001d34: DUP2 00001d35: MSTORE 00001d36: PUSH1 0x20 00001d38: DUP2 00001d39: ADD 00001d3a: DUP10 00001d3b: SWAP1 00001d3c: MSTORE 00001d3d: PUSH1 0x01 00001d3f: PUSH1 0x01 00001d41: PUSH1 0xa0 00001d43: SHL 00001d44: SUB 00001d45: DUP1 00001d46: DUP14 00001d47: AND 00001d48: SWAP3 00001d49: SWAP1 00001d4a: DUP16 00001d4b: AND 00001d4c: SWAP2 00001d4d: CALLER 00001d4e: SWAP2 00001d4f: PUSH32 0x908fb5ee8f16c6bc9bc3690973819f32a4d4b10188134543c88706e0e1d43378 00001d70: SWAP2 00001d71: ADD 00001d72: PUSH1 0x40 00001d74: MLOAD 00001d75: DUP1 00001d76: SWAP2 00001d77: SUB 00001d78: SWAP1 00001d79: LOG4 00001d7a: PUSH2 0x1d84 00001d7d: DUP13 00001d7e: CALLER 00001d7f: DUP14 00001d80: PUSH2 0x2fb6 00001d83: JUMP 00001d84: JUMPDEST 00001d85: PUSH2 0x19ef 00001d88: DUP11 00001d89: CALLER 00001d8a: DUP10 00001d8b: PUSH2 0x3028 00001d8e: JUMP 00001d8f: JUMPDEST 00001d90: PUSH2 0x0902 00001d93: PUSH5 0xe8d4a51000 00001d99: PUSH8 0x0de0b6b3a7640000 00001da2: PUSH2 0x3e3b 00001da5: JUMP 00001da6: JUMPDEST 00001da7: CALLER 00001da8: PUSH1 0x01 00001daa: PUSH1 0x01 00001dac: PUSH1 0xa0 00001dae: SHL 00001daf: SUB 00001db0: AND 00001db1: PUSH0 00001db2: CALLDATALOAD 00001db3: PUSH1 0x01 00001db5: PUSH1 0x01 00001db7: PUSH1 0xe0 00001db9: SHL 00001dba: SUB 00001dbb: NOT 00001dbc: AND 00001dbd: PUSH1 0x01 00001dbf: PUSH1 0x01 00001dc1: PUSH1 0xe0 00001dc3: SHL 00001dc4: SUB 00001dc5: NOT 00001dc6: AND 00001dc7: PUSH0 00001dc8: CALLDATASIZE 00001dc9: PUSH1 0x40 00001dcb: MLOAD 00001dcc: PUSH2 0x1dd6 00001dcf: SWAP3 00001dd0: SWAP2 00001dd1: SWAP1 00001dd2: PUSH2 0x3e6d 00001dd5: JUMP 00001dd6: JUMPDEST 00001dd7: PUSH1 0x40 00001dd9: MLOAD 00001dda: DUP1 00001ddb: SWAP2 00001ddc: SUB 00001ddd: SWAP1 00001dde: LOG2 00001ddf: PUSH0 00001de0: DUP1 00001de1: MLOAD 00001de2: PUSH1 0x20 00001de4: PUSH2 0x3f08 00001de7: DUP4 00001de8: CODECOPY 00001de9: DUP2 00001dea: MLOAD 00001deb: SWAP2 00001dec: MSTORE 00001ded: TLOAD 00001dee: ISZERO 00001def: PUSH2 0x1e0b 00001df2: JUMPI 00001df3: PUSH1 0x40 00001df5: MLOAD 00001df6: PUSH4 0xd56a08b5 00001dfb: PUSH1 0xe0 00001dfd: SHL 00001dfe: DUP2 00001dff: MSTORE 00001e00: PUSH1 0x04 00001e02: ADD 00001e03: PUSH1 0x40 00001e05: MLOAD 00001e06: DUP1 00001e07: SWAP2 00001e08: SUB 00001e09: SWAP1 00001e0a: REVERT 00001e0b: JUMPDEST 00001e0c: PUSH2 0x1e15 00001e0f: PUSH1 0x01 00001e11: PUSH2 0x2ddf 00001e14: JUMP 00001e15: JUMPDEST 00001e16: PUSH1 0x05 00001e18: SLOAD 00001e19: PUSH1 0x01 00001e1b: PUSH1 0x01 00001e1d: PUSH1 0xa0 00001e1f: SHL 00001e20: SUB 00001e21: AND 00001e22: CALLER 00001e23: EQ 00001e24: PUSH2 0x1e40 00001e27: JUMPI 00001e28: PUSH1 0x40 00001e2a: MLOAD 00001e2b: PUSH4 0x4f0f5499 00001e30: PUSH1 0xe1 00001e32: SHL 00001e33: DUP2 00001e34: MSTORE 00001e35: PUSH1 0x04 00001e37: ADD 00001e38: PUSH1 0x40 00001e3a: MLOAD 00001e3b: DUP1 00001e3c: SWAP2 00001e3d: SUB 00001e3e: SWAP1 00001e3f: REVERT 00001e40: JUMPDEST 00001e41: PUSH1 0x01 00001e43: PUSH1 0x01 00001e45: PUSH1 0xa0 00001e47: SHL 00001e48: SUB 00001e49: DUP2 00001e4a: AND 00001e4b: PUSH2 0x1e67 00001e4e: JUMPI 00001e4f: PUSH1 0x40 00001e51: MLOAD 00001e52: PUSH4 0x51a9e5c5 00001e57: PUSH1 0xe0 00001e59: SHL 00001e5a: DUP2 00001e5b: MSTORE 00001e5c: PUSH1 0x04 00001e5e: ADD 00001e5f: PUSH1 0x40 00001e61: MLOAD 00001e62: DUP1 00001e63: SWAP2 00001e64: SUB 00001e65: SWAP1 00001e66: REVERT 00001e67: JUMPDEST 00001e68: PUSH1 0x05 00001e6a: DUP1 00001e6b: SLOAD 00001e6c: PUSH1 0x01 00001e6e: PUSH1 0x01 00001e70: PUSH1 0xa0 00001e72: SHL 00001e73: SUB 00001e74: NOT 00001e75: AND 00001e76: PUSH1 0x01 00001e78: PUSH1 0x01 00001e7a: PUSH1 0xa0 00001e7c: SHL 00001e7d: SUB 00001e7e: DUP4 00001e7f: AND 00001e80: OR 00001e81: SWAP1 00001e82: SSTORE 00001e83: PUSH2 0x126f 00001e86: PUSH0 00001e87: PUSH2 0x2ddf 00001e8a: JUMP 00001e8b: JUMPDEST 00001e8c: PUSH0 00001e8d: PUSH0 00001e8e: DUP1 00001e8f: MLOAD 00001e90: PUSH1 0x20 00001e92: PUSH2 0x3f08 00001e95: DUP4 00001e96: CODECOPY 00001e97: DUP2 00001e98: MLOAD 00001e99: SWAP2 00001e9a: MSTORE 00001e9b: TLOAD 00001e9c: ISZERO 00001e9d: PUSH2 0x1eb9 00001ea0: JUMPI 00001ea1: PUSH1 0x40 00001ea3: MLOAD 00001ea4: PUSH4 0xd56a08b5 00001ea9: PUSH1 0xe0 00001eab: SHL 00001eac: DUP2 00001ead: MSTORE 00001eae: PUSH1 0x04 00001eb0: ADD 00001eb1: PUSH1 0x40 00001eb3: MLOAD 00001eb4: DUP1 00001eb5: SWAP2 00001eb6: SUB 00001eb7: SWAP1 00001eb8: REVERT 00001eb9: JUMPDEST 00001eba: POP 00001ebb: PUSH1 0x0a 00001ebd: SLOAD 00001ebe: SWAP1 00001ebf: JUMP 00001ec0: JUMPDEST 00001ec1: PUSH2 0x0902 00001ec4: PUSH8 0x0de0b6b3a7640000 00001ecd: PUSH1 0x64 00001ecf: PUSH2 0x3d1c 00001ed2: JUMP 00001ed3: JUMPDEST 00001ed4: PUSH0 00001ed5: PUSH0 00001ed6: DUP1 00001ed7: MLOAD 00001ed8: PUSH1 0x20 00001eda: PUSH2 0x3f08 00001edd: DUP4 00001ede: CODECOPY 00001edf: DUP2 00001ee0: MLOAD 00001ee1: SWAP2 00001ee2: MSTORE 00001ee3: TLOAD 00001ee4: ISZERO 00001ee5: PUSH2 0x1f01 00001ee8: JUMPI 00001ee9: PUSH1 0x40 00001eeb: MLOAD 00001eec: PUSH4 0xd56a08b5 00001ef1: PUSH1 0xe0 00001ef3: SHL 00001ef4: DUP2 00001ef5: MSTORE 00001ef6: PUSH1 0x04 00001ef8: ADD 00001ef9: PUSH1 0x40 00001efb: MLOAD 00001efc: DUP1 00001efd: SWAP2 00001efe: SUB 00001eff: SWAP1 00001f00: REVERT 00001f01: JUMPDEST 00001f02: PUSH1 0x01 00001f04: PUSH1 0x01 00001f06: PUSH1 0xa0 00001f08: SHL 00001f09: SUB 00001f0a: DUP3 00001f0b: AND 00001f0c: PUSH0 00001f0d: SWAP1 00001f0e: DUP2 00001f0f: MSTORE 00001f10: PUSH1 0x09 00001f12: PUSH1 0x20 00001f14: MSTORE 00001f15: PUSH1 0x40 00001f17: SWAP1 00001f18: KECCAK256 00001f19: SLOAD 00001f1a: PUSH1 0xff 00001f1c: AND 00001f1d: PUSH2 0x1f39 00001f20: JUMPI 00001f21: PUSH1 0x40 00001f23: MLOAD 00001f24: PUSH4 0x4b16fc2d 00001f29: PUSH1 0xe1 00001f2b: SHL 00001f2c: DUP2 00001f2d: MSTORE 00001f2e: PUSH1 0x04 00001f30: ADD 00001f31: PUSH1 0x40 00001f33: MLOAD 00001f34: DUP1 00001f35: SWAP2 00001f36: SUB 00001f37: SWAP1 00001f38: REVERT 00001f39: JUMPDEST 00001f3a: POP 00001f3b: PUSH1 0x01 00001f3d: PUSH1 0x01 00001f3f: PUSH1 0xa0 00001f41: SHL 00001f42: SUB 00001f43: DUP2 00001f44: AND 00001f45: PUSH0 00001f46: SWAP1 00001f47: DUP2 00001f48: MSTORE 00001f49: PUSH1 0x09 00001f4b: PUSH1 0x20 00001f4d: MSTORE 00001f4e: PUSH1 0x40 00001f50: SWAP1 00001f51: KECCAK256 00001f52: PUSH1 0x02 00001f54: ADD 00001f55: SLOAD 00001f56: JUMPDEST 00001f57: SWAP2 00001f58: SWAP1 00001f59: POP 00001f5a: JUMP 00001f5b: JUMPDEST 00001f5c: PUSH1 0x60 00001f5e: PUSH1 0x04 00001f60: DUP1 00001f61: SLOAD 00001f62: PUSH2 0x0855 00001f65: SWAP1 00001f66: PUSH2 0x3cd0 00001f69: JUMP 00001f6a: JUMPDEST 00001f6b: PUSH2 0x1f7d 00001f6e: PUSH1 0x03 00001f70: PUSH8 0x0de0b6b3a7640000 00001f79: PUSH2 0x3e3b 00001f7c: JUMP 00001f7d: JUMPDEST 00001f7e: PUSH2 0x0902 00001f81: SWAP1 00001f82: PUSH1 0x01 00001f84: PUSH2 0x3e5a 00001f87: JUMP 00001f88: JUMPDEST 00001f89: PUSH0 00001f8a: DUP1 00001f8b: PUSH2 0x1f94 00001f8e: DUP8 00001f8f: DUP8 00001f90: PUSH2 0x2f0e 00001f93: JUMP 00001f94: JUMPDEST 00001f95: SWAP1 00001f96: POP 00001f97: PUSH0 00001f98: PUSH2 0x1fa1 00001f9b: DUP7 00001f9c: DUP7 00001f9d: PUSH2 0x2f0e 00001fa0: JUMP 00001fa1: JUMPDEST 00001fa2: SWAP1 00001fa3: POP 00001fa4: PUSH0 00001fa5: PUSH2 0x1fae 00001fa8: DUP4 00001fa9: DUP4 00001faa: PUSH2 0x2f0e 00001fad: JUMP 00001fae: JUMPDEST 00001faf: SWAP1 00001fb0: POP 00001fb1: PUSH0 00001fb2: PUSH2 0x1fd4 00001fb5: PUSH8 0x0de0b6b3a7640000 00001fbe: PUSH2 0x1fcf 00001fc1: PUSH8 0x0de0b6b3a7640000 00001fca: DUP10 00001fcb: PUSH2 0x2ff0 00001fce: JUMP 00001fcf: JUMPDEST 00001fd0: PUSH2 0x2f0e 00001fd3: JUMP 00001fd4: JUMPDEST 00001fd5: SWAP1 00001fd6: POP 00001fd7: PUSH2 0x1fe0 00001fda: DUP3 00001fdb: DUP3 00001fdc: PUSH2 0x2d5c 00001fdf: JUMP 00001fe0: JUMPDEST 00001fe1: SWAP11 00001fe2: SWAP10 00001fe3: POP 00001fe4: POP 00001fe5: POP 00001fe6: POP 00001fe7: POP 00001fe8: POP 00001fe9: POP 00001fea: POP 00001feb: POP 00001fec: POP 00001fed: JUMP 00001fee: JUMPDEST 00001fef: PUSH0 00001ff0: CALLER 00001ff1: PUSH2 0x08e3 00001ff4: DUP2 00001ff5: DUP6 00001ff6: DUP6 00001ff7: PUSH2 0x2cff 00001ffa: JUMP 00001ffb: JUMPDEST 00001ffc: CALLER 00001ffd: PUSH1 0x01 00001fff: PUSH1 0x01 00002001: PUSH1 0xa0 00002003: SHL 00002004: SUB 00002005: AND 00002006: PUSH0 00002007: CALLDATALOAD 00002008: PUSH1 0x01 0000200a: PUSH1 0x01 0000200c: PUSH1 0xe0 0000200e: SHL 0000200f: SUB 00002010: NOT 00002011: AND 00002012: PUSH1 0x01 00002014: PUSH1 0x01 00002016: PUSH1 0xe0 00002018: SHL 00002019: SUB 0000201a: NOT 0000201b: AND 0000201c: PUSH0 0000201d: CALLDATASIZE 0000201e: PUSH1 0x40 00002020: MLOAD 00002021: PUSH2 0x202b 00002024: SWAP3 00002025: SWAP2 00002026: SWAP1 00002027: PUSH2 0x3e6d 0000202a: JUMP 0000202b: JUMPDEST 0000202c: PUSH1 0x40 0000202e: MLOAD 0000202f: DUP1 00002030: SWAP2 00002031: SUB 00002032: SWAP1 00002033: LOG2 00002034: PUSH0 00002035: DUP1 00002036: MLOAD 00002037: PUSH1 0x20 00002039: PUSH2 0x3f08 0000203c: DUP4 0000203d: CODECOPY 0000203e: DUP2 0000203f: MLOAD 00002040: SWAP2 00002041: MSTORE 00002042: TLOAD 00002043: ISZERO 00002044: PUSH2 0x2060 00002047: JUMPI 00002048: PUSH1 0x40 0000204a: MLOAD 0000204b: PUSH4 0xd56a08b5 00002050: PUSH1 0xe0 00002052: SHL 00002053: DUP2 00002054: MSTORE 00002055: PUSH1 0x04 00002057: ADD 00002058: PUSH1 0x40 0000205a: MLOAD 0000205b: DUP1 0000205c: SWAP2 0000205d: SUB 0000205e: SWAP1 0000205f: REVERT 00002060: JUMPDEST 00002061: PUSH2 0x206a 00002064: PUSH1 0x01 00002066: PUSH2 0x2ddf 00002069: JUMP 0000206a: JUMPDEST 0000206b: PUSH1 0x07 0000206d: SLOAD 0000206e: PUSH1 0xff 00002070: AND 00002071: PUSH2 0x208d 00002074: JUMPI 00002075: PUSH1 0x40 00002077: MLOAD 00002078: PUSH4 0x2e41ba2d 0000207d: PUSH1 0xe0 0000207f: SHL 00002080: DUP2 00002081: MSTORE 00002082: PUSH1 0x04 00002084: ADD 00002085: PUSH1 0x40 00002087: MLOAD 00002088: DUP1 00002089: SWAP2 0000208a: SUB 0000208b: SWAP1 0000208c: REVERT 0000208d: JUMPDEST 0000208e: PUSH0 0000208f: PUSH2 0x2097 00002092: PUSH1 0x02 00002094: SLOAD 00002095: SWAP1 00002096: JUMP 00002097: JUMPDEST 00002098: SWAP1 00002099: POP 0000209a: PUSH0 0000209b: PUSH2 0x20a4 0000209e: DUP6 0000209f: PUSH0 000020a0: PUSH2 0x2d5c 000020a3: JUMP 000020a4: JUMPDEST 000020a5: SWAP1 000020a6: POP 000020a7: PUSH0 000020a8: PUSH2 0x20b1 000020ab: DUP7 000020ac: DUP4 000020ad: PUSH2 0x2ff0 000020b0: JUMP 000020b1: JUMPDEST 000020b2: SWAP1 000020b3: POP 000020b4: PUSH0 000020b5: PUSH2 0x20be 000020b8: DUP3 000020b9: DUP6 000020ba: PUSH2 0x2f0e 000020bd: JUMP 000020be: JUMPDEST 000020bf: SWAP1 000020c0: POP 000020c1: DUP1 000020c2: PUSH0 000020c3: SUB 000020c4: PUSH2 0x20e0 000020c7: JUMPI 000020c8: PUSH1 0x40 000020ca: MLOAD 000020cb: PUSH4 0x0c499f47 000020d0: PUSH1 0xe0 000020d2: SHL 000020d3: DUP2 000020d4: MSTORE 000020d5: PUSH1 0x04 000020d7: ADD 000020d8: PUSH1 0x40 000020da: MLOAD 000020db: DUP1 000020dc: SWAP2 000020dd: SUB 000020de: SWAP1 000020df: REVERT 000020e0: JUMPDEST 000020e1: PUSH2 0x20ea 000020e4: CALLER 000020e5: DUP9 000020e6: PUSH2 0x303c 000020e9: JUMP 000020ea: JUMPDEST 000020eb: PUSH2 0x2114 000020ee: PUSH32 0x000000000000000000000000f76c421bab7df8548604e60deccce50477c10462 0000210f: DUP5 00002110: PUSH2 0x2dfc 00002113: JUMP 00002114: JUMPDEST 00002115: PUSH2 0x211d 00002118: DUP3 00002119: PUSH2 0x3046 0000211c: JUMP 0000211d: JUMPDEST 0000211e: PUSH1 0x08 00002120: SLOAD 00002121: PUSH0 00002122: JUMPDEST 00002123: DUP2 00002124: DUP2 00002125: LT 00002126: ISZERO 00002127: PUSH2 0x2270 0000212a: JUMPI 0000212b: PUSH0 0000212c: PUSH1 0x08 0000212e: DUP3 0000212f: DUP2 00002130: SLOAD 00002131: DUP2 00002132: LT 00002133: PUSH2 0x213e 00002136: JUMPI 00002137: PUSH2 0x213e 0000213a: PUSH2 0x3eae 0000213d: JUMP 0000213e: JUMPDEST 0000213f: PUSH0 00002140: SWAP2 00002141: DUP3 00002142: MSTORE 00002143: PUSH1 0x20 00002145: DUP3 00002146: KECCAK256 00002147: ADD 00002148: SLOAD 00002149: PUSH1 0x40 0000214b: MLOAD 0000214c: PUSH4 0x70a08231 00002151: PUSH1 0xe0 00002153: SHL 00002154: DUP2 00002155: MSTORE 00002156: ADDRESS 00002157: PUSH1 0x04 00002159: DUP3 0000215a: ADD 0000215b: MSTORE 0000215c: PUSH1 0x01 0000215e: PUSH1 0x01 00002160: PUSH1 0xa0 00002162: SHL 00002163: SUB 00002164: SWAP1 00002165: SWAP2 00002166: AND 00002167: SWAP3 00002168: POP 00002169: DUP3 0000216a: SWAP1 0000216b: PUSH4 0x70a08231 00002170: SWAP1 00002171: PUSH1 0x24 00002173: ADD 00002174: PUSH1 0x20 00002176: PUSH1 0x40 00002178: MLOAD 00002179: DUP1 0000217a: DUP4 0000217b: SUB 0000217c: DUP2 0000217d: DUP7 0000217e: GAS 0000217f: STATICCALL 00002180: ISZERO 00002181: DUP1 00002182: ISZERO 00002183: PUSH2 0x218e 00002186: JUMPI 00002187: RETURNDATASIZE 00002188: PUSH0 00002189: DUP1 0000218a: RETURNDATACOPY 0000218b: RETURNDATASIZE 0000218c: PUSH0 0000218d: REVERT 0000218e: JUMPDEST 0000218f: POP 00002190: POP 00002191: POP 00002192: POP 00002193: PUSH1 0x40 00002195: MLOAD 00002196: RETURNDATASIZE 00002197: PUSH1 0x1f 00002199: NOT 0000219a: PUSH1 0x1f 0000219c: DUP3 0000219d: ADD 0000219e: AND 0000219f: DUP3 000021a0: ADD 000021a1: DUP1 000021a2: PUSH1 0x40 000021a4: MSTORE 000021a5: POP 000021a6: DUP2 000021a7: ADD 000021a8: SWAP1 000021a9: PUSH2 0x21b2 000021ac: SWAP2 000021ad: SWAP1 000021ae: PUSH2 0x3d33 000021b1: JUMP 000021b2: JUMPDEST 000021b3: SWAP1 000021b4: POP 000021b5: PUSH0 000021b6: PUSH2 0x21bf 000021b9: DUP7 000021ba: DUP4 000021bb: PUSH2 0x2d5c 000021be: JUMP 000021bf: JUMPDEST 000021c0: SWAP1 000021c1: POP 000021c2: DUP1 000021c3: PUSH0 000021c4: SUB 000021c5: PUSH2 0x21e1 000021c8: JUMPI 000021c9: PUSH1 0x40 000021cb: MLOAD 000021cc: PUSH4 0x4b4ae51b 000021d1: PUSH1 0xe1 000021d3: SHL 000021d4: DUP2 000021d5: MSTORE 000021d6: PUSH1 0x04 000021d8: ADD 000021d9: PUSH1 0x40 000021db: MLOAD 000021dc: DUP1 000021dd: SWAP2 000021de: SUB 000021df: SWAP1 000021e0: REVERT 000021e1: JUMPDEST 000021e2: DUP11 000021e3: DUP11 000021e4: DUP6 000021e5: DUP2 000021e6: DUP2 000021e7: LT 000021e8: PUSH2 0x21f3 000021eb: JUMPI 000021ec: PUSH2 0x21f3 000021ef: PUSH2 0x3eae 000021f2: JUMP 000021f3: JUMPDEST 000021f4: SWAP1 000021f5: POP 000021f6: PUSH1 0x20 000021f8: MUL 000021f9: ADD 000021fa: CALLDATALOAD 000021fb: DUP2 000021fc: LT 000021fd: ISZERO 000021fe: PUSH2 0x221a 00002201: JUMPI 00002202: PUSH1 0x40 00002204: MLOAD 00002205: PUSH4 0x341a1f33 0000220a: PUSH1 0xe1 0000220c: SHL 0000220d: DUP2 0000220e: MSTORE 0000220f: PUSH1 0x04 00002211: ADD 00002212: PUSH1 0x40 00002214: MLOAD 00002215: DUP1 00002216: SWAP2 00002217: SUB 00002218: SWAP1 00002219: REVERT 0000221a: JUMPDEST 0000221b: PUSH1 0x40 0000221d: MLOAD 0000221e: DUP2 0000221f: DUP2 00002220: MSTORE 00002221: PUSH1 0x01 00002223: PUSH1 0x01 00002225: PUSH1 0xa0 00002227: SHL 00002228: SUB 00002229: DUP5 0000222a: AND 0000222b: SWAP1 0000222c: CALLER 0000222d: SWAP1 0000222e: PUSH32 0xe74c91552b64c2e2e7bd255639e004e693bd3e1d01cc33e65610b86afcc1ffed 0000224f: SWAP1 00002250: PUSH1 0x20 00002252: ADD 00002253: PUSH1 0x40 00002255: MLOAD 00002256: DUP1 00002257: SWAP2 00002258: SUB 00002259: SWAP1 0000225a: LOG3 0000225b: PUSH2 0x2265 0000225e: DUP4 0000225f: CALLER 00002260: DUP4 00002261: PUSH2 0x3028 00002264: JUMP 00002265: JUMPDEST 00002266: POP 00002267: POP 00002268: POP 00002269: PUSH1 0x01 0000226b: ADD 0000226c: PUSH2 0x2122 0000226f: JUMP 00002270: JUMPDEST 00002271: POP 00002272: POP 00002273: POP 00002274: POP 00002275: POP 00002276: POP 00002277: PUSH2 0x15eb 0000227a: PUSH0 0000227b: DUP1 0000227c: SHL 0000227d: PUSH2 0x2ddf 00002280: JUMP 00002281: JUMPDEST 00002282: PUSH0 00002283: DUP1 00002284: PUSH2 0x228d 00002287: DUP8 00002288: DUP7 00002289: PUSH2 0x2f0e 0000228c: JUMP 0000228d: JUMPDEST 0000228e: SWAP1 0000228f: POP 00002290: PUSH0 00002291: PUSH2 0x22a2 00002294: PUSH8 0x0de0b6b3a7640000 0000229d: DUP6 0000229e: PUSH2 0x2ff0 000022a1: JUMP 000022a2: JUMPDEST 000022a3: SWAP1 000022a4: POP 000022a5: PUSH2 0x22ae 000022a8: DUP6 000022a9: DUP3 000022aa: PUSH2 0x2d5c 000022ad: JUMP 000022ae: JUMPDEST 000022af: SWAP1 000022b0: POP 000022b1: PUSH0 000022b2: PUSH2 0x22bf 000022b5: DUP11 000022b6: PUSH2 0x1fcf 000022b9: DUP13 000022ba: DUP6 000022bb: PUSH2 0x2fcb 000022be: JUMP 000022bf: JUMPDEST 000022c0: SWAP1 000022c1: POP 000022c2: PUSH0 000022c3: PUSH2 0x22cc 000022c6: DUP3 000022c7: DUP6 000022c8: PUSH2 0x3050 000022cb: JUMP 000022cc: JUMPDEST 000022cd: SWAP1 000022ce: POP 000022cf: PUSH0 000022d0: PUSH2 0x22e1 000022d3: PUSH8 0x0de0b6b3a7640000 000022dc: DUP4 000022dd: PUSH2 0x2ff0 000022e0: JUMP 000022e1: JUMPDEST 000022e2: SWAP1 000022e3: POP 000022e4: PUSH2 0x22ed 000022e7: DUP11 000022e8: DUP3 000022e9: PUSH2 0x2d5c 000022ec: JUMP 000022ed: JUMPDEST 000022ee: SWAP13 000022ef: SWAP12 000022f0: POP 000022f1: POP 000022f2: POP 000022f3: POP 000022f4: POP 000022f5: POP 000022f6: POP 000022f7: POP 000022f8: POP 000022f9: POP 000022fa: POP 000022fb: POP 000022fc: JUMP 000022fd: JUMPDEST 000022fe: PUSH2 0x2312 00002301: PUSH3 0x0f4240 00002305: PUSH8 0x0de0b6b3a7640000 0000230e: PUSH2 0x3e3b 00002311: JUMP 00002312: JUMPDEST 00002313: PUSH2 0x0902 00002316: SWAP1 00002317: PUSH8 0x0de0b6b3a7640000 00002320: PUSH2 0x3e9b 00002323: JUMP 00002324: JUMPDEST 00002325: PUSH1 0x01 00002327: PUSH2 0x2339 0000232a: PUSH8 0x0de0b6b3a7640000 00002333: PUSH1 0x02 00002335: PUSH2 0x3d1c 00002338: JUMP 00002339: JUMPDEST 0000233a: PUSH2 0x0902 0000233d: SWAP2 0000233e: SWAP1 0000233f: PUSH2 0x3e9b 00002342: JUMP 00002343: JUMPDEST 00002344: PUSH1 0x60 00002346: PUSH0 00002347: DUP1 00002348: MLOAD 00002349: PUSH1 0x20 0000234b: PUSH2 0x3f08 0000234e: DUP4 0000234f: CODECOPY 00002350: DUP2 00002351: MLOAD 00002352: SWAP2 00002353: MSTORE 00002354: TLOAD 00002355: ISZERO 00002356: PUSH2 0x2372 00002359: JUMPI 0000235a: PUSH1 0x40 0000235c: MLOAD 0000235d: PUSH4 0xd56a08b5 00002362: PUSH1 0xe0 00002364: SHL 00002365: DUP2 00002366: MSTORE 00002367: PUSH1 0x04 00002369: ADD 0000236a: PUSH1 0x40 0000236c: MLOAD 0000236d: DUP1 0000236e: SWAP2 0000236f: SUB 00002370: SWAP1 00002371: REVERT 00002372: JUMPDEST 00002373: PUSH1 0x07 00002375: SLOAD 00002376: PUSH1 0xff 00002378: AND 00002379: PUSH2 0x2395 0000237c: JUMPI 0000237d: PUSH1 0x40 0000237f: MLOAD 00002380: PUSH4 0x2e41ba2d 00002385: PUSH1 0xe0 00002387: SHL 00002388: DUP2 00002389: MSTORE 0000238a: PUSH1 0x04 0000238c: ADD 0000238d: PUSH1 0x40 0000238f: MLOAD 00002390: DUP1 00002391: SWAP2 00002392: SUB 00002393: SWAP1 00002394: REVERT 00002395: JUMPDEST 00002396: PUSH1 0x08 00002398: DUP1 00002399: SLOAD 0000239a: DUP1 0000239b: PUSH1 0x20 0000239d: MUL 0000239e: PUSH1 0x20 000023a0: ADD 000023a1: PUSH1 0x40 000023a3: MLOAD 000023a4: SWAP1 000023a5: DUP2 000023a6: ADD 000023a7: PUSH1 0x40 000023a9: MSTORE 000023aa: DUP1 000023ab: SWAP3 000023ac: SWAP2 000023ad: SWAP1 000023ae: DUP2 000023af: DUP2 000023b0: MSTORE 000023b1: PUSH1 0x20 000023b3: ADD 000023b4: DUP3 000023b5: DUP1 000023b6: SLOAD 000023b7: DUP1 000023b8: ISZERO 000023b9: PUSH2 0x08cc 000023bc: JUMPI 000023bd: PUSH1 0x20 000023bf: MUL 000023c0: DUP3 000023c1: ADD 000023c2: SWAP2 000023c3: SWAP1 000023c4: PUSH0 000023c5: MSTORE 000023c6: PUSH1 0x20 000023c8: PUSH0 000023c9: KECCAK256 000023ca: SWAP1 000023cb: JUMPDEST 000023cc: DUP2 000023cd: SLOAD 000023ce: PUSH1 0x01 000023d0: PUSH1 0x01 000023d2: PUSH1 0xa0 000023d4: SHL 000023d5: SUB 000023d6: AND 000023d7: DUP2 000023d8: MSTORE 000023d9: PUSH1 0x01 000023db: SWAP1 000023dc: SWAP2 000023dd: ADD 000023de: SWAP1 000023df: PUSH1 0x20 000023e1: ADD 000023e2: DUP1 000023e3: DUP4 000023e4: GT 000023e5: PUSH2 0x23cb 000023e8: JUMPI 000023e9: POP 000023ea: POP 000023eb: POP 000023ec: POP 000023ed: POP 000023ee: SWAP1 000023ef: POP 000023f0: SWAP1 000023f1: JUMP 000023f2: JUMPDEST 000023f3: PUSH1 0x60 000023f5: PUSH0 000023f6: DUP1 000023f7: MLOAD 000023f8: PUSH1 0x20 000023fa: PUSH2 0x3f08 000023fd: DUP4 000023fe: CODECOPY 000023ff: DUP2 00002400: MLOAD 00002401: SWAP2 00002402: MSTORE 00002403: TLOAD 00002404: ISZERO 00002405: PUSH2 0x2395 00002408: JUMPI 00002409: PUSH1 0x40 0000240b: MLOAD 0000240c: PUSH4 0xd56a08b5 00002411: PUSH1 0xe0 00002413: SHL 00002414: DUP2 00002415: MSTORE 00002416: PUSH1 0x04 00002418: ADD 00002419: PUSH1 0x40 0000241b: MLOAD 0000241c: DUP1 0000241d: SWAP2 0000241e: SUB 0000241f: SWAP1 00002420: REVERT 00002421: JUMPDEST 00002422: CALLER 00002423: PUSH1 0x01 00002425: PUSH1 0x01 00002427: PUSH1 0xa0 00002429: SHL 0000242a: SUB 0000242b: AND 0000242c: PUSH0 0000242d: CALLDATALOAD 0000242e: PUSH1 0x01 00002430: PUSH1 0x01 00002432: PUSH1 0xe0 00002434: SHL 00002435: SUB 00002436: NOT 00002437: AND 00002438: PUSH1 0x01 0000243a: PUSH1 0x01 0000243c: PUSH1 0xe0 0000243e: SHL 0000243f: SUB 00002440: NOT 00002441: AND 00002442: PUSH0 00002443: CALLDATASIZE 00002444: PUSH1 0x40 00002446: MLOAD 00002447: PUSH2 0x2451 0000244a: SWAP3 0000244b: SWAP2 0000244c: SWAP1 0000244d: PUSH2 0x3e6d 00002450: JUMP 00002451: JUMPDEST 00002452: PUSH1 0x40 00002454: MLOAD 00002455: DUP1 00002456: SWAP2 00002457: SUB 00002458: SWAP1 00002459: LOG2 0000245a: PUSH0 0000245b: DUP1 0000245c: MLOAD 0000245d: PUSH1 0x20 0000245f: PUSH2 0x3f08 00002462: DUP4 00002463: CODECOPY 00002464: DUP2 00002465: MLOAD 00002466: SWAP2 00002467: MSTORE 00002468: TLOAD 00002469: ISZERO 0000246a: PUSH2 0x2486 0000246d: JUMPI 0000246e: PUSH1 0x40 00002470: MLOAD 00002471: PUSH4 0xd56a08b5 00002476: PUSH1 0xe0 00002478: SHL 00002479: DUP2 0000247a: MSTORE 0000247b: PUSH1 0x04 0000247d: ADD 0000247e: PUSH1 0x40 00002480: MLOAD 00002481: DUP1 00002482: SWAP2 00002483: SUB 00002484: SWAP1 00002485: REVERT 00002486: JUMPDEST 00002487: PUSH2 0x2490 0000248a: PUSH1 0x01 0000248c: PUSH2 0x2ddf 0000248f: JUMP 00002490: JUMPDEST 00002491: PUSH1 0x05 00002493: SLOAD 00002494: PUSH1 0x01 00002496: PUSH1 0x01 00002498: PUSH1 0xa0 0000249a: SHL 0000249b: SUB 0000249c: AND 0000249d: CALLER 0000249e: EQ 0000249f: PUSH2 0x24bb 000024a2: JUMPI 000024a3: PUSH1 0x40 000024a5: MLOAD 000024a6: PUSH4 0x4f0f5499 000024ab: PUSH1 0xe1 000024ad: SHL 000024ae: DUP2 000024af: MSTORE 000024b0: PUSH1 0x04 000024b2: ADD 000024b3: PUSH1 0x40 000024b5: MLOAD 000024b6: DUP1 000024b7: SWAP2 000024b8: SUB 000024b9: SWAP1 000024ba: REVERT 000024bb: JUMPDEST 000024bc: PUSH1 0x07 000024be: SLOAD 000024bf: PUSH1 0xff 000024c1: AND 000024c2: ISZERO 000024c3: PUSH2 0x24df 000024c6: JUMPI 000024c7: PUSH1 0x40 000024c9: MLOAD 000024ca: PUSH4 0x056f633d 000024cf: PUSH1 0xe2 000024d1: SHL 000024d2: DUP2 000024d3: MSTORE 000024d4: PUSH1 0x04 000024d6: ADD 000024d7: PUSH1 0x40 000024d9: MLOAD 000024da: DUP1 000024db: SWAP2 000024dc: SUB 000024dd: SWAP1 000024de: REVERT 000024df: JUMPDEST 000024e0: PUSH1 0x01 000024e2: PUSH1 0x01 000024e4: PUSH1 0xa0 000024e6: SHL 000024e7: SUB 000024e8: DUP2 000024e9: AND 000024ea: PUSH0 000024eb: SWAP1 000024ec: DUP2 000024ed: MSTORE 000024ee: PUSH1 0x09 000024f0: PUSH1 0x20 000024f2: MSTORE 000024f3: PUSH1 0x40 000024f5: SWAP1 000024f6: KECCAK256 000024f7: SLOAD 000024f8: PUSH1 0xff 000024fa: AND 000024fb: PUSH2 0x2517 000024fe: JUMPI 000024ff: PUSH1 0x40 00002501: MLOAD 00002502: PUSH4 0x4b16fc2d 00002507: PUSH1 0xe1 00002509: SHL 0000250a: DUP2 0000250b: MSTORE 0000250c: PUSH1 0x04 0000250e: ADD 0000250f: PUSH1 0x40 00002511: MLOAD 00002512: DUP1 00002513: SWAP2 00002514: SUB 00002515: SWAP1 00002516: REVERT 00002517: JUMPDEST 00002518: PUSH1 0x0a 0000251a: SLOAD 0000251b: PUSH1 0x01 0000251d: PUSH1 0x01 0000251f: PUSH1 0xa0 00002521: SHL 00002522: SUB 00002523: DUP3 00002524: AND 00002525: PUSH0 00002526: SWAP1 00002527: DUP2 00002528: MSTORE 00002529: PUSH1 0x09 0000252b: PUSH1 0x20 0000252d: MSTORE 0000252e: PUSH1 0x40 00002530: SWAP1 00002531: KECCAK256 00002532: PUSH1 0x02 00002534: ADD 00002535: SLOAD 00002536: PUSH2 0x253f 00002539: SWAP2 0000253a: SWAP1 0000253b: PUSH2 0x2ff0 0000253e: JUMP 0000253f: JUMPDEST 00002540: PUSH1 0x0a 00002542: SSTORE 00002543: PUSH1 0x01 00002545: PUSH1 0x01 00002547: PUSH1 0xa0 00002549: SHL 0000254a: SUB 0000254b: DUP2 0000254c: AND 0000254d: PUSH0 0000254e: SWAP1 0000254f: DUP2 00002550: MSTORE 00002551: PUSH1 0x09 00002553: PUSH1 0x20 00002555: MSTORE 00002556: PUSH1 0x40 00002558: DUP2 00002559: KECCAK256 0000255a: PUSH1 0x01 0000255c: SWAP1 0000255d: DUP2 0000255e: ADD 0000255f: SLOAD 00002560: PUSH1 0x08 00002562: SLOAD 00002563: SWAP1 00002564: SWAP3 00002565: SWAP2 00002566: PUSH2 0x256e 00002569: SWAP2 0000256a: PUSH2 0x3e9b 0000256d: JUMP 0000256e: JUMPDEST 0000256f: SWAP1 00002570: POP 00002571: PUSH1 0x08 00002573: DUP2 00002574: DUP2 00002575: SLOAD 00002576: DUP2 00002577: LT 00002578: PUSH2 0x2583 0000257b: JUMPI 0000257c: PUSH2 0x2583 0000257f: PUSH2 0x3eae 00002582: JUMP 00002583: JUMPDEST 00002584: PUSH0 00002585: SWAP2 00002586: DUP3 00002587: MSTORE 00002588: PUSH1 0x20 0000258a: SWAP1 0000258b: SWAP2 0000258c: KECCAK256 0000258d: ADD 0000258e: SLOAD 0000258f: PUSH1 0x08 00002591: DUP1 00002592: SLOAD 00002593: PUSH1 0x01 00002595: PUSH1 0x01 00002597: PUSH1 0xa0 00002599: SHL 0000259a: SUB 0000259b: SWAP1 0000259c: SWAP3 0000259d: AND 0000259e: SWAP2 0000259f: DUP5 000025a0: SWAP1 000025a1: DUP2 000025a2: LT 000025a3: PUSH2 0x25ae 000025a6: JUMPI 000025a7: PUSH2 0x25ae 000025aa: PUSH2 0x3eae 000025ad: JUMP 000025ae: JUMPDEST 000025af: SWAP1 000025b0: PUSH0 000025b1: MSTORE 000025b2: PUSH1 0x20 000025b4: PUSH0 000025b5: KECCAK256 000025b6: ADD 000025b7: PUSH0 000025b8: PUSH2 0x0100 000025bb: EXP 000025bc: DUP2 000025bd: SLOAD 000025be: DUP2 000025bf: PUSH1 0x01 000025c1: PUSH1 0x01 000025c3: PUSH1 0xa0 000025c5: SHL 000025c6: SUB 000025c7: MUL 000025c8: NOT 000025c9: AND 000025ca: SWAP1 000025cb: DUP4 000025cc: PUSH1 0x01 000025ce: PUSH1 0x01 000025d0: PUSH1 0xa0 000025d2: SHL 000025d3: SUB 000025d4: AND 000025d5: MUL 000025d6: OR 000025d7: SWAP1 000025d8: SSTORE 000025d9: POP 000025da: DUP2 000025db: PUSH1 0x09 000025dd: PUSH0 000025de: PUSH1 0x08 000025e0: DUP6 000025e1: DUP2 000025e2: SLOAD 000025e3: DUP2 000025e4: LT 000025e5: PUSH2 0x25f0 000025e8: JUMPI 000025e9: PUSH2 0x25f0 000025ec: PUSH2 0x3eae 000025ef: JUMP 000025f0: JUMPDEST 000025f1: PUSH0 000025f2: SWAP2 000025f3: DUP3 000025f4: MSTORE 000025f5: PUSH1 0x20 000025f7: DUP1 000025f8: DUP4 000025f9: KECCAK256 000025fa: SWAP1 000025fb: SWAP2 000025fc: ADD 000025fd: SLOAD 000025fe: PUSH1 0x01 00002600: PUSH1 0x01 00002602: PUSH1 0xa0 00002604: SHL 00002605: SUB 00002606: AND 00002607: DUP4 00002608: MSTORE 00002609: DUP3 0000260a: ADD 0000260b: SWAP3 0000260c: SWAP1 0000260d: SWAP3 0000260e: MSTORE 0000260f: PUSH1 0x40 00002611: ADD 00002612: SWAP1 00002613: KECCAK256 00002614: PUSH1 0x01 00002616: ADD 00002617: SSTORE 00002618: PUSH1 0x08 0000261a: DUP1 0000261b: SLOAD 0000261c: DUP1 0000261d: PUSH2 0x2628 00002620: JUMPI 00002621: PUSH2 0x2628 00002624: PUSH2 0x3ec2 00002627: JUMP 00002628: JUMPDEST 00002629: PUSH0 0000262a: DUP3 0000262b: DUP2 0000262c: MSTORE 0000262d: PUSH1 0x20 0000262f: DUP1 00002630: DUP3 00002631: KECCAK256 00002632: PUSH0 00002633: NOT 00002634: SWAP1 00002635: DUP5 00002636: ADD 00002637: DUP2 00002638: ADD 00002639: DUP1 0000263a: SLOAD 0000263b: PUSH1 0x01 0000263d: PUSH1 0x01 0000263f: PUSH1 0xa0 00002641: SHL 00002642: SUB 00002643: NOT 00002644: AND 00002645: SWAP1 00002646: SSTORE 00002647: SWAP1 00002648: SWAP3 00002649: ADD 0000264a: SWAP1 0000264b: SWAP3 0000264c: SSTORE 0000264d: PUSH1 0x40 0000264f: DUP1 00002650: MLOAD 00002651: PUSH1 0x60 00002653: DUP2 00002654: ADD 00002655: DUP3 00002656: MSTORE 00002657: DUP4 00002658: DUP2 00002659: MSTORE 0000265a: DUP1 0000265b: DUP4 0000265c: ADD 0000265d: DUP5 0000265e: DUP2 0000265f: MSTORE 00002660: DUP2 00002661: DUP4 00002662: ADD 00002663: DUP6 00002664: DUP2 00002665: MSTORE 00002666: PUSH1 0x01 00002668: PUSH1 0x01 0000266a: PUSH1 0xa0 0000266c: SHL 0000266d: SUB 0000266e: DUP10 0000266f: AND 00002670: DUP1 00002671: DUP8 00002672: MSTORE 00002673: PUSH1 0x09 00002675: SWAP1 00002676: SWAP6 00002677: MSTORE 00002678: SWAP5 00002679: DUP4 0000267a: SWAP1 0000267b: KECCAK256 0000267c: SWAP2 0000267d: MLOAD 0000267e: DUP3 0000267f: SLOAD 00002680: PUSH1 0xff 00002682: NOT 00002683: AND 00002684: SWAP1 00002685: ISZERO 00002686: ISZERO 00002687: OR 00002688: DUP3 00002689: SSTORE 0000268a: MLOAD 0000268b: PUSH1 0x01 0000268d: DUP3 0000268e: ADD 0000268f: SSTORE 00002690: SWAP3 00002691: MLOAD 00002692: PUSH1 0x02 00002694: SWAP1 00002695: SWAP4 00002696: ADD 00002697: SWAP3 00002698: SWAP1 00002699: SWAP3 0000269a: SSTORE 0000269b: SWAP1 0000269c: MLOAD 0000269d: PUSH4 0x70a08231 000026a2: PUSH1 0xe0 000026a4: SHL 000026a5: DUP2 000026a6: MSTORE 000026a7: ADDRESS 000026a8: PUSH1 0x04 000026aa: DUP3 000026ab: ADD 000026ac: MSTORE 000026ad: PUSH2 0x2702 000026b0: SWAP2 000026b1: DUP6 000026b2: SWAP2 000026b3: CALLER 000026b4: SWAP2 000026b5: SWAP1 000026b6: PUSH4 0x70a08231 000026bb: SWAP1 000026bc: PUSH1 0x24 000026be: ADD 000026bf: PUSH1 0x20 000026c1: PUSH1 0x40 000026c3: MLOAD 000026c4: DUP1 000026c5: DUP4 000026c6: SUB 000026c7: DUP2 000026c8: DUP7 000026c9: GAS 000026ca: STATICCALL 000026cb: ISZERO 000026cc: DUP1 000026cd: ISZERO 000026ce: PUSH2 0x26d9 000026d1: JUMPI 000026d2: RETURNDATASIZE 000026d3: PUSH0 000026d4: DUP1 000026d5: RETURNDATACOPY 000026d6: RETURNDATASIZE 000026d7: PUSH0 000026d8: REVERT 000026d9: JUMPDEST 000026da: POP 000026db: POP 000026dc: POP 000026dd: POP 000026de: PUSH1 0x40 000026e0: MLOAD 000026e1: RETURNDATASIZE 000026e2: PUSH1 0x1f 000026e4: NOT 000026e5: PUSH1 0x1f 000026e7: DUP3 000026e8: ADD 000026e9: AND 000026ea: DUP3 000026eb: ADD 000026ec: DUP1 000026ed: PUSH1 0x40 000026ef: MSTORE 000026f0: POP 000026f1: DUP2 000026f2: ADD 000026f3: SWAP1 000026f4: PUSH2 0x26fd 000026f7: SWAP2 000026f8: SWAP1 000026f9: PUSH2 0x3d33 000026fc: JUMP 000026fd: JUMPDEST 000026fe: PUSH2 0x3028 00002701: JUMP 00002702: JUMPDEST 00002703: POP 00002704: PUSH2 0x126f 00002707: SWAP1 00002708: POP 00002709: PUSH0 0000270a: PUSH2 0x2ddf 0000270d: JUMP 0000270e: JUMPDEST 0000270f: PUSH0 00002710: PUSH0 00002711: DUP1 00002712: MLOAD 00002713: PUSH1 0x20 00002715: PUSH2 0x3f08 00002718: DUP4 00002719: CODECOPY 0000271a: DUP2 0000271b: MLOAD 0000271c: SWAP2 0000271d: MSTORE 0000271e: TLOAD 0000271f: ISZERO 00002720: PUSH2 0x273c 00002723: JUMPI 00002724: PUSH1 0x40 00002726: MLOAD 00002727: PUSH4 0xd56a08b5 0000272c: PUSH1 0xe0 0000272e: SHL 0000272f: DUP2 00002730: MSTORE 00002731: PUSH1 0x04 00002733: ADD 00002734: PUSH1 0x40 00002736: MLOAD 00002737: DUP1 00002738: SWAP2 00002739: SUB 0000273a: SWAP1 0000273b: REVERT 0000273c: JUMPDEST 0000273d: POP 0000273e: PUSH1 0x06 00002740: SLOAD 00002741: SWAP1 00002742: JUMP 00002743: JUMPDEST 00002744: CALLER 00002745: PUSH0 00002746: DUP2 00002747: DUP2 00002748: MSTORE 00002749: PUSH1 0x01 0000274b: PUSH1 0x20 0000274d: SWAP1 0000274e: DUP2 0000274f: MSTORE 00002750: PUSH1 0x40 00002752: DUP1 00002753: DUP4 00002754: KECCAK256 00002755: PUSH1 0x01 00002757: PUSH1 0x01 00002759: PUSH1 0xa0 0000275b: SHL 0000275c: SUB 0000275d: DUP8 0000275e: AND 0000275f: DUP5 00002760: MSTORE 00002761: SWAP1 00002762: SWAP2 00002763: MSTORE 00002764: DUP2 00002765: KECCAK256 00002766: SLOAD 00002767: SWAP1 00002768: SWAP2 00002769: PUSH2 0x2779 0000276c: SWAP2 0000276d: DUP6 0000276e: SWAP1 0000276f: PUSH2 0x163a 00002772: SWAP1 00002773: DUP7 00002774: SWAP1 00002775: PUSH2 0x3e5a 00002778: JUMP 00002779: JUMPDEST 0000277a: POP 0000277b: PUSH1 0x01 0000277d: SWAP3 0000277e: SWAP2 0000277f: POP 00002780: POP 00002781: JUMP 00002782: JUMPDEST 00002783: CALLER 00002784: PUSH1 0x01 00002786: PUSH1 0x01 00002788: PUSH1 0xa0 0000278a: SHL 0000278b: SUB 0000278c: AND 0000278d: PUSH0 0000278e: CALLDATALOAD 0000278f: PUSH1 0x01 00002791: PUSH1 0x01 00002793: PUSH1 0xe0 00002795: SHL 00002796: SUB 00002797: NOT 00002798: AND 00002799: PUSH1 0x01 0000279b: PUSH1 0x01 0000279d: PUSH1 0xe0 0000279f: SHL 000027a0: SUB 000027a1: NOT 000027a2: AND 000027a3: PUSH0 000027a4: CALLDATASIZE 000027a5: PUSH1 0x40 000027a7: MLOAD 000027a8: PUSH2 0x27b2 000027ab: SWAP3 000027ac: SWAP2 000027ad: SWAP1 000027ae: PUSH2 0x3e6d 000027b1: JUMP 000027b2: JUMPDEST 000027b3: PUSH1 0x40 000027b5: MLOAD 000027b6: DUP1 000027b7: SWAP2 000027b8: SUB 000027b9: SWAP1 000027ba: LOG2 000027bb: PUSH0 000027bc: DUP1 000027bd: MLOAD 000027be: PUSH1 0x20 000027c0: PUSH2 0x3f08 000027c3: DUP4 000027c4: CODECOPY 000027c5: DUP2 000027c6: MLOAD 000027c7: SWAP2 000027c8: MSTORE 000027c9: TLOAD 000027ca: ISZERO 000027cb: PUSH2 0x27e7 000027ce: JUMPI 000027cf: PUSH1 0x40 000027d1: MLOAD 000027d2: PUSH4 0xd56a08b5 000027d7: PUSH1 0xe0 000027d9: SHL 000027da: DUP2 000027db: MSTORE 000027dc: PUSH1 0x04 000027de: ADD 000027df: PUSH1 0x40 000027e1: MLOAD 000027e2: DUP1 000027e3: SWAP2 000027e4: SUB 000027e5: SWAP1 000027e6: REVERT 000027e7: JUMPDEST 000027e8: PUSH2 0x27f1 000027eb: PUSH1 0x01 000027ed: PUSH2 0x2ddf 000027f0: JUMP 000027f1: JUMPDEST 000027f2: PUSH1 0x05 000027f4: SLOAD 000027f5: PUSH1 0x01 000027f7: PUSH1 0x01 000027f9: PUSH1 0xa0 000027fb: SHL 000027fc: SUB 000027fd: AND 000027fe: CALLER 000027ff: EQ 00002800: PUSH2 0x281c 00002803: JUMPI 00002804: PUSH1 0x40 00002806: MLOAD 00002807: PUSH4 0x4f0f5499 0000280c: PUSH1 0xe1 0000280e: SHL 0000280f: DUP2 00002810: MSTORE 00002811: PUSH1 0x04 00002813: ADD 00002814: PUSH1 0x40 00002816: MLOAD 00002817: DUP1 00002818: SWAP2 00002819: SUB 0000281a: SWAP1 0000281b: REVERT 0000281c: JUMPDEST 0000281d: PUSH1 0x07 0000281f: SLOAD 00002820: PUSH1 0xff 00002822: AND 00002823: ISZERO 00002824: PUSH2 0x2840 00002827: JUMPI 00002828: PUSH1 0x40 0000282a: MLOAD 0000282b: PUSH4 0x056f633d 00002830: PUSH1 0xe2 00002832: SHL 00002833: DUP2 00002834: MSTORE 00002835: PUSH1 0x04 00002837: ADD 00002838: PUSH1 0x40 0000283a: MLOAD 0000283b: DUP1 0000283c: SWAP2 0000283d: SUB 0000283e: SWAP1 0000283f: REVERT 00002840: JUMPDEST 00002841: PUSH1 0x01 00002843: PUSH1 0x01 00002845: PUSH1 0xa0 00002847: SHL 00002848: SUB 00002849: DUP4 0000284a: AND 0000284b: PUSH0 0000284c: SWAP1 0000284d: DUP2 0000284e: MSTORE 0000284f: PUSH1 0x09 00002851: PUSH1 0x20 00002853: MSTORE 00002854: PUSH1 0x40 00002856: SWAP1 00002857: KECCAK256 00002858: SLOAD 00002859: PUSH1 0xff 0000285b: AND 0000285c: ISZERO 0000285d: PUSH2 0x2879 00002860: JUMPI 00002861: PUSH1 0x40 00002863: MLOAD 00002864: PUSH4 0x6b1ed1b7 00002869: PUSH1 0xe1 0000286b: SHL 0000286c: DUP2 0000286d: MSTORE 0000286e: PUSH1 0x04 00002870: ADD 00002871: PUSH1 0x40 00002873: MLOAD 00002874: DUP1 00002875: SWAP2 00002876: SUB 00002877: SWAP1 00002878: REVERT 00002879: JUMPDEST 0000287a: PUSH1 0x08 0000287c: DUP1 0000287d: SLOAD 0000287e: LT 0000287f: PUSH2 0x289b 00002882: JUMPI 00002883: PUSH1 0x40 00002885: MLOAD 00002886: PUSH4 0xc47f9e93 0000288b: PUSH1 0xe0 0000288d: SHL 0000288e: DUP2 0000288f: MSTORE 00002890: PUSH1 0x04 00002892: ADD 00002893: PUSH1 0x40 00002895: MLOAD 00002896: DUP1 00002897: SWAP2 00002898: SUB 00002899: SWAP1 0000289a: REVERT 0000289b: JUMPDEST 0000289c: PUSH8 0x0de0b6b3a7640000 000028a5: DUP2 000028a6: LT 000028a7: ISZERO 000028a8: PUSH2 0x28c4 000028ab: JUMPI 000028ac: PUSH1 0x40 000028ae: MLOAD 000028af: PUSH4 0x42eb0243 000028b4: PUSH1 0xe0 000028b6: SHL 000028b7: DUP2 000028b8: MSTORE 000028b9: PUSH1 0x04 000028bb: ADD 000028bc: PUSH1 0x40 000028be: MLOAD 000028bf: DUP1 000028c0: SWAP2 000028c1: SUB 000028c2: SWAP1 000028c3: REVERT 000028c4: JUMPDEST 000028c5: PUSH2 0x28d7 000028c8: PUSH8 0x0de0b6b3a7640000 000028d1: PUSH1 0x32 000028d3: PUSH2 0x3d1c 000028d6: JUMP 000028d7: JUMPDEST 000028d8: DUP2 000028d9: GT 000028da: ISZERO 000028db: PUSH2 0x28f7 000028de: JUMPI 000028df: PUSH1 0x40 000028e1: MLOAD 000028e2: PUSH4 0x0cbe7843 000028e7: PUSH1 0xe1 000028e9: SHL 000028ea: DUP2 000028eb: MSTORE 000028ec: PUSH1 0x04 000028ee: ADD 000028ef: PUSH1 0x40 000028f1: MLOAD 000028f2: DUP1 000028f3: SWAP2 000028f4: SUB 000028f5: SWAP1 000028f6: REVERT 000028f7: JUMPDEST 000028f8: PUSH2 0x290e 000028fb: PUSH5 0xe8d4a51000 00002901: PUSH8 0x0de0b6b3a7640000 0000290a: PUSH2 0x3e3b 0000290d: JUMP 0000290e: JUMPDEST 0000290f: DUP3 00002910: LT 00002911: ISZERO 00002912: PUSH2 0x292e 00002915: JUMPI 00002916: PUSH1 0x40 00002918: MLOAD 00002919: PUSH4 0x8968448b 0000291e: PUSH1 0xe0 00002920: SHL 00002921: DUP2 00002922: MSTORE 00002923: PUSH1 0x04 00002925: ADD 00002926: PUSH1 0x40 00002928: MLOAD 00002929: DUP1 0000292a: SWAP2 0000292b: SUB 0000292c: SWAP1 0000292d: REVERT 0000292e: JUMPDEST 0000292f: PUSH2 0x293a 00002932: PUSH1 0x0a 00002934: SLOAD 00002935: DUP3 00002936: PUSH2 0x2fcb 00002939: JUMP 0000293a: JUMPDEST 0000293b: PUSH1 0x0a 0000293d: SSTORE 0000293e: PUSH2 0x2950 00002941: PUSH8 0x0de0b6b3a7640000 0000294a: PUSH1 0x32 0000294c: PUSH2 0x3d1c 0000294f: JUMP 00002950: JUMPDEST 00002951: PUSH1 0x0a 00002953: SLOAD 00002954: GT 00002955: ISZERO 00002956: PUSH2 0x2972 00002959: JUMPI 0000295a: PUSH1 0x40 0000295c: MLOAD 0000295d: PUSH4 0x42f71f0b 00002962: PUSH1 0xe0 00002964: SHL 00002965: DUP2 00002966: MSTORE 00002967: PUSH1 0x04 00002969: ADD 0000296a: PUSH1 0x40 0000296c: MLOAD 0000296d: DUP1 0000296e: SWAP2 0000296f: SUB 00002970: SWAP1 00002971: REVERT 00002972: JUMPDEST 00002973: PUSH1 0x40 00002975: DUP1 00002976: MLOAD 00002977: PUSH1 0x60 00002979: DUP2 0000297a: ADD 0000297b: DUP3 0000297c: MSTORE 0000297d: PUSH1 0x01 0000297f: DUP1 00002980: DUP3 00002981: MSTORE 00002982: PUSH1 0x08 00002984: DUP1 00002985: SLOAD 00002986: PUSH1 0x20 00002988: DUP1 00002989: DUP6 0000298a: ADD 0000298b: SWAP2 0000298c: DUP3 0000298d: MSTORE 0000298e: DUP5 0000298f: DUP7 00002990: ADD 00002991: DUP8 00002992: DUP2 00002993: MSTORE 00002994: PUSH1 0x01 00002996: PUSH1 0x01 00002998: PUSH1 0xa0 0000299a: SHL 0000299b: SUB 0000299c: DUP11 0000299d: AND 0000299e: PUSH0 0000299f: DUP2 000029a0: DUP2 000029a1: MSTORE 000029a2: PUSH1 0x09 000029a4: SWAP1 000029a5: SWAP4 000029a6: MSTORE 000029a7: SWAP7 000029a8: DUP3 000029a9: KECCAK256 000029aa: SWAP6 000029ab: MLOAD 000029ac: DUP7 000029ad: SLOAD 000029ae: PUSH1 0xff 000029b0: NOT 000029b1: AND 000029b2: SWAP1 000029b3: ISZERO 000029b4: ISZERO 000029b5: OR 000029b6: DUP7 000029b7: SSTORE 000029b8: SWAP2 000029b9: MLOAD 000029ba: DUP6 000029bb: DUP6 000029bc: ADD 000029bd: SSTORE 000029be: SWAP1 000029bf: MLOAD 000029c0: PUSH1 0x02 000029c2: SWAP1 000029c3: SWAP5 000029c4: ADD 000029c5: SWAP4 000029c6: SWAP1 000029c7: SWAP4 000029c8: SSTORE 000029c9: DUP1 000029ca: SLOAD 000029cb: SWAP2 000029cc: DUP3 000029cd: ADD 000029ce: DUP2 000029cf: SSTORE 000029d0: SWAP1 000029d1: SWAP2 000029d2: MSTORE 000029d3: PUSH32 0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3 000029f4: ADD 000029f5: DUP1 000029f6: SLOAD 000029f7: PUSH1 0x01 000029f9: PUSH1 0x01 000029fb: PUSH1 0xa0 000029fd: SHL 000029fe: SUB 000029ff: NOT 00002a00: AND 00002a01: SWAP1 00002a02: SWAP2 00002a03: OR 00002a04: SWAP1 00002a05: SSTORE 00002a06: PUSH2 0x2a10 00002a09: DUP4 00002a0a: CALLER 00002a0b: DUP5 00002a0c: PUSH2 0x2fb6 00002a0f: JUMP 00002a10: JUMPDEST 00002a11: PUSH2 0x15eb 00002a14: PUSH0 00002a15: PUSH2 0x2ddf 00002a18: JUMP 00002a19: JUMPDEST 00002a1a: PUSH0 00002a1b: DUP1 00002a1c: MLOAD 00002a1d: PUSH1 0x20 00002a1f: PUSH2 0x3f08 00002a22: DUP4 00002a23: CODECOPY 00002a24: DUP2 00002a25: MLOAD 00002a26: SWAP2 00002a27: MSTORE 00002a28: TLOAD 00002a29: ISZERO 00002a2a: PUSH2 0x2a46 00002a2d: JUMPI 00002a2e: PUSH1 0x40 00002a30: MLOAD 00002a31: PUSH4 0xd56a08b5 00002a36: PUSH1 0xe0 00002a38: SHL 00002a39: DUP2 00002a3a: MSTORE 00002a3b: PUSH1 0x04 00002a3d: ADD 00002a3e: PUSH1 0x40 00002a40: MLOAD 00002a41: DUP1 00002a42: SWAP2 00002a43: SUB 00002a44: SWAP1 00002a45: REVERT 00002a46: JUMPDEST 00002a47: CALLER 00002a48: PUSH1 0x01 00002a4a: PUSH1 0x01 00002a4c: PUSH1 0xa0 00002a4e: SHL 00002a4f: SUB 00002a50: PUSH32 0x0000000000000000000000009008d19f58aabd9ed0d60971565aa8510560ab41 00002a71: AND 00002a72: EQ 00002a73: PUSH2 0x2a8f 00002a76: JUMPI 00002a77: PUSH1 0x40 00002a79: MLOAD 00002a7a: PUSH4 0xbf848977 00002a7f: PUSH1 0xe0 00002a81: SHL 00002a82: DUP2 00002a83: MSTORE 00002a84: PUSH1 0x04 00002a86: ADD 00002a87: PUSH1 0x40 00002a89: MLOAD 00002a8a: DUP1 00002a8b: SWAP2 00002a8c: SUB 00002a8d: SWAP1 00002a8e: REVERT 00002a8f: JUMPDEST 00002a90: PUSH2 0x126f 00002a93: DUP2 00002a94: PUSH2 0x2ddf 00002a97: JUMP 00002a98: JUMPDEST 00002a99: PUSH0 00002a9a: PUSH0 00002a9b: DUP1 00002a9c: MLOAD 00002a9d: PUSH1 0x20 00002a9f: PUSH2 0x3f08 00002aa2: DUP4 00002aa3: CODECOPY 00002aa4: DUP2 00002aa5: MLOAD 00002aa6: SWAP2 00002aa7: MSTORE 00002aa8: TLOAD 00002aa9: ISZERO 00002aaa: PUSH2 0x2ac6 00002aad: JUMPI 00002aae: PUSH1 0x40 00002ab0: MLOAD 00002ab1: PUSH4 0xd56a08b5 00002ab6: PUSH1 0xe0 00002ab8: SHL 00002ab9: DUP2 00002aba: MSTORE 00002abb: PUSH1 0x04 00002abd: ADD 00002abe: PUSH1 0x40 00002ac0: MLOAD 00002ac1: DUP1 00002ac2: SWAP2 00002ac3: SUB 00002ac4: SWAP1 00002ac5: REVERT 00002ac6: JUMPDEST 00002ac7: PUSH1 0x01 00002ac9: PUSH1 0x01 00002acb: PUSH1 0xa0 00002acd: SHL 00002ace: SUB 00002acf: DUP3 00002ad0: AND 00002ad1: PUSH0 00002ad2: SWAP1 00002ad3: DUP2 00002ad4: MSTORE 00002ad5: PUSH1 0x09 00002ad7: PUSH1 0x20 00002ad9: MSTORE 00002ada: PUSH1 0x40 00002adc: SWAP1 00002add: KECCAK256 00002ade: SLOAD 00002adf: PUSH1 0xff 00002ae1: AND 00002ae2: PUSH2 0x2afe 00002ae5: JUMPI 00002ae6: PUSH1 0x40 00002ae8: MLOAD 00002ae9: PUSH4 0x4b16fc2d 00002aee: PUSH1 0xe1 00002af0: SHL 00002af1: DUP2 00002af2: MSTORE 00002af3: PUSH1 0x04 00002af5: ADD 00002af6: PUSH1 0x40 00002af8: MLOAD 00002af9: DUP1 00002afa: SWAP2 00002afb: SUB 00002afc: SWAP1 00002afd: REVERT 00002afe: JUMPDEST 00002aff: PUSH1 0x01 00002b01: PUSH1 0x01 00002b03: PUSH1 0xa0 00002b05: SHL 00002b06: SUB 00002b07: DUP3 00002b08: AND 00002b09: PUSH0 00002b0a: SWAP1 00002b0b: DUP2 00002b0c: MSTORE 00002b0d: PUSH1 0x09 00002b0f: PUSH1 0x20 00002b11: MSTORE 00002b12: PUSH1 0x40 00002b14: SWAP1 00002b15: KECCAK256 00002b16: PUSH1 0x02 00002b18: ADD 00002b19: SLOAD 00002b1a: PUSH1 0x0a 00002b1c: SLOAD 00002b1d: PUSH2 0x0da3 00002b20: SWAP1 00002b21: DUP3 00002b22: SWAP1 00002b23: PUSH2 0x2f0e 00002b26: JUMP 00002b27: JUMPDEST 00002b28: PUSH0 00002b29: PUSH0 00002b2a: DUP1 00002b2b: MLOAD 00002b2c: PUSH1 0x20 00002b2e: PUSH2 0x3f08 00002b31: DUP4 00002b32: CODECOPY 00002b33: DUP2 00002b34: MLOAD 00002b35: SWAP2 00002b36: MSTORE 00002b37: TLOAD 00002b38: ISZERO 00002b39: PUSH2 0x2b55 00002b3c: JUMPI 00002b3d: PUSH1 0x40 00002b3f: MLOAD 00002b40: PUSH4 0xd56a08b5 00002b45: PUSH1 0xe0 00002b47: SHL 00002b48: DUP2 00002b49: MSTORE 00002b4a: PUSH1 0x04 00002b4c: ADD 00002b4d: PUSH1 0x40 00002b4f: MLOAD 00002b50: DUP1 00002b51: SWAP2 00002b52: SUB 00002b53: SWAP1 00002b54: REVERT 00002b55: JUMPDEST 00002b56: PUSH1 0x01 00002b58: PUSH1 0x01 00002b5a: PUSH1 0xa0 00002b5c: SHL 00002b5d: SUB 00002b5e: DUP3 00002b5f: AND 00002b60: PUSH0 00002b61: SWAP1 00002b62: DUP2 00002b63: MSTORE 00002b64: PUSH1 0x09 00002b66: PUSH1 0x20 00002b68: MSTORE 00002b69: PUSH1 0x40 00002b6b: SWAP1 00002b6c: KECCAK256 00002b6d: SLOAD 00002b6e: PUSH1 0xff 00002b70: AND 00002b71: PUSH2 0x2b8d 00002b74: JUMPI 00002b75: PUSH1 0x40 00002b77: MLOAD 00002b78: PUSH4 0x4b16fc2d 00002b7d: PUSH1 0xe1 00002b7f: SHL 00002b80: DUP2 00002b81: MSTORE 00002b82: PUSH1 0x04 00002b84: ADD 00002b85: PUSH1 0x40 00002b87: MLOAD 00002b88: DUP1 00002b89: SWAP2 00002b8a: SUB 00002b8b: SWAP1 00002b8c: REVERT 00002b8d: JUMPDEST 00002b8e: PUSH1 0x40 00002b90: MLOAD 00002b91: PUSH4 0x70a08231 00002b96: PUSH1 0xe0 00002b98: SHL 00002b99: DUP2 00002b9a: MSTORE 00002b9b: ADDRESS 00002b9c: PUSH1 0x04 00002b9e: DUP3 00002b9f: ADD 00002ba0: MSTORE 00002ba1: PUSH1 0x01 00002ba3: PUSH1 0x01 00002ba5: PUSH1 0xa0 00002ba7: SHL 00002ba8: SUB 00002ba9: DUP4 00002baa: AND 00002bab: SWAP1 00002bac: PUSH4 0x70a08231 00002bb1: SWAP1 00002bb2: PUSH1 0x24 00002bb4: ADD 00002bb5: PUSH1 0x20 00002bb7: PUSH1 0x40 00002bb9: MLOAD 00002bba: DUP1 00002bbb: DUP4 00002bbc: SUB 00002bbd: DUP2 00002bbe: DUP7 00002bbf: GAS 00002bc0: STATICCALL 00002bc1: ISZERO 00002bc2: DUP1 00002bc3: ISZERO 00002bc4: PUSH2 0x2bcf 00002bc7: JUMPI 00002bc8: RETURNDATASIZE 00002bc9: PUSH0 00002bca: DUP1 00002bcb: RETURNDATACOPY 00002bcc: RETURNDATASIZE 00002bcd: PUSH0 00002bce: REVERT 00002bcf: JUMPDEST 00002bd0: POP 00002bd1: POP 00002bd2: POP 00002bd3: POP 00002bd4: PUSH1 0x40 00002bd6: MLOAD 00002bd7: RETURNDATASIZE 00002bd8: PUSH1 0x1f 00002bda: NOT 00002bdb: PUSH1 0x1f 00002bdd: DUP3 00002bde: ADD 00002bdf: AND 00002be0: DUP3 00002be1: ADD 00002be2: DUP1 00002be3: PUSH1 0x40 00002be5: MSTORE 00002be6: POP 00002be7: DUP2 00002be8: ADD 00002be9: SWAP1 00002bea: PUSH2 0x08e9 00002bed: SWAP2 00002bee: SWAP1 00002bef: PUSH2 0x3d33 00002bf2: JUMP 00002bf3: JUMPDEST 00002bf4: PUSH0 00002bf5: DUP1 00002bf6: PUSH2 0x2bff 00002bf9: DUP6 00002bfa: DUP9 00002bfb: PUSH2 0x2f0e 00002bfe: JUMP 00002bff: JUMPDEST 00002c00: SWAP1 00002c01: POP 00002c02: PUSH0 00002c03: PUSH2 0x2c0c 00002c06: DUP8 00002c07: DUP7 00002c08: PUSH2 0x2ff0 00002c0b: JUMP 00002c0c: JUMPDEST 00002c0d: SWAP1 00002c0e: POP 00002c0f: PUSH0 00002c10: PUSH2 0x2c19 00002c13: DUP9 00002c14: DUP4 00002c15: PUSH2 0x2f0e 00002c18: JUMP 00002c19: JUMPDEST 00002c1a: SWAP1 00002c1b: POP 00002c1c: PUSH0 00002c1d: PUSH2 0x2c26 00002c20: DUP3 00002c21: DUP6 00002c22: PUSH2 0x3050 00002c25: JUMP 00002c26: JUMPDEST 00002c27: SWAP1 00002c28: POP 00002c29: PUSH2 0x2c3a 00002c2c: DUP2 00002c2d: PUSH8 0x0de0b6b3a7640000 00002c36: PUSH2 0x2ff0 00002c39: JUMP 00002c3a: JUMPDEST 00002c3b: SWAP1 00002c3c: POP 00002c3d: PUSH2 0x2c4e 00002c40: PUSH8 0x0de0b6b3a7640000 00002c49: DUP8 00002c4a: PUSH2 0x2ff0 00002c4d: JUMP 00002c4e: JUMPDEST 00002c4f: SWAP5 00002c50: POP 00002c51: PUSH2 0x2c63 00002c54: PUSH2 0x2c5d 00002c57: DUP13 00002c58: DUP4 00002c59: PUSH2 0x2d5c 00002c5c: JUMP 00002c5d: JUMPDEST 00002c5e: DUP7 00002c5f: PUSH2 0x2f0e 00002c62: JUMP 00002c63: JUMPDEST 00002c64: SWAP12 00002c65: SWAP11 00002c66: POP 00002c67: POP 00002c68: POP 00002c69: POP 00002c6a: POP 00002c6b: POP 00002c6c: POP 00002c6d: POP 00002c6e: POP 00002c6f: POP 00002c70: POP 00002c71: JUMP 00002c72: JUMPDEST 00002c73: PUSH2 0x15eb 00002c76: DUP4 00002c77: DUP4 00002c78: DUP4 00002c79: PUSH1 0x01 00002c7b: PUSH2 0x3105 00002c7e: JUMP 00002c7f: JUMPDEST 00002c80: PUSH1 0x01 00002c82: PUSH1 0x01 00002c84: PUSH1 0xa0 00002c86: SHL 00002c87: SUB 00002c88: DUP4 00002c89: DUP2 00002c8a: AND 00002c8b: PUSH0 00002c8c: SWAP1 00002c8d: DUP2 00002c8e: MSTORE 00002c8f: PUSH1 0x01 00002c91: PUSH1 0x20 00002c93: SWAP1 00002c94: DUP2 00002c95: MSTORE 00002c96: PUSH1 0x40 00002c98: DUP1 00002c99: DUP4 00002c9a: KECCAK256 00002c9b: SWAP4 00002c9c: DUP7 00002c9d: AND 00002c9e: DUP4 00002c9f: MSTORE 00002ca0: SWAP3 00002ca1: SWAP1 00002ca2: MSTORE 00002ca3: KECCAK256 00002ca4: SLOAD 00002ca5: PUSH0 00002ca6: NOT 00002ca7: DUP2 00002ca8: EQ 00002ca9: PUSH2 0x2cf9 00002cac: JUMPI 00002cad: DUP2 00002cae: DUP2 00002caf: LT 00002cb0: ISZERO 00002cb1: PUSH2 0x2ceb 00002cb4: JUMPI 00002cb5: PUSH1 0x40 00002cb7: MLOAD 00002cb8: PUSH4 0x7dc7a0d9 00002cbd: PUSH1 0xe1 00002cbf: SHL 00002cc0: DUP2 00002cc1: MSTORE 00002cc2: PUSH1 0x01 00002cc4: PUSH1 0x01 00002cc6: PUSH1 0xa0 00002cc8: SHL 00002cc9: SUB 00002cca: DUP5 00002ccb: AND 00002ccc: PUSH1 0x04 00002cce: DUP3 00002ccf: ADD 00002cd0: MSTORE 00002cd1: PUSH1 0x24 00002cd3: DUP2 00002cd4: ADD 00002cd5: DUP3 00002cd6: SWAP1 00002cd7: MSTORE 00002cd8: PUSH1 0x44 00002cda: DUP2 00002cdb: ADD 00002cdc: DUP4 00002cdd: SWAP1 00002cde: MSTORE 00002cdf: PUSH1 0x64 00002ce1: ADD 00002ce2: JUMPDEST 00002ce3: PUSH1 0x40 00002ce5: MLOAD 00002ce6: DUP1 00002ce7: SWAP2 00002ce8: SUB 00002ce9: SWAP1 00002cea: REVERT 00002ceb: JUMPDEST 00002cec: PUSH2 0x2cf9 00002cef: DUP5 00002cf0: DUP5 00002cf1: DUP5 00002cf2: DUP5 00002cf3: SUB 00002cf4: PUSH0 00002cf5: PUSH2 0x3105 00002cf8: JUMP 00002cf9: JUMPDEST 00002cfa: POP 00002cfb: POP 00002cfc: POP 00002cfd: POP 00002cfe: JUMP 00002cff: JUMPDEST 00002d00: PUSH1 0x01 00002d02: PUSH1 0x01 00002d04: PUSH1 0xa0 00002d06: SHL 00002d07: SUB 00002d08: DUP4 00002d09: AND 00002d0a: PUSH2 0x2d28 00002d0d: JUMPI 00002d0e: PUSH1 0x40 00002d10: MLOAD 00002d11: PUSH4 0x4b637e8f 00002d16: PUSH1 0xe1 00002d18: SHL 00002d19: DUP2 00002d1a: MSTORE 00002d1b: PUSH0 00002d1c: PUSH1 0x04 00002d1e: DUP3 00002d1f: ADD 00002d20: MSTORE 00002d21: PUSH1 0x24 00002d23: ADD 00002d24: PUSH2 0x2ce2 00002d27: JUMP 00002d28: JUMPDEST 00002d29: PUSH1 0x01 00002d2b: PUSH1 0x01 00002d2d: PUSH1 0xa0 00002d2f: SHL 00002d30: SUB 00002d31: DUP3 00002d32: AND 00002d33: PUSH2 0x2d51 00002d36: JUMPI 00002d37: PUSH1 0x40 00002d39: MLOAD 00002d3a: PUSH4 0xec442f05 00002d3f: PUSH1 0xe0 00002d41: SHL 00002d42: DUP2 00002d43: MSTORE 00002d44: PUSH0 00002d45: PUSH1 0x04 00002d47: DUP3 00002d48: ADD 00002d49: MSTORE 00002d4a: PUSH1 0x24 00002d4c: ADD 00002d4d: PUSH2 0x2ce2 00002d50: JUMP 00002d51: JUMPDEST 00002d52: PUSH2 0x15eb 00002d55: DUP4 00002d56: DUP4 00002d57: DUP4 00002d58: PUSH2 0x31d7 00002d5b: JUMP 00002d5c: JUMPDEST 00002d5d: PUSH0 00002d5e: DUP3 00002d5f: DUP3 00002d60: MUL 00002d61: DUP4 00002d62: ISZERO 00002d63: DUP1 00002d64: ISZERO 00002d65: SWAP1 00002d66: PUSH2 0x2d7e 00002d69: JUMPI 00002d6a: POP 00002d6b: DUP3 00002d6c: DUP5 00002d6d: DUP3 00002d6e: DUP2 00002d6f: PUSH2 0x2d7a 00002d72: JUMPI 00002d73: PUSH2 0x2d7a 00002d76: PUSH2 0x3e27 00002d79: JUMP 00002d7a: JUMPDEST 00002d7b: DIV 00002d7c: EQ 00002d7d: ISZERO 00002d7e: JUMPDEST 00002d7f: ISZERO 00002d80: PUSH2 0x2d9c 00002d83: JUMPI 00002d84: PUSH1 0x40 00002d86: MLOAD 00002d87: PUSH4 0x202e377f 00002d8c: PUSH1 0xe0 00002d8e: SHL 00002d8f: DUP2 00002d90: MSTORE 00002d91: PUSH1 0x04 00002d93: ADD 00002d94: PUSH1 0x40 00002d96: MLOAD 00002d97: DUP1 00002d98: SWAP2 00002d99: SUB 00002d9a: SWAP1 00002d9b: REVERT 00002d9c: JUMPDEST 00002d9d: PUSH8 0x06f05b59d3b20000 00002da6: DUP2 00002da7: ADD 00002da8: DUP2 00002da9: DUP2 00002daa: LT 00002dab: ISZERO 00002dac: PUSH2 0x2dc8 00002daf: JUMPI 00002db0: PUSH1 0x40 00002db2: MLOAD 00002db3: PUSH4 0x202e377f 00002db8: PUSH1 0xe0 00002dba: SHL 00002dbb: DUP2 00002dbc: MSTORE 00002dbd: PUSH1 0x04 00002dbf: ADD 00002dc0: PUSH1 0x40 00002dc2: MLOAD 00002dc3: DUP1 00002dc4: SWAP2 00002dc5: SUB 00002dc6: SWAP1 00002dc7: REVERT 00002dc8: JUMPDEST 00002dc9: PUSH0 00002dca: PUSH8 0x0de0b6b3a7640000 00002dd3: DUP3 00002dd4: JUMPDEST 00002dd5: DIV 00002dd6: SWAP7 00002dd7: SWAP6 00002dd8: POP 00002dd9: POP 00002dda: POP 00002ddb: POP 00002ddc: POP 00002ddd: POP 00002dde: JUMP 00002ddf: JUMPDEST 00002de0: DUP1 00002de1: PUSH0 00002de2: DUP1 00002de3: MLOAD 00002de4: PUSH1 0x20 00002de6: PUSH2 0x3f08 00002de9: DUP4 00002dea: CODECOPY 00002deb: DUP2 00002dec: MLOAD 00002ded: SWAP2 00002dee: MSTORE 00002def: TSTORE 00002df0: POP 00002df1: JUMP 00002df2: JUMPDEST 00002df3: PUSH2 0x126f 00002df6: ADDRESS 00002df7: DUP3 00002df8: PUSH2 0x32fd 00002dfb: JUMP 00002dfc: JUMPDEST 00002dfd: PUSH2 0x2e06 00002e00: DUP3 00002e01: DUP3 00002e02: PUSH2 0x3331 00002e05: JUMP 00002e06: JUMPDEST 00002e07: POP 00002e08: POP 00002e09: JUMP 00002e0a: JUMPDEST 00002e0b: PUSH1 0x08 00002e0d: SLOAD 00002e0e: PUSH0 00002e0f: JUMPDEST 00002e10: DUP2 00002e11: DUP2 00002e12: LT 00002e13: ISZERO 00002e14: PUSH2 0x2e73 00002e17: JUMPI 00002e18: PUSH2 0x2e6b 00002e1b: PUSH32 0x000000000000000000000000c92e8bdf79f0507f65a392b0ab4667716bfe0110 00002e3c: PUSH0 00002e3d: NOT 00002e3e: PUSH1 0x08 00002e40: DUP5 00002e41: DUP2 00002e42: SLOAD 00002e43: DUP2 00002e44: LT 00002e45: PUSH2 0x2e50 00002e48: JUMPI 00002e49: PUSH2 0x2e50 00002e4c: PUSH2 0x3eae 00002e4f: JUMP 00002e50: JUMPDEST 00002e51: PUSH0 00002e52: SWAP2 00002e53: DUP3 00002e54: MSTORE 00002e55: PUSH1 0x20 00002e57: SWAP1 00002e58: SWAP2 00002e59: KECCAK256 00002e5a: ADD 00002e5b: SLOAD 00002e5c: PUSH1 0x01 00002e5e: PUSH1 0x01 00002e60: PUSH1 0xa0 00002e62: SHL 00002e63: SUB 00002e64: AND 00002e65: SWAP2 00002e66: SWAP1 00002e67: PUSH2 0x333c 00002e6a: JUMP 00002e6b: JUMPDEST 00002e6c: PUSH1 0x01 00002e6e: ADD 00002e6f: PUSH2 0x2e0f 00002e72: JUMP 00002e73: JUMPDEST 00002e74: POP 00002e75: PUSH32 0x000000000000000000000000f76c421bab7df8548604e60deccce50477c10462 00002e96: PUSH1 0x01 00002e98: PUSH1 0x01 00002e9a: PUSH1 0xa0 00002e9c: SHL 00002e9d: SUB 00002e9e: AND 00002e9f: PUSH4 0x52b8cb63 00002ea4: PUSH1 0x40 00002ea6: MLOAD 00002ea7: DUP2 00002ea8: PUSH4 0xffffffff 00002ead: AND 00002eae: PUSH1 0xe0 00002eb0: SHL 00002eb1: DUP2 00002eb2: MSTORE 00002eb3: PUSH1 0x04 00002eb5: ADD 00002eb6: PUSH0 00002eb7: PUSH1 0x40 00002eb9: MLOAD 00002eba: DUP1 00002ebb: DUP4 00002ebc: SUB 00002ebd: DUP2 00002ebe: PUSH0 00002ebf: DUP8 00002ec0: DUP1 00002ec1: EXTCODESIZE 00002ec2: ISZERO 00002ec3: DUP1 00002ec4: ISZERO 00002ec5: PUSH2 0x2ecc 00002ec8: JUMPI 00002ec9: PUSH0 00002eca: DUP1 00002ecb: REVERT 00002ecc: JUMPDEST 00002ecd: POP 00002ece: GAS 00002ecf: CALL 00002ed0: SWAP3 00002ed1: POP 00002ed2: POP 00002ed3: POP 00002ed4: DUP1 00002ed5: ISZERO 00002ed6: PUSH2 0x2edd 00002ed9: JUMPI 00002eda: POP 00002edb: PUSH1 0x01 00002edd: JUMPDEST 00002ede: PUSH2 0x126f 00002ee1: JUMPI 00002ee2: PUSH1 0x40 00002ee4: MLOAD 00002ee5: ADDRESS 00002ee6: SWAP1 00002ee7: PUSH32 0x0d03834d0d86c7f57e877af40e26f176dc31bd637535d4ba153d1ac9de88a7ea 00002f08: SWAP1 00002f09: PUSH0 00002f0a: SWAP1 00002f0b: LOG2 00002f0c: POP 00002f0d: JUMP 00002f0e: JUMPDEST 00002f0f: PUSH0 00002f10: DUP2 00002f11: PUSH0 00002f12: SUB 00002f13: PUSH2 0x2f2f 00002f16: JUMPI 00002f17: PUSH1 0x40 00002f19: MLOAD 00002f1a: PUSH4 0xabcf2e75 00002f1f: PUSH1 0xe0 00002f21: SHL 00002f22: DUP2 00002f23: MSTORE 00002f24: PUSH1 0x04 00002f26: ADD 00002f27: PUSH1 0x40 00002f29: MLOAD 00002f2a: DUP1 00002f2b: SWAP2 00002f2c: SUB 00002f2d: SWAP1 00002f2e: REVERT 00002f2f: JUMPDEST 00002f30: PUSH8 0x0de0b6b3a7640000 00002f39: DUP4 00002f3a: MUL 00002f3b: DUP4 00002f3c: ISZERO 00002f3d: DUP1 00002f3e: ISZERO 00002f3f: SWAP1 00002f40: PUSH2 0x2f60 00002f43: JUMPI 00002f44: POP 00002f45: PUSH8 0x0de0b6b3a7640000 00002f4e: DUP5 00002f4f: DUP3 00002f50: DUP2 00002f51: PUSH2 0x2f5c 00002f54: JUMPI 00002f55: PUSH2 0x2f5c 00002f58: PUSH2 0x3e27 00002f5b: JUMP 00002f5c: JUMPDEST 00002f5d: DIV 00002f5e: EQ 00002f5f: ISZERO 00002f60: JUMPDEST 00002f61: ISZERO 00002f62: PUSH2 0x2f7e 00002f65: JUMPI 00002f66: PUSH1 0x40 00002f68: MLOAD 00002f69: PUSH4 0x94fb03d7 00002f6e: PUSH1 0xe0 00002f70: SHL 00002f71: DUP2 00002f72: MSTORE 00002f73: PUSH1 0x04 00002f75: ADD 00002f76: PUSH1 0x40 00002f78: MLOAD 00002f79: DUP1 00002f7a: SWAP2 00002f7b: SUB 00002f7c: SWAP1 00002f7d: REVERT 00002f7e: JUMPDEST 00002f7f: PUSH1 0x01 00002f81: DUP4 00002f82: SWAP1 00002f83: SHR 00002f84: DUP2 00002f85: ADD 00002f86: DUP2 00002f87: DUP2 00002f88: LT 00002f89: ISZERO 00002f8a: PUSH2 0x2fa6 00002f8d: JUMPI 00002f8e: PUSH1 0x40 00002f90: MLOAD 00002f91: PUSH4 0x94fb03d7 00002f96: PUSH1 0xe0 00002f98: SHL 00002f99: DUP2 00002f9a: MSTORE 00002f9b: PUSH1 0x04 00002f9d: ADD 00002f9e: PUSH1 0x40 00002fa0: MLOAD 00002fa1: DUP1 00002fa2: SWAP2 00002fa3: SUB 00002fa4: SWAP1 00002fa5: REVERT 00002fa6: JUMPDEST 00002fa7: PUSH0 00002fa8: DUP5 00002fa9: DUP3 00002faa: DUP2 00002fab: PUSH2 0x2dd4 00002fae: JUMPI 00002faf: PUSH2 0x2dd4 00002fb2: PUSH2 0x3e27 00002fb5: JUMP 00002fb6: JUMPDEST 00002fb7: PUSH2 0x15eb 00002fba: PUSH1 0x01 00002fbc: PUSH1 0x01 00002fbe: PUSH1 0xa0 00002fc0: SHL 00002fc1: SUB 00002fc2: DUP5 00002fc3: AND 00002fc4: DUP4 00002fc5: ADDRESS 00002fc6: DUP5 00002fc7: PUSH2 0x33f9 00002fca: JUMP 00002fcb: JUMPDEST 00002fcc: PUSH0 00002fcd: DUP3 00002fce: DUP3 00002fcf: ADD 00002fd0: DUP4 00002fd1: DUP2 00002fd2: LT 00002fd3: ISZERO 00002fd4: PUSH2 0x0da3 00002fd7: JUMPI 00002fd8: PUSH1 0x40 00002fda: MLOAD 00002fdb: PUSH4 0xe468448f 00002fe0: PUSH1 0xe0 00002fe2: SHL 00002fe3: DUP2 00002fe4: MSTORE 00002fe5: PUSH1 0x04 00002fe7: ADD 00002fe8: PUSH1 0x40 00002fea: MLOAD 00002feb: DUP1 00002fec: SWAP2 00002fed: SUB 00002fee: SWAP1 00002fef: REVERT 00002ff0: JUMPDEST 00002ff1: PUSH0 00002ff2: DUP1 00002ff3: PUSH0 00002ff4: PUSH2 0x2ffd 00002ff7: DUP6 00002ff8: DUP6 00002ff9: PUSH2 0x3432 00002ffc: JUMP 00002ffd: JUMPDEST 00002ffe: SWAP2 00002fff: POP 00003000: SWAP2 00003001: POP 00003002: DUP1 00003003: ISZERO 00003004: PUSH2 0x3020 00003007: JUMPI 00003008: PUSH1 0x40 0000300a: MLOAD 0000300b: PUSH4 0x0a5c778b 00003010: PUSH1 0xe3 00003012: SHL 00003013: DUP2 00003014: MSTORE 00003015: PUSH1 0x04 00003017: ADD 00003018: PUSH1 0x40 0000301a: MLOAD 0000301b: DUP1 0000301c: SWAP2 0000301d: SUB 0000301e: SWAP1 0000301f: REVERT 00003020: JUMPDEST 00003021: POP 00003022: SWAP4 00003023: SWAP3 00003024: POP 00003025: POP 00003026: POP 00003027: JUMP 00003028: JUMPDEST 00003029: PUSH2 0x15eb 0000302c: PUSH1 0x01 0000302e: PUSH1 0x01 00003030: PUSH1 0xa0 00003032: SHL 00003033: SUB 00003034: DUP5 00003035: AND 00003036: DUP4 00003037: DUP4 00003038: PUSH2 0x3455 0000303b: JUMP 0000303c: JUMPDEST 0000303d: PUSH2 0x2e06 00003040: DUP3 00003041: DUP3 00003042: PUSH2 0x3486 00003045: JUMP 00003046: JUMPDEST 00003047: PUSH2 0x126f 0000304a: ADDRESS 0000304b: DUP3 0000304c: PUSH2 0x3491 0000304f: JUMP 00003050: JUMPDEST 00003051: PUSH0 00003052: PUSH1 0x01 00003054: DUP4 00003055: LT 00003056: ISZERO 00003057: PUSH2 0x3073 0000305a: JUMPI 0000305b: PUSH1 0x40 0000305d: MLOAD 0000305e: PUSH4 0x5567969f 00003063: PUSH1 0xe1 00003065: SHL 00003066: DUP2 00003067: MSTORE 00003068: PUSH1 0x04 0000306a: ADD 0000306b: PUSH1 0x40 0000306d: MLOAD 0000306e: DUP1 0000306f: SWAP2 00003070: SUB 00003071: SWAP1 00003072: REVERT 00003073: JUMPDEST 00003074: PUSH8 0x1bc16d674ec7ffff 0000307d: DUP4 0000307e: GT 0000307f: ISZERO 00003080: PUSH2 0x309c 00003083: JUMPI 00003084: PUSH1 0x40 00003086: MLOAD 00003087: PUSH4 0x8554775f 0000308c: PUSH1 0xe0 0000308e: SHL 0000308f: DUP2 00003090: MSTORE 00003091: PUSH1 0x04 00003093: ADD 00003094: PUSH1 0x40 00003096: MLOAD 00003097: DUP1 00003098: SWAP2 00003099: SUB 0000309a: SWAP1 0000309b: REVERT 0000309c: JUMPDEST 0000309d: PUSH8 0x0de0b6b3a7640000 000030a6: DUP1 000030a7: DUP4 000030a8: DIV 000030a9: MUL 000030aa: PUSH0 000030ab: PUSH2 0x30b4 000030ae: DUP5 000030af: DUP4 000030b0: PUSH2 0x2ff0 000030b3: JUMP 000030b4: JUMPDEST 000030b5: SWAP1 000030b6: POP 000030b7: PUSH0 000030b8: PUSH2 0x30cb 000030bb: DUP7 000030bc: PUSH8 0x0de0b6b3a7640000 000030c5: DUP6 000030c6: DIV 000030c7: PUSH2 0x34c5 000030ca: JUMP 000030cb: JUMPDEST 000030cc: SWAP1 000030cd: POP 000030ce: DUP2 000030cf: PUSH0 000030d0: SUB 000030d1: PUSH2 0x30de 000030d4: JUMPI 000030d5: SWAP3 000030d6: POP 000030d7: PUSH2 0x08e9 000030da: SWAP2 000030db: POP 000030dc: POP 000030dd: JUMP 000030de: JUMPDEST 000030df: PUSH0 000030e0: PUSH2 0x30ee 000030e3: DUP8 000030e4: DUP5 000030e5: PUSH4 0x05f5e100 000030ea: PUSH2 0x351d 000030ed: JUMP 000030ee: JUMPDEST 000030ef: SWAP1 000030f0: POP 000030f1: PUSH2 0x30fa 000030f4: DUP3 000030f5: DUP3 000030f6: PUSH2 0x2d5c 000030f9: JUMP 000030fa: JUMPDEST 000030fb: SWAP8 000030fc: SWAP7 000030fd: POP 000030fe: POP 000030ff: POP 00003100: POP 00003101: POP 00003102: POP 00003103: POP 00003104: JUMP 00003105: JUMPDEST 00003106: PUSH1 0x01 00003108: PUSH1 0x01 0000310a: PUSH1 0xa0 0000310c: SHL 0000310d: SUB 0000310e: DUP5 0000310f: AND 00003110: PUSH2 0x312e 00003113: JUMPI 00003114: PUSH1 0x40 00003116: MLOAD 00003117: PUSH4 0xe602df05 0000311c: PUSH1 0xe0 0000311e: SHL 0000311f: DUP2 00003120: MSTORE 00003121: PUSH0 00003122: PUSH1 0x04 00003124: DUP3 00003125: ADD 00003126: MSTORE 00003127: PUSH1 0x24 00003129: ADD 0000312a: PUSH2 0x2ce2 0000312d: JUMP 0000312e: JUMPDEST 0000312f: PUSH1 0x01 00003131: PUSH1 0x01 00003133: PUSH1 0xa0 00003135: SHL 00003136: SUB 00003137: DUP4 00003138: AND 00003139: PUSH2 0x3157 0000313c: JUMPI 0000313d: PUSH1 0x40 0000313f: MLOAD 00003140: PUSH4 0x4a1406b1 00003145: PUSH1 0xe1 00003147: SHL 00003148: DUP2 00003149: MSTORE 0000314a: PUSH0 0000314b: PUSH1 0x04 0000314d: DUP3 0000314e: ADD 0000314f: MSTORE 00003150: PUSH1 0x24 00003152: ADD 00003153: PUSH2 0x2ce2 00003156: JUMP 00003157: JUMPDEST 00003158: PUSH1 0x01 0000315a: PUSH1 0x01 0000315c: PUSH1 0xa0 0000315e: SHL 0000315f: SUB 00003160: DUP1 00003161: DUP6 00003162: AND 00003163: PUSH0 00003164: SWAP1 00003165: DUP2 00003166: MSTORE 00003167: PUSH1 0x01 00003169: PUSH1 0x20 0000316b: SWAP1 0000316c: DUP2 0000316d: MSTORE 0000316e: PUSH1 0x40 00003170: DUP1 00003171: DUP4 00003172: KECCAK256 00003173: SWAP4 00003174: DUP8 00003175: AND 00003176: DUP4 00003177: MSTORE 00003178: SWAP3 00003179: SWAP1 0000317a: MSTORE 0000317b: KECCAK256 0000317c: DUP3 0000317d: SWAP1 0000317e: SSTORE 0000317f: DUP1 00003180: ISZERO 00003181: PUSH2 0x2cf9 00003184: JUMPI 00003185: DUP3 00003186: PUSH1 0x01 00003188: PUSH1 0x01 0000318a: PUSH1 0xa0 0000318c: SHL 0000318d: SUB 0000318e: AND 0000318f: DUP5 00003190: PUSH1 0x01 00003192: PUSH1 0x01 00003194: PUSH1 0xa0 00003196: SHL 00003197: SUB 00003198: AND 00003199: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 000031ba: DUP5 000031bb: PUSH1 0x40 000031bd: MLOAD 000031be: PUSH2 0x31c9 000031c1: SWAP2 000031c2: DUP2 000031c3: MSTORE 000031c4: PUSH1 0x20 000031c6: ADD 000031c7: SWAP1 000031c8: JUMP 000031c9: JUMPDEST 000031ca: PUSH1 0x40 000031cc: MLOAD 000031cd: DUP1 000031ce: SWAP2 000031cf: SUB 000031d0: SWAP1 000031d1: LOG3 000031d2: POP 000031d3: POP 000031d4: POP 000031d5: POP 000031d6: JUMP 000031d7: JUMPDEST 000031d8: PUSH1 0x01 000031da: PUSH1 0x01 000031dc: PUSH1 0xa0 000031de: SHL 000031df: SUB 000031e0: DUP4 000031e1: AND 000031e2: PUSH2 0x3201 000031e5: JUMPI 000031e6: DUP1 000031e7: PUSH1 0x02 000031e9: PUSH0 000031ea: DUP3 000031eb: DUP3 000031ec: SLOAD 000031ed: PUSH2 0x31f6 000031f0: SWAP2 000031f1: SWAP1 000031f2: PUSH2 0x3e5a 000031f5: JUMP 000031f6: JUMPDEST 000031f7: SWAP1 000031f8: SWAP2 000031f9: SSTORE 000031fa: POP 000031fb: PUSH2 0x3271 000031fe: SWAP1 000031ff: POP 00003200: JUMP 00003201: JUMPDEST 00003202: PUSH1 0x01 00003204: PUSH1 0x01 00003206: PUSH1 0xa0 00003208: SHL 00003209: SUB 0000320a: DUP4 0000320b: AND 0000320c: PUSH0 0000320d: SWAP1 0000320e: DUP2 0000320f: MSTORE 00003210: PUSH1 0x20 00003212: DUP2 00003213: SWAP1 00003214: MSTORE 00003215: PUSH1 0x40 00003217: SWAP1 00003218: KECCAK256 00003219: SLOAD 0000321a: DUP2 0000321b: DUP2 0000321c: LT 0000321d: ISZERO 0000321e: PUSH2 0x3253 00003221: JUMPI 00003222: PUSH1 0x40 00003224: MLOAD 00003225: PUSH4 0x391434e3 0000322a: PUSH1 0xe2 0000322c: SHL 0000322d: DUP2 0000322e: MSTORE 0000322f: PUSH1 0x01 00003231: PUSH1 0x01 00003233: PUSH1 0xa0 00003235: SHL 00003236: SUB 00003237: DUP6 00003238: AND 00003239: PUSH1 0x04 0000323b: DUP3 0000323c: ADD 0000323d: MSTORE 0000323e: PUSH1 0x24 00003240: DUP2 00003241: ADD 00003242: DUP3 00003243: SWAP1 00003244: MSTORE 00003245: PUSH1 0x44 00003247: DUP2 00003248: ADD 00003249: DUP4 0000324a: SWAP1 0000324b: MSTORE 0000324c: PUSH1 0x64 0000324e: ADD 0000324f: PUSH2 0x2ce2 00003252: JUMP 00003253: JUMPDEST 00003254: PUSH1 0x01 00003256: PUSH1 0x01 00003258: PUSH1 0xa0 0000325a: SHL 0000325b: SUB 0000325c: DUP5 0000325d: AND 0000325e: PUSH0 0000325f: SWAP1 00003260: DUP2 00003261: MSTORE 00003262: PUSH1 0x20 00003264: DUP2 00003265: SWAP1 00003266: MSTORE 00003267: PUSH1 0x40 00003269: SWAP1 0000326a: KECCAK256 0000326b: SWAP1 0000326c: DUP3 0000326d: SWAP1 0000326e: SUB 0000326f: SWAP1 00003270: SSTORE 00003271: JUMPDEST 00003272: PUSH1 0x01 00003274: PUSH1 0x01 00003276: PUSH1 0xa0 00003278: SHL 00003279: SUB 0000327a: DUP3 0000327b: AND 0000327c: PUSH2 0x328d 0000327f: JUMPI 00003280: PUSH1 0x02 00003282: DUP1 00003283: SLOAD 00003284: DUP3 00003285: SWAP1 00003286: SUB 00003287: SWAP1 00003288: SSTORE 00003289: PUSH2 0x32ab 0000328c: JUMP 0000328d: JUMPDEST 0000328e: PUSH1 0x01 00003290: PUSH1 0x01 00003292: PUSH1 0xa0 00003294: SHL 00003295: SUB 00003296: DUP3 00003297: AND 00003298: PUSH0 00003299: SWAP1 0000329a: DUP2 0000329b: MSTORE 0000329c: PUSH1 0x20 0000329e: DUP2 0000329f: SWAP1 000032a0: MSTORE 000032a1: PUSH1 0x40 000032a3: SWAP1 000032a4: KECCAK256 000032a5: DUP1 000032a6: SLOAD 000032a7: DUP3 000032a8: ADD 000032a9: SWAP1 000032aa: SSTORE 000032ab: JUMPDEST 000032ac: DUP2 000032ad: PUSH1 0x01 000032af: PUSH1 0x01 000032b1: PUSH1 0xa0 000032b3: SHL 000032b4: SUB 000032b5: AND 000032b6: DUP4 000032b7: PUSH1 0x01 000032b9: PUSH1 0x01 000032bb: PUSH1 0xa0 000032bd: SHL 000032be: SUB 000032bf: AND 000032c0: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000032e1: DUP4 000032e2: PUSH1 0x40 000032e4: MLOAD 000032e5: PUSH2 0x32f0 000032e8: SWAP2 000032e9: DUP2 000032ea: MSTORE 000032eb: PUSH1 0x20 000032ed: ADD 000032ee: SWAP1 000032ef: JUMP 000032f0: JUMPDEST 000032f1: PUSH1 0x40 000032f3: MLOAD 000032f4: DUP1 000032f5: SWAP2 000032f6: SUB 000032f7: SWAP1 000032f8: LOG3 000032f9: POP 000032fa: POP 000032fb: POP 000032fc: JUMP 000032fd: JUMPDEST 000032fe: PUSH1 0x01 00003300: PUSH1 0x01 00003302: PUSH1 0xa0 00003304: SHL 00003305: SUB 00003306: DUP3 00003307: AND 00003308: PUSH2 0x3326 0000330b: JUMPI 0000330c: PUSH1 0x40 0000330e: MLOAD 0000330f: PUSH4 0xec442f05 00003314: PUSH1 0xe0 00003316: SHL 00003317: DUP2 00003318: MSTORE 00003319: PUSH0 0000331a: PUSH1 0x04 0000331c: DUP3 0000331d: ADD 0000331e: MSTORE 0000331f: PUSH1 0x24 00003321: ADD 00003322: PUSH2 0x2ce2 00003325: JUMP 00003326: JUMPDEST 00003327: PUSH2 0x2e06 0000332a: PUSH0 0000332b: DUP4 0000332c: DUP4 0000332d: PUSH2 0x31d7 00003330: JUMP 00003331: JUMPDEST 00003332: PUSH2 0x2e06 00003335: ADDRESS 00003336: DUP4 00003337: DUP4 00003338: PUSH2 0x2cff 0000333b: JUMP 0000333c: JUMPDEST 0000333d: PUSH1 0x40 0000333f: DUP1 00003340: MLOAD 00003341: PUSH1 0x01 00003343: PUSH1 0x01 00003345: PUSH1 0xa0 00003347: SHL 00003348: SUB 00003349: DUP5 0000334a: AND 0000334b: PUSH1 0x24 0000334d: DUP3 0000334e: ADD 0000334f: MSTORE 00003350: PUSH1 0x44 00003352: DUP1 00003353: DUP3 00003354: ADD 00003355: DUP5 00003356: SWAP1 00003357: MSTORE 00003358: DUP3 00003359: MLOAD 0000335a: DUP1 0000335b: DUP4 0000335c: SUB 0000335d: SWAP1 0000335e: SWAP2 0000335f: ADD 00003360: DUP2 00003361: MSTORE 00003362: PUSH1 0x64 00003364: SWAP1 00003365: SWAP2 00003366: ADD 00003367: SWAP1 00003368: SWAP2 00003369: MSTORE 0000336a: PUSH1 0x20 0000336c: DUP2 0000336d: ADD 0000336e: DUP1 0000336f: MLOAD 00003370: PUSH1 0x01 00003372: PUSH1 0x01 00003374: PUSH1 0xe0 00003376: SHL 00003377: SUB 00003378: AND 00003379: PUSH4 0x095ea7b3 0000337e: PUSH1 0xe0 00003380: SHL 00003381: OR 00003382: SWAP1 00003383: MSTORE 00003384: PUSH2 0x338d 00003387: DUP5 00003388: DUP3 00003389: PUSH2 0x35f9 0000338c: JUMP 0000338d: JUMPDEST 0000338e: PUSH2 0x2cf9 00003391: JUMPI 00003392: PUSH1 0x40 00003394: MLOAD 00003395: PUSH1 0x01 00003397: PUSH1 0x01 00003399: PUSH1 0xa0 0000339b: SHL 0000339c: SUB 0000339d: DUP5 0000339e: DUP2 0000339f: AND 000033a0: PUSH1 0x24 000033a2: DUP4 000033a3: ADD 000033a4: MSTORE 000033a5: PUSH0 000033a6: PUSH1 0x44 000033a8: DUP4 000033a9: ADD 000033aa: MSTORE 000033ab: PUSH2 0x33ef 000033ae: SWAP2 000033af: DUP7 000033b0: SWAP2 000033b1: DUP3 000033b2: AND 000033b3: SWAP1 000033b4: PUSH4 0x095ea7b3 000033b9: SWAP1 000033ba: PUSH1 0x64 000033bc: ADD 000033bd: JUMPDEST 000033be: PUSH1 0x40 000033c0: MLOAD 000033c1: PUSH1 0x20 000033c3: DUP2 000033c4: DUP4 000033c5: SUB 000033c6: SUB 000033c7: DUP2 000033c8: MSTORE 000033c9: SWAP1 000033ca: PUSH1 0x40 000033cc: MSTORE 000033cd: SWAP2 000033ce: POP 000033cf: PUSH1 0xe0 000033d1: SHL 000033d2: PUSH1 0x20 000033d4: DUP3 000033d5: ADD 000033d6: DUP1 000033d7: MLOAD 000033d8: PUSH1 0x01 000033da: PUSH1 0x01 000033dc: PUSH1 0xe0 000033de: SHL 000033df: SUB 000033e0: DUP4 000033e1: DUP2 000033e2: DUP4 000033e3: AND 000033e4: OR 000033e5: DUP4 000033e6: MSTORE 000033e7: POP 000033e8: POP 000033e9: POP 000033ea: POP 000033eb: PUSH2 0x3696 000033ee: JUMP 000033ef: JUMPDEST 000033f0: PUSH2 0x2cf9 000033f3: DUP5 000033f4: DUP3 000033f5: PUSH2 0x3696 000033f8: JUMP 000033f9: JUMPDEST 000033fa: PUSH1 0x40 000033fc: MLOAD 000033fd: PUSH1 0x01 000033ff: PUSH1 0x01 00003401: PUSH1 0xa0 00003403: SHL 00003404: SUB 00003405: DUP5 00003406: DUP2 00003407: AND 00003408: PUSH1 0x24 0000340a: DUP4 0000340b: ADD 0000340c: MSTORE 0000340d: DUP4 0000340e: DUP2 0000340f: AND 00003410: PUSH1 0x44 00003412: DUP4 00003413: ADD 00003414: MSTORE 00003415: PUSH1 0x64 00003417: DUP3 00003418: ADD 00003419: DUP4 0000341a: SWAP1 0000341b: MSTORE 0000341c: PUSH2 0x2cf9 0000341f: SWAP2 00003420: DUP7 00003421: SWAP2 00003422: DUP3 00003423: AND 00003424: SWAP1 00003425: PUSH4 0x23b872dd 0000342a: SWAP1 0000342b: PUSH1 0x84 0000342d: ADD 0000342e: PUSH2 0x33bd 00003431: JUMP 00003432: JUMPDEST 00003433: PUSH0 00003434: DUP1 00003435: DUP3 00003436: DUP5 00003437: LT 00003438: PUSH2 0x3446 0000343b: JUMPI 0000343c: POP 0000343d: POP 0000343e: DUP1 0000343f: DUP3 00003440: SUB 00003441: PUSH0 00003442: PUSH2 0x344e 00003445: JUMP 00003446: JUMPDEST 00003447: POP 00003448: POP 00003449: DUP2 0000344a: DUP2 0000344b: SUB 0000344c: PUSH1 0x01 0000344e: JUMPDEST 0000344f: SWAP3 00003450: POP 00003451: SWAP3 00003452: SWAP1 00003453: POP 00003454: JUMP 00003455: JUMPDEST 00003456: PUSH1 0x40 00003458: MLOAD 00003459: PUSH1 0x01 0000345b: PUSH1 0x01 0000345d: PUSH1 0xa0 0000345f: SHL 00003460: SUB 00003461: DUP4 00003462: DUP2 00003463: AND 00003464: PUSH1 0x24 00003466: DUP4 00003467: ADD 00003468: MSTORE 00003469: PUSH1 0x44 0000346b: DUP3 0000346c: ADD 0000346d: DUP4 0000346e: SWAP1 0000346f: MSTORE 00003470: PUSH2 0x15eb 00003473: SWAP2 00003474: DUP6 00003475: SWAP2 00003476: DUP3 00003477: AND 00003478: SWAP1 00003479: PUSH4 0xa9059cbb 0000347e: SWAP1 0000347f: PUSH1 0x64 00003481: ADD 00003482: PUSH2 0x33bd 00003485: JUMP 00003486: JUMPDEST 00003487: PUSH2 0x2e06 0000348a: DUP3 0000348b: ADDRESS 0000348c: DUP4 0000348d: PUSH2 0x2cff 00003490: JUMP 00003491: JUMPDEST 00003492: PUSH1 0x01 00003494: PUSH1 0x01 00003496: PUSH1 0xa0 00003498: SHL 00003499: SUB 0000349a: DUP3 0000349b: AND 0000349c: PUSH2 0x34ba 0000349f: JUMPI 000034a0: PUSH1 0x40 000034a2: MLOAD 000034a3: PUSH4 0x4b637e8f 000034a8: PUSH1 0xe1 000034aa: SHL 000034ab: DUP2 000034ac: MSTORE 000034ad: PUSH0 000034ae: PUSH1 0x04 000034b0: DUP3 000034b1: ADD 000034b2: MSTORE 000034b3: PUSH1 0x24 000034b5: ADD 000034b6: PUSH2 0x2ce2 000034b9: JUMP 000034ba: JUMPDEST 000034bb: PUSH2 0x2e06 000034be: DUP3 000034bf: PUSH0 000034c0: DUP4 000034c1: PUSH2 0x31d7 000034c4: JUMP 000034c5: JUMPDEST 000034c6: PUSH0 000034c7: DUP1 000034c8: PUSH1 0x02 000034ca: DUP4 000034cb: MOD 000034cc: PUSH0 000034cd: SUB 000034ce: PUSH2 0x34df 000034d1: JUMPI 000034d2: PUSH8 0x0de0b6b3a7640000 000034db: PUSH2 0x34e1 000034de: JUMP 000034df: JUMPDEST 000034e0: DUP4 000034e1: JUMPDEST 000034e2: SWAP1 000034e3: POP 000034e4: PUSH1 0x02 000034e6: DUP4 000034e7: DIV 000034e8: SWAP3 000034e9: POP 000034ea: JUMPDEST 000034eb: DUP3 000034ec: ISZERO 000034ed: PUSH2 0x0da3 000034f0: JUMPI 000034f1: PUSH2 0x34fa 000034f4: DUP5 000034f5: DUP6 000034f6: PUSH2 0x2d5c 000034f9: JUMP 000034fa: JUMPDEST 000034fb: SWAP4 000034fc: POP 000034fd: PUSH1 0x02 000034ff: DUP4 00003500: MOD 00003501: ISZERO 00003502: PUSH2 0x3512 00003505: JUMPI 00003506: PUSH2 0x350f 00003509: DUP2 0000350a: DUP6 0000350b: PUSH2 0x2d5c 0000350e: JUMP 0000350f: JUMPDEST 00003510: SWAP1 00003511: POP 00003512: JUMPDEST 00003513: PUSH1 0x02 00003515: DUP4 00003516: DIV 00003517: SWAP3 00003518: POP 00003519: PUSH2 0x34ea 0000351c: JUMP 0000351d: JUMPDEST 0000351e: PUSH0 0000351f: DUP3 00003520: DUP2 00003521: DUP1 00003522: PUSH2 0x3533 00003525: DUP8 00003526: PUSH8 0x0de0b6b3a7640000 0000352f: PUSH2 0x3432 00003532: JUMP 00003533: JUMPDEST 00003534: SWAP1 00003535: SWAP3 00003536: POP 00003537: SWAP1 00003538: POP 00003539: PUSH8 0x0de0b6b3a7640000 00003542: DUP1 00003543: PUSH0 00003544: PUSH1 0x01 00003546: JUMPDEST 00003547: DUP9 00003548: DUP5 00003549: LT 0000354a: PUSH2 0x35ea 0000354d: JUMPI 0000354e: PUSH0 0000354f: PUSH8 0x0de0b6b3a7640000 00003558: DUP3 00003559: MUL 0000355a: SWAP1 0000355b: POP 0000355c: PUSH0 0000355d: DUP1 0000355e: PUSH2 0x3578 00003561: DUP11 00003562: PUSH2 0x3573 00003565: DUP6 00003566: PUSH8 0x0de0b6b3a7640000 0000356f: PUSH2 0x2ff0 00003572: JUMP 00003573: JUMPDEST 00003574: PUSH2 0x3432 00003577: JUMP 00003578: JUMPDEST 00003579: SWAP2 0000357a: POP 0000357b: SWAP2 0000357c: POP 0000357d: PUSH2 0x358a 00003580: DUP8 00003581: PUSH2 0x1856 00003584: DUP5 00003585: DUP13 00003586: PUSH2 0x2d5c 00003589: JUMP 0000358a: JUMPDEST 0000358b: SWAP7 0000358c: POP 0000358d: PUSH2 0x3596 00003590: DUP8 00003591: DUP5 00003592: PUSH2 0x2f0e 00003595: JUMP 00003596: JUMPDEST 00003597: SWAP7 00003598: POP 00003599: DUP7 0000359a: PUSH0 0000359b: SUB 0000359c: PUSH2 0x35a7 0000359f: JUMPI 000035a0: POP 000035a1: POP 000035a2: POP 000035a3: PUSH2 0x35ea 000035a6: JUMP 000035a7: JUMPDEST 000035a8: DUP8 000035a9: ISZERO 000035aa: PUSH2 0x35b1 000035ad: JUMPI 000035ae: SWAP4 000035af: ISZERO 000035b0: SWAP4 000035b1: JUMPDEST 000035b2: DUP1 000035b3: ISZERO 000035b4: PUSH2 0x35bb 000035b7: JUMPI 000035b8: SWAP4 000035b9: ISZERO 000035ba: SWAP4 000035bb: JUMPDEST 000035bc: DUP5 000035bd: ISZERO 000035be: PUSH2 0x35d2 000035c1: JUMPI 000035c2: PUSH2 0x35cb 000035c5: DUP7 000035c6: DUP9 000035c7: PUSH2 0x2ff0 000035ca: JUMP 000035cb: JUMPDEST 000035cc: SWAP6 000035cd: POP 000035ce: PUSH2 0x35df 000035d1: JUMP 000035d2: JUMPDEST 000035d3: PUSH2 0x35dc 000035d6: DUP7 000035d7: DUP9 000035d8: PUSH2 0x2fcb 000035db: JUMP 000035dc: JUMPDEST 000035dd: SWAP6 000035de: POP 000035df: JUMPDEST 000035e0: POP 000035e1: POP 000035e2: POP 000035e3: PUSH1 0x01 000035e5: ADD 000035e6: PUSH2 0x3546 000035e9: JUMP 000035ea: JUMPDEST 000035eb: POP 000035ec: SWAP1 000035ed: SWAP10 000035ee: SWAP9 000035ef: POP 000035f0: POP 000035f1: POP 000035f2: POP 000035f3: POP 000035f4: POP 000035f5: POP 000035f6: POP 000035f7: POP 000035f8: JUMP 000035f9: JUMPDEST 000035fa: PUSH0 000035fb: DUP1 000035fc: PUSH0 000035fd: DUP5 000035fe: PUSH1 0x01 00003600: PUSH1 0x01 00003602: PUSH1 0xa0 00003604: SHL 00003605: SUB 00003606: AND 00003607: DUP5 00003608: PUSH1 0x40 0000360a: MLOAD 0000360b: PUSH2 0x3614 0000360e: SWAP2 0000360f: SWAP1 00003610: PUSH2 0x3ed6 00003613: JUMP 00003614: JUMPDEST 00003615: PUSH0 00003616: PUSH1 0x40 00003618: MLOAD 00003619: DUP1 0000361a: DUP4 0000361b: SUB 0000361c: DUP2 0000361d: PUSH0 0000361e: DUP7 0000361f: GAS 00003620: CALL 00003621: SWAP2 00003622: POP 00003623: POP 00003624: RETURNDATASIZE 00003625: DUP1 00003626: PUSH0 00003627: DUP2 00003628: EQ 00003629: PUSH2 0x364d 0000362c: JUMPI 0000362d: PUSH1 0x40 0000362f: MLOAD 00003630: SWAP2 00003631: POP 00003632: PUSH1 0x1f 00003634: NOT 00003635: PUSH1 0x3f 00003637: RETURNDATASIZE 00003638: ADD 00003639: AND 0000363a: DUP3 0000363b: ADD 0000363c: PUSH1 0x40 0000363e: MSTORE 0000363f: RETURNDATASIZE 00003640: DUP3 00003641: MSTORE 00003642: RETURNDATASIZE 00003643: PUSH0 00003644: PUSH1 0x20 00003646: DUP5 00003647: ADD 00003648: RETURNDATACOPY 00003649: PUSH2 0x3652 0000364c: JUMP 0000364d: JUMPDEST 0000364e: PUSH1 0x60 00003650: SWAP2 00003651: POP 00003652: JUMPDEST 00003653: POP 00003654: SWAP2 00003655: POP 00003656: SWAP2 00003657: POP 00003658: DUP2 00003659: DUP1 0000365a: ISZERO 0000365b: PUSH2 0x367c 0000365e: JUMPI 0000365f: POP 00003660: DUP1 00003661: MLOAD 00003662: ISZERO 00003663: DUP1 00003664: PUSH2 0x367c 00003667: JUMPI 00003668: POP 00003669: DUP1 0000366a: DUP1 0000366b: PUSH1 0x20 0000366d: ADD 0000366e: SWAP1 0000366f: MLOAD 00003670: DUP2 00003671: ADD 00003672: SWAP1 00003673: PUSH2 0x367c 00003676: SWAP2 00003677: SWAP1 00003678: PUSH2 0x3eec 0000367b: JUMP 0000367c: JUMPDEST 0000367d: DUP1 0000367e: ISZERO 0000367f: PUSH2 0x0a9b 00003682: JUMPI 00003683: POP 00003684: POP 00003685: POP 00003686: POP 00003687: POP 00003688: PUSH1 0x01 0000368a: PUSH1 0x01 0000368c: PUSH1 0xa0 0000368e: SHL 0000368f: SUB 00003690: AND 00003691: EXTCODESIZE 00003692: ISZERO 00003693: ISZERO 00003694: SWAP1 00003695: JUMP 00003696: JUMPDEST 00003697: PUSH0 00003698: PUSH2 0x36aa 0000369b: PUSH1 0x01 0000369d: PUSH1 0x01 0000369f: PUSH1 0xa0 000036a1: SHL 000036a2: SUB 000036a3: DUP5 000036a4: AND 000036a5: DUP4 000036a6: PUSH2 0x36f7 000036a9: JUMP 000036aa: JUMPDEST 000036ab: SWAP1 000036ac: POP 000036ad: DUP1 000036ae: MLOAD 000036af: PUSH0 000036b0: EQ 000036b1: ISZERO 000036b2: DUP1 000036b3: ISZERO 000036b4: PUSH2 0x36ce 000036b7: JUMPI 000036b8: POP 000036b9: DUP1 000036ba: DUP1 000036bb: PUSH1 0x20 000036bd: ADD 000036be: SWAP1 000036bf: MLOAD 000036c0: DUP2 000036c1: ADD 000036c2: SWAP1 000036c3: PUSH2 0x36cc 000036c6: SWAP2 000036c7: SWAP1 000036c8: PUSH2 0x3eec 000036cb: JUMP 000036cc: JUMPDEST 000036cd: ISZERO 000036ce: JUMPDEST 000036cf: ISZERO 000036d0: PUSH2 0x15eb 000036d3: JUMPI 000036d4: PUSH1 0x40 000036d6: MLOAD 000036d7: PUSH4 0x5274afe7 000036dc: PUSH1 0xe0 000036de: SHL 000036df: DUP2 000036e0: MSTORE 000036e1: PUSH1 0x01 000036e3: PUSH1 0x01 000036e5: PUSH1 0xa0 000036e7: SHL 000036e8: SUB 000036e9: DUP5 000036ea: AND 000036eb: PUSH1 0x04 000036ed: DUP3 000036ee: ADD 000036ef: MSTORE 000036f0: PUSH1 0x24 000036f2: ADD 000036f3: PUSH2 0x2ce2 000036f6: JUMP 000036f7: JUMPDEST 000036f8: PUSH1 0x60 000036fa: PUSH2 0x0da3 000036fd: DUP4 000036fe: DUP4 000036ff: PUSH0 00003700: DUP5 00003701: PUSH0 00003702: DUP1 00003703: DUP6 00003704: PUSH1 0x01 00003706: PUSH1 0x01 00003708: PUSH1 0xa0 0000370a: SHL 0000370b: SUB 0000370c: AND 0000370d: DUP5 0000370e: DUP7 0000370f: PUSH1 0x40 00003711: MLOAD 00003712: PUSH2 0x371b 00003715: SWAP2 00003716: SWAP1 00003717: PUSH2 0x3ed6 0000371a: JUMP 0000371b: JUMPDEST 0000371c: PUSH0 0000371d: PUSH1 0x40 0000371f: MLOAD 00003720: DUP1 00003721: DUP4 00003722: SUB 00003723: DUP2 00003724: DUP6 00003725: DUP8 00003726: GAS 00003727: CALL 00003728: SWAP3 00003729: POP 0000372a: POP 0000372b: POP 0000372c: RETURNDATASIZE 0000372d: DUP1 0000372e: PUSH0 0000372f: DUP2 00003730: EQ 00003731: PUSH2 0x3755 00003734: JUMPI 00003735: PUSH1 0x40 00003737: MLOAD 00003738: SWAP2 00003739: POP 0000373a: PUSH1 0x1f 0000373c: NOT 0000373d: PUSH1 0x3f 0000373f: RETURNDATASIZE 00003740: ADD 00003741: AND 00003742: DUP3 00003743: ADD 00003744: PUSH1 0x40 00003746: MSTORE 00003747: RETURNDATASIZE 00003748: DUP3 00003749: MSTORE 0000374a: RETURNDATASIZE 0000374b: PUSH0 0000374c: PUSH1 0x20 0000374e: DUP5 0000374f: ADD 00003750: RETURNDATACOPY 00003751: PUSH2 0x375a 00003754: JUMP 00003755: JUMPDEST 00003756: PUSH1 0x60 00003758: SWAP2 00003759: POP 0000375a: JUMPDEST 0000375b: POP 0000375c: SWAP2 0000375d: POP 0000375e: SWAP2 0000375f: POP 00003760: PUSH2 0x376a 00003763: DUP7 00003764: DUP4 00003765: DUP4 00003766: PUSH2 0x3774 00003769: JUMP 0000376a: JUMPDEST 0000376b: SWAP7 0000376c: SWAP6 0000376d: POP 0000376e: POP 0000376f: POP 00003770: POP 00003771: POP 00003772: POP 00003773: JUMP 00003774: JUMPDEST 00003775: PUSH1 0x60 00003777: DUP3 00003778: PUSH2 0x3789 0000377b: JUMPI 0000377c: PUSH2 0x3784 0000377f: DUP3 00003780: PUSH2 0x37d0 00003783: JUMP 00003784: JUMPDEST 00003785: PUSH2 0x0da3 00003788: JUMP 00003789: JUMPDEST 0000378a: DUP2 0000378b: MLOAD 0000378c: ISZERO 0000378d: DUP1 0000378e: ISZERO 0000378f: PUSH2 0x37a0 00003792: JUMPI 00003793: POP 00003794: PUSH1 0x01 00003796: PUSH1 0x01 00003798: PUSH1 0xa0 0000379a: SHL 0000379b: SUB 0000379c: DUP5 0000379d: AND 0000379e: EXTCODESIZE 0000379f: ISZERO 000037a0: JUMPDEST 000037a1: ISZERO 000037a2: PUSH2 0x37c9 000037a5: JUMPI 000037a6: PUSH1 0x40 000037a8: MLOAD 000037a9: PUSH4 0x9996b315 000037ae: PUSH1 0xe0 000037b0: SHL 000037b1: DUP2 000037b2: MSTORE 000037b3: PUSH1 0x01 000037b5: PUSH1 0x01 000037b7: PUSH1 0xa0 000037b9: SHL 000037ba: SUB 000037bb: DUP6 000037bc: AND 000037bd: PUSH1 0x04 000037bf: DUP3 000037c0: ADD 000037c1: MSTORE 000037c2: PUSH1 0x24 000037c4: ADD 000037c5: PUSH2 0x2ce2 000037c8: JUMP 000037c9: JUMPDEST 000037ca: POP 000037cb: DUP1 000037cc: PUSH2 0x0da3 000037cf: JUMP 000037d0: JUMPDEST 000037d1: DUP1 000037d2: MLOAD 000037d3: ISZERO 000037d4: PUSH2 0x37e0 000037d7: JUMPI 000037d8: DUP1 000037d9: MLOAD 000037da: DUP1 000037db: DUP3 000037dc: PUSH1 0x20 000037de: ADD 000037df: REVERT 000037e0: JUMPDEST 000037e1: PUSH1 0x40 000037e3: MLOAD 000037e4: PUSH4 0x0a12f521 000037e9: PUSH1 0xe1 000037eb: SHL 000037ec: DUP2 000037ed: MSTORE 000037ee: PUSH1 0x04 000037f0: ADD 000037f1: PUSH1 0x40 000037f3: MLOAD 000037f4: DUP1 000037f5: SWAP2 000037f6: SUB 000037f7: SWAP1 000037f8: REVERT 000037f9: JUMPDEST 000037fa: PUSH1 0x20 000037fc: DUP2 000037fd: MSTORE 000037fe: PUSH0 000037ff: DUP3 00003800: MLOAD 00003801: DUP1 00003802: PUSH1 0x20 00003804: DUP5 00003805: ADD 00003806: MSTORE 00003807: DUP1 00003808: PUSH1 0x20 0000380a: DUP6 0000380b: ADD 0000380c: PUSH1 0x40 0000380e: DUP6 0000380f: ADD 00003810: MCOPY 00003811: PUSH0 00003812: PUSH1 0x40 00003814: DUP3 00003815: DUP6 00003816: ADD 00003817: ADD 00003818: MSTORE 00003819: PUSH1 0x40 0000381b: PUSH1 0x1f 0000381d: NOT 0000381e: PUSH1 0x1f 00003820: DUP4 00003821: ADD 00003822: AND 00003823: DUP5 00003824: ADD 00003825: ADD 00003826: SWAP2 00003827: POP 00003828: POP 00003829: SWAP3 0000382a: SWAP2 0000382b: POP 0000382c: POP 0000382d: JUMP 0000382e: JUMPDEST 0000382f: PUSH1 0x01 00003831: PUSH1 0x01 00003833: PUSH1 0xa0 00003835: SHL 00003836: SUB 00003837: DUP2 00003838: AND 00003839: DUP2 0000383a: EQ 0000383b: PUSH2 0x126f 0000383e: JUMPI 0000383f: PUSH0 00003840: DUP1 00003841: REVERT 00003842: JUMPDEST 00003843: DUP1 00003844: CALLDATALOAD 00003845: PUSH2 0x1f56 00003848: DUP2 00003849: PUSH2 0x382e 0000384c: JUMP 0000384d: JUMPDEST 0000384e: PUSH0 0000384f: DUP1 00003850: PUSH1 0x40 00003852: DUP4 00003853: DUP6 00003854: SUB 00003855: SLT 00003856: ISZERO 00003857: PUSH2 0x385e 0000385a: JUMPI 0000385b: PUSH0 0000385c: DUP1 0000385d: REVERT 0000385e: JUMPDEST 0000385f: DUP3 00003860: CALLDATALOAD 00003861: PUSH2 0x3869 00003864: DUP2 00003865: PUSH2 0x382e 00003868: JUMP 00003869: JUMPDEST 0000386a: SWAP5 0000386b: PUSH1 0x20 0000386d: SWAP4 0000386e: SWAP1 0000386f: SWAP4 00003870: ADD 00003871: CALLDATALOAD 00003872: SWAP4 00003873: POP 00003874: POP 00003875: POP 00003876: JUMP 00003877: JUMPDEST 00003878: PUSH0 00003879: DUP1 0000387a: PUSH1 0x40 0000387c: DUP4 0000387d: DUP6 0000387e: SUB 0000387f: SLT 00003880: ISZERO 00003881: PUSH2 0x3888 00003884: JUMPI 00003885: PUSH0 00003886: DUP1 00003887: REVERT 00003888: JUMPDEST 00003889: DUP3 0000388a: CALLDATALOAD 0000388b: PUSH2 0x3893 0000388e: DUP2 0000388f: PUSH2 0x382e 00003892: JUMP 00003893: JUMPDEST 00003894: SWAP2 00003895: POP 00003896: PUSH1 0x20 00003898: DUP4 00003899: ADD 0000389a: CALLDATALOAD 0000389b: PUSH2 0x38a3 0000389e: DUP2 0000389f: PUSH2 0x382e 000038a2: JUMP 000038a3: JUMPDEST 000038a4: DUP1 000038a5: SWAP2 000038a6: POP 000038a7: POP 000038a8: SWAP3 000038a9: POP 000038aa: SWAP3 000038ab: SWAP1 000038ac: POP 000038ad: JUMP 000038ae: JUMPDEST 000038af: PUSH4 0x4e487b71 000038b4: PUSH1 0xe0 000038b6: SHL 000038b7: PUSH0 000038b8: MSTORE 000038b9: PUSH1 0x41 000038bb: PUSH1 0x04 000038bd: MSTORE 000038be: PUSH1 0x24 000038c0: PUSH0 000038c1: REVERT 000038c2: JUMPDEST 000038c3: PUSH1 0x40 000038c5: MLOAD 000038c6: PUSH2 0x0180 000038c9: DUP2 000038ca: ADD 000038cb: PUSH8 0xffffffffffffffff 000038d4: DUP2 000038d5: GT 000038d6: DUP3 000038d7: DUP3 000038d8: LT 000038d9: OR 000038da: ISZERO 000038db: PUSH2 0x38e6 000038de: JUMPI 000038df: PUSH2 0x38e6 000038e2: PUSH2 0x38ae 000038e5: JUMP 000038e6: JUMPDEST 000038e7: PUSH1 0x40 000038e9: MSTORE 000038ea: SWAP1 000038eb: JUMP 000038ec: JUMPDEST 000038ed: PUSH1 0x40 000038ef: MLOAD 000038f0: PUSH1 0x1f 000038f2: DUP3 000038f3: ADD 000038f4: PUSH1 0x1f 000038f6: NOT 000038f7: AND 000038f8: DUP2 000038f9: ADD 000038fa: PUSH8 0xffffffffffffffff 00003903: DUP2 00003904: GT 00003905: DUP3 00003906: DUP3 00003907: LT 00003908: OR 00003909: ISZERO 0000390a: PUSH2 0x3915 0000390d: JUMPI 0000390e: PUSH2 0x3915 00003911: PUSH2 0x38ae 00003914: JUMP 00003915: JUMPDEST 00003916: PUSH1 0x40 00003918: MSTORE 00003919: SWAP2 0000391a: SWAP1 0000391b: POP 0000391c: JUMP 0000391d: JUMPDEST 0000391e: PUSH0 0000391f: DUP1 00003920: PUSH1 0x40 00003922: DUP4 00003923: DUP6 00003924: SUB 00003925: SLT 00003926: ISZERO 00003927: PUSH2 0x392e 0000392a: JUMPI 0000392b: PUSH0 0000392c: DUP1 0000392d: REVERT 0000392e: JUMPDEST 0000392f: DUP3 00003930: CALLDATALOAD 00003931: SWAP2 00003932: POP 00003933: PUSH1 0x20 00003935: DUP1 00003936: DUP5 00003937: ADD 00003938: CALLDATALOAD 00003939: PUSH8 0xffffffffffffffff 00003942: DUP1 00003943: DUP3 00003944: GT 00003945: ISZERO 00003946: PUSH2 0x394d 00003949: JUMPI 0000394a: PUSH0 0000394b: DUP1 0000394c: REVERT 0000394d: JUMPDEST 0000394e: DUP2 0000394f: DUP7 00003950: ADD 00003951: SWAP2 00003952: POP 00003953: DUP7 00003954: PUSH1 0x1f 00003956: DUP4 00003957: ADD 00003958: SLT 00003959: PUSH2 0x3960 0000395c: JUMPI 0000395d: PUSH0 0000395e: DUP1 0000395f: REVERT 00003960: JUMPDEST 00003961: DUP2 00003962: CALLDATALOAD 00003963: DUP2 00003964: DUP2 00003965: GT 00003966: ISZERO 00003967: PUSH2 0x3972 0000396a: JUMPI 0000396b: PUSH2 0x3972 0000396e: PUSH2 0x38ae 00003971: JUMP 00003972: JUMPDEST 00003973: PUSH2 0x3984 00003976: PUSH1 0x1f 00003978: DUP3 00003979: ADD 0000397a: PUSH1 0x1f 0000397c: NOT 0000397d: AND 0000397e: DUP6 0000397f: ADD 00003980: PUSH2 0x38ec 00003983: JUMP 00003984: JUMPDEST 00003985: SWAP2 00003986: POP 00003987: DUP1 00003988: DUP3 00003989: MSTORE 0000398a: DUP8 0000398b: DUP5 0000398c: DUP3 0000398d: DUP6 0000398e: ADD 0000398f: ADD 00003990: GT 00003991: ISZERO 00003992: PUSH2 0x3999 00003995: JUMPI 00003996: PUSH0 00003997: DUP1 00003998: REVERT 00003999: JUMPDEST 0000399a: DUP1 0000399b: DUP5 0000399c: DUP5 0000399d: ADD 0000399e: DUP6 0000399f: DUP5 000039a0: ADD 000039a1: CALLDATACOPY 000039a2: PUSH0 000039a3: DUP5 000039a4: DUP3 000039a5: DUP5 000039a6: ADD 000039a7: ADD 000039a8: MSTORE 000039a9: POP 000039aa: DUP1 000039ab: SWAP4 000039ac: POP 000039ad: POP 000039ae: POP 000039af: POP 000039b0: SWAP3 000039b1: POP 000039b2: SWAP3 000039b3: SWAP1 000039b4: POP 000039b5: JUMP 000039b6: JUMPDEST 000039b7: PUSH0 000039b8: DUP1 000039b9: PUSH0 000039ba: PUSH1 0x60 000039bc: DUP5 000039bd: DUP7 000039be: SUB 000039bf: SLT 000039c0: ISZERO 000039c1: PUSH2 0x39c8 000039c4: JUMPI 000039c5: PUSH0 000039c6: DUP1 000039c7: REVERT 000039c8: JUMPDEST 000039c9: DUP4 000039ca: CALLDATALOAD 000039cb: PUSH2 0x39d3 000039ce: DUP2 000039cf: PUSH2 0x382e 000039d2: JUMP 000039d3: JUMPDEST 000039d4: SWAP3 000039d5: POP 000039d6: PUSH1 0x20 000039d8: DUP5 000039d9: ADD 000039da: CALLDATALOAD 000039db: PUSH2 0x39e3 000039de: DUP2 000039df: PUSH2 0x382e 000039e2: JUMP 000039e3: JUMPDEST 000039e4: SWAP3 000039e5: SWAP6 000039e6: SWAP3 000039e7: SWAP5 000039e8: POP 000039e9: POP 000039ea: POP 000039eb: PUSH1 0x40 000039ed: SWAP2 000039ee: SWAP1 000039ef: SWAP2 000039f0: ADD 000039f1: CALLDATALOAD 000039f2: SWAP1 000039f3: JUMP 000039f4: JUMPDEST 000039f5: PUSH4 0xffffffff 000039fa: DUP2 000039fb: AND 000039fc: DUP2 000039fd: EQ 000039fe: PUSH2 0x126f 00003a01: JUMPI 00003a02: PUSH0 00003a03: DUP1 00003a04: REVERT 00003a05: JUMPDEST 00003a06: DUP1 00003a07: CALLDATALOAD 00003a08: PUSH2 0x1f56 00003a0b: DUP2 00003a0c: PUSH2 0x39f4 00003a0f: JUMP 00003a10: JUMPDEST 00003a11: DUP1 00003a12: ISZERO 00003a13: ISZERO 00003a14: DUP2 00003a15: EQ 00003a16: PUSH2 0x126f 00003a19: JUMPI 00003a1a: PUSH0 00003a1b: DUP1 00003a1c: REVERT 00003a1d: JUMPDEST 00003a1e: DUP1 00003a1f: CALLDATALOAD 00003a20: PUSH2 0x1f56 00003a23: DUP2 00003a24: PUSH2 0x3a10 00003a27: JUMP 00003a28: JUMPDEST 00003a29: PUSH0 00003a2a: PUSH2 0x0180 00003a2d: DUP3 00003a2e: DUP5 00003a2f: SUB 00003a30: SLT 00003a31: ISZERO 00003a32: PUSH2 0x3a39 00003a35: JUMPI 00003a36: PUSH0 00003a37: DUP1 00003a38: REVERT 00003a39: JUMPDEST 00003a3a: PUSH2 0x3a41 00003a3d: PUSH2 0x38c2 00003a40: JUMP 00003a41: JUMPDEST 00003a42: PUSH2 0x3a4a 00003a45: DUP4 00003a46: PUSH2 0x3842 00003a49: JUMP 00003a4a: JUMPDEST 00003a4b: DUP2 00003a4c: MSTORE 00003a4d: PUSH2 0x3a58 00003a50: PUSH1 0x20 00003a52: DUP5 00003a53: ADD 00003a54: PUSH2 0x3842 00003a57: JUMP 00003a58: JUMPDEST 00003a59: PUSH1 0x20 00003a5b: DUP3 00003a5c: ADD 00003a5d: MSTORE 00003a5e: PUSH2 0x3a69 00003a61: PUSH1 0x40 00003a63: DUP5 00003a64: ADD 00003a65: PUSH2 0x3842 00003a68: JUMP 00003a69: JUMPDEST 00003a6a: PUSH1 0x40 00003a6c: DUP3 00003a6d: ADD 00003a6e: MSTORE 00003a6f: PUSH1 0x60 00003a71: DUP4 00003a72: ADD 00003a73: CALLDATALOAD 00003a74: PUSH1 0x60 00003a76: DUP3 00003a77: ADD 00003a78: MSTORE 00003a79: PUSH1 0x80 00003a7b: DUP4 00003a7c: ADD 00003a7d: CALLDATALOAD 00003a7e: PUSH1 0x80 00003a80: DUP3 00003a81: ADD 00003a82: MSTORE 00003a83: PUSH2 0x3a8e 00003a86: PUSH1 0xa0 00003a88: DUP5 00003a89: ADD 00003a8a: PUSH2 0x3a05 00003a8d: JUMP 00003a8e: JUMPDEST 00003a8f: PUSH1 0xa0 00003a91: DUP3 00003a92: ADD 00003a93: MSTORE 00003a94: PUSH1 0xc0 00003a96: DUP4 00003a97: ADD 00003a98: CALLDATALOAD 00003a99: PUSH1 0xc0 00003a9b: DUP3 00003a9c: ADD 00003a9d: MSTORE 00003a9e: PUSH1 0xe0 00003aa0: DUP4 00003aa1: ADD 00003aa2: CALLDATALOAD 00003aa3: PUSH1 0xe0 00003aa5: DUP3 00003aa6: ADD 00003aa7: MSTORE 00003aa8: PUSH2 0x0100 00003aab: DUP1 00003aac: DUP5 00003aad: ADD 00003aae: CALLDATALOAD 00003aaf: DUP2 00003ab0: DUP4 00003ab1: ADD 00003ab2: MSTORE 00003ab3: POP 00003ab4: PUSH2 0x0120 00003ab7: PUSH2 0x3ac1 00003aba: DUP2 00003abb: DUP6 00003abc: ADD 00003abd: PUSH2 0x3a1d 00003ac0: JUMP 00003ac1: JUMPDEST 00003ac2: SWAP1 00003ac3: DUP3 00003ac4: ADD 00003ac5: MSTORE 00003ac6: PUSH2 0x0140 00003ac9: DUP4 00003aca: DUP2 00003acb: ADD 00003acc: CALLDATALOAD 00003acd: SWAP1 00003ace: DUP3 00003acf: ADD 00003ad0: MSTORE 00003ad1: PUSH2 0x0160 00003ad4: SWAP3 00003ad5: DUP4 00003ad6: ADD 00003ad7: CALLDATALOAD 00003ad8: SWAP3 00003ad9: DUP2 00003ada: ADD 00003adb: SWAP3 00003adc: SWAP1 00003add: SWAP3 00003ade: MSTORE 00003adf: POP 00003ae0: SWAP2 00003ae1: SWAP1 00003ae2: POP 00003ae3: JUMP 00003ae4: JUMPDEST 00003ae5: PUSH0 00003ae6: PUSH1 0x20 00003ae8: DUP3 00003ae9: DUP5 00003aea: SUB 00003aeb: SLT 00003aec: ISZERO 00003aed: PUSH2 0x3af4 00003af0: JUMPI 00003af1: PUSH0 00003af2: DUP1 00003af3: REVERT 00003af4: JUMPDEST 00003af5: DUP2 00003af6: CALLDATALOAD 00003af7: PUSH2 0x0da3 00003afa: DUP2 00003afb: PUSH2 0x382e 00003afe: JUMP 00003aff: JUMPDEST 00003b00: PUSH0 00003b01: PUSH1 0x20 00003b03: DUP3 00003b04: DUP5 00003b05: SUB 00003b06: SLT 00003b07: ISZERO 00003b08: PUSH2 0x3b0f 00003b0b: JUMPI 00003b0c: PUSH0 00003b0d: DUP1 00003b0e: REVERT 00003b0f: JUMPDEST 00003b10: POP 00003b11: CALLDATALOAD 00003b12: SWAP2 00003b13: SWAP1 00003b14: POP 00003b15: JUMP 00003b16: JUMPDEST 00003b17: PUSH0 00003b18: DUP1 00003b19: PUSH0 00003b1a: PUSH1 0x40 00003b1c: DUP5 00003b1d: DUP7 00003b1e: SUB 00003b1f: SLT 00003b20: ISZERO 00003b21: PUSH2 0x3b28 00003b24: JUMPI 00003b25: PUSH0 00003b26: DUP1 00003b27: REVERT 00003b28: JUMPDEST 00003b29: DUP4 00003b2a: CALLDATALOAD 00003b2b: SWAP3 00003b2c: POP 00003b2d: PUSH1 0x20 00003b2f: DUP5 00003b30: ADD 00003b31: CALLDATALOAD 00003b32: PUSH8 0xffffffffffffffff 00003b3b: DUP1 00003b3c: DUP3 00003b3d: GT 00003b3e: ISZERO 00003b3f: PUSH2 0x3b46 00003b42: JUMPI 00003b43: PUSH0 00003b44: DUP1 00003b45: REVERT 00003b46: JUMPDEST 00003b47: DUP2 00003b48: DUP7 00003b49: ADD 00003b4a: SWAP2 00003b4b: POP 00003b4c: DUP7 00003b4d: PUSH1 0x1f 00003b4f: DUP4 00003b50: ADD 00003b51: SLT 00003b52: PUSH2 0x3b59 00003b55: JUMPI 00003b56: PUSH0 00003b57: DUP1 00003b58: REVERT 00003b59: JUMPDEST 00003b5a: DUP2 00003b5b: CALLDATALOAD 00003b5c: DUP2 00003b5d: DUP2 00003b5e: GT 00003b5f: ISZERO 00003b60: PUSH2 0x3b67 00003b63: JUMPI 00003b64: PUSH0 00003b65: DUP1 00003b66: REVERT 00003b67: JUMPDEST 00003b68: DUP8 00003b69: PUSH1 0x20 00003b6b: DUP3 00003b6c: PUSH1 0x05 00003b6e: SHL 00003b6f: DUP6 00003b70: ADD 00003b71: ADD 00003b72: GT 00003b73: ISZERO 00003b74: PUSH2 0x3b7b 00003b77: JUMPI 00003b78: PUSH0 00003b79: DUP1 00003b7a: REVERT 00003b7b: JUMPDEST 00003b7c: PUSH1 0x20 00003b7e: DUP4 00003b7f: ADD 00003b80: SWAP5 00003b81: POP 00003b82: DUP1 00003b83: SWAP4 00003b84: POP 00003b85: POP 00003b86: POP 00003b87: POP 00003b88: SWAP3 00003b89: POP 00003b8a: SWAP3 00003b8b: POP 00003b8c: SWAP3 00003b8d: JUMP 00003b8e: JUMPDEST 00003b8f: PUSH0 00003b90: DUP1 00003b91: PUSH0 00003b92: DUP1 00003b93: PUSH0 00003b94: PUSH1 0xa0 00003b96: DUP7 00003b97: DUP9 00003b98: SUB 00003b99: SLT 00003b9a: ISZERO 00003b9b: PUSH2 0x3ba2 00003b9e: JUMPI 00003b9f: PUSH0 00003ba0: DUP1 00003ba1: REVERT 00003ba2: JUMPDEST 00003ba3: DUP6 00003ba4: CALLDATALOAD 00003ba5: PUSH2 0x3bad 00003ba8: DUP2 00003ba9: PUSH2 0x382e 00003bac: JUMP 00003bad: JUMPDEST 00003bae: SWAP5 00003baf: POP 00003bb0: PUSH1 0x20 00003bb2: DUP7 00003bb3: ADD 00003bb4: CALLDATALOAD 00003bb5: SWAP4 00003bb6: POP 00003bb7: PUSH1 0x40 00003bb9: DUP7 00003bba: ADD 00003bbb: CALLDATALOAD 00003bbc: PUSH2 0x3bc4 00003bbf: DUP2 00003bc0: PUSH2 0x382e 00003bc3: JUMP 00003bc4: JUMPDEST 00003bc5: SWAP5 00003bc6: SWAP8 00003bc7: SWAP4 00003bc8: SWAP7 00003bc9: POP 00003bca: SWAP4 00003bcb: SWAP5 00003bcc: PUSH1 0x60 00003bce: DUP2 00003bcf: ADD 00003bd0: CALLDATALOAD 00003bd1: SWAP5 00003bd2: POP 00003bd3: PUSH1 0x80 00003bd5: ADD 00003bd6: CALLDATALOAD 00003bd7: SWAP3 00003bd8: SWAP2 00003bd9: POP 00003bda: POP 00003bdb: JUMP 00003bdc: JUMPDEST 00003bdd: PUSH0 00003bde: DUP1 00003bdf: PUSH0 00003be0: DUP1 00003be1: PUSH0 00003be2: PUSH1 0xa0 00003be4: DUP7 00003be5: DUP9 00003be6: SUB 00003be7: SLT 00003be8: ISZERO 00003be9: PUSH2 0x3bf0 00003bec: JUMPI 00003bed: PUSH0 00003bee: DUP1 00003bef: REVERT 00003bf0: JUMPDEST 00003bf1: POP 00003bf2: POP 00003bf3: DUP4 00003bf4: CALLDATALOAD 00003bf5: SWAP6 00003bf6: PUSH1 0x20 00003bf8: DUP6 00003bf9: ADD 00003bfa: CALLDATALOAD 00003bfb: SWAP6 00003bfc: POP 00003bfd: PUSH1 0x40 00003bff: DUP6 00003c00: ADD 00003c01: CALLDATALOAD 00003c02: SWAP5 00003c03: PUSH1 0x60 00003c05: DUP2 00003c06: ADD 00003c07: CALLDATALOAD 00003c08: SWAP5 00003c09: POP 00003c0a: PUSH1 0x80 00003c0c: ADD 00003c0d: CALLDATALOAD 00003c0e: SWAP3 00003c0f: POP 00003c10: SWAP1 00003c11: POP 00003c12: JUMP 00003c13: JUMPDEST 00003c14: PUSH0 00003c15: DUP1 00003c16: PUSH0 00003c17: DUP1 00003c18: PUSH0 00003c19: DUP1 00003c1a: PUSH1 0xc0 00003c1c: DUP8 00003c1d: DUP10 00003c1e: SUB 00003c1f: SLT 00003c20: ISZERO 00003c21: PUSH2 0x3c28 00003c24: JUMPI 00003c25: PUSH0 00003c26: DUP1 00003c27: REVERT 00003c28: JUMPDEST 00003c29: POP 00003c2a: POP 00003c2b: DUP5 00003c2c: CALLDATALOAD 00003c2d: SWAP7 00003c2e: PUSH1 0x20 00003c30: DUP7 00003c31: ADD 00003c32: CALLDATALOAD 00003c33: SWAP7 00003c34: POP 00003c35: PUSH1 0x40 00003c37: DUP7 00003c38: ADD 00003c39: CALLDATALOAD 00003c3a: SWAP6 00003c3b: PUSH1 0x60 00003c3d: DUP2 00003c3e: ADD 00003c3f: CALLDATALOAD 00003c40: SWAP6 00003c41: POP 00003c42: PUSH1 0x80 00003c44: DUP2 00003c45: ADD 00003c46: CALLDATALOAD 00003c47: SWAP5 00003c48: POP 00003c49: PUSH1 0xa0 00003c4b: ADD 00003c4c: CALLDATALOAD 00003c4d: SWAP3 00003c4e: POP 00003c4f: SWAP1 00003c50: POP 00003c51: JUMP 00003c52: JUMPDEST 00003c53: PUSH1 0x20 00003c55: DUP1 00003c56: DUP3 00003c57: MSTORE 00003c58: DUP3 00003c59: MLOAD 00003c5a: DUP3 00003c5b: DUP3 00003c5c: ADD 00003c5d: DUP2 00003c5e: SWAP1 00003c5f: MSTORE 00003c60: PUSH0 00003c61: SWAP2 00003c62: SWAP1 00003c63: DUP5 00003c64: DUP3 00003c65: ADD 00003c66: SWAP1 00003c67: PUSH1 0x40 00003c69: DUP6 00003c6a: ADD 00003c6b: SWAP1 00003c6c: DUP5 00003c6d: JUMPDEST 00003c6e: DUP2 00003c6f: DUP2 00003c70: LT 00003c71: ISZERO 00003c72: PUSH2 0x3c92 00003c75: JUMPI 00003c76: DUP4 00003c77: MLOAD 00003c78: PUSH1 0x01 00003c7a: PUSH1 0x01 00003c7c: PUSH1 0xa0 00003c7e: SHL 00003c7f: SUB 00003c80: AND 00003c81: DUP4 00003c82: MSTORE 00003c83: SWAP3 00003c84: DUP5 00003c85: ADD 00003c86: SWAP3 00003c87: SWAP2 00003c88: DUP5 00003c89: ADD 00003c8a: SWAP2 00003c8b: PUSH1 0x01 00003c8d: ADD 00003c8e: PUSH2 0x3c6d 00003c91: JUMP 00003c92: JUMPDEST 00003c93: POP 00003c94: SWAP1 00003c95: SWAP7 00003c96: SWAP6 00003c97: POP 00003c98: POP 00003c99: POP 00003c9a: POP 00003c9b: POP 00003c9c: POP 00003c9d: JUMP 00003c9e: JUMPDEST 00003c9f: PUSH0 00003ca0: DUP1 00003ca1: PUSH0 00003ca2: PUSH1 0x60 00003ca4: DUP5 00003ca5: DUP7 00003ca6: SUB 00003ca7: SLT 00003ca8: ISZERO 00003ca9: PUSH2 0x3cb0 00003cac: JUMPI 00003cad: PUSH0 00003cae: DUP1 00003caf: REVERT 00003cb0: JUMPDEST 00003cb1: DUP4 00003cb2: CALLDATALOAD 00003cb3: PUSH2 0x3cbb 00003cb6: DUP2 00003cb7: PUSH2 0x382e 00003cba: JUMP 00003cbb: JUMPDEST 00003cbc: SWAP6 00003cbd: PUSH1 0x20 00003cbf: DUP6 00003cc0: ADD 00003cc1: CALLDATALOAD 00003cc2: SWAP6 00003cc3: POP 00003cc4: PUSH1 0x40 00003cc6: SWAP1 00003cc7: SWAP5 00003cc8: ADD 00003cc9: CALLDATALOAD 00003cca: SWAP4 00003ccb: SWAP3 00003ccc: POP 00003ccd: POP 00003cce: POP 00003ccf: JUMP 00003cd0: JUMPDEST 00003cd1: PUSH1 0x01 00003cd3: DUP2 00003cd4: DUP2 00003cd5: SHR 00003cd6: SWAP1 00003cd7: DUP3 00003cd8: AND 00003cd9: DUP1 00003cda: PUSH2 0x3ce4 00003cdd: JUMPI 00003cde: PUSH1 0x7f 00003ce0: DUP3 00003ce1: AND 00003ce2: SWAP2 00003ce3: POP 00003ce4: JUMPDEST 00003ce5: PUSH1 0x20 00003ce7: DUP3 00003ce8: LT 00003ce9: DUP2 00003cea: SUB 00003ceb: PUSH2 0x3d02 00003cee: JUMPI 00003cef: PUSH4 0x4e487b71 00003cf4: PUSH1 0xe0 00003cf6: SHL 00003cf7: PUSH0 00003cf8: MSTORE 00003cf9: PUSH1 0x22 00003cfb: PUSH1 0x04 00003cfd: MSTORE 00003cfe: PUSH1 0x24 00003d00: PUSH0 00003d01: REVERT 00003d02: JUMPDEST 00003d03: POP 00003d04: SWAP2 00003d05: SWAP1 00003d06: POP 00003d07: JUMP 00003d08: JUMPDEST 00003d09: PUSH4 0x4e487b71 00003d0e: PUSH1 0xe0 00003d10: SHL 00003d11: PUSH0 00003d12: MSTORE 00003d13: PUSH1 0x11 00003d15: PUSH1 0x04 00003d17: MSTORE 00003d18: PUSH1 0x24 00003d1a: PUSH0 00003d1b: REVERT 00003d1c: JUMPDEST 00003d1d: DUP1 00003d1e: DUP3 00003d1f: MUL 00003d20: DUP2 00003d21: ISZERO 00003d22: DUP3 00003d23: DUP3 00003d24: DIV 00003d25: DUP5 00003d26: EQ 00003d27: OR 00003d28: PUSH2 0x08e9 00003d2b: JUMPI 00003d2c: PUSH2 0x08e9 00003d2f: PUSH2 0x3d08 00003d32: JUMP 00003d33: JUMPDEST 00003d34: PUSH0 00003d35: PUSH1 0x20 00003d37: DUP3 00003d38: DUP5 00003d39: SUB 00003d3a: SLT 00003d3b: ISZERO 00003d3c: PUSH2 0x3d43 00003d3f: JUMPI 00003d40: PUSH0 00003d41: DUP1 00003d42: REVERT 00003d43: JUMPDEST 00003d44: POP 00003d45: MLOAD 00003d46: SWAP2 00003d47: SWAP1 00003d48: POP 00003d49: JUMP 00003d4a: JUMPDEST 00003d4b: DUP1 00003d4c: MLOAD 00003d4d: PUSH2 0x1f56 00003d50: DUP2 00003d51: PUSH2 0x382e 00003d54: JUMP 00003d55: JUMPDEST 00003d56: DUP1 00003d57: MLOAD 00003d58: PUSH2 0x1f56 00003d5b: DUP2 00003d5c: PUSH2 0x39f4 00003d5f: JUMP 00003d60: JUMPDEST 00003d61: DUP1 00003d62: MLOAD 00003d63: PUSH2 0x1f56 00003d66: DUP2 00003d67: PUSH2 0x3a10 00003d6a: JUMP 00003d6b: JUMPDEST 00003d6c: PUSH0 00003d6d: PUSH2 0x0180 00003d70: DUP3 00003d71: DUP5 00003d72: SUB 00003d73: SLT 00003d74: ISZERO 00003d75: PUSH2 0x3d7c 00003d78: JUMPI 00003d79: PUSH0 00003d7a: DUP1 00003d7b: REVERT 00003d7c: JUMPDEST 00003d7d: PUSH2 0x3d84 00003d80: PUSH2 0x38c2 00003d83: JUMP 00003d84: JUMPDEST 00003d85: PUSH2 0x3d8d 00003d88: DUP4 00003d89: PUSH2 0x3d4a 00003d8c: JUMP 00003d8d: JUMPDEST 00003d8e: DUP2 00003d8f: MSTORE 00003d90: PUSH2 0x3d9b 00003d93: PUSH1 0x20 00003d95: DUP5 00003d96: ADD 00003d97: PUSH2 0x3d4a 00003d9a: JUMP 00003d9b: JUMPDEST 00003d9c: PUSH1 0x20 00003d9e: DUP3 00003d9f: ADD 00003da0: MSTORE 00003da1: PUSH2 0x3dac 00003da4: PUSH1 0x40 00003da6: DUP5 00003da7: ADD 00003da8: PUSH2 0x3d4a 00003dab: JUMP 00003dac: JUMPDEST 00003dad: PUSH1 0x40 00003daf: DUP3 00003db0: ADD 00003db1: MSTORE 00003db2: PUSH1 0x60 00003db4: DUP4 00003db5: ADD 00003db6: MLOAD 00003db7: PUSH1 0x60 00003db9: DUP3 00003dba: ADD 00003dbb: MSTORE 00003dbc: PUSH1 0x80 00003dbe: DUP4 00003dbf: ADD 00003dc0: MLOAD 00003dc1: PUSH1 0x80 00003dc3: DUP3 00003dc4: ADD 00003dc5: MSTORE 00003dc6: PUSH2 0x3dd1 00003dc9: PUSH1 0xa0 00003dcb: DUP5 00003dcc: ADD 00003dcd: PUSH2 0x3d55 00003dd0: JUMP 00003dd1: JUMPDEST 00003dd2: PUSH1 0xa0 00003dd4: DUP3 00003dd5: ADD 00003dd6: MSTORE 00003dd7: PUSH1 0xc0 00003dd9: DUP4 00003dda: ADD 00003ddb: MLOAD 00003ddc: PUSH1 0xc0 00003dde: DUP3 00003ddf: ADD 00003de0: MSTORE 00003de1: PUSH1 0xe0 00003de3: DUP4 00003de4: ADD 00003de5: MLOAD 00003de6: PUSH1 0xe0 00003de8: DUP3 00003de9: ADD 00003dea: MSTORE 00003deb: PUSH2 0x0100 00003dee: DUP1 00003def: DUP5 00003df0: ADD 00003df1: MLOAD 00003df2: DUP2 00003df3: DUP4 00003df4: ADD 00003df5: MSTORE 00003df6: POP 00003df7: PUSH2 0x0120 00003dfa: PUSH2 0x3e04 00003dfd: DUP2 00003dfe: DUP6 00003dff: ADD 00003e00: PUSH2 0x3d60 00003e03: JUMP 00003e04: JUMPDEST 00003e05: SWAP1 00003e06: DUP3 00003e07: ADD 00003e08: MSTORE 00003e09: PUSH2 0x0140 00003e0c: DUP4 00003e0d: DUP2 00003e0e: ADD 00003e0f: MLOAD 00003e10: SWAP1 00003e11: DUP3 00003e12: ADD 00003e13: MSTORE 00003e14: PUSH2 0x0160 00003e17: SWAP3 00003e18: DUP4 00003e19: ADD 00003e1a: MLOAD 00003e1b: SWAP3 00003e1c: DUP2 00003e1d: ADD 00003e1e: SWAP3 00003e1f: SWAP1 00003e20: SWAP3 00003e21: MSTORE 00003e22: POP 00003e23: SWAP2 00003e24: SWAP1 00003e25: POP 00003e26: JUMP 00003e27: JUMPDEST 00003e28: PUSH4 0x4e487b71 00003e2d: PUSH1 0xe0 00003e2f: SHL 00003e30: PUSH0 00003e31: MSTORE 00003e32: PUSH1 0x12 00003e34: PUSH1 0x04 00003e36: MSTORE 00003e37: PUSH1 0x24 00003e39: PUSH0 00003e3a: REVERT 00003e3b: JUMPDEST 00003e3c: PUSH0 00003e3d: DUP3 00003e3e: PUSH2 0x3e55 00003e41: JUMPI 00003e42: PUSH4 0x4e487b71 00003e47: PUSH1 0xe0 00003e49: SHL 00003e4a: PUSH0 00003e4b: MSTORE 00003e4c: PUSH1 0x12 00003e4e: PUSH1 0x04 00003e50: MSTORE 00003e51: PUSH1 0x24 00003e53: PUSH0 00003e54: REVERT 00003e55: JUMPDEST 00003e56: POP 00003e57: DIV 00003e58: SWAP1 00003e59: JUMP 00003e5a: JUMPDEST 00003e5b: DUP1 00003e5c: DUP3 00003e5d: ADD 00003e5e: DUP1 00003e5f: DUP3 00003e60: GT 00003e61: ISZERO 00003e62: PUSH2 0x08e9 00003e65: JUMPI 00003e66: PUSH2 0x08e9 00003e69: PUSH2 0x3d08 00003e6c: JUMP 00003e6d: JUMPDEST 00003e6e: PUSH1 0x20 00003e70: DUP2 00003e71: MSTORE 00003e72: DUP2 00003e73: PUSH1 0x20 00003e75: DUP3 00003e76: ADD 00003e77: MSTORE 00003e78: DUP2 00003e79: DUP4 00003e7a: PUSH1 0x40 00003e7c: DUP4 00003e7d: ADD 00003e7e: CALLDATACOPY 00003e7f: PUSH0 00003e80: DUP2 00003e81: DUP4 00003e82: ADD 00003e83: PUSH1 0x40 00003e85: SWAP1 00003e86: DUP2 00003e87: ADD 00003e88: SWAP2 00003e89: SWAP1 00003e8a: SWAP2 00003e8b: MSTORE 00003e8c: PUSH1 0x1f 00003e8e: SWAP1 00003e8f: SWAP3 00003e90: ADD 00003e91: PUSH1 0x1f 00003e93: NOT 00003e94: AND 00003e95: ADD 00003e96: ADD 00003e97: SWAP2 00003e98: SWAP1 00003e99: POP 00003e9a: JUMP 00003e9b: JUMPDEST 00003e9c: DUP2 00003e9d: DUP2 00003e9e: SUB 00003e9f: DUP2 00003ea0: DUP2 00003ea1: GT 00003ea2: ISZERO 00003ea3: PUSH2 0x08e9 00003ea6: JUMPI 00003ea7: PUSH2 0x08e9 00003eaa: PUSH2 0x3d08 00003ead: JUMP 00003eae: JUMPDEST 00003eaf: PUSH4 0x4e487b71 00003eb4: PUSH1 0xe0 00003eb6: SHL 00003eb7: PUSH0 00003eb8: MSTORE 00003eb9: PUSH1 0x32 00003ebb: PUSH1 0x04 00003ebd: MSTORE 00003ebe: PUSH1 0x24 00003ec0: PUSH0 00003ec1: REVERT 00003ec2: JUMPDEST 00003ec3: PUSH4 0x4e487b71 00003ec8: PUSH1 0xe0 00003eca: SHL 00003ecb: PUSH0 00003ecc: MSTORE 00003ecd: PUSH1 0x31 00003ecf: PUSH1 0x04 00003ed1: MSTORE 00003ed2: PUSH1 0x24 00003ed4: PUSH0 00003ed5: REVERT 00003ed6: JUMPDEST 00003ed7: PUSH0 00003ed8: DUP3 00003ed9: MLOAD 00003eda: DUP1 00003edb: PUSH1 0x20 00003edd: DUP6 00003ede: ADD 00003edf: DUP5 00003ee0: MCOPY 00003ee1: PUSH0 00003ee2: SWAP3 00003ee3: ADD 00003ee4: SWAP2 00003ee5: DUP3 00003ee6: MSTORE 00003ee7: POP 00003ee8: SWAP2 00003ee9: SWAP1 00003eea: POP 00003eeb: JUMP 00003eec: JUMPDEST 00003eed: PUSH0 00003eee: PUSH1 0x20 00003ef0: DUP3 00003ef1: DUP5 00003ef2: SUB 00003ef3: SLT 00003ef4: ISZERO 00003ef5: PUSH2 0x3efc 00003ef8: JUMPI 00003ef9: PUSH0 00003efa: DUP1 00003efb: REVERT 00003efc: JUMPDEST 00003efd: DUP2 00003efe: MLOAD 00003eff: PUSH2 0x0da3 00003f02: DUP2 00003f03: PUSH2 0x3a10 00003f06: JUMP 00003f07: INVALID 00003f08: EXTCODEHASH 00003f09: DUP16 00003f0a: UNKNOWN(0x4C) 00003f0b: MSTORE8 00003f0c: PUSH13 0xe1b925b469af1b09a44da237da 00003f1a: UNKNOWN(0xB5) 00003f1b: UNKNOWN(0xBB) 00003f1c: UNKNOWN(0xC5) 00003f1d: DUP5 00003f1e: PC 00003f1f: JUMP 00003f20: BASEFEE 00003f21: UNKNOWN(0xC1) 00003f22: UNKNOWN(0x2B) 00003f23: UNKNOWN(0xE1) 00003f24: UNKNOWN(0xCA) 00003f25: UNKNOWN(0x25) 00003f26: UNKNOWN(0xA8) 00003f27: UNKNOWN(0xC4) 00003f28: LOG2 00003f29: PUSH5 0x6970667358 00003f2f: UNKNOWN(0x22) 00003f30: SLT 00003f31: KECCAK256 00003f32: SHR 00003f33: UNKNOWN(0x2A) 00003f34: UNKNOWN(0xB6) 00003f35: PUSH15 0x24826998fe1115ecda27a1ca1f02b6 00003f45: UNKNOWN(0xDD) 00003f46: PUSH1 0x5d 00003f48: INVALID 00003f49: UNKNOWN(0xC5) 00003f4a: DUP13 00003f4b: UNKNOWN(0xF6) 00003f4c: UNKNOWN(0xED) 00003f4d: UNKNOWN(0xED) 00003f4e: UNKNOWN(0xC7) 00003f4f: ORIGIN 00003f50: PUSH32
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xf14fcbc8",
"selector": "0xf14fcbc8",
"calldata_variants": [
"0xf14fcbc8",
"0xf14fcbc80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf1b8a9b7",
"selector": "0xf1b8a9b7",
"calldata_variants": [
"0xf1b8a9b7",
"0xf1b8a9b70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8b2cb4f",
"selector": "0xf8b2cb4f",
"calldata_variants": [
"0xf8b2cb4f",
"0xf8b2cb4f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8d6aed4",
"selector": "0xf8d6aed4",
"calldata_variants": [
"0xf8d6aed4",
"0xf8d6aed40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe4a28a52",
"selector": "0xe4a28a52",
"calldata_variants": [
"0xe4a28a52",
"0xe4a28a520000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe4e1e538",
"selector": "0xe4e1e538",
"calldata_variants": [
"0xe4e1e538",
"0xe4e1e5380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xec093021",
"selector": "0xec093021",
"calldata_variants": [
"0xec093021",
"0xec0930210000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 16207,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x68e185cbdfd9d2b873dc7a42b7c0f1c2717d38e438a000065ea08b8245858650
call_targets:
0xf08d4dea369c456d26a3168ff0024b904f2d8b91
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x68e185cbdfd9d2b873dc7a42b7c0f1c2717d38e438a000065ea08b8245858650",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf08d4dea369c456d26a3168ff0024b904f2d8b91"
],
"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": "0xf14fcbc8",
"selector": "0xf14fcbc8",
"calldata_variants": [
"0xf14fcbc8",
"0xf14fcbc80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf1b8a9b7",
"selector": "0xf1b8a9b7",
"calldata_variants": [
"0xf1b8a9b7",
"0xf1b8a9b70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8b2cb4f",
"selector": "0xf8b2cb4f",
"calldata_variants": [
"0xf8b2cb4f",
"0xf8b2cb4f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8d6aed4",
"selector": "0xf8d6aed4",
"calldata_variants": [
"0xf8d6aed4",
"0xf8d6aed40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe4a28a52",
"selector": "0xe4a28a52",
"calldata_variants": [
"0xe4a28a52",
"0xe4a28a520000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe4e1e538",
"selector": "0xe4e1e538",
"calldata_variants": [
"0xe4e1e538",
"0xe4e1e5380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xec093021",
"selector": "0xec093021",
"calldata_variants": [
"0xec093021",
"0xec0930210000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 11983,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 13856,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 14119,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [
{
"pc": 16207,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 3
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x68e185cbdfd9d2b873dc7a42b7c0f1c2717d38e438a000065ea08b8245858650
call_targets:
0xf08d4dea369c456d26a3168ff0024b904f2d8b91
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x68e185cbdfd9d2b873dc7a42b7c0f1c2717d38e438a000065ea08b8245858650",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf08d4dea369c456d26a3168ff0024b904f2d8b91"
],
"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": "0xf14fcbc8",
"selector": "0xf14fcbc8",
"calldata_variants": [
"0xf14fcbc8",
"0xf14fcbc80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf1b8a9b7",
"selector": "0xf1b8a9b7",
"calldata_variants": [
"0xf1b8a9b7",
"0xf1b8a9b70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8b2cb4f",
"selector": "0xf8b2cb4f",
"calldata_variants": [
"0xf8b2cb4f",
"0xf8b2cb4f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8d6aed4",
"selector": "0xf8d6aed4",
"calldata_variants": [
"0xf8d6aed4",
"0xf8d6aed40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe4a28a52",
"selector": "0xe4a28a52",
"calldata_variants": [
"0xe4a28a52",
"0xe4a28a520000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe4e1e538",
"selector": "0xe4e1e538",
"calldata_variants": [
"0xe4e1e538",
"0xe4e1e5380000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xec093021",
"selector": "0xec093021",
"calldata_variants": [
"0xec093021",
"0xec0930210000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 11983,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 13856,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 14119,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": [
{
"pc": 16207,
"type": "tx_origin_used"
}
]
}
|
| low | math | codex | Fee-on-transfer tokens break pool accounting and allow value extraction | 65 | no | — |
viewevidence_json{
"evidence": "`swapExactAmountIn`/`swapExactAmountOut` calculate outputs from `tokenAmountIn` and then pull that amount without checking the balance delta; `_pullUnderlying` only calls `safeTransferFrom`. `BCoWPool.verify` uses `order.buyAmount` directly as the input amount for pricing.",
"locations": [
"contracts/src/contracts/BPool.sol:260",
"contracts/src/contracts/BPool.sol:282",
"contracts/src/contracts/BPool.sol:466",
"contracts/src/contracts/BCoWPool.sol:124"
],
"recommendation": "Disallow fee-on-transfer/deflationary tokens (whitelist standard ERC20s) or compute actual received amounts via balance-before/after and use that for pricing. For CoW orders, either enforce standard ERC20s or adjust validation to account for actual received amounts.",
"exploit_scenario": "If a bound token charges a transfer fee, an attacker can swap that token in. The pool computes `tokenAmountOut` from the nominal `tokenAmountIn`, but the pool receives less due to the fee and still sends out the full `tokenAmountOut`, letting the attacker extract excess of the other token. The same issue applies to CoW orders validated via `verify` when the buy token is fee-on-transfer."
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 17
}
|