019bb50b-e100-72d3-870c-6f4cd7a7987a
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 |
|---|---|---|---|---|
| 40310 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 40311 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 40312 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 40313 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 40314 | capability.graph | complete | 1 / 3 | 3 months ago |
| 40315 | detector.run | complete | 1 / 3 | 3 months ago |
| 40316 | validation.fork | complete | 1 / 3 | 3 months ago |
| 40460 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 40461 | tool.slither | failed | 2 / 2 | 3 months ago |
{
"status": "not_proxy"
}
Traceback (most recent call last):
File "/var/www/tripwire/worker/worker.py", line 198, in main
payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 1084, in run
stdout_text, stderr_text, result_json = _run_slither(
~~~~~~~~~~~~^
workspace,
^^^^^^^^^^
...<4 lines>...
target_path=target_path,
^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/var/www/tripwire/worker/jobs/slither_run.py", line 958, in _run_slither
raise RuntimeError(f"slither failed (exit {result.returncode}): {stderr_text or stdout_text}")
RuntimeError: slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-kcenvnr7)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-kcenvnr7)
Traceback (most recent call last):
File "/var/www/tripwire/.venv/bin/slither", line 10, in <module>
sys.exit(main())
~~~~^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main
main_impl(all_detector_classes=detectors, all_printer_classes=printers)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all
compilations = compile_all(target, **vars(args))
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all
compilations.append(CryticCompile(target, **kwargs))
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__
self._compile(**kwargs)
~~~~~~~~~~~~~^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile
self._platform.compile(self, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile
hardhat_like_parsing(
~~~~~~~~~~~~~~~~~~~~^
crytic_compile, str(self._target), build_directory, str(self._project_root)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing
raise InvalidCompilation(txt)
crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command?
/tmp/slither-kcenvnr7/out/build-info is not a directory.
{"no_findings":false,"summary":"Two issues: ERC20 transfers are not checked for success, and the purchase logic does not verify the actual amount received (fee-on-transfer tokens).","findings":[{"severity":"medium","category":"other","title":"Unchecked ERC20 transfer/transferFrom return values can record purchases or refunds without a successful token transfer","exploit_scenario":"If a supported token returns false instead of reverting (or a misconfigured/old USDT variant), `transferFrom` in `purchaseNFT` can fail silently. The contract still records the purchase and emits the event, enabling a buyer to obtain an NFT off-chain without paying. Similarly, `refundPurchase` and `withdrawFunds` can emit success events even when the token transfer fails, leaving state inconsistent with actual balances.","recommendation":"Use `SafeERC20` and check transfer results (or require the return value to be true). Consider reverting on failure to keep state consistent with transfers.","evidence":"`IERC20(token).transferFrom(...)` and `IERC20(...).transfer(...)` calls ignore the returned boolean.","locations":["nftSale.sol:103","nftSale.sol:154","nftSale.sol:176"]},{"severity":"low","category":"math","title":"No verification of actual tokens received allows underpayment for fee-on-transfer tokens","exploit_scenario":"If the owner enables a deflationary/fee-on-transfer token via `setSupportedToken`, `purchaseNFT` records a fixed `NFT_PRICE` and emits purchase events even though the contract may receive less than `NFT_PRICE`. This can cause underpayment and accounting mismatches when the off-chain system delivers NFTs based on events.","recommendation":"Restrict support to non-fee tokens, or compute the received amount via balanceBefore/balanceAfter and require it equals `NFT_PRICE` (or store the actual received amount).","evidence":"No balance-delta or return-value checks around the payment transfer; amount recorded is always `NFT_PRICE`.","locations":["nftSale.sol:103","nftSale.sol:109"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-tv_xeqx5
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb514-7de5-7440-b77e-34d87bc0c931
--------
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
thinking
**Reading AUDIT_BUNDLE file**
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-tv_xeqx5 succeeded in 5ms:
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: nftSale.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import "@openzeppelin/contracts/utils/Pausable.sol";
/**
* @title NFTPurchase
* @dev Contract for purchasing Solana NFTs with USDC/USDT on EVM chains
* @author Cross-Chain NFT System
*/
contract NFTPurchase is Ownable, ReentrancyGuard, Pausable {
thinking
**Identifying unchecked token transfer risks**
I'm auditing token transfer calls and noting unchecked return values in purchaseNFT, refundPurchase, and withdrawFunds could let purchases record without payment—potentially medium severity. Also spotting risks with fee-on-transfer tokens causing underpayments if owner adds such tokens, which is more of a low-severity accounting issue. I'll try to pinpoint exact line numbers to better report these findings.
exec
/bin/bash -lc 'nl -ba nftSale.sol' in /tmp/codex-tv_xeqx5 succeeded in 6ms:
1 // SPDX-License-Identifier: MIT
2 pragma solidity ^0.8.30;
3
4 import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5 import "@openzeppelin/contracts/access/Ownable.sol";
6 import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
7 import "@openzeppelin/contracts/utils/Pausable.sol";
8
9 /**
10 * @title NFTPurchase
11 * @dev Contract for purchasing Solana NFTs with USDC/USDT on EVM chains
12 * @author Cross-Chain NFT System
13 */
14 contract NFTPurchase is Ownable, ReentrancyGuard, Pausable {
15 // Fixed price: 100 USDC/USDT (6 decimals)
16 uint256 public NFT_PRICE = 100 * 10 ** 6;
17
18 // Supported stablecoins
19 address public immutable USDC;
20 address public immutable USDT;
thinking
**Generating JSON output for findings**
codex
{"no_findings":false,"summary":"Two issues: ERC20 transfers are not checked for success, and the purchase logic does not verify the actual amount received (fee-on-transfer tokens).","findings":[{"severity":"medium","category":"other","title":"Unchecked ERC20 transfer/transferFrom return values can record purchases or refunds without a successful token transfer","exploit_scenario":"If a supported token returns false instead of reverting (or a misconfigured/old USDT variant), `transferFrom` in `purchaseNFT` can fail silently. The contract still records the purchase and emits the event, enabling a buyer to obtain an NFT off-chain without paying. Similarly, `refundPurchase` and `withdrawFunds` can emit success events even when the token transfer fails, leaving state inconsistent with actual balances.","recommendation":"Use `SafeERC20` and check transfer results (or require the return value to be true). Consider reverting on failure to keep state consistent with transfers.","evidence":"`IERC20(token).transferFrom(...)` and `IERC20(...).transfer(...)` calls ignore the returned boolean.","locations":["nftSale.sol:103","nftSale.sol:154","nftSale.sol:176"]},{"severity":"low","category":"math","title":"No verification of actual tokens received allows underpayment for fee-on-transfer tokens","exploit_scenario":"If the owner enables a deflationary/fee-on-transfer token via `setSupportedToken`, `purchaseNFT` records a fixed `NFT_PRICE` and emits purchase events even though the contract may receive less than `NFT_PRICE`. This can cause underpayment and accounting mismatches when the off-chain system delivers NFTs based on events.","recommendation":"Restrict support to non-fee tokens, or compute the received amount via balanceBefore/balanceAfter and require it equals `NFT_PRICE` (or store the actual received amount).","evidence":"No balance-delta or return-value checks around the payment transfer; amount recorded is always `NFT_PRICE`.","locations":["nftSale.sol:103","nftSale.sol:109"]}]}
tokens used
10,783
{
"codex": {
"ran_at": "2026-01-13T02:00:14.771204+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 6,
"import_count": 5,
"first_party_contracts_count": 1
},
"summary": "Two issues: ERC20 transfers are not checked for success, and the purchase logic does not verify the actual amount received (fee-on-transfer tokens).",
"raw_final": {
"summary": "Two issues: ERC20 transfers are not checked for success, and the purchase logic does not verify the actual amount received (fee-on-transfer tokens).",
"findings": [
{
"title": "Unchecked ERC20 transfer/transferFrom return values can record purchases or refunds without a successful token transfer",
"category": "other",
"evidence": "`IERC20(token).transferFrom(...)` and `IERC20(...).transfer(...)` calls ignore the returned boolean.",
"severity": "medium",
"locations": [
"nftSale.sol:103",
"nftSale.sol:154",
"nftSale.sol:176"
],
"recommendation": "Use `SafeERC20` and check transfer results (or require the return value to be true). Consider reverting on failure to keep state consistent with transfers.",
"exploit_scenario": "If a supported token returns false instead of reverting (or a misconfigured/old USDT variant), `transferFrom` in `purchaseNFT` can fail silently. The contract still records the purchase and emits the event, enabling a buyer to obtain an NFT off-chain without paying. Similarly, `refundPurchase` and `withdrawFunds` can emit success events even when the token transfer fails, leaving state inconsistent with actual balances."
},
{
"title": "No verification of actual tokens received allows underpayment for fee-on-transfer tokens",
"category": "math",
"evidence": "No balance-delta or return-value checks around the payment transfer; amount recorded is always `NFT_PRICE`.",
"severity": "low",
"locations": [
"nftSale.sol:103",
"nftSale.sol:109"
],
"recommendation": "Restrict support to non-fee tokens, or compute the received amount via balanceBefore/balanceAfter and require it equals `NFT_PRICE` (or store the actual received amount).",
"exploit_scenario": "If the owner enables a deflationary/fee-on-transfer token via `setSupportedToken`, `purchaseNFT` records a fixed `NFT_PRICE` and emits purchase events even though the contract may receive less than `NFT_PRICE`. This can cause underpayment and accounting mismatches when the off-chain system delivers NFTs based on events."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: CALLVALUE 00000006: DUP1 00000007: ISZERO 00000008: PUSH2 0x000f 0000000b: JUMPI 0000000c: PUSH0 0000000d: PUSH0 0000000e: REVERT 0000000f: JUMPDEST 00000010: POP 00000011: PUSH1 0x04 00000013: CALLDATASIZE 00000014: LT 00000015: PUSH2 0x0129 00000018: JUMPI 00000019: PUSH0 0000001a: CALLDATALOAD 0000001b: PUSH1 0xe0 0000001d: SHR 0000001e: DUP1 0000001f: PUSH4 0x89a30271 00000024: GT 00000025: PUSH2 0x00ab 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xc6e5d8f6 0000002f: GT 00000030: PUSH2 0x006f 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xc6e5d8f6 0000003a: EQ 0000003b: PUSH2 0x02e8 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xcf2c0334 00000045: EQ 00000046: PUSH2 0x0318 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xe7986466 00000050: EQ 00000051: PUSH2 0x0348 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xea04f155 0000005b: EQ 0000005c: PUSH2 0x0364 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xf2fde38b 00000066: EQ 00000067: PUSH2 0x0382 0000006a: JUMPI 0000006b: PUSH2 0x0129 0000006e: JUMP 0000006f: JUMPDEST 00000070: DUP1 00000071: PUSH4 0x89a30271 00000076: EQ 00000077: PUSH2 0x0256 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0x8da5cb5b 00000081: EQ 00000082: PUSH2 0x0274 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xa2b40d19 0000008c: EQ 0000008d: PUSH2 0x0292 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0xb7d82bc3 00000097: EQ 00000098: PUSH2 0x02ae 0000009b: JUMPI 0000009c: DUP1 0000009d: PUSH4 0xc54e44eb 000000a2: EQ 000000a3: PUSH2 0x02ca 000000a6: JUMPI 000000a7: PUSH2 0x0129 000000aa: JUMP 000000ab: JUMPDEST 000000ac: DUP1 000000ad: PUSH4 0x676dd563 000000b2: GT 000000b3: PUSH2 0x00f2 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x676dd563 000000bd: EQ 000000be: PUSH2 0x01bd 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0x68c4ac26 000000c8: EQ 000000c9: PUSH2 0x01db 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0x715018a6 000000d3: EQ 000000d4: PUSH2 0x020b 000000d7: JUMPI 000000d8: DUP1 000000d9: PUSH4 0x8392fe31 000000de: EQ 000000df: PUSH2 0x0215 000000e2: JUMPI 000000e3: DUP1 000000e4: PUSH4 0x8456cb59 000000e9: EQ 000000ea: PUSH2 0x024c 000000ed: JUMPI 000000ee: PUSH2 0x0129 000000f1: JUMP 000000f2: JUMPDEST 000000f3: DUP1 000000f4: PUSH3 0x0fa9fb 000000f8: EQ 000000f9: PUSH2 0x012d 000000fc: JUMPI 000000fd: DUP1 000000fe: PUSH4 0x1c77b27a 00000103: EQ 00000104: PUSH2 0x0149 00000107: JUMPI 00000108: DUP1 00000109: PUSH4 0x3aecd0e3 0000010e: EQ 0000010f: PUSH2 0x0165 00000112: JUMPI 00000113: DUP1 00000114: PUSH4 0x3f4ba83a 00000119: EQ 0000011a: PUSH2 0x0195 0000011d: JUMPI 0000011e: DUP1 0000011f: PUSH4 0x5c975abb 00000124: EQ 00000125: PUSH2 0x019f 00000128: JUMPI 00000129: JUMPDEST 0000012a: PUSH0 0000012b: PUSH0 0000012c: REVERT 0000012d: JUMPDEST 0000012e: PUSH2 0x0147 00000131: PUSH1 0x04 00000133: DUP1 00000134: CALLDATASIZE 00000135: SUB 00000136: DUP2 00000137: ADD 00000138: SWAP1 00000139: PUSH2 0x0142 0000013c: SWAP2 0000013d: SWAP1 0000013e: PUSH2 0x1ae5 00000141: JUMP 00000142: JUMPDEST 00000143: PUSH2 0x039e 00000146: JUMP 00000147: JUMPDEST 00000148: STOP 00000149: JUMPDEST 0000014a: PUSH2 0x0163 0000014d: PUSH1 0x04 0000014f: DUP1 00000150: CALLDATASIZE 00000151: SUB 00000152: DUP2 00000153: ADD 00000154: SWAP1 00000155: PUSH2 0x015e 00000158: SWAP2 00000159: SWAP1 0000015a: PUSH2 0x1b56 0000015d: JUMP 0000015e: JUMPDEST 0000015f: PUSH2 0x0640 00000162: JUMP 00000163: JUMPDEST 00000164: STOP 00000165: JUMPDEST 00000166: PUSH2 0x017f 00000169: PUSH1 0x04 0000016b: DUP1 0000016c: CALLDATASIZE 0000016d: SUB 0000016e: DUP2 0000016f: ADD 00000170: SWAP1 00000171: PUSH2 0x017a 00000174: SWAP2 00000175: SWAP1 00000176: PUSH2 0x1b81 00000179: JUMP 0000017a: JUMPDEST 0000017b: PUSH2 0x0873 0000017e: JUMP 0000017f: JUMPDEST 00000180: PUSH1 0x40 00000182: MLOAD 00000183: PUSH2 0x018c 00000186: SWAP2 00000187: SWAP1 00000188: PUSH2 0x1bbb 0000018b: JUMP 0000018c: JUMPDEST 0000018d: PUSH1 0x40 0000018f: MLOAD 00000190: DUP1 00000191: SWAP2 00000192: SUB 00000193: SWAP1 00000194: RETURN 00000195: JUMPDEST 00000196: PUSH2 0x019d 00000199: PUSH2 0x08f3 0000019c: JUMP 0000019d: JUMPDEST 0000019e: STOP 0000019f: JUMPDEST 000001a0: PUSH2 0x01a7 000001a3: PUSH2 0x0905 000001a6: JUMP 000001a7: JUMPDEST 000001a8: PUSH1 0x40 000001aa: MLOAD 000001ab: PUSH2 0x01b4 000001ae: SWAP2 000001af: SWAP1 000001b0: PUSH2 0x1bee 000001b3: JUMP 000001b4: JUMPDEST 000001b5: PUSH1 0x40 000001b7: MLOAD 000001b8: DUP1 000001b9: SWAP2 000001ba: SUB 000001bb: SWAP1 000001bc: RETURN 000001bd: JUMPDEST 000001be: PUSH2 0x01c5 000001c1: PUSH2 0x091a 000001c4: JUMP 000001c5: JUMPDEST 000001c6: PUSH1 0x40 000001c8: MLOAD 000001c9: PUSH2 0x01d2 000001cc: SWAP2 000001cd: SWAP1 000001ce: PUSH2 0x1bbb 000001d1: JUMP 000001d2: JUMPDEST 000001d3: PUSH1 0x40 000001d5: MLOAD 000001d6: DUP1 000001d7: SWAP2 000001d8: SUB 000001d9: SWAP1 000001da: RETURN 000001db: JUMPDEST 000001dc: PUSH2 0x01f5 000001df: PUSH1 0x04 000001e1: DUP1 000001e2: CALLDATASIZE 000001e3: SUB 000001e4: DUP2 000001e5: ADD 000001e6: SWAP1 000001e7: PUSH2 0x01f0 000001ea: SWAP2 000001eb: SWAP1 000001ec: PUSH2 0x1b81 000001ef: JUMP 000001f0: JUMPDEST 000001f1: PUSH2 0x0920 000001f4: JUMP 000001f5: JUMPDEST 000001f6: PUSH1 0x40 000001f8: MLOAD 000001f9: PUSH2 0x0202 000001fc: SWAP2 000001fd: SWAP1 000001fe: PUSH2 0x1bee 00000201: JUMP 00000202: JUMPDEST 00000203: PUSH1 0x40 00000205: MLOAD 00000206: DUP1 00000207: SWAP2 00000208: SUB 00000209: SWAP1 0000020a: RETURN 0000020b: JUMPDEST 0000020c: PUSH2 0x0213 0000020f: PUSH2 0x093d 00000212: JUMP 00000213: JUMPDEST 00000214: STOP 00000215: JUMPDEST 00000216: PUSH2 0x022f 00000219: PUSH1 0x04 0000021b: DUP1 0000021c: CALLDATASIZE 0000021d: SUB 0000021e: DUP2 0000021f: ADD 00000220: SWAP1 00000221: PUSH2 0x022a 00000224: SWAP2 00000225: SWAP1 00000226: PUSH2 0x1b56 00000229: JUMP 0000022a: JUMPDEST 0000022b: PUSH2 0x0950 0000022e: JUMP 0000022f: JUMPDEST 00000230: PUSH1 0x40 00000232: MLOAD 00000233: PUSH2 0x0243 00000236: SWAP9 00000237: SWAP8 00000238: SWAP7 00000239: SWAP6 0000023a: SWAP5 0000023b: SWAP4 0000023c: SWAP3 0000023d: SWAP2 0000023e: SWAP1 0000023f: PUSH2 0x1c86 00000242: JUMP 00000243: JUMPDEST 00000244: PUSH1 0x40 00000246: MLOAD 00000247: DUP1 00000248: SWAP2 00000249: SUB 0000024a: SWAP1 0000024b: RETURN 0000024c: JUMPDEST 0000024d: PUSH2 0x0254 00000250: PUSH2 0x0aea 00000253: JUMP 00000254: JUMPDEST 00000255: STOP 00000256: JUMPDEST 00000257: PUSH2 0x025e 0000025a: PUSH2 0x0afc 0000025d: JUMP 0000025e: JUMPDEST 0000025f: PUSH1 0x40 00000261: MLOAD 00000262: PUSH2 0x026b 00000265: SWAP2 00000266: SWAP1 00000267: PUSH2 0x1d10 0000026a: JUMP 0000026b: JUMPDEST 0000026c: PUSH1 0x40 0000026e: MLOAD 0000026f: DUP1 00000270: SWAP2 00000271: SUB 00000272: SWAP1 00000273: RETURN 00000274: JUMPDEST 00000275: PUSH2 0x027c 00000278: PUSH2 0x0b20 0000027b: JUMP 0000027c: JUMPDEST 0000027d: PUSH1 0x40 0000027f: MLOAD 00000280: PUSH2 0x0289 00000283: SWAP2 00000284: SWAP1 00000285: PUSH2 0x1d10 00000288: JUMP 00000289: JUMPDEST 0000028a: PUSH1 0x40 0000028c: MLOAD 0000028d: DUP1 0000028e: SWAP2 0000028f: SUB 00000290: SWAP1 00000291: RETURN 00000292: JUMPDEST 00000293: PUSH2 0x02ac 00000296: PUSH1 0x04 00000298: DUP1 00000299: CALLDATASIZE 0000029a: SUB 0000029b: DUP2 0000029c: ADD 0000029d: SWAP1 0000029e: PUSH2 0x02a7 000002a1: SWAP2 000002a2: SWAP1 000002a3: PUSH2 0x1b56 000002a6: JUMP 000002a7: JUMPDEST 000002a8: PUSH2 0x0b47 000002ab: JUMP 000002ac: JUMPDEST 000002ad: STOP 000002ae: JUMPDEST 000002af: PUSH2 0x02c8 000002b2: PUSH1 0x04 000002b4: DUP1 000002b5: CALLDATASIZE 000002b6: SUB 000002b7: DUP2 000002b8: ADD 000002b9: SWAP1 000002ba: PUSH2 0x02c3 000002bd: SWAP2 000002be: SWAP1 000002bf: PUSH2 0x1d8a 000002c2: JUMP 000002c3: JUMPDEST 000002c4: PUSH2 0x0bed 000002c7: JUMP 000002c8: JUMPDEST 000002c9: STOP 000002ca: JUMPDEST 000002cb: PUSH2 0x02d2 000002ce: PUSH2 0x110c 000002d1: JUMP 000002d2: JUMPDEST 000002d3: PUSH1 0x40 000002d5: MLOAD 000002d6: PUSH2 0x02df 000002d9: SWAP2 000002da: SWAP1 000002db: PUSH2 0x1d10 000002de: JUMP 000002df: JUMPDEST 000002e0: PUSH1 0x40 000002e2: MLOAD 000002e3: DUP1 000002e4: SWAP2 000002e5: SUB 000002e6: SWAP1 000002e7: RETURN 000002e8: JUMPDEST 000002e9: PUSH2 0x0302 000002ec: PUSH1 0x04 000002ee: DUP1 000002ef: CALLDATASIZE 000002f0: SUB 000002f1: DUP2 000002f2: ADD 000002f3: SWAP1 000002f4: PUSH2 0x02fd 000002f7: SWAP2 000002f8: SWAP1 000002f9: PUSH2 0x1b81 000002fc: JUMP 000002fd: JUMPDEST 000002fe: PUSH2 0x1130 00000301: JUMP 00000302: JUMPDEST 00000303: PUSH1 0x40 00000305: MLOAD 00000306: PUSH2 0x030f 00000309: SWAP2 0000030a: SWAP1 0000030b: PUSH2 0x1ed2 0000030e: JUMP 0000030f: JUMPDEST 00000310: PUSH1 0x40 00000312: MLOAD 00000313: DUP1 00000314: SWAP2 00000315: SUB 00000316: SWAP1 00000317: RETURN 00000318: JUMPDEST 00000319: PUSH2 0x0332 0000031c: PUSH1 0x04 0000031e: DUP1 0000031f: CALLDATASIZE 00000320: SUB 00000321: DUP2 00000322: ADD 00000323: SWAP1 00000324: PUSH2 0x032d 00000327: SWAP2 00000328: SWAP1 00000329: PUSH2 0x1ef2 0000032c: JUMP 0000032d: JUMPDEST 0000032e: PUSH2 0x11c3 00000331: JUMP 00000332: JUMPDEST 00000333: PUSH1 0x40 00000335: MLOAD 00000336: PUSH2 0x033f 00000339: SWAP2 0000033a: SWAP1 0000033b: PUSH2 0x1bbb 0000033e: JUMP 0000033f: JUMPDEST 00000340: PUSH1 0x40 00000342: MLOAD 00000343: DUP1 00000344: SWAP2 00000345: SUB 00000346: SWAP1 00000347: RETURN 00000348: JUMPDEST 00000349: PUSH2 0x0362 0000034c: PUSH1 0x04 0000034e: DUP1 0000034f: CALLDATASIZE 00000350: SUB 00000351: DUP2 00000352: ADD 00000353: SWAP1 00000354: PUSH2 0x035d 00000357: SWAP2 00000358: SWAP1 00000359: PUSH2 0x1f5a 0000035c: JUMP 0000035d: JUMPDEST 0000035e: PUSH2 0x11ee 00000361: JUMP 00000362: JUMPDEST 00000363: STOP 00000364: JUMPDEST 00000365: PUSH2 0x036c 00000368: PUSH2 0x130a 0000036b: JUMP 0000036c: JUMPDEST 0000036d: PUSH1 0x40 0000036f: MLOAD 00000370: PUSH2 0x0379 00000373: SWAP2 00000374: SWAP1 00000375: PUSH2 0x1bbb 00000378: JUMP 00000379: JUMPDEST 0000037a: PUSH1 0x40 0000037c: MLOAD 0000037d: DUP1 0000037e: SWAP2 0000037f: SUB 00000380: SWAP1 00000381: RETURN 00000382: JUMPDEST 00000383: PUSH2 0x039c 00000386: PUSH1 0x04 00000388: DUP1 00000389: CALLDATASIZE 0000038a: SUB 0000038b: DUP2 0000038c: ADD 0000038d: SWAP1 0000038e: PUSH2 0x0397 00000391: SWAP2 00000392: SWAP1 00000393: PUSH2 0x1b81 00000396: JUMP 00000397: JUMPDEST 00000398: PUSH2 0x1313 0000039b: JUMP 0000039c: JUMPDEST 0000039d: STOP 0000039e: JUMPDEST 0000039f: PUSH2 0x03a6 000003a2: PUSH2 0x1397 000003a5: JUMP 000003a6: JUMPDEST 000003a7: PUSH0 000003a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003bd: AND 000003be: DUP2 000003bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003d4: AND 000003d5: SUB 000003d6: PUSH2 0x0414 000003d9: JUMPI 000003da: PUSH1 0x40 000003dc: MLOAD 000003dd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000003fe: DUP2 000003ff: MSTORE 00000400: PUSH1 0x04 00000402: ADD 00000403: PUSH2 0x040b 00000406: SWAP1 00000407: PUSH2 0x1fe2 0000040a: JUMP 0000040b: JUMPDEST 0000040c: PUSH1 0x40 0000040e: MLOAD 0000040f: DUP1 00000410: SWAP2 00000411: SUB 00000412: SWAP1 00000413: REVERT 00000414: JUMPDEST 00000415: PUSH1 0x07 00000417: PUSH0 00000418: DUP4 00000419: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000042e: AND 0000042f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000444: AND 00000445: DUP2 00000446: MSTORE 00000447: PUSH1 0x20 00000449: ADD 0000044a: SWAP1 0000044b: DUP2 0000044c: MSTORE 0000044d: PUSH1 0x20 0000044f: ADD 00000450: PUSH0 00000451: KECCAK256 00000452: PUSH0 00000453: SWAP1 00000454: SLOAD 00000455: SWAP1 00000456: PUSH2 0x0100 00000459: EXP 0000045a: SWAP1 0000045b: DIV 0000045c: PUSH1 0xff 0000045e: AND 0000045f: PUSH2 0x049d 00000462: JUMPI 00000463: PUSH1 0x40 00000465: MLOAD 00000466: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000487: DUP2 00000488: MSTORE 00000489: PUSH1 0x04 0000048b: ADD 0000048c: PUSH2 0x0494 0000048f: SWAP1 00000490: PUSH2 0x204a 00000493: JUMP 00000494: JUMPDEST 00000495: PUSH1 0x40 00000497: MLOAD 00000498: DUP1 00000499: SWAP2 0000049a: SUB 0000049b: SWAP1 0000049c: REVERT 0000049d: JUMPDEST 0000049e: PUSH0 0000049f: DUP3 000004a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004b5: AND 000004b6: PUSH4 0x70a08231 000004bb: ADDRESS 000004bc: PUSH1 0x40 000004be: MLOAD 000004bf: DUP3 000004c0: PUSH4 0xffffffff 000004c5: AND 000004c6: PUSH1 0xe0 000004c8: SHL 000004c9: DUP2 000004ca: MSTORE 000004cb: PUSH1 0x04 000004cd: ADD 000004ce: PUSH2 0x04d7 000004d1: SWAP2 000004d2: SWAP1 000004d3: PUSH2 0x1d10 000004d6: JUMP 000004d7: JUMPDEST 000004d8: PUSH1 0x20 000004da: PUSH1 0x40 000004dc: MLOAD 000004dd: DUP1 000004de: DUP4 000004df: SUB 000004e0: DUP2 000004e1: DUP7 000004e2: GAS 000004e3: STATICCALL 000004e4: ISZERO 000004e5: DUP1 000004e6: ISZERO 000004e7: PUSH2 0x04f2 000004ea: JUMPI 000004eb: RETURNDATASIZE 000004ec: PUSH0 000004ed: PUSH0 000004ee: RETURNDATACOPY 000004ef: RETURNDATASIZE 000004f0: PUSH0 000004f1: REVERT 000004f2: JUMPDEST 000004f3: POP 000004f4: POP 000004f5: POP 000004f6: POP 000004f7: PUSH1 0x40 000004f9: MLOAD 000004fa: RETURNDATASIZE 000004fb: PUSH1 0x1f 000004fd: NOT 000004fe: PUSH1 0x1f 00000500: DUP3 00000501: ADD 00000502: AND 00000503: DUP3 00000504: ADD 00000505: DUP1 00000506: PUSH1 0x40 00000508: MSTORE 00000509: POP 0000050a: DUP2 0000050b: ADD 0000050c: SWAP1 0000050d: PUSH2 0x0516 00000510: SWAP2 00000511: SWAP1 00000512: PUSH2 0x207c 00000515: JUMP 00000516: JUMPDEST 00000517: SWAP1 00000518: POP 00000519: PUSH0 0000051a: DUP2 0000051b: GT 0000051c: PUSH2 0x055a 0000051f: JUMPI 00000520: PUSH1 0x40 00000522: MLOAD 00000523: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000544: DUP2 00000545: MSTORE 00000546: PUSH1 0x04 00000548: ADD 00000549: PUSH2 0x0551 0000054c: SWAP1 0000054d: PUSH2 0x20f1 00000550: JUMP 00000551: JUMPDEST 00000552: PUSH1 0x40 00000554: MLOAD 00000555: DUP1 00000556: SWAP2 00000557: SUB 00000558: SWAP1 00000559: REVERT 0000055a: JUMPDEST 0000055b: DUP3 0000055c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000571: AND 00000572: PUSH4 0xa9059cbb 00000577: DUP4 00000578: DUP4 00000579: PUSH1 0x40 0000057b: MLOAD 0000057c: DUP4 0000057d: PUSH4 0xffffffff 00000582: AND 00000583: PUSH1 0xe0 00000585: SHL 00000586: DUP2 00000587: MSTORE 00000588: PUSH1 0x04 0000058a: ADD 0000058b: PUSH2 0x0595 0000058e: SWAP3 0000058f: SWAP2 00000590: SWAP1 00000591: PUSH2 0x210f 00000594: JUMP 00000595: JUMPDEST 00000596: PUSH1 0x20 00000598: PUSH1 0x40 0000059a: MLOAD 0000059b: DUP1 0000059c: DUP4 0000059d: SUB 0000059e: DUP2 0000059f: PUSH0 000005a0: DUP8 000005a1: GAS 000005a2: CALL 000005a3: ISZERO 000005a4: DUP1 000005a5: ISZERO 000005a6: PUSH2 0x05b1 000005a9: JUMPI 000005aa: RETURNDATASIZE 000005ab: PUSH0 000005ac: PUSH0 000005ad: RETURNDATACOPY 000005ae: RETURNDATASIZE 000005af: PUSH0 000005b0: REVERT 000005b1: JUMPDEST 000005b2: POP 000005b3: POP 000005b4: POP 000005b5: POP 000005b6: PUSH1 0x40 000005b8: MLOAD 000005b9: RETURNDATASIZE 000005ba: PUSH1 0x1f 000005bc: NOT 000005bd: PUSH1 0x1f 000005bf: DUP3 000005c0: ADD 000005c1: AND 000005c2: DUP3 000005c3: ADD 000005c4: DUP1 000005c5: PUSH1 0x40 000005c7: MSTORE 000005c8: POP 000005c9: DUP2 000005ca: ADD 000005cb: SWAP1 000005cc: PUSH2 0x05d5 000005cf: SWAP2 000005d0: SWAP1 000005d1: PUSH2 0x214a 000005d4: JUMP 000005d5: JUMPDEST 000005d6: POP 000005d7: DUP2 000005d8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005ed: AND 000005ee: DUP4 000005ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000604: AND 00000605: PUSH32 0xa92ff919b850e4909ab2261d907ef955f11bc1716733a6cbece38d163a69af8a 00000626: DUP4 00000627: PUSH1 0x40 00000629: MLOAD 0000062a: PUSH2 0x0633 0000062d: SWAP2 0000062e: SWAP1 0000062f: PUSH2 0x1bbb 00000632: JUMP 00000633: JUMPDEST 00000634: PUSH1 0x40 00000636: MLOAD 00000637: DUP1 00000638: SWAP2 00000639: SUB 0000063a: SWAP1 0000063b: LOG3 0000063c: POP 0000063d: POP 0000063e: POP 0000063f: JUMP 00000640: JUMPDEST 00000641: PUSH2 0x0648 00000644: PUSH2 0x1397 00000647: JUMP 00000648: JUMPDEST 00000649: PUSH0 0000064a: PUSH1 0x05 0000064c: PUSH0 0000064d: DUP4 0000064e: DUP2 0000064f: MSTORE 00000650: PUSH1 0x20 00000652: ADD 00000653: SWAP1 00000654: DUP2 00000655: MSTORE 00000656: PUSH1 0x20 00000658: ADD 00000659: PUSH0 0000065a: KECCAK256 0000065b: SWAP1 0000065c: POP 0000065d: PUSH0 0000065e: DUP2 0000065f: PUSH0 00000660: ADD 00000661: SLOAD 00000662: SUB 00000663: PUSH2 0x06a1 00000666: JUMPI 00000667: PUSH1 0x40 00000669: MLOAD 0000066a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000068b: DUP2 0000068c: MSTORE 0000068d: PUSH1 0x04 0000068f: ADD 00000690: PUSH2 0x0698 00000693: SWAP1 00000694: PUSH2 0x21bf 00000697: JUMP 00000698: JUMPDEST 00000699: PUSH1 0x40 0000069b: MLOAD 0000069c: DUP1 0000069d: SWAP2 0000069e: SUB 0000069f: SWAP1 000006a0: REVERT 000006a1: JUMPDEST 000006a2: DUP1 000006a3: PUSH1 0x07 000006a5: ADD 000006a6: PUSH0 000006a7: SWAP1 000006a8: SLOAD 000006a9: SWAP1 000006aa: PUSH2 0x0100 000006ad: EXP 000006ae: SWAP1 000006af: DIV 000006b0: PUSH1 0xff 000006b2: AND 000006b3: ISZERO 000006b4: PUSH2 0x06f2 000006b7: JUMPI 000006b8: PUSH1 0x40 000006ba: MLOAD 000006bb: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000006dc: DUP2 000006dd: MSTORE 000006de: PUSH1 0x04 000006e0: ADD 000006e1: PUSH2 0x06e9 000006e4: SWAP1 000006e5: PUSH2 0x2227 000006e8: JUMP 000006e9: JUMPDEST 000006ea: PUSH1 0x40 000006ec: MLOAD 000006ed: DUP1 000006ee: SWAP2 000006ef: SUB 000006f0: SWAP1 000006f1: REVERT 000006f2: JUMPDEST 000006f3: PUSH1 0x01 000006f5: DUP2 000006f6: PUSH1 0x07 000006f8: ADD 000006f9: PUSH0 000006fa: PUSH2 0x0100 000006fd: EXP 000006fe: DUP2 000006ff: SLOAD 00000700: DUP2 00000701: PUSH1 0xff 00000703: MUL 00000704: NOT 00000705: AND 00000706: SWAP1 00000707: DUP4 00000708: ISZERO 00000709: ISZERO 0000070a: MUL 0000070b: OR 0000070c: SWAP1 0000070d: SSTORE 0000070e: POP 0000070f: DUP1 00000710: PUSH1 0x02 00000712: ADD 00000713: PUSH0 00000714: SWAP1 00000715: SLOAD 00000716: SWAP1 00000717: PUSH2 0x0100 0000071a: EXP 0000071b: SWAP1 0000071c: DIV 0000071d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000732: AND 00000733: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000748: AND 00000749: PUSH4 0xa9059cbb 0000074e: DUP3 0000074f: PUSH1 0x01 00000751: ADD 00000752: PUSH0 00000753: SWAP1 00000754: SLOAD 00000755: SWAP1 00000756: PUSH2 0x0100 00000759: EXP 0000075a: SWAP1 0000075b: DIV 0000075c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000771: AND 00000772: DUP4 00000773: PUSH1 0x03 00000775: ADD 00000776: SLOAD 00000777: PUSH1 0x40 00000779: MLOAD 0000077a: DUP4 0000077b: PUSH4 0xffffffff 00000780: AND 00000781: PUSH1 0xe0 00000783: SHL 00000784: DUP2 00000785: MSTORE 00000786: PUSH1 0x04 00000788: ADD 00000789: PUSH2 0x0793 0000078c: SWAP3 0000078d: SWAP2 0000078e: SWAP1 0000078f: PUSH2 0x210f 00000792: JUMP 00000793: JUMPDEST 00000794: PUSH1 0x20 00000796: PUSH1 0x40 00000798: MLOAD 00000799: DUP1 0000079a: DUP4 0000079b: SUB 0000079c: DUP2 0000079d: PUSH0 0000079e: DUP8 0000079f: GAS 000007a0: CALL 000007a1: ISZERO 000007a2: DUP1 000007a3: ISZERO 000007a4: PUSH2 0x07af 000007a7: JUMPI 000007a8: RETURNDATASIZE 000007a9: PUSH0 000007aa: PUSH0 000007ab: RETURNDATACOPY 000007ac: RETURNDATASIZE 000007ad: PUSH0 000007ae: REVERT 000007af: JUMPDEST 000007b0: POP 000007b1: POP 000007b2: POP 000007b3: POP 000007b4: PUSH1 0x40 000007b6: MLOAD 000007b7: RETURNDATASIZE 000007b8: PUSH1 0x1f 000007ba: NOT 000007bb: PUSH1 0x1f 000007bd: DUP3 000007be: ADD 000007bf: AND 000007c0: DUP3 000007c1: ADD 000007c2: DUP1 000007c3: PUSH1 0x40 000007c5: MSTORE 000007c6: POP 000007c7: DUP2 000007c8: ADD 000007c9: SWAP1 000007ca: PUSH2 0x07d3 000007cd: SWAP2 000007ce: SWAP1 000007cf: PUSH2 0x214a 000007d2: JUMP 000007d3: JUMPDEST 000007d4: POP 000007d5: DUP1 000007d6: PUSH1 0x01 000007d8: ADD 000007d9: PUSH0 000007da: SWAP1 000007db: SLOAD 000007dc: SWAP1 000007dd: PUSH2 0x0100 000007e0: EXP 000007e1: SWAP1 000007e2: DIV 000007e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007f8: AND 000007f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000080e: AND 0000080f: DUP3 00000810: PUSH32 0xd1fad9cd11e486d9dc7b554439cc5cbbc8167ea53a37b0a9d291abe74beb4dfa 00000831: DUP4 00000832: PUSH1 0x02 00000834: ADD 00000835: PUSH0 00000836: SWAP1 00000837: SLOAD 00000838: SWAP1 00000839: PUSH2 0x0100 0000083c: EXP 0000083d: SWAP1 0000083e: DIV 0000083f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000854: AND 00000855: DUP5 00000856: PUSH1 0x03 00000858: ADD 00000859: SLOAD 0000085a: PUSH1 0x40 0000085c: MLOAD 0000085d: PUSH2 0x0867 00000860: SWAP3 00000861: SWAP2 00000862: SWAP1 00000863: PUSH2 0x210f 00000866: JUMP 00000867: JUMPDEST 00000868: PUSH1 0x40 0000086a: MLOAD 0000086b: DUP1 0000086c: SWAP2 0000086d: SUB 0000086e: SWAP1 0000086f: LOG3 00000870: POP 00000871: POP 00000872: JUMP 00000873: JUMPDEST 00000874: PUSH0 00000875: DUP2 00000876: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000088b: AND 0000088c: PUSH4 0x70a08231 00000891: ADDRESS 00000892: PUSH1 0x40 00000894: MLOAD 00000895: DUP3 00000896: PUSH4 0xffffffff 0000089b: AND 0000089c: PUSH1 0xe0 0000089e: SHL 0000089f: DUP2 000008a0: MSTORE 000008a1: PUSH1 0x04 000008a3: ADD 000008a4: PUSH2 0x08ad 000008a7: SWAP2 000008a8: SWAP1 000008a9: PUSH2 0x1d10 000008ac: JUMP 000008ad: JUMPDEST 000008ae: PUSH1 0x20 000008b0: PUSH1 0x40 000008b2: MLOAD 000008b3: DUP1 000008b4: DUP4 000008b5: SUB 000008b6: DUP2 000008b7: DUP7 000008b8: GAS 000008b9: STATICCALL 000008ba: ISZERO 000008bb: DUP1 000008bc: ISZERO 000008bd: PUSH2 0x08c8 000008c0: JUMPI 000008c1: RETURNDATASIZE 000008c2: PUSH0 000008c3: PUSH0 000008c4: RETURNDATACOPY 000008c5: RETURNDATASIZE 000008c6: PUSH0 000008c7: REVERT 000008c8: JUMPDEST 000008c9: POP 000008ca: POP 000008cb: POP 000008cc: POP 000008cd: PUSH1 0x40 000008cf: MLOAD 000008d0: RETURNDATASIZE 000008d1: PUSH1 0x1f 000008d3: NOT 000008d4: PUSH1 0x1f 000008d6: DUP3 000008d7: ADD 000008d8: AND 000008d9: DUP3 000008da: ADD 000008db: DUP1 000008dc: PUSH1 0x40 000008de: MSTORE 000008df: POP 000008e0: DUP2 000008e1: ADD 000008e2: SWAP1 000008e3: PUSH2 0x08ec 000008e6: SWAP2 000008e7: SWAP1 000008e8: PUSH2 0x207c 000008eb: JUMP 000008ec: JUMPDEST 000008ed: SWAP1 000008ee: POP 000008ef: SWAP2 000008f0: SWAP1 000008f1: POP 000008f2: JUMP 000008f3: JUMPDEST 000008f4: PUSH2 0x08fb 000008f7: PUSH2 0x1397 000008fa: JUMP 000008fb: JUMPDEST 000008fc: PUSH2 0x0903 000008ff: PUSH2 0x141e 00000902: JUMP 00000903: JUMPDEST 00000904: JUMP 00000905: JUMPDEST 00000906: PUSH0 00000907: PUSH1 0x02 00000909: PUSH0 0000090a: SWAP1 0000090b: SLOAD 0000090c: SWAP1 0000090d: PUSH2 0x0100 00000910: EXP 00000911: SWAP1 00000912: DIV 00000913: PUSH1 0xff 00000915: AND 00000916: SWAP1 00000917: POP 00000918: SWAP1 00000919: JUMP 0000091a: JUMPDEST 0000091b: PUSH1 0x03 0000091d: SLOAD 0000091e: DUP2 0000091f: JUMP 00000920: JUMPDEST 00000921: PUSH1 0x07 00000923: PUSH1 0x20 00000925: MSTORE 00000926: DUP1 00000927: PUSH0 00000928: MSTORE 00000929: PUSH1 0x40 0000092b: PUSH0 0000092c: KECCAK256 0000092d: PUSH0 0000092e: SWAP2 0000092f: POP 00000930: SLOAD 00000931: SWAP1 00000932: PUSH2 0x0100 00000935: EXP 00000936: SWAP1 00000937: DIV 00000938: PUSH1 0xff 0000093a: AND 0000093b: DUP2 0000093c: JUMP 0000093d: JUMPDEST 0000093e: PUSH2 0x0945 00000941: PUSH2 0x1397 00000944: JUMP 00000945: JUMPDEST 00000946: PUSH2 0x094e 00000949: PUSH0 0000094a: PUSH2 0x147f 0000094d: JUMP 0000094e: JUMPDEST 0000094f: JUMP 00000950: JUMPDEST 00000951: PUSH1 0x05 00000953: PUSH1 0x20 00000955: MSTORE 00000956: DUP1 00000957: PUSH0 00000958: MSTORE 00000959: PUSH1 0x40 0000095b: PUSH0 0000095c: KECCAK256 0000095d: PUSH0 0000095e: SWAP2 0000095f: POP 00000960: SWAP1 00000961: POP 00000962: DUP1 00000963: PUSH0 00000964: ADD 00000965: SLOAD 00000966: SWAP1 00000967: DUP1 00000968: PUSH1 0x01 0000096a: ADD 0000096b: PUSH0 0000096c: SWAP1 0000096d: SLOAD 0000096e: SWAP1 0000096f: PUSH2 0x0100 00000972: EXP 00000973: SWAP1 00000974: DIV 00000975: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000098a: AND 0000098b: SWAP1 0000098c: DUP1 0000098d: PUSH1 0x02 0000098f: ADD 00000990: PUSH0 00000991: SWAP1 00000992: SLOAD 00000993: SWAP1 00000994: PUSH2 0x0100 00000997: EXP 00000998: SWAP1 00000999: DIV 0000099a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000009af: AND 000009b0: SWAP1 000009b1: DUP1 000009b2: PUSH1 0x03 000009b4: ADD 000009b5: SLOAD 000009b6: SWAP1 000009b7: DUP1 000009b8: PUSH1 0x04 000009ba: ADD 000009bb: DUP1 000009bc: SLOAD 000009bd: PUSH2 0x09c5 000009c0: SWAP1 000009c1: PUSH2 0x2272 000009c4: JUMP 000009c5: JUMPDEST 000009c6: DUP1 000009c7: PUSH1 0x1f 000009c9: ADD 000009ca: PUSH1 0x20 000009cc: DUP1 000009cd: SWAP2 000009ce: DIV 000009cf: MUL 000009d0: PUSH1 0x20 000009d2: ADD 000009d3: PUSH1 0x40 000009d5: MLOAD 000009d6: SWAP1 000009d7: DUP2 000009d8: ADD 000009d9: PUSH1 0x40 000009db: MSTORE 000009dc: DUP1 000009dd: SWAP3 000009de: SWAP2 000009df: SWAP1 000009e0: DUP2 000009e1: DUP2 000009e2: MSTORE 000009e3: PUSH1 0x20 000009e5: ADD 000009e6: DUP3 000009e7: DUP1 000009e8: SLOAD 000009e9: PUSH2 0x09f1 000009ec: SWAP1 000009ed: PUSH2 0x2272 000009f0: JUMP 000009f1: JUMPDEST 000009f2: DUP1 000009f3: ISZERO 000009f4: PUSH2 0x0a3c 000009f7: JUMPI 000009f8: DUP1 000009f9: PUSH1 0x1f 000009fb: LT 000009fc: PUSH2 0x0a13 000009ff: JUMPI 00000a00: PUSH2 0x0100 00000a03: DUP1 00000a04: DUP4 00000a05: SLOAD 00000a06: DIV 00000a07: MUL 00000a08: DUP4 00000a09: MSTORE 00000a0a: SWAP2 00000a0b: PUSH1 0x20 00000a0d: ADD 00000a0e: SWAP2 00000a0f: PUSH2 0x0a3c 00000a12: JUMP 00000a13: JUMPDEST 00000a14: DUP3 00000a15: ADD 00000a16: SWAP2 00000a17: SWAP1 00000a18: PUSH0 00000a19: MSTORE 00000a1a: PUSH1 0x20 00000a1c: PUSH0 00000a1d: KECCAK256 00000a1e: SWAP1 00000a1f: JUMPDEST 00000a20: DUP2 00000a21: SLOAD 00000a22: DUP2 00000a23: MSTORE 00000a24: SWAP1 00000a25: PUSH1 0x01 00000a27: ADD 00000a28: SWAP1 00000a29: PUSH1 0x20 00000a2b: ADD 00000a2c: DUP1 00000a2d: DUP4 00000a2e: GT 00000a2f: PUSH2 0x0a1f 00000a32: JUMPI 00000a33: DUP3 00000a34: SWAP1 00000a35: SUB 00000a36: PUSH1 0x1f 00000a38: AND 00000a39: DUP3 00000a3a: ADD 00000a3b: SWAP2 00000a3c: JUMPDEST 00000a3d: POP 00000a3e: POP 00000a3f: POP 00000a40: POP 00000a41: POP 00000a42: SWAP1 00000a43: DUP1 00000a44: PUSH1 0x05 00000a46: ADD 00000a47: DUP1 00000a48: SLOAD 00000a49: PUSH2 0x0a51 00000a4c: SWAP1 00000a4d: PUSH2 0x2272 00000a50: JUMP 00000a51: JUMPDEST 00000a52: DUP1 00000a53: PUSH1 0x1f 00000a55: ADD 00000a56: PUSH1 0x20 00000a58: DUP1 00000a59: SWAP2 00000a5a: DIV 00000a5b: MUL 00000a5c: PUSH1 0x20 00000a5e: ADD 00000a5f: PUSH1 0x40 00000a61: MLOAD 00000a62: SWAP1 00000a63: DUP2 00000a64: ADD 00000a65: PUSH1 0x40 00000a67: MSTORE 00000a68: DUP1 00000a69: SWAP3 00000a6a: SWAP2 00000a6b: SWAP1 00000a6c: DUP2 00000a6d: DUP2 00000a6e: MSTORE 00000a6f: PUSH1 0x20 00000a71: ADD 00000a72: DUP3 00000a73: DUP1 00000a74: SLOAD 00000a75: PUSH2 0x0a7d 00000a78: SWAP1 00000a79: PUSH2 0x2272 00000a7c: JUMP 00000a7d: JUMPDEST 00000a7e: DUP1 00000a7f: ISZERO 00000a80: PUSH2 0x0ac8 00000a83: JUMPI 00000a84: DUP1 00000a85: PUSH1 0x1f 00000a87: LT 00000a88: PUSH2 0x0a9f 00000a8b: JUMPI 00000a8c: PUSH2 0x0100 00000a8f: DUP1 00000a90: DUP4 00000a91: SLOAD 00000a92: DIV 00000a93: MUL 00000a94: DUP4 00000a95: MSTORE 00000a96: SWAP2 00000a97: PUSH1 0x20 00000a99: ADD 00000a9a: SWAP2 00000a9b: PUSH2 0x0ac8 00000a9e: JUMP 00000a9f: JUMPDEST 00000aa0: DUP3 00000aa1: ADD 00000aa2: SWAP2 00000aa3: SWAP1 00000aa4: PUSH0 00000aa5: MSTORE 00000aa6: PUSH1 0x20 00000aa8: PUSH0 00000aa9: KECCAK256 00000aaa: SWAP1 00000aab: JUMPDEST 00000aac: DUP2 00000aad: SLOAD 00000aae: DUP2 00000aaf: MSTORE 00000ab0: SWAP1 00000ab1: PUSH1 0x01 00000ab3: ADD 00000ab4: SWAP1 00000ab5: PUSH1 0x20 00000ab7: ADD 00000ab8: DUP1 00000ab9: DUP4 00000aba: GT 00000abb: PUSH2 0x0aab 00000abe: JUMPI 00000abf: DUP3 00000ac0: SWAP1 00000ac1: SUB 00000ac2: PUSH1 0x1f 00000ac4: AND 00000ac5: DUP3 00000ac6: ADD 00000ac7: SWAP2 00000ac8: JUMPDEST 00000ac9: POP 00000aca: POP 00000acb: POP 00000acc: POP 00000acd: POP 00000ace: SWAP1 00000acf: DUP1 00000ad0: PUSH1 0x06 00000ad2: ADD 00000ad3: SLOAD 00000ad4: SWAP1 00000ad5: DUP1 00000ad6: PUSH1 0x07 00000ad8: ADD 00000ad9: PUSH0 00000ada: SWAP1 00000adb: SLOAD 00000adc: SWAP1 00000add: PUSH2 0x0100 00000ae0: EXP 00000ae1: SWAP1 00000ae2: DIV 00000ae3: PUSH1 0xff 00000ae5: AND 00000ae6: SWAP1 00000ae7: POP 00000ae8: DUP9 00000ae9: JUMP 00000aea: JUMPDEST 00000aeb: PUSH2 0x0af2 00000aee: PUSH2 0x1397 00000af1: JUMP 00000af2: JUMPDEST 00000af3: PUSH2 0x0afa 00000af6: PUSH2 0x1540 00000af9: JUMP 00000afa: JUMPDEST 00000afb: JUMP 00000afc: JUMPDEST 00000afd: PUSH32 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 00000b1e: DUP2 00000b1f: JUMP 00000b20: JUMPDEST 00000b21: PUSH0 00000b22: PUSH0 00000b23: PUSH0 00000b24: SWAP1 00000b25: SLOAD 00000b26: SWAP1 00000b27: PUSH2 0x0100 00000b2a: EXP 00000b2b: SWAP1 00000b2c: DIV 00000b2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b42: AND 00000b43: SWAP1 00000b44: POP 00000b45: SWAP1 00000b46: JUMP 00000b47: JUMPDEST 00000b48: PUSH2 0x0b4f 00000b4b: PUSH2 0x1397 00000b4e: JUMP 00000b4f: JUMPDEST 00000b50: PUSH0 00000b51: DUP2 00000b52: GT 00000b53: PUSH2 0x0b91 00000b56: JUMPI 00000b57: PUSH1 0x40 00000b59: MLOAD 00000b5a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000b7b: DUP2 00000b7c: MSTORE 00000b7d: PUSH1 0x04 00000b7f: ADD 00000b80: PUSH2 0x0b88 00000b83: SWAP1 00000b84: PUSH2 0x22ec 00000b87: JUMP 00000b88: JUMPDEST 00000b89: PUSH1 0x40 00000b8b: MLOAD 00000b8c: DUP1 00000b8d: SWAP2 00000b8e: SUB 00000b8f: SWAP1 00000b90: REVERT 00000b91: JUMPDEST 00000b92: PUSH0 00000b93: PUSH1 0x03 00000b95: SLOAD 00000b96: SWAP1 00000b97: POP 00000b98: PUSH3 0x0f4240 00000b9c: DUP3 00000b9d: PUSH2 0x0ba6 00000ba0: SWAP2 00000ba1: SWAP1 00000ba2: PUSH2 0x2337 00000ba5: JUMP 00000ba6: JUMPDEST 00000ba7: PUSH1 0x03 00000ba9: DUP2 00000baa: SWAP1 00000bab: SSTORE 00000bac: POP 00000bad: PUSH32 0x2bce37c591c5b0d254c3056688b080a088f160fff82b6e79f456c8a20d5570f6 00000bce: DUP2 00000bcf: PUSH1 0x03 00000bd1: SLOAD 00000bd2: TIMESTAMP 00000bd3: PUSH1 0x40 00000bd5: MLOAD 00000bd6: PUSH2 0x0be1 00000bd9: SWAP4 00000bda: SWAP3 00000bdb: SWAP2 00000bdc: SWAP1 00000bdd: PUSH2 0x2378 00000be0: JUMP 00000be1: JUMPDEST 00000be2: PUSH1 0x40 00000be4: MLOAD 00000be5: DUP1 00000be6: SWAP2 00000be7: SUB 00000be8: SWAP1 00000be9: LOG1 00000bea: POP 00000beb: POP 00000bec: JUMP 00000bed: JUMPDEST 00000bee: PUSH2 0x0bf5 00000bf1: PUSH2 0x15a2 00000bf4: JUMP 00000bf5: JUMPDEST 00000bf6: PUSH2 0x0bfd 00000bf9: PUSH2 0x15e8 00000bfc: JUMP 00000bfd: JUMPDEST 00000bfe: PUSH1 0x07 00000c00: PUSH0 00000c01: DUP7 00000c02: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c17: AND 00000c18: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c2d: AND 00000c2e: DUP2 00000c2f: MSTORE 00000c30: PUSH1 0x20 00000c32: ADD 00000c33: SWAP1 00000c34: DUP2 00000c35: MSTORE 00000c36: PUSH1 0x20 00000c38: ADD 00000c39: PUSH0 00000c3a: KECCAK256 00000c3b: PUSH0 00000c3c: SWAP1 00000c3d: SLOAD 00000c3e: SWAP1 00000c3f: PUSH2 0x0100 00000c42: EXP 00000c43: SWAP1 00000c44: DIV 00000c45: PUSH1 0xff 00000c47: AND 00000c48: PUSH2 0x0c86 00000c4b: JUMPI 00000c4c: PUSH1 0x40 00000c4e: MLOAD 00000c4f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000c70: DUP2 00000c71: MSTORE 00000c72: PUSH1 0x04 00000c74: ADD 00000c75: PUSH2 0x0c7d 00000c78: SWAP1 00000c79: PUSH2 0x204a 00000c7c: JUMP 00000c7d: JUMPDEST 00000c7e: PUSH1 0x40 00000c80: MLOAD 00000c81: DUP1 00000c82: SWAP2 00000c83: SUB 00000c84: SWAP1 00000c85: REVERT 00000c86: JUMPDEST 00000c87: PUSH0 00000c88: DUP5 00000c89: DUP5 00000c8a: SWAP1 00000c8b: POP 00000c8c: GT 00000c8d: PUSH2 0x0ccb 00000c90: JUMPI 00000c91: PUSH1 0x40 00000c93: MLOAD 00000c94: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000cb5: DUP2 00000cb6: MSTORE 00000cb7: PUSH1 0x04 00000cb9: ADD 00000cba: PUSH2 0x0cc2 00000cbd: SWAP1 00000cbe: PUSH2 0x23f7 00000cc1: JUMP 00000cc2: JUMPDEST 00000cc3: PUSH1 0x40 00000cc5: MLOAD 00000cc6: DUP1 00000cc7: SWAP2 00000cc8: SUB 00000cc9: SWAP1 00000cca: REVERT 00000ccb: JUMPDEST 00000ccc: PUSH0 00000ccd: DUP3 00000cce: DUP3 00000ccf: SWAP1 00000cd0: POP 00000cd1: GT 00000cd2: PUSH2 0x0d10 00000cd5: JUMPI 00000cd6: PUSH1 0x40 00000cd8: MLOAD 00000cd9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000cfa: DUP2 00000cfb: MSTORE 00000cfc: PUSH1 0x04 00000cfe: ADD 00000cff: PUSH2 0x0d07 00000d02: SWAP1 00000d03: PUSH2 0x245f 00000d06: JUMP 00000d07: JUMPDEST 00000d08: PUSH1 0x40 00000d0a: MLOAD 00000d0b: DUP1 00000d0c: SWAP2 00000d0d: SUB 00000d0e: SWAP1 00000d0f: REVERT 00000d10: JUMPDEST 00000d11: PUSH2 0x0d5c 00000d14: DUP5 00000d15: DUP5 00000d16: DUP1 00000d17: DUP1 00000d18: PUSH1 0x1f 00000d1a: ADD 00000d1b: PUSH1 0x20 00000d1d: DUP1 00000d1e: SWAP2 00000d1f: DIV 00000d20: MUL 00000d21: PUSH1 0x20 00000d23: ADD 00000d24: PUSH1 0x40 00000d26: MLOAD 00000d27: SWAP1 00000d28: DUP2 00000d29: ADD 00000d2a: PUSH1 0x40 00000d2c: MSTORE 00000d2d: DUP1 00000d2e: SWAP4 00000d2f: SWAP3 00000d30: SWAP2 00000d31: SWAP1 00000d32: DUP2 00000d33: DUP2 00000d34: MSTORE 00000d35: PUSH1 0x20 00000d37: ADD 00000d38: DUP4 00000d39: DUP4 00000d3a: DUP1 00000d3b: DUP3 00000d3c: DUP5 00000d3d: CALLDATACOPY 00000d3e: PUSH0 00000d3f: DUP2 00000d40: DUP5 00000d41: ADD 00000d42: MSTORE 00000d43: PUSH1 0x1f 00000d45: NOT 00000d46: PUSH1 0x1f 00000d48: DUP3 00000d49: ADD 00000d4a: AND 00000d4b: SWAP1 00000d4c: POP 00000d4d: DUP1 00000d4e: DUP4 00000d4f: ADD 00000d50: SWAP3 00000d51: POP 00000d52: POP 00000d53: POP 00000d54: POP 00000d55: POP 00000d56: POP 00000d57: POP 00000d58: PUSH2 0x1629 00000d5b: JUMP 00000d5c: JUMPDEST 00000d5d: PUSH2 0x0d9b 00000d60: JUMPI 00000d61: PUSH1 0x40 00000d63: MLOAD 00000d64: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000d85: DUP2 00000d86: MSTORE 00000d87: PUSH1 0x04 00000d89: ADD 00000d8a: PUSH2 0x0d92 00000d8d: SWAP1 00000d8e: PUSH2 0x24c7 00000d91: JUMP 00000d92: JUMPDEST 00000d93: PUSH1 0x40 00000d95: MLOAD 00000d96: DUP1 00000d97: SWAP2 00000d98: SUB 00000d99: SWAP1 00000d9a: REVERT 00000d9b: JUMPDEST 00000d9c: DUP5 00000d9d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000db2: AND 00000db3: PUSH4 0x23b872dd 00000db8: CALLER 00000db9: ADDRESS 00000dba: PUSH1 0x03 00000dbc: SLOAD 00000dbd: PUSH1 0x40 00000dbf: MLOAD 00000dc0: DUP5 00000dc1: PUSH4 0xffffffff 00000dc6: AND 00000dc7: PUSH1 0xe0 00000dc9: SHL 00000dca: DUP2 00000dcb: MSTORE 00000dcc: PUSH1 0x04 00000dce: ADD 00000dcf: PUSH2 0x0dda 00000dd2: SWAP4 00000dd3: SWAP3 00000dd4: SWAP2 00000dd5: SWAP1 00000dd6: PUSH2 0x24e5 00000dd9: JUMP 00000dda: JUMPDEST 00000ddb: PUSH1 0x20 00000ddd: PUSH1 0x40 00000ddf: MLOAD 00000de0: DUP1 00000de1: DUP4 00000de2: SUB 00000de3: DUP2 00000de4: PUSH0 00000de5: DUP8 00000de6: GAS 00000de7: CALL 00000de8: ISZERO 00000de9: DUP1 00000dea: ISZERO 00000deb: PUSH2 0x0df6 00000dee: JUMPI 00000def: RETURNDATASIZE 00000df0: PUSH0 00000df1: PUSH0 00000df2: RETURNDATACOPY 00000df3: RETURNDATASIZE 00000df4: PUSH0 00000df5: REVERT 00000df6: JUMPDEST 00000df7: POP 00000df8: POP 00000df9: POP 00000dfa: POP 00000dfb: PUSH1 0x40 00000dfd: MLOAD 00000dfe: RETURNDATASIZE 00000dff: PUSH1 0x1f 00000e01: NOT 00000e02: PUSH1 0x1f 00000e04: DUP3 00000e05: ADD 00000e06: AND 00000e07: DUP3 00000e08: ADD 00000e09: DUP1 00000e0a: PUSH1 0x40 00000e0c: MSTORE 00000e0d: POP 00000e0e: DUP2 00000e0f: ADD 00000e10: SWAP1 00000e11: PUSH2 0x0e1a 00000e14: SWAP2 00000e15: SWAP1 00000e16: PUSH2 0x214a 00000e19: JUMP 00000e1a: JUMPDEST 00000e1b: POP 00000e1c: PUSH0 00000e1d: PUSH1 0x04 00000e1f: PUSH0 00000e20: DUP2 00000e21: SLOAD 00000e22: PUSH2 0x0e2a 00000e25: SWAP1 00000e26: PUSH2 0x251a 00000e29: JUMP 00000e2a: JUMPDEST 00000e2b: SWAP2 00000e2c: SWAP1 00000e2d: POP 00000e2e: DUP2 00000e2f: SWAP1 00000e30: SSTORE 00000e31: SWAP1 00000e32: POP 00000e33: PUSH1 0x40 00000e35: MLOAD 00000e36: DUP1 00000e37: PUSH2 0x0100 00000e3a: ADD 00000e3b: PUSH1 0x40 00000e3d: MSTORE 00000e3e: DUP1 00000e3f: DUP3 00000e40: DUP2 00000e41: MSTORE 00000e42: PUSH1 0x20 00000e44: ADD 00000e45: CALLER 00000e46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e5b: AND 00000e5c: DUP2 00000e5d: MSTORE 00000e5e: PUSH1 0x20 00000e60: ADD 00000e61: DUP8 00000e62: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e77: AND 00000e78: DUP2 00000e79: MSTORE 00000e7a: PUSH1 0x20 00000e7c: ADD 00000e7d: PUSH1 0x03 00000e7f: SLOAD 00000e80: DUP2 00000e81: MSTORE 00000e82: PUSH1 0x20 00000e84: ADD 00000e85: DUP7 00000e86: DUP7 00000e87: DUP1 00000e88: DUP1 00000e89: PUSH1 0x1f 00000e8b: ADD 00000e8c: PUSH1 0x20 00000e8e: DUP1 00000e8f: SWAP2 00000e90: DIV 00000e91: MUL 00000e92: PUSH1 0x20 00000e94: ADD 00000e95: PUSH1 0x40 00000e97: MLOAD 00000e98: SWAP1 00000e99: DUP2 00000e9a: ADD 00000e9b: PUSH1 0x40 00000e9d: MSTORE 00000e9e: DUP1 00000e9f: SWAP4 00000ea0: SWAP3 00000ea1: SWAP2 00000ea2: SWAP1 00000ea3: DUP2 00000ea4: DUP2 00000ea5: MSTORE 00000ea6: PUSH1 0x20 00000ea8: ADD 00000ea9: DUP4 00000eaa: DUP4 00000eab: DUP1 00000eac: DUP3 00000ead: DUP5 00000eae: CALLDATACOPY 00000eaf: PUSH0 00000eb0: DUP2 00000eb1: DUP5 00000eb2: ADD 00000eb3: MSTORE 00000eb4: PUSH1 0x1f 00000eb6: NOT 00000eb7: PUSH1 0x1f 00000eb9: DUP3 00000eba: ADD 00000ebb: AND 00000ebc: SWAP1 00000ebd: POP 00000ebe: DUP1 00000ebf: DUP4 00000ec0: ADD 00000ec1: SWAP3 00000ec2: POP 00000ec3: POP 00000ec4: POP 00000ec5: POP 00000ec6: POP 00000ec7: POP 00000ec8: POP 00000ec9: DUP2 00000eca: MSTORE 00000ecb: PUSH1 0x20 00000ecd: ADD 00000ece: DUP5 00000ecf: DUP5 00000ed0: DUP1 00000ed1: DUP1 00000ed2: PUSH1 0x1f 00000ed4: ADD 00000ed5: PUSH1 0x20 00000ed7: DUP1 00000ed8: SWAP2 00000ed9: DIV 00000eda: MUL 00000edb: PUSH1 0x20 00000edd: ADD 00000ede: PUSH1 0x40 00000ee0: MLOAD 00000ee1: SWAP1 00000ee2: DUP2 00000ee3: ADD 00000ee4: PUSH1 0x40 00000ee6: MSTORE 00000ee7: DUP1 00000ee8: SWAP4 00000ee9: SWAP3 00000eea: SWAP2 00000eeb: SWAP1 00000eec: DUP2 00000eed: DUP2 00000eee: MSTORE 00000eef: PUSH1 0x20 00000ef1: ADD 00000ef2: DUP4 00000ef3: DUP4 00000ef4: DUP1 00000ef5: DUP3 00000ef6: DUP5 00000ef7: CALLDATACOPY 00000ef8: PUSH0 00000ef9: DUP2 00000efa: DUP5 00000efb: ADD 00000efc: MSTORE 00000efd: PUSH1 0x1f 00000eff: NOT 00000f00: PUSH1 0x1f 00000f02: DUP3 00000f03: ADD 00000f04: AND 00000f05: SWAP1 00000f06: POP 00000f07: DUP1 00000f08: DUP4 00000f09: ADD 00000f0a: SWAP3 00000f0b: POP 00000f0c: POP 00000f0d: POP 00000f0e: POP 00000f0f: POP 00000f10: POP 00000f11: POP 00000f12: DUP2 00000f13: MSTORE 00000f14: PUSH1 0x20 00000f16: ADD 00000f17: TIMESTAMP 00000f18: DUP2 00000f19: MSTORE 00000f1a: PUSH1 0x20 00000f1c: ADD 00000f1d: PUSH0 00000f1e: ISZERO 00000f1f: ISZERO 00000f20: DUP2 00000f21: MSTORE 00000f22: POP 00000f23: PUSH1 0x05 00000f25: PUSH0 00000f26: DUP4 00000f27: DUP2 00000f28: MSTORE 00000f29: PUSH1 0x20 00000f2b: ADD 00000f2c: SWAP1 00000f2d: DUP2 00000f2e: MSTORE 00000f2f: PUSH1 0x20 00000f31: ADD 00000f32: PUSH0 00000f33: KECCAK256 00000f34: PUSH0 00000f35: DUP3 00000f36: ADD 00000f37: MLOAD 00000f38: DUP2 00000f39: PUSH0 00000f3a: ADD 00000f3b: SSTORE 00000f3c: PUSH1 0x20 00000f3e: DUP3 00000f3f: ADD 00000f40: MLOAD 00000f41: DUP2 00000f42: PUSH1 0x01 00000f44: ADD 00000f45: PUSH0 00000f46: PUSH2 0x0100 00000f49: EXP 00000f4a: DUP2 00000f4b: SLOAD 00000f4c: DUP2 00000f4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f62: MUL 00000f63: NOT 00000f64: AND 00000f65: SWAP1 00000f66: DUP4 00000f67: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f7c: AND 00000f7d: MUL 00000f7e: OR 00000f7f: SWAP1 00000f80: SSTORE 00000f81: POP 00000f82: PUSH1 0x40 00000f84: DUP3 00000f85: ADD 00000f86: MLOAD 00000f87: DUP2 00000f88: PUSH1 0x02 00000f8a: ADD 00000f8b: PUSH0 00000f8c: PUSH2 0x0100 00000f8f: EXP 00000f90: DUP2 00000f91: SLOAD 00000f92: DUP2 00000f93: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fa8: MUL 00000fa9: NOT 00000faa: AND 00000fab: SWAP1 00000fac: DUP4 00000fad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fc2: AND 00000fc3: MUL 00000fc4: OR 00000fc5: SWAP1 00000fc6: SSTORE 00000fc7: POP 00000fc8: PUSH1 0x60 00000fca: DUP3 00000fcb: ADD 00000fcc: MLOAD 00000fcd: DUP2 00000fce: PUSH1 0x03 00000fd0: ADD 00000fd1: SSTORE 00000fd2: PUSH1 0x80 00000fd4: DUP3 00000fd5: ADD 00000fd6: MLOAD 00000fd7: DUP2 00000fd8: PUSH1 0x04 00000fda: ADD 00000fdb: SWAP1 00000fdc: DUP2 00000fdd: PUSH2 0x0fe6 00000fe0: SWAP2 00000fe1: SWAP1 00000fe2: PUSH2 0x272e 00000fe5: JUMP 00000fe6: JUMPDEST 00000fe7: POP 00000fe8: PUSH1 0xa0 00000fea: DUP3 00000feb: ADD 00000fec: MLOAD 00000fed: DUP2 00000fee: PUSH1 0x05 00000ff0: ADD 00000ff1: SWAP1 00000ff2: DUP2 00000ff3: PUSH2 0x0ffc 00000ff6: SWAP2 00000ff7: SWAP1 00000ff8: PUSH2 0x272e 00000ffb: JUMP 00000ffc: JUMPDEST 00000ffd: POP 00000ffe: PUSH1 0xc0 00001000: DUP3 00001001: ADD 00001002: MLOAD 00001003: DUP2 00001004: PUSH1 0x06 00001006: ADD 00001007: SSTORE 00001008: PUSH1 0xe0 0000100a: DUP3 0000100b: ADD 0000100c: MLOAD 0000100d: DUP2 0000100e: PUSH1 0x07 00001010: ADD 00001011: PUSH0 00001012: PUSH2 0x0100 00001015: EXP 00001016: DUP2 00001017: SLOAD 00001018: DUP2 00001019: PUSH1 0xff 0000101b: MUL 0000101c: NOT 0000101d: AND 0000101e: SWAP1 0000101f: DUP4 00001020: ISZERO 00001021: ISZERO 00001022: MUL 00001023: OR 00001024: SWAP1 00001025: SSTORE 00001026: POP 00001027: SWAP1 00001028: POP 00001029: POP 0000102a: PUSH1 0x06 0000102c: PUSH0 0000102d: CALLER 0000102e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001043: AND 00001044: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001059: AND 0000105a: DUP2 0000105b: MSTORE 0000105c: PUSH1 0x20 0000105e: ADD 0000105f: SWAP1 00001060: DUP2 00001061: MSTORE 00001062: PUSH1 0x20 00001064: ADD 00001065: PUSH0 00001066: KECCAK256 00001067: DUP2 00001068: SWAP1 00001069: DUP1 0000106a: PUSH1 0x01 0000106c: DUP2 0000106d: SLOAD 0000106e: ADD 0000106f: DUP1 00001070: DUP3 00001071: SSTORE 00001072: DUP1 00001073: SWAP2 00001074: POP 00001075: POP 00001076: PUSH1 0x01 00001078: SWAP1 00001079: SUB 0000107a: SWAP1 0000107b: PUSH0 0000107c: MSTORE 0000107d: PUSH1 0x20 0000107f: PUSH0 00001080: KECCAK256 00001081: ADD 00001082: PUSH0 00001083: SWAP1 00001084: SWAP2 00001085: SWAP1 00001086: SWAP2 00001087: SWAP1 00001088: SWAP2 00001089: POP 0000108a: SSTORE 0000108b: DUP6 0000108c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010a1: AND 000010a2: CALLER 000010a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010b8: AND 000010b9: DUP3 000010ba: PUSH32 0x78869a4440941d1e199a4b39249779800dca8a98547c081284587f9855a42e3f 000010db: DUP9 000010dc: DUP9 000010dd: DUP9 000010de: DUP9 000010df: PUSH1 0x03 000010e1: SLOAD 000010e2: TIMESTAMP 000010e3: PUSH1 0x40 000010e5: MLOAD 000010e6: PUSH2 0x10f4 000010e9: SWAP7 000010ea: SWAP6 000010eb: SWAP5 000010ec: SWAP4 000010ed: SWAP3 000010ee: SWAP2 000010ef: SWAP1 000010f0: PUSH2 0x2837 000010f3: JUMP 000010f4: JUMPDEST 000010f5: PUSH1 0x40 000010f7: MLOAD 000010f8: DUP1 000010f9: SWAP2 000010fa: SUB 000010fb: SWAP1 000010fc: LOG4 000010fd: POP 000010fe: PUSH2 0x1105 00001101: PUSH2 0x1a33 00001104: JUMP 00001105: JUMPDEST 00001106: POP 00001107: POP 00001108: POP 00001109: POP 0000110a: POP 0000110b: JUMP 0000110c: JUMPDEST 0000110d: PUSH32 0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7 0000112e: DUP2 0000112f: JUMP 00001130: JUMPDEST 00001131: PUSH1 0x60 00001133: PUSH1 0x06 00001135: PUSH0 00001136: DUP4 00001137: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000114c: AND 0000114d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001162: AND 00001163: DUP2 00001164: MSTORE 00001165: PUSH1 0x20 00001167: ADD 00001168: SWAP1 00001169: DUP2 0000116a: MSTORE 0000116b: PUSH1 0x20 0000116d: ADD 0000116e: PUSH0 0000116f: KECCAK256 00001170: DUP1 00001171: SLOAD 00001172: DUP1 00001173: PUSH1 0x20 00001175: MUL 00001176: PUSH1 0x20 00001178: ADD 00001179: PUSH1 0x40 0000117b: MLOAD 0000117c: SWAP1 0000117d: DUP2 0000117e: ADD 0000117f: PUSH1 0x40 00001181: MSTORE 00001182: DUP1 00001183: SWAP3 00001184: SWAP2 00001185: SWAP1 00001186: DUP2 00001187: DUP2 00001188: MSTORE 00001189: PUSH1 0x20 0000118b: ADD 0000118c: DUP3 0000118d: DUP1 0000118e: SLOAD 0000118f: DUP1 00001190: ISZERO 00001191: PUSH2 0x11b7 00001194: JUMPI 00001195: PUSH1 0x20 00001197: MUL 00001198: DUP3 00001199: ADD 0000119a: SWAP2 0000119b: SWAP1 0000119c: PUSH0 0000119d: MSTORE 0000119e: PUSH1 0x20 000011a0: PUSH0 000011a1: KECCAK256 000011a2: SWAP1 000011a3: JUMPDEST 000011a4: DUP2 000011a5: SLOAD 000011a6: DUP2 000011a7: MSTORE 000011a8: PUSH1 0x20 000011aa: ADD 000011ab: SWAP1 000011ac: PUSH1 0x01 000011ae: ADD 000011af: SWAP1 000011b0: DUP1 000011b1: DUP4 000011b2: GT 000011b3: PUSH2 0x11a3 000011b6: JUMPI 000011b7: JUMPDEST 000011b8: POP 000011b9: POP 000011ba: POP 000011bb: POP 000011bc: POP 000011bd: SWAP1 000011be: POP 000011bf: SWAP2 000011c0: SWAP1 000011c1: POP 000011c2: JUMP 000011c3: JUMPDEST 000011c4: PUSH1 0x06 000011c6: PUSH1 0x20 000011c8: MSTORE 000011c9: DUP2 000011ca: PUSH0 000011cb: MSTORE 000011cc: PUSH1 0x40 000011ce: PUSH0 000011cf: KECCAK256 000011d0: DUP2 000011d1: DUP2 000011d2: SLOAD 000011d3: DUP2 000011d4: LT 000011d5: PUSH2 0x11dc 000011d8: JUMPI 000011d9: PUSH0 000011da: DUP1 000011db: REVERT 000011dc: JUMPDEST 000011dd: SWAP1 000011de: PUSH0 000011df: MSTORE 000011e0: PUSH1 0x20 000011e2: PUSH0 000011e3: KECCAK256 000011e4: ADD 000011e5: PUSH0 000011e6: SWAP2 000011e7: POP 000011e8: SWAP2 000011e9: POP 000011ea: POP 000011eb: SLOAD 000011ec: DUP2 000011ed: JUMP 000011ee: JUMPDEST 000011ef: PUSH2 0x11f6 000011f2: PUSH2 0x1397 000011f5: JUMP 000011f6: JUMPDEST 000011f7: PUSH0 000011f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000120d: AND 0000120e: DUP3 0000120f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001224: AND 00001225: SUB 00001226: PUSH2 0x1264 00001229: JUMPI 0000122a: PUSH1 0x40 0000122c: MLOAD 0000122d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000124e: DUP2 0000124f: MSTORE 00001250: PUSH1 0x04 00001252: ADD 00001253: PUSH2 0x125b 00001256: SWAP1 00001257: PUSH2 0x28d6 0000125a: JUMP 0000125b: JUMPDEST 0000125c: PUSH1 0x40 0000125e: MLOAD 0000125f: DUP1 00001260: SWAP2 00001261: SUB 00001262: SWAP1 00001263: REVERT 00001264: JUMPDEST 00001265: DUP1 00001266: PUSH1 0x07 00001268: PUSH0 00001269: DUP5 0000126a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000127f: AND 00001280: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001295: AND 00001296: DUP2 00001297: MSTORE 00001298: PUSH1 0x20 0000129a: ADD 0000129b: SWAP1 0000129c: DUP2 0000129d: MSTORE 0000129e: PUSH1 0x20 000012a0: ADD 000012a1: PUSH0 000012a2: KECCAK256 000012a3: PUSH0 000012a4: PUSH2 0x0100 000012a7: EXP 000012a8: DUP2 000012a9: SLOAD 000012aa: DUP2 000012ab: PUSH1 0xff 000012ad: MUL 000012ae: NOT 000012af: AND 000012b0: SWAP1 000012b1: DUP4 000012b2: ISZERO 000012b3: ISZERO 000012b4: MUL 000012b5: OR 000012b6: SWAP1 000012b7: SSTORE 000012b8: POP 000012b9: DUP2 000012ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012cf: AND 000012d0: PUSH32 0xbbe72b7d9dcb594ee398a4a617885aba53d833e2aad601c813ce9df99fdeb49b 000012f1: DUP3 000012f2: PUSH1 0x40 000012f4: MLOAD 000012f5: PUSH2 0x12fe 000012f8: SWAP2 000012f9: SWAP1 000012fa: PUSH2 0x1bee 000012fd: JUMP 000012fe: JUMPDEST 000012ff: PUSH1 0x40 00001301: MLOAD 00001302: DUP1 00001303: SWAP2 00001304: SUB 00001305: SWAP1 00001306: LOG2 00001307: POP 00001308: POP 00001309: JUMP 0000130a: JUMPDEST 0000130b: PUSH0 0000130c: PUSH1 0x04 0000130e: SLOAD 0000130f: SWAP1 00001310: POP 00001311: SWAP1 00001312: JUMP 00001313: JUMPDEST 00001314: PUSH2 0x131b 00001317: PUSH2 0x1397 0000131a: JUMP 0000131b: JUMPDEST 0000131c: PUSH0 0000131d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001332: AND 00001333: DUP2 00001334: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001349: AND 0000134a: SUB 0000134b: PUSH2 0x138b 0000134e: JUMPI 0000134f: PUSH0 00001350: PUSH1 0x40 00001352: MLOAD 00001353: PUSH32 0x1e4fbdf700000000000000000000000000000000000000000000000000000000 00001374: DUP2 00001375: MSTORE 00001376: PUSH1 0x04 00001378: ADD 00001379: PUSH2 0x1382 0000137c: SWAP2 0000137d: SWAP1 0000137e: PUSH2 0x1d10 00001381: JUMP 00001382: JUMPDEST 00001383: PUSH1 0x40 00001385: MLOAD 00001386: DUP1 00001387: SWAP2 00001388: SUB 00001389: SWAP1 0000138a: REVERT 0000138b: JUMPDEST 0000138c: PUSH2 0x1394 0000138f: DUP2 00001390: PUSH2 0x147f 00001393: JUMP 00001394: JUMPDEST 00001395: POP 00001396: JUMP 00001397: JUMPDEST 00001398: PUSH2 0x139f 0000139b: PUSH2 0x1a3c 0000139e: JUMP 0000139f: JUMPDEST 000013a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013b5: AND 000013b6: PUSH2 0x13bd 000013b9: PUSH2 0x0b20 000013bc: JUMP 000013bd: JUMPDEST 000013be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013d3: AND 000013d4: EQ 000013d5: PUSH2 0x141c 000013d8: JUMPI 000013d9: PUSH2 0x13e0 000013dc: PUSH2 0x1a3c 000013df: JUMP 000013e0: JUMPDEST 000013e1: PUSH1 0x40 000013e3: MLOAD 000013e4: PUSH32 0x118cdaa700000000000000000000000000000000000000000000000000000000 00001405: DUP2 00001406: MSTORE 00001407: PUSH1 0x04 00001409: ADD 0000140a: PUSH2 0x1413 0000140d: SWAP2 0000140e: SWAP1 0000140f: PUSH2 0x1d10 00001412: JUMP 00001413: JUMPDEST 00001414: PUSH1 0x40 00001416: MLOAD 00001417: DUP1 00001418: SWAP2 00001419: SUB 0000141a: SWAP1 0000141b: REVERT 0000141c: JUMPDEST 0000141d: JUMP 0000141e: JUMPDEST 0000141f: PUSH2 0x1426 00001422: PUSH2 0x1a43 00001425: JUMP 00001426: JUMPDEST 00001427: PUSH0 00001428: PUSH1 0x02 0000142a: PUSH0 0000142b: PUSH2 0x0100 0000142e: EXP 0000142f: DUP2 00001430: SLOAD 00001431: DUP2 00001432: PUSH1 0xff 00001434: MUL 00001435: NOT 00001436: AND 00001437: SWAP1 00001438: DUP4 00001439: ISZERO 0000143a: ISZERO 0000143b: MUL 0000143c: OR 0000143d: SWAP1 0000143e: SSTORE 0000143f: POP 00001440: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa 00001461: PUSH2 0x1468 00001464: PUSH2 0x1a3c 00001467: JUMP 00001468: JUMPDEST 00001469: PUSH1 0x40 0000146b: MLOAD 0000146c: PUSH2 0x1475 0000146f: SWAP2 00001470: SWAP1 00001471: PUSH2 0x1d10 00001474: JUMP 00001475: JUMPDEST 00001476: PUSH1 0x40 00001478: MLOAD 00001479: DUP1 0000147a: SWAP2 0000147b: SUB 0000147c: SWAP1 0000147d: LOG1 0000147e: JUMP 0000147f: JUMPDEST 00001480: PUSH0 00001481: PUSH0 00001482: PUSH0 00001483: SWAP1 00001484: SLOAD 00001485: SWAP1 00001486: PUSH2 0x0100 00001489: EXP 0000148a: SWAP1 0000148b: DIV 0000148c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014a1: AND 000014a2: SWAP1 000014a3: POP 000014a4: DUP2 000014a5: PUSH0 000014a6: PUSH0 000014a7: PUSH2 0x0100 000014aa: EXP 000014ab: DUP2 000014ac: SLOAD 000014ad: DUP2 000014ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014c3: MUL 000014c4: NOT 000014c5: AND 000014c6: SWAP1 000014c7: DUP4 000014c8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014dd: AND 000014de: MUL 000014df: OR 000014e0: SWAP1 000014e1: SSTORE 000014e2: POP 000014e3: DUP2 000014e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014f9: AND 000014fa: DUP2 000014fb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001510: AND 00001511: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001532: PUSH1 0x40 00001534: MLOAD 00001535: PUSH1 0x40 00001537: MLOAD 00001538: DUP1 00001539: SWAP2 0000153a: SUB 0000153b: SWAP1 0000153c: LOG3 0000153d: POP 0000153e: POP 0000153f: JUMP 00001540: JUMPDEST 00001541: PUSH2 0x1548 00001544: PUSH2 0x15e8 00001547: JUMP 00001548: JUMPDEST 00001549: PUSH1 0x01 0000154b: PUSH1 0x02 0000154d: PUSH0 0000154e: PUSH2 0x0100 00001551: EXP 00001552: DUP2 00001553: SLOAD 00001554: DUP2 00001555: PUSH1 0xff 00001557: MUL 00001558: NOT 00001559: AND 0000155a: SWAP1 0000155b: DUP4 0000155c: ISZERO 0000155d: ISZERO 0000155e: MUL 0000155f: OR 00001560: SWAP1 00001561: SSTORE 00001562: POP 00001563: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258 00001584: PUSH2 0x158b 00001587: PUSH2 0x1a3c 0000158a: JUMP 0000158b: JUMPDEST 0000158c: PUSH1 0x40 0000158e: MLOAD 0000158f: PUSH2 0x1598 00001592: SWAP2 00001593: SWAP1 00001594: PUSH2 0x1d10 00001597: JUMP 00001598: JUMPDEST 00001599: PUSH1 0x40 0000159b: MLOAD 0000159c: DUP1 0000159d: SWAP2 0000159e: SUB 0000159f: SWAP1 000015a0: LOG1 000015a1: JUMP 000015a2: JUMPDEST 000015a3: PUSH1 0x02 000015a5: PUSH1 0x01 000015a7: SLOAD 000015a8: SUB 000015a9: PUSH2 0x15de 000015ac: JUMPI 000015ad: PUSH1 0x40 000015af: MLOAD 000015b0: PUSH32 0x3ee5aeb500000000000000000000000000000000000000000000000000000000 000015d1: DUP2 000015d2: MSTORE 000015d3: PUSH1 0x04 000015d5: ADD 000015d6: PUSH1 0x40 000015d8: MLOAD 000015d9: DUP1 000015da: SWAP2 000015db: SUB 000015dc: SWAP1 000015dd: REVERT 000015de: JUMPDEST 000015df: PUSH1 0x02 000015e1: PUSH1 0x01 000015e3: DUP2 000015e4: SWAP1 000015e5: SSTORE 000015e6: POP 000015e7: JUMP 000015e8: JUMPDEST 000015e9: PUSH2 0x15f0 000015ec: PUSH2 0x0905 000015ef: JUMP 000015f0: JUMPDEST 000015f1: ISZERO 000015f2: PUSH2 0x1627 000015f5: JUMPI 000015f6: PUSH1 0x40 000015f8: MLOAD 000015f9: PUSH32 0xd93c066500000000000000000000000000000000000000000000000000000000 0000161a: DUP2 0000161b: MSTORE 0000161c: PUSH1 0x04 0000161e: ADD 0000161f: PUSH1 0x40 00001621: MLOAD 00001622: DUP1 00001623: SWAP2 00001624: SUB 00001625: SWAP1 00001626: REVERT 00001627: JUMPDEST 00001628: JUMP 00001629: JUMPDEST 0000162a: PUSH0 0000162b: PUSH0 0000162c: DUP3 0000162d: SWAP1 0000162e: POP 0000162f: PUSH1 0x2c 00001631: DUP2 00001632: MLOAD 00001633: EQ 00001634: PUSH2 0x1640 00001637: JUMPI 00001638: PUSH0 00001639: SWAP2 0000163a: POP 0000163b: POP 0000163c: PUSH2 0x1a2e 0000163f: JUMP 00001640: JUMPDEST 00001641: PUSH0 00001642: PUSH0 00001643: SWAP1 00001644: POP 00001645: JUMPDEST 00001646: DUP2 00001647: MLOAD 00001648: DUP2 00001649: LT 0000164a: ISZERO 0000164b: PUSH2 0x1a27 0000164e: JUMPI 0000164f: PUSH0 00001650: DUP3 00001651: DUP3 00001652: DUP2 00001653: MLOAD 00001654: DUP2 00001655: LT 00001656: PUSH2 0x1662 00001659: JUMPI 0000165a: PUSH2 0x1661 0000165d: PUSH2 0x28f4 00001660: JUMP 00001661: JUMPDEST 00001662: JUMPDEST 00001663: PUSH1 0x20 00001665: ADD 00001666: ADD 00001667: MLOAD 00001668: PUSH1 0xf8 0000166a: SHR 0000166b: PUSH1 0xf8 0000166d: SHL 0000166e: SWAP1 0000166f: POP 00001670: PUSH32 0x3100000000000000000000000000000000000000000000000000000000000000 00001691: DUP2 00001692: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000016b2: NOT 000016b3: AND 000016b4: LT 000016b5: ISZERO 000016b6: DUP1 000016b7: ISZERO 000016b8: PUSH2 0x1703 000016bb: JUMPI 000016bc: POP 000016bd: PUSH32 0x3900000000000000000000000000000000000000000000000000000000000000 000016de: DUP2 000016df: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000016ff: NOT 00001700: AND 00001701: GT 00001702: ISZERO 00001703: JUMPDEST 00001704: DUP1 00001705: PUSH2 0x179e 00001708: JUMPI 00001709: POP 0000170a: PUSH32 0x4100000000000000000000000000000000000000000000000000000000000000 0000172b: DUP2 0000172c: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000174c: NOT 0000174d: AND 0000174e: LT 0000174f: ISZERO 00001750: DUP1 00001751: ISZERO 00001752: PUSH2 0x179d 00001755: JUMPI 00001756: POP 00001757: PUSH32 0x4800000000000000000000000000000000000000000000000000000000000000 00001778: DUP2 00001779: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001799: NOT 0000179a: AND 0000179b: GT 0000179c: ISZERO 0000179d: JUMPDEST 0000179e: JUMPDEST 0000179f: DUP1 000017a0: PUSH2 0x1839 000017a3: JUMPI 000017a4: POP 000017a5: PUSH32 0x4a00000000000000000000000000000000000000000000000000000000000000 000017c6: DUP2 000017c7: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000017e7: NOT 000017e8: AND 000017e9: LT 000017ea: ISZERO 000017eb: DUP1 000017ec: ISZERO 000017ed: PUSH2 0x1838 000017f0: JUMPI 000017f1: POP 000017f2: PUSH32 0x4e00000000000000000000000000000000000000000000000000000000000000 00001813: DUP2 00001814: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001834: NOT 00001835: AND 00001836: GT 00001837: ISZERO 00001838: JUMPDEST 00001839: JUMPDEST 0000183a: DUP1 0000183b: PUSH2 0x18d4 0000183e: JUMPI 0000183f: POP 00001840: PUSH32 0x5000000000000000000000000000000000000000000000000000000000000000 00001861: DUP2 00001862: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001882: NOT 00001883: AND 00001884: LT 00001885: ISZERO 00001886: DUP1 00001887: ISZERO 00001888: PUSH2 0x18d3 0000188b: JUMPI 0000188c: POP 0000188d: PUSH32 0x5a00000000000000000000000000000000000000000000000000000000000000 000018ae: DUP2 000018af: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000018cf: NOT 000018d0: AND 000018d1: GT 000018d2: ISZERO 000018d3: JUMPDEST 000018d4: JUMPDEST 000018d5: DUP1 000018d6: PUSH2 0x196f 000018d9: JUMPI 000018da: POP 000018db: PUSH32 0x6100000000000000000000000000000000000000000000000000000000000000 000018fc: DUP2 000018fd: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000191d: NOT 0000191e: AND 0000191f: LT 00001920: ISZERO 00001921: DUP1 00001922: ISZERO 00001923: PUSH2 0x196e 00001926: JUMPI 00001927: POP 00001928: PUSH32 0x6b00000000000000000000000000000000000000000000000000000000000000 00001949: DUP2 0000194a: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000196a: NOT 0000196b: AND 0000196c: GT 0000196d: ISZERO 0000196e: JUMPDEST 0000196f: JUMPDEST 00001970: DUP1 00001971: PUSH2 0x1a0a 00001974: JUMPI 00001975: POP 00001976: PUSH32 0x6d00000000000000000000000000000000000000000000000000000000000000 00001997: DUP2 00001998: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000019b8: NOT 000019b9: AND 000019ba: LT 000019bb: ISZERO 000019bc: DUP1 000019bd: ISZERO 000019be: PUSH2 0x1a09 000019c1: JUMPI 000019c2: POP 000019c3: PUSH32 0x7a00000000000000000000000000000000000000000000000000000000000000 000019e4: DUP2 000019e5: PUSH31 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001a05: NOT 00001a06: AND 00001a07: GT 00001a08: ISZERO 00001a09: JUMPDEST 00001a0a: JUMPDEST 00001a0b: PUSH2 0x1a19 00001a0e: JUMPI 00001a0f: PUSH0 00001a10: SWAP4 00001a11: POP 00001a12: POP 00001a13: POP 00001a14: POP 00001a15: PUSH2 0x1a2e 00001a18: JUMP 00001a19: JUMPDEST 00001a1a: POP 00001a1b: DUP1 00001a1c: DUP1 00001a1d: PUSH1 0x01 00001a1f: ADD 00001a20: SWAP2 00001a21: POP 00001a22: POP 00001a23: PUSH2 0x1645 00001a26: JUMP 00001a27: JUMPDEST 00001a28: POP 00001a29: PUSH1 0x01 00001a2b: SWAP2 00001a2c: POP 00001a2d: POP 00001a2e: JUMPDEST 00001a2f: SWAP2 00001a30: SWAP1 00001a31: POP 00001a32: JUMP 00001a33: JUMPDEST 00001a34: PUSH1 0x01 00001a36: DUP1 00001a37: DUP2 00001a38: SWAP1 00001a39: SSTORE 00001a3a: POP 00001a3b: JUMP 00001a3c: JUMPDEST 00001a3d: PUSH0 00001a3e: CALLER 00001a3f: SWAP1 00001a40: POP 00001a41: SWAP1 00001a42: JUMP 00001a43: JUMPDEST 00001a44: PUSH2 0x1a4b 00001a47: PUSH2 0x0905 00001a4a: JUMP 00001a4b: JUMPDEST 00001a4c: PUSH2 0x1a81 00001a4f: JUMPI 00001a50: PUSH1 0x40 00001a52: MLOAD 00001a53: PUSH32 0x8dfc202b00000000000000000000000000000000000000000000000000000000 00001a74: DUP2 00001a75: MSTORE 00001a76: PUSH1 0x04 00001a78: ADD 00001a79: PUSH1 0x40 00001a7b: MLOAD 00001a7c: DUP1 00001a7d: SWAP2 00001a7e: SUB 00001a7f: SWAP1 00001a80: REVERT 00001a81: JUMPDEST 00001a82: JUMP 00001a83: JUMPDEST 00001a84: PUSH0 00001a85: PUSH0 00001a86: REVERT 00001a87: JUMPDEST 00001a88: PUSH0 00001a89: PUSH0 00001a8a: REVERT 00001a8b: JUMPDEST 00001a8c: PUSH0 00001a8d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001aa2: DUP3 00001aa3: AND 00001aa4: SWAP1 00001aa5: POP 00001aa6: SWAP2 00001aa7: SWAP1 00001aa8: POP 00001aa9: JUMP 00001aaa: JUMPDEST 00001aab: PUSH0 00001aac: PUSH2 0x1ab4 00001aaf: DUP3 00001ab0: PUSH2 0x1a8b 00001ab3: JUMP 00001ab4: JUMPDEST 00001ab5: SWAP1 00001ab6: POP 00001ab7: SWAP2 00001ab8: SWAP1 00001ab9: POP 00001aba: JUMP 00001abb: JUMPDEST 00001abc: PUSH2 0x1ac4 00001abf: DUP2 00001ac0: PUSH2 0x1aaa 00001ac3: JUMP 00001ac4: JUMPDEST 00001ac5: DUP2 00001ac6: EQ 00001ac7: PUSH2 0x1ace 00001aca: JUMPI 00001acb: PUSH0 00001acc: PUSH0 00001acd: REVERT 00001ace: JUMPDEST 00001acf: POP 00001ad0: JUMP 00001ad1: JUMPDEST 00001ad2: PUSH0 00001ad3: DUP2 00001ad4: CALLDATALOAD 00001ad5: SWAP1 00001ad6: POP 00001ad7: PUSH2 0x1adf 00001ada: DUP2 00001adb: PUSH2 0x1abb 00001ade: JUMP 00001adf: JUMPDEST 00001ae0: SWAP3 00001ae1: SWAP2 00001ae2: POP 00001ae3: POP 00001ae4: JUMP 00001ae5: JUMPDEST 00001ae6: PUSH0 00001ae7: PUSH0 00001ae8: PUSH1 0x40 00001aea: DUP4 00001aeb: DUP6 00001aec: SUB 00001aed: SLT 00001aee: ISZERO 00001aef: PUSH2 0x1afb 00001af2: JUMPI 00001af3: PUSH2 0x1afa 00001af6: PUSH2 0x1a83 00001af9: JUMP 00001afa: JUMPDEST 00001afb: JUMPDEST 00001afc: PUSH0 00001afd: PUSH2 0x1b08 00001b00: DUP6 00001b01: DUP3 00001b02: DUP7 00001b03: ADD 00001b04: PUSH2 0x1ad1 00001b07: JUMP 00001b08: JUMPDEST 00001b09: SWAP3 00001b0a: POP 00001b0b: POP 00001b0c: PUSH1 0x20 00001b0e: PUSH2 0x1b19 00001b11: DUP6 00001b12: DUP3 00001b13: DUP7 00001b14: ADD 00001b15: PUSH2 0x1ad1 00001b18: JUMP 00001b19: JUMPDEST 00001b1a: SWAP2 00001b1b: POP 00001b1c: POP 00001b1d: SWAP3 00001b1e: POP 00001b1f: SWAP3 00001b20: SWAP1 00001b21: POP 00001b22: JUMP 00001b23: JUMPDEST 00001b24: PUSH0 00001b25: DUP2 00001b26: SWAP1 00001b27: POP 00001b28: SWAP2 00001b29: SWAP1 00001b2a: POP 00001b2b: JUMP 00001b2c: JUMPDEST 00001b2d: PUSH2 0x1b35 00001b30: DUP2 00001b31: PUSH2 0x1b23 00001b34: JUMP 00001b35: JUMPDEST 00001b36: DUP2 00001b37: EQ 00001b38: PUSH2 0x1b3f 00001b3b: JUMPI 00001b3c: PUSH0 00001b3d: PUSH0 00001b3e: REVERT 00001b3f: JUMPDEST 00001b40: POP 00001b41: JUMP 00001b42: JUMPDEST 00001b43: PUSH0 00001b44: DUP2 00001b45: CALLDATALOAD 00001b46: SWAP1 00001b47: POP 00001b48: PUSH2 0x1b50 00001b4b: DUP2 00001b4c: PUSH2 0x1b2c 00001b4f: JUMP 00001b50: JUMPDEST 00001b51: SWAP3 00001b52: SWAP2 00001b53: POP 00001b54: POP 00001b55: JUMP 00001b56: JUMPDEST 00001b57: PUSH0 00001b58: PUSH1 0x20 00001b5a: DUP3 00001b5b: DUP5 00001b5c: SUB 00001b5d: SLT 00001b5e: ISZERO 00001b5f: PUSH2 0x1b6b 00001b62: JUMPI 00001b63: PUSH2 0x1b6a 00001b66: PUSH2 0x1a83 00001b69: JUMP 00001b6a: JUMPDEST 00001b6b: JUMPDEST 00001b6c: PUSH0 00001b6d: PUSH2 0x1b78 00001b70: DUP5 00001b71: DUP3 00001b72: DUP6 00001b73: ADD 00001b74: PUSH2 0x1b42 00001b77: JUMP 00001b78: JUMPDEST 00001b79: SWAP2 00001b7a: POP 00001b7b: POP 00001b7c: SWAP3 00001b7d: SWAP2 00001b7e: POP 00001b7f: POP 00001b80: JUMP 00001b81: JUMPDEST 00001b82: PUSH0 00001b83: PUSH1 0x20 00001b85: DUP3 00001b86: DUP5 00001b87: SUB 00001b88: SLT 00001b89: ISZERO 00001b8a: PUSH2 0x1b96 00001b8d: JUMPI 00001b8e: PUSH2 0x1b95 00001b91: PUSH2 0x1a83 00001b94: JUMP 00001b95: JUMPDEST 00001b96: JUMPDEST 00001b97: PUSH0 00001b98: PUSH2 0x1ba3 00001b9b: DUP5 00001b9c: DUP3 00001b9d: DUP6 00001b9e: ADD 00001b9f: PUSH2 0x1ad1 00001ba2: JUMP 00001ba3: JUMPDEST 00001ba4: SWAP2 00001ba5: POP 00001ba6: POP 00001ba7: SWAP3 00001ba8: SWAP2 00001ba9: POP 00001baa: POP 00001bab: JUMP 00001bac: JUMPDEST 00001bad: PUSH2 0x1bb5 00001bb0: DUP2 00001bb1: PUSH2 0x1b23 00001bb4: JUMP 00001bb5: JUMPDEST 00001bb6: DUP3 00001bb7: MSTORE 00001bb8: POP 00001bb9: POP 00001bba: JUMP 00001bbb: JUMPDEST 00001bbc: PUSH0 00001bbd: PUSH1 0x20 00001bbf: DUP3 00001bc0: ADD 00001bc1: SWAP1 00001bc2: POP 00001bc3: PUSH2 0x1bce 00001bc6: PUSH0 00001bc7: DUP4 00001bc8: ADD 00001bc9: DUP5 00001bca: PUSH2 0x1bac 00001bcd: JUMP 00001bce: JUMPDEST 00001bcf: SWAP3 00001bd0: SWAP2 00001bd1: POP 00001bd2: POP 00001bd3: JUMP 00001bd4: JUMPDEST 00001bd5: PUSH0 00001bd6: DUP2 00001bd7: ISZERO 00001bd8: ISZERO 00001bd9: SWAP1 00001bda: POP 00001bdb: SWAP2 00001bdc: SWAP1 00001bdd: POP 00001bde: JUMP 00001bdf: JUMPDEST 00001be0: PUSH2 0x1be8 00001be3: DUP2 00001be4: PUSH2 0x1bd4 00001be7: JUMP 00001be8: JUMPDEST 00001be9: DUP3 00001bea: MSTORE 00001beb: POP 00001bec: POP 00001bed: JUMP 00001bee: JUMPDEST 00001bef: PUSH0 00001bf0: PUSH1 0x20 00001bf2: DUP3 00001bf3: ADD 00001bf4: SWAP1 00001bf5: POP 00001bf6: PUSH2 0x1c01 00001bf9: PUSH0 00001bfa: DUP4 00001bfb: ADD 00001bfc: DUP5 00001bfd: PUSH2 0x1bdf 00001c00: JUMP 00001c01: JUMPDEST 00001c02: SWAP3 00001c03: SWAP2 00001c04: POP 00001c05: POP 00001c06: JUMP 00001c07: JUMPDEST 00001c08: PUSH2 0x1c10 00001c0b: DUP2 00001c0c: PUSH2 0x1aaa 00001c0f: JUMP 00001c10: JUMPDEST 00001c11: DUP3 00001c12: MSTORE 00001c13: POP 00001c14: POP 00001c15: JUMP 00001c16: JUMPDEST 00001c17: PUSH0 00001c18: DUP2 00001c19: MLOAD 00001c1a: SWAP1 00001c1b: POP 00001c1c: SWAP2 00001c1d: SWAP1 00001c1e: POP 00001c1f: JUMP 00001c20: JUMPDEST 00001c21: PUSH0 00001c22: DUP3 00001c23: DUP3 00001c24: MSTORE 00001c25: PUSH1 0x20 00001c27: DUP3 00001c28: ADD 00001c29: SWAP1 00001c2a: POP 00001c2b: SWAP3 00001c2c: SWAP2 00001c2d: POP 00001c2e: POP 00001c2f: JUMP 00001c30: JUMPDEST 00001c31: DUP3 00001c32: DUP2 00001c33: DUP4 00001c34: MCOPY 00001c35: PUSH0 00001c36: DUP4 00001c37: DUP4 00001c38: ADD 00001c39: MSTORE 00001c3a: POP 00001c3b: POP 00001c3c: POP 00001c3d: JUMP 00001c3e: JUMPDEST 00001c3f: PUSH0 00001c40: PUSH1 0x1f 00001c42: NOT 00001c43: PUSH1 0x1f 00001c45: DUP4 00001c46: ADD 00001c47: AND 00001c48: SWAP1 00001c49: POP 00001c4a: SWAP2 00001c4b: SWAP1 00001c4c: POP 00001c4d: JUMP 00001c4e: JUMPDEST 00001c4f: PUSH0 00001c50: PUSH2 0x1c58 00001c53: DUP3 00001c54: PUSH2 0x1c16 00001c57: JUMP 00001c58: JUMPDEST 00001c59: PUSH2 0x1c62 00001c5c: DUP2 00001c5d: DUP6 00001c5e: PUSH2 0x1c20 00001c61: JUMP 00001c62: JUMPDEST 00001c63: SWAP4 00001c64: POP 00001c65: PUSH2 0x1c72 00001c68: DUP2 00001c69: DUP6 00001c6a: PUSH1 0x20 00001c6c: DUP7 00001c6d: ADD 00001c6e: PUSH2 0x1c30 00001c71: JUMP 00001c72: JUMPDEST 00001c73: PUSH2 0x1c7b 00001c76: DUP2 00001c77: PUSH2 0x1c3e 00001c7a: JUMP 00001c7b: JUMPDEST 00001c7c: DUP5 00001c7d: ADD 00001c7e: SWAP2 00001c7f: POP 00001c80: POP 00001c81: SWAP3 00001c82: SWAP2 00001c83: POP 00001c84: POP 00001c85: JUMP 00001c86: JUMPDEST 00001c87: PUSH0 00001c88: PUSH2 0x0100 00001c8b: DUP3 00001c8c: ADD 00001c8d: SWAP1 00001c8e: POP 00001c8f: PUSH2 0x1c9a 00001c92: PUSH0 00001c93: DUP4 00001c94: ADD 00001c95: DUP12 00001c96: PUSH2 0x1bac 00001c99: JUMP 00001c9a: JUMPDEST 00001c9b: PUSH2 0x1ca7 00001c9e: PUSH1 0x20 00001ca0: DUP4 00001ca1: ADD 00001ca2: DUP11 00001ca3: PUSH2 0x1c07 00001ca6: JUMP 00001ca7: JUMPDEST 00001ca8: PUSH2 0x1cb4 00001cab: PUSH1 0x40 00001cad: DUP4 00001cae: ADD 00001caf: DUP10 00001cb0: PUSH2 0x1c07 00001cb3: JUMP 00001cb4: JUMPDEST 00001cb5: PUSH2 0x1cc1 00001cb8: PUSH1 0x60 00001cba: DUP4 00001cbb: ADD 00001cbc: DUP9 00001cbd: PUSH2 0x1bac 00001cc0: JUMP 00001cc1: JUMPDEST 00001cc2: DUP2 00001cc3: DUP2 00001cc4: SUB 00001cc5: PUSH1 0x80 00001cc7: DUP4 00001cc8: ADD 00001cc9: MSTORE 00001cca: PUSH2 0x1cd3 00001ccd: DUP2 00001cce: DUP8 00001ccf: PUSH2 0x1c4e 00001cd2: JUMP 00001cd3: JUMPDEST 00001cd4: SWAP1 00001cd5: POP 00001cd6: DUP2 00001cd7: DUP2 00001cd8: SUB 00001cd9: PUSH1 0xa0 00001cdb: DUP4 00001cdc: ADD 00001cdd: MSTORE 00001cde: PUSH2 0x1ce7 00001ce1: DUP2 00001ce2: DUP7 00001ce3: PUSH2 0x1c4e 00001ce6: JUMP 00001ce7: JUMPDEST 00001ce8: SWAP1 00001ce9: POP 00001cea: PUSH2 0x1cf6 00001ced: PUSH1 0xc0 00001cef: DUP4 00001cf0: ADD 00001cf1: DUP6 00001cf2: PUSH2 0x1bac 00001cf5: JUMP 00001cf6: JUMPDEST 00001cf7: PUSH2 0x1d03 00001cfa: PUSH1 0xe0 00001cfc: DUP4 00001cfd: ADD 00001cfe: DUP5 00001cff: PUSH2 0x1bdf 00001d02: JUMP 00001d03: JUMPDEST 00001d04: SWAP10 00001d05: SWAP9 00001d06: POP 00001d07: POP 00001d08: POP 00001d09: POP 00001d0a: POP 00001d0b: POP 00001d0c: POP 00001d0d: POP 00001d0e: POP 00001d0f: JUMP 00001d10: JUMPDEST 00001d11: PUSH0 00001d12: PUSH1 0x20 00001d14: DUP3 00001d15: ADD 00001d16: SWAP1 00001d17: POP 00001d18: PUSH2 0x1d23 00001d1b: PUSH0 00001d1c: DUP4 00001d1d: ADD 00001d1e: DUP5 00001d1f: PUSH2 0x1c07 00001d22: JUMP 00001d23: JUMPDEST 00001d24: SWAP3 00001d25: SWAP2 00001d26: POP 00001d27: POP 00001d28: JUMP 00001d29: JUMPDEST 00001d2a: PUSH0 00001d2b: PUSH0 00001d2c: REVERT 00001d2d: JUMPDEST 00001d2e: PUSH0 00001d2f: PUSH0 00001d30: REVERT 00001d31: JUMPDEST 00001d32: PUSH0 00001d33: PUSH0 00001d34: REVERT 00001d35: JUMPDEST 00001d36: PUSH0 00001d37: PUSH0 00001d38: DUP4 00001d39: PUSH1 0x1f 00001d3b: DUP5 00001d3c: ADD 00001d3d: SLT 00001d3e: PUSH2 0x1d4a 00001d41: JUMPI 00001d42: PUSH2 0x1d49 00001d45: PUSH2 0x1d29 00001d48: JUMP 00001d49: JUMPDEST 00001d4a: JUMPDEST 00001d4b: DUP3 00001d4c: CALLDATALOAD 00001d4d: SWAP1 00001d4e: POP 00001d4f: PUSH8 0xffffffffffffffff 00001d58: DUP2 00001d59: GT 00001d5a: ISZERO 00001d5b: PUSH2 0x1d67 00001d5e: JUMPI 00001d5f: PUSH2 0x1d66 00001d62: PUSH2 0x1d2d 00001d65: JUMP 00001d66: JUMPDEST 00001d67: JUMPDEST 00001d68: PUSH1 0x20 00001d6a: DUP4 00001d6b: ADD 00001d6c: SWAP2 00001d6d: POP 00001d6e: DUP4 00001d6f: PUSH1 0x01 00001d71: DUP3 00001d72: MUL 00001d73: DUP4 00001d74: ADD 00001d75: GT 00001d76: ISZERO 00001d77: PUSH2 0x1d83 00001d7a: JUMPI 00001d7b: PUSH2 0x1d82 00001d7e: PUSH2 0x1d31 00001d81: JUMP 00001d82: JUMPDEST 00001d83: JUMPDEST 00001d84: SWAP3 00001d85: POP 00001d86: SWAP3 00001d87: SWAP1 00001d88: POP 00001d89: JUMP 00001d8a: JUMPDEST 00001d8b: PUSH0 00001d8c: PUSH0 00001d8d: PUSH0 00001d8e: PUSH0 00001d8f: PUSH0 00001d90: PUSH1 0x60 00001d92: DUP7 00001d93: DUP9 00001d94: SUB 00001d95: SLT 00001d96: ISZERO 00001d97: PUSH2 0x1da3 00001d9a: JUMPI 00001d9b: PUSH2 0x1da2 00001d9e: PUSH2 0x1a83 00001da1: JUMP 00001da2: JUMPDEST 00001da3: JUMPDEST 00001da4: PUSH0 00001da5: PUSH2 0x1db0 00001da8: DUP9 00001da9: DUP3 00001daa: DUP10 00001dab: ADD 00001dac: PUSH2 0x1ad1 00001daf: JUMP 00001db0: JUMPDEST 00001db1: SWAP6 00001db2: POP 00001db3: POP 00001db4: PUSH1 0x20 00001db6: DUP7 00001db7: ADD 00001db8: CALLDATALOAD 00001db9: PUSH8 0xffffffffffffffff 00001dc2: DUP2 00001dc3: GT 00001dc4: ISZERO 00001dc5: PUSH2 0x1dd1 00001dc8: JUMPI 00001dc9: PUSH2 0x1dd0 00001dcc: PUSH2 0x1a87 00001dcf: JUMP 00001dd0: JUMPDEST 00001dd1: JUMPDEST 00001dd2: PUSH2 0x1ddd 00001dd5: DUP9 00001dd6: DUP3 00001dd7: DUP10 00001dd8: ADD 00001dd9: PUSH2 0x1d35 00001ddc: JUMP 00001ddd: JUMPDEST 00001dde: SWAP5 00001ddf: POP 00001de0: SWAP5 00001de1: POP 00001de2: POP 00001de3: PUSH1 0x40 00001de5: DUP7 00001de6: ADD 00001de7: CALLDATALOAD 00001de8: PUSH8 0xffffffffffffffff 00001df1: DUP2 00001df2: GT 00001df3: ISZERO 00001df4: PUSH2 0x1e00 00001df7: JUMPI 00001df8: PUSH2 0x1dff 00001dfb: PUSH2 0x1a87 00001dfe: JUMP 00001dff: JUMPDEST 00001e00: JUMPDEST 00001e01: PUSH2 0x1e0c 00001e04: DUP9 00001e05: DUP3 00001e06: DUP10 00001e07: ADD 00001e08: PUSH2 0x1d35 00001e0b: JUMP 00001e0c: JUMPDEST 00001e0d: SWAP3 00001e0e: POP 00001e0f: SWAP3 00001e10: POP 00001e11: POP 00001e12: SWAP3 00001e13: SWAP6 00001e14: POP 00001e15: SWAP3 00001e16: SWAP6 00001e17: SWAP1 00001e18: SWAP4 00001e19: POP 00001e1a: JUMP 00001e1b: JUMPDEST 00001e1c: PUSH0 00001e1d: DUP2 00001e1e: MLOAD 00001e1f: SWAP1 00001e20: POP 00001e21: SWAP2 00001e22: SWAP1 00001e23: POP 00001e24: JUMP 00001e25: JUMPDEST 00001e26: PUSH0 00001e27: DUP3 00001e28: DUP3 00001e29: MSTORE 00001e2a: PUSH1 0x20 00001e2c: DUP3 00001e2d: ADD 00001e2e: SWAP1 00001e2f: POP 00001e30: SWAP3 00001e31: SWAP2 00001e32: POP 00001e33: POP 00001e34: JUMP 00001e35: JUMPDEST 00001e36: PUSH0 00001e37: DUP2 00001e38: SWAP1 00001e39: POP 00001e3a: PUSH1 0x20 00001e3c: DUP3 00001e3d: ADD 00001e3e: SWAP1 00001e3f: POP 00001e40: SWAP2 00001e41: SWAP1 00001e42: POP 00001e43: JUMP 00001e44: JUMPDEST 00001e45: PUSH2 0x1e4d 00001e48: DUP2 00001e49: PUSH2 0x1b23 00001e4c: JUMP 00001e4d: JUMPDEST 00001e4e: DUP3 00001e4f: MSTORE 00001e50: POP 00001e51: POP 00001e52: JUMP 00001e53: JUMPDEST 00001e54: PUSH0 00001e55: PUSH2 0x1e5e 00001e58: DUP4 00001e59: DUP4 00001e5a: PUSH2 0x1e44 00001e5d: JUMP 00001e5e: JUMPDEST 00001e5f: PUSH1 0x20 00001e61: DUP4 00001e62: ADD 00001e63: SWAP1 00001e64: POP 00001e65: SWAP3 00001e66: SWAP2 00001e67: POP 00001e68: POP 00001e69: JUMP 00001e6a: JUMPDEST 00001e6b: PUSH0 00001e6c: PUSH1 0x20 00001e6e: DUP3 00001e6f: ADD 00001e70: SWAP1 00001e71: POP 00001e72: SWAP2 00001e73: SWAP1 00001e74: POP 00001e75: JUMP 00001e76: JUMPDEST 00001e77: PUSH0 00001e78: PUSH2 0x1e80 00001e7b: DUP3 00001e7c: PUSH2 0x1e1b 00001e7f: JUMP 00001e80: JUMPDEST 00001e81: PUSH2 0x1e8a 00001e84: DUP2 00001e85: DUP6 00001e86: PUSH2 0x1e25 00001e89: JUMP 00001e8a: JUMPDEST 00001e8b: SWAP4 00001e8c: POP 00001e8d: PUSH2 0x1e95 00001e90: DUP4 00001e91: PUSH2 0x1e35 00001e94: JUMP 00001e95: JUMPDEST 00001e96: DUP1 00001e97: PUSH0 00001e98: JUMPDEST 00001e99: DUP4 00001e9a: DUP2 00001e9b: LT 00001e9c: ISZERO 00001e9d: PUSH2 0x1ec5 00001ea0: JUMPI 00001ea1: DUP2 00001ea2: MLOAD 00001ea3: PUSH2 0x1eac 00001ea6: DUP9 00001ea7: DUP3 00001ea8: PUSH2 0x1e53 00001eab: JUMP 00001eac: JUMPDEST 00001ead: SWAP8 00001eae: POP 00001eaf: PUSH2 0x1eb7 00001eb2: DUP4 00001eb3: PUSH2 0x1e6a 00001eb6: JUMP 00001eb7: JUMPDEST 00001eb8: SWAP3 00001eb9: POP 00001eba: POP 00001ebb: PUSH1 0x01 00001ebd: DUP2 00001ebe: ADD 00001ebf: SWAP1 00001ec0: POP 00001ec1: PUSH2 0x1e98 00001ec4: JUMP 00001ec5: JUMPDEST 00001ec6: POP 00001ec7: DUP6 00001ec8: SWAP4 00001ec9: POP 00001eca: POP 00001ecb: POP 00001ecc: POP 00001ecd: SWAP3 00001ece: SWAP2 00001ecf: POP 00001ed0: POP 00001ed1: JUMP 00001ed2: JUMPDEST 00001ed3: PUSH0 00001ed4: PUSH1 0x20 00001ed6: DUP3 00001ed7: ADD 00001ed8: SWAP1 00001ed9: POP 00001eda: DUP2 00001edb: DUP2 00001edc: SUB 00001edd: PUSH0 00001ede: DUP4 00001edf: ADD 00001ee0: MSTORE 00001ee1: PUSH2 0x1eea 00001ee4: DUP2 00001ee5: DUP5 00001ee6: PUSH2 0x1e76 00001ee9: JUMP 00001eea: JUMPDEST 00001eeb: SWAP1 00001eec: POP 00001eed: SWAP3 00001eee: SWAP2 00001eef: POP 00001ef0: POP 00001ef1: JUMP 00001ef2: JUMPDEST 00001ef3: PUSH0 00001ef4: PUSH0 00001ef5: PUSH1 0x40 00001ef7: DUP4 00001ef8: DUP6 00001ef9: SUB 00001efa: SLT 00001efb: ISZERO 00001efc: PUSH2 0x1f08 00001eff: JUMPI 00001f00: PUSH2 0x1f07 00001f03: PUSH2 0x1a83 00001f06: JUMP 00001f07: JUMPDEST 00001f08: JUMPDEST 00001f09: PUSH0 00001f0a: PUSH2 0x1f15 00001f0d: DUP6 00001f0e: DUP3 00001f0f: DUP7 00001f10: ADD 00001f11: PUSH2 0x1ad1 00001f14: JUMP 00001f15: JUMPDEST 00001f16: SWAP3 00001f17: POP 00001f18: POP 00001f19: PUSH1 0x20 00001f1b: PUSH2 0x1f26 00001f1e: DUP6 00001f1f: DUP3 00001f20: DUP7 00001f21: ADD 00001f22: PUSH2 0x1b42 00001f25: JUMP 00001f26: JUMPDEST 00001f27: SWAP2 00001f28: POP 00001f29: POP 00001f2a: SWAP3 00001f2b: POP 00001f2c: SWAP3 00001f2d: SWAP1 00001f2e: POP 00001f2f: JUMP 00001f30: JUMPDEST 00001f31: PUSH2 0x1f39 00001f34: DUP2 00001f35: PUSH2 0x1bd4 00001f38: JUMP 00001f39: JUMPDEST 00001f3a: DUP2 00001f3b: EQ 00001f3c: PUSH2 0x1f43 00001f3f: JUMPI 00001f40: PUSH0 00001f41: PUSH0 00001f42: REVERT 00001f43: JUMPDEST 00001f44: POP 00001f45: JUMP 00001f46: JUMPDEST 00001f47: PUSH0 00001f48: DUP2 00001f49: CALLDATALOAD 00001f4a: SWAP1 00001f4b: POP 00001f4c: PUSH2 0x1f54 00001f4f: DUP2 00001f50: PUSH2 0x1f30 00001f53: JUMP 00001f54: JUMPDEST 00001f55: SWAP3 00001f56: SWAP2 00001f57: POP 00001f58: POP 00001f59: JUMP 00001f5a: JUMPDEST 00001f5b: PUSH0 00001f5c: PUSH0 00001f5d: PUSH1 0x40 00001f5f: DUP4 00001f60: DUP6 00001f61: SUB 00001f62: SLT 00001f63: ISZERO 00001f64: PUSH2 0x1f70 00001f67: JUMPI 00001f68: PUSH2 0x1f6f 00001f6b: PUSH2 0x1a83 00001f6e: JUMP 00001f6f: JUMPDEST 00001f70: JUMPDEST 00001f71: PUSH0 00001f72: PUSH2 0x1f7d 00001f75: DUP6 00001f76: DUP3 00001f77: DUP7 00001f78: ADD 00001f79: PUSH2 0x1ad1 00001f7c: JUMP 00001f7d: JUMPDEST 00001f7e: SWAP3 00001f7f: POP 00001f80: POP 00001f81: PUSH1 0x20 00001f83: PUSH2 0x1f8e 00001f86: DUP6 00001f87: DUP3 00001f88: DUP7 00001f89: ADD 00001f8a: PUSH2 0x1f46 00001f8d: JUMP 00001f8e: JUMPDEST 00001f8f: SWAP2 00001f90: POP 00001f91: POP 00001f92: SWAP3 00001f93: POP 00001f94: SWAP3 00001f95: SWAP1 00001f96: POP 00001f97: JUMP 00001f98: JUMPDEST 00001f99: PUSH32 0x496e76616c696420726563697069656e74000000000000000000000000000000 00001fba: PUSH0 00001fbb: DUP3 00001fbc: ADD 00001fbd: MSTORE 00001fbe: POP 00001fbf: JUMP 00001fc0: JUMPDEST 00001fc1: PUSH0 00001fc2: PUSH2 0x1fcc 00001fc5: PUSH1 0x11 00001fc7: DUP4 00001fc8: PUSH2 0x1c20 00001fcb: JUMP 00001fcc: JUMPDEST 00001fcd: SWAP2 00001fce: POP 00001fcf: PUSH2 0x1fd7 00001fd2: DUP3 00001fd3: PUSH2 0x1f98 00001fd6: JUMP 00001fd7: JUMPDEST 00001fd8: PUSH1 0x20 00001fda: DUP3 00001fdb: ADD 00001fdc: SWAP1 00001fdd: POP 00001fde: SWAP2 00001fdf: SWAP1 00001fe0: POP 00001fe1: JUMP 00001fe2: JUMPDEST 00001fe3: PUSH0 00001fe4: PUSH1 0x20 00001fe6: DUP3 00001fe7: ADD 00001fe8: SWAP1 00001fe9: POP 00001fea: DUP2 00001feb: DUP2 00001fec: SUB 00001fed: PUSH0 00001fee: DUP4 00001fef: ADD 00001ff0: MSTORE 00001ff1: PUSH2 0x1ff9 00001ff4: DUP2 00001ff5: PUSH2 0x1fc0 00001ff8: JUMP 00001ff9: JUMPDEST 00001ffa: SWAP1 00001ffb: POP 00001ffc: SWAP2 00001ffd: SWAP1 00001ffe: POP 00001fff: JUMP 00002000: JUMPDEST 00002001: PUSH32 0x546f6b656e206e6f7420737570706f7274656400000000000000000000000000 00002022: PUSH0 00002023: DUP3 00002024: ADD 00002025: MSTORE 00002026: POP 00002027: JUMP 00002028: JUMPDEST 00002029: PUSH0 0000202a: PUSH2 0x2034 0000202d: PUSH1 0x13 0000202f: DUP4 00002030: PUSH2 0x1c20 00002033: JUMP 00002034: JUMPDEST 00002035: SWAP2 00002036: POP 00002037: PUSH2 0x203f 0000203a: DUP3 0000203b: PUSH2 0x2000 0000203e: JUMP 0000203f: JUMPDEST 00002040: PUSH1 0x20 00002042: DUP3 00002043: ADD 00002044: SWAP1 00002045: POP 00002046: SWAP2 00002047: SWAP1 00002048: POP 00002049: JUMP 0000204a: JUMPDEST 0000204b: PUSH0 0000204c: PUSH1 0x20 0000204e: DUP3 0000204f: ADD 00002050: SWAP1 00002051: POP 00002052: DUP2 00002053: DUP2 00002054: SUB 00002055: PUSH0 00002056: DUP4 00002057: ADD 00002058: MSTORE 00002059: PUSH2 0x2061 0000205c: DUP2 0000205d: PUSH2 0x2028 00002060: JUMP 00002061: JUMPDEST 00002062: SWAP1 00002063: POP 00002064: SWAP2 00002065: SWAP1 00002066: POP 00002067: JUMP 00002068: JUMPDEST 00002069: PUSH0 0000206a: DUP2 0000206b: MLOAD 0000206c: SWAP1 0000206d: POP 0000206e: PUSH2 0x2076 00002071: DUP2 00002072: PUSH2 0x1b2c 00002075: JUMP 00002076: JUMPDEST 00002077: SWAP3 00002078: SWAP2 00002079: POP 0000207a: POP 0000207b: JUMP 0000207c: JUMPDEST 0000207d: PUSH0 0000207e: PUSH1 0x20 00002080: DUP3 00002081: DUP5 00002082: SUB 00002083: SLT 00002084: ISZERO 00002085: PUSH2 0x2091 00002088: JUMPI 00002089: PUSH2 0x2090 0000208c: PUSH2 0x1a83 0000208f: JUMP 00002090: JUMPDEST 00002091: JUMPDEST 00002092: PUSH0 00002093: PUSH2 0x209e 00002096: DUP5 00002097: DUP3 00002098: DUP6 00002099: ADD 0000209a: PUSH2 0x2068 0000209d: JUMP 0000209e: JUMPDEST 0000209f: SWAP2 000020a0: POP 000020a1: POP 000020a2: SWAP3 000020a3: SWAP2 000020a4: POP 000020a5: POP 000020a6: JUMP 000020a7: JUMPDEST 000020a8: PUSH32 0x4e6f2066756e647320746f207769746864726177000000000000000000000000 000020c9: PUSH0 000020ca: DUP3 000020cb: ADD 000020cc: MSTORE 000020cd: POP 000020ce: JUMP 000020cf: JUMPDEST 000020d0: PUSH0 000020d1: PUSH2 0x20db 000020d4: PUSH1 0x14 000020d6: DUP4 000020d7: PUSH2 0x1c20 000020da: JUMP 000020db: JUMPDEST 000020dc: SWAP2 000020dd: POP 000020de: PUSH2 0x20e6 000020e1: DUP3 000020e2: PUSH2 0x20a7 000020e5: JUMP 000020e6: JUMPDEST 000020e7: PUSH1 0x20 000020e9: DUP3 000020ea: ADD 000020eb: SWAP1 000020ec: POP 000020ed: SWAP2 000020ee: SWAP1 000020ef: POP 000020f0: JUMP 000020f1: JUMPDEST 000020f2: PUSH0 000020f3: PUSH1 0x20 000020f5: DUP3 000020f6: ADD 000020f7: SWAP1 000020f8: POP 000020f9: DUP2 000020fa: DUP2 000020fb: SUB 000020fc: PUSH0 000020fd: DUP4 000020fe: ADD 000020ff: MSTORE 00002100: PUSH2 0x2108 00002103: DUP2 00002104: PUSH2 0x20cf 00002107: JUMP 00002108: JUMPDEST 00002109: SWAP1 0000210a: POP 0000210b: SWAP2 0000210c: SWAP1 0000210d: POP 0000210e: JUMP 0000210f: JUMPDEST 00002110: PUSH0 00002111: PUSH1 0x40 00002113: DUP3 00002114: ADD 00002115: SWAP1 00002116: POP 00002117: PUSH2 0x2122 0000211a: PUSH0 0000211b: DUP4 0000211c: ADD 0000211d: DUP6 0000211e: PUSH2 0x1c07 00002121: JUMP 00002122: JUMPDEST 00002123: PUSH2 0x212f 00002126: PUSH1 0x20 00002128: DUP4 00002129: ADD 0000212a: DUP5 0000212b: PUSH2 0x1bac 0000212e: JUMP 0000212f: JUMPDEST 00002130: SWAP4 00002131: SWAP3 00002132: POP 00002133: POP 00002134: POP 00002135: JUMP 00002136: JUMPDEST 00002137: PUSH0 00002138: DUP2 00002139: MLOAD 0000213a: SWAP1 0000213b: POP 0000213c: PUSH2 0x2144 0000213f: DUP2 00002140: PUSH2 0x1f30 00002143: JUMP 00002144: JUMPDEST 00002145: SWAP3 00002146: SWAP2 00002147: POP 00002148: POP 00002149: JUMP 0000214a: JUMPDEST 0000214b: PUSH0 0000214c: PUSH1 0x20 0000214e: DUP3 0000214f: DUP5 00002150: SUB 00002151: SLT 00002152: ISZERO 00002153: PUSH2 0x215f 00002156: JUMPI 00002157: PUSH2 0x215e 0000215a: PUSH2 0x1a83 0000215d: JUMP 0000215e: JUMPDEST 0000215f: JUMPDEST 00002160: PUSH0 00002161: PUSH2 0x216c 00002164: DUP5 00002165: DUP3 00002166: DUP6 00002167: ADD 00002168: PUSH2 0x2136 0000216b: JUMP 0000216c: JUMPDEST 0000216d: SWAP2 0000216e: POP 0000216f: POP 00002170: SWAP3 00002171: SWAP2 00002172: POP 00002173: POP 00002174: JUMP 00002175: JUMPDEST 00002176: PUSH32 0x5075726368617365206e6f7420666f756e640000000000000000000000000000 00002197: PUSH0 00002198: DUP3 00002199: ADD 0000219a: MSTORE 0000219b: POP 0000219c: JUMP 0000219d: JUMPDEST 0000219e: PUSH0 0000219f: PUSH2 0x21a9 000021a2: PUSH1 0x12 000021a4: DUP4 000021a5: PUSH2 0x1c20 000021a8: JUMP 000021a9: JUMPDEST 000021aa: SWAP2 000021ab: POP 000021ac: PUSH2 0x21b4 000021af: DUP3 000021b0: PUSH2 0x2175 000021b3: JUMP 000021b4: JUMPDEST 000021b5: PUSH1 0x20 000021b7: DUP3 000021b8: ADD 000021b9: SWAP1 000021ba: POP 000021bb: SWAP2 000021bc: SWAP1 000021bd: POP 000021be: JUMP 000021bf: JUMPDEST 000021c0: PUSH0 000021c1: PUSH1 0x20 000021c3: DUP3 000021c4: ADD 000021c5: SWAP1 000021c6: POP 000021c7: DUP2 000021c8: DUP2 000021c9: SUB 000021ca: PUSH0 000021cb: DUP4 000021cc: ADD 000021cd: MSTORE 000021ce: PUSH2 0x21d6 000021d1: DUP2 000021d2: PUSH2 0x219d 000021d5: JUMP 000021d6: JUMPDEST 000021d7: SWAP1 000021d8: POP 000021d9: SWAP2 000021da: SWAP1 000021db: POP 000021dc: JUMP 000021dd: JUMPDEST 000021de: PUSH32 0x416c726561647920726566756e64656400000000000000000000000000000000 000021ff: PUSH0 00002200: DUP3 00002201: ADD 00002202: MSTORE 00002203: POP 00002204: JUMP 00002205: JUMPDEST 00002206: PUSH0 00002207: PUSH2 0x2211 0000220a: PUSH1 0x10 0000220c: DUP4 0000220d: PUSH2 0x1c20 00002210: JUMP 00002211: JUMPDEST 00002212: SWAP2 00002213: POP 00002214: PUSH2 0x221c 00002217: DUP3 00002218: PUSH2 0x21dd 0000221b: JUMP 0000221c: JUMPDEST 0000221d: PUSH1 0x20 0000221f: DUP3 00002220: ADD 00002221: SWAP1 00002222: POP 00002223: SWAP2 00002224: SWAP1 00002225: POP 00002226: JUMP 00002227: JUMPDEST 00002228: PUSH0 00002229: PUSH1 0x20 0000222b: DUP3 0000222c: ADD 0000222d: SWAP1 0000222e: POP 0000222f: DUP2 00002230: DUP2 00002231: SUB 00002232: PUSH0 00002233: DUP4 00002234: ADD 00002235: MSTORE 00002236: PUSH2 0x223e 00002239: DUP2 0000223a: PUSH2 0x2205 0000223d: JUMP 0000223e: JUMPDEST 0000223f: SWAP1 00002240: POP 00002241: SWAP2 00002242: SWAP1 00002243: POP 00002244: JUMP 00002245: JUMPDEST 00002246: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002267: PUSH0 00002268: MSTORE 00002269: PUSH1 0x22 0000226b: PUSH1 0x04 0000226d: MSTORE 0000226e: PUSH1 0x24 00002270: PUSH0 00002271: REVERT 00002272: JUMPDEST 00002273: PUSH0 00002274: PUSH1 0x02 00002276: DUP3 00002277: DIV 00002278: SWAP1 00002279: POP 0000227a: PUSH1 0x01 0000227c: DUP3 0000227d: AND 0000227e: DUP1 0000227f: PUSH2 0x2289 00002282: JUMPI 00002283: PUSH1 0x7f 00002285: DUP3 00002286: AND 00002287: SWAP2 00002288: POP 00002289: JUMPDEST 0000228a: PUSH1 0x20 0000228c: DUP3 0000228d: LT 0000228e: DUP2 0000228f: SUB 00002290: PUSH2 0x229c 00002293: JUMPI 00002294: PUSH2 0x229b 00002297: PUSH2 0x2245 0000229a: JUMP 0000229b: JUMPDEST 0000229c: JUMPDEST 0000229d: POP 0000229e: SWAP2 0000229f: SWAP1 000022a0: POP 000022a1: JUMP 000022a2: JUMPDEST 000022a3: PUSH32 0x50726963652073686f756c64206265203e203000000000000000000000000000 000022c4: PUSH0 000022c5: DUP3 000022c6: ADD 000022c7: MSTORE 000022c8: POP 000022c9: JUMP 000022ca: JUMPDEST 000022cb: PUSH0 000022cc: PUSH2 0x22d6 000022cf: PUSH1 0x13 000022d1: DUP4 000022d2: PUSH2 0x1c20 000022d5: JUMP 000022d6: JUMPDEST 000022d7: SWAP2 000022d8: POP 000022d9: PUSH2 0x22e1 000022dc: DUP3 000022dd: PUSH2 0x22a2 000022e0: JUMP 000022e1: JUMPDEST 000022e2: PUSH1 0x20 000022e4: DUP3 000022e5: ADD 000022e6: SWAP1 000022e7: POP 000022e8: SWAP2 000022e9: SWAP1 000022ea: POP 000022eb: JUMP 000022ec: JUMPDEST 000022ed: PUSH0 000022ee: PUSH1 0x20 000022f0: DUP3 000022f1: ADD 000022f2: SWAP1 000022f3: POP 000022f4: DUP2 000022f5: DUP2 000022f6: SUB 000022f7: PUSH0 000022f8: DUP4 000022f9: ADD 000022fa: MSTORE 000022fb: PUSH2 0x2303 000022fe: DUP2 000022ff: PUSH2 0x22ca 00002302: JUMP 00002303: JUMPDEST 00002304: SWAP1 00002305: POP 00002306: SWAP2 00002307: SWAP1 00002308: POP 00002309: JUMP 0000230a: JUMPDEST 0000230b: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0000232c: PUSH0 0000232d: MSTORE 0000232e: PUSH1 0x11 00002330: PUSH1 0x04 00002332: MSTORE 00002333: PUSH1 0x24 00002335: PUSH0 00002336: REVERT 00002337: JUMPDEST 00002338: PUSH0 00002339: PUSH2 0x2341 0000233c: DUP3 0000233d: PUSH2 0x1b23 00002340: JUMP 00002341: JUMPDEST 00002342: SWAP2 00002343: POP 00002344: PUSH2 0x234c 00002347: DUP4 00002348: PUSH2 0x1b23 0000234b: JUMP 0000234c: JUMPDEST 0000234d: SWAP3 0000234e: POP 0000234f: DUP3 00002350: DUP3 00002351: MUL 00002352: PUSH2 0x235a 00002355: DUP2 00002356: PUSH2 0x1b23 00002359: JUMP 0000235a: JUMPDEST 0000235b: SWAP2 0000235c: POP 0000235d: DUP3 0000235e: DUP3 0000235f: DIV 00002360: DUP5 00002361: EQ 00002362: DUP4 00002363: ISZERO 00002364: OR 00002365: PUSH2 0x2371 00002368: JUMPI 00002369: PUSH2 0x2370 0000236c: PUSH2 0x230a 0000236f: JUMP 00002370: JUMPDEST 00002371: JUMPDEST 00002372: POP 00002373: SWAP3 00002374: SWAP2 00002375: POP 00002376: POP 00002377: JUMP 00002378: JUMPDEST 00002379: PUSH0 0000237a: PUSH1 0x60 0000237c: DUP3 0000237d: ADD 0000237e: SWAP1 0000237f: POP 00002380: PUSH2 0x238b 00002383: PUSH0 00002384: DUP4 00002385: ADD 00002386: DUP7 00002387: PUSH2 0x1bac 0000238a: JUMP 0000238b: JUMPDEST 0000238c: PUSH2 0x2398 0000238f: PUSH1 0x20 00002391: DUP4 00002392: ADD 00002393: DUP6 00002394: PUSH2 0x1bac 00002397: JUMP 00002398: JUMPDEST 00002399: PUSH2 0x23a5 0000239c: PUSH1 0x40 0000239e: DUP4 0000239f: ADD 000023a0: DUP5 000023a1: PUSH2 0x1bac 000023a4: JUMP 000023a5: JUMPDEST 000023a6: SWAP5 000023a7: SWAP4 000023a8: POP 000023a9: POP 000023aa: POP 000023ab: POP 000023ac: JUMP 000023ad: JUMPDEST 000023ae: PUSH32 0x536f6c616e612061646472657373207265717569726564000000000000000000 000023cf: PUSH0 000023d0: DUP3 000023d1: ADD 000023d2: MSTORE 000023d3: POP 000023d4: JUMP 000023d5: JUMPDEST 000023d6: PUSH0 000023d7: PUSH2 0x23e1 000023da: PUSH1 0x17 000023dc: DUP4 000023dd: PUSH2 0x1c20 000023e0: JUMP 000023e1: JUMPDEST 000023e2: SWAP2 000023e3: POP 000023e4: PUSH2 0x23ec 000023e7: DUP3 000023e8: PUSH2 0x23ad 000023eb: JUMP 000023ec: JUMPDEST 000023ed: PUSH1 0x20 000023ef: DUP3 000023f0: ADD 000023f1: SWAP1 000023f2: POP 000023f3: SWAP2 000023f4: SWAP1 000023f5: POP 000023f6: JUMP 000023f7: JUMPDEST 000023f8: PUSH0 000023f9: PUSH1 0x20 000023fb: DUP3 000023fc: ADD 000023fd: SWAP1 000023fe: POP 000023ff: DUP2 00002400: DUP2 00002401: SUB 00002402: PUSH0 00002403: DUP4 00002404: ADD 00002405: MSTORE 00002406: PUSH2 0x240e 00002409: DUP2 0000240a: PUSH2 0x23d5 0000240d: JUMP 0000240e: JUMPDEST 0000240f: SWAP1 00002410: POP 00002411: SWAP2 00002412: SWAP1 00002413: POP 00002414: JUMP 00002415: JUMPDEST 00002416: PUSH32 0x4d65746164617461205552492072657175697265640000000000000000000000 00002437: PUSH0 00002438: DUP3 00002439: ADD 0000243a: MSTORE 0000243b: POP 0000243c: JUMP 0000243d: JUMPDEST 0000243e: PUSH0 0000243f: PUSH2 0x2449 00002442: PUSH1 0x15 00002444: DUP4 00002445: PUSH2 0x1c20 00002448: JUMP 00002449: JUMPDEST 0000244a: SWAP2 0000244b: POP 0000244c: PUSH2 0x2454 0000244f: DUP3 00002450: PUSH2 0x2415 00002453: JUMP 00002454: JUMPDEST 00002455: PUSH1 0x20 00002457: DUP3 00002458: ADD 00002459: SWAP1 0000245a: POP 0000245b: SWAP2 0000245c: SWAP1 0000245d: POP 0000245e: JUMP 0000245f: JUMPDEST 00002460: PUSH0 00002461: PUSH1 0x20 00002463: DUP3 00002464: ADD 00002465: SWAP1 00002466: POP 00002467: DUP2 00002468: DUP2 00002469: SUB 0000246a: PUSH0 0000246b: DUP4 0000246c: ADD 0000246d: MSTORE 0000246e: PUSH2 0x2476 00002471: DUP2 00002472: PUSH2 0x243d 00002475: JUMP 00002476: JUMPDEST 00002477: SWAP1 00002478: POP 00002479: SWAP2 0000247a: SWAP1 0000247b: POP 0000247c: JUMP 0000247d: JUMPDEST 0000247e: PUSH32 0x496e76616c696420536f6c616e61206164647265737320666f726d6174000000 0000249f: PUSH0 000024a0: DUP3 000024a1: ADD 000024a2: MSTORE 000024a3: POP 000024a4: JUMP 000024a5: JUMPDEST 000024a6: PUSH0 000024a7: PUSH2 0x24b1 000024aa: PUSH1 0x1d 000024ac: DUP4 000024ad: PUSH2 0x1c20 000024b0: JUMP 000024b1: JUMPDEST 000024b2: SWAP2 000024b3: POP 000024b4: PUSH2 0x24bc 000024b7: DUP3 000024b8: PUSH2 0x247d 000024bb: JUMP 000024bc: JUMPDEST 000024bd: PUSH1 0x20 000024bf: DUP3 000024c0: ADD 000024c1: SWAP1 000024c2: POP 000024c3: SWAP2 000024c4: SWAP1 000024c5: POP 000024c6: JUMP 000024c7: JUMPDEST 000024c8: PUSH0 000024c9: PUSH1 0x20 000024cb: DUP3 000024cc: ADD 000024cd: SWAP1 000024ce: POP 000024cf: DUP2 000024d0: DUP2 000024d1: SUB 000024d2: PUSH0 000024d3: DUP4 000024d4: ADD 000024d5: MSTORE 000024d6: PUSH2 0x24de 000024d9: DUP2 000024da: PUSH2 0x24a5 000024dd: JUMP 000024de: JUMPDEST 000024df: SWAP1 000024e0: POP 000024e1: SWAP2 000024e2: SWAP1 000024e3: POP 000024e4: JUMP 000024e5: JUMPDEST 000024e6: PUSH0 000024e7: PUSH1 0x60 000024e9: DUP3 000024ea: ADD 000024eb: SWAP1 000024ec: POP 000024ed: PUSH2 0x24f8 000024f0: PUSH0 000024f1: DUP4 000024f2: ADD 000024f3: DUP7 000024f4: PUSH2 0x1c07 000024f7: JUMP 000024f8: JUMPDEST 000024f9: PUSH2 0x2505 000024fc: PUSH1 0x20 000024fe: DUP4 000024ff: ADD 00002500: DUP6 00002501: PUSH2 0x1c07 00002504: JUMP 00002505: JUMPDEST 00002506: PUSH2 0x2512 00002509: PUSH1 0x40 0000250b: DUP4 0000250c: ADD 0000250d: DUP5 0000250e: PUSH2 0x1bac 00002511: JUMP 00002512: JUMPDEST 00002513: SWAP5 00002514: SWAP4 00002515: POP 00002516: POP 00002517: POP 00002518: POP 00002519: JUMP 0000251a: JUMPDEST 0000251b: PUSH0 0000251c: PUSH2 0x2524 0000251f: DUP3 00002520: PUSH2 0x1b23 00002523: JUMP 00002524: JUMPDEST 00002525: SWAP2 00002526: POP 00002527: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002548: DUP3 00002549: SUB 0000254a: PUSH2 0x2556 0000254d: JUMPI 0000254e: PUSH2 0x2555 00002551: PUSH2 0x230a 00002554: JUMP 00002555: JUMPDEST 00002556: JUMPDEST 00002557: PUSH1 0x01 00002559: DUP3 0000255a: ADD 0000255b: SWAP1 0000255c: POP 0000255d: SWAP2 0000255e: SWAP1 0000255f: POP 00002560: JUMP 00002561: JUMPDEST 00002562: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002583: PUSH0 00002584: MSTORE 00002585: PUSH1 0x41 00002587: PUSH1 0x04 00002589: MSTORE 0000258a: PUSH1 0x24 0000258c: PUSH0 0000258d: REVERT 0000258e: JUMPDEST 0000258f: PUSH0 00002590: DUP2 00002591: SWAP1 00002592: POP 00002593: DUP2 00002594: PUSH0 00002595: MSTORE 00002596: PUSH1 0x20 00002598: PUSH0 00002599: KECCAK256 0000259a: SWAP1 0000259b: POP 0000259c: SWAP2 0000259d: SWAP1 0000259e: POP 0000259f: JUMP 000025a0: JUMPDEST 000025a1: PUSH0 000025a2: PUSH1 0x20 000025a4: PUSH1 0x1f 000025a6: DUP4 000025a7: ADD 000025a8: DIV 000025a9: SWAP1 000025aa: POP 000025ab: SWAP2 000025ac: SWAP1 000025ad: POP 000025ae: JUMP 000025af: JUMPDEST 000025b0: PUSH0 000025b1: DUP3 000025b2: DUP3 000025b3: SHL 000025b4: SWAP1 000025b5: POP 000025b6: SWAP3 000025b7: SWAP2 000025b8: POP 000025b9: POP 000025ba: JUMP 000025bb: JUMPDEST 000025bc: PUSH0 000025bd: PUSH1 0x08 000025bf: DUP4 000025c0: MUL 000025c1: PUSH2 0x25ea 000025c4: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000025e5: DUP3 000025e6: PUSH2 0x25af 000025e9: JUMP 000025ea: JUMPDEST 000025eb: PUSH2 0x25f4 000025ee: DUP7 000025ef: DUP4 000025f0: PUSH2 0x25af 000025f3: JUMP 000025f4: JUMPDEST 000025f5: SWAP6 000025f6: POP 000025f7: DUP1 000025f8: NOT 000025f9: DUP5 000025fa: AND 000025fb: SWAP4 000025fc: POP 000025fd: DUP1 000025fe: DUP7 000025ff: AND 00002600: DUP5 00002601: OR 00002602: SWAP3 00002603: POP 00002604: POP 00002605: POP 00002606: SWAP4 00002607: SWAP3 00002608: POP 00002609: POP 0000260a: POP 0000260b: JUMP 0000260c: JUMPDEST 0000260d: PUSH0 0000260e: DUP2 0000260f: SWAP1 00002610: POP 00002611: SWAP2 00002612: SWAP1 00002613: POP 00002614: JUMP 00002615: JUMPDEST 00002616: PUSH0 00002617: PUSH2 0x262f 0000261a: PUSH2 0x262a 0000261d: PUSH2 0x2625 00002620: DUP5 00002621: PUSH2 0x1b23 00002624: JUMP 00002625: JUMPDEST 00002626: PUSH2 0x260c 00002629: JUMP 0000262a: JUMPDEST 0000262b: PUSH2 0x1b23 0000262e: JUMP 0000262f: JUMPDEST 00002630: SWAP1 00002631: POP 00002632: SWAP2 00002633: SWAP1 00002634: POP 00002635: JUMP 00002636: JUMPDEST 00002637: PUSH0 00002638: DUP2 00002639: SWAP1 0000263a: POP 0000263b: SWAP2 0000263c: SWAP1 0000263d: POP 0000263e: JUMP 0000263f: JUMPDEST 00002640: PUSH2 0x2648 00002643: DUP4 00002644: PUSH2 0x2615 00002647: JUMP 00002648: JUMPDEST 00002649: PUSH2 0x265c 0000264c: PUSH2 0x2654 0000264f: DUP3 00002650: PUSH2 0x2636 00002653: JUMP 00002654: JUMPDEST 00002655: DUP5 00002656: DUP5 00002657: SLOAD 00002658: PUSH2 0x25bb 0000265b: JUMP 0000265c: JUMPDEST 0000265d: DUP3 0000265e: SSTORE 0000265f: POP 00002660: POP 00002661: POP 00002662: POP 00002663: JUMP 00002664: JUMPDEST 00002665: PUSH0 00002666: PUSH0 00002667: SWAP1 00002668: POP 00002669: SWAP1 0000266a: JUMP 0000266b: JUMPDEST 0000266c: PUSH2 0x2673 0000266f: PUSH2 0x2664 00002672: JUMP 00002673: JUMPDEST 00002674: PUSH2 0x267e 00002677: DUP2 00002678: DUP5 00002679: DUP5 0000267a: PUSH2 0x263f 0000267d: JUMP 0000267e: JUMPDEST 0000267f: POP 00002680: POP 00002681: POP 00002682: JUMP 00002683: JUMPDEST 00002684: JUMPDEST 00002685: DUP2 00002686: DUP2 00002687: LT 00002688: ISZERO 00002689: PUSH2 0x26a1 0000268c: JUMPI 0000268d: PUSH2 0x2696 00002690: PUSH0 00002691: DUP3 00002692: PUSH2 0x266b 00002695: JUMP 00002696: JUMPDEST 00002697: PUSH1 0x01 00002699: DUP2 0000269a: ADD 0000269b: SWAP1 0000269c: POP 0000269d: PUSH2 0x2684 000026a0: JUMP 000026a1: JUMPDEST 000026a2: POP 000026a3: POP 000026a4: JUMP 000026a5: JUMPDEST 000026a6: PUSH1 0x1f 000026a8: DUP3 000026a9: GT 000026aa: ISZERO 000026ab: PUSH2 0x26e6 000026ae: JUMPI 000026af: PUSH2 0x26b7 000026b2: DUP2 000026b3: PUSH2 0x258e 000026b6: JUMP 000026b7: JUMPDEST 000026b8: PUSH2 0x26c0 000026bb: DUP5 000026bc: PUSH2 0x25a0 000026bf: JUMP 000026c0: JUMPDEST 000026c1: DUP2 000026c2: ADD 000026c3: PUSH1 0x20 000026c5: DUP6 000026c6: LT 000026c7: ISZERO 000026c8: PUSH2 0x26cf 000026cb: JUMPI 000026cc: DUP2 000026cd: SWAP1 000026ce: POP 000026cf: JUMPDEST 000026d0: PUSH2 0x26e3 000026d3: PUSH2 0x26db 000026d6: DUP6 000026d7: PUSH2 0x25a0 000026da: JUMP 000026db: JUMPDEST 000026dc: DUP4 000026dd: ADD 000026de: DUP3 000026df: PUSH2 0x2683 000026e2: JUMP 000026e3: JUMPDEST 000026e4: POP 000026e5: POP 000026e6: JUMPDEST 000026e7: POP 000026e8: POP 000026e9: POP 000026ea: JUMP 000026eb: JUMPDEST 000026ec: PUSH0 000026ed: DUP3 000026ee: DUP3 000026ef: SHR 000026f0: SWAP1 000026f1: POP 000026f2: SWAP3 000026f3: SWAP2 000026f4: POP 000026f5: POP 000026f6: JUMP 000026f7: JUMPDEST 000026f8: PUSH0 000026f9: PUSH2 0x2706 000026fc: PUSH0 000026fd: NOT 000026fe: DUP5 000026ff: PUSH1 0x08 00002701: MUL 00002702: PUSH2 0x26eb 00002705: JUMP 00002706: JUMPDEST 00002707: NOT 00002708: DUP1 00002709: DUP4 0000270a: AND 0000270b: SWAP2 0000270c: POP 0000270d: POP 0000270e: SWAP3 0000270f: SWAP2 00002710: POP 00002711: POP 00002712: JUMP 00002713: JUMPDEST 00002714: PUSH0 00002715: PUSH2 0x271e 00002718: DUP4 00002719: DUP4 0000271a: PUSH2 0x26f7 0000271d: JUMP 0000271e: JUMPDEST 0000271f: SWAP2 00002720: POP 00002721: DUP3 00002722: PUSH1 0x02 00002724: MUL 00002725: DUP3 00002726: OR 00002727: SWAP1 00002728: POP 00002729: SWAP3 0000272a: SWAP2 0000272b: POP 0000272c: POP 0000272d: JUMP 0000272e: JUMPDEST 0000272f: PUSH2 0x2737 00002732: DUP3 00002733: PUSH2 0x1c16 00002736: JUMP 00002737: JUMPDEST 00002738: PUSH8 0xffffffffffffffff 00002741: DUP2 00002742: GT 00002743: ISZERO 00002744: PUSH2 0x2750 00002747: JUMPI 00002748: PUSH2 0x274f 0000274b: PUSH2 0x2561 0000274e: JUMP 0000274f: JUMPDEST 00002750: JUMPDEST 00002751: PUSH2 0x275a 00002754: DUP3 00002755: SLOAD 00002756: PUSH2 0x2272 00002759: JUMP 0000275a: JUMPDEST 0000275b: PUSH2 0x2765 0000275e: DUP3 0000275f: DUP3 00002760: DUP6 00002761: PUSH2 0x26a5 00002764: JUMP 00002765: JUMPDEST 00002766: PUSH0 00002767: PUSH1 0x20 00002769: SWAP1 0000276a: POP 0000276b: PUSH1 0x1f 0000276d: DUP4 0000276e: GT 0000276f: PUSH1 0x01 00002771: DUP2 00002772: EQ 00002773: PUSH2 0x2796 00002776: JUMPI 00002777: PUSH0 00002778: DUP5 00002779: ISZERO 0000277a: PUSH2 0x2784 0000277d: JUMPI 0000277e: DUP3 0000277f: DUP8 00002780: ADD 00002781: MLOAD 00002782: SWAP1 00002783: POP 00002784: JUMPDEST 00002785: PUSH2 0x278e 00002788: DUP6 00002789: DUP3 0000278a: PUSH2 0x2713 0000278d: JUMP 0000278e: JUMPDEST 0000278f: DUP7 00002790: SSTORE 00002791: POP 00002792: PUSH2 0x27f5 00002795: JUMP 00002796: JUMPDEST 00002797: PUSH1 0x1f 00002799: NOT 0000279a: DUP5 0000279b: AND 0000279c: PUSH2 0x27a4 0000279f: DUP7 000027a0: PUSH2 0x258e 000027a3: JUMP 000027a4: JUMPDEST 000027a5: PUSH0 000027a6: JUMPDEST 000027a7: DUP3 000027a8: DUP2 000027a9: LT 000027aa: ISZERO 000027ab: PUSH2 0x27cb 000027ae: JUMPI 000027af: DUP5 000027b0: DUP10 000027b1: ADD 000027b2: MLOAD 000027b3: DUP3 000027b4: SSTORE 000027b5: PUSH1 0x01 000027b7: DUP3 000027b8: ADD 000027b9: SWAP2 000027ba: POP 000027bb: PUSH1 0x20 000027bd: DUP6 000027be: ADD 000027bf: SWAP5 000027c0: POP 000027c1: PUSH1 0x20 000027c3: DUP2 000027c4: ADD 000027c5: SWAP1 000027c6: POP 000027c7: PUSH2 0x27a6 000027ca: JUMP 000027cb: JUMPDEST 000027cc: DUP7 000027cd: DUP4 000027ce: LT 000027cf: ISZERO 000027d0: PUSH2 0x27e8 000027d3: JUMPI 000027d4: DUP5 000027d5: DUP10 000027d6: ADD 000027d7: MLOAD 000027d8: PUSH2 0x27e4 000027db: PUSH1 0x1f 000027dd: DUP10 000027de: AND 000027df: DUP3 000027e0: PUSH2 0x26f7 000027e3: JUMP 000027e4: JUMPDEST 000027e5: DUP4 000027e6: SSTORE 000027e7: POP 000027e8: JUMPDEST 000027e9: PUSH1 0x01 000027eb: PUSH1 0x02 000027ed: DUP9 000027ee: MUL 000027ef: ADD 000027f0: DUP9 000027f1: SSTORE 000027f2: POP 000027f3: POP 000027f4: POP 000027f5: JUMPDEST 000027f6: POP 000027f7: POP 000027f8: POP 000027f9: POP 000027fa: POP 000027fb: POP 000027fc: JUMP 000027fd: JUMPDEST 000027fe: DUP3 000027ff: DUP2 00002800: DUP4 00002801: CALLDATACOPY 00002802: PUSH0 00002803: DUP4 00002804: DUP4 00002805: ADD 00002806: MSTORE 00002807: POP 00002808: POP 00002809: POP 0000280a: JUMP 0000280b: JUMPDEST 0000280c: PUSH0 0000280d: PUSH2 0x2816 00002810: DUP4 00002811: DUP6 00002812: PUSH2 0x1c20 00002815: JUMP 00002816: JUMPDEST 00002817: SWAP4 00002818: POP 00002819: PUSH2 0x2823 0000281c: DUP4 0000281d: DUP6 0000281e: DUP5 0000281f: PUSH2 0x27fd 00002822: JUMP 00002823: JUMPDEST 00002824: PUSH2 0x282c 00002827: DUP4 00002828: PUSH2 0x1c3e 0000282b: JUMP 0000282c: JUMPDEST 0000282d: DUP5 0000282e: ADD 0000282f: SWAP1 00002830: POP 00002831: SWAP4 00002832: SWAP3 00002833: POP 00002834: POP 00002835: POP 00002836: JUMP 00002837: JUMPDEST 00002838: PUSH0 00002839: PUSH1 0x80 0000283b: DUP3 0000283c: ADD 0000283d: SWAP1 0000283e: POP 0000283f: DUP2 00002840: DUP2 00002841: SUB 00002842: PUSH0 00002843: DUP4 00002844: ADD 00002845: MSTORE 00002846: PUSH2 0x2850 00002849: DUP2 0000284a: DUP9 0000284b: DUP11 0000284c: PUSH2 0x280b 0000284f: JUMP 00002850: JUMPDEST 00002851: SWAP1 00002852: POP 00002853: DUP2 00002854: DUP2 00002855: SUB 00002856: PUSH1 0x20 00002858: DUP4 00002859: ADD 0000285a: MSTORE 0000285b: PUSH2 0x2865 0000285e: DUP2 0000285f: DUP7 00002860: DUP9 00002861: PUSH2 0x280b 00002864: JUMP 00002865: JUMPDEST 00002866: SWAP1 00002867: POP 00002868: PUSH2 0x2874 0000286b: PUSH1 0x40 0000286d: DUP4 0000286e: ADD 0000286f: DUP6 00002870: PUSH2 0x1bac 00002873: JUMP 00002874: JUMPDEST 00002875: PUSH2 0x2881 00002878: PUSH1 0x60 0000287a: DUP4 0000287b: ADD 0000287c: DUP5 0000287d: PUSH2 0x1bac 00002880: JUMP 00002881: JUMPDEST 00002882: SWAP8 00002883: SWAP7 00002884: POP 00002885: POP 00002886: POP 00002887: POP 00002888: POP 00002889: POP 0000288a: POP 0000288b: JUMP 0000288c: JUMPDEST 0000288d: PUSH32 0x496e76616c696420746f6b656e20616464726573730000000000000000000000 000028ae: PUSH0 000028af: DUP3 000028b0: ADD 000028b1: MSTORE 000028b2: POP 000028b3: JUMP 000028b4: JUMPDEST 000028b5: PUSH0 000028b6: PUSH2 0x28c0 000028b9: PUSH1 0x15 000028bb: DUP4 000028bc: PUSH2 0x1c20 000028bf: JUMP 000028c0: JUMPDEST 000028c1: SWAP2 000028c2: POP 000028c3: PUSH2 0x28cb 000028c6: DUP3 000028c7: PUSH2 0x288c 000028ca: JUMP 000028cb: JUMPDEST 000028cc: PUSH1 0x20 000028ce: DUP3 000028cf: ADD 000028d0: SWAP1 000028d1: POP 000028d2: SWAP2 000028d3: SWAP1 000028d4: POP 000028d5: JUMP 000028d6: JUMPDEST 000028d7: PUSH0 000028d8: PUSH1 0x20 000028da: DUP3 000028db: ADD 000028dc: SWAP1 000028dd: POP 000028de: DUP2 000028df: DUP2 000028e0: SUB 000028e1: PUSH0 000028e2: DUP4 000028e3: ADD 000028e4: MSTORE 000028e5: PUSH2 0x28ed 000028e8: DUP2 000028e9: PUSH2 0x28b4 000028ec: JUMP 000028ed: JUMPDEST 000028ee: SWAP1 000028ef: POP 000028f0: SWAP2 000028f1: SWAP1 000028f2: POP 000028f3: JUMP 000028f4: JUMPDEST 000028f5: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002916: PUSH0 00002917: MSTORE 00002918: PUSH1 0x32 0000291a: PUSH1 0x04 0000291c: MSTORE 0000291d: PUSH1 0x24 0000291f: PUSH0 00002920: REVERT 00002921: INVALID 00002922: LOG2 00002923: PUSH5 0x6970667358 00002929: UNKNOWN(0x22) 0000292a: SLT 0000292b: KECCAK256 0000292c: CREATE2 0000292d: DUP15 0000292e: COINBASE 0000292f: SUB 00002930: UNKNOWN(0xAF) 00002931: UNKNOWN(0xE9) 00002932: UNKNOWN(0xC8) 00002933: UNKNOWN(0xEB) 00002934: UNKNOWN(0xFC) 00002935: DUP5 00002936: UNKNOWN(0xAF) 00002937: PUSH25 0x96d60c9e600f73627c77115292210f38ef47736564736f6c63 00002951: NUMBER 00002952: STOP 00002953: ADDMOD 00002954: CLZ 00002955: STOP 00002956: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x89e1185fc532b6719ec8439e8a49b174fd27c91c23dca5b0585950bfb79d4dda
call_targets:
0x11c1197798d3b1cab6970577361172c00e4c5f36
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x89e1185fc532b6719ec8439e8a49b174fd27c91c23dca5b0585950bfb79d4dda",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x11c1197798d3b1cab6970577361172c00e4c5f36"
],
"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": "0xc6e5d8f6",
"selector": "0xc6e5d8f6",
"calldata_variants": [
"0xc6e5d8f6",
"0xc6e5d8f60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcf2c0334",
"selector": "0xcf2c0334",
"calldata_variants": [
"0xcf2c0334",
"0xcf2c03340000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7986466",
"selector": "0xe7986466",
"calldata_variants": [
"0xe7986466",
"0xe79864660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea04f155",
"selector": "0xea04f155",
"calldata_variants": [
"0xea04f155",
"0xea04f1550000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x89a30271",
"selector": "0x89a30271",
"calldata_variants": [
"0x89a30271",
"0x89a302710000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa2b40d19",
"selector": "0xa2b40d19",
"calldata_variants": [
"0xa2b40d19",
"0xa2b40d190000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1442,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1952,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3559,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x89e1185fc532b6719ec8439e8a49b174fd27c91c23dca5b0585950bfb79d4dda
call_targets:
0x11c1197798d3b1cab6970577361172c00e4c5f36
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x89e1185fc532b6719ec8439e8a49b174fd27c91c23dca5b0585950bfb79d4dda",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x11c1197798d3b1cab6970577361172c00e4c5f36"
],
"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": "0xc6e5d8f6",
"selector": "0xc6e5d8f6",
"calldata_variants": [
"0xc6e5d8f6",
"0xc6e5d8f60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcf2c0334",
"selector": "0xcf2c0334",
"calldata_variants": [
"0xcf2c0334",
"0xcf2c03340000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7986466",
"selector": "0xe7986466",
"calldata_variants": [
"0xe7986466",
"0xe79864660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea04f155",
"selector": "0xea04f155",
"calldata_variants": [
"0xea04f155",
"0xea04f1550000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x89a30271",
"selector": "0x89a30271",
"calldata_variants": [
"0x89a30271",
"0x89a302710000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa2b40d19",
"selector": "0xa2b40d19",
"calldata_variants": [
"0xa2b40d19",
"0xa2b40d190000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1442,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1952,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3559,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0xe9dab4860f26f61d098618625d054f3d74d00e153a94c5112a8624c9f40de756
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0xe9dab4860f26f61d098618625d054f3d74d00e153a94c5112a8624c9f40de756",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xc6e5d8f6",
"selector": "0xc6e5d8f6",
"calldata_variants": [
"0xc6e5d8f6",
"0xc6e5d8f60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcf2c0334",
"selector": "0xcf2c0334",
"calldata_variants": [
"0xcf2c0334",
"0xcf2c03340000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe7986466",
"selector": "0xe7986466",
"calldata_variants": [
"0xe7986466",
"0xe79864660000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xea04f155",
"selector": "0xea04f155",
"calldata_variants": [
"0xea04f155",
"0xea04f1550000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x89a30271",
"selector": "0x89a30271",
"calldata_variants": [
"0x89a30271",
"0x89a302710000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x8da5cb5b",
"selector": "0x8da5cb5b",
"calldata_variants": [
"0x8da5cb5b",
"0x8da5cb5b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa2b40d19",
"selector": "0xa2b40d19",
"calldata_variants": [
"0xa2b40d19",
"0xa2b40d190000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 1
}
|
| medium | other | codex | Unchecked ERC20 transfer/transferFrom return values can record purchases or refunds without a successful token transfer | 75 | no | — |
viewevidence_json{
"evidence": "`IERC20(token).transferFrom(...)` and `IERC20(...).transfer(...)` calls ignore the returned boolean.",
"locations": [
"nftSale.sol:103",
"nftSale.sol:154",
"nftSale.sol:176"
],
"recommendation": "Use `SafeERC20` and check transfer results (or require the return value to be true). Consider reverting on failure to keep state consistent with transfers.",
"exploit_scenario": "If a supported token returns false instead of reverting (or a misconfigured/old USDT variant), `transferFrom` in `purchaseNFT` can fail silently. The contract still records the purchase and emits the event, enabling a buyer to obtain an NFT off-chain without paying. Similarly, `refundPurchase` and `withdrawFunds` can emit success events even when the token transfer fails, leaving state inconsistent with actual balances."
}
|
| low | math | codex | No verification of actual tokens received allows underpayment for fee-on-transfer tokens | 65 | no | — |
viewevidence_json{
"evidence": "No balance-delta or return-value checks around the payment transfer; amount recorded is always `NFT_PRICE`.",
"locations": [
"nftSale.sol:103",
"nftSale.sol:109"
],
"recommendation": "Restrict support to non-fee tokens, or compute the received amount via balanceBefore/balanceAfter and require it equals `NFT_PRICE` (or store the actual received amount).",
"exploit_scenario": "If the owner enables a deflationary/fee-on-transfer token via `setSupportedToken`, `purchaseNFT` records a fixed `NFT_PRICE` and emits purchase events even though the contract may receive less than `NFT_PRICE`. This can cause underpayment and accounting mismatches when the off-chain system delivers NFTs based on events."
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 0,
"create2_count": 1
}
|