TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

019bb2d5-fced-72a8-b292-cf03c66350e4

failed
Chain ID
1
Address
Block Number
Created
Mon, Jan 12, 2026 3:32 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Authorization based on tx.origin
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
39531 artifact.fetch complete 1 / 3 3 months ago
39532 proxy.resolve complete 1 / 3 3 months ago
39533 tool.cast_disasm complete 1 / 3 3 months ago
39534 analysis.bundle complete 1 / 3 3 months ago
39535 capability.graph complete 1 / 3 3 months ago
39536 detector.run complete 1 / 3 3 months ago
39537 validation.fork complete 1 / 3 3 months ago
39706 report.consolidate complete 1 / 6 3 months ago
39707 tool.slither failed 2 / 2 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither
Status
failed slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-rnl8ga97) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-rnl8ga97) 'forge' returned non-zero exit code 1 Compiling 4 files with Solc 0.8.30 stdout: Solc 0.8.30 finished in 234.44ms Error: Compiler run failed: stderr: Error: Compiler error (/solidity/libsolidity/codegen/LValue.cpp:50): Stack too deep. Try compiling with `--via-ir` (cli) or the equivalent `viaIR: true` (standard JSON) while enabling the optimizer. Otherwise, try removing local variables. stderr: --> src/ZAMM.sol:349:45: stderr: | stderr: 349 | credited = _useTransientBalance(poolKey.token0, poolKey.id0, amountIn); stderr: | ^^^^^^^ 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-rnl8ga97/out/build-info is not a directory.
Attempts
2 / 2
Findings
0
Solc
View stderr
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-rnl8ga97)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-rnl8ga97)
'forge' returned non-zero exit code 1
Compiling 4 files with Solc 0.8.30
stdout: Solc 0.8.30 finished in 234.44ms
Error: Compiler run failed:
stderr: Error: Compiler error (/solidity/libsolidity/codegen/LValue.cpp:50): Stack too deep. Try compiling with `--via-ir` (cli) or the equivalent `viaIR: true` (standard JSON) while enabling the optimizer. Otherwise, try removing local variables.
stderr:    --> src/ZAMM.sol:349:45:
stderr:     |
stderr: 349 |             credited = _useTransientBalance(poolKey.token0, poolKey.id0, amountIn);
stderr:     |                                             ^^^^^^^
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-rnl8ga97/out/build-info is not a directory.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
Summary
Unchecked ERC6909 transfer return values allow non-compliant or malicious tokens to spoof transfers, desyncing reserves and enabling loss of the paired asset.
View stdout
{"no_findings":false,"summary":"Unchecked ERC6909 transfer return values allow non-compliant or malicious tokens to spoof transfers, desyncing reserves and enabling loss of the paired asset.","findings":[{"severity":"medium","category":"other","title":"Unchecked ERC6909 transfer/transferFrom allows spoofed transfers and reserve desync","exploit_scenario":"An attacker deploys an ERC6909-like token that returns false (or returns no value) without transferring. They create a pool with a real asset and this token, then add liquidity or swap using the malicious token. Because the AMM ignores the return value, it updates reserves as if tokens were received and transfers out the real asset, letting the attacker drain the pool or fill orders without paying.","recommendation":"Check the boolean return value for ERC6909 `transfer`/`transferFrom` and revert on failure, or wrap them with a SafeTransfer-style helper that verifies return data. Alternatively, enforce an allowlist of compliant ERC6909 tokens.","evidence":"`ZERC6909(token).transfer(...)` and `ZERC6909(token).transferFrom(...)` are called without checking the return value.","locations":["src/ZAMM.sol:62","src/ZAMM.sol:84","src/ZAMM.sol:858","src/ZAMM.sol:876"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-3mpmqfsu
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb2d6-bed9-7a53-98b5-54de27f318a3
--------
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
**Starting audit by reading AUDIT_BUNDLE**
exec
/bin/bash -lc ls in /tmp/codex-3mpmqfsu succeeded in 8ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
src
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-3mpmqfsu succeeded in 6ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: src/ZAMM.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;

import "./ZERC6909.sol";
import "./utils/Math.sol";
import "./utils/TransferHelper.sol";

// maximally simple constant product AMM singleton
// minted by z0r0z as concentric liquidity backend
// with a native coin path for efficient pool swap
// as well as embedded orderbook and timelock mech
contract ZAMM is ZERC6909 {
    // constants
    uint256 constant MINIMUM_LIQUIDITY = 1000;

thinking
**Preparing to access full ZAMM file**
exec
/bin/bash -lc 'rg -n "contract ZAMM" -n src/ZAMM.sol' in /tmp/codex-3mpmqfsu succeeded in 18ms:
12:contract ZAMM is ZERC6909 {

thinking
**Using sed to read file segments**
exec
/bin/bash -lc "sed -n '1,240p' src/ZAMM.sol" in /tmp/codex-3mpmqfsu succeeded in 6ms:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;

import "./ZERC6909.sol";
import "./utils/Math.sol";
import "./utils/TransferHelper.sol";

// maximally simple constant product AMM singleton
// minted by z0r0z as concentric liquidity backend
// with a native coin path for efficient pool swap
// as well as embedded orderbook and timelock mech
contract ZAMM is ZERC6909 {
    // constants
    uint256 constant MINIMUM_LIQUIDITY = 1000;
    uint256 constant MAX_FEE = 10000; // 100%

    // - hook flags
    uint256 constant FLAG_BEFORE = 1 << 255;
    uint256 constant FLAG_AFTER = 1 << 254;
    uint256 constant ADDR_MASK = (1 << 160) - 1;

thinking
**Continuing exploration of ZAMM functions**
exec
/bin/bash -lc "sed -n '240,520p' src/ZAMM.sol" in /tmp/codex-3mpmqfsu succeeded in 5ms:
        }

        Pool storage pool = pools[poolId];
        (uint112 reserve0, uint112 reserve1) = (pool.reserve0, pool.reserve1);

        bool credited;
        if (zeroForOne) {
            credited = _useTransientBalance(poolKey.token0, poolKey.id0, amountIn);
            if (credited) require(msg.value == 0, InvalidMsgVal());
        } else {
            credited = _useTransientBalance(poolKey.token1, poolKey.id1, amountIn);
        }

        if (!credited) {
            if (zeroForOne) {
                if (poolKey.token0 == address(0)) {
                    require(msg.value == amountIn, InvalidMsgVal());
                } else {
                    require(msg.value == 0, InvalidMsgVal());
                    _safeTransferFrom(

thinking
**Continuing the process**
exec
/bin/bash -lc "sed -n '520,1040p' src/ZAMM.sol" in /tmp/codex-3mpmqfsu succeeded in 6ms:
            feeOn = _mintFee(pool, poolId, reserve0, reserve1);
            supply = pool.supply;
        } else {
            assembly ("memory-safe") {
                feeOn := iszero(iszero(sload(0x20)))
            }
        }

        if (supply == 0) {
            (amount0, amount1) = (amount0Desired, amount1Desired);
        } else {
            uint256 amount1Optimal = mulDiv(amount0Desired, reserve1, reserve0);
            if (amount1Optimal <= amount1Desired) {
                require(amount1Optimal >= amount1Min, InsufficientOutputAmount());
                (amount0, amount1) = (amount0Desired, amount1Optimal);
            } else {
                uint256 amount0Optimal = mulDiv(amount1Desired, reserve0, reserve1);
                assert(amount0Optimal <= amount0Desired);
                require(amount0Optimal >= amount0Min, InsufficientOutputAmount());
                (amount0, amount1) = (amount0Optimal, amount1Desired);






thinking
**Analyzing contract reentrancy and transfer risks**

I'm carefully examining potential reentrancy vulnerabilities around the deposit function which lacks the reentrancy lock, and how external token calls might allow nested swaps or balance manipulations via transient storage. I’m also scrutinizing unchecked return values in token transfers, especially for ERC6909 tokens, and access control nuances involving fee setters, signature absence in order fills, and transient balance usage for multihop swaps. There’s a lot to unpack about whether external calls and hooks might expose subtle attack vectors despite the existing lock patterns.
thinking
**Assessing transient storage and token handling details**

I'm digging into how transient storage is used both for reentrancy guards and for tracking transient balances, confirming these don't conflict. I’m exploring the nuanced token mint/burn logic for internal tokens, flash swap repayment via transient balances, and how external direct token transfers don’t affect reserves. Also, I’m reviewing orderbook escrow mechanics, fee and hook handling, and how deposit’s unlocked state impacts reentrancy and flash swap design. There’s a complex interaction of these mechanisms around token accounting and swap callbacks that I want to fully untangle.
thinking
**Examining liquidity, swaps, and transient balance edge cases**

I’m analyzing subtle behaviors in addLiquidity when initial supply is zero, how canonical token ordering avoids ETH as token1, and how swapExactOut handles ETH input and transient balances. I’m curious about transient balance recovery, minting limits, and how `lock` interacts with transaction reverts. Also, I’m checking if swap calls can be manipulated via crafted inputs, transient balance accounting in multi-step swaps, and correctness of ZERC6909 token allowances and interface support. There’s a lot around fee calculations, orderbook payment flows, and how the contract uses tx.origin for owner logic. It’s a deep dive into contract logic nuances and potential edge cases!
thinking
**Analyzing reentrancy and unchecked token call risks**

I'm exploring reentrancy paths involving refund calls and deposit, noting deposit lacks a reentrancy guard while functions like addLiquidity and swap do have one. There's concern about unchecked return values when calling transfer/transferFrom on ERC6909 tokens, which could let malicious tokens fool the contract into transferring assets incorrectly during swaps or liquidity provision. I'm also checking feeOrHook handling tied to pool IDs, external call patterns in hooks, and subtle uses of transient balances that interact with reentrancy and transient storage. This is a careful look at call ordering, transient balance manipulation, and transfer checks that might create exploitable edge cases.
thinking
**Reviewing transient balance and orderbook edge cases**

I'm examining how transient balances interact with the lock mechanism, noting deposit uses transient storage per caller without locking, which might enable subtle reentrancy between deposit and other functions. I'm also verifying orderbook partial fill logic, ETH handling in payouts, and the possibility of denial-of-service via lockup parameter reuse. Importantly, unchecked return values on ERC6909 token transfers remain a clear concern, alongside nuanced feeOrHook handling and pool initialization checks. This is a thorough look at accounting, invariant consistency, and subtle access patterns.
thinking
**Analyzing ZERC6909 operator checks and allowance logic**

I'm carefully comparing the memory layouts used in operator approval checks within ZERC6909's transferFrom and isOperator functions to ensure they align correctly. I verified the keccak hash inputs and concluded the operator checks are implemented as intended, with no immediate bypass. I’m also reflecting on the transferFrom behavior requiring allowance even when the caller is the token owner, which might be a design nuance rather than vulnerability. The unchecked return values on ERC6909 transfers remain the main concrete issue to highlight.
exec
/bin/bash -lc "nl -ba src/ZAMM.sol | sed -n '40,120p'" in /tmp/codex-3mpmqfsu succeeded in 13ms:
    40	        uint256 supply;
    41	    }
    42	
    43	    // Solady (https://github.com/Vectorized/soledge/blob/main/src/utils/ReentrancyGuard.sol)
    44	    error Reentrancy();
    45	
    46	    modifier lock() {
    47	        assembly ("memory-safe") {
    48	            if tload(0x929eee149b4bd21268) {
    49	                mstore(0x00, 0xab143c06) // `Reentrancy()`
    50	                revert(0x1c, 0x04)
    51	            }
    52	            tstore(0x929eee149b4bd21268, address())
    53	        }
    54	        _;
    55	        assembly ("memory-safe") {
    56	            tstore(0x929eee149b4bd21268, 0)
    57	        }
    58	    }
    59	

thinking
**Identifying relevant code sections**
exec
/bin/bash -lc "nl -ba src/ZAMM.sol | sed -n '820,940p'" in /tmp/codex-3mpmqfsu succeeded in 23ms:
   820	
   821	        _payOut(tokenOut, idOut, sliceOut, maker);
   822	        _payIn(tokenIn, idIn, sliceIn, maker);
   823	
   824	        if (newOutDone == amtOut) delete orders[orderHash];
   825	
   826	        emit Fill(msg.sender, orderHash);
   827	    }
   828	
   829	    /*════════════ maker: cancel order ════════════════════*/
   830	    function cancelOrder(
   831	        address tokenIn,
   832	        uint256 idIn,
   833	        uint96 amtIn,
   834	        address tokenOut,
   835	        uint256 idOut,
   836	        uint96 amtOut,
   837	        uint56 deadline,
   838	        bool partialFill
   839	    ) public lock {

thinking
**Summarizing unchecked ERC6909 token transfer vulnerability**

I'm outlining a key finding about unchecked return values in ERC6909 token transfers affecting reserve synchronization, with a detailed exploit scenario involving malicious tokens bypassing transfer checks and draining pools. I'll create a clear JSON report including severity, evidence, locations, and recommendations to address this medium-risk issue.
codex
{"no_findings":false,"summary":"Unchecked ERC6909 transfer return values allow non-compliant or malicious tokens to spoof transfers, desyncing reserves and enabling loss of the paired asset.","findings":[{"severity":"medium","category":"other","title":"Unchecked ERC6909 transfer/transferFrom allows spoofed transfers and reserve desync","exploit_scenario":"An attacker deploys an ERC6909-like token that returns false (or returns no value) without transferring. They create a pool with a real asset and this token, then add liquidity or swap using the malicious token. Because the AMM ignores the return value, it updates reserves as if tokens were received and transfers out the real asset, letting the attacker drain the pool or fill orders without paying.","recommendation":"Check the boolean return value for ERC6909 `transfer`/`transferFrom` and revert on failure, or wrap them with a SafeTransfer-style helper that verifies return data. Alternatively, enforce an allowlist of compliant ERC6909 tokens.","evidence":"`ZERC6909(token).transfer(...)` and `ZERC6909(token).transferFrom(...)` are called without checking the return value.","locations":["src/ZAMM.sol:62","src/ZAMM.sol:84","src/ZAMM.sol:858","src/ZAMM.sol:876"]}]}
tokens used
55,430
Metadata
{
    "codex": {
        "ran_at": "2026-01-12T15:41:08.006804+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 4,
        "import_count": 3,
        "first_party_contracts_count": 4
    },
    "summary": "Unchecked ERC6909 transfer return values allow non-compliant or malicious tokens to spoof transfers, desyncing reserves and enabling loss of the paired asset.",
    "raw_final": {
        "summary": "Unchecked ERC6909 transfer return values allow non-compliant or malicious tokens to spoof transfers, desyncing reserves and enabling loss of the paired asset.",
        "findings": [
            {
                "title": "Unchecked ERC6909 transfer/transferFrom allows spoofed transfers and reserve desync",
                "category": "other",
                "evidence": "`ZERC6909(token).transfer(...)` and `ZERC6909(token).transferFrom(...)` are called without checking the return value.",
                "severity": "medium",
                "locations": [
                    "src/ZAMM.sol:62",
                    "src/ZAMM.sol:84",
                    "src/ZAMM.sol:858",
                    "src/ZAMM.sol:876"
                ],
                "recommendation": "Check the boolean return value for ERC6909 `transfer`/`transferFrom` and revert on failure, or wrap them with a SafeTransfer-style helper that verifies return data. Alternatively, enforce an allowlist of compliant ERC6909 tokens.",
                "exploit_scenario": "An attacker deploys an ERC6909-like token that returns false (or returns no value) without transferring. They create a pool with a real asset and this token, then add liquidity or swap using the malicious token. Because the AMM ignores the return value, it updates reserves as if tokens were received and transfers out the real asset, letting the attacker drain the pool or fill orders without paying."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
17
EXT*/BALANCE
6
Total opcodes
8340
Flags
heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: DUP1
00000003: PUSH1 0x40
00000005: MSTORE
00000006: PUSH1 0x04
00000008: CALLDATASIZE
00000009: LT
0000000a: ISZERO
0000000b: PUSH2 0x0031
0000000e: JUMPI
0000000f: JUMPDEST
00000010: POP
00000011: CALLDATASIZE
00000012: ISZERO
00000013: PUSH2 0x001a
00000016: JUMPI
00000017: PUSH0
00000018: DUP1
00000019: REVERT
0000001a: JUMPDEST
0000001b: CALLER
0000001c: PUSH0
0000001d: MSTORE
0000001e: PUSH0
0000001f: PUSH1 0x20
00000021: MSTORE
00000022: PUSH0
00000023: PUSH1 0x40
00000025: MSTORE
00000026: PUSH1 0x60
00000028: PUSH0
00000029: KECCAK256
0000002a: CALLVALUE
0000002b: DUP2
0000002c: TLOAD
0000002d: ADD
0000002e: SWAP1
0000002f: TSTORE
00000030: STOP
00000031: JUMPDEST
00000032: PUSH0
00000033: SWAP1
00000034: PUSH0
00000035: CALLDATALOAD
00000036: PUSH1 0xe0
00000038: SHR
00000039: SWAP1
0000003a: DUP2
0000003b: PUSH3 0xfdd58e
0000003f: EQ
00000040: PUSH2 0x3722
00000043: JUMPI
00000044: POP
00000045: DUP1
00000046: PUSH4 0x01ffc9a7
0000004b: EQ
0000004c: PUSH2 0x36a8
0000004f: JUMPI
00000050: DUP1
00000051: PUSH4 0x07b99000
00000056: EQ
00000057: PUSH2 0x346b
0000005a: JUMPI
0000005b: DUP1
0000005c: PUSH4 0x095bcdb6
00000061: EQ
00000062: PUSH2 0x33b7
00000065: JUMPI
00000066: DUP1
00000067: PUSH4 0x0efe6a8b
0000006c: EQ
0000006d: PUSH2 0x3354
00000070: JUMPI
00000071: DUP1
00000072: PUSH4 0x2dd1a516
00000077: EQ
00000078: PUSH2 0x30e2
0000007b: JUMPI
0000007c: DUP1
0000007d: PUSH4 0x346cfccc
00000082: EQ
00000083: PUSH2 0x309a
00000086: JUMPI
00000087: DUP1
00000088: PUSH4 0x38c3f8db
0000008d: EQ
0000008e: PUSH2 0x2a76
00000091: JUMPI
00000092: DUP1
00000093: PUSH4 0x3c5eec50
00000098: EQ
00000099: PUSH2 0x24ad
0000009c: JUMPI
0000009d: DUP1
0000009e: PUSH4 0x426a8493
000000a3: EQ
000000a4: PUSH2 0x244b
000000a7: JUMPI
000000a8: DUP1
000000a9: PUSH4 0x4f05d57b
000000ae: EQ
000000af: PUSH2 0x1d75
000000b2: JUMPI
000000b3: DUP1
000000b4: PUSH4 0x50ab148f
000000b9: EQ
000000ba: PUSH2 0x1cbf
000000bd: JUMPI
000000be: DUP1
000000bf: PUSH4 0x558a7297
000000c4: EQ
000000c5: PUSH2 0x1c2b
000000c8: JUMPI
000000c9: DUP1
000000ca: PUSH4 0x598af9e7
000000cf: EQ
000000d0: PUSH2 0x1bd5
000000d3: JUMPI
000000d4: DUP1
000000d5: PUSH4 0x76615b80
000000da: EQ
000000db: PUSH2 0x1ab8
000000de: JUMPI
000000df: DUP1
000000e0: PUSH4 0x8c1e8f57
000000e5: EQ
000000e6: PUSH2 0x1751
000000e9: JUMPI
000000ea: DUP1
000000eb: PUSH4 0x9c3f1e90
000000f0: EQ
000000f1: PUSH2 0x16d1
000000f4: JUMPI
000000f5: DUP1
000000f6: PUSH4 0xa2e74af6
000000fb: EQ
000000fc: PUSH2 0x1691
000000ff: JUMPI
00000100: DUP1
00000101: PUSH4 0xa647fc2a
00000106: EQ
00000107: PUSH2 0x15ad
0000010a: JUMPI
0000010b: DUP1
0000010c: PUSH4 0xa7b49197
00000111: EQ
00000112: PUSH2 0x0e3f
00000115: JUMPI
00000116: DUP1
00000117: PUSH4 0xac4afa38
0000011c: EQ
0000011d: PUSH2 0x0d9a
00000120: JUMPI
00000121: DUP1
00000122: PUSH4 0xb6363cf2
00000127: EQ
00000128: PUSH2 0x0d30
0000012b: JUMPI
0000012c: DUP1
0000012d: PUSH4 0xc42957a8
00000132: EQ
00000133: PUSH2 0x04cd
00000136: JUMPI
00000137: DUP1
00000138: PUSH4 0xf46901ed
0000013d: EQ
0000013e: PUSH2 0x047f
00000141: JUMPI
00000142: DUP1
00000143: PUSH4 0xf565b772
00000148: EQ
00000149: PUSH2 0x0294
0000014c: JUMPI
0000014d: PUSH4 0xfe99049a
00000152: SUB
00000153: PUSH2 0x000f
00000156: JUMPI
00000157: CALLVALUE
00000158: PUSH2 0x0291
0000015b: JUMPI
0000015c: PUSH1 0x80
0000015e: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
0000017f: CALLDATASIZE
00000180: ADD
00000181: SLT
00000182: PUSH2 0x0291
00000185: JUMPI
00000186: PUSH2 0x018d
00000189: PUSH2 0x3778
0000018c: JUMP
0000018d: JUMPDEST
0000018e: SWAP1
0000018f: PUSH2 0x0196
00000192: PUSH2 0x379b
00000195: JUMP
00000196: JUMPDEST
00000197: SWAP2
00000198: PUSH1 0x44
0000019a: CALLDATALOAD
0000019b: SWAP1
0000019c: PUSH1 0x64
0000019e: CALLDATALOAD
0000019f: PUSH8 0xedcaa89a82293940
000001a8: PUSH1 0x34
000001aa: MSTORE
000001ab: DUP2
000001ac: PUSH1 0x28
000001ae: MSTORE
000001af: CALLER
000001b0: PUSH1 0x14
000001b2: MSTORE
000001b3: PUSH1 0x34
000001b5: PUSH1 0x20
000001b7: KECCAK256
000001b8: SLOAD
000001b9: ISZERO
000001ba: PUSH2 0x0258
000001bd: JUMPI
000001be: JUMPDEST
000001bf: DUP3
000001c0: PUSH1 0x14
000001c2: MSTORE
000001c3: PUSH1 0x40
000001c5: PUSH1 0x14
000001c7: KECCAK256
000001c8: DUP1
000001c9: SLOAD
000001ca: DUP1
000001cb: DUP4
000001cc: GT
000001cd: PUSH2 0x024b
000001d0: JUMPI
000001d1: DUP3
000001d2: SWAP1
000001d3: SUB
000001d4: SWAP1
000001d5: SSTORE
000001d6: DUP5
000001d7: PUSH1 0x28
000001d9: MSTORE
000001da: DUP3
000001db: PUSH1 0x14
000001dd: MSTORE
000001de: PUSH1 0x40
000001e0: PUSH1 0x14
000001e2: KECCAK256
000001e3: DUP1
000001e4: SLOAD
000001e5: SWAP1
000001e6: DUP3
000001e7: DUP3
000001e8: ADD
000001e9: SWAP2
000001ea: DUP3
000001eb: LT
000001ec: PUSH2 0x023e
000001ef: JUMPI
000001f0: SSTORE
000001f1: CALLER
000001f2: DUP5
000001f3: MSTORE
000001f4: PUSH1 0x20
000001f6: SWAP1
000001f7: DUP2
000001f8: MSTORE
000001f9: SWAP4
000001fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000020f: SWAP1
00000210: DUP2
00000211: AND
00000212: SWAP2
00000213: AND
00000214: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859
00000235: PUSH1 0x40
00000237: DUP6
00000238: LOG4
00000239: PUSH1 0x01
0000023b: DUP2
0000023c: MSTORE
0000023d: RETURN
0000023e: JUMPDEST
0000023f: PUSH4 0x89560ca1
00000244: DUP7
00000245: MSTORE
00000246: PUSH1 0x04
00000248: PUSH1 0x1c
0000024a: REVERT
0000024b: JUMPDEST
0000024c: PUSH4 0xf4d678b8
00000251: DUP7
00000252: MSTORE
00000253: PUSH1 0x04
00000255: PUSH1 0x1c
00000257: REVERT
00000258: JUMPDEST
00000259: DUP3
0000025a: DUP5
0000025b: MSTORE
0000025c: PUSH1 0x54
0000025e: DUP5
0000025f: KECCAK256
00000260: DUP1
00000261: SLOAD
00000262: PUSH1 0x01
00000264: DUP2
00000265: ADD
00000266: PUSH2 0x0271
00000269: JUMPI
0000026a: JUMPDEST
0000026b: POP
0000026c: POP
0000026d: PUSH2 0x01be
00000270: JUMP
00000271: JUMPDEST
00000272: DUP1
00000273: DUP4
00000274: GT
00000275: PUSH2 0x0284
00000278: JUMPI
00000279: DUP3
0000027a: SWAP1
0000027b: SUB
0000027c: SWAP1
0000027d: SSTORE
0000027e: PUSH0
0000027f: DUP1
00000280: PUSH2 0x026a
00000283: JUMP
00000284: JUMPDEST
00000285: PUSH4 0xdeda9030
0000028a: DUP7
0000028b: MSTORE
0000028c: PUSH1 0x04
0000028e: PUSH1 0x1c
00000290: REVERT
00000291: JUMPDEST
00000292: DUP1
00000293: REVERT
00000294: JUMPDEST
00000295: POP
00000296: PUSH2 0x029e
00000299: CALLDATASIZE
0000029a: PUSH2 0x397e
0000029d: JUMP
0000029e: JUMPDEST
0000029f: SWAP3
000002a0: SWAP4
000002a1: SWAP2
000002a2: PUSH9 0x929eee149b4bd21268
000002ac: TLOAD
000002ad: PUSH2 0x0472
000002b0: JUMPI
000002b1: ADDRESS
000002b2: PUSH9 0x929eee149b4bd21268
000002bc: TSTORE
000002bd: TIMESTAMP
000002be: DUP5
000002bf: GT
000002c0: ISZERO
000002c1: PUSH2 0x044a
000002c4: JUMPI
000002c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002da: DUP4
000002db: AND
000002dc: ISZERO
000002dd: DUP1
000002de: ISZERO
000002df: PUSH2 0x0444
000002e2: JUMPI
000002e3: DUP3
000002e4: JUMPDEST
000002e5: CALLVALUE
000002e6: SUB
000002e7: PUSH2 0x041c
000002ea: JUMPI
000002eb: SWAP1
000002ec: PUSH2 0x036e
000002ef: SWAP2
000002f0: ISZERO
000002f1: PUSH2 0x040a
000002f4: JUMPI
000002f5: JUMPDEST
000002f6: PUSH2 0x0342
000002f9: DUP6
000002fa: PUSH1 0x40
000002fc: MLOAD
000002fd: SWAP5
000002fe: DUP6
000002ff: SWAP4
00000300: DUP10
00000301: PUSH1 0x20
00000303: DUP7
00000304: ADD
00000305: SWAP9
00000306: DUP10
00000307: SWAP2
00000308: SWAP3
00000309: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000031e: PUSH1 0x80
00000320: SWAP5
00000321: SWAP8
00000322: SWAP7
00000323: SWAP6
00000324: SWAP3
00000325: SWAP8
00000326: DUP2
00000327: PUSH1 0xa0
00000329: DUP7
0000032a: ADD
0000032b: SWAP10
0000032c: AND
0000032d: DUP6
0000032e: MSTORE
0000032f: AND
00000330: PUSH1 0x20
00000332: DUP5
00000333: ADD
00000334: MSTORE
00000335: PUSH1 0x40
00000337: DUP4
00000338: ADD
00000339: MSTORE
0000033a: PUSH1 0x60
0000033c: DUP3
0000033d: ADD
0000033e: MSTORE
0000033f: ADD
00000340: MSTORE
00000341: JUMP
00000342: JUMPDEST
00000343: SUB
00000344: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00000365: DUP2
00000366: ADD
00000367: DUP4
00000368: MSTORE
00000369: DUP3
0000036a: PUSH2 0x3a14
0000036d: JUMP
0000036e: JUMPDEST
0000036f: MLOAD
00000370: SWAP1
00000371: KECCAK256
00000372: SWAP1
00000373: DUP2
00000374: DUP5
00000375: MSTORE
00000376: PUSH1 0x02
00000378: PUSH1 0x20
0000037a: MSTORE
0000037b: PUSH1 0x40
0000037d: DUP5
0000037e: KECCAK256
0000037f: SLOAD
00000380: PUSH2 0x03e2
00000383: JUMPI
00000384: SWAP3
00000385: PUSH1 0x20
00000387: SWAP4
00000388: DUP3
00000389: DUP3
0000038a: MSTORE
0000038b: PUSH1 0x02
0000038d: DUP6
0000038e: MSTORE
0000038f: PUSH1 0x40
00000391: DUP3
00000392: KECCAK256
00000393: SSTORE
00000394: DUP2
00000395: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003aa: PUSH1 0x40
000003ac: MLOAD
000003ad: SWAP5
000003ae: AND
000003af: CALLER
000003b0: PUSH32 0x7375ddc9249cdd8667d03af7de29e75689d227d975eb90b025554cde79d6bf28
000003d1: DUP5
000003d2: DUP1
000003d3: LOG4
000003d4: PUSH9 0x929eee149b4bd21268
000003de: TSTORE
000003df: DUP2
000003e0: MSTORE
000003e1: RETURN
000003e2: JUMPDEST
000003e3: PUSH1 0x04
000003e5: DUP5
000003e6: PUSH32 0x6df2039000000000000000000000000000000000000000000000000000000000
00000407: DUP2
00000408: MSTORE
00000409: REVERT
0000040a: JUMPDEST
0000040b: PUSH2 0x0417
0000040e: DUP4
0000040f: DUP3
00000410: ADDRESS
00000411: CALLER
00000412: DUP9
00000413: PUSH2 0x3c99
00000416: JUMP
00000417: JUMPDEST
00000418: PUSH2 0x02f5
0000041b: JUMP
0000041c: JUMPDEST
0000041d: PUSH1 0x04
0000041f: DUP8
00000420: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
00000441: DUP2
00000442: MSTORE
00000443: REVERT
00000444: JUMPDEST
00000445: DUP7
00000446: PUSH2 0x02e4
00000449: JUMP
0000044a: JUMPDEST
0000044b: PUSH1 0x04
0000044d: DUP7
0000044e: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000
0000046f: DUP2
00000470: MSTORE
00000471: REVERT
00000472: JUMPDEST
00000473: PUSH4 0xab143c06
00000478: DUP7
00000479: MSTORE
0000047a: PUSH1 0x04
0000047c: PUSH1 0x1c
0000047e: REVERT
0000047f: JUMPDEST
00000480: POP
00000481: PUSH1 0x20
00000483: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000004a4: CALLDATASIZE
000004a5: ADD
000004a6: SLT
000004a7: PUSH2 0x0291
000004aa: JUMPI
000004ab: PUSH2 0x04b2
000004ae: PUSH2 0x3778
000004b1: JUMP
000004b2: JUMPDEST
000004b3: DUP2
000004b4: SLOAD
000004b5: CALLER
000004b6: SUB
000004b7: PUSH2 0x04c0
000004ba: JUMPI
000004bb: PUSH1 0x20
000004bd: SSTORE
000004be: DUP1
000004bf: RETURN
000004c0: JUMPDEST
000004c1: PUSH4 0x82b42900
000004c6: DUP3
000004c7: MSTORE
000004c8: PUSH1 0x04
000004ca: PUSH1 0x1c
000004cc: REVERT
000004cd: JUMPDEST
000004ce: POP
000004cf: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000004f0: CALLDATASIZE
000004f1: ADD
000004f2: PUSH2 0x0160
000004f5: DUP2
000004f6: SLT
000004f7: PUSH2 0x0d2c
000004fa: JUMPI
000004fb: PUSH1 0xa0
000004fd: SGT
000004fe: PUSH2 0x0291
00000501: JUMPI
00000502: PUSH2 0x0124
00000505: CALLDATALOAD
00000506: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000051b: DUP2
0000051c: AND
0000051d: DUP2
0000051e: SUB
0000051f: PUSH2 0x0d28
00000522: JUMPI
00000523: PUSH9 0x929eee149b4bd21268
0000052d: TLOAD
0000052e: PUSH2 0x0d1b
00000531: JUMPI
00000532: ADDRESS
00000533: PUSH9 0x929eee149b4bd21268
0000053d: TSTORE
0000053e: TIMESTAMP
0000053f: PUSH2 0x0144
00000542: CALLDATALOAD
00000543: LT
00000544: PUSH2 0x0cf3
00000547: JUMPI
00000548: PUSH1 0xa0
0000054a: PUSH1 0x40
0000054c: MLOAD
0000054d: DUP2
0000054e: PUSH1 0x04
00000550: DUP3
00000551: CALLDATACOPY
00000552: KECCAK256
00000553: SWAP1
00000554: PUSH2 0x055e
00000557: PUSH1 0x84
00000559: CALLDATALOAD
0000055a: PUSH2 0x3d67
0000055d: JUMP
0000055e: JUMPDEST
0000055f: SWAP3
00000560: POP
00000561: SWAP5
00000562: SWAP1
00000563: SWAP5
00000564: PUSH2 0x0c1f
00000567: JUMPI
00000568: JUMPDEST
00000569: DUP4
0000056a: DUP2
0000056b: MSTORE
0000056c: DUP1
0000056d: PUSH1 0x20
0000056f: MSTORE
00000570: PUSH1 0x40
00000572: DUP2
00000573: KECCAK256
00000574: SWAP4
00000575: DUP5
00000576: SLOAD
00000577: SWAP6
00000578: PUSH1 0x04
0000057a: DUP7
0000057b: ADD
0000057c: SLOAD
0000057d: DUP1
0000057e: ISZERO
0000057f: ISZERO
00000580: PUSH0
00000581: EQ
00000582: PUSH2 0x0c12
00000585: JUMPI
00000586: POP
00000587: PUSH2 0x05b5
0000058a: PUSH14 0xffffffffffffffffffffffffffff
00000599: DUP9
0000059a: PUSH1 0x70
0000059c: SHR
0000059d: AND
0000059e: PUSH14 0xffffffffffffffffffffffffffff
000005ad: DUP10
000005ae: AND
000005af: DUP5
000005b0: DUP10
000005b1: PUSH2 0x45cf
000005b4: JUMP
000005b5: JUMPDEST
000005b6: SWAP4
000005b7: PUSH1 0x04
000005b9: DUP8
000005ba: ADD
000005bb: SLOAD
000005bc: SWAP7
000005bd: JUMPDEST
000005be: DUP8
000005bf: PUSH2 0x0b22
000005c2: JUMPI
000005c3: PUSH1 0xc4
000005c5: CALLDATALOAD
000005c6: SWAP6
000005c7: PUSH1 0xa4
000005c9: CALLDATALOAD
000005ca: SWAP9
000005cb: JUMPDEST
000005cc: PUSH2 0x05e0
000005cf: DUP11
000005d0: PUSH2 0x05d7
000005d3: PUSH2 0x3abb
000005d6: JUMP
000005d7: JUMPDEST
000005d8: PUSH1 0x04
000005da: CALLDATALOAD
000005db: SWAP1
000005dc: PUSH2 0x3e8d
000005df: JUMP
000005e0: JUMPDEST
000005e1: DUP1
000005e2: PUSH2 0x0af4
000005e5: JUMPI
000005e6: JUMPDEST
000005e7: ISZERO
000005e8: PUSH2 0x0a94
000005eb: JUMPI
000005ec: JUMPDEST
000005ed: PUSH2 0x0601
000005f0: DUP9
000005f1: PUSH2 0x05f8
000005f4: PUSH2 0x3ade
000005f7: JUMP
000005f8: JUMPDEST
000005f9: PUSH1 0x24
000005fb: CALLDATALOAD
000005fc: SWAP1
000005fd: PUSH2 0x3e8d
00000600: JUMP
00000601: JUMPDEST
00000602: ISZERO
00000603: PUSH2 0x0a76
00000606: JUMPI
00000607: JUMPDEST
00000608: DUP1
00000609: PUSH2 0x09da
0000060c: JUMPI
0000060d: POP
0000060e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000623: PUSH2 0x062a
00000626: PUSH2 0x3abb
00000629: JUMP
0000062a: JUMPDEST
0000062b: AND
0000062c: ISZERO
0000062d: PUSH2 0x09aa
00000630: JUMPI
00000631: JUMPDEST
00000632: PUSH2 0x0639
00000635: PUSH2 0x3abb
00000638: JUMP
00000639: JUMPDEST
0000063a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000064f: DUP1
00000650: PUSH2 0x0657
00000653: PUSH2 0x3ade
00000656: JUMP
00000657: JUMPDEST
00000658: AND
00000659: SWAP2
0000065a: AND
0000065b: LT
0000065c: DUP1
0000065d: ISZERO
0000065e: PUSH2 0x094a
00000661: JUMPI
00000662: JUMPDEST
00000663: ISZERO
00000664: PUSH2 0x0922
00000667: JUMPI
00000668: PUSH2 0x2710
0000066b: PUSH1 0x84
0000066d: CALLDATALOAD
0000066e: GT
0000066f: DUP1
00000670: ISZERO
00000671: SWAP1
00000672: PUSH2 0x08f6
00000675: JUMPI
00000676: JUMPDEST
00000677: ISZERO
00000678: PUSH2 0x08ce
0000067b: JUMPI
0000067c: PUSH2 0x0719
0000067f: PUSH2 0x0688
00000682: DUP9
00000683: DUP12
00000684: PUSH2 0x3c3a
00000687: JUMP
00000688: JUMPDEST
00000689: DUP1
0000068a: PUSH17 0xffffffffffffffffffffffffffffffffff
0000069c: LT
0000069d: PUSH1 0x07
0000069f: SHL
000006a0: DUP2
000006a1: DUP2
000006a2: SHR
000006a3: PUSH9 0xffffffffffffffffff
000006ad: LT
000006ae: PUSH1 0x06
000006b0: SHL
000006b1: OR
000006b2: DUP2
000006b3: DUP2
000006b4: SHR
000006b5: PUSH5 0xffffffffff
000006bb: LT
000006bc: PUSH1 0x05
000006be: SHL
000006bf: OR
000006c0: DUP2
000006c1: DUP2
000006c2: SHR
000006c3: PUSH3 0xffffff
000006c7: LT
000006c8: PUSH1 0x04
000006ca: SHL
000006cb: OR
000006cc: PUSH1 0xb5
000006ce: PUSH3 0x010000
000006d2: DUP4
000006d3: DUP4
000006d4: SHR
000006d5: ADD
000006d6: SWAP2
000006d7: PUSH1 0x01
000006d9: SHR
000006da: SHL
000006db: MUL
000006dc: PUSH1 0x12
000006de: SHR
000006df: DUP1
000006e0: DUP3
000006e1: DIV
000006e2: ADD
000006e3: PUSH1 0x01
000006e5: SHR
000006e6: DUP1
000006e7: DUP3
000006e8: DIV
000006e9: ADD
000006ea: PUSH1 0x01
000006ec: SHR
000006ed: DUP1
000006ee: DUP3
000006ef: DIV
000006f0: ADD
000006f1: PUSH1 0x01
000006f3: SHR
000006f4: DUP1
000006f5: DUP3
000006f6: DIV
000006f7: ADD
000006f8: PUSH1 0x01
000006fa: SHR
000006fb: DUP1
000006fc: DUP3
000006fd: DIV
000006fe: ADD
000006ff: PUSH1 0x01
00000701: SHR
00000702: DUP1
00000703: DUP3
00000704: DIV
00000705: ADD
00000706: PUSH1 0x01
00000708: SHR
00000709: DUP1
0000070a: DUP3
0000070b: DIV
0000070c: ADD
0000070d: PUSH1 0x01
0000070f: SHR
00000710: DUP1
00000711: DUP1
00000712: SWAP3
00000713: DIV
00000714: LT
00000715: SWAP1
00000716: SUB
00000717: SWAP1
00000718: JUMP
00000719: JUMPDEST
0000071a: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18
0000073b: DUP2
0000073c: ADD
0000073d: DUP2
0000073e: DUP2
0000073f: GT
00000740: PUSH2 0x08a1
00000743: JUMPI
00000744: DUP1
00000745: SWAP10
00000746: DUP2
00000747: ISZERO
00000748: PUSH2 0x0879
0000074b: JUMPI
0000074c: SWAP2
0000074d: PUSH2 0x075d
00000750: PUSH1 0x60
00000752: SWAP14
00000753: SWAP3
00000754: DUP10
00000755: PUSH2 0x07a8
00000758: SWAP6
00000759: PUSH2 0x4570
0000075c: JUMP
0000075d: JUMPDEST
0000075e: PUSH1 0x04
00000760: DUP6
00000761: ADD
00000762: SSTORE
00000763: JUMPDEST
00000764: PUSH2 0x077d
00000767: PUSH14 0xffffffffffffffffffffffffffff
00000776: DUP3
00000777: AND
00000778: DUP13
00000779: PUSH2 0x3b2f
0000077c: JUMP
0000077d: JUMPDEST
0000077e: PUSH14 0xffffffffffffffffffffffffffff
0000078d: PUSH1 0x70
0000078f: DUP4
00000790: SWAP1
00000791: SHR
00000792: DUP2
00000793: AND
00000794: SWAP3
00000795: AND
00000796: SWAP1
00000797: PUSH2 0x07a0
0000079a: DUP4
0000079b: DUP13
0000079c: PUSH2 0x3b2f
0000079f: JUMP
000007a0: JUMPDEST
000007a1: SWAP1
000007a2: DUP10
000007a3: DUP8
000007a4: PUSH2 0x3ffd
000007a7: JUMP
000007a8: JUMPDEST
000007a9: PUSH2 0x084d
000007ac: JUMPI
000007ad: JUMPDEST
000007ae: POP
000007af: PUSH2 0x0804
000007b2: JUMPI
000007b3: JUMPDEST
000007b4: POP
000007b5: PUSH1 0x40
000007b7: MLOAD
000007b8: SWAP1
000007b9: DUP6
000007ba: DUP3
000007bb: MSTORE
000007bc: DUP4
000007bd: PUSH1 0x20
000007bf: DUP4
000007c0: ADD
000007c1: MSTORE
000007c2: PUSH32 0x5a3e96f397e68b20a43c25f664b628805b877334dadfcc925c6c1a3ad4340458
000007e3: PUSH1 0x40
000007e5: CALLER
000007e6: SWAP4
000007e7: LOG3
000007e8: PUSH9 0x929eee149b4bd21268
000007f2: TSTORE
000007f3: PUSH1 0x40
000007f5: MLOAD
000007f6: SWAP3
000007f7: DUP4
000007f8: MSTORE
000007f9: PUSH1 0x20
000007fb: DUP4
000007fc: ADD
000007fd: MSTORE
000007fe: PUSH1 0x40
00000800: DUP3
00000801: ADD
00000802: MSTORE
00000803: RETURN
00000804: JUMPDEST
00000805: PUSH2 0x0847
00000808: SWAP1
00000809: PUSH1 0x40
0000080b: MLOAD
0000080c: PUSH2 0x0816
0000080f: PUSH1 0x20
00000811: DUP3
00000812: PUSH2 0x3a14
00000815: JUMP
00000816: JUMPDEST
00000817: DUP5
00000818: DUP2
00000819: MSTORE
0000081a: DUP7
0000081b: DUP7
0000081c: DUP10
0000081d: CALLER
0000081e: DUP8
0000081f: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000840: PUSH0
00000841: CALLDATALOAD
00000842: AND
00000843: PUSH2 0x42cd
00000846: JUMP
00000847: JUMPDEST
00000848: PUSH0
00000849: PUSH2 0x07b3
0000084c: JUMP
0000084d: JUMPDEST
0000084e: PUSH1 0x03
00000850: PUSH2 0x0870
00000853: DUP3
00000854: SLOAD
00000855: PUSH14 0xffffffffffffffffffffffffffff
00000864: DUP1
00000865: DUP3
00000866: PUSH1 0x70
00000868: SHR
00000869: AND
0000086a: SWAP2
0000086b: AND
0000086c: PUSH2 0x3c3a
0000086f: JUMP
00000870: JUMPDEST
00000871: SWAP2
00000872: ADD
00000873: SSTORE
00000874: PUSH0
00000875: PUSH2 0x07ad
00000878: JUMP
00000879: JUMPDEST
0000087a: PUSH1 0x04
0000087c: DUP10
0000087d: PUSH32 0xd226f9d400000000000000000000000000000000000000000000000000000000
0000089e: DUP2
0000089f: MSTORE
000008a0: REVERT
000008a1: JUMPDEST
000008a2: PUSH1 0x24
000008a4: DUP9
000008a5: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000008c6: DUP2
000008c7: MSTORE
000008c8: PUSH1 0x11
000008ca: PUSH1 0x04
000008cc: MSTORE
000008cd: REVERT
000008ce: JUMPDEST
000008cf: PUSH1 0x04
000008d1: DUP7
000008d2: PUSH32 0x2e1740be00000000000000000000000000000000000000000000000000000000
000008f3: DUP2
000008f4: MSTORE
000008f5: REVERT
000008f6: JUMPDEST
000008f7: POP
000008f8: PUSH32 0x3fffffffffffffffffffffff0000000000000000000000000000000000000000
00000919: PUSH1 0x84
0000091b: CALLDATALOAD
0000091c: AND
0000091d: ISZERO
0000091e: PUSH2 0x0676
00000921: JUMP
00000922: JUMPDEST
00000923: PUSH1 0x04
00000925: DUP7
00000926: PUSH32 0x0ab6dd1200000000000000000000000000000000000000000000000000000000
00000947: DUP2
00000948: MSTORE
00000949: REVERT
0000094a: JUMPDEST
0000094b: POP
0000094c: PUSH2 0x0953
0000094f: PUSH2 0x3abb
00000952: JUMP
00000953: JUMPDEST
00000954: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000969: DUP1
0000096a: PUSH2 0x0971
0000096d: PUSH2 0x3ade
00000970: JUMP
00000971: JUMPDEST
00000972: AND
00000973: SWAP2
00000974: AND
00000975: EQ
00000976: DUP1
00000977: PUSH2 0x099f
0000097a: JUMPI
0000097b: JUMPDEST
0000097c: DUP1
0000097d: PUSH2 0x0994
00000980: JUMPI
00000981: JUMPDEST
00000982: DUP1
00000983: ISZERO
00000984: PUSH2 0x0662
00000987: JUMPI
00000988: POP
00000989: PUSH1 0x24
0000098b: CALLDATALOAD
0000098c: PUSH1 0x04
0000098e: CALLDATALOAD
0000098f: LT
00000990: PUSH2 0x0662
00000993: JUMP
00000994: JUMPDEST
00000995: POP
00000996: PUSH1 0x24
00000998: CALLDATALOAD
00000999: ISZERO
0000099a: ISZERO
0000099b: PUSH2 0x0981
0000099e: JUMP
0000099f: JUMPDEST
000009a0: POP
000009a1: PUSH1 0x04
000009a3: CALLDATALOAD
000009a4: ISZERO
000009a5: ISZERO
000009a6: PUSH2 0x097b
000009a9: JUMP
000009aa: JUMPDEST
000009ab: PUSH1 0x04
000009ad: CALLDATALOAD
000009ae: ISZERO
000009af: PUSH2 0x0631
000009b2: JUMPI
000009b3: PUSH1 0x04
000009b5: DUP7
000009b6: PUSH32 0x0ab6dd1200000000000000000000000000000000000000000000000000000000
000009d7: DUP2
000009d8: MSTORE
000009d9: REVERT
000009da: JUMPDEST
000009db: SWAP8
000009dc: PUSH2 0x0a15
000009df: PUSH2 0x09f9
000009e2: PUSH14 0xffffffffffffffffffffffffffff
000009f1: DUP14
000009f2: AND
000009f3: DUP12
000009f4: DUP14
000009f5: PUSH2 0x4434
000009f8: JUMP
000009f9: JUMPDEST
000009fa: SWAP10
000009fb: PUSH14 0xffffffffffffffffffffffffffff
00000a0a: DUP14
00000a0b: PUSH1 0x70
00000a0d: SHR
00000a0e: AND
00000a0f: SWAP1
00000a10: DUP11
00000a11: PUSH2 0x4434
00000a14: JUMP
00000a15: JUMPDEST
00000a16: DUP10
00000a17: DUP2
00000a18: LT
00000a19: SWAP1
00000a1a: DUP11
00000a1b: XOR
00000a1c: MUL
00000a1d: DUP1
00000a1e: DUP11
00000a1f: XOR
00000a20: SWAP10
00000a21: EQ
00000a22: PUSH2 0x0a4e
00000a25: JUMPI
00000a26: PUSH1 0x60
00000a28: SWAP11
00000a29: PUSH2 0x0a36
00000a2c: DUP11
00000a2d: DUP9
00000a2e: PUSH2 0x07a8
00000a31: SWAP5
00000a32: PUSH2 0x47c8
00000a35: JUMP
00000a36: JUMPDEST
00000a37: PUSH2 0x0a44
00000a3a: DUP11
00000a3b: PUSH1 0x04
00000a3d: DUP7
00000a3e: ADD
00000a3f: SLOAD
00000a40: PUSH2 0x3b2f
00000a43: JUMP
00000a44: JUMPDEST
00000a45: PUSH1 0x04
00000a47: DUP6
00000a48: ADD
00000a49: SSTORE
00000a4a: PUSH2 0x0763
00000a4d: JUMP
00000a4e: JUMPDEST
00000a4f: PUSH1 0x04
00000a51: DUP8
00000a52: PUSH32 0xd226f9d400000000000000000000000000000000000000000000000000000000
00000a73: DUP2
00000a74: MSTORE
00000a75: REVERT
00000a76: JUMPDEST
00000a77: PUSH2 0x0a8f
00000a7a: DUP9
00000a7b: PUSH2 0x0a82
00000a7e: PUSH2 0x3ade
00000a81: JUMP
00000a82: JUMPDEST
00000a83: PUSH1 0x24
00000a85: CALLDATALOAD
00000a86: SWAP1
00000a87: ADDRESS
00000a88: SWAP1
00000a89: CALLER
00000a8a: SWAP1
00000a8b: PUSH2 0x3c99
00000a8e: JUMP
00000a8f: JUMPDEST
00000a90: PUSH2 0x0607
00000a93: JUMP
00000a94: JUMPDEST
00000a95: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000aaa: PUSH2 0x0ab1
00000aad: PUSH2 0x3abb
00000ab0: JUMP
00000ab1: JUMPDEST
00000ab2: AND
00000ab3: PUSH2 0x0ad6
00000ab6: JUMPI
00000ab7: DUP10
00000ab8: CALLVALUE
00000ab9: LT
00000aba: PUSH2 0x041c
00000abd: JUMPI
00000abe: DUP10
00000abf: CALLVALUE
00000ac0: GT
00000ac1: PUSH2 0x0aca
00000ac4: JUMPI
00000ac5: JUMPDEST
00000ac6: PUSH2 0x05ec
00000ac9: JUMP
00000aca: JUMPDEST
00000acb: PUSH2 0x0ac5
00000ace: DUP11
00000acf: CALLVALUE
00000ad0: SUB
00000ad1: CALLER
00000ad2: PUSH2 0x3c65
00000ad5: JUMP
00000ad6: JUMPDEST
00000ad7: CALLVALUE
00000ad8: PUSH2 0x041c
00000adb: JUMPI
00000adc: PUSH2 0x0ac5
00000adf: DUP11
00000ae0: PUSH2 0x0ae7
00000ae3: PUSH2 0x3abb
00000ae6: JUMP
00000ae7: JUMPDEST
00000ae8: PUSH1 0x04
00000aea: CALLDATALOAD
00000aeb: SWAP1
00000aec: ADDRESS
00000aed: SWAP1
00000aee: CALLER
00000aef: SWAP1
00000af0: PUSH2 0x3c99
00000af3: JUMP
00000af4: JUMPDEST
00000af5: CALLVALUE
00000af6: ISZERO
00000af7: PUSH2 0x05e6
00000afa: JUMPI
00000afb: PUSH1 0x04
00000afd: DUP9
00000afe: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
00000b1f: DUP2
00000b20: MSTORE
00000b21: REVERT
00000b22: JUMPDEST
00000b23: PUSH2 0x0b52
00000b26: PUSH14 0xffffffffffffffffffffffffffff
00000b35: DUP11
00000b36: AND
00000b37: PUSH14 0xffffffffffffffffffffffffffff
00000b46: DUP12
00000b47: PUSH1 0x70
00000b49: SHR
00000b4a: AND
00000b4b: PUSH1 0xa4
00000b4d: CALLDATALOAD
00000b4e: PUSH2 0x4434
00000b51: JUMP
00000b52: JUMPDEST
00000b53: PUSH1 0xc4
00000b55: CALLDATALOAD
00000b56: DUP2
00000b57: GT
00000b58: PUSH2 0x0b97
00000b5b: JUMPI
00000b5c: PUSH2 0x0104
00000b5f: CALLDATALOAD
00000b60: DUP2
00000b61: LT
00000b62: PUSH2 0x0b6f
00000b65: JUMPI
00000b66: SWAP6
00000b67: PUSH1 0xa4
00000b69: CALLDATALOAD
00000b6a: SWAP9
00000b6b: PUSH2 0x05cb
00000b6e: JUMP
00000b6f: JUMPDEST
00000b70: PUSH1 0x04
00000b72: DUP7
00000b73: PUSH32 0x42301c2300000000000000000000000000000000000000000000000000000000
00000b94: DUP2
00000b95: MSTORE
00000b96: REVERT
00000b97: JUMPDEST
00000b98: POP
00000b99: PUSH2 0x0bc8
00000b9c: PUSH14 0xffffffffffffffffffffffffffff
00000bab: DUP11
00000bac: PUSH1 0x70
00000bae: SHR
00000baf: AND
00000bb0: PUSH14 0xffffffffffffffffffffffffffff
00000bbf: DUP12
00000bc0: AND
00000bc1: PUSH1 0xc4
00000bc3: CALLDATALOAD
00000bc4: PUSH2 0x4434
00000bc7: JUMP
00000bc8: JUMPDEST
00000bc9: SWAP6
00000bca: PUSH1 0xa4
00000bcc: CALLDATALOAD
00000bcd: DUP8
00000bce: GT
00000bcf: PUSH2 0x0be5
00000bd2: JUMPI
00000bd3: PUSH1 0xe4
00000bd5: CALLDATALOAD
00000bd6: DUP8
00000bd7: LT
00000bd8: PUSH2 0x0b6f
00000bdb: JUMPI
00000bdc: PUSH1 0xc4
00000bde: CALLDATALOAD
00000bdf: SWAP7
00000be0: SWAP9
00000be1: PUSH2 0x05cb
00000be4: JUMP
00000be5: JUMPDEST
00000be6: PUSH1 0x24
00000be8: DUP7
00000be9: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00000c0a: DUP2
00000c0b: MSTORE
00000c0c: PUSH1 0x01
00000c0e: PUSH1 0x04
00000c10: MSTORE
00000c11: REVERT
00000c12: JUMPDEST
00000c13: SWAP6
00000c14: SWAP4
00000c15: PUSH1 0x20
00000c17: SLOAD
00000c18: ISZERO
00000c19: ISZERO
00000c1a: SWAP5
00000c1b: PUSH2 0x05bd
00000c1e: JUMP
00000c1f: JUMPDEST
00000c20: PUSH1 0x40
00000c22: MLOAD
00000c23: PUSH32 0x6e5f773000000000000000000000000000000000000000000000000000000000
00000c44: DUP2
00000c45: MSTORE
00000c46: PUSH0
00000c47: DUP1
00000c48: CALLDATALOAD
00000c49: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000c6a: AND
00000c6b: PUSH1 0x04
00000c6d: DUP4
00000c6e: ADD
00000c6f: MSTORE
00000c70: PUSH1 0x24
00000c72: DUP3
00000c73: ADD
00000c74: DUP7
00000c75: SWAP1
00000c76: MSTORE
00000c77: CALLER
00000c78: PUSH1 0x44
00000c7a: DUP4
00000c7b: ADD
00000c7c: MSTORE
00000c7d: PUSH1 0x80
00000c7f: PUSH1 0x64
00000c81: DUP4
00000c82: ADD
00000c83: MSTORE
00000c84: PUSH1 0x84
00000c86: DUP3
00000c87: ADD
00000c88: MSTORE
00000c89: PUSH1 0x20
00000c8b: DUP2
00000c8c: PUSH1 0xa4
00000c8e: DUP2
00000c8f: DUP6
00000c90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ca5: DUP12
00000ca6: AND
00000ca7: GAS
00000ca8: CALL
00000ca9: DUP1
00000caa: ISZERO
00000cab: PUSH2 0x0ce8
00000cae: JUMPI
00000caf: PUSH2 0x0cb9
00000cb2: JUMPI
00000cb3: JUMPDEST
00000cb4: POP
00000cb5: PUSH2 0x0568
00000cb8: JUMP
00000cb9: JUMPDEST
00000cba: PUSH2 0x0cda
00000cbd: SWAP1
00000cbe: PUSH1 0x20
00000cc0: RETURNDATASIZE
00000cc1: PUSH1 0x20
00000cc3: GT
00000cc4: PUSH2 0x0ce1
00000cc7: JUMPI
00000cc8: JUMPDEST
00000cc9: PUSH2 0x0cd2
00000ccc: DUP2
00000ccd: DUP4
00000cce: PUSH2 0x3a14
00000cd1: JUMP
00000cd2: JUMPDEST
00000cd3: DUP2
00000cd4: ADD
00000cd5: SWAP1
00000cd6: PUSH2 0x3aac
00000cd9: JUMP
00000cda: JUMPDEST
00000cdb: POP
00000cdc: PUSH0
00000cdd: PUSH2 0x0cb3
00000ce0: JUMP
00000ce1: JUMPDEST
00000ce2: POP
00000ce3: RETURNDATASIZE
00000ce4: PUSH2 0x0cc8
00000ce7: JUMP
00000ce8: JUMPDEST
00000ce9: PUSH1 0x40
00000ceb: MLOAD
00000cec: RETURNDATASIZE
00000ced: DUP5
00000cee: DUP3
00000cef: RETURNDATACOPY
00000cf0: RETURNDATASIZE
00000cf1: SWAP1
00000cf2: REVERT
00000cf3: JUMPDEST
00000cf4: PUSH1 0x04
00000cf6: DUP3
00000cf7: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000
00000d18: DUP2
00000d19: MSTORE
00000d1a: REVERT
00000d1b: JUMPDEST
00000d1c: PUSH4 0xab143c06
00000d21: DUP3
00000d22: MSTORE
00000d23: PUSH1 0x04
00000d25: PUSH1 0x1c
00000d27: REVERT
00000d28: JUMPDEST
00000d29: PUSH0
00000d2a: DUP1
00000d2b: REVERT
00000d2c: JUMPDEST
00000d2d: POP
00000d2e: DUP1
00000d2f: REVERT
00000d30: JUMPDEST
00000d31: POP
00000d32: CALLVALUE
00000d33: PUSH2 0x0291
00000d36: JUMPI
00000d37: PUSH1 0x40
00000d39: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000d5a: CALLDATASIZE
00000d5b: ADD
00000d5c: SLT
00000d5d: PUSH2 0x0291
00000d60: JUMPI
00000d61: PUSH1 0x20
00000d63: PUSH2 0x0d90
00000d66: PUSH2 0x0d6d
00000d69: PUSH2 0x3778
00000d6c: JUMP
00000d6d: JUMPDEST
00000d6e: PUSH2 0x0d75
00000d71: PUSH2 0x379b
00000d74: JUMP
00000d75: JUMPDEST
00000d76: SWAP1
00000d77: PUSH8 0xedcaa89a82293940
00000d80: PUSH1 0x20
00000d82: MSTORE
00000d83: PUSH1 0x14
00000d85: MSTORE
00000d86: PUSH0
00000d87: MSTORE
00000d88: PUSH1 0x34
00000d8a: PUSH1 0x0c
00000d8c: KECCAK256
00000d8d: SLOAD
00000d8e: SWAP1
00000d8f: JUMP
00000d90: JUMPDEST
00000d91: PUSH1 0x40
00000d93: MLOAD
00000d94: SWAP1
00000d95: ISZERO
00000d96: ISZERO
00000d97: DUP2
00000d98: MSTORE
00000d99: RETURN
00000d9a: JUMPDEST
00000d9b: POP
00000d9c: CALLVALUE
00000d9d: PUSH2 0x0291
00000da0: JUMPI
00000da1: PUSH1 0x20
00000da3: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000dc4: CALLDATASIZE
00000dc5: ADD
00000dc6: SLT
00000dc7: PUSH2 0x0291
00000dca: JUMPI
00000dcb: PUSH1 0x40
00000dcd: PUSH1 0xe0
00000dcf: SWAP2
00000dd0: PUSH1 0x04
00000dd2: CALLDATALOAD
00000dd3: DUP2
00000dd4: MSTORE
00000dd5: DUP1
00000dd6: PUSH1 0x20
00000dd8: MSTORE
00000dd9: KECCAK256
00000dda: DUP1
00000ddb: SLOAD
00000ddc: SWAP1
00000ddd: PUSH1 0x01
00000ddf: DUP2
00000de0: ADD
00000de1: SLOAD
00000de2: SWAP1
00000de3: PUSH1 0x02
00000de5: DUP2
00000de6: ADD
00000de7: SLOAD
00000de8: PUSH1 0x04
00000dea: PUSH1 0x03
00000dec: DUP4
00000ded: ADD
00000dee: SLOAD
00000def: SWAP3
00000df0: ADD
00000df1: SLOAD
00000df2: SWAP3
00000df3: PUSH1 0x40
00000df5: MLOAD
00000df6: SWAP5
00000df7: PUSH14 0xffffffffffffffffffffffffffff
00000e06: DUP2
00000e07: AND
00000e08: DUP7
00000e09: MSTORE
00000e0a: PUSH14 0xffffffffffffffffffffffffffff
00000e19: DUP2
00000e1a: PUSH1 0x70
00000e1c: SHR
00000e1d: AND
00000e1e: PUSH1 0x20
00000e20: DUP8
00000e21: ADD
00000e22: MSTORE
00000e23: DUP7
00000e24: SHR
00000e25: PUSH1 0x40
00000e27: DUP7
00000e28: ADD
00000e29: MSTORE
00000e2a: PUSH1 0x60
00000e2c: DUP6
00000e2d: ADD
00000e2e: MSTORE
00000e2f: PUSH1 0x80
00000e31: DUP5
00000e32: ADD
00000e33: MSTORE
00000e34: PUSH1 0xa0
00000e36: DUP4
00000e37: ADD
00000e38: MSTORE
00000e39: PUSH1 0xc0
00000e3b: DUP3
00000e3c: ADD
00000e3d: MSTORE
00000e3e: RETURN
00000e3f: JUMPDEST
00000e40: POP
00000e41: CALLVALUE
00000e42: PUSH2 0x0291
00000e45: JUMPI
00000e46: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000e67: CALLDATASIZE
00000e68: ADD
00000e69: PUSH2 0x0120
00000e6c: DUP2
00000e6d: SLT
00000e6e: PUSH2 0x0d2c
00000e71: JUMPI
00000e72: PUSH1 0xa0
00000e74: SGT
00000e75: PUSH2 0x0291
00000e78: JUMPI
00000e79: PUSH1 0xe4
00000e7b: CALLDATALOAD
00000e7c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e91: DUP2
00000e92: AND
00000e93: DUP2
00000e94: SUB
00000e95: PUSH2 0x0d28
00000e98: JUMPI
00000e99: PUSH2 0x0104
00000e9c: CALLDATALOAD
00000e9d: PUSH8 0xffffffffffffffff
00000ea6: DUP2
00000ea7: GT
00000ea8: PUSH2 0x15a9
00000eab: JUMPI
00000eac: PUSH2 0x0eb9
00000eaf: SWAP1
00000eb0: CALLDATASIZE
00000eb1: SWAP1
00000eb2: PUSH1 0x04
00000eb4: ADD
00000eb5: PUSH2 0x3950
00000eb8: JUMP
00000eb9: JUMPDEST
00000eba: SWAP2
00000ebb: SWAP1
00000ebc: PUSH9 0x929eee149b4bd21268
00000ec6: TLOAD
00000ec7: PUSH2 0x159c
00000eca: JUMPI
00000ecb: ADDRESS
00000ecc: PUSH9 0x929eee149b4bd21268
00000ed6: TSTORE
00000ed7: PUSH1 0xa4
00000ed9: CALLDATALOAD
00000eda: ISZERO
00000edb: SWAP2
00000edc: DUP3
00000edd: ISZERO
00000ede: DUP1
00000edf: SWAP4
00000ee0: PUSH2 0x1591
00000ee3: JUMPI
00000ee4: JUMPDEST
00000ee5: ISZERO
00000ee6: PUSH2 0x1569
00000ee9: JUMPI
00000eea: PUSH1 0xa0
00000eec: PUSH1 0x40
00000eee: MLOAD
00000eef: DUP2
00000ef0: PUSH1 0x04
00000ef2: DUP3
00000ef3: CALLDATACOPY
00000ef4: KECCAK256
00000ef5: SWAP4
00000ef6: PUSH2 0x0f00
00000ef9: PUSH1 0x84
00000efb: CALLDATALOAD
00000efc: PUSH2 0x3d67
00000eff: JUMP
00000f00: JUMPDEST
00000f01: SWAP1
00000f02: SWAP4
00000f03: SWAP3
00000f04: SWAP4
00000f05: PUSH2 0x1479
00000f08: JUMPI
00000f09: JUMPDEST
00000f0a: DUP8
00000f0b: DUP10
00000f0c: MSTORE
00000f0d: DUP9
00000f0e: PUSH1 0x20
00000f10: MSTORE
00000f11: PUSH1 0x40
00000f13: DUP10
00000f14: KECCAK256
00000f15: SWAP7
00000f16: DUP8
00000f17: SLOAD
00000f18: SWAP1
00000f19: PUSH14 0xffffffffffffffffffffffffffff
00000f28: DUP3
00000f29: AND
00000f2a: PUSH1 0xa4
00000f2c: CALLDATALOAD
00000f2d: LT
00000f2e: ISZERO
00000f2f: PUSH2 0x1451
00000f32: JUMPI
00000f33: PUSH14 0xffffffffffffffffffffffffffff
00000f42: DUP3
00000f43: PUSH1 0x70
00000f45: SHR
00000f46: AND
00000f47: PUSH1 0xc4
00000f49: CALLDATALOAD
00000f4a: LT
00000f4b: ISZERO
00000f4c: PUSH2 0x1451
00000f4f: JUMPI
00000f50: PUSH2 0x1433
00000f53: JUMPI
00000f54: JUMPDEST
00000f55: PUSH1 0xc4
00000f57: CALLDATALOAD
00000f58: PUSH2 0x1415
00000f5b: JUMPI
00000f5c: JUMPDEST
00000f5d: DUP4
00000f5e: PUSH2 0x1346
00000f61: JUMPI
00000f62: JUMPDEST
00000f63: PUSH2 0x0f9b
00000f66: PUSH2 0x0f6d
00000f69: PUSH2 0x3abb
00000f6c: JUMP
00000f6d: JUMPDEST
00000f6e: PUSH2 0x0f96
00000f71: PUSH2 0x0f80
00000f74: PUSH1 0xa4
00000f76: CALLDATALOAD
00000f77: SWAP3
00000f78: PUSH1 0x04
00000f7a: CALLDATALOAD
00000f7b: SWAP1
00000f7c: PUSH2 0x479c
00000f7f: JUMP
00000f80: JUMPDEST
00000f81: PUSH14 0xffffffffffffffffffffffffffff
00000f90: DUP6
00000f91: AND
00000f92: PUSH2 0x3b2f
00000f95: JUMP
00000f96: JUMPDEST
00000f97: PUSH2 0x3b22
00000f9a: JUMP
00000f9b: JUMPDEST
00000f9c: SWAP8
00000f9d: PUSH2 0x0fd3
00000fa0: PUSH2 0x0fa7
00000fa3: PUSH2 0x3ade
00000fa6: JUMP
00000fa7: JUMPDEST
00000fa8: PUSH2 0x0f96
00000fab: PUSH2 0x0fba
00000fae: PUSH1 0xc4
00000fb0: CALLDATALOAD
00000fb1: SWAP3
00000fb2: PUSH1 0x24
00000fb4: CALLDATALOAD
00000fb5: SWAP1
00000fb6: PUSH2 0x479c
00000fb9: JUMP
00000fba: JUMPDEST
00000fbb: PUSH14 0xffffffffffffffffffffffffffff
00000fca: DUP7
00000fcb: PUSH1 0x70
00000fcd: SHR
00000fce: AND
00000fcf: PUSH2 0x3b2f
00000fd2: JUMP
00000fd3: JUMPDEST
00000fd4: PUSH1 0xa4
00000fd6: CALLDATALOAD
00000fd7: PUSH14 0xffffffffffffffffffffffffffff
00000fe6: DUP5
00000fe7: AND
00000fe8: SUB
00000fe9: DUP1
00000fea: DUP12
00000feb: GT
00000fec: ISZERO
00000fed: PUSH2 0x133e
00000ff0: JUMPI
00000ff1: DUP11
00000ff2: SUB
00000ff3: SWAP10
00000ff4: JUMPDEST
00000ff5: PUSH1 0xc4
00000ff7: CALLDATALOAD
00000ff8: PUSH14 0xffffffffffffffffffffffffffff
00001007: DUP6
00001008: PUSH1 0x70
0000100a: SHR
0000100b: AND
0000100c: SUB
0000100d: DUP1
0000100e: DUP4
0000100f: GT
00001010: PUSH0
00001011: EQ
00001012: PUSH2 0x1336
00001015: JUMPI
00001016: DUP3
00001017: SUB
00001018: SWAP8
00001019: JUMPDEST
0000101a: DUP12
0000101b: ISZERO
0000101c: DUP1
0000101d: ISZERO
0000101e: SWAP1
0000101f: PUSH2 0x132d
00001022: JUMPI
00001023: JUMPDEST
00001024: ISZERO
00001025: PUSH2 0x1305
00001028: JUMPI
00001029: DUP2
0000102a: PUSH2 0x2710
0000102d: DUP2
0000102e: MUL
0000102f: DIV
00001030: PUSH2 0x2710
00001033: EQ
00001034: DUP3
00001035: ISZERO
00001036: OR
00001037: ISZERO
00001038: PUSH2 0x12d8
0000103b: JUMPI
0000103c: PUSH2 0x1052
0000103f: PUSH2 0x1048
00001042: DUP3
00001043: DUP15
00001044: PUSH2 0x3c3a
00001047: JUMP
00001048: JUMPDEST
00001049: PUSH2 0x2710
0000104c: DUP5
0000104d: MUL
0000104e: PUSH2 0x3b22
00001051: JUMP
00001052: JUMPDEST
00001053: SWAP1
00001054: PUSH2 0x2710
00001057: DUP5
00001058: MUL
00001059: SWAP1
0000105a: DUP5
0000105b: DUP3
0000105c: DIV
0000105d: PUSH2 0x2710
00001060: EQ
00001061: DUP6
00001062: ISZERO
00001063: OR
00001064: ISZERO
00001065: PUSH2 0x12aa
00001068: JUMPI
00001069: PUSH2 0x1086
0000106c: SWAP3
0000106d: SWAP2
0000106e: PUSH2 0x107a
00001071: PUSH2 0x1080
00001074: SWAP3
00001075: DUP14
00001076: PUSH2 0x3c3a
00001079: JUMP
0000107a: JUMPDEST
0000107b: SWAP1
0000107c: PUSH2 0x3b22
0000107f: JUMP
00001080: JUMPDEST
00001081: SWAP1
00001082: PUSH2 0x3c3a
00001085: JUMP
00001086: JUMPDEST
00001087: PUSH2 0x10b3
0000108a: PUSH14 0xffffffffffffffffffffffffffff
00001099: DUP7
0000109a: PUSH1 0x70
0000109c: SHR
0000109d: AND
0000109e: PUSH14 0xffffffffffffffffffffffffffff
000010ad: DUP8
000010ae: AND
000010af: PUSH2 0x3c3a
000010b2: JUMP
000010b3: JUMPDEST
000010b4: SWAP1
000010b5: PUSH4 0x05f5e100
000010ba: DUP3
000010bb: MUL
000010bc: SWAP2
000010bd: DUP1
000010be: DUP4
000010bf: DIV
000010c0: PUSH4 0x05f5e100
000010c5: EQ
000010c6: SWAP1
000010c7: ISZERO
000010c8: OR
000010c9: ISZERO
000010ca: PUSH2 0x127d
000010cd: JUMPI
000010ce: LT
000010cf: PUSH2 0x1255
000010d2: JUMPI
000010d3: SWAP1
000010d4: DUP4
000010d5: SWAP3
000010d6: SWAP2
000010d7: DUP13
000010d8: PUSH14 0xffffffffffffffffffffffffffff
000010e7: DUP1
000010e8: PUSH2 0x10f7
000010eb: SWAP8
000010ec: PUSH1 0x70
000010ee: SHR
000010ef: AND
000010f0: SWAP6
000010f1: AND
000010f2: SWAP4
000010f3: PUSH2 0x3ffd
000010f6: JUMP
000010f7: JUMPDEST
000010f8: PUSH2 0x1167
000010fb: JUMPI
000010fc: JUMPDEST
000010fd: POP
000010fe: POP
000010ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001114: SWAP3
00001115: POP
00001116: PUSH1 0x40
00001118: MLOAD
00001119: SWAP4
0000111a: DUP5
0000111b: MSTORE
0000111c: PUSH1 0x20
0000111e: DUP5
0000111f: ADD
00001120: MSTORE
00001121: PUSH1 0xa4
00001123: CALLDATALOAD
00001124: PUSH1 0x40
00001126: DUP5
00001127: ADD
00001128: MSTORE
00001129: PUSH1 0xc4
0000112b: CALLDATALOAD
0000112c: PUSH1 0x60
0000112e: DUP5
0000112f: ADD
00001130: MSTORE
00001131: AND
00001132: SWAP2
00001133: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56
00001154: PUSH1 0x80
00001156: CALLER
00001157: SWAP4
00001158: LOG4
00001159: DUP1
0000115a: PUSH9 0x929eee149b4bd21268
00001164: TSTORE
00001165: DUP1
00001166: RETURN
00001167: JUMPDEST
00001168: PUSH2 0x1173
0000116b: PUSH1 0xa4
0000116d: CALLDATALOAD
0000116e: DUP8
0000116f: PUSH2 0x3c4d
00001172: JUMP
00001173: JUMPDEST
00001174: PUSH2 0x117f
00001177: PUSH1 0xc4
00001179: CALLDATALOAD
0000117a: DUP6
0000117b: PUSH2 0x3c4d
0000117e: JUMP
0000117f: JUMPDEST
00001180: PUSH8 0xffffffffffffffff
00001189: DUP5
0000118a: GT
0000118b: PUSH2 0x1228
0000118e: JUMPI
0000118f: PUSH1 0x40
00001191: MLOAD
00001192: SWAP2
00001193: PUSH2 0x11c4
00001196: PUSH1 0x1f
00001198: DUP7
00001199: ADD
0000119a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000011bb: AND
000011bc: PUSH1 0x20
000011be: ADD
000011bf: DUP5
000011c0: PUSH2 0x3a14
000011c3: JUMP
000011c4: JUMPDEST
000011c5: DUP5
000011c6: DUP4
000011c7: MSTORE
000011c8: DUP11
000011c9: CALLDATASIZE
000011ca: DUP7
000011cb: DUP11
000011cc: ADD
000011cd: GT
000011ce: PUSH2 0x0291
000011d1: JUMPI
000011d2: PUSH1 0x20
000011d4: DUP7
000011d5: PUSH2 0x1221
000011d8: SWAP8
000011d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011ee: SWAP12
000011ef: DUP4
000011f0: DUP9
000011f1: ADD
000011f2: CALLDATACOPY
000011f3: DUP6
000011f4: ADD
000011f5: ADD
000011f6: MSTORE
000011f7: CALLER
000011f8: DUP11
000011f9: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000121a: PUSH0
0000121b: CALLDATALOAD
0000121c: AND
0000121d: PUSH2 0x41a9
00001220: JUMP
00001221: JUMPDEST
00001222: PUSH0
00001223: DUP1
00001224: PUSH2 0x10fc
00001227: JUMP
00001228: JUMPDEST
00001229: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
0000124a: PUSH0
0000124b: MSTORE
0000124c: PUSH1 0x41
0000124e: PUSH1 0x04
00001250: MSTORE
00001251: PUSH1 0x24
00001253: PUSH0
00001254: REVERT
00001255: JUMPDEST
00001256: PUSH1 0x04
00001258: DUP14
00001259: PUSH32 0xa932492f00000000000000000000000000000000000000000000000000000000
0000127a: DUP2
0000127b: MSTORE
0000127c: REVERT
0000127d: JUMPDEST
0000127e: PUSH1 0x24
00001280: DUP16
00001281: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000012a2: DUP2
000012a3: MSTORE
000012a4: PUSH1 0x11
000012a6: PUSH1 0x04
000012a8: MSTORE
000012a9: REVERT
000012aa: JUMPDEST
000012ab: POP
000012ac: PUSH1 0x24
000012ae: DUP16
000012af: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000012d0: DUP2
000012d1: MSTORE
000012d2: PUSH1 0x11
000012d4: PUSH1 0x04
000012d6: MSTORE
000012d7: REVERT
000012d8: JUMPDEST
000012d9: PUSH1 0x24
000012db: DUP15
000012dc: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000012fd: DUP2
000012fe: MSTORE
000012ff: PUSH1 0x11
00001301: PUSH1 0x04
00001303: MSTORE
00001304: REVERT
00001305: JUMPDEST
00001306: PUSH1 0x04
00001308: DUP15
00001309: PUSH32 0x098fb56100000000000000000000000000000000000000000000000000000000
0000132a: DUP2
0000132b: MSTORE
0000132c: REVERT
0000132d: JUMPDEST
0000132e: POP
0000132f: DUP9
00001330: ISZERO
00001331: ISZERO
00001332: PUSH2 0x1023
00001335: JUMP
00001336: JUMPDEST
00001337: POP
00001338: DUP13
00001339: SWAP8
0000133a: PUSH2 0x1019
0000133d: JUMP
0000133e: JUMPDEST
0000133f: POP
00001340: DUP12
00001341: SWAP10
00001342: PUSH2 0x0ff4
00001345: JUMP
00001346: JUMPDEST
00001347: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000135c: DUP7
0000135d: AND
0000135e: EXTCODESIZE
0000135f: ISZERO
00001360: PUSH2 0x1404
00001363: JUMPI
00001364: PUSH1 0x40
00001366: MLOAD
00001367: PUSH32 0xfe2cbab700000000000000000000000000000000000000000000000000000000
00001388: DUP2
00001389: MSTORE
0000138a: DUP10
0000138b: PUSH1 0x04
0000138d: DUP3
0000138e: ADD
0000138f: MSTORE
00001390: CALLER
00001391: PUSH1 0x24
00001393: DUP3
00001394: ADD
00001395: MSTORE
00001396: PUSH1 0xa4
00001398: CALLDATALOAD
00001399: PUSH1 0x44
0000139b: DUP3
0000139c: ADD
0000139d: MSTORE
0000139e: PUSH1 0xc4
000013a0: CALLDATALOAD
000013a1: PUSH1 0x64
000013a3: DUP3
000013a4: ADD
000013a5: MSTORE
000013a6: PUSH1 0xa0
000013a8: PUSH1 0x84
000013aa: DUP3
000013ab: ADD
000013ac: MSTORE
000013ad: DUP11
000013ae: DUP1
000013af: DUP3
000013b0: DUP1
000013b1: PUSH2 0x13bf
000013b4: DUP13
000013b5: DUP11
000013b6: PUSH1 0xa4
000013b8: DUP5
000013b9: ADD
000013ba: SWAP2
000013bb: PUSH2 0x3b92
000013be: JUMP
000013bf: JUMPDEST
000013c0: SUB
000013c1: DUP2
000013c2: DUP4
000013c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013d8: DUP14
000013d9: AND
000013da: GAS
000013db: CALL
000013dc: DUP1
000013dd: ISZERO
000013de: PUSH2 0x1408
000013e1: JUMPI
000013e2: PUSH2 0x13ed
000013e5: JUMPI
000013e6: JUMPDEST
000013e7: POP
000013e8: POP
000013e9: PUSH2 0x0f62
000013ec: JUMP
000013ed: JUMPDEST
000013ee: PUSH2 0x13f6
000013f1: SWAP2
000013f2: PUSH2 0x3a14
000013f5: JUMP
000013f6: JUMPDEST
000013f7: DUP10
000013f8: PUSH0
000013f9: SLT
000013fa: PUSH2 0x1404
000013fd: JUMPI
000013fe: PUSH0
000013ff: DUP11
00001400: PUSH2 0x13e6
00001403: JUMP
00001404: JUMPDEST
00001405: DUP10
00001406: DUP1
00001407: REVERT
00001408: JUMPDEST
00001409: POP
0000140a: PUSH1 0x40
0000140c: MLOAD
0000140d: SWAP1
0000140e: RETURNDATASIZE
0000140f: SWAP1
00001410: DUP3
00001411: RETURNDATACOPY
00001412: RETURNDATASIZE
00001413: SWAP1
00001414: REVERT
00001415: JUMPDEST
00001416: PUSH2 0x142e
00001419: PUSH2 0x1420
0000141c: PUSH2 0x3ade
0000141f: JUMP
00001420: JUMPDEST
00001421: PUSH1 0xc4
00001423: CALLDATALOAD
00001424: SWAP1
00001425: DUP9
00001426: PUSH1 0x24
00001428: CALLDATALOAD
00001429: SWAP2
0000142a: PUSH2 0x3eca
0000142d: JUMP
0000142e: JUMPDEST
0000142f: PUSH2 0x0f5c
00001432: JUMP
00001433: JUMPDEST
00001434: PUSH2 0x144c
00001437: PUSH2 0x143e
0000143a: PUSH2 0x3abb
0000143d: JUMP
0000143e: JUMPDEST
0000143f: PUSH1 0xa4
00001441: CALLDATALOAD
00001442: SWAP1
00001443: DUP9
00001444: PUSH1 0x04
00001446: CALLDATALOAD
00001447: SWAP2
00001448: PUSH2 0x3eca
0000144b: JUMP
0000144c: JUMPDEST
0000144d: PUSH2 0x0f54
00001450: JUMP
00001451: JUMPDEST
00001452: PUSH1 0x04
00001454: DUP12
00001455: PUSH32 0xbb55fd2700000000000000000000000000000000000000000000000000000000
00001476: DUP2
00001477: MSTORE
00001478: REVERT
00001479: JUMPDEST
0000147a: PUSH1 0x40
0000147c: MLOAD
0000147d: PUSH32 0x6e5f773000000000000000000000000000000000000000000000000000000000
0000149e: DUP2
0000149f: MSTORE
000014a0: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000014c1: PUSH0
000014c2: CALLDATALOAD
000014c3: AND
000014c4: PUSH1 0x04
000014c6: DUP3
000014c7: ADD
000014c8: MSTORE
000014c9: DUP9
000014ca: PUSH1 0x24
000014cc: DUP3
000014cd: ADD
000014ce: MSTORE
000014cf: CALLER
000014d0: PUSH1 0x44
000014d2: DUP3
000014d3: ADD
000014d4: MSTORE
000014d5: PUSH1 0x80
000014d7: PUSH1 0x64
000014d9: DUP3
000014da: ADD
000014db: MSTORE
000014dc: PUSH1 0x20
000014de: DUP2
000014df: DUP1
000014e0: PUSH2 0x14ed
000014e3: PUSH1 0x84
000014e5: DUP3
000014e6: ADD
000014e7: DUP9
000014e8: DUP13
000014e9: PUSH2 0x3b92
000014ec: JUMP
000014ed: JUMPDEST
000014ee: SUB
000014ef: DUP2
000014f0: DUP14
000014f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001506: DUP9
00001507: AND
00001508: GAS
00001509: CALL
0000150a: SWAP1
0000150b: DUP2
0000150c: ISZERO
0000150d: PUSH2 0x155e
00001510: JUMPI
00001511: DUP11
00001512: SWAP2
00001513: PUSH2 0x152c
00001516: JUMPI
00001517: JUMPDEST
00001518: POP
00001519: DUP1
0000151a: PUSH2 0x1524
0000151d: JUMPI
0000151e: JUMPDEST
0000151f: POP
00001520: PUSH2 0x0f09
00001523: JUMP
00001524: JUMPDEST
00001525: SWAP4
00001526: POP
00001527: PUSH0
00001528: PUSH2 0x151e
0000152b: JUMP
0000152c: JUMPDEST
0000152d: SWAP1
0000152e: POP
0000152f: PUSH1 0x20
00001531: DUP2
00001532: RETURNDATASIZE
00001533: PUSH1 0x20
00001535: GT
00001536: PUSH2 0x1556
00001539: JUMPI
0000153a: JUMPDEST
0000153b: DUP2
0000153c: PUSH2 0x1547
0000153f: PUSH1 0x20
00001541: SWAP4
00001542: DUP4
00001543: PUSH2 0x3a14
00001546: JUMP
00001547: JUMPDEST
00001548: DUP2
00001549: ADD
0000154a: SUB
0000154b: SLT
0000154c: PUSH2 0x0d28
0000154f: JUMPI
00001550: MLOAD
00001551: PUSH0
00001552: PUSH2 0x1517
00001555: JUMP
00001556: JUMPDEST
00001557: RETURNDATASIZE
00001558: SWAP2
00001559: POP
0000155a: PUSH2 0x153a
0000155d: JUMP
0000155e: JUMPDEST
0000155f: PUSH1 0x40
00001561: MLOAD
00001562: RETURNDATASIZE
00001563: DUP13
00001564: DUP3
00001565: RETURNDATACOPY
00001566: RETURNDATASIZE
00001567: SWAP1
00001568: REVERT
00001569: JUMPDEST
0000156a: PUSH1 0x04
0000156c: DUP6
0000156d: PUSH32 0x42301c2300000000000000000000000000000000000000000000000000000000
0000158e: DUP2
0000158f: MSTORE
00001590: REVERT
00001591: JUMPDEST
00001592: POP
00001593: PUSH1 0xc4
00001595: CALLDATALOAD
00001596: ISZERO
00001597: ISZERO
00001598: PUSH2 0x0ee4
0000159b: JUMP
0000159c: JUMPDEST
0000159d: PUSH4 0xab143c06
000015a2: DUP5
000015a3: MSTORE
000015a4: PUSH1 0x04
000015a6: PUSH1 0x1c
000015a8: REVERT
000015a9: JUMPDEST
000015aa: DUP3
000015ab: DUP1
000015ac: REVERT
000015ad: JUMPDEST
000015ae: POP
000015af: CALLVALUE
000015b0: PUSH2 0x0291
000015b3: JUMPI
000015b4: PUSH1 0x60
000015b6: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000015d7: CALLDATASIZE
000015d8: ADD
000015d9: SLT
000015da: PUSH2 0x0291
000015dd: JUMPI
000015de: PUSH2 0x15e5
000015e1: PUSH2 0x3778
000015e4: JUMP
000015e5: JUMPDEST
000015e6: SWAP1
000015e7: PUSH1 0x44
000015e9: CALLDATALOAD
000015ea: PUSH1 0x24
000015ec: CALLDATALOAD
000015ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001602: DUP3
00001603: AND
00001604: DUP3
00001605: SUB
00001606: PUSH2 0x0d28
00001609: JUMPI
0000160a: PUSH9 0x929eee149b4bd21268
00001614: TLOAD
00001615: PUSH2 0x1684
00001618: JUMPI
00001619: SWAP3
0000161a: DUP3
0000161b: SWAP2
0000161c: PUSH1 0x20
0000161e: SWAP5
0000161f: ADDRESS
00001620: PUSH9 0x929eee149b4bd21268
0000162a: TSTORE
0000162b: PUSH1 0x40
0000162d: MLOAD
0000162e: SWAP2
0000162f: CALLER
00001630: DUP6
00001631: MSTORE
00001632: DUP4
00001633: DUP8
00001634: MSTORE
00001635: DUP2
00001636: PUSH1 0x40
00001638: MSTORE
00001639: PUSH1 0x60
0000163b: DUP6
0000163c: KECCAK256
0000163d: SWAP3
0000163e: DUP4
0000163f: TLOAD
00001640: SWAP7
00001641: DUP8
00001642: SWAP5
00001643: DUP6
00001644: PUSH2 0x167c
00001647: JUMPI
00001648: JUMPDEST
00001649: POP
0000164a: POP
0000164b: PUSH1 0x40
0000164d: MSTORE
0000164e: DUP3
0000164f: PUSH2 0x166a
00001652: JUMPI
00001653: JUMPDEST
00001654: POP
00001655: POP
00001656: POP
00001657: POP
00001658: PUSH9 0x929eee149b4bd21268
00001662: TSTORE
00001663: PUSH1 0x40
00001665: MLOAD
00001666: SWAP1
00001667: DUP2
00001668: MSTORE
00001669: RETURN
0000166a: JUMPDEST
0000166b: PUSH2 0x1673
0000166e: SWAP4
0000166f: PUSH2 0x3eca
00001672: JUMP
00001673: JUMPDEST
00001674: PUSH0
00001675: DUP3
00001676: DUP2
00001677: DUP1
00001678: PUSH2 0x1653
0000167b: JUMP
0000167c: JUMPDEST
0000167d: TSTORE
0000167e: DUP6
0000167f: PUSH0
00001680: PUSH2 0x1648
00001683: JUMP
00001684: JUMPDEST
00001685: PUSH4 0xab143c06
0000168a: DUP4
0000168b: MSTORE
0000168c: PUSH1 0x04
0000168e: PUSH1 0x1c
00001690: REVERT
00001691: JUMPDEST
00001692: POP
00001693: PUSH1 0x20
00001695: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000016b6: CALLDATASIZE
000016b7: ADD
000016b8: SLT
000016b9: PUSH2 0x0291
000016bc: JUMPI
000016bd: PUSH2 0x16c4
000016c0: PUSH2 0x3778
000016c3: JUMP
000016c4: JUMPDEST
000016c5: DUP2
000016c6: SLOAD
000016c7: CALLER
000016c8: SUB
000016c9: PUSH2 0x04c0
000016cc: JUMPI
000016cd: DUP2
000016ce: SSTORE
000016cf: DUP1
000016d0: RETURN
000016d1: JUMPDEST
000016d2: POP
000016d3: CALLVALUE
000016d4: PUSH2 0x0291
000016d7: JUMPI
000016d8: PUSH1 0x20
000016da: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000016fb: CALLDATASIZE
000016fc: ADD
000016fd: SLT
000016fe: PUSH2 0x0291
00001701: JUMPI
00001702: PUSH1 0x40
00001704: PUSH1 0x80
00001706: SWAP2
00001707: PUSH1 0x04
00001709: CALLDATALOAD
0000170a: DUP2
0000170b: MSTORE
0000170c: PUSH1 0x03
0000170e: PUSH1 0x20
00001710: MSTORE
00001711: KECCAK256
00001712: SLOAD
00001713: PUSH1 0x40
00001715: MLOAD
00001716: SWAP1
00001717: PUSH1 0xff
00001719: DUP2
0000171a: AND
0000171b: ISZERO
0000171c: ISZERO
0000171d: DUP3
0000171e: MSTORE
0000171f: PUSH7 0xffffffffffffff
00001727: DUP2
00001728: PUSH1 0x08
0000172a: SHR
0000172b: AND
0000172c: PUSH1 0x20
0000172e: DUP4
0000172f: ADD
00001730: MSTORE
00001731: PUSH12 0xffffffffffffffffffffffff
0000173e: DUP2
0000173f: PUSH1 0x40
00001741: SHR
00001742: AND
00001743: PUSH1 0x40
00001745: DUP4
00001746: ADD
00001747: MSTORE
00001748: PUSH1 0xa0
0000174a: SHR
0000174b: PUSH1 0x60
0000174d: DUP3
0000174e: ADD
0000174f: MSTORE
00001750: RETURN
00001751: JUMPDEST
00001752: POP
00001753: CALLVALUE
00001754: PUSH2 0x0291
00001757: JUMPI
00001758: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001779: CALLDATASIZE
0000177a: ADD
0000177b: PUSH2 0x0140
0000177e: DUP2
0000177f: SLT
00001780: PUSH2 0x0d2c
00001783: JUMPI
00001784: PUSH1 0xa0
00001786: SGT
00001787: PUSH2 0x0291
0000178a: JUMPI
0000178b: PUSH1 0xa4
0000178d: CALLDATALOAD
0000178e: SWAP1
0000178f: PUSH2 0x0104
00001792: CALLDATALOAD
00001793: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017a8: DUP2
000017a9: AND
000017aa: SWAP2
000017ab: DUP3
000017ac: DUP3
000017ad: SUB
000017ae: PUSH2 0x0d28
000017b1: JUMPI
000017b2: PUSH9 0x929eee149b4bd21268
000017bc: TLOAD
000017bd: PUSH2 0x1aab
000017c0: JUMPI
000017c1: ADDRESS
000017c2: PUSH9 0x929eee149b4bd21268
000017cc: TSTORE
000017cd: TIMESTAMP
000017ce: PUSH2 0x0124
000017d1: CALLDATALOAD
000017d2: LT
000017d3: PUSH2 0x1a83
000017d6: JUMPI
000017d7: PUSH1 0xa0
000017d9: PUSH1 0x40
000017db: MLOAD
000017dc: DUP2
000017dd: PUSH1 0x04
000017df: DUP3
000017e0: CALLDATACOPY
000017e1: KECCAK256
000017e2: SWAP3
000017e3: PUSH2 0x17ed
000017e6: PUSH1 0x84
000017e8: CALLDATALOAD
000017e9: PUSH2 0x3d67
000017ec: JUMP
000017ed: JUMPDEST
000017ee: SWAP7
000017ef: SWAP3
000017f0: POP
000017f1: SWAP7
000017f2: SWAP1
000017f3: SWAP7
000017f4: PUSH2 0x19bf
000017f7: JUMPI
000017f8: JUMPDEST
000017f9: DUP2
000017fa: DUP5
000017fb: MSTORE
000017fc: DUP4
000017fd: PUSH1 0x20
000017ff: MSTORE
00001800: PUSH1 0x40
00001802: DUP5
00001803: KECCAK256
00001804: SWAP7
00001805: DUP8
00001806: SLOAD
00001807: SWAP7
00001808: PUSH14 0xffffffffffffffffffffffffffff
00001817: DUP1
00001818: DUP10
00001819: AND
0000181a: SWAP9
0000181b: PUSH1 0x70
0000181d: SHR
0000181e: AND
0000181f: SWAP9
00001820: DUP9
00001821: PUSH2 0x182d
00001824: DUP12
00001825: DUP1
00001826: SWAP12
00001827: DUP9
00001828: DUP6
00001829: PUSH2 0x45cf
0000182c: JUMP
0000182d: JUMPDEST
0000182e: SWAP1
0000182f: PUSH1 0x04
00001831: DUP4
00001832: ADD
00001833: SWAP10
00001834: PUSH2 0x184a
00001837: DUP12
00001838: SLOAD
00001839: PUSH2 0x1843
0000183c: DUP2
0000183d: DUP6
0000183e: DUP12
0000183f: PUSH2 0x4434
00001842: JUMP
00001843: JUMPDEST
00001844: SWAP14
00001845: DUP10
00001846: PUSH2 0x4434
00001849: JUMP
0000184a: JUMPDEST
0000184b: SWAP11
0000184c: PUSH1 0xc4
0000184e: CALLDATALOAD
0000184f: DUP14
00001850: LT
00001851: PUSH2 0x1997
00001854: JUMPI
00001855: PUSH1 0xe4
00001857: CALLDATALOAD
00001858: DUP13
00001859: LT
0000185a: PUSH2 0x1997
0000185d: JUMPI
0000185e: SWAP2
0000185f: PUSH2 0x18a5
00001862: DUP13
00001863: PUSH1 0x40
00001865: SWAP16
00001866: SWAP4
00001867: DUP16
00001868: PUSH2 0x1893
0000186b: SWAP1
0000186c: PUSH2 0x18b2
0000186f: SWAP8
00001870: PUSH2 0x187b
00001873: DUP16
00001874: DUP16
00001875: SWAP1
00001876: CALLER
00001877: PUSH2 0x472e
0000187a: JUMP
0000187b: JUMPDEST
0000187c: DUP14
0000187d: DUP2
0000187e: SLOAD
0000187f: SUB
00001880: SWAP1
00001881: SSTORE
00001882: PUSH2 0x1889
00001885: PUSH2 0x3abb
00001888: JUMP
00001889: JUMPDEST
0000188a: DUP4
0000188b: PUSH1 0x04
0000188d: CALLDATALOAD
0000188e: SWAP2
0000188f: PUSH2 0x3eca
00001892: JUMP
00001893: JUMPDEST
00001894: PUSH2 0x189b
00001897: PUSH2 0x3ade
0000189a: JUMP
0000189b: JUMPDEST
0000189c: SWAP1
0000189d: PUSH1 0x24
0000189f: CALLDATALOAD
000018a0: SWAP2
000018a1: PUSH2 0x3eca
000018a4: JUMP
000018a5: JUMPDEST
000018a6: DUP12
000018a7: DUP3
000018a8: SUB
000018a9: DUP14
000018aa: DUP3
000018ab: SUB
000018ac: DUP11
000018ad: DUP8
000018ae: PUSH2 0x3ffd
000018b1: JUMP
000018b2: JUMPDEST
000018b3: PUSH2 0x196b
000018b6: JUMPI
000018b7: JUMPDEST
000018b8: POP
000018b9: PUSH2 0x1907
000018bc: JUMPI
000018bd: JUMPDEST
000018be: POP
000018bf: POP
000018c0: DUP6
000018c1: MLOAD
000018c2: SWAP1
000018c3: DUP6
000018c4: DUP3
000018c5: MSTORE
000018c6: DUP5
000018c7: PUSH1 0x20
000018c9: DUP4
000018ca: ADD
000018cb: MSTORE
000018cc: PUSH32 0xd72b7803f66104fa4755cf48b28b9408682e97a0b000dd97c8ee3219aa8454ec
000018ed: DUP8
000018ee: CALLER
000018ef: SWAP4
000018f0: LOG4
000018f1: PUSH9 0x929eee149b4bd21268
000018fb: TSTORE
000018fc: DUP3
000018fd: MLOAD
000018fe: SWAP2
000018ff: DUP3
00001900: MSTORE
00001901: PUSH1 0x20
00001903: DUP3
00001904: ADD
00001905: MSTORE
00001906: RETURN
00001907: JUMPDEST
00001908: PUSH2 0x1964
0000190b: SWAP2
0000190c: PUSH2 0x1914
0000190f: DUP9
00001910: PUSH2 0x3b3c
00001913: JUMP
00001914: JUMPDEST
00001915: SWAP1
00001916: PUSH2 0x1927
00001919: PUSH2 0x1921
0000191c: DUP10
0000191d: PUSH2 0x3b3c
00001920: JUMP
00001921: JUMPDEST
00001922: SWAP2
00001923: PUSH2 0x3b3c
00001926: JUMP
00001927: JUMPDEST
00001928: SWAP1
00001929: DUP11
0000192a: MLOAD
0000192b: SWAP3
0000192c: PUSH2 0x1936
0000192f: PUSH1 0x20
00001931: DUP6
00001932: PUSH2 0x3a14
00001935: JUMP
00001936: JUMPDEST
00001937: DUP9
00001938: DUP5
00001939: MSTORE
0000193a: CALLER
0000193b: DUP8
0000193c: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000195d: PUSH0
0000195e: CALLDATALOAD
0000195f: AND
00001960: PUSH2 0x42cd
00001963: JUMP
00001964: JUMPDEST
00001965: PUSH0
00001966: DUP1
00001967: PUSH2 0x18bd
0000196a: JUMP
0000196b: JUMPDEST
0000196c: PUSH1 0x03
0000196e: PUSH2 0x198e
00001971: DUP3
00001972: SLOAD
00001973: PUSH14 0xffffffffffffffffffffffffffff
00001982: DUP1
00001983: DUP3
00001984: PUSH1 0x70
00001986: SHR
00001987: AND
00001988: SWAP2
00001989: AND
0000198a: PUSH2 0x3c3a
0000198d: JUMP
0000198e: JUMPDEST
0000198f: SWAP2
00001990: ADD
00001991: SSTORE
00001992: PUSH0
00001993: PUSH2 0x18b7
00001996: JUMP
00001997: JUMPDEST
00001998: PUSH1 0x04
0000199a: DUP12
0000199b: PUSH32 0x42301c2300000000000000000000000000000000000000000000000000000000
000019bc: DUP2
000019bd: MSTORE
000019be: REVERT
000019bf: JUMPDEST
000019c0: PUSH1 0x40
000019c2: MLOAD
000019c3: PUSH32 0x6e5f773000000000000000000000000000000000000000000000000000000000
000019e4: DUP2
000019e5: MSTORE
000019e6: PUSH0
000019e7: DUP1
000019e8: CALLDATALOAD
000019e9: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00001a0a: AND
00001a0b: PUSH1 0x04
00001a0d: DUP4
00001a0e: ADD
00001a0f: MSTORE
00001a10: PUSH1 0x24
00001a12: DUP3
00001a13: ADD
00001a14: DUP5
00001a15: SWAP1
00001a16: MSTORE
00001a17: CALLER
00001a18: PUSH1 0x44
00001a1a: DUP4
00001a1b: ADD
00001a1c: MSTORE
00001a1d: PUSH1 0x80
00001a1f: PUSH1 0x64
00001a21: DUP4
00001a22: ADD
00001a23: MSTORE
00001a24: PUSH1 0x84
00001a26: DUP3
00001a27: ADD
00001a28: MSTORE
00001a29: PUSH1 0x20
00001a2b: DUP2
00001a2c: PUSH1 0xa4
00001a2e: DUP2
00001a2f: DUP9
00001a30: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a45: DUP14
00001a46: AND
00001a47: GAS
00001a48: CALL
00001a49: DUP1
00001a4a: ISZERO
00001a4b: PUSH2 0x1a78
00001a4e: JUMPI
00001a4f: PUSH2 0x1a59
00001a52: JUMPI
00001a53: JUMPDEST
00001a54: POP
00001a55: PUSH2 0x17f8
00001a58: JUMP
00001a59: JUMPDEST
00001a5a: PUSH2 0x1a71
00001a5d: SWAP1
00001a5e: PUSH1 0x20
00001a60: RETURNDATASIZE
00001a61: PUSH1 0x20
00001a63: GT
00001a64: PUSH2 0x0ce1
00001a67: JUMPI
00001a68: PUSH2 0x0cd2
00001a6b: DUP2
00001a6c: DUP4
00001a6d: PUSH2 0x3a14
00001a70: JUMP
00001a71: JUMPDEST
00001a72: POP
00001a73: PUSH0
00001a74: PUSH2 0x1a53
00001a77: JUMP
00001a78: JUMPDEST
00001a79: PUSH1 0x40
00001a7b: MLOAD
00001a7c: RETURNDATASIZE
00001a7d: DUP8
00001a7e: DUP3
00001a7f: RETURNDATACOPY
00001a80: RETURNDATASIZE
00001a81: SWAP1
00001a82: REVERT
00001a83: JUMPDEST
00001a84: DUP1
00001a85: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000
00001aa6: PUSH1 0x04
00001aa8: SWAP3
00001aa9: MSTORE
00001aaa: REVERT
00001aab: JUMPDEST
00001aac: PUSH4 0xab143c06
00001ab1: SWAP1
00001ab2: MSTORE
00001ab3: PUSH1 0x04
00001ab5: PUSH1 0x1c
00001ab7: REVERT
00001ab8: JUMPDEST
00001ab9: POP
00001aba: CALLVALUE
00001abb: PUSH2 0x0291
00001abe: JUMPI
00001abf: PUSH2 0x1ac7
00001ac2: CALLDATASIZE
00001ac3: PUSH2 0x397e
00001ac6: JUMP
00001ac7: JUMPDEST
00001ac8: SWAP5
00001ac9: SWAP4
00001aca: PUSH9 0x929eee149b4bd21268
00001ad4: SWAP4
00001ad5: SWAP2
00001ad6: SWAP4
00001ad7: TLOAD
00001ad8: PUSH2 0x1bc8
00001adb: JUMPI
00001adc: ADDRESS
00001add: PUSH9 0x929eee149b4bd21268
00001ae7: TSTORE
00001ae8: PUSH1 0x40
00001aea: DUP1
00001aeb: MLOAD
00001aec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001b01: DUP1
00001b02: DUP5
00001b03: AND
00001b04: PUSH1 0x20
00001b06: DUP4
00001b07: ADD
00001b08: SWAP1
00001b09: DUP2
00001b0a: MSTORE
00001b0b: SWAP1
00001b0c: DUP6
00001b0d: AND
00001b0e: SWAP3
00001b0f: DUP3
00001b10: ADD
00001b11: SWAP3
00001b12: SWAP1
00001b13: SWAP3
00001b14: MSTORE
00001b15: PUSH1 0x60
00001b17: DUP2
00001b18: ADD
00001b19: DUP6
00001b1a: SWAP1
00001b1b: MSTORE
00001b1c: PUSH1 0x80
00001b1e: DUP2
00001b1f: ADD
00001b20: DUP7
00001b21: SWAP1
00001b22: MSTORE
00001b23: PUSH1 0xa0
00001b25: DUP2
00001b26: ADD
00001b27: DUP9
00001b28: SWAP1
00001b29: MSTORE
00001b2a: PUSH2 0x1b36
00001b2d: DUP2
00001b2e: PUSH1 0xc0
00001b30: DUP2
00001b31: ADD
00001b32: PUSH2 0x0342
00001b35: JUMP
00001b36: JUMPDEST
00001b37: MLOAD
00001b38: SWAP1
00001b39: KECCAK256
00001b3a: SWAP6
00001b3b: DUP7
00001b3c: DUP7
00001b3d: MSTORE
00001b3e: PUSH1 0x02
00001b40: PUSH1 0x20
00001b42: MSTORE
00001b43: PUSH1 0x40
00001b45: DUP7
00001b46: KECCAK256
00001b47: SLOAD
00001b48: ISZERO
00001b49: PUSH2 0x1ba0
00001b4c: JUMPI
00001b4d: TIMESTAMP
00001b4e: LT
00001b4f: PUSH2 0x1b78
00001b52: JUMPI
00001b53: DUP5
00001b54: SWAP6
00001b55: PUSH2 0x1b69
00001b58: SWAP6
00001b59: MSTORE
00001b5a: PUSH1 0x02
00001b5c: PUSH1 0x20
00001b5e: MSTORE
00001b5f: DUP6
00001b60: PUSH1 0x40
00001b62: DUP2
00001b63: KECCAK256
00001b64: SSTORE
00001b65: PUSH2 0x3eca
00001b68: JUMP
00001b69: JUMPDEST
00001b6a: DUP1
00001b6b: PUSH9 0x929eee149b4bd21268
00001b75: TSTORE
00001b76: DUP1
00001b77: RETURN
00001b78: JUMPDEST
00001b79: PUSH1 0x04
00001b7b: DUP6
00001b7c: PUSH32 0x6df2039000000000000000000000000000000000000000000000000000000000
00001b9d: DUP2
00001b9e: MSTORE
00001b9f: REVERT
00001ba0: JUMPDEST
00001ba1: PUSH1 0x04
00001ba3: DUP7
00001ba4: PUSH32 0x82b4290000000000000000000000000000000000000000000000000000000000
00001bc5: DUP2
00001bc6: MSTORE
00001bc7: REVERT
00001bc8: JUMPDEST
00001bc9: PUSH4 0xab143c06
00001bce: DUP6
00001bcf: MSTORE
00001bd0: PUSH1 0x04
00001bd2: PUSH1 0x1c
00001bd4: REVERT
00001bd5: JUMPDEST
00001bd6: POP
00001bd7: CALLVALUE
00001bd8: PUSH2 0x0291
00001bdb: JUMPI
00001bdc: PUSH1 0x60
00001bde: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001bff: CALLDATASIZE
00001c00: ADD
00001c01: SLT
00001c02: PUSH2 0x0291
00001c05: JUMPI
00001c06: PUSH1 0x20
00001c08: PUSH2 0x1c23
00001c0b: PUSH2 0x1c12
00001c0e: PUSH2 0x3778
00001c11: JUMP
00001c12: JUMPDEST
00001c13: PUSH2 0x1c1a
00001c16: PUSH2 0x379b
00001c19: JUMP
00001c1a: JUMPDEST
00001c1b: PUSH1 0x44
00001c1d: CALLDATALOAD
00001c1e: SWAP2
00001c1f: PUSH2 0x3bd0
00001c22: JUMP
00001c23: JUMPDEST
00001c24: PUSH1 0x40
00001c26: MLOAD
00001c27: SWAP1
00001c28: DUP2
00001c29: MSTORE
00001c2a: RETURN
00001c2b: JUMPDEST
00001c2c: POP
00001c2d: CALLVALUE
00001c2e: PUSH2 0x0291
00001c31: JUMPI
00001c32: PUSH1 0x40
00001c34: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001c55: CALLDATASIZE
00001c56: ADD
00001c57: SLT
00001c58: PUSH2 0x0291
00001c5b: JUMPI
00001c5c: PUSH2 0x1c63
00001c5f: PUSH2 0x3778
00001c62: JUMP
00001c63: JUMPDEST
00001c64: SWAP1
00001c65: PUSH1 0x24
00001c67: CALLDATALOAD
00001c68: DUP1
00001c69: ISZERO
00001c6a: ISZERO
00001c6b: DUP1
00001c6c: SWAP2
00001c6d: SUB
00001c6e: PUSH2 0x0d28
00001c71: JUMPI
00001c72: PUSH1 0x20
00001c74: SWAP3
00001c75: PUSH8 0xedcaa89a82293940
00001c7e: DUP5
00001c7f: MSTORE
00001c80: CALLER
00001c81: PUSH1 0x14
00001c83: MSTORE
00001c84: DUP3
00001c85: MSTORE
00001c86: DUP1
00001c87: PUSH1 0x34
00001c89: PUSH1 0x0c
00001c8b: KECCAK256
00001c8c: SSTORE
00001c8d: DUP3
00001c8e: MSTORE
00001c8f: PUSH1 0x0c
00001c91: MLOAD
00001c92: PUSH1 0x60
00001c94: SHR
00001c95: CALLER
00001c96: PUSH32 0xceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267
00001cb7: DUP5
00001cb8: DUP1
00001cb9: LOG3
00001cba: PUSH1 0x01
00001cbc: DUP2
00001cbd: MSTORE
00001cbe: RETURN
00001cbf: JUMPDEST
00001cc0: POP
00001cc1: CALLVALUE
00001cc2: PUSH2 0x0291
00001cc5: JUMPI
00001cc6: PUSH1 0x60
00001cc8: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001ce9: CALLDATASIZE
00001cea: ADD
00001ceb: SLT
00001cec: PUSH2 0x0291
00001cef: JUMPI
00001cf0: PUSH2 0x1cf7
00001cf3: PUSH2 0x3778
00001cf6: JUMP
00001cf7: JUMPDEST
00001cf8: SWAP1
00001cf9: PUSH1 0x44
00001cfb: CALLDATALOAD
00001cfc: SWAP1
00001cfd: PUSH8 0xffffffffffffffff
00001d06: DUP3
00001d07: GT
00001d08: PUSH2 0x0291
00001d0b: JUMPI
00001d0c: PUSH1 0x20
00001d0e: PUSH2 0x1d55
00001d11: DUP5
00001d12: PUSH32 0x6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b
00001d33: PUSH2 0x1d3f
00001d36: CALLDATASIZE
00001d37: PUSH1 0x04
00001d39: DUP9
00001d3a: ADD
00001d3b: PUSH2 0x3950
00001d3e: JUMP
00001d3f: JUMPDEST
00001d40: PUSH1 0x01
00001d42: DUP1
00001d43: SLOAD
00001d44: ADD
00001d45: SWAP5
00001d46: DUP6
00001d47: SWAP5
00001d48: DUP6
00001d49: PUSH1 0x01
00001d4b: SSTORE
00001d4c: DUP6
00001d4d: PUSH1 0x24
00001d4f: CALLDATALOAD
00001d50: SWAP2
00001d51: PUSH2 0x4570
00001d54: JUMP
00001d55: JUMPDEST
00001d56: PUSH2 0x1d6a
00001d59: PUSH1 0x40
00001d5b: MLOAD
00001d5c: SWAP3
00001d5d: DUP4
00001d5e: SWAP3
00001d5f: DUP9
00001d60: DUP5
00001d61: MSTORE
00001d62: DUP9
00001d63: DUP5
00001d64: ADD
00001d65: SWAP2
00001d66: PUSH2 0x3b92
00001d69: JUMP
00001d6a: JUMPDEST
00001d6b: SUB
00001d6c: SWAP1
00001d6d: LOG2
00001d6e: PUSH1 0x40
00001d70: MLOAD
00001d71: SWAP1
00001d72: DUP2
00001d73: MSTORE
00001d74: RETURN
00001d75: JUMPDEST
00001d76: POP
00001d77: PUSH2 0x0140
00001d7a: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001d9b: CALLDATASIZE
00001d9c: ADD
00001d9d: SLT
00001d9e: PUSH2 0x0291
00001da1: JUMPI
00001da2: PUSH2 0x1da9
00001da5: PUSH2 0x3778
00001da8: JUMP
00001da9: JUMPDEST
00001daa: SWAP1
00001dab: PUSH2 0x1db2
00001dae: PUSH2 0x379b
00001db1: JUMP
00001db2: JUMPDEST
00001db3: SWAP2
00001db4: PUSH1 0x64
00001db6: CALLDATALOAD
00001db7: SWAP1
00001db8: PUSH12 0xffffffffffffffffffffffff
00001dc5: DUP3
00001dc6: AND
00001dc7: DUP3
00001dc8: SUB
00001dc9: PUSH2 0x0d28
00001dcc: JUMPI
00001dcd: PUSH1 0x84
00001dcf: CALLDATALOAD
00001dd0: SWAP4
00001dd1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001de6: DUP6
00001de7: AND
00001de8: SWAP2
00001de9: DUP3
00001dea: DUP7
00001deb: SUB
00001dec: PUSH2 0x0d28
00001def: JUMPI
00001df0: PUSH1 0xc4
00001df2: CALLDATALOAD
00001df3: SWAP2
00001df4: PUSH12 0xffffffffffffffffffffffff
00001e01: DUP4
00001e02: AND
00001e03: DUP4
00001e04: SUB
00001e05: PUSH2 0x0d28
00001e08: JUMPI
00001e09: PUSH1 0xe4
00001e0b: CALLDATALOAD
00001e0c: SWAP7
00001e0d: PUSH7 0xffffffffffffff
00001e15: DUP9
00001e16: AND
00001e17: DUP9
00001e18: SUB
00001e19: PUSH2 0x0d28
00001e1c: JUMPI
00001e1d: PUSH2 0x0104
00001e20: CALLDATALOAD
00001e21: SWAP8
00001e22: DUP9
00001e23: ISZERO
00001e24: DUP1
00001e25: ISZERO
00001e26: DUP11
00001e27: SUB
00001e28: PUSH2 0x0d28
00001e2b: JUMPI
00001e2c: PUSH2 0x0124
00001e2f: CALLDATALOAD
00001e30: SWAP7
00001e31: PUSH12 0xffffffffffffffffffffffff
00001e3e: DUP9
00001e3f: AND
00001e40: DUP9
00001e41: SUB
00001e42: PUSH2 0x0d28
00001e45: JUMPI
00001e46: PUSH9 0x929eee149b4bd21268
00001e50: TLOAD
00001e51: PUSH2 0x243e
00001e54: JUMPI
00001e55: ADDRESS
00001e56: PUSH9 0x929eee149b4bd21268
00001e60: TSTORE
00001e61: PUSH2 0x2410
00001e64: JUMPI
00001e65: JUMPDEST
00001e66: PUSH2 0x23a8
00001e69: JUMPI
00001e6a: JUMPDEST
00001e6b: PUSH1 0x40
00001e6d: DUP1
00001e6e: MLOAD
00001e6f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e84: DUP1
00001e85: DUP8
00001e86: AND
00001e87: PUSH1 0x20
00001e89: DUP4
00001e8a: ADD
00001e8b: SWAP1
00001e8c: DUP2
00001e8d: MSTORE
00001e8e: DUP2
00001e8f: DUP8
00001e90: AND
00001e91: SWAP4
00001e92: DUP4
00001e93: ADD
00001e94: SWAP4
00001e95: SWAP1
00001e96: SWAP4
00001e97: MSTORE
00001e98: PUSH1 0x44
00001e9a: CALLDATALOAD
00001e9b: PUSH1 0x60
00001e9d: DUP4
00001e9e: ADD
00001e9f: MSTORE
00001ea0: PUSH12 0xffffffffffffffffffffffff
00001ead: DUP1
00001eae: DUP12
00001eaf: AND
00001eb0: PUSH1 0x80
00001eb2: DUP5
00001eb3: ADD
00001eb4: MSTORE
00001eb5: SWAP1
00001eb6: DUP6
00001eb7: AND
00001eb8: PUSH1 0xa0
00001eba: DUP4
00001ebb: ADD
00001ebc: MSTORE
00001ebd: PUSH1 0xa4
00001ebf: CALLDATALOAD
00001ec0: PUSH1 0xc0
00001ec2: DUP4
00001ec3: ADD
00001ec4: MSTORE
00001ec5: DUP8
00001ec6: AND
00001ec7: PUSH1 0xe0
00001ec9: DUP3
00001eca: ADD
00001ecb: MSTORE
00001ecc: PUSH7 0xffffffffffffff
00001ed4: SWAP1
00001ed5: SWAP3
00001ed6: AND
00001ed7: PUSH2 0x0100
00001eda: DUP4
00001edb: ADD
00001edc: MSTORE
00001edd: DUP10
00001ede: ISZERO
00001edf: ISZERO
00001ee0: PUSH2 0x0120
00001ee3: DUP4
00001ee4: ADD
00001ee5: MSTORE
00001ee6: SWAP1
00001ee7: PUSH2 0x1ef4
00001eea: DUP2
00001eeb: PUSH2 0x0140
00001eee: DUP2
00001eef: ADD
00001ef0: PUSH2 0x0342
00001ef3: JUMP
00001ef4: JUMPDEST
00001ef5: MLOAD
00001ef6: SWAP1
00001ef7: KECCAK256
00001ef8: SWAP6
00001ef9: DUP7
00001efa: DUP9
00001efb: MSTORE
00001efc: PUSH1 0x03
00001efe: PUSH1 0x20
00001f00: MSTORE
00001f01: PUSH1 0x40
00001f03: DUP9
00001f04: KECCAK256
00001f05: SLOAD
00001f06: SWAP6
00001f07: PUSH7 0xffffffffffffff
00001f0f: DUP8
00001f10: PUSH1 0x08
00001f12: SHR
00001f13: AND
00001f14: ISZERO
00001f15: PUSH2 0x2380
00001f18: JUMPI
00001f19: PUSH7 0xffffffffffffff
00001f21: DUP8
00001f22: PUSH1 0x08
00001f24: SHR
00001f25: AND
00001f26: TIMESTAMP
00001f27: GT
00001f28: PUSH2 0x2358
00001f2b: JUMPI
00001f2c: DUP10
00001f2d: ISZERO
00001f2e: PUSH2 0x2351
00001f31: JUMPI
00001f32: PUSH12 0xffffffffffffffffffffffff
00001f3f: DUP2
00001f40: AND
00001f41: PUSH2 0x234b
00001f44: JUMPI
00001f45: PUSH2 0x1f51
00001f48: DUP8
00001f49: PUSH1 0xa0
00001f4b: SHR
00001f4c: DUP8
00001f4d: PUSH2 0x3a55
00001f50: JUMP
00001f51: JUMPDEST
00001f52: SWAP10
00001f53: JUMPDEST
00001f54: PUSH12 0xffffffffffffffffffffffff
00001f61: DUP12
00001f62: AND
00001f63: ISZERO
00001f64: ISZERO
00001f65: DUP1
00001f66: PUSH2 0x2319
00001f69: JUMPI
00001f6a: JUMPDEST
00001f6b: ISZERO
00001f6c: PUSH2 0x22f1
00001f6f: JUMPI
00001f70: ISZERO
00001f71: PUSH2 0x22ea
00001f74: JUMPI
00001f75: PUSH12 0xffffffffffffffffffffffff
00001f82: AND
00001f83: PUSH2 0x22c4
00001f86: JUMPI
00001f87: PUSH2 0x1fa2
00001f8a: SWAP1
00001f8b: PUSH12 0xffffffffffffffffffffffff
00001f98: DUP8
00001f99: PUSH1 0x40
00001f9b: SHR
00001f9c: AND
00001f9d: SWAP1
00001f9e: PUSH2 0x3a55
00001fa1: JUMP
00001fa2: JUMPDEST
00001fa3: SWAP1
00001fa4: JUMPDEST
00001fa5: PUSH12 0xffffffffffffffffffffffff
00001fb2: DUP3
00001fb3: AND
00001fb4: SWAP6
00001fb5: DUP7
00001fb6: ISZERO
00001fb7: PUSH2 0x229c
00001fba: JUMPI
00001fbb: DUP10
00001fbc: DUP10
00001fbd: DUP3
00001fbe: DUP11
00001fbf: SWAP12
00001fc0: SWAP13
00001fc1: DUP9
00001fc2: SWAP5
00001fc3: PUSH1 0xa0
00001fc5: SHR
00001fc6: SWAP1
00001fc7: PUSH2 0x1fcf
00001fca: SWAP2
00001fcb: PUSH2 0x3b68
00001fce: JUMP
00001fcf: JUMPDEST
00001fd0: PUSH2 0x1feb
00001fd3: DUP8
00001fd4: PUSH12 0xffffffffffffffffffffffff
00001fe1: PUSH1 0x40
00001fe3: DUP6
00001fe4: SWAP1
00001fe5: SHR
00001fe6: AND
00001fe7: PUSH2 0x3b68
00001fea: JUMP
00001feb: JUMPDEST
00001fec: PUSH1 0x40
00001fee: MLOAD
00001fef: SWAP4
00001ff0: PUSH2 0x1ff8
00001ff3: DUP6
00001ff4: PUSH2 0x39f8
00001ff7: JUMP
00001ff8: JUMPDEST
00001ff9: PUSH1 0xff
00001ffb: DUP5
00001ffc: AND
00001ffd: ISZERO
00001ffe: ISZERO
00001fff: DUP6
00002000: MSTORE
00002001: PUSH1 0x20
00002003: DUP6
00002004: ADD
00002005: SWAP4
00002006: PUSH1 0x08
00002008: SHR
00002009: PUSH7 0xffffffffffffff
00002011: AND
00002012: DUP5
00002013: MSTORE
00002014: PUSH1 0x40
00002016: DUP6
00002017: ADD
00002018: SWAP2
00002019: PUSH12 0xffffffffffffffffffffffff
00002026: AND
00002027: DUP3
00002028: MSTORE
00002029: PUSH1 0x60
0000202b: DUP6
0000202c: ADD
0000202d: SWAP3
0000202e: PUSH12 0xffffffffffffffffffffffff
0000203b: AND
0000203c: SWAP14
0000203d: DUP15
0000203e: DUP5
0000203f: MSTORE
00002040: DUP2
00002041: MSTORE
00002042: PUSH1 0x03
00002044: PUSH1 0x20
00002046: MSTORE
00002047: PUSH1 0x40
00002049: SWAP1
0000204a: KECCAK256
0000204b: SWAP4
0000204c: MLOAD
0000204d: ISZERO
0000204e: ISZERO
0000204f: SWAP3
00002050: DUP5
00002051: SLOAD
00002052: SWAP1
00002053: MLOAD
00002054: PUSH1 0x08
00002056: SHL
00002057: PUSH8 0xffffffffffffff00
00002060: AND
00002061: SWAP2
00002062: MLOAD
00002063: PUSH1 0x40
00002065: SHL
00002066: PUSH20 0xffffffffffffffffffffffff0000000000000000
0000207b: AND
0000207c: SWAP3
0000207d: MLOAD
0000207e: PUSH1 0xa0
00002080: SHL
00002081: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000020a2: AND
000020a3: SWAP4
000020a4: PUSH1 0xff
000020a6: AND
000020a7: SWAP1
000020a8: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000020c9: AND
000020ca: OR
000020cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000020e0: AND
000020e1: OR
000020e2: OR
000020e3: OR
000020e4: SWAP1
000020e5: SSTORE
000020e6: PUSH1 0xa4
000020e8: CALLDATALOAD
000020e9: PUSH2 0x20f1
000020ec: SWAP4
000020ed: PUSH2 0x4457
000020f0: JUMP
000020f1: JUMPDEST
000020f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002107: DUP3
00002108: AND
00002109: ADDRESS
0000210a: DUP2
0000210b: SUB
0000210c: PUSH2 0x2188
0000210f: JUMPI
00002110: POP
00002111: POP
00002112: POP
00002113: DUP3
00002114: PUSH2 0x2131
00002117: PUSH12 0xffffffffffffffffffffffff
00002124: SWAP5
00002125: PUSH2 0x213a
00002128: SWAP4
00002129: PUSH1 0x44
0000212b: CALLDATALOAD
0000212c: SWAP1
0000212d: PUSH2 0x472e
00002130: JUMP
00002131: JUMPDEST
00002132: PUSH1 0x44
00002134: CALLDATALOAD
00002135: CALLER
00002136: PUSH2 0x47c8
00002139: JUMP
0000213a: JUMPDEST
0000213b: AND
0000213c: EQ
0000213d: PUSH2 0x2175
00002140: JUMPI
00002141: JUMPDEST
00002142: CALLER
00002143: PUSH32 0xb9bc607e0e2118f141379d1e3c8ffcb670231b2fad00c82a9b48456501bd40fd
00002164: DUP4
00002165: DUP1
00002166: LOG3
00002167: DUP1
00002168: PUSH9 0x929eee149b4bd21268
00002172: TSTORE
00002173: DUP1
00002174: RETURN
00002175: JUMPDEST
00002176: DUP1
00002177: DUP3
00002178: MSTORE
00002179: PUSH1 0x03
0000217b: PUSH1 0x20
0000217d: MSTORE
0000217e: DUP2
0000217f: PUSH1 0x40
00002181: DUP2
00002182: KECCAK256
00002183: SSTORE
00002184: PUSH2 0x2141
00002187: JUMP
00002188: JUMPDEST
00002189: SWAP2
0000218a: SWAP3
0000218b: SWAP2
0000218c: DUP1
0000218d: PUSH2 0x21b0
00002190: JUMPI
00002191: POP
00002192: POP
00002193: POP
00002194: POP
00002195: PUSH2 0x21ab
00002198: PUSH12 0xffffffffffffffffffffffff
000021a5: SWAP3
000021a6: CALLER
000021a7: PUSH2 0x3c65
000021aa: JUMP
000021ab: JUMPDEST
000021ac: PUSH2 0x213a
000021af: JUMP
000021b0: JUMPDEST
000021b1: PUSH1 0x44
000021b3: CALLDATALOAD
000021b4: PUSH2 0x21d3
000021b7: JUMPI
000021b8: POP
000021b9: POP
000021ba: SWAP3
000021bb: PUSH2 0x21ab
000021be: SWAP2
000021bf: PUSH12 0xffffffffffffffffffffffff
000021cc: SWAP5
000021cd: CALLER
000021ce: SWAP2
000021cf: PUSH2 0x4835
000021d2: JUMP
000021d3: JUMPDEST
000021d4: PUSH1 0x40
000021d6: MLOAD
000021d7: PUSH32 0xfe99049a00000000000000000000000000000000000000000000000000000000
000021f8: DUP2
000021f9: MSTORE
000021fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000220f: SWAP1
00002210: SWAP4
00002211: AND
00002212: PUSH1 0x04
00002214: DUP5
00002215: ADD
00002216: MSTORE
00002217: CALLER
00002218: PUSH1 0x24
0000221a: DUP5
0000221b: ADD
0000221c: MSTORE
0000221d: PUSH1 0x44
0000221f: DUP1
00002220: CALLDATALOAD
00002221: SWAP1
00002222: DUP5
00002223: ADD
00002224: MSTORE
00002225: PUSH12 0xffffffffffffffffffffffff
00002232: SWAP1
00002233: SWAP2
00002234: AND
00002235: PUSH1 0x64
00002237: DUP4
00002238: ADD
00002239: MSTORE
0000223a: SWAP1
0000223b: SWAP4
0000223c: POP
0000223d: PUSH1 0x20
0000223f: SWAP2
00002240: POP
00002241: DUP4
00002242: SWAP1
00002243: DUP2
00002244: DUP9
00002245: DUP2
00002246: PUSH1 0x84
00002248: DUP2
00002249: ADD
0000224a: SUB
0000224b: SWAP3
0000224c: GAS
0000224d: CALL
0000224e: SWAP2
0000224f: DUP3
00002250: ISZERO
00002251: PUSH2 0x1a78
00002254: JUMPI
00002255: PUSH12 0xffffffffffffffffffffffff
00002262: SWAP3
00002263: PUSH2 0x226d
00002266: JUMPI
00002267: JUMPDEST
00002268: POP
00002269: PUSH2 0x213a
0000226c: JUMP
0000226d: JUMPDEST
0000226e: PUSH2 0x228e
00002271: SWAP1
00002272: PUSH1 0x20
00002274: RETURNDATASIZE
00002275: PUSH1 0x20
00002277: GT
00002278: PUSH2 0x2295
0000227b: JUMPI
0000227c: JUMPDEST
0000227d: PUSH2 0x2286
00002280: DUP2
00002281: DUP4
00002282: PUSH2 0x3a14
00002285: JUMP
00002286: JUMPDEST
00002287: DUP2
00002288: ADD
00002289: SWAP1
0000228a: PUSH2 0x3c81
0000228d: JUMP
0000228e: JUMPDEST
0000228f: POP
00002290: PUSH0
00002291: PUSH2 0x2267
00002294: JUMP
00002295: JUMPDEST
00002296: POP
00002297: RETURNDATASIZE
00002298: PUSH2 0x227c
0000229b: JUMP
0000229c: JUMPDEST
0000229d: PUSH1 0x04
0000229f: DUP10
000022a0: PUSH32 0x6cd3dc2500000000000000000000000000000000000000000000000000000000
000022c1: DUP2
000022c2: MSTORE
000022c3: REVERT
000022c4: JUMPDEST
000022c5: PUSH2 0x22e4
000022c8: PUSH12 0xffffffffffffffffffffffff
000022d5: SWAP2
000022d6: DUP3
000022d7: DUP8
000022d8: AND
000022d9: SWAP1
000022da: DUP4
000022db: DUP1
000022dc: DUP14
000022dd: AND
000022de: SWAP2
000022df: AND
000022e0: PUSH2 0x4434
000022e3: JUMP
000022e4: JUMPDEST
000022e5: AND
000022e6: PUSH2 0x1fa2
000022e9: JUMP
000022ea: JUMPDEST
000022eb: POP
000022ec: SWAP1
000022ed: PUSH2 0x1fa4
000022f0: JUMP
000022f1: JUMPDEST
000022f2: PUSH1 0x04
000022f4: DUP11
000022f5: PUSH32 0x35278d1200000000000000000000000000000000000000000000000000000000
00002316: DUP2
00002317: MSTORE
00002318: REVERT
00002319: JUMPDEST
0000231a: POP
0000231b: PUSH12 0xffffffffffffffffffffffff
00002328: DUP8
00002329: AND
0000232a: PUSH12 0xffffffffffffffffffffffff
00002337: PUSH2 0x2343
0000233a: DUP14
0000233b: DUP12
0000233c: PUSH1 0xa0
0000233e: SHR
0000233f: PUSH2 0x3b68
00002342: JUMP
00002343: JUMPDEST
00002344: AND
00002345: GT
00002346: ISZERO
00002347: PUSH2 0x1f6a
0000234a: JUMP
0000234b: JUMPDEST
0000234c: DUP1
0000234d: PUSH2 0x1f51
00002350: JUMP
00002351: JUMPDEST
00002352: DUP6
00002353: SWAP10
00002354: PUSH2 0x1f53
00002357: JUMP
00002358: JUMPDEST
00002359: PUSH1 0x04
0000235b: DUP10
0000235c: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000
0000237d: DUP2
0000237e: MSTORE
0000237f: REVERT
00002380: JUMPDEST
00002381: PUSH1 0x04
00002383: DUP10
00002384: PUSH32 0x82b4290000000000000000000000000000000000000000000000000000000000
000023a5: DUP2
000023a6: MSTORE
000023a7: REVERT
000023a8: JUMPDEST
000023a9: PUSH12 0xffffffffffffffffffffffff
000023b6: DUP7
000023b7: AND
000023b8: ISZERO
000023b9: DUP1
000023ba: ISZERO
000023bb: PUSH2 0x23eb
000023be: JUMPI
000023bf: JUMPDEST
000023c0: PUSH2 0x1e6a
000023c3: JUMPI
000023c4: PUSH1 0x04
000023c6: DUP9
000023c7: PUSH32 0x6cd3dc2500000000000000000000000000000000000000000000000000000000
000023e8: DUP2
000023e9: MSTORE
000023ea: REVERT
000023eb: JUMPDEST
000023ec: POP
000023ed: PUSH12 0xffffffffffffffffffffffff
000023fa: DUP6
000023fb: AND
000023fc: PUSH12 0xffffffffffffffffffffffff
00002409: DUP8
0000240a: AND
0000240b: EQ
0000240c: PUSH2 0x23bf
0000240f: JUMP
00002410: JUMPDEST
00002411: CALLVALUE
00002412: ISZERO
00002413: PUSH2 0x1e65
00002416: JUMPI
00002417: PUSH1 0x04
00002419: DUP10
0000241a: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
0000243b: DUP2
0000243c: MSTORE
0000243d: REVERT
0000243e: JUMPDEST
0000243f: PUSH4 0xab143c06
00002444: DUP11
00002445: MSTORE
00002446: PUSH1 0x04
00002448: PUSH1 0x1c
0000244a: REVERT
0000244b: JUMPDEST
0000244c: POP
0000244d: CALLVALUE
0000244e: PUSH2 0x0291
00002451: JUMPI
00002452: PUSH1 0x20
00002454: SWAP1
00002455: PUSH2 0x245d
00002458: CALLDATASIZE
00002459: PUSH2 0x3888
0000245c: JUMP
0000245d: JUMPDEST
0000245e: SWAP1
0000245f: SWAP2
00002460: PUSH8 0xedcaa89a82293940
00002469: PUSH1 0x34
0000246b: MSTORE
0000246c: CALLER
0000246d: PUSH1 0x28
0000246f: MSTORE
00002470: PUSH1 0x14
00002472: MSTORE
00002473: DUP2
00002474: DUP4
00002475: MSTORE
00002476: DUP1
00002477: PUSH1 0x54
00002479: DUP5
0000247a: KECCAK256
0000247b: SSTORE
0000247c: DUP3
0000247d: MSTORE
0000247e: DUP3
0000247f: MLOAD
00002480: PUSH1 0x60
00002482: SHR
00002483: CALLER
00002484: PUSH32 0xb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7
000024a5: DUP6
000024a6: DUP6
000024a7: LOG4
000024a8: PUSH1 0x01
000024aa: DUP2
000024ab: MSTORE
000024ac: RETURN
000024ad: JUMPDEST
000024ae: POP
000024af: PUSH2 0x24b7
000024b2: CALLDATASIZE
000024b3: PUSH2 0x38dd
000024b6: JUMP
000024b7: JUMPDEST
000024b8: SWAP1
000024b9: SWAP6
000024ba: SWAP4
000024bb: SWAP2
000024bc: SWAP3
000024bd: SWAP5
000024be: PUSH9 0x929eee149b4bd21268
000024c8: TLOAD
000024c9: PUSH2 0x1bc8
000024cc: JUMPI
000024cd: ADDRESS
000024ce: PUSH9 0x929eee149b4bd21268
000024d8: TSTORE
000024d9: DUP4
000024da: SWAP2
000024db: TIMESTAMP
000024dc: GT
000024dd: PUSH2 0x2a4e
000024e0: JUMPI
000024e1: DUP3
000024e2: ISZERO
000024e3: PUSH2 0x2a26
000024e6: JUMPI
000024e7: PUSH1 0xa0
000024e9: PUSH1 0x40
000024eb: MLOAD
000024ec: DUP2
000024ed: DUP4
000024ee: DUP3
000024ef: CALLDATACOPY
000024f0: KECCAK256
000024f1: SWAP4
000024f2: PUSH2 0x24fe
000024f5: PUSH1 0x80
000024f7: DUP4
000024f8: ADD
000024f9: CALLDATALOAD
000024fa: PUSH2 0x3d67
000024fd: JUMP
000024fe: JUMPDEST
000024ff: SWAP4
00002500: SWAP3
00002501: SWAP5
00002502: SWAP1
00002503: SWAP2
00002504: SWAP5
00002505: SWAP2
00002506: PUSH2 0x2948
00002509: JUMPI
0000250a: JUMPDEST
0000250b: DUP8
0000250c: DUP10
0000250d: MSTORE
0000250e: DUP9
0000250f: PUSH1 0x20
00002511: MSTORE
00002512: PUSH1 0x40
00002514: DUP10
00002515: KECCAK256
00002516: SWAP1
00002517: DUP2
00002518: SLOAD
00002519: SWAP3
0000251a: PUSH14 0xffffffffffffffffffffffffffff
00002529: DUP1
0000252a: DUP6
0000252b: AND
0000252c: SWAP5
0000252d: PUSH1 0x70
0000252f: SHR
00002530: AND
00002531: SWAP5
00002532: DUP1
00002533: PUSH0
00002534: EQ
00002535: PUSH2 0x2928
00002538: JUMPI
00002539: PUSH2 0x2550
0000253c: DUP11
0000253d: PUSH2 0x2548
00002540: PUSH1 0x40
00002542: DUP7
00002543: ADD
00002544: PUSH2 0x3b01
00002547: JUMP
00002548: JUMPDEST
00002549: DUP6
0000254a: CALLDATALOAD
0000254b: SWAP1
0000254c: PUSH2 0x3e8d
0000254f: JUMP
00002550: JUMPDEST
00002551: DUP1
00002552: PUSH2 0x28fa
00002555: JUMPI
00002556: JUMPDEST
00002557: ISZERO
00002558: PUSH2 0x282d
0000255b: JUMPI
0000255c: JUMPDEST
0000255d: ISZERO
0000255e: PUSH2 0x26fa
00002561: JUMPI
00002562: PUSH2 0x256d
00002565: SWAP1
00002566: DUP6
00002567: DUP6
00002568: DUP12
00002569: PUSH2 0x43e9
0000256c: JUMP
0000256d: JUMPDEST
0000256e: SWAP11
0000256f: DUP12
00002570: ISZERO
00002571: PUSH2 0x1997
00002574: JUMPI
00002575: DUP12
00002576: LT
00002577: PUSH2 0x26d2
0000257a: JUMPI
0000257b: DUP4
0000257c: DUP12
0000257d: LT
0000257e: ISZERO
0000257f: PUSH2 0x26aa
00002582: JUMPI
00002583: SWAP3
00002584: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002599: SWAP7
0000259a: SWAP5
0000259b: SWAP3
0000259c: PUSH2 0x25dd
0000259f: SWAP3
000025a0: PUSH2 0x25c1
000025a3: DUP14
000025a4: PUSH1 0x20
000025a6: SWAP16
000025a7: SWAP10
000025a8: SWAP8
000025a9: PUSH1 0x20
000025ab: DUP12
000025ac: SWAP1
000025ad: PUSH2 0x25b8
000025b0: PUSH1 0x60
000025b2: DUP5
000025b3: ADD
000025b4: PUSH2 0x3b01
000025b7: JUMP
000025b8: JUMPDEST
000025b9: SWAP3
000025ba: ADD
000025bb: CALLDATALOAD
000025bc: SWAP2
000025bd: PUSH2 0x3eca
000025c0: JUMP
000025c1: JUMPDEST
000025c2: DUP13
000025c3: DUP12
000025c4: PUSH2 0x25d7
000025c7: PUSH2 0x25d0
000025ca: DUP14
000025cb: DUP7
000025cc: PUSH2 0x3b2f
000025cf: JUMP
000025d0: JUMPDEST
000025d1: SWAP3
000025d2: DUP7
000025d3: PUSH2 0x3b22
000025d6: JUMP
000025d7: JUMPDEST
000025d8: SWAP3
000025d9: PUSH2 0x3ffd
000025dc: JUMP
000025dd: JUMPDEST
000025de: PUSH2 0x2637
000025e1: JUMPI
000025e2: JUMPDEST
000025e3: POP
000025e4: POP
000025e5: PUSH1 0x40
000025e7: MLOAD
000025e8: SWAP3
000025e9: DUP4
000025ea: MSTORE
000025eb: DUP5
000025ec: DUP8
000025ed: DUP5
000025ee: ADD
000025ef: MSTORE
000025f0: DUP5
000025f1: PUSH1 0x40
000025f3: DUP5
000025f4: ADD
000025f5: MSTORE
000025f6: DUP6
000025f7: PUSH1 0x60
000025f9: DUP5
000025fa: ADD
000025fb: MSTORE
000025fc: AND
000025fd: SWAP2
000025fe: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56
0000261f: PUSH1 0x80
00002621: CALLER
00002622: SWAP4
00002623: LOG4
00002624: JUMPDEST
00002625: PUSH9 0x929eee149b4bd21268
0000262f: TSTORE
00002630: PUSH1 0x40
00002632: MLOAD
00002633: SWAP1
00002634: DUP2
00002635: MSTORE
00002636: RETURN
00002637: JUMPDEST
00002638: PUSH2 0x268e
0000263b: SWAP2
0000263c: DUP1
0000263d: ISZERO
0000263e: PUSH2 0x269b
00002641: JUMPI
00002642: DUP6
00002643: SWAP1
00002644: JUMPDEST
00002645: ISZERO
00002646: PUSH2 0x2695
00002649: JUMPI
0000264a: PUSH2 0x2652
0000264d: DUP10
0000264e: PUSH2 0x3b3c
00002651: JUMP
00002652: JUMPDEST
00002653: PUSH1 0x40
00002655: MLOAD
00002656: SWAP2
00002657: PUSH2 0x2660
0000265a: DUP13
0000265b: DUP5
0000265c: PUSH2 0x3a14
0000265f: JUMP
00002660: JUMPDEST
00002661: DUP10
00002662: DUP4
00002663: MSTORE
00002664: CALLER
00002665: DUP10
00002666: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00002687: PUSH0
00002688: CALLDATALOAD
00002689: AND
0000268a: PUSH2 0x41a9
0000268d: JUMP
0000268e: JUMPDEST
0000268f: PUSH0
00002690: DUP1
00002691: PUSH2 0x25e2
00002694: JUMP
00002695: JUMPDEST
00002696: DUP6
00002697: PUSH2 0x2652
0000269a: JUMP
0000269b: JUMPDEST
0000269c: PUSH2 0x26a4
0000269f: DUP10
000026a0: PUSH2 0x3b3c
000026a3: JUMP
000026a4: JUMPDEST
000026a5: SWAP1
000026a6: PUSH2 0x2644
000026a9: JUMP
000026aa: JUMPDEST
000026ab: PUSH1 0x04
000026ad: DUP11
000026ae: PUSH32 0xbb55fd2700000000000000000000000000000000000000000000000000000000
000026cf: DUP2
000026d0: MSTORE
000026d1: REVERT
000026d2: JUMPDEST
000026d3: PUSH1 0x04
000026d5: DUP11
000026d6: PUSH32 0x42301c2300000000000000000000000000000000000000000000000000000000
000026f7: DUP2
000026f8: MSTORE
000026f9: REVERT
000026fa: JUMPDEST
000026fb: DUP5
000026fc: SWAP6
000026fd: SWAP7
000026fe: SWAP8
000026ff: POP
00002700: DUP4
00002701: PUSH2 0x270d
00002704: SWAP3
00002705: SWAP4
00002706: SWAP5
00002707: SWAP6
00002708: DUP11
00002709: PUSH2 0x43e9
0000270c: JUMP
0000270d: JUMPDEST
0000270e: SWAP10
0000270f: DUP11
00002710: ISZERO
00002711: PUSH2 0x26d2
00002714: JUMPI
00002715: DUP11
00002716: LT
00002717: PUSH2 0x2805
0000271a: JUMPI
0000271b: DUP3
0000271c: DUP11
0000271d: LT
0000271e: ISZERO
0000271f: PUSH2 0x27dd
00002722: JUMPI
00002723: SWAP3
00002724: DUP11
00002725: SWAP5
00002726: SWAP3
00002727: PUSH2 0x2771
0000272a: SWAP3
0000272b: PUSH2 0x275c
0000272e: DUP13
0000272f: DUP8
00002730: PUSH1 0x20
00002732: SWAP16
00002733: PUSH2 0x2754
00002736: PUSH1 0x40
00002738: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000274d: SWAP14
0000274e: SWAP12
0000274f: ADD
00002750: PUSH2 0x3b01
00002753: JUMP
00002754: JUMPDEST
00002755: SWAP2
00002756: CALLDATALOAD
00002757: SWAP2
00002758: PUSH2 0x3eca
0000275b: JUMP
0000275c: JUMPDEST
0000275d: PUSH2 0x2766
00002760: DUP13
00002761: DUP4
00002762: PUSH2 0x3b22
00002765: JUMP
00002766: JUMPDEST
00002767: DUP11
00002768: PUSH2 0x25d7
0000276b: DUP12
0000276c: DUP7
0000276d: PUSH2 0x3b2f
00002770: JUMP
00002771: JUMPDEST
00002772: PUSH2 0x27bb
00002775: JUMPI
00002776: JUMPDEST
00002777: POP
00002778: PUSH1 0x40
0000277a: MLOAD
0000277b: SWAP3
0000277c: DUP6
0000277d: DUP5
0000277e: MSTORE
0000277f: DUP8
00002780: DUP5
00002781: ADD
00002782: MSTORE
00002783: DUP6
00002784: PUSH1 0x40
00002786: DUP5
00002787: ADD
00002788: MSTORE
00002789: DUP5
0000278a: PUSH1 0x60
0000278c: DUP5
0000278d: ADD
0000278e: MSTORE
0000278f: AND
00002790: SWAP2
00002791: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56
000027b2: PUSH1 0x80
000027b4: CALLER
000027b5: SWAP4
000027b6: LOG4
000027b7: PUSH2 0x2624
000027ba: JUMP
000027bb: JUMPDEST
000027bc: PUSH2 0x27d7
000027bf: SWAP1
000027c0: PUSH2 0x27c8
000027c3: DUP9
000027c4: PUSH2 0x3b3c
000027c7: JUMP
000027c8: JUMPDEST
000027c9: DUP8
000027ca: ISZERO
000027cb: PUSH2 0x2695
000027ce: JUMPI
000027cf: PUSH2 0x2652
000027d2: DUP10
000027d3: PUSH2 0x3b3c
000027d6: JUMP
000027d7: JUMPDEST
000027d8: PUSH0
000027d9: PUSH2 0x2776
000027dc: JUMP
000027dd: JUMPDEST
000027de: PUSH1 0x04
000027e0: DUP10
000027e1: PUSH32 0xbb55fd2700000000000000000000000000000000000000000000000000000000
00002802: DUP2
00002803: MSTORE
00002804: REVERT
00002805: JUMPDEST
00002806: PUSH1 0x04
00002808: DUP10
00002809: PUSH32 0x42301c2300000000000000000000000000000000000000000000000000000000
0000282a: DUP2
0000282b: MSTORE
0000282c: REVERT
0000282d: JUMPDEST
0000282e: DUP1
0000282f: ISZERO
00002830: PUSH2 0x28d6
00002833: JUMPI
00002834: PUSH1 0x40
00002836: DUP4
00002837: ADD
00002838: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000284d: PUSH2 0x2855
00002850: DUP3
00002851: PUSH2 0x3b01
00002854: JUMP
00002855: JUMPDEST
00002856: AND
00002857: PUSH2 0x2890
0000285a: JUMPI
0000285b: POP
0000285c: DUP10
0000285d: CALLVALUE
0000285e: SUB
0000285f: PUSH2 0x2868
00002862: JUMPI
00002863: JUMPDEST
00002864: PUSH2 0x255c
00002867: JUMP
00002868: JUMPDEST
00002869: PUSH1 0x04
0000286b: DUP13
0000286c: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
0000288d: DUP2
0000288e: MSTORE
0000288f: REVERT
00002890: JUMPDEST
00002891: CALLVALUE
00002892: PUSH2 0x28ae
00002895: JUMPI
00002896: DUP11
00002897: PUSH2 0x28a2
0000289a: PUSH2 0x2863
0000289d: SWAP3
0000289e: PUSH2 0x3b01
000028a1: JUMP
000028a2: JUMPDEST
000028a3: DUP6
000028a4: CALLDATALOAD
000028a5: SWAP1
000028a6: ADDRESS
000028a7: SWAP1
000028a8: CALLER
000028a9: SWAP1
000028aa: PUSH2 0x3c99
000028ad: JUMP
000028ae: JUMPDEST
000028af: PUSH1 0x04
000028b1: DUP14
000028b2: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
000028d3: DUP2
000028d4: MSTORE
000028d5: REVERT
000028d6: JUMPDEST
000028d7: CALLVALUE
000028d8: PUSH2 0x2868
000028db: JUMPI
000028dc: PUSH2 0x2863
000028df: DUP11
000028e0: PUSH2 0x28eb
000028e3: PUSH1 0x60
000028e5: DUP7
000028e6: ADD
000028e7: PUSH2 0x3b01
000028ea: JUMP
000028eb: JUMPDEST
000028ec: PUSH1 0x20
000028ee: DUP7
000028ef: ADD
000028f0: CALLDATALOAD
000028f1: SWAP1
000028f2: ADDRESS
000028f3: SWAP1
000028f4: CALLER
000028f5: SWAP1
000028f6: PUSH2 0x3c99
000028f9: JUMP
000028fa: JUMPDEST
000028fb: CALLVALUE
000028fc: ISZERO
000028fd: PUSH2 0x2556
00002900: JUMPI
00002901: PUSH1 0x04
00002903: DUP14
00002904: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
00002925: DUP2
00002926: MSTORE
00002927: REVERT
00002928: JUMPDEST
00002929: PUSH2 0x2943
0000292c: DUP11
0000292d: PUSH2 0x2938
00002930: PUSH1 0x60
00002932: DUP7
00002933: ADD
00002934: PUSH2 0x3b01
00002937: JUMP
00002938: JUMPDEST
00002939: PUSH1 0x20
0000293b: DUP7
0000293c: ADD
0000293d: CALLDATALOAD
0000293e: SWAP1
0000293f: PUSH2 0x3e8d
00002942: JUMP
00002943: JUMPDEST
00002944: PUSH2 0x2556
00002947: JUMP
00002948: JUMPDEST
00002949: PUSH1 0x40
0000294b: MLOAD
0000294c: PUSH32 0x6e5f773000000000000000000000000000000000000000000000000000000000
0000296d: DUP2
0000296e: MSTORE
0000296f: PUSH0
00002970: DUP1
00002971: CALLDATALOAD
00002972: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00002993: AND
00002994: PUSH1 0x04
00002996: DUP4
00002997: ADD
00002998: MSTORE
00002999: PUSH1 0x24
0000299b: DUP3
0000299c: ADD
0000299d: DUP11
0000299e: SWAP1
0000299f: MSTORE
000029a0: CALLER
000029a1: PUSH1 0x44
000029a3: DUP4
000029a4: ADD
000029a5: MSTORE
000029a6: PUSH1 0x80
000029a8: PUSH1 0x64
000029aa: DUP4
000029ab: ADD
000029ac: MSTORE
000029ad: PUSH1 0x84
000029af: DUP3
000029b0: ADD
000029b1: MSTORE
000029b2: PUSH1 0x20
000029b4: DUP2
000029b5: PUSH1 0xa4
000029b7: DUP2
000029b8: DUP14
000029b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029ce: DUP12
000029cf: AND
000029d0: GAS
000029d1: CALL
000029d2: SWAP1
000029d3: DUP2
000029d4: ISZERO
000029d5: PUSH2 0x155e
000029d8: JUMPI
000029d9: DUP11
000029da: SWAP2
000029db: PUSH2 0x29f4
000029de: JUMPI
000029df: JUMPDEST
000029e0: POP
000029e1: DUP1
000029e2: PUSH2 0x29ec
000029e5: JUMPI
000029e6: JUMPDEST
000029e7: POP
000029e8: PUSH2 0x250a
000029eb: JUMP
000029ec: JUMPDEST
000029ed: SWAP2
000029ee: POP
000029ef: PUSH0
000029f0: PUSH2 0x29e6
000029f3: JUMP
000029f4: JUMPDEST
000029f5: SWAP1
000029f6: POP
000029f7: PUSH1 0x20
000029f9: DUP2
000029fa: RETURNDATASIZE
000029fb: PUSH1 0x20
000029fd: GT
000029fe: PUSH2 0x2a1e
00002a01: JUMPI
00002a02: JUMPDEST
00002a03: DUP2
00002a04: PUSH2 0x2a0f
00002a07: PUSH1 0x20
00002a09: SWAP4
00002a0a: DUP4
00002a0b: PUSH2 0x3a14
00002a0e: JUMP
00002a0f: JUMPDEST
00002a10: DUP2
00002a11: ADD
00002a12: SUB
00002a13: SLT
00002a14: PUSH2 0x0d28
00002a17: JUMPI
00002a18: MLOAD
00002a19: PUSH0
00002a1a: PUSH2 0x29df
00002a1d: JUMP
00002a1e: JUMPDEST
00002a1f: RETURNDATASIZE
00002a20: SWAP2
00002a21: POP
00002a22: PUSH2 0x2a02
00002a25: JUMP
00002a26: JUMPDEST
00002a27: PUSH1 0x04
00002a29: DUP6
00002a2a: PUSH32 0x098fb56100000000000000000000000000000000000000000000000000000000
00002a4b: DUP2
00002a4c: MSTORE
00002a4d: REVERT
00002a4e: JUMPDEST
00002a4f: PUSH1 0x04
00002a51: DUP6
00002a52: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000
00002a73: DUP2
00002a74: MSTORE
00002a75: REVERT
00002a76: JUMPDEST
00002a77: POP
00002a78: PUSH2 0x2a80
00002a7b: CALLDATASIZE
00002a7c: PUSH2 0x38dd
00002a7f: JUMP
00002a80: JUMPDEST
00002a81: SWAP1
00002a82: SWAP6
00002a83: SWAP4
00002a84: SWAP2
00002a85: SWAP3
00002a86: SWAP5
00002a87: PUSH9 0x929eee149b4bd21268
00002a91: TLOAD
00002a92: PUSH2 0x308d
00002a95: JUMPI
00002a96: ADDRESS
00002a97: PUSH9 0x929eee149b4bd21268
00002aa1: TSTORE
00002aa2: DUP4
00002aa3: SWAP2
00002aa4: TIMESTAMP
00002aa5: GT
00002aa6: PUSH2 0x3065
00002aa9: JUMPI
00002aaa: DUP3
00002aab: ISZERO
00002aac: PUSH2 0x303d
00002aaf: JUMPI
00002ab0: PUSH1 0xa0
00002ab2: PUSH1 0x40
00002ab4: MLOAD
00002ab5: DUP2
00002ab6: DUP4
00002ab7: DUP3
00002ab8: CALLDATACOPY
00002ab9: KECCAK256
00002aba: SWAP4
00002abb: PUSH2 0x2ac7
00002abe: PUSH1 0x80
00002ac0: DUP4
00002ac1: ADD
00002ac2: CALLDATALOAD
00002ac3: PUSH2 0x3d67
00002ac6: JUMP
00002ac7: JUMPDEST
00002ac8: SWAP4
00002ac9: SWAP3
00002aca: SWAP5
00002acb: SWAP1
00002acc: SWAP2
00002acd: SWAP5
00002ace: SWAP2
00002acf: PUSH2 0x2f50
00002ad2: JUMPI
00002ad3: JUMPDEST
00002ad4: DUP8
00002ad5: PUSH0
00002ad6: MSTORE
00002ad7: PUSH0
00002ad8: PUSH1 0x20
00002ada: MSTORE
00002adb: PUSH1 0x40
00002add: PUSH0
00002ade: KECCAK256
00002adf: SWAP1
00002ae0: DUP2
00002ae1: SLOAD
00002ae2: SWAP3
00002ae3: PUSH14 0xffffffffffffffffffffffffffff
00002af2: DUP1
00002af3: DUP6
00002af4: AND
00002af5: SWAP5
00002af6: PUSH1 0x70
00002af8: SHR
00002af9: AND
00002afa: SWAP5
00002afb: PUSH0
00002afc: EQ
00002afd: PUSH2 0x2d66
00002b00: JUMPI
00002b01: DUP5
00002b02: DUP10
00002b03: LT
00002b04: ISZERO
00002b05: PUSH2 0x1451
00002b08: JUMPI
00002b09: PUSH2 0x2b14
00002b0c: SWAP1
00002b0d: DUP6
00002b0e: DUP6
00002b0f: DUP12
00002b10: PUSH2 0x3e32
00002b13: JUMP
00002b14: JUMPDEST
00002b15: SWAP11
00002b16: DUP12
00002b17: GT
00002b18: PUSH2 0x2d3e
00002b1b: JUMPI
00002b1c: PUSH1 0x40
00002b1e: DUP2
00002b1f: ADD
00002b20: PUSH2 0x2b28
00002b23: DUP2
00002b24: PUSH2 0x3b01
00002b27: JUMP
00002b28: JUMPDEST
00002b29: SWAP1
00002b2a: PUSH2 0x2b36
00002b2d: DUP14
00002b2e: DUP5
00002b2f: CALLDATALOAD
00002b30: DUP1
00002b31: SWAP5
00002b32: PUSH2 0x3e8d
00002b35: JUMP
00002b36: JUMPDEST
00002b37: DUP1
00002b38: PUSH2 0x2d10
00002b3b: JUMPI
00002b3c: JUMPDEST
00002b3d: ISZERO
00002b3e: PUSH2 0x2c1f
00002b41: JUMPI
00002b42: JUMPDEST
00002b43: POP
00002b44: POP
00002b45: SWAP3
00002b46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b5b: SWAP7
00002b5c: SWAP5
00002b5d: SWAP3
00002b5e: PUSH2 0x2b8f
00002b61: SWAP3
00002b62: PUSH2 0x2b7a
00002b65: DUP11
00002b66: PUSH1 0x20
00002b68: SWAP16
00002b69: SWAP10
00002b6a: SWAP8
00002b6b: PUSH1 0x20
00002b6d: DUP12
00002b6e: SWAP1
00002b6f: PUSH2 0x25b8
00002b72: PUSH1 0x60
00002b74: DUP5
00002b75: ADD
00002b76: PUSH2 0x3b01
00002b79: JUMP
00002b7a: JUMPDEST
00002b7b: PUSH2 0x2b84
00002b7e: DUP14
00002b7f: DUP4
00002b80: PUSH2 0x3b2f
00002b83: JUMP
00002b84: JUMPDEST
00002b85: DUP12
00002b86: PUSH2 0x25d7
00002b89: DUP13
00002b8a: DUP7
00002b8b: PUSH2 0x3b22
00002b8e: JUMP
00002b8f: JUMPDEST
00002b90: PUSH2 0x2be8
00002b93: JUMPI
00002b94: JUMPDEST
00002b95: POP
00002b96: POP
00002b97: PUSH1 0x40
00002b99: MLOAD
00002b9a: SWAP3
00002b9b: DUP7
00002b9c: DUP5
00002b9d: MSTORE
00002b9e: DUP6
00002b9f: DUP9
00002ba0: DUP6
00002ba1: ADD
00002ba2: MSTORE
00002ba3: DUP6
00002ba4: PUSH1 0x40
00002ba6: DUP6
00002ba7: ADD
00002ba8: MSTORE
00002ba9: PUSH1 0x60
00002bab: DUP5
00002bac: ADD
00002bad: MSTORE
00002bae: AND
00002baf: SWAP2
00002bb0: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56
00002bd1: PUSH1 0x80
00002bd3: CALLER
00002bd4: SWAP4
00002bd5: LOG4
00002bd6: PUSH9 0x929eee149b4bd21268
00002be0: TSTORE
00002be1: PUSH1 0x40
00002be3: MLOAD
00002be4: SWAP1
00002be5: DUP2
00002be6: MSTORE
00002be7: RETURN
00002be8: JUMPDEST
00002be9: PUSH2 0x2c03
00002bec: SWAP2
00002bed: DUP1
00002bee: ISZERO
00002bef: PUSH2 0x2c10
00002bf2: JUMPI
00002bf3: DUP9
00002bf4: SWAP1
00002bf5: JUMPDEST
00002bf6: ISZERO
00002bf7: PUSH2 0x2c0a
00002bfa: JUMPI
00002bfb: PUSH2 0x2652
00002bfe: DUP7
00002bff: PUSH2 0x3b3c
00002c02: JUMP
00002c03: JUMPDEST
00002c04: PUSH0
00002c05: DUP1
00002c06: PUSH2 0x2b94
00002c09: JUMP
00002c0a: JUMPDEST
00002c0b: DUP9
00002c0c: PUSH2 0x2652
00002c0f: JUMP
00002c10: JUMPDEST
00002c11: PUSH2 0x2c19
00002c14: DUP7
00002c15: PUSH2 0x3b3c
00002c18: JUMP
00002c19: JUMPDEST
00002c1a: SWAP1
00002c1b: PUSH2 0x2bf5
00002c1e: JUMP
00002c1f: JUMPDEST
00002c20: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c35: PUSH2 0x2c3d
00002c38: DUP3
00002c39: PUSH2 0x3b01
00002c3c: JUMP
00002c3d: JUMPDEST
00002c3e: AND
00002c3f: PUSH2 0x2cc8
00002c42: JUMPI
00002c43: POP
00002c44: POP
00002c45: DUP11
00002c46: CALLVALUE
00002c47: LT
00002c48: PUSH2 0x2ca0
00002c4b: JUMPI
00002c4c: SWAP3
00002c4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c62: SWAP7
00002c63: SWAP5
00002c64: SWAP3
00002c65: PUSH2 0x2b8f
00002c68: SWAP3
00002c69: PUSH2 0x2b7a
00002c6c: DUP11
00002c6d: PUSH1 0x20
00002c6f: SWAP16
00002c70: SWAP10
00002c71: SWAP8
00002c72: DUP16
00002c73: DUP1
00002c74: CALLVALUE
00002c75: GT
00002c76: PUSH2 0x2c8e
00002c79: JUMPI
00002c7a: JUMPDEST
00002c7b: POP
00002c7c: JUMPDEST
00002c7d: SWAP5
00002c7e: SWAP8
00002c7f: SWAP10
00002c80: SWAP16
00002c81: POP
00002c82: POP
00002c83: POP
00002c84: SWAP3
00002c85: DUP2
00002c86: SWAP5
00002c87: SWAP7
00002c88: SWAP9
00002c89: POP
00002c8a: PUSH2 0x2b42
00002c8d: JUMP
00002c8e: JUMPDEST
00002c8f: PUSH2 0x2c9a
00002c92: SWAP1
00002c93: CALLVALUE
00002c94: SUB
00002c95: CALLER
00002c96: PUSH2 0x3c65
00002c99: JUMP
00002c9a: JUMPDEST
00002c9b: DUP16
00002c9c: PUSH2 0x2c7a
00002c9f: JUMP
00002ca0: JUMPDEST
00002ca1: PUSH1 0x04
00002ca3: DUP11
00002ca4: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
00002cc5: DUP2
00002cc6: MSTORE
00002cc7: REVERT
00002cc8: JUMPDEST
00002cc9: CALLVALUE
00002cca: PUSH2 0x2868
00002ccd: JUMPI
00002cce: SWAP3
00002ccf: PUSH2 0x2b7a
00002cd2: DUP11
00002cd3: PUSH1 0x20
00002cd5: SWAP16
00002cd6: SWAP10
00002cd7: SWAP8
00002cd8: SWAP5
00002cd9: DUP16
00002cda: PUSH2 0x2d0b
00002cdd: SWAP1
00002cde: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002cf3: SWAP14
00002cf4: SWAP12
00002cf5: SWAP10
00002cf6: SWAP7
00002cf7: PUSH2 0x2d02
00002cfa: PUSH2 0x2b8f
00002cfd: SWAP11
00002cfe: PUSH2 0x3b01
00002d01: JUMP
00002d02: JUMPDEST
00002d03: ADDRESS
00002d04: SWAP1
00002d05: CALLER
00002d06: SWAP1
00002d07: PUSH2 0x3c99
00002d0a: JUMP
00002d0b: JUMPDEST
00002d0c: PUSH2 0x2c7c
00002d0f: JUMP
00002d10: JUMPDEST
00002d11: CALLVALUE
00002d12: ISZERO
00002d13: PUSH2 0x2b3c
00002d16: JUMPI
00002d17: PUSH1 0x04
00002d19: DUP14
00002d1a: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
00002d3b: DUP2
00002d3c: MSTORE
00002d3d: REVERT
00002d3e: JUMPDEST
00002d3f: PUSH1 0x04
00002d41: DUP11
00002d42: PUSH32 0x098fb56100000000000000000000000000000000000000000000000000000000
00002d63: DUP2
00002d64: MSTORE
00002d65: REVERT
00002d66: JUMPDEST
00002d67: SWAP1
00002d68: SWAP2
00002d69: SWAP3
00002d6a: DUP1
00002d6b: SWAP13
00002d6c: SWAP8
00002d6d: POP
00002d6e: DUP9
00002d6f: LT
00002d70: ISZERO
00002d71: PUSH2 0x2f28
00002d74: JUMPI
00002d75: PUSH2 0x2d80
00002d78: SWAP1
00002d79: DUP13
00002d7a: DUP6
00002d7b: DUP11
00002d7c: PUSH2 0x3e32
00002d7f: JUMP
00002d80: JUMPDEST
00002d81: SWAP10
00002d82: DUP11
00002d83: GT
00002d84: PUSH2 0x2f00
00002d87: JUMPI
00002d88: PUSH1 0x60
00002d8a: DUP2
00002d8b: ADD
00002d8c: PUSH2 0x2d94
00002d8f: DUP2
00002d90: PUSH2 0x3b01
00002d93: JUMP
00002d94: JUMPDEST
00002d95: PUSH2 0x2da4
00002d98: DUP13
00002d99: PUSH1 0x20
00002d9b: DUP6
00002d9c: ADD
00002d9d: CALLDATALOAD
00002d9e: DUP1
00002d9f: SWAP4
00002da0: PUSH2 0x3e8d
00002da3: JUMP
00002da4: JUMPDEST
00002da5: ISZERO
00002da6: PUSH2 0x2ea6
00002da9: JUMPI
00002daa: JUMPDEST
00002dab: POP
00002dac: POP
00002dad: SWAP10
00002dae: PUSH2 0x2ddc
00002db1: SWAP3
00002db2: SWAP2
00002db3: PUSH2 0x2dc7
00002db6: DUP9
00002db7: DUP14
00002db8: DUP10
00002db9: PUSH1 0x20
00002dbb: SWAP16
00002dbc: PUSH1 0x40
00002dbe: PUSH2 0x2754
00002dc1: SWAP2
00002dc2: ADD
00002dc3: PUSH2 0x3b01
00002dc6: JUMP
00002dc7: JUMPDEST
00002dc8: PUSH2 0x2dd1
00002dcb: DUP9
00002dcc: DUP4
00002dcd: PUSH2 0x3b22
00002dd0: JUMP
00002dd1: JUMPDEST
00002dd2: DUP10
00002dd3: PUSH2 0x25d7
00002dd6: DUP14
00002dd7: DUP7
00002dd8: PUSH2 0x3b2f
00002ddb: JUMP
00002ddc: JUMPDEST
00002ddd: PUSH2 0x2e3c
00002de0: JUMPI
00002de1: JUMPDEST
00002de2: POP
00002de3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002df8: SWAP1
00002df9: PUSH1 0x40
00002dfb: MLOAD
00002dfc: SWAP3
00002dfd: DUP6
00002dfe: DUP5
00002dff: MSTORE
00002e00: DUP7
00002e01: DUP9
00002e02: DUP6
00002e03: ADD
00002e04: MSTORE
00002e05: PUSH1 0x40
00002e07: DUP5
00002e08: ADD
00002e09: MSTORE
00002e0a: DUP5
00002e0b: PUSH1 0x60
00002e0d: DUP5
00002e0e: ADD
00002e0f: MSTORE
00002e10: AND
00002e11: SWAP2
00002e12: PUSH32 0xf51245804459075de3f63c42324c8ba2021175781c7477a5d8f4f08fb5584a56
00002e33: PUSH1 0x80
00002e35: CALLER
00002e36: SWAP4
00002e37: LOG4
00002e38: PUSH2 0x2624
00002e3b: JUMP
00002e3c: JUMPDEST
00002e3d: SWAP4
00002e3e: POP
00002e3f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002e54: SWAP1
00002e55: PUSH2 0x2ea0
00002e58: PUSH2 0x2e60
00002e5b: DUP5
00002e5c: PUSH2 0x3b3c
00002e5f: JUMP
00002e60: JUMPDEST
00002e61: SWAP6
00002e62: PUSH0
00002e63: SWAP7
00002e64: DUP9
00002e65: PUSH1 0x40
00002e67: MLOAD
00002e68: SWAP2
00002e69: PUSH2 0x2e72
00002e6c: DUP13
00002e6d: DUP5
00002e6e: PUSH2 0x3a14
00002e71: JUMP
00002e72: JUMPDEST
00002e73: PUSH0
00002e74: DUP4
00002e75: MSTORE
00002e76: CALLER
00002e77: DUP10
00002e78: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00002e99: PUSH0
00002e9a: CALLDATALOAD
00002e9b: AND
00002e9c: PUSH2 0x41a9
00002e9f: JUMP
00002ea0: JUMPDEST
00002ea1: SWAP1
00002ea2: PUSH2 0x2de1
00002ea5: JUMP
00002ea6: JUMPDEST
00002ea7: SWAP12
00002ea8: SWAP2
00002ea9: SWAP4
00002eaa: SWAP3
00002eab: SWAP1
00002eac: SWAP12
00002ead: CALLVALUE
00002eae: PUSH2 0x2ed8
00002eb1: JUMPI
00002eb2: DUP9
00002eb3: PUSH2 0x2ddc
00002eb6: SWAP6
00002eb7: PUSH2 0x2ecb
00002eba: PUSH1 0x20
00002ebc: SWAP16
00002ebd: DUP16
00002ebe: SWAP1
00002ebf: SWAP5
00002ec0: PUSH2 0x2d02
00002ec3: PUSH2 0x2dc7
00002ec6: SWAP7
00002ec7: PUSH2 0x3b01
00002eca: JUMP
00002ecb: JUMPDEST
00002ecc: SWAP4
00002ecd: SWAP14
00002ece: POP
00002ecf: POP
00002ed0: DUP2
00002ed1: SWAP4
00002ed2: SWAP5
00002ed3: POP
00002ed4: PUSH2 0x2daa
00002ed7: JUMP
00002ed8: JUMPDEST
00002ed9: PUSH32 0x85cf0a3500000000000000000000000000000000000000000000000000000000
00002efa: PUSH0
00002efb: MSTORE
00002efc: PUSH1 0x04
00002efe: PUSH0
00002eff: REVERT
00002f00: JUMPDEST
00002f01: PUSH32 0x098fb56100000000000000000000000000000000000000000000000000000000
00002f22: PUSH0
00002f23: MSTORE
00002f24: PUSH1 0x04
00002f26: PUSH0
00002f27: REVERT
00002f28: JUMPDEST
00002f29: PUSH32 0xbb55fd2700000000000000000000000000000000000000000000000000000000
00002f4a: PUSH0
00002f4b: MSTORE
00002f4c: PUSH1 0x04
00002f4e: PUSH0
00002f4f: REVERT
00002f50: JUMPDEST
00002f51: PUSH1 0x40
00002f53: MLOAD
00002f54: PUSH32 0x6e5f773000000000000000000000000000000000000000000000000000000000
00002f75: DUP2
00002f76: MSTORE
00002f77: PUSH0
00002f78: DUP1
00002f79: CALLDATALOAD
00002f7a: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00002f9b: AND
00002f9c: PUSH1 0x04
00002f9e: DUP4
00002f9f: ADD
00002fa0: MSTORE
00002fa1: PUSH1 0x24
00002fa3: DUP3
00002fa4: ADD
00002fa5: DUP11
00002fa6: SWAP1
00002fa7: MSTORE
00002fa8: CALLER
00002fa9: PUSH1 0x44
00002fab: DUP4
00002fac: ADD
00002fad: MSTORE
00002fae: PUSH1 0x80
00002fb0: PUSH1 0x64
00002fb2: DUP4
00002fb3: ADD
00002fb4: MSTORE
00002fb5: PUSH1 0x84
00002fb7: DUP3
00002fb8: ADD
00002fb9: MSTORE
00002fba: PUSH1 0x20
00002fbc: DUP2
00002fbd: DUP1
00002fbe: PUSH1 0xa4
00002fc0: DUP2
00002fc1: ADD
00002fc2: SUB
00002fc3: DUP2
00002fc4: PUSH0
00002fc5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002fda: DUP12
00002fdb: AND
00002fdc: GAS
00002fdd: CALL
00002fde: SWAP1
00002fdf: DUP2
00002fe0: ISZERO
00002fe1: PUSH2 0x3032
00002fe4: JUMPI
00002fe5: PUSH0
00002fe6: SWAP2
00002fe7: PUSH2 0x3000
00002fea: JUMPI
00002feb: JUMPDEST
00002fec: POP
00002fed: DUP1
00002fee: PUSH2 0x2ff8
00002ff1: JUMPI
00002ff2: JUMPDEST
00002ff3: POP
00002ff4: PUSH2 0x2ad3
00002ff7: JUMP
00002ff8: JUMPDEST
00002ff9: SWAP2
00002ffa: POP
00002ffb: PUSH0
00002ffc: PUSH2 0x2ff2
00002fff: JUMP
00003000: JUMPDEST
00003001: SWAP1
00003002: POP
00003003: PUSH1 0x20
00003005: DUP2
00003006: RETURNDATASIZE
00003007: PUSH1 0x20
00003009: GT
0000300a: PUSH2 0x302a
0000300d: JUMPI
0000300e: JUMPDEST
0000300f: DUP2
00003010: PUSH2 0x301b
00003013: PUSH1 0x20
00003015: SWAP4
00003016: DUP4
00003017: PUSH2 0x3a14
0000301a: JUMP
0000301b: JUMPDEST
0000301c: DUP2
0000301d: ADD
0000301e: SUB
0000301f: SLT
00003020: PUSH2 0x0d28
00003023: JUMPI
00003024: MLOAD
00003025: PUSH0
00003026: PUSH2 0x2feb
00003029: JUMP
0000302a: JUMPDEST
0000302b: RETURNDATASIZE
0000302c: SWAP2
0000302d: POP
0000302e: PUSH2 0x300e
00003031: JUMP
00003032: JUMPDEST
00003033: PUSH1 0x40
00003035: MLOAD
00003036: RETURNDATASIZE
00003037: PUSH0
00003038: DUP3
00003039: RETURNDATACOPY
0000303a: RETURNDATASIZE
0000303b: SWAP1
0000303c: REVERT
0000303d: JUMPDEST
0000303e: PUSH32 0x42301c2300000000000000000000000000000000000000000000000000000000
0000305f: PUSH0
00003060: MSTORE
00003061: PUSH1 0x04
00003063: PUSH0
00003064: REVERT
00003065: JUMPDEST
00003066: PUSH32 0x203d82d800000000000000000000000000000000000000000000000000000000
00003087: PUSH0
00003088: MSTORE
00003089: PUSH1 0x04
0000308b: PUSH0
0000308c: REVERT
0000308d: JUMPDEST
0000308e: PUSH4 0xab143c06
00003093: PUSH0
00003094: MSTORE
00003095: PUSH1 0x04
00003097: PUSH1 0x1c
00003099: REVERT
0000309a: JUMPDEST
0000309b: CALLVALUE
0000309c: PUSH2 0x0d28
0000309f: JUMPI
000030a0: PUSH1 0x20
000030a2: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000030c3: CALLDATASIZE
000030c4: ADD
000030c5: SLT
000030c6: PUSH2 0x0d28
000030c9: JUMPI
000030ca: PUSH1 0x04
000030cc: CALLDATALOAD
000030cd: PUSH0
000030ce: MSTORE
000030cf: PUSH1 0x02
000030d1: PUSH1 0x20
000030d3: MSTORE
000030d4: PUSH1 0x20
000030d6: PUSH1 0x40
000030d8: PUSH0
000030d9: KECCAK256
000030da: SLOAD
000030db: PUSH1 0x40
000030dd: MLOAD
000030de: SWAP1
000030df: DUP2
000030e0: MSTORE
000030e1: RETURN
000030e2: JUMPDEST
000030e3: PUSH2 0x30eb
000030e6: CALLDATASIZE
000030e7: PUSH2 0x37be
000030ea: JUMP
000030eb: JUMPDEST
000030ec: SWAP6
000030ed: SWAP2
000030ee: SWAP3
000030ef: SWAP1
000030f0: SWAP7
000030f1: SWAP5
000030f2: SWAP4
000030f3: PUSH9 0x929eee149b4bd21268
000030fd: TLOAD
000030fe: PUSH2 0x308d
00003101: JUMPI
00003102: ADDRESS
00003103: PUSH9 0x929eee149b4bd21268
0000310d: TSTORE
0000310e: PUSH7 0xffffffffffffff
00003116: DUP9
00003117: AND
00003118: SWAP8
00003119: TIMESTAMP
0000311a: DUP10
0000311b: GT
0000311c: ISZERO
0000311d: PUSH2 0x3065
00003120: JUMPI
00003121: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003136: DUP8
00003137: AND
00003138: PUSH2 0x3341
0000313b: JUMPI
0000313c: PUSH12 0xffffffffffffffffffffffff
00003149: DUP7
0000314a: JUMPDEST
0000314b: AND
0000314c: CALLVALUE
0000314d: SUB
0000314e: PUSH2 0x2ed8
00003151: JUMPI
00003152: PUSH2 0x320f
00003155: SWAP5
00003156: PUSH2 0x0342
00003159: SWAP4
0000315a: DUP10
0000315b: SWAP4
0000315c: PUSH1 0x40
0000315e: MLOAD
0000315f: SWAP9
00003160: DUP10
00003161: SWAP8
00003162: PUSH1 0x20
00003164: DUP10
00003165: ADD
00003166: SWAP12
00003167: CALLER
00003168: DUP14
00003169: SWAP8
0000316a: SWAP6
0000316b: SWAP4
0000316c: SWAP2
0000316d: SWAP10
0000316e: SWAP9
0000316f: SWAP7
00003170: SWAP5
00003171: SWAP3
00003172: SWAP1
00003173: SWAP10
00003174: PUSH2 0x0120
00003177: DUP10
00003178: ADD
00003179: SWAP11
0000317a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000318f: AND
00003190: DUP10
00003191: MSTORE
00003192: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000031a7: AND
000031a8: PUSH1 0x20
000031aa: DUP10
000031ab: ADD
000031ac: MSTORE
000031ad: PUSH1 0x40
000031af: DUP9
000031b0: ADD
000031b1: MSTORE
000031b2: PUSH12 0xffffffffffffffffffffffff
000031bf: AND
000031c0: PUSH1 0x60
000031c2: DUP8
000031c3: ADD
000031c4: MSTORE
000031c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000031da: AND
000031db: PUSH1 0x80
000031dd: DUP7
000031de: ADD
000031df: MSTORE
000031e0: PUSH1 0xa0
000031e2: DUP6
000031e3: ADD
000031e4: MSTORE
000031e5: PUSH12 0xffffffffffffffffffffffff
000031f2: AND
000031f3: PUSH1 0xc0
000031f5: DUP5
000031f6: ADD
000031f7: MSTORE
000031f8: PUSH7 0xffffffffffffff
00003200: AND
00003201: PUSH1 0xe0
00003203: DUP4
00003204: ADD
00003205: MSTORE
00003206: ISZERO
00003207: ISZERO
00003208: SWAP1
00003209: PUSH2 0x0100
0000320c: ADD
0000320d: MSTORE
0000320e: JUMP
0000320f: JUMPDEST
00003210: MLOAD
00003211: SWAP1
00003212: KECCAK256
00003213: SWAP1
00003214: DUP2
00003215: PUSH0
00003216: MSTORE
00003217: PUSH1 0x03
00003219: PUSH1 0x20
0000321b: MSTORE
0000321c: PUSH7 0xffffffffffffff
00003224: PUSH1 0x40
00003226: PUSH0
00003227: KECCAK256
00003228: SLOAD
00003229: PUSH1 0x08
0000322b: SHR
0000322c: AND
0000322d: PUSH2 0x3319
00003230: JUMPI
00003231: PUSH1 0x20
00003233: SWAP3
00003234: PUSH1 0x40
00003236: MLOAD
00003237: SWAP2
00003238: PUSH2 0x3240
0000323b: DUP4
0000323c: PUSH2 0x39f8
0000323f: JUMP
00003240: JUMPDEST
00003241: ISZERO
00003242: ISZERO
00003243: DUP3
00003244: MSTORE
00003245: DUP4
00003246: DUP3
00003247: ADD
00003248: SWAP1
00003249: DUP2
0000324a: MSTORE
0000324b: PUSH1 0x40
0000324d: DUP3
0000324e: ADD
0000324f: PUSH0
00003250: DUP2
00003251: MSTORE
00003252: PUSH1 0x60
00003254: DUP4
00003255: ADD
00003256: SWAP1
00003257: PUSH0
00003258: DUP3
00003259: MSTORE
0000325a: DUP5
0000325b: PUSH0
0000325c: MSTORE
0000325d: PUSH1 0x03
0000325f: DUP7
00003260: MSTORE
00003261: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003276: PUSH1 0x40
00003278: PUSH0
00003279: KECCAK256
0000327a: SWAP5
0000327b: MLOAD
0000327c: ISZERO
0000327d: ISZERO
0000327e: SWAP4
0000327f: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000032a0: PUSH1 0xff
000032a2: DUP2
000032a3: PUSH20 0xffffffffffffffffffffffff0000000000000000
000032b8: PUSH8 0xffffffffffffff00
000032c1: DUP11
000032c2: SLOAD
000032c3: SWAP6
000032c4: MLOAD
000032c5: PUSH1 0x08
000032c7: SHL
000032c8: AND
000032c9: SWAP7
000032ca: MLOAD
000032cb: PUSH1 0x40
000032cd: SHL
000032ce: AND
000032cf: SWAP7
000032d0: MLOAD
000032d1: PUSH1 0xa0
000032d3: SHL
000032d4: AND
000032d5: SWAP7
000032d6: AND
000032d7: SWAP2
000032d8: AND
000032d9: OR
000032da: AND
000032db: OR
000032dc: OR
000032dd: OR
000032de: SWAP1
000032df: SSTORE
000032e0: PUSH1 0x40
000032e2: MLOAD
000032e3: SWAP1
000032e4: DUP1
000032e5: CALLER
000032e6: PUSH32 0x1fa192562e5fbdce807069b18275dc0d672cacd78576602b47d21730975635a1
00003307: PUSH0
00003308: DUP1
00003309: LOG3
0000330a: PUSH0
0000330b: PUSH9 0x929eee149b4bd21268
00003315: TSTORE
00003316: DUP2
00003317: MSTORE
00003318: RETURN
00003319: JUMPDEST
0000331a: PUSH32 0x6df2039000000000000000000000000000000000000000000000000000000000
0000333b: PUSH0
0000333c: MSTORE
0000333d: PUSH1 0x04
0000333f: PUSH0
00003340: REVERT
00003341: JUMPDEST
00003342: PUSH12 0xffffffffffffffffffffffff
0000334f: PUSH0
00003350: PUSH2 0x314a
00003353: JUMP
00003354: JUMPDEST
00003355: PUSH2 0x335d
00003358: CALLDATASIZE
00003359: PUSH2 0x3888
0000335c: JUMP
0000335d: JUMPDEST
0000335e: SWAP2
0000335f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003374: DUP2
00003375: AND
00003376: ISZERO
00003377: DUP1
00003378: ISZERO
00003379: PUSH2 0x33b1
0000337c: JUMPI
0000337d: DUP4
0000337e: JUMPDEST
0000337f: CALLVALUE
00003380: SUB
00003381: PUSH2 0x2ed8
00003384: JUMPI
00003385: ISZERO
00003386: PUSH2 0x339f
00003389: JUMPI
0000338a: JUMPDEST
0000338b: CALLER
0000338c: PUSH0
0000338d: MSTORE
0000338e: PUSH1 0x20
00003390: MSTORE
00003391: PUSH1 0x40
00003393: MSTORE
00003394: PUSH1 0x60
00003396: PUSH0
00003397: KECCAK256
00003398: SWAP1
00003399: DUP2
0000339a: TLOAD
0000339b: ADD
0000339c: SWAP1
0000339d: TSTORE
0000339e: STOP
0000339f: JUMPDEST
000033a0: PUSH2 0x33ac
000033a3: DUP4
000033a4: DUP4
000033a5: ADDRESS
000033a6: CALLER
000033a7: DUP6
000033a8: PUSH2 0x3c99
000033ab: JUMP
000033ac: JUMPDEST
000033ad: PUSH2 0x338a
000033b0: JUMP
000033b1: JUMPDEST
000033b2: PUSH0
000033b3: PUSH2 0x337e
000033b6: JUMP
000033b7: JUMPDEST
000033b8: CALLVALUE
000033b9: PUSH2 0x0d28
000033bc: JUMPI
000033bd: PUSH2 0x33c5
000033c0: CALLDATASIZE
000033c1: PUSH2 0x3888
000033c4: JUMP
000033c5: JUMPDEST
000033c6: SWAP1
000033c7: SWAP2
000033c8: PUSH8 0xedcaa89a82293940
000033d1: PUSH1 0x20
000033d3: MSTORE
000033d4: CALLER
000033d5: PUSH1 0x14
000033d7: MSTORE
000033d8: DUP3
000033d9: PUSH0
000033da: MSTORE
000033db: PUSH1 0x40
000033dd: PUSH0
000033de: KECCAK256
000033df: DUP1
000033e0: SLOAD
000033e1: DUP1
000033e2: DUP5
000033e3: GT
000033e4: PUSH2 0x345e
000033e7: JUMPI
000033e8: DUP4
000033e9: SWAP1
000033ea: SUB
000033eb: SWAP1
000033ec: SSTORE
000033ed: DUP1
000033ee: PUSH1 0x14
000033f0: MSTORE
000033f1: DUP3
000033f2: PUSH0
000033f3: MSTORE
000033f4: PUSH1 0x40
000033f6: PUSH0
000033f7: KECCAK256
000033f8: SWAP2
000033f9: DUP3
000033fa: SLOAD
000033fb: DUP2
000033fc: DUP2
000033fd: ADD
000033fe: SWAP1
000033ff: DUP2
00003400: LT
00003401: PUSH2 0x3451
00003404: JUMPI
00003405: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000341a: SWAP4
0000341b: SSTORE
0000341c: CALLER
0000341d: PUSH0
0000341e: MSTORE
0000341f: PUSH1 0x20
00003421: MSTORE
00003422: AND
00003423: CALLER
00003424: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859
00003445: PUSH1 0x40
00003447: PUSH0
00003448: LOG4
00003449: PUSH1 0x01
0000344b: PUSH0
0000344c: MSTORE
0000344d: PUSH1 0x20
0000344f: PUSH0
00003450: RETURN
00003451: JUMPDEST
00003452: PUSH4 0x89560ca1
00003457: PUSH0
00003458: MSTORE
00003459: PUSH1 0x04
0000345b: PUSH1 0x1c
0000345d: REVERT
0000345e: JUMPDEST
0000345f: PUSH4 0xf4d678b8
00003464: PUSH0
00003465: MSTORE
00003466: PUSH1 0x04
00003468: PUSH1 0x1c
0000346a: REVERT
0000346b: JUMPDEST
0000346c: CALLVALUE
0000346d: PUSH2 0x0d28
00003470: JUMPI
00003471: PUSH2 0x3479
00003474: CALLDATASIZE
00003475: PUSH2 0x37be
00003478: JUMP
00003479: JUMPDEST
0000347a: SWAP7
0000347b: SWAP5
0000347c: SWAP4
0000347d: PUSH9 0x929eee149b4bd21268
00003487: SWAP7
00003488: SWAP4
00003489: SWAP3
0000348a: SWAP7
0000348b: TLOAD
0000348c: PUSH2 0x308d
0000348f: JUMPI
00003490: PUSH2 0x0342
00003493: DUP9
00003494: PUSH2 0x355b
00003497: SWAP4
00003498: ADDRESS
00003499: PUSH9 0x929eee149b4bd21268
000034a3: TSTORE
000034a4: DUP8
000034a5: SWAP10
000034a6: PUSH1 0x40
000034a8: MLOAD
000034a9: SWAP7
000034aa: DUP8
000034ab: SWAP6
000034ac: DUP11
000034ad: PUSH1 0x20
000034af: DUP9
000034b0: ADD
000034b1: SWAP11
000034b2: DUP14
000034b3: CALLER
000034b4: DUP14
000034b5: SWAP8
000034b6: SWAP6
000034b7: SWAP4
000034b8: SWAP2
000034b9: SWAP10
000034ba: SWAP9
000034bb: SWAP7
000034bc: SWAP5
000034bd: SWAP3
000034be: SWAP1
000034bf: SWAP10
000034c0: PUSH2 0x0120
000034c3: DUP10
000034c4: ADD
000034c5: SWAP11
000034c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000034db: AND
000034dc: DUP10
000034dd: MSTORE
000034de: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000034f3: AND
000034f4: PUSH1 0x20
000034f6: DUP10
000034f7: ADD
000034f8: MSTORE
000034f9: PUSH1 0x40
000034fb: DUP9
000034fc: ADD
000034fd: MSTORE
000034fe: PUSH12 0xffffffffffffffffffffffff
0000350b: AND
0000350c: PUSH1 0x60
0000350e: DUP8
0000350f: ADD
00003510: MSTORE
00003511: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003526: AND
00003527: PUSH1 0x80
00003529: DUP7
0000352a: ADD
0000352b: MSTORE
0000352c: PUSH1 0xa0
0000352e: DUP6
0000352f: ADD
00003530: MSTORE
00003531: PUSH12 0xffffffffffffffffffffffff
0000353e: AND
0000353f: PUSH1 0xc0
00003541: DUP5
00003542: ADD
00003543: MSTORE
00003544: PUSH7 0xffffffffffffff
0000354c: AND
0000354d: PUSH1 0xe0
0000354f: DUP4
00003550: ADD
00003551: MSTORE
00003552: ISZERO
00003553: ISZERO
00003554: SWAP1
00003555: PUSH2 0x0100
00003558: ADD
00003559: MSTORE
0000355a: JUMP
0000355b: JUMPDEST
0000355c: MLOAD
0000355d: SWAP1
0000355e: KECCAK256
0000355f: SWAP4
00003560: DUP5
00003561: PUSH0
00003562: MSTORE
00003563: PUSH1 0x03
00003565: PUSH1 0x20
00003567: MSTORE
00003568: PUSH1 0x40
0000356a: PUSH0
0000356b: KECCAK256
0000356c: SWAP1
0000356d: PUSH1 0x40
0000356f: MLOAD
00003570: SWAP2
00003571: PUSH2 0x3579
00003574: DUP4
00003575: PUSH2 0x39f8
00003578: JUMP
00003579: JUMPDEST
0000357a: SLOAD
0000357b: SWAP2
0000357c: PUSH1 0xff
0000357e: DUP4
0000357f: AND
00003580: ISZERO
00003581: ISZERO
00003582: DUP2
00003583: MSTORE
00003584: PUSH7 0xffffffffffffff
0000358c: DUP4
0000358d: PUSH1 0x08
0000358f: SHR
00003590: AND
00003591: SWAP1
00003592: DUP2
00003593: PUSH1 0x20
00003595: DUP3
00003596: ADD
00003597: MSTORE
00003598: PUSH1 0x60
0000359a: PUSH1 0x40
0000359c: DUP3
0000359d: ADD
0000359e: SWAP5
0000359f: PUSH12 0xffffffffffffffffffffffff
000035ac: DUP2
000035ad: PUSH1 0x40
000035af: SHR
000035b0: AND
000035b1: DUP7
000035b2: MSTORE
000035b3: PUSH1 0xa0
000035b5: SHR
000035b6: SWAP2
000035b7: ADD
000035b8: MSTORE
000035b9: ISZERO
000035ba: PUSH2 0x3680
000035bd: JUMPI
000035be: DUP6
000035bf: PUSH0
000035c0: MSTORE
000035c1: PUSH1 0x03
000035c3: PUSH1 0x20
000035c5: MSTORE
000035c6: PUSH0
000035c7: PUSH1 0x40
000035c9: DUP2
000035ca: KECCAK256
000035cb: SSTORE
000035cc: PUSH2 0x3646
000035cf: JUMPI
000035d0: JUMPDEST
000035d1: POP
000035d2: POP
000035d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000035e8: AND
000035e9: ISZERO
000035ea: PUSH2 0x3622
000035ed: JUMPI
000035ee: JUMPDEST
000035ef: POP
000035f0: CALLER
000035f1: PUSH32 0xdb2b33dd6349739e1f3cd6dc90cf093af6a3dfb1838aced380528b0aefe6093c
00003612: PUSH0
00003613: DUP1
00003614: LOG3
00003615: PUSH0
00003616: PUSH9 0x929eee149b4bd21268
00003620: TSTORE
00003621: STOP
00003622: JUMPDEST
00003623: PUSH12 0xffffffffffffffffffffffff
00003630: AND
00003631: DUP1
00003632: ISZERO
00003633: PUSH2 0x35ee
00003636: JUMPI
00003637: PUSH2 0x3640
0000363a: SWAP1
0000363b: CALLER
0000363c: PUSH2 0x3c65
0000363f: JUMP
00003640: JUMPDEST
00003641: DUP2
00003642: PUSH2 0x35ee
00003645: JUMP
00003646: JUMPDEST
00003647: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000365c: SWAP3
0000365d: SWAP4
0000365e: POP
0000365f: SWAP1
00003660: PUSH12 0xffffffffffffffffffffffff
0000366d: PUSH2 0x3678
00003670: SWAP3
00003671: MLOAD
00003672: AND
00003673: SWAP1
00003674: PUSH2 0x3a55
00003677: JUMP
00003678: JUMPDEST
00003679: SWAP2
0000367a: SWAP1
0000367b: DUP5
0000367c: PUSH2 0x35d0
0000367f: JUMP
00003680: JUMPDEST
00003681: PUSH32 0x82b4290000000000000000000000000000000000000000000000000000000000
000036a2: PUSH0
000036a3: MSTORE
000036a4: PUSH1 0x04
000036a6: PUSH0
000036a7: REVERT
000036a8: JUMPDEST
000036a9: CALLVALUE
000036aa: PUSH2 0x0d28
000036ad: JUMPI
000036ae: PUSH1 0x20
000036b0: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000036d1: CALLDATASIZE
000036d2: ADD
000036d3: SLT
000036d4: PUSH2 0x0d28
000036d7: JUMPI
000036d8: PUSH1 0x04
000036da: CALLDATALOAD
000036db: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000036fc: DUP2
000036fd: AND
000036fe: DUP2
000036ff: SUB
00003700: PUSH2 0x0d28
00003703: JUMPI
00003704: PUSH1 0x20
00003706: SWAP1
00003707: PUSH1 0xe0
00003709: SHR
0000370a: PUSH1 0x40
0000370c: MLOAD
0000370d: SWAP1
0000370e: PUSH4 0x01ffc9a7
00003713: PUSH4 0x0f632fb3
00003718: DUP3
00003719: EQ
0000371a: SWAP2
0000371b: EQ
0000371c: OR
0000371d: ISZERO
0000371e: ISZERO
0000371f: DUP2
00003720: MSTORE
00003721: RETURN
00003722: JUMPDEST
00003723: CALLVALUE
00003724: PUSH2 0x0d28
00003727: JUMPI
00003728: PUSH1 0x40
0000372a: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
0000374b: CALLDATASIZE
0000374c: ADD
0000374d: SLT
0000374e: PUSH2 0x0d28
00003751: JUMPI
00003752: PUSH1 0x20
00003754: SWAP1
00003755: PUSH2 0x375c
00003758: PUSH2 0x3778
0000375b: JUMP
0000375c: JUMPDEST
0000375d: PUSH8 0xedcaa89a82293940
00003766: DUP4
00003767: MSTORE
00003768: PUSH1 0x14
0000376a: MSTORE
0000376b: PUSH1 0x24
0000376d: CALLDATALOAD
0000376e: PUSH0
0000376f: MSTORE
00003770: PUSH1 0x40
00003772: PUSH0
00003773: KECCAK256
00003774: SLOAD
00003775: DUP2
00003776: MSTORE
00003777: RETURN
00003778: JUMPDEST
00003779: PUSH1 0x04
0000377b: CALLDATALOAD
0000377c: SWAP1
0000377d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003792: DUP3
00003793: AND
00003794: DUP3
00003795: SUB
00003796: PUSH2 0x0d28
00003799: JUMPI
0000379a: JUMP
0000379b: JUMPDEST
0000379c: PUSH1 0x24
0000379e: CALLDATALOAD
0000379f: SWAP1
000037a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000037b5: DUP3
000037b6: AND
000037b7: DUP3
000037b8: SUB
000037b9: PUSH2 0x0d28
000037bc: JUMPI
000037bd: JUMP
000037be: JUMPDEST
000037bf: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000037e0: PUSH2 0x0100
000037e3: SWAP2
000037e4: ADD
000037e5: SLT
000037e6: PUSH2 0x0d28
000037e9: JUMPI
000037ea: PUSH1 0x04
000037ec: CALLDATALOAD
000037ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003802: DUP2
00003803: AND
00003804: DUP2
00003805: SUB
00003806: PUSH2 0x0d28
00003809: JUMPI
0000380a: SWAP1
0000380b: PUSH1 0x24
0000380d: CALLDATALOAD
0000380e: SWAP1
0000380f: PUSH1 0x44
00003811: CALLDATALOAD
00003812: PUSH12 0xffffffffffffffffffffffff
0000381f: DUP2
00003820: AND
00003821: DUP2
00003822: SUB
00003823: PUSH2 0x0d28
00003826: JUMPI
00003827: SWAP1
00003828: PUSH1 0x64
0000382a: CALLDATALOAD
0000382b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003840: DUP2
00003841: AND
00003842: DUP2
00003843: SUB
00003844: PUSH2 0x0d28
00003847: JUMPI
00003848: SWAP1
00003849: PUSH1 0x84
0000384b: CALLDATALOAD
0000384c: SWAP1
0000384d: PUSH1 0xa4
0000384f: CALLDATALOAD
00003850: PUSH12 0xffffffffffffffffffffffff
0000385d: DUP2
0000385e: AND
0000385f: DUP2
00003860: SUB
00003861: PUSH2 0x0d28
00003864: JUMPI
00003865: SWAP1
00003866: PUSH1 0xc4
00003868: CALLDATALOAD
00003869: PUSH7 0xffffffffffffff
00003871: DUP2
00003872: AND
00003873: DUP2
00003874: SUB
00003875: PUSH2 0x0d28
00003878: JUMPI
00003879: SWAP1
0000387a: PUSH1 0xe4
0000387c: CALLDATALOAD
0000387d: DUP1
0000387e: ISZERO
0000387f: ISZERO
00003880: DUP2
00003881: SUB
00003882: PUSH2 0x0d28
00003885: JUMPI
00003886: SWAP1
00003887: JUMP
00003888: JUMPDEST
00003889: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000038aa: PUSH1 0x60
000038ac: SWAP2
000038ad: ADD
000038ae: SLT
000038af: PUSH2 0x0d28
000038b2: JUMPI
000038b3: PUSH1 0x04
000038b5: CALLDATALOAD
000038b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000038cb: DUP2
000038cc: AND
000038cd: DUP2
000038ce: SUB
000038cf: PUSH2 0x0d28
000038d2: JUMPI
000038d3: SWAP1
000038d4: PUSH1 0x24
000038d6: CALLDATALOAD
000038d7: SWAP1
000038d8: PUSH1 0x44
000038da: CALLDATALOAD
000038db: SWAP1
000038dc: JUMP
000038dd: JUMPDEST
000038de: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000038ff: ADD
00003900: PUSH2 0x0140
00003903: DUP2
00003904: SLT
00003905: PUSH2 0x0d28
00003908: JUMPI
00003909: PUSH1 0xa0
0000390b: SGT
0000390c: PUSH2 0x0d28
0000390f: JUMPI
00003910: PUSH1 0x04
00003912: SWAP1
00003913: PUSH1 0xa4
00003915: CALLDATALOAD
00003916: SWAP1
00003917: PUSH1 0xc4
00003919: CALLDATALOAD
0000391a: SWAP1
0000391b: PUSH1 0xe4
0000391d: CALLDATALOAD
0000391e: DUP1
0000391f: ISZERO
00003920: ISZERO
00003921: DUP2
00003922: SUB
00003923: PUSH2 0x0d28
00003926: JUMPI
00003927: SWAP1
00003928: PUSH2 0x0104
0000392b: CALLDATALOAD
0000392c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003941: DUP2
00003942: AND
00003943: DUP2
00003944: SUB
00003945: PUSH2 0x0d28
00003948: JUMPI
00003949: SWAP1
0000394a: PUSH2 0x0124
0000394d: CALLDATALOAD
0000394e: SWAP1
0000394f: JUMP
00003950: JUMPDEST
00003951: SWAP2
00003952: DUP2
00003953: PUSH1 0x1f
00003955: DUP5
00003956: ADD
00003957: SLT
00003958: ISZERO
00003959: PUSH2 0x0d28
0000395c: JUMPI
0000395d: DUP3
0000395e: CALLDATALOAD
0000395f: SWAP2
00003960: PUSH8 0xffffffffffffffff
00003969: DUP4
0000396a: GT
0000396b: PUSH2 0x0d28
0000396e: JUMPI
0000396f: PUSH1 0x20
00003971: DUP4
00003972: DUP2
00003973: DUP7
00003974: ADD
00003975: SWAP6
00003976: ADD
00003977: ADD
00003978: GT
00003979: PUSH2 0x0d28
0000397c: JUMPI
0000397d: JUMP
0000397e: JUMPDEST
0000397f: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000039a0: PUSH1 0xa0
000039a2: SWAP2
000039a3: ADD
000039a4: SLT
000039a5: PUSH2 0x0d28
000039a8: JUMPI
000039a9: PUSH1 0x04
000039ab: CALLDATALOAD
000039ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000039c1: DUP2
000039c2: AND
000039c3: DUP2
000039c4: SUB
000039c5: PUSH2 0x0d28
000039c8: JUMPI
000039c9: SWAP1
000039ca: PUSH1 0x24
000039cc: CALLDATALOAD
000039cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000039e2: DUP2
000039e3: AND
000039e4: DUP2
000039e5: SUB
000039e6: PUSH2 0x0d28
000039e9: JUMPI
000039ea: SWAP1
000039eb: PUSH1 0x44
000039ed: CALLDATALOAD
000039ee: SWAP1
000039ef: PUSH1 0x64
000039f1: CALLDATALOAD
000039f2: SWAP1
000039f3: PUSH1 0x84
000039f5: CALLDATALOAD
000039f6: SWAP1
000039f7: JUMP
000039f8: JUMPDEST
000039f9: PUSH1 0x80
000039fb: DUP2
000039fc: ADD
000039fd: SWAP1
000039fe: DUP2
000039ff: LT
00003a00: PUSH8 0xffffffffffffffff
00003a09: DUP3
00003a0a: GT
00003a0b: OR
00003a0c: PUSH2 0x1228
00003a0f: JUMPI
00003a10: PUSH1 0x40
00003a12: MSTORE
00003a13: JUMP
00003a14: JUMPDEST
00003a15: SWAP1
00003a16: PUSH1 0x1f
00003a18: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00003a39: SWAP2
00003a3a: ADD
00003a3b: AND
00003a3c: DUP2
00003a3d: ADD
00003a3e: SWAP1
00003a3f: DUP2
00003a40: LT
00003a41: PUSH8 0xffffffffffffffff
00003a4a: DUP3
00003a4b: GT
00003a4c: OR
00003a4d: PUSH2 0x1228
00003a50: JUMPI
00003a51: PUSH1 0x40
00003a53: MSTORE
00003a54: JUMP
00003a55: JUMPDEST
00003a56: SWAP1
00003a57: PUSH12 0xffffffffffffffffffffffff
00003a64: DUP1
00003a65: SWAP2
00003a66: AND
00003a67: SWAP2
00003a68: AND
00003a69: SUB
00003a6a: SWAP1
00003a6b: PUSH12 0xffffffffffffffffffffffff
00003a78: DUP3
00003a79: GT
00003a7a: PUSH2 0x3a7f
00003a7d: JUMPI
00003a7e: JUMP
00003a7f: JUMPDEST
00003a80: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003aa1: PUSH0
00003aa2: MSTORE
00003aa3: PUSH1 0x11
00003aa5: PUSH1 0x04
00003aa7: MSTORE
00003aa8: PUSH1 0x24
00003aaa: PUSH0
00003aab: REVERT
00003aac: JUMPDEST
00003aad: SWAP1
00003aae: DUP2
00003aaf: PUSH1 0x20
00003ab1: SWAP2
00003ab2: SUB
00003ab3: SLT
00003ab4: PUSH2 0x0d28
00003ab7: JUMPI
00003ab8: MLOAD
00003ab9: SWAP1
00003aba: JUMP
00003abb: JUMPDEST
00003abc: PUSH1 0x44
00003abe: CALLDATALOAD
00003abf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003ad4: DUP2
00003ad5: AND
00003ad6: DUP2
00003ad7: SUB
00003ad8: PUSH2 0x0d28
00003adb: JUMPI
00003adc: SWAP1
00003add: JUMP
00003ade: JUMPDEST
00003adf: PUSH1 0x64
00003ae1: CALLDATALOAD
00003ae2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003af7: DUP2
00003af8: AND
00003af9: DUP2
00003afa: SUB
00003afb: PUSH2 0x0d28
00003afe: JUMPI
00003aff: SWAP1
00003b00: JUMP
00003b01: JUMPDEST
00003b02: CALLDATALOAD
00003b03: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003b18: DUP2
00003b19: AND
00003b1a: DUP2
00003b1b: SUB
00003b1c: PUSH2 0x0d28
00003b1f: JUMPI
00003b20: SWAP1
00003b21: JUMP
00003b22: JUMPDEST
00003b23: SWAP2
00003b24: SWAP1
00003b25: DUP3
00003b26: SUB
00003b27: SWAP2
00003b28: DUP3
00003b29: GT
00003b2a: PUSH2 0x3a7f
00003b2d: JUMPI
00003b2e: JUMP
00003b2f: JUMPDEST
00003b30: SWAP2
00003b31: SWAP1
00003b32: DUP3
00003b33: ADD
00003b34: DUP1
00003b35: SWAP3
00003b36: GT
00003b37: PUSH2 0x3a7f
00003b3a: JUMPI
00003b3b: JUMP
00003b3c: JUMPDEST
00003b3d: PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000
00003b5e: DUP2
00003b5f: EQ
00003b60: PUSH2 0x3a7f
00003b63: JUMPI
00003b64: PUSH0
00003b65: SUB
00003b66: SWAP1
00003b67: JUMP
00003b68: JUMPDEST
00003b69: SWAP1
00003b6a: PUSH12 0xffffffffffffffffffffffff
00003b77: DUP1
00003b78: SWAP2
00003b79: AND
00003b7a: SWAP2
00003b7b: AND
00003b7c: ADD
00003b7d: SWAP1
00003b7e: PUSH12 0xffffffffffffffffffffffff
00003b8b: DUP3
00003b8c: GT
00003b8d: PUSH2 0x3a7f
00003b90: JUMPI
00003b91: JUMP
00003b92: JUMPDEST
00003b93: PUSH1 0x1f
00003b95: DUP3
00003b96: PUSH1 0x20
00003b98: SWAP5
00003b99: SWAP4
00003b9a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00003bbb: SWAP4
00003bbc: DUP2
00003bbd: DUP7
00003bbe: MSTORE
00003bbf: DUP7
00003bc0: DUP7
00003bc1: ADD
00003bc2: CALLDATACOPY
00003bc3: PUSH0
00003bc4: DUP6
00003bc5: DUP3
00003bc6: DUP7
00003bc7: ADD
00003bc8: ADD
00003bc9: MSTORE
00003bca: ADD
00003bcb: AND
00003bcc: ADD
00003bcd: ADD
00003bce: SWAP1
00003bcf: JUMP
00003bd0: JUMPDEST
00003bd1: PUSH2 0x3bef
00003bd4: DUP3
00003bd5: DUP3
00003bd6: PUSH8 0xedcaa89a82293940
00003bdf: PUSH1 0x20
00003be1: MSTORE
00003be2: PUSH1 0x14
00003be4: MSTORE
00003be5: PUSH0
00003be6: MSTORE
00003be7: PUSH1 0x34
00003be9: PUSH1 0x0c
00003beb: KECCAK256
00003bec: SLOAD
00003bed: SWAP1
00003bee: JUMP
00003bef: JUMPDEST
00003bf0: PUSH2 0x3c13
00003bf3: JUMPI
00003bf4: PUSH8 0xedcaa89a82293940
00003bfd: PUSH1 0x34
00003bff: MSTORE
00003c00: PUSH1 0x28
00003c02: MSTORE
00003c03: PUSH1 0x14
00003c05: MSTORE
00003c06: PUSH0
00003c07: MSTORE
00003c08: PUSH1 0x54
00003c0a: PUSH0
00003c0b: KECCAK256
00003c0c: SLOAD
00003c0d: SWAP1
00003c0e: PUSH0
00003c0f: PUSH1 0x34
00003c11: MSTORE
00003c12: JUMP
00003c13: JUMPDEST
00003c14: POP
00003c15: POP
00003c16: POP
00003c17: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00003c38: SWAP1
00003c39: JUMP
00003c3a: JUMPDEST
00003c3b: DUP2
00003c3c: DUP2
00003c3d: MUL
00003c3e: SWAP3
00003c3f: SWAP2
00003c40: DUP2
00003c41: ISZERO
00003c42: SWAP2
00003c43: DUP5
00003c44: DIV
00003c45: EQ
00003c46: OR
00003c47: ISZERO
00003c48: PUSH2 0x3a7f
00003c4b: JUMPI
00003c4c: JUMP
00003c4d: JUMPDEST
00003c4e: DUP2
00003c4f: DUP2
00003c50: SUB
00003c51: SWAP3
00003c52: SWAP2
00003c53: PUSH0
00003c54: SGT
00003c55: DUP1
00003c56: ISZERO
00003c57: DUP3
00003c58: DUP6
00003c59: SGT
00003c5a: AND
00003c5b: SWAP2
00003c5c: DUP5
00003c5d: SLT
00003c5e: AND
00003c5f: OR
00003c60: PUSH2 0x3a7f
00003c63: JUMPI
00003c64: JUMP
00003c65: JUMPDEST
00003c66: PUSH0
00003c67: DUP1
00003c68: DUP1
00003c69: SWAP4
00003c6a: CODESIZE
00003c6b: SWAP4
00003c6c: GAS
00003c6d: CALL
00003c6e: ISZERO
00003c6f: PUSH2 0x3c74
00003c72: JUMPI
00003c73: JUMP
00003c74: JUMPDEST
00003c75: PUSH4 0xb12d13eb
00003c7a: PUSH0
00003c7b: MSTORE
00003c7c: PUSH1 0x04
00003c7e: PUSH1 0x1c
00003c80: REVERT
00003c81: JUMPDEST
00003c82: SWAP1
00003c83: DUP2
00003c84: PUSH1 0x20
00003c86: SWAP2
00003c87: SUB
00003c88: SLT
00003c89: PUSH2 0x0d28
00003c8c: JUMPI
00003c8d: MLOAD
00003c8e: DUP1
00003c8f: ISZERO
00003c90: ISZERO
00003c91: DUP2
00003c92: SUB
00003c93: PUSH2 0x0d28
00003c96: JUMPI
00003c97: SWAP1
00003c98: JUMP
00003c99: JUMPDEST
00003c9a: SWAP4
00003c9b: SWAP3
00003c9c: SWAP2
00003c9d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003cb2: DUP6
00003cb3: AND
00003cb4: ADDRESS
00003cb5: DUP2
00003cb6: SUB
00003cb7: PUSH2 0x3cc8
00003cba: JUMPI
00003cbb: POP
00003cbc: POP
00003cbd: PUSH2 0x3cc6
00003cc0: SWAP4
00003cc1: POP
00003cc2: PUSH2 0x472e
00003cc5: JUMP
00003cc6: JUMPDEST
00003cc7: JUMP
00003cc8: JUMPDEST
00003cc9: SWAP1
00003cca: SWAP3
00003ccb: DUP1
00003ccc: PUSH2 0x3cda
00003ccf: JUMPI
00003cd0: POP
00003cd1: POP
00003cd2: PUSH2 0x3cc6
00003cd5: SWAP4
00003cd6: PUSH2 0x4835
00003cd9: JUMP
00003cda: JUMPDEST
00003cdb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003cf0: SWAP4
00003cf1: SWAP6
00003cf2: POP
00003cf3: PUSH1 0x84
00003cf5: SWAP3
00003cf6: SWAP2
00003cf7: PUSH1 0x20
00003cf9: SWAP6
00003cfa: PUSH0
00003cfb: SWAP3
00003cfc: DUP7
00003cfd: PUSH1 0x40
00003cff: MLOAD
00003d00: SWAP10
00003d01: DUP11
00003d02: SWAP9
00003d03: DUP10
00003d04: SWAP8
00003d05: PUSH32 0xfe99049a00000000000000000000000000000000000000000000000000000000
00003d26: DUP10
00003d27: MSTORE
00003d28: AND
00003d29: PUSH1 0x04
00003d2b: DUP9
00003d2c: ADD
00003d2d: MSTORE
00003d2e: AND
00003d2f: PUSH1 0x24
00003d31: DUP7
00003d32: ADD
00003d33: MSTORE
00003d34: PUSH1 0x44
00003d36: DUP6
00003d37: ADD
00003d38: MSTORE
00003d39: PUSH1 0x64
00003d3b: DUP5
00003d3c: ADD
00003d3d: MSTORE
00003d3e: GAS
00003d3f: CALL
00003d40: DUP1
00003d41: ISZERO
00003d42: PUSH2 0x3032
00003d45: JUMPI
00003d46: PUSH2 0x3d4c
00003d49: JUMPI
00003d4a: POP
00003d4b: JUMP
00003d4c: JUMPDEST
00003d4d: PUSH2 0x3d64
00003d50: SWAP1
00003d51: PUSH1 0x20
00003d53: RETURNDATASIZE
00003d54: PUSH1 0x20
00003d56: GT
00003d57: PUSH2 0x2295
00003d5a: JUMPI
00003d5b: PUSH2 0x2286
00003d5e: DUP2
00003d5f: DUP4
00003d60: PUSH2 0x3a14
00003d63: JUMP
00003d64: JUMPDEST
00003d65: POP
00003d66: JUMP
00003d67: JUMPDEST
00003d68: PUSH0
00003d69: SWAP1
00003d6a: DUP2
00003d6b: SWAP1
00003d6c: DUP2
00003d6d: SWAP1
00003d6e: DUP2
00003d6f: PUSH2 0x2710
00003d72: DUP3
00003d73: GT
00003d74: PUSH2 0x3d7b
00003d77: JUMPI
00003d78: POP
00003d79: SWAP4
00003d7a: JUMP
00003d7b: JUMPDEST
00003d7c: SWAP5
00003d7d: SWAP4
00003d7e: POP
00003d7f: DUP1
00003d80: SWAP3
00003d81: POP
00003d82: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003d97: SWAP2
00003d98: POP
00003d99: AND
00003d9a: SWAP2
00003d9b: PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000
00003dbc: DUP3
00003dbd: AND
00003dbe: ISZERO
00003dbf: SWAP1
00003dc0: PUSH32 0x4000000000000000000000000000000000000000000000000000000000000000
00003de1: DUP3
00003de2: ISZERO
00003de3: SWAP4
00003de4: AND
00003de5: ISZERO
00003de6: DUP1
00003de7: ISZERO
00003de8: SWAP3
00003de9: PUSH2 0x3def
00003dec: JUMPI
00003ded: POP
00003dee: JUMP
00003def: JUMPDEST
00003df0: PUSH2 0x3df5
00003df3: JUMPI
00003df4: JUMP
00003df5: JUMPDEST
00003df6: PUSH1 0x01
00003df8: SWAP2
00003df9: POP
00003dfa: JUMP
00003dfb: JUMPDEST
00003dfc: DUP2
00003dfd: ISZERO
00003dfe: PUSH2 0x3e05
00003e01: JUMPI
00003e02: DIV
00003e03: SWAP1
00003e04: JUMP
00003e05: JUMPDEST
00003e06: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003e27: PUSH0
00003e28: MSTORE
00003e29: PUSH1 0x12
00003e2b: PUSH1 0x04
00003e2d: MSTORE
00003e2e: PUSH1 0x24
00003e30: PUSH0
00003e31: REVERT
00003e32: JUMPDEST
00003e33: SWAP2
00003e34: SWAP1
00003e35: DUP3
00003e36: PUSH2 0x3e3e
00003e39: SWAP2
00003e3a: PUSH2 0x3c3a
00003e3d: JUMP
00003e3e: JUMPDEST
00003e3f: SWAP2
00003e40: PUSH2 0x2710
00003e43: DUP4
00003e44: MUL
00003e45: SWAP3
00003e46: DUP1
00003e47: DUP5
00003e48: DIV
00003e49: PUSH2 0x2710
00003e4c: EQ
00003e4d: SWAP1
00003e4e: ISZERO
00003e4f: OR
00003e50: ISZERO
00003e51: PUSH2 0x3a7f
00003e54: JUMPI
00003e55: PUSH2 0x3e5d
00003e58: SWAP2
00003e59: PUSH2 0x3b22
00003e5c: JUMP
00003e5d: JUMPDEST
00003e5e: SWAP2
00003e5f: PUSH2 0x2710
00003e62: SUB
00003e63: SWAP2
00003e64: PUSH2 0x2710
00003e67: DUP4
00003e68: GT
00003e69: PUSH2 0x3a7f
00003e6c: JUMPI
00003e6d: PUSH2 0x3e7f
00003e70: SWAP3
00003e71: PUSH2 0x3e79
00003e74: SWAP2
00003e75: PUSH2 0x3c3a
00003e78: JUMP
00003e79: JUMPDEST
00003e7a: SWAP1
00003e7b: PUSH2 0x3dfb
00003e7e: JUMP
00003e7f: JUMPDEST
00003e80: PUSH1 0x01
00003e82: DUP2
00003e83: ADD
00003e84: DUP1
00003e85: SWAP2
00003e86: GT
00003e87: PUSH2 0x3a7f
00003e8a: JUMPI
00003e8b: SWAP1
00003e8c: JUMP
00003e8d: JUMPDEST
00003e8e: SWAP1
00003e8f: SWAP3
00003e90: SWAP2
00003e91: PUSH0
00003e92: SWAP4
00003e93: PUSH1 0x40
00003e95: MLOAD
00003e96: SWAP3
00003e97: CALLER
00003e98: PUSH0
00003e99: MSTORE
00003e9a: PUSH1 0x20
00003e9c: MSTORE
00003e9d: PUSH1 0x40
00003e9f: MSTORE
00003ea0: PUSH1 0x60
00003ea2: PUSH0
00003ea3: KECCAK256
00003ea4: SWAP1
00003ea5: DUP2
00003ea6: TLOAD
00003ea7: DUP2
00003ea8: DUP2
00003ea9: LT
00003eaa: ISZERO
00003eab: PUSH2 0x3eb7
00003eae: JUMPI
00003eaf: JUMPDEST
00003eb0: POP
00003eb1: POP
00003eb2: POP
00003eb3: PUSH1 0x40
00003eb5: MSTORE
00003eb6: JUMP
00003eb7: JUMPDEST
00003eb8: SWAP1
00003eb9: SWAP2
00003eba: SWAP3
00003ebb: SWAP5
00003ebc: POP
00003ebd: SUB
00003ebe: SWAP1
00003ebf: TSTORE
00003ec0: PUSH1 0x01
00003ec2: SWAP2
00003ec3: PUSH0
00003ec4: DUP1
00003ec5: DUP1
00003ec6: PUSH2 0x3eaf
00003ec9: JUMP
00003eca: JUMPDEST
00003ecb: SWAP3
00003ecc: SWAP2
00003ecd: SWAP1
00003ece: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003ee3: DUP2
00003ee4: AND
00003ee5: ADDRESS
00003ee6: DUP2
00003ee7: SUB
00003ee8: PUSH2 0x3f09
00003eeb: JUMPI
00003eec: POP
00003eed: POP
00003eee: PUSH1 0x40
00003ef0: MLOAD
00003ef1: SWAP3
00003ef2: CALLER
00003ef3: PUSH0
00003ef4: MSTORE
00003ef5: PUSH1 0x20
00003ef7: MSTORE
00003ef8: PUSH1 0x40
00003efa: MSTORE
00003efb: PUSH1 0x60
00003efd: PUSH0
00003efe: KECCAK256
00003eff: SWAP1
00003f00: DUP2
00003f01: TLOAD
00003f02: ADD
00003f03: SWAP1
00003f04: TSTORE
00003f05: PUSH1 0x40
00003f07: MSTORE
00003f08: JUMP
00003f09: JUMPDEST
00003f0a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003f1f: DUP6
00003f20: AND
00003f21: ADDRESS
00003f22: DUP2
00003f23: SUB
00003f24: PUSH2 0x3f33
00003f27: JUMPI
00003f28: POP
00003f29: POP
00003f2a: PUSH2 0x3cc6
00003f2d: SWAP4
00003f2e: POP
00003f2f: PUSH2 0x47c8
00003f32: JUMP
00003f33: JUMPDEST
00003f34: SWAP2
00003f35: SWAP3
00003f36: SWAP2
00003f37: DUP1
00003f38: PUSH2 0x3f48
00003f3b: JUMPI
00003f3c: POP
00003f3d: POP
00003f3e: POP
00003f3f: PUSH2 0x3cc6
00003f42: SWAP3
00003f43: POP
00003f44: PUSH2 0x3c65
00003f47: JUMP
00003f48: JUMPDEST
00003f49: DUP3
00003f4a: PUSH2 0x3fa8
00003f4d: JUMPI
00003f4e: POP
00003f4f: POP
00003f50: POP
00003f51: PUSH1 0x14
00003f53: MSTORE
00003f54: PUSH1 0x34
00003f56: MSTORE
00003f57: PUSH16 0xa9059cbb000000000000000000000000
00003f68: PUSH0
00003f69: MSTORE
00003f6a: PUSH1 0x20
00003f6c: PUSH0
00003f6d: PUSH1 0x44
00003f6f: PUSH1 0x10
00003f71: DUP3
00003f72: DUP6
00003f73: GAS
00003f74: CALL
00003f75: SWAP1
00003f76: DUP2
00003f77: PUSH1 0x01
00003f79: PUSH0
00003f7a: MLOAD
00003f7b: EQ
00003f7c: AND
00003f7d: ISZERO
00003f7e: PUSH2 0x3f8a
00003f81: JUMPI
00003f82: JUMPDEST
00003f83: POP
00003f84: POP
00003f85: PUSH0
00003f86: PUSH1 0x34
00003f88: MSTORE
00003f89: JUMP
00003f8a: JUMPDEST
00003f8b: EXTCODESIZE
00003f8c: ISZERO
00003f8d: RETURNDATASIZE
00003f8e: OR
00003f8f: LT
00003f90: ISZERO
00003f91: PUSH2 0x3f9b
00003f94: JUMPI
00003f95: PUSH0
00003f96: DUP1
00003f97: PUSH2 0x3f82
00003f9a: JUMP
00003f9b: JUMPDEST
00003f9c: PUSH4 0x90b8ec18
00003fa1: PUSH0
00003fa2: MSTORE
00003fa3: PUSH1 0x04
00003fa5: PUSH1 0x1c
00003fa7: REVERT
00003fa8: JUMPDEST
00003fa9: PUSH1 0x20
00003fab: SWAP5
00003fac: SWAP6
00003fad: POP
00003fae: PUSH1 0x64
00003fb0: SWAP3
00003fb1: SWAP4
00003fb2: POP
00003fb3: PUSH0
00003fb4: SWAP1
00003fb5: PUSH1 0x40
00003fb7: MLOAD
00003fb8: SWAP7
00003fb9: DUP8
00003fba: SWAP6
00003fbb: DUP7
00003fbc: SWAP5
00003fbd: PUSH32 0x095bcdb600000000000000000000000000000000000000000000000000000000
00003fde: DUP7
00003fdf: MSTORE
00003fe0: PUSH1 0x04
00003fe2: DUP7
00003fe3: ADD
00003fe4: MSTORE
00003fe5: PUSH1 0x24
00003fe7: DUP6
00003fe8: ADD
00003fe9: MSTORE
00003fea: PUSH1 0x44
00003fec: DUP5
00003fed: ADD
00003fee: MSTORE
00003fef: GAS
00003ff0: CALL
00003ff1: DUP1
00003ff2: ISZERO
00003ff3: PUSH2 0x3032
00003ff6: JUMPI
00003ff7: PUSH2 0x3d4c
00003ffa: JUMPI
00003ffb: POP
00003ffc: JUMP
00003ffd: JUMPDEST
00003ffe: SWAP4
00003fff: SWAP3
00004000: SWAP5
00004001: SWAP2
00004002: SWAP1
00004003: SWAP5
00004004: PUSH14 0xffffffffffffffffffffffffffff
00004013: DUP3
00004014: GT
00004015: PUSH2 0x4181
00004018: JUMPI
00004019: PUSH14 0xffffffffffffffffffffffffffff
00004028: DUP2
00004029: GT
0000402a: PUSH2 0x4181
0000402d: JUMPI
0000402e: DUP5
0000402f: PUSH14 0xffffffffffffffffffffffffffff
0000403e: PUSH28 0xffffffffffffffffffffffffffff0000000000000000000000000000
0000405b: SWAP5
0000405c: DUP2
0000405d: SWAP5
0000405e: PUSH1 0x40
00004060: SWAP8
00004061: PUSH32 0x1857d6b557d31cf8c2bf0cb9e6bf60aaeb9d8a0c5829169328ccf950adc4496f
00004082: SWAP10
00004083: SLOAD
00004084: SWAP3
00004085: PUSH4 0xffffffff
0000408a: DUP5
0000408b: PUSH1 0xe0
0000408d: SHR
0000408e: DUP2
0000408f: TIMESTAMP
00004090: AND
00004091: SUB
00004092: AND
00004093: SWAP2
00004094: DUP3
00004095: ISZERO
00004096: ISZERO
00004097: DUP1
00004098: PUSH2 0x4176
0000409b: JUMPI
0000409c: JUMPDEST
0000409d: DUP1
0000409e: PUSH2 0x416b
000040a1: JUMPI
000040a2: JUMPDEST
000040a3: PUSH2 0x410e
000040a6: JUMPI
000040a7: JUMPDEST
000040a8: POP
000040a9: POP
000040aa: POP
000040ab: SWAP1
000040ac: SWAP2
000040ad: AND
000040ae: TIMESTAMP
000040af: PUSH1 0xe0
000040b1: SHL
000040b2: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000040d3: AND
000040d4: DUP2
000040d5: OR
000040d6: PUSH1 0x70
000040d8: DUP6
000040d9: SWAP1
000040da: SHL
000040db: PUSH28 0xffffffffffffffffffffffffffff0000000000000000000000000000
000040f8: AND
000040f9: OR
000040fa: SWAP1
000040fb: SWAP3
000040fc: SSTORE
000040fd: POP
000040fe: DUP5
000040ff: MLOAD
00004100: SWAP1
00004101: DUP2
00004102: MSTORE
00004103: SWAP2
00004104: AND
00004105: PUSH1 0x20
00004107: DUP3
00004108: ADD
00004109: MSTORE
0000410a: SWAP1
0000410b: POP
0000410c: LOG2
0000410d: JUMP
0000410e: JUMPDEST
0000410f: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0000412c: SWAP2
0000412d: DUP11
0000412e: PUSH2 0x4157
00004131: SWAP3
00004132: DUP6
00004133: DUP6
00004134: PUSH2 0x4142
00004137: DUP4
00004138: DUP6
00004139: DUP8
0000413a: PUSH1 0x70
0000413c: SHL
0000413d: AND
0000413e: PUSH2 0x489c
00004141: JUMP
00004142: JUMPDEST
00004143: AND
00004144: MUL
00004145: PUSH1 0x01
00004147: DUP12
00004148: ADD
00004149: SWAP1
0000414a: DUP2
0000414b: SLOAD
0000414c: ADD
0000414d: SWAP1
0000414e: SSTORE
0000414f: PUSH1 0x70
00004151: SHL
00004152: AND
00004153: PUSH2 0x489c
00004156: JUMP
00004157: JUMPDEST
00004158: AND
00004159: MUL
0000415a: PUSH1 0x02
0000415c: DUP6
0000415d: ADD
0000415e: SWAP1
0000415f: DUP2
00004160: SLOAD
00004161: ADD
00004162: SWAP1
00004163: SSTORE
00004164: PUSH0
00004165: DUP1
00004166: DUP1
00004167: PUSH2 0x40a7
0000416a: JUMP
0000416b: JUMPDEST
0000416c: POP
0000416d: DUP6
0000416e: DUP3
0000416f: AND
00004170: ISZERO
00004171: ISZERO
00004172: PUSH2 0x40a2
00004175: JUMP
00004176: JUMPDEST
00004177: POP
00004178: DUP6
00004179: DUP2
0000417a: AND
0000417b: ISZERO
0000417c: ISZERO
0000417d: PUSH2 0x409c
00004180: JUMP
00004181: JUMPDEST
00004182: PUSH32 0x35278d1200000000000000000000000000000000000000000000000000000000
000041a3: PUSH0
000041a4: MSTORE
000041a5: PUSH1 0x04
000041a7: PUSH0
000041a8: REVERT
000041a9: JUMPDEST
000041aa: SWAP5
000041ab: SWAP2
000041ac: SWAP6
000041ad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000041c2: SWAP1
000041c3: SWAP5
000041c4: SWAP2
000041c5: SWAP5
000041c6: AND
000041c7: SWAP3
000041c8: DUP4
000041c9: ISZERO
000041ca: PUSH2 0x42c4
000041cd: JUMPI
000041ce: DUP4
000041cf: EXTCODESIZE
000041d0: ISZERO
000041d1: PUSH2 0x0d28
000041d4: JUMPI
000041d5: PUSH0
000041d6: SWAP6
000041d7: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000041f8: PUSH1 0x1f
000041fa: PUSH1 0x20
000041fc: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
0000421d: SWAP7
0000421e: DUP11
0000421f: SWAP7
00004220: PUSH2 0x0104
00004223: SWAP7
00004224: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004239: PUSH1 0x40
0000423b: MLOAD
0000423c: SWAP15
0000423d: DUP16
0000423e: SWAP14
0000423f: DUP15
00004240: SWAP13
00004241: DUP14
00004242: SWAP11
00004243: PUSH32 0x6673247200000000000000000000000000000000000000000000000000000000
00004264: DUP13
00004265: MSTORE
00004266: AND
00004267: PUSH1 0x04
00004269: DUP12
0000426a: ADD
0000426b: MSTORE
0000426c: PUSH1 0x24
0000426e: DUP11
0000426f: ADD
00004270: MSTORE
00004271: AND
00004272: PUSH1 0x44
00004274: DUP9
00004275: ADD
00004276: MSTORE
00004277: PUSH1 0x64
00004279: DUP8
0000427a: ADD
0000427b: MSTORE
0000427c: PUSH1 0x84
0000427e: DUP7
0000427f: ADD
00004280: MSTORE
00004281: DUP7
00004282: PUSH1 0xa4
00004284: DUP7
00004285: ADD
00004286: MSTORE
00004287: PUSH1 0xe0
00004289: PUSH1 0xc4
0000428b: DUP7
0000428c: ADD
0000428d: MSTORE
0000428e: DUP1
0000428f: MLOAD
00004290: SWAP2
00004291: DUP3
00004292: SWAP2
00004293: DUP3
00004294: PUSH1 0xe4
00004296: DUP9
00004297: ADD
00004298: MSTORE
00004299: ADD
0000429a: DUP7
0000429b: DUP7
0000429c: ADD
0000429d: MCOPY
0000429e: DUP6
0000429f: DUP6
000042a0: DUP3
000042a1: DUP7
000042a2: ADD
000042a3: ADD
000042a4: MSTORE
000042a5: ADD
000042a6: AND
000042a7: DUP2
000042a8: ADD
000042a9: SUB
000042aa: ADD
000042ab: SWAP3
000042ac: GAS
000042ad: CALL
000042ae: DUP1
000042af: ISZERO
000042b0: PUSH2 0x3032
000042b3: JUMPI
000042b4: PUSH2 0x42ba
000042b7: JUMPI
000042b8: POP
000042b9: JUMP
000042ba: JUMPDEST
000042bb: PUSH0
000042bc: PUSH2 0x3cc6
000042bf: SWAP2
000042c0: PUSH2 0x3a14
000042c3: JUMP
000042c4: JUMPDEST
000042c5: POP
000042c6: POP
000042c7: POP
000042c8: POP
000042c9: POP
000042ca: POP
000042cb: POP
000042cc: JUMP
000042cd: JUMPDEST
000042ce: SWAP2
000042cf: SWAP7
000042d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000042e5: AND
000042e6: SWAP6
000042e7: SWAP1
000042e8: SWAP5
000042e9: SWAP2
000042ea: SWAP4
000042eb: SWAP1
000042ec: SWAP3
000042ed: DUP7
000042ee: ISZERO
000042ef: PUSH2 0x43df
000042f2: JUMPI
000042f3: DUP7
000042f4: EXTCODESIZE
000042f5: ISZERO
000042f6: PUSH2 0x0d28
000042f9: JUMPI
000042fa: PUSH1 0x40
000042fc: MLOAD
000042fd: SWAP8
000042fe: DUP9
000042ff: SWAP7
00004300: DUP8
00004301: SWAP7
00004302: PUSH32 0x6673247200000000000000000000000000000000000000000000000000000000
00004323: DUP9
00004324: MSTORE
00004325: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00004346: AND
00004347: PUSH1 0x04
00004349: DUP9
0000434a: ADD
0000434b: MSTORE
0000434c: PUSH1 0x24
0000434e: DUP8
0000434f: ADD
00004350: MSTORE
00004351: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004366: AND
00004367: PUSH1 0x44
00004369: DUP7
0000436a: ADD
0000436b: MSTORE
0000436c: PUSH1 0x64
0000436e: DUP6
0000436f: ADD
00004370: MSTORE
00004371: PUSH1 0x84
00004373: DUP5
00004374: ADD
00004375: MSTORE
00004376: PUSH1 0xa4
00004378: DUP4
00004379: ADD
0000437a: MSTORE
0000437b: PUSH1 0xc4
0000437d: DUP3
0000437e: ADD
0000437f: PUSH1 0xe0
00004381: SWAP1
00004382: MSTORE
00004383: DUP1
00004384: MLOAD
00004385: DUP1
00004386: SWAP2
00004387: DUP2
00004388: PUSH1 0xe4
0000438a: DUP6
0000438b: ADD
0000438c: MSTORE
0000438d: PUSH1 0x20
0000438f: ADD
00004390: PUSH2 0x0104
00004393: DUP5
00004394: ADD
00004395: MCOPY
00004396: DUP1
00004397: DUP3
00004398: ADD
00004399: PUSH2 0x0104
0000439c: ADD
0000439d: PUSH0
0000439e: SWAP1
0000439f: MSTORE
000043a0: PUSH1 0x1f
000043a2: ADD
000043a3: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000043c4: AND
000043c5: DUP2
000043c6: ADD
000043c7: SUB
000043c8: PUSH2 0x0104
000043cb: ADD
000043cc: DUP2
000043cd: GAS
000043ce: PUSH0
000043cf: SWAP5
000043d0: DUP6
000043d1: SWAP2
000043d2: CALL
000043d3: DUP1
000043d4: ISZERO
000043d5: PUSH2 0x3032
000043d8: JUMPI
000043d9: PUSH2 0x42ba
000043dc: JUMPI
000043dd: POP
000043de: JUMP
000043df: JUMPDEST
000043e0: POP
000043e1: POP
000043e2: POP
000043e3: POP
000043e4: POP
000043e5: POP
000043e6: POP
000043e7: POP
000043e8: JUMP
000043e9: JUMPDEST
000043ea: SWAP1
000043eb: SWAP2
000043ec: SWAP3
000043ed: PUSH2 0x2710
000043f0: SUB
000043f1: SWAP1
000043f2: PUSH2 0x2710
000043f5: DUP3
000043f6: GT
000043f7: PUSH2 0x3a7f
000043fa: JUMPI
000043fb: PUSH2 0x440e
000043fe: SWAP2
000043ff: PUSH2 0x4407
00004402: SWAP2
00004403: PUSH2 0x3c3a
00004406: JUMP
00004407: JUMPDEST
00004408: SWAP3
00004409: DUP4
0000440a: PUSH2 0x3c3a
0000440d: JUMP
0000440e: JUMPDEST
0000440f: SWAP1
00004410: PUSH2 0x2710
00004413: DUP2
00004414: MUL
00004415: SWAP1
00004416: DUP1
00004417: DUP3
00004418: DIV
00004419: PUSH2 0x2710
0000441c: EQ
0000441d: SWAP1
0000441e: ISZERO
0000441f: OR
00004420: ISZERO
00004421: PUSH2 0x3a7f
00004424: JUMPI
00004425: PUSH2 0x4431
00004428: SWAP3
00004429: PUSH2 0x3e79
0000442c: SWAP2
0000442d: PUSH2 0x3b2f
00004430: JUMP
00004431: JUMPDEST
00004432: SWAP1
00004433: JUMP
00004434: JUMPDEST
00004435: DUP2
00004436: DUP2
00004437: MUL
00004438: SWAP2
00004439: DUP2
0000443a: ISZERO
0000443b: SWAP2
0000443c: DUP4
0000443d: DIV
0000443e: EQ
0000443f: OR
00004440: DUP3
00004441: MUL
00004442: ISZERO
00004443: PUSH2 0x444a
00004446: JUMPI
00004447: DIV
00004448: SWAP1
00004449: JUMP
0000444a: JUMPDEST
0000444b: PUSH4 0xad251c27
00004450: PUSH0
00004451: MSTORE
00004452: PUSH1 0x04
00004454: PUSH1 0x1c
00004456: REVERT
00004457: JUMPDEST
00004458: SWAP2
00004459: PUSH12 0xffffffffffffffffffffffff
00004466: DUP2
00004467: AND
00004468: SWAP3
00004469: PUSH2 0x4473
0000446c: DUP5
0000446d: DUP5
0000446e: DUP4
0000446f: PUSH2 0x3e8d
00004472: JUMP
00004473: JUMPDEST
00004474: PUSH2 0x4564
00004477: JUMPI
00004478: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000448d: DUP2
0000448e: AND
0000448f: ADDRESS
00004490: DUP2
00004491: SUB
00004492: PUSH2 0x44ac
00004495: JUMPI
00004496: POP
00004497: POP
00004498: POP
00004499: PUSH2 0x3cc6
0000449c: SWAP3
0000449d: PUSH2 0x44a7
000044a0: DUP4
000044a1: DUP4
000044a2: CALLER
000044a3: PUSH2 0x472e
000044a6: JUMP
000044a7: JUMPDEST
000044a8: PUSH2 0x47c8
000044ab: JUMP
000044ac: JUMPDEST
000044ad: SWAP1
000044ae: SWAP2
000044af: SWAP3
000044b0: DUP2
000044b1: ISZERO
000044b2: PUSH0
000044b3: EQ
000044b4: PUSH2 0x44cb
000044b7: JUMPI
000044b8: POP
000044b9: POP
000044ba: POP
000044bb: POP
000044bc: DUP1
000044bd: CALLVALUE
000044be: SUB
000044bf: PUSH2 0x2ed8
000044c2: JUMPI
000044c3: PUSH2 0x3cc6
000044c6: SWAP2
000044c7: PUSH2 0x3c65
000044ca: JUMP
000044cb: JUMPDEST
000044cc: SWAP3
000044cd: SWAP5
000044ce: SWAP3
000044cf: DUP1
000044d0: PUSH2 0x44e1
000044d3: JUMPI
000044d4: POP
000044d5: POP
000044d6: PUSH2 0x3cc6
000044d9: SWAP4
000044da: POP
000044db: CALLER
000044dc: SWAP1
000044dd: PUSH2 0x4835
000044e0: JUMP
000044e1: JUMPDEST
000044e2: PUSH1 0x40
000044e4: MLOAD
000044e5: PUSH32 0xfe99049a00000000000000000000000000000000000000000000000000000000
00004506: DUP2
00004507: MSTORE
00004508: CALLER
00004509: PUSH1 0x04
0000450b: DUP3
0000450c: ADD
0000450d: MSTORE
0000450e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004523: SWAP1
00004524: SWAP5
00004525: AND
00004526: PUSH1 0x24
00004528: DUP6
00004529: ADD
0000452a: MSTORE
0000452b: PUSH1 0x44
0000452d: DUP5
0000452e: ADD
0000452f: MSTORE
00004530: PUSH12 0xffffffffffffffffffffffff
0000453d: SWAP1
0000453e: SWAP5
0000453f: AND
00004540: PUSH1 0x64
00004542: DUP4
00004543: ADD
00004544: MSTORE
00004545: POP
00004546: SWAP2
00004547: PUSH1 0x20
00004549: SWAP2
0000454a: POP
0000454b: DUP3
0000454c: SWAP1
0000454d: DUP2
0000454e: PUSH0
0000454f: DUP2
00004550: PUSH1 0x84
00004552: DUP2
00004553: ADD
00004554: SUB
00004555: SWAP3
00004556: GAS
00004557: CALL
00004558: DUP1
00004559: ISZERO
0000455a: PUSH2 0x3032
0000455d: JUMPI
0000455e: PUSH2 0x3d4c
00004561: JUMPI
00004562: POP
00004563: JUMP
00004564: JUMPDEST
00004565: POP
00004566: POP
00004567: POP
00004568: POP
00004569: POP
0000456a: CALLVALUE
0000456b: PUSH2 0x2ed8
0000456e: JUMPI
0000456f: JUMP
00004570: JUMPDEST
00004571: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004586: SWAP2
00004587: SWAP3
00004588: PUSH8 0xedcaa89a82293940
00004591: PUSH1 0x20
00004593: MSTORE
00004594: DUP2
00004595: PUSH1 0x14
00004597: MSTORE
00004598: DUP4
00004599: PUSH0
0000459a: MSTORE
0000459b: DUP1
0000459c: PUSH1 0x40
0000459e: PUSH0
0000459f: KECCAK256
000045a0: SSTORE
000045a1: CALLER
000045a2: PUSH0
000045a3: MSTORE
000045a4: PUSH1 0x20
000045a6: MSTORE
000045a7: AND
000045a8: PUSH0
000045a9: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859
000045ca: PUSH1 0x40
000045cc: DUP3
000045cd: LOG4
000045ce: JUMP
000045cf: JUMPDEST
000045d0: PUSH1 0x20
000045d2: SLOAD
000045d3: DUP1
000045d4: ISZERO
000045d5: DUP1
000045d6: ISZERO
000045d7: SWAP7
000045d8: SWAP6
000045d9: SWAP2
000045da: SWAP3
000045db: SWAP2
000045dc: SWAP1
000045dd: PUSH2 0x4717
000045e0: JUMPI
000045e1: PUSH1 0x03
000045e3: DUP3
000045e4: ADD
000045e5: SLOAD
000045e6: SWAP5
000045e7: DUP6
000045e8: PUSH2 0x45f4
000045eb: JUMPI
000045ec: JUMPDEST
000045ed: POP
000045ee: POP
000045ef: POP
000045f0: POP
000045f1: POP
000045f2: POP
000045f3: JUMP
000045f4: JUMPDEST
000045f5: PUSH2 0x0688
000045f8: PUSH2 0x4617
000045fb: SWAP2
000045fc: PUSH14 0xffffffffffffffffffffffffffff
0000460b: DUP1
0000460c: PUSH2 0x46a9
0000460f: SWAP6
00004610: AND
00004611: SWAP2
00004612: AND
00004613: PUSH2 0x3c3a
00004616: JUMP
00004617: JUMPDEST
00004618: SWAP5
00004619: DUP1
0000461a: PUSH17 0xffffffffffffffffffffffffffffffffff
0000462c: LT
0000462d: PUSH1 0x07
0000462f: SHL
00004630: DUP2
00004631: DUP2
00004632: SHR
00004633: PUSH9 0xffffffffffffffffff
0000463d: LT
0000463e: PUSH1 0x06
00004640: SHL
00004641: OR
00004642: DUP2
00004643: DUP2
00004644: SHR
00004645: PUSH5 0xffffffffff
0000464b: LT
0000464c: PUSH1 0x05
0000464e: SHL
0000464f: OR
00004650: DUP2
00004651: DUP2
00004652: SHR
00004653: PUSH3 0xffffff
00004657: LT
00004658: PUSH1 0x04
0000465a: SHL
0000465b: OR
0000465c: PUSH1 0xb5
0000465e: PUSH3 0x010000
00004662: DUP4
00004663: DUP4
00004664: SHR
00004665: ADD
00004666: SWAP2
00004667: PUSH1 0x01
00004669: SHR
0000466a: SHL
0000466b: MUL
0000466c: PUSH1 0x12
0000466e: SHR
0000466f: DUP1
00004670: DUP3
00004671: DIV
00004672: ADD
00004673: PUSH1 0x01
00004675: SHR
00004676: DUP1
00004677: DUP3
00004678: DIV
00004679: ADD
0000467a: PUSH1 0x01
0000467c: SHR
0000467d: DUP1
0000467e: DUP3
0000467f: DIV
00004680: ADD
00004681: PUSH1 0x01
00004683: SHR
00004684: DUP1
00004685: DUP3
00004686: DIV
00004687: ADD
00004688: PUSH1 0x01
0000468a: SHR
0000468b: DUP1
0000468c: DUP3
0000468d: DIV
0000468e: ADD
0000468f: PUSH1 0x01
00004691: SHR
00004692: DUP1
00004693: DUP3
00004694: DIV
00004695: ADD
00004696: PUSH1 0x01
00004698: SHR
00004699: DUP1
0000469a: DUP3
0000469b: DIV
0000469c: ADD
0000469d: PUSH1 0x01
0000469f: SHR
000046a0: DUP1
000046a1: DUP1
000046a2: SWAP3
000046a3: DIV
000046a4: LT
000046a5: SWAP1
000046a6: SUB
000046a7: SWAP1
000046a8: JUMP
000046a9: JUMPDEST
000046aa: SWAP1
000046ab: DUP2
000046ac: DUP6
000046ad: GT
000046ae: PUSH2 0x46b8
000046b1: JUMPI
000046b2: JUMPDEST
000046b3: DUP1
000046b4: PUSH2 0x45ec
000046b7: JUMP
000046b8: JUMPDEST
000046b9: PUSH1 0x04
000046bb: ADD
000046bc: SWAP4
000046bd: PUSH2 0x46cb
000046c0: DUP6
000046c1: SLOAD
000046c2: PUSH2 0x1080
000046c5: DUP5
000046c6: DUP5
000046c7: PUSH2 0x3b22
000046ca: JUMP
000046cb: JUMPDEST
000046cc: SWAP1
000046cd: PUSH1 0x05
000046cf: DUP2
000046d0: MUL
000046d1: SWAP1
000046d2: DUP1
000046d3: DUP3
000046d4: DIV
000046d5: PUSH1 0x05
000046d7: EQ
000046d8: SWAP1
000046d9: ISZERO
000046da: OR
000046db: ISZERO
000046dc: PUSH2 0x3a7f
000046df: JUMPI
000046e0: PUSH2 0x46ec
000046e3: SWAP3
000046e4: PUSH2 0x3e79
000046e7: SWAP2
000046e8: PUSH2 0x3b2f
000046eb: JUMP
000046ec: JUMPDEST
000046ed: DUP1
000046ee: SWAP3
000046ef: DUP2
000046f0: PUSH2 0x4706
000046f3: JUMPI
000046f4: JUMPDEST
000046f5: POP
000046f6: POP
000046f7: POP
000046f8: DUP2
000046f9: SLOAD
000046fa: ADD
000046fb: SWAP1
000046fc: SSTORE
000046fd: PUSH0
000046fe: DUP1
000046ff: DUP1
00004700: DUP1
00004701: DUP1
00004702: PUSH2 0x46b2
00004705: JUMP
00004706: JUMPDEST
00004707: PUSH2 0x470f
0000470a: SWAP3
0000470b: PUSH2 0x47c8
0000470e: JUMP
0000470f: JUMPDEST
00004710: PUSH0
00004711: DUP2
00004712: DUP2
00004713: PUSH2 0x46f4
00004716: JUMP
00004717: JUMPDEST
00004718: POP
00004719: SWAP2
0000471a: POP
0000471b: POP
0000471c: PUSH1 0x03
0000471e: SWAP2
0000471f: POP
00004720: ADD
00004721: DUP1
00004722: SLOAD
00004723: PUSH2 0x4729
00004726: JUMPI
00004727: POP
00004728: JUMP
00004729: JUMPDEST
0000472a: PUSH0
0000472b: SWAP1
0000472c: SSTORE
0000472d: JUMP
0000472e: JUMPDEST
0000472f: SWAP1
00004730: SWAP2
00004731: PUSH8 0xedcaa89a82293940
0000473a: PUSH1 0x20
0000473c: MSTORE
0000473d: DUP2
0000473e: PUSH1 0x14
00004740: MSTORE
00004741: DUP3
00004742: PUSH0
00004743: MSTORE
00004744: PUSH1 0x40
00004746: PUSH0
00004747: KECCAK256
00004748: SWAP2
00004749: DUP3
0000474a: SLOAD
0000474b: SWAP2
0000474c: DUP3
0000474d: DUP2
0000474e: GT
0000474f: PUSH2 0x345e
00004752: JUMPI
00004753: PUSH0
00004754: SWAP4
00004755: DUP2
00004756: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000476b: SWAP5
0000476c: SUB
0000476d: SWAP1
0000476e: SSTORE
0000476f: CALLER
00004770: DUP5
00004771: MSTORE
00004772: PUSH1 0x20
00004774: MSTORE
00004775: AND
00004776: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859
00004797: PUSH1 0x40
00004799: DUP4
0000479a: LOG4
0000479b: JUMP
0000479c: JUMPDEST
0000479d: SWAP2
0000479e: SWAP1
0000479f: PUSH1 0x40
000047a1: MLOAD
000047a2: SWAP3
000047a3: CALLER
000047a4: PUSH0
000047a5: MSTORE
000047a6: PUSH1 0x20
000047a8: MSTORE
000047a9: PUSH1 0x40
000047ab: MSTORE
000047ac: PUSH1 0x60
000047ae: PUSH0
000047af: KECCAK256
000047b0: SWAP2
000047b1: DUP3
000047b2: TLOAD
000047b3: SWAP3
000047b4: DUP4
000047b5: PUSH2 0x47bf
000047b8: JUMPI
000047b9: JUMPDEST
000047ba: POP
000047bb: PUSH1 0x40
000047bd: MSTORE
000047be: JUMP
000047bf: JUMPDEST
000047c0: PUSH0
000047c1: SWAP1
000047c2: TSTORE
000047c3: PUSH0
000047c4: PUSH2 0x47b9
000047c7: JUMP
000047c8: JUMPDEST
000047c9: SWAP2
000047ca: SWAP1
000047cb: SWAP2
000047cc: PUSH8 0xedcaa89a82293940
000047d5: PUSH1 0x20
000047d7: MSTORE
000047d8: DUP1
000047d9: PUSH1 0x14
000047db: MSTORE
000047dc: DUP3
000047dd: PUSH0
000047de: MSTORE
000047df: PUSH1 0x40
000047e1: PUSH0
000047e2: KECCAK256
000047e3: SWAP2
000047e4: DUP3
000047e5: SLOAD
000047e6: DUP2
000047e7: DUP2
000047e8: ADD
000047e9: SWAP1
000047ea: DUP2
000047eb: LT
000047ec: PUSH2 0x3451
000047ef: JUMPI
000047f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00004805: SWAP4
00004806: SSTORE
00004807: CALLER
00004808: PUSH0
00004809: MSTORE
0000480a: PUSH1 0x20
0000480c: MSTORE
0000480d: AND
0000480e: PUSH0
0000480f: PUSH32 0x1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859
00004830: PUSH1 0x40
00004832: DUP3
00004833: LOG4
00004834: JUMP
00004835: JUMPDEST
00004836: SWAP2
00004837: PUSH1 0x40
00004839: MLOAD
0000483a: SWAP4
0000483b: PUSH1 0x60
0000483d: MSTORE
0000483e: PUSH1 0x40
00004840: MSTORE
00004841: PUSH1 0x60
00004843: SHL
00004844: PUSH1 0x2c
00004846: MSTORE
00004847: PUSH16 0x23b872dd000000000000000000000000
00004858: PUSH1 0x0c
0000485a: MSTORE
0000485b: PUSH1 0x20
0000485d: PUSH0
0000485e: PUSH1 0x64
00004860: PUSH1 0x1c
00004862: DUP3
00004863: DUP6
00004864: GAS
00004865: CALL
00004866: SWAP1
00004867: DUP2
00004868: PUSH1 0x01
0000486a: PUSH0
0000486b: MLOAD
0000486c: EQ
0000486d: AND
0000486e: ISZERO
0000486f: PUSH2 0x487e
00004872: JUMPI
00004873: JUMPDEST
00004874: POP
00004875: POP
00004876: PUSH0
00004877: PUSH1 0x60
00004879: MSTORE
0000487a: PUSH1 0x40
0000487c: MSTORE
0000487d: JUMP
0000487e: JUMPDEST
0000487f: EXTCODESIZE
00004880: ISZERO
00004881: RETURNDATASIZE
00004882: OR
00004883: LT
00004884: ISZERO
00004885: PUSH2 0x488f
00004888: JUMPI
00004889: PUSH0
0000488a: DUP1
0000488b: PUSH2 0x4873
0000488e: JUMP
0000488f: JUMPDEST
00004890: PUSH4 0x7939f424
00004895: PUSH0
00004896: MSTORE
00004897: PUSH1 0x04
00004899: PUSH1 0x1c
0000489b: REVERT
0000489c: JUMPDEST
0000489d: SWAP1
0000489e: PUSH14 0xffffffffffffffffffffffffffff
000048ad: AND
000048ae: SWAP1
000048af: DUP2
000048b0: ISZERO
000048b1: PUSH2 0x3e05
000048b4: JUMPI
000048b5: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000048d2: AND
000048d3: DIV
000048d4: SWAP1
000048d5: JUMP
000048d6: INVALID
000048d7: LOG2
000048d8: PUSH5 0x6970667358
000048de: UNKNOWN(0x22)
000048df: SLT
000048e0: KECCAK256
000048e1: GASPRICE
000048e2: MUL
000048e3: UNKNOWN(0xEE)
000048e4: STATICCALL
000048e5: XOR
000048e6: DUP9
000048e7: SWAP8
000048e8: RETURN
000048e9: GASPRICE
000048ea: DUP9
000048eb: UNKNOWN(0xB1)
000048ec: UNKNOWN(0xA8)
000048ed: UNKNOWN(0xCF)
000048ee: BLOCKHASH
000048ef: CHAINID
000048f0: SWAP3
000048f1: UNKNOWN(0xB9)
000048f2: SWAP2
000048f3: UNKNOWN(0xE8)
000048f4: BALANCE
000048f5: UNKNOWN(0xB1)
000048f6: UNKNOWN(0x4C)
000048f7: UNKNOWN(0x2E)
000048f8: CLZ
000048f9: UNKNOWN(0xF6)
000048fa: ORIGIN
000048fb: STATICCALL
000048fc: UNKNOWN(0xEC)
000048fd: UNKNOWN(0xA9)
000048fe: ORIGIN
000048ff: LT
00004900: UNKNOWN(0xDA)
00004901: PUSH5 0x736f6c6343
00004907: STOP
00004908: ADDMOD
00004909: CLZ
0000490a: STOP
0000490b: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x01ffc9a7",
            "selector": "0x01ffc9a7",
            "calldata_variants": [
                "0x01ffc9a7",
                "0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07b99000",
            "selector": "0x07b99000",
            "calldata_variants": [
                "0x07b99000",
                "0x07b990000000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095bcdb6",
            "selector": "0x095bcdb6",
            "calldata_variants": [
                "0x095bcdb6",
                "0x095bcdb60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0efe6a8b",
            "selector": "0x0efe6a8b",
            "calldata_variants": [
                "0x0efe6a8b",
                "0x0efe6a8b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2dd1a516",
            "selector": "0x2dd1a516",
            "calldata_variants": [
                "0x2dd1a516",
                "0x2dd1a5160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x346cfccc",
            "selector": "0x346cfccc",
            "calldata_variants": [
                "0x346cfccc",
                "0x346cfccc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x38c3f8db",
            "selector": "0x38c3f8db",
            "calldata_variants": [
                "0x38c3f8db",
                "0x38c3f8db0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3c5eec50",
            "selector": "0x3c5eec50",
            "calldata_variants": [
                "0x3c5eec50",
                "0x3c5eec500000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 18682,
            "type": "tx_origin_used"
        },
        {
            "pc": 18686,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x0b3f7dad8847d8d5f31fceee8af726fc23ed3f7995bdcb73f1d134ab95145258
call_targets: 0x000000000000040470635eb91b7ce4d132d616ed
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x0b3f7dad8847d8d5f31fceee8af726fc23ed3f7995bdcb73f1d134ab95145258",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x000000000000040470635eb91b7ce4d132d616ed"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x01ffc9a7",
            "selector": "0x01ffc9a7",
            "calldata_variants": [
                "0x01ffc9a7",
                "0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07b99000",
            "selector": "0x07b99000",
            "calldata_variants": [
                "0x07b99000",
                "0x07b990000000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095bcdb6",
            "selector": "0x095bcdb6",
            "calldata_variants": [
                "0x095bcdb6",
                "0x095bcdb60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0efe6a8b",
            "selector": "0x0efe6a8b",
            "calldata_variants": [
                "0x0efe6a8b",
                "0x0efe6a8b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2dd1a516",
            "selector": "0x2dd1a516",
            "calldata_variants": [
                "0x2dd1a516",
                "0x2dd1a5160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x346cfccc",
            "selector": "0x346cfccc",
            "calldata_variants": [
                "0x346cfccc",
                "0x346cfccc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x38c3f8db",
            "selector": "0x38c3f8db",
            "calldata_variants": [
                "0x38c3f8db",
                "0x38c3f8db0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3c5eec50",
            "selector": "0x3c5eec50",
            "calldata_variants": [
                "0x3c5eec50",
                "0x3c5eec500000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3240,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5083,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5385,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 15,
    "guards_detected": [
        {
            "pc": 18682,
            "type": "tx_origin_used"
        },
        {
            "pc": 18686,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 15
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x0b3f7dad8847d8d5f31fceee8af726fc23ed3f7995bdcb73f1d134ab95145258
call_targets: 0x000000000000040470635eb91b7ce4d132d616ed
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x0b3f7dad8847d8d5f31fceee8af726fc23ed3f7995bdcb73f1d134ab95145258",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x000000000000040470635eb91b7ce4d132d616ed"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x01ffc9a7",
            "selector": "0x01ffc9a7",
            "calldata_variants": [
                "0x01ffc9a7",
                "0x01ffc9a70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x07b99000",
            "selector": "0x07b99000",
            "calldata_variants": [
                "0x07b99000",
                "0x07b990000000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x095bcdb6",
            "selector": "0x095bcdb6",
            "calldata_variants": [
                "0x095bcdb6",
                "0x095bcdb60000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0efe6a8b",
            "selector": "0x0efe6a8b",
            "calldata_variants": [
                "0x0efe6a8b",
                "0x0efe6a8b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2dd1a516",
            "selector": "0x2dd1a516",
            "calldata_variants": [
                "0x2dd1a516",
                "0x2dd1a5160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x346cfccc",
            "selector": "0x346cfccc",
            "calldata_variants": [
                "0x346cfccc",
                "0x346cfccc0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x38c3f8db",
            "selector": "0x38c3f8db",
            "calldata_variants": [
                "0x38c3f8db",
                "0x38c3f8db0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3c5eec50",
            "selector": "0x3c5eec50",
            "calldata_variants": [
                "0x3c5eec50",
                "0x3c5eec500000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 3240,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5083,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 5385,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 15,
    "guards_detected": [
        {
            "pc": 18682,
            "type": "tx_origin_used"
        },
        {
            "pc": 18686,
            "type": "tx_origin_used"
        }
    ]
}
medium other codex Unchecked ERC6909 transfer/transferFrom allows spoofed transfers and reserve desync 75 no
view
evidence_json
{
    "evidence": "`ZERC6909(token).transfer(...)` and `ZERC6909(token).transferFrom(...)` are called without checking the return value.",
    "locations": [
        "src/ZAMM.sol:62",
        "src/ZAMM.sol:84",
        "src/ZAMM.sol:858",
        "src/ZAMM.sol:876"
    ],
    "recommendation": "Check the boolean return value for ERC6909 `transfer`/`transferFrom` and revert on failure, or wrap them with a SafeTransfer-style helper that verifies return data. Alternatively, enforce an allowlist of compliant ERC6909 tokens.",
    "exploit_scenario": "An attacker deploys an ERC6909-like token that returns false (or returns no value) without transferring. They create a pool with a real asset and this token, then add liquidity or swap using the malicious token. Because the AMM ignores the return value, it updates reserves as if tokens were received and transfers out the real asset, letting the attacker drain the pool or fill orders without paying."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 6
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 17
}