6b74e541-cb40-41fa-b381-0ac9cd0774ee
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 |
|---|---|---|---|---|
| 31187 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 76936 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 76937 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 76938 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 76939 | capability.graph | complete | 1 / 3 | 1 week ago |
| 76940 | detector.run | complete | 1 / 3 | 1 week ago |
| 76941 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1159327] OpenAI Codex v0.77.0 (research preview)
[codex:1159327] --------
[codex:1159327] workdir: /tmp/codex-multi-54z6gjby
[codex:1159327] model: gpt-5.2-codex
[codex:1159327] provider: openai
[codex:1159327] approval: never
[codex:1159327] sandbox: read-only
[codex:1159327] reasoning effort: xhigh
[codex:1159327] reasoning summaries: auto
[codex:1159327] session id: 019b7c7e-d0d3-78c0-88f7-1880411aff11
[codex:1159327] --------
[codex:1159327] user
[codex:1159327] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:1159327]
[codex:1159327] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:1159327]
[codex:1159327] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:1159327] - Gas inefficiency, code quality, naming, or best practices
[codex:1159327] - Theoretical vulnerabilities without a clear extraction path
[codex:1159327] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:1159327] - Front-running unless it enables theft beyond MEV
[codex:1159327] - DoS, griefing, or issues that don't result in attacker profit
[codex:1159327] - Missing events, view function issues, or informational findings
[codex:1159327]
[codex:1159327] HIGH-VALUE PATTERNS TO HUNT:
[codex:1159327] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:1159327] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:1159327] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:1159327] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:1159327] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:1159327] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:1159327] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:1159327] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:1159327] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:1159327]
[codex:1159327] For each finding, you MUST provide:
[codex:1159327] 1. Exact file and line numbers of vulnerable code
[codex:1159327] 2. Step-by-step exploit transaction sequence
[codex:1159327] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:1159327]
[codex:1159327] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:1159327]
[codex:1159327] Output MUST be valid JSON matching the provided schema.
[codex:1159327] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:1159327] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:1159327] mcp startup: no servers
[codex:1159327]
[codex:1159327] thinking
[codex:1159327] **Reviewing AUDIT_BUNDLE.txt instructions**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc ls in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327] AUDIT_BUNDLE.txt
[codex:1159327] codex-output-schema.json
[codex:1159327] contracts
[codex:1159327] exec
[codex:1159327] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:1159327]
[codex:1159327] ================================================================================
[codex:1159327] FILE: contracts/contracts/fuelchain/FuelChainState.sol
[codex:1159327] ================================================================================
[codex:1159327] // SPDX-License-Identifier: UNLICENSED
[codex:1159327] // solhint-disable not-rely-on-time
[codex:1159327] pragma solidity 0.8.9;
[codex:1159327]
[codex:1159327] import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
[codex:1159327] import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
[codex:1159327] import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";
[codex:1159327] import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol";
[codex:1159327] import {CryptographyLib} from "../lib/Cryptography.sol";
[codex:1159327]
[codex:1159327] /// @notice Structure for commits
[codex:1159327] struct Commit {
[codex:1159327] bytes32 blockHash;
[codex:1159327] uint32 timestamp;
[codex:1159327] address reserved1;
[codex:1159327]
[codex:1159327] thinking
[codex:1159327] **Preparing to audit contracts for exploits**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc 'rg --files' in /tmp/codex-multi-54z6gjby succeeded in 8ms:
[codex:1159327] codex-output-schema.json
[codex:1159327] AUDIT_BUNDLE.txt
[codex:1159327] contracts/contracts/fuelchain/FuelChainState.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal/v2/FuelMessagePortalV2.sol
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal.sol
[codex:1159327] contracts/contracts/fuelchain/types/FuelBlockHeaderLite.sol
[codex:1159327] contracts/contracts/fuelchain/types/FuelBlockHeader.sol
[codex:1159327] contracts/contracts/lib/Cryptography.sol
[codex:1159327] contracts/contracts/lib/CommonPredicates.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol
[codex:1159327] contracts/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol
[codex:1159327] contracts/contracts/lib/VerifyBinaryTree/VerifyBinaryTree.sol
[codex:1159327]
[codex:1159327] thinking
[codex:1159327] **Preparing to inspect contracts for vulnerabilities**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "sed -n '1,240p' contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol" in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327] // SPDX-License-Identifier: Apache-2.0
[codex:1159327] pragma solidity 0.8.9;
[codex:1159327]
[codex:1159327] import "../v2/FuelMessagePortalV2.sol";
[codex:1159327]
[codex:1159327] /// @custom:oz-upgrades-unsafe-allow constructor state-variable-immutable
[codex:1159327] contract FuelMessagePortalV3 is FuelMessagePortalV2 {
[codex:1159327] using FuelBlockHeaderLib for FuelBlockHeader;
[codex:1159327] using FuelBlockHeaderLiteLib for FuelBlockHeaderLite;
[codex:1159327]
[codex:1159327] /// @dev Emitted when fuel chain state is emitted
[codex:1159327] event FuelChainStateUpdated(address indexed sender, address indexed oldValue, address indexed newValue);
[codex:1159327]
[codex:1159327] /// @dev Emitted when rate limit is reset
[codex:1159327] event ResetRateLimit(uint256 amount);
[codex:1159327]
[codex:1159327] error MessageBlacklisted();
[codex:1159327] error MessageRelayFailed();
[codex:1159327] error NotSupported();
[codex:1159327] error RateLimitExceeded();
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "sed -n '240,520p' contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol" in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327]
[codex:1159327] if (currentPeriodAmountTemp > limitAmount) {
[codex:1159327] revert RateLimitExceeded();
[codex:1159327] }
[codex:1159327]
[codex:1159327] currentPeriodAmount = currentPeriodAmountTemp;
[codex:1159327] }
[codex:1159327]
[codex:1159327] /**
[codex:1159327] * @notice Sets rate limiter role and other params
[codex:1159327] * @param _limitAmount rate limit amount.
[codex:1159327] */
[codex:1159327] function _setInitParams(uint256 _limitAmount) internal {
[codex:1159327] // set rate limiter role
[codex:1159327] _grantRole(SET_RATE_LIMITER_ROLE, msg.sender);
[codex:1159327]
[codex:1159327] // initializing rate limit var
[codex:1159327] currentPeriodEnd = block.timestamp + RATE_LIMIT_DURATION;
[codex:1159327] limitAmount = _limitAmount;
[codex:1159327] }
[codex:1159327]
[codex:1159327] thinking
[codex:1159327] **Analyzing potential reinitialization exploit**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "sed -n '1,260p' contracts/contracts/lib/VerifyBinaryTree/VerifyBinaryTree.sol" in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327] // SPDX-License-Identifier: Apache-2.0
[codex:1159327] /// @title VerifyBinaryTree
[codex:1159327] /// @author Fuel Labs
[codex:1159327] /// @dev This implements verification for the binary trees used by the FuelVM
[codex:1159327] /// @dev For more details, check:
[codex:1159327] /// @dev https://github.com/FuelLabs/fuel-specs/blob/master/src/protocol/cryptographic-primitives.md
[codex:1159327]
[codex:1159327] pragma solidity ^0.8.4;
[codex:1159327]
[codex:1159327] import {Node} from "./Node.sol";
[codex:1159327] import {nodeDigest, leafDigest} from "./TreeHasher.sol";
[codex:1159327] import {pathLengthFromKey, getStartingBit} from "./Utils.sol";
[codex:1159327]
[codex:1159327] /// @notice Verify if element (key, data) exists in Merkle tree, given data, proof, and root.
[codex:1159327] /// @param root: The root of the tree in which verify the given leaf
[codex:1159327] /// @param data: The data of the leaf to verify
[codex:1159327] /// @param key: The key of the leaf to verify.
[codex:1159327] /// @param proof: Binary Merkle Proof for the leaf.
[codex:1159327] /// @param numLeaves: The number of leaves in the tree
[codex:1159327] /// @return : Whether the proof is valid
[codex:1159327]
[codex:1159327] thinking
[codex:1159327] **Analyzing upgrade initialization vulnerabilities**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "nl -ba contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol | sed -n '40,140p'" in /tmp/codex-multi-54z6gjby succeeded in 6ms:
[codex:1159327] 40
[codex:1159327] 41 /// @notice The eth withdrawal limit amount.
[codex:1159327] 42 uint256 public limitAmount;
[codex:1159327] 43
[codex:1159327] 44 /// @notice Flag to enable or disable the rate limit feature
[codex:1159327] 45 bool public rateLimitEnabled;
[codex:1159327] 46
[codex:1159327] 47 constructor(uint256 _depositLimitGlobal, uint256 _rateLimitDuration) FuelMessagePortalV2(_depositLimitGlobal) {
[codex:1159327] 48 RATE_LIMIT_DURATION = _rateLimitDuration;
[codex:1159327] 49 _disableInitializers();
[codex:1159327] 50 }
[codex:1159327] 51
[codex:1159327] 52 function initialize(FuelChainState) public virtual override {
[codex:1159327] 53 revert NotSupported();
[codex:1159327] 54 }
[codex:1159327] 55
[codex:1159327] 56 function initializerV3(FuelChainState fuelChainState, uint256 _limitAmount) public reinitializer(3) {
[codex:1159327] 57 initializerV1(fuelChainState);
[codex:1159327] 58 _setInitParams(_limitAmount);
[codex:1159327] 59 }
[codex:1159327]
[codex:1159327] thinking
[codex:1159327] **Tracking function location**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "nl -ba contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol | sed -n '160,260p'" in /tmp/codex-multi-54z6gjby succeeded in 6ms:
[codex:1159327] 160 blockHeader.outputMessagesCount
[codex:1159327] 161 )
[codex:1159327] 162 ) revert InvalidMessageInBlockProof();
[codex:1159327] 163
[codex:1159327] 164 //execute message
[codex:1159327] 165 _executeMessage(messageId, message);
[codex:1159327] 166 }
[codex:1159327] 167
[codex:1159327] 168 /// @notice Executes a message in the given header
[codex:1159327] 169 /// @param messageId The id of message to execute
[codex:1159327] 170 /// @param message The message to execute
[codex:1159327] 171 function _executeMessage(bytes32 messageId, Message calldata message) internal virtual override nonReentrant {
[codex:1159327] 172 if (_incomingMessageSuccessful[messageId]) revert AlreadyRelayed();
[codex:1159327] 173
[codex:1159327] 174 //set message sender for receiving contract to reference
[codex:1159327] 175 _incomingMessageSender = message.sender;
[codex:1159327] 176
[codex:1159327] 177 // v2: update accounting if the message carries an amount
[codex:1159327] 178 bool success;
[codex:1159327] 179 bytes memory result;
[codex:1159327]
[codex:1159327] thinking
[codex:1159327] **Checking initializerV1 location**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "nl -ba contracts/contracts/fuelchain/FuelMessagePortal.sol | sed -n '70,190p'" in /tmp/codex-multi-54z6gjby succeeded in 6ms:
[codex:1159327] 70 error AmountTooBig();
[codex:1159327] 71 error AlreadyRelayed();
[codex:1159327] 72
[codex:1159327] 73 ///////////////
[codex:1159327] 74 // Constants //
[codex:1159327] 75 ///////////////
[codex:1159327] 76
[codex:1159327] 77 /// @dev The admin related contract roles
[codex:1159327] 78 bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
[codex:1159327] 79
[codex:1159327] 80 /// @dev The number of decimals that the base Fuel asset uses
[codex:1159327] 81 uint256 public constant FUEL_BASE_ASSET_DECIMALS = 9;
[codex:1159327] 82 uint256 public constant ETH_DECIMALS = 18;
[codex:1159327] 83 uint256 public constant PRECISION = 10 ** (ETH_DECIMALS - FUEL_BASE_ASSET_DECIMALS);
[codex:1159327] 84
[codex:1159327] 85 /// @dev The max message data size in bytes
[codex:1159327] 86 uint256 public constant MAX_MESSAGE_DATA_SIZE = 2 ** 16;
[codex:1159327] 87
[codex:1159327] 88 /// @dev Non-zero null value to optimize gas costs
[codex:1159327] 89 bytes32 internal constant NULL_MESSAGE_SENDER = 0x000000000000000000000000000000000000000000000000000000000000dead;
[codex:1159327]
[codex:1159327] thinking
[codex:1159327] **Searching for unprotected reinitializers**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc 'rg "reinitializer|initializerV" -n contracts/contracts' in /tmp/codex-multi-54z6gjby succeeded in 9ms:
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:56: function initializerV3(FuelChainState fuelChainState, uint256 _limitAmount) public reinitializer(3) {
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:57: initializerV1(fuelChainState);
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:61: function reinitializeV3(uint256 _limitAmount) public reinitializer(3) {
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal.sol:120: initializerV1(fuelChainState);
[codex:1159327] contracts/contracts/fuelchain/FuelMessagePortal.sol:123: function initializerV1(FuelChainState fuelChainState) internal virtual onlyInitializing {
[codex:1159327]
[codex:1159327]
[codex:1159327] thinking
[codex:1159327] **Analyzing unprotected initializerV3 vulnerability**
[codex:1159327] thinking
[codex:1159327] **Preparing detailed vulnerability report**
[codex:1159327]
[codex:1159327] I'm organizing a thorough report that highlights the high-severity upgradeability issue caused by the unprotected `initializerV3`. I'll include precise exploit steps, key code locations with line numbers, and evidence demonstrating how an attacker can become admin, set a malicious chain state, and ultimately withdraw all locked ETH through fabricated proofs. I'll also plan to verify no additional vulnerabilities by scanning other related contracts before finalizing.
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "sed -n '1,240p' contracts/contracts/fuelchain/FuelMessagePortal/v2/FuelMessagePortalV2.sol" in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327] // SPDX-License-Identifier: Apache-2.0
[codex:1159327] pragma solidity 0.8.9;
[codex:1159327]
[codex:1159327] import "../../FuelMessagePortal.sol";
[codex:1159327]
[codex:1159327] /// @custom:oz-upgrades-unsafe-allow constructor state-variable-immutable
[codex:1159327] /// @custom:deprecation THIS CONTRACT IS DEPRECATED. CHECK FuelMessagePortalV3
[codex:1159327] contract FuelMessagePortalV2 is FuelMessagePortal {
[codex:1159327] error GlobalDepositLimit();
[codex:1159327]
[codex:1159327] /// @custom:oz-upgrades-unsafe-allow state-variable-immutable
[codex:1159327] uint256 public immutable depositLimitGlobal;
[codex:1159327]
[codex:1159327] uint256 public totalDeposited;
[codex:1159327]
[codex:1159327] constructor(uint256 _depositLimitGlobal) {
[codex:1159327] /// @custom:oz-upgrades-unsafe-allow state-variable-assignment
[codex:1159327] depositLimitGlobal = _depositLimitGlobal;
[codex:1159327] _disableInitializers();
[codex:1159327] }
[codex:1159327]
[codex:1159327] thinking
[codex:1159327] **Verifying and committing FuelChainState changes**
[codex:1159327] exec
[codex:1159327] /bin/bash -lc "sed -n '1,200p' contracts/contracts/lib/Cryptography.sol" in /tmp/codex-multi-54z6gjby succeeded in 5ms:
[codex:1159327] // SPDX-License-Identifier: UNLICENSED
[codex:1159327] pragma solidity 0.8.9;
[codex:1159327]
[codex:1159327] /// @notice This is the Fuel protocol cryptography library.
[codex:1159327] library CryptographyLib {
[codex:1159327] /////////////
[codex:1159327] // Methods //
[codex:1159327] /////////////
[codex:1159327]
[codex:1159327] // secp256k1n / 2
[codex:1159327] uint256 private constant MAX_SIGNATURE_S_VALUE = 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0;
[codex:1159327]
[codex:1159327] /// @notice The primary hash method for Fuel.
[codex:1159327] /// @param data The bytes input data.
[codex:1159327] /// @return The returned hash result.
[codex:1159327] function hash(bytes memory data) internal pure returns (bytes32) {
[codex:1159327] return sha256(data);
[codex:1159327] }
[codex:1159327] }
[codex:1159327]
[codex:1159327] thinking
[codex:1159327] **Preparing detailed exploit report JSON**
[codex:1159327]
[codex:1159327] I'm carefully assembling a JSON report that highlights the critical exploitable initialization vulnerability allowing admin takeover and fund drain. I'll include evidence lines, file and line references, a concise summary, exploit steps, and precise remediation recommendations formatted exactly to the required schema.
[codex:1159327] codex
[codex:1159327] {"no_findings":false,"summary":"Found a public V3 reinitializer that can be front‑run to seize admin, replace the chain‑state verifier, and drain all ETH locked in the portal.","findings":[{"severity":"high","category":"upgradeability","title":"Unprotected V3 reinitializer lets attacker become admin, swap chain-state verifier, and forge withdrawals","exploit_scenario":"1) Proxy is upgraded to FuelMessagePortalV3 but the admin does not call `initializerV3`/`reinitializeV3` in the same tx (current version < 3). 2) Attacker calls `initializerV3(attackerFuelChainState, _limitAmount)`; this re-runs `initializerV1`, granting the attacker `DEFAULT_ADMIN_ROLE` and setting `_fuelChainState` to their malicious contract. 3) Attacker’s malicious FuelChainState returns `true` for any `finalized(...)` call, so `relayMessage` accepts attacker-chosen headers. 4) Attacker crafts a fake `rootBlockHeader`/`blockHeader` with `height=1`, `outputMessagesCount=1`, and empty proofs (key=0) so `verifyBinaryTree` passes for an attacker-chosen `messageId`. 5) Calling `relayMessage` executes `_executeMessage`, which transfers `withdrawnAmount` ETH to the attacker. Profit: up to the entire `totalDeposited`/ETH balance locked in the portal.","recommendation":"Restrict `initializerV3`/`reinitializeV3` to `onlyRole(DEFAULT_ADMIN_ROLE)` and avoid re-running `initializerV1` on upgrades; use `upgradeToAndCall` to atomically run the initializer so no public window exists.","evidence":"`initializerV3` is public and calls `initializerV1`, which grants admin roles and sets `_fuelChainState` from attacker input. `relayMessage` relies on `_fuelChainState.finalized(...)`, and `_executeMessage` performs the ETH transfer.","locations":["contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:56","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:57","contracts/contracts/fuelchain/FuelMessagePortal.sol:123","contracts/contracts/fuelchain/FuelMessagePortal.sol:130","contracts/contracts/fuelchain/FuelMessagePortal.sol:133","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:129","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:171","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:181"]}]}
[codex:1159327] tokens used
[codex:1159327] 57,967
[codex:1159327] {"no_findings":false,"summary":"Found a public V3 reinitializer that can be front‑run to seize admin, replace the chain‑state verifier, and drain all ETH locked in the portal.","findings":[{"severity":"high","category":"upgradeability","title":"Unprotected V3 reinitializer lets attacker become admin, swap chain-state verifier, and forge withdrawals","exploit_scenario":"1) Proxy is upgraded to FuelMessagePortalV3 but the admin does not call `initializerV3`/`reinitializeV3` in the same tx (current version < 3). 2) Attacker calls `initializerV3(attackerFuelChainState, _limitAmount)`; this re-runs `initializerV1`, granting the attacker `DEFAULT_ADMIN_ROLE` and setting `_fuelChainState` to their malicious contract. 3) Attacker’s malicious FuelChainState returns `true` for any `finalized(...)` call, so `relayMessage` accepts attacker-chosen headers. 4) Attacker crafts a fake `rootBlockHeader`/`blockHeader` with `height=1`, `outputMessagesCount=1`, and empty proofs (key=0) so `verifyBinaryTree` passes for an attacker-chosen `messageId`. 5) Calling `relayMessage` executes `_executeMessage`, which transfers `withdrawnAmount` ETH to the attacker. Profit: up to the entire `totalDeposited`/ETH balance locked in the portal.","recommendation":"Restrict `initializerV3`/`reinitializeV3` to `onlyRole(DEFAULT_ADMIN_ROLE)` and avoid re-running `initializerV1` on upgrades; use `upgradeToAndCall` to atomically run the initializer so no public window exists.","evidence":"`initializerV3` is public and calls `initializerV1`, which grants admin roles and sets `_fuelChainState` from attacker input. `relayMessage` relies on `_fuelChainState.finalized(...)`, and `_executeMessage` performs the ETH transfer.","locations":["contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:56","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:57","contracts/contracts/fuelchain/FuelMessagePortal.sol:123","contracts/contracts/fuelchain/FuelMessagePortal.sol:130","contracts/contracts/fuelchain/FuelMessagePortal.sol:133","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:129","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:171","contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:181"]}]}
{
"codex": {
"ran_at": "2026-01-02T02:20:57.806942+00:00",
"returncode": 0
},
"summary": "Found a public V3 reinitializer that can be front\u2011run to seize admin, replace the chain\u2011state verifier, and drain all ETH locked in the portal.",
"raw_final": {
"summary": "Found a public V3 reinitializer that can be front\u2011run to seize admin, replace the chain\u2011state verifier, and drain all ETH locked in the portal.",
"findings": [
{
"title": "Unprotected V3 reinitializer lets attacker become admin, swap chain-state verifier, and forge withdrawals",
"category": "upgradeability",
"evidence": "`initializerV3` is public and calls `initializerV1`, which grants admin roles and sets `_fuelChainState` from attacker input. `relayMessage` relies on `_fuelChainState.finalized(...)`, and `_executeMessage` performs the ETH transfer.",
"severity": "high",
"locations": [
"contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:56",
"contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:57",
"contracts/contracts/fuelchain/FuelMessagePortal.sol:123",
"contracts/contracts/fuelchain/FuelMessagePortal.sol:130",
"contracts/contracts/fuelchain/FuelMessagePortal.sol:133",
"contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:129",
"contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:171",
"contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:181"
],
"recommendation": "Restrict `initializerV3`/`reinitializeV3` to `onlyRole(DEFAULT_ADMIN_ROLE)` and avoid re-running `initializerV1` on upgrades; use `upgradeToAndCall` to atomically run the initializer so no public window exists.",
"exploit_scenario": "1) Proxy is upgraded to FuelMessagePortalV3 but the admin does not call `initializerV3`/`reinitializeV3` in the same tx (current version < 3). 2) Attacker calls `initializerV3(attackerFuelChainState, _limitAmount)`; this re-runs `initializerV1`, granting the attacker `DEFAULT_ADMIN_ROLE` and setting `_fuelChainState` to their malicious contract. 3) Attacker\u2019s malicious FuelChainState returns `true` for any `finalized(...)` call, so `relayMessage` accepts attacker-chosen headers. 4) Attacker crafts a fake `rootBlockHeader`/`blockHeader` with `height=1`, `outputMessagesCount=1`, and empty proofs (key=0) so `verifyBinaryTree` passes for an attacker-chosen `messageId`. 5) Calling `relayMessage` executes `_executeMessage`, which transfers `withdrawnAmount` ETH to the attacker. Profit: up to the entire `totalDeposited`/ETH balance locked in the portal."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x02fd 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x78abafaf 00000019: GT 0000001a: PUSH2 0x018f 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xc4d66de8 00000024: GT 00000025: PUSH2 0x00e1 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xe465eb9e 0000002f: GT 00000030: PUSH2 0x008a 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xe9f2838e 0000003a: GT 0000003b: PUSH2 0x0064 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xe9f2838e 00000045: EQ 00000046: PUSH2 0x0842 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf4a97d4b 00000050: EQ 00000051: PUSH2 0x085d 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xff50abdc 0000005b: EQ 0000005c: PUSH2 0x0878 0000005f: JUMPI 00000060: PUSH1 0x00 00000062: DUP1 00000063: REVERT 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xe465eb9e 0000006b: EQ 0000006c: PUSH2 0x07ef 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xe4c4be58 00000076: EQ 00000077: PUSH2 0x0806 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xe63ab1e9 00000081: EQ 00000082: PUSH2 0x080e 00000085: JUMPI 00000086: PUSH1 0x00 00000088: DUP1 00000089: REVERT 0000008a: JUMPDEST 0000008b: DUP1 0000008c: PUSH4 0xd68d9d4e 00000091: GT 00000092: PUSH2 0x00bb 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0xd68d9d4e 0000009c: EQ 0000009d: PUSH2 0x07b3 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xdb0e2cc6 000000a7: EQ 000000a8: PUSH2 0x07c6 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xe04c8bca 000000b2: EQ 000000b3: PUSH2 0x07d9 000000b6: JUMPI 000000b7: PUSH1 0x00 000000b9: DUP1 000000ba: REVERT 000000bb: JUMPDEST 000000bc: DUP1 000000bd: PUSH4 0xc4d66de8 000000c2: EQ 000000c3: PUSH2 0x075e 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0xd547741f 000000cd: EQ 000000ce: PUSH2 0x077e 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0xd67bdd25 000000d8: EQ 000000d9: PUSH2 0x079e 000000dc: JUMPI 000000dd: PUSH1 0x00 000000df: DUP1 000000e0: REVERT 000000e1: JUMPDEST 000000e2: DUP1 000000e3: PUSH4 0xa217fddf 000000e8: GT 000000e9: PUSH2 0x0143 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0xb905c4f1 000000f3: GT 000000f4: PUSH2 0x011d 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0xb905c4f1 000000fe: EQ 000000ff: PUSH2 0x06ed 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0xb95b3241 00000109: EQ 0000010a: PUSH2 0x070d 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0xbfb879b8 00000114: EQ 00000115: PUSH2 0x073e 00000118: JUMPI 00000119: PUSH1 0x00 0000011b: DUP1 0000011c: REVERT 0000011d: JUMPDEST 0000011e: DUP1 0000011f: PUSH4 0xa217fddf 00000124: EQ 00000125: PUSH2 0x068d 00000128: JUMPI 00000129: DUP1 0000012a: PUSH4 0xaaf5eb68 0000012f: EQ 00000130: PUSH2 0x06a2 00000133: JUMPI 00000134: DUP1 00000135: PUSH4 0xb63a998a 0000013a: EQ 0000013b: PUSH2 0x06b7 0000013e: JUMPI 0000013f: PUSH1 0x00 00000141: DUP1 00000142: REVERT 00000143: JUMPDEST 00000144: DUP1 00000145: PUSH4 0x91d14854 0000014a: GT 0000014b: PUSH2 0x0174 0000014e: JUMPI 0000014f: DUP1 00000150: PUSH4 0x91d14854 00000155: EQ 00000156: PUSH2 0x0609 00000159: JUMPI 0000015a: DUP1 0000015b: PUSH4 0x92cd1ff2 00000160: EQ 00000161: PUSH2 0x065c 00000164: JUMPI 00000165: DUP1 00000166: PUSH4 0xa0443ea8 0000016b: EQ 0000016c: PUSH2 0x0671 0000016f: JUMPI 00000170: PUSH1 0x00 00000172: DUP1 00000173: REVERT 00000174: JUMPDEST 00000175: DUP1 00000176: PUSH4 0x78abafaf 0000017b: EQ 0000017c: PUSH2 0x05dd 0000017f: JUMPI 00000180: DUP1 00000181: PUSH4 0x8456cb59 00000186: EQ 00000187: PUSH2 0x05f4 0000018a: JUMPI 0000018b: PUSH1 0x00 0000018d: DUP1 0000018e: REVERT 0000018f: JUMPDEST 00000190: DUP1 00000191: PUSH4 0x36568abe 00000196: GT 00000197: PUSH2 0x0253 0000019a: JUMPI 0000019b: DUP1 0000019c: PUSH4 0x52d1902d 000001a1: GT 000001a2: PUSH2 0x01fc 000001a5: JUMPI 000001a6: DUP1 000001a7: PUSH4 0x58794456 000001ac: GT 000001ad: PUSH2 0x01d6 000001b0: JUMPI 000001b1: DUP1 000001b2: PUSH4 0x58794456 000001b7: EQ 000001b8: PUSH2 0x057d 000001bb: JUMPI 000001bc: DUP1 000001bd: PUSH4 0x5c975abb 000001c2: EQ 000001c3: PUSH2 0x0594 000001c6: JUMPI 000001c7: DUP1 000001c8: PUSH4 0x69b1e00d 000001cd: EQ 000001ce: PUSH2 0x05ac 000001d1: JUMPI 000001d2: PUSH1 0x00 000001d4: DUP1 000001d5: REVERT 000001d6: JUMPDEST 000001d7: DUP1 000001d8: PUSH4 0x52d1902d 000001dd: EQ 000001de: PUSH2 0x0540 000001e1: JUMPI 000001e2: DUP1 000001e3: PUSH4 0x557eac73 000001e8: EQ 000001e9: PUSH2 0x0555 000001ec: JUMPI 000001ed: DUP1 000001ee: PUSH4 0x56bb54a7 000001f3: EQ 000001f4: PUSH2 0x0575 000001f7: JUMPI 000001f8: PUSH1 0x00 000001fa: DUP1 000001fb: REVERT 000001fc: JUMPDEST 000001fd: DUP1 000001fe: PUSH4 0x3f4ba83a 00000203: GT 00000204: PUSH2 0x022d 00000207: JUMPI 00000208: DUP1 00000209: PUSH4 0x3f4ba83a 0000020e: EQ 0000020f: PUSH2 0x0503 00000212: JUMPI 00000213: DUP1 00000214: PUSH4 0x40de1b1a 00000219: EQ 0000021a: PUSH2 0x0518 0000021d: JUMPI 0000021e: DUP1 0000021f: PUSH4 0x4f1ef286 00000224: EQ 00000225: PUSH2 0x052d 00000228: JUMPI 00000229: PUSH1 0x00 0000022b: DUP1 0000022c: REVERT 0000022d: JUMPDEST 0000022e: DUP1 0000022f: PUSH4 0x36568abe 00000234: EQ 00000235: PUSH2 0x04b0 00000238: JUMPI 00000239: DUP1 0000023a: PUSH4 0x3659cfe6 0000023f: EQ 00000240: PUSH2 0x04d0 00000243: JUMPI 00000244: DUP1 00000245: PUSH4 0x3c6524f2 0000024a: EQ 0000024b: PUSH2 0x04f0 0000024e: JUMPI 0000024f: PUSH1 0x00 00000251: DUP1 00000252: REVERT 00000253: JUMPDEST 00000254: DUP1 00000255: PUSH4 0x1abefcaf 0000025a: GT 0000025b: PUSH2 0x02b5 0000025e: JUMPI 0000025f: DUP1 00000260: PUSH4 0x2ce03353 00000265: GT 00000266: PUSH2 0x028f 00000269: JUMPI 0000026a: DUP1 0000026b: PUSH4 0x2ce03353 00000270: EQ 00000271: PUSH2 0x043c 00000274: JUMPI 00000275: DUP1 00000276: PUSH4 0x2f2ff15d 0000027b: EQ 0000027c: PUSH2 0x045c 0000027f: JUMPI 00000280: DUP1 00000281: PUSH4 0x32ad6268 00000286: EQ 00000287: PUSH2 0x047c 0000028a: JUMPI 0000028b: PUSH1 0x00 0000028d: DUP1 0000028e: REVERT 0000028f: JUMPDEST 00000290: DUP1 00000291: PUSH4 0x1abefcaf 00000296: EQ 00000297: PUSH2 0x03d9 0000029a: JUMPI 0000029b: DUP1 0000029c: PUSH4 0x23c640e7 000002a1: EQ 000002a2: PUSH2 0x03f9 000002a5: JUMPI 000002a6: DUP1 000002a7: PUSH4 0x248a9ca3 000002ac: EQ 000002ad: PUSH2 0x040c 000002b0: JUMPI 000002b1: PUSH1 0x00 000002b3: DUP1 000002b4: REVERT 000002b5: JUMPDEST 000002b6: DUP1 000002b7: PUSH4 0x04594000 000002bc: GT 000002bd: PUSH2 0x02e6 000002c0: JUMPI 000002c1: DUP1 000002c2: PUSH4 0x04594000 000002c7: EQ 000002c8: PUSH2 0x035c 000002cb: JUMPI 000002cc: DUP1 000002cd: PUSH4 0x06720bbb 000002d2: EQ 000002d3: PUSH2 0x0390 000002d6: JUMPI 000002d7: DUP1 000002d8: PUSH4 0x1a2a45fc 000002dd: EQ 000002de: PUSH2 0x03a5 000002e1: JUMPI 000002e2: PUSH1 0x00 000002e4: DUP1 000002e5: REVERT 000002e6: JUMPDEST 000002e7: DUP1 000002e8: PUSH4 0x01ffc9a7 000002ed: EQ 000002ee: PUSH2 0x0302 000002f1: JUMPI 000002f2: DUP1 000002f3: PUSH4 0x024f0575 000002f8: EQ 000002f9: PUSH2 0x0337 000002fc: JUMPI 000002fd: JUMPDEST 000002fe: PUSH1 0x00 00000300: DUP1 00000301: REVERT 00000302: JUMPDEST 00000303: CALLVALUE 00000304: DUP1 00000305: ISZERO 00000306: PUSH2 0x030e 00000309: JUMPI 0000030a: PUSH1 0x00 0000030c: DUP1 0000030d: REVERT 0000030e: JUMPDEST 0000030f: POP 00000310: PUSH2 0x0322 00000313: PUSH2 0x031d 00000316: CALLDATASIZE 00000317: PUSH1 0x04 00000319: PUSH2 0x318f 0000031c: JUMP 0000031d: JUMPDEST 0000031e: PUSH2 0x088f 00000321: JUMP 00000322: JUMPDEST 00000323: PUSH1 0x40 00000325: MLOAD 00000326: SWAP1 00000327: ISZERO 00000328: ISZERO 00000329: DUP2 0000032a: MSTORE 0000032b: PUSH1 0x20 0000032d: ADD 0000032e: JUMPDEST 0000032f: PUSH1 0x40 00000331: MLOAD 00000332: DUP1 00000333: SWAP2 00000334: SUB 00000335: SWAP1 00000336: RETURN 00000337: JUMPDEST 00000338: CALLVALUE 00000339: DUP1 0000033a: ISZERO 0000033b: PUSH2 0x0343 0000033e: JUMPI 0000033f: PUSH1 0x00 00000341: DUP1 00000342: REVERT 00000343: JUMPDEST 00000344: POP 00000345: PUSH2 0x034e 00000348: PUSH3 0x010000 0000034c: DUP2 0000034d: JUMP 0000034e: JUMPDEST 0000034f: PUSH1 0x40 00000351: MLOAD 00000352: SWAP1 00000353: DUP2 00000354: MSTORE 00000355: PUSH1 0x20 00000357: ADD 00000358: PUSH2 0x032e 0000035b: JUMP 0000035c: JUMPDEST 0000035d: CALLVALUE 0000035e: DUP1 0000035f: ISZERO 00000360: PUSH2 0x0368 00000363: JUMPI 00000364: PUSH1 0x00 00000366: DUP1 00000367: REVERT 00000368: JUMPDEST 00000369: POP 0000036a: PUSH2 0x034e 0000036d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000038e: DUP2 0000038f: JUMP 00000390: JUMPDEST 00000391: PUSH2 0x03a3 00000394: PUSH2 0x039e 00000397: CALLDATASIZE 00000398: PUSH1 0x04 0000039a: PUSH2 0x31d1 0000039d: JUMP 0000039e: JUMPDEST 0000039f: PUSH2 0x0928 000003a2: JUMP 000003a3: JUMPDEST 000003a4: STOP 000003a5: JUMPDEST 000003a6: CALLVALUE 000003a7: DUP1 000003a8: ISZERO 000003a9: PUSH2 0x03b1 000003ac: JUMPI 000003ad: PUSH1 0x00 000003af: DUP1 000003b0: REVERT 000003b1: JUMPDEST 000003b2: POP 000003b3: PUSH2 0x034e 000003b6: PUSH32 0x7e5b1c957d4df4bad29cdaceffe50f28f282a0d5096601b958917550d4b2e016 000003d7: DUP2 000003d8: JUMP 000003d9: JUMPDEST 000003da: CALLVALUE 000003db: DUP1 000003dc: ISZERO 000003dd: PUSH2 0x03e5 000003e0: JUMPI 000003e1: PUSH1 0x00 000003e3: DUP1 000003e4: REVERT 000003e5: JUMPDEST 000003e6: POP 000003e7: PUSH2 0x03a3 000003ea: PUSH2 0x03f4 000003ed: CALLDATASIZE 000003ee: PUSH1 0x04 000003f0: PUSH2 0x320c 000003f3: JUMP 000003f4: JUMPDEST 000003f5: PUSH2 0x094d 000003f8: JUMP 000003f9: JUMPDEST 000003fa: PUSH2 0x03a3 000003fd: PUSH2 0x0407 00000400: CALLDATASIZE 00000401: PUSH1 0x04 00000403: PUSH2 0x3229 00000406: JUMP 00000407: JUMPDEST 00000408: PUSH2 0x09eb 0000040b: JUMP 0000040c: JUMPDEST 0000040d: CALLVALUE 0000040e: DUP1 0000040f: ISZERO 00000410: PUSH2 0x0418 00000413: JUMPI 00000414: PUSH1 0x00 00000416: DUP1 00000417: REVERT 00000418: JUMPDEST 00000419: POP 0000041a: PUSH2 0x034e 0000041d: PUSH2 0x0427 00000420: CALLDATASIZE 00000421: PUSH1 0x04 00000423: PUSH2 0x31d1 00000426: JUMP 00000427: JUMPDEST 00000428: PUSH1 0x00 0000042a: SWAP1 0000042b: DUP2 0000042c: MSTORE 0000042d: PUSH1 0x97 0000042f: PUSH1 0x20 00000431: MSTORE 00000432: PUSH1 0x40 00000434: SWAP1 00000435: KECCAK256 00000436: PUSH1 0x01 00000438: ADD 00000439: SLOAD 0000043a: SWAP1 0000043b: JUMP 0000043c: JUMPDEST 0000043d: CALLVALUE 0000043e: DUP1 0000043f: ISZERO 00000440: PUSH2 0x0448 00000443: JUMPI 00000444: PUSH1 0x00 00000446: DUP1 00000447: REVERT 00000448: JUMPDEST 00000449: POP 0000044a: PUSH2 0x03a3 0000044d: PUSH2 0x0457 00000450: CALLDATASIZE 00000451: PUSH1 0x04 00000453: PUSH2 0x31d1 00000456: JUMP 00000457: JUMPDEST 00000458: PUSH2 0x0a38 0000045b: JUMP 0000045c: JUMPDEST 0000045d: CALLVALUE 0000045e: DUP1 0000045f: ISZERO 00000460: PUSH2 0x0468 00000463: JUMPI 00000464: PUSH1 0x00 00000466: DUP1 00000467: REVERT 00000468: JUMPDEST 00000469: POP 0000046a: PUSH2 0x03a3 0000046d: PUSH2 0x0477 00000470: CALLDATASIZE 00000471: PUSH1 0x04 00000473: PUSH2 0x32a5 00000476: JUMP 00000477: JUMPDEST 00000478: PUSH2 0x0b6e 0000047b: JUMP 0000047c: JUMPDEST 0000047d: CALLVALUE 0000047e: DUP1 0000047f: ISZERO 00000480: PUSH2 0x0488 00000483: JUMPI 00000484: PUSH1 0x00 00000486: DUP1 00000487: REVERT 00000488: JUMPDEST 00000489: POP 0000048a: PUSH2 0x034e 0000048d: PUSH32 0x0000000000000000000000000000000000000000000000000000000000093a80 000004ae: DUP2 000004af: JUMP 000004b0: JUMPDEST 000004b1: CALLVALUE 000004b2: DUP1 000004b3: ISZERO 000004b4: PUSH2 0x04bc 000004b7: JUMPI 000004b8: PUSH1 0x00 000004ba: DUP1 000004bb: REVERT 000004bc: JUMPDEST 000004bd: POP 000004be: PUSH2 0x03a3 000004c1: PUSH2 0x04cb 000004c4: CALLDATASIZE 000004c5: PUSH1 0x04 000004c7: PUSH2 0x32a5 000004ca: JUMP 000004cb: JUMPDEST 000004cc: PUSH2 0x0b93 000004cf: JUMP 000004d0: JUMPDEST 000004d1: CALLVALUE 000004d2: DUP1 000004d3: ISZERO 000004d4: PUSH2 0x04dc 000004d7: JUMPI 000004d8: PUSH1 0x00 000004da: DUP1 000004db: REVERT 000004dc: JUMPDEST 000004dd: POP 000004de: PUSH2 0x03a3 000004e1: PUSH2 0x04eb 000004e4: CALLDATASIZE 000004e5: PUSH1 0x04 000004e7: PUSH2 0x320c 000004ea: JUMP 000004eb: JUMPDEST 000004ec: PUSH2 0x0c2c 000004ef: JUMP 000004f0: JUMPDEST 000004f1: PUSH2 0x03a3 000004f4: PUSH2 0x04fe 000004f7: CALLDATASIZE 000004f8: PUSH1 0x04 000004fa: PUSH2 0x3300 000004fd: JUMP 000004fe: JUMPDEST 000004ff: PUSH2 0x0dfe 00000502: JUMP 00000503: JUMPDEST 00000504: CALLVALUE 00000505: DUP1 00000506: ISZERO 00000507: PUSH2 0x050f 0000050a: JUMPI 0000050b: PUSH1 0x00 0000050d: DUP1 0000050e: REVERT 0000050f: JUMPDEST 00000510: POP 00000511: PUSH2 0x03a3 00000514: PUSH2 0x118d 00000517: JUMP 00000518: JUMPDEST 00000519: CALLVALUE 0000051a: DUP1 0000051b: ISZERO 0000051c: PUSH2 0x0524 0000051f: JUMPI 00000520: PUSH1 0x00 00000522: DUP1 00000523: REVERT 00000524: JUMPDEST 00000525: POP 00000526: PUSH2 0x034e 00000529: PUSH1 0x09 0000052b: DUP2 0000052c: JUMP 0000052d: JUMPDEST 0000052e: PUSH2 0x03a3 00000531: PUSH2 0x053b 00000534: CALLDATASIZE 00000535: PUSH1 0x04 00000537: PUSH2 0x344d 0000053a: JUMP 0000053b: JUMPDEST 0000053c: PUSH2 0x11a0 0000053f: JUMP 00000540: JUMPDEST 00000541: CALLVALUE 00000542: DUP1 00000543: ISZERO 00000544: PUSH2 0x054c 00000547: JUMPI 00000548: PUSH1 0x00 0000054a: DUP1 0000054b: REVERT 0000054c: JUMPDEST 0000054d: POP 0000054e: PUSH2 0x034e 00000551: PUSH2 0x135f 00000554: JUMP 00000555: JUMPDEST 00000556: CALLVALUE 00000557: DUP1 00000558: ISZERO 00000559: PUSH2 0x0561 0000055c: JUMPI 0000055d: PUSH1 0x00 0000055f: DUP1 00000560: REVERT 00000561: JUMPDEST 00000562: POP 00000563: PUSH2 0x03a3 00000566: PUSH2 0x0570 00000569: CALLDATASIZE 0000056a: PUSH1 0x04 0000056c: PUSH2 0x31d1 0000056f: JUMP 00000570: JUMPDEST 00000571: PUSH2 0x1431 00000574: JUMP 00000575: JUMPDEST 00000576: PUSH2 0x03a3 00000579: PUSH2 0x14ca 0000057c: JUMP 0000057d: JUMPDEST 0000057e: CALLVALUE 0000057f: DUP1 00000580: ISZERO 00000581: PUSH2 0x0589 00000584: JUMPI 00000585: PUSH1 0x00 00000587: DUP1 00000588: REVERT 00000589: JUMPDEST 0000058a: POP 0000058b: PUSH2 0x034e 0000058e: PUSH2 0x01c9 00000591: SLOAD 00000592: DUP2 00000593: JUMP 00000594: JUMPDEST 00000595: CALLVALUE 00000596: DUP1 00000597: ISZERO 00000598: PUSH2 0x05a0 0000059b: JUMPI 0000059c: PUSH1 0x00 0000059e: DUP1 0000059f: REVERT 000005a0: JUMPDEST 000005a1: POP 000005a2: PUSH1 0x33 000005a4: SLOAD 000005a5: PUSH1 0xff 000005a7: AND 000005a8: PUSH2 0x0322 000005ab: JUMP 000005ac: JUMPDEST 000005ad: CALLVALUE 000005ae: DUP1 000005af: ISZERO 000005b0: PUSH2 0x05b8 000005b3: JUMPI 000005b4: PUSH1 0x00 000005b6: DUP1 000005b7: REVERT 000005b8: JUMPDEST 000005b9: POP 000005ba: PUSH2 0x0322 000005bd: PUSH2 0x05c7 000005c0: CALLDATASIZE 000005c1: PUSH1 0x04 000005c3: PUSH2 0x31d1 000005c6: JUMP 000005c7: JUMPDEST 000005c8: PUSH1 0x00 000005ca: SWAP1 000005cb: DUP2 000005cc: MSTORE 000005cd: PUSH2 0x0162 000005d0: PUSH1 0x20 000005d2: MSTORE 000005d3: PUSH1 0x40 000005d5: SWAP1 000005d6: KECCAK256 000005d7: SLOAD 000005d8: PUSH1 0xff 000005da: AND 000005db: SWAP1 000005dc: JUMP 000005dd: JUMPDEST 000005de: CALLVALUE 000005df: DUP1 000005e0: ISZERO 000005e1: PUSH2 0x05e9 000005e4: JUMPI 000005e5: PUSH1 0x00 000005e7: DUP1 000005e8: REVERT 000005e9: JUMPDEST 000005ea: POP 000005eb: PUSH2 0x034e 000005ee: PUSH2 0x01ca 000005f1: SLOAD 000005f2: DUP2 000005f3: JUMP 000005f4: JUMPDEST 000005f5: CALLVALUE 000005f6: DUP1 000005f7: ISZERO 000005f8: PUSH2 0x0600 000005fb: JUMPI 000005fc: PUSH1 0x00 000005fe: DUP1 000005ff: REVERT 00000600: JUMPDEST 00000601: POP 00000602: PUSH2 0x03a3 00000605: PUSH2 0x1505 00000608: JUMP 00000609: JUMPDEST 0000060a: CALLVALUE 0000060b: DUP1 0000060c: ISZERO 0000060d: PUSH2 0x0615 00000610: JUMPI 00000611: PUSH1 0x00 00000613: DUP1 00000614: REVERT 00000615: JUMPDEST 00000616: POP 00000617: PUSH2 0x0322 0000061a: PUSH2 0x0624 0000061d: CALLDATASIZE 0000061e: PUSH1 0x04 00000620: PUSH2 0x32a5 00000623: JUMP 00000624: JUMPDEST 00000625: PUSH1 0x00 00000627: SWAP2 00000628: DUP3 00000629: MSTORE 0000062a: PUSH1 0x97 0000062c: PUSH1 0x20 0000062e: SWAP1 0000062f: DUP2 00000630: MSTORE 00000631: PUSH1 0x40 00000633: DUP1 00000634: DUP5 00000635: KECCAK256 00000636: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000064b: SWAP4 0000064c: SWAP1 0000064d: SWAP4 0000064e: AND 0000064f: DUP5 00000650: MSTORE 00000651: SWAP2 00000652: SWAP1 00000653: MSTORE 00000654: SWAP1 00000655: KECCAK256 00000656: SLOAD 00000657: PUSH1 0xff 00000659: AND 0000065a: SWAP1 0000065b: JUMP 0000065c: JUMPDEST 0000065d: CALLVALUE 0000065e: DUP1 0000065f: ISZERO 00000660: PUSH2 0x0668 00000663: JUMPI 00000664: PUSH1 0x00 00000666: DUP1 00000667: REVERT 00000668: JUMPDEST 00000669: POP 0000066a: PUSH2 0x034e 0000066d: PUSH1 0x12 0000066f: DUP2 00000670: JUMP 00000671: JUMPDEST 00000672: CALLVALUE 00000673: DUP1 00000674: ISZERO 00000675: PUSH2 0x067d 00000678: JUMPI 00000679: PUSH1 0x00 0000067b: DUP1 0000067c: REVERT 0000067d: JUMPDEST 0000067e: POP 0000067f: PUSH1 0x40 00000681: MLOAD 00000682: PUSH1 0x09 00000684: DUP2 00000685: MSTORE 00000686: PUSH1 0x20 00000688: ADD 00000689: PUSH2 0x032e 0000068c: JUMP 0000068d: JUMPDEST 0000068e: CALLVALUE 0000068f: DUP1 00000690: ISZERO 00000691: PUSH2 0x0699 00000694: JUMPI 00000695: PUSH1 0x00 00000697: DUP1 00000698: REVERT 00000699: JUMPDEST 0000069a: POP 0000069b: PUSH2 0x034e 0000069e: PUSH1 0x00 000006a0: DUP2 000006a1: JUMP 000006a2: JUMPDEST 000006a3: CALLVALUE 000006a4: DUP1 000006a5: ISZERO 000006a6: PUSH2 0x06ae 000006a9: JUMPI 000006aa: PUSH1 0x00 000006ac: DUP1 000006ad: REVERT 000006ae: JUMPDEST 000006af: POP 000006b0: PUSH2 0x034e 000006b3: PUSH2 0x1537 000006b6: JUMP 000006b7: JUMPDEST 000006b8: CALLVALUE 000006b9: DUP1 000006ba: ISZERO 000006bb: PUSH2 0x06c3 000006be: JUMPI 000006bf: PUSH1 0x00 000006c1: DUP1 000006c2: REVERT 000006c3: JUMPDEST 000006c4: POP 000006c5: PUSH2 0x0160 000006c8: SLOAD 000006c9: PUSH1 0x40 000006cb: MLOAD 000006cc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006e1: SWAP1 000006e2: SWAP2 000006e3: AND 000006e4: DUP2 000006e5: MSTORE 000006e6: PUSH1 0x20 000006e8: ADD 000006e9: PUSH2 0x032e 000006ec: JUMP 000006ed: JUMPDEST 000006ee: CALLVALUE 000006ef: DUP1 000006f0: ISZERO 000006f1: PUSH2 0x06f9 000006f4: JUMPI 000006f5: PUSH1 0x00 000006f7: DUP1 000006f8: REVERT 000006f9: JUMPDEST 000006fa: POP 000006fb: PUSH2 0x03a3 000006fe: PUSH2 0x0708 00000701: CALLDATASIZE 00000702: PUSH1 0x04 00000704: PUSH2 0x3503 00000707: JUMP 00000708: JUMPDEST 00000709: PUSH2 0x1551 0000070c: JUMP 0000070d: JUMPDEST 0000070e: CALLVALUE 0000070f: DUP1 00000710: ISZERO 00000711: PUSH2 0x0719 00000714: JUMPI 00000715: PUSH1 0x00 00000717: DUP1 00000718: REVERT 00000719: JUMPDEST 0000071a: POP 0000071b: PUSH2 0x0322 0000071e: PUSH2 0x0728 00000721: CALLDATASIZE 00000722: PUSH1 0x04 00000724: PUSH2 0x31d1 00000727: JUMP 00000728: JUMPDEST 00000729: PUSH2 0x01c7 0000072c: PUSH1 0x20 0000072e: MSTORE 0000072f: PUSH1 0x00 00000731: SWAP1 00000732: DUP2 00000733: MSTORE 00000734: PUSH1 0x40 00000736: SWAP1 00000737: KECCAK256 00000738: SLOAD 00000739: PUSH1 0xff 0000073b: AND 0000073c: DUP2 0000073d: JUMP 0000073e: JUMPDEST 0000073f: CALLVALUE 00000740: DUP1 00000741: ISZERO 00000742: PUSH2 0x074a 00000745: JUMPI 00000746: PUSH1 0x00 00000748: DUP1 00000749: REVERT 0000074a: JUMPDEST 0000074b: POP 0000074c: PUSH2 0x03a3 0000074f: PUSH2 0x0759 00000752: CALLDATASIZE 00000753: PUSH1 0x04 00000755: PUSH2 0x3520 00000758: JUMP 00000759: JUMPDEST 0000075a: PUSH2 0x15bd 0000075d: JUMP 0000075e: JUMPDEST 0000075f: CALLVALUE 00000760: DUP1 00000761: ISZERO 00000762: PUSH2 0x076a 00000765: JUMPI 00000766: PUSH1 0x00 00000768: DUP1 00000769: REVERT 0000076a: JUMPDEST 0000076b: POP 0000076c: PUSH2 0x03a3 0000076f: PUSH2 0x0779 00000772: CALLDATASIZE 00000773: PUSH1 0x04 00000775: PUSH2 0x320c 00000778: JUMP 00000779: JUMPDEST 0000077a: PUSH2 0x16f7 0000077d: JUMP 0000077e: JUMPDEST 0000077f: CALLVALUE 00000780: DUP1 00000781: ISZERO 00000782: PUSH2 0x078a 00000785: JUMPI 00000786: PUSH1 0x00 00000788: DUP1 00000789: REVERT 0000078a: JUMPDEST 0000078b: POP 0000078c: PUSH2 0x03a3 0000078f: PUSH2 0x0799 00000792: CALLDATASIZE 00000793: PUSH1 0x04 00000795: PUSH2 0x32a5 00000798: JUMP 00000799: JUMPDEST 0000079a: PUSH2 0x1729 0000079d: JUMP 0000079e: JUMPDEST 0000079f: CALLVALUE 000007a0: DUP1 000007a1: ISZERO 000007a2: PUSH2 0x07aa 000007a5: JUMPI 000007a6: PUSH1 0x00 000007a8: DUP1 000007a9: REVERT 000007aa: JUMPDEST 000007ab: POP 000007ac: PUSH2 0x034e 000007af: PUSH2 0x174e 000007b2: JUMP 000007b3: JUMPDEST 000007b4: PUSH2 0x03a3 000007b7: PUSH2 0x07c1 000007ba: CALLDATASIZE 000007bb: PUSH1 0x04 000007bd: PUSH2 0x31d1 000007c0: JUMP 000007c1: JUMPDEST 000007c2: PUSH2 0x1798 000007c5: JUMP 000007c6: JUMPDEST 000007c7: PUSH2 0x03a3 000007ca: PUSH2 0x07d4 000007cd: CALLDATASIZE 000007ce: PUSH1 0x04 000007d0: PUSH2 0x31d1 000007d3: JUMP 000007d4: JUMPDEST 000007d5: PUSH2 0x17ba 000007d8: JUMP 000007d9: JUMPDEST 000007da: CALLVALUE 000007db: DUP1 000007dc: ISZERO 000007dd: PUSH2 0x07e5 000007e0: JUMPI 000007e1: PUSH1 0x00 000007e3: DUP1 000007e4: REVERT 000007e5: JUMPDEST 000007e6: POP 000007e7: PUSH2 0x0161 000007ea: SLOAD 000007eb: PUSH2 0x034e 000007ee: JUMP 000007ef: JUMPDEST 000007f0: CALLVALUE 000007f1: DUP1 000007f2: ISZERO 000007f3: PUSH2 0x07fb 000007f6: JUMPI 000007f7: PUSH1 0x00 000007f9: DUP1 000007fa: REVERT 000007fb: JUMPDEST 000007fc: POP 000007fd: PUSH2 0x034e 00000800: PUSH2 0x01c8 00000803: SLOAD 00000804: DUP2 00000805: JUMP 00000806: JUMPDEST 00000807: PUSH2 0x03a3 0000080a: PUSH2 0x1801 0000080d: JUMP 0000080e: JUMPDEST 0000080f: CALLVALUE 00000810: DUP1 00000811: ISZERO 00000812: PUSH2 0x081a 00000815: JUMPI 00000816: PUSH1 0x00 00000818: DUP1 00000819: REVERT 0000081a: JUMPDEST 0000081b: POP 0000081c: PUSH2 0x034e 0000081f: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a 00000840: DUP2 00000841: JUMP 00000842: JUMPDEST 00000843: CALLVALUE 00000844: DUP1 00000845: ISZERO 00000846: PUSH2 0x084e 00000849: JUMPI 0000084a: PUSH1 0x00 0000084c: DUP1 0000084d: REVERT 0000084e: JUMPDEST 0000084f: POP 00000850: PUSH2 0x01c6 00000853: SLOAD 00000854: PUSH2 0x0322 00000857: SWAP1 00000858: PUSH1 0xff 0000085a: AND 0000085b: DUP2 0000085c: JUMP 0000085d: JUMPDEST 0000085e: CALLVALUE 0000085f: DUP1 00000860: ISZERO 00000861: PUSH2 0x0869 00000864: JUMPI 00000865: PUSH1 0x00 00000867: DUP1 00000868: REVERT 00000869: JUMPDEST 0000086a: POP 0000086b: PUSH2 0x01cb 0000086e: SLOAD 0000086f: PUSH2 0x0322 00000872: SWAP1 00000873: PUSH1 0xff 00000875: AND 00000876: DUP2 00000877: JUMP 00000878: JUMPDEST 00000879: CALLVALUE 0000087a: DUP1 0000087b: ISZERO 0000087c: PUSH2 0x0884 0000087f: JUMPI 00000880: PUSH1 0x00 00000882: DUP1 00000883: REVERT 00000884: JUMPDEST 00000885: POP 00000886: PUSH2 0x034e 00000889: PUSH2 0x0194 0000088c: SLOAD 0000088d: DUP2 0000088e: JUMP 0000088f: JUMPDEST 00000890: PUSH1 0x00 00000892: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000008b3: DUP3 000008b4: AND 000008b5: PUSH32 0x7965db0b00000000000000000000000000000000000000000000000000000000 000008d6: EQ 000008d7: DUP1 000008d8: PUSH2 0x0922 000008db: JUMPI 000008dc: POP 000008dd: PUSH32 0x01ffc9a700000000000000000000000000000000000000000000000000000000 000008fe: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000091f: DUP4 00000920: AND 00000921: EQ 00000922: JUMPDEST 00000923: SWAP3 00000924: SWAP2 00000925: POP 00000926: POP 00000927: JUMP 00000928: JUMPDEST 00000929: PUSH1 0x00 0000092b: PUSH2 0x0933 0000092e: DUP2 0000092f: PUSH2 0x181a 00000932: JUMP 00000933: JUMPDEST 00000934: POP 00000935: PUSH1 0x00 00000937: SWAP1 00000938: DUP2 00000939: MSTORE 0000093a: PUSH2 0x01c7 0000093d: PUSH1 0x20 0000093f: MSTORE 00000940: PUSH1 0x40 00000942: SWAP1 00000943: KECCAK256 00000944: DUP1 00000945: SLOAD 00000946: PUSH1 0xff 00000948: NOT 00000949: AND 0000094a: SWAP1 0000094b: SSTORE 0000094c: JUMP 0000094d: JUMPDEST 0000094e: PUSH1 0x00 00000950: PUSH2 0x0958 00000953: DUP2 00000954: PUSH2 0x181a 00000957: JUMP 00000958: JUMPDEST 00000959: PUSH2 0x0160 0000095c: SLOAD 0000095d: PUSH1 0x40 0000095f: MLOAD 00000960: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000975: DUP1 00000976: DUP6 00000977: AND 00000978: SWAP3 00000979: AND 0000097a: SWAP1 0000097b: CALLER 0000097c: SWAP1 0000097d: PUSH32 0x42e4ca4602039e4eee7055c852f2b9116333675ff2826aa7f05adb0839562f6e 0000099e: SWAP1 0000099f: PUSH1 0x00 000009a1: SWAP1 000009a2: LOG4 000009a3: POP 000009a4: PUSH2 0x0160 000009a7: DUP1 000009a8: SLOAD 000009a9: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 000009ca: AND 000009cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009e0: SWAP3 000009e1: SWAP1 000009e2: SWAP3 000009e3: AND 000009e4: SWAP2 000009e5: SWAP1 000009e6: SWAP2 000009e7: OR 000009e8: SWAP1 000009e9: SSTORE 000009ea: JUMP 000009eb: JUMPDEST 000009ec: PUSH2 0x09f3 000009ef: PUSH2 0x1824 000009f2: JUMP 000009f3: JUMPDEST 000009f4: PUSH2 0x0a33 000009f7: DUP4 000009f8: DUP4 000009f9: DUP4 000009fa: DUP1 000009fb: DUP1 000009fc: PUSH1 0x1f 000009fe: ADD 000009ff: PUSH1 0x20 00000a01: DUP1 00000a02: SWAP2 00000a03: DIV 00000a04: MUL 00000a05: PUSH1 0x20 00000a07: ADD 00000a08: PUSH1 0x40 00000a0a: MLOAD 00000a0b: SWAP1 00000a0c: DUP2 00000a0d: ADD 00000a0e: PUSH1 0x40 00000a10: MSTORE 00000a11: DUP1 00000a12: SWAP4 00000a13: SWAP3 00000a14: SWAP2 00000a15: SWAP1 00000a16: DUP2 00000a17: DUP2 00000a18: MSTORE 00000a19: PUSH1 0x20 00000a1b: ADD 00000a1c: DUP4 00000a1d: DUP4 00000a1e: DUP1 00000a1f: DUP3 00000a20: DUP5 00000a21: CALLDATACOPY 00000a22: PUSH1 0x00 00000a24: SWAP3 00000a25: ADD 00000a26: SWAP2 00000a27: SWAP1 00000a28: SWAP2 00000a29: MSTORE 00000a2a: POP 00000a2b: PUSH2 0x1879 00000a2e: SWAP3 00000a2f: POP 00000a30: POP 00000a31: POP 00000a32: JUMP 00000a33: JUMPDEST 00000a34: POP 00000a35: POP 00000a36: POP 00000a37: JUMP 00000a38: JUMPDEST 00000a39: PUSH1 0x00 00000a3b: SLOAD 00000a3c: PUSH1 0x03 00000a3e: SWAP1 00000a3f: PUSH2 0x0100 00000a42: SWAP1 00000a43: DIV 00000a44: PUSH1 0xff 00000a46: AND 00000a47: ISZERO 00000a48: DUP1 00000a49: ISZERO 00000a4a: PUSH2 0x0a5a 00000a4d: JUMPI 00000a4e: POP 00000a4f: PUSH1 0x00 00000a51: SLOAD 00000a52: PUSH1 0xff 00000a54: DUP1 00000a55: DUP4 00000a56: AND 00000a57: SWAP2 00000a58: AND 00000a59: LT 00000a5a: JUMPDEST 00000a5b: PUSH2 0x0ad1 00000a5e: JUMPI 00000a5f: PUSH1 0x40 00000a61: MLOAD 00000a62: PUSH3 0x461bcd 00000a66: PUSH1 0xe5 00000a68: SHL 00000a69: DUP2 00000a6a: MSTORE 00000a6b: PUSH1 0x20 00000a6d: PUSH1 0x04 00000a6f: DUP3 00000a70: ADD 00000a71: MSTORE 00000a72: PUSH1 0x2e 00000a74: PUSH1 0x24 00000a76: DUP3 00000a77: ADD 00000a78: MSTORE 00000a79: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00000a9a: PUSH1 0x44 00000a9c: DUP3 00000a9d: ADD 00000a9e: MSTORE 00000a9f: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000 00000ac0: PUSH1 0x64 00000ac2: DUP3 00000ac3: ADD 00000ac4: MSTORE 00000ac5: PUSH1 0x84 00000ac7: ADD 00000ac8: JUMPDEST 00000ac9: PUSH1 0x40 00000acb: MLOAD 00000acc: DUP1 00000acd: SWAP2 00000ace: SUB 00000acf: SWAP1 00000ad0: REVERT 00000ad1: JUMPDEST 00000ad2: PUSH1 0x00 00000ad4: DUP1 00000ad5: SLOAD 00000ad6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 00000af7: AND 00000af8: PUSH1 0xff 00000afa: DUP4 00000afb: AND 00000afc: OR 00000afd: PUSH2 0x0100 00000b00: OR 00000b01: SWAP1 00000b02: SSTORE 00000b03: PUSH2 0x0b0b 00000b06: DUP3 00000b07: PUSH2 0x19ff 00000b0a: JUMP 00000b0b: JUMPDEST 00000b0c: PUSH1 0x00 00000b0e: DUP1 00000b0f: SLOAD 00000b10: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 00000b31: AND 00000b32: SWAP1 00000b33: SSTORE 00000b34: PUSH1 0x40 00000b36: MLOAD 00000b37: PUSH1 0xff 00000b39: DUP3 00000b3a: AND 00000b3b: DUP2 00000b3c: MSTORE 00000b3d: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498 00000b5e: SWAP1 00000b5f: PUSH1 0x20 00000b61: ADD 00000b62: JUMPDEST 00000b63: PUSH1 0x40 00000b65: MLOAD 00000b66: DUP1 00000b67: SWAP2 00000b68: SUB 00000b69: SWAP1 00000b6a: LOG1 00000b6b: POP 00000b6c: POP 00000b6d: JUMP 00000b6e: JUMPDEST 00000b6f: PUSH1 0x00 00000b71: DUP3 00000b72: DUP2 00000b73: MSTORE 00000b74: PUSH1 0x97 00000b76: PUSH1 0x20 00000b78: MSTORE 00000b79: PUSH1 0x40 00000b7b: SWAP1 00000b7c: KECCAK256 00000b7d: PUSH1 0x01 00000b7f: ADD 00000b80: SLOAD 00000b81: PUSH2 0x0b89 00000b84: DUP2 00000b85: PUSH2 0x181a 00000b88: JUMP 00000b89: JUMPDEST 00000b8a: PUSH2 0x0a33 00000b8d: DUP4 00000b8e: DUP4 00000b8f: PUSH2 0x1a5d 00000b92: JUMP 00000b93: JUMPDEST 00000b94: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ba9: DUP2 00000baa: AND 00000bab: CALLER 00000bac: EQ 00000bad: PUSH2 0x0c1e 00000bb0: JUMPI 00000bb1: PUSH1 0x40 00000bb3: MLOAD 00000bb4: PUSH3 0x461bcd 00000bb8: PUSH1 0xe5 00000bba: SHL 00000bbb: DUP2 00000bbc: MSTORE 00000bbd: PUSH1 0x20 00000bbf: PUSH1 0x04 00000bc1: DUP3 00000bc2: ADD 00000bc3: MSTORE 00000bc4: PUSH1 0x2f 00000bc6: PUSH1 0x24 00000bc8: DUP3 00000bc9: ADD 00000bca: MSTORE 00000bcb: PUSH32 0x416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e6365 00000bec: PUSH1 0x44 00000bee: DUP3 00000bef: ADD 00000bf0: MSTORE 00000bf1: PUSH32 0x20726f6c657320666f722073656c660000000000000000000000000000000000 00000c12: PUSH1 0x64 00000c14: DUP3 00000c15: ADD 00000c16: MSTORE 00000c17: PUSH1 0x84 00000c19: ADD 00000c1a: PUSH2 0x0ac8 00000c1d: JUMP 00000c1e: JUMPDEST 00000c1f: PUSH2 0x0c28 00000c22: DUP3 00000c23: DUP3 00000c24: PUSH2 0x1b33 00000c27: JUMP 00000c28: JUMPDEST 00000c29: POP 00000c2a: POP 00000c2b: JUMP 00000c2c: JUMPDEST 00000c2d: ADDRESS 00000c2e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c43: PUSH32 0x0000000000000000000000002c4df10a82cf077122ed99573aca6dacd76f2e67 00000c64: AND 00000c65: EQ 00000c66: ISZERO 00000c67: PUSH2 0x0cd8 00000c6a: JUMPI 00000c6b: PUSH1 0x40 00000c6d: MLOAD 00000c6e: PUSH3 0x461bcd 00000c72: PUSH1 0xe5 00000c74: SHL 00000c75: DUP2 00000c76: MSTORE 00000c77: PUSH1 0x20 00000c79: PUSH1 0x04 00000c7b: DUP3 00000c7c: ADD 00000c7d: MSTORE 00000c7e: PUSH1 0x2c 00000c80: PUSH1 0x24 00000c82: DUP3 00000c83: ADD 00000c84: MSTORE 00000c85: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 00000ca6: PUSH1 0x44 00000ca8: DUP3 00000ca9: ADD 00000caa: MSTORE 00000cab: PUSH32 0x64656c656761746563616c6c0000000000000000000000000000000000000000 00000ccc: PUSH1 0x64 00000cce: DUP3 00000ccf: ADD 00000cd0: MSTORE 00000cd1: PUSH1 0x84 00000cd3: ADD 00000cd4: PUSH2 0x0ac8 00000cd7: JUMP 00000cd8: JUMPDEST 00000cd9: PUSH32 0x0000000000000000000000002c4df10a82cf077122ed99573aca6dacd76f2e67 00000cfa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d0f: AND 00000d10: PUSH2 0x0d4d 00000d13: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 00000d34: SLOAD 00000d35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d4a: AND 00000d4b: SWAP1 00000d4c: JUMP 00000d4d: JUMPDEST 00000d4e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d63: AND 00000d64: EQ 00000d65: PUSH2 0x0dd6 00000d68: JUMPI 00000d69: PUSH1 0x40 00000d6b: MLOAD 00000d6c: PUSH3 0x461bcd 00000d70: PUSH1 0xe5 00000d72: SHL 00000d73: DUP2 00000d74: MSTORE 00000d75: PUSH1 0x20 00000d77: PUSH1 0x04 00000d79: DUP3 00000d7a: ADD 00000d7b: MSTORE 00000d7c: PUSH1 0x2c 00000d7e: PUSH1 0x24 00000d80: DUP3 00000d81: ADD 00000d82: MSTORE 00000d83: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 00000da4: PUSH1 0x44 00000da6: DUP3 00000da7: ADD 00000da8: MSTORE 00000da9: PUSH32 0x6163746976652070726f78790000000000000000000000000000000000000000 00000dca: PUSH1 0x64 00000dcc: DUP3 00000dcd: ADD 00000dce: MSTORE 00000dcf: PUSH1 0x84 00000dd1: ADD 00000dd2: PUSH2 0x0ac8 00000dd5: JUMP 00000dd6: JUMPDEST 00000dd7: PUSH2 0x0ddf 00000dda: DUP2 00000ddb: PUSH2 0x1bd0 00000dde: JUMP 00000ddf: JUMPDEST 00000de0: PUSH1 0x40 00000de2: DUP1 00000de3: MLOAD 00000de4: PUSH1 0x00 00000de6: DUP1 00000de7: DUP3 00000de8: MSTORE 00000de9: PUSH1 0x20 00000deb: DUP3 00000dec: ADD 00000ded: SWAP1 00000dee: SWAP3 00000def: MSTORE 00000df0: PUSH2 0x0dfb 00000df3: SWAP2 00000df4: DUP4 00000df5: SWAP2 00000df6: SWAP1 00000df7: PUSH2 0x1bdb 00000dfa: JUMP 00000dfb: JUMPDEST 00000dfc: POP 00000dfd: JUMP 00000dfe: JUMPDEST 00000dff: PUSH2 0x0e06 00000e02: PUSH2 0x1824 00000e05: JUMP 00000e06: JUMPDEST 00000e07: PUSH2 0x01c6 00000e0a: SLOAD 00000e0b: PUSH1 0xff 00000e0d: AND 00000e0e: ISZERO 00000e0f: PUSH2 0x0e44 00000e12: JUMPI 00000e13: PUSH1 0x40 00000e15: MLOAD 00000e16: PUSH32 0x6022a9e700000000000000000000000000000000000000000000000000000000 00000e37: DUP2 00000e38: MSTORE 00000e39: PUSH1 0x04 00000e3b: ADD 00000e3c: PUSH1 0x40 00000e3e: MLOAD 00000e3f: DUP1 00000e40: SWAP2 00000e41: SUB 00000e42: SWAP1 00000e43: REVERT 00000e44: JUMPDEST 00000e45: PUSH2 0x0160 00000e48: SLOAD 00000e49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e5e: AND 00000e5f: PUSH4 0xc8902398 00000e64: PUSH2 0x0e7a 00000e67: PUSH2 0x0e75 00000e6a: CALLDATASIZE 00000e6b: DUP9 00000e6c: SWAP1 00000e6d: SUB 00000e6e: DUP9 00000e6f: ADD 00000e70: DUP9 00000e71: PUSH2 0x357d 00000e74: JUMP 00000e75: JUMPDEST 00000e76: PUSH2 0x1d97 00000e79: JUMP 00000e7a: JUMPDEST 00000e7b: PUSH2 0x0e8a 00000e7e: PUSH1 0x40 00000e80: DUP9 00000e81: ADD 00000e82: PUSH1 0x20 00000e84: DUP10 00000e85: ADD 00000e86: PUSH2 0x35ef 00000e89: JUMP 00000e8a: JUMPDEST 00000e8b: PUSH1 0x40 00000e8d: MLOAD 00000e8e: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000eaf: PUSH1 0xe0 00000eb1: DUP6 00000eb2: SWAP1 00000eb3: SHL 00000eb4: AND 00000eb5: DUP2 00000eb6: MSTORE 00000eb7: PUSH1 0x04 00000eb9: DUP2 00000eba: ADD 00000ebb: SWAP3 00000ebc: SWAP1 00000ebd: SWAP3 00000ebe: MSTORE 00000ebf: PUSH4 0xffffffff 00000ec4: AND 00000ec5: PUSH1 0x24 00000ec7: DUP3 00000ec8: ADD 00000ec9: MSTORE 00000eca: PUSH1 0x44 00000ecc: ADD 00000ecd: PUSH1 0x20 00000ecf: PUSH1 0x40 00000ed1: MLOAD 00000ed2: DUP1 00000ed3: DUP4 00000ed4: SUB 00000ed5: DUP2 00000ed6: DUP7 00000ed7: DUP1 00000ed8: EXTCODESIZE 00000ed9: ISZERO 00000eda: DUP1 00000edb: ISZERO 00000edc: PUSH2 0x0ee4 00000edf: JUMPI 00000ee0: PUSH1 0x00 00000ee2: DUP1 00000ee3: REVERT 00000ee4: JUMPDEST 00000ee5: POP 00000ee6: GAS 00000ee7: STATICCALL 00000ee8: ISZERO 00000ee9: DUP1 00000eea: ISZERO 00000eeb: PUSH2 0x0ef8 00000eee: JUMPI 00000eef: RETURNDATASIZE 00000ef0: PUSH1 0x00 00000ef2: DUP1 00000ef3: RETURNDATACOPY 00000ef4: RETURNDATASIZE 00000ef5: PUSH1 0x00 00000ef7: REVERT 00000ef8: JUMPDEST 00000ef9: POP 00000efa: POP 00000efb: POP 00000efc: POP 00000efd: PUSH1 0x40 00000eff: MLOAD 00000f00: RETURNDATASIZE 00000f01: PUSH1 0x1f 00000f03: NOT 00000f04: PUSH1 0x1f 00000f06: DUP3 00000f07: ADD 00000f08: AND 00000f09: DUP3 00000f0a: ADD 00000f0b: DUP1 00000f0c: PUSH1 0x40 00000f0e: MSTORE 00000f0f: POP 00000f10: DUP2 00000f11: ADD 00000f12: SWAP1 00000f13: PUSH2 0x0f1c 00000f16: SWAP2 00000f17: SWAP1 00000f18: PUSH2 0x360a 00000f1b: JUMP 00000f1c: JUMPDEST 00000f1d: PUSH2 0x0f52 00000f20: JUMPI 00000f21: PUSH1 0x40 00000f23: MLOAD 00000f24: PUSH32 0x53f2b04900000000000000000000000000000000000000000000000000000000 00000f45: DUP2 00000f46: MSTORE 00000f47: PUSH1 0x04 00000f49: ADD 00000f4a: PUSH1 0x40 00000f4c: MLOAD 00000f4d: DUP1 00000f4e: SWAP2 00000f4f: SUB 00000f50: SWAP1 00000f51: REVERT 00000f52: JUMPDEST 00000f53: PUSH2 0x0fed 00000f56: DUP5 00000f57: CALLDATALOAD 00000f58: PUSH2 0x0f6e 00000f5b: PUSH2 0x0f69 00000f5e: CALLDATASIZE 00000f5f: DUP8 00000f60: SWAP1 00000f61: SUB 00000f62: DUP8 00000f63: ADD 00000f64: DUP8 00000f65: PUSH2 0x3639 00000f68: JUMP 00000f69: JUMPDEST 00000f6a: PUSH2 0x1daa 00000f6d: JUMP 00000f6e: JUMPDEST 00000f6f: PUSH1 0x40 00000f71: MLOAD 00000f72: PUSH1 0x20 00000f74: ADD 00000f75: PUSH2 0x0f80 00000f78: SWAP2 00000f79: DUP2 00000f7a: MSTORE 00000f7b: PUSH1 0x20 00000f7d: ADD 00000f7e: SWAP1 00000f7f: JUMP 00000f80: JUMPDEST 00000f81: PUSH1 0x40 00000f83: DUP1 00000f84: MLOAD 00000f85: PUSH1 0x1f 00000f87: NOT 00000f88: DUP2 00000f89: DUP5 00000f8a: SUB 00000f8b: ADD 00000f8c: DUP2 00000f8d: MSTORE 00000f8e: SWAP2 00000f8f: SWAP1 00000f90: MSTORE 00000f91: PUSH2 0x0f9d 00000f94: PUSH1 0x20 00000f96: DUP7 00000f97: ADD 00000f98: DUP7 00000f99: PUSH2 0x36f7 00000f9c: JUMP 00000f9d: JUMPDEST 00000f9e: DUP1 00000f9f: DUP1 00000fa0: PUSH1 0x20 00000fa2: MUL 00000fa3: PUSH1 0x20 00000fa5: ADD 00000fa6: PUSH1 0x40 00000fa8: MLOAD 00000fa9: SWAP1 00000faa: DUP2 00000fab: ADD 00000fac: PUSH1 0x40 00000fae: MSTORE 00000faf: DUP1 00000fb0: SWAP4 00000fb1: SWAP3 00000fb2: SWAP2 00000fb3: SWAP1 00000fb4: DUP2 00000fb5: DUP2 00000fb6: MSTORE 00000fb7: PUSH1 0x20 00000fb9: ADD 00000fba: DUP4 00000fbb: DUP4 00000fbc: PUSH1 0x20 00000fbe: MUL 00000fbf: DUP1 00000fc0: DUP3 00000fc1: DUP5 00000fc2: CALLDATACOPY 00000fc3: PUSH1 0x00 00000fc5: SWAP3 00000fc6: ADD 00000fc7: SWAP2 00000fc8: SWAP1 00000fc9: SWAP2 00000fca: MSTORE 00000fcb: POP 00000fcc: POP 00000fcd: DUP8 00000fce: CALLDATALOAD 00000fcf: SWAP2 00000fd0: POP 00000fd1: PUSH2 0x0fe2 00000fd4: SWAP1 00000fd5: POP 00000fd6: PUSH1 0x40 00000fd8: DUP11 00000fd9: ADD 00000fda: PUSH1 0x20 00000fdc: DUP12 00000fdd: ADD 00000fde: PUSH2 0x35ef 00000fe1: JUMP 00000fe2: JUMPDEST 00000fe3: PUSH4 0xffffffff 00000fe8: AND 00000fe9: PUSH2 0x1db8 00000fec: JUMP 00000fed: JUMPDEST 00000fee: PUSH2 0x1023 00000ff1: JUMPI 00000ff2: PUSH1 0x40 00000ff4: MLOAD 00000ff5: PUSH32 0x63ca294c00000000000000000000000000000000000000000000000000000000 00001016: DUP2 00001017: MSTORE 00001018: PUSH1 0x04 0000101a: ADD 0000101b: PUSH1 0x40 0000101d: MLOAD 0000101e: DUP1 0000101f: SWAP2 00001020: SUB 00001021: SWAP1 00001022: REVERT 00001023: JUMPDEST 00001024: PUSH1 0x00 00001026: PUSH2 0x107a 00001029: DUP7 0000102a: CALLDATALOAD 0000102b: PUSH1 0x20 0000102d: DUP9 0000102e: ADD 0000102f: CALLDATALOAD 00001030: PUSH1 0x40 00001032: DUP10 00001033: ADD 00001034: CALLDATALOAD 00001035: PUSH2 0x1044 00001038: PUSH1 0x80 0000103a: DUP12 0000103b: ADD 0000103c: PUSH1 0x60 0000103e: DUP13 0000103f: ADD 00001040: PUSH2 0x3766 00001043: JUMP 00001044: JUMPDEST 00001045: PUSH2 0x1051 00001048: PUSH1 0x80 0000104a: DUP13 0000104b: ADD 0000104c: DUP13 0000104d: PUSH2 0x3781 00001050: JUMP 00001051: JUMPDEST 00001052: PUSH1 0x40 00001054: MLOAD 00001055: PUSH1 0x20 00001057: ADD 00001058: PUSH2 0x1066 0000105b: SWAP7 0000105c: SWAP6 0000105d: SWAP5 0000105e: SWAP4 0000105f: SWAP3 00001060: SWAP2 00001061: SWAP1 00001062: PUSH2 0x37e6 00001065: JUMP 00001066: JUMPDEST 00001067: PUSH1 0x40 00001069: MLOAD 0000106a: PUSH1 0x20 0000106c: DUP2 0000106d: DUP4 0000106e: SUB 0000106f: SUB 00001070: DUP2 00001071: MSTORE 00001072: SWAP1 00001073: PUSH1 0x40 00001075: MSTORE 00001076: PUSH2 0x1ddb 00001079: JUMP 0000107a: JUMPDEST 0000107b: PUSH1 0x00 0000107d: DUP2 0000107e: DUP2 0000107f: MSTORE 00001080: PUSH2 0x01c7 00001083: PUSH1 0x20 00001085: MSTORE 00001086: PUSH1 0x40 00001088: SWAP1 00001089: KECCAK256 0000108a: SLOAD 0000108b: SWAP1 0000108c: SWAP2 0000108d: POP 0000108e: PUSH1 0xff 00001090: AND 00001091: ISZERO 00001092: PUSH2 0x10c7 00001095: JUMPI 00001096: PUSH1 0x40 00001098: MLOAD 00001099: PUSH32 0x2ed07c6b00000000000000000000000000000000000000000000000000000000 000010ba: DUP2 000010bb: MSTORE 000010bc: PUSH1 0x04 000010be: ADD 000010bf: PUSH1 0x40 000010c1: MLOAD 000010c2: DUP1 000010c3: SWAP2 000010c4: SUB 000010c5: SWAP1 000010c6: REVERT 000010c7: JUMPDEST 000010c8: PUSH2 0x1145 000010cb: DUP5 000010cc: PUSH2 0x0100 000010cf: ADD 000010d0: CALLDATALOAD 000010d1: DUP3 000010d2: PUSH1 0x40 000010d4: MLOAD 000010d5: PUSH1 0x20 000010d7: ADD 000010d8: PUSH2 0x10e3 000010db: SWAP2 000010dc: DUP2 000010dd: MSTORE 000010de: PUSH1 0x20 000010e0: ADD 000010e1: SWAP1 000010e2: JUMP 000010e3: JUMPDEST 000010e4: PUSH1 0x40 000010e6: DUP1 000010e7: MLOAD 000010e8: PUSH1 0x1f 000010ea: NOT 000010eb: DUP2 000010ec: DUP5 000010ed: SUB 000010ee: ADD 000010ef: DUP2 000010f0: MSTORE 000010f1: SWAP2 000010f2: SWAP1 000010f3: MSTORE 000010f4: PUSH2 0x1100 000010f7: PUSH1 0x20 000010f9: DUP7 000010fa: ADD 000010fb: DUP7 000010fc: PUSH2 0x36f7 000010ff: JUMP 00001100: JUMPDEST 00001101: DUP1 00001102: DUP1 00001103: PUSH1 0x20 00001105: MUL 00001106: PUSH1 0x20 00001108: ADD 00001109: PUSH1 0x40 0000110b: MLOAD 0000110c: SWAP1 0000110d: DUP2 0000110e: ADD 0000110f: PUSH1 0x40 00001111: MSTORE 00001112: DUP1 00001113: SWAP4 00001114: SWAP3 00001115: SWAP2 00001116: SWAP1 00001117: DUP2 00001118: DUP2 00001119: MSTORE 0000111a: PUSH1 0x20 0000111c: ADD 0000111d: DUP4 0000111e: DUP4 0000111f: PUSH1 0x20 00001121: MUL 00001122: DUP1 00001123: DUP3 00001124: DUP5 00001125: CALLDATACOPY 00001126: PUSH1 0x00 00001128: SWAP3 00001129: ADD 0000112a: SWAP2 0000112b: SWAP1 0000112c: SWAP2 0000112d: MSTORE 0000112e: POP 0000112f: POP 00001130: DUP8 00001131: CALLDATALOAD 00001132: SWAP2 00001133: POP 00001134: PUSH2 0x0fe2 00001137: SWAP1 00001138: POP 00001139: PUSH1 0x80 0000113b: DUP11 0000113c: ADD 0000113d: PUSH1 0x60 0000113f: DUP12 00001140: ADD 00001141: PUSH2 0x35ef 00001144: JUMP 00001145: JUMPDEST 00001146: PUSH2 0x117b 00001149: JUMPI 0000114a: PUSH1 0x40 0000114c: MLOAD 0000114d: PUSH32 0x89df36b000000000000000000000000000000000000000000000000000000000 0000116e: DUP2 0000116f: MSTORE 00001170: PUSH1 0x04 00001172: ADD 00001173: PUSH1 0x40 00001175: MLOAD 00001176: DUP1 00001177: SWAP2 00001178: SUB 00001179: SWAP1 0000117a: REVERT 0000117b: JUMPDEST 0000117c: PUSH2 0x1185 0000117f: DUP2 00001180: DUP8 00001181: PUSH2 0x1e2d 00001184: JUMP 00001185: JUMPDEST 00001186: POP 00001187: POP 00001188: POP 00001189: POP 0000118a: POP 0000118b: POP 0000118c: JUMP 0000118d: JUMPDEST 0000118e: PUSH1 0x00 00001190: PUSH2 0x1198 00001193: DUP2 00001194: PUSH2 0x181a 00001197: JUMP 00001198: JUMPDEST 00001199: PUSH2 0x0dfb 0000119c: PUSH2 0x20e4 0000119f: JUMP 000011a0: JUMPDEST 000011a1: ADDRESS 000011a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011b7: PUSH32 0x0000000000000000000000002c4df10a82cf077122ed99573aca6dacd76f2e67 000011d8: AND 000011d9: EQ 000011da: ISZERO 000011db: PUSH2 0x124c 000011de: JUMPI 000011df: PUSH1 0x40 000011e1: MLOAD 000011e2: PUSH3 0x461bcd 000011e6: PUSH1 0xe5 000011e8: SHL 000011e9: DUP2 000011ea: MSTORE 000011eb: PUSH1 0x20 000011ed: PUSH1 0x04 000011ef: DUP3 000011f0: ADD 000011f1: MSTORE 000011f2: PUSH1 0x2c 000011f4: PUSH1 0x24 000011f6: DUP3 000011f7: ADD 000011f8: MSTORE 000011f9: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 0000121a: PUSH1 0x44 0000121c: DUP3 0000121d: ADD 0000121e: MSTORE 0000121f: PUSH32 0x64656c656761746563616c6c0000000000000000000000000000000000000000 00001240: PUSH1 0x64 00001242: DUP3 00001243: ADD 00001244: MSTORE 00001245: PUSH1 0x84 00001247: ADD 00001248: PUSH2 0x0ac8 0000124b: JUMP 0000124c: JUMPDEST 0000124d: PUSH32 0x0000000000000000000000002c4df10a82cf077122ed99573aca6dacd76f2e67 0000126e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001283: AND 00001284: PUSH2 0x12c1 00001287: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 000012a8: SLOAD 000012a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012be: AND 000012bf: SWAP1 000012c0: JUMP 000012c1: JUMPDEST 000012c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012d7: AND 000012d8: EQ 000012d9: PUSH2 0x134a 000012dc: JUMPI 000012dd: PUSH1 0x40 000012df: MLOAD 000012e0: PUSH3 0x461bcd 000012e4: PUSH1 0xe5 000012e6: SHL 000012e7: DUP2 000012e8: MSTORE 000012e9: PUSH1 0x20 000012eb: PUSH1 0x04 000012ed: DUP3 000012ee: ADD 000012ef: MSTORE 000012f0: PUSH1 0x2c 000012f2: PUSH1 0x24 000012f4: DUP3 000012f5: ADD 000012f6: MSTORE 000012f7: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 00001318: PUSH1 0x44 0000131a: DUP3 0000131b: ADD 0000131c: MSTORE 0000131d: PUSH32 0x6163746976652070726f78790000000000000000000000000000000000000000 0000133e: PUSH1 0x64 00001340: DUP3 00001341: ADD 00001342: MSTORE 00001343: PUSH1 0x84 00001345: ADD 00001346: PUSH2 0x0ac8 00001349: JUMP 0000134a: JUMPDEST 0000134b: PUSH2 0x1353 0000134e: DUP3 0000134f: PUSH2 0x1bd0 00001352: JUMP 00001353: JUMPDEST 00001354: PUSH2 0x0c28 00001357: DUP3 00001358: DUP3 00001359: PUSH1 0x01 0000135b: PUSH2 0x1bdb 0000135e: JUMP 0000135f: JUMPDEST 00001360: PUSH1 0x00 00001362: ADDRESS 00001363: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001378: PUSH32 0x0000000000000000000000002c4df10a82cf077122ed99573aca6dacd76f2e67 00001399: AND 0000139a: EQ 0000139b: PUSH2 0x140c 0000139e: JUMPI 0000139f: PUSH1 0x40 000013a1: MLOAD 000013a2: PUSH3 0x461bcd 000013a6: PUSH1 0xe5 000013a8: SHL 000013a9: DUP2 000013aa: MSTORE 000013ab: PUSH1 0x20 000013ad: PUSH1 0x04 000013af: DUP3 000013b0: ADD 000013b1: MSTORE 000013b2: PUSH1 0x38 000013b4: PUSH1 0x24 000013b6: DUP3 000013b7: ADD 000013b8: MSTORE 000013b9: PUSH32 0x555550535570677261646561626c653a206d757374206e6f742062652063616c 000013da: PUSH1 0x44 000013dc: DUP3 000013dd: ADD 000013de: MSTORE 000013df: PUSH32 0x6c6564207468726f7567682064656c656761746563616c6c0000000000000000 00001400: PUSH1 0x64 00001402: DUP3 00001403: ADD 00001404: MSTORE 00001405: PUSH1 0x84 00001407: ADD 00001408: PUSH2 0x0ac8 0000140b: JUMP 0000140c: JUMPDEST 0000140d: POP 0000140e: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 0000142f: SWAP1 00001430: JUMP 00001431: JUMPDEST 00001432: PUSH32 0x7e5b1c957d4df4bad29cdaceffe50f28f282a0d5096601b958917550d4b2e016 00001453: PUSH2 0x145b 00001456: DUP2 00001457: PUSH2 0x181a 0000145a: JUMP 0000145b: JUMPDEST 0000145c: TIMESTAMP 0000145d: PUSH2 0x01c9 00001460: SLOAD 00001461: LT 00001462: ISZERO 00001463: PUSH2 0x1494 00001466: JUMPI 00001467: TIMESTAMP 00001468: PUSH32 0x0000000000000000000000000000000000000000000000000000000000093a80 00001489: ADD 0000148a: PUSH2 0x01c9 0000148d: SSTORE 0000148e: PUSH1 0x00 00001490: PUSH2 0x01c8 00001493: SSTORE 00001494: JUMPDEST 00001495: PUSH2 0x01ca 00001498: DUP3 00001499: SWAP1 0000149a: SSTORE 0000149b: PUSH1 0x40 0000149d: MLOAD 0000149e: DUP3 0000149f: DUP2 000014a0: MSTORE 000014a1: PUSH32 0x53d83924cffa510ecaf1520ed9de204b6a2b1314d7dc3b20d8a970623841db8c 000014c2: SWAP1 000014c3: PUSH1 0x20 000014c5: ADD 000014c6: PUSH2 0x0b62 000014c9: JUMP 000014ca: JUMPDEST 000014cb: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a 000014ec: PUSH2 0x14f4 000014ef: DUP2 000014f0: PUSH2 0x181a 000014f3: JUMP 000014f4: JUMPDEST 000014f5: POP 000014f6: PUSH2 0x01c6 000014f9: DUP1 000014fa: SLOAD 000014fb: PUSH1 0xff 000014fd: NOT 000014fe: AND 000014ff: PUSH1 0x01 00001501: OR 00001502: SWAP1 00001503: SSTORE 00001504: JUMP 00001505: JUMPDEST 00001506: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a 00001527: PUSH2 0x152f 0000152a: DUP2 0000152b: PUSH2 0x181a 0000152e: JUMP 0000152f: JUMPDEST 00001530: PUSH2 0x0dfb 00001533: PUSH2 0x2143 00001536: JUMP 00001537: JUMPDEST 00001538: PUSH2 0x1543 0000153b: PUSH1 0x09 0000153d: PUSH1 0x12 0000153f: PUSH2 0x3869 00001542: JUMP 00001543: JUMPDEST 00001544: PUSH2 0x154e 00001547: SWAP1 00001548: PUSH1 0x0a 0000154a: PUSH2 0x39a0 0000154d: JUMP 0000154e: JUMPDEST 0000154f: DUP2 00001550: JUMP 00001551: JUMPDEST 00001552: PUSH32 0x7e5b1c957d4df4bad29cdaceffe50f28f282a0d5096601b958917550d4b2e016 00001573: PUSH2 0x157b 00001576: DUP2 00001577: PUSH2 0x181a 0000157a: JUMP 0000157b: JUMPDEST 0000157c: PUSH2 0x01cb 0000157f: DUP1 00001580: SLOAD 00001581: PUSH1 0xff 00001583: NOT 00001584: AND 00001585: DUP4 00001586: ISZERO 00001587: ISZERO 00001588: SWAP1 00001589: DUP2 0000158a: OR 0000158b: SWAP1 0000158c: SWAP2 0000158d: SSTORE 0000158e: PUSH1 0x40 00001590: MLOAD 00001591: SWAP1 00001592: DUP2 00001593: MSTORE 00001594: PUSH32 0xc0fd249af978a3c3d72e439fc68d57dced24cd9bca6fcb51b6d9f8db31703caa 000015b5: SWAP1 000015b6: PUSH1 0x20 000015b8: ADD 000015b9: PUSH2 0x0b62 000015bc: JUMP 000015bd: JUMPDEST 000015be: PUSH1 0x00 000015c0: SLOAD 000015c1: PUSH1 0x03 000015c3: SWAP1 000015c4: PUSH2 0x0100 000015c7: SWAP1 000015c8: DIV 000015c9: PUSH1 0xff 000015cb: AND 000015cc: ISZERO 000015cd: DUP1 000015ce: ISZERO 000015cf: PUSH2 0x15df 000015d2: JUMPI 000015d3: POP 000015d4: PUSH1 0x00 000015d6: SLOAD 000015d7: PUSH1 0xff 000015d9: DUP1 000015da: DUP4 000015db: AND 000015dc: SWAP2 000015dd: AND 000015de: LT 000015df: JUMPDEST 000015e0: PUSH2 0x1651 000015e3: JUMPI 000015e4: PUSH1 0x40 000015e6: MLOAD 000015e7: PUSH3 0x461bcd 000015eb: PUSH1 0xe5 000015ed: SHL 000015ee: DUP2 000015ef: MSTORE 000015f0: PUSH1 0x20 000015f2: PUSH1 0x04 000015f4: DUP3 000015f5: ADD 000015f6: MSTORE 000015f7: PUSH1 0x2e 000015f9: PUSH1 0x24 000015fb: DUP3 000015fc: ADD 000015fd: MSTORE 000015fe: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 0000161f: PUSH1 0x44 00001621: DUP3 00001622: ADD 00001623: MSTORE 00001624: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000 00001645: PUSH1 0x64 00001647: DUP3 00001648: ADD 00001649: MSTORE 0000164a: PUSH1 0x84 0000164c: ADD 0000164d: PUSH2 0x0ac8 00001650: JUMP 00001651: JUMPDEST 00001652: PUSH1 0x00 00001654: DUP1 00001655: SLOAD 00001656: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 00001677: AND 00001678: PUSH1 0xff 0000167a: DUP4 0000167b: AND 0000167c: OR 0000167d: PUSH2 0x0100 00001680: OR 00001681: SWAP1 00001682: SSTORE 00001683: PUSH2 0x168b 00001686: DUP4 00001687: PUSH2 0x2180 0000168a: JUMP 0000168b: JUMPDEST 0000168c: PUSH2 0x1694 0000168f: DUP3 00001690: PUSH2 0x19ff 00001693: JUMP 00001694: JUMPDEST 00001695: PUSH1 0x00 00001697: DUP1 00001698: SLOAD 00001699: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 000016ba: AND 000016bb: SWAP1 000016bc: SSTORE 000016bd: PUSH1 0x40 000016bf: MLOAD 000016c0: PUSH1 0xff 000016c2: DUP3 000016c3: AND 000016c4: DUP2 000016c5: MSTORE 000016c6: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498 000016e7: SWAP1 000016e8: PUSH1 0x20 000016ea: ADD 000016eb: PUSH1 0x40 000016ed: MLOAD 000016ee: DUP1 000016ef: SWAP2 000016f0: SUB 000016f1: SWAP1 000016f2: LOG1 000016f3: POP 000016f4: POP 000016f5: POP 000016f6: JUMP 000016f7: JUMPDEST 000016f8: PUSH1 0x40 000016fa: MLOAD 000016fb: PUSH32 0xa038794000000000000000000000000000000000000000000000000000000000 0000171c: DUP2 0000171d: MSTORE 0000171e: PUSH1 0x04 00001720: ADD 00001721: PUSH1 0x40 00001723: MLOAD 00001724: DUP1 00001725: SWAP2 00001726: SUB 00001727: SWAP1 00001728: REVERT 00001729: JUMPDEST 0000172a: PUSH1 0x00 0000172c: DUP3 0000172d: DUP2 0000172e: MSTORE 0000172f: PUSH1 0x97 00001731: PUSH1 0x20 00001733: MSTORE 00001734: PUSH1 0x40 00001736: SWAP1 00001737: KECCAK256 00001738: PUSH1 0x01 0000173a: ADD 0000173b: SLOAD 0000173c: PUSH2 0x1744 0000173f: DUP2 00001740: PUSH2 0x181a 00001743: JUMP 00001744: JUMPDEST 00001745: PUSH2 0x0a33 00001748: DUP4 00001749: DUP4 0000174a: PUSH2 0x1b33 0000174d: JUMP 0000174e: JUMPDEST 0000174f: PUSH2 0x015f 00001752: SLOAD 00001753: PUSH1 0x00 00001755: SWAP1 00001756: PUSH2 0xdead 00001759: EQ 0000175a: ISZERO 0000175b: PUSH2 0x1790 0000175e: JUMPI 0000175f: PUSH1 0x40 00001761: MLOAD 00001762: PUSH32 0xa192800600000000000000000000000000000000000000000000000000000000 00001783: DUP2 00001784: MSTORE 00001785: PUSH1 0x04 00001787: ADD 00001788: PUSH1 0x40 0000178a: MLOAD 0000178b: DUP1 0000178c: SWAP2 0000178d: SUB 0000178e: SWAP1 0000178f: REVERT 00001790: JUMPDEST 00001791: POP 00001792: PUSH2 0x015f 00001795: SLOAD 00001796: SWAP1 00001797: JUMP 00001798: JUMPDEST 00001799: PUSH2 0x17a0 0000179c: PUSH2 0x1824 0000179f: JUMP 000017a0: JUMPDEST 000017a1: PUSH1 0x40 000017a3: DUP1 000017a4: MLOAD 000017a5: PUSH1 0x00 000017a7: DUP2 000017a8: MSTORE 000017a9: PUSH1 0x20 000017ab: DUP2 000017ac: ADD 000017ad: SWAP1 000017ae: SWAP2 000017af: MSTORE 000017b0: PUSH2 0x0dfb 000017b3: SWAP1 000017b4: DUP3 000017b5: SWAP1 000017b6: PUSH2 0x1879 000017b9: JUMP 000017ba: JUMPDEST 000017bb: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a 000017dc: PUSH2 0x17e4 000017df: DUP2 000017e0: PUSH2 0x181a 000017e3: JUMP 000017e4: JUMPDEST 000017e5: POP 000017e6: PUSH1 0x00 000017e8: SWAP1 000017e9: DUP2 000017ea: MSTORE 000017eb: PUSH2 0x01c7 000017ee: PUSH1 0x20 000017f0: MSTORE 000017f1: PUSH1 0x40 000017f3: SWAP1 000017f4: KECCAK256 000017f5: DUP1 000017f6: SLOAD 000017f7: PUSH1 0xff 000017f9: NOT 000017fa: AND 000017fb: PUSH1 0x01 000017fd: OR 000017fe: SWAP1 000017ff: SSTORE 00001800: JUMP 00001801: JUMPDEST 00001802: PUSH1 0x00 00001804: PUSH2 0x180c 00001807: DUP2 00001808: PUSH2 0x181a 0000180b: JUMP 0000180c: JUMPDEST 0000180d: POP 0000180e: PUSH2 0x01c6 00001811: DUP1 00001812: SLOAD 00001813: PUSH1 0xff 00001815: NOT 00001816: AND 00001817: SWAP1 00001818: SSTORE 00001819: JUMP 0000181a: JUMPDEST 0000181b: PUSH2 0x0dfb 0000181e: DUP2 0000181f: CALLER 00001820: PUSH2 0x22a7 00001823: JUMP 00001824: JUMPDEST 00001825: PUSH1 0x33 00001827: SLOAD 00001828: PUSH1 0xff 0000182a: AND 0000182b: ISZERO 0000182c: PUSH2 0x1877 0000182f: JUMPI 00001830: PUSH1 0x40 00001832: MLOAD 00001833: PUSH3 0x461bcd 00001837: PUSH1 0xe5 00001839: SHL 0000183a: DUP2 0000183b: MSTORE 0000183c: PUSH1 0x20 0000183e: PUSH1 0x04 00001840: DUP3 00001841: ADD 00001842: MSTORE 00001843: PUSH1 0x10 00001845: PUSH1 0x24 00001847: DUP3 00001848: ADD 00001849: MSTORE 0000184a: PUSH32 0x5061757361626c653a2070617573656400000000000000000000000000000000 0000186b: PUSH1 0x44 0000186d: DUP3 0000186e: ADD 0000186f: MSTORE 00001870: PUSH1 0x64 00001872: ADD 00001873: PUSH2 0x0ac8 00001876: JUMP 00001877: JUMPDEST 00001878: JUMP 00001879: JUMPDEST 0000187a: DUP1 0000187b: MLOAD 0000187c: CALLER 0000187d: SWAP1 0000187e: PUSH3 0x010000 00001882: GT 00001883: PUSH2 0x18b8 00001886: JUMPI 00001887: PUSH1 0x40 00001889: MLOAD 0000188a: PUSH32 0xa07dcb5200000000000000000000000000000000000000000000000000000000 000018ab: DUP2 000018ac: MSTORE 000018ad: PUSH1 0x04 000018af: ADD 000018b0: PUSH1 0x40 000018b2: MLOAD 000018b3: DUP1 000018b4: SWAP2 000018b5: SUB 000018b6: SWAP1 000018b7: REVERT 000018b8: JUMPDEST 000018b9: PUSH2 0x0194 000018bc: DUP1 000018bd: SLOAD 000018be: CALLVALUE 000018bf: ADD 000018c0: SWAP1 000018c1: DUP2 000018c2: SWAP1 000018c3: SSTORE 000018c4: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000018e5: DUP2 000018e6: GT 000018e7: ISZERO 000018e8: PUSH2 0x191d 000018eb: JUMPI 000018ec: PUSH1 0x40 000018ee: MLOAD 000018ef: PUSH32 0x22eef62800000000000000000000000000000000000000000000000000000000 00001910: DUP2 00001911: MSTORE 00001912: PUSH1 0x04 00001914: ADD 00001915: PUSH1 0x40 00001917: MLOAD 00001918: DUP1 00001919: SWAP2 0000191a: SUB 0000191b: SWAP1 0000191c: REVERT 0000191d: JUMPDEST 0000191e: PUSH4 0x3b9aca00 00001923: CALLVALUE 00001924: SWAP1 00001925: DUP2 00001926: DIV 00001927: SWAP1 00001928: ISZERO 00001929: PUSH2 0x19ad 0000192c: JUMPI 0000192d: PUSH4 0x3b9aca00 00001932: DUP2 00001933: MUL 00001934: CALLVALUE 00001935: EQ 00001936: PUSH2 0x196b 00001939: JUMPI 0000193a: PUSH1 0x40 0000193c: MLOAD 0000193d: PUSH32 0xd7da5eff00000000000000000000000000000000000000000000000000000000 0000195e: DUP2 0000195f: MSTORE 00001960: PUSH1 0x04 00001962: ADD 00001963: PUSH1 0x40 00001965: MLOAD 00001966: DUP1 00001967: SWAP2 00001968: SUB 00001969: SWAP1 0000196a: REVERT 0000196b: JUMPDEST 0000196c: PUSH8 0xffffffffffffffff 00001975: DUP2 00001976: GT 00001977: ISZERO 00001978: PUSH2 0x19ad 0000197b: JUMPI 0000197c: PUSH1 0x40 0000197e: MLOAD 0000197f: PUSH32 0x6b2f218300000000000000000000000000000000000000000000000000000000 000019a0: DUP2 000019a1: MSTORE 000019a2: PUSH1 0x04 000019a4: ADD 000019a5: PUSH1 0x40 000019a7: MLOAD 000019a8: DUP1 000019a9: SWAP2 000019aa: SUB 000019ab: SWAP1 000019ac: REVERT 000019ad: JUMPDEST 000019ae: PUSH1 0x00 000019b0: PUSH2 0x0161 000019b3: SLOAD 000019b4: SWAP1 000019b5: POP 000019b6: DUP1 000019b7: DUP7 000019b8: DUP6 000019b9: PUSH32 0x2e8c88b204c4fc9f27811757a7ca53a385ca4d1c8a2c6b0aa2bc386646f0ca63 000019da: DUP6 000019db: DUP10 000019dc: PUSH1 0x40 000019de: MLOAD 000019df: PUSH2 0x19e9 000019e2: SWAP3 000019e3: SWAP2 000019e4: SWAP1 000019e5: PUSH2 0x3a04 000019e8: JUMP 000019e9: JUMPDEST 000019ea: PUSH1 0x40 000019ec: MLOAD 000019ed: DUP1 000019ee: SWAP2 000019ef: SUB 000019f0: SWAP1 000019f1: LOG4 000019f2: PUSH1 0x01 000019f4: ADD 000019f5: PUSH2 0x0161 000019f8: SSTORE 000019f9: POP 000019fa: POP 000019fb: POP 000019fc: POP 000019fd: POP 000019fe: JUMP 000019ff: JUMPDEST 00001a00: PUSH2 0x1a29 00001a03: PUSH32 0x7e5b1c957d4df4bad29cdaceffe50f28f282a0d5096601b958917550d4b2e016 00001a24: CALLER 00001a25: PUSH2 0x1a5d 00001a28: JUMP 00001a29: JUMPDEST 00001a2a: PUSH2 0x1a53 00001a2d: PUSH32 0x0000000000000000000000000000000000000000000000000000000000093a80 00001a4e: TIMESTAMP 00001a4f: PUSH2 0x3a27 00001a52: JUMP 00001a53: JUMPDEST 00001a54: PUSH2 0x01c9 00001a57: SSTORE 00001a58: PUSH2 0x01ca 00001a5b: SSTORE 00001a5c: JUMP 00001a5d: JUMPDEST 00001a5e: PUSH1 0x00 00001a60: DUP3 00001a61: DUP2 00001a62: MSTORE 00001a63: PUSH1 0x97 00001a65: PUSH1 0x20 00001a67: SWAP1 00001a68: DUP2 00001a69: MSTORE 00001a6a: PUSH1 0x40 00001a6c: DUP1 00001a6d: DUP4 00001a6e: KECCAK256 00001a6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a84: DUP6 00001a85: AND 00001a86: DUP5 00001a87: MSTORE 00001a88: SWAP1 00001a89: SWAP2 00001a8a: MSTORE 00001a8b: SWAP1 00001a8c: KECCAK256 00001a8d: SLOAD 00001a8e: PUSH1 0xff 00001a90: AND 00001a91: PUSH2 0x0c28 00001a94: JUMPI 00001a95: PUSH1 0x00 00001a97: DUP3 00001a98: DUP2 00001a99: MSTORE 00001a9a: PUSH1 0x97 00001a9c: PUSH1 0x20 00001a9e: SWAP1 00001a9f: DUP2 00001aa0: MSTORE 00001aa1: PUSH1 0x40 00001aa3: DUP1 00001aa4: DUP4 00001aa5: KECCAK256 00001aa6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001abb: DUP6 00001abc: AND 00001abd: DUP5 00001abe: MSTORE 00001abf: SWAP1 00001ac0: SWAP2 00001ac1: MSTORE 00001ac2: SWAP1 00001ac3: KECCAK256 00001ac4: DUP1 00001ac5: SLOAD 00001ac6: PUSH1 0xff 00001ac8: NOT 00001ac9: AND 00001aca: PUSH1 0x01 00001acc: OR 00001acd: SWAP1 00001ace: SSTORE 00001acf: PUSH2 0x1ad5 00001ad2: CALLER 00001ad3: SWAP1 00001ad4: JUMP 00001ad5: JUMPDEST 00001ad6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001aeb: AND 00001aec: DUP2 00001aed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b02: AND 00001b03: DUP4 00001b04: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 00001b25: PUSH1 0x40 00001b27: MLOAD 00001b28: PUSH1 0x40 00001b2a: MLOAD 00001b2b: DUP1 00001b2c: SWAP2 00001b2d: SUB 00001b2e: SWAP1 00001b2f: LOG4 00001b30: POP 00001b31: POP 00001b32: JUMP 00001b33: JUMPDEST 00001b34: PUSH1 0x00 00001b36: DUP3 00001b37: DUP2 00001b38: MSTORE 00001b39: PUSH1 0x97 00001b3b: PUSH1 0x20 00001b3d: SWAP1 00001b3e: DUP2 00001b3f: MSTORE 00001b40: PUSH1 0x40 00001b42: DUP1 00001b43: DUP4 00001b44: KECCAK256 00001b45: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b5a: DUP6 00001b5b: AND 00001b5c: DUP5 00001b5d: MSTORE 00001b5e: SWAP1 00001b5f: SWAP2 00001b60: MSTORE 00001b61: SWAP1 00001b62: KECCAK256 00001b63: SLOAD 00001b64: PUSH1 0xff 00001b66: AND 00001b67: ISZERO 00001b68: PUSH2 0x0c28 00001b6b: JUMPI 00001b6c: PUSH1 0x00 00001b6e: DUP3 00001b6f: DUP2 00001b70: MSTORE 00001b71: PUSH1 0x97 00001b73: PUSH1 0x20 00001b75: SWAP1 00001b76: DUP2 00001b77: MSTORE 00001b78: PUSH1 0x40 00001b7a: DUP1 00001b7b: DUP4 00001b7c: KECCAK256 00001b7d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b92: DUP6 00001b93: AND 00001b94: DUP1 00001b95: DUP6 00001b96: MSTORE 00001b97: SWAP3 00001b98: MSTORE 00001b99: DUP1 00001b9a: DUP4 00001b9b: KECCAK256 00001b9c: DUP1 00001b9d: SLOAD 00001b9e: PUSH1 0xff 00001ba0: NOT 00001ba1: AND 00001ba2: SWAP1 00001ba3: SSTORE 00001ba4: MLOAD 00001ba5: CALLER 00001ba6: SWAP3 00001ba7: DUP6 00001ba8: SWAP2 00001ba9: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b 00001bca: SWAP2 00001bcb: SWAP1 00001bcc: LOG4 00001bcd: POP 00001bce: POP 00001bcf: JUMP 00001bd0: JUMPDEST 00001bd1: PUSH1 0x00 00001bd3: PUSH2 0x0c28 00001bd6: DUP2 00001bd7: PUSH2 0x181a 00001bda: JUMP 00001bdb: JUMPDEST 00001bdc: PUSH32 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143 00001bfd: SLOAD 00001bfe: PUSH1 0xff 00001c00: AND 00001c01: ISZERO 00001c02: PUSH2 0x1c0e 00001c05: JUMPI 00001c06: PUSH2 0x0a33 00001c09: DUP4 00001c0a: PUSH2 0x2329 00001c0d: JUMP 00001c0e: JUMPDEST 00001c0f: DUP3 00001c10: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c25: AND 00001c26: PUSH4 0x52d1902d 00001c2b: PUSH1 0x40 00001c2d: MLOAD 00001c2e: DUP2 00001c2f: PUSH4 0xffffffff 00001c34: AND 00001c35: PUSH1 0xe0 00001c37: SHL 00001c38: DUP2 00001c39: MSTORE 00001c3a: PUSH1 0x04 00001c3c: ADD 00001c3d: PUSH1 0x20 00001c3f: PUSH1 0x40 00001c41: MLOAD 00001c42: DUP1 00001c43: DUP4 00001c44: SUB 00001c45: DUP2 00001c46: DUP7 00001c47: DUP1 00001c48: EXTCODESIZE 00001c49: ISZERO 00001c4a: DUP1 00001c4b: ISZERO 00001c4c: PUSH2 0x1c54 00001c4f: JUMPI 00001c50: PUSH1 0x00 00001c52: DUP1 00001c53: REVERT 00001c54: JUMPDEST 00001c55: POP 00001c56: GAS 00001c57: STATICCALL 00001c58: SWAP3 00001c59: POP 00001c5a: POP 00001c5b: POP 00001c5c: DUP1 00001c5d: ISZERO 00001c5e: PUSH2 0x1c84 00001c61: JUMPI 00001c62: POP 00001c63: PUSH1 0x40 00001c65: DUP1 00001c66: MLOAD 00001c67: PUSH1 0x1f 00001c69: RETURNDATASIZE 00001c6a: SWAP1 00001c6b: DUP2 00001c6c: ADD 00001c6d: PUSH1 0x1f 00001c6f: NOT 00001c70: AND 00001c71: DUP3 00001c72: ADD 00001c73: SWAP1 00001c74: SWAP3 00001c75: MSTORE 00001c76: PUSH2 0x1c81 00001c79: SWAP2 00001c7a: DUP2 00001c7b: ADD 00001c7c: SWAP1 00001c7d: PUSH2 0x3a3f 00001c80: JUMP 00001c81: JUMPDEST 00001c82: PUSH1 0x01 00001c84: JUMPDEST 00001c85: PUSH2 0x1cf6 00001c88: JUMPI 00001c89: PUSH1 0x40 00001c8b: MLOAD 00001c8c: PUSH3 0x461bcd 00001c90: PUSH1 0xe5 00001c92: SHL 00001c93: DUP2 00001c94: MSTORE 00001c95: PUSH1 0x20 00001c97: PUSH1 0x04 00001c99: DUP3 00001c9a: ADD 00001c9b: MSTORE 00001c9c: PUSH1 0x2e 00001c9e: PUSH1 0x24 00001ca0: DUP3 00001ca1: ADD 00001ca2: MSTORE 00001ca3: PUSH32 0x45524331393637557067726164653a206e657720696d706c656d656e74617469 00001cc4: PUSH1 0x44 00001cc6: DUP3 00001cc7: ADD 00001cc8: MSTORE 00001cc9: PUSH32 0x6f6e206973206e6f742055555053000000000000000000000000000000000000 00001cea: PUSH1 0x64 00001cec: DUP3 00001ced: ADD 00001cee: MSTORE 00001cef: PUSH1 0x84 00001cf1: ADD 00001cf2: PUSH2 0x0ac8 00001cf5: JUMP 00001cf6: JUMPDEST 00001cf7: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 00001d18: DUP2 00001d19: EQ 00001d1a: PUSH2 0x1d8b 00001d1d: JUMPI 00001d1e: PUSH1 0x40 00001d20: MLOAD 00001d21: PUSH3 0x461bcd 00001d25: PUSH1 0xe5 00001d27: SHL 00001d28: DUP2 00001d29: MSTORE 00001d2a: PUSH1 0x20 00001d2c: PUSH1 0x04 00001d2e: DUP3 00001d2f: ADD 00001d30: MSTORE 00001d31: PUSH1 0x29 00001d33: PUSH1 0x24 00001d35: DUP3 00001d36: ADD 00001d37: MSTORE 00001d38: PUSH32 0x45524331393637557067726164653a20756e737570706f727465642070726f78 00001d59: PUSH1 0x44 00001d5b: DUP3 00001d5c: ADD 00001d5d: MSTORE 00001d5e: PUSH32 0x6961626c65555549440000000000000000000000000000000000000000000000 00001d7f: PUSH1 0x64 00001d81: DUP3 00001d82: ADD 00001d83: MSTORE 00001d84: PUSH1 0x84 00001d86: ADD 00001d87: PUSH2 0x0ac8 00001d8a: JUMP 00001d8b: JUMPDEST 00001d8c: POP 00001d8d: PUSH2 0x0a33 00001d90: DUP4 00001d91: DUP4 00001d92: DUP4 00001d93: PUSH2 0x2419 00001d96: JUMP 00001d97: JUMPDEST 00001d98: PUSH1 0x00 00001d9a: PUSH2 0x0922 00001d9d: PUSH2 0x1da5 00001da0: DUP4 00001da1: PUSH2 0x2444 00001da4: JUMP 00001da5: JUMPDEST 00001da6: PUSH2 0x1ddb 00001da9: JUMP 00001daa: JUMPDEST 00001dab: PUSH1 0x00 00001dad: PUSH2 0x0922 00001db0: PUSH2 0x1da5 00001db3: DUP4 00001db4: PUSH2 0x24e3 00001db7: JUMP 00001db8: JUMPDEST 00001db9: PUSH1 0x00 00001dbb: PUSH2 0x1dcf 00001dbe: DUP7 00001dbf: PUSH2 0x1dc7 00001dc2: DUP8 00001dc3: PUSH2 0x2570 00001dc6: JUMP 00001dc7: JUMPDEST 00001dc8: DUP7 00001dc9: DUP7 00001dca: DUP7 00001dcb: PUSH2 0x25a0 00001dce: JUMP 00001dcf: JUMPDEST 00001dd0: SWAP1 00001dd1: POP 00001dd2: JUMPDEST 00001dd3: SWAP6 00001dd4: SWAP5 00001dd5: POP 00001dd6: POP 00001dd7: POP 00001dd8: POP 00001dd9: POP 00001dda: JUMP 00001ddb: JUMPDEST 00001ddc: PUSH1 0x00 00001dde: PUSH1 0x02 00001de0: DUP3 00001de1: PUSH1 0x40 00001de3: MLOAD 00001de4: PUSH2 0x1ded 00001de7: SWAP2 00001de8: SWAP1 00001de9: PUSH2 0x3a58 00001dec: JUMP 00001ded: JUMPDEST 00001dee: PUSH1 0x20 00001df0: PUSH1 0x40 00001df2: MLOAD 00001df3: DUP1 00001df4: DUP4 00001df5: SUB 00001df6: DUP2 00001df7: DUP6 00001df8: GAS 00001df9: STATICCALL 00001dfa: ISZERO 00001dfb: DUP1 00001dfc: ISZERO 00001dfd: PUSH2 0x1e0a 00001e00: JUMPI 00001e01: RETURNDATASIZE 00001e02: PUSH1 0x00 00001e04: DUP1 00001e05: RETURNDATACOPY 00001e06: RETURNDATASIZE 00001e07: PUSH1 0x00 00001e09: REVERT 00001e0a: JUMPDEST 00001e0b: POP 00001e0c: POP 00001e0d: POP 00001e0e: PUSH1 0x40 00001e10: MLOAD 00001e11: RETURNDATASIZE 00001e12: PUSH1 0x1f 00001e14: NOT 00001e15: PUSH1 0x1f 00001e17: DUP3 00001e18: ADD 00001e19: AND 00001e1a: DUP3 00001e1b: ADD 00001e1c: DUP1 00001e1d: PUSH1 0x40 00001e1f: MSTORE 00001e20: POP 00001e21: DUP2 00001e22: ADD 00001e23: SWAP1 00001e24: PUSH2 0x0922 00001e27: SWAP2 00001e28: SWAP1 00001e29: PUSH2 0x3a3f 00001e2c: JUMP 00001e2d: JUMPDEST 00001e2e: PUSH2 0x1e35 00001e31: PUSH2 0x27b9 00001e34: JUMP 00001e35: JUMPDEST 00001e36: PUSH1 0x00 00001e38: DUP3 00001e39: DUP2 00001e3a: MSTORE 00001e3b: PUSH2 0x0162 00001e3e: PUSH1 0x20 00001e40: MSTORE 00001e41: PUSH1 0x40 00001e43: SWAP1 00001e44: KECCAK256 00001e45: SLOAD 00001e46: PUSH1 0xff 00001e48: AND 00001e49: ISZERO 00001e4a: PUSH2 0x1e7f 00001e4d: JUMPI 00001e4e: PUSH1 0x40 00001e50: MLOAD 00001e51: PUSH32 0xd0ebeb4b00000000000000000000000000000000000000000000000000000000 00001e72: DUP2 00001e73: MSTORE 00001e74: PUSH1 0x04 00001e76: ADD 00001e77: PUSH1 0x40 00001e79: MLOAD 00001e7a: DUP1 00001e7b: SWAP2 00001e7c: SUB 00001e7d: SWAP1 00001e7e: REVERT 00001e7f: JUMPDEST 00001e80: DUP1 00001e81: CALLDATALOAD 00001e82: PUSH2 0x015f 00001e85: SSTORE 00001e86: PUSH1 0x00 00001e88: PUSH1 0x60 00001e8a: DUP2 00001e8b: PUSH2 0x1e99 00001e8e: PUSH1 0x80 00001e90: DUP6 00001e91: ADD 00001e92: DUP4 00001e93: DUP7 00001e94: ADD 00001e95: PUSH2 0x3766 00001e98: JUMP 00001e99: JUMPDEST 00001e9a: PUSH8 0xffffffffffffffff 00001ea3: AND 00001ea4: GT 00001ea5: ISZERO 00001ea6: PUSH2 0x1f9b 00001ea9: JUMPI 00001eaa: PUSH1 0x00 00001eac: PUSH2 0x1eb7 00001eaf: PUSH1 0x09 00001eb1: PUSH1 0x12 00001eb3: PUSH2 0x3869 00001eb6: JUMP 00001eb7: JUMPDEST 00001eb8: PUSH2 0x1ec2 00001ebb: SWAP1 00001ebc: PUSH1 0x0a 00001ebe: PUSH2 0x39a0 00001ec1: JUMP 00001ec2: JUMPDEST 00001ec3: PUSH2 0x1ed2 00001ec6: PUSH1 0x80 00001ec8: DUP7 00001ec9: ADD 00001eca: PUSH1 0x60 00001ecc: DUP8 00001ecd: ADD 00001ece: PUSH2 0x3766 00001ed1: JUMP 00001ed2: JUMPDEST 00001ed3: PUSH8 0xffffffffffffffff 00001edc: AND 00001edd: PUSH2 0x1ee6 00001ee0: SWAP2 00001ee1: SWAP1 00001ee2: PUSH2 0x3a74 00001ee5: JUMP 00001ee6: JUMPDEST 00001ee7: SWAP1 00001ee8: POP 00001ee9: DUP1 00001eea: PUSH2 0x0194 00001eed: PUSH1 0x00 00001eef: DUP3 00001ef0: DUP3 00001ef1: SLOAD 00001ef2: PUSH2 0x1efb 00001ef5: SWAP2 00001ef6: SWAP1 00001ef7: PUSH2 0x3869 00001efa: JUMP 00001efb: JUMPDEST 00001efc: SWAP1 00001efd: SWAP2 00001efe: SSTORE 00001eff: POP 00001f00: POP 00001f01: PUSH2 0x01cb 00001f04: SLOAD 00001f05: PUSH1 0xff 00001f07: AND 00001f08: ISZERO 00001f09: PUSH2 0x1f15 00001f0c: JUMPI 00001f0d: PUSH2 0x1f15 00001f10: DUP2 00001f11: PUSH2 0x2813 00001f14: JUMP 00001f15: JUMPDEST 00001f16: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f2b: PUSH1 0x20 00001f2d: DUP6 00001f2e: ADD 00001f2f: CALLDATALOAD 00001f30: AND 00001f31: DUP2 00001f32: PUSH2 0x1f3e 00001f35: PUSH1 0x80 00001f37: DUP8 00001f38: ADD 00001f39: DUP8 00001f3a: PUSH2 0x3781 00001f3d: JUMP 00001f3e: JUMPDEST 00001f3f: PUSH1 0x40 00001f41: MLOAD 00001f42: PUSH2 0x1f4c 00001f45: SWAP3 00001f46: SWAP2 00001f47: SWAP1 00001f48: PUSH2 0x3ab1 00001f4b: JUMP 00001f4c: JUMPDEST 00001f4d: PUSH1 0x00 00001f4f: PUSH1 0x40 00001f51: MLOAD 00001f52: DUP1 00001f53: DUP4 00001f54: SUB 00001f55: DUP2 00001f56: DUP6 00001f57: DUP8 00001f58: GAS 00001f59: CALL 00001f5a: SWAP3 00001f5b: POP 00001f5c: POP 00001f5d: POP 00001f5e: RETURNDATASIZE 00001f5f: DUP1 00001f60: PUSH1 0x00 00001f62: DUP2 00001f63: EQ 00001f64: PUSH2 0x1f89 00001f67: JUMPI 00001f68: PUSH1 0x40 00001f6a: MLOAD 00001f6b: SWAP2 00001f6c: POP 00001f6d: PUSH1 0x1f 00001f6f: NOT 00001f70: PUSH1 0x3f 00001f72: RETURNDATASIZE 00001f73: ADD 00001f74: AND 00001f75: DUP3 00001f76: ADD 00001f77: PUSH1 0x40 00001f79: MSTORE 00001f7a: RETURNDATASIZE 00001f7b: DUP3 00001f7c: MSTORE 00001f7d: RETURNDATASIZE 00001f7e: PUSH1 0x00 00001f80: PUSH1 0x20 00001f82: DUP5 00001f83: ADD 00001f84: RETURNDATACOPY 00001f85: PUSH2 0x1f8e 00001f88: JUMP 00001f89: JUMPDEST 00001f8a: PUSH1 0x60 00001f8c: SWAP2 00001f8d: POP 00001f8e: JUMPDEST 00001f8f: POP 00001f90: SWAP1 00001f91: SWAP4 00001f92: POP 00001f93: SWAP2 00001f94: POP 00001f95: PUSH2 0x201a 00001f98: SWAP1 00001f99: POP 00001f9a: JUMP 00001f9b: JUMPDEST 00001f9c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001fb1: PUSH1 0x20 00001fb3: DUP5 00001fb4: ADD 00001fb5: CALLDATALOAD 00001fb6: AND 00001fb7: PUSH2 0x1fc3 00001fba: PUSH1 0x80 00001fbc: DUP6 00001fbd: ADD 00001fbe: DUP6 00001fbf: PUSH2 0x3781 00001fc2: JUMP 00001fc3: JUMPDEST 00001fc4: PUSH1 0x40 00001fc6: MLOAD 00001fc7: PUSH2 0x1fd1 00001fca: SWAP3 00001fcb: SWAP2 00001fcc: SWAP1 00001fcd: PUSH2 0x3ab1 00001fd0: JUMP 00001fd1: JUMPDEST 00001fd2: PUSH1 0x00 00001fd4: PUSH1 0x40 00001fd6: MLOAD 00001fd7: DUP1 00001fd8: DUP4 00001fd9: SUB 00001fda: DUP2 00001fdb: PUSH1 0x00 00001fdd: DUP7 00001fde: GAS 00001fdf: CALL 00001fe0: SWAP2 00001fe1: POP 00001fe2: POP 00001fe3: RETURNDATASIZE 00001fe4: DUP1 00001fe5: PUSH1 0x00 00001fe7: DUP2 00001fe8: EQ 00001fe9: PUSH2 0x200e 00001fec: JUMPI 00001fed: PUSH1 0x40 00001fef: MLOAD 00001ff0: SWAP2 00001ff1: POP 00001ff2: PUSH1 0x1f 00001ff4: NOT 00001ff5: PUSH1 0x3f 00001ff7: RETURNDATASIZE 00001ff8: ADD 00001ff9: AND 00001ffa: DUP3 00001ffb: ADD 00001ffc: PUSH1 0x40 00001ffe: MSTORE 00001fff: RETURNDATASIZE 00002000: DUP3 00002001: MSTORE 00002002: RETURNDATASIZE 00002003: PUSH1 0x00 00002005: PUSH1 0x20 00002007: DUP5 00002008: ADD 00002009: RETURNDATACOPY 0000200a: PUSH2 0x2013 0000200d: JUMP 0000200e: JUMPDEST 0000200f: PUSH1 0x60 00002011: SWAP2 00002012: POP 00002013: JUMPDEST 00002014: POP 00002015: SWAP1 00002016: SWAP3 00002017: POP 00002018: SWAP1 00002019: POP 0000201a: JUMPDEST 0000201b: DUP2 0000201c: PUSH2 0x2061 0000201f: JUMPI 00002020: DUP1 00002021: MLOAD 00002022: ISZERO 00002023: PUSH2 0x202f 00002026: JUMPI 00002027: DUP1 00002028: MLOAD 00002029: DUP1 0000202a: DUP3 0000202b: PUSH1 0x20 0000202d: ADD 0000202e: REVERT 0000202f: JUMPDEST 00002030: PUSH1 0x40 00002032: MLOAD 00002033: PUSH32 0x943c78c400000000000000000000000000000000000000000000000000000000 00002054: DUP2 00002055: MSTORE 00002056: PUSH1 0x04 00002058: ADD 00002059: PUSH1 0x40 0000205b: MLOAD 0000205c: DUP1 0000205d: SWAP2 0000205e: SUB 0000205f: SWAP1 00002060: REVERT 00002061: JUMPDEST 00002062: PUSH2 0xdead 00002065: PUSH2 0x015f 00002068: SSTORE 00002069: PUSH1 0x00 0000206b: DUP5 0000206c: DUP2 0000206d: MSTORE 0000206e: PUSH2 0x0162 00002071: PUSH1 0x20 00002073: SWAP1 00002074: DUP2 00002075: MSTORE 00002076: PUSH1 0x40 00002078: SWAP1 00002079: SWAP2 0000207a: KECCAK256 0000207b: DUP1 0000207c: SLOAD 0000207d: PUSH1 0xff 0000207f: NOT 00002080: AND 00002081: PUSH1 0x01 00002083: OR 00002084: SWAP1 00002085: SSTORE 00002086: DUP4 00002087: ADD 00002088: CALLDATALOAD 00002089: DUP4 0000208a: CALLDATALOAD 0000208b: DUP6 0000208c: PUSH32 0xd9e6225aff5cf09ee2f0b39b98941e3c2beca6957b16b9e02b674a69e0e83ee7 000020ad: PUSH2 0x20bc 000020b0: PUSH1 0x80 000020b2: DUP9 000020b3: ADD 000020b4: PUSH1 0x60 000020b6: DUP10 000020b7: ADD 000020b8: PUSH2 0x3766 000020bb: JUMP 000020bc: JUMPDEST 000020bd: PUSH1 0x40 000020bf: MLOAD 000020c0: PUSH8 0xffffffffffffffff 000020c9: SWAP1 000020ca: SWAP2 000020cb: AND 000020cc: DUP2 000020cd: MSTORE 000020ce: PUSH1 0x20 000020d0: ADD 000020d1: PUSH1 0x40 000020d3: MLOAD 000020d4: DUP1 000020d5: SWAP2 000020d6: SUB 000020d7: SWAP1 000020d8: LOG4 000020d9: POP 000020da: POP 000020db: PUSH2 0x0c28 000020de: PUSH1 0x01 000020e0: PUSH1 0xc9 000020e2: SSTORE 000020e3: JUMP 000020e4: JUMPDEST 000020e5: PUSH2 0x20ec 000020e8: PUSH2 0x28a1 000020eb: JUMP 000020ec: JUMPDEST 000020ed: PUSH1 0x33 000020ef: DUP1 000020f0: SLOAD 000020f1: PUSH1 0xff 000020f3: NOT 000020f4: AND 000020f5: SWAP1 000020f6: SSTORE 000020f7: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa 00002118: CALLER 00002119: JUMPDEST 0000211a: PUSH1 0x40 0000211c: MLOAD 0000211d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002132: SWAP1 00002133: SWAP2 00002134: AND 00002135: DUP2 00002136: MSTORE 00002137: PUSH1 0x20 00002139: ADD 0000213a: PUSH1 0x40 0000213c: MLOAD 0000213d: DUP1 0000213e: SWAP2 0000213f: SUB 00002140: SWAP1 00002141: LOG1 00002142: JUMP 00002143: JUMPDEST 00002144: PUSH2 0x214b 00002147: PUSH2 0x1824 0000214a: JUMP 0000214b: JUMPDEST 0000214c: PUSH1 0x33 0000214e: DUP1 0000214f: SLOAD 00002150: PUSH1 0xff 00002152: NOT 00002153: AND 00002154: PUSH1 0x01 00002156: OR 00002157: SWAP1 00002158: SSTORE 00002159: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258 0000217a: PUSH2 0x2119 0000217d: CALLER 0000217e: SWAP1 0000217f: JUMP 00002180: JUMPDEST 00002181: PUSH1 0x00 00002183: SLOAD 00002184: PUSH2 0x0100 00002187: SWAP1 00002188: DIV 00002189: PUSH1 0xff 0000218b: AND 0000218c: PUSH2 0x21fd 0000218f: JUMPI 00002190: PUSH1 0x40 00002192: MLOAD 00002193: PUSH3 0x461bcd 00002197: PUSH1 0xe5 00002199: SHL 0000219a: DUP2 0000219b: MSTORE 0000219c: PUSH1 0x20 0000219e: PUSH1 0x04 000021a0: DUP3 000021a1: ADD 000021a2: MSTORE 000021a3: PUSH1 0x2b 000021a5: PUSH1 0x24 000021a7: DUP3 000021a8: ADD 000021a9: MSTORE 000021aa: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 000021cb: PUSH1 0x44 000021cd: DUP3 000021ce: ADD 000021cf: MSTORE 000021d0: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 000021f1: PUSH1 0x64 000021f3: DUP3 000021f4: ADD 000021f5: MSTORE 000021f6: PUSH1 0x84 000021f8: ADD 000021f9: PUSH2 0x0ac8 000021fc: JUMP 000021fd: JUMPDEST 000021fe: PUSH2 0x2205 00002201: PUSH2 0x28f3 00002204: JUMP 00002205: JUMPDEST 00002206: PUSH2 0x220d 00002209: PUSH2 0x2978 0000220c: JUMP 0000220d: JUMPDEST 0000220e: PUSH2 0x2215 00002211: PUSH2 0x29f5 00002214: JUMP 00002215: JUMPDEST 00002216: PUSH2 0x221d 00002219: PUSH2 0x2978 0000221c: JUMP 0000221d: JUMPDEST 0000221e: PUSH2 0x2228 00002221: PUSH1 0x00 00002223: CALLER 00002224: PUSH2 0x1a5d 00002227: JUMP 00002228: JUMPDEST 00002229: PUSH2 0x2252 0000222c: PUSH32 0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a 0000224d: CALLER 0000224e: PUSH2 0x1a5d 00002251: JUMP 00002252: JUMPDEST 00002253: PUSH2 0x0160 00002256: DUP1 00002257: SLOAD 00002258: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00002279: AND 0000227a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000228f: SWAP3 00002290: SWAP1 00002291: SWAP3 00002292: AND 00002293: SWAP2 00002294: SWAP1 00002295: SWAP2 00002296: OR 00002297: SWAP1 00002298: SSTORE 00002299: PUSH1 0x00 0000229b: PUSH2 0x0161 0000229e: SSTORE 0000229f: PUSH2 0xdead 000022a2: PUSH2 0x015f 000022a5: SSTORE 000022a6: JUMP 000022a7: JUMPDEST 000022a8: PUSH1 0x00 000022aa: DUP3 000022ab: DUP2 000022ac: MSTORE 000022ad: PUSH1 0x97 000022af: PUSH1 0x20 000022b1: SWAP1 000022b2: DUP2 000022b3: MSTORE 000022b4: PUSH1 0x40 000022b6: DUP1 000022b7: DUP4 000022b8: KECCAK256 000022b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022ce: DUP6 000022cf: AND 000022d0: DUP5 000022d1: MSTORE 000022d2: SWAP1 000022d3: SWAP2 000022d4: MSTORE 000022d5: SWAP1 000022d6: KECCAK256 000022d7: SLOAD 000022d8: PUSH1 0xff 000022da: AND 000022db: PUSH2 0x0c28 000022de: JUMPI 000022df: PUSH2 0x22e7 000022e2: DUP2 000022e3: PUSH2 0x2a7a 000022e6: JUMP 000022e7: JUMPDEST 000022e8: PUSH2 0x22f2 000022eb: DUP4 000022ec: PUSH1 0x20 000022ee: PUSH2 0x2a99 000022f1: JUMP 000022f2: JUMPDEST 000022f3: PUSH1 0x40 000022f5: MLOAD 000022f6: PUSH1 0x20 000022f8: ADD 000022f9: PUSH2 0x2303 000022fc: SWAP3 000022fd: SWAP2 000022fe: SWAP1 000022ff: PUSH2 0x3ac1 00002302: JUMP 00002303: JUMPDEST 00002304: PUSH1 0x40 00002306: DUP1 00002307: MLOAD 00002308: PUSH1 0x1f 0000230a: NOT 0000230b: DUP2 0000230c: DUP5 0000230d: SUB 0000230e: ADD 0000230f: DUP2 00002310: MSTORE 00002311: SWAP1 00002312: DUP3 00002313: SWAP1 00002314: MSTORE 00002315: PUSH3 0x461bcd 00002319: PUSH1 0xe5 0000231b: SHL 0000231c: DUP3 0000231d: MSTORE 0000231e: PUSH2 0x0ac8 00002321: SWAP2 00002322: PUSH1 0x04 00002324: ADD 00002325: PUSH2 0x3b42 00002328: JUMP 00002329: JUMPDEST 0000232a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000233f: DUP2 00002340: AND 00002341: EXTCODESIZE 00002342: PUSH2 0x23b3 00002345: JUMPI 00002346: PUSH1 0x40 00002348: MLOAD 00002349: PUSH3 0x461bcd 0000234d: PUSH1 0xe5 0000234f: SHL 00002350: DUP2 00002351: MSTORE 00002352: PUSH1 0x20 00002354: PUSH1 0x04 00002356: DUP3 00002357: ADD 00002358: MSTORE 00002359: PUSH1 0x2d 0000235b: PUSH1 0x24 0000235d: DUP3 0000235e: ADD 0000235f: MSTORE 00002360: PUSH32 0x455243313936373a206e657720696d706c656d656e746174696f6e206973206e 00002381: PUSH1 0x44 00002383: DUP3 00002384: ADD 00002385: MSTORE 00002386: PUSH32 0x6f74206120636f6e747261637400000000000000000000000000000000000000 000023a7: PUSH1 0x64 000023a9: DUP3 000023aa: ADD 000023ab: MSTORE 000023ac: PUSH1 0x84 000023ae: ADD 000023af: PUSH2 0x0ac8 000023b2: JUMP 000023b3: JUMPDEST 000023b4: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 000023d5: DUP1 000023d6: SLOAD 000023d7: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 000023f8: AND 000023f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000240e: SWAP3 0000240f: SWAP1 00002410: SWAP3 00002411: AND 00002412: SWAP2 00002413: SWAP1 00002414: SWAP2 00002415: OR 00002416: SWAP1 00002417: SSTORE 00002418: JUMP 00002419: JUMPDEST 0000241a: PUSH2 0x2422 0000241d: DUP4 0000241e: PUSH2 0x2cc9 00002421: JUMP 00002422: JUMPDEST 00002423: PUSH1 0x00 00002425: DUP3 00002426: MLOAD 00002427: GT 00002428: DUP1 00002429: PUSH2 0x242f 0000242c: JUMPI 0000242d: POP 0000242e: DUP1 0000242f: JUMPDEST 00002430: ISZERO 00002431: PUSH2 0x0a33 00002434: JUMPI 00002435: PUSH2 0x243e 00002438: DUP4 00002439: DUP4 0000243a: PUSH2 0x2d16 0000243d: JUMP 0000243e: JUMPDEST 0000243f: POP 00002440: POP 00002441: POP 00002442: POP 00002443: JUMP 00002444: JUMPDEST 00002445: PUSH1 0x60 00002447: DUP2 00002448: PUSH1 0x00 0000244a: ADD 0000244b: MLOAD 0000244c: DUP3 0000244d: PUSH1 0x20 0000244f: ADD 00002450: MLOAD 00002451: DUP4 00002452: PUSH1 0x40 00002454: ADD 00002455: MLOAD 00002456: DUP5 00002457: PUSH1 0x60 00002459: ADD 0000245a: MLOAD 0000245b: PUSH1 0x40 0000245d: MLOAD 0000245e: PUSH1 0x20 00002460: ADD 00002461: PUSH2 0x24cd 00002464: SWAP5 00002465: SWAP4 00002466: SWAP3 00002467: SWAP2 00002468: SWAP1 00002469: SWAP4 0000246a: DUP5 0000246b: MSTORE 0000246c: PUSH1 0xe0 0000246e: SWAP3 0000246f: SWAP1 00002470: SWAP3 00002471: SHL 00002472: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00002493: AND 00002494: PUSH1 0x20 00002496: DUP5 00002497: ADD 00002498: MSTORE 00002499: PUSH1 0xc0 0000249b: SHL 0000249c: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 000024bd: AND 000024be: PUSH1 0x24 000024c0: DUP4 000024c1: ADD 000024c2: MSTORE 000024c3: PUSH1 0x2c 000024c5: DUP3 000024c6: ADD 000024c7: MSTORE 000024c8: PUSH1 0x4c 000024ca: ADD 000024cb: SWAP1 000024cc: JUMP 000024cd: JUMPDEST 000024ce: PUSH1 0x40 000024d0: MLOAD 000024d1: PUSH1 0x20 000024d3: DUP2 000024d4: DUP4 000024d5: SUB 000024d6: SUB 000024d7: DUP2 000024d8: MSTORE 000024d9: SWAP1 000024da: PUSH1 0x40 000024dc: MSTORE 000024dd: SWAP1 000024de: POP 000024df: SWAP2 000024e0: SWAP1 000024e1: POP 000024e2: JUMP 000024e3: JUMPDEST 000024e4: PUSH1 0x60 000024e6: DUP2 000024e7: PUSH1 0x00 000024e9: ADD 000024ea: MLOAD 000024eb: DUP3 000024ec: PUSH1 0xc0 000024ee: ADD 000024ef: MLOAD 000024f0: DUP4 000024f1: PUSH1 0x20 000024f3: ADD 000024f4: MLOAD 000024f5: PUSH2 0x24fd 000024f8: DUP6 000024f9: PUSH2 0x2d3b 000024fc: JUMP 000024fd: JUMPDEST 000024fe: PUSH1 0x40 00002500: MLOAD 00002501: PUSH1 0x20 00002503: ADD 00002504: PUSH2 0x24cd 00002507: SWAP5 00002508: SWAP4 00002509: SWAP3 0000250a: SWAP2 0000250b: SWAP1 0000250c: SWAP4 0000250d: DUP5 0000250e: MSTORE 0000250f: PUSH1 0xe0 00002511: SWAP3 00002512: SWAP1 00002513: SWAP3 00002514: SHL 00002515: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00002536: AND 00002537: PUSH1 0x20 00002539: DUP5 0000253a: ADD 0000253b: MSTORE 0000253c: PUSH1 0xc0 0000253e: SHL 0000253f: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 00002560: AND 00002561: PUSH1 0x24 00002563: DUP4 00002564: ADD 00002565: MSTORE 00002566: PUSH1 0x2c 00002568: DUP3 00002569: ADD 0000256a: MSTORE 0000256b: PUSH1 0x4c 0000256d: ADD 0000256e: SWAP1 0000256f: JUMP 00002570: JUMPDEST 00002571: PUSH1 0x00 00002573: PUSH2 0x0922 00002576: PUSH1 0x00 00002578: PUSH1 0xf8 0000257a: SHL 0000257b: DUP4 0000257c: PUSH1 0x40 0000257e: MLOAD 0000257f: PUSH1 0x20 00002581: ADD 00002582: PUSH2 0x258c 00002585: SWAP3 00002586: SWAP2 00002587: SWAP1 00002588: PUSH2 0x3b55 0000258b: JUMP 0000258c: JUMPDEST 0000258d: PUSH1 0x40 0000258f: MLOAD 00002590: PUSH1 0x20 00002592: DUP2 00002593: DUP4 00002594: SUB 00002595: SUB 00002596: DUP2 00002597: MSTORE 00002598: SWAP1 00002599: PUSH1 0x40 0000259b: MSTORE 0000259c: PUSH2 0x2d49 0000259f: JUMP 000025a0: JUMPDEST 000025a1: PUSH1 0x00 000025a3: PUSH1 0x01 000025a5: DUP3 000025a6: GT 000025a7: PUSH2 0x25be 000025aa: JUMPI 000025ab: DUP4 000025ac: MLOAD 000025ad: ISZERO 000025ae: PUSH2 0x25b9 000025b1: JUMPI 000025b2: POP 000025b3: PUSH1 0x00 000025b5: PUSH2 0x1dd2 000025b8: JUMP 000025b9: JUMPDEST 000025ba: PUSH2 0x25d7 000025bd: JUMP 000025be: JUMPDEST 000025bf: PUSH2 0x25c8 000025c2: DUP4 000025c3: DUP4 000025c4: PUSH2 0x2d54 000025c7: JUMP 000025c8: JUMPDEST 000025c9: DUP5 000025ca: MLOAD 000025cb: EQ 000025cc: PUSH2 0x25d7 000025cf: JUMPI 000025d0: POP 000025d1: PUSH1 0x00 000025d3: PUSH2 0x1dd2 000025d6: JUMP 000025d7: JUMPDEST 000025d8: DUP2 000025d9: DUP4 000025da: LT 000025db: PUSH2 0x25e6 000025de: JUMPI 000025df: POP 000025e0: PUSH1 0x00 000025e2: PUSH2 0x1dd2 000025e5: JUMP 000025e6: JUMPDEST 000025e7: DUP4 000025e8: MLOAD 000025e9: PUSH2 0x2606 000025ec: JUMPI 000025ed: DUP2 000025ee: PUSH1 0x01 000025f0: EQ 000025f1: ISZERO 000025f2: PUSH2 0x25fe 000025f5: JUMPI 000025f6: POP 000025f7: DUP5 000025f8: DUP5 000025f9: EQ 000025fa: PUSH2 0x1dd2 000025fd: JUMP 000025fe: JUMPDEST 000025ff: POP 00002600: PUSH1 0x00 00002602: PUSH2 0x1dd2 00002605: JUMP 00002606: JUMPDEST 00002607: PUSH1 0x01 00002609: DUP4 0000260a: JUMPDEST 0000260b: PUSH1 0x00 0000260d: PUSH1 0x01 0000260f: DUP4 00002610: SHL 00002611: PUSH2 0x261a 00002614: DUP2 00002615: DUP9 00002616: PUSH2 0x3b9d 00002619: JUMP 0000261a: JUMPDEST 0000261b: PUSH2 0x2624 0000261e: SWAP2 0000261f: SWAP1 00002620: PUSH2 0x3a74 00002623: JUMP 00002624: JUMPDEST 00002625: SWAP1 00002626: POP 00002627: PUSH1 0x00 00002629: PUSH1 0x01 0000262b: PUSH2 0x2636 0000262e: DUP2 0000262f: DUP7 00002630: SHL 00002631: DUP5 00002632: PUSH2 0x3a27 00002635: JUMP 00002636: JUMPDEST 00002637: PUSH2 0x2640 0000263a: SWAP2 0000263b: SWAP1 0000263c: PUSH2 0x3869 0000263f: JUMP 00002640: JUMPDEST 00002641: SWAP1 00002642: POP 00002643: DUP6 00002644: DUP2 00002645: LT 00002646: PUSH2 0x2650 00002649: JUMPI 0000264a: POP 0000264b: POP 0000264c: PUSH2 0x2709 0000264f: JUMP 00002650: JUMPDEST 00002651: SWAP2 00002652: POP 00002653: DUP2 00002654: PUSH2 0x265e 00002657: PUSH1 0x01 00002659: DUP6 0000265a: PUSH2 0x3869 0000265d: JUMP 0000265e: JUMPDEST 0000265f: DUP9 00002660: MLOAD 00002661: GT 00002662: PUSH2 0x2672 00002665: JUMPI 00002666: PUSH1 0x00 00002668: SWAP5 00002669: POP 0000266a: POP 0000266b: POP 0000266c: POP 0000266d: POP 0000266e: PUSH2 0x1dd2 00002671: JUMP 00002672: JUMPDEST 00002673: PUSH2 0x267d 00002676: PUSH1 0x01 00002678: DUP6 00002679: PUSH2 0x3869 0000267c: JUMP 0000267d: JUMPDEST 0000267e: PUSH1 0x01 00002680: SWAP1 00002681: SHL 00002682: PUSH2 0x268b 00002685: DUP4 00002686: DUP10 00002687: PUSH2 0x3869 0000268a: JUMP 0000268b: JUMPDEST 0000268c: LT 0000268d: ISZERO 0000268e: PUSH2 0x26c5 00002691: JUMPI 00002692: PUSH2 0x26be 00002695: DUP10 00002696: DUP10 00002697: PUSH2 0x26a1 0000269a: PUSH1 0x01 0000269c: DUP9 0000269d: PUSH2 0x3869 000026a0: JUMP 000026a1: JUMPDEST 000026a2: DUP2 000026a3: MLOAD 000026a4: DUP2 000026a5: LT 000026a6: PUSH2 0x26b1 000026a9: JUMPI 000026aa: PUSH2 0x26b1 000026ad: PUSH2 0x3bd8 000026b0: JUMP 000026b1: JUMPDEST 000026b2: PUSH1 0x20 000026b4: MUL 000026b5: PUSH1 0x20 000026b7: ADD 000026b8: ADD 000026b9: MLOAD 000026ba: PUSH2 0x2df6 000026bd: JUMP 000026be: JUMPDEST 000026bf: SWAP9 000026c0: POP 000026c1: PUSH2 0x26f5 000026c4: JUMP 000026c5: JUMPDEST 000026c6: PUSH2 0x26f2 000026c9: DUP9 000026ca: PUSH2 0x26d4 000026cd: PUSH1 0x01 000026cf: DUP8 000026d0: PUSH2 0x3869 000026d3: JUMP 000026d4: JUMPDEST 000026d5: DUP2 000026d6: MLOAD 000026d7: DUP2 000026d8: LT 000026d9: PUSH2 0x26e4 000026dc: JUMPI 000026dd: PUSH2 0x26e4 000026e0: PUSH2 0x3bd8 000026e3: JUMP 000026e4: JUMPDEST 000026e5: PUSH1 0x20 000026e7: MUL 000026e8: PUSH1 0x20 000026ea: ADD 000026eb: ADD 000026ec: MLOAD 000026ed: DUP11 000026ee: PUSH2 0x2df6 000026f1: JUMP 000026f2: JUMPDEST 000026f3: SWAP9 000026f4: POP 000026f5: JUMPDEST 000026f6: PUSH2 0x2700 000026f9: PUSH1 0x01 000026fb: DUP6 000026fc: PUSH2 0x3a27 000026ff: JUMP 00002700: JUMPDEST 00002701: SWAP4 00002702: POP 00002703: POP 00002704: POP 00002705: PUSH2 0x260a 00002708: JUMP 00002709: JUMPDEST 0000270a: PUSH2 0x2714 0000270d: PUSH1 0x01 0000270f: DUP6 00002710: PUSH2 0x3869 00002713: JUMP 00002714: JUMPDEST 00002715: DUP2 00002716: EQ 00002717: PUSH2 0x2757 0000271a: JUMPI 0000271b: PUSH2 0x2725 0000271e: PUSH1 0x01 00002720: DUP4 00002721: PUSH2 0x3869 00002724: JUMP 00002725: JUMPDEST 00002726: DUP7 00002727: MLOAD 00002728: GT 00002729: PUSH2 0x2737 0000272c: JUMPI 0000272d: PUSH1 0x00 0000272f: SWAP3 00002730: POP 00002731: POP 00002732: POP 00002733: PUSH2 0x1dd2 00002736: JUMP 00002737: JUMPDEST 00002738: PUSH2 0x2747 0000273b: DUP8 0000273c: DUP8 0000273d: PUSH2 0x26a1 00002740: PUSH1 0x01 00002742: DUP7 00002743: PUSH2 0x3869 00002746: JUMP 00002747: JUMPDEST 00002748: SWAP7 00002749: POP 0000274a: PUSH2 0x2754 0000274d: PUSH1 0x01 0000274f: DUP4 00002750: PUSH2 0x3a27 00002753: JUMP 00002754: JUMPDEST 00002755: SWAP2 00002756: POP 00002757: JUMPDEST 00002758: DUP6 00002759: MLOAD 0000275a: PUSH2 0x2764 0000275d: PUSH1 0x01 0000275f: DUP5 00002760: PUSH2 0x3869 00002763: JUMP 00002764: JUMPDEST 00002765: LT 00002766: ISZERO 00002767: PUSH2 0x27ab 0000276a: JUMPI 0000276b: PUSH2 0x2797 0000276e: DUP7 0000276f: PUSH2 0x2779 00002772: PUSH1 0x01 00002774: DUP6 00002775: PUSH2 0x3869 00002778: JUMP 00002779: JUMPDEST 0000277a: DUP2 0000277b: MLOAD 0000277c: DUP2 0000277d: LT 0000277e: PUSH2 0x2789 00002781: JUMPI 00002782: PUSH2 0x2789 00002785: PUSH2 0x3bd8 00002788: JUMP 00002789: JUMPDEST 0000278a: PUSH1 0x20 0000278c: MUL 0000278d: PUSH1 0x20 0000278f: ADD 00002790: ADD 00002791: MLOAD 00002792: DUP9 00002793: PUSH2 0x2df6 00002796: JUMP 00002797: JUMPDEST 00002798: SWAP7 00002799: POP 0000279a: PUSH2 0x27a4 0000279d: PUSH1 0x01 0000279f: DUP4 000027a0: PUSH2 0x3a27 000027a3: JUMP 000027a4: JUMPDEST 000027a5: SWAP2 000027a6: POP 000027a7: PUSH2 0x2757 000027aa: JUMP 000027ab: JUMPDEST 000027ac: POP 000027ad: POP 000027ae: POP 000027af: SWAP4 000027b0: SWAP1 000027b1: SWAP3 000027b2: EQ 000027b3: SWAP4 000027b4: SWAP3 000027b5: POP 000027b6: POP 000027b7: POP 000027b8: JUMP 000027b9: JUMPDEST 000027ba: PUSH1 0x02 000027bc: PUSH1 0xc9 000027be: SLOAD 000027bf: EQ 000027c0: ISZERO 000027c1: PUSH2 0x280c 000027c4: JUMPI 000027c5: PUSH1 0x40 000027c7: MLOAD 000027c8: PUSH3 0x461bcd 000027cc: PUSH1 0xe5 000027ce: SHL 000027cf: DUP2 000027d0: MSTORE 000027d1: PUSH1 0x20 000027d3: PUSH1 0x04 000027d5: DUP3 000027d6: ADD 000027d7: MSTORE 000027d8: PUSH1 0x1f 000027da: PUSH1 0x24 000027dc: DUP3 000027dd: ADD 000027de: MSTORE 000027df: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 00002800: PUSH1 0x44 00002802: DUP3 00002803: ADD 00002804: MSTORE 00002805: PUSH1 0x64 00002807: ADD 00002808: PUSH2 0x0ac8 0000280b: JUMP 0000280c: JUMPDEST 0000280d: PUSH1 0x02 0000280f: PUSH1 0xc9 00002811: SSTORE 00002812: JUMP 00002813: JUMPDEST 00002814: PUSH1 0x00 00002816: TIMESTAMP 00002817: PUSH2 0x01c9 0000281a: SLOAD 0000281b: LT 0000281c: ISZERO 0000281d: PUSH2 0x284e 00002820: JUMPI 00002821: POP 00002822: TIMESTAMP 00002823: PUSH32 0x0000000000000000000000000000000000000000000000000000000000093a80 00002844: ADD 00002845: PUSH2 0x01c9 00002848: SSTORE 00002849: DUP1 0000284a: PUSH2 0x2856 0000284d: JUMP 0000284e: JUMPDEST 0000284f: POP 00002850: PUSH2 0x01c8 00002853: SLOAD 00002854: DUP2 00002855: ADD 00002856: JUMPDEST 00002857: PUSH2 0x01ca 0000285a: SLOAD 0000285b: DUP2 0000285c: GT 0000285d: ISZERO 0000285e: PUSH2 0x2893 00002861: JUMPI 00002862: PUSH1 0x40 00002864: MLOAD 00002865: PUSH32 0xa74c1c5f00000000000000000000000000000000000000000000000000000000 00002886: DUP2 00002887: MSTORE 00002888: PUSH1 0x04 0000288a: ADD 0000288b: PUSH1 0x40 0000288d: MLOAD 0000288e: DUP1 0000288f: SWAP2 00002890: SUB 00002891: SWAP1 00002892: REVERT 00002893: JUMPDEST 00002894: PUSH2 0x01c8 00002897: SSTORE 00002898: POP 00002899: JUMP 0000289a: JUMPDEST 0000289b: PUSH1 0x01 0000289d: PUSH1 0xc9 0000289f: SSTORE 000028a0: JUMP 000028a1: JUMPDEST 000028a2: PUSH1 0x33 000028a4: SLOAD 000028a5: PUSH1 0xff 000028a7: AND 000028a8: PUSH2 0x1877 000028ab: JUMPI 000028ac: PUSH1 0x40 000028ae: MLOAD 000028af: PUSH3 0x461bcd 000028b3: PUSH1 0xe5 000028b5: SHL 000028b6: DUP2 000028b7: MSTORE 000028b8: PUSH1 0x20 000028ba: PUSH1 0x04 000028bc: DUP3 000028bd: ADD 000028be: MSTORE 000028bf: PUSH1 0x14 000028c1: PUSH1 0x24 000028c3: DUP3 000028c4: ADD 000028c5: MSTORE 000028c6: PUSH32 0x5061757361626c653a206e6f7420706175736564000000000000000000000000 000028e7: PUSH1 0x44 000028e9: DUP3 000028ea: ADD 000028eb: MSTORE 000028ec: PUSH1 0x64 000028ee: ADD 000028ef: PUSH2 0x0ac8 000028f2: JUMP 000028f3: JUMPDEST 000028f4: PUSH1 0x00 000028f6: SLOAD 000028f7: PUSH2 0x0100 000028fa: SWAP1 000028fb: DIV 000028fc: PUSH1 0xff 000028fe: AND 000028ff: PUSH2 0x2970 00002902: JUMPI 00002903: PUSH1 0x40 00002905: MLOAD 00002906: PUSH3 0x461bcd 0000290a: PUSH1 0xe5 0000290c: SHL 0000290d: DUP2 0000290e: MSTORE 0000290f: PUSH1 0x20 00002911: PUSH1 0x04 00002913: DUP3 00002914: ADD 00002915: MSTORE 00002916: PUSH1 0x2b 00002918: PUSH1 0x24 0000291a: DUP3 0000291b: ADD 0000291c: MSTORE 0000291d: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 0000293e: PUSH1 0x44 00002940: DUP3 00002941: ADD 00002942: MSTORE 00002943: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00002964: PUSH1 0x64 00002966: DUP3 00002967: ADD 00002968: MSTORE 00002969: PUSH1 0x84 0000296b: ADD 0000296c: PUSH2 0x0ac8 0000296f: JUMP 00002970: JUMPDEST 00002971: PUSH2 0x1877 00002974: PUSH2 0x2e3c 00002977: JUMP 00002978: JUMPDEST 00002979: PUSH1 0x00 0000297b: SLOAD 0000297c: PUSH2 0x0100 0000297f: SWAP1 00002980: DIV 00002981: PUSH1 0xff 00002983: AND 00002984: PUSH2 0x1877 00002987: JUMPI 00002988: PUSH1 0x40 0000298a: MLOAD 0000298b: PUSH3 0x461bcd 0000298f: PUSH1 0xe5 00002991: SHL 00002992: DUP2 00002993: MSTORE 00002994: PUSH1 0x20 00002996: PUSH1 0x04 00002998: DUP3 00002999: ADD 0000299a: MSTORE 0000299b: PUSH1 0x2b 0000299d: PUSH1 0x24 0000299f: DUP3 000029a0: ADD 000029a1: MSTORE 000029a2: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 000029c3: PUSH1 0x44 000029c5: DUP3 000029c6: ADD 000029c7: MSTORE 000029c8: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 000029e9: PUSH1 0x64 000029eb: DUP3 000029ec: ADD 000029ed: MSTORE 000029ee: PUSH1 0x84 000029f0: ADD 000029f1: PUSH2 0x0ac8 000029f4: JUMP 000029f5: JUMPDEST 000029f6: PUSH1 0x00 000029f8: SLOAD 000029f9: PUSH2 0x0100 000029fc: SWAP1 000029fd: DIV 000029fe: PUSH1 0xff 00002a00: AND 00002a01: PUSH2 0x2a72 00002a04: JUMPI 00002a05: PUSH1 0x40 00002a07: MLOAD 00002a08: PUSH3 0x461bcd 00002a0c: PUSH1 0xe5 00002a0e: SHL 00002a0f: DUP2 00002a10: MSTORE 00002a11: PUSH1 0x20 00002a13: PUSH1 0x04 00002a15: DUP3 00002a16: ADD 00002a17: MSTORE 00002a18: PUSH1 0x2b 00002a1a: PUSH1 0x24 00002a1c: DUP3 00002a1d: ADD 00002a1e: MSTORE 00002a1f: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00002a40: PUSH1 0x44 00002a42: DUP3 00002a43: ADD 00002a44: MSTORE 00002a45: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00002a66: PUSH1 0x64 00002a68: DUP3 00002a69: ADD 00002a6a: MSTORE 00002a6b: PUSH1 0x84 00002a6d: ADD 00002a6e: PUSH2 0x0ac8 00002a71: JUMP 00002a72: JUMPDEST 00002a73: PUSH2 0x1877 00002a76: PUSH2 0x2ec5 00002a79: JUMP 00002a7a: JUMPDEST 00002a7b: PUSH1 0x60 00002a7d: PUSH2 0x0922 00002a80: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a95: DUP4 00002a96: AND 00002a97: PUSH1 0x14 00002a99: JUMPDEST 00002a9a: PUSH1 0x60 00002a9c: PUSH1 0x00 00002a9e: PUSH2 0x2aa8 00002aa1: DUP4 00002aa2: PUSH1 0x02 00002aa4: PUSH2 0x3a74 00002aa7: JUMP 00002aa8: JUMPDEST 00002aa9: PUSH2 0x2ab3 00002aac: SWAP1 00002aad: PUSH1 0x02 00002aaf: PUSH2 0x3a27 00002ab2: JUMP 00002ab3: JUMPDEST 00002ab4: PUSH8 0xffffffffffffffff 00002abd: DUP2 00002abe: GT 00002abf: ISZERO 00002ac0: PUSH2 0x2acb 00002ac3: JUMPI 00002ac4: PUSH2 0x2acb 00002ac7: PUSH2 0x33c3 00002aca: JUMP 00002acb: JUMPDEST 00002acc: PUSH1 0x40 00002ace: MLOAD 00002acf: SWAP1 00002ad0: DUP1 00002ad1: DUP3 00002ad2: MSTORE 00002ad3: DUP1 00002ad4: PUSH1 0x1f 00002ad6: ADD 00002ad7: PUSH1 0x1f 00002ad9: NOT 00002ada: AND 00002adb: PUSH1 0x20 00002add: ADD 00002ade: DUP3 00002adf: ADD 00002ae0: PUSH1 0x40 00002ae2: MSTORE 00002ae3: DUP1 00002ae4: ISZERO 00002ae5: PUSH2 0x2af5 00002ae8: JUMPI 00002ae9: PUSH1 0x20 00002aeb: DUP3 00002aec: ADD 00002aed: DUP2 00002aee: DUP1 00002aef: CALLDATASIZE 00002af0: DUP4 00002af1: CALLDATACOPY 00002af2: ADD 00002af3: SWAP1 00002af4: POP 00002af5: JUMPDEST 00002af6: POP 00002af7: SWAP1 00002af8: POP 00002af9: PUSH32 0x3000000000000000000000000000000000000000000000000000000000000000 00002b1a: DUP2 00002b1b: PUSH1 0x00 00002b1d: DUP2 00002b1e: MLOAD 00002b1f: DUP2 00002b20: LT 00002b21: PUSH2 0x2b2c 00002b24: JUMPI 00002b25: PUSH2 0x2b2c 00002b28: PUSH2 0x3bd8 00002b2b: JUMP 00002b2c: JUMPDEST 00002b2d: PUSH1 0x20 00002b2f: ADD 00002b30: ADD 00002b31: SWAP1 00002b32: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002b52: NOT 00002b53: AND 00002b54: SWAP1 00002b55: DUP2 00002b56: PUSH1 0x00 00002b58: BYTE 00002b59: SWAP1 00002b5a: MSTORE8 00002b5b: POP 00002b5c: PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 00002b7d: DUP2 00002b7e: PUSH1 0x01 00002b80: DUP2 00002b81: MLOAD 00002b82: DUP2 00002b83: LT 00002b84: PUSH2 0x2b8f 00002b87: JUMPI 00002b88: PUSH2 0x2b8f 00002b8b: PUSH2 0x3bd8 00002b8e: JUMP 00002b8f: JUMPDEST 00002b90: PUSH1 0x20 00002b92: ADD 00002b93: ADD 00002b94: SWAP1 00002b95: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002bb5: NOT 00002bb6: AND 00002bb7: SWAP1 00002bb8: DUP2 00002bb9: PUSH1 0x00 00002bbb: BYTE 00002bbc: SWAP1 00002bbd: MSTORE8 00002bbe: POP 00002bbf: PUSH1 0x00 00002bc1: PUSH2 0x2bcb 00002bc4: DUP5 00002bc5: PUSH1 0x02 00002bc7: PUSH2 0x3a74 00002bca: JUMP 00002bcb: JUMPDEST 00002bcc: PUSH2 0x2bd6 00002bcf: SWAP1 00002bd0: PUSH1 0x01 00002bd2: PUSH2 0x3a27 00002bd5: JUMP 00002bd6: JUMPDEST 00002bd7: SWAP1 00002bd8: POP 00002bd9: JUMPDEST 00002bda: PUSH1 0x01 00002bdc: DUP2 00002bdd: GT 00002bde: ISZERO 00002bdf: PUSH2 0x2c73 00002be2: JUMPI 00002be3: PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 00002c04: DUP6 00002c05: PUSH1 0x0f 00002c07: AND 00002c08: PUSH1 0x10 00002c0a: DUP2 00002c0b: LT 00002c0c: PUSH2 0x2c17 00002c0f: JUMPI 00002c10: PUSH2 0x2c17 00002c13: PUSH2 0x3bd8 00002c16: JUMP 00002c17: JUMPDEST 00002c18: BYTE 00002c19: PUSH1 0xf8 00002c1b: SHL 00002c1c: DUP3 00002c1d: DUP3 00002c1e: DUP2 00002c1f: MLOAD 00002c20: DUP2 00002c21: LT 00002c22: PUSH2 0x2c2d 00002c25: JUMPI 00002c26: PUSH2 0x2c2d 00002c29: PUSH2 0x3bd8 00002c2c: JUMP 00002c2d: JUMPDEST 00002c2e: PUSH1 0x20 00002c30: ADD 00002c31: ADD 00002c32: SWAP1 00002c33: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002c53: NOT 00002c54: AND 00002c55: SWAP1 00002c56: DUP2 00002c57: PUSH1 0x00 00002c59: BYTE 00002c5a: SWAP1 00002c5b: MSTORE8 00002c5c: POP 00002c5d: PUSH1 0x04 00002c5f: SWAP5 00002c60: SWAP1 00002c61: SWAP5 00002c62: SHR 00002c63: SWAP4 00002c64: PUSH2 0x2c6c 00002c67: DUP2 00002c68: PUSH2 0x3c07 00002c6b: JUMP 00002c6c: JUMPDEST 00002c6d: SWAP1 00002c6e: POP 00002c6f: PUSH2 0x2bd9 00002c72: JUMP 00002c73: JUMPDEST 00002c74: POP 00002c75: DUP4 00002c76: ISZERO 00002c77: PUSH2 0x2cc2 00002c7a: JUMPI 00002c7b: PUSH1 0x40 00002c7d: MLOAD 00002c7e: PUSH3 0x461bcd 00002c82: PUSH1 0xe5 00002c84: SHL 00002c85: DUP2 00002c86: MSTORE 00002c87: PUSH1 0x20 00002c89: PUSH1 0x04 00002c8b: DUP3 00002c8c: ADD 00002c8d: DUP2 00002c8e: SWAP1 00002c8f: MSTORE 00002c90: PUSH1 0x24 00002c92: DUP3 00002c93: ADD 00002c94: MSTORE 00002c95: PUSH32 0x537472696e67733a20686578206c656e67746820696e73756666696369656e74 00002cb6: PUSH1 0x44 00002cb8: DUP3 00002cb9: ADD 00002cba: MSTORE 00002cbb: PUSH1 0x64 00002cbd: ADD 00002cbe: PUSH2 0x0ac8 00002cc1: JUMP 00002cc2: JUMPDEST 00002cc3: SWAP4 00002cc4: SWAP3 00002cc5: POP 00002cc6: POP 00002cc7: POP 00002cc8: JUMP 00002cc9: JUMPDEST 00002cca: PUSH2 0x2cd2 00002ccd: DUP2 00002cce: PUSH2 0x2329 00002cd1: JUMP 00002cd2: JUMPDEST 00002cd3: PUSH1 0x40 00002cd5: MLOAD 00002cd6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ceb: DUP3 00002cec: AND 00002ced: SWAP1 00002cee: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b 00002d0f: SWAP1 00002d10: PUSH1 0x00 00002d12: SWAP1 00002d13: LOG2 00002d14: POP 00002d15: JUMP 00002d16: JUMPDEST 00002d17: PUSH1 0x60 00002d19: PUSH2 0x2cc2 00002d1c: DUP4 00002d1d: DUP4 00002d1e: PUSH1 0x40 00002d20: MLOAD 00002d21: DUP1 00002d22: PUSH1 0x60 00002d24: ADD 00002d25: PUSH1 0x40 00002d27: MSTORE 00002d28: DUP1 00002d29: PUSH1 0x27 00002d2b: DUP2 00002d2c: MSTORE 00002d2d: PUSH1 0x20 00002d2f: ADD 00002d30: PUSH2 0x3c3d 00002d33: PUSH1 0x27 00002d35: SWAP2 00002d36: CODECOPY 00002d37: PUSH2 0x2f42 00002d3a: JUMP 00002d3b: JUMPDEST 00002d3c: PUSH1 0x00 00002d3e: PUSH2 0x0922 00002d41: PUSH2 0x1da5 00002d44: DUP4 00002d45: PUSH2 0x2fc7 00002d48: JUMP 00002d49: JUMPDEST 00002d4a: PUSH1 0x00 00002d4c: PUSH2 0x0922 00002d4f: DUP3 00002d50: PUSH2 0x1ddb 00002d53: JUMP 00002d54: JUMPDEST 00002d55: PUSH1 0x00 00002d57: PUSH2 0x2d5f 00002d5a: DUP3 00002d5b: PUSH2 0x30ad 00002d5e: JUMP 00002d5f: JUMPDEST 00002d60: PUSH2 0x2d6b 00002d63: SWAP1 00002d64: PUSH2 0x0100 00002d67: PUSH2 0x3869 00002d6a: JUMP 00002d6b: JUMPDEST 00002d6c: SWAP1 00002d6d: POP 00002d6e: PUSH1 0x00 00002d70: PUSH2 0x2d7a 00002d73: PUSH1 0x01 00002d75: DUP4 00002d76: PUSH2 0x3869 00002d79: JUMP 00002d7a: JUMPDEST 00002d7b: PUSH1 0x01 00002d7d: SWAP1 00002d7e: SHL 00002d7f: SWAP1 00002d80: POP 00002d81: PUSH1 0x01 00002d83: DUP2 00002d84: PUSH2 0x2d8d 00002d87: SWAP2 00002d88: SWAP1 00002d89: PUSH2 0x3869 00002d8c: JUMP 00002d8d: JUMPDEST 00002d8e: DUP5 00002d8f: GT 00002d90: PUSH2 0x2d99 00002d93: JUMPI 00002d94: POP 00002d95: PUSH2 0x0922 00002d98: JUMP 00002d99: JUMPDEST 00002d9a: DUP1 00002d9b: PUSH1 0x01 00002d9d: EQ 00002d9e: ISZERO 00002d9f: PUSH2 0x2dac 00002da2: JUMPI 00002da3: PUSH1 0x01 00002da5: SWAP2 00002da6: POP 00002da7: POP 00002da8: PUSH2 0x0922 00002dab: JUMP 00002dac: JUMPDEST 00002dad: PUSH1 0x01 00002daf: PUSH2 0x2db8 00002db2: DUP3 00002db3: DUP6 00002db4: PUSH2 0x3869 00002db7: JUMP 00002db8: JUMPDEST 00002db9: GT 00002dba: PUSH2 0x2dc7 00002dbd: JUMPI 00002dbe: PUSH1 0x01 00002dc0: SWAP2 00002dc1: POP 00002dc2: POP 00002dc3: PUSH2 0x0922 00002dc6: JUMP 00002dc7: JUMPDEST 00002dc8: PUSH2 0x2de3 00002dcb: PUSH2 0x2dd4 00002dce: DUP3 00002dcf: DUP7 00002dd0: PUSH2 0x3869 00002dd3: JUMP 00002dd4: JUMPDEST 00002dd5: PUSH2 0x2dde 00002dd8: DUP4 00002dd9: DUP7 00002dda: PUSH2 0x3869 00002ddd: JUMP 00002dde: JUMPDEST 00002ddf: PUSH2 0x2d54 00002de2: JUMP 00002de3: JUMPDEST 00002de4: PUSH2 0x2dee 00002de7: SWAP1 00002de8: PUSH1 0x01 00002dea: PUSH2 0x3a27 00002ded: JUMP 00002dee: JUMPDEST 00002def: SWAP2 00002df0: POP 00002df1: POP 00002df2: PUSH2 0x0922 00002df5: JUMP 00002df6: JUMPDEST 00002df7: PUSH1 0x40 00002df9: MLOAD 00002dfa: PUSH32 0x0100000000000000000000000000000000000000000000000000000000000000 00002e1b: PUSH1 0x20 00002e1d: DUP3 00002e1e: ADD 00002e1f: MSTORE 00002e20: PUSH1 0x21 00002e22: DUP2 00002e23: ADD 00002e24: DUP4 00002e25: SWAP1 00002e26: MSTORE 00002e27: PUSH1 0x41 00002e29: DUP2 00002e2a: ADD 00002e2b: DUP3 00002e2c: SWAP1 00002e2d: MSTORE 00002e2e: PUSH1 0x00 00002e30: SWAP1 00002e31: PUSH2 0x2cc2 00002e34: SWAP1 00002e35: PUSH1 0x61 00002e37: ADD 00002e38: PUSH2 0x258c 00002e3b: JUMP 00002e3c: JUMPDEST 00002e3d: PUSH1 0x00 00002e3f: SLOAD 00002e40: PUSH2 0x0100 00002e43: SWAP1 00002e44: DIV 00002e45: PUSH1 0xff 00002e47: AND 00002e48: PUSH2 0x2eb9 00002e4b: JUMPI 00002e4c: PUSH1 0x40 00002e4e: MLOAD 00002e4f: PUSH3 0x461bcd 00002e53: PUSH1 0xe5 00002e55: SHL 00002e56: DUP2 00002e57: MSTORE 00002e58: PUSH1 0x20 00002e5a: PUSH1 0x04 00002e5c: DUP3 00002e5d: ADD 00002e5e: MSTORE 00002e5f: PUSH1 0x2b 00002e61: PUSH1 0x24 00002e63: DUP3 00002e64: ADD 00002e65: MSTORE 00002e66: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00002e87: PUSH1 0x44 00002e89: DUP3 00002e8a: ADD 00002e8b: MSTORE 00002e8c: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00002ead: PUSH1 0x64 00002eaf: DUP3 00002eb0: ADD 00002eb1: MSTORE 00002eb2: PUSH1 0x84 00002eb4: ADD 00002eb5: PUSH2 0x0ac8 00002eb8: JUMP 00002eb9: JUMPDEST 00002eba: PUSH1 0x33 00002ebc: DUP1 00002ebd: SLOAD 00002ebe: PUSH1 0xff 00002ec0: NOT 00002ec1: AND 00002ec2: SWAP1 00002ec3: SSTORE 00002ec4: JUMP 00002ec5: JUMPDEST 00002ec6: PUSH1 0x00 00002ec8: SLOAD 00002ec9: PUSH2 0x0100 00002ecc: SWAP1 00002ecd: DIV 00002ece: PUSH1 0xff 00002ed0: AND 00002ed1: PUSH2 0x289a 00002ed4: JUMPI 00002ed5: PUSH1 0x40 00002ed7: MLOAD 00002ed8: PUSH3 0x461bcd 00002edc: PUSH1 0xe5 00002ede: SHL 00002edf: DUP2 00002ee0: MSTORE 00002ee1: PUSH1 0x20 00002ee3: PUSH1 0x04 00002ee5: DUP3 00002ee6: ADD 00002ee7: MSTORE 00002ee8: PUSH1 0x2b 00002eea: PUSH1 0x24 00002eec: DUP3 00002eed: ADD 00002eee: MSTORE 00002eef: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00002f10: PUSH1 0x44 00002f12: DUP3 00002f13: ADD 00002f14: MSTORE 00002f15: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00002f36: PUSH1 0x64 00002f38: DUP3 00002f39: ADD 00002f3a: MSTORE 00002f3b: PUSH1 0x84 00002f3d: ADD 00002f3e: PUSH2 0x0ac8 00002f41: JUMP 00002f42: JUMPDEST 00002f43: PUSH1 0x60 00002f45: PUSH1 0x00 00002f47: DUP1 00002f48: DUP6 00002f49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002f5e: AND 00002f5f: DUP6 00002f60: PUSH1 0x40 00002f62: MLOAD 00002f63: PUSH2 0x2f6c 00002f66: SWAP2 00002f67: SWAP1 00002f68: PUSH2 0x3a58 00002f6b: JUMP 00002f6c: JUMPDEST 00002f6d: PUSH1 0x00 00002f6f: PUSH1 0x40 00002f71: MLOAD 00002f72: DUP1 00002f73: DUP4 00002f74: SUB 00002f75: DUP2 00002f76: DUP6 00002f77: GAS 00002f78: DELEGATECALL 00002f79: SWAP2 00002f7a: POP 00002f7b: POP 00002f7c: RETURNDATASIZE 00002f7d: DUP1 00002f7e: PUSH1 0x00 00002f80: DUP2 00002f81: EQ 00002f82: PUSH2 0x2fa7 00002f85: JUMPI 00002f86: PUSH1 0x40 00002f88: MLOAD 00002f89: SWAP2 00002f8a: POP 00002f8b: PUSH1 0x1f 00002f8d: NOT 00002f8e: PUSH1 0x3f 00002f90: RETURNDATASIZE 00002f91: ADD 00002f92: AND 00002f93: DUP3 00002f94: ADD 00002f95: PUSH1 0x40 00002f97: MSTORE 00002f98: RETURNDATASIZE 00002f99: DUP3 00002f9a: MSTORE 00002f9b: RETURNDATASIZE 00002f9c: PUSH1 0x00 00002f9e: PUSH1 0x20 00002fa0: DUP5 00002fa1: ADD 00002fa2: RETURNDATACOPY 00002fa3: PUSH2 0x2fac 00002fa6: JUMP 00002fa7: JUMPDEST 00002fa8: PUSH1 0x60 00002faa: SWAP2 00002fab: POP 00002fac: JUMPDEST 00002fad: POP 00002fae: SWAP2 00002faf: POP 00002fb0: SWAP2 00002fb1: POP 00002fb2: PUSH2 0x2fbd 00002fb5: DUP7 00002fb6: DUP4 00002fb7: DUP4 00002fb8: DUP8 00002fb9: PUSH2 0x30da 00002fbc: JUMP 00002fbd: JUMPDEST 00002fbe: SWAP7 00002fbf: SWAP6 00002fc0: POP 00002fc1: POP 00002fc2: POP 00002fc3: POP 00002fc4: POP 00002fc5: POP 00002fc6: JUMP 00002fc7: JUMPDEST 00002fc8: PUSH1 0x40 00002fca: DUP2 00002fcb: DUP2 00002fcc: ADD 00002fcd: MLOAD 00002fce: PUSH1 0x80 00002fd0: DUP4 00002fd1: ADD 00002fd2: MLOAD 00002fd3: PUSH1 0xa0 00002fd5: DUP5 00002fd6: ADD 00002fd7: MLOAD 00002fd8: PUSH2 0x0140 00002fdb: DUP6 00002fdc: ADD 00002fdd: MLOAD 00002fde: PUSH1 0x60 00002fe0: DUP1 00002fe1: DUP8 00002fe2: ADD 00002fe3: MLOAD 00002fe4: PUSH1 0xe0 00002fe6: DUP1 00002fe7: DUP10 00002fe8: ADD 00002fe9: MLOAD 00002fea: PUSH2 0x0100 00002fed: DUP11 00002fee: ADD 00002fef: MLOAD 00002ff0: PUSH2 0x0120 00002ff3: DUP12 00002ff4: ADD 00002ff5: MLOAD 00002ff6: SWAP10 00002ff7: MLOAD 00002ff8: PUSH1 0xc0 00002ffa: SWAP10 00002ffb: SWAP1 00002ffc: SWAP10 00002ffd: SHL 00002ffe: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 0000301f: AND 00003020: PUSH1 0x20 00003022: DUP11 00003023: ADD 00003024: MSTORE 00003025: SWAP7 00003026: DUP3 00003027: SHL 00003028: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00003049: SWAP1 0000304a: DUP2 0000304b: AND 0000304c: PUSH1 0x28 0000304e: DUP11 0000304f: ADD 00003050: MSTORE 00003051: SWAP6 00003052: DUP3 00003053: SHL 00003054: DUP7 00003055: AND 00003056: PUSH1 0x2c 00003058: DUP10 00003059: ADD 0000305a: MSTORE 0000305b: PUSH1 0xf0 0000305d: SWAP5 0000305e: SWAP1 0000305f: SWAP5 00003060: SHL 00003061: PUSH32 0xffff000000000000000000000000000000000000000000000000000000000000 00003082: AND 00003083: PUSH1 0x30 00003085: DUP9 00003086: ADD 00003087: MSTORE 00003088: SHL 00003089: SWAP1 0000308a: SWAP3 0000308b: AND 0000308c: PUSH1 0x32 0000308e: DUP6 0000308f: ADD 00003090: MSTORE 00003091: PUSH1 0x36 00003093: DUP5 00003094: ADD 00003095: MSTORE 00003096: PUSH1 0x56 00003098: DUP4 00003099: ADD 0000309a: SWAP2 0000309b: SWAP1 0000309c: SWAP2 0000309d: MSTORE 0000309e: PUSH1 0x76 000030a0: DUP3 000030a1: ADD 000030a2: SWAP3 000030a3: SWAP1 000030a4: SWAP3 000030a5: MSTORE 000030a6: PUSH1 0x96 000030a8: ADD 000030a9: PUSH2 0x24cd 000030ac: JUMP 000030ad: JUMPDEST 000030ae: PUSH1 0x00 000030b0: JUMPDEST 000030b1: DUP2 000030b2: DUP2 000030b3: PUSH1 0x01 000030b5: SWAP1 000030b6: SHL 000030b7: LT 000030b8: ISZERO 000030b9: PUSH2 0x30ce 000030bc: JUMPI 000030bd: PUSH2 0x30c7 000030c0: PUSH1 0x01 000030c2: DUP3 000030c3: PUSH2 0x3a27 000030c6: JUMP 000030c7: JUMPDEST 000030c8: SWAP1 000030c9: POP 000030ca: PUSH2 0x30b0 000030cd: JUMP 000030ce: JUMPDEST 000030cf: PUSH2 0x0922 000030d2: DUP2 000030d3: PUSH2 0x0100 000030d6: PUSH2 0x3869 000030d9: JUMP 000030da: JUMPDEST 000030db: PUSH1 0x60 000030dd: DUP4 000030de: ISZERO 000030df: PUSH2 0x3153 000030e2: JUMPI 000030e3: DUP3 000030e4: MLOAD 000030e5: PUSH2 0x314c 000030e8: JUMPI 000030e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000030fe: DUP6 000030ff: AND 00003100: EXTCODESIZE 00003101: PUSH2 0x314c 00003104: JUMPI 00003105: PUSH1 0x40 00003107: MLOAD 00003108: PUSH3 0x461bcd 0000310c: PUSH1 0xe5 0000310e: SHL 0000310f: DUP2 00003110: MSTORE 00003111: PUSH1 0x20 00003113: PUSH1 0x04 00003115: DUP3 00003116: ADD 00003117: MSTORE 00003118: PUSH1 0x1d 0000311a: PUSH1 0x24 0000311c: DUP3 0000311d: ADD 0000311e: MSTORE 0000311f: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00003140: PUSH1 0x44 00003142: DUP3 00003143: ADD 00003144: MSTORE 00003145: PUSH1 0x64 00003147: ADD 00003148: PUSH2 0x0ac8 0000314b: JUMP 0000314c: JUMPDEST 0000314d: POP 0000314e: DUP2 0000314f: PUSH2 0x315d 00003152: JUMP 00003153: JUMPDEST 00003154: PUSH2 0x315d 00003157: DUP4 00003158: DUP4 00003159: PUSH2 0x3165 0000315c: JUMP 0000315d: JUMPDEST 0000315e: SWAP5 0000315f: SWAP4 00003160: POP 00003161: POP 00003162: POP 00003163: POP 00003164: JUMP 00003165: JUMPDEST 00003166: DUP2 00003167: MLOAD 00003168: ISZERO 00003169: PUSH2 0x3175 0000316c: JUMPI 0000316d: DUP2 0000316e: MLOAD 0000316f: DUP1 00003170: DUP4 00003171: PUSH1 0x20 00003173: ADD 00003174: REVERT 00003175: JUMPDEST 00003176: DUP1 00003177: PUSH1 0x40 00003179: MLOAD 0000317a: PUSH3 0x461bcd 0000317e: PUSH1 0xe5 00003180: SHL 00003181: DUP2 00003182: MSTORE 00003183: PUSH1 0x04 00003185: ADD 00003186: PUSH2 0x0ac8 00003189: SWAP2 0000318a: SWAP1 0000318b: PUSH2 0x3b42 0000318e: JUMP 0000318f: JUMPDEST 00003190: PUSH1 0x00 00003192: PUSH1 0x20 00003194: DUP3 00003195: DUP5 00003196: SUB 00003197: SLT 00003198: ISZERO 00003199: PUSH2 0x31a1 0000319c: JUMPI 0000319d: PUSH1 0x00 0000319f: DUP1 000031a0: REVERT 000031a1: JUMPDEST 000031a2: DUP2 000031a3: CALLDATALOAD 000031a4: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000031c5: DUP2 000031c6: AND 000031c7: DUP2 000031c8: EQ 000031c9: PUSH2 0x2cc2 000031cc: JUMPI 000031cd: PUSH1 0x00 000031cf: DUP1 000031d0: REVERT 000031d1: JUMPDEST 000031d2: PUSH1 0x00 000031d4: PUSH1 0x20 000031d6: DUP3 000031d7: DUP5 000031d8: SUB 000031d9: SLT 000031da: ISZERO 000031db: PUSH2 0x31e3 000031de: JUMPI 000031df: PUSH1 0x00 000031e1: DUP1 000031e2: REVERT 000031e3: JUMPDEST 000031e4: POP 000031e5: CALLDATALOAD 000031e6: SWAP2 000031e7: SWAP1 000031e8: POP 000031e9: JUMP 000031ea: JUMPDEST 000031eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003200: DUP2 00003201: AND 00003202: DUP2 00003203: EQ 00003204: PUSH2 0x0dfb 00003207: JUMPI 00003208: PUSH1 0x00 0000320a: DUP1 0000320b: REVERT 0000320c: JUMPDEST 0000320d: PUSH1 0x00 0000320f: PUSH1 0x20 00003211: DUP3 00003212: DUP5 00003213: SUB 00003214: SLT 00003215: ISZERO 00003216: PUSH2 0x321e 00003219: JUMPI 0000321a: PUSH1 0x00 0000321c: DUP1 0000321d: REVERT 0000321e: JUMPDEST 0000321f: DUP2 00003220: CALLDATALOAD 00003221: PUSH2 0x2cc2 00003224: DUP2 00003225: PUSH2 0x31ea 00003228: JUMP 00003229: JUMPDEST 0000322a: PUSH1 0x00 0000322c: DUP1 0000322d: PUSH1 0x00 0000322f: PUSH1 0x40 00003231: DUP5 00003232: DUP7 00003233: SUB 00003234: SLT 00003235: ISZERO 00003236: PUSH2 0x323e 00003239: JUMPI 0000323a: PUSH1 0x00 0000323c: DUP1 0000323d: REVERT 0000323e: JUMPDEST 0000323f: DUP4 00003240: CALLDATALOAD 00003241: SWAP3 00003242: POP 00003243: PUSH1 0x20 00003245: DUP5 00003246: ADD 00003247: CALLDATALOAD 00003248: PUSH8 0xffffffffffffffff 00003251: DUP1 00003252: DUP3 00003253: GT 00003254: ISZERO 00003255: PUSH2 0x325d 00003258: JUMPI 00003259: PUSH1 0x00 0000325b: DUP1 0000325c: REVERT 0000325d: JUMPDEST 0000325e: DUP2 0000325f: DUP7 00003260: ADD 00003261: SWAP2 00003262: POP 00003263: DUP7 00003264: PUSH1 0x1f 00003266: DUP4 00003267: ADD 00003268: SLT 00003269: PUSH2 0x3271 0000326c: JUMPI 0000326d: PUSH1 0x00 0000326f: DUP1 00003270: REVERT 00003271: JUMPDEST 00003272: DUP2 00003273: CALLDATALOAD 00003274: DUP2 00003275: DUP2 00003276: GT 00003277: ISZERO 00003278: PUSH2 0x3280 0000327b: JUMPI 0000327c: PUSH1 0x00 0000327e: DUP1 0000327f: REVERT 00003280: JUMPDEST 00003281: DUP8 00003282: PUSH1 0x20 00003284: DUP3 00003285: DUP6 00003286: ADD 00003287: ADD 00003288: GT 00003289: ISZERO 0000328a: PUSH2 0x3292 0000328d: JUMPI 0000328e: PUSH1 0x00 00003290: DUP1 00003291: REVERT 00003292: JUMPDEST 00003293: PUSH1 0x20 00003295: DUP4 00003296: ADD 00003297: SWAP5 00003298: POP 00003299: DUP1 0000329a: SWAP4 0000329b: POP 0000329c: POP 0000329d: POP 0000329e: POP 0000329f: SWAP3 000032a0: POP 000032a1: SWAP3 000032a2: POP 000032a3: SWAP3 000032a4: JUMP 000032a5: JUMPDEST 000032a6: PUSH1 0x00 000032a8: DUP1 000032a9: PUSH1 0x40 000032ab: DUP4 000032ac: DUP6 000032ad: SUB 000032ae: SLT 000032af: ISZERO 000032b0: PUSH2 0x32b8 000032b3: JUMPI 000032b4: PUSH1 0x00 000032b6: DUP1 000032b7: REVERT 000032b8: JUMPDEST 000032b9: DUP3 000032ba: CALLDATALOAD 000032bb: SWAP2 000032bc: POP 000032bd: PUSH1 0x20 000032bf: DUP4 000032c0: ADD 000032c1: CALLDATALOAD 000032c2: PUSH2 0x32ca 000032c5: DUP2 000032c6: PUSH2 0x31ea 000032c9: JUMP 000032ca: JUMPDEST 000032cb: DUP1 000032cc: SWAP2 000032cd: POP 000032ce: POP 000032cf: SWAP3 000032d0: POP 000032d1: SWAP3 000032d2: SWAP1 000032d3: POP 000032d4: JUMP 000032d5: JUMPDEST 000032d6: PUSH1 0x00 000032d8: PUSH2 0x0160 000032db: DUP3 000032dc: DUP5 000032dd: SUB 000032de: SLT 000032df: ISZERO 000032e0: PUSH2 0x32e8 000032e3: JUMPI 000032e4: PUSH1 0x00 000032e6: DUP1 000032e7: REVERT 000032e8: JUMPDEST 000032e9: POP 000032ea: SWAP2 000032eb: SWAP1 000032ec: POP 000032ed: JUMP 000032ee: JUMPDEST 000032ef: PUSH1 0x00 000032f1: PUSH1 0x40 000032f3: DUP3 000032f4: DUP5 000032f5: SUB 000032f6: SLT 000032f7: ISZERO 000032f8: PUSH2 0x32e8 000032fb: JUMPI 000032fc: PUSH1 0x00 000032fe: DUP1 000032ff: REVERT 00003300: JUMPDEST 00003301: PUSH1 0x00 00003303: DUP1 00003304: PUSH1 0x00 00003306: DUP1 00003307: PUSH1 0x00 00003309: DUP6 0000330a: DUP8 0000330b: SUB 0000330c: PUSH2 0x0240 0000330f: DUP2 00003310: SLT 00003311: ISZERO 00003312: PUSH2 0x331a 00003315: JUMPI 00003316: PUSH1 0x00 00003318: DUP1 00003319: REVERT 0000331a: JUMPDEST 0000331b: DUP7 0000331c: CALLDATALOAD 0000331d: PUSH8 0xffffffffffffffff 00003326: DUP1 00003327: DUP3 00003328: GT 00003329: ISZERO 0000332a: PUSH2 0x3332 0000332d: JUMPI 0000332e: PUSH1 0x00 00003330: DUP1 00003331: REVERT 00003332: JUMPDEST 00003333: SWAP1 00003334: DUP9 00003335: ADD 00003336: SWAP1 00003337: PUSH1 0xa0 00003339: DUP3 0000333a: DUP12 0000333b: SUB 0000333c: SLT 0000333d: ISZERO 0000333e: PUSH2 0x3346 00003341: JUMPI 00003342: PUSH1 0x00 00003344: DUP1 00003345: REVERT 00003346: JUMPDEST 00003347: DUP2 00003348: SWAP8 00003349: POP 0000334a: PUSH1 0x80 0000334c: PUSH1 0x1f 0000334e: NOT 0000334f: DUP5 00003350: ADD 00003351: SLT 00003352: ISZERO 00003353: PUSH2 0x335b 00003356: JUMPI 00003357: PUSH1 0x00 00003359: DUP1 0000335a: REVERT 0000335b: JUMPDEST 0000335c: PUSH1 0x20 0000335e: DUP10 0000335f: ADD 00003360: SWAP7 00003361: POP 00003362: PUSH2 0x336e 00003365: DUP11 00003366: PUSH1 0xa0 00003368: DUP12 00003369: ADD 0000336a: PUSH2 0x32d5 0000336d: JUMP 0000336e: JUMPDEST 0000336f: SWAP6 00003370: POP 00003371: PUSH2 0x0200 00003374: DUP10 00003375: ADD 00003376: CALLDATALOAD 00003377: SWAP3 00003378: POP 00003379: DUP1 0000337a: DUP4 0000337b: GT 0000337c: ISZERO 0000337d: PUSH2 0x3385 00003380: JUMPI 00003381: PUSH1 0x00 00003383: DUP1 00003384: REVERT 00003385: JUMPDEST 00003386: PUSH2 0x3391 00003389: DUP11 0000338a: DUP5 0000338b: DUP12 0000338c: ADD 0000338d: PUSH2 0x32ee 00003390: JUMP 00003391: JUMPDEST 00003392: SWAP5 00003393: POP 00003394: PUSH2 0x0220 00003397: DUP10 00003398: ADD 00003399: CALLDATALOAD 0000339a: SWAP3 0000339b: POP 0000339c: DUP1 0000339d: DUP4 0000339e: GT 0000339f: ISZERO 000033a0: PUSH2 0x33a8 000033a3: JUMPI 000033a4: PUSH1 0x00 000033a6: DUP1 000033a7: REVERT 000033a8: JUMPDEST 000033a9: POP 000033aa: POP 000033ab: PUSH2 0x33b6 000033ae: DUP9 000033af: DUP3 000033b0: DUP10 000033b1: ADD 000033b2: PUSH2 0x32ee 000033b5: JUMP 000033b6: JUMPDEST 000033b7: SWAP2 000033b8: POP 000033b9: POP 000033ba: SWAP3 000033bb: SWAP6 000033bc: POP 000033bd: SWAP3 000033be: SWAP6 000033bf: SWAP1 000033c0: SWAP4 000033c1: POP 000033c2: JUMP 000033c3: JUMPDEST 000033c4: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000033e5: PUSH1 0x00 000033e7: MSTORE 000033e8: PUSH1 0x41 000033ea: PUSH1 0x04 000033ec: MSTORE 000033ed: PUSH1 0x24 000033ef: PUSH1 0x00 000033f1: REVERT 000033f2: JUMPDEST 000033f3: PUSH1 0x40 000033f5: MLOAD 000033f6: PUSH2 0x0160 000033f9: DUP2 000033fa: ADD 000033fb: PUSH8 0xffffffffffffffff 00003404: DUP2 00003405: GT 00003406: DUP3 00003407: DUP3 00003408: LT 00003409: OR 0000340a: ISZERO 0000340b: PUSH2 0x3416 0000340e: JUMPI 0000340f: PUSH2 0x3416 00003412: PUSH2 0x33c3 00003415: JUMP 00003416: JUMPDEST 00003417: PUSH1 0x40 00003419: MSTORE 0000341a: SWAP1 0000341b: JUMP 0000341c: JUMPDEST 0000341d: PUSH1 0x40 0000341f: MLOAD 00003420: PUSH1 0x1f 00003422: DUP3 00003423: ADD 00003424: PUSH1 0x1f 00003426: NOT 00003427: AND 00003428: DUP2 00003429: ADD 0000342a: PUSH8 0xffffffffffffffff 00003433: DUP2 00003434: GT 00003435: DUP3 00003436: DUP3 00003437: LT 00003438: OR 00003439: ISZERO 0000343a: PUSH2 0x3445 0000343d: JUMPI 0000343e: PUSH2 0x3445 00003441: PUSH2 0x33c3 00003444: JUMP 00003445: JUMPDEST 00003446: PUSH1 0x40 00003448: MSTORE 00003449: SWAP2 0000344a: SWAP1 0000344b: POP 0000344c: JUMP 0000344d: JUMPDEST 0000344e: PUSH1 0x00 00003450: DUP1 00003451: PUSH1 0x40 00003453: DUP4 00003454: DUP6 00003455: SUB 00003456: SLT 00003457: ISZERO 00003458: PUSH2 0x3460 0000345b: JUMPI 0000345c: PUSH1 0x00 0000345e: DUP1 0000345f: REVERT 00003460: JUMPDEST 00003461: DUP3 00003462: CALLDATALOAD 00003463: PUSH2 0x346b 00003466: DUP2 00003467: PUSH2 0x31ea 0000346a: JUMP 0000346b: JUMPDEST 0000346c: SWAP2 0000346d: POP 0000346e: PUSH1 0x20 00003470: DUP4 00003471: DUP2 00003472: ADD 00003473: CALLDATALOAD 00003474: PUSH8 0xffffffffffffffff 0000347d: DUP1 0000347e: DUP3 0000347f: GT 00003480: ISZERO 00003481: PUSH2 0x3489 00003484: JUMPI 00003485: PUSH1 0x00 00003487: DUP1 00003488: REVERT 00003489: JUMPDEST 0000348a: DUP2 0000348b: DUP7 0000348c: ADD 0000348d: SWAP2 0000348e: POP 0000348f: DUP7 00003490: PUSH1 0x1f 00003492: DUP4 00003493: ADD 00003494: SLT 00003495: PUSH2 0x349d 00003498: JUMPI 00003499: PUSH1 0x00 0000349b: DUP1 0000349c: REVERT 0000349d: JUMPDEST 0000349e: DUP2 0000349f: CALLDATALOAD 000034a0: DUP2 000034a1: DUP2 000034a2: GT 000034a3: ISZERO 000034a4: PUSH2 0x34af 000034a7: JUMPI 000034a8: PUSH2 0x34af 000034ab: PUSH2 0x33c3 000034ae: JUMP 000034af: JUMPDEST 000034b0: PUSH2 0x34c1 000034b3: DUP5 000034b4: PUSH1 0x1f 000034b6: NOT 000034b7: PUSH1 0x1f 000034b9: DUP5 000034ba: ADD 000034bb: AND 000034bc: ADD 000034bd: PUSH2 0x341c 000034c0: JUMP 000034c1: JUMPDEST 000034c2: SWAP2 000034c3: POP 000034c4: DUP1 000034c5: DUP3 000034c6: MSTORE 000034c7: DUP8 000034c8: DUP5 000034c9: DUP3 000034ca: DUP6 000034cb: ADD 000034cc: ADD 000034cd: GT 000034ce: ISZERO 000034cf: PUSH2 0x34d7 000034d2: JUMPI 000034d3: PUSH1 0x00 000034d5: DUP1 000034d6: REVERT 000034d7: JUMPDEST 000034d8: DUP1 000034d9: DUP5 000034da: DUP5 000034db: ADD 000034dc: DUP6 000034dd: DUP5 000034de: ADD 000034df: CALLDATACOPY 000034e0: PUSH1 0x00 000034e2: DUP5 000034e3: DUP3 000034e4: DUP5 000034e5: ADD 000034e6: ADD 000034e7: MSTORE 000034e8: POP 000034e9: DUP1 000034ea: SWAP4 000034eb: POP 000034ec: POP 000034ed: POP 000034ee: POP 000034ef: SWAP3 000034f0: POP 000034f1: SWAP3 000034f2: SWAP1 000034f3: POP 000034f4: JUMP 000034f5: JUMPDEST 000034f6: DUP1 000034f7: ISZERO 000034f8: ISZERO 000034f9: DUP2 000034fa: EQ 000034fb: PUSH2 0x0dfb 000034fe: JUMPI 000034ff: PUSH1 0x00 00003501: DUP1 00003502: REVERT 00003503: JUMPDEST 00003504: PUSH1 0x00 00003506: PUSH1 0x20 00003508: DUP3 00003509: DUP5 0000350a: SUB 0000350b: SLT 0000350c: ISZERO 0000350d: PUSH2 0x3515 00003510: JUMPI 00003511: PUSH1 0x00 00003513: DUP1 00003514: REVERT 00003515: JUMPDEST 00003516: DUP2 00003517: CALLDATALOAD 00003518: PUSH2 0x2cc2 0000351b: DUP2 0000351c: PUSH2 0x34f5 0000351f: JUMP 00003520: JUMPDEST 00003521: PUSH1 0x00 00003523: DUP1 00003524: PUSH1 0x40 00003526: DUP4 00003527: DUP6 00003528: SUB 00003529: SLT 0000352a: ISZERO 0000352b: PUSH2 0x3533 0000352e: JUMPI 0000352f: PUSH1 0x00 00003531: DUP1 00003532: REVERT 00003533: JUMPDEST 00003534: DUP3 00003535: CALLDATALOAD 00003536: PUSH2 0x353e 00003539: DUP2 0000353a: PUSH2 0x31ea 0000353d: JUMP 0000353e: JUMPDEST 0000353f: SWAP5 00003540: PUSH1 0x20 00003542: SWAP4 00003543: SWAP1 00003544: SWAP4 00003545: ADD 00003546: CALLDATALOAD 00003547: SWAP4 00003548: POP 00003549: POP 0000354a: POP 0000354b: JUMP 0000354c: JUMPDEST 0000354d: DUP1 0000354e: CALLDATALOAD 0000354f: PUSH4 0xffffffff 00003554: DUP2 00003555: AND 00003556: DUP2 00003557: EQ 00003558: PUSH2 0x3560 0000355b: JUMPI 0000355c: PUSH1 0x00 0000355e: DUP1 0000355f: REVERT 00003560: JUMPDEST 00003561: SWAP2 00003562: SWAP1 00003563: POP 00003564: JUMP 00003565: JUMPDEST 00003566: DUP1 00003567: CALLDATALOAD 00003568: PUSH8 0xffffffffffffffff 00003571: DUP2 00003572: AND 00003573: DUP2 00003574: EQ 00003575: PUSH2 0x3560 00003578: JUMPI 00003579: PUSH1 0x00 0000357b: DUP1 0000357c: REVERT 0000357d: JUMPDEST 0000357e: PUSH1 0x00 00003580: PUSH1 0x80 00003582: DUP3 00003583: DUP5 00003584: SUB 00003585: SLT 00003586: ISZERO 00003587: PUSH2 0x358f 0000358a: JUMPI 0000358b: PUSH1 0x00 0000358d: DUP1 0000358e: REVERT 0000358f: JUMPDEST 00003590: PUSH1 0x40 00003592: MLOAD 00003593: PUSH1 0x80 00003595: DUP2 00003596: ADD 00003597: DUP2 00003598: DUP2 00003599: LT 0000359a: PUSH8 0xffffffffffffffff 000035a3: DUP3 000035a4: GT 000035a5: OR 000035a6: ISZERO 000035a7: PUSH2 0x35b2 000035aa: JUMPI 000035ab: PUSH2 0x35b2 000035ae: PUSH2 0x33c3 000035b1: JUMP 000035b2: JUMPDEST 000035b3: PUSH1 0x40 000035b5: MSTORE 000035b6: DUP3 000035b7: CALLDATALOAD 000035b8: DUP2 000035b9: MSTORE 000035ba: PUSH2 0x35c5 000035bd: PUSH1 0x20 000035bf: DUP5 000035c0: ADD 000035c1: PUSH2 0x354c 000035c4: JUMP 000035c5: JUMPDEST 000035c6: PUSH1 0x20 000035c8: DUP3 000035c9: ADD 000035ca: MSTORE 000035cb: PUSH2 0x35d6 000035ce: PUSH1 0x40 000035d0: DUP5 000035d1: ADD 000035d2: PUSH2 0x3565 000035d5: JUMP 000035d6: JUMPDEST 000035d7: PUSH1 0x40 000035d9: DUP3 000035da: ADD 000035db: MSTORE 000035dc: PUSH1 0x60 000035de: DUP4 000035df: ADD 000035e0: CALLDATALOAD 000035e1: PUSH1 0x60 000035e3: DUP3 000035e4: ADD 000035e5: MSTORE 000035e6: DUP1 000035e7: SWAP2 000035e8: POP 000035e9: POP 000035ea: SWAP3 000035eb: SWAP2 000035ec: POP 000035ed: POP 000035ee: JUMP 000035ef: JUMPDEST 000035f0: PUSH1 0x00 000035f2: PUSH1 0x20 000035f4: DUP3 000035f5: DUP5 000035f6: SUB 000035f7: SLT 000035f8: ISZERO 000035f9: PUSH2 0x3601 000035fc: JUMPI 000035fd: PUSH1 0x00 000035ff: DUP1 00003600: REVERT 00003601: JUMPDEST 00003602: PUSH2 0x2cc2 00003605: DUP3 00003606: PUSH2 0x354c 00003609: JUMP 0000360a: JUMPDEST 0000360b: PUSH1 0x00 0000360d: PUSH1 0x20 0000360f: DUP3 00003610: DUP5 00003611: SUB 00003612: SLT 00003613: ISZERO 00003614: PUSH2 0x361c 00003617: JUMPI 00003618: PUSH1 0x00 0000361a: DUP1 0000361b: REVERT 0000361c: JUMPDEST 0000361d: DUP2 0000361e: MLOAD 0000361f: PUSH2 0x2cc2 00003622: DUP2 00003623: PUSH2 0x34f5 00003626: JUMP 00003627: JUMPDEST 00003628: DUP1 00003629: CALLDATALOAD 0000362a: PUSH2 0xffff 0000362d: DUP2 0000362e: AND 0000362f: DUP2 00003630: EQ 00003631: PUSH2 0x3560 00003634: JUMPI 00003635: PUSH1 0x00 00003637: DUP1 00003638: REVERT 00003639: JUMPDEST 0000363a: PUSH1 0x00 0000363c: PUSH2 0x0160 0000363f: DUP3 00003640: DUP5 00003641: SUB 00003642: SLT 00003643: ISZERO 00003644: PUSH2 0x364c 00003647: JUMPI 00003648: PUSH1 0x00 0000364a: DUP1 0000364b: REVERT 0000364c: JUMPDEST 0000364d: PUSH2 0x3654 00003650: PUSH2 0x33f2 00003653: JUMP 00003654: JUMPDEST 00003655: DUP3 00003656: CALLDATALOAD 00003657: DUP2 00003658: MSTORE 00003659: PUSH2 0x3664 0000365c: PUSH1 0x20 0000365e: DUP5 0000365f: ADD 00003660: PUSH2 0x3565 00003663: JUMP 00003664: JUMPDEST 00003665: PUSH1 0x20 00003667: DUP3 00003668: ADD 00003669: MSTORE 0000366a: PUSH2 0x3675 0000366d: PUSH1 0x40 0000366f: DUP5 00003670: ADD 00003671: PUSH2 0x3565 00003674: JUMP 00003675: JUMPDEST 00003676: PUSH1 0x40 00003678: DUP3 00003679: ADD 0000367a: MSTORE 0000367b: PUSH2 0x3686 0000367e: PUSH1 0x60 00003680: DUP5 00003681: ADD 00003682: PUSH2 0x354c 00003685: JUMP 00003686: JUMPDEST 00003687: PUSH1 0x60 00003689: DUP3 0000368a: ADD 0000368b: MSTORE 0000368c: PUSH2 0x3697 0000368f: PUSH1 0x80 00003691: DUP5 00003692: ADD 00003693: PUSH2 0x354c 00003696: JUMP 00003697: JUMPDEST 00003698: PUSH1 0x80 0000369a: DUP3 0000369b: ADD 0000369c: MSTORE 0000369d: PUSH2 0x36a8 000036a0: PUSH1 0xa0 000036a2: DUP5 000036a3: ADD 000036a4: PUSH2 0x354c 000036a7: JUMP 000036a8: JUMPDEST 000036a9: PUSH1 0xa0 000036ab: DUP3 000036ac: ADD 000036ad: MSTORE 000036ae: PUSH2 0x36b9 000036b1: PUSH1 0xc0 000036b3: DUP5 000036b4: ADD 000036b5: PUSH2 0x354c 000036b8: JUMP 000036b9: JUMPDEST 000036ba: PUSH1 0xc0 000036bc: DUP3 000036bd: ADD 000036be: MSTORE 000036bf: PUSH1 0xe0 000036c1: DUP4 000036c2: DUP2 000036c3: ADD 000036c4: CALLDATALOAD 000036c5: SWAP1 000036c6: DUP3 000036c7: ADD 000036c8: MSTORE 000036c9: PUSH2 0x0100 000036cc: DUP1 000036cd: DUP5 000036ce: ADD 000036cf: CALLDATALOAD 000036d0: SWAP1 000036d1: DUP3 000036d2: ADD 000036d3: MSTORE 000036d4: PUSH2 0x0120 000036d7: DUP1 000036d8: DUP5 000036d9: ADD 000036da: CALLDATALOAD 000036db: SWAP1 000036dc: DUP3 000036dd: ADD 000036de: MSTORE 000036df: PUSH2 0x0140 000036e2: PUSH2 0x36ec 000036e5: DUP2 000036e6: DUP6 000036e7: ADD 000036e8: PUSH2 0x3627 000036eb: JUMP 000036ec: JUMPDEST 000036ed: SWAP1 000036ee: DUP3 000036ef: ADD 000036f0: MSTORE 000036f1: SWAP4 000036f2: SWAP3 000036f3: POP 000036f4: POP 000036f5: POP 000036f6: JUMP 000036f7: JUMPDEST 000036f8: PUSH1 0x00 000036fa: DUP1 000036fb: DUP4 000036fc: CALLDATALOAD 000036fd: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1 0000371e: DUP5 0000371f: CALLDATASIZE 00003720: SUB 00003721: ADD 00003722: DUP2 00003723: SLT 00003724: PUSH2 0x372c 00003727: JUMPI 00003728: PUSH1 0x00 0000372a: DUP1 0000372b: REVERT 0000372c: JUMPDEST 0000372d: DUP4 0000372e: ADD 0000372f: DUP1 00003730: CALLDATALOAD 00003731: SWAP2 00003732: POP 00003733: PUSH8 0xffffffffffffffff 0000373c: DUP3 0000373d: GT 0000373e: ISZERO 0000373f: PUSH2 0x3747 00003742: JUMPI 00003743: PUSH1 0x00 00003745: DUP1 00003746: REVERT 00003747: JUMPDEST 00003748: PUSH1 0x20 0000374a: ADD 0000374b: SWAP2 0000374c: POP 0000374d: PUSH1 0x05 0000374f: DUP2 00003750: SWAP1 00003751: SHL 00003752: CALLDATASIZE 00003753: SUB 00003754: DUP3 00003755: SGT 00003756: ISZERO 00003757: PUSH2 0x375f 0000375a: JUMPI 0000375b: PUSH1 0x00 0000375d: DUP1 0000375e: REVERT 0000375f: JUMPDEST 00003760: SWAP3 00003761: POP 00003762: SWAP3 00003763: SWAP1 00003764: POP 00003765: JUMP 00003766: JUMPDEST 00003767: PUSH1 0x00 00003769: PUSH1 0x20 0000376b: DUP3 0000376c: DUP5 0000376d: SUB 0000376e: SLT 0000376f: ISZERO 00003770: PUSH2 0x3778 00003773: JUMPI 00003774: PUSH1 0x00 00003776: DUP1 00003777: REVERT 00003778: JUMPDEST 00003779: PUSH2 0x2cc2 0000377c: DUP3 0000377d: PUSH2 0x3565 00003780: JUMP 00003781: JUMPDEST 00003782: PUSH1 0x00 00003784: DUP1 00003785: DUP4 00003786: CALLDATALOAD 00003787: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1 000037a8: DUP5 000037a9: CALLDATASIZE 000037aa: SUB 000037ab: ADD 000037ac: DUP2 000037ad: SLT 000037ae: PUSH2 0x37b6 000037b1: JUMPI 000037b2: PUSH1 0x00 000037b4: DUP1 000037b5: REVERT 000037b6: JUMPDEST 000037b7: DUP4 000037b8: ADD 000037b9: DUP1 000037ba: CALLDATALOAD 000037bb: SWAP2 000037bc: POP 000037bd: PUSH8 0xffffffffffffffff 000037c6: DUP3 000037c7: GT 000037c8: ISZERO 000037c9: PUSH2 0x37d1 000037cc: JUMPI 000037cd: PUSH1 0x00 000037cf: DUP1 000037d0: REVERT 000037d1: JUMPDEST 000037d2: PUSH1 0x20 000037d4: ADD 000037d5: SWAP2 000037d6: POP 000037d7: CALLDATASIZE 000037d8: DUP2 000037d9: SWAP1 000037da: SUB 000037db: DUP3 000037dc: SGT 000037dd: ISZERO 000037de: PUSH2 0x375f 000037e1: JUMPI 000037e2: PUSH1 0x00 000037e4: DUP1 000037e5: REVERT 000037e6: JUMPDEST 000037e7: DUP7 000037e8: DUP2 000037e9: MSTORE 000037ea: DUP6 000037eb: PUSH1 0x20 000037ed: DUP3 000037ee: ADD 000037ef: MSTORE 000037f0: DUP5 000037f1: PUSH1 0x40 000037f3: DUP3 000037f4: ADD 000037f5: MSTORE 000037f6: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 00003817: DUP5 00003818: PUSH1 0xc0 0000381a: SHL 0000381b: AND 0000381c: PUSH1 0x60 0000381e: DUP3 0000381f: ADD 00003820: MSTORE 00003821: DUP2 00003822: DUP4 00003823: PUSH1 0x68 00003825: DUP4 00003826: ADD 00003827: CALLDATACOPY 00003828: PUSH1 0x00 0000382a: SWAP2 0000382b: ADD 0000382c: PUSH1 0x68 0000382e: ADD 0000382f: SWAP1 00003830: DUP2 00003831: MSTORE 00003832: SWAP6 00003833: SWAP5 00003834: POP 00003835: POP 00003836: POP 00003837: POP 00003838: POP 00003839: JUMP 0000383a: JUMPDEST 0000383b: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0000385c: PUSH1 0x00 0000385e: MSTORE 0000385f: PUSH1 0x11 00003861: PUSH1 0x04 00003863: MSTORE 00003864: PUSH1 0x24 00003866: PUSH1 0x00 00003868: REVERT 00003869: JUMPDEST 0000386a: PUSH1 0x00 0000386c: DUP3 0000386d: DUP3 0000386e: LT 0000386f: ISZERO 00003870: PUSH2 0x387b 00003873: JUMPI 00003874: PUSH2 0x387b 00003877: PUSH2 0x383a 0000387a: JUMP 0000387b: JUMPDEST 0000387c: POP 0000387d: SUB 0000387e: SWAP1 0000387f: JUMP 00003880: JUMPDEST 00003881: PUSH1 0x01 00003883: DUP2 00003884: DUP2 00003885: JUMPDEST 00003886: DUP1 00003887: DUP6 00003888: GT 00003889: ISZERO 0000388a: PUSH2 0x38d9 0000388d: JUMPI 0000388e: DUP2 0000388f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000038b0: DIV 000038b1: DUP3 000038b2: GT 000038b3: ISZERO 000038b4: PUSH2 0x38bf 000038b7: JUMPI 000038b8: PUSH2 0x38bf 000038bb: PUSH2 0x383a 000038be: JUMP 000038bf: JUMPDEST 000038c0: DUP1 000038c1: DUP6 000038c2: AND 000038c3: ISZERO 000038c4: PUSH2 0x38cc 000038c7: JUMPI 000038c8: SWAP2 000038c9: DUP2 000038ca: MUL 000038cb: SWAP2 000038cc: JUMPDEST 000038cd: SWAP4 000038ce: DUP5 000038cf: SHR 000038d0: SWAP4 000038d1: SWAP1 000038d2: DUP1 000038d3: MUL 000038d4: SWAP1 000038d5: PUSH2 0x3885 000038d8: JUMP 000038d9: JUMPDEST 000038da: POP 000038db: SWAP3 000038dc: POP 000038dd: SWAP3 000038de: SWAP1 000038df: POP 000038e0: JUMP 000038e1: JUMPDEST 000038e2: PUSH1 0x00 000038e4: DUP3 000038e5: PUSH2 0x38f0 000038e8: JUMPI 000038e9: POP 000038ea: PUSH1 0x01 000038ec: PUSH2 0x0922 000038ef: JUMP 000038f0: JUMPDEST 000038f1: DUP2 000038f2: PUSH2 0x38fd 000038f5: JUMPI 000038f6: POP 000038f7: PUSH1 0x00 000038f9: PUSH2 0x0922 000038fc: JUMP 000038fd: JUMPDEST 000038fe: DUP2 000038ff: PUSH1 0x01 00003901: DUP2 00003902: EQ 00003903: PUSH2 0x3913 00003906: JUMPI 00003907: PUSH1 0x02 00003909: DUP2 0000390a: EQ 0000390b: PUSH2 0x391d 0000390e: JUMPI 0000390f: PUSH2 0x3939 00003912: JUMP 00003913: JUMPDEST 00003914: PUSH1 0x01 00003916: SWAP2 00003917: POP 00003918: POP 00003919: PUSH2 0x0922 0000391c: JUMP 0000391d: JUMPDEST 0000391e: PUSH1 0xff 00003920: DUP5 00003921: GT 00003922: ISZERO 00003923: PUSH2 0x392e 00003926: JUMPI 00003927: PUSH2 0x392e 0000392a: PUSH2 0x383a 0000392d: JUMP 0000392e: JUMPDEST 0000392f: POP 00003930: POP 00003931: PUSH1 0x01 00003933: DUP3 00003934: SHL 00003935: PUSH2 0x0922 00003938: JUMP 00003939: JUMPDEST 0000393a: POP 0000393b: PUSH1 0x20 0000393d: DUP4 0000393e: LT 0000393f: PUSH2 0x0133 00003942: DUP4 00003943: LT 00003944: AND 00003945: PUSH1 0x4e 00003947: DUP5 00003948: LT 00003949: PUSH1 0x0b 0000394b: DUP5 0000394c: LT 0000394d: AND 0000394e: OR 0000394f: ISZERO 00003950: PUSH2 0x395c 00003953: JUMPI 00003954: POP 00003955: DUP2 00003956: DUP2 00003957: EXP 00003958: PUSH2 0x0922 0000395b: JUMP 0000395c: JUMPDEST 0000395d: PUSH2 0x3966 00003960: DUP4 00003961: DUP4 00003962: PUSH2 0x3880 00003965: JUMP 00003966: JUMPDEST 00003967: DUP1 00003968: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003989: DIV 0000398a: DUP3 0000398b: GT 0000398c: ISZERO 0000398d: PUSH2 0x3998 00003990: JUMPI 00003991: PUSH2 0x3998 00003994: PUSH2 0x383a 00003997: JUMP 00003998: JUMPDEST 00003999: MUL 0000399a: SWAP4 0000399b: SWAP3 0000399c: POP 0000399d: POP 0000399e: POP 0000399f: JUMP 000039a0: JUMPDEST 000039a1: PUSH1 0x00 000039a3: PUSH2 0x2cc2 000039a6: DUP4 000039a7: DUP4 000039a8: PUSH2 0x38e1 000039ab: JUMP 000039ac: JUMPDEST 000039ad: PUSH1 0x00 000039af: JUMPDEST 000039b0: DUP4 000039b1: DUP2 000039b2: LT 000039b3: ISZERO 000039b4: PUSH2 0x39c7 000039b7: JUMPI 000039b8: DUP2 000039b9: DUP2 000039ba: ADD 000039bb: MLOAD 000039bc: DUP4 000039bd: DUP3 000039be: ADD 000039bf: MSTORE 000039c0: PUSH1 0x20 000039c2: ADD 000039c3: PUSH2 0x39af 000039c6: JUMP 000039c7: JUMPDEST 000039c8: DUP4 000039c9: DUP2 000039ca: GT 000039cb: ISZERO 000039cc: PUSH2 0x243e 000039cf: JUMPI 000039d0: POP 000039d1: POP 000039d2: PUSH1 0x00 000039d4: SWAP2 000039d5: ADD 000039d6: MSTORE 000039d7: JUMP 000039d8: JUMPDEST 000039d9: PUSH1 0x00 000039db: DUP2 000039dc: MLOAD 000039dd: DUP1 000039de: DUP5 000039df: MSTORE 000039e0: PUSH2 0x39f0 000039e3: DUP2 000039e4: PUSH1 0x20 000039e6: DUP7 000039e7: ADD 000039e8: PUSH1 0x20 000039ea: DUP7 000039eb: ADD 000039ec: PUSH2 0x39ac 000039ef: JUMP 000039f0: JUMPDEST 000039f1: PUSH1 0x1f 000039f3: ADD 000039f4: PUSH1 0x1f 000039f6: NOT 000039f7: AND 000039f8: SWAP3 000039f9: SWAP1 000039fa: SWAP3 000039fb: ADD 000039fc: PUSH1 0x20 000039fe: ADD 000039ff: SWAP3 00003a00: SWAP2 00003a01: POP 00003a02: POP 00003a03: JUMP 00003a04: JUMPDEST 00003a05: PUSH8 0xffffffffffffffff 00003a0e: DUP4 00003a0f: AND 00003a10: DUP2 00003a11: MSTORE 00003a12: PUSH1 0x40 00003a14: PUSH1 0x20 00003a16: DUP3 00003a17: ADD 00003a18: MSTORE 00003a19: PUSH1 0x00 00003a1b: PUSH2 0x315d 00003a1e: PUSH1 0x40 00003a20: DUP4 00003a21: ADD 00003a22: DUP5 00003a23: PUSH2 0x39d8 00003a26: JUMP 00003a27: JUMPDEST 00003a28: PUSH1 0x00 00003a2a: DUP3 00003a2b: NOT 00003a2c: DUP3 00003a2d: GT 00003a2e: ISZERO 00003a2f: PUSH2 0x3a3a 00003a32: JUMPI 00003a33: PUSH2 0x3a3a 00003a36: PUSH2 0x383a 00003a39: JUMP 00003a3a: JUMPDEST 00003a3b: POP 00003a3c: ADD 00003a3d: SWAP1 00003a3e: JUMP 00003a3f: JUMPDEST 00003a40: PUSH1 0x00 00003a42: PUSH1 0x20 00003a44: DUP3 00003a45: DUP5 00003a46: SUB 00003a47: SLT 00003a48: ISZERO 00003a49: PUSH2 0x3a51 00003a4c: JUMPI 00003a4d: PUSH1 0x00 00003a4f: DUP1 00003a50: REVERT 00003a51: JUMPDEST 00003a52: POP 00003a53: MLOAD 00003a54: SWAP2 00003a55: SWAP1 00003a56: POP 00003a57: JUMP 00003a58: JUMPDEST 00003a59: PUSH1 0x00 00003a5b: DUP3 00003a5c: MLOAD 00003a5d: PUSH2 0x3a6a 00003a60: DUP2 00003a61: DUP5 00003a62: PUSH1 0x20 00003a64: DUP8 00003a65: ADD 00003a66: PUSH2 0x39ac 00003a69: JUMP 00003a6a: JUMPDEST 00003a6b: SWAP2 00003a6c: SWAP1 00003a6d: SWAP2 00003a6e: ADD 00003a6f: SWAP3 00003a70: SWAP2 00003a71: POP 00003a72: POP 00003a73: JUMP 00003a74: JUMPDEST 00003a75: PUSH1 0x00 00003a77: DUP2 00003a78: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003a99: DIV 00003a9a: DUP4 00003a9b: GT 00003a9c: DUP3 00003a9d: ISZERO 00003a9e: ISZERO 00003a9f: AND 00003aa0: ISZERO 00003aa1: PUSH2 0x3aac 00003aa4: JUMPI 00003aa5: PUSH2 0x3aac 00003aa8: PUSH2 0x383a 00003aab: JUMP 00003aac: JUMPDEST 00003aad: POP 00003aae: MUL 00003aaf: SWAP1 00003ab0: JUMP 00003ab1: JUMPDEST 00003ab2: DUP2 00003ab3: DUP4 00003ab4: DUP3 00003ab5: CALLDATACOPY 00003ab6: PUSH1 0x00 00003ab8: SWAP2 00003ab9: ADD 00003aba: SWAP1 00003abb: DUP2 00003abc: MSTORE 00003abd: SWAP2 00003abe: SWAP1 00003abf: POP 00003ac0: JUMP 00003ac1: JUMPDEST 00003ac2: PUSH32 0x416363657373436f6e74726f6c3a206163636f756e7420000000000000000000 00003ae3: DUP2 00003ae4: MSTORE 00003ae5: PUSH1 0x00 00003ae7: DUP4 00003ae8: MLOAD 00003ae9: PUSH2 0x3af9 00003aec: DUP2 00003aed: PUSH1 0x17 00003aef: DUP6 00003af0: ADD 00003af1: PUSH1 0x20 00003af3: DUP9 00003af4: ADD 00003af5: PUSH2 0x39ac 00003af8: JUMP 00003af9: JUMPDEST 00003afa: PUSH32 0x206973206d697373696e6720726f6c6520000000000000000000000000000000 00003b1b: PUSH1 0x17 00003b1d: SWAP2 00003b1e: DUP5 00003b1f: ADD 00003b20: SWAP2 00003b21: DUP3 00003b22: ADD 00003b23: MSTORE 00003b24: DUP4 00003b25: MLOAD 00003b26: PUSH2 0x3b36 00003b29: DUP2 00003b2a: PUSH1 0x28 00003b2c: DUP5 00003b2d: ADD 00003b2e: PUSH1 0x20 00003b30: DUP9 00003b31: ADD 00003b32: PUSH2 0x39ac 00003b35: JUMP 00003b36: JUMPDEST 00003b37: ADD 00003b38: PUSH1 0x28 00003b3a: ADD 00003b3b: SWAP5 00003b3c: SWAP4 00003b3d: POP 00003b3e: POP 00003b3f: POP 00003b40: POP 00003b41: JUMP 00003b42: JUMPDEST 00003b43: PUSH1 0x20 00003b45: DUP2 00003b46: MSTORE 00003b47: PUSH1 0x00 00003b49: PUSH2 0x2cc2 00003b4c: PUSH1 0x20 00003b4e: DUP4 00003b4f: ADD 00003b50: DUP5 00003b51: PUSH2 0x39d8 00003b54: JUMP 00003b55: JUMPDEST 00003b56: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000 00003b77: DUP4 00003b78: AND 00003b79: DUP2 00003b7a: MSTORE 00003b7b: PUSH1 0x00 00003b7d: DUP3 00003b7e: MLOAD 00003b7f: PUSH2 0x3b8f 00003b82: DUP2 00003b83: PUSH1 0x01 00003b85: DUP6 00003b86: ADD 00003b87: PUSH1 0x20 00003b89: DUP8 00003b8a: ADD 00003b8b: PUSH2 0x39ac 00003b8e: JUMP 00003b8f: JUMPDEST 00003b90: SWAP2 00003b91: SWAP1 00003b92: SWAP2 00003b93: ADD 00003b94: PUSH1 0x01 00003b96: ADD 00003b97: SWAP4 00003b98: SWAP3 00003b99: POP 00003b9a: POP 00003b9b: POP 00003b9c: JUMP 00003b9d: JUMPDEST 00003b9e: PUSH1 0x00 00003ba0: DUP3 00003ba1: PUSH2 0x3bd3 00003ba4: JUMPI 00003ba5: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003bc6: PUSH1 0x00 00003bc8: MSTORE 00003bc9: PUSH1 0x12 00003bcb: PUSH1 0x04 00003bcd: MSTORE 00003bce: PUSH1 0x24 00003bd0: PUSH1 0x00 00003bd2: REVERT 00003bd3: JUMPDEST 00003bd4: POP 00003bd5: DIV 00003bd6: SWAP1 00003bd7: JUMP 00003bd8: JUMPDEST 00003bd9: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003bfa: PUSH1 0x00 00003bfc: MSTORE 00003bfd: PUSH1 0x32 00003bff: PUSH1 0x04 00003c01: MSTORE 00003c02: PUSH1 0x24 00003c04: PUSH1 0x00 00003c06: REVERT 00003c07: JUMPDEST 00003c08: PUSH1 0x00 00003c0a: DUP2 00003c0b: PUSH2 0x3c16 00003c0e: JUMPI 00003c0f: PUSH2 0x3c16 00003c12: PUSH2 0x383a 00003c15: JUMP 00003c16: JUMPDEST 00003c17: POP 00003c18: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003c39: ADD 00003c3a: SWAP1 00003c3b: JUMP 00003c3c: INVALID 00003c3d: COINBASE 00003c3e: PUSH5 0x6472657373 00003c44: GASPRICE 00003c45: KECCAK256 00003c46: PUSH13 0x6f772d6c6576656c2064656c65 00003c54: PUSH8 0x6174652063616c6c 00003c5d: KECCAK256 00003c5e: PUSH7 0x61696c6564a264 00003c66: PUSH10 0x706673582212205d4e59 00003c71: SWAP14 00003c72: UNKNOWN(0xFB) 00003c73: UNKNOWN(0xEF) 00003c74: GT 00003c75: INVALID 00003c76: SHR 00003c77: UNKNOWN(0x28) 00003c78: COINBASE 00003c79: CALLER 00003c7a: CALLDATACOPY 00003c7b: UNKNOWN(0xD7) 00003c7c: UNKNOWN(0xEE) 00003c7d: UNKNOWN(0xCC) 00003c7e: SWAP3 00003c7f: UNKNOWN(0xE3) 00003c80: PUSH8 0xcb4f298314ef8edd 00003c89: PUSH9 0x9f807fe464736f6c63 00003c93: NUMBER 00003c94: STOP 00003c95: ADDMOD 00003c96: MULMOD 00003c97: STOP 00003c98: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0xcb80203ce7b9e7d4e425000adb2667a1e8a5b92e14741beae10c90a7a53fa16d
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0xcb80203ce7b9e7d4e425000adb2667a1e8a5b92e14741beae10c90a7a53fa16d",
"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": "0xe9f2838e",
"selector": "0xe9f2838e",
"calldata_variants": [
"0xe9f2838e",
"0xe9f2838e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf4a97d4b",
"selector": "0xf4a97d4b",
"calldata_variants": [
"0xf4a97d4b",
"0xf4a97d4b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xff50abdc",
"selector": "0xff50abdc",
"calldata_variants": [
"0xff50abdc",
"0xff50abdc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe465eb9e",
"selector": "0xe465eb9e",
"calldata_variants": [
"0xe465eb9e",
"0xe465eb9e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe4c4be58",
"selector": "0xe4c4be58",
"calldata_variants": [
"0xe4c4be58",
"0xe4c4be580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe63ab1e9",
"selector": "0xe63ab1e9",
"calldata_variants": [
"0xe63ab1e9",
"0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd68d9d4e",
"selector": "0xd68d9d4e",
"calldata_variants": [
"0xd68d9d4e",
"0xd68d9d4e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdb0e2cc6",
"selector": "0xdb0e2cc6",
"calldata_variants": [
"0xdb0e2cc6",
"0xdb0e2cc60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 12152,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | upgradeability | codex | Unprotected V3 reinitializer lets attacker become admin, swap chain-state verifier, and forge withdrawals | 85 | no | — |
viewevidence_json{
"evidence": "`initializerV3` is public and calls `initializerV1`, which grants admin roles and sets `_fuelChainState` from attacker input. `relayMessage` relies on `_fuelChainState.finalized(...)`, and `_executeMessage` performs the ETH transfer.",
"locations": [
"contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:56",
"contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:57",
"contracts/contracts/fuelchain/FuelMessagePortal.sol:123",
"contracts/contracts/fuelchain/FuelMessagePortal.sol:130",
"contracts/contracts/fuelchain/FuelMessagePortal.sol:133",
"contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:129",
"contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:171",
"contracts/contracts/fuelchain/FuelMessagePortal/v3/FuelMessagePortalV3.sol:181"
],
"recommendation": "Restrict `initializerV3`/`reinitializeV3` to `onlyRole(DEFAULT_ADMIN_ROLE)` and avoid re-running `initializerV1` on upgrades; use `upgradeToAndCall` to atomically run the initializer so no public window exists.",
"exploit_scenario": "1) Proxy is upgraded to FuelMessagePortalV3 but the admin does not call `initializerV3`/`reinitializeV3` in the same tx (current version < 3). 2) Attacker calls `initializerV3(attackerFuelChainState, _limitAmount)`; this re-runs `initializerV1`, granting the attacker `DEFAULT_ADMIN_ROLE` and setting `_fuelChainState` to their malicious contract. 3) Attacker\u2019s malicious FuelChainState returns `true` for any `finalized(...)` call, so `relayMessage` accepts attacker-chosen headers. 4) Attacker crafts a fake `rootBlockHeader`/`blockHeader` with `height=1`, `outputMessagesCount=1`, and empty proofs (key=0) so `verifyBinaryTree` passes for an attacker-chosen `messageId`. 5) Calling `relayMessage` executes `_executeMessage`, which transfers `withdrawnAmount` ETH to the attacker. Profit: up to the entire `totalDeposited`/ETH balance locked in the portal."
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x068679c548f37feef995e9dd4f8327e42815f05269456ecc26bdf3b2d4d0a1d2
call_targets:
0x2c4df10a82cf077122ed99573aca6dacd76f2e67
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x068679c548f37feef995e9dd4f8327e42815f05269456ecc26bdf3b2d4d0a1d2",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x2c4df10a82cf077122ed99573aca6dacd76f2e67"
],
"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": "0xe9f2838e",
"selector": "0xe9f2838e",
"calldata_variants": [
"0xe9f2838e",
"0xe9f2838e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf4a97d4b",
"selector": "0xf4a97d4b",
"calldata_variants": [
"0xf4a97d4b",
"0xf4a97d4b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xff50abdc",
"selector": "0xff50abdc",
"calldata_variants": [
"0xff50abdc",
"0xff50abdc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe465eb9e",
"selector": "0xe465eb9e",
"calldata_variants": [
"0xe465eb9e",
"0xe465eb9e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe4c4be58",
"selector": "0xe4c4be58",
"calldata_variants": [
"0xe4c4be58",
"0xe4c4be580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe63ab1e9",
"selector": "0xe63ab1e9",
"calldata_variants": [
"0xe63ab1e9",
"0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd68d9d4e",
"selector": "0xd68d9d4e",
"calldata_variants": [
"0xd68d9d4e",
"0xd68d9d4e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdb0e2cc6",
"selector": "0xdb0e2cc6",
"calldata_variants": [
"0xdb0e2cc6",
"0xdb0e2cc60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 8025,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8159,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x068679c548f37feef995e9dd4f8327e42815f05269456ecc26bdf3b2d4d0a1d2
call_targets:
0x2c4df10a82cf077122ed99573aca6dacd76f2e67
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x068679c548f37feef995e9dd4f8327e42815f05269456ecc26bdf3b2d4d0a1d2",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x2c4df10a82cf077122ed99573aca6dacd76f2e67"
],
"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": "0xe9f2838e",
"selector": "0xe9f2838e",
"calldata_variants": [
"0xe9f2838e",
"0xe9f2838e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf4a97d4b",
"selector": "0xf4a97d4b",
"calldata_variants": [
"0xf4a97d4b",
"0xf4a97d4b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xff50abdc",
"selector": "0xff50abdc",
"calldata_variants": [
"0xff50abdc",
"0xff50abdc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe465eb9e",
"selector": "0xe465eb9e",
"calldata_variants": [
"0xe465eb9e",
"0xe465eb9e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe4c4be58",
"selector": "0xe4c4be58",
"calldata_variants": [
"0xe4c4be58",
"0xe4c4be580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe63ab1e9",
"selector": "0xe63ab1e9",
"calldata_variants": [
"0xe63ab1e9",
"0xe63ab1e90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd68d9d4e",
"selector": "0xd68d9d4e",
"calldata_variants": [
"0xd68d9d4e",
"0xd68d9d4e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdb0e2cc6",
"selector": "0xdb0e2cc6",
"calldata_variants": [
"0xdb0e2cc6",
"0xdb0e2cc60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 8025,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 8159,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"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
}
|