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

Analysis Run

9707eaa0-327d-4499-891d-f96c86f59835

failed
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 9:58 PM
Review Summary

What survived the funnel

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

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

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30587 report.consolidate complete 1 / 1 3 months ago
104381 artifact.fetch failed 1 / 3 1 week ago
104382 tool.cast_disasm complete 1 / 3 1 week ago
104383 analysis.bundle complete 1 / 3 1 week ago
104384 capability.graph complete 1 / 3 1 week ago
104385 detector.run complete 1 / 3 1 week ago
104386 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
1 low-severity issue found in Usm where sellAsset can pull more underlying than the caller’s maxAmount due to fee/rounding adjustments.
View stderr
[codex:1525766] OpenAI Codex v0.77.0 (research preview)
[codex:1525766] --------
[codex:1525766] workdir: /tmp/codex-multi-2bssvp1n
[codex:1525766] model: gpt-5.2-codex
[codex:1525766] provider: openai
[codex:1525766] approval: never
[codex:1525766] sandbox: read-only
[codex:1525766] reasoning effort: xhigh
[codex:1525766] reasoning summaries: auto
[codex:1525766] session id: 019b6c19-48b9-7f53-a23d-90fce7ee1988
[codex:1525766] --------
[codex:1525766] user
[codex:1525766] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1525766] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1525766] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1525766] 
[codex:1525766] Scope rules:
[codex:1525766] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1525766] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1525766] 
[codex:1525766] Output MUST be valid JSON matching the provided schema.
[codex:1525766] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1525766] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1525766] 
[codex:1525766] Output constraints (IMPORTANT):
[codex:1525766] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1525766] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1525766] mcp startup: no servers
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Reading AUDIT_BUNDLE file**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc ls in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] AUDIT_BUNDLE.txt
[codex:1525766] codex-output-schema.json
[codex:1525766] contracts
[codex:1525766] exec
[codex:1525766] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1525766] 
[codex:1525766] ================================================================================
[codex:1525766] FILE: contracts/contracts/lending/interfaces/IMintableERC20.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766] pragma solidity ^0.8.22;
[codex:1525766] 
[codex:1525766] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1525766] 
[codex:1525766] /// @title IMintableERC20
[codex:1525766] /// @author GPM
[codex:1525766] /// @custom:contact security@altofoundation.org
[codex:1525766] /// @notice Interface for mintable ERC20 tokens.
[codex:1525766] /// @dev This is used as a borrow token in the AltoMintMarket contract.
[codex:1525766] interface IMintableERC20 is IERC20 {
[codex:1525766]     /// @notice Mints tokens to an address.
[codex:1525766]     /// @param to The address to mint tokens to.
[codex:1525766]     /// @param amount The amount of tokens to mint.
[codex:1525766]     function mint(address to, uint256 amount) external;
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Dealing with large audit bundle file**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-2bssvp1n succeeded in 9ms:
[codex:1525766] 4:FILE: contracts/contracts/lending/interfaces/IMintableERC20.sol
[codex:1525766] 29:FILE: contracts/contracts/tokens/interfaces/IDUSD.sol
[codex:1525766] 115:FILE: contracts/contracts/usm/DUSDUsm.sol
[codex:1525766] 155:FILE: contracts/contracts/usm/Usm.sol
[codex:1525766] 743:FILE: contracts/contracts/usm/interfaces/IStableTokenFacilitator.sol
[codex:1525766] 792:FILE: contracts/contracts/usm/interfaces/IUsm.sol
[codex:1525766] 1169:FILE: contracts/contracts/usm/interfaces/IUsmFeeStrategy.sol
[codex:1525766] 1231:FILE: contracts/contracts/usm/interfaces/IUsmPriceStrategy.sol
[codex:1525766] 1300:FILE: contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol
[codex:1525766] 1536:FILE: contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol
[codex:1525766] 1778:FILE: contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol
[codex:1525766] 1934:FILE: contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol
[codex:1525766] 1972:FILE: contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol
[codex:1525766] 2007:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol
[codex:1525766] 2109:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable.sol
[codex:1525766] 2213:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol
[codex:1525766] 2303:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol
[codex:1525766] 2313:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol
[codex:1525766] 2341:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol
[codex:1525766] 2351:FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Segmenting USM file for review**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '155,350p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] FILE: contracts/contracts/usm/Usm.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766] pragma solidity ^0.8.10;
[codex:1525766] 
[codex:1525766] import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1525766] import {IStableTokenFacilitator} from "./interfaces/IStableTokenFacilitator.sol";
[codex:1525766] import {IUsmPriceStrategy} from "./interfaces/IUsmPriceStrategy.sol";
[codex:1525766] import {IUsmFeeStrategy} from "./interfaces/IUsmFeeStrategy.sol";
[codex:1525766] import {IUsm, AccessMode} from "./interfaces/IUsm.sol";
[codex:1525766] import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1525766] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1525766] import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
[codex:1525766] import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
[codex:1525766] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1525766] 
[codex:1525766] /**
[codex:1525766]  * @title Usm
[codex:1525766]  * @author GPM
[codex:1525766]  * @author Adapted from Aave (https://github.com/aave/gho-core/)
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '350,550p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766]         }
[codex:1525766] 
[codex:1525766]         emit Seized(msg.sender, _stableTokenTreasury, underlyingBalance, stableTokenMinted);
[codex:1525766]         return underlyingBalance;
[codex:1525766]     }
[codex:1525766] 
[codex:1525766]     /// @inheritdoc IUsm
[codex:1525766]     function burnAfterSeize(uint256 amount) external onlyRole(LIQUIDATOR_ROLE) returns (uint256) {
[codex:1525766]         require(_isSeized, "USM_NOT_SEIZED");
[codex:1525766]         require(amount > 0, "INVALID_AMOUNT");
[codex:1525766] 
[codex:1525766]         uint256 stableTokenMinted = _getCurrentlyMintedStableTokenByUsm();
[codex:1525766]         if (amount > stableTokenMinted) {
[codex:1525766]             amount = stableTokenMinted;
[codex:1525766]         }
[codex:1525766]         IERC20(STABLE_TOKEN).safeTransferFrom(msg.sender, address(this), amount);
[codex:1525766]         _burnStableToken(address(this), amount);
[codex:1525766] 
[codex:1525766]         emit BurnAfterSeize(msg.sender, amount, (stableTokenMinted - amount));
[codex:1525766]         return amount;
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '550,742p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766]     }
[codex:1525766] 
[codex:1525766]     /**
[codex:1525766]      * @dev Hook that is called before `buyAsset`.
[codex:1525766]      * @dev This can be used to add custom logic
[codex:1525766]      * @param originator Originator of the request
[codex:1525766]      * @param amount The amount of the underlying asset desired for purchase
[codex:1525766]      * @param receiver Recipient address of the underlying asset being purchased
[codex:1525766]      */
[codex:1525766]     function _beforeBuyAsset(address originator, uint256 amount, address receiver) internal virtual {}
[codex:1525766] 
[codex:1525766]     /**
[codex:1525766]      * @dev Sells an underlying asset for Stable Token
[codex:1525766]      * @param originator The originator of the request
[codex:1525766]      * @param maxAmount The maximum amount of the underlying asset desired to sell
[codex:1525766]      * @param receiver The recipient address of the Stable Token being purchased
[codex:1525766]      * @return The amount of underlying asset sold
[codex:1525766]      * @return The amount of Stable Token bought by the user
[codex:1525766]      */
[codex:1525766]     function _sellAsset(address originator, uint256 maxAmount, address receiver) internal returns (uint256, uint256) {
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Planning full AUDIT_BUNDLE review**
[codex:1525766] 
[codex:1525766] I’m preparing to thoroughly read the entire 5122-line AUDIT_BUNDLE file in manageable chunks, starting with the first 154 lines covering key interfaces like IMintableERC20, IDUSD, and DUSDUsm, to ensure nothing is missed before moving on to analysis.
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '1,154p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1525766] 
[codex:1525766] ================================================================================
[codex:1525766] FILE: contracts/contracts/lending/interfaces/IMintableERC20.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766] pragma solidity ^0.8.22;
[codex:1525766] 
[codex:1525766] import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1525766] 
[codex:1525766] /// @title IMintableERC20
[codex:1525766] /// @author GPM
[codex:1525766] /// @custom:contact security@altofoundation.org
[codex:1525766] /// @notice Interface for mintable ERC20 tokens.
[codex:1525766] /// @dev This is used as a borrow token in the AltoMintMarket contract.
[codex:1525766] interface IMintableERC20 is IERC20 {
[codex:1525766]     /// @notice Mints tokens to an address.
[codex:1525766]     /// @param to The address to mint tokens to.
[codex:1525766]     /// @param amount The amount of tokens to mint.
[codex:1525766]     function mint(address to, uint256 amount) external;
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Identifying interfaces for extraction**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '743,1300p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] FILE: contracts/contracts/usm/interfaces/IStableTokenFacilitator.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766] pragma solidity ^0.8.0;
[codex:1525766] 
[codex:1525766] /**
[codex:1525766]  * @title IStableTokenFacilitator
[codex:1525766]  * @author GPM
[codex:1525766]  * @author Adapted from Aave (https://github.com/aave/gho-core/)
[codex:1525766]  * @custom:contact security@altofoundation.org
[codex:1525766]  * @notice Defines the behavior of a Stable Token Facilitator
[codex:1525766]  */
[codex:1525766] interface IStableTokenFacilitator {
[codex:1525766]     /**
[codex:1525766]      * @dev Emitted when fees are distributed to the fee recipient
[codex:1525766]      * @param feeRecipient The address of the Fee Recipient
[codex:1525766]      * @param asset The address of the asset transferred to the fee recipient
[codex:1525766]      * @param amount The amount of the asset transferred to the Fee Recipient
[codex:1525766]      */
[codex:1525766]     event FeesDistributedToFeeRecipient(address indexed feeRecipient, address indexed asset, uint256 amount);
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Planning staged reading of AUDIT_BUNDLE**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '1300,1700p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] FILE: contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766] // OpenZeppelin Contracts (last updated v5.3.0) (access/AccessControl.sol)
[codex:1525766] 
[codex:1525766] pragma solidity ^0.8.20;
[codex:1525766] 
[codex:1525766] import {IAccessControl} from "@openzeppelin/contracts/access/IAccessControl.sol";
[codex:1525766] import {ContextUpgradeable} from "../utils/ContextUpgradeable.sol";
[codex:1525766] import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
[codex:1525766] import {ERC165Upgradeable} from "../utils/introspection/ERC165Upgradeable.sol";
[codex:1525766] import {Initializable} from "../proxy/utils/Initializable.sol";
[codex:1525766] 
[codex:1525766] /**
[codex:1525766]  * @dev Contract module that allows children to implement role-based access
[codex:1525766]  * control mechanisms. This is a lightweight version that doesn't allow enumerating role
[codex:1525766]  * members except through off-chain means by accessing the contract event logs. Some
[codex:1525766]  * applications may benefit from on-chain enumerability, for those cases see
[codex:1525766]  * {AccessControlEnumerable}.
[codex:1525766]  *
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Planning chunked reading**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '1700,2100p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766]         emit Initialized(version);
[codex:1525766]     }
[codex:1525766] 
[codex:1525766]     /**
[codex:1525766]      * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the
[codex:1525766]      * {initializer} and {reinitializer} modifiers, directly or indirectly.
[codex:1525766]      */
[codex:1525766]     modifier onlyInitializing() {
[codex:1525766]         _checkInitializing();
[codex:1525766]         _;
[codex:1525766]     }
[codex:1525766] 
[codex:1525766]     /**
[codex:1525766]      * @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.
[codex:1525766]      */
[codex:1525766]     function _checkInitializing() internal view virtual {
[codex:1525766]         if (!_isInitializing()) {
[codex:1525766]             revert NotInitializing();
[codex:1525766]         }
[codex:1525766]     }
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Continuing to review next lines**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '2100,2500p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766]      *
[codex:1525766]      * Requirements:
[codex:1525766]      *
[codex:1525766]      * - the caller must be `callerConfirmation`.
[codex:1525766]      */
[codex:1525766]     function renounceRole(bytes32 role, address callerConfirmation) external;
[codex:1525766] }
[codex:1525766] 
[codex:1525766] ================================================================================
[codex:1525766] FILE: contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766] // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
[codex:1525766] 
[codex:1525766] pragma solidity ^0.8.20;
[codex:1525766] 
[codex:1525766] import {Context} from "../utils/Context.sol";
[codex:1525766] 
[codex:1525766] /**
[codex:1525766]  * @dev Contract module which provides a basic access control mechanism, where
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Continuing to review code lines**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '2500,2900p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766]      * @dev Returns the current beacon.
[codex:1525766]      */
[codex:1525766]     function getBeacon() internal view returns (address) {
[codex:1525766]         return StorageSlot.getAddressSlot(BEACON_SLOT).value;
[codex:1525766]     }
[codex:1525766] 
[codex:1525766]     /**
[codex:1525766]      * @dev Stores a new beacon in the ERC-1967 beacon slot.
[codex:1525766]      */
[codex:1525766]     function _setBeacon(address newBeacon) private {
[codex:1525766]         if (newBeacon.code.length == 0) {
[codex:1525766]             revert ERC1967InvalidBeacon(newBeacon);
[codex:1525766]         }
[codex:1525766] 
[codex:1525766]         StorageSlot.getAddressSlot(BEACON_SLOT).value = newBeacon;
[codex:1525766] 
[codex:1525766]         address beaconImplementation = IBeacon(newBeacon).implementation();
[codex:1525766]         if (beaconImplementation.code.length == 0) {
[codex:1525766]             revert ERC1967InvalidImplementation(beaconImplementation);
[codex:1525766]         }
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Continuing file exploration**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '2900,3300p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766]      * `transfer`. {sendValue} removes this limitation.
[codex:1525766]      *
[codex:1525766]      * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].
[codex:1525766]      *
[codex:1525766]      * IMPORTANT: because control is transferred to `recipient`, care must be
[codex:1525766]      * taken to not create reentrancy vulnerabilities. Consider using
[codex:1525766]      * {ReentrancyGuard} or the
[codex:1525766]      * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
[codex:1525766]      */
[codex:1525766]     function sendValue(address payable recipient, uint256 amount) internal {
[codex:1525766]         if (address(this).balance < amount) {
[codex:1525766]             revert Errors.InsufficientBalance(address(this).balance, amount);
[codex:1525766]         }
[codex:1525766] 
[codex:1525766]         (bool success, bytes memory returndata) = recipient.call{value: amount}("");
[codex:1525766]         if (!success) {
[codex:1525766]             _revert(returndata);
[codex:1525766]         }
[codex:1525766]     }
[codex:1525766] 
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Continuing file review**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '3300,3700p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 5ms:
[codex:1525766]     /**
[codex:1525766]      * @dev An int value doesn't fit in an uint of `bits` size.
[codex:1525766]      */
[codex:1525766]     error SafeCastOverflowedIntToUint(int256 value);
[codex:1525766] 
[codex:1525766]     /**
[codex:1525766]      * @dev Value doesn't fit in an int of `bits` size.
[codex:1525766]      */
[codex:1525766]     error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);
[codex:1525766] 
[codex:1525766]     /**
[codex:1525766]      * @dev An uint value doesn't fit in an int of `bits` size.
[codex:1525766]      */
[codex:1525766]     error SafeCastOverflowedUintToInt(uint256 value);
[codex:1525766] 
[codex:1525766]     /**
[codex:1525766]      * @dev Returns the downcasted uint248 from uint256, reverting on
[codex:1525766]      * overflow (when the input is greater than largest uint248).
[codex:1525766]      *
[codex:1525766]      * Counterpart to Solidity's `uint248` operator.
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Scrolling through large chunk**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '3700,4100p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 5ms:
[codex:1525766]         if (value > type(uint72).max) {
[codex:1525766]             revert SafeCastOverflowedUintDowncast(72, value);
[codex:1525766]         }
[codex:1525766]         return uint72(value);
[codex:1525766]     }
[codex:1525766] 
[codex:1525766]     /**
[codex:1525766]      * @dev Returns the downcasted uint64 from uint256, reverting on
[codex:1525766]      * overflow (when the input is greater than largest uint64).
[codex:1525766]      *
[codex:1525766]      * Counterpart to Solidity's `uint64` operator.
[codex:1525766]      *
[codex:1525766]      * Requirements:
[codex:1525766]      *
[codex:1525766]      * - input must fit into 64 bits
[codex:1525766]      */
[codex:1525766]     function toUint64(uint256 value) internal pure returns (uint64) {
[codex:1525766]         if (value > type(uint64).max) {
[codex:1525766]             revert SafeCastOverflowedUintDowncast(64, value);
[codex:1525766]         }
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Evaluating strategies for full file reading**
[codex:1525766] 
[codex:1525766] I'm considering how to meet the requirement to fully read the AUDIT_BUNDLE file by processing it in chunks. Since it's quite large, I’m weighing options like using python or shell commands to read efficiently without overwhelming the response size, and deciding to continue chunked reading to cover all relevant parts thoroughly.
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '4100,4500p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766]      */
[codex:1525766]     function toInt144(int256 value) internal pure returns (int144 downcasted) {
[codex:1525766]         downcasted = int144(value);
[codex:1525766]         if (downcasted != value) {
[codex:1525766]             revert SafeCastOverflowedIntDowncast(144, value);
[codex:1525766]         }
[codex:1525766]     }
[codex:1525766] 
[codex:1525766]     /**
[codex:1525766]      * @dev Returns the downcasted int136 from int256, reverting on
[codex:1525766]      * overflow (when the input is less than smallest int136 or
[codex:1525766]      * greater than largest int136).
[codex:1525766]      *
[codex:1525766]      * Counterpart to Solidity's `int136` operator.
[codex:1525766]      *
[codex:1525766]      * Requirements:
[codex:1525766]      *
[codex:1525766]      * - input must fit into 136 bits
[codex:1525766]      */
[codex:1525766]     function toInt136(int256 value) internal pure returns (int136 downcasted) {
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Continuing to review additional lines**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '4500,4900p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766] 
[codex:1525766]     function send(
[codex:1525766]         MessagingParams calldata _params,
[codex:1525766]         address _refundAddress
[codex:1525766]     ) external payable returns (MessagingReceipt memory);
[codex:1525766] 
[codex:1525766]     function verify(Origin calldata _origin, address _receiver, bytes32 _payloadHash) external;
[codex:1525766] 
[codex:1525766]     function verifiable(Origin calldata _origin, address _receiver) external view returns (bool);
[codex:1525766] 
[codex:1525766]     function initializable(Origin calldata _origin, address _receiver) external view returns (bool);
[codex:1525766] 
[codex:1525766]     function lzReceive(
[codex:1525766]         Origin calldata _origin,
[codex:1525766]         address _receiver,
[codex:1525766]         bytes32 _guid,
[codex:1525766]         bytes calldata _message,
[codex:1525766]         bytes calldata _extraData
[codex:1525766]     ) external payable;
[codex:1525766] 
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Continuing file review**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "sed -n '4900,5122p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2bssvp1n succeeded in 6ms:
[codex:1525766]      *
[codex:1525766]      * @dev If the caller is trying to pay in the specified lzToken, then the lzTokenFee is passed to the endpoint.
[codex:1525766]      * @dev Any excess sent, is passed back to the specified _refundAddress in the _lzSend().
[codex:1525766]      */
[codex:1525766]     function _payLzToken(uint256 _lzTokenFee) internal virtual {
[codex:1525766]         // @dev Cannot cache the token because it is not immutable in the endpoint.
[codex:1525766]         address lzToken = endpoint.lzToken();
[codex:1525766]         if (lzToken == address(0)) revert LzTokenUnavailable();
[codex:1525766] 
[codex:1525766]         // Pay LZ token fee by sending tokens to the endpoint.
[codex:1525766]         IERC20(lzToken).safeTransferFrom(msg.sender, address(endpoint), _lzTokenFee);
[codex:1525766]     }
[codex:1525766] }
[codex:1525766] 
[codex:1525766] ================================================================================
[codex:1525766] FILE: contracts/node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol
[codex:1525766] ================================================================================
[codex:1525766] // SPDX-License-Identifier: MIT
[codex:1525766] 
[codex:1525766] pragma solidity ^0.8.20;
[codex:1525766] 
[codex:1525766] 
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Evaluating USM contract for vulnerabilities**
[codex:1525766] thinking
[codex:1525766] **Highlighting accounting and slippage concerns**
[codex:1525766] 
[codex:1525766] I’m noticing the sellAsset function lacks a check ensuring the actual asset amount sold doesn’t exceed the user’s maxAmount due to rounding and price conversions, which can cause users to spend more underlying than intended. Also, fee-on-transfer tokens may cause exposure mismatches since the contract assumes full transfer amounts. There are risks with token rebasing and external contract updates that could affect accounting integrity or cause reverts, so these math and accounting nuances deserve careful attention.
[codex:1525766] thinking
[codex:1525766] **Evaluating low-severity issues and upgrade nuances**
[codex:1525766] 
[codex:1525766] I’m reviewing the missing maxAmount enforcement in sellAsset, confirming it can cause user overspending due to rounding and fee calculations—a low-severity correctness bug. I’m also noting possible subtle upgradeability quirks with immutable variables in proxy deployments and access control nuances, but no high-severity vulnerabilities stand out. I’ll prepare a detailed JSON summary with these key findings and supporting evidence from the code.
[codex:1525766] exec
[codex:1525766] /bin/bash -lc 'rg -n "function _sellAsset" contracts/contracts/usm/Usm.sol' in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766] 413:    function _sellAsset(address originator, uint256 maxAmount, address receiver) internal returns (uint256, uint256) {
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Reviewing code around line 413**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "nl -ba contracts/contracts/usm/Usm.sol | sed -n '400,460p'" in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766]    400	     * @param amount The amount of the underlying asset desired for purchase
[codex:1525766]    401	     * @param receiver Recipient address of the underlying asset being purchased
[codex:1525766]    402	     */
[codex:1525766]    403	    function _beforeBuyAsset(address originator, uint256 amount, address receiver) internal virtual {}
[codex:1525766]    404	
[codex:1525766]    405	    /**
[codex:1525766]    406	     * @dev Sells an underlying asset for Stable Token
[codex:1525766]    407	     * @param originator The originator of the request
[codex:1525766]    408	     * @param maxAmount The maximum amount of the underlying asset desired to sell
[codex:1525766]    409	     * @param receiver The recipient address of the Stable Token being purchased
[codex:1525766]    410	     * @return The amount of underlying asset sold
[codex:1525766]    411	     * @return The amount of Stable Token bought by the user
[codex:1525766]    412	     */
[codex:1525766]    413	    function _sellAsset(address originator, uint256 maxAmount, address receiver) internal returns (uint256, uint256) {
[codex:1525766]    414	        (uint256 assetAmount, uint256 stableTokenBought, uint256 grossAmount, uint256 fee) =
[codex:1525766]    415	            _calculateStableTokenAmountForSellAsset(maxAmount);
[codex:1525766]    416	
[codex:1525766]    417	        _beforeSellAsset(originator, assetAmount, receiver);
[codex:1525766]    418	
[codex:1525766]    419	        require(assetAmount > 0, "INVALID_AMOUNT");
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Analyzing potential maxAmount check vulnerability**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc 'rg -n "_calculateStableTokenAmountForSellAsset" contracts/contracts/usm/Usm.sol' in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766] 271:        return _calculateStableTokenAmountForSellAsset(maxAssetAmount);
[codex:1525766] 415:            _calculateStableTokenAmountForSellAsset(maxAmount);
[codex:1525766] 476:    function _calculateStableTokenAmountForSellAsset(uint256 assetAmount)
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Reviewing additional lines**
[codex:1525766] exec
[codex:1525766] /bin/bash -lc "nl -ba contracts/contracts/usm/Usm.sol | sed -n '470,520p'" in /tmp/codex-multi-2bssvp1n succeeded in 7ms:
[codex:1525766]    470	     * @param assetAmount The amount of underlying asset to sell
[codex:1525766]    471	     * @return The exact amount of asset the user sells
[codex:1525766]    472	     * @return The total amount of Stable Token the user buys (gross amount in Stable Token minus fee)
[codex:1525766]    473	     * @return The gross amount of Stable Token
[codex:1525766]    474	     * @return The fee amount in Stable Token, applied to the gross amount of Stable Token
[codex:1525766]    475	     */
[codex:1525766]    476	    function _calculateStableTokenAmountForSellAsset(uint256 assetAmount)
[codex:1525766]    477	        internal
[codex:1525766]    478	        view
[codex:1525766]    479	        returns (uint256, uint256, uint256, uint256)
[codex:1525766]    480	    {
[codex:1525766]    481	        bool withFee = _feeStrategy != address(0);
[codex:1525766]    482	        // pick the lowest Stable Token amount possible for given asset amount
[codex:1525766]    483	        uint256 grossAmount = IUsmPriceStrategy(priceStrategy).getAssetPriceInStableToken(assetAmount, false);
[codex:1525766]    484	        uint256 fee = withFee ? IUsmFeeStrategy(_feeStrategy).getSellFee(grossAmount) : 0;
[codex:1525766]    485	        uint256 stableTokenBought = grossAmount - fee;
[codex:1525766]    486	        uint256 finalGrossAmount =
[codex:1525766]    487	            withFee ? IUsmFeeStrategy(_feeStrategy).getGrossAmountFromTotalSold(stableTokenBought) : stableTokenBought;
[codex:1525766]    488	        // pick the highest asset amount possible for given Stable Token amount
[codex:1525766]    489	        uint256 finalAssetAmount = IUsmPriceStrategy(priceStrategy).getStableTokenPriceInAsset(finalGrossAmount, true);
[codex:1525766] 
[codex:1525766] thinking
[codex:1525766] **Preparing JSON report for rounding issue**
[codex:1525766] 
[codex:1525766] I'm putting together a JSON object that summarizes a low-severity math issue with `sellAsset` in `Usm`, where rounding and fee adjustments can cause asset amounts to exceed the caller's max. I'll include a clear summary, finding details, exploit scenario, recommendation, evidence, and code locations, making sure the summary is a clean string and the JSON is valid.
[codex:1525766] codex
[codex:1525766] {"no_findings":false,"summary":"1 low-severity issue found in Usm where sellAsset can pull more underlying than the caller’s maxAmount due to fee/rounding adjustments.","findings":[{"severity":"low","category":"math","title":"sellAsset does not enforce the caller’s maxAmount after fee/rounding adjustments","exploit_scenario":"If the fee strategy rounds up and price conversions round up, _calculateStableTokenAmountForSellAsset(maxAmount) can return an assetAmount slightly greater than maxAmount. When a user has pre-approved a larger allowance, sellAsset will transfer the larger amount, exceeding the user’s intended cap and allowing a malicious UI or attacker to overcharge.","recommendation":"After computing assetAmount in _sellAsset, add a guard such as require(assetAmount <= maxAmount, \"EXCESS_ASSET_AMOUNT\"), or adjust _calculateStableTokenAmountForSellAsset so it never returns a value above the caller’s max input.","evidence":"_sellAsset computes assetAmount from maxAmount and transfers that amount without checking it against maxAmount. The calculation explicitly rounds the final asset amount up (getStableTokenPriceInAsset(..., true)), which can exceed the input when fees are applied.","locations":["contracts/contracts/usm/Usm.sol:413","contracts/contracts/usm/Usm.sol:476"]}]}
[codex:1525766] tokens used
[codex:1525766] 86,549
[codex:1525766] {"no_findings":false,"summary":"1 low-severity issue found in Usm where sellAsset can pull more underlying than the caller’s maxAmount due to fee/rounding adjustments.","findings":[{"severity":"low","category":"math","title":"sellAsset does not enforce the caller’s maxAmount after fee/rounding adjustments","exploit_scenario":"If the fee strategy rounds up and price conversions round up, _calculateStableTokenAmountForSellAsset(maxAmount) can return an assetAmount slightly greater than maxAmount. When a user has pre-approved a larger allowance, sellAsset will transfer the larger amount, exceeding the user’s intended cap and allowing a malicious UI or attacker to overcharge.","recommendation":"After computing assetAmount in _sellAsset, add a guard such as require(assetAmount <= maxAmount, \"EXCESS_ASSET_AMOUNT\"), or adjust _calculateStableTokenAmountForSellAsset so it never returns a value above the caller’s max input.","evidence":"_sellAsset computes assetAmount from maxAmount and transfers that amount without checking it against maxAmount. The calculation explicitly rounds the final asset amount up (getStableTokenPriceInAsset(..., true)), which can exceed the input when fees are applied.","locations":["contracts/contracts/usm/Usm.sol:413","contracts/contracts/usm/Usm.sol:476"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T21:58:34.648555+00:00",
        "returncode": 0
    },
    "summary": "1 low-severity issue found in Usm where sellAsset can pull more underlying than the caller\u2019s maxAmount due to fee/rounding adjustments.",
    "raw_final": {
        "summary": "1 low-severity issue found in Usm where sellAsset can pull more underlying than the caller\u2019s maxAmount due to fee/rounding adjustments.",
        "findings": [
            {
                "title": "sellAsset does not enforce the caller\u2019s maxAmount after fee/rounding adjustments",
                "category": "math",
                "evidence": "_sellAsset computes assetAmount from maxAmount and transfers that amount without checking it against maxAmount. The calculation explicitly rounds the final asset amount up (getStableTokenPriceInAsset(..., true)), which can exceed the input when fees are applied.",
                "severity": "low",
                "locations": [
                    "contracts/contracts/usm/Usm.sol:413",
                    "contracts/contracts/usm/Usm.sol:476"
                ],
                "recommendation": "After computing assetAmount in _sellAsset, add a guard such as require(assetAmount <= maxAmount, \"EXCESS_ASSET_AMOUNT\"), or adjust _calculateStableTokenAmountForSellAsset so it never returns a value above the caller\u2019s max input.",
                "exploit_scenario": "If the fee strategy rounds up and price conversions round up, _calculateStableTokenAmountForSellAsset(maxAmount) can return an assetAmount slightly greater than maxAmount. When a user has pre-approved a larger allowance, sellAsset will transfer the larger amount, exceeding the user\u2019s intended cap and allowing a malicious UI or attacker to overcharge."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
25
EXT*/BALANCE
6
Total opcodes
8195
Flags
delegatecall_present heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x028b
0000000c: JUMPI
0000000d: PUSH0
0000000e: CALLDATALOAD
0000000f: PUSH1 0xe0
00000011: SHR
00000012: DUP1
00000013: PUSH4 0x605297e1
00000018: GT
00000019: PUSH2 0x0155
0000001c: JUMPI
0000001d: DUP1
0000001e: PUSH4 0xaa443ac0
00000023: GT
00000024: PUSH2 0x00be
00000027: JUMPI
00000028: DUP1
00000029: PUSH4 0xd417e511
0000002e: GT
0000002f: PUSH2 0x0078
00000032: JUMPI
00000033: DUP1
00000034: PUSH4 0xd417e511
00000039: EQ
0000003a: PUSH2 0x082f
0000003d: JUMPI
0000003e: DUP1
0000003f: PUSH4 0xd547741f
00000044: EQ
00000045: PUSH2 0x084e
00000048: JUMPI
00000049: DUP1
0000004a: PUSH4 0xd853015e
0000004f: EQ
00000050: PUSH2 0x086d
00000053: JUMPI
00000054: DUP1
00000055: PUSH4 0xdf668eca
0000005a: EQ
0000005b: PUSH2 0x088d
0000005e: JUMPI
0000005f: DUP1
00000060: PUSH4 0xe6025393
00000065: EQ
00000066: PUSH2 0x08c0
00000069: JUMPI
0000006a: DUP1
0000006b: PUSH4 0xf160d369
00000070: EQ
00000071: PUSH2 0x08f3
00000074: JUMPI
00000075: PUSH0
00000076: PUSH0
00000077: REVERT
00000078: JUMPDEST
00000079: DUP1
0000007a: PUSH4 0xaa443ac0
0000007f: EQ
00000080: PUSH2 0x0758
00000083: JUMPI
00000084: DUP1
00000085: PUSH4 0xad3cb1cc
0000008a: EQ
0000008b: PUSH2 0x0777
0000008e: JUMPI
0000008f: DUP1
00000090: PUSH4 0xbd710448
00000095: EQ
00000096: PUSH2 0x07b4
00000099: JUMPI
0000009a: DUP1
0000009b: PUSH4 0xc876a2a7
000000a0: EQ
000000a1: PUSH2 0x07d2
000000a4: JUMPI
000000a5: DUP1
000000a6: PUSH4 0xcab46bc6
000000ab: EQ
000000ac: PUSH2 0x07f1
000000af: JUMPI
000000b0: DUP1
000000b1: PUSH4 0xcea9d26f
000000b6: EQ
000000b7: PUSH2 0x0810
000000ba: JUMPI
000000bb: PUSH0
000000bc: PUSH0
000000bd: REVERT
000000be: JUMPDEST
000000bf: DUP1
000000c0: PUSH4 0x9b745aec
000000c5: GT
000000c6: PUSH2 0x010f
000000c9: JUMPI
000000ca: DUP1
000000cb: PUSH4 0x9b745aec
000000d0: EQ
000000d1: PUSH2 0x06b1
000000d4: JUMPI
000000d5: DUP1
000000d6: PUSH4 0x9e7b0109
000000db: EQ
000000dc: PUSH2 0x06d5
000000df: JUMPI
000000e0: DUP1
000000e1: PUSH4 0xa217fddf
000000e6: EQ
000000e7: PUSH2 0x06f4
000000ea: JUMPI
000000eb: DUP1
000000ec: PUSH4 0xa6c8fb9a
000000f1: EQ
000000f2: PUSH2 0x0707
000000f5: JUMPI
000000f6: DUP1
000000f7: PUSH4 0xa9c3ebda
000000fc: EQ
000000fd: PUSH2 0x071a
00000100: JUMPI
00000101: DUP1
00000102: PUSH4 0xaa278b03
00000107: EQ
00000108: PUSH2 0x0739
0000010b: JUMPI
0000010c: PUSH0
0000010d: PUSH0
0000010e: REVERT
0000010f: JUMPDEST
00000110: DUP1
00000111: PUSH4 0x605297e1
00000116: EQ
00000117: PUSH2 0x05d3
0000011a: JUMPI
0000011b: DUP1
0000011c: PUSH4 0x7754f887
00000121: EQ
00000122: PUSH2 0x05e7
00000125: JUMPI
00000126: DUP1
00000127: PUSH4 0x80bc659a
0000012c: EQ
0000012d: PUSH2 0x061a
00000130: JUMPI
00000131: DUP1
00000132: PUSH4 0x8bcd9797
00000137: EQ
00000138: PUSH2 0x0638
0000013b: JUMPI
0000013c: DUP1
0000013d: PUSH4 0x8fa46890
00000142: EQ
00000143: PUSH2 0x066b
00000146: JUMPI
00000147: DUP1
00000148: PUSH4 0x91d14854
0000014d: EQ
0000014e: PUSH2 0x0692
00000151: JUMPI
00000152: PUSH0
00000153: PUSH0
00000154: REVERT
00000155: JUMPDEST
00000156: DUP1
00000157: PUSH4 0x36568abe
0000015c: GT
0000015d: PUSH2 0x01f7
00000160: JUMPI
00000161: DUP1
00000162: PUSH4 0x49cfb402
00000167: GT
00000168: PUSH2 0x01b1
0000016b: JUMPI
0000016c: DUP1
0000016d: PUSH4 0x49cfb402
00000172: EQ
00000173: PUSH2 0x051d
00000176: JUMPI
00000177: DUP1
00000178: PUSH4 0x4ccb20c0
0000017d: EQ
0000017e: PUSH2 0x0531
00000181: JUMPI
00000182: DUP1
00000183: PUSH4 0x4f1ef286
00000188: EQ
00000189: PUSH2 0x054e
0000018c: JUMPI
0000018d: DUP1
0000018e: PUSH4 0x519b657a
00000193: EQ
00000194: PUSH2 0x0561
00000197: JUMPI
00000198: DUP1
00000199: PUSH4 0x52d1902d
0000019e: EQ
0000019f: PUSH2 0x05a0
000001a2: JUMPI
000001a3: DUP1
000001a4: PUSH4 0x5921c8e0
000001a9: EQ
000001aa: PUSH2 0x05b4
000001ad: JUMPI
000001ae: PUSH0
000001af: PUSH0
000001b0: REVERT
000001b1: JUMPDEST
000001b2: DUP1
000001b3: PUSH4 0x36568abe
000001b8: EQ
000001b9: PUSH2 0x0449
000001bc: JUMPI
000001bd: DUP1
000001be: PUSH4 0x40fb07a0
000001c3: EQ
000001c4: PUSH2 0x0468
000001c7: JUMPI
000001c8: DUP1
000001c9: PUSH4 0x4101d9f4
000001ce: EQ
000001cf: PUSH2 0x049c
000001d2: JUMPI
000001d3: DUP1
000001d4: PUSH4 0x41787b0a
000001d9: EQ
000001da: PUSH2 0x04b9
000001dd: JUMPI
000001de: DUP1
000001df: PUSH4 0x430b0952
000001e4: EQ
000001e5: PUSH2 0x04d8
000001e8: JUMPI
000001e9: DUP1
000001ea: PUSH4 0x48c07568
000001ef: EQ
000001f0: PUSH2 0x04f7
000001f3: JUMPI
000001f4: PUSH0
000001f5: PUSH0
000001f6: REVERT
000001f7: JUMPDEST
000001f8: DUP1
000001f9: PUSH4 0x236fc8ad
000001fe: GT
000001ff: PUSH2 0x0248
00000202: JUMPI
00000203: DUP1
00000204: PUSH4 0x236fc8ad
00000209: EQ
0000020a: PUSH2 0x036a
0000020d: JUMPI
0000020e: DUP1
0000020f: PUSH4 0x24708ffc
00000214: EQ
00000215: PUSH2 0x0388
00000218: JUMPI
00000219: DUP1
0000021a: PUSH4 0x248a9ca3
0000021f: EQ
00000220: PUSH2 0x03b9
00000223: JUMPI
00000224: DUP1
00000225: PUSH4 0x2a90a827
0000022a: EQ
0000022b: PUSH2 0x03d8
0000022e: JUMPI
0000022f: DUP1
00000230: PUSH4 0x2f2ff15d
00000235: EQ
00000236: PUSH2 0x03f7
00000239: JUMPI
0000023a: DUP1
0000023b: PUSH4 0x353f03bd
00000240: EQ
00000241: PUSH2 0x0416
00000244: JUMPI
00000245: PUSH0
00000246: PUSH0
00000247: REVERT
00000248: JUMPDEST
00000249: DUP1
0000024a: PUSH4 0x01ffc9a7
0000024f: EQ
00000250: PUSH2 0x028f
00000253: JUMPI
00000254: DUP1
00000255: PUSH4 0x10ce0516
0000025a: EQ
0000025b: PUSH2 0x02c3
0000025e: JUMPI
0000025f: DUP1
00000260: PUSH4 0x110934d6
00000265: EQ
00000266: PUSH2 0x02d7
00000269: JUMPI
0000026a: DUP1
0000026b: PUSH4 0x16d8887a
00000270: EQ
00000271: PUSH2 0x02f9
00000274: JUMPI
00000275: DUP1
00000276: PUSH4 0x1f3da150
0000027b: EQ
0000027c: PUSH2 0x032c
0000027f: JUMPI
00000280: DUP1
00000281: PUSH4 0x211651a5
00000286: EQ
00000287: PUSH2 0x0349
0000028a: JUMPI
0000028b: JUMPDEST
0000028c: PUSH0
0000028d: PUSH0
0000028e: REVERT
0000028f: JUMPDEST
00000290: CALLVALUE
00000291: DUP1
00000292: ISZERO
00000293: PUSH2 0x029a
00000296: JUMPI
00000297: PUSH0
00000298: PUSH0
00000299: REVERT
0000029a: JUMPDEST
0000029b: POP
0000029c: PUSH2 0x02ae
0000029f: PUSH2 0x02a9
000002a2: CALLDATASIZE
000002a3: PUSH1 0x04
000002a5: PUSH2 0x3060
000002a8: JUMP
000002a9: JUMPDEST
000002aa: PUSH2 0x0912
000002ad: JUMP
000002ae: JUMPDEST
000002af: PUSH1 0x40
000002b1: MLOAD
000002b2: SWAP1
000002b3: ISZERO
000002b4: ISZERO
000002b5: DUP2
000002b6: MSTORE
000002b7: PUSH1 0x20
000002b9: ADD
000002ba: JUMPDEST
000002bb: PUSH1 0x40
000002bd: MLOAD
000002be: DUP1
000002bf: SWAP2
000002c0: SUB
000002c1: SWAP1
000002c2: RETURN
000002c3: JUMPDEST
000002c4: CALLVALUE
000002c5: DUP1
000002c6: ISZERO
000002c7: PUSH2 0x02ce
000002ca: JUMPI
000002cb: PUSH0
000002cc: PUSH0
000002cd: REVERT
000002ce: JUMPDEST
000002cf: POP
000002d0: PUSH2 0x02ae
000002d3: PUSH2 0x0948
000002d6: JUMP
000002d7: JUMPDEST
000002d8: CALLVALUE
000002d9: DUP1
000002da: ISZERO
000002db: PUSH2 0x02e2
000002de: JUMPI
000002df: PUSH0
000002e0: PUSH0
000002e1: REVERT
000002e2: JUMPDEST
000002e3: POP
000002e4: PUSH2 0x02eb
000002e7: PUSH2 0x0973
000002ea: JUMP
000002eb: JUMPDEST
000002ec: PUSH1 0x40
000002ee: MLOAD
000002ef: SWAP1
000002f0: DUP2
000002f1: MSTORE
000002f2: PUSH1 0x20
000002f4: ADD
000002f5: PUSH2 0x02ba
000002f8: JUMP
000002f9: JUMPDEST
000002fa: CALLVALUE
000002fb: DUP1
000002fc: ISZERO
000002fd: PUSH2 0x0304
00000300: JUMPI
00000301: PUSH0
00000302: PUSH0
00000303: REVERT
00000304: JUMPDEST
00000305: POP
00000306: PUSH2 0x02eb
00000309: PUSH32 0x5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c16
0000032a: DUP2
0000032b: JUMP
0000032c: JUMPDEST
0000032d: CALLVALUE
0000032e: DUP1
0000032f: ISZERO
00000330: PUSH2 0x0337
00000333: JUMPI
00000334: PUSH0
00000335: PUSH0
00000336: REVERT
00000337: JUMPDEST
00000338: POP
00000339: PUSH1 0x04
0000033b: SLOAD
0000033c: PUSH1 0x01
0000033e: PUSH1 0x01
00000340: PUSH1 0x80
00000342: SHL
00000343: SUB
00000344: AND
00000345: PUSH2 0x02eb
00000348: JUMP
00000349: JUMPDEST
0000034a: CALLVALUE
0000034b: DUP1
0000034c: ISZERO
0000034d: PUSH2 0x0354
00000350: JUMPI
00000351: PUSH0
00000352: PUSH0
00000353: REVERT
00000354: JUMPDEST
00000355: POP
00000356: PUSH2 0x0368
00000359: PUSH2 0x0363
0000035c: CALLDATASIZE
0000035d: PUSH1 0x04
0000035f: PUSH2 0x309b
00000362: JUMP
00000363: JUMPDEST
00000364: PUSH2 0x09c3
00000367: JUMP
00000368: JUMPDEST
00000369: STOP
0000036a: JUMPDEST
0000036b: CALLVALUE
0000036c: DUP1
0000036d: ISZERO
0000036e: PUSH2 0x0375
00000371: JUMPI
00000372: PUSH0
00000373: PUSH0
00000374: REVERT
00000375: JUMPDEST
00000376: POP
00000377: PUSH1 0x02
00000379: SLOAD
0000037a: PUSH1 0x01
0000037c: PUSH1 0xa0
0000037e: SHL
0000037f: SWAP1
00000380: DIV
00000381: PUSH1 0xff
00000383: AND
00000384: PUSH2 0x02ae
00000387: JUMP
00000388: JUMPDEST
00000389: CALLVALUE
0000038a: DUP1
0000038b: ISZERO
0000038c: PUSH2 0x0393
0000038f: JUMPI
00000390: PUSH0
00000391: PUSH0
00000392: REVERT
00000393: JUMPDEST
00000394: POP
00000395: PUSH1 0x01
00000397: SLOAD
00000398: PUSH1 0x01
0000039a: PUSH1 0x01
0000039c: PUSH1 0xa0
0000039e: SHL
0000039f: SUB
000003a0: AND
000003a1: JUMPDEST
000003a2: PUSH1 0x40
000003a4: MLOAD
000003a5: PUSH1 0x01
000003a7: PUSH1 0x01
000003a9: PUSH1 0xa0
000003ab: SHL
000003ac: SUB
000003ad: SWAP1
000003ae: SWAP2
000003af: AND
000003b0: DUP2
000003b1: MSTORE
000003b2: PUSH1 0x20
000003b4: ADD
000003b5: PUSH2 0x02ba
000003b8: JUMP
000003b9: JUMPDEST
000003ba: CALLVALUE
000003bb: DUP1
000003bc: ISZERO
000003bd: PUSH2 0x03c4
000003c0: JUMPI
000003c1: PUSH0
000003c2: PUSH0
000003c3: REVERT
000003c4: JUMPDEST
000003c5: POP
000003c6: PUSH2 0x02eb
000003c9: PUSH2 0x03d3
000003cc: CALLDATASIZE
000003cd: PUSH1 0x04
000003cf: PUSH2 0x30b6
000003d2: JUMP
000003d3: JUMPDEST
000003d4: PUSH2 0x09e7
000003d7: JUMP
000003d8: JUMPDEST
000003d9: CALLVALUE
000003da: DUP1
000003db: ISZERO
000003dc: PUSH2 0x03e3
000003df: JUMPI
000003e0: PUSH0
000003e1: PUSH0
000003e2: REVERT
000003e3: JUMPDEST
000003e4: POP
000003e5: PUSH2 0x0368
000003e8: PUSH2 0x03f2
000003eb: CALLDATASIZE
000003ec: PUSH1 0x04
000003ee: PUSH2 0x30f6
000003f1: JUMP
000003f2: JUMPDEST
000003f3: PUSH2 0x0a07
000003f6: JUMP
000003f7: JUMPDEST
000003f8: CALLVALUE
000003f9: DUP1
000003fa: ISZERO
000003fb: PUSH2 0x0402
000003fe: JUMPI
000003ff: PUSH0
00000400: PUSH0
00000401: REVERT
00000402: JUMPDEST
00000403: POP
00000404: PUSH2 0x0368
00000407: PUSH2 0x0411
0000040a: CALLDATASIZE
0000040b: PUSH1 0x04
0000040d: PUSH2 0x315d
00000410: JUMP
00000411: JUMPDEST
00000412: PUSH2 0x0b08
00000415: JUMP
00000416: JUMPDEST
00000417: CALLVALUE
00000418: DUP1
00000419: ISZERO
0000041a: PUSH2 0x0421
0000041d: JUMPI
0000041e: PUSH0
0000041f: PUSH0
00000420: REVERT
00000421: JUMPDEST
00000422: POP
00000423: PUSH2 0x02eb
00000426: PUSH32 0x6dac4cc0544e34aa1a4ed2862f6de78290e3f18f00fe77179ee8ef34de9dfa24
00000447: DUP2
00000448: JUMP
00000449: JUMPDEST
0000044a: CALLVALUE
0000044b: DUP1
0000044c: ISZERO
0000044d: PUSH2 0x0454
00000450: JUMPI
00000451: PUSH0
00000452: PUSH0
00000453: REVERT
00000454: JUMPDEST
00000455: POP
00000456: PUSH2 0x0368
00000459: PUSH2 0x0463
0000045c: CALLDATASIZE
0000045d: PUSH1 0x04
0000045f: PUSH2 0x315d
00000462: JUMP
00000463: JUMPDEST
00000464: PUSH2 0x0b2a
00000467: JUMP
00000468: JUMPDEST
00000469: CALLVALUE
0000046a: DUP1
0000046b: ISZERO
0000046c: PUSH2 0x0473
0000046f: JUMPI
00000470: PUSH0
00000471: PUSH0
00000472: REVERT
00000473: JUMPDEST
00000474: POP
00000475: PUSH2 0x0487
00000478: PUSH2 0x0482
0000047b: CALLDATASIZE
0000047c: PUSH1 0x04
0000047e: PUSH2 0x315d
00000481: JUMP
00000482: JUMPDEST
00000483: PUSH2 0x0b62
00000486: JUMP
00000487: JUMPDEST
00000488: PUSH1 0x40
0000048a: DUP1
0000048b: MLOAD
0000048c: SWAP3
0000048d: DUP4
0000048e: MSTORE
0000048f: PUSH1 0x20
00000491: DUP4
00000492: ADD
00000493: SWAP2
00000494: SWAP1
00000495: SWAP2
00000496: MSTORE
00000497: ADD
00000498: PUSH2 0x02ba
0000049b: JUMP
0000049c: JUMPDEST
0000049d: CALLVALUE
0000049e: DUP1
0000049f: ISZERO
000004a0: PUSH2 0x04a7
000004a3: JUMPI
000004a4: PUSH0
000004a5: PUSH0
000004a6: REVERT
000004a7: JUMPDEST
000004a8: POP
000004a9: PUSH1 0x02
000004ab: SLOAD
000004ac: PUSH1 0x01
000004ae: PUSH1 0x01
000004b0: PUSH1 0xa0
000004b2: SHL
000004b3: SUB
000004b4: AND
000004b5: PUSH2 0x03a1
000004b8: JUMP
000004b9: JUMPDEST
000004ba: CALLVALUE
000004bb: DUP1
000004bc: ISZERO
000004bd: PUSH2 0x04c4
000004c0: JUMPI
000004c1: PUSH0
000004c2: PUSH0
000004c3: REVERT
000004c4: JUMPDEST
000004c5: POP
000004c6: PUSH2 0x0368
000004c9: PUSH2 0x04d3
000004cc: CALLDATASIZE
000004cd: PUSH1 0x04
000004cf: PUSH2 0x318b
000004d2: JUMP
000004d3: JUMPDEST
000004d4: PUSH2 0x0c82
000004d7: JUMP
000004d8: JUMPDEST
000004d9: CALLVALUE
000004da: DUP1
000004db: ISZERO
000004dc: PUSH2 0x04e3
000004df: JUMPI
000004e0: PUSH0
000004e1: PUSH0
000004e2: REVERT
000004e3: JUMPDEST
000004e4: POP
000004e5: PUSH2 0x0368
000004e8: PUSH2 0x04f2
000004eb: CALLDATASIZE
000004ec: PUSH1 0x04
000004ee: PUSH2 0x31a4
000004f1: JUMP
000004f2: JUMPDEST
000004f3: PUSH2 0x0ca2
000004f6: JUMP
000004f7: JUMPDEST
000004f8: CALLVALUE
000004f9: DUP1
000004fa: ISZERO
000004fb: PUSH2 0x0502
000004fe: JUMPI
000004ff: PUSH0
00000500: PUSH0
00000501: REVERT
00000502: JUMPDEST
00000503: POP
00000504: PUSH1 0x04
00000506: SLOAD
00000507: PUSH1 0x01
00000509: PUSH1 0x80
0000050b: SHL
0000050c: SWAP1
0000050d: DIV
0000050e: PUSH1 0xff
00000510: AND
00000511: PUSH1 0x40
00000513: MLOAD
00000514: PUSH2 0x02ba
00000517: SWAP2
00000518: SWAP1
00000519: PUSH2 0x31d1
0000051c: JUMP
0000051d: JUMPDEST
0000051e: CALLVALUE
0000051f: DUP1
00000520: ISZERO
00000521: PUSH2 0x0528
00000524: JUMPI
00000525: PUSH0
00000526: PUSH0
00000527: REVERT
00000528: JUMPDEST
00000529: POP
0000052a: PUSH2 0x0368
0000052d: PUSH2 0x0cc2
00000530: JUMP
00000531: JUMPDEST
00000532: CALLVALUE
00000533: DUP1
00000534: ISZERO
00000535: PUSH2 0x053c
00000538: JUMPI
00000539: PUSH0
0000053a: PUSH0
0000053b: REVERT
0000053c: JUMPDEST
0000053d: POP
0000053e: PUSH1 0x05
00000540: SLOAD
00000541: PUSH1 0x01
00000543: PUSH1 0x01
00000545: PUSH1 0xa0
00000547: SHL
00000548: SUB
00000549: AND
0000054a: PUSH2 0x03a1
0000054d: JUMP
0000054e: JUMPDEST
0000054f: PUSH2 0x0368
00000552: PUSH2 0x055c
00000555: CALLDATASIZE
00000556: PUSH1 0x04
00000558: PUSH2 0x320b
0000055b: JUMP
0000055c: JUMPDEST
0000055d: PUSH2 0x0d9e
00000560: JUMP
00000561: JUMPDEST
00000562: CALLVALUE
00000563: DUP1
00000564: ISZERO
00000565: PUSH2 0x056c
00000568: JUMPI
00000569: PUSH0
0000056a: PUSH0
0000056b: REVERT
0000056c: JUMPDEST
0000056d: POP
0000056e: PUSH2 0x0580
00000571: PUSH2 0x057b
00000574: CALLDATASIZE
00000575: PUSH1 0x04
00000577: PUSH2 0x30b6
0000057a: JUMP
0000057b: JUMPDEST
0000057c: PUSH2 0x0db9
0000057f: JUMP
00000580: JUMPDEST
00000581: PUSH1 0x40
00000583: DUP1
00000584: MLOAD
00000585: SWAP5
00000586: DUP6
00000587: MSTORE
00000588: PUSH1 0x20
0000058a: DUP6
0000058b: ADD
0000058c: SWAP4
0000058d: SWAP1
0000058e: SWAP4
0000058f: MSTORE
00000590: SWAP2
00000591: DUP4
00000592: ADD
00000593: MSTORE
00000594: PUSH1 0x60
00000596: DUP3
00000597: ADD
00000598: MSTORE
00000599: PUSH1 0x80
0000059b: ADD
0000059c: PUSH2 0x02ba
0000059f: JUMP
000005a0: JUMPDEST
000005a1: CALLVALUE
000005a2: DUP1
000005a3: ISZERO
000005a4: PUSH2 0x05ab
000005a7: JUMPI
000005a8: PUSH0
000005a9: PUSH0
000005aa: REVERT
000005ab: JUMPDEST
000005ac: POP
000005ad: PUSH2 0x02eb
000005b0: PUSH2 0x0dd5
000005b3: JUMP
000005b4: JUMPDEST
000005b5: CALLVALUE
000005b6: DUP1
000005b7: ISZERO
000005b8: PUSH2 0x05bf
000005bb: JUMPI
000005bc: PUSH0
000005bd: PUSH0
000005be: REVERT
000005bf: JUMPDEST
000005c0: POP
000005c1: PUSH2 0x02eb
000005c4: PUSH2 0x05ce
000005c7: CALLDATASIZE
000005c8: PUSH1 0x04
000005ca: PUSH2 0x30b6
000005cd: JUMP
000005ce: JUMPDEST
000005cf: PUSH2 0x0df0
000005d2: JUMP
000005d3: JUMPDEST
000005d4: CALLVALUE
000005d5: DUP1
000005d6: ISZERO
000005d7: PUSH2 0x05de
000005da: JUMPI
000005db: PUSH0
000005dc: PUSH0
000005dd: REVERT
000005de: JUMPDEST
000005df: POP
000005e0: PUSH2 0x02eb
000005e3: PUSH2 0x0f27
000005e6: JUMP
000005e7: JUMPDEST
000005e8: CALLVALUE
000005e9: DUP1
000005ea: ISZERO
000005eb: PUSH2 0x05f2
000005ee: JUMPI
000005ef: PUSH0
000005f0: PUSH0
000005f1: REVERT
000005f2: JUMPDEST
000005f3: POP
000005f4: PUSH2 0x03a1
000005f7: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b
00000618: DUP2
00000619: JUMP
0000061a: JUMPDEST
0000061b: CALLVALUE
0000061c: DUP1
0000061d: ISZERO
0000061e: PUSH2 0x0625
00000621: JUMPI
00000622: PUSH0
00000623: PUSH0
00000624: REVERT
00000625: JUMPDEST
00000626: POP
00000627: PUSH1 0x02
00000629: SLOAD
0000062a: PUSH1 0x01
0000062c: PUSH1 0xa8
0000062e: SHL
0000062f: SWAP1
00000630: DIV
00000631: PUSH1 0xff
00000633: AND
00000634: PUSH2 0x02ae
00000637: JUMP
00000638: JUMPDEST
00000639: CALLVALUE
0000063a: DUP1
0000063b: ISZERO
0000063c: PUSH2 0x0643
0000063f: JUMPI
00000640: PUSH0
00000641: PUSH0
00000642: REVERT
00000643: JUMPDEST
00000644: POP
00000645: PUSH2 0x02eb
00000648: PUSH32 0xbf63066482b01a20567880b14a2934fecb21c925e6bcc0a0a091c59723fa9c06
00000669: DUP2
0000066a: JUMP
0000066b: JUMPDEST
0000066c: CALLVALUE
0000066d: DUP1
0000066e: ISZERO
0000066f: PUSH2 0x0676
00000672: JUMPI
00000673: PUSH0
00000674: PUSH0
00000675: REVERT
00000676: JUMPDEST
00000677: POP
00000678: PUSH1 0x03
0000067a: SLOAD
0000067b: PUSH1 0x40
0000067d: MLOAD
0000067e: PUSH1 0x01
00000680: PUSH1 0x01
00000682: PUSH1 0x80
00000684: SHL
00000685: SUB
00000686: SWAP1
00000687: SWAP2
00000688: AND
00000689: DUP2
0000068a: MSTORE
0000068b: PUSH1 0x20
0000068d: ADD
0000068e: PUSH2 0x02ba
00000691: JUMP
00000692: JUMPDEST
00000693: CALLVALUE
00000694: DUP1
00000695: ISZERO
00000696: PUSH2 0x069d
00000699: JUMPI
0000069a: PUSH0
0000069b: PUSH0
0000069c: REVERT
0000069d: JUMPDEST
0000069e: POP
0000069f: PUSH2 0x02ae
000006a2: PUSH2 0x06ac
000006a5: CALLDATASIZE
000006a6: PUSH1 0x04
000006a8: PUSH2 0x315d
000006ab: JUMP
000006ac: JUMPDEST
000006ad: PUSH2 0x10df
000006b0: JUMP
000006b1: JUMPDEST
000006b2: CALLVALUE
000006b3: DUP1
000006b4: ISZERO
000006b5: PUSH2 0x06bc
000006b8: JUMPI
000006b9: PUSH0
000006ba: PUSH0
000006bb: REVERT
000006bc: JUMPDEST
000006bd: POP
000006be: PUSH1 0x03
000006c0: SLOAD
000006c1: PUSH1 0x01
000006c3: PUSH1 0x80
000006c5: SHL
000006c6: SWAP1
000006c7: DIV
000006c8: PUSH1 0x01
000006ca: PUSH1 0x01
000006cc: PUSH1 0x80
000006ce: SHL
000006cf: SUB
000006d0: AND
000006d1: PUSH2 0x02eb
000006d4: JUMP
000006d5: JUMPDEST
000006d6: CALLVALUE
000006d7: DUP1
000006d8: ISZERO
000006d9: PUSH2 0x06e0
000006dc: JUMPI
000006dd: PUSH0
000006de: PUSH0
000006df: REVERT
000006e0: JUMPDEST
000006e1: POP
000006e2: PUSH2 0x0368
000006e5: PUSH2 0x06ef
000006e8: CALLDATASIZE
000006e9: PUSH1 0x04
000006eb: PUSH2 0x309b
000006ee: JUMP
000006ef: JUMPDEST
000006f0: PUSH2 0x1115
000006f3: JUMP
000006f4: JUMPDEST
000006f5: CALLVALUE
000006f6: DUP1
000006f7: ISZERO
000006f8: PUSH2 0x06ff
000006fb: JUMPI
000006fc: PUSH0
000006fd: PUSH0
000006fe: REVERT
000006ff: JUMPDEST
00000700: POP
00000701: PUSH2 0x02eb
00000704: PUSH0
00000705: DUP2
00000706: JUMP
00000707: JUMPDEST
00000708: CALLVALUE
00000709: DUP1
0000070a: ISZERO
0000070b: PUSH2 0x0712
0000070e: JUMPI
0000070f: PUSH0
00000710: PUSH0
00000711: REVERT
00000712: JUMPDEST
00000713: POP
00000714: PUSH1 0x01
00000716: PUSH2 0x02eb
00000719: JUMP
0000071a: JUMPDEST
0000071b: CALLVALUE
0000071c: DUP1
0000071d: ISZERO
0000071e: PUSH2 0x0725
00000721: JUMPI
00000722: PUSH0
00000723: PUSH0
00000724: REVERT
00000725: JUMPDEST
00000726: POP
00000727: PUSH2 0x0580
0000072a: PUSH2 0x0734
0000072d: CALLDATASIZE
0000072e: PUSH1 0x04
00000730: PUSH2 0x30b6
00000733: JUMP
00000734: JUMPDEST
00000735: PUSH2 0x1135
00000738: JUMP
00000739: JUMPDEST
0000073a: CALLVALUE
0000073b: DUP1
0000073c: ISZERO
0000073d: PUSH2 0x0744
00000740: JUMPI
00000741: PUSH0
00000742: PUSH0
00000743: REVERT
00000744: JUMPDEST
00000745: POP
00000746: PUSH2 0x0580
00000749: PUSH2 0x0753
0000074c: CALLDATASIZE
0000074d: PUSH1 0x04
0000074f: PUSH2 0x30b6
00000752: JUMP
00000753: JUMPDEST
00000754: PUSH2 0x1348
00000757: JUMP
00000758: JUMPDEST
00000759: CALLVALUE
0000075a: DUP1
0000075b: ISZERO
0000075c: PUSH2 0x0763
0000075f: JUMPI
00000760: PUSH0
00000761: PUSH0
00000762: REVERT
00000763: JUMPDEST
00000764: POP
00000765: PUSH2 0x0487
00000768: PUSH2 0x0772
0000076b: CALLDATASIZE
0000076c: PUSH1 0x04
0000076e: PUSH2 0x315d
00000771: JUMP
00000772: JUMPDEST
00000773: PUSH2 0x1549
00000776: JUMP
00000777: JUMPDEST
00000778: CALLVALUE
00000779: DUP1
0000077a: ISZERO
0000077b: PUSH2 0x0782
0000077e: JUMPI
0000077f: PUSH0
00000780: PUSH0
00000781: REVERT
00000782: JUMPDEST
00000783: POP
00000784: PUSH2 0x07a7
00000787: PUSH1 0x40
00000789: MLOAD
0000078a: DUP1
0000078b: PUSH1 0x40
0000078d: ADD
0000078e: PUSH1 0x40
00000790: MSTORE
00000791: DUP1
00000792: PUSH1 0x05
00000794: DUP2
00000795: MSTORE
00000796: PUSH1 0x20
00000798: ADD
00000799: PUSH5 0x0352e302e3
0000079f: PUSH1 0xdc
000007a1: SHL
000007a2: DUP2
000007a3: MSTORE
000007a4: POP
000007a5: DUP2
000007a6: JUMP
000007a7: JUMPDEST
000007a8: PUSH1 0x40
000007aa: MLOAD
000007ab: PUSH2 0x02ba
000007ae: SWAP2
000007af: SWAP1
000007b0: PUSH2 0x32d1
000007b3: JUMP
000007b4: JUMPDEST
000007b5: CALLVALUE
000007b6: DUP1
000007b7: ISZERO
000007b8: PUSH2 0x07bf
000007bb: JUMPI
000007bc: PUSH0
000007bd: PUSH0
000007be: REVERT
000007bf: JUMPDEST
000007c0: POP
000007c1: PUSH0
000007c2: SLOAD
000007c3: PUSH2 0x03a1
000007c6: SWAP1
000007c7: PUSH1 0x01
000007c9: PUSH1 0x01
000007cb: PUSH1 0xa0
000007cd: SHL
000007ce: SUB
000007cf: AND
000007d0: DUP2
000007d1: JUMP
000007d2: JUMPDEST
000007d3: CALLVALUE
000007d4: DUP1
000007d5: ISZERO
000007d6: PUSH2 0x07dd
000007d9: JUMPI
000007da: PUSH0
000007db: PUSH0
000007dc: REVERT
000007dd: JUMPDEST
000007de: POP
000007df: PUSH2 0x0368
000007e2: PUSH2 0x07ec
000007e5: CALLDATASIZE
000007e6: PUSH1 0x04
000007e8: PUSH2 0x309b
000007eb: JUMP
000007ec: JUMPDEST
000007ed: PUSH2 0x1658
000007f0: JUMP
000007f1: JUMPDEST
000007f2: CALLVALUE
000007f3: DUP1
000007f4: ISZERO
000007f5: PUSH2 0x07fc
000007f8: JUMPI
000007f9: PUSH0
000007fa: PUSH0
000007fb: REVERT
000007fc: JUMPDEST
000007fd: POP
000007fe: PUSH2 0x0368
00000801: PUSH2 0x080b
00000804: CALLDATASIZE
00000805: PUSH1 0x04
00000807: PUSH2 0x3306
0000080a: JUMP
0000080b: JUMPDEST
0000080c: PUSH2 0x1678
0000080f: JUMP
00000810: JUMPDEST
00000811: CALLVALUE
00000812: DUP1
00000813: ISZERO
00000814: PUSH2 0x081b
00000817: JUMPI
00000818: PUSH0
00000819: PUSH0
0000081a: REVERT
0000081b: JUMPDEST
0000081c: POP
0000081d: PUSH2 0x0368
00000820: PUSH2 0x082a
00000823: CALLDATASIZE
00000824: PUSH1 0x04
00000826: PUSH2 0x3325
00000829: JUMP
0000082a: JUMPDEST
0000082b: PUSH2 0x17a7
0000082e: JUMP
0000082f: JUMPDEST
00000830: CALLVALUE
00000831: DUP1
00000832: ISZERO
00000833: PUSH2 0x083a
00000836: JUMPI
00000837: PUSH0
00000838: PUSH0
00000839: REVERT
0000083a: JUMPDEST
0000083b: POP
0000083c: PUSH2 0x0580
0000083f: PUSH2 0x0849
00000842: CALLDATASIZE
00000843: PUSH1 0x04
00000845: PUSH2 0x30b6
00000848: JUMP
00000849: JUMPDEST
0000084a: PUSH2 0x1a96
0000084d: JUMP
0000084e: JUMPDEST
0000084f: CALLVALUE
00000850: DUP1
00000851: ISZERO
00000852: PUSH2 0x0859
00000855: JUMPI
00000856: PUSH0
00000857: PUSH0
00000858: REVERT
00000859: JUMPDEST
0000085a: POP
0000085b: PUSH2 0x0368
0000085e: PUSH2 0x0868
00000861: CALLDATASIZE
00000862: PUSH1 0x04
00000864: PUSH2 0x315d
00000867: JUMP
00000868: JUMPDEST
00000869: PUSH2 0x1aa3
0000086c: JUMP
0000086d: JUMPDEST
0000086e: CALLVALUE
0000086f: DUP1
00000870: ISZERO
00000871: PUSH2 0x0878
00000874: JUMPI
00000875: PUSH0
00000876: PUSH0
00000877: REVERT
00000878: JUMPDEST
00000879: POP
0000087a: PUSH2 0x02eb
0000087d: PUSH0
0000087e: MLOAD
0000087f: PUSH1 0x20
00000881: PUSH2 0x3492
00000884: PUSH0
00000885: CODECOPY
00000886: PUSH0
00000887: MLOAD
00000888: SWAP1
00000889: PUSH0
0000088a: MSTORE
0000088b: DUP2
0000088c: JUMP
0000088d: JUMPDEST
0000088e: CALLVALUE
0000088f: DUP1
00000890: ISZERO
00000891: PUSH2 0x0898
00000894: JUMPI
00000895: PUSH0
00000896: PUSH0
00000897: REVERT
00000898: JUMPDEST
00000899: POP
0000089a: PUSH2 0x02eb
0000089d: PUSH32 0x724f6a44d576143e18c60911798b2b15551ca96bd8f7cb7524b8fa36253a26d8
000008be: DUP2
000008bf: JUMP
000008c0: JUMPDEST
000008c1: CALLVALUE
000008c2: DUP1
000008c3: ISZERO
000008c4: PUSH2 0x08cb
000008c7: JUMPI
000008c8: PUSH0
000008c9: PUSH0
000008ca: REVERT
000008cb: JUMPDEST
000008cc: POP
000008cd: PUSH2 0x03a1
000008d0: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
000008f1: DUP2
000008f2: JUMP
000008f3: JUMPDEST
000008f4: CALLVALUE
000008f5: DUP1
000008f6: ISZERO
000008f7: PUSH2 0x08fe
000008fa: JUMPI
000008fb: PUSH0
000008fc: PUSH0
000008fd: REVERT
000008fe: JUMPDEST
000008ff: POP
00000900: PUSH2 0x0368
00000903: PUSH2 0x090d
00000906: CALLDATASIZE
00000907: PUSH1 0x04
00000909: PUSH2 0x309b
0000090c: JUMP
0000090d: JUMPDEST
0000090e: PUSH2 0x1abf
00000911: JUMP
00000912: JUMPDEST
00000913: PUSH0
00000914: PUSH1 0x01
00000916: PUSH1 0x01
00000918: PUSH1 0xe0
0000091a: SHL
0000091b: SUB
0000091c: NOT
0000091d: DUP3
0000091e: AND
0000091f: PUSH4 0x7965db0b
00000924: PUSH1 0xe0
00000926: SHL
00000927: EQ
00000928: DUP1
00000929: PUSH2 0x0942
0000092c: JUMPI
0000092d: POP
0000092e: PUSH4 0x01ffc9a7
00000933: PUSH1 0xe0
00000935: SHL
00000936: PUSH1 0x01
00000938: PUSH1 0x01
0000093a: PUSH1 0xe0
0000093c: SHL
0000093d: SUB
0000093e: NOT
0000093f: DUP4
00000940: AND
00000941: EQ
00000942: JUMPDEST
00000943: SWAP3
00000944: SWAP2
00000945: POP
00000946: POP
00000947: JUMP
00000948: JUMPDEST
00000949: PUSH1 0x02
0000094b: SLOAD
0000094c: PUSH0
0000094d: SWAP1
0000094e: PUSH1 0x01
00000950: PUSH1 0xa0
00000952: SHL
00000953: SWAP1
00000954: DIV
00000955: PUSH1 0xff
00000957: AND
00000958: ISZERO
00000959: DUP1
0000095a: ISZERO
0000095b: PUSH2 0x096e
0000095e: JUMPI
0000095f: POP
00000960: PUSH1 0x02
00000962: SLOAD
00000963: PUSH1 0x01
00000965: PUSH1 0xa8
00000967: SHL
00000968: SWAP1
00000969: DIV
0000096a: PUSH1 0xff
0000096c: AND
0000096d: ISZERO
0000096e: JUMPDEST
0000096f: SWAP1
00000970: POP
00000971: SWAP1
00000972: JUMP
00000973: JUMPDEST
00000974: PUSH1 0x03
00000976: SLOAD
00000977: PUSH0
00000978: SWAP1
00000979: PUSH1 0x01
0000097b: PUSH1 0x01
0000097d: PUSH1 0x80
0000097f: SHL
00000980: SUB
00000981: PUSH1 0x01
00000983: PUSH1 0x80
00000985: SHL
00000986: DUP3
00000987: DIV
00000988: DUP2
00000989: AND
0000098a: SWAP2
0000098b: AND
0000098c: GT
0000098d: PUSH2 0x0996
00000990: JUMPI
00000991: PUSH0
00000992: PUSH2 0x09b5
00000995: JUMP
00000996: JUMPDEST
00000997: PUSH1 0x03
00000999: SLOAD
0000099a: PUSH2 0x09b5
0000099d: SWAP1
0000099e: PUSH1 0x01
000009a0: PUSH1 0x01
000009a2: PUSH1 0x80
000009a4: SHL
000009a5: SUB
000009a6: PUSH1 0x01
000009a8: PUSH1 0x80
000009aa: SHL
000009ab: DUP3
000009ac: DIV
000009ad: DUP2
000009ae: AND
000009af: SWAP2
000009b0: AND
000009b1: PUSH2 0x3377
000009b4: JUMP
000009b5: JUMPDEST
000009b6: PUSH1 0x01
000009b8: PUSH1 0x01
000009ba: PUSH1 0x80
000009bc: SHL
000009bd: SUB
000009be: AND
000009bf: SWAP1
000009c0: POP
000009c1: SWAP1
000009c2: JUMP
000009c3: JUMPDEST
000009c4: PUSH0
000009c5: MLOAD
000009c6: PUSH1 0x20
000009c8: PUSH2 0x3492
000009cb: PUSH0
000009cc: CODECOPY
000009cd: PUSH0
000009ce: MLOAD
000009cf: SWAP1
000009d0: PUSH0
000009d1: MSTORE
000009d2: PUSH2 0x09da
000009d5: DUP2
000009d6: PUSH2 0x1adf
000009d9: JUMP
000009da: JUMPDEST
000009db: PUSH2 0x09e3
000009de: DUP3
000009df: PUSH2 0x1ae9
000009e2: JUMP
000009e3: JUMPDEST
000009e4: POP
000009e5: POP
000009e6: JUMP
000009e7: JUMPDEST
000009e8: PUSH0
000009e9: SWAP1
000009ea: DUP2
000009eb: MSTORE
000009ec: PUSH0
000009ed: MLOAD
000009ee: PUSH1 0x20
000009f0: PUSH2 0x34d2
000009f3: PUSH0
000009f4: CODECOPY
000009f5: PUSH0
000009f6: MLOAD
000009f7: SWAP1
000009f8: PUSH0
000009f9: MSTORE
000009fa: PUSH1 0x20
000009fc: MSTORE
000009fd: PUSH1 0x40
000009ff: SWAP1
00000a00: KECCAK256
00000a01: PUSH1 0x01
00000a03: ADD
00000a04: SLOAD
00000a05: SWAP1
00000a06: JUMP
00000a07: JUMPDEST
00000a08: PUSH0
00000a09: PUSH2 0x0a10
00000a0c: PUSH2 0x1b89
00000a0f: JUMP
00000a10: JUMPDEST
00000a11: DUP1
00000a12: SLOAD
00000a13: SWAP1
00000a14: SWAP2
00000a15: POP
00000a16: PUSH1 0xff
00000a18: PUSH1 0x01
00000a1a: PUSH1 0x40
00000a1c: SHL
00000a1d: DUP3
00000a1e: DIV
00000a1f: AND
00000a20: ISZERO
00000a21: SWAP1
00000a22: PUSH8 0xffffffffffffffff
00000a2b: AND
00000a2c: PUSH0
00000a2d: DUP2
00000a2e: ISZERO
00000a2f: DUP1
00000a30: ISZERO
00000a31: PUSH2 0x0a37
00000a34: JUMPI
00000a35: POP
00000a36: DUP3
00000a37: JUMPDEST
00000a38: SWAP1
00000a39: POP
00000a3a: PUSH0
00000a3b: DUP3
00000a3c: PUSH8 0xffffffffffffffff
00000a45: AND
00000a46: PUSH1 0x01
00000a48: EQ
00000a49: DUP1
00000a4a: ISZERO
00000a4b: PUSH2 0x0a53
00000a4e: JUMPI
00000a4f: POP
00000a50: ADDRESS
00000a51: EXTCODESIZE
00000a52: ISZERO
00000a53: JUMPDEST
00000a54: SWAP1
00000a55: POP
00000a56: DUP2
00000a57: ISZERO
00000a58: DUP1
00000a59: ISZERO
00000a5a: PUSH2 0x0a61
00000a5d: JUMPI
00000a5e: POP
00000a5f: DUP1
00000a60: ISZERO
00000a61: JUMPDEST
00000a62: ISZERO
00000a63: PUSH2 0x0a7f
00000a66: JUMPI
00000a67: PUSH1 0x40
00000a69: MLOAD
00000a6a: PUSH4 0xf92ee8a9
00000a6f: PUSH1 0xe0
00000a71: SHL
00000a72: DUP2
00000a73: MSTORE
00000a74: PUSH1 0x04
00000a76: ADD
00000a77: PUSH1 0x40
00000a79: MLOAD
00000a7a: DUP1
00000a7b: SWAP2
00000a7c: SUB
00000a7d: SWAP1
00000a7e: REVERT
00000a7f: JUMPDEST
00000a80: DUP5
00000a81: SLOAD
00000a82: PUSH8 0xffffffffffffffff
00000a8b: NOT
00000a8c: AND
00000a8d: PUSH1 0x01
00000a8f: OR
00000a90: DUP6
00000a91: SSTORE
00000a92: DUP4
00000a93: ISZERO
00000a94: PUSH2 0x0aa9
00000a97: JUMPI
00000a98: DUP5
00000a99: SLOAD
00000a9a: PUSH1 0xff
00000a9c: PUSH1 0x40
00000a9e: SHL
00000a9f: NOT
00000aa0: AND
00000aa1: PUSH1 0x01
00000aa3: PUSH1 0x40
00000aa5: SHL
00000aa6: OR
00000aa7: DUP6
00000aa8: SSTORE
00000aa9: JUMPDEST
00000aaa: PUSH2 0x0ab6
00000aad: DUP11
00000aae: DUP11
00000aaf: DUP11
00000ab0: DUP11
00000ab1: DUP11
00000ab2: PUSH2 0x1bb1
00000ab5: JUMP
00000ab6: JUMPDEST
00000ab7: DUP4
00000ab8: ISZERO
00000ab9: PUSH2 0x0afc
00000abc: JUMPI
00000abd: DUP5
00000abe: SLOAD
00000abf: PUSH1 0xff
00000ac1: PUSH1 0x40
00000ac3: SHL
00000ac4: NOT
00000ac5: AND
00000ac6: DUP6
00000ac7: SSTORE
00000ac8: PUSH1 0x40
00000aca: MLOAD
00000acb: PUSH1 0x01
00000acd: DUP2
00000ace: MSTORE
00000acf: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2
00000af0: SWAP1
00000af1: PUSH1 0x20
00000af3: ADD
00000af4: PUSH1 0x40
00000af6: MLOAD
00000af7: DUP1
00000af8: SWAP2
00000af9: SUB
00000afa: SWAP1
00000afb: LOG1
00000afc: JUMPDEST
00000afd: POP
00000afe: POP
00000aff: POP
00000b00: POP
00000b01: POP
00000b02: POP
00000b03: POP
00000b04: POP
00000b05: POP
00000b06: POP
00000b07: JUMP
00000b08: JUMPDEST
00000b09: PUSH2 0x0b11
00000b0c: DUP3
00000b0d: PUSH2 0x09e7
00000b10: JUMP
00000b11: JUMPDEST
00000b12: PUSH2 0x0b1a
00000b15: DUP2
00000b16: PUSH2 0x1adf
00000b19: JUMP
00000b1a: JUMPDEST
00000b1b: PUSH2 0x0b24
00000b1e: DUP4
00000b1f: DUP4
00000b20: PUSH2 0x1c66
00000b23: JUMP
00000b24: JUMPDEST
00000b25: POP
00000b26: POP
00000b27: POP
00000b28: POP
00000b29: JUMP
00000b2a: JUMPDEST
00000b2b: PUSH1 0x01
00000b2d: PUSH1 0x01
00000b2f: PUSH1 0xa0
00000b31: SHL
00000b32: SUB
00000b33: DUP2
00000b34: AND
00000b35: CALLER
00000b36: EQ
00000b37: PUSH2 0x0b53
00000b3a: JUMPI
00000b3b: PUSH1 0x40
00000b3d: MLOAD
00000b3e: PUSH4 0x334bd919
00000b43: PUSH1 0xe1
00000b45: SHL
00000b46: DUP2
00000b47: MSTORE
00000b48: PUSH1 0x04
00000b4a: ADD
00000b4b: PUSH1 0x40
00000b4d: MLOAD
00000b4e: DUP1
00000b4f: SWAP2
00000b50: SUB
00000b51: SWAP1
00000b52: REVERT
00000b53: JUMPDEST
00000b54: PUSH2 0x0b5d
00000b57: DUP3
00000b58: DUP3
00000b59: PUSH2 0x1d07
00000b5c: JUMP
00000b5d: JUMPDEST
00000b5e: POP
00000b5f: POP
00000b60: POP
00000b61: JUMP
00000b62: JUMPDEST
00000b63: PUSH1 0x02
00000b65: SLOAD
00000b66: PUSH0
00000b67: SWAP1
00000b68: DUP2
00000b69: SWAP1
00000b6a: PUSH1 0x01
00000b6c: PUSH1 0xa0
00000b6e: SHL
00000b6f: SWAP1
00000b70: DIV
00000b71: PUSH1 0xff
00000b73: AND
00000b74: ISZERO
00000b75: PUSH2 0x0bb2
00000b78: JUMPI
00000b79: PUSH1 0x40
00000b7b: MLOAD
00000b7c: PUSH3 0x461bcd
00000b80: PUSH1 0xe5
00000b82: SHL
00000b83: DUP2
00000b84: MSTORE
00000b85: PUSH1 0x20
00000b87: PUSH1 0x04
00000b89: DUP3
00000b8a: ADD
00000b8b: MSTORE
00000b8c: PUSH1 0x0a
00000b8e: PUSH1 0x24
00000b90: DUP3
00000b91: ADD
00000b92: MSTORE
00000b93: PUSH10 0x2aa9a6afa32927ad22a7
00000b9e: PUSH1 0xb1
00000ba0: SHL
00000ba1: PUSH1 0x44
00000ba3: DUP3
00000ba4: ADD
00000ba5: MSTORE
00000ba6: PUSH1 0x64
00000ba8: ADD
00000ba9: JUMPDEST
00000baa: PUSH1 0x40
00000bac: MLOAD
00000bad: DUP1
00000bae: SWAP2
00000baf: SUB
00000bb0: SWAP1
00000bb1: REVERT
00000bb2: JUMPDEST
00000bb3: PUSH1 0x02
00000bb5: SLOAD
00000bb6: PUSH1 0x01
00000bb8: PUSH1 0xa8
00000bba: SHL
00000bbb: SWAP1
00000bbc: DIV
00000bbd: PUSH1 0xff
00000bbf: AND
00000bc0: ISZERO
00000bc1: PUSH2 0x0bdc
00000bc4: JUMPI
00000bc5: PUSH1 0x40
00000bc7: MLOAD
00000bc8: PUSH3 0x461bcd
00000bcc: PUSH1 0xe5
00000bce: SHL
00000bcf: DUP2
00000bd0: MSTORE
00000bd1: PUSH1 0x04
00000bd3: ADD
00000bd4: PUSH2 0x0ba9
00000bd7: SWAP1
00000bd8: PUSH2 0x3396
00000bdb: JUMP
00000bdc: JUMPDEST
00000bdd: CALLER
00000bde: PUSH1 0x01
00000be0: PUSH1 0x04
00000be2: SLOAD
00000be3: PUSH1 0x01
00000be5: PUSH1 0x80
00000be7: SHL
00000be8: SWAP1
00000be9: DIV
00000bea: PUSH1 0xff
00000bec: AND
00000bed: PUSH1 0x01
00000bef: DUP2
00000bf0: GT
00000bf1: ISZERO
00000bf2: PUSH2 0x0bfd
00000bf5: JUMPI
00000bf6: PUSH2 0x0bfd
00000bf9: PUSH2 0x31bd
00000bfc: JUMP
00000bfd: JUMPDEST
00000bfe: SUB
00000bff: PUSH2 0x0c6b
00000c02: JUMPI
00000c03: PUSH2 0x0c2c
00000c06: PUSH32 0x724f6a44d576143e18c60911798b2b15551ca96bd8f7cb7524b8fa36253a26d8
00000c27: DUP3
00000c28: PUSH2 0x10df
00000c2b: JUMP
00000c2c: JUMPDEST
00000c2d: PUSH2 0x0c6b
00000c30: JUMPI
00000c31: PUSH1 0x40
00000c33: MLOAD
00000c34: PUSH3 0x461bcd
00000c38: PUSH1 0xe5
00000c3a: SHL
00000c3b: DUP2
00000c3c: MSTORE
00000c3d: PUSH1 0x20
00000c3f: PUSH1 0x04
00000c41: DUP3
00000c42: ADD
00000c43: MSTORE
00000c44: PUSH1 0x10
00000c46: PUSH1 0x24
00000c48: DUP3
00000c49: ADD
00000c4a: MSTORE
00000c4b: PUSH16 0x1393d508141154935254d4d253d39151
00000c5c: PUSH1 0x82
00000c5e: SHL
00000c5f: PUSH1 0x44
00000c61: DUP3
00000c62: ADD
00000c63: MSTORE
00000c64: PUSH1 0x64
00000c66: ADD
00000c67: PUSH2 0x0ba9
00000c6a: JUMP
00000c6b: JUMPDEST
00000c6c: PUSH2 0x0c76
00000c6f: CALLER
00000c70: DUP7
00000c71: DUP7
00000c72: PUSH2 0x1d80
00000c75: JUMP
00000c76: JUMPDEST
00000c77: SWAP3
00000c78: POP
00000c79: SWAP3
00000c7a: POP
00000c7b: POP
00000c7c: SWAP3
00000c7d: POP
00000c7e: SWAP3
00000c7f: SWAP1
00000c80: POP
00000c81: JUMP
00000c82: JUMPDEST
00000c83: PUSH0
00000c84: MLOAD
00000c85: PUSH1 0x20
00000c87: PUSH2 0x3492
00000c8a: PUSH0
00000c8b: CODECOPY
00000c8c: PUSH0
00000c8d: MLOAD
00000c8e: SWAP1
00000c8f: PUSH0
00000c90: MSTORE
00000c91: PUSH2 0x0c99
00000c94: DUP2
00000c95: PUSH2 0x1adf
00000c98: JUMP
00000c99: JUMPDEST
00000c9a: PUSH2 0x09e3
00000c9d: DUP3
00000c9e: PUSH2 0x1fee
00000ca1: JUMP
00000ca2: JUMPDEST
00000ca3: PUSH0
00000ca4: MLOAD
00000ca5: PUSH1 0x20
00000ca7: PUSH2 0x3492
00000caa: PUSH0
00000cab: CODECOPY
00000cac: PUSH0
00000cad: MLOAD
00000cae: SWAP1
00000caf: PUSH0
00000cb0: MSTORE
00000cb1: PUSH2 0x0cb9
00000cb4: DUP2
00000cb5: PUSH2 0x1adf
00000cb8: JUMP
00000cb9: JUMPDEST
00000cba: PUSH2 0x09e3
00000cbd: DUP3
00000cbe: PUSH2 0x2052
00000cc1: JUMP
00000cc2: JUMPDEST
00000cc3: PUSH1 0x04
00000cc5: SLOAD
00000cc6: PUSH1 0x01
00000cc8: PUSH1 0x01
00000cca: PUSH1 0x80
00000ccc: SHL
00000ccd: SUB
00000cce: AND
00000ccf: DUP1
00000cd0: ISZERO
00000cd1: DUP1
00000cd2: ISZERO
00000cd3: SWAP1
00000cd4: PUSH2 0x0ce7
00000cd7: JUMPI
00000cd8: POP
00000cd9: PUSH1 0x05
00000cdb: SLOAD
00000cdc: PUSH1 0x01
00000cde: PUSH1 0x01
00000ce0: PUSH1 0xa0
00000ce2: SHL
00000ce3: SUB
00000ce4: AND
00000ce5: ISZERO
00000ce6: ISZERO
00000ce7: JUMPDEST
00000ce8: ISZERO
00000ce9: PUSH2 0x0d9b
00000cec: JUMPI
00000ced: PUSH1 0x04
00000cef: DUP1
00000cf0: SLOAD
00000cf1: PUSH1 0x01
00000cf3: PUSH1 0x01
00000cf5: PUSH1 0x80
00000cf7: SHL
00000cf8: SUB
00000cf9: NOT
00000cfa: AND
00000cfb: SWAP1
00000cfc: SSTORE
00000cfd: PUSH1 0x05
00000cff: SLOAD
00000d00: PUSH2 0x0d36
00000d03: SWAP1
00000d04: PUSH1 0x01
00000d06: PUSH1 0x01
00000d08: PUSH1 0xa0
00000d0a: SHL
00000d0b: SUB
00000d0c: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b
00000d2d: DUP2
00000d2e: AND
00000d2f: SWAP2
00000d30: AND
00000d31: DUP4
00000d32: PUSH2 0x20b3
00000d35: JUMP
00000d36: JUMPDEST
00000d37: PUSH1 0x05
00000d39: SLOAD
00000d3a: PUSH1 0x40
00000d3c: MLOAD
00000d3d: DUP3
00000d3e: DUP2
00000d3f: MSTORE
00000d40: PUSH1 0x01
00000d42: PUSH1 0x01
00000d44: PUSH1 0xa0
00000d46: SHL
00000d47: SUB
00000d48: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b
00000d69: DUP2
00000d6a: AND
00000d6b: SWAP3
00000d6c: AND
00000d6d: SWAP1
00000d6e: PUSH32 0x715a6d9237efd5ad5fbddd5b85a988b5d4c56284576e0161cdfb4acda45681c2
00000d8f: SWAP1
00000d90: PUSH1 0x20
00000d92: ADD
00000d93: PUSH1 0x40
00000d95: MLOAD
00000d96: DUP1
00000d97: SWAP2
00000d98: SUB
00000d99: SWAP1
00000d9a: LOG3
00000d9b: JUMPDEST
00000d9c: POP
00000d9d: JUMP
00000d9e: JUMPDEST
00000d9f: PUSH2 0x0da6
00000da2: PUSH2 0x2112
00000da5: JUMP
00000da6: JUMPDEST
00000da7: PUSH2 0x0daf
00000daa: DUP3
00000dab: PUSH2 0x21b8
00000dae: JUMP
00000daf: JUMPDEST
00000db0: PUSH2 0x09e3
00000db3: DUP3
00000db4: DUP3
00000db5: PUSH2 0x21c2
00000db8: JUMP
00000db9: JUMPDEST
00000dba: PUSH0
00000dbb: PUSH0
00000dbc: PUSH0
00000dbd: PUSH0
00000dbe: PUSH2 0x0dc6
00000dc1: DUP6
00000dc2: PUSH2 0x227e
00000dc5: JUMP
00000dc6: JUMPDEST
00000dc7: SWAP4
00000dc8: POP
00000dc9: SWAP4
00000dca: POP
00000dcb: SWAP4
00000dcc: POP
00000dcd: SWAP4
00000dce: POP
00000dcf: SWAP2
00000dd0: SWAP4
00000dd1: POP
00000dd2: SWAP2
00000dd3: SWAP4
00000dd4: JUMP
00000dd5: JUMPDEST
00000dd6: PUSH0
00000dd7: PUSH2 0x0dde
00000dda: PUSH2 0x24a9
00000ddd: JUMP
00000dde: JUMPDEST
00000ddf: POP
00000de0: PUSH0
00000de1: MLOAD
00000de2: PUSH1 0x20
00000de4: PUSH2 0x34b2
00000de7: PUSH0
00000de8: CODECOPY
00000de9: PUSH0
00000dea: MLOAD
00000deb: SWAP1
00000dec: PUSH0
00000ded: MSTORE
00000dee: SWAP1
00000def: JUMP
00000df0: JUMPDEST
00000df1: PUSH0
00000df2: PUSH32 0x5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c16
00000e13: PUSH2 0x0e1b
00000e16: DUP2
00000e17: PUSH2 0x1adf
00000e1a: JUMP
00000e1b: JUMPDEST
00000e1c: PUSH1 0x02
00000e1e: SLOAD
00000e1f: PUSH1 0x01
00000e21: PUSH1 0xa8
00000e23: SHL
00000e24: SWAP1
00000e25: DIV
00000e26: PUSH1 0xff
00000e28: AND
00000e29: PUSH2 0x0e65
00000e2c: JUMPI
00000e2d: PUSH1 0x40
00000e2f: MLOAD
00000e30: PUSH3 0x461bcd
00000e34: PUSH1 0xe5
00000e36: SHL
00000e37: DUP2
00000e38: MSTORE
00000e39: PUSH1 0x20
00000e3b: PUSH1 0x04
00000e3d: DUP3
00000e3e: ADD
00000e3f: MSTORE
00000e40: PUSH1 0x0e
00000e42: PUSH1 0x24
00000e44: DUP3
00000e45: ADD
00000e46: MSTORE
00000e47: PUSH14 0x1554d357d393d517d4d152569151
00000e56: PUSH1 0x92
00000e58: SHL
00000e59: PUSH1 0x44
00000e5b: DUP3
00000e5c: ADD
00000e5d: MSTORE
00000e5e: PUSH1 0x64
00000e60: ADD
00000e61: PUSH2 0x0ba9
00000e64: JUMP
00000e65: JUMPDEST
00000e66: PUSH0
00000e67: DUP4
00000e68: GT
00000e69: PUSH2 0x0e84
00000e6c: JUMPI
00000e6d: PUSH1 0x40
00000e6f: MLOAD
00000e70: PUSH3 0x461bcd
00000e74: PUSH1 0xe5
00000e76: SHL
00000e77: DUP2
00000e78: MSTORE
00000e79: PUSH1 0x04
00000e7b: ADD
00000e7c: PUSH2 0x0ba9
00000e7f: SWAP1
00000e80: PUSH2 0x33ba
00000e83: JUMP
00000e84: JUMPDEST
00000e85: PUSH0
00000e86: PUSH2 0x0e8d
00000e89: PUSH2 0x24f2
00000e8c: JUMP
00000e8d: JUMPDEST
00000e8e: SWAP1
00000e8f: POP
00000e90: DUP1
00000e91: DUP5
00000e92: GT
00000e93: ISZERO
00000e94: PUSH2 0x0e9b
00000e97: JUMPI
00000e98: DUP1
00000e99: SWAP4
00000e9a: POP
00000e9b: JUMPDEST
00000e9c: PUSH2 0x0ed0
00000e9f: PUSH1 0x01
00000ea1: PUSH1 0x01
00000ea3: PUSH1 0xa0
00000ea5: SHL
00000ea6: SUB
00000ea7: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b
00000ec8: AND
00000ec9: CALLER
00000eca: ADDRESS
00000ecb: DUP8
00000ecc: PUSH2 0x2582
00000ecf: JUMP
00000ed0: JUMPDEST
00000ed1: PUSH2 0x0eda
00000ed4: ADDRESS
00000ed5: DUP6
00000ed6: PUSH2 0x25bb
00000ed9: JUMP
00000eda: JUMPDEST
00000edb: CALLER
00000edc: PUSH32 0x40812dae8a8ddfad8bbf45f53c5cdbca587edc4238cbcc7537ae84e204b1c8ae
00000efd: DUP6
00000efe: PUSH2 0x0f07
00000f01: DUP2
00000f02: DUP6
00000f03: PUSH2 0x33e2
00000f06: JUMP
00000f07: JUMPDEST
00000f08: PUSH1 0x40
00000f0a: DUP1
00000f0b: MLOAD
00000f0c: SWAP3
00000f0d: DUP4
00000f0e: MSTORE
00000f0f: PUSH1 0x20
00000f11: DUP4
00000f12: ADD
00000f13: SWAP2
00000f14: SWAP1
00000f15: SWAP2
00000f16: MSTORE
00000f17: ADD
00000f18: PUSH1 0x40
00000f1a: MLOAD
00000f1b: DUP1
00000f1c: SWAP2
00000f1d: SUB
00000f1e: SWAP1
00000f1f: LOG2
00000f20: POP
00000f21: SWAP2
00000f22: SWAP3
00000f23: SWAP2
00000f24: POP
00000f25: POP
00000f26: JUMP
00000f27: JUMPDEST
00000f28: PUSH1 0x02
00000f2a: SLOAD
00000f2b: PUSH0
00000f2c: SWAP1
00000f2d: PUSH1 0x01
00000f2f: PUSH1 0xa8
00000f31: SHL
00000f32: SWAP1
00000f33: DIV
00000f34: PUSH1 0xff
00000f36: AND
00000f37: ISZERO
00000f38: PUSH2 0x0f53
00000f3b: JUMPI
00000f3c: PUSH1 0x40
00000f3e: MLOAD
00000f3f: PUSH3 0x461bcd
00000f43: PUSH1 0xe5
00000f45: SHL
00000f46: DUP2
00000f47: MSTORE
00000f48: PUSH1 0x04
00000f4a: ADD
00000f4b: PUSH2 0x0ba9
00000f4e: SWAP1
00000f4f: PUSH2 0x3396
00000f52: JUMP
00000f53: JUMPDEST
00000f54: PUSH32 0x5e17fc5225d4a099df75359ce1f405503ca79498a8dc46a7d583235a0ee45c16
00000f75: PUSH2 0x0f7d
00000f78: DUP2
00000f79: PUSH2 0x1adf
00000f7c: JUMP
00000f7d: JUMPDEST
00000f7e: PUSH1 0x02
00000f80: DUP1
00000f81: SLOAD
00000f82: PUSH1 0xff
00000f84: PUSH1 0xa8
00000f86: SHL
00000f87: NOT
00000f88: AND
00000f89: PUSH1 0x01
00000f8b: PUSH1 0xa8
00000f8d: SHL
00000f8e: OR
00000f8f: SWAP1
00000f90: SSTORE
00000f91: PUSH1 0x03
00000f93: DUP1
00000f94: SLOAD
00000f95: PUSH1 0x01
00000f97: PUSH1 0x01
00000f99: PUSH1 0x80
00000f9b: SHL
00000f9c: SUB
00000f9d: AND
00000f9e: SWAP1
00000f9f: SSTORE
00000fa0: PUSH1 0x04
00000fa2: DUP1
00000fa3: SLOAD
00000fa4: PUSH1 0x01
00000fa6: PUSH1 0x01
00000fa8: PUSH1 0x80
00000faa: SHL
00000fab: SUB
00000fac: NOT
00000fad: AND
00000fae: SWAP1
00000faf: SSTORE
00000fb0: PUSH2 0x0fb8
00000fb3: PUSH0
00000fb4: PUSH2 0x2052
00000fb7: JUMP
00000fb8: JUMPDEST
00000fb9: PUSH0
00000fba: PUSH2 0x0fc1
00000fbd: PUSH2 0x24f2
00000fc0: JUMP
00000fc1: JUMPDEST
00000fc2: PUSH1 0x40
00000fc4: MLOAD
00000fc5: PUSH4 0x70a08231
00000fca: PUSH1 0xe0
00000fcc: SHL
00000fcd: DUP2
00000fce: MSTORE
00000fcf: ADDRESS
00000fd0: PUSH1 0x04
00000fd2: DUP3
00000fd3: ADD
00000fd4: MSTORE
00000fd5: SWAP1
00000fd6: SWAP2
00000fd7: POP
00000fd8: PUSH0
00000fd9: SWAP1
00000fda: PUSH1 0x01
00000fdc: PUSH1 0x01
00000fde: PUSH1 0xa0
00000fe0: SHL
00000fe1: SUB
00000fe2: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00001003: AND
00001004: SWAP1
00001005: PUSH4 0x70a08231
0000100a: SWAP1
0000100b: PUSH1 0x24
0000100d: ADD
0000100e: PUSH1 0x20
00001010: PUSH1 0x40
00001012: MLOAD
00001013: DUP1
00001014: DUP4
00001015: SUB
00001016: DUP2
00001017: DUP7
00001018: GAS
00001019: STATICCALL
0000101a: ISZERO
0000101b: DUP1
0000101c: ISZERO
0000101d: PUSH2 0x1028
00001020: JUMPI
00001021: RETURNDATASIZE
00001022: PUSH0
00001023: PUSH0
00001024: RETURNDATACOPY
00001025: RETURNDATASIZE
00001026: PUSH0
00001027: REVERT
00001028: JUMPDEST
00001029: POP
0000102a: POP
0000102b: POP
0000102c: POP
0000102d: PUSH1 0x40
0000102f: MLOAD
00001030: RETURNDATASIZE
00001031: PUSH1 0x1f
00001033: NOT
00001034: PUSH1 0x1f
00001036: DUP3
00001037: ADD
00001038: AND
00001039: DUP3
0000103a: ADD
0000103b: DUP1
0000103c: PUSH1 0x40
0000103e: MSTORE
0000103f: POP
00001040: DUP2
00001041: ADD
00001042: SWAP1
00001043: PUSH2 0x104c
00001046: SWAP2
00001047: SWAP1
00001048: PUSH2 0x33f5
0000104b: JUMP
0000104c: JUMPDEST
0000104d: SWAP1
0000104e: POP
0000104f: DUP1
00001050: ISZERO
00001051: PUSH2 0x108e
00001054: JUMPI
00001055: PUSH1 0x01
00001057: SLOAD
00001058: PUSH2 0x108e
0000105b: SWAP1
0000105c: PUSH1 0x01
0000105e: PUSH1 0x01
00001060: PUSH1 0xa0
00001062: SHL
00001063: SUB
00001064: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00001085: DUP2
00001086: AND
00001087: SWAP2
00001088: AND
00001089: DUP4
0000108a: PUSH2 0x20b3
0000108d: JUMP
0000108e: JUMPDEST
0000108f: PUSH1 0x01
00001091: SLOAD
00001092: PUSH1 0x40
00001094: DUP1
00001095: MLOAD
00001096: DUP4
00001097: DUP2
00001098: MSTORE
00001099: PUSH1 0x20
0000109b: DUP2
0000109c: ADD
0000109d: DUP6
0000109e: SWAP1
0000109f: MSTORE
000010a0: PUSH1 0x01
000010a2: PUSH1 0x01
000010a4: PUSH1 0xa0
000010a6: SHL
000010a7: SUB
000010a8: SWAP1
000010a9: SWAP3
000010aa: AND
000010ab: SWAP2
000010ac: CALLER
000010ad: SWAP2
000010ae: PUSH32 0xe51b546a59a5440500bc9464ab1cb969d07a4508292c32e540ac0f37b644aca8
000010cf: SWAP2
000010d0: ADD
000010d1: PUSH1 0x40
000010d3: MLOAD
000010d4: DUP1
000010d5: SWAP2
000010d6: SUB
000010d7: SWAP1
000010d8: LOG3
000010d9: SWAP3
000010da: POP
000010db: POP
000010dc: POP
000010dd: SWAP1
000010de: JUMP
000010df: JUMPDEST
000010e0: PUSH0
000010e1: SWAP2
000010e2: DUP3
000010e3: MSTORE
000010e4: PUSH0
000010e5: MLOAD
000010e6: PUSH1 0x20
000010e8: PUSH2 0x34d2
000010eb: PUSH0
000010ec: CODECOPY
000010ed: PUSH0
000010ee: MLOAD
000010ef: SWAP1
000010f0: PUSH0
000010f1: MSTORE
000010f2: PUSH1 0x20
000010f4: SWAP1
000010f5: DUP2
000010f6: MSTORE
000010f7: PUSH1 0x40
000010f9: DUP1
000010fa: DUP5
000010fb: KECCAK256
000010fc: PUSH1 0x01
000010fe: PUSH1 0x01
00001100: PUSH1 0xa0
00001102: SHL
00001103: SUB
00001104: SWAP4
00001105: SWAP1
00001106: SWAP4
00001107: AND
00001108: DUP5
00001109: MSTORE
0000110a: SWAP2
0000110b: SWAP1
0000110c: MSTORE
0000110d: SWAP1
0000110e: KECCAK256
0000110f: SLOAD
00001110: PUSH1 0xff
00001112: AND
00001113: SWAP1
00001114: JUMP
00001115: JUMPDEST
00001116: PUSH0
00001117: MLOAD
00001118: PUSH1 0x20
0000111a: PUSH2 0x3492
0000111d: PUSH0
0000111e: CODECOPY
0000111f: PUSH0
00001120: MLOAD
00001121: SWAP1
00001122: PUSH0
00001123: MSTORE
00001124: PUSH2 0x112c
00001127: DUP2
00001128: PUSH2 0x1adf
0000112b: JUMP
0000112c: JUMPDEST
0000112d: PUSH2 0x09e3
00001130: DUP3
00001131: PUSH2 0x263d
00001134: JUMP
00001135: JUMPDEST
00001136: PUSH1 0x02
00001138: SLOAD
00001139: PUSH0
0000113a: SWAP1
0000113b: DUP2
0000113c: SWAP1
0000113d: DUP2
0000113e: SWAP1
0000113f: DUP2
00001140: SWAP1
00001141: PUSH1 0x01
00001143: PUSH1 0x01
00001145: PUSH1 0xa0
00001147: SHL
00001148: SUB
00001149: AND
0000114a: ISZERO
0000114b: ISZERO
0000114c: DUP2
0000114d: DUP2
0000114e: PUSH2 0x1157
00001151: JUMPI
00001152: DUP7
00001153: PUSH2 0x11c2
00001156: JUMP
00001157: JUMPDEST
00001158: PUSH1 0x02
0000115a: SLOAD
0000115b: PUSH1 0x40
0000115d: MLOAD
0000115e: PUSH4 0x18fdd06b
00001163: PUSH1 0xe0
00001165: SHL
00001166: DUP2
00001167: MSTORE
00001168: PUSH1 0x04
0000116a: DUP2
0000116b: ADD
0000116c: DUP10
0000116d: SWAP1
0000116e: MSTORE
0000116f: PUSH1 0x01
00001171: PUSH1 0x01
00001173: PUSH1 0xa0
00001175: SHL
00001176: SUB
00001177: SWAP1
00001178: SWAP2
00001179: AND
0000117a: SWAP1
0000117b: PUSH4 0x18fdd06b
00001180: SWAP1
00001181: PUSH1 0x24
00001183: ADD
00001184: PUSH1 0x20
00001186: PUSH1 0x40
00001188: MLOAD
00001189: DUP1
0000118a: DUP4
0000118b: SUB
0000118c: DUP2
0000118d: DUP7
0000118e: GAS
0000118f: STATICCALL
00001190: ISZERO
00001191: DUP1
00001192: ISZERO
00001193: PUSH2 0x119e
00001196: JUMPI
00001197: RETURNDATASIZE
00001198: PUSH0
00001199: PUSH0
0000119a: RETURNDATACOPY
0000119b: RETURNDATASIZE
0000119c: PUSH0
0000119d: REVERT
0000119e: JUMPDEST
0000119f: POP
000011a0: POP
000011a1: POP
000011a2: POP
000011a3: PUSH1 0x40
000011a5: MLOAD
000011a6: RETURNDATASIZE
000011a7: PUSH1 0x1f
000011a9: NOT
000011aa: PUSH1 0x1f
000011ac: DUP3
000011ad: ADD
000011ae: AND
000011af: DUP3
000011b0: ADD
000011b1: DUP1
000011b2: PUSH1 0x40
000011b4: MSTORE
000011b5: POP
000011b6: DUP2
000011b7: ADD
000011b8: SWAP1
000011b9: PUSH2 0x11c2
000011bc: SWAP2
000011bd: SWAP1
000011be: PUSH2 0x33f5
000011c1: JUMP
000011c2: JUMPDEST
000011c3: PUSH0
000011c4: DUP1
000011c5: SLOAD
000011c6: PUSH1 0x40
000011c8: MLOAD
000011c9: PUSH4 0x0c66c2a1
000011ce: PUSH1 0xe2
000011d0: SHL
000011d1: DUP2
000011d2: MSTORE
000011d3: PUSH1 0x04
000011d5: DUP2
000011d6: ADD
000011d7: DUP5
000011d8: SWAP1
000011d9: MSTORE
000011da: PUSH1 0x01
000011dc: PUSH1 0x24
000011de: DUP3
000011df: ADD
000011e0: MSTORE
000011e1: SWAP3
000011e2: SWAP4
000011e3: POP
000011e4: SWAP1
000011e5: SWAP2
000011e6: PUSH1 0x01
000011e8: PUSH1 0x01
000011ea: PUSH1 0xa0
000011ec: SHL
000011ed: SUB
000011ee: SWAP1
000011ef: SWAP2
000011f0: AND
000011f1: SWAP1
000011f2: PUSH4 0x319b0a84
000011f7: SWAP1
000011f8: PUSH1 0x44
000011fa: ADD
000011fb: PUSH1 0x20
000011fd: PUSH1 0x40
000011ff: MLOAD
00001200: DUP1
00001201: DUP4
00001202: SUB
00001203: DUP2
00001204: DUP7
00001205: GAS
00001206: STATICCALL
00001207: ISZERO
00001208: DUP1
00001209: ISZERO
0000120a: PUSH2 0x1215
0000120d: JUMPI
0000120e: RETURNDATASIZE
0000120f: PUSH0
00001210: PUSH0
00001211: RETURNDATACOPY
00001212: RETURNDATASIZE
00001213: PUSH0
00001214: REVERT
00001215: JUMPDEST
00001216: POP
00001217: POP
00001218: POP
00001219: POP
0000121a: PUSH1 0x40
0000121c: MLOAD
0000121d: RETURNDATASIZE
0000121e: PUSH1 0x1f
00001220: NOT
00001221: PUSH1 0x1f
00001223: DUP3
00001224: ADD
00001225: AND
00001226: DUP3
00001227: ADD
00001228: DUP1
00001229: PUSH1 0x40
0000122b: MSTORE
0000122c: POP
0000122d: DUP2
0000122e: ADD
0000122f: SWAP1
00001230: PUSH2 0x1239
00001233: SWAP2
00001234: SWAP1
00001235: PUSH2 0x33f5
00001238: JUMP
00001239: JUMPDEST
0000123a: PUSH0
0000123b: DUP1
0000123c: SLOAD
0000123d: PUSH1 0x40
0000123f: MLOAD
00001240: PUSH4 0x4e71f09b
00001245: PUSH1 0xe1
00001247: SHL
00001248: DUP2
00001249: MSTORE
0000124a: PUSH1 0x04
0000124c: DUP2
0000124d: ADD
0000124e: DUP5
0000124f: SWAP1
00001250: MSTORE
00001251: PUSH1 0x24
00001253: DUP2
00001254: ADD
00001255: DUP4
00001256: SWAP1
00001257: MSTORE
00001258: SWAP3
00001259: SWAP4
0000125a: POP
0000125b: SWAP1
0000125c: SWAP2
0000125d: PUSH1 0x01
0000125f: PUSH1 0x01
00001261: PUSH1 0xa0
00001263: SHL
00001264: SUB
00001265: SWAP1
00001266: SWAP2
00001267: AND
00001268: SWAP1
00001269: PUSH4 0x9ce3e136
0000126e: SWAP1
0000126f: PUSH1 0x44
00001271: ADD
00001272: PUSH1 0x20
00001274: PUSH1 0x40
00001276: MLOAD
00001277: DUP1
00001278: DUP4
00001279: SUB
0000127a: DUP2
0000127b: DUP7
0000127c: GAS
0000127d: STATICCALL
0000127e: ISZERO
0000127f: DUP1
00001280: ISZERO
00001281: PUSH2 0x128c
00001284: JUMPI
00001285: RETURNDATASIZE
00001286: PUSH0
00001287: PUSH0
00001288: RETURNDATACOPY
00001289: RETURNDATASIZE
0000128a: PUSH0
0000128b: REVERT
0000128c: JUMPDEST
0000128d: POP
0000128e: POP
0000128f: POP
00001290: POP
00001291: PUSH1 0x40
00001293: MLOAD
00001294: RETURNDATASIZE
00001295: PUSH1 0x1f
00001297: NOT
00001298: PUSH1 0x1f
0000129a: DUP3
0000129b: ADD
0000129c: AND
0000129d: DUP3
0000129e: ADD
0000129f: DUP1
000012a0: PUSH1 0x40
000012a2: MSTORE
000012a3: POP
000012a4: DUP2
000012a5: ADD
000012a6: SWAP1
000012a7: PUSH2 0x12b0
000012aa: SWAP2
000012ab: SWAP1
000012ac: PUSH2 0x33f5
000012af: JUMP
000012b0: JUMPDEST
000012b1: SWAP1
000012b2: POP
000012b3: PUSH0
000012b4: DUP5
000012b5: PUSH2 0x12be
000012b8: JUMPI
000012b9: PUSH0
000012ba: PUSH2 0x1329
000012bd: JUMP
000012be: JUMPDEST
000012bf: PUSH1 0x02
000012c1: SLOAD
000012c2: PUSH1 0x40
000012c4: MLOAD
000012c5: PUSH4 0x959d6d29
000012ca: PUSH1 0xe0
000012cc: SHL
000012cd: DUP2
000012ce: MSTORE
000012cf: PUSH1 0x04
000012d1: DUP2
000012d2: ADD
000012d3: DUP5
000012d4: SWAP1
000012d5: MSTORE
000012d6: PUSH1 0x01
000012d8: PUSH1 0x01
000012da: PUSH1 0xa0
000012dc: SHL
000012dd: SUB
000012de: SWAP1
000012df: SWAP2
000012e0: AND
000012e1: SWAP1
000012e2: PUSH4 0x959d6d29
000012e7: SWAP1
000012e8: PUSH1 0x24
000012ea: ADD
000012eb: PUSH1 0x20
000012ed: PUSH1 0x40
000012ef: MLOAD
000012f0: DUP1
000012f1: DUP4
000012f2: SUB
000012f3: DUP2
000012f4: DUP7
000012f5: GAS
000012f6: STATICCALL
000012f7: ISZERO
000012f8: DUP1
000012f9: ISZERO
000012fa: PUSH2 0x1305
000012fd: JUMPI
000012fe: RETURNDATASIZE
000012ff: PUSH0
00001300: PUSH0
00001301: RETURNDATACOPY
00001302: RETURNDATASIZE
00001303: PUSH0
00001304: REVERT
00001305: JUMPDEST
00001306: POP
00001307: POP
00001308: POP
00001309: POP
0000130a: PUSH1 0x40
0000130c: MLOAD
0000130d: RETURNDATASIZE
0000130e: PUSH1 0x1f
00001310: NOT
00001311: PUSH1 0x1f
00001313: DUP3
00001314: ADD
00001315: AND
00001316: DUP3
00001317: ADD
00001318: DUP1
00001319: PUSH1 0x40
0000131b: MSTORE
0000131c: POP
0000131d: DUP2
0000131e: ADD
0000131f: SWAP1
00001320: PUSH2 0x1329
00001323: SWAP2
00001324: SWAP1
00001325: PUSH2 0x33f5
00001328: JUMP
00001329: JUMPDEST
0000132a: SWAP1
0000132b: POP
0000132c: DUP3
0000132d: PUSH2 0x1336
00001330: DUP3
00001331: DUP5
00001332: PUSH2 0x33e2
00001335: JUMP
00001336: JUMPDEST
00001337: SWAP1
00001338: SWAP12
00001339: SWAP1
0000133a: SWAP11
0000133b: POP
0000133c: SWAP2
0000133d: SWAP9
0000133e: POP
0000133f: SWAP7
00001340: POP
00001341: SWAP5
00001342: POP
00001343: POP
00001344: POP
00001345: POP
00001346: POP
00001347: JUMP
00001348: JUMPDEST
00001349: PUSH1 0x02
0000134b: SLOAD
0000134c: PUSH0
0000134d: SWAP1
0000134e: DUP2
0000134f: SWAP1
00001350: DUP2
00001351: SWAP1
00001352: DUP2
00001353: SWAP1
00001354: PUSH1 0x01
00001356: PUSH1 0x01
00001358: PUSH1 0xa0
0000135a: SHL
0000135b: SUB
0000135c: AND
0000135d: ISZERO
0000135e: ISZERO
0000135f: DUP2
00001360: DUP2
00001361: PUSH2 0x136a
00001364: JUMPI
00001365: DUP7
00001366: PUSH2 0x13d5
00001369: JUMP
0000136a: JUMPDEST
0000136b: PUSH1 0x02
0000136d: SLOAD
0000136e: PUSH1 0x40
00001370: MLOAD
00001371: PUSH4 0x52510fd1
00001376: PUSH1 0xe1
00001378: SHL
00001379: DUP2
0000137a: MSTORE
0000137b: PUSH1 0x04
0000137d: DUP2
0000137e: ADD
0000137f: DUP10
00001380: SWAP1
00001381: MSTORE
00001382: PUSH1 0x01
00001384: PUSH1 0x01
00001386: PUSH1 0xa0
00001388: SHL
00001389: SUB
0000138a: SWAP1
0000138b: SWAP2
0000138c: AND
0000138d: SWAP1
0000138e: PUSH4 0xa4a21fa2
00001393: SWAP1
00001394: PUSH1 0x24
00001396: ADD
00001397: PUSH1 0x20
00001399: PUSH1 0x40
0000139b: MLOAD
0000139c: DUP1
0000139d: DUP4
0000139e: SUB
0000139f: DUP2
000013a0: DUP7
000013a1: GAS
000013a2: STATICCALL
000013a3: ISZERO
000013a4: DUP1
000013a5: ISZERO
000013a6: PUSH2 0x13b1
000013a9: JUMPI
000013aa: RETURNDATASIZE
000013ab: PUSH0
000013ac: PUSH0
000013ad: RETURNDATACOPY
000013ae: RETURNDATASIZE
000013af: PUSH0
000013b0: REVERT
000013b1: JUMPDEST
000013b2: POP
000013b3: POP
000013b4: POP
000013b5: POP
000013b6: PUSH1 0x40
000013b8: MLOAD
000013b9: RETURNDATASIZE
000013ba: PUSH1 0x1f
000013bc: NOT
000013bd: PUSH1 0x1f
000013bf: DUP3
000013c0: ADD
000013c1: AND
000013c2: DUP3
000013c3: ADD
000013c4: DUP1
000013c5: PUSH1 0x40
000013c7: MSTORE
000013c8: POP
000013c9: DUP2
000013ca: ADD
000013cb: SWAP1
000013cc: PUSH2 0x13d5
000013cf: SWAP2
000013d0: SWAP1
000013d1: PUSH2 0x33f5
000013d4: JUMP
000013d5: JUMPDEST
000013d6: PUSH0
000013d7: DUP1
000013d8: SLOAD
000013d9: PUSH1 0x40
000013db: MLOAD
000013dc: PUSH4 0x0c66c2a1
000013e1: PUSH1 0xe2
000013e3: SHL
000013e4: DUP2
000013e5: MSTORE
000013e6: PUSH1 0x04
000013e8: DUP2
000013e9: ADD
000013ea: DUP5
000013eb: SWAP1
000013ec: MSTORE
000013ed: PUSH1 0x24
000013ef: DUP2
000013f0: ADD
000013f1: DUP4
000013f2: SWAP1
000013f3: MSTORE
000013f4: SWAP3
000013f5: SWAP4
000013f6: POP
000013f7: SWAP1
000013f8: SWAP2
000013f9: PUSH1 0x01
000013fb: PUSH1 0x01
000013fd: PUSH1 0xa0
000013ff: SHL
00001400: SUB
00001401: SWAP1
00001402: SWAP2
00001403: AND
00001404: SWAP1
00001405: PUSH4 0x319b0a84
0000140a: SWAP1
0000140b: PUSH1 0x44
0000140d: ADD
0000140e: PUSH1 0x20
00001410: PUSH1 0x40
00001412: MLOAD
00001413: DUP1
00001414: DUP4
00001415: SUB
00001416: DUP2
00001417: DUP7
00001418: GAS
00001419: STATICCALL
0000141a: ISZERO
0000141b: DUP1
0000141c: ISZERO
0000141d: PUSH2 0x1428
00001420: JUMPI
00001421: RETURNDATASIZE
00001422: PUSH0
00001423: PUSH0
00001424: RETURNDATACOPY
00001425: RETURNDATASIZE
00001426: PUSH0
00001427: REVERT
00001428: JUMPDEST
00001429: POP
0000142a: POP
0000142b: POP
0000142c: POP
0000142d: PUSH1 0x40
0000142f: MLOAD
00001430: RETURNDATASIZE
00001431: PUSH1 0x1f
00001433: NOT
00001434: PUSH1 0x1f
00001436: DUP3
00001437: ADD
00001438: AND
00001439: DUP3
0000143a: ADD
0000143b: DUP1
0000143c: PUSH1 0x40
0000143e: MSTORE
0000143f: POP
00001440: DUP2
00001441: ADD
00001442: SWAP1
00001443: PUSH2 0x144c
00001446: SWAP2
00001447: SWAP1
00001448: PUSH2 0x33f5
0000144b: JUMP
0000144c: JUMPDEST
0000144d: PUSH0
0000144e: DUP1
0000144f: SLOAD
00001450: PUSH1 0x40
00001452: MLOAD
00001453: PUSH4 0x4e71f09b
00001458: PUSH1 0xe1
0000145a: SHL
0000145b: DUP2
0000145c: MSTORE
0000145d: PUSH1 0x04
0000145f: DUP2
00001460: ADD
00001461: DUP5
00001462: SWAP1
00001463: MSTORE
00001464: PUSH1 0x01
00001466: PUSH1 0x24
00001468: DUP3
00001469: ADD
0000146a: MSTORE
0000146b: SWAP3
0000146c: SWAP4
0000146d: POP
0000146e: SWAP1
0000146f: SWAP2
00001470: PUSH1 0x01
00001472: PUSH1 0x01
00001474: PUSH1 0xa0
00001476: SHL
00001477: SUB
00001478: SWAP1
00001479: SWAP2
0000147a: AND
0000147b: SWAP1
0000147c: PUSH4 0x9ce3e136
00001481: SWAP1
00001482: PUSH1 0x44
00001484: ADD
00001485: PUSH1 0x20
00001487: PUSH1 0x40
00001489: MLOAD
0000148a: DUP1
0000148b: DUP4
0000148c: SUB
0000148d: DUP2
0000148e: DUP7
0000148f: GAS
00001490: STATICCALL
00001491: ISZERO
00001492: DUP1
00001493: ISZERO
00001494: PUSH2 0x149f
00001497: JUMPI
00001498: RETURNDATASIZE
00001499: PUSH0
0000149a: PUSH0
0000149b: RETURNDATACOPY
0000149c: RETURNDATASIZE
0000149d: PUSH0
0000149e: REVERT
0000149f: JUMPDEST
000014a0: POP
000014a1: POP
000014a2: POP
000014a3: POP
000014a4: PUSH1 0x40
000014a6: MLOAD
000014a7: RETURNDATASIZE
000014a8: PUSH1 0x1f
000014aa: NOT
000014ab: PUSH1 0x1f
000014ad: DUP3
000014ae: ADD
000014af: AND
000014b0: DUP3
000014b1: ADD
000014b2: DUP1
000014b3: PUSH1 0x40
000014b5: MSTORE
000014b6: POP
000014b7: DUP2
000014b8: ADD
000014b9: SWAP1
000014ba: PUSH2 0x14c3
000014bd: SWAP2
000014be: SWAP1
000014bf: PUSH2 0x33f5
000014c2: JUMP
000014c3: JUMPDEST
000014c4: SWAP1
000014c5: POP
000014c6: PUSH0
000014c7: DUP5
000014c8: PUSH2 0x14d1
000014cb: JUMPI
000014cc: PUSH0
000014cd: PUSH2 0x153c
000014d0: JUMP
000014d1: JUMPDEST
000014d2: PUSH1 0x02
000014d4: SLOAD
000014d5: PUSH1 0x40
000014d7: MLOAD
000014d8: PUSH4 0x45d6494d
000014dd: PUSH1 0xe0
000014df: SHL
000014e0: DUP2
000014e1: MSTORE
000014e2: PUSH1 0x04
000014e4: DUP2
000014e5: ADD
000014e6: DUP5
000014e7: SWAP1
000014e8: MSTORE
000014e9: PUSH1 0x01
000014eb: PUSH1 0x01
000014ed: PUSH1 0xa0
000014ef: SHL
000014f0: SUB
000014f1: SWAP1
000014f2: SWAP2
000014f3: AND
000014f4: SWAP1
000014f5: PUSH4 0x45d6494d
000014fa: SWAP1
000014fb: PUSH1 0x24
000014fd: ADD
000014fe: PUSH1 0x20
00001500: PUSH1 0x40
00001502: MLOAD
00001503: DUP1
00001504: DUP4
00001505: SUB
00001506: DUP2
00001507: DUP7
00001508: GAS
00001509: STATICCALL
0000150a: ISZERO
0000150b: DUP1
0000150c: ISZERO
0000150d: PUSH2 0x1518
00001510: JUMPI
00001511: RETURNDATASIZE
00001512: PUSH0
00001513: PUSH0
00001514: RETURNDATACOPY
00001515: RETURNDATASIZE
00001516: PUSH0
00001517: REVERT
00001518: JUMPDEST
00001519: POP
0000151a: POP
0000151b: POP
0000151c: POP
0000151d: PUSH1 0x40
0000151f: MLOAD
00001520: RETURNDATASIZE
00001521: PUSH1 0x1f
00001523: NOT
00001524: PUSH1 0x1f
00001526: DUP3
00001527: ADD
00001528: AND
00001529: DUP3
0000152a: ADD
0000152b: DUP1
0000152c: PUSH1 0x40
0000152e: MSTORE
0000152f: POP
00001530: DUP2
00001531: ADD
00001532: SWAP1
00001533: PUSH2 0x153c
00001536: SWAP2
00001537: SWAP1
00001538: PUSH2 0x33f5
0000153b: JUMP
0000153c: JUMPDEST
0000153d: SWAP1
0000153e: POP
0000153f: DUP3
00001540: PUSH2 0x1336
00001543: DUP3
00001544: DUP5
00001545: PUSH2 0x340c
00001548: JUMP
00001549: JUMPDEST
0000154a: PUSH1 0x02
0000154c: SLOAD
0000154d: PUSH0
0000154e: SWAP1
0000154f: DUP2
00001550: SWAP1
00001551: PUSH1 0x01
00001553: PUSH1 0xa0
00001555: SHL
00001556: SWAP1
00001557: DIV
00001558: PUSH1 0xff
0000155a: AND
0000155b: ISZERO
0000155c: PUSH2 0x1594
0000155f: JUMPI
00001560: PUSH1 0x40
00001562: MLOAD
00001563: PUSH3 0x461bcd
00001567: PUSH1 0xe5
00001569: SHL
0000156a: DUP2
0000156b: MSTORE
0000156c: PUSH1 0x20
0000156e: PUSH1 0x04
00001570: DUP3
00001571: ADD
00001572: MSTORE
00001573: PUSH1 0x0a
00001575: PUSH1 0x24
00001577: DUP3
00001578: ADD
00001579: MSTORE
0000157a: PUSH10 0x2aa9a6afa32927ad22a7
00001585: PUSH1 0xb1
00001587: SHL
00001588: PUSH1 0x44
0000158a: DUP3
0000158b: ADD
0000158c: MSTORE
0000158d: PUSH1 0x64
0000158f: ADD
00001590: PUSH2 0x0ba9
00001593: JUMP
00001594: JUMPDEST
00001595: PUSH1 0x02
00001597: SLOAD
00001598: PUSH1 0x01
0000159a: PUSH1 0xa8
0000159c: SHL
0000159d: SWAP1
0000159e: DIV
0000159f: PUSH1 0xff
000015a1: AND
000015a2: ISZERO
000015a3: PUSH2 0x15be
000015a6: JUMPI
000015a7: PUSH1 0x40
000015a9: MLOAD
000015aa: PUSH3 0x461bcd
000015ae: PUSH1 0xe5
000015b0: SHL
000015b1: DUP2
000015b2: MSTORE
000015b3: PUSH1 0x04
000015b5: ADD
000015b6: PUSH2 0x0ba9
000015b9: SWAP1
000015ba: PUSH2 0x3396
000015bd: JUMP
000015be: JUMPDEST
000015bf: CALLER
000015c0: PUSH1 0x01
000015c2: PUSH1 0x04
000015c4: SLOAD
000015c5: PUSH1 0x01
000015c7: PUSH1 0x80
000015c9: SHL
000015ca: SWAP1
000015cb: DIV
000015cc: PUSH1 0xff
000015ce: AND
000015cf: PUSH1 0x01
000015d1: DUP2
000015d2: GT
000015d3: ISZERO
000015d4: PUSH2 0x15df
000015d7: JUMPI
000015d8: PUSH2 0x15df
000015db: PUSH2 0x31bd
000015de: JUMP
000015df: JUMPDEST
000015e0: SUB
000015e1: PUSH2 0x164d
000015e4: JUMPI
000015e5: PUSH2 0x160e
000015e8: PUSH32 0x724f6a44d576143e18c60911798b2b15551ca96bd8f7cb7524b8fa36253a26d8
00001609: DUP3
0000160a: PUSH2 0x10df
0000160d: JUMP
0000160e: JUMPDEST
0000160f: PUSH2 0x164d
00001612: JUMPI
00001613: PUSH1 0x40
00001615: MLOAD
00001616: PUSH3 0x461bcd
0000161a: PUSH1 0xe5
0000161c: SHL
0000161d: DUP2
0000161e: MSTORE
0000161f: PUSH1 0x20
00001621: PUSH1 0x04
00001623: DUP3
00001624: ADD
00001625: MSTORE
00001626: PUSH1 0x10
00001628: PUSH1 0x24
0000162a: DUP3
0000162b: ADD
0000162c: MSTORE
0000162d: PUSH16 0x1393d508141154935254d4d253d39151
0000163e: PUSH1 0x82
00001640: SHL
00001641: PUSH1 0x44
00001643: DUP3
00001644: ADD
00001645: MSTORE
00001646: PUSH1 0x64
00001648: ADD
00001649: PUSH2 0x0ba9
0000164c: JUMP
0000164d: JUMPDEST
0000164e: PUSH2 0x0c76
00001651: CALLER
00001652: DUP7
00001653: DUP7
00001654: PUSH2 0x2765
00001657: JUMP
00001658: JUMPDEST
00001659: PUSH0
0000165a: MLOAD
0000165b: PUSH1 0x20
0000165d: PUSH2 0x3492
00001660: PUSH0
00001661: CODECOPY
00001662: PUSH0
00001663: MLOAD
00001664: SWAP1
00001665: PUSH0
00001666: MSTORE
00001667: PUSH2 0x166f
0000166a: DUP2
0000166b: PUSH2 0x1adf
0000166e: JUMP
0000166f: JUMPDEST
00001670: PUSH2 0x09e3
00001673: DUP3
00001674: PUSH2 0x2970
00001677: JUMP
00001678: JUMPDEST
00001679: PUSH32 0x6dac4cc0544e34aa1a4ed2862f6de78290e3f18f00fe77179ee8ef34de9dfa24
0000169a: PUSH2 0x16a2
0000169d: DUP2
0000169e: PUSH2 0x1adf
000016a1: JUMP
000016a2: JUMPDEST
000016a3: DUP2
000016a4: ISZERO
000016a5: PUSH2 0x16fc
000016a8: JUMPI
000016a9: PUSH1 0x02
000016ab: SLOAD
000016ac: PUSH1 0x01
000016ae: PUSH1 0xa0
000016b0: SHL
000016b1: SWAP1
000016b2: DIV
000016b3: PUSH1 0xff
000016b5: AND
000016b6: ISZERO
000016b7: PUSH2 0x16f7
000016ba: JUMPI
000016bb: PUSH1 0x40
000016bd: MLOAD
000016be: PUSH3 0x461bcd
000016c2: PUSH1 0xe5
000016c4: SHL
000016c5: DUP2
000016c6: MSTORE
000016c7: PUSH1 0x20
000016c9: PUSH1 0x04
000016cb: DUP3
000016cc: ADD
000016cd: MSTORE
000016ce: PUSH1 0x12
000016d0: PUSH1 0x24
000016d2: DUP3
000016d3: ADD
000016d4: MSTORE
000016d5: PUSH18 0x2aa9a6afa0a62922a0a22cafa32927ad22a7
000016e8: PUSH1 0x71
000016ea: SHL
000016eb: PUSH1 0x44
000016ed: DUP3
000016ee: ADD
000016ef: MSTORE
000016f0: PUSH1 0x64
000016f2: ADD
000016f3: PUSH2 0x0ba9
000016f6: JUMP
000016f7: JUMPDEST
000016f8: PUSH2 0x174c
000016fb: JUMP
000016fc: JUMPDEST
000016fd: PUSH1 0x02
000016ff: SLOAD
00001700: PUSH1 0x01
00001702: PUSH1 0xa0
00001704: SHL
00001705: SWAP1
00001706: DIV
00001707: PUSH1 0xff
00001709: AND
0000170a: PUSH2 0x174c
0000170d: JUMPI
0000170e: PUSH1 0x40
00001710: MLOAD
00001711: PUSH3 0x461bcd
00001715: PUSH1 0xe5
00001717: SHL
00001718: DUP2
00001719: MSTORE
0000171a: PUSH1 0x20
0000171c: PUSH1 0x04
0000171e: DUP3
0000171f: ADD
00001720: MSTORE
00001721: PUSH1 0x14
00001723: PUSH1 0x24
00001725: DUP3
00001726: ADD
00001727: MSTORE
00001728: PUSH20 0x2aa9a6afa0a62922a0a22cafaaa7232927ad22a7
0000173d: PUSH1 0x61
0000173f: SHL
00001740: PUSH1 0x44
00001742: DUP3
00001743: ADD
00001744: MSTORE
00001745: PUSH1 0x64
00001747: ADD
00001748: PUSH2 0x0ba9
0000174b: JUMP
0000174c: JUMPDEST
0000174d: PUSH1 0x02
0000174f: DUP1
00001750: SLOAD
00001751: DUP4
00001752: ISZERO
00001753: ISZERO
00001754: PUSH1 0x01
00001756: PUSH1 0xa0
00001758: SHL
00001759: MUL
0000175a: PUSH1 0xff
0000175c: PUSH1 0xa0
0000175e: SHL
0000175f: NOT
00001760: SWAP1
00001761: SWAP2
00001762: AND
00001763: OR
00001764: SWAP1
00001765: SSTORE
00001766: PUSH1 0x40
00001768: MLOAD
00001769: CALLER
0000176a: SWAP1
0000176b: PUSH32 0x2aa23821d2fd7524b53239d5f8398ea59652bbfea171645c0da0dbe82afb5d43
0000178c: SWAP1
0000178d: PUSH2 0x179b
00001790: SWAP1
00001791: DUP6
00001792: ISZERO
00001793: ISZERO
00001794: DUP2
00001795: MSTORE
00001796: PUSH1 0x20
00001798: ADD
00001799: SWAP1
0000179a: JUMP
0000179b: JUMPDEST
0000179c: PUSH1 0x40
0000179e: MLOAD
0000179f: DUP1
000017a0: SWAP2
000017a1: SUB
000017a2: SWAP1
000017a3: LOG2
000017a4: POP
000017a5: POP
000017a6: JUMP
000017a7: JUMPDEST
000017a8: PUSH32 0xbf63066482b01a20567880b14a2934fecb21c925e6bcc0a0a091c59723fa9c06
000017c9: PUSH2 0x17d1
000017cc: DUP2
000017cd: PUSH2 0x1adf
000017d0: JUMP
000017d1: JUMPDEST
000017d2: PUSH0
000017d3: DUP3
000017d4: GT
000017d5: PUSH2 0x17f0
000017d8: JUMPI
000017d9: PUSH1 0x40
000017db: MLOAD
000017dc: PUSH3 0x461bcd
000017e0: PUSH1 0xe5
000017e2: SHL
000017e3: DUP2
000017e4: MSTORE
000017e5: PUSH1 0x04
000017e7: ADD
000017e8: PUSH2 0x0ba9
000017eb: SWAP1
000017ec: PUSH2 0x33ba
000017ef: JUMP
000017f0: JUMPDEST
000017f1: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b
00001812: PUSH1 0x01
00001814: PUSH1 0x01
00001816: PUSH1 0xa0
00001818: SHL
00001819: SUB
0000181a: AND
0000181b: DUP5
0000181c: PUSH1 0x01
0000181e: PUSH1 0x01
00001820: PUSH1 0xa0
00001822: SHL
00001823: SUB
00001824: AND
00001825: SUB
00001826: PUSH2 0x190d
00001829: JUMPI
0000182a: PUSH1 0x04
0000182c: DUP1
0000182d: SLOAD
0000182e: PUSH1 0x40
00001830: MLOAD
00001831: PUSH4 0x70a08231
00001836: PUSH1 0xe0
00001838: SHL
00001839: DUP2
0000183a: MSTORE
0000183b: ADDRESS
0000183c: SWAP3
0000183d: DUP2
0000183e: ADD
0000183f: SWAP3
00001840: SWAP1
00001841: SWAP3
00001842: MSTORE
00001843: PUSH0
00001844: SWAP2
00001845: PUSH1 0x01
00001847: PUSH1 0x01
00001849: PUSH1 0x80
0000184b: SHL
0000184c: SUB
0000184d: SWAP1
0000184e: SWAP2
0000184f: AND
00001850: SWAP1
00001851: PUSH1 0x01
00001853: PUSH1 0x01
00001855: PUSH1 0xa0
00001857: SHL
00001858: SUB
00001859: DUP8
0000185a: AND
0000185b: SWAP1
0000185c: PUSH4 0x70a08231
00001861: SWAP1
00001862: PUSH1 0x24
00001864: ADD
00001865: PUSH1 0x20
00001867: PUSH1 0x40
00001869: MLOAD
0000186a: DUP1
0000186b: DUP4
0000186c: SUB
0000186d: DUP2
0000186e: DUP7
0000186f: GAS
00001870: STATICCALL
00001871: ISZERO
00001872: DUP1
00001873: ISZERO
00001874: PUSH2 0x187f
00001877: JUMPI
00001878: RETURNDATASIZE
00001879: PUSH0
0000187a: PUSH0
0000187b: RETURNDATACOPY
0000187c: RETURNDATASIZE
0000187d: PUSH0
0000187e: REVERT
0000187f: JUMPDEST
00001880: POP
00001881: POP
00001882: POP
00001883: POP
00001884: PUSH1 0x40
00001886: MLOAD
00001887: RETURNDATASIZE
00001888: PUSH1 0x1f
0000188a: NOT
0000188b: PUSH1 0x1f
0000188d: DUP3
0000188e: ADD
0000188f: AND
00001890: DUP3
00001891: ADD
00001892: DUP1
00001893: PUSH1 0x40
00001895: MSTORE
00001896: POP
00001897: DUP2
00001898: ADD
00001899: SWAP1
0000189a: PUSH2 0x18a3
0000189d: SWAP2
0000189e: SWAP1
0000189f: PUSH2 0x33f5
000018a2: JUMP
000018a3: JUMPDEST
000018a4: PUSH2 0x18ad
000018a7: SWAP2
000018a8: SWAP1
000018a9: PUSH2 0x33e2
000018ac: JUMP
000018ad: JUMPDEST
000018ae: SWAP1
000018af: POP
000018b0: DUP3
000018b1: DUP2
000018b2: LT
000018b3: ISZERO
000018b4: PUSH2 0x190b
000018b7: JUMPI
000018b8: PUSH1 0x40
000018ba: MLOAD
000018bb: PUSH3 0x461bcd
000018bf: PUSH1 0xe5
000018c1: SHL
000018c2: DUP2
000018c3: MSTORE
000018c4: PUSH1 0x20
000018c6: PUSH1 0x04
000018c8: DUP3
000018c9: ADD
000018ca: MSTORE
000018cb: PUSH1 0x23
000018cd: PUSH1 0x24
000018cf: DUP3
000018d0: ADD
000018d1: MSTORE
000018d2: PUSH32 0x494e53554646494349454e545f535441424c455f544f4b454e5f544f5f524553
000018f3: PUSH1 0x44
000018f5: DUP3
000018f6: ADD
000018f7: MSTORE
000018f8: PUSH3 0x435545
000018fc: PUSH1 0xe8
000018fe: SHL
000018ff: PUSH1 0x64
00001901: DUP3
00001902: ADD
00001903: MSTORE
00001904: PUSH1 0x84
00001906: ADD
00001907: PUSH2 0x0ba9
0000190a: JUMP
0000190b: JUMPDEST
0000190c: POP
0000190d: JUMPDEST
0000190e: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0000192f: PUSH1 0x01
00001931: PUSH1 0x01
00001933: PUSH1 0xa0
00001935: SHL
00001936: SUB
00001937: AND
00001938: DUP5
00001939: PUSH1 0x01
0000193b: PUSH1 0x01
0000193d: PUSH1 0xa0
0000193f: SHL
00001940: SUB
00001941: AND
00001942: SUB
00001943: PUSH2 0x1a2f
00001946: JUMPI
00001947: PUSH1 0x03
00001949: SLOAD
0000194a: PUSH1 0x40
0000194c: MLOAD
0000194d: PUSH4 0x70a08231
00001952: PUSH1 0xe0
00001954: SHL
00001955: DUP2
00001956: MSTORE
00001957: ADDRESS
00001958: PUSH1 0x04
0000195a: DUP3
0000195b: ADD
0000195c: MSTORE
0000195d: PUSH0
0000195e: SWAP2
0000195f: PUSH1 0x01
00001961: PUSH1 0x80
00001963: SHL
00001964: SWAP1
00001965: DIV
00001966: PUSH1 0x01
00001968: PUSH1 0x01
0000196a: PUSH1 0x80
0000196c: SHL
0000196d: SUB
0000196e: AND
0000196f: SWAP1
00001970: PUSH1 0x01
00001972: PUSH1 0x01
00001974: PUSH1 0xa0
00001976: SHL
00001977: SUB
00001978: DUP8
00001979: AND
0000197a: SWAP1
0000197b: PUSH4 0x70a08231
00001980: SWAP1
00001981: PUSH1 0x24
00001983: ADD
00001984: PUSH1 0x20
00001986: PUSH1 0x40
00001988: MLOAD
00001989: DUP1
0000198a: DUP4
0000198b: SUB
0000198c: DUP2
0000198d: DUP7
0000198e: GAS
0000198f: STATICCALL
00001990: ISZERO
00001991: DUP1
00001992: ISZERO
00001993: PUSH2 0x199e
00001996: JUMPI
00001997: RETURNDATASIZE
00001998: PUSH0
00001999: PUSH0
0000199a: RETURNDATACOPY
0000199b: RETURNDATASIZE
0000199c: PUSH0
0000199d: REVERT
0000199e: JUMPDEST
0000199f: POP
000019a0: POP
000019a1: POP
000019a2: POP
000019a3: PUSH1 0x40
000019a5: MLOAD
000019a6: RETURNDATASIZE
000019a7: PUSH1 0x1f
000019a9: NOT
000019aa: PUSH1 0x1f
000019ac: DUP3
000019ad: ADD
000019ae: AND
000019af: DUP3
000019b0: ADD
000019b1: DUP1
000019b2: PUSH1 0x40
000019b4: MSTORE
000019b5: POP
000019b6: DUP2
000019b7: ADD
000019b8: SWAP1
000019b9: PUSH2 0x19c2
000019bc: SWAP2
000019bd: SWAP1
000019be: PUSH2 0x33f5
000019c1: JUMP
000019c2: JUMPDEST
000019c3: PUSH2 0x19cc
000019c6: SWAP2
000019c7: SWAP1
000019c8: PUSH2 0x33e2
000019cb: JUMP
000019cc: JUMPDEST
000019cd: SWAP1
000019ce: POP
000019cf: DUP3
000019d0: DUP2
000019d1: LT
000019d2: ISZERO
000019d3: PUSH2 0x1a2d
000019d6: JUMPI
000019d7: PUSH1 0x40
000019d9: MLOAD
000019da: PUSH3 0x461bcd
000019de: PUSH1 0xe5
000019e0: SHL
000019e1: DUP2
000019e2: MSTORE
000019e3: PUSH1 0x20
000019e5: PUSH1 0x04
000019e7: DUP3
000019e8: ADD
000019e9: MSTORE
000019ea: PUSH1 0x26
000019ec: PUSH1 0x24
000019ee: DUP3
000019ef: ADD
000019f0: MSTORE
000019f1: PUSH32 0x494e53554646494349454e545f45584f47454e4f55535f41535345545f544f5f
00001a12: PUSH1 0x44
00001a14: DUP3
00001a15: ADD
00001a16: MSTORE
00001a17: PUSH6 0x524553435545
00001a1e: PUSH1 0xd0
00001a20: SHL
00001a21: PUSH1 0x64
00001a23: DUP3
00001a24: ADD
00001a25: MSTORE
00001a26: PUSH1 0x84
00001a28: ADD
00001a29: PUSH2 0x0ba9
00001a2c: JUMP
00001a2d: JUMPDEST
00001a2e: POP
00001a2f: JUMPDEST
00001a30: PUSH2 0x1a43
00001a33: PUSH1 0x01
00001a35: PUSH1 0x01
00001a37: PUSH1 0xa0
00001a39: SHL
00001a3a: SUB
00001a3b: DUP6
00001a3c: AND
00001a3d: DUP5
00001a3e: DUP5
00001a3f: PUSH2 0x20b3
00001a42: JUMP
00001a43: JUMPDEST
00001a44: DUP3
00001a45: PUSH1 0x01
00001a47: PUSH1 0x01
00001a49: PUSH1 0xa0
00001a4b: SHL
00001a4c: SUB
00001a4d: AND
00001a4e: DUP5
00001a4f: PUSH1 0x01
00001a51: PUSH1 0x01
00001a53: PUSH1 0xa0
00001a55: SHL
00001a56: SUB
00001a57: AND
00001a58: PUSH32 0x77023e19c7343ad491fd706c36335ca0e738340a91f29b1fd81e2673d44896c4
00001a79: DUP5
00001a7a: PUSH1 0x40
00001a7c: MLOAD
00001a7d: PUSH2 0x1a88
00001a80: SWAP2
00001a81: DUP2
00001a82: MSTORE
00001a83: PUSH1 0x20
00001a85: ADD
00001a86: SWAP1
00001a87: JUMP
00001a88: JUMPDEST
00001a89: PUSH1 0x40
00001a8b: MLOAD
00001a8c: DUP1
00001a8d: SWAP2
00001a8e: SUB
00001a8f: SWAP1
00001a90: LOG3
00001a91: POP
00001a92: POP
00001a93: POP
00001a94: POP
00001a95: JUMP
00001a96: JUMPDEST
00001a97: PUSH0
00001a98: PUSH0
00001a99: PUSH0
00001a9a: PUSH0
00001a9b: PUSH2 0x0dc6
00001a9e: DUP6
00001a9f: PUSH2 0x2a34
00001aa2: JUMP
00001aa3: JUMPDEST
00001aa4: PUSH2 0x1aac
00001aa7: DUP3
00001aa8: PUSH2 0x09e7
00001aab: JUMP
00001aac: JUMPDEST
00001aad: PUSH2 0x1ab5
00001ab0: DUP2
00001ab1: PUSH2 0x1adf
00001ab4: JUMP
00001ab5: JUMPDEST
00001ab6: PUSH2 0x0b24
00001ab9: DUP4
00001aba: DUP4
00001abb: PUSH2 0x1d07
00001abe: JUMP
00001abf: JUMPDEST
00001ac0: PUSH0
00001ac1: MLOAD
00001ac2: PUSH1 0x20
00001ac4: PUSH2 0x3492
00001ac7: PUSH0
00001ac8: CODECOPY
00001ac9: PUSH0
00001aca: MLOAD
00001acb: SWAP1
00001acc: PUSH0
00001acd: MSTORE
00001ace: PUSH2 0x1ad6
00001ad1: DUP2
00001ad2: PUSH2 0x1adf
00001ad5: JUMP
00001ad6: JUMPDEST
00001ad7: PUSH2 0x09e3
00001ada: DUP3
00001adb: PUSH2 0x2c4a
00001ade: JUMP
00001adf: JUMPDEST
00001ae0: PUSH2 0x0d9b
00001ae3: DUP2
00001ae4: CALLER
00001ae5: PUSH2 0x2d19
00001ae8: JUMP
00001ae9: JUMPDEST
00001aea: PUSH1 0x01
00001aec: PUSH1 0x01
00001aee: PUSH1 0xa0
00001af0: SHL
00001af1: SUB
00001af2: DUP2
00001af3: AND
00001af4: PUSH2 0x1b38
00001af7: JUMPI
00001af8: PUSH1 0x40
00001afa: MLOAD
00001afb: PUSH3 0x461bcd
00001aff: PUSH1 0xe5
00001b01: SHL
00001b02: DUP2
00001b03: MSTORE
00001b04: PUSH1 0x20
00001b06: PUSH1 0x04
00001b08: DUP3
00001b09: ADD
00001b0a: MSTORE
00001b0b: PUSH1 0x16
00001b0d: PUSH1 0x24
00001b0f: DUP3
00001b10: ADD
00001b11: MSTORE
00001b12: PUSH22 0x16915493d7d05111149154d4d7d393d517d590531251
00001b29: PUSH1 0x52
00001b2b: SHL
00001b2c: PUSH1 0x44
00001b2e: DUP3
00001b2f: ADD
00001b30: MSTORE
00001b31: PUSH1 0x64
00001b33: ADD
00001b34: PUSH2 0x0ba9
00001b37: JUMP
00001b38: JUMPDEST
00001b39: PUSH1 0x01
00001b3b: DUP1
00001b3c: SLOAD
00001b3d: PUSH1 0x01
00001b3f: PUSH1 0x01
00001b41: PUSH1 0xa0
00001b43: SHL
00001b44: SUB
00001b45: DUP4
00001b46: DUP2
00001b47: AND
00001b48: PUSH1 0x01
00001b4a: PUSH1 0x01
00001b4c: PUSH1 0xa0
00001b4e: SHL
00001b4f: SUB
00001b50: NOT
00001b51: DUP4
00001b52: AND
00001b53: DUP2
00001b54: OR
00001b55: SWAP1
00001b56: SWAP4
00001b57: SSTORE
00001b58: PUSH1 0x40
00001b5a: MLOAD
00001b5b: SWAP2
00001b5c: AND
00001b5d: SWAP2
00001b5e: SWAP1
00001b5f: DUP3
00001b60: SWAP1
00001b61: PUSH32 0x5bb4a397b030d1b442eb0e5f988366866a9c68db58a5102c534e6b4c5fb41b57
00001b82: SWAP1
00001b83: PUSH0
00001b84: SWAP1
00001b85: LOG3
00001b86: POP
00001b87: POP
00001b88: JUMP
00001b89: JUMPDEST
00001b8a: PUSH0
00001b8b: DUP1
00001b8c: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00
00001bad: PUSH2 0x0942
00001bb0: JUMP
00001bb1: JUMPDEST
00001bb2: PUSH2 0x1bb9
00001bb5: PUSH2 0x2d52
00001bb8: JUMP
00001bb9: JUMPDEST
00001bba: PUSH1 0x01
00001bbc: PUSH1 0x01
00001bbe: PUSH1 0xa0
00001bc0: SHL
00001bc1: SUB
00001bc2: DUP6
00001bc3: AND
00001bc4: PUSH2 0x1c08
00001bc7: JUMPI
00001bc8: PUSH1 0x40
00001bca: MLOAD
00001bcb: PUSH3 0x461bcd
00001bcf: PUSH1 0xe5
00001bd1: SHL
00001bd2: DUP2
00001bd3: MSTORE
00001bd4: PUSH1 0x20
00001bd6: PUSH1 0x04
00001bd8: DUP3
00001bd9: ADD
00001bda: MSTORE
00001bdb: PUSH1 0x16
00001bdd: PUSH1 0x24
00001bdf: DUP3
00001be0: ADD
00001be1: MSTORE
00001be2: PUSH22 0x16915493d7d05111149154d4d7d393d517d590531251
00001bf9: PUSH1 0x52
00001bfb: SHL
00001bfc: PUSH1 0x44
00001bfe: DUP3
00001bff: ADD
00001c00: MSTORE
00001c01: PUSH1 0x64
00001c03: ADD
00001c04: PUSH2 0x0ba9
00001c07: JUMP
00001c08: JUMPDEST
00001c09: PUSH2 0x1c10
00001c0c: PUSH2 0x2d77
00001c0f: JUMP
00001c10: JUMPDEST
00001c11: PUSH2 0x1c18
00001c14: PUSH2 0x2d77
00001c17: JUMP
00001c18: JUMPDEST
00001c19: PUSH2 0x1c22
00001c1c: PUSH0
00001c1d: DUP7
00001c1e: PUSH2 0x1c66
00001c21: JUMP
00001c22: JUMPDEST
00001c23: POP
00001c24: PUSH2 0x1c3a
00001c27: PUSH0
00001c28: MLOAD
00001c29: PUSH1 0x20
00001c2b: PUSH2 0x3492
00001c2e: PUSH0
00001c2f: CODECOPY
00001c30: PUSH0
00001c31: MLOAD
00001c32: SWAP1
00001c33: PUSH0
00001c34: MSTORE
00001c35: DUP7
00001c36: PUSH2 0x1c66
00001c39: JUMP
00001c3a: JUMPDEST
00001c3b: POP
00001c3c: PUSH2 0x1c44
00001c3f: DUP5
00001c40: PUSH2 0x1ae9
00001c43: JUMP
00001c44: JUMPDEST
00001c45: PUSH2 0x1c4d
00001c48: DUP4
00001c49: PUSH2 0x2052
00001c4c: JUMP
00001c4d: JUMPDEST
00001c4e: PUSH2 0x1c56
00001c51: DUP3
00001c52: PUSH2 0x263d
00001c55: JUMP
00001c56: JUMPDEST
00001c57: PUSH2 0x1c5f
00001c5a: DUP2
00001c5b: PUSH2 0x1fee
00001c5e: JUMP
00001c5f: JUMPDEST
00001c60: POP
00001c61: POP
00001c62: POP
00001c63: POP
00001c64: POP
00001c65: JUMP
00001c66: JUMPDEST
00001c67: PUSH0
00001c68: PUSH0
00001c69: MLOAD
00001c6a: PUSH1 0x20
00001c6c: PUSH2 0x34d2
00001c6f: PUSH0
00001c70: CODECOPY
00001c71: PUSH0
00001c72: MLOAD
00001c73: SWAP1
00001c74: PUSH0
00001c75: MSTORE
00001c76: PUSH2 0x1c7f
00001c79: DUP5
00001c7a: DUP5
00001c7b: PUSH2 0x10df
00001c7e: JUMP
00001c7f: JUMPDEST
00001c80: PUSH2 0x1cfe
00001c83: JUMPI
00001c84: PUSH0
00001c85: DUP5
00001c86: DUP2
00001c87: MSTORE
00001c88: PUSH1 0x20
00001c8a: DUP3
00001c8b: DUP2
00001c8c: MSTORE
00001c8d: PUSH1 0x40
00001c8f: DUP1
00001c90: DUP4
00001c91: KECCAK256
00001c92: PUSH1 0x01
00001c94: PUSH1 0x01
00001c96: PUSH1 0xa0
00001c98: SHL
00001c99: SUB
00001c9a: DUP8
00001c9b: AND
00001c9c: DUP5
00001c9d: MSTORE
00001c9e: SWAP1
00001c9f: SWAP2
00001ca0: MSTORE
00001ca1: SWAP1
00001ca2: KECCAK256
00001ca3: DUP1
00001ca4: SLOAD
00001ca5: PUSH1 0xff
00001ca7: NOT
00001ca8: AND
00001ca9: PUSH1 0x01
00001cab: OR
00001cac: SWAP1
00001cad: SSTORE
00001cae: PUSH2 0x1cb4
00001cb1: CALLER
00001cb2: SWAP1
00001cb3: JUMP
00001cb4: JUMPDEST
00001cb5: PUSH1 0x01
00001cb7: PUSH1 0x01
00001cb9: PUSH1 0xa0
00001cbb: SHL
00001cbc: SUB
00001cbd: AND
00001cbe: DUP4
00001cbf: PUSH1 0x01
00001cc1: PUSH1 0x01
00001cc3: PUSH1 0xa0
00001cc5: SHL
00001cc6: SUB
00001cc7: AND
00001cc8: DUP6
00001cc9: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
00001cea: PUSH1 0x40
00001cec: MLOAD
00001ced: PUSH1 0x40
00001cef: MLOAD
00001cf0: DUP1
00001cf1: SWAP2
00001cf2: SUB
00001cf3: SWAP1
00001cf4: LOG4
00001cf5: PUSH1 0x01
00001cf7: SWAP2
00001cf8: POP
00001cf9: POP
00001cfa: PUSH2 0x0942
00001cfd: JUMP
00001cfe: JUMPDEST
00001cff: PUSH0
00001d00: SWAP2
00001d01: POP
00001d02: POP
00001d03: PUSH2 0x0942
00001d06: JUMP
00001d07: JUMPDEST
00001d08: PUSH0
00001d09: PUSH0
00001d0a: MLOAD
00001d0b: PUSH1 0x20
00001d0d: PUSH2 0x34d2
00001d10: PUSH0
00001d11: CODECOPY
00001d12: PUSH0
00001d13: MLOAD
00001d14: SWAP1
00001d15: PUSH0
00001d16: MSTORE
00001d17: PUSH2 0x1d20
00001d1a: DUP5
00001d1b: DUP5
00001d1c: PUSH2 0x10df
00001d1f: JUMP
00001d20: JUMPDEST
00001d21: ISZERO
00001d22: PUSH2 0x1cfe
00001d25: JUMPI
00001d26: PUSH0
00001d27: DUP5
00001d28: DUP2
00001d29: MSTORE
00001d2a: PUSH1 0x20
00001d2c: DUP3
00001d2d: DUP2
00001d2e: MSTORE
00001d2f: PUSH1 0x40
00001d31: DUP1
00001d32: DUP4
00001d33: KECCAK256
00001d34: PUSH1 0x01
00001d36: PUSH1 0x01
00001d38: PUSH1 0xa0
00001d3a: SHL
00001d3b: SUB
00001d3c: DUP8
00001d3d: AND
00001d3e: DUP1
00001d3f: DUP6
00001d40: MSTORE
00001d41: SWAP3
00001d42: MSTORE
00001d43: DUP1
00001d44: DUP4
00001d45: KECCAK256
00001d46: DUP1
00001d47: SLOAD
00001d48: PUSH1 0xff
00001d4a: NOT
00001d4b: AND
00001d4c: SWAP1
00001d4d: SSTORE
00001d4e: MLOAD
00001d4f: CALLER
00001d50: SWAP3
00001d51: DUP8
00001d52: SWAP2
00001d53: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b
00001d74: SWAP2
00001d75: SWAP1
00001d76: LOG4
00001d77: PUSH1 0x01
00001d79: SWAP2
00001d7a: POP
00001d7b: POP
00001d7c: PUSH2 0x0942
00001d7f: JUMP
00001d80: JUMPDEST
00001d81: PUSH0
00001d82: PUSH0
00001d83: PUSH0
00001d84: PUSH0
00001d85: PUSH0
00001d86: PUSH0
00001d87: PUSH2 0x1d8f
00001d8a: DUP9
00001d8b: PUSH2 0x2a34
00001d8e: JUMP
00001d8f: JUMPDEST
00001d90: SWAP4
00001d91: POP
00001d92: SWAP4
00001d93: POP
00001d94: SWAP4
00001d95: POP
00001d96: SWAP4
00001d97: POP
00001d98: PUSH0
00001d99: DUP5
00001d9a: GT
00001d9b: PUSH2 0x1db6
00001d9e: JUMPI
00001d9f: PUSH1 0x40
00001da1: MLOAD
00001da2: PUSH3 0x461bcd
00001da6: PUSH1 0xe5
00001da8: SHL
00001da9: DUP2
00001daa: MSTORE
00001dab: PUSH1 0x04
00001dad: ADD
00001dae: PUSH2 0x0ba9
00001db1: SWAP1
00001db2: PUSH2 0x33ba
00001db5: JUMP
00001db6: JUMPDEST
00001db7: DUP8
00001db8: DUP5
00001db9: LT
00001dba: ISZERO
00001dbb: PUSH2 0x1e06
00001dbe: JUMPI
00001dbf: PUSH1 0x40
00001dc1: MLOAD
00001dc2: PUSH3 0x461bcd
00001dc6: PUSH1 0xe5
00001dc8: SHL
00001dc9: DUP2
00001dca: MSTORE
00001dcb: PUSH1 0x20
00001dcd: PUSH1 0x04
00001dcf: DUP3
00001dd0: ADD
00001dd1: MSTORE
00001dd2: PUSH1 0x1a
00001dd4: PUSH1 0x24
00001dd6: DUP3
00001dd7: ADD
00001dd8: MSTORE
00001dd9: PUSH32 0x494e53554646494349454e545f4f55545055545f414d4f554e54000000000000
00001dfa: PUSH1 0x44
00001dfc: DUP3
00001dfd: ADD
00001dfe: MSTORE
00001dff: PUSH1 0x64
00001e01: ADD
00001e02: PUSH2 0x0ba9
00001e05: JUMP
00001e06: JUMPDEST
00001e07: PUSH1 0x03
00001e09: SLOAD
00001e0a: PUSH1 0x01
00001e0c: PUSH1 0x80
00001e0e: SHL
00001e0f: SWAP1
00001e10: DIV
00001e11: PUSH1 0x01
00001e13: PUSH1 0x01
00001e15: PUSH1 0x80
00001e17: SHL
00001e18: SUB
00001e19: AND
00001e1a: DUP5
00001e1b: GT
00001e1c: ISZERO
00001e1d: PUSH2 0x1e81
00001e20: JUMPI
00001e21: PUSH1 0x40
00001e23: MLOAD
00001e24: PUSH3 0x461bcd
00001e28: PUSH1 0xe5
00001e2a: SHL
00001e2b: DUP2
00001e2c: MSTORE
00001e2d: PUSH1 0x20
00001e2f: PUSH1 0x04
00001e31: DUP3
00001e32: ADD
00001e33: MSTORE
00001e34: PUSH1 0x30
00001e36: PUSH1 0x24
00001e38: DUP3
00001e39: ADD
00001e3a: MSTORE
00001e3b: PUSH32 0x494e53554646494349454e545f415641494c41424c455f45584f47454e4f5553
00001e5c: PUSH1 0x44
00001e5e: DUP3
00001e5f: ADD
00001e60: MSTORE
00001e61: PUSH16 0x5f41535345545f4c4951554944495459
00001e72: PUSH1 0x80
00001e74: SHL
00001e75: PUSH1 0x64
00001e77: DUP3
00001e78: ADD
00001e79: MSTORE
00001e7a: PUSH1 0x84
00001e7c: ADD
00001e7d: PUSH2 0x0ba9
00001e80: JUMP
00001e81: JUMPDEST
00001e82: DUP4
00001e83: PUSH1 0x03
00001e85: PUSH1 0x10
00001e87: DUP3
00001e88: DUP3
00001e89: DUP3
00001e8a: SWAP1
00001e8b: SLOAD
00001e8c: SWAP1
00001e8d: PUSH2 0x0100
00001e90: EXP
00001e91: SWAP1
00001e92: DIV
00001e93: PUSH1 0x01
00001e95: PUSH1 0x01
00001e97: PUSH1 0x80
00001e99: SHL
00001e9a: SUB
00001e9b: AND
00001e9c: PUSH2 0x1ea5
00001e9f: SWAP2
00001ea0: SWAP1
00001ea1: PUSH2 0x3377
00001ea4: JUMP
00001ea5: JUMPDEST
00001ea6: SWAP3
00001ea7: POP
00001ea8: PUSH2 0x0100
00001eab: EXP
00001eac: DUP2
00001ead: SLOAD
00001eae: DUP2
00001eaf: PUSH1 0x01
00001eb1: PUSH1 0x01
00001eb3: PUSH1 0x80
00001eb5: SHL
00001eb6: SUB
00001eb7: MUL
00001eb8: NOT
00001eb9: AND
00001eba: SWAP1
00001ebb: DUP4
00001ebc: PUSH1 0x01
00001ebe: PUSH1 0x01
00001ec0: PUSH1 0x80
00001ec2: SHL
00001ec3: SUB
00001ec4: AND
00001ec5: MUL
00001ec6: OR
00001ec7: SWAP1
00001ec8: SSTORE
00001ec9: POP
00001eca: PUSH2 0x1ed2
00001ecd: DUP2
00001ece: PUSH2 0x2d7f
00001ed1: JUMP
00001ed2: JUMPDEST
00001ed3: PUSH1 0x04
00001ed5: DUP1
00001ed6: SLOAD
00001ed7: PUSH0
00001ed8: SWAP1
00001ed9: PUSH2 0x1eec
00001edc: SWAP1
00001edd: DUP5
00001ede: SWAP1
00001edf: PUSH1 0x01
00001ee1: PUSH1 0x01
00001ee3: PUSH1 0x80
00001ee5: SHL
00001ee6: SUB
00001ee7: AND
00001ee8: PUSH2 0x341f
00001eeb: JUMP
00001eec: JUMPDEST
00001eed: SWAP3
00001eee: POP
00001eef: PUSH2 0x0100
00001ef2: EXP
00001ef3: DUP2
00001ef4: SLOAD
00001ef5: DUP2
00001ef6: PUSH1 0x01
00001ef8: PUSH1 0x01
00001efa: PUSH1 0x80
00001efc: SHL
00001efd: SUB
00001efe: MUL
00001eff: NOT
00001f00: AND
00001f01: SWAP1
00001f02: DUP4
00001f03: PUSH1 0x01
00001f05: PUSH1 0x01
00001f07: PUSH1 0x80
00001f09: SHL
00001f0a: SUB
00001f0b: AND
00001f0c: MUL
00001f0d: OR
00001f0e: SWAP1
00001f0f: SSTORE
00001f10: POP
00001f11: PUSH2 0x1f50
00001f14: DUP10
00001f15: ADDRESS
00001f16: DUP6
00001f17: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b
00001f38: PUSH1 0x01
00001f3a: PUSH1 0x01
00001f3c: PUSH1 0xa0
00001f3e: SHL
00001f3f: SUB
00001f40: AND
00001f41: PUSH2 0x2582
00001f44: SWAP1
00001f45: SWAP4
00001f46: SWAP3
00001f47: SWAP2
00001f48: SWAP1
00001f49: PUSH4 0xffffffff
00001f4e: AND
00001f4f: JUMP
00001f50: JUMPDEST
00001f51: PUSH2 0x1f5a
00001f54: ADDRESS
00001f55: DUP4
00001f56: PUSH2 0x25bb
00001f59: JUMP
00001f5a: JUMPDEST
00001f5b: PUSH2 0x1f8e
00001f5e: PUSH1 0x01
00001f60: PUSH1 0x01
00001f62: PUSH1 0xa0
00001f64: SHL
00001f65: SUB
00001f66: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
00001f87: AND
00001f88: DUP9
00001f89: DUP7
00001f8a: PUSH2 0x20b3
00001f8d: JUMP
00001f8e: JUMPDEST
00001f8f: PUSH1 0x40
00001f91: DUP1
00001f92: MLOAD
00001f93: DUP6
00001f94: DUP2
00001f95: MSTORE
00001f96: PUSH1 0x20
00001f98: DUP2
00001f99: ADD
00001f9a: DUP6
00001f9b: SWAP1
00001f9c: MSTORE
00001f9d: SWAP1
00001f9e: DUP2
00001f9f: ADD
00001fa0: DUP3
00001fa1: SWAP1
00001fa2: MSTORE
00001fa3: PUSH1 0x01
00001fa5: PUSH1 0x01
00001fa7: PUSH1 0xa0
00001fa9: SHL
00001faa: SUB
00001fab: DUP1
00001fac: DUP10
00001fad: AND
00001fae: SWAP2
00001faf: SWAP1
00001fb0: DUP12
00001fb1: AND
00001fb2: SWAP1
00001fb3: PUSH32 0x35b18eb91d0f8ce2968fdf81c1ed9ac429776c7260cdb8bf35c314564e714f66
00001fd4: SWAP1
00001fd5: PUSH1 0x60
00001fd7: ADD
00001fd8: JUMPDEST
00001fd9: PUSH1 0x40
00001fdb: MLOAD
00001fdc: DUP1
00001fdd: SWAP2
00001fde: SUB
00001fdf: SWAP1
00001fe0: LOG3
00001fe1: POP
00001fe2: SWAP2
00001fe3: SWAP8
00001fe4: SWAP1
00001fe5: SWAP7
00001fe6: POP
00001fe7: SWAP5
00001fe8: POP
00001fe9: POP
00001fea: POP
00001feb: POP
00001fec: POP
00001fed: JUMP
00001fee: JUMPDEST
00001fef: PUSH1 0x04
00001ff1: DUP1
00001ff2: SLOAD
00001ff3: DUP3
00001ff4: SWAP2
00001ff5: SWAP1
00001ff6: PUSH1 0xff
00001ff8: PUSH1 0x80
00001ffa: SHL
00001ffb: NOT
00001ffc: AND
00001ffd: PUSH1 0x01
00001fff: PUSH1 0x80
00002001: SHL
00002002: DUP4
00002003: PUSH1 0x01
00002005: DUP2
00002006: GT
00002007: ISZERO
00002008: PUSH2 0x2013
0000200b: JUMPI
0000200c: PUSH2 0x2013
0000200f: PUSH2 0x31bd
00002012: JUMP
00002013: JUMPDEST
00002014: MUL
00002015: OR
00002016: SWAP1
00002017: SSTORE
00002018: POP
00002019: PUSH32 0xfd5cdc42bae811dee131f609e8baa96f36aff411392111457b2113ea36bf9cc4
0000203a: DUP2
0000203b: PUSH1 0x40
0000203d: MLOAD
0000203e: PUSH2 0x2047
00002041: SWAP2
00002042: SWAP1
00002043: PUSH2 0x31d1
00002046: JUMP
00002047: JUMPDEST
00002048: PUSH1 0x40
0000204a: MLOAD
0000204b: DUP1
0000204c: SWAP2
0000204d: SUB
0000204e: SWAP1
0000204f: LOG1
00002050: POP
00002051: JUMP
00002052: JUMPDEST
00002053: PUSH1 0x03
00002055: DUP1
00002056: SLOAD
00002057: PUSH1 0x01
00002059: PUSH1 0x01
0000205b: PUSH1 0x80
0000205d: SHL
0000205e: SUB
0000205f: DUP4
00002060: DUP2
00002061: AND
00002062: PUSH1 0x01
00002064: PUSH1 0x01
00002066: PUSH1 0x80
00002068: SHL
00002069: SUB
0000206a: NOT
0000206b: DUP4
0000206c: AND
0000206d: DUP2
0000206e: OR
0000206f: SWAP1
00002070: SWAP4
00002071: SSTORE
00002072: PUSH1 0x40
00002074: DUP1
00002075: MLOAD
00002076: SWAP2
00002077: SWAP1
00002078: SWAP3
00002079: AND
0000207a: DUP1
0000207b: DUP3
0000207c: MSTORE
0000207d: PUSH1 0x20
0000207f: DUP3
00002080: ADD
00002081: SWAP4
00002082: SWAP1
00002083: SWAP4
00002084: MSTORE
00002085: PUSH32 0xe0f222fd3dc07d1f2556e7d34819cc5fe0ab68fedb472dc2de611aa3398409ce
000020a6: SWAP2
000020a7: ADD
000020a8: PUSH1 0x40
000020aa: MLOAD
000020ab: DUP1
000020ac: SWAP2
000020ad: SUB
000020ae: SWAP1
000020af: LOG1
000020b0: POP
000020b1: POP
000020b2: JUMP
000020b3: JUMPDEST
000020b4: PUSH1 0x40
000020b6: MLOAD
000020b7: PUSH1 0x01
000020b9: PUSH1 0x01
000020bb: PUSH1 0xa0
000020bd: SHL
000020be: SUB
000020bf: DUP4
000020c0: DUP2
000020c1: AND
000020c2: PUSH1 0x24
000020c4: DUP4
000020c5: ADD
000020c6: MSTORE
000020c7: PUSH1 0x44
000020c9: DUP3
000020ca: ADD
000020cb: DUP4
000020cc: SWAP1
000020cd: MSTORE
000020ce: PUSH2 0x0b5d
000020d1: SWAP2
000020d2: DUP6
000020d3: SWAP2
000020d4: DUP3
000020d5: AND
000020d6: SWAP1
000020d7: PUSH4 0xa9059cbb
000020dc: SWAP1
000020dd: PUSH1 0x64
000020df: ADD
000020e0: JUMPDEST
000020e1: PUSH1 0x40
000020e3: MLOAD
000020e4: PUSH1 0x20
000020e6: DUP2
000020e7: DUP4
000020e8: SUB
000020e9: SUB
000020ea: DUP2
000020eb: MSTORE
000020ec: SWAP1
000020ed: PUSH1 0x40
000020ef: MSTORE
000020f0: SWAP2
000020f1: POP
000020f2: PUSH1 0xe0
000020f4: SHL
000020f5: PUSH1 0x20
000020f7: DUP3
000020f8: ADD
000020f9: DUP1
000020fa: MLOAD
000020fb: PUSH1 0x01
000020fd: PUSH1 0x01
000020ff: PUSH1 0xe0
00002101: SHL
00002102: SUB
00002103: DUP4
00002104: DUP2
00002105: DUP4
00002106: AND
00002107: OR
00002108: DUP4
00002109: MSTORE
0000210a: POP
0000210b: POP
0000210c: POP
0000210d: POP
0000210e: PUSH2 0x2db6
00002111: JUMP
00002112: JUMPDEST
00002113: ADDRESS
00002114: PUSH1 0x01
00002116: PUSH1 0x01
00002118: PUSH1 0xa0
0000211a: SHL
0000211b: SUB
0000211c: PUSH32 0x0000000000000000000000007dadf78d641f7ad327aeb0f71e97b6229345eca4
0000213d: AND
0000213e: EQ
0000213f: DUP1
00002140: PUSH2 0x2198
00002143: JUMPI
00002144: POP
00002145: PUSH32 0x0000000000000000000000007dadf78d641f7ad327aeb0f71e97b6229345eca4
00002166: PUSH1 0x01
00002168: PUSH1 0x01
0000216a: PUSH1 0xa0
0000216c: SHL
0000216d: SUB
0000216e: AND
0000216f: PUSH2 0x218c
00002172: PUSH0
00002173: MLOAD
00002174: PUSH1 0x20
00002176: PUSH2 0x34b2
00002179: PUSH0
0000217a: CODECOPY
0000217b: PUSH0
0000217c: MLOAD
0000217d: SWAP1
0000217e: PUSH0
0000217f: MSTORE
00002180: SLOAD
00002181: PUSH1 0x01
00002183: PUSH1 0x01
00002185: PUSH1 0xa0
00002187: SHL
00002188: SUB
00002189: AND
0000218a: SWAP1
0000218b: JUMP
0000218c: JUMPDEST
0000218d: PUSH1 0x01
0000218f: PUSH1 0x01
00002191: PUSH1 0xa0
00002193: SHL
00002194: SUB
00002195: AND
00002196: EQ
00002197: ISZERO
00002198: JUMPDEST
00002199: ISZERO
0000219a: PUSH2 0x21b6
0000219d: JUMPI
0000219e: PUSH1 0x40
000021a0: MLOAD
000021a1: PUSH4 0x703e46dd
000021a6: PUSH1 0xe1
000021a8: SHL
000021a9: DUP2
000021aa: MSTORE
000021ab: PUSH1 0x04
000021ad: ADD
000021ae: PUSH1 0x40
000021b0: MLOAD
000021b1: DUP1
000021b2: SWAP2
000021b3: SUB
000021b4: SWAP1
000021b5: REVERT
000021b6: JUMPDEST
000021b7: JUMP
000021b8: JUMPDEST
000021b9: PUSH0
000021ba: PUSH2 0x09e3
000021bd: DUP2
000021be: PUSH2 0x1adf
000021c1: JUMP
000021c2: JUMPDEST
000021c3: DUP2
000021c4: PUSH1 0x01
000021c6: PUSH1 0x01
000021c8: PUSH1 0xa0
000021ca: SHL
000021cb: SUB
000021cc: AND
000021cd: PUSH4 0x52d1902d
000021d2: PUSH1 0x40
000021d4: MLOAD
000021d5: DUP2
000021d6: PUSH4 0xffffffff
000021db: AND
000021dc: PUSH1 0xe0
000021de: SHL
000021df: DUP2
000021e0: MSTORE
000021e1: PUSH1 0x04
000021e3: ADD
000021e4: PUSH1 0x20
000021e6: PUSH1 0x40
000021e8: MLOAD
000021e9: DUP1
000021ea: DUP4
000021eb: SUB
000021ec: DUP2
000021ed: DUP7
000021ee: GAS
000021ef: STATICCALL
000021f0: SWAP3
000021f1: POP
000021f2: POP
000021f3: POP
000021f4: DUP1
000021f5: ISZERO
000021f6: PUSH2 0x221c
000021f9: JUMPI
000021fa: POP
000021fb: PUSH1 0x40
000021fd: DUP1
000021fe: MLOAD
000021ff: PUSH1 0x1f
00002201: RETURNDATASIZE
00002202: SWAP1
00002203: DUP2
00002204: ADD
00002205: PUSH1 0x1f
00002207: NOT
00002208: AND
00002209: DUP3
0000220a: ADD
0000220b: SWAP1
0000220c: SWAP3
0000220d: MSTORE
0000220e: PUSH2 0x2219
00002211: SWAP2
00002212: DUP2
00002213: ADD
00002214: SWAP1
00002215: PUSH2 0x33f5
00002218: JUMP
00002219: JUMPDEST
0000221a: PUSH1 0x01
0000221c: JUMPDEST
0000221d: PUSH2 0x2244
00002220: JUMPI
00002221: PUSH1 0x40
00002223: MLOAD
00002224: PUSH4 0x4c9c8ce3
00002229: PUSH1 0xe0
0000222b: SHL
0000222c: DUP2
0000222d: MSTORE
0000222e: PUSH1 0x01
00002230: PUSH1 0x01
00002232: PUSH1 0xa0
00002234: SHL
00002235: SUB
00002236: DUP4
00002237: AND
00002238: PUSH1 0x04
0000223a: DUP3
0000223b: ADD
0000223c: MSTORE
0000223d: PUSH1 0x24
0000223f: ADD
00002240: PUSH2 0x0ba9
00002243: JUMP
00002244: JUMPDEST
00002245: PUSH0
00002246: MLOAD
00002247: PUSH1 0x20
00002249: PUSH2 0x34b2
0000224c: PUSH0
0000224d: CODECOPY
0000224e: PUSH0
0000224f: MLOAD
00002250: SWAP1
00002251: PUSH0
00002252: MSTORE
00002253: DUP2
00002254: EQ
00002255: PUSH2 0x2274
00002258: JUMPI
00002259: PUSH1 0x40
0000225b: MLOAD
0000225c: PUSH4 0x2a875269
00002261: PUSH1 0xe2
00002263: SHL
00002264: DUP2
00002265: MSTORE
00002266: PUSH1 0x04
00002268: DUP2
00002269: ADD
0000226a: DUP3
0000226b: SWAP1
0000226c: MSTORE
0000226d: PUSH1 0x24
0000226f: ADD
00002270: PUSH2 0x0ba9
00002273: JUMP
00002274: JUMPDEST
00002275: PUSH2 0x0b5d
00002278: DUP4
00002279: DUP4
0000227a: PUSH2 0x2e22
0000227d: JUMP
0000227e: JUMPDEST
0000227f: PUSH1 0x02
00002281: SLOAD
00002282: PUSH0
00002283: DUP1
00002284: SLOAD
00002285: PUSH1 0x40
00002287: MLOAD
00002288: PUSH4 0x4e71f09b
0000228d: PUSH1 0xe1
0000228f: SHL
00002290: DUP2
00002291: MSTORE
00002292: PUSH1 0x04
00002294: DUP2
00002295: ADD
00002296: DUP6
00002297: SWAP1
00002298: MSTORE
00002299: PUSH1 0x24
0000229b: DUP2
0000229c: ADD
0000229d: DUP4
0000229e: SWAP1
0000229f: MSTORE
000022a0: SWAP2
000022a1: SWAP3
000022a2: DUP4
000022a3: SWAP3
000022a4: DUP4
000022a5: SWAP3
000022a6: DUP4
000022a7: SWAP3
000022a8: PUSH1 0x01
000022aa: PUSH1 0x01
000022ac: PUSH1 0xa0
000022ae: SHL
000022af: SUB
000022b0: SWAP1
000022b1: DUP2
000022b2: AND
000022b3: ISZERO
000022b4: ISZERO
000022b5: SWAP3
000022b6: DUP5
000022b7: SWAP3
000022b8: SWAP2
000022b9: SWAP1
000022ba: SWAP2
000022bb: AND
000022bc: SWAP1
000022bd: PUSH4 0x9ce3e136
000022c2: SWAP1
000022c3: PUSH1 0x44
000022c5: ADD
000022c6: PUSH1 0x20
000022c8: PUSH1 0x40
000022ca: MLOAD
000022cb: DUP1
000022cc: DUP4
000022cd: SUB
000022ce: DUP2
000022cf: DUP7
000022d0: GAS
000022d1: STATICCALL
000022d2: ISZERO
000022d3: DUP1
000022d4: ISZERO
000022d5: PUSH2 0x22e0
000022d8: JUMPI
000022d9: RETURNDATASIZE
000022da: PUSH0
000022db: PUSH0
000022dc: RETURNDATACOPY
000022dd: RETURNDATASIZE
000022de: PUSH0
000022df: REVERT
000022e0: JUMPDEST
000022e1: POP
000022e2: POP
000022e3: POP
000022e4: POP
000022e5: PUSH1 0x40
000022e7: MLOAD
000022e8: RETURNDATASIZE
000022e9: PUSH1 0x1f
000022eb: NOT
000022ec: PUSH1 0x1f
000022ee: DUP3
000022ef: ADD
000022f0: AND
000022f1: DUP3
000022f2: ADD
000022f3: DUP1
000022f4: PUSH1 0x40
000022f6: MSTORE
000022f7: POP
000022f8: DUP2
000022f9: ADD
000022fa: SWAP1
000022fb: PUSH2 0x2304
000022fe: SWAP2
000022ff: SWAP1
00002300: PUSH2 0x33f5
00002303: JUMP
00002304: JUMPDEST
00002305: SWAP1
00002306: POP
00002307: PUSH0
00002308: DUP3
00002309: PUSH2 0x2312
0000230c: JUMPI
0000230d: PUSH0
0000230e: PUSH2 0x237d
00002311: JUMP
00002312: JUMPDEST
00002313: PUSH1 0x02
00002315: SLOAD
00002316: PUSH1 0x40
00002318: MLOAD
00002319: PUSH4 0x959d6d29
0000231e: PUSH1 0xe0
00002320: SHL
00002321: DUP2
00002322: MSTORE
00002323: PUSH1 0x04
00002325: DUP2
00002326: ADD
00002327: DUP5
00002328: SWAP1
00002329: MSTORE
0000232a: PUSH1 0x01
0000232c: PUSH1 0x01
0000232e: PUSH1 0xa0
00002330: SHL
00002331: SUB
00002332: SWAP1
00002333: SWAP2
00002334: AND
00002335: SWAP1
00002336: PUSH4 0x959d6d29
0000233b: SWAP1
0000233c: PUSH1 0x24
0000233e: ADD
0000233f: PUSH1 0x20
00002341: PUSH1 0x40
00002343: MLOAD
00002344: DUP1
00002345: DUP4
00002346: SUB
00002347: DUP2
00002348: DUP7
00002349: GAS
0000234a: STATICCALL
0000234b: ISZERO
0000234c: DUP1
0000234d: ISZERO
0000234e: PUSH2 0x2359
00002351: JUMPI
00002352: RETURNDATASIZE
00002353: PUSH0
00002354: PUSH0
00002355: RETURNDATACOPY
00002356: RETURNDATASIZE
00002357: PUSH0
00002358: REVERT
00002359: JUMPDEST
0000235a: POP
0000235b: POP
0000235c: POP
0000235d: POP
0000235e: PUSH1 0x40
00002360: MLOAD
00002361: RETURNDATASIZE
00002362: PUSH1 0x1f
00002364: NOT
00002365: PUSH1 0x1f
00002367: DUP3
00002368: ADD
00002369: AND
0000236a: DUP3
0000236b: ADD
0000236c: DUP1
0000236d: PUSH1 0x40
0000236f: MSTORE
00002370: POP
00002371: DUP2
00002372: ADD
00002373: SWAP1
00002374: PUSH2 0x237d
00002377: SWAP2
00002378: SWAP1
00002379: PUSH2 0x33f5
0000237c: JUMP
0000237d: JUMPDEST
0000237e: SWAP1
0000237f: POP
00002380: PUSH0
00002381: PUSH2 0x238a
00002384: DUP3
00002385: DUP5
00002386: PUSH2 0x33e2
00002389: JUMP
0000238a: JUMPDEST
0000238b: SWAP1
0000238c: POP
0000238d: PUSH0
0000238e: DUP5
0000238f: PUSH2 0x2398
00002392: JUMPI
00002393: DUP2
00002394: PUSH2 0x2403
00002397: JUMP
00002398: JUMPDEST
00002399: PUSH1 0x02
0000239b: SLOAD
0000239c: PUSH1 0x40
0000239e: MLOAD
0000239f: PUSH4 0x18fdd06b
000023a4: PUSH1 0xe0
000023a6: SHL
000023a7: DUP2
000023a8: MSTORE
000023a9: PUSH1 0x04
000023ab: DUP2
000023ac: ADD
000023ad: DUP5
000023ae: SWAP1
000023af: MSTORE
000023b0: PUSH1 0x01
000023b2: PUSH1 0x01
000023b4: PUSH1 0xa0
000023b6: SHL
000023b7: SUB
000023b8: SWAP1
000023b9: SWAP2
000023ba: AND
000023bb: SWAP1
000023bc: PUSH4 0x18fdd06b
000023c1: SWAP1
000023c2: PUSH1 0x24
000023c4: ADD
000023c5: PUSH1 0x20
000023c7: PUSH1 0x40
000023c9: MLOAD
000023ca: DUP1
000023cb: DUP4
000023cc: SUB
000023cd: DUP2
000023ce: DUP7
000023cf: GAS
000023d0: STATICCALL
000023d1: ISZERO
000023d2: DUP1
000023d3: ISZERO
000023d4: PUSH2 0x23df
000023d7: JUMPI
000023d8: RETURNDATASIZE
000023d9: PUSH0
000023da: PUSH0
000023db: RETURNDATACOPY
000023dc: RETURNDATASIZE
000023dd: PUSH0
000023de: REVERT
000023df: JUMPDEST
000023e0: POP
000023e1: POP
000023e2: POP
000023e3: POP
000023e4: PUSH1 0x40
000023e6: MLOAD
000023e7: RETURNDATASIZE
000023e8: PUSH1 0x1f
000023ea: NOT
000023eb: PUSH1 0x1f
000023ed: DUP3
000023ee: ADD
000023ef: AND
000023f0: DUP3
000023f1: ADD
000023f2: DUP1
000023f3: PUSH1 0x40
000023f5: MSTORE
000023f6: POP
000023f7: DUP2
000023f8: ADD
000023f9: SWAP1
000023fa: PUSH2 0x2403
000023fd: SWAP2
000023fe: SWAP1
000023ff: PUSH2 0x33f5
00002402: JUMP
00002403: JUMPDEST
00002404: PUSH0
00002405: DUP1
00002406: SLOAD
00002407: PUSH1 0x40
00002409: MLOAD
0000240a: PUSH4 0x0c66c2a1
0000240f: PUSH1 0xe2
00002411: SHL
00002412: DUP2
00002413: MSTORE
00002414: PUSH1 0x04
00002416: DUP2
00002417: ADD
00002418: DUP5
00002419: SWAP1
0000241a: MSTORE
0000241b: PUSH1 0x01
0000241d: PUSH1 0x24
0000241f: DUP3
00002420: ADD
00002421: MSTORE
00002422: SWAP3
00002423: SWAP4
00002424: POP
00002425: SWAP1
00002426: SWAP2
00002427: PUSH1 0x01
00002429: PUSH1 0x01
0000242b: PUSH1 0xa0
0000242d: SHL
0000242e: SUB
0000242f: SWAP1
00002430: SWAP2
00002431: AND
00002432: SWAP1
00002433: PUSH4 0x319b0a84
00002438: SWAP1
00002439: PUSH1 0x44
0000243b: ADD
0000243c: PUSH1 0x20
0000243e: PUSH1 0x40
00002440: MLOAD
00002441: DUP1
00002442: DUP4
00002443: SUB
00002444: DUP2
00002445: DUP7
00002446: GAS
00002447: STATICCALL
00002448: ISZERO
00002449: DUP1
0000244a: ISZERO
0000244b: PUSH2 0x2456
0000244e: JUMPI
0000244f: RETURNDATASIZE
00002450: PUSH0
00002451: PUSH0
00002452: RETURNDATACOPY
00002453: RETURNDATASIZE
00002454: PUSH0
00002455: REVERT
00002456: JUMPDEST
00002457: POP
00002458: POP
00002459: POP
0000245a: POP
0000245b: PUSH1 0x40
0000245d: MLOAD
0000245e: RETURNDATASIZE
0000245f: PUSH1 0x1f
00002461: NOT
00002462: PUSH1 0x1f
00002464: DUP3
00002465: ADD
00002466: AND
00002467: DUP3
00002468: ADD
00002469: DUP1
0000246a: PUSH1 0x40
0000246c: MSTORE
0000246d: POP
0000246e: DUP2
0000246f: ADD
00002470: SWAP1
00002471: PUSH2 0x247a
00002474: SWAP2
00002475: SWAP1
00002476: PUSH2 0x33f5
00002479: JUMP
0000247a: JUMPDEST
0000247b: SWAP1
0000247c: POP
0000247d: PUSH0
0000247e: PUSH2 0x2487
00002481: DUP5
00002482: DUP5
00002483: PUSH2 0x33e2
00002486: JUMP
00002487: JUMPDEST
00002488: SWAP1
00002489: POP
0000248a: DUP2
0000248b: PUSH2 0x2494
0000248e: DUP3
0000248f: DUP6
00002490: PUSH2 0x33e2
00002493: JUMP
00002494: JUMPDEST
00002495: SWAP1
00002496: SWAP14
00002497: SWAP1
00002498: SWAP13
00002499: POP
0000249a: SWAP3
0000249b: SWAP11
0000249c: POP
0000249d: SWAP9
0000249e: POP
0000249f: SWAP1
000024a0: SWAP7
000024a1: POP
000024a2: POP
000024a3: POP
000024a4: POP
000024a5: POP
000024a6: POP
000024a7: POP
000024a8: JUMP
000024a9: JUMPDEST
000024aa: ADDRESS
000024ab: PUSH1 0x01
000024ad: PUSH1 0x01
000024af: PUSH1 0xa0
000024b1: SHL
000024b2: SUB
000024b3: PUSH32 0x0000000000000000000000007dadf78d641f7ad327aeb0f71e97b6229345eca4
000024d4: AND
000024d5: EQ
000024d6: PUSH2 0x21b6
000024d9: JUMPI
000024da: PUSH1 0x40
000024dc: MLOAD
000024dd: PUSH4 0x703e46dd
000024e2: PUSH1 0xe1
000024e4: SHL
000024e5: DUP2
000024e6: MSTORE
000024e7: PUSH1 0x04
000024e9: ADD
000024ea: PUSH1 0x40
000024ec: MLOAD
000024ed: DUP1
000024ee: SWAP2
000024ef: SUB
000024f0: SWAP1
000024f1: REVERT
000024f2: JUMPDEST
000024f3: PUSH1 0x40
000024f5: MLOAD
000024f6: PUSH4 0x9255eef9
000024fb: PUSH1 0xe0
000024fd: SHL
000024fe: DUP2
000024ff: MSTORE
00002500: ADDRESS
00002501: PUSH1 0x04
00002503: DUP3
00002504: ADD
00002505: MSTORE
00002506: PUSH0
00002507: SWAP1
00002508: DUP2
00002509: SWAP1
0000250a: PUSH1 0x01
0000250c: PUSH1 0x01
0000250e: PUSH1 0xa0
00002510: SHL
00002511: SUB
00002512: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b
00002533: AND
00002534: SWAP1
00002535: PUSH4 0x9255eef9
0000253a: SWAP1
0000253b: PUSH1 0x24
0000253d: ADD
0000253e: PUSH1 0x40
00002540: DUP1
00002541: MLOAD
00002542: DUP1
00002543: DUP4
00002544: SUB
00002545: DUP2
00002546: DUP7
00002547: GAS
00002548: STATICCALL
00002549: ISZERO
0000254a: DUP1
0000254b: ISZERO
0000254c: PUSH2 0x2557
0000254f: JUMPI
00002550: RETURNDATASIZE
00002551: PUSH0
00002552: PUSH0
00002553: RETURNDATACOPY
00002554: RETURNDATASIZE
00002555: PUSH0
00002556: REVERT
00002557: JUMPDEST
00002558: POP
00002559: POP
0000255a: POP
0000255b: POP
0000255c: PUSH1 0x40
0000255e: MLOAD
0000255f: RETURNDATASIZE
00002560: PUSH1 0x1f
00002562: NOT
00002563: PUSH1 0x1f
00002565: DUP3
00002566: ADD
00002567: AND
00002568: DUP3
00002569: ADD
0000256a: DUP1
0000256b: PUSH1 0x40
0000256d: MSTORE
0000256e: POP
0000256f: DUP2
00002570: ADD
00002571: SWAP1
00002572: PUSH2 0x257b
00002575: SWAP2
00002576: SWAP1
00002577: PUSH2 0x343e
0000257a: JUMP
0000257b: JUMPDEST
0000257c: POP
0000257d: SWAP3
0000257e: SWAP2
0000257f: POP
00002580: POP
00002581: JUMP
00002582: JUMPDEST
00002583: PUSH1 0x40
00002585: MLOAD
00002586: PUSH1 0x01
00002588: PUSH1 0x01
0000258a: PUSH1 0xa0
0000258c: SHL
0000258d: SUB
0000258e: DUP5
0000258f: DUP2
00002590: AND
00002591: PUSH1 0x24
00002593: DUP4
00002594: ADD
00002595: MSTORE
00002596: DUP4
00002597: DUP2
00002598: AND
00002599: PUSH1 0x44
0000259b: DUP4
0000259c: ADD
0000259d: MSTORE
0000259e: PUSH1 0x64
000025a0: DUP3
000025a1: ADD
000025a2: DUP4
000025a3: SWAP1
000025a4: MSTORE
000025a5: PUSH2 0x0b24
000025a8: SWAP2
000025a9: DUP7
000025aa: SWAP2
000025ab: DUP3
000025ac: AND
000025ad: SWAP1
000025ae: PUSH4 0x23b872dd
000025b3: SWAP1
000025b4: PUSH1 0x84
000025b6: ADD
000025b7: PUSH2 0x20e0
000025ba: JUMP
000025bb: JUMPDEST
000025bc: PUSH1 0x40
000025be: MLOAD
000025bf: PUSH4 0x2770a7eb
000025c4: PUSH1 0xe2
000025c6: SHL
000025c7: DUP2
000025c8: MSTORE
000025c9: PUSH1 0x01
000025cb: PUSH1 0x01
000025cd: PUSH1 0xa0
000025cf: SHL
000025d0: SUB
000025d1: DUP4
000025d2: DUP2
000025d3: AND
000025d4: PUSH1 0x04
000025d6: DUP4
000025d7: ADD
000025d8: MSTORE
000025d9: PUSH1 0x24
000025db: DUP3
000025dc: ADD
000025dd: DUP4
000025de: SWAP1
000025df: MSTORE
000025e0: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b
00002601: AND
00002602: SWAP1
00002603: PUSH4 0x9dc29fac
00002608: SWAP1
00002609: PUSH1 0x44
0000260b: ADD
0000260c: JUMPDEST
0000260d: PUSH0
0000260e: PUSH1 0x40
00002610: MLOAD
00002611: DUP1
00002612: DUP4
00002613: SUB
00002614: DUP2
00002615: PUSH0
00002616: DUP8
00002617: DUP1
00002618: EXTCODESIZE
00002619: ISZERO
0000261a: DUP1
0000261b: ISZERO
0000261c: PUSH2 0x2623
0000261f: JUMPI
00002620: PUSH0
00002621: PUSH0
00002622: REVERT
00002623: JUMPDEST
00002624: POP
00002625: GAS
00002626: CALL
00002627: ISZERO
00002628: DUP1
00002629: ISZERO
0000262a: PUSH2 0x2635
0000262d: JUMPI
0000262e: RETURNDATASIZE
0000262f: PUSH0
00002630: PUSH0
00002631: RETURNDATACOPY
00002632: RETURNDATASIZE
00002633: PUSH0
00002634: REVERT
00002635: JUMPDEST
00002636: POP
00002637: POP
00002638: POP
00002639: POP
0000263a: POP
0000263b: POP
0000263c: JUMP
0000263d: JUMPDEST
0000263e: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
0000265f: PUSH1 0x01
00002661: PUSH1 0x01
00002663: PUSH1 0xa0
00002665: SHL
00002666: SUB
00002667: AND
00002668: DUP2
00002669: PUSH1 0x01
0000266b: PUSH1 0x01
0000266d: PUSH1 0xa0
0000266f: SHL
00002670: SUB
00002671: AND
00002672: PUSH4 0xe6025393
00002677: PUSH1 0x40
00002679: MLOAD
0000267a: DUP2
0000267b: PUSH4 0xffffffff
00002680: AND
00002681: PUSH1 0xe0
00002683: SHL
00002684: DUP2
00002685: MSTORE
00002686: PUSH1 0x04
00002688: ADD
00002689: PUSH1 0x20
0000268b: PUSH1 0x40
0000268d: MLOAD
0000268e: DUP1
0000268f: DUP4
00002690: SUB
00002691: DUP2
00002692: DUP7
00002693: GAS
00002694: STATICCALL
00002695: ISZERO
00002696: DUP1
00002697: ISZERO
00002698: PUSH2 0x26a3
0000269b: JUMPI
0000269c: RETURNDATASIZE
0000269d: PUSH0
0000269e: PUSH0
0000269f: RETURNDATACOPY
000026a0: RETURNDATASIZE
000026a1: PUSH0
000026a2: REVERT
000026a3: JUMPDEST
000026a4: POP
000026a5: POP
000026a6: POP
000026a7: POP
000026a8: PUSH1 0x40
000026aa: MLOAD
000026ab: RETURNDATASIZE
000026ac: PUSH1 0x1f
000026ae: NOT
000026af: PUSH1 0x1f
000026b1: DUP3
000026b2: ADD
000026b3: AND
000026b4: DUP3
000026b5: ADD
000026b6: DUP1
000026b7: PUSH1 0x40
000026b9: MSTORE
000026ba: POP
000026bb: DUP2
000026bc: ADD
000026bd: SWAP1
000026be: PUSH2 0x26c7
000026c1: SWAP2
000026c2: SWAP1
000026c3: PUSH2 0x3460
000026c6: JUMP
000026c7: JUMPDEST
000026c8: PUSH1 0x01
000026ca: PUSH1 0x01
000026cc: PUSH1 0xa0
000026ce: SHL
000026cf: SUB
000026d0: AND
000026d1: EQ
000026d2: PUSH2 0x2716
000026d5: JUMPI
000026d6: PUSH1 0x40
000026d8: MLOAD
000026d9: PUSH3 0x461bcd
000026dd: PUSH1 0xe5
000026df: SHL
000026e0: DUP2
000026e1: MSTORE
000026e2: PUSH1 0x20
000026e4: PUSH1 0x04
000026e6: DUP3
000026e7: ADD
000026e8: MSTORE
000026e9: PUSH1 0x16
000026eb: PUSH1 0x24
000026ed: DUP3
000026ee: ADD
000026ef: MSTORE
000026f0: PUSH22 0x494e56414c49445f50524943455f5354524154454759
00002707: PUSH1 0x50
00002709: SHL
0000270a: PUSH1 0x44
0000270c: DUP3
0000270d: ADD
0000270e: MSTORE
0000270f: PUSH1 0x64
00002711: ADD
00002712: PUSH2 0x0ba9
00002715: JUMP
00002716: JUMPDEST
00002717: PUSH0
00002718: DUP1
00002719: SLOAD
0000271a: PUSH1 0x01
0000271c: PUSH1 0x01
0000271e: PUSH1 0xa0
00002720: SHL
00002721: SUB
00002722: DUP4
00002723: DUP2
00002724: AND
00002725: PUSH1 0x01
00002727: PUSH1 0x01
00002729: PUSH1 0xa0
0000272b: SHL
0000272c: SUB
0000272d: NOT
0000272e: DUP4
0000272f: AND
00002730: DUP2
00002731: OR
00002732: DUP5
00002733: SSTORE
00002734: PUSH1 0x40
00002736: MLOAD
00002737: SWAP2
00002738: SWAP1
00002739: SWAP3
0000273a: AND
0000273b: SWAP3
0000273c: DUP4
0000273d: SWAP2
0000273e: PUSH32 0x8fabb1569224d052b9f7299d4c061d96e3bf9a04d0f5df85ceaa2bf80782b30c
0000275f: SWAP2
00002760: SWAP1
00002761: LOG3
00002762: POP
00002763: POP
00002764: JUMP
00002765: JUMPDEST
00002766: PUSH0
00002767: PUSH0
00002768: PUSH0
00002769: PUSH0
0000276a: PUSH0
0000276b: PUSH0
0000276c: PUSH2 0x2774
0000276f: DUP9
00002770: PUSH2 0x227e
00002773: JUMP
00002774: JUMPDEST
00002775: SWAP4
00002776: POP
00002777: SWAP4
00002778: POP
00002779: SWAP4
0000277a: POP
0000277b: SWAP4
0000277c: POP
0000277d: PUSH0
0000277e: DUP5
0000277f: GT
00002780: PUSH2 0x279b
00002783: JUMPI
00002784: PUSH1 0x40
00002786: MLOAD
00002787: PUSH3 0x461bcd
0000278b: PUSH1 0xe5
0000278d: SHL
0000278e: DUP2
0000278f: MSTORE
00002790: PUSH1 0x04
00002792: ADD
00002793: PUSH2 0x0ba9
00002796: SWAP1
00002797: PUSH2 0x33ba
0000279a: JUMP
0000279b: JUMPDEST
0000279c: PUSH1 0x03
0000279e: SLOAD
0000279f: PUSH1 0x01
000027a1: PUSH1 0x01
000027a3: PUSH1 0x80
000027a5: SHL
000027a6: SUB
000027a7: DUP1
000027a8: DUP3
000027a9: AND
000027aa: SWAP2
000027ab: PUSH2 0x27bd
000027ae: SWAP2
000027af: DUP8
000027b0: SWAP2
000027b1: PUSH1 0x01
000027b3: PUSH1 0x80
000027b5: SHL
000027b6: SWAP1
000027b7: DIV
000027b8: AND
000027b9: PUSH2 0x340c
000027bc: JUMP
000027bd: JUMPDEST
000027be: GT
000027bf: ISZERO
000027c0: PUSH2 0x2815
000027c3: JUMPI
000027c4: PUSH1 0x40
000027c6: MLOAD
000027c7: PUSH3 0x461bcd
000027cb: PUSH1 0xe5
000027cd: SHL
000027ce: DUP2
000027cf: MSTORE
000027d0: PUSH1 0x20
000027d2: PUSH1 0x04
000027d4: DUP3
000027d5: ADD
000027d6: MSTORE
000027d7: PUSH1 0x21
000027d9: PUSH1 0x24
000027db: DUP3
000027dc: ADD
000027dd: MSTORE
000027de: PUSH32 0x45584f47454e4f55535f41535345545f4558504f535552455f544f4f5f484947
000027ff: PUSH1 0x44
00002801: DUP3
00002802: ADD
00002803: MSTORE
00002804: PUSH1 0x09
00002806: PUSH1 0xfb
00002808: SHL
00002809: PUSH1 0x64
0000280b: DUP3
0000280c: ADD
0000280d: MSTORE
0000280e: PUSH1 0x84
00002810: ADD
00002811: PUSH2 0x0ba9
00002814: JUMP
00002815: JUMPDEST
00002816: DUP4
00002817: PUSH1 0x03
00002819: PUSH1 0x10
0000281b: DUP3
0000281c: DUP3
0000281d: DUP3
0000281e: SWAP1
0000281f: SLOAD
00002820: SWAP1
00002821: PUSH2 0x0100
00002824: EXP
00002825: SWAP1
00002826: DIV
00002827: PUSH1 0x01
00002829: PUSH1 0x01
0000282b: PUSH1 0x80
0000282d: SHL
0000282e: SUB
0000282f: AND
00002830: PUSH2 0x2839
00002833: SWAP2
00002834: SWAP1
00002835: PUSH2 0x341f
00002838: JUMP
00002839: JUMPDEST
0000283a: SWAP3
0000283b: POP
0000283c: PUSH2 0x0100
0000283f: EXP
00002840: DUP2
00002841: SLOAD
00002842: DUP2
00002843: PUSH1 0x01
00002845: PUSH1 0x01
00002847: PUSH1 0x80
00002849: SHL
0000284a: SUB
0000284b: MUL
0000284c: NOT
0000284d: AND
0000284e: SWAP1
0000284f: DUP4
00002850: PUSH1 0x01
00002852: PUSH1 0x01
00002854: PUSH1 0x80
00002856: SHL
00002857: SUB
00002858: AND
00002859: MUL
0000285a: OR
0000285b: SWAP1
0000285c: SSTORE
0000285d: POP
0000285e: PUSH2 0x2866
00002861: DUP2
00002862: PUSH2 0x2d7f
00002865: JUMP
00002866: JUMPDEST
00002867: PUSH1 0x04
00002869: DUP1
0000286a: SLOAD
0000286b: PUSH0
0000286c: SWAP1
0000286d: PUSH2 0x2880
00002870: SWAP1
00002871: DUP5
00002872: SWAP1
00002873: PUSH1 0x01
00002875: PUSH1 0x01
00002877: PUSH1 0x80
00002879: SHL
0000287a: SUB
0000287b: AND
0000287c: PUSH2 0x341f
0000287f: JUMP
00002880: JUMPDEST
00002881: SWAP3
00002882: POP
00002883: PUSH2 0x0100
00002886: EXP
00002887: DUP2
00002888: SLOAD
00002889: DUP2
0000288a: PUSH1 0x01
0000288c: PUSH1 0x01
0000288e: PUSH1 0x80
00002890: SHL
00002891: SUB
00002892: MUL
00002893: NOT
00002894: AND
00002895: SWAP1
00002896: DUP4
00002897: PUSH1 0x01
00002899: PUSH1 0x01
0000289b: PUSH1 0x80
0000289d: SHL
0000289e: SUB
0000289f: AND
000028a0: MUL
000028a1: OR
000028a2: SWAP1
000028a3: SSTORE
000028a4: POP
000028a5: PUSH2 0x28e4
000028a8: DUP10
000028a9: ADDRESS
000028aa: DUP7
000028ab: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
000028cc: PUSH1 0x01
000028ce: PUSH1 0x01
000028d0: PUSH1 0xa0
000028d2: SHL
000028d3: SUB
000028d4: AND
000028d5: PUSH2 0x2582
000028d8: SWAP1
000028d9: SWAP4
000028da: SWAP3
000028db: SWAP2
000028dc: SWAP1
000028dd: PUSH4 0xffffffff
000028e2: AND
000028e3: JUMP
000028e4: JUMPDEST
000028e5: PUSH2 0x28ee
000028e8: ADDRESS
000028e9: DUP4
000028ea: PUSH2 0x2e77
000028ed: JUMP
000028ee: JUMPDEST
000028ef: PUSH2 0x2922
000028f2: PUSH1 0x01
000028f4: PUSH1 0x01
000028f6: PUSH1 0xa0
000028f8: SHL
000028f9: SUB
000028fa: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b
0000291b: AND
0000291c: DUP9
0000291d: DUP6
0000291e: PUSH2 0x20b3
00002921: JUMP
00002922: JUMPDEST
00002923: PUSH1 0x40
00002925: DUP1
00002926: MLOAD
00002927: DUP6
00002928: DUP2
00002929: MSTORE
0000292a: PUSH1 0x20
0000292c: DUP2
0000292d: ADD
0000292e: DUP5
0000292f: SWAP1
00002930: MSTORE
00002931: SWAP1
00002932: DUP2
00002933: ADD
00002934: DUP3
00002935: SWAP1
00002936: MSTORE
00002937: PUSH1 0x01
00002939: PUSH1 0x01
0000293b: PUSH1 0xa0
0000293d: SHL
0000293e: SUB
0000293f: DUP1
00002940: DUP10
00002941: AND
00002942: SWAP2
00002943: SWAP1
00002944: DUP12
00002945: AND
00002946: SWAP1
00002947: PUSH32 0xefd9053c6d75eeb7635ae405072e58d5d1588e1ee0db5d212e6afcb529b975e3
00002968: SWAP1
00002969: PUSH1 0x60
0000296b: ADD
0000296c: PUSH2 0x1fd8
0000296f: JUMP
00002970: JUMPDEST
00002971: PUSH1 0x01
00002973: PUSH1 0x01
00002975: PUSH1 0xa0
00002977: SHL
00002978: SUB
00002979: DUP2
0000297a: AND
0000297b: ISZERO
0000297c: PUSH2 0x29e3
0000297f: JUMPI
00002980: PUSH1 0x05
00002982: SLOAD
00002983: PUSH1 0x01
00002985: PUSH1 0x01
00002987: PUSH1 0xa0
00002989: SHL
0000298a: SUB
0000298b: AND
0000298c: PUSH2 0x29e3
0000298f: JUMPI
00002990: PUSH1 0x40
00002992: MLOAD
00002993: PUSH3 0x461bcd
00002997: PUSH1 0xe5
00002999: SHL
0000299a: DUP2
0000299b: MSTORE
0000299c: PUSH1 0x20
0000299e: PUSH1 0x04
000029a0: DUP3
000029a1: ADD
000029a2: MSTORE
000029a3: PUSH1 0x23
000029a5: PUSH1 0x24
000029a7: DUP3
000029a8: ADD
000029a9: MSTORE
000029aa: PUSH32 0x4645455f53545241544547595f52455155495245535f4645455f524543495049
000029cb: PUSH1 0x44
000029cd: DUP3
000029ce: ADD
000029cf: MSTORE
000029d0: PUSH3 0x115395
000029d4: PUSH1 0xea
000029d6: SHL
000029d7: PUSH1 0x64
000029d9: DUP3
000029da: ADD
000029db: MSTORE
000029dc: PUSH1 0x84
000029de: ADD
000029df: PUSH2 0x0ba9
000029e2: JUMP
000029e3: JUMPDEST
000029e4: PUSH1 0x02
000029e6: DUP1
000029e7: SLOAD
000029e8: PUSH1 0x01
000029ea: PUSH1 0x01
000029ec: PUSH1 0xa0
000029ee: SHL
000029ef: SUB
000029f0: DUP4
000029f1: DUP2
000029f2: AND
000029f3: PUSH1 0x01
000029f5: PUSH1 0x01
000029f7: PUSH1 0xa0
000029f9: SHL
000029fa: SUB
000029fb: NOT
000029fc: DUP4
000029fd: AND
000029fe: DUP2
000029ff: OR
00002a00: SWAP1
00002a01: SWAP4
00002a02: SSTORE
00002a03: PUSH1 0x40
00002a05: MLOAD
00002a06: SWAP2
00002a07: AND
00002a08: SWAP2
00002a09: SWAP1
00002a0a: DUP3
00002a0b: SWAP1
00002a0c: PUSH32 0x8a53d8a38ee2969ab6c2a4793fc6d15aac23906030c4943495dd2e843b48f9d6
00002a2d: SWAP1
00002a2e: PUSH0
00002a2f: SWAP1
00002a30: LOG3
00002a31: POP
00002a32: POP
00002a33: JUMP
00002a34: JUMPDEST
00002a35: PUSH1 0x02
00002a37: SLOAD
00002a38: PUSH0
00002a39: DUP1
00002a3a: SLOAD
00002a3b: PUSH1 0x40
00002a3d: MLOAD
00002a3e: PUSH4 0x4e71f09b
00002a43: PUSH1 0xe1
00002a45: SHL
00002a46: DUP2
00002a47: MSTORE
00002a48: PUSH1 0x04
00002a4a: DUP2
00002a4b: ADD
00002a4c: DUP6
00002a4d: SWAP1
00002a4e: MSTORE
00002a4f: PUSH1 0x01
00002a51: PUSH1 0x24
00002a53: DUP3
00002a54: ADD
00002a55: MSTORE
00002a56: SWAP2
00002a57: SWAP3
00002a58: DUP4
00002a59: SWAP3
00002a5a: DUP4
00002a5b: SWAP3
00002a5c: DUP4
00002a5d: SWAP3
00002a5e: PUSH1 0x01
00002a60: PUSH1 0x01
00002a62: PUSH1 0xa0
00002a64: SHL
00002a65: SUB
00002a66: SWAP1
00002a67: DUP2
00002a68: AND
00002a69: ISZERO
00002a6a: ISZERO
00002a6b: SWAP3
00002a6c: DUP5
00002a6d: SWAP3
00002a6e: SWAP2
00002a6f: SWAP1
00002a70: SWAP2
00002a71: AND
00002a72: SWAP1
00002a73: PUSH4 0x9ce3e136
00002a78: SWAP1
00002a79: PUSH1 0x44
00002a7b: ADD
00002a7c: PUSH1 0x20
00002a7e: PUSH1 0x40
00002a80: MLOAD
00002a81: DUP1
00002a82: DUP4
00002a83: SUB
00002a84: DUP2
00002a85: DUP7
00002a86: GAS
00002a87: STATICCALL
00002a88: ISZERO
00002a89: DUP1
00002a8a: ISZERO
00002a8b: PUSH2 0x2a96
00002a8e: JUMPI
00002a8f: RETURNDATASIZE
00002a90: PUSH0
00002a91: PUSH0
00002a92: RETURNDATACOPY
00002a93: RETURNDATASIZE
00002a94: PUSH0
00002a95: REVERT
00002a96: JUMPDEST
00002a97: POP
00002a98: POP
00002a99: POP
00002a9a: POP
00002a9b: PUSH1 0x40
00002a9d: MLOAD
00002a9e: RETURNDATASIZE
00002a9f: PUSH1 0x1f
00002aa1: NOT
00002aa2: PUSH1 0x1f
00002aa4: DUP3
00002aa5: ADD
00002aa6: AND
00002aa7: DUP3
00002aa8: ADD
00002aa9: DUP1
00002aaa: PUSH1 0x40
00002aac: MSTORE
00002aad: POP
00002aae: DUP2
00002aaf: ADD
00002ab0: SWAP1
00002ab1: PUSH2 0x2aba
00002ab4: SWAP2
00002ab5: SWAP1
00002ab6: PUSH2 0x33f5
00002ab9: JUMP
00002aba: JUMPDEST
00002abb: SWAP1
00002abc: POP
00002abd: PUSH0
00002abe: DUP3
00002abf: PUSH2 0x2ac8
00002ac2: JUMPI
00002ac3: PUSH0
00002ac4: PUSH2 0x2b33
00002ac7: JUMP
00002ac8: JUMPDEST
00002ac9: PUSH1 0x02
00002acb: SLOAD
00002acc: PUSH1 0x40
00002ace: MLOAD
00002acf: PUSH4 0x45d6494d
00002ad4: PUSH1 0xe0
00002ad6: SHL
00002ad7: DUP2
00002ad8: MSTORE
00002ad9: PUSH1 0x04
00002adb: DUP2
00002adc: ADD
00002add: DUP5
00002ade: SWAP1
00002adf: MSTORE
00002ae0: PUSH1 0x01
00002ae2: PUSH1 0x01
00002ae4: PUSH1 0xa0
00002ae6: SHL
00002ae7: SUB
00002ae8: SWAP1
00002ae9: SWAP2
00002aea: AND
00002aeb: SWAP1
00002aec: PUSH4 0x45d6494d
00002af1: SWAP1
00002af2: PUSH1 0x24
00002af4: ADD
00002af5: PUSH1 0x20
00002af7: PUSH1 0x40
00002af9: MLOAD
00002afa: DUP1
00002afb: DUP4
00002afc: SUB
00002afd: DUP2
00002afe: DUP7
00002aff: GAS
00002b00: STATICCALL
00002b01: ISZERO
00002b02: DUP1
00002b03: ISZERO
00002b04: PUSH2 0x2b0f
00002b07: JUMPI
00002b08: RETURNDATASIZE
00002b09: PUSH0
00002b0a: PUSH0
00002b0b: RETURNDATACOPY
00002b0c: RETURNDATASIZE
00002b0d: PUSH0
00002b0e: REVERT
00002b0f: JUMPDEST
00002b10: POP
00002b11: POP
00002b12: POP
00002b13: POP
00002b14: PUSH1 0x40
00002b16: MLOAD
00002b17: RETURNDATASIZE
00002b18: PUSH1 0x1f
00002b1a: NOT
00002b1b: PUSH1 0x1f
00002b1d: DUP3
00002b1e: ADD
00002b1f: AND
00002b20: DUP3
00002b21: ADD
00002b22: DUP1
00002b23: PUSH1 0x40
00002b25: MSTORE
00002b26: POP
00002b27: DUP2
00002b28: ADD
00002b29: SWAP1
00002b2a: PUSH2 0x2b33
00002b2d: SWAP2
00002b2e: SWAP1
00002b2f: PUSH2 0x33f5
00002b32: JUMP
00002b33: JUMPDEST
00002b34: SWAP1
00002b35: POP
00002b36: PUSH0
00002b37: PUSH2 0x2b40
00002b3a: DUP3
00002b3b: DUP5
00002b3c: PUSH2 0x340c
00002b3f: JUMP
00002b40: JUMPDEST
00002b41: SWAP1
00002b42: POP
00002b43: PUSH0
00002b44: DUP5
00002b45: PUSH2 0x2b4e
00002b48: JUMPI
00002b49: DUP2
00002b4a: PUSH2 0x2bb9
00002b4d: JUMP
00002b4e: JUMPDEST
00002b4f: PUSH1 0x02
00002b51: SLOAD
00002b52: PUSH1 0x40
00002b54: MLOAD
00002b55: PUSH4 0x52510fd1
00002b5a: PUSH1 0xe1
00002b5c: SHL
00002b5d: DUP2
00002b5e: MSTORE
00002b5f: PUSH1 0x04
00002b61: DUP2
00002b62: ADD
00002b63: DUP5
00002b64: SWAP1
00002b65: MSTORE
00002b66: PUSH1 0x01
00002b68: PUSH1 0x01
00002b6a: PUSH1 0xa0
00002b6c: SHL
00002b6d: SUB
00002b6e: SWAP1
00002b6f: SWAP2
00002b70: AND
00002b71: SWAP1
00002b72: PUSH4 0xa4a21fa2
00002b77: SWAP1
00002b78: PUSH1 0x24
00002b7a: ADD
00002b7b: PUSH1 0x20
00002b7d: PUSH1 0x40
00002b7f: MLOAD
00002b80: DUP1
00002b81: DUP4
00002b82: SUB
00002b83: DUP2
00002b84: DUP7
00002b85: GAS
00002b86: STATICCALL
00002b87: ISZERO
00002b88: DUP1
00002b89: ISZERO
00002b8a: PUSH2 0x2b95
00002b8d: JUMPI
00002b8e: RETURNDATASIZE
00002b8f: PUSH0
00002b90: PUSH0
00002b91: RETURNDATACOPY
00002b92: RETURNDATASIZE
00002b93: PUSH0
00002b94: REVERT
00002b95: JUMPDEST
00002b96: POP
00002b97: POP
00002b98: POP
00002b99: POP
00002b9a: PUSH1 0x40
00002b9c: MLOAD
00002b9d: RETURNDATASIZE
00002b9e: PUSH1 0x1f
00002ba0: NOT
00002ba1: PUSH1 0x1f
00002ba3: DUP3
00002ba4: ADD
00002ba5: AND
00002ba6: DUP3
00002ba7: ADD
00002ba8: DUP1
00002ba9: PUSH1 0x40
00002bab: MSTORE
00002bac: POP
00002bad: DUP2
00002bae: ADD
00002baf: SWAP1
00002bb0: PUSH2 0x2bb9
00002bb3: SWAP2
00002bb4: SWAP1
00002bb5: PUSH2 0x33f5
00002bb8: JUMP
00002bb9: JUMPDEST
00002bba: PUSH0
00002bbb: DUP1
00002bbc: SLOAD
00002bbd: PUSH1 0x40
00002bbf: MLOAD
00002bc0: PUSH4 0x0c66c2a1
00002bc5: PUSH1 0xe2
00002bc7: SHL
00002bc8: DUP2
00002bc9: MSTORE
00002bca: PUSH1 0x04
00002bcc: DUP2
00002bcd: ADD
00002bce: DUP5
00002bcf: SWAP1
00002bd0: MSTORE
00002bd1: PUSH1 0x24
00002bd3: DUP2
00002bd4: ADD
00002bd5: DUP4
00002bd6: SWAP1
00002bd7: MSTORE
00002bd8: SWAP3
00002bd9: SWAP4
00002bda: POP
00002bdb: SWAP1
00002bdc: SWAP2
00002bdd: PUSH1 0x01
00002bdf: PUSH1 0x01
00002be1: PUSH1 0xa0
00002be3: SHL
00002be4: SUB
00002be5: SWAP1
00002be6: SWAP2
00002be7: AND
00002be8: SWAP1
00002be9: PUSH4 0x319b0a84
00002bee: SWAP1
00002bef: PUSH1 0x44
00002bf1: ADD
00002bf2: PUSH1 0x20
00002bf4: PUSH1 0x40
00002bf6: MLOAD
00002bf7: DUP1
00002bf8: DUP4
00002bf9: SUB
00002bfa: DUP2
00002bfb: DUP7
00002bfc: GAS
00002bfd: STATICCALL
00002bfe: ISZERO
00002bff: DUP1
00002c00: ISZERO
00002c01: PUSH2 0x2c0c
00002c04: JUMPI
00002c05: RETURNDATASIZE
00002c06: PUSH0
00002c07: PUSH0
00002c08: RETURNDATACOPY
00002c09: RETURNDATASIZE
00002c0a: PUSH0
00002c0b: REVERT
00002c0c: JUMPDEST
00002c0d: POP
00002c0e: POP
00002c0f: POP
00002c10: POP
00002c11: PUSH1 0x40
00002c13: MLOAD
00002c14: RETURNDATASIZE
00002c15: PUSH1 0x1f
00002c17: NOT
00002c18: PUSH1 0x1f
00002c1a: DUP3
00002c1b: ADD
00002c1c: AND
00002c1d: DUP3
00002c1e: ADD
00002c1f: DUP1
00002c20: PUSH1 0x40
00002c22: MSTORE
00002c23: POP
00002c24: DUP2
00002c25: ADD
00002c26: SWAP1
00002c27: PUSH2 0x2c30
00002c2a: SWAP2
00002c2b: SWAP1
00002c2c: PUSH2 0x33f5
00002c2f: JUMP
00002c30: JUMPDEST
00002c31: SWAP1
00002c32: POP
00002c33: PUSH0
00002c34: PUSH2 0x2c3d
00002c37: DUP4
00002c38: DUP6
00002c39: PUSH2 0x33e2
00002c3c: JUMP
00002c3d: JUMPDEST
00002c3e: SWAP1
00002c3f: POP
00002c40: DUP2
00002c41: PUSH2 0x2494
00002c44: DUP3
00002c45: DUP6
00002c46: PUSH2 0x340c
00002c49: JUMP
00002c4a: JUMPDEST
00002c4b: PUSH1 0x01
00002c4d: PUSH1 0x01
00002c4f: PUSH1 0xa0
00002c51: SHL
00002c52: SUB
00002c53: DUP2
00002c54: AND
00002c55: PUSH2 0x2cc8
00002c58: JUMPI
00002c59: PUSH1 0x02
00002c5b: SLOAD
00002c5c: PUSH1 0x01
00002c5e: PUSH1 0x01
00002c60: PUSH1 0xa0
00002c62: SHL
00002c63: SUB
00002c64: AND
00002c65: ISZERO
00002c66: PUSH2 0x2cc8
00002c69: JUMPI
00002c6a: PUSH1 0x40
00002c6c: MLOAD
00002c6d: PUSH3 0x461bcd
00002c71: PUSH1 0xe5
00002c73: SHL
00002c74: DUP2
00002c75: MSTORE
00002c76: PUSH1 0x20
00002c78: PUSH1 0x04
00002c7a: DUP3
00002c7b: ADD
00002c7c: MSTORE
00002c7d: PUSH1 0x2e
00002c7f: PUSH1 0x24
00002c81: DUP3
00002c82: ADD
00002c83: MSTORE
00002c84: PUSH32 0x4645455f524543495049454e545f43414e4e4f545f42455f5a45524f5f574954
00002ca5: PUSH1 0x44
00002ca7: DUP3
00002ca8: ADD
00002ca9: MSTORE
00002caa: PUSH14 0x485f4645455f5354524154454759
00002cb9: PUSH1 0x90
00002cbb: SHL
00002cbc: PUSH1 0x64
00002cbe: DUP3
00002cbf: ADD
00002cc0: MSTORE
00002cc1: PUSH1 0x84
00002cc3: ADD
00002cc4: PUSH2 0x0ba9
00002cc7: JUMP
00002cc8: JUMPDEST
00002cc9: PUSH1 0x05
00002ccb: DUP1
00002ccc: SLOAD
00002ccd: PUSH1 0x01
00002ccf: PUSH1 0x01
00002cd1: PUSH1 0xa0
00002cd3: SHL
00002cd4: SUB
00002cd5: DUP4
00002cd6: DUP2
00002cd7: AND
00002cd8: PUSH1 0x01
00002cda: PUSH1 0x01
00002cdc: PUSH1 0xa0
00002cde: SHL
00002cdf: SUB
00002ce0: NOT
00002ce1: DUP4
00002ce2: AND
00002ce3: DUP2
00002ce4: OR
00002ce5: SWAP1
00002ce6: SWAP4
00002ce7: SSTORE
00002ce8: PUSH1 0x40
00002cea: MLOAD
00002ceb: SWAP2
00002cec: AND
00002ced: SWAP2
00002cee: SWAP1
00002cef: DUP3
00002cf0: SWAP1
00002cf1: PUSH32 0xcee2c6a26cf3af00fae523d3ebe28e154ac2cb032e8f4bd4604a7749b6e68a94
00002d12: SWAP1
00002d13: PUSH0
00002d14: SWAP1
00002d15: LOG3
00002d16: POP
00002d17: POP
00002d18: JUMP
00002d19: JUMPDEST
00002d1a: PUSH2 0x2d23
00002d1d: DUP3
00002d1e: DUP3
00002d1f: PUSH2 0x10df
00002d22: JUMP
00002d23: JUMPDEST
00002d24: PUSH2 0x09e3
00002d27: JUMPI
00002d28: PUSH1 0x40
00002d2a: MLOAD
00002d2b: PUSH4 0xe2517d3f
00002d30: PUSH1 0xe0
00002d32: SHL
00002d33: DUP2
00002d34: MSTORE
00002d35: PUSH1 0x01
00002d37: PUSH1 0x01
00002d39: PUSH1 0xa0
00002d3b: SHL
00002d3c: SUB
00002d3d: DUP3
00002d3e: AND
00002d3f: PUSH1 0x04
00002d41: DUP3
00002d42: ADD
00002d43: MSTORE
00002d44: PUSH1 0x24
00002d46: DUP2
00002d47: ADD
00002d48: DUP4
00002d49: SWAP1
00002d4a: MSTORE
00002d4b: PUSH1 0x44
00002d4d: ADD
00002d4e: PUSH2 0x0ba9
00002d51: JUMP
00002d52: JUMPDEST
00002d53: PUSH2 0x2d5a
00002d56: PUSH2 0x2ecc
00002d59: JUMP
00002d5a: JUMPDEST
00002d5b: PUSH2 0x21b6
00002d5e: JUMPI
00002d5f: PUSH1 0x40
00002d61: MLOAD
00002d62: PUSH4 0x1afcd79f
00002d67: PUSH1 0xe3
00002d69: SHL
00002d6a: DUP2
00002d6b: MSTORE
00002d6c: PUSH1 0x04
00002d6e: ADD
00002d6f: PUSH1 0x40
00002d71: MLOAD
00002d72: DUP1
00002d73: SWAP2
00002d74: SUB
00002d75: SWAP1
00002d76: REVERT
00002d77: JUMPDEST
00002d78: PUSH2 0x21b6
00002d7b: PUSH2 0x2d52
00002d7e: JUMP
00002d7f: JUMPDEST
00002d80: PUSH0
00002d81: PUSH1 0x01
00002d83: PUSH1 0x01
00002d85: PUSH1 0x80
00002d87: SHL
00002d88: SUB
00002d89: DUP3
00002d8a: GT
00002d8b: ISZERO
00002d8c: PUSH2 0x2db2
00002d8f: JUMPI
00002d90: PUSH1 0x40
00002d92: MLOAD
00002d93: PUSH4 0x06dfcc65
00002d98: PUSH1 0xe4
00002d9a: SHL
00002d9b: DUP2
00002d9c: MSTORE
00002d9d: PUSH1 0x80
00002d9f: PUSH1 0x04
00002da1: DUP3
00002da2: ADD
00002da3: MSTORE
00002da4: PUSH1 0x24
00002da6: DUP2
00002da7: ADD
00002da8: DUP4
00002da9: SWAP1
00002daa: MSTORE
00002dab: PUSH1 0x44
00002dad: ADD
00002dae: PUSH2 0x0ba9
00002db1: JUMP
00002db2: JUMPDEST
00002db3: POP
00002db4: SWAP1
00002db5: JUMP
00002db6: JUMPDEST
00002db7: PUSH0
00002db8: PUSH0
00002db9: PUSH1 0x20
00002dbb: PUSH0
00002dbc: DUP5
00002dbd: MLOAD
00002dbe: PUSH1 0x20
00002dc0: DUP7
00002dc1: ADD
00002dc2: PUSH0
00002dc3: DUP9
00002dc4: GAS
00002dc5: CALL
00002dc6: DUP1
00002dc7: PUSH2 0x2dd5
00002dca: JUMPI
00002dcb: PUSH1 0x40
00002dcd: MLOAD
00002dce: RETURNDATASIZE
00002dcf: PUSH0
00002dd0: DUP3
00002dd1: RETURNDATACOPY
00002dd2: RETURNDATASIZE
00002dd3: DUP2
00002dd4: REVERT
00002dd5: JUMPDEST
00002dd6: POP
00002dd7: POP
00002dd8: PUSH0
00002dd9: MLOAD
00002dda: RETURNDATASIZE
00002ddb: SWAP2
00002ddc: POP
00002ddd: DUP2
00002dde: ISZERO
00002ddf: PUSH2 0x2dec
00002de2: JUMPI
00002de3: DUP1
00002de4: PUSH1 0x01
00002de6: EQ
00002de7: ISZERO
00002de8: PUSH2 0x2df9
00002deb: JUMP
00002dec: JUMPDEST
00002ded: PUSH1 0x01
00002def: PUSH1 0x01
00002df1: PUSH1 0xa0
00002df3: SHL
00002df4: SUB
00002df5: DUP5
00002df6: AND
00002df7: EXTCODESIZE
00002df8: ISZERO
00002df9: JUMPDEST
00002dfa: ISZERO
00002dfb: PUSH2 0x0b24
00002dfe: JUMPI
00002dff: PUSH1 0x40
00002e01: MLOAD
00002e02: PUSH4 0x5274afe7
00002e07: PUSH1 0xe0
00002e09: SHL
00002e0a: DUP2
00002e0b: MSTORE
00002e0c: PUSH1 0x01
00002e0e: PUSH1 0x01
00002e10: PUSH1 0xa0
00002e12: SHL
00002e13: SUB
00002e14: DUP6
00002e15: AND
00002e16: PUSH1 0x04
00002e18: DUP3
00002e19: ADD
00002e1a: MSTORE
00002e1b: PUSH1 0x24
00002e1d: ADD
00002e1e: PUSH2 0x0ba9
00002e21: JUMP
00002e22: JUMPDEST
00002e23: PUSH2 0x2e2b
00002e26: DUP3
00002e27: PUSH2 0x2ee5
00002e2a: JUMP
00002e2b: JUMPDEST
00002e2c: PUSH1 0x40
00002e2e: MLOAD
00002e2f: PUSH1 0x01
00002e31: PUSH1 0x01
00002e33: PUSH1 0xa0
00002e35: SHL
00002e36: SUB
00002e37: DUP4
00002e38: AND
00002e39: SWAP1
00002e3a: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b
00002e5b: SWAP1
00002e5c: PUSH0
00002e5d: SWAP1
00002e5e: LOG2
00002e5f: DUP1
00002e60: MLOAD
00002e61: ISZERO
00002e62: PUSH2 0x2e6f
00002e65: JUMPI
00002e66: PUSH2 0x0b5d
00002e69: DUP3
00002e6a: DUP3
00002e6b: PUSH2 0x2f48
00002e6e: JUMP
00002e6f: JUMPDEST
00002e70: PUSH2 0x09e3
00002e73: PUSH2 0x2fba
00002e76: JUMP
00002e77: JUMPDEST
00002e78: PUSH1 0x40
00002e7a: MLOAD
00002e7b: PUSH4 0x40c10f19
00002e80: PUSH1 0xe0
00002e82: SHL
00002e83: DUP2
00002e84: MSTORE
00002e85: PUSH1 0x01
00002e87: PUSH1 0x01
00002e89: PUSH1 0xa0
00002e8b: SHL
00002e8c: SUB
00002e8d: DUP4
00002e8e: DUP2
00002e8f: AND
00002e90: PUSH1 0x04
00002e92: DUP4
00002e93: ADD
00002e94: MSTORE
00002e95: PUSH1 0x24
00002e97: DUP3
00002e98: ADD
00002e99: DUP4
00002e9a: SWAP1
00002e9b: MSTORE
00002e9c: PUSH32 0x00000000000000000000000063d74d22e689c715a04f2c13962b1f77f443d35b
00002ebd: AND
00002ebe: SWAP1
00002ebf: PUSH4 0x40c10f19
00002ec4: SWAP1
00002ec5: PUSH1 0x44
00002ec7: ADD
00002ec8: PUSH2 0x260c
00002ecb: JUMP
00002ecc: JUMPDEST
00002ecd: PUSH0
00002ece: PUSH2 0x2ed5
00002ed1: PUSH2 0x1b89
00002ed4: JUMP
00002ed5: JUMPDEST
00002ed6: SLOAD
00002ed7: PUSH1 0x01
00002ed9: PUSH1 0x40
00002edb: SHL
00002edc: SWAP1
00002edd: DIV
00002ede: PUSH1 0xff
00002ee0: AND
00002ee1: SWAP2
00002ee2: SWAP1
00002ee3: POP
00002ee4: JUMP
00002ee5: JUMPDEST
00002ee6: DUP1
00002ee7: PUSH1 0x01
00002ee9: PUSH1 0x01
00002eeb: PUSH1 0xa0
00002eed: SHL
00002eee: SUB
00002eef: AND
00002ef0: EXTCODESIZE
00002ef1: PUSH0
00002ef2: SUB
00002ef3: PUSH2 0x2f1a
00002ef6: JUMPI
00002ef7: PUSH1 0x40
00002ef9: MLOAD
00002efa: PUSH4 0x4c9c8ce3
00002eff: PUSH1 0xe0
00002f01: SHL
00002f02: DUP2
00002f03: MSTORE
00002f04: PUSH1 0x01
00002f06: PUSH1 0x01
00002f08: PUSH1 0xa0
00002f0a: SHL
00002f0b: SUB
00002f0c: DUP3
00002f0d: AND
00002f0e: PUSH1 0x04
00002f10: DUP3
00002f11: ADD
00002f12: MSTORE
00002f13: PUSH1 0x24
00002f15: ADD
00002f16: PUSH2 0x0ba9
00002f19: JUMP
00002f1a: JUMPDEST
00002f1b: PUSH0
00002f1c: MLOAD
00002f1d: PUSH1 0x20
00002f1f: PUSH2 0x34b2
00002f22: PUSH0
00002f23: CODECOPY
00002f24: PUSH0
00002f25: MLOAD
00002f26: SWAP1
00002f27: PUSH0
00002f28: MSTORE
00002f29: DUP1
00002f2a: SLOAD
00002f2b: PUSH1 0x01
00002f2d: PUSH1 0x01
00002f2f: PUSH1 0xa0
00002f31: SHL
00002f32: SUB
00002f33: NOT
00002f34: AND
00002f35: PUSH1 0x01
00002f37: PUSH1 0x01
00002f39: PUSH1 0xa0
00002f3b: SHL
00002f3c: SUB
00002f3d: SWAP3
00002f3e: SWAP1
00002f3f: SWAP3
00002f40: AND
00002f41: SWAP2
00002f42: SWAP1
00002f43: SWAP2
00002f44: OR
00002f45: SWAP1
00002f46: SSTORE
00002f47: JUMP
00002f48: JUMPDEST
00002f49: PUSH1 0x60
00002f4b: PUSH0
00002f4c: PUSH0
00002f4d: DUP5
00002f4e: PUSH1 0x01
00002f50: PUSH1 0x01
00002f52: PUSH1 0xa0
00002f54: SHL
00002f55: SUB
00002f56: AND
00002f57: DUP5
00002f58: PUSH1 0x40
00002f5a: MLOAD
00002f5b: PUSH2 0x2f64
00002f5e: SWAP2
00002f5f: SWAP1
00002f60: PUSH2 0x347b
00002f63: JUMP
00002f64: JUMPDEST
00002f65: PUSH0
00002f66: PUSH1 0x40
00002f68: MLOAD
00002f69: DUP1
00002f6a: DUP4
00002f6b: SUB
00002f6c: DUP2
00002f6d: DUP6
00002f6e: GAS
00002f6f: DELEGATECALL
00002f70: SWAP2
00002f71: POP
00002f72: POP
00002f73: RETURNDATASIZE
00002f74: DUP1
00002f75: PUSH0
00002f76: DUP2
00002f77: EQ
00002f78: PUSH2 0x2f9c
00002f7b: JUMPI
00002f7c: PUSH1 0x40
00002f7e: MLOAD
00002f7f: SWAP2
00002f80: POP
00002f81: PUSH1 0x1f
00002f83: NOT
00002f84: PUSH1 0x3f
00002f86: RETURNDATASIZE
00002f87: ADD
00002f88: AND
00002f89: DUP3
00002f8a: ADD
00002f8b: PUSH1 0x40
00002f8d: MSTORE
00002f8e: RETURNDATASIZE
00002f8f: DUP3
00002f90: MSTORE
00002f91: RETURNDATASIZE
00002f92: PUSH0
00002f93: PUSH1 0x20
00002f95: DUP5
00002f96: ADD
00002f97: RETURNDATACOPY
00002f98: PUSH2 0x2fa1
00002f9b: JUMP
00002f9c: JUMPDEST
00002f9d: PUSH1 0x60
00002f9f: SWAP2
00002fa0: POP
00002fa1: JUMPDEST
00002fa2: POP
00002fa3: SWAP2
00002fa4: POP
00002fa5: SWAP2
00002fa6: POP
00002fa7: PUSH2 0x2fb1
00002faa: DUP6
00002fab: DUP4
00002fac: DUP4
00002fad: PUSH2 0x2fd9
00002fb0: JUMP
00002fb1: JUMPDEST
00002fb2: SWAP6
00002fb3: SWAP5
00002fb4: POP
00002fb5: POP
00002fb6: POP
00002fb7: POP
00002fb8: POP
00002fb9: JUMP
00002fba: JUMPDEST
00002fbb: CALLVALUE
00002fbc: ISZERO
00002fbd: PUSH2 0x21b6
00002fc0: JUMPI
00002fc1: PUSH1 0x40
00002fc3: MLOAD
00002fc4: PUSH4 0xb398979f
00002fc9: PUSH1 0xe0
00002fcb: SHL
00002fcc: DUP2
00002fcd: MSTORE
00002fce: PUSH1 0x04
00002fd0: ADD
00002fd1: PUSH1 0x40
00002fd3: MLOAD
00002fd4: DUP1
00002fd5: SWAP2
00002fd6: SUB
00002fd7: SWAP1
00002fd8: REVERT
00002fd9: JUMPDEST
00002fda: PUSH1 0x60
00002fdc: DUP3
00002fdd: PUSH2 0x2fee
00002fe0: JUMPI
00002fe1: PUSH2 0x2fe9
00002fe4: DUP3
00002fe5: PUSH2 0x3038
00002fe8: JUMP
00002fe9: JUMPDEST
00002fea: PUSH2 0x3031
00002fed: JUMP
00002fee: JUMPDEST
00002fef: DUP2
00002ff0: MLOAD
00002ff1: ISZERO
00002ff2: DUP1
00002ff3: ISZERO
00002ff4: PUSH2 0x3005
00002ff7: JUMPI
00002ff8: POP
00002ff9: PUSH1 0x01
00002ffb: PUSH1 0x01
00002ffd: PUSH1 0xa0
00002fff: SHL
00003000: SUB
00003001: DUP5
00003002: AND
00003003: EXTCODESIZE
00003004: ISZERO
00003005: JUMPDEST
00003006: ISZERO
00003007: PUSH2 0x302e
0000300a: JUMPI
0000300b: PUSH1 0x40
0000300d: MLOAD
0000300e: PUSH4 0x9996b315
00003013: PUSH1 0xe0
00003015: SHL
00003016: DUP2
00003017: MSTORE
00003018: PUSH1 0x01
0000301a: PUSH1 0x01
0000301c: PUSH1 0xa0
0000301e: SHL
0000301f: SUB
00003020: DUP6
00003021: AND
00003022: PUSH1 0x04
00003024: DUP3
00003025: ADD
00003026: MSTORE
00003027: PUSH1 0x24
00003029: ADD
0000302a: PUSH2 0x0ba9
0000302d: JUMP
0000302e: JUMPDEST
0000302f: POP
00003030: DUP1
00003031: JUMPDEST
00003032: SWAP4
00003033: SWAP3
00003034: POP
00003035: POP
00003036: POP
00003037: JUMP
00003038: JUMPDEST
00003039: DUP1
0000303a: MLOAD
0000303b: ISZERO
0000303c: PUSH2 0x3047
0000303f: JUMPI
00003040: DUP1
00003041: MLOAD
00003042: PUSH1 0x20
00003044: DUP3
00003045: ADD
00003046: REVERT
00003047: JUMPDEST
00003048: PUSH1 0x40
0000304a: MLOAD
0000304b: PUSH4 0xd6bda275
00003050: PUSH1 0xe0
00003052: SHL
00003053: DUP2
00003054: MSTORE
00003055: PUSH1 0x04
00003057: ADD
00003058: PUSH1 0x40
0000305a: MLOAD
0000305b: DUP1
0000305c: SWAP2
0000305d: SUB
0000305e: SWAP1
0000305f: REVERT
00003060: JUMPDEST
00003061: PUSH0
00003062: PUSH1 0x20
00003064: DUP3
00003065: DUP5
00003066: SUB
00003067: SLT
00003068: ISZERO
00003069: PUSH2 0x3070
0000306c: JUMPI
0000306d: PUSH0
0000306e: PUSH0
0000306f: REVERT
00003070: JUMPDEST
00003071: DUP2
00003072: CALLDATALOAD
00003073: PUSH1 0x01
00003075: PUSH1 0x01
00003077: PUSH1 0xe0
00003079: SHL
0000307a: SUB
0000307b: NOT
0000307c: DUP2
0000307d: AND
0000307e: DUP2
0000307f: EQ
00003080: PUSH2 0x3031
00003083: JUMPI
00003084: PUSH0
00003085: PUSH0
00003086: REVERT
00003087: JUMPDEST
00003088: PUSH1 0x01
0000308a: PUSH1 0x01
0000308c: PUSH1 0xa0
0000308e: SHL
0000308f: SUB
00003090: DUP2
00003091: AND
00003092: DUP2
00003093: EQ
00003094: PUSH2 0x0d9b
00003097: JUMPI
00003098: PUSH0
00003099: PUSH0
0000309a: REVERT
0000309b: JUMPDEST
0000309c: PUSH0
0000309d: PUSH1 0x20
0000309f: DUP3
000030a0: DUP5
000030a1: SUB
000030a2: SLT
000030a3: ISZERO
000030a4: PUSH2 0x30ab
000030a7: JUMPI
000030a8: PUSH0
000030a9: PUSH0
000030aa: REVERT
000030ab: JUMPDEST
000030ac: DUP2
000030ad: CALLDATALOAD
000030ae: PUSH2 0x3031
000030b1: DUP2
000030b2: PUSH2 0x3087
000030b5: JUMP
000030b6: JUMPDEST
000030b7: PUSH0
000030b8: PUSH1 0x20
000030ba: DUP3
000030bb: DUP5
000030bc: SUB
000030bd: SLT
000030be: ISZERO
000030bf: PUSH2 0x30c6
000030c2: JUMPI
000030c3: PUSH0
000030c4: PUSH0
000030c5: REVERT
000030c6: JUMPDEST
000030c7: POP
000030c8: CALLDATALOAD
000030c9: SWAP2
000030ca: SWAP1
000030cb: POP
000030cc: JUMP
000030cd: JUMPDEST
000030ce: DUP1
000030cf: CALLDATALOAD
000030d0: PUSH1 0x01
000030d2: PUSH1 0x01
000030d4: PUSH1 0x80
000030d6: SHL
000030d7: SUB
000030d8: DUP2
000030d9: AND
000030da: DUP2
000030db: EQ
000030dc: PUSH2 0x30e3
000030df: JUMPI
000030e0: PUSH0
000030e1: PUSH0
000030e2: REVERT
000030e3: JUMPDEST
000030e4: SWAP2
000030e5: SWAP1
000030e6: POP
000030e7: JUMP
000030e8: JUMPDEST
000030e9: DUP1
000030ea: CALLDATALOAD
000030eb: PUSH1 0x02
000030ed: DUP2
000030ee: LT
000030ef: PUSH2 0x30e3
000030f2: JUMPI
000030f3: PUSH0
000030f4: PUSH0
000030f5: REVERT
000030f6: JUMPDEST
000030f7: PUSH0
000030f8: PUSH0
000030f9: PUSH0
000030fa: PUSH0
000030fb: PUSH0
000030fc: PUSH1 0xa0
000030fe: DUP7
000030ff: DUP9
00003100: SUB
00003101: SLT
00003102: ISZERO
00003103: PUSH2 0x310a
00003106: JUMPI
00003107: PUSH0
00003108: PUSH0
00003109: REVERT
0000310a: JUMPDEST
0000310b: DUP6
0000310c: CALLDATALOAD
0000310d: PUSH2 0x3115
00003110: DUP2
00003111: PUSH2 0x3087
00003114: JUMP
00003115: JUMPDEST
00003116: SWAP5
00003117: POP
00003118: PUSH1 0x20
0000311a: DUP7
0000311b: ADD
0000311c: CALLDATALOAD
0000311d: PUSH2 0x3125
00003120: DUP2
00003121: PUSH2 0x3087
00003124: JUMP
00003125: JUMPDEST
00003126: SWAP4
00003127: POP
00003128: PUSH2 0x3133
0000312b: PUSH1 0x40
0000312d: DUP8
0000312e: ADD
0000312f: PUSH2 0x30cd
00003132: JUMP
00003133: JUMPDEST
00003134: SWAP3
00003135: POP
00003136: PUSH1 0x60
00003138: DUP7
00003139: ADD
0000313a: CALLDATALOAD
0000313b: PUSH2 0x3143
0000313e: DUP2
0000313f: PUSH2 0x3087
00003142: JUMP
00003143: JUMPDEST
00003144: SWAP2
00003145: POP
00003146: PUSH2 0x3151
00003149: PUSH1 0x80
0000314b: DUP8
0000314c: ADD
0000314d: PUSH2 0x30e8
00003150: JUMP
00003151: JUMPDEST
00003152: SWAP1
00003153: POP
00003154: SWAP3
00003155: SWAP6
00003156: POP
00003157: SWAP3
00003158: SWAP6
00003159: SWAP1
0000315a: SWAP4
0000315b: POP
0000315c: JUMP
0000315d: JUMPDEST
0000315e: PUSH0
0000315f: PUSH0
00003160: PUSH1 0x40
00003162: DUP4
00003163: DUP6
00003164: SUB
00003165: SLT
00003166: ISZERO
00003167: PUSH2 0x316e
0000316a: JUMPI
0000316b: PUSH0
0000316c: PUSH0
0000316d: REVERT
0000316e: JUMPDEST
0000316f: DUP3
00003170: CALLDATALOAD
00003171: SWAP2
00003172: POP
00003173: PUSH1 0x20
00003175: DUP4
00003176: ADD
00003177: CALLDATALOAD
00003178: PUSH2 0x3180
0000317b: DUP2
0000317c: PUSH2 0x3087
0000317f: JUMP
00003180: JUMPDEST
00003181: DUP1
00003182: SWAP2
00003183: POP
00003184: POP
00003185: SWAP3
00003186: POP
00003187: SWAP3
00003188: SWAP1
00003189: POP
0000318a: JUMP
0000318b: JUMPDEST
0000318c: PUSH0
0000318d: PUSH1 0x20
0000318f: DUP3
00003190: DUP5
00003191: SUB
00003192: SLT
00003193: ISZERO
00003194: PUSH2 0x319b
00003197: JUMPI
00003198: PUSH0
00003199: PUSH0
0000319a: REVERT
0000319b: JUMPDEST
0000319c: PUSH2 0x3031
0000319f: DUP3
000031a0: PUSH2 0x30e8
000031a3: JUMP
000031a4: JUMPDEST
000031a5: PUSH0
000031a6: PUSH1 0x20
000031a8: DUP3
000031a9: DUP5
000031aa: SUB
000031ab: SLT
000031ac: ISZERO
000031ad: PUSH2 0x31b4
000031b0: JUMPI
000031b1: PUSH0
000031b2: PUSH0
000031b3: REVERT
000031b4: JUMPDEST
000031b5: PUSH2 0x3031
000031b8: DUP3
000031b9: PUSH2 0x30cd
000031bc: JUMP
000031bd: JUMPDEST
000031be: PUSH4 0x4e487b71
000031c3: PUSH1 0xe0
000031c5: SHL
000031c6: PUSH0
000031c7: MSTORE
000031c8: PUSH1 0x21
000031ca: PUSH1 0x04
000031cc: MSTORE
000031cd: PUSH1 0x24
000031cf: PUSH0
000031d0: REVERT
000031d1: JUMPDEST
000031d2: PUSH1 0x20
000031d4: DUP2
000031d5: ADD
000031d6: PUSH1 0x02
000031d8: DUP4
000031d9: LT
000031da: PUSH2 0x31f1
000031dd: JUMPI
000031de: PUSH4 0x4e487b71
000031e3: PUSH1 0xe0
000031e5: SHL
000031e6: PUSH0
000031e7: MSTORE
000031e8: PUSH1 0x21
000031ea: PUSH1 0x04
000031ec: MSTORE
000031ed: PUSH1 0x24
000031ef: PUSH0
000031f0: REVERT
000031f1: JUMPDEST
000031f2: SWAP2
000031f3: SWAP1
000031f4: MSTORE
000031f5: SWAP1
000031f6: JUMP
000031f7: JUMPDEST
000031f8: PUSH4 0x4e487b71
000031fd: PUSH1 0xe0
000031ff: SHL
00003200: PUSH0
00003201: MSTORE
00003202: PUSH1 0x41
00003204: PUSH1 0x04
00003206: MSTORE
00003207: PUSH1 0x24
00003209: PUSH0
0000320a: REVERT
0000320b: JUMPDEST
0000320c: PUSH0
0000320d: PUSH0
0000320e: PUSH1 0x40
00003210: DUP4
00003211: DUP6
00003212: SUB
00003213: SLT
00003214: ISZERO
00003215: PUSH2 0x321c
00003218: JUMPI
00003219: PUSH0
0000321a: PUSH0
0000321b: REVERT
0000321c: JUMPDEST
0000321d: DUP3
0000321e: CALLDATALOAD
0000321f: PUSH2 0x3227
00003222: DUP2
00003223: PUSH2 0x3087
00003226: JUMP
00003227: JUMPDEST
00003228: SWAP2
00003229: POP
0000322a: PUSH1 0x20
0000322c: DUP4
0000322d: ADD
0000322e: CALLDATALOAD
0000322f: PUSH8 0xffffffffffffffff
00003238: DUP2
00003239: GT
0000323a: ISZERO
0000323b: PUSH2 0x3242
0000323e: JUMPI
0000323f: PUSH0
00003240: PUSH0
00003241: REVERT
00003242: JUMPDEST
00003243: DUP4
00003244: ADD
00003245: PUSH1 0x1f
00003247: DUP2
00003248: ADD
00003249: DUP6
0000324a: SGT
0000324b: PUSH2 0x3252
0000324e: JUMPI
0000324f: PUSH0
00003250: PUSH0
00003251: REVERT
00003252: JUMPDEST
00003253: DUP1
00003254: CALLDATALOAD
00003255: PUSH8 0xffffffffffffffff
0000325e: DUP2
0000325f: GT
00003260: ISZERO
00003261: PUSH2 0x326c
00003264: JUMPI
00003265: PUSH2 0x326c
00003268: PUSH2 0x31f7
0000326b: JUMP
0000326c: JUMPDEST
0000326d: PUSH1 0x40
0000326f: MLOAD
00003270: PUSH1 0x1f
00003272: DUP3
00003273: ADD
00003274: PUSH1 0x1f
00003276: NOT
00003277: SWAP1
00003278: DUP2
00003279: AND
0000327a: PUSH1 0x3f
0000327c: ADD
0000327d: AND
0000327e: DUP2
0000327f: ADD
00003280: PUSH8 0xffffffffffffffff
00003289: DUP2
0000328a: GT
0000328b: DUP3
0000328c: DUP3
0000328d: LT
0000328e: OR
0000328f: ISZERO
00003290: PUSH2 0x329b
00003293: JUMPI
00003294: PUSH2 0x329b
00003297: PUSH2 0x31f7
0000329a: JUMP
0000329b: JUMPDEST
0000329c: PUSH1 0x40
0000329e: MSTORE
0000329f: DUP2
000032a0: DUP2
000032a1: MSTORE
000032a2: DUP3
000032a3: DUP3
000032a4: ADD
000032a5: PUSH1 0x20
000032a7: ADD
000032a8: DUP8
000032a9: LT
000032aa: ISZERO
000032ab: PUSH2 0x32b2
000032ae: JUMPI
000032af: PUSH0
000032b0: PUSH0
000032b1: REVERT
000032b2: JUMPDEST
000032b3: DUP2
000032b4: PUSH1 0x20
000032b6: DUP5
000032b7: ADD
000032b8: PUSH1 0x20
000032ba: DUP4
000032bb: ADD
000032bc: CALLDATACOPY
000032bd: PUSH0
000032be: PUSH1 0x20
000032c0: DUP4
000032c1: DUP4
000032c2: ADD
000032c3: ADD
000032c4: MSTORE
000032c5: DUP1
000032c6: SWAP4
000032c7: POP
000032c8: POP
000032c9: POP
000032ca: POP
000032cb: SWAP3
000032cc: POP
000032cd: SWAP3
000032ce: SWAP1
000032cf: POP
000032d0: JUMP
000032d1: JUMPDEST
000032d2: PUSH1 0x20
000032d4: DUP2
000032d5: MSTORE
000032d6: PUSH0
000032d7: DUP3
000032d8: MLOAD
000032d9: DUP1
000032da: PUSH1 0x20
000032dc: DUP5
000032dd: ADD
000032de: MSTORE
000032df: DUP1
000032e0: PUSH1 0x20
000032e2: DUP6
000032e3: ADD
000032e4: PUSH1 0x40
000032e6: DUP6
000032e7: ADD
000032e8: MCOPY
000032e9: PUSH0
000032ea: PUSH1 0x40
000032ec: DUP3
000032ed: DUP6
000032ee: ADD
000032ef: ADD
000032f0: MSTORE
000032f1: PUSH1 0x40
000032f3: PUSH1 0x1f
000032f5: NOT
000032f6: PUSH1 0x1f
000032f8: DUP4
000032f9: ADD
000032fa: AND
000032fb: DUP5
000032fc: ADD
000032fd: ADD
000032fe: SWAP2
000032ff: POP
00003300: POP
00003301: SWAP3
00003302: SWAP2
00003303: POP
00003304: POP
00003305: JUMP
00003306: JUMPDEST
00003307: PUSH0
00003308: PUSH1 0x20
0000330a: DUP3
0000330b: DUP5
0000330c: SUB
0000330d: SLT
0000330e: ISZERO
0000330f: PUSH2 0x3316
00003312: JUMPI
00003313: PUSH0
00003314: PUSH0
00003315: REVERT
00003316: JUMPDEST
00003317: DUP2
00003318: CALLDATALOAD
00003319: DUP1
0000331a: ISZERO
0000331b: ISZERO
0000331c: DUP2
0000331d: EQ
0000331e: PUSH2 0x3031
00003321: JUMPI
00003322: PUSH0
00003323: PUSH0
00003324: REVERT
00003325: JUMPDEST
00003326: PUSH0
00003327: PUSH0
00003328: PUSH0
00003329: PUSH1 0x60
0000332b: DUP5
0000332c: DUP7
0000332d: SUB
0000332e: SLT
0000332f: ISZERO
00003330: PUSH2 0x3337
00003333: JUMPI
00003334: PUSH0
00003335: PUSH0
00003336: REVERT
00003337: JUMPDEST
00003338: DUP4
00003339: CALLDATALOAD
0000333a: PUSH2 0x3342
0000333d: DUP2
0000333e: PUSH2 0x3087
00003341: JUMP
00003342: JUMPDEST
00003343: SWAP3
00003344: POP
00003345: PUSH1 0x20
00003347: DUP5
00003348: ADD
00003349: CALLDATALOAD
0000334a: PUSH2 0x3352
0000334d: DUP2
0000334e: PUSH2 0x3087
00003351: JUMP
00003352: JUMPDEST
00003353: SWAP3
00003354: SWAP6
00003355: SWAP3
00003356: SWAP5
00003357: POP
00003358: POP
00003359: POP
0000335a: PUSH1 0x40
0000335c: SWAP2
0000335d: SWAP1
0000335e: SWAP2
0000335f: ADD
00003360: CALLDATALOAD
00003361: SWAP1
00003362: JUMP
00003363: JUMPDEST
00003364: PUSH4 0x4e487b71
00003369: PUSH1 0xe0
0000336b: SHL
0000336c: PUSH0
0000336d: MSTORE
0000336e: PUSH1 0x11
00003370: PUSH1 0x04
00003372: MSTORE
00003373: PUSH1 0x24
00003375: PUSH0
00003376: REVERT
00003377: JUMPDEST
00003378: PUSH1 0x01
0000337a: PUSH1 0x01
0000337c: PUSH1 0x80
0000337e: SHL
0000337f: SUB
00003380: DUP3
00003381: DUP2
00003382: AND
00003383: DUP3
00003384: DUP3
00003385: AND
00003386: SUB
00003387: SWAP1
00003388: DUP2
00003389: GT
0000338a: ISZERO
0000338b: PUSH2 0x0942
0000338e: JUMPI
0000338f: PUSH2 0x0942
00003392: PUSH2 0x3363
00003395: JUMP
00003396: JUMPDEST
00003397: PUSH1 0x20
00003399: DUP1
0000339a: DUP3
0000339b: MSTORE
0000339c: PUSH1 0x0a
0000339e: SWAP1
0000339f: DUP3
000033a0: ADD
000033a1: MSTORE
000033a2: PUSH10 0x1554d357d4d152569151
000033ad: PUSH1 0xb2
000033af: SHL
000033b0: PUSH1 0x40
000033b2: DUP3
000033b3: ADD
000033b4: MSTORE
000033b5: PUSH1 0x60
000033b7: ADD
000033b8: SWAP1
000033b9: JUMP
000033ba: JUMPDEST
000033bb: PUSH1 0x20
000033bd: DUP1
000033be: DUP3
000033bf: MSTORE
000033c0: PUSH1 0x0e
000033c2: SWAP1
000033c3: DUP3
000033c4: ADD
000033c5: MSTORE
000033c6: PUSH14 0x1253959053125117d05353d55395
000033d5: PUSH1 0x92
000033d7: SHL
000033d8: PUSH1 0x40
000033da: DUP3
000033db: ADD
000033dc: MSTORE
000033dd: PUSH1 0x60
000033df: ADD
000033e0: SWAP1
000033e1: JUMP
000033e2: JUMPDEST
000033e3: DUP2
000033e4: DUP2
000033e5: SUB
000033e6: DUP2
000033e7: DUP2
000033e8: GT
000033e9: ISZERO
000033ea: PUSH2 0x0942
000033ed: JUMPI
000033ee: PUSH2 0x0942
000033f1: PUSH2 0x3363
000033f4: JUMP
000033f5: JUMPDEST
000033f6: PUSH0
000033f7: PUSH1 0x20
000033f9: DUP3
000033fa: DUP5
000033fb: SUB
000033fc: SLT
000033fd: ISZERO
000033fe: PUSH2 0x3405
00003401: JUMPI
00003402: PUSH0
00003403: PUSH0
00003404: REVERT
00003405: JUMPDEST
00003406: POP
00003407: MLOAD
00003408: SWAP2
00003409: SWAP1
0000340a: POP
0000340b: JUMP
0000340c: JUMPDEST
0000340d: DUP1
0000340e: DUP3
0000340f: ADD
00003410: DUP1
00003411: DUP3
00003412: GT
00003413: ISZERO
00003414: PUSH2 0x0942
00003417: JUMPI
00003418: PUSH2 0x0942
0000341b: PUSH2 0x3363
0000341e: JUMP
0000341f: JUMPDEST
00003420: PUSH1 0x01
00003422: PUSH1 0x01
00003424: PUSH1 0x80
00003426: SHL
00003427: SUB
00003428: DUP2
00003429: DUP2
0000342a: AND
0000342b: DUP4
0000342c: DUP3
0000342d: AND
0000342e: ADD
0000342f: SWAP1
00003430: DUP2
00003431: GT
00003432: ISZERO
00003433: PUSH2 0x0942
00003436: JUMPI
00003437: PUSH2 0x0942
0000343a: PUSH2 0x3363
0000343d: JUMP
0000343e: JUMPDEST
0000343f: PUSH0
00003440: PUSH0
00003441: PUSH1 0x40
00003443: DUP4
00003444: DUP6
00003445: SUB
00003446: SLT
00003447: ISZERO
00003448: PUSH2 0x344f
0000344b: JUMPI
0000344c: PUSH0
0000344d: PUSH0
0000344e: REVERT
0000344f: JUMPDEST
00003450: POP
00003451: POP
00003452: DUP1
00003453: MLOAD
00003454: PUSH1 0x20
00003456: SWAP1
00003457: SWAP2
00003458: ADD
00003459: MLOAD
0000345a: SWAP1
0000345b: SWAP3
0000345c: SWAP1
0000345d: SWAP2
0000345e: POP
0000345f: JUMP
00003460: JUMPDEST
00003461: PUSH0
00003462: PUSH1 0x20
00003464: DUP3
00003465: DUP5
00003466: SUB
00003467: SLT
00003468: ISZERO
00003469: PUSH2 0x3470
0000346c: JUMPI
0000346d: PUSH0
0000346e: PUSH0
0000346f: REVERT
00003470: JUMPDEST
00003471: DUP2
00003472: MLOAD
00003473: PUSH2 0x3031
00003476: DUP2
00003477: PUSH2 0x3087
0000347a: JUMP
0000347b: JUMPDEST
0000347c: PUSH0
0000347d: DUP3
0000347e: MLOAD
0000347f: DUP1
00003480: PUSH1 0x20
00003482: DUP6
00003483: ADD
00003484: DUP5
00003485: MCOPY
00003486: PUSH0
00003487: SWAP3
00003488: ADD
00003489: SWAP2
0000348a: DUP3
0000348b: MSTORE
0000348c: POP
0000348d: SWAP2
0000348e: SWAP1
0000348f: POP
00003490: JUMP
00003491: INVALID
00003492: EXTCODESIZE
00003493: BLOBHASH
00003494: LOG2
00003495: CALLDATACOPY
00003496: INVALID
00003497: UNKNOWN(0x2D)
00003498: XOR
00003499: STATICCALL
0000349a: UNKNOWN(0x4D)
0000349b: SWAP7
0000349c: TIMESTAMP
0000349d: UNKNOWN(0xB8)
0000349e: LOG0
0000349f: UNKNOWN(0xE0)
000034a0: PUSH6 0x923cceb71b79
000034a7: PUSH24 0x83b619a030a61d848bf0360894a13ba1a3210667c828492d
000034c0: UNKNOWN(0xB9)
000034c1: DUP14
000034c2: UNKNOWN(0xCA)
000034c3: RETURNDATACOPY
000034c4: KECCAK256
000034c5: PUSH23 0xcc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775
000034dd: UNKNOWN(0xE5)
000034de: DUP14
000034df: UNKNOWN(0xD5)
000034e0: COINBASE
000034e1: UNKNOWN(0xE0)
000034e2: DUP11
000034e3: GT
000034e4: PUSH13 0x6c53815c0bd028192f7b626800
000034f2: LOG2
000034f3: PUSH5 0x6970667358
000034f9: UNKNOWN(0x22)
000034fa: SLT
000034fb: KECCAK256
000034fc: UNKNOWN(0xEB)
000034fd: UNKNOWN(0xDA)
000034fe: UNKNOWN(0xC5)
000034ff: UNKNOWN(0xDB)
00003500: LT
00003501: PUSH13 0xc97fc691a7997d61364f80db3e
0000350f: MSIZE
00003510: SWAP7
00003511: UNKNOWN(0x2A)
00003512: UNKNOWN(0xC2)
00003513: PUSH12 0x230550f9481206c464736f6c
00003520: PUSH4 0x4300081c
00003525: STOP
00003526: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 no no
view
trace_id: 0x139c83ba6804113ef2fdfb50d0ddac18e9e524645e47ed6e36cc96b411470534
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "unknown",
    "attempts": 192,
    "trace_id": "0x139c83ba6804113ef2fdfb50d0ddac18e9e524645e47ed6e36cc96b411470534",
    "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": "0xd417e511",
            "selector": "0xd417e511",
            "calldata_variants": [
                "0xd417e511",
                "0xd417e5110000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd853015e",
            "selector": "0xd853015e",
            "calldata_variants": [
                "0xd853015e",
                "0xd853015e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf668eca",
            "selector": "0xdf668eca",
            "calldata_variants": [
                "0xdf668eca",
                "0xdf668eca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe6025393",
            "selector": "0xe6025393",
            "calldata_variants": [
                "0xe6025393",
                "0xe60253930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf160d369",
            "selector": "0xf160d369",
            "calldata_variants": [
                "0xf160d369",
                "0xf160d3690000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xaa443ac0",
            "selector": "0xaa443ac0",
            "calldata_variants": [
                "0xaa443ac0",
                "0xaa443ac00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xad3cb1cc",
            "selector": "0xad3cb1cc",
            "calldata_variants": [
                "0xad3cb1cc",
                "0xad3cb1cc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 12143,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xf3907cd5432793dc99a11c3a448a9a2028a6871f1c6e86800d44b0f44778aa64
call_targets: 0x7dadf78d641f7ad327aeb0f71e97b6229345eca4
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xf3907cd5432793dc99a11c3a448a9a2028a6871f1c6e86800d44b0f44778aa64",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x7dadf78d641f7ad327aeb0f71e97b6229345eca4"
    ],
    "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": "0xd417e511",
            "selector": "0xd417e511",
            "calldata_variants": [
                "0xd417e511",
                "0xd417e5110000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd853015e",
            "selector": "0xd853015e",
            "calldata_variants": [
                "0xd853015e",
                "0xd853015e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf668eca",
            "selector": "0xdf668eca",
            "calldata_variants": [
                "0xdf668eca",
                "0xdf668eca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe6025393",
            "selector": "0xe6025393",
            "calldata_variants": [
                "0xe6025393",
                "0xe60253930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf160d369",
            "selector": "0xf160d369",
            "calldata_variants": [
                "0xf160d369",
                "0xf160d3690000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xaa443ac0",
            "selector": "0xaa443ac0",
            "calldata_variants": [
                "0xaa443ac0",
                "0xaa443ac00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xad3cb1cc",
            "selector": "0xad3cb1cc",
            "calldata_variants": [
                "0xad3cb1cc",
                "0xad3cb1cc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 9766,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 11717,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "constant_zero",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xf3907cd5432793dc99a11c3a448a9a2028a6871f1c6e86800d44b0f44778aa64
call_targets: 0x7dadf78d641f7ad327aeb0f71e97b6229345eca4
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xf3907cd5432793dc99a11c3a448a9a2028a6871f1c6e86800d44b0f44778aa64",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x7dadf78d641f7ad327aeb0f71e97b6229345eca4"
    ],
    "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": "0xd417e511",
            "selector": "0xd417e511",
            "calldata_variants": [
                "0xd417e511",
                "0xd417e5110000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd853015e",
            "selector": "0xd853015e",
            "calldata_variants": [
                "0xd853015e",
                "0xd853015e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdf668eca",
            "selector": "0xdf668eca",
            "calldata_variants": [
                "0xdf668eca",
                "0xdf668eca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe6025393",
            "selector": "0xe6025393",
            "calldata_variants": [
                "0xe6025393",
                "0xe60253930000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf160d369",
            "selector": "0xf160d369",
            "calldata_variants": [
                "0xf160d369",
                "0xf160d3690000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xaa443ac0",
            "selector": "0xaa443ac0",
            "calldata_variants": [
                "0xaa443ac0",
                "0xaa443ac00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xad3cb1cc",
            "selector": "0xad3cb1cc",
            "calldata_variants": [
                "0xad3cb1cc",
                "0xad3cb1cc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 9766,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 1,
    "guards_detected": []
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
low math codex sellAsset does not enforce the caller’s maxAmount after fee/rounding adjustments 65 no
view
evidence_json
{
    "evidence": "_sellAsset computes assetAmount from maxAmount and transfers that amount without checking it against maxAmount. The calculation explicitly rounds the final asset amount up (getStableTokenPriceInAsset(..., true)), which can exceed the input when fees are applied.",
    "locations": [
        "contracts/contracts/usm/Usm.sol:413",
        "contracts/contracts/usm/Usm.sol:476"
    ],
    "recommendation": "After computing assetAmount in _sellAsset, add a guard such as require(assetAmount <= maxAmount, \"EXCESS_ASSET_AMOUNT\"), or adjust _calculateStableTokenAmountForSellAsset so it never returns a value above the caller\u2019s max input.",
    "exploit_scenario": "If the fee strategy rounds up and price conversions round up, _calculateStableTokenAmountForSellAsset(maxAmount) can return an assetAmount slightly greater than maxAmount. When a user has pre-approved a larger allowance, sellAsset will transfer the larger amount, exceeding the user\u2019s intended cap and allowing a malicious UI or attacker to overcharge."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 6
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 25
}