0594de5c-02e2-4e9e-aa9a-5ac4784ca5ff
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 |
|---|---|---|---|---|
| 30508 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 103907 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 103908 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 103909 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 103910 | capability.graph | complete | 1 / 3 | 1 week ago |
| 103911 | detector.run | complete | 1 / 3 | 1 week ago |
| 103912 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1369693] OpenAI Codex v0.77.0 (research preview)
[codex:1369693] --------
[codex:1369693] workdir: /tmp/codex-multi-4ojmwrzc
[codex:1369693] model: gpt-5.2-codex
[codex:1369693] provider: openai
[codex:1369693] approval: never
[codex:1369693] sandbox: read-only
[codex:1369693] reasoning effort: xhigh
[codex:1369693] reasoning summaries: auto
[codex:1369693] session id: 019b6a8e-07b7-74f2-a0e1-6d1d22081f59
[codex:1369693] --------
[codex:1369693] user
[codex:1369693] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1369693] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1369693] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1369693]
[codex:1369693] Scope rules:
[codex:1369693] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1369693] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1369693]
[codex:1369693] Output MUST be valid JSON matching the provided schema.
[codex:1369693] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1369693] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1369693]
[codex:1369693] Output constraints (IMPORTANT):
[codex:1369693] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1369693] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1369693] mcp startup: no servers
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Checking for audit skills**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc ls in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] AUDIT_BUNDLE.txt
[codex:1369693] codex-output-schema.json
[codex:1369693] contracts
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Checking AUDIT_BUNDLE file**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1369693]
[codex:1369693] ================================================================================
[codex:1369693] FILE: contracts/lib/forge-std/src/interfaces/IERC20.sol
[codex:1369693] ================================================================================
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity >=0.6.2;
[codex:1369693]
[codex:1369693] /// @dev Interface of the ERC20 standard as defined in the EIP.
[codex:1369693] /// @dev This includes the optional name, symbol, and decimals metadata.
[codex:1369693] interface IERC20 {
[codex:1369693] /// @dev Emitted when `value` tokens are moved from one account (`from`) to another (`to`).
[codex:1369693] event Transfer(address indexed from, address indexed to, uint256 value);
[codex:1369693]
[codex:1369693] /// @dev Emitted when the allowance of a `spender` for an `owner` is set, where `value`
[codex:1369693] /// is the new allowance.
[codex:1369693] event Approval(address indexed owner, address indexed spender, uint256 value);
[codex:1369693]
[codex:1369693] /// @notice Returns the amount of tokens in existence.
[codex:1369693] function totalSupply() external view returns (uint256);
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Searching for contract source files**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc 'rg --files contracts/src' in /tmp/codex-multi-4ojmwrzc succeeded in 8ms:
[codex:1369693] contracts/src/Angstrom.sol
[codex:1369693] contracts/src/interfaces/IHooks.sol
[codex:1369693] contracts/src/interfaces/IDaiPermit.sol
[codex:1369693] contracts/src/interfaces/IUniV4.sol
[codex:1369693] contracts/src/interfaces/IERC2612.sol
[codex:1369693] contracts/src/interfaces/IAngstromComposable.sol
[codex:1369693] contracts/src/interfaces/IAngstromAuth.sol
[codex:1369693] contracts/src/libraries/TickLib.sol
[codex:1369693] contracts/src/libraries/SignatureLib.sol
[codex:1369693] contracts/src/libraries/X128MathLib.sol
[codex:1369693] contracts/src/libraries/RayMathLib.sol
[codex:1369693] contracts/src/libraries/MixedSignLib.sol
[codex:1369693] contracts/src/libraries/PoolConfigStore.sol
[codex:1369693] contracts/src/types/DeltaTracker.sol
[codex:1369693] contracts/src/types/StoreKey.sol
[codex:1369693] contracts/src/types/SwapCall.sol
[codex:1369693] contracts/src/types/Asset.sol
[codex:1369693] contracts/src/types/CalldataReader.sol
[codex:1369693] contracts/src/types/ConfigBuffer.sol
[codex:1369693] contracts/src/types/PoolRewards.sol
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Preparing to fully inspect AUDIT_BUNDLE.txt**
[codex:1369693]
[codex:1369693] I need to make sure to load and fully read the large AUDIT_BUNDLE.txt file into memory using Python to properly comply with the instructions. Since direct command output truncates, I'll rely on a script approach to handle the file content programmatically and then explore relevant sections or disclaimers.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "python - <<'PY'
[codex:1369693] from pathlib import Path
[codex:1369693] p=Path('AUDIT_BUNDLE.txt')
[codex:1369693] text=p.read_text()
[codex:1369693] print(len(text))
[codex:1369693] print(text[:200])
[codex:1369693] print(text[-200:])
[codex:1369693] PY" in /tmp/codex-multi-4ojmwrzc succeeded in 42ms:
[codex:1369693] 399703
[codex:1369693] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1369693]
[codex:1369693] ================================================================================
[codex:1369693] FILE: contracts/lib/forge-std/s
[codex:1369693] riant) & IS_EXACT_IN_BIT != 0;
[codex:1369693] }
[codex:1369693]
[codex:1369693] function isEcdsa(UserOrderVariantMap variant) internal pure returns (bool) {
[codex:1369693] return UserOrderVariantMap.unwrap(variant) & IS_ECDSA_BIT != 0;
[codex:1369693] }
[codex:1369693] }
[codex:1369693]
[codex:1369693]
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Opening main contract file**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/Angstrom.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: BUSL-1.1
[codex:1369693] pragma solidity =0.8.26;
[codex:1369693]
[codex:1369693] import {EIP712} from "solady/src/utils/EIP712.sol";
[codex:1369693] import {TopLevelAuth} from "./modules/TopLevelAuth.sol";
[codex:1369693] import {Settlement} from "./modules/Settlement.sol";
[codex:1369693] import {PoolUpdates} from "./modules/PoolUpdates.sol";
[codex:1369693] import {UnlockHook} from "./modules/UnlockHook.sol";
[codex:1369693] import {OrderInvalidation} from "./modules/OrderInvalidation.sol";
[codex:1369693] import {IPoolManager} from "v4-core/src/interfaces/IPoolManager.sol";
[codex:1369693] import {UniConsumer} from "./modules/UniConsumer.sol";
[codex:1369693] import {PermitSubmitterHook} from "./modules/PermitSubmitterHook.sol";
[codex:1369693] import {IUnlockCallback} from "v4-core/src/interfaces/callback/IUnlockCallback.sol";
[codex:1369693]
[codex:1369693] import {CalldataReader, CalldataReaderLib} from "./types/CalldataReader.sol";
[codex:1369693] import {AssetArray, AssetLib} from "./types/Asset.sol";
[codex:1369693] import {PairArray, PairLib} from "./types/Pair.sol";
[codex:1369693] import {TypedDataHasher, TypedDataHasherLib} from "./types/TypedDataHasher.sol";
[codex:1369693] import {HookBuffer, HookBufferLib} from "./types/HookBuffer.sol";
[codex:1369693] import {SignatureLib} from "./libraries/SignatureLib.sol";
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '240,520p' contracts/src/Angstrom.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // Push before hook as a potential loan.
[codex:1369693] address to = buffer.recipient;
[codex:1369693] assembly ("memory-safe") {
[codex:1369693] to := or(mul(iszero(to), from), to)
[codex:1369693] }
[codex:1369693] _settleOrderOut(to, buffer.assetOut, amountOut, buffer.useInternal);
[codex:1369693]
[codex:1369693] hook.tryTrigger(from);
[codex:1369693]
[codex:1369693] _settleOrderIn(from, buffer.assetIn, amountIn, buffer.useInternal);
[codex:1369693]
[codex:1369693] return reader;
[codex:1369693] }
[codex:1369693]
[codex:1369693] function _domainNameAndVersion()
[codex:1369693] internal
[codex:1369693] pure
[codex:1369693] override
[codex:1369693] returns (string memory, string memory)
[codex:1369693] {
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Inspecting key modules**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/TopLevelAuth.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.26;
[codex:1369693]
[codex:1369693] import {IAngstromAuth, ConfigEntryUpdate} from "../interfaces/IAngstromAuth.sol";
[codex:1369693] import {UniConsumer} from "./UniConsumer.sol";
[codex:1369693] import {EIP712} from "solady/src/utils/EIP712.sol";
[codex:1369693]
[codex:1369693] import {PoolConfigStore, PoolConfigStoreLib} from "../libraries/PoolConfigStore.sol";
[codex:1369693] import {StoreKey, StoreKeyLib} from "../types/StoreKey.sol";
[codex:1369693] import {ConfigEntry, ConfigEntryLib} from "../types/ConfigEntry.sol";
[codex:1369693] import {ConfigBuffer} from "../types/ConfigBuffer.sol";
[codex:1369693] import {IHooks} from "v4-core/src/interfaces/IHooks.sol";
[codex:1369693] import {PoolKey} from "v4-core/src/types/PoolKey.sol";
[codex:1369693] import {SafeCastLib} from "solady/src/utils/SafeCastLib.sol";
[codex:1369693] import {LPFeeLibrary} from "v4-core/src/libraries/LPFeeLibrary.sol";
[codex:1369693] import {SafeTransferLib} from "solady/src/utils/SafeTransferLib.sol";
[codex:1369693] import {SignatureCheckerLib} from "solady/src/utils/SignatureCheckerLib.sol";
[codex:1369693] import {UnlockSwapFeeCollector} from "./UnlockSwapFeeCollector.sol";
[codex:1369693]
[codex:1369693] /// @dev Maximum fee that the `bundleFee` for any given pool should be settable to.
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Examining TopLevelAuth module details**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/Settlement.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: BUSL-1.1
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693]
[codex:1369693] import {UniConsumer} from "./UniConsumer.sol";
[codex:1369693] import {IERC20} from "forge-std/interfaces/IERC20.sol";
[codex:1369693]
[codex:1369693] import {DeltaTracker} from "../types/DeltaTracker.sol";
[codex:1369693] import {AssetArray, Asset, FEE_SUMMARY_ENTRY_SIZE} from "../types/Asset.sol";
[codex:1369693] import {AmountA as AmountOut, AmountB as AmountIn} from "../types/Price.sol";
[codex:1369693] import {SafeTransferLib} from "solady/src/utils/SafeTransferLib.sol";
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Handles settlement as well as maintaining Angstrom's solvency invariant.
[codex:1369693] abstract contract Settlement is UniConsumer {
[codex:1369693] using SafeTransferLib for address;
[codex:1369693]
[codex:1369693] error BundlDeltaUnresolved(address asset);
[codex:1369693]
[codex:1369693] DeltaTracker internal bundleDeltas;
[codex:1369693]
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing potential reentrancy risks**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/OrderInvalidation.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] abstract contract OrderInvalidation {
[codex:1369693] error NonceReuse();
[codex:1369693] error OrderAlreadyExecuted();
[codex:1369693] error Expired();
[codex:1369693]
[codex:1369693] /// @dev `keccak256("angstrom-v1_0.unordered-nonces.slot")[0:4]`
[codex:1369693] uint256 private constant UNORDERED_NONCES_SLOT = 0xdaa050e9;
[codex:1369693]
[codex:1369693] function invalidateNonce(uint64 nonce) external {
[codex:1369693] _invalidateNonce(msg.sender, nonce);
[codex:1369693] }
[codex:1369693]
[codex:1369693] function _checkDeadline(uint256 deadline) internal view {
[codex:1369693] if (block.timestamp > deadline) revert Expired();
[codex:1369693] }
[codex:1369693]
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing order hash invalidation logic**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/UnlockHook.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693]
[codex:1369693] import {IBeforeSwapHook, IAfterSwapHook} from "../interfaces/IHooks.sol";
[codex:1369693] import {UniConsumer} from "./UniConsumer.sol";
[codex:1369693] import {TopLevelAuth} from "./TopLevelAuth.sol";
[codex:1369693] import {PoolConfigStoreLib} from "../libraries/PoolConfigStore.sol";
[codex:1369693] import {StoreKey, StoreKeyLib} from "../types/StoreKey.sol";
[codex:1369693] import {tint256} from "transient-goodies/TransientPrimitives.sol";
[codex:1369693]
[codex:1369693] import {IUniV4, IPoolManager} from "../interfaces/IUniV4.sol";
[codex:1369693] import {BeforeSwapDelta} from "v4-core/src/types/BeforeSwapDelta.sol";
[codex:1369693] import {BalanceDelta} from "v4-core/src/types/BalanceDelta.sol";
[codex:1369693] import {PoolKey} from "v4-core/src/types/PoolKey.sol";
[codex:1369693] import {LPFeeLibrary} from "v4-core/src/libraries/LPFeeLibrary.sol";
[codex:1369693] import {PoolId} from "v4-core/src/types/PoolId.sol";
[codex:1369693]
[codex:1369693] import {PoolUpdates} from "./PoolUpdates.sol";
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing unlock logic and hook consistency**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/PoolUpdates.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: BUSL-1.1
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693]
[codex:1369693] import {GrowthOutsideUpdater} from "./GrowthOutsideUpdater.sol";
[codex:1369693] import {UniConsumer} from "./UniConsumer.sol";
[codex:1369693] import {Settlement} from "./Settlement.sol";
[codex:1369693] import {TopLevelAuth} from "./TopLevelAuth.sol";
[codex:1369693] import {IBeforeAddLiquidityHook, IBeforeRemoveLiquidityHook} from "../interfaces/IHooks.sol";
[codex:1369693]
[codex:1369693] import {PairArray} from "../types/Pair.sol";
[codex:1369693] import {CalldataReader} from "../types/CalldataReader.sol";
[codex:1369693] import {PoolRewards} from "../types/PoolRewards.sol";
[codex:1369693] import {Positions, Position} from "../types/Positions.sol";
[codex:1369693] import {SwapCall, SwapCallLib} from "../types/SwapCall.sol";
[codex:1369693] import {PoolUpdateVariantMap} from "../types/PoolUpdateVariantMap.sol";
[codex:1369693]
[codex:1369693] import {SignedUnsignedLib} from "super-sol/libraries/SignedUnsignedLib.sol";
[codex:1369693] import {SafeTransferLib} from "solady/src/utils/SafeTransferLib.sol";
[codex:1369693] import {IUniV4} from "../interfaces/IUniV4.sol";
[codex:1369693] import {IPoolManager} from "../interfaces/IUniV4.sol";
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Checking UnlockSwapFeeCollector**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/UnlockSwapFeeCollector.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693]
[codex:1369693] import {IPoolManager} from "../interfaces/IUniV4.sol";
[codex:1369693] import {IUnlockCallback} from "v4-core/src/interfaces/callback/IUnlockCallback.sol";
[codex:1369693] import {Currency} from "v4-core/src/types/Currency.sol";
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] contract UnlockSwapFeeCollector is IUnlockCallback {
[codex:1369693] error NotUniswap();
[codex:1369693] error NotOwner();
[codex:1369693]
[codex:1369693] address internal immutable _owner;
[codex:1369693] IPoolManager internal immutable UNI_V4;
[codex:1369693]
[codex:1369693] constructor(IPoolManager uniV4) {
[codex:1369693] _owner = msg.sender;
[codex:1369693] UNI_V4 = uniV4;
[codex:1369693] }
[codex:1369693]
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Checking PermitSubmitterHook for behavior**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/PermitSubmitterHook.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693]
[codex:1369693] import {
[codex:1369693] IAngstromComposable, EXPECTED_HOOK_RETURN_MAGIC
[codex:1369693] } from "../interfaces/IAngstromComposable.sol";
[codex:1369693] import {IERC2612} from "../interfaces/IERC2612.sol";
[codex:1369693] import {IDaiPermit} from "../interfaces/IDaiPermit.sol";
[codex:1369693] import {CalldataReader, CalldataReaderLib} from "../types/CalldataReader.sol";
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] abstract contract PermitSubmitterHook is IAngstromComposable {
[codex:1369693] uint256 internal constant ERC2612_INFINITE = 0x00;
[codex:1369693] uint256 internal constant ERC2612_SPECIFIC = 0x01;
[codex:1369693] uint256 internal constant DAI_INFINITE = 0x02;
[codex:1369693]
[codex:1369693] error InvalidPermitType(uint8);
[codex:1369693]
[codex:1369693] function compose(address from, bytes calldata payload) external override returns (uint32) {
[codex:1369693] CalldataReader reader = CalldataReaderLib.from(payload);
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Evaluating security of compose and permit usage**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/UniConsumer.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693]
[codex:1369693] import {IPoolManager} from "../interfaces/IUniV4.sol";
[codex:1369693] import {Hooks, IHooks} from "v4-core/src/libraries/Hooks.sol";
[codex:1369693] import {Currency} from "v4-core/src/types/Currency.sol";
[codex:1369693] import {LPFeeLibrary} from "v4-core/src/libraries/LPFeeLibrary.sol";
[codex:1369693]
[codex:1369693] uint24 constant ANGSTROM_INIT_HOOK_FEE = LPFeeLibrary.DYNAMIC_FEE_FLAG;
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] abstract contract UniConsumer {
[codex:1369693] using Hooks for IHooks;
[codex:1369693]
[codex:1369693] error NotUniswap();
[codex:1369693]
[codex:1369693] IPoolManager internal immutable UNI_V4;
[codex:1369693]
[codex:1369693] uint24 internal constant INIT_HOOK_FEE = ANGSTROM_INIT_HOOK_FEE;
[codex:1369693]
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Checking GrowthOutsideUpdater**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/modules/GrowthOutsideUpdater.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: BUSL-1.1
[codex:1369693] pragma solidity ^0.8.24;
[codex:1369693]
[codex:1369693] import {PoolId} from "v4-core/src/types/PoolId.sol";
[codex:1369693] import {PoolRewards, REWARD_GROWTH_SIZE} from "../types/PoolRewards.sol";
[codex:1369693] import {CalldataReader} from "../types/CalldataReader.sol";
[codex:1369693] import {IPoolManager, IUniV4} from "../interfaces/IUniV4.sol";
[codex:1369693] import {UniConsumer} from "./UniConsumer.sol";
[codex:1369693]
[codex:1369693] import {TickLib} from "../libraries/TickLib.sol";
[codex:1369693] import {MixedSignLib} from "../libraries/MixedSignLib.sol";
[codex:1369693] import {X128MathLib} from "../libraries/X128MathLib.sol";
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Core logic responsible for updating reward accumulators to distribute rewards.
[codex:1369693] abstract contract GrowthOutsideUpdater is UniConsumer {
[codex:1369693] using IUniV4 for IPoolManager;
[codex:1369693] using TickLib for uint256;
[codex:1369693]
[codex:1369693] error WrongEndLiquidity(uint128 endLiquidity, uint128 actualCurrentLiquidity);
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Checking relevant libraries**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/libraries/SignatureLib.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693]
[codex:1369693] import {CalldataReader} from "../types/CalldataReader.sol";
[codex:1369693] import {SignatureCheckerLib} from "solady/src/utils/SignatureCheckerLib.sol";
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] library SignatureLib {
[codex:1369693] error InvalidSignature();
[codex:1369693]
[codex:1369693] uint256 internal constant ECRECOVER_ADDR = 1;
[codex:1369693]
[codex:1369693] function readAndCheckEcdsa(CalldataReader reader, bytes32 hash)
[codex:1369693] internal
[codex:1369693] view
[codex:1369693] returns (CalldataReader, address from)
[codex:1369693] {
[codex:1369693] assembly ("memory-safe") {
[codex:1369693] let free := mload(0x40)
[codex:1369693] mstore(free, hash)
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing Signature Verification Risks**
[codex:1369693]
[codex:1369693] I'm examining how SignatureLib uses ecrecover, noting it doesn't enforce signature malleability checks or verify non-zero recovered addresses. This may let invalid signatures produce a zero address, which could cause interactions with token transfers or internal balances that either revert or behave unexpectedly depending on token implementation. I'm also considering risk of malleable signatures and implications for order invalidation and domain separation in upgradeable contexts. I'll look deeper into related contracts next.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/types/Asset.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693]
[codex:1369693] import {CalldataReader} from "./CalldataReader.sol";
[codex:1369693]
[codex:1369693] uint256 constant FEE_SUMMARY_ENTRY_SIZE = 36;
[codex:1369693]
[codex:1369693] type Asset is uint256;
[codex:1369693]
[codex:1369693] type AssetArray is uint256;
[codex:1369693]
[codex:1369693] using AssetLib for Asset global;
[codex:1369693] using AssetLib for AssetArray global;
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] library AssetLib {
[codex:1369693] error AssetsOutOfOrderOrNotUnique();
[codex:1369693] error AssetAccessOutOfBounds(uint256 index, uint256 length);
[codex:1369693]
[codex:1369693] /// @dev Size of a single encoded asset (b20:addr ++ b16:save ++ b16:borrow ++ b16:settle)
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Reviewing core contract files**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/types/Pair.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693]
[codex:1369693] import {CalldataReader} from "./CalldataReader.sol";
[codex:1369693] import {AssetArray} from "./Asset.sol";
[codex:1369693] import {RayMathLib} from "../libraries/RayMathLib.sol";
[codex:1369693] import {PoolConfigStore, StoreKey} from "../libraries/PoolConfigStore.sol";
[codex:1369693] import {ONE_E6} from "./ConfigEntry.sol";
[codex:1369693] import {StoreKey, HASH_TO_STORE_KEY_SHIFT} from "../types/StoreKey.sol";
[codex:1369693]
[codex:1369693] type Pair is uint256;
[codex:1369693]
[codex:1369693] type PairArray is uint256;
[codex:1369693]
[codex:1369693] using PairLib for Pair global;
[codex:1369693] using PairLib for PairArray global;
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Keeps track of pairs used in a given transaction, ensuring they've been initialized and are
[codex:1369693] /// unique.
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Examining price input trustworthiness**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/libraries/PoolConfigStore.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693]
[codex:1369693] import {
[codex:1369693] ConfigEntry,
[codex:1369693] ConfigEntryLib,
[codex:1369693] ENTRY_SIZE,
[codex:1369693] KEY_MASK,
[codex:1369693] TICK_SPACING_OFFSET,
[codex:1369693] TICK_SPACING_MASK,
[codex:1369693] FEE_OFFSET,
[codex:1369693] FEE_MASK
[codex:1369693] } from "../types/ConfigEntry.sol";
[codex:1369693] import {StoreKey} from "../types/StoreKey.sol";
[codex:1369693] import {ConfigBuffer} from "../types/ConfigBuffer.sol";
[codex:1369693]
[codex:1369693] type PoolConfigStore is address;
[codex:1369693]
[codex:1369693] uint256 constant MEMORY_OFFSET_OFFSET = 192;
[codex:1369693] uint256 constant STORE_ADDR_OFFSET = 32;
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Checking other config types**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/types/ConfigEntry.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693]
[codex:1369693] import {StoreKey} from "./StoreKey.sol";
[codex:1369693] import {TickMath} from "v4-core/src/libraries/TickMath.sol";
[codex:1369693]
[codex:1369693] /// @dev Packed `storeKey:u216 ++ tickSpacing:u16 ++ feeInE6:u24`
[codex:1369693] type ConfigEntry is uint256;
[codex:1369693]
[codex:1369693] uint256 constant ENTRY_SIZE = 32;
[codex:1369693] uint256 constant KEY_MASK = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000;
[codex:1369693] uint256 constant TICK_SPACING_MASK = 0xffff;
[codex:1369693] uint256 constant TICK_SPACING_OFFSET = 24;
[codex:1369693] uint256 constant FEE_MASK = 0xffffff;
[codex:1369693] uint256 constant FEE_OFFSET = 0;
[codex:1369693]
[codex:1369693] /// @dev Max bundle fee.
[codex:1369693] uint24 constant MAX_FEE = 0.2e6;
[codex:1369693] /// @dev 100% fee in `bundleFee` units (pips).
[codex:1369693] uint24 constant ONE_E6 = 1.0e6;
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing potential reentrancy and signature flaws**
[codex:1369693]
[codex:1369693] I'm exploring the settlement order calls and how output before input might enable reentrancy or hooks exploiting funds, especially with internal balances. I’m also digging into signature validation gaps like missing checks on ecrecover results possibly allowing invalid signatures to pass, which could lead to unexpected behaviors with certain tokens. Access control on pool initialization and public functions is another focus, considering whether intended permissionless designs could be abused or lead to manipulation. There is a lot here about transactional atomicity and the subtleties in signature and execution logic that might cause vulnerabilities.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/types/DeltaTracker.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693]
[codex:1369693] import {MixedSignLib} from "../libraries/MixedSignLib.sol";
[codex:1369693] import {tint256} from "transient-goodies/TransientPrimitives.sol";
[codex:1369693]
[codex:1369693] struct DeltaTracker {
[codex:1369693] mapping(address asset => tint256 netBalances) deltas;
[codex:1369693] }
[codex:1369693]
[codex:1369693] using DeltaTrackerLib for DeltaTracker global;
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Tracks intermediate value changes in the contract that need to be resolved. A _negative_
[codex:1369693] /// delta means the contract is temporarily insolvent, a _positive_ delta means that contract has
[codex:1369693] /// funds to use for payouts of different kinds.
[codex:1369693] library DeltaTrackerLib {
[codex:1369693] function add(DeltaTracker storage self, address asset, uint256 amount) internal {
[codex:1369693] tint256 storage delta = self.deltas[asset];
[codex:1369693] delta.set(MixedSignLib.add(delta.get(), amount));
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing contract security and vulnerabilities**
[codex:1369693]
[codex:1369693] I'm reviewing how EIP712 domains are verified, upgradeability risks, unchecked calls, and signature handling, especially in the `Angstrom` contract and related modules. I'm also evaluating potential DoS from signature reuse, reentrancy possibilities during Uniswap V4 hooks, and access control on key functions like fee withdrawal and node toggling. This deep dive helps me understand the security posture and spot any weak spots.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/interfaces/IAngstromAuth.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.4;
[codex:1369693]
[codex:1369693] import {StoreKey} from "../types/StoreKey.sol";
[codex:1369693] import {PoolConfigStore} from "../libraries/PoolConfigStore.sol";
[codex:1369693]
[codex:1369693] struct ConfigEntryUpdate {
[codex:1369693] uint256 index;
[codex:1369693] StoreKey key;
[codex:1369693] uint24 bundleFee;
[codex:1369693] uint24 unlockedFee;
[codex:1369693] uint24 protocolUnlockedFee;
[codex:1369693] }
[codex:1369693]
[codex:1369693] interface IAngstromAuth {
[codex:1369693] function setController(address newController) external;
[codex:1369693]
[codex:1369693] function collect_unlock_swap_fees(address to, bytes calldata packed_assets) external;
[codex:1369693]
[codex:1369693] function configurePool(
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Inspecting IAngstromComposable component**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/interfaces/IAngstromComposable.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693]
[codex:1369693] /// @dev Expected return magic (`keccak256("Angstrom.hook.return-magic")[-4:]`).
[codex:1369693] uint32 constant EXPECTED_HOOK_RETURN_MAGIC = 0x24a2e44b;
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] interface IAngstromComposable {
[codex:1369693] function compose(address from, bytes calldata payload) external returns (uint32);
[codex:1369693] }
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Inspecting libraries for vulnerabilities**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/types/CalldataReader.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693]
[codex:1369693] /// @dev Represents a raw calldata offset.
[codex:1369693] type CalldataReader is uint256;
[codex:1369693]
[codex:1369693] using CalldataReaderLib for CalldataReader global;
[codex:1369693] using {neq as !=, eq as ==, gt as >, lt as <, ge as >=, le as <=} for CalldataReader global;
[codex:1369693]
[codex:1369693] function neq(CalldataReader a, CalldataReader b) pure returns (bool) {
[codex:1369693] return CalldataReader.unwrap(a) != CalldataReader.unwrap(b);
[codex:1369693] }
[codex:1369693]
[codex:1369693] function eq(CalldataReader a, CalldataReader b) pure returns (bool) {
[codex:1369693] return CalldataReader.unwrap(a) == CalldataReader.unwrap(b);
[codex:1369693] }
[codex:1369693]
[codex:1369693] function gt(CalldataReader a, CalldataReader b) pure returns (bool) {
[codex:1369693] return CalldataReader.unwrap(a) > CalldataReader.unwrap(b);
[codex:1369693] }
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing potential vulnerabilities and contract logic**
[codex:1369693]
[codex:1369693] I'm carefully examining possible edge cases like out-of-bounds reads with `readU24End`, fee underflows, and permit misuse in the contract. I'm exploring how data lengths, loop conditions, and signature restrictions interplay, aiming to spot real security concerns versus acceptable failure modes. There's a lot to untangle around permit calls and fee validations—I'm following the flow to see if anything could be exploited or just leads to reverts.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "rg -n \"validate\\(\\)\" contracts/src -g\"*.sol\"" in /tmp/codex-multi-4ojmwrzc succeeded in 9ms:
[codex:1369693] contracts/src/modules/TopLevelAuth.sol:116: protocolUnlockedFee.validate();
[codex:1369693] contracts/src/modules/TopLevelAuth.sol:117: unlockedFee.validate();
[codex:1369693] contracts/src/modules/TopLevelAuth.sol:167: update.unlockedFee.validate();
[codex:1369693] contracts/src/modules/TopLevelAuth.sol:168: update.protocolUnlockedFee.validate();
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Examining unlock and callback security**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc 'rg -n "delegatecall" -S contracts/src' in /tmp/codex-multi-4ojmwrzc exited 1 in 9ms:
[codex:1369693]
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing potential vulnerabilities in contract functions**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/types/HookBuffer.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: BUSL-1.1
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693]
[codex:1369693] import {EXPECTED_HOOK_RETURN_MAGIC} from "../interfaces/IAngstromComposable.sol";
[codex:1369693] import {CalldataReader} from "./CalldataReader.sol";
[codex:1369693]
[codex:1369693] /// @dev 0 or packed (u64 memory pointer ++ u160 hook address ++ u32 calldata length)
[codex:1369693] type HookBuffer is uint256;
[codex:1369693]
[codex:1369693] using HookBufferLib for HookBuffer global;
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Custom bytes allocation that stores a partially encoded hook call such that hashing of
[codex:1369693] /// hook data for validation & actual hook triggering can be done in different parts of the order
[codex:1369693] /// processing lifecycle.
[codex:1369693] library HookBufferLib {
[codex:1369693] error InvalidHookReturn();
[codex:1369693]
[codex:1369693] /// @dev Hash of empty sequence of bytes `keccak256("")`
[codex:1369693] /// @custom:test test/types/OrderIterator.t.sol:test_emptyBytesHash
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing potential underflow and reentrancy risks**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/types/PoolRewards.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693]
[codex:1369693] import {IPoolManager} from "v4-core/src/interfaces/IPoolManager.sol";
[codex:1369693] import {PoolId} from "v4-core/src/types/PoolId.sol";
[codex:1369693] import {IUniV4} from "../interfaces/IUniV4.sol";
[codex:1369693] import {TickLib} from "../libraries/TickLib.sol";
[codex:1369693]
[codex:1369693] /// @dev Should accommodate all possible tick values.
[codex:1369693] uint256 constant REWARD_GROWTH_SIZE = 16777216;
[codex:1369693]
[codex:1369693] struct PoolRewards {
[codex:1369693] uint256[REWARD_GROWTH_SIZE] rewardGrowthOutside;
[codex:1369693] uint256 globalGrowth;
[codex:1369693] }
[codex:1369693]
[codex:1369693] using PoolRewardsLib for PoolRewards global;
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Computes and maintains global LP rewards.
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing large storage array and overflow risks**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/types/Price.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693]
[codex:1369693] import {RayMathLib} from "../libraries/RayMathLib.sol";
[codex:1369693]
[codex:1369693] type PriceAB is uint256;
[codex:1369693]
[codex:1369693] type AmountA is uint256;
[codex:1369693]
[codex:1369693] type AmountB is uint256;
[codex:1369693]
[codex:1369693] using PriceLib for PriceAB global;
[codex:1369693] using PriceLib for AmountA global;
[codex:1369693] using {addA as +, subA as -, gtA as >, ltA as <} for AmountA global;
[codex:1369693] using PriceLib for AmountB global;
[codex:1369693] using {addB as +, subB as -, gtB as >, ltB as <} for AmountB global;
[codex:1369693]
[codex:1369693] function addA(AmountA x, AmountA y) pure returns (AmountA) {
[codex:1369693] return AmountA.wrap(x.into() + y.into());
[codex:1369693] }
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing potential vulnerabilities and edge cases**
[codex:1369693]
[codex:1369693] I'm examining various contract methods for risks like reentrancy, signature validation flaws, and improper hooks usage. I'm particularly curious about certain conditions that may allow denial-of-service or state inconsistencies, and I’m weighing if user-supplied data or node actions could exploit these. There’s a lot to parse in signature handling, transient storage, and order execution logic. I want to carefully verify if these findings represent true security issues or expected trade-offs.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/types/PoolUpdateVariantMap.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693]
[codex:1369693] type PoolUpdateVariantMap is uint8;
[codex:1369693]
[codex:1369693] using PoolUpdateVariantMapLib for PoolUpdateVariantMap global;
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] library PoolUpdateVariantMapLib {
[codex:1369693] uint256 internal constant ZERO_FOR_ONE_FLAG = 0x01;
[codex:1369693] uint256 internal constant CURRENT_ONLY_FLAG = 0x02;
[codex:1369693]
[codex:1369693] function zeroForOne(PoolUpdateVariantMap self) internal pure returns (bool) {
[codex:1369693] return PoolUpdateVariantMap.unwrap(self) & ZERO_FOR_ONE_FLAG != 0;
[codex:1369693] }
[codex:1369693]
[codex:1369693] function currentOnly(PoolUpdateVariantMap self) internal pure returns (bool) {
[codex:1369693] return PoolUpdateVariantMap.unwrap(self) & CURRENT_ONLY_FLAG != 0;
[codex:1369693] }
[codex:1369693] }
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Considering ConfigBuffer**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/types/ConfigBuffer.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693]
[codex:1369693] import {ConfigEntry, ENTRY_SIZE} from "./ConfigEntry.sol";
[codex:1369693] import {StoreKey} from "./StoreKey.sol";
[codex:1369693]
[codex:1369693] struct ConfigBuffer {
[codex:1369693] ConfigEntry[] entries;
[codex:1369693] uint256 capacity;
[codex:1369693] }
[codex:1369693]
[codex:1369693] using ConfigBufferLib for ConfigBuffer global;
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] library ConfigBufferLib {
[codex:1369693] error InsufficientCapacity();
[codex:1369693] error EntryKeyMismatch();
[codex:1369693]
[codex:1369693] function get(ConfigBuffer memory self, StoreKey key, uint256 index)
[codex:1369693] internal
[codex:1369693]
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing potential vulnerabilities and nonce invalidation logic**
[codex:1369693]
[codex:1369693] I'm carefully examining various contract functions for vulnerabilities, focusing on signature hashing, fee validations, and memory handling. I'm especially scrutinizing the nonce invalidation assembly code, where overlapping memory writes and a keccak256 hash on an unusual memory slice might cause different owners to share the same nonce bitmap, which could be a critical bug. Let's explore this suspicious memory layout and hashing approach further.
[codex:1369693] thinking
[codex:1369693] **Examining nonce invalidation memory hash and collision risk**
[codex:1369693]
[codex:1369693] I'm continuing to inspect the nonce invalidation logic, confirming that the keccak256 hash only includes the nonce bytes without owner or slot, making the nonce bitmap global rather than per user. This approach could cause nonces to collide across users, potentially blocking others unintentionally if nonces aren’t globally unique, so I’m considering whether this design is intentional or problematic.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc 'rg -n "nonce" contracts/src -g"*.sol"' in /tmp/codex-multi-4ojmwrzc succeeded in 10ms:
[codex:1369693] contracts/src/Angstrom.sol:235: _invalidateNonce(from, buffer.nonce_or_validForBlock);
[codex:1369693] contracts/src/interfaces/IDaiPermit.sol:9: uint256 nonce,
[codex:1369693] contracts/src/types/UserOrderBuffer.sol:20: uint64 nonce_or_validForBlock;
[codex:1369693] contracts/src/types/UserOrderBuffer.sol:58: "uint64 nonce,"
[codex:1369693] contracts/src/types/UserOrderBuffer.sol:77: "uint64 nonce,"
[codex:1369693] contracts/src/types/UserOrderBuffer.sol:238: self.nonce_or_validForBlock = uint64(block.number);
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:10: /// @dev `keccak256("angstrom-v1_0.unordered-nonces.slot")[0:4]`
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:13: function invalidateNonce(uint64 nonce) external {
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:14: _invalidateNonce(msg.sender, nonce);
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:21: function _invalidateNonce(address owner, uint64 nonce) internal {
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:23: mstore(12, nonce)
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:26: // Memory slice implicitly chops off last byte of `nonce` so that it's the nonce word
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:27: // index (nonce >> 8).
[codex:1369693] contracts/src/modules/OrderInvalidation.sol:29: let flag := shl(and(nonce, 0xff), 1)
[codex:1369693] contracts/src/modules/PermitSubmitterHook.sol:55: uint32 nonce;
[codex:1369693] contracts/src/modules/PermitSubmitterHook.sol:56: (reader, nonce) = reader.readU32();
[codex:1369693] contracts/src/modules/PermitSubmitterHook.sol:66: from, msg.sender, nonce, deadline, true, v, bytes32(r), bytes32(s)
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing complex memory packing and potential vulnerabilities**
[codex:1369693]
[codex:1369693] I'm carefully dissecting a Yul memory packing pattern where owner, slot, and nonce values are stored with attention to right-alignment in memory, concluding the intended keccak256 hash computation is correct and not buggy. Then I’m scrutinizing various contract components for security concerns like signature validation quirks, subtle reentrancy risks, order execution logic, and potential misuse of node privileges, verifying which findings are meaningful versus false positives and wrapping up with a detailed risk assessment.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,240p' contracts/src/types/Positions.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 5ms:
[codex:1369693] // SPDX-License-Identifier: BUSL-1.1
[codex:1369693] pragma solidity ^0.8.13;
[codex:1369693]
[codex:1369693] import {PoolId} from "v4-core/src/types/PoolId.sol";
[codex:1369693]
[codex:1369693] struct Positions {
[codex:1369693] mapping(PoolId id => mapping(bytes32 uniPositionKey => Position)) positions;
[codex:1369693] }
[codex:1369693]
[codex:1369693] struct Position {
[codex:1369693] uint256 lastGrowthInside;
[codex:1369693] }
[codex:1369693]
[codex:1369693] using PositionsLib for Positions global;
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] library PositionsLib {
[codex:1369693] function get(
[codex:1369693] Positions storage self,
[codex:1369693] PoolId id,
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing constructor call order and signature validation risks**
[codex:1369693]
[codex:1369693] I'm mapping out the Solidity inheritance and constructor call order to ensure that UNI_V4 is initialized before TopLevelAuth uses it, confirming constructor linearization makes this safe. Then I’m scrutinizing signature validation logic, discovering a subtle weakness: invalid ECDSA signatures yield signer address zero without rejection, potentially allowing nodes to misuse address(0) balances or trigger hooks. While nodes are trusted parties, this could be a low-severity vulnerability worth noting.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "sed -n '1,200p' contracts/src/libraries/MixedSignLib.sol" in /tmp/codex-multi-4ojmwrzc succeeded in 7ms:
[codex:1369693] // SPDX-License-Identifier: MIT
[codex:1369693] pragma solidity ^0.8.0;
[codex:1369693]
[codex:1369693] /// @author philogy <https://github.com/philogy>
[codex:1369693] /// @dev Adds helper methods to enable safe, checked arithmetic between signed & unsigned types. Not
[codex:1369693] /// generalized as only these 4 particular instantiations were required.
[codex:1369693] library MixedSignLib {
[codex:1369693] error ArithmeticOverflowUnderflow();
[codex:1369693]
[codex:1369693] function add(int256 x, uint256 y) internal pure returns (int256 z) {
[codex:1369693] assembly ("memory-safe") {
[codex:1369693] z := add(x, y)
[codex:1369693]
[codex:1369693] if slt(z, x) {
[codex:1369693] mstore(0x00, 0xc9654ed4 /* ArithmeticOverflowUnderflow() */ )
[codex:1369693] revert(0x1c, 0x04)
[codex:1369693] }
[codex:1369693] }
[codex:1369693] }
[codex:1369693]
[codex:1369693]
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing potential reentrancy and signature validation issues**
[codex:1369693] thinking
[codex:1369693] **Verifying third-party dependency assumptions**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc 'rg -n "TODO|FIXME|HACK|WARN" contracts/src -g"*.sol"' in /tmp/codex-multi-4ojmwrzc succeeded in 11ms:
[codex:1369693] contracts/src/interfaces/IUniV4.sol:65: * @dev WARNING: use of this method with a dirty `int16` for `wordPos` may be vulnerable as the
[codex:1369693] contracts/src/interfaces/IUniV4.sol:91: * @dev WARNING: use of this method with a dirty `int16` for `wordPos` may be vulnerable as the
[codex:1369693] contracts/src/interfaces/IUniV4.sol:104: * @dev WARNING: Calling this method without first sanitizing `tick` (to ensure it's sign
[codex:1369693] contracts/src/interfaces/IUniV4.sol:116: // Compute relative map slot (WARNING: assumes `tick` is sanitized i.e. sign extended).
[codex:1369693] contracts/src/interfaces/IUniV4.sol:163: /// @dev WARNING: Expects `owner` & `asset` to not have dirty bytes.
[codex:1369693] contracts/src/libraries/TickLib.sol:47: /// @dev Normalize tick to its tick boundary (rounding towards negative infinity). WARN: Can underflow
[codex:1369693] contracts/src/types/Pair.sol:59: // WARN: Memory is allocated, but **not cleaned**.
[codex:1369693] contracts/src/types/StoreKey.sol:22: /// @dev Computes the `StoreKey` from the inputs. WARN: Does not check that the assets are
[codex:1369693] contracts/src/types/Positions.sol:32: // WARN: Free memory pointer temporarily invalid from here on.
[codex:1369693] contracts/src/modules/Settlement.sol:24: /// @dev WARN: Assumes `asset` charges 0 fees upon transfers and is not rebasing.
[codex:1369693] contracts/src/modules/Settlement.sol:31: /// @dev WARN: Assumes `asset` charges 0 fees upon transfers and is not rebasing.
[codex:1369693] contracts/src/types/ConfigBuffer.sol:54: /// @dev Add a new entry to the store. WARNING: Responsibility of caller to ensure that `entry`
[codex:1369693] contracts/src/types/ConfigBuffer.sol:64: /// @dev Sets the length of the buffer to an arbitrary length `new_length`. WARNING:
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing potential vulnerabilities and signature issues**
[codex:1369693]
[codex:1369693] I’m inspecting multiple components like asset handling, native ETH representation, SafeTransferLib behavior, and signature validation. The main concern is that SignatureLib's ECDSA check doesn't revert invalid signatures, potentially accepting zero-address signers, which is a low-severity authorization flaw. Other nuances like access control on initializePool and subtle call patterns in SafeTransferLib also raise questions, but the signature validation stands out as a solid finding to highlight.
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "nl -ba contracts/src/libraries/SignatureLib.sol | sed -n '1,120p'" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] 1 // SPDX-License-Identifier: MIT
[codex:1369693] 2 pragma solidity ^0.8.0;
[codex:1369693] 3
[codex:1369693] 4 import {CalldataReader} from "../types/CalldataReader.sol";
[codex:1369693] 5 import {SignatureCheckerLib} from "solady/src/utils/SignatureCheckerLib.sol";
[codex:1369693] 6
[codex:1369693] 7 /// @author philogy <https://github.com/philogy>
[codex:1369693] 8 library SignatureLib {
[codex:1369693] 9 error InvalidSignature();
[codex:1369693] 10
[codex:1369693] 11 uint256 internal constant ECRECOVER_ADDR = 1;
[codex:1369693] 12
[codex:1369693] 13 function readAndCheckEcdsa(CalldataReader reader, bytes32 hash)
[codex:1369693] 14 internal
[codex:1369693] 15 view
[codex:1369693] 16 returns (CalldataReader, address from)
[codex:1369693] 17 {
[codex:1369693] 18 assembly ("memory-safe") {
[codex:1369693] 19 let free := mload(0x40)
[codex:1369693] 20 mstore(free, hash)
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Analyzing potential HookBufferLib vulnerability**
[codex:1369693] exec
[codex:1369693] /bin/bash -lc "nl -ba contracts/src/types/HookBuffer.sol | sed -n '1,220p'" in /tmp/codex-multi-4ojmwrzc succeeded in 6ms:
[codex:1369693] 1 // SPDX-License-Identifier: BUSL-1.1
[codex:1369693] 2 pragma solidity ^0.8.13;
[codex:1369693] 3
[codex:1369693] 4 import {EXPECTED_HOOK_RETURN_MAGIC} from "../interfaces/IAngstromComposable.sol";
[codex:1369693] 5 import {CalldataReader} from "./CalldataReader.sol";
[codex:1369693] 6
[codex:1369693] 7 /// @dev 0 or packed (u64 memory pointer ++ u160 hook address ++ u32 calldata length)
[codex:1369693] 8 type HookBuffer is uint256;
[codex:1369693] 9
[codex:1369693] 10 using HookBufferLib for HookBuffer global;
[codex:1369693] 11
[codex:1369693] 12 /// @author philogy <https://github.com/philogy>
[codex:1369693] 13 /// @dev Custom bytes allocation that stores a partially encoded hook call such that hashing of
[codex:1369693] 14 /// hook data for validation & actual hook triggering can be done in different parts of the order
[codex:1369693] 15 /// processing lifecycle.
[codex:1369693] 16 library HookBufferLib {
[codex:1369693] 17 error InvalidHookReturn();
[codex:1369693] 18
[codex:1369693] 19 /// @dev Hash of empty sequence of bytes `keccak256("")`
[codex:1369693] 20 /// @custom:test test/types/OrderIterator.t.sol:test_emptyBytesHash
[codex:1369693]
[codex:1369693]
[codex:1369693] thinking
[codex:1369693] **Summarizing low-severity vulnerabilities and input validation issues**
[codex:1369693]
[codex:1369693] I'm reviewing potential low-severity issues including invalid ECDSA signature acceptance that leads to signer address zero without rejection, and unchecked hook data length permitting uninitialized hook address use and calldata length underflows. I'll prepare a detailed JSON report with categories, severity, exploit scenarios, and recommendations based on code references.
[codex:1369693] thinking
[codex:1369693] **Detailing hook data length vulnerability**
[codex:1369693] codex
[codex:1369693] {"no_findings":false,"summary":"Found a low-severity signature-validation gap and a malformed-hook-data edge case that can lead to unintended behavior under malformed inputs.","findings":[{"severity":"low","category":"auth","title":"ECDSA invalid signatures are not rejected (signer can become address(0))","exploit_scenario":"An invalid ECDSA signature still returns 32 bytes from the ecrecover precompile, so `readAndCheckEcdsa` accepts it and returns `from = address(0)`. If any funds are ever credited to `address(0)` (e.g., a mistaken internal deposit) or a non‑standard token allows `transferFrom(address(0), ...)`, a malicious node could execute orders without a valid signature for that signer.","recommendation":"Explicitly reject `from == address(0)` and enforce strict ECDSA checks (valid `v`, low‑`s`) before accepting the signature.","evidence":"`readAndCheckEcdsa` only checks `returndatasize()` and never verifies `from != address(0)`; invalid signatures still return data and are accepted.","locations":["contracts/src/libraries/SignatureLib.sol:18"]},{"severity":"info","category":"other","title":"Hook data length < 20 bytes can yield an uninitialized hook address and payload length underflow","exploit_scenario":"If a signer (or buggy UI) produces an order with `hookDataLength < 20`, the hook address is partially taken from uninitialized memory and the payload length underflows. A malicious node could influence the resulting hook address or trigger a revert/OOG due to the huge calldata length, even though the signed hash does not commit to a full hook address.","recommendation":"Enforce `hookDataLength >= 20` when a hook is present and revert otherwise; consider zeroing the hook memory region before reading to avoid dirty bytes.","evidence":"`hookDataLength` is not validated; a short length leaves dirty bytes in the hook address and causes `payloadLength := sub(hookDataLength, 20)` underflow.","locations":["contracts/src/types/HookBuffer.sol:40"]}]}
[codex:1369693] tokens used
[codex:1369693] 90,105
[codex:1369693] {"no_findings":false,"summary":"Found a low-severity signature-validation gap and a malformed-hook-data edge case that can lead to unintended behavior under malformed inputs.","findings":[{"severity":"low","category":"auth","title":"ECDSA invalid signatures are not rejected (signer can become address(0))","exploit_scenario":"An invalid ECDSA signature still returns 32 bytes from the ecrecover precompile, so `readAndCheckEcdsa` accepts it and returns `from = address(0)`. If any funds are ever credited to `address(0)` (e.g., a mistaken internal deposit) or a non‑standard token allows `transferFrom(address(0), ...)`, a malicious node could execute orders without a valid signature for that signer.","recommendation":"Explicitly reject `from == address(0)` and enforce strict ECDSA checks (valid `v`, low‑`s`) before accepting the signature.","evidence":"`readAndCheckEcdsa` only checks `returndatasize()` and never verifies `from != address(0)`; invalid signatures still return data and are accepted.","locations":["contracts/src/libraries/SignatureLib.sol:18"]},{"severity":"info","category":"other","title":"Hook data length < 20 bytes can yield an uninitialized hook address and payload length underflow","exploit_scenario":"If a signer (or buggy UI) produces an order with `hookDataLength < 20`, the hook address is partially taken from uninitialized memory and the payload length underflows. A malicious node could influence the resulting hook address or trigger a revert/OOG due to the huge calldata length, even though the signed hash does not commit to a full hook address.","recommendation":"Enforce `hookDataLength >= 20` when a hook is present and revert otherwise; consider zeroing the hook memory region before reading to avoid dirty bytes.","evidence":"`hookDataLength` is not validated; a short length leaves dirty bytes in the hook address and causes `payloadLength := sub(hookDataLength, 20)` underflow.","locations":["contracts/src/types/HookBuffer.sol:40"]}]}
{
"codex": {
"ran_at": "2025-12-29T14:55:37.162255+00:00",
"returncode": 0
},
"summary": "Found a low-severity signature-validation gap and a malformed-hook-data edge case that can lead to unintended behavior under malformed inputs.",
"raw_final": {
"summary": "Found a low-severity signature-validation gap and a malformed-hook-data edge case that can lead to unintended behavior under malformed inputs.",
"findings": [
{
"title": "ECDSA invalid signatures are not rejected (signer can become address(0))",
"category": "auth",
"evidence": "`readAndCheckEcdsa` only checks `returndatasize()` and never verifies `from != address(0)`; invalid signatures still return data and are accepted.",
"severity": "low",
"locations": [
"contracts/src/libraries/SignatureLib.sol:18"
],
"recommendation": "Explicitly reject `from == address(0)` and enforce strict ECDSA checks (valid `v`, low\u2011`s`) before accepting the signature.",
"exploit_scenario": "An invalid ECDSA signature still returns 32 bytes from the ecrecover precompile, so `readAndCheckEcdsa` accepts it and returns `from = address(0)`. If any funds are ever credited to `address(0)` (e.g., a mistaken internal deposit) or a non\u2011standard token allows `transferFrom(address(0), ...)`, a malicious node could execute orders without a valid signature for that signer."
},
{
"title": "Hook data length < 20 bytes can yield an uninitialized hook address and payload length underflow",
"category": "other",
"evidence": "`hookDataLength` is not validated; a short length leaves dirty bytes in the hook address and causes `payloadLength := sub(hookDataLength, 20)` underflow.",
"severity": "info",
"locations": [
"contracts/src/types/HookBuffer.sol:40"
],
"recommendation": "Enforce `hookDataLength >= 20` when a hook is present and revert otherwise; consider zeroing the hook memory region before reading to avoid dirty bytes.",
"exploit_scenario": "If a signer (or buggy UI) produces an order with `hookDataLength < 20`, the hook address is partially taken from uninitialized memory and the payload length underflows. A malicious node could influence the resulting hook address or trigger a revert/OOG due to the huge calldata length, even though the signed hash does not commit to a full hook address."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x000f 0000000b: JUMPI 0000000c: PUSH0 0000000d: DUP1 0000000e: REVERT 0000000f: JUMPDEST 00000010: POP 00000011: PUSH1 0x04 00000013: CALLDATASIZE 00000014: LT 00000015: PUSH2 0x0184 00000018: JUMPI 00000019: PUSH0 0000001a: CALLDATALOAD 0000001b: PUSH1 0xe0 0000001d: SHR 0000001e: DUP1 0000001f: PUSH4 0x7cf98081 00000024: GT 00000025: PUSH2 0x00dd 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xb47b2fb1 0000002f: GT 00000030: PUSH2 0x0088 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xd9e17f98 0000003a: GT 0000003b: PUSH2 0x0063 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xd9e17f98 00000045: EQ 00000046: PUSH2 0x03f2 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xdd4d4cf6 00000050: EQ 00000051: PUSH2 0x0405 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf3fef3a3 0000005b: EQ 0000005c: PUSH2 0x0418 0000005f: JUMPI 00000060: PUSH0 00000061: DUP1 00000062: REVERT 00000063: JUMPDEST 00000064: DUP1 00000065: PUSH4 0xb47b2fb1 0000006a: EQ 0000006b: PUSH2 0x037e 0000006e: JUMPI 0000006f: DUP1 00000070: PUSH4 0xd6cffd1e 00000075: EQ 00000076: PUSH2 0x03cc 00000079: JUMPI 0000007a: DUP1 0000007b: PUSH4 0xd9caed12 00000080: EQ 00000081: PUSH2 0x03df 00000084: JUMPI 00000085: PUSH0 00000086: DUP1 00000087: REVERT 00000088: JUMPDEST 00000089: DUP1 0000008a: PUSH4 0x8587f450 0000008f: GT 00000090: PUSH2 0x00b8 00000093: JUMPI 00000094: DUP1 00000095: PUSH4 0x8587f450 0000009a: EQ 0000009b: PUSH2 0x0338 0000009e: JUMPI 0000009f: DUP1 000000a0: PUSH4 0x91dd7346 000000a5: EQ 000000a6: PUSH2 0x034b 000000a9: JUMPI 000000aa: DUP1 000000ab: PUSH4 0x92eefe9b 000000b0: EQ 000000b1: PUSH2 0x036b 000000b4: JUMPI 000000b5: PUSH0 000000b6: DUP1 000000b7: REVERT 000000b8: JUMPDEST 000000b9: DUP1 000000ba: PUSH4 0x7cf98081 000000bf: EQ 000000c0: PUSH2 0x02e9 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0x8340f549 000000ca: EQ 000000cb: PUSH2 0x030a 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0x84b0196e 000000d5: EQ 000000d6: PUSH2 0x031d 000000d9: JUMPI 000000da: PUSH0 000000db: DUP1 000000dc: REVERT 000000dd: JUMPDEST 000000de: DUP1 000000df: PUSH4 0x259982e5 000000e4: GT 000000e5: PUSH2 0x013d 000000e8: JUMPI 000000e9: DUP1 000000ea: PUSH4 0x53b41c55 000000ef: GT 000000f0: PUSH2 0x0118 000000f3: JUMPI 000000f4: DUP1 000000f5: PUSH4 0x53b41c55 000000fa: EQ 000000fb: PUSH2 0x0258 000000fe: JUMPI 000000ff: DUP1 00000100: PUSH4 0x575e24b4 00000105: EQ 00000106: PUSH2 0x026b 00000109: JUMPI 0000010a: DUP1 0000010b: PUSH4 0x7407905c 00000110: EQ 00000111: PUSH2 0x02c1 00000114: JUMPI 00000115: PUSH0 00000116: DUP1 00000117: REVERT 00000118: JUMPDEST 00000119: DUP1 0000011a: PUSH4 0x259982e5 0000011f: EQ 00000120: PUSH2 0x021f 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x33830e48 0000012a: EQ 0000012b: PUSH2 0x0232 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0x47e7ef24 00000135: EQ 00000136: PUSH2 0x0245 00000139: JUMPI 0000013a: PUSH0 0000013b: DUP1 0000013c: REVERT 0000013d: JUMPDEST 0000013e: DUP1 0000013f: PUSH4 0x13871465 00000144: GT 00000145: PUSH2 0x016d 00000148: JUMPI 00000149: DUP1 0000014a: PUSH4 0x13871465 0000014f: EQ 00000150: PUSH2 0x01b0 00000153: JUMPI 00000154: DUP1 00000155: PUSH4 0x1828e0e7 0000015a: EQ 0000015b: PUSH2 0x01c3 0000015e: JUMPI 0000015f: DUP1 00000160: PUSH4 0x21d0ee70 00000165: EQ 00000166: PUSH2 0x01d6 00000169: JUMPI 0000016a: PUSH0 0000016b: DUP1 0000016c: REVERT 0000016d: JUMPDEST 0000016e: DUP1 0000016f: PUSH4 0x09c5eabe 00000174: EQ 00000175: PUSH2 0x0188 00000178: JUMPI 00000179: DUP1 0000017a: PUSH4 0x116a5550 0000017f: EQ 00000180: PUSH2 0x019d 00000183: JUMPI 00000184: JUMPDEST 00000185: PUSH0 00000186: DUP1 00000187: REVERT 00000188: JUMPDEST 00000189: PUSH2 0x019b 0000018c: PUSH2 0x0196 0000018f: CALLDATASIZE 00000190: PUSH1 0x04 00000192: PUSH2 0x4fe4 00000195: JUMP 00000196: JUMPDEST 00000197: PUSH2 0x042b 0000019a: JUMP 0000019b: JUMPDEST 0000019c: STOP 0000019d: JUMPDEST 0000019e: PUSH2 0x019b 000001a1: PUSH2 0x01ab 000001a4: CALLDATASIZE 000001a5: PUSH1 0x04 000001a7: PUSH2 0x5023 000001aa: JUMP 000001ab: JUMPDEST 000001ac: PUSH2 0x050b 000001af: JUMP 000001b0: JUMPDEST 000001b1: PUSH2 0x019b 000001b4: PUSH2 0x01be 000001b7: CALLDATASIZE 000001b8: PUSH1 0x04 000001ba: PUSH2 0x5075 000001bd: JUMP 000001be: JUMPDEST 000001bf: PUSH2 0x0518 000001c2: JUMP 000001c3: JUMPDEST 000001c4: PUSH2 0x019b 000001c7: PUSH2 0x01d1 000001ca: CALLDATASIZE 000001cb: PUSH1 0x04 000001cd: PUSH2 0x50f1 000001d0: JUMP 000001d1: JUMPDEST 000001d2: PUSH2 0x076b 000001d5: JUMP 000001d6: JUMPDEST 000001d7: PUSH2 0x01e9 000001da: PUSH2 0x01e4 000001dd: CALLDATASIZE 000001de: PUSH1 0x04 000001e0: PUSH2 0x5158 000001e3: JUMP 000001e4: JUMPDEST 000001e5: PUSH2 0x08cc 000001e8: JUMP 000001e9: JUMPDEST 000001ea: PUSH1 0x40 000001ec: MLOAD 000001ed: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000020e: SWAP1 0000020f: SWAP2 00000210: AND 00000211: DUP2 00000212: MSTORE 00000213: PUSH1 0x20 00000215: ADD 00000216: JUMPDEST 00000217: PUSH1 0x40 00000219: MLOAD 0000021a: DUP1 0000021b: SWAP2 0000021c: SUB 0000021d: SWAP1 0000021e: RETURN 0000021f: JUMPDEST 00000220: PUSH2 0x01e9 00000223: PUSH2 0x022d 00000226: CALLDATASIZE 00000227: PUSH1 0x04 00000229: PUSH2 0x5158 0000022c: JUMP 0000022d: JUMPDEST 0000022e: PUSH2 0x0be8 00000231: JUMP 00000232: JUMPDEST 00000233: PUSH2 0x019b 00000236: PUSH2 0x0240 00000239: CALLDATASIZE 0000023a: PUSH1 0x04 0000023c: PUSH2 0x50f1 0000023f: JUMP 00000240: JUMPDEST 00000241: PUSH2 0x0f5c 00000244: JUMP 00000245: JUMPDEST 00000246: PUSH2 0x019b 00000249: PUSH2 0x0253 0000024c: CALLDATASIZE 0000024d: PUSH1 0x04 0000024f: PUSH2 0x51f7 00000252: JUMP 00000253: JUMPDEST 00000254: PUSH2 0x0fff 00000257: JUMP 00000258: JUMPDEST 00000259: PUSH2 0x019b 0000025c: PUSH2 0x0266 0000025f: CALLDATASIZE 00000260: PUSH1 0x04 00000262: PUSH2 0x5221 00000265: JUMP 00000266: JUMPDEST 00000267: PUSH2 0x104f 0000026a: JUMP 0000026b: JUMPDEST 0000026c: PUSH2 0x027e 0000026f: PUSH2 0x0279 00000272: CALLDATASIZE 00000273: PUSH1 0x04 00000275: PUSH2 0x52b4 00000278: JUMP 00000279: JUMPDEST 0000027a: PUSH2 0x1280 0000027d: JUMP 0000027e: JUMPDEST 0000027f: PUSH1 0x40 00000281: DUP1 00000282: MLOAD 00000283: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000002a4: SWAP1 000002a5: SWAP5 000002a6: AND 000002a7: DUP5 000002a8: MSTORE 000002a9: PUSH1 0x20 000002ab: DUP5 000002ac: ADD 000002ad: SWAP3 000002ae: SWAP1 000002af: SWAP3 000002b0: MSTORE 000002b1: PUSH3 0xffffff 000002b5: AND 000002b6: SWAP1 000002b7: DUP3 000002b8: ADD 000002b9: MSTORE 000002ba: PUSH1 0x60 000002bc: ADD 000002bd: PUSH2 0x0216 000002c0: JUMP 000002c1: JUMPDEST 000002c2: PUSH2 0x02d4 000002c5: PUSH2 0x02cf 000002c8: CALLDATASIZE 000002c9: PUSH1 0x04 000002cb: PUSH2 0x50f1 000002ce: JUMP 000002cf: JUMPDEST 000002d0: PUSH2 0x1454 000002d3: JUMP 000002d4: JUMPDEST 000002d5: PUSH1 0x40 000002d7: MLOAD 000002d8: PUSH4 0xffffffff 000002dd: SWAP1 000002de: SWAP2 000002df: AND 000002e0: DUP2 000002e1: MSTORE 000002e2: PUSH1 0x20 000002e4: ADD 000002e5: PUSH2 0x0216 000002e8: JUMP 000002e9: JUMPDEST 000002ea: PUSH2 0x02fc 000002ed: PUSH2 0x02f7 000002f0: CALLDATASIZE 000002f1: PUSH1 0x04 000002f3: PUSH2 0x530e 000002f6: JUMP 000002f7: JUMPDEST 000002f8: PUSH2 0x1730 000002fb: JUMP 000002fc: JUMPDEST 000002fd: PUSH1 0x40 000002ff: MLOAD 00000300: SWAP1 00000301: DUP2 00000302: MSTORE 00000303: PUSH1 0x20 00000305: ADD 00000306: PUSH2 0x0216 00000309: JUMP 0000030a: JUMPDEST 0000030b: PUSH2 0x019b 0000030e: PUSH2 0x0318 00000311: CALLDATASIZE 00000312: PUSH1 0x04 00000314: PUSH2 0x5325 00000317: JUMP 00000318: JUMPDEST 00000319: PUSH2 0x173a 0000031c: JUMP 0000031d: JUMPDEST 0000031e: PUSH2 0x0325 00000321: PUSH2 0x178f 00000324: JUMP 00000325: JUMPDEST 00000326: PUSH1 0x40 00000328: MLOAD 00000329: PUSH2 0x0216 0000032c: SWAP8 0000032d: SWAP7 0000032e: SWAP6 0000032f: SWAP5 00000330: SWAP4 00000331: SWAP3 00000332: SWAP2 00000333: SWAP1 00000334: PUSH2 0x53af 00000337: JUMP 00000338: JUMPDEST 00000339: PUSH2 0x019b 0000033c: PUSH2 0x0346 0000033f: CALLDATASIZE 00000340: PUSH1 0x04 00000342: PUSH2 0x5461 00000345: JUMP 00000346: JUMPDEST 00000347: PUSH2 0x1837 0000034a: JUMP 0000034b: JUMPDEST 0000034c: PUSH2 0x035e 0000034f: PUSH2 0x0359 00000352: CALLDATASIZE 00000353: PUSH1 0x04 00000355: PUSH2 0x4fe4 00000358: JUMP 00000359: JUMPDEST 0000035a: PUSH2 0x19bf 0000035d: JUMP 0000035e: JUMPDEST 0000035f: PUSH1 0x40 00000361: MLOAD 00000362: PUSH2 0x0216 00000365: SWAP2 00000366: SWAP1 00000367: PUSH2 0x54b1 0000036a: JUMP 0000036b: JUMPDEST 0000036c: PUSH2 0x019b 0000036f: PUSH2 0x0379 00000372: CALLDATASIZE 00000373: PUSH1 0x04 00000375: PUSH2 0x54c3 00000378: JUMP 00000379: JUMPDEST 0000037a: PUSH2 0x1a53 0000037d: JUMP 0000037e: JUMPDEST 0000037f: PUSH2 0x0391 00000382: PUSH2 0x038c 00000385: CALLDATASIZE 00000386: PUSH1 0x04 00000388: PUSH2 0x54de 0000038b: JUMP 0000038c: JUMPDEST 0000038d: PUSH2 0x1a94 00000390: JUMP 00000391: JUMPDEST 00000392: PUSH1 0x40 00000394: DUP1 00000395: MLOAD 00000396: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000003b7: SWAP1 000003b8: SWAP4 000003b9: AND 000003ba: DUP4 000003bb: MSTORE 000003bc: PUSH1 0x0f 000003be: SWAP2 000003bf: SWAP1 000003c0: SWAP2 000003c1: SIGNEXTEND 000003c2: PUSH1 0x20 000003c4: DUP4 000003c5: ADD 000003c6: MSTORE 000003c7: ADD 000003c8: PUSH2 0x0216 000003cb: JUMP 000003cc: JUMPDEST 000003cd: PUSH2 0x019b 000003d0: PUSH2 0x03da 000003d3: CALLDATASIZE 000003d4: PUSH1 0x04 000003d6: PUSH2 0x555f 000003d9: JUMP 000003da: JUMPDEST 000003db: PUSH2 0x1db2 000003de: JUMP 000003df: JUMPDEST 000003e0: PUSH2 0x019b 000003e3: PUSH2 0x03ed 000003e6: CALLDATASIZE 000003e7: PUSH1 0x04 000003e9: PUSH2 0x5325 000003ec: JUMP 000003ed: JUMPDEST 000003ee: PUSH2 0x1e3e 000003f1: JUMP 000003f2: JUMPDEST 000003f3: PUSH2 0x019b 000003f6: PUSH2 0x0400 000003f9: CALLDATASIZE 000003fa: PUSH1 0x04 000003fc: PUSH2 0x51f7 000003ff: JUMP 00000400: JUMPDEST 00000401: PUSH2 0x1e8a 00000404: JUMP 00000405: JUMPDEST 00000406: PUSH2 0x019b 00000409: PUSH2 0x0413 0000040c: CALLDATASIZE 0000040d: PUSH1 0x04 0000040f: PUSH2 0x55ff 00000412: JUMP 00000413: JUMPDEST 00000414: PUSH2 0x1eaa 00000417: JUMP 00000418: JUMPDEST 00000419: PUSH2 0x019b 0000041c: PUSH2 0x0426 0000041f: CALLDATASIZE 00000420: PUSH1 0x04 00000422: PUSH2 0x51f7 00000425: JUMP 00000426: JUMPDEST 00000427: PUSH2 0x1fe0 0000042a: JUMP 0000042b: JUMPDEST 0000042c: PUSH2 0x0433 0000042f: PUSH2 0x202c 00000432: JUMP 00000433: JUMPDEST 00000434: PUSH0 00000435: DUP2 00000436: SWAP1 00000437: SUB 00000438: PUSH2 0x043f 0000043b: JUMPI 0000043c: POP 0000043d: POP 0000043e: JUMP 0000043f: JUMPDEST 00000440: PUSH1 0x40 00000442: MLOAD 00000443: PUSH32 0x48c8949100000000000000000000000000000000000000000000000000000000 00000464: DUP2 00000465: MSTORE 00000466: PUSH1 0x01 00000468: PUSH1 0x01 0000046a: PUSH1 0xa0 0000046c: SHL 0000046d: SUB 0000046e: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 0000048f: AND 00000490: SWAP1 00000491: PUSH4 0x48c89491 00000496: SWAP1 00000497: PUSH2 0x04a6 0000049a: SWAP1 0000049b: DUP6 0000049c: SWAP1 0000049d: DUP6 0000049e: SWAP1 0000049f: PUSH1 0x04 000004a1: ADD 000004a2: PUSH2 0x5661 000004a5: JUMP 000004a6: JUMPDEST 000004a7: PUSH0 000004a8: PUSH1 0x40 000004aa: MLOAD 000004ab: DUP1 000004ac: DUP4 000004ad: SUB 000004ae: DUP2 000004af: PUSH0 000004b0: DUP8 000004b1: GAS 000004b2: CALL 000004b3: ISZERO 000004b4: DUP1 000004b5: ISZERO 000004b6: PUSH2 0x04c1 000004b9: JUMPI 000004ba: RETURNDATASIZE 000004bb: PUSH0 000004bc: DUP1 000004bd: RETURNDATACOPY 000004be: RETURNDATASIZE 000004bf: PUSH0 000004c0: REVERT 000004c1: JUMPDEST 000004c2: POP 000004c3: POP 000004c4: POP 000004c5: POP 000004c6: PUSH1 0x40 000004c8: MLOAD 000004c9: RETURNDATASIZE 000004ca: PUSH0 000004cb: DUP3 000004cc: RETURNDATACOPY 000004cd: PUSH1 0x1f 000004cf: RETURNDATASIZE 000004d0: SWAP1 000004d1: DUP2 000004d2: ADD 000004d3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000004f4: AND 000004f5: DUP3 000004f6: ADD 000004f7: PUSH1 0x40 000004f9: MSTORE 000004fa: PUSH2 0x0506 000004fd: SWAP2 000004fe: SWAP1 000004ff: DUP2 00000500: ADD 00000501: SWAP1 00000502: PUSH2 0x56a1 00000505: JUMP 00000506: JUMPDEST 00000507: POP 00000508: POP 00000509: POP 0000050a: JUMP 0000050b: JUMPDEST 0000050c: PUSH2 0x0515 0000050f: CALLER 00000510: DUP3 00000511: PUSH2 0x20ff 00000514: JUMP 00000515: JUMPDEST 00000516: POP 00000517: JUMP 00000518: JUMPDEST 00000519: PUSH2 0x0520 0000051c: PUSH2 0x213a 0000051f: JUMP 00000520: JUMPDEST 00000521: DUP5 00000522: PUSH1 0x01 00000524: PUSH1 0x01 00000526: PUSH1 0xa0 00000528: SHL 00000529: SUB 0000052a: AND 0000052b: DUP7 0000052c: PUSH1 0x01 0000052e: PUSH1 0x01 00000530: PUSH1 0xa0 00000532: SHL 00000533: SUB 00000534: AND 00000535: LT 00000536: PUSH2 0x056b 00000539: JUMPI 0000053a: PUSH1 0x40 0000053c: MLOAD 0000053d: PUSH32 0x32b4bc9300000000000000000000000000000000000000000000000000000000 0000055e: DUP2 0000055f: MSTORE 00000560: PUSH1 0x04 00000562: ADD 00000563: PUSH1 0x40 00000565: MLOAD 00000566: DUP1 00000567: SWAP2 00000568: SUB 00000569: SWAP1 0000056a: REVERT 0000056b: JUMPDEST 0000056c: PUSH0 0000056d: DUP7 0000056e: DUP2 0000056f: MSTORE 00000570: PUSH1 0x20 00000572: DUP7 00000573: SWAP1 00000574: MSTORE 00000575: PUSH1 0x40 00000577: DUP2 00000578: KECCAK256 00000579: PUSH1 0x28 0000057b: SHL 0000057c: PUSH1 0x03 0000057e: SLOAD 0000057f: SWAP1 00000580: SWAP2 00000581: POP 00000582: PUSH0 00000583: SWAP1 00000584: PUSH2 0x05a3 00000587: SWAP1 00000588: PUSH9 0x010000000000000000 00000592: SWAP1 00000593: DIV 00000594: PUSH1 0x01 00000596: PUSH1 0x01 00000598: PUSH1 0xa0 0000059a: SHL 0000059b: SUB 0000059c: AND 0000059d: PUSH1 0x01 0000059f: PUSH2 0x217f 000005a2: JUMP 000005a3: JUMPDEST 000005a4: DUP1 000005a5: MLOAD 000005a6: MLOAD 000005a7: SWAP1 000005a8: SWAP2 000005a9: POP 000005aa: PUSH0 000005ab: SWAP1 000005ac: JUMPDEST 000005ad: DUP1 000005ae: DUP3 000005af: LT 000005b0: ISZERO 000005b1: PUSH2 0x0654 000005b4: JUMPI 000005b5: PUSH0 000005b6: DUP4 000005b7: PUSH0 000005b8: ADD 000005b9: MLOAD 000005ba: DUP4 000005bb: DUP2 000005bc: MLOAD 000005bd: DUP2 000005be: LT 000005bf: PUSH2 0x05ca 000005c2: JUMPI 000005c3: PUSH2 0x05ca 000005c6: PUSH2 0x5791 000005c9: JUMP 000005ca: JUMPDEST 000005cb: PUSH1 0x20 000005cd: MUL 000005ce: PUSH1 0x20 000005d0: ADD 000005d1: ADD 000005d2: MLOAD 000005d3: SWAP1 000005d4: POP 000005d5: PUSH2 0x05e4 000005d8: PUSH2 0x05de 000005db: DUP3 000005dc: SWAP1 000005dd: JUMP 000005de: JUMPDEST 000005df: DUP7 000005e0: PUSH2 0x21f3 000005e3: JUMP 000005e4: JUMPDEST 000005e5: ISZERO 000005e6: PUSH2 0x0648 000005e9: JUMPI 000005ea: PUSH2 0x0622 000005ed: DUP9 000005ee: PUSH2 0x061c 000005f1: DUP12 000005f2: DUP8 000005f3: PUSH0 000005f4: ADD 000005f5: MLOAD 000005f6: DUP8 000005f7: DUP2 000005f8: MLOAD 000005f9: DUP2 000005fa: LT 000005fb: PUSH2 0x0606 000005fe: JUMPI 000005ff: PUSH2 0x0606 00000602: PUSH2 0x5791 00000605: JUMP 00000606: JUMPDEST 00000607: PUSH1 0x20 00000609: MUL 0000060a: PUSH1 0x20 0000060c: ADD 0000060d: ADD 0000060e: MLOAD 0000060f: PUSH2 0x2222 00000612: SWAP1 00000613: SWAP2 00000614: SWAP1 00000615: PUSH4 0xffffffff 0000061a: AND 0000061b: JUMP 0000061c: JUMPDEST 0000061d: SWAP1 0000061e: PUSH2 0x224c 00000621: JUMP 00000622: JUMPDEST 00000623: DUP5 00000624: MLOAD 00000625: DUP1 00000626: MLOAD 00000627: DUP6 00000628: SWAP1 00000629: DUP2 0000062a: LT 0000062b: PUSH2 0x0636 0000062e: JUMPI 0000062f: PUSH2 0x0636 00000632: PUSH2 0x5791 00000635: JUMP 00000636: JUMPDEST 00000637: PUSH1 0x20 00000639: MUL 0000063a: PUSH1 0x20 0000063c: ADD 0000063d: ADD 0000063e: DUP2 0000063f: DUP2 00000640: MSTORE 00000641: POP 00000642: POP 00000643: POP 00000644: PUSH2 0x0654 00000647: JUMP 00000648: JUMPDEST 00000649: POP 0000064a: PUSH1 0x01 0000064c: SWAP1 0000064d: SWAP2 0000064e: ADD 0000064f: SWAP1 00000650: PUSH2 0x05ac 00000653: JUMP 00000654: JUMPDEST 00000655: DUP1 00000656: DUP3 00000657: SUB 00000658: PUSH2 0x0670 0000065b: JUMPI 0000065c: PUSH2 0x0670 0000065f: PUSH2 0x0669 00000662: DUP6 00000663: DUP11 00000664: DUP11 00000665: PUSH2 0x2267 00000668: JUMP 00000669: JUMPDEST 0000066a: DUP5 0000066b: SWAP1 0000066c: PUSH2 0x22b2 0000066f: JUMP 00000670: JUMPDEST 00000671: PUSH2 0x0679 00000674: DUP4 00000675: PUSH2 0x232d 00000678: JUMP 00000679: JUMPDEST 0000067a: PUSH1 0x03 0000067c: DUP1 0000067d: SLOAD 0000067e: PUSH1 0x01 00000680: PUSH1 0x01 00000682: PUSH1 0xa0 00000684: SHL 00000685: SUB 00000686: SWAP3 00000687: SWAP1 00000688: SWAP3 00000689: AND 0000068a: PUSH9 0x010000000000000000 00000694: MUL 00000695: PUSH32 0xffffffff0000000000000000000000000000000000000000ffffffffffffffff 000006b6: SWAP1 000006b7: SWAP3 000006b8: AND 000006b9: SWAP2 000006ba: SWAP1 000006bb: SWAP2 000006bc: OR 000006bd: SWAP1 000006be: SSTORE 000006bf: PUSH1 0x40 000006c1: DUP1 000006c2: MLOAD 000006c3: DUP1 000006c4: DUP3 000006c5: ADD 000006c6: DUP3 000006c7: MSTORE 000006c8: PUSH3 0xffffff 000006cc: DUP1 000006cd: DUP10 000006ce: AND 000006cf: DUP3 000006d0: MSTORE 000006d1: DUP8 000006d2: DUP2 000006d3: AND 000006d4: PUSH1 0x20 000006d6: DUP1 000006d7: DUP5 000006d8: ADD 000006d9: DUP3 000006da: DUP2 000006db: MSTORE 000006dc: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 000006fd: DUP11 000006fe: AND 000006ff: PUSH0 00000700: SWAP1 00000701: DUP2 00000702: MSTORE 00000703: PUSH1 0x02 00000705: SWAP1 00000706: SWAP3 00000707: MSTORE 00000708: SWAP5 00000709: SWAP1 0000070a: KECCAK256 0000070b: SWAP3 0000070c: MLOAD 0000070d: DUP4 0000070e: SLOAD 0000070f: SWAP5 00000710: MLOAD 00000711: DUP4 00000712: AND 00000713: PUSH4 0x01000000 00000718: MUL 00000719: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 0000073a: SWAP1 0000073b: SWAP6 0000073c: AND 0000073d: SWAP3 0000073e: AND 0000073f: SWAP2 00000740: SWAP1 00000741: SWAP2 00000742: OR 00000743: SWAP3 00000744: SWAP1 00000745: SWAP3 00000746: OR 00000747: SWAP1 00000748: SSTORE 00000749: PUSH2 0x0751 0000074c: SWAP1 0000074d: PUSH2 0x239c 00000750: JUMP 00000751: JUMPDEST 00000752: PUSH2 0x075f 00000755: DUP7 00000756: PUSH3 0xffffff 0000075a: AND 0000075b: PUSH2 0x239c 0000075e: JUMP 0000075f: JUMPDEST 00000760: POP 00000761: POP 00000762: POP 00000763: POP 00000764: POP 00000765: POP 00000766: POP 00000767: POP 00000768: POP 00000769: POP 0000076a: JUMP 0000076b: JUMPDEST 0000076c: PUSH2 0x0780 0000076f: PUSH1 0x03 00000771: SLOAD 00000772: PUSH8 0xffffffffffffffff 0000077b: AND 0000077c: NUMBER 0000077d: EQ 0000077e: SWAP1 0000077f: JUMP 00000780: JUMPDEST 00000781: ISZERO 00000782: PUSH2 0x07b7 00000785: JUMPI 00000786: PUSH1 0x40 00000788: MLOAD 00000789: PUSH32 0xd8a6b89b00000000000000000000000000000000000000000000000000000000 000007aa: DUP2 000007ab: MSTORE 000007ac: PUSH1 0x04 000007ae: ADD 000007af: PUSH1 0x40 000007b1: MLOAD 000007b2: DUP1 000007b3: SWAP2 000007b4: SUB 000007b5: SWAP1 000007b6: REVERT 000007b7: JUMPDEST 000007b8: PUSH1 0x01 000007ba: PUSH1 0x01 000007bc: PUSH1 0xa0 000007be: SHL 000007bf: SUB 000007c0: DUP4 000007c1: AND 000007c2: PUSH0 000007c3: SWAP1 000007c4: DUP2 000007c5: MSTORE 000007c6: PUSH1 0x01 000007c8: PUSH1 0x20 000007ca: MSTORE 000007cb: PUSH1 0x40 000007cd: SWAP1 000007ce: KECCAK256 000007cf: SLOAD 000007d0: PUSH1 0xff 000007d2: AND 000007d3: PUSH2 0x0808 000007d6: JUMPI 000007d7: PUSH1 0x40 000007d9: MLOAD 000007da: PUSH32 0x5cd26b6800000000000000000000000000000000000000000000000000000000 000007fb: DUP2 000007fc: MSTORE 000007fd: PUSH1 0x04 000007ff: ADD 00000800: PUSH1 0x40 00000802: MLOAD 00000803: DUP1 00000804: SWAP2 00000805: SUB 00000806: SWAP1 00000807: REVERT 00000808: JUMPDEST 00000809: PUSH32 0x3f25e551746414ff93f076a7dd83828ff53735b39366c74015637e004fcb0223 0000082a: PUSH0 0000082b: SWAP1 0000082c: DUP2 0000082d: MSTORE 0000082e: NUMBER 0000082f: PUSH1 0x20 00000831: MSTORE 00000832: PUSH1 0x40 00000834: DUP2 00000835: KECCAK256 00000836: SWAP1 00000837: PUSH2 0x083f 0000083a: DUP3 0000083b: PUSH2 0x23db 0000083e: JUMP 0000083f: JUMPDEST 00000840: SWAP1 00000841: POP 00000842: PUSH2 0x084d 00000845: DUP6 00000846: DUP3 00000847: DUP7 00000848: DUP7 00000849: PUSH2 0x24f1 0000084c: JUMP 0000084d: JUMPDEST 0000084e: PUSH2 0x0883 00000851: JUMPI 00000852: PUSH1 0x40 00000854: MLOAD 00000855: PUSH32 0x8baa579f00000000000000000000000000000000000000000000000000000000 00000876: DUP2 00000877: MSTORE 00000878: PUSH1 0x04 0000087a: ADD 0000087b: PUSH1 0x40 0000087d: MLOAD 0000087e: DUP1 0000087f: SWAP2 00000880: SUB 00000881: SWAP1 00000882: REVERT 00000883: JUMPDEST 00000884: PUSH2 0x088c 00000887: NUMBER 00000888: PUSH2 0x25dd 0000088b: JUMP 0000088c: JUMPDEST 0000088d: PUSH1 0x03 0000088f: DUP1 00000890: SLOAD 00000891: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 000008b2: AND 000008b3: PUSH8 0xffffffffffffffff 000008bc: SWAP3 000008bd: SWAP1 000008be: SWAP3 000008bf: AND 000008c0: SWAP2 000008c1: SWAP1 000008c2: SWAP2 000008c3: OR 000008c4: SWAP1 000008c5: SSTORE 000008c6: POP 000008c7: POP 000008c8: POP 000008c9: POP 000008ca: POP 000008cb: JUMP 000008cc: JUMPDEST 000008cd: PUSH0 000008ce: PUSH2 0x08d5 000008d1: PUSH2 0x25fa 000008d4: JUMP 000008d5: JUMPDEST 000008d6: PUSH0 000008d7: PUSH2 0x08df 000008da: DUP7 000008db: PUSH2 0x265c 000008de: JUMP 000008df: JUMPDEST 000008e0: SWAP1 000008e1: POP 000008e2: PUSH0 000008e3: DUP1 000008e4: PUSH2 0x093f 000008e7: DUP4 000008e8: DUP11 000008e9: PUSH2 0x08f5 000008ec: PUSH1 0x20 000008ee: DUP12 000008ef: ADD 000008f0: DUP12 000008f1: PUSH2 0x57cc 000008f4: JUMP 000008f5: JUMPDEST 000008f6: PUSH2 0x0905 000008f9: PUSH1 0x40 000008fb: DUP13 000008fc: ADD 000008fd: PUSH1 0x20 000008ff: DUP14 00000900: ADD 00000901: PUSH2 0x57cc 00000904: JUMP 00000905: JUMPDEST 00000906: PUSH1 0x06 00000908: SWAP1 00000909: DUP2 0000090a: MSTORE 0000090b: PUSH1 0x03 0000090d: SWAP2 0000090e: SWAP1 0000090f: SWAP2 00000910: MSTORE 00000911: PUSH0 00000912: SWAP2 00000913: DUP3 00000914: MSTORE 00000915: PUSH1 0x60 00000917: DUP12 00000918: ADD 00000919: CALLDATALOAD 0000091a: PUSH1 0x26 0000091c: SWAP1 0000091d: DUP2 0000091e: MSTORE 0000091f: PUSH1 0x3a 00000921: PUSH1 0x0c 00000923: KECCAK256 00000924: SWAP1 00000925: DUP4 00000926: SWAP1 00000927: MSTORE 00000928: SWAP3 00000929: DUP3 0000092a: MSTORE 0000092b: PUSH1 0x20 0000092d: SWAP1 0000092e: DUP2 0000092f: MSTORE 00000930: PUSH1 0x40 00000932: DUP1 00000933: DUP4 00000934: KECCAK256 00000935: DUP5 00000936: DUP5 00000937: MSTORE 00000938: SWAP1 00000939: SWAP2 0000093a: MSTORE 0000093b: SWAP1 0000093c: KECCAK256 0000093d: SWAP2 0000093e: JUMP 0000093f: JUMPDEST 00000940: SWAP1 00000941: SWAP3 00000942: POP 00000943: SWAP1 00000944: POP 00000945: PUSH0 00000946: PUSH2 0x0984 00000949: PUSH2 0x097b 0000094c: PUSH1 0x01 0000094e: PUSH1 0x01 00000950: PUSH1 0xa0 00000952: SHL 00000953: SUB 00000954: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00000975: AND 00000976: DUP7 00000977: PUSH2 0x2670 0000097a: JUMP 0000097b: JUMPDEST 0000097c: PUSH1 0xa0 0000097e: SHR 0000097f: PUSH1 0x02 00000981: SIGNEXTEND 00000982: SWAP1 00000983: JUMP 00000984: JUMPDEST 00000985: SWAP1 00000986: POP 00000987: PUSH0 00000988: PUSH2 0x09bd 0000098b: DUP3 0000098c: PUSH2 0x0998 0000098f: PUSH1 0x20 00000991: DUP13 00000992: ADD 00000993: DUP13 00000994: PUSH2 0x57cc 00000997: JUMP 00000998: JUMPDEST 00000999: PUSH2 0x09a8 0000099c: PUSH1 0x40 0000099e: DUP14 0000099f: ADD 000009a0: PUSH1 0x20 000009a2: DUP15 000009a3: ADD 000009a4: PUSH2 0x57cc 000009a7: JUMP 000009a8: JUMPDEST 000009a9: PUSH0 000009aa: DUP10 000009ab: DUP2 000009ac: MSTORE 000009ad: PUSH1 0x07 000009af: PUSH1 0x20 000009b1: MSTORE 000009b2: PUSH1 0x40 000009b4: SWAP1 000009b5: KECCAK256 000009b6: SWAP3 000009b7: SWAP2 000009b8: SWAP1 000009b9: PUSH2 0x2690 000009bc: JUMP 000009bd: JUMPDEST 000009be: SWAP1 000009bf: POP 000009c0: PUSH0 000009c1: PUSH2 0x09f4 000009c4: PUSH1 0x01 000009c6: PUSH1 0x01 000009c8: PUSH1 0xa0 000009ca: SHL 000009cb: SUB 000009cc: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 000009ed: AND 000009ee: DUP8 000009ef: DUP7 000009f0: PUSH2 0x2712 000009f3: JUMP 000009f4: JUMPDEST 000009f5: SWAP1 000009f6: POP 000009f7: PUSH0 000009f8: PUSH2 0x0a18 000009fb: DUP7 000009fc: PUSH0 000009fd: ADD 000009fe: SLOAD 000009ff: DUP5 00000a00: SUB 00000a01: DUP4 00000a02: PUSH16 0xffffffffffffffffffffffffffffffff 00000a13: AND 00000a14: PUSH2 0x276d 00000a17: JUMP 00000a18: JUMPDEST 00000a19: SWAP1 00000a1a: POP 00000a1b: DUP1 00000a1c: ISZERO 00000a1d: PUSH2 0x0bb6 00000a20: JUMPI 00000a21: PUSH1 0x01 00000a23: PUSH1 0x01 00000a25: PUSH1 0xa0 00000a27: SHL 00000a28: SUB 00000a29: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00000a4a: AND 00000a4b: PUSH4 0xa5841194 00000a50: PUSH2 0x0a5c 00000a53: PUSH1 0x20 00000a55: DUP16 00000a56: ADD 00000a57: DUP16 00000a58: PUSH2 0x54c3 00000a5b: JUMP 00000a5c: JUMPDEST 00000a5d: PUSH1 0x40 00000a5f: MLOAD 00000a60: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000a81: PUSH1 0xe0 00000a83: DUP5 00000a84: SWAP1 00000a85: SHL 00000a86: AND 00000a87: DUP2 00000a88: MSTORE 00000a89: PUSH1 0x01 00000a8b: PUSH1 0x01 00000a8d: PUSH1 0xa0 00000a8f: SHL 00000a90: SUB 00000a91: SWAP1 00000a92: SWAP2 00000a93: AND 00000a94: PUSH1 0x04 00000a96: DUP3 00000a97: ADD 00000a98: MSTORE 00000a99: PUSH1 0x24 00000a9b: ADD 00000a9c: PUSH0 00000a9d: PUSH1 0x40 00000a9f: MLOAD 00000aa0: DUP1 00000aa1: DUP4 00000aa2: SUB 00000aa3: DUP2 00000aa4: PUSH0 00000aa5: DUP8 00000aa6: DUP1 00000aa7: EXTCODESIZE 00000aa8: ISZERO 00000aa9: DUP1 00000aaa: ISZERO 00000aab: PUSH2 0x0ab2 00000aae: JUMPI 00000aaf: PUSH0 00000ab0: DUP1 00000ab1: REVERT 00000ab2: JUMPDEST 00000ab3: POP 00000ab4: GAS 00000ab5: CALL 00000ab6: ISZERO 00000ab7: DUP1 00000ab8: ISZERO 00000ab9: PUSH2 0x0ac4 00000abc: JUMPI 00000abd: RETURNDATASIZE 00000abe: PUSH0 00000abf: DUP1 00000ac0: RETURNDATACOPY 00000ac1: RETURNDATASIZE 00000ac2: PUSH0 00000ac3: REVERT 00000ac4: JUMPDEST 00000ac5: POP 00000ac6: POP 00000ac7: POP 00000ac8: POP 00000ac9: PUSH2 0x0b0f 00000acc: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00000aed: DUP3 00000aee: DUP15 00000aef: PUSH0 00000af0: ADD 00000af1: PUSH1 0x20 00000af3: DUP2 00000af4: ADD 00000af5: SWAP1 00000af6: PUSH2 0x0aff 00000af9: SWAP2 00000afa: SWAP1 00000afb: PUSH2 0x54c3 00000afe: JUMP 00000aff: JUMPDEST 00000b00: PUSH1 0x01 00000b02: PUSH1 0x01 00000b04: PUSH1 0xa0 00000b06: SHL 00000b07: SUB 00000b08: AND 00000b09: SWAP2 00000b0a: SWAP1 00000b0b: PUSH2 0x27e2 00000b0e: JUMP 00000b0f: JUMPDEST 00000b10: PUSH1 0x40 00000b12: MLOAD 00000b13: PUSH32 0x3dd45adb00000000000000000000000000000000000000000000000000000000 00000b34: DUP2 00000b35: MSTORE 00000b36: PUSH1 0x01 00000b38: PUSH1 0x01 00000b3a: PUSH1 0xa0 00000b3c: SHL 00000b3d: SUB 00000b3e: DUP15 00000b3f: DUP2 00000b40: AND 00000b41: PUSH1 0x04 00000b43: DUP4 00000b44: ADD 00000b45: MSTORE 00000b46: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00000b67: AND 00000b68: SWAP1 00000b69: PUSH4 0x3dd45adb 00000b6e: SWAP1 00000b6f: PUSH1 0x24 00000b71: ADD 00000b72: PUSH1 0x20 00000b74: PUSH1 0x40 00000b76: MLOAD 00000b77: DUP1 00000b78: DUP4 00000b79: SUB 00000b7a: DUP2 00000b7b: PUSH0 00000b7c: DUP8 00000b7d: GAS 00000b7e: CALL 00000b7f: ISZERO 00000b80: DUP1 00000b81: ISZERO 00000b82: PUSH2 0x0b8d 00000b85: JUMPI 00000b86: RETURNDATASIZE 00000b87: PUSH0 00000b88: DUP1 00000b89: RETURNDATACOPY 00000b8a: RETURNDATASIZE 00000b8b: PUSH0 00000b8c: REVERT 00000b8d: JUMPDEST 00000b8e: POP 00000b8f: POP 00000b90: POP 00000b91: POP 00000b92: PUSH1 0x40 00000b94: MLOAD 00000b95: RETURNDATASIZE 00000b96: PUSH1 0x1f 00000b98: NOT 00000b99: PUSH1 0x1f 00000b9b: DUP3 00000b9c: ADD 00000b9d: AND 00000b9e: DUP3 00000b9f: ADD 00000ba0: DUP1 00000ba1: PUSH1 0x40 00000ba3: MSTORE 00000ba4: POP 00000ba5: DUP2 00000ba6: ADD 00000ba7: SWAP1 00000ba8: PUSH2 0x0bb1 00000bab: SWAP2 00000bac: SWAP1 00000bad: PUSH2 0x57e7 00000bb0: JUMP 00000bb1: JUMPDEST 00000bb2: POP 00000bb3: DUP3 00000bb4: DUP7 00000bb5: SSTORE 00000bb6: JUMPDEST 00000bb7: POP 00000bb8: PUSH32 0x21d0ee7000000000000000000000000000000000000000000000000000000000 00000bd9: SWAP13 00000bda: SWAP12 00000bdb: POP 00000bdc: POP 00000bdd: POP 00000bde: POP 00000bdf: POP 00000be0: POP 00000be1: POP 00000be2: POP 00000be3: POP 00000be4: POP 00000be5: POP 00000be6: POP 00000be7: JUMP 00000be8: JUMPDEST 00000be9: PUSH0 00000bea: PUSH2 0x0bf1 00000bed: PUSH2 0x25fa 00000bf0: JUMP 00000bf1: JUMPDEST 00000bf2: PUSH0 00000bf3: PUSH2 0x0bfb 00000bf6: DUP7 00000bf7: PUSH2 0x265c 00000bfa: JUMP 00000bfb: JUMPDEST 00000bfc: PUSH0 00000bfd: DUP2 00000bfe: DUP2 00000bff: MSTORE 00000c00: PUSH1 0x07 00000c02: PUSH1 0x20 00000c04: MSTORE 00000c05: PUSH1 0x40 00000c07: DUP2 00000c08: KECCAK256 00000c09: SWAP2 00000c0a: SWAP3 00000c0b: POP 00000c0c: DUP1 00000c0d: PUSH2 0x0c42 00000c10: PUSH2 0x097b 00000c13: PUSH1 0x01 00000c15: PUSH1 0x01 00000c17: PUSH1 0xa0 00000c19: SHL 00000c1a: SUB 00000c1b: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00000c3c: AND 00000c3d: DUP7 00000c3e: PUSH2 0x2670 00000c41: JUMP 00000c42: JUMPDEST 00000c43: SWAP1 00000c44: POP 00000c45: PUSH0 00000c46: DUP4 00000c47: PUSH2 0x0c53 00000c4a: PUSH1 0x20 00000c4c: DUP12 00000c4d: ADD 00000c4e: DUP12 00000c4f: PUSH2 0x57cc 00000c52: JUMP 00000c53: JUMPDEST 00000c54: PUSH3 0xffffff 00000c58: AND 00000c59: PUSH4 0x01000000 00000c5e: DUP2 00000c5f: LT 00000c60: PUSH2 0x0c6b 00000c63: JUMPI 00000c64: PUSH2 0x0c6b 00000c67: PUSH2 0x5791 00000c6a: JUMP 00000c6b: JUMPDEST 00000c6c: ADD 00000c6d: SLOAD 00000c6e: SWAP1 00000c6f: POP 00000c70: PUSH0 00000c71: DUP5 00000c72: PUSH2 0x0c81 00000c75: PUSH1 0x40 00000c77: DUP13 00000c78: ADD 00000c79: PUSH1 0x20 00000c7b: DUP14 00000c7c: ADD 00000c7d: PUSH2 0x57cc 00000c80: JUMP 00000c81: JUMPDEST 00000c82: PUSH3 0xffffff 00000c86: AND 00000c87: PUSH4 0x01000000 00000c8c: DUP2 00000c8d: LT 00000c8e: PUSH2 0x0c99 00000c91: JUMPI 00000c92: PUSH2 0x0c99 00000c95: PUSH2 0x5791 00000c98: JUMP 00000c99: JUMPDEST 00000c9a: ADD 00000c9b: SLOAD 00000c9c: SWAP1 00000c9d: POP 00000c9e: PUSH2 0x0caa 00000ca1: PUSH1 0x20 00000ca3: DUP12 00000ca4: ADD 00000ca5: DUP12 00000ca6: PUSH2 0x57cc 00000ca9: JUMP 00000caa: JUMPDEST 00000cab: PUSH1 0x02 00000cad: SIGNEXTEND 00000cae: DUP4 00000caf: PUSH1 0x02 00000cb1: SIGNEXTEND 00000cb2: SLT 00000cb3: ISZERO 00000cb4: PUSH2 0x0cc1 00000cb7: JUMPI 00000cb8: DUP1 00000cb9: DUP3 00000cba: SUB 00000cbb: SWAP4 00000cbc: POP 00000cbd: PUSH2 0x0e1c 00000cc0: JUMP 00000cc1: JUMPDEST 00000cc2: PUSH1 0x02 00000cc4: DUP4 00000cc5: SWAP1 00000cc6: SIGNEXTEND 00000cc7: PUSH2 0x0cd6 00000cca: PUSH1 0x40 00000ccc: DUP13 00000ccd: ADD 00000cce: PUSH1 0x20 00000cd0: DUP14 00000cd1: ADD 00000cd2: PUSH2 0x57cc 00000cd5: JUMP 00000cd6: JUMPDEST 00000cd7: PUSH1 0x02 00000cd9: SIGNEXTEND 00000cda: SGT 00000cdb: PUSH2 0x0dc4 00000cde: JUMPI 00000cdf: PUSH2 0x0d34 00000ce2: DUP7 00000ce3: PUSH2 0x0cef 00000ce6: PUSH1 0x20 00000ce8: DUP14 00000ce9: ADD 00000cea: DUP14 00000ceb: PUSH2 0x57cc 00000cee: JUMP 00000cef: JUMPDEST 00000cf0: DUP14 00000cf1: PUSH1 0x60 00000cf3: ADD 00000cf4: PUSH1 0x20 00000cf6: DUP2 00000cf7: ADD 00000cf8: SWAP1 00000cf9: PUSH2 0x0d02 00000cfc: SWAP2 00000cfd: SWAP1 00000cfe: PUSH2 0x57cc 00000d01: JUMP 00000d02: JUMPDEST 00000d03: PUSH1 0x01 00000d05: PUSH1 0x01 00000d07: PUSH1 0xa0 00000d09: SHL 00000d0a: SUB 00000d0b: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00000d2c: AND 00000d2d: SWAP3 00000d2e: SWAP2 00000d2f: SWAP1 00000d30: PUSH2 0x2835 00000d33: JUMP 00000d34: JUMPDEST 00000d35: PUSH2 0x0d6c 00000d38: JUMPI 00000d39: PUSH4 0x01000000 00000d3e: DUP6 00000d3f: ADD 00000d40: SLOAD 00000d41: SWAP2 00000d42: POP 00000d43: DUP2 00000d44: DUP6 00000d45: PUSH2 0x0d51 00000d48: PUSH1 0x20 00000d4a: DUP14 00000d4b: ADD 00000d4c: DUP14 00000d4d: PUSH2 0x57cc 00000d50: JUMP 00000d51: JUMPDEST 00000d52: PUSH3 0xffffff 00000d56: AND 00000d57: PUSH4 0x01000000 00000d5c: DUP2 00000d5d: LT 00000d5e: PUSH2 0x0d69 00000d61: JUMPI 00000d62: PUSH2 0x0d69 00000d65: PUSH2 0x5791 00000d68: JUMP 00000d69: JUMPDEST 00000d6a: ADD 00000d6b: SSTORE 00000d6c: JUMPDEST 00000d6d: PUSH2 0x0d80 00000d70: DUP7 00000d71: PUSH2 0x0cef 00000d74: PUSH1 0x40 00000d76: DUP14 00000d77: ADD 00000d78: PUSH1 0x20 00000d7a: DUP15 00000d7b: ADD 00000d7c: PUSH2 0x57cc 00000d7f: JUMP 00000d80: JUMPDEST 00000d81: PUSH2 0x0dba 00000d84: JUMPI 00000d85: POP 00000d86: PUSH4 0x01000000 00000d8b: DUP5 00000d8c: ADD 00000d8d: SLOAD 00000d8e: DUP1 00000d8f: DUP6 00000d90: PUSH2 0x0d9f 00000d93: PUSH1 0x40 00000d95: DUP14 00000d96: ADD 00000d97: PUSH1 0x20 00000d99: DUP15 00000d9a: ADD 00000d9b: PUSH2 0x57cc 00000d9e: JUMP 00000d9f: JUMPDEST 00000da0: PUSH3 0xffffff 00000da4: AND 00000da5: PUSH4 0x01000000 00000daa: DUP2 00000dab: LT 00000dac: PUSH2 0x0db7 00000daf: JUMPI 00000db0: PUSH2 0x0db7 00000db3: PUSH2 0x5791 00000db6: JUMP 00000db7: JUMPDEST 00000db8: ADD 00000db9: SSTORE 00000dba: JUMPDEST 00000dbb: DUP2 00000dbc: DUP2 00000dbd: SUB 00000dbe: SWAP4 00000dbf: POP 00000dc0: PUSH2 0x0e1c 00000dc3: JUMP 00000dc4: JUMPDEST 00000dc5: PUSH2 0x0dd5 00000dc8: DUP7 00000dc9: PUSH2 0x0cef 00000dcc: PUSH1 0x20 00000dce: DUP14 00000dcf: ADD 00000dd0: DUP14 00000dd1: PUSH2 0x57cc 00000dd4: JUMP 00000dd5: JUMPDEST 00000dd6: PUSH2 0x0e0d 00000dd9: JUMPI 00000dda: PUSH4 0x01000000 00000ddf: DUP6 00000de0: ADD 00000de1: SLOAD 00000de2: SWAP2 00000de3: POP 00000de4: DUP2 00000de5: DUP6 00000de6: PUSH2 0x0df2 00000de9: PUSH1 0x20 00000deb: DUP14 00000dec: ADD 00000ded: DUP14 00000dee: PUSH2 0x57cc 00000df1: JUMP 00000df2: JUMPDEST 00000df3: PUSH3 0xffffff 00000df7: AND 00000df8: PUSH4 0x01000000 00000dfd: DUP2 00000dfe: LT 00000dff: PUSH2 0x0e0a 00000e02: JUMPI 00000e03: PUSH2 0x0e0a 00000e06: PUSH2 0x5791 00000e09: JUMP 00000e0a: JUMPDEST 00000e0b: ADD 00000e0c: SSTORE 00000e0d: JUMPDEST 00000e0e: DUP1 00000e0f: DUP3 00000e10: DUP7 00000e11: PUSH4 0x01000000 00000e16: ADD 00000e17: SLOAD 00000e18: SUB 00000e19: SUB 00000e1a: SWAP4 00000e1b: POP 00000e1c: JUMPDEST 00000e1d: POP 00000e1e: PUSH0 00000e1f: SWAP2 00000e20: POP 00000e21: DUP2 00000e22: SWAP1 00000e23: POP 00000e24: PUSH2 0x0e7f 00000e27: DUP6 00000e28: DUP13 00000e29: PUSH2 0x0e35 00000e2c: PUSH1 0x20 00000e2e: DUP14 00000e2f: ADD 00000e30: DUP14 00000e31: PUSH2 0x57cc 00000e34: JUMP 00000e35: JUMPDEST 00000e36: PUSH2 0x0e45 00000e39: PUSH1 0x40 00000e3b: DUP15 00000e3c: ADD 00000e3d: PUSH1 0x20 00000e3f: DUP16 00000e40: ADD 00000e41: PUSH2 0x57cc 00000e44: JUMP 00000e45: JUMPDEST 00000e46: PUSH1 0x06 00000e48: SWAP1 00000e49: DUP2 00000e4a: MSTORE 00000e4b: PUSH1 0x03 00000e4d: SWAP2 00000e4e: SWAP1 00000e4f: SWAP2 00000e50: MSTORE 00000e51: PUSH0 00000e52: SWAP2 00000e53: DUP3 00000e54: MSTORE 00000e55: PUSH1 0x60 00000e57: DUP14 00000e58: ADD 00000e59: CALLDATALOAD 00000e5a: PUSH1 0x26 00000e5c: SWAP1 00000e5d: DUP2 00000e5e: MSTORE 00000e5f: PUSH1 0x3a 00000e61: PUSH1 0x0c 00000e63: KECCAK256 00000e64: SWAP1 00000e65: DUP4 00000e66: SWAP1 00000e67: MSTORE 00000e68: SWAP3 00000e69: DUP3 00000e6a: MSTORE 00000e6b: PUSH1 0x20 00000e6d: SWAP1 00000e6e: DUP2 00000e6f: MSTORE 00000e70: PUSH1 0x40 00000e72: DUP1 00000e73: DUP4 00000e74: KECCAK256 00000e75: DUP5 00000e76: DUP5 00000e77: MSTORE 00000e78: SWAP1 00000e79: SWAP2 00000e7a: MSTORE 00000e7b: SWAP1 00000e7c: KECCAK256 00000e7d: SWAP2 00000e7e: JUMP 00000e7f: JUMPDEST 00000e80: SWAP1 00000e81: SWAP3 00000e82: POP 00000e83: SWAP1 00000e84: POP 00000e85: PUSH0 00000e86: PUSH2 0x0eb9 00000e89: PUSH1 0x01 00000e8b: PUSH1 0x01 00000e8d: PUSH1 0xa0 00000e8f: SHL 00000e90: SUB 00000e91: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00000eb2: AND 00000eb3: DUP8 00000eb4: DUP5 00000eb5: PUSH2 0x2712 00000eb8: JUMP 00000eb9: JUMPDEST 00000eba: SWAP1 00000ebb: POP 00000ebc: PUSH1 0x40 00000ebe: DUP11 00000ebf: ADD 00000ec0: CALLDATALOAD 00000ec1: PUSH0 00000ec2: PUSH2 0x0ecb 00000ec5: DUP3 00000ec6: DUP5 00000ec7: PUSH2 0x582b 00000eca: JUMP 00000ecb: JUMPDEST 00000ecc: SWAP1 00000ecd: POP 00000ece: DUP3 00000ecf: PUSH16 0xffffffffffffffffffffffffffffffff 00000ee0: AND 00000ee1: PUSH0 00000ee2: SUB 00000ee3: PUSH2 0x0eee 00000ee6: JUMPI 00000ee7: DUP6 00000ee8: DUP6 00000ee9: SSTORE 00000eea: PUSH2 0x0f29 00000eed: JUMP 00000eee: JUMPDEST 00000eef: PUSH0 00000ef0: PUSH2 0x0f23 00000ef3: DUP7 00000ef4: PUSH0 00000ef5: ADD 00000ef6: SLOAD 00000ef7: DUP9 00000ef8: SUB 00000ef9: DUP6 00000efa: PUSH16 0xffffffffffffffffffffffffffffffff 00000f0b: AND 00000f0c: DUP5 00000f0d: PUSH16 0xffffffffffffffffffffffffffffffff 00000f1e: AND 00000f1f: PUSH2 0x288b 00000f22: JUMP 00000f23: JUMPDEST 00000f24: DUP8 00000f25: SUB 00000f26: DUP7 00000f27: SSTORE 00000f28: POP 00000f29: JUMPDEST 00000f2a: POP 00000f2b: PUSH32 0x259982e500000000000000000000000000000000000000000000000000000000 00000f4c: SWAP14 00000f4d: SWAP13 00000f4e: POP 00000f4f: POP 00000f50: POP 00000f51: POP 00000f52: POP 00000f53: POP 00000f54: POP 00000f55: POP 00000f56: POP 00000f57: POP 00000f58: POP 00000f59: POP 00000f5a: POP 00000f5b: JUMP 00000f5c: JUMPDEST 00000f5d: PUSH2 0x0f64 00000f60: PUSH2 0x213a 00000f63: JUMP 00000f64: JUMPDEST 00000f65: PUSH1 0x40 00000f67: MLOAD 00000f68: PUSH32 0x877415d200000000000000000000000000000000000000000000000000000000 00000f89: DUP2 00000f8a: MSTORE 00000f8b: PUSH1 0x01 00000f8d: PUSH1 0x01 00000f8f: PUSH1 0xa0 00000f91: SHL 00000f92: SUB 00000f93: PUSH32 0x00000000000000000000000059a82241ce490fb77370e3f614de04aa188e13d2 00000fb4: AND 00000fb5: SWAP1 00000fb6: PUSH4 0x877415d2 00000fbb: SWAP1 00000fbc: PUSH2 0x0fcd 00000fbf: SWAP1 00000fc0: DUP7 00000fc1: SWAP1 00000fc2: DUP7 00000fc3: SWAP1 00000fc4: DUP7 00000fc5: SWAP1 00000fc6: PUSH1 0x04 00000fc8: ADD 00000fc9: PUSH2 0x5853 00000fcc: JUMP 00000fcd: JUMPDEST 00000fce: PUSH0 00000fcf: PUSH1 0x40 00000fd1: MLOAD 00000fd2: DUP1 00000fd3: DUP4 00000fd4: SUB 00000fd5: DUP2 00000fd6: PUSH0 00000fd7: DUP8 00000fd8: DUP1 00000fd9: EXTCODESIZE 00000fda: ISZERO 00000fdb: DUP1 00000fdc: ISZERO 00000fdd: PUSH2 0x0fe4 00000fe0: JUMPI 00000fe1: PUSH0 00000fe2: DUP1 00000fe3: REVERT 00000fe4: JUMPDEST 00000fe5: POP 00000fe6: GAS 00000fe7: CALL 00000fe8: ISZERO 00000fe9: DUP1 00000fea: ISZERO 00000feb: PUSH2 0x0ff6 00000fee: JUMPI 00000fef: RETURNDATASIZE 00000ff0: PUSH0 00000ff1: DUP1 00000ff2: RETURNDATACOPY 00000ff3: RETURNDATASIZE 00000ff4: PUSH0 00000ff5: REVERT 00000ff6: JUMPDEST 00000ff7: POP 00000ff8: POP 00000ff9: POP 00000ffa: POP 00000ffb: POP 00000ffc: POP 00000ffd: POP 00000ffe: JUMP 00000fff: JUMPDEST 00001000: PUSH2 0x1014 00001003: PUSH1 0x01 00001005: PUSH1 0x01 00001007: PUSH1 0xa0 00001009: SHL 0000100a: SUB 0000100b: DUP4 0000100c: AND 0000100d: CALLER 0000100e: ADDRESS 0000100f: DUP5 00001010: PUSH2 0x2938 00001013: JUMP 00001014: JUMPDEST 00001015: PUSH1 0x01 00001017: PUSH1 0x01 00001019: PUSH1 0xa0 0000101b: SHL 0000101c: SUB 0000101d: DUP3 0000101e: AND 0000101f: PUSH0 00001020: SWAP1 00001021: DUP2 00001022: MSTORE 00001023: PUSH1 0x05 00001025: PUSH1 0x20 00001027: SWAP1 00001028: DUP2 00001029: MSTORE 0000102a: PUSH1 0x40 0000102c: DUP1 0000102d: DUP4 0000102e: KECCAK256 0000102f: CALLER 00001030: DUP5 00001031: MSTORE 00001032: SWAP1 00001033: SWAP2 00001034: MSTORE 00001035: DUP2 00001036: KECCAK256 00001037: DUP1 00001038: SLOAD 00001039: DUP4 0000103a: SWAP3 0000103b: SWAP1 0000103c: PUSH2 0x1046 0000103f: SWAP1 00001040: DUP5 00001041: SWAP1 00001042: PUSH2 0x5875 00001045: JUMP 00001046: JUMPDEST 00001047: SWAP1 00001048: SWAP2 00001049: SSTORE 0000104a: POP 0000104b: POP 0000104c: POP 0000104d: POP 0000104e: JUMP 0000104f: JUMPDEST 00001050: PUSH2 0x1057 00001053: PUSH2 0x213a 00001056: JUMP 00001057: JUMPDEST 00001058: PUSH1 0x03 0000105a: SLOAD 0000105b: PUSH1 0x01 0000105d: PUSH1 0x01 0000105f: PUSH1 0xa0 00001061: SHL 00001062: SUB 00001063: PUSH9 0x010000000000000000 0000106d: SWAP1 0000106e: SWAP2 0000106f: DIV 00001070: DUP2 00001071: AND 00001072: SWAP1 00001073: DUP5 00001074: AND 00001075: DUP2 00001076: EQ 00001077: PUSH2 0x10ac 0000107a: JUMPI 0000107b: PUSH1 0x40 0000107d: MLOAD 0000107e: PUSH32 0xf21fd99f00000000000000000000000000000000000000000000000000000000 0000109f: DUP2 000010a0: MSTORE 000010a1: PUSH1 0x04 000010a3: ADD 000010a4: PUSH1 0x40 000010a6: MLOAD 000010a7: DUP1 000010a8: SWAP2 000010a9: SUB 000010aa: SWAP1 000010ab: REVERT 000010ac: JUMPDEST 000010ad: PUSH1 0x03 000010af: SLOAD 000010b0: PUSH0 000010b1: SWAP1 000010b2: PUSH2 0x10d0 000010b5: SWAP1 000010b6: PUSH9 0x010000000000000000 000010c0: SWAP1 000010c1: DIV 000010c2: PUSH1 0x01 000010c4: PUSH1 0x01 000010c6: PUSH1 0xa0 000010c8: SHL 000010c9: SUB 000010ca: AND 000010cb: DUP3 000010cc: PUSH2 0x217f 000010cf: JUMP 000010d0: JUMPDEST 000010d1: SWAP1 000010d2: POP 000010d3: PUSH0 000010d4: JUMPDEST 000010d5: DUP4 000010d6: DUP2 000010d7: LT 000010d8: ISZERO 000010d9: PUSH2 0x1249 000010dc: JUMPI 000010dd: CALLDATASIZE 000010de: DUP6 000010df: DUP6 000010e0: DUP4 000010e1: DUP2 000010e2: DUP2 000010e3: LT 000010e4: PUSH2 0x10ef 000010e7: JUMPI 000010e8: PUSH2 0x10ef 000010eb: PUSH2 0x5791 000010ee: JUMP 000010ef: JUMPDEST 000010f0: SWAP1 000010f1: POP 000010f2: PUSH1 0xa0 000010f4: MUL 000010f5: ADD 000010f6: SWAP1 000010f7: POP 000010f8: PUSH2 0x1129 000010fb: DUP2 000010fc: PUSH1 0x40 000010fe: ADD 000010ff: PUSH1 0x20 00001101: DUP2 00001102: ADD 00001103: SWAP1 00001104: PUSH2 0x110d 00001107: SWAP2 00001108: SWAP1 00001109: PUSH2 0x5888 0000110c: JUMP 0000110d: JUMPDEST 0000110e: PUSH2 0x061c 00001111: PUSH2 0x1120 00001114: PUSH1 0x40 00001116: DUP6 00001117: ADD 00001118: PUSH1 0x20 0000111a: DUP7 0000111b: ADD 0000111c: PUSH2 0x58a1 0000111f: JUMP 00001120: JUMPDEST 00001121: DUP7 00001122: SWAP1 00001123: DUP6 00001124: CALLDATALOAD 00001125: PUSH2 0x299a 00001128: JUMP 00001129: JUMPDEST 0000112a: DUP4 0000112b: MLOAD 0000112c: DUP1 0000112d: MLOAD 0000112e: DUP4 0000112f: CALLDATALOAD 00001130: SWAP1 00001131: DUP2 00001132: LT 00001133: PUSH2 0x113e 00001136: JUMPI 00001137: PUSH2 0x113e 0000113a: PUSH2 0x5791 0000113d: JUMP 0000113e: JUMPDEST 0000113f: PUSH1 0x20 00001141: SWAP1 00001142: DUP2 00001143: MUL 00001144: SWAP2 00001145: SWAP1 00001146: SWAP2 00001147: ADD 00001148: ADD 00001149: MSTORE 0000114a: PUSH2 0x1166 0000114d: PUSH2 0x115c 00001150: PUSH1 0x80 00001152: DUP4 00001153: ADD 00001154: PUSH1 0x60 00001156: DUP5 00001157: ADD 00001158: PUSH2 0x5888 0000115b: JUMP 0000115c: JUMPDEST 0000115d: PUSH3 0xffffff 00001161: AND 00001162: PUSH2 0x239c 00001165: JUMP 00001166: JUMPDEST 00001167: PUSH2 0x1179 0000116a: PUSH2 0x115c 0000116d: PUSH1 0xa0 0000116f: DUP4 00001170: ADD 00001171: PUSH1 0x80 00001173: DUP5 00001174: ADD 00001175: PUSH2 0x5888 00001178: JUMP 00001179: JUMPDEST 0000117a: PUSH1 0x40 0000117c: DUP1 0000117d: MLOAD 0000117e: DUP1 0000117f: DUP3 00001180: ADD 00001181: SWAP1 00001182: SWAP2 00001183: MSTORE 00001184: DUP1 00001185: PUSH2 0x1194 00001188: PUSH1 0x80 0000118a: DUP5 0000118b: ADD 0000118c: PUSH1 0x60 0000118e: DUP6 0000118f: ADD 00001190: PUSH2 0x5888 00001193: JUMP 00001194: JUMPDEST 00001195: PUSH3 0xffffff 00001199: AND 0000119a: DUP2 0000119b: MSTORE 0000119c: PUSH1 0x20 0000119e: ADD 0000119f: PUSH2 0x11ae 000011a2: PUSH1 0xa0 000011a4: DUP5 000011a5: ADD 000011a6: PUSH1 0x80 000011a8: DUP6 000011a9: ADD 000011aa: PUSH2 0x5888 000011ad: JUMP 000011ae: JUMPDEST 000011af: PUSH3 0xffffff 000011b3: AND 000011b4: SWAP1 000011b5: MSTORE 000011b6: PUSH1 0x02 000011b8: PUSH0 000011b9: PUSH2 0x11c8 000011bc: PUSH1 0x40 000011be: DUP6 000011bf: ADD 000011c0: PUSH1 0x20 000011c2: DUP7 000011c3: ADD 000011c4: PUSH2 0x58a1 000011c7: JUMP 000011c8: JUMPDEST 000011c9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 000011ea: AND 000011eb: DUP2 000011ec: MSTORE 000011ed: PUSH1 0x20 000011ef: DUP1 000011f0: DUP3 000011f1: ADD 000011f2: SWAP3 000011f3: SWAP1 000011f4: SWAP3 000011f5: MSTORE 000011f6: PUSH1 0x40 000011f8: ADD 000011f9: PUSH0 000011fa: KECCAK256 000011fb: DUP3 000011fc: MLOAD 000011fd: DUP2 000011fe: SLOAD 000011ff: SWAP4 00001200: SWAP1 00001201: SWAP3 00001202: ADD 00001203: MLOAD 00001204: PUSH3 0xffffff 00001208: SWAP1 00001209: DUP2 0000120a: AND 0000120b: PUSH4 0x01000000 00001210: MUL 00001211: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 00001232: SWAP1 00001233: SWAP5 00001234: AND 00001235: SWAP3 00001236: AND 00001237: SWAP2 00001238: SWAP1 00001239: SWAP2 0000123a: OR 0000123b: SWAP2 0000123c: SWAP1 0000123d: SWAP2 0000123e: OR 0000123f: SWAP1 00001240: SSTORE 00001241: POP 00001242: PUSH1 0x01 00001244: ADD 00001245: PUSH2 0x10d4 00001248: JUMP 00001249: JUMPDEST 0000124a: POP 0000124b: PUSH2 0x1253 0000124e: DUP2 0000124f: PUSH2 0x232d 00001252: JUMP 00001253: JUMPDEST 00001254: PUSH1 0x03 00001256: PUSH1 0x08 00001258: PUSH2 0x0100 0000125b: EXP 0000125c: DUP2 0000125d: SLOAD 0000125e: DUP2 0000125f: PUSH1 0x01 00001261: PUSH1 0x01 00001263: PUSH1 0xa0 00001265: SHL 00001266: SUB 00001267: MUL 00001268: NOT 00001269: AND 0000126a: SWAP1 0000126b: DUP4 0000126c: PUSH1 0x01 0000126e: PUSH1 0x01 00001270: PUSH1 0xa0 00001272: SHL 00001273: SUB 00001274: AND 00001275: MUL 00001276: OR 00001277: SWAP1 00001278: SSTORE 00001279: POP 0000127a: POP 0000127b: POP 0000127c: POP 0000127d: POP 0000127e: POP 0000127f: JUMP 00001280: JUMPDEST 00001281: PUSH0 00001282: DUP1 00001283: PUSH0 00001284: PUSH2 0x128b 00001287: PUSH2 0x25fa 0000128a: JUMP 0000128b: JUMPDEST 0000128c: PUSH2 0x12a0 0000128f: PUSH1 0x03 00001291: SLOAD 00001292: PUSH8 0xffffffffffffffff 0000129b: AND 0000129c: NUMBER 0000129d: EQ 0000129e: SWAP1 0000129f: JUMP 000012a0: JUMPDEST 000012a1: PUSH2 0x1357 000012a4: JUMPI 000012a5: PUSH1 0x14 000012a7: DUP5 000012a8: LT 000012a9: ISZERO 000012aa: PUSH2 0x1319 000012ad: JUMPI 000012ae: PUSH0 000012af: DUP5 000012b0: SWAP1 000012b1: SUB 000012b2: PUSH2 0x12e7 000012b5: JUMPI 000012b6: PUSH1 0x40 000012b8: MLOAD 000012b9: PUSH32 0x1e8107a000000000000000000000000000000000000000000000000000000000 000012da: DUP2 000012db: MSTORE 000012dc: PUSH1 0x04 000012de: ADD 000012df: PUSH1 0x40 000012e1: MLOAD 000012e2: DUP1 000012e3: SWAP2 000012e4: SUB 000012e5: SWAP1 000012e6: REVERT 000012e7: JUMPDEST 000012e8: PUSH1 0x40 000012ea: MLOAD 000012eb: PUSH32 0x4926898b00000000000000000000000000000000000000000000000000000000 0000130c: DUP2 0000130d: MSTORE 0000130e: PUSH1 0x04 00001310: ADD 00001311: PUSH1 0x40 00001313: MLOAD 00001314: DUP1 00001315: SWAP2 00001316: SUB 00001317: SWAP1 00001318: REVERT 00001319: JUMPDEST 0000131a: PUSH0 0000131b: PUSH2 0x1327 0000131e: PUSH1 0x14 00001320: DUP3 00001321: DUP8 00001322: DUP10 00001323: PUSH2 0x58ba 00001326: JUMP 00001327: JUMPDEST 00001328: PUSH2 0x1330 0000132b: SWAP2 0000132c: PUSH2 0x58e1 0000132f: JUMP 00001330: JUMPDEST 00001331: PUSH1 0x60 00001333: SHR 00001334: SWAP1 00001335: POP 00001336: CALLDATASIZE 00001337: PUSH0 00001338: PUSH2 0x1344 0000133b: DUP8 0000133c: PUSH1 0x14 0000133e: DUP2 0000133f: DUP12 00001340: PUSH2 0x58ba 00001343: JUMP 00001344: JUMPDEST 00001345: SWAP2 00001346: POP 00001347: SWAP2 00001348: POP 00001349: PUSH2 0x1353 0000134c: DUP4 0000134d: DUP4 0000134e: DUP4 0000134f: PUSH2 0x076b 00001352: JUMP 00001353: JUMPDEST 00001354: POP 00001355: POP 00001356: POP 00001357: JUMPDEST 00001358: PUSH0 00001359: PUSH2 0x1392 0000135c: PUSH2 0x136e 0000135f: PUSH2 0x136b 00001362: PUSH1 0x20 00001364: DUP12 00001365: ADD 00001366: DUP12 00001367: PUSH2 0x54c3 0000136a: JUMP 0000136b: JUMPDEST 0000136c: SWAP1 0000136d: JUMP 0000136e: JUMPDEST 0000136f: PUSH2 0x1381 00001372: PUSH2 0x136b 00001375: PUSH1 0x40 00001377: DUP13 00001378: ADD 00001379: PUSH1 0x20 0000137b: DUP14 0000137c: ADD 0000137d: PUSH2 0x54c3 00001380: JUMP 00001381: JUMPDEST 00001382: PUSH0 00001383: SWAP2 00001384: DUP3 00001385: MSTORE 00001386: PUSH1 0x20 00001388: MSTORE 00001389: PUSH1 0x40 0000138b: SWAP1 0000138c: KECCAK256 0000138d: PUSH1 0x28 0000138f: SHL 00001390: SWAP1 00001391: JUMP 00001392: JUMPDEST 00001393: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 000013b4: DUP2 000013b5: AND 000013b6: PUSH0 000013b7: SWAP1 000013b8: DUP2 000013b9: MSTORE 000013ba: PUSH1 0x02 000013bc: PUSH1 0x20 000013be: MSTORE 000013bf: PUSH1 0x40 000013c1: DUP2 000013c2: KECCAK256 000013c3: SLOAD 000013c4: PUSH3 0xffffff 000013c8: AND 000013c9: PUSH3 0x400000 000013cd: OR 000013ce: SWAP4 000013cf: POP 000013d0: SWAP1 000013d1: SWAP2 000013d2: POP 000013d3: PUSH2 0x13db 000013d6: DUP10 000013d7: PUSH2 0x265c 000013da: JUMP 000013db: JUMPDEST 000013dc: SWAP1 000013dd: POP 000013de: PUSH2 0x1421 000013e1: PUSH2 0x1416 000013e4: PUSH2 0x097b 000013e7: PUSH1 0x01 000013e9: PUSH1 0x01 000013eb: PUSH1 0xa0 000013ed: SHL 000013ee: SUB 000013ef: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00001410: AND 00001411: DUP5 00001412: PUSH2 0x2670 00001415: JUMP 00001416: JUMPDEST 00001417: PUSH1 0x08 00001419: SWAP1 0000141a: PUSH1 0x02 0000141c: SIGNEXTEND 0000141d: PUSH2 0x2a27 00001420: JUMP 00001421: JUMPDEST 00001422: POP 00001423: PUSH32 0x575e24b400000000000000000000000000000000000000000000000000000000 00001444: SWAP4 00001445: POP 00001446: PUSH0 00001447: SWAP3 00001448: POP 00001449: POP 0000144a: SWAP6 0000144b: POP 0000144c: SWAP6 0000144d: POP 0000144e: SWAP6 0000144f: SWAP3 00001450: POP 00001451: POP 00001452: POP 00001453: JUMP 00001454: JUMPDEST 00001455: PUSH0 00001456: PUSH1 0x01 00001458: DUP4 00001459: ADD 0000145a: DUP4 0000145b: CALLDATALOAD 0000145c: DUP3 0000145d: BYTE 0000145e: DUP1 0000145f: PUSH2 0x1551 00001462: JUMPI 00001463: PUSH1 0x40 00001465: DUP1 00001466: MLOAD 00001467: PUSH32 0xd505accf00000000000000000000000000000000000000000000000000000000 00001488: DUP2 00001489: MSTORE 0000148a: PUSH1 0x01 0000148c: PUSH1 0x01 0000148e: PUSH1 0xa0 00001490: SHL 00001491: SUB 00001492: DUP9 00001493: AND 00001494: PUSH1 0x04 00001496: DUP3 00001497: ADD 00001498: MSTORE 00001499: CALLER 0000149a: PUSH1 0x24 0000149c: DUP3 0000149d: ADD 0000149e: MSTORE 0000149f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000014c0: PUSH1 0x44 000014c2: DUP3 000014c3: ADD 000014c4: MSTORE 000014c5: PUSH1 0x14 000014c7: DUP5 000014c8: ADD 000014c9: CALLDATALOAD 000014ca: PUSH1 0xd8 000014cc: SHR 000014cd: PUSH1 0x64 000014cf: DUP3 000014d0: ADD 000014d1: DUP2 000014d2: SWAP1 000014d3: MSTORE 000014d4: PUSH1 0x19 000014d6: DUP6 000014d7: ADD 000014d8: CALLDATALOAD 000014d9: PUSH0 000014da: SWAP1 000014db: DUP2 000014dc: BYTE 000014dd: PUSH1 0x84 000014df: DUP5 000014e0: ADD 000014e1: DUP2 000014e2: SWAP1 000014e3: MSTORE 000014e4: PUSH1 0x1a 000014e6: DUP8 000014e7: ADD 000014e8: CALLDATALOAD 000014e9: PUSH1 0xa4 000014eb: DUP6 000014ec: ADD 000014ed: DUP2 000014ee: SWAP1 000014ef: MSTORE 000014f0: PUSH1 0x3a 000014f2: DUP9 000014f3: ADD 000014f4: CALLDATALOAD 000014f5: PUSH1 0xc4 000014f7: DUP7 000014f8: ADD 000014f9: DUP2 000014fa: SWAP1 000014fb: MSTORE 000014fc: SWAP6 000014fd: MLOAD 000014fe: PUSH1 0x5a 00001500: DUP10 00001501: ADD 00001502: SWAP9 00001503: CALLDATALOAD 00001504: PUSH1 0x60 00001506: SHR 00001507: SWAP7 00001508: SWAP5 00001509: SWAP6 0000150a: SWAP3 0000150b: SWAP5 0000150c: SWAP2 0000150d: SWAP4 0000150e: SWAP2 0000150f: SWAP3 00001510: DUP8 00001511: SWAP3 00001512: PUSH4 0xd505accf 00001517: SWAP3 00001518: PUSH1 0xe4 0000151a: DUP1 0000151b: DUP5 0000151c: ADD 0000151d: SWAP4 0000151e: DUP3 0000151f: SWAP1 00001520: SUB 00001521: ADD 00001522: DUP2 00001523: DUP4 00001524: DUP8 00001525: DUP1 00001526: EXTCODESIZE 00001527: ISZERO 00001528: DUP1 00001529: ISZERO 0000152a: PUSH2 0x1531 0000152d: JUMPI 0000152e: PUSH0 0000152f: DUP1 00001530: REVERT 00001531: JUMPDEST 00001532: POP 00001533: GAS 00001534: CALL 00001535: ISZERO 00001536: DUP1 00001537: ISZERO 00001538: PUSH2 0x1543 0000153b: JUMPI 0000153c: RETURNDATASIZE 0000153d: PUSH0 0000153e: DUP1 0000153f: RETURNDATACOPY 00001540: RETURNDATASIZE 00001541: PUSH0 00001542: REVERT 00001543: JUMPDEST 00001544: POP 00001545: POP 00001546: POP 00001547: POP 00001548: POP 00001549: POP 0000154a: POP 0000154b: POP 0000154c: POP 0000154d: PUSH2 0x1714 00001550: JUMP 00001551: JUMPDEST 00001552: PUSH1 0x01 00001554: DUP2 00001555: PUSH1 0xff 00001557: AND 00001558: SUB 00001559: PUSH2 0x162c 0000155c: JUMPI 0000155d: PUSH1 0x40 0000155f: MLOAD 00001560: PUSH32 0xd505accf00000000000000000000000000000000000000000000000000000000 00001581: DUP2 00001582: MSTORE 00001583: PUSH1 0x01 00001585: PUSH1 0x01 00001587: PUSH1 0xa0 00001589: SHL 0000158a: SUB 0000158b: DUP8 0000158c: AND 0000158d: PUSH1 0x04 0000158f: DUP3 00001590: ADD 00001591: MSTORE 00001592: CALLER 00001593: PUSH1 0x24 00001595: DUP3 00001596: DUP2 00001597: ADD 00001598: SWAP2 00001599: SWAP1 0000159a: SWAP2 0000159b: MSTORE 0000159c: PUSH1 0x14 0000159e: DUP5 0000159f: ADD 000015a0: CALLDATALOAD 000015a1: PUSH1 0x80 000015a3: SHR 000015a4: PUSH1 0x44 000015a6: DUP4 000015a7: ADD 000015a8: DUP2 000015a9: SWAP1 000015aa: MSTORE 000015ab: SWAP1 000015ac: DUP5 000015ad: ADD 000015ae: CALLDATALOAD 000015af: PUSH1 0xd8 000015b1: SHR 000015b2: PUSH1 0x64 000015b4: DUP4 000015b5: ADD 000015b6: DUP2 000015b7: SWAP1 000015b8: MSTORE 000015b9: PUSH1 0x29 000015bb: DUP6 000015bc: ADD 000015bd: CALLDATALOAD 000015be: PUSH0 000015bf: BYTE 000015c0: PUSH1 0x84 000015c2: DUP5 000015c3: ADD 000015c4: DUP2 000015c5: SWAP1 000015c6: MSTORE 000015c7: PUSH1 0x2a 000015c9: DUP7 000015ca: ADD 000015cb: CALLDATALOAD 000015cc: PUSH1 0xa4 000015ce: DUP6 000015cf: ADD 000015d0: DUP2 000015d1: SWAP1 000015d2: MSTORE 000015d3: PUSH1 0x4a 000015d5: DUP8 000015d6: ADD 000015d7: CALLDATALOAD 000015d8: PUSH1 0xc4 000015da: DUP7 000015db: ADD 000015dc: DUP2 000015dd: SWAP1 000015de: MSTORE 000015df: PUSH1 0x6a 000015e1: DUP9 000015e2: ADD 000015e3: SWAP8 000015e4: CALLDATALOAD 000015e5: PUSH1 0x60 000015e7: SHR 000015e8: SWAP6 000015e9: DUP7 000015ea: SWAP1 000015eb: PUSH4 0xd505accf 000015f0: SWAP1 000015f1: PUSH1 0xe4 000015f3: ADD 000015f4: JUMPDEST 000015f5: PUSH0 000015f6: PUSH1 0x40 000015f8: MLOAD 000015f9: DUP1 000015fa: DUP4 000015fb: SUB 000015fc: DUP2 000015fd: PUSH0 000015fe: DUP8 000015ff: DUP1 00001600: EXTCODESIZE 00001601: ISZERO 00001602: DUP1 00001603: ISZERO 00001604: PUSH2 0x160b 00001607: JUMPI 00001608: PUSH0 00001609: DUP1 0000160a: REVERT 0000160b: JUMPDEST 0000160c: POP 0000160d: GAS 0000160e: CALL 0000160f: ISZERO 00001610: DUP1 00001611: ISZERO 00001612: PUSH2 0x161d 00001615: JUMPI 00001616: RETURNDATASIZE 00001617: PUSH0 00001618: DUP1 00001619: RETURNDATACOPY 0000161a: RETURNDATASIZE 0000161b: PUSH0 0000161c: REVERT 0000161d: JUMPDEST 0000161e: POP 0000161f: POP 00001620: POP 00001621: POP 00001622: POP 00001623: POP 00001624: POP 00001625: POP 00001626: POP 00001627: POP 00001628: PUSH2 0x1714 0000162b: JUMP 0000162c: JUMPDEST 0000162d: PUSH1 0x02 0000162f: DUP2 00001630: PUSH1 0xff 00001632: AND 00001633: SUB 00001634: PUSH2 0x16d8 00001637: JUMPI 00001638: PUSH1 0x40 0000163a: MLOAD 0000163b: PUSH32 0x8fcbaf0c00000000000000000000000000000000000000000000000000000000 0000165c: DUP2 0000165d: MSTORE 0000165e: PUSH1 0x01 00001660: PUSH1 0x01 00001662: PUSH1 0xa0 00001664: SHL 00001665: SUB 00001666: DUP8 00001667: AND 00001668: PUSH1 0x04 0000166a: DUP3 0000166b: ADD 0000166c: MSTORE 0000166d: CALLER 0000166e: PUSH1 0x24 00001670: DUP3 00001671: ADD 00001672: MSTORE 00001673: PUSH1 0x14 00001675: DUP4 00001676: ADD 00001677: CALLDATALOAD 00001678: PUSH1 0xe0 0000167a: SHR 0000167b: PUSH1 0x44 0000167d: DUP3 0000167e: ADD 0000167f: DUP2 00001680: SWAP1 00001681: MSTORE 00001682: PUSH1 0x18 00001684: DUP5 00001685: ADD 00001686: CALLDATALOAD 00001687: PUSH1 0xd8 00001689: SHR 0000168a: PUSH1 0x64 0000168c: DUP4 0000168d: ADD 0000168e: DUP2 0000168f: SWAP1 00001690: MSTORE 00001691: PUSH1 0x01 00001693: PUSH1 0x84 00001695: DUP5 00001696: ADD 00001697: MSTORE 00001698: PUSH1 0x1d 0000169a: DUP6 0000169b: ADD 0000169c: CALLDATALOAD 0000169d: PUSH0 0000169e: BYTE 0000169f: PUSH1 0xa4 000016a1: DUP5 000016a2: ADD 000016a3: DUP2 000016a4: SWAP1 000016a5: MSTORE 000016a6: PUSH1 0x1e 000016a8: DUP7 000016a9: ADD 000016aa: CALLDATALOAD 000016ab: PUSH1 0xc4 000016ad: DUP6 000016ae: ADD 000016af: DUP2 000016b0: SWAP1 000016b1: MSTORE 000016b2: PUSH1 0x3e 000016b4: DUP8 000016b5: ADD 000016b6: CALLDATALOAD 000016b7: PUSH1 0xe4 000016b9: DUP7 000016ba: ADD 000016bb: DUP2 000016bc: SWAP1 000016bd: MSTORE 000016be: PUSH1 0x5e 000016c0: DUP9 000016c1: ADD 000016c2: SWAP8 000016c3: CALLDATALOAD 000016c4: PUSH1 0x60 000016c6: SHR 000016c7: SWAP6 000016c8: DUP7 000016c9: SWAP1 000016ca: PUSH4 0x8fcbaf0c 000016cf: SWAP1 000016d0: PUSH2 0x0104 000016d3: ADD 000016d4: PUSH2 0x15f4 000016d7: JUMP 000016d8: JUMPDEST 000016d9: PUSH1 0x40 000016db: MLOAD 000016dc: PUSH32 0x6f1d150900000000000000000000000000000000000000000000000000000000 000016fd: DUP2 000016fe: MSTORE 000016ff: PUSH1 0xff 00001701: DUP3 00001702: AND 00001703: PUSH1 0x04 00001705: DUP3 00001706: ADD 00001707: MSTORE 00001708: PUSH1 0x24 0000170a: ADD 0000170b: JUMPDEST 0000170c: PUSH1 0x40 0000170e: MLOAD 0000170f: DUP1 00001710: SWAP2 00001711: SUB 00001712: SWAP1 00001713: REVERT 00001714: JUMPDEST 00001715: PUSH2 0x171f 00001718: DUP3 00001719: DUP7 0000171a: DUP7 0000171b: PUSH2 0x2a2e 0000171e: JUMP 0000171f: JUMPDEST 00001720: PUSH4 0x24a2e44b 00001725: SWAP3 00001726: POP 00001727: POP 00001728: POP 00001729: JUMPDEST 0000172a: SWAP4 0000172b: SWAP3 0000172c: POP 0000172d: POP 0000172e: POP 0000172f: JUMP 00001730: JUMPDEST 00001731: PUSH0 00001732: DUP2 00001733: SLOAD 00001734: PUSH0 00001735: MSTORE 00001736: PUSH1 0x20 00001738: PUSH0 00001739: RETURN 0000173a: JUMPDEST 0000173b: PUSH2 0x174f 0000173e: PUSH1 0x01 00001740: PUSH1 0x01 00001742: PUSH1 0xa0 00001744: SHL 00001745: SUB 00001746: DUP5 00001747: AND 00001748: CALLER 00001749: ADDRESS 0000174a: DUP5 0000174b: PUSH2 0x2938 0000174e: JUMP 0000174f: JUMPDEST 00001750: PUSH1 0x01 00001752: PUSH1 0x01 00001754: PUSH1 0xa0 00001756: SHL 00001757: SUB 00001758: DUP1 00001759: DUP5 0000175a: AND 0000175b: PUSH0 0000175c: SWAP1 0000175d: DUP2 0000175e: MSTORE 0000175f: PUSH1 0x05 00001761: PUSH1 0x20 00001763: SWAP1 00001764: DUP2 00001765: MSTORE 00001766: PUSH1 0x40 00001768: DUP1 00001769: DUP4 0000176a: KECCAK256 0000176b: SWAP4 0000176c: DUP7 0000176d: AND 0000176e: DUP4 0000176f: MSTORE 00001770: SWAP3 00001771: SWAP1 00001772: MSTORE 00001773: SWAP1 00001774: DUP2 00001775: KECCAK256 00001776: DUP1 00001777: SLOAD 00001778: DUP4 00001779: SWAP3 0000177a: SWAP1 0000177b: PUSH2 0x1785 0000177e: SWAP1 0000177f: DUP5 00001780: SWAP1 00001781: PUSH2 0x5875 00001784: JUMP 00001785: JUMPDEST 00001786: SWAP1 00001787: SWAP2 00001788: SSTORE 00001789: POP 0000178a: POP 0000178b: POP 0000178c: POP 0000178d: POP 0000178e: JUMP 0000178f: JUMPDEST 00001790: PUSH32 0x0f00000000000000000000000000000000000000000000000000000000000000 000017b1: PUSH1 0x60 000017b3: DUP1 000017b4: PUSH0 000017b5: DUP1 000017b6: DUP1 000017b7: DUP4 000017b8: PUSH2 0x1825 000017bb: PUSH1 0x40 000017bd: DUP1 000017be: MLOAD 000017bf: DUP1 000017c0: DUP3 000017c1: ADD 000017c2: DUP3 000017c3: MSTORE 000017c4: PUSH1 0x08 000017c6: DUP2 000017c7: MSTORE 000017c8: PUSH32 0x416e677374726f6d000000000000000000000000000000000000000000000000 000017e9: PUSH1 0x20 000017eb: DUP1 000017ec: DUP4 000017ed: ADD 000017ee: SWAP2 000017ef: SWAP1 000017f0: SWAP2 000017f1: MSTORE 000017f2: DUP3 000017f3: MLOAD 000017f4: DUP1 000017f5: DUP5 000017f6: ADD 000017f7: SWAP1 000017f8: SWAP4 000017f9: MSTORE 000017fa: PUSH1 0x02 000017fc: DUP4 000017fd: MSTORE 000017fe: PUSH32 0x7631000000000000000000000000000000000000000000000000000000000000 0000181f: SWAP1 00001820: DUP4 00001821: ADD 00001822: MSTORE 00001823: SWAP2 00001824: JUMP 00001825: JUMPDEST 00001826: SWAP8 00001827: SWAP9 00001828: SWAP1 00001829: SWAP8 0000182a: SWAP7 0000182b: POP 0000182c: CHAINID 0000182d: SWAP6 0000182e: POP 0000182f: ADDRESS 00001830: SWAP5 00001831: POP 00001832: SWAP2 00001833: SWAP3 00001834: POP 00001835: SWAP1 00001836: JUMP 00001837: JUMPDEST 00001838: DUP3 00001839: PUSH1 0x01 0000183b: PUSH1 0x01 0000183d: PUSH1 0xa0 0000183f: SHL 00001840: SUB 00001841: AND 00001842: DUP5 00001843: PUSH1 0x01 00001845: PUSH1 0x01 00001847: PUSH1 0xa0 00001849: SHL 0000184a: SUB 0000184b: AND 0000184c: GT 0000184d: ISZERO 0000184e: PUSH2 0x1855 00001851: JUMPI 00001852: SWAP2 00001853: SWAP3 00001854: SWAP2 00001855: JUMPDEST 00001856: PUSH0 00001857: DUP5 00001858: DUP2 00001859: MSTORE 0000185a: PUSH1 0x20 0000185c: DUP5 0000185d: SWAP1 0000185e: MSTORE 0000185f: PUSH1 0x40 00001861: DUP2 00001862: KECCAK256 00001863: PUSH1 0x28 00001865: SHL 00001866: PUSH1 0x03 00001868: SLOAD 00001869: SWAP1 0000186a: SWAP2 0000186b: POP 0000186c: PUSH0 0000186d: SWAP1 0000186e: PUSH2 0x188d 00001871: SWAP1 00001872: PUSH9 0x010000000000000000 0000187c: SWAP1 0000187d: DIV 0000187e: PUSH1 0x01 00001880: PUSH1 0x01 00001882: PUSH1 0xa0 00001884: SHL 00001885: SUB 00001886: AND 00001887: DUP4 00001888: DUP7 00001889: PUSH2 0x2a4b 0000188c: JUMP 0000188d: JUMPDEST 0000188e: POP 0000188f: SWAP1 00001890: POP 00001891: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 000018b2: PUSH1 0x01 000018b4: PUSH1 0x01 000018b6: PUSH1 0xa0 000018b8: SHL 000018b9: SUB 000018ba: AND 000018bb: PUSH4 0x6276cbbe 000018c0: PUSH1 0x40 000018c2: MLOAD 000018c3: DUP1 000018c4: PUSH1 0xa0 000018c6: ADD 000018c7: PUSH1 0x40 000018c9: MSTORE 000018ca: DUP1 000018cb: PUSH2 0x18d1 000018ce: DUP11 000018cf: SWAP1 000018d0: JUMP 000018d1: JUMPDEST 000018d2: PUSH1 0x01 000018d4: PUSH1 0x01 000018d6: PUSH1 0xa0 000018d8: SHL 000018d9: SUB 000018da: AND 000018db: DUP2 000018dc: MSTORE 000018dd: PUSH1 0x20 000018df: ADD 000018e0: DUP9 000018e1: PUSH1 0x01 000018e3: PUSH1 0x01 000018e5: PUSH1 0xa0 000018e7: SHL 000018e8: SUB 000018e9: SWAP1 000018ea: DUP2 000018eb: AND 000018ec: DUP3 000018ed: MSTORE 000018ee: PUSH3 0x800000 000018f2: PUSH1 0x20 000018f4: DUP1 000018f5: DUP5 000018f6: ADD 000018f7: SWAP2 000018f8: SWAP1 000018f9: SWAP2 000018fa: MSTORE 000018fb: PUSH1 0x02 000018fd: DUP8 000018fe: DUP2 000018ff: SIGNEXTEND 00001900: PUSH1 0x40 00001902: DUP1 00001903: DUP7 00001904: ADD 00001905: SWAP2 00001906: SWAP1 00001907: SWAP2 00001908: MSTORE 00001909: ADDRESS 0000190a: PUSH1 0x60 0000190c: SWAP6 0000190d: DUP7 0000190e: ADD 0000190f: MSTORE 00001910: DUP1 00001911: MLOAD 00001912: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001933: PUSH1 0xe0 00001935: DUP10 00001936: SWAP1 00001937: SHL 00001938: AND 00001939: DUP2 0000193a: MSTORE 0000193b: DUP7 0000193c: MLOAD 0000193d: DUP6 0000193e: AND 0000193f: PUSH1 0x04 00001941: DUP3 00001942: ADD 00001943: MSTORE 00001944: SWAP3 00001945: DUP7 00001946: ADD 00001947: MLOAD 00001948: DUP5 00001949: AND 0000194a: PUSH1 0x24 0000194c: DUP5 0000194d: ADD 0000194e: MSTORE 0000194f: DUP6 00001950: ADD 00001951: MLOAD 00001952: PUSH3 0xffffff 00001956: AND 00001957: PUSH1 0x44 00001959: DUP4 0000195a: ADD 0000195b: MSTORE 0000195c: SWAP3 0000195d: DUP5 0000195e: ADD 0000195f: MLOAD 00001960: SWAP1 00001961: SWAP3 00001962: SIGNEXTEND 00001963: PUSH1 0x64 00001965: DUP4 00001966: ADD 00001967: MSTORE 00001968: PUSH1 0x80 0000196a: SWAP1 0000196b: SWAP3 0000196c: ADD 0000196d: MLOAD 0000196e: DUP3 0000196f: AND 00001970: PUSH1 0x84 00001972: DUP3 00001973: ADD 00001974: MSTORE 00001975: SWAP1 00001976: DUP7 00001977: AND 00001978: PUSH1 0xa4 0000197a: DUP3 0000197b: ADD 0000197c: MSTORE 0000197d: PUSH1 0xc4 0000197f: ADD 00001980: PUSH1 0x20 00001982: PUSH1 0x40 00001984: MLOAD 00001985: DUP1 00001986: DUP4 00001987: SUB 00001988: DUP2 00001989: PUSH0 0000198a: DUP8 0000198b: GAS 0000198c: CALL 0000198d: ISZERO 0000198e: DUP1 0000198f: ISZERO 00001990: PUSH2 0x199b 00001993: JUMPI 00001994: RETURNDATASIZE 00001995: PUSH0 00001996: DUP1 00001997: RETURNDATACOPY 00001998: RETURNDATASIZE 00001999: PUSH0 0000199a: REVERT 0000199b: JUMPDEST 0000199c: POP 0000199d: POP 0000199e: POP 0000199f: POP 000019a0: PUSH1 0x40 000019a2: MLOAD 000019a3: RETURNDATASIZE 000019a4: PUSH1 0x1f 000019a6: NOT 000019a7: PUSH1 0x1f 000019a9: DUP3 000019aa: ADD 000019ab: AND 000019ac: DUP3 000019ad: ADD 000019ae: DUP1 000019af: PUSH1 0x40 000019b1: MSTORE 000019b2: POP 000019b3: DUP2 000019b4: ADD 000019b5: SWAP1 000019b6: PUSH2 0x0ff6 000019b9: SWAP2 000019ba: SWAP1 000019bb: PUSH2 0x5947 000019be: JUMP 000019bf: JUMPDEST 000019c0: PUSH1 0x60 000019c2: PUSH2 0x19c9 000019c5: PUSH2 0x25fa 000019c8: JUMP 000019c9: JUMPDEST 000019ca: DUP3 000019cb: PUSH0 000019cc: PUSH2 0x19d4 000019cf: DUP3 000019d0: PUSH2 0x2ab5 000019d3: JUMP 000019d4: JUMPDEST 000019d5: PUSH1 0x03 000019d7: SLOAD 000019d8: SWAP2 000019d9: SWAP4 000019da: POP 000019db: SWAP2 000019dc: POP 000019dd: PUSH0 000019de: SWAP1 000019df: PUSH2 0x1a00 000019e2: SWAP1 000019e3: DUP5 000019e4: SWAP1 000019e5: DUP5 000019e6: SWAP1 000019e7: PUSH9 0x010000000000000000 000019f1: SWAP1 000019f2: DIV 000019f3: PUSH1 0x01 000019f5: PUSH1 0x01 000019f7: PUSH1 0xa0 000019f9: SHL 000019fa: SUB 000019fb: AND 000019fc: PUSH2 0x2b6c 000019ff: JUMP 00001a00: JUMPDEST 00001a01: SWAP1 00001a02: SWAP4 00001a03: POP 00001a04: SWAP1 00001a05: POP 00001a06: PUSH2 0x1a0e 00001a09: DUP3 00001a0a: PUSH2 0x2ce1 00001a0d: JUMP 00001a0e: JUMPDEST 00001a0f: PUSH2 0x1a18 00001a12: DUP4 00001a13: DUP3 00001a14: PUSH2 0x2d0c 00001a17: JUMP 00001a18: JUMPDEST 00001a19: SWAP3 00001a1a: POP 00001a1b: PUSH2 0x1a24 00001a1e: DUP4 00001a1f: DUP3 00001a20: PUSH2 0x2d98 00001a23: JUMP 00001a24: JUMPDEST 00001a25: SWAP3 00001a26: POP 00001a27: PUSH2 0x1a30 00001a2a: DUP4 00001a2b: DUP3 00001a2c: PUSH2 0x2e4b 00001a2f: JUMP 00001a30: JUMPDEST 00001a31: SWAP3 00001a32: POP 00001a33: PUSH2 0x1a3d 00001a36: DUP4 00001a37: DUP8 00001a38: DUP8 00001a39: PUSH2 0x2a2e 00001a3c: JUMP 00001a3d: JUMPDEST 00001a3e: PUSH2 0x1a46 00001a41: DUP3 00001a42: PUSH2 0x2eea 00001a45: JUMP 00001a46: JUMPDEST 00001a47: PUSH1 0x20 00001a49: PUSH0 00001a4a: MSTORE 00001a4b: PUSH0 00001a4c: PUSH1 0x20 00001a4e: MSTORE 00001a4f: PUSH1 0x40 00001a51: PUSH0 00001a52: RETURN 00001a53: JUMPDEST 00001a54: PUSH2 0x1a5b 00001a57: PUSH2 0x213a 00001a5a: JUMP 00001a5b: JUMPDEST 00001a5c: PUSH0 00001a5d: DUP1 00001a5e: SLOAD 00001a5f: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00001a80: AND 00001a81: PUSH1 0x01 00001a83: PUSH1 0x01 00001a85: PUSH1 0xa0 00001a87: SHL 00001a88: SUB 00001a89: SWAP3 00001a8a: SWAP1 00001a8b: SWAP3 00001a8c: AND 00001a8d: SWAP2 00001a8e: SWAP1 00001a8f: SWAP2 00001a90: OR 00001a91: SWAP1 00001a92: SSTORE 00001a93: JUMP 00001a94: JUMPDEST 00001a95: PUSH0 00001a96: DUP1 00001a97: PUSH2 0x1a9e 00001a9a: PUSH2 0x25fa 00001a9d: JUMP 00001a9e: JUMPDEST 00001a9f: PUSH0 00001aa0: DUP1 00001aa1: PUSH2 0x1ac6 00001aa4: PUSH2 0x1ab3 00001aa7: PUSH2 0x136b 00001aaa: PUSH1 0x20 00001aac: DUP13 00001aad: ADD 00001aae: DUP13 00001aaf: PUSH2 0x54c3 00001ab2: JUMP 00001ab3: JUMPDEST 00001ab4: PUSH2 0x1381 00001ab7: PUSH2 0x136b 00001aba: PUSH1 0x40 00001abc: DUP14 00001abd: ADD 00001abe: PUSH1 0x20 00001ac0: DUP15 00001ac1: ADD 00001ac2: PUSH2 0x54c3 00001ac5: JUMP 00001ac6: JUMPDEST 00001ac7: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 00001ae8: DUP2 00001ae9: AND 00001aea: PUSH0 00001aeb: SWAP1 00001aec: DUP2 00001aed: MSTORE 00001aee: PUSH1 0x02 00001af0: PUSH1 0x20 00001af2: SWAP1 00001af3: DUP2 00001af4: MSTORE 00001af5: PUSH1 0x40 00001af7: DUP3 00001af8: KECCAK256 00001af9: SLOAD 00001afa: SWAP3 00001afb: SWAP4 00001afc: POP 00001afd: PUSH4 0x01000000 00001b02: SWAP1 00001b03: SWAP3 00001b04: DIV 00001b05: PUSH3 0xffffff 00001b09: AND 00001b0a: SWAP2 00001b0b: DUP11 00001b0c: ADD 00001b0d: DUP1 00001b0e: CALLDATALOAD 00001b0f: DUP3 00001b10: SGT 00001b11: SWAP2 00001b12: SWAP1 00001b13: PUSH2 0x1b1c 00001b16: SWAP1 00001b17: DUP13 00001b18: PUSH2 0x5962 00001b1b: JUMP 00001b1c: JUMPDEST 00001b1d: ISZERO 00001b1e: ISZERO 00001b1f: DUP3 00001b20: ISZERO 00001b21: ISZERO 00001b22: SUB 00001b23: PUSH2 0x1b35 00001b26: JUMPI 00001b27: PUSH2 0x1b30 00001b2a: DUP11 00001b2b: PUSH1 0x0f 00001b2d: SIGNEXTEND 00001b2e: SWAP1 00001b2f: JUMP 00001b30: JUMPDEST 00001b31: PUSH2 0x1b3f 00001b34: JUMP 00001b35: JUMPDEST 00001b36: PUSH2 0x1b3f 00001b39: DUP11 00001b3a: PUSH1 0x80 00001b3c: SAR 00001b3d: SWAP1 00001b3e: JUMP 00001b3f: JUMPDEST 00001b40: SWAP1 00001b41: POP 00001b42: PUSH0 00001b43: DUP1 00001b44: DUP3 00001b45: PUSH1 0x0f 00001b47: SIGNEXTEND 00001b48: SLT 00001b49: PUSH2 0x1b52 00001b4c: JUMPI 00001b4d: DUP2 00001b4e: PUSH2 0x1b5b 00001b51: JUMP 00001b52: JUMPDEST 00001b53: PUSH2 0x1b5b 00001b56: DUP3 00001b57: PUSH2 0x5981 00001b5a: JUMP 00001b5b: JUMPDEST 00001b5c: SWAP1 00001b5d: POP 00001b5e: DUP3 00001b5f: PUSH2 0x1b99 00001b62: JUMPI 00001b63: DUP1 00001b64: PUSH2 0x1b70 00001b67: DUP6 00001b68: PUSH3 0x0f4240 00001b6c: PUSH2 0x59bd 00001b6f: JUMP 00001b70: JUMPDEST 00001b71: PUSH1 0x02 00001b73: SIGNEXTEND 00001b74: PUSH2 0x1b80 00001b77: PUSH3 0x0f4240 00001b7b: DUP5 00001b7c: PUSH2 0x59fe 00001b7f: JUMP 00001b80: JUMPDEST 00001b81: PUSH2 0x1b8a 00001b84: SWAP2 00001b85: SWAP1 00001b86: PUSH2 0x5a4a 00001b89: JUMP 00001b8a: JUMPDEST 00001b8b: PUSH2 0x1b94 00001b8e: SWAP2 00001b8f: SWAP1 00001b90: PUSH2 0x5abd 00001b93: JUMP 00001b94: JUMPDEST 00001b95: PUSH2 0x1bb5 00001b98: JUMP 00001b99: JUMPDEST 00001b9a: PUSH3 0x0f4240 00001b9e: PUSH2 0x1bab 00001ba1: PUSH1 0x02 00001ba3: DUP7 00001ba4: SWAP1 00001ba5: SIGNEXTEND 00001ba6: DUP4 00001ba7: PUSH2 0x59fe 00001baa: JUMP 00001bab: JUMPDEST 00001bac: PUSH2 0x1bb5 00001baf: SWAP2 00001bb0: SWAP1 00001bb1: PUSH2 0x5a4a 00001bb4: JUMP 00001bb5: JUMPDEST 00001bb6: SWAP6 00001bb7: POP 00001bb8: POP 00001bb9: PUSH1 0x01 00001bbb: PUSH1 0x01 00001bbd: PUSH1 0xa0 00001bbf: SHL 00001bc0: SUB 00001bc1: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00001be2: AND 00001be3: SWAP1 00001be4: POP 00001be5: PUSH4 0x156e29f6 00001bea: PUSH32 0x00000000000000000000000059a82241ce490fb77370e3f614de04aa188e13d2 00001c0b: PUSH2 0x1c5a 00001c0e: PUSH2 0x1c1a 00001c11: PUSH1 0x20 00001c13: DUP16 00001c14: ADD 00001c15: DUP16 00001c16: PUSH2 0x5962 00001c19: JUMP 00001c1a: JUMPDEST 00001c1b: ISZERO 00001c1c: ISZERO 00001c1d: DUP6 00001c1e: ISZERO 00001c1f: ISZERO 00001c20: SUB 00001c21: PUSH2 0x1c3c 00001c24: JUMPI 00001c25: DUP15 00001c26: PUSH1 0x20 00001c28: ADD 00001c29: PUSH1 0x20 00001c2b: DUP2 00001c2c: ADD 00001c2d: SWAP1 00001c2e: PUSH2 0x1c37 00001c31: SWAP2 00001c32: SWAP1 00001c33: PUSH2 0x54c3 00001c36: JUMP 00001c37: JUMPDEST 00001c38: PUSH2 0x1c4e 00001c3b: JUMP 00001c3c: JUMPDEST 00001c3d: DUP15 00001c3e: PUSH0 00001c3f: ADD 00001c40: PUSH1 0x20 00001c42: DUP2 00001c43: ADD 00001c44: SWAP1 00001c45: PUSH2 0x1c4e 00001c48: SWAP2 00001c49: SWAP1 00001c4a: PUSH2 0x54c3 00001c4d: JUMP 00001c4e: JUMPDEST 00001c4f: PUSH1 0x01 00001c51: PUSH1 0x01 00001c53: PUSH1 0xa0 00001c55: SHL 00001c56: SUB 00001c57: AND 00001c58: SWAP1 00001c59: JUMP 00001c5a: JUMPDEST 00001c5b: PUSH1 0x40 00001c5d: MLOAD 00001c5e: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001c7f: PUSH1 0xe0 00001c81: DUP6 00001c82: SWAP1 00001c83: SHL 00001c84: AND 00001c85: DUP2 00001c86: MSTORE 00001c87: PUSH1 0x01 00001c89: PUSH1 0x01 00001c8b: PUSH1 0xa0 00001c8d: SHL 00001c8e: SUB 00001c8f: SWAP1 00001c90: SWAP3 00001c91: AND 00001c92: PUSH1 0x04 00001c94: DUP4 00001c95: ADD 00001c96: MSTORE 00001c97: PUSH1 0x24 00001c99: DUP3 00001c9a: ADD 00001c9b: MSTORE 00001c9c: PUSH16 0xffffffffffffffffffffffffffffffff 00001cad: DUP8 00001cae: AND 00001caf: PUSH1 0x44 00001cb1: DUP3 00001cb2: ADD 00001cb3: MSTORE 00001cb4: PUSH1 0x64 00001cb6: ADD 00001cb7: PUSH0 00001cb8: PUSH1 0x40 00001cba: MLOAD 00001cbb: DUP1 00001cbc: DUP4 00001cbd: SUB 00001cbe: DUP2 00001cbf: PUSH0 00001cc0: DUP8 00001cc1: DUP1 00001cc2: EXTCODESIZE 00001cc3: ISZERO 00001cc4: DUP1 00001cc5: ISZERO 00001cc6: PUSH2 0x1ccd 00001cc9: JUMPI 00001cca: PUSH0 00001ccb: DUP1 00001ccc: REVERT 00001ccd: JUMPDEST 00001cce: POP 00001ccf: GAS 00001cd0: CALL 00001cd1: ISZERO 00001cd2: DUP1 00001cd3: ISZERO 00001cd4: PUSH2 0x1cdf 00001cd7: JUMPI 00001cd8: RETURNDATASIZE 00001cd9: PUSH0 00001cda: DUP1 00001cdb: RETURNDATACOPY 00001cdc: RETURNDATASIZE 00001cdd: PUSH0 00001cde: REVERT 00001cdf: JUMPDEST 00001ce0: POP 00001ce1: POP 00001ce2: POP 00001ce3: POP 00001ce4: POP 00001ce5: POP 00001ce6: POP 00001ce7: PUSH0 00001ce8: PUSH2 0x1cf0 00001ceb: DUP10 00001cec: PUSH2 0x265c 00001cef: JUMP 00001cf0: JUMPDEST 00001cf1: SWAP1 00001cf2: POP 00001cf3: PUSH0 00001cf4: PUSH2 0x1d29 00001cf7: PUSH2 0x097b 00001cfa: PUSH1 0x01 00001cfc: PUSH1 0x01 00001cfe: PUSH1 0xa0 00001d00: SHL 00001d01: SUB 00001d02: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00001d23: AND 00001d24: DUP5 00001d25: PUSH2 0x2670 00001d28: JUMP 00001d29: JUMPDEST 00001d2a: SWAP1 00001d2b: POP 00001d2c: PUSH2 0x1d7e 00001d2f: DUP3 00001d30: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00001d51: PUSH1 0x08 00001d53: TLOAD 00001d54: DUP5 00001d55: DUP15 00001d56: PUSH1 0x60 00001d58: ADD 00001d59: PUSH1 0x20 00001d5b: DUP2 00001d5c: ADD 00001d5d: SWAP1 00001d5e: PUSH2 0x1d67 00001d61: SWAP2 00001d62: SWAP1 00001d63: PUSH2 0x57cc 00001d66: JUMP 00001d67: JUMPDEST 00001d68: PUSH0 00001d69: DUP9 00001d6a: DUP2 00001d6b: MSTORE 00001d6c: PUSH1 0x07 00001d6e: PUSH1 0x20 00001d70: MSTORE 00001d71: PUSH1 0x40 00001d73: SWAP1 00001d74: KECCAK256 00001d75: SWAP5 00001d76: SWAP4 00001d77: SWAP3 00001d78: SWAP2 00001d79: SWAP1 00001d7a: PUSH2 0x3112 00001d7d: JUMP 00001d7e: JUMPDEST 00001d7f: POP 00001d80: PUSH32 0xb47b2fb100000000000000000000000000000000000000000000000000000000 00001da1: SWAP4 00001da2: POP 00001da3: SWAP1 00001da4: SWAP2 00001da5: POP 00001da6: POP 00001da7: JUMPDEST 00001da8: SWAP7 00001da9: POP 00001daa: SWAP7 00001dab: SWAP5 00001dac: POP 00001dad: POP 00001dae: POP 00001daf: POP 00001db0: POP 00001db1: JUMP 00001db2: JUMPDEST 00001db3: PUSH2 0x1dba 00001db6: PUSH2 0x213a 00001db9: JUMP 00001dba: JUMPDEST 00001dbb: PUSH0 00001dbc: JUMPDEST 00001dbd: DUP2 00001dbe: DUP2 00001dbf: LT 00001dc0: ISZERO 00001dc1: PUSH2 0x0506 00001dc4: JUMPI 00001dc5: PUSH0 00001dc6: DUP4 00001dc7: DUP4 00001dc8: DUP4 00001dc9: DUP2 00001dca: DUP2 00001dcb: LT 00001dcc: PUSH2 0x1dd7 00001dcf: JUMPI 00001dd0: PUSH2 0x1dd7 00001dd3: PUSH2 0x5791 00001dd6: JUMP 00001dd7: JUMPDEST 00001dd8: SWAP1 00001dd9: POP 00001dda: PUSH1 0x20 00001ddc: MUL 00001ddd: ADD 00001dde: PUSH1 0x20 00001de0: DUP2 00001de1: ADD 00001de2: SWAP1 00001de3: PUSH2 0x1dec 00001de6: SWAP2 00001de7: SWAP1 00001de8: PUSH2 0x54c3 00001deb: JUMP 00001dec: JUMPDEST 00001ded: PUSH1 0x01 00001def: PUSH1 0x01 00001df1: PUSH1 0xa0 00001df3: SHL 00001df4: SUB 00001df5: AND 00001df6: PUSH0 00001df7: SWAP1 00001df8: DUP2 00001df9: MSTORE 00001dfa: PUSH1 0x01 00001dfc: PUSH1 0x20 00001dfe: DUP2 00001dff: SWAP1 00001e00: MSTORE 00001e01: PUSH1 0x40 00001e03: SWAP1 00001e04: SWAP2 00001e05: KECCAK256 00001e06: DUP1 00001e07: SLOAD 00001e08: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00001e29: DUP2 00001e2a: AND 00001e2b: PUSH1 0xff 00001e2d: SWAP1 00001e2e: SWAP2 00001e2f: AND 00001e30: ISZERO 00001e31: OR 00001e32: SWAP1 00001e33: SSTORE 00001e34: SWAP2 00001e35: SWAP1 00001e36: SWAP2 00001e37: ADD 00001e38: SWAP1 00001e39: POP 00001e3a: PUSH2 0x1dbc 00001e3d: JUMP 00001e3e: JUMPDEST 00001e3f: PUSH1 0x01 00001e41: PUSH1 0x01 00001e43: PUSH1 0xa0 00001e45: SHL 00001e46: SUB 00001e47: DUP4 00001e48: AND 00001e49: PUSH0 00001e4a: SWAP1 00001e4b: DUP2 00001e4c: MSTORE 00001e4d: PUSH1 0x05 00001e4f: PUSH1 0x20 00001e51: SWAP1 00001e52: DUP2 00001e53: MSTORE 00001e54: PUSH1 0x40 00001e56: DUP1 00001e57: DUP4 00001e58: KECCAK256 00001e59: CALLER 00001e5a: DUP5 00001e5b: MSTORE 00001e5c: SWAP1 00001e5d: SWAP2 00001e5e: MSTORE 00001e5f: DUP2 00001e60: KECCAK256 00001e61: DUP1 00001e62: SLOAD 00001e63: DUP4 00001e64: SWAP3 00001e65: SWAP1 00001e66: PUSH2 0x1e70 00001e69: SWAP1 00001e6a: DUP5 00001e6b: SWAP1 00001e6c: PUSH2 0x5b0b 00001e6f: JUMP 00001e70: JUMPDEST 00001e71: SWAP1 00001e72: SWAP2 00001e73: SSTORE 00001e74: POP 00001e75: PUSH2 0x0506 00001e78: SWAP1 00001e79: POP 00001e7a: PUSH1 0x01 00001e7c: PUSH1 0x01 00001e7e: PUSH1 0xa0 00001e80: SHL 00001e81: SUB 00001e82: DUP5 00001e83: AND 00001e84: DUP4 00001e85: DUP4 00001e86: PUSH2 0x27e2 00001e89: JUMP 00001e8a: JUMPDEST 00001e8b: PUSH2 0x1e92 00001e8e: PUSH2 0x213a 00001e91: JUMP 00001e92: JUMPDEST 00001e93: PUSH2 0x1ea6 00001e96: PUSH1 0x01 00001e98: PUSH1 0x01 00001e9a: PUSH1 0xa0 00001e9c: SHL 00001e9d: SUB 00001e9e: DUP4 00001e9f: AND 00001ea0: CALLER 00001ea1: DUP4 00001ea2: PUSH2 0x27e2 00001ea5: JUMP 00001ea6: JUMPDEST 00001ea7: POP 00001ea8: POP 00001ea9: JUMP 00001eaa: JUMPDEST 00001eab: PUSH2 0x1eb2 00001eae: PUSH2 0x213a 00001eb1: JUMP 00001eb2: JUMPDEST 00001eb3: PUSH1 0x03 00001eb5: SLOAD 00001eb6: PUSH1 0x01 00001eb8: PUSH1 0x01 00001eba: PUSH1 0xa0 00001ebc: SHL 00001ebd: SUB 00001ebe: PUSH9 0x010000000000000000 00001ec8: SWAP1 00001ec9: SWAP2 00001eca: DIV 00001ecb: DUP2 00001ecc: AND 00001ecd: SWAP1 00001ece: DUP4 00001ecf: AND 00001ed0: DUP2 00001ed1: EQ 00001ed2: PUSH2 0x1f07 00001ed5: JUMPI 00001ed6: PUSH1 0x40 00001ed8: MLOAD 00001ed9: PUSH32 0xf21fd99f00000000000000000000000000000000000000000000000000000000 00001efa: DUP2 00001efb: MSTORE 00001efc: PUSH1 0x04 00001efe: ADD 00001eff: PUSH1 0x40 00001f01: MLOAD 00001f02: DUP1 00001f03: SWAP2 00001f04: SUB 00001f05: SWAP1 00001f06: REVERT 00001f07: JUMPDEST 00001f08: PUSH1 0x03 00001f0a: SLOAD 00001f0b: PUSH0 00001f0c: SWAP1 00001f0d: PUSH2 0x1f2a 00001f10: SWAP1 00001f11: PUSH9 0x010000000000000000 00001f1b: SWAP1 00001f1c: DIV 00001f1d: PUSH1 0x01 00001f1f: PUSH1 0x01 00001f21: PUSH1 0xa0 00001f23: SHL 00001f24: SUB 00001f25: AND 00001f26: PUSH2 0x319b 00001f29: JUMP 00001f2a: JUMPDEST 00001f2b: SWAP1 00001f2c: POP 00001f2d: PUSH2 0x1f37 00001f30: DUP2 00001f31: DUP7 00001f32: DUP6 00001f33: PUSH2 0x31c2 00001f36: JUMP 00001f37: JUMPDEST 00001f38: PUSH2 0x1f40 00001f3b: DUP2 00001f3c: PUSH2 0x232d 00001f3f: JUMP 00001f40: JUMPDEST 00001f41: PUSH1 0x03 00001f43: DUP1 00001f44: SLOAD 00001f45: PUSH1 0x01 00001f47: PUSH1 0x01 00001f49: PUSH1 0xa0 00001f4b: SHL 00001f4c: SUB 00001f4d: SWAP3 00001f4e: SWAP1 00001f4f: SWAP3 00001f50: AND 00001f51: PUSH9 0x010000000000000000 00001f5b: MUL 00001f5c: PUSH32 0xffffffff0000000000000000000000000000000000000000ffffffffffffffff 00001f7d: SWAP1 00001f7e: SWAP3 00001f7f: AND 00001f80: SWAP2 00001f81: SWAP1 00001f82: SWAP2 00001f83: OR 00001f84: SWAP1 00001f85: SSTORE 00001f86: POP 00001f87: POP 00001f88: POP 00001f89: POP 00001f8a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 00001fab: AND 00001fac: PUSH0 00001fad: SWAP1 00001fae: DUP2 00001faf: MSTORE 00001fb0: PUSH1 0x02 00001fb2: PUSH1 0x20 00001fb4: MSTORE 00001fb5: PUSH1 0x40 00001fb7: SWAP1 00001fb8: KECCAK256 00001fb9: DUP1 00001fba: SLOAD 00001fbb: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000 00001fdc: AND 00001fdd: SWAP1 00001fde: SSTORE 00001fdf: JUMP 00001fe0: JUMPDEST 00001fe1: PUSH1 0x01 00001fe3: PUSH1 0x01 00001fe5: PUSH1 0xa0 00001fe7: SHL 00001fe8: SUB 00001fe9: DUP3 00001fea: AND 00001feb: PUSH0 00001fec: SWAP1 00001fed: DUP2 00001fee: MSTORE 00001fef: PUSH1 0x05 00001ff1: PUSH1 0x20 00001ff3: SWAP1 00001ff4: DUP2 00001ff5: MSTORE 00001ff6: PUSH1 0x40 00001ff8: DUP1 00001ff9: DUP4 00001ffa: KECCAK256 00001ffb: CALLER 00001ffc: DUP5 00001ffd: MSTORE 00001ffe: SWAP1 00001fff: SWAP2 00002000: MSTORE 00002001: DUP2 00002002: KECCAK256 00002003: DUP1 00002004: SLOAD 00002005: DUP4 00002006: SWAP3 00002007: SWAP1 00002008: PUSH2 0x2012 0000200b: SWAP1 0000200c: DUP5 0000200d: SWAP1 0000200e: PUSH2 0x5b0b 00002011: JUMP 00002012: JUMPDEST 00002013: SWAP1 00002014: SWAP2 00002015: SSTORE 00002016: POP 00002017: PUSH2 0x1ea6 0000201a: SWAP1 0000201b: POP 0000201c: PUSH1 0x01 0000201e: PUSH1 0x01 00002020: PUSH1 0xa0 00002022: SHL 00002023: SUB 00002024: DUP4 00002025: AND 00002026: CALLER 00002027: DUP4 00002028: PUSH2 0x27e2 0000202b: JUMP 0000202c: JUMPDEST 0000202d: PUSH1 0x03 0000202f: SLOAD 00002030: NUMBER 00002031: PUSH8 0xffffffffffffffff 0000203a: SWAP1 0000203b: SWAP2 0000203c: AND 0000203d: SUB 0000203e: PUSH2 0x2073 00002041: JUMPI 00002042: PUSH1 0x40 00002044: MLOAD 00002045: PUSH32 0xd8a6b89b00000000000000000000000000000000000000000000000000000000 00002066: DUP2 00002067: MSTORE 00002068: PUSH1 0x04 0000206a: ADD 0000206b: PUSH1 0x40 0000206d: MLOAD 0000206e: DUP1 0000206f: SWAP2 00002070: SUB 00002071: SWAP1 00002072: REVERT 00002073: JUMPDEST 00002074: CALLER 00002075: PUSH0 00002076: SWAP1 00002077: DUP2 00002078: MSTORE 00002079: PUSH1 0x01 0000207b: PUSH1 0x20 0000207d: MSTORE 0000207e: PUSH1 0x40 00002080: SWAP1 00002081: KECCAK256 00002082: SLOAD 00002083: PUSH1 0xff 00002085: AND 00002086: PUSH2 0x20bb 00002089: JUMPI 0000208a: PUSH1 0x40 0000208c: MLOAD 0000208d: PUSH32 0x5cd26b6800000000000000000000000000000000000000000000000000000000 000020ae: DUP2 000020af: MSTORE 000020b0: PUSH1 0x04 000020b2: ADD 000020b3: PUSH1 0x40 000020b5: MLOAD 000020b6: DUP1 000020b7: SWAP2 000020b8: SUB 000020b9: SWAP1 000020ba: REVERT 000020bb: JUMPDEST 000020bc: PUSH2 0x20c4 000020bf: NUMBER 000020c0: PUSH2 0x25dd 000020c3: JUMP 000020c4: JUMPDEST 000020c5: PUSH1 0x03 000020c7: DUP1 000020c8: SLOAD 000020c9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 000020ea: AND 000020eb: PUSH8 0xffffffffffffffff 000020f4: SWAP3 000020f5: SWAP1 000020f6: SWAP3 000020f7: AND 000020f8: SWAP2 000020f9: SWAP1 000020fa: SWAP2 000020fb: OR 000020fc: SWAP1 000020fd: SSTORE 000020fe: JUMP 000020ff: JUMPDEST 00002100: DUP1 00002101: PUSH1 0x0c 00002103: MSTORE 00002104: PUSH4 0xdaa050e9 00002109: PUSH1 0x04 0000210b: MSTORE 0000210c: DUP2 0000210d: PUSH0 0000210e: MSTORE 0000210f: PUSH1 0x1f 00002111: PUSH1 0x0c 00002113: KECCAK256 00002114: PUSH1 0x01 00002116: PUSH1 0xff 00002118: DUP4 00002119: AND 0000211a: SHL 0000211b: DUP1 0000211c: DUP3 0000211d: SLOAD 0000211e: XOR 0000211f: DUP2 00002120: DUP2 00002121: AND 00002122: PUSH2 0x2132 00002125: JUMPI 00002126: PUSH4 0x8cb88872 0000212b: PUSH0 0000212c: MSTORE 0000212d: PUSH1 0x04 0000212f: PUSH1 0x1c 00002131: REVERT 00002132: JUMPDEST 00002133: SWAP1 00002134: SWAP2 00002135: SSTORE 00002136: POP 00002137: POP 00002138: POP 00002139: JUMP 0000213a: JUMPDEST 0000213b: PUSH0 0000213c: SLOAD 0000213d: PUSH1 0x01 0000213f: PUSH1 0x01 00002141: PUSH1 0xa0 00002143: SHL 00002144: SUB 00002145: AND 00002146: CALLER 00002147: EQ 00002148: PUSH2 0x217d 0000214b: JUMPI 0000214c: PUSH1 0x40 0000214e: MLOAD 0000214f: PUSH32 0x23019e6700000000000000000000000000000000000000000000000000000000 00002170: DUP2 00002171: MSTORE 00002172: PUSH1 0x04 00002174: ADD 00002175: PUSH1 0x40 00002177: MLOAD 00002178: DUP1 00002179: SWAP2 0000217a: SUB 0000217b: SWAP1 0000217c: REVERT 0000217d: JUMPDEST 0000217e: JUMP 0000217f: JUMPDEST 00002180: PUSH1 0x40 00002182: DUP1 00002183: MLOAD 00002184: DUP1 00002185: DUP3 00002186: ADD 00002187: SWAP1 00002188: SWAP2 00002189: MSTORE 0000218a: PUSH1 0x60 0000218c: DUP2 0000218d: MSTORE 0000218e: PUSH0 0000218f: PUSH1 0x20 00002191: DUP3 00002192: ADD 00002193: MSTORE 00002194: PUSH0 00002195: PUSH2 0x21a6 00002198: DUP5 00002199: PUSH1 0x01 0000219b: PUSH1 0x01 0000219d: PUSH1 0xa0 0000219f: SHL 000021a0: SUB 000021a1: AND 000021a2: PUSH2 0x32ae 000021a5: JUMP 000021a6: JUMPDEST 000021a7: SWAP1 000021a8: POP 000021a9: PUSH0 000021aa: PUSH2 0x21b3 000021ad: DUP5 000021ae: DUP4 000021af: PUSH2 0x5875 000021b2: JUMP 000021b3: JUMPDEST 000021b4: PUSH1 0x20 000021b6: DUP5 000021b7: DUP2 000021b8: ADD 000021b9: DUP3 000021ba: SWAP1 000021bb: MSTORE 000021bc: PUSH1 0x40 000021be: DUP1 000021bf: MLOAD 000021c0: DUP4 000021c1: DUP4 000021c2: MUL 000021c3: DUP2 000021c4: ADD 000021c5: DUP4 000021c6: ADD 000021c7: SWAP1 000021c8: SWAP2 000021c9: MSTORE 000021ca: PUSH0 000021cb: DUP2 000021cc: MSTORE 000021cd: DUP1 000021ce: DUP7 000021cf: MSTORE 000021d0: SWAP2 000021d1: SWAP3 000021d2: POP 000021d3: DUP4 000021d4: DUP2 000021d5: MUL 000021d6: SWAP1 000021d7: DUP2 000021d8: SWAP1 000021d9: PUSH1 0x01 000021db: SWAP1 000021dc: DUP5 000021dd: ADD 000021de: DUP10 000021df: EXTCODECOPY 000021e0: POP 000021e1: PUSH2 0x21ea 000021e4: DUP5 000021e5: DUP5 000021e6: PUSH2 0x2301 000021e9: JUMP 000021ea: JUMPDEST 000021eb: POP 000021ec: POP 000021ed: POP 000021ee: SWAP3 000021ef: SWAP2 000021f0: POP 000021f1: POP 000021f2: JUMP 000021f3: JUMPDEST 000021f4: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 00002215: DUP3 00002216: DUP2 00002217: AND 00002218: SWAP1 00002219: DUP3 0000221a: AND 0000221b: EQ 0000221c: JUMPDEST 0000221d: SWAP3 0000221e: SWAP2 0000221f: POP 00002220: POP 00002221: JUMP 00002222: JUMPDEST 00002223: PUSH0 00002224: PUSH2 0x222c 00002227: DUP3 00002228: PUSH2 0x32c4 0000222b: JUMP 0000222c: JUMPDEST 0000222d: POP 0000222e: PUSH6 0xffffff000000 00002235: PUSH2 0xffff 00002238: SWAP2 00002239: DUP3 0000223a: AND 0000223b: PUSH1 0x18 0000223d: DUP5 0000223e: DUP2 0000223f: SHR 00002240: SWAP4 00002241: SWAP1 00002242: SWAP4 00002243: AND 00002244: XOR 00002245: SWAP1 00002246: SWAP2 00002247: SHL 00002248: AND 00002249: XOR 0000224a: SWAP1 0000224b: JUMP 0000224c: JUMPDEST 0000224d: PUSH0 0000224e: PUSH2 0x2256 00002251: DUP3 00002252: PUSH2 0x3313 00002255: JUMP 00002256: JUMPDEST 00002257: POP 00002258: PUSH3 0xffffff 0000225c: DUP1 0000225d: DUP4 0000225e: AND 0000225f: SWAP2 00002260: SWAP1 00002261: SWAP2 00002262: XOR 00002263: AND 00002264: XOR 00002265: SWAP1 00002266: JUMP 00002267: JUMPDEST 00002268: PUSH0 00002269: PUSH2 0x2271 0000226c: DUP4 0000226d: PUSH2 0x32c4 00002270: JUMP 00002271: JUMPDEST 00002272: PUSH2 0x227a 00002275: DUP3 00002276: PUSH2 0x3313 00002279: JUMP 0000227a: JUMPDEST 0000227b: PUSH2 0x22aa 0000227e: DUP3 0000227f: PUSH2 0x061c 00002282: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 000022a3: DUP8 000022a4: AND 000022a5: DUP7 000022a6: PUSH2 0x2222 000022a9: JUMP 000022aa: JUMPDEST 000022ab: SWAP5 000022ac: SWAP4 000022ad: POP 000022ae: POP 000022af: POP 000022b0: POP 000022b1: JUMP 000022b2: JUMPDEST 000022b3: DUP2 000022b4: MLOAD 000022b5: MLOAD 000022b6: PUSH1 0x20 000022b8: DUP4 000022b9: ADD 000022ba: MLOAD 000022bb: DUP2 000022bc: SUB 000022bd: PUSH2 0x22f2 000022c0: JUMPI 000022c1: PUSH1 0x40 000022c3: MLOAD 000022c4: PUSH32 0x5cef583a00000000000000000000000000000000000000000000000000000000 000022e5: DUP2 000022e6: MSTORE 000022e7: PUSH1 0x04 000022e9: ADD 000022ea: PUSH1 0x40 000022ec: MLOAD 000022ed: DUP1 000022ee: SWAP2 000022ef: SUB 000022f0: SWAP1 000022f1: REVERT 000022f2: JUMPDEST 000022f3: PUSH2 0x2306 000022f6: DUP4 000022f7: PUSH2 0x2301 000022fa: DUP4 000022fb: PUSH1 0x01 000022fd: PUSH2 0x5875 00002300: JUMP 00002301: JUMPDEST 00002302: SWAP1 00002303: MLOAD 00002304: MSTORE 00002305: JUMP 00002306: JUMPDEST 00002307: DUP2 00002308: DUP4 00002309: PUSH0 0000230a: ADD 0000230b: MLOAD 0000230c: DUP3 0000230d: DUP2 0000230e: MLOAD 0000230f: DUP2 00002310: LT 00002311: PUSH2 0x231c 00002314: JUMPI 00002315: PUSH2 0x231c 00002318: PUSH2 0x5791 0000231b: JUMP 0000231c: JUMPDEST 0000231d: PUSH1 0x20 0000231f: MUL 00002320: PUSH1 0x20 00002322: ADD 00002323: ADD 00002324: DUP2 00002325: DUP2 00002326: MSTORE 00002327: POP 00002328: POP 00002329: POP 0000232a: POP 0000232b: POP 0000232c: JUMP 0000232d: JUMPDEST 0000232e: DUP1 0000232f: MLOAD 00002330: DUP1 00002331: MLOAD 00002332: PUSH12 0x600b380380600b5f395ff300 0000233f: DUP3 00002340: MSTORE 00002341: PUSH0 00002342: SWAP2 00002343: SWAP1 00002344: PUSH1 0x0c 00002346: PUSH1 0x20 00002348: DUP3 00002349: MUL 0000234a: ADD 0000234b: PUSH1 0x14 0000234d: DUP4 0000234e: ADD 0000234f: DUP5 00002350: CREATE 00002351: DUP2 00002352: DUP4 00002353: MSTORE 00002354: SWAP3 00002355: POP 00002356: PUSH1 0x01 00002358: PUSH1 0x01 0000235a: PUSH1 0xa0 0000235c: SHL 0000235d: SUB 0000235e: DUP4 0000235f: AND 00002360: PUSH2 0x2395 00002363: JUMPI 00002364: PUSH1 0x40 00002366: MLOAD 00002367: PUSH32 0x5670258700000000000000000000000000000000000000000000000000000000 00002388: DUP2 00002389: MSTORE 0000238a: PUSH1 0x04 0000238c: ADD 0000238d: PUSH1 0x40 0000238f: MLOAD 00002390: DUP1 00002391: SWAP2 00002392: SUB 00002393: SWAP1 00002394: REVERT 00002395: JUMPDEST 00002396: POP 00002397: POP 00002398: SWAP2 00002399: SWAP1 0000239a: POP 0000239b: JUMP 0000239c: JUMPDEST 0000239d: PUSH3 0x0f4240 000023a1: PUSH3 0xffffff 000023a5: DUP3 000023a6: AND 000023a7: GT 000023a8: ISZERO 000023a9: PUSH2 0x0515 000023ac: JUMPI 000023ad: PUSH2 0x0515 000023b0: PUSH32 0x1400211300000000000000000000000000000000000000000000000000000000 000023d1: PUSH3 0xffffff 000023d5: DUP4 000023d6: AND 000023d7: PUSH2 0x3355 000023da: JUMP 000023db: JUMPDEST 000023dc: PUSH32 0x134332412bcbe715e351e7e7112dfbae2988a371dbae6631e3f502199008e7a0 000023fd: PUSH32 0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4 0000241e: ADDRESS 0000241f: EQ 00002420: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 00002441: CHAINID 00002442: EQ 00002443: AND 00002444: PUSH2 0x24ce 00002447: JUMPI 00002448: POP 00002449: PUSH1 0x40 0000244b: DUP1 0000244c: MLOAD 0000244d: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 0000246e: DUP2 0000246f: MSTORE 00002470: PUSH32 0x5f0b52ce51fafd4028ebd56c0745e7be9457e917ae58eaec28e73e983bdd6e25 00002491: PUSH1 0x20 00002493: DUP3 00002494: ADD 00002495: MSTORE 00002496: PUSH32 0x0984d5efd47d99151ae1be065a709e56c602102f24c1abc4008eb3f815a8d217 000024b7: SWAP2 000024b8: DUP2 000024b9: ADD 000024ba: SWAP2 000024bb: SWAP1 000024bc: SWAP2 000024bd: MSTORE 000024be: CHAINID 000024bf: PUSH1 0x60 000024c1: DUP3 000024c2: ADD 000024c3: MSTORE 000024c4: ADDRESS 000024c5: PUSH1 0x80 000024c7: DUP3 000024c8: ADD 000024c9: MSTORE 000024ca: PUSH1 0xa0 000024cc: SWAP1 000024cd: KECCAK256 000024ce: JUMPDEST 000024cf: PUSH8 0x1901000000000000 000024d8: PUSH0 000024d9: MSTORE 000024da: DUP1 000024db: PUSH1 0x1a 000024dd: MSTORE 000024de: DUP2 000024df: PUSH1 0x3a 000024e1: MSTORE 000024e2: PUSH1 0x42 000024e4: PUSH1 0x18 000024e6: KECCAK256 000024e7: SWAP1 000024e8: POP 000024e9: PUSH0 000024ea: PUSH1 0x3a 000024ec: MSTORE 000024ed: SWAP2 000024ee: SWAP1 000024ef: POP 000024f0: JUMP 000024f1: JUMPDEST 000024f2: PUSH0 000024f3: PUSH1 0x01 000024f5: PUSH1 0x01 000024f7: PUSH1 0xa0 000024f9: SHL 000024fa: SUB 000024fb: DUP6 000024fc: AND 000024fd: ISZERO 000024fe: PUSH2 0x22aa 00002501: JUMPI 00002502: PUSH1 0x40 00002504: MLOAD 00002505: DUP6 00002506: EXTCODESIZE 00002507: PUSH2 0x259a 0000250a: JUMPI 0000250b: DUP3 0000250c: PUSH1 0x40 0000250e: DUP2 0000250f: EQ 00002510: PUSH2 0x2521 00002513: JUMPI 00002514: PUSH1 0x41 00002516: DUP2 00002517: EQ 00002518: PUSH2 0x2561 0000251b: JUMPI 0000251c: POP 0000251d: PUSH2 0x25d4 00002520: JUMP 00002521: JUMPDEST 00002522: PUSH1 0x20 00002524: DUP6 00002525: DUP2 00002526: ADD 00002527: CALLDATALOAD 00002528: PUSH1 0xff 0000252a: DUP2 0000252b: SWAP1 0000252c: SHR 0000252d: PUSH1 0x1b 0000252f: ADD 00002530: SWAP1 00002531: SWAP2 00002532: MSTORE 00002533: DUP6 00002534: CALLDATALOAD 00002535: PUSH1 0x40 00002537: MSTORE 00002538: PUSH32 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002559: AND 0000255a: PUSH1 0x60 0000255c: MSTORE 0000255d: PUSH2 0x2572 00002560: JUMP 00002561: JUMPDEST 00002562: PUSH1 0x40 00002564: DUP6 00002565: ADD 00002566: CALLDATALOAD 00002567: PUSH0 00002568: BYTE 00002569: PUSH1 0x20 0000256b: MSTORE 0000256c: PUSH1 0x40 0000256e: DUP6 0000256f: PUSH1 0x40 00002571: CALLDATACOPY 00002572: JUMPDEST 00002573: POP 00002574: DUP5 00002575: PUSH0 00002576: MSTORE 00002577: PUSH1 0x20 00002579: PUSH1 0x01 0000257b: PUSH1 0x80 0000257d: PUSH0 0000257e: PUSH1 0x01 00002580: GAS 00002581: STATICCALL 00002582: MLOAD 00002583: DUP1 00002584: DUP8 00002585: XOR 00002586: PUSH1 0x60 00002588: SHL 00002589: RETURNDATASIZE 0000258a: GT 0000258b: SWAP3 0000258c: POP 0000258d: POP 0000258e: PUSH0 0000258f: PUSH1 0x60 00002591: MSTORE 00002592: DUP1 00002593: PUSH1 0x40 00002595: MSTORE 00002596: PUSH2 0x25d4 00002599: JUMP 0000259a: JUMPDEST 0000259b: PUSH4 0x1626ba7e 000025a0: PUSH1 0xe0 000025a2: SHL 000025a3: DUP1 000025a4: DUP3 000025a5: MSTORE 000025a6: DUP6 000025a7: PUSH1 0x04 000025a9: DUP4 000025aa: ADD 000025ab: MSTORE 000025ac: PUSH1 0x24 000025ae: DUP3 000025af: ADD 000025b0: PUSH1 0x40 000025b2: DUP2 000025b3: MSTORE 000025b4: DUP5 000025b5: PUSH1 0x44 000025b7: DUP5 000025b8: ADD 000025b9: MSTORE 000025ba: DUP5 000025bb: DUP7 000025bc: PUSH1 0x64 000025be: DUP6 000025bf: ADD 000025c0: CALLDATACOPY 000025c1: PUSH1 0x20 000025c3: DUP2 000025c4: PUSH1 0x64 000025c6: DUP8 000025c7: ADD 000025c8: DUP6 000025c9: DUP12 000025ca: GAS 000025cb: STATICCALL 000025cc: SWAP1 000025cd: MLOAD 000025ce: SWAP1 000025cf: SWAP2 000025d0: EQ 000025d1: AND 000025d2: SWAP2 000025d3: POP 000025d4: JUMPDEST 000025d5: POP 000025d6: SWAP5 000025d7: SWAP4 000025d8: POP 000025d9: POP 000025da: POP 000025db: POP 000025dc: JUMP 000025dd: JUMPDEST 000025de: PUSH0 000025df: PUSH9 0x010000000000000000 000025e9: DUP3 000025ea: LT 000025eb: PUSH2 0x25f6 000025ee: JUMPI 000025ef: PUSH2 0x25f6 000025f2: PUSH2 0x336a 000025f5: JUMP 000025f6: JUMPDEST 000025f7: POP 000025f8: SWAP1 000025f9: JUMP 000025fa: JUMPDEST 000025fb: CALLER 000025fc: PUSH1 0x01 000025fe: PUSH1 0x01 00002600: PUSH1 0xa0 00002602: SHL 00002603: SUB 00002604: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00002625: AND 00002626: EQ 00002627: PUSH2 0x217d 0000262a: JUMPI 0000262b: PUSH1 0x40 0000262d: MLOAD 0000262e: PUSH32 0xf832861400000000000000000000000000000000000000000000000000000000 0000264f: DUP2 00002650: MSTORE 00002651: PUSH1 0x04 00002653: ADD 00002654: PUSH1 0x40 00002656: MLOAD 00002657: DUP1 00002658: SWAP2 00002659: SUB 0000265a: SWAP1 0000265b: REVERT 0000265c: JUMPDEST 0000265d: PUSH1 0x40 0000265f: MLOAD 00002660: PUSH0 00002661: SWAP1 00002662: PUSH1 0xa0 00002664: DUP4 00002665: DUP3 00002666: CALLDATACOPY 00002667: PUSH1 0xa0 00002669: SWAP1 0000266a: KECCAK256 0000266b: SWAP3 0000266c: SWAP2 0000266d: POP 0000266e: POP 0000266f: JUMP 00002670: JUMPDEST 00002671: PUSH0 00002672: DUP2 00002673: DUP2 00002674: MSTORE 00002675: PUSH1 0x06 00002677: PUSH1 0x20 00002679: MSTORE 0000267a: PUSH1 0x40 0000267c: DUP2 0000267d: KECCAK256 0000267e: PUSH2 0x22aa 00002681: PUSH1 0x01 00002683: PUSH1 0x01 00002685: PUSH1 0xa0 00002687: SHL 00002688: SUB 00002689: DUP6 0000268a: AND 0000268b: DUP3 0000268c: PUSH2 0x3377 0000268f: JUMP 00002690: JUMPDEST 00002691: PUSH0 00002692: DUP1 00002693: DUP6 00002694: PUSH3 0xffffff 00002698: DUP6 00002699: AND 0000269a: PUSH4 0x01000000 0000269f: DUP2 000026a0: LT 000026a1: PUSH2 0x26ac 000026a4: JUMPI 000026a5: PUSH2 0x26ac 000026a8: PUSH2 0x5791 000026ab: JUMP 000026ac: JUMPDEST 000026ad: ADD 000026ae: SLOAD 000026af: SWAP1 000026b0: POP 000026b1: PUSH0 000026b2: DUP7 000026b3: PUSH3 0xffffff 000026b7: DUP6 000026b8: AND 000026b9: PUSH4 0x01000000 000026be: DUP2 000026bf: LT 000026c0: PUSH2 0x26cb 000026c3: JUMPI 000026c4: PUSH2 0x26cb 000026c7: PUSH2 0x5791 000026ca: JUMP 000026cb: JUMPDEST 000026cc: ADD 000026cd: SLOAD 000026ce: SWAP1 000026cf: POP 000026d0: DUP5 000026d1: PUSH1 0x02 000026d3: SIGNEXTEND 000026d4: DUP7 000026d5: PUSH1 0x02 000026d7: SIGNEXTEND 000026d8: SLT 000026d9: ISZERO 000026da: PUSH2 0x26e6 000026dd: JUMPI 000026de: SWAP1 000026df: SUB 000026e0: SWAP1 000026e1: POP 000026e2: PUSH2 0x22aa 000026e5: JUMP 000026e6: JUMPDEST 000026e7: DUP6 000026e8: PUSH1 0x02 000026ea: SIGNEXTEND 000026eb: DUP5 000026ec: PUSH1 0x02 000026ee: SIGNEXTEND 000026ef: SGT 000026f0: PUSH2 0x26fb 000026f3: JUMPI 000026f4: SUB 000026f5: SWAP1 000026f6: POP 000026f7: PUSH2 0x22aa 000026fa: JUMP 000026fb: JUMPDEST 000026fc: PUSH4 0x01000000 00002701: DUP8 00002702: ADD 00002703: SLOAD 00002704: SWAP2 00002705: SWAP1 00002706: SWAP2 00002707: SUB 00002708: SUB 00002709: SWAP1 0000270a: POP 0000270b: SWAP5 0000270c: SWAP4 0000270d: POP 0000270e: POP 0000270f: POP 00002710: POP 00002711: JUMP 00002712: JUMPDEST 00002713: PUSH0 00002714: PUSH1 0x06 00002716: PUSH1 0x20 00002718: MSTORE 00002719: DUP3 0000271a: PUSH0 0000271b: MSTORE 0000271c: PUSH1 0x06 0000271e: PUSH1 0x40 00002720: PUSH0 00002721: KECCAK256 00002722: ADD 00002723: PUSH1 0x20 00002725: MSTORE 00002726: DUP2 00002727: PUSH0 00002728: MSTORE 00002729: PUSH1 0x40 0000272b: PUSH0 0000272c: KECCAK256 0000272d: PUSH1 0x20 0000272f: MSTORE 00002730: PUSH4 0x1e2eaeaf 00002735: PUSH0 00002736: MSTORE 00002737: PUSH1 0x20 00002739: PUSH0 0000273a: PUSH1 0x24 0000273c: PUSH1 0x1c 0000273e: DUP8 0000273f: GAS 00002740: STATICCALL 00002741: PUSH2 0x2751 00002744: JUMPI 00002745: PUSH4 0x535cf94b 0000274a: PUSH0 0000274b: MSTORE 0000274c: PUSH1 0x04 0000274e: PUSH1 0x1c 00002750: REVERT 00002751: JUMPDEST 00002752: POP 00002753: POP 00002754: PUSH0 00002755: MLOAD 00002756: PUSH16 0xffffffffffffffffffffffffffffffff 00002767: AND 00002768: SWAP3 00002769: SWAP2 0000276a: POP 0000276b: POP 0000276c: JUMP 0000276d: JUMPDEST 0000276e: DUP2 0000276f: DUP2 00002770: MUL 00002771: DUP2 00002772: DUP4 00002773: DUP3 00002774: DIV 00002775: EQ 00002776: DUP4 00002777: ISZERO 00002778: OR 00002779: PUSH2 0x27d9 0000277c: JUMPI 0000277d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000279e: DUP3 0000279f: DUP5 000027a0: MULMOD 000027a1: DUP2 000027a2: DUP2 000027a3: LT 000027a4: DUP3 000027a5: ADD 000027a6: SWAP1 000027a7: SUB 000027a8: PUSH17 0x0100000000000000000000000000000000 000027ba: DUP2 000027bb: LT 000027bc: PUSH2 0x27cc 000027bf: JUMPI 000027c0: PUSH4 0xc56a0159 000027c5: PUSH0 000027c6: MSTORE 000027c7: PUSH1 0x04 000027c9: PUSH1 0x1c 000027cb: REVERT 000027cc: JUMPDEST 000027cd: PUSH1 0x80 000027cf: SWAP2 000027d0: DUP3 000027d1: SHR 000027d2: SWAP2 000027d3: SHL 000027d4: ADD 000027d5: PUSH2 0x221c 000027d8: JUMP 000027d9: JUMPDEST 000027da: PUSH1 0x80 000027dc: SHR 000027dd: SWAP3 000027de: SWAP2 000027df: POP 000027e0: POP 000027e1: JUMP 000027e2: JUMPDEST 000027e3: DUP2 000027e4: PUSH1 0x14 000027e6: MSTORE 000027e7: DUP1 000027e8: PUSH1 0x34 000027ea: MSTORE 000027eb: PUSH16 0xa9059cbb000000000000000000000000 000027fc: PUSH0 000027fd: MSTORE 000027fe: PUSH1 0x20 00002800: PUSH0 00002801: PUSH1 0x44 00002803: PUSH1 0x10 00002805: PUSH0 00002806: DUP8 00002807: GAS 00002808: CALL 00002809: DUP1 0000280a: PUSH1 0x01 0000280c: PUSH0 0000280d: MLOAD 0000280e: EQ 0000280f: AND 00002810: PUSH2 0x282b 00002813: JUMPI 00002814: DUP1 00002815: RETURNDATASIZE 00002816: DUP6 00002817: EXTCODESIZE 00002818: ISZERO 00002819: OR 0000281a: LT 0000281b: PUSH2 0x282b 0000281e: JUMPI 0000281f: PUSH4 0x90b8ec18 00002824: PUSH0 00002825: MSTORE 00002826: PUSH1 0x04 00002828: PUSH1 0x1c 0000282a: REVERT 0000282b: JUMPDEST 0000282c: POP 0000282d: PUSH0 0000282e: PUSH1 0x34 00002830: MSTORE 00002831: POP 00002832: POP 00002833: POP 00002834: JUMP 00002835: JUMPDEST 00002836: PUSH0 00002837: DUP1 00002838: DUP1 00002839: PUSH2 0x2853 0000283c: DUP5 0000283d: DUP7 0000283e: SMOD 0000283f: DUP3 00002840: SGT 00002841: DUP6 00002842: DUP8 00002843: SDIV 00002844: SUB 00002845: JUMPDEST 00002846: PUSH1 0x08 00002848: DUP2 00002849: SWAP1 0000284a: SAR 0000284b: SWAP2 0000284c: PUSH1 0xff 0000284e: SWAP1 0000284f: SWAP2 00002850: AND 00002851: SWAP1 00002852: JUMP 00002853: JUMPDEST 00002854: SWAP1 00002855: SWAP3 00002856: POP 00002857: SWAP1 00002858: POP 00002859: PUSH2 0x2880 0000285c: DUP2 0000285d: PUSH2 0x2870 00002860: PUSH1 0x01 00002862: PUSH1 0x01 00002864: PUSH1 0xa0 00002866: SHL 00002867: SUB 00002868: DUP11 00002869: AND 0000286a: DUP10 0000286b: DUP7 0000286c: PUSH2 0x33a7 0000286f: JUMP 00002870: JUMPDEST 00002871: SWAP1 00002872: PUSH1 0x01 00002874: PUSH1 0xff 00002876: SWAP2 00002877: SWAP1 00002878: SWAP2 00002879: AND 0000287a: SHL 0000287b: AND 0000287c: ISZERO 0000287d: ISZERO 0000287e: SWAP1 0000287f: JUMP 00002880: JUMPDEST 00002881: SWAP8 00002882: SWAP7 00002883: POP 00002884: POP 00002885: POP 00002886: POP 00002887: POP 00002888: POP 00002889: POP 0000288a: JUMP 0000288b: JUMPDEST 0000288c: DUP3 0000288d: DUP3 0000288e: MUL 0000288f: DUP2 00002890: DUP4 00002891: DUP6 00002892: DUP4 00002893: DIV 00002894: EQ 00002895: DUP6 00002896: ISZERO 00002897: OR 00002898: MUL 00002899: PUSH2 0x2931 0000289c: JUMPI 0000289d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000028be: DUP4 000028bf: DUP6 000028c0: MULMOD 000028c1: DUP2 000028c2: DUP2 000028c3: LT 000028c4: DUP3 000028c5: ADD 000028c6: SWAP1 000028c7: SUB 000028c8: DUP3 000028c9: DUP5 000028ca: DUP7 000028cb: MULMOD 000028cc: DUP4 000028cd: PUSH0 000028ce: SUB 000028cf: DUP5 000028d0: AND 000028d1: DUP3 000028d2: DUP6 000028d3: GT 000028d4: PUSH2 0x28e4 000028d7: JUMPI 000028d8: PUSH4 0xae47f702 000028dd: PUSH0 000028de: MSTORE 000028df: PUSH1 0x04 000028e1: PUSH1 0x1c 000028e3: REVERT 000028e4: JUMPDEST 000028e5: SWAP4 000028e6: DUP5 000028e7: SWAP1 000028e8: DIV 000028e9: SWAP4 000028ea: DUP4 000028eb: DUP3 000028ec: GT 000028ed: SWAP1 000028ee: SWAP3 000028ef: SUB 000028f0: PUSH0 000028f1: DUP4 000028f2: SWAP1 000028f3: SUB 000028f4: DUP4 000028f5: SWAP1 000028f6: DIV 000028f7: PUSH1 0x01 000028f9: ADD 000028fa: MUL 000028fb: SWAP3 000028fc: SUB 000028fd: DIV 000028fe: OR 000028ff: PUSH1 0x02 00002901: PUSH1 0x03 00002903: DUP4 00002904: MUL 00002905: DUP2 00002906: XOR 00002907: DUP1 00002908: DUP5 00002909: MUL 0000290a: DUP3 0000290b: SUB 0000290c: MUL 0000290d: DUP1 0000290e: DUP5 0000290f: MUL 00002910: DUP3 00002911: SUB 00002912: MUL 00002913: DUP1 00002914: DUP5 00002915: MUL 00002916: DUP3 00002917: SUB 00002918: MUL 00002919: DUP1 0000291a: DUP5 0000291b: MUL 0000291c: DUP3 0000291d: SUB 0000291e: MUL 0000291f: DUP1 00002920: DUP5 00002921: MUL 00002922: DUP3 00002923: SUB 00002924: MUL 00002925: DUP1 00002926: DUP5 00002927: MUL 00002928: SWAP1 00002929: SWAP2 0000292a: SUB 0000292b: MUL 0000292c: MUL 0000292d: PUSH2 0x1729 00002930: JUMP 00002931: JUMPDEST 00002932: DIV 00002933: SWAP3 00002934: SWAP2 00002935: POP 00002936: POP 00002937: JUMP 00002938: JUMPDEST 00002939: PUSH1 0x40 0000293b: MLOAD 0000293c: DUP2 0000293d: PUSH1 0x60 0000293f: MSTORE 00002940: DUP3 00002941: PUSH1 0x40 00002943: MSTORE 00002944: DUP4 00002945: PUSH1 0x60 00002947: SHL 00002948: PUSH1 0x2c 0000294a: MSTORE 0000294b: PUSH16 0x23b872dd000000000000000000000000 0000295c: PUSH1 0x0c 0000295e: MSTORE 0000295f: PUSH1 0x20 00002961: PUSH0 00002962: PUSH1 0x64 00002964: PUSH1 0x1c 00002966: PUSH0 00002967: DUP10 00002968: GAS 00002969: CALL 0000296a: DUP1 0000296b: PUSH1 0x01 0000296d: PUSH0 0000296e: MLOAD 0000296f: EQ 00002970: AND 00002971: PUSH2 0x298c 00002974: JUMPI 00002975: DUP1 00002976: RETURNDATASIZE 00002977: DUP8 00002978: EXTCODESIZE 00002979: ISZERO 0000297a: OR 0000297b: LT 0000297c: PUSH2 0x298c 0000297f: JUMPI 00002980: PUSH4 0x7939f424 00002985: PUSH0 00002986: MSTORE 00002987: PUSH1 0x04 00002989: PUSH1 0x1c 0000298b: REVERT 0000298c: JUMPDEST 0000298d: POP 0000298e: PUSH0 0000298f: PUSH1 0x60 00002991: MSTORE 00002992: PUSH1 0x40 00002994: MSTORE 00002995: POP 00002996: POP 00002997: POP 00002998: POP 00002999: JUMP 0000299a: JUMPDEST 0000299b: PUSH0 0000299c: DUP4 0000299d: PUSH0 0000299e: ADD 0000299f: MLOAD 000029a0: DUP3 000029a1: DUP2 000029a2: MLOAD 000029a3: DUP2 000029a4: LT 000029a5: PUSH2 0x29b0 000029a8: JUMPI 000029a9: PUSH2 0x29b0 000029ac: PUSH2 0x5791 000029af: JUMP 000029b0: JUMPDEST 000029b1: PUSH1 0x20 000029b3: MUL 000029b4: PUSH1 0x20 000029b6: ADD 000029b7: ADD 000029b8: MLOAD 000029b9: SWAP1 000029ba: POP 000029bb: PUSH2 0x29f0 000029be: PUSH2 0x29c4 000029c1: DUP3 000029c2: SWAP1 000029c3: JUMP 000029c4: JUMPDEST 000029c5: DUP5 000029c6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 000029e7: SWAP1 000029e8: DUP2 000029e9: AND 000029ea: SWAP2 000029eb: AND 000029ec: EQ 000029ed: ISZERO 000029ee: SWAP1 000029ef: JUMP 000029f0: JUMPDEST 000029f1: ISZERO 000029f2: PUSH2 0x1729 000029f5: JUMPI 000029f6: PUSH1 0x40 000029f8: MLOAD 000029f9: PUSH32 0x23f69dc200000000000000000000000000000000000000000000000000000000 00002a1a: DUP2 00002a1b: MSTORE 00002a1c: PUSH1 0x04 00002a1e: ADD 00002a1f: PUSH1 0x40 00002a21: MLOAD 00002a22: DUP1 00002a23: SWAP2 00002a24: SUB 00002a25: SWAP1 00002a26: REVERT 00002a27: JUMPDEST 00002a28: DUP1 00002a29: DUP3 00002a2a: TSTORE 00002a2b: POP 00002a2c: POP 00002a2d: JUMP 00002a2e: JUMPDEST 00002a2f: DUP1 00002a30: DUP3 00002a31: ADD 00002a32: DUP1 00002a33: DUP5 00002a34: EQ 00002a35: PUSH2 0x2a45 00002a38: JUMPI 00002a39: PUSH4 0x01842f8c 00002a3e: PUSH0 00002a3f: MSTORE 00002a40: PUSH1 0x04 00002a42: PUSH1 0x1c 00002a44: REVERT 00002a45: JUMPDEST 00002a46: POP 00002a47: POP 00002a48: POP 00002a49: POP 00002a4a: JUMP 00002a4b: JUMPDEST 00002a4c: PUSH0 00002a4d: DUP1 00002a4e: DUP1 00002a4f: PUSH2 0x2a62 00002a52: PUSH1 0x01 00002a54: PUSH1 0x01 00002a56: PUSH1 0xa0 00002a58: SHL 00002a59: SUB 00002a5a: DUP8 00002a5b: AND 00002a5c: DUP7 00002a5d: DUP7 00002a5e: PUSH2 0x33de 00002a61: JUMP 00002a62: JUMPDEST 00002a63: SWAP1 00002a64: POP 00002a65: DUP1 00002a66: PUSH2 0x2a9b 00002a69: JUMPI 00002a6a: PUSH1 0x40 00002a6c: MLOAD 00002a6d: PUSH32 0x2f659e4400000000000000000000000000000000000000000000000000000000 00002a8e: DUP2 00002a8f: MSTORE 00002a90: PUSH1 0x04 00002a92: ADD 00002a93: PUSH1 0x40 00002a95: MLOAD 00002a96: DUP1 00002a97: SWAP2 00002a98: SUB 00002a99: SWAP1 00002a9a: REVERT 00002a9b: JUMPDEST 00002a9c: PUSH2 0xffff 00002a9f: PUSH1 0x18 00002aa1: DUP3 00002aa2: SWAP1 00002aa3: SHR 00002aa4: AND 00002aa5: SWAP7 00002aa6: PUSH3 0xffffff 00002aaa: SWAP1 00002aab: SWAP2 00002aac: AND 00002aad: SWAP6 00002aae: POP 00002aaf: SWAP4 00002ab0: POP 00002ab1: POP 00002ab2: POP 00002ab3: POP 00002ab4: JUMP 00002ab5: JUMPDEST 00002ab6: PUSH1 0x03 00002ab8: DUP2 00002ab9: DUP2 00002aba: ADD 00002abb: SWAP2 00002abc: PUSH0 00002abd: SWAP2 00002abe: DUP3 00002abf: SWAP2 00002ac0: DUP1 00002ac1: CALLDATALOAD 00002ac2: PUSH1 0xe8 00002ac4: SHR 00002ac5: ADD 00002ac6: ADD 00002ac7: DUP2 00002ac8: PUSH1 0x44 00002aca: PUSH2 0x2ad3 00002acd: DUP7 00002ace: DUP5 00002acf: PUSH2 0x5b0b 00002ad2: JUMP 00002ad3: JUMPDEST 00002ad4: PUSH2 0x2add 00002ad7: SWAP2 00002ad8: SWAP1 00002ad9: PUSH2 0x5b1e 00002adc: JUMP 00002add: JUMPDEST 00002ade: SWAP1 00002adf: POP 00002ae0: DUP1 00002ae1: PUSH1 0x20 00002ae3: DUP7 00002ae4: SWAP1 00002ae5: SHL 00002ae6: OR 00002ae7: SWAP3 00002ae8: POP 00002ae9: PUSH0 00002aea: DUP1 00002aeb: JUMPDEST 00002aec: DUP3 00002aed: DUP2 00002aee: LT 00002aef: ISZERO 00002af0: PUSH2 0x2b60 00002af3: JUMPI 00002af4: PUSH0 00002af5: PUSH2 0x2b09 00002af8: PUSH1 0x20 00002afa: DUP8 00002afb: SWAP1 00002afc: SHR 00002afd: PUSH1 0x44 00002aff: DUP5 00002b00: MUL 00002b01: ADD 00002b02: JUMPDEST 00002b03: CALLDATALOAD 00002b04: PUSH1 0x60 00002b06: SHR 00002b07: SWAP1 00002b08: JUMP 00002b09: JUMPDEST 00002b0a: SWAP1 00002b0b: POP 00002b0c: DUP3 00002b0d: PUSH1 0x01 00002b0f: PUSH1 0x01 00002b11: PUSH1 0xa0 00002b13: SHL 00002b14: SUB 00002b15: AND 00002b16: DUP2 00002b17: PUSH1 0x01 00002b19: PUSH1 0x01 00002b1b: PUSH1 0xa0 00002b1d: SHL 00002b1e: SUB 00002b1f: AND 00002b20: GT 00002b21: PUSH2 0x2b56 00002b24: JUMPI 00002b25: PUSH1 0x40 00002b27: MLOAD 00002b28: PUSH32 0x80f11acf00000000000000000000000000000000000000000000000000000000 00002b49: DUP2 00002b4a: MSTORE 00002b4b: PUSH1 0x04 00002b4d: ADD 00002b4e: PUSH1 0x40 00002b50: MLOAD 00002b51: DUP1 00002b52: SWAP2 00002b53: SUB 00002b54: SWAP1 00002b55: REVERT 00002b56: JUMPDEST 00002b57: SWAP2 00002b58: POP 00002b59: PUSH1 0x01 00002b5b: ADD 00002b5c: PUSH2 0x2aeb 00002b5f: JUMP 00002b60: JUMPDEST 00002b61: POP 00002b62: DUP3 00002b63: SWAP5 00002b64: POP 00002b65: POP 00002b66: POP 00002b67: POP 00002b68: SWAP2 00002b69: POP 00002b6a: SWAP2 00002b6b: JUMP 00002b6c: JUMPDEST 00002b6d: PUSH1 0x03 00002b6f: DUP4 00002b70: DUP2 00002b71: ADD 00002b72: SWAP4 00002b73: PUSH0 00002b74: SWAP2 00002b75: DUP3 00002b76: SWAP2 00002b77: DUP3 00002b78: SWAP2 00002b79: DUP3 00002b7a: SWAP2 00002b7b: DUP1 00002b7c: CALLDATALOAD 00002b7d: PUSH1 0xe8 00002b7f: SHR 00002b80: ADD 00002b81: ADD 00002b82: DUP2 00002b83: PUSH1 0x26 00002b85: PUSH2 0x2b8e 00002b88: DUP11 00002b89: DUP5 00002b8a: PUSH2 0x5b0b 00002b8d: JUMP 00002b8e: JUMPDEST 00002b8f: PUSH2 0x2b98 00002b92: SWAP2 00002b93: SWAP1 00002b94: PUSH2 0x5b1e 00002b97: JUMP 00002b98: JUMPDEST 00002b99: SWAP1 00002b9a: POP 00002b9b: PUSH1 0x40 00002b9d: MLOAD 00002b9e: SWAP4 00002b9f: POP 00002ba0: DUP1 00002ba1: PUSH1 0xc0 00002ba3: MUL 00002ba4: DUP5 00002ba5: ADD 00002ba6: SWAP3 00002ba7: POP 00002ba8: DUP3 00002ba9: PUSH1 0x40 00002bab: MSTORE 00002bac: DUP1 00002bad: DUP5 00002bae: PUSH1 0x20 00002bb0: SHL 00002bb1: OR 00002bb2: SWAP5 00002bb3: POP 00002bb4: POP 00002bb5: PUSH0 00002bb6: JUMPDEST 00002bb7: DUP3 00002bb8: DUP5 00002bb9: LT 00002bba: ISZERO 00002bbb: PUSH2 0x2cd4 00002bbe: JUMPI 00002bbf: PUSH1 0x04 00002bc1: DUP10 00002bc2: ADD 00002bc3: SWAP9 00002bc4: CALLDATALOAD 00002bc5: PUSH1 0xe0 00002bc7: DUP2 00002bc8: SWAP1 00002bc9: SHR 00002bca: SWAP1 00002bcb: PUSH0 00002bcc: SWAP1 00002bcd: PUSH2 0x2bde 00002bd0: SWAP1 00002bd1: PUSH2 0x2b02 00002bd4: SWAP1 00002bd5: DUP13 00002bd6: SWAP1 00002bd7: PUSH1 0xf0 00002bd9: SHR 00002bda: PUSH2 0x341c 00002bdd: JUMP 00002bde: JUMPDEST 00002bdf: SWAP1 00002be0: POP 00002be1: PUSH0 00002be2: PUSH2 0x2bf2 00002be5: PUSH2 0x2b02 00002be8: DUP13 00002be9: PUSH2 0xffff 00002bec: DUP7 00002bed: AND 00002bee: PUSH2 0x341c 00002bf1: JUMP 00002bf2: JUMPDEST 00002bf3: SWAP1 00002bf4: POP 00002bf5: DUP4 00002bf6: PUSH4 0xffffffff 00002bfb: AND 00002bfc: DUP4 00002bfd: PUSH4 0xffffffff 00002c02: AND 00002c03: GT 00002c04: ISZERO 00002c05: DUP1 00002c06: PUSH2 0x2c21 00002c09: JUMPI 00002c0a: POP 00002c0b: DUP1 00002c0c: PUSH1 0x01 00002c0e: PUSH1 0x01 00002c10: PUSH1 0xa0 00002c12: SHL 00002c13: SUB 00002c14: AND 00002c15: DUP3 00002c16: PUSH1 0x01 00002c18: PUSH1 0x01 00002c1a: PUSH1 0xa0 00002c1c: SHL 00002c1d: SUB 00002c1e: AND 00002c1f: LT 00002c20: ISZERO 00002c21: JUMPDEST 00002c22: ISZERO 00002c23: PUSH2 0x2c58 00002c26: JUMPI 00002c27: PUSH1 0x40 00002c29: MLOAD 00002c2a: PUSH32 0xf35f939900000000000000000000000000000000000000000000000000000000 00002c4b: DUP2 00002c4c: MSTORE 00002c4d: PUSH1 0x04 00002c4f: ADD 00002c50: PUSH1 0x40 00002c52: MLOAD 00002c53: DUP1 00002c54: SWAP2 00002c55: SUB 00002c56: SWAP1 00002c57: REVERT 00002c58: JUMPDEST 00002c59: SWAP1 00002c5a: DUP7 00002c5b: MSTORE 00002c5c: PUSH1 0x20 00002c5e: DUP7 00002c5f: ADD 00002c60: MSTORE 00002c61: PUSH1 0x40 00002c63: DUP6 00002c64: KECCAK256 00002c65: PUSH1 0x02 00002c67: DUP12 00002c68: ADD 00002c69: SWAP11 00002c6a: SWAP2 00002c6b: SWAP3 00002c6c: POP 00002c6d: PUSH1 0x28 00002c6f: SHL 00002c70: SWAP1 00002c71: CALLDATALOAD 00002c72: PUSH1 0xf0 00002c74: SHR 00002c75: PUSH0 00002c76: DUP1 00002c77: PUSH2 0x2c8a 00002c7a: PUSH1 0x01 00002c7c: PUSH1 0x01 00002c7e: PUSH1 0xa0 00002c80: SHL 00002c81: SUB 00002c82: DUP13 00002c83: AND 00002c84: DUP6 00002c85: DUP6 00002c86: PUSH2 0x2a4b 00002c89: JUMP 00002c8a: JUMPDEST 00002c8b: PUSH1 0x40 00002c8d: DUP11 00002c8e: ADD 00002c8f: SWAP2 00002c90: SWAP1 00002c91: SWAP2 00002c92: MSTORE 00002c93: PUSH1 0x60 00002c95: DUP10 00002c96: ADD 00002c97: MSTORE 00002c98: POP 00002c99: POP 00002c9a: POP 00002c9b: PUSH1 0x20 00002c9d: DUP11 00002c9e: ADD 00002c9f: SWAP10 00002ca0: CALLDATALOAD 00002ca1: SWAP1 00002ca2: POP 00002ca3: PUSH0 00002ca4: PUSH23 0x0a70c3c40a64e6c51999090b65f67d9240000000000000 00002cbc: DUP3 00002cbd: SWAP1 00002cbe: DIV 00002cbf: PUSH1 0x80 00002cc1: DUP8 00002cc2: ADD 00002cc3: MSTORE 00002cc4: POP 00002cc5: PUSH1 0xa0 00002cc7: DUP6 00002cc8: ADD 00002cc9: MSTORE 00002cca: PUSH1 0xc0 00002ccc: SWAP1 00002ccd: SWAP4 00002cce: ADD 00002ccf: SWAP3 00002cd0: PUSH2 0x2bb6 00002cd3: JUMP 00002cd4: JUMPDEST 00002cd5: POP 00002cd6: SWAP4 00002cd7: POP 00002cd8: POP 00002cd9: POP 00002cda: SWAP4 00002cdb: POP 00002cdc: SWAP4 00002cdd: SWAP2 00002cde: POP 00002cdf: POP 00002ce0: JUMP 00002ce1: JUMPDEST 00002ce2: PUSH4 0xffffffff 00002ce7: DUP2 00002ce8: AND 00002ce9: PUSH0 00002cea: JUMPDEST 00002ceb: DUP2 00002cec: DUP2 00002ced: LT 00002cee: ISZERO 00002cef: PUSH2 0x0506 00002cf2: JUMPI 00002cf3: PUSH2 0x2d04 00002cf6: PUSH1 0x20 00002cf8: DUP5 00002cf9: SWAP1 00002cfa: SHR 00002cfb: PUSH1 0x44 00002cfd: DUP4 00002cfe: MUL 00002cff: ADD 00002d00: PUSH2 0x347a 00002d03: JUMP 00002d04: JUMPDEST 00002d05: PUSH1 0x01 00002d07: ADD 00002d08: PUSH2 0x2cea 00002d0b: JUMP 00002d0c: JUMPDEST 00002d0d: PUSH1 0x40 00002d0f: DUP1 00002d10: MLOAD 00002d11: PUSH2 0x0160 00002d14: DUP2 00002d15: ADD 00002d16: DUP3 00002d17: MSTORE 00002d18: PUSH0 00002d19: PUSH1 0x20 00002d1b: DUP3 00002d1c: ADD 00002d1d: DUP2 00002d1e: SWAP1 00002d1f: MSTORE 00002d20: SWAP2 00002d21: DUP2 00002d22: ADD 00002d23: DUP3 00002d24: SWAP1 00002d25: MSTORE 00002d26: PUSH1 0x80 00002d28: DUP2 00002d29: ADD 00002d2a: DUP3 00002d2b: SWAP1 00002d2c: MSTORE 00002d2d: PUSH1 0xc0 00002d2f: DUP2 00002d30: ADD 00002d31: DUP3 00002d32: SWAP1 00002d33: MSTORE 00002d34: PUSH1 0xe0 00002d36: DUP2 00002d37: ADD 00002d38: DUP3 00002d39: SWAP1 00002d3a: MSTORE 00002d3b: PUSH2 0x0100 00002d3e: DUP2 00002d3f: ADD 00002d40: DUP3 00002d41: SWAP1 00002d42: MSTORE 00002d43: PUSH2 0x0140 00002d46: DUP2 00002d47: ADD 00002d48: DUP3 00002d49: SWAP1 00002d4a: MSTORE 00002d4b: PUSH4 0xf3cd914c 00002d50: DUP2 00002d51: MSTORE 00002d52: PUSH3 0x800000 00002d56: PUSH1 0x60 00002d58: DUP3 00002d59: ADD 00002d5a: MSTORE 00002d5b: ADDRESS 00002d5c: PUSH1 0xa0 00002d5e: DUP3 00002d5f: ADD 00002d60: MSTORE 00002d61: PUSH2 0x0120 00002d64: DUP1 00002d65: DUP3 00002d66: ADD 00002d67: MSTORE 00002d68: PUSH1 0x03 00002d6a: DUP5 00002d6b: DUP2 00002d6c: ADD 00002d6d: SWAP5 00002d6e: DUP1 00002d6f: CALLDATALOAD 00002d70: PUSH1 0xe8 00002d72: SHR 00002d73: ADD 00002d74: ADD 00002d75: SWAP1 00002d76: JUMPDEST 00002d77: DUP2 00002d78: DUP6 00002d79: EQ 00002d7a: PUSH2 0x2d8f 00002d7d: JUMPI 00002d7e: PUSH2 0x2d88 00002d81: DUP6 00002d82: DUP3 00002d83: DUP7 00002d84: PUSH2 0x353e 00002d87: JUMP 00002d88: JUMPDEST 00002d89: SWAP5 00002d8a: POP 00002d8b: PUSH2 0x2d76 00002d8e: JUMP 00002d8f: JUMPDEST 00002d90: POP 00002d91: SWAP3 00002d92: SWAP4 00002d93: SWAP3 00002d94: POP 00002d95: POP 00002d96: POP 00002d97: JUMP 00002d98: JUMPDEST 00002d99: PUSH1 0x03 00002d9b: DUP3 00002d9c: DUP2 00002d9d: ADD 00002d9e: SWAP3 00002d9f: PUSH0 00002da0: SWAP2 00002da1: DUP2 00002da2: CALLDATALOAD 00002da3: PUSH1 0xe8 00002da5: SHR 00002da6: SWAP1 00002da7: SWAP2 00002da8: ADD 00002da9: ADD 00002daa: DUP2 00002dab: PUSH2 0x2db2 00002dae: PUSH2 0x3747 00002db1: JUMP 00002db2: JUMPDEST 00002db3: PUSH1 0x40 00002db5: DUP1 00002db6: MLOAD 00002db7: PUSH2 0x0120 00002dba: DUP2 00002dbb: ADD 00002dbc: DUP3 00002dbd: MSTORE 00002dbe: PUSH0 00002dbf: PUSH1 0x20 00002dc1: DUP3 00002dc2: ADD 00002dc3: DUP2 00002dc4: SWAP1 00002dc5: MSTORE 00002dc6: SWAP2 00002dc7: DUP2 00002dc8: ADD 00002dc9: DUP3 00002dca: SWAP1 00002dcb: MSTORE 00002dcc: PUSH1 0x60 00002dce: DUP2 00002dcf: ADD 00002dd0: DUP3 00002dd1: SWAP1 00002dd2: MSTORE 00002dd3: PUSH1 0x80 00002dd5: DUP2 00002dd6: ADD 00002dd7: DUP3 00002dd8: SWAP1 00002dd9: MSTORE 00002dda: PUSH1 0xa0 00002ddc: DUP2 00002ddd: ADD 00002dde: DUP3 00002ddf: SWAP1 00002de0: MSTORE 00002de1: PUSH1 0xc0 00002de3: DUP2 00002de4: ADD 00002de5: DUP3 00002de6: SWAP1 00002de7: MSTORE 00002de8: PUSH1 0xe0 00002dea: DUP2 00002deb: ADD 00002dec: SWAP2 00002ded: SWAP1 00002dee: SWAP2 00002def: MSTORE 00002df0: PUSH32 0x0af19d5479e90f25845cea6db89a524bb4e8da3a698213efb1b85e10a5e8be9c 00002e11: DUP2 00002e12: MSTORE 00002e13: PUSH8 0xffffffffffffffff 00002e1c: NUMBER 00002e1d: AND 00002e1e: PUSH2 0x0100 00002e21: DUP3 00002e22: ADD 00002e23: MSTORE 00002e24: SWAP1 00002e25: SWAP2 00002e26: POP 00002e27: JUMPDEST 00002e28: DUP3 00002e29: DUP7 00002e2a: EQ 00002e2b: PUSH2 0x2e41 00002e2e: JUMPI 00002e2f: PUSH2 0x2e3a 00002e32: DUP7 00002e33: DUP3 00002e34: DUP5 00002e35: DUP9 00002e36: PUSH2 0x3791 00002e39: JUMP 00002e3a: JUMPDEST 00002e3b: SWAP6 00002e3c: POP 00002e3d: PUSH2 0x2e27 00002e40: JUMP 00002e41: JUMPDEST 00002e42: POP 00002e43: SWAP4 00002e44: SWAP5 00002e45: SWAP4 00002e46: POP 00002e47: POP 00002e48: POP 00002e49: POP 00002e4a: JUMP 00002e4b: JUMPDEST 00002e4c: PUSH0 00002e4d: DUP1 00002e4e: PUSH2 0x2e55 00002e51: PUSH2 0x3747 00002e54: JUMP 00002e55: JUMPDEST 00002e56: PUSH1 0x40 00002e58: DUP1 00002e59: MLOAD 00002e5a: PUSH2 0x01a0 00002e5d: DUP2 00002e5e: ADD 00002e5f: DUP3 00002e60: MSTORE 00002e61: PUSH0 00002e62: DUP1 00002e63: DUP3 00002e64: MSTORE 00002e65: PUSH1 0x20 00002e67: DUP3 00002e68: ADD 00002e69: DUP2 00002e6a: SWAP1 00002e6b: MSTORE 00002e6c: SWAP2 00002e6d: DUP2 00002e6e: ADD 00002e6f: DUP3 00002e70: SWAP1 00002e71: MSTORE 00002e72: PUSH1 0x60 00002e74: DUP2 00002e75: ADD 00002e76: DUP3 00002e77: SWAP1 00002e78: MSTORE 00002e79: PUSH1 0x80 00002e7b: DUP2 00002e7c: ADD 00002e7d: DUP3 00002e7e: SWAP1 00002e7f: MSTORE 00002e80: PUSH1 0xa0 00002e82: DUP2 00002e83: ADD 00002e84: DUP3 00002e85: SWAP1 00002e86: MSTORE 00002e87: PUSH1 0xc0 00002e89: DUP2 00002e8a: ADD 00002e8b: DUP3 00002e8c: SWAP1 00002e8d: MSTORE 00002e8e: PUSH1 0xe0 00002e90: DUP2 00002e91: ADD 00002e92: DUP3 00002e93: SWAP1 00002e94: MSTORE 00002e95: PUSH2 0x0100 00002e98: DUP2 00002e99: ADD 00002e9a: DUP3 00002e9b: SWAP1 00002e9c: MSTORE 00002e9d: PUSH2 0x0120 00002ea0: DUP2 00002ea1: ADD 00002ea2: DUP3 00002ea3: SWAP1 00002ea4: MSTORE 00002ea5: PUSH2 0x0140 00002ea8: DUP2 00002ea9: ADD 00002eaa: DUP3 00002eab: SWAP1 00002eac: MSTORE 00002ead: PUSH2 0x0160 00002eb0: DUP2 00002eb1: ADD 00002eb2: DUP3 00002eb3: SWAP1 00002eb4: MSTORE 00002eb5: PUSH2 0x0180 00002eb8: DUP2 00002eb9: ADD 00002eba: SWAP2 00002ebb: SWAP1 00002ebc: SWAP2 00002ebd: MSTORE 00002ebe: PUSH1 0x03 00002ec0: DUP7 00002ec1: DUP2 00002ec2: ADD 00002ec3: SWAP7 00002ec4: SWAP3 00002ec5: SWAP4 00002ec6: POP 00002ec7: SWAP1 00002ec8: SWAP2 00002ec9: DUP1 00002eca: CALLDATALOAD 00002ecb: PUSH1 0xe8 00002ecd: SHR 00002ece: ADD 00002ecf: ADD 00002ed0: JUMPDEST 00002ed1: DUP1 00002ed2: DUP7 00002ed3: EQ 00002ed4: PUSH2 0x2e41 00002ed7: JUMPI 00002ed8: PUSH2 0x2ee3 00002edb: DUP7 00002edc: DUP4 00002edd: DUP6 00002ede: DUP9 00002edf: PUSH2 0x3975 00002ee2: JUMP 00002ee3: JUMPDEST 00002ee4: SWAP6 00002ee5: POP 00002ee6: PUSH2 0x2ed0 00002ee9: JUMP 00002eea: JUMPDEST 00002eeb: PUSH1 0x40 00002eed: DUP1 00002eee: MLOAD 00002eef: PUSH4 0xffffffff 00002ef4: DUP4 00002ef5: AND 00002ef6: PUSH1 0x24 00002ef8: DUP2 00002ef9: MUL 00002efa: DUP3 00002efb: ADD 00002efc: SWAP1 00002efd: SWAP3 00002efe: MSTORE 00002eff: DUP1 00002f00: PUSH0 00002f01: JUMPDEST 00002f02: DUP4 00002f03: DUP2 00002f04: LT 00002f05: ISZERO 00002f06: PUSH2 0x30ff 00002f09: JUMPI 00002f0a: PUSH1 0x44 00002f0c: DUP2 00002f0d: MUL 00002f0e: PUSH1 0x20 00002f10: DUP7 00002f11: SWAP1 00002f12: SHR 00002f13: ADD 00002f14: DUP1 00002f15: CALLDATALOAD 00002f16: PUSH1 0x60 00002f18: SHR 00002f19: PUSH1 0x14 00002f1b: DUP3 00002f1c: ADD 00002f1d: CALLDATALOAD 00002f1e: PUSH1 0x80 00002f20: SWAP1 00002f21: DUP2 00002f22: SHR 00002f23: SWAP1 00002f24: PUSH1 0x34 00002f26: DUP5 00002f27: ADD 00002f28: CALLDATALOAD 00002f29: SWAP1 00002f2a: SHR 00002f2b: PUSH0 00002f2c: PUSH2 0x2f42 00002f2f: DUP5 00002f30: PUSH2 0x2f39 00002f33: DUP5 00002f34: DUP7 00002f35: PUSH2 0x5875 00002f38: JUMP 00002f39: JUMPDEST 00002f3a: PUSH1 0x04 00002f3c: SWAP2 00002f3d: SWAP1 00002f3e: PUSH2 0x3b49 00002f41: JUMP 00002f42: JUMPDEST 00002f43: SWAP1 00002f44: POP 00002f45: DUP1 00002f46: ISZERO 00002f47: PUSH2 0x2f87 00002f4a: JUMPI 00002f4b: PUSH1 0x40 00002f4d: MLOAD 00002f4e: PUSH32 0xcc67af5300000000000000000000000000000000000000000000000000000000 00002f6f: DUP2 00002f70: MSTORE 00002f71: PUSH1 0x01 00002f73: PUSH1 0x01 00002f75: PUSH1 0xa0 00002f77: SHL 00002f78: SUB 00002f79: DUP6 00002f7a: AND 00002f7b: PUSH1 0x04 00002f7d: DUP3 00002f7e: ADD 00002f7f: MSTORE 00002f80: PUSH1 0x24 00002f82: ADD 00002f83: PUSH2 0x170b 00002f86: JUMP 00002f87: JUMPDEST 00002f88: DUP2 00002f89: ISZERO 00002f8a: PUSH2 0x30e1 00002f8d: JUMPI 00002f8e: PUSH1 0x01 00002f90: PUSH1 0x01 00002f92: PUSH1 0xa0 00002f94: SHL 00002f95: SUB 00002f96: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00002fb7: AND 00002fb8: PUSH4 0xa5841194 00002fbd: DUP6 00002fbe: PUSH1 0x40 00002fc0: MLOAD 00002fc1: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00002fe2: PUSH1 0xe0 00002fe4: DUP5 00002fe5: SWAP1 00002fe6: SHL 00002fe7: AND 00002fe8: DUP2 00002fe9: MSTORE 00002fea: PUSH1 0x01 00002fec: PUSH1 0x01 00002fee: PUSH1 0xa0 00002ff0: SHL 00002ff1: SUB 00002ff2: SWAP1 00002ff3: SWAP2 00002ff4: AND 00002ff5: PUSH1 0x04 00002ff7: DUP3 00002ff8: ADD 00002ff9: MSTORE 00002ffa: PUSH1 0x24 00002ffc: ADD 00002ffd: PUSH0 00002ffe: PUSH1 0x40 00003000: MLOAD 00003001: DUP1 00003002: DUP4 00003003: SUB 00003004: DUP2 00003005: PUSH0 00003006: DUP8 00003007: DUP1 00003008: EXTCODESIZE 00003009: ISZERO 0000300a: DUP1 0000300b: ISZERO 0000300c: PUSH2 0x3013 0000300f: JUMPI 00003010: PUSH0 00003011: DUP1 00003012: REVERT 00003013: JUMPDEST 00003014: POP 00003015: GAS 00003016: CALL 00003017: ISZERO 00003018: DUP1 00003019: ISZERO 0000301a: PUSH2 0x3025 0000301d: JUMPI 0000301e: RETURNDATASIZE 0000301f: PUSH0 00003020: DUP1 00003021: RETURNDATACOPY 00003022: RETURNDATASIZE 00003023: PUSH0 00003024: REVERT 00003025: JUMPDEST 00003026: POP 00003027: PUSH2 0x305e 0000302a: SWAP3 0000302b: POP 0000302c: POP 0000302d: POP 0000302e: PUSH1 0x01 00003030: PUSH1 0x01 00003032: PUSH1 0xa0 00003034: SHL 00003035: SUB 00003036: DUP6 00003037: AND 00003038: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00003059: DUP5 0000305a: PUSH2 0x27e2 0000305d: JUMP 0000305e: JUMPDEST 0000305f: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00003080: PUSH1 0x01 00003082: PUSH1 0x01 00003084: PUSH1 0xa0 00003086: SHL 00003087: SUB 00003088: AND 00003089: PUSH4 0x11da60b4 0000308e: PUSH1 0x40 00003090: MLOAD 00003091: DUP2 00003092: PUSH4 0xffffffff 00003097: AND 00003098: PUSH1 0xe0 0000309a: SHL 0000309b: DUP2 0000309c: MSTORE 0000309d: PUSH1 0x04 0000309f: ADD 000030a0: PUSH1 0x20 000030a2: PUSH1 0x40 000030a4: MLOAD 000030a5: DUP1 000030a6: DUP4 000030a7: SUB 000030a8: DUP2 000030a9: PUSH0 000030aa: DUP8 000030ab: GAS 000030ac: CALL 000030ad: ISZERO 000030ae: DUP1 000030af: ISZERO 000030b0: PUSH2 0x30bb 000030b3: JUMPI 000030b4: RETURNDATASIZE 000030b5: PUSH0 000030b6: DUP1 000030b7: RETURNDATACOPY 000030b8: RETURNDATASIZE 000030b9: PUSH0 000030ba: REVERT 000030bb: JUMPDEST 000030bc: POP 000030bd: POP 000030be: POP 000030bf: POP 000030c0: PUSH1 0x40 000030c2: MLOAD 000030c3: RETURNDATASIZE 000030c4: PUSH1 0x1f 000030c6: NOT 000030c7: PUSH1 0x1f 000030c9: DUP3 000030ca: ADD 000030cb: AND 000030cc: DUP3 000030cd: ADD 000030ce: DUP1 000030cf: PUSH1 0x40 000030d1: MSTORE 000030d2: POP 000030d3: DUP2 000030d4: ADD 000030d5: SWAP1 000030d6: PUSH2 0x30df 000030d9: SWAP2 000030da: SWAP1 000030db: PUSH2 0x57e7 000030de: JUMP 000030df: JUMPDEST 000030e0: POP 000030e1: JUMPDEST 000030e2: PUSH2 0x30eb 000030e5: DUP6 000030e6: DUP9 000030e7: PUSH2 0x3b7f 000030ea: JUMP 000030eb: JUMPDEST 000030ec: POP 000030ed: POP 000030ee: POP 000030ef: PUSH1 0x24 000030f1: SWAP4 000030f2: SWAP1 000030f3: SWAP4 000030f4: ADD 000030f5: SWAP3 000030f6: POP 000030f7: POP 000030f8: PUSH1 0x01 000030fa: ADD 000030fb: PUSH2 0x2f01 000030fe: JUMP 000030ff: JUMPDEST 00003100: POP 00003101: PUSH1 0x24 00003103: DUP4 00003104: MUL 00003105: DUP3 00003106: KECCAK256 00003107: PUSH0 00003108: MSTORE 00003109: PUSH1 0x20 0000310b: PUSH0 0000310c: LOG0 0000310d: POP 0000310e: POP 0000310f: POP 00003110: POP 00003111: JUMP 00003112: JUMPDEST 00003113: DUP3 00003114: PUSH1 0x02 00003116: SIGNEXTEND 00003117: DUP3 00003118: PUSH1 0x02 0000311a: SIGNEXTEND 0000311b: SGT 0000311c: ISZERO 0000311d: PUSH2 0x3156 00003120: JUMPI 00003121: DUP3 00003122: PUSH1 0x02 00003124: SIGNEXTEND 00003125: PUSH2 0x313a 00003128: DUP3 00003129: DUP5 0000312a: PUSH1 0x02 0000312c: SIGNEXTEND 0000312d: PUSH2 0x3b88 00003130: SWAP1 00003131: SWAP2 00003132: SWAP1 00003133: PUSH4 0xffffffff 00003138: AND 00003139: JUMP 0000313a: JUMPDEST 0000313b: PUSH1 0x02 0000313d: SIGNEXTEND 0000313e: SGT 0000313f: ISZERO 00003140: PUSH2 0x3151 00003143: JUMPI 00003144: PUSH2 0x3151 00003147: DUP7 00003148: DUP6 00003149: DUP8 0000314a: DUP7 0000314b: DUP7 0000314c: DUP7 0000314d: PUSH2 0x3b99 00003150: JUMP 00003151: JUMPDEST 00003152: PUSH2 0x3193 00003155: JUMP 00003156: JUMPDEST 00003157: DUP3 00003158: PUSH1 0x02 0000315a: SIGNEXTEND 0000315b: DUP3 0000315c: PUSH1 0x02 0000315e: SIGNEXTEND 0000315f: SLT 00003160: ISZERO 00003161: PUSH2 0x3193 00003164: JUMPI 00003165: PUSH0 00003166: PUSH1 0x02 00003168: DUP5 00003169: SWAP1 0000316a: SIGNEXTEND 0000316b: DUP3 0000316c: DUP2 0000316d: SMOD 0000316e: SWAP2 0000316f: SWAP1 00003170: SWAP2 00003171: SLT 00003172: SWAP1 00003173: DUP3 00003174: SWAP1 00003175: SDIV 00003176: SUB 00003177: DUP2 00003178: MUL 00003179: PUSH1 0x02 0000317b: SIGNEXTEND 0000317c: DUP3 0000317d: PUSH1 0x02 0000317f: SIGNEXTEND 00003180: SLT 00003181: ISZERO 00003182: PUSH2 0x3193 00003185: JUMPI 00003186: PUSH2 0x3193 00003189: DUP7 0000318a: DUP6 0000318b: DUP8 0000318c: DUP7 0000318d: DUP7 0000318e: DUP7 0000318f: PUSH2 0x3c18 00003192: JUMP 00003193: JUMPDEST 00003194: POP 00003195: POP 00003196: POP 00003197: POP 00003198: POP 00003199: POP 0000319a: JUMP 0000319b: JUMPDEST 0000319c: PUSH1 0x40 0000319e: DUP1 0000319f: MLOAD 000031a0: DUP1 000031a1: DUP3 000031a2: ADD 000031a3: SWAP1 000031a4: SWAP2 000031a5: MSTORE 000031a6: PUSH1 0x60 000031a8: DUP2 000031a9: MSTORE 000031aa: PUSH0 000031ab: PUSH1 0x20 000031ad: DUP3 000031ae: ADD 000031af: MSTORE 000031b0: PUSH2 0x221c 000031b3: PUSH1 0x01 000031b5: PUSH1 0x01 000031b7: PUSH1 0xa0 000031b9: SHL 000031ba: SUB 000031bb: DUP4 000031bc: AND 000031bd: PUSH0 000031be: PUSH2 0x217f 000031c1: JUMP 000031c2: JUMPDEST 000031c3: PUSH2 0x3214 000031c6: PUSH2 0x31e8 000031c9: DUP5 000031ca: PUSH0 000031cb: ADD 000031cc: MLOAD 000031cd: DUP4 000031ce: DUP2 000031cf: MLOAD 000031d0: DUP2 000031d1: LT 000031d2: PUSH2 0x31dd 000031d5: JUMPI 000031d6: PUSH2 0x31dd 000031d9: PUSH2 0x5791 000031dc: JUMP 000031dd: JUMPDEST 000031de: PUSH1 0x20 000031e0: MUL 000031e1: PUSH1 0x20 000031e3: ADD 000031e4: ADD 000031e5: MLOAD 000031e6: SWAP1 000031e7: JUMP 000031e8: JUMPDEST 000031e9: DUP4 000031ea: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 0000320b: SWAP1 0000320c: DUP2 0000320d: AND 0000320e: SWAP2 0000320f: AND 00003210: EQ 00003211: ISZERO 00003212: SWAP1 00003213: JUMP 00003214: JUMPDEST 00003215: ISZERO 00003216: PUSH2 0x324b 00003219: JUMPI 0000321a: PUSH1 0x40 0000321c: MLOAD 0000321d: PUSH32 0x23f69dc200000000000000000000000000000000000000000000000000000000 0000323e: DUP2 0000323f: MSTORE 00003240: PUSH1 0x04 00003242: ADD 00003243: PUSH1 0x40 00003245: MLOAD 00003246: DUP1 00003247: SWAP2 00003248: SUB 00003249: SWAP1 0000324a: REVERT 0000324b: JUMPDEST 0000324c: DUP3 0000324d: MLOAD 0000324e: MLOAD 0000324f: PUSH0 00003250: SWAP1 00003251: PUSH2 0x325c 00003254: SWAP1 00003255: PUSH1 0x01 00003257: SWAP1 00003258: PUSH2 0x5b0b 0000325b: JUMP 0000325c: JUMPDEST 0000325d: SWAP1 0000325e: POP 0000325f: DUP1 00003260: DUP3 00003261: LT 00003262: ISZERO 00003263: PUSH2 0x32a4 00003266: JUMPI 00003267: DUP4 00003268: MLOAD 00003269: DUP1 0000326a: MLOAD 0000326b: DUP3 0000326c: SWAP1 0000326d: DUP2 0000326e: LT 0000326f: PUSH2 0x327a 00003272: JUMPI 00003273: PUSH2 0x327a 00003276: PUSH2 0x5791 00003279: JUMP 0000327a: JUMPDEST 0000327b: PUSH1 0x20 0000327d: MUL 0000327e: PUSH1 0x20 00003280: ADD 00003281: ADD 00003282: MLOAD 00003283: DUP5 00003284: PUSH0 00003285: ADD 00003286: MLOAD 00003287: DUP4 00003288: DUP2 00003289: MLOAD 0000328a: DUP2 0000328b: LT 0000328c: PUSH2 0x3297 0000328f: JUMPI 00003290: PUSH2 0x3297 00003293: PUSH2 0x5791 00003296: JUMP 00003297: JUMPDEST 00003298: PUSH1 0x20 0000329a: MUL 0000329b: PUSH1 0x20 0000329d: ADD 0000329e: ADD 0000329f: DUP2 000032a0: DUP2 000032a1: MSTORE 000032a2: POP 000032a3: POP 000032a4: JUMPDEST 000032a5: PUSH2 0x2a45 000032a8: DUP5 000032a9: DUP3 000032aa: SWAP1 000032ab: MLOAD 000032ac: MSTORE 000032ad: JUMP 000032ae: JUMPDEST 000032af: PUSH0 000032b0: PUSH2 0x221c 000032b3: PUSH1 0x20 000032b5: PUSH1 0x01 000032b7: PUSH1 0x01 000032b9: PUSH1 0xa0 000032bb: SHL 000032bc: SUB 000032bd: DUP5 000032be: AND 000032bf: EXTCODESIZE 000032c0: PUSH2 0x5b1e 000032c3: JUMP 000032c4: JUMPDEST 000032c5: PUSH1 0x01 000032c7: PUSH2 0xffff 000032ca: DUP3 000032cb: AND 000032cc: LT 000032cd: DUP1 000032ce: PUSH2 0x32dc 000032d1: JUMPI 000032d2: POP 000032d3: PUSH2 0x7fff 000032d6: PUSH2 0xffff 000032d9: DUP3 000032da: AND 000032db: GT 000032dc: JUMPDEST 000032dd: ISZERO 000032de: PUSH2 0x0515 000032e1: JUMPI 000032e2: PUSH1 0x40 000032e4: MLOAD 000032e5: PUSH32 0x270815a000000000000000000000000000000000000000000000000000000000 00003306: DUP2 00003307: MSTORE 00003308: PUSH1 0x04 0000330a: ADD 0000330b: PUSH1 0x40 0000330d: MLOAD 0000330e: DUP1 0000330f: SWAP2 00003310: SUB 00003311: SWAP1 00003312: REVERT 00003313: JUMPDEST 00003314: PUSH3 0x030d40 00003318: PUSH3 0xffffff 0000331c: DUP3 0000331d: AND 0000331e: GT 0000331f: ISZERO 00003320: PUSH2 0x0515 00003323: JUMPI 00003324: PUSH1 0x40 00003326: MLOAD 00003327: PUSH32 0x76a3f95d00000000000000000000000000000000000000000000000000000000 00003348: DUP2 00003349: MSTORE 0000334a: PUSH1 0x04 0000334c: ADD 0000334d: PUSH1 0x40 0000334f: MLOAD 00003350: DUP1 00003351: SWAP2 00003352: SUB 00003353: SWAP1 00003354: REVERT 00003355: JUMPDEST 00003356: DUP2 00003357: PUSH0 00003358: MSTORE 00003359: PUSH1 0x01 0000335b: PUSH1 0x01 0000335d: PUSH1 0xa0 0000335f: SHL 00003360: SUB 00003361: DUP2 00003362: AND 00003363: PUSH1 0x04 00003365: MSTORE 00003366: PUSH1 0x24 00003368: PUSH0 00003369: REVERT 0000336a: JUMPDEST 0000336b: PUSH4 0x35278d12 00003370: PUSH0 00003371: MSTORE 00003372: PUSH1 0x04 00003374: PUSH1 0x1c 00003376: REVERT 00003377: JUMPDEST 00003378: PUSH0 00003379: DUP2 0000337a: PUSH1 0x20 0000337c: MSTORE 0000337d: PUSH4 0x1e2eaeaf 00003382: PUSH0 00003383: MSTORE 00003384: PUSH1 0x20 00003386: PUSH0 00003387: PUSH1 0x24 00003389: PUSH1 0x1c 0000338b: DUP7 0000338c: GAS 0000338d: STATICCALL 0000338e: PUSH2 0x339e 00003391: JUMPI 00003392: PUSH4 0x535cf94b 00003397: PUSH0 00003398: MSTORE 00003399: PUSH1 0x04 0000339b: PUSH1 0x1c 0000339d: REVERT 0000339e: JUMPDEST 0000339f: POP 000033a0: POP 000033a1: PUSH0 000033a2: MLOAD 000033a3: SWAP2 000033a4: SWAP1 000033a5: POP 000033a6: JUMP 000033a7: JUMPDEST 000033a8: PUSH0 000033a9: DUP3 000033aa: DUP2 000033ab: MSTORE 000033ac: PUSH1 0x06 000033ae: PUSH1 0x20 000033b0: SWAP1 000033b1: DUP2 000033b2: MSTORE 000033b3: PUSH1 0x40 000033b5: DUP1 000033b6: DUP4 000033b7: KECCAK256 000033b8: DUP5 000033b9: DUP5 000033ba: MSTORE 000033bb: PUSH1 0x05 000033bd: ADD 000033be: SWAP1 000033bf: SWAP2 000033c0: MSTORE 000033c1: DUP2 000033c2: KECCAK256 000033c3: PUSH2 0x33d5 000033c6: PUSH1 0x01 000033c8: PUSH1 0x01 000033ca: PUSH1 0xa0 000033cc: SHL 000033cd: SUB 000033ce: DUP7 000033cf: AND 000033d0: DUP3 000033d1: PUSH2 0x3377 000033d4: JUMP 000033d5: JUMPDEST 000033d6: SWAP6 000033d7: SWAP5 000033d8: POP 000033d9: POP 000033da: POP 000033db: POP 000033dc: POP 000033dd: JUMP 000033de: JUMPDEST 000033df: PUSH0 000033e0: PUSH1 0x20 000033e2: DUP3 000033e3: PUSH1 0x20 000033e5: MUL 000033e6: PUSH1 0x01 000033e8: ADD 000033e9: PUSH0 000033ea: DUP7 000033eb: EXTCODECOPY 000033ec: POP 000033ed: POP 000033ee: PUSH0 000033ef: MLOAD 000033f0: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 00003411: DUP2 00003412: AND 00003413: SWAP2 00003414: SWAP1 00003415: SWAP2 00003416: EQ 00003417: MUL 00003418: SWAP2 00003419: SWAP1 0000341a: POP 0000341b: JUMP 0000341c: JUMPDEST 0000341d: PUSH0 0000341e: DUP2 0000341f: PUSH4 0xffffffff 00003424: DUP5 00003425: AND 00003426: GT 00003427: PUSH2 0x346b 0000342a: JUMPI 0000342b: PUSH1 0x40 0000342d: MLOAD 0000342e: PUSH32 0xffc31e7100000000000000000000000000000000000000000000000000000000 0000344f: DUP2 00003450: MSTORE 00003451: PUSH1 0x04 00003453: DUP2 00003454: ADD 00003455: DUP4 00003456: SWAP1 00003457: MSTORE 00003458: PUSH4 0xffffffff 0000345d: DUP5 0000345e: AND 0000345f: PUSH1 0x24 00003461: DUP3 00003462: ADD 00003463: MSTORE 00003464: PUSH1 0x44 00003466: ADD 00003467: PUSH2 0x170b 0000346a: JUMP 0000346b: JUMPDEST 0000346c: PUSH1 0x20 0000346e: DUP4 0000346f: SWAP1 00003470: SHR 00003471: PUSH1 0x44 00003473: DUP4 00003474: MUL 00003475: ADD 00003476: PUSH2 0x1729 00003479: JUMP 0000347a: JUMPDEST 0000347b: PUSH1 0x24 0000347d: DUP2 0000347e: ADD 0000347f: CALLDATALOAD 00003480: PUSH1 0x80 00003482: SHR 00003483: DUP1 00003484: ISZERO 00003485: PUSH2 0x1ea6 00003488: JUMPI 00003489: PUSH1 0x40 0000348b: DUP1 0000348c: MLOAD 0000348d: PUSH32 0x0b0d9c0900000000000000000000000000000000000000000000000000000000 000034ae: DUP2 000034af: MSTORE 000034b0: DUP4 000034b1: CALLDATALOAD 000034b2: PUSH1 0x60 000034b4: SHR 000034b5: PUSH1 0x04 000034b7: DUP3 000034b8: ADD 000034b9: DUP2 000034ba: SWAP1 000034bb: MSTORE 000034bc: ADDRESS 000034bd: PUSH1 0x24 000034bf: DUP4 000034c0: ADD 000034c1: MSTORE 000034c2: PUSH1 0x44 000034c4: DUP3 000034c5: ADD 000034c6: DUP5 000034c7: SWAP1 000034c8: MSTORE 000034c9: SWAP2 000034ca: MLOAD 000034cb: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 000034ec: PUSH1 0x01 000034ee: PUSH1 0x01 000034f0: PUSH1 0xa0 000034f2: SHL 000034f3: SUB 000034f4: AND 000034f5: SWAP2 000034f6: PUSH4 0x0b0d9c09 000034fb: SWAP2 000034fc: PUSH1 0x64 000034fe: DUP1 000034ff: DUP4 00003500: ADD 00003501: SWAP3 00003502: PUSH0 00003503: SWAP3 00003504: SWAP2 00003505: SWAP1 00003506: DUP3 00003507: SWAP1 00003508: SUB 00003509: ADD 0000350a: DUP2 0000350b: DUP4 0000350c: DUP8 0000350d: DUP1 0000350e: EXTCODESIZE 0000350f: ISZERO 00003510: DUP1 00003511: ISZERO 00003512: PUSH2 0x3519 00003515: JUMPI 00003516: PUSH0 00003517: DUP1 00003518: REVERT 00003519: JUMPDEST 0000351a: POP 0000351b: GAS 0000351c: CALL 0000351d: ISZERO 0000351e: DUP1 0000351f: ISZERO 00003520: PUSH2 0x352b 00003523: JUMPI 00003524: RETURNDATASIZE 00003525: PUSH0 00003526: DUP1 00003527: RETURNDATACOPY 00003528: RETURNDATASIZE 00003529: PUSH0 0000352a: REVERT 0000352b: JUMPDEST 0000352c: POP 0000352d: PUSH2 0x0506 00003530: SWAP3 00003531: POP 00003532: PUSH1 0x04 00003534: SWAP2 00003535: POP 00003536: DUP4 00003537: SWAP1 00003538: POP 00003539: DUP5 0000353a: PUSH2 0x3ca3 0000353d: JUMP 0000353e: JUMPDEST 0000353f: PUSH1 0x01 00003541: DUP4 00003542: DUP2 00003543: ADD 00003544: SWAP4 00003545: PUSH0 00003546: SWAP2 00003547: SWAP1 00003548: CALLDATALOAD 00003549: DUP3 0000354a: BYTE 0000354b: SWAP1 0000354c: PUSH2 0x355a 0000354f: SWAP1 00003550: DUP6 00003551: SWAP1 00003552: DUP4 00003553: AND 00003554: ISZERO 00003555: ISZERO 00003556: PUSH2 0x3ccf 00003559: JUMP 0000355a: JUMPDEST 0000355b: PUSH1 0x02 0000355d: DUP6 0000355e: ADD 0000355f: SWAP5 00003560: CALLDATALOAD 00003561: PUSH1 0xf0 00003563: SHR 00003564: PUSH2 0x3581 00003567: PUSH2 0x3570 0000356a: DUP6 0000356b: DUP4 0000356c: PUSH2 0x3d13 0000356f: JUMP 00003570: JUMPDEST 00003571: DUP1 00003572: MLOAD 00003573: PUSH1 0x20 00003575: DUP3 00003576: ADD 00003577: MLOAD 00003578: PUSH1 0x40 0000357a: SWAP1 0000357b: SWAP3 0000357c: ADD 0000357d: MLOAD 0000357e: SWAP1 0000357f: SWAP3 00003580: JUMP 00003581: JUMPDEST 00003582: PUSH1 0x02 00003584: SIGNEXTEND 00003585: PUSH1 0x80 00003587: DUP9 00003588: ADD 00003589: MSTORE 0000358a: PUSH1 0x01 0000358c: PUSH1 0x01 0000358e: PUSH1 0xa0 00003590: SHL 00003591: SUB 00003592: SWAP1 00003593: DUP2 00003594: AND 00003595: PUSH1 0x40 00003597: DUP9 00003598: ADD 00003599: MSTORE 0000359a: AND 0000359b: PUSH1 0x20 0000359d: DUP7 0000359e: ADD 0000359f: SWAP1 000035a0: DUP2 000035a1: MSTORE 000035a2: PUSH1 0xa0 000035a4: SWAP1 000035a5: KECCAK256 000035a6: PUSH0 000035a7: PUSH1 0x10 000035a9: DUP9 000035aa: ADD 000035ab: DUP9 000035ac: CALLDATALOAD 000035ad: PUSH1 0x80 000035af: SHR 000035b0: SWAP1 000035b1: SWAP9 000035b2: POP 000035b3: PUSH16 0xffffffffffffffffffffffffffffffff 000035c4: AND 000035c5: SWAP1 000035c6: POP 000035c7: PUSH0 000035c8: DUP2 000035c9: ISZERO 000035ca: PUSH2 0x36c1 000035cd: JUMPI 000035ce: PUSH0 000035cf: PUSH2 0x3604 000035d2: PUSH2 0x097b 000035d5: PUSH1 0x01 000035d7: PUSH1 0x01 000035d9: PUSH1 0xa0 000035db: SHL 000035dc: SUB 000035dd: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 000035fe: AND 000035ff: DUP7 00003600: PUSH2 0x2670 00003603: JUMP 00003604: JUMPDEST 00003605: SWAP1 00003606: POP 00003607: PUSH2 0x360f 0000360a: DUP4 0000360b: PUSH2 0x3d73 0000360e: JUMP 0000360f: JUMPDEST 00003610: PUSH1 0xe0 00003612: DUP11 00003613: ADD 00003614: MSTORE 00003615: PUSH2 0x363e 00003618: DUP10 00003619: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 0000363a: PUSH2 0x3dd4 0000363d: JUMP 0000363e: JUMPDEST 0000363f: PUSH2 0x3674 00003642: PUSH2 0x097b 00003645: PUSH1 0x01 00003647: PUSH1 0x01 00003649: PUSH1 0xa0 0000364b: SHL 0000364c: SUB 0000364d: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 0000366e: AND 0000366f: DUP7 00003670: PUSH2 0x2670 00003673: JUMP 00003674: JUMPDEST 00003675: PUSH1 0x80 00003677: DUP11 00003678: ADD 00003679: MLOAD 0000367a: PUSH0 0000367b: DUP7 0000367c: DUP2 0000367d: MSTORE 0000367e: PUSH1 0x07 00003680: PUSH1 0x20 00003682: MSTORE 00003683: PUSH1 0x40 00003685: SWAP1 00003686: KECCAK256 00003687: SWAP2 00003688: SWAP4 00003689: POP 0000368a: PUSH2 0x36bb 0000368d: SWAP2 0000368e: SWAP1 0000368f: DUP7 00003690: SWAP1 00003691: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 000036b2: SWAP1 000036b3: DUP6 000036b4: SWAP1 000036b5: DUP8 000036b6: SWAP1 000036b7: PUSH2 0x3112 000036ba: JUMP 000036bb: JUMPDEST 000036bc: POP 000036bd: PUSH2 0x36fa 000036c0: JUMP 000036c1: JUMPDEST 000036c2: PUSH2 0x36f7 000036c5: PUSH2 0x097b 000036c8: PUSH1 0x01 000036ca: PUSH1 0x01 000036cc: PUSH1 0xa0 000036ce: SHL 000036cf: SUB 000036d0: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 000036f1: AND 000036f2: DUP6 000036f3: PUSH2 0x2670 000036f6: JUMP 000036f7: JUMPDEST 000036f8: SWAP1 000036f9: POP 000036fa: JUMPDEST 000036fb: PUSH0 000036fc: PUSH2 0x3721 000036ff: PUSH1 0x02 00003701: DUP8 00003702: AND 00003703: ISZERO 00003704: ISZERO 00003705: PUSH0 00003706: DUP7 00003707: DUP2 00003708: MSTORE 00003709: PUSH1 0x07 0000370b: PUSH1 0x20 0000370d: MSTORE 0000370e: PUSH1 0x40 00003710: SWAP1 00003711: KECCAK256 00003712: PUSH1 0x80 00003714: DUP13 00003715: ADD 00003716: MLOAD 00003717: DUP14 00003718: SWAP2 00003719: SWAP1 0000371a: DUP9 0000371b: SWAP1 0000371c: DUP8 0000371d: PUSH2 0x3df1 00003720: JUMP 00003721: JUMPDEST 00003722: PUSH1 0x20 00003724: DUP12 00003725: ADD 00003726: MLOAD 00003727: SWAP2 00003728: SWAP12 00003729: POP 0000372a: SWAP2 0000372b: POP 0000372c: PUSH2 0x3738 0000372f: SWAP1 00003730: PUSH1 0x04 00003732: SWAP1 00003733: DUP4 00003734: PUSH2 0x3b49 00003737: JUMP 00003738: JUMPDEST 00003739: POP 0000373a: SWAP9 0000373b: SWAP10 0000373c: SWAP9 0000373d: POP 0000373e: POP 0000373f: POP 00003740: POP 00003741: POP 00003742: POP 00003743: POP 00003744: POP 00003745: POP 00003746: JUMP 00003747: JUMPDEST 00003748: PUSH0 00003749: PUSH2 0x378c 0000374c: PUSH2 0x3753 0000374f: PUSH2 0x4139 00003752: JUMP 00003753: JUMPDEST 00003754: PUSH1 0x40 00003756: DUP1 00003757: MLOAD 00003758: PUSH1 0x42 0000375a: DUP2 0000375b: ADD 0000375c: SWAP1 0000375d: SWAP2 0000375e: MSTORE 0000375f: PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 00003780: DUP2 00003781: MSTORE 00003782: PUSH1 0x02 00003784: DUP2 00003785: ADD 00003786: SWAP2 00003787: SWAP1 00003788: SWAP2 00003789: MSTORE 0000378a: SWAP1 0000378b: JUMP 0000378c: JUMPDEST 0000378d: SWAP1 0000378e: POP 0000378f: SWAP1 00003790: JUMP 00003791: JUMPDEST 00003792: DUP4 00003793: CALLDATALOAD 00003794: PUSH0 00003795: SWAP1 00003796: DUP2 00003797: BYTE 00003798: PUSH1 0x01 0000379a: DUP2 0000379b: DUP2 0000379c: AND 0000379d: ISZERO 0000379e: ISZERO 0000379f: PUSH1 0x80 000037a1: DUP8 000037a2: DUP2 000037a3: ADD 000037a4: SWAP2 000037a5: SWAP1 000037a6: SWAP2 000037a7: MSTORE 000037a8: SWAP1 000037a9: DUP8 000037aa: ADD 000037ab: CALLDATALOAD 000037ac: DUP2 000037ad: SHR 000037ae: PUSH1 0x20 000037b0: DUP8 000037b1: ADD 000037b2: MSTORE 000037b3: PUSH1 0x11 000037b5: DUP8 000037b6: ADD 000037b7: CALLDATALOAD 000037b8: DUP2 000037b9: SHR 000037ba: PUSH1 0x40 000037bc: DUP8 000037bd: ADD 000037be: MSTORE 000037bf: PUSH1 0x21 000037c1: DUP8 000037c2: ADD 000037c3: CALLDATALOAD 000037c4: DUP2 000037c5: SHR 000037c6: PUSH1 0x60 000037c8: DUP8 000037c9: ADD 000037ca: DUP2 000037cb: SWAP1 000037cc: MSTORE 000037cd: PUSH1 0x41 000037cf: DUP9 000037d0: ADD 000037d1: SWAP8 000037d2: PUSH1 0x31 000037d4: ADD 000037d5: CALLDATALOAD 000037d6: SWAP1 000037d7: SWAP2 000037d8: SHR 000037d9: SWAP1 000037da: DUP2 000037db: GT 000037dc: ISZERO 000037dd: PUSH2 0x3812 000037e0: JUMPI 000037e1: PUSH1 0x40 000037e3: MLOAD 000037e4: PUSH32 0x2bae6c5200000000000000000000000000000000000000000000000000000000 00003805: DUP2 00003806: MSTORE 00003807: PUSH1 0x04 00003809: ADD 0000380a: PUSH1 0x40 0000380c: MLOAD 0000380d: DUP1 0000380e: SWAP2 0000380f: SUB 00003810: SWAP1 00003811: REVERT 00003812: JUMPDEST 00003813: PUSH1 0x02 00003815: DUP8 00003816: DUP2 00003817: ADD 00003818: SWAP8 00003819: CALLDATALOAD 0000381a: PUSH1 0xf0 0000381c: SHR 0000381d: SWAP1 0000381e: PUSH2 0x3841 00003821: SWAP1 00003822: DUP5 00003823: AND 00003824: ISZERO 00003825: ISZERO 00003826: PUSH2 0x382f 00003829: DUP8 0000382a: DUP5 0000382b: PUSH2 0x3d13 0000382e: JUMP 0000382f: JUMPDEST 00003830: SWAP1 00003831: PUSH1 0x05 00003833: SHL 00003834: PUSH1 0x20 00003836: DUP2 00003837: XOR 00003838: DUP3 00003839: ADD 0000383a: MLOAD 0000383b: SWAP2 0000383c: ADD 0000383d: MLOAD 0000383e: SWAP1 0000383f: SWAP2 00003840: JUMP 00003841: JUMPDEST 00003842: PUSH1 0x01 00003844: PUSH1 0x01 00003846: PUSH1 0xa0 00003848: SHL 00003849: SUB 0000384a: SWAP1 0000384b: DUP2 0000384c: AND 0000384d: PUSH1 0xc0 0000384f: DUP11 00003850: ADD 00003851: MSTORE 00003852: AND 00003853: PUSH1 0xa0 00003855: DUP9 00003856: ADD 00003857: MSTORE 00003858: POP 00003859: PUSH1 0x04 0000385b: DUP3 0000385c: AND 0000385d: PUSH2 0x3867 00003860: JUMPI 00003861: DUP7 00003862: PUSH0 00003863: PUSH2 0x3871 00003866: JUMP 00003867: JUMPDEST 00003868: PUSH1 0x14 0000386a: DUP8 0000386b: ADD 0000386c: DUP8 0000386d: CALLDATALOAD 0000386e: PUSH1 0x60 00003870: SHR 00003871: JUMPDEST 00003872: PUSH1 0x01 00003874: PUSH1 0x01 00003876: PUSH1 0xa0 00003878: SHL 00003879: SUB 0000387a: AND 0000387b: PUSH1 0xe0 0000387d: DUP9 0000387e: ADD 0000387f: MSTORE 00003880: SWAP7 00003881: POP 00003882: PUSH0 00003883: PUSH2 0x389d 00003886: PUSH2 0x3891 00003889: DUP9 0000388a: PUSH2 0x0120 0000388d: SWAP1 0000388e: KECCAK256 0000388f: SWAP1 00003890: JUMP 00003891: JUMPDEST 00003892: PUSH1 0x22 00003894: DUP9 00003895: ADD 00003896: MSTORE 00003897: PUSH1 0x42 00003899: DUP8 0000389a: KECCAK256 0000389b: SWAP1 0000389c: JUMP 0000389d: JUMPDEST 0000389e: SWAP1 0000389f: POP 000038a0: PUSH0 000038a1: PUSH1 0x08 000038a3: DUP5 000038a4: AND 000038a5: PUSH2 0x38b7 000038a8: JUMPI 000038a9: PUSH2 0x38b2 000038ac: DUP10 000038ad: DUP4 000038ae: PUSH2 0x422e 000038b1: JUMP 000038b2: JUMPDEST 000038b3: PUSH2 0x38c1 000038b6: JUMP 000038b7: JUMPDEST 000038b8: PUSH2 0x38c1 000038bb: DUP10 000038bc: DUP4 000038bd: PUSH2 0x4298 000038c0: JUMP 000038c1: JUMPDEST 000038c2: SWAP1 000038c3: SWAP10 000038c4: POP 000038c5: SWAP1 000038c6: POP 000038c7: PUSH2 0x38d0 000038ca: DUP3 000038cb: DUP3 000038cc: PUSH2 0x42dc 000038cf: JUMP 000038d0: JUMPDEST 000038d1: PUSH1 0xe0 000038d3: DUP9 000038d4: ADD 000038d5: MLOAD 000038d6: DUP1 000038d7: ISZERO 000038d8: DUP3 000038d9: MUL 000038da: OR 000038db: PUSH1 0x02 000038dd: DUP6 000038de: AND 000038df: ISZERO 000038e0: PUSH2 0x390f 000038e3: JUMPI 000038e4: DUP4 000038e5: PUSH16 0xffffffffffffffffffffffffffffffff 000038f6: AND 000038f7: DUP10 000038f8: PUSH1 0x20 000038fa: ADD 000038fb: DUP2 000038fc: DUP2 000038fd: MLOAD 000038fe: PUSH2 0x3907 00003901: SWAP2 00003902: SWAP1 00003903: PUSH2 0x5875 00003906: JUMP 00003907: JUMPDEST 00003908: SWAP1 00003909: MSTORE 0000390a: POP 0000390b: PUSH2 0x3937 0000390e: JUMP 0000390f: JUMPDEST 00003910: DUP4 00003911: PUSH16 0xffffffffffffffffffffffffffffffff 00003922: AND 00003923: DUP10 00003924: PUSH1 0x40 00003926: ADD 00003927: DUP2 00003928: DUP2 00003929: MLOAD 0000392a: PUSH2 0x3933 0000392d: SWAP2 0000392e: SWAP1 0000392f: PUSH2 0x5b0b 00003932: JUMP 00003933: JUMPDEST 00003934: SWAP1 00003935: MSTORE 00003936: POP 00003937: JUMPDEST 00003938: PUSH2 0x394f 0000393b: DUP3 0000393c: DUP11 0000393d: PUSH1 0xa0 0000393f: ADD 00003940: MLOAD 00003941: DUP12 00003942: PUSH1 0x20 00003944: ADD 00003945: MLOAD 00003946: DUP13 00003947: PUSH1 0x80 00003949: ADD 0000394a: MLOAD 0000394b: PUSH2 0x4304 0000394e: JUMP 0000394f: JUMPDEST 00003950: PUSH2 0x3967 00003953: DUP2 00003954: DUP11 00003955: PUSH1 0xc0 00003957: ADD 00003958: MLOAD 00003959: DUP12 0000395a: PUSH1 0x40 0000395c: ADD 0000395d: MLOAD 0000395e: DUP13 0000395f: PUSH1 0x80 00003961: ADD 00003962: MLOAD 00003963: PUSH2 0x4374 00003966: JUMP 00003967: JUMPDEST 00003968: POP 00003969: SWAP8 0000396a: SWAP9 0000396b: SWAP8 0000396c: POP 0000396d: POP 0000396e: POP 0000396f: POP 00003970: POP 00003971: POP 00003972: POP 00003973: POP 00003974: JUMP 00003975: JUMPDEST 00003976: PUSH0 00003977: DUP1 00003978: PUSH2 0x3981 0000397b: DUP6 0000397c: DUP8 0000397d: PUSH2 0x43d2 00003980: JUMP 00003981: JUMPDEST 00003982: PUSH1 0x02 00003984: DUP3 00003985: ADD 00003986: SWAP8 00003987: POP 00003988: SWAP2 00003989: POP 0000398a: PUSH0 0000398b: SWAP1 0000398c: DUP2 0000398d: SWAP1 0000398e: CALLDATALOAD 0000398f: PUSH1 0xf0 00003991: SHR 00003992: PUSH2 0x39aa 00003995: PUSH1 0x08 00003997: DUP6 00003998: AND 00003999: ISZERO 0000399a: ISZERO 0000399b: PUSH2 0x39a4 0000399e: DUP9 0000399f: DUP5 000039a0: PUSH2 0x3d13 000039a3: JUMP 000039a4: JUMPDEST 000039a5: SWAP1 000039a6: PUSH2 0x44b2 000039a9: JUMP 000039aa: JUMPDEST 000039ab: PUSH1 0x01 000039ad: PUSH1 0x01 000039af: PUSH1 0xa0 000039b1: SHL 000039b2: SUB 000039b3: SWAP2 000039b4: DUP3 000039b5: AND 000039b6: PUSH2 0x0100 000039b9: DUP13 000039ba: ADD 000039bb: MSTORE 000039bc: SWAP2 000039bd: AND 000039be: PUSH1 0xe0 000039c0: DUP11 000039c1: ADD 000039c2: MSTORE 000039c3: SWAP3 000039c4: POP 000039c5: POP 000039c6: POP 000039c7: PUSH1 0x20 000039c9: DUP8 000039ca: ADD 000039cb: DUP8 000039cc: CALLDATALOAD 000039cd: PUSH1 0xa0 000039cf: DUP9 000039d0: ADD 000039d1: DUP2 000039d2: SWAP1 000039d3: MSTORE 000039d4: SWAP1 000039d5: SWAP8 000039d6: POP 000039d7: DUP2 000039d8: LT 000039d9: ISZERO 000039da: PUSH2 0x3a0f 000039dd: JUMPI 000039de: PUSH1 0x40 000039e0: MLOAD 000039e1: PUSH32 0x8e1edfa400000000000000000000000000000000000000000000000000000000 00003a02: DUP2 00003a03: MSTORE 00003a04: PUSH1 0x04 00003a06: ADD 00003a07: PUSH1 0x40 00003a09: MLOAD 00003a0a: DUP1 00003a0b: SWAP2 00003a0c: SUB 00003a0d: SWAP1 00003a0e: REVERT 00003a0f: JUMPDEST 00003a10: PUSH1 0x02 00003a12: DUP3 00003a13: AND 00003a14: PUSH2 0x3a1e 00003a17: JUMPI 00003a18: DUP7 00003a19: PUSH0 00003a1a: PUSH2 0x3a28 00003a1d: JUMP 00003a1e: JUMPDEST 00003a1f: PUSH1 0x14 00003a21: DUP8 00003a22: ADD 00003a23: DUP8 00003a24: CALLDATALOAD 00003a25: PUSH1 0x60 00003a27: SHR 00003a28: JUMPDEST 00003a29: PUSH1 0x01 00003a2b: PUSH1 0x01 00003a2d: PUSH1 0xa0 00003a2f: SHL 00003a30: SUB 00003a31: AND 00003a32: PUSH2 0x0120 00003a35: DUP9 00003a36: ADD 00003a37: MSTORE 00003a38: SWAP7 00003a39: POP 00003a3a: PUSH0 00003a3b: PUSH2 0x3a48 00003a3e: DUP9 00003a3f: PUSH1 0x04 00003a41: DUP6 00003a42: AND 00003a43: ISZERO 00003a44: PUSH2 0x44f4 00003a47: JUMP 00003a48: JUMPDEST 00003a49: PUSH2 0x0140 00003a4c: DUP11 00003a4d: ADD 00003a4e: MSTORE 00003a4f: SWAP1 00003a50: SWAP9 00003a51: POP 00003a52: SWAP1 00003a53: POP 00003a54: PUSH2 0x3a5e 00003a57: DUP8 00003a58: DUP10 00003a59: DUP6 00003a5a: PUSH2 0x45d6 00003a5d: JUMP 00003a5e: JUMPDEST 00003a5f: SWAP8 00003a60: POP 00003a61: PUSH0 00003a62: DUP1 00003a63: PUSH2 0x3a6e 00003a66: DUP10 00003a67: DUP12 00003a68: DUP8 00003a69: DUP8 00003a6a: PUSH2 0x461e 00003a6d: JUMP 00003a6e: JUMPDEST 00003a6f: SWAP2 00003a70: SWAP12 00003a71: POP 00003a72: SWAP3 00003a73: POP 00003a74: SWAP1 00003a75: POP 00003a76: PUSH0 00003a77: PUSH2 0x3a8f 00003a7a: PUSH2 0x3a83 00003a7d: DUP12 00003a7e: DUP9 00003a7f: PUSH2 0x4828 00003a82: JUMP 00003a83: JUMPDEST 00003a84: PUSH1 0x22 00003a86: DUP12 00003a87: ADD 00003a88: MSTORE 00003a89: PUSH1 0x42 00003a8b: DUP11 00003a8c: KECCAK256 00003a8d: SWAP1 00003a8e: JUMP 00003a8f: JUMPDEST 00003a90: SWAP1 00003a91: POP 00003a92: PUSH0 00003a93: PUSH1 0x80 00003a95: DUP8 00003a96: AND 00003a97: PUSH2 0x3aa9 00003a9a: JUMPI 00003a9b: PUSH2 0x3aa4 00003a9e: DUP13 00003a9f: DUP4 00003aa0: PUSH2 0x422e 00003aa3: JUMP 00003aa4: JUMPDEST 00003aa5: PUSH2 0x3ab3 00003aa8: JUMP 00003aa9: JUMPDEST 00003aaa: PUSH2 0x3ab3 00003aad: DUP13 00003aae: DUP4 00003aaf: PUSH2 0x4298 00003ab2: JUMP 00003ab3: JUMPDEST 00003ab4: SWAP1 00003ab5: SWAP13 00003ab6: POP 00003ab7: SWAP1 00003ab8: POP 00003ab9: PUSH1 0x10 00003abb: DUP8 00003abc: AND 00003abd: ISZERO 00003abe: PUSH2 0x3aea 00003ac1: JUMPI 00003ac2: PUSH2 0x3ad6 00003ac5: DUP12 00003ac6: PUSH2 0x0180 00003ac9: ADD 00003aca: MLOAD 00003acb: PUSH5 0xffffffffff 00003ad1: AND 00003ad2: PUSH2 0x4848 00003ad5: JUMP 00003ad6: JUMPDEST 00003ad7: PUSH2 0x3ae5 00003ada: DUP2 00003adb: DUP13 00003adc: PUSH2 0x0160 00003adf: ADD 00003ae0: MLOAD 00003ae1: PUSH2 0x20ff 00003ae4: JUMP 00003ae5: JUMPDEST 00003ae6: PUSH2 0x3af4 00003ae9: JUMP 00003aea: JUMPDEST 00003aeb: PUSH2 0x3af4 00003aee: DUP3 00003aef: DUP3 00003af0: PUSH2 0x42dc 00003af3: JUMP 00003af4: JUMPDEST 00003af5: PUSH0 00003af6: DUP12 00003af7: PUSH2 0x0120 00003afa: ADD 00003afb: MLOAD 00003afc: SWAP1 00003afd: POP 00003afe: DUP1 00003aff: DUP3 00003b00: DUP3 00003b01: ISZERO 00003b02: MUL 00003b03: OR 00003b04: SWAP1 00003b05: POP 00003b06: PUSH2 0x3b1a 00003b09: DUP2 00003b0a: DUP14 00003b0b: PUSH2 0x0100 00003b0e: ADD 00003b0f: MLOAD 00003b10: DUP7 00003b11: DUP16 00003b12: PUSH1 0xc0 00003b14: ADD 00003b15: MLOAD 00003b16: PUSH2 0x4374 00003b19: JUMP 00003b1a: JUMPDEST 00003b1b: PUSH2 0x3b24 00003b1e: DUP7 00003b1f: DUP4 00003b20: PUSH2 0x4882 00003b23: JUMP 00003b24: JUMPDEST 00003b25: PUSH2 0x3b38 00003b28: DUP3 00003b29: DUP14 00003b2a: PUSH1 0xe0 00003b2c: ADD 00003b2d: MLOAD 00003b2e: DUP8 00003b2f: DUP16 00003b30: PUSH1 0xc0 00003b32: ADD 00003b33: MLOAD 00003b34: PUSH2 0x4304 00003b37: JUMP 00003b38: JUMPDEST 00003b39: POP 00003b3a: SWAP11 00003b3b: SWAP12 00003b3c: SWAP11 00003b3d: POP 00003b3e: POP 00003b3f: POP 00003b40: POP 00003b41: POP 00003b42: POP 00003b43: POP 00003b44: POP 00003b45: POP 00003b46: POP 00003b47: POP 00003b48: JUMP 00003b49: JUMPDEST 00003b4a: PUSH1 0x01 00003b4c: PUSH1 0x01 00003b4e: PUSH1 0xa0 00003b50: SHL 00003b51: SUB 00003b52: DUP3 00003b53: AND 00003b54: PUSH0 00003b55: SWAP1 00003b56: DUP2 00003b57: MSTORE 00003b58: PUSH1 0x20 00003b5a: DUP5 00003b5b: SWAP1 00003b5c: MSTORE 00003b5d: PUSH1 0x40 00003b5f: DUP2 00003b60: KECCAK256 00003b61: PUSH2 0x3b77 00003b64: PUSH2 0x3b6e 00003b67: DUP3 00003b68: TLOAD 00003b69: DUP6 00003b6a: PUSH2 0x48ca 00003b6d: JUMP 00003b6e: JUMPDEST 00003b6f: SWAP3 00003b70: POP 00003b71: DUP2 00003b72: DUP4 00003b73: PUSH2 0x2a27 00003b76: JUMP 00003b77: JUMPDEST 00003b78: POP 00003b79: SWAP4 00003b7a: SWAP3 00003b7b: POP 00003b7c: POP 00003b7d: POP 00003b7e: JUMP 00003b7f: JUMPDEST 00003b80: PUSH1 0x24 00003b82: DUP3 00003b83: DUP3 00003b84: CALLDATACOPY 00003b85: POP 00003b86: POP 00003b87: JUMP 00003b88: JUMPDEST 00003b89: PUSH0 00003b8a: DUP2 00003b8b: DUP4 00003b8c: SMOD 00003b8d: SLT 00003b8e: SWAP2 00003b8f: DUP2 00003b90: SWAP1 00003b91: SDIV 00003b92: SWAP2 00003b93: SWAP1 00003b94: SWAP2 00003b95: SUB 00003b96: MUL 00003b97: SWAP1 00003b98: JUMP 00003b99: JUMPDEST 00003b9a: PUSH4 0x01000000 00003b9f: DUP7 00003ba0: ADD 00003ba1: SLOAD 00003ba2: JUMPDEST 00003ba3: PUSH0 00003ba4: PUSH2 0x3bb8 00003ba7: PUSH1 0x01 00003ba9: PUSH1 0x01 00003bab: PUSH1 0xa0 00003bad: SHL 00003bae: SUB 00003baf: DUP9 00003bb0: AND 00003bb1: DUP8 00003bb2: DUP8 00003bb3: DUP7 00003bb4: PUSH2 0x48e2 00003bb7: JUMP 00003bb8: JUMPDEST 00003bb9: SWAP6 00003bba: POP 00003bbb: SWAP1 00003bbc: POP 00003bbd: PUSH1 0x02 00003bbf: DUP6 00003bc0: DUP2 00003bc1: SIGNEXTEND 00003bc2: SWAP1 00003bc3: DUP6 00003bc4: SWAP1 00003bc5: SIGNEXTEND 00003bc6: SLT 00003bc7: ISZERO 00003bc8: PUSH2 0x3bd1 00003bcb: JUMPI 00003bcc: POP 00003bcd: PUSH2 0x0ff6 00003bd0: JUMP 00003bd1: JUMPDEST 00003bd2: DUP1 00003bd3: ISZERO 00003bd4: PUSH2 0x3c12 00003bd7: JUMPI 00003bd8: DUP8 00003bd9: PUSH3 0xffffff 00003bdd: DUP7 00003bde: AND 00003bdf: PUSH4 0x01000000 00003be4: DUP2 00003be5: LT 00003be6: PUSH2 0x3bf1 00003be9: JUMPI 00003bea: PUSH2 0x3bf1 00003bed: PUSH2 0x5791 00003bf0: JUMP 00003bf1: JUMPDEST 00003bf2: ADD 00003bf3: SLOAD 00003bf4: DUP3 00003bf5: SUB 00003bf6: DUP9 00003bf7: PUSH3 0xffffff 00003bfb: DUP8 00003bfc: AND 00003bfd: PUSH4 0x01000000 00003c02: DUP2 00003c03: LT 00003c04: PUSH2 0x3c0f 00003c07: JUMPI 00003c08: PUSH2 0x3c0f 00003c0b: PUSH2 0x5791 00003c0e: JUMP 00003c0f: JUMPDEST 00003c10: ADD 00003c11: SSTORE 00003c12: JUMPDEST 00003c13: POP 00003c14: PUSH2 0x3ba2 00003c17: JUMP 00003c18: JUMPDEST 00003c19: PUSH0 00003c1a: PUSH2 0x3c2e 00003c1d: PUSH1 0x01 00003c1f: PUSH1 0x01 00003c21: PUSH1 0xa0 00003c23: SHL 00003c24: SUB 00003c25: DUP8 00003c26: AND 00003c27: DUP7 00003c28: DUP7 00003c29: DUP6 00003c2a: PUSH2 0x493c 00003c2d: JUMP 00003c2e: JUMPDEST 00003c2f: SWAP5 00003c30: POP 00003c31: SWAP1 00003c32: POP 00003c33: PUSH1 0x02 00003c35: DUP4 00003c36: DUP2 00003c37: SIGNEXTEND 00003c38: SWAP1 00003c39: DUP6 00003c3a: SWAP1 00003c3b: SIGNEXTEND 00003c3c: SGT 00003c3d: PUSH2 0x3c46 00003c40: JUMPI 00003c41: POP 00003c42: PUSH2 0x3193 00003c45: JUMP 00003c46: JUMPDEST 00003c47: DUP1 00003c48: ISZERO 00003c49: PUSH2 0x3c90 00003c4c: JUMPI 00003c4d: DUP7 00003c4e: PUSH3 0xffffff 00003c52: DUP6 00003c53: AND 00003c54: PUSH4 0x01000000 00003c59: DUP2 00003c5a: LT 00003c5b: PUSH2 0x3c66 00003c5e: JUMPI 00003c5f: PUSH2 0x3c66 00003c62: PUSH2 0x5791 00003c65: JUMP 00003c66: JUMPDEST 00003c67: ADD 00003c68: SLOAD 00003c69: DUP8 00003c6a: PUSH4 0x01000000 00003c6f: ADD 00003c70: SLOAD 00003c71: SUB 00003c72: DUP8 00003c73: PUSH0 00003c74: ADD 00003c75: DUP6 00003c76: PUSH3 0xffffff 00003c7a: AND 00003c7b: PUSH4 0x01000000 00003c80: DUP2 00003c81: LT 00003c82: PUSH2 0x3c8d 00003c85: JUMPI 00003c86: PUSH2 0x3c8d 00003c89: PUSH2 0x5791 00003c8c: JUMP 00003c8d: JUMPDEST 00003c8e: ADD 00003c8f: SSTORE 00003c90: JUMPDEST 00003c91: DUP4 00003c92: PUSH2 0x3c9a 00003c95: DUP2 00003c96: PUSH2 0x5b31 00003c99: JUMP 00003c9a: JUMPDEST 00003c9b: SWAP5 00003c9c: POP 00003c9d: POP 00003c9e: POP 00003c9f: PUSH2 0x3c18 00003ca2: JUMP 00003ca3: JUMPDEST 00003ca4: PUSH1 0x01 00003ca6: PUSH1 0x01 00003ca8: PUSH1 0xa0 00003caa: SHL 00003cab: SUB 00003cac: DUP3 00003cad: AND 00003cae: PUSH0 00003caf: SWAP1 00003cb0: DUP2 00003cb1: MSTORE 00003cb2: PUSH1 0x20 00003cb4: DUP5 00003cb5: SWAP1 00003cb6: MSTORE 00003cb7: PUSH1 0x40 00003cb9: SWAP1 00003cba: KECCAK256 00003cbb: PUSH2 0x2a45 00003cbe: PUSH2 0x3cc8 00003cc1: DUP3 00003cc2: TLOAD 00003cc3: DUP5 00003cc4: PUSH2 0x4974 00003cc7: JUMP 00003cc8: JUMPDEST 00003cc9: DUP3 00003cca: SWAP1 00003ccb: PUSH2 0x2a27 00003cce: JUMP 00003ccf: JUMPDEST 00003cd0: DUP1 00003cd1: ISZERO 00003cd2: ISZERO 00003cd3: PUSH1 0xc0 00003cd5: DUP4 00003cd6: ADD 00003cd7: MSTORE 00003cd8: DUP1 00003cd9: PUSH2 0x3cf6 00003cdc: JUMPI 00003cdd: PUSH20 0xfffd8963efd1fc6a506488495d951d5263988d25 00003cf2: PUSH2 0x3cfd 00003cf5: JUMP 00003cf6: JUMPDEST 00003cf7: PUSH5 0x01000276a4 00003cfd: JUMPDEST 00003cfe: PUSH1 0x01 00003d00: PUSH1 0x01 00003d02: PUSH1 0xa0 00003d04: SHL 00003d05: SUB 00003d06: AND 00003d07: PUSH2 0x0100 00003d0a: SWAP1 00003d0b: SWAP3 00003d0c: ADD 00003d0d: SWAP2 00003d0e: SWAP1 00003d0f: SWAP2 00003d10: MSTORE 00003d11: POP 00003d12: JUMP 00003d13: JUMPDEST 00003d14: PUSH0 00003d15: DUP2 00003d16: PUSH4 0xffffffff 00003d1b: DUP5 00003d1c: AND 00003d1d: GT 00003d1e: PUSH2 0x3d62 00003d21: JUMPI 00003d22: PUSH1 0x40 00003d24: MLOAD 00003d25: PUSH32 0xf6601b5000000000000000000000000000000000000000000000000000000000 00003d46: DUP2 00003d47: MSTORE 00003d48: PUSH1 0x04 00003d4a: DUP2 00003d4b: ADD 00003d4c: DUP4 00003d4d: SWAP1 00003d4e: MSTORE 00003d4f: PUSH4 0xffffffff 00003d54: DUP5 00003d55: AND 00003d56: PUSH1 0x24 00003d58: DUP3 00003d59: ADD 00003d5a: MSTORE 00003d5b: PUSH1 0x44 00003d5d: ADD 00003d5e: PUSH2 0x170b 00003d61: JUMP 00003d62: JUMPDEST 00003d63: POP 00003d64: PUSH1 0xc0 00003d66: DUP2 00003d67: MUL 00003d68: PUSH1 0x20 00003d6a: DUP4 00003d6b: SWAP1 00003d6c: SHR 00003d6d: ADD 00003d6e: SWAP3 00003d6f: SWAP2 00003d70: POP 00003d71: POP 00003d72: JUMP 00003d73: JUMPDEST 00003d74: PUSH0 00003d75: PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 00003d96: DUP3 00003d97: GT 00003d98: ISZERO 00003d99: PUSH2 0x3dce 00003d9c: JUMPI 00003d9d: PUSH1 0x40 00003d9f: MLOAD 00003da0: PUSH32 0x35278d1200000000000000000000000000000000000000000000000000000000 00003dc1: DUP2 00003dc2: MSTORE 00003dc3: PUSH1 0x04 00003dc5: ADD 00003dc6: PUSH1 0x40 00003dc8: MLOAD 00003dc9: DUP1 00003dca: SWAP2 00003dcb: SUB 00003dcc: SWAP1 00003dcd: REVERT 00003dce: JUMPDEST 00003dcf: POP 00003dd0: PUSH0 00003dd1: SUB 00003dd2: SWAP1 00003dd3: JUMP 00003dd4: JUMPDEST 00003dd5: PUSH0 00003dd6: DUP1 00003dd7: PUSH2 0x0144 00003dda: PUSH1 0x1c 00003ddc: DUP6 00003ddd: ADD 00003dde: PUSH0 00003ddf: DUP6 00003de0: GAS 00003de1: CALL 00003de2: DUP1 00003de3: PUSH2 0x0506 00003de6: JUMPI 00003de7: PUSH1 0x40 00003de9: MLOAD 00003dea: RETURNDATASIZE 00003deb: PUSH0 00003dec: DUP3 00003ded: RETURNDATACOPY 00003dee: RETURNDATASIZE 00003def: DUP2 00003df0: REVERT 00003df1: JUMPDEST 00003df2: PUSH0 00003df3: DUP1 00003df4: DUP8 00003df5: ISZERO 00003df6: PUSH2 0x3f23 00003df9: JUMPI 00003dfa: PUSH1 0x20 00003dfc: DUP8 00003dfd: ADD 00003dfe: SWAP7 00003dff: DUP1 00003e00: CALLDATALOAD 00003e01: PUSH1 0x80 00003e03: SWAP1 00003e04: DUP2 00003e05: SHR 00003e06: SWAP2 00003e07: PUSH1 0x10 00003e09: ADD 00003e0a: CALLDATALOAD 00003e0b: SWAP1 00003e0c: SHR 00003e0d: DUP2 00003e0e: ISZERO 00003e0f: DUP1 00003e10: PUSH2 0x3e29 00003e13: JUMPI 00003e14: POP 00003e15: PUSH16 0xffffffffffffffffffffffffffffffff 00003e26: DUP2 00003e27: AND 00003e28: ISZERO 00003e29: JUMPDEST 00003e2a: ISZERO 00003e2b: PUSH2 0x3e4b 00003e2e: JUMPI 00003e2f: POP 00003e30: DUP8 00003e31: SWAP3 00003e32: POP 00003e33: PUSH16 0xffffffffffffffffffffffffffffffff 00003e44: AND 00003e45: SWAP1 00003e46: POP 00003e47: PUSH2 0x1da7 00003e4a: JUMP 00003e4b: JUMPDEST 00003e4c: PUSH0 00003e4d: PUSH2 0x3e7f 00003e50: PUSH1 0x01 00003e52: PUSH1 0x01 00003e54: PUSH1 0xa0 00003e56: SHL 00003e57: SUB 00003e58: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00003e79: AND 00003e7a: DUP10 00003e7b: PUSH2 0x498c 00003e7e: JUMP 00003e7f: JUMPDEST 00003e80: SWAP1 00003e81: POP 00003e82: DUP1 00003e83: PUSH16 0xffffffffffffffffffffffffffffffff 00003e94: AND 00003e95: DUP3 00003e96: PUSH16 0xffffffffffffffffffffffffffffffff 00003ea7: AND 00003ea8: EQ 00003ea9: PUSH2 0x3ede 00003eac: JUMPI 00003ead: PUSH1 0x40 00003eaf: MLOAD 00003eb0: PUSH32 0xbecb195c00000000000000000000000000000000000000000000000000000000 00003ed1: DUP2 00003ed2: MSTORE 00003ed3: PUSH1 0x04 00003ed5: ADD 00003ed6: PUSH1 0x40 00003ed8: MLOAD 00003ed9: DUP1 00003eda: SWAP2 00003edb: SUB 00003edc: SWAP1 00003edd: REVERT 00003ede: JUMPDEST 00003edf: PUSH16 0xffffffffffffffffffffffffffffffff 00003ef0: DUP2 00003ef1: AND 00003ef2: PUSH1 0x80 00003ef4: DUP5 00003ef5: SWAP1 00003ef6: SHL 00003ef7: DIV 00003ef8: PUSH4 0x01000000 00003efd: DUP11 00003efe: ADD 00003eff: DUP1 00003f00: SLOAD 00003f01: SWAP1 00003f02: SWAP2 00003f03: ADD 00003f04: SWAP1 00003f05: SSTORE 00003f06: POP 00003f07: DUP9 00003f08: SWAP4 00003f09: POP 00003f0a: POP 00003f0b: PUSH16 0xffffffffffffffffffffffffffffffff 00003f1c: AND 00003f1d: SWAP1 00003f1e: POP 00003f1f: PUSH2 0x1da7 00003f22: JUMP 00003f23: JUMPDEST 00003f24: PUSH0 00003f25: DUP1 00003f26: DUP1 00003f27: PUSH1 0x03 00003f29: DUP11 00003f2a: ADD 00003f2b: DUP11 00003f2c: CALLDATALOAD 00003f2d: PUSH1 0xe8 00003f2f: SAR 00003f30: SWAP1 00003f31: SWAP11 00003f32: POP 00003f33: SWAP1 00003f34: POP 00003f35: PUSH0 00003f36: PUSH1 0x10 00003f38: DUP12 00003f39: ADD 00003f3a: DUP12 00003f3b: CALLDATALOAD 00003f3c: PUSH1 0x80 00003f3e: SHR 00003f3f: SWAP1 00003f40: SWAP12 00003f41: POP 00003f42: SWAP1 00003f43: POP 00003f44: PUSH0 00003f45: DUP1 00003f46: PUSH1 0x03 00003f48: DUP1 00003f49: DUP15 00003f4a: ADD 00003f4b: SWAP1 00003f4c: DUP15 00003f4d: CALLDATALOAD 00003f4e: PUSH1 0xe8 00003f50: SHR 00003f51: DUP16 00003f52: ADD 00003f53: ADD 00003f54: PUSH1 0x40 00003f56: DUP1 00003f57: MLOAD 00003f58: PUSH1 0x80 00003f5a: DUP2 00003f5b: ADD 00003f5c: DUP3 00003f5d: MSTORE 00003f5e: DUP15 00003f5f: DUP2 00003f60: MSTORE 00003f61: PUSH1 0x02 00003f63: DUP15 00003f64: DUP2 00003f65: SIGNEXTEND 00003f66: PUSH1 0x20 00003f68: DUP4 00003f69: ADD 00003f6a: MSTORE 00003f6b: DUP14 00003f6c: DUP2 00003f6d: SIGNEXTEND 00003f6e: SWAP3 00003f6f: DUP3 00003f70: ADD 00003f71: DUP4 00003f72: SWAP1 00003f73: MSTORE 00003f74: PUSH0 00003f75: PUSH1 0x60 00003f77: DUP4 00003f78: ADD 00003f79: DUP2 00003f7a: SWAP1 00003f7b: MSTORE 00003f7c: SWAP5 00003f7d: SWAP7 00003f7e: POP 00003f7f: SWAP3 00003f80: SWAP5 00003f81: POP 00003f82: DUP16 00003f83: SWAP4 00003f84: SWAP3 00003f85: SWAP1 00003f86: SWAP2 00003f87: SWAP1 00003f88: DUP9 00003f89: SWAP1 00003f8a: SIGNEXTEND 00003f8b: SGT 00003f8c: ISZERO 00003f8d: PUSH2 0x3fa2 00003f90: JUMPI 00003f91: PUSH2 0x3f9d 00003f94: DUP4 00003f95: DUP9 00003f96: DUP8 00003f97: DUP10 00003f98: DUP6 00003f99: PUSH2 0x49b0 00003f9c: JUMP 00003f9d: JUMPDEST 00003f9e: PUSH2 0x3faf 00003fa1: JUMP 00003fa2: JUMPDEST 00003fa3: PUSH2 0x3faf 00003fa6: DUP4 00003fa7: DUP9 00003fa8: DUP8 00003fa9: DUP10 00003faa: DUP6 00003fab: PUSH2 0x4af1 00003fae: JUMP 00003faf: JUMPDEST 00003fb0: PUSH16 0xffffffffffffffffffffffffffffffff 00003fc1: DUP2 00003fc2: AND 00003fc3: PUSH32 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000 00003fe4: DUP6 00003fe5: CALLDATALOAD 00003fe6: SWAP1 00003fe7: DUP2 00003fe8: AND 00003fe9: SWAP2 00003fea: SWAP1 00003feb: SWAP2 00003fec: DIV 00003fed: SWAP1 00003fee: SWAP3 00003fef: ADD 00003ff0: SWAP13 00003ff1: POP 00003ff2: SWAP11 00003ff3: POP 00003ff4: PUSH1 0x10 00003ff6: SWAP1 00003ff7: SWAP3 00003ff8: ADD 00003ff9: SWAP7 00003ffa: POP 00003ffb: SWAP3 00003ffc: POP 00003ffd: PUSH1 0x80 00003fff: SHR 00004000: PUSH2 0x4009 00004003: DUP2 00004004: DUP5 00004005: PUSH2 0x5875 00004008: JUMP 00004009: JUMPDEST 0000400a: SWAP3 0000400b: POP 0000400c: PUSH2 0x4015 0000400f: DUP7 00004010: DUP7 00004011: PUSH2 0x4c33 00004014: JUMP 00004015: JUMPDEST 00004016: DUP2 00004017: MLOAD 00004018: PUSH0 00004019: SWAP1 0000401a: PUSH2 0x404d 0000401d: SWAP1 0000401e: PUSH1 0x01 00004020: PUSH1 0x01 00004022: PUSH1 0xa0 00004024: SHL 00004025: SUB 00004026: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00004047: AND 00004048: SWAP1 00004049: PUSH2 0x498c 0000404c: JUMP 0000404d: JUMPDEST 0000404e: SWAP1 0000404f: POP 00004050: DUP1 00004051: PUSH16 0xffffffffffffffffffffffffffffffff 00004062: AND 00004063: DUP11 00004064: PUSH16 0xffffffffffffffffffffffffffffffff 00004075: AND 00004076: EQ 00004077: PUSH2 0x40c8 0000407a: JUMPI 0000407b: PUSH1 0x40 0000407d: MLOAD 0000407e: PUSH32 0x6429cfd200000000000000000000000000000000000000000000000000000000 0000409f: DUP2 000040a0: MSTORE 000040a1: PUSH16 0xffffffffffffffffffffffffffffffff 000040b2: DUP1 000040b3: DUP13 000040b4: AND 000040b5: PUSH1 0x04 000040b7: DUP4 000040b8: ADD 000040b9: MSTORE 000040ba: DUP3 000040bb: AND 000040bc: PUSH1 0x24 000040be: DUP3 000040bf: ADD 000040c0: MSTORE 000040c1: PUSH1 0x44 000040c3: ADD 000040c4: PUSH2 0x170b 000040c7: JUMP 000040c8: JUMPDEST 000040c9: PUSH1 0x60 000040cb: DUP4 000040cc: DUP2 000040cd: ADD 000040ce: MLOAD 000040cf: PUSH1 0x14 000040d1: DUP10 000040d2: ADD 000040d3: SWAP9 000040d4: CALLDATALOAD 000040d5: DUP3 000040d6: SHR 000040d7: SWAP2 000040d8: SHR 000040d9: DUP2 000040da: EQ 000040db: PUSH2 0x4110 000040de: JUMPI 000040df: PUSH1 0x40 000040e1: MLOAD 000040e2: PUSH32 0xbecb195c00000000000000000000000000000000000000000000000000000000 00004103: DUP2 00004104: MSTORE 00004105: PUSH1 0x04 00004107: ADD 00004108: PUSH1 0x40 0000410a: MLOAD 0000410b: DUP1 0000410c: SWAP2 0000410d: SUB 0000410e: SWAP1 0000410f: REVERT 00004110: JUMPDEST 00004111: POP 00004112: POP 00004113: POP 00004114: PUSH4 0x01000000 00004119: SWAP1 0000411a: SWAP3 0000411b: ADD 0000411c: DUP1 0000411d: SLOAD 0000411e: SWAP1 0000411f: SWAP9 00004120: ADD 00004121: SWAP1 00004122: SWAP8 00004123: SSTORE 00004124: POP 00004125: SWAP1 00004126: SWAP7 00004127: POP 00004128: SWAP4 00004129: SWAP5 0000412a: POP 0000412b: POP 0000412c: POP 0000412d: POP 0000412e: POP 0000412f: SWAP7 00004130: POP 00004131: SWAP7 00004132: SWAP5 00004133: POP 00004134: POP 00004135: POP 00004136: POP 00004137: POP 00004138: JUMP 00004139: JUMPDEST 0000413a: PUSH32 0x134332412bcbe715e351e7e7112dfbae2988a371dbae6631e3f502199008e7a0 0000415b: PUSH32 0x0000000000000000000000000000000aa232009084bd71a5797d089aa4edfad4 0000417c: ADDRESS 0000417d: EQ 0000417e: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001 0000419f: CHAINID 000041a0: EQ 000041a1: AND 000041a2: PUSH2 0x136b 000041a5: JUMPI 000041a6: POP 000041a7: PUSH1 0x40 000041a9: DUP1 000041aa: MLOAD 000041ab: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 000041cc: DUP2 000041cd: MSTORE 000041ce: PUSH32 0x5f0b52ce51fafd4028ebd56c0745e7be9457e917ae58eaec28e73e983bdd6e25 000041ef: PUSH1 0x20 000041f1: DUP3 000041f2: ADD 000041f3: MSTORE 000041f4: PUSH32 0x0984d5efd47d99151ae1be065a709e56c602102f24c1abc4008eb3f815a8d217 00004215: SWAP2 00004216: DUP2 00004217: ADD 00004218: SWAP2 00004219: SWAP1 0000421a: SWAP2 0000421b: MSTORE 0000421c: CHAINID 0000421d: PUSH1 0x60 0000421f: DUP3 00004220: ADD 00004221: MSTORE 00004222: ADDRESS 00004223: PUSH1 0x80 00004225: DUP3 00004226: ADD 00004227: MSTORE 00004228: PUSH1 0xa0 0000422a: SWAP1 0000422b: KECCAK256 0000422c: SWAP1 0000422d: JUMP 0000422e: JUMPDEST 0000422f: PUSH1 0x17 00004231: PUSH1 0x14 00004233: DUP4 00004234: ADD 00004235: CALLDATALOAD 00004236: PUSH1 0xe8 00004238: SHR 00004239: DUP1 0000423a: DUP5 0000423b: ADD 0000423c: DUP3 0000423d: ADD 0000423e: SWAP4 0000423f: PUSH0 00004240: SWAP3 00004241: DUP2 00004242: CALLDATALOAD 00004243: PUSH1 0x60 00004245: SHR 00004246: SWAP3 00004247: SWAP2 00004248: ADD 00004249: SWAP1 0000424a: PUSH2 0x4255 0000424d: DUP4 0000424e: DUP7 0000424f: DUP5 00004250: DUP5 00004251: PUSH2 0x4c6c 00004254: JUMP 00004255: JUMPDEST 00004256: PUSH2 0x428b 00004259: JUMPI 0000425a: PUSH1 0x40 0000425c: MLOAD 0000425d: PUSH32 0x8baa579f00000000000000000000000000000000000000000000000000000000 0000427e: DUP2 0000427f: MSTORE 00004280: PUSH1 0x04 00004282: ADD 00004283: PUSH1 0x40 00004285: MLOAD 00004286: DUP1 00004287: SWAP2 00004288: SUB 00004289: SWAP1 0000428a: REVERT 0000428b: JUMPDEST 0000428c: DUP6 0000428d: SWAP4 0000428e: POP 0000428f: POP 00004290: POP 00004291: JUMPDEST 00004292: SWAP3 00004293: POP 00004294: SWAP3 00004295: SWAP1 00004296: POP 00004297: JUMP 00004298: JUMPDEST 00004299: PUSH0 0000429a: DUP1 0000429b: PUSH1 0x40 0000429d: MLOAD 0000429e: DUP4 0000429f: DUP2 000042a0: MSTORE 000042a1: PUSH0 000042a2: PUSH1 0x20 000042a4: DUP3 000042a5: ADD 000042a6: MSTORE 000042a7: PUSH1 0x41 000042a9: DUP6 000042aa: PUSH1 0x3f 000042ac: DUP4 000042ad: ADD 000042ae: CALLDATACOPY 000042af: PUSH1 0x41 000042b1: DUP6 000042b2: ADD 000042b3: SWAP5 000042b4: POP 000042b5: PUSH1 0x20 000042b7: PUSH1 0x01 000042b9: PUSH1 0x80 000042bb: DUP4 000042bc: PUSH1 0x01 000042be: GAS 000042bf: STATICCALL 000042c0: MLOAD 000042c1: SWAP2 000042c2: POP 000042c3: POP 000042c4: RETURNDATASIZE 000042c5: PUSH2 0x42d5 000042c8: JUMPI 000042c9: PUSH4 0x8baa579f 000042ce: PUSH0 000042cf: MSTORE 000042d0: PUSH1 0x04 000042d2: PUSH1 0x1c 000042d4: REVERT 000042d5: JUMPDEST 000042d6: SWAP3 000042d7: SWAP4 000042d8: SWAP2 000042d9: POP 000042da: POP 000042db: JUMP 000042dc: JUMPDEST 000042dd: DUP1 000042de: PUSH1 0x14 000042e0: MSTORE 000042e1: DUP2 000042e2: PUSH0 000042e3: MSTORE 000042e4: PUSH1 0x34 000042e6: PUSH0 000042e7: KECCAK256 000042e8: DUP1 000042e9: TLOAD 000042ea: ISZERO 000042eb: PUSH2 0x42fb 000042ee: JUMPI 000042ef: PUSH4 0x8a2ef116 000042f4: PUSH0 000042f5: MSTORE 000042f6: PUSH1 0x04 000042f8: PUSH1 0x1c 000042fa: REVERT 000042fb: JUMPDEST 000042fc: PUSH1 0x01 000042fe: DUP2 000042ff: TSTORE 00004300: POP 00004301: POP 00004302: POP 00004303: JUMP 00004304: JUMPDEST 00004305: DUP2 00004306: PUSH2 0x4311 00004309: PUSH1 0x04 0000430b: DUP6 0000430c: DUP4 0000430d: PUSH2 0x3ca3 00004310: JUMP 00004311: JUMPDEST 00004312: DUP2 00004313: ISZERO 00004314: PUSH2 0x4358 00004317: JUMPI 00004318: PUSH1 0x01 0000431a: PUSH1 0x01 0000431c: PUSH1 0xa0 0000431e: SHL 0000431f: SUB 00004320: DUP1 00004321: DUP6 00004322: AND 00004323: PUSH0 00004324: SWAP1 00004325: DUP2 00004326: MSTORE 00004327: PUSH1 0x05 00004329: PUSH1 0x20 0000432b: SWAP1 0000432c: DUP2 0000432d: MSTORE 0000432e: PUSH1 0x40 00004330: DUP1 00004331: DUP4 00004332: KECCAK256 00004333: SWAP4 00004334: DUP10 00004335: AND 00004336: DUP4 00004337: MSTORE 00004338: SWAP3 00004339: SWAP1 0000433a: MSTORE 0000433b: SWAP1 0000433c: DUP2 0000433d: KECCAK256 0000433e: DUP1 0000433f: SLOAD 00004340: DUP4 00004341: SWAP3 00004342: SWAP1 00004343: PUSH2 0x434d 00004346: SWAP1 00004347: DUP5 00004348: SWAP1 00004349: PUSH2 0x5b0b 0000434c: JUMP 0000434d: JUMPDEST 0000434e: SWAP1 0000434f: SWAP2 00004350: SSTORE 00004351: POP 00004352: PUSH2 0x436d 00004355: SWAP1 00004356: POP 00004357: JUMP 00004358: JUMPDEST 00004359: PUSH2 0x436d 0000435c: PUSH1 0x01 0000435e: PUSH1 0x01 00004360: PUSH1 0xa0 00004362: SHL 00004363: SUB 00004364: DUP6 00004365: AND 00004366: DUP7 00004367: ADDRESS 00004368: DUP5 00004369: PUSH2 0x2938 0000436c: JUMP 0000436d: JUMPDEST 0000436e: POP 0000436f: POP 00004370: POP 00004371: POP 00004372: POP 00004373: JUMP 00004374: JUMPDEST 00004375: DUP2 00004376: PUSH2 0x4381 00004379: PUSH1 0x04 0000437b: DUP6 0000437c: DUP4 0000437d: PUSH2 0x3b49 00004380: JUMP 00004381: JUMPDEST 00004382: POP 00004383: DUP2 00004384: ISZERO 00004385: PUSH2 0x43be 00004388: JUMPI 00004389: PUSH1 0x01 0000438b: PUSH1 0x01 0000438d: PUSH1 0xa0 0000438f: SHL 00004390: SUB 00004391: DUP1 00004392: DUP6 00004393: AND 00004394: PUSH0 00004395: SWAP1 00004396: DUP2 00004397: MSTORE 00004398: PUSH1 0x05 0000439a: PUSH1 0x20 0000439c: SWAP1 0000439d: DUP2 0000439e: MSTORE 0000439f: PUSH1 0x40 000043a1: DUP1 000043a2: DUP4 000043a3: KECCAK256 000043a4: SWAP4 000043a5: DUP10 000043a6: AND 000043a7: DUP4 000043a8: MSTORE 000043a9: SWAP3 000043aa: SWAP1 000043ab: MSTORE 000043ac: SWAP1 000043ad: DUP2 000043ae: KECCAK256 000043af: DUP1 000043b0: SLOAD 000043b1: DUP4 000043b2: SWAP3 000043b3: SWAP1 000043b4: PUSH2 0x434d 000043b7: SWAP1 000043b8: DUP5 000043b9: SWAP1 000043ba: PUSH2 0x5875 000043bd: JUMP 000043be: JUMPDEST 000043bf: PUSH2 0x436d 000043c2: PUSH1 0x01 000043c4: PUSH1 0x01 000043c6: PUSH1 0xa0 000043c8: SHL 000043c9: SUB 000043ca: DUP6 000043cb: AND 000043cc: DUP7 000043cd: DUP4 000043ce: PUSH2 0x27e2 000043d1: JUMP 000043d2: JUMPDEST 000043d3: PUSH1 0x01 000043d5: DUP2 000043d6: ADD 000043d7: SWAP1 000043d8: PUSH0 000043d9: SWAP1 000043da: CALLDATALOAD 000043db: DUP2 000043dc: BYTE 000043dd: PUSH1 0x04 000043df: DUP4 000043e0: PUSH1 0x3c 000043e2: DUP7 000043e3: ADD 000043e4: CALLDATACOPY 000043e5: PUSH1 0x04 000043e7: SWAP3 000043e8: SWAP1 000043e9: SWAP3 000043ea: ADD 000043eb: SWAP2 000043ec: PUSH1 0x20 000043ee: DUP2 000043ef: AND 000043f0: ISZERO 000043f1: PUSH2 0x444b 000043f4: JUMPI 000043f5: PUSH1 0x10 000043f7: DUP2 000043f8: AND 000043f9: PUSH2 0x4422 000043fc: JUMPI 000043fd: PUSH32 0x6ee89dee573705c024a086e19a128ee0a5ee0547e3283adfa72fbe336a4c4b6c 0000441e: PUSH2 0x4444 00004421: JUMP 00004422: JUMPDEST 00004423: PUSH32 0x6be5f22bdcd037f6f35250c32e478fad62195ac2bbab1e2932f8c97af926b491 00004444: JUMPDEST 00004445: DUP5 00004446: MSTORE 00004447: PUSH2 0x449e 0000444a: JUMP 0000444b: JUMPDEST 0000444c: PUSH1 0x10 0000444e: DUP2 0000444f: AND 00004450: PUSH2 0x4479 00004453: JUMPI 00004454: PUSH32 0x022e170cdf338f45bc718f58d29bfafbf3956c2f9ea8d19ccc9b72e42dbbb7b0 00004475: PUSH2 0x449b 00004478: JUMP 00004479: JUMPDEST 0000447a: PUSH32 0xb0617b84f694c245e54fb8032ebdc9f56eb26ea2c1b65a46c58f50dbd516e286 0000449b: JUMPDEST 0000449c: DUP5 0000449d: MSTORE 0000449e: JUMPDEST 0000449f: PUSH1 0x01 000044a1: DUP2 000044a2: AND 000044a3: ISZERO 000044a4: ISZERO 000044a5: PUSH1 0xc0 000044a7: SWAP5 000044a8: SWAP1 000044a9: SWAP5 000044aa: ADD 000044ab: SWAP4 000044ac: SWAP1 000044ad: SWAP4 000044ae: MSTORE 000044af: POP 000044b0: SWAP2 000044b1: JUMP 000044b2: JUMPDEST 000044b3: PUSH1 0x05 000044b5: DUP2 000044b6: SWAP1 000044b7: SHL 000044b8: PUSH1 0x20 000044ba: DUP2 000044bb: XOR 000044bc: DUP4 000044bd: ADD 000044be: MLOAD 000044bf: SWAP1 000044c0: DUP4 000044c1: ADD 000044c2: DUP1 000044c3: MLOAD 000044c4: PUSH1 0x80 000044c6: SWAP1 000044c7: SWAP2 000044c8: ADD 000044c9: MLOAD 000044ca: PUSH1 0x60 000044cc: DUP6 000044cd: ADD 000044ce: MLOAD 000044cf: PUSH3 0x0f4240 000044d3: SWAP1 000044d4: DUP2 000044d5: SUB 000044d6: SWAP1 000044d7: PUSH2 0x44e0 000044da: DUP3 000044db: DUP5 000044dc: PUSH2 0x5b8d 000044df: JUMP 000044e0: JUMPDEST 000044e1: PUSH2 0x44ea 000044e4: SWAP2 000044e5: SWAP1 000044e6: PUSH2 0x5b1e 000044e9: JUMP 000044ea: JUMPDEST 000044eb: SWAP2 000044ec: POP 000044ed: POP 000044ee: SWAP3 000044ef: POP 000044f0: SWAP3 000044f1: POP 000044f2: SWAP3 000044f3: JUMP 000044f4: JUMPDEST 000044f5: PUSH0 000044f6: DUP1 000044f7: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 00004518: DUP4 00004519: PUSH2 0x45cc 0000451c: JUMPI 0000451d: DUP5 0000451e: CALLDATALOAD 0000451f: PUSH1 0xe8 00004521: SHR 00004522: PUSH1 0x03 00004524: DUP7 00004525: ADD 00004526: SWAP6 00004527: POP 00004528: PUSH1 0x40 0000452a: MLOAD 0000452b: PUSH1 0x14 0000452d: PUSH1 0x64 0000452f: SUB 00004530: DUP2 00004531: ADD 00004532: DUP3 00004533: DUP2 00004534: ADD 00004535: PUSH1 0x40 00004537: MSTORE 00004538: DUP3 00004539: DUP9 0000453a: DUP3 0000453b: CALLDATACOPY 0000453c: DUP3 0000453d: SWAP1 0000453e: KECCAK256 0000453f: PUSH1 0x50 00004541: DUP3 00004542: DUP2 00004543: ADD 00004544: MLOAD 00004545: PUSH32 0x7407905c00000000000000000000000000000000000000000000000000000000 00004566: DUP5 00004567: MSTORE 00004568: PUSH1 0x40 0000456a: PUSH1 0x24 0000456c: DUP6 0000456d: ADD 0000456e: DUP2 0000456f: SWAP1 00004570: MSTORE 00004571: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec 00004592: DUP7 00004593: ADD 00004594: PUSH1 0x44 00004596: DUP7 00004597: ADD 00004598: MSTORE 00004599: SWAP10 0000459a: DUP6 0000459b: ADD 0000459c: SWAP10 0000459d: PUSH1 0xc0 0000459f: SWAP5 000045a0: SWAP1 000045a1: SWAP5 000045a2: SHL 000045a3: PUSH24 0xffffffffffffffffffffffffffffffffffffffff00000000 000045bc: SWAP2 000045bd: SWAP1 000045be: SWAP5 000045bf: SHR 000045c0: AND 000045c1: SWAP4 000045c2: ADD 000045c3: SWAP3 000045c4: SWAP1 000045c5: SWAP3 000045c6: OR 000045c7: OR 000045c8: SWAP3 000045c9: POP 000045ca: SWAP1 000045cb: POP 000045cc: JUMPDEST 000045cd: DUP5 000045ce: SWAP3 000045cf: POP 000045d0: SWAP3 000045d1: POP 000045d2: SWAP3 000045d3: POP 000045d4: SWAP3 000045d5: JUMP 000045d6: JUMPDEST 000045d7: PUSH0 000045d8: PUSH1 0x10 000045da: DUP3 000045db: AND 000045dc: ISZERO 000045dd: PUSH2 0x4604 000045e0: JUMPI 000045e1: PUSH1 0x08 000045e3: DUP4 000045e4: PUSH2 0x0178 000045e7: DUP7 000045e8: ADD 000045e9: CALLDATACOPY 000045ea: PUSH1 0x08 000045ec: SWAP3 000045ed: SWAP1 000045ee: SWAP3 000045ef: ADD 000045f0: SWAP2 000045f1: PUSH1 0x05 000045f3: DUP4 000045f4: PUSH2 0x019b 000045f7: DUP7 000045f8: ADD 000045f9: CALLDATACOPY 000045fa: PUSH1 0x05 000045fc: DUP4 000045fd: ADD 000045fe: SWAP3 000045ff: POP 00004600: PUSH2 0x4616 00004603: JUMP 00004604: JUMPDEST 00004605: PUSH8 0xffffffffffffffff 0000460e: NUMBER 0000460f: AND 00004610: PUSH2 0x0160 00004613: DUP6 00004614: ADD 00004615: MSTORE 00004616: JUMPDEST 00004617: POP 00004618: SWAP1 00004619: SWAP3 0000461a: SWAP2 0000461b: POP 0000461c: POP 0000461d: JUMP 0000461e: JUMPDEST 0000461f: PUSH0 00004620: DUP1 00004621: DUP1 00004622: DUP1 00004623: PUSH1 0x20 00004625: DUP7 00004626: AND 00004627: ISZERO 00004628: PUSH2 0x46d0 0000462b: JUMPI 0000462c: POP 0000462d: DUP6 0000462e: CALLDATALOAD 0000462f: PUSH1 0x80 00004631: SWAP1 00004632: DUP2 00004633: SHR 00004634: PUSH1 0x40 00004636: DUP10 00004637: ADD 00004638: DUP2 00004639: SWAP1 0000463a: MSTORE 0000463b: PUSH1 0x10 0000463d: DUP9 0000463e: ADD 0000463f: CALLDATALOAD 00004640: DUP3 00004641: SHR 00004642: PUSH1 0x60 00004644: DUP11 00004645: ADD 00004646: DUP2 00004647: SWAP1 00004648: MSTORE 00004649: PUSH1 0x30 0000464b: DUP10 0000464c: ADD 0000464d: SWAP9 0000464e: PUSH1 0x20 00004650: ADD 00004651: CALLDATALOAD 00004652: SWAP1 00004653: SWAP3 00004654: SHR 00004655: SWAP2 00004656: DUP2 00004657: DUP4 00004658: LT 00004659: ISZERO 0000465a: PUSH2 0x468f 0000465d: JUMPI 0000465e: PUSH1 0x40 00004660: MLOAD 00004661: PUSH32 0xc4daf00300000000000000000000000000000000000000000000000000000000 00004682: DUP2 00004683: MSTORE 00004684: PUSH1 0x04 00004686: ADD 00004687: PUSH1 0x40 00004689: MLOAD 0000468a: DUP1 0000468b: SWAP2 0000468c: SUB 0000468d: SWAP1 0000468e: REVERT 0000468f: JUMPDEST 00004690: DUP1 00004691: DUP4 00004692: GT 00004693: ISZERO 00004694: PUSH2 0x46c9 00004697: JUMPI 00004698: PUSH1 0x40 0000469a: MLOAD 0000469b: PUSH32 0x4418233100000000000000000000000000000000000000000000000000000000 000046bc: DUP2 000046bd: MSTORE 000046be: PUSH1 0x04 000046c0: ADD 000046c1: PUSH1 0x40 000046c3: MLOAD 000046c4: DUP1 000046c5: SWAP2 000046c6: SUB 000046c7: SWAP1 000046c8: REVERT 000046c9: JUMPDEST 000046ca: POP 000046cb: POP 000046cc: PUSH2 0x46fb 000046cf: JUMP 000046d0: JUMPDEST 000046d1: POP 000046d2: PUSH1 0x10 000046d4: DUP7 000046d5: ADD 000046d6: SWAP6 000046d7: CALLDATALOAD 000046d8: PUSH1 0x80 000046da: SHR 000046db: PUSH1 0x40 000046dd: DUP7 000046de: AND 000046df: PUSH2 0x46e8 000046e2: JUMPI 000046e3: PUSH0 000046e4: PUSH2 0x46eb 000046e7: JUMP 000046e8: JUMPDEST 000046e9: PUSH1 0x01 000046eb: JUMPDEST 000046ec: PUSH1 0xff 000046ee: AND 000046ef: PUSH1 0x40 000046f1: DUP10 000046f2: ADD 000046f3: MSTORE 000046f4: PUSH1 0x60 000046f6: DUP9 000046f7: ADD 000046f8: DUP2 000046f9: SWAP1 000046fa: MSTORE 000046fb: JUMPDEST 000046fc: PUSH1 0x20 000046fe: DUP8 000046ff: ADD 00004700: SWAP7 00004701: PUSH1 0x10 00004703: DUP2 00004704: ADD 00004705: CALLDATALOAD 00004706: PUSH1 0x80 00004708: SWAP1 00004709: DUP2 0000470a: SHR 0000470b: SWAP2 0000470c: CALLDATALOAD 0000470d: SWAP1 0000470e: SHR 0000470f: DUP1 00004710: DUP3 00004711: GT 00004712: ISZERO 00004713: PUSH2 0x4748 00004716: JUMPI 00004717: PUSH1 0x40 00004719: MLOAD 0000471a: PUSH32 0x668fef1b00000000000000000000000000000000000000000000000000000000 0000473b: DUP2 0000473c: MSTORE 0000473d: PUSH1 0x04 0000473f: ADD 00004740: PUSH1 0x40 00004742: MLOAD 00004743: DUP1 00004744: SWAP2 00004745: SUB 00004746: SWAP1 00004747: REVERT 00004748: JUMPDEST 00004749: PUSH16 0xffffffffffffffffffffffffffffffff 0000475a: AND 0000475b: PUSH1 0x80 0000475d: DUP11 0000475e: ADD 0000475f: MSTORE 00004760: PUSH1 0x08 00004762: DUP8 00004763: AND 00004764: ISZERO 00004765: PUSH2 0x47c3 00004768: JUMPI 00004769: PUSH16 0xffffffffffffffffffffffffffffffff 0000477a: DUP2 0000477b: AND 0000477c: PUSH1 0x60 0000477e: DUP9 0000477f: AND 00004780: ISZERO 00004781: PUSH2 0x47a2 00004784: JUMPI 00004785: DUP3 00004786: SWAP5 00004787: POP 00004788: PUSH2 0x479b 0000478b: PUSH2 0x4794 0000478e: DUP7 0000478f: DUP4 00004790: PUSH2 0x4cb1 00004793: JUMP 00004794: JUMPDEST 00004795: DUP9 00004796: SWAP1 00004797: PUSH2 0x4cbc 0000479a: JUMP 0000479b: JUMPDEST 0000479c: SWAP4 0000479d: POP 0000479e: PUSH2 0x47bd 000047a1: JUMP 000047a2: JUMPDEST 000047a3: SWAP2 000047a4: SWAP3 000047a5: POP 000047a6: DUP3 000047a7: SWAP2 000047a8: PUSH2 0x47ba 000047ab: PUSH2 0x47b4 000047ae: DUP9 000047af: DUP6 000047b0: PUSH2 0x4cc7 000047b3: JUMP 000047b4: JUMPDEST 000047b5: DUP3 000047b6: PUSH2 0x4cd2 000047b9: JUMP 000047ba: JUMPDEST 000047bb: SWAP5 000047bc: POP 000047bd: JUMPDEST 000047be: POP 000047bf: PUSH2 0x481a 000047c2: JUMP 000047c3: JUMPDEST 000047c4: PUSH16 0xffffffffffffffffffffffffffffffff 000047d5: DUP2 000047d6: AND 000047d7: PUSH1 0x60 000047d9: DUP9 000047da: AND 000047db: ISZERO 000047dc: PUSH2 0x47fe 000047df: JUMPI 000047e0: SWAP2 000047e1: SWAP4 000047e2: POP 000047e3: DUP4 000047e4: SWAP2 000047e5: PUSH2 0x47f7 000047e8: PUSH2 0x47f1 000047eb: DUP9 000047ec: DUP6 000047ed: PUSH2 0x4cbc 000047f0: JUMP 000047f1: JUMPDEST 000047f2: DUP3 000047f3: PUSH2 0x4cb1 000047f6: JUMP 000047f7: JUMPDEST 000047f8: SWAP4 000047f9: POP 000047fa: PUSH2 0x4818 000047fd: JUMP 000047fe: JUMPDEST 000047ff: DUP3 00004800: SWAP4 00004801: POP 00004802: PUSH2 0x4815 00004805: PUSH2 0x480e 00004808: DUP6 00004809: DUP4 0000480a: PUSH2 0x4cd2 0000480d: JUMP 0000480e: JUMPDEST 0000480f: DUP9 00004810: SWAP1 00004811: PUSH2 0x4cc7 00004814: JUMP 00004815: JUMPDEST 00004816: SWAP5 00004817: POP 00004818: JUMPDEST 00004819: POP 0000481a: JUMPDEST 0000481b: POP 0000481c: SWAP6 0000481d: SWAP8 0000481e: SWAP2 0000481f: SWAP7 00004820: POP 00004821: SWAP5 00004822: POP 00004823: SWAP3 00004824: POP 00004825: POP 00004826: POP 00004827: JUMP 00004828: JUMPDEST 00004829: PUSH0 0000482a: DUP1 0000482b: PUSH1 0x10 0000482d: DUP4 0000482e: AND 0000482f: PUSH2 0x483a 00004832: JUMPI 00004833: PUSH2 0x0180 00004836: PUSH2 0x483e 00004839: JUMP 0000483a: JUMPDEST 0000483b: PUSH2 0x01a0 0000483e: JUMPDEST 0000483f: SWAP1 00004840: SWAP4 00004841: KECCAK256 00004842: SWAP4 00004843: SWAP3 00004844: POP 00004845: POP 00004846: POP 00004847: JUMP 00004848: JUMPDEST 00004849: DUP1 0000484a: TIMESTAMP 0000484b: GT 0000484c: ISZERO 0000484d: PUSH2 0x0515 00004850: JUMPI 00004851: PUSH1 0x40 00004853: MLOAD 00004854: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000 00004875: DUP2 00004876: MSTORE 00004877: PUSH1 0x04 00004879: ADD 0000487a: PUSH1 0x40 0000487c: MLOAD 0000487d: DUP1 0000487e: SWAP2 0000487f: SUB 00004880: SWAP1 00004881: REVERT 00004882: JUMPDEST 00004883: DUP2 00004884: ISZERO 00004885: PUSH2 0x1ea6 00004888: JUMPI 00004889: PUSH4 0xffffffff 0000488e: DUP3 0000488f: AND 00004890: DUP3 00004891: PUSH1 0xc0 00004893: SHR 00004894: DUP3 00004895: PUSH1 0x04 00004897: DUP3 00004898: ADD 00004899: MSTORE 0000489a: DUP4 0000489b: PUSH1 0x20 0000489d: SHR 0000489e: PUSH1 0x20 000048a0: PUSH0 000048a1: DUP5 000048a2: DUP5 000048a3: PUSH0 000048a4: DUP6 000048a5: GAS 000048a6: CALL 000048a7: SWAP3 000048a8: POP 000048a9: POP 000048aa: POP 000048ab: PUSH4 0x24a2e44b 000048b0: PUSH0 000048b1: MLOAD 000048b2: EQ 000048b3: PUSH1 0x1f 000048b5: RETURNDATASIZE 000048b6: GT 000048b7: AND 000048b8: DUP2 000048b9: AND 000048ba: PUSH2 0x0506 000048bd: JUMPI 000048be: PUSH4 0xf959fdae 000048c3: PUSH0 000048c4: MSTORE 000048c5: PUSH1 0x04 000048c7: PUSH1 0x1c 000048c9: REVERT 000048ca: JUMPDEST 000048cb: DUP1 000048cc: DUP3 000048cd: SUB 000048ce: DUP3 000048cf: DUP2 000048d0: SGT 000048d1: ISZERO 000048d2: PUSH2 0x221c 000048d5: JUMPI 000048d6: PUSH4 0xc9654ed4 000048db: PUSH0 000048dc: MSTORE 000048dd: PUSH1 0x04 000048df: PUSH1 0x1c 000048e1: REVERT 000048e2: JUMPDEST 000048e3: PUSH0 000048e4: DUP1 000048e5: DUP1 000048e6: DUP1 000048e7: PUSH2 0x48fc 000048ea: PUSH2 0x2845 000048ed: DUP7 000048ee: DUP9 000048ef: SMOD 000048f0: DUP4 000048f1: SGT 000048f2: DUP8 000048f3: DUP10 000048f4: SDIV 000048f5: SUB 000048f6: PUSH1 0x01 000048f8: PUSH2 0x5ba4 000048fb: JUMP 000048fc: JUMPDEST 000048fd: SWAP1 000048fe: SWAP3 000048ff: POP 00004900: SWAP1 00004901: POP 00004902: PUSH2 0x491f 00004905: DUP2 00004906: PUSH2 0x4919 00004909: PUSH1 0x01 0000490b: PUSH1 0x01 0000490d: PUSH1 0xa0 0000490f: SHL 00004910: SUB 00004911: DUP12 00004912: AND 00004913: DUP11 00004914: DUP7 00004915: PUSH2 0x33a7 00004918: JUMP 00004919: JUMPDEST 0000491a: SWAP1 0000491b: PUSH2 0x4cdd 0000491e: JUMP 0000491f: JUMPDEST 00004920: SWAP1 00004921: SWAP5 00004922: POP 00004923: SWAP1 00004924: POP 00004925: PUSH2 0x492f 00004928: DUP3 00004929: DUP3 0000492a: DUP8 0000492b: PUSH2 0x4d9f 0000492e: JUMP 0000492f: JUMPDEST 00004930: SWAP3 00004931: POP 00004932: POP 00004933: POP 00004934: SWAP5 00004935: POP 00004936: SWAP5 00004937: SWAP3 00004938: POP 00004939: POP 0000493a: POP 0000493b: JUMP 0000493c: JUMPDEST 0000493d: PUSH0 0000493e: DUP1 0000493f: DUP1 00004940: DUP1 00004941: PUSH2 0x4951 00004944: DUP6 00004945: DUP8 00004946: SMOD 00004947: DUP3 00004948: SGT 00004949: DUP7 0000494a: DUP9 0000494b: SDIV 0000494c: SUB 0000494d: PUSH2 0x2845 00004950: JUMP 00004951: JUMPDEST 00004952: SWAP1 00004953: SWAP3 00004954: POP 00004955: SWAP1 00004956: POP 00004957: PUSH2 0x491f 0000495a: DUP2 0000495b: PUSH2 0x496e 0000495e: PUSH1 0x01 00004960: PUSH1 0x01 00004962: PUSH1 0xa0 00004964: SHL 00004965: SUB 00004966: DUP12 00004967: AND 00004968: DUP11 00004969: DUP7 0000496a: PUSH2 0x33a7 0000496d: JUMP 0000496e: JUMPDEST 0000496f: SWAP1 00004970: PUSH2 0x4dc9 00004973: JUMP 00004974: JUMPDEST 00004975: DUP2 00004976: DUP2 00004977: ADD 00004978: DUP3 00004979: DUP2 0000497a: SLT 0000497b: ISZERO 0000497c: PUSH2 0x221c 0000497f: JUMPI 00004980: PUSH4 0xc9654ed4 00004985: PUSH0 00004986: MSTORE 00004987: PUSH1 0x04 00004989: PUSH1 0x1c 0000498b: REVERT 0000498c: JUMPDEST 0000498d: PUSH0 0000498e: DUP2 0000498f: DUP2 00004990: MSTORE 00004991: PUSH1 0x06 00004993: PUSH1 0x20 00004995: MSTORE 00004996: PUSH1 0x40 00004998: DUP2 00004999: KECCAK256 0000499a: PUSH0 0000499b: PUSH2 0x33d5 0000499e: PUSH1 0x01 000049a0: PUSH1 0x01 000049a2: PUSH1 0xa0 000049a4: SHL 000049a5: SUB 000049a6: DUP7 000049a7: AND 000049a8: PUSH1 0x03 000049aa: DUP5 000049ab: ADD 000049ac: PUSH2 0x3377 000049af: JUMP 000049b0: JUMPDEST 000049b1: PUSH0 000049b2: DUP1 000049b3: DUP1 000049b4: DUP1 000049b5: PUSH1 0x01 000049b7: DUP2 000049b8: DUP1 000049b9: DUP1 000049ba: JUMPDEST 000049bb: DUP4 000049bc: ISZERO 000049bd: PUSH2 0x4a7f 000049c0: JUMPI 000049c1: PUSH1 0x10 000049c3: DUP12 000049c4: ADD 000049c5: SWAP11 000049c6: CALLDATALOAD 000049c7: PUSH1 0x80 000049c9: SHR 000049ca: PUSH2 0x49d3 000049cd: DUP2 000049ce: DUP6 000049cf: PUSH2 0x5875 000049d2: JUMP 000049d3: JUMPDEST 000049d4: SWAP4 000049d5: POP 000049d6: PUSH16 0xffffffffffffffffffffffffffffffff 000049e7: DUP12 000049e8: AND 000049e9: PUSH1 0x80 000049eb: DUP3 000049ec: SWAP1 000049ed: SHL 000049ee: DIV 000049ef: DUP4 000049f0: ADD 000049f1: SWAP3 000049f2: POP 000049f3: DUP3 000049f4: DUP15 000049f5: DUP15 000049f6: PUSH3 0xffffff 000049fa: AND 000049fb: PUSH4 0x01000000 00004a00: DUP2 00004a01: LT 00004a02: PUSH2 0x4a0d 00004a05: JUMPI 00004a06: PUSH2 0x4a0d 00004a09: PUSH2 0x5791 00004a0c: JUMP 00004a0d: JUMPDEST 00004a0e: ADD 00004a0f: PUSH0 00004a10: DUP3 00004a11: DUP3 00004a12: SLOAD 00004a13: ADD 00004a14: SWAP3 00004a15: POP 00004a16: POP 00004a17: DUP2 00004a18: SWAP1 00004a19: SSTORE 00004a1a: POP 00004a1b: PUSH0 00004a1c: PUSH2 0x4a5c 00004a1f: DUP12 00004a20: PUSH0 00004a21: ADD 00004a22: MLOAD 00004a23: DUP16 00004a24: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00004a45: PUSH1 0x01 00004a47: PUSH1 0x01 00004a49: PUSH1 0xa0 00004a4b: SHL 00004a4c: SUB 00004a4d: AND 00004a4e: PUSH2 0x4e91 00004a51: SWAP1 00004a52: SWAP3 00004a53: SWAP2 00004a54: SWAP1 00004a55: PUSH4 0xffffffff 00004a5a: AND 00004a5b: JUMP 00004a5c: JUMPDEST 00004a5d: SWAP2 00004a5e: POP 00004a5f: POP 00004a60: PUSH2 0x4a69 00004a63: DUP13 00004a64: DUP3 00004a65: PUSH2 0x4ef6 00004a68: JUMP 00004a69: JUMPDEST 00004a6a: SWAP12 00004a6b: POP 00004a6c: DUP14 00004a6d: PUSH1 0x13 00004a6f: MSTORE 00004a70: DUP12 00004a71: PUSH1 0x10 00004a73: MSTORE 00004a74: DUP3 00004a75: PUSH0 00004a76: MSTORE 00004a77: PUSH1 0x33 00004a79: PUSH0 00004a7a: KECCAK256 00004a7b: SWAP3 00004a7c: POP 00004a7d: POP 00004a7e: POP 00004a7f: JUMPDEST 00004a80: DUP9 00004a81: MLOAD 00004a82: PUSH1 0x20 00004a84: DUP11 00004a85: ADD 00004a86: MLOAD 00004a87: PUSH2 0x4abc 00004a8a: SWAP2 00004a8b: PUSH1 0x01 00004a8d: PUSH1 0x01 00004a8f: PUSH1 0xa0 00004a91: SHL 00004a92: SUB 00004a93: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00004ab4: AND 00004ab5: SWAP2 00004ab6: DUP16 00004ab7: SWAP1 00004ab8: PUSH2 0x4f10 00004abb: JUMP 00004abc: JUMPDEST 00004abd: DUP1 00004abe: SWAP14 00004abf: POP 00004ac0: DUP2 00004ac1: SWAP6 00004ac2: POP 00004ac3: POP 00004ac4: POP 00004ac5: DUP9 00004ac6: PUSH1 0x40 00004ac8: ADD 00004ac9: MLOAD 00004aca: PUSH1 0x02 00004acc: SIGNEXTEND 00004acd: DUP13 00004ace: PUSH1 0x02 00004ad0: SIGNEXTEND 00004ad1: SGT 00004ad2: PUSH2 0x49ba 00004ad5: JUMPI 00004ad6: PUSH1 0x60 00004ad8: SWAP9 00004ad9: SWAP1 00004ada: SWAP9 00004adb: ADD 00004adc: SWAP8 00004add: SWAP1 00004ade: SWAP8 00004adf: MSTORE 00004ae0: SWAP8 00004ae1: SWAP11 00004ae2: SWAP8 00004ae3: SWAP10 00004ae4: POP 00004ae5: SWAP5 00004ae6: SWAP8 00004ae7: POP 00004ae8: SWAP5 00004ae9: SWAP6 00004aea: SWAP5 00004aeb: POP 00004aec: POP 00004aed: POP 00004aee: POP 00004aef: POP 00004af0: JUMP 00004af1: JUMPDEST 00004af2: PUSH0 00004af3: DUP1 00004af4: DUP1 00004af5: DUP1 00004af6: PUSH1 0x01 00004af8: DUP2 00004af9: DUP1 00004afa: DUP1 00004afb: JUMPDEST 00004afc: DUP4 00004afd: ISZERO 00004afe: PUSH2 0x4bc0 00004b01: JUMPI 00004b02: PUSH1 0x10 00004b04: DUP12 00004b05: ADD 00004b06: SWAP11 00004b07: CALLDATALOAD 00004b08: PUSH1 0x80 00004b0a: SHR 00004b0b: PUSH2 0x4b14 00004b0e: DUP2 00004b0f: DUP6 00004b10: PUSH2 0x5875 00004b13: JUMP 00004b14: JUMPDEST 00004b15: SWAP4 00004b16: POP 00004b17: PUSH16 0xffffffffffffffffffffffffffffffff 00004b28: DUP12 00004b29: AND 00004b2a: PUSH1 0x80 00004b2c: DUP3 00004b2d: SWAP1 00004b2e: SHL 00004b2f: DIV 00004b30: DUP4 00004b31: ADD 00004b32: SWAP3 00004b33: POP 00004b34: DUP3 00004b35: DUP15 00004b36: DUP15 00004b37: PUSH3 0xffffff 00004b3b: AND 00004b3c: PUSH4 0x01000000 00004b41: DUP2 00004b42: LT 00004b43: PUSH2 0x4b4e 00004b46: JUMPI 00004b47: PUSH2 0x4b4e 00004b4a: PUSH2 0x5791 00004b4d: JUMP 00004b4e: JUMPDEST 00004b4f: ADD 00004b50: PUSH0 00004b51: DUP3 00004b52: DUP3 00004b53: SLOAD 00004b54: ADD 00004b55: SWAP3 00004b56: POP 00004b57: POP 00004b58: DUP2 00004b59: SWAP1 00004b5a: SSTORE 00004b5b: POP 00004b5c: PUSH0 00004b5d: PUSH2 0x4b9d 00004b60: DUP12 00004b61: PUSH0 00004b62: ADD 00004b63: MLOAD 00004b64: DUP16 00004b65: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00004b86: PUSH1 0x01 00004b88: PUSH1 0x01 00004b8a: PUSH1 0xa0 00004b8c: SHL 00004b8d: SUB 00004b8e: AND 00004b8f: PUSH2 0x4e91 00004b92: SWAP1 00004b93: SWAP3 00004b94: SWAP2 00004b95: SWAP1 00004b96: PUSH4 0xffffffff 00004b9b: AND 00004b9c: JUMP 00004b9d: JUMPDEST 00004b9e: SWAP2 00004b9f: POP 00004ba0: POP 00004ba1: PUSH2 0x4baa 00004ba4: DUP13 00004ba5: DUP3 00004ba6: PUSH2 0x4f2a 00004ba9: JUMP 00004baa: JUMPDEST 00004bab: SWAP12 00004bac: POP 00004bad: DUP14 00004bae: PUSH1 0x13 00004bb0: MSTORE 00004bb1: DUP12 00004bb2: PUSH1 0x10 00004bb4: MSTORE 00004bb5: DUP3 00004bb6: PUSH0 00004bb7: MSTORE 00004bb8: PUSH1 0x33 00004bba: PUSH0 00004bbb: KECCAK256 00004bbc: SWAP3 00004bbd: POP 00004bbe: POP 00004bbf: POP 00004bc0: JUMPDEST 00004bc1: DUP9 00004bc2: MLOAD 00004bc3: PUSH1 0x20 00004bc5: DUP11 00004bc6: ADD 00004bc7: MLOAD 00004bc8: PUSH2 0x4bfd 00004bcb: SWAP2 00004bcc: PUSH1 0x01 00004bce: PUSH1 0x01 00004bd0: PUSH1 0xa0 00004bd2: SHL 00004bd3: SUB 00004bd4: PUSH32 0x000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90 00004bf5: AND 00004bf6: SWAP2 00004bf7: DUP16 00004bf8: SWAP1 00004bf9: PUSH2 0x48e2 00004bfc: JUMP 00004bfd: JUMPDEST 00004bfe: DUP1 00004bff: SWAP14 00004c00: POP 00004c01: DUP2 00004c02: SWAP6 00004c03: POP 00004c04: POP 00004c05: POP 00004c06: DUP9 00004c07: PUSH1 0x40 00004c09: ADD 00004c0a: MLOAD 00004c0b: PUSH1 0x02 00004c0d: SIGNEXTEND 00004c0e: DUP13 00004c0f: PUSH1 0x02 00004c11: SIGNEXTEND 00004c12: SGT 00004c13: ISZERO 00004c14: PUSH2 0x4afb 00004c17: JUMPI 00004c18: PUSH1 0x60 00004c1a: SWAP9 00004c1b: SWAP1 00004c1c: SWAP9 00004c1d: ADD 00004c1e: SWAP8 00004c1f: SWAP1 00004c20: SWAP8 00004c21: MSTORE 00004c22: SWAP8 00004c23: SWAP11 00004c24: SWAP8 00004c25: SWAP10 00004c26: POP 00004c27: SWAP5 00004c28: SWAP8 00004c29: POP 00004c2a: SWAP5 00004c2b: SWAP6 00004c2c: SWAP5 00004c2d: POP 00004c2e: POP 00004c2f: POP 00004c30: POP 00004c31: POP 00004c32: JUMP 00004c33: JUMPDEST 00004c34: DUP1 00004c35: DUP3 00004c36: EQ 00004c37: PUSH2 0x1ea6 00004c3a: JUMPI 00004c3b: PUSH1 0x40 00004c3d: MLOAD 00004c3e: PUSH32 0x01842f8c00000000000000000000000000000000000000000000000000000000 00004c5f: DUP2 00004c60: MSTORE 00004c61: PUSH1 0x04 00004c63: ADD 00004c64: PUSH1 0x40 00004c66: MLOAD 00004c67: DUP1 00004c68: SWAP2 00004c69: SUB 00004c6a: SWAP1 00004c6b: REVERT 00004c6c: JUMPDEST 00004c6d: PUSH0 00004c6e: PUSH1 0x40 00004c70: MLOAD 00004c71: PUSH4 0x1626ba7e 00004c76: PUSH1 0xe0 00004c78: SHL 00004c79: DUP1 00004c7a: DUP3 00004c7b: MSTORE 00004c7c: DUP6 00004c7d: PUSH1 0x04 00004c7f: DUP4 00004c80: ADD 00004c81: MSTORE 00004c82: PUSH1 0x24 00004c84: DUP3 00004c85: ADD 00004c86: PUSH1 0x40 00004c88: DUP2 00004c89: MSTORE 00004c8a: DUP5 00004c8b: PUSH1 0x44 00004c8d: DUP5 00004c8e: ADD 00004c8f: MSTORE 00004c90: DUP5 00004c91: DUP7 00004c92: PUSH1 0x64 00004c94: DUP6 00004c95: ADD 00004c96: CALLDATACOPY 00004c97: PUSH1 0x20 00004c99: DUP2 00004c9a: PUSH1 0x64 00004c9c: DUP8 00004c9d: ADD 00004c9e: DUP6 00004c9f: DUP12 00004ca0: GAS 00004ca1: STATICCALL 00004ca2: SWAP1 00004ca3: MLOAD 00004ca4: SWAP1 00004ca5: SWAP2 00004ca6: EQ 00004ca7: AND 00004ca8: SWAP7 00004ca9: SWAP6 00004caa: POP 00004cab: POP 00004cac: POP 00004cad: POP 00004cae: POP 00004caf: POP 00004cb0: JUMP 00004cb1: JUMPDEST 00004cb2: PUSH0 00004cb3: PUSH2 0x1729 00004cb6: DUP3 00004cb7: DUP5 00004cb8: PUSH2 0x5b0b 00004cbb: JUMP 00004cbc: JUMPDEST 00004cbd: PUSH0 00004cbe: PUSH2 0x1729 00004cc1: DUP3 00004cc2: DUP5 00004cc3: PUSH2 0x4f44 00004cc6: JUMP 00004cc7: JUMPDEST 00004cc8: PUSH0 00004cc9: PUSH2 0x1729 00004ccc: DUP3 00004ccd: DUP5 00004cce: PUSH2 0x4f66 00004cd1: JUMP 00004cd2: JUMPDEST 00004cd3: PUSH0 00004cd4: PUSH2 0x1729 00004cd7: DUP3 00004cd8: DUP5 00004cd9: PUSH2 0x5875 00004cdc: JUMP 00004cdd: JUMPDEST 00004cde: PUSH0 00004cdf: DUP1 00004ce0: PUSH0 00004ce1: PUSH2 0x4d78 00004ce4: DUP5 00004ce5: PUSH1 0xff 00004ce7: AND 00004ce8: DUP7 00004ce9: SWAP1 00004cea: SHR 00004ceb: PUSH31 0x1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405 00004d0b: DUP2 00004d0c: NOT 00004d0d: PUSH1 0x01 00004d0f: ADD 00004d10: SWAP1 00004d11: SWAP2 00004d12: AND 00004d13: PUSH2 0x01e0 00004d16: PUSH32 0x8040405543005266443200005020610674053026020000107506200176117077 00004d37: PUSH1 0xfc 00004d39: PUSH32 0xb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff 00004d5a: DUP5 00004d5b: MUL 00004d5c: PUSH1 0xf8 00004d5e: SHR 00004d5f: AND 00004d60: SHL 00004d61: PUSH1 0xf7 00004d63: SHR 00004d64: AND 00004d65: SWAP1 00004d66: DUP2 00004d67: SHR 00004d68: PUSH4 0xd76453e0 00004d6d: DIV 00004d6e: PUSH1 0x1f 00004d70: AND 00004d71: SWAP2 00004d72: SWAP1 00004d73: SWAP2 00004d74: BYTE 00004d75: OR 00004d76: SWAP1 00004d77: JUMP 00004d78: JUMPDEST 00004d79: SWAP1 00004d7a: POP 00004d7b: DUP1 00004d7c: PUSH2 0x0100 00004d7f: EQ 00004d80: ISZERO 00004d81: SWAP3 00004d82: POP 00004d83: DUP3 00004d84: PUSH2 0x4d8e 00004d87: JUMPI 00004d88: PUSH1 0xff 00004d8a: PUSH2 0x4d95 00004d8d: JUMP 00004d8e: JUMPDEST 00004d8f: DUP4 00004d90: PUSH1 0xff 00004d92: AND 00004d93: DUP2 00004d94: ADD 00004d95: JUMPDEST 00004d96: SWAP2 00004d97: POP 00004d98: POP 00004d99: SWAP3 00004d9a: POP 00004d9b: SWAP3 00004d9c: SWAP1 00004d9d: POP 00004d9e: JUMP 00004d9f: JUMPDEST 00004da0: PUSH0 00004da1: DUP2 00004da2: PUSH1 0xff 00004da4: DUP5 00004da5: AND 00004da6: PUSH2 0x4db5 00004da9: PUSH1 0x01 00004dab: DUP8 00004dac: SWAP1 00004dad: SIGNEXTEND 00004dae: PUSH2 0x0100 00004db1: PUSH2 0x5be5 00004db4: JUMP 00004db5: JUMPDEST 00004db6: PUSH2 0x4dbf 00004db9: SWAP2 00004dba: SWAP1 00004dbb: PUSH2 0x5ba4 00004dbe: JUMP 00004dbf: JUMPDEST 00004dc0: PUSH2 0x22aa 00004dc3: SWAP2 00004dc4: SWAP1 00004dc5: PUSH2 0x5be5 00004dc8: JUMP 00004dc9: JUMPDEST 00004dca: PUSH0 00004dcb: DUP1 00004dcc: PUSH0 00004dcd: DUP4 00004dce: PUSH1 0xff 00004dd0: SUB 00004dd1: SWAP1 00004dd2: POP 00004dd3: PUSH0 00004dd4: PUSH2 0x4e6a 00004dd7: DUP3 00004dd8: PUSH1 0xff 00004dda: AND 00004ddb: DUP8 00004ddc: SWAP1 00004ddd: SHL 00004dde: PUSH32 0x0706060506020504060203020504030106050205030304010505030400000000 00004dff: PUSH1 0x1f 00004e01: PUSH16 0x8421084210842108cc6318c6db6d54be 00004e12: DUP4 00004e13: ISZERO 00004e14: PUSH1 0x08 00004e16: SHL 00004e17: PUSH16 0xffffffffffffffffffffffffffffffff 00004e28: DUP6 00004e29: GT 00004e2a: PUSH1 0x07 00004e2c: SHL 00004e2d: OR 00004e2e: DUP5 00004e2f: DUP2 00004e30: SHR 00004e31: PUSH8 0xffffffffffffffff 00004e3a: LT 00004e3b: PUSH1 0x06 00004e3d: SHL 00004e3e: OR 00004e3f: DUP5 00004e40: DUP2 00004e41: SHR 00004e42: PUSH4 0xffffffff 00004e47: LT 00004e48: PUSH1 0x05 00004e4a: SHL 00004e4b: OR 00004e4c: DUP5 00004e4d: DUP2 00004e4e: SHR 00004e4f: PUSH2 0xffff 00004e52: LT 00004e53: PUSH1 0x04 00004e55: SHL 00004e56: OR 00004e57: DUP5 00004e58: DUP2 00004e59: SHR 00004e5a: PUSH1 0xff 00004e5c: LT 00004e5d: PUSH1 0x03 00004e5f: SHL 00004e60: OR 00004e61: SWAP4 00004e62: DUP5 00004e63: SHR 00004e64: SHR 00004e65: AND 00004e66: BYTE 00004e67: OR 00004e68: SWAP1 00004e69: JUMP 00004e6a: JUMPDEST 00004e6b: SWAP1 00004e6c: POP 00004e6d: DUP1 00004e6e: PUSH2 0x0100 00004e71: EQ 00004e72: ISZERO 00004e73: SWAP4 00004e74: POP 00004e75: DUP4 00004e76: PUSH2 0x4e7f 00004e79: JUMPI 00004e7a: PUSH0 00004e7b: PUSH2 0x4e86 00004e7e: JUMP 00004e7f: JUMPDEST 00004e80: DUP2 00004e81: PUSH1 0xff 00004e83: AND 00004e84: DUP2 00004e85: SUB 00004e86: JUMPDEST 00004e87: SWAP3 00004e88: POP 00004e89: POP 00004e8a: POP 00004e8b: SWAP3 00004e8c: POP 00004e8d: SWAP3 00004e8e: SWAP1 00004e8f: POP 00004e90: JUMP 00004e91: JUMPDEST 00004e92: PUSH0 00004e93: DUP1 00004e94: PUSH1 0x06 00004e96: PUSH1 0x20 00004e98: MSTORE 00004e99: DUP4 00004e9a: PUSH0 00004e9b: MSTORE 00004e9c: PUSH1 0x04 00004e9e: PUSH1 0x40 00004ea0: PUSH0 00004ea1: KECCAK256 00004ea2: ADD 00004ea3: PUSH1 0x20 00004ea5: MSTORE 00004ea6: DUP3 00004ea7: PUSH0 00004ea8: MSTORE 00004ea9: PUSH1 0x40 00004eab: PUSH0 00004eac: KECCAK256 00004ead: PUSH1 0x20 00004eaf: MSTORE 00004eb0: PUSH4 0x1e2eaeaf 00004eb5: PUSH0 00004eb6: MSTORE 00004eb7: PUSH1 0x20 00004eb9: PUSH0 00004eba: PUSH1 0x24 00004ebc: PUSH1 0x1c 00004ebe: DUP9 00004ebf: GAS 00004ec0: STATICCALL 00004ec1: PUSH2 0x4ed1 00004ec4: JUMPI 00004ec5: PUSH4 0x535cf94b 00004eca: PUSH0 00004ecb: MSTORE 00004ecc: PUSH1 0x04 00004ece: PUSH1 0x1c 00004ed0: REVERT 00004ed1: JUMPDEST 00004ed2: POP 00004ed3: POP 00004ed4: PUSH0 00004ed5: MLOAD 00004ed6: PUSH16 0xffffffffffffffffffffffffffffffff 00004ee7: DUP2 00004ee8: AND 00004ee9: SWAP5 00004eea: PUSH1 0x80 00004eec: SWAP2 00004eed: SWAP1 00004eee: SWAP2 00004eef: SAR 00004ef0: SWAP4 00004ef1: POP 00004ef2: SWAP2 00004ef3: POP 00004ef4: POP 00004ef5: JUMP 00004ef6: JUMPDEST 00004ef7: DUP1 00004ef8: DUP3 00004ef9: SUB 00004efa: PUSH1 0x80 00004efc: DUP2 00004efd: SWAP1 00004efe: SHR 00004eff: ISZERO 00004f00: PUSH2 0x221c 00004f03: JUMPI 00004f04: PUSH4 0xc9654ed4 00004f09: PUSH0 00004f0a: MSTORE 00004f0b: PUSH1 0x04 00004f0d: PUSH1 0x1c 00004f0f: REVERT 00004f10: JUMPDEST 00004f11: PUSH0 00004f12: DUP1 00004f13: DUP1 00004f14: DUP1 00004f15: PUSH2 0x4951 00004f18: PUSH2 0x2845 00004f1b: PUSH1 0x01 00004f1d: DUP8 00004f1e: DUP10 00004f1f: SMOD 00004f20: DUP5 00004f21: SGT 00004f22: DUP9 00004f23: DUP11 00004f24: SDIV 00004f25: SUB 00004f26: PUSH2 0x59bd 00004f29: JUMP 00004f2a: JUMPDEST 00004f2b: DUP2 00004f2c: DUP2 00004f2d: ADD 00004f2e: PUSH1 0x80 00004f30: DUP2 00004f31: SWAP1 00004f32: SHR 00004f33: ISZERO 00004f34: PUSH2 0x221c 00004f37: JUMPI 00004f38: PUSH4 0xc9654ed4 00004f3d: PUSH0 00004f3e: MSTORE 00004f3f: PUSH1 0x04 00004f41: PUSH1 0x1c 00004f43: REVERT 00004f44: JUMPDEST 00004f45: PUSH0 00004f46: PUSH12 0x033b2e3c9fd0803ce8000000 00004f53: PUSH2 0x4f5c 00004f56: DUP4 00004f57: DUP6 00004f58: PUSH2 0x5b8d 00004f5b: JUMP 00004f5c: JUMPDEST 00004f5d: PUSH2 0x1729 00004f60: SWAP2 00004f61: SWAP1 00004f62: PUSH2 0x5b1e 00004f65: JUMP 00004f66: JUMPDEST 00004f67: PUSH0 00004f68: PUSH2 0x1729 00004f6b: DUP4 00004f6c: PUSH12 0x033b2e3c9fd0803ce8000000 00004f79: DUP5 00004f7a: DUP3 00004f7b: DUP3 00004f7c: MUL 00004f7d: DUP4 00004f7e: ISZERO 00004f7f: DUP5 00004f80: DUP3 00004f81: DIV 00004f82: DUP5 00004f83: EQ 00004f84: OR 00004f85: DUP3 00004f86: MUL 00004f87: PUSH2 0x4f97 00004f8a: JUMPI 00004f8b: PUSH4 0xad251c27 00004f90: PUSH0 00004f91: MSTORE 00004f92: PUSH1 0x04 00004f94: PUSH1 0x1c 00004f96: REVERT 00004f97: JUMPDEST 00004f98: DUP2 00004f99: DUP2 00004f9a: MOD 00004f9b: ISZERO 00004f9c: ISZERO 00004f9d: SWAP2 00004f9e: SWAP1 00004f9f: DIV 00004fa0: ADD 00004fa1: SWAP3 00004fa2: SWAP2 00004fa3: POP 00004fa4: POP 00004fa5: JUMP 00004fa6: JUMPDEST 00004fa7: PUSH0 00004fa8: DUP1 00004fa9: DUP4 00004faa: PUSH1 0x1f 00004fac: DUP5 00004fad: ADD 00004fae: SLT 00004faf: PUSH2 0x4fb6 00004fb2: JUMPI 00004fb3: PUSH0 00004fb4: DUP1 00004fb5: REVERT 00004fb6: JUMPDEST 00004fb7: POP 00004fb8: DUP2 00004fb9: CALLDATALOAD 00004fba: PUSH8 0xffffffffffffffff 00004fc3: DUP2 00004fc4: GT 00004fc5: ISZERO 00004fc6: PUSH2 0x4fcd 00004fc9: JUMPI 00004fca: PUSH0 00004fcb: DUP1 00004fcc: REVERT 00004fcd: JUMPDEST 00004fce: PUSH1 0x20 00004fd0: DUP4 00004fd1: ADD 00004fd2: SWAP2 00004fd3: POP 00004fd4: DUP4 00004fd5: PUSH1 0x20 00004fd7: DUP3 00004fd8: DUP6 00004fd9: ADD 00004fda: ADD 00004fdb: GT 00004fdc: ISZERO 00004fdd: PUSH2 0x4291 00004fe0: JUMPI 00004fe1: PUSH0 00004fe2: DUP1 00004fe3: REVERT 00004fe4: JUMPDEST 00004fe5: PUSH0 00004fe6: DUP1 00004fe7: PUSH1 0x20 00004fe9: DUP4 00004fea: DUP6 00004feb: SUB 00004fec: SLT 00004fed: ISZERO 00004fee: PUSH2 0x4ff5 00004ff1: JUMPI 00004ff2: PUSH0 00004ff3: DUP1 00004ff4: REVERT 00004ff5: JUMPDEST 00004ff6: DUP3 00004ff7: CALLDATALOAD 00004ff8: PUSH8 0xffffffffffffffff 00005001: DUP2 00005002: GT 00005003: ISZERO 00005004: PUSH2 0x500b 00005007: JUMPI 00005008: PUSH0 00005009: DUP1 0000500a: REVERT 0000500b: JUMPDEST 0000500c: PUSH2 0x5017 0000500f: DUP6 00005010: DUP3 00005011: DUP7 00005012: ADD 00005013: PUSH2 0x4fa6 00005016: JUMP 00005017: JUMPDEST 00005018: SWAP1 00005019: SWAP7 0000501a: SWAP1 0000501b: SWAP6 0000501c: POP 0000501d: SWAP4 0000501e: POP 0000501f: POP 00005020: POP 00005021: POP 00005022: JUMP 00005023: JUMPDEST 00005024: PUSH0 00005025: PUSH1 0x20 00005027: DUP3 00005028: DUP5 00005029: SUB 0000502a: SLT 0000502b: ISZERO 0000502c: PUSH2 0x5033 0000502f: JUMPI 00005030: PUSH0 00005031: DUP1 00005032: REVERT 00005033: JUMPDEST 00005034: DUP2 00005035: CALLDATALOAD 00005036: PUSH8 0xffffffffffffffff 0000503f: DUP2 00005040: AND 00005041: DUP2 00005042: EQ 00005043: PUSH2 0x1729 00005046: JUMPI 00005047: PUSH0 00005048: DUP1 00005049: REVERT 0000504a: JUMPDEST 0000504b: PUSH1 0x01 0000504d: PUSH1 0x01 0000504f: PUSH1 0xa0 00005051: SHL 00005052: SUB 00005053: DUP2 00005054: AND 00005055: DUP2 00005056: EQ 00005057: PUSH2 0x0515 0000505a: JUMPI 0000505b: PUSH0 0000505c: DUP1 0000505d: REVERT 0000505e: JUMPDEST 0000505f: DUP1 00005060: CALLDATALOAD 00005061: PUSH3 0xffffff 00005065: DUP2 00005066: AND 00005067: DUP2 00005068: EQ 00005069: PUSH2 0x5070 0000506c: JUMPI 0000506d: PUSH0 0000506e: DUP1 0000506f: REVERT 00005070: JUMPDEST 00005071: SWAP2 00005072: SWAP1 00005073: POP 00005074: JUMP 00005075: JUMPDEST 00005076: PUSH0 00005077: DUP1 00005078: PUSH0 00005079: DUP1 0000507a: PUSH0 0000507b: DUP1 0000507c: PUSH1 0xc0 0000507e: DUP8 0000507f: DUP10 00005080: SUB 00005081: SLT 00005082: ISZERO 00005083: PUSH2 0x508a 00005086: JUMPI 00005087: PUSH0 00005088: DUP1 00005089: REVERT 0000508a: JUMPDEST 0000508b: DUP7 0000508c: CALLDATALOAD 0000508d: PUSH2 0x5095 00005090: DUP2 00005091: PUSH2 0x504a 00005094: JUMP 00005095: JUMPDEST 00005096: SWAP6 00005097: POP 00005098: PUSH1 0x20 0000509a: DUP8 0000509b: ADD 0000509c: CALLDATALOAD 0000509d: PUSH2 0x50a5 000050a0: DUP2 000050a1: PUSH2 0x504a 000050a4: JUMP 000050a5: JUMPDEST 000050a6: SWAP5 000050a7: POP 000050a8: PUSH1 0x40 000050aa: DUP8 000050ab: ADD 000050ac: CALLDATALOAD 000050ad: PUSH2 0xffff 000050b0: DUP2 000050b1: AND 000050b2: DUP2 000050b3: EQ 000050b4: PUSH2 0x50bb 000050b7: JUMPI 000050b8: PUSH0 000050b9: DUP1 000050ba: REVERT 000050bb: JUMPDEST 000050bc: SWAP4 000050bd: POP 000050be: PUSH2 0x50c9 000050c1: PUSH1 0x60 000050c3: DUP9 000050c4: ADD 000050c5: PUSH2 0x505e 000050c8: JUMP 000050c9: JUMPDEST 000050ca: SWAP3 000050cb: POP 000050cc: PUSH2 0x50d7 000050cf: PUSH1 0x80 000050d1: DUP9 000050d2: ADD 000050d3: PUSH2 0x505e 000050d6: JUMP 000050d7: JUMPDEST 000050d8: SWAP2 000050d9: POP 000050da: PUSH2 0x50e5 000050dd: PUSH1 0xa0 000050df: DUP9 000050e0: ADD 000050e1: PUSH2 0x505e 000050e4: JUMP 000050e5: JUMPDEST 000050e6: SWAP1 000050e7: POP 000050e8: SWAP3 000050e9: SWAP6 000050ea: POP 000050eb: SWAP3 000050ec: SWAP6 000050ed: POP 000050ee: SWAP3 000050ef: SWAP6 000050f0: JUMP 000050f1: JUMPDEST 000050f2: PUSH0 000050f3: DUP1 000050f4: PUSH0 000050f5: PUSH1 0x40 000050f7: DUP5 000050f8: DUP7 000050f9: SUB 000050fa: SLT 000050fb: ISZERO 000050fc: PUSH2 0x5103 000050ff: JUMPI 00005100: PUSH0 00005101: DUP1 00005102: REVERT 00005103: JUMPDEST 00005104: DUP4 00005105: CALLDATALOAD 00005106: PUSH2 0x510e 00005109: DUP2 0000510a: PUSH2 0x504a 0000510d: JUMP 0000510e: JUMPDEST 0000510f: SWAP3 00005110: POP 00005111: PUSH1 0x20 00005113: DUP5 00005114: ADD 00005115: CALLDATALOAD 00005116: PUSH8 0xffffffffffffffff 0000511f: DUP2 00005120: GT 00005121: ISZERO 00005122: PUSH2 0x5129 00005125: JUMPI 00005126: PUSH0 00005127: DUP1 00005128: REVERT 00005129: JUMPDEST 0000512a: PUSH2 0x5135 0000512d: DUP7 0000512e: DUP3 0000512f: DUP8 00005130: ADD 00005131: PUSH2 0x4fa6 00005134: JUMP 00005135: JUMPDEST 00005136: SWAP5 00005137: SWAP8 00005138: SWAP1 00005139: SWAP7 0000513a: POP 0000513b: SWAP4 0000513c: SWAP5 0000513d: POP 0000513e: POP 0000513f: POP 00005140: POP 00005141: JUMP 00005142: JUMPDEST 00005143: PUSH0 00005144: PUSH1 0xa0 00005146: DUP3 00005147: DUP5 00005148: SUB 00005149: SLT 0000514a: ISZERO 0000514b: PUSH2 0x5152 0000514e: JUMPI 0000514f: PUSH0 00005150: DUP1 00005151: REVERT 00005152: JUMPDEST 00005153: POP 00005154: SWAP2 00005155: SWAP1 00005156: POP 00005157: JUMP 00005158: JUMPDEST 00005159: PUSH0 0000515a: DUP1 0000515b: PUSH0 0000515c: DUP1 0000515d: PUSH0 0000515e: DUP6 0000515f: DUP8 00005160: SUB 00005161: PUSH2 0x0160 00005164: DUP2 00005165: SLT 00005166: ISZERO 00005167: PUSH2 0x516e 0000516a: JUMPI 0000516b: PUSH0 0000516c: DUP1 0000516d: REVERT 0000516e: JUMPDEST 0000516f: DUP7 00005170: CALLDATALOAD 00005171: PUSH2 0x5179 00005174: DUP2 00005175: PUSH2 0x504a 00005178: JUMP 00005179: JUMPDEST 0000517a: SWAP6 0000517b: POP 0000517c: PUSH2 0x5188 0000517f: DUP9 00005180: PUSH1 0x20 00005182: DUP10 00005183: ADD 00005184: PUSH2 0x5142 00005187: JUMP 00005188: JUMPDEST 00005189: SWAP5 0000518a: POP 0000518b: PUSH1 0x80 0000518d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40 000051ae: DUP3 000051af: ADD 000051b0: SLT 000051b1: ISZERO 000051b2: PUSH2 0x51b9 000051b5: JUMPI 000051b6: PUSH0 000051b7: DUP1 000051b8: REVERT 000051b9: JUMPDEST 000051ba: POP 000051bb: PUSH1 0xc0 000051bd: DUP7 000051be: ADD 000051bf: SWAP3 000051c0: POP 000051c1: PUSH2 0x0140 000051c4: DUP7 000051c5: ADD 000051c6: CALLDATALOAD 000051c7: PUSH8 0xffffffffffffffff 000051d0: DUP2 000051d1: GT 000051d2: ISZERO 000051d3: PUSH2 0x51da 000051d6: JUMPI 000051d7: PUSH0 000051d8: DUP1 000051d9: REVERT 000051da: JUMPDEST 000051db: PUSH2 0x51e6 000051de: DUP9 000051df: DUP3 000051e0: DUP10 000051e1: ADD 000051e2: PUSH2 0x4fa6 000051e5: JUMP 000051e6: JUMPDEST 000051e7: SWAP7 000051e8: SWAP10 000051e9: SWAP6 000051ea: SWAP9 000051eb: POP 000051ec: SWAP4 000051ed: SWAP7 000051ee: POP 000051ef: SWAP3 000051f0: SWAP5 000051f1: SWAP4 000051f2: SWAP3 000051f3: POP 000051f4: POP 000051f5: POP 000051f6: JUMP 000051f7: JUMPDEST 000051f8: PUSH0 000051f9: DUP1 000051fa: PUSH1 0x40 000051fc: DUP4 000051fd: DUP6 000051fe: SUB 000051ff: SLT 00005200: ISZERO 00005201: PUSH2 0x5208 00005204: JUMPI 00005205: PUSH0 00005206: DUP1 00005207: REVERT 00005208: JUMPDEST 00005209: DUP3 0000520a: CALLDATALOAD 0000520b: PUSH2 0x5213 0000520e: DUP2 0000520f: PUSH2 0x504a 00005212: JUMP 00005213: JUMPDEST 00005214: SWAP5 00005215: PUSH1 0x20 00005217: SWAP4 00005218: SWAP1 00005219: SWAP4 0000521a: ADD 0000521b: CALLDATALOAD 0000521c: SWAP4 0000521d: POP 0000521e: POP 0000521f: POP 00005220: JUMP 00005221: JUMPDEST 00005222: PUSH0 00005223: DUP1 00005224: PUSH0 00005225: PUSH1 0x40 00005227: DUP5 00005228: DUP7 00005229: SUB 0000522a: SLT 0000522b: ISZERO 0000522c: PUSH2 0x5233 0000522f: JUMPI 00005230: PUSH0 00005231: DUP1 00005232: REVERT 00005233: JUMPDEST 00005234: DUP4 00005235: CALLDATALOAD 00005236: PUSH2 0x523e 00005239: DUP2 0000523a: PUSH2 0x504a 0000523d: JUMP 0000523e: JUMPDEST 0000523f: SWAP3 00005240: POP 00005241: PUSH1 0x20 00005243: DUP5 00005244: ADD 00005245: CALLDATALOAD 00005246: PUSH8 0xffffffffffffffff 0000524f: DUP2 00005250: GT 00005251: ISZERO 00005252: PUSH2 0x5259 00005255: JUMPI 00005256: PUSH0 00005257: DUP1 00005258: REVERT 00005259: JUMPDEST 0000525a: DUP5 0000525b: ADD 0000525c: PUSH1 0x1f 0000525e: DUP2 0000525f: ADD 00005260: DUP7 00005261: SGT 00005262: PUSH2 0x5269 00005265: JUMPI 00005266: PUSH0 00005267: DUP1 00005268: REVERT 00005269: JUMPDEST 0000526a: DUP1 0000526b: CALLDATALOAD 0000526c: PUSH8 0xffffffffffffffff 00005275: DUP2 00005276: GT 00005277: ISZERO 00005278: PUSH2 0x527f 0000527b: JUMPI 0000527c: PUSH0 0000527d: DUP1 0000527e: REVERT 0000527f: JUMPDEST 00005280: DUP7 00005281: PUSH1 0x20 00005283: PUSH1 0xa0 00005285: DUP4 00005286: MUL 00005287: DUP5 00005288: ADD 00005289: ADD 0000528a: GT 0000528b: ISZERO 0000528c: PUSH2 0x5293 0000528f: JUMPI 00005290: PUSH0 00005291: DUP1 00005292: REVERT 00005293: JUMPDEST 00005294: SWAP4 00005295: SWAP7 00005296: PUSH1 0x20 00005298: SWAP2 00005299: SWAP1 0000529a: SWAP2 0000529b: ADD 0000529c: SWAP6 0000529d: POP 0000529e: SWAP3 0000529f: SWAP4 000052a0: POP 000052a1: POP 000052a2: POP 000052a3: JUMP 000052a4: JUMPDEST 000052a5: PUSH0 000052a6: PUSH1 0x60 000052a8: DUP3 000052a9: DUP5 000052aa: SUB 000052ab: SLT 000052ac: ISZERO 000052ad: PUSH2 0x5152 000052b0: JUMPI 000052b1: PUSH0 000052b2: DUP1 000052b3: REVERT 000052b4: JUMPDEST 000052b5: PUSH0 000052b6: DUP1 000052b7: PUSH0 000052b8: DUP1 000052b9: PUSH0 000052ba: PUSH2 0x0140 000052bd: DUP7 000052be: DUP9 000052bf: SUB 000052c0: SLT 000052c1: ISZERO 000052c2: PUSH2 0x52c9 000052c5: JUMPI 000052c6: PUSH0 000052c7: DUP1 000052c8: REVERT 000052c9: JUMPDEST 000052ca: DUP6 000052cb: CALLDATALOAD 000052cc: PUSH2 0x52d4 000052cf: DUP2 000052d0: PUSH2 0x504a 000052d3: JUMP 000052d4: JUMPDEST 000052d5: SWAP5 000052d6: POP 000052d7: PUSH2 0x52e3 000052da: DUP8 000052db: PUSH1 0x20 000052dd: DUP9 000052de: ADD 000052df: PUSH2 0x5142 000052e2: JUMP 000052e3: JUMPDEST 000052e4: SWAP4 000052e5: POP 000052e6: PUSH2 0x52f2 000052e9: DUP8 000052ea: PUSH1 0xc0 000052ec: DUP9 000052ed: ADD 000052ee: PUSH2 0x52a4 000052f1: JUMP 000052f2: JUMPDEST 000052f3: SWAP3 000052f4: POP 000052f5: PUSH2 0x0120 000052f8: DUP7 000052f9: ADD 000052fa: CALLDATALOAD 000052fb: PUSH8 0xffffffffffffffff 00005304: DUP2 00005305: GT 00005306: ISZERO 00005307: PUSH2 0x51da 0000530a: JUMPI 0000530b: PUSH0 0000530c: DUP1 0000530d: REVERT 0000530e: JUMPDEST 0000530f: PUSH0 00005310: PUSH1 0x20 00005312: DUP3 00005313: DUP5 00005314: SUB 00005315: SLT 00005316: ISZERO 00005317: PUSH2 0x531e 0000531a: JUMPI 0000531b: PUSH0 0000531c: DUP1 0000531d: REVERT 0000531e: JUMPDEST 0000531f: POP 00005320: CALLDATALOAD 00005321: SWAP2 00005322: SWAP1 00005323: POP 00005324: JUMP 00005325: JUMPDEST 00005326: PUSH0 00005327: DUP1 00005328: PUSH0 00005329: PUSH1 0x60 0000532b: DUP5 0000532c: DUP7 0000532d: SUB 0000532e: SLT 0000532f: ISZERO 00005330: PUSH2 0x5337 00005333: JUMPI 00005334: PUSH0 00005335: DUP1 00005336: REVERT 00005337: JUMPDEST 00005338: DUP4 00005339: CALLDATALOAD 0000533a: PUSH2 0x5342 0000533d: DUP2 0000533e: PUSH2 0x504a 00005341: JUMP 00005342: JUMPDEST 00005343: SWAP3 00005344: POP 00005345: PUSH1 0x20 00005347: DUP5 00005348: ADD 00005349: CALLDATALOAD 0000534a: PUSH2 0x5352 0000534d: DUP2 0000534e: PUSH2 0x504a 00005351: JUMP 00005352: JUMPDEST 00005353: SWAP3 00005354: SWAP6 00005355: SWAP3 00005356: SWAP5 00005357: POP 00005358: POP 00005359: POP 0000535a: PUSH1 0x40 0000535c: SWAP2 0000535d: SWAP1 0000535e: SWAP2 0000535f: ADD 00005360: CALLDATALOAD 00005361: SWAP1 00005362: JUMP 00005363: JUMPDEST 00005364: PUSH0 00005365: DUP2 00005366: MLOAD 00005367: DUP1 00005368: DUP5 00005369: MSTORE 0000536a: DUP1 0000536b: PUSH1 0x20 0000536d: DUP5 0000536e: ADD 0000536f: PUSH1 0x20 00005371: DUP7 00005372: ADD 00005373: MCOPY 00005374: PUSH0 00005375: PUSH1 0x20 00005377: DUP3 00005378: DUP7 00005379: ADD 0000537a: ADD 0000537b: MSTORE 0000537c: PUSH1 0x20 0000537e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000539f: PUSH1 0x1f 000053a1: DUP4 000053a2: ADD 000053a3: AND 000053a4: DUP6 000053a5: ADD 000053a6: ADD 000053a7: SWAP2 000053a8: POP 000053a9: POP 000053aa: SWAP3 000053ab: SWAP2 000053ac: POP 000053ad: POP 000053ae: JUMP 000053af: JUMPDEST 000053b0: PUSH32 0xff00000000000000000000000000000000000000000000000000000000000000 000053d1: DUP9 000053d2: AND 000053d3: DUP2 000053d4: MSTORE 000053d5: PUSH1 0xe0 000053d7: PUSH1 0x20 000053d9: DUP3 000053da: ADD 000053db: MSTORE 000053dc: PUSH0 000053dd: PUSH2 0x53e9 000053e0: PUSH1 0xe0 000053e2: DUP4 000053e3: ADD 000053e4: DUP10 000053e5: PUSH2 0x5363 000053e8: JUMP 000053e9: JUMPDEST 000053ea: DUP3 000053eb: DUP2 000053ec: SUB 000053ed: PUSH1 0x40 000053ef: DUP5 000053f0: ADD 000053f1: MSTORE 000053f2: PUSH2 0x53fb 000053f5: DUP2 000053f6: DUP10 000053f7: PUSH2 0x5363 000053fa: JUMP 000053fb: JUMPDEST 000053fc: PUSH1 0x60 000053fe: DUP5 000053ff: ADD 00005400: DUP9 00005401: SWAP1 00005402: MSTORE 00005403: PUSH1 0x01 00005405: PUSH1 0x01 00005407: PUSH1 0xa0 00005409: SHL 0000540a: SUB 0000540b: DUP8 0000540c: AND 0000540d: PUSH1 0x80 0000540f: DUP6 00005410: ADD 00005411: MSTORE 00005412: PUSH1 0xa0 00005414: DUP5 00005415: ADD 00005416: DUP7 00005417: SWAP1 00005418: MSTORE 00005419: DUP4 0000541a: DUP2 0000541b: SUB 0000541c: PUSH1 0xc0 0000541e: DUP6 0000541f: ADD 00005420: MSTORE 00005421: DUP5 00005422: MLOAD 00005423: DUP1 00005424: DUP3 00005425: MSTORE 00005426: PUSH1 0x20 00005428: DUP1 00005429: DUP8 0000542a: ADD 0000542b: SWAP4 0000542c: POP 0000542d: SWAP1 0000542e: SWAP2 0000542f: ADD 00005430: SWAP1 00005431: PUSH0 00005432: JUMPDEST 00005433: DUP2 00005434: DUP2 00005435: LT 00005436: ISZERO 00005437: PUSH2 0x5450 0000543a: JUMPI 0000543b: DUP4 0000543c: MLOAD 0000543d: DUP4 0000543e: MSTORE 0000543f: PUSH1 0x20 00005441: SWAP4 00005442: DUP5 00005443: ADD 00005444: SWAP4 00005445: SWAP1 00005446: SWAP3 00005447: ADD 00005448: SWAP2 00005449: PUSH1 0x01 0000544b: ADD 0000544c: PUSH2 0x5432 0000544f: JUMP 00005450: JUMPDEST 00005451: POP 00005452: SWAP1 00005453: SWAP12 00005454: SWAP11 00005455: POP 00005456: POP 00005457: POP 00005458: POP 00005459: POP 0000545a: POP 0000545b: POP 0000545c: POP 0000545d: POP 0000545e: POP 0000545f: POP 00005460: JUMP 00005461: JUMPDEST 00005462: PUSH0 00005463: DUP1 00005464: PUSH0 00005465: DUP1 00005466: PUSH1 0x80 00005468: DUP6 00005469: DUP8 0000546a: SUB 0000546b: SLT 0000546c: ISZERO 0000546d: PUSH2 0x5474 00005470: JUMPI 00005471: PUSH0 00005472: DUP1 00005473: REVERT 00005474: JUMPDEST 00005475: DUP5 00005476: CALLDATALOAD 00005477: PUSH2 0x547f 0000547a: DUP2 0000547b: PUSH2 0x504a 0000547e: JUMP 0000547f: JUMPDEST 00005480: SWAP4 00005481: POP 00005482: PUSH1 0x20 00005484: DUP6 00005485: ADD 00005486: CALLDATALOAD 00005487: PUSH2 0x548f 0000548a: DUP2 0000548b: PUSH2 0x504a 0000548e: JUMP 0000548f: JUMPDEST 00005490: SWAP3 00005491: POP 00005492: PUSH1 0x40 00005494: DUP6 00005495: ADD 00005496: CALLDATALOAD 00005497: SWAP2 00005498: POP 00005499: PUSH1 0x60 0000549b: DUP6 0000549c: ADD 0000549d: CALLDATALOAD 0000549e: PUSH2 0x54a6 000054a1: DUP2 000054a2: PUSH2 0x504a 000054a5: JUMP 000054a6: JUMPDEST 000054a7: SWAP4 000054a8: SWAP7 000054a9: SWAP3 000054aa: SWAP6 000054ab: POP 000054ac: SWAP1 000054ad: SWAP4 000054ae: POP 000054af: POP 000054b0: JUMP 000054b1: JUMPDEST 000054b2: PUSH1 0x20 000054b4: DUP2 000054b5: MSTORE 000054b6: PUSH0 000054b7: PUSH2 0x1729 000054ba: PUSH1 0x20 000054bc: DUP4 000054bd: ADD 000054be: DUP5 000054bf: PUSH2 0x5363 000054c2: JUMP 000054c3: JUMPDEST 000054c4: PUSH0 000054c5: PUSH1 0x20 000054c7: DUP3 000054c8: DUP5 000054c9: SUB 000054ca: SLT 000054cb: ISZERO 000054cc: PUSH2 0x54d3 000054cf: JUMPI 000054d0: PUSH0 000054d1: DUP1 000054d2: REVERT 000054d3: JUMPDEST 000054d4: DUP2 000054d5: CALLDATALOAD 000054d6: PUSH2 0x1729 000054d9: DUP2 000054da: PUSH2 0x504a 000054dd: JUMP 000054de: JUMPDEST 000054df: PUSH0 000054e0: DUP1 000054e1: PUSH0 000054e2: DUP1 000054e3: PUSH0 000054e4: DUP1 000054e5: PUSH2 0x0160 000054e8: DUP8 000054e9: DUP10 000054ea: SUB 000054eb: SLT 000054ec: ISZERO 000054ed: PUSH2 0x54f4 000054f0: JUMPI 000054f1: PUSH0 000054f2: DUP1 000054f3: REVERT 000054f4: JUMPDEST 000054f5: DUP7 000054f6: CALLDATALOAD 000054f7: PUSH2 0x54ff 000054fa: DUP2 000054fb: PUSH2 0x504a 000054fe: JUMP 000054ff: JUMPDEST 00005500: SWAP6 00005501: POP 00005502: PUSH2 0x550e 00005505: DUP9 00005506: PUSH1 0x20 00005508: DUP10 00005509: ADD 0000550a: PUSH2 0x5142 0000550d: JUMP 0000550e: JUMPDEST 0000550f: SWAP5 00005510: POP 00005511: PUSH2 0x551d 00005514: DUP9 00005515: PUSH1 0xc0 00005517: DUP10 00005518: ADD 00005519: PUSH2 0x52a4 0000551c: JUMP 0000551d: JUMPDEST 0000551e: SWAP4 0000551f: POP 00005520: PUSH2 0x0120 00005523: DUP8 00005524: ADD 00005525: CALLDATALOAD 00005526: SWAP3 00005527: POP 00005528: PUSH2 0x0140 0000552b: DUP8 0000552c: ADD 0000552d: CALLDATALOAD 0000552e: PUSH8 0xffffffffffffffff 00005537: DUP2 00005538: GT 00005539: ISZERO 0000553a: PUSH2 0x5541 0000553d: JUMPI 0000553e: PUSH0 0000553f: DUP1 00005540: REVERT 00005541: JUMPDEST 00005542: PUSH2 0x554d 00005545: DUP10 00005546: DUP3 00005547: DUP11 00005548: ADD 00005549: PUSH2 0x4fa6 0000554c: JUMP 0000554d: JUMPDEST 0000554e: SWAP8 0000554f: SWAP11 00005550: SWAP7 00005551: SWAP10 00005552: POP 00005553: SWAP5 00005554: SWAP8 00005555: POP 00005556: SWAP3 00005557: SWAP6 00005558: SWAP4 00005559: SWAP5 0000555a: SWAP3 0000555b: POP 0000555c: POP 0000555d: POP 0000555e: JUMP 0000555f: JUMPDEST 00005560: PUSH0 00005561: DUP1 00005562: PUSH1 0x20 00005564: DUP4 00005565: DUP6 00005566: SUB 00005567: SLT 00005568: ISZERO 00005569: PUSH2 0x5570 0000556c: JUMPI 0000556d: PUSH0 0000556e: DUP1 0000556f: REVERT 00005570: JUMPDEST 00005571: DUP3 00005572: CALLDATALOAD 00005573: PUSH8 0xffffffffffffffff 0000557c: DUP2 0000557d: GT 0000557e: ISZERO 0000557f: PUSH2 0x5586 00005582: JUMPI 00005583: PUSH0 00005584: DUP1 00005585: REVERT 00005586: JUMPDEST 00005587: DUP4 00005588: ADD 00005589: PUSH1 0x1f 0000558b: DUP2 0000558c: ADD 0000558d: DUP6 0000558e: SGT 0000558f: PUSH2 0x5596 00005592: JUMPI 00005593: PUSH0 00005594: DUP1 00005595: REVERT 00005596: JUMPDEST 00005597: DUP1 00005598: CALLDATALOAD 00005599: PUSH8 0xffffffffffffffff 000055a2: DUP2 000055a3: GT 000055a4: ISZERO 000055a5: PUSH2 0x55ac 000055a8: JUMPI 000055a9: PUSH0 000055aa: DUP1 000055ab: REVERT 000055ac: JUMPDEST 000055ad: DUP6 000055ae: PUSH1 0x20 000055b0: DUP3 000055b1: PUSH1 0x05 000055b3: SHL 000055b4: DUP5 000055b5: ADD 000055b6: ADD 000055b7: GT 000055b8: ISZERO 000055b9: PUSH2 0x55c0 000055bc: JUMPI 000055bd: PUSH0 000055be: DUP1 000055bf: REVERT 000055c0: JUMPDEST 000055c1: PUSH1 0x20 000055c3: SWAP2 000055c4: SWAP1 000055c5: SWAP2 000055c6: ADD 000055c7: SWAP6 000055c8: SWAP1 000055c9: SWAP5 000055ca: POP 000055cb: SWAP3 000055cc: POP 000055cd: POP 000055ce: POP 000055cf: JUMP 000055d0: JUMPDEST 000055d1: DUP1 000055d2: CALLDATALOAD 000055d3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000 000055f4: DUP2 000055f5: AND 000055f6: DUP2 000055f7: EQ 000055f8: PUSH2 0x5070 000055fb: JUMPI 000055fc: PUSH0 000055fd: DUP1 000055fe: REVERT 000055ff: JUMPDEST 00005600: PUSH0 00005601: DUP1 00005602: PUSH0 00005603: PUSH1 0x60 00005605: DUP5 00005606: DUP7 00005607: SUB 00005608: SLT 00005609: ISZERO 0000560a: PUSH2 0x5611 0000560d: JUMPI 0000560e: PUSH0 0000560f: DUP1 00005610: REVERT 00005611: JUMPDEST 00005612: PUSH2 0x5342 00005615: DUP5 00005616: PUSH2 0x55d0 00005619: JUMP 0000561a: JUMPDEST 0000561b: DUP2 0000561c: DUP4 0000561d: MSTORE 0000561e: DUP2 0000561f: DUP2 00005620: PUSH1 0x20 00005622: DUP6 00005623: ADD 00005624: CALLDATACOPY 00005625: POP 00005626: PUSH0 00005627: PUSH1 0x20 00005629: DUP3 0000562a: DUP5 0000562b: ADD 0000562c: ADD 0000562d: MSTORE 0000562e: PUSH0 0000562f: PUSH1 0x20 00005631: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00005652: PUSH1 0x1f 00005654: DUP5 00005655: ADD 00005656: AND 00005657: DUP5 00005658: ADD 00005659: ADD 0000565a: SWAP1 0000565b: POP 0000565c: SWAP3 0000565d: SWAP2 0000565e: POP 0000565f: POP 00005660: JUMP 00005661: JUMPDEST 00005662: PUSH1 0x20 00005664: DUP2 00005665: MSTORE 00005666: PUSH0 00005667: PUSH2 0x22aa 0000566a: PUSH1 0x20 0000566c: DUP4 0000566d: ADD 0000566e: DUP5 0000566f: DUP7 00005670: PUSH2 0x561a 00005673: JUMP 00005674: JUMPDEST 00005675: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00005696: PUSH0 00005697: MSTORE 00005698: PUSH1 0x41 0000569a: PUSH1 0x04 0000569c: MSTORE 0000569d: PUSH1 0x24 0000569f: PUSH0 000056a0: REVERT 000056a1: JUMPDEST 000056a2: PUSH0 000056a3: PUSH1 0x20 000056a5: DUP3 000056a6: DUP5 000056a7: SUB 000056a8: SLT 000056a9: ISZERO 000056aa: PUSH2 0x56b1 000056ad: JUMPI 000056ae: PUSH0 000056af: DUP1 000056b0: REVERT 000056b1: JUMPDEST 000056b2: DUP2 000056b3: MLOAD 000056b4: PUSH8 0xffffffffffffffff 000056bd: DUP2 000056be: GT 000056bf: ISZERO 000056c0: PUSH2 0x56c7 000056c3: JUMPI 000056c4: PUSH0 000056c5: DUP1 000056c6: REVERT 000056c7: JUMPDEST 000056c8: DUP3 000056c9: ADD 000056ca: PUSH1 0x1f 000056cc: DUP2 000056cd: ADD 000056ce: DUP5 000056cf: SGT 000056d0: PUSH2 0x56d7 000056d3: JUMPI 000056d4: PUSH0 000056d5: DUP1 000056d6: REVERT 000056d7: JUMPDEST 000056d8: DUP1 000056d9: MLOAD 000056da: PUSH8 0xffffffffffffffff 000056e3: DUP2 000056e4: GT 000056e5: ISZERO 000056e6: PUSH2 0x56f1 000056e9: JUMPI 000056ea: PUSH2 0x56f1 000056ed: PUSH2 0x5674 000056f0: JUMP 000056f1: JUMPDEST 000056f2: PUSH1 0x40 000056f4: MLOAD 000056f5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00005716: PUSH1 0x3f 00005718: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00005739: PUSH1 0x1f 0000573b: DUP6 0000573c: ADD 0000573d: AND 0000573e: ADD 0000573f: AND 00005740: DUP2 00005741: ADD 00005742: DUP2 00005743: DUP2 00005744: LT 00005745: PUSH8 0xffffffffffffffff 0000574e: DUP3 0000574f: GT 00005750: OR 00005751: ISZERO 00005752: PUSH2 0x575d 00005755: JUMPI 00005756: PUSH2 0x575d 00005759: PUSH2 0x5674 0000575c: JUMP 0000575d: JUMPDEST 0000575e: PUSH1 0x40 00005760: MSTORE 00005761: DUP2 00005762: DUP2 00005763: MSTORE 00005764: DUP3 00005765: DUP3 00005766: ADD 00005767: PUSH1 0x20 00005769: ADD 0000576a: DUP7 0000576b: LT 0000576c: ISZERO 0000576d: PUSH2 0x5774 00005770: JUMPI 00005771: PUSH0 00005772: DUP1 00005773: REVERT 00005774: JUMPDEST 00005775: DUP2 00005776: PUSH1 0x20 00005778: DUP5 00005779: ADD 0000577a: PUSH1 0x20 0000577c: DUP4 0000577d: ADD 0000577e: MCOPY 0000577f: PUSH0 00005780: SWAP2 00005781: DUP2 00005782: ADD 00005783: PUSH1 0x20 00005785: ADD 00005786: SWAP2 00005787: SWAP1 00005788: SWAP2 00005789: MSTORE 0000578a: SWAP5 0000578b: SWAP4 0000578c: POP 0000578d: POP 0000578e: POP 0000578f: POP 00005790: JUMP 00005791: JUMPDEST 00005792: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000057b3: PUSH0 000057b4: MSTORE 000057b5: PUSH1 0x32 000057b7: PUSH1 0x04 000057b9: MSTORE 000057ba: PUSH1 0x24 000057bc: PUSH0 000057bd: REVERT 000057be: JUMPDEST 000057bf: DUP1 000057c0: PUSH1 0x02 000057c2: SIGNEXTEND 000057c3: DUP2 000057c4: EQ 000057c5: PUSH2 0x0515 000057c8: JUMPI 000057c9: PUSH0 000057ca: DUP1 000057cb: REVERT 000057cc: JUMPDEST 000057cd: PUSH0 000057ce: PUSH1 0x20 000057d0: DUP3 000057d1: DUP5 000057d2: SUB 000057d3: SLT 000057d4: ISZERO 000057d5: PUSH2 0x57dc 000057d8: JUMPI 000057d9: PUSH0 000057da: DUP1 000057db: REVERT 000057dc: JUMPDEST 000057dd: DUP2 000057de: CALLDATALOAD 000057df: PUSH2 0x1729 000057e2: DUP2 000057e3: PUSH2 0x57be 000057e6: JUMP 000057e7: JUMPDEST 000057e8: PUSH0 000057e9: PUSH1 0x20 000057eb: DUP3 000057ec: DUP5 000057ed: SUB 000057ee: SLT 000057ef: ISZERO 000057f0: PUSH2 0x57f7 000057f3: JUMPI 000057f4: PUSH0 000057f5: DUP1 000057f6: REVERT 000057f7: JUMPDEST 000057f8: POP 000057f9: MLOAD 000057fa: SWAP2 000057fb: SWAP1 000057fc: POP 000057fd: JUMP 000057fe: JUMPDEST 000057ff: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00005820: PUSH0 00005821: MSTORE 00005822: PUSH1 0x11 00005824: PUSH1 0x04 00005826: MSTORE 00005827: PUSH1 0x24 00005829: PUSH0 0000582a: REVERT 0000582b: JUMPDEST 0000582c: PUSH16 0xffffffffffffffffffffffffffffffff 0000583d: DUP2 0000583e: DUP2 0000583f: AND 00005840: DUP4 00005841: DUP3 00005842: AND 00005843: ADD 00005844: SWAP1 00005845: DUP2 00005846: GT 00005847: ISZERO 00005848: PUSH2 0x221c 0000584b: JUMPI 0000584c: PUSH2 0x221c 0000584f: PUSH2 0x57fe 00005852: JUMP 00005853: JUMPDEST 00005854: PUSH1 0x01 00005856: PUSH1 0x01 00005858: PUSH1 0xa0 0000585a: SHL 0000585b: SUB 0000585c: DUP5 0000585d: AND 0000585e: DUP2 0000585f: MSTORE 00005860: PUSH1 0x40 00005862: PUSH1 0x20 00005864: DUP3 00005865: ADD 00005866: MSTORE 00005867: PUSH0 00005868: PUSH2 0x33d5 0000586b: PUSH1 0x40 0000586d: DUP4 0000586e: ADD 0000586f: DUP5 00005870: DUP7 00005871: PUSH2 0x561a 00005874: JUMP 00005875: JUMPDEST 00005876: DUP1 00005877: DUP3 00005878: ADD 00005879: DUP1 0000587a: DUP3 0000587b: GT 0000587c: ISZERO 0000587d: PUSH2 0x221c 00005880: JUMPI 00005881: PUSH2 0x221c 00005884: PUSH2 0x57fe 00005887: JUMP 00005888: JUMPDEST 00005889: PUSH0 0000588a: PUSH1 0x20 0000588c: DUP3 0000588d: DUP5 0000588e: SUB 0000588f: SLT 00005890: ISZERO 00005891: PUSH2 0x5898 00005894: JUMPI 00005895: PUSH0 00005896: DUP1 00005897: REVERT 00005898: JUMPDEST 00005899: PUSH2 0x1729 0000589c: DUP3 0000589d: PUSH2 0x505e 000058a0: JUMP 000058a1: JUMPDEST 000058a2: PUSH0 000058a3: PUSH1 0x20 000058a5: DUP3 000058a6: DUP5 000058a7: SUB 000058a8: SLT 000058a9: ISZERO 000058aa: PUSH2 0x58b1 000058ad: JUMPI 000058ae: PUSH0 000058af: DUP1 000058b0: REVERT 000058b1: JUMPDEST 000058b2: PUSH2 0x1729 000058b5: DUP3 000058b6: PUSH2 0x55d0 000058b9: JUMP 000058ba: JUMPDEST 000058bb: PUSH0 000058bc: DUP1 000058bd: DUP6 000058be: DUP6 000058bf: GT 000058c0: ISZERO 000058c1: PUSH2 0x58c8 000058c4: JUMPI 000058c5: PUSH0 000058c6: DUP1 000058c7: REVERT 000058c8: JUMPDEST 000058c9: DUP4 000058ca: DUP7 000058cb: GT 000058cc: ISZERO 000058cd: PUSH2 0x58d4 000058d0: JUMPI 000058d1: PUSH0 000058d2: DUP1 000058d3: REVERT 000058d4: JUMPDEST 000058d5: POP 000058d6: POP 000058d7: DUP3 000058d8: ADD 000058d9: SWAP4 000058da: SWAP2 000058db: SWAP1 000058dc: SWAP3 000058dd: SUB 000058de: SWAP2 000058df: POP 000058e0: JUMP 000058e1: JUMPDEST 000058e2: DUP1 000058e3: CALLDATALOAD 000058e4: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00005905: DUP2 00005906: AND 00005907: SWAP1 00005908: PUSH1 0x14 0000590a: DUP5 0000590b: LT 0000590c: ISZERO 0000590d: PUSH2 0x5940 00005910: JUMPI 00005911: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00005932: DUP1 00005933: DUP6 00005934: PUSH1 0x14 00005936: SUB 00005937: PUSH1 0x03 00005939: SHL 0000593a: SHL 0000593b: DUP3 0000593c: AND 0000593d: AND 0000593e: SWAP2 0000593f: POP 00005940: JUMPDEST 00005941: POP 00005942: SWAP3 00005943: SWAP2 00005944: POP 00005945: POP 00005946: JUMP 00005947: JUMPDEST 00005948: PUSH0 00005949: PUSH1 0x20 0000594b: DUP3 0000594c: DUP5 0000594d: SUB 0000594e: SLT 0000594f: ISZERO 00005950: PUSH2 0x5957 00005953: JUMPI 00005954: PUSH0 00005955: DUP1 00005956: REVERT 00005957: JUMPDEST 00005958: DUP2 00005959: MLOAD 0000595a: PUSH2 0x1729 0000595d: DUP2 0000595e: PUSH2 0x57be 00005961: JUMP 00005962: JUMPDEST 00005963: PUSH0 00005964: PUSH1 0x20 00005966: DUP3 00005967: DUP5 00005968: SUB 00005969: SLT 0000596a: ISZERO 0000596b: PUSH2 0x5972 0000596e: JUMPI 0000596f: PUSH0 00005970: DUP1 00005971: REVERT 00005972: JUMPDEST 00005973: DUP2 00005974: CALLDATALOAD 00005975: DUP1 00005976: ISZERO 00005977: ISZERO 00005978: DUP2 00005979: EQ 0000597a: PUSH2 0x1729 0000597d: JUMPI 0000597e: PUSH0 0000597f: DUP1 00005980: REVERT 00005981: JUMPDEST 00005982: PUSH0 00005983: DUP2 00005984: PUSH1 0x0f 00005986: SIGNEXTEND 00005987: PUSH32 0xffffffffffffffffffffffffffffffff80000000000000000000000000000000 000059a8: DUP2 000059a9: SUB 000059aa: PUSH2 0x59b5 000059ad: JUMPI 000059ae: PUSH2 0x59b5 000059b1: PUSH2 0x57fe 000059b4: JUMP 000059b5: JUMPDEST 000059b6: PUSH0 000059b7: SUB 000059b8: SWAP3 000059b9: SWAP2 000059ba: POP 000059bb: POP 000059bc: JUMP 000059bd: JUMPDEST 000059be: PUSH1 0x02 000059c0: DUP3 000059c1: DUP2 000059c2: SIGNEXTEND 000059c3: SWAP1 000059c4: DUP3 000059c5: SWAP1 000059c6: SIGNEXTEND 000059c7: SUB 000059c8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 000059e9: DUP2 000059ea: SLT 000059eb: PUSH3 0x7fffff 000059ef: DUP3 000059f0: SGT 000059f1: OR 000059f2: ISZERO 000059f3: PUSH2 0x221c 000059f6: JUMPI 000059f7: PUSH2 0x221c 000059fa: PUSH2 0x57fe 000059fd: JUMP 000059fe: JUMPDEST 000059ff: PUSH0 00005a00: DUP3 00005a01: PUSH1 0x0f 00005a03: SIGNEXTEND 00005a04: DUP3 00005a05: PUSH1 0x0f 00005a07: SIGNEXTEND 00005a08: MUL 00005a09: DUP1 00005a0a: PUSH1 0x0f 00005a0c: SIGNEXTEND 00005a0d: SWAP2 00005a0e: POP 00005a0f: DUP1 00005a10: DUP3 00005a11: EQ 00005a12: PUSH2 0x5940 00005a15: JUMPI 00005a16: PUSH2 0x5940 00005a19: PUSH2 0x57fe 00005a1c: JUMP 00005a1d: JUMPDEST 00005a1e: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00005a3f: PUSH0 00005a40: MSTORE 00005a41: PUSH1 0x12 00005a43: PUSH1 0x04 00005a45: MSTORE 00005a46: PUSH1 0x24 00005a48: PUSH0 00005a49: REVERT 00005a4a: JUMPDEST 00005a4b: PUSH0 00005a4c: DUP2 00005a4d: PUSH1 0x0f 00005a4f: SIGNEXTEND 00005a50: DUP4 00005a51: PUSH1 0x0f 00005a53: SIGNEXTEND 00005a54: DUP1 00005a55: PUSH2 0x5a60 00005a58: JUMPI 00005a59: PUSH2 0x5a60 00005a5c: PUSH2 0x5a1d 00005a5f: JUMP 00005a60: JUMPDEST 00005a61: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00005a82: DUP2 00005a83: EQ 00005a84: PUSH32 0xffffffffffffffffffffffffffffffff80000000000000000000000000000000 00005aa5: DUP4 00005aa6: EQ 00005aa7: AND 00005aa8: ISZERO 00005aa9: PUSH2 0x5ab4 00005aac: JUMPI 00005aad: PUSH2 0x5ab4 00005ab0: PUSH2 0x57fe 00005ab3: JUMP 00005ab4: JUMPDEST 00005ab5: SWAP1 00005ab6: SDIV 00005ab7: SWAP4 00005ab8: SWAP3 00005ab9: POP 00005aba: POP 00005abb: POP 00005abc: JUMP 00005abd: JUMPDEST 00005abe: PUSH1 0x0f 00005ac0: DUP3 00005ac1: DUP2 00005ac2: SIGNEXTEND 00005ac3: SWAP1 00005ac4: DUP3 00005ac5: SWAP1 00005ac6: SIGNEXTEND 00005ac7: SUB 00005ac8: PUSH32 0xffffffffffffffffffffffffffffffff80000000000000000000000000000000 00005ae9: DUP2 00005aea: SLT 00005aeb: PUSH16 0x7fffffffffffffffffffffffffffffff 00005afc: DUP3 00005afd: SGT 00005afe: OR 00005aff: ISZERO 00005b00: PUSH2 0x221c 00005b03: JUMPI 00005b04: PUSH2 0x221c 00005b07: PUSH2 0x57fe 00005b0a: JUMP 00005b0b: JUMPDEST 00005b0c: DUP2 00005b0d: DUP2 00005b0e: SUB 00005b0f: DUP2 00005b10: DUP2 00005b11: GT 00005b12: ISZERO 00005b13: PUSH2 0x221c 00005b16: JUMPI 00005b17: PUSH2 0x221c 00005b1a: PUSH2 0x57fe 00005b1d: JUMP 00005b1e: JUMPDEST 00005b1f: PUSH0 00005b20: DUP3 00005b21: PUSH2 0x5b2c 00005b24: JUMPI 00005b25: PUSH2 0x5b2c 00005b28: PUSH2 0x5a1d 00005b2b: JUMP 00005b2c: JUMPDEST 00005b2d: POP 00005b2e: DIV 00005b2f: SWAP1 00005b30: JUMP 00005b31: JUMPDEST 00005b32: PUSH0 00005b33: DUP2 00005b34: PUSH1 0x02 00005b36: SIGNEXTEND 00005b37: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 00005b58: DUP2 00005b59: SUB 00005b5a: PUSH2 0x5b65 00005b5d: JUMPI 00005b5e: PUSH2 0x5b65 00005b61: PUSH2 0x57fe 00005b64: JUMP 00005b65: JUMPDEST 00005b66: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00005b87: ADD 00005b88: SWAP3 00005b89: SWAP2 00005b8a: POP 00005b8b: POP 00005b8c: JUMP 00005b8d: JUMPDEST 00005b8e: DUP1 00005b8f: DUP3 00005b90: MUL 00005b91: DUP2 00005b92: ISZERO 00005b93: DUP3 00005b94: DUP3 00005b95: DIV 00005b96: DUP5 00005b97: EQ 00005b98: OR 00005b99: PUSH2 0x221c 00005b9c: JUMPI 00005b9d: PUSH2 0x221c 00005ba0: PUSH2 0x57fe 00005ba3: JUMP 00005ba4: JUMPDEST 00005ba5: PUSH1 0x02 00005ba7: DUP2 00005ba8: DUP2 00005ba9: SIGNEXTEND 00005baa: SWAP1 00005bab: DUP4 00005bac: SWAP1 00005bad: SIGNEXTEND 00005bae: ADD 00005baf: PUSH3 0x7fffff 00005bb3: DUP2 00005bb4: SGT 00005bb5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000 00005bd6: DUP3 00005bd7: SLT 00005bd8: OR 00005bd9: ISZERO 00005bda: PUSH2 0x221c 00005bdd: JUMPI 00005bde: PUSH2 0x221c 00005be1: PUSH2 0x57fe 00005be4: JUMP 00005be5: JUMPDEST 00005be6: PUSH0 00005be7: DUP3 00005be8: PUSH1 0x02 00005bea: SIGNEXTEND 00005beb: DUP3 00005bec: PUSH1 0x02 00005bee: SIGNEXTEND 00005bef: MUL 00005bf0: DUP1 00005bf1: PUSH1 0x02 00005bf3: SIGNEXTEND 00005bf4: SWAP2 00005bf5: POP 00005bf6: DUP1 00005bf7: DUP3 00005bf8: EQ 00005bf9: PUSH2 0x5940 00005bfc: JUMPI 00005bfd: PUSH2 0x5940 00005c00: PUSH2 0x57fe 00005c03: JUMP 00005c04: INVALID 00005c05: LOG1 00005c06: PUSH5 0x736f6c6343 00005c0c: STOP 00005c0d: ADDMOD 00005c0e: BYTE 00005c0f: STOP 00005c10: EXP
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xbb3131cbe3eec7233e718c8ec7cb40faeb5ce9e824efe01a34e7e13afdeecea1
call_targets:
0x0000000aa232009084bd71a5797d089aa4edfad4
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xbb3131cbe3eec7233e718c8ec7cb40faeb5ce9e824efe01a34e7e13afdeecea1",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000aa232009084bd71a5797d089aa4edfad4"
],
"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": "0xd9e17f98",
"selector": "0xd9e17f98",
"calldata_variants": [
"0xd9e17f98",
"0xd9e17f980000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd4d4cf6",
"selector": "0xdd4d4cf6",
"calldata_variants": [
"0xdd4d4cf6",
"0xdd4d4cf60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3fef3a3",
"selector": "0xf3fef3a3",
"calldata_variants": [
"0xf3fef3a3",
"0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb47b2fb1",
"selector": "0xb47b2fb1",
"calldata_variants": [
"0xb47b2fb1",
"0xb47b2fb10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd6cffd1e",
"selector": "0xd6cffd1e",
"calldata_variants": [
"0xd6cffd1e",
"0xd6cffd1e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd9caed12",
"selector": "0xd9caed12",
"calldata_variants": [
"0xd9caed12",
"0xd9caed120000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8587f450",
"selector": "0x8587f450",
"calldata_variants": [
"0x8587f450",
"0x8587f4500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x91dd7346",
"selector": "0x91dd7346",
"calldata_variants": [
"0x91dd7346",
"0x91dd73460000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1202,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2741,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2942,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 15,
"guards_detected": []
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xbb3131cbe3eec7233e718c8ec7cb40faeb5ce9e824efe01a34e7e13afdeecea1
call_targets:
0x0000000aa232009084bd71a5797d089aa4edfad4
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xbb3131cbe3eec7233e718c8ec7cb40faeb5ce9e824efe01a34e7e13afdeecea1",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x0000000aa232009084bd71a5797d089aa4edfad4"
],
"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": "0xd9e17f98",
"selector": "0xd9e17f98",
"calldata_variants": [
"0xd9e17f98",
"0xd9e17f980000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd4d4cf6",
"selector": "0xdd4d4cf6",
"calldata_variants": [
"0xdd4d4cf6",
"0xdd4d4cf60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3fef3a3",
"selector": "0xf3fef3a3",
"calldata_variants": [
"0xf3fef3a3",
"0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb47b2fb1",
"selector": "0xb47b2fb1",
"calldata_variants": [
"0xb47b2fb1",
"0xb47b2fb10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd6cffd1e",
"selector": "0xd6cffd1e",
"calldata_variants": [
"0xd6cffd1e",
"0xd6cffd1e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd9caed12",
"selector": "0xd9caed12",
"calldata_variants": [
"0xd9caed12",
"0xd9caed120000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8587f450",
"selector": "0x8587f450",
"calldata_variants": [
"0x8587f450",
"0x8587f4500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x91dd7346",
"selector": "0x91dd7346",
"calldata_variants": [
"0x91dd7346",
"0x91dd73460000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1202,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2741,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2942,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 15,
"guards_detected": [],
"untrusted_call_count": 13
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0xf8158f2adc50eb1689667ab7527d4be8f65a6e7fd8be64ce216f5a80a1fb427a
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0xf8158f2adc50eb1689667ab7527d4be8f65a6e7fd8be64ce216f5a80a1fb427a",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xd9e17f98",
"selector": "0xd9e17f98",
"calldata_variants": [
"0xd9e17f98",
"0xd9e17f980000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd4d4cf6",
"selector": "0xdd4d4cf6",
"calldata_variants": [
"0xdd4d4cf6",
"0xdd4d4cf60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3fef3a3",
"selector": "0xf3fef3a3",
"calldata_variants": [
"0xf3fef3a3",
"0xf3fef3a30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb47b2fb1",
"selector": "0xb47b2fb1",
"calldata_variants": [
"0xb47b2fb1",
"0xb47b2fb10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd6cffd1e",
"selector": "0xd6cffd1e",
"calldata_variants": [
"0xd6cffd1e",
"0xd6cffd1e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd9caed12",
"selector": "0xd9caed12",
"calldata_variants": [
"0xd9caed12",
"0xd9caed120000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8587f450",
"selector": "0x8587f450",
"calldata_variants": [
"0x8587f450",
"0x8587f4500000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x91dd7346",
"selector": "0x91dd7346",
"calldata_variants": [
"0x91dd7346",
"0x91dd73460000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 0
}
|
| low | auth | codex | ECDSA invalid signatures are not rejected (signer can become address(0)) | 65 | no | — |
viewevidence_json{
"evidence": "`readAndCheckEcdsa` only checks `returndatasize()` and never verifies `from != address(0)`; invalid signatures still return data and are accepted.",
"locations": [
"contracts/src/libraries/SignatureLib.sol:18"
],
"recommendation": "Explicitly reject `from == address(0)` and enforce strict ECDSA checks (valid `v`, low\u2011`s`) before accepting the signature.",
"exploit_scenario": "An invalid ECDSA signature still returns 32 bytes from the ecrecover precompile, so `readAndCheckEcdsa` accepts it and returns `from = address(0)`. If any funds are ever credited to `address(0)` (e.g., a mistaken internal deposit) or a non\u2011standard token allows `transferFrom(address(0), ...)`, a malicious node could execute orders without a valid signature for that signer."
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 0
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 22
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 13
}
|
| info | other | codex | Hook data length < 20 bytes can yield an uninitialized hook address and payload length underflow | 60 | no | — |
viewevidence_json{
"evidence": "`hookDataLength` is not validated; a short length leaves dirty bytes in the hook address and causes `payloadLength := sub(hookDataLength, 20)` underflow.",
"locations": [
"contracts/src/types/HookBuffer.sol:40"
],
"recommendation": "Enforce `hookDataLength >= 20` when a hook is present and revert otherwise; consider zeroing the hook memory region before reading to avoid dirty bytes.",
"exploit_scenario": "If a signer (or buggy UI) produces an order with `hookDataLength < 20`, the hook address is partially taken from uninitialized memory and the payload length underflows. A malicious node could influence the resulting hook address or trigger a revert/OOG due to the huge calldata length, even though the signed hash does not commit to a full hook address."
}
|