019c0ea9-f016-739a-ad4f-c89570e9c08b
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 |
|---|---|---|---|---|
| 42266 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 42267 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 42268 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 42269 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 42270 | capability.graph | complete | 1 / 3 | 2 months ago |
| 42271 | detector.run | complete | 1 / 3 | 2 months ago |
| 42272 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42488 | report.consolidate | complete | 1 / 6 | 2 months ago |
| 42489 | tool.slither | failed | 2 / 2 | 2 months ago |
{
"status": "not_proxy"
}
Traceback (most recent call last):
File "/var/www/tripwire/worker/worker.py", line 199, in main
laravel_client.complete_job(job_id, payload if payload else None)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/laravel_client.py", line 27, in complete_job
return self._post(f"/internal/jobs/{job_id}/complete", payload=payload)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/laravel_client.py", line 17, in _post
response.raise_for_status()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/requests/models.py", line 1026, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: https://tripwire.topgun.bot/internal/jobs/42489/complete
{"no_findings":false,"summary":"Found an asset-limit bypass via the mint path and an upgradeability deployment footgun around initialization.","findings":[{"severity":"medium","category":"other","title":"Asset limit can be bypassed via mint()","exploit_scenario":"If the system relies on assetLimit to cap TVL, the owner/supervisor can call mint() to create shares beyond the limit because maxMint is not overridden. Any flow that uses mint instead of deposit will ignore the cap, defeating exposure controls.","recommendation":"Override maxMint to enforce the same cap as maxDeposit (e.g., derive maxShares from remaining asset capacity), or add an explicit assetLimit check in mint using previewMint().","evidence":"deposit() enforces maxDeposit (assetLimit) while mint() delegates to super.mint without any assetLimit check; maxMint remains the ERC4626 default (unlimited).","locations":["src/Vault.sol:56","src/Vault.sol:72","src/Vault.sol:118"]},{"severity":"medium","category":"upgradeability","title":"Proxy can be seized if initialize is not called during deployment","exploit_scenario":"Because initialize() is external and only protected by the initializer modifier, a proxy deployed without immediate initialization can be claimed by any attacker who sets themselves as owner and configures depositToken, then pauses or drains via privileged calls.","recommendation":"Ensure proxy deployments perform initialization atomically (constructor calldata or factory). Consider adding deployment tooling checks to prevent uninitialized proxies.","evidence":"constructor disables initializers on the implementation, while initialize() remains externally callable on the proxy and sets owner/depositToken.","locations":["src/Vault.sol:26","src/Vault.sol:30"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-vzqvigz8
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0fa8-4478-7e01-9379-2c10fb754d51
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
exec
/bin/bash -lc ls in /tmp/codex-vzqvigz8 succeeded in 7ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
node_modules
src
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-vzqvigz8 succeeded in 6ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: src/Vault.sol
================================================================================
// SPDX-License-Identifier: SEE LICENSE IN LICENSE
pragma solidity ^0.8.21;
import {ERC4626} from "solady/src/tokens/ERC4626.sol";
import {Ownable} from "solady/src/auth/Ownable.sol";
import {ReentrancyGuard} from "solady/src/utils/ReentrancyGuard.sol";
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {PausableUpgradeable} from "@openzeppelin-upgradeable/utils/PausableUpgradeable.sol";
import {Initializable} from "@openzeppelin-upgradeable/proxy/utils/Initializable.sol";
import "./interfaces/Errors.sol";
import "./interfaces/IVault.sol";
contract Vault is ERC4626, Initializable, Ownable, PausableUpgradeable, ReentrancyGuard {
IERC20 public depositToken;
exec
/bin/bash -lc 'nl -ba src/Vault.sol' in /tmp/codex-vzqvigz8 succeeded in 5ms:
1 // SPDX-License-Identifier: SEE LICENSE IN LICENSE
2 pragma solidity ^0.8.21;
3
4 import {ERC4626} from "solady/src/tokens/ERC4626.sol";
5 import {Ownable} from "solady/src/auth/Ownable.sol";
6 import {ReentrancyGuard} from "solady/src/utils/ReentrancyGuard.sol";
7 import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
8 import {PausableUpgradeable} from "@openzeppelin-upgradeable/utils/PausableUpgradeable.sol";
9 import {Initializable} from "@openzeppelin-upgradeable/proxy/utils/Initializable.sol";
10 import "./interfaces/Errors.sol";
11 import "./interfaces/IVault.sol";
12
13 contract Vault is ERC4626, Initializable, Ownable, PausableUpgradeable, ReentrancyGuard {
14 IERC20 public depositToken;
15 uint256 public assetLimit;
16 IVault.AssetType public assetType;
17
18 uint8 private _decimals;
19 string private nameStr;
20 string private symbolStr;
exec
/bin/bash -lc 'rg -n "DepositMoreThanMax" -S .' in /tmp/codex-vzqvigz8 succeeded in 36ms:
./node_modules/solady/src/tokens/ERC4626.sol:28: error DepositMoreThanMax();
./node_modules/solady/src/tokens/ERC4626.sol:377: if (assets > maxDeposit(to)) _revert(0xb3c61a83); // `DepositMoreThanMax()`.
./AUDIT_BUNDLE.txt:71: if (assets > maxDeposit(depositor)) revert DepositMoreThanMax();
./src/Vault.sol:65: if (assets > maxDeposit(depositor)) revert DepositMoreThanMax();
exec
/bin/bash -lc 'rg -n "function mint" node_modules/solady/src/tokens/ERC4626.sol -n -S' in /tmp/codex-vzqvigz8 succeeded in 8ms:
393: function mint(uint256 shares, address to) public virtual returns (uint256 assets) {
exec
/bin/bash -lc "sed -n '360,430p' node_modules/solady/src/tokens/ERC4626.sol" in /tmp/codex-vzqvigz8 succeeded in 5ms:
/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
/* DEPOSIT / WITHDRAWAL LOGIC */
/*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
/// @dev Mints `shares` Vault shares to `to` by depositing exactly `assets`
/// of underlying tokens.
///
/// - MUST emit the {Deposit} event.
/// - MAY support an additional flow in which the underlying tokens are owned by the Vault
/// contract before the deposit execution, and are accounted for during deposit.
/// - MUST revert if all of `assets` cannot be deposited, such as due to deposit limit,
/// slippage, insufficient approval, etc.
///
/// Note: Most implementations will require pre-approval of the Vault with the
/// Vault's underlying `asset` token.
function deposit(uint256 assets, address to) public virtual returns (uint256 shares) {
if (assets > maxDeposit(to)) _revert(0xb3c61a83); // `DepositMoreThanMax()`.
shares = previewDeposit(assets);
_deposit(msg.sender, to, assets, shares);
exec
/bin/bash -lc 'rg -n "function maxMint" -n node_modules/solady/src/tokens/ERC4626.sol' in /tmp/codex-vzqvigz8 succeeded in 7ms:
337: function maxMint(address to) public view virtual returns (uint256 maxShares) {
exec
/bin/bash -lc "sed -n '320,350p' node_modules/solady/src/tokens/ERC4626.sol" in /tmp/codex-vzqvigz8 succeeded in 6ms:
/// @dev Returns the maximum amount of the underlying asset that can be deposited
/// into the Vault for `to`, via a deposit call.
///
/// - MUST return a limited value if `to` is subject to some deposit limit.
/// - MUST return `2**256-1` if there is no maximum limit.
/// - MUST NOT revert.
function maxDeposit(address to) public view virtual returns (uint256 maxAssets) {
to = to; // Silence unused variable warning.
maxAssets = type(uint256).max;
}
/// @dev Returns the maximum amount of the Vault shares that can be minter for `to`,
/// via a mint call.
///
/// - MUST return a limited value if `to` is subject to some mint limit.
/// - MUST return `2**256-1` if there is no maximum limit.
/// - MUST NOT revert.
function maxMint(address to) public view virtual returns (uint256 maxShares) {
to = to; // Silence unused variable warning.
maxShares = type(uint256).max;
exec
/bin/bash -lc 'rg -n "previewWithdraw|convertToShares" -n node_modules/solady/src/tokens/ERC4626.sol' in /tmp/codex-vzqvigz8 succeeded in 6ms:
167: function convertToShares(uint256 assets) public view virtual returns (uint256 shares) {
217: /// Note: Any unfavorable discrepancy between `convertToShares` and `previewDeposit` SHOULD
221: shares = convertToShares(assets);
257: /// return the same or fewer shares as `previewWithdraw` if call in the same transaction.
263: /// Note: Any unfavorable discrepancy between `convertToShares` and `previewWithdraw` SHOULD
266: function previewWithdraw(uint256 assets) public view virtual returns (uint256 shares) {
415: shares = previewWithdraw(assets);
exec
/bin/bash -lc "sed -n '150,190p' node_modules/solady/src/tokens/ERC4626.sol" in /tmp/codex-vzqvigz8 succeeded in 6ms:
/// - MUST be inclusive of any fees that are charged against assets in the Vault.
/// - MUST NOT revert.
function totalAssets() public view virtual returns (uint256 assets) {
assets = SafeTransferLib.balanceOf(asset(), address(this));
}
/// @dev Returns the amount of shares that the Vault will exchange for the amount of
/// assets provided, in an ideal scenario where all conditions are met.
///
/// - MUST NOT be inclusive of any fees that are charged against assets in the Vault.
/// - MUST NOT show any variations depending on the caller.
/// - MUST NOT reflect slippage or other on-chain conditions, during the actual exchange.
/// - MUST NOT revert.
///
/// Note: This calculation MAY NOT reflect the "per-user" price-per-share, and instead
/// should reflect the "average-user's" price-per-share, i.e. what the average user should
/// expect to see when exchanging to and from.
function convertToShares(uint256 assets) public view virtual returns (uint256 shares) {
if (!_useVirtualShares()) {
uint256 supply = totalSupply();
exec
/bin/bash -lc "sed -n '250,280p' node_modules/solady/src/tokens/ERC4626.sol" in /tmp/codex-vzqvigz8 succeeded in 7ms:
}
/// @dev Allows an on-chain or off-chain user to simulate the effects of their withdrawal
/// at the current block, given the current on-chain conditions.
///
/// - MUST return as close to and no fewer than the exact amount of Vault shares that
/// will be burned in a withdraw call in the same transaction, i.e. withdraw should
/// return the same or fewer shares as `previewWithdraw` if call in the same transaction.
/// - MUST NOT account for withdrawal limits like those returned from `maxWithdraw` and should
/// always act as if the withdrawal will be accepted, regardless of share balance, etc.
/// - MUST be inclusive of withdrawal fees. Integrators should be aware of this.
/// - MUST not revert.
///
/// Note: Any unfavorable discrepancy between `convertToShares` and `previewWithdraw` SHOULD
/// be considered slippage in share price or some other type of condition,
/// meaning the depositor will lose assets by depositing.
function previewWithdraw(uint256 assets) public view virtual returns (uint256 shares) {
if (!_useVirtualShares()) {
uint256 supply = totalSupply();
return _eitherIsZero(assets, supply)
exec
/bin/bash -lc "sed -n '210,235p' node_modules/solady/src/tokens/ERC4626.sol" in /tmp/codex-vzqvigz8 succeeded in 8ms:
/// will be minted in a deposit call in the same transaction, i.e. deposit should
/// return the same or more shares as `previewDeposit` if call in the same transaction.
/// - MUST NOT account for deposit limits like those returned from `maxDeposit` and should
/// always act as if the deposit will be accepted, regardless of approvals, etc.
/// - MUST be inclusive of deposit fees. Integrators should be aware of this.
/// - MUST not revert.
///
/// Note: Any unfavorable discrepancy between `convertToShares` and `previewDeposit` SHOULD
/// be considered slippage in share price or some other type of condition, meaning
/// the depositor will lose assets by depositing.
function previewDeposit(uint256 assets) public view virtual returns (uint256 shares) {
shares = convertToShares(assets);
}
/// @dev Allows an on-chain or off-chain user to simulate the effects of their mint
/// at the current block, given current on-chain conditions.
///
/// - MUST return as close to and no fewer than the exact amount of assets that
/// will be deposited in a mint call in the same transaction, i.e. mint should
/// return the same or fewer assets as `previewMint` if called in the same transaction.
codex
{"no_findings":false,"summary":"Found an asset-limit bypass via the mint path and an upgradeability deployment footgun around initialization.","findings":[{"severity":"medium","category":"other","title":"Asset limit can be bypassed via mint()","exploit_scenario":"If the system relies on assetLimit to cap TVL, the owner/supervisor can call mint() to create shares beyond the limit because maxMint is not overridden. Any flow that uses mint instead of deposit will ignore the cap, defeating exposure controls.","recommendation":"Override maxMint to enforce the same cap as maxDeposit (e.g., derive maxShares from remaining asset capacity), or add an explicit assetLimit check in mint using previewMint().","evidence":"deposit() enforces maxDeposit (assetLimit) while mint() delegates to super.mint without any assetLimit check; maxMint remains the ERC4626 default (unlimited).","locations":["src/Vault.sol:56","src/Vault.sol:72","src/Vault.sol:118"]},{"severity":"medium","category":"upgradeability","title":"Proxy can be seized if initialize is not called during deployment","exploit_scenario":"Because initialize() is external and only protected by the initializer modifier, a proxy deployed without immediate initialization can be claimed by any attacker who sets themselves as owner and configures depositToken, then pauses or drains via privileged calls.","recommendation":"Ensure proxy deployments perform initialization atomically (constructor calldata or factory). Consider adding deployment tooling checks to prevent uninitialized proxies.","evidence":"constructor disables initializers on the implementation, while initialize() remains externally callable on the proxy and sets owner/depositToken.","locations":["src/Vault.sol:26","src/Vault.sol:30"]}]}
tokens used
17,812
{
"codex": {
"ran_at": "2026-01-30T16:09:54.018608+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 17,
"import_count": 20,
"first_party_contracts_count": 5
},
"summary": "Found an asset-limit bypass via the mint path and an upgradeability deployment footgun around initialization.",
"raw_final": {
"summary": "Found an asset-limit bypass via the mint path and an upgradeability deployment footgun around initialization.",
"findings": [
{
"title": "Asset limit can be bypassed via mint()",
"category": "other",
"evidence": "deposit() enforces maxDeposit (assetLimit) while mint() delegates to super.mint without any assetLimit check; maxMint remains the ERC4626 default (unlimited).",
"severity": "medium",
"locations": [
"src/Vault.sol:56",
"src/Vault.sol:72",
"src/Vault.sol:118"
],
"recommendation": "Override maxMint to enforce the same cap as maxDeposit (e.g., derive maxShares from remaining asset capacity), or add an explicit assetLimit check in mint using previewMint().",
"exploit_scenario": "If the system relies on assetLimit to cap TVL, the owner/supervisor can call mint() to create shares beyond the limit because maxMint is not overridden. Any flow that uses mint instead of deposit will ignore the cap, defeating exposure controls."
},
{
"title": "Proxy can be seized if initialize is not called during deployment",
"category": "upgradeability",
"evidence": "constructor disables initializers on the implementation, while initialize() remains externally callable on the proxy and sets owner/depositToken.",
"severity": "medium",
"locations": [
"src/Vault.sol:26",
"src/Vault.sol:30"
],
"recommendation": "Ensure proxy deployments perform initialization atomically (constructor calldata or factory). Consider adding deployment tooling checks to prevent uninitialized proxies.",
"exploit_scenario": "Because initialize() is external and only protected by the initializer modifier, a proxy deployed without immediate initialization can be claimed by any attacker who sets themselves as owner and configures depositToken, then pauses or drains via privileged calls."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: ISZERO 0000000a: PUSH2 0x0012 0000000d: JUMPI 0000000e: PUSH1 0x00 00000010: DUP1 00000011: REVERT 00000012: JUMPDEST 00000013: PUSH1 0x00 00000015: CALLDATALOAD 00000016: PUSH1 0xe0 00000018: SHR 00000019: DUP1 0000001a: PUSH4 0x01e1d114 0000001f: EQ 00000020: PUSH2 0x1876 00000023: JUMPI 00000024: DUP1 00000025: PUSH4 0x02329a29 0000002a: EQ 0000002b: PUSH2 0x1728 0000002e: JUMPI 0000002f: DUP1 00000030: PUSH4 0x06fdde03 00000035: EQ 00000036: PUSH2 0x170c 00000039: JUMPI 0000003a: DUP1 0000003b: PUSH4 0x07a2d13a 00000040: EQ 00000041: PUSH2 0x136a 00000044: JUMPI 00000045: DUP1 00000046: PUSH4 0x095ea7b3 0000004b: EQ 0000004c: PUSH2 0x169e 0000004f: JUMPI 00000050: DUP1 00000051: PUSH4 0x0a28a477 00000056: EQ 00000057: PUSH2 0x1680 0000005a: JUMPI 0000005b: DUP1 0000005c: PUSH4 0x18160ddd 00000061: EQ 00000062: PUSH2 0x165a 00000065: JUMPI 00000066: DUP1 00000067: PUSH4 0x22da98e7 0000006c: EQ 0000006d: PUSH2 0x163c 00000070: JUMPI 00000071: DUP1 00000072: PUSH4 0x23b872dd 00000077: EQ 00000078: PUSH2 0x1557 0000007b: JUMPI 0000007c: DUP1 0000007d: PUSH4 0x25692962 00000082: EQ 00000083: PUSH2 0x150b 00000086: JUMPI 00000087: DUP1 00000088: PUSH4 0x27ea6f2b 0000008d: EQ 0000008e: PUSH2 0x14ea 00000091: JUMPI 00000092: DUP1 00000093: PUSH4 0x313ce567 00000098: EQ 00000099: PUSH2 0x148e 0000009c: JUMPI 0000009d: DUP1 0000009e: PUSH4 0x3644e515 000000a3: EQ 000000a4: PUSH2 0x1405 000000a7: JUMPI 000000a8: DUP1 000000a9: PUSH4 0x38d52e0f 000000ae: EQ 000000af: PUSH2 0x05e2 000000b2: JUMPI 000000b3: DUP1 000000b4: PUSH4 0x3fe3347a 000000b9: EQ 000000ba: PUSH2 0x13ac 000000bd: JUMPI 000000be: DUP1 000000bf: PUSH4 0x402d267d 000000c4: EQ 000000c5: PUSH2 0x1388 000000c8: JUMPI 000000c9: DUP1 000000ca: PUSH4 0x4cdad506 000000cf: EQ 000000d0: PUSH2 0x136a 000000d3: JUMPI 000000d4: DUP1 000000d5: PUSH4 0x54d1f13d 000000da: EQ 000000db: PUSH2 0x1322 000000de: JUMPI 000000df: DUP1 000000e0: PUSH4 0x5c975abb 000000e5: EQ 000000e6: PUSH2 0x12e0 000000e9: JUMPI 000000ea: DUP1 000000eb: PUSH4 0x6e553f65 000000f0: EQ 000000f1: PUSH2 0x1247 000000f4: JUMPI 000000f5: DUP1 000000f6: PUSH4 0x70a08231 000000fb: EQ 000000fc: PUSH2 0x03c6 000000ff: JUMPI 00000100: DUP1 00000101: PUSH4 0x715018a6 00000106: EQ 00000107: PUSH2 0x11e6 0000010a: JUMPI 0000010b: DUP1 0000010c: PUSH4 0x7ecebe00 00000111: EQ 00000112: PUSH2 0x11b3 00000115: JUMPI 00000116: DUP1 00000117: PUSH4 0x8420ce99 0000011c: EQ 0000011d: PUSH2 0x09f2 00000120: JUMPI 00000121: DUP1 00000122: PUSH4 0x8da5cb5b 00000127: EQ 00000128: PUSH2 0x099f 0000012b: JUMPI 0000012c: DUP1 0000012d: PUSH4 0x94bf804d 00000132: EQ 00000133: PUSH2 0x0947 00000136: JUMPI 00000137: DUP1 00000138: PUSH4 0x95d89b41 0000013d: EQ 0000013e: PUSH2 0x0846 00000141: JUMPI 00000142: DUP1 00000143: PUSH4 0xa9059cbb 00000148: EQ 00000149: PUSH2 0x07b8 0000014c: JUMPI 0000014d: DUP1 0000014e: PUSH4 0xb3d7f6b9 00000153: EQ 00000154: PUSH2 0x079a 00000157: JUMPI 00000158: DUP1 00000159: PUSH4 0xb460af94 0000015e: EQ 0000015f: PUSH2 0x0717 00000162: JUMPI 00000163: DUP1 00000164: PUSH4 0xba087652 00000169: EQ 0000016a: PUSH2 0x065a 0000016d: JUMPI 0000016e: DUP1 0000016f: PUSH4 0xc63d75b6 00000174: EQ 00000175: PUSH2 0x0616 00000178: JUMPI 00000179: DUP1 0000017a: PUSH4 0xc6e6f592 0000017f: EQ 00000180: PUSH2 0x0361 00000183: JUMPI 00000184: DUP1 00000185: PUSH4 0xc89039c5 0000018a: EQ 0000018b: PUSH2 0x05e2 0000018e: JUMPI 0000018f: DUP1 00000190: PUSH4 0xce96cb77 00000195: EQ 00000196: PUSH2 0x05af 00000199: JUMPI 0000019a: DUP1 0000019b: PUSH4 0xd505accf 000001a0: EQ 000001a1: PUSH2 0x03f9 000001a4: JUMPI 000001a5: DUP1 000001a6: PUSH4 0xd905777e 000001ab: EQ 000001ac: PUSH2 0x03c6 000001af: JUMPI 000001b0: DUP1 000001b1: PUSH4 0xdd62ed3e 000001b6: EQ 000001b7: PUSH2 0x0387 000001ba: JUMPI 000001bb: DUP1 000001bc: PUSH4 0xef8b30f7 000001c1: EQ 000001c2: PUSH2 0x0361 000001c5: JUMPI 000001c6: DUP1 000001c7: PUSH4 0xf04e283e 000001cc: EQ 000001cd: PUSH2 0x02b7 000001d0: JUMPI 000001d1: DUP1 000001d2: PUSH4 0xf2fde38b 000001d7: EQ 000001d8: PUSH2 0x0222 000001db: JUMPI 000001dc: PUSH4 0xfee81cf4 000001e1: EQ 000001e2: PUSH2 0x01ea 000001e5: JUMPI 000001e6: PUSH1 0x00 000001e8: DUP1 000001e9: REVERT 000001ea: JUMPDEST 000001eb: CALLVALUE 000001ec: PUSH2 0x021d 000001ef: JUMPI 000001f0: PUSH1 0x20 000001f2: PUSH1 0x03 000001f4: NOT 000001f5: CALLDATASIZE 000001f6: ADD 000001f7: SLT 000001f8: PUSH2 0x021d 000001fb: JUMPI 000001fc: PUSH2 0x0203 000001ff: PUSH2 0x18f7 00000202: JUMP 00000203: JUMPDEST 00000204: PUSH4 0x389a75e1 00000209: PUSH1 0x0c 0000020b: MSTORE 0000020c: PUSH1 0x00 0000020e: MSTORE 0000020f: PUSH1 0x20 00000211: DUP1 00000212: PUSH1 0x0c 00000214: KECCAK256 00000215: SLOAD 00000216: PUSH1 0x40 00000218: MLOAD 00000219: SWAP1 0000021a: DUP2 0000021b: MSTORE 0000021c: RETURN 0000021d: JUMPDEST 0000021e: PUSH1 0x00 00000220: DUP1 00000221: REVERT 00000222: JUMPDEST 00000223: PUSH1 0x20 00000225: PUSH1 0x03 00000227: NOT 00000228: CALLDATASIZE 00000229: ADD 0000022a: SLT 0000022b: PUSH2 0x021d 0000022e: JUMPI 0000022f: PUSH2 0x0236 00000232: PUSH2 0x18f7 00000235: JUMP 00000236: JUMPDEST 00000237: PUSH2 0x023e 0000023a: PUSH2 0x1c91 0000023d: JUMP 0000023e: JUMPDEST 0000023f: DUP1 00000240: PUSH1 0x60 00000242: SHL 00000243: ISZERO 00000244: PUSH2 0x02a9 00000247: JUMPI 00000248: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000025d: AND 0000025e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927 0000027f: DUP2 00000280: DUP2 00000281: SLOAD 00000282: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000002a3: PUSH1 0x00 000002a5: DUP1 000002a6: LOG3 000002a7: SSTORE 000002a8: STOP 000002a9: JUMPDEST 000002aa: PUSH4 0x7448fbae 000002af: PUSH1 0x00 000002b1: MSTORE 000002b2: PUSH1 0x04 000002b4: PUSH1 0x1c 000002b6: REVERT 000002b7: JUMPDEST 000002b8: PUSH1 0x20 000002ba: PUSH1 0x03 000002bc: NOT 000002bd: CALLDATASIZE 000002be: ADD 000002bf: SLT 000002c0: PUSH2 0x021d 000002c3: JUMPI 000002c4: PUSH2 0x02cb 000002c7: PUSH2 0x18f7 000002ca: JUMP 000002cb: JUMPDEST 000002cc: PUSH2 0x02d3 000002cf: PUSH2 0x1c91 000002d2: JUMP 000002d3: JUMPDEST 000002d4: PUSH4 0x389a75e1 000002d9: PUSH1 0x0c 000002db: MSTORE 000002dc: DUP1 000002dd: PUSH1 0x00 000002df: MSTORE 000002e0: PUSH1 0x20 000002e2: PUSH1 0x0c 000002e4: KECCAK256 000002e5: SWAP1 000002e6: DUP2 000002e7: SLOAD 000002e8: TIMESTAMP 000002e9: GT 000002ea: PUSH2 0x0353 000002ed: JUMPI 000002ee: PUSH1 0x00 000002f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000305: SWAP3 00000306: SSTORE 00000307: AND 00000308: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927 00000329: DUP2 0000032a: DUP2 0000032b: SLOAD 0000032c: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 0000034d: PUSH1 0x00 0000034f: DUP1 00000350: LOG3 00000351: SSTORE 00000352: STOP 00000353: JUMPDEST 00000354: PUSH4 0x6f5e8818 00000359: PUSH1 0x00 0000035b: MSTORE 0000035c: PUSH1 0x04 0000035e: PUSH1 0x1c 00000360: REVERT 00000361: JUMPDEST 00000362: CALLVALUE 00000363: PUSH2 0x021d 00000366: JUMPI 00000367: PUSH1 0x20 00000369: PUSH1 0x03 0000036b: NOT 0000036c: CALLDATASIZE 0000036d: ADD 0000036e: SLT 0000036f: PUSH2 0x021d 00000372: JUMPI 00000373: PUSH1 0x20 00000375: PUSH2 0x037f 00000378: PUSH1 0x04 0000037a: CALLDATALOAD 0000037b: PUSH2 0x1c65 0000037e: JUMP 0000037f: JUMPDEST 00000380: PUSH1 0x40 00000382: MLOAD 00000383: SWAP1 00000384: DUP2 00000385: MSTORE 00000386: RETURN 00000387: JUMPDEST 00000388: CALLVALUE 00000389: PUSH2 0x021d 0000038c: JUMPI 0000038d: PUSH1 0x40 0000038f: PUSH1 0x03 00000391: NOT 00000392: CALLDATASIZE 00000393: ADD 00000394: SLT 00000395: PUSH2 0x021d 00000398: JUMPI 00000399: PUSH2 0x03a0 0000039c: PUSH2 0x18f7 0000039f: JUMP 000003a0: JUMPDEST 000003a1: PUSH2 0x03a8 000003a4: PUSH2 0x191a 000003a7: JUMP 000003a8: JUMPDEST 000003a9: PUSH1 0x20 000003ab: MSTORE 000003ac: PUSH4 0x7f5e9f20 000003b1: PUSH1 0x0c 000003b3: MSTORE 000003b4: PUSH1 0x00 000003b6: MSTORE 000003b7: PUSH1 0x20 000003b9: PUSH1 0x34 000003bb: PUSH1 0x0c 000003bd: KECCAK256 000003be: SLOAD 000003bf: PUSH1 0x40 000003c1: MLOAD 000003c2: SWAP1 000003c3: DUP2 000003c4: MSTORE 000003c5: RETURN 000003c6: JUMPDEST 000003c7: CALLVALUE 000003c8: PUSH2 0x021d 000003cb: JUMPI 000003cc: PUSH1 0x20 000003ce: PUSH1 0x03 000003d0: NOT 000003d1: CALLDATASIZE 000003d2: ADD 000003d3: SLT 000003d4: PUSH2 0x021d 000003d7: JUMPI 000003d8: PUSH2 0x03df 000003db: PUSH2 0x18f7 000003de: JUMP 000003df: JUMPDEST 000003e0: PUSH4 0x87a211a2 000003e5: PUSH1 0x0c 000003e7: MSTORE 000003e8: PUSH1 0x00 000003ea: MSTORE 000003eb: PUSH1 0x20 000003ed: DUP1 000003ee: PUSH1 0x0c 000003f0: KECCAK256 000003f1: SLOAD 000003f2: PUSH1 0x40 000003f4: MLOAD 000003f5: SWAP1 000003f6: DUP2 000003f7: MSTORE 000003f8: RETURN 000003f9: JUMPDEST 000003fa: CALLVALUE 000003fb: PUSH2 0x021d 000003fe: JUMPI 000003ff: PUSH1 0xe0 00000401: PUSH1 0x03 00000403: NOT 00000404: CALLDATASIZE 00000405: ADD 00000406: SLT 00000407: PUSH2 0x021d 0000040a: JUMPI 0000040b: PUSH2 0x0412 0000040e: PUSH2 0x18f7 00000411: JUMP 00000412: JUMPDEST 00000413: PUSH2 0x041a 00000416: PUSH2 0x191a 00000419: JUMP 0000041a: JUMPDEST 0000041b: PUSH1 0x44 0000041d: CALLDATALOAD 0000041e: PUSH1 0x64 00000420: CALLDATALOAD 00000421: SWAP1 00000422: PUSH1 0x84 00000424: CALLDATALOAD 00000425: SWAP4 00000426: PUSH1 0xff 00000428: DUP6 00000429: AND 0000042a: DUP6 0000042b: SUB 0000042c: PUSH2 0x021d 0000042f: JUMPI 00000430: PUSH2 0x0437 00000433: PUSH2 0x1ace 00000436: JUMP 00000437: JUMPDEST 00000438: SWAP2 00000439: DUP3 0000043a: MLOAD 0000043b: PUSH1 0x20 0000043d: DUP1 0000043e: SWAP5 0000043f: ADD 00000440: KECCAK256 00000441: SWAP2 00000442: DUP5 00000443: TIMESTAMP 00000444: GT 00000445: PUSH2 0x05a1 00000448: JUMPI 00000449: PUSH1 0x40 0000044b: MLOAD 0000044c: SWAP1 0000044d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000462: DUP1 00000463: SWAP2 00000464: AND 00000465: SWAP7 00000466: AND 00000467: SWAP7 00000468: PUSH6 0x383775081901 0000046f: PUSH1 0x0e 00000471: MSTORE 00000472: DUP7 00000473: PUSH1 0x00 00000475: MSTORE 00000476: PUSH1 0xc0 00000478: DUP6 00000479: PUSH1 0x0c 0000047b: KECCAK256 0000047c: SWAP3 0000047d: DUP4 0000047e: SLOAD 0000047f: SWAP8 00000480: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 000004a1: DUP3 000004a2: MSTORE 000004a3: DUP8 000004a4: DUP3 000004a5: ADD 000004a6: SWAP7 000004a7: DUP8 000004a8: MSTORE 000004a9: DUP9 000004aa: PUSH1 0x40 000004ac: DUP4 000004ad: ADD 000004ae: SWAP8 000004af: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6 000004d0: DUP10 000004d1: MSTORE 000004d2: DUP13 000004d3: PUSH1 0x60 000004d5: DUP6 000004d6: ADD 000004d7: SWAP10 000004d8: CHAINID 000004d9: DUP12 000004da: MSTORE 000004db: DUP14 000004dc: PUSH1 0x80 000004de: DUP8 000004df: ADD 000004e0: SWAP4 000004e1: ADDRESS 000004e2: DUP6 000004e3: MSTORE 000004e4: PUSH1 0xa0 000004e6: DUP9 000004e7: KECCAK256 000004e8: PUSH1 0x2e 000004ea: MSTORE 000004eb: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9 0000050c: DUP9 0000050d: MSTORE 0000050e: MSTORE 0000050f: MSTORE 00000510: DUP8 00000511: DUP10 00000512: MSTORE 00000513: MSTORE 00000514: PUSH1 0xa0 00000516: DUP3 00000517: ADD 00000518: MSTORE 00000519: KECCAK256 0000051a: PUSH1 0x4e 0000051c: MSTORE 0000051d: PUSH1 0x42 0000051f: PUSH1 0x2c 00000521: KECCAK256 00000522: PUSH1 0x00 00000524: MSTORE 00000525: PUSH1 0xff 00000527: AND 00000528: DUP5 00000529: MSTORE 0000052a: PUSH1 0xa4 0000052c: CALLDATALOAD 0000052d: PUSH1 0x40 0000052f: MSTORE 00000530: PUSH1 0xc4 00000532: CALLDATALOAD 00000533: PUSH1 0x60 00000535: MSTORE 00000536: DUP4 00000537: DUP1 00000538: PUSH1 0x80 0000053a: PUSH1 0x00 0000053c: PUSH1 0x01 0000053e: GAS 0000053f: STATICCALL 00000540: DUP7 00000541: RETURNDATASIZE 00000542: MLOAD 00000543: SUB 00000544: PUSH2 0x0593 00000547: JUMPI 00000548: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 00000569: SWAP6 0000056a: ADD 0000056b: SWAP1 0000056c: SSTORE 0000056d: DUP6 0000056e: PUSH24 0x7f5e9f200000000000000000000000000000000000000000 00000587: OR 00000588: PUSH1 0x40 0000058a: MSTORE 0000058b: PUSH1 0x34 0000058d: PUSH1 0x2c 0000058f: KECCAK256 00000590: SSTORE 00000591: LOG3 00000592: STOP 00000593: JUMPDEST 00000594: PUSH4 0xddafbaef 00000599: PUSH1 0x00 0000059b: MSTORE 0000059c: PUSH1 0x04 0000059e: PUSH1 0x1c 000005a0: REVERT 000005a1: JUMPDEST 000005a2: PUSH4 0x1a15a3cc 000005a7: PUSH1 0x00 000005a9: MSTORE 000005aa: PUSH1 0x04 000005ac: PUSH1 0x1c 000005ae: REVERT 000005af: JUMPDEST 000005b0: CALLVALUE 000005b1: PUSH2 0x021d 000005b4: JUMPI 000005b5: PUSH1 0x20 000005b7: PUSH1 0x03 000005b9: NOT 000005ba: CALLDATASIZE 000005bb: ADD 000005bc: SLT 000005bd: PUSH2 0x021d 000005c0: JUMPI 000005c1: PUSH2 0x05c8 000005c4: PUSH2 0x18f7 000005c7: JUMP 000005c8: JUMPDEST 000005c9: PUSH4 0x87a211a2 000005ce: PUSH1 0x0c 000005d0: MSTORE 000005d1: PUSH1 0x00 000005d3: MSTORE 000005d4: PUSH1 0x20 000005d6: PUSH2 0x037f 000005d9: DUP2 000005da: PUSH1 0x0c 000005dc: KECCAK256 000005dd: SLOAD 000005de: PUSH2 0x1bb3 000005e1: JUMP 000005e2: JUMPDEST 000005e3: CALLVALUE 000005e4: PUSH2 0x021d 000005e7: JUMPI 000005e8: PUSH1 0x00 000005ea: PUSH1 0x03 000005ec: NOT 000005ed: CALLDATASIZE 000005ee: ADD 000005ef: SLT 000005f0: PUSH2 0x021d 000005f3: JUMPI 000005f4: PUSH1 0x20 000005f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000060b: PUSH1 0x00 0000060d: SLOAD 0000060e: AND 0000060f: PUSH1 0x40 00000611: MLOAD 00000612: SWAP1 00000613: DUP2 00000614: MSTORE 00000615: RETURN 00000616: JUMPDEST 00000617: CALLVALUE 00000618: PUSH2 0x021d 0000061b: JUMPI 0000061c: PUSH1 0x20 0000061e: PUSH1 0x03 00000620: NOT 00000621: CALLDATASIZE 00000622: ADD 00000623: SLT 00000624: PUSH2 0x021d 00000627: JUMPI 00000628: PUSH2 0x062f 0000062b: PUSH2 0x18f7 0000062e: JUMP 0000062f: JUMPDEST 00000630: POP 00000631: PUSH1 0x20 00000633: PUSH1 0x40 00000635: MLOAD 00000636: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000657: DUP2 00000658: MSTORE 00000659: RETURN 0000065a: JUMPDEST 0000065b: CALLVALUE 0000065c: PUSH2 0x021d 0000065f: JUMPI 00000660: PUSH2 0x0668 00000663: CALLDATASIZE 00000664: PUSH2 0x19f3 00000667: JUMP 00000668: JUMPDEST 00000669: SWAP1 0000066a: PUSH2 0x0671 0000066d: PUSH2 0x1c91 00000670: JUMP 00000671: JUMPDEST 00000672: PUSH9 0x929eee149b4bd21268 0000067c: SWAP1 0000067d: ADDRESS 0000067e: DUP3 0000067f: SLOAD 00000680: EQ 00000681: PUSH2 0x0709 00000684: JUMPI 00000685: ADDRESS 00000686: DUP3 00000687: SSTORE 00000688: PUSH2 0x068f 0000068b: PUSH2 0x1db6 0000068e: JUMP 0000068f: JUMPDEST 00000690: DUP4 00000691: ISZERO 00000692: PUSH2 0x06df 00000695: JUMPI 00000696: PUSH4 0x87a211a2 0000069b: PUSH1 0x0c 0000069d: MSTORE 0000069e: DUP3 0000069f: PUSH1 0x00 000006a1: MSTORE 000006a2: PUSH1 0x20 000006a4: PUSH1 0x0c 000006a6: KECCAK256 000006a7: SLOAD 000006a8: DUP5 000006a9: GT 000006aa: PUSH2 0x06d1 000006ad: JUMPI 000006ae: DUP4 000006af: PUSH2 0x06c6 000006b2: SWAP2 000006b3: PUSH2 0x06bd 000006b6: PUSH1 0x20 000006b8: SWAP7 000006b9: PUSH2 0x1bb3 000006bc: JUMP 000006bd: JUMPDEST 000006be: SWAP5 000006bf: DUP6 000006c0: SWAP2 000006c1: CALLER 000006c2: PUSH2 0x1f75 000006c5: JUMP 000006c6: JUMPDEST 000006c7: CODESIZE 000006c8: SWAP1 000006c9: SSTORE 000006ca: PUSH1 0x40 000006cc: MLOAD 000006cd: SWAP1 000006ce: DUP2 000006cf: MSTORE 000006d0: RETURN 000006d1: JUMPDEST 000006d2: PUSH4 0x4656425a 000006d7: PUSH1 0x00 000006d9: MSTORE 000006da: PUSH1 0x04 000006dc: PUSH1 0x1c 000006de: REVERT 000006df: JUMPDEST 000006e0: PUSH1 0x04 000006e2: PUSH1 0x40 000006e4: MLOAD 000006e5: PUSH32 0x1f2a200500000000000000000000000000000000000000000000000000000000 00000706: DUP2 00000707: MSTORE 00000708: REVERT 00000709: JUMPDEST 0000070a: PUSH4 0xab143c06 0000070f: PUSH1 0x00 00000711: MSTORE 00000712: PUSH1 0x04 00000714: PUSH1 0x1c 00000716: REVERT 00000717: JUMPDEST 00000718: CALLVALUE 00000719: PUSH2 0x021d 0000071c: JUMPI 0000071d: PUSH2 0x0725 00000720: CALLDATASIZE 00000721: PUSH2 0x19f3 00000724: JUMP 00000725: JUMPDEST 00000726: SWAP1 00000727: SWAP2 00000728: PUSH2 0x072f 0000072b: PUSH2 0x1c91 0000072e: JUMP 0000072f: JUMPDEST 00000730: PUSH2 0x0737 00000733: PUSH2 0x1db6 00000736: JUMP 00000737: JUMPDEST 00000738: PUSH9 0x929eee149b4bd21268 00000742: SWAP1 00000743: ADDRESS 00000744: DUP3 00000745: SLOAD 00000746: EQ 00000747: PUSH2 0x0709 0000074a: JUMPI 0000074b: ADDRESS 0000074c: DUP3 0000074d: SSTORE 0000074e: DUP1 0000074f: ISZERO 00000750: PUSH2 0x06df 00000753: JUMPI 00000754: PUSH4 0x87a211a2 00000759: PUSH1 0x0c 0000075b: MSTORE 0000075c: DUP3 0000075d: PUSH1 0x00 0000075f: MSTORE 00000760: PUSH2 0x076d 00000763: PUSH1 0x20 00000765: PUSH1 0x0c 00000767: KECCAK256 00000768: SLOAD 00000769: PUSH2 0x1bb3 0000076c: JUMP 0000076d: JUMPDEST 0000076e: DUP2 0000076f: GT 00000770: PUSH2 0x078c 00000773: JUMPI 00000774: PUSH1 0x20 00000776: SWAP4 00000777: DUP2 00000778: PUSH2 0x0783 0000077b: PUSH2 0x06c6 0000077e: SWAP4 0000077f: PUSH2 0x1be2 00000782: JUMP 00000783: JUMPDEST 00000784: SWAP5 00000785: DUP6 00000786: SWAP3 00000787: CALLER 00000788: PUSH2 0x1f75 0000078b: JUMP 0000078c: JUMPDEST 0000078d: PUSH4 0x936941fc 00000792: PUSH1 0x00 00000794: MSTORE 00000795: PUSH1 0x04 00000797: PUSH1 0x1c 00000799: REVERT 0000079a: JUMPDEST 0000079b: CALLVALUE 0000079c: PUSH2 0x021d 0000079f: JUMPI 000007a0: PUSH1 0x20 000007a2: PUSH1 0x03 000007a4: NOT 000007a5: CALLDATASIZE 000007a6: ADD 000007a7: SLT 000007a8: PUSH2 0x021d 000007ab: JUMPI 000007ac: PUSH1 0x20 000007ae: PUSH2 0x037f 000007b1: PUSH1 0x04 000007b3: CALLDATALOAD 000007b4: PUSH2 0x1c39 000007b7: JUMP 000007b8: JUMPDEST 000007b9: CALLVALUE 000007ba: PUSH2 0x021d 000007bd: JUMPI 000007be: PUSH1 0x40 000007c0: PUSH1 0x03 000007c2: NOT 000007c3: CALLDATASIZE 000007c4: ADD 000007c5: SLT 000007c6: PUSH2 0x021d 000007c9: JUMPI 000007ca: PUSH2 0x07d1 000007cd: PUSH2 0x18f7 000007d0: JUMP 000007d1: JUMPDEST 000007d2: PUSH1 0x24 000007d4: CALLDATALOAD 000007d5: PUSH4 0x87a211a2 000007da: PUSH1 0x0c 000007dc: MSTORE 000007dd: CALLER 000007de: PUSH1 0x00 000007e0: MSTORE 000007e1: PUSH1 0x20 000007e3: SWAP2 000007e4: DUP3 000007e5: PUSH1 0x0c 000007e7: KECCAK256 000007e8: DUP1 000007e9: SLOAD 000007ea: DUP1 000007eb: DUP5 000007ec: GT 000007ed: PUSH2 0x0838 000007f0: JUMPI 000007f1: DUP4 000007f2: SWAP1 000007f3: SUB 000007f4: SWAP1 000007f5: SSTORE 000007f6: PUSH1 0x00 000007f8: MSTORE 000007f9: DUP2 000007fa: PUSH1 0x0c 000007fc: KECCAK256 000007fd: DUP2 000007fe: DUP2 000007ff: SLOAD 00000800: ADD 00000801: SWAP1 00000802: SSTORE 00000803: DUP2 00000804: MSTORE 00000805: PUSH1 0x0c 00000807: MLOAD 00000808: PUSH1 0x60 0000080a: SHR 0000080b: CALLER 0000080c: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 0000082d: DUP4 0000082e: DUP1 0000082f: LOG3 00000830: PUSH1 0x40 00000832: MLOAD 00000833: PUSH1 0x01 00000835: DUP2 00000836: MSTORE 00000837: RETURN 00000838: JUMPDEST 00000839: PUSH4 0xf4d678b8 0000083e: PUSH1 0x00 00000840: MSTORE 00000841: PUSH1 0x04 00000843: PUSH1 0x1c 00000845: REVERT 00000846: JUMPDEST 00000847: CALLVALUE 00000848: PUSH2 0x021d 0000084b: JUMPI 0000084c: PUSH1 0x00 0000084e: PUSH1 0x03 00000850: NOT 00000851: CALLDATASIZE 00000852: ADD 00000853: SLT 00000854: PUSH2 0x021d 00000857: JUMPI 00000858: PUSH1 0x40 0000085a: MLOAD 0000085b: PUSH1 0x00 0000085d: PUSH1 0x04 0000085f: SLOAD 00000860: PUSH2 0x0868 00000863: DUP2 00000864: PUSH2 0x1a7b 00000867: JUMP 00000868: JUMPDEST 00000869: DUP1 0000086a: DUP5 0000086b: MSTORE 0000086c: SWAP1 0000086d: PUSH1 0x20 0000086f: SWAP1 00000870: PUSH1 0x01 00000872: SWAP1 00000873: DUP2 00000874: DUP2 00000875: AND 00000876: SWAP1 00000877: DUP2 00000878: ISZERO 00000879: PUSH2 0x08ff 0000087c: JUMPI 0000087d: POP 0000087e: PUSH1 0x01 00000880: EQ 00000881: PUSH2 0x08a5 00000884: JUMPI 00000885: JUMPDEST 00000886: PUSH2 0x08a1 00000889: DUP6 0000088a: PUSH2 0x0895 0000088d: DUP2 0000088e: DUP8 0000088f: SUB 00000890: DUP3 00000891: PUSH2 0x193d 00000894: JUMP 00000895: JUMPDEST 00000896: PUSH1 0x40 00000898: MLOAD 00000899: SWAP2 0000089a: DUP3 0000089b: SWAP2 0000089c: DUP3 0000089d: PUSH2 0x1891 000008a0: JUMP 000008a1: JUMPDEST 000008a2: SUB 000008a3: SWAP1 000008a4: RETURN 000008a5: JUMPDEST 000008a6: PUSH1 0x04 000008a8: PUSH1 0x00 000008aa: SWAP1 000008ab: DUP2 000008ac: MSTORE 000008ad: SWAP4 000008ae: POP 000008af: PUSH32 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b 000008d0: JUMPDEST 000008d1: DUP4 000008d2: DUP6 000008d3: LT 000008d4: PUSH2 0x08ec 000008d7: JUMPI 000008d8: POP 000008d9: POP 000008da: POP 000008db: POP 000008dc: DUP2 000008dd: ADD 000008de: PUSH1 0x20 000008e0: ADD 000008e1: PUSH2 0x0895 000008e4: DUP3 000008e5: PUSH2 0x08a1 000008e8: PUSH2 0x0885 000008eb: JUMP 000008ec: JUMPDEST 000008ed: DUP1 000008ee: SLOAD 000008ef: DUP7 000008f0: DUP7 000008f1: ADD 000008f2: DUP5 000008f3: ADD 000008f4: MSTORE 000008f5: SWAP4 000008f6: DUP3 000008f7: ADD 000008f8: SWAP4 000008f9: DUP2 000008fa: ADD 000008fb: PUSH2 0x08d0 000008fe: JUMP 000008ff: JUMPDEST 00000900: DUP7 00000901: SWAP6 00000902: POP 00000903: PUSH2 0x08a1 00000906: SWAP7 00000907: SWAP4 00000908: POP 00000909: PUSH1 0x20 0000090b: SWAP3 0000090c: POP 0000090d: PUSH2 0x0895 00000910: SWAP5 00000911: SWAP2 00000912: POP 00000913: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00000934: AND 00000935: DUP3 00000936: DUP5 00000937: ADD 00000938: MSTORE 00000939: ISZERO 0000093a: ISZERO 0000093b: PUSH1 0x05 0000093d: SHL 0000093e: DUP3 0000093f: ADD 00000940: ADD 00000941: SWAP3 00000942: SWAP4 00000943: PUSH2 0x0885 00000946: JUMP 00000947: JUMPDEST 00000948: CALLVALUE 00000949: PUSH2 0x021d 0000094c: JUMPI 0000094d: PUSH1 0x40 0000094f: PUSH1 0x03 00000951: NOT 00000952: CALLDATASIZE 00000953: ADD 00000954: SLT 00000955: PUSH2 0x021d 00000958: JUMPI 00000959: PUSH1 0x04 0000095b: CALLDATALOAD 0000095c: PUSH2 0x0963 0000095f: PUSH2 0x191a 00000962: JUMP 00000963: JUMPDEST 00000964: PUSH2 0x096b 00000967: PUSH2 0x1c91 0000096a: JUMP 0000096b: JUMPDEST 0000096c: PUSH2 0x0973 0000096f: PUSH2 0x1db6 00000972: JUMP 00000973: JUMPDEST 00000974: PUSH9 0x929eee149b4bd21268 0000097e: ADDRESS 0000097f: DUP2 00000980: SLOAD 00000981: EQ 00000982: PUSH2 0x0709 00000985: JUMPI 00000986: PUSH2 0x06c6 00000989: PUSH1 0x20 0000098b: SWAP4 0000098c: ADDRESS 0000098d: DUP4 0000098e: SSTORE 0000098f: PUSH2 0x0997 00000992: DUP2 00000993: PUSH2 0x1c39 00000996: JUMP 00000997: JUMPDEST 00000998: DUP1 00000999: SWAP5 0000099a: CALLER 0000099b: PUSH2 0x1e0b 0000099e: JUMP 0000099f: JUMPDEST 000009a0: CALLVALUE 000009a1: PUSH2 0x021d 000009a4: JUMPI 000009a5: PUSH1 0x00 000009a7: PUSH1 0x03 000009a9: NOT 000009aa: CALLDATASIZE 000009ab: ADD 000009ac: SLT 000009ad: PUSH2 0x021d 000009b0: JUMPI 000009b1: PUSH1 0x20 000009b3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927 000009d4: SLOAD 000009d5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009ea: PUSH1 0x40 000009ec: MLOAD 000009ed: SWAP2 000009ee: AND 000009ef: DUP2 000009f0: MSTORE 000009f1: RETURN 000009f2: JUMPDEST 000009f3: CALLVALUE 000009f4: PUSH2 0x021d 000009f7: JUMPI 000009f8: PUSH1 0xa0 000009fa: PUSH1 0x03 000009fc: NOT 000009fd: CALLDATASIZE 000009fe: ADD 000009ff: SLT 00000a00: PUSH2 0x021d 00000a03: JUMPI 00000a04: PUSH2 0x0a0b 00000a07: PUSH2 0x18f7 00000a0a: JUMP 00000a0b: JUMPDEST 00000a0c: PUSH1 0x24 00000a0e: CALLDATALOAD 00000a0f: SWAP1 00000a10: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a25: DUP1 00000a26: DUP4 00000a27: AND 00000a28: DUP4 00000a29: SUB 00000a2a: PUSH2 0x021d 00000a2d: JUMPI 00000a2e: PUSH1 0x44 00000a30: CALLDATALOAD 00000a31: PUSH8 0xffffffffffffffff 00000a3a: DUP2 00000a3b: GT 00000a3c: PUSH2 0x021d 00000a3f: JUMPI 00000a40: PUSH2 0x0a4d 00000a43: SWAP1 00000a44: CALLDATASIZE 00000a45: SWAP1 00000a46: PUSH1 0x04 00000a48: ADD 00000a49: PUSH2 0x197e 00000a4c: JUMP 00000a4d: JUMPDEST 00000a4e: SWAP3 00000a4f: PUSH1 0x64 00000a51: CALLDATALOAD 00000a52: PUSH8 0xffffffffffffffff 00000a5b: DUP2 00000a5c: GT 00000a5d: PUSH2 0x021d 00000a60: JUMPI 00000a61: PUSH2 0x0a6e 00000a64: SWAP1 00000a65: CALLDATASIZE 00000a66: SWAP1 00000a67: PUSH1 0x04 00000a69: ADD 00000a6a: PUSH2 0x197e 00000a6d: JUMP 00000a6e: JUMPDEST 00000a6f: PUSH1 0x05 00000a71: PUSH1 0x84 00000a73: CALLDATALOAD 00000a74: LT 00000a75: ISZERO 00000a76: PUSH2 0x021d 00000a79: JUMPI 00000a7a: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 00000a9b: SLOAD 00000a9c: SWAP4 00000a9d: PUSH8 0xffffffffffffffff 00000aa6: DUP6 00000aa7: AND 00000aa8: DUP1 00000aa9: ISZERO 00000aaa: SWAP1 00000aab: DUP2 00000aac: PUSH2 0x11a3 00000aaf: JUMPI 00000ab0: JUMPDEST 00000ab1: PUSH1 0x01 00000ab3: EQ 00000ab4: SWAP1 00000ab5: DUP2 00000ab6: PUSH2 0x1199 00000ab9: JUMPI 00000aba: JUMPDEST 00000abb: ISZERO 00000abc: SWAP1 00000abd: DUP2 00000abe: PUSH2 0x1190 00000ac1: JUMPI 00000ac2: JUMPDEST 00000ac3: POP 00000ac4: PUSH2 0x1166 00000ac7: JUMPI 00000ac8: PUSH1 0x01 00000aca: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 00000aeb: DUP7 00000aec: AND 00000aed: OR 00000aee: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 00000b0f: SSTORE 00000b10: PUSH1 0xff 00000b12: DUP6 00000b13: PUSH1 0x40 00000b15: SHR 00000b16: AND 00000b17: ISZERO 00000b18: PUSH2 0x1111 00000b1b: JUMPI 00000b1c: JUMPDEST 00000b1d: PUSH1 0x84 00000b1f: CALLDATALOAD 00000b20: ISZERO 00000b21: PUSH2 0x10e7 00000b24: JUMPI 00000b25: DUP4 00000b26: AND 00000b27: DUP1 00000b28: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927 00000b49: SSTORE 00000b4a: PUSH1 0x00 00000b4c: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00000b6d: DUP2 00000b6e: DUP1 00000b6f: LOG3 00000b70: PUSH2 0x0b77 00000b73: PUSH2 0x1f1c 00000b76: JUMP 00000b77: JUMPDEST 00000b78: PUSH2 0x0b7f 00000b7b: PUSH2 0x1f1c 00000b7e: JUMP 00000b7f: JUMPDEST 00000b80: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 00000ba1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00000bc2: DUP2 00000bc3: SLOAD 00000bc4: AND 00000bc5: SWAP1 00000bc6: SSTORE 00000bc7: DUP3 00000bc8: DUP3 00000bc9: AND 00000bca: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000beb: PUSH1 0x00 00000bed: SLOAD 00000bee: AND 00000bef: OR 00000bf0: PUSH1 0x00 00000bf2: SSTORE 00000bf3: DUP5 00000bf4: MLOAD 00000bf5: PUSH8 0xffffffffffffffff 00000bfe: DUP2 00000bff: GT 00000c00: PUSH2 0x0f45 00000c03: JUMPI 00000c04: DUP1 00000c05: PUSH1 0x03 00000c07: SWAP7 00000c08: PUSH2 0x0c11 00000c0b: DUP9 00000c0c: SLOAD 00000c0d: PUSH2 0x1a7b 00000c10: JUMP 00000c11: JUMPDEST 00000c12: PUSH1 0x1f 00000c14: DUP2 00000c15: GT 00000c16: PUSH2 0x103b 00000c19: JUMPI 00000c1a: JUMPDEST 00000c1b: POP 00000c1c: PUSH1 0x20 00000c1e: SWAP1 00000c1f: PUSH1 0x1f 00000c21: DUP4 00000c22: GT 00000c23: PUSH1 0x01 00000c25: EQ 00000c26: PUSH2 0x0f7f 00000c29: JUMPI 00000c2a: PUSH1 0x00 00000c2c: SWAP3 00000c2d: PUSH2 0x0f74 00000c30: JUMPI 00000c31: JUMPDEST 00000c32: POP 00000c33: POP 00000c34: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000c55: DUP3 00000c56: PUSH1 0x01 00000c58: SHL 00000c59: SWAP3 00000c5a: DUP9 00000c5b: SHL 00000c5c: SHR 00000c5d: NOT 00000c5e: AND 00000c5f: OR 00000c60: DUP6 00000c61: SSTORE 00000c62: JUMPDEST 00000c63: DUP1 00000c64: MLOAD 00000c65: SWAP1 00000c66: PUSH8 0xffffffffffffffff 00000c6f: DUP3 00000c70: GT 00000c71: PUSH2 0x0f45 00000c74: JUMPI 00000c75: PUSH2 0x0c7f 00000c78: PUSH1 0x04 00000c7a: SLOAD 00000c7b: PUSH2 0x1a7b 00000c7e: JUMP 00000c7f: JUMPDEST 00000c80: PUSH1 0x1f 00000c82: DUP2 00000c83: GT 00000c84: PUSH2 0x0ee0 00000c87: JUMPI 00000c88: JUMPDEST 00000c89: POP 00000c8a: PUSH1 0x20 00000c8c: SWAP1 00000c8d: PUSH1 0x1f 00000c8f: DUP4 00000c90: GT 00000c91: PUSH1 0x01 00000c93: EQ 00000c94: PUSH2 0x0e0d 00000c97: JUMPI 00000c98: SWAP4 00000c99: PUSH1 0x00 00000c9b: SWAP4 00000c9c: PUSH1 0xff 00000c9e: SWAP8 00000c9f: DUP5 00000ca0: PUSH1 0x04 00000ca2: SWAP6 00000ca3: PUSH1 0x1c 00000ca5: SWAP6 00000ca6: PUSH1 0x20 00000ca8: SWAP10 00000ca9: DUP10 00000caa: SWAP4 00000cab: PUSH2 0x0de2 00000cae: JUMPI 00000caf: JUMPDEST 00000cb0: POP 00000cb1: POP 00000cb2: DUP1 00000cb3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000cd4: SWAP2 00000cd5: PUSH1 0x01 00000cd7: SHL 00000cd8: SWAP4 00000cd9: SHL 00000cda: SHR 00000cdb: NOT 00000cdc: AND 00000cdd: OR 00000cde: DUP5 00000cdf: SSTORE 00000ce0: JUMPDEST 00000ce1: PUSH4 0x313ce567 00000ce6: DUP6 00000ce7: MSTORE 00000ce8: AND 00000ce9: GAS 00000cea: STATICCALL 00000ceb: PUSH1 0x00 00000ced: MLOAD 00000cee: PUSH2 0x0100 00000cf1: DUP2 00000cf2: LT 00000cf3: PUSH1 0x1f 00000cf5: RETURNDATASIZE 00000cf6: GT 00000cf7: AND 00000cf8: SWAP1 00000cf9: SWAP2 00000cfa: AND 00000cfb: SWAP1 00000cfc: DUP2 00000cfd: ISZERO 00000cfe: PUSH2 0x0dd9 00000d01: JUMPI 00000d02: MUL 00000d03: JUMPDEST 00000d04: PUSH1 0x02 00000d06: SLOAD 00000d07: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 00000d28: PUSH2 0xff00 00000d2b: DUP6 00000d2c: PUSH1 0x84 00000d2e: CALLDATALOAD 00000d2f: AND 00000d30: SWAP4 00000d31: PUSH1 0x08 00000d33: SHL 00000d34: AND 00000d35: SWAP2 00000d36: AND 00000d37: OR 00000d38: OR 00000d39: PUSH1 0x02 00000d3b: SSTORE 00000d3c: PUSH1 0x40 00000d3e: SHR 00000d3f: AND 00000d40: ISZERO 00000d41: PUSH2 0x0d46 00000d44: JUMPI 00000d45: STOP 00000d46: JUMPDEST 00000d47: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff 00000d68: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 00000d89: SLOAD 00000d8a: AND 00000d8b: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 00000dac: SSTORE 00000dad: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2 00000dce: PUSH1 0x20 00000dd0: PUSH1 0x40 00000dd2: MLOAD 00000dd3: PUSH1 0x01 00000dd5: DUP2 00000dd6: MSTORE 00000dd7: LOG1 00000dd8: STOP 00000dd9: JUMPDEST 00000dda: POP 00000ddb: POP 00000ddc: PUSH1 0x12 00000dde: PUSH2 0x0d03 00000de1: JUMP 00000de2: JUMPDEST 00000de3: ADD 00000de4: MLOAD 00000de5: SWAP2 00000de6: POP 00000de7: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000e08: DUP13 00000e09: PUSH2 0x0caf 00000e0c: JUMP 00000e0d: JUMPDEST 00000e0e: SWAP1 00000e0f: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00000e30: DUP4 00000e31: AND 00000e32: SWAP2 00000e33: PUSH1 0x04 00000e35: PUSH1 0x00 00000e37: MSTORE 00000e38: PUSH32 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b 00000e59: SWAP3 00000e5a: PUSH1 0x00 00000e5c: JUMPDEST 00000e5d: DUP2 00000e5e: DUP2 00000e5f: LT 00000e60: PUSH2 0x0ec8 00000e63: JUMPI 00000e64: POP 00000e65: DUP5 00000e66: PUSH1 0x1c 00000e68: SWAP5 00000e69: PUSH1 0xff 00000e6b: SWAP11 00000e6c: PUSH1 0x20 00000e6e: SWAP10 00000e6f: SWAP6 00000e70: PUSH1 0x00 00000e72: SWAP10 00000e73: SWAP6 00000e74: DUP5 00000e75: PUSH1 0x04 00000e77: SWAP11 00000e78: PUSH1 0x01 00000e7a: SWAP8 00000e7b: LT 00000e7c: PUSH2 0x0e8f 00000e7f: JUMPI 00000e80: JUMPDEST 00000e81: POP 00000e82: POP 00000e83: POP 00000e84: POP 00000e85: POP 00000e86: DUP2 00000e87: SHL 00000e88: ADD 00000e89: DUP5 00000e8a: SSTORE 00000e8b: PUSH2 0x0ce0 00000e8e: JUMP 00000e8f: JUMPDEST 00000e90: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000eb1: SWAP3 00000eb2: PUSH1 0xf8 00000eb4: SWAP3 00000eb5: ADD 00000eb6: MLOAD 00000eb7: SWAP4 00000eb8: SHL 00000eb9: AND 00000eba: SHR 00000ebb: NOT 00000ebc: AND 00000ebd: SWAP1 00000ebe: SSTORE 00000ebf: DUP11 00000ec0: DUP1 00000ec1: DUP1 00000ec2: DUP1 00000ec3: DUP5 00000ec4: PUSH2 0x0e80 00000ec7: JUMP 00000ec8: JUMPDEST 00000ec9: SWAP3 00000eca: SWAP4 00000ecb: PUSH1 0x20 00000ecd: PUSH1 0x01 00000ecf: DUP2 00000ed0: SWAP3 00000ed1: DUP8 00000ed2: DUP7 00000ed3: ADD 00000ed4: MLOAD 00000ed5: DUP2 00000ed6: SSTORE 00000ed7: ADD 00000ed8: SWAP6 00000ed9: ADD 00000eda: SWAP4 00000edb: ADD 00000edc: PUSH2 0x0e5c 00000edf: JUMP 00000ee0: JUMPDEST 00000ee1: PUSH1 0x04 00000ee3: PUSH1 0x00 00000ee5: MSTORE 00000ee6: PUSH32 0x8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b 00000f07: PUSH1 0x1f 00000f09: DUP5 00000f0a: ADD 00000f0b: PUSH1 0x05 00000f0d: SHR 00000f0e: DUP2 00000f0f: ADD 00000f10: SWAP2 00000f11: PUSH1 0x20 00000f13: DUP6 00000f14: LT 00000f15: PUSH2 0x0f3b 00000f18: JUMPI 00000f19: JUMPDEST 00000f1a: PUSH1 0x1f 00000f1c: ADD 00000f1d: PUSH1 0x05 00000f1f: SHR 00000f20: ADD 00000f21: SWAP1 00000f22: JUMPDEST 00000f23: DUP2 00000f24: DUP2 00000f25: LT 00000f26: PUSH2 0x0f2f 00000f29: JUMPI 00000f2a: POP 00000f2b: PUSH2 0x0c88 00000f2e: JUMP 00000f2f: JUMPDEST 00000f30: PUSH1 0x00 00000f32: DUP2 00000f33: SSTORE 00000f34: PUSH1 0x01 00000f36: ADD 00000f37: PUSH2 0x0f22 00000f3a: JUMP 00000f3b: JUMPDEST 00000f3c: SWAP1 00000f3d: SWAP2 00000f3e: POP 00000f3f: DUP2 00000f40: SWAP1 00000f41: PUSH2 0x0f19 00000f44: JUMP 00000f45: JUMPDEST 00000f46: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00000f67: PUSH1 0x00 00000f69: MSTORE 00000f6a: PUSH1 0x41 00000f6c: PUSH1 0x04 00000f6e: MSTORE 00000f6f: PUSH1 0x24 00000f71: PUSH1 0x00 00000f73: REVERT 00000f74: JUMPDEST 00000f75: ADD 00000f76: MLOAD 00000f77: SWAP1 00000f78: POP 00000f79: DUP8 00000f7a: DUP1 00000f7b: PUSH2 0x0c31 00000f7e: JUMP 00000f7f: JUMPDEST 00000f80: PUSH1 0x00 00000f82: DUP10 00000f83: DUP2 00000f84: MSTORE 00000f85: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b 00000fa6: SWAP4 00000fa7: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00000fc8: AND 00000fc9: SWAP1 00000fca: JUMPDEST 00000fcb: DUP2 00000fcc: DUP2 00000fcd: LT 00000fce: PUSH2 0x1023 00000fd1: JUMPI 00000fd2: POP 00000fd3: SWAP1 00000fd4: DUP5 00000fd5: PUSH1 0x01 00000fd7: SWAP6 00000fd8: SWAP5 00000fd9: SWAP4 00000fda: SWAP3 00000fdb: LT 00000fdc: PUSH2 0x0fed 00000fdf: JUMPI 00000fe0: JUMPDEST 00000fe1: POP 00000fe2: POP 00000fe3: POP 00000fe4: DUP2 00000fe5: SHL 00000fe6: ADD 00000fe7: DUP6 00000fe8: SSTORE 00000fe9: PUSH2 0x0c62 00000fec: JUMP 00000fed: JUMPDEST 00000fee: ADD 00000fef: MLOAD 00000ff0: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001011: PUSH1 0xf8 00001013: DUP5 00001014: DUP12 00001015: SHL 00001016: AND 00001017: SHR 00001018: NOT 00001019: AND 0000101a: SWAP1 0000101b: SSTORE 0000101c: DUP8 0000101d: DUP1 0000101e: DUP1 0000101f: PUSH2 0x0fe0 00001022: JUMP 00001023: JUMPDEST 00001024: SWAP3 00001025: SWAP4 00001026: PUSH1 0x20 00001028: PUSH1 0x01 0000102a: DUP2 0000102b: SWAP3 0000102c: DUP8 0000102d: DUP7 0000102e: ADD 0000102f: MLOAD 00001030: DUP2 00001031: SSTORE 00001032: ADD 00001033: SWAP6 00001034: ADD 00001035: SWAP4 00001036: ADD 00001037: PUSH2 0x0fca 0000103a: JUMP 0000103b: JUMPDEST 0000103c: SWAP1 0000103d: SWAP2 0000103e: POP 0000103f: DUP8 00001040: PUSH1 0x00 00001042: MSTORE 00001043: PUSH1 0x1f 00001045: DUP4 00001046: ADD 00001047: PUSH1 0x05 00001049: SHR 0000104a: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b 0000106b: ADD 0000106c: SWAP1 0000106d: PUSH1 0x20 0000106f: DUP5 00001070: LT 00001071: PUSH2 0x10bf 00001074: JUMPI 00001075: JUMPDEST 00001076: SWAP1 00001077: PUSH1 0x1f 00001079: DUP5 0000107a: SWAP4 0000107b: SWAP3 0000107c: ADD 0000107d: PUSH1 0x05 0000107f: SHR 00001080: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b 000010a1: ADD 000010a2: SWAP1 000010a3: JUMPDEST 000010a4: DUP2 000010a5: DUP2 000010a6: LT 000010a7: PUSH2 0x10b0 000010aa: JUMPI 000010ab: POP 000010ac: PUSH2 0x0c1a 000010af: JUMP 000010b0: JUMPDEST 000010b1: PUSH1 0x00 000010b3: DUP2 000010b4: SSTORE 000010b5: DUP5 000010b6: SWAP4 000010b7: POP 000010b8: PUSH1 0x01 000010ba: ADD 000010bb: PUSH2 0x10a3 000010be: JUMP 000010bf: JUMPDEST 000010c0: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b 000010e1: SWAP2 000010e2: POP 000010e3: PUSH2 0x1075 000010e6: JUMP 000010e7: JUMPDEST 000010e8: PUSH1 0x04 000010ea: PUSH1 0x40 000010ec: MLOAD 000010ed: PUSH32 0x3f9f188e00000000000000000000000000000000000000000000000000000000 0000110e: DUP2 0000110f: MSTORE 00001110: REVERT 00001111: JUMPDEST 00001112: PUSH9 0x010000000000000001 0000111c: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffff000000000000000000 0000113d: DUP7 0000113e: AND 0000113f: OR 00001140: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 00001161: SSTORE 00001162: PUSH2 0x0b1c 00001165: JUMP 00001166: JUMPDEST 00001167: PUSH1 0x04 00001169: PUSH1 0x40 0000116b: MLOAD 0000116c: PUSH32 0xf92ee8a900000000000000000000000000000000000000000000000000000000 0000118d: DUP2 0000118e: MSTORE 0000118f: REVERT 00001190: JUMPDEST 00001191: SWAP1 00001192: POP 00001193: ISZERO 00001194: DUP8 00001195: PUSH2 0x0ac2 00001198: JUMP 00001199: JUMPDEST 0000119a: ADDRESS 0000119b: EXTCODESIZE 0000119c: ISZERO 0000119d: SWAP2 0000119e: POP 0000119f: PUSH2 0x0aba 000011a2: JUMP 000011a3: JUMPDEST 000011a4: PUSH1 0x40 000011a6: DUP8 000011a7: SWAP1 000011a8: SHR 000011a9: PUSH1 0xff 000011ab: AND 000011ac: ISZERO 000011ad: SWAP2 000011ae: POP 000011af: PUSH2 0x0ab0 000011b2: JUMP 000011b3: JUMPDEST 000011b4: CALLVALUE 000011b5: PUSH2 0x021d 000011b8: JUMPI 000011b9: PUSH1 0x20 000011bb: PUSH1 0x03 000011bd: NOT 000011be: CALLDATASIZE 000011bf: ADD 000011c0: SLT 000011c1: PUSH2 0x021d 000011c4: JUMPI 000011c5: PUSH2 0x11cc 000011c8: PUSH2 0x18f7 000011cb: JUMP 000011cc: JUMPDEST 000011cd: PUSH4 0x38377508 000011d2: PUSH1 0x0c 000011d4: MSTORE 000011d5: PUSH1 0x00 000011d7: MSTORE 000011d8: PUSH1 0x20 000011da: DUP1 000011db: PUSH1 0x0c 000011dd: KECCAK256 000011de: SLOAD 000011df: PUSH1 0x40 000011e1: MLOAD 000011e2: SWAP1 000011e3: DUP2 000011e4: MSTORE 000011e5: RETURN 000011e6: JUMPDEST 000011e7: PUSH1 0x00 000011e9: PUSH1 0x03 000011eb: NOT 000011ec: CALLDATASIZE 000011ed: ADD 000011ee: SLT 000011ef: PUSH2 0x021d 000011f2: JUMPI 000011f3: PUSH2 0x11fa 000011f6: PUSH2 0x1c91 000011f9: JUMP 000011fa: JUMPDEST 000011fb: PUSH1 0x00 000011fd: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927 0000121e: DUP2 0000121f: DUP2 00001220: SLOAD 00001221: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001242: DUP3 00001243: DUP1 00001244: LOG3 00001245: SSTORE 00001246: STOP 00001247: JUMPDEST 00001248: CALLVALUE 00001249: PUSH2 0x021d 0000124c: JUMPI 0000124d: PUSH1 0x40 0000124f: PUSH1 0x03 00001251: NOT 00001252: CALLDATASIZE 00001253: ADD 00001254: SLT 00001255: PUSH2 0x021d 00001258: JUMPI 00001259: PUSH1 0x04 0000125b: CALLDATALOAD 0000125c: PUSH2 0x1263 0000125f: PUSH2 0x191a 00001262: JUMP 00001263: JUMPDEST 00001264: SWAP1 00001265: PUSH2 0x126c 00001268: PUSH2 0x1c91 0000126b: JUMP 0000126c: JUMPDEST 0000126d: PUSH2 0x1274 00001270: PUSH2 0x1db6 00001273: JUMP 00001274: JUMPDEST 00001275: PUSH9 0x929eee149b4bd21268 0000127f: ADDRESS 00001280: DUP2 00001281: SLOAD 00001282: EQ 00001283: PUSH2 0x0709 00001286: JUMPI 00001287: ADDRESS 00001288: DUP2 00001289: SSTORE 0000128a: DUP2 0000128b: ISZERO 0000128c: PUSH2 0x06df 0000128f: JUMPI 00001290: PUSH2 0x1297 00001293: PUSH2 0x1c0e 00001296: JUMP 00001297: JUMPDEST 00001298: DUP3 00001299: GT 0000129a: PUSH2 0x12b6 0000129d: JUMPI 0000129e: PUSH2 0x06c6 000012a1: PUSH1 0x20 000012a3: SWAP4 000012a4: PUSH2 0x12ac 000012a7: DUP5 000012a8: PUSH2 0x1c65 000012ab: JUMP 000012ac: JUMPDEST 000012ad: SWAP4 000012ae: DUP5 000012af: SWAP2 000012b0: CALLER 000012b1: SWAP1 000012b2: PUSH2 0x1e0b 000012b5: JUMP 000012b6: JUMPDEST 000012b7: PUSH1 0x04 000012b9: PUSH1 0x40 000012bb: MLOAD 000012bc: PUSH32 0xb3c61a8300000000000000000000000000000000000000000000000000000000 000012dd: DUP2 000012de: MSTORE 000012df: REVERT 000012e0: JUMPDEST 000012e1: CALLVALUE 000012e2: PUSH2 0x021d 000012e5: JUMPI 000012e6: PUSH1 0x00 000012e8: PUSH1 0x03 000012ea: NOT 000012eb: CALLDATASIZE 000012ec: ADD 000012ed: SLT 000012ee: PUSH2 0x021d 000012f1: JUMPI 000012f2: PUSH1 0x20 000012f4: PUSH1 0xff 000012f6: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 00001317: SLOAD 00001318: AND 00001319: PUSH1 0x40 0000131b: MLOAD 0000131c: SWAP1 0000131d: ISZERO 0000131e: ISZERO 0000131f: DUP2 00001320: MSTORE 00001321: RETURN 00001322: JUMPDEST 00001323: PUSH1 0x00 00001325: PUSH1 0x03 00001327: NOT 00001328: CALLDATASIZE 00001329: ADD 0000132a: SLT 0000132b: PUSH2 0x021d 0000132e: JUMPI 0000132f: PUSH4 0x389a75e1 00001334: PUSH1 0x0c 00001336: MSTORE 00001337: CALLER 00001338: PUSH1 0x00 0000133a: MSTORE 0000133b: PUSH1 0x00 0000133d: PUSH1 0x20 0000133f: PUSH1 0x0c 00001341: KECCAK256 00001342: SSTORE 00001343: CALLER 00001344: PUSH32 0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92 00001365: PUSH1 0x00 00001367: DUP1 00001368: LOG2 00001369: STOP 0000136a: JUMPDEST 0000136b: CALLVALUE 0000136c: PUSH2 0x021d 0000136f: JUMPI 00001370: PUSH1 0x20 00001372: PUSH1 0x03 00001374: NOT 00001375: CALLDATASIZE 00001376: ADD 00001377: SLT 00001378: PUSH2 0x021d 0000137b: JUMPI 0000137c: PUSH1 0x20 0000137e: PUSH2 0x037f 00001381: PUSH1 0x04 00001383: CALLDATALOAD 00001384: PUSH2 0x1bb3 00001387: JUMP 00001388: JUMPDEST 00001389: CALLVALUE 0000138a: PUSH2 0x021d 0000138d: JUMPI 0000138e: PUSH1 0x20 00001390: PUSH1 0x03 00001392: NOT 00001393: CALLDATASIZE 00001394: ADD 00001395: SLT 00001396: PUSH2 0x021d 00001399: JUMPI 0000139a: PUSH2 0x13a1 0000139d: PUSH2 0x18f7 000013a0: JUMP 000013a1: JUMPDEST 000013a2: POP 000013a3: PUSH1 0x20 000013a5: PUSH2 0x037f 000013a8: PUSH2 0x1c0e 000013ab: JUMP 000013ac: JUMPDEST 000013ad: CALLVALUE 000013ae: PUSH2 0x021d 000013b1: JUMPI 000013b2: PUSH1 0x00 000013b4: PUSH1 0x03 000013b6: NOT 000013b7: CALLDATASIZE 000013b8: ADD 000013b9: SLT 000013ba: PUSH2 0x021d 000013bd: JUMPI 000013be: PUSH1 0xff 000013c0: PUSH1 0x02 000013c2: SLOAD 000013c3: AND 000013c4: PUSH1 0x40 000013c6: MLOAD 000013c7: PUSH1 0x05 000013c9: DUP3 000013ca: LT 000013cb: ISZERO 000013cc: PUSH2 0x13d6 000013cf: JUMPI 000013d0: PUSH1 0x20 000013d2: SWAP2 000013d3: DUP2 000013d4: MSTORE 000013d5: RETURN 000013d6: JUMPDEST 000013d7: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000013f8: PUSH1 0x00 000013fa: MSTORE 000013fb: PUSH1 0x21 000013fd: PUSH1 0x04 000013ff: MSTORE 00001400: PUSH1 0x24 00001402: PUSH1 0x00 00001404: REVERT 00001405: JUMPDEST 00001406: CALLVALUE 00001407: PUSH2 0x021d 0000140a: JUMPI 0000140b: PUSH1 0x00 0000140d: PUSH1 0x03 0000140f: NOT 00001410: CALLDATASIZE 00001411: ADD 00001412: SLT 00001413: PUSH2 0x021d 00001416: JUMPI 00001417: PUSH1 0x20 00001419: PUSH1 0xa0 0000141b: PUSH2 0x1422 0000141e: PUSH2 0x1ace 00001421: JUMP 00001422: JUMPDEST 00001423: DUP3 00001424: DUP2 00001425: MLOAD 00001426: SWAP2 00001427: ADD 00001428: KECCAK256 00001429: PUSH1 0x40 0000142b: MLOAD 0000142c: SWAP1 0000142d: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f 0000144e: DUP3 0000144f: MSTORE 00001450: DUP4 00001451: DUP3 00001452: ADD 00001453: MSTORE 00001454: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6 00001475: PUSH1 0x40 00001477: DUP3 00001478: ADD 00001479: MSTORE 0000147a: CHAINID 0000147b: PUSH1 0x60 0000147d: DUP3 0000147e: ADD 0000147f: MSTORE 00001480: ADDRESS 00001481: PUSH1 0x80 00001483: DUP3 00001484: ADD 00001485: MSTORE 00001486: KECCAK256 00001487: PUSH1 0x40 00001489: MLOAD 0000148a: SWAP1 0000148b: DUP2 0000148c: MSTORE 0000148d: RETURN 0000148e: JUMPDEST 0000148f: CALLVALUE 00001490: PUSH2 0x021d 00001493: JUMPI 00001494: PUSH1 0x00 00001496: PUSH1 0x03 00001498: NOT 00001499: CALLDATASIZE 0000149a: ADD 0000149b: SLT 0000149c: PUSH2 0x021d 0000149f: JUMPI 000014a0: PUSH1 0xff 000014a2: PUSH1 0x02 000014a4: SLOAD 000014a5: PUSH1 0x08 000014a7: SHR 000014a8: AND 000014a9: PUSH1 0xff 000014ab: DUP2 000014ac: GT 000014ad: PUSH2 0x14bb 000014b0: JUMPI 000014b1: PUSH1 0x20 000014b3: SWAP1 000014b4: PUSH1 0x40 000014b6: MLOAD 000014b7: SWAP1 000014b8: DUP2 000014b9: MSTORE 000014ba: RETURN 000014bb: JUMPDEST 000014bc: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000014dd: PUSH1 0x00 000014df: MSTORE 000014e0: PUSH1 0x11 000014e2: PUSH1 0x04 000014e4: MSTORE 000014e5: PUSH1 0x24 000014e7: PUSH1 0x00 000014e9: REVERT 000014ea: JUMPDEST 000014eb: CALLVALUE 000014ec: PUSH2 0x021d 000014ef: JUMPI 000014f0: PUSH1 0x20 000014f2: PUSH1 0x03 000014f4: NOT 000014f5: CALLDATASIZE 000014f6: ADD 000014f7: SLT 000014f8: PUSH2 0x021d 000014fb: JUMPI 000014fc: PUSH2 0x1503 000014ff: PUSH2 0x1c91 00001502: JUMP 00001503: JUMPDEST 00001504: PUSH1 0x04 00001506: CALLDATALOAD 00001507: PUSH1 0x01 00001509: SSTORE 0000150a: STOP 0000150b: JUMPDEST 0000150c: PUSH1 0x00 0000150e: PUSH1 0x03 00001510: NOT 00001511: CALLDATASIZE 00001512: ADD 00001513: SLT 00001514: PUSH2 0x021d 00001517: JUMPI 00001518: PUSH4 0x389a75e1 0000151d: PUSH1 0x0c 0000151f: MSTORE 00001520: CALLER 00001521: PUSH1 0x00 00001523: MSTORE 00001524: PUSH3 0x02a300 00001528: TIMESTAMP 00001529: ADD 0000152a: PUSH1 0x20 0000152c: PUSH1 0x0c 0000152e: KECCAK256 0000152f: SSTORE 00001530: CALLER 00001531: PUSH32 0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d 00001552: PUSH1 0x00 00001554: DUP1 00001555: LOG2 00001556: STOP 00001557: JUMPDEST 00001558: CALLVALUE 00001559: PUSH2 0x021d 0000155c: JUMPI 0000155d: PUSH1 0x60 0000155f: PUSH1 0x03 00001561: NOT 00001562: CALLDATASIZE 00001563: ADD 00001564: SLT 00001565: PUSH2 0x021d 00001568: JUMPI 00001569: PUSH2 0x1570 0000156c: PUSH2 0x18f7 0000156f: JUMP 00001570: JUMPDEST 00001571: PUSH2 0x1578 00001574: PUSH2 0x191a 00001577: JUMP 00001578: JUMPDEST 00001579: SWAP1 0000157a: PUSH1 0x44 0000157c: CALLDATALOAD 0000157d: SWAP2 0000157e: DUP2 0000157f: PUSH1 0x60 00001581: SHL 00001582: PUSH1 0x20 00001584: SWAP4 00001585: CALLER 00001586: DUP6 00001587: MSTORE 00001588: PUSH1 0x0c 0000158a: SWAP2 0000158b: PUSH4 0x7f5e9f20 00001590: DUP2 00001591: OR 00001592: DUP4 00001593: MSTORE 00001594: PUSH1 0x34 00001596: DUP4 00001597: KECCAK256 00001598: SWAP1 00001599: DUP2 0000159a: SLOAD 0000159b: SWAP2 0000159c: PUSH1 0x01 0000159e: DUP4 0000159f: ADD 000015a0: PUSH2 0x1617 000015a3: JUMPI 000015a4: JUMPDEST 000015a5: POP 000015a6: PUSH4 0x87a211a2 000015ab: OR 000015ac: DUP4 000015ad: MSTORE 000015ae: POP 000015af: DUP5 000015b0: DUP3 000015b1: KECCAK256 000015b2: DUP1 000015b3: SLOAD 000015b4: SWAP4 000015b5: SWAP1 000015b6: DUP5 000015b7: DUP4 000015b8: GT 000015b9: PUSH2 0x0838 000015bc: JUMPI 000015bd: DUP3 000015be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015d3: SWAP6 000015d4: SUB 000015d5: SWAP1 000015d6: SSTORE 000015d7: PUSH1 0x00 000015d9: MSTORE 000015da: DUP5 000015db: DUP3 000015dc: KECCAK256 000015dd: DUP2 000015de: DUP2 000015df: SLOAD 000015e0: ADD 000015e1: SWAP1 000015e2: SSTORE 000015e3: DUP5 000015e4: MSTORE 000015e5: MLOAD 000015e6: PUSH1 0x60 000015e8: SHR 000015e9: SWAP2 000015ea: AND 000015eb: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 0000160c: DUP4 0000160d: DUP1 0000160e: LOG3 0000160f: PUSH1 0x40 00001611: MLOAD 00001612: PUSH1 0x01 00001614: DUP2 00001615: MSTORE 00001616: RETURN 00001617: JUMPDEST 00001618: DUP3 00001619: DUP5 0000161a: GT 0000161b: PUSH2 0x162e 0000161e: JUMPI 0000161f: DUP4 00001620: PUSH4 0x87a211a2 00001625: SWAP4 00001626: SUB 00001627: SWAP1 00001628: SSTORE 00001629: DUP8 0000162a: PUSH2 0x15a4 0000162d: JUMP 0000162e: JUMPDEST 0000162f: PUSH4 0x13be252b 00001634: PUSH1 0x00 00001636: MSTORE 00001637: PUSH1 0x04 00001639: PUSH1 0x1c 0000163b: REVERT 0000163c: JUMPDEST 0000163d: CALLVALUE 0000163e: PUSH2 0x021d 00001641: JUMPI 00001642: PUSH1 0x00 00001644: PUSH1 0x03 00001646: NOT 00001647: CALLDATASIZE 00001648: ADD 00001649: SLT 0000164a: PUSH2 0x021d 0000164d: JUMPI 0000164e: PUSH1 0x20 00001650: PUSH1 0x01 00001652: SLOAD 00001653: PUSH1 0x40 00001655: MLOAD 00001656: SWAP1 00001657: DUP2 00001658: MSTORE 00001659: RETURN 0000165a: JUMPDEST 0000165b: CALLVALUE 0000165c: PUSH2 0x021d 0000165f: JUMPI 00001660: PUSH1 0x00 00001662: PUSH1 0x03 00001664: NOT 00001665: CALLDATASIZE 00001666: ADD 00001667: SLT 00001668: PUSH2 0x021d 0000166b: JUMPI 0000166c: PUSH1 0x20 0000166e: PUSH9 0x05345cdf77eb68f44c 00001678: SLOAD 00001679: PUSH1 0x40 0000167b: MLOAD 0000167c: SWAP1 0000167d: DUP2 0000167e: MSTORE 0000167f: RETURN 00001680: JUMPDEST 00001681: CALLVALUE 00001682: PUSH2 0x021d 00001685: JUMPI 00001686: PUSH1 0x20 00001688: PUSH1 0x03 0000168a: NOT 0000168b: CALLDATASIZE 0000168c: ADD 0000168d: SLT 0000168e: PUSH2 0x021d 00001691: JUMPI 00001692: PUSH1 0x20 00001694: PUSH2 0x037f 00001697: PUSH1 0x04 00001699: CALLDATALOAD 0000169a: PUSH2 0x1be2 0000169d: JUMP 0000169e: JUMPDEST 0000169f: CALLVALUE 000016a0: PUSH2 0x021d 000016a3: JUMPI 000016a4: PUSH1 0x40 000016a6: PUSH1 0x03 000016a8: NOT 000016a9: CALLDATASIZE 000016aa: ADD 000016ab: SLT 000016ac: PUSH2 0x021d 000016af: JUMPI 000016b0: PUSH2 0x16b7 000016b3: PUSH2 0x18f7 000016b6: JUMP 000016b7: JUMPDEST 000016b8: PUSH1 0x24 000016ba: CALLDATALOAD 000016bb: SWAP1 000016bc: PUSH1 0x20 000016be: MSTORE 000016bf: PUSH4 0x7f5e9f20 000016c4: PUSH1 0x0c 000016c6: MSTORE 000016c7: CALLER 000016c8: PUSH1 0x00 000016ca: MSTORE 000016cb: DUP1 000016cc: PUSH1 0x34 000016ce: PUSH1 0x0c 000016d0: KECCAK256 000016d1: SSTORE 000016d2: PUSH1 0x00 000016d4: MSTORE 000016d5: PUSH1 0x2c 000016d7: MLOAD 000016d8: PUSH1 0x60 000016da: SHR 000016db: CALLER 000016dc: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 000016fd: PUSH1 0x20 000016ff: PUSH1 0x00 00001701: LOG3 00001702: PUSH1 0x20 00001704: PUSH1 0x40 00001706: MLOAD 00001707: PUSH1 0x01 00001709: DUP2 0000170a: MSTORE 0000170b: RETURN 0000170c: JUMPDEST 0000170d: CALLVALUE 0000170e: PUSH2 0x021d 00001711: JUMPI 00001712: PUSH1 0x00 00001714: PUSH1 0x03 00001716: NOT 00001717: CALLDATASIZE 00001718: ADD 00001719: SLT 0000171a: PUSH2 0x021d 0000171d: JUMPI 0000171e: PUSH2 0x08a1 00001721: PUSH2 0x0895 00001724: PUSH2 0x1ace 00001727: JUMP 00001728: JUMPDEST 00001729: CALLVALUE 0000172a: PUSH2 0x021d 0000172d: JUMPI 0000172e: PUSH1 0x20 00001730: PUSH1 0x03 00001732: NOT 00001733: CALLDATASIZE 00001734: ADD 00001735: SLT 00001736: PUSH2 0x021d 00001739: JUMPI 0000173a: PUSH1 0x04 0000173c: CALLDATALOAD 0000173d: DUP1 0000173e: ISZERO 0000173f: ISZERO 00001740: DUP2 00001741: SUB 00001742: PUSH2 0x021d 00001745: JUMPI 00001746: PUSH2 0x174d 00001749: PUSH2 0x1c91 0000174c: JUMP 0000174d: JUMPDEST 0000174e: ISZERO 0000174f: PUSH2 0x17d0 00001752: JUMPI 00001753: PUSH2 0x175a 00001756: PUSH2 0x1db6 00001759: JUMP 0000175a: JUMPDEST 0000175b: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 0000177c: PUSH1 0x01 0000177e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000179f: DUP3 000017a0: SLOAD 000017a1: AND 000017a2: OR 000017a3: SWAP1 000017a4: SSTORE 000017a5: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258 000017c6: PUSH1 0x20 000017c8: PUSH1 0x40 000017ca: MLOAD 000017cb: CALLER 000017cc: DUP2 000017cd: MSTORE 000017ce: LOG1 000017cf: STOP 000017d0: JUMPDEST 000017d1: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 000017f2: DUP1 000017f3: SLOAD 000017f4: PUSH1 0xff 000017f6: DUP2 000017f7: AND 000017f8: ISZERO 000017f9: PUSH2 0x184c 000017fc: JUMPI 000017fd: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 0000181e: AND 0000181f: SWAP1 00001820: SSTORE 00001821: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa 00001842: PUSH1 0x20 00001844: PUSH1 0x40 00001846: MLOAD 00001847: CALLER 00001848: DUP2 00001849: MSTORE 0000184a: LOG1 0000184b: STOP 0000184c: JUMPDEST 0000184d: PUSH1 0x04 0000184f: PUSH1 0x40 00001851: MLOAD 00001852: PUSH32 0x8dfc202b00000000000000000000000000000000000000000000000000000000 00001873: DUP2 00001874: MSTORE 00001875: REVERT 00001876: JUMPDEST 00001877: CALLVALUE 00001878: PUSH2 0x021d 0000187b: JUMPI 0000187c: PUSH1 0x00 0000187e: PUSH1 0x03 00001880: NOT 00001881: CALLDATASIZE 00001882: ADD 00001883: SLT 00001884: PUSH2 0x021d 00001887: JUMPI 00001888: PUSH1 0x20 0000188a: PUSH2 0x037f 0000188d: PUSH2 0x1a35 00001890: JUMP 00001891: JUMPDEST 00001892: PUSH1 0x20 00001894: DUP1 00001895: DUP3 00001896: MSTORE 00001897: DUP3 00001898: MLOAD 00001899: DUP2 0000189a: DUP4 0000189b: ADD 0000189c: DUP2 0000189d: SWAP1 0000189e: MSTORE 0000189f: SWAP4 000018a0: SWAP3 000018a1: PUSH1 0x00 000018a3: JUMPDEST 000018a4: DUP6 000018a5: DUP2 000018a6: LT 000018a7: PUSH2 0x18e3 000018aa: JUMPI 000018ab: POP 000018ac: POP 000018ad: POP 000018ae: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000018cf: PUSH1 0x1f 000018d1: DUP5 000018d2: PUSH1 0x00 000018d4: PUSH1 0x40 000018d6: DUP1 000018d7: SWAP7 000018d8: SWAP8 000018d9: DUP7 000018da: ADD 000018db: ADD 000018dc: MSTORE 000018dd: ADD 000018de: AND 000018df: ADD 000018e0: ADD 000018e1: SWAP1 000018e2: JUMP 000018e3: JUMPDEST 000018e4: DUP2 000018e5: DUP2 000018e6: ADD 000018e7: DUP4 000018e8: ADD 000018e9: MLOAD 000018ea: DUP5 000018eb: DUP3 000018ec: ADD 000018ed: PUSH1 0x40 000018ef: ADD 000018f0: MSTORE 000018f1: DUP3 000018f2: ADD 000018f3: PUSH2 0x18a3 000018f6: JUMP 000018f7: JUMPDEST 000018f8: PUSH1 0x04 000018fa: CALLDATALOAD 000018fb: SWAP1 000018fc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001911: DUP3 00001912: AND 00001913: DUP3 00001914: SUB 00001915: PUSH2 0x021d 00001918: JUMPI 00001919: JUMP 0000191a: JUMPDEST 0000191b: PUSH1 0x24 0000191d: CALLDATALOAD 0000191e: SWAP1 0000191f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001934: DUP3 00001935: AND 00001936: DUP3 00001937: SUB 00001938: PUSH2 0x021d 0000193b: JUMPI 0000193c: JUMP 0000193d: JUMPDEST 0000193e: SWAP1 0000193f: PUSH1 0x1f 00001941: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001962: SWAP2 00001963: ADD 00001964: AND 00001965: DUP2 00001966: ADD 00001967: SWAP1 00001968: DUP2 00001969: LT 0000196a: PUSH8 0xffffffffffffffff 00001973: DUP3 00001974: GT 00001975: OR 00001976: PUSH2 0x0f45 00001979: JUMPI 0000197a: PUSH1 0x40 0000197c: MSTORE 0000197d: JUMP 0000197e: JUMPDEST 0000197f: DUP2 00001980: PUSH1 0x1f 00001982: DUP3 00001983: ADD 00001984: SLT 00001985: ISZERO 00001986: PUSH2 0x021d 00001989: JUMPI 0000198a: DUP1 0000198b: CALLDATALOAD 0000198c: SWAP1 0000198d: PUSH8 0xffffffffffffffff 00001996: DUP3 00001997: GT 00001998: PUSH2 0x0f45 0000199b: JUMPI 0000199c: PUSH1 0x40 0000199e: MLOAD 0000199f: SWAP3 000019a0: PUSH2 0x19d1 000019a3: PUSH1 0x20 000019a5: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 000019c6: PUSH1 0x1f 000019c8: DUP7 000019c9: ADD 000019ca: AND 000019cb: ADD 000019cc: DUP6 000019cd: PUSH2 0x193d 000019d0: JUMP 000019d1: JUMPDEST 000019d2: DUP3 000019d3: DUP5 000019d4: MSTORE 000019d5: PUSH1 0x20 000019d7: DUP4 000019d8: DUP4 000019d9: ADD 000019da: ADD 000019db: GT 000019dc: PUSH2 0x021d 000019df: JUMPI 000019e0: DUP2 000019e1: PUSH1 0x00 000019e3: SWAP3 000019e4: PUSH1 0x20 000019e6: DUP1 000019e7: SWAP4 000019e8: ADD 000019e9: DUP4 000019ea: DUP7 000019eb: ADD 000019ec: CALLDATACOPY 000019ed: DUP4 000019ee: ADD 000019ef: ADD 000019f0: MSTORE 000019f1: SWAP1 000019f2: JUMP 000019f3: JUMPDEST 000019f4: PUSH1 0x03 000019f6: NOT 000019f7: PUSH1 0x60 000019f9: SWAP2 000019fa: ADD 000019fb: SLT 000019fc: PUSH2 0x021d 000019ff: JUMPI 00001a00: PUSH1 0x04 00001a02: CALLDATALOAD 00001a03: SWAP1 00001a04: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a19: SWAP1 00001a1a: PUSH1 0x24 00001a1c: CALLDATALOAD 00001a1d: DUP3 00001a1e: DUP2 00001a1f: AND 00001a20: DUP2 00001a21: SUB 00001a22: PUSH2 0x021d 00001a25: JUMPI 00001a26: SWAP2 00001a27: PUSH1 0x44 00001a29: CALLDATALOAD 00001a2a: SWAP1 00001a2b: DUP2 00001a2c: AND 00001a2d: DUP2 00001a2e: SUB 00001a2f: PUSH2 0x021d 00001a32: JUMPI 00001a33: SWAP1 00001a34: JUMP 00001a35: JUMPDEST 00001a36: PUSH1 0x20 00001a38: DUP1 00001a39: PUSH1 0x24 00001a3b: PUSH1 0x10 00001a3d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a52: PUSH1 0x00 00001a54: SLOAD 00001a55: AND 00001a56: ADDRESS 00001a57: PUSH1 0x14 00001a59: MSTORE 00001a5a: PUSH16 0x70a08231000000000000000000000000 00001a6b: PUSH1 0x00 00001a6d: MSTORE 00001a6e: GAS 00001a6f: STATICCALL 00001a70: PUSH1 0x1f 00001a72: RETURNDATASIZE 00001a73: GT 00001a74: AND 00001a75: PUSH1 0x20 00001a77: MLOAD 00001a78: MUL 00001a79: SWAP1 00001a7a: JUMP 00001a7b: JUMPDEST 00001a7c: SWAP1 00001a7d: PUSH1 0x01 00001a7f: DUP3 00001a80: DUP2 00001a81: SHR 00001a82: SWAP3 00001a83: AND 00001a84: DUP1 00001a85: ISZERO 00001a86: PUSH2 0x1ac4 00001a89: JUMPI 00001a8a: JUMPDEST 00001a8b: PUSH1 0x20 00001a8d: DUP4 00001a8e: LT 00001a8f: EQ 00001a90: PUSH2 0x1a95 00001a93: JUMPI 00001a94: JUMP 00001a95: JUMPDEST 00001a96: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00001ab7: PUSH1 0x00 00001ab9: MSTORE 00001aba: PUSH1 0x22 00001abc: PUSH1 0x04 00001abe: MSTORE 00001abf: PUSH1 0x24 00001ac1: PUSH1 0x00 00001ac3: REVERT 00001ac4: JUMPDEST 00001ac5: SWAP2 00001ac6: PUSH1 0x7f 00001ac8: AND 00001ac9: SWAP2 00001aca: PUSH2 0x1a8a 00001acd: JUMP 00001ace: JUMPDEST 00001acf: PUSH1 0x40 00001ad1: MLOAD 00001ad2: SWAP1 00001ad3: PUSH1 0x00 00001ad5: DUP3 00001ad6: PUSH1 0x03 00001ad8: SLOAD 00001ad9: SWAP2 00001ada: PUSH2 0x1ae2 00001add: DUP4 00001ade: PUSH2 0x1a7b 00001ae1: JUMP 00001ae2: JUMPDEST 00001ae3: DUP1 00001ae4: DUP4 00001ae5: MSTORE 00001ae6: SWAP3 00001ae7: PUSH1 0x20 00001ae9: SWAP1 00001aea: PUSH1 0x01 00001aec: SWAP1 00001aed: DUP2 00001aee: DUP2 00001aef: AND 00001af0: SWAP1 00001af1: DUP2 00001af2: ISZERO 00001af3: PUSH2 0x1b70 00001af6: JUMPI 00001af7: POP 00001af8: PUSH1 0x01 00001afa: EQ 00001afb: PUSH2 0x1b0f 00001afe: JUMPI 00001aff: JUMPDEST 00001b00: POP 00001b01: POP 00001b02: PUSH2 0x1b0d 00001b05: SWAP3 00001b06: POP 00001b07: SUB 00001b08: DUP4 00001b09: PUSH2 0x193d 00001b0c: JUMP 00001b0d: JUMPDEST 00001b0e: JUMP 00001b0f: JUMPDEST 00001b10: SWAP2 00001b11: POP 00001b12: SWAP3 00001b13: PUSH1 0x03 00001b15: PUSH1 0x00 00001b17: MSTORE 00001b18: PUSH32 0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b 00001b39: SWAP4 00001b3a: PUSH1 0x00 00001b3c: SWAP3 00001b3d: JUMPDEST 00001b3e: DUP3 00001b3f: DUP5 00001b40: LT 00001b41: PUSH2 0x1b58 00001b44: JUMPI 00001b45: POP 00001b46: PUSH2 0x1b0d 00001b49: SWAP5 00001b4a: POP 00001b4b: POP 00001b4c: POP 00001b4d: DUP2 00001b4e: ADD 00001b4f: PUSH1 0x20 00001b51: ADD 00001b52: CODESIZE 00001b53: DUP1 00001b54: PUSH2 0x1aff 00001b57: JUMP 00001b58: JUMPDEST 00001b59: DUP6 00001b5a: SLOAD 00001b5b: DUP9 00001b5c: DUP6 00001b5d: ADD 00001b5e: DUP4 00001b5f: ADD 00001b60: MSTORE 00001b61: SWAP5 00001b62: DUP6 00001b63: ADD 00001b64: SWAP5 00001b65: DUP8 00001b66: SWAP5 00001b67: POP 00001b68: SWAP3 00001b69: DUP2 00001b6a: ADD 00001b6b: SWAP3 00001b6c: PUSH2 0x1b3d 00001b6f: JUMP 00001b70: JUMPDEST 00001b71: SWAP1 00001b72: POP 00001b73: PUSH1 0x20 00001b75: SWAP4 00001b76: POP 00001b77: PUSH2 0x1b0d 00001b7a: SWAP6 00001b7b: SWAP3 00001b7c: POP 00001b7d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00001b9e: SWAP2 00001b9f: POP 00001ba0: AND 00001ba1: DUP3 00001ba2: DUP5 00001ba3: ADD 00001ba4: MSTORE 00001ba5: ISZERO 00001ba6: ISZERO 00001ba7: PUSH1 0x05 00001ba9: SHL 00001baa: DUP3 00001bab: ADD 00001bac: ADD 00001bad: CODESIZE 00001bae: DUP1 00001baf: PUSH2 0x1aff 00001bb2: JUMP 00001bb3: JUMPDEST 00001bb4: PUSH2 0x1bbb 00001bb7: PUSH2 0x1a35 00001bba: JUMP 00001bbb: JUMPDEST 00001bbc: SWAP1 00001bbd: PUSH1 0x01 00001bbf: DUP3 00001bc0: ADD 00001bc1: DUP1 00001bc2: SWAP3 00001bc3: GT 00001bc4: PUSH2 0x14bb 00001bc7: JUMPI 00001bc8: PUSH2 0x1bdf 00001bcb: SWAP2 00001bcc: PUSH1 0x01 00001bce: PUSH9 0x05345cdf77eb68f44c 00001bd8: SLOAD 00001bd9: ADD 00001bda: SWAP2 00001bdb: PUSH2 0x1cc9 00001bde: JUMP 00001bdf: JUMPDEST 00001be0: SWAP1 00001be1: JUMP 00001be2: JUMPDEST 00001be3: PUSH9 0x05345cdf77eb68f44c 00001bed: SLOAD 00001bee: SWAP1 00001bef: PUSH1 0x01 00001bf1: DUP3 00001bf2: ADD 00001bf3: DUP1 00001bf4: SWAP3 00001bf5: GT 00001bf6: PUSH2 0x14bb 00001bf9: JUMPI 00001bfa: PUSH2 0x1bdf 00001bfd: SWAP2 00001bfe: PUSH1 0x01 00001c00: PUSH2 0x1c07 00001c03: PUSH2 0x1a35 00001c06: JUMP 00001c07: JUMPDEST 00001c08: ADD 00001c09: SWAP2 00001c0a: PUSH2 0x1d85 00001c0d: JUMP 00001c0e: JUMPDEST 00001c0f: PUSH1 0x01 00001c11: SLOAD 00001c12: PUSH2 0x1c19 00001c15: PUSH2 0x1a35 00001c18: JUMP 00001c19: JUMPDEST 00001c1a: DUP2 00001c1b: GT 00001c1c: PUSH2 0x1c25 00001c1f: JUMPI 00001c20: POP 00001c21: PUSH1 0x00 00001c23: SWAP1 00001c24: JUMP 00001c25: JUMPDEST 00001c26: PUSH2 0x1c2d 00001c29: PUSH2 0x1a35 00001c2c: JUMP 00001c2d: JUMPDEST 00001c2e: DUP2 00001c2f: SUB 00001c30: SWAP1 00001c31: DUP2 00001c32: GT 00001c33: PUSH2 0x14bb 00001c36: JUMPI 00001c37: SWAP1 00001c38: JUMP 00001c39: JUMPDEST 00001c3a: PUSH2 0x1c41 00001c3d: PUSH2 0x1a35 00001c40: JUMP 00001c41: JUMPDEST 00001c42: SWAP1 00001c43: PUSH1 0x01 00001c45: DUP3 00001c46: ADD 00001c47: DUP1 00001c48: SWAP3 00001c49: GT 00001c4a: PUSH2 0x14bb 00001c4d: JUMPI 00001c4e: PUSH2 0x1bdf 00001c51: SWAP2 00001c52: PUSH1 0x01 00001c54: PUSH9 0x05345cdf77eb68f44c 00001c5e: SLOAD 00001c5f: ADD 00001c60: SWAP2 00001c61: PUSH2 0x1d85 00001c64: JUMP 00001c65: JUMPDEST 00001c66: PUSH9 0x05345cdf77eb68f44c 00001c70: SLOAD 00001c71: SWAP1 00001c72: PUSH1 0x01 00001c74: DUP3 00001c75: ADD 00001c76: DUP1 00001c77: SWAP3 00001c78: GT 00001c79: PUSH2 0x14bb 00001c7c: JUMPI 00001c7d: PUSH2 0x1bdf 00001c80: SWAP2 00001c81: PUSH1 0x01 00001c83: PUSH2 0x1c8a 00001c86: PUSH2 0x1a35 00001c89: JUMP 00001c8a: JUMPDEST 00001c8b: ADD 00001c8c: SWAP2 00001c8d: PUSH2 0x1cc9 00001c90: JUMP 00001c91: JUMPDEST 00001c92: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927 00001cb3: SLOAD 00001cb4: CALLER 00001cb5: SUB 00001cb6: PUSH2 0x1cbb 00001cb9: JUMPI 00001cba: JUMP 00001cbb: JUMPDEST 00001cbc: PUSH4 0x82b42900 00001cc1: PUSH1 0x00 00001cc3: MSTORE 00001cc4: PUSH1 0x04 00001cc6: PUSH1 0x1c 00001cc8: REVERT 00001cc9: JUMPDEST 00001cca: SWAP1 00001ccb: PUSH1 0x00 00001ccd: SWAP2 00001cce: DUP2 00001ccf: DUP2 00001cd0: MUL 00001cd1: SWAP2 00001cd2: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001cf3: DUP2 00001cf4: DUP4 00001cf5: MULMOD 00001cf6: SWAP2 00001cf7: DUP4 00001cf8: DUP4 00001cf9: LT 00001cfa: DUP5 00001cfb: ADD 00001cfc: DUP1 00001cfd: DUP5 00001cfe: SUB 00001cff: SWAP4 00001d00: EQ 00001d01: PUSH2 0x1d69 00001d04: JUMPI 00001d05: DUP3 00001d06: DUP7 00001d07: GT 00001d08: ISZERO 00001d09: PUSH2 0x1d5c 00001d0c: JUMPI 00001d0d: SWAP1 00001d0e: DUP6 00001d0f: SWAP2 00001d10: MULMOD 00001d11: SWAP2 00001d12: PUSH1 0x01 00001d14: DUP6 00001d15: DUP6 00001d16: SUB 00001d17: DUP7 00001d18: AND 00001d19: DUP1 00001d1a: SWAP7 00001d1b: DIV 00001d1c: PUSH1 0x02 00001d1e: DUP2 00001d1f: PUSH1 0x03 00001d21: MUL 00001d22: DUP2 00001d23: XOR 00001d24: DUP1 00001d25: DUP4 00001d26: MUL 00001d27: DUP3 00001d28: SUB 00001d29: MUL 00001d2a: DUP1 00001d2b: DUP4 00001d2c: MUL 00001d2d: DUP3 00001d2e: SUB 00001d2f: MUL 00001d30: DUP1 00001d31: DUP4 00001d32: MUL 00001d33: DUP3 00001d34: SUB 00001d35: MUL 00001d36: DUP1 00001d37: DUP4 00001d38: MUL 00001d39: DUP3 00001d3a: SUB 00001d3b: MUL 00001d3c: DUP1 00001d3d: DUP4 00001d3e: MUL 00001d3f: DUP3 00001d40: SUB 00001d41: MUL 00001d42: DUP1 00001d43: SWAP3 00001d44: MUL 00001d45: SWAP1 00001d46: SUB 00001d47: MUL 00001d48: SWAP6 00001d49: DUP1 00001d4a: DUP1 00001d4b: DUP7 00001d4c: DUP6 00001d4d: SUB 00001d4e: DIV 00001d4f: SWAP7 00001d50: SUB 00001d51: DIV 00001d52: ADD 00001d53: SWAP3 00001d54: GT 00001d55: SWAP1 00001d56: SUB 00001d57: MUL 00001d58: OR 00001d59: MUL 00001d5a: SWAP1 00001d5b: JUMP 00001d5c: JUMPDEST 00001d5d: PUSH4 0xae47f702 00001d62: DUP6 00001d63: MSTORE 00001d64: PUSH1 0x04 00001d66: PUSH1 0x1c 00001d68: REVERT 00001d69: JUMPDEST 00001d6a: POP 00001d6b: POP 00001d6c: POP 00001d6d: SWAP1 00001d6e: DUP3 00001d6f: ISZERO 00001d70: PUSH2 0x1d78 00001d73: JUMPI 00001d74: POP 00001d75: DIV 00001d76: SWAP1 00001d77: JUMP 00001d78: JUMPDEST 00001d79: PUSH4 0xae47f702 00001d7e: SWAP1 00001d7f: MSTORE 00001d80: PUSH1 0x04 00001d82: PUSH1 0x1c 00001d84: REVERT 00001d85: JUMPDEST 00001d86: SWAP3 00001d87: SWAP2 00001d88: SWAP1 00001d89: PUSH2 0x1d93 00001d8c: DUP3 00001d8d: DUP3 00001d8e: DUP7 00001d8f: PUSH2 0x1cc9 00001d92: JUMP 00001d93: JUMPDEST 00001d94: SWAP4 00001d95: MULMOD 00001d96: PUSH2 0x1d9b 00001d99: JUMPI 00001d9a: JUMP 00001d9b: JUMPDEST 00001d9c: SWAP1 00001d9d: PUSH1 0x01 00001d9f: ADD 00001da0: SWAP1 00001da1: DUP2 00001da2: ISZERO 00001da3: PUSH2 0x1da8 00001da6: JUMPI 00001da7: JUMP 00001da8: JUMPDEST 00001da9: PUSH4 0xae47f702 00001dae: PUSH1 0x00 00001db0: MSTORE 00001db1: PUSH1 0x04 00001db3: PUSH1 0x1c 00001db5: REVERT 00001db6: JUMPDEST 00001db7: PUSH1 0xff 00001db9: PUSH32 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300 00001dda: SLOAD 00001ddb: AND 00001ddc: PUSH2 0x1de1 00001ddf: JUMPI 00001de0: JUMP 00001de1: JUMPDEST 00001de2: PUSH1 0x04 00001de4: PUSH1 0x40 00001de6: MLOAD 00001de7: PUSH32 0xd93c066500000000000000000000000000000000000000000000000000000000 00001e08: DUP2 00001e09: MSTORE 00001e0a: REVERT 00001e0b: JUMPDEST 00001e0c: SWAP1 00001e0d: SWAP3 00001e0e: SWAP2 00001e0f: SWAP3 00001e10: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e25: SWAP4 00001e26: PUSH1 0x00 00001e28: SWAP4 00001e29: DUP6 00001e2a: DUP6 00001e2b: SLOAD 00001e2c: AND 00001e2d: PUSH1 0x20 00001e2f: DUP7 00001e30: PUSH1 0x64 00001e32: PUSH1 0x1c 00001e34: DUP3 00001e35: PUSH1 0x40 00001e37: MLOAD 00001e38: SWAP6 00001e39: DUP9 00001e3a: PUSH1 0x60 00001e3c: MSTORE 00001e3d: ADDRESS 00001e3e: PUSH1 0x40 00001e40: MSTORE 00001e41: DUP11 00001e42: PUSH1 0x60 00001e44: SHL 00001e45: PUSH1 0x2c 00001e47: MSTORE 00001e48: PUSH16 0x23b872dd000000000000000000000000 00001e59: PUSH1 0x0c 00001e5b: MSTORE 00001e5c: GAS 00001e5d: CALL 00001e5e: RETURNDATASIZE 00001e5f: ISZERO 00001e60: PUSH1 0x01 00001e62: DUP9 00001e63: MLOAD 00001e64: EQ 00001e65: OR 00001e66: AND 00001e67: ISZERO 00001e68: PUSH2 0x1f0f 00001e6b: JUMPI 00001e6c: DUP6 00001e6d: PUSH1 0x60 00001e6f: MSTORE 00001e70: PUSH1 0x40 00001e72: MSTORE 00001e73: PUSH9 0x05345cdf77eb68f44c 00001e7d: DUP1 00001e7e: SLOAD 00001e7f: SWAP1 00001e80: DUP3 00001e81: DUP3 00001e82: ADD 00001e83: SWAP2 00001e84: DUP3 00001e85: LT 00001e86: PUSH2 0x1f02 00001e89: JUMPI 00001e8a: SWAP2 00001e8b: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 00001eac: SWAP6 00001ead: SWAP4 00001eae: SWAP2 00001eaf: PUSH1 0x40 00001eb1: SWAP6 00001eb2: SWAP4 00001eb3: SSTORE 00001eb4: PUSH4 0x87a211a2 00001eb9: PUSH1 0x0c 00001ebb: MSTORE 00001ebc: DUP3 00001ebd: DUP8 00001ebe: MSTORE 00001ebf: PUSH1 0x20 00001ec1: PUSH1 0x0c 00001ec3: KECCAK256 00001ec4: DUP2 00001ec5: DUP2 00001ec6: SLOAD 00001ec7: ADD 00001ec8: SWAP1 00001ec9: SSTORE 00001eca: PUSH1 0x20 00001ecc: MSTORE 00001ecd: PUSH1 0x0c 00001ecf: MLOAD 00001ed0: PUSH1 0x60 00001ed2: SHR 00001ed3: DUP7 00001ed4: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001ef5: PUSH1 0x20 00001ef7: DUP1 00001ef8: LOG3 00001ef9: DUP6 00001efa: MSTORE 00001efb: DUP6 00001efc: AND 00001efd: SWAP5 00001efe: AND 00001eff: SWAP3 00001f00: LOG3 00001f01: JUMP 00001f02: JUMPDEST 00001f03: PUSH4 0xe5cfe957 00001f08: DUP8 00001f09: MSTORE 00001f0a: PUSH1 0x04 00001f0c: PUSH1 0x1c 00001f0e: REVERT 00001f0f: JUMPDEST 00001f10: PUSH4 0x7939f424 00001f15: DUP7 00001f16: MSTORE 00001f17: PUSH1 0x04 00001f19: PUSH1 0x1c 00001f1b: REVERT 00001f1c: JUMPDEST 00001f1d: PUSH1 0xff 00001f1f: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 00001f40: SLOAD 00001f41: PUSH1 0x40 00001f43: SHR 00001f44: AND 00001f45: ISZERO 00001f46: PUSH2 0x1f4b 00001f49: JUMPI 00001f4a: JUMP 00001f4b: JUMPDEST 00001f4c: PUSH1 0x04 00001f4e: PUSH1 0x40 00001f50: MLOAD 00001f51: PUSH32 0xd7e6bcf800000000000000000000000000000000000000000000000000000000 00001f72: DUP2 00001f73: MSTORE 00001f74: REVERT 00001f75: JUMPDEST 00001f76: SWAP1 00001f77: SWAP4 00001f78: SWAP3 00001f79: SWAP2 00001f7a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f8f: SWAP4 00001f90: DUP5 00001f91: DUP3 00001f92: AND 00001f93: SWAP4 00001f94: DUP5 00001f95: DUP7 00001f96: DUP6 00001f97: AND 00001f98: SUB 00001f99: PUSH2 0x2084 00001f9c: JUMPI 00001f9d: JUMPDEST 00001f9e: PUSH4 0x87a211a2 00001fa3: PUSH1 0x0c 00001fa5: MSTORE 00001fa6: PUSH1 0x00 00001fa8: SWAP5 00001fa9: DUP4 00001faa: DUP7 00001fab: MSTORE 00001fac: PUSH1 0x20 00001fae: PUSH1 0x0c 00001fb0: KECCAK256 00001fb1: DUP1 00001fb2: SLOAD 00001fb3: DUP1 00001fb4: DUP6 00001fb5: GT 00001fb6: PUSH2 0x2077 00001fb9: JUMPI 00001fba: SWAP1 00001fbb: DUP5 00001fbc: DUP9 00001fbd: SWAP4 00001fbe: SWAP3 00001fbf: SUB 00001fc0: SWAP1 00001fc1: SSTORE 00001fc2: PUSH9 0x05345cdf77eb68f44c 00001fcc: DUP5 00001fcd: DUP2 00001fce: SLOAD 00001fcf: SUB 00001fd0: SWAP1 00001fd1: SSTORE 00001fd2: DUP4 00001fd3: DUP3 00001fd4: MSTORE 00001fd5: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001ff6: PUSH1 0x20 00001ff8: DUP4 00001ff9: LOG3 00001ffa: PUSH1 0x20 00001ffc: DUP6 00001ffd: PUSH1 0x44 00001fff: PUSH1 0x10 00002001: DUP3 00002002: DUP11 00002003: DUP2 00002004: SLOAD 00002005: AND 00002006: DUP13 00002007: PUSH1 0x14 00002009: MSTORE 0000200a: DUP7 0000200b: PUSH1 0x34 0000200d: MSTORE 0000200e: PUSH16 0xa9059cbb000000000000000000000000 0000201f: DUP3 00002020: MSTORE 00002021: GAS 00002022: CALL 00002023: RETURNDATASIZE 00002024: ISZERO 00002025: PUSH1 0x01 00002027: DUP8 00002028: MLOAD 00002029: EQ 0000202a: OR 0000202b: AND 0000202c: ISZERO 0000202d: PUSH2 0x206a 00002030: JUMPI 00002031: PUSH1 0x34 00002033: DUP6 00002034: SWAP1 00002035: MSTORE 00002036: DUP5 00002037: MSTORE 00002038: PUSH1 0x20 0000203a: MSTORE 0000203b: DUP4 0000203c: AND 0000203d: SWAP4 0000203e: DUP4 0000203f: AND 00002040: SWAP3 00002041: AND 00002042: SWAP1 00002043: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db 00002064: SWAP1 00002065: PUSH1 0x40 00002067: SWAP1 00002068: LOG4 00002069: JUMP 0000206a: JUMPDEST 0000206b: PUSH4 0x90b8ec18 00002070: DUP6 00002071: MSTORE 00002072: PUSH1 0x04 00002074: PUSH1 0x1c 00002076: REVERT 00002077: JUMPDEST 00002078: PUSH4 0xf4d678b8 0000207d: DUP9 0000207e: MSTORE 0000207f: PUSH1 0x04 00002081: PUSH1 0x1c 00002083: REVERT 00002084: JUMPDEST 00002085: DUP4 00002086: PUSH1 0x20 00002088: MSTORE 00002089: PUSH4 0x7f5e9f20 0000208e: PUSH1 0x0c 00002090: MSTORE 00002091: DUP3 00002092: PUSH1 0x00 00002094: MSTORE 00002095: PUSH1 0x34 00002097: PUSH1 0x0c 00002099: KECCAK256 0000209a: DUP1 0000209b: SLOAD 0000209c: PUSH1 0x01 0000209e: DUP2 0000209f: ADD 000020a0: PUSH2 0x20ab 000020a3: JUMPI 000020a4: JUMPDEST 000020a5: POP 000020a6: POP 000020a7: PUSH2 0x1f9d 000020aa: JUMP 000020ab: JUMPDEST 000020ac: DUP1 000020ad: DUP5 000020ae: GT 000020af: PUSH2 0x162e 000020b2: JUMPI 000020b3: DUP4 000020b4: SWAP1 000020b5: SUB 000020b6: SWAP1 000020b7: SSTORE 000020b8: CODESIZE 000020b9: DUP1 000020ba: PUSH2 0x20a4 000020bd: JUMP 000020be: INVALID 000020bf: LOG2 000020c0: PUSH5 0x6970667358 000020c6: UNKNOWN(0x22) 000020c7: SLT 000020c8: KECCAK256 000020c9: SIGNEXTEND 000020ca: PUSH14 0x26a05b96f4fdfa621edb59c61f5b 000020d9: UNKNOWN(0xD6) 000020da: PUSH8 0xf62f5cf1c83470a4 000020e3: DUP7 000020e4: PUSH29
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x92cd7b7ad9b34a743cc589907956d226e1c928db8abb101a6d81effb9f9a391b
call_targets:
0x46c64c1630f320b890d765e7c6f901574924b0c7
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x92cd7b7ad9b34a743cc589907956d226e1c928db8abb101a6d81effb9f9a391b",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x46c64c1630f320b890d765e7c6f901574924b0c7"
],
"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": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02329a29",
"selector": "0x02329a29",
"calldata_variants": [
"0x02329a29",
"0x02329a290000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07a2d13a",
"selector": "0x07a2d13a",
"calldata_variants": [
"0x07a2d13a",
"0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0a28a477",
"selector": "0x0a28a477",
"calldata_variants": [
"0x0a28a477",
"0x0a28a4770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x22da98e7",
"selector": "0x22da98e7",
"calldata_variants": [
"0x22da98e7",
"0x22da98e70000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7773,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "constant",
"target_expression_category": "computed"
},
{
"pc": 8226,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x92cd7b7ad9b34a743cc589907956d226e1c928db8abb101a6d81effb9f9a391b
call_targets:
0x46c64c1630f320b890d765e7c6f901574924b0c7
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x92cd7b7ad9b34a743cc589907956d226e1c928db8abb101a6d81effb9f9a391b",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x46c64c1630f320b890d765e7c6f901574924b0c7"
],
"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": "0x01e1d114",
"selector": "0x01e1d114",
"calldata_variants": [
"0x01e1d114",
"0x01e1d1140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02329a29",
"selector": "0x02329a29",
"calldata_variants": [
"0x02329a29",
"0x02329a290000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x07a2d13a",
"selector": "0x07a2d13a",
"calldata_variants": [
"0x07a2d13a",
"0x07a2d13a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x095ea7b3",
"selector": "0x095ea7b3",
"calldata_variants": [
"0x095ea7b3",
"0x095ea7b30000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x0a28a477",
"selector": "0x0a28a477",
"calldata_variants": [
"0x0a28a477",
"0x0a28a4770000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x18160ddd",
"selector": "0x18160ddd",
"calldata_variants": [
"0x18160ddd",
"0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x22da98e7",
"selector": "0x22da98e7",
"calldata_variants": [
"0x22da98e7",
"0x22da98e70000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7773,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "constant",
"target_expression_category": "computed"
},
{
"pc": 8226,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| medium | other | codex | Asset limit can be bypassed via mint() | 75 | no | — |
viewevidence_json{
"evidence": "deposit() enforces maxDeposit (assetLimit) while mint() delegates to super.mint without any assetLimit check; maxMint remains the ERC4626 default (unlimited).",
"locations": [
"src/Vault.sol:56",
"src/Vault.sol:72",
"src/Vault.sol:118"
],
"recommendation": "Override maxMint to enforce the same cap as maxDeposit (e.g., derive maxShares from remaining asset capacity), or add an explicit assetLimit check in mint using previewMint().",
"exploit_scenario": "If the system relies on assetLimit to cap TVL, the owner/supervisor can call mint() to create shares beyond the limit because maxMint is not overridden. Any flow that uses mint instead of deposit will ignore the cap, defeating exposure controls."
}
|
| medium | upgradeability | codex | Proxy can be seized if initialize is not called during deployment | 75 | no | — |
viewevidence_json{
"evidence": "constructor disables initializers on the implementation, while initialize() remains externally callable on the proxy and sets owner/depositToken.",
"locations": [
"src/Vault.sol:26",
"src/Vault.sol:30"
],
"recommendation": "Ensure proxy deployments perform initialization atomically (constructor calldata or factory). Consider adding deployment tooling checks to prevent uninitialized proxies.",
"exploit_scenario": "Because initialize() is external and only protected by the initializer modifier, a proxy deployed without immediate initialization can be claimed by any attacker who sets themselves as owner and configures depositToken, then pauses or drains via privileged calls."
}
|