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

Analysis Run

d6e884b9-0d8a-4410-802c-0d7b21b36433

failed
Chain ID
1
Address
Block Number
Created
Sun, Dec 28, 2025 5:26 PM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Delegatecall to external ORDER_MANAGER_SINGLETON enables full vault takeover if that address is upgradeable/compromised
crit 0 high 0 proxy context implementation known
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30338 report.consolidate complete 1 / 1 3 months ago
74212 artifact.fetch failed 1 / 3 1 week ago
74213 tool.cast_disasm complete 1 / 3 1 week ago
74214 analysis.bundle complete 1 / 3 1 week ago
74215 capability.graph complete 1 / 3 1 week ago
74216 detector.run complete 1 / 3 1 week ago
74217 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
2
No findings?
no
Summary
Identified 2 issues: reliance on an external delegatecall-based order manager creates an implicit upgradeability backdoor, and the swap callback is publicly callable without caller validation.
View stderr
[codex:1403078] OpenAI Codex v0.77.0 (research preview)
[codex:1403078] --------
[codex:1403078] workdir: /tmp/codex-multi-au1_xfpc
[codex:1403078] model: gpt-5.2-codex
[codex:1403078] provider: openai
[codex:1403078] approval: never
[codex:1403078] sandbox: read-only
[codex:1403078] reasoning effort: xhigh
[codex:1403078] reasoning summaries: auto
[codex:1403078] session id: 019b65f7-cada-7831-912a-4fd6f0b04174
[codex:1403078] --------
[codex:1403078] user
[codex:1403078] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1403078] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1403078] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1403078] 
[codex:1403078] Scope rules:
[codex:1403078] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1403078] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1403078] 
[codex:1403078] Output MUST be valid JSON matching the provided schema.
[codex:1403078] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1403078] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1403078] 
[codex:1403078] Output constraints (IMPORTANT):
[codex:1403078] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1403078] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1403078] mcp startup: no servers
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Locating AUDIT_BUNDLE file**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc ls in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078] AUDIT_BUNDLE.txt
[codex:1403078] codex-output-schema.json
[codex:1403078] contracts
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Reading full AUDIT_BUNDLE file**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1403078] 
[codex:1403078] ================================================================================
[codex:1403078] FILE: contracts/contracts/v1/ISwapCallback.sol
[codex:1403078] ================================================================================
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078] 
[codex:1403078] /**
[codex:1403078]  * @title TermMax Swap Callback Interface
[codex:1403078]  * @author Term Structure Labs
[codex:1403078]  * @notice Interface for handling callbacks after swap operations in TermMax
[codex:1403078]  */
[codex:1403078] interface ISwapCallback {
[codex:1403078]     /**
[codex:1403078]      * @notice Callback function called after a swap operation
[codex:1403078]      * @param ftReserve The reserve of the FT token
[codex:1403078]      * @param xtReserve The reserve of the XT token
[codex:1403078]      * @param deltaFt The change in FT token balance (positive for receiving, negative for paying)
[codex:1403078]      * @param deltaXt The change in XT token balance (positive for receiving, negative for paying)
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Preparing to inspect first-party contracts**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg --files contracts/contracts/v1' in /tmp/codex-multi-au1_xfpc succeeded in 8ms:
[codex:1403078] contracts/contracts/v1/ISwapCallback.sol
[codex:1403078] contracts/contracts/v1/vault/ITermMaxVault.sol
[codex:1403078] contracts/contracts/v1/vault/IOrderManager.sol
[codex:1403078] contracts/contracts/v1/vault/VaultStorage.sol
[codex:1403078] contracts/contracts/v1/storage/TermMaxStorage.sol
[codex:1403078] contracts/contracts/v1/tokens/IMintableERC20.sol
[codex:1403078] contracts/contracts/v1/tokens/IGearingToken.sol
[codex:1403078] contracts/contracts/v1/errors/VaultErrors.sol
[codex:1403078] contracts/contracts/v1/oracle/IOracle.sol
[codex:1403078] contracts/contracts/v1/ITermMaxOrder.sol
[codex:1403078] contracts/contracts/v1/ITermMaxMarket.sol
[codex:1403078] contracts/contracts/v1/events/VaultEvents.sol
[codex:1403078] contracts/contracts/v1/lib/VaultConstants.sol
[codex:1403078] contracts/contracts/v1/lib/TransferUtils.sol
[codex:1403078] contracts/contracts/v1/lib/PendingLib.sol
[codex:1403078] contracts/contracts/v1/lib/Constants.sol
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Checking for implementations in vault**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/vault/ITermMaxVault.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.27;
[codex:1403078] 
[codex:1403078] import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol";
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/interfaces/IERC20.sol";
[codex:1403078] import {ITermMaxMarket} from "../ITermMaxMarket.sol";
[codex:1403078] import {CurveCuts, VaultInitialParams} from "../storage/TermMaxStorage.sol";
[codex:1403078] import {ITermMaxOrder} from "../ITermMaxOrder.sol";
[codex:1403078] import {PendingAddress, PendingUint192} from "../lib/PendingLib.sol";
[codex:1403078] import {OrderInfo} from "./VaultStorage.sol";
[codex:1403078] 
[codex:1403078] /**
[codex:1403078]  * @title TermMax Vault Interface
[codex:1403078]  * @author Term Structure Labs
[codex:1403078]  * @notice Interface for TermMax vaults that extends the ERC4626 standard
[codex:1403078]  * @dev Implements ERC4626 tokenized vault standard with additional TermMax-specific functionality
[codex:1403078]  */
[codex:1403078] interface ITermMaxVault is IERC4626 {
[codex:1403078]     /**
[codex:1403078]      * @notice Initializes the vault
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '200,400p' contracts/contracts/v1/vault/ITermMaxVault.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078]      * @param order The order to redeem
[codex:1403078]      */
[codex:1403078]     function redeemOrder(ITermMaxOrder order) external;
[codex:1403078] 
[codex:1403078]     /**
[codex:1403078]      * @notice Withdraws performance fee
[codex:1403078]      * @param recipient The recipient of the performance fee
[codex:1403078]      * @param amount The amount of performance fee to withdraw
[codex:1403078]      */
[codex:1403078]     function withdrawPerformanceFee(address recipient, uint256 amount) external;
[codex:1403078] 
[codex:1403078]     /**
[codex:1403078]      * @notice Submits a new guardian address
[codex:1403078]      * @param newGuardian The new guardian address
[codex:1403078]      */
[codex:1403078]     function submitGuardian(address newGuardian) external;
[codex:1403078] 
[codex:1403078]     /**
[codex:1403078]      * @notice Sets a new curator address
[codex:1403078]      * @param newCurator The new curator address
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Checking for implementations**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "rg --files contracts/contracts -g '*.sol'" in /tmp/codex-multi-au1_xfpc succeeded in 10ms:
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol
[codex:1403078] contracts/contracts/v1plus/vault/ITermMaxVaultV1Plus.sol
[codex:1403078] contracts/contracts/v1plus/vault/VaultStorageV1Plus.sol
[codex:1403078] contracts/contracts/v1plus/storage/TermMaxStorageV1Plus.sol
[codex:1403078] contracts/contracts/v1/vault/ITermMaxVault.sol
[codex:1403078] contracts/contracts/v1/vault/IOrderManager.sol
[codex:1403078] contracts/contracts/v1/vault/VaultStorage.sol
[codex:1403078] contracts/contracts/v1plus/events/VaultEventsV1Plus.sol
[codex:1403078] contracts/contracts/v1/ISwapCallback.sol
[codex:1403078] contracts/contracts/v1plus/lib/TransactionReentrancyGuard.sol
[codex:1403078] contracts/contracts/v1/storage/TermMaxStorage.sol
[codex:1403078] contracts/contracts/v1/errors/VaultErrors.sol
[codex:1403078] contracts/contracts/v1/oracle/IOracle.sol
[codex:1403078] contracts/contracts/v1/ITermMaxMarket.sol
[codex:1403078] contracts/contracts/v1/ITermMaxOrder.sol
[codex:1403078] contracts/contracts/v1/tokens/IMintableERC20.sol
[codex:1403078] contracts/contracts/v1/tokens/IGearingToken.sol
[codex:1403078] contracts/contracts/v1/events/VaultEvents.sol
[codex:1403078] contracts/contracts/v1plus/errors/VaultErrorsV1Plus.sol
[codex:1403078] contracts/contracts/v1/lib/PendingLib.sol
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Inspecting TermMaxVaultV1Plus implementation**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: GPL-2.0-or-later
[codex:1403078] pragma solidity ^0.8.27;
[codex:1403078] 
[codex:1403078] /**
[codex:1403078]  * @title TermMaxVaultV1Plus
[codex:1403078]  * @notice This contract is inspired by MetaMorphoV1_1 (https://github.com/morpho-org/metamorpho-v1.1/blob/main/src/MetaMorphoV1_1.sol)
[codex:1403078]  * @dev The role management structure is based on Morpho's role system (https://docs.morpho.org/curation/concepts/roles/)
[codex:1403078]  * with similar separation of curator, guardian, and allocator roles for enhanced governance and risk management.
[codex:1403078]  */
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1403078] import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol";
[codex:1403078] import {
[codex:1403078]     IERC4626,
[codex:1403078]     ERC4626Upgradeable,
[codex:1403078]     ERC20Upgradeable
[codex:1403078] } from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol";
[codex:1403078] import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol";
[codex:1403078] import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
[codex:1403078] import {PendingLib, PendingAddress, PendingUint192} from "../../v1/lib/PendingLib.sol";
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Continuing exploration**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '200,400p' contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078]      * @inheritdoc ITermMaxVault
[codex:1403078]      */
[codex:1403078]     function performanceFeeRate() external view virtual returns (uint64) {
[codex:1403078]         return _performanceFeeRate;
[codex:1403078]     }
[codex:1403078] 
[codex:1403078]     /**
[codex:1403078]      * @inheritdoc ITermMaxVault
[codex:1403078]      */
[codex:1403078]     function totalFt() external view virtual returns (uint256) {
[codex:1403078]         return _totalFt / Constants.DECIMAL_BASE_SQ;
[codex:1403078]     }
[codex:1403078] 
[codex:1403078]     /**
[codex:1403078]      * @inheritdoc ITermMaxVault
[codex:1403078]      */
[codex:1403078]     function accretingPrincipal() external view virtual returns (uint256) {
[codex:1403078]         (uint256 ap,) = _previewAccruedInterest();
[codex:1403078]         return ap / Constants.DECIMAL_BASE_SQ;
[codex:1403078]     }
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Continuing process**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '400,800p' contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078]     }
[codex:1403078] 
[codex:1403078]     /**
[codex:1403078]      * @inheritdoc ITermMaxVault
[codex:1403078]      */
[codex:1403078]     function redeemOrder(ITermMaxOrder order) external virtual {
[codex:1403078]         _delegateCall(abi.encodeCall(IOrderManager.redeemOrder, (order)));
[codex:1403078]     }
[codex:1403078] 
[codex:1403078]     /**
[codex:1403078]      * @inheritdoc ITermMaxVault
[codex:1403078]      */
[codex:1403078]     function withdrawPerformanceFee(address recipient, uint256 amount)
[codex:1403078]         external
[codex:1403078]         virtual
[codex:1403078]         nonReentrant
[codex:1403078]         whenNotPaused
[codex:1403078]         onlyCuratorRole
[codex:1403078]     {
[codex:1403078]         _delegateCall(abi.encodeCall(IOrderManager.withdrawPerformanceFee, (IERC20(asset()), recipient, amount)));
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Continuing process**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '800,1200p' contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] 
[codex:1403078]             previewPerformanceFee += previewPerformanceFeeToCurator;
[codex:1403078]             previewPrincipal += previewInterest;
[codex:1403078] 
[codex:1403078]             recentMaturity = nextMaturity;
[codex:1403078]         }
[codex:1403078]         if (recentMaturity > 0) {
[codex:1403078]             (uint256 previewInterest, uint256 previewPerformanceFeeToCurator) =
[codex:1403078]                 _previewAccruedPeriodInterest(lastTime, currentTime, previewAnnualizedInterest);
[codex:1403078]             previewPerformanceFee += previewPerformanceFeeToCurator;
[codex:1403078]             previewPrincipal += previewInterest;
[codex:1403078]         }
[codex:1403078]     }
[codex:1403078] 
[codex:1403078]     function _previewAccruedPeriodInterest(uint256 startTime, uint256 endTime, uint256 previewAnnualizedInterest)
[codex:1403078]         internal
[codex:1403078]         view
[codex:1403078]         returns (uint256, uint256)
[codex:1403078]     {
[codex:1403078]         uint256 interest = (previewAnnualizedInterest * (endTime - startTime)) / 365 days;
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Analyzing contract components and vulnerabilities**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1plus/lib/TransactionReentrancyGuard.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.27;
[codex:1403078] 
[codex:1403078] abstract contract TransactionReentrancyGuard {
[codex:1403078]     /// @notice Error thrown when a reentrant call is detected in one transaction.
[codex:1403078]     error ReentrantCall();
[codex:1403078]     /// @notice Error thrown when a reentrant call is detected between actions.
[codex:1403078]     error ReentrantCallBetweenActions(uint256 actionId, uint256 oldActionId);
[codex:1403078]     /// @notice Error thrown when using reserved ID. (0 and 1 are reserved id)
[codex:1403078]     error InvalidActionId();
[codex:1403078] 
[codex:1403078]     // keccak256(abi.encode(uint256(keccak256("termmax.tsstorage.TransactionReentrancyGuard")) - 1)) & ~bytes32(uint256(0xff))
[codex:1403078]     uint256 private constant T_FLAG_STORE = 0x55d65f3b5821c66716708cd5119fc8b654f479bd23b96d0911cee85241904700;
[codex:1403078] 
[codex:1403078]     /// @notice Modifier to prevent reentrant calls in one transaction.
[codex:1403078]     modifier nonTxReentrant() {
[codex:1403078]         if (_getTxReentrancyGuardStorage() == 1) revert ReentrantCall();
[codex:1403078]         _setTxReentrancyGuardStorage(1);
[codex:1403078]         _;
[codex:1403078]     }
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Analyzing transient storage compatibility**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,240p' contracts/contracts/v1plus/vault/VaultStorageV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.27;
[codex:1403078] 
[codex:1403078] import {PendingAddress, PendingUint192} from "../../v1/lib/PendingLib.sol";
[codex:1403078] import {OrderInfo} from "../../v1/vault/VaultStorage.sol";
[codex:1403078] 
[codex:1403078] contract VaultStorageV1Plus {
[codex:1403078]     // State variables
[codex:1403078]     address internal _guardian;
[codex:1403078]     address internal _curator;
[codex:1403078] 
[codex:1403078]     mapping(address => bool) internal _isAllocator;
[codex:1403078]     mapping(address => bool) internal _marketWhitelist;
[codex:1403078]     mapping(address => PendingUint192) internal _pendingMarkets;
[codex:1403078] 
[codex:1403078]     PendingUint192 internal _pendingTimelock;
[codex:1403078]     PendingUint192 internal _pendingPerformanceFeeRate;
[codex:1403078]     PendingAddress internal _pendingGuardian;
[codex:1403078] 
[codex:1403078]     uint256 internal _timelock;
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Checking storage components**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1plus/storage/TermMaxStorageV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078] 
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078] 
[codex:1403078] struct VaultInitialParamsV1Plus {
[codex:1403078]     address admin;
[codex:1403078]     address curator;
[codex:1403078]     address guardian;
[codex:1403078]     uint256 timelock;
[codex:1403078]     IERC20 asset;
[codex:1403078]     uint256 maxCapacity;
[codex:1403078]     string name;
[codex:1403078]     string symbol;
[codex:1403078]     /// @notice The performance fee rate in base units, e.g. 20% = 0.2e8
[codex:1403078]     uint64 performanceFeeRate;
[codex:1403078]     /// @notice The minimum APY in base units, e.g. 2% = 0.02e8
[codex:1403078]     uint64 minApy;
[codex:1403078]     /// @notice The minimum idle fund rate in base units, e.g. 10% = 0.1e8
[codex:1403078]     uint64 minIdleFundRate;
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Inspecting TransferUtils library**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/lib/TransferUtils.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078] 
[codex:1403078] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078] import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1403078] 
[codex:1403078] library TransferUtils {
[codex:1403078]     using SafeERC20 for IERC20;
[codex:1403078] 
[codex:1403078]     error CanNotTransferUintMax();
[codex:1403078] 
[codex:1403078]     function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
[codex:1403078]         if (value == type(uint256).max) {
[codex:1403078]             revert CanNotTransferUintMax();
[codex:1403078]         }
[codex:1403078]         if (from == to || value == 0) {
[codex:1403078]             return;
[codex:1403078]         }
[codex:1403078]         token.safeTransferFrom(from, to, value);
[codex:1403078]     }
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Considering PendingLib**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/lib/PendingLib.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: GPL-2.0-or-later
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078] 
[codex:1403078] struct PendingUint192 {
[codex:1403078]     /// @notice The pending value to set.
[codex:1403078]     uint192 value;
[codex:1403078]     /// @notice The timestamp at which the pending value becomes valid.
[codex:1403078]     uint64 validAt;
[codex:1403078] }
[codex:1403078] 
[codex:1403078] struct PendingAddress {
[codex:1403078]     /// @notice The pending value to set.
[codex:1403078]     address value;
[codex:1403078]     /// @notice The timestamp at which the pending value becomes valid.
[codex:1403078]     uint64 validAt;
[codex:1403078] }
[codex:1403078] 
[codex:1403078] /// @title PendingLib
[codex:1403078] /// @author Morpho Labs
[codex:1403078] /// @custom:contact security@morpho.org
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Noting additional libraries**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/lib/VaultConstants.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078] 
[codex:1403078] library VaultConstants {
[codex:1403078]     /// @dev The maximum delay of a timelock.
[codex:1403078]     uint256 internal constant MAX_TIMELOCK = 2 weeks;
[codex:1403078] 
[codex:1403078]     /// @dev The minimum delay of a timelock post initialization.
[codex:1403078]     uint256 internal constant POST_INITIALIZATION_MIN_TIMELOCK = 1 days;
[codex:1403078] 
[codex:1403078]     /// @dev The maximum number of markets in the supply/withdraw queue.
[codex:1403078]     uint256 internal constant MAX_QUEUE_LENGTH = 30;
[codex:1403078] 
[codex:1403078]     /// @dev The maximum fee the vault can have (50%).
[codex:1403078]     uint256 internal constant MAX_FEE = 0.5e18;
[codex:1403078] 
[codex:1403078]     /// @dev The maximum term the vault can have.
[codex:1403078]     uint256 internal constant MAX_TERM = 365 days;
[codex:1403078] 
[codex:1403078]     /// @dev The maximum performance fee rate the vault can have.
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Checking for constants**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/lib/Constants.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078] 
[codex:1403078] /**
[codex:1403078]  * @title The general constants of TermMax
[codex:1403078]  * @author Term Structure Labs
[codex:1403078]  */
[codex:1403078] library Constants {
[codex:1403078]     /// @notice The base decimals of ratio
[codex:1403078]     uint256 constant DECIMAL_BASE = 1e8;
[codex:1403078]     /// @notice The square of the base decimals
[codex:1403078]     uint256 constant DECIMAL_BASE_SQ = 1e16;
[codex:1403078]     /// @notice The days of one year
[codex:1403078]     uint256 constant DAYS_IN_YEAR = 365;
[codex:1403078]     /// @notice The seconds of one day
[codex:1403078]     uint256 constant SECONDS_IN_DAY = 1 days;
[codex:1403078]     /// @notice The window time left for the liquidation bot after the market expires
[codex:1403078]     uint256 constant LIQUIDATION_WINDOW = 2 hours;
[codex:1403078]     /// @notice The limit of fee ratio
[codex:1403078]     uint32 constant MAX_FEE_RATIO = 0.2e8;
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Inspecting VaultErrorsV1Plus events**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1plus/errors/VaultErrorsV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078] 
[codex:1403078] /**
[codex:1403078]  * @title Vault Errors V1Plus
[codex:1403078]  * @author Term Structure Labs
[codex:1403078]  */
[codex:1403078] interface VaultErrorsV1Plus {
[codex:1403078]     /// @notice Error thrown when the parameters of updating orders are invalid
[codex:1403078]     error ArrayLengthMismatch();
[codex:1403078]     /// @notice Error thrown when dealing unexpected collateral
[codex:1403078]     error CollateralIsAsset();
[codex:1403078]     /// @notice Error thrown when initializing the vault using V1 initializing function
[codex:1403078]     error UseVaultInitialParamsV1Plus();
[codex:1403078]     /// @notice Error thrown when calling functions about supply queue
[codex:1403078]     error SupplyQueueNoLongerSupported();
[codex:1403078]     /// @notice Error thrown when calling functions about withdrawal queue
[codex:1403078]     error WithdrawalQueueNoLongerSupported();
[codex:1403078]     /// @notice Error thrown when calling apr function
[codex:1403078]     error UseApyInsteadOfApr();
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Identifying needed interface**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/vault/IOrderManager.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078] 
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078] import {ITermMaxMarket} from "../ITermMaxMarket.sol";
[codex:1403078] import {ITermMaxOrder} from "../ITermMaxOrder.sol";
[codex:1403078] import {CurveCuts} from "../storage/TermMaxStorage.sol";
[codex:1403078] 
[codex:1403078] /**
[codex:1403078]  * @title Order Manager Interface
[codex:1403078]  * @author Term Structure Labs
[codex:1403078]  */
[codex:1403078] interface IOrderManager {
[codex:1403078]     /**
[codex:1403078]      * @notice Creates a new order
[codex:1403078]      * @param asset The asset token address
[codex:1403078]      * @param market The market address
[codex:1403078]      * @param maxSupply The maximum xt supply of the order
[codex:1403078]      * @param initialReserve The initial reserve of the order
[codex:1403078]      * @param curveCuts The curve cuts for the order
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Analyzing delegatecall risks**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/vault/VaultStorage.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.27;
[codex:1403078] 
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078] import {ITermMaxMarket} from "../ITermMaxMarket.sol";
[codex:1403078] import {PendingAddress, PendingUint192} from "../lib/PendingLib.sol";
[codex:1403078] 
[codex:1403078] struct OrderInfo {
[codex:1403078]     ITermMaxMarket market;
[codex:1403078]     IERC20 ft;
[codex:1403078]     IERC20 xt;
[codex:1403078]     uint128 maxSupply;
[codex:1403078]     uint64 maturity;
[codex:1403078] }
[codex:1403078] 
[codex:1403078] contract VaultStorage {
[codex:1403078]     // State variables
[codex:1403078]     address internal _guardian;
[codex:1403078]     address internal _curator;
[codex:1403078] 
[codex:1403078] 
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Analyzing TermMaxVaultV1Plus vulnerabilities**
[codex:1403078] thinking
[codex:1403078] **Evaluating delegatecall and event logic risks**
[codex:1403078] 
[codex:1403078] I'll review delegatecall paths that might allow reentrancy due to missing guards, note double event emissions from performance fee updates, and consider potential unbounded loops that could cause gas issues—there is also a focus on access control gaps relying on delegatecall to enforce authorization without internal checks.
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg -n "_orderMapping" contracts/contracts' in /tmp/codex-multi-au1_xfpc succeeded in 10ms:
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:254:        return _orderMapping[order];
[codex:1403078] contracts/contracts/v1plus/vault/VaultStorageV1Plus.sol:37:    mapping(address => OrderInfo) internal _orderMapping;
[codex:1403078] contracts/contracts/v1/vault/VaultStorage.sol:48:    mapping(address => OrderInfo) internal _orderMapping;
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Analyzing vault withdrawal and accounting logic**
[codex:1403078] 
[codex:1403078] I'm reviewing the vault's withdrawal and accounting functions for potential issues. I notice withdrawals bypass the pause check, which might be intentional for emergencies. I'm also considering risks around delegatecalls and imperfect internal accounting due to limited code visibility. Next, I'll look into related interfaces to gather more clues.
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1plus/vault/ITermMaxVaultV1Plus.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078] 
[codex:1403078] import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol";
[codex:1403078] import {PendingAddress, PendingUint192} from "../../v1/lib/PendingLib.sol";
[codex:1403078] import {VaultInitialParamsV1Plus} from "../storage/TermMaxStorageV1Plus.sol";
[codex:1403078] 
[codex:1403078] 
[codex:1403078] /**
[codex:1403078]  * @title ITermMaxVaultV1Plus
[codex:1403078]  * @notice Interface for TermMax Vault V1Plus contract
[codex:1403078]  * @dev This interface defines the core functionality for vault operations including
[codex:1403078]  *      initialization, APY management, and pending parameter updates with timelock mechanism
[codex:1403078]  */
[codex:1403078] interface ITermMaxVaultV1Plus is IERC4626 {
[codex:1403078]     /**
[codex:1403078]      * @notice Initializes the vault with the provided parameters
[codex:1403078]      * @dev This function should only be called once during contract deployment
[codex:1403078]      * @param params The initial configuration parameters for the vault
[codex:1403078]      */
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Analyzing potential reentrancy and state risks**
[codex:1403078] 
[codex:1403078] I'm weighing if missing nonReentrant guards on redeemOrder and afterSwap might allow reentrant attacks causing inconsistent state or double updates, especially since deposit is protected but redeemOrder isn’t. I'm also noting pause-related access gaps and pondering if capacity or asset accounting could lead to issues, plus the risk of infinite loops in accrued interest previews—next I'll dive into related storage to grasp the assumptions better.
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,200p' contracts/contracts/v1/storage/TermMaxStorage.sol" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] pragma solidity ^0.8.0;
[codex:1403078] 
[codex:1403078] import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078] import {IOracle} from "../oracle/IOracle.sol";
[codex:1403078] import {ISwapCallback} from "../ISwapCallback.sol";
[codex:1403078] 
[codex:1403078] /**
[codex:1403078]  * @title The data struct of token pair
[codex:1403078]  * @author Term Structure Labs
[codex:1403078]  */
[codex:1403078] struct CurveCut {
[codex:1403078]     uint256 xtReserve;
[codex:1403078]     uint256 liqSquare;
[codex:1403078]     int256 offset;
[codex:1403078] }
[codex:1403078] 
[codex:1403078] struct FeeConfig {
[codex:1403078]     /// @notice The lending fee ratio taker
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Analyzing potential contract vulnerabilities**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg -n "contract ERC4626Upgradeable" -n contracts/dependencies/@openzeppelin-contracts-upgradeable-5.2.0/token/ERC20/extensions/ERC4626Upgradeable.sol' in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078] 51:abstract contract ERC4626Upgradeable is Initializable, ERC20Upgradeable, IERC4626 {
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "sed -n '1,80p' contracts/dependencies/@openzeppelin-contracts-upgradeable-5.2.0/token/ERC20/extensions/ERC4626Upgradeable.sol" in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078] // SPDX-License-Identifier: MIT
[codex:1403078] // OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/ERC4626.sol)
[codex:1403078] 
[codex:1403078] pragma solidity ^0.8.20;
[codex:1403078] 
[codex:1403078] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1403078] import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1403078] import {ERC20Upgradeable} from "../ERC20Upgradeable.sol";
[codex:1403078] import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1403078] import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol";
[codex:1403078] import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
[codex:1403078] import {Initializable} from "../../../proxy/utils/Initializable.sol";
[codex:1403078] 
[codex:1403078] /**
[codex:1403078]  * @dev Implementation of the ERC-4626 "Tokenized Vault Standard" as defined in
[codex:1403078]  * https://eips.ethereum.org/EIPS/eip-4626[ERC-4626].
[codex:1403078]  *
[codex:1403078]  * This extension allows the minting and burning of "shares" (represented using the ERC-20 inheritance) in exchange for
[codex:1403078]  * underlying "assets" through standardized {deposit}, {mint}, {redeem} and {burn} workflows. This contract extends
[codex:1403078]  * the ERC-20 standard. Any additional extensions included along it would affect the "shares" token represented by this
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Preparing to audit delegatecall usage**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg -n "delegatecall" contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol' in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078] 487:        (bool success, bytes memory returnData) = ORDER_MANAGER_SINGLETON.delegatecall(data);
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Evaluating delegatecall risks and access controls**
[codex:1403078] 
[codex:1403078] I'm examining the use of delegatecall to ORDER_MANAGER_SINGLETON and reviewing access controls, reentrancy guards, and pause functionality to identify potential vulnerabilities. It seems most risks depend on order manager’s validation, with concerns around delegatecall upgradeability, unguarded redeemOrder calls during pause, and possible unchecked withdrawals by the curator. I want to be careful about these conditional findings while considering overall contract logic and external dependencies.
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg -n "ORDER_MANAGER_SINGLETON" -n contracts/contracts' in /tmp/codex-multi-au1_xfpc succeeded in 9ms:
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:56:    address public immutable ORDER_MANAGER_SINGLETON;
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:101:    constructor(address ORDER_MANAGER_SINGLETON_) {
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:102:        ORDER_MANAGER_SINGLETON = ORDER_MANAGER_SINGLETON_;
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:487:        (bool success, bytes memory returnData) = ORDER_MANAGER_SINGLETON.delegatecall(data);
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Searching for delegatecall usage**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg -n "delegatecall" contracts/contracts' in /tmp/codex-multi-au1_xfpc succeeded in 8ms:
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:487:        (bool success, bytes memory returnData) = ORDER_MANAGER_SINGLETON.delegatecall(data);
[codex:1403078] 
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Identifying delegatecall and access control risks**
[codex:1403078] thinking
[codex:1403078] **Analyzing integer types and reentrancy implications**
[codex:1403078] 
[codex:1403078] There is a detailed look at integer size consistency in performance fee rates and pending values, finding they are safe due to bounds checks. I’m also exploring how the nonReentrant guards interact with delegatecalls, noticing that some functions like `afterSwap` are not protected, which could allow reentrancy during deposit or withdraw. The interplay between token transfers, delegatecalls, and reentrancy guards might enable subtle state-manipulation risks, especially if external callbacks occur mid-operation. I’m curious about the potential effect of these gaps and how critical they might be.
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'rg -n "afterSwap" contracts/contracts' in /tmp/codex-multi-au1_xfpc succeeded in 8ms:
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:826:    function afterSwap(uint256 ftReserve, uint256 xtReserve, int256 deltaFt, int256)
[codex:1403078] contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:832:        _delegateCall(abi.encodeCall(IOrderManager.afterSwap, (ftReserve, xtReserve, deltaFt)));
[codex:1403078] contracts/contracts/v1/vault/IOrderManager.sol:97:    function afterSwap(uint256 ftReserve, uint256 xtReserve, int256 deltaFt) external;
[codex:1403078] contracts/contracts/v1/ISwapCallback.sol:17:    function afterSwap(uint256 ftReserve, uint256 xtReserve, int256 deltaFt, int256 deltaXt) external;
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Analyzing potential vulnerabilities and planning findings**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Summarizing security findings and crafting JSON report**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "nl -ba contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol | sed -n '460,540p'" in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078]    460	
[codex:1403078]    461	        _delegateCall(abi.encodeCall(IOrderManager.depositAssets, (IERC20(asset()), assets)));
[codex:1403078]    462	        _mint(recipient, shares);
[codex:1403078]    463	
[codex:1403078]    464	        emit Deposit(caller, recipient, assets, shares);
[codex:1403078]    465	    }
[codex:1403078]    466	
[codex:1403078]    467	    /**
[codex:1403078]    468	     * @dev Withdraw/redeem common workflow.
[codex:1403078]    469	     */
[codex:1403078]    470	    function _withdraw(address caller, address receiver, address owner, uint256 assets, uint256 shares)
[codex:1403078]    471	        internal
[codex:1403078]    472	        override
[codex:1403078]    473	        nonReentrant
[codex:1403078]    474	        nonTxReentrantBetweenActions(ACTION_WITHDRAW)
[codex:1403078]    475	    {
[codex:1403078]    476	        if (caller != owner) {
[codex:1403078]    477	            _spendAllowance(owner, caller, shares);
[codex:1403078]    478	        }
[codex:1403078]    479	
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Locating afterSwap function**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "nl -ba contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol | sed -n '810,860p'" in /tmp/codex-multi-au1_xfpc succeeded in 6ms:
[codex:1403078]    810	            previewPrincipal += previewInterest;
[codex:1403078]    811	        }
[codex:1403078]    812	    }
[codex:1403078]    813	
[codex:1403078]    814	    function _previewAccruedPeriodInterest(uint256 startTime, uint256 endTime, uint256 previewAnnualizedInterest)
[codex:1403078]    815	        internal
[codex:1403078]    816	        view
[codex:1403078]    817	        returns (uint256, uint256)
[codex:1403078]    818	    {
[codex:1403078]    819	        uint256 interest = (previewAnnualizedInterest * (endTime - startTime)) / 365 days;
[codex:1403078]    820	        uint256 performanceFeeToCurator = (interest * _performanceFeeRate) / Constants.DECIMAL_BASE;
[codex:1403078]    821	        return (interest - performanceFeeToCurator, performanceFeeToCurator);
[codex:1403078]    822	    }
[codex:1403078]    823	
[codex:1403078]    824	    /// @notice Callback function for the swap
[codex:1403078]    825	    /// @param deltaFt The change in the ft balance of the order
[codex:1403078]    826	    function afterSwap(uint256 ftReserve, uint256 xtReserve, int256 deltaFt, int256)
[codex:1403078]    827	        external
[codex:1403078]    828	        virtual
[codex:1403078]    829	        override
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Locating ORDER_MANAGER_SINGLETON and constructor lines**
[codex:1403078] exec
[codex:1403078] /bin/bash -lc "nl -ba contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol | sed -n '40,120p'" in /tmp/codex-multi-au1_xfpc succeeded in 5ms:
[codex:1403078]     40	    VaultStorageV1Plus,
[codex:1403078]     41	    ITermMaxVault,
[codex:1403078]     42	    Ownable2StepUpgradeable,
[codex:1403078]     43	    ReentrancyGuardUpgradeable,
[codex:1403078]     44	    ERC4626Upgradeable,
[codex:1403078]     45	    PausableUpgradeable,
[codex:1403078]     46	    VaultErrors,
[codex:1403078]     47	    VaultEvents,
[codex:1403078]     48	    ISwapCallback,
[codex:1403078]     49	    ITermMaxVaultV1Plus,
[codex:1403078]     50	    TransactionReentrancyGuard
[codex:1403078]     51	{
[codex:1403078]     52	    using SafeCast for uint256;
[codex:1403078]     53	    using TransferUtils for IERC20;
[codex:1403078]     54	    using PendingLib for *;
[codex:1403078]     55	
[codex:1403078]     56	    address public immutable ORDER_MANAGER_SINGLETON;
[codex:1403078]     57	
[codex:1403078]     58	    // keccak256(abi.encode(uint256(keccak256("termmax.tsstorage.vault.actionDeposit")) - 1)) & ~bytes32(uint256(0xff))
[codex:1403078]     59	    uint256 private constant ACTION_DEPOSIT = 0x1d9ff85e70b948f53a2cc45fa6f42c020b2a8eec3349351855dea946b0635700;
[codex:1403078] 
[codex:1403078] thinking
[codex:1403078] **Preparing security findings and JSON output**
[codex:1403078] codex
[codex:1403078] {"no_findings":false,"summary":"Identified 2 issues: reliance on an external delegatecall-based order manager creates an implicit upgradeability backdoor, and the swap callback is publicly callable without caller validation.","findings":[{"severity":"high","category":"upgradeability","title":"Delegatecall to external ORDER_MANAGER_SINGLETON enables full vault takeover if that address is upgradeable/compromised","exploit_scenario":"If ORDER_MANAGER_SINGLETON is a proxy or otherwise upgradeable, its admin (or a compromised key) can swap in malicious logic. Because the vault uses delegatecall for core actions, the new logic can overwrite vault storage, mint/burn shares, or transfer assets out, effectively draining user funds.","recommendation":"Ensure ORDER_MANAGER_SINGLETON is a non-upgradeable, immutable implementation with a fixed codehash; consider validating codehash at deployment, or embed the order manager logic directly. If upgradeability is required, gate upgrades behind explicit, timelocked governance and document this trust assumption.","evidence":"The vault stores an external ORDER_MANAGER_SINGLETON and forwards critical operations through `delegatecall` in `_delegateCall`, giving the target full access to vault storage and assets.","locations":["contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:56","contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:486"]},{"severity":"medium","category":"access_control","title":"afterSwap callback is publicly callable with unvalidated parameters","exploit_scenario":"Any account can call `afterSwap` with arbitrary reserve/delta values (or reenter during token transfers) to trigger the order manager’s accounting logic. If the order manager relies on these inputs without strict caller validation, an attacker can skew interest/fee accounting or induce inconsistent state, potentially affecting share pricing and withdrawals.","recommendation":"Restrict `afterSwap` to authorized order contracts (e.g., require `_orderMapping[msg.sender]` to be set), validate the reserve/delta inputs against order state, and consider adding `nonReentrant` or a dedicated reentrancy guard for the callback.","evidence":"`afterSwap` is an external function with only a pause check and forwards user-supplied parameters directly into the order manager via delegatecall; there is no caller authentication in the vault.","locations":["contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:826"]}]}
[codex:1403078] tokens used
[codex:1403078] 65,062
[codex:1403078] {"no_findings":false,"summary":"Identified 2 issues: reliance on an external delegatecall-based order manager creates an implicit upgradeability backdoor, and the swap callback is publicly callable without caller validation.","findings":[{"severity":"high","category":"upgradeability","title":"Delegatecall to external ORDER_MANAGER_SINGLETON enables full vault takeover if that address is upgradeable/compromised","exploit_scenario":"If ORDER_MANAGER_SINGLETON is a proxy or otherwise upgradeable, its admin (or a compromised key) can swap in malicious logic. Because the vault uses delegatecall for core actions, the new logic can overwrite vault storage, mint/burn shares, or transfer assets out, effectively draining user funds.","recommendation":"Ensure ORDER_MANAGER_SINGLETON is a non-upgradeable, immutable implementation with a fixed codehash; consider validating codehash at deployment, or embed the order manager logic directly. If upgradeability is required, gate upgrades behind explicit, timelocked governance and document this trust assumption.","evidence":"The vault stores an external ORDER_MANAGER_SINGLETON and forwards critical operations through `delegatecall` in `_delegateCall`, giving the target full access to vault storage and assets.","locations":["contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:56","contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:486"]},{"severity":"medium","category":"access_control","title":"afterSwap callback is publicly callable with unvalidated parameters","exploit_scenario":"Any account can call `afterSwap` with arbitrary reserve/delta values (or reenter during token transfers) to trigger the order manager’s accounting logic. If the order manager relies on these inputs without strict caller validation, an attacker can skew interest/fee accounting or induce inconsistent state, potentially affecting share pricing and withdrawals.","recommendation":"Restrict `afterSwap` to authorized order contracts (e.g., require `_orderMapping[msg.sender]` to be set), validate the reserve/delta inputs against order state, and consider adding `nonReentrant` or a dedicated reentrancy guard for the callback.","evidence":"`afterSwap` is an external function with only a pause check and forwards user-supplied parameters directly into the order manager via delegatecall; there is no caller authentication in the vault.","locations":["contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:826"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-28T17:26:32.227598+00:00",
        "returncode": 0
    },
    "summary": "Identified 2 issues: reliance on an external delegatecall-based order manager creates an implicit upgradeability backdoor, and the swap callback is publicly callable without caller validation.",
    "raw_final": {
        "summary": "Identified 2 issues: reliance on an external delegatecall-based order manager creates an implicit upgradeability backdoor, and the swap callback is publicly callable without caller validation.",
        "findings": [
            {
                "title": "Delegatecall to external ORDER_MANAGER_SINGLETON enables full vault takeover if that address is upgradeable/compromised",
                "category": "upgradeability",
                "evidence": "The vault stores an external ORDER_MANAGER_SINGLETON and forwards critical operations through `delegatecall` in `_delegateCall`, giving the target full access to vault storage and assets.",
                "severity": "high",
                "locations": [
                    "contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:56",
                    "contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:486"
                ],
                "recommendation": "Ensure ORDER_MANAGER_SINGLETON is a non-upgradeable, immutable implementation with a fixed codehash; consider validating codehash at deployment, or embed the order manager logic directly. If upgradeability is required, gate upgrades behind explicit, timelocked governance and document this trust assumption.",
                "exploit_scenario": "If ORDER_MANAGER_SINGLETON is a proxy or otherwise upgradeable, its admin (or a compromised key) can swap in malicious logic. Because the vault uses delegatecall for core actions, the new logic can overwrite vault storage, mint/burn shares, or transfer assets out, effectively draining user funds."
            },
            {
                "title": "afterSwap callback is publicly callable with unvalidated parameters",
                "category": "access_control",
                "evidence": "`afterSwap` is an external function with only a pause check and forwards user-supplied parameters directly into the order manager via delegatecall; there is no caller authentication in the vault.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:826"
                ],
                "recommendation": "Restrict `afterSwap` to authorized order contracts (e.g., require `_orderMapping[msg.sender]` to be set), validate the reserve/delta inputs against order state, and consider adding `nonReentrant` or a dedicated reentrancy guard for the callback.",
                "exploit_scenario": "Any account can call `afterSwap` with arbitrary reserve/delta values (or reenter during token transfers) to trigger the order manager\u2019s accounting logic. If the order manager relies on these inputs without strict caller validation, an attacker can skew interest/fee accounting or induce inconsistent state, potentially affecting share pricing and withdrawals."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
5
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
5
Total opcodes
12629
Flags
delegatecall_present create_opcodes_present heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: ISZERO
0000000a: PUSH2 0x0011
0000000d: JUMPI
0000000e: PUSH0
0000000f: DUP1
00000010: REVERT
00000011: JUMPDEST
00000012: PUSH0
00000013: CALLDATALOAD
00000014: PUSH1 0xe0
00000016: SHR
00000017: DUP1
00000018: PUSH4 0x01e1d114
0000001d: EQ
0000001e: PUSH2 0x05c5
00000021: JUMPI
00000022: DUP1
00000023: PUSH4 0x06fdde03
00000028: EQ
00000029: PUSH2 0x05c0
0000002c: JUMPI
0000002d: DUP1
0000002e: PUSH4 0x07a2d13a
00000033: EQ
00000034: PUSH2 0x053e
00000037: JUMPI
00000038: DUP1
00000039: PUSH4 0x095ea7b3
0000003e: EQ
0000003f: PUSH2 0x05bb
00000042: JUMPI
00000043: DUP1
00000044: PUSH4 0x0a28a477
00000049: EQ
0000004a: PUSH2 0x05b6
0000004d: JUMPI
0000004e: DUP1
0000004f: PUSH4 0x0d8e6e2c
00000054: EQ
00000055: PUSH2 0x05b1
00000058: JUMPI
00000059: DUP1
0000005a: PUSH4 0x0f4f0c32
0000005f: EQ
00000060: PUSH2 0x05ac
00000063: JUMPI
00000064: DUP1
00000065: PUSH4 0x0ffbfda4
0000006a: EQ
0000006b: PUSH2 0x05a7
0000006e: JUMPI
0000006f: DUP1
00000070: PUSH4 0x1124f92c
00000075: EQ
00000076: PUSH2 0x05a2
00000079: JUMPI
0000007a: DUP1
0000007b: PUSH4 0x163c8c77
00000080: EQ
00000081: PUSH2 0x059d
00000084: JUMPI
00000085: DUP1
00000086: PUSH4 0x18160ddd
0000008b: EQ
0000008c: PUSH2 0x0598
0000008f: JUMPI
00000090: DUP1
00000091: PUSH4 0x1908a2ee
00000096: EQ
00000097: PUSH2 0x0593
0000009a: JUMPI
0000009b: DUP1
0000009c: PUSH4 0x1ecca77c
000000a1: EQ
000000a2: PUSH2 0x058e
000000a5: JUMPI
000000a6: DUP1
000000a7: PUSH4 0x23b872dd
000000ac: EQ
000000ad: PUSH2 0x0589
000000b0: JUMPI
000000b1: DUP1
000000b2: PUSH4 0x24524a96
000000b7: EQ
000000b8: PUSH2 0x0584
000000bb: JUMPI
000000bc: DUP1
000000bd: PUSH4 0x313ce567
000000c2: EQ
000000c3: PUSH2 0x057f
000000c6: JUMPI
000000c7: DUP1
000000c8: PUSH4 0x332f47ba
000000cd: EQ
000000ce: PUSH2 0x057a
000000d1: JUMPI
000000d2: DUP1
000000d3: PUSH4 0x33f91ebb
000000d8: EQ
000000d9: PUSH2 0x0575
000000dc: JUMPI
000000dd: DUP1
000000de: PUSH4 0x3775d83a
000000e3: EQ
000000e4: PUSH2 0x0570
000000e7: JUMPI
000000e8: DUP1
000000e9: PUSH4 0x38d52e0f
000000ee: EQ
000000ef: PUSH2 0x056b
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0x3bcfc4b8
000000f9: EQ
000000fa: PUSH2 0x0566
000000fd: JUMPI
000000fe: DUP1
000000ff: PUSH4 0x3f38db41
00000104: EQ
00000105: PUSH2 0x0561
00000108: JUMPI
00000109: DUP1
0000010a: PUSH4 0x3f4ba83a
0000010f: EQ
00000110: PUSH2 0x055c
00000113: JUMPI
00000114: DUP1
00000115: PUSH4 0x402d267d
0000011a: EQ
0000011b: PUSH2 0x0557
0000011e: JUMPI
0000011f: DUP1
00000120: PUSH4 0x41b67833
00000125: EQ
00000126: PUSH2 0x0552
00000129: JUMPI
0000012a: DUP1
0000012b: PUSH4 0x452a9320
00000130: EQ
00000131: PUSH2 0x054d
00000134: JUMPI
00000135: DUP1
00000136: PUSH4 0x460bf7e1
0000013b: EQ
0000013c: PUSH2 0x0548
0000013f: JUMPI
00000140: DUP1
00000141: PUSH4 0x48c70966
00000146: EQ
00000147: PUSH2 0x0543
0000014a: JUMPI
0000014b: DUP1
0000014c: PUSH4 0x4cdad506
00000151: EQ
00000152: PUSH2 0x053e
00000155: JUMPI
00000156: DUP1
00000157: PUSH4 0x4dedf20e
0000015c: EQ
0000015d: PUSH2 0x0539
00000160: JUMPI
00000161: DUP1
00000162: PUSH4 0x57ded9c9
00000167: EQ
00000168: PUSH2 0x0534
0000016b: JUMPI
0000016c: DUP1
0000016d: PUSH4 0x594d16f7
00000172: EQ
00000173: PUSH2 0x052f
00000176: JUMPI
00000177: DUP1
00000178: PUSH4 0x5c975abb
0000017d: EQ
0000017e: PUSH2 0x052a
00000181: JUMPI
00000182: DUP1
00000183: PUSH4 0x5f19ed69
00000188: EQ
00000189: PUSH2 0x0525
0000018c: JUMPI
0000018d: DUP1
0000018e: PUSH4 0x618f9694
00000193: EQ
00000194: PUSH2 0x0520
00000197: JUMPI
00000198: DUP1
00000199: PUSH4 0x62518ddf
0000019e: EQ
0000019f: PUSH2 0x051b
000001a2: JUMPI
000001a3: DUP1
000001a4: PUSH4 0x69c42125
000001a9: EQ
000001aa: PUSH2 0x0516
000001ad: JUMPI
000001ae: DUP1
000001af: PUSH4 0x6e553f65
000001b4: EQ
000001b5: PUSH2 0x0511
000001b8: JUMPI
000001b9: DUP1
000001ba: PUSH4 0x70a08231
000001bf: EQ
000001c0: PUSH2 0x0453
000001c3: JUMPI
000001c4: DUP1
000001c5: PUSH4 0x715018a6
000001ca: EQ
000001cb: PUSH2 0x050c
000001ce: JUMPI
000001cf: DUP1
000001d0: PUSH4 0x7207fbb4
000001d5: EQ
000001d6: PUSH2 0x0507
000001d9: JUMPI
000001da: DUP1
000001db: PUSH4 0x7224a512
000001e0: EQ
000001e1: PUSH2 0x0502
000001e4: JUMPI
000001e5: DUP1
000001e6: PUSH4 0x762c31ba
000001eb: EQ
000001ec: PUSH2 0x04fd
000001ef: JUMPI
000001f0: DUP1
000001f1: PUSH4 0x77e1731b
000001f6: EQ
000001f7: PUSH2 0x04f8
000001fa: JUMPI
000001fb: DUP1
000001fc: PUSH4 0x79ba5097
00000201: EQ
00000202: PUSH2 0x04f3
00000205: JUMPI
00000206: DUP1
00000207: PUSH4 0x7cc4d9a1
0000020c: EQ
0000020d: PUSH2 0x04ee
00000210: JUMPI
00000211: DUP1
00000212: PUSH4 0x80a58a5e
00000217: EQ
00000218: PUSH2 0x04e9
0000021b: JUMPI
0000021c: DUP1
0000021d: PUSH4 0x8456cb59
00000222: EQ
00000223: PUSH2 0x04e4
00000226: JUMPI
00000227: DUP1
00000228: PUSH4 0x86c058ed
0000022d: EQ
0000022e: PUSH2 0x04df
00000231: JUMPI
00000232: DUP1
00000233: PUSH4 0x87788782
00000238: EQ
00000239: PUSH2 0x04da
0000023c: JUMPI
0000023d: DUP1
0000023e: PUSH4 0x89716a25
00000243: EQ
00000244: PUSH2 0x04d5
00000247: JUMPI
00000248: DUP1
00000249: PUSH4 0x8a2c7b39
0000024e: EQ
0000024f: PUSH2 0x04d0
00000252: JUMPI
00000253: DUP1
00000254: PUSH4 0x8da5cb5b
00000259: EQ
0000025a: PUSH2 0x04cb
0000025d: JUMPI
0000025e: DUP1
0000025f: PUSH4 0x91915ef8
00000264: EQ
00000265: PUSH2 0x04c6
00000268: JUMPI
00000269: DUP1
0000026a: PUSH4 0x93bd007b
0000026f: EQ
00000270: PUSH2 0x04c1
00000273: JUMPI
00000274: DUP1
00000275: PUSH4 0x94bf804d
0000027a: EQ
0000027b: PUSH2 0x04bc
0000027e: JUMPI
0000027f: DUP1
00000280: PUSH4 0x95d89b41
00000285: EQ
00000286: PUSH2 0x04b7
00000289: JUMPI
0000028a: DUP1
0000028b: PUSH4 0x988a64c4
00000290: EQ
00000291: PUSH2 0x04b2
00000294: JUMPI
00000295: DUP1
00000296: PUSH4 0x9d6b4a45
0000029b: EQ
0000029c: PUSH2 0x04ad
0000029f: JUMPI
000002a0: DUP1
000002a1: PUSH4 0xa1251f37
000002a6: EQ
000002a7: PUSH2 0x04a8
000002aa: JUMPI
000002ab: DUP1
000002ac: PUSH4 0xa17b3130
000002b1: EQ
000002b2: PUSH2 0x04a3
000002b5: JUMPI
000002b6: DUP1
000002b7: PUSH4 0xa5f31d61
000002bc: EQ
000002bd: PUSH2 0x049e
000002c0: JUMPI
000002c1: DUP1
000002c2: PUSH4 0xa9059cbb
000002c7: EQ
000002c8: PUSH2 0x0499
000002cb: JUMPI
000002cc: DUP1
000002cd: PUSH4 0xa9133f5e
000002d2: EQ
000002d3: PUSH2 0x0494
000002d6: JUMPI
000002d7: DUP1
000002d8: PUSH4 0xac4ed57a
000002dd: EQ
000002de: PUSH2 0x048f
000002e1: JUMPI
000002e2: DUP1
000002e3: PUSH4 0xad15a208
000002e8: EQ
000002e9: PUSH2 0x048a
000002ec: JUMPI
000002ed: DUP1
000002ee: PUSH4 0xb192a84a
000002f3: EQ
000002f4: PUSH2 0x0485
000002f7: JUMPI
000002f8: DUP1
000002f9: PUSH4 0xb3d7f6b9
000002fe: EQ
000002ff: PUSH2 0x0480
00000302: JUMPI
00000303: DUP1
00000304: PUSH4 0xb460af94
00000309: EQ
0000030a: PUSH2 0x047b
0000030d: JUMPI
0000030e: DUP1
0000030f: PUSH4 0xba087652
00000314: EQ
00000315: PUSH2 0x0476
00000318: JUMPI
00000319: DUP1
0000031a: PUSH4 0xc63d75b6
0000031f: EQ
00000320: PUSH2 0x0471
00000323: JUMPI
00000324: DUP1
00000325: PUSH4 0xc6e6f592
0000032a: EQ
0000032b: PUSH2 0x0426
0000032e: JUMPI
0000032f: DUP1
00000330: PUSH4 0xc9649aa9
00000335: EQ
00000336: PUSH2 0x046c
00000339: JUMPI
0000033a: DUP1
0000033b: PUSH4 0xcb3cab67
00000340: EQ
00000341: PUSH2 0x0467
00000344: JUMPI
00000345: DUP1
00000346: PUSH4 0xce96cb77
0000034b: EQ
0000034c: PUSH2 0x0462
0000034f: JUMPI
00000350: DUP1
00000351: PUSH4 0xd209643a
00000356: EQ
00000357: PUSH2 0x045d
0000035a: JUMPI
0000035b: DUP1
0000035c: PUSH4 0xd33219b4
00000361: EQ
00000362: PUSH2 0x0458
00000365: JUMPI
00000366: DUP1
00000367: PUSH4 0xd905777e
0000036c: EQ
0000036d: PUSH2 0x0453
00000370: JUMPI
00000371: DUP1
00000372: PUSH4 0xda3f224a
00000377: EQ
00000378: PUSH2 0x044e
0000037b: JUMPI
0000037c: DUP1
0000037d: PUSH4 0xdd62ed3e
00000382: EQ
00000383: PUSH2 0x0449
00000386: JUMPI
00000387: DUP1
00000388: PUSH4 0xe30c3978
0000038d: EQ
0000038e: PUSH2 0x0444
00000391: JUMPI
00000392: DUP1
00000393: PUSH4 0xe34c721b
00000398: EQ
00000399: PUSH2 0x043f
0000039c: JUMPI
0000039d: DUP1
0000039e: PUSH4 0xe5c6c88d
000003a3: EQ
000003a4: PUSH2 0x043a
000003a7: JUMPI
000003a8: DUP1
000003a9: PUSH4 0xe66f53b7
000003ae: EQ
000003af: PUSH2 0x0435
000003b2: JUMPI
000003b3: DUP1
000003b4: PUSH4 0xe850bff0
000003b9: EQ
000003ba: PUSH2 0x0430
000003bd: JUMPI
000003be: DUP1
000003bf: PUSH4 0xe90956cf
000003c4: EQ
000003c5: PUSH2 0x042b
000003c8: JUMPI
000003c9: DUP1
000003ca: PUSH4 0xef8b30f7
000003cf: EQ
000003d0: PUSH2 0x0426
000003d3: JUMPI
000003d4: DUP1
000003d5: PUSH4 0xf199a00e
000003da: EQ
000003db: PUSH2 0x0421
000003de: JUMPI
000003df: DUP1
000003e0: PUSH4 0xf2fde38b
000003e5: EQ
000003e6: PUSH2 0x041c
000003e9: JUMPI
000003ea: DUP1
000003eb: PUSH4 0xf6b6a7a4
000003f0: EQ
000003f1: PUSH2 0x0417
000003f4: JUMPI
000003f5: DUP1
000003f6: PUSH4 0xf7d18521
000003fb: EQ
000003fc: PUSH2 0x0412
000003ff: JUMPI
00000400: PUSH4 0xfcabcc14
00000405: EQ
00000406: PUSH2 0x040d
00000409: JUMPI
0000040a: PUSH0
0000040b: DUP1
0000040c: REVERT
0000040d: JUMPDEST
0000040e: PUSH2 0x31d8
00000411: JUMP
00000412: JUMPDEST
00000413: PUSH2 0x31b8
00000416: JUMP
00000417: JUMPDEST
00000418: PUSH2 0x3117
0000041b: JUMP
0000041c: JUMPDEST
0000041d: PUSH2 0x308f
00000420: JUMP
00000421: JUMPDEST
00000422: PUSH2 0x2f6d
00000425: JUMP
00000426: JUMPDEST
00000427: PUSH2 0x2b4e
0000042a: JUMP
0000042b: JUMPDEST
0000042c: PUSH2 0x2f2a
0000042f: JUMP
00000430: JUMPDEST
00000431: PUSH2 0x2eb4
00000434: JUMP
00000435: JUMPDEST
00000436: PUSH2 0x2e8c
00000439: JUMP
0000043a: JUMPDEST
0000043b: PUSH2 0x2e66
0000043e: JUMP
0000043f: JUMPDEST
00000440: PUSH2 0x2dcf
00000443: JUMP
00000444: JUMPDEST
00000445: PUSH2 0x2d9b
00000448: JUMP
00000449: JUMPDEST
0000044a: PUSH2 0x2d5b
0000044d: JUMP
0000044e: JUMPDEST
0000044f: PUSH2 0x2d07
00000452: JUMP
00000453: JUMPDEST
00000454: PUSH2 0x166f
00000457: JUMP
00000458: JUMPDEST
00000459: PUSH2 0x2cea
0000045c: JUMP
0000045d: JUMPDEST
0000045e: PUSH2 0x2c83
00000461: JUMP
00000462: JUMPDEST
00000463: PUSH2 0x2c5c
00000466: JUMP
00000467: JUMPDEST
00000468: PUSH2 0x2be0
0000046b: JUMP
0000046c: JUMPDEST
0000046d: PUSH2 0x2b6c
00000470: JUMP
00000471: JUMPDEST
00000472: PUSH2 0x2b28
00000475: JUMP
00000476: JUMPDEST
00000477: PUSH2 0x29be
0000047a: JUMP
0000047b: JUMPDEST
0000047c: PUSH2 0x2816
0000047f: JUMP
00000480: JUMPDEST
00000481: PUSH2 0x27cf
00000484: JUMP
00000485: JUMPDEST
00000486: PUSH2 0x2743
00000489: JUMP
0000048a: JUMPDEST
0000048b: PUSH2 0x2607
0000048e: JUMP
0000048f: JUMPDEST
00000490: PUSH2 0x2593
00000493: JUMP
00000494: JUMPDEST
00000495: PUSH2 0x252c
00000498: JUMP
00000499: JUMPDEST
0000049a: PUSH2 0x2502
0000049d: JUMP
0000049e: JUMPDEST
0000049f: PUSH2 0x24c4
000004a2: JUMP
000004a3: JUMPDEST
000004a4: PUSH2 0x24a5
000004a7: JUMP
000004a8: JUMPDEST
000004a9: PUSH2 0x2385
000004ac: JUMP
000004ad: JUMPDEST
000004ae: PUSH2 0x22ac
000004b1: JUMP
000004b2: JUMPDEST
000004b3: PUSH2 0x225b
000004b6: JUMP
000004b7: JUMPDEST
000004b8: PUSH2 0x219e
000004bb: JUMP
000004bc: JUMPDEST
000004bd: PUSH2 0x2038
000004c0: JUMP
000004c1: JUMPDEST
000004c2: PUSH2 0x1f67
000004c5: JUMP
000004c6: JUMPDEST
000004c7: PUSH2 0x1f08
000004ca: JUMP
000004cb: JUMPDEST
000004cc: PUSH2 0x1ed4
000004cf: JUMP
000004d0: JUMPDEST
000004d1: PUSH2 0x1e9f
000004d4: JUMP
000004d5: JUMPDEST
000004d6: PUSH2 0x1d97
000004d9: JUMP
000004da: JUMPDEST
000004db: PUSH2 0x1d6a
000004de: JUMP
000004df: JUMPDEST
000004e0: PUSH2 0x1cf6
000004e3: JUMP
000004e4: JUMPDEST
000004e5: PUSH2 0x1c85
000004e8: JUMP
000004e9: JUMPDEST
000004ea: PUSH2 0x1c11
000004ed: JUMP
000004ee: JUMPDEST
000004ef: PUSH2 0x1baa
000004f2: JUMP
000004f3: JUMPDEST
000004f4: PUSH2 0x1b5e
000004f7: JUMP
000004f8: JUMPDEST
000004f9: PUSH2 0x1a7a
000004fc: JUMP
000004fd: JUMPDEST
000004fe: PUSH2 0x1998
00000501: JUMP
00000502: JUMPDEST
00000503: PUSH2 0x18c6
00000506: JUMP
00000507: JUMPDEST
00000508: PUSH2 0x1713
0000050b: JUMP
0000050c: JUMPDEST
0000050d: PUSH2 0x1696
00000510: JUMP
00000511: JUMPDEST
00000512: PUSH2 0x1474
00000515: JUMP
00000516: JUMPDEST
00000517: PUSH2 0x144e
0000051a: JUMP
0000051b: JUMPDEST
0000051c: PUSH2 0x142e
0000051f: JUMP
00000520: JUMPDEST
00000521: PUSH2 0x13f3
00000524: JUMP
00000525: JUMPDEST
00000526: PUSH2 0x1302
00000529: JUMP
0000052a: JUMPDEST
0000052b: PUSH2 0x116c
0000052e: JUMP
0000052f: JUMPDEST
00000530: PUSH2 0x05c5
00000533: JUMP
00000534: JUMPDEST
00000535: PUSH2 0x114d
00000538: JUMP
00000539: JUMPDEST
0000053a: PUSH2 0x110d
0000053d: JUMP
0000053e: JUMPDEST
0000053f: PUSH2 0x0711
00000542: JUMP
00000543: JUMPDEST
00000544: PUSH2 0x10ed
00000547: JUMP
00000548: JUMPDEST
00000549: PUSH2 0x1067
0000054c: JUMP
0000054d: JUMPDEST
0000054e: PUSH2 0x1040
00000551: JUMP
00000552: JUMPDEST
00000553: PUSH2 0x0fca
00000556: JUMP
00000557: JUMPDEST
00000558: PUSH2 0x0e58
0000055b: JUMP
0000055c: JUMPDEST
0000055d: PUSH2 0x0dda
00000560: JUMP
00000561: JUMPDEST
00000562: PUSH2 0x0d73
00000565: JUMP
00000566: JUMPDEST
00000567: PUSH2 0x0d59
0000056a: JUMP
0000056b: JUMPDEST
0000056c: PUSH2 0x0d25
0000056f: JUMP
00000570: JUMPDEST
00000571: PUSH2 0x0cbe
00000574: JUMP
00000575: JUMPDEST
00000576: PUSH2 0x0c9f
00000579: JUMP
0000057a: JUMPDEST
0000057b: PUSH2 0x0c64
0000057e: JUMP
0000057f: JUMPDEST
00000580: PUSH2 0x0c27
00000583: JUMP
00000584: JUMPDEST
00000585: PUSH2 0x0bfe
00000588: JUMP
00000589: JUMPDEST
0000058a: PUSH2 0x0bb3
0000058d: JUMP
0000058e: JUMPDEST
0000058f: PUSH2 0x0b30
00000592: JUMP
00000593: JUMPDEST
00000594: PUSH2 0x0af0
00000597: JUMP
00000598: JUMPDEST
00000599: PUSH2 0x0ac7
0000059c: JUMP
0000059d: JUMPDEST
0000059e: PUSH2 0x0a6e
000005a1: JUMP
000005a2: JUMPDEST
000005a3: PUSH2 0x08fc
000005a6: JUMP
000005a7: JUMPDEST
000005a8: PUSH2 0x08ae
000005ab: JUMP
000005ac: JUMPDEST
000005ad: PUSH2 0x086a
000005b0: JUMP
000005b1: JUMPDEST
000005b2: PUSH2 0x082b
000005b5: JUMP
000005b6: JUMPDEST
000005b7: PUSH2 0x080d
000005ba: JUMP
000005bb: JUMPDEST
000005bc: PUSH2 0x0755
000005bf: JUMP
000005c0: JUMPDEST
000005c1: PUSH2 0x061f
000005c4: JUMP
000005c5: JUMPDEST
000005c6: CALLVALUE
000005c7: PUSH2 0x05f1
000005ca: JUMPI
000005cb: PUSH0
000005cc: CALLDATASIZE
000005cd: PUSH1 0x03
000005cf: NOT
000005d0: ADD
000005d1: SLT
000005d2: PUSH2 0x05f1
000005d5: JUMPI
000005d6: PUSH1 0x20
000005d8: PUSH7 0x2386f26fc10000
000005e0: PUSH2 0x05e7
000005e3: PUSH2 0x3b3a
000005e6: JUMP
000005e7: JUMPDEST
000005e8: POP
000005e9: DIV
000005ea: PUSH1 0x40
000005ec: MLOAD
000005ed: SWAP1
000005ee: DUP2
000005ef: MSTORE
000005f0: RETURN
000005f1: JUMPDEST
000005f2: PUSH0
000005f3: DUP1
000005f4: REVERT
000005f5: JUMPDEST
000005f6: PUSH1 0x20
000005f8: PUSH1 0x40
000005fa: SWAP3
000005fb: DUP2
000005fc: DUP4
000005fd: MSTORE
000005fe: DUP1
000005ff: MLOAD
00000600: SWAP2
00000601: DUP3
00000602: SWAP2
00000603: DUP3
00000604: DUP3
00000605: DUP7
00000606: ADD
00000607: MSTORE
00000608: ADD
00000609: DUP5
0000060a: DUP5
0000060b: ADD
0000060c: MCOPY
0000060d: PUSH0
0000060e: DUP3
0000060f: DUP3
00000610: ADD
00000611: DUP5
00000612: ADD
00000613: MSTORE
00000614: PUSH1 0x1f
00000616: ADD
00000617: PUSH1 0x1f
00000619: NOT
0000061a: AND
0000061b: ADD
0000061c: ADD
0000061d: SWAP1
0000061e: JUMP
0000061f: JUMPDEST
00000620: CALLVALUE
00000621: PUSH2 0x05f1
00000624: JUMPI
00000625: PUSH0
00000626: CALLDATASIZE
00000627: PUSH1 0x03
00000629: NOT
0000062a: ADD
0000062b: SLT
0000062c: PUSH2 0x05f1
0000062f: JUMPI
00000630: PUSH1 0x40
00000632: MLOAD
00000633: PUSH0
00000634: PUSH0
00000635: MLOAD
00000636: PUSH1 0x20
00000638: PUSH2 0x4cc2
0000063b: PUSH0
0000063c: CODECOPY
0000063d: PUSH0
0000063e: MLOAD
0000063f: SWAP1
00000640: PUSH0
00000641: MSTORE
00000642: SLOAD
00000643: PUSH2 0x064b
00000646: DUP2
00000647: PUSH2 0x32e7
0000064a: JUMP
0000064b: JUMPDEST
0000064c: DUP1
0000064d: DUP5
0000064e: MSTORE
0000064f: SWAP1
00000650: PUSH1 0x01
00000652: DUP2
00000653: AND
00000654: SWAP1
00000655: DUP2
00000656: ISZERO
00000657: PUSH2 0x06ed
0000065a: JUMPI
0000065b: POP
0000065c: PUSH1 0x01
0000065e: EQ
0000065f: PUSH2 0x0683
00000662: JUMPI
00000663: JUMPDEST
00000664: PUSH2 0x067f
00000667: DUP4
00000668: PUSH2 0x0673
0000066b: DUP2
0000066c: DUP6
0000066d: SUB
0000066e: DUP3
0000066f: PUSH2 0x0ee8
00000672: JUMP
00000673: JUMPDEST
00000674: PUSH1 0x40
00000676: MLOAD
00000677: SWAP2
00000678: DUP3
00000679: SWAP2
0000067a: DUP3
0000067b: PUSH2 0x05f5
0000067e: JUMP
0000067f: JUMPDEST
00000680: SUB
00000681: SWAP1
00000682: RETURN
00000683: JUMPDEST
00000684: PUSH0
00000685: MLOAD
00000686: PUSH1 0x20
00000688: PUSH2 0x4cc2
0000068b: PUSH0
0000068c: CODECOPY
0000068d: PUSH0
0000068e: MLOAD
0000068f: SWAP1
00000690: PUSH0
00000691: MSTORE
00000692: PUSH0
00000693: SWAP1
00000694: DUP2
00000695: MSTORE
00000696: PUSH32 0x2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0
000006b7: SWAP4
000006b8: SWAP3
000006b9: POP
000006ba: SWAP1
000006bb: JUMPDEST
000006bc: DUP1
000006bd: DUP3
000006be: LT
000006bf: PUSH2 0x06d3
000006c2: JUMPI
000006c3: POP
000006c4: SWAP1
000006c5: SWAP2
000006c6: POP
000006c7: DUP2
000006c8: ADD
000006c9: PUSH1 0x20
000006cb: ADD
000006cc: PUSH2 0x0673
000006cf: PUSH2 0x0663
000006d2: JUMP
000006d3: JUMPDEST
000006d4: SWAP2
000006d5: SWAP3
000006d6: PUSH1 0x01
000006d8: DUP2
000006d9: PUSH1 0x20
000006db: SWAP3
000006dc: SLOAD
000006dd: DUP4
000006de: DUP6
000006df: DUP9
000006e0: ADD
000006e1: ADD
000006e2: MSTORE
000006e3: ADD
000006e4: SWAP2
000006e5: ADD
000006e6: SWAP1
000006e7: SWAP3
000006e8: SWAP2
000006e9: PUSH2 0x06bb
000006ec: JUMP
000006ed: JUMPDEST
000006ee: PUSH1 0xff
000006f0: NOT
000006f1: AND
000006f2: PUSH1 0x20
000006f4: DUP1
000006f5: DUP7
000006f6: ADD
000006f7: SWAP2
000006f8: SWAP1
000006f9: SWAP2
000006fa: MSTORE
000006fb: SWAP2
000006fc: ISZERO
000006fd: ISZERO
000006fe: PUSH1 0x05
00000700: SHL
00000701: DUP5
00000702: ADD
00000703: SWAP1
00000704: SWAP2
00000705: ADD
00000706: SWAP2
00000707: POP
00000708: PUSH2 0x0673
0000070b: SWAP1
0000070c: POP
0000070d: PUSH2 0x0663
00000710: JUMP
00000711: JUMPDEST
00000712: CALLVALUE
00000713: PUSH2 0x05f1
00000716: JUMPI
00000717: PUSH1 0x20
00000719: CALLDATASIZE
0000071a: PUSH1 0x03
0000071c: NOT
0000071d: ADD
0000071e: SLT
0000071f: PUSH2 0x05f1
00000722: JUMPI
00000723: PUSH1 0x20
00000725: PUSH2 0x072f
00000728: PUSH1 0x04
0000072a: CALLDATALOAD
0000072b: PUSH2 0x3c91
0000072e: JUMP
0000072f: JUMPDEST
00000730: PUSH1 0x40
00000732: MLOAD
00000733: SWAP1
00000734: DUP2
00000735: MSTORE
00000736: RETURN
00000737: JUMPDEST
00000738: PUSH1 0x01
0000073a: PUSH1 0x01
0000073c: PUSH1 0xa0
0000073e: SHL
0000073f: SUB
00000740: DUP2
00000741: AND
00000742: SUB
00000743: PUSH2 0x05f1
00000746: JUMPI
00000747: JUMP
00000748: JUMPDEST
00000749: CALLDATALOAD
0000074a: SWAP1
0000074b: PUSH2 0x0753
0000074e: DUP3
0000074f: PUSH2 0x0737
00000752: JUMP
00000753: JUMPDEST
00000754: JUMP
00000755: JUMPDEST
00000756: CALLVALUE
00000757: PUSH2 0x05f1
0000075a: JUMPI
0000075b: PUSH1 0x40
0000075d: CALLDATASIZE
0000075e: PUSH1 0x03
00000760: NOT
00000761: ADD
00000762: SLT
00000763: PUSH2 0x05f1
00000766: JUMPI
00000767: PUSH1 0x04
00000769: CALLDATALOAD
0000076a: PUSH2 0x0772
0000076d: DUP2
0000076e: PUSH2 0x0737
00000771: JUMP
00000772: JUMPDEST
00000773: PUSH1 0x24
00000775: CALLDATALOAD
00000776: CALLER
00000777: ISZERO
00000778: PUSH2 0x07fa
0000077b: JUMPI
0000077c: PUSH1 0x01
0000077e: PUSH1 0x01
00000780: PUSH1 0xa0
00000782: SHL
00000783: SUB
00000784: DUP3
00000785: AND
00000786: SWAP2
00000787: DUP3
00000788: ISZERO
00000789: PUSH2 0x07e7
0000078c: JUMPI
0000078d: PUSH2 0x07af
00000790: DUP3
00000791: SWAP2
00000792: PUSH2 0x079a
00000795: CALLER
00000796: PUSH2 0x331f
00000799: JUMP
0000079a: JUMPDEST
0000079b: SWAP1
0000079c: PUSH1 0x01
0000079e: DUP1
0000079f: PUSH1 0xa0
000007a1: SHL
000007a2: SUB
000007a3: AND
000007a4: PUSH0
000007a5: MSTORE
000007a6: PUSH1 0x20
000007a8: MSTORE
000007a9: PUSH1 0x40
000007ab: PUSH0
000007ac: KECCAK256
000007ad: SWAP1
000007ae: JUMP
000007af: JUMPDEST
000007b0: SSTORE
000007b1: PUSH1 0x40
000007b3: MLOAD
000007b4: SWAP1
000007b5: DUP2
000007b6: MSTORE
000007b7: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
000007d8: PUSH1 0x20
000007da: CALLER
000007db: SWAP3
000007dc: LOG3
000007dd: PUSH1 0x20
000007df: PUSH1 0x40
000007e1: MLOAD
000007e2: PUSH1 0x01
000007e4: DUP2
000007e5: MSTORE
000007e6: RETURN
000007e7: JUMPDEST
000007e8: PUSH4 0x4a1406b1
000007ed: PUSH1 0xe1
000007ef: SHL
000007f0: PUSH0
000007f1: MSTORE
000007f2: PUSH0
000007f3: PUSH1 0x04
000007f5: MSTORE
000007f6: PUSH1 0x24
000007f8: PUSH0
000007f9: REVERT
000007fa: JUMPDEST
000007fb: PUSH4 0xe602df05
00000800: PUSH1 0xe0
00000802: SHL
00000803: PUSH0
00000804: MSTORE
00000805: PUSH0
00000806: PUSH1 0x04
00000808: MSTORE
00000809: PUSH1 0x24
0000080b: PUSH0
0000080c: REVERT
0000080d: JUMPDEST
0000080e: CALLVALUE
0000080f: PUSH2 0x05f1
00000812: JUMPI
00000813: PUSH1 0x20
00000815: CALLDATASIZE
00000816: PUSH1 0x03
00000818: NOT
00000819: ADD
0000081a: SLT
0000081b: PUSH2 0x05f1
0000081e: JUMPI
0000081f: PUSH1 0x20
00000821: PUSH2 0x072f
00000824: PUSH1 0x04
00000826: CALLDATALOAD
00000827: PUSH2 0x3d18
0000082a: JUMP
0000082b: JUMPDEST
0000082c: CALLVALUE
0000082d: PUSH2 0x05f1
00000830: JUMPI
00000831: PUSH0
00000832: CALLDATASIZE
00000833: PUSH1 0x03
00000835: NOT
00000836: ADD
00000837: SLT
00000838: PUSH2 0x05f1
0000083b: JUMPI
0000083c: PUSH2 0x067f
0000083f: PUSH1 0x40
00000841: MLOAD
00000842: PUSH2 0x084c
00000845: PUSH1 0x40
00000847: DUP3
00000848: PUSH2 0x0ee8
0000084b: JUMP
0000084c: JUMPDEST
0000084d: PUSH1 0x05
0000084f: DUP2
00000850: MSTORE
00000851: PUSH5 0x0312e312e3
00000857: PUSH1 0xdc
00000859: SHL
0000085a: PUSH1 0x20
0000085c: DUP3
0000085d: ADD
0000085e: MSTORE
0000085f: PUSH1 0x40
00000861: MLOAD
00000862: SWAP2
00000863: DUP3
00000864: SWAP2
00000865: DUP3
00000866: PUSH2 0x05f5
00000869: JUMP
0000086a: JUMPDEST
0000086b: CALLVALUE
0000086c: PUSH2 0x05f1
0000086f: JUMPI
00000870: PUSH0
00000871: CALLDATASIZE
00000872: PUSH1 0x03
00000874: NOT
00000875: ADD
00000876: SLT
00000877: PUSH2 0x05f1
0000087a: JUMPI
0000087b: PUSH1 0x40
0000087d: MLOAD
0000087e: PUSH32 0x0000000000000000000000006cd5b7952245ad44e436644ff928bfab322f29fc
0000089f: PUSH1 0x01
000008a1: PUSH1 0x01
000008a3: PUSH1 0xa0
000008a5: SHL
000008a6: SUB
000008a7: AND
000008a8: DUP2
000008a9: MSTORE
000008aa: PUSH1 0x20
000008ac: SWAP1
000008ad: RETURN
000008ae: JUMPDEST
000008af: CALLVALUE
000008b0: PUSH2 0x05f1
000008b3: JUMPI
000008b4: PUSH0
000008b5: CALLDATASIZE
000008b6: PUSH1 0x03
000008b8: NOT
000008b9: ADD
000008ba: SLT
000008bb: PUSH2 0x05f1
000008be: JUMPI
000008bf: PUSH1 0x20
000008c1: PUSH1 0x01
000008c3: PUSH1 0x01
000008c5: PUSH1 0x40
000008c7: SHL
000008c8: SUB
000008c9: PUSH1 0x14
000008cb: SLOAD
000008cc: AND
000008cd: PUSH1 0x40
000008cf: MLOAD
000008d0: SWAP1
000008d1: DUP2
000008d2: MSTORE
000008d3: RETURN
000008d4: JUMPDEST
000008d5: PUSH1 0x40
000008d7: SWAP1
000008d8: PUSH1 0x03
000008da: NOT
000008db: ADD
000008dc: SLT
000008dd: PUSH2 0x05f1
000008e0: JUMPI
000008e1: PUSH1 0x04
000008e3: CALLDATALOAD
000008e4: PUSH2 0x08ec
000008e7: DUP2
000008e8: PUSH2 0x0737
000008eb: JUMP
000008ec: JUMPDEST
000008ed: SWAP1
000008ee: PUSH1 0x24
000008f0: CALLDATALOAD
000008f1: DUP1
000008f2: ISZERO
000008f3: ISZERO
000008f4: DUP2
000008f5: SUB
000008f6: PUSH2 0x05f1
000008f9: JUMPI
000008fa: SWAP1
000008fb: JUMP
000008fc: JUMPDEST
000008fd: CALLVALUE
000008fe: PUSH2 0x05f1
00000901: JUMPI
00000902: PUSH2 0x090a
00000905: CALLDATASIZE
00000906: PUSH2 0x08d4
00000909: JUMP
0000090a: JUMPDEST
0000090b: PUSH1 0x01
0000090d: SLOAD
0000090e: PUSH1 0x01
00000910: PUSH1 0x01
00000912: PUSH1 0xa0
00000914: SHL
00000915: SUB
00000916: AND
00000917: CALLER
00000918: EQ
00000919: ISZERO
0000091a: DUP1
0000091b: PUSH2 0x0a4d
0000091e: JUMPI
0000091f: JUMPDEST
00000920: PUSH2 0x0a3e
00000923: JUMPI
00000924: PUSH1 0x01
00000926: PUSH1 0x01
00000928: PUSH1 0xa0
0000092a: SHL
0000092b: SUB
0000092c: DUP3
0000092d: AND
0000092e: PUSH0
0000092f: SWAP1
00000930: DUP2
00000931: MSTORE
00000932: PUSH1 0x03
00000934: PUSH1 0x20
00000936: MSTORE
00000937: PUSH1 0x40
00000939: SWAP1
0000093a: KECCAK256
0000093b: SLOAD
0000093c: PUSH1 0xff
0000093e: AND
0000093f: DUP1
00000940: PUSH2 0x0a37
00000943: JUMPI
00000944: JUMPDEST
00000945: PUSH2 0x0a28
00000948: JUMPI
00000949: PUSH1 0x01
0000094b: PUSH1 0x01
0000094d: PUSH1 0xa0
0000094f: SHL
00000950: SUB
00000951: DUP3
00000952: AND
00000953: PUSH0
00000954: SWAP1
00000955: DUP2
00000956: MSTORE
00000957: PUSH1 0x04
00000959: PUSH1 0x20
0000095b: MSTORE
0000095c: PUSH1 0x40
0000095e: SWAP1
0000095f: KECCAK256
00000960: PUSH1 0x01
00000962: PUSH1 0x01
00000964: PUSH1 0x40
00000966: SHL
00000967: SUB
00000968: SWAP1
00000969: PUSH2 0x0974
0000096c: SWAP1
0000096d: JUMPDEST
0000096e: SLOAD
0000096f: PUSH1 0xc0
00000971: SHR
00000972: SWAP1
00000973: JUMP
00000974: JUMPDEST
00000975: AND
00000976: PUSH2 0x0a19
00000979: JUMPI
0000097a: DUP1
0000097b: PUSH2 0x0989
0000097e: JUMPI
0000097f: PUSH2 0x0987
00000982: SWAP2
00000983: PUSH2 0x3eff
00000986: JUMP
00000987: JUMPDEST
00000988: STOP
00000989: JUMPDEST
0000098a: POP
0000098b: PUSH1 0x01
0000098d: PUSH1 0x01
0000098f: PUSH1 0xa0
00000991: SHL
00000992: SUB
00000993: DUP2
00000994: AND
00000995: PUSH0
00000996: SWAP1
00000997: DUP2
00000998: MSTORE
00000999: PUSH1 0x04
0000099b: PUSH1 0x20
0000099d: MSTORE
0000099e: PUSH1 0x40
000009a0: SWAP1
000009a1: KECCAK256
000009a2: PUSH1 0x08
000009a4: SLOAD
000009a5: PUSH2 0x09ad
000009a8: SWAP2
000009a9: PUSH2 0x3d9f
000009ac: JUMP
000009ad: JUMPDEST
000009ae: PUSH32 0x24c5ea3dd9a5ba11b8a603674e63d62accaa480c1b05d18de5861f3894868d79
000009cf: PUSH2 0x0a14
000009d2: PUSH2 0x09ee
000009d5: PUSH2 0x096d
000009d8: DUP5
000009d9: PUSH1 0x01
000009db: DUP1
000009dc: PUSH1 0xa0
000009de: SHL
000009df: SUB
000009e0: AND
000009e1: PUSH0
000009e2: MSTORE
000009e3: PUSH1 0x04
000009e5: PUSH1 0x20
000009e7: MSTORE
000009e8: PUSH1 0x40
000009ea: PUSH0
000009eb: KECCAK256
000009ec: SWAP1
000009ed: JUMP
000009ee: JUMPDEST
000009ef: PUSH1 0x40
000009f1: MLOAD
000009f2: PUSH1 0x01
000009f4: PUSH1 0x01
000009f6: PUSH1 0x40
000009f8: SHL
000009f9: SUB
000009fa: SWAP1
000009fb: SWAP2
000009fc: AND
000009fd: DUP2
000009fe: MSTORE
000009ff: PUSH1 0x01
00000a01: PUSH1 0x01
00000a03: PUSH1 0xa0
00000a05: SHL
00000a06: SUB
00000a07: SWAP1
00000a08: SWAP4
00000a09: AND
00000a0a: SWAP3
00000a0b: SWAP1
00000a0c: DUP2
00000a0d: SWAP1
00000a0e: PUSH1 0x20
00000a10: DUP3
00000a11: ADD
00000a12: SWAP1
00000a13: JUMP
00000a14: JUMPDEST
00000a15: SUB
00000a16: SWAP1
00000a17: LOG2
00000a18: STOP
00000a19: JUMPDEST
00000a1a: PUSH4 0x24d90267
00000a1f: PUSH1 0xe1
00000a21: SHL
00000a22: PUSH0
00000a23: MSTORE
00000a24: PUSH1 0x04
00000a26: PUSH0
00000a27: REVERT
00000a28: JUMPDEST
00000a29: PUSH4 0xa741a045
00000a2e: PUSH1 0xe0
00000a30: SHL
00000a31: PUSH0
00000a32: MSTORE
00000a33: PUSH1 0x04
00000a35: PUSH0
00000a36: REVERT
00000a37: JUMPDEST
00000a38: POP
00000a39: DUP1
00000a3a: PUSH2 0x0944
00000a3d: JUMP
00000a3e: JUMPDEST
00000a3f: PUSH4 0x32a2673b
00000a44: PUSH1 0xe2
00000a46: SHL
00000a47: PUSH0
00000a48: MSTORE
00000a49: PUSH1 0x04
00000a4b: PUSH0
00000a4c: REVERT
00000a4d: JUMPDEST
00000a4e: POP
00000a4f: PUSH0
00000a50: MLOAD
00000a51: PUSH1 0x20
00000a53: PUSH2 0x4d02
00000a56: PUSH0
00000a57: CODECOPY
00000a58: PUSH0
00000a59: MLOAD
00000a5a: SWAP1
00000a5b: PUSH0
00000a5c: MSTORE
00000a5d: SLOAD
00000a5e: PUSH1 0x01
00000a60: PUSH1 0x01
00000a62: PUSH1 0xa0
00000a64: SHL
00000a65: SUB
00000a66: AND
00000a67: CALLER
00000a68: EQ
00000a69: ISZERO
00000a6a: PUSH2 0x091f
00000a6d: JUMP
00000a6e: JUMPDEST
00000a6f: CALLVALUE
00000a70: PUSH2 0x05f1
00000a73: JUMPI
00000a74: PUSH0
00000a75: CALLDATASIZE
00000a76: PUSH1 0x03
00000a78: NOT
00000a79: ADD
00000a7a: SLT
00000a7b: PUSH2 0x05f1
00000a7e: JUMPI
00000a7f: PUSH1 0x12
00000a81: SLOAD
00000a82: DUP1
00000a83: PUSH1 0xc0
00000a85: SHR
00000a86: DUP1
00000a87: ISZERO
00000a88: PUSH2 0x0ab8
00000a8b: JUMPI
00000a8c: TIMESTAMP
00000a8d: LT
00000a8e: PUSH2 0x0aa9
00000a91: JUMPI
00000a92: PUSH1 0x01
00000a94: PUSH1 0x01
00000a96: PUSH1 0x40
00000a98: SHL
00000a99: SUB
00000a9a: PUSH2 0x0aa3
00000a9d: SWAP2
00000a9e: AND
00000a9f: PUSH2 0x3f64
00000aa2: JUMP
00000aa3: JUMPDEST
00000aa4: PUSH0
00000aa5: PUSH1 0x12
00000aa7: SSTORE
00000aa8: STOP
00000aa9: JUMPDEST
00000aaa: PUSH4 0x333bd2cb
00000aaf: PUSH1 0xe1
00000ab1: SHL
00000ab2: PUSH0
00000ab3: MSTORE
00000ab4: PUSH1 0x04
00000ab6: PUSH0
00000ab7: REVERT
00000ab8: JUMPDEST
00000ab9: PUSH4 0xe5f408a5
00000abe: PUSH1 0xe0
00000ac0: SHL
00000ac1: PUSH0
00000ac2: MSTORE
00000ac3: PUSH1 0x04
00000ac5: PUSH0
00000ac6: REVERT
00000ac7: JUMPDEST
00000ac8: CALLVALUE
00000ac9: PUSH2 0x05f1
00000acc: JUMPI
00000acd: PUSH0
00000ace: CALLDATASIZE
00000acf: PUSH1 0x03
00000ad1: NOT
00000ad2: ADD
00000ad3: SLT
00000ad4: PUSH2 0x05f1
00000ad7: JUMPI
00000ad8: PUSH1 0x20
00000ada: PUSH0
00000adb: MLOAD
00000adc: PUSH1 0x20
00000ade: PUSH2 0x4d22
00000ae1: PUSH0
00000ae2: CODECOPY
00000ae3: PUSH0
00000ae4: MLOAD
00000ae5: SWAP1
00000ae6: PUSH0
00000ae7: MSTORE
00000ae8: SLOAD
00000ae9: PUSH1 0x40
00000aeb: MLOAD
00000aec: SWAP1
00000aed: DUP2
00000aee: MSTORE
00000aef: RETURN
00000af0: JUMPDEST
00000af1: CALLVALUE
00000af2: PUSH2 0x05f1
00000af5: JUMPI
00000af6: PUSH1 0x20
00000af8: CALLDATASIZE
00000af9: PUSH1 0x03
00000afb: NOT
00000afc: ADD
00000afd: SLT
00000afe: PUSH2 0x05f1
00000b01: JUMPI
00000b02: PUSH1 0x04
00000b04: CALLDATALOAD
00000b05: PUSH2 0x0b0d
00000b08: DUP2
00000b09: PUSH2 0x0737
00000b0c: JUMP
00000b0d: JUMPDEST
00000b0e: PUSH1 0x01
00000b10: DUP1
00000b11: PUSH1 0xa0
00000b13: SHL
00000b14: SUB
00000b15: AND
00000b16: PUSH0
00000b17: MSTORE
00000b18: PUSH1 0x03
00000b1a: PUSH1 0x20
00000b1c: MSTORE
00000b1d: PUSH1 0x20
00000b1f: PUSH1 0xff
00000b21: PUSH1 0x40
00000b23: PUSH0
00000b24: KECCAK256
00000b25: SLOAD
00000b26: AND
00000b27: PUSH1 0x40
00000b29: MLOAD
00000b2a: SWAP1
00000b2b: ISZERO
00000b2c: ISZERO
00000b2d: DUP2
00000b2e: MSTORE
00000b2f: RETURN
00000b30: JUMPDEST
00000b31: CALLVALUE
00000b32: PUSH2 0x05f1
00000b35: JUMPI
00000b36: PUSH0
00000b37: CALLDATASIZE
00000b38: PUSH1 0x03
00000b3a: NOT
00000b3b: ADD
00000b3c: SLT
00000b3d: PUSH2 0x05f1
00000b40: JUMPI
00000b41: PUSH0
00000b42: SLOAD
00000b43: PUSH1 0x01
00000b45: PUSH1 0x01
00000b47: PUSH1 0xa0
00000b49: SHL
00000b4a: SUB
00000b4b: AND
00000b4c: CALLER
00000b4d: EQ
00000b4e: ISZERO
00000b4f: DUP1
00000b50: PUSH2 0x0b92
00000b53: JUMPI
00000b54: JUMPDEST
00000b55: PUSH2 0x0b83
00000b58: JUMPI
00000b59: PUSH0
00000b5a: PUSH1 0x07
00000b5c: SSTORE
00000b5d: CALLER
00000b5e: PUSH32 0xc40a085ccfa20f5fd518ade5c3a77a7ecbdfbb4c75efcdca6146a8e3c841d663
00000b7f: PUSH0
00000b80: DUP1
00000b81: LOG2
00000b82: STOP
00000b83: JUMPDEST
00000b84: PUSH4 0x7cf97e4d
00000b89: PUSH1 0xe1
00000b8b: SHL
00000b8c: PUSH0
00000b8d: MSTORE
00000b8e: PUSH1 0x04
00000b90: PUSH0
00000b91: REVERT
00000b92: JUMPDEST
00000b93: POP
00000b94: PUSH0
00000b95: MLOAD
00000b96: PUSH1 0x20
00000b98: PUSH2 0x4d02
00000b9b: PUSH0
00000b9c: CODECOPY
00000b9d: PUSH0
00000b9e: MLOAD
00000b9f: SWAP1
00000ba0: PUSH0
00000ba1: MSTORE
00000ba2: SLOAD
00000ba3: PUSH1 0x01
00000ba5: PUSH1 0x01
00000ba7: PUSH1 0xa0
00000ba9: SHL
00000baa: SUB
00000bab: AND
00000bac: CALLER
00000bad: EQ
00000bae: ISZERO
00000baf: PUSH2 0x0b54
00000bb2: JUMP
00000bb3: JUMPDEST
00000bb4: CALLVALUE
00000bb5: PUSH2 0x05f1
00000bb8: JUMPI
00000bb9: PUSH1 0x60
00000bbb: CALLDATASIZE
00000bbc: PUSH1 0x03
00000bbe: NOT
00000bbf: ADD
00000bc0: SLT
00000bc1: PUSH2 0x05f1
00000bc4: JUMPI
00000bc5: PUSH2 0x0bf3
00000bc8: PUSH1 0x04
00000bca: CALLDATALOAD
00000bcb: PUSH2 0x0bd3
00000bce: DUP2
00000bcf: PUSH2 0x0737
00000bd2: JUMP
00000bd3: JUMPDEST
00000bd4: PUSH1 0x24
00000bd6: CALLDATALOAD
00000bd7: PUSH2 0x0bdf
00000bda: DUP2
00000bdb: PUSH2 0x0737
00000bde: JUMP
00000bdf: JUMPDEST
00000be0: PUSH1 0x44
00000be2: CALLDATALOAD
00000be3: SWAP2
00000be4: PUSH2 0x0bee
00000be7: DUP4
00000be8: CALLER
00000be9: DUP4
00000bea: PUSH2 0x3fc0
00000bed: JUMP
00000bee: JUMPDEST
00000bef: PUSH2 0x403e
00000bf2: JUMP
00000bf3: JUMPDEST
00000bf4: PUSH1 0x20
00000bf6: PUSH1 0x40
00000bf8: MLOAD
00000bf9: PUSH1 0x01
00000bfb: DUP2
00000bfc: MSTORE
00000bfd: RETURN
00000bfe: JUMPDEST
00000bff: CALLVALUE
00000c00: PUSH2 0x05f1
00000c03: JUMPI
00000c04: PUSH0
00000c05: CALLDATASIZE
00000c06: PUSH1 0x03
00000c08: NOT
00000c09: ADD
00000c0a: SLT
00000c0b: PUSH2 0x05f1
00000c0e: JUMPI
00000c0f: PUSH1 0x20
00000c11: PUSH1 0x01
00000c13: PUSH1 0x01
00000c15: PUSH1 0x40
00000c17: SHL
00000c18: SUB
00000c19: PUSH1 0x14
00000c1b: SLOAD
00000c1c: PUSH1 0x80
00000c1e: SHR
00000c1f: AND
00000c20: PUSH1 0x40
00000c22: MLOAD
00000c23: SWAP1
00000c24: DUP2
00000c25: MSTORE
00000c26: RETURN
00000c27: JUMPDEST
00000c28: CALLVALUE
00000c29: PUSH2 0x05f1
00000c2c: JUMPI
00000c2d: PUSH0
00000c2e: CALLDATASIZE
00000c2f: PUSH1 0x03
00000c31: NOT
00000c32: ADD
00000c33: SLT
00000c34: PUSH2 0x05f1
00000c37: JUMPI
00000c38: PUSH1 0xff
00000c3a: PUSH0
00000c3b: MLOAD
00000c3c: PUSH1 0x20
00000c3e: PUSH2 0x4d82
00000c41: PUSH0
00000c42: CODECOPY
00000c43: PUSH0
00000c44: MLOAD
00000c45: SWAP1
00000c46: PUSH0
00000c47: MSTORE
00000c48: SLOAD
00000c49: PUSH1 0xa0
00000c4b: SHR
00000c4c: AND
00000c4d: PUSH1 0xff
00000c4f: DUP2
00000c50: GT
00000c51: PUSH2 0x0c5f
00000c54: JUMPI
00000c55: PUSH1 0x20
00000c57: SWAP1
00000c58: PUSH1 0x40
00000c5a: MLOAD
00000c5b: SWAP1
00000c5c: DUP2
00000c5d: MSTORE
00000c5e: RETURN
00000c5f: JUMPDEST
00000c60: PUSH2 0x32c4
00000c63: JUMP
00000c64: JUMPDEST
00000c65: CALLVALUE
00000c66: PUSH2 0x05f1
00000c69: JUMPI
00000c6a: PUSH0
00000c6b: CALLDATASIZE
00000c6c: PUSH1 0x03
00000c6e: NOT
00000c6f: ADD
00000c70: SLT
00000c71: PUSH2 0x05f1
00000c74: JUMPI
00000c75: PUSH1 0x13
00000c77: SLOAD
00000c78: DUP1
00000c79: PUSH1 0xc0
00000c7b: SHR
00000c7c: DUP1
00000c7d: ISZERO
00000c7e: PUSH2 0x0ab8
00000c81: JUMPI
00000c82: TIMESTAMP
00000c83: LT
00000c84: PUSH2 0x0aa9
00000c87: JUMPI
00000c88: PUSH1 0x01
00000c8a: PUSH1 0x01
00000c8c: PUSH1 0x40
00000c8e: SHL
00000c8f: SUB
00000c90: PUSH2 0x0c99
00000c93: SWAP2
00000c94: AND
00000c95: PUSH2 0x4108
00000c98: JUMP
00000c99: JUMPDEST
00000c9a: PUSH0
00000c9b: PUSH1 0x13
00000c9d: SSTORE
00000c9e: STOP
00000c9f: JUMPDEST
00000ca0: CALLVALUE
00000ca1: PUSH2 0x05f1
00000ca4: JUMPI
00000ca5: PUSH0
00000ca6: CALLDATASIZE
00000ca7: PUSH1 0x03
00000ca9: NOT
00000caa: ADD
00000cab: SLT
00000cac: PUSH2 0x05f1
00000caf: JUMPI
00000cb0: PUSH4 0x207972c9
00000cb5: PUSH1 0xe0
00000cb7: SHL
00000cb8: PUSH0
00000cb9: MSTORE
00000cba: PUSH1 0x04
00000cbc: PUSH0
00000cbd: REVERT
00000cbe: JUMPDEST
00000cbf: CALLVALUE
00000cc0: PUSH2 0x05f1
00000cc3: JUMPI
00000cc4: PUSH0
00000cc5: CALLDATASIZE
00000cc6: PUSH1 0x03
00000cc8: NOT
00000cc9: ADD
00000cca: SLT
00000ccb: PUSH2 0x05f1
00000cce: JUMPI
00000ccf: PUSH2 0x0cd6
00000cd2: PUSH2 0x339e
00000cd5: JUMP
00000cd6: JUMPDEST
00000cd7: POP
00000cd8: PUSH2 0x067f
00000cdb: PUSH1 0x40
00000cdd: MLOAD
00000cde: PUSH2 0x0ce6
00000ce1: DUP2
00000ce2: PUSH2 0x0eb2
00000ce5: JUMP
00000ce6: JUMPDEST
00000ce7: PUSH1 0x13
00000ce9: SLOAD
00000cea: PUSH1 0x01
00000cec: PUSH1 0x01
00000cee: PUSH1 0xc0
00000cf0: SHL
00000cf1: SUB
00000cf2: DUP2
00000cf3: AND
00000cf4: DUP1
00000cf5: DUP4
00000cf6: MSTORE
00000cf7: PUSH1 0xc0
00000cf9: SWAP2
00000cfa: SWAP1
00000cfb: SWAP2
00000cfc: SHR
00000cfd: PUSH1 0x20
00000cff: SWAP3
00000d00: DUP4
00000d01: ADD
00000d02: SWAP1
00000d03: DUP2
00000d04: MSTORE
00000d05: PUSH1 0x40
00000d07: DUP1
00000d08: MLOAD
00000d09: SWAP3
00000d0a: DUP4
00000d0b: MSTORE
00000d0c: SWAP1
00000d0d: MLOAD
00000d0e: PUSH1 0x01
00000d10: PUSH1 0x01
00000d12: PUSH1 0x40
00000d14: SHL
00000d15: SUB
00000d16: AND
00000d17: SWAP3
00000d18: DUP3
00000d19: ADD
00000d1a: SWAP3
00000d1b: SWAP1
00000d1c: SWAP3
00000d1d: MSTORE
00000d1e: SWAP2
00000d1f: DUP3
00000d20: SWAP2
00000d21: DUP3
00000d22: ADD
00000d23: SWAP1
00000d24: JUMP
00000d25: JUMPDEST
00000d26: CALLVALUE
00000d27: PUSH2 0x05f1
00000d2a: JUMPI
00000d2b: PUSH0
00000d2c: CALLDATASIZE
00000d2d: PUSH1 0x03
00000d2f: NOT
00000d30: ADD
00000d31: SLT
00000d32: PUSH2 0x05f1
00000d35: JUMPI
00000d36: PUSH0
00000d37: MLOAD
00000d38: PUSH1 0x20
00000d3a: PUSH2 0x4d82
00000d3d: PUSH0
00000d3e: CODECOPY
00000d3f: PUSH0
00000d40: MLOAD
00000d41: SWAP1
00000d42: PUSH0
00000d43: MSTORE
00000d44: SLOAD
00000d45: PUSH1 0x40
00000d47: MLOAD
00000d48: PUSH1 0x01
00000d4a: PUSH1 0x01
00000d4c: PUSH1 0xa0
00000d4e: SHL
00000d4f: SUB
00000d50: SWAP1
00000d51: SWAP2
00000d52: AND
00000d53: DUP2
00000d54: MSTORE
00000d55: PUSH1 0x20
00000d57: SWAP1
00000d58: RETURN
00000d59: JUMPDEST
00000d5a: CALLVALUE
00000d5b: PUSH2 0x05f1
00000d5e: JUMPI
00000d5f: PUSH0
00000d60: CALLDATASIZE
00000d61: PUSH1 0x03
00000d63: NOT
00000d64: ADD
00000d65: SLT
00000d66: PUSH2 0x05f1
00000d69: JUMPI
00000d6a: PUSH1 0x20
00000d6c: PUSH2 0x072f
00000d6f: PUSH2 0x33d6
00000d72: JUMP
00000d73: JUMPDEST
00000d74: CALLVALUE
00000d75: PUSH2 0x05f1
00000d78: JUMPI
00000d79: PUSH0
00000d7a: CALLDATASIZE
00000d7b: PUSH1 0x03
00000d7d: NOT
00000d7e: ADD
00000d7f: SLT
00000d80: PUSH2 0x05f1
00000d83: JUMPI
00000d84: PUSH2 0x0d8b
00000d87: PUSH2 0x339e
00000d8a: JUMP
00000d8b: JUMPDEST
00000d8c: POP
00000d8d: PUSH2 0x067f
00000d90: PUSH1 0x40
00000d92: MLOAD
00000d93: PUSH2 0x0d9b
00000d96: DUP2
00000d97: PUSH2 0x0eb2
00000d9a: JUMP
00000d9b: JUMPDEST
00000d9c: PUSH1 0x06
00000d9e: SLOAD
00000d9f: PUSH1 0x01
00000da1: PUSH1 0x01
00000da3: PUSH1 0xc0
00000da5: SHL
00000da6: SUB
00000da7: DUP2
00000da8: AND
00000da9: DUP1
00000daa: DUP4
00000dab: MSTORE
00000dac: PUSH1 0xc0
00000dae: SWAP2
00000daf: SWAP1
00000db0: SWAP2
00000db1: SHR
00000db2: PUSH1 0x20
00000db4: SWAP3
00000db5: DUP4
00000db6: ADD
00000db7: SWAP1
00000db8: DUP2
00000db9: MSTORE
00000dba: PUSH1 0x40
00000dbc: DUP1
00000dbd: MLOAD
00000dbe: SWAP3
00000dbf: DUP4
00000dc0: MSTORE
00000dc1: SWAP1
00000dc2: MLOAD
00000dc3: PUSH1 0x01
00000dc5: PUSH1 0x01
00000dc7: PUSH1 0x40
00000dc9: SHL
00000dca: SUB
00000dcb: AND
00000dcc: SWAP3
00000dcd: DUP3
00000dce: ADD
00000dcf: SWAP3
00000dd0: SWAP1
00000dd1: SWAP3
00000dd2: MSTORE
00000dd3: SWAP2
00000dd4: DUP3
00000dd5: SWAP2
00000dd6: DUP3
00000dd7: ADD
00000dd8: SWAP1
00000dd9: JUMP
00000dda: JUMPDEST
00000ddb: CALLVALUE
00000ddc: PUSH2 0x05f1
00000ddf: JUMPI
00000de0: PUSH0
00000de1: CALLDATASIZE
00000de2: PUSH1 0x03
00000de4: NOT
00000de5: ADD
00000de6: SLT
00000de7: PUSH2 0x05f1
00000dea: JUMPI
00000deb: PUSH2 0x0df2
00000dee: PUSH2 0x4162
00000df1: JUMP
00000df2: JUMPDEST
00000df3: PUSH0
00000df4: MLOAD
00000df5: PUSH1 0x20
00000df7: PUSH2 0x4da2
00000dfa: PUSH0
00000dfb: CODECOPY
00000dfc: PUSH0
00000dfd: MLOAD
00000dfe: SWAP1
00000dff: PUSH0
00000e00: MSTORE
00000e01: SLOAD
00000e02: PUSH1 0xff
00000e04: DUP2
00000e05: AND
00000e06: ISZERO
00000e07: PUSH2 0x0e49
00000e0a: JUMPI
00000e0b: PUSH1 0xff
00000e0d: NOT
00000e0e: AND
00000e0f: PUSH0
00000e10: MLOAD
00000e11: PUSH1 0x20
00000e13: PUSH2 0x4da2
00000e16: PUSH0
00000e17: CODECOPY
00000e18: PUSH0
00000e19: MLOAD
00000e1a: SWAP1
00000e1b: PUSH0
00000e1c: MSTORE
00000e1d: SSTORE
00000e1e: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa
00000e3f: PUSH1 0x20
00000e41: PUSH1 0x40
00000e43: MLOAD
00000e44: CALLER
00000e45: DUP2
00000e46: MSTORE
00000e47: LOG1
00000e48: STOP
00000e49: JUMPDEST
00000e4a: PUSH4 0x8dfc202b
00000e4f: PUSH1 0xe0
00000e51: SHL
00000e52: PUSH0
00000e53: MSTORE
00000e54: PUSH1 0x04
00000e56: PUSH0
00000e57: REVERT
00000e58: JUMPDEST
00000e59: CALLVALUE
00000e5a: PUSH2 0x05f1
00000e5d: JUMPI
00000e5e: PUSH1 0x20
00000e60: CALLDATASIZE
00000e61: PUSH1 0x03
00000e63: NOT
00000e64: ADD
00000e65: SLT
00000e66: PUSH2 0x05f1
00000e69: JUMPI
00000e6a: PUSH2 0x0e74
00000e6d: PUSH1 0x04
00000e6f: CALLDATALOAD
00000e70: PUSH2 0x0737
00000e73: JUMP
00000e74: JUMPDEST
00000e75: PUSH1 0x20
00000e77: PUSH2 0x072f
00000e7a: PUSH2 0x3411
00000e7d: JUMP
00000e7e: JUMPDEST
00000e7f: PUSH4 0x4e487b71
00000e84: PUSH1 0xe0
00000e86: SHL
00000e87: PUSH0
00000e88: MSTORE
00000e89: PUSH1 0x41
00000e8b: PUSH1 0x04
00000e8d: MSTORE
00000e8e: PUSH1 0x24
00000e90: PUSH0
00000e91: REVERT
00000e92: JUMPDEST
00000e93: PUSH1 0x60
00000e95: DUP2
00000e96: ADD
00000e97: SWAP1
00000e98: DUP2
00000e99: LT
00000e9a: PUSH1 0x01
00000e9c: PUSH1 0x01
00000e9e: PUSH1 0x40
00000ea0: SHL
00000ea1: SUB
00000ea2: DUP3
00000ea3: GT
00000ea4: OR
00000ea5: PUSH2 0x0ead
00000ea8: JUMPI
00000ea9: PUSH1 0x40
00000eab: MSTORE
00000eac: JUMP
00000ead: JUMPDEST
00000eae: PUSH2 0x0e7e
00000eb1: JUMP
00000eb2: JUMPDEST
00000eb3: PUSH1 0x40
00000eb5: DUP2
00000eb6: ADD
00000eb7: SWAP1
00000eb8: DUP2
00000eb9: LT
00000eba: PUSH1 0x01
00000ebc: PUSH1 0x01
00000ebe: PUSH1 0x40
00000ec0: SHL
00000ec1: SUB
00000ec2: DUP3
00000ec3: GT
00000ec4: OR
00000ec5: PUSH2 0x0ead
00000ec8: JUMPI
00000ec9: PUSH1 0x40
00000ecb: MSTORE
00000ecc: JUMP
00000ecd: JUMPDEST
00000ece: PUSH1 0xa0
00000ed0: DUP2
00000ed1: ADD
00000ed2: SWAP1
00000ed3: DUP2
00000ed4: LT
00000ed5: PUSH1 0x01
00000ed7: PUSH1 0x01
00000ed9: PUSH1 0x40
00000edb: SHL
00000edc: SUB
00000edd: DUP3
00000ede: GT
00000edf: OR
00000ee0: PUSH2 0x0ead
00000ee3: JUMPI
00000ee4: PUSH1 0x40
00000ee6: MSTORE
00000ee7: JUMP
00000ee8: JUMPDEST
00000ee9: SWAP1
00000eea: PUSH1 0x1f
00000eec: DUP1
00000eed: NOT
00000eee: SWAP2
00000eef: ADD
00000ef0: AND
00000ef1: DUP2
00000ef2: ADD
00000ef3: SWAP1
00000ef4: DUP2
00000ef5: LT
00000ef6: PUSH1 0x01
00000ef8: PUSH1 0x01
00000efa: PUSH1 0x40
00000efc: SHL
00000efd: SUB
00000efe: DUP3
00000eff: GT
00000f00: OR
00000f01: PUSH2 0x0ead
00000f04: JUMPI
00000f05: PUSH1 0x40
00000f07: MSTORE
00000f08: JUMP
00000f09: JUMPDEST
00000f0a: PUSH1 0x40
00000f0c: MLOAD
00000f0d: SWAP1
00000f0e: PUSH2 0x0753
00000f11: PUSH2 0x0100
00000f14: DUP4
00000f15: PUSH2 0x0ee8
00000f18: JUMP
00000f19: JUMPDEST
00000f1a: PUSH1 0x40
00000f1c: MLOAD
00000f1d: SWAP1
00000f1e: PUSH2 0x0753
00000f21: PUSH2 0x0160
00000f24: DUP4
00000f25: PUSH2 0x0ee8
00000f28: JUMP
00000f29: JUMPDEST
00000f2a: PUSH1 0x01
00000f2c: PUSH1 0x01
00000f2e: PUSH1 0x40
00000f30: SHL
00000f31: SUB
00000f32: DUP2
00000f33: GT
00000f34: PUSH2 0x0ead
00000f37: JUMPI
00000f38: PUSH1 0x05
00000f3a: SHL
00000f3b: PUSH1 0x20
00000f3d: ADD
00000f3e: SWAP1
00000f3f: JUMP
00000f40: JUMPDEST
00000f41: SWAP1
00000f42: DUP1
00000f43: PUSH1 0x1f
00000f45: DUP4
00000f46: ADD
00000f47: SLT
00000f48: ISZERO
00000f49: PUSH2 0x05f1
00000f4c: JUMPI
00000f4d: DUP2
00000f4e: CALLDATALOAD
00000f4f: PUSH2 0x0f57
00000f52: DUP2
00000f53: PUSH2 0x0f29
00000f56: JUMP
00000f57: JUMPDEST
00000f58: SWAP3
00000f59: PUSH2 0x0f65
00000f5c: PUSH1 0x40
00000f5e: MLOAD
00000f5f: SWAP5
00000f60: DUP6
00000f61: PUSH2 0x0ee8
00000f64: JUMP
00000f65: JUMPDEST
00000f66: DUP2
00000f67: DUP5
00000f68: MSTORE
00000f69: PUSH1 0x20
00000f6b: DUP1
00000f6c: DUP6
00000f6d: ADD
00000f6e: SWAP3
00000f6f: PUSH1 0x05
00000f71: SHL
00000f72: DUP3
00000f73: ADD
00000f74: ADD
00000f75: SWAP3
00000f76: DUP4
00000f77: GT
00000f78: PUSH2 0x05f1
00000f7b: JUMPI
00000f7c: PUSH1 0x20
00000f7e: ADD
00000f7f: SWAP1
00000f80: JUMPDEST
00000f81: DUP3
00000f82: DUP3
00000f83: LT
00000f84: PUSH2 0x0f8d
00000f87: JUMPI
00000f88: POP
00000f89: POP
00000f8a: POP
00000f8b: SWAP1
00000f8c: JUMP
00000f8d: JUMPDEST
00000f8e: DUP2
00000f8f: CALLDATALOAD
00000f90: DUP2
00000f91: MSTORE
00000f92: PUSH1 0x20
00000f94: SWAP2
00000f95: DUP3
00000f96: ADD
00000f97: SWAP2
00000f98: ADD
00000f99: PUSH2 0x0f80
00000f9c: JUMP
00000f9d: JUMPDEST
00000f9e: PUSH1 0x20
00000fa0: PUSH1 0x03
00000fa2: NOT
00000fa3: DUP3
00000fa4: ADD
00000fa5: SLT
00000fa6: PUSH2 0x05f1
00000fa9: JUMPI
00000faa: PUSH1 0x04
00000fac: CALLDATALOAD
00000fad: SWAP1
00000fae: PUSH1 0x01
00000fb0: PUSH1 0x01
00000fb2: PUSH1 0x40
00000fb4: SHL
00000fb5: SUB
00000fb6: DUP3
00000fb7: GT
00000fb8: PUSH2 0x05f1
00000fbb: JUMPI
00000fbc: PUSH2 0x0fc7
00000fbf: SWAP2
00000fc0: PUSH1 0x04
00000fc2: ADD
00000fc3: PUSH2 0x0f40
00000fc6: JUMP
00000fc7: JUMPDEST
00000fc8: SWAP1
00000fc9: JUMP
00000fca: JUMPDEST
00000fcb: CALLVALUE
00000fcc: PUSH2 0x05f1
00000fcf: JUMPI
00000fd0: PUSH2 0x0fd8
00000fd3: CALLDATASIZE
00000fd4: PUSH2 0x0f9d
00000fd7: JUMP
00000fd8: JUMPDEST
00000fd9: POP
00000fda: CALLER
00000fdb: PUSH0
00000fdc: MSTORE
00000fdd: PUSH1 0x02
00000fdf: PUSH1 0x20
00000fe1: MSTORE
00000fe2: PUSH1 0xff
00000fe4: PUSH1 0x40
00000fe6: PUSH0
00000fe7: KECCAK256
00000fe8: SLOAD
00000fe9: AND
00000fea: ISZERO
00000feb: DUP1
00000fec: PUSH2 0x102b
00000fef: JUMPI
00000ff0: JUMPDEST
00000ff1: DUP1
00000ff2: PUSH2 0x100a
00000ff5: JUMPI
00000ff6: JUMPDEST
00000ff7: ISZERO
00000ff8: PUSH2 0x338f
00000ffb: JUMPI
00000ffc: PUSH4 0xf7137c0f
00001001: PUSH1 0xe0
00001003: SHL
00001004: PUSH0
00001005: MSTORE
00001006: PUSH1 0x04
00001008: PUSH0
00001009: REVERT
0000100a: JUMPDEST
0000100b: POP
0000100c: PUSH0
0000100d: MLOAD
0000100e: PUSH1 0x20
00001010: PUSH2 0x4d02
00001013: PUSH0
00001014: CODECOPY
00001015: PUSH0
00001016: MLOAD
00001017: SWAP1
00001018: PUSH0
00001019: MSTORE
0000101a: SLOAD
0000101b: PUSH1 0x01
0000101d: PUSH1 0x01
0000101f: PUSH1 0xa0
00001021: SHL
00001022: SUB
00001023: AND
00001024: CALLER
00001025: EQ
00001026: ISZERO
00001027: PUSH2 0x0ff6
0000102a: JUMP
0000102b: JUMPDEST
0000102c: POP
0000102d: PUSH1 0x01
0000102f: SLOAD
00001030: PUSH1 0x01
00001032: PUSH1 0x01
00001034: PUSH1 0xa0
00001036: SHL
00001037: SUB
00001038: AND
00001039: CALLER
0000103a: EQ
0000103b: ISZERO
0000103c: PUSH2 0x0ff0
0000103f: JUMP
00001040: JUMPDEST
00001041: CALLVALUE
00001042: PUSH2 0x05f1
00001045: JUMPI
00001046: PUSH0
00001047: CALLDATASIZE
00001048: PUSH1 0x03
0000104a: NOT
0000104b: ADD
0000104c: SLT
0000104d: PUSH2 0x05f1
00001050: JUMPI
00001051: PUSH0
00001052: SLOAD
00001053: PUSH1 0x40
00001055: MLOAD
00001056: PUSH1 0x01
00001058: PUSH1 0x01
0000105a: PUSH1 0xa0
0000105c: SHL
0000105d: SUB
0000105e: SWAP1
0000105f: SWAP2
00001060: AND
00001061: DUP2
00001062: MSTORE
00001063: PUSH1 0x20
00001065: SWAP1
00001066: RETURN
00001067: JUMPDEST
00001068: CALLVALUE
00001069: PUSH2 0x05f1
0000106c: JUMPI
0000106d: PUSH1 0x20
0000106f: CALLDATASIZE
00001070: PUSH1 0x03
00001072: NOT
00001073: ADD
00001074: SLT
00001075: PUSH2 0x05f1
00001078: JUMPI
00001079: PUSH1 0x04
0000107b: CALLDATALOAD
0000107c: PUSH2 0x1084
0000107f: DUP2
00001080: PUSH2 0x0737
00001083: JUMP
00001084: JUMPDEST
00001085: PUSH2 0x108c
00001088: PUSH2 0x339e
0000108b: JUMP
0000108c: JUMPDEST
0000108d: POP
0000108e: PUSH1 0x01
00001090: DUP1
00001091: PUSH1 0xa0
00001093: SHL
00001094: SUB
00001095: AND
00001096: PUSH0
00001097: MSTORE
00001098: PUSH1 0x04
0000109a: PUSH1 0x20
0000109c: MSTORE
0000109d: PUSH2 0x067f
000010a0: PUSH1 0x40
000010a2: PUSH0
000010a3: KECCAK256
000010a4: PUSH1 0x40
000010a6: MLOAD
000010a7: SWAP1
000010a8: PUSH2 0x10b0
000010ab: DUP3
000010ac: PUSH2 0x0eb2
000010af: JUMP
000010b0: JUMPDEST
000010b1: SLOAD
000010b2: PUSH1 0x01
000010b4: PUSH1 0x01
000010b6: PUSH1 0xc0
000010b8: SHL
000010b9: SUB
000010ba: DUP2
000010bb: AND
000010bc: DUP1
000010bd: DUP4
000010be: MSTORE
000010bf: PUSH1 0xc0
000010c1: SWAP2
000010c2: SWAP1
000010c3: SWAP2
000010c4: SHR
000010c5: PUSH1 0x20
000010c7: SWAP3
000010c8: DUP4
000010c9: ADD
000010ca: SWAP1
000010cb: DUP2
000010cc: MSTORE
000010cd: PUSH1 0x40
000010cf: DUP1
000010d0: MLOAD
000010d1: SWAP3
000010d2: DUP4
000010d3: MSTORE
000010d4: SWAP1
000010d5: MLOAD
000010d6: PUSH1 0x01
000010d8: PUSH1 0x01
000010da: PUSH1 0x40
000010dc: SHL
000010dd: SUB
000010de: AND
000010df: SWAP3
000010e0: DUP3
000010e1: ADD
000010e2: SWAP3
000010e3: SWAP1
000010e4: SWAP3
000010e5: MSTORE
000010e6: SWAP2
000010e7: DUP3
000010e8: SWAP2
000010e9: DUP3
000010ea: ADD
000010eb: SWAP1
000010ec: JUMP
000010ed: JUMPDEST
000010ee: CALLVALUE
000010ef: PUSH2 0x05f1
000010f2: JUMPI
000010f3: PUSH0
000010f4: CALLDATASIZE
000010f5: PUSH1 0x03
000010f7: NOT
000010f8: ADD
000010f9: SLT
000010fa: PUSH2 0x05f1
000010fd: JUMPI
000010fe: PUSH1 0x20
00001100: PUSH1 0x14
00001102: SLOAD
00001103: PUSH1 0xc0
00001105: SHR
00001106: PUSH1 0x40
00001108: MLOAD
00001109: SWAP1
0000110a: DUP2
0000110b: MSTORE
0000110c: RETURN
0000110d: JUMPDEST
0000110e: CALLVALUE
0000110f: PUSH2 0x05f1
00001112: JUMPI
00001113: PUSH1 0x20
00001115: CALLDATASIZE
00001116: PUSH1 0x03
00001118: NOT
00001119: ADD
0000111a: SLT
0000111b: PUSH2 0x05f1
0000111e: JUMPI
0000111f: PUSH1 0x04
00001121: CALLDATALOAD
00001122: PUSH2 0x112a
00001125: DUP2
00001126: PUSH2 0x0737
00001129: JUMP
0000112a: JUMPDEST
0000112b: PUSH1 0x01
0000112d: DUP1
0000112e: PUSH1 0xa0
00001130: SHL
00001131: SUB
00001132: AND
00001133: PUSH0
00001134: MSTORE
00001135: PUSH1 0x02
00001137: PUSH1 0x20
00001139: MSTORE
0000113a: PUSH1 0x20
0000113c: PUSH1 0xff
0000113e: PUSH1 0x40
00001140: PUSH0
00001141: KECCAK256
00001142: SLOAD
00001143: AND
00001144: PUSH1 0x40
00001146: MLOAD
00001147: SWAP1
00001148: ISZERO
00001149: ISZERO
0000114a: DUP2
0000114b: MSTORE
0000114c: RETURN
0000114d: JUMPDEST
0000114e: CALLVALUE
0000114f: PUSH2 0x05f1
00001152: JUMPI
00001153: PUSH0
00001154: CALLDATASIZE
00001155: PUSH1 0x03
00001157: NOT
00001158: ADD
00001159: SLT
0000115a: PUSH2 0x05f1
0000115d: JUMPI
0000115e: PUSH4 0x4e2d04b3
00001163: PUSH1 0xe0
00001165: SHL
00001166: PUSH0
00001167: MSTORE
00001168: PUSH1 0x04
0000116a: PUSH0
0000116b: REVERT
0000116c: JUMPDEST
0000116d: CALLVALUE
0000116e: PUSH2 0x05f1
00001171: JUMPI
00001172: PUSH0
00001173: CALLDATASIZE
00001174: PUSH1 0x03
00001176: NOT
00001177: ADD
00001178: SLT
00001179: PUSH2 0x05f1
0000117c: JUMPI
0000117d: PUSH1 0x20
0000117f: PUSH1 0xff
00001181: PUSH0
00001182: MLOAD
00001183: PUSH1 0x20
00001185: PUSH2 0x4da2
00001188: PUSH0
00001189: CODECOPY
0000118a: PUSH0
0000118b: MLOAD
0000118c: SWAP1
0000118d: PUSH0
0000118e: MSTORE
0000118f: SLOAD
00001190: AND
00001191: PUSH1 0x40
00001193: MLOAD
00001194: SWAP1
00001195: ISZERO
00001196: ISZERO
00001197: DUP2
00001198: MSTORE
00001199: RETURN
0000119a: JUMPDEST
0000119b: DUP2
0000119c: PUSH1 0x1f
0000119e: DUP3
0000119f: ADD
000011a0: SLT
000011a1: ISZERO
000011a2: PUSH2 0x05f1
000011a5: JUMPI
000011a6: DUP1
000011a7: CALLDATALOAD
000011a8: SWAP1
000011a9: PUSH2 0x11b1
000011ac: DUP3
000011ad: PUSH2 0x0f29
000011b0: JUMP
000011b1: JUMPDEST
000011b2: SWAP3
000011b3: PUSH2 0x11bf
000011b6: PUSH1 0x40
000011b8: MLOAD
000011b9: SWAP5
000011ba: DUP6
000011bb: PUSH2 0x0ee8
000011be: JUMP
000011bf: JUMPDEST
000011c0: DUP3
000011c1: DUP5
000011c2: MSTORE
000011c3: PUSH1 0x20
000011c5: PUSH1 0x60
000011c7: DUP2
000011c8: DUP7
000011c9: ADD
000011ca: SWAP5
000011cb: MUL
000011cc: DUP4
000011cd: ADD
000011ce: ADD
000011cf: SWAP2
000011d0: DUP2
000011d1: DUP4
000011d2: GT
000011d3: PUSH2 0x05f1
000011d6: JUMPI
000011d7: PUSH1 0x20
000011d9: ADD
000011da: SWAP3
000011db: JUMPDEST
000011dc: DUP3
000011dd: DUP5
000011de: LT
000011df: PUSH2 0x11e9
000011e2: JUMPI
000011e3: POP
000011e4: POP
000011e5: POP
000011e6: POP
000011e7: SWAP1
000011e8: JUMP
000011e9: JUMPDEST
000011ea: PUSH1 0x60
000011ec: DUP5
000011ed: DUP4
000011ee: SUB
000011ef: SLT
000011f0: PUSH2 0x05f1
000011f3: JUMPI
000011f4: PUSH1 0x20
000011f6: PUSH1 0x60
000011f8: SWAP2
000011f9: PUSH1 0x40
000011fb: MLOAD
000011fc: PUSH2 0x1204
000011ff: DUP2
00001200: PUSH2 0x0e92
00001203: JUMP
00001204: JUMPDEST
00001205: DUP7
00001206: CALLDATALOAD
00001207: DUP2
00001208: MSTORE
00001209: DUP3
0000120a: DUP8
0000120b: ADD
0000120c: CALLDATALOAD
0000120d: DUP4
0000120e: DUP3
0000120f: ADD
00001210: MSTORE
00001211: PUSH1 0x40
00001213: DUP8
00001214: ADD
00001215: CALLDATALOAD
00001216: PUSH1 0x40
00001218: DUP3
00001219: ADD
0000121a: MSTORE
0000121b: DUP2
0000121c: MSTORE
0000121d: ADD
0000121e: SWAP4
0000121f: ADD
00001220: SWAP3
00001221: PUSH2 0x11db
00001224: JUMP
00001225: JUMPDEST
00001226: SWAP2
00001227: SWAP1
00001228: PUSH1 0x40
0000122a: DUP4
0000122b: DUP3
0000122c: SUB
0000122d: SLT
0000122e: PUSH2 0x05f1
00001231: JUMPI
00001232: PUSH1 0x40
00001234: MLOAD
00001235: SWAP1
00001236: PUSH2 0x123e
00001239: DUP3
0000123a: PUSH2 0x0eb2
0000123d: JUMP
0000123e: JUMPDEST
0000123f: DUP2
00001240: SWAP4
00001241: DUP1
00001242: CALLDATALOAD
00001243: PUSH1 0x01
00001245: PUSH1 0x01
00001247: PUSH1 0x40
00001249: SHL
0000124a: SUB
0000124b: DUP2
0000124c: GT
0000124d: PUSH2 0x05f1
00001250: JUMPI
00001251: DUP3
00001252: PUSH2 0x125c
00001255: SWAP2
00001256: DUP4
00001257: ADD
00001258: PUSH2 0x119a
0000125b: JUMP
0000125c: JUMPDEST
0000125d: DUP4
0000125e: MSTORE
0000125f: PUSH1 0x20
00001261: DUP2
00001262: ADD
00001263: CALLDATALOAD
00001264: SWAP2
00001265: PUSH1 0x01
00001267: PUSH1 0x01
00001269: PUSH1 0x40
0000126b: SHL
0000126c: SUB
0000126d: DUP4
0000126e: GT
0000126f: PUSH2 0x05f1
00001272: JUMPI
00001273: PUSH1 0x20
00001275: SWAP3
00001276: PUSH2 0x127f
00001279: SWAP3
0000127a: ADD
0000127b: PUSH2 0x119a
0000127e: JUMP
0000127f: JUMPDEST
00001280: SWAP2
00001281: ADD
00001282: MSTORE
00001283: JUMP
00001284: JUMPDEST
00001285: SWAP1
00001286: DUP1
00001287: PUSH1 0x1f
00001289: DUP4
0000128a: ADD
0000128b: SLT
0000128c: ISZERO
0000128d: PUSH2 0x05f1
00001290: JUMPI
00001291: DUP2
00001292: CALLDATALOAD
00001293: PUSH2 0x129b
00001296: DUP2
00001297: PUSH2 0x0f29
0000129a: JUMP
0000129b: JUMPDEST
0000129c: SWAP3
0000129d: PUSH2 0x12a9
000012a0: PUSH1 0x40
000012a2: MLOAD
000012a3: SWAP5
000012a4: DUP6
000012a5: PUSH2 0x0ee8
000012a8: JUMP
000012a9: JUMPDEST
000012aa: DUP2
000012ab: DUP5
000012ac: MSTORE
000012ad: PUSH1 0x20
000012af: DUP1
000012b0: DUP6
000012b1: ADD
000012b2: SWAP3
000012b3: PUSH1 0x05
000012b5: SHL
000012b6: DUP3
000012b7: ADD
000012b8: ADD
000012b9: SWAP2
000012ba: DUP4
000012bb: DUP4
000012bc: GT
000012bd: PUSH2 0x05f1
000012c0: JUMPI
000012c1: PUSH1 0x20
000012c3: DUP3
000012c4: ADD
000012c5: SWAP1
000012c6: JUMPDEST
000012c7: DUP4
000012c8: DUP3
000012c9: LT
000012ca: PUSH2 0x12d5
000012cd: JUMPI
000012ce: POP
000012cf: POP
000012d0: POP
000012d1: POP
000012d2: POP
000012d3: SWAP1
000012d4: JUMP
000012d5: JUMPDEST
000012d6: DUP2
000012d7: CALLDATALOAD
000012d8: PUSH1 0x01
000012da: PUSH1 0x01
000012dc: PUSH1 0x40
000012de: SHL
000012df: SUB
000012e0: DUP2
000012e1: GT
000012e2: PUSH2 0x05f1
000012e5: JUMPI
000012e6: PUSH1 0x20
000012e8: SWAP2
000012e9: PUSH2 0x12f7
000012ec: DUP8
000012ed: DUP5
000012ee: DUP1
000012ef: SWAP5
000012f0: DUP9
000012f1: ADD
000012f2: ADD
000012f3: PUSH2 0x1225
000012f6: JUMP
000012f7: JUMPDEST
000012f8: DUP2
000012f9: MSTORE
000012fa: ADD
000012fb: SWAP2
000012fc: ADD
000012fd: SWAP1
000012fe: PUSH2 0x12c6
00001301: JUMP
00001302: JUMPDEST
00001303: CALLVALUE
00001304: PUSH2 0x05f1
00001307: JUMPI
00001308: PUSH1 0x80
0000130a: CALLDATASIZE
0000130b: PUSH1 0x03
0000130d: NOT
0000130e: ADD
0000130f: SLT
00001310: PUSH2 0x05f1
00001313: JUMPI
00001314: PUSH1 0x04
00001316: CALLDATALOAD
00001317: PUSH1 0x01
00001319: PUSH1 0x01
0000131b: PUSH1 0x40
0000131d: SHL
0000131e: SUB
0000131f: DUP2
00001320: GT
00001321: PUSH2 0x05f1
00001324: JUMPI
00001325: CALLDATASIZE
00001326: PUSH1 0x23
00001328: DUP3
00001329: ADD
0000132a: SLT
0000132b: ISZERO
0000132c: PUSH2 0x05f1
0000132f: JUMPI
00001330: DUP1
00001331: PUSH1 0x04
00001333: ADD
00001334: CALLDATALOAD
00001335: SWAP1
00001336: PUSH2 0x133e
00001339: DUP3
0000133a: PUSH2 0x0f29
0000133d: JUMP
0000133e: JUMPDEST
0000133f: SWAP2
00001340: PUSH2 0x134c
00001343: PUSH1 0x40
00001345: MLOAD
00001346: SWAP4
00001347: DUP5
00001348: PUSH2 0x0ee8
0000134b: JUMP
0000134c: JUMPDEST
0000134d: DUP1
0000134e: DUP4
0000134f: MSTORE
00001350: PUSH1 0x24
00001352: PUSH1 0x20
00001354: DUP5
00001355: ADD
00001356: SWAP2
00001357: PUSH1 0x05
00001359: SHL
0000135a: DUP4
0000135b: ADD
0000135c: ADD
0000135d: SWAP2
0000135e: CALLDATASIZE
0000135f: DUP4
00001360: GT
00001361: PUSH2 0x05f1
00001364: JUMPI
00001365: PUSH1 0x24
00001367: ADD
00001368: SWAP1
00001369: JUMPDEST
0000136a: DUP3
0000136b: DUP3
0000136c: LT
0000136d: PUSH2 0x13d9
00001370: JUMPI
00001371: DUP4
00001372: PUSH1 0x24
00001374: CALLDATALOAD
00001375: PUSH1 0x01
00001377: PUSH1 0x01
00001379: PUSH1 0x40
0000137b: SHL
0000137c: SUB
0000137d: DUP2
0000137e: GT
0000137f: PUSH2 0x05f1
00001382: JUMPI
00001383: PUSH2 0x1390
00001386: SWAP1
00001387: CALLDATASIZE
00001388: SWAP1
00001389: PUSH1 0x04
0000138b: ADD
0000138c: PUSH2 0x0f40
0000138f: JUMP
00001390: JUMPDEST
00001391: SWAP1
00001392: PUSH1 0x44
00001394: CALLDATALOAD
00001395: PUSH1 0x01
00001397: PUSH1 0x01
00001399: PUSH1 0x40
0000139b: SHL
0000139c: SUB
0000139d: DUP2
0000139e: GT
0000139f: PUSH2 0x05f1
000013a2: JUMPI
000013a3: PUSH2 0x13b0
000013a6: SWAP1
000013a7: CALLDATASIZE
000013a8: SWAP1
000013a9: PUSH1 0x04
000013ab: ADD
000013ac: PUSH2 0x0f40
000013af: JUMP
000013b0: JUMPDEST
000013b1: PUSH1 0x64
000013b3: CALLDATALOAD
000013b4: SWAP3
000013b5: PUSH1 0x01
000013b7: PUSH1 0x01
000013b9: PUSH1 0x40
000013bb: SHL
000013bc: SUB
000013bd: DUP5
000013be: GT
000013bf: PUSH2 0x05f1
000013c2: JUMPI
000013c3: PUSH2 0x13d3
000013c6: PUSH2 0x0987
000013c9: SWAP5
000013ca: CALLDATASIZE
000013cb: SWAP1
000013cc: PUSH1 0x04
000013ce: ADD
000013cf: PUSH2 0x1284
000013d2: JUMP
000013d3: JUMPDEST
000013d4: SWAP3
000013d5: PUSH2 0x3466
000013d8: JUMP
000013d9: JUMPDEST
000013da: PUSH1 0x20
000013dc: DUP1
000013dd: SWAP2
000013de: DUP4
000013df: CALLDATALOAD
000013e0: PUSH2 0x13e8
000013e3: DUP2
000013e4: PUSH2 0x0737
000013e7: JUMP
000013e8: JUMPDEST
000013e9: DUP2
000013ea: MSTORE
000013eb: ADD
000013ec: SWAP2
000013ed: ADD
000013ee: SWAP1
000013ef: PUSH2 0x1369
000013f2: JUMP
000013f3: JUMPDEST
000013f4: CALLVALUE
000013f5: PUSH2 0x05f1
000013f8: JUMPI
000013f9: PUSH1 0x20
000013fb: CALLDATASIZE
000013fc: PUSH1 0x03
000013fe: NOT
000013ff: ADD
00001400: SLT
00001401: PUSH2 0x05f1
00001404: JUMPI
00001405: PUSH1 0x04
00001407: CALLDATALOAD
00001408: PUSH2 0x1410
0000140b: DUP2
0000140c: PUSH2 0x0737
0000140f: JUMP
00001410: JUMPDEST
00001411: PUSH1 0x01
00001413: DUP1
00001414: PUSH1 0xa0
00001416: SHL
00001417: SUB
00001418: AND
00001419: PUSH0
0000141a: MSTORE
0000141b: PUSH1 0x0e
0000141d: PUSH1 0x20
0000141f: MSTORE
00001420: PUSH1 0x20
00001422: PUSH1 0x40
00001424: PUSH0
00001425: KECCAK256
00001426: SLOAD
00001427: PUSH1 0x40
00001429: MLOAD
0000142a: SWAP1
0000142b: DUP2
0000142c: MSTORE
0000142d: RETURN
0000142e: JUMPDEST
0000142f: CALLVALUE
00001430: PUSH2 0x05f1
00001433: JUMPI
00001434: PUSH1 0x20
00001436: CALLDATASIZE
00001437: PUSH1 0x03
00001439: NOT
0000143a: ADD
0000143b: SLT
0000143c: PUSH2 0x05f1
0000143f: JUMPI
00001440: PUSH4 0x207972c9
00001445: PUSH1 0xe0
00001447: SHL
00001448: PUSH0
00001449: MSTORE
0000144a: PUSH1 0x04
0000144c: PUSH0
0000144d: REVERT
0000144e: JUMPDEST
0000144f: CALLVALUE
00001450: PUSH2 0x05f1
00001453: JUMPI
00001454: PUSH0
00001455: CALLDATASIZE
00001456: PUSH1 0x03
00001458: NOT
00001459: ADD
0000145a: SLT
0000145b: PUSH2 0x05f1
0000145e: JUMPI
0000145f: PUSH1 0x20
00001461: PUSH7 0x2386f26fc10000
00001469: PUSH1 0x0a
0000146b: SLOAD
0000146c: DIV
0000146d: PUSH1 0x40
0000146f: MLOAD
00001470: SWAP1
00001471: DUP2
00001472: MSTORE
00001473: RETURN
00001474: JUMPDEST
00001475: CALLVALUE
00001476: PUSH2 0x05f1
00001479: JUMPI
0000147a: PUSH1 0x40
0000147c: CALLDATASIZE
0000147d: PUSH1 0x03
0000147f: NOT
00001480: ADD
00001481: SLT
00001482: PUSH2 0x05f1
00001485: JUMPI
00001486: PUSH1 0x04
00001488: CALLDATALOAD
00001489: PUSH1 0x24
0000148b: CALLDATALOAD
0000148c: PUSH2 0x1494
0000148f: DUP2
00001490: PUSH2 0x0737
00001493: JUMP
00001494: JUMPDEST
00001495: PUSH2 0x149c
00001498: PUSH2 0x3411
0000149b: JUMP
0000149c: JUMPDEST
0000149d: DUP1
0000149e: DUP4
0000149f: GT
000014a0: PUSH2 0x164d
000014a3: JUMPI
000014a4: POP
000014a5: PUSH2 0x14ad
000014a8: DUP3
000014a9: PUSH2 0x3d5c
000014ac: JUMP
000014ad: JUMPDEST
000014ae: SWAP1
000014af: PUSH2 0x14b6
000014b2: PUSH2 0x4288
000014b5: JUMP
000014b6: JUMPDEST
000014b7: PUSH0
000014b8: MLOAD
000014b9: PUSH1 0x20
000014bb: PUSH2 0x4d42
000014be: PUSH0
000014bf: CODECOPY
000014c0: PUSH0
000014c1: MLOAD
000014c2: SWAP1
000014c3: PUSH0
000014c4: MSTORE
000014c5: TLOAD
000014c6: SWAP3
000014c7: DUP4
000014c8: ISZERO
000014c9: ISZERO
000014ca: DUP1
000014cb: PUSH2 0x1636
000014ce: JUMPI
000014cf: JUMPDEST
000014d0: PUSH2 0x1612
000014d3: JUMPI
000014d4: PUSH2 0x067f
000014d7: SWAP4
000014d8: POP
000014d9: PUSH0
000014da: MLOAD
000014db: PUSH1 0x20
000014dd: PUSH2 0x4d62
000014e0: PUSH0
000014e1: CODECOPY
000014e2: PUSH0
000014e3: MLOAD
000014e4: SWAP1
000014e5: PUSH0
000014e6: MSTORE
000014e7: PUSH0
000014e8: MLOAD
000014e9: PUSH1 0x20
000014eb: PUSH2 0x4d42
000014ee: PUSH0
000014ef: CODECOPY
000014f0: PUSH0
000014f1: MLOAD
000014f2: SWAP1
000014f3: PUSH0
000014f4: MSTORE
000014f5: TSTORE
000014f6: PUSH2 0x14fd
000014f9: PUSH2 0x4182
000014fc: JUMP
000014fd: JUMPDEST
000014fe: PUSH0
000014ff: MLOAD
00001500: PUSH1 0x20
00001502: PUSH2 0x4d82
00001505: PUSH0
00001506: CODECOPY
00001507: PUSH0
00001508: MLOAD
00001509: SWAP1
0000150a: PUSH0
0000150b: MSTORE
0000150c: SLOAD
0000150d: PUSH2 0x1524
00001510: SWAP1
00001511: DUP3
00001512: SWAP1
00001513: ADDRESS
00001514: SWAP1
00001515: CALLER
00001516: SWAP1
00001517: PUSH1 0x01
00001519: PUSH1 0x01
0000151b: PUSH1 0xa0
0000151d: SHL
0000151e: SUB
0000151f: AND
00001520: PUSH2 0x4a02
00001523: JUMP
00001524: JUMPDEST
00001525: PUSH2 0x159b
00001528: DUP2
00001529: PUSH2 0x1596
0000152c: PUSH2 0x155a
0000152f: PUSH2 0x154e
00001532: PUSH2 0x154e
00001535: PUSH0
00001536: MLOAD
00001537: PUSH1 0x20
00001539: PUSH2 0x4d82
0000153c: PUSH0
0000153d: CODECOPY
0000153e: PUSH0
0000153f: MLOAD
00001540: SWAP1
00001541: PUSH0
00001542: MSTORE
00001543: SLOAD
00001544: PUSH1 0x01
00001546: DUP1
00001547: PUSH1 0xa0
00001549: SHL
0000154a: SUB
0000154b: AND
0000154c: SWAP1
0000154d: JUMP
0000154e: JUMPDEST
0000154f: PUSH1 0x01
00001551: PUSH1 0x01
00001553: PUSH1 0xa0
00001555: SHL
00001556: SUB
00001557: AND
00001558: SWAP1
00001559: JUMP
0000155a: JUMPDEST
0000155b: PUSH1 0x40
0000155d: MLOAD
0000155e: PUSH4 0x49cc4ebd
00001563: PUSH1 0xe1
00001565: SHL
00001566: PUSH1 0x20
00001568: DUP3
00001569: ADD
0000156a: MSTORE
0000156b: PUSH1 0x01
0000156d: PUSH1 0x01
0000156f: PUSH1 0xa0
00001571: SHL
00001572: SUB
00001573: SWAP1
00001574: SWAP2
00001575: AND
00001576: PUSH1 0x24
00001578: DUP3
00001579: ADD
0000157a: MSTORE
0000157b: PUSH1 0x44
0000157d: DUP2
0000157e: ADD
0000157f: SWAP3
00001580: SWAP1
00001581: SWAP3
00001582: MSTORE
00001583: DUP2
00001584: PUSH1 0x64
00001586: DUP2
00001587: ADD
00001588: JUMPDEST
00001589: SUB
0000158a: PUSH1 0x1f
0000158c: NOT
0000158d: DUP2
0000158e: ADD
0000158f: DUP4
00001590: MSTORE
00001591: DUP3
00001592: PUSH2 0x0ee8
00001595: JUMP
00001596: JUMPDEST
00001597: PUSH2 0x41d8
0000159a: JUMP
0000159b: JUMPDEST
0000159c: POP
0000159d: PUSH2 0x15a6
000015a0: DUP4
000015a1: DUP4
000015a2: PUSH2 0x4ade
000015a5: JUMP
000015a6: JUMPDEST
000015a7: PUSH1 0x40
000015a9: DUP1
000015aa: MLOAD
000015ab: SWAP2
000015ac: DUP3
000015ad: MSTORE
000015ae: PUSH1 0x20
000015b0: DUP3
000015b1: ADD
000015b2: DUP5
000015b3: SWAP1
000015b4: MSTORE
000015b5: PUSH1 0x01
000015b7: PUSH1 0x01
000015b9: PUSH1 0xa0
000015bb: SHL
000015bc: SUB
000015bd: SWAP1
000015be: SWAP3
000015bf: AND
000015c0: SWAP2
000015c1: CALLER
000015c2: SWAP2
000015c3: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
000015e4: SWAP2
000015e5: DUP2
000015e6: SWAP1
000015e7: DUP2
000015e8: ADD
000015e9: JUMPDEST
000015ea: SUB
000015eb: SWAP1
000015ec: LOG3
000015ed: PUSH2 0x1602
000015f0: PUSH1 0x01
000015f2: PUSH0
000015f3: MLOAD
000015f4: PUSH1 0x20
000015f6: PUSH2 0x4dc2
000015f9: PUSH0
000015fa: CODECOPY
000015fb: PUSH0
000015fc: MLOAD
000015fd: SWAP1
000015fe: PUSH0
000015ff: MSTORE
00001600: SSTORE
00001601: JUMP
00001602: JUMPDEST
00001603: PUSH1 0x40
00001605: MLOAD
00001606: SWAP1
00001607: DUP2
00001608: MSTORE
00001609: SWAP1
0000160a: DUP2
0000160b: SWAP1
0000160c: PUSH1 0x20
0000160e: DUP3
0000160f: ADD
00001610: SWAP1
00001611: JUMP
00001612: JUMPDEST
00001613: DUP4
00001614: PUSH4 0xbeb4ce07
00001619: PUSH1 0xe0
0000161b: SHL
0000161c: PUSH0
0000161d: MSTORE
0000161e: PUSH0
0000161f: MLOAD
00001620: PUSH1 0x20
00001622: PUSH2 0x4d62
00001625: PUSH0
00001626: CODECOPY
00001627: PUSH0
00001628: MLOAD
00001629: SWAP1
0000162a: PUSH0
0000162b: MSTORE
0000162c: PUSH1 0x04
0000162e: MSTORE
0000162f: PUSH1 0x24
00001631: MSTORE
00001632: PUSH1 0x44
00001634: PUSH0
00001635: REVERT
00001636: JUMPDEST
00001637: POP
00001638: PUSH0
00001639: MLOAD
0000163a: PUSH1 0x20
0000163c: PUSH2 0x4d62
0000163f: PUSH0
00001640: CODECOPY
00001641: PUSH0
00001642: MLOAD
00001643: SWAP1
00001644: PUSH0
00001645: MSTORE
00001646: DUP5
00001647: EQ
00001648: ISZERO
00001649: PUSH2 0x14cf
0000164c: JUMP
0000164d: JUMPDEST
0000164e: SWAP2
0000164f: SWAP1
00001650: PUSH4 0x3c8097d9
00001655: PUSH1 0xe1
00001657: SHL
00001658: PUSH0
00001659: MSTORE
0000165a: PUSH1 0x01
0000165c: DUP1
0000165d: PUSH1 0xa0
0000165f: SHL
00001660: SUB
00001661: AND
00001662: PUSH1 0x04
00001664: MSTORE
00001665: PUSH1 0x24
00001667: MSTORE
00001668: PUSH1 0x44
0000166a: MSTORE
0000166b: PUSH1 0x64
0000166d: PUSH0
0000166e: REVERT
0000166f: JUMPDEST
00001670: CALLVALUE
00001671: PUSH2 0x05f1
00001674: JUMPI
00001675: PUSH1 0x20
00001677: CALLDATASIZE
00001678: PUSH1 0x03
0000167a: NOT
0000167b: ADD
0000167c: SLT
0000167d: PUSH2 0x05f1
00001680: JUMPI
00001681: PUSH1 0x20
00001683: PUSH2 0x072f
00001686: PUSH1 0x04
00001688: CALLDATALOAD
00001689: PUSH2 0x1691
0000168c: DUP2
0000168d: PUSH2 0x0737
00001690: JUMP
00001691: JUMPDEST
00001692: PUSH2 0x366b
00001695: JUMP
00001696: JUMPDEST
00001697: CALLVALUE
00001698: PUSH2 0x05f1
0000169b: JUMPI
0000169c: PUSH0
0000169d: CALLDATASIZE
0000169e: PUSH1 0x03
000016a0: NOT
000016a1: ADD
000016a2: SLT
000016a3: PUSH2 0x05f1
000016a6: JUMPI
000016a7: PUSH2 0x16ae
000016aa: PUSH2 0x4162
000016ad: JUMP
000016ae: JUMPDEST
000016af: PUSH0
000016b0: MLOAD
000016b1: PUSH1 0x20
000016b3: PUSH2 0x4e02
000016b6: PUSH0
000016b7: CODECOPY
000016b8: PUSH0
000016b9: MLOAD
000016ba: SWAP1
000016bb: PUSH0
000016bc: MSTORE
000016bd: DUP1
000016be: SLOAD
000016bf: PUSH1 0x01
000016c1: PUSH1 0x01
000016c3: PUSH1 0xa0
000016c5: SHL
000016c6: SUB
000016c7: NOT
000016c8: SWAP1
000016c9: DUP2
000016ca: AND
000016cb: SWAP1
000016cc: SWAP2
000016cd: SSTORE
000016ce: PUSH0
000016cf: MLOAD
000016d0: PUSH1 0x20
000016d2: PUSH2 0x4d02
000016d5: PUSH0
000016d6: CODECOPY
000016d7: PUSH0
000016d8: MLOAD
000016d9: SWAP1
000016da: PUSH0
000016db: MSTORE
000016dc: DUP1
000016dd: SLOAD
000016de: SWAP2
000016df: DUP3
000016e0: AND
000016e1: SWAP1
000016e2: SSTORE
000016e3: PUSH0
000016e4: SWAP1
000016e5: PUSH1 0x01
000016e7: PUSH1 0x01
000016e9: PUSH1 0xa0
000016eb: SHL
000016ec: SUB
000016ed: AND
000016ee: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
0000170f: DUP3
00001710: DUP1
00001711: LOG3
00001712: STOP
00001713: JUMPDEST
00001714: CALLVALUE
00001715: PUSH2 0x05f1
00001718: JUMPI
00001719: PUSH1 0x80
0000171b: CALLDATASIZE
0000171c: PUSH1 0x03
0000171e: NOT
0000171f: ADD
00001720: SLT
00001721: PUSH2 0x05f1
00001724: JUMPI
00001725: PUSH1 0x04
00001727: CALLDATALOAD
00001728: PUSH2 0x1730
0000172b: DUP2
0000172c: PUSH2 0x0737
0000172f: JUMP
00001730: JUMPDEST
00001731: PUSH1 0x24
00001733: CALLDATALOAD
00001734: SWAP1
00001735: PUSH1 0x44
00001737: CALLDATALOAD
00001738: SWAP1
00001739: PUSH2 0x1741
0000173c: DUP3
0000173d: PUSH2 0x0737
00001740: JUMP
00001741: JUMPDEST
00001742: PUSH1 0x64
00001744: CALLDATALOAD
00001745: SWAP2
00001746: PUSH2 0x174e
00001749: DUP4
0000174a: PUSH2 0x0737
0000174d: JUMP
0000174e: JUMPDEST
0000174f: PUSH2 0x1756
00001752: PUSH2 0x4288
00001755: JUMP
00001756: JUMPDEST
00001757: PUSH0
00001758: MLOAD
00001759: PUSH1 0x20
0000175b: PUSH2 0x4d82
0000175e: PUSH0
0000175f: CODECOPY
00001760: PUSH0
00001761: MLOAD
00001762: SWAP1
00001763: PUSH0
00001764: MSTORE
00001765: SLOAD
00001766: PUSH2 0x1779
00001769: SWAP1
0000176a: PUSH2 0x154e
0000176d: SWAP1
0000176e: PUSH1 0x01
00001770: PUSH1 0x01
00001772: PUSH1 0xa0
00001774: SHL
00001775: SUB
00001776: AND
00001777: DUP2
00001778: JUMP
00001779: JUMPDEST
0000177a: PUSH1 0x01
0000177c: PUSH1 0x01
0000177e: PUSH1 0xa0
00001780: SHL
00001781: SUB
00001782: DUP4
00001783: AND
00001784: SWAP3
00001785: SWAP1
00001786: DUP4
00001787: EQ
00001788: PUSH2 0x18b7
0000178b: JUMPI
0000178c: PUSH2 0x1794
0000178f: DUP6
00001790: PUSH2 0x3d18
00001793: JUMP
00001794: JUMPDEST
00001795: SWAP4
00001796: PUSH2 0x179e
00001799: DUP2
0000179a: PUSH2 0x366b
0000179d: JUMP
0000179e: JUMPDEST
0000179f: DUP1
000017a0: DUP7
000017a1: GT
000017a2: PUSH2 0x1893
000017a5: JUMPI
000017a6: POP
000017a7: DUP6
000017a8: PUSH2 0x1596
000017ab: PUSH2 0x1813
000017ae: SWAP4
000017af: PUSH2 0x17ca
000017b2: DUP9
000017b3: PUSH2 0x1804
000017b6: SWAP6
000017b7: PUSH1 0x01
000017b9: DUP1
000017ba: PUSH1 0xa0
000017bc: SHL
000017bd: SUB
000017be: DUP2
000017bf: AND
000017c0: CALLER
000017c1: SUB
000017c2: PUSH2 0x1883
000017c5: JUMPI
000017c6: PUSH2 0x42c0
000017c9: JUMP
000017ca: JUMPDEST
000017cb: PUSH1 0x40
000017cd: MLOAD
000017ce: PUSH4 0x5394eb43
000017d3: PUSH1 0xe1
000017d5: SHL
000017d6: PUSH1 0x20
000017d8: DUP3
000017d9: ADD
000017da: MSTORE
000017db: PUSH1 0x01
000017dd: PUSH1 0x01
000017df: PUSH1 0xa0
000017e1: SHL
000017e2: SUB
000017e3: DUP1
000017e4: DUP9
000017e5: AND
000017e6: PUSH1 0x24
000017e8: DUP4
000017e9: ADD
000017ea: MSTORE
000017eb: SWAP1
000017ec: SWAP2
000017ed: AND
000017ee: PUSH1 0x44
000017f0: DUP3
000017f1: ADD
000017f2: MSTORE
000017f3: PUSH1 0x64
000017f5: DUP2
000017f6: ADD
000017f7: SWAP3
000017f8: SWAP1
000017f9: SWAP3
000017fa: MSTORE
000017fb: DUP2
000017fc: PUSH1 0x84
000017fe: DUP2
000017ff: ADD
00001800: PUSH2 0x1588
00001803: JUMP
00001804: JUMPDEST
00001805: PUSH1 0x20
00001807: DUP1
00001808: DUP3
00001809: MLOAD
0000180a: DUP4
0000180b: ADD
0000180c: ADD
0000180d: SWAP2
0000180e: ADD
0000180f: PUSH2 0x36a4
00001812: JUMP
00001813: JUMPDEST
00001814: PUSH1 0x40
00001816: DUP1
00001817: MLOAD
00001818: SWAP6
00001819: DUP7
0000181a: MSTORE
0000181b: PUSH1 0x20
0000181d: DUP7
0000181e: ADD
0000181f: DUP6
00001820: SWAP1
00001821: MSTORE
00001822: DUP6
00001823: ADD
00001824: DUP2
00001825: SWAP1
00001826: MSTORE
00001827: SWAP4
00001828: PUSH1 0x01
0000182a: PUSH1 0x01
0000182c: PUSH1 0xa0
0000182e: SHL
0000182f: SUB
00001830: SWAP2
00001831: SWAP1
00001832: SWAP2
00001833: AND
00001834: SWAP1
00001835: CALLER
00001836: SWAP1
00001837: PUSH32 0xaf2e30fae2dfd1a90059cf53415e90c4ee9d151c1b1861df8f8a5963069c47f4
00001858: SWAP1
00001859: PUSH1 0x60
0000185b: SWAP1
0000185c: LOG4
0000185d: PUSH2 0x1872
00001860: PUSH1 0x01
00001862: PUSH0
00001863: MLOAD
00001864: PUSH1 0x20
00001866: PUSH2 0x4dc2
00001869: PUSH0
0000186a: CODECOPY
0000186b: PUSH0
0000186c: MLOAD
0000186d: SWAP1
0000186e: PUSH0
0000186f: MSTORE
00001870: SSTORE
00001871: JUMP
00001872: JUMPDEST
00001873: PUSH1 0x40
00001875: DUP1
00001876: MLOAD
00001877: SWAP2
00001878: DUP3
00001879: MSTORE
0000187a: PUSH1 0x20
0000187c: DUP3
0000187d: ADD
0000187e: SWAP3
0000187f: SWAP1
00001880: SWAP3
00001881: MSTORE
00001882: RETURN
00001883: JUMPDEST
00001884: PUSH2 0x188e
00001887: DUP3
00001888: CALLER
00001889: DUP4
0000188a: PUSH2 0x3fc0
0000188d: JUMP
0000188e: JUMPDEST
0000188f: PUSH2 0x42c0
00001892: JUMP
00001893: JUMPDEST
00001894: PUSH4 0x2e52afbb
00001899: PUSH1 0xe2
0000189b: SHL
0000189c: PUSH0
0000189d: MSTORE
0000189e: PUSH1 0x01
000018a0: PUSH1 0x01
000018a2: PUSH1 0xa0
000018a4: SHL
000018a5: SUB
000018a6: DUP5
000018a7: AND
000018a8: PUSH1 0x04
000018aa: MSTORE
000018ab: PUSH1 0x24
000018ad: DUP7
000018ae: SWAP1
000018af: MSTORE
000018b0: PUSH1 0x44
000018b2: MSTORE
000018b3: PUSH1 0x64
000018b5: PUSH0
000018b6: REVERT
000018b7: JUMPDEST
000018b8: PUSH4 0x4049e745
000018bd: PUSH1 0xe1
000018bf: SHL
000018c0: PUSH0
000018c1: MSTORE
000018c2: PUSH1 0x04
000018c4: PUSH0
000018c5: REVERT
000018c6: JUMPDEST
000018c7: CALLVALUE
000018c8: PUSH2 0x05f1
000018cb: JUMPI
000018cc: PUSH1 0x20
000018ce: CALLDATASIZE
000018cf: PUSH1 0x03
000018d1: NOT
000018d2: ADD
000018d3: SLT
000018d4: PUSH2 0x05f1
000018d7: JUMPI
000018d8: PUSH1 0x04
000018da: CALLDATALOAD
000018db: PUSH1 0x01
000018dd: SLOAD
000018de: PUSH1 0x01
000018e0: PUSH1 0x01
000018e2: PUSH1 0xa0
000018e4: SHL
000018e5: SUB
000018e6: AND
000018e7: CALLER
000018e8: EQ
000018e9: ISZERO
000018ea: DUP1
000018eb: PUSH2 0x1977
000018ee: JUMPI
000018ef: JUMPDEST
000018f0: PUSH2 0x0a3e
000018f3: JUMPI
000018f4: PUSH1 0x08
000018f6: SLOAD
000018f7: SWAP1
000018f8: DUP2
000018f9: DUP2
000018fa: EQ
000018fb: PUSH2 0x0a28
000018fe: JUMPI
000018ff: PUSH1 0x05
00001901: SLOAD
00001902: PUSH1 0xc0
00001904: SHR
00001905: PUSH2 0x0a19
00001908: JUMPI
00001909: PUSH2 0x1911
0000190c: DUP2
0000190d: PUSH2 0x4359
00001910: JUMP
00001911: JUMPDEST
00001912: DUP2
00001913: DUP2
00001914: GT
00001915: ISZERO
00001916: PUSH2 0x1923
00001919: JUMPI
0000191a: PUSH2 0x0987
0000191d: SWAP2
0000191e: POP
0000191f: PUSH2 0x438c
00001922: JUMP
00001923: JUMPDEST
00001924: PUSH32 0x6ed11f5df0bdefbbb4873e90566a9cfafbb8305c164922c173437f3c45f90a35
00001945: SWAP2
00001946: PUSH2 0x1958
00001949: SWAP1
0000194a: PUSH1 0x01
0000194c: PUSH1 0x01
0000194e: PUSH1 0xb8
00001950: SHL
00001951: SUB
00001952: DUP4
00001953: AND
00001954: PUSH2 0x3ddb
00001957: JUMP
00001958: JUMPDEST
00001959: PUSH1 0x05
0000195b: SLOAD
0000195c: PUSH1 0x40
0000195e: DUP1
0000195f: MLOAD
00001960: SWAP3
00001961: DUP4
00001962: MSTORE
00001963: PUSH1 0xc0
00001965: SWAP2
00001966: SWAP1
00001967: SWAP2
00001968: SHR
00001969: PUSH1 0x20
0000196b: DUP4
0000196c: ADD
0000196d: MSTORE
0000196e: DUP2
0000196f: SWAP1
00001970: DUP2
00001971: ADD
00001972: JUMPDEST
00001973: SUB
00001974: SWAP1
00001975: LOG1
00001976: STOP
00001977: JUMPDEST
00001978: POP
00001979: PUSH0
0000197a: MLOAD
0000197b: PUSH1 0x20
0000197d: PUSH2 0x4d02
00001980: PUSH0
00001981: CODECOPY
00001982: PUSH0
00001983: MLOAD
00001984: SWAP1
00001985: PUSH0
00001986: MSTORE
00001987: SLOAD
00001988: PUSH1 0x01
0000198a: PUSH1 0x01
0000198c: PUSH1 0xa0
0000198e: SHL
0000198f: SUB
00001990: AND
00001991: CALLER
00001992: EQ
00001993: ISZERO
00001994: PUSH2 0x18ef
00001997: JUMP
00001998: JUMPDEST
00001999: CALLVALUE
0000199a: PUSH2 0x05f1
0000199d: JUMPI
0000199e: PUSH0
0000199f: CALLDATASIZE
000019a0: PUSH1 0x03
000019a2: NOT
000019a3: ADD
000019a4: SLT
000019a5: PUSH2 0x05f1
000019a8: JUMPI
000019a9: PUSH2 0x19b0
000019ac: PUSH2 0x339e
000019af: JUMP
000019b0: JUMPDEST
000019b1: POP
000019b2: PUSH1 0x40
000019b4: DUP1
000019b5: MLOAD
000019b6: PUSH2 0x19be
000019b9: DUP2
000019ba: PUSH2 0x0eb2
000019bd: JUMP
000019be: JUMPDEST
000019bf: PUSH1 0x01
000019c1: PUSH1 0x01
000019c3: PUSH1 0x40
000019c5: SHL
000019c6: SUB
000019c7: PUSH1 0x07
000019c9: SLOAD
000019ca: DUP2
000019cb: PUSH1 0x20
000019cd: PUSH1 0x01
000019cf: DUP1
000019d0: PUSH1 0xa0
000019d2: SHL
000019d3: SUB
000019d4: DUP4
000019d5: AND
000019d6: SWAP5
000019d7: DUP6
000019d8: DUP2
000019d9: MSTORE
000019da: ADD
000019db: SWAP2
000019dc: PUSH1 0xa0
000019de: SHR
000019df: AND
000019e0: DUP2
000019e1: MSTORE
000019e2: DUP4
000019e3: MLOAD
000019e4: SWAP3
000019e5: DUP4
000019e6: MSTORE
000019e7: MLOAD
000019e8: AND
000019e9: PUSH1 0x20
000019eb: DUP3
000019ec: ADD
000019ed: MSTORE
000019ee: RETURN
000019ef: JUMPDEST
000019f0: PUSH1 0x01
000019f2: PUSH1 0x01
000019f4: PUSH1 0x40
000019f6: SHL
000019f7: SUB
000019f8: DUP2
000019f9: GT
000019fa: PUSH2 0x0ead
000019fd: JUMPI
000019fe: PUSH1 0x1f
00001a00: ADD
00001a01: PUSH1 0x1f
00001a03: NOT
00001a04: AND
00001a05: PUSH1 0x20
00001a07: ADD
00001a08: SWAP1
00001a09: JUMP
00001a0a: JUMPDEST
00001a0b: DUP2
00001a0c: PUSH1 0x1f
00001a0e: DUP3
00001a0f: ADD
00001a10: SLT
00001a11: ISZERO
00001a12: PUSH2 0x05f1
00001a15: JUMPI
00001a16: DUP1
00001a17: CALLDATALOAD
00001a18: SWAP1
00001a19: PUSH2 0x1a21
00001a1c: DUP3
00001a1d: PUSH2 0x19ef
00001a20: JUMP
00001a21: JUMPDEST
00001a22: SWAP3
00001a23: PUSH2 0x1a2f
00001a26: PUSH1 0x40
00001a28: MLOAD
00001a29: SWAP5
00001a2a: DUP6
00001a2b: PUSH2 0x0ee8
00001a2e: JUMP
00001a2f: JUMPDEST
00001a30: DUP3
00001a31: DUP5
00001a32: MSTORE
00001a33: PUSH1 0x20
00001a35: DUP4
00001a36: DUP4
00001a37: ADD
00001a38: ADD
00001a39: GT
00001a3a: PUSH2 0x05f1
00001a3d: JUMPI
00001a3e: DUP2
00001a3f: PUSH0
00001a40: SWAP3
00001a41: PUSH1 0x20
00001a43: DUP1
00001a44: SWAP4
00001a45: ADD
00001a46: DUP4
00001a47: DUP7
00001a48: ADD
00001a49: CALLDATACOPY
00001a4a: DUP4
00001a4b: ADD
00001a4c: ADD
00001a4d: MSTORE
00001a4e: SWAP1
00001a4f: JUMP
00001a50: JUMPDEST
00001a51: PUSH1 0x04
00001a53: CALLDATALOAD
00001a54: SWAP1
00001a55: PUSH1 0x01
00001a57: PUSH1 0x01
00001a59: PUSH1 0x40
00001a5b: SHL
00001a5c: SUB
00001a5d: DUP3
00001a5e: AND
00001a5f: DUP3
00001a60: SUB
00001a61: PUSH2 0x05f1
00001a64: JUMPI
00001a65: JUMP
00001a66: JUMPDEST
00001a67: CALLDATALOAD
00001a68: SWAP1
00001a69: PUSH1 0x01
00001a6b: PUSH1 0x01
00001a6d: PUSH1 0x40
00001a6f: SHL
00001a70: SUB
00001a71: DUP3
00001a72: AND
00001a73: DUP3
00001a74: SUB
00001a75: PUSH2 0x05f1
00001a78: JUMPI
00001a79: JUMP
00001a7a: JUMPDEST
00001a7b: CALLVALUE
00001a7c: PUSH2 0x05f1
00001a7f: JUMPI
00001a80: PUSH1 0x20
00001a82: CALLDATASIZE
00001a83: PUSH1 0x03
00001a85: NOT
00001a86: ADD
00001a87: SLT
00001a88: PUSH2 0x05f1
00001a8b: JUMPI
00001a8c: PUSH1 0x04
00001a8e: CALLDATALOAD
00001a8f: PUSH1 0x01
00001a91: PUSH1 0x01
00001a93: PUSH1 0x40
00001a95: SHL
00001a96: SUB
00001a97: DUP2
00001a98: GT
00001a99: PUSH2 0x05f1
00001a9c: JUMPI
00001a9d: PUSH2 0x0100
00001aa0: PUSH1 0x03
00001aa2: NOT
00001aa3: DUP3
00001aa4: CALLDATASIZE
00001aa5: SUB
00001aa6: ADD
00001aa7: SLT
00001aa8: PUSH2 0x05f1
00001aab: JUMPI
00001aac: PUSH2 0x1ab3
00001aaf: PUSH2 0x0f09
00001ab2: JUMP
00001ab3: JUMPDEST
00001ab4: SWAP1
00001ab5: PUSH2 0x1ac0
00001ab8: DUP2
00001ab9: PUSH1 0x04
00001abb: ADD
00001abc: PUSH2 0x0748
00001abf: JUMP
00001ac0: JUMPDEST
00001ac1: DUP3
00001ac2: MSTORE
00001ac3: PUSH2 0x1ace
00001ac6: PUSH1 0x24
00001ac8: DUP3
00001ac9: ADD
00001aca: PUSH2 0x0748
00001acd: JUMP
00001ace: JUMPDEST
00001acf: PUSH1 0x20
00001ad1: DUP4
00001ad2: ADD
00001ad3: MSTORE
00001ad4: PUSH1 0x44
00001ad6: DUP2
00001ad7: ADD
00001ad8: CALLDATALOAD
00001ad9: PUSH1 0x40
00001adb: DUP4
00001adc: ADD
00001add: MSTORE
00001ade: PUSH2 0x1ae9
00001ae1: PUSH1 0x64
00001ae3: DUP3
00001ae4: ADD
00001ae5: PUSH2 0x0748
00001ae8: JUMP
00001ae9: JUMPDEST
00001aea: PUSH1 0x60
00001aec: DUP4
00001aed: ADD
00001aee: MSTORE
00001aef: PUSH1 0x84
00001af1: DUP2
00001af2: ADD
00001af3: CALLDATALOAD
00001af4: PUSH1 0x80
00001af6: DUP4
00001af7: ADD
00001af8: MSTORE
00001af9: PUSH1 0xa4
00001afb: DUP2
00001afc: ADD
00001afd: CALLDATALOAD
00001afe: PUSH1 0x01
00001b00: PUSH1 0x01
00001b02: PUSH1 0x40
00001b04: SHL
00001b05: SUB
00001b06: DUP2
00001b07: GT
00001b08: PUSH2 0x05f1
00001b0b: JUMPI
00001b0c: PUSH2 0x1b1b
00001b0f: SWAP1
00001b10: PUSH1 0x04
00001b12: CALLDATASIZE
00001b13: SWAP2
00001b14: DUP5
00001b15: ADD
00001b16: ADD
00001b17: PUSH2 0x1a0a
00001b1a: JUMP
00001b1b: JUMPDEST
00001b1c: PUSH1 0xa0
00001b1e: DUP4
00001b1f: ADD
00001b20: MSTORE
00001b21: PUSH1 0xc4
00001b23: DUP2
00001b24: ADD
00001b25: CALLDATALOAD
00001b26: PUSH1 0x01
00001b28: PUSH1 0x01
00001b2a: PUSH1 0x40
00001b2c: SHL
00001b2d: SUB
00001b2e: DUP2
00001b2f: GT
00001b30: PUSH2 0x05f1
00001b33: JUMPI
00001b34: PUSH2 0x1b54
00001b37: SWAP2
00001b38: PUSH2 0x1b49
00001b3b: PUSH1 0xe4
00001b3d: SWAP3
00001b3e: PUSH1 0x04
00001b40: CALLDATASIZE
00001b41: SWAP2
00001b42: DUP5
00001b43: ADD
00001b44: ADD
00001b45: PUSH2 0x1a0a
00001b48: JUMP
00001b49: JUMPDEST
00001b4a: PUSH1 0xc0
00001b4c: DUP6
00001b4d: ADD
00001b4e: MSTORE
00001b4f: ADD
00001b50: PUSH2 0x1a66
00001b53: JUMP
00001b54: JUMPDEST
00001b55: PUSH1 0xe0
00001b57: DUP3
00001b58: ADD
00001b59: MSTORE
00001b5a: PUSH2 0x3712
00001b5d: JUMP
00001b5e: JUMPDEST
00001b5f: CALLVALUE
00001b60: PUSH2 0x05f1
00001b63: JUMPI
00001b64: PUSH0
00001b65: CALLDATASIZE
00001b66: PUSH1 0x03
00001b68: NOT
00001b69: ADD
00001b6a: SLT
00001b6b: PUSH2 0x05f1
00001b6e: JUMPI
00001b6f: PUSH0
00001b70: MLOAD
00001b71: PUSH1 0x20
00001b73: PUSH2 0x4e02
00001b76: PUSH0
00001b77: CODECOPY
00001b78: PUSH0
00001b79: MLOAD
00001b7a: SWAP1
00001b7b: PUSH0
00001b7c: MSTORE
00001b7d: SLOAD
00001b7e: CALLER
00001b7f: PUSH1 0x01
00001b81: PUSH1 0x01
00001b83: PUSH1 0xa0
00001b85: SHL
00001b86: SUB
00001b87: SWAP1
00001b88: SWAP2
00001b89: AND
00001b8a: SUB
00001b8b: PUSH2 0x1b97
00001b8e: JUMPI
00001b8f: PUSH2 0x0987
00001b92: CALLER
00001b93: PUSH2 0x421d
00001b96: JUMP
00001b97: JUMPDEST
00001b98: PUSH4 0x118cdaa7
00001b9d: PUSH1 0xe0
00001b9f: SHL
00001ba0: PUSH0
00001ba1: MSTORE
00001ba2: CALLER
00001ba3: PUSH1 0x04
00001ba5: MSTORE
00001ba6: PUSH1 0x24
00001ba8: PUSH0
00001ba9: REVERT
00001baa: JUMPDEST
00001bab: CALLVALUE
00001bac: PUSH2 0x05f1
00001baf: JUMPI
00001bb0: PUSH0
00001bb1: CALLDATASIZE
00001bb2: PUSH1 0x03
00001bb4: NOT
00001bb5: ADD
00001bb6: SLT
00001bb7: PUSH2 0x05f1
00001bba: JUMPI
00001bbb: PUSH2 0x1bc2
00001bbe: PUSH2 0x339e
00001bc1: JUMP
00001bc2: JUMPDEST
00001bc3: POP
00001bc4: PUSH2 0x067f
00001bc7: PUSH1 0x40
00001bc9: MLOAD
00001bca: PUSH2 0x1bd2
00001bcd: DUP2
00001bce: PUSH2 0x0eb2
00001bd1: JUMP
00001bd2: JUMPDEST
00001bd3: PUSH1 0x05
00001bd5: SLOAD
00001bd6: PUSH1 0x01
00001bd8: PUSH1 0x01
00001bda: PUSH1 0xc0
00001bdc: SHL
00001bdd: SUB
00001bde: DUP2
00001bdf: AND
00001be0: DUP1
00001be1: DUP4
00001be2: MSTORE
00001be3: PUSH1 0xc0
00001be5: SWAP2
00001be6: SWAP1
00001be7: SWAP2
00001be8: SHR
00001be9: PUSH1 0x20
00001beb: SWAP3
00001bec: DUP4
00001bed: ADD
00001bee: SWAP1
00001bef: DUP2
00001bf0: MSTORE
00001bf1: PUSH1 0x40
00001bf3: DUP1
00001bf4: MLOAD
00001bf5: SWAP3
00001bf6: DUP4
00001bf7: MSTORE
00001bf8: SWAP1
00001bf9: MLOAD
00001bfa: PUSH1 0x01
00001bfc: PUSH1 0x01
00001bfe: PUSH1 0x40
00001c00: SHL
00001c01: SUB
00001c02: AND
00001c03: SWAP3
00001c04: DUP3
00001c05: ADD
00001c06: SWAP3
00001c07: SWAP1
00001c08: SWAP3
00001c09: MSTORE
00001c0a: SWAP2
00001c0b: DUP3
00001c0c: SWAP2
00001c0d: DUP3
00001c0e: ADD
00001c0f: SWAP1
00001c10: JUMP
00001c11: JUMPDEST
00001c12: CALLVALUE
00001c13: PUSH2 0x05f1
00001c16: JUMPI
00001c17: PUSH0
00001c18: CALLDATASIZE
00001c19: PUSH1 0x03
00001c1b: NOT
00001c1c: ADD
00001c1d: SLT
00001c1e: PUSH2 0x05f1
00001c21: JUMPI
00001c22: PUSH0
00001c23: SLOAD
00001c24: PUSH1 0x01
00001c26: PUSH1 0x01
00001c28: PUSH1 0xa0
00001c2a: SHL
00001c2b: SUB
00001c2c: AND
00001c2d: CALLER
00001c2e: EQ
00001c2f: ISZERO
00001c30: DUP1
00001c31: PUSH2 0x1c64
00001c34: JUMPI
00001c35: JUMPDEST
00001c36: PUSH2 0x0b83
00001c39: JUMPI
00001c3a: PUSH0
00001c3b: PUSH1 0x06
00001c3d: SSTORE
00001c3e: CALLER
00001c3f: PUSH32 0xb7cc052ba5dd4e2c200f771e69c6c4dddd930567bd8bea00e527944967c57db8
00001c60: PUSH0
00001c61: DUP1
00001c62: LOG2
00001c63: STOP
00001c64: JUMPDEST
00001c65: POP
00001c66: PUSH0
00001c67: MLOAD
00001c68: PUSH1 0x20
00001c6a: PUSH2 0x4d02
00001c6d: PUSH0
00001c6e: CODECOPY
00001c6f: PUSH0
00001c70: MLOAD
00001c71: SWAP1
00001c72: PUSH0
00001c73: MSTORE
00001c74: SLOAD
00001c75: PUSH1 0x01
00001c77: PUSH1 0x01
00001c79: PUSH1 0xa0
00001c7b: SHL
00001c7c: SUB
00001c7d: AND
00001c7e: CALLER
00001c7f: EQ
00001c80: ISZERO
00001c81: PUSH2 0x1c35
00001c84: JUMP
00001c85: JUMPDEST
00001c86: CALLVALUE
00001c87: PUSH2 0x05f1
00001c8a: JUMPI
00001c8b: PUSH0
00001c8c: CALLDATASIZE
00001c8d: PUSH1 0x03
00001c8f: NOT
00001c90: ADD
00001c91: SLT
00001c92: PUSH2 0x05f1
00001c95: JUMPI
00001c96: PUSH2 0x1c9d
00001c99: PUSH2 0x4162
00001c9c: JUMP
00001c9d: JUMPDEST
00001c9e: PUSH2 0x1ca5
00001ca1: PUSH2 0x4182
00001ca4: JUMP
00001ca5: JUMPDEST
00001ca6: PUSH1 0x01
00001ca8: PUSH1 0xff
00001caa: NOT
00001cab: PUSH0
00001cac: MLOAD
00001cad: PUSH1 0x20
00001caf: PUSH2 0x4da2
00001cb2: PUSH0
00001cb3: CODECOPY
00001cb4: PUSH0
00001cb5: MLOAD
00001cb6: SWAP1
00001cb7: PUSH0
00001cb8: MSTORE
00001cb9: SLOAD
00001cba: AND
00001cbb: OR
00001cbc: PUSH0
00001cbd: MLOAD
00001cbe: PUSH1 0x20
00001cc0: PUSH2 0x4da2
00001cc3: PUSH0
00001cc4: CODECOPY
00001cc5: PUSH0
00001cc6: MLOAD
00001cc7: SWAP1
00001cc8: PUSH0
00001cc9: MSTORE
00001cca: SSTORE
00001ccb: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258
00001cec: PUSH1 0x20
00001cee: PUSH1 0x40
00001cf0: MLOAD
00001cf1: CALLER
00001cf2: DUP2
00001cf3: MSTORE
00001cf4: LOG1
00001cf5: STOP
00001cf6: JUMPDEST
00001cf7: CALLVALUE
00001cf8: PUSH2 0x05f1
00001cfb: JUMPI
00001cfc: PUSH0
00001cfd: CALLDATASIZE
00001cfe: PUSH1 0x03
00001d00: NOT
00001d01: ADD
00001d02: SLT
00001d03: PUSH2 0x05f1
00001d06: JUMPI
00001d07: PUSH0
00001d08: SLOAD
00001d09: PUSH1 0x01
00001d0b: PUSH1 0x01
00001d0d: PUSH1 0xa0
00001d0f: SHL
00001d10: SUB
00001d11: AND
00001d12: CALLER
00001d13: EQ
00001d14: ISZERO
00001d15: DUP1
00001d16: PUSH2 0x1d49
00001d19: JUMPI
00001d1a: JUMPDEST
00001d1b: PUSH2 0x0b83
00001d1e: JUMPI
00001d1f: PUSH0
00001d20: PUSH1 0x12
00001d22: SSTORE
00001d23: CALLER
00001d24: PUSH32 0x6e2daa1b3bca5239ed02028dbe091b3e5d41ae2702e4394b0a28cee04bd59fb2
00001d45: PUSH0
00001d46: DUP1
00001d47: LOG2
00001d48: STOP
00001d49: JUMPDEST
00001d4a: POP
00001d4b: PUSH0
00001d4c: MLOAD
00001d4d: PUSH1 0x20
00001d4f: PUSH2 0x4d02
00001d52: PUSH0
00001d53: CODECOPY
00001d54: PUSH0
00001d55: MLOAD
00001d56: SWAP1
00001d57: PUSH0
00001d58: MSTORE
00001d59: SLOAD
00001d5a: PUSH1 0x01
00001d5c: PUSH1 0x01
00001d5e: PUSH1 0xa0
00001d60: SHL
00001d61: SUB
00001d62: AND
00001d63: CALLER
00001d64: EQ
00001d65: ISZERO
00001d66: PUSH2 0x1d1a
00001d69: JUMP
00001d6a: JUMPDEST
00001d6b: CALLVALUE
00001d6c: PUSH2 0x05f1
00001d6f: JUMPI
00001d70: PUSH0
00001d71: CALLDATASIZE
00001d72: PUSH1 0x03
00001d74: NOT
00001d75: ADD
00001d76: SLT
00001d77: PUSH2 0x05f1
00001d7a: JUMPI
00001d7b: PUSH1 0x20
00001d7d: PUSH2 0x1d84
00001d80: PUSH2 0x3b3a
00001d83: JUMP
00001d84: JUMPDEST
00001d85: SWAP1
00001d86: POP
00001d87: PUSH7 0x2386f26fc10000
00001d8f: PUSH1 0x40
00001d91: MLOAD
00001d92: SWAP2
00001d93: DIV
00001d94: DUP2
00001d95: MSTORE
00001d96: RETURN
00001d97: JUMPDEST
00001d98: CALLVALUE
00001d99: PUSH2 0x05f1
00001d9c: JUMPI
00001d9d: PUSH1 0x20
00001d9f: CALLDATASIZE
00001da0: PUSH1 0x03
00001da2: NOT
00001da3: ADD
00001da4: SLT
00001da5: PUSH2 0x05f1
00001da8: JUMPI
00001da9: PUSH2 0x1db0
00001dac: PUSH2 0x1a50
00001daf: JUMP
00001db0: JUMPDEST
00001db1: PUSH1 0x01
00001db3: SLOAD
00001db4: PUSH1 0x01
00001db6: PUSH1 0x01
00001db8: PUSH1 0xa0
00001dba: SHL
00001dbb: SUB
00001dbc: AND
00001dbd: CALLER
00001dbe: EQ
00001dbf: ISZERO
00001dc0: DUP1
00001dc1: PUSH2 0x1e7e
00001dc4: JUMPI
00001dc5: JUMPDEST
00001dc6: PUSH2 0x0a3e
00001dc9: JUMPI
00001dca: PUSH1 0x14
00001dcc: SLOAD
00001dcd: PUSH2 0x1de9
00001dd0: SWAP1
00001dd1: PUSH1 0x80
00001dd3: SHR
00001dd4: PUSH1 0x01
00001dd6: PUSH1 0x01
00001dd8: PUSH1 0x40
00001dda: SHL
00001ddb: SUB
00001ddc: AND
00001ddd: JUMPDEST
00001dde: PUSH1 0x01
00001de0: PUSH1 0x01
00001de2: PUSH1 0x40
00001de4: SHL
00001de5: SUB
00001de6: AND
00001de7: SWAP1
00001de8: JUMP
00001de9: JUMPDEST
00001dea: SWAP1
00001deb: PUSH1 0x01
00001ded: PUSH1 0x01
00001def: PUSH1 0x40
00001df1: SHL
00001df2: SUB
00001df3: DUP2
00001df4: AND
00001df5: SWAP2
00001df6: DUP1
00001df7: DUP4
00001df8: EQ
00001df9: PUSH2 0x0a28
00001dfc: JUMPI
00001dfd: PUSH1 0x01
00001dff: PUSH1 0x01
00001e01: PUSH1 0x40
00001e03: SHL
00001e04: SUB
00001e05: PUSH2 0x1e10
00001e08: PUSH1 0x12
00001e0a: SLOAD
00001e0b: PUSH1 0xc0
00001e0d: SHR
00001e0e: SWAP1
00001e0f: JUMP
00001e10: JUMPDEST
00001e11: AND
00001e12: PUSH2 0x0a19
00001e15: JUMPI
00001e16: DUP3
00001e17: GT
00001e18: ISZERO
00001e19: PUSH2 0x1e26
00001e1c: JUMPI
00001e1d: PUSH2 0x0987
00001e20: SWAP2
00001e21: POP
00001e22: PUSH2 0x3f64
00001e25: JUMP
00001e26: JUMPDEST
00001e27: PUSH2 0x1e54
00001e2a: PUSH32 0x4cedca5aa9a1cac41bbc05fef13c4ddccee26353a3de3d7615435bdf3f92ad63
00001e4b: SWAP3
00001e4c: PUSH1 0x08
00001e4e: SLOAD
00001e4f: SWAP1
00001e50: PUSH2 0x3e24
00001e53: JUMP
00001e54: JUMPDEST
00001e55: PUSH1 0x12
00001e57: SLOAD
00001e58: PUSH1 0xc0
00001e5a: SHR
00001e5b: JUMPDEST
00001e5c: PUSH1 0x40
00001e5e: DUP1
00001e5f: MLOAD
00001e60: PUSH1 0x01
00001e62: PUSH1 0x01
00001e64: PUSH1 0x40
00001e66: SHL
00001e67: SUB
00001e68: SWAP4
00001e69: DUP5
00001e6a: AND
00001e6b: DUP2
00001e6c: MSTORE
00001e6d: SWAP3
00001e6e: SWAP1
00001e6f: SWAP2
00001e70: AND
00001e71: PUSH1 0x20
00001e73: DUP4
00001e74: ADD
00001e75: MSTORE
00001e76: DUP2
00001e77: SWAP1
00001e78: DUP2
00001e79: ADD
00001e7a: PUSH2 0x1972
00001e7d: JUMP
00001e7e: JUMPDEST
00001e7f: POP
00001e80: PUSH0
00001e81: MLOAD
00001e82: PUSH1 0x20
00001e84: PUSH2 0x4d02
00001e87: PUSH0
00001e88: CODECOPY
00001e89: PUSH0
00001e8a: MLOAD
00001e8b: SWAP1
00001e8c: PUSH0
00001e8d: MSTORE
00001e8e: SLOAD
00001e8f: PUSH1 0x01
00001e91: PUSH1 0x01
00001e93: PUSH1 0xa0
00001e95: SHL
00001e96: SUB
00001e97: AND
00001e98: CALLER
00001e99: EQ
00001e9a: ISZERO
00001e9b: PUSH2 0x1dc5
00001e9e: JUMP
00001e9f: JUMPDEST
00001ea0: CALLVALUE
00001ea1: PUSH2 0x05f1
00001ea4: JUMPI
00001ea5: PUSH0
00001ea6: CALLDATASIZE
00001ea7: PUSH1 0x03
00001ea9: NOT
00001eaa: ADD
00001eab: SLT
00001eac: PUSH2 0x05f1
00001eaf: JUMPI
00001eb0: PUSH1 0x05
00001eb2: SLOAD
00001eb3: DUP1
00001eb4: PUSH1 0xc0
00001eb6: SHR
00001eb7: DUP1
00001eb8: ISZERO
00001eb9: PUSH2 0x0ab8
00001ebc: JUMPI
00001ebd: TIMESTAMP
00001ebe: LT
00001ebf: PUSH2 0x0aa9
00001ec2: JUMPI
00001ec3: PUSH2 0x0987
00001ec6: SWAP1
00001ec7: PUSH1 0x01
00001ec9: PUSH1 0x01
00001ecb: PUSH1 0xc0
00001ecd: SHL
00001ece: SUB
00001ecf: AND
00001ed0: PUSH2 0x438c
00001ed3: JUMP
00001ed4: JUMPDEST
00001ed5: CALLVALUE
00001ed6: PUSH2 0x05f1
00001ed9: JUMPI
00001eda: PUSH0
00001edb: CALLDATASIZE
00001edc: PUSH1 0x03
00001ede: NOT
00001edf: ADD
00001ee0: SLT
00001ee1: PUSH2 0x05f1
00001ee4: JUMPI
00001ee5: PUSH0
00001ee6: MLOAD
00001ee7: PUSH1 0x20
00001ee9: PUSH2 0x4d02
00001eec: PUSH0
00001eed: CODECOPY
00001eee: PUSH0
00001eef: MLOAD
00001ef0: SWAP1
00001ef1: PUSH0
00001ef2: MSTORE
00001ef3: SLOAD
00001ef4: PUSH1 0x40
00001ef6: MLOAD
00001ef7: PUSH1 0x01
00001ef9: PUSH1 0x01
00001efb: PUSH1 0xa0
00001efd: SHL
00001efe: SUB
00001eff: SWAP1
00001f00: SWAP2
00001f01: AND
00001f02: DUP2
00001f03: MSTORE
00001f04: PUSH1 0x20
00001f06: SWAP1
00001f07: RETURN
00001f08: JUMPDEST
00001f09: CALLVALUE
00001f0a: PUSH2 0x05f1
00001f0d: JUMPI
00001f0e: PUSH1 0x20
00001f10: CALLDATASIZE
00001f11: PUSH1 0x03
00001f13: NOT
00001f14: ADD
00001f15: SLT
00001f16: PUSH2 0x05f1
00001f19: JUMPI
00001f1a: PUSH1 0x04
00001f1c: CALLDATALOAD
00001f1d: PUSH1 0x01
00001f1f: DUP1
00001f20: PUSH1 0xa0
00001f22: SHL
00001f23: SUB
00001f24: PUSH1 0x01
00001f26: SLOAD
00001f27: AND
00001f28: CALLER
00001f29: EQ
00001f2a: ISZERO
00001f2b: DUP1
00001f2c: PUSH2 0x1f46
00001f2f: JUMPI
00001f30: JUMPDEST
00001f31: PUSH2 0x0a3e
00001f34: JUMPI
00001f35: PUSH1 0x09
00001f37: SLOAD
00001f38: DUP2
00001f39: EQ
00001f3a: PUSH2 0x0a28
00001f3d: JUMPI
00001f3e: PUSH2 0x0987
00001f41: SWAP1
00001f42: PUSH2 0x43c2
00001f45: JUMP
00001f46: JUMPDEST
00001f47: POP
00001f48: PUSH0
00001f49: MLOAD
00001f4a: PUSH1 0x20
00001f4c: PUSH2 0x4d02
00001f4f: PUSH0
00001f50: CODECOPY
00001f51: PUSH0
00001f52: MLOAD
00001f53: SWAP1
00001f54: PUSH0
00001f55: MSTORE
00001f56: SLOAD
00001f57: PUSH1 0x01
00001f59: PUSH1 0x01
00001f5b: PUSH1 0xa0
00001f5d: SHL
00001f5e: SUB
00001f5f: AND
00001f60: CALLER
00001f61: EQ
00001f62: ISZERO
00001f63: PUSH2 0x1f30
00001f66: JUMP
00001f67: JUMPDEST
00001f68: CALLVALUE
00001f69: PUSH2 0x05f1
00001f6c: JUMPI
00001f6d: PUSH1 0x40
00001f6f: CALLDATASIZE
00001f70: PUSH1 0x03
00001f72: NOT
00001f73: ADD
00001f74: SLT
00001f75: PUSH2 0x05f1
00001f78: JUMPI
00001f79: PUSH1 0x04
00001f7b: CALLDATALOAD
00001f7c: PUSH2 0x1f84
00001f7f: DUP2
00001f80: PUSH2 0x0737
00001f83: JUMP
00001f84: JUMPDEST
00001f85: PUSH1 0x24
00001f87: CALLDATALOAD
00001f88: SWAP1
00001f89: PUSH2 0x1f90
00001f8c: PUSH2 0x4288
00001f8f: JUMP
00001f90: JUMPDEST
00001f91: PUSH2 0x1f98
00001f94: PUSH2 0x4182
00001f97: JUMP
00001f98: JUMPDEST
00001f99: PUSH1 0x01
00001f9b: SLOAD
00001f9c: PUSH1 0x01
00001f9e: PUSH1 0x01
00001fa0: PUSH1 0xa0
00001fa2: SHL
00001fa3: SUB
00001fa4: AND
00001fa5: CALLER
00001fa6: EQ
00001fa7: ISZERO
00001fa8: DUP1
00001fa9: PUSH2 0x2017
00001fac: JUMPI
00001fad: JUMPDEST
00001fae: PUSH2 0x0a3e
00001fb1: JUMPI
00001fb2: PUSH0
00001fb3: MLOAD
00001fb4: PUSH1 0x20
00001fb6: PUSH2 0x4d82
00001fb9: PUSH0
00001fba: CODECOPY
00001fbb: PUSH0
00001fbc: MLOAD
00001fbd: SWAP1
00001fbe: PUSH0
00001fbf: MSTORE
00001fc0: SLOAD
00001fc1: PUSH1 0x40
00001fc3: MLOAD
00001fc4: PUSH4 0x2cfc68f1
00001fc9: PUSH1 0xe1
00001fcb: SHL
00001fcc: PUSH1 0x20
00001fce: DUP3
00001fcf: ADD
00001fd0: MSTORE
00001fd1: PUSH1 0x01
00001fd3: PUSH1 0x01
00001fd5: PUSH1 0xa0
00001fd7: SHL
00001fd8: SUB
00001fd9: SWAP2
00001fda: DUP3
00001fdb: AND
00001fdc: PUSH1 0x24
00001fde: DUP3
00001fdf: ADD
00001fe0: MSTORE
00001fe1: SWAP2
00001fe2: AND
00001fe3: PUSH1 0x44
00001fe5: DUP3
00001fe6: ADD
00001fe7: MSTORE
00001fe8: PUSH1 0x64
00001fea: DUP2
00001feb: ADD
00001fec: SWAP2
00001fed: SWAP1
00001fee: SWAP2
00001fef: MSTORE
00001ff0: PUSH2 0x2000
00001ff3: SWAP1
00001ff4: PUSH2 0x1596
00001ff7: DUP2
00001ff8: PUSH1 0x84
00001ffa: DUP2
00001ffb: ADD
00001ffc: PUSH2 0x1588
00001fff: JUMP
00002000: JUMPDEST
00002001: POP
00002002: PUSH2 0x0987
00002005: PUSH1 0x01
00002007: PUSH0
00002008: MLOAD
00002009: PUSH1 0x20
0000200b: PUSH2 0x4dc2
0000200e: PUSH0
0000200f: CODECOPY
00002010: PUSH0
00002011: MLOAD
00002012: SWAP1
00002013: PUSH0
00002014: MSTORE
00002015: SSTORE
00002016: JUMP
00002017: JUMPDEST
00002018: POP
00002019: PUSH0
0000201a: MLOAD
0000201b: PUSH1 0x20
0000201d: PUSH2 0x4d02
00002020: PUSH0
00002021: CODECOPY
00002022: PUSH0
00002023: MLOAD
00002024: SWAP1
00002025: PUSH0
00002026: MSTORE
00002027: SLOAD
00002028: PUSH1 0x01
0000202a: PUSH1 0x01
0000202c: PUSH1 0xa0
0000202e: SHL
0000202f: SUB
00002030: AND
00002031: CALLER
00002032: EQ
00002033: ISZERO
00002034: PUSH2 0x1fad
00002037: JUMP
00002038: JUMPDEST
00002039: CALLVALUE
0000203a: PUSH2 0x05f1
0000203d: JUMPI
0000203e: PUSH1 0x40
00002040: CALLDATASIZE
00002041: PUSH1 0x03
00002043: NOT
00002044: ADD
00002045: SLT
00002046: PUSH2 0x05f1
00002049: JUMPI
0000204a: PUSH1 0x04
0000204c: CALLDATALOAD
0000204d: PUSH1 0x24
0000204f: CALLDATALOAD
00002050: PUSH2 0x2058
00002053: DUP2
00002054: PUSH2 0x0737
00002057: JUMP
00002058: JUMPDEST
00002059: PUSH2 0x2060
0000205c: PUSH2 0x3ac8
0000205f: JUMP
00002060: JUMPDEST
00002061: DUP1
00002062: DUP4
00002063: GT
00002064: PUSH2 0x217c
00002067: JUMPI
00002068: POP
00002069: PUSH2 0x2071
0000206c: DUP3
0000206d: PUSH2 0x3cd4
00002070: JUMP
00002071: JUMPDEST
00002072: SWAP1
00002073: PUSH2 0x207a
00002076: PUSH2 0x4288
00002079: JUMP
0000207a: JUMPDEST
0000207b: PUSH0
0000207c: MLOAD
0000207d: PUSH1 0x20
0000207f: PUSH2 0x4d42
00002082: PUSH0
00002083: CODECOPY
00002084: PUSH0
00002085: MLOAD
00002086: SWAP1
00002087: PUSH0
00002088: MSTORE
00002089: TLOAD
0000208a: SWAP3
0000208b: DUP4
0000208c: ISZERO
0000208d: ISZERO
0000208e: DUP1
0000208f: PUSH2 0x2165
00002092: JUMPI
00002093: JUMPDEST
00002094: PUSH2 0x1612
00002097: JUMPI
00002098: PUSH2 0x067f
0000209b: SWAP4
0000209c: POP
0000209d: PUSH0
0000209e: MLOAD
0000209f: PUSH1 0x20
000020a1: PUSH2 0x4d62
000020a4: PUSH0
000020a5: CODECOPY
000020a6: PUSH0
000020a7: MLOAD
000020a8: SWAP1
000020a9: PUSH0
000020aa: MSTORE
000020ab: PUSH0
000020ac: MLOAD
000020ad: PUSH1 0x20
000020af: PUSH2 0x4d42
000020b2: PUSH0
000020b3: CODECOPY
000020b4: PUSH0
000020b5: MLOAD
000020b6: SWAP1
000020b7: PUSH0
000020b8: MSTORE
000020b9: TSTORE
000020ba: PUSH2 0x20c1
000020bd: PUSH2 0x4182
000020c0: JUMP
000020c1: JUMPDEST
000020c2: PUSH0
000020c3: MLOAD
000020c4: PUSH1 0x20
000020c6: PUSH2 0x4d82
000020c9: PUSH0
000020ca: CODECOPY
000020cb: PUSH0
000020cc: MLOAD
000020cd: SWAP1
000020ce: PUSH0
000020cf: MSTORE
000020d0: SLOAD
000020d1: PUSH2 0x20e8
000020d4: SWAP1
000020d5: DUP5
000020d6: SWAP1
000020d7: ADDRESS
000020d8: SWAP1
000020d9: CALLER
000020da: SWAP1
000020db: PUSH1 0x01
000020dd: PUSH1 0x01
000020df: PUSH1 0xa0
000020e1: SHL
000020e2: SUB
000020e3: AND
000020e4: PUSH2 0x4a02
000020e7: JUMP
000020e8: JUMPDEST
000020e9: PUSH2 0x2112
000020ec: DUP4
000020ed: PUSH2 0x1596
000020f0: PUSH2 0x155a
000020f3: PUSH2 0x154e
000020f6: PUSH2 0x154e
000020f9: PUSH0
000020fa: MLOAD
000020fb: PUSH1 0x20
000020fd: PUSH2 0x4d82
00002100: PUSH0
00002101: CODECOPY
00002102: PUSH0
00002103: MLOAD
00002104: SWAP1
00002105: PUSH0
00002106: MSTORE
00002107: SLOAD
00002108: PUSH1 0x01
0000210a: DUP1
0000210b: PUSH1 0xa0
0000210d: SHL
0000210e: SUB
0000210f: AND
00002110: SWAP1
00002111: JUMP
00002112: JUMPDEST
00002113: POP
00002114: PUSH2 0x211d
00002117: DUP2
00002118: DUP4
00002119: PUSH2 0x4ade
0000211c: JUMP
0000211d: JUMPDEST
0000211e: PUSH1 0x40
00002120: DUP1
00002121: MLOAD
00002122: DUP5
00002123: DUP2
00002124: MSTORE
00002125: PUSH1 0x20
00002127: DUP2
00002128: ADD
00002129: SWAP3
0000212a: SWAP1
0000212b: SWAP3
0000212c: MSTORE
0000212d: PUSH1 0x01
0000212f: PUSH1 0x01
00002131: PUSH1 0xa0
00002133: SHL
00002134: SUB
00002135: SWAP1
00002136: SWAP3
00002137: AND
00002138: SWAP2
00002139: CALLER
0000213a: SWAP2
0000213b: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
0000215c: SWAP2
0000215d: DUP2
0000215e: SWAP1
0000215f: DUP2
00002160: ADD
00002161: PUSH2 0x15e9
00002164: JUMP
00002165: JUMPDEST
00002166: POP
00002167: PUSH0
00002168: MLOAD
00002169: PUSH1 0x20
0000216b: PUSH2 0x4d62
0000216e: PUSH0
0000216f: CODECOPY
00002170: PUSH0
00002171: MLOAD
00002172: SWAP1
00002173: PUSH0
00002174: MSTORE
00002175: DUP5
00002176: EQ
00002177: ISZERO
00002178: PUSH2 0x2093
0000217b: JUMP
0000217c: JUMPDEST
0000217d: SWAP2
0000217e: SWAP1
0000217f: PUSH4 0x284ff667
00002184: PUSH1 0xe0
00002186: SHL
00002187: PUSH0
00002188: MSTORE
00002189: PUSH1 0x01
0000218b: DUP1
0000218c: PUSH1 0xa0
0000218e: SHL
0000218f: SUB
00002190: AND
00002191: PUSH1 0x04
00002193: MSTORE
00002194: PUSH1 0x24
00002196: MSTORE
00002197: PUSH1 0x44
00002199: MSTORE
0000219a: PUSH1 0x64
0000219c: PUSH0
0000219d: REVERT
0000219e: JUMPDEST
0000219f: CALLVALUE
000021a0: PUSH2 0x05f1
000021a3: JUMPI
000021a4: PUSH0
000021a5: CALLDATASIZE
000021a6: PUSH1 0x03
000021a8: NOT
000021a9: ADD
000021aa: SLT
000021ab: PUSH2 0x05f1
000021ae: JUMPI
000021af: PUSH1 0x40
000021b1: MLOAD
000021b2: PUSH0
000021b3: PUSH0
000021b4: MLOAD
000021b5: PUSH1 0x20
000021b7: PUSH2 0x4ce2
000021ba: PUSH0
000021bb: CODECOPY
000021bc: PUSH0
000021bd: MLOAD
000021be: SWAP1
000021bf: PUSH0
000021c0: MSTORE
000021c1: SLOAD
000021c2: PUSH2 0x21ca
000021c5: DUP2
000021c6: PUSH2 0x32e7
000021c9: JUMP
000021ca: JUMPDEST
000021cb: DUP1
000021cc: DUP5
000021cd: MSTORE
000021ce: SWAP1
000021cf: PUSH1 0x01
000021d1: DUP2
000021d2: AND
000021d3: SWAP1
000021d4: DUP2
000021d5: ISZERO
000021d6: PUSH2 0x06ed
000021d9: JUMPI
000021da: POP
000021db: PUSH1 0x01
000021dd: EQ
000021de: PUSH2 0x21f1
000021e1: JUMPI
000021e2: PUSH2 0x067f
000021e5: DUP4
000021e6: PUSH2 0x0673
000021e9: DUP2
000021ea: DUP6
000021eb: SUB
000021ec: DUP3
000021ed: PUSH2 0x0ee8
000021f0: JUMP
000021f1: JUMPDEST
000021f2: PUSH0
000021f3: MLOAD
000021f4: PUSH1 0x20
000021f6: PUSH2 0x4ce2
000021f9: PUSH0
000021fa: CODECOPY
000021fb: PUSH0
000021fc: MLOAD
000021fd: SWAP1
000021fe: PUSH0
000021ff: MSTORE
00002200: PUSH0
00002201: SWAP1
00002202: DUP2
00002203: MSTORE
00002204: PUSH32 0x46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa
00002225: SWAP4
00002226: SWAP3
00002227: POP
00002228: SWAP1
00002229: JUMPDEST
0000222a: DUP1
0000222b: DUP3
0000222c: LT
0000222d: PUSH2 0x2241
00002230: JUMPI
00002231: POP
00002232: SWAP1
00002233: SWAP2
00002234: POP
00002235: DUP2
00002236: ADD
00002237: PUSH1 0x20
00002239: ADD
0000223a: PUSH2 0x0673
0000223d: PUSH2 0x0663
00002240: JUMP
00002241: JUMPDEST
00002242: SWAP2
00002243: SWAP3
00002244: PUSH1 0x01
00002246: DUP2
00002247: PUSH1 0x20
00002249: SWAP3
0000224a: SLOAD
0000224b: DUP4
0000224c: DUP6
0000224d: DUP9
0000224e: ADD
0000224f: ADD
00002250: MSTORE
00002251: ADD
00002252: SWAP2
00002253: ADD
00002254: SWAP1
00002255: SWAP3
00002256: SWAP2
00002257: PUSH2 0x2229
0000225a: JUMP
0000225b: JUMPDEST
0000225c: CALLVALUE
0000225d: PUSH2 0x05f1
00002260: JUMPI
00002261: PUSH1 0x20
00002263: CALLDATASIZE
00002264: PUSH1 0x03
00002266: NOT
00002267: ADD
00002268: SLT
00002269: PUSH2 0x05f1
0000226c: JUMPI
0000226d: PUSH2 0x0987
00002270: PUSH1 0x04
00002272: CALLDATALOAD
00002273: PUSH2 0x227b
00002276: DUP2
00002277: PUSH2 0x0737
0000227a: JUMP
0000227b: JUMPDEST
0000227c: PUSH1 0x40
0000227e: MLOAD
0000227f: PUSH4 0x26229931
00002284: PUSH1 0xe2
00002286: SHL
00002287: PUSH1 0x20
00002289: DUP3
0000228a: ADD
0000228b: MSTORE
0000228c: PUSH1 0x01
0000228e: PUSH1 0x01
00002290: PUSH1 0xa0
00002292: SHL
00002293: SUB
00002294: SWAP1
00002295: SWAP2
00002296: AND
00002297: PUSH1 0x24
00002299: DUP1
0000229a: DUP4
0000229b: ADD
0000229c: SWAP2
0000229d: SWAP1
0000229e: SWAP2
0000229f: MSTORE
000022a0: DUP2
000022a1: MSTORE
000022a2: PUSH2 0x1596
000022a5: PUSH1 0x44
000022a7: DUP3
000022a8: PUSH2 0x0ee8
000022ab: JUMP
000022ac: JUMPDEST
000022ad: CALLVALUE
000022ae: PUSH2 0x05f1
000022b1: JUMPI
000022b2: PUSH1 0x20
000022b4: CALLDATASIZE
000022b5: PUSH1 0x03
000022b7: NOT
000022b8: ADD
000022b9: SLT
000022ba: PUSH2 0x05f1
000022bd: JUMPI
000022be: PUSH1 0x04
000022c0: CALLDATALOAD
000022c1: PUSH2 0x22c9
000022c4: DUP2
000022c5: PUSH2 0x0737
000022c8: JUMP
000022c9: JUMPDEST
000022ca: PUSH2 0x22d1
000022cd: PUSH2 0x4162
000022d0: JUMP
000022d1: JUMPDEST
000022d2: PUSH0
000022d3: SLOAD
000022d4: PUSH1 0x01
000022d6: PUSH1 0x01
000022d8: PUSH1 0xa0
000022da: SHL
000022db: SUB
000022dc: AND
000022dd: PUSH1 0x01
000022df: PUSH1 0x01
000022e1: PUSH1 0xa0
000022e3: SHL
000022e4: SUB
000022e5: DUP2
000022e6: AND
000022e7: PUSH1 0x01
000022e9: PUSH1 0x01
000022eb: PUSH1 0xa0
000022ed: SHL
000022ee: SUB
000022ef: DUP4
000022f0: AND
000022f1: EQ
000022f2: PUSH2 0x0a28
000022f5: JUMPI
000022f6: PUSH1 0x07
000022f8: SLOAD
000022f9: PUSH1 0xa0
000022fb: SHR
000022fc: PUSH1 0x01
000022fe: PUSH1 0x01
00002300: PUSH1 0x40
00002302: SHL
00002303: SUB
00002304: AND
00002305: PUSH2 0x0a19
00002308: JUMPI
00002309: PUSH1 0x01
0000230b: PUSH1 0x01
0000230d: PUSH1 0xa0
0000230f: SHL
00002310: SUB
00002311: AND
00002312: PUSH2 0x231e
00002315: JUMPI
00002316: PUSH2 0x0987
00002319: SWAP1
0000231a: PUSH2 0x444a
0000231d: JUMP
0000231e: JUMPDEST
0000231f: PUSH32 0x14279aa98f18dee77127cf315bcced708f417d07da24929c2f6460b481d0c13e
00002340: SWAP1
00002341: PUSH2 0x234c
00002344: PUSH1 0x08
00002346: SLOAD
00002347: DUP3
00002348: PUSH2 0x43f4
0000234b: JUMP
0000234c: JUMPDEST
0000234d: PUSH1 0x07
0000234f: SLOAD
00002350: PUSH1 0xa0
00002352: SHR
00002353: PUSH1 0x01
00002355: PUSH1 0x01
00002357: PUSH1 0x40
00002359: SHL
0000235a: SUB
0000235b: AND
0000235c: PUSH1 0x40
0000235e: DUP1
0000235f: MLOAD
00002360: PUSH1 0x01
00002362: PUSH1 0x01
00002364: PUSH1 0xa0
00002366: SHL
00002367: SUB
00002368: SWAP1
00002369: SWAP4
0000236a: AND
0000236b: DUP4
0000236c: MSTORE
0000236d: PUSH1 0x01
0000236f: PUSH1 0x01
00002371: PUSH1 0x40
00002373: SHL
00002374: SUB
00002375: SWAP1
00002376: SWAP2
00002377: AND
00002378: PUSH1 0x20
0000237a: DUP4
0000237b: ADD
0000237c: MSTORE
0000237d: DUP2
0000237e: SWAP1
0000237f: DUP2
00002380: ADD
00002381: PUSH2 0x1972
00002384: JUMP
00002385: JUMPDEST
00002386: CALLVALUE
00002387: PUSH2 0x05f1
0000238a: JUMPI
0000238b: PUSH1 0x20
0000238d: CALLDATASIZE
0000238e: PUSH1 0x03
00002390: NOT
00002391: ADD
00002392: SLT
00002393: PUSH2 0x05f1
00002396: JUMPI
00002397: PUSH1 0x04
00002399: CALLDATALOAD
0000239a: PUSH1 0x01
0000239c: PUSH1 0x01
0000239e: PUSH1 0x40
000023a0: SHL
000023a1: SUB
000023a2: DUP2
000023a3: GT
000023a4: PUSH2 0x05f1
000023a7: JUMPI
000023a8: PUSH2 0x0160
000023ab: PUSH1 0x03
000023ad: NOT
000023ae: DUP3
000023af: CALLDATASIZE
000023b0: SUB
000023b1: ADD
000023b2: SLT
000023b3: PUSH2 0x05f1
000023b6: JUMPI
000023b7: PUSH2 0x23be
000023ba: PUSH2 0x0f19
000023bd: JUMP
000023be: JUMPDEST
000023bf: PUSH2 0x23ca
000023c2: DUP3
000023c3: PUSH1 0x04
000023c5: ADD
000023c6: PUSH2 0x0748
000023c9: JUMP
000023ca: JUMPDEST
000023cb: DUP2
000023cc: MSTORE
000023cd: PUSH2 0x23d8
000023d0: PUSH1 0x24
000023d2: DUP4
000023d3: ADD
000023d4: PUSH2 0x0748
000023d7: JUMP
000023d8: JUMPDEST
000023d9: PUSH1 0x20
000023db: DUP3
000023dc: ADD
000023dd: MSTORE
000023de: PUSH2 0x23e9
000023e1: PUSH1 0x44
000023e3: DUP4
000023e4: ADD
000023e5: PUSH2 0x0748
000023e8: JUMP
000023e9: JUMPDEST
000023ea: PUSH1 0x40
000023ec: DUP3
000023ed: ADD
000023ee: MSTORE
000023ef: PUSH1 0x64
000023f1: DUP3
000023f2: ADD
000023f3: CALLDATALOAD
000023f4: PUSH1 0x60
000023f6: DUP3
000023f7: ADD
000023f8: MSTORE
000023f9: PUSH2 0x2404
000023fc: PUSH1 0x84
000023fe: DUP4
000023ff: ADD
00002400: PUSH2 0x0748
00002403: JUMP
00002404: JUMPDEST
00002405: PUSH1 0x80
00002407: DUP3
00002408: ADD
00002409: MSTORE
0000240a: PUSH1 0xa4
0000240c: DUP3
0000240d: ADD
0000240e: CALLDATALOAD
0000240f: PUSH1 0xa0
00002411: DUP3
00002412: ADD
00002413: MSTORE
00002414: PUSH1 0xc4
00002416: DUP3
00002417: ADD
00002418: CALLDATALOAD
00002419: PUSH1 0x01
0000241b: PUSH1 0x01
0000241d: PUSH1 0x40
0000241f: SHL
00002420: SUB
00002421: DUP2
00002422: GT
00002423: PUSH2 0x05f1
00002426: JUMPI
00002427: PUSH2 0x2436
0000242a: SWAP1
0000242b: PUSH1 0x04
0000242d: CALLDATASIZE
0000242e: SWAP2
0000242f: DUP6
00002430: ADD
00002431: ADD
00002432: PUSH2 0x1a0a
00002435: JUMP
00002436: JUMPDEST
00002437: PUSH1 0xc0
00002439: DUP3
0000243a: ADD
0000243b: MSTORE
0000243c: PUSH1 0xe4
0000243e: DUP3
0000243f: ADD
00002440: CALLDATALOAD
00002441: SWAP2
00002442: PUSH1 0x01
00002444: PUSH1 0x01
00002446: PUSH1 0x40
00002448: SHL
00002449: SUB
0000244a: DUP4
0000244b: GT
0000244c: PUSH2 0x05f1
0000244f: JUMPI
00002450: PUSH2 0x0144
00002453: PUSH2 0x249a
00002456: SWAP2
00002457: PUSH2 0x2469
0000245a: PUSH2 0x0987
0000245d: SWAP6
0000245e: PUSH1 0x04
00002460: CALLDATASIZE
00002461: SWAP2
00002462: DUP5
00002463: ADD
00002464: ADD
00002465: PUSH2 0x1a0a
00002468: JUMP
00002469: JUMPDEST
0000246a: PUSH1 0xe0
0000246c: DUP6
0000246d: ADD
0000246e: MSTORE
0000246f: PUSH2 0x247b
00002472: PUSH2 0x0104
00002475: DUP3
00002476: ADD
00002477: PUSH2 0x1a66
0000247a: JUMP
0000247b: JUMPDEST
0000247c: PUSH2 0x0100
0000247f: DUP6
00002480: ADD
00002481: MSTORE
00002482: PUSH2 0x248e
00002485: PUSH2 0x0124
00002488: DUP3
00002489: ADD
0000248a: PUSH2 0x1a66
0000248d: JUMP
0000248e: JUMPDEST
0000248f: PUSH2 0x0120
00002492: DUP6
00002493: ADD
00002494: MSTORE
00002495: ADD
00002496: PUSH2 0x1a66
00002499: JUMP
0000249a: JUMPDEST
0000249b: PUSH2 0x0140
0000249e: DUP3
0000249f: ADD
000024a0: MSTORE
000024a1: PUSH2 0x37a7
000024a4: JUMP
000024a5: JUMPDEST
000024a6: CALLVALUE
000024a7: PUSH2 0x05f1
000024aa: JUMPI
000024ab: PUSH0
000024ac: CALLDATASIZE
000024ad: PUSH1 0x03
000024af: NOT
000024b0: ADD
000024b1: SLT
000024b2: PUSH2 0x05f1
000024b5: JUMPI
000024b6: PUSH4 0x580b4feb
000024bb: PUSH1 0xe1
000024bd: SHL
000024be: PUSH0
000024bf: MSTORE
000024c0: PUSH1 0x04
000024c2: PUSH0
000024c3: REVERT
000024c4: JUMPDEST
000024c5: CALLVALUE
000024c6: PUSH2 0x05f1
000024c9: JUMPI
000024ca: PUSH0
000024cb: CALLDATASIZE
000024cc: PUSH1 0x03
000024ce: NOT
000024cf: ADD
000024d0: SLT
000024d1: PUSH2 0x05f1
000024d4: JUMPI
000024d5: PUSH1 0x07
000024d7: SLOAD
000024d8: PUSH1 0x01
000024da: PUSH1 0x01
000024dc: PUSH1 0x40
000024de: SHL
000024df: SUB
000024e0: DUP2
000024e1: PUSH1 0xa0
000024e3: SHR
000024e4: AND
000024e5: DUP1
000024e6: ISZERO
000024e7: PUSH2 0x0ab8
000024ea: JUMPI
000024eb: TIMESTAMP
000024ec: LT
000024ed: PUSH2 0x0aa9
000024f0: JUMPI
000024f1: PUSH2 0x0987
000024f4: SWAP1
000024f5: PUSH1 0x01
000024f7: PUSH1 0x01
000024f9: PUSH1 0xa0
000024fb: SHL
000024fc: SUB
000024fd: AND
000024fe: PUSH2 0x444a
00002501: JUMP
00002502: JUMPDEST
00002503: CALLVALUE
00002504: PUSH2 0x05f1
00002507: JUMPI
00002508: PUSH1 0x40
0000250a: CALLDATASIZE
0000250b: PUSH1 0x03
0000250d: NOT
0000250e: ADD
0000250f: SLT
00002510: PUSH2 0x05f1
00002513: JUMPI
00002514: PUSH2 0x0bf3
00002517: PUSH1 0x04
00002519: CALLDATALOAD
0000251a: PUSH2 0x2522
0000251d: DUP2
0000251e: PUSH2 0x0737
00002521: JUMP
00002522: JUMPDEST
00002523: PUSH1 0x24
00002525: CALLDATALOAD
00002526: SWAP1
00002527: CALLER
00002528: PUSH2 0x403e
0000252b: JUMP
0000252c: JUMPDEST
0000252d: CALLVALUE
0000252e: PUSH2 0x05f1
00002531: JUMPI
00002532: PUSH1 0x20
00002534: CALLDATASIZE
00002535: PUSH1 0x03
00002537: NOT
00002538: ADD
00002539: SLT
0000253a: PUSH2 0x05f1
0000253d: JUMPI
0000253e: PUSH1 0x04
00002540: CALLDATALOAD
00002541: PUSH1 0x01
00002543: PUSH1 0x01
00002545: PUSH1 0xb8
00002547: SHL
00002548: SUB
00002549: DUP2
0000254a: AND
0000254b: DUP2
0000254c: SUB
0000254d: PUSH2 0x05f1
00002550: JUMPI
00002551: PUSH1 0x01
00002553: SLOAD
00002554: PUSH1 0x01
00002556: PUSH1 0x01
00002558: PUSH1 0xa0
0000255a: SHL
0000255b: SUB
0000255c: AND
0000255d: CALLER
0000255e: EQ
0000255f: ISZERO
00002560: DUP1
00002561: PUSH2 0x2572
00002564: JUMPI
00002565: JUMPDEST
00002566: PUSH2 0x0a3e
00002569: JUMPI
0000256a: PUSH2 0x0987
0000256d: SWAP1
0000256e: PUSH2 0x39bd
00002571: JUMP
00002572: JUMPDEST
00002573: POP
00002574: PUSH0
00002575: MLOAD
00002576: PUSH1 0x20
00002578: PUSH2 0x4d02
0000257b: PUSH0
0000257c: CODECOPY
0000257d: PUSH0
0000257e: MLOAD
0000257f: SWAP1
00002580: PUSH0
00002581: MSTORE
00002582: SLOAD
00002583: PUSH1 0x01
00002585: PUSH1 0x01
00002587: PUSH1 0xa0
00002589: SHL
0000258a: SUB
0000258b: AND
0000258c: CALLER
0000258d: EQ
0000258e: ISZERO
0000258f: PUSH2 0x2565
00002592: JUMP
00002593: JUMPDEST
00002594: CALLVALUE
00002595: PUSH2 0x05f1
00002598: JUMPI
00002599: PUSH0
0000259a: CALLDATASIZE
0000259b: PUSH1 0x03
0000259d: NOT
0000259e: ADD
0000259f: SLT
000025a0: PUSH2 0x05f1
000025a3: JUMPI
000025a4: PUSH0
000025a5: SLOAD
000025a6: PUSH1 0x01
000025a8: PUSH1 0x01
000025aa: PUSH1 0xa0
000025ac: SHL
000025ad: SUB
000025ae: AND
000025af: CALLER
000025b0: EQ
000025b1: ISZERO
000025b2: DUP1
000025b3: PUSH2 0x25e6
000025b6: JUMPI
000025b7: JUMPDEST
000025b8: PUSH2 0x0b83
000025bb: JUMPI
000025bc: PUSH0
000025bd: PUSH1 0x13
000025bf: SSTORE
000025c0: CALLER
000025c1: PUSH32 0x9a72a70252c2d4b0a5c28053ff51d9e11d2574f655c4149384fb9e7679447af9
000025e2: PUSH0
000025e3: DUP1
000025e4: LOG2
000025e5: STOP
000025e6: JUMPDEST
000025e7: POP
000025e8: PUSH0
000025e9: MLOAD
000025ea: PUSH1 0x20
000025ec: PUSH2 0x4d02
000025ef: PUSH0
000025f0: CODECOPY
000025f1: PUSH0
000025f2: MLOAD
000025f3: SWAP1
000025f4: PUSH0
000025f5: MSTORE
000025f6: SLOAD
000025f7: PUSH1 0x01
000025f9: PUSH1 0x01
000025fb: PUSH1 0xa0
000025fd: SHL
000025fe: SUB
000025ff: AND
00002600: CALLER
00002601: EQ
00002602: ISZERO
00002603: PUSH2 0x25b7
00002606: JUMP
00002607: JUMPDEST
00002608: CALLVALUE
00002609: PUSH2 0x05f1
0000260c: JUMPI
0000260d: PUSH1 0x80
0000260f: CALLDATASIZE
00002610: PUSH1 0x03
00002612: NOT
00002613: ADD
00002614: SLT
00002615: PUSH2 0x05f1
00002618: JUMPI
00002619: PUSH1 0x04
0000261b: CALLDATALOAD
0000261c: PUSH2 0x2624
0000261f: DUP2
00002620: PUSH2 0x0737
00002623: JUMP
00002624: JUMPDEST
00002625: PUSH1 0x24
00002627: CALLDATALOAD
00002628: PUSH1 0x44
0000262a: CALLDATALOAD
0000262b: PUSH1 0x64
0000262d: CALLDATALOAD
0000262e: PUSH1 0x01
00002630: PUSH1 0x01
00002632: PUSH1 0x40
00002634: SHL
00002635: SUB
00002636: DUP2
00002637: GT
00002638: PUSH2 0x05f1
0000263b: JUMPI
0000263c: PUSH2 0x2649
0000263f: SWAP1
00002640: CALLDATASIZE
00002641: SWAP1
00002642: PUSH1 0x04
00002644: ADD
00002645: PUSH2 0x1225
00002648: JUMP
00002649: JUMPDEST
0000264a: SWAP3
0000264b: PUSH1 0x01
0000264d: DUP1
0000264e: PUSH1 0xa0
00002650: SHL
00002651: SUB
00002652: PUSH1 0x01
00002654: SLOAD
00002655: AND
00002656: CALLER
00002657: EQ
00002658: ISZERO
00002659: DUP1
0000265a: PUSH2 0x2722
0000265d: JUMPI
0000265e: JUMPDEST
0000265f: PUSH2 0x0a3e
00002662: JUMPI
00002663: PUSH1 0x01
00002665: PUSH1 0x01
00002667: PUSH1 0xa0
00002669: SHL
0000266a: SUB
0000266b: AND
0000266c: PUSH0
0000266d: DUP2
0000266e: DUP2
0000266f: MSTORE
00002670: PUSH1 0x03
00002672: PUSH1 0x20
00002674: MSTORE
00002675: PUSH1 0x40
00002677: SWAP1
00002678: KECCAK256
00002679: SLOAD
0000267a: PUSH1 0xff
0000267c: AND
0000267d: ISZERO
0000267e: PUSH2 0x2714
00002681: JUMPI
00002682: PUSH2 0x1596
00002685: PUSH2 0x26fa
00002688: SWAP4
00002689: PUSH2 0x1588
0000268c: PUSH2 0x067f
0000268f: SWAP7
00002690: PUSH2 0x26eb
00002693: SWAP6
00002694: PUSH2 0x269b
00002697: PUSH2 0x4182
0000269a: JUMP
0000269b: JUMPDEST
0000269c: PUSH1 0x01
0000269e: DUP1
0000269f: PUSH1 0xa0
000026a1: SHL
000026a2: SUB
000026a3: PUSH0
000026a4: MLOAD
000026a5: PUSH1 0x20
000026a7: PUSH2 0x4d82
000026aa: PUSH0
000026ab: CODECOPY
000026ac: PUSH0
000026ad: MLOAD
000026ae: SWAP1
000026af: PUSH0
000026b0: MSTORE
000026b1: SLOAD
000026b2: AND
000026b3: SWAP4
000026b4: PUSH1 0x40
000026b6: MLOAD
000026b7: SWAP7
000026b8: DUP8
000026b9: SWAP6
000026ba: PUSH4 0xdb449c91
000026bf: PUSH1 0xe0
000026c1: SHL
000026c2: PUSH1 0x20
000026c4: DUP9
000026c5: ADD
000026c6: MSTORE
000026c7: PUSH1 0x24
000026c9: DUP8
000026ca: ADD
000026cb: MSTORE
000026cc: PUSH1 0x44
000026ce: DUP7
000026cf: ADD
000026d0: MSTORE
000026d1: PUSH1 0x64
000026d3: DUP6
000026d4: ADD
000026d5: MSTORE
000026d6: PUSH1 0x84
000026d8: DUP5
000026d9: ADD
000026da: MSTORE
000026db: PUSH1 0xa0
000026dd: PUSH1 0xa4
000026df: DUP5
000026e0: ADD
000026e1: MSTORE
000026e2: PUSH1 0xc4
000026e4: DUP4
000026e5: ADD
000026e6: SWAP1
000026e7: PUSH2 0x35e9
000026ea: JUMP
000026eb: JUMPDEST
000026ec: PUSH1 0x20
000026ee: DUP1
000026ef: DUP3
000026f0: MLOAD
000026f1: DUP4
000026f2: ADD
000026f3: ADD
000026f4: SWAP2
000026f5: ADD
000026f6: PUSH2 0x3ab3
000026f9: JUMP
000026fa: JUMPDEST
000026fb: PUSH1 0x40
000026fd: MLOAD
000026fe: PUSH1 0x01
00002700: PUSH1 0x01
00002702: PUSH1 0xa0
00002704: SHL
00002705: SUB
00002706: SWAP1
00002707: SWAP2
00002708: AND
00002709: DUP2
0000270a: MSTORE
0000270b: SWAP1
0000270c: DUP2
0000270d: SWAP1
0000270e: PUSH1 0x20
00002710: DUP3
00002711: ADD
00002712: SWAP1
00002713: JUMP
00002714: JUMPDEST
00002715: PUSH3 0x809237
00002719: PUSH1 0xe3
0000271b: SHL
0000271c: PUSH0
0000271d: MSTORE
0000271e: PUSH1 0x04
00002720: PUSH0
00002721: REVERT
00002722: JUMPDEST
00002723: POP
00002724: PUSH0
00002725: MLOAD
00002726: PUSH1 0x20
00002728: PUSH2 0x4d02
0000272b: PUSH0
0000272c: CODECOPY
0000272d: PUSH0
0000272e: MLOAD
0000272f: SWAP1
00002730: PUSH0
00002731: MSTORE
00002732: SLOAD
00002733: PUSH1 0x01
00002735: PUSH1 0x01
00002737: PUSH1 0xa0
00002739: SHL
0000273a: SUB
0000273b: AND
0000273c: CALLER
0000273d: EQ
0000273e: ISZERO
0000273f: PUSH2 0x265e
00002742: JUMP
00002743: JUMPDEST
00002744: CALLVALUE
00002745: PUSH2 0x05f1
00002748: JUMPI
00002749: PUSH2 0x2751
0000274c: CALLDATASIZE
0000274d: PUSH2 0x08d4
00002750: JUMP
00002751: JUMPDEST
00002752: SWAP1
00002753: PUSH2 0x275a
00002756: PUSH2 0x4162
00002759: JUMP
0000275a: JUMPDEST
0000275b: PUSH1 0x01
0000275d: PUSH1 0x01
0000275f: PUSH1 0xa0
00002761: SHL
00002762: SUB
00002763: AND
00002764: PUSH0
00002765: DUP2
00002766: DUP2
00002767: MSTORE
00002768: PUSH1 0x02
0000276a: PUSH1 0x20
0000276c: MSTORE
0000276d: PUSH1 0x40
0000276f: SWAP1
00002770: KECCAK256
00002771: SLOAD
00002772: SWAP1
00002773: SWAP2
00002774: DUP1
00002775: ISZERO
00002776: ISZERO
00002777: SWAP2
00002778: PUSH1 0xff
0000277a: AND
0000277b: ISZERO
0000277c: ISZERO
0000277d: DUP3
0000277e: EQ
0000277f: PUSH2 0x0a28
00002782: JUMPI
00002783: PUSH32 0x74dc60cbc81a9472d04ad1d20e151d369c41104d655ed3f2f3091166a502cd8d
000027a4: SWAP2
000027a5: PUSH2 0x27c6
000027a8: PUSH1 0x20
000027aa: SWAP3
000027ab: DUP6
000027ac: PUSH0
000027ad: MSTORE
000027ae: PUSH1 0x02
000027b0: DUP5
000027b1: MSTORE
000027b2: PUSH1 0x40
000027b4: PUSH0
000027b5: KECCAK256
000027b6: SWAP1
000027b7: PUSH1 0xff
000027b9: DUP1
000027ba: NOT
000027bb: DUP4
000027bc: SLOAD
000027bd: AND
000027be: SWAP2
000027bf: ISZERO
000027c0: ISZERO
000027c1: AND
000027c2: OR
000027c3: SWAP1
000027c4: SSTORE
000027c5: JUMP
000027c6: JUMPDEST
000027c7: PUSH1 0x40
000027c9: MLOAD
000027ca: SWAP1
000027cb: DUP2
000027cc: MSTORE
000027cd: LOG2
000027ce: STOP
000027cf: JUMPDEST
000027d0: CALLVALUE
000027d1: PUSH2 0x05f1
000027d4: JUMPI
000027d5: PUSH1 0x20
000027d7: CALLDATASIZE
000027d8: PUSH1 0x03
000027da: NOT
000027db: ADD
000027dc: SLT
000027dd: PUSH2 0x05f1
000027e0: JUMPI
000027e1: PUSH1 0x20
000027e3: PUSH2 0x072f
000027e6: PUSH1 0x04
000027e8: CALLDATALOAD
000027e9: PUSH2 0x3cd4
000027ec: JUMP
000027ed: JUMPDEST
000027ee: PUSH1 0x60
000027f0: SWAP1
000027f1: PUSH1 0x03
000027f3: NOT
000027f4: ADD
000027f5: SLT
000027f6: PUSH2 0x05f1
000027f9: JUMPI
000027fa: PUSH1 0x04
000027fc: CALLDATALOAD
000027fd: SWAP1
000027fe: PUSH1 0x24
00002800: CALLDATALOAD
00002801: PUSH2 0x2809
00002804: DUP2
00002805: PUSH2 0x0737
00002808: JUMP
00002809: JUMPDEST
0000280a: SWAP1
0000280b: PUSH1 0x44
0000280d: CALLDATALOAD
0000280e: PUSH2 0x0fc7
00002811: DUP2
00002812: PUSH2 0x0737
00002815: JUMP
00002816: JUMPDEST
00002817: CALLVALUE
00002818: PUSH2 0x05f1
0000281b: JUMPI
0000281c: PUSH2 0x2824
0000281f: CALLDATASIZE
00002820: PUSH2 0x27ed
00002823: JUMP
00002824: JUMPDEST
00002825: PUSH2 0x282d
00002828: DUP2
00002829: PUSH2 0x3aee
0000282c: JUMP
0000282d: JUMPDEST
0000282e: DUP1
0000282f: DUP5
00002830: GT
00002831: PUSH2 0x299c
00002834: JUMPI
00002835: POP
00002836: PUSH2 0x283e
00002839: DUP4
0000283a: PUSH2 0x3d18
0000283d: JUMP
0000283e: JUMPDEST
0000283f: SWAP2
00002840: PUSH2 0x2847
00002843: PUSH2 0x4288
00002846: JUMP
00002847: JUMPDEST
00002848: PUSH0
00002849: MLOAD
0000284a: PUSH1 0x20
0000284c: PUSH2 0x4d42
0000284f: PUSH0
00002850: CODECOPY
00002851: PUSH0
00002852: MLOAD
00002853: SWAP1
00002854: PUSH0
00002855: MSTORE
00002856: TLOAD
00002857: SWAP4
00002858: DUP5
00002859: ISZERO
0000285a: ISZERO
0000285b: DUP1
0000285c: PUSH2 0x2985
0000285f: JUMPI
00002860: JUMPDEST
00002861: PUSH2 0x2961
00002864: JUMPI
00002865: PUSH2 0x067f
00002868: SWAP5
00002869: POP
0000286a: PUSH0
0000286b: MLOAD
0000286c: PUSH1 0x20
0000286e: PUSH2 0x4ca2
00002871: PUSH0
00002872: CODECOPY
00002873: PUSH0
00002874: MLOAD
00002875: SWAP1
00002876: PUSH0
00002877: MSTORE
00002878: PUSH0
00002879: MLOAD
0000287a: PUSH1 0x20
0000287c: PUSH2 0x4d42
0000287f: PUSH0
00002880: CODECOPY
00002881: PUSH0
00002882: MLOAD
00002883: SWAP1
00002884: PUSH0
00002885: MSTORE
00002886: TSTORE
00002887: PUSH1 0x01
00002889: PUSH1 0x01
0000288b: PUSH1 0xa0
0000288d: SHL
0000288e: SUB
0000288f: DUP4
00002890: AND
00002891: SWAP3
00002892: PUSH2 0x28f5
00002895: SWAP1
00002896: DUP6
00002897: SWAP1
00002898: CALLER
00002899: DUP7
0000289a: SWAP1
0000289b: SUB
0000289c: PUSH2 0x2951
0000289f: JUMPI
000028a0: JUMPDEST
000028a1: PUSH0
000028a2: MLOAD
000028a3: PUSH1 0x20
000028a5: PUSH2 0x4d82
000028a8: PUSH0
000028a9: CODECOPY
000028aa: PUSH0
000028ab: MLOAD
000028ac: SWAP1
000028ad: PUSH0
000028ae: MSTORE
000028af: SLOAD
000028b0: PUSH1 0x40
000028b2: MLOAD
000028b3: PUSH4 0x7bd58ea9
000028b8: PUSH1 0xe0
000028ba: SHL
000028bb: PUSH1 0x20
000028bd: DUP3
000028be: ADD
000028bf: MSTORE
000028c0: PUSH1 0x01
000028c2: PUSH1 0x01
000028c4: PUSH1 0xa0
000028c6: SHL
000028c7: SUB
000028c8: SWAP2
000028c9: DUP3
000028ca: AND
000028cb: PUSH1 0x24
000028cd: DUP3
000028ce: ADD
000028cf: MSTORE
000028d0: SWAP1
000028d1: DUP7
000028d2: AND
000028d3: PUSH1 0x44
000028d5: DUP3
000028d6: ADD
000028d7: MSTORE
000028d8: PUSH1 0x64
000028da: DUP2
000028db: ADD
000028dc: DUP6
000028dd: SWAP1
000028de: MSTORE
000028df: PUSH2 0x28ef
000028e2: SWAP1
000028e3: PUSH2 0x1596
000028e6: DUP2
000028e7: PUSH1 0x84
000028e9: DUP2
000028ea: ADD
000028eb: PUSH2 0x1588
000028ee: JUMP
000028ef: JUMPDEST
000028f0: POP
000028f1: PUSH2 0x42c0
000028f4: JUMP
000028f5: JUMPDEST
000028f6: PUSH1 0x40
000028f8: DUP1
000028f9: MLOAD
000028fa: SWAP2
000028fb: DUP3
000028fc: MSTORE
000028fd: PUSH1 0x20
000028ff: DUP3
00002900: ADD
00002901: DUP6
00002902: SWAP1
00002903: MSTORE
00002904: PUSH1 0x01
00002906: PUSH1 0x01
00002908: PUSH1 0xa0
0000290a: SHL
0000290b: SUB
0000290c: SWAP1
0000290d: SWAP3
0000290e: AND
0000290f: SWAP2
00002910: CALLER
00002911: SWAP2
00002912: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db
00002933: SWAP2
00002934: DUP2
00002935: SWAP1
00002936: DUP2
00002937: ADD
00002938: JUMPDEST
00002939: SUB
0000293a: SWAP1
0000293b: LOG4
0000293c: PUSH2 0x1602
0000293f: PUSH1 0x01
00002941: PUSH0
00002942: MLOAD
00002943: PUSH1 0x20
00002945: PUSH2 0x4dc2
00002948: PUSH0
00002949: CODECOPY
0000294a: PUSH0
0000294b: MLOAD
0000294c: SWAP1
0000294d: PUSH0
0000294e: MSTORE
0000294f: SSTORE
00002950: JUMP
00002951: JUMPDEST
00002952: PUSH2 0x295c
00002955: DUP3
00002956: CALLER
00002957: DUP4
00002958: PUSH2 0x3fc0
0000295b: JUMP
0000295c: JUMPDEST
0000295d: PUSH2 0x28a0
00002960: JUMP
00002961: JUMPDEST
00002962: DUP5
00002963: PUSH4 0xbeb4ce07
00002968: PUSH1 0xe0
0000296a: SHL
0000296b: PUSH0
0000296c: MSTORE
0000296d: PUSH0
0000296e: MLOAD
0000296f: PUSH1 0x20
00002971: PUSH2 0x4ca2
00002974: PUSH0
00002975: CODECOPY
00002976: PUSH0
00002977: MLOAD
00002978: SWAP1
00002979: PUSH0
0000297a: MSTORE
0000297b: PUSH1 0x04
0000297d: MSTORE
0000297e: PUSH1 0x24
00002980: MSTORE
00002981: PUSH1 0x44
00002983: PUSH0
00002984: REVERT
00002985: JUMPDEST
00002986: POP
00002987: PUSH0
00002988: MLOAD
00002989: PUSH1 0x20
0000298b: PUSH2 0x4ca2
0000298e: PUSH0
0000298f: CODECOPY
00002990: PUSH0
00002991: MLOAD
00002992: SWAP1
00002993: PUSH0
00002994: MSTORE
00002995: DUP6
00002996: EQ
00002997: ISZERO
00002998: PUSH2 0x2860
0000299b: JUMP
0000299c: JUMPDEST
0000299d: DUP4
0000299e: DUP3
0000299f: PUSH4 0x3fa733bb
000029a4: PUSH1 0xe2
000029a6: SHL
000029a7: PUSH0
000029a8: MSTORE
000029a9: PUSH1 0x01
000029ab: DUP1
000029ac: PUSH1 0xa0
000029ae: SHL
000029af: SUB
000029b0: AND
000029b1: PUSH1 0x04
000029b3: MSTORE
000029b4: PUSH1 0x24
000029b6: MSTORE
000029b7: PUSH1 0x44
000029b9: MSTORE
000029ba: PUSH1 0x64
000029bc: PUSH0
000029bd: REVERT
000029be: JUMPDEST
000029bf: CALLVALUE
000029c0: PUSH2 0x05f1
000029c3: JUMPI
000029c4: PUSH2 0x29cc
000029c7: CALLDATASIZE
000029c8: PUSH2 0x27ed
000029cb: JUMP
000029cc: JUMPDEST
000029cd: PUSH2 0x29d5
000029d0: DUP2
000029d1: PUSH2 0x366b
000029d4: JUMP
000029d5: JUMPDEST
000029d6: DUP1
000029d7: DUP5
000029d8: GT
000029d9: PUSH2 0x2b06
000029dc: JUMPI
000029dd: POP
000029de: PUSH2 0x29e6
000029e1: DUP4
000029e2: PUSH2 0x3c91
000029e5: JUMP
000029e6: JUMPDEST
000029e7: SWAP2
000029e8: PUSH2 0x29ef
000029eb: PUSH2 0x4288
000029ee: JUMP
000029ef: JUMPDEST
000029f0: PUSH0
000029f1: MLOAD
000029f2: PUSH1 0x20
000029f4: PUSH2 0x4d42
000029f7: PUSH0
000029f8: CODECOPY
000029f9: PUSH0
000029fa: MLOAD
000029fb: SWAP1
000029fc: PUSH0
000029fd: MSTORE
000029fe: TLOAD
000029ff: SWAP4
00002a00: DUP5
00002a01: ISZERO
00002a02: ISZERO
00002a03: DUP1
00002a04: PUSH2 0x2aef
00002a07: JUMPI
00002a08: JUMPDEST
00002a09: PUSH2 0x2961
00002a0c: JUMPI
00002a0d: PUSH2 0x067f
00002a10: SWAP5
00002a11: POP
00002a12: PUSH0
00002a13: MLOAD
00002a14: PUSH1 0x20
00002a16: PUSH2 0x4ca2
00002a19: PUSH0
00002a1a: CODECOPY
00002a1b: PUSH0
00002a1c: MLOAD
00002a1d: SWAP1
00002a1e: PUSH0
00002a1f: MSTORE
00002a20: PUSH0
00002a21: MLOAD
00002a22: PUSH1 0x20
00002a24: PUSH2 0x4d42
00002a27: PUSH0
00002a28: CODECOPY
00002a29: PUSH0
00002a2a: MLOAD
00002a2b: SWAP1
00002a2c: PUSH0
00002a2d: MSTORE
00002a2e: TSTORE
00002a2f: PUSH1 0x01
00002a31: PUSH1 0x01
00002a33: PUSH1 0xa0
00002a35: SHL
00002a36: SUB
00002a37: DUP4
00002a38: AND
00002a39: SWAP3
00002a3a: PUSH2 0x2a97
00002a3d: SWAP1
00002a3e: DUP3
00002a3f: SWAP1
00002a40: CALLER
00002a41: DUP7
00002a42: SWAP1
00002a43: SUB
00002a44: PUSH2 0x2adf
00002a47: JUMPI
00002a48: JUMPDEST
00002a49: PUSH0
00002a4a: MLOAD
00002a4b: PUSH1 0x20
00002a4d: PUSH2 0x4d82
00002a50: PUSH0
00002a51: CODECOPY
00002a52: PUSH0
00002a53: MLOAD
00002a54: SWAP1
00002a55: PUSH0
00002a56: MSTORE
00002a57: SLOAD
00002a58: PUSH1 0x40
00002a5a: MLOAD
00002a5b: PUSH4 0x7bd58ea9
00002a60: PUSH1 0xe0
00002a62: SHL
00002a63: PUSH1 0x20
00002a65: DUP3
00002a66: ADD
00002a67: MSTORE
00002a68: PUSH1 0x01
00002a6a: PUSH1 0x01
00002a6c: PUSH1 0xa0
00002a6e: SHL
00002a6f: SUB
00002a70: SWAP2
00002a71: DUP3
00002a72: AND
00002a73: PUSH1 0x24
00002a75: DUP3
00002a76: ADD
00002a77: MSTORE
00002a78: SWAP1
00002a79: DUP7
00002a7a: AND
00002a7b: PUSH1 0x44
00002a7d: DUP3
00002a7e: ADD
00002a7f: MSTORE
00002a80: PUSH1 0x64
00002a82: DUP2
00002a83: ADD
00002a84: DUP9
00002a85: SWAP1
00002a86: MSTORE
00002a87: PUSH2 0x28ef
00002a8a: SWAP1
00002a8b: PUSH2 0x1596
00002a8e: DUP2
00002a8f: PUSH1 0x84
00002a91: DUP2
00002a92: ADD
00002a93: PUSH2 0x1588
00002a96: JUMP
00002a97: JUMPDEST
00002a98: PUSH1 0x40
00002a9a: DUP1
00002a9b: MLOAD
00002a9c: DUP6
00002a9d: DUP2
00002a9e: MSTORE
00002a9f: PUSH1 0x20
00002aa1: DUP2
00002aa2: ADD
00002aa3: SWAP3
00002aa4: SWAP1
00002aa5: SWAP3
00002aa6: MSTORE
00002aa7: PUSH1 0x01
00002aa9: PUSH1 0x01
00002aab: PUSH1 0xa0
00002aad: SHL
00002aae: SUB
00002aaf: SWAP1
00002ab0: SWAP3
00002ab1: AND
00002ab2: SWAP2
00002ab3: CALLER
00002ab4: SWAP2
00002ab5: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db
00002ad6: SWAP2
00002ad7: DUP2
00002ad8: SWAP1
00002ad9: DUP2
00002ada: ADD
00002adb: PUSH2 0x2938
00002ade: JUMP
00002adf: JUMPDEST
00002ae0: PUSH2 0x2aea
00002ae3: DUP3
00002ae4: CALLER
00002ae5: DUP4
00002ae6: PUSH2 0x3fc0
00002ae9: JUMP
00002aea: JUMPDEST
00002aeb: PUSH2 0x2a48
00002aee: JUMP
00002aef: JUMPDEST
00002af0: POP
00002af1: PUSH0
00002af2: MLOAD
00002af3: PUSH1 0x20
00002af5: PUSH2 0x4ca2
00002af8: PUSH0
00002af9: CODECOPY
00002afa: PUSH0
00002afb: MLOAD
00002afc: SWAP1
00002afd: PUSH0
00002afe: MSTORE
00002aff: DUP6
00002b00: EQ
00002b01: ISZERO
00002b02: PUSH2 0x2a08
00002b05: JUMP
00002b06: JUMPDEST
00002b07: DUP4
00002b08: DUP3
00002b09: PUSH4 0x2e52afbb
00002b0e: PUSH1 0xe2
00002b10: SHL
00002b11: PUSH0
00002b12: MSTORE
00002b13: PUSH1 0x01
00002b15: DUP1
00002b16: PUSH1 0xa0
00002b18: SHL
00002b19: SUB
00002b1a: AND
00002b1b: PUSH1 0x04
00002b1d: MSTORE
00002b1e: PUSH1 0x24
00002b20: MSTORE
00002b21: PUSH1 0x44
00002b23: MSTORE
00002b24: PUSH1 0x64
00002b26: PUSH0
00002b27: REVERT
00002b28: JUMPDEST
00002b29: CALLVALUE
00002b2a: PUSH2 0x05f1
00002b2d: JUMPI
00002b2e: PUSH1 0x20
00002b30: CALLDATASIZE
00002b31: PUSH1 0x03
00002b33: NOT
00002b34: ADD
00002b35: SLT
00002b36: PUSH2 0x05f1
00002b39: JUMPI
00002b3a: PUSH2 0x2b44
00002b3d: PUSH1 0x04
00002b3f: CALLDATALOAD
00002b40: PUSH2 0x0737
00002b43: JUMP
00002b44: JUMPDEST
00002b45: PUSH1 0x20
00002b47: PUSH2 0x072f
00002b4a: PUSH2 0x3ac8
00002b4d: JUMP
00002b4e: JUMPDEST
00002b4f: CALLVALUE
00002b50: PUSH2 0x05f1
00002b53: JUMPI
00002b54: PUSH1 0x20
00002b56: CALLDATASIZE
00002b57: PUSH1 0x03
00002b59: NOT
00002b5a: ADD
00002b5b: SLT
00002b5c: PUSH2 0x05f1
00002b5f: JUMPI
00002b60: PUSH1 0x20
00002b62: PUSH2 0x072f
00002b65: PUSH1 0x04
00002b67: CALLDATALOAD
00002b68: PUSH2 0x3d5c
00002b6b: JUMP
00002b6c: JUMPDEST
00002b6d: CALLVALUE
00002b6e: PUSH2 0x05f1
00002b71: JUMPI
00002b72: PUSH0
00002b73: CALLDATASIZE
00002b74: PUSH1 0x03
00002b76: NOT
00002b77: ADD
00002b78: SLT
00002b79: PUSH2 0x05f1
00002b7c: JUMPI
00002b7d: PUSH0
00002b7e: SLOAD
00002b7f: PUSH1 0x01
00002b81: PUSH1 0x01
00002b83: PUSH1 0xa0
00002b85: SHL
00002b86: SUB
00002b87: AND
00002b88: CALLER
00002b89: EQ
00002b8a: ISZERO
00002b8b: DUP1
00002b8c: PUSH2 0x2bbf
00002b8f: JUMPI
00002b90: JUMPDEST
00002b91: PUSH2 0x0b83
00002b94: JUMPI
00002b95: PUSH0
00002b96: PUSH1 0x05
00002b98: SSTORE
00002b99: CALLER
00002b9a: PUSH32 0x921828337692c347c634c5d2aacbc7b756014674bd236f3cc2058d8e284a951b
00002bbb: PUSH0
00002bbc: DUP1
00002bbd: LOG2
00002bbe: STOP
00002bbf: JUMPDEST
00002bc0: POP
00002bc1: PUSH0
00002bc2: MLOAD
00002bc3: PUSH1 0x20
00002bc5: PUSH2 0x4d02
00002bc8: PUSH0
00002bc9: CODECOPY
00002bca: PUSH0
00002bcb: MLOAD
00002bcc: SWAP1
00002bcd: PUSH0
00002bce: MSTORE
00002bcf: SLOAD
00002bd0: PUSH1 0x01
00002bd2: PUSH1 0x01
00002bd4: PUSH1 0xa0
00002bd6: SHL
00002bd7: SUB
00002bd8: AND
00002bd9: CALLER
00002bda: EQ
00002bdb: ISZERO
00002bdc: PUSH2 0x2b90
00002bdf: JUMP
00002be0: JUMPDEST
00002be1: CALLVALUE
00002be2: PUSH2 0x05f1
00002be5: JUMPI
00002be6: PUSH0
00002be7: CALLDATASIZE
00002be8: PUSH1 0x03
00002bea: NOT
00002beb: ADD
00002bec: SLT
00002bed: PUSH2 0x05f1
00002bf0: JUMPI
00002bf1: PUSH1 0x06
00002bf3: SLOAD
00002bf4: DUP1
00002bf5: PUSH1 0xc0
00002bf7: SHR
00002bf8: DUP1
00002bf9: ISZERO
00002bfa: PUSH2 0x0ab8
00002bfd: JUMPI
00002bfe: TIMESTAMP
00002bff: LT
00002c00: PUSH2 0x0aa9
00002c03: JUMPI
00002c04: PUSH2 0x2c1e
00002c07: SWAP1
00002c08: PUSH2 0x2c19
00002c0b: SWAP1
00002c0c: PUSH1 0x01
00002c0e: PUSH1 0x01
00002c10: PUSH1 0xc0
00002c12: SHL
00002c13: SUB
00002c14: AND
00002c15: PUSH2 0x492e
00002c18: JUMP
00002c19: JUMPDEST
00002c1a: PUSH2 0x4875
00002c1d: JUMP
00002c1e: JUMPDEST
00002c1f: PUSH0
00002c20: PUSH1 0x06
00002c22: SSTORE
00002c23: PUSH1 0x01
00002c25: PUSH1 0x01
00002c27: PUSH1 0x40
00002c29: SHL
00002c2a: SUB
00002c2b: PUSH1 0x14
00002c2d: SLOAD
00002c2e: AND
00002c2f: PUSH1 0x40
00002c31: MLOAD
00002c32: SWAP1
00002c33: DUP2
00002c34: MSTORE
00002c35: PUSH32 0x20affe2401825617c69366f8c3a3493d9822d1021d0b3023c4e77ea5b3d0fbc5
00002c56: PUSH1 0x20
00002c58: CALLER
00002c59: SWAP3
00002c5a: LOG2
00002c5b: STOP
00002c5c: JUMPDEST
00002c5d: CALLVALUE
00002c5e: PUSH2 0x05f1
00002c61: JUMPI
00002c62: PUSH1 0x20
00002c64: CALLDATASIZE
00002c65: PUSH1 0x03
00002c67: NOT
00002c68: ADD
00002c69: SLT
00002c6a: PUSH2 0x05f1
00002c6d: JUMPI
00002c6e: PUSH1 0x20
00002c70: PUSH2 0x072f
00002c73: PUSH1 0x04
00002c75: CALLDATALOAD
00002c76: PUSH2 0x2c7e
00002c79: DUP2
00002c7a: PUSH2 0x0737
00002c7d: JUMP
00002c7e: JUMPDEST
00002c7f: PUSH2 0x3aee
00002c82: JUMP
00002c83: JUMPDEST
00002c84: CALLVALUE
00002c85: PUSH2 0x05f1
00002c88: JUMPI
00002c89: PUSH0
00002c8a: CALLDATASIZE
00002c8b: PUSH1 0x03
00002c8d: NOT
00002c8e: ADD
00002c8f: SLT
00002c90: PUSH2 0x05f1
00002c93: JUMPI
00002c94: PUSH2 0x2c9b
00002c97: PUSH2 0x339e
00002c9a: JUMP
00002c9b: JUMPDEST
00002c9c: POP
00002c9d: PUSH2 0x067f
00002ca0: PUSH1 0x40
00002ca2: MLOAD
00002ca3: PUSH2 0x2cab
00002ca6: DUP2
00002ca7: PUSH2 0x0eb2
00002caa: JUMP
00002cab: JUMPDEST
00002cac: PUSH1 0x12
00002cae: SLOAD
00002caf: PUSH1 0x01
00002cb1: PUSH1 0x01
00002cb3: PUSH1 0xc0
00002cb5: SHL
00002cb6: SUB
00002cb7: DUP2
00002cb8: AND
00002cb9: DUP1
00002cba: DUP4
00002cbb: MSTORE
00002cbc: PUSH1 0xc0
00002cbe: SWAP2
00002cbf: SWAP1
00002cc0: SWAP2
00002cc1: SHR
00002cc2: PUSH1 0x20
00002cc4: SWAP3
00002cc5: DUP4
00002cc6: ADD
00002cc7: SWAP1
00002cc8: DUP2
00002cc9: MSTORE
00002cca: PUSH1 0x40
00002ccc: DUP1
00002ccd: MLOAD
00002cce: SWAP3
00002ccf: DUP4
00002cd0: MSTORE
00002cd1: SWAP1
00002cd2: MLOAD
00002cd3: PUSH1 0x01
00002cd5: PUSH1 0x01
00002cd7: PUSH1 0x40
00002cd9: SHL
00002cda: SUB
00002cdb: AND
00002cdc: SWAP3
00002cdd: DUP3
00002cde: ADD
00002cdf: SWAP3
00002ce0: SWAP1
00002ce1: SWAP3
00002ce2: MSTORE
00002ce3: SWAP2
00002ce4: DUP3
00002ce5: SWAP2
00002ce6: DUP3
00002ce7: ADD
00002ce8: SWAP1
00002ce9: JUMP
00002cea: JUMPDEST
00002ceb: CALLVALUE
00002cec: PUSH2 0x05f1
00002cef: JUMPI
00002cf0: PUSH0
00002cf1: CALLDATASIZE
00002cf2: PUSH1 0x03
00002cf4: NOT
00002cf5: ADD
00002cf6: SLT
00002cf7: PUSH2 0x05f1
00002cfa: JUMPI
00002cfb: PUSH1 0x20
00002cfd: PUSH1 0x08
00002cff: SLOAD
00002d00: PUSH1 0x40
00002d02: MLOAD
00002d03: SWAP1
00002d04: DUP2
00002d05: MSTORE
00002d06: RETURN
00002d07: JUMPDEST
00002d08: CALLVALUE
00002d09: PUSH2 0x05f1
00002d0c: JUMPI
00002d0d: PUSH1 0x80
00002d0f: CALLDATASIZE
00002d10: PUSH1 0x03
00002d12: NOT
00002d13: ADD
00002d14: SLT
00002d15: PUSH2 0x05f1
00002d18: JUMPI
00002d19: PUSH2 0x0987
00002d1c: PUSH1 0x04
00002d1e: CALLDATALOAD
00002d1f: PUSH1 0x44
00002d21: CALLDATALOAD
00002d22: PUSH1 0x24
00002d24: CALLDATALOAD
00002d25: PUSH2 0x2d2c
00002d28: PUSH2 0x4182
00002d2b: JUMP
00002d2c: JUMPDEST
00002d2d: PUSH1 0x40
00002d2f: MLOAD
00002d30: SWAP3
00002d31: PUSH4 0x0c3a1515
00002d36: PUSH1 0xe3
00002d38: SHL
00002d39: PUSH1 0x20
00002d3b: DUP6
00002d3c: ADD
00002d3d: MSTORE
00002d3e: PUSH1 0x24
00002d40: DUP5
00002d41: ADD
00002d42: MSTORE
00002d43: PUSH1 0x44
00002d45: DUP4
00002d46: ADD
00002d47: MSTORE
00002d48: PUSH1 0x64
00002d4a: DUP3
00002d4b: ADD
00002d4c: MSTORE
00002d4d: PUSH1 0x64
00002d4f: DUP2
00002d50: MSTORE
00002d51: PUSH2 0x1596
00002d54: PUSH1 0x84
00002d56: DUP3
00002d57: PUSH2 0x0ee8
00002d5a: JUMP
00002d5b: JUMPDEST
00002d5c: CALLVALUE
00002d5d: PUSH2 0x05f1
00002d60: JUMPI
00002d61: PUSH1 0x40
00002d63: CALLDATASIZE
00002d64: PUSH1 0x03
00002d66: NOT
00002d67: ADD
00002d68: SLT
00002d69: PUSH2 0x05f1
00002d6c: JUMPI
00002d6d: PUSH1 0x20
00002d6f: PUSH2 0x2d92
00002d72: PUSH1 0x04
00002d74: CALLDATALOAD
00002d75: PUSH2 0x2d7d
00002d78: DUP2
00002d79: PUSH2 0x0737
00002d7c: JUMP
00002d7d: JUMPDEST
00002d7e: PUSH2 0x079a
00002d81: PUSH1 0x24
00002d83: CALLDATALOAD
00002d84: SWAP2
00002d85: PUSH2 0x2d8d
00002d88: DUP4
00002d89: PUSH2 0x0737
00002d8c: JUMP
00002d8d: JUMPDEST
00002d8e: PUSH2 0x331f
00002d91: JUMP
00002d92: JUMPDEST
00002d93: SLOAD
00002d94: PUSH1 0x40
00002d96: MLOAD
00002d97: SWAP1
00002d98: DUP2
00002d99: MSTORE
00002d9a: RETURN
00002d9b: JUMPDEST
00002d9c: CALLVALUE
00002d9d: PUSH2 0x05f1
00002da0: JUMPI
00002da1: PUSH0
00002da2: CALLDATASIZE
00002da3: PUSH1 0x03
00002da5: NOT
00002da6: ADD
00002da7: SLT
00002da8: PUSH2 0x05f1
00002dab: JUMPI
00002dac: PUSH0
00002dad: MLOAD
00002dae: PUSH1 0x20
00002db0: PUSH2 0x4e02
00002db3: PUSH0
00002db4: CODECOPY
00002db5: PUSH0
00002db6: MLOAD
00002db7: SWAP1
00002db8: PUSH0
00002db9: MSTORE
00002dba: SLOAD
00002dbb: PUSH1 0x40
00002dbd: MLOAD
00002dbe: PUSH1 0x01
00002dc0: PUSH1 0x01
00002dc2: PUSH1 0xa0
00002dc4: SHL
00002dc5: SUB
00002dc6: SWAP1
00002dc7: SWAP2
00002dc8: AND
00002dc9: DUP2
00002dca: MSTORE
00002dcb: PUSH1 0x20
00002dcd: SWAP1
00002dce: RETURN
00002dcf: JUMPDEST
00002dd0: CALLVALUE
00002dd1: PUSH2 0x05f1
00002dd4: JUMPI
00002dd5: PUSH1 0x20
00002dd7: CALLDATASIZE
00002dd8: PUSH1 0x03
00002dda: NOT
00002ddb: ADD
00002ddc: SLT
00002ddd: PUSH2 0x05f1
00002de0: JUMPI
00002de1: PUSH1 0x04
00002de3: CALLDATALOAD
00002de4: PUSH2 0x2dec
00002de7: DUP2
00002de8: PUSH2 0x0737
00002deb: JUMP
00002dec: JUMPDEST
00002ded: PUSH0
00002dee: SLOAD
00002def: PUSH1 0x01
00002df1: PUSH1 0x01
00002df3: PUSH1 0xa0
00002df5: SHL
00002df6: SUB
00002df7: AND
00002df8: CALLER
00002df9: EQ
00002dfa: ISZERO
00002dfb: DUP1
00002dfc: PUSH2 0x2e45
00002dff: JUMPI
00002e00: JUMPDEST
00002e01: PUSH2 0x0b83
00002e04: JUMPI
00002e05: PUSH1 0x01
00002e07: PUSH1 0x01
00002e09: PUSH1 0xa0
00002e0b: SHL
00002e0c: SUB
00002e0d: AND
00002e0e: PUSH0
00002e0f: DUP2
00002e10: DUP2
00002e11: MSTORE
00002e12: PUSH1 0x04
00002e14: PUSH1 0x20
00002e16: MSTORE
00002e17: PUSH1 0x40
00002e19: DUP2
00002e1a: KECCAK256
00002e1b: DUP2
00002e1c: SWAP1
00002e1d: SSTORE
00002e1e: CALLER
00002e1f: SWAP1
00002e20: PUSH32 0x10d2cd24a2375b12d91635518e47506f9aebfe8af364c6109b93ac41e8b0b86f
00002e41: SWAP1
00002e42: DUP1
00002e43: LOG3
00002e44: STOP
00002e45: JUMPDEST
00002e46: POP
00002e47: PUSH0
00002e48: MLOAD
00002e49: PUSH1 0x20
00002e4b: PUSH2 0x4d02
00002e4e: PUSH0
00002e4f: CODECOPY
00002e50: PUSH0
00002e51: MLOAD
00002e52: SWAP1
00002e53: PUSH0
00002e54: MSTORE
00002e55: SLOAD
00002e56: PUSH1 0x01
00002e58: PUSH1 0x01
00002e5a: PUSH1 0xa0
00002e5c: SHL
00002e5d: SUB
00002e5e: AND
00002e5f: CALLER
00002e60: EQ
00002e61: ISZERO
00002e62: PUSH2 0x2e00
00002e65: JUMP
00002e66: JUMPDEST
00002e67: CALLVALUE
00002e68: PUSH2 0x05f1
00002e6b: JUMPI
00002e6c: PUSH0
00002e6d: CALLDATASIZE
00002e6e: PUSH1 0x03
00002e70: NOT
00002e71: ADD
00002e72: SLT
00002e73: PUSH2 0x05f1
00002e76: JUMPI
00002e77: PUSH1 0x20
00002e79: PUSH7 0x2386f26fc10000
00002e81: PUSH1 0x0d
00002e83: SLOAD
00002e84: DIV
00002e85: PUSH1 0x40
00002e87: MLOAD
00002e88: SWAP1
00002e89: DUP2
00002e8a: MSTORE
00002e8b: RETURN
00002e8c: JUMPDEST
00002e8d: CALLVALUE
00002e8e: PUSH2 0x05f1
00002e91: JUMPI
00002e92: PUSH0
00002e93: CALLDATASIZE
00002e94: PUSH1 0x03
00002e96: NOT
00002e97: ADD
00002e98: SLT
00002e99: PUSH2 0x05f1
00002e9c: JUMPI
00002e9d: PUSH1 0x01
00002e9f: SLOAD
00002ea0: PUSH1 0x40
00002ea2: MLOAD
00002ea3: PUSH1 0x01
00002ea5: PUSH1 0x01
00002ea7: PUSH1 0xa0
00002ea9: SHL
00002eaa: SUB
00002eab: SWAP1
00002eac: SWAP2
00002ead: AND
00002eae: DUP2
00002eaf: MSTORE
00002eb0: PUSH1 0x20
00002eb2: SWAP1
00002eb3: RETURN
00002eb4: JUMPDEST
00002eb5: CALLVALUE
00002eb6: PUSH2 0x05f1
00002eb9: JUMPI
00002eba: PUSH2 0x2ec2
00002ebd: CALLDATASIZE
00002ebe: PUSH2 0x0f9d
00002ec1: JUMP
00002ec2: JUMPDEST
00002ec3: POP
00002ec4: CALLER
00002ec5: PUSH0
00002ec6: MSTORE
00002ec7: PUSH1 0x02
00002ec9: PUSH1 0x20
00002ecb: MSTORE
00002ecc: PUSH1 0xff
00002ece: PUSH1 0x40
00002ed0: PUSH0
00002ed1: KECCAK256
00002ed2: SLOAD
00002ed3: AND
00002ed4: ISZERO
00002ed5: DUP1
00002ed6: PUSH2 0x2f15
00002ed9: JUMPI
00002eda: JUMPDEST
00002edb: DUP1
00002edc: PUSH2 0x2ef4
00002edf: JUMPI
00002ee0: JUMPDEST
00002ee1: ISZERO
00002ee2: PUSH2 0x39ae
00002ee5: JUMPI
00002ee6: PUSH4 0xf7137c0f
00002eeb: PUSH1 0xe0
00002eed: SHL
00002eee: PUSH0
00002eef: MSTORE
00002ef0: PUSH1 0x04
00002ef2: PUSH0
00002ef3: REVERT
00002ef4: JUMPDEST
00002ef5: POP
00002ef6: PUSH0
00002ef7: MLOAD
00002ef8: PUSH1 0x20
00002efa: PUSH2 0x4d02
00002efd: PUSH0
00002efe: CODECOPY
00002eff: PUSH0
00002f00: MLOAD
00002f01: SWAP1
00002f02: PUSH0
00002f03: MSTORE
00002f04: SLOAD
00002f05: PUSH1 0x01
00002f07: PUSH1 0x01
00002f09: PUSH1 0xa0
00002f0b: SHL
00002f0c: SUB
00002f0d: AND
00002f0e: CALLER
00002f0f: EQ
00002f10: ISZERO
00002f11: PUSH2 0x2ee0
00002f14: JUMP
00002f15: JUMPDEST
00002f16: POP
00002f17: PUSH1 0x01
00002f19: SLOAD
00002f1a: PUSH1 0x01
00002f1c: PUSH1 0x01
00002f1e: PUSH1 0xa0
00002f20: SHL
00002f21: SUB
00002f22: AND
00002f23: CALLER
00002f24: EQ
00002f25: ISZERO
00002f26: PUSH2 0x2eda
00002f29: JUMP
00002f2a: JUMPDEST
00002f2b: CALLVALUE
00002f2c: PUSH2 0x05f1
00002f2f: JUMPI
00002f30: PUSH1 0x20
00002f32: CALLDATASIZE
00002f33: PUSH1 0x03
00002f35: NOT
00002f36: ADD
00002f37: SLT
00002f38: PUSH2 0x05f1
00002f3b: JUMPI
00002f3c: PUSH1 0x04
00002f3e: CALLDATALOAD
00002f3f: PUSH2 0x2f47
00002f42: DUP2
00002f43: PUSH2 0x0737
00002f46: JUMP
00002f47: JUMPDEST
00002f48: PUSH2 0x2f4f
00002f4b: PUSH2 0x4162
00002f4e: JUMP
00002f4f: JUMPDEST
00002f50: PUSH1 0x01
00002f52: SLOAD
00002f53: PUSH1 0x01
00002f55: PUSH1 0x01
00002f57: PUSH1 0xa0
00002f59: SHL
00002f5a: SUB
00002f5b: DUP3
00002f5c: DUP2
00002f5d: AND
00002f5e: SWAP2
00002f5f: AND
00002f60: EQ
00002f61: PUSH2 0x0a28
00002f64: JUMPI
00002f65: PUSH2 0x0987
00002f68: SWAP1
00002f69: PUSH2 0x48e2
00002f6c: JUMP
00002f6d: JUMPDEST
00002f6e: CALLVALUE
00002f6f: PUSH2 0x05f1
00002f72: JUMPI
00002f73: PUSH1 0x20
00002f75: CALLDATASIZE
00002f76: PUSH1 0x03
00002f78: NOT
00002f79: ADD
00002f7a: SLT
00002f7b: PUSH2 0x05f1
00002f7e: JUMPI
00002f7f: PUSH1 0x04
00002f81: CALLDATALOAD
00002f82: PUSH2 0x2f8a
00002f85: DUP2
00002f86: PUSH2 0x0737
00002f89: JUMP
00002f8a: JUMPDEST
00002f8b: PUSH0
00002f8c: PUSH1 0x80
00002f8e: PUSH1 0x40
00002f90: MLOAD
00002f91: PUSH2 0x2f99
00002f94: DUP2
00002f95: PUSH2 0x0ecd
00002f98: JUMP
00002f99: JUMPDEST
00002f9a: DUP3
00002f9b: DUP2
00002f9c: MSTORE
00002f9d: DUP3
00002f9e: PUSH1 0x20
00002fa0: DUP3
00002fa1: ADD
00002fa2: MSTORE
00002fa3: DUP3
00002fa4: PUSH1 0x40
00002fa6: DUP3
00002fa7: ADD
00002fa8: MSTORE
00002fa9: DUP3
00002faa: PUSH1 0x60
00002fac: DUP3
00002fad: ADD
00002fae: MSTORE
00002faf: ADD
00002fb0: MSTORE
00002fb1: PUSH1 0x01
00002fb3: DUP1
00002fb4: PUSH1 0xa0
00002fb6: SHL
00002fb7: SUB
00002fb8: AND
00002fb9: PUSH0
00002fba: MSTORE
00002fbb: PUSH1 0x0f
00002fbd: PUSH1 0x20
00002fbf: MSTORE
00002fc0: PUSH2 0x067f
00002fc3: PUSH1 0x40
00002fc5: PUSH0
00002fc6: KECCAK256
00002fc7: PUSH2 0x3031
00002fca: PUSH2 0x3021
00002fcd: PUSH1 0x03
00002fcf: PUSH1 0x40
00002fd1: MLOAD
00002fd2: SWAP4
00002fd3: PUSH2 0x2fdb
00002fd6: DUP6
00002fd7: PUSH2 0x0ecd
00002fda: JUMP
00002fdb: JUMPDEST
00002fdc: DUP1
00002fdd: SLOAD
00002fde: PUSH1 0x01
00002fe0: PUSH1 0x01
00002fe2: PUSH1 0xa0
00002fe4: SHL
00002fe5: SUB
00002fe6: SWAP1
00002fe7: DUP2
00002fe8: AND
00002fe9: DUP7
00002fea: MSTORE
00002feb: PUSH1 0x01
00002fed: DUP3
00002fee: ADD
00002fef: SLOAD
00002ff0: DUP2
00002ff1: AND
00002ff2: PUSH1 0x20
00002ff4: DUP8
00002ff5: ADD
00002ff6: MSTORE
00002ff7: PUSH1 0x02
00002ff9: DUP3
00002ffa: ADD
00002ffb: SLOAD
00002ffc: AND
00002ffd: PUSH1 0x40
00002fff: DUP7
00003000: ADD
00003001: MSTORE
00003002: ADD
00003003: SLOAD
00003004: PUSH1 0x01
00003006: PUSH1 0x01
00003008: PUSH1 0x80
0000300a: SHL
0000300b: SUB
0000300c: DUP2
0000300d: AND
0000300e: PUSH1 0x60
00003010: DUP6
00003011: ADD
00003012: MSTORE
00003013: PUSH1 0x80
00003015: SHR
00003016: PUSH1 0x01
00003018: PUSH1 0x01
0000301a: PUSH1 0x40
0000301c: SHL
0000301d: SUB
0000301e: AND
0000301f: SWAP1
00003020: JUMP
00003021: JUMPDEST
00003022: PUSH1 0x01
00003024: PUSH1 0x01
00003026: PUSH1 0x40
00003028: SHL
00003029: SUB
0000302a: AND
0000302b: PUSH1 0x80
0000302d: DUP4
0000302e: ADD
0000302f: MSTORE
00003030: JUMP
00003031: JUMPDEST
00003032: PUSH1 0x40
00003034: DUP1
00003035: MLOAD
00003036: DUP3
00003037: MLOAD
00003038: PUSH1 0x01
0000303a: PUSH1 0x01
0000303c: PUSH1 0xa0
0000303e: SHL
0000303f: SUB
00003040: SWAP1
00003041: DUP2
00003042: AND
00003043: DUP3
00003044: MSTORE
00003045: PUSH1 0x20
00003047: DUP1
00003048: DUP6
00003049: ADD
0000304a: MLOAD
0000304b: DUP3
0000304c: AND
0000304d: SWAP1
0000304e: DUP4
0000304f: ADD
00003050: MSTORE
00003051: DUP4
00003052: DUP4
00003053: ADD
00003054: MLOAD
00003055: AND
00003056: SWAP2
00003057: DUP2
00003058: ADD
00003059: SWAP2
0000305a: SWAP1
0000305b: SWAP2
0000305c: MSTORE
0000305d: PUSH1 0x60
0000305f: DUP1
00003060: DUP4
00003061: ADD
00003062: MLOAD
00003063: PUSH1 0x01
00003065: PUSH1 0x01
00003067: PUSH1 0x80
00003069: SHL
0000306a: SUB
0000306b: AND
0000306c: SWAP1
0000306d: DUP3
0000306e: ADD
0000306f: MSTORE
00003070: PUSH1 0x80
00003072: SWAP2
00003073: DUP3
00003074: ADD
00003075: MLOAD
00003076: PUSH1 0x01
00003078: PUSH1 0x01
0000307a: PUSH1 0x40
0000307c: SHL
0000307d: SUB
0000307e: AND
0000307f: SWAP2
00003080: DUP2
00003081: ADD
00003082: SWAP2
00003083: SWAP1
00003084: SWAP2
00003085: MSTORE
00003086: SWAP1
00003087: DUP2
00003088: SWAP1
00003089: PUSH1 0xa0
0000308b: DUP3
0000308c: ADD
0000308d: SWAP1
0000308e: JUMP
0000308f: JUMPDEST
00003090: CALLVALUE
00003091: PUSH2 0x05f1
00003094: JUMPI
00003095: PUSH1 0x20
00003097: CALLDATASIZE
00003098: PUSH1 0x03
0000309a: NOT
0000309b: ADD
0000309c: SLT
0000309d: PUSH2 0x05f1
000030a0: JUMPI
000030a1: PUSH1 0x04
000030a3: CALLDATALOAD
000030a4: PUSH2 0x30ac
000030a7: DUP2
000030a8: PUSH2 0x0737
000030ab: JUMP
000030ac: JUMPDEST
000030ad: PUSH2 0x30b4
000030b0: PUSH2 0x4162
000030b3: JUMP
000030b4: JUMPDEST
000030b5: PUSH0
000030b6: MLOAD
000030b7: PUSH1 0x20
000030b9: PUSH2 0x4e02
000030bc: PUSH0
000030bd: CODECOPY
000030be: PUSH0
000030bf: MLOAD
000030c0: SWAP1
000030c1: PUSH0
000030c2: MSTORE
000030c3: DUP1
000030c4: SLOAD
000030c5: PUSH1 0x01
000030c7: PUSH1 0x01
000030c9: PUSH1 0xa0
000030cb: SHL
000030cc: SUB
000030cd: NOT
000030ce: AND
000030cf: PUSH1 0x01
000030d1: PUSH1 0x01
000030d3: PUSH1 0xa0
000030d5: SHL
000030d6: SUB
000030d7: SWAP3
000030d8: DUP4
000030d9: AND
000030da: SWAP1
000030db: DUP2
000030dc: OR
000030dd: SWAP1
000030de: SWAP2
000030df: SSTORE
000030e0: PUSH0
000030e1: MLOAD
000030e2: PUSH1 0x20
000030e4: PUSH2 0x4d02
000030e7: PUSH0
000030e8: CODECOPY
000030e9: PUSH0
000030ea: MLOAD
000030eb: SWAP1
000030ec: PUSH0
000030ed: MSTORE
000030ee: SLOAD
000030ef: SWAP1
000030f0: SWAP2
000030f1: AND
000030f2: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700
00003113: PUSH0
00003114: DUP1
00003115: LOG3
00003116: STOP
00003117: JUMPDEST
00003118: CALLVALUE
00003119: PUSH2 0x05f1
0000311c: JUMPI
0000311d: PUSH1 0x20
0000311f: CALLDATASIZE
00003120: PUSH1 0x03
00003122: NOT
00003123: ADD
00003124: SLT
00003125: PUSH2 0x05f1
00003128: JUMPI
00003129: PUSH1 0x04
0000312b: CALLDATALOAD
0000312c: PUSH2 0x3134
0000312f: DUP2
00003130: PUSH2 0x0737
00003133: JUMP
00003134: JUMPDEST
00003135: PUSH1 0x01
00003137: PUSH1 0x01
00003139: PUSH1 0xa0
0000313b: SHL
0000313c: SUB
0000313d: DUP2
0000313e: AND
0000313f: PUSH0
00003140: SWAP1
00003141: DUP2
00003142: MSTORE
00003143: PUSH1 0x04
00003145: PUSH1 0x20
00003147: MSTORE
00003148: PUSH1 0x40
0000314a: SWAP1
0000314b: KECCAK256
0000314c: SLOAD
0000314d: PUSH1 0xc0
0000314f: SHR
00003150: DUP1
00003151: ISZERO
00003152: PUSH2 0x0ab8
00003155: JUMPI
00003156: TIMESTAMP
00003157: LT
00003158: PUSH2 0x0aa9
0000315b: JUMPI
0000315c: PUSH1 0x01
0000315e: DUP1
0000315f: PUSH1 0xa0
00003161: SHL
00003162: SUB
00003163: AND
00003164: DUP1
00003165: PUSH0
00003166: MSTORE
00003167: PUSH1 0x03
00003169: PUSH1 0x20
0000316b: MSTORE
0000316c: PUSH1 0x40
0000316e: PUSH0
0000316f: KECCAK256
00003170: PUSH1 0x01
00003172: PUSH1 0xff
00003174: NOT
00003175: DUP3
00003176: SLOAD
00003177: AND
00003178: OR
00003179: SWAP1
0000317a: SSTORE
0000317b: DUP1
0000317c: PUSH1 0x40
0000317e: MLOAD
0000317f: PUSH1 0x01
00003181: DUP2
00003182: MSTORE
00003183: PUSH32 0x7276f1d77fbb1794919362294fb870305193d894417c47c88716aa858f4272d3
000031a4: PUSH1 0x20
000031a6: CALLER
000031a7: SWAP3
000031a8: LOG3
000031a9: PUSH0
000031aa: SWAP1
000031ab: DUP2
000031ac: MSTORE
000031ad: PUSH1 0x04
000031af: PUSH1 0x20
000031b1: MSTORE
000031b2: PUSH1 0x40
000031b4: DUP2
000031b5: KECCAK256
000031b6: SSTORE
000031b7: STOP
000031b8: JUMPDEST
000031b9: CALLVALUE
000031ba: PUSH2 0x05f1
000031bd: JUMPI
000031be: PUSH1 0x20
000031c0: CALLDATASIZE
000031c1: PUSH1 0x03
000031c3: NOT
000031c4: ADD
000031c5: SLT
000031c6: PUSH2 0x05f1
000031c9: JUMPI
000031ca: PUSH4 0x580b4feb
000031cf: PUSH1 0xe1
000031d1: SHL
000031d2: PUSH0
000031d3: MSTORE
000031d4: PUSH1 0x04
000031d6: PUSH0
000031d7: REVERT
000031d8: JUMPDEST
000031d9: CALLVALUE
000031da: PUSH2 0x05f1
000031dd: JUMPI
000031de: PUSH1 0x20
000031e0: CALLDATASIZE
000031e1: PUSH1 0x03
000031e3: NOT
000031e4: ADD
000031e5: SLT
000031e6: PUSH2 0x05f1
000031e9: JUMPI
000031ea: PUSH2 0x31f1
000031ed: PUSH2 0x1a50
000031f0: JUMP
000031f1: JUMPDEST
000031f2: PUSH1 0x01
000031f4: SLOAD
000031f5: PUSH1 0x01
000031f7: PUSH1 0x01
000031f9: PUSH1 0xa0
000031fb: SHL
000031fc: SUB
000031fd: AND
000031fe: CALLER
000031ff: EQ
00003200: ISZERO
00003201: DUP1
00003202: PUSH2 0x328f
00003205: JUMPI
00003206: JUMPDEST
00003207: PUSH2 0x0a3e
0000320a: JUMPI
0000320b: PUSH2 0x3219
0000320e: PUSH2 0x1ddd
00003211: PUSH1 0x14
00003213: SLOAD
00003214: PUSH1 0xc0
00003216: SHR
00003217: SWAP1
00003218: JUMP
00003219: JUMPDEST
0000321a: SWAP1
0000321b: PUSH1 0x01
0000321d: PUSH1 0x01
0000321f: PUSH1 0x40
00003221: SHL
00003222: SUB
00003223: DUP2
00003224: AND
00003225: SWAP2
00003226: DUP1
00003227: DUP4
00003228: EQ
00003229: PUSH2 0x0a28
0000322c: JUMPI
0000322d: PUSH1 0x01
0000322f: PUSH1 0x01
00003231: PUSH1 0x40
00003233: SHL
00003234: SUB
00003235: PUSH2 0x3240
00003238: PUSH1 0x13
0000323a: SLOAD
0000323b: PUSH1 0xc0
0000323d: SHR
0000323e: SWAP1
0000323f: JUMP
00003240: JUMPDEST
00003241: AND
00003242: PUSH2 0x0a19
00003245: JUMPI
00003246: DUP3
00003247: GT
00003248: ISZERO
00003249: PUSH2 0x3256
0000324c: JUMPI
0000324d: PUSH2 0x0987
00003250: SWAP2
00003251: POP
00003252: PUSH2 0x4108
00003255: JUMP
00003256: JUMPDEST
00003257: PUSH2 0x3284
0000325a: PUSH32 0x3b8a044f41670eccfac9f7c33fa28e400326783a606ba37edb9c34a964bf7afa
0000327b: SWAP3
0000327c: PUSH1 0x08
0000327e: SLOAD
0000327f: SWAP1
00003280: PUSH2 0x3e6d
00003283: JUMP
00003284: JUMPDEST
00003285: PUSH1 0x13
00003287: SLOAD
00003288: PUSH1 0xc0
0000328a: SHR
0000328b: PUSH2 0x1e5b
0000328e: JUMP
0000328f: JUMPDEST
00003290: POP
00003291: PUSH0
00003292: MLOAD
00003293: PUSH1 0x20
00003295: PUSH2 0x4d02
00003298: PUSH0
00003299: CODECOPY
0000329a: PUSH0
0000329b: MLOAD
0000329c: SWAP1
0000329d: PUSH0
0000329e: MSTORE
0000329f: SLOAD
000032a0: PUSH1 0x01
000032a2: PUSH1 0x01
000032a4: PUSH1 0xa0
000032a6: SHL
000032a7: SUB
000032a8: AND
000032a9: CALLER
000032aa: EQ
000032ab: ISZERO
000032ac: PUSH2 0x3206
000032af: JUMP
000032b0: JUMPDEST
000032b1: PUSH4 0x4e487b71
000032b6: PUSH1 0xe0
000032b8: SHL
000032b9: PUSH0
000032ba: MSTORE
000032bb: PUSH1 0x12
000032bd: PUSH1 0x04
000032bf: MSTORE
000032c0: PUSH1 0x24
000032c2: PUSH0
000032c3: REVERT
000032c4: JUMPDEST
000032c5: PUSH4 0x4e487b71
000032ca: PUSH1 0xe0
000032cc: SHL
000032cd: PUSH0
000032ce: MSTORE
000032cf: PUSH1 0x11
000032d1: PUSH1 0x04
000032d3: MSTORE
000032d4: PUSH1 0x24
000032d6: PUSH0
000032d7: REVERT
000032d8: JUMPDEST
000032d9: DUP2
000032da: ISZERO
000032db: PUSH2 0x32e2
000032de: JUMPI
000032df: DIV
000032e0: SWAP1
000032e1: JUMP
000032e2: JUMPDEST
000032e3: PUSH2 0x32b0
000032e6: JUMP
000032e7: JUMPDEST
000032e8: SWAP1
000032e9: PUSH1 0x01
000032eb: DUP3
000032ec: DUP2
000032ed: SHR
000032ee: SWAP3
000032ef: AND
000032f0: DUP1
000032f1: ISZERO
000032f2: PUSH2 0x3315
000032f5: JUMPI
000032f6: JUMPDEST
000032f7: PUSH1 0x20
000032f9: DUP4
000032fa: LT
000032fb: EQ
000032fc: PUSH2 0x3301
000032ff: JUMPI
00003300: JUMP
00003301: JUMPDEST
00003302: PUSH4 0x4e487b71
00003307: PUSH1 0xe0
00003309: SHL
0000330a: PUSH0
0000330b: MSTORE
0000330c: PUSH1 0x22
0000330e: PUSH1 0x04
00003310: MSTORE
00003311: PUSH1 0x24
00003313: PUSH0
00003314: REVERT
00003315: JUMPDEST
00003316: SWAP2
00003317: PUSH1 0x7f
00003319: AND
0000331a: SWAP2
0000331b: PUSH2 0x32f6
0000331e: JUMP
0000331f: JUMPDEST
00003320: PUSH1 0x01
00003322: PUSH1 0x01
00003324: PUSH1 0xa0
00003326: SHL
00003327: SUB
00003328: AND
00003329: PUSH0
0000332a: SWAP1
0000332b: DUP2
0000332c: MSTORE
0000332d: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01
0000334e: PUSH1 0x20
00003350: MSTORE
00003351: PUSH1 0x40
00003353: SWAP1
00003354: KECCAK256
00003355: SWAP1
00003356: JUMP
00003357: JUMPDEST
00003358: PUSH1 0x01
0000335a: PUSH1 0x01
0000335c: PUSH1 0xa0
0000335e: SHL
0000335f: SUB
00003360: AND
00003361: PUSH0
00003362: SWAP1
00003363: DUP2
00003364: MSTORE
00003365: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00
00003386: PUSH1 0x20
00003388: MSTORE
00003389: PUSH1 0x40
0000338b: SWAP1
0000338c: KECCAK256
0000338d: SWAP1
0000338e: JUMP
0000338f: JUMPDEST
00003390: PUSH4 0x207972c9
00003395: PUSH1 0xe0
00003397: SHL
00003398: PUSH0
00003399: MSTORE
0000339a: PUSH1 0x04
0000339c: PUSH0
0000339d: REVERT
0000339e: JUMPDEST
0000339f: PUSH1 0x40
000033a1: MLOAD
000033a2: SWAP1
000033a3: PUSH2 0x33ab
000033a6: DUP3
000033a7: PUSH2 0x0eb2
000033aa: JUMP
000033ab: JUMPDEST
000033ac: PUSH0
000033ad: PUSH1 0x20
000033af: DUP4
000033b0: DUP3
000033b1: DUP2
000033b2: MSTORE
000033b3: ADD
000033b4: MSTORE
000033b5: JUMP
000033b6: JUMPDEST
000033b7: SWAP2
000033b8: SWAP1
000033b9: DUP3
000033ba: SUB
000033bb: SWAP2
000033bc: DUP3
000033bd: GT
000033be: PUSH2 0x0c5f
000033c1: JUMPI
000033c2: JUMP
000033c3: JUMPDEST
000033c4: DUP2
000033c5: DUP2
000033c6: MUL
000033c7: SWAP3
000033c8: SWAP2
000033c9: DUP2
000033ca: ISZERO
000033cb: SWAP2
000033cc: DUP5
000033cd: DIV
000033ce: EQ
000033cf: OR
000033d0: ISZERO
000033d1: PUSH2 0x0c5f
000033d4: JUMPI
000033d5: JUMP
000033d6: JUMPDEST
000033d7: PUSH1 0x0b
000033d9: SLOAD
000033da: DUP1
000033db: ISZERO
000033dc: PUSH2 0x340c
000033df: JUMPI
000033e0: PUSH1 0x0d
000033e2: SLOAD
000033e3: PUSH1 0x01
000033e5: PUSH1 0x01
000033e7: PUSH1 0x40
000033e9: SHL
000033ea: SUB
000033eb: PUSH1 0x14
000033ed: SLOAD
000033ee: AND
000033ef: PUSH4 0x05f5e100
000033f4: SUB
000033f5: PUSH4 0x05f5e100
000033fa: DUP2
000033fb: GT
000033fc: PUSH2 0x0c5f
000033ff: JUMPI
00003400: PUSH2 0x3408
00003403: SWAP2
00003404: PUSH2 0x33c3
00003407: JUMP
00003408: JUMPDEST
00003409: DIV
0000340a: SWAP1
0000340b: JUMP
0000340c: JUMPDEST
0000340d: POP
0000340e: PUSH0
0000340f: SWAP1
00003410: JUMP
00003411: JUMPDEST
00003412: PUSH1 0xff
00003414: PUSH0
00003415: MLOAD
00003416: PUSH1 0x20
00003418: PUSH2 0x4da2
0000341b: PUSH0
0000341c: CODECOPY
0000341d: PUSH0
0000341e: MLOAD
0000341f: SWAP1
00003420: PUSH0
00003421: MSTORE
00003422: SLOAD
00003423: AND
00003424: PUSH2 0x3462
00003427: JUMPI
00003428: PUSH7 0x2386f26fc10000
00003430: PUSH2 0x3437
00003433: PUSH2 0x3b3a
00003436: JUMP
00003437: JUMPDEST
00003438: POP
00003439: DIV
0000343a: PUSH1 0x09
0000343c: SLOAD
0000343d: DUP1
0000343e: SWAP2
0000343f: LT
00003440: ISZERO
00003441: PUSH2 0x340c
00003444: JUMPI
00003445: PUSH7 0x2386f26fc10000
0000344d: PUSH2 0x3454
00003450: PUSH2 0x3b3a
00003453: JUMP
00003454: JUMPDEST
00003455: POP
00003456: DIV
00003457: DUP2
00003458: SUB
00003459: SWAP1
0000345a: DUP2
0000345b: GT
0000345c: PUSH2 0x0c5f
0000345f: JUMPI
00003460: SWAP1
00003461: JUMP
00003462: JUMPDEST
00003463: PUSH0
00003464: SWAP1
00003465: JUMP
00003466: JUMPDEST
00003467: SWAP4
00003468: SWAP3
00003469: SWAP1
0000346a: SWAP2
0000346b: PUSH1 0x01
0000346d: DUP1
0000346e: PUSH1 0xa0
00003470: SHL
00003471: SUB
00003472: PUSH1 0x01
00003474: SLOAD
00003475: AND
00003476: CALLER
00003477: EQ
00003478: ISZERO
00003479: DUP1
0000347a: PUSH2 0x354a
0000347d: JUMPI
0000347e: JUMPDEST
0000347f: PUSH2 0x0a3e
00003482: JUMPI
00003483: PUSH2 0x348a
00003486: PUSH2 0x4182
00003489: JUMP
0000348a: JUMPDEST
0000348b: PUSH1 0x01
0000348d: DUP1
0000348e: PUSH1 0xa0
00003490: SHL
00003491: SUB
00003492: PUSH0
00003493: MLOAD
00003494: PUSH1 0x20
00003496: PUSH2 0x4d82
00003499: PUSH0
0000349a: CODECOPY
0000349b: PUSH0
0000349c: MLOAD
0000349d: SWAP1
0000349e: PUSH0
0000349f: MSTORE
000034a0: SLOAD
000034a1: AND
000034a2: SWAP3
000034a3: PUSH1 0x40
000034a5: MLOAD
000034a6: SWAP4
000034a7: PUSH4 0x53cc9d55
000034ac: PUSH1 0xe1
000034ae: SHL
000034af: PUSH1 0x20
000034b1: DUP7
000034b2: ADD
000034b3: MSTORE
000034b4: PUSH1 0xc4
000034b6: DUP6
000034b7: ADD
000034b8: SWAP1
000034b9: PUSH1 0x24
000034bb: DUP7
000034bc: ADD
000034bd: MSTORE
000034be: PUSH1 0xa0
000034c0: PUSH1 0x44
000034c2: DUP7
000034c3: ADD
000034c4: MSTORE
000034c5: DUP7
000034c6: MLOAD
000034c7: DUP1
000034c8: SWAP2
000034c9: MSTORE
000034ca: PUSH1 0x20
000034cc: PUSH1 0xe4
000034ce: DUP7
000034cf: ADD
000034d0: SWAP8
000034d1: ADD
000034d2: SWAP1
000034d3: PUSH0
000034d4: JUMPDEST
000034d5: DUP2
000034d6: DUP2
000034d7: LT
000034d8: PUSH2 0x352b
000034db: JUMPI
000034dc: POP
000034dd: POP
000034de: POP
000034df: PUSH2 0x1596
000034e2: SWAP3
000034e3: PUSH2 0x3516
000034e6: DUP6
000034e7: SWAP4
000034e8: PUSH2 0x3504
000034eb: PUSH2 0x3528
000034ee: SWAP9
000034ef: SWAP10
000034f0: PUSH2 0x1588
000034f3: SWAP6
000034f4: PUSH1 0x23
000034f6: NOT
000034f7: DUP9
000034f8: DUP4
000034f9: SUB
000034fa: ADD
000034fb: PUSH1 0x64
000034fd: DUP10
000034fe: ADD
000034ff: MSTORE
00003500: PUSH2 0x356b
00003503: JUMP
00003504: JUMPDEST
00003505: DUP6
00003506: DUP2
00003507: SUB
00003508: PUSH1 0x23
0000350a: NOT
0000350b: ADD
0000350c: PUSH1 0x84
0000350e: DUP8
0000350f: ADD
00003510: MSTORE
00003511: SWAP1
00003512: PUSH2 0x356b
00003515: JUMP
00003516: JUMPDEST
00003517: DUP4
00003518: DUP2
00003519: SUB
0000351a: PUSH1 0x23
0000351c: NOT
0000351d: ADD
0000351e: PUSH1 0xa4
00003520: DUP6
00003521: ADD
00003522: MSTORE
00003523: SWAP1
00003524: PUSH2 0x3613
00003527: JUMP
00003528: JUMPDEST
00003529: POP
0000352a: JUMP
0000352b: JUMPDEST
0000352c: DUP3
0000352d: MLOAD
0000352e: PUSH1 0x01
00003530: PUSH1 0x01
00003532: PUSH1 0xa0
00003534: SHL
00003535: SUB
00003536: AND
00003537: DUP10
00003538: MSTORE
00003539: PUSH1 0x20
0000353b: SWAP9
0000353c: DUP10
0000353d: ADD
0000353e: SWAP9
0000353f: SWAP1
00003540: SWAP3
00003541: ADD
00003542: SWAP2
00003543: PUSH1 0x01
00003545: ADD
00003546: PUSH2 0x34d4
00003549: JUMP
0000354a: JUMPDEST
0000354b: POP
0000354c: PUSH0
0000354d: MLOAD
0000354e: PUSH1 0x20
00003550: PUSH2 0x4d02
00003553: PUSH0
00003554: CODECOPY
00003555: PUSH0
00003556: MLOAD
00003557: SWAP1
00003558: PUSH0
00003559: MSTORE
0000355a: SLOAD
0000355b: PUSH1 0x01
0000355d: PUSH1 0x01
0000355f: PUSH1 0xa0
00003561: SHL
00003562: SUB
00003563: AND
00003564: CALLER
00003565: EQ
00003566: ISZERO
00003567: PUSH2 0x347e
0000356a: JUMP
0000356b: JUMPDEST
0000356c: SWAP1
0000356d: PUSH1 0x20
0000356f: DUP1
00003570: DUP4
00003571: MLOAD
00003572: SWAP3
00003573: DUP4
00003574: DUP2
00003575: MSTORE
00003576: ADD
00003577: SWAP3
00003578: ADD
00003579: SWAP1
0000357a: PUSH0
0000357b: JUMPDEST
0000357c: DUP2
0000357d: DUP2
0000357e: LT
0000357f: PUSH2 0x3588
00003582: JUMPI
00003583: POP
00003584: POP
00003585: POP
00003586: SWAP1
00003587: JUMP
00003588: JUMPDEST
00003589: DUP3
0000358a: MLOAD
0000358b: DUP5
0000358c: MSTORE
0000358d: PUSH1 0x20
0000358f: SWAP4
00003590: DUP5
00003591: ADD
00003592: SWAP4
00003593: SWAP1
00003594: SWAP3
00003595: ADD
00003596: SWAP2
00003597: PUSH1 0x01
00003599: ADD
0000359a: PUSH2 0x357b
0000359d: JUMP
0000359e: JUMPDEST
0000359f: SWAP1
000035a0: PUSH1 0x20
000035a2: DUP1
000035a3: DUP4
000035a4: MLOAD
000035a5: SWAP3
000035a6: DUP4
000035a7: DUP2
000035a8: MSTORE
000035a9: ADD
000035aa: SWAP3
000035ab: ADD
000035ac: SWAP1
000035ad: PUSH0
000035ae: JUMPDEST
000035af: DUP2
000035b0: DUP2
000035b1: LT
000035b2: PUSH2 0x35bb
000035b5: JUMPI
000035b6: POP
000035b7: POP
000035b8: POP
000035b9: SWAP1
000035ba: JUMP
000035bb: JUMPDEST
000035bc: SWAP1
000035bd: SWAP2
000035be: SWAP3
000035bf: PUSH1 0x20
000035c1: PUSH1 0x60
000035c3: PUSH1 0x01
000035c5: SWAP3
000035c6: PUSH1 0x40
000035c8: DUP8
000035c9: MLOAD
000035ca: DUP1
000035cb: MLOAD
000035cc: DUP4
000035cd: MSTORE
000035ce: DUP5
000035cf: DUP2
000035d0: ADD
000035d1: MLOAD
000035d2: DUP6
000035d3: DUP5
000035d4: ADD
000035d5: MSTORE
000035d6: ADD
000035d7: MLOAD
000035d8: PUSH1 0x40
000035da: DUP3
000035db: ADD
000035dc: MSTORE
000035dd: ADD
000035de: SWAP5
000035df: ADD
000035e0: SWAP2
000035e1: ADD
000035e2: SWAP2
000035e3: SWAP1
000035e4: SWAP2
000035e5: PUSH2 0x35ae
000035e8: JUMP
000035e9: JUMPDEST
000035ea: PUSH2 0x0fc7
000035ed: SWAP2
000035ee: PUSH1 0x20
000035f0: PUSH2 0x3602
000035f3: DUP4
000035f4: MLOAD
000035f5: PUSH1 0x40
000035f7: DUP5
000035f8: MSTORE
000035f9: PUSH1 0x40
000035fb: DUP5
000035fc: ADD
000035fd: SWAP1
000035fe: PUSH2 0x359e
00003601: JUMP
00003602: JUMPDEST
00003603: SWAP3
00003604: ADD
00003605: MLOAD
00003606: SWAP1
00003607: PUSH1 0x20
00003609: DUP2
0000360a: DUP5
0000360b: SUB
0000360c: SWAP2
0000360d: ADD
0000360e: MSTORE
0000360f: PUSH2 0x359e
00003612: JUMP
00003613: JUMPDEST
00003614: SWAP1
00003615: DUP1
00003616: PUSH1 0x20
00003618: DUP4
00003619: MLOAD
0000361a: SWAP2
0000361b: DUP3
0000361c: DUP2
0000361d: MSTORE
0000361e: ADD
0000361f: SWAP2
00003620: PUSH1 0x20
00003622: DUP1
00003623: DUP4
00003624: PUSH1 0x05
00003626: SHL
00003627: DUP4
00003628: ADD
00003629: ADD
0000362a: SWAP5
0000362b: ADD
0000362c: SWAP3
0000362d: PUSH0
0000362e: SWAP2
0000362f: JUMPDEST
00003630: DUP4
00003631: DUP4
00003632: LT
00003633: PUSH2 0x363e
00003636: JUMPI
00003637: POP
00003638: POP
00003639: POP
0000363a: POP
0000363b: POP
0000363c: SWAP1
0000363d: JUMP
0000363e: JUMPDEST
0000363f: SWAP1
00003640: SWAP2
00003641: SWAP3
00003642: SWAP4
00003643: SWAP5
00003644: PUSH1 0x20
00003646: DUP1
00003647: PUSH2 0x365c
0000364a: PUSH1 0x01
0000364c: SWAP4
0000364d: PUSH1 0x1f
0000364f: NOT
00003650: DUP7
00003651: DUP3
00003652: SUB
00003653: ADD
00003654: DUP8
00003655: MSTORE
00003656: DUP10
00003657: MLOAD
00003658: PUSH2 0x35e9
0000365b: JUMP
0000365c: JUMPDEST
0000365d: SWAP8
0000365e: ADD
0000365f: SWAP4
00003660: ADD
00003661: SWAP4
00003662: ADD
00003663: SWAP2
00003664: SWAP4
00003665: SWAP3
00003666: SWAP1
00003667: PUSH2 0x362f
0000366a: JUMP
0000366b: JUMPDEST
0000366c: PUSH1 0x01
0000366e: PUSH1 0x01
00003670: PUSH1 0xa0
00003672: SHL
00003673: SUB
00003674: AND
00003675: PUSH0
00003676: SWAP1
00003677: DUP2
00003678: MSTORE
00003679: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00
0000369a: PUSH1 0x20
0000369c: MSTORE
0000369d: PUSH1 0x40
0000369f: SWAP1
000036a0: KECCAK256
000036a1: SLOAD
000036a2: SWAP1
000036a3: JUMP
000036a4: JUMPDEST
000036a5: SWAP1
000036a6: DUP2
000036a7: PUSH1 0x20
000036a9: SWAP2
000036aa: SUB
000036ab: SLT
000036ac: PUSH2 0x05f1
000036af: JUMPI
000036b0: MLOAD
000036b1: SWAP1
000036b2: JUMP
000036b3: JUMPDEST
000036b4: PUSH1 0x01
000036b6: PUSH1 0x01
000036b8: PUSH1 0x01
000036ba: PUSH1 0x40
000036bc: SHL
000036bd: SUB
000036be: NOT
000036bf: PUSH0
000036c0: MLOAD
000036c1: PUSH1 0x20
000036c3: PUSH2 0x4de2
000036c6: PUSH0
000036c7: CODECOPY
000036c8: PUSH0
000036c9: MLOAD
000036ca: SWAP1
000036cb: PUSH0
000036cc: MSTORE
000036cd: SLOAD
000036ce: AND
000036cf: OR
000036d0: PUSH0
000036d1: MLOAD
000036d2: PUSH1 0x20
000036d4: PUSH2 0x4de2
000036d7: PUSH0
000036d8: CODECOPY
000036d9: PUSH0
000036da: MLOAD
000036db: SWAP1
000036dc: PUSH0
000036dd: MSTORE
000036de: SSTORE
000036df: JUMP
000036e0: JUMPDEST
000036e1: PUSH9 0x010000000000000000
000036eb: PUSH1 0xff
000036ed: PUSH1 0x40
000036ef: SHL
000036f0: NOT
000036f1: PUSH0
000036f2: MLOAD
000036f3: PUSH1 0x20
000036f5: PUSH2 0x4de2
000036f8: PUSH0
000036f9: CODECOPY
000036fa: PUSH0
000036fb: MLOAD
000036fc: SWAP1
000036fd: PUSH0
000036fe: MSTORE
000036ff: SLOAD
00003700: AND
00003701: OR
00003702: PUSH0
00003703: MLOAD
00003704: PUSH1 0x20
00003706: PUSH2 0x4de2
00003709: PUSH0
0000370a: CODECOPY
0000370b: PUSH0
0000370c: MLOAD
0000370d: SWAP1
0000370e: PUSH0
0000370f: MSTORE
00003710: SSTORE
00003711: JUMP
00003712: JUMPDEST
00003713: POP
00003714: PUSH0
00003715: MLOAD
00003716: PUSH1 0x20
00003718: PUSH2 0x4de2
0000371b: PUSH0
0000371c: CODECOPY
0000371d: PUSH0
0000371e: MLOAD
0000371f: SWAP1
00003720: PUSH0
00003721: MSTORE
00003722: SLOAD
00003723: PUSH1 0x01
00003725: PUSH1 0x01
00003727: PUSH1 0x40
00003729: SHL
0000372a: SUB
0000372b: PUSH1 0xff
0000372d: DUP3
0000372e: PUSH1 0x40
00003730: SHR
00003731: AND
00003732: ISZERO
00003733: SWAP2
00003734: AND
00003735: DUP1
00003736: ISZERO
00003737: SWAP1
00003738: DUP2
00003739: PUSH2 0x379f
0000373c: JUMPI
0000373d: JUMPDEST
0000373e: PUSH1 0x01
00003740: EQ
00003741: SWAP1
00003742: DUP2
00003743: PUSH2 0x3795
00003746: JUMPI
00003747: JUMPDEST
00003748: ISZERO
00003749: SWAP1
0000374a: DUP2
0000374b: PUSH2 0x378c
0000374e: JUMPI
0000374f: JUMPDEST
00003750: POP
00003751: PUSH2 0x377d
00003754: JUMPI
00003755: PUSH2 0x375c
00003758: PUSH2 0x36b3
0000375b: JUMP
0000375c: JUMPDEST
0000375d: PUSH2 0x3770
00003760: JUMPI
00003761: JUMPDEST
00003762: PUSH4 0x4b7395a7
00003767: PUSH1 0xe1
00003769: SHL
0000376a: PUSH0
0000376b: MSTORE
0000376c: PUSH1 0x04
0000376e: PUSH0
0000376f: REVERT
00003770: JUMPDEST
00003771: PUSH2 0x3778
00003774: PUSH2 0x36e0
00003777: JUMP
00003778: JUMPDEST
00003779: PUSH2 0x3761
0000377c: JUMP
0000377d: JUMPDEST
0000377e: PUSH4 0xf92ee8a9
00003783: PUSH1 0xe0
00003785: SHL
00003786: PUSH0
00003787: MSTORE
00003788: PUSH1 0x04
0000378a: PUSH0
0000378b: REVERT
0000378c: JUMPDEST
0000378d: SWAP1
0000378e: POP
0000378f: ISZERO
00003790: PUSH0
00003791: PUSH2 0x374f
00003794: JUMP
00003795: JUMPDEST
00003796: ADDRESS
00003797: EXTCODESIZE
00003798: ISZERO
00003799: SWAP2
0000379a: POP
0000379b: PUSH2 0x3747
0000379e: JUMP
0000379f: JUMPDEST
000037a0: DUP3
000037a1: SWAP2
000037a2: POP
000037a3: PUSH2 0x373d
000037a6: JUMP
000037a7: JUMPDEST
000037a8: PUSH0
000037a9: MLOAD
000037aa: PUSH1 0x20
000037ac: PUSH2 0x4de2
000037af: PUSH0
000037b0: CODECOPY
000037b1: PUSH0
000037b2: MLOAD
000037b3: SWAP1
000037b4: PUSH0
000037b5: MSTORE
000037b6: SLOAD
000037b7: SWAP1
000037b8: PUSH1 0x01
000037ba: PUSH1 0x01
000037bc: PUSH1 0x40
000037be: SHL
000037bf: SUB
000037c0: PUSH2 0x37d8
000037c3: PUSH1 0x40
000037c5: DUP5
000037c6: SWAP1
000037c7: SHR
000037c8: PUSH1 0xff
000037ca: AND
000037cb: ISZERO
000037cc: SWAP4
000037cd: PUSH1 0x01
000037cf: PUSH1 0x01
000037d1: PUSH1 0x40
000037d3: SHL
000037d4: SUB
000037d5: AND
000037d6: SWAP1
000037d7: JUMP
000037d8: JUMPDEST
000037d9: AND
000037da: DUP1
000037db: ISZERO
000037dc: SWAP1
000037dd: DUP2
000037de: PUSH2 0x3893
000037e1: JUMPI
000037e2: JUMPDEST
000037e3: PUSH1 0x01
000037e5: EQ
000037e6: SWAP1
000037e7: DUP2
000037e8: PUSH2 0x3889
000037eb: JUMPI
000037ec: JUMPDEST
000037ed: ISZERO
000037ee: SWAP1
000037ef: DUP2
000037f0: PUSH2 0x3880
000037f3: JUMPI
000037f4: JUMPDEST
000037f5: POP
000037f6: PUSH2 0x377d
000037f9: JUMPI
000037fa: PUSH2 0x380f
000037fd: SWAP1
000037fe: DUP3
000037ff: PUSH2 0x3806
00003802: PUSH2 0x36b3
00003805: JUMP
00003806: JUMPDEST
00003807: PUSH2 0x3873
0000380a: JUMPI
0000380b: PUSH2 0x389b
0000380e: JUMP
0000380f: JUMPDEST
00003810: PUSH2 0x3815
00003813: JUMPI
00003814: JUMP
00003815: JUMPDEST
00003816: PUSH2 0x383f
00003819: PUSH1 0xff
0000381b: PUSH1 0x40
0000381d: SHL
0000381e: NOT
0000381f: PUSH0
00003820: MLOAD
00003821: PUSH1 0x20
00003823: PUSH2 0x4de2
00003826: PUSH0
00003827: CODECOPY
00003828: PUSH0
00003829: MLOAD
0000382a: SWAP1
0000382b: PUSH0
0000382c: MSTORE
0000382d: SLOAD
0000382e: AND
0000382f: PUSH0
00003830: MLOAD
00003831: PUSH1 0x20
00003833: PUSH2 0x4de2
00003836: PUSH0
00003837: CODECOPY
00003838: PUSH0
00003839: MLOAD
0000383a: SWAP1
0000383b: PUSH0
0000383c: MSTORE
0000383d: SSTORE
0000383e: JUMP
0000383f: JUMPDEST
00003840: PUSH1 0x40
00003842: MLOAD
00003843: PUSH1 0x01
00003845: DUP2
00003846: MSTORE
00003847: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
00003868: SWAP1
00003869: DUP1
0000386a: PUSH1 0x20
0000386c: DUP2
0000386d: ADD
0000386e: JUMPDEST
0000386f: SUB
00003870: SWAP1
00003871: LOG1
00003872: JUMP
00003873: JUMPDEST
00003874: PUSH2 0x387b
00003877: PUSH2 0x36e0
0000387a: JUMP
0000387b: JUMPDEST
0000387c: PUSH2 0x389b
0000387f: JUMP
00003880: JUMPDEST
00003881: SWAP1
00003882: POP
00003883: ISZERO
00003884: PUSH0
00003885: PUSH2 0x37f4
00003888: JUMP
00003889: JUMPDEST
0000388a: ADDRESS
0000388b: EXTCODESIZE
0000388c: ISZERO
0000388d: SWAP2
0000388e: POP
0000388f: PUSH2 0x37ec
00003892: JUMP
00003893: JUMPDEST
00003894: DUP4
00003895: SWAP2
00003896: POP
00003897: PUSH2 0x37e2
0000389a: JUMP
0000389b: JUMPDEST
0000389c: PUSH2 0x39a9
0000389f: PUSH1 0x20
000038a1: PUSH2 0x0753
000038a4: SWAP3
000038a5: PUSH2 0x38b7
000038a8: PUSH1 0xc0
000038aa: DUP3
000038ab: ADD
000038ac: MLOAD
000038ad: PUSH1 0xe0
000038af: DUP4
000038b0: ADD
000038b1: MLOAD
000038b2: SWAP1
000038b3: PUSH2 0x449b
000038b6: JUMP
000038b7: JUMPDEST
000038b8: DUP1
000038b9: MLOAD
000038ba: PUSH2 0x38cb
000038bd: SWAP1
000038be: PUSH1 0x01
000038c0: PUSH1 0x01
000038c2: PUSH1 0xa0
000038c4: SHL
000038c5: SUB
000038c6: AND
000038c7: PUSH2 0x4784
000038ca: JUMP
000038cb: JUMPDEST
000038cc: PUSH1 0x80
000038ce: DUP2
000038cf: ADD
000038d0: MLOAD
000038d1: PUSH2 0x38e2
000038d4: SWAP1
000038d5: PUSH1 0x01
000038d7: PUSH1 0x01
000038d9: PUSH1 0xa0
000038db: SHL
000038dc: SUB
000038dd: AND
000038de: PUSH2 0x47b7
000038e1: JUMP
000038e2: JUMPDEST
000038e3: PUSH2 0x38ea
000038e6: PUSH2 0x4813
000038e9: JUMP
000038ea: JUMPDEST
000038eb: PUSH2 0x38f2
000038ee: PUSH2 0x482e
000038f1: JUMP
000038f2: JUMPDEST
000038f3: PUSH2 0x3926
000038f6: PUSH2 0x2c19
000038f9: PUSH2 0x0100
000038fc: DUP4
000038fd: ADD
000038fe: PUSH2 0x3919
00003901: PUSH2 0x3914
00003904: PUSH2 0x1ddd
00003907: DUP4
00003908: MLOAD
00003909: PUSH1 0x01
0000390b: PUSH1 0x01
0000390d: PUSH1 0x40
0000390f: SHL
00003910: SUB
00003911: AND
00003912: SWAP1
00003913: JUMP
00003914: JUMPDEST
00003915: PUSH2 0x485a
00003918: JUMP
00003919: JUMPDEST
0000391a: MLOAD
0000391b: PUSH1 0x01
0000391d: PUSH1 0x01
0000391f: PUSH1 0x40
00003921: SHL
00003922: SUB
00003923: AND
00003924: SWAP1
00003925: JUMP
00003926: JUMPDEST
00003927: PUSH2 0x393d
0000392a: PUSH1 0x60
0000392c: DUP3
0000392d: ADD
0000392e: PUSH2 0x3937
00003931: DUP2
00003932: MLOAD
00003933: PUSH2 0x4359
00003936: JUMP
00003937: JUMPDEST
00003938: MLOAD
00003939: PUSH2 0x438c
0000393c: JUMP
0000393d: JUMPDEST
0000393e: PUSH2 0x395a
00003941: PUSH2 0x3955
00003944: PUSH2 0x0120
00003947: DUP4
00003948: ADD
00003949: MLOAD
0000394a: PUSH1 0x01
0000394c: PUSH1 0x01
0000394e: PUSH1 0x40
00003950: SHL
00003951: SUB
00003952: AND
00003953: SWAP1
00003954: JUMP
00003955: JUMPDEST
00003956: PUSH2 0x3f64
00003959: JUMP
0000395a: JUMPDEST
0000395b: PUSH2 0x3977
0000395e: PUSH2 0x3972
00003961: PUSH2 0x0140
00003964: DUP4
00003965: ADD
00003966: MLOAD
00003967: PUSH1 0x01
00003969: PUSH1 0x01
0000396b: PUSH1 0x40
0000396d: SHL
0000396e: SUB
0000396f: AND
00003970: SWAP1
00003971: JUMP
00003972: JUMPDEST
00003973: PUSH2 0x4108
00003976: JUMP
00003977: JUMPDEST
00003978: PUSH1 0x40
0000397a: DUP2
0000397b: ADD
0000397c: MLOAD
0000397d: PUSH2 0x398e
00003980: SWAP1
00003981: PUSH1 0x01
00003983: PUSH1 0x01
00003985: PUSH1 0xa0
00003987: SHL
00003988: SUB
00003989: AND
0000398a: PUSH2 0x444a
0000398d: JUMP
0000398e: JUMPDEST
0000398f: PUSH2 0x399b
00003992: PUSH1 0xa0
00003994: DUP3
00003995: ADD
00003996: MLOAD
00003997: PUSH2 0x43c2
0000399a: JUMP
0000399b: JUMPDEST
0000399c: ADD
0000399d: MLOAD
0000399e: PUSH1 0x01
000039a0: PUSH1 0x01
000039a2: PUSH1 0xa0
000039a4: SHL
000039a5: SUB
000039a6: AND
000039a7: SWAP1
000039a8: JUMP
000039a9: JUMPDEST
000039aa: PUSH2 0x48e2
000039ad: JUMP
000039ae: JUMPDEST
000039af: PUSH4 0x580b4feb
000039b4: PUSH1 0xe1
000039b6: SHL
000039b7: PUSH0
000039b8: MSTORE
000039b9: PUSH1 0x04
000039bb: PUSH0
000039bc: REVERT
000039bd: JUMPDEST
000039be: PUSH2 0x39d2
000039c1: PUSH2 0x1ddd
000039c4: PUSH1 0x14
000039c6: SLOAD
000039c7: PUSH1 0x01
000039c9: PUSH1 0x01
000039cb: PUSH1 0x40
000039cd: SHL
000039ce: SUB
000039cf: AND
000039d0: SWAP1
000039d1: JUMP
000039d2: JUMPDEST
000039d3: PUSH1 0x01
000039d5: PUSH1 0x01
000039d7: PUSH1 0xb8
000039d9: SHL
000039da: SUB
000039db: DUP3
000039dc: AND
000039dd: SWAP1
000039de: DUP1
000039df: DUP3
000039e0: EQ
000039e1: PUSH2 0x0a28
000039e4: JUMPI
000039e5: PUSH1 0x01
000039e7: PUSH1 0x01
000039e9: PUSH1 0x40
000039eb: SHL
000039ec: SUB
000039ed: PUSH2 0x39f8
000039f0: PUSH1 0x06
000039f2: SLOAD
000039f3: PUSH1 0xc0
000039f5: SHR
000039f6: SWAP1
000039f7: JUMP
000039f8: JUMPDEST
000039f9: AND
000039fa: PUSH2 0x0a19
000039fd: JUMPI
000039fe: PUSH2 0x3a06
00003a01: DUP3
00003a02: PUSH2 0x485a
00003a05: JUMP
00003a06: JUMPDEST
00003a07: DUP2
00003a08: LT
00003a09: ISZERO
00003a0a: PUSH2 0x3a54
00003a0d: JUMPI
00003a0e: PUSH2 0x2c19
00003a11: PUSH2 0x3a19
00003a14: SWAP2
00003a15: PUSH2 0x492e
00003a18: JUMP
00003a19: JUMPDEST
00003a1a: PUSH1 0x40
00003a1c: MLOAD
00003a1d: PUSH1 0x01
00003a1f: PUSH1 0x01
00003a21: PUSH1 0xb8
00003a23: SHL
00003a24: SUB
00003a25: SWAP2
00003a26: SWAP1
00003a27: SWAP2
00003a28: AND
00003a29: DUP2
00003a2a: MSTORE
00003a2b: CALLER
00003a2c: SWAP1
00003a2d: PUSH32 0x20affe2401825617c69366f8c3a3493d9822d1021d0b3023c4e77ea5b3d0fbc5
00003a4e: SWAP1
00003a4f: PUSH1 0x20
00003a51: SWAP1
00003a52: LOG2
00003a53: JUMP
00003a54: JUMPDEST
00003a55: POP
00003a56: PUSH32 0x7424f23ff556b5fe97d2f5a4b22548445b948e612029151105b441519f1bfb99
00003a77: SWAP1
00003a78: PUSH2 0x3a83
00003a7b: PUSH1 0x08
00003a7d: SLOAD
00003a7e: DUP3
00003a7f: PUSH2 0x3eb6
00003a82: JUMP
00003a83: JUMPDEST
00003a84: PUSH1 0x06
00003a86: SLOAD
00003a87: PUSH1 0xc0
00003a89: SHR
00003a8a: PUSH1 0x40
00003a8c: DUP1
00003a8d: MLOAD
00003a8e: PUSH1 0x01
00003a90: PUSH1 0x01
00003a92: PUSH1 0xb8
00003a94: SHL
00003a95: SUB
00003a96: SWAP1
00003a97: SWAP4
00003a98: AND
00003a99: DUP4
00003a9a: MSTORE
00003a9b: PUSH1 0x01
00003a9d: PUSH1 0x01
00003a9f: PUSH1 0x40
00003aa1: SHL
00003aa2: SUB
00003aa3: SWAP1
00003aa4: SWAP2
00003aa5: AND
00003aa6: PUSH1 0x20
00003aa8: DUP4
00003aa9: ADD
00003aaa: MSTORE
00003aab: DUP2
00003aac: SWAP1
00003aad: DUP2
00003aae: ADD
00003aaf: PUSH2 0x386e
00003ab2: JUMP
00003ab3: JUMPDEST
00003ab4: SWAP1
00003ab5: DUP2
00003ab6: PUSH1 0x20
00003ab8: SWAP2
00003ab9: SUB
00003aba: SLT
00003abb: PUSH2 0x05f1
00003abe: JUMPI
00003abf: MLOAD
00003ac0: PUSH2 0x0fc7
00003ac3: DUP2
00003ac4: PUSH2 0x0737
00003ac7: JUMP
00003ac8: JUMPDEST
00003ac9: PUSH1 0xff
00003acb: PUSH0
00003acc: MLOAD
00003acd: PUSH1 0x20
00003acf: PUSH2 0x4da2
00003ad2: PUSH0
00003ad3: CODECOPY
00003ad4: PUSH0
00003ad5: MLOAD
00003ad6: SWAP1
00003ad7: PUSH0
00003ad8: MSTORE
00003ad9: SLOAD
00003ada: AND
00003adb: PUSH2 0x3462
00003ade: JUMPI
00003adf: PUSH2 0x0fc7
00003ae2: PUSH2 0x3ae9
00003ae5: PUSH2 0x3411
00003ae8: JUMP
00003ae9: JUMPDEST
00003aea: PUSH2 0x3d5c
00003aed: JUMP
00003aee: JUMPDEST
00003aef: PUSH1 0x01
00003af1: PUSH1 0x01
00003af3: PUSH1 0xa0
00003af5: SHL
00003af6: SUB
00003af7: AND
00003af8: PUSH0
00003af9: SWAP1
00003afa: DUP2
00003afb: MSTORE
00003afc: PUSH32 0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00
00003b1d: PUSH1 0x20
00003b1f: MSTORE
00003b20: PUSH1 0x40
00003b22: SWAP1
00003b23: KECCAK256
00003b24: SLOAD
00003b25: PUSH2 0x0fc7
00003b28: SWAP1
00003b29: PUSH2 0x3c91
00003b2c: JUMP
00003b2d: JUMPDEST
00003b2e: SWAP2
00003b2f: SWAP1
00003b30: DUP3
00003b31: ADD
00003b32: DUP1
00003b33: SWAP3
00003b34: GT
00003b35: PUSH2 0x0c5f
00003b38: JUMPI
00003b39: JUMP
00003b3a: JUMPDEST
00003b3b: PUSH2 0x3b43
00003b3e: TIMESTAMP
00003b3f: PUSH2 0x492e
00003b42: JUMP
00003b43: JUMPDEST
00003b44: PUSH1 0x14
00003b46: SLOAD
00003b47: PUSH2 0x3b5b
00003b4a: SWAP1
00003b4b: PUSH1 0x40
00003b4d: SHR
00003b4e: PUSH1 0x01
00003b50: PUSH1 0x01
00003b52: PUSH1 0x40
00003b54: SHL
00003b55: SUB
00003b56: AND
00003b57: PUSH2 0x1ddd
00003b5a: JUMP
00003b5b: JUMPDEST
00003b5c: SWAP2
00003b5d: DUP3
00003b5e: ISZERO
00003b5f: PUSH2 0x3c84
00003b62: JUMPI
00003b63: PUSH0
00003b64: DUP1
00003b65: MSTORE
00003b66: PUSH1 0x10
00003b68: PUSH1 0x20
00003b6a: MSTORE
00003b6b: SWAP1
00003b6c: SWAP2
00003b6d: PUSH2 0x3b9e
00003b70: PUSH32 0x6e0956cda88cad152e89927e53611735b61a5c762d1428573c6931b0a5efcb01
00003b91: JUMPDEST
00003b92: SLOAD
00003b93: PUSH1 0x01
00003b95: PUSH1 0x01
00003b97: PUSH1 0x40
00003b99: SHL
00003b9a: SUB
00003b9b: AND
00003b9c: SWAP1
00003b9d: JUMP
00003b9e: JUMPDEST
00003b9f: SWAP3
00003ba0: PUSH1 0x0d
00003ba2: SLOAD
00003ba3: SWAP2
00003ba4: PUSH1 0x0b
00003ba6: SLOAD
00003ba7: SWAP1
00003ba8: PUSH1 0x01
00003baa: PUSH1 0x01
00003bac: PUSH1 0x40
00003bae: SHL
00003baf: SUB
00003bb0: PUSH1 0x0c
00003bb2: SLOAD
00003bb3: SWAP4
00003bb4: AND
00003bb5: SWAP4
00003bb6: JUMPDEST
00003bb7: PUSH1 0x01
00003bb9: PUSH1 0x01
00003bbb: PUSH1 0x40
00003bbd: SHL
00003bbe: SUB
00003bbf: DUP8
00003bc0: AND
00003bc1: SWAP2
00003bc2: DUP3
00003bc3: DUP7
00003bc4: LT
00003bc5: ISZERO
00003bc6: DUP1
00003bc7: PUSH2 0x3c7b
00003bca: JUMPI
00003bcb: JUMPDEST
00003bcc: ISZERO
00003bcd: PUSH2 0x3c3e
00003bd0: JUMPI
00003bd1: SWAP2
00003bd2: PUSH2 0x3c31
00003bd5: PUSH2 0x3b91
00003bd8: PUSH2 0x3c2b
00003bdb: DUP5
00003bdc: PUSH2 0x3c24
00003bdf: PUSH2 0x3c0c
00003be2: PUSH2 0x3bf1
00003be5: PUSH2 0x3c37
00003be8: SWAP9
00003be9: DUP16
00003bea: SWAP11
00003beb: DUP10
00003bec: SWAP1
00003bed: PUSH2 0x495f
00003bf0: JUMP
00003bf1: JUMPDEST
00003bf2: SWAP6
00003bf3: SWAP1
00003bf4: SWAP8
00003bf5: SWAP10
00003bf6: PUSH1 0x01
00003bf8: PUSH1 0x01
00003bfa: PUSH1 0x40
00003bfc: SHL
00003bfd: SUB
00003bfe: AND
00003bff: PUSH0
00003c00: MSTORE
00003c01: PUSH1 0x10
00003c03: PUSH1 0x20
00003c05: MSTORE
00003c06: PUSH1 0x40
00003c08: PUSH0
00003c09: KECCAK256
00003c0a: SWAP1
00003c0b: JUMP
00003c0c: JUMPDEST
00003c0d: SWAP13
00003c0e: PUSH1 0x01
00003c10: PUSH1 0x01
00003c12: PUSH1 0x40
00003c14: SHL
00003c15: SUB
00003c16: AND
00003c17: PUSH0
00003c18: MSTORE
00003c19: PUSH1 0x11
00003c1b: PUSH1 0x20
00003c1d: MSTORE
00003c1e: PUSH1 0x40
00003c20: PUSH0
00003c21: KECCAK256
00003c22: SWAP1
00003c23: JUMP
00003c24: JUMPDEST
00003c25: SLOAD
00003c26: SWAP1
00003c27: PUSH2 0x33b6
00003c2a: JUMP
00003c2b: JUMPDEST
00003c2c: SWAP7
00003c2d: PUSH2 0x3b2d
00003c30: JUMP
00003c31: JUMPDEST
00003c32: SWAP4
00003c33: PUSH2 0x3b2d
00003c36: JUMP
00003c37: JUMPDEST
00003c38: SWAP2
00003c39: SWAP3
00003c3a: PUSH2 0x3bb6
00003c3d: JUMP
00003c3e: JUMPDEST
00003c3f: SWAP2
00003c40: POP
00003c41: SWAP3
00003c42: SWAP5
00003c43: SWAP4
00003c44: SWAP2
00003c45: SWAP6
00003c46: PUSH1 0x01
00003c48: PUSH1 0x01
00003c4a: PUSH1 0x40
00003c4c: SHL
00003c4d: SUB
00003c4e: AND
00003c4f: PUSH2 0x3c57
00003c52: JUMPI
00003c53: POP
00003c54: POP
00003c55: POP
00003c56: JUMP
00003c57: JUMPDEST
00003c58: PUSH2 0x3c78
00003c5b: SWAP4
00003c5c: SWAP6
00003c5d: SWAP5
00003c5e: SWAP3
00003c5f: PUSH2 0x3c72
00003c62: SWAP3
00003c63: PUSH2 0x3c6b
00003c66: SWAP3
00003c67: PUSH2 0x495f
00003c6a: JUMP
00003c6b: JUMPDEST
00003c6c: SWAP1
00003c6d: SWAP3
00003c6e: PUSH2 0x3b2d
00003c71: JUMP
00003c72: JUMPDEST
00003c73: SWAP3
00003c74: PUSH2 0x3b2d
00003c77: JUMP
00003c78: JUMPDEST
00003c79: SWAP2
00003c7a: JUMP
00003c7b: JUMPDEST
00003c7c: POP
00003c7d: DUP3
00003c7e: ISZERO
00003c7f: ISZERO
00003c80: PUSH2 0x3bcb
00003c83: JUMP
00003c84: JUMPDEST
00003c85: SWAP2
00003c86: POP
00003c87: POP
00003c88: PUSH1 0x0b
00003c8a: SLOAD
00003c8b: SWAP1
00003c8c: PUSH1 0x0c
00003c8e: SLOAD
00003c8f: SWAP1
00003c90: JUMP
00003c91: JUMPDEST
00003c92: PUSH7 0x2386f26fc10000
00003c9a: PUSH2 0x3ca1
00003c9d: PUSH2 0x3b3a
00003ca0: JUMP
00003ca1: JUMPDEST
00003ca2: POP
00003ca3: DIV
00003ca4: SWAP1
00003ca5: PUSH1 0x01
00003ca7: DUP3
00003ca8: ADD
00003ca9: DUP1
00003caa: SWAP3
00003cab: GT
00003cac: PUSH2 0x0c5f
00003caf: JUMPI
00003cb0: PUSH0
00003cb1: MLOAD
00003cb2: PUSH1 0x20
00003cb4: PUSH2 0x4d22
00003cb7: PUSH0
00003cb8: CODECOPY
00003cb9: PUSH0
00003cba: MLOAD
00003cbb: SWAP1
00003cbc: PUSH0
00003cbd: MSTORE
00003cbe: SLOAD
00003cbf: PUSH1 0x01
00003cc1: DUP2
00003cc2: ADD
00003cc3: DUP1
00003cc4: SWAP2
00003cc5: GT
00003cc6: PUSH2 0x0c5f
00003cc9: JUMPI
00003cca: PUSH2 0x0fc7
00003ccd: SWAP3
00003cce: PUSH0
00003ccf: SWAP3
00003cd0: PUSH2 0x49a4
00003cd3: JUMP
00003cd4: JUMPDEST
00003cd5: PUSH7 0x2386f26fc10000
00003cdd: PUSH2 0x3ce4
00003ce0: PUSH2 0x3b3a
00003ce3: JUMP
00003ce4: JUMPDEST
00003ce5: POP
00003ce6: DIV
00003ce7: SWAP1
00003ce8: PUSH1 0x01
00003cea: DUP3
00003ceb: ADD
00003cec: DUP1
00003ced: SWAP3
00003cee: GT
00003cef: PUSH2 0x0c5f
00003cf2: JUMPI
00003cf3: PUSH0
00003cf4: MLOAD
00003cf5: PUSH1 0x20
00003cf7: PUSH2 0x4d22
00003cfa: PUSH0
00003cfb: CODECOPY
00003cfc: PUSH0
00003cfd: MLOAD
00003cfe: SWAP1
00003cff: PUSH0
00003d00: MSTORE
00003d01: SLOAD
00003d02: PUSH1 0x01
00003d04: DUP2
00003d05: ADD
00003d06: DUP1
00003d07: SWAP2
00003d08: GT
00003d09: PUSH2 0x0c5f
00003d0c: JUMPI
00003d0d: PUSH2 0x0fc7
00003d10: SWAP3
00003d11: PUSH1 0x01
00003d13: SWAP3
00003d14: PUSH2 0x49a4
00003d17: JUMP
00003d18: JUMPDEST
00003d19: PUSH0
00003d1a: MLOAD
00003d1b: PUSH1 0x20
00003d1d: PUSH2 0x4d22
00003d20: PUSH0
00003d21: CODECOPY
00003d22: PUSH0
00003d23: MLOAD
00003d24: SWAP1
00003d25: PUSH0
00003d26: MSTORE
00003d27: SLOAD
00003d28: SWAP1
00003d29: PUSH1 0x01
00003d2b: DUP3
00003d2c: ADD
00003d2d: DUP1
00003d2e: SWAP3
00003d2f: GT
00003d30: PUSH2 0x0c5f
00003d33: JUMPI
00003d34: PUSH7 0x2386f26fc10000
00003d3c: PUSH2 0x3d43
00003d3f: PUSH2 0x3b3a
00003d42: JUMP
00003d43: JUMPDEST
00003d44: POP
00003d45: DIV
00003d46: PUSH1 0x01
00003d48: DUP2
00003d49: ADD
00003d4a: DUP1
00003d4b: SWAP2
00003d4c: GT
00003d4d: PUSH2 0x0c5f
00003d50: JUMPI
00003d51: PUSH2 0x0fc7
00003d54: SWAP3
00003d55: PUSH1 0x01
00003d57: SWAP3
00003d58: PUSH2 0x49a4
00003d5b: JUMP
00003d5c: JUMPDEST
00003d5d: PUSH0
00003d5e: MLOAD
00003d5f: PUSH1 0x20
00003d61: PUSH2 0x4d22
00003d64: PUSH0
00003d65: CODECOPY
00003d66: PUSH0
00003d67: MLOAD
00003d68: SWAP1
00003d69: PUSH0
00003d6a: MSTORE
00003d6b: SLOAD
00003d6c: SWAP1
00003d6d: PUSH1 0x01
00003d6f: DUP3
00003d70: ADD
00003d71: DUP1
00003d72: SWAP3
00003d73: GT
00003d74: PUSH2 0x0c5f
00003d77: JUMPI
00003d78: PUSH7 0x2386f26fc10000
00003d80: PUSH2 0x3d87
00003d83: PUSH2 0x3b3a
00003d86: JUMP
00003d87: JUMPDEST
00003d88: POP
00003d89: DIV
00003d8a: PUSH1 0x01
00003d8c: DUP2
00003d8d: ADD
00003d8e: DUP1
00003d8f: SWAP2
00003d90: GT
00003d91: PUSH2 0x0c5f
00003d94: JUMPI
00003d95: PUSH2 0x0fc7
00003d98: SWAP3
00003d99: PUSH0
00003d9a: SWAP3
00003d9b: PUSH2 0x49a4
00003d9e: JUMP
00003d9f: JUMPDEST
00003da0: DUP1
00003da1: SLOAD
00003da2: PUSH1 0x01
00003da4: PUSH1 0x01
00003da6: PUSH1 0xc0
00003da8: SHL
00003da9: SUB
00003daa: NOT
00003dab: AND
00003dac: DUP2
00003dad: SSTORE
00003dae: TIMESTAMP
00003daf: SWAP2
00003db0: DUP3
00003db1: ADD
00003db2: SWAP2
00003db3: DUP3
00003db4: LT
00003db5: PUSH2 0x0c5f
00003db8: JUMPI
00003db9: DUP1
00003dba: SLOAD
00003dbb: PUSH1 0x01
00003dbd: PUSH1 0x01
00003dbf: PUSH1 0xc0
00003dc1: SHL
00003dc2: SUB
00003dc3: AND
00003dc4: PUSH1 0xc0
00003dc6: SWAP3
00003dc7: SWAP1
00003dc8: SWAP3
00003dc9: SHL
00003dca: PUSH1 0x01
00003dcc: PUSH1 0x01
00003dce: PUSH1 0xc0
00003dd0: SHL
00003dd1: SUB
00003dd2: NOT
00003dd3: AND
00003dd4: SWAP2
00003dd5: SWAP1
00003dd6: SWAP2
00003dd7: OR
00003dd8: SWAP1
00003dd9: SSTORE
00003dda: JUMP
00003ddb: JUMPDEST
00003ddc: PUSH1 0x01
00003dde: DUP1
00003ddf: PUSH1 0xb8
00003de1: SHL
00003de2: SUB
00003de3: AND
00003de4: PUSH1 0x01
00003de6: PUSH1 0x01
00003de8: PUSH1 0x40
00003dea: SHL
00003deb: SUB
00003dec: PUSH1 0xc0
00003dee: SHL
00003def: PUSH1 0x05
00003df1: SLOAD
00003df2: AND
00003df3: OR
00003df4: PUSH1 0x05
00003df6: SSTORE
00003df7: TIMESTAMP
00003df8: ADD
00003df9: DUP1
00003dfa: TIMESTAMP
00003dfb: GT
00003dfc: PUSH2 0x0c5f
00003dff: JUMPI
00003e00: PUSH1 0x05
00003e02: DUP1
00003e03: SLOAD
00003e04: PUSH1 0x01
00003e06: PUSH1 0x01
00003e08: PUSH1 0xc0
00003e0a: SHL
00003e0b: SUB
00003e0c: AND
00003e0d: PUSH1 0xc0
00003e0f: SWAP3
00003e10: SWAP1
00003e11: SWAP3
00003e12: SHL
00003e13: PUSH1 0x01
00003e15: PUSH1 0x01
00003e17: PUSH1 0xc0
00003e19: SHL
00003e1a: SUB
00003e1b: NOT
00003e1c: AND
00003e1d: SWAP2
00003e1e: SWAP1
00003e1f: SWAP2
00003e20: OR
00003e21: SWAP1
00003e22: SSTORE
00003e23: JUMP
00003e24: JUMPDEST
00003e25: PUSH1 0x01
00003e27: DUP1
00003e28: PUSH1 0xb8
00003e2a: SHL
00003e2b: SUB
00003e2c: AND
00003e2d: PUSH1 0x01
00003e2f: PUSH1 0x01
00003e31: PUSH1 0x40
00003e33: SHL
00003e34: SUB
00003e35: PUSH1 0xc0
00003e37: SHL
00003e38: PUSH1 0x12
00003e3a: SLOAD
00003e3b: AND
00003e3c: OR
00003e3d: PUSH1 0x12
00003e3f: SSTORE
00003e40: TIMESTAMP
00003e41: ADD
00003e42: DUP1
00003e43: TIMESTAMP
00003e44: GT
00003e45: PUSH2 0x0c5f
00003e48: JUMPI
00003e49: PUSH1 0x12
00003e4b: DUP1
00003e4c: SLOAD
00003e4d: PUSH1 0x01
00003e4f: PUSH1 0x01
00003e51: PUSH1 0xc0
00003e53: SHL
00003e54: SUB
00003e55: AND
00003e56: PUSH1 0xc0
00003e58: SWAP3
00003e59: SWAP1
00003e5a: SWAP3
00003e5b: SHL
00003e5c: PUSH1 0x01
00003e5e: PUSH1 0x01
00003e60: PUSH1 0xc0
00003e62: SHL
00003e63: SUB
00003e64: NOT
00003e65: AND
00003e66: SWAP2
00003e67: SWAP1
00003e68: SWAP2
00003e69: OR
00003e6a: SWAP1
00003e6b: SSTORE
00003e6c: JUMP
00003e6d: JUMPDEST
00003e6e: PUSH1 0x01
00003e70: DUP1
00003e71: PUSH1 0xb8
00003e73: SHL
00003e74: SUB
00003e75: AND
00003e76: PUSH1 0x01
00003e78: PUSH1 0x01
00003e7a: PUSH1 0x40
00003e7c: SHL
00003e7d: SUB
00003e7e: PUSH1 0xc0
00003e80: SHL
00003e81: PUSH1 0x13
00003e83: SLOAD
00003e84: AND
00003e85: OR
00003e86: PUSH1 0x13
00003e88: SSTORE
00003e89: TIMESTAMP
00003e8a: ADD
00003e8b: DUP1
00003e8c: TIMESTAMP
00003e8d: GT
00003e8e: PUSH2 0x0c5f
00003e91: JUMPI
00003e92: PUSH1 0x13
00003e94: DUP1
00003e95: SLOAD
00003e96: PUSH1 0x01
00003e98: PUSH1 0x01
00003e9a: PUSH1 0xc0
00003e9c: SHL
00003e9d: SUB
00003e9e: AND
00003e9f: PUSH1 0xc0
00003ea1: SWAP3
00003ea2: SWAP1
00003ea3: SWAP3
00003ea4: SHL
00003ea5: PUSH1 0x01
00003ea7: PUSH1 0x01
00003ea9: PUSH1 0xc0
00003eab: SHL
00003eac: SUB
00003ead: NOT
00003eae: AND
00003eaf: SWAP2
00003eb0: SWAP1
00003eb1: SWAP2
00003eb2: OR
00003eb3: SWAP1
00003eb4: SSTORE
00003eb5: JUMP
00003eb6: JUMPDEST
00003eb7: PUSH1 0x01
00003eb9: DUP1
00003eba: PUSH1 0xb8
00003ebc: SHL
00003ebd: SUB
00003ebe: AND
00003ebf: PUSH1 0x01
00003ec1: PUSH1 0x01
00003ec3: PUSH1 0x40
00003ec5: SHL
00003ec6: SUB
00003ec7: PUSH1 0xc0
00003ec9: SHL
00003eca: PUSH1 0x06
00003ecc: SLOAD
00003ecd: AND
00003ece: OR
00003ecf: PUSH1 0x06
00003ed1: SSTORE
00003ed2: TIMESTAMP
00003ed3: ADD
00003ed4: DUP1
00003ed5: TIMESTAMP
00003ed6: GT
00003ed7: PUSH2 0x0c5f
00003eda: JUMPI
00003edb: PUSH1 0x06
00003edd: DUP1
00003ede: SLOAD
00003edf: PUSH1 0x01
00003ee1: PUSH1 0x01
00003ee3: PUSH1 0xc0
00003ee5: SHL
00003ee6: SUB
00003ee7: AND
00003ee8: PUSH1 0xc0
00003eea: SWAP3
00003eeb: SWAP1
00003eec: SWAP3
00003eed: SHL
00003eee: PUSH1 0x01
00003ef0: PUSH1 0x01
00003ef2: PUSH1 0xc0
00003ef4: SHL
00003ef5: SUB
00003ef6: NOT
00003ef7: AND
00003ef8: SWAP2
00003ef9: SWAP1
00003efa: SWAP2
00003efb: OR
00003efc: SWAP1
00003efd: SSTORE
00003efe: JUMP
00003eff: JUMPDEST
00003f00: PUSH1 0x01
00003f02: PUSH1 0x01
00003f04: PUSH1 0xa0
00003f06: SHL
00003f07: SUB
00003f08: AND
00003f09: PUSH0
00003f0a: DUP2
00003f0b: DUP2
00003f0c: MSTORE
00003f0d: PUSH1 0x03
00003f0f: PUSH1 0x20
00003f11: MSTORE
00003f12: PUSH1 0x40
00003f14: SWAP1
00003f15: KECCAK256
00003f16: DUP1
00003f17: SLOAD
00003f18: PUSH1 0xff
00003f1a: NOT
00003f1b: AND
00003f1c: PUSH1 0xff
00003f1e: DUP5
00003f1f: ISZERO
00003f20: ISZERO
00003f21: AND
00003f22: OR
00003f23: SWAP1
00003f24: SSTORE
00003f25: SWAP1
00003f26: DUP2
00003f27: SWAP1
00003f28: PUSH1 0x40
00003f2a: MLOAD
00003f2b: SWAP1
00003f2c: ISZERO
00003f2d: ISZERO
00003f2e: DUP2
00003f2f: MSTORE
00003f30: PUSH32 0x7276f1d77fbb1794919362294fb870305193d894417c47c88716aa858f4272d3
00003f51: PUSH1 0x20
00003f53: CALLER
00003f54: SWAP3
00003f55: LOG3
00003f56: PUSH0
00003f57: MSTORE
00003f58: PUSH1 0x04
00003f5a: PUSH1 0x20
00003f5c: MSTORE
00003f5d: PUSH0
00003f5e: PUSH1 0x40
00003f60: DUP2
00003f61: KECCAK256
00003f62: SSTORE
00003f63: JUMP
00003f64: JUMPDEST
00003f65: PUSH1 0x14
00003f67: SLOAD
00003f68: PUSH1 0x01
00003f6a: PUSH1 0x01
00003f6c: PUSH1 0x40
00003f6e: SHL
00003f6f: SUB
00003f70: PUSH1 0x80
00003f72: SHL
00003f73: DUP3
00003f74: PUSH1 0x80
00003f76: SHL
00003f77: AND
00003f78: SWAP1
00003f79: PUSH1 0x01
00003f7b: PUSH1 0x01
00003f7d: PUSH1 0x40
00003f7f: SHL
00003f80: SUB
00003f81: PUSH1 0x80
00003f83: SHL
00003f84: NOT
00003f85: AND
00003f86: OR
00003f87: PUSH1 0x14
00003f89: SSTORE
00003f8a: PUSH1 0x01
00003f8c: PUSH1 0x01
00003f8e: PUSH1 0x40
00003f90: SHL
00003f91: SUB
00003f92: PUSH1 0x40
00003f94: MLOAD
00003f95: SWAP2
00003f96: AND
00003f97: DUP2
00003f98: MSTORE
00003f99: PUSH32 0x0cdc8c1df674ca6c4f86f6d47b02a15083c5d3bf098ea38f02c2762bad0afad2
00003fba: PUSH1 0x20
00003fbc: CALLER
00003fbd: SWAP3
00003fbe: LOG2
00003fbf: JUMP
00003fc0: JUMPDEST
00003fc1: SWAP2
00003fc2: SWAP1
00003fc3: PUSH2 0x3fcf
00003fc6: DUP2
00003fc7: PUSH2 0x079a
00003fca: DUP6
00003fcb: PUSH2 0x331f
00003fce: JUMP
00003fcf: JUMPDEST
00003fd0: SLOAD
00003fd1: PUSH0
00003fd2: NOT
00003fd3: DUP2
00003fd4: LT
00003fd5: PUSH2 0x3fdf
00003fd8: JUMPI
00003fd9: JUMPDEST
00003fda: POP
00003fdb: POP
00003fdc: POP
00003fdd: POP
00003fde: JUMP
00003fdf: JUMPDEST
00003fe0: DUP3
00003fe1: DUP2
00003fe2: LT
00003fe3: PUSH2 0x401d
00003fe6: JUMPI
00003fe7: PUSH1 0x01
00003fe9: PUSH1 0x01
00003feb: PUSH1 0xa0
00003fed: SHL
00003fee: SUB
00003fef: DUP5
00003ff0: AND
00003ff1: ISZERO
00003ff2: PUSH2 0x07fa
00003ff5: JUMPI
00003ff6: PUSH1 0x01
00003ff8: PUSH1 0x01
00003ffa: PUSH1 0xa0
00003ffc: SHL
00003ffd: SUB
00003ffe: DUP3
00003fff: AND
00004000: ISZERO
00004001: PUSH2 0x07e7
00004004: JUMPI
00004005: PUSH2 0x4013
00004008: SWAP3
00004009: PUSH2 0x079a
0000400c: SWAP2
0000400d: SUB
0000400e: SWAP4
0000400f: PUSH2 0x331f
00004012: JUMP
00004013: JUMPDEST
00004014: SSTORE
00004015: PUSH0
00004016: DUP1
00004017: DUP1
00004018: DUP1
00004019: PUSH2 0x3fd9
0000401c: JUMP
0000401d: JUMPDEST
0000401e: SWAP1
0000401f: PUSH4 0x7dc7a0d9
00004024: PUSH1 0xe1
00004026: SHL
00004027: PUSH0
00004028: MSTORE
00004029: PUSH1 0x01
0000402b: DUP1
0000402c: PUSH1 0xa0
0000402e: SHL
0000402f: SUB
00004030: AND
00004031: PUSH1 0x04
00004033: MSTORE
00004034: PUSH1 0x24
00004036: MSTORE
00004037: PUSH1 0x44
00004039: MSTORE
0000403a: PUSH1 0x64
0000403c: PUSH0
0000403d: REVERT
0000403e: JUMPDEST
0000403f: SWAP2
00004040: PUSH1 0x01
00004042: PUSH1 0x01
00004044: PUSH1 0xa0
00004046: SHL
00004047: SUB
00004048: DUP4
00004049: AND
0000404a: SWAP2
0000404b: DUP3
0000404c: ISZERO
0000404d: PUSH2 0x40f5
00004050: JUMPI
00004051: PUSH1 0x01
00004053: PUSH1 0x01
00004055: PUSH1 0xa0
00004057: SHL
00004058: SUB
00004059: DUP2
0000405a: AND
0000405b: SWAP4
0000405c: DUP5
0000405d: ISZERO
0000405e: PUSH2 0x40e2
00004061: JUMPI
00004062: PUSH2 0x406a
00004065: DUP2
00004066: PUSH2 0x3357
00004069: JUMP
0000406a: JUMPDEST
0000406b: SLOAD
0000406c: DUP4
0000406d: DUP2
0000406e: LT
0000406f: PUSH2 0x40bd
00004072: JUMPI
00004073: SWAP2
00004074: PUSH2 0x40ab
00004077: SWAP2
00004078: PUSH2 0x40a5
0000407b: DUP6
0000407c: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
0000409d: SWAP7
0000409e: SWAP6
0000409f: SUB
000040a0: SWAP2
000040a1: PUSH2 0x3357
000040a4: JUMP
000040a5: JUMPDEST
000040a6: SSTORE
000040a7: PUSH2 0x3357
000040aa: JUMP
000040ab: JUMPDEST
000040ac: DUP1
000040ad: SLOAD
000040ae: DUP3
000040af: ADD
000040b0: SWAP1
000040b1: SSTORE
000040b2: PUSH1 0x40
000040b4: MLOAD
000040b5: SWAP1
000040b6: DUP2
000040b7: MSTORE
000040b8: PUSH1 0x20
000040ba: SWAP1
000040bb: LOG3
000040bc: JUMP
000040bd: JUMPDEST
000040be: PUSH4 0x391434e3
000040c3: PUSH1 0xe2
000040c5: SHL
000040c6: PUSH0
000040c7: MSTORE
000040c8: PUSH1 0x01
000040ca: PUSH1 0x01
000040cc: PUSH1 0xa0
000040ce: SHL
000040cf: SUB
000040d0: SWAP1
000040d1: SWAP2
000040d2: AND
000040d3: PUSH1 0x04
000040d5: MSTORE
000040d6: PUSH1 0x24
000040d8: MSTORE
000040d9: PUSH1 0x44
000040db: DUP3
000040dc: SWAP1
000040dd: MSTORE
000040de: PUSH1 0x64
000040e0: PUSH0
000040e1: REVERT
000040e2: JUMPDEST
000040e3: PUSH4 0xec442f05
000040e8: PUSH1 0xe0
000040ea: SHL
000040eb: PUSH0
000040ec: MSTORE
000040ed: PUSH0
000040ee: PUSH1 0x04
000040f0: MSTORE
000040f1: PUSH1 0x24
000040f3: PUSH0
000040f4: REVERT
000040f5: JUMPDEST
000040f6: PUSH4 0x4b637e8f
000040fb: PUSH1 0xe1
000040fd: SHL
000040fe: PUSH0
000040ff: MSTORE
00004100: PUSH0
00004101: PUSH1 0x04
00004103: MSTORE
00004104: PUSH1 0x24
00004106: PUSH0
00004107: REVERT
00004108: JUMPDEST
00004109: PUSH1 0x14
0000410b: DUP1
0000410c: SLOAD
0000410d: PUSH1 0x01
0000410f: PUSH1 0x01
00004111: PUSH1 0xc0
00004113: SHL
00004114: SUB
00004115: AND
00004116: PUSH1 0xc0
00004118: DUP4
00004119: SWAP1
0000411a: SHL
0000411b: PUSH1 0x01
0000411d: PUSH1 0x01
0000411f: PUSH1 0xc0
00004121: SHL
00004122: SUB
00004123: NOT
00004124: AND
00004125: OR
00004126: SWAP1
00004127: SSTORE
00004128: PUSH1 0x40
0000412a: MLOAD
0000412b: PUSH1 0x01
0000412d: PUSH1 0x01
0000412f: PUSH1 0x40
00004131: SHL
00004132: SUB
00004133: SWAP2
00004134: SWAP1
00004135: SWAP2
00004136: AND
00004137: DUP2
00004138: MSTORE
00004139: CALLER
0000413a: SWAP1
0000413b: PUSH32 0x37df918c2fd5f0501a9fdf1651bcdbad7a05d7b163702a82bbe497ee835ebc47
0000415c: SWAP1
0000415d: PUSH1 0x20
0000415f: SWAP1
00004160: LOG2
00004161: JUMP
00004162: JUMPDEST
00004163: PUSH0
00004164: MLOAD
00004165: PUSH1 0x20
00004167: PUSH2 0x4d02
0000416a: PUSH0
0000416b: CODECOPY
0000416c: PUSH0
0000416d: MLOAD
0000416e: SWAP1
0000416f: PUSH0
00004170: MSTORE
00004171: SLOAD
00004172: PUSH1 0x01
00004174: PUSH1 0x01
00004176: PUSH1 0xa0
00004178: SHL
00004179: SUB
0000417a: AND
0000417b: CALLER
0000417c: SUB
0000417d: PUSH2 0x1b97
00004180: JUMPI
00004181: JUMP
00004182: JUMPDEST
00004183: PUSH1 0xff
00004185: PUSH0
00004186: MLOAD
00004187: PUSH1 0x20
00004189: PUSH2 0x4da2
0000418c: PUSH0
0000418d: CODECOPY
0000418e: PUSH0
0000418f: MLOAD
00004190: SWAP1
00004191: PUSH0
00004192: MSTORE
00004193: SLOAD
00004194: AND
00004195: PUSH2 0x419a
00004198: JUMPI
00004199: JUMP
0000419a: JUMPDEST
0000419b: PUSH4 0xd93c0665
000041a0: PUSH1 0xe0
000041a2: SHL
000041a3: PUSH0
000041a4: MSTORE
000041a5: PUSH1 0x04
000041a7: PUSH0
000041a8: REVERT
000041a9: JUMPDEST
000041aa: RETURNDATASIZE
000041ab: ISZERO
000041ac: PUSH2 0x41d3
000041af: JUMPI
000041b0: RETURNDATASIZE
000041b1: SWAP1
000041b2: PUSH2 0x41ba
000041b5: DUP3
000041b6: PUSH2 0x19ef
000041b9: JUMP
000041ba: JUMPDEST
000041bb: SWAP2
000041bc: PUSH2 0x41c8
000041bf: PUSH1 0x40
000041c1: MLOAD
000041c2: SWAP4
000041c3: DUP5
000041c4: PUSH2 0x0ee8
000041c7: JUMP
000041c8: JUMPDEST
000041c9: DUP3
000041ca: MSTORE
000041cb: RETURNDATASIZE
000041cc: PUSH0
000041cd: PUSH1 0x20
000041cf: DUP5
000041d0: ADD
000041d1: RETURNDATACOPY
000041d2: JUMP
000041d3: JUMPDEST
000041d4: PUSH1 0x60
000041d6: SWAP1
000041d7: JUMP
000041d8: JUMPDEST
000041d9: PUSH0
000041da: DUP1
000041db: SWAP2
000041dc: PUSH1 0x20
000041de: DUP2
000041df: MLOAD
000041e0: SWAP2
000041e1: ADD
000041e2: PUSH32 0x0000000000000000000000006cd5b7952245ad44e436644ff928bfab322f29fc
00004203: GAS
00004204: DELEGATECALL
00004205: PUSH2 0x420c
00004208: PUSH2 0x41a9
0000420b: JUMP
0000420c: JUMPDEST
0000420d: SWAP1
0000420e: ISZERO
0000420f: PUSH2 0x4215
00004212: JUMPI
00004213: SWAP1
00004214: JUMP
00004215: JUMPDEST
00004216: PUSH1 0x20
00004218: DUP2
00004219: MLOAD
0000421a: SWAP2
0000421b: ADD
0000421c: REVERT
0000421d: JUMPDEST
0000421e: PUSH0
0000421f: MLOAD
00004220: PUSH1 0x20
00004222: PUSH2 0x4e02
00004225: PUSH0
00004226: CODECOPY
00004227: PUSH0
00004228: MLOAD
00004229: SWAP1
0000422a: PUSH0
0000422b: MSTORE
0000422c: DUP1
0000422d: SLOAD
0000422e: PUSH1 0x01
00004230: PUSH1 0x01
00004232: PUSH1 0xa0
00004234: SHL
00004235: SUB
00004236: NOT
00004237: SWAP1
00004238: DUP2
00004239: AND
0000423a: SWAP1
0000423b: SWAP2
0000423c: SSTORE
0000423d: PUSH0
0000423e: MLOAD
0000423f: PUSH1 0x20
00004241: PUSH2 0x4d02
00004244: PUSH0
00004245: CODECOPY
00004246: PUSH0
00004247: MLOAD
00004248: SWAP1
00004249: PUSH0
0000424a: MSTORE
0000424b: DUP1
0000424c: SLOAD
0000424d: SWAP2
0000424e: DUP3
0000424f: AND
00004250: PUSH1 0x01
00004252: PUSH1 0x01
00004254: PUSH1 0xa0
00004256: SHL
00004257: SUB
00004258: SWAP4
00004259: DUP5
0000425a: AND
0000425b: SWAP1
0000425c: DUP2
0000425d: OR
0000425e: SWAP1
0000425f: SWAP2
00004260: SSTORE
00004261: SWAP2
00004262: AND
00004263: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00004284: PUSH0
00004285: DUP1
00004286: LOG3
00004287: JUMP
00004288: JUMPDEST
00004289: PUSH1 0x02
0000428b: PUSH0
0000428c: MLOAD
0000428d: PUSH1 0x20
0000428f: PUSH2 0x4dc2
00004292: PUSH0
00004293: CODECOPY
00004294: PUSH0
00004295: MLOAD
00004296: SWAP1
00004297: PUSH0
00004298: MSTORE
00004299: SLOAD
0000429a: EQ
0000429b: PUSH2 0x42b1
0000429e: JUMPI
0000429f: PUSH1 0x02
000042a1: PUSH0
000042a2: MLOAD
000042a3: PUSH1 0x20
000042a5: PUSH2 0x4dc2
000042a8: PUSH0
000042a9: CODECOPY
000042aa: PUSH0
000042ab: MLOAD
000042ac: SWAP1
000042ad: PUSH0
000042ae: MSTORE
000042af: SSTORE
000042b0: JUMP
000042b1: JUMPDEST
000042b2: PUSH4 0x3ee5aeb5
000042b7: PUSH1 0xe0
000042b9: SHL
000042ba: PUSH0
000042bb: MSTORE
000042bc: PUSH1 0x04
000042be: PUSH0
000042bf: REVERT
000042c0: JUMPDEST
000042c1: PUSH1 0x01
000042c3: PUSH1 0x01
000042c5: PUSH1 0xa0
000042c7: SHL
000042c8: SUB
000042c9: DUP2
000042ca: AND
000042cb: SWAP2
000042cc: SWAP1
000042cd: DUP3
000042ce: ISZERO
000042cf: PUSH2 0x40f5
000042d2: JUMPI
000042d3: PUSH2 0x42db
000042d6: DUP2
000042d7: PUSH2 0x3357
000042da: JUMP
000042db: JUMPDEST
000042dc: SLOAD
000042dd: DUP3
000042de: DUP2
000042df: LT
000042e0: PUSH2 0x4336
000042e3: JUMPI
000042e4: SWAP2
000042e5: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00004306: SWAP2
00004307: PUSH2 0x4314
0000430a: DUP3
0000430b: PUSH0
0000430c: SWAP7
0000430d: SWAP6
0000430e: SUB
0000430f: SWAP2
00004310: PUSH2 0x3357
00004313: JUMP
00004314: JUMPDEST
00004315: SSTORE
00004316: PUSH0
00004317: MLOAD
00004318: PUSH1 0x20
0000431a: PUSH2 0x4d22
0000431d: PUSH0
0000431e: CODECOPY
0000431f: PUSH0
00004320: MLOAD
00004321: SWAP1
00004322: PUSH0
00004323: MSTORE
00004324: DUP1
00004325: SLOAD
00004326: DUP3
00004327: SWAP1
00004328: SUB
00004329: SWAP1
0000432a: SSTORE
0000432b: PUSH1 0x40
0000432d: MLOAD
0000432e: SWAP1
0000432f: DUP2
00004330: MSTORE
00004331: PUSH1 0x20
00004333: SWAP1
00004334: LOG3
00004335: JUMP
00004336: JUMPDEST
00004337: PUSH4 0x391434e3
0000433c: PUSH1 0xe2
0000433e: SHL
0000433f: PUSH0
00004340: MSTORE
00004341: PUSH1 0x01
00004343: PUSH1 0x01
00004345: PUSH1 0xa0
00004347: SHL
00004348: SUB
00004349: SWAP1
0000434a: SWAP2
0000434b: AND
0000434c: PUSH1 0x04
0000434e: MSTORE
0000434f: PUSH1 0x24
00004351: MSTORE
00004352: PUSH1 0x44
00004354: MSTORE
00004355: PUSH1 0x64
00004357: PUSH0
00004358: REVERT
00004359: JUMPDEST
0000435a: PUSH3 0x127500
0000435e: DUP2
0000435f: GT
00004360: PUSH2 0x437d
00004363: JUMPI
00004364: PUSH3 0x015180
00004368: GT
00004369: PUSH2 0x436e
0000436c: JUMPI
0000436d: JUMP
0000436e: JUMPDEST
0000436f: PUSH4 0x1a1593df
00004374: PUSH1 0xe1
00004376: SHL
00004377: PUSH0
00004378: MSTORE
00004379: PUSH1 0x04
0000437b: PUSH0
0000437c: REVERT
0000437d: JUMPDEST
0000437e: PUSH4 0x46fedb57
00004383: PUSH1 0xe0
00004385: SHL
00004386: PUSH0
00004387: MSTORE
00004388: PUSH1 0x04
0000438a: PUSH0
0000438b: REVERT
0000438c: JUMPDEST
0000438d: DUP1
0000438e: PUSH1 0x08
00004390: SSTORE
00004391: PUSH1 0x40
00004393: MLOAD
00004394: SWAP1
00004395: DUP2
00004396: MSTORE
00004397: PUSH32 0xd28e9b90ee9b37c5936ff84392d71f29ff18117d7e76bcee60615262a90a3f75
000043b8: PUSH1 0x20
000043ba: CALLER
000043bb: SWAP3
000043bc: LOG2
000043bd: PUSH0
000043be: PUSH1 0x05
000043c0: SSTORE
000043c1: JUMP
000043c2: JUMPDEST
000043c3: DUP1
000043c4: PUSH1 0x09
000043c6: SSTORE
000043c7: PUSH1 0x40
000043c9: MLOAD
000043ca: SWAP1
000043cb: DUP2
000043cc: MSTORE
000043cd: PUSH32 0x51fa58fd85e72d533eb3933ef4dd0bb83a9614f46e076ffa025b0dcbb8dff315
000043ee: PUSH1 0x20
000043f0: CALLER
000043f1: SWAP3
000043f2: LOG2
000043f3: JUMP
000043f4: JUMPDEST
000043f5: PUSH1 0x01
000043f7: DUP1
000043f8: PUSH1 0xa0
000043fa: SHL
000043fb: SUB
000043fc: AND
000043fd: PUSH12 0xffffffffffffffffffffffff
0000440a: PUSH1 0xa0
0000440c: SHL
0000440d: PUSH1 0x07
0000440f: SLOAD
00004410: AND
00004411: OR
00004412: PUSH1 0x07
00004414: SSTORE
00004415: TIMESTAMP
00004416: ADD
00004417: DUP1
00004418: TIMESTAMP
00004419: GT
0000441a: PUSH2 0x0c5f
0000441d: JUMPI
0000441e: PUSH1 0x07
00004420: DUP1
00004421: SLOAD
00004422: PUSH8 0xffffffffffffffff
0000442b: PUSH1 0xa0
0000442d: SHL
0000442e: NOT
0000442f: AND
00004430: PUSH1 0xa0
00004432: SWAP3
00004433: SWAP1
00004434: SWAP3
00004435: SHL
00004436: PUSH8 0xffffffffffffffff
0000443f: PUSH1 0xa0
00004441: SHL
00004442: AND
00004443: SWAP2
00004444: SWAP1
00004445: SWAP2
00004446: OR
00004447: SWAP1
00004448: SSTORE
00004449: JUMP
0000444a: JUMPDEST
0000444b: PUSH1 0x01
0000444d: DUP1
0000444e: PUSH1 0xa0
00004450: SHL
00004451: SUB
00004452: AND
00004453: DUP1
00004454: PUSH12 0xffffffffffffffffffffffff
00004461: PUSH1 0xa0
00004463: SHL
00004464: PUSH0
00004465: SLOAD
00004466: AND
00004467: OR
00004468: PUSH0
00004469: SSTORE
0000446a: PUSH1 0x40
0000446c: MLOAD
0000446d: SWAP1
0000446e: DUP2
0000446f: MSTORE
00004470: PUSH32 0xcb11cc8aade2f5a556749d1b2380d108a16fac3431e6a5d5ce12ef9de0bd76e3
00004491: PUSH1 0x20
00004493: CALLER
00004494: SWAP3
00004495: LOG2
00004496: PUSH0
00004497: PUSH1 0x07
00004499: SSTORE
0000449a: JUMP
0000449b: JUMPDEST
0000449c: PUSH2 0x44a3
0000449f: PUSH2 0x4b57
000044a2: JUMP
000044a3: JUMPDEST
000044a4: DUP1
000044a5: MLOAD
000044a6: SWAP1
000044a7: PUSH1 0x01
000044a9: PUSH1 0x01
000044ab: PUSH1 0x40
000044ad: SHL
000044ae: SUB
000044af: DUP3
000044b0: GT
000044b1: PUSH2 0x0ead
000044b4: JUMPI
000044b5: PUSH2 0x44d4
000044b8: DUP3
000044b9: PUSH2 0x44cf
000044bc: PUSH0
000044bd: MLOAD
000044be: PUSH1 0x20
000044c0: PUSH2 0x4cc2
000044c3: PUSH0
000044c4: CODECOPY
000044c5: PUSH0
000044c6: MLOAD
000044c7: SWAP1
000044c8: PUSH0
000044c9: MSTORE
000044ca: SLOAD
000044cb: PUSH2 0x32e7
000044ce: JUMP
000044cf: JUMPDEST
000044d0: PUSH2 0x45c6
000044d3: JUMP
000044d4: JUMPDEST
000044d5: PUSH1 0x20
000044d7: SWAP1
000044d8: PUSH1 0x1f
000044da: DUP4
000044db: GT
000044dc: PUSH1 0x01
000044de: EQ
000044df: PUSH2 0x4527
000044e2: JUMPI
000044e3: SWAP2
000044e4: DUP1
000044e5: PUSH2 0x4508
000044e8: SWAP3
000044e9: PUSH2 0x0753
000044ec: SWAP6
000044ed: SWAP5
000044ee: PUSH0
000044ef: SWAP3
000044f0: PUSH2 0x451c
000044f3: JUMPI
000044f4: JUMPDEST
000044f5: POP
000044f6: POP
000044f7: DUP2
000044f8: PUSH1 0x01
000044fa: SHL
000044fb: SWAP2
000044fc: PUSH0
000044fd: NOT
000044fe: SWAP1
000044ff: PUSH1 0x03
00004501: SHL
00004502: SHR
00004503: NOT
00004504: AND
00004505: OR
00004506: SWAP1
00004507: JUMP
00004508: JUMPDEST
00004509: PUSH0
0000450a: MLOAD
0000450b: PUSH1 0x20
0000450d: PUSH2 0x4cc2
00004510: PUSH0
00004511: CODECOPY
00004512: PUSH0
00004513: MLOAD
00004514: SWAP1
00004515: PUSH0
00004516: MSTORE
00004517: SSTORE
00004518: PUSH2 0x4671
0000451b: JUMP
0000451c: JUMPDEST
0000451d: ADD
0000451e: MLOAD
0000451f: SWAP1
00004520: POP
00004521: PUSH0
00004522: DUP1
00004523: PUSH2 0x44f4
00004526: JUMP
00004527: JUMPDEST
00004528: PUSH0
00004529: MLOAD
0000452a: PUSH1 0x20
0000452c: PUSH2 0x4cc2
0000452f: PUSH0
00004530: CODECOPY
00004531: PUSH0
00004532: MLOAD
00004533: SWAP1
00004534: PUSH0
00004535: MSTORE
00004536: PUSH0
00004537: MSTORE
00004538: PUSH1 0x1f
0000453a: NOT
0000453b: DUP4
0000453c: AND
0000453d: SWAP2
0000453e: SWAP1
0000453f: PUSH32 0x2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0
00004560: SWAP3
00004561: PUSH0
00004562: JUMPDEST
00004563: DUP2
00004564: DUP2
00004565: LT
00004566: PUSH2 0x45ae
00004569: JUMPI
0000456a: POP
0000456b: SWAP2
0000456c: PUSH1 0x01
0000456e: SWAP4
0000456f: SWAP2
00004570: DUP6
00004571: PUSH2 0x0753
00004574: SWAP8
00004575: SWAP7
00004576: SWAP5
00004577: LT
00004578: PUSH2 0x4596
0000457b: JUMPI
0000457c: JUMPDEST
0000457d: POP
0000457e: POP
0000457f: POP
00004580: DUP2
00004581: SHL
00004582: ADD
00004583: PUSH0
00004584: MLOAD
00004585: PUSH1 0x20
00004587: PUSH2 0x4cc2
0000458a: PUSH0
0000458b: CODECOPY
0000458c: PUSH0
0000458d: MLOAD
0000458e: SWAP1
0000458f: PUSH0
00004590: MSTORE
00004591: SSTORE
00004592: PUSH2 0x4671
00004595: JUMP
00004596: JUMPDEST
00004597: ADD
00004598: MLOAD
00004599: PUSH0
0000459a: NOT
0000459b: PUSH1 0xf8
0000459d: DUP5
0000459e: PUSH1 0x03
000045a0: SHL
000045a1: AND
000045a2: SHR
000045a3: NOT
000045a4: AND
000045a5: SWAP1
000045a6: SSTORE
000045a7: PUSH0
000045a8: DUP1
000045a9: DUP1
000045aa: PUSH2 0x457c
000045ad: JUMP
000045ae: JUMPDEST
000045af: SWAP3
000045b0: SWAP4
000045b1: PUSH1 0x20
000045b3: PUSH1 0x01
000045b5: DUP2
000045b6: SWAP3
000045b7: DUP8
000045b8: DUP7
000045b9: ADD
000045ba: MLOAD
000045bb: DUP2
000045bc: SSTORE
000045bd: ADD
000045be: SWAP6
000045bf: ADD
000045c0: SWAP4
000045c1: ADD
000045c2: PUSH2 0x4562
000045c5: JUMP
000045c6: JUMPDEST
000045c7: PUSH1 0x1f
000045c9: DUP2
000045ca: GT
000045cb: PUSH2 0x45d2
000045ce: JUMPI
000045cf: POP
000045d0: POP
000045d1: JUMP
000045d2: JUMPDEST
000045d3: PUSH0
000045d4: MLOAD
000045d5: PUSH1 0x20
000045d7: PUSH2 0x4cc2
000045da: PUSH0
000045db: CODECOPY
000045dc: PUSH0
000045dd: MLOAD
000045de: SWAP1
000045df: PUSH0
000045e0: MSTORE
000045e1: PUSH0
000045e2: MSTORE
000045e3: PUSH1 0x20
000045e5: PUSH0
000045e6: KECCAK256
000045e7: SWAP1
000045e8: PUSH1 0x20
000045ea: PUSH1 0x1f
000045ec: DUP5
000045ed: ADD
000045ee: PUSH1 0x05
000045f0: SHR
000045f1: DUP4
000045f2: ADD
000045f3: SWAP4
000045f4: LT
000045f5: PUSH2 0x4618
000045f8: JUMPI
000045f9: JUMPDEST
000045fa: PUSH1 0x1f
000045fc: ADD
000045fd: PUSH1 0x05
000045ff: SHR
00004600: ADD
00004601: SWAP1
00004602: JUMPDEST
00004603: DUP2
00004604: DUP2
00004605: LT
00004606: PUSH2 0x460d
00004609: JUMPI
0000460a: POP
0000460b: POP
0000460c: JUMP
0000460d: JUMPDEST
0000460e: PUSH0
0000460f: DUP2
00004610: SSTORE
00004611: PUSH1 0x01
00004613: ADD
00004614: PUSH2 0x4602
00004617: JUMP
00004618: JUMPDEST
00004619: SWAP1
0000461a: SWAP2
0000461b: POP
0000461c: DUP2
0000461d: SWAP1
0000461e: PUSH2 0x45f9
00004621: JUMP
00004622: JUMPDEST
00004623: PUSH1 0x1f
00004625: DUP3
00004626: GT
00004627: PUSH2 0x462f
0000462a: JUMPI
0000462b: POP
0000462c: POP
0000462d: POP
0000462e: JUMP
0000462f: JUMPDEST
00004630: PUSH0
00004631: MSTORE
00004632: PUSH1 0x20
00004634: PUSH0
00004635: KECCAK256
00004636: SWAP1
00004637: PUSH1 0x20
00004639: PUSH1 0x1f
0000463b: DUP5
0000463c: ADD
0000463d: PUSH1 0x05
0000463f: SHR
00004640: DUP4
00004641: ADD
00004642: SWAP4
00004643: LT
00004644: PUSH2 0x4667
00004647: JUMPI
00004648: JUMPDEST
00004649: PUSH1 0x1f
0000464b: ADD
0000464c: PUSH1 0x05
0000464e: SHR
0000464f: ADD
00004650: SWAP1
00004651: JUMPDEST
00004652: DUP2
00004653: DUP2
00004654: LT
00004655: PUSH2 0x465c
00004658: JUMPI
00004659: POP
0000465a: POP
0000465b: JUMP
0000465c: JUMPDEST
0000465d: PUSH0
0000465e: DUP2
0000465f: SSTORE
00004660: PUSH1 0x01
00004662: ADD
00004663: PUSH2 0x4651
00004666: JUMP
00004667: JUMPDEST
00004668: SWAP1
00004669: SWAP2
0000466a: POP
0000466b: DUP2
0000466c: SWAP1
0000466d: PUSH2 0x4648
00004670: JUMP
00004671: JUMPDEST
00004672: SWAP1
00004673: DUP2
00004674: MLOAD
00004675: PUSH1 0x01
00004677: PUSH1 0x01
00004679: PUSH1 0x40
0000467b: SHL
0000467c: SUB
0000467d: DUP2
0000467e: GT
0000467f: PUSH2 0x0ead
00004682: JUMPI
00004683: PUSH2 0x46b0
00004686: DUP2
00004687: PUSH2 0x469d
0000468a: PUSH0
0000468b: MLOAD
0000468c: PUSH1 0x20
0000468e: PUSH2 0x4ce2
00004691: PUSH0
00004692: CODECOPY
00004693: PUSH0
00004694: MLOAD
00004695: SWAP1
00004696: PUSH0
00004697: MSTORE
00004698: SLOAD
00004699: PUSH2 0x32e7
0000469c: JUMP
0000469d: JUMPDEST
0000469e: PUSH0
0000469f: MLOAD
000046a0: PUSH1 0x20
000046a2: PUSH2 0x4ce2
000046a5: PUSH0
000046a6: CODECOPY
000046a7: PUSH0
000046a8: MLOAD
000046a9: SWAP1
000046aa: PUSH0
000046ab: MSTORE
000046ac: PUSH2 0x4622
000046af: JUMP
000046b0: JUMPDEST
000046b1: PUSH1 0x20
000046b3: SWAP3
000046b4: PUSH1 0x1f
000046b6: DUP3
000046b7: GT
000046b8: PUSH1 0x01
000046ba: EQ
000046bb: PUSH2 0x46f0
000046be: JUMPI
000046bf: PUSH2 0x46df
000046c2: SWAP3
000046c3: SWAP4
000046c4: DUP3
000046c5: SWAP2
000046c6: PUSH0
000046c7: SWAP3
000046c8: PUSH2 0x451c
000046cb: JUMPI
000046cc: POP
000046cd: POP
000046ce: DUP2
000046cf: PUSH1 0x01
000046d1: SHL
000046d2: SWAP2
000046d3: PUSH0
000046d4: NOT
000046d5: SWAP1
000046d6: PUSH1 0x03
000046d8: SHL
000046d9: SHR
000046da: NOT
000046db: AND
000046dc: OR
000046dd: SWAP1
000046de: JUMP
000046df: JUMPDEST
000046e0: PUSH0
000046e1: MLOAD
000046e2: PUSH1 0x20
000046e4: PUSH2 0x4ce2
000046e7: PUSH0
000046e8: CODECOPY
000046e9: PUSH0
000046ea: MLOAD
000046eb: SWAP1
000046ec: PUSH0
000046ed: MSTORE
000046ee: SSTORE
000046ef: JUMP
000046f0: JUMPDEST
000046f1: PUSH0
000046f2: MLOAD
000046f3: PUSH1 0x20
000046f5: PUSH2 0x4ce2
000046f8: PUSH0
000046f9: CODECOPY
000046fa: PUSH0
000046fb: MLOAD
000046fc: SWAP1
000046fd: PUSH0
000046fe: MSTORE
000046ff: PUSH0
00004700: MSTORE
00004701: PUSH1 0x1f
00004703: NOT
00004704: DUP3
00004705: AND
00004706: SWAP4
00004707: PUSH32 0x46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa
00004728: SWAP2
00004729: PUSH0
0000472a: JUMPDEST
0000472b: DUP7
0000472c: DUP2
0000472d: LT
0000472e: PUSH2 0x476c
00004731: JUMPI
00004732: POP
00004733: DUP4
00004734: PUSH1 0x01
00004736: SWAP6
00004737: SWAP7
00004738: LT
00004739: PUSH2 0x4754
0000473c: JUMPI
0000473d: JUMPDEST
0000473e: POP
0000473f: POP
00004740: POP
00004741: DUP2
00004742: SHL
00004743: ADD
00004744: PUSH0
00004745: MLOAD
00004746: PUSH1 0x20
00004748: PUSH2 0x4ce2
0000474b: PUSH0
0000474c: CODECOPY
0000474d: PUSH0
0000474e: MLOAD
0000474f: SWAP1
00004750: PUSH0
00004751: MSTORE
00004752: SSTORE
00004753: JUMP
00004754: JUMPDEST
00004755: ADD
00004756: MLOAD
00004757: PUSH0
00004758: NOT
00004759: PUSH1 0xf8
0000475b: DUP5
0000475c: PUSH1 0x03
0000475e: SHL
0000475f: AND
00004760: SHR
00004761: NOT
00004762: AND
00004763: SWAP1
00004764: SSTORE
00004765: PUSH0
00004766: DUP1
00004767: DUP1
00004768: PUSH2 0x473d
0000476b: JUMP
0000476c: JUMPDEST
0000476d: SWAP2
0000476e: SWAP3
0000476f: PUSH1 0x20
00004771: PUSH1 0x01
00004773: DUP2
00004774: SWAP3
00004775: DUP7
00004776: DUP6
00004777: ADD
00004778: MLOAD
00004779: DUP2
0000477a: SSTORE
0000477b: ADD
0000477c: SWAP5
0000477d: ADD
0000477e: SWAP3
0000477f: ADD
00004780: PUSH2 0x472a
00004783: JUMP
00004784: JUMPDEST
00004785: PUSH2 0x478c
00004788: PUSH2 0x4b57
0000478b: JUMP
0000478c: JUMPDEST
0000478d: PUSH1 0x01
0000478f: PUSH1 0x01
00004791: PUSH1 0xa0
00004793: SHL
00004794: SUB
00004795: DUP2
00004796: AND
00004797: ISZERO
00004798: PUSH2 0x47a4
0000479b: JUMPI
0000479c: PUSH2 0x0753
0000479f: SWAP1
000047a0: PUSH2 0x421d
000047a3: JUMP
000047a4: JUMPDEST
000047a5: PUSH4 0x1e4fbdf7
000047aa: PUSH1 0xe0
000047ac: SHL
000047ad: PUSH0
000047ae: MSTORE
000047af: PUSH0
000047b0: PUSH1 0x04
000047b2: MSTORE
000047b3: PUSH1 0x24
000047b5: PUSH0
000047b6: REVERT
000047b7: JUMPDEST
000047b8: PUSH2 0x47bf
000047bb: PUSH2 0x4b57
000047be: JUMP
000047bf: JUMPDEST
000047c0: PUSH2 0x47c8
000047c3: DUP2
000047c4: PUSH2 0x4b82
000047c7: JUMP
000047c8: JUMPDEST
000047c9: SWAP1
000047ca: ISZERO
000047cb: PUSH2 0x480a
000047ce: JUMPI
000047cf: SWAP1
000047d0: JUMPDEST
000047d1: PUSH0
000047d2: MLOAD
000047d3: PUSH1 0x20
000047d5: PUSH2 0x4d82
000047d8: PUSH0
000047d9: CODECOPY
000047da: PUSH0
000047db: MLOAD
000047dc: SWAP1
000047dd: PUSH0
000047de: MSTORE
000047df: DUP1
000047e0: SLOAD
000047e1: PUSH1 0x01
000047e3: PUSH1 0x01
000047e5: PUSH1 0xa8
000047e7: SHL
000047e8: SUB
000047e9: NOT
000047ea: AND
000047eb: PUSH1 0xa0
000047ed: SWAP4
000047ee: SWAP1
000047ef: SWAP4
000047f0: SHL
000047f1: PUSH1 0xff
000047f3: PUSH1 0xa0
000047f5: SHL
000047f6: AND
000047f7: SWAP3
000047f8: SWAP1
000047f9: SWAP3
000047fa: OR
000047fb: PUSH1 0x01
000047fd: PUSH1 0x01
000047ff: PUSH1 0xa0
00004801: SHL
00004802: SUB
00004803: SWAP1
00004804: SWAP2
00004805: AND
00004806: OR
00004807: SWAP1
00004808: SSTORE
00004809: JUMP
0000480a: JUMPDEST
0000480b: POP
0000480c: PUSH1 0x12
0000480e: SWAP1
0000480f: PUSH2 0x47d0
00004812: JUMP
00004813: JUMPDEST
00004814: PUSH2 0x481b
00004817: PUSH2 0x4b57
0000481a: JUMP
0000481b: JUMPDEST
0000481c: PUSH1 0x01
0000481e: PUSH0
0000481f: MLOAD
00004820: PUSH1 0x20
00004822: PUSH2 0x4dc2
00004825: PUSH0
00004826: CODECOPY
00004827: PUSH0
00004828: MLOAD
00004829: SWAP1
0000482a: PUSH0
0000482b: MSTORE
0000482c: SSTORE
0000482d: JUMP
0000482e: JUMPDEST
0000482f: PUSH2 0x4836
00004832: PUSH2 0x4b57
00004835: JUMP
00004836: JUMPDEST
00004837: PUSH1 0xff
00004839: NOT
0000483a: PUSH0
0000483b: MLOAD
0000483c: PUSH1 0x20
0000483e: PUSH2 0x4da2
00004841: PUSH0
00004842: CODECOPY
00004843: PUSH0
00004844: MLOAD
00004845: SWAP1
00004846: PUSH0
00004847: MSTORE
00004848: SLOAD
00004849: AND
0000484a: PUSH0
0000484b: MLOAD
0000484c: PUSH1 0x20
0000484e: PUSH2 0x4da2
00004851: PUSH0
00004852: CODECOPY
00004853: PUSH0
00004854: MLOAD
00004855: SWAP1
00004856: PUSH0
00004857: MSTORE
00004858: SSTORE
00004859: JUMP
0000485a: JUMPDEST
0000485b: PUSH4 0x02faf080
00004860: LT
00004861: PUSH2 0x4866
00004864: JUMPI
00004865: JUMP
00004866: JUMPDEST
00004867: PUSH4 0x062f00d5
0000486c: PUSH1 0xe5
0000486e: SHL
0000486f: PUSH0
00004870: MSTORE
00004871: PUSH1 0x04
00004873: PUSH0
00004874: REVERT
00004875: JUMPDEST
00004876: PUSH1 0x01
00004878: PUSH1 0x01
0000487a: PUSH1 0x40
0000487c: SHL
0000487d: SUB
0000487e: SWAP1
0000487f: PUSH2 0x48a0
00004882: PUSH1 0x40
00004884: MLOAD
00004885: PUSH4 0x45fe329f
0000488a: PUSH1 0xe0
0000488c: SHL
0000488d: PUSH1 0x20
0000488f: DUP3
00004890: ADD
00004891: MSTORE
00004892: PUSH1 0x04
00004894: DUP2
00004895: MSTORE
00004896: PUSH2 0x1596
00004899: PUSH1 0x24
0000489b: DUP3
0000489c: PUSH2 0x0ee8
0000489f: JUMP
000048a0: JUMPDEST
000048a1: POP
000048a2: AND
000048a3: DUP1
000048a4: PUSH1 0x01
000048a6: PUSH1 0x01
000048a8: PUSH1 0x40
000048aa: SHL
000048ab: SUB
000048ac: NOT
000048ad: PUSH1 0x14
000048af: SLOAD
000048b0: AND
000048b1: OR
000048b2: PUSH1 0x14
000048b4: SSTORE
000048b5: PUSH1 0x40
000048b7: MLOAD
000048b8: SWAP1
000048b9: DUP2
000048ba: MSTORE
000048bb: PUSH32 0x20affe2401825617c69366f8c3a3493d9822d1021d0b3023c4e77ea5b3d0fbc5
000048dc: PUSH1 0x20
000048de: CALLER
000048df: SWAP3
000048e0: LOG2
000048e1: JUMP
000048e2: JUMPDEST
000048e3: PUSH1 0x01
000048e5: DUP1
000048e6: SLOAD
000048e7: PUSH1 0x01
000048e9: PUSH1 0x01
000048eb: PUSH1 0xa0
000048ed: SHL
000048ee: SUB
000048ef: NOT
000048f0: AND
000048f1: PUSH1 0x01
000048f3: PUSH1 0x01
000048f5: PUSH1 0xa0
000048f7: SHL
000048f8: SUB
000048f9: SWAP1
000048fa: SWAP3
000048fb: AND
000048fc: SWAP2
000048fd: DUP3
000048fe: OR
000048ff: SWAP1
00004900: SSTORE
00004901: PUSH1 0x40
00004903: MLOAD
00004904: SWAP1
00004905: DUP2
00004906: MSTORE
00004907: PUSH32 0xbd0a63c12948fbc9194a5839019f99c9d71db924e5c70018265bc778b8f1a506
00004928: SWAP1
00004929: PUSH1 0x20
0000492b: SWAP1
0000492c: LOG1
0000492d: JUMP
0000492e: JUMPDEST
0000492f: PUSH1 0x01
00004931: PUSH1 0x01
00004933: PUSH1 0x40
00004935: SHL
00004936: SUB
00004937: DUP2
00004938: GT
00004939: PUSH2 0x4948
0000493c: JUMPI
0000493d: PUSH1 0x01
0000493f: PUSH1 0x01
00004941: PUSH1 0x40
00004943: SHL
00004944: SUB
00004945: AND
00004946: SWAP1
00004947: JUMP
00004948: JUMPDEST
00004949: PUSH4 0x06dfcc65
0000494e: PUSH1 0xe4
00004950: SHL
00004951: PUSH0
00004952: MSTORE
00004953: PUSH1 0x40
00004955: PUSH1 0x04
00004957: MSTORE
00004958: PUSH1 0x24
0000495a: MSTORE
0000495b: PUSH1 0x44
0000495d: PUSH0
0000495e: REVERT
0000495f: JUMPDEST
00004960: DUP2
00004961: SUB
00004962: SWAP2
00004963: SWAP1
00004964: DUP3
00004965: GT
00004966: PUSH2 0x0c5f
00004969: JUMPI
0000496a: PUSH4 0x01e13380
0000496f: SWAP2
00004970: PUSH2 0x4978
00004973: SWAP2
00004974: PUSH2 0x33c3
00004977: JUMP
00004978: JUMPDEST
00004979: DIV
0000497a: SWAP1
0000497b: PUSH4 0x05f5e100
00004980: PUSH2 0x4994
00004983: PUSH1 0x01
00004985: PUSH1 0x01
00004987: PUSH1 0x40
00004989: SHL
0000498a: SUB
0000498b: PUSH1 0x14
0000498d: SLOAD
0000498e: AND
0000498f: DUP5
00004990: PUSH2 0x33c3
00004993: JUMP
00004994: JUMPDEST
00004995: DIV
00004996: SWAP2
00004997: DUP3
00004998: DUP2
00004999: SUB
0000499a: SWAP1
0000499b: DUP2
0000499c: GT
0000499d: PUSH2 0x0c5f
000049a0: JUMPI
000049a1: SWAP2
000049a2: SWAP1
000049a3: JUMP
000049a4: JUMPDEST
000049a5: SWAP2
000049a6: SWAP1
000049a7: PUSH2 0x49b1
000049aa: DUP3
000049ab: DUP3
000049ac: DUP6
000049ad: PUSH2 0x4bff
000049b0: JUMP
000049b1: JUMPDEST
000049b2: SWAP4
000049b3: PUSH1 0x04
000049b5: DUP2
000049b6: LT
000049b7: ISZERO
000049b8: PUSH2 0x49ee
000049bb: JUMPI
000049bc: PUSH1 0x01
000049be: DUP1
000049bf: SWAP2
000049c0: AND
000049c1: EQ
000049c2: SWAP3
000049c3: DUP4
000049c4: PUSH2 0x49d9
000049c7: JUMPI
000049c8: JUMPDEST
000049c9: POP
000049ca: POP
000049cb: POP
000049cc: ISZERO
000049cd: ISZERO
000049ce: DUP2
000049cf: ADD
000049d0: DUP1
000049d1: SWAP2
000049d2: GT
000049d3: PUSH2 0x0c5f
000049d6: JUMPI
000049d7: SWAP1
000049d8: JUMP
000049d9: JUMPDEST
000049da: SWAP1
000049db: SWAP2
000049dc: DUP1
000049dd: SWAP4
000049de: POP
000049df: ISZERO
000049e0: PUSH2 0x32e2
000049e3: JUMPI
000049e4: MULMOD
000049e5: ISZERO
000049e6: ISZERO
000049e7: PUSH0
000049e8: DUP1
000049e9: DUP1
000049ea: PUSH2 0x49c8
000049ed: JUMP
000049ee: JUMPDEST
000049ef: PUSH4 0x4e487b71
000049f4: PUSH1 0xe0
000049f6: SHL
000049f7: PUSH0
000049f8: MSTORE
000049f9: PUSH1 0x21
000049fb: PUSH1 0x04
000049fd: MSTORE
000049fe: PUSH1 0x24
00004a00: PUSH0
00004a01: REVERT
00004a02: JUMPDEST
00004a03: SWAP3
00004a04: SWAP2
00004a05: SWAP1
00004a06: PUSH0
00004a07: NOT
00004a08: DUP4
00004a09: EQ
00004a0a: PUSH2 0x4acf
00004a0d: JUMPI
00004a0e: PUSH1 0x01
00004a10: PUSH1 0x01
00004a12: PUSH1 0xa0
00004a14: SHL
00004a15: SUB
00004a16: DUP2
00004a17: DUP2
00004a18: AND
00004a19: SWAP1
00004a1a: DUP4
00004a1b: AND
00004a1c: EQ
00004a1d: DUP1
00004a1e: ISZERO
00004a1f: PUSH2 0x4ac7
00004a22: JUMPI
00004a23: JUMPDEST
00004a24: PUSH2 0x3fd9
00004a27: JUMPI
00004a28: PUSH1 0x40
00004a2a: MLOAD
00004a2b: PUSH4 0x23b872dd
00004a30: PUSH1 0xe0
00004a32: SHL
00004a33: PUSH1 0x20
00004a35: DUP3
00004a36: DUP2
00004a37: ADD
00004a38: SWAP2
00004a39: DUP3
00004a3a: MSTORE
00004a3b: PUSH1 0x01
00004a3d: PUSH1 0x01
00004a3f: PUSH1 0xa0
00004a41: SHL
00004a42: SUB
00004a43: SWAP4
00004a44: DUP5
00004a45: AND
00004a46: PUSH1 0x24
00004a48: DUP5
00004a49: ADD
00004a4a: MSTORE
00004a4b: SWAP3
00004a4c: SWAP1
00004a4d: SWAP4
00004a4e: AND
00004a4f: PUSH1 0x44
00004a51: DUP3
00004a52: ADD
00004a53: MSTORE
00004a54: PUSH1 0x64
00004a56: DUP2
00004a57: ADD
00004a58: SWAP4
00004a59: SWAP1
00004a5a: SWAP4
00004a5b: MSTORE
00004a5c: SWAP2
00004a5d: PUSH0
00004a5e: SWAP2
00004a5f: SWAP1
00004a60: PUSH2 0x4a6c
00004a63: DUP2
00004a64: PUSH1 0x84
00004a66: DUP2
00004a67: ADD
00004a68: PUSH2 0x1588
00004a6b: JUMP
00004a6c: JUMPDEST
00004a6d: MLOAD
00004a6e: SWAP1
00004a6f: DUP3
00004a70: DUP6
00004a71: GAS
00004a72: CALL
00004a73: ISZERO
00004a74: PUSH2 0x4abc
00004a77: JUMPI
00004a78: PUSH0
00004a79: MLOAD
00004a7a: RETURNDATASIZE
00004a7b: PUSH2 0x4ab3
00004a7e: JUMPI
00004a7f: POP
00004a80: PUSH1 0x01
00004a82: PUSH1 0x01
00004a84: PUSH1 0xa0
00004a86: SHL
00004a87: SUB
00004a88: DUP2
00004a89: AND
00004a8a: EXTCODESIZE
00004a8b: ISZERO
00004a8c: JUMPDEST
00004a8d: PUSH2 0x4a93
00004a90: JUMPI
00004a91: POP
00004a92: JUMP
00004a93: JUMPDEST
00004a94: PUSH4 0x5274afe7
00004a99: PUSH1 0xe0
00004a9b: SHL
00004a9c: PUSH0
00004a9d: SWAP1
00004a9e: DUP2
00004a9f: MSTORE
00004aa0: PUSH1 0x01
00004aa2: PUSH1 0x01
00004aa4: PUSH1 0xa0
00004aa6: SHL
00004aa7: SUB
00004aa8: SWAP2
00004aa9: SWAP1
00004aaa: SWAP2
00004aab: AND
00004aac: PUSH1 0x04
00004aae: MSTORE
00004aaf: PUSH1 0x24
00004ab1: SWAP1
00004ab2: REVERT
00004ab3: JUMPDEST
00004ab4: PUSH1 0x01
00004ab6: EQ
00004ab7: ISZERO
00004ab8: PUSH2 0x4a8c
00004abb: JUMP
00004abc: JUMPDEST
00004abd: PUSH1 0x40
00004abf: MLOAD
00004ac0: RETURNDATASIZE
00004ac1: PUSH0
00004ac2: DUP3
00004ac3: RETURNDATACOPY
00004ac4: RETURNDATASIZE
00004ac5: SWAP1
00004ac6: REVERT
00004ac7: JUMPDEST
00004ac8: POP
00004ac9: DUP3
00004aca: ISZERO
00004acb: PUSH2 0x4a23
00004ace: JUMP
00004acf: JUMPDEST
00004ad0: PUSH4 0x0d550c3b
00004ad5: PUSH1 0xe1
00004ad7: SHL
00004ad8: PUSH0
00004ad9: MSTORE
00004ada: PUSH1 0x04
00004adc: PUSH0
00004add: REVERT
00004ade: JUMPDEST
00004adf: PUSH1 0x01
00004ae1: PUSH1 0x01
00004ae3: PUSH1 0xa0
00004ae5: SHL
00004ae6: SUB
00004ae7: DUP2
00004ae8: AND
00004ae9: SWAP2
00004aea: SWAP1
00004aeb: DUP3
00004aec: ISZERO
00004aed: PUSH2 0x40e2
00004af0: JUMPI
00004af1: PUSH0
00004af2: MLOAD
00004af3: PUSH1 0x20
00004af5: PUSH2 0x4d22
00004af8: PUSH0
00004af9: CODECOPY
00004afa: PUSH0
00004afb: MLOAD
00004afc: SWAP1
00004afd: PUSH0
00004afe: MSTORE
00004aff: SLOAD
00004b00: SWAP1
00004b01: DUP3
00004b02: DUP3
00004b03: ADD
00004b04: DUP1
00004b05: SWAP3
00004b06: GT
00004b07: PUSH2 0x0c5f
00004b0a: JUMPI
00004b0b: PUSH0
00004b0c: SWAP3
00004b0d: PUSH2 0x4b48
00004b10: PUSH1 0x20
00004b12: SWAP3
00004b13: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00004b34: SWAP5
00004b35: PUSH0
00004b36: MLOAD
00004b37: PUSH1 0x20
00004b39: PUSH2 0x4d22
00004b3c: PUSH0
00004b3d: CODECOPY
00004b3e: PUSH0
00004b3f: MLOAD
00004b40: SWAP1
00004b41: PUSH0
00004b42: MSTORE
00004b43: SSTORE
00004b44: PUSH2 0x3357
00004b47: JUMP
00004b48: JUMPDEST
00004b49: DUP2
00004b4a: DUP2
00004b4b: SLOAD
00004b4c: ADD
00004b4d: SWAP1
00004b4e: SSTORE
00004b4f: PUSH1 0x40
00004b51: MLOAD
00004b52: SWAP1
00004b53: DUP2
00004b54: MSTORE
00004b55: LOG3
00004b56: JUMP
00004b57: JUMPDEST
00004b58: PUSH1 0xff
00004b5a: PUSH0
00004b5b: MLOAD
00004b5c: PUSH1 0x20
00004b5e: PUSH2 0x4de2
00004b61: PUSH0
00004b62: CODECOPY
00004b63: PUSH0
00004b64: MLOAD
00004b65: SWAP1
00004b66: PUSH0
00004b67: MSTORE
00004b68: SLOAD
00004b69: PUSH1 0x40
00004b6b: SHR
00004b6c: AND
00004b6d: ISZERO
00004b6e: PUSH2 0x4b73
00004b71: JUMPI
00004b72: JUMP
00004b73: JUMPDEST
00004b74: PUSH4 0x1afcd79f
00004b79: PUSH1 0xe3
00004b7b: SHL
00004b7c: PUSH0
00004b7d: MSTORE
00004b7e: PUSH1 0x04
00004b80: PUSH0
00004b81: REVERT
00004b82: JUMPDEST
00004b83: PUSH0
00004b84: DUP1
00004b85: SWAP2
00004b86: PUSH1 0x40
00004b88: MLOAD
00004b89: PUSH1 0x20
00004b8b: DUP2
00004b8c: ADD
00004b8d: SWAP1
00004b8e: PUSH4 0x313ce567
00004b93: PUSH1 0xe0
00004b95: SHL
00004b96: DUP3
00004b97: MSTORE
00004b98: PUSH1 0x04
00004b9a: DUP2
00004b9b: MSTORE
00004b9c: PUSH2 0x4ba6
00004b9f: PUSH1 0x24
00004ba1: DUP3
00004ba2: PUSH2 0x0ee8
00004ba5: JUMP
00004ba6: JUMPDEST
00004ba7: MLOAD
00004ba8: SWAP2
00004ba9: PUSH1 0x01
00004bab: PUSH1 0x01
00004bad: PUSH1 0xa0
00004baf: SHL
00004bb0: SUB
00004bb1: AND
00004bb2: GAS
00004bb3: STATICCALL
00004bb4: PUSH2 0x4bbb
00004bb7: PUSH2 0x41a9
00004bba: JUMP
00004bbb: JUMPDEST
00004bbc: SWAP1
00004bbd: DUP1
00004bbe: PUSH2 0x4bf3
00004bc1: JUMPI
00004bc2: JUMPDEST
00004bc3: PUSH2 0x4bce
00004bc6: JUMPI
00004bc7: JUMPDEST
00004bc8: POP
00004bc9: PUSH0
00004bca: SWAP1
00004bcb: PUSH0
00004bcc: SWAP1
00004bcd: JUMP
00004bce: JUMPDEST
00004bcf: DUP1
00004bd0: PUSH1 0x20
00004bd2: DUP1
00004bd3: PUSH2 0x4be1
00004bd6: SWAP4
00004bd7: MLOAD
00004bd8: DUP4
00004bd9: ADD
00004bda: ADD
00004bdb: SWAP2
00004bdc: ADD
00004bdd: PUSH2 0x36a4
00004be0: JUMP
00004be1: JUMPDEST
00004be2: PUSH1 0xff
00004be4: DUP2
00004be5: GT
00004be6: PUSH2 0x4bc7
00004be9: JUMPI
00004bea: SWAP1
00004beb: PUSH1 0xff
00004bed: PUSH1 0x01
00004bef: SWAP3
00004bf0: AND
00004bf1: SWAP1
00004bf2: JUMP
00004bf3: JUMPDEST
00004bf4: POP
00004bf5: PUSH1 0x20
00004bf7: DUP2
00004bf8: MLOAD
00004bf9: LT
00004bfa: ISZERO
00004bfb: PUSH2 0x4bc2
00004bfe: JUMP
00004bff: JUMPDEST
00004c00: SWAP2
00004c01: DUP2
00004c02: DUP4
00004c03: MUL
00004c04: SWAP2
00004c05: PUSH0
00004c06: NOT
00004c07: DUP2
00004c08: DUP6
00004c09: MULMOD
00004c0a: SWAP4
00004c0b: DUP4
00004c0c: DUP1
00004c0d: DUP7
00004c0e: LT
00004c0f: SWAP6
00004c10: SUB
00004c11: SWAP5
00004c12: DUP1
00004c13: DUP7
00004c14: SUB
00004c15: SWAP6
00004c16: EQ
00004c17: PUSH2 0x4c84
00004c1a: JUMPI
00004c1b: DUP5
00004c1c: DUP4
00004c1d: GT
00004c1e: ISZERO
00004c1f: PUSH2 0x4c77
00004c22: JUMPI
00004c23: SWAP1
00004c24: DUP3
00004c25: SWAP2
00004c26: MULMOD
00004c27: DUP2
00004c28: PUSH0
00004c29: SUB
00004c2a: DUP3
00004c2b: AND
00004c2c: DUP1
00004c2d: SWAP3
00004c2e: DIV
00004c2f: PUSH1 0x02
00004c31: DUP2
00004c32: PUSH1 0x03
00004c34: MUL
00004c35: XOR
00004c36: DUP1
00004c37: DUP3
00004c38: MUL
00004c39: PUSH1 0x02
00004c3b: SUB
00004c3c: MUL
00004c3d: DUP1
00004c3e: DUP3
00004c3f: MUL
00004c40: PUSH1 0x02
00004c42: SUB
00004c43: MUL
00004c44: DUP1
00004c45: DUP3
00004c46: MUL
00004c47: PUSH1 0x02
00004c49: SUB
00004c4a: MUL
00004c4b: DUP1
00004c4c: DUP3
00004c4d: MUL
00004c4e: PUSH1 0x02
00004c50: SUB
00004c51: MUL
00004c52: DUP1
00004c53: DUP3
00004c54: MUL
00004c55: PUSH1 0x02
00004c57: SUB
00004c58: MUL
00004c59: DUP1
00004c5a: SWAP2
00004c5b: MUL
00004c5c: PUSH1 0x02
00004c5e: SUB
00004c5f: MUL
00004c60: SWAP4
00004c61: PUSH1 0x01
00004c63: DUP4
00004c64: DUP1
00004c65: PUSH0
00004c66: SUB
00004c67: DIV
00004c68: ADD
00004c69: SWAP1
00004c6a: DUP5
00004c6b: DUP4
00004c6c: GT
00004c6d: SWAP1
00004c6e: SUB
00004c6f: MUL
00004c70: SWAP3
00004c71: SUB
00004c72: DIV
00004c73: OR
00004c74: MUL
00004c75: SWAP1
00004c76: JUMP
00004c77: JUMPDEST
00004c78: PUSH1 0x11
00004c7a: PUSH1 0x03
00004c7c: DUP5
00004c7d: ISZERO
00004c7e: MUL
00004c7f: XOR
00004c80: PUSH2 0x4c91
00004c83: JUMP
00004c84: JUMPDEST
00004c85: POP
00004c86: POP
00004c87: SWAP1
00004c88: PUSH2 0x0fc7
00004c8b: SWAP3
00004c8c: POP
00004c8d: PUSH2 0x32d8
00004c90: JUMP
00004c91: JUMPDEST
00004c92: PUSH4 0x4e487b71
00004c97: PUSH0
00004c98: MSTORE
00004c99: PUSH1 0x20
00004c9b: MSTORE
00004c9c: PUSH1 0x24
00004c9e: PUSH1 0x1c
00004ca0: REVERT
00004ca1: INVALID
00004ca2: UNKNOWN(0xFC)
00004ca3: UNKNOWN(0xB0)
00004ca4: UNKNOWN(0xC3)
00004ca5: UNKNOWN(0x2C)
00004ca6: UNKNOWN(0x4F)
00004ca7: PUSH6 0x3382a412cb0c
00004cae: UNKNOWN(0xAA)
00004caf: PUSH11 0x29f9e46d74bae452ca200c
00004cbb: PUSH8 0xf1e5e638930052c6
00004cc4: ORIGIN
00004cc5: SELFBALANCE
00004cc6: UNKNOWN(0xE1)
00004cc7: DELEGATECALL
00004cc8: PUSH30 0xb19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1
00004ce7: DELEGATECALL
00004ce8: PUSH30 0xb19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72
00004d07: UNKNOWN(0xD4)
00004d08: UNKNOWN(0x0F)
00004d09: UNKNOWN(0xDA)
00004d0a: UNKNOWN(0xE2)
00004d0b: REVERT
00004d0c: DUP13
00004d0d: UNKNOWN(0xEA)
00004d0e: UNKNOWN(0xC6)
00004d0f: UNKNOWN(0xB6)
00004d10: UNKNOWN(0x23)
00004d11: UNKNOWN(0x4C)
00004d12: PUSH24 0x06214fd39c1cd1e609a0528c19930052c63247e1f47db19d
00004d2b: TLOAD
00004d2c: UNKNOWN(0xE0)
00004d2d: CHAINID
00004d2e: STOP
00004d2f: ADDRESS
00004d30: UNKNOWN(0xC4)
00004d31: SWAP8
00004d32: CREATE
00004d33: PUSH8 0xca4cebf71ba98eea
00004d3c: UNKNOWN(0xDA)
00004d3d: UNKNOWN(0xBE)
00004d3e: KECCAK256
00004d3f: UNKNOWN(0xBA)
00004d40: UNKNOWN(0xCE)
00004d41: MUL
00004d42: SSTORE
00004d43: UNKNOWN(0xD6)
00004d44: PUSH0
00004d45: EXTCODESIZE
00004d46: PC
00004d47: UNKNOWN(0x21)
00004d48: UNKNOWN(0xC6)
00004d49: PUSH8 0x16708cd5119fc8b6
00004d52: SLOAD
00004d53: DELEGATECALL
00004d54: PUSH26 0xbd23b96d0911cee852419047001d9ff85e70b948f53a2cc45fa6
00004d6f: DELEGATECALL
00004d70: UNKNOWN(0x2C)
00004d71: MUL
00004d72: SIGNEXTEND
00004d73: UNKNOWN(0x2A)
00004d74: DUP15
00004d75: UNKNOWN(0xEC)
00004d76: CALLER
00004d77: BLOBHASH
00004d78: CALLDATALOAD
00004d79: XOR
00004d7a: SSTORE
00004d7b: UNKNOWN(0xDE)
00004d7c: UNKNOWN(0xA9)
00004d7d: CHAINID
00004d7e: UNKNOWN(0xB0)
00004d7f: PUSH4 0x57000773
00004d84: UNKNOWN(0xE5)
00004d85: ORIGIN
00004d86: UNKNOWN(0xDF)
00004d87: UNKNOWN(0xED)
00004d88: UNKNOWN(0xE9)
00004d89: UNKNOWN(0x1F)
00004d8a: DIV
00004d8b: UNKNOWN(0xB1)
00004d8c: UNKNOWN(0x2A)
00004d8d: PUSH20 0xd3d2acd361424f41f76b4fb79f090161e36b4e00
00004da2: UNKNOWN(0xCD)
00004da3: MCOPY
00004da4: UNKNOWN(0xD1)
00004da5: TLOAD
00004da6: PUSH15 0x187e77e9aee88184c21f4f2182ab58
00004db6: UNKNOWN(0x27)
00004db7: UNKNOWN(0xCB)
00004db8: EXTCODESIZE
00004db9: PUSH31 0x07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817
00004dd9: UNKNOWN(0xE2)
00004dda: BASEFEE
00004ddb: PUSH14 0x003becc55f00f0c57e16840df040
00004dea: CALL
00004deb: POP
00004dec: DUP9
00004ded: UNKNOWN(0xDC)
00004dee: UNKNOWN(0x2F)
00004def: DUP2
00004df0: INVALID
00004df1: CODECOPY
00004df2: SHR
00004df3: CODECOPY
00004df4: UNKNOWN(0x23)
00004df5: UNKNOWN(0xBE)
00004df6: UNKNOWN(0xC7)
00004df7: RETURNDATACOPY
00004df8: UNKNOWN(0x23)
00004df9: UNKNOWN(0xA9)
00004dfa: PUSH7 0x2efc9c229c6a00
00004e02: UNKNOWN(0x23)
00004e03: PUSH31 0x158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00a2
00004e23: PUSH5 0x6970667358
00004e29: UNKNOWN(0x22)
00004e2a: SLT
00004e2b: KECCAK256
00004e2c: BLOCKHASH
00004e2d: UNKNOWN(0xE6)
00004e2e: CLZ
00004e2f: DUP9
00004e30: PUSH2 0x90d2
00004e33: UNKNOWN(0x21)
00004e34: MULMOD
00004e35: UNKNOWN(0xF7)
00004e36: UNKNOWN(0xC8)
00004e37: UNKNOWN(0xBA)
00004e38: SWAP16
00004e39: UNKNOWN(0xD1)
00004e3a: DUP9
00004e3b: UNKNOWN(0x2A)
00004e3c: UNKNOWN(0xC7)
00004e3d: UNKNOWN(0xD4)
00004e3e: UNKNOWN(0x2B)
00004e3f: UNKNOWN(0xED)
00004e40: CALLDATACOPY
00004e41: PUSH6 0x49a48b53b64c
00004e48: UNKNOWN(0xDC)
00004e49: UNKNOWN(0xEF)
00004e4a: UNKNOWN(0x1F)
00004e4b: UNKNOWN(0xD0)
00004e4c: PUSH5 0x736f6c6343
00004e52: STOP
00004e53: ADDMOD
00004e54: SAR
00004e55: STOP
00004e56: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high upgradeability codex Delegatecall to external ORDER_MANAGER_SINGLETON enables full vault takeover if that address is upgradeable/compromised 85 no
view
evidence_json
{
    "evidence": "The vault stores an external ORDER_MANAGER_SINGLETON and forwards critical operations through `delegatecall` in `_delegateCall`, giving the target full access to vault storage and assets.",
    "locations": [
        "contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:56",
        "contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:486"
    ],
    "recommendation": "Ensure ORDER_MANAGER_SINGLETON is a non-upgradeable, immutable implementation with a fixed codehash; consider validating codehash at deployment, or embed the order manager logic directly. If upgradeability is required, gate upgrades behind explicit, timelocked governance and document this trust assumption.",
    "exploit_scenario": "If ORDER_MANAGER_SINGLETON is a proxy or otherwise upgradeable, its admin (or a compromised key) can swap in malicious logic. Because the vault uses delegatecall for core actions, the new logic can overwrite vault storage, mint/burn shares, or transfer assets out, effectively draining user funds."
}
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0xcb6fb597656baf42caef05ee2276b9943499aafc10ce6d1a1c863031eb761b44
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0xcb6fb597656baf42caef05ee2276b9943499aafc10ce6d1a1c863031eb761b44",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0a28a477",
            "selector": "0x0a28a477",
            "calldata_variants": [
                "0x0a28a477",
                "0x0a28a4770000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0d8e6e2c",
            "selector": "0x0d8e6e2c",
            "calldata_variants": [
                "0x0d8e6e2c",
                "0x0d8e6e2c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f4f0c32",
            "selector": "0x0f4f0c32",
            "calldata_variants": [
                "0x0f4f0c32",
                "0x0f4f0c320000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ffbfda4",
            "selector": "0x0ffbfda4",
            "calldata_variants": [
                "0x0ffbfda4",
                "0x0ffbfda40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 16900,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 19655,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 19687,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 19652,
            "type": "tx_origin_used"
        },
        {
            "pc": 19845,
            "type": "tx_origin_used"
        }
    ],
    "delegatecall_count": 5,
    "untrusted_delegatecall_count": 5
}
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0a28a477",
            "selector": "0x0a28a477",
            "calldata_variants": [
                "0x0a28a477",
                "0x0a28a4770000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0d8e6e2c",
            "selector": "0x0d8e6e2c",
            "calldata_variants": [
                "0x0d8e6e2c",
                "0x0d8e6e2c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f4f0c32",
            "selector": "0x0f4f0c32",
            "calldata_variants": [
                "0x0f4f0c32",
                "0x0f4f0c320000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ffbfda4",
            "selector": "0x0ffbfda4",
            "calldata_variants": [
                "0x0ffbfda4",
                "0x0ffbfda40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 19652,
            "type": "tx_origin_used"
        },
        {
            "pc": 19845,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xbeac665ecafdefeaef15f0aa464729cedcfafc50d43f1429af10bb2c4a0adc73
call_targets: 0x1d9d0956621bf85d1d4cafc92d76a0448a5e6b9b
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xbeac665ecafdefeaef15f0aa464729cedcfafc50d43f1429af10bb2c4a0adc73",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x1d9d0956621bf85d1d4cafc92d76a0448a5e6b9b"
    ],
    "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": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0a28a477",
            "selector": "0x0a28a477",
            "calldata_variants": [
                "0x0a28a477",
                "0x0a28a4770000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0d8e6e2c",
            "selector": "0x0d8e6e2c",
            "calldata_variants": [
                "0x0d8e6e2c",
                "0x0d8e6e2c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f4f0c32",
            "selector": "0x0f4f0c32",
            "calldata_variants": [
                "0x0f4f0c32",
                "0x0f4f0c320000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ffbfda4",
            "selector": "0x0ffbfda4",
            "calldata_variants": [
                "0x0ffbfda4",
                "0x0ffbfda40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 19058,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 19946,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": [
        {
            "pc": 19652,
            "type": "tx_origin_used"
        },
        {
            "pc": 19845,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0x962a617863071928196c4ac63bed21ccdfc74673055db8adbd2ba8fe1428e272
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0x962a617863071928196c4ac63bed21ccdfc74673055db8adbd2ba8fe1428e272",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0a28a477",
            "selector": "0x0a28a477",
            "calldata_variants": [
                "0x0a28a477",
                "0x0a28a4770000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0d8e6e2c",
            "selector": "0x0d8e6e2c",
            "calldata_variants": [
                "0x0d8e6e2c",
                "0x0d8e6e2c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f4f0c32",
            "selector": "0x0f4f0c32",
            "calldata_variants": [
                "0x0f4f0c32",
                "0x0f4f0c320000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ffbfda4",
            "selector": "0x0ffbfda4",
            "calldata_variants": [
                "0x0ffbfda4",
                "0x0ffbfda40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 1,
    "create2_count": 0
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xbeac665ecafdefeaef15f0aa464729cedcfafc50d43f1429af10bb2c4a0adc73
call_targets: 0x1d9d0956621bf85d1d4cafc92d76a0448a5e6b9b
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xbeac665ecafdefeaef15f0aa464729cedcfafc50d43f1429af10bb2c4a0adc73",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x1d9d0956621bf85d1d4cafc92d76a0448a5e6b9b"
    ],
    "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": "0x01e1d114",
            "selector": "0x01e1d114",
            "calldata_variants": [
                "0x01e1d114",
                "0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07a2d13a",
            "selector": "0x07a2d13a",
            "calldata_variants": [
                "0x07a2d13a",
                "0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095ea7b3",
            "selector": "0x095ea7b3",
            "calldata_variants": [
                "0x095ea7b3",
                "0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0a28a477",
            "selector": "0x0a28a477",
            "calldata_variants": [
                "0x0a28a477",
                "0x0a28a4770000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0d8e6e2c",
            "selector": "0x0d8e6e2c",
            "calldata_variants": [
                "0x0d8e6e2c",
                "0x0d8e6e2c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f4f0c32",
            "selector": "0x0f4f0c32",
            "calldata_variants": [
                "0x0f4f0c32",
                "0x0f4f0c320000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0ffbfda4",
            "selector": "0x0ffbfda4",
            "calldata_variants": [
                "0x0ffbfda4",
                "0x0ffbfda40000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 19058,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 19946,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [
        {
            "pc": 19652,
            "type": "tx_origin_used"
        },
        {
            "pc": 19845,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 2
}
medium access_control codex afterSwap callback is publicly callable with unvalidated parameters 75 no
view
evidence_json
{
    "evidence": "`afterSwap` is an external function with only a pause check and forwards user-supplied parameters directly into the order manager via delegatecall; there is no caller authentication in the vault.",
    "locations": [
        "contracts/contracts/v1plus/vault/TermMaxVaultV1Plus.sol:826"
    ],
    "recommendation": "Restrict `afterSwap` to authorized order contracts (e.g., require `_orderMapping[msg.sender]` to be set), validate the reserve/delta inputs against order state, and consider adding `nonReentrant` or a dedicated reentrancy guard for the callback.",
    "exploit_scenario": "Any account can call `afterSwap` with arbitrary reserve/delta values (or reenter during token transfers) to trigger the order manager\u2019s accounting logic. If the order manager relies on these inputs without strict caller validation, an attacker can skew interest/fee accounting or induce inconsistent state, potentially affecting share pricing and withdrawals."
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 5
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 1,
    "create2_count": 0
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 5
}