bb4cd4e4-bb89-4d72-9bad-ab081d2ed309
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 30522 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 103991 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 103992 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 103993 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 103994 | capability.graph | complete | 1 / 3 | 1 week ago |
| 103995 | detector.run | complete | 1 / 3 | 1 week ago |
| 103996 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1059560] OpenAI Codex v0.77.0 (research preview)
[codex:1059560] --------
[codex:1059560] workdir: /tmp/codex-multi-2n1o5f24
[codex:1059560] model: gpt-5.2-codex
[codex:1059560] provider: openai
[codex:1059560] approval: never
[codex:1059560] sandbox: read-only
[codex:1059560] reasoning effort: xhigh
[codex:1059560] reasoning summaries: auto
[codex:1059560] session id: 019b6ade-ba39-72e1-8bdd-a24d3a8f604b
[codex:1059560] --------
[codex:1059560] user
[codex:1059560] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1059560] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1059560] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1059560]
[codex:1059560] Scope rules:
[codex:1059560] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1059560] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1059560]
[codex:1059560] Output MUST be valid JSON matching the provided schema.
[codex:1059560] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1059560] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1059560]
[codex:1059560] Output constraints (IMPORTANT):
[codex:1059560] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1059560] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1059560] mcp startup: no servers
[codex:1059560]
[codex:1059560] thinking
[codex:1059560] **Checking skill requirements**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc ls in /tmp/codex-multi-2n1o5f24 succeeded in 5ms:
[codex:1059560] AUDIT_BUNDLE.txt
[codex:1059560] codex-output-schema.json
[codex:1059560] contracts
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 5ms:
[codex:1059560] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1059560]
[codex:1059560] ================================================================================
[codex:1059560] FILE: contracts/lib/openzeppelin-contracts/contracts/access/Ownable.sol
[codex:1059560] ================================================================================
[codex:1059560] // SPDX-License-Identifier: MIT
[codex:1059560] // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
[codex:1059560]
[codex:1059560] pragma solidity ^0.8.20;
[codex:1059560]
[codex:1059560] import {Context} from "../utils/Context.sol";
[codex:1059560]
[codex:1059560] /**
[codex:1059560] * @dev Contract module which provides a basic access control mechanism, where
[codex:1059560] * there is an account (an owner) that can be granted exclusive access to
[codex:1059560] * specific functions.
[codex:1059560] *
[codex:1059560] * The initial owner is set to the address provided by the deployer. This can
[codex:1059560] * later be changed with {transferOwnership}.
[codex:1059560] *
[codex:1059560]
[codex:1059560] thinking
[codex:1059560] **Preparing to read full audit bundle**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc 'wc -l AUDIT_BUNDLE.txt' in /tmp/codex-multi-2n1o5f24 succeeded in 5ms:
[codex:1059560] 2450 AUDIT_BUNDLE.txt
[codex:1059560]
[codex:1059560] thinking
[codex:1059560] **Processing file in segments**
[codex:1059560]
[codex:1059560] I'm planning to read the large 2450-line file in chunks of 200 lines each, using sed to extract these segments incrementally. Since the first 200 lines already show openzeppelin content, I'll keep moving forward this way to gradually process the whole file.
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 6ms:
[codex:1059560] * @param operator Address that may be allowed to operate on tokens without being their owner.
[codex:1059560] * @param tokenId Identifier number of a token.
[codex:1059560] */
[codex:1059560] error ERC721InsufficientApproval(address operator, uint256 tokenId);
[codex:1059560]
[codex:1059560] /**
[codex:1059560] * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.
[codex:1059560] * @param approver Address initiating an approval operation.
[codex:1059560] */
[codex:1059560] error ERC721InvalidApprover(address approver);
[codex:1059560]
[codex:1059560] /**
[codex:1059560] * @dev Indicates a failure with the `operator` to be approved. Used in approvals.
[codex:1059560] * @param operator Address that may be allowed to operate on tokens without being their owner.
[codex:1059560] */
[codex:1059560] error ERC721InvalidOperator(address operator);
[codex:1059560] }
[codex:1059560]
[codex:1059560] /**
[codex:1059560] * @dev Standard ERC-1155 Errors
[codex:1059560]
[codex:1059560] thinking
[codex:1059560] **Continuing to scan OpenZeppelin file**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 5ms:
[codex:1059560] * `transferFrom`. This is semantically equivalent to an infinite approval.
[codex:1059560] *
[codex:1059560] * Requirements:
[codex:1059560] *
[codex:1059560] * - `spender` cannot be the zero address.
[codex:1059560] */
[codex:1059560] function approve(address spender, uint256 value) public virtual returns (bool) {
[codex:1059560] address owner = _msgSender();
[codex:1059560] _approve(owner, spender, value);
[codex:1059560] return true;
[codex:1059560] }
[codex:1059560]
[codex:1059560] /**
[codex:1059560] * @dev See {IERC20-transferFrom}.
[codex:1059560] *
[codex:1059560] * Emits an {Approval} event indicating the updated allowance. This is not
[codex:1059560] * required by the ERC. See the note at the beginning of {ERC20}.
[codex:1059560] *
[codex:1059560] * NOTE: Does not update the allowance if the current allowance
[codex:1059560] * is the maximum `uint256`.
[codex:1059560]
[codex:1059560] thinking
[codex:1059560] **Continuing with OpenZeppelin exploration**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 5ms:
[codex:1059560] FILE: contracts/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol
[codex:1059560] ================================================================================
[codex:1059560] // SPDX-License-Identifier: MIT
[codex:1059560] // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/utils/SafeERC20.sol)
[codex:1059560]
[codex:1059560] pragma solidity ^0.8.20;
[codex:1059560]
[codex:1059560] import {IERC20} from "../IERC20.sol";
[codex:1059560] import {IERC20Permit} from "../extensions/IERC20Permit.sol";
[codex:1059560] import {Address} from "../../../utils/Address.sol";
[codex:1059560]
[codex:1059560] /**
[codex:1059560] * @title SafeERC20
[codex:1059560] * @dev Wrappers around ERC-20 operations that throw on failure (when the token
[codex:1059560] * contract returns false). Tokens that return no value (and instead revert or
[codex:1059560] * throw on failure) are also supported, non-reverting calls are assumed to be
[codex:1059560] * successful.
[codex:1059560] * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
[codex:1059560] * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
[codex:1059560] */
[codex:1059560]
[codex:1059560] thinking
[codex:1059560] **Continuing analysis**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '1200,1600p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 5ms:
[codex:1059560] return _status == ENTERED;
[codex:1059560] }
[codex:1059560] }
[codex:1059560]
[codex:1059560] ================================================================================
[codex:1059560] FILE: contracts/lib/solady/src/utils/MerkleProofLib.sol
[codex:1059560] ================================================================================
[codex:1059560] // SPDX-License-Identifier: MIT
[codex:1059560] pragma solidity ^0.8.4;
[codex:1059560]
[codex:1059560] /// @notice Gas optimized verification of proof of inclusion for a leaf in a Merkle tree.
[codex:1059560] /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/MerkleProofLib.sol)
[codex:1059560] /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/MerkleProofLib.sol)
[codex:1059560] /// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/MerkleProof.sol)
[codex:1059560] library MerkleProofLib {
[codex:1059560] /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
[codex:1059560] /* MERKLE PROOF VERIFICATION OPERATIONS */
[codex:1059560] /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
[codex:1059560]
[codex:1059560] /// @dev Returns whether `leaf` exists in the Merkle tree with `root`, given `proof`.
[codex:1059560]
[codex:1059560] thinking
[codex:1059560] **Continuing to review StreamVault**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '1600,2000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 6ms:
[codex:1059560] event CapSet(uint256 oldCap, uint256 newCap);
[codex:1059560]
[codex:1059560] event InstantWithdraw(
[codex:1059560] address indexed account,
[codex:1059560] uint256 amount,
[codex:1059560] uint256 round
[codex:1059560] );
[codex:1059560]
[codex:1059560] /************************************************
[codex:1059560] * MODIFIERS
[codex:1059560] ***********************************************/
[codex:1059560]
[codex:1059560] /**
[codex:1059560] * @dev Throws if called by any account other than the keeper.
[codex:1059560] */
[codex:1059560] modifier onlyKeeper() {
[codex:1059560] require(msg.sender == keeper, "!keeper");
[codex:1059560] _;
[codex:1059560] }
[codex:1059560]
[codex:1059560]
[codex:1059560] thinking
[codex:1059560] **Continuing process**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '2000,2400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 6ms:
[codex:1059560] /**
[codex:1059560] * @notice Rolls to the next round, finalizing prev round pricePerShare and minting new shares
[codex:1059560] * @notice Keeper only deposits enough to fulfill withdraws and passes the true amount as 'currentBalance'
[codex:1059560] * @notice Keeper should be a contract so currentBalance and the call to the func happens atomically
[codex:1059560] * @param currentBalance is the amount of `asset` that is currently being used for strategy
[codex:1059560] + the amount in the contract right before the roll
[codex:1059560]
[codex:1059560] */
[codex:1059560] function rollToNextRound(
[codex:1059560] uint256 currentBalance
[codex:1059560] ) external onlyKeeper nonReentrant {
[codex:1059560] require(
[codex:1059560] currentBalance >= uint256(vaultParams.minimumSupply),
[codex:1059560] "Insufficient balance"
[codex:1059560] );
[codex:1059560] Vault.VaultState memory state = vaultState;
[codex:1059560] uint256 currentRound = state.round;
[codex:1059560]
[codex:1059560] uint256 newPricePerShare = ShareMath.pricePerShare(
[codex:1059560] totalSupply() - state.queuedWithdrawShares,
[codex:1059560]
[codex:1059560] thinking
[codex:1059560] **Requesting remaining Vault.sol code**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "sed -n '2400,2600p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-2n1o5f24 succeeded in 7ms:
[codex:1059560]
[codex:1059560] /*
[codex:1059560] * @title Vault
[codex:1059560] * @dev Vault Data Type library for Stream Vaults
[codex:1059560] */
[codex:1059560] library Vault {
[codex:1059560] struct VaultParams {
[codex:1059560] // Token decimals for vault shares
[codex:1059560] uint8 decimals;
[codex:1059560] // Asset used in Stream Vault
[codex:1059560] address asset;
[codex:1059560] // Minimum supply of the vault shares issued, for ETH it's 10**10
[codex:1059560] uint56 minimumSupply;
[codex:1059560] // Vault cap
[codex:1059560] uint104 cap;
[codex:1059560] }
[codex:1059560]
[codex:1059560] struct VaultState {
[codex:1059560] // 32 byte slot 1
[codex:1059560] // Current round number. `round` represents the number of `period`s elapsed.
[codex:1059560]
[codex:1059560]
[codex:1059560]
[codex:1059560]
[codex:1059560]
[codex:1059560] thinking
[codex:1059560] **Evaluating StreamVault contract risks**
[codex:1059560]
[codex:1059560] I'm carefully reviewing StreamVault's code to spot vulnerabilities like reentrancy, access control issues, and oracle manipulation. I'm paying special attention to how the keeper’s privileged role and the currentBalance parameter could allow asset misappropriation, how state updates interact with external calls, and potential effects from owner-controlled parameters. There’s a lot to unpack around minting shares, price calculations, and withdrawal logic, so I’m analyzing each pattern to understand possible exploit scenarios.
[codex:1059560] thinking
[codex:1059560] **Examining arithmetic and state consistency concerns**
[codex:1059560]
[codex:1059560] I'm diving deeper into potential underflow risks and edge cases in rollToNextRound and redemption logic, especially around queued withdrawal amounts versus vault balances. I’m also considering the impact of unupdated depositReceipt rounds after redemption and how keeper-controlled currentBalance can skew pricing to the keeper’s advantage, alongside subtle rounding and decimal configuration issues that might introduce operational risks.
[codex:1059560] thinking
[codex:1059560] **Detailing oracle manipulation and token behavior risks**
[codex:1059560]
[codex:1059560] There is a significant risk that the keeper’s unchecked `currentBalance` input can manipulate share pricing to dilute existing shareholders or unfairly benefit pending deposits, effectively shifting value. I’m also weighing the impact of fee-on-transfer tokens causing the vault to credit deposits without receiving full amounts, which could disrupt accounting, as well as some nuanced effects from direct ETH transfers and how the vault tracks balances in those scenarios.
[codex:1059560] thinking
[codex:1059560] **Analyzing share accounting and withdrawal mechanics**
[codex:1059560]
[codex:1059560] I’m examining how shares held by the vault—both for pending deposits and queued withdrawals—interact during burn and redeem operations, ensuring no mixing causes incorrect balance reductions. The fungible nature of shares means the vault’s balance pools together both types, but the accounting looks consistent. I’m also reviewing the timing of state updates around withdrawals and transfers to spot any subtle risks like reentrancy or rounding dust, but nothing critical stands out so far.
[codex:1059560] thinking
[codex:1059560] **Examining asset switching and keeper input trust risks**
[codex:1059560]
[codex:1059560] I'm reviewing how changing the vault's asset via `setVaultParams` can break share accounting and enable the owner to redirect withdrawals, effectively risking user funds. Also, I’m considering the trusted keeper’s ability to supply `currentBalance` for price calculations without on-chain verification, which can lead to share price manipulation. These centralized control points represent key risks worth highlighting.
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "nl -ba contracts/src/StreamVault.sol | sed -n '200,360p'" in /tmp/codex-multi-2n1o5f24 succeeded in 9ms:
[codex:1059560] 200 require(vaultParams.asset == WETH, "!WETH");
[codex:1059560] 201 require(msg.value > 0, "!value");
[codex:1059560] 202 require(creditor != address(0), "!creditor");
[codex:1059560] 203
[codex:1059560] 204 _depositFor(msg.value, creditor);
[codex:1059560] 205
[codex:1059560] 206 IWETH(WETH).deposit{value: msg.value}();
[codex:1059560] 207 }
[codex:1059560] 208
[codex:1059560] 209 /**
[codex:1059560] 210 * @notice Manages the deposit receipts for a depositer
[codex:1059560] 211 * @param amount is the amount of `asset` deposited
[codex:1059560] 212 * @param creditor is the address to receieve the deposit
[codex:1059560] 213 */
[codex:1059560] 214 function _depositFor(uint256 amount, address creditor) private {
[codex:1059560] 215 uint256 currentRound = vaultState.round;
[codex:1059560] 216 uint256 totalWithDepositedAmount = totalBalance() + amount;
[codex:1059560] 217
[codex:1059560] 218 require(totalWithDepositedAmount <= vaultParams.cap, "Exceed cap");
[codex:1059560] 219 require(
[codex:1059560]
[codex:1059560] thinking
[codex:1059560] **Reviewing functions rollToNextRound and setVaultParams**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "nl -ba contracts/src/StreamVault.sol | sed -n '420,560p'" in /tmp/codex-multi-2n1o5f24 succeeded in 8ms:
[codex:1059560] 420 * @param numShares is the number of shares to redeem
[codex:1059560] 421 */
[codex:1059560] 422 function redeem(uint256 numShares) external nonReentrant {
[codex:1059560] 423 require(numShares > 0, "!numShares");
[codex:1059560] 424 _redeem(numShares, false);
[codex:1059560] 425 }
[codex:1059560] 426
[codex:1059560] 427 /**
[codex:1059560] 428 * @notice Redeems the entire unredeemedShares balance that is owed to the account
[codex:1059560] 429 */
[codex:1059560] 430 function maxRedeem() external nonReentrant {
[codex:1059560] 431 _redeem(0, true);
[codex:1059560] 432 }
[codex:1059560] 433
[codex:1059560] 434 /**
[codex:1059560] 435 * @notice Redeems shares that are owed to the account
[codex:1059560] 436 * @param numShares is the number of shares to redeem, could be 0 when isMax=true
[codex:1059560] 437 * @param isMax is flag for when callers do a max redemption
[codex:1059560] 438 */
[codex:1059560] 439 function _redeem(uint256 numShares, bool isMax) internal {
[codex:1059560]
[codex:1059560] thinking
[codex:1059560] **Searching for SetVaultParams usage**
[codex:1059560] exec
[codex:1059560] /bin/bash -lc "nl -ba contracts/src/StreamVault.sol | sed -n '600,760p'" in /tmp/codex-multi-2n1o5f24 succeeded in 6ms:
[codex:1059560] 600 function setCap(uint256 newCap) external onlyOwner {
[codex:1059560] 601 require(newCap > 0, "!newCap");
[codex:1059560] 602 ShareMath.assertUint104(newCap);
[codex:1059560] 603 emit CapSet(vaultParams.cap, newCap);
[codex:1059560] 604 vaultParams.cap = uint104(newCap);
[codex:1059560] 605 }
[codex:1059560] 606
[codex:1059560] 607 /**
[codex:1059560] 608 * @notice Sets the new vault parameters
[codex:1059560] 609 */
[codex:1059560] 610 function setVaultParams(Vault.VaultParams memory newVaultParams) external onlyOwner {
[codex:1059560] 611 require(newVaultParams.cap > 0, "!newCap");
[codex:1059560] 612 require(newVaultParams.asset != address(0), "!newAsset");
[codex:1059560] 613 vaultParams = newVaultParams;
[codex:1059560] 614 }
[codex:1059560] 615
[codex:1059560] 616 /************************************************
[codex:1059560] 617 * GETTERS
[codex:1059560] 618 ***********************************************/
[codex:1059560] 619
[codex:1059560]
[codex:1059560] thinking
[codex:1059560] **Summarizing vulnerability findings**
[codex:1059560] codex
[codex:1059560] {"no_findings":false,"summary":"Identified 2 issues: keeper-controlled balance reporting can manipulate share pricing/withdrawals, and owner can change vault parameters (asset/decimals) mid-flight, breaking accounting.","findings":[{"severity":"high","category":"oracle","title":"Keeper-controlled currentBalance can arbitrarily skew pricePerShare and queued withdrawals","exploit_scenario":"A malicious or compromised keeper deposits before a round roll, then calls rollToNextRound with an artificially low currentBalance. This drives newPricePerShare down, mints excessive shares for their pending deposit, and reduces queuedWithdrawAmount. The vault then transfers a larger on-chain balance to the keeper, while queued withdrawers are underfunded. The keeper later redeems inflated shares to extract value from other holders.","recommendation":"Derive currentBalance from on-chain data or a strategy contract with verifiable accounting (e.g., report-and-verify pattern), add bounds/consistency checks against observed balances, and/or gate rollToNextRound behind a timelock or multisig with monitored reporting.","evidence":"rollToNextRound accepts a caller-supplied currentBalance and uses it directly in pricePerShare and queuedWithdrawAmount calculations, then transfers balance minus queuedWithdrawAmount to the keeper.","locations":["contracts/src/StreamVault.sol:489","contracts/src/StreamVault.sol:499","contracts/src/StreamVault.sol:519","contracts/src/StreamVault.sol:544"]},{"severity":"medium","category":"access_control","title":"Owner can change vault asset/decimals mid-flight, breaking accounting and withdrawals","exploit_scenario":"The owner calls setVaultParams to switch the asset or decimals while shares and pending deposits exist. Subsequent rolls/redemptions calculate shares against the new asset/decimals, potentially paying users in the wrong token or making withdrawals revert. The original asset can be stranded or later swept by toggling the asset back and rolling, effectively enabling a rug if the owner is malicious or compromised.","recommendation":"Make asset/decimals immutable after deployment, or restrict parameter changes to times when totalSupply, totalPending, and queuedWithdrawShares are zero; consider timelocks and explicit migration flows for any parameter changes.","evidence":"setVaultParams overwrites vaultParams with only minimal checks (non-zero cap/asset), allowing asset/decimals changes at any time.","locations":["contracts/src/StreamVault.sol:610","contracts/src/StreamVault.sol:613"]}]}
[codex:1059560] tokens used
[codex:1059560] 55,401
[codex:1059560] {"no_findings":false,"summary":"Identified 2 issues: keeper-controlled balance reporting can manipulate share pricing/withdrawals, and owner can change vault parameters (asset/decimals) mid-flight, breaking accounting.","findings":[{"severity":"high","category":"oracle","title":"Keeper-controlled currentBalance can arbitrarily skew pricePerShare and queued withdrawals","exploit_scenario":"A malicious or compromised keeper deposits before a round roll, then calls rollToNextRound with an artificially low currentBalance. This drives newPricePerShare down, mints excessive shares for their pending deposit, and reduces queuedWithdrawAmount. The vault then transfers a larger on-chain balance to the keeper, while queued withdrawers are underfunded. The keeper later redeems inflated shares to extract value from other holders.","recommendation":"Derive currentBalance from on-chain data or a strategy contract with verifiable accounting (e.g., report-and-verify pattern), add bounds/consistency checks against observed balances, and/or gate rollToNextRound behind a timelock or multisig with monitored reporting.","evidence":"rollToNextRound accepts a caller-supplied currentBalance and uses it directly in pricePerShare and queuedWithdrawAmount calculations, then transfers balance minus queuedWithdrawAmount to the keeper.","locations":["contracts/src/StreamVault.sol:489","contracts/src/StreamVault.sol:499","contracts/src/StreamVault.sol:519","contracts/src/StreamVault.sol:544"]},{"severity":"medium","category":"access_control","title":"Owner can change vault asset/decimals mid-flight, breaking accounting and withdrawals","exploit_scenario":"The owner calls setVaultParams to switch the asset or decimals while shares and pending deposits exist. Subsequent rolls/redemptions calculate shares against the new asset/decimals, potentially paying users in the wrong token or making withdrawals revert. The original asset can be stranded or later swept by toggling the asset back and rolling, effectively enabling a rug if the owner is malicious or compromised.","recommendation":"Make asset/decimals immutable after deployment, or restrict parameter changes to times when totalSupply, totalPending, and queuedWithdrawShares are zero; consider timelocks and explicit migration flows for any parameter changes.","evidence":"setVaultParams overwrites vaultParams with only minimal checks (non-zero cap/asset), allowing asset/decimals changes at any time.","locations":["contracts/src/StreamVault.sol:610","contracts/src/StreamVault.sol:613"]}]}
{
"codex": {
"ran_at": "2025-12-29T16:16:29.267239+00:00",
"returncode": 0
},
"summary": "Identified 2 issues: keeper-controlled balance reporting can manipulate share pricing/withdrawals, and owner can change vault parameters (asset/decimals) mid-flight, breaking accounting.",
"raw_final": {
"summary": "Identified 2 issues: keeper-controlled balance reporting can manipulate share pricing/withdrawals, and owner can change vault parameters (asset/decimals) mid-flight, breaking accounting.",
"findings": [
{
"title": "Keeper-controlled currentBalance can arbitrarily skew pricePerShare and queued withdrawals",
"category": "oracle",
"evidence": "rollToNextRound accepts a caller-supplied currentBalance and uses it directly in pricePerShare and queuedWithdrawAmount calculations, then transfers balance minus queuedWithdrawAmount to the keeper.",
"severity": "high",
"locations": [
"contracts/src/StreamVault.sol:489",
"contracts/src/StreamVault.sol:499",
"contracts/src/StreamVault.sol:519",
"contracts/src/StreamVault.sol:544"
],
"recommendation": "Derive currentBalance from on-chain data or a strategy contract with verifiable accounting (e.g., report-and-verify pattern), add bounds/consistency checks against observed balances, and/or gate rollToNextRound behind a timelock or multisig with monitored reporting.",
"exploit_scenario": "A malicious or compromised keeper deposits before a round roll, then calls rollToNextRound with an artificially low currentBalance. This drives newPricePerShare down, mints excessive shares for their pending deposit, and reduces queuedWithdrawAmount. The vault then transfers a larger on-chain balance to the keeper, while queued withdrawers are underfunded. The keeper later redeems inflated shares to extract value from other holders."
},
{
"title": "Owner can change vault asset/decimals mid-flight, breaking accounting and withdrawals",
"category": "access_control",
"evidence": "setVaultParams overwrites vaultParams with only minimal checks (non-zero cap/asset), allowing asset/decimals changes at any time.",
"severity": "medium",
"locations": [
"contracts/src/StreamVault.sol:610",
"contracts/src/StreamVault.sol:613"
],
"recommendation": "Make asset/decimals immutable after deployment, or restrict parameter changes to times when totalSupply, totalPending, and queuedWithdrawShares are zero; consider timelocks and explicit migration flows for any parameter changes.",
"exploit_scenario": "The owner calls setVaultParams to switch the asset or decimals while shares and pending deposits exist. Subsequent rolls/redemptions calculate shares against the new asset/decimals, potentially paying users in the wrong token or making withdrawals revert. The original asset can be stranded or later swept by toggling the asset back and rolling, effectively enabling a rug if the owner is malicious or compromised."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x02cd 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x7cb64759 00000019: GT 0000001a: PUSH2 0x0175 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xc0ce93f1 00000024: GT 00000025: PUSH2 0x00dc 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xeae1f265 0000002f: GT 00000030: PUSH2 0x0095 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xf6203e35 0000003a: GT 0000003b: PUSH2 0x006f 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xf6203e35 00000045: EQ 00000046: PUSH2 0x0a40 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf6326fb3 00000050: EQ 00000051: PUSH2 0x0a53 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf656ba51 0000005b: EQ 0000005c: PUSH2 0x0a5b 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xf756fa21 00000066: EQ 00000067: PUSH2 0x0a90 0000006a: JUMPI 0000006b: PUSH1 0x00 0000006d: DUP1 0000006e: REVERT 0000006f: JUMPDEST 00000070: DUP1 00000071: PUSH4 0xeae1f265 00000076: EQ 00000077: PUSH2 0x09ed 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xf0b2c7e6 00000081: EQ 00000082: PUSH2 0x0a00 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xf2fde38b 0000008c: EQ 0000008d: PUSH2 0x0a20 00000090: JUMPI 00000091: PUSH1 0x00 00000093: DUP1 00000094: REVERT 00000095: JUMPDEST 00000096: DUP1 00000097: PUSH4 0xc0ce93f1 0000009c: EQ 0000009d: PUSH2 0x0906 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xce7c2ac2 000000a7: EQ 000000a8: PUSH2 0x0926 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xd164cc15 000000b2: EQ 000000b3: PUSH2 0x0946 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0xdb006a75 000000bd: EQ 000000be: PUSH2 0x0966 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0xdc9a1535 000000c8: EQ 000000c9: PUSH2 0x0986 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0xdd62ed3e 000000d3: EQ 000000d4: PUSH2 0x09a7 000000d7: JUMPI 000000d8: PUSH1 0x00 000000da: DUP1 000000db: REVERT 000000dc: JUMPDEST 000000dd: DUP1 000000de: PUSH4 0x9fcc2d75 000000e3: GT 000000e4: PUSH2 0x012e 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x9fcc2d75 000000ee: EQ 000000ef: PUSH2 0x07d2 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0xa9059cbb 000000f9: EQ 000000fa: PUSH2 0x085d 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0xaced1661 00000104: EQ 00000105: PUSH2 0x087d 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0xad5c4648 0000010f: EQ 00000110: PUSH2 0x089d 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0xad7a672f 0000011a: EQ 0000011b: PUSH2 0x08d1 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0xb6b55f25 00000125: EQ 00000126: PUSH2 0x08e6 00000129: JUMPI 0000012a: PUSH1 0x00 0000012c: DUP1 0000012d: REVERT 0000012e: JUMPDEST 0000012f: DUP1 00000130: PUSH4 0x7cb64759 00000135: EQ 00000136: PUSH2 0x0709 00000139: JUMPI 0000013a: DUP1 0000013b: PUSH4 0x7e108d52 00000140: EQ 00000141: PUSH2 0x0729 00000144: JUMPI 00000145: DUP1 00000146: PUSH4 0x87153eb1 0000014b: EQ 0000014c: PUSH2 0x0749 0000014f: JUMPI 00000150: DUP1 00000151: PUSH4 0x8da5cb5b 00000156: EQ 00000157: PUSH2 0x0776 0000015a: JUMPI 0000015b: DUP1 0000015c: PUSH4 0x95d89b41 00000161: EQ 00000162: PUSH2 0x07a8 00000165: JUMPI 00000166: DUP1 00000167: PUSH4 0x99530b06 0000016c: EQ 0000016d: PUSH2 0x07bd 00000170: JUMPI 00000171: PUSH1 0x00 00000173: DUP1 00000174: REVERT 00000175: JUMPDEST 00000176: DUP1 00000177: PUSH4 0x38bca726 0000017c: GT 0000017d: PUSH2 0x0234 00000180: JUMPI 00000181: DUP1 00000182: PUSH4 0x503c70aa 00000187: GT 00000188: PUSH2 0x01ed 0000018b: JUMPI 0000018c: DUP1 0000018d: PUSH4 0x6f31ab34 00000192: GT 00000193: PUSH2 0x01c7 00000196: JUMPI 00000197: DUP1 00000198: PUSH4 0x6f31ab34 0000019d: EQ 0000019e: PUSH2 0x0645 000001a1: JUMPI 000001a2: DUP1 000001a3: PUSH4 0x70a08231 000001a8: EQ 000001a9: PUSH2 0x065a 000001ac: JUMPI 000001ad: DUP1 000001ae: PUSH4 0x715018a6 000001b3: EQ 000001b4: PUSH2 0x0690 000001b7: JUMPI 000001b8: DUP1 000001b9: PUSH4 0x7a9262a2 000001be: EQ 000001bf: PUSH2 0x06a5 000001c2: JUMPI 000001c3: PUSH1 0x00 000001c5: DUP1 000001c6: REVERT 000001c7: JUMPDEST 000001c8: DUP1 000001c9: PUSH4 0x503c70aa 000001ce: EQ 000001cf: PUSH2 0x058b 000001d2: JUMPI 000001d3: DUP1 000001d4: PUSH4 0x5cbcec4e 000001d9: EQ 000001da: PUSH2 0x05a1 000001dd: JUMPI 000001de: DUP1 000001df: PUSH4 0x6719b2ee 000001e4: EQ 000001e5: PUSH2 0x05c1 000001e8: JUMPI 000001e9: PUSH1 0x00 000001eb: DUP1 000001ec: REVERT 000001ed: JUMPDEST 000001ee: DUP1 000001ef: PUSH4 0x38bca726 000001f4: EQ 000001f5: PUSH2 0x04d7 000001f8: JUMPI 000001f9: DUP1 000001fa: PUSH4 0x3aa03f17 000001ff: EQ 00000200: PUSH2 0x04f7 00000203: JUMPI 00000204: DUP1 00000205: PUSH4 0x3f23bb73 0000020a: EQ 0000020b: PUSH2 0x0517 0000020e: JUMPI 0000020f: DUP1 00000210: PUSH4 0x3f90916a 00000215: EQ 00000216: PUSH2 0x0537 00000219: JUMPI 0000021a: DUP1 0000021b: PUSH4 0x47786d37 00000220: EQ 00000221: PUSH2 0x0555 00000224: JUMPI 00000225: DUP1 00000226: PUSH4 0x4b2431d9 0000022b: EQ 0000022c: PUSH2 0x0575 0000022f: JUMPI 00000230: PUSH1 0x00 00000232: DUP1 00000233: REVERT 00000234: JUMPDEST 00000235: DUP1 00000236: PUSH4 0x2775d01c 0000023b: GT 0000023c: PUSH2 0x0286 0000023f: JUMPI 00000240: DUP1 00000241: PUSH4 0x2775d01c 00000246: EQ 00000247: PUSH2 0x041f 0000024a: JUMPI 0000024b: DUP1 0000024c: PUSH4 0x2eb4a7ab 00000251: EQ 00000252: PUSH2 0x0441 00000255: JUMPI 00000256: DUP1 00000257: PUSH4 0x313ce567 0000025c: EQ 0000025d: PUSH2 0x0457 00000260: JUMPI 00000261: DUP1 00000262: PUSH4 0x3340d73c 00000267: EQ 00000268: PUSH2 0x0479 0000026b: JUMPI 0000026c: DUP1 0000026d: PUSH4 0x355274ea 00000272: EQ 00000273: PUSH2 0x0499 00000276: JUMPI 00000277: DUP1 00000278: PUSH4 0x36efd16f 0000027d: EQ 0000027e: PUSH2 0x04b7 00000281: JUMPI 00000282: PUSH1 0x00 00000284: DUP1 00000285: REVERT 00000286: JUMPDEST 00000287: DUP1 00000288: PUSH4 0x06fdde03 0000028d: EQ 0000028e: PUSH2 0x02d9 00000291: JUMPI 00000292: DUP1 00000293: PUSH4 0x095ea7b3 00000298: EQ 00000299: PUSH2 0x0304 0000029c: JUMPI 0000029d: DUP1 0000029e: PUSH4 0x146ca531 000002a3: EQ 000002a4: PUSH2 0x0334 000002a7: JUMPI 000002a8: DUP1 000002a9: PUSH4 0x18160ddd 000002ae: EQ 000002af: PUSH2 0x0357 000002b2: JUMPI 000002b3: DUP1 000002b4: PUSH4 0x23b872dd 000002b9: EQ 000002ba: PUSH2 0x036c 000002bd: JUMPI 000002be: DUP1 000002bf: PUSH4 0x2728f333 000002c4: EQ 000002c5: PUSH2 0x038c 000002c8: JUMPI 000002c9: PUSH1 0x00 000002cb: DUP1 000002cc: REVERT 000002cd: JUMPDEST 000002ce: CALLDATASIZE 000002cf: PUSH2 0x02d4 000002d2: JUMPI 000002d3: STOP 000002d4: JUMPDEST 000002d5: PUSH1 0x00 000002d7: DUP1 000002d8: REVERT 000002d9: JUMPDEST 000002da: CALLVALUE 000002db: DUP1 000002dc: ISZERO 000002dd: PUSH2 0x02e5 000002e0: JUMPI 000002e1: PUSH1 0x00 000002e3: DUP1 000002e4: REVERT 000002e5: JUMPDEST 000002e6: POP 000002e7: PUSH2 0x02ee 000002ea: PUSH2 0x0aa5 000002ed: JUMP 000002ee: JUMPDEST 000002ef: PUSH1 0x40 000002f1: MLOAD 000002f2: PUSH2 0x02fb 000002f5: SWAP2 000002f6: SWAP1 000002f7: PUSH2 0x2e78 000002fa: JUMP 000002fb: JUMPDEST 000002fc: PUSH1 0x40 000002fe: MLOAD 000002ff: DUP1 00000300: SWAP2 00000301: SUB 00000302: SWAP1 00000303: RETURN 00000304: JUMPDEST 00000305: CALLVALUE 00000306: DUP1 00000307: ISZERO 00000308: PUSH2 0x0310 0000030b: JUMPI 0000030c: PUSH1 0x00 0000030e: DUP1 0000030f: REVERT 00000310: JUMPDEST 00000311: POP 00000312: PUSH2 0x0324 00000315: PUSH2 0x031f 00000318: CALLDATASIZE 00000319: PUSH1 0x04 0000031b: PUSH2 0x2ec7 0000031e: JUMP 0000031f: JUMPDEST 00000320: PUSH2 0x0b37 00000323: JUMP 00000324: JUMPDEST 00000325: PUSH1 0x40 00000327: MLOAD 00000328: SWAP1 00000329: ISZERO 0000032a: ISZERO 0000032b: DUP2 0000032c: MSTORE 0000032d: PUSH1 0x20 0000032f: ADD 00000330: PUSH2 0x02fb 00000333: JUMP 00000334: JUMPDEST 00000335: CALLVALUE 00000336: DUP1 00000337: ISZERO 00000338: PUSH2 0x0340 0000033b: JUMPI 0000033c: PUSH1 0x00 0000033e: DUP1 0000033f: REVERT 00000340: JUMPDEST 00000341: POP 00000342: PUSH1 0x0c 00000344: SLOAD 00000345: PUSH2 0xffff 00000348: AND 00000349: JUMPDEST 0000034a: PUSH1 0x40 0000034c: MLOAD 0000034d: SWAP1 0000034e: DUP2 0000034f: MSTORE 00000350: PUSH1 0x20 00000352: ADD 00000353: PUSH2 0x02fb 00000356: JUMP 00000357: JUMPDEST 00000358: CALLVALUE 00000359: DUP1 0000035a: ISZERO 0000035b: PUSH2 0x0363 0000035e: JUMPI 0000035f: PUSH1 0x00 00000361: DUP1 00000362: REVERT 00000363: JUMPDEST 00000364: POP 00000365: PUSH1 0x03 00000367: SLOAD 00000368: PUSH2 0x0349 0000036b: JUMP 0000036c: JUMPDEST 0000036d: CALLVALUE 0000036e: DUP1 0000036f: ISZERO 00000370: PUSH2 0x0378 00000373: JUMPI 00000374: PUSH1 0x00 00000376: DUP1 00000377: REVERT 00000378: JUMPDEST 00000379: POP 0000037a: PUSH2 0x0324 0000037d: PUSH2 0x0387 00000380: CALLDATASIZE 00000381: PUSH1 0x04 00000383: PUSH2 0x2ef1 00000386: JUMP 00000387: JUMPDEST 00000388: PUSH2 0x0b51 0000038b: JUMP 0000038c: JUMPDEST 0000038d: CALLVALUE 0000038e: DUP1 0000038f: ISZERO 00000390: PUSH2 0x0398 00000393: JUMPI 00000394: PUSH1 0x00 00000396: DUP1 00000397: REVERT 00000398: JUMPDEST 00000399: POP 0000039a: PUSH1 0x0c 0000039c: SLOAD 0000039d: PUSH1 0x0d 0000039f: SLOAD 000003a0: PUSH2 0x03da 000003a3: SWAP2 000003a4: PUSH2 0xffff 000003a7: DUP2 000003a8: AND 000003a9: SWAP2 000003aa: PUSH1 0x01 000003ac: PUSH1 0x01 000003ae: PUSH1 0x68 000003b0: SHL 000003b1: SUB 000003b2: PUSH3 0x010000 000003b6: DUP4 000003b7: DIV 000003b8: DUP2 000003b9: AND 000003ba: SWAP3 000003bb: PUSH1 0x01 000003bd: PUSH1 0x78 000003bf: SHL 000003c0: SWAP1 000003c1: DIV 000003c2: AND 000003c3: SWAP1 000003c4: PUSH1 0x01 000003c6: PUSH1 0x01 000003c8: PUSH1 0x80 000003ca: SHL 000003cb: SUB 000003cc: DUP1 000003cd: DUP3 000003ce: AND 000003cf: SWAP2 000003d0: PUSH1 0x01 000003d2: PUSH1 0x80 000003d4: SHL 000003d5: SWAP1 000003d6: DIV 000003d7: AND 000003d8: DUP6 000003d9: JUMP 000003da: JUMPDEST 000003db: PUSH1 0x40 000003dd: DUP1 000003de: MLOAD 000003df: PUSH2 0xffff 000003e2: SWAP1 000003e3: SWAP7 000003e4: AND 000003e5: DUP7 000003e6: MSTORE 000003e7: PUSH1 0x01 000003e9: PUSH1 0x01 000003eb: PUSH1 0x68 000003ed: SHL 000003ee: SUB 000003ef: SWAP5 000003f0: DUP6 000003f1: AND 000003f2: PUSH1 0x20 000003f4: DUP8 000003f5: ADD 000003f6: MSTORE 000003f7: SWAP4 000003f8: SWAP1 000003f9: SWAP3 000003fa: AND 000003fb: SWAP3 000003fc: DUP5 000003fd: ADD 000003fe: SWAP3 000003ff: SWAP1 00000400: SWAP3 00000401: MSTORE 00000402: PUSH1 0x01 00000404: PUSH1 0x01 00000406: PUSH1 0x80 00000408: SHL 00000409: SUB 0000040a: SWAP2 0000040b: DUP3 0000040c: AND 0000040d: PUSH1 0x60 0000040f: DUP5 00000410: ADD 00000411: MSTORE 00000412: AND 00000413: PUSH1 0x80 00000415: DUP3 00000416: ADD 00000417: MSTORE 00000418: PUSH1 0xa0 0000041a: ADD 0000041b: PUSH2 0x02fb 0000041e: JUMP 0000041f: JUMPDEST 00000420: CALLVALUE 00000421: DUP1 00000422: ISZERO 00000423: PUSH2 0x042b 00000426: JUMPI 00000427: PUSH1 0x00 00000429: DUP1 0000042a: REVERT 0000042b: JUMPDEST 0000042c: POP 0000042d: PUSH2 0x043f 00000430: PUSH2 0x043a 00000433: CALLDATASIZE 00000434: PUSH1 0x04 00000436: PUSH2 0x2f2d 00000439: JUMP 0000043a: JUMPDEST 0000043b: PUSH2 0x0b77 0000043e: JUMP 0000043f: JUMPDEST 00000440: STOP 00000441: JUMPDEST 00000442: CALLVALUE 00000443: DUP1 00000444: ISZERO 00000445: PUSH2 0x044d 00000448: JUMPI 00000449: PUSH1 0x00 0000044b: DUP1 0000044c: REVERT 0000044d: JUMPDEST 0000044e: POP 0000044f: PUSH2 0x0349 00000452: PUSH1 0x11 00000454: SLOAD 00000455: DUP2 00000456: JUMP 00000457: JUMPDEST 00000458: CALLVALUE 00000459: DUP1 0000045a: ISZERO 0000045b: PUSH2 0x0463 0000045e: JUMPI 0000045f: PUSH1 0x00 00000461: DUP1 00000462: REVERT 00000463: JUMPDEST 00000464: POP 00000465: PUSH1 0x0a 00000467: SLOAD 00000468: PUSH1 0x40 0000046a: MLOAD 0000046b: PUSH1 0xff 0000046d: SWAP1 0000046e: SWAP2 0000046f: AND 00000470: DUP2 00000471: MSTORE 00000472: PUSH1 0x20 00000474: ADD 00000475: PUSH2 0x02fb 00000478: JUMP 00000479: JUMPDEST 0000047a: CALLVALUE 0000047b: DUP1 0000047c: ISZERO 0000047d: PUSH2 0x0485 00000480: JUMPI 00000481: PUSH1 0x00 00000483: DUP1 00000484: REVERT 00000485: JUMPDEST 00000486: POP 00000487: PUSH2 0x043f 0000048a: PUSH2 0x0494 0000048d: CALLDATASIZE 0000048e: PUSH1 0x04 00000490: PUSH2 0x2ff7 00000493: JUMP 00000494: JUMPDEST 00000495: PUSH2 0x0d0a 00000498: JUMP 00000499: JUMPDEST 0000049a: CALLVALUE 0000049b: DUP1 0000049c: ISZERO 0000049d: PUSH2 0x04a5 000004a0: JUMPI 000004a1: PUSH1 0x00 000004a3: DUP1 000004a4: REVERT 000004a5: JUMPDEST 000004a6: POP 000004a7: PUSH1 0x0b 000004a9: SLOAD 000004aa: PUSH1 0x01 000004ac: PUSH1 0x01 000004ae: PUSH1 0x68 000004b0: SHL 000004b1: SUB 000004b2: AND 000004b3: PUSH2 0x0349 000004b6: JUMP 000004b7: JUMPDEST 000004b8: CALLVALUE 000004b9: DUP1 000004ba: ISZERO 000004bb: PUSH2 0x04c3 000004be: JUMPI 000004bf: PUSH1 0x00 000004c1: DUP1 000004c2: REVERT 000004c3: JUMPDEST 000004c4: POP 000004c5: PUSH2 0x043f 000004c8: PUSH2 0x04d2 000004cb: CALLDATASIZE 000004cc: PUSH1 0x04 000004ce: PUSH2 0x303e 000004d1: JUMP 000004d2: JUMPDEST 000004d3: PUSH2 0x0dfc 000004d6: JUMP 000004d7: JUMPDEST 000004d8: CALLVALUE 000004d9: DUP1 000004da: ISZERO 000004db: PUSH2 0x04e3 000004de: JUMPI 000004df: PUSH1 0x00 000004e1: DUP1 000004e2: REVERT 000004e3: JUMPDEST 000004e4: POP 000004e5: PUSH2 0x043f 000004e8: PUSH2 0x04f2 000004eb: CALLDATASIZE 000004ec: PUSH1 0x04 000004ee: PUSH2 0x2f2d 000004f1: JUMP 000004f2: JUMPDEST 000004f3: PUSH2 0x0e99 000004f6: JUMP 000004f7: JUMPDEST 000004f8: CALLVALUE 000004f9: DUP1 000004fa: ISZERO 000004fb: PUSH2 0x0503 000004fe: JUMPI 000004ff: PUSH1 0x00 00000501: DUP1 00000502: REVERT 00000503: JUMPDEST 00000504: POP 00000505: PUSH2 0x0349 00000508: PUSH2 0x0512 0000050b: CALLDATASIZE 0000050c: PUSH1 0x04 0000050e: PUSH2 0x2f2d 00000511: JUMP 00000512: JUMPDEST 00000513: PUSH2 0x11ec 00000516: JUMP 00000517: JUMPDEST 00000518: CALLVALUE 00000519: DUP1 0000051a: ISZERO 0000051b: PUSH2 0x0523 0000051e: JUMPI 0000051f: PUSH1 0x00 00000521: DUP1 00000522: REVERT 00000523: JUMPDEST 00000524: POP 00000525: PUSH2 0x0349 00000528: PUSH2 0x0532 0000052b: CALLDATASIZE 0000052c: PUSH1 0x04 0000052e: PUSH2 0x306a 00000531: JUMP 00000532: JUMPDEST 00000533: PUSH2 0x12ba 00000536: JUMP 00000537: JUMPDEST 00000538: CALLVALUE 00000539: DUP1 0000053a: ISZERO 0000053b: PUSH2 0x0543 0000053e: JUMPI 0000053f: PUSH1 0x00 00000541: DUP1 00000542: REVERT 00000543: JUMPDEST 00000544: POP 00000545: PUSH1 0x0d 00000547: SLOAD 00000548: PUSH1 0x01 0000054a: PUSH1 0x01 0000054c: PUSH1 0x80 0000054e: SHL 0000054f: SUB 00000550: AND 00000551: PUSH2 0x0349 00000554: JUMP 00000555: JUMPDEST 00000556: CALLVALUE 00000557: DUP1 00000558: ISZERO 00000559: PUSH2 0x0561 0000055c: JUMPI 0000055d: PUSH1 0x00 0000055f: DUP1 00000560: REVERT 00000561: JUMPDEST 00000562: POP 00000563: PUSH2 0x043f 00000566: PUSH2 0x0570 00000569: CALLDATASIZE 0000056a: PUSH1 0x04 0000056c: PUSH2 0x2f2d 0000056f: JUMP 00000570: JUMPDEST 00000571: PUSH2 0x12ff 00000574: JUMP 00000575: JUMPDEST 00000576: CALLVALUE 00000577: DUP1 00000578: ISZERO 00000579: PUSH2 0x0581 0000057c: JUMPI 0000057d: PUSH1 0x00 0000057f: DUP1 00000580: REVERT 00000581: JUMPDEST 00000582: POP 00000583: PUSH2 0x0349 00000586: PUSH1 0x0f 00000588: SLOAD 00000589: DUP2 0000058a: JUMP 0000058b: JUMPDEST 0000058c: CALLVALUE 0000058d: DUP1 0000058e: ISZERO 0000058f: PUSH2 0x0597 00000592: JUMPI 00000593: PUSH1 0x00 00000595: DUP1 00000596: REVERT 00000597: JUMPDEST 00000598: POP 00000599: PUSH2 0x0349 0000059c: PUSH1 0x0e 0000059e: SLOAD 0000059f: DUP2 000005a0: JUMP 000005a1: JUMPDEST 000005a2: CALLVALUE 000005a3: DUP1 000005a4: ISZERO 000005a5: PUSH2 0x05ad 000005a8: JUMPI 000005a9: PUSH1 0x00 000005ab: DUP1 000005ac: REVERT 000005ad: JUMPDEST 000005ae: POP 000005af: PUSH2 0x043f 000005b2: PUSH2 0x05bc 000005b5: CALLDATASIZE 000005b6: PUSH1 0x04 000005b8: PUSH2 0x3093 000005bb: JUMP 000005bc: JUMPDEST 000005bd: PUSH2 0x13b8 000005c0: JUMP 000005c1: JUMPDEST 000005c2: CALLVALUE 000005c3: DUP1 000005c4: ISZERO 000005c5: PUSH2 0x05cd 000005c8: JUMPI 000005c9: PUSH1 0x00 000005cb: DUP1 000005cc: REVERT 000005cd: JUMPDEST 000005ce: POP 000005cf: PUSH2 0x0614 000005d2: PUSH2 0x05dc 000005d5: CALLDATASIZE 000005d6: PUSH1 0x04 000005d8: PUSH2 0x306a 000005db: JUMP 000005dc: JUMPDEST 000005dd: PUSH1 0x07 000005df: PUSH1 0x20 000005e1: MSTORE 000005e2: PUSH1 0x00 000005e4: SWAP1 000005e5: DUP2 000005e6: MSTORE 000005e7: PUSH1 0x40 000005e9: SWAP1 000005ea: KECCAK256 000005eb: SLOAD 000005ec: PUSH2 0xffff 000005ef: DUP2 000005f0: AND 000005f1: SWAP1 000005f2: PUSH3 0x010000 000005f6: DUP2 000005f7: DIV 000005f8: PUSH1 0x01 000005fa: PUSH1 0x01 000005fc: PUSH1 0x68 000005fe: SHL 000005ff: SUB 00000600: AND 00000601: SWAP1 00000602: PUSH1 0x01 00000604: PUSH1 0x78 00000606: SHL 00000607: SWAP1 00000608: DIV 00000609: PUSH1 0x01 0000060b: PUSH1 0x01 0000060d: PUSH1 0x80 0000060f: SHL 00000610: SUB 00000611: AND 00000612: DUP4 00000613: JUMP 00000614: JUMPDEST 00000615: PUSH1 0x40 00000617: DUP1 00000618: MLOAD 00000619: PUSH2 0xffff 0000061c: SWAP1 0000061d: SWAP5 0000061e: AND 0000061f: DUP5 00000620: MSTORE 00000621: PUSH1 0x01 00000623: PUSH1 0x01 00000625: PUSH1 0x68 00000627: SHL 00000628: SUB 00000629: SWAP1 0000062a: SWAP3 0000062b: AND 0000062c: PUSH1 0x20 0000062e: DUP5 0000062f: ADD 00000630: MSTORE 00000631: PUSH1 0x01 00000633: PUSH1 0x01 00000635: PUSH1 0x80 00000637: SHL 00000638: SUB 00000639: AND 0000063a: SWAP1 0000063b: DUP3 0000063c: ADD 0000063d: MSTORE 0000063e: PUSH1 0x60 00000640: ADD 00000641: PUSH2 0x02fb 00000644: JUMP 00000645: JUMPDEST 00000646: CALLVALUE 00000647: DUP1 00000648: ISZERO 00000649: PUSH2 0x0651 0000064c: JUMPI 0000064d: PUSH1 0x00 0000064f: DUP1 00000650: REVERT 00000651: JUMPDEST 00000652: POP 00000653: PUSH2 0x043f 00000656: PUSH2 0x13de 00000659: JUMP 0000065a: JUMPDEST 0000065b: CALLVALUE 0000065c: DUP1 0000065d: ISZERO 0000065e: PUSH2 0x0666 00000661: JUMPI 00000662: PUSH1 0x00 00000664: DUP1 00000665: REVERT 00000666: JUMPDEST 00000667: POP 00000668: PUSH2 0x0349 0000066b: PUSH2 0x0675 0000066e: CALLDATASIZE 0000066f: PUSH1 0x04 00000671: PUSH2 0x306a 00000674: JUMP 00000675: JUMPDEST 00000676: PUSH1 0x01 00000678: PUSH1 0x01 0000067a: PUSH1 0xa0 0000067c: SHL 0000067d: SUB 0000067e: AND 0000067f: PUSH1 0x00 00000681: SWAP1 00000682: DUP2 00000683: MSTORE 00000684: PUSH1 0x01 00000686: PUSH1 0x20 00000688: MSTORE 00000689: PUSH1 0x40 0000068b: SWAP1 0000068c: KECCAK256 0000068d: SLOAD 0000068e: SWAP1 0000068f: JUMP 00000690: JUMPDEST 00000691: CALLVALUE 00000692: DUP1 00000693: ISZERO 00000694: PUSH2 0x069c 00000697: JUMPI 00000698: PUSH1 0x00 0000069a: DUP1 0000069b: REVERT 0000069c: JUMPDEST 0000069d: POP 0000069e: PUSH2 0x043f 000006a1: PUSH2 0x13fe 000006a4: JUMP 000006a5: JUMPDEST 000006a6: CALLVALUE 000006a7: DUP1 000006a8: ISZERO 000006a9: PUSH2 0x06b1 000006ac: JUMPI 000006ad: PUSH1 0x00 000006af: DUP1 000006b0: REVERT 000006b1: JUMPDEST 000006b2: POP 000006b3: PUSH2 0x06e7 000006b6: PUSH2 0x06c0 000006b9: CALLDATASIZE 000006ba: PUSH1 0x04 000006bc: PUSH2 0x306a 000006bf: JUMP 000006c0: JUMPDEST 000006c1: PUSH1 0x09 000006c3: PUSH1 0x20 000006c5: MSTORE 000006c6: PUSH1 0x00 000006c8: SWAP1 000006c9: DUP2 000006ca: MSTORE 000006cb: PUSH1 0x40 000006cd: SWAP1 000006ce: KECCAK256 000006cf: SLOAD 000006d0: PUSH2 0xffff 000006d3: DUP2 000006d4: AND 000006d5: SWAP1 000006d6: PUSH3 0x010000 000006da: SWAP1 000006db: DIV 000006dc: PUSH1 0x01 000006de: PUSH1 0x01 000006e0: PUSH1 0x80 000006e2: SHL 000006e3: SUB 000006e4: AND 000006e5: DUP3 000006e6: JUMP 000006e7: JUMPDEST 000006e8: PUSH1 0x40 000006ea: DUP1 000006eb: MLOAD 000006ec: PUSH2 0xffff 000006ef: SWAP1 000006f0: SWAP4 000006f1: AND 000006f2: DUP4 000006f3: MSTORE 000006f4: PUSH1 0x01 000006f6: PUSH1 0x01 000006f8: PUSH1 0x80 000006fa: SHL 000006fb: SUB 000006fc: SWAP1 000006fd: SWAP2 000006fe: AND 000006ff: PUSH1 0x20 00000701: DUP4 00000702: ADD 00000703: MSTORE 00000704: ADD 00000705: PUSH2 0x02fb 00000708: JUMP 00000709: JUMPDEST 0000070a: CALLVALUE 0000070b: DUP1 0000070c: ISZERO 0000070d: PUSH2 0x0715 00000710: JUMPI 00000711: PUSH1 0x00 00000713: DUP1 00000714: REVERT 00000715: JUMPDEST 00000716: POP 00000717: PUSH2 0x043f 0000071a: PUSH2 0x0724 0000071d: CALLDATASIZE 0000071e: PUSH1 0x04 00000720: PUSH2 0x2f2d 00000723: JUMP 00000724: JUMPDEST 00000725: PUSH2 0x1410 00000728: JUMP 00000729: JUMPDEST 0000072a: CALLVALUE 0000072b: DUP1 0000072c: ISZERO 0000072d: PUSH2 0x0735 00000730: JUMPI 00000731: PUSH1 0x00 00000733: DUP1 00000734: REVERT 00000735: JUMPDEST 00000736: POP 00000737: PUSH2 0x043f 0000073a: PUSH2 0x0744 0000073d: CALLDATASIZE 0000073e: PUSH1 0x04 00000740: PUSH2 0x2f2d 00000743: JUMP 00000744: JUMPDEST 00000745: PUSH2 0x141d 00000748: JUMP 00000749: JUMPDEST 0000074a: CALLVALUE 0000074b: DUP1 0000074c: ISZERO 0000074d: PUSH2 0x0755 00000750: JUMPI 00000751: PUSH1 0x00 00000753: DUP1 00000754: REVERT 00000755: JUMPDEST 00000756: POP 00000757: PUSH2 0x0349 0000075a: PUSH2 0x0764 0000075d: CALLDATASIZE 0000075e: PUSH1 0x04 00000760: PUSH2 0x2f2d 00000763: JUMP 00000764: JUMPDEST 00000765: PUSH1 0x08 00000767: PUSH1 0x20 00000769: MSTORE 0000076a: PUSH1 0x00 0000076c: SWAP1 0000076d: DUP2 0000076e: MSTORE 0000076f: PUSH1 0x40 00000771: SWAP1 00000772: KECCAK256 00000773: SLOAD 00000774: DUP2 00000775: JUMP 00000776: JUMPDEST 00000777: CALLVALUE 00000778: DUP1 00000779: ISZERO 0000077a: PUSH2 0x0782 0000077d: JUMPI 0000077e: PUSH1 0x00 00000780: DUP1 00000781: REVERT 00000782: JUMPDEST 00000783: POP 00000784: PUSH1 0x06 00000786: SLOAD 00000787: PUSH1 0x01 00000789: PUSH1 0x01 0000078b: PUSH1 0xa0 0000078d: SHL 0000078e: SUB 0000078f: AND 00000790: JUMPDEST 00000791: PUSH1 0x40 00000793: MLOAD 00000794: PUSH1 0x01 00000796: PUSH1 0x01 00000798: PUSH1 0xa0 0000079a: SHL 0000079b: SUB 0000079c: SWAP1 0000079d: SWAP2 0000079e: AND 0000079f: DUP2 000007a0: MSTORE 000007a1: PUSH1 0x20 000007a3: ADD 000007a4: PUSH2 0x02fb 000007a7: JUMP 000007a8: JUMPDEST 000007a9: CALLVALUE 000007aa: DUP1 000007ab: ISZERO 000007ac: PUSH2 0x07b4 000007af: JUMPI 000007b0: PUSH1 0x00 000007b2: DUP1 000007b3: REVERT 000007b4: JUMPDEST 000007b5: POP 000007b6: PUSH2 0x02ee 000007b9: PUSH2 0x1626 000007bc: JUMP 000007bd: JUMPDEST 000007be: CALLVALUE 000007bf: DUP1 000007c0: ISZERO 000007c1: PUSH2 0x07c9 000007c4: JUMPI 000007c5: PUSH1 0x00 000007c7: DUP1 000007c8: REVERT 000007c9: JUMPDEST 000007ca: POP 000007cb: PUSH2 0x0349 000007ce: PUSH2 0x1635 000007d1: JUMP 000007d2: JUMPDEST 000007d3: CALLVALUE 000007d4: DUP1 000007d5: ISZERO 000007d6: PUSH2 0x07de 000007d9: JUMPI 000007da: PUSH1 0x00 000007dc: DUP1 000007dd: REVERT 000007de: JUMPDEST 000007df: POP 000007e0: PUSH1 0x0a 000007e2: SLOAD 000007e3: PUSH1 0x0b 000007e5: SLOAD 000007e6: PUSH2 0x081a 000007e9: SWAP2 000007ea: PUSH1 0xff 000007ec: DUP2 000007ed: AND 000007ee: SWAP2 000007ef: PUSH2 0x0100 000007f2: DUP3 000007f3: DIV 000007f4: PUSH1 0x01 000007f6: PUSH1 0x01 000007f8: PUSH1 0xa0 000007fa: SHL 000007fb: SUB 000007fc: AND 000007fd: SWAP2 000007fe: PUSH1 0x01 00000800: PUSH1 0xa8 00000802: SHL 00000803: SWAP1 00000804: DIV 00000805: PUSH7 0xffffffffffffff 0000080d: AND 0000080e: SWAP1 0000080f: PUSH1 0x01 00000811: PUSH1 0x01 00000813: PUSH1 0x68 00000815: SHL 00000816: SUB 00000817: AND 00000818: DUP5 00000819: JUMP 0000081a: JUMPDEST 0000081b: PUSH1 0x40 0000081d: DUP1 0000081e: MLOAD 0000081f: PUSH1 0xff 00000821: SWAP1 00000822: SWAP6 00000823: AND 00000824: DUP6 00000825: MSTORE 00000826: PUSH1 0x01 00000828: PUSH1 0x01 0000082a: PUSH1 0xa0 0000082c: SHL 0000082d: SUB 0000082e: SWAP1 0000082f: SWAP4 00000830: AND 00000831: PUSH1 0x20 00000833: DUP6 00000834: ADD 00000835: MSTORE 00000836: PUSH7 0xffffffffffffff 0000083e: SWAP1 0000083f: SWAP2 00000840: AND 00000841: SWAP2 00000842: DUP4 00000843: ADD 00000844: SWAP2 00000845: SWAP1 00000846: SWAP2 00000847: MSTORE 00000848: PUSH1 0x01 0000084a: PUSH1 0x01 0000084c: PUSH1 0x68 0000084e: SHL 0000084f: SUB 00000850: AND 00000851: PUSH1 0x60 00000853: DUP3 00000854: ADD 00000855: MSTORE 00000856: PUSH1 0x80 00000858: ADD 00000859: PUSH2 0x02fb 0000085c: JUMP 0000085d: JUMPDEST 0000085e: CALLVALUE 0000085f: DUP1 00000860: ISZERO 00000861: PUSH2 0x0869 00000864: JUMPI 00000865: PUSH1 0x00 00000867: DUP1 00000868: REVERT 00000869: JUMPDEST 0000086a: POP 0000086b: PUSH2 0x0324 0000086e: PUSH2 0x0878 00000871: CALLDATASIZE 00000872: PUSH1 0x04 00000874: PUSH2 0x2ec7 00000877: JUMP 00000878: JUMPDEST 00000879: PUSH2 0x166a 0000087c: JUMP 0000087d: JUMPDEST 0000087e: CALLVALUE 0000087f: DUP1 00000880: ISZERO 00000881: PUSH2 0x0889 00000884: JUMPI 00000885: PUSH1 0x00 00000887: DUP1 00000888: REVERT 00000889: JUMPDEST 0000088a: POP 0000088b: PUSH1 0x10 0000088d: SLOAD 0000088e: PUSH2 0x0790 00000891: SWAP1 00000892: PUSH1 0x01 00000894: PUSH1 0x01 00000896: PUSH1 0xa0 00000898: SHL 00000899: SUB 0000089a: AND 0000089b: DUP2 0000089c: JUMP 0000089d: JUMPDEST 0000089e: CALLVALUE 0000089f: DUP1 000008a0: ISZERO 000008a1: PUSH2 0x08a9 000008a4: JUMPI 000008a5: PUSH1 0x00 000008a7: DUP1 000008a8: REVERT 000008a9: JUMPDEST 000008aa: POP 000008ab: PUSH2 0x0790 000008ae: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000008cf: DUP2 000008d0: JUMP 000008d1: JUMPDEST 000008d2: CALLVALUE 000008d3: DUP1 000008d4: ISZERO 000008d5: PUSH2 0x08dd 000008d8: JUMPI 000008d9: PUSH1 0x00 000008db: DUP1 000008dc: REVERT 000008dd: JUMPDEST 000008de: POP 000008df: PUSH2 0x0349 000008e2: PUSH2 0x1678 000008e5: JUMP 000008e6: JUMPDEST 000008e7: CALLVALUE 000008e8: DUP1 000008e9: ISZERO 000008ea: PUSH2 0x08f2 000008ed: JUMPI 000008ee: PUSH1 0x00 000008f0: DUP1 000008f1: REVERT 000008f2: JUMPDEST 000008f3: POP 000008f4: PUSH2 0x043f 000008f7: PUSH2 0x0901 000008fa: CALLDATASIZE 000008fb: PUSH1 0x04 000008fd: PUSH2 0x2f2d 00000900: JUMP 00000901: JUMPDEST 00000902: PUSH2 0x1706 00000905: JUMP 00000906: JUMPDEST 00000907: CALLVALUE 00000908: DUP1 00000909: ISZERO 0000090a: PUSH2 0x0912 0000090d: JUMPI 0000090e: PUSH1 0x00 00000910: DUP1 00000911: REVERT 00000912: JUMPDEST 00000913: POP 00000914: PUSH2 0x0324 00000917: PUSH2 0x0921 0000091a: CALLDATASIZE 0000091b: PUSH1 0x04 0000091d: PUSH2 0x30b0 00000920: JUMP 00000921: JUMPDEST 00000922: PUSH2 0x1788 00000925: JUMP 00000926: JUMPDEST 00000927: CALLVALUE 00000928: DUP1 00000929: ISZERO 0000092a: PUSH2 0x0932 0000092d: JUMPI 0000092e: PUSH1 0x00 00000930: DUP1 00000931: REVERT 00000932: JUMPDEST 00000933: POP 00000934: PUSH2 0x0349 00000937: PUSH2 0x0941 0000093a: CALLDATASIZE 0000093b: PUSH1 0x04 0000093d: PUSH2 0x306a 00000940: JUMP 00000941: JUMPDEST 00000942: PUSH2 0x17e6 00000945: JUMP 00000946: JUMPDEST 00000947: CALLVALUE 00000948: DUP1 00000949: ISZERO 0000094a: PUSH2 0x0952 0000094d: JUMPI 0000094e: PUSH1 0x00 00000950: DUP1 00000951: REVERT 00000952: JUMPDEST 00000953: POP 00000954: PUSH2 0x043f 00000957: PUSH2 0x0961 0000095a: CALLDATASIZE 0000095b: PUSH1 0x04 0000095d: PUSH2 0x306a 00000960: JUMP 00000961: JUMPDEST 00000962: PUSH2 0x1803 00000965: JUMP 00000966: JUMPDEST 00000967: CALLVALUE 00000968: DUP1 00000969: ISZERO 0000096a: PUSH2 0x0972 0000096d: JUMPI 0000096e: PUSH1 0x00 00000970: DUP1 00000971: REVERT 00000972: JUMPDEST 00000973: POP 00000974: PUSH2 0x043f 00000977: PUSH2 0x0981 0000097a: CALLDATASIZE 0000097b: PUSH1 0x04 0000097d: PUSH2 0x2f2d 00000980: JUMP 00000981: JUMPDEST 00000982: PUSH2 0x1870 00000985: JUMP 00000986: JUMPDEST 00000987: CALLVALUE 00000988: DUP1 00000989: ISZERO 0000098a: PUSH2 0x0992 0000098d: JUMPI 0000098e: PUSH1 0x00 00000990: DUP1 00000991: REVERT 00000992: JUMPDEST 00000993: POP 00000994: PUSH1 0x10 00000996: SLOAD 00000997: PUSH2 0x0324 0000099a: SWAP1 0000099b: PUSH1 0x01 0000099d: PUSH1 0xa0 0000099f: SHL 000009a0: SWAP1 000009a1: DIV 000009a2: PUSH1 0xff 000009a4: AND 000009a5: DUP2 000009a6: JUMP 000009a7: JUMPDEST 000009a8: CALLVALUE 000009a9: DUP1 000009aa: ISZERO 000009ab: PUSH2 0x09b3 000009ae: JUMPI 000009af: PUSH1 0x00 000009b1: DUP1 000009b2: REVERT 000009b3: JUMPDEST 000009b4: POP 000009b5: PUSH2 0x0349 000009b8: PUSH2 0x09c2 000009bb: CALLDATASIZE 000009bc: PUSH1 0x04 000009be: PUSH2 0x30e8 000009c1: JUMP 000009c2: JUMPDEST 000009c3: PUSH1 0x01 000009c5: PUSH1 0x01 000009c7: PUSH1 0xa0 000009c9: SHL 000009ca: SUB 000009cb: SWAP2 000009cc: DUP3 000009cd: AND 000009ce: PUSH1 0x00 000009d0: SWAP1 000009d1: DUP2 000009d2: MSTORE 000009d3: PUSH1 0x02 000009d5: PUSH1 0x20 000009d7: SWAP1 000009d8: DUP2 000009d9: MSTORE 000009da: PUSH1 0x40 000009dc: DUP1 000009dd: DUP4 000009de: KECCAK256 000009df: SWAP4 000009e0: SWAP1 000009e1: SWAP5 000009e2: AND 000009e3: DUP3 000009e4: MSTORE 000009e5: SWAP2 000009e6: SWAP1 000009e7: SWAP2 000009e8: MSTORE 000009e9: KECCAK256 000009ea: SLOAD 000009eb: SWAP1 000009ec: JUMP 000009ed: JUMPDEST 000009ee: PUSH2 0x043f 000009f1: PUSH2 0x09fb 000009f4: CALLDATASIZE 000009f5: PUSH1 0x04 000009f7: PUSH2 0x3112 000009fa: JUMP 000009fb: JUMPDEST 000009fc: PUSH2 0x18c0 000009ff: JUMP 00000a00: JUMPDEST 00000a01: CALLVALUE 00000a02: DUP1 00000a03: ISZERO 00000a04: PUSH2 0x0a0c 00000a07: JUMPI 00000a08: PUSH1 0x00 00000a0a: DUP1 00000a0b: REVERT 00000a0c: JUMPDEST 00000a0d: POP 00000a0e: PUSH2 0x043f 00000a11: PUSH2 0x0a1b 00000a14: CALLDATASIZE 00000a15: PUSH1 0x04 00000a17: PUSH2 0x3147 00000a1a: JUMP 00000a1b: JUMPDEST 00000a1c: PUSH2 0x1a36 00000a1f: JUMP 00000a20: JUMPDEST 00000a21: CALLVALUE 00000a22: DUP1 00000a23: ISZERO 00000a24: PUSH2 0x0a2c 00000a27: JUMPI 00000a28: PUSH1 0x00 00000a2a: DUP1 00000a2b: REVERT 00000a2c: JUMPDEST 00000a2d: POP 00000a2e: PUSH2 0x043f 00000a31: PUSH2 0x0a3b 00000a34: CALLDATASIZE 00000a35: PUSH1 0x04 00000a37: PUSH2 0x306a 00000a3a: JUMP 00000a3b: JUMPDEST 00000a3c: PUSH2 0x1b52 00000a3f: JUMP 00000a40: JUMPDEST 00000a41: PUSH2 0x043f 00000a44: PUSH2 0x0a4e 00000a47: CALLDATASIZE 00000a48: PUSH1 0x04 00000a4a: PUSH2 0x306a 00000a4d: JUMP 00000a4e: JUMPDEST 00000a4f: PUSH2 0x1b8d 00000a52: JUMP 00000a53: JUMPDEST 00000a54: PUSH2 0x043f 00000a57: PUSH2 0x1c7d 00000a5a: JUMP 00000a5b: JUMPDEST 00000a5c: CALLVALUE 00000a5d: DUP1 00000a5e: ISZERO 00000a5f: PUSH2 0x0a67 00000a62: JUMPI 00000a63: PUSH1 0x00 00000a65: DUP1 00000a66: REVERT 00000a67: JUMPDEST 00000a68: POP 00000a69: PUSH2 0x0a7b 00000a6c: PUSH2 0x0a76 00000a6f: CALLDATASIZE 00000a70: PUSH1 0x04 00000a72: PUSH2 0x306a 00000a75: JUMP 00000a76: JUMPDEST 00000a77: PUSH2 0x1da9 00000a7a: JUMP 00000a7b: JUMPDEST 00000a7c: PUSH1 0x40 00000a7e: DUP1 00000a7f: MLOAD 00000a80: SWAP3 00000a81: DUP4 00000a82: MSTORE 00000a83: PUSH1 0x20 00000a85: DUP4 00000a86: ADD 00000a87: SWAP2 00000a88: SWAP1 00000a89: SWAP2 00000a8a: MSTORE 00000a8b: ADD 00000a8c: PUSH2 0x02fb 00000a8f: JUMP 00000a90: JUMPDEST 00000a91: CALLVALUE 00000a92: DUP1 00000a93: ISZERO 00000a94: PUSH2 0x0a9c 00000a97: JUMPI 00000a98: PUSH1 0x00 00000a9a: DUP1 00000a9b: REVERT 00000a9c: JUMPDEST 00000a9d: POP 00000a9e: PUSH2 0x043f 00000aa1: PUSH2 0x1e87 00000aa4: JUMP 00000aa5: JUMPDEST 00000aa6: PUSH1 0x60 00000aa8: PUSH1 0x04 00000aaa: DUP1 00000aab: SLOAD 00000aac: PUSH2 0x0ab4 00000aaf: SWAP1 00000ab0: PUSH2 0x31e8 00000ab3: JUMP 00000ab4: JUMPDEST 00000ab5: DUP1 00000ab6: PUSH1 0x1f 00000ab8: ADD 00000ab9: PUSH1 0x20 00000abb: DUP1 00000abc: SWAP2 00000abd: DIV 00000abe: MUL 00000abf: PUSH1 0x20 00000ac1: ADD 00000ac2: PUSH1 0x40 00000ac4: MLOAD 00000ac5: SWAP1 00000ac6: DUP2 00000ac7: ADD 00000ac8: PUSH1 0x40 00000aca: MSTORE 00000acb: DUP1 00000acc: SWAP3 00000acd: SWAP2 00000ace: SWAP1 00000acf: DUP2 00000ad0: DUP2 00000ad1: MSTORE 00000ad2: PUSH1 0x20 00000ad4: ADD 00000ad5: DUP3 00000ad6: DUP1 00000ad7: SLOAD 00000ad8: PUSH2 0x0ae0 00000adb: SWAP1 00000adc: PUSH2 0x31e8 00000adf: JUMP 00000ae0: JUMPDEST 00000ae1: DUP1 00000ae2: ISZERO 00000ae3: PUSH2 0x0b2d 00000ae6: JUMPI 00000ae7: DUP1 00000ae8: PUSH1 0x1f 00000aea: LT 00000aeb: PUSH2 0x0b02 00000aee: JUMPI 00000aef: PUSH2 0x0100 00000af2: DUP1 00000af3: DUP4 00000af4: SLOAD 00000af5: DIV 00000af6: MUL 00000af7: DUP4 00000af8: MSTORE 00000af9: SWAP2 00000afa: PUSH1 0x20 00000afc: ADD 00000afd: SWAP2 00000afe: PUSH2 0x0b2d 00000b01: JUMP 00000b02: JUMPDEST 00000b03: DUP3 00000b04: ADD 00000b05: SWAP2 00000b06: SWAP1 00000b07: PUSH1 0x00 00000b09: MSTORE 00000b0a: PUSH1 0x20 00000b0c: PUSH1 0x00 00000b0e: KECCAK256 00000b0f: SWAP1 00000b10: JUMPDEST 00000b11: DUP2 00000b12: SLOAD 00000b13: DUP2 00000b14: MSTORE 00000b15: SWAP1 00000b16: PUSH1 0x01 00000b18: ADD 00000b19: SWAP1 00000b1a: PUSH1 0x20 00000b1c: ADD 00000b1d: DUP1 00000b1e: DUP4 00000b1f: GT 00000b20: PUSH2 0x0b10 00000b23: JUMPI 00000b24: DUP3 00000b25: SWAP1 00000b26: SUB 00000b27: PUSH1 0x1f 00000b29: AND 00000b2a: DUP3 00000b2b: ADD 00000b2c: SWAP2 00000b2d: JUMPDEST 00000b2e: POP 00000b2f: POP 00000b30: POP 00000b31: POP 00000b32: POP 00000b33: SWAP1 00000b34: POP 00000b35: SWAP1 00000b36: JUMP 00000b37: JUMPDEST 00000b38: PUSH1 0x00 00000b3a: CALLER 00000b3b: PUSH2 0x0b45 00000b3e: DUP2 00000b3f: DUP6 00000b40: DUP6 00000b41: PUSH2 0x2066 00000b44: JUMP 00000b45: JUMPDEST 00000b46: PUSH1 0x01 00000b48: SWAP2 00000b49: POP 00000b4a: POP 00000b4b: JUMPDEST 00000b4c: SWAP3 00000b4d: SWAP2 00000b4e: POP 00000b4f: POP 00000b50: JUMP 00000b51: JUMPDEST 00000b52: PUSH1 0x00 00000b54: CALLER 00000b55: PUSH2 0x0b5f 00000b58: DUP6 00000b59: DUP3 00000b5a: DUP6 00000b5b: PUSH2 0x2078 00000b5e: JUMP 00000b5f: JUMPDEST 00000b60: PUSH2 0x0b6a 00000b63: DUP6 00000b64: DUP6 00000b65: DUP6 00000b66: PUSH2 0x20f6 00000b69: JUMP 00000b6a: JUMPDEST 00000b6b: PUSH1 0x01 00000b6d: SWAP2 00000b6e: POP 00000b6f: POP 00000b70: JUMPDEST 00000b71: SWAP4 00000b72: SWAP3 00000b73: POP 00000b74: POP 00000b75: POP 00000b76: JUMP 00000b77: JUMPDEST 00000b78: PUSH2 0x0b7f 00000b7b: PUSH2 0x2155 00000b7e: JUMP 00000b7f: JUMPDEST 00000b80: CALLER 00000b81: PUSH1 0x00 00000b83: SWAP1 00000b84: DUP2 00000b85: MSTORE 00000b86: PUSH1 0x07 00000b88: PUSH1 0x20 00000b8a: MSTORE 00000b8b: PUSH1 0x40 00000b8d: SWAP1 00000b8e: KECCAK256 00000b8f: PUSH1 0x0c 00000b91: SLOAD 00000b92: PUSH2 0xffff 00000b95: AND 00000b96: DUP3 00000b97: PUSH2 0x0bbb 00000b9a: JUMPI 00000b9b: PUSH1 0x40 00000b9d: MLOAD 00000b9e: PUSH3 0x461bcd 00000ba2: PUSH1 0xe5 00000ba4: SHL 00000ba5: DUP2 00000ba6: MSTORE 00000ba7: PUSH1 0x04 00000ba9: ADD 00000baa: PUSH2 0x0bb2 00000bad: SWAP1 00000bae: PUSH2 0x3222 00000bb1: JUMP 00000bb2: JUMPDEST 00000bb3: PUSH1 0x40 00000bb5: MLOAD 00000bb6: DUP1 00000bb7: SWAP2 00000bb8: SUB 00000bb9: SWAP1 00000bba: REVERT 00000bbb: JUMPDEST 00000bbc: DUP2 00000bbd: SLOAD 00000bbe: PUSH2 0xffff 00000bc1: AND 00000bc2: DUP2 00000bc3: EQ 00000bc4: PUSH2 0x0bff 00000bc7: JUMPI 00000bc8: PUSH1 0x40 00000bca: MLOAD 00000bcb: PUSH3 0x461bcd 00000bcf: PUSH1 0xe5 00000bd1: SHL 00000bd2: DUP2 00000bd3: MSTORE 00000bd4: PUSH1 0x20 00000bd6: PUSH1 0x04 00000bd8: DUP3 00000bd9: ADD 00000bda: MSTORE 00000bdb: PUSH1 0x0d 00000bdd: PUSH1 0x24 00000bdf: DUP3 00000be0: ADD 00000be1: MSTORE 00000be2: PUSH13 0x125b9d985b1a59081c9bdd5b99 00000bf0: PUSH1 0x9a 00000bf2: SHL 00000bf3: PUSH1 0x44 00000bf5: DUP3 00000bf6: ADD 00000bf7: MSTORE 00000bf8: PUSH1 0x64 00000bfa: ADD 00000bfb: PUSH2 0x0bb2 00000bfe: JUMP 00000bff: JUMPDEST 00000c00: DUP2 00000c01: SLOAD 00000c02: PUSH3 0x010000 00000c06: SWAP1 00000c07: DIV 00000c08: PUSH1 0x01 00000c0a: PUSH1 0x01 00000c0c: PUSH1 0x68 00000c0e: SHL 00000c0f: SUB 00000c10: AND 00000c11: DUP4 00000c12: DUP2 00000c13: LT 00000c14: ISZERO 00000c15: PUSH2 0x0c50 00000c18: JUMPI 00000c19: PUSH1 0x40 00000c1b: MLOAD 00000c1c: PUSH3 0x461bcd 00000c20: PUSH1 0xe5 00000c22: SHL 00000c23: DUP2 00000c24: MSTORE 00000c25: PUSH1 0x20 00000c27: PUSH1 0x04 00000c29: DUP3 00000c2a: ADD 00000c2b: MSTORE 00000c2c: PUSH1 0x0d 00000c2e: PUSH1 0x24 00000c30: DUP3 00000c31: ADD 00000c32: MSTORE 00000c33: PUSH13 0x115e18d9595908185b5bdd5b9d 00000c41: PUSH1 0x9a 00000c43: SHL 00000c44: PUSH1 0x44 00000c46: DUP3 00000c47: ADD 00000c48: MSTORE 00000c49: PUSH1 0x64 00000c4b: ADD 00000c4c: PUSH2 0x0bb2 00000c4f: JUMP 00000c50: JUMPDEST 00000c51: PUSH2 0x0c5a 00000c54: DUP5 00000c55: DUP3 00000c56: PUSH2 0x3259 00000c59: JUMP 00000c5a: JUMPDEST 00000c5b: DUP4 00000c5c: SLOAD 00000c5d: PUSH1 0x01 00000c5f: PUSH1 0x01 00000c61: PUSH1 0x68 00000c63: SHL 00000c64: SUB 00000c65: SWAP2 00000c66: SWAP1 00000c67: SWAP2 00000c68: AND 00000c69: PUSH3 0x010000 00000c6d: MUL 00000c6e: PUSH3 0x010000 00000c72: PUSH1 0x01 00000c74: PUSH1 0x78 00000c76: SHL 00000c77: SUB 00000c78: NOT 00000c79: SWAP1 00000c7a: SWAP2 00000c7b: AND 00000c7c: OR 00000c7d: DUP4 00000c7e: SSTORE 00000c7f: PUSH1 0x0d 00000c81: SLOAD 00000c82: PUSH2 0x0c95 00000c85: SWAP1 00000c86: DUP6 00000c87: SWAP1 00000c88: PUSH1 0x01 00000c8a: PUSH1 0x01 00000c8c: PUSH1 0x80 00000c8e: SHL 00000c8f: SUB 00000c90: AND 00000c91: PUSH2 0x3259 00000c94: JUMP 00000c95: JUMPDEST 00000c96: PUSH1 0x0d 00000c98: DUP1 00000c99: SLOAD 00000c9a: PUSH1 0x01 00000c9c: PUSH1 0x01 00000c9e: PUSH1 0x80 00000ca0: SHL 00000ca1: SUB 00000ca2: NOT 00000ca3: AND 00000ca4: PUSH1 0x01 00000ca6: PUSH1 0x01 00000ca8: PUSH1 0x80 00000caa: SHL 00000cab: SUB 00000cac: SWAP3 00000cad: SWAP1 00000cae: SWAP3 00000caf: AND 00000cb0: SWAP2 00000cb1: SWAP1 00000cb2: SWAP2 00000cb3: OR 00000cb4: SWAP1 00000cb5: SSTORE 00000cb6: PUSH1 0x40 00000cb8: DUP1 00000cb9: MLOAD 00000cba: DUP6 00000cbb: DUP2 00000cbc: MSTORE 00000cbd: PUSH1 0x20 00000cbf: DUP2 00000cc0: ADD 00000cc1: DUP5 00000cc2: SWAP1 00000cc3: MSTORE 00000cc4: CALLER 00000cc5: SWAP2 00000cc6: PUSH32 0xab2daf3c146ca6416cbccd2a86ed2ba995e171ef6319df14a38aef01403a9c96 00000ce7: SWAP2 00000ce8: ADD 00000ce9: PUSH1 0x40 00000ceb: MLOAD 00000cec: DUP1 00000ced: SWAP2 00000cee: SUB 00000cef: SWAP1 00000cf0: LOG2 00000cf1: PUSH2 0x0cfa 00000cf4: CALLER 00000cf5: DUP6 00000cf6: PUSH2 0x217f 00000cf9: JUMP 00000cfa: JUMPDEST 00000cfb: POP 00000cfc: POP 00000cfd: POP 00000cfe: PUSH2 0x0d07 00000d01: PUSH1 0x01 00000d03: PUSH1 0x00 00000d05: SSTORE 00000d06: JUMP 00000d07: JUMPDEST 00000d08: POP 00000d09: JUMP 00000d0a: JUMPDEST 00000d0b: PUSH2 0x0d12 00000d0e: PUSH2 0x2155 00000d11: JUMP 00000d12: JUMPDEST 00000d13: PUSH1 0x10 00000d15: SLOAD 00000d16: PUSH1 0x01 00000d18: PUSH1 0xa0 00000d1a: SHL 00000d1b: SWAP1 00000d1c: DIV 00000d1d: PUSH1 0xff 00000d1f: AND 00000d20: PUSH2 0x0da7 00000d23: JUMPI 00000d24: PUSH1 0x11 00000d26: SLOAD 00000d27: PUSH1 0x40 00000d29: MLOAD 00000d2a: PUSH1 0x01 00000d2c: PUSH1 0x01 00000d2e: PUSH1 0x60 00000d30: SHL 00000d31: SUB 00000d32: NOT 00000d33: CALLER 00000d34: PUSH1 0x60 00000d36: SHL 00000d37: AND 00000d38: PUSH1 0x20 00000d3a: DUP3 00000d3b: ADD 00000d3c: MSTORE 00000d3d: PUSH2 0x0d6b 00000d40: SWAP2 00000d41: SWAP1 00000d42: PUSH1 0x34 00000d44: ADD 00000d45: JUMPDEST 00000d46: PUSH1 0x40 00000d48: MLOAD 00000d49: PUSH1 0x20 00000d4b: DUP2 00000d4c: DUP4 00000d4d: SUB 00000d4e: SUB 00000d4f: DUP2 00000d50: MSTORE 00000d51: SWAP1 00000d52: PUSH1 0x40 00000d54: MSTORE 00000d55: DUP1 00000d56: MLOAD 00000d57: SWAP1 00000d58: PUSH1 0x20 00000d5a: ADD 00000d5b: KECCAK256 00000d5c: DUP4 00000d5d: PUSH2 0x22e5 00000d60: SWAP1 00000d61: SWAP3 00000d62: SWAP2 00000d63: SWAP1 00000d64: PUSH4 0xffffffff 00000d69: AND 00000d6a: JUMP 00000d6b: JUMPDEST 00000d6c: PUSH2 0x0da7 00000d6f: JUMPI 00000d70: PUSH1 0x40 00000d72: MLOAD 00000d73: PUSH3 0x461bcd 00000d77: PUSH1 0xe5 00000d79: SHL 00000d7a: DUP2 00000d7b: MSTORE 00000d7c: PUSH1 0x20 00000d7e: PUSH1 0x04 00000d80: DUP3 00000d81: ADD 00000d82: MSTORE 00000d83: PUSH1 0x0d 00000d85: PUSH1 0x24 00000d87: DUP3 00000d88: ADD 00000d89: MSTORE 00000d8a: PUSH13 0x24b73b30b634b210383937b7b3 00000d98: PUSH1 0x99 00000d9a: SHL 00000d9b: PUSH1 0x44 00000d9d: DUP3 00000d9e: ADD 00000d9f: MSTORE 00000da0: PUSH1 0x64 00000da2: ADD 00000da3: PUSH2 0x0bb2 00000da6: JUMP 00000da7: JUMPDEST 00000da8: PUSH1 0x00 00000daa: DUP3 00000dab: GT 00000dac: PUSH2 0x0dc7 00000daf: JUMPI 00000db0: PUSH1 0x40 00000db2: MLOAD 00000db3: PUSH3 0x461bcd 00000db7: PUSH1 0xe5 00000db9: SHL 00000dba: DUP2 00000dbb: MSTORE 00000dbc: PUSH1 0x04 00000dbe: ADD 00000dbf: PUSH2 0x0bb2 00000dc2: SWAP1 00000dc3: PUSH2 0x3222 00000dc6: JUMP 00000dc7: JUMPDEST 00000dc8: PUSH2 0x0dd1 00000dcb: DUP3 00000dcc: CALLER 00000dcd: PUSH2 0x2327 00000dd0: JUMP 00000dd1: JUMPDEST 00000dd2: PUSH1 0x0a 00000dd4: SLOAD 00000dd5: PUSH2 0x0dee 00000dd8: SWAP1 00000dd9: PUSH2 0x0100 00000ddc: SWAP1 00000ddd: DIV 00000dde: PUSH1 0x01 00000de0: PUSH1 0x01 00000de2: PUSH1 0xa0 00000de4: SHL 00000de5: SUB 00000de6: AND 00000de7: CALLER 00000de8: ADDRESS 00000de9: DUP6 00000dea: PUSH2 0x25b5 00000ded: JUMP 00000dee: JUMPDEST 00000def: PUSH2 0x0df8 00000df2: PUSH1 0x01 00000df4: PUSH1 0x00 00000df6: SSTORE 00000df7: JUMP 00000df8: JUMPDEST 00000df9: POP 00000dfa: POP 00000dfb: JUMP 00000dfc: JUMPDEST 00000dfd: PUSH2 0x0e04 00000e00: PUSH2 0x2155 00000e03: JUMP 00000e04: JUMPDEST 00000e05: PUSH1 0x10 00000e07: SLOAD 00000e08: PUSH1 0x01 00000e0a: PUSH1 0xa0 00000e0c: SHL 00000e0d: SWAP1 00000e0e: DIV 00000e0f: PUSH1 0xff 00000e11: AND 00000e12: PUSH2 0x0e2d 00000e15: JUMPI 00000e16: PUSH1 0x40 00000e18: MLOAD 00000e19: PUSH3 0x461bcd 00000e1d: PUSH1 0xe5 00000e1f: SHL 00000e20: DUP2 00000e21: MSTORE 00000e22: PUSH1 0x04 00000e24: ADD 00000e25: PUSH2 0x0bb2 00000e28: SWAP1 00000e29: PUSH2 0x326c 00000e2c: JUMP 00000e2d: JUMPDEST 00000e2e: PUSH1 0x00 00000e30: DUP3 00000e31: GT 00000e32: PUSH2 0x0e4d 00000e35: JUMPI 00000e36: PUSH1 0x40 00000e38: MLOAD 00000e39: PUSH3 0x461bcd 00000e3d: PUSH1 0xe5 00000e3f: SHL 00000e40: DUP2 00000e41: MSTORE 00000e42: PUSH1 0x04 00000e44: ADD 00000e45: PUSH2 0x0bb2 00000e48: SWAP1 00000e49: PUSH2 0x3222 00000e4c: JUMP 00000e4d: JUMPDEST 00000e4e: PUSH1 0x01 00000e50: PUSH1 0x01 00000e52: PUSH1 0xa0 00000e54: SHL 00000e55: SUB 00000e56: DUP2 00000e57: AND 00000e58: PUSH2 0x0e8f 00000e5b: JUMPI 00000e5c: PUSH1 0x40 00000e5e: MLOAD 00000e5f: PUSH3 0x461bcd 00000e63: PUSH1 0xe5 00000e65: SHL 00000e66: DUP2 00000e67: MSTORE 00000e68: PUSH1 0x20 00000e6a: PUSH1 0x04 00000e6c: DUP3 00000e6d: ADD 00000e6e: MSTORE 00000e6f: PUSH1 0x09 00000e71: PUSH1 0x24 00000e73: DUP3 00000e74: ADD 00000e75: MSTORE 00000e76: PUSH9 0x10b1b932b234ba37b9 00000e80: PUSH1 0xb9 00000e82: SHL 00000e83: PUSH1 0x44 00000e85: DUP3 00000e86: ADD 00000e87: MSTORE 00000e88: PUSH1 0x64 00000e8a: ADD 00000e8b: PUSH2 0x0bb2 00000e8e: JUMP 00000e8f: JUMPDEST 00000e90: PUSH2 0x0dd1 00000e93: DUP3 00000e94: DUP3 00000e95: PUSH2 0x2327 00000e98: JUMP 00000e99: JUMPDEST 00000e9a: PUSH1 0x10 00000e9c: SLOAD 00000e9d: PUSH1 0x01 00000e9f: PUSH1 0x01 00000ea1: PUSH1 0xa0 00000ea3: SHL 00000ea4: SUB 00000ea5: AND 00000ea6: CALLER 00000ea7: EQ 00000ea8: PUSH2 0x0edd 00000eab: JUMPI 00000eac: PUSH1 0x40 00000eae: MLOAD 00000eaf: PUSH3 0x461bcd 00000eb3: PUSH1 0xe5 00000eb5: SHL 00000eb6: DUP2 00000eb7: MSTORE 00000eb8: PUSH1 0x20 00000eba: PUSH1 0x04 00000ebc: DUP3 00000ebd: ADD 00000ebe: MSTORE 00000ebf: PUSH1 0x07 00000ec1: PUSH1 0x24 00000ec3: DUP3 00000ec4: ADD 00000ec5: MSTORE 00000ec6: PUSH7 0x10b5b2b2b832b9 00000ece: PUSH1 0xc9 00000ed0: SHL 00000ed1: PUSH1 0x44 00000ed3: DUP3 00000ed4: ADD 00000ed5: MSTORE 00000ed6: PUSH1 0x64 00000ed8: ADD 00000ed9: PUSH2 0x0bb2 00000edc: JUMP 00000edd: JUMPDEST 00000ede: PUSH2 0x0ee5 00000ee1: PUSH2 0x2155 00000ee4: JUMP 00000ee5: JUMPDEST 00000ee6: PUSH1 0x0a 00000ee8: SLOAD 00000ee9: PUSH1 0x01 00000eeb: PUSH1 0xa8 00000eed: SHL 00000eee: SWAP1 00000eef: DIV 00000ef0: PUSH7 0xffffffffffffff 00000ef8: AND 00000ef9: DUP2 00000efa: LT 00000efb: ISZERO 00000efc: PUSH2 0x0f3e 00000eff: JUMPI 00000f00: PUSH1 0x40 00000f02: MLOAD 00000f03: PUSH3 0x461bcd 00000f07: PUSH1 0xe5 00000f09: SHL 00000f0a: DUP2 00000f0b: MSTORE 00000f0c: PUSH1 0x20 00000f0e: PUSH1 0x04 00000f10: DUP3 00000f11: ADD 00000f12: MSTORE 00000f13: PUSH1 0x14 00000f15: PUSH1 0x24 00000f17: DUP3 00000f18: ADD 00000f19: MSTORE 00000f1a: PUSH20 0x496e73756666696369656e742062616c616e6365 00000f2f: PUSH1 0x60 00000f31: SHL 00000f32: PUSH1 0x44 00000f34: DUP3 00000f35: ADD 00000f36: MSTORE 00000f37: PUSH1 0x64 00000f39: ADD 00000f3a: PUSH2 0x0bb2 00000f3d: JUMP 00000f3e: JUMPDEST 00000f3f: PUSH1 0x40 00000f41: DUP1 00000f42: MLOAD 00000f43: PUSH1 0xa0 00000f45: DUP2 00000f46: ADD 00000f47: DUP3 00000f48: MSTORE 00000f49: PUSH1 0x0c 00000f4b: SLOAD 00000f4c: PUSH2 0xffff 00000f4f: DUP2 00000f50: AND 00000f51: DUP1 00000f52: DUP4 00000f53: MSTORE 00000f54: PUSH1 0x01 00000f56: PUSH1 0x01 00000f58: PUSH1 0x68 00000f5a: SHL 00000f5b: SUB 00000f5c: PUSH3 0x010000 00000f60: DUP4 00000f61: DIV 00000f62: DUP2 00000f63: AND 00000f64: PUSH1 0x20 00000f66: DUP6 00000f67: ADD 00000f68: MSTORE 00000f69: PUSH1 0x01 00000f6b: PUSH1 0x78 00000f6d: SHL 00000f6e: SWAP1 00000f6f: SWAP3 00000f70: DIV 00000f71: SWAP1 00000f72: SWAP2 00000f73: AND 00000f74: SWAP3 00000f75: DUP3 00000f76: ADD 00000f77: SWAP3 00000f78: SWAP1 00000f79: SWAP3 00000f7a: MSTORE 00000f7b: PUSH1 0x0d 00000f7d: SLOAD 00000f7e: PUSH1 0x01 00000f80: PUSH1 0x01 00000f82: PUSH1 0x80 00000f84: SHL 00000f85: SUB 00000f86: DUP1 00000f87: DUP3 00000f88: AND 00000f89: PUSH1 0x60 00000f8b: DUP5 00000f8c: ADD 00000f8d: MSTORE 00000f8e: PUSH1 0x01 00000f90: PUSH1 0x80 00000f92: SHL 00000f93: SWAP1 00000f94: SWAP2 00000f95: DIV 00000f96: AND 00000f97: PUSH1 0x80 00000f99: DUP3 00000f9a: ADD 00000f9b: DUP2 00000f9c: SWAP1 00000f9d: MSTORE 00000f9e: SWAP1 00000f9f: SWAP2 00000fa0: SWAP1 00000fa1: PUSH1 0x00 00000fa3: SWAP1 00000fa4: PUSH2 0x0fe3 00000fa7: SWAP1 00000fa8: PUSH2 0x0fb0 00000fab: PUSH1 0x03 00000fad: SLOAD 00000fae: SWAP1 00000faf: JUMP 00000fb0: JUMPDEST 00000fb1: PUSH2 0x0fba 00000fb4: SWAP2 00000fb5: SWAP1 00000fb6: PUSH2 0x3259 00000fb9: JUMP 00000fba: JUMPDEST 00000fbb: PUSH1 0x0e 00000fbd: SLOAD 00000fbe: PUSH2 0x0fc7 00000fc1: SWAP1 00000fc2: DUP8 00000fc3: PUSH2 0x3259 00000fc6: JUMP 00000fc7: JUMPDEST 00000fc8: PUSH1 0x60 00000fca: DUP7 00000fcb: ADD 00000fcc: MLOAD 00000fcd: PUSH1 0x0a 00000fcf: SLOAD 00000fd0: PUSH1 0x01 00000fd2: PUSH1 0x01 00000fd4: PUSH1 0x80 00000fd6: SHL 00000fd7: SUB 00000fd8: SWAP1 00000fd9: SWAP2 00000fda: AND 00000fdb: SWAP1 00000fdc: PUSH1 0xff 00000fde: AND 00000fdf: PUSH2 0x261c 00000fe2: JUMP 00000fe3: JUMPDEST 00000fe4: PUSH1 0x00 00000fe6: DUP4 00000fe7: DUP2 00000fe8: MSTORE 00000fe9: PUSH1 0x08 00000feb: PUSH1 0x20 00000fed: MSTORE 00000fee: PUSH1 0x40 00000ff0: SWAP1 00000ff1: KECCAK256 00000ff2: DUP2 00000ff3: SWAP1 00000ff4: SSTORE 00000ff5: PUSH1 0x0d 00000ff7: DUP1 00000ff8: SLOAD 00000ff9: PUSH1 0x01 00000ffb: PUSH1 0x01 00000ffd: PUSH1 0x80 00000fff: SHL 00001000: SUB 00001001: NOT 00001002: AND 00001003: SWAP1 00001004: SSTORE 00001005: SWAP1 00001006: POP 00001007: PUSH2 0x1011 0000100a: DUP3 0000100b: PUSH1 0x01 0000100d: PUSH2 0x328d 00001010: JUMP 00001011: JUMPDEST 00001012: PUSH1 0x0c 00001014: DUP1 00001015: SLOAD 00001016: PUSH2 0xffff 00001019: NOT 0000101a: AND 0000101b: PUSH2 0xffff 0000101e: SWAP3 0000101f: SWAP1 00001020: SWAP3 00001021: AND 00001022: SWAP2 00001023: SWAP1 00001024: SWAP2 00001025: OR 00001026: SWAP1 00001027: SSTORE 00001028: PUSH1 0x60 0000102a: DUP4 0000102b: ADD 0000102c: MLOAD 0000102d: PUSH1 0x0a 0000102f: SLOAD 00001030: PUSH1 0x00 00001032: SWAP2 00001033: PUSH2 0x104c 00001036: SWAP2 00001037: PUSH1 0x01 00001039: PUSH1 0x01 0000103b: PUSH1 0x80 0000103d: SHL 0000103e: SUB 0000103f: SWAP1 00001040: SWAP2 00001041: AND 00001042: SWAP1 00001043: DUP5 00001044: SWAP1 00001045: PUSH1 0xff 00001047: AND 00001048: PUSH2 0x2663 0000104b: JUMP 0000104c: JUMPDEST 0000104d: SWAP1 0000104e: POP 0000104f: PUSH2 0x1058 00001052: ADDRESS 00001053: DUP3 00001054: PUSH2 0x26cd 00001057: JUMP 00001058: JUMPDEST 00001059: PUSH1 0x0f 0000105b: SLOAD 0000105c: PUSH1 0x0a 0000105e: SLOAD 0000105f: PUSH1 0x00 00001061: SWAP2 00001062: PUSH2 0x106f 00001065: SWAP2 00001066: DUP6 00001067: SWAP1 00001068: PUSH1 0xff 0000106a: AND 0000106b: PUSH2 0x2703 0000106e: JUMP 0000106f: JUMPDEST 00001070: PUSH1 0x0e 00001072: SLOAD 00001073: PUSH2 0x107c 00001076: SWAP2 00001077: SWAP1 00001078: PUSH2 0x328d 0000107b: JUMP 0000107c: JUMPDEST 0000107d: SWAP1 0000107e: POP 0000107f: DUP1 00001080: PUSH1 0x0e 00001082: DUP2 00001083: SWAP1 00001084: SSTORE 00001085: POP 00001086: PUSH1 0x00 00001088: PUSH1 0x0f 0000108a: SLOAD 0000108b: DUP7 0000108c: PUSH1 0x80 0000108e: ADD 0000108f: MLOAD 00001090: PUSH1 0x01 00001092: PUSH1 0x01 00001094: PUSH1 0x80 00001096: SHL 00001097: SUB 00001098: AND 00001099: PUSH2 0x10a2 0000109c: SWAP2 0000109d: SWAP1 0000109e: PUSH2 0x328d 000010a1: JUMP 000010a2: JUMPDEST 000010a3: SWAP1 000010a4: POP 000010a5: PUSH2 0x10ad 000010a8: DUP2 000010a9: PUSH2 0x2762 000010ac: JUMP 000010ad: JUMPDEST 000010ae: PUSH1 0x0d 000010b0: DUP1 000010b1: SLOAD 000010b2: PUSH1 0x01 000010b4: PUSH1 0x01 000010b6: PUSH1 0x80 000010b8: SHL 000010b9: SUB 000010ba: DUP1 000010bb: DUP5 000010bc: AND 000010bd: PUSH1 0x01 000010bf: PUSH1 0x80 000010c1: SHL 000010c2: MUL 000010c3: SWAP2 000010c4: AND 000010c5: OR 000010c6: SWAP1 000010c7: SSTORE 000010c8: PUSH1 0x00 000010ca: PUSH1 0x0f 000010cc: DUP2 000010cd: SWAP1 000010ce: SSTORE 000010cf: PUSH1 0x20 000010d1: DUP8 000010d2: ADD 000010d3: MLOAD 000010d4: PUSH1 0x0c 000010d6: DUP1 000010d7: SLOAD 000010d8: PUSH1 0x01 000010da: PUSH1 0x01 000010dc: PUSH1 0x68 000010de: SHL 000010df: SUB 000010e0: SWAP1 000010e1: SWAP3 000010e2: AND 000010e3: PUSH1 0x01 000010e5: PUSH1 0x78 000010e7: SHL 000010e8: MUL 000010e9: PUSH13 0xffffffffffffffffffffffffff 000010f7: PUSH1 0x78 000010f9: SHL 000010fa: NOT 000010fb: SWAP1 000010fc: SWAP3 000010fd: AND 000010fe: SWAP2 000010ff: SWAP1 00001100: SWAP2 00001101: OR 00001102: SWAP1 00001103: SSTORE 00001104: PUSH2 0x110d 00001107: DUP4 00001108: DUP10 00001109: PUSH2 0x3259 0000110c: JUMP 0000110d: JUMPDEST 0000110e: SWAP1 0000110f: POP 00001110: PUSH2 0x1118 00001113: DUP2 00001114: PUSH2 0x27ac 00001117: JUMP 00001118: JUMPDEST 00001119: PUSH1 0x0c 0000111b: DUP1 0000111c: SLOAD 0000111d: PUSH3 0x010000 00001121: PUSH1 0x01 00001123: PUSH1 0x78 00001125: SHL 00001126: SUB 00001127: NOT 00001128: AND 00001129: PUSH3 0x010000 0000112d: PUSH1 0x01 0000112f: PUSH1 0x01 00001131: PUSH1 0x68 00001133: SHL 00001134: SUB 00001135: DUP5 00001136: AND 00001137: MUL 00001138: OR 00001139: SWAP1 0000113a: SSTORE 0000113b: PUSH1 0x10 0000113d: SLOAD 0000113e: PUSH1 0x0a 00001140: SLOAD 00001141: PUSH1 0x40 00001143: MLOAD 00001144: PUSH4 0x70a08231 00001149: PUSH1 0xe0 0000114b: SHL 0000114c: DUP2 0000114d: MSTORE 0000114e: ADDRESS 0000114f: PUSH1 0x04 00001151: DUP3 00001152: ADD 00001153: MSTORE 00001154: PUSH2 0x11db 00001157: SWAP3 00001158: PUSH1 0x01 0000115a: PUSH1 0x01 0000115c: PUSH1 0xa0 0000115e: SHL 0000115f: SUB 00001160: SWAP1 00001161: DUP2 00001162: AND 00001163: SWAP3 00001164: DUP8 00001165: SWAP3 00001166: PUSH2 0x0100 00001169: SWAP1 0000116a: SWAP2 0000116b: DIV 0000116c: SWAP1 0000116d: SWAP2 0000116e: AND 0000116f: SWAP1 00001170: PUSH4 0x70a08231 00001175: SWAP1 00001176: PUSH1 0x24 00001178: ADD 00001179: PUSH1 0x20 0000117b: PUSH1 0x40 0000117d: MLOAD 0000117e: DUP1 0000117f: DUP4 00001180: SUB 00001181: DUP2 00001182: DUP7 00001183: GAS 00001184: STATICCALL 00001185: ISZERO 00001186: DUP1 00001187: ISZERO 00001188: PUSH2 0x1195 0000118b: JUMPI 0000118c: RETURNDATASIZE 0000118d: PUSH1 0x00 0000118f: DUP1 00001190: RETURNDATACOPY 00001191: RETURNDATASIZE 00001192: PUSH1 0x00 00001194: REVERT 00001195: JUMPDEST 00001196: POP 00001197: POP 00001198: POP 00001199: POP 0000119a: PUSH1 0x40 0000119c: MLOAD 0000119d: RETURNDATASIZE 0000119e: PUSH1 0x1f 000011a0: NOT 000011a1: PUSH1 0x1f 000011a3: DUP3 000011a4: ADD 000011a5: AND 000011a6: DUP3 000011a7: ADD 000011a8: DUP1 000011a9: PUSH1 0x40 000011ab: MSTORE 000011ac: POP 000011ad: DUP2 000011ae: ADD 000011af: SWAP1 000011b0: PUSH2 0x11b9 000011b3: SWAP2 000011b4: SWAP1 000011b5: PUSH2 0x32a0 000011b8: JUMP 000011b9: JUMPDEST 000011ba: PUSH2 0x11c3 000011bd: SWAP2 000011be: SWAP1 000011bf: PUSH2 0x3259 000011c2: JUMP 000011c3: JUMPDEST 000011c4: PUSH1 0x0a 000011c6: SLOAD 000011c7: PUSH2 0x0100 000011ca: SWAP1 000011cb: DIV 000011cc: PUSH1 0x01 000011ce: PUSH1 0x01 000011d0: PUSH1 0xa0 000011d2: SHL 000011d3: SUB 000011d4: AND 000011d5: SWAP2 000011d6: SWAP1 000011d7: PUSH2 0x27f6 000011da: JUMP 000011db: JUMPDEST 000011dc: POP 000011dd: POP 000011de: POP 000011df: POP 000011e0: POP 000011e1: POP 000011e2: POP 000011e3: PUSH2 0x0d07 000011e6: PUSH1 0x01 000011e8: PUSH1 0x00 000011ea: SSTORE 000011eb: JUMP 000011ec: JUMPDEST 000011ed: PUSH1 0x40 000011ef: DUP1 000011f0: MLOAD 000011f1: PUSH1 0xa0 000011f3: DUP2 000011f4: ADD 000011f5: DUP3 000011f6: MSTORE 000011f7: PUSH1 0x0c 000011f9: SLOAD 000011fa: PUSH2 0xffff 000011fd: DUP2 000011fe: AND 000011ff: DUP3 00001200: MSTORE 00001201: PUSH1 0x01 00001203: PUSH1 0x01 00001205: PUSH1 0x68 00001207: SHL 00001208: SUB 00001209: PUSH3 0x010000 0000120d: DUP3 0000120e: DIV 0000120f: DUP2 00001210: AND 00001211: PUSH1 0x20 00001213: DUP5 00001214: ADD 00001215: MSTORE 00001216: PUSH1 0x01 00001218: PUSH1 0x78 0000121a: SHL 0000121b: SWAP1 0000121c: SWAP2 0000121d: DIV 0000121e: AND 0000121f: SWAP2 00001220: DUP2 00001221: ADD 00001222: SWAP2 00001223: SWAP1 00001224: SWAP2 00001225: MSTORE 00001226: PUSH1 0x0d 00001228: SLOAD 00001229: PUSH1 0x01 0000122b: PUSH1 0x01 0000122d: PUSH1 0x80 0000122f: SHL 00001230: SUB 00001231: DUP1 00001232: DUP3 00001233: AND 00001234: PUSH1 0x60 00001236: DUP5 00001237: ADD 00001238: MSTORE 00001239: PUSH1 0x01 0000123b: PUSH1 0x80 0000123d: SHL 0000123e: SWAP1 0000123f: SWAP2 00001240: DIV 00001241: AND 00001242: PUSH1 0x80 00001244: DUP3 00001245: ADD 00001246: DUP2 00001247: SWAP1 00001248: MSTORE 00001249: PUSH1 0x00 0000124b: SWAP2 0000124c: SWAP1 0000124d: DUP3 0000124e: SWAP1 0000124f: PUSH2 0x128e 00001252: SWAP1 00001253: PUSH2 0x125b 00001256: PUSH1 0x03 00001258: SLOAD 00001259: SWAP1 0000125a: JUMP 0000125b: JUMPDEST 0000125c: PUSH2 0x1265 0000125f: SWAP2 00001260: SWAP1 00001261: PUSH2 0x3259 00001264: JUMP 00001265: JUMPDEST 00001266: PUSH1 0x0e 00001268: SLOAD 00001269: PUSH2 0x1272 0000126c: SWAP1 0000126d: DUP8 0000126e: PUSH2 0x3259 00001271: JUMP 00001272: JUMPDEST 00001273: PUSH1 0x60 00001275: DUP6 00001276: ADD 00001277: MLOAD 00001278: PUSH1 0x0a 0000127a: SLOAD 0000127b: PUSH1 0x01 0000127d: PUSH1 0x01 0000127f: PUSH1 0x80 00001281: SHL 00001282: SUB 00001283: SWAP1 00001284: SWAP2 00001285: AND 00001286: SWAP1 00001287: PUSH1 0xff 00001289: AND 0000128a: PUSH2 0x261c 0000128d: JUMP 0000128e: JUMPDEST 0000128f: PUSH1 0x0f 00001291: SLOAD 00001292: PUSH1 0x0a 00001294: SLOAD 00001295: SWAP2 00001296: SWAP3 00001297: POP 00001298: PUSH2 0x12a5 0000129b: SWAP2 0000129c: DUP4 0000129d: SWAP1 0000129e: PUSH1 0xff 000012a0: AND 000012a1: PUSH2 0x2703 000012a4: JUMP 000012a5: JUMPDEST 000012a6: PUSH1 0x0e 000012a8: SLOAD 000012a9: PUSH2 0x12b2 000012ac: SWAP2 000012ad: SWAP1 000012ae: PUSH2 0x328d 000012b1: JUMP 000012b2: JUMPDEST 000012b3: SWAP5 000012b4: SWAP4 000012b5: POP 000012b6: POP 000012b7: POP 000012b8: POP 000012b9: JUMP 000012ba: JUMPDEST 000012bb: PUSH1 0x0a 000012bd: SLOAD 000012be: PUSH1 0x00 000012c0: SWAP1 000012c1: PUSH1 0xff 000012c3: AND 000012c4: DUP2 000012c5: PUSH2 0x12ea 000012c8: PUSH2 0x12d0 000012cb: PUSH1 0x03 000012cd: SLOAD 000012ce: SWAP1 000012cf: JUMP 000012d0: JUMPDEST 000012d1: PUSH2 0x12d8 000012d4: PUSH2 0x1678 000012d7: JUMP 000012d8: JUMPDEST 000012d9: PUSH1 0x0d 000012db: SLOAD 000012dc: PUSH1 0x01 000012de: PUSH1 0x01 000012e0: PUSH1 0x80 000012e2: SHL 000012e3: SUB 000012e4: AND 000012e5: DUP6 000012e6: PUSH2 0x261c 000012e9: JUMP 000012ea: JUMPDEST 000012eb: SWAP1 000012ec: POP 000012ed: PUSH2 0x12b2 000012f0: PUSH2 0x12f8 000012f3: DUP6 000012f4: PUSH2 0x17e6 000012f7: JUMP 000012f8: JUMPDEST 000012f9: DUP3 000012fa: DUP5 000012fb: PUSH2 0x2703 000012fe: JUMP 000012ff: JUMPDEST 00001300: PUSH2 0x1307 00001303: PUSH2 0x2827 00001306: JUMP 00001307: JUMPDEST 00001308: PUSH1 0x00 0000130a: DUP2 0000130b: GT 0000130c: PUSH2 0x1341 0000130f: JUMPI 00001310: PUSH1 0x40 00001312: MLOAD 00001313: PUSH3 0x461bcd 00001317: PUSH1 0xe5 00001319: SHL 0000131a: DUP2 0000131b: MSTORE 0000131c: PUSH1 0x20 0000131e: PUSH1 0x04 00001320: DUP3 00001321: ADD 00001322: MSTORE 00001323: PUSH1 0x07 00001325: PUSH1 0x24 00001327: DUP3 00001328: ADD 00001329: MSTORE 0000132a: PUSH7 0x0216e657743617 00001332: PUSH1 0xcc 00001334: SHL 00001335: PUSH1 0x44 00001337: DUP3 00001338: ADD 00001339: MSTORE 0000133a: PUSH1 0x64 0000133c: ADD 0000133d: PUSH2 0x0bb2 00001340: JUMP 00001341: JUMPDEST 00001342: PUSH2 0x134a 00001345: DUP2 00001346: PUSH2 0x27ac 00001349: JUMP 0000134a: JUMPDEST 0000134b: PUSH1 0x0b 0000134d: SLOAD 0000134e: PUSH1 0x40 00001350: DUP1 00001351: MLOAD 00001352: PUSH1 0x01 00001354: PUSH1 0x01 00001356: PUSH1 0x68 00001358: SHL 00001359: SUB 0000135a: SWAP1 0000135b: SWAP3 0000135c: AND 0000135d: DUP3 0000135e: MSTORE 0000135f: PUSH1 0x20 00001361: DUP3 00001362: ADD 00001363: DUP4 00001364: SWAP1 00001365: MSTORE 00001366: PUSH32 0x5f86edbb9d92228a9edc3f0ebc0f001bda1ea345ac7335e0eeef3504b31d1a1c 00001387: SWAP2 00001388: ADD 00001389: PUSH1 0x40 0000138b: MLOAD 0000138c: DUP1 0000138d: SWAP2 0000138e: SUB 0000138f: SWAP1 00001390: LOG1 00001391: PUSH1 0x0b 00001393: DUP1 00001394: SLOAD 00001395: PUSH13 0xffffffffffffffffffffffffff 000013a3: NOT 000013a4: AND 000013a5: PUSH1 0x01 000013a7: PUSH1 0x01 000013a9: PUSH1 0x68 000013ab: SHL 000013ac: SUB 000013ad: SWAP3 000013ae: SWAP1 000013af: SWAP3 000013b0: AND 000013b1: SWAP2 000013b2: SWAP1 000013b3: SWAP2 000013b4: OR 000013b5: SWAP1 000013b6: SSTORE 000013b7: JUMP 000013b8: JUMPDEST 000013b9: PUSH2 0x13c0 000013bc: PUSH2 0x2827 000013bf: JUMP 000013c0: JUMPDEST 000013c1: PUSH1 0x10 000013c3: DUP1 000013c4: SLOAD 000013c5: SWAP2 000013c6: ISZERO 000013c7: ISZERO 000013c8: PUSH1 0x01 000013ca: PUSH1 0xa0 000013cc: SHL 000013cd: MUL 000013ce: PUSH1 0xff 000013d0: PUSH1 0xa0 000013d2: SHL 000013d3: NOT 000013d4: SWAP1 000013d5: SWAP3 000013d6: AND 000013d7: SWAP2 000013d8: SWAP1 000013d9: SWAP2 000013da: OR 000013db: SWAP1 000013dc: SSTORE 000013dd: JUMP 000013de: JUMPDEST 000013df: PUSH2 0x13e6 000013e2: PUSH2 0x2155 000013e5: JUMP 000013e6: JUMPDEST 000013e7: PUSH2 0x13f2 000013ea: PUSH1 0x00 000013ec: PUSH1 0x01 000013ee: PUSH2 0x2854 000013f1: JUMP 000013f2: JUMPDEST 000013f3: PUSH2 0x13fc 000013f6: PUSH1 0x01 000013f8: PUSH1 0x00 000013fa: SSTORE 000013fb: JUMP 000013fc: JUMPDEST 000013fd: JUMP 000013fe: JUMPDEST 000013ff: PUSH2 0x1406 00001402: PUSH2 0x2827 00001405: JUMP 00001406: JUMPDEST 00001407: PUSH2 0x13fc 0000140a: PUSH1 0x00 0000140c: PUSH2 0x2a01 0000140f: JUMP 00001410: JUMPDEST 00001411: PUSH2 0x1418 00001414: PUSH2 0x2827 00001417: JUMP 00001418: JUMPDEST 00001419: PUSH1 0x11 0000141b: SSTORE 0000141c: JUMP 0000141d: JUMPDEST 0000141e: PUSH2 0x1425 00001421: PUSH2 0x2155 00001424: JUMP 00001425: JUMPDEST 00001426: PUSH1 0x00 00001428: DUP2 00001429: GT 0000142a: PUSH2 0x1462 0000142d: JUMPI 0000142e: PUSH1 0x40 00001430: MLOAD 00001431: PUSH3 0x461bcd 00001435: PUSH1 0xe5 00001437: SHL 00001438: DUP2 00001439: MSTORE 0000143a: PUSH1 0x20 0000143c: PUSH1 0x04 0000143e: DUP3 0000143f: ADD 00001440: MSTORE 00001441: PUSH1 0x0a 00001443: PUSH1 0x24 00001445: DUP3 00001446: ADD 00001447: MSTORE 00001448: PUSH10 0x216e756d536861726573 00001453: PUSH1 0xb0 00001455: SHL 00001456: PUSH1 0x44 00001458: DUP3 00001459: ADD 0000145a: MSTORE 0000145b: PUSH1 0x64 0000145d: ADD 0000145e: PUSH2 0x0bb2 00001461: JUMP 00001462: JUMPDEST 00001463: CALLER 00001464: PUSH1 0x00 00001466: SWAP1 00001467: DUP2 00001468: MSTORE 00001469: PUSH1 0x07 0000146b: PUSH1 0x20 0000146d: MSTORE 0000146e: PUSH1 0x40 00001470: SWAP1 00001471: KECCAK256 00001472: SLOAD 00001473: PUSH3 0x010000 00001477: SWAP1 00001478: DIV 00001479: PUSH1 0x01 0000147b: PUSH1 0x01 0000147d: PUSH1 0x68 0000147f: SHL 00001480: SUB 00001481: AND 00001482: ISZERO 00001483: ISZERO 00001484: DUP1 00001485: PUSH2 0x14ac 00001488: JUMPI 00001489: POP 0000148a: CALLER 0000148b: PUSH1 0x00 0000148d: SWAP1 0000148e: DUP2 0000148f: MSTORE 00001490: PUSH1 0x07 00001492: PUSH1 0x20 00001494: MSTORE 00001495: PUSH1 0x40 00001497: SWAP1 00001498: KECCAK256 00001499: SLOAD 0000149a: PUSH1 0x01 0000149c: PUSH1 0x78 0000149e: SHL 0000149f: SWAP1 000014a0: DIV 000014a1: PUSH1 0x01 000014a3: PUSH1 0x01 000014a5: PUSH1 0x80 000014a7: SHL 000014a8: SUB 000014a9: AND 000014aa: ISZERO 000014ab: ISZERO 000014ac: JUMPDEST 000014ad: ISZERO 000014ae: PUSH2 0x14bd 000014b1: JUMPI 000014b2: PUSH2 0x14bd 000014b5: PUSH1 0x00 000014b7: PUSH1 0x01 000014b9: PUSH2 0x2854 000014bc: JUMP 000014bd: JUMPDEST 000014be: PUSH1 0x0c 000014c0: SLOAD 000014c1: CALLER 000014c2: PUSH1 0x00 000014c4: DUP2 000014c5: DUP2 000014c6: MSTORE 000014c7: PUSH1 0x09 000014c9: PUSH1 0x20 000014cb: SWAP1 000014cc: DUP2 000014cd: MSTORE 000014ce: PUSH1 0x40 000014d0: SWAP2 000014d1: DUP3 000014d2: SWAP1 000014d3: KECCAK256 000014d4: DUP3 000014d5: MLOAD 000014d6: DUP1 000014d7: DUP5 000014d8: ADD 000014d9: DUP5 000014da: MSTORE 000014db: SWAP1 000014dc: SLOAD 000014dd: PUSH2 0xffff 000014e0: DUP1 000014e1: DUP3 000014e2: AND 000014e3: DUP1 000014e4: DUP5 000014e5: MSTORE 000014e6: PUSH3 0x010000 000014ea: SWAP1 000014eb: SWAP3 000014ec: DIV 000014ed: PUSH1 0x01 000014ef: PUSH1 0x01 000014f1: PUSH1 0x80 000014f3: SHL 000014f4: SUB 000014f5: AND 000014f6: DUP4 000014f7: DUP6 000014f8: ADD 000014f9: MSTORE 000014fa: DUP5 000014fb: MLOAD 000014fc: DUP9 000014fd: DUP2 000014fe: MSTORE 000014ff: SWAP7 00001500: AND 00001501: SWAP3 00001502: DUP7 00001503: ADD 00001504: DUP4 00001505: SWAP1 00001506: MSTORE 00001507: SWAP2 00001508: SWAP5 00001509: SWAP1 0000150a: SWAP4 0000150b: SWAP2 0000150c: DUP6 0000150d: EQ 0000150e: SWAP3 0000150f: PUSH32 0x0c53c82ad07e2d592d88ece3b066777dd60f1118e2a081b380efc4358f0d9e2a 00001530: SWAP2 00001531: ADD 00001532: PUSH1 0x40 00001534: MLOAD 00001535: DUP1 00001536: SWAP2 00001537: SUB 00001538: SWAP1 00001539: LOG2 0000153a: PUSH1 0x20 0000153c: DUP3 0000153d: ADD 0000153e: MLOAD 0000153f: PUSH1 0x01 00001541: PUSH1 0x01 00001543: PUSH1 0x80 00001545: SHL 00001546: SUB 00001547: AND 00001548: PUSH1 0x00 0000154a: DUP3 0000154b: ISZERO 0000154c: PUSH2 0x1560 0000154f: JUMPI 00001550: PUSH2 0x1559 00001553: DUP7 00001554: DUP4 00001555: PUSH2 0x328d 00001558: JUMP 00001559: JUMPDEST 0000155a: SWAP1 0000155b: POP 0000155c: PUSH2 0x15c3 0000155f: JUMP 00001560: JUMPDEST 00001561: DUP2 00001562: ISZERO 00001563: PUSH2 0x15a2 00001566: JUMPI 00001567: PUSH1 0x40 00001569: MLOAD 0000156a: PUSH3 0x461bcd 0000156e: PUSH1 0xe5 00001570: SHL 00001571: DUP2 00001572: MSTORE 00001573: PUSH1 0x20 00001575: PUSH1 0x04 00001577: DUP3 00001578: ADD 00001579: MSTORE 0000157a: PUSH1 0x11 0000157c: PUSH1 0x24 0000157e: DUP3 0000157f: ADD 00001580: MSTORE 00001581: PUSH17 0x4578697374696e67207769746864726177 00001593: PUSH1 0x78 00001595: SHL 00001596: PUSH1 0x44 00001598: DUP3 00001599: ADD 0000159a: MSTORE 0000159b: PUSH1 0x64 0000159d: ADD 0000159e: PUSH2 0x0bb2 000015a1: JUMP 000015a2: JUMPDEST 000015a3: POP 000015a4: CALLER 000015a5: PUSH1 0x00 000015a7: SWAP1 000015a8: DUP2 000015a9: MSTORE 000015aa: PUSH1 0x09 000015ac: PUSH1 0x20 000015ae: MSTORE 000015af: PUSH1 0x40 000015b1: SWAP1 000015b2: KECCAK256 000015b3: DUP1 000015b4: SLOAD 000015b5: PUSH2 0xffff 000015b8: NOT 000015b9: AND 000015ba: PUSH2 0xffff 000015bd: DUP7 000015be: AND 000015bf: OR 000015c0: SWAP1 000015c1: SSTORE 000015c2: DUP5 000015c3: JUMPDEST 000015c4: PUSH2 0x15cc 000015c7: DUP2 000015c8: PUSH2 0x2762 000015cb: JUMP 000015cc: JUMPDEST 000015cd: CALLER 000015ce: PUSH1 0x00 000015d0: DUP2 000015d1: DUP2 000015d2: MSTORE 000015d3: PUSH1 0x09 000015d5: PUSH1 0x20 000015d7: MSTORE 000015d8: PUSH1 0x40 000015da: SWAP1 000015db: KECCAK256 000015dc: DUP1 000015dd: SLOAD 000015de: PUSH3 0x010000 000015e2: PUSH1 0x01 000015e4: PUSH1 0x90 000015e6: SHL 000015e7: SUB 000015e8: NOT 000015e9: AND 000015ea: PUSH3 0x010000 000015ee: PUSH1 0x01 000015f0: PUSH1 0x01 000015f2: PUSH1 0x80 000015f4: SHL 000015f5: SUB 000015f6: DUP6 000015f7: AND 000015f8: MUL 000015f9: OR 000015fa: SWAP1 000015fb: SSTORE 000015fc: PUSH2 0x1606 000015ff: SWAP1 00001600: ADDRESS 00001601: DUP9 00001602: PUSH2 0x20f6 00001605: JUMP 00001606: JUMPDEST 00001607: DUP6 00001608: PUSH1 0x0f 0000160a: SLOAD 0000160b: PUSH2 0x1614 0000160e: SWAP2 0000160f: SWAP1 00001610: PUSH2 0x328d 00001613: JUMP 00001614: JUMPDEST 00001615: PUSH1 0x0f 00001617: SSTORE 00001618: POP 00001619: PUSH2 0x0d07 0000161c: SWAP4 0000161d: POP 0000161e: PUSH2 0x22de 00001621: SWAP3 00001622: POP 00001623: POP 00001624: POP 00001625: JUMP 00001626: JUMPDEST 00001627: PUSH1 0x60 00001629: PUSH1 0x05 0000162b: DUP1 0000162c: SLOAD 0000162d: PUSH2 0x0ab4 00001630: SWAP1 00001631: PUSH2 0x31e8 00001634: JUMP 00001635: JUMPDEST 00001636: PUSH1 0x00 00001638: PUSH2 0x1665 0000163b: PUSH2 0x1643 0000163e: PUSH1 0x03 00001640: SLOAD 00001641: SWAP1 00001642: JUMP 00001643: JUMPDEST 00001644: PUSH2 0x164b 00001647: PUSH2 0x1678 0000164a: JUMP 0000164b: JUMPDEST 0000164c: PUSH1 0x0d 0000164e: SLOAD 0000164f: PUSH1 0x0a 00001651: SLOAD 00001652: PUSH1 0x01 00001654: PUSH1 0x01 00001656: PUSH1 0x80 00001658: SHL 00001659: SUB 0000165a: SWAP1 0000165b: SWAP2 0000165c: AND 0000165d: SWAP1 0000165e: PUSH1 0xff 00001660: AND 00001661: PUSH2 0x261c 00001664: JUMP 00001665: JUMPDEST 00001666: SWAP1 00001667: POP 00001668: SWAP1 00001669: JUMP 0000166a: JUMPDEST 0000166b: PUSH1 0x00 0000166d: CALLER 0000166e: PUSH2 0x0b45 00001671: DUP2 00001672: DUP6 00001673: DUP6 00001674: PUSH2 0x20f6 00001677: JUMP 00001678: JUMPDEST 00001679: PUSH1 0x0a 0000167b: SLOAD 0000167c: PUSH1 0x40 0000167e: MLOAD 0000167f: PUSH4 0x70a08231 00001684: PUSH1 0xe0 00001686: SHL 00001687: DUP2 00001688: MSTORE 00001689: ADDRESS 0000168a: PUSH1 0x04 0000168c: DUP3 0000168d: ADD 0000168e: MSTORE 0000168f: PUSH1 0x00 00001691: SWAP2 00001692: PUSH2 0x0100 00001695: SWAP1 00001696: DIV 00001697: PUSH1 0x01 00001699: PUSH1 0x01 0000169b: PUSH1 0xa0 0000169d: SHL 0000169e: SUB 0000169f: AND 000016a0: SWAP1 000016a1: PUSH4 0x70a08231 000016a6: SWAP1 000016a7: PUSH1 0x24 000016a9: ADD 000016aa: PUSH1 0x20 000016ac: PUSH1 0x40 000016ae: MLOAD 000016af: DUP1 000016b0: DUP4 000016b1: SUB 000016b2: DUP2 000016b3: DUP7 000016b4: GAS 000016b5: STATICCALL 000016b6: ISZERO 000016b7: DUP1 000016b8: ISZERO 000016b9: PUSH2 0x16c6 000016bc: JUMPI 000016bd: RETURNDATASIZE 000016be: PUSH1 0x00 000016c0: DUP1 000016c1: RETURNDATACOPY 000016c2: RETURNDATASIZE 000016c3: PUSH1 0x00 000016c5: REVERT 000016c6: JUMPDEST 000016c7: POP 000016c8: POP 000016c9: POP 000016ca: POP 000016cb: PUSH1 0x40 000016cd: MLOAD 000016ce: RETURNDATASIZE 000016cf: PUSH1 0x1f 000016d1: NOT 000016d2: PUSH1 0x1f 000016d4: DUP3 000016d5: ADD 000016d6: AND 000016d7: DUP3 000016d8: ADD 000016d9: DUP1 000016da: PUSH1 0x40 000016dc: MSTORE 000016dd: POP 000016de: DUP2 000016df: ADD 000016e0: SWAP1 000016e1: PUSH2 0x16ea 000016e4: SWAP2 000016e5: SWAP1 000016e6: PUSH2 0x32a0 000016e9: JUMP 000016ea: JUMPDEST 000016eb: PUSH1 0x0c 000016ed: SLOAD 000016ee: PUSH2 0x1665 000016f1: SWAP2 000016f2: SWAP1 000016f3: PUSH3 0x010000 000016f7: SWAP1 000016f8: DIV 000016f9: PUSH1 0x01 000016fb: PUSH1 0x01 000016fd: PUSH1 0x68 000016ff: SHL 00001700: SUB 00001701: AND 00001702: PUSH2 0x328d 00001705: JUMP 00001706: JUMPDEST 00001707: PUSH2 0x170e 0000170a: PUSH2 0x2155 0000170d: JUMP 0000170e: JUMPDEST 0000170f: PUSH1 0x10 00001711: SLOAD 00001712: PUSH1 0x01 00001714: PUSH1 0xa0 00001716: SHL 00001717: SWAP1 00001718: DIV 00001719: PUSH1 0xff 0000171b: AND 0000171c: PUSH2 0x1737 0000171f: JUMPI 00001720: PUSH1 0x40 00001722: MLOAD 00001723: PUSH3 0x461bcd 00001727: PUSH1 0xe5 00001729: SHL 0000172a: DUP2 0000172b: MSTORE 0000172c: PUSH1 0x04 0000172e: ADD 0000172f: PUSH2 0x0bb2 00001732: SWAP1 00001733: PUSH2 0x326c 00001736: JUMP 00001737: JUMPDEST 00001738: PUSH1 0x00 0000173a: DUP2 0000173b: GT 0000173c: PUSH2 0x1757 0000173f: JUMPI 00001740: PUSH1 0x40 00001742: MLOAD 00001743: PUSH3 0x461bcd 00001747: PUSH1 0xe5 00001749: SHL 0000174a: DUP2 0000174b: MSTORE 0000174c: PUSH1 0x04 0000174e: ADD 0000174f: PUSH2 0x0bb2 00001752: SWAP1 00001753: PUSH2 0x3222 00001756: JUMP 00001757: JUMPDEST 00001758: PUSH2 0x1761 0000175b: DUP2 0000175c: CALLER 0000175d: PUSH2 0x2327 00001760: JUMP 00001761: JUMPDEST 00001762: PUSH1 0x0a 00001764: SLOAD 00001765: PUSH2 0x177e 00001768: SWAP1 00001769: PUSH2 0x0100 0000176c: SWAP1 0000176d: DIV 0000176e: PUSH1 0x01 00001770: PUSH1 0x01 00001772: PUSH1 0xa0 00001774: SHL 00001775: SUB 00001776: AND 00001777: CALLER 00001778: ADDRESS 00001779: DUP5 0000177a: PUSH2 0x25b5 0000177d: JUMP 0000177e: JUMPDEST 0000177f: PUSH2 0x0d07 00001782: PUSH1 0x01 00001784: PUSH1 0x00 00001786: SSTORE 00001787: JUMP 00001788: JUMPDEST 00001789: PUSH1 0x10 0000178b: SLOAD 0000178c: PUSH1 0x00 0000178e: SWAP1 0000178f: PUSH1 0x01 00001791: PUSH1 0xa0 00001793: SHL 00001794: SWAP1 00001795: DIV 00001796: PUSH1 0xff 00001798: AND 00001799: DUP1 0000179a: PUSH2 0x0b70 0000179d: JUMPI 0000179e: POP 0000179f: PUSH1 0x11 000017a1: SLOAD 000017a2: PUSH1 0x40 000017a4: MLOAD 000017a5: PUSH1 0x01 000017a7: PUSH1 0x01 000017a9: PUSH1 0x60 000017ab: SHL 000017ac: SUB 000017ad: NOT 000017ae: PUSH1 0x60 000017b0: DUP7 000017b1: SWAP1 000017b2: SHL 000017b3: AND 000017b4: PUSH1 0x20 000017b6: DUP3 000017b7: ADD 000017b8: MSTORE 000017b9: PUSH2 0x0b70 000017bc: SWAP2 000017bd: SWAP1 000017be: PUSH1 0x34 000017c0: ADD 000017c1: PUSH1 0x40 000017c3: MLOAD 000017c4: PUSH1 0x20 000017c6: DUP2 000017c7: DUP4 000017c8: SUB 000017c9: SUB 000017ca: DUP2 000017cb: MSTORE 000017cc: SWAP1 000017cd: PUSH1 0x40 000017cf: MSTORE 000017d0: DUP1 000017d1: MLOAD 000017d2: SWAP1 000017d3: PUSH1 0x20 000017d5: ADD 000017d6: KECCAK256 000017d7: DUP5 000017d8: PUSH2 0x22e5 000017db: SWAP1 000017dc: SWAP3 000017dd: SWAP2 000017de: SWAP1 000017df: PUSH4 0xffffffff 000017e4: AND 000017e5: JUMP 000017e6: JUMPDEST 000017e7: PUSH1 0x00 000017e9: DUP1 000017ea: PUSH1 0x00 000017ec: PUSH2 0x17f4 000017ef: DUP5 000017f0: PUSH2 0x1da9 000017f3: JUMP 000017f4: JUMPDEST 000017f5: SWAP1 000017f6: SWAP3 000017f7: POP 000017f8: SWAP1 000017f9: POP 000017fa: PUSH2 0x12b2 000017fd: DUP2 000017fe: DUP4 000017ff: PUSH2 0x328d 00001802: JUMP 00001803: JUMPDEST 00001804: PUSH2 0x180b 00001807: PUSH2 0x2827 0000180a: JUMP 0000180b: JUMPDEST 0000180c: PUSH1 0x01 0000180e: PUSH1 0x01 00001810: PUSH1 0xa0 00001812: SHL 00001813: SUB 00001814: DUP2 00001815: AND 00001816: PUSH2 0x184e 00001819: JUMPI 0000181a: PUSH1 0x40 0000181c: MLOAD 0000181d: PUSH3 0x461bcd 00001821: PUSH1 0xe5 00001823: SHL 00001824: DUP2 00001825: MSTORE 00001826: PUSH1 0x20 00001828: PUSH1 0x04 0000182a: DUP3 0000182b: ADD 0000182c: MSTORE 0000182d: PUSH1 0x0a 0000182f: PUSH1 0x24 00001831: DUP3 00001832: ADD 00001833: MSTORE 00001834: PUSH10 0x10b732bba5b2b2b832b9 0000183f: PUSH1 0xb1 00001841: SHL 00001842: PUSH1 0x44 00001844: DUP3 00001845: ADD 00001846: MSTORE 00001847: PUSH1 0x64 00001849: ADD 0000184a: PUSH2 0x0bb2 0000184d: JUMP 0000184e: JUMPDEST 0000184f: PUSH1 0x10 00001851: DUP1 00001852: SLOAD 00001853: PUSH1 0x01 00001855: PUSH1 0x01 00001857: PUSH1 0xa0 00001859: SHL 0000185a: SUB 0000185b: NOT 0000185c: AND 0000185d: PUSH1 0x01 0000185f: PUSH1 0x01 00001861: PUSH1 0xa0 00001863: SHL 00001864: SUB 00001865: SWAP3 00001866: SWAP1 00001867: SWAP3 00001868: AND 00001869: SWAP2 0000186a: SWAP1 0000186b: SWAP2 0000186c: OR 0000186d: SWAP1 0000186e: SSTORE 0000186f: JUMP 00001870: JUMPDEST 00001871: PUSH2 0x1878 00001874: PUSH2 0x2155 00001877: JUMP 00001878: JUMPDEST 00001879: PUSH1 0x00 0000187b: DUP2 0000187c: GT 0000187d: PUSH2 0x18b5 00001880: JUMPI 00001881: PUSH1 0x40 00001883: MLOAD 00001884: PUSH3 0x461bcd 00001888: PUSH1 0xe5 0000188a: SHL 0000188b: DUP2 0000188c: MSTORE 0000188d: PUSH1 0x20 0000188f: PUSH1 0x04 00001891: DUP3 00001892: ADD 00001893: MSTORE 00001894: PUSH1 0x0a 00001896: PUSH1 0x24 00001898: DUP3 00001899: ADD 0000189a: MSTORE 0000189b: PUSH10 0x216e756d536861726573 000018a6: PUSH1 0xb0 000018a8: SHL 000018a9: PUSH1 0x44 000018ab: DUP3 000018ac: ADD 000018ad: MSTORE 000018ae: PUSH1 0x64 000018b0: ADD 000018b1: PUSH2 0x0bb2 000018b4: JUMP 000018b5: JUMPDEST 000018b6: PUSH2 0x177e 000018b9: DUP2 000018ba: PUSH1 0x00 000018bc: PUSH2 0x2854 000018bf: JUMP 000018c0: JUMPDEST 000018c1: PUSH2 0x18c8 000018c4: PUSH2 0x2155 000018c7: JUMP 000018c8: JUMPDEST 000018c9: PUSH1 0x10 000018cb: SLOAD 000018cc: PUSH1 0x01 000018ce: PUSH1 0xa0 000018d0: SHL 000018d1: SWAP1 000018d2: DIV 000018d3: PUSH1 0xff 000018d5: AND 000018d6: PUSH2 0x193b 000018d9: JUMPI 000018da: PUSH1 0x11 000018dc: SLOAD 000018dd: PUSH1 0x40 000018df: MLOAD 000018e0: PUSH1 0x01 000018e2: PUSH1 0x01 000018e4: PUSH1 0x60 000018e6: SHL 000018e7: SUB 000018e8: NOT 000018e9: CALLER 000018ea: PUSH1 0x60 000018ec: SHL 000018ed: AND 000018ee: PUSH1 0x20 000018f0: DUP3 000018f1: ADD 000018f2: MSTORE 000018f3: PUSH2 0x18ff 000018f6: SWAP2 000018f7: SWAP1 000018f8: PUSH1 0x34 000018fa: ADD 000018fb: PUSH2 0x0d45 000018fe: JUMP 000018ff: JUMPDEST 00001900: PUSH2 0x193b 00001903: JUMPI 00001904: PUSH1 0x40 00001906: MLOAD 00001907: PUSH3 0x461bcd 0000190b: PUSH1 0xe5 0000190d: SHL 0000190e: DUP2 0000190f: MSTORE 00001910: PUSH1 0x20 00001912: PUSH1 0x04 00001914: DUP3 00001915: ADD 00001916: MSTORE 00001917: PUSH1 0x0d 00001919: PUSH1 0x24 0000191b: DUP3 0000191c: ADD 0000191d: MSTORE 0000191e: PUSH13 0x24b73b30b634b210383937b7b3 0000192c: PUSH1 0x99 0000192e: SHL 0000192f: PUSH1 0x44 00001931: DUP3 00001932: ADD 00001933: MSTORE 00001934: PUSH1 0x64 00001936: ADD 00001937: PUSH2 0x0bb2 0000193a: JUMP 0000193b: JUMPDEST 0000193c: PUSH1 0x0a 0000193e: SLOAD 0000193f: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00001960: PUSH1 0x01 00001962: PUSH1 0x01 00001964: PUSH1 0xa0 00001966: SHL 00001967: SUB 00001968: SWAP1 00001969: DUP2 0000196a: AND 0000196b: PUSH2 0x0100 0000196e: SWAP1 0000196f: SWAP3 00001970: DIV 00001971: AND 00001972: EQ 00001973: PUSH2 0x198e 00001976: JUMPI 00001977: PUSH1 0x40 00001979: MLOAD 0000197a: PUSH3 0x461bcd 0000197e: PUSH1 0xe5 00001980: SHL 00001981: DUP2 00001982: MSTORE 00001983: PUSH1 0x04 00001985: ADD 00001986: PUSH2 0x0bb2 00001989: SWAP1 0000198a: PUSH2 0x32b9 0000198d: JUMP 0000198e: JUMPDEST 0000198f: PUSH1 0x00 00001991: CALLVALUE 00001992: GT 00001993: PUSH2 0x19ae 00001996: JUMPI 00001997: PUSH1 0x40 00001999: MLOAD 0000199a: PUSH3 0x461bcd 0000199e: PUSH1 0xe5 000019a0: SHL 000019a1: DUP2 000019a2: MSTORE 000019a3: PUSH1 0x04 000019a5: ADD 000019a6: PUSH2 0x0bb2 000019a9: SWAP1 000019aa: PUSH2 0x32d8 000019ad: JUMP 000019ae: JUMPDEST 000019af: PUSH2 0x19b8 000019b2: CALLVALUE 000019b3: CALLER 000019b4: PUSH2 0x2327 000019b7: JUMP 000019b8: JUMPDEST 000019b9: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000019da: PUSH1 0x01 000019dc: PUSH1 0x01 000019de: PUSH1 0xa0 000019e0: SHL 000019e1: SUB 000019e2: AND 000019e3: PUSH4 0xd0e30db0 000019e8: CALLVALUE 000019e9: PUSH1 0x40 000019eb: MLOAD 000019ec: DUP3 000019ed: PUSH4 0xffffffff 000019f2: AND 000019f3: PUSH1 0xe0 000019f5: SHL 000019f6: DUP2 000019f7: MSTORE 000019f8: PUSH1 0x04 000019fa: ADD 000019fb: PUSH1 0x00 000019fd: PUSH1 0x40 000019ff: MLOAD 00001a00: DUP1 00001a01: DUP4 00001a02: SUB 00001a03: DUP2 00001a04: DUP6 00001a05: DUP9 00001a06: DUP1 00001a07: EXTCODESIZE 00001a08: ISZERO 00001a09: DUP1 00001a0a: ISZERO 00001a0b: PUSH2 0x1a13 00001a0e: JUMPI 00001a0f: PUSH1 0x00 00001a11: DUP1 00001a12: REVERT 00001a13: JUMPDEST 00001a14: POP 00001a15: GAS 00001a16: CALL 00001a17: ISZERO 00001a18: DUP1 00001a19: ISZERO 00001a1a: PUSH2 0x1a27 00001a1d: JUMPI 00001a1e: RETURNDATASIZE 00001a1f: PUSH1 0x00 00001a21: DUP1 00001a22: RETURNDATACOPY 00001a23: RETURNDATASIZE 00001a24: PUSH1 0x00 00001a26: REVERT 00001a27: JUMPDEST 00001a28: POP 00001a29: POP 00001a2a: POP 00001a2b: POP 00001a2c: POP 00001a2d: PUSH2 0x0d07 00001a30: PUSH1 0x01 00001a32: PUSH1 0x00 00001a34: SSTORE 00001a35: JUMP 00001a36: JUMPDEST 00001a37: PUSH2 0x1a3e 00001a3a: PUSH2 0x2827 00001a3d: JUMP 00001a3e: JUMPDEST 00001a3f: PUSH1 0x00 00001a41: DUP2 00001a42: PUSH1 0x60 00001a44: ADD 00001a45: MLOAD 00001a46: PUSH1 0x01 00001a48: PUSH1 0x01 00001a4a: PUSH1 0x68 00001a4c: SHL 00001a4d: SUB 00001a4e: AND 00001a4f: GT 00001a50: PUSH2 0x1a85 00001a53: JUMPI 00001a54: PUSH1 0x40 00001a56: MLOAD 00001a57: PUSH3 0x461bcd 00001a5b: PUSH1 0xe5 00001a5d: SHL 00001a5e: DUP2 00001a5f: MSTORE 00001a60: PUSH1 0x20 00001a62: PUSH1 0x04 00001a64: DUP3 00001a65: ADD 00001a66: MSTORE 00001a67: PUSH1 0x07 00001a69: PUSH1 0x24 00001a6b: DUP3 00001a6c: ADD 00001a6d: MSTORE 00001a6e: PUSH7 0x0216e657743617 00001a76: PUSH1 0xcc 00001a78: SHL 00001a79: PUSH1 0x44 00001a7b: DUP3 00001a7c: ADD 00001a7d: MSTORE 00001a7e: PUSH1 0x64 00001a80: ADD 00001a81: PUSH2 0x0bb2 00001a84: JUMP 00001a85: JUMPDEST 00001a86: PUSH1 0x20 00001a88: DUP2 00001a89: ADD 00001a8a: MLOAD 00001a8b: PUSH1 0x01 00001a8d: PUSH1 0x01 00001a8f: PUSH1 0xa0 00001a91: SHL 00001a92: SUB 00001a93: AND 00001a94: PUSH2 0x1acb 00001a97: JUMPI 00001a98: PUSH1 0x40 00001a9a: MLOAD 00001a9b: PUSH3 0x461bcd 00001a9f: PUSH1 0xe5 00001aa1: SHL 00001aa2: DUP2 00001aa3: MSTORE 00001aa4: PUSH1 0x20 00001aa6: PUSH1 0x04 00001aa8: DUP3 00001aa9: ADD 00001aaa: MSTORE 00001aab: PUSH1 0x09 00001aad: PUSH1 0x24 00001aaf: DUP3 00001ab0: ADD 00001ab1: MSTORE 00001ab2: PUSH9 0x085b995dd05cdcd95d 00001abc: PUSH1 0xba 00001abe: SHL 00001abf: PUSH1 0x44 00001ac1: DUP3 00001ac2: ADD 00001ac3: MSTORE 00001ac4: PUSH1 0x64 00001ac6: ADD 00001ac7: PUSH2 0x0bb2 00001aca: JUMP 00001acb: JUMPDEST 00001acc: DUP1 00001acd: MLOAD 00001ace: PUSH1 0x0a 00001ad0: DUP1 00001ad1: SLOAD 00001ad2: PUSH1 0x20 00001ad4: DUP5 00001ad5: ADD 00001ad6: MLOAD 00001ad7: PUSH1 0x40 00001ad9: DUP6 00001ada: ADD 00001adb: MLOAD 00001adc: PUSH7 0xffffffffffffff 00001ae4: AND 00001ae5: PUSH1 0x01 00001ae7: PUSH1 0xa8 00001ae9: SHL 00001aea: MUL 00001aeb: PUSH7 0xffffffffffffff 00001af3: PUSH1 0xa8 00001af5: SHL 00001af6: NOT 00001af7: PUSH1 0x01 00001af9: PUSH1 0x01 00001afb: PUSH1 0xa0 00001afd: SHL 00001afe: SUB 00001aff: SWAP1 00001b00: SWAP3 00001b01: AND 00001b02: PUSH2 0x0100 00001b05: MUL 00001b06: PUSH1 0x01 00001b08: PUSH1 0x01 00001b0a: PUSH1 0xa8 00001b0c: SHL 00001b0d: SUB 00001b0e: NOT 00001b0f: SWAP1 00001b10: SWAP4 00001b11: AND 00001b12: PUSH1 0xff 00001b14: SWAP1 00001b15: SWAP6 00001b16: AND 00001b17: SWAP5 00001b18: SWAP1 00001b19: SWAP5 00001b1a: OR 00001b1b: SWAP2 00001b1c: SWAP1 00001b1d: SWAP2 00001b1e: OR 00001b1f: AND 00001b20: SWAP2 00001b21: SWAP1 00001b22: SWAP2 00001b23: OR 00001b24: SWAP1 00001b25: SSTORE 00001b26: PUSH1 0x60 00001b28: ADD 00001b29: MLOAD 00001b2a: PUSH1 0x0b 00001b2c: DUP1 00001b2d: SLOAD 00001b2e: PUSH1 0x01 00001b30: PUSH1 0x01 00001b32: PUSH1 0x68 00001b34: SHL 00001b35: SUB 00001b36: SWAP1 00001b37: SWAP3 00001b38: AND 00001b39: PUSH13 0xffffffffffffffffffffffffff 00001b47: NOT 00001b48: SWAP1 00001b49: SWAP3 00001b4a: AND 00001b4b: SWAP2 00001b4c: SWAP1 00001b4d: SWAP2 00001b4e: OR 00001b4f: SWAP1 00001b50: SSTORE 00001b51: JUMP 00001b52: JUMPDEST 00001b53: PUSH2 0x1b5a 00001b56: PUSH2 0x2827 00001b59: JUMP 00001b5a: JUMPDEST 00001b5b: PUSH1 0x01 00001b5d: PUSH1 0x01 00001b5f: PUSH1 0xa0 00001b61: SHL 00001b62: SUB 00001b63: DUP2 00001b64: AND 00001b65: PUSH2 0x1b84 00001b68: JUMPI 00001b69: PUSH1 0x40 00001b6b: MLOAD 00001b6c: PUSH4 0x1e4fbdf7 00001b71: PUSH1 0xe0 00001b73: SHL 00001b74: DUP2 00001b75: MSTORE 00001b76: PUSH1 0x00 00001b78: PUSH1 0x04 00001b7a: DUP3 00001b7b: ADD 00001b7c: MSTORE 00001b7d: PUSH1 0x24 00001b7f: ADD 00001b80: PUSH2 0x0bb2 00001b83: JUMP 00001b84: JUMPDEST 00001b85: PUSH2 0x0d07 00001b88: DUP2 00001b89: PUSH2 0x2a01 00001b8c: JUMP 00001b8d: JUMPDEST 00001b8e: PUSH2 0x1b95 00001b91: PUSH2 0x2155 00001b94: JUMP 00001b95: JUMPDEST 00001b96: PUSH1 0x10 00001b98: SLOAD 00001b99: PUSH1 0x01 00001b9b: PUSH1 0xa0 00001b9d: SHL 00001b9e: SWAP1 00001b9f: DIV 00001ba0: PUSH1 0xff 00001ba2: AND 00001ba3: PUSH2 0x1bbe 00001ba6: JUMPI 00001ba7: PUSH1 0x40 00001ba9: MLOAD 00001baa: PUSH3 0x461bcd 00001bae: PUSH1 0xe5 00001bb0: SHL 00001bb1: DUP2 00001bb2: MSTORE 00001bb3: PUSH1 0x04 00001bb5: ADD 00001bb6: PUSH2 0x0bb2 00001bb9: SWAP1 00001bba: PUSH2 0x326c 00001bbd: JUMP 00001bbe: JUMPDEST 00001bbf: PUSH1 0x0a 00001bc1: SLOAD 00001bc2: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00001be3: PUSH1 0x01 00001be5: PUSH1 0x01 00001be7: PUSH1 0xa0 00001be9: SHL 00001bea: SUB 00001beb: SWAP1 00001bec: DUP2 00001bed: AND 00001bee: PUSH2 0x0100 00001bf1: SWAP1 00001bf2: SWAP3 00001bf3: DIV 00001bf4: AND 00001bf5: EQ 00001bf6: PUSH2 0x1c11 00001bf9: JUMPI 00001bfa: PUSH1 0x40 00001bfc: MLOAD 00001bfd: PUSH3 0x461bcd 00001c01: PUSH1 0xe5 00001c03: SHL 00001c04: DUP2 00001c05: MSTORE 00001c06: PUSH1 0x04 00001c08: ADD 00001c09: PUSH2 0x0bb2 00001c0c: SWAP1 00001c0d: PUSH2 0x32b9 00001c10: JUMP 00001c11: JUMPDEST 00001c12: PUSH1 0x00 00001c14: CALLVALUE 00001c15: GT 00001c16: PUSH2 0x1c31 00001c19: JUMPI 00001c1a: PUSH1 0x40 00001c1c: MLOAD 00001c1d: PUSH3 0x461bcd 00001c21: PUSH1 0xe5 00001c23: SHL 00001c24: DUP2 00001c25: MSTORE 00001c26: PUSH1 0x04 00001c28: ADD 00001c29: PUSH2 0x0bb2 00001c2c: SWAP1 00001c2d: PUSH2 0x32d8 00001c30: JUMP 00001c31: JUMPDEST 00001c32: PUSH1 0x01 00001c34: PUSH1 0x01 00001c36: PUSH1 0xa0 00001c38: SHL 00001c39: SUB 00001c3a: DUP2 00001c3b: AND 00001c3c: PUSH2 0x1c73 00001c3f: JUMPI 00001c40: PUSH1 0x40 00001c42: MLOAD 00001c43: PUSH3 0x461bcd 00001c47: PUSH1 0xe5 00001c49: SHL 00001c4a: DUP2 00001c4b: MSTORE 00001c4c: PUSH1 0x20 00001c4e: PUSH1 0x04 00001c50: DUP3 00001c51: ADD 00001c52: MSTORE 00001c53: PUSH1 0x09 00001c55: PUSH1 0x24 00001c57: DUP3 00001c58: ADD 00001c59: MSTORE 00001c5a: PUSH9 0x10b1b932b234ba37b9 00001c64: PUSH1 0xb9 00001c66: SHL 00001c67: PUSH1 0x44 00001c69: DUP3 00001c6a: ADD 00001c6b: MSTORE 00001c6c: PUSH1 0x64 00001c6e: ADD 00001c6f: PUSH2 0x0bb2 00001c72: JUMP 00001c73: JUMPDEST 00001c74: PUSH2 0x19b8 00001c77: CALLVALUE 00001c78: DUP3 00001c79: PUSH2 0x2327 00001c7c: JUMP 00001c7d: JUMPDEST 00001c7e: PUSH2 0x1c85 00001c81: PUSH2 0x2155 00001c84: JUMP 00001c85: JUMPDEST 00001c86: PUSH1 0x10 00001c88: SLOAD 00001c89: PUSH1 0x01 00001c8b: PUSH1 0xa0 00001c8d: SHL 00001c8e: SWAP1 00001c8f: DIV 00001c90: PUSH1 0xff 00001c92: AND 00001c93: PUSH2 0x1cae 00001c96: JUMPI 00001c97: PUSH1 0x40 00001c99: MLOAD 00001c9a: PUSH3 0x461bcd 00001c9e: PUSH1 0xe5 00001ca0: SHL 00001ca1: DUP2 00001ca2: MSTORE 00001ca3: PUSH1 0x04 00001ca5: ADD 00001ca6: PUSH2 0x0bb2 00001ca9: SWAP1 00001caa: PUSH2 0x326c 00001cad: JUMP 00001cae: JUMPDEST 00001caf: PUSH1 0x0a 00001cb1: SLOAD 00001cb2: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00001cd3: PUSH1 0x01 00001cd5: PUSH1 0x01 00001cd7: PUSH1 0xa0 00001cd9: SHL 00001cda: SUB 00001cdb: SWAP1 00001cdc: DUP2 00001cdd: AND 00001cde: PUSH2 0x0100 00001ce1: SWAP1 00001ce2: SWAP3 00001ce3: DIV 00001ce4: AND 00001ce5: EQ 00001ce6: PUSH2 0x1d01 00001ce9: JUMPI 00001cea: PUSH1 0x40 00001cec: MLOAD 00001ced: PUSH3 0x461bcd 00001cf1: PUSH1 0xe5 00001cf3: SHL 00001cf4: DUP2 00001cf5: MSTORE 00001cf6: PUSH1 0x04 00001cf8: ADD 00001cf9: PUSH2 0x0bb2 00001cfc: SWAP1 00001cfd: PUSH2 0x32b9 00001d00: JUMP 00001d01: JUMPDEST 00001d02: PUSH1 0x00 00001d04: CALLVALUE 00001d05: GT 00001d06: PUSH2 0x1d21 00001d09: JUMPI 00001d0a: PUSH1 0x40 00001d0c: MLOAD 00001d0d: PUSH3 0x461bcd 00001d11: PUSH1 0xe5 00001d13: SHL 00001d14: DUP2 00001d15: MSTORE 00001d16: PUSH1 0x04 00001d18: ADD 00001d19: PUSH2 0x0bb2 00001d1c: SWAP1 00001d1d: PUSH2 0x32d8 00001d20: JUMP 00001d21: JUMPDEST 00001d22: PUSH2 0x1d2b 00001d25: CALLVALUE 00001d26: CALLER 00001d27: PUSH2 0x2327 00001d2a: JUMP 00001d2b: JUMPDEST 00001d2c: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 00001d4d: PUSH1 0x01 00001d4f: PUSH1 0x01 00001d51: PUSH1 0xa0 00001d53: SHL 00001d54: SUB 00001d55: AND 00001d56: PUSH4 0xd0e30db0 00001d5b: CALLVALUE 00001d5c: PUSH1 0x40 00001d5e: MLOAD 00001d5f: DUP3 00001d60: PUSH4 0xffffffff 00001d65: AND 00001d66: PUSH1 0xe0 00001d68: SHL 00001d69: DUP2 00001d6a: MSTORE 00001d6b: PUSH1 0x04 00001d6d: ADD 00001d6e: PUSH1 0x00 00001d70: PUSH1 0x40 00001d72: MLOAD 00001d73: DUP1 00001d74: DUP4 00001d75: SUB 00001d76: DUP2 00001d77: DUP6 00001d78: DUP9 00001d79: DUP1 00001d7a: EXTCODESIZE 00001d7b: ISZERO 00001d7c: DUP1 00001d7d: ISZERO 00001d7e: PUSH2 0x1d86 00001d81: JUMPI 00001d82: PUSH1 0x00 00001d84: DUP1 00001d85: REVERT 00001d86: JUMPDEST 00001d87: POP 00001d88: GAS 00001d89: CALL 00001d8a: ISZERO 00001d8b: DUP1 00001d8c: ISZERO 00001d8d: PUSH2 0x1d9a 00001d90: JUMPI 00001d91: RETURNDATASIZE 00001d92: PUSH1 0x00 00001d94: DUP1 00001d95: RETURNDATACOPY 00001d96: RETURNDATASIZE 00001d97: PUSH1 0x00 00001d99: REVERT 00001d9a: JUMPDEST 00001d9b: POP 00001d9c: POP 00001d9d: POP 00001d9e: POP 00001d9f: POP 00001da0: PUSH2 0x13fc 00001da3: PUSH1 0x01 00001da5: PUSH1 0x00 00001da7: SSTORE 00001da8: JUMP 00001da9: JUMPDEST 00001daa: PUSH1 0x01 00001dac: PUSH1 0x01 00001dae: PUSH1 0xa0 00001db0: SHL 00001db1: SUB 00001db2: DUP2 00001db3: AND 00001db4: PUSH1 0x00 00001db6: SWAP1 00001db7: DUP2 00001db8: MSTORE 00001db9: PUSH1 0x07 00001dbb: PUSH1 0x20 00001dbd: SWAP1 00001dbe: DUP2 00001dbf: MSTORE 00001dc0: PUSH1 0x40 00001dc2: DUP1 00001dc3: DUP4 00001dc4: KECCAK256 00001dc5: DUP2 00001dc6: MLOAD 00001dc7: PUSH1 0x60 00001dc9: DUP2 00001dca: ADD 00001dcb: DUP4 00001dcc: MSTORE 00001dcd: SWAP1 00001dce: SLOAD 00001dcf: PUSH2 0xffff 00001dd2: DUP2 00001dd3: AND 00001dd4: DUP1 00001dd5: DUP4 00001dd6: MSTORE 00001dd7: PUSH3 0x010000 00001ddb: DUP3 00001ddc: DIV 00001ddd: PUSH1 0x01 00001ddf: PUSH1 0x01 00001de1: PUSH1 0x68 00001de3: SHL 00001de4: SUB 00001de5: AND 00001de6: SWAP5 00001de7: DUP4 00001de8: ADD 00001de9: SWAP5 00001dea: SWAP1 00001deb: SWAP5 00001dec: MSTORE 00001ded: PUSH1 0x01 00001def: PUSH1 0x78 00001df1: SHL 00001df2: SWAP1 00001df3: DIV 00001df4: PUSH1 0x01 00001df6: PUSH1 0x01 00001df8: PUSH1 0x80 00001dfa: SHL 00001dfb: SUB 00001dfc: AND 00001dfd: SWAP2 00001dfe: DUP2 00001dff: ADD 00001e00: SWAP2 00001e01: SWAP1 00001e02: SWAP2 00001e03: MSTORE 00001e04: DUP3 00001e05: SWAP2 00001e06: PUSH1 0x01 00001e08: GT 00001e09: ISZERO 00001e0a: PUSH2 0x1e2b 00001e0d: JUMPI 00001e0e: POP 00001e0f: POP 00001e10: POP 00001e11: PUSH1 0x01 00001e13: PUSH1 0x01 00001e15: PUSH1 0xa0 00001e17: SHL 00001e18: SUB 00001e19: AND 00001e1a: PUSH1 0x00 00001e1c: SWAP1 00001e1d: DUP2 00001e1e: MSTORE 00001e1f: PUSH1 0x01 00001e21: PUSH1 0x20 00001e23: MSTORE 00001e24: PUSH1 0x40 00001e26: DUP2 00001e27: KECCAK256 00001e28: SLOAD 00001e29: SWAP2 00001e2a: JUMP 00001e2b: JUMPDEST 00001e2c: PUSH1 0x0c 00001e2e: SLOAD 00001e2f: DUP2 00001e30: MLOAD 00001e31: PUSH2 0xffff 00001e34: SWAP1 00001e35: DUP2 00001e36: AND 00001e37: PUSH1 0x00 00001e39: SWAP1 00001e3a: DUP2 00001e3b: MSTORE 00001e3c: PUSH1 0x08 00001e3e: PUSH1 0x20 00001e40: MSTORE 00001e41: PUSH1 0x40 00001e43: DUP2 00001e44: KECCAK256 00001e45: SLOAD 00001e46: PUSH1 0x0a 00001e48: SLOAD 00001e49: SWAP2 00001e4a: SWAP4 00001e4b: PUSH2 0x1e5c 00001e4e: SWAP4 00001e4f: DUP7 00001e50: SWAP4 00001e51: SWAP2 00001e52: AND 00001e53: SWAP2 00001e54: SWAP1 00001e55: PUSH1 0xff 00001e57: AND 00001e58: PUSH2 0x2a53 00001e5b: JUMP 00001e5c: JUMPDEST 00001e5d: SWAP1 00001e5e: POP 00001e5f: PUSH2 0x1e7d 00001e62: DUP6 00001e63: PUSH1 0x01 00001e65: PUSH1 0x01 00001e67: PUSH1 0xa0 00001e69: SHL 00001e6a: SUB 00001e6b: AND 00001e6c: PUSH1 0x00 00001e6e: SWAP1 00001e6f: DUP2 00001e70: MSTORE 00001e71: PUSH1 0x01 00001e73: PUSH1 0x20 00001e75: MSTORE 00001e76: PUSH1 0x40 00001e78: SWAP1 00001e79: KECCAK256 00001e7a: SLOAD 00001e7b: SWAP1 00001e7c: JUMP 00001e7d: JUMPDEST 00001e7e: SWAP6 00001e7f: SWAP1 00001e80: SWAP5 00001e81: POP 00001e82: SWAP3 00001e83: POP 00001e84: POP 00001e85: POP 00001e86: JUMP 00001e87: JUMPDEST 00001e88: PUSH2 0x1e8f 00001e8b: PUSH2 0x2155 00001e8e: JUMP 00001e8f: JUMPDEST 00001e90: CALLER 00001e91: PUSH1 0x00 00001e93: SWAP1 00001e94: DUP2 00001e95: MSTORE 00001e96: PUSH1 0x09 00001e98: PUSH1 0x20 00001e9a: MSTORE 00001e9b: PUSH1 0x40 00001e9d: SWAP1 00001e9e: KECCAK256 00001e9f: DUP1 00001ea0: SLOAD 00001ea1: PUSH1 0x01 00001ea3: PUSH1 0x01 00001ea5: PUSH1 0x80 00001ea7: SHL 00001ea8: SUB 00001ea9: PUSH3 0x010000 00001ead: DUP3 00001eae: DIV 00001eaf: AND 00001eb0: SWAP1 00001eb1: PUSH2 0xffff 00001eb4: AND 00001eb5: DUP2 00001eb6: PUSH2 0x1ef1 00001eb9: JUMPI 00001eba: PUSH1 0x40 00001ebc: MLOAD 00001ebd: PUSH3 0x461bcd 00001ec1: PUSH1 0xe5 00001ec3: SHL 00001ec4: DUP2 00001ec5: MSTORE 00001ec6: PUSH1 0x20 00001ec8: PUSH1 0x04 00001eca: DUP3 00001ecb: ADD 00001ecc: MSTORE 00001ecd: PUSH1 0x0d 00001ecf: PUSH1 0x24 00001ed1: DUP3 00001ed2: ADD 00001ed3: MSTORE 00001ed4: PUSH13 0x139bdd081a5b9a5d1a585d1959 00001ee2: PUSH1 0x9a 00001ee4: SHL 00001ee5: PUSH1 0x44 00001ee7: DUP3 00001ee8: ADD 00001ee9: MSTORE 00001eea: PUSH1 0x64 00001eec: ADD 00001eed: PUSH2 0x0bb2 00001ef0: JUMP 00001ef1: JUMPDEST 00001ef2: PUSH1 0x0c 00001ef4: SLOAD 00001ef5: PUSH2 0xffff 00001ef8: AND 00001ef9: DUP2 00001efa: LT 00001efb: PUSH2 0x1f39 00001efe: JUMPI 00001eff: PUSH1 0x40 00001f01: MLOAD 00001f02: PUSH3 0x461bcd 00001f06: PUSH1 0xe5 00001f08: SHL 00001f09: DUP2 00001f0a: MSTORE 00001f0b: PUSH1 0x20 00001f0d: PUSH1 0x04 00001f0f: DUP3 00001f10: ADD 00001f11: MSTORE 00001f12: PUSH1 0x10 00001f14: PUSH1 0x24 00001f16: DUP3 00001f17: ADD 00001f18: MSTORE 00001f19: PUSH16 0x149bdd5b99081b9bdd0818db1bdcd959 00001f2a: PUSH1 0x82 00001f2c: SHL 00001f2d: PUSH1 0x44 00001f2f: DUP3 00001f30: ADD 00001f31: MSTORE 00001f32: PUSH1 0x64 00001f34: ADD 00001f35: PUSH2 0x0bb2 00001f38: JUMP 00001f39: JUMPDEST 00001f3a: CALLER 00001f3b: PUSH1 0x00 00001f3d: SWAP1 00001f3e: DUP2 00001f3f: MSTORE 00001f40: PUSH1 0x09 00001f42: PUSH1 0x20 00001f44: MSTORE 00001f45: PUSH1 0x40 00001f47: SWAP1 00001f48: KECCAK256 00001f49: DUP1 00001f4a: SLOAD 00001f4b: PUSH3 0x010000 00001f4f: PUSH1 0x01 00001f51: PUSH1 0x90 00001f53: SHL 00001f54: SUB 00001f55: NOT 00001f56: AND 00001f57: SWAP1 00001f58: SSTORE 00001f59: PUSH1 0x0d 00001f5b: SLOAD 00001f5c: PUSH2 0x1f76 00001f5f: SWAP1 00001f60: DUP4 00001f61: SWAP1 00001f62: PUSH1 0x01 00001f64: PUSH1 0x80 00001f66: SHL 00001f67: SWAP1 00001f68: DIV 00001f69: PUSH1 0x01 00001f6b: PUSH1 0x01 00001f6d: PUSH1 0x80 00001f6f: SHL 00001f70: SUB 00001f71: AND 00001f72: PUSH2 0x3259 00001f75: JUMP 00001f76: JUMPDEST 00001f77: PUSH1 0x0d 00001f79: DUP1 00001f7a: SLOAD 00001f7b: PUSH1 0x01 00001f7d: PUSH1 0x01 00001f7f: PUSH1 0x80 00001f81: SHL 00001f82: SUB 00001f83: SWAP3 00001f84: DUP4 00001f85: AND 00001f86: PUSH1 0x01 00001f88: PUSH1 0x80 00001f8a: SHL 00001f8b: MUL 00001f8c: SWAP3 00001f8d: AND 00001f8e: SWAP2 00001f8f: SWAP1 00001f90: SWAP2 00001f91: OR 00001f92: SWAP1 00001f93: SSTORE 00001f94: PUSH1 0x00 00001f96: DUP2 00001f97: DUP2 00001f98: MSTORE 00001f99: PUSH1 0x08 00001f9b: PUSH1 0x20 00001f9d: MSTORE 00001f9e: PUSH1 0x40 00001fa0: DUP2 00001fa1: KECCAK256 00001fa2: SLOAD 00001fa3: PUSH1 0x0a 00001fa5: SLOAD 00001fa6: PUSH2 0x1fb3 00001fa9: SWAP2 00001faa: DUP6 00001fab: SWAP2 00001fac: PUSH1 0xff 00001fae: AND 00001faf: PUSH2 0x2703 00001fb2: JUMP 00001fb3: JUMPDEST 00001fb4: PUSH1 0x40 00001fb6: DUP1 00001fb7: MLOAD 00001fb8: DUP3 00001fb9: DUP2 00001fba: MSTORE 00001fbb: PUSH1 0x20 00001fbd: DUP2 00001fbe: ADD 00001fbf: DUP7 00001fc0: SWAP1 00001fc1: MSTORE 00001fc2: SWAP2 00001fc3: SWAP3 00001fc4: POP 00001fc5: CALLER 00001fc6: SWAP2 00001fc7: PUSH32 0xf279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568 00001fe8: SWAP2 00001fe9: ADD 00001fea: PUSH1 0x40 00001fec: MLOAD 00001fed: DUP1 00001fee: SWAP2 00001fef: SUB 00001ff0: SWAP1 00001ff1: LOG2 00001ff2: PUSH2 0x1ffb 00001ff5: ADDRESS 00001ff6: DUP5 00001ff7: PUSH2 0x2ac4 00001ffa: JUMP 00001ffb: JUMPDEST 00001ffc: PUSH1 0x00 00001ffe: DUP2 00001fff: GT 00002000: PUSH2 0x203d 00002003: JUMPI 00002004: PUSH1 0x40 00002006: MLOAD 00002007: PUSH3 0x461bcd 0000200b: PUSH1 0xe5 0000200d: SHL 0000200e: DUP2 0000200f: MSTORE 00002010: PUSH1 0x20 00002012: PUSH1 0x04 00002014: DUP3 00002015: ADD 00002016: MSTORE 00002017: PUSH1 0x0f 00002019: PUSH1 0x24 0000201b: DUP3 0000201c: ADD 0000201d: MSTORE 0000201e: PUSH15 0x085dda5d1a191c985dd05b5bdd5b9d 0000202e: PUSH1 0x8a 00002030: SHL 00002031: PUSH1 0x44 00002033: DUP3 00002034: ADD 00002035: MSTORE 00002036: PUSH1 0x64 00002038: ADD 00002039: PUSH2 0x0bb2 0000203c: JUMP 0000203d: JUMPDEST 0000203e: PUSH2 0x2047 00002041: CALLER 00002042: DUP3 00002043: PUSH2 0x217f 00002046: JUMP 00002047: JUMPDEST 00002048: DUP1 00002049: PUSH1 0x0e 0000204b: SLOAD 0000204c: PUSH2 0x2055 0000204f: SWAP2 00002050: SWAP1 00002051: PUSH2 0x3259 00002054: JUMP 00002055: JUMPDEST 00002056: PUSH1 0x0e 00002058: SSTORE 00002059: POP 0000205a: PUSH2 0x13fc 0000205d: SWAP3 0000205e: POP 0000205f: PUSH2 0x22de 00002062: SWAP2 00002063: POP 00002064: POP 00002065: JUMP 00002066: JUMPDEST 00002067: PUSH2 0x2073 0000206a: DUP4 0000206b: DUP4 0000206c: DUP4 0000206d: PUSH1 0x01 0000206f: PUSH2 0x2afa 00002072: JUMP 00002073: JUMPDEST 00002074: POP 00002075: POP 00002076: POP 00002077: JUMP 00002078: JUMPDEST 00002079: PUSH1 0x01 0000207b: PUSH1 0x01 0000207d: PUSH1 0xa0 0000207f: SHL 00002080: SUB 00002081: DUP4 00002082: DUP2 00002083: AND 00002084: PUSH1 0x00 00002086: SWAP1 00002087: DUP2 00002088: MSTORE 00002089: PUSH1 0x02 0000208b: PUSH1 0x20 0000208d: SWAP1 0000208e: DUP2 0000208f: MSTORE 00002090: PUSH1 0x40 00002092: DUP1 00002093: DUP4 00002094: KECCAK256 00002095: SWAP4 00002096: DUP7 00002097: AND 00002098: DUP4 00002099: MSTORE 0000209a: SWAP3 0000209b: SWAP1 0000209c: MSTORE 0000209d: KECCAK256 0000209e: SLOAD 0000209f: PUSH1 0x00 000020a1: NOT 000020a2: DUP2 000020a3: EQ 000020a4: PUSH2 0x20f0 000020a7: JUMPI 000020a8: DUP2 000020a9: DUP2 000020aa: LT 000020ab: ISZERO 000020ac: PUSH2 0x20e1 000020af: JUMPI 000020b0: PUSH1 0x40 000020b2: MLOAD 000020b3: PUSH4 0x7dc7a0d9 000020b8: PUSH1 0xe1 000020ba: SHL 000020bb: DUP2 000020bc: MSTORE 000020bd: PUSH1 0x01 000020bf: PUSH1 0x01 000020c1: PUSH1 0xa0 000020c3: SHL 000020c4: SUB 000020c5: DUP5 000020c6: AND 000020c7: PUSH1 0x04 000020c9: DUP3 000020ca: ADD 000020cb: MSTORE 000020cc: PUSH1 0x24 000020ce: DUP2 000020cf: ADD 000020d0: DUP3 000020d1: SWAP1 000020d2: MSTORE 000020d3: PUSH1 0x44 000020d5: DUP2 000020d6: ADD 000020d7: DUP4 000020d8: SWAP1 000020d9: MSTORE 000020da: PUSH1 0x64 000020dc: ADD 000020dd: PUSH2 0x0bb2 000020e0: JUMP 000020e1: JUMPDEST 000020e2: PUSH2 0x20f0 000020e5: DUP5 000020e6: DUP5 000020e7: DUP5 000020e8: DUP5 000020e9: SUB 000020ea: PUSH1 0x00 000020ec: PUSH2 0x2afa 000020ef: JUMP 000020f0: JUMPDEST 000020f1: POP 000020f2: POP 000020f3: POP 000020f4: POP 000020f5: JUMP 000020f6: JUMPDEST 000020f7: PUSH1 0x01 000020f9: PUSH1 0x01 000020fb: PUSH1 0xa0 000020fd: SHL 000020fe: SUB 000020ff: DUP4 00002100: AND 00002101: PUSH2 0x2120 00002104: JUMPI 00002105: PUSH1 0x40 00002107: MLOAD 00002108: PUSH4 0x4b637e8f 0000210d: PUSH1 0xe1 0000210f: SHL 00002110: DUP2 00002111: MSTORE 00002112: PUSH1 0x00 00002114: PUSH1 0x04 00002116: DUP3 00002117: ADD 00002118: MSTORE 00002119: PUSH1 0x24 0000211b: ADD 0000211c: PUSH2 0x0bb2 0000211f: JUMP 00002120: JUMPDEST 00002121: PUSH1 0x01 00002123: PUSH1 0x01 00002125: PUSH1 0xa0 00002127: SHL 00002128: SUB 00002129: DUP3 0000212a: AND 0000212b: PUSH2 0x214a 0000212e: JUMPI 0000212f: PUSH1 0x40 00002131: MLOAD 00002132: PUSH4 0xec442f05 00002137: PUSH1 0xe0 00002139: SHL 0000213a: DUP2 0000213b: MSTORE 0000213c: PUSH1 0x00 0000213e: PUSH1 0x04 00002140: DUP3 00002141: ADD 00002142: MSTORE 00002143: PUSH1 0x24 00002145: ADD 00002146: PUSH2 0x0bb2 00002149: JUMP 0000214a: JUMPDEST 0000214b: PUSH2 0x2073 0000214e: DUP4 0000214f: DUP4 00002150: DUP4 00002151: PUSH2 0x2bcf 00002154: JUMP 00002155: JUMPDEST 00002156: PUSH1 0x02 00002158: PUSH1 0x00 0000215a: SLOAD 0000215b: SUB 0000215c: PUSH2 0x2178 0000215f: JUMPI 00002160: PUSH1 0x40 00002162: MLOAD 00002163: PUSH4 0x3ee5aeb5 00002168: PUSH1 0xe0 0000216a: SHL 0000216b: DUP2 0000216c: MSTORE 0000216d: PUSH1 0x04 0000216f: ADD 00002170: PUSH1 0x40 00002172: MLOAD 00002173: DUP1 00002174: SWAP2 00002175: SUB 00002176: SWAP1 00002177: REVERT 00002178: JUMPDEST 00002179: PUSH1 0x02 0000217b: PUSH1 0x00 0000217d: SSTORE 0000217e: JUMP 0000217f: JUMPDEST 00002180: PUSH1 0x0a 00002182: SLOAD 00002183: PUSH1 0x01 00002185: PUSH1 0x01 00002187: PUSH1 0xa0 00002189: SHL 0000218a: SUB 0000218b: PUSH2 0x0100 0000218e: SWAP1 0000218f: SWAP2 00002190: DIV 00002191: DUP2 00002192: AND 00002193: SWAP1 00002194: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000021b5: AND 000021b6: DUP2 000021b7: SUB 000021b8: PUSH2 0x22ca 000021bb: JUMPI 000021bc: PUSH1 0x40 000021be: MLOAD 000021bf: PUSH4 0x2e1a7d4d 000021c4: PUSH1 0xe0 000021c6: SHL 000021c7: DUP2 000021c8: MSTORE 000021c9: PUSH1 0x04 000021cb: DUP2 000021cc: ADD 000021cd: DUP4 000021ce: SWAP1 000021cf: MSTORE 000021d0: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 000021f1: PUSH1 0x01 000021f3: PUSH1 0x01 000021f5: PUSH1 0xa0 000021f7: SHL 000021f8: SUB 000021f9: AND 000021fa: SWAP1 000021fb: PUSH4 0x2e1a7d4d 00002200: SWAP1 00002201: PUSH1 0x24 00002203: ADD 00002204: PUSH1 0x00 00002206: PUSH1 0x40 00002208: MLOAD 00002209: DUP1 0000220a: DUP4 0000220b: SUB 0000220c: DUP2 0000220d: PUSH1 0x00 0000220f: DUP8 00002210: DUP1 00002211: EXTCODESIZE 00002212: ISZERO 00002213: DUP1 00002214: ISZERO 00002215: PUSH2 0x221d 00002218: JUMPI 00002219: PUSH1 0x00 0000221b: DUP1 0000221c: REVERT 0000221d: JUMPDEST 0000221e: POP 0000221f: GAS 00002220: CALL 00002221: ISZERO 00002222: DUP1 00002223: ISZERO 00002224: PUSH2 0x2231 00002227: JUMPI 00002228: RETURNDATASIZE 00002229: PUSH1 0x00 0000222b: DUP1 0000222c: RETURNDATACOPY 0000222d: RETURNDATASIZE 0000222e: PUSH1 0x00 00002230: REVERT 00002231: JUMPDEST 00002232: POP 00002233: POP 00002234: POP 00002235: POP 00002236: PUSH1 0x00 00002238: DUP4 00002239: PUSH1 0x01 0000223b: PUSH1 0x01 0000223d: PUSH1 0xa0 0000223f: SHL 00002240: SUB 00002241: AND 00002242: DUP4 00002243: PUSH1 0x40 00002245: MLOAD 00002246: PUSH1 0x00 00002248: PUSH1 0x40 0000224a: MLOAD 0000224b: DUP1 0000224c: DUP4 0000224d: SUB 0000224e: DUP2 0000224f: DUP6 00002250: DUP8 00002251: GAS 00002252: CALL 00002253: SWAP3 00002254: POP 00002255: POP 00002256: POP 00002257: RETURNDATASIZE 00002258: DUP1 00002259: PUSH1 0x00 0000225b: DUP2 0000225c: EQ 0000225d: PUSH2 0x2282 00002260: JUMPI 00002261: PUSH1 0x40 00002263: MLOAD 00002264: SWAP2 00002265: POP 00002266: PUSH1 0x1f 00002268: NOT 00002269: PUSH1 0x3f 0000226b: RETURNDATASIZE 0000226c: ADD 0000226d: AND 0000226e: DUP3 0000226f: ADD 00002270: PUSH1 0x40 00002272: MSTORE 00002273: RETURNDATASIZE 00002274: DUP3 00002275: MSTORE 00002276: RETURNDATASIZE 00002277: PUSH1 0x00 00002279: PUSH1 0x20 0000227b: DUP5 0000227c: ADD 0000227d: RETURNDATACOPY 0000227e: PUSH2 0x2287 00002281: JUMP 00002282: JUMPDEST 00002283: PUSH1 0x60 00002285: SWAP2 00002286: POP 00002287: JUMPDEST 00002288: POP 00002289: POP 0000228a: SWAP1 0000228b: POP 0000228c: DUP1 0000228d: PUSH2 0x20f0 00002290: JUMPI 00002291: PUSH1 0x40 00002293: MLOAD 00002294: PUSH3 0x461bcd 00002298: PUSH1 0xe5 0000229a: SHL 0000229b: DUP2 0000229c: MSTORE 0000229d: PUSH1 0x20 0000229f: PUSH1 0x04 000022a1: DUP3 000022a2: ADD 000022a3: MSTORE 000022a4: PUSH1 0x0f 000022a6: PUSH1 0x24 000022a8: DUP3 000022a9: ADD 000022aa: MSTORE 000022ab: PUSH15 0x151c985b9cd9995c8819985a5b1959 000022bb: PUSH1 0x8a 000022bd: SHL 000022be: PUSH1 0x44 000022c0: DUP3 000022c1: ADD 000022c2: MSTORE 000022c3: PUSH1 0x64 000022c5: ADD 000022c6: PUSH2 0x0bb2 000022c9: JUMP 000022ca: JUMPDEST 000022cb: PUSH2 0x2073 000022ce: PUSH1 0x01 000022d0: PUSH1 0x01 000022d2: PUSH1 0xa0 000022d4: SHL 000022d5: SUB 000022d6: DUP3 000022d7: AND 000022d8: DUP5 000022d9: DUP5 000022da: PUSH2 0x27f6 000022dd: JUMP 000022de: JUMPDEST 000022df: PUSH1 0x01 000022e1: PUSH1 0x00 000022e3: SSTORE 000022e4: JUMP 000022e5: JUMPDEST 000022e6: PUSH1 0x00 000022e8: DUP4 000022e9: MLOAD 000022ea: ISZERO 000022eb: PUSH2 0x2320 000022ee: JUMPI 000022ef: PUSH1 0x20 000022f1: DUP5 000022f2: ADD 000022f3: DUP5 000022f4: MLOAD 000022f5: PUSH1 0x05 000022f7: SHL 000022f8: DUP2 000022f9: ADD 000022fa: JUMPDEST 000022fb: DUP2 000022fc: MLOAD 000022fd: DUP5 000022fe: GT 000022ff: PUSH1 0x05 00002301: SHL 00002302: SWAP4 00002303: DUP5 00002304: MSTORE 00002305: DUP2 00002306: MLOAD 00002307: PUSH1 0x20 00002309: SWAP5 0000230a: DUP6 0000230b: XOR 0000230c: MSTORE 0000230d: PUSH1 0x40 0000230f: PUSH1 0x00 00002311: KECCAK256 00002312: SWAP4 00002313: SWAP1 00002314: SWAP2 00002315: ADD 00002316: SWAP1 00002317: DUP1 00002318: DUP3 00002319: LT 0000231a: PUSH2 0x22fa 0000231d: JUMPI 0000231e: POP 0000231f: POP 00002320: JUMPDEST 00002321: POP 00002322: EQ 00002323: SWAP2 00002324: SWAP1 00002325: POP 00002326: JUMP 00002327: JUMPDEST 00002328: PUSH1 0x0c 0000232a: SLOAD 0000232b: PUSH2 0xffff 0000232e: AND 0000232f: PUSH1 0x00 00002331: DUP4 00002332: PUSH2 0x2339 00002335: PUSH2 0x1678 00002338: JUMP 00002339: JUMPDEST 0000233a: PUSH2 0x2343 0000233d: SWAP2 0000233e: SWAP1 0000233f: PUSH2 0x328d 00002342: JUMP 00002343: JUMPDEST 00002344: PUSH1 0x0b 00002346: SLOAD 00002347: SWAP1 00002348: SWAP2 00002349: POP 0000234a: PUSH1 0x01 0000234c: PUSH1 0x01 0000234e: PUSH1 0x68 00002350: SHL 00002351: SUB 00002352: AND 00002353: DUP2 00002354: GT 00002355: ISZERO 00002356: PUSH2 0x238e 00002359: JUMPI 0000235a: PUSH1 0x40 0000235c: MLOAD 0000235d: PUSH3 0x461bcd 00002361: PUSH1 0xe5 00002363: SHL 00002364: DUP2 00002365: MSTORE 00002366: PUSH1 0x20 00002368: PUSH1 0x04 0000236a: DUP3 0000236b: ADD 0000236c: MSTORE 0000236d: PUSH1 0x0a 0000236f: PUSH1 0x24 00002371: DUP3 00002372: ADD 00002373: MSTORE 00002374: PUSH10 0x04578636565642063617 0000237f: PUSH1 0xb4 00002381: SHL 00002382: PUSH1 0x44 00002384: DUP3 00002385: ADD 00002386: MSTORE 00002387: PUSH1 0x64 00002389: ADD 0000238a: PUSH2 0x0bb2 0000238d: JUMP 0000238e: JUMPDEST 0000238f: PUSH1 0x0a 00002391: SLOAD 00002392: PUSH1 0x01 00002394: PUSH1 0xa8 00002396: SHL 00002397: SWAP1 00002398: DIV 00002399: PUSH7 0xffffffffffffff 000023a1: AND 000023a2: DUP2 000023a3: LT 000023a4: ISZERO 000023a5: PUSH2 0x23e7 000023a8: JUMPI 000023a9: PUSH1 0x40 000023ab: MLOAD 000023ac: PUSH3 0x461bcd 000023b0: PUSH1 0xe5 000023b2: SHL 000023b3: DUP2 000023b4: MSTORE 000023b5: PUSH1 0x20 000023b7: PUSH1 0x04 000023b9: DUP3 000023ba: ADD 000023bb: MSTORE 000023bc: PUSH1 0x14 000023be: PUSH1 0x24 000023c0: DUP3 000023c1: ADD 000023c2: MSTORE 000023c3: PUSH20 0x496e73756666696369656e742062616c616e6365 000023d8: PUSH1 0x60 000023da: SHL 000023db: PUSH1 0x44 000023dd: DUP3 000023de: ADD 000023df: MSTORE 000023e0: PUSH1 0x64 000023e2: ADD 000023e3: PUSH2 0x0bb2 000023e6: JUMP 000023e7: JUMPDEST 000023e8: PUSH1 0x40 000023ea: DUP1 000023eb: MLOAD 000023ec: DUP6 000023ed: DUP2 000023ee: MSTORE 000023ef: PUSH1 0x20 000023f1: DUP2 000023f2: ADD 000023f3: DUP5 000023f4: SWAP1 000023f5: MSTORE 000023f6: PUSH1 0x01 000023f8: PUSH1 0x01 000023fa: PUSH1 0xa0 000023fc: SHL 000023fd: SUB 000023fe: DUP6 000023ff: AND 00002400: SWAP2 00002401: PUSH32 0x90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15 00002422: SWAP2 00002423: ADD 00002424: PUSH1 0x40 00002426: MLOAD 00002427: DUP1 00002428: SWAP2 00002429: SUB 0000242a: SWAP1 0000242b: LOG2 0000242c: PUSH1 0x01 0000242e: PUSH1 0x01 00002430: PUSH1 0xa0 00002432: SHL 00002433: SUB 00002434: DUP4 00002435: AND 00002436: PUSH1 0x00 00002438: SWAP1 00002439: DUP2 0000243a: MSTORE 0000243b: PUSH1 0x07 0000243d: PUSH1 0x20 0000243f: SWAP1 00002440: DUP2 00002441: MSTORE 00002442: PUSH1 0x40 00002444: DUP1 00002445: DUP4 00002446: KECCAK256 00002447: DUP2 00002448: MLOAD 00002449: PUSH1 0x60 0000244b: DUP2 0000244c: ADD 0000244d: DUP4 0000244e: MSTORE 0000244f: SWAP1 00002450: SLOAD 00002451: PUSH2 0xffff 00002454: DUP2 00002455: AND 00002456: DUP1 00002457: DUP4 00002458: MSTORE 00002459: PUSH3 0x010000 0000245d: DUP3 0000245e: DIV 0000245f: PUSH1 0x01 00002461: PUSH1 0x01 00002463: PUSH1 0x68 00002465: SHL 00002466: SUB 00002467: AND 00002468: DUP4 00002469: DUP7 0000246a: ADD 0000246b: MSTORE 0000246c: PUSH1 0x01 0000246e: PUSH1 0x78 00002470: SHL 00002471: SWAP1 00002472: SWAP2 00002473: DIV 00002474: PUSH1 0x01 00002476: PUSH1 0x01 00002478: PUSH1 0x80 0000247a: SHL 0000247b: SUB 0000247c: AND 0000247d: DUP3 0000247e: DUP5 0000247f: ADD 00002480: MSTORE 00002481: DUP5 00002482: MSTORE 00002483: PUSH1 0x08 00002485: SWAP1 00002486: SWAP3 00002487: MSTORE 00002488: DUP3 00002489: KECCAK256 0000248a: SLOAD 0000248b: PUSH1 0x0a 0000248d: SLOAD 0000248e: SWAP2 0000248f: SWAP3 00002490: SWAP2 00002491: PUSH2 0x24a1 00002494: SWAP2 00002495: DUP5 00002496: SWAP2 00002497: DUP8 00002498: SWAP2 00002499: SWAP1 0000249a: PUSH1 0xff 0000249c: AND 0000249d: PUSH2 0x2a53 000024a0: JUMP 000024a1: JUMPDEST 000024a2: DUP3 000024a3: MLOAD 000024a4: SWAP1 000024a5: SWAP2 000024a6: POP 000024a7: DUP7 000024a8: SWAP1 000024a9: PUSH2 0xffff 000024ac: AND 000024ad: DUP6 000024ae: SUB 000024af: PUSH2 0x24d1 000024b2: JUMPI 000024b3: PUSH1 0x00 000024b5: DUP8 000024b6: DUP5 000024b7: PUSH1 0x20 000024b9: ADD 000024ba: MLOAD 000024bb: PUSH1 0x01 000024bd: PUSH1 0x01 000024bf: PUSH1 0x68 000024c1: SHL 000024c2: SUB 000024c3: AND 000024c4: PUSH2 0x24cd 000024c7: SWAP2 000024c8: SWAP1 000024c9: PUSH2 0x328d 000024cc: JUMP 000024cd: JUMPDEST 000024ce: SWAP2 000024cf: POP 000024d0: POP 000024d1: JUMPDEST 000024d2: PUSH2 0x24da 000024d5: DUP2 000024d6: PUSH2 0x27ac 000024d9: JUMP 000024da: JUMPDEST 000024db: PUSH1 0x40 000024dd: DUP1 000024de: MLOAD 000024df: PUSH1 0x60 000024e1: DUP2 000024e2: ADD 000024e3: DUP3 000024e4: MSTORE 000024e5: PUSH2 0xffff 000024e8: DUP1 000024e9: DUP9 000024ea: AND 000024eb: DUP3 000024ec: MSTORE 000024ed: PUSH1 0x01 000024ef: PUSH1 0x01 000024f1: PUSH1 0x68 000024f3: SHL 000024f4: SUB 000024f5: DUP1 000024f6: DUP6 000024f7: AND 000024f8: PUSH1 0x20 000024fa: DUP1 000024fb: DUP6 000024fc: ADD 000024fd: SWAP2 000024fe: DUP3 000024ff: MSTORE 00002500: PUSH1 0x01 00002502: PUSH1 0x01 00002504: PUSH1 0x80 00002506: SHL 00002507: SUB 00002508: DUP1 00002509: DUP10 0000250a: AND 0000250b: DUP7 0000250c: DUP9 0000250d: ADD 0000250e: SWAP1 0000250f: DUP2 00002510: MSTORE 00002511: PUSH1 0x01 00002513: PUSH1 0x01 00002515: PUSH1 0xa0 00002517: SHL 00002518: SUB 00002519: DUP15 0000251a: AND 0000251b: PUSH1 0x00 0000251d: SWAP1 0000251e: DUP2 0000251f: MSTORE 00002520: PUSH1 0x07 00002522: SWAP1 00002523: SWAP4 00002524: MSTORE 00002525: SWAP7 00002526: DUP3 00002527: KECCAK256 00002528: SWAP6 00002529: MLOAD 0000252a: DUP7 0000252b: SLOAD 0000252c: SWAP4 0000252d: MLOAD 0000252e: SWAP8 0000252f: MLOAD 00002530: DUP3 00002531: AND 00002532: PUSH1 0x01 00002534: PUSH1 0x78 00002536: SHL 00002537: MUL 00002538: PUSH1 0x01 0000253a: PUSH1 0x78 0000253c: SHL 0000253d: PUSH1 0x01 0000253f: PUSH1 0xf8 00002541: SHL 00002542: SUB 00002543: NOT 00002544: SWAP9 00002545: SWAP1 00002546: SWAP6 00002547: AND 00002548: PUSH3 0x010000 0000254c: MUL 0000254d: PUSH15 0xffffffffffffffffffffffffffffff 0000255d: NOT 0000255e: SWAP1 0000255f: SWAP5 00002560: AND 00002561: SWAP6 00002562: AND 00002563: SWAP5 00002564: SWAP1 00002565: SWAP5 00002566: OR 00002567: SWAP2 00002568: SWAP1 00002569: SWAP2 0000256a: OR 0000256b: SWAP5 0000256c: SWAP1 0000256d: SWAP5 0000256e: AND 0000256f: OR 00002570: SWAP1 00002571: SWAP2 00002572: SSTORE 00002573: PUSH1 0x0d 00002575: SLOAD 00002576: PUSH2 0x2581 00002579: SWAP2 0000257a: DUP11 0000257b: SWAP2 0000257c: AND 0000257d: PUSH2 0x328d 00002580: JUMP 00002581: JUMPDEST 00002582: SWAP1 00002583: POP 00002584: PUSH2 0x258c 00002587: DUP2 00002588: PUSH2 0x2762 0000258b: JUMP 0000258c: JUMPDEST 0000258d: PUSH1 0x0d 0000258f: DUP1 00002590: SLOAD 00002591: PUSH1 0x01 00002593: PUSH1 0x01 00002595: PUSH1 0x80 00002597: SHL 00002598: SUB 00002599: NOT 0000259a: AND 0000259b: PUSH1 0x01 0000259d: PUSH1 0x01 0000259f: PUSH1 0x80 000025a1: SHL 000025a2: SUB 000025a3: SWAP3 000025a4: SWAP1 000025a5: SWAP3 000025a6: AND 000025a7: SWAP2 000025a8: SWAP1 000025a9: SWAP2 000025aa: OR 000025ab: SWAP1 000025ac: SSTORE 000025ad: POP 000025ae: POP 000025af: POP 000025b0: POP 000025b1: POP 000025b2: POP 000025b3: POP 000025b4: JUMP 000025b5: JUMPDEST 000025b6: PUSH1 0x40 000025b8: MLOAD 000025b9: PUSH1 0x01 000025bb: PUSH1 0x01 000025bd: PUSH1 0xa0 000025bf: SHL 000025c0: SUB 000025c1: DUP5 000025c2: DUP2 000025c3: AND 000025c4: PUSH1 0x24 000025c6: DUP4 000025c7: ADD 000025c8: MSTORE 000025c9: DUP4 000025ca: DUP2 000025cb: AND 000025cc: PUSH1 0x44 000025ce: DUP4 000025cf: ADD 000025d0: MSTORE 000025d1: PUSH1 0x64 000025d3: DUP3 000025d4: ADD 000025d5: DUP4 000025d6: SWAP1 000025d7: MSTORE 000025d8: PUSH2 0x20f0 000025db: SWAP2 000025dc: DUP7 000025dd: SWAP2 000025de: DUP3 000025df: AND 000025e0: SWAP1 000025e1: PUSH4 0x23b872dd 000025e6: SWAP1 000025e7: PUSH1 0x84 000025e9: ADD 000025ea: JUMPDEST 000025eb: PUSH1 0x40 000025ed: MLOAD 000025ee: PUSH1 0x20 000025f0: DUP2 000025f1: DUP4 000025f2: SUB 000025f3: SUB 000025f4: DUP2 000025f5: MSTORE 000025f6: SWAP1 000025f7: PUSH1 0x40 000025f9: MSTORE 000025fa: SWAP2 000025fb: POP 000025fc: PUSH1 0xe0 000025fe: SHL 000025ff: PUSH1 0x20 00002601: DUP3 00002602: ADD 00002603: DUP1 00002604: MLOAD 00002605: PUSH1 0x01 00002607: PUSH1 0x01 00002609: PUSH1 0xe0 0000260b: SHL 0000260c: SUB 0000260d: DUP4 0000260e: DUP2 0000260f: DUP4 00002610: AND 00002611: OR 00002612: DUP4 00002613: MSTORE 00002614: POP 00002615: POP 00002616: POP 00002617: POP 00002618: PUSH2 0x2cf9 0000261b: JUMP 0000261c: JUMPDEST 0000261d: PUSH1 0x00 0000261f: DUP1 00002620: PUSH2 0x262a 00002623: DUP4 00002624: PUSH1 0x0a 00002626: PUSH2 0x33dc 00002629: JUMP 0000262a: JUMPDEST 0000262b: SWAP1 0000262c: POP 0000262d: PUSH1 0x00 0000262f: DUP7 00002630: GT 00002631: PUSH2 0x263a 00002634: JUMPI 00002635: DUP1 00002636: PUSH2 0x2659 00002639: JUMP 0000263a: JUMPDEST 0000263b: DUP6 0000263c: PUSH2 0x2645 0000263f: DUP6 00002640: DUP8 00002641: PUSH2 0x3259 00002644: JUMP 00002645: JUMPDEST 00002646: PUSH2 0x264f 00002649: SWAP1 0000264a: DUP4 0000264b: PUSH2 0x33e8 0000264e: JUMP 0000264f: JUMPDEST 00002650: PUSH2 0x2659 00002653: SWAP2 00002654: SWAP1 00002655: PUSH2 0x33ff 00002658: JUMP 00002659: JUMPDEST 0000265a: SWAP7 0000265b: SWAP6 0000265c: POP 0000265d: POP 0000265e: POP 0000265f: POP 00002660: POP 00002661: POP 00002662: JUMP 00002663: JUMPDEST 00002664: PUSH1 0x00 00002666: PUSH1 0x01 00002668: DUP4 00002669: GT 0000266a: PUSH2 0x26ad 0000266d: JUMPI 0000266e: PUSH1 0x40 00002670: MLOAD 00002671: PUSH3 0x461bcd 00002675: PUSH1 0xe5 00002677: SHL 00002678: DUP2 00002679: MSTORE 0000267a: PUSH1 0x20 0000267c: PUSH1 0x04 0000267e: DUP3 0000267f: ADD 00002680: MSTORE 00002681: PUSH1 0x15 00002683: PUSH1 0x24 00002685: DUP3 00002686: ADD 00002687: MSTORE 00002688: PUSH21 0x496e76616c69642061737365745065725368617265 0000269e: PUSH1 0x58 000026a0: SHL 000026a1: PUSH1 0x44 000026a3: DUP3 000026a4: ADD 000026a5: MSTORE 000026a6: PUSH1 0x64 000026a8: ADD 000026a9: PUSH2 0x0bb2 000026ac: JUMP 000026ad: JUMPDEST 000026ae: DUP3 000026af: PUSH2 0x26b9 000026b2: DUP4 000026b3: PUSH1 0x0a 000026b5: PUSH2 0x33dc 000026b8: JUMP 000026b9: JUMPDEST 000026ba: PUSH2 0x26c3 000026bd: SWAP1 000026be: DUP7 000026bf: PUSH2 0x33e8 000026c2: JUMP 000026c3: JUMPDEST 000026c4: PUSH2 0x12b2 000026c7: SWAP2 000026c8: SWAP1 000026c9: PUSH2 0x33ff 000026cc: JUMP 000026cd: JUMPDEST 000026ce: PUSH1 0x01 000026d0: PUSH1 0x01 000026d2: PUSH1 0xa0 000026d4: SHL 000026d5: SUB 000026d6: DUP3 000026d7: AND 000026d8: PUSH2 0x26f7 000026db: JUMPI 000026dc: PUSH1 0x40 000026de: MLOAD 000026df: PUSH4 0xec442f05 000026e4: PUSH1 0xe0 000026e6: SHL 000026e7: DUP2 000026e8: MSTORE 000026e9: PUSH1 0x00 000026eb: PUSH1 0x04 000026ed: DUP3 000026ee: ADD 000026ef: MSTORE 000026f0: PUSH1 0x24 000026f2: ADD 000026f3: PUSH2 0x0bb2 000026f6: JUMP 000026f7: JUMPDEST 000026f8: PUSH2 0x0df8 000026fb: PUSH1 0x00 000026fd: DUP4 000026fe: DUP4 000026ff: PUSH2 0x2bcf 00002702: JUMP 00002703: JUMPDEST 00002704: PUSH1 0x00 00002706: PUSH1 0x01 00002708: DUP4 00002709: GT 0000270a: PUSH2 0x274d 0000270d: JUMPI 0000270e: PUSH1 0x40 00002710: MLOAD 00002711: PUSH3 0x461bcd 00002715: PUSH1 0xe5 00002717: SHL 00002718: DUP2 00002719: MSTORE 0000271a: PUSH1 0x20 0000271c: PUSH1 0x04 0000271e: DUP3 0000271f: ADD 00002720: MSTORE 00002721: PUSH1 0x15 00002723: PUSH1 0x24 00002725: DUP3 00002726: ADD 00002727: MSTORE 00002728: PUSH21 0x496e76616c69642061737365745065725368617265 0000273e: PUSH1 0x58 00002740: SHL 00002741: PUSH1 0x44 00002743: DUP3 00002744: ADD 00002745: MSTORE 00002746: PUSH1 0x64 00002748: ADD 00002749: PUSH2 0x0bb2 0000274c: JUMP 0000274d: JUMPDEST 0000274e: PUSH2 0x2758 00002751: DUP3 00002752: PUSH1 0x0a 00002754: PUSH2 0x33dc 00002757: JUMP 00002758: JUMPDEST 00002759: PUSH2 0x26c3 0000275c: DUP5 0000275d: DUP7 0000275e: PUSH2 0x33e8 00002761: JUMP 00002762: JUMPDEST 00002763: PUSH1 0x01 00002765: PUSH1 0x01 00002767: PUSH1 0x80 00002769: SHL 0000276a: SUB 0000276b: DUP2 0000276c: GT 0000276d: ISZERO 0000276e: PUSH2 0x0d07 00002771: JUMPI 00002772: PUSH1 0x40 00002774: MLOAD 00002775: PUSH3 0x461bcd 00002779: PUSH1 0xe5 0000277b: SHL 0000277c: DUP2 0000277d: MSTORE 0000277e: PUSH1 0x20 00002780: PUSH1 0x04 00002782: DUP3 00002783: ADD 00002784: MSTORE 00002785: PUSH1 0x10 00002787: PUSH1 0x24 00002789: DUP3 0000278a: ADD 0000278b: MSTORE 0000278c: PUSH16 0x09eeccae4ccd8deee40ead2dce862647 0000279d: PUSH1 0x83 0000279f: SHL 000027a0: PUSH1 0x44 000027a2: DUP3 000027a3: ADD 000027a4: MSTORE 000027a5: PUSH1 0x64 000027a7: ADD 000027a8: PUSH2 0x0bb2 000027ab: JUMP 000027ac: JUMPDEST 000027ad: PUSH1 0x01 000027af: PUSH1 0x01 000027b1: PUSH1 0x68 000027b3: SHL 000027b4: SUB 000027b5: DUP2 000027b6: GT 000027b7: ISZERO 000027b8: PUSH2 0x0d07 000027bb: JUMPI 000027bc: PUSH1 0x40 000027be: MLOAD 000027bf: PUSH3 0x461bcd 000027c3: PUSH1 0xe5 000027c5: SHL 000027c6: DUP2 000027c7: MSTORE 000027c8: PUSH1 0x20 000027ca: PUSH1 0x04 000027cc: DUP3 000027cd: ADD 000027ce: MSTORE 000027cf: PUSH1 0x10 000027d1: PUSH1 0x24 000027d3: DUP3 000027d4: ADD 000027d5: MSTORE 000027d6: PUSH16 0x13dd995c999b1bddc81d5a5b9d0c4c0d 000027e7: PUSH1 0x82 000027e9: SHL 000027ea: PUSH1 0x44 000027ec: DUP3 000027ed: ADD 000027ee: MSTORE 000027ef: PUSH1 0x64 000027f1: ADD 000027f2: PUSH2 0x0bb2 000027f5: JUMP 000027f6: JUMPDEST 000027f7: PUSH1 0x40 000027f9: MLOAD 000027fa: PUSH1 0x01 000027fc: PUSH1 0x01 000027fe: PUSH1 0xa0 00002800: SHL 00002801: SUB 00002802: DUP4 00002803: DUP2 00002804: AND 00002805: PUSH1 0x24 00002807: DUP4 00002808: ADD 00002809: MSTORE 0000280a: PUSH1 0x44 0000280c: DUP3 0000280d: ADD 0000280e: DUP4 0000280f: SWAP1 00002810: MSTORE 00002811: PUSH2 0x2073 00002814: SWAP2 00002815: DUP6 00002816: SWAP2 00002817: DUP3 00002818: AND 00002819: SWAP1 0000281a: PUSH4 0xa9059cbb 0000281f: SWAP1 00002820: PUSH1 0x64 00002822: ADD 00002823: PUSH2 0x25ea 00002826: JUMP 00002827: JUMPDEST 00002828: PUSH1 0x06 0000282a: SLOAD 0000282b: PUSH1 0x01 0000282d: PUSH1 0x01 0000282f: PUSH1 0xa0 00002831: SHL 00002832: SUB 00002833: AND 00002834: CALLER 00002835: EQ 00002836: PUSH2 0x13fc 00002839: JUMPI 0000283a: PUSH1 0x40 0000283c: MLOAD 0000283d: PUSH4 0x118cdaa7 00002842: PUSH1 0xe0 00002844: SHL 00002845: DUP2 00002846: MSTORE 00002847: CALLER 00002848: PUSH1 0x04 0000284a: DUP3 0000284b: ADD 0000284c: MSTORE 0000284d: PUSH1 0x24 0000284f: ADD 00002850: PUSH2 0x0bb2 00002853: JUMP 00002854: JUMPDEST 00002855: CALLER 00002856: PUSH1 0x00 00002858: SWAP1 00002859: DUP2 0000285a: MSTORE 0000285b: PUSH1 0x07 0000285d: PUSH1 0x20 0000285f: SWAP1 00002860: DUP2 00002861: MSTORE 00002862: PUSH1 0x40 00002864: DUP1 00002865: DUP4 00002866: KECCAK256 00002867: DUP2 00002868: MLOAD 00002869: PUSH1 0x60 0000286b: DUP2 0000286c: ADD 0000286d: DUP4 0000286e: MSTORE 0000286f: SWAP1 00002870: SLOAD 00002871: PUSH2 0xffff 00002874: DUP1 00002875: DUP3 00002876: AND 00002877: DUP1 00002878: DUP5 00002879: MSTORE 0000287a: PUSH3 0x010000 0000287e: DUP4 0000287f: DIV 00002880: PUSH1 0x01 00002882: PUSH1 0x01 00002884: PUSH1 0x68 00002886: SHL 00002887: SUB 00002888: AND 00002889: DUP5 0000288a: DUP8 0000288b: ADD 0000288c: MSTORE 0000288d: PUSH1 0x01 0000288f: PUSH1 0x78 00002891: SHL 00002892: SWAP1 00002893: SWAP3 00002894: DIV 00002895: PUSH1 0x01 00002897: PUSH1 0x01 00002899: PUSH1 0x80 0000289b: SHL 0000289c: SUB 0000289d: AND 0000289e: DUP4 0000289f: DUP6 000028a0: ADD 000028a1: MSTORE 000028a2: PUSH1 0x0c 000028a4: SLOAD 000028a5: SWAP2 000028a6: DUP7 000028a7: MSTORE 000028a8: PUSH1 0x08 000028aa: SWAP1 000028ab: SWAP5 000028ac: MSTORE 000028ad: SWAP2 000028ae: DUP5 000028af: KECCAK256 000028b0: SLOAD 000028b1: PUSH1 0x0a 000028b3: SLOAD 000028b4: SWAP2 000028b5: SWAP5 000028b6: SWAP3 000028b7: SWAP1 000028b8: SWAP4 000028b9: AND 000028ba: SWAP3 000028bb: PUSH2 0x28ca 000028be: SWAP2 000028bf: DUP6 000028c0: SWAP2 000028c1: DUP6 000028c2: SWAP2 000028c3: PUSH1 0xff 000028c5: AND 000028c6: PUSH2 0x2a53 000028c9: JUMP 000028ca: JUMPDEST 000028cb: SWAP1 000028cc: POP 000028cd: DUP4 000028ce: PUSH2 0x28d7 000028d1: JUMPI 000028d2: DUP5 000028d3: PUSH2 0x28d9 000028d6: JUMP 000028d7: JUMPDEST 000028d8: DUP1 000028d9: JUMPDEST 000028da: SWAP5 000028db: POP 000028dc: DUP5 000028dd: PUSH1 0x00 000028df: SUB 000028e0: PUSH2 0x28ea 000028e3: JUMPI 000028e4: POP 000028e5: POP 000028e6: POP 000028e7: POP 000028e8: POP 000028e9: JUMP 000028ea: JUMPDEST 000028eb: DUP1 000028ec: DUP6 000028ed: GT 000028ee: ISZERO 000028ef: PUSH2 0x292e 000028f2: JUMPI 000028f3: PUSH1 0x40 000028f5: MLOAD 000028f6: PUSH3 0x461bcd 000028fa: PUSH1 0xe5 000028fc: SHL 000028fd: DUP2 000028fe: MSTORE 000028ff: PUSH1 0x20 00002901: PUSH1 0x04 00002903: DUP3 00002904: ADD 00002905: MSTORE 00002906: PUSH1 0x11 00002908: PUSH1 0x24 0000290a: DUP3 0000290b: ADD 0000290c: MSTORE 0000290d: PUSH17 0x4578636565647320617661696c61626c65 0000291f: PUSH1 0x78 00002921: SHL 00002922: PUSH1 0x44 00002924: DUP3 00002925: ADD 00002926: MSTORE 00002927: PUSH1 0x64 00002929: ADD 0000292a: PUSH2 0x0bb2 0000292d: JUMP 0000292e: JUMPDEST 0000292f: DUP3 00002930: MLOAD 00002931: PUSH2 0xffff 00002934: AND 00002935: DUP3 00002936: GT 00002937: ISZERO 00002938: PUSH2 0x295b 0000293b: JUMPI 0000293c: CALLER 0000293d: PUSH1 0x00 0000293f: SWAP1 00002940: DUP2 00002941: MSTORE 00002942: PUSH1 0x07 00002944: PUSH1 0x20 00002946: MSTORE 00002947: PUSH1 0x40 00002949: SWAP1 0000294a: KECCAK256 0000294b: DUP1 0000294c: SLOAD 0000294d: PUSH3 0x010000 00002951: PUSH1 0x01 00002953: PUSH1 0x78 00002955: SHL 00002956: SUB 00002957: NOT 00002958: AND 00002959: SWAP1 0000295a: SSTORE 0000295b: JUMPDEST 0000295c: PUSH2 0x2964 0000295f: DUP6 00002960: PUSH2 0x2762 00002963: JUMP 00002964: JUMPDEST 00002965: PUSH2 0x296e 00002968: DUP6 00002969: DUP3 0000296a: PUSH2 0x3259 0000296d: JUMP 0000296e: JUMPDEST 0000296f: CALLER 00002970: PUSH1 0x00 00002972: DUP2 00002973: DUP2 00002974: MSTORE 00002975: PUSH1 0x07 00002977: PUSH1 0x20 00002979: MSTORE 0000297a: PUSH1 0x40 0000297c: SWAP1 0000297d: DUP2 0000297e: SWAP1 0000297f: KECCAK256 00002980: DUP1 00002981: SLOAD 00002982: PUSH1 0x01 00002984: PUSH1 0x01 00002986: PUSH1 0x80 00002988: SHL 00002989: SUB 0000298a: SWAP5 0000298b: SWAP1 0000298c: SWAP5 0000298d: AND 0000298e: PUSH1 0x01 00002990: PUSH1 0x78 00002992: SHL 00002993: MUL 00002994: PUSH1 0x01 00002996: PUSH1 0x78 00002998: SHL 00002999: PUSH1 0x01 0000299b: PUSH1 0xf8 0000299d: SHL 0000299e: SUB 0000299f: NOT 000029a0: SWAP1 000029a1: SWAP5 000029a2: AND 000029a3: SWAP4 000029a4: SWAP1 000029a5: SWAP4 000029a6: OR 000029a7: SWAP1 000029a8: SWAP3 000029a9: SSTORE 000029aa: DUP5 000029ab: MLOAD 000029ac: SWAP2 000029ad: MLOAD 000029ae: SWAP1 000029af: SWAP2 000029b0: PUSH32 0xe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929 000029d1: SWAP2 000029d2: PUSH2 0x29e7 000029d5: SWAP2 000029d6: DUP10 000029d7: DUP3 000029d8: MSTORE 000029d9: PUSH2 0xffff 000029dc: AND 000029dd: PUSH1 0x20 000029df: DUP3 000029e0: ADD 000029e1: MSTORE 000029e2: PUSH1 0x40 000029e4: ADD 000029e5: SWAP1 000029e6: JUMP 000029e7: JUMPDEST 000029e8: PUSH1 0x40 000029ea: MLOAD 000029eb: DUP1 000029ec: SWAP2 000029ed: SUB 000029ee: SWAP1 000029ef: LOG2 000029f0: PUSH2 0x29fa 000029f3: ADDRESS 000029f4: CALLER 000029f5: DUP8 000029f6: PUSH2 0x20f6 000029f9: JUMP 000029fa: JUMPDEST 000029fb: POP 000029fc: POP 000029fd: POP 000029fe: POP 000029ff: POP 00002a00: JUMP 00002a01: JUMPDEST 00002a02: PUSH1 0x06 00002a04: DUP1 00002a05: SLOAD 00002a06: PUSH1 0x01 00002a08: PUSH1 0x01 00002a0a: PUSH1 0xa0 00002a0c: SHL 00002a0d: SUB 00002a0e: DUP4 00002a0f: DUP2 00002a10: AND 00002a11: PUSH1 0x01 00002a13: PUSH1 0x01 00002a15: PUSH1 0xa0 00002a17: SHL 00002a18: SUB 00002a19: NOT 00002a1a: DUP4 00002a1b: AND 00002a1c: DUP2 00002a1d: OR 00002a1e: SWAP1 00002a1f: SWAP4 00002a20: SSTORE 00002a21: PUSH1 0x40 00002a23: MLOAD 00002a24: SWAP2 00002a25: AND 00002a26: SWAP2 00002a27: SWAP1 00002a28: DUP3 00002a29: SWAP1 00002a2a: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002a4b: SWAP1 00002a4c: PUSH1 0x00 00002a4e: SWAP1 00002a4f: LOG3 00002a50: POP 00002a51: POP 00002a52: JUMP 00002a53: JUMPDEST 00002a54: DUP4 00002a55: MLOAD 00002a56: PUSH1 0x00 00002a58: SWAP1 00002a59: PUSH2 0xffff 00002a5c: AND 00002a5d: ISZERO 00002a5e: DUP1 00002a5f: ISZERO 00002a60: SWAP1 00002a61: PUSH2 0x2a6e 00002a64: JUMPI 00002a65: POP 00002a66: DUP5 00002a67: MLOAD 00002a68: PUSH2 0xffff 00002a6b: AND 00002a6c: DUP5 00002a6d: GT 00002a6e: JUMPDEST 00002a6f: ISZERO 00002a70: PUSH2 0x2ab0 00002a73: JUMPI 00002a74: PUSH1 0x00 00002a76: PUSH2 0x2a8d 00002a79: DUP7 00002a7a: PUSH1 0x20 00002a7c: ADD 00002a7d: MLOAD 00002a7e: PUSH1 0x01 00002a80: PUSH1 0x01 00002a82: PUSH1 0x68 00002a84: SHL 00002a85: SUB 00002a86: AND 00002a87: DUP6 00002a88: DUP6 00002a89: PUSH2 0x2663 00002a8c: JUMP 00002a8d: JUMPDEST 00002a8e: SWAP1 00002a8f: POP 00002a90: DUP1 00002a91: DUP7 00002a92: PUSH1 0x40 00002a94: ADD 00002a95: MLOAD 00002a96: PUSH1 0x01 00002a98: PUSH1 0x01 00002a9a: PUSH1 0x80 00002a9c: SHL 00002a9d: SUB 00002a9e: AND 00002a9f: PUSH2 0x2aa8 00002aa2: SWAP2 00002aa3: SWAP1 00002aa4: PUSH2 0x328d 00002aa7: JUMP 00002aa8: JUMPDEST 00002aa9: SWAP2 00002aaa: POP 00002aab: POP 00002aac: PUSH2 0x12b2 00002aaf: JUMP 00002ab0: JUMPDEST 00002ab1: POP 00002ab2: POP 00002ab3: POP 00002ab4: POP 00002ab5: PUSH1 0x40 00002ab7: ADD 00002ab8: MLOAD 00002ab9: PUSH1 0x01 00002abb: PUSH1 0x01 00002abd: PUSH1 0x80 00002abf: SHL 00002ac0: SUB 00002ac1: AND 00002ac2: SWAP1 00002ac3: JUMP 00002ac4: JUMPDEST 00002ac5: PUSH1 0x01 00002ac7: PUSH1 0x01 00002ac9: PUSH1 0xa0 00002acb: SHL 00002acc: SUB 00002acd: DUP3 00002ace: AND 00002acf: PUSH2 0x2aee 00002ad2: JUMPI 00002ad3: PUSH1 0x40 00002ad5: MLOAD 00002ad6: PUSH4 0x4b637e8f 00002adb: PUSH1 0xe1 00002add: SHL 00002ade: DUP2 00002adf: MSTORE 00002ae0: PUSH1 0x00 00002ae2: PUSH1 0x04 00002ae4: DUP3 00002ae5: ADD 00002ae6: MSTORE 00002ae7: PUSH1 0x24 00002ae9: ADD 00002aea: PUSH2 0x0bb2 00002aed: JUMP 00002aee: JUMPDEST 00002aef: PUSH2 0x0df8 00002af2: DUP3 00002af3: PUSH1 0x00 00002af5: DUP4 00002af6: PUSH2 0x2bcf 00002af9: JUMP 00002afa: JUMPDEST 00002afb: PUSH1 0x01 00002afd: PUSH1 0x01 00002aff: PUSH1 0xa0 00002b01: SHL 00002b02: SUB 00002b03: DUP5 00002b04: AND 00002b05: PUSH2 0x2b24 00002b08: JUMPI 00002b09: PUSH1 0x40 00002b0b: MLOAD 00002b0c: PUSH4 0xe602df05 00002b11: PUSH1 0xe0 00002b13: SHL 00002b14: DUP2 00002b15: MSTORE 00002b16: PUSH1 0x00 00002b18: PUSH1 0x04 00002b1a: DUP3 00002b1b: ADD 00002b1c: MSTORE 00002b1d: PUSH1 0x24 00002b1f: ADD 00002b20: PUSH2 0x0bb2 00002b23: JUMP 00002b24: JUMPDEST 00002b25: PUSH1 0x01 00002b27: PUSH1 0x01 00002b29: PUSH1 0xa0 00002b2b: SHL 00002b2c: SUB 00002b2d: DUP4 00002b2e: AND 00002b2f: PUSH2 0x2b4e 00002b32: JUMPI 00002b33: PUSH1 0x40 00002b35: MLOAD 00002b36: PUSH4 0x4a1406b1 00002b3b: PUSH1 0xe1 00002b3d: SHL 00002b3e: DUP2 00002b3f: MSTORE 00002b40: PUSH1 0x00 00002b42: PUSH1 0x04 00002b44: DUP3 00002b45: ADD 00002b46: MSTORE 00002b47: PUSH1 0x24 00002b49: ADD 00002b4a: PUSH2 0x0bb2 00002b4d: JUMP 00002b4e: JUMPDEST 00002b4f: PUSH1 0x01 00002b51: PUSH1 0x01 00002b53: PUSH1 0xa0 00002b55: SHL 00002b56: SUB 00002b57: DUP1 00002b58: DUP6 00002b59: AND 00002b5a: PUSH1 0x00 00002b5c: SWAP1 00002b5d: DUP2 00002b5e: MSTORE 00002b5f: PUSH1 0x02 00002b61: PUSH1 0x20 00002b63: SWAP1 00002b64: DUP2 00002b65: MSTORE 00002b66: PUSH1 0x40 00002b68: DUP1 00002b69: DUP4 00002b6a: KECCAK256 00002b6b: SWAP4 00002b6c: DUP8 00002b6d: AND 00002b6e: DUP4 00002b6f: MSTORE 00002b70: SWAP3 00002b71: SWAP1 00002b72: MSTORE 00002b73: KECCAK256 00002b74: DUP3 00002b75: SWAP1 00002b76: SSTORE 00002b77: DUP1 00002b78: ISZERO 00002b79: PUSH2 0x20f0 00002b7c: JUMPI 00002b7d: DUP3 00002b7e: PUSH1 0x01 00002b80: PUSH1 0x01 00002b82: PUSH1 0xa0 00002b84: SHL 00002b85: SUB 00002b86: AND 00002b87: DUP5 00002b88: PUSH1 0x01 00002b8a: PUSH1 0x01 00002b8c: PUSH1 0xa0 00002b8e: SHL 00002b8f: SUB 00002b90: AND 00002b91: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00002bb2: DUP5 00002bb3: PUSH1 0x40 00002bb5: MLOAD 00002bb6: PUSH2 0x2bc1 00002bb9: SWAP2 00002bba: DUP2 00002bbb: MSTORE 00002bbc: PUSH1 0x20 00002bbe: ADD 00002bbf: SWAP1 00002bc0: JUMP 00002bc1: JUMPDEST 00002bc2: PUSH1 0x40 00002bc4: MLOAD 00002bc5: DUP1 00002bc6: SWAP2 00002bc7: SUB 00002bc8: SWAP1 00002bc9: LOG3 00002bca: POP 00002bcb: POP 00002bcc: POP 00002bcd: POP 00002bce: JUMP 00002bcf: JUMPDEST 00002bd0: PUSH1 0x01 00002bd2: PUSH1 0x01 00002bd4: PUSH1 0xa0 00002bd6: SHL 00002bd7: SUB 00002bd8: DUP4 00002bd9: AND 00002bda: PUSH2 0x2bfa 00002bdd: JUMPI 00002bde: DUP1 00002bdf: PUSH1 0x03 00002be1: PUSH1 0x00 00002be3: DUP3 00002be4: DUP3 00002be5: SLOAD 00002be6: PUSH2 0x2bef 00002be9: SWAP2 00002bea: SWAP1 00002beb: PUSH2 0x328d 00002bee: JUMP 00002bef: JUMPDEST 00002bf0: SWAP1 00002bf1: SWAP2 00002bf2: SSTORE 00002bf3: POP 00002bf4: PUSH2 0x2c6c 00002bf7: SWAP1 00002bf8: POP 00002bf9: JUMP 00002bfa: JUMPDEST 00002bfb: PUSH1 0x01 00002bfd: PUSH1 0x01 00002bff: PUSH1 0xa0 00002c01: SHL 00002c02: SUB 00002c03: DUP4 00002c04: AND 00002c05: PUSH1 0x00 00002c07: SWAP1 00002c08: DUP2 00002c09: MSTORE 00002c0a: PUSH1 0x01 00002c0c: PUSH1 0x20 00002c0e: MSTORE 00002c0f: PUSH1 0x40 00002c11: SWAP1 00002c12: KECCAK256 00002c13: SLOAD 00002c14: DUP2 00002c15: DUP2 00002c16: LT 00002c17: ISZERO 00002c18: PUSH2 0x2c4d 00002c1b: JUMPI 00002c1c: PUSH1 0x40 00002c1e: MLOAD 00002c1f: PUSH4 0x391434e3 00002c24: PUSH1 0xe2 00002c26: SHL 00002c27: DUP2 00002c28: MSTORE 00002c29: PUSH1 0x01 00002c2b: PUSH1 0x01 00002c2d: PUSH1 0xa0 00002c2f: SHL 00002c30: SUB 00002c31: DUP6 00002c32: AND 00002c33: PUSH1 0x04 00002c35: DUP3 00002c36: ADD 00002c37: MSTORE 00002c38: PUSH1 0x24 00002c3a: DUP2 00002c3b: ADD 00002c3c: DUP3 00002c3d: SWAP1 00002c3e: MSTORE 00002c3f: PUSH1 0x44 00002c41: DUP2 00002c42: ADD 00002c43: DUP4 00002c44: SWAP1 00002c45: MSTORE 00002c46: PUSH1 0x64 00002c48: ADD 00002c49: PUSH2 0x0bb2 00002c4c: JUMP 00002c4d: JUMPDEST 00002c4e: PUSH1 0x01 00002c50: PUSH1 0x01 00002c52: PUSH1 0xa0 00002c54: SHL 00002c55: SUB 00002c56: DUP5 00002c57: AND 00002c58: PUSH1 0x00 00002c5a: SWAP1 00002c5b: DUP2 00002c5c: MSTORE 00002c5d: PUSH1 0x01 00002c5f: PUSH1 0x20 00002c61: MSTORE 00002c62: PUSH1 0x40 00002c64: SWAP1 00002c65: KECCAK256 00002c66: SWAP1 00002c67: DUP3 00002c68: SWAP1 00002c69: SUB 00002c6a: SWAP1 00002c6b: SSTORE 00002c6c: JUMPDEST 00002c6d: PUSH1 0x01 00002c6f: PUSH1 0x01 00002c71: PUSH1 0xa0 00002c73: SHL 00002c74: SUB 00002c75: DUP3 00002c76: AND 00002c77: PUSH2 0x2c88 00002c7a: JUMPI 00002c7b: PUSH1 0x03 00002c7d: DUP1 00002c7e: SLOAD 00002c7f: DUP3 00002c80: SWAP1 00002c81: SUB 00002c82: SWAP1 00002c83: SSTORE 00002c84: PUSH2 0x2ca7 00002c87: JUMP 00002c88: JUMPDEST 00002c89: PUSH1 0x01 00002c8b: PUSH1 0x01 00002c8d: PUSH1 0xa0 00002c8f: SHL 00002c90: SUB 00002c91: DUP3 00002c92: AND 00002c93: PUSH1 0x00 00002c95: SWAP1 00002c96: DUP2 00002c97: MSTORE 00002c98: PUSH1 0x01 00002c9a: PUSH1 0x20 00002c9c: MSTORE 00002c9d: PUSH1 0x40 00002c9f: SWAP1 00002ca0: KECCAK256 00002ca1: DUP1 00002ca2: SLOAD 00002ca3: DUP3 00002ca4: ADD 00002ca5: SWAP1 00002ca6: SSTORE 00002ca7: JUMPDEST 00002ca8: DUP2 00002ca9: PUSH1 0x01 00002cab: PUSH1 0x01 00002cad: PUSH1 0xa0 00002caf: SHL 00002cb0: SUB 00002cb1: AND 00002cb2: DUP4 00002cb3: PUSH1 0x01 00002cb5: PUSH1 0x01 00002cb7: PUSH1 0xa0 00002cb9: SHL 00002cba: SUB 00002cbb: AND 00002cbc: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00002cdd: DUP4 00002cde: PUSH1 0x40 00002ce0: MLOAD 00002ce1: PUSH2 0x2cec 00002ce4: SWAP2 00002ce5: DUP2 00002ce6: MSTORE 00002ce7: PUSH1 0x20 00002ce9: ADD 00002cea: SWAP1 00002ceb: JUMP 00002cec: JUMPDEST 00002ced: PUSH1 0x40 00002cef: MLOAD 00002cf0: DUP1 00002cf1: SWAP2 00002cf2: SUB 00002cf3: SWAP1 00002cf4: LOG3 00002cf5: POP 00002cf6: POP 00002cf7: POP 00002cf8: JUMP 00002cf9: JUMPDEST 00002cfa: PUSH1 0x00 00002cfc: PUSH2 0x2d0e 00002cff: PUSH1 0x01 00002d01: PUSH1 0x01 00002d03: PUSH1 0xa0 00002d05: SHL 00002d06: SUB 00002d07: DUP5 00002d08: AND 00002d09: DUP4 00002d0a: PUSH2 0x2d5c 00002d0d: JUMP 00002d0e: JUMPDEST 00002d0f: SWAP1 00002d10: POP 00002d11: DUP1 00002d12: MLOAD 00002d13: PUSH1 0x00 00002d15: EQ 00002d16: ISZERO 00002d17: DUP1 00002d18: ISZERO 00002d19: PUSH2 0x2d33 00002d1c: JUMPI 00002d1d: POP 00002d1e: DUP1 00002d1f: DUP1 00002d20: PUSH1 0x20 00002d22: ADD 00002d23: SWAP1 00002d24: MLOAD 00002d25: DUP2 00002d26: ADD 00002d27: SWAP1 00002d28: PUSH2 0x2d31 00002d2b: SWAP2 00002d2c: SWAP1 00002d2d: PUSH2 0x3421 00002d30: JUMP 00002d31: JUMPDEST 00002d32: ISZERO 00002d33: JUMPDEST 00002d34: ISZERO 00002d35: PUSH2 0x2073 00002d38: JUMPI 00002d39: PUSH1 0x40 00002d3b: MLOAD 00002d3c: PUSH4 0x5274afe7 00002d41: PUSH1 0xe0 00002d43: SHL 00002d44: DUP2 00002d45: MSTORE 00002d46: PUSH1 0x01 00002d48: PUSH1 0x01 00002d4a: PUSH1 0xa0 00002d4c: SHL 00002d4d: SUB 00002d4e: DUP5 00002d4f: AND 00002d50: PUSH1 0x04 00002d52: DUP3 00002d53: ADD 00002d54: MSTORE 00002d55: PUSH1 0x24 00002d57: ADD 00002d58: PUSH2 0x0bb2 00002d5b: JUMP 00002d5c: JUMPDEST 00002d5d: PUSH1 0x60 00002d5f: PUSH2 0x0b70 00002d62: DUP4 00002d63: DUP4 00002d64: PUSH1 0x00 00002d66: DUP5 00002d67: PUSH1 0x00 00002d69: DUP1 00002d6a: DUP6 00002d6b: PUSH1 0x01 00002d6d: PUSH1 0x01 00002d6f: PUSH1 0xa0 00002d71: SHL 00002d72: SUB 00002d73: AND 00002d74: DUP5 00002d75: DUP7 00002d76: PUSH1 0x40 00002d78: MLOAD 00002d79: PUSH2 0x2d82 00002d7c: SWAP2 00002d7d: SWAP1 00002d7e: PUSH2 0x343e 00002d81: JUMP 00002d82: JUMPDEST 00002d83: PUSH1 0x00 00002d85: PUSH1 0x40 00002d87: MLOAD 00002d88: DUP1 00002d89: DUP4 00002d8a: SUB 00002d8b: DUP2 00002d8c: DUP6 00002d8d: DUP8 00002d8e: GAS 00002d8f: CALL 00002d90: SWAP3 00002d91: POP 00002d92: POP 00002d93: POP 00002d94: RETURNDATASIZE 00002d95: DUP1 00002d96: PUSH1 0x00 00002d98: DUP2 00002d99: EQ 00002d9a: PUSH2 0x2dbf 00002d9d: JUMPI 00002d9e: PUSH1 0x40 00002da0: MLOAD 00002da1: SWAP2 00002da2: POP 00002da3: PUSH1 0x1f 00002da5: NOT 00002da6: PUSH1 0x3f 00002da8: RETURNDATASIZE 00002da9: ADD 00002daa: AND 00002dab: DUP3 00002dac: ADD 00002dad: PUSH1 0x40 00002daf: MSTORE 00002db0: RETURNDATASIZE 00002db1: DUP3 00002db2: MSTORE 00002db3: RETURNDATASIZE 00002db4: PUSH1 0x00 00002db6: PUSH1 0x20 00002db8: DUP5 00002db9: ADD 00002dba: RETURNDATACOPY 00002dbb: PUSH2 0x2dc4 00002dbe: JUMP 00002dbf: JUMPDEST 00002dc0: PUSH1 0x60 00002dc2: SWAP2 00002dc3: POP 00002dc4: JUMPDEST 00002dc5: POP 00002dc6: SWAP2 00002dc7: POP 00002dc8: SWAP2 00002dc9: POP 00002dca: PUSH2 0x2659 00002dcd: DUP7 00002dce: DUP4 00002dcf: DUP4 00002dd0: PUSH1 0x60 00002dd2: DUP3 00002dd3: PUSH2 0x2de4 00002dd6: JUMPI 00002dd7: PUSH2 0x2ddf 00002dda: DUP3 00002ddb: PUSH2 0x2e2b 00002dde: JUMP 00002ddf: JUMPDEST 00002de0: PUSH2 0x0b70 00002de3: JUMP 00002de4: JUMPDEST 00002de5: DUP2 00002de6: MLOAD 00002de7: ISZERO 00002de8: DUP1 00002de9: ISZERO 00002dea: PUSH2 0x2dfb 00002ded: JUMPI 00002dee: POP 00002def: PUSH1 0x01 00002df1: PUSH1 0x01 00002df3: PUSH1 0xa0 00002df5: SHL 00002df6: SUB 00002df7: DUP5 00002df8: AND 00002df9: EXTCODESIZE 00002dfa: ISZERO 00002dfb: JUMPDEST 00002dfc: ISZERO 00002dfd: PUSH2 0x2e24 00002e00: JUMPI 00002e01: PUSH1 0x40 00002e03: MLOAD 00002e04: PUSH4 0x9996b315 00002e09: PUSH1 0xe0 00002e0b: SHL 00002e0c: DUP2 00002e0d: MSTORE 00002e0e: PUSH1 0x01 00002e10: PUSH1 0x01 00002e12: PUSH1 0xa0 00002e14: SHL 00002e15: SUB 00002e16: DUP6 00002e17: AND 00002e18: PUSH1 0x04 00002e1a: DUP3 00002e1b: ADD 00002e1c: MSTORE 00002e1d: PUSH1 0x24 00002e1f: ADD 00002e20: PUSH2 0x0bb2 00002e23: JUMP 00002e24: JUMPDEST 00002e25: POP 00002e26: DUP1 00002e27: PUSH2 0x0b70 00002e2a: JUMP 00002e2b: JUMPDEST 00002e2c: DUP1 00002e2d: MLOAD 00002e2e: ISZERO 00002e2f: PUSH2 0x2e3b 00002e32: JUMPI 00002e33: DUP1 00002e34: MLOAD 00002e35: DUP1 00002e36: DUP3 00002e37: PUSH1 0x20 00002e39: ADD 00002e3a: REVERT 00002e3b: JUMPDEST 00002e3c: PUSH1 0x40 00002e3e: MLOAD 00002e3f: PUSH4 0x0a12f521 00002e44: PUSH1 0xe1 00002e46: SHL 00002e47: DUP2 00002e48: MSTORE 00002e49: PUSH1 0x04 00002e4b: ADD 00002e4c: PUSH1 0x40 00002e4e: MLOAD 00002e4f: DUP1 00002e50: SWAP2 00002e51: SUB 00002e52: SWAP1 00002e53: REVERT 00002e54: JUMPDEST 00002e55: PUSH1 0x00 00002e57: JUMPDEST 00002e58: DUP4 00002e59: DUP2 00002e5a: LT 00002e5b: ISZERO 00002e5c: PUSH2 0x2e6f 00002e5f: JUMPI 00002e60: DUP2 00002e61: DUP2 00002e62: ADD 00002e63: MLOAD 00002e64: DUP4 00002e65: DUP3 00002e66: ADD 00002e67: MSTORE 00002e68: PUSH1 0x20 00002e6a: ADD 00002e6b: PUSH2 0x2e57 00002e6e: JUMP 00002e6f: JUMPDEST 00002e70: POP 00002e71: POP 00002e72: PUSH1 0x00 00002e74: SWAP2 00002e75: ADD 00002e76: MSTORE 00002e77: JUMP 00002e78: JUMPDEST 00002e79: PUSH1 0x20 00002e7b: DUP2 00002e7c: MSTORE 00002e7d: PUSH1 0x00 00002e7f: DUP3 00002e80: MLOAD 00002e81: DUP1 00002e82: PUSH1 0x20 00002e84: DUP5 00002e85: ADD 00002e86: MSTORE 00002e87: PUSH2 0x2e97 00002e8a: DUP2 00002e8b: PUSH1 0x40 00002e8d: DUP6 00002e8e: ADD 00002e8f: PUSH1 0x20 00002e91: DUP8 00002e92: ADD 00002e93: PUSH2 0x2e54 00002e96: JUMP 00002e97: JUMPDEST 00002e98: PUSH1 0x1f 00002e9a: ADD 00002e9b: PUSH1 0x1f 00002e9d: NOT 00002e9e: AND 00002e9f: SWAP2 00002ea0: SWAP1 00002ea1: SWAP2 00002ea2: ADD 00002ea3: PUSH1 0x40 00002ea5: ADD 00002ea6: SWAP3 00002ea7: SWAP2 00002ea8: POP 00002ea9: POP 00002eaa: JUMP 00002eab: JUMPDEST 00002eac: DUP1 00002ead: CALLDATALOAD 00002eae: PUSH1 0x01 00002eb0: PUSH1 0x01 00002eb2: PUSH1 0xa0 00002eb4: SHL 00002eb5: SUB 00002eb6: DUP2 00002eb7: AND 00002eb8: DUP2 00002eb9: EQ 00002eba: PUSH2 0x2ec2 00002ebd: JUMPI 00002ebe: PUSH1 0x00 00002ec0: DUP1 00002ec1: REVERT 00002ec2: JUMPDEST 00002ec3: SWAP2 00002ec4: SWAP1 00002ec5: POP 00002ec6: JUMP 00002ec7: JUMPDEST 00002ec8: PUSH1 0x00 00002eca: DUP1 00002ecb: PUSH1 0x40 00002ecd: DUP4 00002ece: DUP6 00002ecf: SUB 00002ed0: SLT 00002ed1: ISZERO 00002ed2: PUSH2 0x2eda 00002ed5: JUMPI 00002ed6: PUSH1 0x00 00002ed8: DUP1 00002ed9: REVERT 00002eda: JUMPDEST 00002edb: PUSH2 0x2ee3 00002ede: DUP4 00002edf: PUSH2 0x2eab 00002ee2: JUMP 00002ee3: JUMPDEST 00002ee4: SWAP5 00002ee5: PUSH1 0x20 00002ee7: SWAP4 00002ee8: SWAP1 00002ee9: SWAP4 00002eea: ADD 00002eeb: CALLDATALOAD 00002eec: SWAP4 00002eed: POP 00002eee: POP 00002eef: POP 00002ef0: JUMP 00002ef1: JUMPDEST 00002ef2: PUSH1 0x00 00002ef4: DUP1 00002ef5: PUSH1 0x00 00002ef7: PUSH1 0x60 00002ef9: DUP5 00002efa: DUP7 00002efb: SUB 00002efc: SLT 00002efd: ISZERO 00002efe: PUSH2 0x2f06 00002f01: JUMPI 00002f02: PUSH1 0x00 00002f04: DUP1 00002f05: REVERT 00002f06: JUMPDEST 00002f07: PUSH2 0x2f0f 00002f0a: DUP5 00002f0b: PUSH2 0x2eab 00002f0e: JUMP 00002f0f: JUMPDEST 00002f10: SWAP3 00002f11: POP 00002f12: PUSH2 0x2f1d 00002f15: PUSH1 0x20 00002f17: DUP6 00002f18: ADD 00002f19: PUSH2 0x2eab 00002f1c: JUMP 00002f1d: JUMPDEST 00002f1e: SWAP2 00002f1f: POP 00002f20: PUSH1 0x40 00002f22: DUP5 00002f23: ADD 00002f24: CALLDATALOAD 00002f25: SWAP1 00002f26: POP 00002f27: SWAP3 00002f28: POP 00002f29: SWAP3 00002f2a: POP 00002f2b: SWAP3 00002f2c: JUMP 00002f2d: JUMPDEST 00002f2e: PUSH1 0x00 00002f30: PUSH1 0x20 00002f32: DUP3 00002f33: DUP5 00002f34: SUB 00002f35: SLT 00002f36: ISZERO 00002f37: PUSH2 0x2f3f 00002f3a: JUMPI 00002f3b: PUSH1 0x00 00002f3d: DUP1 00002f3e: REVERT 00002f3f: JUMPDEST 00002f40: POP 00002f41: CALLDATALOAD 00002f42: SWAP2 00002f43: SWAP1 00002f44: POP 00002f45: JUMP 00002f46: JUMPDEST 00002f47: PUSH4 0x4e487b71 00002f4c: PUSH1 0xe0 00002f4e: SHL 00002f4f: PUSH1 0x00 00002f51: MSTORE 00002f52: PUSH1 0x41 00002f54: PUSH1 0x04 00002f56: MSTORE 00002f57: PUSH1 0x24 00002f59: PUSH1 0x00 00002f5b: REVERT 00002f5c: JUMPDEST 00002f5d: PUSH1 0x00 00002f5f: DUP3 00002f60: PUSH1 0x1f 00002f62: DUP4 00002f63: ADD 00002f64: SLT 00002f65: PUSH2 0x2f6d 00002f68: JUMPI 00002f69: PUSH1 0x00 00002f6b: DUP1 00002f6c: REVERT 00002f6d: JUMPDEST 00002f6e: DUP2 00002f6f: CALLDATALOAD 00002f70: PUSH1 0x20 00002f72: PUSH8 0xffffffffffffffff 00002f7b: DUP1 00002f7c: DUP4 00002f7d: GT 00002f7e: ISZERO 00002f7f: PUSH2 0x2f8a 00002f82: JUMPI 00002f83: PUSH2 0x2f8a 00002f86: PUSH2 0x2f46 00002f89: JUMP 00002f8a: JUMPDEST 00002f8b: DUP3 00002f8c: PUSH1 0x05 00002f8e: SHL 00002f8f: PUSH1 0x40 00002f91: MLOAD 00002f92: PUSH1 0x1f 00002f94: NOT 00002f95: PUSH1 0x3f 00002f97: DUP4 00002f98: ADD 00002f99: AND 00002f9a: DUP2 00002f9b: ADD 00002f9c: DUP2 00002f9d: DUP2 00002f9e: LT 00002f9f: DUP5 00002fa0: DUP3 00002fa1: GT 00002fa2: OR 00002fa3: ISZERO 00002fa4: PUSH2 0x2faf 00002fa7: JUMPI 00002fa8: PUSH2 0x2faf 00002fab: PUSH2 0x2f46 00002fae: JUMP 00002faf: JUMPDEST 00002fb0: PUSH1 0x40 00002fb2: MSTORE 00002fb3: SWAP4 00002fb4: DUP5 00002fb5: MSTORE 00002fb6: DUP6 00002fb7: DUP2 00002fb8: ADD 00002fb9: DUP4 00002fba: ADD 00002fbb: SWAP4 00002fbc: DUP4 00002fbd: DUP2 00002fbe: ADD 00002fbf: SWAP3 00002fc0: POP 00002fc1: DUP8 00002fc2: DUP6 00002fc3: GT 00002fc4: ISZERO 00002fc5: PUSH2 0x2fcd 00002fc8: JUMPI 00002fc9: PUSH1 0x00 00002fcb: DUP1 00002fcc: REVERT 00002fcd: JUMPDEST 00002fce: DUP4 00002fcf: DUP8 00002fd0: ADD 00002fd1: SWAP2 00002fd2: POP 00002fd3: JUMPDEST 00002fd4: DUP5 00002fd5: DUP3 00002fd6: LT 00002fd7: ISZERO 00002fd8: PUSH2 0x2fec 00002fdb: JUMPI 00002fdc: DUP2 00002fdd: CALLDATALOAD 00002fde: DUP4 00002fdf: MSTORE 00002fe0: SWAP2 00002fe1: DUP4 00002fe2: ADD 00002fe3: SWAP2 00002fe4: SWAP1 00002fe5: DUP4 00002fe6: ADD 00002fe7: SWAP1 00002fe8: PUSH2 0x2fd3 00002feb: JUMP 00002fec: JUMPDEST 00002fed: SWAP8 00002fee: SWAP7 00002fef: POP 00002ff0: POP 00002ff1: POP 00002ff2: POP 00002ff3: POP 00002ff4: POP 00002ff5: POP 00002ff6: JUMP 00002ff7: JUMPDEST 00002ff8: PUSH1 0x00 00002ffa: DUP1 00002ffb: PUSH1 0x40 00002ffd: DUP4 00002ffe: DUP6 00002fff: SUB 00003000: SLT 00003001: ISZERO 00003002: PUSH2 0x300a 00003005: JUMPI 00003006: PUSH1 0x00 00003008: DUP1 00003009: REVERT 0000300a: JUMPDEST 0000300b: DUP3 0000300c: CALLDATALOAD 0000300d: SWAP2 0000300e: POP 0000300f: PUSH1 0x20 00003011: DUP4 00003012: ADD 00003013: CALLDATALOAD 00003014: PUSH8 0xffffffffffffffff 0000301d: DUP2 0000301e: GT 0000301f: ISZERO 00003020: PUSH2 0x3028 00003023: JUMPI 00003024: PUSH1 0x00 00003026: DUP1 00003027: REVERT 00003028: JUMPDEST 00003029: PUSH2 0x3034 0000302c: DUP6 0000302d: DUP3 0000302e: DUP7 0000302f: ADD 00003030: PUSH2 0x2f5c 00003033: JUMP 00003034: JUMPDEST 00003035: SWAP2 00003036: POP 00003037: POP 00003038: SWAP3 00003039: POP 0000303a: SWAP3 0000303b: SWAP1 0000303c: POP 0000303d: JUMP 0000303e: JUMPDEST 0000303f: PUSH1 0x00 00003041: DUP1 00003042: PUSH1 0x40 00003044: DUP4 00003045: DUP6 00003046: SUB 00003047: SLT 00003048: ISZERO 00003049: PUSH2 0x3051 0000304c: JUMPI 0000304d: PUSH1 0x00 0000304f: DUP1 00003050: REVERT 00003051: JUMPDEST 00003052: DUP3 00003053: CALLDATALOAD 00003054: SWAP2 00003055: POP 00003056: PUSH2 0x3061 00003059: PUSH1 0x20 0000305b: DUP5 0000305c: ADD 0000305d: PUSH2 0x2eab 00003060: JUMP 00003061: JUMPDEST 00003062: SWAP1 00003063: POP 00003064: SWAP3 00003065: POP 00003066: SWAP3 00003067: SWAP1 00003068: POP 00003069: JUMP 0000306a: JUMPDEST 0000306b: PUSH1 0x00 0000306d: PUSH1 0x20 0000306f: DUP3 00003070: DUP5 00003071: SUB 00003072: SLT 00003073: ISZERO 00003074: PUSH2 0x307c 00003077: JUMPI 00003078: PUSH1 0x00 0000307a: DUP1 0000307b: REVERT 0000307c: JUMPDEST 0000307d: PUSH2 0x0b70 00003080: DUP3 00003081: PUSH2 0x2eab 00003084: JUMP 00003085: JUMPDEST 00003086: DUP1 00003087: ISZERO 00003088: ISZERO 00003089: DUP2 0000308a: EQ 0000308b: PUSH2 0x0d07 0000308e: JUMPI 0000308f: PUSH1 0x00 00003091: DUP1 00003092: REVERT 00003093: JUMPDEST 00003094: PUSH1 0x00 00003096: PUSH1 0x20 00003098: DUP3 00003099: DUP5 0000309a: SUB 0000309b: SLT 0000309c: ISZERO 0000309d: PUSH2 0x30a5 000030a0: JUMPI 000030a1: PUSH1 0x00 000030a3: DUP1 000030a4: REVERT 000030a5: JUMPDEST 000030a6: DUP2 000030a7: CALLDATALOAD 000030a8: PUSH2 0x0b70 000030ab: DUP2 000030ac: PUSH2 0x3085 000030af: JUMP 000030b0: JUMPDEST 000030b1: PUSH1 0x00 000030b3: DUP1 000030b4: PUSH1 0x40 000030b6: DUP4 000030b7: DUP6 000030b8: SUB 000030b9: SLT 000030ba: ISZERO 000030bb: PUSH2 0x30c3 000030be: JUMPI 000030bf: PUSH1 0x00 000030c1: DUP1 000030c2: REVERT 000030c3: JUMPDEST 000030c4: PUSH2 0x30cc 000030c7: DUP4 000030c8: PUSH2 0x2eab 000030cb: JUMP 000030cc: JUMPDEST 000030cd: SWAP2 000030ce: POP 000030cf: PUSH1 0x20 000030d1: DUP4 000030d2: ADD 000030d3: CALLDATALOAD 000030d4: PUSH8 0xffffffffffffffff 000030dd: DUP2 000030de: GT 000030df: ISZERO 000030e0: PUSH2 0x3028 000030e3: JUMPI 000030e4: PUSH1 0x00 000030e6: DUP1 000030e7: REVERT 000030e8: JUMPDEST 000030e9: PUSH1 0x00 000030eb: DUP1 000030ec: PUSH1 0x40 000030ee: DUP4 000030ef: DUP6 000030f0: SUB 000030f1: SLT 000030f2: ISZERO 000030f3: PUSH2 0x30fb 000030f6: JUMPI 000030f7: PUSH1 0x00 000030f9: DUP1 000030fa: REVERT 000030fb: JUMPDEST 000030fc: PUSH2 0x3104 000030ff: DUP4 00003100: PUSH2 0x2eab 00003103: JUMP 00003104: JUMPDEST 00003105: SWAP2 00003106: POP 00003107: PUSH2 0x3061 0000310a: PUSH1 0x20 0000310c: DUP5 0000310d: ADD 0000310e: PUSH2 0x2eab 00003111: JUMP 00003112: JUMPDEST 00003113: PUSH1 0x00 00003115: PUSH1 0x20 00003117: DUP3 00003118: DUP5 00003119: SUB 0000311a: SLT 0000311b: ISZERO 0000311c: PUSH2 0x3124 0000311f: JUMPI 00003120: PUSH1 0x00 00003122: DUP1 00003123: REVERT 00003124: JUMPDEST 00003125: DUP2 00003126: CALLDATALOAD 00003127: PUSH8 0xffffffffffffffff 00003130: DUP2 00003131: GT 00003132: ISZERO 00003133: PUSH2 0x313b 00003136: JUMPI 00003137: PUSH1 0x00 00003139: DUP1 0000313a: REVERT 0000313b: JUMPDEST 0000313c: PUSH2 0x12b2 0000313f: DUP5 00003140: DUP3 00003141: DUP6 00003142: ADD 00003143: PUSH2 0x2f5c 00003146: JUMP 00003147: JUMPDEST 00003148: PUSH1 0x00 0000314a: PUSH1 0x80 0000314c: DUP3 0000314d: DUP5 0000314e: SUB 0000314f: SLT 00003150: ISZERO 00003151: PUSH2 0x3159 00003154: JUMPI 00003155: PUSH1 0x00 00003157: DUP1 00003158: REVERT 00003159: JUMPDEST 0000315a: PUSH1 0x40 0000315c: MLOAD 0000315d: PUSH1 0x80 0000315f: DUP2 00003160: ADD 00003161: DUP2 00003162: DUP2 00003163: LT 00003164: PUSH8 0xffffffffffffffff 0000316d: DUP3 0000316e: GT 0000316f: OR 00003170: ISZERO 00003171: PUSH2 0x317c 00003174: JUMPI 00003175: PUSH2 0x317c 00003178: PUSH2 0x2f46 0000317b: JUMP 0000317c: JUMPDEST 0000317d: PUSH1 0x40 0000317f: MSTORE 00003180: DUP3 00003181: CALLDATALOAD 00003182: PUSH1 0xff 00003184: DUP2 00003185: AND 00003186: DUP2 00003187: EQ 00003188: PUSH2 0x3190 0000318b: JUMPI 0000318c: PUSH1 0x00 0000318e: DUP1 0000318f: REVERT 00003190: JUMPDEST 00003191: DUP2 00003192: MSTORE 00003193: PUSH2 0x319e 00003196: PUSH1 0x20 00003198: DUP5 00003199: ADD 0000319a: PUSH2 0x2eab 0000319d: JUMP 0000319e: JUMPDEST 0000319f: PUSH1 0x20 000031a1: DUP3 000031a2: ADD 000031a3: MSTORE 000031a4: PUSH1 0x40 000031a6: DUP4 000031a7: ADD 000031a8: CALLDATALOAD 000031a9: PUSH7 0xffffffffffffff 000031b1: DUP2 000031b2: AND 000031b3: DUP2 000031b4: EQ 000031b5: PUSH2 0x31bd 000031b8: JUMPI 000031b9: PUSH1 0x00 000031bb: DUP1 000031bc: REVERT 000031bd: JUMPDEST 000031be: PUSH1 0x40 000031c0: DUP3 000031c1: ADD 000031c2: MSTORE 000031c3: PUSH1 0x60 000031c5: DUP4 000031c6: ADD 000031c7: CALLDATALOAD 000031c8: PUSH1 0x01 000031ca: PUSH1 0x01 000031cc: PUSH1 0x68 000031ce: SHL 000031cf: SUB 000031d0: DUP2 000031d1: AND 000031d2: DUP2 000031d3: EQ 000031d4: PUSH2 0x31dc 000031d7: JUMPI 000031d8: PUSH1 0x00 000031da: DUP1 000031db: REVERT 000031dc: JUMPDEST 000031dd: PUSH1 0x60 000031df: DUP3 000031e0: ADD 000031e1: MSTORE 000031e2: SWAP4 000031e3: SWAP3 000031e4: POP 000031e5: POP 000031e6: POP 000031e7: JUMP 000031e8: JUMPDEST 000031e9: PUSH1 0x01 000031eb: DUP2 000031ec: DUP2 000031ed: SHR 000031ee: SWAP1 000031ef: DUP3 000031f0: AND 000031f1: DUP1 000031f2: PUSH2 0x31fc 000031f5: JUMPI 000031f6: PUSH1 0x7f 000031f8: DUP3 000031f9: AND 000031fa: SWAP2 000031fb: POP 000031fc: JUMPDEST 000031fd: PUSH1 0x20 000031ff: DUP3 00003200: LT 00003201: DUP2 00003202: SUB 00003203: PUSH2 0x321c 00003206: JUMPI 00003207: PUSH4 0x4e487b71 0000320c: PUSH1 0xe0 0000320e: SHL 0000320f: PUSH1 0x00 00003211: MSTORE 00003212: PUSH1 0x22 00003214: PUSH1 0x04 00003216: MSTORE 00003217: PUSH1 0x24 00003219: PUSH1 0x00 0000321b: REVERT 0000321c: JUMPDEST 0000321d: POP 0000321e: SWAP2 0000321f: SWAP1 00003220: POP 00003221: JUMP 00003222: JUMPDEST 00003223: PUSH1 0x20 00003225: DUP1 00003226: DUP3 00003227: MSTORE 00003228: PUSH1 0x07 0000322a: SWAP1 0000322b: DUP3 0000322c: ADD 0000322d: MSTORE 0000322e: PUSH7 0x08585b5bdd5b9d 00003236: PUSH1 0xca 00003238: SHL 00003239: PUSH1 0x40 0000323b: DUP3 0000323c: ADD 0000323d: MSTORE 0000323e: PUSH1 0x60 00003240: ADD 00003241: SWAP1 00003242: JUMP 00003243: JUMPDEST 00003244: PUSH4 0x4e487b71 00003249: PUSH1 0xe0 0000324b: SHL 0000324c: PUSH1 0x00 0000324e: MSTORE 0000324f: PUSH1 0x11 00003251: PUSH1 0x04 00003253: MSTORE 00003254: PUSH1 0x24 00003256: PUSH1 0x00 00003258: REVERT 00003259: JUMPDEST 0000325a: DUP2 0000325b: DUP2 0000325c: SUB 0000325d: DUP2 0000325e: DUP2 0000325f: GT 00003260: ISZERO 00003261: PUSH2 0x0b4b 00003264: JUMPI 00003265: PUSH2 0x0b4b 00003268: PUSH2 0x3243 0000326b: JUMP 0000326c: JUMPDEST 0000326d: PUSH1 0x20 0000326f: DUP1 00003270: DUP3 00003271: MSTORE 00003272: PUSH1 0x07 00003274: SWAP1 00003275: DUP3 00003276: ADD 00003277: MSTORE 00003278: PUSH7 0x217075626c6963 00003280: PUSH1 0xc8 00003282: SHL 00003283: PUSH1 0x40 00003285: DUP3 00003286: ADD 00003287: MSTORE 00003288: PUSH1 0x60 0000328a: ADD 0000328b: SWAP1 0000328c: JUMP 0000328d: JUMPDEST 0000328e: DUP1 0000328f: DUP3 00003290: ADD 00003291: DUP1 00003292: DUP3 00003293: GT 00003294: ISZERO 00003295: PUSH2 0x0b4b 00003298: JUMPI 00003299: PUSH2 0x0b4b 0000329c: PUSH2 0x3243 0000329f: JUMP 000032a0: JUMPDEST 000032a1: PUSH1 0x00 000032a3: PUSH1 0x20 000032a5: DUP3 000032a6: DUP5 000032a7: SUB 000032a8: SLT 000032a9: ISZERO 000032aa: PUSH2 0x32b2 000032ad: JUMPI 000032ae: PUSH1 0x00 000032b0: DUP1 000032b1: REVERT 000032b2: JUMPDEST 000032b3: POP 000032b4: MLOAD 000032b5: SWAP2 000032b6: SWAP1 000032b7: POP 000032b8: JUMP 000032b9: JUMPDEST 000032ba: PUSH1 0x20 000032bc: DUP1 000032bd: DUP3 000032be: MSTORE 000032bf: PUSH1 0x05 000032c1: SWAP1 000032c2: DUP3 000032c3: ADD 000032c4: MSTORE 000032c5: PUSH5 0x042ae8aa89 000032cb: PUSH1 0xdb 000032cd: SHL 000032ce: PUSH1 0x40 000032d0: DUP3 000032d1: ADD 000032d2: MSTORE 000032d3: PUSH1 0x60 000032d5: ADD 000032d6: SWAP1 000032d7: JUMP 000032d8: JUMPDEST 000032d9: PUSH1 0x20 000032db: DUP1 000032dc: DUP3 000032dd: MSTORE 000032de: PUSH1 0x06 000032e0: SWAP1 000032e1: DUP3 000032e2: ADD 000032e3: MSTORE 000032e4: PUSH6 0x2176616c7565 000032eb: PUSH1 0xd0 000032ed: SHL 000032ee: PUSH1 0x40 000032f0: DUP3 000032f1: ADD 000032f2: MSTORE 000032f3: PUSH1 0x60 000032f5: ADD 000032f6: SWAP1 000032f7: JUMP 000032f8: JUMPDEST 000032f9: PUSH1 0x01 000032fb: DUP2 000032fc: DUP2 000032fd: JUMPDEST 000032fe: DUP1 000032ff: DUP6 00003300: GT 00003301: ISZERO 00003302: PUSH2 0x3333 00003305: JUMPI 00003306: DUP2 00003307: PUSH1 0x00 00003309: NOT 0000330a: DIV 0000330b: DUP3 0000330c: GT 0000330d: ISZERO 0000330e: PUSH2 0x3319 00003311: JUMPI 00003312: PUSH2 0x3319 00003315: PUSH2 0x3243 00003318: JUMP 00003319: JUMPDEST 0000331a: DUP1 0000331b: DUP6 0000331c: AND 0000331d: ISZERO 0000331e: PUSH2 0x3326 00003321: JUMPI 00003322: SWAP2 00003323: DUP2 00003324: MUL 00003325: SWAP2 00003326: JUMPDEST 00003327: SWAP4 00003328: DUP5 00003329: SHR 0000332a: SWAP4 0000332b: SWAP1 0000332c: DUP1 0000332d: MUL 0000332e: SWAP1 0000332f: PUSH2 0x32fd 00003332: JUMP 00003333: JUMPDEST 00003334: POP 00003335: SWAP3 00003336: POP 00003337: SWAP3 00003338: SWAP1 00003339: POP 0000333a: JUMP 0000333b: JUMPDEST 0000333c: PUSH1 0x00 0000333e: DUP3 0000333f: PUSH2 0x334a 00003342: JUMPI 00003343: POP 00003344: PUSH1 0x01 00003346: PUSH2 0x0b4b 00003349: JUMP 0000334a: JUMPDEST 0000334b: DUP2 0000334c: PUSH2 0x3357 0000334f: JUMPI 00003350: POP 00003351: PUSH1 0x00 00003353: PUSH2 0x0b4b 00003356: JUMP 00003357: JUMPDEST 00003358: DUP2 00003359: PUSH1 0x01 0000335b: DUP2 0000335c: EQ 0000335d: PUSH2 0x336d 00003360: JUMPI 00003361: PUSH1 0x02 00003363: DUP2 00003364: EQ 00003365: PUSH2 0x3377 00003368: JUMPI 00003369: PUSH2 0x3393 0000336c: JUMP 0000336d: JUMPDEST 0000336e: PUSH1 0x01 00003370: SWAP2 00003371: POP 00003372: POP 00003373: PUSH2 0x0b4b 00003376: JUMP 00003377: JUMPDEST 00003378: PUSH1 0xff 0000337a: DUP5 0000337b: GT 0000337c: ISZERO 0000337d: PUSH2 0x3388 00003380: JUMPI 00003381: PUSH2 0x3388 00003384: PUSH2 0x3243 00003387: JUMP 00003388: JUMPDEST 00003389: POP 0000338a: POP 0000338b: PUSH1 0x01 0000338d: DUP3 0000338e: SHL 0000338f: PUSH2 0x0b4b 00003392: JUMP 00003393: JUMPDEST 00003394: POP 00003395: PUSH1 0x20 00003397: DUP4 00003398: LT 00003399: PUSH2 0x0133 0000339c: DUP4 0000339d: LT 0000339e: AND 0000339f: PUSH1 0x4e 000033a1: DUP5 000033a2: LT 000033a3: PUSH1 0x0b 000033a5: DUP5 000033a6: LT 000033a7: AND 000033a8: OR 000033a9: ISZERO 000033aa: PUSH2 0x33b6 000033ad: JUMPI 000033ae: POP 000033af: DUP2 000033b0: DUP2 000033b1: EXP 000033b2: PUSH2 0x0b4b 000033b5: JUMP 000033b6: JUMPDEST 000033b7: PUSH2 0x33c0 000033ba: DUP4 000033bb: DUP4 000033bc: PUSH2 0x32f8 000033bf: JUMP 000033c0: JUMPDEST 000033c1: DUP1 000033c2: PUSH1 0x00 000033c4: NOT 000033c5: DIV 000033c6: DUP3 000033c7: GT 000033c8: ISZERO 000033c9: PUSH2 0x33d4 000033cc: JUMPI 000033cd: PUSH2 0x33d4 000033d0: PUSH2 0x3243 000033d3: JUMP 000033d4: JUMPDEST 000033d5: MUL 000033d6: SWAP4 000033d7: SWAP3 000033d8: POP 000033d9: POP 000033da: POP 000033db: JUMP 000033dc: JUMPDEST 000033dd: PUSH1 0x00 000033df: PUSH2 0x0b70 000033e2: DUP4 000033e3: DUP4 000033e4: PUSH2 0x333b 000033e7: JUMP 000033e8: JUMPDEST 000033e9: DUP1 000033ea: DUP3 000033eb: MUL 000033ec: DUP2 000033ed: ISZERO 000033ee: DUP3 000033ef: DUP3 000033f0: DIV 000033f1: DUP5 000033f2: EQ 000033f3: OR 000033f4: PUSH2 0x0b4b 000033f7: JUMPI 000033f8: PUSH2 0x0b4b 000033fb: PUSH2 0x3243 000033fe: JUMP 000033ff: JUMPDEST 00003400: PUSH1 0x00 00003402: DUP3 00003403: PUSH2 0x341c 00003406: JUMPI 00003407: PUSH4 0x4e487b71 0000340c: PUSH1 0xe0 0000340e: SHL 0000340f: PUSH1 0x00 00003411: MSTORE 00003412: PUSH1 0x12 00003414: PUSH1 0x04 00003416: MSTORE 00003417: PUSH1 0x24 00003419: PUSH1 0x00 0000341b: REVERT 0000341c: JUMPDEST 0000341d: POP 0000341e: DIV 0000341f: SWAP1 00003420: JUMP 00003421: JUMPDEST 00003422: PUSH1 0x00 00003424: PUSH1 0x20 00003426: DUP3 00003427: DUP5 00003428: SUB 00003429: SLT 0000342a: ISZERO 0000342b: PUSH2 0x3433 0000342e: JUMPI 0000342f: PUSH1 0x00 00003431: DUP1 00003432: REVERT 00003433: JUMPDEST 00003434: DUP2 00003435: MLOAD 00003436: PUSH2 0x0b70 00003439: DUP2 0000343a: PUSH2 0x3085 0000343d: JUMP 0000343e: JUMPDEST 0000343f: PUSH1 0x00 00003441: DUP3 00003442: MLOAD 00003443: PUSH2 0x3450 00003446: DUP2 00003447: DUP5 00003448: PUSH1 0x20 0000344a: DUP8 0000344b: ADD 0000344c: PUSH2 0x2e54 0000344f: JUMP 00003450: JUMPDEST 00003451: SWAP2 00003452: SWAP1 00003453: SWAP2 00003454: ADD 00003455: SWAP3 00003456: SWAP2 00003457: POP 00003458: POP 00003459: JUMP 0000345a: INVALID 0000345b: LOG2 0000345c: PUSH5 0x6970667358 00003462: UNKNOWN(0x22) 00003463: SLT 00003464: KECCAK256 00003465: UNKNOWN(0xCC) 00003466: UNKNOWN(0xEE) 00003467: UNKNOWN(0xC2) 00003468: SWAP15 00003469: DUP4 0000346a: UNKNOWN(0xD3) 0000346b: UNKNOWN(0xE1) 0000346c: PUSH19 0x01141a80f2aa9789ba99e0c8200a654a28dd2a 00003480: UNKNOWN(0xCB) 00003481: UNKNOWN(0xA7) 00003482: MSIZE 00003483: PUSH11 0x1b64736f6c634300081400 0000348f: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | oracle | codex | Keeper-controlled currentBalance can arbitrarily skew pricePerShare and queued withdrawals | 85 | no | — |
viewevidence_json{
"evidence": "rollToNextRound accepts a caller-supplied currentBalance and uses it directly in pricePerShare and queuedWithdrawAmount calculations, then transfers balance minus queuedWithdrawAmount to the keeper.",
"locations": [
"contracts/src/StreamVault.sol:489",
"contracts/src/StreamVault.sol:499",
"contracts/src/StreamVault.sol:519",
"contracts/src/StreamVault.sol:544"
],
"recommendation": "Derive currentBalance from on-chain data or a strategy contract with verifiable accounting (e.g., report-and-verify pattern), add bounds/consistency checks against observed balances, and/or gate rollToNextRound behind a timelock or multisig with monitored reporting.",
"exploit_scenario": "A malicious or compromised keeper deposits before a round roll, then calls rollToNextRound with an artificially low currentBalance. This drives newPricePerShare down, mints excessive shares for their pending deposit, and reduces queuedWithdrawAmount. The vault then transfers a larger on-chain balance to the keeper, while queued withdrawers are underfunded. The keeper later redeems inflated shares to extract value from other holders."
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x0616dcca1a1f63e166fb060c483b094d96a7b6c96963b76e5a560f7f812d98a6
call_targets:
0xf3b466f09ef476e311ce275407cfb09a8d8de3a7
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0616dcca1a1f63e166fb060c483b094d96a7b6c96963b76e5a560f7f812d98a6",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf3b466f09ef476e311ce275407cfb09a8d8de3a7"
],
"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": "0xf6203e35",
"selector": "0xf6203e35",
"calldata_variants": [
"0xf6203e35",
"0xf6203e350000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6326fb3",
"selector": "0xf6326fb3",
"calldata_variants": [
"0xf6326fb3",
"0xf6326fb30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf656ba51",
"selector": "0xf656ba51",
"calldata_variants": [
"0xf656ba51",
"0xf656ba510000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf756fa21",
"selector": "0xf756fa21",
"calldata_variants": [
"0xf756fa21",
"0xf756fa210000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeae1f265",
"selector": "0xeae1f265",
"calldata_variants": [
"0xeae1f265",
"0xeae1f2650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf0b2c7e6",
"selector": "0xf0b2c7e6",
"calldata_variants": [
"0xf0b2c7e6",
"0xf0b2c7e60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc0ce93f1",
"selector": "0xc0ce93f1",
"calldata_variants": [
"0xc0ce93f1",
"0xc0ce93f10000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 6678,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7561,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8736,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 5,
"guards_detected": [],
"untrusted_call_count": 5
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x0616dcca1a1f63e166fb060c483b094d96a7b6c96963b76e5a560f7f812d98a6
call_targets:
0xf3b466f09ef476e311ce275407cfb09a8d8de3a7
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x0616dcca1a1f63e166fb060c483b094d96a7b6c96963b76e5a560f7f812d98a6",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xf3b466f09ef476e311ce275407cfb09a8d8de3a7"
],
"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": "0xf6203e35",
"selector": "0xf6203e35",
"calldata_variants": [
"0xf6203e35",
"0xf6203e350000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf6326fb3",
"selector": "0xf6326fb3",
"calldata_variants": [
"0xf6326fb3",
"0xf6326fb30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf656ba51",
"selector": "0xf656ba51",
"calldata_variants": [
"0xf656ba51",
"0xf656ba510000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf756fa21",
"selector": "0xf756fa21",
"calldata_variants": [
"0xf756fa21",
"0xf756fa210000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeae1f265",
"selector": "0xeae1f265",
"calldata_variants": [
"0xeae1f265",
"0xeae1f2650000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf0b2c7e6",
"selector": "0xf0b2c7e6",
"calldata_variants": [
"0xf0b2c7e6",
"0xf0b2c7e60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc0ce93f1",
"selector": "0xc0ce93f1",
"calldata_variants": [
"0xc0ce93f1",
"0xc0ce93f10000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 6678,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7561,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8736,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 5,
"guards_detected": []
}
|
| medium | access_control | codex | Owner can change vault asset/decimals mid-flight, breaking accounting and withdrawals | 75 | no | — |
viewevidence_json{
"evidence": "setVaultParams overwrites vaultParams with only minimal checks (non-zero cap/asset), allowing asset/decimals changes at any time.",
"locations": [
"contracts/src/StreamVault.sol:610",
"contracts/src/StreamVault.sol:613"
],
"recommendation": "Make asset/decimals immutable after deployment, or restrict parameter changes to times when totalSupply, totalPending, and queuedWithdrawShares are zero; consider timelocks and explicit migration flows for any parameter changes.",
"exploit_scenario": "The owner calls setVaultParams to switch the asset or decimals while shares and pending deposits exist. Subsequent rolls/redemptions calculate shares against the new asset/decimals, potentially paying users in the wrong token or making withdrawals revert. The original asset can be stranded or later swept by toggling the asset back and rolling, effectively enabling a rug if the owner is malicious or compromised."
}
|