5161ce87-41dd-4d44-b9c5-69a79104a9ad
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 |
|---|---|---|---|---|
| 30478 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 103727 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 103728 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 103729 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 103730 | capability.graph | complete | 1 / 3 | 1 week ago |
| 103731 | detector.run | complete | 1 / 3 | 1 week ago |
| 103732 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1251094] OpenAI Codex v0.77.0 (research preview)
[codex:1251094] --------
[codex:1251094] workdir: /tmp/codex-multi-us1p60_3
[codex:1251094] model: gpt-5.2-codex
[codex:1251094] provider: openai
[codex:1251094] approval: never
[codex:1251094] sandbox: read-only
[codex:1251094] reasoning effort: xhigh
[codex:1251094] reasoning summaries: auto
[codex:1251094] session id: 019b6945-e035-73f0-987b-a6fafe527894
[codex:1251094] --------
[codex:1251094] user
[codex:1251094] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1251094] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1251094] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1251094]
[codex:1251094] Scope rules:
[codex:1251094] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1251094] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1251094]
[codex:1251094] Output MUST be valid JSON matching the provided schema.
[codex:1251094] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1251094] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1251094]
[codex:1251094] Output constraints (IMPORTANT):
[codex:1251094] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1251094] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1251094] mcp startup: no servers
[codex:1251094]
[codex:1251094] thinking
[codex:1251094] **Preparing to read audit bundle**
[codex:1251094] exec
[codex:1251094] /bin/bash -lc ls in /tmp/codex-multi-us1p60_3 succeeded in 5ms:
[codex:1251094] AUDIT_BUNDLE.txt
[codex:1251094] codex-output-schema.json
[codex:1251094] contracts
[codex:1251094]
[codex:1251094] thinking
[codex:1251094] **Reading AUDIT_BUNDLE.txt contents**
[codex:1251094] exec
[codex:1251094] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-us1p60_3 succeeded in 6ms:
[codex:1251094] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1251094]
[codex:1251094] ================================================================================
[codex:1251094] FILE: contracts/node_modules/@openzeppelin/contracts/interfaces/IERC165.sol
[codex:1251094] ================================================================================
[codex:1251094] // SPDX-License-Identifier: MIT
[codex:1251094] // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol)
[codex:1251094]
[codex:1251094] pragma solidity ^0.8.20;
[codex:1251094]
[codex:1251094] import {IERC165} from "../utils/introspection/IERC165.sol";
[codex:1251094]
[codex:1251094] ================================================================================
[codex:1251094] FILE: contracts/node_modules/@openzeppelin/contracts/interfaces/IERC4906.sol
[codex:1251094] ================================================================================
[codex:1251094] // SPDX-License-Identifier: MIT
[codex:1251094] // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC4906.sol)
[codex:1251094]
[codex:1251094] pragma solidity ^0.8.20;
[codex:1251094]
[codex:1251094]
[codex:1251094] thinking
[codex:1251094] **Preparing to analyze contracts**
[codex:1251094] exec
[codex:1251094] /bin/bash -lc 'rg --files contracts/src' in /tmp/codex-multi-us1p60_3 succeeded in 10ms:
[codex:1251094] contracts/src/interfaces/IAdminable.sol
[codex:1251094] contracts/src/interfaces/ISablierFlow.sol
[codex:1251094] contracts/src/interfaces/IFlowNFTDescriptor.sol
[codex:1251094] contracts/src/interfaces/IBatch.sol
[codex:1251094] contracts/src/interfaces/ISablierFlowBase.sol
[codex:1251094] contracts/src/SablierFlow.sol
[codex:1251094] contracts/src/libraries/Helpers.sol
[codex:1251094] contracts/src/libraries/Errors.sol
[codex:1251094] contracts/src/abstracts/Adminable.sol
[codex:1251094] contracts/src/abstracts/SablierFlowBase.sol
[codex:1251094] contracts/src/abstracts/NoDelegateCall.sol
[codex:1251094] contracts/src/abstracts/Batch.sol
[codex:1251094] contracts/src/types/DataTypes.sol
[codex:1251094]
[codex:1251094] thinking
[codex:1251094] **Reviewing main contract files**
[codex:1251094] exec
[codex:1251094] /bin/bash -lc "sed -n '1,240p' contracts/src/SablierFlow.sol" in /tmp/codex-multi-us1p60_3 succeeded in 6ms:
[codex:1251094] // SPDX-License-Identifier: BUSL-1.1
[codex:1251094] pragma solidity >=0.8.22;
[codex:1251094]
[codex:1251094] import { IERC20Metadata } from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
[codex:1251094] import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1251094] import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1251094] import { ERC721 } from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
[codex:1251094] import { SafeCast } from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:1251094] import { ud21x18, UD21x18 } from "@prb/math/src/UD21x18.sol";
[codex:1251094] import { UD60x18, ZERO } from "@prb/math/src/UD60x18.sol";
[codex:1251094]
[codex:1251094] import { Batch } from "./abstracts/Batch.sol";
[codex:1251094] import { NoDelegateCall } from "./abstracts/NoDelegateCall.sol";
[codex:1251094] import { SablierFlowBase } from "./abstracts/SablierFlowBase.sol";
[codex:1251094] import { IFlowNFTDescriptor } from "./interfaces/IFlowNFTDescriptor.sol";
[codex:1251094] import { ISablierFlow } from "./interfaces/ISablierFlow.sol";
[codex:1251094] import { Errors } from "./libraries/Errors.sol";
[codex:1251094] import { Helpers } from "./libraries/Helpers.sol";
[codex:1251094] import { Broker, Flow } from "./types/DataTypes.sol";
[codex:1251094]
[codex:1251094] exec
[codex:1251094] /bin/bash -lc "sed -n '1,240p' contracts/src/abstracts/SablierFlowBase.sol" in /tmp/codex-multi-us1p60_3 succeeded in 5ms:
[codex:1251094] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1251094] pragma solidity >=0.8.22;
[codex:1251094]
[codex:1251094] import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1251094] import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
[codex:1251094] import { ERC721 } from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
[codex:1251094] import { IERC721Metadata } from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol";
[codex:1251094] import { IERC165 } from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
[codex:1251094] import { UD21x18 } from "@prb/math/src/UD21x18.sol";
[codex:1251094] import { UD60x18 } from "@prb/math/src/UD60x18.sol";
[codex:1251094]
[codex:1251094] import { IFlowNFTDescriptor } from "./../interfaces/IFlowNFTDescriptor.sol";
[codex:1251094] import { ISablierFlowBase } from "./../interfaces/ISablierFlowBase.sol";
[codex:1251094] import { Errors } from "./../libraries/Errors.sol";
[codex:1251094] import { Flow } from "./../types/DataTypes.sol";
[codex:1251094] import { Adminable } from "./Adminable.sol";
[codex:1251094]
[codex:1251094] /// @title SablierFlowBase
[codex:1251094] /// @notice See the documentation in {ISablierFlowBase}.
[codex:1251094] abstract contract SablierFlowBase is
[codex:1251094] exec
[codex:1251094] /bin/bash -lc "sed -n '1,200p' contracts/src/abstracts/Adminable.sol" in /tmp/codex-multi-us1p60_3 succeeded in 5ms:
[codex:1251094] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1251094] pragma solidity >=0.8.22;
[codex:1251094]
[codex:1251094] import { IAdminable } from "../interfaces/IAdminable.sol";
[codex:1251094] import { Errors } from "../libraries/Errors.sol";
[codex:1251094]
[codex:1251094] /// @title Adminable
[codex:1251094] /// @notice See the documentation in {IAdminable}.
[codex:1251094] abstract contract Adminable is IAdminable {
[codex:1251094] /*//////////////////////////////////////////////////////////////////////////
[codex:1251094] STATE VARIABLES
[codex:1251094] //////////////////////////////////////////////////////////////////////////*/
[codex:1251094]
[codex:1251094] /// @inheritdoc IAdminable
[codex:1251094] address public override admin;
[codex:1251094]
[codex:1251094] /*//////////////////////////////////////////////////////////////////////////
[codex:1251094] MODIFIERS
[codex:1251094] //////////////////////////////////////////////////////////////////////////*/
[codex:1251094]
[codex:1251094] exec
[codex:1251094] /bin/bash -lc "sed -n '1,200p' contracts/src/abstracts/NoDelegateCall.sol" in /tmp/codex-multi-us1p60_3 succeeded in 5ms:
[codex:1251094] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1251094] pragma solidity >=0.8.22;
[codex:1251094]
[codex:1251094] import { Errors } from "../libraries/Errors.sol";
[codex:1251094]
[codex:1251094] /// @title NoDelegateCall
[codex:1251094] /// @notice This contract implements logic to prevent delegate calls.
[codex:1251094] abstract contract NoDelegateCall {
[codex:1251094] /// @dev The address of the original contract that was deployed.
[codex:1251094] address private immutable ORIGINAL;
[codex:1251094]
[codex:1251094] /// @dev Sets the original contract address.
[codex:1251094] constructor() {
[codex:1251094] ORIGINAL = address(this);
[codex:1251094] }
[codex:1251094]
[codex:1251094] /// @notice Prevents delegate calls.
[codex:1251094] modifier noDelegateCall() {
[codex:1251094] _preventDelegateCall();
[codex:1251094] _;
[codex:1251094] exec
[codex:1251094] /bin/bash -lc "sed -n '1,240p' contracts/src/abstracts/Batch.sol" in /tmp/codex-multi-us1p60_3 succeeded in 5ms:
[codex:1251094] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1251094] // solhint-disable no-inline-assembly
[codex:1251094] pragma solidity >=0.8.22;
[codex:1251094]
[codex:1251094] import { IBatch } from "../interfaces/IBatch.sol";
[codex:1251094]
[codex:1251094] /// @title Batch
[codex:1251094] /// @notice See the documentation in {IBatch}.
[codex:1251094] abstract contract Batch is IBatch {
[codex:1251094] /*//////////////////////////////////////////////////////////////////////////
[codex:1251094] USER-FACING NON-CONSTANT FUNCTIONS
[codex:1251094] //////////////////////////////////////////////////////////////////////////*/
[codex:1251094]
[codex:1251094] /// @inheritdoc IBatch
[codex:1251094] /// @dev Since `msg.value` can be reused across calls, be VERY CAREFUL when using it. Refer to
[codex:1251094] /// https://paradigm.xyz/2021/08/two-rights-might-make-a-wrong for more information.
[codex:1251094] function batch(bytes[] calldata calls) external payable override returns (bytes[] memory results) {
[codex:1251094] uint256 count = calls.length;
[codex:1251094] results = new bytes[](count);
[codex:1251094]
[codex:1251094]
[codex:1251094] thinking
[codex:1251094] **Opening remainder of SablierFlow file**
[codex:1251094] exec
[codex:1251094] /bin/bash -lc "sed -n '240,520p' contracts/src/SablierFlow.sol" in /tmp/codex-multi-us1p60_3 succeeded in 5ms:
[codex:1251094] bool transferable,
[codex:1251094] uint128 amount
[codex:1251094] )
[codex:1251094] external
[codex:1251094] payable
[codex:1251094] override
[codex:1251094] noDelegateCall
[codex:1251094] returns (uint256 streamId)
[codex:1251094] {
[codex:1251094] // Checks, Effects, and Interactions: create the stream.
[codex:1251094] streamId = _create(sender, recipient, ratePerSecond, token, transferable);
[codex:1251094]
[codex:1251094] // Checks, Effects, and Interactions: deposit on stream.
[codex:1251094] _deposit(streamId, amount);
[codex:1251094] }
[codex:1251094]
[codex:1251094] /// @inheritdoc ISablierFlow
[codex:1251094] function deposit(
[codex:1251094] uint256 streamId,
[codex:1251094] uint128 amount,
[codex:1251094] exec
[codex:1251094] /bin/bash -lc "sed -n '520,1040p' contracts/src/SablierFlow.sol" in /tmp/codex-multi-us1p60_3 succeeded in 5ms:
[codex:1251094]
[codex:1251094] // Safe to use unchecked because subtraction cannot underflow.
[codex:1251094] unchecked {
[codex:1251094] // Calculate time elapsed since the last snapshot.
[codex:1251094] elapsedTime = blockTimestamp - snapshotTime;
[codex:1251094] }
[codex:1251094]
[codex:1251094] // Calculate the ongoing debt scaled accrued by multiplying the elapsed time by the rate per second.
[codex:1251094] return elapsedTime * ratePerSecond;
[codex:1251094] }
[codex:1251094]
[codex:1251094] /// @dev Calculates the refundable amount.
[codex:1251094] function _refundableAmountOf(uint256 streamId) internal view returns (uint128) {
[codex:1251094] return _streams[streamId].balance - _coveredDebtOf(streamId);
[codex:1251094] }
[codex:1251094]
[codex:1251094] /// @dev The total debt is the sum of the snapshot debt and the ongoing debt descaled to token's decimal. This
[codex:1251094] /// value is independent of the stream's balance.
[codex:1251094] function _totalDebtOf(uint256 streamId) internal view returns (uint256) {
[codex:1251094] uint256 totalDebtScaled = _ongoingDebtScaledOf(streamId) + _streams[streamId].snapshotDebtScaled;
[codex:1251094]
[codex:1251094] thinking
[codex:1251094] **Continuing to review SablierFlowBase file**
[codex:1251094] exec
[codex:1251094] /bin/bash -lc "sed -n '240,520p' contracts/src/abstracts/SablierFlowBase.sol" in /tmp/codex-multi-us1p60_3 succeeded in 6ms:
[codex:1251094]
[codex:1251094] // Interaction: transfer the protocol revenue to the provided address.
[codex:1251094] token.safeTransfer({ to: to, value: revenue });
[codex:1251094]
[codex:1251094] emit ISablierFlowBase.CollectProtocolRevenue({ admin: msg.sender, token: token, to: to, revenue: revenue });
[codex:1251094] }
[codex:1251094]
[codex:1251094] /// @inheritdoc ISablierFlowBase
[codex:1251094] function recover(IERC20 token, address to) external override onlyAdmin {
[codex:1251094] uint256 surplus = token.balanceOf(address(this)) - aggregateBalance[token];
[codex:1251094]
[codex:1251094] // Check: there is a surplus to recover.
[codex:1251094] if (surplus == 0) {
[codex:1251094] revert Errors.SablierFlowBase_SurplusZero(address(token));
[codex:1251094] }
[codex:1251094]
[codex:1251094] // Interaction: transfer the surplus to the provided address.
[codex:1251094] token.safeTransfer(to, surplus);
[codex:1251094]
[codex:1251094] emit Recover(msg.sender, token, to, surplus);
[codex:1251094]
[codex:1251094]
[codex:1251094] thinking
[codex:1251094] **Analyzing potential reentrancy risks**
[codex:1251094] thinking
[codex:1251094] **Reviewing delegatecall and reentrancy protections**
[codex:1251094]
[codex:1251094] I’m sorting through how batch delegatecalls to self interact with the noDelegateCall modifier and checking if reentrancy risks persist despite state updates before external calls. Batch’s delegatecall bypasses some noDelegateCall checks but seems intentional and safe here. Also, some payable calls send ETH without state updates before transfer, so I’m verifying if reentrancy could cause issues in those cases.
[codex:1251094] exec
[codex:1251094] /bin/bash -lc "rg -n \"delegatecall|call\\{|transfer\\(|safeTransfer|safeTransferFrom\" contracts/src" in /tmp/codex-multi-us1p60_3 succeeded in 10ms:
[codex:1251094] contracts/src/SablierFlow.sol:671: token.safeTransferFrom({ from: msg.sender, to: address(this), value: amount });
[codex:1251094] contracts/src/SablierFlow.sol:687: _streams[streamId].token.safeTransferFrom({ from: msg.sender, to: broker.account, value: brokerFeeAmount });
[codex:1251094] contracts/src/SablierFlow.sol:737: token.safeTransfer({ to: sender, value: amount });
[codex:1251094] contracts/src/SablierFlow.sol:893: token.safeTransfer({ to: to, value: amount });
[codex:1251094] contracts/src/abstracts/Batch.sol:22: (bool success, bytes memory result) = address(this).delegatecall(calls[i]);
[codex:1251094] contracts/src/abstracts/Batch.sol:24: // Check: If the delegatecall failed, load and bubble up the revert data.
[codex:1251094] contracts/src/abstracts/SablierFlowBase.sol:213: (bool success,) = admin.call{ value: feeAmount }("");
[codex:1251094] contracts/src/abstracts/SablierFlowBase.sol:242: token.safeTransfer({ to: to, value: revenue });
[codex:1251094] contracts/src/abstracts/SablierFlowBase.sol:257: token.safeTransfer(to, surplus);
[codex:1251094]
[codex:1251094] thinking
[codex:1251094] **Analyzing contract balance tracking and potential vulnerabilities**
[codex:1251094] exec
[codex:1251094] /bin/bash -lc "sed -n '1,260p' contracts/src/interfaces/ISablierFlowBase.sol" in /tmp/codex-multi-us1p60_3 succeeded in 5ms:
[codex:1251094] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1251094] pragma solidity >=0.8.22;
[codex:1251094]
[codex:1251094] import { IERC4906 } from "@openzeppelin/contracts/interfaces/IERC4906.sol";
[codex:1251094] import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:1251094] import { IERC721Metadata } from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol";
[codex:1251094] import { UD21x18 } from "@prb/math/src/UD21x18.sol";
[codex:1251094] import { UD60x18 } from "@prb/math/src/UD60x18.sol";
[codex:1251094] import { Flow } from "./../types/DataTypes.sol";
[codex:1251094] import { IAdminable } from "./IAdminable.sol";
[codex:1251094] import { IFlowNFTDescriptor } from "./IFlowNFTDescriptor.sol";
[codex:1251094]
[codex:1251094] /// @title ISablierFlowBase
[codex:1251094] /// @notice Base contract that includes state variables (storage and constants) for the {SablierFlow} contract,
[codex:1251094] /// their respective getters, helpful modifiers, and helper functions.
[codex:1251094] /// @dev This contract also includes admin control functions.
[codex:1251094] interface ISablierFlowBase is
[codex:1251094] IERC4906, // 2 inherited components
[codex:1251094] IERC721Metadata, // 2 inherited components
[codex:1251094] IAdminable // 0 inherited components
[codex:1251094]
[codex:1251094]
[codex:1251094] thinking
[codex:1251094] **Analyzing balance aggregation and reentrancy risks**
[codex:1251094]
[codex:1251094] I'm untangling how aggregateBalance includes protocol revenue despite docs suggesting it sums only stream balances, finding this mismatch intentional for correct surplus calculation and safe revenue recovery. I’m also scrutinizing reentrancy risks around token transfers, external calls, and batch delegatecalls, noting potential denial-of-service from malicious tokens but no critical vulnerabilities—this looks more about accounting nuances and proper access control than exploitable flaws.
[codex:1251094] thinking
[codex:1251094] **Inspecting proxy delegatecall and scaling math**
[codex:1251094]
[codex:1251094] I'm exploring how batch’s delegatecall interacts with noDelegateCall checks in proxy setups, confirming no easy bypass since noDelegateCall triggers revert when called through proxy. I’m also examining scaling math for token amounts with decimals less than 18, checking for possible overflow in unchecked multiplication but finding the values safely within uint256 limits given typical amount sizes.
[codex:1251094] exec
[codex:1251094] /bin/bash -lc 'rg -n "scaleAmount" contracts/src/SablierFlow.sol' in /tmp/codex-multi-us1p60_3 succeeded in 8ms:
[codex:1251094] 73: uint256 balanceScaled = Helpers.scaleAmount({ amount: balance, decimals: tokenDecimals });
[codex:1251094] 78: uint256 oneMVTScaled = Helpers.scaleAmount({ amount: 1, decimals: tokenDecimals });
[codex:1251094] 540: return Helpers.descaleAmount({ amount: totalDebtScaled, decimals: _streams[streamId].tokenDecimals });
[codex:1251094] 778: Helpers.scaleAmount({ amount: _streams[streamId].balance, decimals: _streams[streamId].tokenDecimals });
[codex:1251094] 830: uint256 totalDebt = Helpers.descaleAmount(totalDebtScaled, tokenDecimals);
[codex:1251094] 850: uint256 amountScaled = Helpers.scaleAmount(amount, tokenDecimals);
[codex:1251094]
[codex:1251094]
[codex:1251094]
[codex:1251094] thinking
[codex:1251094] **Analyzing potential contract vulnerabilities**
[codex:1251094]
[codex:1251094] I'm carefully examining various parts of the contract for overflow risks, reentrancy issues, access control weaknesses, and the effects of `batch` delegatecalls. I’m looking into token decimals handling, admin permissions, external calls (like in `tokenURI`), and how approvals might affect stream operations. I’m also considering subtle behaviors like interaction during payable calls, recursive batch calls, and possible logic gaps around `void` and `refund`. Overall, I’m weighing whether these present real vulnerabilities or are expected behaviors.
[codex:1251094] thinking
[codex:1251094] **Examining proxy interactions and math edge cases**
[codex:1251094]
[codex:1251094] I’m exploring how the contract behaves behind a proxy, especially with batch delegatecalls and the noDelegateCall modifier. I’m digging into a subtle underflow bug in depletionTimeOf caused by scaled debt rounding that could yield incorrect depletion times, along with potential implications of rounding dust in debt accounting. I’m also cross-checking reentrancy scenarios involving deposits and withdrawals, and access control nuances around admin and fee collection. There’s a lot to unpack here!
[codex:1251094] thinking
[codex:1251094] **Evaluating token handling and approval mechanics**
[codex:1251094]
[codex:1251094] I’m reviewing how the contract manages token deposits and withdrawals, especially regarding fee-on-transfer and rebasing tokens that could cause accounting mismatches or locked funds. I’m also considering the implications of stream sender versus depositor distinctions and how approved operators can withdraw to arbitrary addresses. There are subtle nuances here affecting compatibility and control, but no clear critical vulnerabilities stand out yet.
[codex:1251094] exec
[codex:1251094] /bin/bash -lc "sed -n '1,200p' contracts/src/interfaces/IAdminable.sol" in /tmp/codex-multi-us1p60_3 succeeded in 7ms:
[codex:1251094] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1251094] pragma solidity >=0.8.22;
[codex:1251094]
[codex:1251094] /// @title IAdminable
[codex:1251094] /// @notice Contract module that provides a basic access control mechanism, with an admin that can be
[codex:1251094] /// granted exclusive access to specific functions. The inheriting contract must set the initial admin
[codex:1251094] /// in the constructor.
[codex:1251094] interface IAdminable {
[codex:1251094] /*//////////////////////////////////////////////////////////////////////////
[codex:1251094] EVENTS
[codex:1251094] //////////////////////////////////////////////////////////////////////////*/
[codex:1251094]
[codex:1251094] /// @notice Emitted when the admin is transferred.
[codex:1251094] /// @param oldAdmin The address of the old admin.
[codex:1251094] /// @param newAdmin The address of the new admin.
[codex:1251094] event TransferAdmin(address indexed oldAdmin, address indexed newAdmin);
[codex:1251094]
[codex:1251094] /*//////////////////////////////////////////////////////////////////////////
[codex:1251094] CONSTANT FUNCTIONS
[codex:1251094] //////////////////////////////////////////////////////////////////////////*/
[codex:1251094]
[codex:1251094] thinking
[codex:1251094] **Analyzing potential reentrancy and access risks**
[codex:1251094]
[codex:1251094] I'm carefully weighing various contract functions for reentrancy, access control, delegatecall use, and token transfer edge cases. There’s intricate reasoning around how malicious tokens might reenter during deposits to manipulate balances, but overall, most scenarios seem secure or limited in impact. I’m focusing on subtle accounting and delegatecall behaviors, especially in batch calls and admin transfers, to identify any real vulnerabilities or inconsistent checks.
[codex:1251094] exec
[codex:1251094] /bin/bash -lc "nl -ba contracts/src/SablierFlow.sol | sed -n '40,140p'" in /tmp/codex-multi-us1p60_3 succeeded in 7ms:
[codex:1251094] 40 address initialAdmin,
[codex:1251094] 41 IFlowNFTDescriptor initialNFTDescriptor
[codex:1251094] 42 )
[codex:1251094] 43 ERC721("Sablier Flow NFT", "SAB-FLOW")
[codex:1251094] 44 SablierFlowBase(initialAdmin, initialNFTDescriptor)
[codex:1251094] 45 { }
[codex:1251094] 46
[codex:1251094] 47 /*//////////////////////////////////////////////////////////////////////////
[codex:1251094] 48 CONSTANT FUNCTIONS
[codex:1251094] 49 //////////////////////////////////////////////////////////////////////////*/
[codex:1251094] 50
[codex:1251094] 51 /// @inheritdoc ISablierFlow
[codex:1251094] 52 function coveredDebtOf(uint256 streamId) external view override notNull(streamId) returns (uint128 coveredDebt) {
[codex:1251094] 53 coveredDebt = _coveredDebtOf(streamId);
[codex:1251094] 54 }
[codex:1251094] 55
[codex:1251094] 56 /// @inheritdoc ISablierFlow
[codex:1251094] 57 function depletionTimeOf(uint256 streamId)
[codex:1251094] 58 external
[codex:1251094] 59 view
[codex:1251094]
[codex:1251094]
[codex:1251094] thinking
[codex:1251094] **Analyzing potential underflow and invariants in debt calculations**
[codex:1251094] thinking
[codex:1251094] **Evaluating scaling edge cases and upgrade patterns**
[codex:1251094]
[codex:1251094] I’m exploring how the scaled debt can exceed the scaled balance by just under one unit of the smallest token fraction, causing an unchecked underflow that yields incorrect depletion times. I’m also considering how the batch delegatecall and missing noDelegateCall protections on admin functions could introduce upgradeability risks if used behind a proxy, even though this contract isn’t designed for that. There’s a subtle tension between accounting correctness at fixed-point precision and external contract usage patterns worth flagging.
[codex:1251094] exec
[codex:1251094] /bin/bash -lc "nl -ba contracts/src/SablierFlow.sol | sed -n '620,750p'" in /tmp/codex-multi-us1p60_3 succeeded in 10ms:
[codex:1251094] 620 _streams[streamId] = Flow.Stream({
[codex:1251094] 621 balance: 0,
[codex:1251094] 622 isStream: true,
[codex:1251094] 623 isTransferable: transferable,
[codex:1251094] 624 isVoided: false,
[codex:1251094] 625 ratePerSecond: ratePerSecond,
[codex:1251094] 626 sender: sender,
[codex:1251094] 627 snapshotDebtScaled: 0,
[codex:1251094] 628 snapshotTime: uint40(block.timestamp),
[codex:1251094] 629 token: token,
[codex:1251094] 630 tokenDecimals: tokenDecimals
[codex:1251094] 631 });
[codex:1251094] 632
[codex:1251094] 633 // Using unchecked arithmetic because this calculation can never realistically overflow.
[codex:1251094] 634 unchecked {
[codex:1251094] 635 // Effect: bump the next stream ID.
[codex:1251094] 636 nextStreamId = streamId + 1;
[codex:1251094] 637 }
[codex:1251094] 638
[codex:1251094] 639 // Effect: mint the NFT to the recipient.
[codex:1251094]
[codex:1251094] thinking
[codex:1251094] **Summarizing audit findings and JSON output**
[codex:1251094]
[codex:1251094] I'll organize two main issues: a low-severity math underflow in depletionTimeOf calculation and a low-severity compatibility problem with fee-on-transfer/rebasing tokens causing internal balance inconsistencies and withdrawal failures, and then format these into a precise JSON according to the schema with all required fields, evidence, and locations.
[codex:1251094] codex
[codex:1251094] {"no_findings":false,"summary":"Found 2 issues: a math underflow in `depletionTimeOf` that can return incorrect timestamps, and an accounting mismatch when using fee-on-transfer/rebasing ERC20s that can lock withdrawals.","findings":[{"severity":"low","category":"math","title":"`depletionTimeOf` can underflow for near-solvent streams due to scaled rounding","exploit_scenario":"For tokens with decimals < 18, `totalDebtScaled` can exceed `balanceScaled` by less than one MVT (e.g., remainder < 10^(18-decimals)) while the descaled total debt is still <= balance. In that case, the guard `snapshotDebtScaled + ongoingDebtScaled >= balanceScaled + oneMVTScaled` is false, and the unchecked subtraction `balanceScaled - snapshotDebtScaled` underflows, producing a huge `solvencyAmount` and an incorrect `depletionTime`. Off-chain or on-chain consumers can be misled into thinking a stream won’t deplete for an extremely long time.","recommendation":"Tighten the guard to ensure `snapshotDebtScaled + ongoingDebtScaled <= balanceScaled` before the unchecked subtraction, or perform checked subtraction and return 0 when `snapshotDebtScaled > balanceScaled`. Alternatively, compute with signed math or clamp `solvencyAmount` when debt exceeds balance by any amount.","evidence":"`depletionTimeOf` checks `snapshotDebtScaled + _ongoingDebtScaledOf(streamId) >= balanceScaled + oneMVTScaled`, then in `unchecked` computes `balanceScaled - snapshotDebtScaled + oneMVTScaled` without guarding against `snapshotDebtScaled > balanceScaled` by less than one MVT.","locations":["contracts/src/SablierFlow.sol:80","contracts/src/SablierFlow.sol:92"]},{"severity":"low","category":"other","title":"Fee-on-transfer/rebasing ERC20s can break stream accounting and lock withdrawals","exploit_scenario":"If a token charges a transfer fee or rebases down, `_deposit` will still credit the full `amount` to the stream and `aggregateBalance` even though fewer tokens are actually received. This inflates internal balances and can make future withdrawals revert due to insufficient contract balance, effectively locking funds for that token. The mismatch also makes `aggregateBalance` inaccurate, preventing `recover` from working as intended. A malicious or non-standard token can therefore cause persistent insolvency/DoS for streams using it.","recommendation":"Restrict supported tokens to standard ERC20s without transfer fees/rebases, or compute the actual received amount via balance-before/after and credit that delta. Consider reverting when `balanceAfter - balanceBefore != amount` to enforce invariant safety.","evidence":"`_deposit` increments stream balance and `aggregateBalance` by `amount` before calling `token.safeTransferFrom`, without checking actual received tokens.","locations":["contracts/src/SablierFlow.sol:653","contracts/src/SablierFlow.sol:662","contracts/src/SablierFlow.sol:670"]}]}
[codex:1251094] tokens used
[codex:1251094] 66,777
[codex:1251094] {"no_findings":false,"summary":"Found 2 issues: a math underflow in `depletionTimeOf` that can return incorrect timestamps, and an accounting mismatch when using fee-on-transfer/rebasing ERC20s that can lock withdrawals.","findings":[{"severity":"low","category":"math","title":"`depletionTimeOf` can underflow for near-solvent streams due to scaled rounding","exploit_scenario":"For tokens with decimals < 18, `totalDebtScaled` can exceed `balanceScaled` by less than one MVT (e.g., remainder < 10^(18-decimals)) while the descaled total debt is still <= balance. In that case, the guard `snapshotDebtScaled + ongoingDebtScaled >= balanceScaled + oneMVTScaled` is false, and the unchecked subtraction `balanceScaled - snapshotDebtScaled` underflows, producing a huge `solvencyAmount` and an incorrect `depletionTime`. Off-chain or on-chain consumers can be misled into thinking a stream won’t deplete for an extremely long time.","recommendation":"Tighten the guard to ensure `snapshotDebtScaled + ongoingDebtScaled <= balanceScaled` before the unchecked subtraction, or perform checked subtraction and return 0 when `snapshotDebtScaled > balanceScaled`. Alternatively, compute with signed math or clamp `solvencyAmount` when debt exceeds balance by any amount.","evidence":"`depletionTimeOf` checks `snapshotDebtScaled + _ongoingDebtScaledOf(streamId) >= balanceScaled + oneMVTScaled`, then in `unchecked` computes `balanceScaled - snapshotDebtScaled + oneMVTScaled` without guarding against `snapshotDebtScaled > balanceScaled` by less than one MVT.","locations":["contracts/src/SablierFlow.sol:80","contracts/src/SablierFlow.sol:92"]},{"severity":"low","category":"other","title":"Fee-on-transfer/rebasing ERC20s can break stream accounting and lock withdrawals","exploit_scenario":"If a token charges a transfer fee or rebases down, `_deposit` will still credit the full `amount` to the stream and `aggregateBalance` even though fewer tokens are actually received. This inflates internal balances and can make future withdrawals revert due to insufficient contract balance, effectively locking funds for that token. The mismatch also makes `aggregateBalance` inaccurate, preventing `recover` from working as intended. A malicious or non-standard token can therefore cause persistent insolvency/DoS for streams using it.","recommendation":"Restrict supported tokens to standard ERC20s without transfer fees/rebases, or compute the actual received amount via balance-before/after and credit that delta. Consider reverting when `balanceAfter - balanceBefore != amount` to enforce invariant safety.","evidence":"`_deposit` increments stream balance and `aggregateBalance` by `amount` before calling `token.safeTransferFrom`, without checking actual received tokens.","locations":["contracts/src/SablierFlow.sol:653","contracts/src/SablierFlow.sol:662","contracts/src/SablierFlow.sol:670"]}]}
{
"codex": {
"ran_at": "2025-12-29T08:52:51.664995+00:00",
"returncode": 0
},
"summary": "Found 2 issues: a math underflow in `depletionTimeOf` that can return incorrect timestamps, and an accounting mismatch when using fee-on-transfer/rebasing ERC20s that can lock withdrawals.",
"raw_final": {
"summary": "Found 2 issues: a math underflow in `depletionTimeOf` that can return incorrect timestamps, and an accounting mismatch when using fee-on-transfer/rebasing ERC20s that can lock withdrawals.",
"findings": [
{
"title": "`depletionTimeOf` can underflow for near-solvent streams due to scaled rounding",
"category": "math",
"evidence": "`depletionTimeOf` checks `snapshotDebtScaled + _ongoingDebtScaledOf(streamId) >= balanceScaled + oneMVTScaled`, then in `unchecked` computes `balanceScaled - snapshotDebtScaled + oneMVTScaled` without guarding against `snapshotDebtScaled > balanceScaled` by less than one MVT.",
"severity": "low",
"locations": [
"contracts/src/SablierFlow.sol:80",
"contracts/src/SablierFlow.sol:92"
],
"recommendation": "Tighten the guard to ensure `snapshotDebtScaled + ongoingDebtScaled <= balanceScaled` before the unchecked subtraction, or perform checked subtraction and return 0 when `snapshotDebtScaled > balanceScaled`. Alternatively, compute with signed math or clamp `solvencyAmount` when debt exceeds balance by any amount.",
"exploit_scenario": "For tokens with decimals < 18, `totalDebtScaled` can exceed `balanceScaled` by less than one MVT (e.g., remainder < 10^(18-decimals)) while the descaled total debt is still <= balance. In that case, the guard `snapshotDebtScaled + ongoingDebtScaled >= balanceScaled + oneMVTScaled` is false, and the unchecked subtraction `balanceScaled - snapshotDebtScaled` underflows, producing a huge `solvencyAmount` and an incorrect `depletionTime`. Off-chain or on-chain consumers can be misled into thinking a stream won\u2019t deplete for an extremely long time."
},
{
"title": "Fee-on-transfer/rebasing ERC20s can break stream accounting and lock withdrawals",
"category": "other",
"evidence": "`_deposit` increments stream balance and `aggregateBalance` by `amount` before calling `token.safeTransferFrom`, without checking actual received tokens.",
"severity": "low",
"locations": [
"contracts/src/SablierFlow.sol:653",
"contracts/src/SablierFlow.sol:662",
"contracts/src/SablierFlow.sol:670"
],
"recommendation": "Restrict supported tokens to standard ERC20s without transfer fees/rebases, or compute the actual received amount via balance-before/after and credit that delta. Consider reverting when `balanceAfter - balanceBefore != amount` to enforce invariant safety.",
"exploit_scenario": "If a token charges a transfer fee or rebases down, `_deposit` will still credit the full `amount` to the stream and `aggregateBalance` even though fewer tokens are actually received. This inflates internal balances and can make future withdrawals revert due to insufficient contract balance, effectively locking funds for that token. The mismatch also makes `aggregateBalance` inaccurate, preventing `recover` from working as intended. A malicious or non-standard token can therefore cause persistent insolvency/DoS for streams using it."
}
],
"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: ISZERO 0000000a: PUSH2 0x0011 0000000d: JUMPI 0000000e: PUSH0 0000000f: DUP1 00000010: REVERT 00000011: JUMPDEST 00000012: PUSH0 00000013: CALLDATALOAD 00000014: PUSH1 0xe0 00000016: SHR 00000017: DUP1 00000018: PUSH4 0x01ffc9a7 0000001d: EQ 0000001e: PUSH2 0x03ff 00000021: JUMPI 00000022: DUP1 00000023: PUSH4 0x06fdde03 00000028: EQ 00000029: PUSH2 0x03fa 0000002c: JUMPI 0000002d: DUP1 0000002e: PUSH4 0x081812fc 00000033: EQ 00000034: PUSH2 0x03f5 00000037: JUMPI 00000038: DUP1 00000039: PUSH4 0x08b87923 0000003e: EQ 0000003f: PUSH2 0x03f0 00000042: JUMPI 00000043: DUP1 00000044: PUSH4 0x095ea7b3 00000049: EQ 0000004a: PUSH2 0x03eb 0000004d: JUMPI 0000004e: DUP1 0000004f: PUSH4 0x0c5fd195 00000054: EQ 00000055: PUSH2 0x03e6 00000058: JUMPI 00000059: DUP1 0000005a: PUSH4 0x0c699624 0000005f: EQ 00000060: PUSH2 0x03e1 00000063: JUMPI 00000064: DUP1 00000065: PUSH4 0x136439dd 0000006a: EQ 0000006b: PUSH2 0x03dc 0000006e: JUMPI 0000006f: DUP1 00000070: PUSH4 0x1400ecec 00000075: EQ 00000076: PUSH2 0x03d7 00000079: JUMPI 0000007a: DUP1 0000007b: PUSH4 0x1e010439 00000080: EQ 00000081: PUSH2 0x03d2 00000084: JUMPI 00000085: DUP1 00000086: PUSH4 0x1e897afb 0000008b: EQ 0000008c: PUSH2 0x03cd 0000008f: JUMPI 00000090: DUP1 00000091: PUSH4 0x1e99d569 00000096: EQ 00000097: PUSH2 0x03c8 0000009a: JUMPI 0000009b: DUP1 0000009c: PUSH4 0x1f0cce58 000000a1: EQ 000000a2: PUSH2 0x03c3 000000a5: JUMPI 000000a6: DUP1 000000a7: PUSH4 0x23b872dd 000000ac: EQ 000000ad: PUSH2 0x03be 000000b0: JUMPI 000000b1: DUP1 000000b2: PUSH4 0x379d871a 000000b7: EQ 000000b8: PUSH2 0x03b9 000000bb: JUMPI 000000bc: DUP1 000000bd: PUSH4 0x42842e0e 000000c2: EQ 000000c3: PUSH2 0x03b4 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0x42e3e23d 000000cd: EQ 000000ce: PUSH2 0x02fb 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0x44267570 000000d8: EQ 000000d9: PUSH2 0x03af 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0x450ac908 000000e3: EQ 000000e4: PUSH2 0x03aa 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x569f4c59 000000ee: EQ 000000ef: PUSH2 0x03a5 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0x597150fa 000000f9: EQ 000000fa: PUSH2 0x03a0 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0x5ea2145b 00000104: EQ 00000105: PUSH2 0x039b 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0x5f553152 0000010f: EQ 00000110: PUSH2 0x0396 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0x6352211e 0000011a: EQ 0000011b: PUSH2 0x0391 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0x648bf774 00000125: EQ 00000126: PUSH2 0x038c 00000129: JUMPI 0000012a: DUP1 0000012b: PUSH4 0x6d0cee75 00000130: EQ 00000131: PUSH2 0x0387 00000134: JUMPI 00000135: DUP1 00000136: PUSH4 0x70a08231 0000013b: EQ 0000013c: PUSH2 0x0382 0000013f: JUMPI 00000140: DUP1 00000141: PUSH4 0x75829def 00000146: EQ 00000147: PUSH2 0x037d 0000014a: JUMPI 0000014b: DUP1 0000014c: PUSH4 0x7cad6cd1 00000151: EQ 00000152: PUSH2 0x0378 00000155: JUMPI 00000156: DUP1 00000157: PUSH4 0x7ddf9228 0000015c: EQ 0000015d: PUSH2 0x0373 00000160: JUMPI 00000161: DUP1 00000162: PUSH4 0x80448da3 00000167: EQ 00000168: PUSH2 0x036e 0000016b: JUMPI 0000016c: DUP1 0000016d: PUSH4 0x81632a86 00000172: EQ 00000173: PUSH2 0x0369 00000176: JUMPI 00000177: DUP1 00000178: PUSH4 0x894e9a0d 0000017d: EQ 0000017e: PUSH2 0x0364 00000181: JUMPI 00000182: DUP1 00000183: PUSH4 0x95d89b41 00000188: EQ 00000189: PUSH2 0x035f 0000018c: JUMPI 0000018d: DUP1 0000018e: PUSH4 0xa22cb465 00000193: EQ 00000194: PUSH2 0x035a 00000197: JUMPI 00000198: DUP1 00000199: PUSH4 0xa7de07cd 0000019e: EQ 0000019f: PUSH2 0x0355 000001a2: JUMPI 000001a3: DUP1 000001a4: PUSH4 0xa8a482a6 000001a9: EQ 000001aa: PUSH2 0x0350 000001ad: JUMPI 000001ae: DUP1 000001af: PUSH4 0xad35efd4 000001b4: EQ 000001b5: PUSH2 0x034b 000001b8: JUMPI 000001b9: DUP1 000001ba: PUSH4 0xb2564569 000001bf: EQ 000001c0: PUSH2 0x0346 000001c3: JUMPI 000001c4: DUP1 000001c5: PUSH4 0xb5b3ca2c 000001ca: EQ 000001cb: PUSH2 0x0341 000001ce: JUMPI 000001cf: DUP1 000001d0: PUSH4 0xb61f7583 000001d5: EQ 000001d6: PUSH2 0x033c 000001d9: JUMPI 000001da: DUP1 000001db: PUSH4 0xb62b31e4 000001e0: EQ 000001e1: PUSH2 0x0337 000001e4: JUMPI 000001e5: DUP1 000001e6: PUSH4 0xb88d4fde 000001eb: EQ 000001ec: PUSH2 0x0332 000001ef: JUMPI 000001f0: DUP1 000001f1: PUSH4 0xb8a3be66 000001f6: EQ 000001f7: PUSH2 0x032d 000001fa: JUMPI 000001fb: DUP1 000001fc: PUSH4 0xb971302a 00000201: EQ 00000202: PUSH2 0x0328 00000205: JUMPI 00000206: DUP1 00000207: PUSH4 0xbc063e1a 0000020c: EQ 0000020d: PUSH2 0x0323 00000210: JUMPI 00000211: DUP1 00000212: PUSH4 0xbc7a2d6c 00000217: EQ 00000218: PUSH2 0x031e 0000021b: JUMPI 0000021c: DUP1 0000021d: PUSH4 0xbcbd019e 00000222: EQ 00000223: PUSH2 0x0319 00000226: JUMPI 00000227: DUP1 00000228: PUSH4 0xbdf2a43c 0000022d: EQ 0000022e: PUSH2 0x0314 00000231: JUMPI 00000232: DUP1 00000233: PUSH4 0xc2f8e750 00000238: EQ 00000239: PUSH2 0x030f 0000023c: JUMPI 0000023d: DUP1 0000023e: PUSH4 0xc8796572 00000243: EQ 00000244: PUSH2 0x030a 00000247: JUMPI 00000248: DUP1 00000249: PUSH4 0xc87b56dd 0000024e: EQ 0000024f: PUSH2 0x0305 00000252: JUMPI 00000253: DUP1 00000254: PUSH4 0xd4b80884 00000259: EQ 0000025a: PUSH2 0x0300 0000025d: JUMPI 0000025e: DUP1 0000025f: PUSH4 0xd975dfed 00000264: EQ 00000265: PUSH2 0x02fb 00000268: JUMPI 00000269: DUP1 0000026a: PUSH4 0xe4b50cb8 0000026f: EQ 00000270: PUSH2 0x02f6 00000273: JUMPI 00000274: DUP1 00000275: PUSH4 0xe985e9c5 0000027a: EQ 0000027b: PUSH2 0x02f1 0000027e: JUMPI 0000027f: DUP1 00000280: PUSH4 0xea5ead19 00000285: EQ 00000286: PUSH2 0x02ec 00000289: JUMPI 0000028a: DUP1 0000028b: PUSH4 0xeb5710d8 00000290: EQ 00000291: PUSH2 0x02e7 00000294: JUMPI 00000295: DUP1 00000296: PUSH4 0xebb6f79a 0000029b: EQ 0000029c: PUSH2 0x02e2 0000029f: JUMPI 000002a0: DUP1 000002a1: PUSH4 0xf851a440 000002a6: EQ 000002a7: PUSH2 0x02dd 000002aa: JUMPI 000002ab: DUP1 000002ac: PUSH4 0xfbf2777e 000002b1: EQ 000002b2: PUSH2 0x02d8 000002b5: JUMPI 000002b6: DUP1 000002b7: PUSH4 0xfdd46d60 000002bc: EQ 000002bd: PUSH2 0x02d3 000002c0: JUMPI 000002c1: PUSH4 0xffe3d9f8 000002c6: EQ 000002c7: PUSH2 0x02ce 000002ca: JUMPI 000002cb: PUSH0 000002cc: DUP1 000002cd: REVERT 000002ce: JUMPDEST 000002cf: PUSH2 0x2e06 000002d2: JUMP 000002d3: JUMPDEST 000002d4: PUSH2 0x2d8c 000002d7: JUMP 000002d8: JUMPDEST 000002d9: PUSH2 0x2d26 000002dc: JUMP 000002dd: JUMPDEST 000002de: PUSH2 0x2d01 000002e1: JUMP 000002e2: JUMPDEST 000002e3: PUSH2 0x2c30 000002e6: JUMP 000002e7: JUMPDEST 000002e8: PUSH2 0x2bcb 000002eb: JUMP 000002ec: JUMPDEST 000002ed: PUSH2 0x2b25 000002f0: JUMP 000002f1: JUMPDEST 000002f2: PUSH2 0x2abf 000002f5: JUMP 000002f6: JUMPDEST 000002f7: PUSH2 0x2a59 000002fa: JUMP 000002fb: JUMPDEST 000002fc: PUSH2 0x1011 000002ff: JUMP 00000300: JUMPDEST 00000301: PUSH2 0x2a09 00000304: JUMP 00000305: JUMPDEST 00000306: PUSH2 0x290a 00000309: JUMP 0000030a: JUMPDEST 0000030b: PUSH2 0x286d 0000030e: JUMP 0000030f: JUMPDEST 00000310: PUSH2 0x2691 00000313: JUMP 00000314: JUMPDEST 00000315: PUSH2 0x263a 00000318: JUMP 00000319: JUMPDEST 0000031a: PUSH2 0x259a 0000031d: JUMP 0000031e: JUMPDEST 0000031f: PUSH2 0x2562 00000322: JUMP 00000323: JUMPDEST 00000324: PUSH2 0x2540 00000327: JUMP 00000328: JUMPDEST 00000329: PUSH2 0x24da 0000032c: JUMP 0000032d: JUMPDEST 0000032e: PUSH2 0x24a5 00000331: JUMP 00000332: JUMPDEST 00000333: PUSH2 0x2415 00000336: JUMP 00000337: JUMPDEST 00000338: PUSH2 0x22e1 0000033b: JUMP 0000033c: JUMPDEST 0000033d: PUSH2 0x21e5 00000340: JUMP 00000341: JUMPDEST 00000342: PUSH2 0x20db 00000345: JUMP 00000346: JUMPDEST 00000347: PUSH2 0x207f 0000034a: JUMP 0000034b: JUMPDEST 0000034c: PUSH2 0x2001 0000034f: JUMP 00000350: JUMPDEST 00000351: PUSH2 0x1ef7 00000354: JUMP 00000355: JUMPDEST 00000356: PUSH2 0x1e9a 00000359: JUMP 0000035a: JUMPDEST 0000035b: PUSH2 0x1da8 0000035e: JUMP 0000035f: JUMPDEST 00000360: PUSH2 0x1cf3 00000363: JUMP 00000364: JUMPDEST 00000365: PUSH2 0x1a93 00000368: JUMP 00000369: JUMPDEST 0000036a: PUSH2 0x1a08 0000036d: JUMP 0000036e: JUMPDEST 0000036f: PUSH2 0x19a2 00000372: JUMP 00000373: JUMPDEST 00000374: PUSH2 0x196a 00000377: JUMP 00000378: JUMPDEST 00000379: PUSH2 0x1884 0000037c: JUMP 0000037d: JUMPDEST 0000037e: PUSH2 0x17fa 00000381: JUMP 00000382: JUMPDEST 00000383: PUSH2 0x178c 00000386: JUMP 00000387: JUMPDEST 00000388: PUSH2 0x1729 0000038b: JUMP 0000038c: JUMPDEST 0000038d: PUSH2 0x159b 00000390: JUMP 00000391: JUMPDEST 00000392: PUSH2 0x1558 00000395: JUMP 00000396: JUMPDEST 00000397: PUSH2 0x151c 0000039a: JUMP 0000039b: JUMPDEST 0000039c: PUSH2 0x118b 0000039f: JUMP 000003a0: JUMPDEST 000003a1: PUSH2 0x1127 000003a4: JUMP 000003a5: JUMPDEST 000003a6: PUSH2 0x10c1 000003a9: JUMP 000003aa: JUMPDEST 000003ab: PUSH2 0x106f 000003ae: JUMP 000003af: JUMPDEST 000003b0: PUSH2 0x1049 000003b3: JUMP 000003b4: JUMPDEST 000003b5: PUSH2 0x0fe8 000003b8: JUMP 000003b9: JUMPDEST 000003ba: PUSH2 0x0eb7 000003bd: JUMP 000003be: JUMPDEST 000003bf: PUSH2 0x0ea0 000003c2: JUMP 000003c3: JUMPDEST 000003c4: PUSH2 0x0d30 000003c7: JUMP 000003c8: JUMPDEST 000003c9: PUSH2 0x0cf9 000003cc: JUMP 000003cd: JUMPDEST 000003ce: PUSH2 0x0bd7 000003d1: JUMP 000003d2: JUMPDEST 000003d3: PUSH2 0x0ae5 000003d6: JUMP 000003d7: JUMPDEST 000003d8: PUSH2 0x0a8f 000003db: JUMP 000003dc: JUMPDEST 000003dd: PUSH2 0x09d1 000003e0: JUMP 000003e1: JUMPDEST 000003e2: PUSH2 0x0912 000003e5: JUMP 000003e6: JUMPDEST 000003e7: PUSH2 0x08c4 000003ea: JUMP 000003eb: JUMPDEST 000003ec: PUSH2 0x0788 000003ef: JUMP 000003f0: JUMPDEST 000003f1: PUSH2 0x0709 000003f4: JUMP 000003f5: JUMPDEST 000003f6: PUSH2 0x06da 000003f9: JUMP 000003fa: JUMPDEST 000003fb: PUSH2 0x05b0 000003fe: JUMP 000003ff: JUMPDEST 00000400: PUSH2 0x0432 00000403: JUMP 00000404: JUMPDEST 00000405: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000426: DUP2 00000427: AND 00000428: SUB 00000429: PUSH2 0x042e 0000042c: JUMPI 0000042d: JUMP 0000042e: JUMPDEST 0000042f: PUSH0 00000430: DUP1 00000431: REVERT 00000432: JUMPDEST 00000433: CALLVALUE 00000434: PUSH2 0x042e 00000437: JUMPI 00000438: PUSH1 0x20 0000043a: PUSH1 0x03 0000043c: NOT 0000043d: CALLDATASIZE 0000043e: ADD 0000043f: SLT 00000440: PUSH2 0x042e 00000443: JUMPI 00000444: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000465: PUSH1 0x04 00000467: CALLDATALOAD 00000468: PUSH2 0x0470 0000046b: DUP2 0000046c: PUSH2 0x0404 0000046f: JUMP 00000470: JUMPDEST 00000471: AND 00000472: PUSH32 0x4906490600000000000000000000000000000000000000000000000000000000 00000493: DUP2 00000494: EQ 00000495: SWAP1 00000496: DUP2 00000497: ISZERO 00000498: PUSH2 0x04aa 0000049b: JUMPI 0000049c: JUMPDEST 0000049d: POP 0000049e: PUSH1 0x40 000004a0: MLOAD 000004a1: SWAP1 000004a2: ISZERO 000004a3: ISZERO 000004a4: DUP2 000004a5: MSTORE 000004a6: PUSH1 0x20 000004a8: SWAP1 000004a9: RETURN 000004aa: JUMPDEST 000004ab: PUSH32 0x80ac58cd00000000000000000000000000000000000000000000000000000000 000004cc: DUP2 000004cd: EQ 000004ce: SWAP2 000004cf: POP 000004d0: DUP2 000004d1: ISZERO 000004d2: PUSH2 0x050e 000004d5: JUMPI 000004d6: JUMPDEST 000004d7: DUP2 000004d8: ISZERO 000004d9: PUSH2 0x04e4 000004dc: JUMPI 000004dd: JUMPDEST 000004de: POP 000004df: PUSH0 000004e0: PUSH2 0x049c 000004e3: JUMP 000004e4: JUMPDEST 000004e5: PUSH32 0x01ffc9a700000000000000000000000000000000000000000000000000000000 00000506: SWAP2 00000507: POP 00000508: EQ 00000509: PUSH0 0000050a: PUSH2 0x04dd 0000050d: JUMP 0000050e: JUMPDEST 0000050f: PUSH32 0x5b5e139f00000000000000000000000000000000000000000000000000000000 00000530: DUP2 00000531: EQ 00000532: SWAP2 00000533: POP 00000534: PUSH2 0x04d6 00000537: JUMP 00000538: JUMPDEST 00000539: PUSH0 0000053a: JUMPDEST 0000053b: DUP4 0000053c: DUP2 0000053d: LT 0000053e: PUSH2 0x0549 00000541: JUMPI 00000542: POP 00000543: POP 00000544: PUSH0 00000545: SWAP2 00000546: ADD 00000547: MSTORE 00000548: JUMP 00000549: JUMPDEST 0000054a: DUP2 0000054b: DUP2 0000054c: ADD 0000054d: MLOAD 0000054e: DUP4 0000054f: DUP3 00000550: ADD 00000551: MSTORE 00000552: PUSH1 0x20 00000554: ADD 00000555: PUSH2 0x053a 00000558: JUMP 00000559: JUMPDEST 0000055a: SWAP1 0000055b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000057c: PUSH1 0x1f 0000057e: PUSH1 0x20 00000580: SWAP4 00000581: PUSH2 0x0595 00000584: DUP2 00000585: MLOAD 00000586: DUP1 00000587: SWAP3 00000588: DUP2 00000589: DUP8 0000058a: MSTORE 0000058b: DUP8 0000058c: DUP1 0000058d: DUP9 0000058e: ADD 0000058f: SWAP2 00000590: ADD 00000591: PUSH2 0x0538 00000594: JUMP 00000595: JUMPDEST 00000596: ADD 00000597: AND 00000598: ADD 00000599: ADD 0000059a: SWAP1 0000059b: JUMP 0000059c: JUMPDEST 0000059d: SWAP1 0000059e: PUSH1 0x20 000005a0: PUSH2 0x05ad 000005a3: SWAP3 000005a4: DUP2 000005a5: DUP2 000005a6: MSTORE 000005a7: ADD 000005a8: SWAP1 000005a9: PUSH2 0x0559 000005ac: JUMP 000005ad: JUMPDEST 000005ae: SWAP1 000005af: JUMP 000005b0: JUMPDEST 000005b1: CALLVALUE 000005b2: PUSH2 0x042e 000005b5: JUMPI 000005b6: PUSH0 000005b7: PUSH1 0x03 000005b9: NOT 000005ba: CALLDATASIZE 000005bb: ADD 000005bc: SLT 000005bd: PUSH2 0x042e 000005c0: JUMPI 000005c1: PUSH1 0x40 000005c3: MLOAD 000005c4: PUSH0 000005c5: PUSH1 0x01 000005c7: SLOAD 000005c8: DUP1 000005c9: PUSH1 0x01 000005cb: SHR 000005cc: SWAP1 000005cd: PUSH1 0x01 000005cf: DUP2 000005d0: AND 000005d1: SWAP1 000005d2: DUP2 000005d3: ISZERO 000005d4: PUSH2 0x06d0 000005d7: JUMPI 000005d8: JUMPDEST 000005d9: PUSH1 0x20 000005db: DUP4 000005dc: LT 000005dd: DUP3 000005de: EQ 000005df: PUSH2 0x06a3 000005e2: JUMPI 000005e3: DUP3 000005e4: DUP6 000005e5: MSTORE 000005e6: PUSH1 0x20 000005e8: DUP6 000005e9: ADD 000005ea: SWAP2 000005eb: SWAP1 000005ec: DUP2 000005ed: ISZERO 000005ee: PUSH2 0x066c 000005f1: JUMPI 000005f2: POP 000005f3: PUSH1 0x01 000005f5: EQ 000005f6: PUSH2 0x061a 000005f9: JUMPI 000005fa: JUMPDEST 000005fb: PUSH2 0x0616 000005fe: DUP5 000005ff: PUSH2 0x060a 00000602: DUP2 00000603: DUP7 00000604: SUB 00000605: DUP3 00000606: PUSH2 0x2388 00000609: JUMP 0000060a: JUMPDEST 0000060b: PUSH1 0x40 0000060d: MLOAD 0000060e: SWAP2 0000060f: DUP3 00000610: SWAP2 00000611: DUP3 00000612: PUSH2 0x059c 00000615: JUMP 00000616: JUMPDEST 00000617: SUB 00000618: SWAP1 00000619: RETURN 0000061a: JUMPDEST 0000061b: PUSH1 0x01 0000061d: PUSH0 0000061e: SWAP1 0000061f: DUP2 00000620: MSTORE 00000621: SWAP3 00000622: POP 00000623: SWAP1 00000624: PUSH32 0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6 00000645: JUMPDEST 00000646: DUP2 00000647: DUP5 00000648: LT 00000649: PUSH2 0x0658 0000064c: JUMPI 0000064d: POP 0000064e: POP 0000064f: ADD 00000650: PUSH2 0x060a 00000653: DUP3 00000654: PUSH2 0x05fa 00000657: JUMP 00000658: JUMPDEST 00000659: DUP1 0000065a: SLOAD 0000065b: DUP5 0000065c: DUP5 0000065d: ADD 0000065e: MSTORE 0000065f: PUSH1 0x20 00000661: SWAP1 00000662: SWAP4 00000663: ADD 00000664: SWAP3 00000665: PUSH1 0x01 00000667: ADD 00000668: PUSH2 0x0645 0000066b: JUMP 0000066c: JUMPDEST 0000066d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000068e: AND 0000068f: DUP3 00000690: MSTORE 00000691: POP 00000692: SWAP1 00000693: ISZERO 00000694: ISZERO 00000695: PUSH1 0x05 00000697: SHL 00000698: ADD 00000699: SWAP1 0000069a: POP 0000069b: PUSH2 0x060a 0000069e: DUP3 0000069f: PUSH2 0x05fa 000006a2: JUMP 000006a3: JUMPDEST 000006a4: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000006c5: PUSH0 000006c6: MSTORE 000006c7: PUSH1 0x22 000006c9: PUSH1 0x04 000006cb: MSTORE 000006cc: PUSH1 0x24 000006ce: PUSH0 000006cf: REVERT 000006d0: JUMPDEST 000006d1: SWAP2 000006d2: PUSH1 0x7f 000006d4: AND 000006d5: SWAP2 000006d6: PUSH2 0x05d8 000006d9: JUMP 000006da: JUMPDEST 000006db: CALLVALUE 000006dc: PUSH2 0x042e 000006df: JUMPI 000006e0: PUSH1 0x20 000006e2: PUSH1 0x03 000006e4: NOT 000006e5: CALLDATASIZE 000006e6: ADD 000006e7: SLT 000006e8: PUSH2 0x042e 000006eb: JUMPI 000006ec: PUSH1 0x20 000006ee: PUSH2 0x06f8 000006f1: PUSH1 0x04 000006f3: CALLDATALOAD 000006f4: PUSH2 0x2f58 000006f7: JUMP 000006f8: JUMPDEST 000006f9: PUSH1 0x01 000006fb: PUSH1 0x01 000006fd: PUSH1 0xa0 000006ff: SHL 00000700: SUB 00000701: PUSH1 0x40 00000703: MLOAD 00000704: SWAP2 00000705: AND 00000706: DUP2 00000707: MSTORE 00000708: RETURN 00000709: JUMPDEST 0000070a: CALLVALUE 0000070b: PUSH2 0x042e 0000070e: JUMPI 0000070f: PUSH1 0x20 00000711: PUSH1 0x03 00000713: NOT 00000714: CALLDATASIZE 00000715: ADD 00000716: SLT 00000717: PUSH2 0x042e 0000071a: JUMPI 0000071b: PUSH1 0x04 0000071d: CALLDATALOAD 0000071e: DUP1 0000071f: PUSH0 00000720: MSTORE 00000721: PUSH1 0x0c 00000723: PUSH1 0x20 00000725: MSTORE 00000726: PUSH1 0xff 00000728: PUSH1 0x01 0000072a: PUSH1 0x40 0000072c: PUSH0 0000072d: KECCAK256 0000072e: ADD 0000072f: SLOAD 00000730: PUSH1 0xc8 00000732: SHR 00000733: AND 00000734: ISZERO 00000735: PUSH2 0x074c 00000738: JUMPI 00000739: PUSH2 0x0741 0000073c: SWAP1 0000073d: PUSH2 0x3651 00000740: JUMP 00000741: JUMPDEST 00000742: PUSH1 0x40 00000744: MLOAD 00000745: SWAP1 00000746: DUP2 00000747: MSTORE 00000748: PUSH1 0x20 0000074a: SWAP1 0000074b: RETURN 0000074c: JUMPDEST 0000074d: PUSH32 0xe21c143100000000000000000000000000000000000000000000000000000000 0000076e: PUSH0 0000076f: MSTORE 00000770: PUSH1 0x04 00000772: MSTORE 00000773: PUSH1 0x24 00000775: PUSH0 00000776: REVERT 00000777: JUMPDEST 00000778: PUSH1 0x01 0000077a: PUSH1 0x01 0000077c: PUSH1 0xa0 0000077e: SHL 0000077f: SUB 00000780: DUP2 00000781: AND 00000782: SUB 00000783: PUSH2 0x042e 00000786: JUMPI 00000787: JUMP 00000788: JUMPDEST 00000789: CALLVALUE 0000078a: PUSH2 0x042e 0000078d: JUMPI 0000078e: PUSH1 0x40 00000790: PUSH1 0x03 00000792: NOT 00000793: CALLDATASIZE 00000794: ADD 00000795: SLT 00000796: PUSH2 0x042e 00000799: JUMPI 0000079a: PUSH1 0x04 0000079c: CALLDATALOAD 0000079d: PUSH2 0x07a5 000007a0: DUP2 000007a1: PUSH2 0x0777 000007a4: JUMP 000007a5: JUMPDEST 000007a6: PUSH1 0x24 000007a8: CALLDATALOAD 000007a9: SWAP1 000007aa: PUSH2 0x07b2 000007ad: DUP3 000007ae: PUSH2 0x3605 000007b1: JUMP 000007b2: JUMPDEST 000007b3: CALLER 000007b4: ISZERO 000007b5: ISZERO 000007b6: DUP1 000007b7: PUSH2 0x08b1 000007ba: JUMPI 000007bb: JUMPDEST 000007bc: DUP1 000007bd: PUSH2 0x0871 000007c0: JUMPI 000007c1: JUMPDEST 000007c2: PUSH2 0x0842 000007c5: JUMPI 000007c6: DUP3 000007c7: PUSH2 0x0840 000007ca: SWAP4 000007cb: PUSH2 0x080d 000007ce: SWAP3 000007cf: PUSH1 0x01 000007d1: PUSH1 0x01 000007d3: PUSH1 0xa0 000007d5: SHL 000007d6: SUB 000007d7: DUP1 000007d8: DUP7 000007d9: AND 000007da: SWAP2 000007db: AND 000007dc: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 000007fd: PUSH0 000007fe: DUP1 000007ff: LOG4 00000800: PUSH0 00000801: MSTORE 00000802: PUSH1 0x05 00000804: PUSH1 0x20 00000806: MSTORE 00000807: PUSH1 0x40 00000809: PUSH0 0000080a: KECCAK256 0000080b: SWAP1 0000080c: JUMP 0000080d: JUMPDEST 0000080e: SWAP1 0000080f: PUSH1 0x01 00000811: PUSH1 0x01 00000813: PUSH1 0xa0 00000815: SHL 00000816: SUB 00000817: AND 00000818: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000839: DUP3 0000083a: SLOAD 0000083b: AND 0000083c: OR 0000083d: SWAP1 0000083e: SSTORE 0000083f: JUMP 00000840: JUMPDEST 00000841: STOP 00000842: JUMPDEST 00000843: PUSH32 0xa9fbf51f00000000000000000000000000000000000000000000000000000000 00000864: PUSH0 00000865: MSTORE 00000866: CALLER 00000867: PUSH1 0x04 00000869: MSTORE 0000086a: PUSH1 0x24 0000086c: PUSH0 0000086d: REVERT 0000086e: JUMPDEST 0000086f: PUSH0 00000870: REVERT 00000871: JUMPDEST 00000872: POP 00000873: PUSH1 0xff 00000875: PUSH2 0x08a9 00000878: CALLER 00000879: PUSH2 0x0893 0000087c: DUP5 0000087d: PUSH1 0x01 0000087f: PUSH1 0x01 00000881: PUSH1 0xa0 00000883: SHL 00000884: SUB 00000885: AND 00000886: PUSH0 00000887: MSTORE 00000888: PUSH1 0x06 0000088a: PUSH1 0x20 0000088c: MSTORE 0000088d: PUSH1 0x40 0000088f: PUSH0 00000890: KECCAK256 00000891: SWAP1 00000892: JUMP 00000893: JUMPDEST 00000894: SWAP1 00000895: PUSH1 0x01 00000897: PUSH1 0x01 00000899: PUSH1 0xa0 0000089b: SHL 0000089c: SUB 0000089d: AND 0000089e: PUSH0 0000089f: MSTORE 000008a0: PUSH1 0x20 000008a2: MSTORE 000008a3: PUSH1 0x40 000008a5: PUSH0 000008a6: KECCAK256 000008a7: SWAP1 000008a8: JUMP 000008a9: JUMPDEST 000008aa: SLOAD 000008ab: AND 000008ac: ISZERO 000008ad: PUSH2 0x07c1 000008b0: JUMP 000008b1: JUMPDEST 000008b2: POP 000008b3: CALLER 000008b4: PUSH1 0x01 000008b6: PUSH1 0x01 000008b8: PUSH1 0xa0 000008ba: SHL 000008bb: SUB 000008bc: DUP3 000008bd: AND 000008be: EQ 000008bf: ISZERO 000008c0: PUSH2 0x07bb 000008c3: JUMP 000008c4: JUMPDEST 000008c5: CALLVALUE 000008c6: PUSH2 0x042e 000008c9: JUMPI 000008ca: PUSH1 0x20 000008cc: PUSH1 0x03 000008ce: NOT 000008cf: CALLDATASIZE 000008d0: ADD 000008d1: SLT 000008d2: PUSH2 0x042e 000008d5: JUMPI 000008d6: PUSH1 0x01 000008d8: PUSH1 0x01 000008da: PUSH1 0xa0 000008dc: SHL 000008dd: SUB 000008de: PUSH1 0x04 000008e0: CALLDATALOAD 000008e1: PUSH2 0x08e9 000008e4: DUP2 000008e5: PUSH2 0x0777 000008e8: JUMP 000008e9: JUMPDEST 000008ea: AND 000008eb: PUSH0 000008ec: MSTORE 000008ed: PUSH1 0x0b 000008ef: PUSH1 0x20 000008f1: MSTORE 000008f2: PUSH1 0x20 000008f4: PUSH16 0xffffffffffffffffffffffffffffffff 00000905: PUSH1 0x40 00000907: PUSH0 00000908: KECCAK256 00000909: SLOAD 0000090a: AND 0000090b: PUSH1 0x40 0000090d: MLOAD 0000090e: SWAP1 0000090f: DUP2 00000910: MSTORE 00000911: RETURN 00000912: JUMPDEST 00000913: PUSH1 0x20 00000915: PUSH1 0x03 00000917: NOT 00000918: CALLDATASIZE 00000919: ADD 0000091a: SLT 0000091b: PUSH2 0x042e 0000091e: JUMPI 0000091f: PUSH1 0x04 00000921: CALLDATALOAD 00000922: PUSH2 0x0929 00000925: PUSH2 0x3692 00000928: JUMP 00000929: JUMPDEST 0000092a: DUP1 0000092b: PUSH0 0000092c: MSTORE 0000092d: PUSH1 0x0c 0000092f: PUSH1 0x20 00000931: MSTORE 00000932: PUSH1 0xff 00000934: PUSH1 0x01 00000936: PUSH1 0x40 00000938: PUSH0 00000939: KECCAK256 0000093a: ADD 0000093b: SLOAD 0000093c: PUSH1 0xc8 0000093e: SHR 0000093f: AND 00000940: ISZERO 00000941: PUSH2 0x074c 00000944: JUMPI 00000945: DUP1 00000946: PUSH0 00000947: MSTORE 00000948: PUSH1 0x0c 0000094a: PUSH1 0x20 0000094c: MSTORE 0000094d: PUSH1 0x01 0000094f: PUSH1 0x01 00000951: PUSH1 0xa0 00000953: SHL 00000954: SUB 00000955: PUSH1 0x01 00000957: PUSH1 0x40 00000959: PUSH0 0000095a: KECCAK256 0000095b: ADD 0000095c: SLOAD 0000095d: AND 0000095e: CALLER 0000095f: SUB 00000960: PUSH2 0x09a2 00000963: JUMPI 00000964: PUSH1 0x20 00000966: DUP2 00000967: PUSH2 0x0999 0000096a: PUSH2 0x0993 0000096d: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 0000098e: SWAP5 0000098f: PUSH2 0x371e 00000992: JUMP 00000993: JUMPDEST 00000994: DUP3 00000995: PUSH2 0x3750 00000998: JUMP 00000999: JUMPDEST 0000099a: PUSH1 0x40 0000099c: MLOAD 0000099d: SWAP1 0000099e: DUP2 0000099f: MSTORE 000009a0: LOG1 000009a1: STOP 000009a2: JUMPDEST 000009a3: PUSH32 0xa9ad2a2200000000000000000000000000000000000000000000000000000000 000009c4: PUSH0 000009c5: MSTORE 000009c6: PUSH1 0x04 000009c8: MSTORE 000009c9: CALLER 000009ca: PUSH1 0x24 000009cc: MSTORE 000009cd: PUSH1 0x44 000009cf: PUSH0 000009d0: REVERT 000009d1: JUMPDEST 000009d2: PUSH1 0x20 000009d4: PUSH1 0x03 000009d6: NOT 000009d7: CALLDATASIZE 000009d8: ADD 000009d9: SLT 000009da: PUSH2 0x042e 000009dd: JUMPI 000009de: PUSH1 0x04 000009e0: CALLDATALOAD 000009e1: PUSH2 0x09e8 000009e4: PUSH2 0x3692 000009e7: JUMP 000009e8: JUMPDEST 000009e9: DUP1 000009ea: PUSH0 000009eb: MSTORE 000009ec: PUSH1 0x0c 000009ee: PUSH1 0x20 000009f0: MSTORE 000009f1: PUSH1 0xff 000009f3: PUSH1 0x01 000009f5: PUSH1 0x40 000009f7: PUSH0 000009f8: KECCAK256 000009f9: ADD 000009fa: SLOAD 000009fb: PUSH1 0xc8 000009fd: SHR 000009fe: AND 000009ff: ISZERO 00000a00: PUSH2 0x074c 00000a03: JUMPI 00000a04: DUP1 00000a05: PUSH0 00000a06: MSTORE 00000a07: PUSH1 0x0c 00000a09: PUSH1 0x20 00000a0b: MSTORE 00000a0c: PUSH1 0x40 00000a0e: PUSH0 00000a0f: KECCAK256 00000a10: SLOAD 00000a11: PUSH1 0x80 00000a13: SHR 00000a14: ISZERO 00000a15: PUSH2 0x0a64 00000a18: JUMPI 00000a19: DUP1 00000a1a: PUSH0 00000a1b: MSTORE 00000a1c: PUSH1 0x0c 00000a1e: PUSH1 0x20 00000a20: MSTORE 00000a21: PUSH1 0x01 00000a23: PUSH1 0x01 00000a25: PUSH1 0xa0 00000a27: SHL 00000a28: SUB 00000a29: PUSH1 0x01 00000a2b: PUSH1 0x40 00000a2d: PUSH0 00000a2e: KECCAK256 00000a2f: ADD 00000a30: SLOAD 00000a31: AND 00000a32: CALLER 00000a33: SUB 00000a34: PUSH2 0x09a2 00000a37: JUMPI 00000a38: PUSH1 0x20 00000a3a: DUP2 00000a3b: PUSH2 0x0999 00000a3e: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 00000a5f: SWAP4 00000a60: PUSH2 0x398a 00000a63: JUMP 00000a64: JUMPDEST 00000a65: PUSH32 0x167274c900000000000000000000000000000000000000000000000000000000 00000a86: PUSH0 00000a87: MSTORE 00000a88: PUSH1 0x04 00000a8a: MSTORE 00000a8b: PUSH1 0x24 00000a8d: PUSH0 00000a8e: REVERT 00000a8f: JUMPDEST 00000a90: CALLVALUE 00000a91: PUSH2 0x042e 00000a94: JUMPI 00000a95: PUSH1 0x20 00000a97: PUSH1 0x03 00000a99: NOT 00000a9a: CALLDATASIZE 00000a9b: ADD 00000a9c: SLT 00000a9d: PUSH2 0x042e 00000aa0: JUMPI 00000aa1: PUSH1 0x04 00000aa3: CALLDATALOAD 00000aa4: DUP1 00000aa5: PUSH0 00000aa6: MSTORE 00000aa7: PUSH1 0x0c 00000aa9: PUSH1 0x20 00000aab: MSTORE 00000aac: PUSH1 0xff 00000aae: PUSH1 0x01 00000ab0: PUSH1 0x40 00000ab2: PUSH0 00000ab3: KECCAK256 00000ab4: ADD 00000ab5: SLOAD 00000ab6: PUSH1 0xc8 00000ab8: SHR 00000ab9: AND 00000aba: ISZERO 00000abb: PUSH2 0x074c 00000abe: JUMPI 00000abf: PUSH2 0x0ac7 00000ac2: SWAP1 00000ac3: PUSH2 0x371e 00000ac6: JUMP 00000ac7: JUMPDEST 00000ac8: PUSH1 0x40 00000aca: MLOAD 00000acb: PUSH16 0xffffffffffffffffffffffffffffffff 00000adc: SWAP1 00000add: SWAP2 00000ade: AND 00000adf: DUP2 00000ae0: MSTORE 00000ae1: PUSH1 0x20 00000ae3: SWAP1 00000ae4: RETURN 00000ae5: JUMPDEST 00000ae6: CALLVALUE 00000ae7: PUSH2 0x042e 00000aea: JUMPI 00000aeb: PUSH1 0x20 00000aed: PUSH1 0x03 00000aef: NOT 00000af0: CALLDATASIZE 00000af1: ADD 00000af2: SLT 00000af3: PUSH2 0x042e 00000af6: JUMPI 00000af7: PUSH1 0x04 00000af9: CALLDATALOAD 00000afa: DUP1 00000afb: PUSH0 00000afc: MSTORE 00000afd: PUSH1 0x0c 00000aff: PUSH1 0x20 00000b01: MSTORE 00000b02: PUSH1 0xff 00000b04: PUSH1 0x01 00000b06: PUSH1 0x40 00000b08: PUSH0 00000b09: KECCAK256 00000b0a: ADD 00000b0b: SLOAD 00000b0c: PUSH1 0xc8 00000b0e: SHR 00000b0f: AND 00000b10: ISZERO 00000b11: PUSH2 0x074c 00000b14: JUMPI 00000b15: PUSH0 00000b16: MSTORE 00000b17: PUSH1 0x0c 00000b19: PUSH1 0x20 00000b1b: MSTORE 00000b1c: PUSH2 0x0616 00000b1f: PUSH16 0xffffffffffffffffffffffffffffffff 00000b30: PUSH1 0x40 00000b32: PUSH0 00000b33: KECCAK256 00000b34: SLOAD 00000b35: AND 00000b36: PUSH1 0x40 00000b38: MLOAD 00000b39: SWAP2 00000b3a: DUP3 00000b3b: SWAP2 00000b3c: DUP3 00000b3d: SWAP2 00000b3e: SWAP1 00000b3f: SWAP2 00000b40: PUSH16 0xffffffffffffffffffffffffffffffff 00000b51: PUSH1 0x20 00000b53: DUP3 00000b54: ADD 00000b55: SWAP4 00000b56: AND 00000b57: SWAP1 00000b58: MSTORE 00000b59: JUMP 00000b5a: JUMPDEST 00000b5b: PUSH1 0x20 00000b5d: DUP2 00000b5e: ADD 00000b5f: PUSH1 0x20 00000b61: DUP3 00000b62: MSTORE 00000b63: DUP3 00000b64: MLOAD 00000b65: DUP1 00000b66: SWAP2 00000b67: MSTORE 00000b68: PUSH1 0x40 00000b6a: DUP3 00000b6b: ADD 00000b6c: SWAP2 00000b6d: PUSH1 0x20 00000b6f: PUSH1 0x40 00000b71: DUP4 00000b72: PUSH1 0x05 00000b74: SHL 00000b75: DUP4 00000b76: ADD 00000b77: ADD 00000b78: SWAP5 00000b79: ADD 00000b7a: SWAP3 00000b7b: PUSH0 00000b7c: SWAP2 00000b7d: JUMPDEST 00000b7e: DUP4 00000b7f: DUP4 00000b80: LT 00000b81: PUSH2 0x0b8c 00000b84: JUMPI 00000b85: POP 00000b86: POP 00000b87: POP 00000b88: POP 00000b89: POP 00000b8a: SWAP1 00000b8b: JUMP 00000b8c: JUMPDEST 00000b8d: SWAP1 00000b8e: SWAP2 00000b8f: SWAP3 00000b90: SWAP4 00000b91: SWAP5 00000b92: PUSH1 0x20 00000b94: DUP1 00000b95: PUSH2 0x0bc8 00000b98: DUP4 00000b99: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0 00000bba: DUP7 00000bbb: PUSH1 0x01 00000bbd: SWAP7 00000bbe: SUB 00000bbf: ADD 00000bc0: DUP8 00000bc1: MSTORE 00000bc2: DUP10 00000bc3: MLOAD 00000bc4: PUSH2 0x0559 00000bc7: JUMP 00000bc8: JUMPDEST 00000bc9: SWAP8 00000bca: ADD 00000bcb: SWAP4 00000bcc: ADD 00000bcd: SWAP4 00000bce: ADD 00000bcf: SWAP2 00000bd0: SWAP4 00000bd1: SWAP3 00000bd2: SWAP1 00000bd3: PUSH2 0x0b7d 00000bd6: JUMP 00000bd7: JUMPDEST 00000bd8: PUSH1 0x20 00000bda: PUSH1 0x03 00000bdc: NOT 00000bdd: CALLDATASIZE 00000bde: ADD 00000bdf: SLT 00000be0: PUSH2 0x042e 00000be3: JUMPI 00000be4: PUSH1 0x04 00000be6: CALLDATALOAD 00000be7: PUSH8 0xffffffffffffffff 00000bf0: DUP2 00000bf1: GT 00000bf2: PUSH2 0x042e 00000bf5: JUMPI 00000bf6: CALLDATASIZE 00000bf7: PUSH1 0x23 00000bf9: DUP3 00000bfa: ADD 00000bfb: SLT 00000bfc: ISZERO 00000bfd: PUSH2 0x042e 00000c00: JUMPI 00000c01: DUP1 00000c02: PUSH1 0x04 00000c04: ADD 00000c05: CALLDATALOAD 00000c06: SWAP1 00000c07: PUSH8 0xffffffffffffffff 00000c10: DUP3 00000c11: GT 00000c12: PUSH2 0x042e 00000c15: JUMPI 00000c16: PUSH1 0x24 00000c18: DUP2 00000c19: ADD 00000c1a: SWAP1 00000c1b: PUSH1 0x24 00000c1d: CALLDATASIZE 00000c1e: SWAP2 00000c1f: DUP5 00000c20: PUSH1 0x05 00000c22: SHL 00000c23: ADD 00000c24: ADD 00000c25: GT 00000c26: PUSH2 0x042e 00000c29: JUMPI 00000c2a: PUSH2 0x0c32 00000c2d: DUP3 00000c2e: PUSH2 0x2f7a 00000c31: JUMP 00000c32: JUMPDEST 00000c33: SWAP2 00000c34: PUSH2 0x0c40 00000c37: PUSH1 0x40 00000c39: MLOAD 00000c3a: SWAP4 00000c3b: DUP5 00000c3c: PUSH2 0x2388 00000c3f: JUMP 00000c40: JUMPDEST 00000c41: DUP1 00000c42: DUP4 00000c43: MSTORE 00000c44: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00000c65: PUSH2 0x0c6d 00000c68: DUP3 00000c69: PUSH2 0x2f7a 00000c6c: JUMP 00000c6d: JUMPDEST 00000c6e: ADD 00000c6f: PUSH0 00000c70: JUMPDEST 00000c71: DUP2 00000c72: DUP2 00000c73: LT 00000c74: PUSH2 0x0ce8 00000c77: JUMPI 00000c78: POP 00000c79: POP 00000c7a: PUSH0 00000c7b: JUMPDEST 00000c7c: DUP2 00000c7d: DUP2 00000c7e: LT 00000c7f: PUSH2 0x0c90 00000c82: JUMPI 00000c83: PUSH1 0x40 00000c85: MLOAD 00000c86: DUP1 00000c87: PUSH2 0x0616 00000c8a: DUP7 00000c8b: DUP3 00000c8c: PUSH2 0x0b5a 00000c8f: JUMP 00000c90: JUMPDEST 00000c91: PUSH0 00000c92: DUP1 00000c93: PUSH2 0x0c9d 00000c96: DUP4 00000c97: DUP6 00000c98: DUP8 00000c99: PUSH2 0x2fbf 00000c9c: JUMP 00000c9d: JUMPDEST 00000c9e: SWAP1 00000c9f: PUSH2 0x0cad 00000ca2: PUSH1 0x40 00000ca4: MLOAD 00000ca5: DUP1 00000ca6: SWAP4 00000ca7: DUP2 00000ca8: SWAP4 00000ca9: PUSH2 0x3024 00000cac: JUMP 00000cad: JUMPDEST 00000cae: SUB 00000caf: SWAP1 00000cb0: ADDRESS 00000cb1: GAS 00000cb2: DELEGATECALL 00000cb3: PUSH2 0x0cba 00000cb6: PUSH2 0x3031 00000cb9: JUMP 00000cba: JUMPDEST 00000cbb: SWAP1 00000cbc: ISZERO 00000cbd: PUSH2 0x0ce0 00000cc0: JUMPI 00000cc1: SWAP1 00000cc2: PUSH1 0x01 00000cc4: SWAP2 00000cc5: PUSH2 0x0cce 00000cc8: DUP3 00000cc9: DUP8 00000cca: PUSH2 0x3060 00000ccd: JUMP 00000cce: JUMPDEST 00000ccf: MSTORE 00000cd0: PUSH2 0x0cd9 00000cd3: DUP2 00000cd4: DUP7 00000cd5: PUSH2 0x3060 00000cd8: JUMP 00000cd9: JUMPDEST 00000cda: POP 00000cdb: ADD 00000cdc: PUSH2 0x0c7b 00000cdf: JUMP 00000ce0: JUMPDEST 00000ce1: DUP1 00000ce2: MLOAD 00000ce3: SWAP1 00000ce4: PUSH1 0x20 00000ce6: ADD 00000ce7: REVERT 00000ce8: JUMPDEST 00000ce9: DUP1 00000cea: PUSH1 0x60 00000cec: PUSH1 0x20 00000cee: DUP1 00000cef: SWAP4 00000cf0: DUP9 00000cf1: ADD 00000cf2: ADD 00000cf3: MSTORE 00000cf4: ADD 00000cf5: PUSH2 0x0c70 00000cf8: JUMP 00000cf9: JUMPDEST 00000cfa: CALLVALUE 00000cfb: PUSH2 0x042e 00000cfe: JUMPI 00000cff: PUSH0 00000d00: PUSH1 0x03 00000d02: NOT 00000d03: CALLDATASIZE 00000d04: ADD 00000d05: SLT 00000d06: PUSH2 0x042e 00000d09: JUMPI 00000d0a: PUSH1 0x20 00000d0c: PUSH1 0x08 00000d0e: SLOAD 00000d0f: PUSH1 0x40 00000d11: MLOAD 00000d12: SWAP1 00000d13: DUP2 00000d14: MSTORE 00000d15: RETURN 00000d16: JUMPDEST 00000d17: PUSH16 0xffffffffffffffffffffffffffffffff 00000d28: DUP2 00000d29: AND 00000d2a: SUB 00000d2b: PUSH2 0x042e 00000d2e: JUMPI 00000d2f: JUMP 00000d30: JUMPDEST 00000d31: PUSH1 0x60 00000d33: PUSH1 0x03 00000d35: NOT 00000d36: CALLDATASIZE 00000d37: ADD 00000d38: SLT 00000d39: PUSH2 0x042e 00000d3c: JUMPI 00000d3d: PUSH1 0x04 00000d3f: CALLDATALOAD 00000d40: PUSH1 0x24 00000d42: CALLDATALOAD 00000d43: PUSH2 0x0d4b 00000d46: DUP2 00000d47: PUSH2 0x0d16 00000d4a: JUMP 00000d4b: JUMPDEST 00000d4c: PUSH1 0x44 00000d4e: CALLDATALOAD 00000d4f: SWAP1 00000d50: PUSH2 0x0d58 00000d53: DUP3 00000d54: PUSH2 0x0d16 00000d57: JUMP 00000d58: JUMPDEST 00000d59: PUSH2 0x0d60 00000d5c: PUSH2 0x3692 00000d5f: JUMP 00000d60: JUMPDEST 00000d61: DUP3 00000d62: PUSH0 00000d63: MSTORE 00000d64: PUSH1 0x0c 00000d66: PUSH1 0x20 00000d68: MSTORE 00000d69: PUSH1 0xff 00000d6b: PUSH1 0x01 00000d6d: PUSH1 0x40 00000d6f: PUSH0 00000d70: KECCAK256 00000d71: ADD 00000d72: SLOAD 00000d73: PUSH1 0xc8 00000d75: SHR 00000d76: AND 00000d77: ISZERO 00000d78: PUSH2 0x0e48 00000d7b: JUMPI 00000d7c: DUP3 00000d7d: PUSH0 00000d7e: MSTORE 00000d7f: PUSH1 0x0c 00000d81: PUSH1 0x20 00000d83: MSTORE 00000d84: PUSH1 0xff 00000d86: PUSH1 0x01 00000d88: PUSH1 0x40 00000d8a: PUSH0 00000d8b: KECCAK256 00000d8c: ADD 00000d8d: SLOAD 00000d8e: PUSH1 0xd8 00000d90: SHR 00000d91: AND 00000d92: PUSH2 0x0e1c 00000d95: JUMPI 00000d96: DUP3 00000d97: PUSH0 00000d98: MSTORE 00000d99: PUSH1 0x0c 00000d9b: PUSH1 0x20 00000d9d: MSTORE 00000d9e: PUSH1 0x01 00000da0: PUSH1 0x01 00000da2: PUSH1 0xa0 00000da4: SHL 00000da5: SUB 00000da6: PUSH1 0x01 00000da8: PUSH1 0x40 00000daa: PUSH0 00000dab: KECCAK256 00000dac: ADD 00000dad: SLOAD 00000dae: AND 00000daf: CALLER 00000db0: SUB 00000db1: PUSH2 0x0dec 00000db4: JUMPI 00000db5: SWAP2 00000db6: PUSH2 0x0999 00000db9: PUSH1 0x20 00000dbb: SWAP3 00000dbc: PUSH2 0x0de6 00000dbf: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 00000de0: SWAP6 00000de1: DUP5 00000de2: PUSH2 0x3aa5 00000de5: JUMP 00000de6: JUMPDEST 00000de7: DUP3 00000de8: PUSH2 0x3b32 00000deb: JUMP 00000dec: JUMPDEST 00000ded: DUP3 00000dee: PUSH32 0xa9ad2a2200000000000000000000000000000000000000000000000000000000 00000e0f: PUSH0 00000e10: MSTORE 00000e11: PUSH1 0x04 00000e13: MSTORE 00000e14: CALLER 00000e15: PUSH1 0x24 00000e17: MSTORE 00000e18: PUSH1 0x44 00000e1a: PUSH0 00000e1b: REVERT 00000e1c: JUMPDEST 00000e1d: DUP3 00000e1e: PUSH32 0x7354d5f100000000000000000000000000000000000000000000000000000000 00000e3f: PUSH0 00000e40: MSTORE 00000e41: PUSH1 0x04 00000e43: MSTORE 00000e44: PUSH1 0x24 00000e46: PUSH0 00000e47: REVERT 00000e48: JUMPDEST 00000e49: DUP3 00000e4a: PUSH32 0xe21c143100000000000000000000000000000000000000000000000000000000 00000e6b: PUSH0 00000e6c: MSTORE 00000e6d: PUSH1 0x04 00000e6f: MSTORE 00000e70: PUSH1 0x24 00000e72: PUSH0 00000e73: REVERT 00000e74: JUMPDEST 00000e75: PUSH1 0x03 00000e77: NOT 00000e78: PUSH1 0x60 00000e7a: SWAP2 00000e7b: ADD 00000e7c: SLT 00000e7d: PUSH2 0x042e 00000e80: JUMPI 00000e81: PUSH1 0x04 00000e83: CALLDATALOAD 00000e84: PUSH2 0x0e8c 00000e87: DUP2 00000e88: PUSH2 0x0777 00000e8b: JUMP 00000e8c: JUMPDEST 00000e8d: SWAP1 00000e8e: PUSH1 0x24 00000e90: CALLDATALOAD 00000e91: PUSH2 0x0e99 00000e94: DUP2 00000e95: PUSH2 0x0777 00000e98: JUMP 00000e99: JUMPDEST 00000e9a: SWAP1 00000e9b: PUSH1 0x44 00000e9d: CALLDATALOAD 00000e9e: SWAP1 00000e9f: JUMP 00000ea0: JUMPDEST 00000ea1: CALLVALUE 00000ea2: PUSH2 0x042e 00000ea5: JUMPI 00000ea6: PUSH2 0x0840 00000ea9: PUSH2 0x0eb1 00000eac: CALLDATASIZE 00000ead: PUSH2 0x0e74 00000eb0: JUMP 00000eb1: JUMPDEST 00000eb2: SWAP2 00000eb3: PUSH2 0x3074 00000eb6: JUMP 00000eb7: JUMPDEST 00000eb8: PUSH1 0x40 00000eba: PUSH1 0x03 00000ebc: NOT 00000ebd: CALLDATASIZE 00000ebe: ADD 00000ebf: SLT 00000ec0: PUSH2 0x042e 00000ec3: JUMPI 00000ec4: PUSH1 0x04 00000ec6: CALLDATALOAD 00000ec7: PUSH1 0x24 00000ec9: CALLDATALOAD 00000eca: PUSH2 0x0ed2 00000ecd: DUP2 00000ece: PUSH2 0x0d16 00000ed1: JUMP 00000ed2: JUMPDEST 00000ed3: PUSH2 0x0eda 00000ed6: PUSH2 0x3692 00000ed9: JUMP 00000eda: JUMPDEST 00000edb: DUP2 00000edc: PUSH0 00000edd: MSTORE 00000ede: PUSH1 0x0c 00000ee0: PUSH1 0x20 00000ee2: MSTORE 00000ee3: PUSH1 0xff 00000ee5: PUSH1 0x01 00000ee7: PUSH1 0x40 00000ee9: PUSH0 00000eea: KECCAK256 00000eeb: ADD 00000eec: SLOAD 00000eed: PUSH1 0xc8 00000eef: SHR 00000ef0: AND 00000ef1: ISZERO 00000ef2: PUSH2 0x0fbc 00000ef5: JUMPI 00000ef6: DUP2 00000ef7: PUSH0 00000ef8: MSTORE 00000ef9: PUSH1 0x0c 00000efb: PUSH1 0x20 00000efd: MSTORE 00000efe: PUSH1 0x40 00000f00: PUSH0 00000f01: KECCAK256 00000f02: SLOAD 00000f03: PUSH1 0x80 00000f05: SHR 00000f06: ISZERO 00000f07: PUSH2 0x0f90 00000f0a: JUMPI 00000f0b: DUP2 00000f0c: PUSH0 00000f0d: MSTORE 00000f0e: PUSH1 0x0c 00000f10: PUSH1 0x20 00000f12: MSTORE 00000f13: PUSH1 0x01 00000f15: PUSH1 0x01 00000f17: PUSH1 0xa0 00000f19: SHL 00000f1a: SUB 00000f1b: PUSH1 0x01 00000f1d: PUSH1 0x40 00000f1f: PUSH0 00000f20: KECCAK256 00000f21: ADD 00000f22: SLOAD 00000f23: AND 00000f24: CALLER 00000f25: SUB 00000f26: PUSH2 0x0f60 00000f29: JUMPI 00000f2a: DUP2 00000f2b: PUSH2 0x0f57 00000f2e: PUSH1 0x20 00000f30: SWAP3 00000f31: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 00000f52: SWAP5 00000f53: PUSH2 0x3750 00000f56: JUMP 00000f57: JUMPDEST 00000f58: PUSH2 0x0999 00000f5b: DUP2 00000f5c: PUSH2 0x398a 00000f5f: JUMP 00000f60: JUMPDEST 00000f61: POP 00000f62: PUSH32 0xa9ad2a2200000000000000000000000000000000000000000000000000000000 00000f83: PUSH0 00000f84: MSTORE 00000f85: PUSH1 0x04 00000f87: MSTORE 00000f88: CALLER 00000f89: PUSH1 0x24 00000f8b: MSTORE 00000f8c: PUSH1 0x44 00000f8e: PUSH0 00000f8f: REVERT 00000f90: JUMPDEST 00000f91: POP 00000f92: PUSH32 0x167274c900000000000000000000000000000000000000000000000000000000 00000fb3: PUSH0 00000fb4: MSTORE 00000fb5: PUSH1 0x04 00000fb7: MSTORE 00000fb8: PUSH1 0x24 00000fba: PUSH0 00000fbb: REVERT 00000fbc: JUMPDEST 00000fbd: POP 00000fbe: PUSH32 0xe21c143100000000000000000000000000000000000000000000000000000000 00000fdf: PUSH0 00000fe0: MSTORE 00000fe1: PUSH1 0x04 00000fe3: MSTORE 00000fe4: PUSH1 0x24 00000fe6: PUSH0 00000fe7: REVERT 00000fe8: JUMPDEST 00000fe9: CALLVALUE 00000fea: PUSH2 0x042e 00000fed: JUMPI 00000fee: PUSH2 0x0840 00000ff1: PUSH2 0x0ff9 00000ff4: CALLDATASIZE 00000ff5: PUSH2 0x0e74 00000ff8: JUMP 00000ff9: JUMPDEST 00000ffa: SWAP1 00000ffb: PUSH1 0x40 00000ffd: MLOAD 00000ffe: SWAP3 00000fff: PUSH2 0x1009 00001002: PUSH1 0x20 00001004: DUP6 00001005: PUSH2 0x2388 00001008: JUMP 00001009: JUMPDEST 0000100a: PUSH0 0000100b: DUP5 0000100c: MSTORE 0000100d: PUSH2 0x32e0 00001010: JUMP 00001011: JUMPDEST 00001012: CALLVALUE 00001013: PUSH2 0x042e 00001016: JUMPI 00001017: PUSH1 0x20 00001019: PUSH1 0x03 0000101b: NOT 0000101c: CALLDATASIZE 0000101d: ADD 0000101e: SLT 0000101f: PUSH2 0x042e 00001022: JUMPI 00001023: PUSH1 0x20 00001025: PUSH2 0x102f 00001028: PUSH1 0x04 0000102a: CALLDATALOAD 0000102b: PUSH2 0x31ab 0000102e: JUMP 0000102f: JUMPDEST 00001030: PUSH16 0xffffffffffffffffffffffffffffffff 00001041: PUSH1 0x40 00001043: MLOAD 00001044: SWAP2 00001045: AND 00001046: DUP2 00001047: MSTORE 00001048: RETURN 00001049: JUMPDEST 0000104a: CALLVALUE 0000104b: PUSH2 0x042e 0000104e: JUMPI 0000104f: PUSH0 00001050: PUSH1 0x03 00001052: NOT 00001053: CALLDATASIZE 00001054: ADD 00001055: SLT 00001056: PUSH2 0x042e 00001059: JUMPI 0000105a: PUSH1 0x20 0000105c: PUSH1 0x01 0000105e: PUSH1 0x01 00001060: PUSH1 0xa0 00001062: SHL 00001063: SUB 00001064: PUSH1 0x09 00001066: SLOAD 00001067: AND 00001068: PUSH1 0x40 0000106a: MLOAD 0000106b: SWAP1 0000106c: DUP2 0000106d: MSTORE 0000106e: RETURN 0000106f: JUMPDEST 00001070: CALLVALUE 00001071: PUSH2 0x042e 00001074: JUMPI 00001075: PUSH1 0x20 00001077: PUSH1 0x03 00001079: NOT 0000107a: CALLDATASIZE 0000107b: ADD 0000107c: SLT 0000107d: PUSH2 0x042e 00001080: JUMPI 00001081: PUSH1 0x04 00001083: CALLDATALOAD 00001084: DUP1 00001085: PUSH0 00001086: MSTORE 00001087: PUSH1 0x0c 00001089: PUSH1 0x20 0000108b: MSTORE 0000108c: PUSH1 0xff 0000108e: PUSH1 0x01 00001090: PUSH1 0x40 00001092: PUSH0 00001093: KECCAK256 00001094: ADD 00001095: SLOAD 00001096: PUSH1 0xc8 00001098: SHR 00001099: AND 0000109a: ISZERO 0000109b: PUSH2 0x074c 0000109e: JUMPI 0000109f: PUSH0 000010a0: MSTORE 000010a1: PUSH1 0x0c 000010a3: PUSH1 0x20 000010a5: MSTORE 000010a6: PUSH2 0x0616 000010a9: PUSH1 0x03 000010ab: PUSH1 0x40 000010ad: PUSH0 000010ae: KECCAK256 000010af: ADD 000010b0: SLOAD 000010b1: PUSH1 0x40 000010b3: MLOAD 000010b4: SWAP2 000010b5: DUP3 000010b6: SWAP2 000010b7: DUP3 000010b8: SWAP2 000010b9: SWAP1 000010ba: PUSH1 0x20 000010bc: DUP4 000010bd: ADD 000010be: SWAP3 000010bf: MSTORE 000010c0: JUMP 000010c1: JUMPDEST 000010c2: CALLVALUE 000010c3: PUSH2 0x042e 000010c6: JUMPI 000010c7: PUSH1 0x20 000010c9: PUSH1 0x03 000010cb: NOT 000010cc: CALLDATASIZE 000010cd: ADD 000010ce: SLT 000010cf: PUSH2 0x042e 000010d2: JUMPI 000010d3: PUSH1 0x04 000010d5: CALLDATALOAD 000010d6: DUP1 000010d7: PUSH0 000010d8: MSTORE 000010d9: PUSH1 0x0c 000010db: PUSH1 0x20 000010dd: MSTORE 000010de: PUSH1 0xff 000010e0: PUSH1 0x01 000010e2: PUSH1 0x40 000010e4: PUSH0 000010e5: KECCAK256 000010e6: ADD 000010e7: SLOAD 000010e8: PUSH1 0xc8 000010ea: SHR 000010eb: AND 000010ec: ISZERO 000010ed: PUSH2 0x074c 000010f0: JUMPI 000010f1: PUSH0 000010f2: MSTORE 000010f3: PUSH1 0x0c 000010f5: PUSH1 0x20 000010f7: MSTORE 000010f8: PUSH2 0x0616 000010fb: PUSH1 0xff 000010fd: PUSH1 0x01 000010ff: PUSH1 0x40 00001101: PUSH0 00001102: KECCAK256 00001103: ADD 00001104: SLOAD 00001105: PUSH1 0xd8 00001107: SHR 00001108: AND 00001109: PUSH1 0x40 0000110b: MLOAD 0000110c: SWAP2 0000110d: DUP3 0000110e: SWAP2 0000110f: DUP3 00001110: SWAP2 00001111: SWAP1 00001112: SWAP2 00001113: PUSH1 0x20 00001115: DUP2 00001116: ADD 00001117: SWAP3 00001118: ISZERO 00001119: ISZERO 0000111a: SWAP1 0000111b: MSTORE 0000111c: JUMP 0000111d: JUMPDEST 0000111e: DUP1 0000111f: ISZERO 00001120: ISZERO 00001121: SUB 00001122: PUSH2 0x042e 00001125: JUMPI 00001126: JUMP 00001127: JUMPDEST 00001128: PUSH1 0xa0 0000112a: PUSH1 0x03 0000112c: NOT 0000112d: CALLDATASIZE 0000112e: ADD 0000112f: SLT 00001130: PUSH2 0x042e 00001133: JUMPI 00001134: PUSH1 0x20 00001136: PUSH2 0x1183 00001139: PUSH1 0x04 0000113b: CALLDATALOAD 0000113c: PUSH2 0x1144 0000113f: DUP2 00001140: PUSH2 0x0777 00001143: JUMP 00001144: JUMPDEST 00001145: PUSH1 0x24 00001147: CALLDATALOAD 00001148: PUSH2 0x1150 0000114b: DUP2 0000114c: PUSH2 0x0777 0000114f: JUMP 00001150: JUMPDEST 00001151: PUSH1 0x44 00001153: CALLDATALOAD 00001154: PUSH2 0x115c 00001157: DUP2 00001158: PUSH2 0x0d16 0000115b: JUMP 0000115c: JUMPDEST 0000115d: PUSH1 0x64 0000115f: CALLDATALOAD 00001160: SWAP2 00001161: PUSH2 0x1169 00001164: DUP4 00001165: PUSH2 0x0777 00001168: JUMP 00001169: JUMPDEST 0000116a: PUSH1 0x84 0000116c: CALLDATALOAD 0000116d: SWAP4 0000116e: PUSH2 0x1176 00001171: DUP6 00001172: PUSH2 0x111d 00001175: JUMP 00001176: JUMPDEST 00001177: PUSH2 0x117e 0000117a: PUSH2 0x3692 0000117d: JUMP 0000117e: JUMPDEST 0000117f: PUSH2 0x3fcc 00001182: JUMP 00001183: JUMPDEST 00001184: PUSH1 0x40 00001186: MLOAD 00001187: SWAP1 00001188: DUP2 00001189: MSTORE 0000118a: RETURN 0000118b: JUMPDEST 0000118c: PUSH1 0x20 0000118e: PUSH1 0x03 00001190: NOT 00001191: CALLDATASIZE 00001192: ADD 00001193: SLT 00001194: PUSH2 0x042e 00001197: JUMPI 00001198: PUSH1 0x04 0000119a: CALLDATALOAD 0000119b: PUSH2 0x11a2 0000119e: PUSH2 0x3692 000011a1: JUMP 000011a2: JUMPDEST 000011a3: DUP1 000011a4: PUSH0 000011a5: MSTORE 000011a6: PUSH1 0x0c 000011a8: PUSH1 0x20 000011aa: MSTORE 000011ab: PUSH1 0xff 000011ad: PUSH1 0x01 000011af: PUSH1 0x40 000011b1: PUSH0 000011b2: KECCAK256 000011b3: ADD 000011b4: SLOAD 000011b5: PUSH1 0xc8 000011b7: SHR 000011b8: AND 000011b9: ISZERO 000011ba: PUSH2 0x074c 000011bd: JUMPI 000011be: DUP1 000011bf: PUSH0 000011c0: MSTORE 000011c1: PUSH1 0x0c 000011c3: PUSH1 0x20 000011c5: MSTORE 000011c6: PUSH1 0xff 000011c8: PUSH1 0x01 000011ca: PUSH1 0x40 000011cc: PUSH0 000011cd: KECCAK256 000011ce: ADD 000011cf: SLOAD 000011d0: PUSH1 0xd8 000011d2: SHR 000011d3: AND 000011d4: PUSH2 0x14f1 000011d7: JUMPI 000011d8: PUSH2 0x120b 000011db: PUSH2 0x11ff 000011de: PUSH1 0x01 000011e0: PUSH2 0x11f1 000011e3: DUP5 000011e4: PUSH0 000011e5: MSTORE 000011e6: PUSH1 0x0c 000011e8: PUSH1 0x20 000011ea: MSTORE 000011eb: PUSH1 0x40 000011ed: PUSH0 000011ee: KECCAK256 000011ef: SWAP1 000011f0: JUMP 000011f1: JUMPDEST 000011f2: ADD 000011f3: SLOAD 000011f4: PUSH1 0x01 000011f6: PUSH1 0x01 000011f8: PUSH1 0xa0 000011fa: SHL 000011fb: SUB 000011fc: AND 000011fd: SWAP1 000011fe: JUMP 000011ff: JUMPDEST 00001200: PUSH1 0x01 00001202: PUSH1 0x01 00001204: PUSH1 0xa0 00001206: SHL 00001207: SUB 00001208: AND 00001209: SWAP1 0000120a: JUMP 0000120b: JUMPDEST 0000120c: CALLER 0000120d: EQ 0000120e: ISZERO 0000120f: DUP1 00001210: PUSH2 0x14db 00001213: JUMPI 00001214: JUMPDEST 00001215: PUSH2 0x09a2 00001218: JUMPI 00001219: PUSH2 0x142b 0000121c: DUP2 0000121d: PUSH2 0x1246 00001220: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 00001241: SWAP4 00001242: PUSH2 0x4367 00001245: JUMP 00001246: JUMPDEST 00001247: DUP1 00001248: PUSH2 0x1458 0000124b: JUMPI 0000124c: PUSH2 0x1254 0000124f: DUP3 00001250: PUSH2 0x4227 00001253: JUMP 00001254: JUMPDEST 00001255: DUP1 00001256: PUSH2 0x1430 00001259: JUMPI 0000125a: JUMPDEST 0000125b: POP 0000125c: JUMPDEST 0000125d: PUSH2 0x12c6 00001260: PUSH5 0xffffffffff 00001266: TIMESTAMP 00001267: AND 00001268: PUSH1 0x01 0000126a: PUSH2 0x127b 0000126d: DUP6 0000126e: PUSH0 0000126f: MSTORE 00001270: PUSH1 0x0c 00001272: PUSH1 0x20 00001274: MSTORE 00001275: PUSH1 0x40 00001277: PUSH0 00001278: KECCAK256 00001279: SWAP1 0000127a: JUMP 0000127b: JUMPDEST 0000127c: ADD 0000127d: SWAP1 0000127e: PUSH32 0xffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff 0000129f: PUSH25 0xffffffffff0000000000000000000000000000000000000000 000012b9: DUP4 000012ba: SLOAD 000012bb: SWAP3 000012bc: PUSH1 0xa0 000012be: SHL 000012bf: AND 000012c0: SWAP2 000012c1: AND 000012c2: OR 000012c3: SWAP1 000012c4: SSTORE 000012c5: JUMP 000012c6: JUMPDEST 000012c7: PUSH2 0x131d 000012ca: PUSH0 000012cb: PUSH2 0x12dc 000012ce: DUP5 000012cf: PUSH0 000012d0: MSTORE 000012d1: PUSH1 0x0c 000012d3: PUSH1 0x20 000012d5: MSTORE 000012d6: PUSH1 0x40 000012d8: PUSH0 000012d9: KECCAK256 000012da: SWAP1 000012db: JUMP 000012dc: JUMPDEST 000012dd: SWAP1 000012de: PUSH16 0xffffffffffffffffffffffffffffffff 000012ef: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000 00001310: DUP4 00001311: SLOAD 00001312: SWAP3 00001313: PUSH1 0x80 00001315: SHL 00001316: AND 00001317: SWAP2 00001318: AND 00001319: OR 0000131a: SWAP1 0000131b: SSTORE 0000131c: JUMP 0000131d: JUMPDEST 0000131e: PUSH2 0x137b 00001321: PUSH1 0x01 00001323: PUSH2 0x1334 00001326: DUP5 00001327: PUSH0 00001328: MSTORE 00001329: PUSH1 0x0c 0000132b: PUSH1 0x20 0000132d: MSTORE 0000132e: PUSH1 0x40 00001330: PUSH0 00001331: KECCAK256 00001332: SWAP1 00001333: JUMP 00001334: JUMPDEST 00001335: ADD 00001336: PUSH28 0x01000000000000000000000000000000000000000000000000000000 00001353: PUSH32 0xffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001374: DUP3 00001375: SLOAD 00001376: AND 00001377: OR 00001378: SWAP1 00001379: SSTORE 0000137a: JUMP 0000137b: JUMPDEST 0000137c: PUSH2 0x1392 0000137f: PUSH1 0x01 00001381: PUSH2 0x11f1 00001384: DUP5 00001385: PUSH0 00001386: MSTORE 00001387: PUSH1 0x0c 00001389: PUSH1 0x20 0000138b: MSTORE 0000138c: PUSH1 0x40 0000138e: PUSH0 0000138f: KECCAK256 00001390: SWAP1 00001391: JUMP 00001392: JUMPDEST 00001393: SWAP1 00001394: DUP3 00001395: PUSH32 0xa8e3d71a6c0c719305004b430f6d17f12536f7b803db23a4d7016f5b52699a8c 000013b6: PUSH1 0x01 000013b8: PUSH1 0x01 000013ba: PUSH1 0xa0 000013bc: SHL 000013bd: SUB 000013be: PUSH2 0x13df 000013c1: PUSH2 0x13d2 000013c4: DUP5 000013c5: PUSH0 000013c6: MSTORE 000013c7: PUSH1 0x03 000013c9: PUSH1 0x20 000013cb: MSTORE 000013cc: PUSH1 0x40 000013ce: PUSH0 000013cf: KECCAK256 000013d0: SWAP1 000013d1: JUMP 000013d2: JUMPDEST 000013d3: SLOAD 000013d4: PUSH1 0x01 000013d6: PUSH1 0x01 000013d8: PUSH1 0xa0 000013da: SHL 000013db: SUB 000013dc: AND 000013dd: SWAP1 000013de: JUMP 000013df: JUMPDEST 000013e0: PUSH2 0x1418 000013e3: PUSH2 0x13eb 000013e6: DUP6 000013e7: PUSH2 0x3651 000013ea: JUMP 000013eb: JUMPDEST 000013ec: SWAP6 000013ed: DUP4 000013ee: PUSH1 0x40 000013f0: MLOAD 000013f1: SWAP5 000013f2: DUP6 000013f3: SWAP5 000013f4: AND 000013f5: SWAP9 000013f6: AND 000013f7: SWAP7 000013f8: CALLER 000013f9: DUP5 000013fa: PUSH1 0x40 000013fc: SWAP2 000013fd: SWAP5 000013fe: SWAP4 000013ff: SWAP3 00001400: PUSH1 0x01 00001402: PUSH1 0x01 00001404: PUSH1 0xa0 00001406: SHL 00001407: SUB 00001408: PUSH1 0x60 0000140a: DUP4 0000140b: ADD 0000140c: SWAP7 0000140d: AND 0000140e: DUP3 0000140f: MSTORE 00001410: PUSH1 0x20 00001412: DUP3 00001413: ADD 00001414: MSTORE 00001415: ADD 00001416: MSTORE 00001417: JUMP 00001418: JUMPDEST 00001419: SUB 0000141a: SWAP1 0000141b: LOG4 0000141c: PUSH1 0x40 0000141e: MLOAD 0000141f: SWAP1 00001420: DUP2 00001421: MSTORE 00001422: SWAP1 00001423: DUP2 00001424: SWAP1 00001425: PUSH1 0x20 00001427: DUP3 00001428: ADD 00001429: SWAP1 0000142a: JUMP 0000142b: JUMPDEST 0000142c: SUB 0000142d: SWAP1 0000142e: LOG1 0000142f: STOP 00001430: JUMPDEST 00001431: PUSH2 0x1450 00001434: PUSH1 0x03 00001436: PUSH2 0x1447 00001439: DUP6 0000143a: PUSH0 0000143b: MSTORE 0000143c: PUSH1 0x0c 0000143e: PUSH1 0x20 00001440: MSTORE 00001441: PUSH1 0x40 00001443: PUSH0 00001444: KECCAK256 00001445: SWAP1 00001446: JUMP 00001447: JUMPDEST 00001448: ADD 00001449: SWAP2 0000144a: DUP3 0000144b: SLOAD 0000144c: PUSH2 0x3458 0000144f: JUMP 00001450: JUMPDEST 00001451: SWAP1 00001452: SSTORE 00001453: PUSH0 00001454: PUSH2 0x125a 00001457: JUMP 00001458: JUMPDEST 00001459: PUSH2 0x14c0 0000145c: PUSH2 0x1486 0000145f: PUSH2 0x1470 00001462: DUP5 00001463: PUSH0 00001464: MSTORE 00001465: PUSH1 0x0c 00001467: PUSH1 0x20 00001469: MSTORE 0000146a: PUSH1 0x40 0000146c: PUSH0 0000146d: KECCAK256 0000146e: SWAP1 0000146f: JUMP 00001470: JUMPDEST 00001471: SLOAD 00001472: PUSH16 0xffffffffffffffffffffffffffffffff 00001483: AND 00001484: SWAP1 00001485: JUMP 00001486: JUMPDEST 00001487: PUSH16 0xffffffffffffffffffffffffffffffff 00001498: PUSH2 0x14b9 0000149b: PUSH1 0x02 0000149d: PUSH2 0x14ae 000014a0: DUP8 000014a1: PUSH0 000014a2: MSTORE 000014a3: PUSH1 0x0c 000014a5: PUSH1 0x20 000014a7: MSTORE 000014a8: PUSH1 0x40 000014aa: PUSH0 000014ab: KECCAK256 000014ac: SWAP1 000014ad: JUMP 000014ae: JUMPDEST 000014af: ADD 000014b0: SLOAD 000014b1: PUSH1 0xa0 000014b3: SHR 000014b4: PUSH1 0xff 000014b6: AND 000014b7: SWAP1 000014b8: JUMP 000014b9: JUMPDEST 000014ba: SWAP2 000014bb: AND 000014bc: PUSH2 0x451b 000014bf: JUMP 000014c0: JUMPDEST 000014c1: PUSH1 0x03 000014c3: PUSH2 0x14d4 000014c6: DUP5 000014c7: PUSH0 000014c8: MSTORE 000014c9: PUSH1 0x0c 000014cb: PUSH1 0x20 000014cd: MSTORE 000014ce: PUSH1 0x40 000014d0: PUSH0 000014d1: KECCAK256 000014d2: SWAP1 000014d3: JUMP 000014d4: JUMPDEST 000014d5: ADD 000014d6: SSTORE 000014d7: PUSH2 0x125c 000014da: JUMP 000014db: JUMPDEST 000014dc: POP 000014dd: PUSH2 0x14ec 000014e0: PUSH2 0x14e8 000014e3: DUP3 000014e4: PUSH2 0x4d74 000014e7: JUMP 000014e8: JUMPDEST 000014e9: ISZERO 000014ea: SWAP1 000014eb: JUMP 000014ec: JUMPDEST 000014ed: PUSH2 0x1214 000014f0: JUMP 000014f1: JUMPDEST 000014f2: PUSH32 0x7354d5f100000000000000000000000000000000000000000000000000000000 00001513: PUSH0 00001514: MSTORE 00001515: PUSH1 0x04 00001517: MSTORE 00001518: PUSH1 0x24 0000151a: PUSH0 0000151b: REVERT 0000151c: JUMPDEST 0000151d: CALLVALUE 0000151e: PUSH2 0x042e 00001521: JUMPI 00001522: PUSH1 0x20 00001524: PUSH1 0x03 00001526: NOT 00001527: CALLDATASIZE 00001528: ADD 00001529: SLT 0000152a: PUSH2 0x042e 0000152d: JUMPI 0000152e: PUSH1 0x01 00001530: PUSH1 0x01 00001532: PUSH1 0xa0 00001534: SHL 00001535: SUB 00001536: PUSH1 0x04 00001538: CALLDATALOAD 00001539: PUSH2 0x1541 0000153c: DUP2 0000153d: PUSH2 0x0777 00001540: JUMP 00001541: JUMPDEST 00001542: AND 00001543: PUSH0 00001544: MSTORE 00001545: PUSH1 0x07 00001547: PUSH1 0x20 00001549: MSTORE 0000154a: PUSH1 0x20 0000154c: PUSH1 0x40 0000154e: PUSH0 0000154f: KECCAK256 00001550: SLOAD 00001551: PUSH1 0x40 00001553: MLOAD 00001554: SWAP1 00001555: DUP2 00001556: MSTORE 00001557: RETURN 00001558: JUMPDEST 00001559: CALLVALUE 0000155a: PUSH2 0x042e 0000155d: JUMPI 0000155e: PUSH1 0x20 00001560: PUSH1 0x03 00001562: NOT 00001563: CALLDATASIZE 00001564: ADD 00001565: SLT 00001566: PUSH2 0x042e 00001569: JUMPI 0000156a: PUSH1 0x20 0000156c: PUSH2 0x06f8 0000156f: PUSH1 0x04 00001571: CALLDATALOAD 00001572: PUSH2 0x3605 00001575: JUMP 00001576: JUMPDEST 00001577: PUSH1 0x03 00001579: NOT 0000157a: PUSH1 0x40 0000157c: SWAP2 0000157d: ADD 0000157e: SLT 0000157f: PUSH2 0x042e 00001582: JUMPI 00001583: PUSH1 0x04 00001585: CALLDATALOAD 00001586: PUSH2 0x158e 00001589: DUP2 0000158a: PUSH2 0x0777 0000158d: JUMP 0000158e: JUMPDEST 0000158f: SWAP1 00001590: PUSH1 0x24 00001592: CALLDATALOAD 00001593: PUSH2 0x05ad 00001596: DUP2 00001597: PUSH2 0x0777 0000159a: JUMP 0000159b: JUMPDEST 0000159c: CALLVALUE 0000159d: PUSH2 0x042e 000015a0: JUMPI 000015a1: PUSH2 0x15a9 000015a4: CALLDATASIZE 000015a5: PUSH2 0x1576 000015a8: JUMP 000015a9: JUMPDEST 000015aa: PUSH1 0x01 000015ac: PUSH1 0x01 000015ae: PUSH1 0xa0 000015b0: SHL 000015b1: SUB 000015b2: PUSH0 000015b3: SLOAD 000015b4: AND 000015b5: CALLER 000015b6: DUP2 000015b7: SUB 000015b8: PUSH2 0x16fa 000015bb: JUMPI 000015bc: POP 000015bd: PUSH1 0x40 000015bf: MLOAD 000015c0: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 000015e1: DUP2 000015e2: MSTORE 000015e3: ADDRESS 000015e4: PUSH1 0x04 000015e6: DUP3 000015e7: ADD 000015e8: MSTORE 000015e9: PUSH1 0x01 000015eb: PUSH1 0x01 000015ed: PUSH1 0xa0 000015ef: SHL 000015f0: SUB 000015f1: DUP4 000015f2: AND 000015f3: SWAP3 000015f4: SWAP1 000015f5: PUSH1 0x20 000015f7: DUP2 000015f8: PUSH1 0x24 000015fa: DUP2 000015fb: DUP8 000015fc: GAS 000015fd: STATICCALL 000015fe: DUP1 000015ff: ISZERO 00001600: PUSH2 0x16f5 00001603: JUMPI 00001604: PUSH2 0x1631 00001607: SWAP2 00001608: PUSH0 00001609: SWAP2 0000160a: PUSH2 0x16c6 0000160d: JUMPI 0000160e: JUMPDEST 0000160f: POP 00001610: PUSH2 0x162a 00001613: DUP4 00001614: PUSH1 0x01 00001616: PUSH1 0x01 00001618: PUSH1 0xa0 0000161a: SHL 0000161b: SUB 0000161c: AND 0000161d: PUSH0 0000161e: MSTORE 0000161f: PUSH1 0x07 00001621: PUSH1 0x20 00001623: MSTORE 00001624: PUSH1 0x40 00001626: PUSH0 00001627: KECCAK256 00001628: SWAP1 00001629: JUMP 0000162a: JUMPDEST 0000162b: SLOAD 0000162c: SWAP1 0000162d: PUSH2 0x3248 00001630: JUMP 00001631: JUMPDEST 00001632: SWAP1 00001633: DUP2 00001634: ISZERO 00001635: PUSH2 0x1691 00001638: JUMPI 00001639: DUP2 0000163a: PUSH2 0x1668 0000163d: PUSH32 0x21252411d5a999da4bc6a490f7143b61ba690edceb4577a2800eab8dfbb1e92c 0000165e: SWAP4 0000165f: DUP6 00001660: PUSH2 0x168c 00001663: SWAP5 00001664: PUSH2 0x41cd 00001667: JUMP 00001668: JUMPDEST 00001669: PUSH1 0x40 0000166b: MLOAD 0000166c: SWAP2 0000166d: DUP3 0000166e: SWAP2 0000166f: CALLER 00001670: SWAP6 00001671: DUP4 00001672: PUSH1 0x20 00001674: SWAP1 00001675: SWAP4 00001676: SWAP3 00001677: SWAP2 00001678: SWAP4 00001679: PUSH1 0x01 0000167b: PUSH1 0x01 0000167d: PUSH1 0xa0 0000167f: SHL 00001680: SUB 00001681: PUSH1 0x40 00001683: DUP3 00001684: ADD 00001685: SWAP6 00001686: AND 00001687: DUP2 00001688: MSTORE 00001689: ADD 0000168a: MSTORE 0000168b: JUMP 0000168c: JUMPDEST 0000168d: SUB 0000168e: SWAP1 0000168f: LOG3 00001690: STOP 00001691: JUMPDEST 00001692: PUSH32 0xf4c3afcf00000000000000000000000000000000000000000000000000000000 000016b3: PUSH0 000016b4: MSTORE 000016b5: PUSH1 0x01 000016b7: PUSH1 0x01 000016b9: PUSH1 0xa0 000016bb: SHL 000016bc: SUB 000016bd: DUP5 000016be: AND 000016bf: PUSH1 0x04 000016c1: MSTORE 000016c2: PUSH1 0x24 000016c4: PUSH0 000016c5: REVERT 000016c6: JUMPDEST 000016c7: PUSH2 0x16e8 000016ca: SWAP2 000016cb: POP 000016cc: PUSH1 0x20 000016ce: RETURNDATASIZE 000016cf: PUSH1 0x20 000016d1: GT 000016d2: PUSH2 0x16ee 000016d5: JUMPI 000016d6: JUMPDEST 000016d7: PUSH2 0x16e0 000016da: DUP2 000016db: DUP4 000016dc: PUSH2 0x2388 000016df: JUMP 000016e0: JUMPDEST 000016e1: DUP2 000016e2: ADD 000016e3: SWAP1 000016e4: PUSH2 0x31cf 000016e7: JUMP 000016e8: JUMPDEST 000016e9: PUSH0 000016ea: PUSH2 0x160e 000016ed: JUMP 000016ee: JUMPDEST 000016ef: POP 000016f0: RETURNDATASIZE 000016f1: PUSH2 0x16d6 000016f4: JUMP 000016f5: JUMPDEST 000016f6: PUSH2 0x31de 000016f9: JUMP 000016fa: JUMPDEST 000016fb: PUSH32 0xc6cce6a400000000000000000000000000000000000000000000000000000000 0000171c: PUSH0 0000171d: MSTORE 0000171e: PUSH1 0x04 00001720: MSTORE 00001721: CALLER 00001722: PUSH1 0x24 00001724: MSTORE 00001725: PUSH1 0x44 00001727: PUSH0 00001728: REVERT 00001729: JUMPDEST 0000172a: CALLVALUE 0000172b: PUSH2 0x042e 0000172e: JUMPI 0000172f: PUSH1 0x20 00001731: PUSH1 0x03 00001733: NOT 00001734: CALLDATASIZE 00001735: ADD 00001736: SLT 00001737: PUSH2 0x042e 0000173a: JUMPI 0000173b: PUSH1 0x04 0000173d: CALLDATALOAD 0000173e: DUP1 0000173f: PUSH0 00001740: MSTORE 00001741: PUSH1 0x0c 00001743: PUSH1 0x20 00001745: MSTORE 00001746: PUSH1 0xff 00001748: PUSH1 0x01 0000174a: PUSH1 0x40 0000174c: PUSH0 0000174d: KECCAK256 0000174e: ADD 0000174f: SLOAD 00001750: PUSH1 0xc8 00001752: SHR 00001753: AND 00001754: ISZERO 00001755: PUSH2 0x074c 00001758: JUMPI 00001759: PUSH0 0000175a: MSTORE 0000175b: PUSH1 0x03 0000175d: PUSH1 0x20 0000175f: MSTORE 00001760: PUSH2 0x0616 00001763: PUSH1 0x01 00001765: PUSH1 0x01 00001767: PUSH1 0xa0 00001769: SHL 0000176a: SUB 0000176b: PUSH1 0x40 0000176d: PUSH0 0000176e: KECCAK256 0000176f: SLOAD 00001770: AND 00001771: PUSH1 0x40 00001773: MLOAD 00001774: SWAP2 00001775: DUP3 00001776: SWAP2 00001777: DUP3 00001778: SWAP2 00001779: SWAP1 0000177a: SWAP2 0000177b: PUSH1 0x01 0000177d: PUSH1 0x01 0000177f: PUSH1 0xa0 00001781: SHL 00001782: SUB 00001783: PUSH1 0x20 00001785: DUP3 00001786: ADD 00001787: SWAP4 00001788: AND 00001789: SWAP1 0000178a: MSTORE 0000178b: JUMP 0000178c: JUMPDEST 0000178d: CALLVALUE 0000178e: PUSH2 0x042e 00001791: JUMPI 00001792: PUSH1 0x20 00001794: PUSH1 0x03 00001796: NOT 00001797: CALLDATASIZE 00001798: ADD 00001799: SLT 0000179a: PUSH2 0x042e 0000179d: JUMPI 0000179e: PUSH1 0x01 000017a0: PUSH1 0x01 000017a2: PUSH1 0xa0 000017a4: SHL 000017a5: SUB 000017a6: PUSH1 0x04 000017a8: CALLDATALOAD 000017a9: PUSH2 0x17b1 000017ac: DUP2 000017ad: PUSH2 0x0777 000017b0: JUMP 000017b1: JUMPDEST 000017b2: AND 000017b3: DUP1 000017b4: ISZERO 000017b5: PUSH2 0x17ce 000017b8: JUMPI 000017b9: PUSH0 000017ba: MSTORE 000017bb: PUSH1 0x04 000017bd: PUSH1 0x20 000017bf: MSTORE 000017c0: PUSH1 0x20 000017c2: PUSH1 0x40 000017c4: PUSH0 000017c5: KECCAK256 000017c6: SLOAD 000017c7: PUSH1 0x40 000017c9: MLOAD 000017ca: SWAP1 000017cb: DUP2 000017cc: MSTORE 000017cd: RETURN 000017ce: JUMPDEST 000017cf: PUSH32 0x89c62b6400000000000000000000000000000000000000000000000000000000 000017f0: PUSH0 000017f1: MSTORE 000017f2: PUSH0 000017f3: PUSH1 0x04 000017f5: MSTORE 000017f6: PUSH1 0x24 000017f8: PUSH0 000017f9: REVERT 000017fa: JUMPDEST 000017fb: CALLVALUE 000017fc: PUSH2 0x042e 000017ff: JUMPI 00001800: PUSH1 0x20 00001802: PUSH1 0x03 00001804: NOT 00001805: CALLDATASIZE 00001806: ADD 00001807: SLT 00001808: PUSH2 0x042e 0000180b: JUMPI 0000180c: PUSH1 0x04 0000180e: CALLDATALOAD 0000180f: PUSH2 0x1817 00001812: DUP2 00001813: PUSH2 0x0777 00001816: JUMP 00001817: JUMPDEST 00001818: PUSH0 00001819: SLOAD 0000181a: PUSH1 0x01 0000181c: PUSH1 0x01 0000181e: PUSH1 0xa0 00001820: SHL 00001821: SUB 00001822: DUP2 00001823: AND 00001824: CALLER 00001825: DUP2 00001826: SUB 00001827: PUSH2 0x16fa 0000182a: JUMPI 0000182b: POP 0000182c: PUSH1 0x01 0000182e: PUSH1 0x01 00001830: PUSH1 0xa0 00001832: SHL 00001833: SUB 00001834: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00001855: SWAP3 00001856: AND 00001857: SWAP2 00001858: DUP3 00001859: SWAP2 0000185a: AND 0000185b: OR 0000185c: PUSH0 0000185d: SSTORE 0000185e: CALLER 0000185f: PUSH32 0xbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf80 00001880: PUSH0 00001881: DUP1 00001882: LOG3 00001883: STOP 00001884: JUMPDEST 00001885: CALLVALUE 00001886: PUSH2 0x042e 00001889: JUMPI 0000188a: PUSH1 0x20 0000188c: PUSH1 0x03 0000188e: NOT 0000188f: CALLDATASIZE 00001890: ADD 00001891: SLT 00001892: PUSH2 0x042e 00001895: JUMPI 00001896: PUSH1 0x04 00001898: CALLDATALOAD 00001899: PUSH2 0x18a1 0000189c: DUP2 0000189d: PUSH2 0x0777 000018a0: JUMP 000018a1: JUMPDEST 000018a2: PUSH1 0x01 000018a4: PUSH1 0x01 000018a6: PUSH1 0xa0 000018a8: SHL 000018a9: SUB 000018aa: PUSH0 000018ab: SLOAD 000018ac: AND 000018ad: CALLER 000018ae: DUP2 000018af: SUB 000018b0: PUSH2 0x16fa 000018b3: JUMPI 000018b4: POP 000018b5: PUSH1 0x01 000018b7: PUSH1 0x01 000018b9: PUSH1 0xa0 000018bb: SHL 000018bc: SUB 000018bd: PUSH1 0x09 000018bf: SLOAD 000018c0: SWAP2 000018c1: AND 000018c2: DUP1 000018c3: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 000018e4: DUP4 000018e5: AND 000018e6: OR 000018e7: PUSH1 0x09 000018e9: SSTORE 000018ea: PUSH1 0x01 000018ec: PUSH1 0x01 000018ee: PUSH1 0xa0 000018f0: SHL 000018f1: SUB 000018f2: PUSH1 0x40 000018f4: MLOAD 000018f5: SWAP3 000018f6: AND 000018f7: DUP3 000018f8: MSTORE 000018f9: PUSH1 0x20 000018fb: DUP3 000018fc: ADD 000018fd: MSTORE 000018fe: PUSH32 0xa2548bd4b805e907c1558a47b5858324fe8bb4a2e1ddfca647eecbf65610eebc 0000191f: PUSH1 0x40 00001921: CALLER 00001922: SWAP3 00001923: LOG2 00001924: PUSH32 0x6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c 00001945: PUSH2 0x142b 00001948: PUSH2 0x1952 0000194b: PUSH1 0x08 0000194d: SLOAD 0000194e: PUSH2 0x3216 00001951: JUMP 00001952: JUMPDEST 00001953: PUSH1 0x40 00001955: MLOAD 00001956: SWAP2 00001957: DUP3 00001958: SWAP2 00001959: DUP3 0000195a: SWAP2 0000195b: SWAP1 0000195c: PUSH1 0x20 0000195e: PUSH1 0x40 00001960: DUP5 00001961: ADD 00001962: SWAP4 00001963: PUSH1 0x01 00001965: DUP2 00001966: MSTORE 00001967: ADD 00001968: MSTORE 00001969: JUMP 0000196a: JUMPDEST 0000196b: CALLVALUE 0000196c: PUSH2 0x042e 0000196f: JUMPI 00001970: PUSH1 0x20 00001972: PUSH1 0x03 00001974: NOT 00001975: CALLDATASIZE 00001976: ADD 00001977: SLT 00001978: PUSH2 0x042e 0000197b: JUMPI 0000197c: PUSH1 0x04 0000197e: CALLDATALOAD 0000197f: DUP1 00001980: PUSH0 00001981: MSTORE 00001982: PUSH1 0x0c 00001984: PUSH1 0x20 00001986: MSTORE 00001987: PUSH1 0xff 00001989: PUSH1 0x01 0000198b: PUSH1 0x40 0000198d: PUSH0 0000198e: KECCAK256 0000198f: ADD 00001990: SLOAD 00001991: PUSH1 0xc8 00001993: SHR 00001994: AND 00001995: ISZERO 00001996: PUSH2 0x074c 00001999: JUMPI 0000199a: PUSH2 0x0741 0000199d: SWAP1 0000199e: PUSH2 0x4227 000019a1: JUMP 000019a2: JUMPDEST 000019a3: CALLVALUE 000019a4: PUSH2 0x042e 000019a7: JUMPI 000019a8: PUSH1 0x20 000019aa: PUSH1 0x03 000019ac: NOT 000019ad: CALLDATASIZE 000019ae: ADD 000019af: SLT 000019b0: PUSH2 0x042e 000019b3: JUMPI 000019b4: PUSH1 0x04 000019b6: CALLDATALOAD 000019b7: DUP1 000019b8: PUSH0 000019b9: MSTORE 000019ba: PUSH1 0x0c 000019bc: PUSH1 0x20 000019be: MSTORE 000019bf: PUSH1 0xff 000019c1: PUSH1 0x01 000019c3: PUSH1 0x40 000019c5: PUSH0 000019c6: KECCAK256 000019c7: ADD 000019c8: SLOAD 000019c9: PUSH1 0xc8 000019cb: SHR 000019cc: AND 000019cd: ISZERO 000019ce: PUSH2 0x074c 000019d1: JUMPI 000019d2: PUSH0 000019d3: MSTORE 000019d4: PUSH1 0x0c 000019d6: PUSH1 0x20 000019d8: MSTORE 000019d9: PUSH2 0x0616 000019dc: PUSH1 0x40 000019de: PUSH0 000019df: KECCAK256 000019e0: SLOAD 000019e1: PUSH1 0x80 000019e3: SHR 000019e4: PUSH1 0x40 000019e6: MLOAD 000019e7: SWAP2 000019e8: DUP3 000019e9: SWAP2 000019ea: DUP3 000019eb: SWAP2 000019ec: SWAP1 000019ed: SWAP2 000019ee: PUSH16 0xffffffffffffffffffffffffffffffff 000019ff: PUSH1 0x20 00001a01: DUP3 00001a02: ADD 00001a03: SWAP4 00001a04: AND 00001a05: SWAP1 00001a06: MSTORE 00001a07: JUMP 00001a08: JUMPDEST 00001a09: PUSH1 0x40 00001a0b: PUSH1 0x03 00001a0d: NOT 00001a0e: CALLDATASIZE 00001a0f: ADD 00001a10: SLT 00001a11: PUSH2 0x042e 00001a14: JUMPI 00001a15: PUSH1 0x04 00001a17: CALLDATALOAD 00001a18: PUSH1 0x24 00001a1a: CALLDATALOAD 00001a1b: PUSH2 0x1a23 00001a1e: DUP2 00001a1f: PUSH2 0x0d16 00001a22: JUMP 00001a23: JUMPDEST 00001a24: PUSH2 0x1a2b 00001a27: PUSH2 0x3692 00001a2a: JUMP 00001a2b: JUMPDEST 00001a2c: DUP2 00001a2d: PUSH0 00001a2e: MSTORE 00001a2f: PUSH1 0x0c 00001a31: PUSH1 0x20 00001a33: MSTORE 00001a34: PUSH1 0xff 00001a36: PUSH1 0x01 00001a38: PUSH1 0x40 00001a3a: PUSH0 00001a3b: KECCAK256 00001a3c: ADD 00001a3d: SLOAD 00001a3e: PUSH1 0xc8 00001a40: SHR 00001a41: AND 00001a42: ISZERO 00001a43: PUSH2 0x0fbc 00001a46: JUMPI 00001a47: DUP2 00001a48: PUSH0 00001a49: MSTORE 00001a4a: PUSH1 0x0c 00001a4c: PUSH1 0x20 00001a4e: MSTORE 00001a4f: PUSH1 0x01 00001a51: PUSH1 0x01 00001a53: PUSH1 0xa0 00001a55: SHL 00001a56: SUB 00001a57: PUSH1 0x01 00001a59: PUSH1 0x40 00001a5b: PUSH0 00001a5c: KECCAK256 00001a5d: ADD 00001a5e: SLOAD 00001a5f: AND 00001a60: CALLER 00001a61: SUB 00001a62: PUSH2 0x0f60 00001a65: JUMPI 00001a66: DUP2 00001a67: PUSH2 0x0999 00001a6a: PUSH1 0x20 00001a6c: SWAP3 00001a6d: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 00001a8e: SWAP5 00001a8f: PUSH2 0x3750 00001a92: JUMP 00001a93: JUMPDEST 00001a94: CALLVALUE 00001a95: PUSH2 0x042e 00001a98: JUMPI 00001a99: PUSH1 0x20 00001a9b: PUSH1 0x03 00001a9d: NOT 00001a9e: CALLDATASIZE 00001a9f: ADD 00001aa0: SLT 00001aa1: PUSH2 0x042e 00001aa4: JUMPI 00001aa5: PUSH1 0x04 00001aa7: CALLDATALOAD 00001aa8: PUSH0 00001aa9: PUSH2 0x0120 00001aac: PUSH1 0x40 00001aae: MLOAD 00001aaf: PUSH2 0x1ab7 00001ab2: DUP2 00001ab3: PUSH2 0x234a 00001ab6: JUMP 00001ab7: JUMPDEST 00001ab8: DUP3 00001ab9: DUP2 00001aba: MSTORE 00001abb: DUP3 00001abc: PUSH1 0x20 00001abe: DUP3 00001abf: ADD 00001ac0: MSTORE 00001ac1: DUP3 00001ac2: PUSH1 0x40 00001ac4: DUP3 00001ac5: ADD 00001ac6: MSTORE 00001ac7: DUP3 00001ac8: PUSH1 0x60 00001aca: DUP3 00001acb: ADD 00001acc: MSTORE 00001acd: DUP3 00001ace: PUSH1 0x80 00001ad0: DUP3 00001ad1: ADD 00001ad2: MSTORE 00001ad3: DUP3 00001ad4: PUSH1 0xa0 00001ad6: DUP3 00001ad7: ADD 00001ad8: MSTORE 00001ad9: DUP3 00001ada: PUSH1 0xc0 00001adc: DUP3 00001add: ADD 00001ade: MSTORE 00001adf: DUP3 00001ae0: PUSH1 0xe0 00001ae2: DUP3 00001ae3: ADD 00001ae4: MSTORE 00001ae5: DUP3 00001ae6: PUSH2 0x0100 00001ae9: DUP3 00001aea: ADD 00001aeb: MSTORE 00001aec: ADD 00001aed: MSTORE 00001aee: DUP1 00001aef: PUSH0 00001af0: MSTORE 00001af1: PUSH1 0x0c 00001af3: PUSH1 0x20 00001af5: MSTORE 00001af6: PUSH1 0xff 00001af8: PUSH1 0x01 00001afa: PUSH1 0x40 00001afc: PUSH0 00001afd: KECCAK256 00001afe: ADD 00001aff: SLOAD 00001b00: PUSH1 0xc8 00001b02: SHR 00001b03: AND 00001b04: ISZERO 00001b05: PUSH2 0x074c 00001b08: JUMPI 00001b09: PUSH0 00001b0a: MSTORE 00001b0b: PUSH1 0x0c 00001b0d: PUSH1 0x20 00001b0f: MSTORE 00001b10: PUSH2 0x0616 00001b13: PUSH1 0x40 00001b15: PUSH0 00001b16: KECCAK256 00001b17: PUSH1 0x03 00001b19: PUSH2 0x1b20 00001b1c: PUSH2 0x23c9 00001b1f: JUMP 00001b20: JUMPDEST 00001b21: SWAP2 00001b22: PUSH2 0x1b7a 00001b25: PUSH2 0x1b61 00001b28: DUP3 00001b29: SLOAD 00001b2a: PUSH2 0x1b5b 00001b2d: PUSH2 0x1b45 00001b30: DUP3 00001b31: PUSH16 0xffffffffffffffffffffffffffffffff 00001b42: AND 00001b43: SWAP1 00001b44: JUMP 00001b45: JUMPDEST 00001b46: PUSH16 0xffffffffffffffffffffffffffffffff 00001b57: AND 00001b58: DUP8 00001b59: MSTORE 00001b5a: JUMP 00001b5b: JUMPDEST 00001b5c: PUSH1 0x80 00001b5e: SHR 00001b5f: SWAP1 00001b60: JUMP 00001b61: JUMPDEST 00001b62: PUSH16 0xffffffffffffffffffffffffffffffff 00001b73: AND 00001b74: PUSH1 0x20 00001b76: DUP6 00001b77: ADD 00001b78: MSTORE 00001b79: JUMP 00001b7a: JUMPDEST 00001b7b: PUSH2 0x1bf3 00001b7e: PUSH2 0x1bea 00001b81: PUSH1 0x01 00001b83: DUP4 00001b84: ADD 00001b85: SLOAD 00001b86: PUSH2 0x1ba8 00001b89: PUSH2 0x1b98 00001b8c: DUP3 00001b8d: PUSH1 0x01 00001b8f: PUSH1 0x01 00001b91: PUSH1 0xa0 00001b93: SHL 00001b94: SUB 00001b95: AND 00001b96: SWAP1 00001b97: JUMP 00001b98: JUMPDEST 00001b99: PUSH1 0x01 00001b9b: PUSH1 0x01 00001b9d: PUSH1 0xa0 00001b9f: SHL 00001ba0: SUB 00001ba1: AND 00001ba2: PUSH1 0x40 00001ba4: DUP9 00001ba5: ADD 00001ba6: MSTORE 00001ba7: JUMP 00001ba8: JUMPDEST 00001ba9: PUSH5 0xffffffffff 00001baf: PUSH1 0xa0 00001bb1: DUP3 00001bb2: SWAP1 00001bb3: SHR 00001bb4: AND 00001bb5: PUSH1 0x60 00001bb7: DUP8 00001bb8: ADD 00001bb9: MSTORE 00001bba: PUSH2 0x1bcd 00001bbd: PUSH1 0xc8 00001bbf: DUP3 00001bc0: SWAP1 00001bc1: SHR 00001bc2: PUSH1 0xff 00001bc4: AND 00001bc5: ISZERO 00001bc6: ISZERO 00001bc7: PUSH1 0x80 00001bc9: DUP9 00001bca: ADD 00001bcb: MSTORE 00001bcc: JUMP 00001bcd: JUMPDEST 00001bce: PUSH2 0x1be1 00001bd1: PUSH1 0xd0 00001bd3: DUP3 00001bd4: SWAP1 00001bd5: SHR 00001bd6: PUSH1 0xff 00001bd8: AND 00001bd9: ISZERO 00001bda: ISZERO 00001bdb: PUSH1 0xa0 00001bdd: DUP9 00001bde: ADD 00001bdf: MSTORE 00001be0: JUMP 00001be1: JUMPDEST 00001be2: PUSH1 0xd8 00001be4: SHR 00001be5: PUSH1 0xff 00001be7: AND 00001be8: SWAP1 00001be9: JUMP 00001bea: JUMPDEST 00001beb: ISZERO 00001bec: ISZERO 00001bed: PUSH1 0xc0 00001bef: DUP6 00001bf0: ADD 00001bf1: MSTORE 00001bf2: JUMP 00001bf3: JUMPDEST 00001bf4: PUSH2 0x1c35 00001bf7: PUSH2 0x1c2a 00001bfa: PUSH1 0x02 00001bfc: DUP4 00001bfd: ADD 00001bfe: SLOAD 00001bff: PUSH2 0x1c21 00001c02: PUSH2 0x1c11 00001c05: DUP3 00001c06: PUSH1 0x01 00001c08: PUSH1 0x01 00001c0a: PUSH1 0xa0 00001c0c: SHL 00001c0d: SUB 00001c0e: AND 00001c0f: SWAP1 00001c10: JUMP 00001c11: JUMPDEST 00001c12: PUSH1 0x01 00001c14: PUSH1 0x01 00001c16: PUSH1 0xa0 00001c18: SHL 00001c19: SUB 00001c1a: AND 00001c1b: PUSH1 0xe0 00001c1d: DUP9 00001c1e: ADD 00001c1f: MSTORE 00001c20: JUMP 00001c21: JUMPDEST 00001c22: PUSH1 0xa0 00001c24: SHR 00001c25: PUSH1 0xff 00001c27: AND 00001c28: SWAP1 00001c29: JUMP 00001c2a: JUMPDEST 00001c2b: PUSH1 0xff 00001c2d: AND 00001c2e: PUSH2 0x0100 00001c31: DUP6 00001c32: ADD 00001c33: MSTORE 00001c34: JUMP 00001c35: JUMPDEST 00001c36: ADD 00001c37: SLOAD 00001c38: PUSH2 0x0120 00001c3b: DUP3 00001c3c: ADD 00001c3d: MSTORE 00001c3e: PUSH1 0x40 00001c40: MLOAD 00001c41: SWAP2 00001c42: DUP3 00001c43: SWAP2 00001c44: DUP3 00001c45: DUP2 00001c46: MLOAD 00001c47: PUSH16 0xffffffffffffffffffffffffffffffff 00001c58: AND 00001c59: DUP2 00001c5a: MSTORE 00001c5b: PUSH2 0x0140 00001c5e: DUP2 00001c5f: ADD 00001c60: SWAP3 00001c61: SWAP2 00001c62: PUSH2 0x0120 00001c65: SWAP1 00001c66: DUP2 00001c67: SWAP1 00001c68: PUSH1 0x20 00001c6a: DUP2 00001c6b: DUP2 00001c6c: ADD 00001c6d: MLOAD 00001c6e: PUSH16 0xffffffffffffffffffffffffffffffff 00001c7f: AND 00001c80: SWAP1 00001c81: DUP6 00001c82: ADD 00001c83: MSTORE 00001c84: PUSH1 0x40 00001c86: DUP2 00001c87: DUP2 00001c88: ADD 00001c89: MLOAD 00001c8a: PUSH1 0x01 00001c8c: PUSH1 0x01 00001c8e: PUSH1 0xa0 00001c90: SHL 00001c91: SUB 00001c92: AND 00001c93: SWAP1 00001c94: DUP6 00001c95: ADD 00001c96: MSTORE 00001c97: PUSH1 0x60 00001c99: DUP2 00001c9a: DUP2 00001c9b: ADD 00001c9c: MLOAD 00001c9d: PUSH5 0xffffffffff 00001ca3: AND 00001ca4: SWAP1 00001ca5: DUP6 00001ca6: ADD 00001ca7: MSTORE 00001ca8: PUSH1 0x80 00001caa: DUP2 00001cab: DUP2 00001cac: ADD 00001cad: MLOAD 00001cae: ISZERO 00001caf: ISZERO 00001cb0: SWAP1 00001cb1: DUP6 00001cb2: ADD 00001cb3: MSTORE 00001cb4: PUSH1 0xa0 00001cb6: DUP2 00001cb7: DUP2 00001cb8: ADD 00001cb9: MLOAD 00001cba: ISZERO 00001cbb: ISZERO 00001cbc: SWAP1 00001cbd: DUP6 00001cbe: ADD 00001cbf: MSTORE 00001cc0: PUSH1 0xc0 00001cc2: DUP2 00001cc3: DUP2 00001cc4: ADD 00001cc5: MLOAD 00001cc6: ISZERO 00001cc7: ISZERO 00001cc8: SWAP1 00001cc9: DUP6 00001cca: ADD 00001ccb: MSTORE 00001ccc: PUSH1 0xe0 00001cce: DUP2 00001ccf: DUP2 00001cd0: ADD 00001cd1: MLOAD 00001cd2: PUSH1 0x01 00001cd4: PUSH1 0x01 00001cd6: PUSH1 0xa0 00001cd8: SHL 00001cd9: SUB 00001cda: AND 00001cdb: SWAP1 00001cdc: DUP6 00001cdd: ADD 00001cde: MSTORE 00001cdf: PUSH2 0x0100 00001ce2: DUP2 00001ce3: DUP2 00001ce4: ADD 00001ce5: MLOAD 00001ce6: PUSH1 0xff 00001ce8: AND 00001ce9: SWAP1 00001cea: DUP6 00001ceb: ADD 00001cec: MSTORE 00001ced: ADD 00001cee: MLOAD 00001cef: SWAP2 00001cf0: ADD 00001cf1: MSTORE 00001cf2: JUMP 00001cf3: JUMPDEST 00001cf4: CALLVALUE 00001cf5: PUSH2 0x042e 00001cf8: JUMPI 00001cf9: PUSH0 00001cfa: PUSH1 0x03 00001cfc: NOT 00001cfd: CALLDATASIZE 00001cfe: ADD 00001cff: SLT 00001d00: PUSH2 0x042e 00001d03: JUMPI 00001d04: PUSH1 0x40 00001d06: MLOAD 00001d07: PUSH0 00001d08: PUSH1 0x02 00001d0a: SLOAD 00001d0b: DUP1 00001d0c: PUSH1 0x01 00001d0e: SHR 00001d0f: SWAP1 00001d10: PUSH1 0x01 00001d12: DUP2 00001d13: AND 00001d14: SWAP1 00001d15: DUP2 00001d16: ISZERO 00001d17: PUSH2 0x1d9e 00001d1a: JUMPI 00001d1b: JUMPDEST 00001d1c: PUSH1 0x20 00001d1e: DUP4 00001d1f: LT 00001d20: DUP3 00001d21: EQ 00001d22: PUSH2 0x06a3 00001d25: JUMPI 00001d26: DUP3 00001d27: DUP6 00001d28: MSTORE 00001d29: PUSH1 0x20 00001d2b: DUP6 00001d2c: ADD 00001d2d: SWAP2 00001d2e: SWAP1 00001d2f: DUP2 00001d30: ISZERO 00001d31: PUSH2 0x066c 00001d34: JUMPI 00001d35: POP 00001d36: PUSH1 0x01 00001d38: EQ 00001d39: PUSH2 0x1d4c 00001d3c: JUMPI 00001d3d: PUSH2 0x0616 00001d40: DUP5 00001d41: PUSH2 0x060a 00001d44: DUP2 00001d45: DUP7 00001d46: SUB 00001d47: DUP3 00001d48: PUSH2 0x2388 00001d4b: JUMP 00001d4c: JUMPDEST 00001d4d: PUSH1 0x02 00001d4f: PUSH0 00001d50: SWAP1 00001d51: DUP2 00001d52: MSTORE 00001d53: SWAP3 00001d54: POP 00001d55: SWAP1 00001d56: PUSH32 0x405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace 00001d77: JUMPDEST 00001d78: DUP2 00001d79: DUP5 00001d7a: LT 00001d7b: PUSH2 0x1d8a 00001d7e: JUMPI 00001d7f: POP 00001d80: POP 00001d81: ADD 00001d82: PUSH2 0x060a 00001d85: DUP3 00001d86: PUSH2 0x05fa 00001d89: JUMP 00001d8a: JUMPDEST 00001d8b: DUP1 00001d8c: SLOAD 00001d8d: DUP5 00001d8e: DUP5 00001d8f: ADD 00001d90: MSTORE 00001d91: PUSH1 0x20 00001d93: SWAP1 00001d94: SWAP4 00001d95: ADD 00001d96: SWAP3 00001d97: PUSH1 0x01 00001d99: ADD 00001d9a: PUSH2 0x1d77 00001d9d: JUMP 00001d9e: JUMPDEST 00001d9f: SWAP2 00001da0: PUSH1 0x7f 00001da2: AND 00001da3: SWAP2 00001da4: PUSH2 0x1d1b 00001da7: JUMP 00001da8: JUMPDEST 00001da9: CALLVALUE 00001daa: PUSH2 0x042e 00001dad: JUMPI 00001dae: PUSH1 0x40 00001db0: PUSH1 0x03 00001db2: NOT 00001db3: CALLDATASIZE 00001db4: ADD 00001db5: SLT 00001db6: PUSH2 0x042e 00001db9: JUMPI 00001dba: PUSH1 0x04 00001dbc: CALLDATALOAD 00001dbd: PUSH2 0x1dc5 00001dc0: DUP2 00001dc1: PUSH2 0x0777 00001dc4: JUMP 00001dc5: JUMPDEST 00001dc6: PUSH1 0x24 00001dc8: CALLDATALOAD 00001dc9: PUSH2 0x1dd1 00001dcc: DUP2 00001dcd: PUSH2 0x111d 00001dd0: JUMP 00001dd1: JUMPDEST 00001dd2: PUSH1 0x01 00001dd4: PUSH1 0x01 00001dd6: PUSH1 0xa0 00001dd8: SHL 00001dd9: SUB 00001dda: DUP3 00001ddb: AND 00001ddc: SWAP2 00001ddd: DUP3 00001dde: ISZERO 00001ddf: PUSH2 0x1e6e 00001de2: JUMPI 00001de3: PUSH2 0x1e08 00001de6: SWAP1 00001de7: CALLER 00001de8: PUSH0 00001de9: MSTORE 00001dea: PUSH1 0x06 00001dec: PUSH1 0x20 00001dee: MSTORE 00001def: PUSH1 0x40 00001df1: PUSH0 00001df2: KECCAK256 00001df3: SWAP1 00001df4: PUSH1 0x01 00001df6: PUSH1 0x01 00001df8: PUSH1 0xa0 00001dfa: SHL 00001dfb: SUB 00001dfc: AND 00001dfd: PUSH0 00001dfe: MSTORE 00001dff: PUSH1 0x20 00001e01: MSTORE 00001e02: PUSH1 0x40 00001e04: PUSH0 00001e05: KECCAK256 00001e06: SWAP1 00001e07: JUMP 00001e08: JUMPDEST 00001e09: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00001e2a: DUP2 00001e2b: SLOAD 00001e2c: AND 00001e2d: PUSH1 0xff 00001e2f: DUP4 00001e30: ISZERO 00001e31: ISZERO 00001e32: AND 00001e33: OR 00001e34: SWAP1 00001e35: SSTORE 00001e36: PUSH32 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31 00001e57: PUSH1 0x40 00001e59: MLOAD 00001e5a: DUP1 00001e5b: PUSH2 0x168c 00001e5e: CALLER 00001e5f: SWAP5 00001e60: DUP3 00001e61: SWAP2 00001e62: SWAP1 00001e63: SWAP2 00001e64: PUSH1 0x20 00001e66: DUP2 00001e67: ADD 00001e68: SWAP3 00001e69: ISZERO 00001e6a: ISZERO 00001e6b: SWAP1 00001e6c: MSTORE 00001e6d: JUMP 00001e6e: JUMPDEST 00001e6f: DUP3 00001e70: PUSH32 0x5b08ba1800000000000000000000000000000000000000000000000000000000 00001e91: PUSH0 00001e92: MSTORE 00001e93: PUSH1 0x04 00001e95: MSTORE 00001e96: PUSH1 0x24 00001e98: PUSH0 00001e99: REVERT 00001e9a: JUMPDEST 00001e9b: CALLVALUE 00001e9c: PUSH2 0x042e 00001e9f: JUMPI 00001ea0: PUSH1 0x20 00001ea2: PUSH1 0x03 00001ea4: NOT 00001ea5: CALLDATASIZE 00001ea6: ADD 00001ea7: SLT 00001ea8: PUSH2 0x042e 00001eab: JUMPI 00001eac: PUSH1 0x04 00001eae: CALLDATALOAD 00001eaf: DUP1 00001eb0: PUSH0 00001eb1: MSTORE 00001eb2: PUSH1 0x0c 00001eb4: PUSH1 0x20 00001eb6: MSTORE 00001eb7: PUSH1 0xff 00001eb9: PUSH1 0x01 00001ebb: PUSH1 0x40 00001ebd: PUSH0 00001ebe: KECCAK256 00001ebf: ADD 00001ec0: SLOAD 00001ec1: PUSH1 0xc8 00001ec3: SHR 00001ec4: AND 00001ec5: ISZERO 00001ec6: PUSH2 0x074c 00001ec9: JUMPI 00001eca: PUSH0 00001ecb: MSTORE 00001ecc: PUSH1 0x0c 00001ece: PUSH1 0x20 00001ed0: MSTORE 00001ed1: PUSH2 0x0616 00001ed4: PUSH1 0xff 00001ed6: PUSH1 0x02 00001ed8: PUSH1 0x40 00001eda: PUSH0 00001edb: KECCAK256 00001edc: ADD 00001edd: SLOAD 00001ede: PUSH1 0xa0 00001ee0: SHR 00001ee1: AND 00001ee2: PUSH1 0x40 00001ee4: MLOAD 00001ee5: SWAP2 00001ee6: DUP3 00001ee7: SWAP2 00001ee8: DUP3 00001ee9: SWAP2 00001eea: SWAP1 00001eeb: SWAP2 00001eec: PUSH1 0xff 00001eee: PUSH1 0x20 00001ef0: DUP3 00001ef1: ADD 00001ef2: SWAP4 00001ef3: AND 00001ef4: SWAP1 00001ef5: MSTORE 00001ef6: JUMP 00001ef7: JUMPDEST 00001ef8: PUSH1 0x40 00001efa: PUSH1 0x03 00001efc: NOT 00001efd: CALLDATASIZE 00001efe: ADD 00001eff: SLT 00001f00: PUSH2 0x042e 00001f03: JUMPI 00001f04: PUSH1 0x04 00001f06: CALLDATALOAD 00001f07: PUSH1 0x24 00001f09: CALLDATALOAD 00001f0a: PUSH2 0x1f12 00001f0d: DUP2 00001f0e: PUSH2 0x0d16 00001f11: JUMP 00001f12: JUMPDEST 00001f13: PUSH2 0x1f1a 00001f16: PUSH2 0x3692 00001f19: JUMP 00001f1a: JUMPDEST 00001f1b: DUP2 00001f1c: PUSH0 00001f1d: MSTORE 00001f1e: PUSH1 0x0c 00001f20: PUSH1 0x20 00001f22: MSTORE 00001f23: PUSH1 0xff 00001f25: PUSH1 0x01 00001f27: PUSH1 0x40 00001f29: PUSH0 00001f2a: KECCAK256 00001f2b: ADD 00001f2c: SLOAD 00001f2d: PUSH1 0xc8 00001f2f: SHR 00001f30: AND 00001f31: ISZERO 00001f32: PUSH2 0x0fbc 00001f35: JUMPI 00001f36: DUP2 00001f37: PUSH0 00001f38: MSTORE 00001f39: PUSH1 0x0c 00001f3b: PUSH1 0x20 00001f3d: MSTORE 00001f3e: PUSH1 0x40 00001f40: PUSH0 00001f41: KECCAK256 00001f42: SLOAD 00001f43: PUSH1 0x80 00001f45: SHR 00001f46: ISZERO 00001f47: PUSH2 0x0f90 00001f4a: JUMPI 00001f4b: DUP2 00001f4c: PUSH0 00001f4d: MSTORE 00001f4e: PUSH1 0x0c 00001f50: PUSH1 0x20 00001f52: MSTORE 00001f53: PUSH1 0x01 00001f55: PUSH1 0x01 00001f57: PUSH1 0xa0 00001f59: SHL 00001f5a: SUB 00001f5b: PUSH1 0x01 00001f5d: PUSH1 0x40 00001f5f: PUSH0 00001f60: KECCAK256 00001f61: ADD 00001f62: SLOAD 00001f63: AND 00001f64: CALLER 00001f65: SUB 00001f66: PUSH2 0x0f60 00001f69: JUMPI 00001f6a: DUP2 00001f6b: DUP1 00001f6c: PUSH32 0xfddf01d0842635e80929251f6862b3baf136a29f2b2fb148968e8b236d5785fe 00001f8d: PUSH1 0x60 00001f8f: PUSH1 0x20 00001f91: SWAP5 00001f92: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 00001fb3: SWAP7 00001fb4: PUSH0 00001fb5: MSTORE 00001fb6: PUSH1 0x0c 00001fb8: DUP7 00001fb9: MSTORE 00001fba: PUSH16 0xffffffffffffffffffffffffffffffff 00001fcb: PUSH1 0x40 00001fcd: PUSH0 00001fce: KECCAK256 00001fcf: SLOAD 00001fd0: PUSH1 0x80 00001fd2: SHR 00001fd3: SWAP2 00001fd4: PUSH2 0x1fdd 00001fd7: DUP2 00001fd8: DUP8 00001fd9: PUSH2 0x4275 00001fdc: JUMP 00001fdd: JUMPDEST 00001fde: PUSH2 0x1fe6 00001fe1: DUP7 00001fe2: PUSH2 0x3651 00001fe5: JUMP 00001fe6: JUMPDEST 00001fe7: SWAP3 00001fe8: PUSH1 0x40 00001fea: MLOAD 00001feb: SWAP4 00001fec: DUP5 00001fed: MSTORE 00001fee: DUP9 00001fef: DUP5 00001ff0: ADD 00001ff1: MSTORE 00001ff2: AND 00001ff3: PUSH1 0x40 00001ff5: DUP3 00001ff6: ADD 00001ff7: MSTORE 00001ff8: LOG2 00001ff9: PUSH1 0x40 00001ffb: MLOAD 00001ffc: SWAP1 00001ffd: DUP2 00001ffe: MSTORE 00001fff: LOG1 00002000: STOP 00002001: JUMPDEST 00002002: CALLVALUE 00002003: PUSH2 0x042e 00002006: JUMPI 00002007: PUSH1 0x20 00002009: PUSH1 0x03 0000200b: NOT 0000200c: CALLDATASIZE 0000200d: ADD 0000200e: SLT 0000200f: PUSH2 0x042e 00002012: JUMPI 00002013: PUSH1 0x04 00002015: CALLDATALOAD 00002016: DUP1 00002017: PUSH0 00002018: MSTORE 00002019: PUSH1 0x0c 0000201b: PUSH1 0x20 0000201d: MSTORE 0000201e: PUSH1 0xff 00002020: PUSH1 0x01 00002022: PUSH1 0x40 00002024: PUSH0 00002025: KECCAK256 00002026: ADD 00002027: SLOAD 00002028: PUSH1 0xc8 0000202a: SHR 0000202b: AND 0000202c: ISZERO 0000202d: PUSH2 0x074c 00002030: JUMPI 00002031: PUSH2 0x2039 00002034: SWAP1 00002035: PUSH2 0x3255 00002038: JUMP 00002039: JUMPDEST 0000203a: PUSH1 0x40 0000203c: MLOAD 0000203d: SWAP1 0000203e: PUSH1 0x20 00002040: DUP3 00002041: ADD 00002042: PUSH1 0x05 00002044: DUP3 00002045: LT 00002046: ISZERO 00002047: PUSH2 0x2052 0000204a: JUMPI 0000204b: DUP3 0000204c: SWAP2 0000204d: DUP3 0000204e: MSTORE 0000204f: SUB 00002050: SWAP1 00002051: RETURN 00002052: JUMPDEST 00002053: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002074: PUSH0 00002075: MSTORE 00002076: PUSH1 0x21 00002078: PUSH1 0x04 0000207a: MSTORE 0000207b: PUSH1 0x24 0000207d: PUSH0 0000207e: REVERT 0000207f: JUMPDEST 00002080: CALLVALUE 00002081: PUSH2 0x042e 00002084: JUMPI 00002085: PUSH1 0x20 00002087: PUSH1 0x03 00002089: NOT 0000208a: CALLDATASIZE 0000208b: ADD 0000208c: SLT 0000208d: PUSH2 0x042e 00002090: JUMPI 00002091: PUSH1 0x04 00002093: CALLDATALOAD 00002094: DUP1 00002095: PUSH0 00002096: MSTORE 00002097: PUSH1 0x0c 00002099: PUSH1 0x20 0000209b: MSTORE 0000209c: PUSH1 0xff 0000209e: PUSH1 0x01 000020a0: PUSH1 0x40 000020a2: PUSH0 000020a3: KECCAK256 000020a4: ADD 000020a5: SLOAD 000020a6: PUSH1 0xc8 000020a8: SHR 000020a9: AND 000020aa: ISZERO 000020ab: PUSH2 0x074c 000020ae: JUMPI 000020af: PUSH0 000020b0: MSTORE 000020b1: PUSH1 0x0c 000020b3: PUSH1 0x20 000020b5: MSTORE 000020b6: PUSH2 0x0616 000020b9: PUSH1 0xff 000020bb: PUSH1 0x01 000020bd: PUSH1 0x40 000020bf: PUSH0 000020c0: KECCAK256 000020c1: ADD 000020c2: SLOAD 000020c3: PUSH1 0xd0 000020c5: SHR 000020c6: AND 000020c7: PUSH1 0x40 000020c9: MLOAD 000020ca: SWAP2 000020cb: DUP3 000020cc: SWAP2 000020cd: DUP3 000020ce: SWAP2 000020cf: SWAP1 000020d0: SWAP2 000020d1: PUSH1 0x20 000020d3: DUP2 000020d4: ADD 000020d5: SWAP3 000020d6: ISZERO 000020d7: ISZERO 000020d8: SWAP1 000020d9: MSTORE 000020da: JUMP 000020db: JUMPDEST 000020dc: CALLVALUE 000020dd: PUSH2 0x042e 000020e0: JUMPI 000020e1: PUSH1 0x40 000020e3: PUSH1 0x03 000020e5: NOT 000020e6: CALLDATASIZE 000020e7: ADD 000020e8: SLT 000020e9: PUSH2 0x042e 000020ec: JUMPI 000020ed: PUSH1 0x04 000020ef: CALLDATALOAD 000020f0: PUSH2 0x20f8 000020f3: DUP2 000020f4: PUSH2 0x0777 000020f7: JUMP 000020f8: JUMPDEST 000020f9: PUSH1 0x24 000020fb: CALLDATALOAD 000020fc: SWAP1 000020fd: PUSH1 0x01 000020ff: PUSH1 0x01 00002101: PUSH1 0xa0 00002103: SHL 00002104: SUB 00002105: PUSH0 00002106: SLOAD 00002107: AND 00002108: CALLER 00002109: DUP2 0000210a: SUB 0000210b: PUSH2 0x16fa 0000210e: JUMPI 0000210f: POP 00002110: PUSH8 0x016345785d8a0000 00002119: DUP3 0000211a: GT 0000211b: PUSH2 0x21ad 0000211e: JUMPI 0000211f: PUSH1 0x01 00002121: PUSH1 0x01 00002123: PUSH1 0xa0 00002125: SHL 00002126: SUB 00002127: AND 00002128: PUSH0 00002129: DUP2 0000212a: DUP2 0000212b: MSTORE 0000212c: PUSH1 0x0a 0000212e: PUSH1 0x20 00002130: MSTORE 00002131: PUSH1 0x40 00002133: SWAP1 00002134: KECCAK256 00002135: DUP1 00002136: SLOAD 00002137: SWAP2 00002138: SWAP3 00002139: PUSH32 0x371789a3d97098f3070492613273a065a7e8a19e009fd1ae92a4b4d4c71ed62d 0000215a: SWAP2 0000215b: PUSH2 0x217b 0000215e: SWAP2 0000215f: SWAP1 00002160: DUP2 00002161: SWAP1 00002162: SSTORE 00002163: PUSH1 0x40 00002165: DUP1 00002166: MLOAD 00002167: SWAP5 00002168: DUP6 00002169: MSTORE 0000216a: PUSH1 0x20 0000216c: DUP6 0000216d: ADD 0000216e: SWAP2 0000216f: SWAP1 00002170: SWAP2 00002171: MSTORE 00002172: CALLER 00002173: SWAP4 00002174: SWAP2 00002175: DUP3 00002176: SWAP2 00002177: DUP3 00002178: ADD 00002179: SWAP1 0000217a: JUMP 0000217b: JUMPDEST 0000217c: SUB 0000217d: SWAP1 0000217e: LOG3 0000217f: PUSH32 0x6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c 000021a0: PUSH2 0x142b 000021a3: PUSH2 0x1952 000021a6: PUSH1 0x08 000021a8: SLOAD 000021a9: PUSH2 0x3216 000021ac: JUMP 000021ad: JUMPDEST 000021ae: POP 000021af: PUSH32 0x3455317200000000000000000000000000000000000000000000000000000000 000021d0: PUSH0 000021d1: MSTORE 000021d2: PUSH1 0x04 000021d4: MSTORE 000021d5: PUSH8 0x016345785d8a0000 000021de: PUSH1 0x24 000021e0: MSTORE 000021e1: PUSH1 0x44 000021e3: PUSH0 000021e4: REVERT 000021e5: JUMPDEST 000021e6: PUSH1 0x80 000021e8: PUSH1 0x03 000021ea: NOT 000021eb: CALLDATASIZE 000021ec: ADD 000021ed: SLT 000021ee: PUSH2 0x042e 000021f1: JUMPI 000021f2: PUSH1 0x04 000021f4: CALLDATALOAD 000021f5: PUSH1 0x24 000021f7: CALLDATALOAD 000021f8: PUSH2 0x2200 000021fb: DUP2 000021fc: PUSH2 0x0d16 000021ff: JUMP 00002200: JUMPDEST 00002201: PUSH1 0x44 00002203: CALLDATALOAD 00002204: PUSH2 0x220c 00002207: DUP2 00002208: PUSH2 0x0777 0000220b: JUMP 0000220c: JUMPDEST 0000220d: PUSH1 0x64 0000220f: CALLDATALOAD 00002210: SWAP1 00002211: PUSH2 0x2219 00002214: DUP3 00002215: PUSH2 0x0777 00002218: JUMP 00002219: JUMPDEST 0000221a: PUSH2 0x2221 0000221d: PUSH2 0x3692 00002220: JUMP 00002221: JUMPDEST 00002222: DUP4 00002223: PUSH0 00002224: MSTORE 00002225: PUSH1 0x0c 00002227: PUSH1 0x20 00002229: MSTORE 0000222a: PUSH1 0xff 0000222c: PUSH1 0x01 0000222e: PUSH1 0x40 00002230: PUSH0 00002231: KECCAK256 00002232: ADD 00002233: SLOAD 00002234: PUSH1 0xc8 00002236: SHR 00002237: AND 00002238: ISZERO 00002239: PUSH2 0x22b5 0000223c: JUMPI 0000223d: DUP4 0000223e: PUSH0 0000223f: MSTORE 00002240: PUSH1 0x0c 00002242: PUSH1 0x20 00002244: MSTORE 00002245: PUSH1 0xff 00002247: PUSH1 0x01 00002249: PUSH1 0x40 0000224b: PUSH0 0000224c: KECCAK256 0000224d: ADD 0000224e: SLOAD 0000224f: PUSH1 0xd8 00002251: SHR 00002252: AND 00002253: PUSH2 0x2289 00002256: JUMPI 00002257: PUSH1 0x20 00002259: SWAP3 0000225a: PUSH2 0x0de6 0000225d: DUP6 0000225e: SWAP4 0000225f: PUSH2 0x0999 00002262: SWAP4 00002263: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 00002284: SWAP8 00002285: PUSH2 0x43a4 00002288: JUMP 00002289: JUMPDEST 0000228a: DUP4 0000228b: PUSH32 0x7354d5f100000000000000000000000000000000000000000000000000000000 000022ac: PUSH0 000022ad: MSTORE 000022ae: PUSH1 0x04 000022b0: MSTORE 000022b1: PUSH1 0x24 000022b3: PUSH0 000022b4: REVERT 000022b5: JUMPDEST 000022b6: DUP4 000022b7: PUSH32 0xe21c143100000000000000000000000000000000000000000000000000000000 000022d8: PUSH0 000022d9: MSTORE 000022da: PUSH1 0x04 000022dc: MSTORE 000022dd: PUSH1 0x24 000022df: PUSH0 000022e0: REVERT 000022e1: JUMPDEST 000022e2: CALLVALUE 000022e3: PUSH2 0x042e 000022e6: JUMPI 000022e7: PUSH1 0x20 000022e9: PUSH1 0x03 000022eb: NOT 000022ec: CALLDATASIZE 000022ed: ADD 000022ee: SLT 000022ef: PUSH2 0x042e 000022f2: JUMPI 000022f3: PUSH1 0x01 000022f5: PUSH1 0x01 000022f7: PUSH1 0xa0 000022f9: SHL 000022fa: SUB 000022fb: PUSH1 0x04 000022fd: CALLDATALOAD 000022fe: PUSH2 0x2306 00002301: DUP2 00002302: PUSH2 0x0777 00002305: JUMP 00002306: JUMPDEST 00002307: AND 00002308: PUSH0 00002309: MSTORE 0000230a: PUSH1 0x0a 0000230c: PUSH1 0x20 0000230e: MSTORE 0000230f: PUSH1 0x20 00002311: PUSH1 0x40 00002313: PUSH0 00002314: KECCAK256 00002315: SLOAD 00002316: PUSH1 0x40 00002318: MLOAD 00002319: SWAP1 0000231a: DUP2 0000231b: MSTORE 0000231c: RETURN 0000231d: JUMPDEST 0000231e: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0000233f: PUSH0 00002340: MSTORE 00002341: PUSH1 0x41 00002343: PUSH1 0x04 00002345: MSTORE 00002346: PUSH1 0x24 00002348: PUSH0 00002349: REVERT 0000234a: JUMPDEST 0000234b: PUSH2 0x0140 0000234e: DUP2 0000234f: ADD 00002350: SWAP1 00002351: DUP2 00002352: LT 00002353: PUSH8 0xffffffffffffffff 0000235c: DUP3 0000235d: GT 0000235e: OR 0000235f: PUSH2 0x2367 00002362: JUMPI 00002363: PUSH1 0x40 00002365: MSTORE 00002366: JUMP 00002367: JUMPDEST 00002368: PUSH2 0x231d 0000236b: JUMP 0000236c: JUMPDEST 0000236d: PUSH1 0x40 0000236f: DUP2 00002370: ADD 00002371: SWAP1 00002372: DUP2 00002373: LT 00002374: PUSH8 0xffffffffffffffff 0000237d: DUP3 0000237e: GT 0000237f: OR 00002380: PUSH2 0x2367 00002383: JUMPI 00002384: PUSH1 0x40 00002386: MSTORE 00002387: JUMP 00002388: JUMPDEST 00002389: SWAP1 0000238a: PUSH1 0x1f 0000238c: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000023ad: SWAP2 000023ae: ADD 000023af: AND 000023b0: DUP2 000023b1: ADD 000023b2: SWAP1 000023b3: DUP2 000023b4: LT 000023b5: PUSH8 0xffffffffffffffff 000023be: DUP3 000023bf: GT 000023c0: OR 000023c1: PUSH2 0x2367 000023c4: JUMPI 000023c5: PUSH1 0x40 000023c7: MSTORE 000023c8: JUMP 000023c9: JUMPDEST 000023ca: PUSH1 0x40 000023cc: MLOAD 000023cd: SWAP1 000023ce: PUSH2 0x23d9 000023d1: PUSH2 0x0140 000023d4: DUP4 000023d5: PUSH2 0x2388 000023d8: JUMP 000023d9: JUMPDEST 000023da: JUMP 000023db: JUMPDEST 000023dc: PUSH8 0xffffffffffffffff 000023e5: DUP2 000023e6: GT 000023e7: PUSH2 0x2367 000023ea: JUMPI 000023eb: PUSH1 0x1f 000023ed: ADD 000023ee: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000240f: AND 00002410: PUSH1 0x20 00002412: ADD 00002413: SWAP1 00002414: JUMP 00002415: JUMPDEST 00002416: CALLVALUE 00002417: PUSH2 0x042e 0000241a: JUMPI 0000241b: PUSH1 0x80 0000241d: PUSH1 0x03 0000241f: NOT 00002420: CALLDATASIZE 00002421: ADD 00002422: SLT 00002423: PUSH2 0x042e 00002426: JUMPI 00002427: PUSH1 0x04 00002429: CALLDATALOAD 0000242a: PUSH2 0x2432 0000242d: DUP2 0000242e: PUSH2 0x0777 00002431: JUMP 00002432: JUMPDEST 00002433: PUSH1 0x24 00002435: CALLDATALOAD 00002436: SWAP1 00002437: PUSH2 0x243f 0000243a: DUP3 0000243b: PUSH2 0x0777 0000243e: JUMP 0000243f: JUMPDEST 00002440: PUSH1 0x44 00002442: CALLDATALOAD 00002443: PUSH1 0x64 00002445: CALLDATALOAD 00002446: SWAP3 00002447: PUSH8 0xffffffffffffffff 00002450: DUP5 00002451: GT 00002452: PUSH2 0x042e 00002455: JUMPI 00002456: CALLDATASIZE 00002457: PUSH1 0x23 00002459: DUP6 0000245a: ADD 0000245b: SLT 0000245c: ISZERO 0000245d: PUSH2 0x042e 00002460: JUMPI 00002461: DUP4 00002462: PUSH1 0x04 00002464: ADD 00002465: CALLDATALOAD 00002466: SWAP3 00002467: PUSH2 0x246f 0000246a: DUP5 0000246b: PUSH2 0x23db 0000246e: JUMP 0000246f: JUMPDEST 00002470: SWAP4 00002471: PUSH2 0x247d 00002474: PUSH1 0x40 00002476: MLOAD 00002477: SWAP6 00002478: DUP7 00002479: PUSH2 0x2388 0000247c: JUMP 0000247d: JUMPDEST 0000247e: DUP1 0000247f: DUP6 00002480: MSTORE 00002481: CALLDATASIZE 00002482: PUSH1 0x24 00002484: DUP3 00002485: DUP9 00002486: ADD 00002487: ADD 00002488: GT 00002489: PUSH2 0x042e 0000248c: JUMPI 0000248d: PUSH1 0x20 0000248f: DUP2 00002490: PUSH0 00002491: SWAP3 00002492: PUSH1 0x24 00002494: PUSH2 0x0840 00002497: SWAP10 00002498: ADD 00002499: DUP4 0000249a: DUP10 0000249b: ADD 0000249c: CALLDATACOPY 0000249d: DUP7 0000249e: ADD 0000249f: ADD 000024a0: MSTORE 000024a1: PUSH2 0x32e0 000024a4: JUMP 000024a5: JUMPDEST 000024a6: CALLVALUE 000024a7: PUSH2 0x042e 000024aa: JUMPI 000024ab: PUSH1 0x20 000024ad: PUSH1 0x03 000024af: NOT 000024b0: CALLDATASIZE 000024b1: ADD 000024b2: SLT 000024b3: PUSH2 0x042e 000024b6: JUMPI 000024b7: PUSH1 0x04 000024b9: CALLDATALOAD 000024ba: PUSH0 000024bb: MSTORE 000024bc: PUSH1 0x0c 000024be: PUSH1 0x20 000024c0: MSTORE 000024c1: PUSH1 0x20 000024c3: PUSH1 0xff 000024c5: PUSH1 0x01 000024c7: PUSH1 0x40 000024c9: PUSH0 000024ca: KECCAK256 000024cb: ADD 000024cc: SLOAD 000024cd: PUSH1 0xc8 000024cf: SHR 000024d0: AND 000024d1: PUSH1 0x40 000024d3: MLOAD 000024d4: SWAP1 000024d5: ISZERO 000024d6: ISZERO 000024d7: DUP2 000024d8: MSTORE 000024d9: RETURN 000024da: JUMPDEST 000024db: CALLVALUE 000024dc: PUSH2 0x042e 000024df: JUMPI 000024e0: PUSH1 0x20 000024e2: PUSH1 0x03 000024e4: NOT 000024e5: CALLDATASIZE 000024e6: ADD 000024e7: SLT 000024e8: PUSH2 0x042e 000024eb: JUMPI 000024ec: PUSH1 0x04 000024ee: CALLDATALOAD 000024ef: DUP1 000024f0: PUSH0 000024f1: MSTORE 000024f2: PUSH1 0x0c 000024f4: PUSH1 0x20 000024f6: MSTORE 000024f7: PUSH1 0xff 000024f9: PUSH1 0x01 000024fb: PUSH1 0x40 000024fd: PUSH0 000024fe: KECCAK256 000024ff: ADD 00002500: SLOAD 00002501: PUSH1 0xc8 00002503: SHR 00002504: AND 00002505: ISZERO 00002506: PUSH2 0x074c 00002509: JUMPI 0000250a: PUSH0 0000250b: MSTORE 0000250c: PUSH1 0x0c 0000250e: PUSH1 0x20 00002510: MSTORE 00002511: PUSH2 0x0616 00002514: PUSH1 0x01 00002516: PUSH1 0x01 00002518: PUSH1 0xa0 0000251a: SHL 0000251b: SUB 0000251c: PUSH1 0x01 0000251e: PUSH1 0x40 00002520: PUSH0 00002521: KECCAK256 00002522: ADD 00002523: SLOAD 00002524: AND 00002525: PUSH1 0x40 00002527: MLOAD 00002528: SWAP2 00002529: DUP3 0000252a: SWAP2 0000252b: DUP3 0000252c: SWAP2 0000252d: SWAP1 0000252e: SWAP2 0000252f: PUSH1 0x01 00002531: PUSH1 0x01 00002533: PUSH1 0xa0 00002535: SHL 00002536: SUB 00002537: PUSH1 0x20 00002539: DUP3 0000253a: ADD 0000253b: SWAP4 0000253c: AND 0000253d: SWAP1 0000253e: MSTORE 0000253f: JUMP 00002540: JUMPDEST 00002541: CALLVALUE 00002542: PUSH2 0x042e 00002545: JUMPI 00002546: PUSH0 00002547: PUSH1 0x03 00002549: NOT 0000254a: CALLDATASIZE 0000254b: ADD 0000254c: SLT 0000254d: PUSH2 0x042e 00002550: JUMPI 00002551: PUSH1 0x20 00002553: PUSH1 0x40 00002555: MLOAD 00002556: PUSH8 0x016345785d8a0000 0000255f: DUP2 00002560: MSTORE 00002561: RETURN 00002562: JUMPDEST 00002563: CALLVALUE 00002564: PUSH2 0x042e 00002567: JUMPI 00002568: PUSH1 0x20 0000256a: PUSH1 0x03 0000256c: NOT 0000256d: CALLDATASIZE 0000256e: ADD 0000256f: SLT 00002570: PUSH2 0x042e 00002573: JUMPI 00002574: PUSH1 0x04 00002576: CALLDATALOAD 00002577: DUP1 00002578: PUSH0 00002579: MSTORE 0000257a: PUSH1 0x0c 0000257c: PUSH1 0x20 0000257e: MSTORE 0000257f: PUSH1 0xff 00002581: PUSH1 0x01 00002583: PUSH1 0x40 00002585: PUSH0 00002586: KECCAK256 00002587: ADD 00002588: SLOAD 00002589: PUSH1 0xc8 0000258b: SHR 0000258c: AND 0000258d: ISZERO 0000258e: PUSH2 0x074c 00002591: JUMPI 00002592: PUSH2 0x0741 00002595: SWAP1 00002596: PUSH2 0x4367 00002599: JUMP 0000259a: JUMPDEST 0000259b: PUSH1 0x40 0000259d: PUSH1 0x03 0000259f: NOT 000025a0: CALLDATASIZE 000025a1: ADD 000025a2: SLT 000025a3: PUSH2 0x042e 000025a6: JUMPI 000025a7: PUSH1 0x04 000025a9: CALLDATALOAD 000025aa: PUSH1 0x24 000025ac: CALLDATALOAD 000025ad: PUSH2 0x25b5 000025b0: DUP2 000025b1: PUSH2 0x0d16 000025b4: JUMP 000025b5: JUMPDEST 000025b6: PUSH2 0x25bd 000025b9: PUSH2 0x3692 000025bc: JUMP 000025bd: JUMPDEST 000025be: DUP2 000025bf: PUSH0 000025c0: MSTORE 000025c1: PUSH1 0x0c 000025c3: PUSH1 0x20 000025c5: MSTORE 000025c6: PUSH1 0xff 000025c8: PUSH1 0x01 000025ca: PUSH1 0x40 000025cc: PUSH0 000025cd: KECCAK256 000025ce: ADD 000025cf: SLOAD 000025d0: PUSH1 0xc8 000025d2: SHR 000025d3: AND 000025d4: ISZERO 000025d5: PUSH2 0x0fbc 000025d8: JUMPI 000025d9: DUP2 000025da: PUSH0 000025db: MSTORE 000025dc: PUSH1 0x0c 000025de: PUSH1 0x20 000025e0: MSTORE 000025e1: PUSH1 0x40 000025e3: PUSH0 000025e4: KECCAK256 000025e5: SLOAD 000025e6: PUSH1 0x80 000025e8: SHR 000025e9: ISZERO 000025ea: PUSH2 0x0f90 000025ed: JUMPI 000025ee: DUP2 000025ef: PUSH0 000025f0: MSTORE 000025f1: PUSH1 0x0c 000025f3: PUSH1 0x20 000025f5: MSTORE 000025f6: PUSH1 0x01 000025f8: PUSH1 0x01 000025fa: PUSH1 0xa0 000025fc: SHL 000025fd: SUB 000025fe: PUSH1 0x01 00002600: PUSH1 0x40 00002602: PUSH0 00002603: KECCAK256 00002604: ADD 00002605: SLOAD 00002606: AND 00002607: CALLER 00002608: SUB 00002609: PUSH2 0x0f60 0000260c: JUMPI 0000260d: DUP2 0000260e: PUSH2 0x0f57 00002611: PUSH1 0x20 00002613: SWAP3 00002614: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 00002635: SWAP5 00002636: PUSH2 0x3b32 00002639: JUMP 0000263a: JUMPDEST 0000263b: CALLVALUE 0000263c: PUSH2 0x042e 0000263f: JUMPI 00002640: PUSH1 0x20 00002642: PUSH1 0x03 00002644: NOT 00002645: CALLDATASIZE 00002646: ADD 00002647: SLT 00002648: PUSH2 0x042e 0000264b: JUMPI 0000264c: PUSH1 0x04 0000264e: CALLDATALOAD 0000264f: DUP1 00002650: PUSH0 00002651: MSTORE 00002652: PUSH1 0x0c 00002654: PUSH1 0x20 00002656: MSTORE 00002657: PUSH1 0xff 00002659: PUSH1 0x01 0000265b: PUSH1 0x40 0000265d: PUSH0 0000265e: KECCAK256 0000265f: ADD 00002660: SLOAD 00002661: PUSH1 0xc8 00002663: SHR 00002664: AND 00002665: ISZERO 00002666: PUSH2 0x074c 00002669: JUMPI 0000266a: PUSH0 0000266b: MSTORE 0000266c: PUSH1 0x0c 0000266e: PUSH1 0x20 00002670: MSTORE 00002671: PUSH2 0x0616 00002674: PUSH1 0x40 00002676: PUSH0 00002677: KECCAK256 00002678: SLOAD 00002679: PUSH1 0x80 0000267b: SHR 0000267c: ISZERO 0000267d: PUSH1 0x40 0000267f: MLOAD 00002680: SWAP2 00002681: DUP3 00002682: SWAP2 00002683: DUP3 00002684: SWAP2 00002685: SWAP1 00002686: SWAP2 00002687: PUSH1 0x20 00002689: DUP2 0000268a: ADD 0000268b: SWAP3 0000268c: ISZERO 0000268d: ISZERO 0000268e: SWAP1 0000268f: MSTORE 00002690: JUMP 00002691: JUMPDEST 00002692: PUSH1 0xc0 00002694: PUSH1 0x03 00002696: NOT 00002697: CALLDATASIZE 00002698: ADD 00002699: SLT 0000269a: PUSH2 0x042e 0000269d: JUMPI 0000269e: PUSH1 0x04 000026a0: CALLDATALOAD 000026a1: PUSH1 0x24 000026a3: CALLDATALOAD 000026a4: PUSH2 0x26ac 000026a7: DUP2 000026a8: PUSH2 0x0d16 000026ab: JUMP 000026ac: JUMPDEST 000026ad: PUSH1 0x44 000026af: CALLDATALOAD 000026b0: PUSH2 0x26b8 000026b3: DUP2 000026b4: PUSH2 0x0777 000026b7: JUMP 000026b8: JUMPDEST 000026b9: PUSH1 0x64 000026bb: CALLDATALOAD 000026bc: PUSH2 0x26c4 000026bf: DUP2 000026c0: PUSH2 0x0777 000026c3: JUMP 000026c4: JUMPDEST 000026c5: PUSH1 0x40 000026c7: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c 000026e8: CALLDATASIZE 000026e9: ADD 000026ea: SLT 000026eb: PUSH2 0x042e 000026ee: JUMPI 000026ef: PUSH2 0x26f6 000026f2: PUSH2 0x3692 000026f5: JUMP 000026f6: JUMPDEST 000026f7: DUP4 000026f8: PUSH0 000026f9: MSTORE 000026fa: PUSH1 0x0c 000026fc: PUSH1 0x20 000026fe: MSTORE 000026ff: PUSH1 0xff 00002701: PUSH1 0x01 00002703: PUSH1 0x40 00002705: PUSH0 00002706: KECCAK256 00002707: ADD 00002708: SLOAD 00002709: PUSH1 0xc8 0000270b: SHR 0000270c: AND 0000270d: ISZERO 0000270e: PUSH2 0x22b5 00002711: JUMPI 00002712: DUP4 00002713: PUSH0 00002714: MSTORE 00002715: PUSH1 0x0c 00002717: PUSH1 0x20 00002719: MSTORE 0000271a: PUSH1 0xff 0000271c: PUSH1 0x01 0000271e: PUSH1 0x40 00002720: PUSH0 00002721: KECCAK256 00002722: ADD 00002723: SLOAD 00002724: PUSH1 0xd8 00002726: SHR 00002727: AND 00002728: PUSH2 0x2289 0000272b: JUMPI 0000272c: PUSH2 0x2735 0000272f: SWAP2 00002730: DUP5 00002731: PUSH2 0x43a4 00002734: JUMP 00002735: JUMPDEST 00002736: PUSH1 0x40 00002738: MLOAD 00002739: SWAP2 0000273a: PUSH2 0x2742 0000273d: DUP4 0000273e: PUSH2 0x236c 00002741: JUMP 00002742: JUMPDEST 00002743: PUSH1 0x84 00002745: CALLDATALOAD 00002746: PUSH2 0x274e 00002749: DUP2 0000274a: PUSH2 0x0777 0000274d: JUMP 0000274e: JUMPDEST 0000274f: DUP4 00002750: MSTORE 00002751: PUSH1 0xa4 00002753: CALLDATALOAD 00002754: PUSH1 0x20 00002756: DUP5 00002757: ADD 00002758: SWAP1 00002759: DUP1 0000275a: DUP3 0000275b: MSTORE 0000275c: PUSH8 0x016345785d8a0000 00002765: DUP2 00002766: GT 00002767: PUSH2 0x2836 0000276a: JUMPI 0000276b: POP 0000276c: PUSH1 0x01 0000276e: PUSH1 0x01 00002770: PUSH1 0xa0 00002772: SHL 00002773: SUB 00002774: DUP5 00002775: MLOAD 00002776: AND 00002777: ISZERO 00002778: PUSH2 0x280e 0000277b: JUMPI 0000277c: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 0000279d: SWAP4 0000279e: PUSH2 0x27bb 000027a1: PUSH2 0x27b2 000027a4: PUSH2 0x142b 000027a7: SWAP6 000027a8: PUSH2 0x27fe 000027ab: SWAP5 000027ac: MLOAD 000027ad: SWAP1 000027ae: PUSH2 0x4e86 000027b1: JUMP 000027b2: JUMPDEST 000027b3: DUP6 000027b4: SWAP3 000027b5: SWAP2 000027b6: SWAP3 000027b7: PUSH2 0x3b32 000027ba: JUMP 000027bb: JUMPDEST 000027bc: PUSH16 0xffffffffffffffffffffffffffffffff 000027cd: PUSH2 0x27f4 000027d0: PUSH2 0x27e6 000027d3: PUSH1 0x02 000027d5: PUSH2 0x11f1 000027d8: DUP9 000027d9: PUSH0 000027da: MSTORE 000027db: PUSH1 0x0c 000027dd: PUSH1 0x20 000027df: MSTORE 000027e0: PUSH1 0x40 000027e2: PUSH0 000027e3: KECCAK256 000027e4: SWAP1 000027e5: JUMP 000027e6: JUMPDEST 000027e7: SWAP4 000027e8: MLOAD 000027e9: PUSH1 0x01 000027eb: PUSH1 0x01 000027ed: PUSH1 0xa0 000027ef: SHL 000027f0: SUB 000027f1: AND 000027f2: SWAP1 000027f3: JUMP 000027f4: JUMPDEST 000027f5: SWAP2 000027f6: AND 000027f7: SWAP2 000027f8: CALLER 000027f9: SWAP1 000027fa: PUSH2 0x49f2 000027fd: JUMP 000027fe: JUMPDEST 000027ff: PUSH1 0x40 00002801: MLOAD 00002802: SWAP1 00002803: DUP2 00002804: MSTORE 00002805: SWAP1 00002806: DUP2 00002807: SWAP1 00002808: PUSH1 0x20 0000280a: DUP3 0000280b: ADD 0000280c: SWAP1 0000280d: JUMP 0000280e: JUMPDEST 0000280f: PUSH32 0x5f946a0200000000000000000000000000000000000000000000000000000000 00002830: PUSH0 00002831: MSTORE 00002832: PUSH1 0x04 00002834: PUSH0 00002835: REVERT 00002836: JUMPDEST 00002837: PUSH32 0x54b392b200000000000000000000000000000000000000000000000000000000 00002858: PUSH0 00002859: MSTORE 0000285a: PUSH1 0x04 0000285c: MSTORE 0000285d: PUSH8 0x016345785d8a0000 00002866: PUSH1 0x24 00002868: MSTORE 00002869: PUSH1 0x44 0000286b: PUSH0 0000286c: REVERT 0000286d: JUMPDEST 0000286e: CALLVALUE 0000286f: PUSH2 0x042e 00002872: JUMPI 00002873: PUSH0 00002874: PUSH1 0x03 00002876: NOT 00002877: CALLDATASIZE 00002878: ADD 00002879: SLT 0000287a: PUSH2 0x042e 0000287d: JUMPI 0000287e: SELFBALANCE 0000287f: PUSH0 00002880: DUP1 00002881: DUP1 00002882: DUP1 00002883: DUP5 00002884: PUSH1 0x01 00002886: PUSH1 0x01 00002888: PUSH1 0xa0 0000288a: SHL 0000288b: SUB 0000288c: DUP3 0000288d: SLOAD 0000288e: AND 0000288f: GAS 00002890: CALL 00002891: PUSH2 0x2898 00002894: PUSH2 0x3031 00002897: JUMP 00002898: JUMPDEST 00002899: POP 0000289a: ISZERO 0000289b: PUSH2 0x28d1 0000289e: JUMPI 0000289f: PUSH1 0x01 000028a1: PUSH1 0x01 000028a3: PUSH1 0xa0 000028a5: SHL 000028a6: SUB 000028a7: DUP1 000028a8: PUSH0 000028a9: SLOAD 000028aa: AND 000028ab: AND 000028ac: PUSH32 0xc9a0214d4c5fed6341233260a7bc0c9ac1d712cc5882165fa985bb71d4f207ae 000028cd: PUSH0 000028ce: DUP1 000028cf: LOG3 000028d0: STOP 000028d1: JUMPDEST 000028d2: PUSH1 0x01 000028d4: PUSH1 0x01 000028d6: PUSH1 0xa0 000028d8: SHL 000028d9: SUB 000028da: PUSH0 000028db: SLOAD 000028dc: AND 000028dd: PUSH32 0x186f33ac00000000000000000000000000000000000000000000000000000000 000028fe: PUSH0 000028ff: MSTORE 00002900: PUSH1 0x04 00002902: MSTORE 00002903: PUSH1 0x24 00002905: MSTORE 00002906: PUSH1 0x44 00002908: PUSH0 00002909: REVERT 0000290a: JUMPDEST 0000290b: CALLVALUE 0000290c: PUSH2 0x042e 0000290f: JUMPI 00002910: PUSH1 0x20 00002912: PUSH1 0x03 00002914: NOT 00002915: CALLDATASIZE 00002916: ADD 00002917: SLT 00002918: PUSH2 0x042e 0000291b: JUMPI 0000291c: PUSH1 0x04 0000291e: CALLDATALOAD 0000291f: PUSH2 0x2927 00002922: DUP2 00002923: PUSH2 0x3605 00002926: JUMP 00002927: JUMPDEST 00002928: POP 00002929: PUSH0 0000292a: PUSH1 0x01 0000292c: PUSH1 0x01 0000292e: PUSH1 0xa0 00002930: SHL 00002931: SUB 00002932: PUSH1 0x09 00002934: SLOAD 00002935: AND 00002936: SWAP2 00002937: PUSH1 0x44 00002939: PUSH1 0x40 0000293b: MLOAD 0000293c: DUP1 0000293d: SWAP5 0000293e: DUP2 0000293f: SWAP4 00002940: PUSH32 0xe9dc637500000000000000000000000000000000000000000000000000000000 00002961: DUP4 00002962: MSTORE 00002963: ADDRESS 00002964: PUSH1 0x04 00002966: DUP5 00002967: ADD 00002968: MSTORE 00002969: PUSH1 0x24 0000296b: DUP4 0000296c: ADD 0000296d: MSTORE 0000296e: GAS 0000296f: STATICCALL 00002970: DUP1 00002971: ISZERO 00002972: PUSH2 0x16f5 00002975: JUMPI 00002976: PUSH0 00002977: SWAP1 00002978: PUSH2 0x298c 0000297b: JUMPI 0000297c: JUMPDEST 0000297d: PUSH2 0x0616 00002980: SWAP1 00002981: PUSH1 0x40 00002983: MLOAD 00002984: SWAP2 00002985: DUP3 00002986: SWAP2 00002987: DUP3 00002988: PUSH2 0x059c 0000298b: JUMP 0000298c: JUMPDEST 0000298d: POP 0000298e: RETURNDATASIZE 0000298f: DUP1 00002990: PUSH0 00002991: DUP4 00002992: RETURNDATACOPY 00002993: PUSH2 0x299c 00002996: DUP2 00002997: DUP4 00002998: PUSH2 0x2388 0000299b: JUMP 0000299c: JUMPDEST 0000299d: DUP2 0000299e: ADD 0000299f: SWAP1 000029a0: PUSH1 0x20 000029a2: DUP2 000029a3: DUP4 000029a4: SUB 000029a5: SLT 000029a6: PUSH2 0x042e 000029a9: JUMPI 000029aa: DUP1 000029ab: MLOAD 000029ac: SWAP1 000029ad: PUSH8 0xffffffffffffffff 000029b6: DUP3 000029b7: GT 000029b8: PUSH2 0x042e 000029bb: JUMPI 000029bc: ADD 000029bd: SWAP1 000029be: DUP1 000029bf: PUSH1 0x1f 000029c1: DUP4 000029c2: ADD 000029c3: SLT 000029c4: ISZERO 000029c5: PUSH2 0x042e 000029c8: JUMPI 000029c9: DUP2 000029ca: MLOAD 000029cb: SWAP2 000029cc: PUSH2 0x29d4 000029cf: DUP4 000029d0: PUSH2 0x23db 000029d3: JUMP 000029d4: JUMPDEST 000029d5: SWAP2 000029d6: PUSH2 0x29e2 000029d9: PUSH1 0x40 000029db: MLOAD 000029dc: SWAP4 000029dd: DUP5 000029de: PUSH2 0x2388 000029e1: JUMP 000029e2: JUMPDEST 000029e3: DUP4 000029e4: DUP4 000029e5: MSTORE 000029e6: PUSH1 0x20 000029e8: DUP5 000029e9: DUP4 000029ea: ADD 000029eb: ADD 000029ec: GT 000029ed: PUSH2 0x042e 000029f0: JUMPI 000029f1: PUSH2 0x0616 000029f4: SWAP3 000029f5: PUSH2 0x2a04 000029f8: SWAP2 000029f9: PUSH1 0x20 000029fb: DUP1 000029fc: DUP6 000029fd: ADD 000029fe: SWAP2 000029ff: ADD 00002a00: PUSH2 0x0538 00002a03: JUMP 00002a04: JUMPDEST 00002a05: PUSH2 0x297c 00002a08: JUMP 00002a09: JUMPDEST 00002a0a: CALLVALUE 00002a0b: PUSH2 0x042e 00002a0e: JUMPI 00002a0f: PUSH1 0x20 00002a11: PUSH1 0x03 00002a13: NOT 00002a14: CALLDATASIZE 00002a15: ADD 00002a16: SLT 00002a17: PUSH2 0x042e 00002a1a: JUMPI 00002a1b: PUSH1 0x04 00002a1d: CALLDATALOAD 00002a1e: DUP1 00002a1f: PUSH0 00002a20: MSTORE 00002a21: PUSH1 0x0c 00002a23: PUSH1 0x20 00002a25: MSTORE 00002a26: PUSH1 0xff 00002a28: PUSH1 0x01 00002a2a: PUSH1 0x40 00002a2c: PUSH0 00002a2d: KECCAK256 00002a2e: ADD 00002a2f: SLOAD 00002a30: PUSH1 0xc8 00002a32: SHR 00002a33: AND 00002a34: ISZERO 00002a35: PUSH2 0x074c 00002a38: JUMPI 00002a39: DUP1 00002a3a: PUSH0 00002a3b: MSTORE 00002a3c: PUSH1 0x0c 00002a3e: PUSH1 0x20 00002a40: MSTORE 00002a41: PUSH1 0x40 00002a43: PUSH0 00002a44: KECCAK256 00002a45: SLOAD 00002a46: PUSH1 0x80 00002a48: SHR 00002a49: ISZERO 00002a4a: PUSH2 0x0a64 00002a4d: JUMPI 00002a4e: PUSH2 0x27fe 00002a51: PUSH2 0x0616 00002a54: SWAP2 00002a55: PUSH2 0x34ab 00002a58: JUMP 00002a59: JUMPDEST 00002a5a: CALLVALUE 00002a5b: PUSH2 0x042e 00002a5e: JUMPI 00002a5f: PUSH1 0x20 00002a61: PUSH1 0x03 00002a63: NOT 00002a64: CALLDATASIZE 00002a65: ADD 00002a66: SLT 00002a67: PUSH2 0x042e 00002a6a: JUMPI 00002a6b: PUSH1 0x04 00002a6d: CALLDATALOAD 00002a6e: DUP1 00002a6f: PUSH0 00002a70: MSTORE 00002a71: PUSH1 0x0c 00002a73: PUSH1 0x20 00002a75: MSTORE 00002a76: PUSH1 0xff 00002a78: PUSH1 0x01 00002a7a: PUSH1 0x40 00002a7c: PUSH0 00002a7d: KECCAK256 00002a7e: ADD 00002a7f: SLOAD 00002a80: PUSH1 0xc8 00002a82: SHR 00002a83: AND 00002a84: ISZERO 00002a85: PUSH2 0x074c 00002a88: JUMPI 00002a89: PUSH0 00002a8a: MSTORE 00002a8b: PUSH1 0x0c 00002a8d: PUSH1 0x20 00002a8f: MSTORE 00002a90: PUSH2 0x0616 00002a93: PUSH1 0x01 00002a95: PUSH1 0x01 00002a97: PUSH1 0xa0 00002a99: SHL 00002a9a: SUB 00002a9b: PUSH1 0x02 00002a9d: PUSH1 0x40 00002a9f: PUSH0 00002aa0: KECCAK256 00002aa1: ADD 00002aa2: SLOAD 00002aa3: AND 00002aa4: PUSH1 0x40 00002aa6: MLOAD 00002aa7: SWAP2 00002aa8: DUP3 00002aa9: SWAP2 00002aaa: DUP3 00002aab: SWAP2 00002aac: SWAP1 00002aad: SWAP2 00002aae: PUSH1 0x01 00002ab0: PUSH1 0x01 00002ab2: PUSH1 0xa0 00002ab4: SHL 00002ab5: SUB 00002ab6: PUSH1 0x20 00002ab8: DUP3 00002ab9: ADD 00002aba: SWAP4 00002abb: AND 00002abc: SWAP1 00002abd: MSTORE 00002abe: JUMP 00002abf: JUMPDEST 00002ac0: CALLVALUE 00002ac1: PUSH2 0x042e 00002ac4: JUMPI 00002ac5: PUSH1 0x40 00002ac7: PUSH1 0x03 00002ac9: NOT 00002aca: CALLDATASIZE 00002acb: ADD 00002acc: SLT 00002acd: PUSH2 0x042e 00002ad0: JUMPI 00002ad1: PUSH1 0x20 00002ad3: PUSH1 0xff 00002ad5: PUSH2 0x2b19 00002ad8: PUSH1 0x04 00002ada: CALLDATALOAD 00002adb: PUSH2 0x2ae3 00002ade: DUP2 00002adf: PUSH2 0x0777 00002ae2: JUMP 00002ae3: JUMPDEST 00002ae4: PUSH1 0x01 00002ae6: PUSH1 0x01 00002ae8: PUSH1 0xa0 00002aea: SHL 00002aeb: SUB 00002aec: PUSH1 0x24 00002aee: CALLDATALOAD 00002aef: SWAP2 00002af0: PUSH2 0x2af8 00002af3: DUP4 00002af4: PUSH2 0x0777 00002af7: JUMP 00002af8: JUMPDEST 00002af9: AND 00002afa: PUSH0 00002afb: MSTORE 00002afc: PUSH1 0x06 00002afe: DUP5 00002aff: MSTORE 00002b00: PUSH1 0x40 00002b02: PUSH0 00002b03: KECCAK256 00002b04: SWAP1 00002b05: PUSH1 0x01 00002b07: PUSH1 0x01 00002b09: PUSH1 0xa0 00002b0b: SHL 00002b0c: SUB 00002b0d: AND 00002b0e: PUSH0 00002b0f: MSTORE 00002b10: PUSH1 0x20 00002b12: MSTORE 00002b13: PUSH1 0x40 00002b15: PUSH0 00002b16: KECCAK256 00002b17: SWAP1 00002b18: JUMP 00002b19: JUMPDEST 00002b1a: SLOAD 00002b1b: AND 00002b1c: PUSH1 0x40 00002b1e: MLOAD 00002b1f: SWAP1 00002b20: ISZERO 00002b21: ISZERO 00002b22: DUP2 00002b23: MSTORE 00002b24: RETURN 00002b25: JUMPDEST 00002b26: PUSH1 0x40 00002b28: PUSH1 0x03 00002b2a: NOT 00002b2b: CALLDATASIZE 00002b2c: ADD 00002b2d: SLT 00002b2e: PUSH2 0x042e 00002b31: JUMPI 00002b32: PUSH1 0x04 00002b34: CALLDATALOAD 00002b35: PUSH1 0x24 00002b37: CALLDATALOAD 00002b38: PUSH2 0x2b40 00002b3b: DUP2 00002b3c: PUSH2 0x0777 00002b3f: JUMP 00002b40: JUMPDEST 00002b41: PUSH2 0x2b48 00002b44: PUSH2 0x3692 00002b47: JUMP 00002b48: JUMPDEST 00002b49: DUP2 00002b4a: PUSH0 00002b4b: MSTORE 00002b4c: PUSH1 0x0c 00002b4e: PUSH1 0x20 00002b50: MSTORE 00002b51: PUSH1 0xff 00002b53: PUSH1 0x01 00002b55: PUSH1 0x40 00002b57: PUSH0 00002b58: KECCAK256 00002b59: ADD 00002b5a: SLOAD 00002b5b: PUSH1 0xc8 00002b5d: SHR 00002b5e: AND 00002b5f: ISZERO 00002b60: PUSH2 0x0fbc 00002b63: JUMPI 00002b64: SWAP1 00002b65: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 00002b86: PUSH2 0x2b9b 00002b89: PUSH1 0x20 00002b8b: SWAP4 00002b8c: PUSH2 0x2b94 00002b8f: DUP5 00002b90: PUSH2 0x3c7a 00002b93: JUMP 00002b94: JUMPDEST 00002b95: SWAP1 00002b96: DUP5 00002b97: PUSH2 0x4568 00002b9a: JUMP 00002b9b: JUMPDEST 00002b9c: SWAP4 00002b9d: SWAP1 00002b9e: SWAP3 00002b9f: PUSH1 0x40 00002ba1: MLOAD 00002ba2: SWAP1 00002ba3: DUP2 00002ba4: MSTORE 00002ba5: LOG1 00002ba6: PUSH1 0x40 00002ba8: DUP1 00002ba9: MLOAD 00002baa: PUSH16 0xffffffffffffffffffffffffffffffff 00002bbb: SWAP3 00002bbc: DUP4 00002bbd: AND 00002bbe: DUP2 00002bbf: MSTORE 00002bc0: SWAP3 00002bc1: SWAP1 00002bc2: SWAP2 00002bc3: AND 00002bc4: PUSH1 0x20 00002bc6: DUP4 00002bc7: ADD 00002bc8: MSTORE 00002bc9: SWAP1 00002bca: RETURN 00002bcb: JUMPDEST 00002bcc: CALLVALUE 00002bcd: PUSH2 0x042e 00002bd0: JUMPI 00002bd1: PUSH1 0x20 00002bd3: PUSH1 0x03 00002bd5: NOT 00002bd6: CALLDATASIZE 00002bd7: ADD 00002bd8: SLT 00002bd9: PUSH2 0x042e 00002bdc: JUMPI 00002bdd: PUSH1 0x04 00002bdf: CALLDATALOAD 00002be0: DUP1 00002be1: PUSH0 00002be2: MSTORE 00002be3: PUSH1 0x0c 00002be5: PUSH1 0x20 00002be7: MSTORE 00002be8: PUSH1 0xff 00002bea: PUSH1 0x01 00002bec: PUSH1 0x40 00002bee: PUSH0 00002bef: KECCAK256 00002bf0: ADD 00002bf1: SLOAD 00002bf2: PUSH1 0xc8 00002bf4: SHR 00002bf5: AND 00002bf6: ISZERO 00002bf7: PUSH2 0x074c 00002bfa: JUMPI 00002bfb: PUSH0 00002bfc: MSTORE 00002bfd: PUSH1 0x0c 00002bff: PUSH1 0x20 00002c01: MSTORE 00002c02: PUSH2 0x0616 00002c05: PUSH5 0xffffffffff 00002c0b: PUSH1 0x01 00002c0d: PUSH1 0x40 00002c0f: PUSH0 00002c10: KECCAK256 00002c11: ADD 00002c12: SLOAD 00002c13: PUSH1 0xa0 00002c15: SHR 00002c16: AND 00002c17: PUSH1 0x40 00002c19: MLOAD 00002c1a: SWAP2 00002c1b: DUP3 00002c1c: SWAP2 00002c1d: DUP3 00002c1e: SWAP2 00002c1f: SWAP1 00002c20: SWAP2 00002c21: PUSH5 0xffffffffff 00002c27: PUSH1 0x20 00002c29: DUP3 00002c2a: ADD 00002c2b: SWAP4 00002c2c: AND 00002c2d: SWAP1 00002c2e: MSTORE 00002c2f: JUMP 00002c30: JUMPDEST 00002c31: PUSH1 0x40 00002c33: PUSH1 0x03 00002c35: NOT 00002c36: CALLDATASIZE 00002c37: ADD 00002c38: SLT 00002c39: PUSH2 0x042e 00002c3c: JUMPI 00002c3d: PUSH1 0x04 00002c3f: CALLDATALOAD 00002c40: PUSH1 0x24 00002c42: CALLDATALOAD 00002c43: PUSH2 0x2c4b 00002c46: DUP2 00002c47: PUSH2 0x0d16 00002c4a: JUMP 00002c4b: JUMPDEST 00002c4c: PUSH2 0x2c53 00002c4f: PUSH2 0x3692 00002c52: JUMP 00002c53: JUMPDEST 00002c54: DUP2 00002c55: PUSH0 00002c56: MSTORE 00002c57: PUSH1 0x0c 00002c59: PUSH1 0x20 00002c5b: MSTORE 00002c5c: PUSH1 0xff 00002c5e: PUSH1 0x01 00002c60: PUSH1 0x40 00002c62: PUSH0 00002c63: KECCAK256 00002c64: ADD 00002c65: SLOAD 00002c66: PUSH1 0xc8 00002c68: SHR 00002c69: AND 00002c6a: ISZERO 00002c6b: PUSH2 0x0fbc 00002c6e: JUMPI 00002c6f: DUP2 00002c70: PUSH0 00002c71: MSTORE 00002c72: PUSH1 0x0c 00002c74: PUSH1 0x20 00002c76: MSTORE 00002c77: PUSH1 0xff 00002c79: PUSH1 0x01 00002c7b: PUSH1 0x40 00002c7d: PUSH0 00002c7e: KECCAK256 00002c7f: ADD 00002c80: SLOAD 00002c81: PUSH1 0xd8 00002c83: SHR 00002c84: AND 00002c85: PUSH2 0x2cd5 00002c88: JUMPI 00002c89: DUP2 00002c8a: PUSH0 00002c8b: MSTORE 00002c8c: PUSH1 0x0c 00002c8e: PUSH1 0x20 00002c90: MSTORE 00002c91: PUSH1 0x01 00002c93: PUSH1 0x01 00002c95: PUSH1 0xa0 00002c97: SHL 00002c98: SUB 00002c99: PUSH1 0x01 00002c9b: PUSH1 0x40 00002c9d: PUSH0 00002c9e: KECCAK256 00002c9f: ADD 00002ca0: SLOAD 00002ca1: AND 00002ca2: CALLER 00002ca3: SUB 00002ca4: PUSH2 0x0f60 00002ca7: JUMPI 00002ca8: DUP2 00002ca9: PUSH2 0x0999 00002cac: PUSH1 0x20 00002cae: SWAP3 00002caf: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 00002cd0: SWAP5 00002cd1: PUSH2 0x3aa5 00002cd4: JUMP 00002cd5: JUMPDEST 00002cd6: POP 00002cd7: PUSH32 0x7354d5f100000000000000000000000000000000000000000000000000000000 00002cf8: PUSH0 00002cf9: MSTORE 00002cfa: PUSH1 0x04 00002cfc: MSTORE 00002cfd: PUSH1 0x24 00002cff: PUSH0 00002d00: REVERT 00002d01: JUMPDEST 00002d02: CALLVALUE 00002d03: PUSH2 0x042e 00002d06: JUMPI 00002d07: PUSH0 00002d08: PUSH1 0x03 00002d0a: NOT 00002d0b: CALLDATASIZE 00002d0c: ADD 00002d0d: SLT 00002d0e: PUSH2 0x042e 00002d11: JUMPI 00002d12: PUSH1 0x20 00002d14: PUSH1 0x01 00002d16: PUSH1 0x01 00002d18: PUSH1 0xa0 00002d1a: SHL 00002d1b: SUB 00002d1c: PUSH0 00002d1d: SLOAD 00002d1e: AND 00002d1f: PUSH1 0x40 00002d21: MLOAD 00002d22: SWAP1 00002d23: DUP2 00002d24: MSTORE 00002d25: RETURN 00002d26: JUMPDEST 00002d27: PUSH1 0xc0 00002d29: PUSH1 0x03 00002d2b: NOT 00002d2c: CALLDATASIZE 00002d2d: ADD 00002d2e: SLT 00002d2f: PUSH2 0x042e 00002d32: JUMPI 00002d33: PUSH1 0x20 00002d35: PUSH1 0x04 00002d37: CALLDATALOAD 00002d38: PUSH2 0x2d40 00002d3b: DUP2 00002d3c: PUSH2 0x0777 00002d3f: JUMP 00002d40: JUMPDEST 00002d41: PUSH2 0x1183 00002d44: PUSH2 0x2d85 00002d47: PUSH1 0x24 00002d49: CALLDATALOAD 00002d4a: PUSH2 0x2d52 00002d4d: DUP2 00002d4e: PUSH2 0x0777 00002d51: JUMP 00002d52: JUMPDEST 00002d53: PUSH1 0x44 00002d55: CALLDATALOAD 00002d56: PUSH2 0x2d5e 00002d59: DUP2 00002d5a: PUSH2 0x0d16 00002d5d: JUMP 00002d5e: JUMPDEST 00002d5f: PUSH1 0x64 00002d61: CALLDATALOAD 00002d62: SWAP1 00002d63: PUSH2 0x2d6b 00002d66: DUP3 00002d67: PUSH2 0x0777 00002d6a: JUMP 00002d6b: JUMPDEST 00002d6c: PUSH1 0x84 00002d6e: CALLDATALOAD 00002d6f: SWAP3 00002d70: PUSH2 0x2d78 00002d73: DUP5 00002d74: PUSH2 0x111d 00002d77: JUMP 00002d78: JUMPDEST 00002d79: PUSH1 0xa4 00002d7b: CALLDATALOAD 00002d7c: SWAP7 00002d7d: PUSH2 0x1176 00002d80: DUP9 00002d81: PUSH2 0x0d16 00002d84: JUMP 00002d85: JUMPDEST 00002d86: SWAP2 00002d87: DUP3 00002d88: PUSH2 0x3b32 00002d8b: JUMP 00002d8c: JUMPDEST 00002d8d: PUSH1 0x60 00002d8f: PUSH1 0x03 00002d91: NOT 00002d92: CALLDATASIZE 00002d93: ADD 00002d94: SLT 00002d95: PUSH2 0x042e 00002d98: JUMPI 00002d99: PUSH1 0x04 00002d9b: CALLDATALOAD 00002d9c: PUSH1 0x24 00002d9e: CALLDATALOAD 00002d9f: PUSH2 0x2da7 00002da2: DUP2 00002da3: PUSH2 0x0777 00002da6: JUMP 00002da7: JUMPDEST 00002da8: PUSH1 0x44 00002daa: CALLDATALOAD 00002dab: SWAP1 00002dac: PUSH2 0x2db4 00002daf: DUP3 00002db0: PUSH2 0x0d16 00002db3: JUMP 00002db4: JUMPDEST 00002db5: PUSH2 0x2dbc 00002db8: PUSH2 0x3692 00002dbb: JUMP 00002dbc: JUMPDEST 00002dbd: DUP3 00002dbe: PUSH0 00002dbf: MSTORE 00002dc0: PUSH1 0x0c 00002dc2: PUSH1 0x20 00002dc4: MSTORE 00002dc5: PUSH1 0xff 00002dc7: PUSH1 0x01 00002dc9: PUSH1 0x40 00002dcb: PUSH0 00002dcc: KECCAK256 00002dcd: ADD 00002dce: SLOAD 00002dcf: PUSH1 0xc8 00002dd1: SHR 00002dd2: AND 00002dd3: ISZERO 00002dd4: PUSH2 0x0e48 00002dd7: JUMPI 00002dd8: PUSH2 0x2b9b 00002ddb: DUP4 00002ddc: SWAP3 00002ddd: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 00002dfe: SWAP3 00002dff: PUSH1 0x20 00002e01: SWAP6 00002e02: PUSH2 0x4568 00002e05: JUMP 00002e06: JUMPDEST 00002e07: CALLVALUE 00002e08: PUSH2 0x042e 00002e0b: JUMPI 00002e0c: PUSH2 0x2e14 00002e0f: CALLDATASIZE 00002e10: PUSH2 0x1576 00002e13: JUMP 00002e14: JUMPDEST 00002e15: PUSH1 0x01 00002e17: PUSH1 0x01 00002e19: PUSH1 0xa0 00002e1b: SHL 00002e1c: SUB 00002e1d: PUSH0 00002e1e: SLOAD 00002e1f: AND 00002e20: CALLER 00002e21: DUP2 00002e22: SUB 00002e23: PUSH2 0x16fa 00002e26: JUMPI 00002e27: POP 00002e28: PUSH1 0x01 00002e2a: PUSH1 0x01 00002e2c: PUSH1 0xa0 00002e2e: SHL 00002e2f: SUB 00002e30: DUP3 00002e31: AND 00002e32: SWAP2 00002e33: DUP3 00002e34: PUSH0 00002e35: MSTORE 00002e36: PUSH1 0x0b 00002e38: PUSH1 0x20 00002e3a: MSTORE 00002e3b: PUSH16 0xffffffffffffffffffffffffffffffff 00002e4c: PUSH1 0x40 00002e4e: PUSH0 00002e4f: KECCAK256 00002e50: SLOAD 00002e51: AND 00002e52: SWAP1 00002e53: DUP2 00002e54: ISZERO 00002e55: PUSH2 0x2f23 00002e58: JUMPI 00002e59: DUP2 00002e5a: PUSH2 0x2eef 00002e5d: PUSH32 0xc9a4a66b97fd7e52e69c5be7b10bdc5341bded817201b9b7136a75068d4e4e05 00002e7e: SWAP4 00002e7f: DUP6 00002e80: DUP5 00002e81: PUSH2 0x2ec9 00002e84: PUSH2 0x2ea1 00002e87: PUSH2 0x168c 00002e8a: SWAP8 00002e8b: PUSH1 0x01 00002e8d: PUSH1 0x01 00002e8f: PUSH1 0xa0 00002e91: SHL 00002e92: SUB 00002e93: AND 00002e94: PUSH0 00002e95: MSTORE 00002e96: PUSH1 0x0b 00002e98: PUSH1 0x20 00002e9a: MSTORE 00002e9b: PUSH1 0x40 00002e9d: PUSH0 00002e9e: KECCAK256 00002e9f: SWAP1 00002ea0: JUMP 00002ea1: JUMPDEST 00002ea2: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000 00002ec3: DUP2 00002ec4: SLOAD 00002ec5: AND 00002ec6: SWAP1 00002ec7: SSTORE 00002ec8: JUMP 00002ec9: JUMPDEST 00002eca: PUSH2 0x2ee4 00002ecd: DUP2 00002ece: PUSH1 0x01 00002ed0: PUSH1 0x01 00002ed2: PUSH1 0xa0 00002ed4: SHL 00002ed5: SUB 00002ed6: AND 00002ed7: PUSH0 00002ed8: MSTORE 00002ed9: PUSH1 0x07 00002edb: PUSH1 0x20 00002edd: MSTORE 00002ede: PUSH1 0x40 00002ee0: PUSH0 00002ee1: KECCAK256 00002ee2: SWAP1 00002ee3: JUMP 00002ee4: JUMPDEST 00002ee5: DUP4 00002ee6: DUP2 00002ee7: SLOAD 00002ee8: SUB 00002ee9: SWAP1 00002eea: SSTORE 00002eeb: PUSH2 0x41cd 00002eee: JUMP 00002eef: JUMPDEST 00002ef0: PUSH1 0x40 00002ef2: DUP1 00002ef3: MLOAD 00002ef4: PUSH1 0x01 00002ef6: PUSH1 0x01 00002ef8: PUSH1 0xa0 00002efa: SHL 00002efb: SUB 00002efc: SWAP1 00002efd: SWAP6 00002efe: AND 00002eff: DUP6 00002f00: MSTORE 00002f01: PUSH16 0xffffffffffffffffffffffffffffffff 00002f12: SWAP1 00002f13: SWAP2 00002f14: AND 00002f15: PUSH1 0x20 00002f17: DUP6 00002f18: ADD 00002f19: MSTORE 00002f1a: CALLER 00002f1b: SWAP4 00002f1c: SWAP2 00002f1d: DUP3 00002f1e: SWAP2 00002f1f: DUP3 00002f20: ADD 00002f21: SWAP1 00002f22: JUMP 00002f23: JUMPDEST 00002f24: PUSH32 0xf717901b00000000000000000000000000000000000000000000000000000000 00002f45: PUSH0 00002f46: MSTORE 00002f47: PUSH1 0x01 00002f49: PUSH1 0x01 00002f4b: PUSH1 0xa0 00002f4d: SHL 00002f4e: SUB 00002f4f: DUP5 00002f50: AND 00002f51: PUSH1 0x04 00002f53: MSTORE 00002f54: PUSH1 0x24 00002f56: PUSH0 00002f57: REVERT 00002f58: JUMPDEST 00002f59: PUSH2 0x2f61 00002f5c: DUP2 00002f5d: PUSH2 0x3605 00002f60: JUMP 00002f61: JUMPDEST 00002f62: POP 00002f63: PUSH0 00002f64: MSTORE 00002f65: PUSH1 0x05 00002f67: PUSH1 0x20 00002f69: MSTORE 00002f6a: PUSH1 0x01 00002f6c: PUSH1 0x01 00002f6e: PUSH1 0xa0 00002f70: SHL 00002f71: SUB 00002f72: PUSH1 0x40 00002f74: PUSH0 00002f75: KECCAK256 00002f76: SLOAD 00002f77: AND 00002f78: SWAP1 00002f79: JUMP 00002f7a: JUMPDEST 00002f7b: PUSH8 0xffffffffffffffff 00002f84: DUP2 00002f85: GT 00002f86: PUSH2 0x2367 00002f89: JUMPI 00002f8a: PUSH1 0x05 00002f8c: SHL 00002f8d: PUSH1 0x20 00002f8f: ADD 00002f90: SWAP1 00002f91: JUMP 00002f92: JUMPDEST 00002f93: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002fb4: PUSH0 00002fb5: MSTORE 00002fb6: PUSH1 0x32 00002fb8: PUSH1 0x04 00002fba: MSTORE 00002fbb: PUSH1 0x24 00002fbd: PUSH0 00002fbe: REVERT 00002fbf: JUMPDEST 00002fc0: SWAP2 00002fc1: SWAP1 00002fc2: DUP2 00002fc3: LT 00002fc4: ISZERO 00002fc5: PUSH2 0x301f 00002fc8: JUMPI 00002fc9: PUSH1 0x05 00002fcb: SHL 00002fcc: DUP2 00002fcd: ADD 00002fce: CALLDATALOAD 00002fcf: SWAP1 00002fd0: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1 00002ff1: DUP2 00002ff2: CALLDATASIZE 00002ff3: SUB 00002ff4: ADD 00002ff5: DUP3 00002ff6: SLT 00002ff7: ISZERO 00002ff8: PUSH2 0x042e 00002ffb: JUMPI 00002ffc: ADD 00002ffd: SWAP1 00002ffe: DUP2 00002fff: CALLDATALOAD 00003000: SWAP2 00003001: PUSH8 0xffffffffffffffff 0000300a: DUP4 0000300b: GT 0000300c: PUSH2 0x042e 0000300f: JUMPI 00003010: PUSH1 0x20 00003012: ADD 00003013: DUP3 00003014: CALLDATASIZE 00003015: SUB 00003016: DUP2 00003017: SGT 00003018: PUSH2 0x042e 0000301b: JUMPI 0000301c: SWAP2 0000301d: SWAP1 0000301e: JUMP 0000301f: JUMPDEST 00003020: PUSH2 0x2f92 00003023: JUMP 00003024: JUMPDEST 00003025: SWAP1 00003026: DUP1 00003027: SWAP3 00003028: SWAP2 00003029: DUP3 0000302a: CALLDATACOPY 0000302b: ADD 0000302c: PUSH0 0000302d: DUP2 0000302e: MSTORE 0000302f: SWAP1 00003030: JUMP 00003031: JUMPDEST 00003032: RETURNDATASIZE 00003033: ISZERO 00003034: PUSH2 0x305b 00003037: JUMPI 00003038: RETURNDATASIZE 00003039: SWAP1 0000303a: PUSH2 0x3042 0000303d: DUP3 0000303e: PUSH2 0x23db 00003041: JUMP 00003042: JUMPDEST 00003043: SWAP2 00003044: PUSH2 0x3050 00003047: PUSH1 0x40 00003049: MLOAD 0000304a: SWAP4 0000304b: DUP5 0000304c: PUSH2 0x2388 0000304f: JUMP 00003050: JUMPDEST 00003051: DUP3 00003052: MSTORE 00003053: RETURNDATASIZE 00003054: PUSH0 00003055: PUSH1 0x20 00003057: DUP5 00003058: ADD 00003059: RETURNDATACOPY 0000305a: JUMP 0000305b: JUMPDEST 0000305c: PUSH1 0x60 0000305e: SWAP1 0000305f: JUMP 00003060: JUMPDEST 00003061: DUP1 00003062: MLOAD 00003063: DUP3 00003064: LT 00003065: ISZERO 00003066: PUSH2 0x301f 00003069: JUMPI 0000306a: PUSH1 0x20 0000306c: SWAP2 0000306d: PUSH1 0x05 0000306f: SHL 00003070: ADD 00003071: ADD 00003072: SWAP1 00003073: JUMP 00003074: JUMPDEST 00003075: SWAP2 00003076: SWAP1 00003077: PUSH1 0x01 00003079: PUSH1 0x01 0000307b: PUSH1 0xa0 0000307d: SHL 0000307e: SUB 0000307f: DUP2 00003080: AND 00003081: ISZERO 00003082: PUSH2 0x317f 00003085: JUMPI 00003086: DUP2 00003087: PUSH0 00003088: MSTORE 00003089: PUSH1 0x03 0000308b: PUSH1 0x20 0000308d: MSTORE 0000308e: PUSH1 0x01 00003090: PUSH1 0x01 00003092: PUSH1 0xa0 00003094: SHL 00003095: SUB 00003096: PUSH1 0x40 00003098: PUSH0 00003099: KECCAK256 0000309a: SLOAD 0000309b: AND 0000309c: ISZERO 0000309d: ISZERO 0000309e: DUP1 0000309f: PUSH2 0x3162 000030a2: JUMPI 000030a3: JUMPDEST 000030a4: PUSH2 0x3135 000030a7: JUMPI 000030a8: PUSH1 0x01 000030aa: PUSH1 0x01 000030ac: PUSH1 0xa0 000030ae: SHL 000030af: SUB 000030b0: PUSH2 0x30bc 000030b3: DUP2 000030b4: SWAP3 000030b5: DUP5 000030b6: CALLER 000030b7: SWAP2 000030b8: PUSH2 0x4a4c 000030bb: JUMP 000030bc: JUMPDEST 000030bd: SWAP4 000030be: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 000030df: PUSH1 0x40 000030e1: MLOAD 000030e2: DUP1 000030e3: PUSH2 0x30f1 000030e6: DUP8 000030e7: DUP3 000030e8: SWAP2 000030e9: SWAP1 000030ea: PUSH1 0x20 000030ec: DUP4 000030ed: ADD 000030ee: SWAP3 000030ef: MSTORE 000030f0: JUMP 000030f1: JUMPDEST 000030f2: SUB 000030f3: SWAP1 000030f4: LOG1 000030f5: AND 000030f6: SWAP3 000030f7: AND 000030f8: SWAP2 000030f9: DUP1 000030fa: DUP4 000030fb: SUB 000030fc: PUSH2 0x3104 000030ff: JUMPI 00003100: POP 00003101: POP 00003102: POP 00003103: JUMP 00003104: JUMPDEST 00003105: PUSH32 0x64283d7b00000000000000000000000000000000000000000000000000000000 00003126: PUSH0 00003127: MSTORE 00003128: PUSH1 0x04 0000312a: MSTORE 0000312b: PUSH1 0x24 0000312d: MSTORE 0000312e: PUSH1 0x44 00003130: MSTORE 00003131: PUSH1 0x64 00003133: PUSH0 00003134: REVERT 00003135: JUMPDEST 00003136: PUSH32 0x7da2ea2b00000000000000000000000000000000000000000000000000000000 00003157: PUSH0 00003158: MSTORE 00003159: PUSH1 0x04 0000315b: DUP3 0000315c: SWAP1 0000315d: MSTORE 0000315e: PUSH1 0x24 00003160: PUSH0 00003161: REVERT 00003162: JUMPDEST 00003163: POP 00003164: DUP2 00003165: PUSH0 00003166: MSTORE 00003167: PUSH1 0x0c 00003169: PUSH1 0x20 0000316b: MSTORE 0000316c: PUSH1 0xff 0000316e: PUSH1 0x01 00003170: PUSH1 0x40 00003172: PUSH0 00003173: KECCAK256 00003174: ADD 00003175: SLOAD 00003176: PUSH1 0xd0 00003178: SHR 00003179: AND 0000317a: ISZERO 0000317b: PUSH2 0x30a3 0000317e: JUMP 0000317f: JUMPDEST 00003180: PUSH32 0x64a0ae9200000000000000000000000000000000000000000000000000000000 000031a1: PUSH0 000031a2: MSTORE 000031a3: PUSH0 000031a4: PUSH1 0x04 000031a6: MSTORE 000031a7: PUSH1 0x24 000031a9: PUSH0 000031aa: REVERT 000031ab: JUMPDEST 000031ac: DUP1 000031ad: PUSH0 000031ae: MSTORE 000031af: PUSH1 0x0c 000031b1: PUSH1 0x20 000031b3: MSTORE 000031b4: PUSH1 0xff 000031b6: PUSH1 0x01 000031b8: PUSH1 0x40 000031ba: PUSH0 000031bb: KECCAK256 000031bc: ADD 000031bd: SLOAD 000031be: PUSH1 0xc8 000031c0: SHR 000031c1: AND 000031c2: ISZERO 000031c3: PUSH2 0x074c 000031c6: JUMPI 000031c7: PUSH2 0x05ad 000031ca: SWAP1 000031cb: PUSH2 0x3c7a 000031ce: JUMP 000031cf: JUMPDEST 000031d0: SWAP1 000031d1: DUP2 000031d2: PUSH1 0x20 000031d4: SWAP2 000031d5: SUB 000031d6: SLT 000031d7: PUSH2 0x042e 000031da: JUMPI 000031db: MLOAD 000031dc: SWAP1 000031dd: JUMP 000031de: JUMPDEST 000031df: PUSH1 0x40 000031e1: MLOAD 000031e2: RETURNDATASIZE 000031e3: PUSH0 000031e4: DUP3 000031e5: RETURNDATACOPY 000031e6: RETURNDATASIZE 000031e7: SWAP1 000031e8: REVERT 000031e9: JUMPDEST 000031ea: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0000320b: PUSH0 0000320c: MSTORE 0000320d: PUSH1 0x11 0000320f: PUSH1 0x04 00003211: MSTORE 00003212: PUSH1 0x24 00003214: PUSH0 00003215: REVERT 00003216: JUMPDEST 00003217: SWAP1 00003218: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003239: DUP3 0000323a: ADD 0000323b: SWAP2 0000323c: DUP3 0000323d: GT 0000323e: PUSH2 0x3243 00003241: JUMPI 00003242: JUMP 00003243: JUMPDEST 00003244: PUSH2 0x31e9 00003247: JUMP 00003248: JUMPDEST 00003249: SWAP2 0000324a: SWAP1 0000324b: DUP3 0000324c: SUB 0000324d: SWAP2 0000324e: DUP3 0000324f: GT 00003250: PUSH2 0x3243 00003253: JUMPI 00003254: JUMP 00003255: JUMPDEST 00003256: DUP1 00003257: PUSH0 00003258: MSTORE 00003259: PUSH1 0x0c 0000325b: PUSH1 0x20 0000325d: MSTORE 0000325e: PUSH1 0xff 00003260: PUSH1 0x01 00003262: PUSH1 0x40 00003264: PUSH0 00003265: KECCAK256 00003266: ADD 00003267: SLOAD 00003268: PUSH1 0xd8 0000326a: SHR 0000326b: AND 0000326c: PUSH2 0x32da 0000326f: JUMPI 00003270: PUSH2 0x3278 00003273: DUP2 00003274: PUSH2 0x4367 00003277: JUMP 00003278: JUMPDEST 00003279: ISZERO 0000327a: ISZERO 0000327b: SWAP1 0000327c: PUSH0 0000327d: MSTORE 0000327e: PUSH1 0x0c 00003280: PUSH1 0x20 00003282: MSTORE 00003283: PUSH16 0xffffffffffffffffffffffffffffffff 00003294: PUSH2 0x32b9 00003297: PUSH2 0x32a4 0000329a: PUSH1 0x40 0000329c: PUSH0 0000329d: KECCAK256 0000329e: SLOAD 0000329f: PUSH1 0x80 000032a1: SHR 000032a2: SWAP1 000032a3: JUMP 000032a4: JUMPDEST 000032a5: PUSH16 0xffffffffffffffffffffffffffffffff 000032b6: AND 000032b7: SWAP1 000032b8: JUMP 000032b9: JUMPDEST 000032ba: AND 000032bb: ISZERO 000032bc: PUSH2 0x32cc 000032bf: JUMPI 000032c0: PUSH2 0x32c7 000032c3: JUMPI 000032c4: PUSH0 000032c5: SWAP1 000032c6: JUMP 000032c7: JUMPDEST 000032c8: PUSH1 0x01 000032ca: SWAP1 000032cb: JUMP 000032cc: JUMPDEST 000032cd: PUSH2 0x32d5 000032d0: JUMPI 000032d1: PUSH1 0x02 000032d3: SWAP1 000032d4: JUMP 000032d5: JUMPDEST 000032d6: PUSH1 0x03 000032d8: SWAP1 000032d9: JUMP 000032da: JUMPDEST 000032db: POP 000032dc: PUSH1 0x04 000032de: SWAP1 000032df: JUMP 000032e0: JUMPDEST 000032e1: SWAP1 000032e2: SWAP3 000032e3: SWAP2 000032e4: PUSH2 0x32ee 000032e7: DUP2 000032e8: DUP6 000032e9: DUP5 000032ea: PUSH2 0x3074 000032ed: JUMP 000032ee: JUMPDEST 000032ef: DUP4 000032f0: EXTCODESIZE 000032f1: PUSH2 0x32fb 000032f4: JUMPI 000032f5: JUMPDEST 000032f6: POP 000032f7: POP 000032f8: POP 000032f9: POP 000032fa: JUMP 000032fb: JUMPDEST 000032fc: PUSH1 0x20 000032fe: SWAP2 000032ff: PUSH2 0x3336 00003302: PUSH1 0x40 00003304: MLOAD 00003305: SWAP5 00003306: DUP6 00003307: SWAP4 00003308: DUP5 00003309: SWAP4 0000330a: PUSH32 0x150b7a0200000000000000000000000000000000000000000000000000000000 0000332b: DUP6 0000332c: MSTORE 0000332d: CALLER 0000332e: PUSH1 0x04 00003330: DUP7 00003331: ADD 00003332: PUSH2 0x44d0 00003335: JUMP 00003336: JUMPDEST 00003337: SUB 00003338: DUP2 00003339: PUSH0 0000333a: PUSH1 0x01 0000333c: PUSH1 0x01 0000333e: PUSH1 0xa0 00003340: SHL 00003341: SUB 00003342: DUP8 00003343: AND 00003344: GAS 00003345: CALL 00003346: PUSH0 00003347: SWAP2 00003348: DUP2 00003349: PUSH2 0x3427 0000334c: JUMPI 0000334d: JUMPDEST 0000334e: POP 0000334f: PUSH2 0x33a0 00003352: JUMPI 00003353: POP 00003354: PUSH2 0x335b 00003357: PUSH2 0x3031 0000335a: JUMP 0000335b: JUMPDEST 0000335c: DUP1 0000335d: MLOAD 0000335e: SWAP2 0000335f: SWAP1 00003360: DUP3 00003361: PUSH2 0x3399 00003364: JUMPI 00003365: PUSH32 0x64a0ae9200000000000000000000000000000000000000000000000000000000 00003386: PUSH0 00003387: MSTORE 00003388: PUSH1 0x01 0000338a: PUSH1 0x01 0000338c: PUSH1 0xa0 0000338e: SHL 0000338f: SUB 00003390: DUP3 00003391: AND 00003392: PUSH1 0x04 00003394: MSTORE 00003395: PUSH1 0x24 00003397: PUSH0 00003398: REVERT 00003399: JUMPDEST 0000339a: SWAP1 0000339b: POP 0000339c: PUSH1 0x20 0000339e: ADD 0000339f: REVERT 000033a0: JUMPDEST 000033a1: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000033c2: PUSH32 0x150b7a0200000000000000000000000000000000000000000000000000000000 000033e3: SWAP2 000033e4: AND 000033e5: SUB 000033e6: PUSH2 0x33f3 000033e9: JUMPI 000033ea: POP 000033eb: PUSH0 000033ec: DUP1 000033ed: DUP1 000033ee: DUP1 000033ef: PUSH2 0x32f5 000033f2: JUMP 000033f3: JUMPDEST 000033f4: PUSH32 0x64a0ae9200000000000000000000000000000000000000000000000000000000 00003415: PUSH0 00003416: MSTORE 00003417: PUSH1 0x01 00003419: PUSH1 0x01 0000341b: PUSH1 0xa0 0000341d: SHL 0000341e: SUB 0000341f: AND 00003420: PUSH1 0x04 00003422: MSTORE 00003423: PUSH1 0x24 00003425: PUSH0 00003426: REVERT 00003427: JUMPDEST 00003428: PUSH2 0x344a 0000342b: SWAP2 0000342c: SWAP3 0000342d: POP 0000342e: PUSH1 0x20 00003430: RETURNDATASIZE 00003431: PUSH1 0x20 00003433: GT 00003434: PUSH2 0x3451 00003437: JUMPI 00003438: JUMPDEST 00003439: PUSH2 0x3442 0000343c: DUP2 0000343d: DUP4 0000343e: PUSH2 0x2388 00003441: JUMP 00003442: JUMPDEST 00003443: DUP2 00003444: ADD 00003445: SWAP1 00003446: PUSH2 0x44bb 00003449: JUMP 0000344a: JUMPDEST 0000344b: SWAP1 0000344c: PUSH0 0000344d: PUSH2 0x334d 00003450: JUMP 00003451: JUMPDEST 00003452: POP 00003453: RETURNDATASIZE 00003454: PUSH2 0x3438 00003457: JUMP 00003458: JUMPDEST 00003459: SWAP2 0000345a: SWAP1 0000345b: DUP3 0000345c: ADD 0000345d: DUP1 0000345e: SWAP3 0000345f: GT 00003460: PUSH2 0x3243 00003463: JUMPI 00003464: JUMP 00003465: JUMPDEST 00003466: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003487: PUSH0 00003488: MSTORE 00003489: PUSH1 0x12 0000348b: PUSH1 0x04 0000348d: MSTORE 0000348e: PUSH1 0x24 00003490: PUSH0 00003491: REVERT 00003492: JUMPDEST 00003493: DUP2 00003494: ISZERO 00003495: PUSH2 0x349c 00003498: JUMPI 00003499: DIV 0000349a: SWAP1 0000349b: JUMP 0000349c: JUMPDEST 0000349d: PUSH2 0x3465 000034a0: JUMP 000034a1: JUMPDEST 000034a2: DUP2 000034a3: ISZERO 000034a4: PUSH2 0x349c 000034a7: JUMPI 000034a8: MOD 000034a9: SWAP1 000034aa: JUMP 000034ab: JUMPDEST 000034ac: PUSH16 0xffffffffffffffffffffffffffffffff 000034bd: PUSH2 0x34d1 000034c0: PUSH2 0x1470 000034c3: DUP4 000034c4: PUSH0 000034c5: MSTORE 000034c6: PUSH1 0x0c 000034c8: PUSH1 0x20 000034ca: MSTORE 000034cb: PUSH1 0x40 000034cd: PUSH0 000034ce: KECCAK256 000034cf: SWAP1 000034d0: JUMP 000034d1: JUMPDEST 000034d2: AND 000034d3: SWAP1 000034d4: DUP2 000034d5: ISZERO 000034d6: PUSH2 0x35da 000034d9: JUMPI 000034da: PUSH2 0x34fa 000034dd: PUSH2 0x34f3 000034e0: PUSH1 0x02 000034e2: PUSH2 0x14ae 000034e5: DUP5 000034e6: PUSH0 000034e7: MSTORE 000034e8: PUSH1 0x0c 000034ea: PUSH1 0x20 000034ec: MSTORE 000034ed: PUSH1 0x40 000034ef: PUSH0 000034f0: KECCAK256 000034f1: SWAP1 000034f2: JUMP 000034f3: JUMPDEST 000034f4: DUP1 000034f5: SWAP4 000034f6: PUSH2 0x451b 000034f9: JUMP 000034fa: JUMPDEST 000034fb: SWAP2 000034fc: PUSH2 0x351a 000034ff: PUSH1 0x03 00003501: PUSH2 0x3512 00003504: DUP5 00003505: PUSH0 00003506: MSTORE 00003507: PUSH1 0x0c 00003509: PUSH1 0x20 0000350b: MSTORE 0000350c: PUSH1 0x40 0000350e: PUSH0 0000350f: KECCAK256 00003510: SWAP1 00003511: JUMP 00003512: JUMPDEST 00003513: ADD 00003514: SLOAD 00003515: SWAP2 00003516: PUSH2 0x44fe 00003519: JUMP 0000351a: JUMPDEST 0000351b: PUSH2 0x352c 0000351e: PUSH2 0x3526 00003521: DUP5 00003522: PUSH2 0x4227 00003525: JUMP 00003526: JUMPDEST 00003527: DUP4 00003528: PUSH2 0x3458 0000352b: JUMP 0000352c: JUMPDEST 0000352d: PUSH2 0x3536 00003530: DUP3 00003531: DUP7 00003532: PUSH2 0x3458 00003535: JUMP 00003536: JUMPDEST 00003537: GT 00003538: ISZERO 00003539: PUSH2 0x35d2 0000353c: JUMPI 0000353d: PUSH2 0x3576 00003540: SWAP2 00003541: PUSH2 0x3562 00003544: PUSH2 0x32a4 00003547: PUSH2 0x32a4 0000354a: PUSH2 0x355b 0000354d: DUP8 0000354e: PUSH0 0000354f: MSTORE 00003550: PUSH1 0x0c 00003552: PUSH1 0x20 00003554: MSTORE 00003555: PUSH1 0x40 00003557: PUSH0 00003558: KECCAK256 00003559: SWAP1 0000355a: JUMP 0000355b: JUMPDEST 0000355c: SLOAD 0000355d: PUSH1 0x80 0000355f: SHR 00003560: SWAP1 00003561: JUMP 00003562: JUMPDEST 00003563: SWAP5 00003564: SUB 00003565: ADD 00003566: SWAP3 00003567: PUSH2 0x3570 0000356a: DUP2 0000356b: DUP6 0000356c: PUSH2 0x3492 0000356f: JUMP 00003570: JUMPDEST 00003571: SWAP4 00003572: PUSH2 0x34a1 00003575: JUMP 00003576: JUMPDEST 00003577: PUSH2 0x35b1 0000357a: JUMPI 0000357b: PUSH2 0x35a3 0000357e: PUSH1 0x01 00003580: PUSH2 0x3594 00003583: PUSH2 0x35ad 00003586: SWAP4 00003587: PUSH0 00003588: MSTORE 00003589: PUSH1 0x0c 0000358b: PUSH1 0x20 0000358d: MSTORE 0000358e: PUSH1 0x40 00003590: PUSH0 00003591: KECCAK256 00003592: SWAP1 00003593: JUMP 00003594: JUMPDEST 00003595: ADD 00003596: SLOAD 00003597: PUSH1 0xa0 00003599: SHR 0000359a: PUSH5 0xffffffffff 000035a0: AND 000035a1: SWAP1 000035a2: JUMP 000035a3: JUMPDEST 000035a4: PUSH5 0xffffffffff 000035aa: AND 000035ab: SWAP1 000035ac: JUMP 000035ad: JUMPDEST 000035ae: ADD 000035af: SWAP1 000035b0: JUMP 000035b1: JUMPDEST 000035b2: SWAP1 000035b3: PUSH2 0x35cd 000035b6: PUSH2 0x35a3 000035b9: PUSH1 0x01 000035bb: PUSH2 0x3594 000035be: DUP2 000035bf: SWAP6 000035c0: PUSH0 000035c1: MSTORE 000035c2: PUSH1 0x0c 000035c4: PUSH1 0x20 000035c6: MSTORE 000035c7: PUSH1 0x40 000035c9: PUSH0 000035ca: KECCAK256 000035cb: SWAP1 000035cc: JUMP 000035cd: JUMPDEST 000035ce: ADD 000035cf: ADD 000035d0: SWAP1 000035d1: JUMP 000035d2: JUMPDEST 000035d3: POP 000035d4: POP 000035d5: POP 000035d6: POP 000035d7: PUSH0 000035d8: SWAP1 000035d9: JUMP 000035da: JUMPDEST 000035db: PUSH32 0x0f04b2a100000000000000000000000000000000000000000000000000000000 000035fc: PUSH0 000035fd: MSTORE 000035fe: PUSH1 0x04 00003600: MSTORE 00003601: PUSH1 0x24 00003603: PUSH0 00003604: REVERT 00003605: JUMPDEST 00003606: DUP1 00003607: PUSH0 00003608: MSTORE 00003609: PUSH1 0x03 0000360b: PUSH1 0x20 0000360d: MSTORE 0000360e: PUSH1 0x01 00003610: PUSH1 0x01 00003612: PUSH1 0xa0 00003614: SHL 00003615: SUB 00003616: PUSH1 0x40 00003618: PUSH0 00003619: KECCAK256 0000361a: SLOAD 0000361b: AND 0000361c: SWAP1 0000361d: DUP2 0000361e: ISZERO 0000361f: PUSH2 0x3626 00003622: JUMPI 00003623: POP 00003624: SWAP1 00003625: JUMP 00003626: JUMPDEST 00003627: PUSH32 0x7e27328900000000000000000000000000000000000000000000000000000000 00003648: PUSH0 00003649: MSTORE 0000364a: PUSH1 0x04 0000364c: MSTORE 0000364d: PUSH1 0x24 0000364f: PUSH0 00003650: REVERT 00003651: JUMPDEST 00003652: PUSH2 0x365a 00003655: DUP2 00003656: PUSH2 0x4227 00003659: JUMP 0000365a: JUMPDEST 0000365b: DUP2 0000365c: PUSH0 0000365d: MSTORE 0000365e: PUSH1 0x0c 00003660: PUSH1 0x20 00003662: MSTORE 00003663: PUSH1 0x03 00003665: PUSH1 0x40 00003667: PUSH0 00003668: KECCAK256 00003669: ADD 0000366a: SLOAD 0000366b: DUP2 0000366c: ADD 0000366d: DUP1 0000366e: SWAP2 0000366f: GT 00003670: PUSH2 0x3243 00003673: JUMPI 00003674: PUSH2 0x05ad 00003677: SWAP2 00003678: PUSH0 00003679: MSTORE 0000367a: PUSH1 0x0c 0000367c: PUSH1 0x20 0000367e: MSTORE 0000367f: PUSH1 0xff 00003681: PUSH1 0x02 00003683: PUSH1 0x40 00003685: PUSH0 00003686: KECCAK256 00003687: ADD 00003688: SLOAD 00003689: PUSH1 0xa0 0000368b: SHR 0000368c: AND 0000368d: SWAP1 0000368e: PUSH2 0x4998 00003691: JUMP 00003692: JUMPDEST 00003693: PUSH1 0x01 00003695: PUSH1 0x01 00003697: PUSH1 0xa0 00003699: SHL 0000369a: SUB 0000369b: PUSH32 0x0000000000000000000000003df2aaede81d2f6b261f79047517713b8e844e04 000036bc: AND 000036bd: ADDRESS 000036be: SUB 000036bf: PUSH2 0x36c4 000036c2: JUMPI 000036c3: JUMP 000036c4: JUMPDEST 000036c5: PUSH32 0xa1c0d6e500000000000000000000000000000000000000000000000000000000 000036e6: PUSH0 000036e7: MSTORE 000036e8: PUSH1 0x04 000036ea: PUSH0 000036eb: REVERT 000036ec: JUMPDEST 000036ed: SWAP1 000036ee: PUSH16 0xffffffffffffffffffffffffffffffff 000036ff: DUP1 00003700: SWAP2 00003701: AND 00003702: SWAP2 00003703: AND 00003704: SUB 00003705: SWAP1 00003706: PUSH16 0xffffffffffffffffffffffffffffffff 00003717: DUP3 00003718: GT 00003719: PUSH2 0x3243 0000371c: JUMPI 0000371d: JUMP 0000371e: JUMPDEST 0000371f: PUSH2 0x05ad 00003722: SWAP1 00003723: DUP1 00003724: PUSH0 00003725: MSTORE 00003726: PUSH1 0x0c 00003728: PUSH1 0x20 0000372a: MSTORE 0000372b: PUSH2 0x374a 0000372e: PUSH16 0xffffffffffffffffffffffffffffffff 0000373f: PUSH1 0x40 00003741: PUSH0 00003742: KECCAK256 00003743: SLOAD 00003744: AND 00003745: SWAP2 00003746: PUSH2 0x3c7a 00003749: JUMP 0000374a: JUMPDEST 0000374b: SWAP1 0000374c: PUSH2 0x36ec 0000374f: JUMP 00003750: JUMPDEST 00003751: PUSH16 0xffffffffffffffffffffffffffffffff 00003762: DUP3 00003763: AND 00003764: DUP1 00003765: ISZERO 00003766: PUSH2 0x395d 00003769: JUMPI 0000376a: PUSH2 0x3772 0000376d: DUP3 0000376e: PUSH2 0x371e 00003771: JUMP 00003772: JUMPDEST 00003773: PUSH16 0xffffffffffffffffffffffffffffffff 00003784: DUP2 00003785: AND 00003786: SWAP1 00003787: DUP2 00003788: DUP4 00003789: GT 0000378a: PUSH2 0x3915 0000378d: JUMPI 0000378e: POP 0000378f: PUSH2 0x37a6 00003792: PUSH2 0x32a4 00003795: PUSH2 0x1470 00003798: DUP6 00003799: PUSH0 0000379a: MSTORE 0000379b: PUSH1 0x0c 0000379d: PUSH1 0x20 0000379f: MSTORE 000037a0: PUSH1 0x40 000037a2: PUSH0 000037a3: KECCAK256 000037a4: SWAP1 000037a5: JUMP 000037a6: JUMPDEST 000037a7: LT 000037a8: PUSH2 0x38b2 000037ab: JUMPI 000037ac: PUSH1 0x01 000037ae: PUSH1 0x01 000037b0: PUSH1 0xa0 000037b2: SHL 000037b3: SUB 000037b4: PUSH32 0xe31f2d40d5780915b1e656a67e11bdf09b0a4a925ec42bbeae220c8ca937ab49 000037d5: SWAP2 000037d6: PUSH2 0x388c 000037d9: PUSH2 0x37ef 000037dc: PUSH1 0x01 000037de: PUSH2 0x11f1 000037e1: DUP8 000037e2: PUSH0 000037e3: MSTORE 000037e4: PUSH1 0x0c 000037e6: PUSH1 0x20 000037e8: MSTORE 000037e9: PUSH1 0x40 000037eb: PUSH0 000037ec: KECCAK256 000037ed: SWAP1 000037ee: JUMP 000037ef: JUMPDEST 000037f0: SWAP2 000037f1: DUP3 000037f2: PUSH2 0x3808 000037f5: PUSH1 0x02 000037f7: PUSH2 0x11f1 000037fa: DUP10 000037fb: PUSH0 000037fc: MSTORE 000037fd: PUSH1 0x0c 000037ff: PUSH1 0x20 00003801: MSTORE 00003802: PUSH1 0x40 00003804: PUSH0 00003805: KECCAK256 00003806: SWAP1 00003807: JUMP 00003808: JUMPDEST 00003809: PUSH2 0x2ec9 0000380c: PUSH2 0x381d 0000380f: DUP10 00003810: PUSH0 00003811: MSTORE 00003812: PUSH1 0x0c 00003814: PUSH1 0x20 00003816: MSTORE 00003817: PUSH1 0x40 00003819: PUSH0 0000381a: KECCAK256 0000381b: SWAP1 0000381c: JUMP 0000381d: JUMPDEST 0000381e: PUSH2 0x3851 00003821: DUP12 00003822: PUSH2 0x383b 00003825: DUP4 00003826: SLOAD 00003827: PUSH16 0xffffffffffffffffffffffffffffffff 00003838: AND 00003839: SWAP1 0000383a: JUMP 0000383b: JUMPDEST 0000383c: SUB 0000383d: PUSH16 0xffffffffffffffffffffffffffffffff 0000384e: AND 0000384f: SWAP1 00003850: JUMP 00003851: JUMPDEST 00003852: PUSH16 0xffffffffffffffffffffffffffffffff 00003863: AND 00003864: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000 00003885: DUP3 00003886: SLOAD 00003887: AND 00003888: OR 00003889: SWAP1 0000388a: SSTORE 0000388b: JUMP 0000388c: JUMPDEST 0000388d: PUSH1 0x40 0000388f: MLOAD 00003890: PUSH16 0xffffffffffffffffffffffffffffffff 000038a1: SWAP1 000038a2: SWAP6 000038a3: AND 000038a4: DUP6 000038a5: MSTORE 000038a6: AND 000038a7: SWAP3 000038a8: DUP1 000038a9: PUSH1 0x20 000038ab: DUP2 000038ac: ADD 000038ad: JUMPDEST 000038ae: SUB 000038af: SWAP1 000038b0: LOG3 000038b1: JUMP 000038b2: JUMPDEST 000038b3: PUSH2 0x086e 000038b6: DUP4 000038b7: DUP4 000038b8: PUSH2 0x38cc 000038bb: PUSH2 0x1470 000038be: DUP3 000038bf: PUSH0 000038c0: MSTORE 000038c1: PUSH1 0x0c 000038c3: PUSH1 0x20 000038c5: MSTORE 000038c6: PUSH1 0x40 000038c8: PUSH0 000038c9: KECCAK256 000038ca: SWAP1 000038cb: JUMP 000038cc: JUMPDEST 000038cd: SWAP1 000038ce: PUSH32 0xcb5f605f00000000000000000000000000000000000000000000000000000000 000038ef: PUSH0 000038f0: MSTORE 000038f1: SWAP3 000038f2: SWAP2 000038f3: PUSH16 0xffffffffffffffffffffffffffffffff 00003904: DUP1 00003905: SWAP3 00003906: PUSH1 0x64 00003908: SWAP6 00003909: PUSH1 0x04 0000390b: MSTORE 0000390c: AND 0000390d: PUSH1 0x24 0000390f: MSTORE 00003910: AND 00003911: PUSH1 0x44 00003913: MSTORE 00003914: JUMP 00003915: JUMPDEST 00003916: PUSH32 0xe977140100000000000000000000000000000000000000000000000000000000 00003937: PUSH0 00003938: MSTORE 00003939: PUSH1 0x04 0000393b: DUP5 0000393c: SWAP1 0000393d: MSTORE 0000393e: PUSH16 0xffffffffffffffffffffffffffffffff 0000394f: DUP1 00003950: DUP7 00003951: AND 00003952: PUSH1 0x24 00003954: MSTORE 00003955: AND 00003956: PUSH1 0x44 00003958: MSTORE 00003959: PUSH1 0x64 0000395b: PUSH0 0000395c: REVERT 0000395d: JUMPDEST 0000395e: PUSH32 0xea66b87100000000000000000000000000000000000000000000000000000000 0000397f: PUSH0 00003980: MSTORE 00003981: PUSH1 0x04 00003983: DUP3 00003984: SWAP1 00003985: MSTORE 00003986: PUSH1 0x24 00003988: PUSH0 00003989: REVERT 0000398a: JUMPDEST 0000398b: PUSH0 0000398c: DUP2 0000398d: DUP2 0000398e: MSTORE 0000398f: PUSH1 0x0c 00003991: PUSH1 0x20 00003993: MSTORE 00003994: PUSH1 0x40 00003996: SWAP1 00003997: KECCAK256 00003998: SLOAD 00003999: PUSH2 0x39a4 0000399c: SWAP1 0000399d: PUSH1 0x80 0000399f: SHR 000039a0: PUSH2 0x32a4 000039a3: JUMP 000039a4: JUMPDEST 000039a5: ISZERO 000039a6: PUSH2 0x3a72 000039a9: JUMPI 000039aa: PUSH2 0x39b2 000039ad: DUP2 000039ae: PUSH2 0x4227 000039b1: JUMP 000039b2: JUMPDEST 000039b3: DUP1 000039b4: PUSH2 0x3a53 000039b7: JUMPI 000039b8: JUMPDEST 000039b9: POP 000039ba: PUSH2 0x39d8 000039bd: PUSH5 0xffffffffff 000039c3: TIMESTAMP 000039c4: AND 000039c5: PUSH1 0x01 000039c7: PUSH2 0x127b 000039ca: DUP5 000039cb: PUSH0 000039cc: MSTORE 000039cd: PUSH1 0x0c 000039cf: PUSH1 0x20 000039d1: MSTORE 000039d2: PUSH1 0x40 000039d4: PUSH0 000039d5: KECCAK256 000039d6: SWAP1 000039d7: JUMP 000039d8: JUMPDEST 000039d9: PUSH2 0x39ee 000039dc: PUSH0 000039dd: PUSH2 0x12dc 000039e0: DUP4 000039e1: PUSH0 000039e2: MSTORE 000039e3: PUSH1 0x0c 000039e5: PUSH1 0x20 000039e7: MSTORE 000039e8: PUSH1 0x40 000039ea: PUSH0 000039eb: KECCAK256 000039ec: SWAP1 000039ed: JUMP 000039ee: JUMPDEST 000039ef: DUP1 000039f0: PUSH0 000039f1: MSTORE 000039f2: PUSH1 0x0c 000039f4: PUSH1 0x20 000039f6: MSTORE 000039f7: PUSH1 0x01 000039f9: PUSH1 0x01 000039fb: PUSH1 0xa0 000039fd: SHL 000039fe: SUB 000039ff: PUSH1 0x01 00003a01: PUSH1 0x40 00003a03: PUSH0 00003a04: KECCAK256 00003a05: ADD 00003a06: SLOAD 00003a07: AND 00003a08: DUP2 00003a09: PUSH0 00003a0a: MSTORE 00003a0b: PUSH1 0x03 00003a0d: PUSH1 0x20 00003a0f: MSTORE 00003a10: PUSH1 0x01 00003a12: PUSH1 0x01 00003a14: PUSH1 0xa0 00003a16: SHL 00003a17: SUB 00003a18: PUSH1 0x40 00003a1a: PUSH0 00003a1b: KECCAK256 00003a1c: SLOAD 00003a1d: AND 00003a1e: SWAP2 00003a1f: PUSH32 0xda83bf669c651406e02062769e01d14cccb5625ea685fd95e0e56d29597dac47 00003a40: PUSH1 0x20 00003a42: PUSH2 0x3a4a 00003a45: DUP4 00003a46: PUSH2 0x3651 00003a49: JUMP 00003a4a: JUMPDEST 00003a4b: PUSH1 0x40 00003a4d: MLOAD 00003a4e: SWAP1 00003a4f: DUP2 00003a50: MSTORE 00003a51: LOG4 00003a52: JUMP 00003a53: JUMPDEST 00003a54: PUSH2 0x3a6a 00003a57: PUSH1 0x03 00003a59: PUSH2 0x1447 00003a5c: DUP5 00003a5d: PUSH0 00003a5e: MSTORE 00003a5f: PUSH1 0x0c 00003a61: PUSH1 0x20 00003a63: MSTORE 00003a64: PUSH1 0x40 00003a66: PUSH0 00003a67: KECCAK256 00003a68: SWAP1 00003a69: JUMP 00003a6a: JUMPDEST 00003a6b: SWAP1 00003a6c: SSTORE 00003a6d: PUSH0 00003a6e: PUSH2 0x39b8 00003a71: JUMP 00003a72: JUMPDEST 00003a73: PUSH32 0xd2657d5a00000000000000000000000000000000000000000000000000000000 00003a94: PUSH0 00003a95: SWAP1 00003a96: DUP2 00003a97: MSTORE 00003a98: PUSH1 0x04 00003a9a: SWAP2 00003a9b: SWAP1 00003a9c: SWAP2 00003a9d: MSTORE 00003a9e: PUSH1 0x24 00003aa0: MSTORE 00003aa1: PUSH1 0x44 00003aa3: PUSH0 00003aa4: REVERT 00003aa5: JUMPDEST 00003aa6: DUP1 00003aa7: PUSH0 00003aa8: MSTORE 00003aa9: PUSH1 0x0c 00003aab: PUSH1 0x20 00003aad: MSTORE 00003aae: PUSH1 0x40 00003ab0: PUSH0 00003ab1: KECCAK256 00003ab2: SLOAD 00003ab3: PUSH1 0x80 00003ab5: SHR 00003ab6: PUSH2 0x3b07 00003ab9: JUMPI 00003aba: PUSH2 0x3ac3 00003abd: DUP3 00003abe: DUP3 00003abf: PUSH2 0x4275 00003ac2: JUMP 00003ac3: JUMPDEST 00003ac4: PUSH1 0x40 00003ac6: MLOAD 00003ac7: PUSH16 0xffffffffffffffffffffffffffffffff 00003ad8: SWAP3 00003ad9: SWAP1 00003ada: SWAP3 00003adb: AND 00003adc: DUP3 00003add: MSTORE 00003ade: CALLER 00003adf: SWAP2 00003ae0: PUSH32 0xc2a543cfadbf862642247e28711aaa30e3460384be5712be6557fee3384454fd 00003b01: SWAP1 00003b02: PUSH1 0x20 00003b04: SWAP1 00003b05: LOG3 00003b06: JUMP 00003b07: JUMPDEST 00003b08: PUSH32 0xdc6fbbbc00000000000000000000000000000000000000000000000000000000 00003b29: PUSH0 00003b2a: MSTORE 00003b2b: PUSH1 0x04 00003b2d: MSTORE 00003b2e: PUSH1 0x24 00003b30: PUSH0 00003b31: REVERT 00003b32: JUMPDEST 00003b33: PUSH16 0xffffffffffffffffffffffffffffffff 00003b44: DUP3 00003b45: AND 00003b46: DUP1 00003b47: ISZERO 00003b48: PUSH2 0x3c4e 00003b4b: JUMPI 00003b4c: PUSH0 00003b4d: DUP3 00003b4e: DUP2 00003b4f: MSTORE 00003b50: PUSH1 0x0c 00003b52: PUSH1 0x20 00003b54: MSTORE 00003b55: PUSH1 0x40 00003b57: SWAP1 00003b58: KECCAK256 00003b59: PUSH1 0x02 00003b5b: DUP2 00003b5c: ADD 00003b5d: SLOAD 00003b5e: PUSH1 0x01 00003b60: PUSH1 0x01 00003b62: PUSH1 0xa0 00003b64: SHL 00003b65: SUB 00003b66: AND 00003b67: SWAP2 00003b68: SWAP1 00003b69: SWAP2 00003b6a: DUP2 00003b6b: PUSH16 0xffffffffffffffffffffffffffffffff 00003b7c: DUP1 00003b7d: DUP6 00003b7e: SLOAD 00003b7f: AND 00003b80: AND 00003b81: ADD 00003b82: SWAP3 00003b83: PUSH16 0xffffffffffffffffffffffffffffffff 00003b94: DUP5 00003b95: GT 00003b96: PUSH2 0x3243 00003b99: JUMPI 00003b9a: PUSH2 0x3c07 00003b9d: SWAP4 00003b9e: PUSH2 0x3bdd 00003ba1: SWAP2 00003ba2: SWAP1 00003ba3: PUSH16 0xffffffffffffffffffffffffffffffff 00003bb4: AND 00003bb5: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000 00003bd6: DUP3 00003bd7: SLOAD 00003bd8: AND 00003bd9: OR 00003bda: SWAP1 00003bdb: SSTORE 00003bdc: JUMP 00003bdd: JUMPDEST 00003bde: PUSH2 0x3bf8 00003be1: DUP2 00003be2: PUSH1 0x01 00003be4: PUSH1 0x01 00003be6: PUSH1 0xa0 00003be8: SHL 00003be9: SUB 00003bea: AND 00003beb: PUSH0 00003bec: MSTORE 00003bed: PUSH1 0x07 00003bef: PUSH1 0x20 00003bf1: MSTORE 00003bf2: PUSH1 0x40 00003bf4: PUSH0 00003bf5: KECCAK256 00003bf6: SWAP1 00003bf7: JUMP 00003bf8: JUMPDEST 00003bf9: DUP3 00003bfa: DUP2 00003bfb: SLOAD 00003bfc: ADD 00003bfd: SWAP1 00003bfe: SSTORE 00003bff: ADDRESS 00003c00: SWAP1 00003c01: CALLER 00003c02: SWAP1 00003c03: PUSH2 0x49f2 00003c06: JUMP 00003c07: JUMPDEST 00003c08: PUSH1 0x40 00003c0a: MLOAD 00003c0b: PUSH16 0xffffffffffffffffffffffffffffffff 00003c1c: SWAP1 00003c1d: SWAP3 00003c1e: AND 00003c1f: DUP3 00003c20: MSTORE 00003c21: CALLER 00003c22: SWAP2 00003c23: PUSH32 0xa06c1466b3c9751408a5ac337a2e8808e5ee0ceed1fd70635d041b21174eb6b4 00003c44: SWAP1 00003c45: DUP1 00003c46: PUSH1 0x20 00003c48: DUP2 00003c49: ADD 00003c4a: PUSH2 0x38ad 00003c4d: JUMP 00003c4e: JUMPDEST 00003c4f: POP 00003c50: PUSH32 0x33f2df5a00000000000000000000000000000000000000000000000000000000 00003c71: PUSH0 00003c72: MSTORE 00003c73: PUSH1 0x04 00003c75: MSTORE 00003c76: PUSH1 0x24 00003c78: PUSH0 00003c79: REVERT 00003c7a: JUMPDEST 00003c7b: DUP1 00003c7c: PUSH0 00003c7d: MSTORE 00003c7e: PUSH1 0x0c 00003c80: PUSH1 0x20 00003c82: MSTORE 00003c83: PUSH16 0xffffffffffffffffffffffffffffffff 00003c94: PUSH1 0x40 00003c96: PUSH0 00003c97: KECCAK256 00003c98: SLOAD 00003c99: AND 00003c9a: SWAP1 00003c9b: DUP2 00003c9c: ISZERO 00003c9d: PUSH2 0x3cbe 00003ca0: JUMPI 00003ca1: PUSH2 0x3ca9 00003ca4: SWAP1 00003ca5: PUSH2 0x3651 00003ca8: JUMP 00003ca9: JUMPDEST 00003caa: DUP1 00003cab: DUP3 00003cac: LT 00003cad: PUSH2 0x3cba 00003cb0: JUMPI 00003cb1: PUSH2 0x05ad 00003cb4: SWAP2 00003cb5: POP 00003cb6: PUSH2 0x4c4b 00003cb9: JUMP 00003cba: JUMPDEST 00003cbb: POP 00003cbc: SWAP1 00003cbd: JUMP 00003cbe: JUMPDEST 00003cbf: POP 00003cc0: POP 00003cc1: PUSH0 00003cc2: SWAP1 00003cc3: JUMP 00003cc4: JUMPDEST 00003cc5: SWAP1 00003cc6: DUP2 00003cc7: PUSH1 0x20 00003cc9: SWAP2 00003cca: SUB 00003ccb: SLT 00003ccc: PUSH2 0x042e 00003ccf: JUMPI 00003cd0: MLOAD 00003cd1: PUSH1 0xff 00003cd3: DUP2 00003cd4: AND 00003cd5: DUP2 00003cd6: SUB 00003cd7: PUSH2 0x042e 00003cda: JUMPI 00003cdb: SWAP1 00003cdc: JUMP 00003cdd: JUMPDEST 00003cde: SWAP1 00003cdf: PUSH2 0x0120 00003ce2: PUSH1 0x03 00003ce4: SWAP2 00003ce5: PUSH2 0x3d3e 00003ce8: PUSH2 0x3d01 00003ceb: DUP3 00003cec: MLOAD 00003ced: PUSH16 0xffffffffffffffffffffffffffffffff 00003cfe: AND 00003cff: SWAP1 00003d00: JUMP 00003d01: JUMPDEST 00003d02: DUP6 00003d03: SWAP1 00003d04: PUSH16 0xffffffffffffffffffffffffffffffff 00003d15: AND 00003d16: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000 00003d37: DUP3 00003d38: SLOAD 00003d39: AND 00003d3a: OR 00003d3b: SWAP1 00003d3c: SSTORE 00003d3d: JUMP 00003d3e: JUMPDEST 00003d3f: PUSH2 0x3d9f 00003d42: PUSH2 0x3d5e 00003d45: PUSH1 0x20 00003d47: DUP4 00003d48: ADD 00003d49: MLOAD 00003d4a: PUSH16 0xffffffffffffffffffffffffffffffff 00003d5b: AND 00003d5c: SWAP1 00003d5d: JUMP 00003d5e: JUMPDEST 00003d5f: DUP6 00003d60: SLOAD 00003d61: PUSH16 0xffffffffffffffffffffffffffffffff 00003d72: AND 00003d73: PUSH1 0x80 00003d75: SWAP2 00003d76: SWAP1 00003d77: SWAP2 00003d78: SHL 00003d79: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000 00003d9a: AND 00003d9b: OR 00003d9c: DUP6 00003d9d: SSTORE 00003d9e: JUMP 00003d9f: JUMPDEST 00003da0: PUSH2 0x3f5b 00003da3: PUSH1 0x01 00003da5: DUP6 00003da6: ADD 00003da7: PUSH2 0x3df1 00003daa: PUSH2 0x3dbd 00003dad: PUSH1 0x40 00003daf: DUP6 00003db0: ADD 00003db1: MLOAD 00003db2: PUSH1 0x01 00003db4: PUSH1 0x01 00003db6: PUSH1 0xa0 00003db8: SHL 00003db9: SUB 00003dba: AND 00003dbb: SWAP1 00003dbc: JUMP 00003dbd: JUMPDEST 00003dbe: DUP3 00003dbf: SWAP1 00003dc0: PUSH1 0x01 00003dc2: PUSH1 0x01 00003dc4: PUSH1 0xa0 00003dc6: SHL 00003dc7: SUB 00003dc8: AND 00003dc9: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00003dea: DUP3 00003deb: SLOAD 00003dec: AND 00003ded: OR 00003dee: SWAP1 00003def: SSTORE 00003df0: JUMP 00003df1: JUMPDEST 00003df2: PUSH2 0x3e50 00003df5: PUSH2 0x3e06 00003df8: PUSH1 0x60 00003dfa: DUP6 00003dfb: ADD 00003dfc: MLOAD 00003dfd: PUSH5 0xffffffffff 00003e03: AND 00003e04: SWAP1 00003e05: JUMP 00003e06: JUMPDEST 00003e07: DUP3 00003e08: SLOAD 00003e09: PUSH32 0xffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff 00003e2a: AND 00003e2b: PUSH1 0xa0 00003e2d: SWAP2 00003e2e: SWAP1 00003e2f: SWAP2 00003e30: SHL 00003e31: PUSH25 0xffffffffff0000000000000000000000000000000000000000 00003e4b: AND 00003e4c: OR 00003e4d: DUP3 00003e4e: SSTORE 00003e4f: JUMP 00003e50: JUMPDEST 00003e51: PUSH2 0x3eab 00003e54: PUSH2 0x3e60 00003e57: PUSH1 0x80 00003e59: DUP6 00003e5a: ADD 00003e5b: MLOAD 00003e5c: ISZERO 00003e5d: ISZERO 00003e5e: SWAP1 00003e5f: JUMP 00003e60: JUMPDEST 00003e61: DUP3 00003e62: SLOAD 00003e63: PUSH32 0xffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff 00003e84: AND 00003e85: SWAP1 00003e86: ISZERO 00003e87: ISZERO 00003e88: PUSH1 0xc8 00003e8a: SHL 00003e8b: PUSH26 0xff00000000000000000000000000000000000000000000000000 00003ea6: AND 00003ea7: OR 00003ea8: DUP3 00003ea9: SSTORE 00003eaa: JUMP 00003eab: JUMPDEST 00003eac: PUSH2 0x3f07 00003eaf: PUSH2 0x3ebb 00003eb2: PUSH1 0xa0 00003eb4: DUP6 00003eb5: ADD 00003eb6: MLOAD 00003eb7: ISZERO 00003eb8: ISZERO 00003eb9: SWAP1 00003eba: JUMP 00003ebb: JUMPDEST 00003ebc: DUP3 00003ebd: SLOAD 00003ebe: PUSH32 0xffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff 00003edf: AND 00003ee0: SWAP1 00003ee1: ISZERO 00003ee2: ISZERO 00003ee3: PUSH1 0xd0 00003ee5: SHL 00003ee6: PUSH27 0xff0000000000000000000000000000000000000000000000000000 00003f02: AND 00003f03: OR 00003f04: DUP3 00003f05: SSTORE 00003f06: JUMP 00003f07: JUMPDEST 00003f08: PUSH1 0xc0 00003f0a: DUP4 00003f0b: ADD 00003f0c: MLOAD 00003f0d: ISZERO 00003f0e: ISZERO 00003f0f: DUP2 00003f10: SLOAD 00003f11: PUSH32 0xffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003f32: AND 00003f33: SWAP1 00003f34: ISZERO 00003f35: ISZERO 00003f36: PUSH1 0xd8 00003f38: SHL 00003f39: PUSH28 0xff000000000000000000000000000000000000000000000000000000 00003f56: AND 00003f57: OR 00003f58: SWAP1 00003f59: SSTORE 00003f5a: JUMP 00003f5b: JUMPDEST 00003f5c: PUSH2 0x3fc5 00003f5f: PUSH1 0x02 00003f61: DUP6 00003f62: ADD 00003f63: PUSH2 0x3f79 00003f66: PUSH2 0x3dbd 00003f69: PUSH1 0xe0 00003f6b: DUP6 00003f6c: ADD 00003f6d: MLOAD 00003f6e: PUSH1 0x01 00003f70: PUSH1 0x01 00003f72: PUSH1 0xa0 00003f74: SHL 00003f75: SUB 00003f76: AND 00003f77: SWAP1 00003f78: JUMP 00003f79: JUMPDEST 00003f7a: PUSH2 0x0100 00003f7d: DUP4 00003f7e: ADD 00003f7f: MLOAD 00003f80: DUP2 00003f81: SLOAD 00003f82: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff 00003fa3: AND 00003fa4: PUSH1 0xa0 00003fa6: SWAP2 00003fa7: SWAP1 00003fa8: SWAP2 00003fa9: SHL 00003faa: PUSH21 0xff0000000000000000000000000000000000000000 00003fc0: AND 00003fc1: OR 00003fc2: SWAP1 00003fc3: SSTORE 00003fc4: JUMP 00003fc5: JUMPDEST 00003fc6: ADD 00003fc7: MLOAD 00003fc8: SWAP2 00003fc9: ADD 00003fca: SSTORE 00003fcb: JUMP 00003fcc: JUMPDEST 00003fcd: SWAP3 00003fce: SWAP5 00003fcf: SWAP4 00003fd0: SWAP2 00003fd1: PUSH1 0x01 00003fd3: PUSH1 0x01 00003fd5: PUSH1 0xa0 00003fd7: SHL 00003fd8: SUB 00003fd9: DUP5 00003fda: AND 00003fdb: SWAP2 00003fdc: DUP3 00003fdd: ISZERO 00003fde: PUSH2 0x41a5 00003fe1: JUMPI 00003fe2: PUSH1 0x01 00003fe4: PUSH1 0x01 00003fe6: PUSH1 0xa0 00003fe8: SHL 00003fe9: SUB 00003fea: DUP8 00003feb: AND 00003fec: SWAP5 00003fed: PUSH1 0x40 00003fef: MLOAD 00003ff0: PUSH32 0x313ce56700000000000000000000000000000000000000000000000000000000 00004011: DUP2 00004012: MSTORE 00004013: PUSH1 0x20 00004015: DUP2 00004016: PUSH1 0x04 00004018: DUP2 00004019: DUP11 0000401a: GAS 0000401b: STATICCALL 0000401c: SWAP1 0000401d: DUP2 0000401e: ISZERO 0000401f: PUSH2 0x16f5 00004022: JUMPI 00004023: PUSH0 00004024: SWAP2 00004025: PUSH2 0x4176 00004028: JUMPI 00004029: JUMPDEST 0000402a: POP 0000402b: PUSH1 0x12 0000402d: PUSH1 0xff 0000402f: DUP3 00004030: AND 00004031: GT 00004032: PUSH2 0x4141 00004035: JUMPI 00004036: PUSH1 0x08 00004038: SLOAD 00004039: SWAP9 0000403a: PUSH2 0x4041 0000403d: PUSH2 0x23c9 00004040: JUMP 00004041: JUMPDEST 00004042: PUSH0 00004043: DUP2 00004044: MSTORE 00004045: PUSH16 0xffffffffffffffffffffffffffffffff 00004056: DUP7 00004057: AND 00004058: PUSH1 0x20 0000405a: DUP3 0000405b: ADD 0000405c: MSTORE 0000405d: SWAP3 0000405e: PUSH1 0x01 00004060: PUSH1 0x01 00004062: PUSH1 0xa0 00004064: SHL 00004065: SUB 00004066: AND 00004067: PUSH1 0x40 00004069: DUP5 0000406a: ADD 0000406b: MSTORE 0000406c: PUSH5 0xffffffffff 00004072: TIMESTAMP 00004073: AND 00004074: PUSH1 0x60 00004076: DUP5 00004077: ADD 00004078: MSTORE 00004079: PUSH1 0x01 0000407b: PUSH1 0x80 0000407d: DUP5 0000407e: ADD 0000407f: MSTORE 00004080: DUP7 00004081: ISZERO 00004082: ISZERO 00004083: PUSH1 0xa0 00004085: DUP5 00004086: ADD 00004087: MSTORE 00004088: PUSH0 00004089: PUSH1 0xc0 0000408b: DUP5 0000408c: ADD 0000408d: MSTORE 0000408e: PUSH1 0x01 00004090: PUSH1 0x01 00004092: PUSH1 0xa0 00004094: SHL 00004095: SUB 00004096: AND 00004097: PUSH1 0xe0 00004099: DUP4 0000409a: ADD 0000409b: MSTORE 0000409c: PUSH1 0xff 0000409e: AND 0000409f: PUSH2 0x0100 000040a2: DUP3 000040a3: ADD 000040a4: MSTORE 000040a5: PUSH2 0x0120 000040a8: DUP2 000040a9: ADD 000040aa: PUSH0 000040ab: SWAP1 000040ac: MSTORE 000040ad: PUSH2 0x40be 000040b0: DUP9 000040b1: PUSH0 000040b2: MSTORE 000040b3: PUSH1 0x0c 000040b5: PUSH1 0x20 000040b7: MSTORE 000040b8: PUSH1 0x40 000040ba: PUSH0 000040bb: KECCAK256 000040bc: SWAP1 000040bd: JUMP 000040be: JUMPDEST 000040bf: SWAP1 000040c0: PUSH2 0x40c8 000040c3: SWAP2 000040c4: PUSH2 0x3cdd 000040c7: JUMP 000040c8: JUMPDEST 000040c9: PUSH1 0x01 000040cb: DUP8 000040cc: ADD 000040cd: PUSH1 0x08 000040cf: SSTORE 000040d0: PUSH2 0x40d9 000040d3: DUP8 000040d4: DUP3 000040d5: PUSH2 0x4ca7 000040d8: JUMP 000040d9: JUMPDEST 000040da: PUSH1 0x40 000040dc: MLOAD 000040dd: SWAP2 000040de: PUSH1 0x01 000040e0: PUSH1 0x01 000040e2: PUSH1 0xa0 000040e4: SHL 000040e5: SUB 000040e6: DUP4 000040e7: SWAP3 000040e8: AND 000040e9: SWAP5 000040ea: PUSH2 0x411b 000040ed: SWAP2 000040ee: DUP10 000040ef: DUP5 000040f0: SWAP2 000040f1: SWAP3 000040f2: PUSH16 0xffffffffffffffffffffffffffffffff 00004103: PUSH1 0x40 00004105: SWAP3 00004106: SWAP6 00004107: SWAP5 00004108: PUSH1 0x60 0000410a: DUP6 0000410b: ADD 0000410c: SWAP7 0000410d: DUP6 0000410e: MSTORE 0000410f: AND 00004110: PUSH1 0x20 00004112: DUP5 00004113: ADD 00004114: MSTORE 00004115: ISZERO 00004116: ISZERO 00004117: SWAP2 00004118: ADD 00004119: MSTORE 0000411a: JUMP 0000411b: JUMPDEST 0000411c: SUB 0000411d: PUSH32 0x2262fa211f8507786a60fefb231f7898b8145fe16350f281c91f121bd2ee118d 0000413e: SWAP2 0000413f: LOG4 00004140: JUMP 00004141: JUMPDEST 00004142: PUSH32 0xc9f5539200000000000000000000000000000000000000000000000000000000 00004163: PUSH0 00004164: MSTORE 00004165: PUSH1 0x01 00004167: PUSH1 0x01 00004169: PUSH1 0xa0 0000416b: SHL 0000416c: SUB 0000416d: DUP8 0000416e: AND 0000416f: PUSH1 0x04 00004171: MSTORE 00004172: PUSH1 0x24 00004174: PUSH0 00004175: REVERT 00004176: JUMPDEST 00004177: PUSH2 0x4198 0000417a: SWAP2 0000417b: POP 0000417c: PUSH1 0x20 0000417e: RETURNDATASIZE 0000417f: PUSH1 0x20 00004181: GT 00004182: PUSH2 0x419e 00004185: JUMPI 00004186: JUMPDEST 00004187: PUSH2 0x4190 0000418a: DUP2 0000418b: DUP4 0000418c: PUSH2 0x2388 0000418f: JUMP 00004190: JUMPDEST 00004191: DUP2 00004192: ADD 00004193: SWAP1 00004194: PUSH2 0x3cc4 00004197: JUMP 00004198: JUMPDEST 00004199: PUSH0 0000419a: PUSH2 0x4029 0000419d: JUMP 0000419e: JUMPDEST 0000419f: POP 000041a0: RETURNDATASIZE 000041a1: PUSH2 0x4186 000041a4: JUMP 000041a5: JUMPDEST 000041a6: PUSH32 0xf9bb0fb300000000000000000000000000000000000000000000000000000000 000041c7: PUSH0 000041c8: MSTORE 000041c9: PUSH1 0x04 000041cb: PUSH0 000041cc: REVERT 000041cd: JUMPDEST 000041ce: PUSH1 0x40 000041d0: MLOAD 000041d1: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 000041f2: PUSH1 0x20 000041f4: DUP3 000041f5: ADD 000041f6: MSTORE 000041f7: PUSH1 0x01 000041f9: PUSH1 0x01 000041fb: PUSH1 0xa0 000041fd: SHL 000041fe: SUB 000041ff: SWAP3 00004200: SWAP1 00004201: SWAP3 00004202: AND 00004203: PUSH1 0x24 00004205: DUP4 00004206: ADD 00004207: MSTORE 00004208: PUSH1 0x44 0000420a: DUP1 0000420b: DUP4 0000420c: ADD 0000420d: SWAP4 0000420e: SWAP1 0000420f: SWAP4 00004210: MSTORE 00004211: SWAP2 00004212: DUP2 00004213: MSTORE 00004214: PUSH2 0x23d9 00004217: SWAP2 00004218: PUSH2 0x4222 0000421b: PUSH1 0x64 0000421d: DUP4 0000421e: PUSH2 0x2388 00004221: JUMP 00004222: JUMPDEST 00004223: PUSH2 0x4ded 00004226: JUMP 00004227: JUMPDEST 00004228: PUSH0 00004229: SWAP1 0000422a: DUP2 0000422b: MSTORE 0000422c: PUSH1 0x0c 0000422e: PUSH1 0x20 00004230: MSTORE 00004231: PUSH1 0x40 00004233: SWAP1 00004234: KECCAK256 00004235: PUSH1 0x01 00004237: DUP2 00004238: ADD 00004239: SLOAD 0000423a: SWAP1 0000423b: SLOAD 0000423c: PUSH1 0x80 0000423e: SHR 0000423f: SWAP1 00004240: PUSH1 0xa0 00004242: SHR 00004243: PUSH5 0xffffffffff 00004249: AND 0000424a: DUP2 0000424b: ISZERO 0000424c: DUP1 0000424d: ISZERO 0000424e: PUSH2 0x426b 00004251: JUMPI 00004252: JUMPDEST 00004253: PUSH2 0x3cbe 00004256: JUMPI 00004257: TIMESTAMP 00004258: SUB 00004259: DUP2 0000425a: DUP2 0000425b: MUL 0000425c: SWAP2 0000425d: DUP2 0000425e: DUP4 0000425f: DIV 00004260: EQ 00004261: SWAP1 00004262: ISZERO 00004263: OR 00004264: ISZERO 00004265: PUSH2 0x3243 00004268: JUMPI 00004269: SWAP1 0000426a: JUMP 0000426b: JUMPDEST 0000426c: POP 0000426d: DUP1 0000426e: TIMESTAMP 0000426f: GT 00004270: ISZERO 00004271: PUSH2 0x4252 00004274: JUMP 00004275: JUMPDEST 00004276: SWAP1 00004277: DUP2 00004278: PUSH0 00004279: MSTORE 0000427a: PUSH1 0x0c 0000427c: PUSH1 0x20 0000427e: MSTORE 0000427f: PUSH16 0xffffffffffffffffffffffffffffffff 00004290: DUP1 00004291: PUSH1 0x40 00004293: PUSH0 00004294: KECCAK256 00004295: SLOAD 00004296: PUSH1 0x80 00004298: SHR 00004299: AND 0000429a: AND 0000429b: PUSH16 0xffffffffffffffffffffffffffffffff 000042ac: DUP3 000042ad: AND 000042ae: EQ 000042af: PUSH2 0x4324 000042b2: JUMPI 000042b3: PUSH2 0x42bb 000042b6: DUP3 000042b7: PUSH2 0x4227 000042ba: JUMP 000042bb: JUMPDEST 000042bc: DUP1 000042bd: PUSH2 0x42f6 000042c0: JUMPI 000042c1: JUMPDEST 000042c2: POP 000042c3: PUSH2 0x12dc 000042c6: PUSH2 0x23d9 000042c9: SWAP3 000042ca: PUSH2 0x42e8 000042cd: PUSH5 0xffffffffff 000042d3: TIMESTAMP 000042d4: AND 000042d5: PUSH1 0x01 000042d7: PUSH2 0x127b 000042da: DUP5 000042db: PUSH0 000042dc: MSTORE 000042dd: PUSH1 0x0c 000042df: PUSH1 0x20 000042e1: MSTORE 000042e2: PUSH1 0x40 000042e4: PUSH0 000042e5: KECCAK256 000042e6: SWAP1 000042e7: JUMP 000042e8: JUMPDEST 000042e9: PUSH0 000042ea: MSTORE 000042eb: PUSH1 0x0c 000042ed: PUSH1 0x20 000042ef: MSTORE 000042f0: PUSH1 0x40 000042f2: PUSH0 000042f3: KECCAK256 000042f4: SWAP1 000042f5: JUMP 000042f6: JUMPDEST 000042f7: SWAP2 000042f8: PUSH1 0x03 000042fa: PUSH2 0x430b 000042fd: DUP3 000042fe: PUSH0 000042ff: MSTORE 00004300: PUSH1 0x0c 00004302: PUSH1 0x20 00004304: MSTORE 00004305: PUSH1 0x40 00004307: PUSH0 00004308: KECCAK256 00004309: SWAP1 0000430a: JUMP 0000430b: JUMPDEST 0000430c: ADD 0000430d: SWAP1 0000430e: DUP2 0000430f: SLOAD 00004310: SWAP4 00004311: DUP5 00004312: ADD 00004313: DUP1 00004314: SWAP5 00004315: GT 00004316: PUSH2 0x3243 00004319: JUMPI 0000431a: SWAP3 0000431b: SWAP1 0000431c: SSTORE 0000431d: PUSH2 0x12dc 00004320: PUSH2 0x42c1 00004323: JUMP 00004324: JUMPDEST 00004325: PUSH32 0xd2657d5a00000000000000000000000000000000000000000000000000000000 00004346: PUSH0 00004347: MSTORE 00004348: PUSH1 0x04 0000434a: SWAP2 0000434b: SWAP1 0000434c: SWAP2 0000434d: MSTORE 0000434e: PUSH16 0xffffffffffffffffffffffffffffffff 0000435f: AND 00004360: PUSH1 0x24 00004362: MSTORE 00004363: PUSH1 0x44 00004365: PUSH0 00004366: REVERT 00004367: JUMPDEST 00004368: DUP1 00004369: PUSH0 0000436a: MSTORE 0000436b: PUSH1 0x0c 0000436d: PUSH1 0x20 0000436f: MSTORE 00004370: PUSH2 0x438f 00004373: PUSH16 0xffffffffffffffffffffffffffffffff 00004384: PUSH1 0x40 00004386: PUSH0 00004387: KECCAK256 00004388: SLOAD 00004389: AND 0000438a: SWAP2 0000438b: PUSH2 0x3651 0000438e: JUMP 0000438f: JUMPDEST 00004390: SWAP1 00004391: DUP2 00004392: DUP2 00004393: LT 00004394: ISZERO 00004395: PUSH2 0x3cbe 00004398: JUMPI 00004399: DUP2 0000439a: SUB 0000439b: SWAP1 0000439c: DUP2 0000439d: GT 0000439e: PUSH2 0x3243 000043a1: JUMPI 000043a2: SWAP1 000043a3: JUMP 000043a4: JUMPDEST 000043a5: SWAP1 000043a6: DUP2 000043a7: PUSH0 000043a8: MSTORE 000043a9: PUSH1 0x0c 000043ab: PUSH1 0x20 000043ad: MSTORE 000043ae: PUSH1 0x01 000043b0: PUSH1 0x01 000043b2: PUSH1 0xa0 000043b4: SHL 000043b5: SUB 000043b6: PUSH1 0x01 000043b8: PUSH1 0x40 000043ba: PUSH0 000043bb: KECCAK256 000043bc: ADD 000043bd: SLOAD 000043be: AND 000043bf: PUSH1 0x01 000043c1: PUSH1 0x01 000043c3: PUSH1 0xa0 000043c5: SHL 000043c6: SUB 000043c7: DUP3 000043c8: AND 000043c9: SUB 000043ca: PUSH2 0x445f 000043cd: JUMPI 000043ce: POP 000043cf: PUSH2 0x43f9 000043d2: PUSH1 0x01 000043d4: PUSH1 0x01 000043d6: PUSH1 0xa0 000043d8: SHL 000043d9: SUB 000043da: PUSH2 0x43eb 000043dd: DUP4 000043de: PUSH0 000043df: MSTORE 000043e0: PUSH1 0x03 000043e2: PUSH1 0x20 000043e4: MSTORE 000043e5: PUSH1 0x40 000043e7: PUSH0 000043e8: KECCAK256 000043e9: SWAP1 000043ea: JUMP 000043eb: JUMPDEST 000043ec: SLOAD 000043ed: AND 000043ee: PUSH1 0x01 000043f0: PUSH1 0x01 000043f2: PUSH1 0xa0 000043f4: SHL 000043f5: SUB 000043f6: AND 000043f7: SWAP1 000043f8: JUMP 000043f9: JUMPDEST 000043fa: PUSH1 0x01 000043fc: PUSH1 0x01 000043fe: PUSH1 0xa0 00004400: SHL 00004401: SUB 00004402: DUP4 00004403: AND 00004404: SUB 00004405: PUSH2 0x440c 00004408: JUMPI 00004409: POP 0000440a: POP 0000440b: JUMP 0000440c: JUMPDEST 0000440d: SWAP1 0000440e: PUSH2 0x4425 00004411: PUSH2 0x13d2 00004414: PUSH2 0x086e 00004417: SWAP4 00004418: PUSH0 00004419: MSTORE 0000441a: PUSH1 0x03 0000441c: PUSH1 0x20 0000441e: MSTORE 0000441f: PUSH1 0x40 00004421: PUSH0 00004422: KECCAK256 00004423: SWAP1 00004424: JUMP 00004425: JUMPDEST 00004426: PUSH32 0x5bdb8ad700000000000000000000000000000000000000000000000000000000 00004447: PUSH0 00004448: MSTORE 00004449: PUSH1 0x01 0000444b: PUSH1 0x01 0000444d: PUSH1 0xa0 0000444f: SHL 00004450: SUB 00004451: SWAP2 00004452: DUP3 00004453: AND 00004454: PUSH1 0x04 00004456: MSTORE 00004457: AND 00004458: PUSH1 0x24 0000445a: MSTORE 0000445b: PUSH1 0x44 0000445d: SWAP1 0000445e: JUMP 0000445f: JUMPDEST 00004460: PUSH1 0x01 00004462: PUSH1 0x01 00004464: PUSH1 0xa0 00004466: SHL 00004467: SUB 00004468: PUSH1 0x01 0000446a: PUSH2 0x447e 0000446d: PUSH2 0x086e 00004470: SWAP5 00004471: PUSH0 00004472: MSTORE 00004473: PUSH1 0x0c 00004475: PUSH1 0x20 00004477: MSTORE 00004478: PUSH1 0x40 0000447a: PUSH0 0000447b: KECCAK256 0000447c: SWAP1 0000447d: JUMP 0000447e: JUMPDEST 0000447f: ADD 00004480: SLOAD 00004481: PUSH32 0xc8bac88d00000000000000000000000000000000000000000000000000000000 000044a2: PUSH0 000044a3: MSTORE 000044a4: PUSH1 0x01 000044a6: PUSH1 0x01 000044a8: PUSH1 0xa0 000044aa: SHL 000044ab: SUB 000044ac: SWAP3 000044ad: DUP4 000044ae: AND 000044af: PUSH1 0x04 000044b1: MSTORE 000044b2: AND 000044b3: AND 000044b4: PUSH1 0x24 000044b6: MSTORE 000044b7: PUSH1 0x44 000044b9: SWAP1 000044ba: JUMP 000044bb: JUMPDEST 000044bc: SWAP1 000044bd: DUP2 000044be: PUSH1 0x20 000044c0: SWAP2 000044c1: SUB 000044c2: SLT 000044c3: PUSH2 0x042e 000044c6: JUMPI 000044c7: MLOAD 000044c8: PUSH2 0x05ad 000044cb: DUP2 000044cc: PUSH2 0x0404 000044cf: JUMP 000044d0: JUMPDEST 000044d1: SWAP1 000044d2: SWAP3 000044d3: PUSH1 0x01 000044d5: PUSH1 0x01 000044d7: PUSH1 0xa0 000044d9: SHL 000044da: SUB 000044db: PUSH1 0x80 000044dd: SWAP4 000044de: DUP2 000044df: PUSH2 0x05ad 000044e2: SWAP8 000044e3: SWAP7 000044e4: AND 000044e5: DUP5 000044e6: MSTORE 000044e7: AND 000044e8: PUSH1 0x20 000044ea: DUP4 000044eb: ADD 000044ec: MSTORE 000044ed: PUSH1 0x40 000044ef: DUP3 000044f0: ADD 000044f1: MSTORE 000044f2: DUP2 000044f3: PUSH1 0x60 000044f5: DUP3 000044f6: ADD 000044f7: MSTORE 000044f8: ADD 000044f9: SWAP1 000044fa: PUSH2 0x0559 000044fd: JUMP 000044fe: JUMPDEST 000044ff: PUSH1 0x12 00004501: PUSH1 0xff 00004503: DUP3 00004504: AND 00004505: EQ 00004506: PUSH2 0x4515 00004509: JUMPI 0000450a: PUSH1 0x12 0000450c: SUB 0000450d: PUSH1 0xff 0000450f: AND 00004510: PUSH1 0x0a 00004512: EXP 00004513: SWAP1 00004514: JUMP 00004515: JUMPDEST 00004516: POP 00004517: PUSH1 0x01 00004519: SWAP1 0000451a: JUMP 0000451b: JUMPDEST 0000451c: SWAP1 0000451d: PUSH1 0x12 0000451f: PUSH1 0xff 00004521: DUP3 00004522: AND 00004523: EQ 00004524: PUSH2 0x3cba 00004527: JUMPI 00004528: PUSH1 0x12 0000452a: SUB 0000452b: PUSH1 0xff 0000452d: AND 0000452e: PUSH1 0x0a 00004530: EXP 00004531: MUL 00004532: SWAP1 00004533: JUMP 00004534: JUMPDEST 00004535: ISZERO 00004536: PUSH2 0x453b 00004539: JUMPI 0000453a: JUMP 0000453b: JUMPDEST 0000453c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0000455d: PUSH0 0000455e: MSTORE 0000455f: PUSH1 0x01 00004561: PUSH1 0x04 00004563: MSTORE 00004564: PUSH1 0x24 00004566: PUSH0 00004567: REVERT 00004568: JUMPDEST 00004569: SWAP3 0000456a: SWAP2 0000456b: SWAP1 0000456c: PUSH0 0000456d: SWAP4 0000456e: PUSH16 0xffffffffffffffffffffffffffffffff 0000457f: DUP4 00004580: AND 00004581: SWAP1 00004582: DUP2 00004583: ISZERO 00004584: PUSH2 0x496d 00004587: JUMPI 00004588: PUSH1 0x01 0000458a: PUSH1 0x01 0000458c: PUSH1 0xa0 0000458e: SHL 0000458f: SUB 00004590: DUP4 00004591: AND 00004592: ISZERO 00004593: PUSH2 0x4942 00004596: JUMPI 00004597: PUSH2 0x45ae 0000459a: PUSH2 0x11ff 0000459d: PUSH2 0x13d2 000045a0: DUP4 000045a1: PUSH0 000045a2: MSTORE 000045a3: PUSH1 0x03 000045a5: PUSH1 0x20 000045a7: MSTORE 000045a8: PUSH1 0x40 000045aa: PUSH0 000045ab: KECCAK256 000045ac: SWAP1 000045ad: JUMP 000045ae: JUMPDEST 000045af: PUSH1 0x01 000045b1: PUSH1 0x01 000045b3: PUSH1 0xa0 000045b5: SHL 000045b6: SUB 000045b7: DUP5 000045b8: AND 000045b9: EQ 000045ba: ISZERO 000045bb: DUP1 000045bc: PUSH2 0x4930 000045bf: JUMPI 000045c0: JUMPDEST 000045c1: PUSH2 0x48f4 000045c4: JUMPI 000045c5: PUSH2 0x45db 000045c8: PUSH1 0x02 000045ca: PUSH2 0x14ae 000045cd: DUP4 000045ce: PUSH0 000045cf: MSTORE 000045d0: PUSH1 0x0c 000045d2: PUSH1 0x20 000045d4: MSTORE 000045d5: PUSH1 0x40 000045d7: PUSH0 000045d8: KECCAK256 000045d9: SWAP1 000045da: JUMP 000045db: JUMPDEST 000045dc: SWAP2 000045dd: PUSH2 0x4604 000045e0: PUSH2 0x45e8 000045e3: DUP4 000045e4: PUSH2 0x4227 000045e7: JUMP 000045e8: JUMPDEST 000045e9: PUSH1 0x03 000045eb: PUSH2 0x45fc 000045ee: DUP6 000045ef: PUSH0 000045f0: MSTORE 000045f1: PUSH1 0x0c 000045f3: PUSH1 0x20 000045f5: MSTORE 000045f6: PUSH1 0x40 000045f8: PUSH0 000045f9: KECCAK256 000045fa: SWAP1 000045fb: JUMP 000045fc: JUMPDEST 000045fd: ADD 000045fe: SLOAD 000045ff: SWAP1 00004600: PUSH2 0x3458 00004603: JUMP 00004604: JUMPDEST 00004605: PUSH2 0x460e 00004608: DUP5 00004609: DUP3 0000460a: PUSH2 0x4998 0000460d: JUMP 0000460e: JUMPDEST 0000460f: SWAP4 00004610: PUSH2 0x4624 00004613: PUSH2 0x1470 00004616: DUP6 00004617: PUSH0 00004618: MSTORE 00004619: PUSH1 0x0c 0000461b: PUSH1 0x20 0000461d: MSTORE 0000461e: PUSH1 0x40 00004620: PUSH0 00004621: KECCAK256 00004622: SWAP1 00004623: JUMP 00004624: JUMPDEST 00004625: SWAP3 00004626: DUP6 00004627: PUSH16 0xffffffffffffffffffffffffffffffff 00004638: DUP6 00004639: AND 0000463a: LT 0000463b: PUSH0 0000463c: EQ 0000463d: PUSH2 0x48e6 00004640: JUMPI 00004641: DUP4 00004642: JUMPDEST 00004643: PUSH16 0xffffffffffffffffffffffffffffffff 00004654: DUP2 00004655: AND 00004656: DUP3 00004657: GT 00004658: PUSH2 0x489e 0000465b: JUMPI 0000465c: POP 0000465d: SWAP1 0000465e: PUSH2 0x4666 00004661: SWAP2 00004662: PUSH2 0x451b 00004665: JUMP 00004666: JUMPDEST 00004667: SWAP1 00004668: PUSH1 0x03 0000466a: PUSH2 0x467b 0000466d: DUP6 0000466e: PUSH0 0000466f: MSTORE 00004670: PUSH1 0x0c 00004672: PUSH1 0x20 00004674: MSTORE 00004675: PUSH1 0x40 00004677: PUSH0 00004678: KECCAK256 00004679: SWAP1 0000467a: JUMP 0000467b: JUMPDEST 0000467c: ADD 0000467d: SLOAD 0000467e: DUP3 0000467f: GT 00004680: PUSH2 0x4863 00004683: JUMPI 00004684: POP 00004685: PUSH1 0x03 00004687: PUSH2 0x4698 0000468a: DUP5 0000468b: PUSH0 0000468c: MSTORE 0000468d: PUSH1 0x0c 0000468f: PUSH1 0x20 00004691: MSTORE 00004692: PUSH1 0x40 00004694: PUSH0 00004695: KECCAK256 00004696: SWAP1 00004697: JUMP 00004698: JUMPDEST 00004699: ADD 0000469a: SWAP1 0000469b: DUP2 0000469c: SLOAD 0000469d: SUB 0000469e: SWAP1 0000469f: SSTORE 000046a0: JUMPDEST 000046a1: PUSH2 0x46d3 000046a4: PUSH2 0x46b5 000046a7: DUP4 000046a8: PUSH0 000046a9: MSTORE 000046aa: PUSH1 0x0c 000046ac: PUSH1 0x20 000046ae: MSTORE 000046af: PUSH1 0x40 000046b1: PUSH0 000046b2: KECCAK256 000046b3: SWAP1 000046b4: JUMP 000046b5: JUMPDEST 000046b6: PUSH2 0x3851 000046b9: DUP8 000046ba: PUSH2 0x383b 000046bd: DUP4 000046be: SLOAD 000046bf: PUSH16 0xffffffffffffffffffffffffffffffff 000046d0: AND 000046d1: SWAP1 000046d2: JUMP 000046d3: JUMPDEST 000046d4: PUSH2 0x46ea 000046d7: PUSH1 0x02 000046d9: PUSH2 0x11f1 000046dc: DUP5 000046dd: PUSH0 000046de: MSTORE 000046df: PUSH1 0x0c 000046e1: PUSH1 0x20 000046e3: MSTORE 000046e4: PUSH1 0x40 000046e6: PUSH0 000046e7: KECCAK256 000046e8: SWAP1 000046e9: JUMP 000046ea: JUMPDEST 000046eb: SWAP3 000046ec: PUSH2 0x4706 000046ef: DUP5 000046f0: PUSH1 0x01 000046f2: PUSH1 0x01 000046f4: PUSH1 0xa0 000046f6: SHL 000046f7: SUB 000046f8: AND 000046f9: PUSH0 000046fa: MSTORE 000046fb: PUSH1 0x0a 000046fd: PUSH1 0x20 000046ff: MSTORE 00004700: PUSH1 0x40 00004702: PUSH0 00004703: KECCAK256 00004704: SWAP1 00004705: JUMP 00004706: JUMPDEST 00004707: SLOAD 00004708: DUP1 00004709: PUSH2 0x47e8 0000470c: JUMPI 0000470d: JUMPDEST 0000470e: POP 0000470f: SWAP1 00004710: PUSH2 0x477f 00004713: PUSH2 0x32a4 00004716: PUSH2 0x4769 00004719: PUSH2 0x4785 0000471c: SWAP5 0000471d: PUSH2 0x475a 00004720: PUSH16 0xffffffffffffffffffffffffffffffff 00004731: DUP12 00004732: AND 00004733: PUSH2 0x474d 00004736: DUP11 00004737: PUSH1 0x01 00004739: PUSH1 0x01 0000473b: PUSH1 0xa0 0000473d: SHL 0000473e: SUB 0000473f: AND 00004740: PUSH0 00004741: MSTORE 00004742: PUSH1 0x07 00004744: PUSH1 0x20 00004746: MSTORE 00004747: PUSH1 0x40 00004749: PUSH0 0000474a: KECCAK256 0000474b: SWAP1 0000474c: JUMP 0000474d: JUMPDEST 0000474e: DUP2 0000474f: DUP2 00004750: SLOAD 00004751: SUB 00004752: SWAP1 00004753: SSTORE 00004754: DUP11 00004755: DUP11 00004756: PUSH2 0x41cd 00004759: JUMP 0000475a: JUMPDEST 0000475b: PUSH2 0x4763 0000475e: DUP8 0000475f: PUSH2 0x3651 00004762: JUMP 00004763: JUMPDEST 00004764: SWAP1 00004765: PUSH2 0x3248 00004768: JUMP 00004769: JUMPDEST 0000476a: SWAP3 0000476b: PUSH2 0x374a 0000476e: PUSH2 0x1470 00004771: DUP8 00004772: PUSH0 00004773: MSTORE 00004774: PUSH1 0x0c 00004776: PUSH1 0x20 00004778: MSTORE 00004779: PUSH1 0x40 0000477b: PUSH0 0000477c: KECCAK256 0000477d: SWAP1 0000477e: JUMP 0000477f: JUMPDEST 00004780: EQ 00004781: PUSH2 0x4534 00004784: JUMP 00004785: JUMPDEST 00004786: PUSH1 0x40 00004788: DUP1 00004789: MLOAD 0000478a: CALLER 0000478b: DUP2 0000478c: MSTORE 0000478d: PUSH16 0xffffffffffffffffffffffffffffffff 0000479e: DUP7 0000479f: DUP2 000047a0: AND 000047a1: PUSH1 0x20 000047a3: DUP4 000047a4: ADD 000047a5: MSTORE 000047a6: DUP9 000047a7: AND 000047a8: SWAP2 000047a9: DUP2 000047aa: ADD 000047ab: SWAP2 000047ac: SWAP1 000047ad: SWAP2 000047ae: MSTORE 000047af: PUSH1 0x01 000047b1: PUSH1 0x01 000047b3: PUSH1 0xa0 000047b5: SHL 000047b6: SUB 000047b7: SWAP3 000047b8: DUP4 000047b9: AND 000047ba: SWAP4 000047bb: SWAP1 000047bc: SWAP3 000047bd: AND 000047be: SWAP2 000047bf: PUSH32 0x1a7b0d6c8f96b874563b711cf97793fe3be5dc42dbd1e0720ce40f326918e817 000047e0: SWAP1 000047e1: PUSH1 0x60 000047e3: SWAP1 000047e4: LOG4 000047e5: SWAP2 000047e6: SWAP1 000047e7: JUMP 000047e8: JUMPDEST 000047e9: PUSH2 0x4769 000047ec: SWAP9 000047ed: POP 000047ee: PUSH2 0x32a4 000047f1: PUSH2 0x4802 000047f4: PUSH2 0x477f 000047f7: SWAP3 000047f8: PUSH2 0x4785 000047fb: SWAP6 000047fc: SWAP5 000047fd: SWAP10 000047fe: PUSH2 0x4e86 00004801: JUMP 00004802: JUMPDEST 00004803: SWAP11 00004804: SWAP1 00004805: SWAP11 00004806: SWAP9 00004807: PUSH2 0x4859 0000480a: DUP13 0000480b: PUSH2 0x3851 0000480e: PUSH2 0x4828 00004811: DUP12 00004812: PUSH1 0x01 00004814: PUSH1 0x01 00004816: PUSH1 0xa0 00004818: SHL 00004819: SUB 0000481a: AND 0000481b: PUSH0 0000481c: MSTORE 0000481d: PUSH1 0x0b 0000481f: PUSH1 0x20 00004821: MSTORE 00004822: PUSH1 0x40 00004824: PUSH0 00004825: KECCAK256 00004826: SWAP1 00004827: JUMP 00004828: JUMPDEST 00004829: SWAP2 0000482a: PUSH2 0x4843 0000482d: DUP4 0000482e: SLOAD 0000482f: PUSH16 0xffffffffffffffffffffffffffffffff 00004840: AND 00004841: SWAP1 00004842: JUMP 00004843: JUMPDEST 00004844: ADD 00004845: PUSH16 0xffffffffffffffffffffffffffffffff 00004856: AND 00004857: SWAP1 00004858: JUMP 00004859: JUMPDEST 0000485a: SWAP4 0000485b: SWAP5 0000485c: POP 0000485d: POP 0000485e: POP 0000485f: PUSH2 0x470d 00004862: JUMP 00004863: JUMPDEST 00004864: SUB 00004865: PUSH1 0x03 00004867: PUSH2 0x4878 0000486a: DUP5 0000486b: PUSH0 0000486c: MSTORE 0000486d: PUSH1 0x0c 0000486f: PUSH1 0x20 00004871: MSTORE 00004872: PUSH1 0x40 00004874: PUSH0 00004875: KECCAK256 00004876: SWAP1 00004877: JUMP 00004878: JUMPDEST 00004879: ADD 0000487a: SSTORE 0000487b: PUSH2 0x4899 0000487e: PUSH5 0xffffffffff 00004884: TIMESTAMP 00004885: AND 00004886: PUSH1 0x01 00004888: PUSH2 0x127b 0000488b: DUP6 0000488c: PUSH0 0000488d: MSTORE 0000488e: PUSH1 0x0c 00004890: PUSH1 0x20 00004892: MSTORE 00004893: PUSH1 0x40 00004895: PUSH0 00004896: KECCAK256 00004897: SWAP1 00004898: JUMP 00004899: JUMPDEST 0000489a: PUSH2 0x46a0 0000489d: JUMP 0000489e: JUMPDEST 0000489f: PUSH32 0xf9f2985900000000000000000000000000000000000000000000000000000000 000048c0: PUSH0 000048c1: MSTORE 000048c2: PUSH1 0x04 000048c4: DUP7 000048c5: SWAP1 000048c6: MSTORE 000048c7: PUSH16 0xffffffffffffffffffffffffffffffff 000048d8: DUP1 000048d9: DUP11 000048da: AND 000048db: PUSH1 0x24 000048dd: MSTORE 000048de: AND 000048df: PUSH1 0x44 000048e1: MSTORE 000048e2: PUSH1 0x64 000048e4: PUSH0 000048e5: REVERT 000048e6: JUMPDEST 000048e7: PUSH2 0x48ef 000048ea: DUP7 000048eb: PUSH2 0x4c4b 000048ee: JUMP 000048ef: JUMPDEST 000048f0: PUSH2 0x4642 000048f3: JUMP 000048f4: JUMPDEST 000048f5: PUSH32 0x4208ab4c00000000000000000000000000000000000000000000000000000000 00004916: PUSH0 00004917: MSTORE 00004918: PUSH1 0x04 0000491a: MSTORE 0000491b: CALLER 0000491c: PUSH1 0x24 0000491e: MSTORE 0000491f: PUSH1 0x01 00004921: PUSH1 0x01 00004923: PUSH1 0xa0 00004925: SHL 00004926: SUB 00004927: DUP3 00004928: AND 00004929: PUSH1 0x44 0000492b: MSTORE 0000492c: PUSH1 0x64 0000492e: PUSH0 0000492f: REVERT 00004930: JUMPDEST 00004931: POP 00004932: PUSH2 0x493d 00004935: PUSH2 0x14e8 00004938: DUP3 00004939: PUSH2 0x4d74 0000493c: JUMP 0000493d: JUMPDEST 0000493e: PUSH2 0x45c0 00004941: JUMP 00004942: JUMPDEST 00004943: PUSH32 0x9f32c85800000000000000000000000000000000000000000000000000000000 00004964: PUSH0 00004965: MSTORE 00004966: PUSH1 0x04 00004968: MSTORE 00004969: PUSH1 0x24 0000496b: PUSH0 0000496c: REVERT 0000496d: JUMPDEST 0000496e: PUSH32 0xb485505200000000000000000000000000000000000000000000000000000000 0000498f: PUSH0 00004990: MSTORE 00004991: PUSH1 0x04 00004993: MSTORE 00004994: PUSH1 0x24 00004996: PUSH0 00004997: REVERT 00004998: JUMPDEST 00004999: SWAP1 0000499a: PUSH1 0x12 0000499c: PUSH1 0xff 0000499e: DUP3 0000499f: AND 000049a0: EQ 000049a1: PUSH2 0x3cba 000049a4: JUMPI 000049a5: PUSH1 0x12 000049a7: SUB 000049a8: PUSH1 0xff 000049aa: AND 000049ab: PUSH1 0x0a 000049ad: EXP 000049ae: SWAP1 000049af: DUP2 000049b0: ISZERO 000049b1: PUSH2 0x349c 000049b4: JUMPI 000049b5: DIV 000049b6: SWAP1 000049b7: JUMP 000049b8: JUMPDEST 000049b9: PUSH2 0x49ca 000049bc: SWAP1 000049bd: PUSH0 000049be: MSTORE 000049bf: PUSH1 0x05 000049c1: PUSH1 0x20 000049c3: MSTORE 000049c4: PUSH1 0x40 000049c6: PUSH0 000049c7: KECCAK256 000049c8: SWAP1 000049c9: JUMP 000049ca: JUMPDEST 000049cb: DUP1 000049cc: SLOAD 000049cd: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 000049ee: AND 000049ef: SWAP1 000049f0: SSTORE 000049f1: JUMP 000049f2: JUMPDEST 000049f3: SWAP1 000049f4: SWAP2 000049f5: SWAP3 000049f6: PUSH1 0x01 000049f8: PUSH1 0x01 000049fa: PUSH1 0xa0 000049fc: SHL 000049fd: SUB 000049fe: PUSH2 0x23d9 00004a01: SWAP5 00004a02: DUP2 00004a03: PUSH1 0x40 00004a05: MLOAD 00004a06: SWAP6 00004a07: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 00004a28: PUSH1 0x20 00004a2a: DUP9 00004a2b: ADD 00004a2c: MSTORE 00004a2d: AND 00004a2e: PUSH1 0x24 00004a30: DUP7 00004a31: ADD 00004a32: MSTORE 00004a33: AND 00004a34: PUSH1 0x44 00004a36: DUP5 00004a37: ADD 00004a38: MSTORE 00004a39: PUSH1 0x64 00004a3b: DUP4 00004a3c: ADD 00004a3d: MSTORE 00004a3e: PUSH1 0x64 00004a40: DUP3 00004a41: MSTORE 00004a42: PUSH2 0x4222 00004a45: PUSH1 0x84 00004a47: DUP4 00004a48: PUSH2 0x2388 00004a4b: JUMP 00004a4c: JUMPDEST 00004a4d: DUP2 00004a4e: PUSH0 00004a4f: MSTORE 00004a50: PUSH1 0x03 00004a52: PUSH1 0x20 00004a54: MSTORE 00004a55: PUSH1 0x01 00004a57: PUSH1 0x01 00004a59: PUSH1 0xa0 00004a5b: SHL 00004a5c: SUB 00004a5d: PUSH1 0x40 00004a5f: PUSH0 00004a60: KECCAK256 00004a61: SLOAD 00004a62: AND 00004a63: SWAP3 00004a64: PUSH1 0x01 00004a66: PUSH1 0x01 00004a68: PUSH1 0xa0 00004a6a: SHL 00004a6b: SUB 00004a6c: DUP2 00004a6d: AND 00004a6e: PUSH2 0x4b46 00004a71: JUMPI 00004a72: JUMPDEST 00004a73: POP 00004a74: PUSH1 0x01 00004a76: PUSH1 0x01 00004a78: PUSH1 0xa0 00004a7a: SHL 00004a7b: SUB 00004a7c: DUP4 00004a7d: AND 00004a7e: DUP1 00004a7f: PUSH2 0x4af7 00004a82: JUMPI 00004a83: JUMPDEST 00004a84: PUSH2 0x4aa9 00004a87: PUSH1 0x01 00004a89: PUSH1 0x01 00004a8b: PUSH1 0xa0 00004a8d: SHL 00004a8e: SUB 00004a8f: DUP4 00004a90: AND 00004a91: SWAP3 00004a92: DUP4 00004a93: PUSH2 0x4ad0 00004a96: JUMPI 00004a97: JUMPDEST 00004a98: PUSH2 0x080d 00004a9b: DUP6 00004a9c: PUSH0 00004a9d: MSTORE 00004a9e: PUSH1 0x03 00004aa0: PUSH1 0x20 00004aa2: MSTORE 00004aa3: PUSH1 0x40 00004aa5: PUSH0 00004aa6: KECCAK256 00004aa7: SWAP1 00004aa8: JUMP 00004aa9: JUMPDEST 00004aaa: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00004acb: PUSH0 00004acc: DUP1 00004acd: LOG4 00004ace: SWAP1 00004acf: JUMP 00004ad0: JUMPDEST 00004ad1: PUSH2 0x4aeb 00004ad4: DUP2 00004ad5: PUSH1 0x01 00004ad7: PUSH1 0x01 00004ad9: PUSH1 0xa0 00004adb: SHL 00004adc: SUB 00004add: AND 00004ade: PUSH0 00004adf: MSTORE 00004ae0: PUSH1 0x04 00004ae2: PUSH1 0x20 00004ae4: MSTORE 00004ae5: PUSH1 0x40 00004ae7: PUSH0 00004ae8: KECCAK256 00004ae9: SWAP1 00004aea: JUMP 00004aeb: JUMPDEST 00004aec: PUSH1 0x01 00004aee: DUP2 00004aef: SLOAD 00004af0: ADD 00004af1: SWAP1 00004af2: SSTORE 00004af3: PUSH2 0x4a97 00004af6: JUMP 00004af7: JUMPDEST 00004af8: PUSH2 0x4b00 00004afb: DUP4 00004afc: PUSH2 0x49b8 00004aff: JUMP 00004b00: JUMPDEST 00004b01: PUSH2 0x4b1b 00004b04: DUP5 00004b05: PUSH1 0x01 00004b07: PUSH1 0x01 00004b09: PUSH1 0xa0 00004b0b: SHL 00004b0c: SUB 00004b0d: AND 00004b0e: PUSH0 00004b0f: MSTORE 00004b10: PUSH1 0x04 00004b12: PUSH1 0x20 00004b14: MSTORE 00004b15: PUSH1 0x40 00004b17: PUSH0 00004b18: KECCAK256 00004b19: SWAP1 00004b1a: JUMP 00004b1b: JUMPDEST 00004b1c: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00004b3d: DUP2 00004b3e: SLOAD 00004b3f: ADD 00004b40: SWAP1 00004b41: SSTORE 00004b42: PUSH2 0x4a83 00004b45: JUMP 00004b46: JUMPDEST 00004b47: PUSH2 0x4b61 00004b4a: PUSH1 0x01 00004b4c: PUSH1 0x01 00004b4e: PUSH1 0xa0 00004b50: SHL 00004b51: SUB 00004b52: DUP3 00004b53: AND 00004b54: DUP1 00004b55: ISZERO 00004b56: ISZERO 00004b57: SWAP1 00004b58: DUP2 00004b59: PUSH2 0x4bd9 00004b5c: JUMPI 00004b5d: POP 00004b5e: ISZERO 00004b5f: SWAP1 00004b60: JUMP 00004b61: JUMPDEST 00004b62: ISZERO 00004b63: PUSH2 0x4a72 00004b66: JUMPI 00004b67: DUP3 00004b68: PUSH1 0x01 00004b6a: PUSH1 0x01 00004b6c: PUSH1 0xa0 00004b6e: SHL 00004b6f: SUB 00004b70: DUP6 00004b71: AND 00004b72: PUSH2 0x4ba0 00004b75: JUMPI 00004b76: PUSH32 0x7e27328900000000000000000000000000000000000000000000000000000000 00004b97: PUSH0 00004b98: MSTORE 00004b99: PUSH1 0x04 00004b9b: MSTORE 00004b9c: PUSH1 0x24 00004b9e: PUSH0 00004b9f: REVERT 00004ba0: JUMPDEST 00004ba1: PUSH32 0x177e802f00000000000000000000000000000000000000000000000000000000 00004bc2: PUSH0 00004bc3: MSTORE 00004bc4: PUSH1 0x01 00004bc6: PUSH1 0x01 00004bc8: PUSH1 0xa0 00004bca: SHL 00004bcb: SUB 00004bcc: SWAP1 00004bcd: SWAP2 00004bce: AND 00004bcf: PUSH1 0x04 00004bd1: MSTORE 00004bd2: PUSH1 0x24 00004bd4: MSTORE 00004bd5: PUSH1 0x44 00004bd7: PUSH0 00004bd8: REVERT 00004bd9: JUMPDEST 00004bda: PUSH1 0x01 00004bdc: PUSH1 0x01 00004bde: PUSH1 0xa0 00004be0: SHL 00004be1: SUB 00004be2: DUP8 00004be3: AND 00004be4: DUP1 00004be5: DUP3 00004be6: EQ 00004be7: SWAP3 00004be8: POP 00004be9: DUP3 00004bea: ISZERO 00004beb: PUSH2 0x4c18 00004bee: JUMPI 00004bef: JUMPDEST 00004bf0: POP 00004bf1: DUP2 00004bf2: ISZERO 00004bf3: PUSH2 0x4bfb 00004bf6: JUMPI 00004bf7: POP 00004bf8: ISZERO 00004bf9: SWAP1 00004bfa: JUMP 00004bfb: JUMPDEST 00004bfc: SWAP1 00004bfd: POP 00004bfe: DUP5 00004bff: PUSH0 00004c00: MSTORE 00004c01: PUSH1 0x05 00004c03: PUSH1 0x20 00004c05: MSTORE 00004c06: PUSH1 0x01 00004c08: PUSH1 0x01 00004c0a: PUSH1 0xa0 00004c0c: SHL 00004c0d: SUB 00004c0e: PUSH1 0x40 00004c10: PUSH0 00004c11: KECCAK256 00004c12: SLOAD 00004c13: AND 00004c14: EQ 00004c15: ISZERO 00004c16: SWAP1 00004c17: JUMP 00004c18: JUMPDEST 00004c19: SWAP1 00004c1a: SWAP2 00004c1b: POP 00004c1c: PUSH0 00004c1d: MSTORE 00004c1e: PUSH1 0x06 00004c20: PUSH1 0x20 00004c22: MSTORE 00004c23: PUSH1 0xff 00004c25: PUSH2 0x4c42 00004c28: DUP5 00004c29: PUSH1 0x40 00004c2b: PUSH0 00004c2c: KECCAK256 00004c2d: SWAP1 00004c2e: PUSH1 0x01 00004c30: PUSH1 0x01 00004c32: PUSH1 0xa0 00004c34: SHL 00004c35: SUB 00004c36: AND 00004c37: PUSH0 00004c38: MSTORE 00004c39: PUSH1 0x20 00004c3b: MSTORE 00004c3c: PUSH1 0x40 00004c3e: PUSH0 00004c3f: KECCAK256 00004c40: SWAP1 00004c41: JUMP 00004c42: JUMPDEST 00004c43: SLOAD 00004c44: AND 00004c45: SWAP1 00004c46: PUSH0 00004c47: PUSH2 0x4bef 00004c4a: JUMP 00004c4b: JUMPDEST 00004c4c: PUSH16 0xffffffffffffffffffffffffffffffff 00004c5d: DUP2 00004c5e: GT 00004c5f: PUSH2 0x4c77 00004c62: JUMPI 00004c63: PUSH16 0xffffffffffffffffffffffffffffffff 00004c74: AND 00004c75: SWAP1 00004c76: JUMP 00004c77: JUMPDEST 00004c78: PUSH32 0x6dfcc65000000000000000000000000000000000000000000000000000000000 00004c99: PUSH0 00004c9a: MSTORE 00004c9b: PUSH1 0x80 00004c9d: PUSH1 0x04 00004c9f: MSTORE 00004ca0: PUSH1 0x24 00004ca2: MSTORE 00004ca3: PUSH1 0x44 00004ca5: PUSH0 00004ca6: REVERT 00004ca7: JUMPDEST 00004ca8: PUSH1 0x01 00004caa: PUSH1 0x01 00004cac: PUSH1 0xa0 00004cae: SHL 00004caf: SUB 00004cb0: DUP2 00004cb1: AND 00004cb2: ISZERO 00004cb3: PUSH2 0x317f 00004cb6: JUMPI 00004cb7: DUP2 00004cb8: PUSH0 00004cb9: MSTORE 00004cba: PUSH1 0x03 00004cbc: PUSH1 0x20 00004cbe: MSTORE 00004cbf: PUSH1 0x01 00004cc1: PUSH1 0x01 00004cc3: PUSH1 0xa0 00004cc5: SHL 00004cc6: SUB 00004cc7: PUSH1 0x40 00004cc9: PUSH0 00004cca: KECCAK256 00004ccb: SLOAD 00004ccc: AND 00004ccd: ISZERO 00004cce: ISZERO 00004ccf: DUP1 00004cd0: PUSH2 0x4d57 00004cd3: JUMPI 00004cd4: JUMPDEST 00004cd5: PUSH2 0x3135 00004cd8: JUMPI 00004cd9: SWAP1 00004cda: PUSH32 0xf8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7 00004cfb: PUSH2 0x4d21 00004cfe: PUSH2 0x4d10 00004d01: PUSH0 00004d02: DUP5 00004d03: PUSH1 0x01 00004d05: PUSH1 0x01 00004d07: PUSH1 0xa0 00004d09: SHL 00004d0a: SUB 00004d0b: SWAP7 00004d0c: PUSH2 0x4a4c 00004d0f: JUMP 00004d10: JUMPDEST 00004d11: PUSH1 0x40 00004d13: MLOAD 00004d14: SWAP4 00004d15: DUP5 00004d16: MSTORE 00004d17: SWAP3 00004d18: SWAP1 00004d19: DUP2 00004d1a: SWAP1 00004d1b: PUSH1 0x20 00004d1d: DUP3 00004d1e: ADD 00004d1f: SWAP1 00004d20: JUMP 00004d21: JUMPDEST 00004d22: SUB 00004d23: SWAP1 00004d24: LOG1 00004d25: AND 00004d26: PUSH2 0x4d2b 00004d29: JUMPI 00004d2a: JUMP 00004d2b: JUMPDEST 00004d2c: PUSH32 0x73c6ac6e00000000000000000000000000000000000000000000000000000000 00004d4d: PUSH0 00004d4e: MSTORE 00004d4f: PUSH0 00004d50: PUSH1 0x04 00004d52: MSTORE 00004d53: PUSH1 0x24 00004d55: PUSH0 00004d56: REVERT 00004d57: JUMPDEST 00004d58: POP 00004d59: DUP2 00004d5a: PUSH0 00004d5b: MSTORE 00004d5c: PUSH1 0x0c 00004d5e: PUSH1 0x20 00004d60: MSTORE 00004d61: PUSH1 0xff 00004d63: PUSH1 0x01 00004d65: PUSH1 0x40 00004d67: PUSH0 00004d68: KECCAK256 00004d69: ADD 00004d6a: SLOAD 00004d6b: PUSH1 0xd0 00004d6d: SHR 00004d6e: AND 00004d6f: ISZERO 00004d70: PUSH2 0x4cd4 00004d73: JUMP 00004d74: JUMPDEST 00004d75: DUP1 00004d76: PUSH0 00004d77: MSTORE 00004d78: PUSH1 0x03 00004d7a: PUSH1 0x20 00004d7c: MSTORE 00004d7d: PUSH1 0x01 00004d7f: PUSH1 0x01 00004d81: PUSH1 0xa0 00004d83: SHL 00004d84: SUB 00004d85: PUSH1 0x40 00004d87: PUSH0 00004d88: KECCAK256 00004d89: SLOAD 00004d8a: AND 00004d8b: SWAP1 00004d8c: DUP2 00004d8d: CALLER 00004d8e: EQ 00004d8f: SWAP2 00004d90: DUP3 00004d91: ISZERO 00004d92: PUSH2 0x4dba 00004d95: JUMPI 00004d96: JUMPDEST 00004d97: POP 00004d98: DUP2 00004d99: ISZERO 00004d9a: PUSH2 0x4da1 00004d9d: JUMPI 00004d9e: POP 00004d9f: SWAP1 00004da0: JUMP 00004da1: JUMPDEST 00004da2: SWAP1 00004da3: POP 00004da4: PUSH1 0x01 00004da6: PUSH1 0x01 00004da8: PUSH1 0xa0 00004daa: SHL 00004dab: SUB 00004dac: PUSH2 0x4db5 00004daf: CALLER 00004db0: SWAP3 00004db1: PUSH2 0x2f58 00004db4: JUMP 00004db5: JUMPDEST 00004db6: AND 00004db7: EQ 00004db8: SWAP1 00004db9: JUMP 00004dba: JUMPDEST 00004dbb: SWAP1 00004dbc: SWAP2 00004dbd: POP 00004dbe: PUSH0 00004dbf: MSTORE 00004dc0: PUSH1 0x06 00004dc2: PUSH1 0x20 00004dc4: MSTORE 00004dc5: PUSH1 0xff 00004dc7: PUSH2 0x4de4 00004dca: CALLER 00004dcb: PUSH1 0x40 00004dcd: PUSH0 00004dce: KECCAK256 00004dcf: SWAP1 00004dd0: PUSH1 0x01 00004dd2: PUSH1 0x01 00004dd4: PUSH1 0xa0 00004dd6: SHL 00004dd7: SUB 00004dd8: AND 00004dd9: PUSH0 00004dda: MSTORE 00004ddb: PUSH1 0x20 00004ddd: MSTORE 00004dde: PUSH1 0x40 00004de0: PUSH0 00004de1: KECCAK256 00004de2: SWAP1 00004de3: JUMP 00004de4: JUMPDEST 00004de5: SLOAD 00004de6: AND 00004de7: SWAP1 00004de8: PUSH0 00004de9: PUSH2 0x4d96 00004dec: JUMP 00004ded: JUMPDEST 00004dee: PUSH0 00004def: DUP1 00004df0: PUSH1 0x01 00004df2: PUSH1 0x01 00004df4: PUSH1 0xa0 00004df6: SHL 00004df7: SUB 00004df8: PUSH2 0x4e16 00004dfb: SWAP4 00004dfc: AND 00004dfd: SWAP4 00004dfe: PUSH1 0x20 00004e00: DUP2 00004e01: MLOAD 00004e02: SWAP2 00004e03: ADD 00004e04: DUP3 00004e05: DUP7 00004e06: GAS 00004e07: CALL 00004e08: PUSH2 0x4e0f 00004e0b: PUSH2 0x3031 00004e0e: JUMP 00004e0f: JUMPDEST 00004e10: SWAP1 00004e11: DUP4 00004e12: PUSH2 0x4fd0 00004e15: JUMP 00004e16: JUMPDEST 00004e17: DUP1 00004e18: MLOAD 00004e19: SWAP1 00004e1a: DUP2 00004e1b: ISZERO 00004e1c: ISZERO 00004e1d: SWAP2 00004e1e: DUP3 00004e1f: PUSH2 0x4e61 00004e22: JUMPI 00004e23: JUMPDEST 00004e24: POP 00004e25: POP 00004e26: PUSH2 0x4e2c 00004e29: JUMPI 00004e2a: POP 00004e2b: JUMP 00004e2c: JUMPDEST 00004e2d: PUSH1 0x01 00004e2f: PUSH1 0x01 00004e31: PUSH1 0xa0 00004e33: SHL 00004e34: SUB 00004e35: SWAP1 00004e36: PUSH32 0x5274afe700000000000000000000000000000000000000000000000000000000 00004e57: PUSH0 00004e58: MSTORE 00004e59: AND 00004e5a: PUSH1 0x04 00004e5c: MSTORE 00004e5d: PUSH1 0x24 00004e5f: PUSH0 00004e60: REVERT 00004e61: JUMPDEST 00004e62: SWAP1 00004e63: SWAP2 00004e64: POP 00004e65: PUSH1 0x20 00004e67: SWAP1 00004e68: DUP3 00004e69: ADD 00004e6a: DUP3 00004e6b: SWAP1 00004e6c: SUB 00004e6d: SLT 00004e6e: PUSH2 0x042e 00004e71: JUMPI 00004e72: PUSH1 0x20 00004e74: ADD 00004e75: MLOAD 00004e76: PUSH2 0x4e7e 00004e79: DUP2 00004e7a: PUSH2 0x111d 00004e7d: JUMP 00004e7e: JUMPDEST 00004e7f: ISZERO 00004e80: PUSH0 00004e81: DUP1 00004e82: PUSH2 0x4e23 00004e85: JUMP 00004e86: JUMPDEST 00004e87: SWAP2 00004e88: SWAP1 00004e89: PUSH2 0x4ea4 00004e8c: SWAP1 00004e8d: PUSH16 0xffffffffffffffffffffffffffffffff 00004e9e: DUP5 00004e9f: AND 00004ea0: PUSH2 0x4f03 00004ea3: JUMP 00004ea4: JUMPDEST 00004ea5: PUSH16 0xffffffffffffffffffffffffffffffff 00004eb6: DUP2 00004eb7: GT 00004eb8: PUSH2 0x4ed8 00004ebb: JUMPI 00004ebc: PUSH16 0xffffffffffffffffffffffffffffffff 00004ecd: PUSH2 0x05ad 00004ed0: SWAP2 00004ed1: AND 00004ed2: DUP1 00004ed3: SWAP4 00004ed4: PUSH2 0x36ec 00004ed7: JUMP 00004ed8: JUMPDEST 00004ed9: PUSH32 0x4916adce00000000000000000000000000000000000000000000000000000000 00004efa: PUSH0 00004efb: MSTORE 00004efc: PUSH1 0x04 00004efe: MSTORE 00004eff: PUSH1 0x24 00004f01: PUSH0 00004f02: REVERT 00004f03: JUMPDEST 00004f04: SWAP2 00004f05: SWAP1 00004f06: SWAP2 00004f07: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00004f28: DUP4 00004f29: DUP3 00004f2a: MULMOD 00004f2b: DUP4 00004f2c: DUP3 00004f2d: MUL 00004f2e: SWAP2 00004f2f: DUP3 00004f30: DUP1 00004f31: DUP4 00004f32: LT 00004f33: SWAP3 00004f34: SUB 00004f35: SWAP2 00004f36: DUP1 00004f37: DUP4 00004f38: SUB 00004f39: SWAP3 00004f3a: EQ 00004f3b: PUSH2 0x4fbf 00004f3e: JUMPI 00004f3f: PUSH8 0x0de0b6b3a7640000 00004f48: DUP3 00004f49: LT 00004f4a: ISZERO 00004f4b: PUSH2 0x4f8f 00004f4e: JUMPI 00004f4f: PUSH32 0xaccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac10669 00004f70: SWAP4 00004f71: SWAP5 00004f72: PUSH8 0x0de0b6b3a7640000 00004f7b: SWAP2 00004f7c: MULMOD 00004f7d: SWAP1 00004f7e: DUP3 00004f7f: DUP3 00004f80: GT 00004f81: SWAP1 00004f82: SUB 00004f83: PUSH1 0xee 00004f85: SHL 00004f86: SWAP2 00004f87: SUB 00004f88: PUSH1 0x12 00004f8a: SHR 00004f8b: OR 00004f8c: MUL 00004f8d: SWAP1 00004f8e: JUMP 00004f8f: JUMPDEST 00004f90: DUP5 00004f91: SWAP1 00004f92: PUSH32 0x5173648d00000000000000000000000000000000000000000000000000000000 00004fb3: PUSH0 00004fb4: MSTORE 00004fb5: PUSH1 0x04 00004fb7: MSTORE 00004fb8: PUSH1 0x24 00004fba: MSTORE 00004fbb: PUSH1 0x44 00004fbd: PUSH0 00004fbe: REVERT 00004fbf: JUMPDEST 00004fc0: POP 00004fc1: POP 00004fc2: PUSH8 0x0de0b6b3a7640000 00004fcb: SWAP1 00004fcc: DIV 00004fcd: SWAP2 00004fce: POP 00004fcf: JUMP 00004fd0: JUMPDEST 00004fd1: SWAP1 00004fd2: PUSH2 0x500d 00004fd5: JUMPI 00004fd6: POP 00004fd7: DUP1 00004fd8: MLOAD 00004fd9: ISZERO 00004fda: PUSH2 0x4fe5 00004fdd: JUMPI 00004fde: DUP1 00004fdf: MLOAD 00004fe0: SWAP1 00004fe1: PUSH1 0x20 00004fe3: ADD 00004fe4: REVERT 00004fe5: JUMPDEST 00004fe6: PUSH32 0x1425ea4200000000000000000000000000000000000000000000000000000000 00005007: PUSH0 00005008: MSTORE 00005009: PUSH1 0x04 0000500b: PUSH0 0000500c: REVERT 0000500d: JUMPDEST 0000500e: DUP2 0000500f: MLOAD 00005010: ISZERO 00005011: DUP1 00005012: PUSH2 0x5053 00005015: JUMPI 00005016: JUMPDEST 00005017: PUSH2 0x501e 0000501a: JUMPI 0000501b: POP 0000501c: SWAP1 0000501d: JUMP 0000501e: JUMPDEST 0000501f: PUSH1 0x01 00005021: PUSH1 0x01 00005023: PUSH1 0xa0 00005025: SHL 00005026: SUB 00005027: SWAP1 00005028: PUSH32 0x9996b31500000000000000000000000000000000000000000000000000000000 00005049: PUSH0 0000504a: MSTORE 0000504b: AND 0000504c: PUSH1 0x04 0000504e: MSTORE 0000504f: PUSH1 0x24 00005051: PUSH0 00005052: REVERT 00005053: JUMPDEST 00005054: POP 00005055: DUP1 00005056: EXTCODESIZE 00005057: ISZERO 00005058: PUSH2 0x5016 0000505b: JUMP 0000505c: INVALID 0000505d: LOG1 0000505e: PUSH5 0x736f6c6343 00005064: STOP 00005065: ADDMOD 00005066: BYTE 00005067: STOP 00005068: EXP
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0xc9d55a1faeb3e18acc9ab9652f2ff6d3e0a3b96d9e06e2d638d36efd0bbf7d5f
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0xc9d55a1faeb3e18acc9ab9652f2ff6d3e0a3b96d9e06e2d638d36efd0bbf7d5f",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x01ffc9a7",
"selector": "0x01ffc9a7",
"calldata_variants": [
"0x01ffc9a7",
"0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x081812fc",
"selector": "0x081812fc",
"calldata_variants": [
"0x081812fc",
"0x081812fc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x08b87923",
"selector": "0x08b87923",
"calldata_variants": [
"0x08b87923",
"0x08b879230000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c5fd195",
"selector": "0x0c5fd195",
"calldata_variants": [
"0x0c5fd195",
"0x0c5fd1950000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c699624",
"selector": "0x0c699624",
"calldata_variants": [
"0x0c699624",
"0x0c6996240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x136439dd",
"selector": "0x136439dd",
"calldata_variants": [
"0x136439dd",
"0x136439dd0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3250,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xeb92a21a5e020dbbcc88d244eec9085e419663d0fb12afbb1ec73c410a4b32e1
call_targets:
0x3df2aaede81d2f6b261f79047517713b8e844e04
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xeb92a21a5e020dbbcc88d244eec9085e419663d0fb12afbb1ec73c410a4b32e1",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x3df2aaede81d2f6b261f79047517713b8e844e04"
],
"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": "0x01ffc9a7",
"selector": "0x01ffc9a7",
"calldata_variants": [
"0x01ffc9a7",
"0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x081812fc",
"selector": "0x081812fc",
"calldata_variants": [
"0x081812fc",
"0x081812fc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x08b87923",
"selector": "0x08b87923",
"calldata_variants": [
"0x08b87923",
"0x08b879230000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c5fd195",
"selector": "0x0c5fd195",
"calldata_variants": [
"0x0c5fd195",
"0x0c5fd1950000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c699624",
"selector": "0x0c699624",
"calldata_variants": [
"0x0c699624",
"0x0c6996240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x136439dd",
"selector": "0x136439dd",
"calldata_variants": [
"0x136439dd",
"0x136439dd0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 10384,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 13125,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 19975,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xeb92a21a5e020dbbcc88d244eec9085e419663d0fb12afbb1ec73c410a4b32e1
call_targets:
0x3df2aaede81d2f6b261f79047517713b8e844e04
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xeb92a21a5e020dbbcc88d244eec9085e419663d0fb12afbb1ec73c410a4b32e1",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x3df2aaede81d2f6b261f79047517713b8e844e04"
],
"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": "0x01ffc9a7",
"selector": "0x01ffc9a7",
"calldata_variants": [
"0x01ffc9a7",
"0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x081812fc",
"selector": "0x081812fc",
"calldata_variants": [
"0x081812fc",
"0x081812fc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x08b87923",
"selector": "0x08b87923",
"calldata_variants": [
"0x08b87923",
"0x08b879230000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c5fd195",
"selector": "0x0c5fd195",
"calldata_variants": [
"0x0c5fd195",
"0x0c5fd1950000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0c699624",
"selector": "0x0c699624",
"calldata_variants": [
"0x0c699624",
"0x0c6996240000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x136439dd",
"selector": "0x136439dd",
"calldata_variants": [
"0x136439dd",
"0x136439dd0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 10384,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 13125,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 19975,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| low | math | codex | `depletionTimeOf` can underflow for near-solvent streams due to scaled rounding | 65 | no | — |
viewevidence_json{
"evidence": "`depletionTimeOf` checks `snapshotDebtScaled + _ongoingDebtScaledOf(streamId) >= balanceScaled + oneMVTScaled`, then in `unchecked` computes `balanceScaled - snapshotDebtScaled + oneMVTScaled` without guarding against `snapshotDebtScaled > balanceScaled` by less than one MVT.",
"locations": [
"contracts/src/SablierFlow.sol:80",
"contracts/src/SablierFlow.sol:92"
],
"recommendation": "Tighten the guard to ensure `snapshotDebtScaled + ongoingDebtScaled <= balanceScaled` before the unchecked subtraction, or perform checked subtraction and return 0 when `snapshotDebtScaled > balanceScaled`. Alternatively, compute with signed math or clamp `solvencyAmount` when debt exceeds balance by any amount.",
"exploit_scenario": "For tokens with decimals < 18, `totalDebtScaled` can exceed `balanceScaled` by less than one MVT (e.g., remainder < 10^(18-decimals)) while the descaled total debt is still <= balance. In that case, the guard `snapshotDebtScaled + ongoingDebtScaled >= balanceScaled + oneMVTScaled` is false, and the unchecked subtraction `balanceScaled - snapshotDebtScaled` underflows, producing a huge `solvencyAmount` and an incorrect `depletionTime`. Off-chain or on-chain consumers can be misled into thinking a stream won\u2019t deplete for an extremely long time."
}
|
| low | other | codex | Fee-on-transfer/rebasing ERC20s can break stream accounting and lock withdrawals | 65 | no | — |
viewevidence_json{
"evidence": "`_deposit` increments stream balance and `aggregateBalance` by `amount` before calling `token.safeTransferFrom`, without checking actual received tokens.",
"locations": [
"contracts/src/SablierFlow.sol:653",
"contracts/src/SablierFlow.sol:662",
"contracts/src/SablierFlow.sol:670"
],
"recommendation": "Restrict supported tokens to standard ERC20s without transfer fees/rebases, or compute the actual received amount via balance-before/after and credit that delta. Consider reverting when `balanceAfter - balanceBefore != amount` to enforce invariant safety.",
"exploit_scenario": "If a token charges a transfer fee or rebases down, `_deposit` will still credit the full `amount` to the stream and `aggregateBalance` even though fewer tokens are actually received. This inflates internal balances and can make future withdrawals revert due to insufficient contract balance, effectively locking funds for that token. The mismatch also makes `aggregateBalance` inaccurate, preventing `recover` from working as intended. A malicious or non-standard token can therefore cause persistent insolvency/DoS for streams using it."
}
|