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

Analysis Run

019be3d6-8282-7361-9368-6a167143af5d

complete
Chain ID
1
Address
Block Number
Created
Thu, Jan 22, 2026 3:54 AM
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
Bytecode only
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
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
40666 artifact.fetch complete 1 / 3 2 months ago
40667 proxy.resolve complete 1 / 3 2 months ago
40668 tool.cast_disasm complete 1 / 3 2 months ago
40669 analysis.bundle complete 1 / 3 2 months ago
40670 capability.graph complete 1 / 3 2 months ago
40671 detector.run complete 1 / 3 2 months ago
40672 validation.fork complete 1 / 3 2 months ago
41270 report.consolidate complete 1 / 6 2 months ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
2
No findings?
no
Summary
Bytecode shows two low-level CALL sites with computed targets/values. One CALL is followed by an SSTORE (effects after interaction), and another CALL’s success handling is unclear. No delegatecall/proxy behavior detected in the bundle.
View stdout
{"no_findings":false,"summary":"Bytecode shows two low-level CALL sites with computed targets/values. One CALL is followed by an SSTORE (effects after interaction), and another CALL’s success handling is unclear. No delegatecall/proxy behavior detected in the bundle.","findings":[{"severity":"medium","category":"reentrancy","title":"External CALL before state update (possible reentrancy if target untrusted)","exploit_scenario":"If the CALL at pc 0x1e6c targets an untrusted contract, that contract can reenter before the subsequent SSTORE executes, potentially exploiting temporarily inconsistent state or bypassing intended sequencing. This risk depends on whether the callee is attacker-controlled (target appears storage-derived).","recommendation":"Follow checks-effects-interactions: move critical state updates before the external CALL, add a reentrancy guard, and restrict/validate the call target if it is configurable.","evidence":"CALL at pc 0x1e6c is followed by an SSTORE in the next block (pc 0x1e82). No guards detected in the bundle. Target is derived from storage with an EXTCODESIZE check earlier in the sequence.","locations":["pc:0x1e6c","pc:0x1e82"]},{"severity":"low","category":"other","title":"Low-level CALL with computed target/value and unclear success enforcement","exploit_scenario":"If the CALL at pc 0x2f79 uses a caller-controlled target/value, the contract could be coerced into arbitrary external calls or ETH transfers. The bytecode sequence appears to discard the CALL success flag and only compares RETURNDATASIZE, so a failed call may be treated as success. Validation indicates a constant self-target in one trace, so the risk is uncertain and may be benign depending on actual target flow.","recommendation":"Validate or whitelist the call target and value, and explicitly check the CALL success flag before proceeding. Handle return data in a way compatible with expected ABI (e.g., require success and accept empty/32-byte returns if calling ERC20s).","evidence":"CALL at pc 0x2f79 with computed target/value; opcodes show CALL followed by SWAP/POP operations and a RETURNDATASIZE equality check. Detector findings report computed target/value and possible ETH value transfer; guards_detected is empty, and validation did not confirm a variable target.","locations":["pc:0x2f79"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-abiqypvr
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019be410-5cfc-7591-847c-b4828bf1bc46
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.

Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.

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.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".

Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers

thinking
**Reading bytecode bundle using shell command**
exec
/bin/bash -lc ls in /tmp/codex-abiqypvr succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-abiqypvr succeeded in 12ms:
{
  "analysis_artifact": {
    "address": "0xb0e5bea9f6e7e66e284bcfd47e354aa3484de62e",
    "artifact_hash": "0xb502b2495fe6174bae4b785642d3f35c480a4f2363050a2cdd919e5e2fe18c11",
    "artifact_json": {
      "auth": {
        "guards": []
      },
      "basic_blocks": [
        {
          "end_pc": 12,
          "hash": "0x635c2eced0a12ff86c199f2381fa274374b43ad17b6da9f41d493b80c5f32868",
          "opcodes": [
            "PUSH1",
            "PUSH1",
            "MSTORE",
            "PUSH1",
            "CALLDATASIZE",
            "LT",
            "PUSH2",

thinking
**Scoping analysis on storage and callsites**

I'm targeting relevant data on storage slots and callsites by searching the bytecode bundle JSON for those keywords to locate detectors and evidence efficiently despite the file's large size.
exec
/bin/bash -lc 'rg -n "storage|slot|proxy|EIP-1967|delegatecall|beacon" BYTECODE_BUNDLE.json' in /tmp/codex-abiqypvr succeeded in 11ms:
15006:            "delegatecall": 0,
15010:          "storage": {
15012:            "slots": [
15016:                "slot": "0x000000000000000000000000000000000000000000000000000000000000000e"
15021:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000010"
15026:                "slot": "0x000000000000000000000000000000000000000000000000000000000000000d"
15031:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000004"
15036:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
15041:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
15046:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000003"
15051:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000005"
15056:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000009"
15061:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
15066:                "slot": "0x000000000000000000000000000000000000000000000000000000000000000f"
15071:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000008"
15076:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000007"
15081:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000006"
15086:                "slot": "0x000000000000000000000000000000000000000000000000000000000000000d"
15091:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000009"
15096:                "slot": "0x0000000000000000000000000000000000000000000000000000000000000009"

thinking
**Planning focused search on callsites and evidence**
exec
/bin/bash -lc 'rg -n "callsites|evidence_bundle|callsite" BYTECODE_BUNDLE.json' in /tmp/codex-abiqypvr succeeded in 7ms:
11194:      "callsites": [
44747:          "type": "callsite"
44753:          "type": "callsite"
44759:          "type": "callsite"
exec
/bin/bash -lc "sed -n '11180,11260p' BYTECODE_BUNDLE.json" in /tmp/codex-abiqypvr succeeded in 11ms:
            "OP_22",
            "SLT",
            "SHA3",
            "OP_28",
            "OP_DB",
            "PUSH9",
            "BALANCE",
            "CALLER",
            "OP_BA",
            "PUSH28"
          ],
          "start_pc": 14283
        }
      ],
      "callsites": [
        {
          "opcode": "STATICCALL",
          "pc": 3253,
          "returndata_checked": null,
          "target_expression_category": "computed",

thinking
**Analyzing call target evidence**

The call target appears constant to self, suggesting internal calls that could trigger reentrancy via fallback, but current detector flags might be false positives; more detailed evidence on state changes and CALL sites in the bytecode or evidence bundle is needed.
exec
/bin/bash -lc 'rg -n "evidence_bundle|evidence" BYTECODE_BUNDLE.json' in /tmp/codex-abiqypvr succeeded in 13ms:
36091:      "proxy_evidence": {
45085:      "evidence_json": {
45130:      "evidence_json": {
exec
/bin/bash -lc "sed -n '45060,45160p' BYTECODE_BUNDLE.json" in /tmp/codex-abiqypvr succeeded in 12ms:
          "selector": "0x01ffc9a7",
          "type": "function"
        },
        {
          "entry_pc": 130842681,
          "id": "fn:0x04c2e308",
          "selector": "0x04c2e308",
          "type": "function"
        },
        {
          "entry_pc": null,
          "id": "fn:0x07cc8039",
          "selector": "0x07cc8039",
          "type": "function"
        }
      ],
      "version": "capability_graph_v1"
    },
    "id": 1148,
    "updated_at": "2026-01-22T03:54:56.000000Z",
exec
/bin/bash -lc "sed -n '45160,45220p' BYTECODE_BUNDLE.json" in /tmp/codex-abiqypvr succeeded in 15ms:
          "0xb0e5bea9f6e7e66e284bcfd47e354aa3484de62e"
        ],
        "classification": "constant_target",
        "confirmed": false,
        "errors": 0,
        "matched_probe": null,
        "sink": "CALL",
        "status": "sink_reached",
        "target_varies": false,
        "trace_id": "0xd8af37cb19a9de169d4cea080e535a345c670917fff29d2de3c2843659021e0b",
        "trace_mode": "callTracer"
      }
    }
  ],
  "heuristics_summary": {
    "create2_count": 0,
    "delegatecall_count": 0,
    "flags": [],
    "selfdestruct_count": 0
  }


thinking
**Assessing external calls for return checks**

I'm analyzing callsites at 7788 and 12153, where CALL opcodes occur with no detected return value checks, which risks silent failures or reentrancy. Next, I'll locate basic blocks spanning those PCs to confirm if the calls target self or external contracts and gather concrete opcode context.
thinking
**Planning JSON parsing for basic blocks**

I'm preparing a small Python script to read the JSON and identify the basic block covering PC 7788 by parsing start and end PCs, enabling precise opcode context extraction for analysis.
exec
/bin/bash -lc "python - <<'PY'
import json
import sys
path='BYTECODE_BUNDLE.json'
with open(path) as f:
    data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
call_pcs=[7788,12153,3253]
for pc in call_pcs:
    bb=[b for b in blocks if b.get('start_pc') is not None and b['start_pc']<=pc<=b['end_pc']]
    print('pc',pc,'blocks',len(bb))
    for b in bb[:3]:
        print(' start',b['start_pc'],'end',b['end_pc'],'hash',b.get('hash'))
        print(' opcodes',b.get('opcodes'))
    print('---')
PY" in /tmp/codex-abiqypvr succeeded in 43ms:
pc 7788 blocks 1
 start 7785 end 7795 hash 0x74b22583c64805aa62dd205c2e663cb1f23d200f218da0a2b2e724158aa2fd01
 opcodes ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
---
pc 12153 blocks 1
 start 12140 end 12167 hash 0x384720ec1f842cb9f2c6f9a6f0bc3507eafe3454a821c932aa2387e85fab4638
 opcodes ['JUMPDEST', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_87', 'GAS', 'CALL', 'OP_92', 'POP', 'POP', 'POP', 'RETURNDATASIZE', 'OP_80', 'PUSH1', 'OP_81', 'EQ', 'PUSH2', 'JUMPI']
---
pc 3253 blocks 1
 start 3159 end 3260 hash 0xabf65ebb8e5e6ee287d6bb8ee273c9701a446f8cbd8ac5e95d1c83ccd307fff2
 opcodes ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'MLOAD', 'PUSH32', 'OP_81', 'MSTORE', 'ADDRESS', 'PUSH1', 'OP_82', 'ADD', 'MSTORE', 'PUSH1', 'OP_91', 'PUSH20', 'AND', 'OP_90', 'PUSH4', 'OP_90', 'PUSH1', 'ADD', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_86', 'GAS', 'STATICCALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
---


thinking
**Analyzing CALL instruction checks**

The CALL opcode sequences suggest runtime checks on call success and returndata, likely enforcing require(success) patterns. Precise revert confirmation or returndata usage is uncertain without fuller context, but call targets may include internal calls to self, indicating low-risk behavior.
thinking
**Assessing self-call risks and access control**

CALL targets appear as the contract’s own address, indicating self-calls that may enable internal function reentrancy but not external attacker reentrancy; this suggests low severity risk. No explicit access control guards are detected around these calls, so if public functions reach them, there could be risk—though evidence is inconclusive, warranting a conservative low-to-medium severity finding.
exec
/bin/bash -lc "python - <<'PY'
import json
path='BYTECODE_BUNDLE.json'
with open(path) as f:
    data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
# create map start_pc->block
by_start={b['start_pc']:b for b in blocks if b.get('start_pc') is not None}
# find block containing 12153
for b in blocks:
    if b.get('start_pc') is not None and b['start_pc']<=12153<=b['end_pc']:
        blk=b
        break
print('block',blk['start_pc'],blk['end_pc'])
print(blk['opcodes'])
# show following block by start_pc ascending
starts=sorted([b['start_pc'] for b in blocks if b.get('start_pc') is not None])
idx=starts.index(blk['start_pc'])
for s in starts[idx+1:idx+6]:
    b=by_start[s]
    print('next',b['start_pc'],b['end_pc'],b['opcodes'])
PY" in /tmp/codex-abiqypvr succeeded in 41ms:
block 12140 12167
['JUMPDEST', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_87', 'GAS', 'CALL', 'OP_92', 'POP', 'POP', 'POP', 'RETURNDATASIZE', 'OP_80', 'PUSH1', 'OP_81', 'EQ', 'PUSH2', 'JUMPI']
next 12168 12200 ['PUSH1', 'MLOAD', 'OP_91', 'POP', 'PUSH1', 'NOT', 'PUSH1', 'RETURNDATASIZE', 'ADD', 'AND', 'OP_82', 'ADD', 'PUSH1', 'MSTORE', 'RETURNDATASIZE', 'OP_82', 'MSTORE', 'RETURNDATASIZE', 'PUSH1', 'PUSH1', 'OP_84', 'ADD', 'RETURNDATACOPY', 'PUSH2', 'JUMP']
next 12201 12205 ['JUMPDEST', 'PUSH1', 'OP_91', 'POP']
next 12206 12221 ['JUMPDEST', 'POP', 'OP_91', 'POP', 'OP_91', 'POP', 'PUSH2', 'OP_86', 'OP_83', 'OP_83', 'PUSH2', 'JUMP']
next 12222 12231 ['JUMPDEST', 'OP_96', 'OP_95', 'POP', 'POP', 'POP', 'POP', 'POP', 'POP', 'JUMP']
next 12232 12239 ['JUMPDEST', 'PUSH1', 'OP_82', 'PUSH2', 'JUMPI']


thinking
**Analyzing call success and returndatasize checks**

The call result’s success flag appears to be discarded without explicit checking, while the code compares returndatasize to determine flow; this suggests reliance on return data presence rather than call success status.
thinking
**Noting call success discard and inspecting next call**

The CALL at pc 12153 discards the success flag and inspects only returndata size, potentially ignoring failure; next, I'll examine the call block at 7785 for comparison.
exec
/bin/bash -lc "python - <<'PY'
import json
path='BYTECODE_BUNDLE.json'
with open(path) as f:
    data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
for b in blocks:
    if b.get('start_pc') is not None and b['start_pc']<=7788<=b['end_pc']:
        print(b['start_pc'],b['end_pc'],b['opcodes'])
        break
PY" in /tmp/codex-abiqypvr succeeded in 43ms:
7785 7795 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']

thinking
**Planning further block inspection**

I'll examine blocks after 7785 to gather context needed to decide if a revert is necessary.
exec
/bin/bash -lc "python - <<'PY'
import json
path='BYTECODE_BUNDLE.json'
with open(path) as f:
    data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
by_start={b['start_pc']:b for b in blocks if b.get('start_pc') is not None}
starts=sorted(by_start)
# find index for block containing 7788
blk=None
for b in blocks:
    if b.get('start_pc') is not None and b['start_pc']<=7788<=b['end_pc']:
        blk=b
        break
idx=starts.index(blk['start_pc'])
print('block',blk['start_pc'],blk['end_pc'],blk['opcodes'])
for s in starts[idx+1:idx+6]:
    b=by_start[s]
    print('next',b['start_pc'],b['end_pc'],b['opcodes'])
PY" in /tmp/codex-abiqypvr succeeded in 39ms:
block 7785 7795 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
next 7796 7804 ['RETURNDATASIZE', 'PUSH1', 'OP_80', 'RETURNDATACOPY', 'RETURNDATASIZE', 'PUSH1', 'REVERT']
next 7805 7809 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP']
next 7810 7822 ['JUMPDEST', 'POP', 'POP', 'POP', 'PUSH2', 'PUSH1', 'PUSH1', 'SSTORE', 'JUMP']
next 7823 7829 ['JUMPDEST', 'POP', 'POP', 'POP', 'POP', 'POP', 'JUMP']
next 7830 7906 ['JUMPDEST', 'PUSH1', 'PUSH32', 'OP_82', 'AND', 'PUSH32', 'EQ', 'OP_80', 'PUSH2', 'JUMPI']

thinking
**Planning deeper call target analysis**

I'm focusing on tracing the call target at instruction 7788 to determine if it's derived from input or storage, since the call includes enforced success but no guard detection—this could allow ETH transfers if externally reachable. Next, I'll inspect earlier blocks around 7760–7785 using CFG or code inspection for more context.
exec
/bin/bash -lc "python - <<'PY'
import json
path='BYTECODE_BUNDLE.json'
with open(path) as f:
    data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
by_start={b['start_pc']:b for b in blocks if b.get('start_pc') is not None}
starts=sorted(by_start)
# show some blocks before 7785
idx=starts.index(7785)
for s in starts[idx-5:idx+1]:
    b=by_start[s]
    print('block',b['start_pc'],b['end_pc'],b['opcodes'])
PY" in /tmp/codex-abiqypvr succeeded in 40ms:
block 7540 7561 ['JUMPDEST', 'PUSH1', 'MLOAD', 'OP_80', 'OP_91', 'SUB', 'OP_90', 'SHA3', 'OP_89', 'PUSH1', 'MLOAD', 'PUSH2', 'OP_91', 'OP_90', 'PUSH2', 'JUMP']
block 7562 7641 ['JUMPDEST', 'PUSH1', 'OP_80', 'MLOAD', 'OP_91', 'OP_82', 'OP_90', 'SUB', 'OP_82', 'SHA3', 'OP_8B', 'OP_83', 'MSTORE', 'PUSH1', 'OP_83', 'ADD', 'OP_87', 'OP_90', 'MSTORE', 'OP_90', 'OP_82', 'ADD', 'OP_85', 'OP_90', 'MSTORE', 'OP_90', 'PUSH32', 'OP_90', 'PUSH1', 'ADD', 'PUSH1', 'MLOAD', 'OP_80', 'OP_91', 'SUB', 'OP_90', 'OP_A4', 'PUSH2', 'PUSH2', 'JUMP']
block 7642 7647 ['JUMPDEST', 'ISZERO', 'PUSH2', 'JUMPI']
block 7648 7780 ['PUSH1', 'SLOAD', 'PUSH20', 'AND', 'PUSH1', 'MLOAD', 'PUSH32', 'OP_81', 'MSTORE', 'ADDRESS', 'PUSH1', 'OP_82', 'ADD', 'MSTORE', 'PUSH20', 'OP_87', 'OP_81', 'AND', 'PUSH1', 'OP_83', 'ADD', 'MSTORE', 'OP_91', 'OP_90', 'OP_91', 'AND', 'OP_90', 'PUSH4', 'OP_90', 'PUSH1', 'ADD', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'PUSH1', 'OP_87', 'OP_80', 'EXTCODESIZE', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 7781 7784 ['PUSH1', 'OP_80', 'REVERT']
block 7785 7795 ['JUMPDEST', 'POP', 'GAS', 'CALL', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']

thinking
**Analyzing call target sourcing**

The call target comes from a storage slot checked by EXTCODESIZE, implying an external contract address stored on-chain, not user input. There's no clear access control on setting this storage, suggesting potential risk of arbitrary external calls, possibly with ETH value transferred.
exec
/bin/bash -lc "python - <<'PY'
import json
path='BYTECODE_BUNDLE.json'
with open(path) as f:
    data=json.load(f)
blocks=data['analysis_artifact']['artifact_json']['basic_blocks']
by_start={b['start_pc']:b for b in blocks if b.get('start_pc') is not None}
starts=sorted(by_start)
# find block containing 12153
start=None
for b in blocks:
    if b.get('start_pc') is not None and b['start_pc']<=12153<=b['end_pc']:
        start=b['start_pc']
        break
idx=starts.index(start)
for s in starts[idx-5:idx+1]:
    b=by_start[s]
    print('block',b['start_pc'],b['end_pc'],b['opcodes'])
PY" in /tmp/codex-abiqypvr succeeded in 37ms:
block 11988 12007 ['POP', 'OP_80', 'OP_80', 'PUSH1', 'ADD', 'OP_90', 'MLOAD', 'OP_81', 'ADD', 'OP_90', 'PUSH2', 'OP_91', 'OP_90', 'PUSH2', 'JUMP']
block 12008 12009 ['JUMPDEST', 'ISZERO']
block 12010 12015 ['JUMPDEST', 'ISZERO', 'PUSH2', 'JUMPI']
block 12016 12088 ['PUSH1', 'MLOAD', 'PUSH32', 'OP_81', 'MSTORE', 'PUSH20', 'OP_84', 'AND', 'PUSH1', 'OP_82', 'ADD', 'MSTORE', 'PUSH1', 'ADD', 'PUSH2', 'JUMP']
block 12089 12139 ['JUMPDEST', 'PUSH1', 'PUSH2', 'OP_83', 'OP_83', 'PUSH1', 'OP_84', 'PUSH1', 'OP_80', 'OP_85', 'PUSH20', 'AND', 'OP_84', 'OP_86', 'PUSH1', 'MLOAD', 'PUSH2', 'OP_91', 'OP_90', 'PUSH2', 'JUMP']
block 12140 12167 ['JUMPDEST', 'PUSH1', 'PUSH1', 'MLOAD', 'OP_80', 'OP_83', 'SUB', 'OP_81', 'OP_85', 'OP_87', 'GAS', 'CALL', 'OP_92', 'POP', 'POP', 'POP', 'RETURNDATASIZE', 'OP_80', 'PUSH1', 'OP_81', 'EQ', 'PUSH2', 'JUMPI']


thinking
**Analyzing call target trustworthiness**

The call target appears user-controlled from calldata with no clear access control, risking arbitrary external calls or ETH transfers and reentrancy; plan to draft JSON finding detailing severity, categories like reentrancy, and evidence from specific callsites and guards detection.
thinking
**Detailing callsites and reentrancy risks**

I've identified two key findings: (1) a medium-severity reentrancy risk from an external call at pc 0x1e6c followed by a state update at pc 0x1e82 with no guards, and (2) a low-severity issue at pc 0x2f79 where a low-level call to a computed target discards the success flag and relies only on returndata size, creating potential logic inconsistencies; both findings will include precise bytecode locations and nuanced evidence reflecting uncertainty about call target trust.
exec
/bin/bash -lc "python - <<'PY'
print(hex(7788), hex(7810), hex(12153))
PY" in /tmp/codex-abiqypvr succeeded in 47ms:
0x1e6c 0x1e82 0x2f79


thinking
**Crafting detailed JSON output with findings**

I'm preparing structured JSON with two findings including severity, titles, exploit scenarios, recommendations, evidence containing precise program counter info, and locations, all fitting the prescribed schema and with clear summaries reflecting uncertainty where needed.
thinking
**Including uncertainty and guard detection in JSON**
codex
{"no_findings":false,"summary":"Bytecode shows two low-level CALL sites with computed targets/values. One CALL is followed by an SSTORE (effects after interaction), and another CALL’s success handling is unclear. No delegatecall/proxy behavior detected in the bundle.","findings":[{"severity":"medium","category":"reentrancy","title":"External CALL before state update (possible reentrancy if target untrusted)","exploit_scenario":"If the CALL at pc 0x1e6c targets an untrusted contract, that contract can reenter before the subsequent SSTORE executes, potentially exploiting temporarily inconsistent state or bypassing intended sequencing. This risk depends on whether the callee is attacker-controlled (target appears storage-derived).","recommendation":"Follow checks-effects-interactions: move critical state updates before the external CALL, add a reentrancy guard, and restrict/validate the call target if it is configurable.","evidence":"CALL at pc 0x1e6c is followed by an SSTORE in the next block (pc 0x1e82). No guards detected in the bundle. Target is derived from storage with an EXTCODESIZE check earlier in the sequence.","locations":["pc:0x1e6c","pc:0x1e82"]},{"severity":"low","category":"other","title":"Low-level CALL with computed target/value and unclear success enforcement","exploit_scenario":"If the CALL at pc 0x2f79 uses a caller-controlled target/value, the contract could be coerced into arbitrary external calls or ETH transfers. The bytecode sequence appears to discard the CALL success flag and only compares RETURNDATASIZE, so a failed call may be treated as success. Validation indicates a constant self-target in one trace, so the risk is uncertain and may be benign depending on actual target flow.","recommendation":"Validate or whitelist the call target and value, and explicitly check the CALL success flag before proceeding. Handle return data in a way compatible with expected ABI (e.g., require success and accept empty/32-byte returns if calling ERC20s).","evidence":"CALL at pc 0x2f79 with computed target/value; opcodes show CALL followed by SWAP/POP operations and a RETURNDATASIZE equality check. Detector findings report computed target/value and possible ETH value transfer; guards_detected is empty, and validation did not confirm a variable target.","locations":["pc:0x2f79"]}]}
tokens used
55,708
Metadata
{
    "codex": {
        "ran_at": "2026-01-22T04:59:58.407861+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "bytecode",
        "bytecode_length": 28674,
        "bytecode_truncated": false,
        "capability_graph_present": true,
        "analysis_artifact_present": true
    },
    "summary": "Bytecode shows two low-level CALL sites with computed targets/values. One CALL is followed by an SSTORE (effects after interaction), and another CALL\u2019s success handling is unclear. No delegatecall/proxy behavior detected in the bundle.",
    "raw_final": {
        "summary": "Bytecode shows two low-level CALL sites with computed targets/values. One CALL is followed by an SSTORE (effects after interaction), and another CALL\u2019s success handling is unclear. No delegatecall/proxy behavior detected in the bundle.",
        "findings": [
            {
                "title": "External CALL before state update (possible reentrancy if target untrusted)",
                "category": "reentrancy",
                "evidence": "CALL at pc 0x1e6c is followed by an SSTORE in the next block (pc 0x1e82). No guards detected in the bundle. Target is derived from storage with an EXTCODESIZE check earlier in the sequence.",
                "severity": "medium",
                "locations": [
                    "pc:0x1e6c",
                    "pc:0x1e82"
                ],
                "recommendation": "Follow checks-effects-interactions: move critical state updates before the external CALL, add a reentrancy guard, and restrict/validate the call target if it is configurable.",
                "exploit_scenario": "If the CALL at pc 0x1e6c targets an untrusted contract, that contract can reenter before the subsequent SSTORE executes, potentially exploiting temporarily inconsistent state or bypassing intended sequencing. This risk depends on whether the callee is attacker-controlled (target appears storage-derived)."
            },
            {
                "title": "Low-level CALL with computed target/value and unclear success enforcement",
                "category": "other",
                "evidence": "CALL at pc 0x2f79 with computed target/value; opcodes show CALL followed by SWAP/POP operations and a RETURNDATASIZE equality check. Detector findings report computed target/value and possible ETH value transfer; guards_detected is empty, and validation did not confirm a variable target.",
                "severity": "low",
                "locations": [
                    "pc:0x2f79"
                ],
                "recommendation": "Validate or whitelist the call target and value, and explicitly check the CALL success flag before proceeding. Handle return data in a way compatible with expected ABI (e.g., require success and accept empty/32-byte returns if calling ERC20s).",
                "exploit_scenario": "If the CALL at pc 0x2f79 uses a caller-controlled target/value, the contract could be coerced into arbitrary external calls or ETH transfers. The bytecode sequence appears to discard the CALL success flag and only compares RETURNDATASIZE, so a failed call may be treated as success. Validation indicates a constant self-target in one trace, so the risk is uncertain and may be benign depending on actual target flow."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
3
Total opcodes
6332
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0338
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x72db749d
00000019: GT
0000001a: PUSH2 0x01b0
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xa0929cda
00000024: GT
00000025: PUSH2 0x00ec
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xced72f87
0000002f: GT
00000030: PUSH2 0x0095
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xd73792a9
0000003a: GT
0000003b: PUSH2 0x006f
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xd73792a9
00000045: EQ
00000046: PUSH2 0x0a8b
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xe7b0610f
00000050: EQ
00000051: PUSH2 0x0aa1
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xf2225e1e
0000005b: EQ
0000005c: PUSH2 0x0abe
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xf7e80312
00000066: EQ
00000067: PUSH2 0x0ade
0000006a: JUMPI
0000006b: PUSH2 0x03ca
0000006e: JUMP
0000006f: JUMPDEST
00000070: DUP1
00000071: PUSH4 0xced72f87
00000076: EQ
00000077: PUSH2 0x0a41
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xd431b1ac
00000081: EQ
00000082: PUSH2 0x0a56
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xd547741f
0000008c: EQ
0000008d: PUSH2 0x0a6b
00000090: JUMPI
00000091: PUSH2 0x03ca
00000094: JUMP
00000095: JUMPDEST
00000096: DUP1
00000097: PUSH4 0xa9c53252
0000009c: GT
0000009d: PUSH2 0x00c6
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0xa9c53252
000000a7: EQ
000000a8: PUSH2 0x09de
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xca15c873
000000b2: EQ
000000b3: PUSH2 0x0a0e
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xcdd6554e
000000bd: EQ
000000be: PUSH2 0x0a2e
000000c1: JUMPI
000000c2: PUSH2 0x03ca
000000c5: JUMP
000000c6: JUMPDEST
000000c7: DUP1
000000c8: PUSH4 0xa0929cda
000000cd: EQ
000000ce: PUSH2 0x0994
000000d1: JUMPI
000000d2: DUP1
000000d3: PUSH4 0xa217fddf
000000d8: EQ
000000d9: PUSH2 0x09b4
000000dc: JUMPI
000000dd: DUP1
000000de: PUSH4 0xa6b27314
000000e3: EQ
000000e4: PUSH2 0x09c9
000000e7: JUMPI
000000e8: PUSH2 0x03ca
000000eb: JUMP
000000ec: JUMPDEST
000000ed: DUP1
000000ee: PUSH4 0x848cb5c6
000000f3: GT
000000f4: PUSH2 0x0159
000000f7: JUMPI
000000f8: DUP1
000000f9: PUSH4 0x91d14854
000000fe: GT
000000ff: PUSH2 0x0133
00000102: JUMPI
00000103: DUP1
00000104: PUSH4 0x91d14854
00000109: EQ
0000010a: PUSH2 0x08eb
0000010d: JUMPI
0000010e: DUP1
0000010f: PUSH4 0x93c7357f
00000114: EQ
00000115: PUSH2 0x093c
00000118: JUMPI
00000119: DUP1
0000011a: PUSH4 0x99959cb5
0000011f: EQ
00000120: PUSH2 0x095c
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x9a574538
0000012a: EQ
0000012b: PUSH2 0x0974
0000012e: JUMPI
0000012f: PUSH2 0x03ca
00000132: JUMP
00000133: JUMPDEST
00000134: DUP1
00000135: PUSH4 0x848cb5c6
0000013a: EQ
0000013b: PUSH2 0x0896
0000013e: JUMPI
0000013f: DUP1
00000140: PUSH4 0x8705fcd4
00000145: EQ
00000146: PUSH2 0x08ab
00000149: JUMPI
0000014a: DUP1
0000014b: PUSH4 0x9010d07c
00000150: EQ
00000151: PUSH2 0x08cb
00000154: JUMPI
00000155: PUSH2 0x03ca
00000158: JUMP
00000159: JUMPDEST
0000015a: DUP1
0000015b: PUSH4 0x7a051cc8
00000160: GT
00000161: PUSH2 0x018a
00000164: JUMPI
00000165: DUP1
00000166: PUSH4 0x7a051cc8
0000016b: EQ
0000016c: PUSH2 0x0836
0000016f: JUMPI
00000170: DUP1
00000171: PUSH4 0x7f57237d
00000176: EQ
00000177: PUSH2 0x0856
0000017a: JUMPI
0000017b: DUP1
0000017c: PUSH4 0x80828156
00000181: EQ
00000182: PUSH2 0x0881
00000185: JUMPI
00000186: PUSH2 0x03ca
00000189: JUMP
0000018a: JUMPDEST
0000018b: DUP1
0000018c: PUSH4 0x72db749d
00000191: EQ
00000192: PUSH2 0x07c2
00000195: JUMPI
00000196: DUP1
00000197: PUSH4 0x776e10b1
0000019c: EQ
0000019d: PUSH2 0x07e2
000001a0: JUMPI
000001a1: DUP1
000001a2: PUSH4 0x797669c9
000001a7: EQ
000001a8: PUSH2 0x0802
000001ab: JUMPI
000001ac: PUSH2 0x03ca
000001af: JUMP
000001b0: JUMPDEST
000001b1: DUP1
000001b2: PUSH4 0x392e53cd
000001b7: GT
000001b8: PUSH2 0x027f
000001bb: JUMPI
000001bc: DUP1
000001bd: PUSH4 0x59694be6
000001c2: GT
000001c3: PUSH2 0x0228
000001c6: JUMPI
000001c7: DUP1
000001c8: PUSH4 0x5e4b5f7d
000001cd: GT
000001ce: PUSH2 0x0202
000001d1: JUMPI
000001d2: DUP1
000001d3: PUSH4 0x5e4b5f7d
000001d8: EQ
000001d9: PUSH2 0x074d
000001dc: JUMPI
000001dd: DUP1
000001de: PUSH4 0x605b4223
000001e3: EQ
000001e4: PUSH2 0x076d
000001e7: JUMPI
000001e8: DUP1
000001e9: PUSH4 0x66b8042d
000001ee: EQ
000001ef: PUSH2 0x078d
000001f2: JUMPI
000001f3: DUP1
000001f4: PUSH4 0x69fe0e2d
000001f9: EQ
000001fa: PUSH2 0x07a2
000001fd: JUMPI
000001fe: PUSH2 0x03ca
00000201: JUMP
00000202: JUMPDEST
00000203: DUP1
00000204: PUSH4 0x59694be6
00000209: EQ
0000020a: PUSH2 0x06f0
0000020d: JUMPI
0000020e: DUP1
0000020f: PUSH4 0x5a6ba496
00000214: EQ
00000215: PUSH2 0x0710
00000218: JUMPI
00000219: DUP1
0000021a: PUSH4 0x5c975abb
0000021f: EQ
00000220: PUSH2 0x0730
00000223: JUMPI
00000224: PUSH2 0x03ca
00000227: JUMP
00000228: JUMPDEST
00000229: DUP1
0000022a: PUSH4 0x50017f3e
0000022f: GT
00000230: PUSH2 0x0259
00000233: JUMPI
00000234: DUP1
00000235: PUSH4 0x50017f3e
0000023a: EQ
0000023b: PUSH2 0x0690
0000023e: JUMPI
0000023f: DUP1
00000240: PUSH4 0x5149dc42
00000245: EQ
00000246: PUSH2 0x06b0
00000249: JUMPI
0000024a: DUP1
0000024b: PUSH4 0x52ca9f74
00000250: EQ
00000251: PUSH2 0x06d0
00000254: JUMPI
00000255: PUSH2 0x03ca
00000258: JUMP
00000259: JUMPDEST
0000025a: DUP1
0000025b: PUSH4 0x392e53cd
00000260: EQ
00000261: PUSH2 0x062d
00000264: JUMPI
00000265: DUP1
00000266: PUSH4 0x4a95b337
0000026b: EQ
0000026c: PUSH2 0x0645
0000026f: JUMPI
00000270: DUP1
00000271: PUSH4 0x4e7ceacb
00000276: EQ
00000277: PUSH2 0x0665
0000027a: JUMPI
0000027b: PUSH2 0x03ca
0000027e: JUMP
0000027f: JUMPDEST
00000280: DUP1
00000281: PUSH4 0x12065fe0
00000286: GT
00000287: PUSH2 0x02e1
0000028a: JUMPI
0000028b: DUP1
0000028c: PUSH4 0x2f2ff15d
00000291: GT
00000292: PUSH2 0x02bb
00000295: JUMPI
00000296: DUP1
00000297: PUSH4 0x2f2ff15d
0000029c: EQ
0000029d: PUSH2 0x05d8
000002a0: JUMPI
000002a1: DUP1
000002a2: PUSH4 0x3408e470
000002a7: EQ
000002a8: PUSH2 0x05f8
000002ab: JUMPI
000002ac: DUP1
000002ad: PUSH4 0x36568abe
000002b2: EQ
000002b3: PUSH2 0x060d
000002b6: JUMPI
000002b7: PUSH2 0x03ca
000002ba: JUMP
000002bb: JUMPDEST
000002bc: DUP1
000002bd: PUSH4 0x12065fe0
000002c2: EQ
000002c3: PUSH2 0x0573
000002c6: JUMPI
000002c7: DUP1
000002c8: PUSH4 0x1383f9e1
000002cd: EQ
000002ce: PUSH2 0x0588
000002d1: JUMPI
000002d2: DUP1
000002d3: PUSH4 0x248a9ca3
000002d8: EQ
000002d9: PUSH2 0x05a8
000002dc: JUMPI
000002dd: PUSH2 0x03ca
000002e0: JUMP
000002e1: JUMPDEST
000002e2: DUP1
000002e3: PUSH4 0x0cd236fd
000002e8: GT
000002e9: PUSH2 0x0312
000002ec: JUMPI
000002ed: DUP1
000002ee: PUSH4 0x0cd236fd
000002f3: EQ
000002f4: PUSH2 0x04da
000002f7: JUMPI
000002f8: DUP1
000002f9: PUSH4 0x0fff9ceb
000002fe: EQ
000002ff: PUSH2 0x0526
00000302: JUMPI
00000303: DUP1
00000304: PUSH4 0x10fe9ae8
00000309: EQ
0000030a: PUSH2 0x0548
0000030d: JUMPI
0000030e: PUSH2 0x03ca
00000311: JUMP
00000312: JUMPDEST
00000313: DUP1
00000314: PUSH4 0x01ffc9a7
00000319: EQ
0000031a: PUSH2 0x0452
0000031d: JUMPI
0000031e: DUP1
0000031f: PUSH4 0x04c2e308
00000324: EQ
00000325: PUSH2 0x0487
00000328: JUMPI
00000329: DUP1
0000032a: PUSH4 0x07cc8039
0000032f: EQ
00000330: PUSH2 0x04a6
00000333: JUMPI
00000334: PUSH2 0x03ca
00000337: JUMP
00000338: JUMPDEST
00000339: CALLDATASIZE
0000033a: PUSH2 0x03ca
0000033d: JUMPI
0000033e: PUSH1 0x40
00000340: MLOAD
00000341: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000362: DUP2
00000363: MSTORE
00000364: PUSH1 0x20
00000366: PUSH1 0x04
00000368: DUP3
00000369: ADD
0000036a: MSTORE
0000036b: PUSH1 0x35
0000036d: PUSH1 0x24
0000036f: DUP3
00000370: ADD
00000371: MSTORE
00000372: PUSH32 0x5468697320636f6e747261637420646f6573206e6f7420616363657074206469
00000393: PUSH1 0x44
00000395: DUP3
00000396: ADD
00000397: MSTORE
00000398: PUSH32 0x726563742076616c7565207472616e7366657273210000000000000000000000
000003b9: PUSH1 0x64
000003bb: DUP3
000003bc: ADD
000003bd: MSTORE
000003be: PUSH1 0x84
000003c0: ADD
000003c1: JUMPDEST
000003c2: PUSH1 0x40
000003c4: MLOAD
000003c5: DUP1
000003c6: SWAP2
000003c7: SUB
000003c8: SWAP1
000003c9: REVERT
000003ca: JUMPDEST
000003cb: PUSH1 0x40
000003cd: MLOAD
000003ce: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000003ef: DUP2
000003f0: MSTORE
000003f1: PUSH1 0x20
000003f3: PUSH1 0x04
000003f5: DUP3
000003f6: ADD
000003f7: MSTORE
000003f8: PUSH1 0x35
000003fa: PUSH1 0x24
000003fc: DUP3
000003fd: ADD
000003fe: MSTORE
000003ff: PUSH32 0x5468697320636f6e747261637420646f6573206e6f7420616363657074206469
00000420: PUSH1 0x44
00000422: DUP3
00000423: ADD
00000424: MSTORE
00000425: PUSH32 0x726563742076616c7565207472616e7366657273210000000000000000000000
00000446: PUSH1 0x64
00000448: DUP3
00000449: ADD
0000044a: MSTORE
0000044b: PUSH1 0x84
0000044d: ADD
0000044e: PUSH2 0x03c1
00000451: JUMP
00000452: JUMPDEST
00000453: CALLVALUE
00000454: DUP1
00000455: ISZERO
00000456: PUSH2 0x045e
00000459: JUMPI
0000045a: PUSH1 0x00
0000045c: DUP1
0000045d: REVERT
0000045e: JUMPDEST
0000045f: POP
00000460: PUSH2 0x0472
00000463: PUSH2 0x046d
00000466: CALLDATASIZE
00000467: PUSH1 0x04
00000469: PUSH2 0x3099
0000046c: JUMP
0000046d: JUMPDEST
0000046e: PUSH2 0x0afe
00000471: JUMP
00000472: JUMPDEST
00000473: PUSH1 0x40
00000475: MLOAD
00000476: SWAP1
00000477: ISZERO
00000478: ISZERO
00000479: DUP2
0000047a: MSTORE
0000047b: PUSH1 0x20
0000047d: ADD
0000047e: JUMPDEST
0000047f: PUSH1 0x40
00000481: MLOAD
00000482: DUP1
00000483: SWAP2
00000484: SUB
00000485: SWAP1
00000486: RETURN
00000487: JUMPDEST
00000488: CALLVALUE
00000489: DUP1
0000048a: ISZERO
0000048b: PUSH2 0x0493
0000048e: JUMPI
0000048f: PUSH1 0x00
00000491: DUP1
00000492: REVERT
00000493: JUMPDEST
00000494: POP
00000495: PUSH1 0x0e
00000497: SLOAD
00000498: JUMPDEST
00000499: PUSH1 0x40
0000049b: MLOAD
0000049c: SWAP1
0000049d: DUP2
0000049e: MSTORE
0000049f: PUSH1 0x20
000004a1: ADD
000004a2: PUSH2 0x047e
000004a5: JUMP
000004a6: JUMPDEST
000004a7: CALLVALUE
000004a8: DUP1
000004a9: ISZERO
000004aa: PUSH2 0x04b2
000004ad: JUMPI
000004ae: PUSH1 0x00
000004b0: DUP1
000004b1: REVERT
000004b2: JUMPDEST
000004b3: POP
000004b4: PUSH2 0x0498
000004b7: PUSH32 0x3a68886f0fdd43fd745090961de493dbef78fedcafd00c2109b3f906c62707c8
000004d8: DUP2
000004d9: JUMP
000004da: JUMPDEST
000004db: CALLVALUE
000004dc: DUP1
000004dd: ISZERO
000004de: PUSH2 0x04e6
000004e1: JUMPI
000004e2: PUSH1 0x00
000004e4: DUP1
000004e5: REVERT
000004e6: JUMPDEST
000004e7: POP
000004e8: PUSH1 0x10
000004ea: SLOAD
000004eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000500: AND
00000501: JUMPDEST
00000502: PUSH1 0x40
00000504: MLOAD
00000505: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000051a: SWAP1
0000051b: SWAP2
0000051c: AND
0000051d: DUP2
0000051e: MSTORE
0000051f: PUSH1 0x20
00000521: ADD
00000522: PUSH2 0x047e
00000525: JUMP
00000526: JUMPDEST
00000527: CALLVALUE
00000528: DUP1
00000529: ISZERO
0000052a: PUSH2 0x0532
0000052d: JUMPI
0000052e: PUSH1 0x00
00000530: DUP1
00000531: REVERT
00000532: JUMPDEST
00000533: POP
00000534: PUSH2 0x0546
00000537: PUSH2 0x0541
0000053a: CALLDATASIZE
0000053b: PUSH1 0x04
0000053d: PUSH2 0x31b5
00000540: JUMP
00000541: JUMPDEST
00000542: PUSH2 0x0b5a
00000545: JUMP
00000546: JUMPDEST
00000547: STOP
00000548: JUMPDEST
00000549: CALLVALUE
0000054a: DUP1
0000054b: ISZERO
0000054c: PUSH2 0x0554
0000054f: JUMPI
00000550: PUSH1 0x00
00000552: DUP1
00000553: REVERT
00000554: JUMPDEST
00000555: POP
00000556: PUSH1 0x0d
00000558: SLOAD
00000559: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000056e: AND
0000056f: PUSH2 0x0501
00000572: JUMP
00000573: JUMPDEST
00000574: CALLVALUE
00000575: DUP1
00000576: ISZERO
00000577: PUSH2 0x057f
0000057a: JUMPI
0000057b: PUSH1 0x00
0000057d: DUP1
0000057e: REVERT
0000057f: JUMPDEST
00000580: POP
00000581: PUSH2 0x0498
00000584: PUSH2 0x0c57
00000587: JUMP
00000588: JUMPDEST
00000589: CALLVALUE
0000058a: DUP1
0000058b: ISZERO
0000058c: PUSH2 0x0594
0000058f: JUMPI
00000590: PUSH1 0x00
00000592: DUP1
00000593: REVERT
00000594: JUMPDEST
00000595: POP
00000596: PUSH2 0x0472
00000599: PUSH2 0x05a3
0000059c: CALLDATASIZE
0000059d: PUSH1 0x04
0000059f: PUSH2 0x31fa
000005a2: JUMP
000005a3: JUMPDEST
000005a4: PUSH2 0x0cef
000005a7: JUMP
000005a8: JUMPDEST
000005a9: CALLVALUE
000005aa: DUP1
000005ab: ISZERO
000005ac: PUSH2 0x05b4
000005af: JUMPI
000005b0: PUSH1 0x00
000005b2: DUP1
000005b3: REVERT
000005b4: JUMPDEST
000005b5: POP
000005b6: PUSH2 0x0498
000005b9: PUSH2 0x05c3
000005bc: CALLDATASIZE
000005bd: PUSH1 0x04
000005bf: PUSH2 0x3237
000005c2: JUMP
000005c3: JUMPDEST
000005c4: PUSH1 0x00
000005c6: SWAP1
000005c7: DUP2
000005c8: MSTORE
000005c9: PUSH1 0x20
000005cb: DUP2
000005cc: SWAP1
000005cd: MSTORE
000005ce: PUSH1 0x40
000005d0: SWAP1
000005d1: KECCAK256
000005d2: PUSH1 0x01
000005d4: ADD
000005d5: SLOAD
000005d6: SWAP1
000005d7: JUMP
000005d8: JUMPDEST
000005d9: CALLVALUE
000005da: DUP1
000005db: ISZERO
000005dc: PUSH2 0x05e4
000005df: JUMPI
000005e0: PUSH1 0x00
000005e2: DUP1
000005e3: REVERT
000005e4: JUMPDEST
000005e5: POP
000005e6: PUSH2 0x0546
000005e9: PUSH2 0x05f3
000005ec: CALLDATASIZE
000005ed: PUSH1 0x04
000005ef: PUSH2 0x3282
000005f2: JUMP
000005f3: JUMPDEST
000005f4: PUSH2 0x0d1a
000005f7: JUMP
000005f8: JUMPDEST
000005f9: CALLVALUE
000005fa: DUP1
000005fb: ISZERO
000005fc: PUSH2 0x0604
000005ff: JUMPI
00000600: PUSH1 0x00
00000602: DUP1
00000603: REVERT
00000604: JUMPDEST
00000605: POP
00000606: PUSH1 0x04
00000608: SLOAD
00000609: PUSH2 0x0498
0000060c: JUMP
0000060d: JUMPDEST
0000060e: CALLVALUE
0000060f: DUP1
00000610: ISZERO
00000611: PUSH2 0x0619
00000614: JUMPI
00000615: PUSH1 0x00
00000617: DUP1
00000618: REVERT
00000619: JUMPDEST
0000061a: POP
0000061b: PUSH2 0x0546
0000061e: PUSH2 0x0628
00000621: CALLDATASIZE
00000622: PUSH1 0x04
00000624: PUSH2 0x3282
00000627: JUMP
00000628: JUMPDEST
00000629: PUSH2 0x0d45
0000062c: JUMP
0000062d: JUMPDEST
0000062e: CALLVALUE
0000062f: DUP1
00000630: ISZERO
00000631: PUSH2 0x0639
00000634: JUMPI
00000635: PUSH1 0x00
00000637: DUP1
00000638: REVERT
00000639: JUMPDEST
0000063a: POP
0000063b: PUSH1 0x03
0000063d: SLOAD
0000063e: PUSH1 0xff
00000640: AND
00000641: PUSH2 0x0472
00000644: JUMP
00000645: JUMPDEST
00000646: CALLVALUE
00000647: DUP1
00000648: ISZERO
00000649: PUSH2 0x0651
0000064c: JUMPI
0000064d: PUSH1 0x00
0000064f: DUP1
00000650: REVERT
00000651: JUMPDEST
00000652: POP
00000653: PUSH2 0x0546
00000656: PUSH2 0x0660
00000659: CALLDATASIZE
0000065a: PUSH1 0x04
0000065c: PUSH2 0x32b2
0000065f: JUMP
00000660: JUMPDEST
00000661: PUSH2 0x0da3
00000664: JUMP
00000665: JUMPDEST
00000666: CALLVALUE
00000667: DUP1
00000668: ISZERO
00000669: PUSH2 0x0671
0000066c: JUMPI
0000066d: PUSH1 0x00
0000066f: DUP1
00000670: REVERT
00000671: JUMPDEST
00000672: POP
00000673: PUSH1 0x08
00000675: SLOAD
00000676: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000068b: AND
0000068c: PUSH2 0x0501
0000068f: JUMP
00000690: JUMPDEST
00000691: CALLVALUE
00000692: DUP1
00000693: ISZERO
00000694: PUSH2 0x069c
00000697: JUMPI
00000698: PUSH1 0x00
0000069a: DUP1
0000069b: REVERT
0000069c: JUMPDEST
0000069d: POP
0000069e: PUSH2 0x0546
000006a1: PUSH2 0x06ab
000006a4: CALLDATASIZE
000006a5: PUSH1 0x04
000006a7: PUSH2 0x3237
000006aa: JUMP
000006ab: JUMPDEST
000006ac: PUSH2 0x0ebd
000006af: JUMP
000006b0: JUMPDEST
000006b1: CALLVALUE
000006b2: DUP1
000006b3: ISZERO
000006b4: PUSH2 0x06bc
000006b7: JUMPI
000006b8: PUSH1 0x00
000006ba: DUP1
000006bb: REVERT
000006bc: JUMPDEST
000006bd: POP
000006be: PUSH2 0x0546
000006c1: PUSH2 0x06cb
000006c4: CALLDATASIZE
000006c5: PUSH1 0x04
000006c7: PUSH2 0x3237
000006ca: JUMP
000006cb: JUMPDEST
000006cc: PUSH2 0x0f2c
000006cf: JUMP
000006d0: JUMPDEST
000006d1: CALLVALUE
000006d2: DUP1
000006d3: ISZERO
000006d4: PUSH2 0x06dc
000006d7: JUMPI
000006d8: PUSH1 0x00
000006da: DUP1
000006db: REVERT
000006dc: JUMPDEST
000006dd: POP
000006de: PUSH2 0x0546
000006e1: PUSH2 0x06eb
000006e4: CALLDATASIZE
000006e5: PUSH1 0x04
000006e7: PUSH2 0x32dd
000006ea: JUMP
000006eb: JUMPDEST
000006ec: PUSH2 0x1037
000006ef: JUMP
000006f0: JUMPDEST
000006f1: CALLVALUE
000006f2: DUP1
000006f3: ISZERO
000006f4: PUSH2 0x06fc
000006f7: JUMPI
000006f8: PUSH1 0x00
000006fa: DUP1
000006fb: REVERT
000006fc: JUMPDEST
000006fd: POP
000006fe: PUSH2 0x0546
00000701: PUSH2 0x070b
00000704: CALLDATASIZE
00000705: PUSH1 0x04
00000707: PUSH2 0x32fa
0000070a: JUMP
0000070b: JUMPDEST
0000070c: PUSH2 0x10ba
0000070f: JUMP
00000710: JUMPDEST
00000711: CALLVALUE
00000712: DUP1
00000713: ISZERO
00000714: PUSH2 0x071c
00000717: JUMPI
00000718: PUSH1 0x00
0000071a: DUP1
0000071b: REVERT
0000071c: JUMPDEST
0000071d: POP
0000071e: PUSH2 0x0546
00000721: PUSH2 0x072b
00000724: CALLDATASIZE
00000725: PUSH1 0x04
00000727: PUSH2 0x32dd
0000072a: JUMP
0000072b: JUMPDEST
0000072c: PUSH2 0x11ec
0000072f: JUMP
00000730: JUMPDEST
00000731: CALLVALUE
00000732: DUP1
00000733: ISZERO
00000734: PUSH2 0x073c
00000737: JUMPI
00000738: PUSH1 0x00
0000073a: DUP1
0000073b: REVERT
0000073c: JUMPDEST
0000073d: POP
0000073e: PUSH1 0x03
00000740: SLOAD
00000741: PUSH2 0x0100
00000744: SWAP1
00000745: DIV
00000746: PUSH1 0xff
00000748: AND
00000749: PUSH2 0x0472
0000074c: JUMP
0000074d: JUMPDEST
0000074e: CALLVALUE
0000074f: DUP1
00000750: ISZERO
00000751: PUSH2 0x0759
00000754: JUMPI
00000755: PUSH1 0x00
00000757: DUP1
00000758: REVERT
00000759: JUMPDEST
0000075a: POP
0000075b: PUSH2 0x0546
0000075e: PUSH2 0x0768
00000761: CALLDATASIZE
00000762: PUSH1 0x04
00000764: PUSH2 0x32b2
00000767: JUMP
00000768: JUMPDEST
00000769: PUSH2 0x1263
0000076c: JUMP
0000076d: JUMPDEST
0000076e: CALLVALUE
0000076f: DUP1
00000770: ISZERO
00000771: PUSH2 0x0779
00000774: JUMPI
00000775: PUSH1 0x00
00000777: DUP1
00000778: REVERT
00000779: JUMPDEST
0000077a: POP
0000077b: PUSH2 0x0498
0000077e: PUSH2 0x0788
00000781: CALLDATASIZE
00000782: PUSH1 0x04
00000784: PUSH2 0x3237
00000787: JUMP
00000788: JUMPDEST
00000789: PUSH2 0x12bd
0000078c: JUMP
0000078d: JUMPDEST
0000078e: CALLVALUE
0000078f: DUP1
00000790: ISZERO
00000791: PUSH2 0x0799
00000794: JUMPI
00000795: PUSH1 0x00
00000797: DUP1
00000798: REVERT
00000799: JUMPDEST
0000079a: POP
0000079b: PUSH1 0x05
0000079d: SLOAD
0000079e: PUSH2 0x0498
000007a1: JUMP
000007a2: JUMPDEST
000007a3: CALLVALUE
000007a4: DUP1
000007a5: ISZERO
000007a6: PUSH2 0x07ae
000007a9: JUMPI
000007aa: PUSH1 0x00
000007ac: DUP1
000007ad: REVERT
000007ae: JUMPDEST
000007af: POP
000007b0: PUSH2 0x0546
000007b3: PUSH2 0x07bd
000007b6: CALLDATASIZE
000007b7: PUSH1 0x04
000007b9: PUSH2 0x3237
000007bc: JUMP
000007bd: JUMPDEST
000007be: PUSH2 0x12e2
000007c1: JUMP
000007c2: JUMPDEST
000007c3: CALLVALUE
000007c4: DUP1
000007c5: ISZERO
000007c6: PUSH2 0x07ce
000007c9: JUMPI
000007ca: PUSH1 0x00
000007cc: DUP1
000007cd: REVERT
000007ce: JUMPDEST
000007cf: POP
000007d0: PUSH2 0x0498
000007d3: PUSH2 0x07dd
000007d6: CALLDATASIZE
000007d7: PUSH1 0x04
000007d9: PUSH2 0x31fa
000007dc: JUMP
000007dd: JUMPDEST
000007de: PUSH2 0x1350
000007e1: JUMP
000007e2: JUMPDEST
000007e3: CALLVALUE
000007e4: DUP1
000007e5: ISZERO
000007e6: PUSH2 0x07ee
000007e9: JUMPI
000007ea: PUSH1 0x00
000007ec: DUP1
000007ed: REVERT
000007ee: JUMPDEST
000007ef: POP
000007f0: PUSH2 0x0546
000007f3: PUSH2 0x07fd
000007f6: CALLDATASIZE
000007f7: PUSH1 0x04
000007f9: PUSH2 0x32dd
000007fc: JUMP
000007fd: JUMPDEST
000007fe: PUSH2 0x1378
00000801: JUMP
00000802: JUMPDEST
00000803: CALLVALUE
00000804: DUP1
00000805: ISZERO
00000806: PUSH2 0x080e
00000809: JUMPI
0000080a: PUSH1 0x00
0000080c: DUP1
0000080d: REVERT
0000080e: JUMPDEST
0000080f: POP
00000810: PUSH2 0x0498
00000813: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
00000834: DUP2
00000835: JUMP
00000836: JUMPDEST
00000837: CALLVALUE
00000838: DUP1
00000839: ISZERO
0000083a: PUSH2 0x0842
0000083d: JUMPI
0000083e: PUSH1 0x00
00000840: DUP1
00000841: REVERT
00000842: JUMPDEST
00000843: POP
00000844: PUSH2 0x0546
00000847: PUSH2 0x0851
0000084a: CALLDATASIZE
0000084b: PUSH1 0x04
0000084d: PUSH2 0x3237
00000850: JUMP
00000851: JUMPDEST
00000852: PUSH2 0x1493
00000855: JUMP
00000856: JUMPDEST
00000857: CALLVALUE
00000858: DUP1
00000859: ISZERO
0000085a: PUSH2 0x0862
0000085d: JUMPI
0000085e: PUSH1 0x00
00000860: DUP1
00000861: REVERT
00000862: JUMPDEST
00000863: POP
00000864: PUSH1 0x09
00000866: SLOAD
00000867: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000087c: AND
0000087d: PUSH2 0x0501
00000880: JUMP
00000881: JUMPDEST
00000882: CALLVALUE
00000883: DUP1
00000884: ISZERO
00000885: PUSH2 0x088d
00000888: JUMPI
00000889: PUSH1 0x00
0000088b: DUP1
0000088c: REVERT
0000088d: JUMPDEST
0000088e: POP
0000088f: PUSH2 0x0472
00000892: PUSH2 0x14ff
00000895: JUMP
00000896: JUMPDEST
00000897: CALLVALUE
00000898: DUP1
00000899: ISZERO
0000089a: PUSH2 0x08a2
0000089d: JUMPI
0000089e: PUSH1 0x00
000008a0: DUP1
000008a1: REVERT
000008a2: JUMPDEST
000008a3: POP
000008a4: PUSH2 0x0546
000008a7: PUSH2 0x1546
000008aa: JUMP
000008ab: JUMPDEST
000008ac: CALLVALUE
000008ad: DUP1
000008ae: ISZERO
000008af: PUSH2 0x08b7
000008b2: JUMPI
000008b3: PUSH1 0x00
000008b5: DUP1
000008b6: REVERT
000008b7: JUMPDEST
000008b8: POP
000008b9: PUSH2 0x0546
000008bc: PUSH2 0x08c6
000008bf: CALLDATASIZE
000008c0: PUSH1 0x04
000008c2: PUSH2 0x32b2
000008c5: JUMP
000008c6: JUMPDEST
000008c7: PUSH2 0x155c
000008ca: JUMP
000008cb: JUMPDEST
000008cc: CALLVALUE
000008cd: DUP1
000008ce: ISZERO
000008cf: PUSH2 0x08d7
000008d2: JUMPI
000008d3: PUSH1 0x00
000008d5: DUP1
000008d6: REVERT
000008d7: JUMPDEST
000008d8: POP
000008d9: PUSH2 0x0501
000008dc: PUSH2 0x08e6
000008df: CALLDATASIZE
000008e0: PUSH1 0x04
000008e2: PUSH2 0x33c6
000008e5: JUMP
000008e6: JUMPDEST
000008e7: PUSH2 0x15e3
000008ea: JUMP
000008eb: JUMPDEST
000008ec: CALLVALUE
000008ed: DUP1
000008ee: ISZERO
000008ef: PUSH2 0x08f7
000008f2: JUMPI
000008f3: PUSH1 0x00
000008f5: DUP1
000008f6: REVERT
000008f7: JUMPDEST
000008f8: POP
000008f9: PUSH2 0x0472
000008fc: PUSH2 0x0906
000008ff: CALLDATASIZE
00000900: PUSH1 0x04
00000902: PUSH2 0x3282
00000905: JUMP
00000906: JUMPDEST
00000907: PUSH1 0x00
00000909: SWAP2
0000090a: DUP3
0000090b: MSTORE
0000090c: PUSH1 0x20
0000090e: DUP3
0000090f: DUP2
00000910: MSTORE
00000911: PUSH1 0x40
00000913: DUP1
00000914: DUP5
00000915: KECCAK256
00000916: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000092b: SWAP4
0000092c: SWAP1
0000092d: SWAP4
0000092e: AND
0000092f: DUP5
00000930: MSTORE
00000931: SWAP2
00000932: SWAP1
00000933: MSTORE
00000934: SWAP1
00000935: KECCAK256
00000936: SLOAD
00000937: PUSH1 0xff
00000939: AND
0000093a: SWAP1
0000093b: JUMP
0000093c: JUMPDEST
0000093d: CALLVALUE
0000093e: DUP1
0000093f: ISZERO
00000940: PUSH2 0x0948
00000943: JUMPI
00000944: PUSH1 0x00
00000946: DUP1
00000947: REVERT
00000948: JUMPDEST
00000949: POP
0000094a: PUSH2 0x0498
0000094d: PUSH2 0x0957
00000950: CALLDATASIZE
00000951: PUSH1 0x04
00000953: PUSH2 0x3237
00000956: JUMP
00000957: JUMPDEST
00000958: PUSH2 0x1602
0000095b: JUMP
0000095c: JUMPDEST
0000095d: CALLVALUE
0000095e: DUP1
0000095f: ISZERO
00000960: PUSH2 0x0968
00000963: JUMPI
00000964: PUSH1 0x00
00000966: DUP1
00000967: REVERT
00000968: JUMPDEST
00000969: POP
0000096a: PUSH1 0x06
0000096c: SLOAD
0000096d: PUSH1 0xff
0000096f: AND
00000970: PUSH2 0x0472
00000973: JUMP
00000974: JUMPDEST
00000975: CALLVALUE
00000976: DUP1
00000977: ISZERO
00000978: PUSH2 0x0980
0000097b: JUMPI
0000097c: PUSH1 0x00
0000097e: DUP1
0000097f: REVERT
00000980: JUMPDEST
00000981: POP
00000982: PUSH2 0x0546
00000985: PUSH2 0x098f
00000988: CALLDATASIZE
00000989: PUSH1 0x04
0000098b: PUSH2 0x33e8
0000098e: JUMP
0000098f: JUMPDEST
00000990: PUSH2 0x1610
00000993: JUMP
00000994: JUMPDEST
00000995: CALLVALUE
00000996: DUP1
00000997: ISZERO
00000998: PUSH2 0x09a0
0000099b: JUMPI
0000099c: PUSH1 0x00
0000099e: DUP1
0000099f: REVERT
000009a0: JUMPDEST
000009a1: POP
000009a2: PUSH2 0x0472
000009a5: PUSH2 0x09af
000009a8: CALLDATASIZE
000009a9: PUSH1 0x04
000009ab: PUSH2 0x342f
000009ae: JUMP
000009af: JUMPDEST
000009b0: PUSH2 0x1749
000009b3: JUMP
000009b4: JUMPDEST
000009b5: CALLVALUE
000009b6: DUP1
000009b7: ISZERO
000009b8: PUSH2 0x09c0
000009bb: JUMPI
000009bc: PUSH1 0x00
000009be: DUP1
000009bf: REVERT
000009c0: JUMPDEST
000009c1: POP
000009c2: PUSH2 0x0498
000009c5: PUSH1 0x00
000009c7: DUP2
000009c8: JUMP
000009c9: JUMPDEST
000009ca: CALLVALUE
000009cb: DUP1
000009cc: ISZERO
000009cd: PUSH2 0x09d5
000009d0: JUMPI
000009d1: PUSH1 0x00
000009d3: DUP1
000009d4: REVERT
000009d5: JUMPDEST
000009d6: POP
000009d7: PUSH1 0x0f
000009d9: SLOAD
000009da: PUSH2 0x0498
000009dd: JUMP
000009de: JUMPDEST
000009df: CALLVALUE
000009e0: DUP1
000009e1: ISZERO
000009e2: PUSH2 0x09ea
000009e5: JUMPI
000009e6: PUSH1 0x00
000009e8: DUP1
000009e9: REVERT
000009ea: JUMPDEST
000009eb: POP
000009ec: PUSH1 0x08
000009ee: SLOAD
000009ef: PUSH21 0x010000000000000000000000000000000000000000
00000a05: SWAP1
00000a06: DIV
00000a07: PUSH1 0xff
00000a09: AND
00000a0a: PUSH2 0x0472
00000a0d: JUMP
00000a0e: JUMPDEST
00000a0f: CALLVALUE
00000a10: DUP1
00000a11: ISZERO
00000a12: PUSH2 0x0a1a
00000a15: JUMPI
00000a16: PUSH1 0x00
00000a18: DUP1
00000a19: REVERT
00000a1a: JUMPDEST
00000a1b: POP
00000a1c: PUSH2 0x0498
00000a1f: PUSH2 0x0a29
00000a22: CALLDATASIZE
00000a23: PUSH1 0x04
00000a25: PUSH2 0x3237
00000a28: JUMP
00000a29: JUMPDEST
00000a2a: PUSH2 0x176b
00000a2d: JUMP
00000a2e: JUMPDEST
00000a2f: PUSH2 0x0546
00000a32: PUSH2 0x0a3c
00000a35: CALLDATASIZE
00000a36: PUSH1 0x04
00000a38: PUSH2 0x3470
00000a3b: JUMP
00000a3c: JUMPDEST
00000a3d: PUSH2 0x1782
00000a40: JUMP
00000a41: JUMPDEST
00000a42: CALLVALUE
00000a43: DUP1
00000a44: ISZERO
00000a45: PUSH2 0x0a4d
00000a48: JUMPI
00000a49: PUSH1 0x00
00000a4b: DUP1
00000a4c: REVERT
00000a4d: JUMPDEST
00000a4e: POP
00000a4f: PUSH1 0x07
00000a51: SLOAD
00000a52: PUSH2 0x0498
00000a55: JUMP
00000a56: JUMPDEST
00000a57: CALLVALUE
00000a58: DUP1
00000a59: ISZERO
00000a5a: PUSH2 0x0a62
00000a5d: JUMPI
00000a5e: PUSH1 0x00
00000a60: DUP1
00000a61: REVERT
00000a62: JUMPDEST
00000a63: POP
00000a64: PUSH2 0x0546
00000a67: PUSH2 0x1aae
00000a6a: JUMP
00000a6b: JUMPDEST
00000a6c: CALLVALUE
00000a6d: DUP1
00000a6e: ISZERO
00000a6f: PUSH2 0x0a77
00000a72: JUMPI
00000a73: PUSH1 0x00
00000a75: DUP1
00000a76: REVERT
00000a77: JUMPDEST
00000a78: POP
00000a79: PUSH2 0x0546
00000a7c: PUSH2 0x0a86
00000a7f: CALLDATASIZE
00000a80: PUSH1 0x04
00000a82: PUSH2 0x3282
00000a85: JUMP
00000a86: JUMPDEST
00000a87: PUSH2 0x1ac1
00000a8a: JUMP
00000a8b: JUMPDEST
00000a8c: CALLVALUE
00000a8d: DUP1
00000a8e: ISZERO
00000a8f: PUSH2 0x0a97
00000a92: JUMPI
00000a93: PUSH1 0x00
00000a95: DUP1
00000a96: REVERT
00000a97: JUMPDEST
00000a98: POP
00000a99: PUSH2 0x0498
00000a9c: PUSH2 0x2710
00000a9f: DUP2
00000aa0: JUMP
00000aa1: JUMPDEST
00000aa2: CALLVALUE
00000aa3: DUP1
00000aa4: ISZERO
00000aa5: PUSH2 0x0aad
00000aa8: JUMPI
00000aa9: PUSH1 0x00
00000aab: DUP1
00000aac: REVERT
00000aad: JUMPDEST
00000aae: POP
00000aaf: PUSH1 0x06
00000ab1: SLOAD
00000ab2: PUSH2 0x0100
00000ab5: SWAP1
00000ab6: DIV
00000ab7: PUSH1 0xff
00000ab9: AND
00000aba: PUSH2 0x0472
00000abd: JUMP
00000abe: JUMPDEST
00000abf: CALLVALUE
00000ac0: DUP1
00000ac1: ISZERO
00000ac2: PUSH2 0x0aca
00000ac5: JUMPI
00000ac6: PUSH1 0x00
00000ac8: DUP1
00000ac9: REVERT
00000aca: JUMPDEST
00000acb: POP
00000acc: PUSH2 0x0546
00000acf: PUSH2 0x0ad9
00000ad2: CALLDATASIZE
00000ad3: PUSH1 0x04
00000ad5: PUSH2 0x3237
00000ad8: JUMP
00000ad9: JUMPDEST
00000ada: PUSH2 0x1ae6
00000add: JUMP
00000ade: JUMPDEST
00000adf: CALLVALUE
00000ae0: DUP1
00000ae1: ISZERO
00000ae2: PUSH2 0x0aea
00000ae5: JUMPI
00000ae6: PUSH1 0x00
00000ae8: DUP1
00000ae9: REVERT
00000aea: JUMPDEST
00000aeb: POP
00000aec: PUSH2 0x0546
00000aef: PUSH2 0x0af9
00000af2: CALLDATASIZE
00000af3: PUSH1 0x04
00000af5: PUSH2 0x34dd
00000af8: JUMP
00000af9: JUMPDEST
00000afa: PUSH2 0x1bf1
00000afd: JUMP
00000afe: JUMPDEST
00000aff: PUSH1 0x00
00000b01: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000b22: DUP3
00000b23: AND
00000b24: PUSH32 0x10fe9ae800000000000000000000000000000000000000000000000000000000
00000b45: EQ
00000b46: DUP1
00000b47: PUSH2 0x0b54
00000b4a: JUMPI
00000b4b: POP
00000b4c: PUSH2 0x0b54
00000b4f: DUP3
00000b50: PUSH2 0x1e96
00000b53: JUMP
00000b54: JUMPDEST
00000b55: SWAP3
00000b56: SWAP2
00000b57: POP
00000b58: POP
00000b59: JUMP
00000b5a: JUMPDEST
00000b5b: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
00000b7c: PUSH2 0x0b84
00000b7f: DUP2
00000b80: PUSH2 0x1f2d
00000b83: JUMP
00000b84: JUMPDEST
00000b85: DUP2
00000b86: PUSH1 0x0b
00000b88: DUP5
00000b89: PUSH1 0x40
00000b8b: MLOAD
00000b8c: PUSH2 0x0b95
00000b8f: SWAP2
00000b90: SWAP1
00000b91: PUSH2 0x3589
00000b94: JUMP
00000b95: JUMPDEST
00000b96: SWAP1
00000b97: DUP2
00000b98: MSTORE
00000b99: PUSH1 0x20
00000b9b: ADD
00000b9c: PUSH1 0x40
00000b9e: MLOAD
00000b9f: DUP1
00000ba0: SWAP2
00000ba1: SUB
00000ba2: SWAP1
00000ba3: KECCAK256
00000ba4: SLOAD
00000ba5: SUB
00000ba6: PUSH2 0x0bdb
00000ba9: JUMPI
00000baa: PUSH1 0x40
00000bac: MLOAD
00000bad: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000
00000bce: DUP2
00000bcf: MSTORE
00000bd0: PUSH1 0x04
00000bd2: ADD
00000bd3: PUSH1 0x40
00000bd5: MLOAD
00000bd6: DUP1
00000bd7: SWAP2
00000bd8: SUB
00000bd9: SWAP1
00000bda: REVERT
00000bdb: JUMPDEST
00000bdc: PUSH32 0xafd4b9329987f82f16db56b008381c15a5c25c9018735782692a94ebb7150992
00000bfd: DUP4
00000bfe: PUSH1 0x0b
00000c00: DUP6
00000c01: PUSH1 0x40
00000c03: MLOAD
00000c04: PUSH2 0x0c0d
00000c07: SWAP2
00000c08: SWAP1
00000c09: PUSH2 0x3589
00000c0c: JUMP
00000c0d: JUMPDEST
00000c0e: SWAP1
00000c0f: DUP2
00000c10: MSTORE
00000c11: PUSH1 0x40
00000c13: MLOAD
00000c14: SWAP1
00000c15: DUP2
00000c16: SWAP1
00000c17: SUB
00000c18: PUSH1 0x20
00000c1a: ADD
00000c1b: DUP2
00000c1c: KECCAK256
00000c1d: SLOAD
00000c1e: PUSH2 0x0c29
00000c21: SWAP3
00000c22: SWAP2
00000c23: DUP7
00000c24: SWAP1
00000c25: PUSH2 0x35ef
00000c28: JUMP
00000c29: JUMPDEST
00000c2a: PUSH1 0x40
00000c2c: MLOAD
00000c2d: DUP1
00000c2e: SWAP2
00000c2f: SUB
00000c30: SWAP1
00000c31: LOG1
00000c32: DUP2
00000c33: PUSH1 0x0b
00000c35: DUP5
00000c36: PUSH1 0x40
00000c38: MLOAD
00000c39: PUSH2 0x0c42
00000c3c: SWAP2
00000c3d: SWAP1
00000c3e: PUSH2 0x3589
00000c41: JUMP
00000c42: JUMPDEST
00000c43: SWAP1
00000c44: DUP2
00000c45: MSTORE
00000c46: PUSH1 0x40
00000c48: MLOAD
00000c49: SWAP1
00000c4a: DUP2
00000c4b: SWAP1
00000c4c: SUB
00000c4d: PUSH1 0x20
00000c4f: ADD
00000c50: SWAP1
00000c51: KECCAK256
00000c52: SSTORE
00000c53: POP
00000c54: POP
00000c55: POP
00000c56: JUMP
00000c57: JUMPDEST
00000c58: PUSH1 0x0d
00000c5a: SLOAD
00000c5b: PUSH1 0x40
00000c5d: MLOAD
00000c5e: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00000c7f: DUP2
00000c80: MSTORE
00000c81: ADDRESS
00000c82: PUSH1 0x04
00000c84: DUP3
00000c85: ADD
00000c86: MSTORE
00000c87: PUSH1 0x00
00000c89: SWAP2
00000c8a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c9f: AND
00000ca0: SWAP1
00000ca1: PUSH4 0x70a08231
00000ca6: SWAP1
00000ca7: PUSH1 0x24
00000ca9: ADD
00000caa: PUSH1 0x20
00000cac: PUSH1 0x40
00000cae: MLOAD
00000caf: DUP1
00000cb0: DUP4
00000cb1: SUB
00000cb2: DUP2
00000cb3: DUP7
00000cb4: GAS
00000cb5: STATICCALL
00000cb6: ISZERO
00000cb7: DUP1
00000cb8: ISZERO
00000cb9: PUSH2 0x0cc6
00000cbc: JUMPI
00000cbd: RETURNDATASIZE
00000cbe: PUSH1 0x00
00000cc0: DUP1
00000cc1: RETURNDATACOPY
00000cc2: RETURNDATASIZE
00000cc3: PUSH1 0x00
00000cc5: REVERT
00000cc6: JUMPDEST
00000cc7: POP
00000cc8: POP
00000cc9: POP
00000cca: POP
00000ccb: PUSH1 0x40
00000ccd: MLOAD
00000cce: RETURNDATASIZE
00000ccf: PUSH1 0x1f
00000cd1: NOT
00000cd2: PUSH1 0x1f
00000cd4: DUP3
00000cd5: ADD
00000cd6: AND
00000cd7: DUP3
00000cd8: ADD
00000cd9: DUP1
00000cda: PUSH1 0x40
00000cdc: MSTORE
00000cdd: POP
00000cde: DUP2
00000cdf: ADD
00000ce0: SWAP1
00000ce1: PUSH2 0x0cea
00000ce4: SWAP2
00000ce5: SWAP1
00000ce6: PUSH2 0x3614
00000ce9: JUMP
00000cea: JUMPDEST
00000ceb: SWAP1
00000cec: POP
00000ced: SWAP1
00000cee: JUMP
00000cef: JUMPDEST
00000cf0: PUSH1 0x00
00000cf2: PUSH1 0x0a
00000cf4: DUP3
00000cf5: PUSH1 0x40
00000cf7: MLOAD
00000cf8: PUSH2 0x0d01
00000cfb: SWAP2
00000cfc: SWAP1
00000cfd: PUSH2 0x3589
00000d00: JUMP
00000d01: JUMPDEST
00000d02: SWAP1
00000d03: DUP2
00000d04: MSTORE
00000d05: PUSH1 0x40
00000d07: MLOAD
00000d08: SWAP1
00000d09: DUP2
00000d0a: SWAP1
00000d0b: SUB
00000d0c: PUSH1 0x20
00000d0e: ADD
00000d0f: SWAP1
00000d10: KECCAK256
00000d11: SLOAD
00000d12: PUSH1 0xff
00000d14: AND
00000d15: SWAP3
00000d16: SWAP2
00000d17: POP
00000d18: POP
00000d19: JUMP
00000d1a: JUMPDEST
00000d1b: PUSH1 0x00
00000d1d: DUP3
00000d1e: DUP2
00000d1f: MSTORE
00000d20: PUSH1 0x20
00000d22: DUP2
00000d23: SWAP1
00000d24: MSTORE
00000d25: PUSH1 0x40
00000d27: SWAP1
00000d28: KECCAK256
00000d29: PUSH1 0x01
00000d2b: ADD
00000d2c: SLOAD
00000d2d: PUSH2 0x0d35
00000d30: DUP2
00000d31: PUSH2 0x1f2d
00000d34: JUMP
00000d35: JUMPDEST
00000d36: PUSH2 0x0d3f
00000d39: DUP4
00000d3a: DUP4
00000d3b: PUSH2 0x1f37
00000d3e: JUMP
00000d3f: JUMPDEST
00000d40: POP
00000d41: POP
00000d42: POP
00000d43: POP
00000d44: JUMP
00000d45: JUMPDEST
00000d46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d5b: DUP2
00000d5c: AND
00000d5d: CALLER
00000d5e: EQ
00000d5f: PUSH2 0x0d94
00000d62: JUMPI
00000d63: PUSH1 0x40
00000d65: MLOAD
00000d66: PUSH32 0x6697b23200000000000000000000000000000000000000000000000000000000
00000d87: DUP2
00000d88: MSTORE
00000d89: PUSH1 0x04
00000d8b: ADD
00000d8c: PUSH1 0x40
00000d8e: MLOAD
00000d8f: DUP1
00000d90: SWAP2
00000d91: SUB
00000d92: SWAP1
00000d93: REVERT
00000d94: JUMPDEST
00000d95: PUSH2 0x0d9e
00000d98: DUP3
00000d99: DUP3
00000d9a: PUSH2 0x1f6c
00000d9d: JUMP
00000d9e: JUMPDEST
00000d9f: POP
00000da0: POP
00000da1: POP
00000da2: JUMP
00000da3: JUMPDEST
00000da4: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
00000dc5: PUSH2 0x0dcd
00000dc8: DUP2
00000dc9: PUSH2 0x1f2d
00000dcc: JUMP
00000dcd: JUMPDEST
00000dce: PUSH1 0x09
00000dd0: SLOAD
00000dd1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000de6: DUP1
00000de7: DUP5
00000de8: AND
00000de9: SWAP2
00000dea: AND
00000deb: SUB
00000dec: PUSH2 0x0e21
00000def: JUMPI
00000df0: PUSH1 0x40
00000df2: MLOAD
00000df3: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000
00000e14: DUP2
00000e15: MSTORE
00000e16: PUSH1 0x04
00000e18: ADD
00000e19: PUSH1 0x40
00000e1b: MLOAD
00000e1c: DUP1
00000e1d: SWAP2
00000e1e: SUB
00000e1f: SWAP1
00000e20: REVERT
00000e21: JUMPDEST
00000e22: PUSH1 0x09
00000e24: SLOAD
00000e25: PUSH1 0x40
00000e27: DUP1
00000e28: MLOAD
00000e29: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e3e: SWAP3
00000e3f: DUP4
00000e40: AND
00000e41: DUP2
00000e42: MSTORE
00000e43: SWAP2
00000e44: DUP5
00000e45: AND
00000e46: PUSH1 0x20
00000e48: DUP4
00000e49: ADD
00000e4a: MSTORE
00000e4b: PUSH32 0x49371ecb237c5f56c577ec4e13abb704592c57843c51f88df6b40074639f7e5d
00000e6c: SWAP2
00000e6d: ADD
00000e6e: PUSH1 0x40
00000e70: MLOAD
00000e71: DUP1
00000e72: SWAP2
00000e73: SUB
00000e74: SWAP1
00000e75: LOG1
00000e76: POP
00000e77: PUSH1 0x09
00000e79: DUP1
00000e7a: SLOAD
00000e7b: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00000e9c: AND
00000e9d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000eb2: SWAP3
00000eb3: SWAP1
00000eb4: SWAP3
00000eb5: AND
00000eb6: SWAP2
00000eb7: SWAP1
00000eb8: SWAP2
00000eb9: OR
00000eba: SWAP1
00000ebb: SSTORE
00000ebc: JUMP
00000ebd: JUMPDEST
00000ebe: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
00000edf: PUSH2 0x0ee7
00000ee2: DUP2
00000ee3: PUSH2 0x1f2d
00000ee6: JUMP
00000ee7: JUMPDEST
00000ee8: PUSH2 0x0ef3
00000eeb: CALLER
00000eec: JUMPDEST
00000eed: ADDRESS
00000eee: DUP5
00000eef: PUSH2 0x1f99
00000ef2: JUMP
00000ef3: JUMPDEST
00000ef4: PUSH1 0x40
00000ef6: MLOAD
00000ef7: DUP3
00000ef8: DUP2
00000ef9: MSTORE
00000efa: CALLER
00000efb: SWAP1
00000efc: PUSH32 0x9936746a4565f9766fa768f88f56a7487c78780ac179562773d1c75c5269537e
00000f1d: SWAP1
00000f1e: PUSH1 0x20
00000f20: ADD
00000f21: PUSH1 0x40
00000f23: MLOAD
00000f24: DUP1
00000f25: SWAP2
00000f26: SUB
00000f27: SWAP1
00000f28: LOG2
00000f29: POP
00000f2a: POP
00000f2b: JUMP
00000f2c: JUMPDEST
00000f2d: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
00000f4e: PUSH2 0x0f56
00000f51: DUP2
00000f52: PUSH2 0x1f2d
00000f55: JUMP
00000f56: JUMPDEST
00000f57: DUP2
00000f58: PUSH1 0x0e
00000f5a: SLOAD
00000f5b: SUB
00000f5c: PUSH2 0x0f64
00000f5f: JUMPI
00000f60: PUSH1 0x00
00000f62: DUP1
00000f63: REVERT
00000f64: JUMPDEST
00000f65: DUP2
00000f66: PUSH1 0x0f
00000f68: SLOAD
00000f69: GT
00000f6a: PUSH2 0x0ff5
00000f6d: JUMPI
00000f6e: PUSH1 0x40
00000f70: MLOAD
00000f71: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000f92: DUP2
00000f93: MSTORE
00000f94: PUSH1 0x20
00000f96: PUSH1 0x04
00000f98: DUP3
00000f99: ADD
00000f9a: MSTORE
00000f9b: PUSH1 0x37
00000f9d: PUSH1 0x24
00000f9f: DUP3
00000fa0: ADD
00000fa1: MSTORE
00000fa2: PUSH32 0x4d6178486f7442616c616e63652063616e6e6f74206265206269676765722074
00000fc3: PUSH1 0x44
00000fc5: DUP3
00000fc6: ADD
00000fc7: MSTORE
00000fc8: PUSH32 0x68616e207769746864726177616c54726573686f6c6421000000000000000000
00000fe9: PUSH1 0x64
00000feb: DUP3
00000fec: ADD
00000fed: MSTORE
00000fee: PUSH1 0x84
00000ff0: ADD
00000ff1: PUSH2 0x03c1
00000ff4: JUMP
00000ff5: JUMPDEST
00000ff6: PUSH1 0x0e
00000ff8: SLOAD
00000ff9: PUSH1 0x40
00000ffb: DUP1
00000ffc: MLOAD
00000ffd: SWAP2
00000ffe: DUP3
00000fff: MSTORE
00001000: PUSH1 0x20
00001002: DUP3
00001003: ADD
00001004: DUP5
00001005: SWAP1
00001006: MSTORE
00001007: PUSH32 0x0f5bd0230a22aa79e1483c1be57ae094a45560496dd4d70e0a796b9eacb31986
00001028: SWAP2
00001029: ADD
0000102a: PUSH1 0x40
0000102c: MLOAD
0000102d: DUP1
0000102e: SWAP2
0000102f: SUB
00001030: SWAP1
00001031: LOG1
00001032: POP
00001033: PUSH1 0x0e
00001035: SSTORE
00001036: JUMP
00001037: JUMPDEST
00001038: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
00001059: PUSH2 0x1061
0000105c: DUP2
0000105d: PUSH2 0x1f2d
00001060: JUMP
00001061: JUMPDEST
00001062: DUP2
00001063: ISZERO
00001064: ISZERO
00001065: PUSH1 0x06
00001067: PUSH1 0x01
00001069: SWAP1
0000106a: SLOAD
0000106b: SWAP1
0000106c: PUSH2 0x0100
0000106f: EXP
00001070: SWAP1
00001071: DIV
00001072: PUSH1 0xff
00001074: AND
00001075: ISZERO
00001076: ISZERO
00001077: SUB
00001078: PUSH2 0x10ad
0000107b: JUMPI
0000107c: PUSH1 0x40
0000107e: MLOAD
0000107f: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000
000010a0: DUP2
000010a1: MSTORE
000010a2: PUSH1 0x04
000010a4: ADD
000010a5: PUSH1 0x40
000010a7: MLOAD
000010a8: DUP1
000010a9: SWAP2
000010aa: SUB
000010ab: SWAP1
000010ac: REVERT
000010ad: JUMPDEST
000010ae: PUSH2 0x10b6
000010b1: DUP3
000010b2: PUSH2 0x203a
000010b5: JUMP
000010b6: JUMPDEST
000010b7: POP
000010b8: POP
000010b9: JUMP
000010ba: JUMPDEST
000010bb: PUSH2 0x10c2
000010be: PUSH2 0x210d
000010c1: JUMP
000010c2: JUMPDEST
000010c3: PUSH1 0x00
000010c5: PUSH2 0x10cd
000010c8: DUP2
000010c9: PUSH2 0x1f2d
000010cc: JUMP
000010cd: JUMPDEST
000010ce: PUSH2 0x10d8
000010d1: PUSH1 0x00
000010d3: DUP15
000010d4: PUSH2 0x1f37
000010d7: JUMP
000010d8: JUMPDEST
000010d9: POP
000010da: PUSH2 0x1103
000010dd: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
000010fe: DUP15
000010ff: PUSH2 0x1f37
00001102: JUMP
00001103: JUMPDEST
00001104: POP
00001105: PUSH2 0x112e
00001108: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
00001129: DUP14
0000112a: PUSH2 0x1f37
0000112d: JUMP
0000112e: JUMPDEST
0000112f: POP
00001130: PUSH2 0x1159
00001133: PUSH32 0x3a68886f0fdd43fd745090961de493dbef78fedcafd00c2109b3f906c62707c8
00001154: DUP13
00001155: PUSH2 0x1f37
00001158: JUMP
00001159: JUMPDEST
0000115a: POP
0000115b: PUSH2 0x1163
0000115e: DUP11
0000115f: PUSH1 0x04
00001161: SSTORE
00001162: JUMP
00001163: JUMPDEST
00001164: PUSH2 0x116c
00001167: DUP7
00001168: PUSH2 0x217c
0000116b: JUMP
0000116c: JUMPDEST
0000116d: PUSH2 0x1175
00001170: DUP8
00001171: PUSH2 0x2217
00001174: JUMP
00001175: JUMPDEST
00001176: PUSH2 0x117e
00001179: DUP10
0000117a: PUSH2 0x22c3
0000117d: JUMP
0000117e: JUMPDEST
0000117f: PUSH2 0x1187
00001182: DUP9
00001183: PUSH2 0x203a
00001186: JUMP
00001187: JUMPDEST
00001188: PUSH2 0x1190
0000118b: DUP3
0000118c: PUSH2 0x238c
0000118f: JUMP
00001190: JUMPDEST
00001191: PUSH1 0x0e
00001193: DUP6
00001194: SWAP1
00001195: SSTORE
00001196: PUSH1 0x0f
00001198: DUP5
00001199: SWAP1
0000119a: SSTORE
0000119b: PUSH2 0x11a3
0000119e: DUP4
0000119f: PUSH2 0x2476
000011a2: JUMP
000011a3: JUMPDEST
000011a4: PUSH2 0x11ab
000011a7: PUSH2 0x2511
000011aa: JUMP
000011ab: JUMPDEST
000011ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011c1: DUP14
000011c2: AND
000011c3: CALLER
000011c4: EQ
000011c5: PUSH2 0x11d5
000011c8: JUMPI
000011c9: PUSH2 0x11d3
000011cc: PUSH1 0x00
000011ce: CALLER
000011cf: PUSH2 0x1f6c
000011d2: JUMP
000011d3: JUMPDEST
000011d4: POP
000011d5: JUMPDEST
000011d6: PUSH2 0x11dd
000011d9: PUSH2 0x2528
000011dc: JUMP
000011dd: JUMPDEST
000011de: POP
000011df: POP
000011e0: POP
000011e1: POP
000011e2: POP
000011e3: POP
000011e4: POP
000011e5: POP
000011e6: POP
000011e7: POP
000011e8: POP
000011e9: POP
000011ea: POP
000011eb: JUMP
000011ec: JUMPDEST
000011ed: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
0000120e: PUSH2 0x1216
00001211: DUP2
00001212: PUSH2 0x1f2d
00001215: JUMP
00001216: JUMPDEST
00001217: PUSH1 0x06
00001219: SLOAD
0000121a: DUP3
0000121b: ISZERO
0000121c: ISZERO
0000121d: PUSH1 0xff
0000121f: SWAP1
00001220: SWAP2
00001221: AND
00001222: ISZERO
00001223: ISZERO
00001224: SUB
00001225: PUSH2 0x125a
00001228: JUMPI
00001229: PUSH1 0x40
0000122b: MLOAD
0000122c: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000
0000124d: DUP2
0000124e: MSTORE
0000124f: PUSH1 0x04
00001251: ADD
00001252: PUSH1 0x40
00001254: MLOAD
00001255: DUP1
00001256: SWAP2
00001257: SUB
00001258: SWAP1
00001259: REVERT
0000125a: JUMPDEST
0000125b: PUSH2 0x10b6
0000125e: DUP3
0000125f: PUSH2 0x22c3
00001262: JUMP
00001263: JUMPDEST
00001264: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
00001285: PUSH2 0x128d
00001288: DUP2
00001289: PUSH2 0x1f2d
0000128c: JUMP
0000128d: JUMPDEST
0000128e: PUSH1 0x10
00001290: SLOAD
00001291: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000012a6: DUP1
000012a7: DUP5
000012a8: AND
000012a9: SWAP2
000012aa: AND
000012ab: SUB
000012ac: PUSH2 0x12b4
000012af: JUMPI
000012b0: PUSH1 0x00
000012b2: DUP1
000012b3: REVERT
000012b4: JUMPDEST
000012b5: PUSH2 0x10b6
000012b8: DUP3
000012b9: PUSH2 0x2476
000012bc: JUMP
000012bd: JUMPDEST
000012be: PUSH1 0x06
000012c0: SLOAD
000012c1: PUSH1 0x00
000012c3: SWAP1
000012c4: PUSH2 0x0100
000012c7: SWAP1
000012c8: DIV
000012c9: PUSH1 0xff
000012cb: AND
000012cc: JUMPDEST
000012cd: ISZERO
000012ce: PUSH2 0x12da
000012d1: JUMPI
000012d2: PUSH2 0x0b54
000012d5: DUP3
000012d6: PUSH2 0x25ad
000012d9: JUMP
000012da: JUMPDEST
000012db: POP
000012dc: PUSH1 0x00
000012de: SWAP2
000012df: SWAP1
000012e0: POP
000012e1: JUMP
000012e2: JUMPDEST
000012e3: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
00001304: PUSH2 0x130c
00001307: DUP2
00001308: PUSH2 0x1f2d
0000130b: JUMP
0000130c: JUMPDEST
0000130d: DUP2
0000130e: PUSH1 0x07
00001310: SLOAD
00001311: SUB
00001312: PUSH2 0x1347
00001315: JUMPI
00001316: PUSH1 0x40
00001318: MLOAD
00001319: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000
0000133a: DUP2
0000133b: MSTORE
0000133c: PUSH1 0x04
0000133e: ADD
0000133f: PUSH1 0x40
00001341: MLOAD
00001342: DUP1
00001343: SWAP2
00001344: SUB
00001345: SWAP1
00001346: REVERT
00001347: JUMPDEST
00001348: PUSH2 0x10b6
0000134b: DUP3
0000134c: PUSH2 0x2217
0000134f: JUMP
00001350: JUMPDEST
00001351: PUSH1 0x00
00001353: PUSH1 0x0b
00001355: DUP3
00001356: PUSH1 0x40
00001358: MLOAD
00001359: PUSH2 0x1362
0000135c: SWAP2
0000135d: SWAP1
0000135e: PUSH2 0x3589
00001361: JUMP
00001362: JUMPDEST
00001363: SWAP1
00001364: DUP2
00001365: MSTORE
00001366: PUSH1 0x20
00001368: ADD
00001369: PUSH1 0x40
0000136b: MLOAD
0000136c: DUP1
0000136d: SWAP2
0000136e: SUB
0000136f: SWAP1
00001370: KECCAK256
00001371: SLOAD
00001372: SWAP1
00001373: POP
00001374: SWAP2
00001375: SWAP1
00001376: POP
00001377: JUMP
00001378: JUMPDEST
00001379: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
0000139a: PUSH2 0x13a2
0000139d: DUP2
0000139e: PUSH2 0x1f2d
000013a1: JUMP
000013a2: JUMPDEST
000013a3: DUP2
000013a4: ISZERO
000013a5: ISZERO
000013a6: PUSH1 0x08
000013a8: PUSH1 0x14
000013aa: SWAP1
000013ab: SLOAD
000013ac: SWAP1
000013ad: PUSH2 0x0100
000013b0: EXP
000013b1: SWAP1
000013b2: DIV
000013b3: PUSH1 0xff
000013b5: AND
000013b6: ISZERO
000013b7: ISZERO
000013b8: SUB
000013b9: PUSH2 0x13ee
000013bc: JUMPI
000013bd: PUSH1 0x40
000013bf: MLOAD
000013c0: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000
000013e1: DUP2
000013e2: MSTORE
000013e3: PUSH1 0x04
000013e5: ADD
000013e6: PUSH1 0x40
000013e8: MLOAD
000013e9: DUP1
000013ea: SWAP2
000013eb: SUB
000013ec: SWAP1
000013ed: REVERT
000013ee: JUMPDEST
000013ef: PUSH1 0x08
000013f1: SLOAD
000013f2: PUSH1 0x40
000013f4: DUP1
000013f5: MLOAD
000013f6: PUSH21 0x010000000000000000000000000000000000000000
0000140c: SWAP1
0000140d: SWAP3
0000140e: DIV
0000140f: PUSH1 0xff
00001411: AND
00001412: ISZERO
00001413: ISZERO
00001414: DUP3
00001415: MSTORE
00001416: DUP4
00001417: ISZERO
00001418: ISZERO
00001419: PUSH1 0x20
0000141b: DUP4
0000141c: ADD
0000141d: MSTORE
0000141e: PUSH32 0xd877b1097bc5bc66c13b1aa139e2dcba8e06bb4ef76c5af6684995c14fd237ba
0000143f: SWAP2
00001440: ADD
00001441: PUSH1 0x40
00001443: MLOAD
00001444: DUP1
00001445: SWAP2
00001446: SUB
00001447: SWAP1
00001448: LOG1
00001449: POP
0000144a: PUSH1 0x08
0000144c: DUP1
0000144d: SLOAD
0000144e: SWAP2
0000144f: ISZERO
00001450: ISZERO
00001451: PUSH21 0x010000000000000000000000000000000000000000
00001467: MUL
00001468: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
00001489: SWAP1
0000148a: SWAP3
0000148b: AND
0000148c: SWAP2
0000148d: SWAP1
0000148e: SWAP2
0000148f: OR
00001490: SWAP1
00001491: SSTORE
00001492: JUMP
00001493: JUMPDEST
00001494: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
000014b5: PUSH2 0x14bd
000014b8: DUP2
000014b9: PUSH2 0x1f2d
000014bc: JUMP
000014bd: JUMPDEST
000014be: PUSH1 0x05
000014c0: SLOAD
000014c1: PUSH1 0x40
000014c3: DUP1
000014c4: MLOAD
000014c5: SWAP2
000014c6: DUP3
000014c7: MSTORE
000014c8: PUSH1 0x20
000014ca: DUP3
000014cb: ADD
000014cc: DUP5
000014cd: SWAP1
000014ce: MSTORE
000014cf: PUSH32 0xbead02a13f814bc937763103a9ad868c46a71a65a1395c3e906885226ada0fc1
000014f0: SWAP2
000014f1: ADD
000014f2: PUSH1 0x40
000014f4: MLOAD
000014f5: DUP1
000014f6: SWAP2
000014f7: SUB
000014f8: SWAP1
000014f9: LOG1
000014fa: POP
000014fb: PUSH1 0x05
000014fd: SSTORE
000014fe: JUMP
000014ff: JUMPDEST
00001500: PUSH1 0x08
00001502: SLOAD
00001503: PUSH1 0x00
00001505: SWAP1
00001506: PUSH21 0x010000000000000000000000000000000000000000
0000151c: SWAP1
0000151d: DIV
0000151e: PUSH1 0xff
00001520: AND
00001521: DUP1
00001522: ISZERO
00001523: PUSH2 0x0cea
00001526: JUMPI
00001527: POP
00001528: POP
00001529: PUSH1 0x09
0000152b: SLOAD
0000152c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001541: AND
00001542: ISZERO
00001543: ISZERO
00001544: SWAP1
00001545: JUMP
00001546: JUMPDEST
00001547: PUSH1 0x00
00001549: PUSH2 0x1551
0000154c: DUP2
0000154d: PUSH2 0x1f2d
00001550: JUMP
00001551: JUMPDEST
00001552: PUSH2 0x1559
00001555: PUSH2 0x263d
00001558: JUMP
00001559: JUMPDEST
0000155a: POP
0000155b: JUMP
0000155c: JUMPDEST
0000155d: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
0000157e: PUSH2 0x1586
00001581: DUP2
00001582: PUSH2 0x1f2d
00001585: JUMP
00001586: JUMPDEST
00001587: PUSH1 0x08
00001589: SLOAD
0000158a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000159f: DUP1
000015a0: DUP5
000015a1: AND
000015a2: SWAP2
000015a3: AND
000015a4: SUB
000015a5: PUSH2 0x15da
000015a8: JUMPI
000015a9: PUSH1 0x40
000015ab: MLOAD
000015ac: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000
000015cd: DUP2
000015ce: MSTORE
000015cf: PUSH1 0x04
000015d1: ADD
000015d2: PUSH1 0x40
000015d4: MLOAD
000015d5: DUP1
000015d6: SWAP2
000015d7: SUB
000015d8: SWAP1
000015d9: REVERT
000015da: JUMPDEST
000015db: PUSH2 0x10b6
000015de: DUP3
000015df: PUSH2 0x217c
000015e2: JUMP
000015e3: JUMPDEST
000015e4: PUSH1 0x00
000015e6: DUP3
000015e7: DUP2
000015e8: MSTORE
000015e9: PUSH1 0x01
000015eb: PUSH1 0x20
000015ed: MSTORE
000015ee: PUSH1 0x40
000015f0: DUP2
000015f1: KECCAK256
000015f2: PUSH2 0x15fb
000015f5: SWAP1
000015f6: DUP4
000015f7: PUSH2 0x2694
000015fa: JUMP
000015fb: JUMPDEST
000015fc: SWAP4
000015fd: SWAP3
000015fe: POP
000015ff: POP
00001600: POP
00001601: JUMP
00001602: JUMPDEST
00001603: PUSH1 0x00
00001605: PUSH2 0x12cc
00001608: PUSH1 0x06
0000160a: SLOAD
0000160b: PUSH1 0xff
0000160d: AND
0000160e: SWAP1
0000160f: JUMP
00001610: JUMPDEST
00001611: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
00001632: PUSH2 0x163a
00001635: DUP2
00001636: PUSH2 0x1f2d
00001639: JUMP
0000163a: JUMPDEST
0000163b: DUP2
0000163c: ISZERO
0000163d: ISZERO
0000163e: PUSH1 0x0a
00001640: DUP5
00001641: PUSH1 0x40
00001643: MLOAD
00001644: PUSH2 0x164d
00001647: SWAP2
00001648: SWAP1
00001649: PUSH2 0x3589
0000164c: JUMP
0000164d: JUMPDEST
0000164e: SWAP1
0000164f: DUP2
00001650: MSTORE
00001651: PUSH1 0x40
00001653: MLOAD
00001654: SWAP1
00001655: DUP2
00001656: SWAP1
00001657: SUB
00001658: PUSH1 0x20
0000165a: ADD
0000165b: SWAP1
0000165c: KECCAK256
0000165d: SLOAD
0000165e: PUSH1 0xff
00001660: AND
00001661: ISZERO
00001662: ISZERO
00001663: SUB
00001664: PUSH2 0x1699
00001667: JUMPI
00001668: PUSH1 0x40
0000166a: MLOAD
0000166b: PUSH32 0xa741a04500000000000000000000000000000000000000000000000000000000
0000168c: DUP2
0000168d: MSTORE
0000168e: PUSH1 0x04
00001690: ADD
00001691: PUSH1 0x40
00001693: MLOAD
00001694: DUP1
00001695: SWAP2
00001696: SUB
00001697: SWAP1
00001698: REVERT
00001699: JUMPDEST
0000169a: PUSH32 0x558f778dd9a235deda0934eea93c307e3548dbe8b341bc1253e1e540fc2f0240
000016bb: DUP4
000016bc: PUSH1 0x0a
000016be: DUP6
000016bf: PUSH1 0x40
000016c1: MLOAD
000016c2: PUSH2 0x16cb
000016c5: SWAP2
000016c6: SWAP1
000016c7: PUSH2 0x3589
000016ca: JUMP
000016cb: JUMPDEST
000016cc: SWAP1
000016cd: DUP2
000016ce: MSTORE
000016cf: PUSH1 0x40
000016d1: MLOAD
000016d2: SWAP1
000016d3: DUP2
000016d4: SWAP1
000016d5: SUB
000016d6: PUSH1 0x20
000016d8: ADD
000016d9: DUP2
000016da: KECCAK256
000016db: SLOAD
000016dc: PUSH2 0x16ed
000016df: SWAP3
000016e0: SWAP2
000016e1: PUSH1 0xff
000016e3: SWAP1
000016e4: SWAP2
000016e5: AND
000016e6: SWAP1
000016e7: DUP7
000016e8: SWAP1
000016e9: PUSH2 0x362d
000016ec: JUMP
000016ed: JUMPDEST
000016ee: PUSH1 0x40
000016f0: MLOAD
000016f1: DUP1
000016f2: SWAP2
000016f3: SUB
000016f4: SWAP1
000016f5: LOG1
000016f6: DUP2
000016f7: PUSH1 0x0a
000016f9: DUP5
000016fa: PUSH1 0x40
000016fc: MLOAD
000016fd: PUSH2 0x1706
00001700: SWAP2
00001701: SWAP1
00001702: PUSH2 0x3589
00001705: JUMP
00001706: JUMPDEST
00001707: SWAP1
00001708: DUP2
00001709: MSTORE
0000170a: PUSH1 0x40
0000170c: MLOAD
0000170d: SWAP1
0000170e: DUP2
0000170f: SWAP1
00001710: SUB
00001711: PUSH1 0x20
00001713: ADD
00001714: SWAP1
00001715: KECCAK256
00001716: DUP1
00001717: SLOAD
00001718: SWAP2
00001719: ISZERO
0000171a: ISZERO
0000171b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
0000173c: SWAP1
0000173d: SWAP3
0000173e: AND
0000173f: SWAP2
00001740: SWAP1
00001741: SWAP2
00001742: OR
00001743: SWAP1
00001744: SSTORE
00001745: POP
00001746: POP
00001747: POP
00001748: JUMP
00001749: JUMPDEST
0000174a: PUSH1 0x00
0000174c: DUP1
0000174d: PUSH2 0x1755
00001750: DUP2
00001751: PUSH2 0x1f2d
00001754: JUMP
00001755: JUMPDEST
00001756: PUSH2 0x1760
00001759: DUP6
0000175a: DUP6
0000175b: DUP6
0000175c: PUSH2 0x26a0
0000175f: JUMP
00001760: JUMPDEST
00001761: POP
00001762: PUSH1 0x01
00001764: SWAP5
00001765: SWAP4
00001766: POP
00001767: POP
00001768: POP
00001769: POP
0000176a: JUMP
0000176b: JUMPDEST
0000176c: PUSH1 0x00
0000176e: DUP2
0000176f: DUP2
00001770: MSTORE
00001771: PUSH1 0x01
00001773: PUSH1 0x20
00001775: MSTORE
00001776: PUSH1 0x40
00001778: DUP2
00001779: KECCAK256
0000177a: PUSH2 0x0b54
0000177d: SWAP1
0000177e: PUSH2 0x272d
00001781: JUMP
00001782: JUMPDEST
00001783: PUSH2 0x178a
00001786: PUSH2 0x2737
00001789: JUMP
0000178a: JUMPDEST
0000178b: PUSH2 0x1792
0000178e: PUSH2 0x2779
00001791: JUMP
00001792: JUMPDEST
00001793: PUSH2 0x179a
00001796: PUSH2 0x27e5
00001799: JUMP
0000179a: JUMPDEST
0000179b: PUSH2 0x17a3
0000179e: DUP4
0000179f: PUSH2 0x0cef
000017a2: JUMP
000017a3: JUMPDEST
000017a4: PUSH2 0x1809
000017a7: JUMPI
000017a8: PUSH1 0x40
000017aa: MLOAD
000017ab: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000017cc: DUP2
000017cd: MSTORE
000017ce: PUSH1 0x20
000017d0: PUSH1 0x04
000017d2: DUP3
000017d3: ADD
000017d4: MSTORE
000017d5: PUSH1 0x1b
000017d7: PUSH1 0x24
000017d9: DUP3
000017da: ADD
000017db: MSTORE
000017dc: PUSH32 0x436861696e4964206973206e6f742077686974656c6973746564210000000000
000017fd: PUSH1 0x44
000017ff: DUP3
00001800: ADD
00001801: MSTORE
00001802: PUSH1 0x64
00001804: ADD
00001805: PUSH2 0x03c1
00001808: JUMP
00001809: JUMPDEST
0000180a: PUSH2 0x1812
0000180d: DUP4
0000180e: PUSH2 0x1350
00001811: JUMP
00001812: JUMPDEST
00001813: DUP2
00001814: GT
00001815: PUSH2 0x18a0
00001818: JUMPI
00001819: PUSH1 0x40
0000181b: MLOAD
0000181c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000183d: DUP2
0000183e: MSTORE
0000183f: PUSH1 0x20
00001841: PUSH1 0x04
00001843: DUP3
00001844: ADD
00001845: MSTORE
00001846: PUSH1 0x2d
00001848: PUSH1 0x24
0000184a: DUP3
0000184b: ADD
0000184c: MSTORE
0000184d: PUSH32 0x5472616e7366657220616d6f756e74206d757374206265206772656174657220
0000186e: PUSH1 0x44
00001870: DUP3
00001871: ADD
00001872: MSTORE
00001873: PUSH32 0x7468616e206d696e696d756d2100000000000000000000000000000000000000
00001894: PUSH1 0x64
00001896: DUP3
00001897: ADD
00001898: MSTORE
00001899: PUSH1 0x84
0000189b: ADD
0000189c: PUSH2 0x03c1
0000189f: JUMP
000018a0: JUMPDEST
000018a1: DUP1
000018a2: PUSH1 0x00
000018a4: PUSH2 0x18b5
000018a7: PUSH1 0x06
000018a9: SLOAD
000018aa: PUSH1 0xff
000018ac: PUSH2 0x0100
000018af: SWAP1
000018b0: SWAP2
000018b1: DIV
000018b2: AND
000018b3: SWAP1
000018b4: JUMP
000018b5: JUMPDEST
000018b6: ISZERO
000018b7: PUSH2 0x195e
000018ba: JUMPI
000018bb: PUSH2 0x18c3
000018be: DUP4
000018bf: PUSH2 0x25ad
000018c2: JUMP
000018c3: JUMPDEST
000018c4: SWAP1
000018c5: POP
000018c6: PUSH2 0x18cf
000018c9: DUP2
000018ca: DUP5
000018cb: PUSH2 0x3686
000018ce: JUMP
000018cf: JUMPDEST
000018d0: SWAP2
000018d1: POP
000018d2: PUSH2 0x18f5
000018d5: CALLER
000018d6: PUSH1 0x08
000018d8: SLOAD
000018d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000018ee: AND
000018ef: JUMPDEST
000018f0: DUP4
000018f1: PUSH2 0x1f99
000018f4: JUMP
000018f5: JUMPDEST
000018f6: PUSH1 0x08
000018f8: SLOAD
000018f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000190e: AND
0000190f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001924: AND
00001925: PUSH32 0x58793df5f4d270351f09efd433db93c69432142b69dc7ee38195fc630478c79f
00001946: DUP3
00001947: PUSH1 0x40
00001949: MLOAD
0000194a: PUSH2 0x1955
0000194d: SWAP2
0000194e: DUP2
0000194f: MSTORE
00001950: PUSH1 0x20
00001952: ADD
00001953: SWAP1
00001954: JUMP
00001955: JUMPDEST
00001956: PUSH1 0x40
00001958: MLOAD
00001959: DUP1
0000195a: SWAP2
0000195b: SUB
0000195c: SWAP1
0000195d: LOG2
0000195e: JUMPDEST
0000195f: PUSH2 0x1967
00001962: CALLER
00001963: PUSH2 0x0eec
00001966: JUMP
00001967: JUMPDEST
00001968: PUSH1 0x40
0000196a: MLOAD
0000196b: DUP3
0000196c: DUP2
0000196d: MSTORE
0000196e: CALLER
0000196f: SWAP1
00001970: PUSH32 0x9936746a4565f9766fa768f88f56a7487c78780ac179562773d1c75c5269537e
00001991: SWAP1
00001992: PUSH1 0x20
00001994: ADD
00001995: PUSH1 0x40
00001997: MLOAD
00001998: DUP1
00001999: SWAP2
0000199a: SUB
0000199b: SWAP1
0000199c: LOG2
0000199d: PUSH1 0x40
0000199f: MLOAD
000019a0: CALLER
000019a1: SWAP1
000019a2: PUSH2 0x19ac
000019a5: SWAP1
000019a6: DUP8
000019a7: SWAP1
000019a8: PUSH2 0x3589
000019ab: JUMP
000019ac: JUMPDEST
000019ad: PUSH1 0x40
000019af: MLOAD
000019b0: DUP1
000019b1: SWAP2
000019b2: SUB
000019b3: SWAP1
000019b4: KECCAK256
000019b5: PUSH32 0xe018479759b1e949537a237f8def7ac5729eb80674560f76a979aed637e6f383
000019d6: PUSH2 0x19de
000019d9: PUSH1 0x05
000019db: SLOAD
000019dc: SWAP1
000019dd: JUMP
000019de: JUMPDEST
000019df: DUP8
000019e0: DUP7
000019e1: DUP7
000019e2: PUSH1 0x40
000019e4: MLOAD
000019e5: PUSH2 0x19f1
000019e8: SWAP5
000019e9: SWAP4
000019ea: SWAP3
000019eb: SWAP2
000019ec: SWAP1
000019ed: PUSH2 0x3699
000019f0: JUMP
000019f1: JUMPDEST
000019f2: PUSH1 0x40
000019f4: MLOAD
000019f5: DUP1
000019f6: SWAP2
000019f7: SUB
000019f8: SWAP1
000019f9: LOG3
000019fa: PUSH2 0x1a01
000019fd: PUSH2 0x2511
00001a00: JUMP
00001a01: JUMPDEST
00001a02: PUSH1 0x0f
00001a04: SLOAD
00001a05: PUSH2 0x1a0c
00001a08: PUSH2 0x0c57
00001a0b: JUMP
00001a0c: JUMPDEST
00001a0d: GT
00001a0e: ISZERO
00001a0f: PUSH2 0x1aa2
00001a12: JUMPI
00001a13: PUSH1 0x00
00001a15: PUSH1 0x0e
00001a17: SLOAD
00001a18: PUSH2 0x1a1f
00001a1b: PUSH2 0x0c57
00001a1e: JUMP
00001a1f: JUMPDEST
00001a20: PUSH2 0x1a29
00001a23: SWAP2
00001a24: SWAP1
00001a25: PUSH2 0x3686
00001a28: JUMP
00001a29: JUMPDEST
00001a2a: PUSH1 0x10
00001a2c: SLOAD
00001a2d: SWAP1
00001a2e: SWAP2
00001a2f: POP
00001a30: PUSH2 0x1a51
00001a33: SWAP1
00001a34: ADDRESS
00001a35: SWAP1
00001a36: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a4b: AND
00001a4c: DUP4
00001a4d: PUSH2 0x1f99
00001a50: JUMP
00001a51: JUMPDEST
00001a52: PUSH1 0x10
00001a54: SLOAD
00001a55: PUSH1 0x40
00001a57: MLOAD
00001a58: DUP3
00001a59: DUP2
00001a5a: MSTORE
00001a5b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001a70: SWAP1
00001a71: SWAP2
00001a72: AND
00001a73: SWAP1
00001a74: PUSH32 0xe541104353a547eab02b4055f4f9ba8b927d7a3b345e1122d417dccd18f53931
00001a95: SWAP1
00001a96: PUSH1 0x20
00001a98: ADD
00001a99: PUSH1 0x40
00001a9b: MLOAD
00001a9c: DUP1
00001a9d: SWAP2
00001a9e: SUB
00001a9f: SWAP1
00001aa0: LOG2
00001aa1: POP
00001aa2: JUMPDEST
00001aa3: POP
00001aa4: POP
00001aa5: PUSH2 0x0d9e
00001aa8: PUSH1 0x01
00001aaa: PUSH1 0x02
00001aac: SSTORE
00001aad: JUMP
00001aae: JUMPDEST
00001aaf: PUSH1 0x00
00001ab1: PUSH2 0x1ab9
00001ab4: DUP2
00001ab5: PUSH2 0x1f2d
00001ab8: JUMP
00001ab9: JUMPDEST
00001aba: PUSH2 0x1559
00001abd: PUSH2 0x2826
00001ac0: JUMP
00001ac1: JUMPDEST
00001ac2: PUSH1 0x00
00001ac4: DUP3
00001ac5: DUP2
00001ac6: MSTORE
00001ac7: PUSH1 0x20
00001ac9: DUP2
00001aca: SWAP1
00001acb: MSTORE
00001acc: PUSH1 0x40
00001ace: SWAP1
00001acf: KECCAK256
00001ad0: PUSH1 0x01
00001ad2: ADD
00001ad3: SLOAD
00001ad4: PUSH2 0x1adc
00001ad7: DUP2
00001ad8: PUSH2 0x1f2d
00001adb: JUMP
00001adc: JUMPDEST
00001add: PUSH2 0x0d3f
00001ae0: DUP4
00001ae1: DUP4
00001ae2: PUSH2 0x1f6c
00001ae5: JUMP
00001ae6: JUMPDEST
00001ae7: PUSH32 0x71f3d55856e4058ed06ee057d79ada615f65cdf5f9ee88181b914225088f834f
00001b08: PUSH2 0x1b10
00001b0b: DUP2
00001b0c: PUSH2 0x1f2d
00001b0f: JUMP
00001b10: JUMPDEST
00001b11: DUP2
00001b12: PUSH1 0x0f
00001b14: SLOAD
00001b15: SUB
00001b16: PUSH2 0x1b1e
00001b19: JUMPI
00001b1a: PUSH1 0x00
00001b1c: DUP1
00001b1d: REVERT
00001b1e: JUMPDEST
00001b1f: PUSH1 0x0e
00001b21: SLOAD
00001b22: DUP3
00001b23: GT
00001b24: PUSH2 0x1baf
00001b27: JUMPI
00001b28: PUSH1 0x40
00001b2a: MLOAD
00001b2b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001b4c: DUP2
00001b4d: MSTORE
00001b4e: PUSH1 0x20
00001b50: PUSH1 0x04
00001b52: DUP3
00001b53: ADD
00001b54: MSTORE
00001b55: PUSH1 0x35
00001b57: PUSH1 0x24
00001b59: DUP3
00001b5a: ADD
00001b5b: MSTORE
00001b5c: PUSH32 0x5769746864726177616c54726573686f6c64206d757374206265206269676765
00001b7d: PUSH1 0x44
00001b7f: DUP3
00001b80: ADD
00001b81: MSTORE
00001b82: PUSH32 0x72207468616e206d6178486f7442616c616e6365210000000000000000000000
00001ba3: PUSH1 0x64
00001ba5: DUP3
00001ba6: ADD
00001ba7: MSTORE
00001ba8: PUSH1 0x84
00001baa: ADD
00001bab: PUSH2 0x03c1
00001bae: JUMP
00001baf: JUMPDEST
00001bb0: PUSH1 0x0f
00001bb2: SLOAD
00001bb3: PUSH1 0x40
00001bb5: DUP1
00001bb6: MLOAD
00001bb7: SWAP2
00001bb8: DUP3
00001bb9: MSTORE
00001bba: PUSH1 0x20
00001bbc: DUP3
00001bbd: ADD
00001bbe: DUP5
00001bbf: SWAP1
00001bc0: MSTORE
00001bc1: PUSH32 0x1adb426056931f3893f5a036e49474ea8ac139f52ba9cccc70426aab8ac1fbc7
00001be2: SWAP2
00001be3: ADD
00001be4: PUSH1 0x40
00001be6: MLOAD
00001be7: DUP1
00001be8: SWAP2
00001be9: SUB
00001bea: SWAP1
00001beb: LOG1
00001bec: POP
00001bed: PUSH1 0x0f
00001bef: SSTORE
00001bf0: JUMP
00001bf1: JUMPDEST
00001bf2: PUSH2 0x1bf9
00001bf5: PUSH2 0x2737
00001bf8: JUMP
00001bf9: JUMPDEST
00001bfa: PUSH2 0x1c01
00001bfd: PUSH2 0x2779
00001c00: JUMP
00001c01: JUMPDEST
00001c02: PUSH2 0x1c09
00001c05: PUSH2 0x27e5
00001c08: JUMP
00001c09: JUMPDEST
00001c0a: PUSH32 0x3a68886f0fdd43fd745090961de493dbef78fedcafd00c2109b3f906c62707c8
00001c2b: PUSH2 0x1c33
00001c2e: DUP2
00001c2f: PUSH2 0x1f2d
00001c32: JUMP
00001c33: JUMPDEST
00001c34: PUSH2 0x1c3d
00001c37: DUP7
00001c38: DUP7
00001c39: PUSH2 0x2882
00001c3c: JUMP
00001c3d: JUMPDEST
00001c3e: DUP2
00001c3f: PUSH1 0x00
00001c41: PUSH2 0x1c4c
00001c44: PUSH1 0x06
00001c46: SLOAD
00001c47: PUSH1 0xff
00001c49: AND
00001c4a: SWAP1
00001c4b: JUMP
00001c4c: JUMPDEST
00001c4d: ISZERO
00001c4e: PUSH2 0x1cf4
00001c51: JUMPI
00001c52: PUSH2 0x1c5a
00001c55: DUP5
00001c56: PUSH2 0x25ad
00001c59: JUMP
00001c5a: JUMPDEST
00001c5b: SWAP1
00001c5c: POP
00001c5d: PUSH2 0x1c7f
00001c60: ADDRESS
00001c61: PUSH2 0x18ef
00001c64: PUSH1 0x08
00001c66: SLOAD
00001c67: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c7c: AND
00001c7d: SWAP1
00001c7e: JUMP
00001c7f: JUMPDEST
00001c80: PUSH1 0x08
00001c82: SLOAD
00001c83: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001c98: AND
00001c99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001cae: AND
00001caf: PUSH32 0x58793df5f4d270351f09efd433db93c69432142b69dc7ee38195fc630478c79f
00001cd0: DUP3
00001cd1: PUSH1 0x40
00001cd3: MLOAD
00001cd4: PUSH2 0x1cdf
00001cd7: SWAP2
00001cd8: DUP2
00001cd9: MSTORE
00001cda: PUSH1 0x20
00001cdc: ADD
00001cdd: SWAP1
00001cde: JUMP
00001cdf: JUMPDEST
00001ce0: PUSH1 0x40
00001ce2: MLOAD
00001ce3: DUP1
00001ce4: SWAP2
00001ce5: SUB
00001ce6: SWAP1
00001ce7: LOG2
00001ce8: PUSH2 0x1cf1
00001ceb: DUP2
00001cec: DUP6
00001ced: PUSH2 0x3686
00001cf0: JUMP
00001cf1: JUMPDEST
00001cf2: SWAP2
00001cf3: POP
00001cf4: JUMPDEST
00001cf5: PUSH2 0x1cff
00001cf8: ADDRESS
00001cf9: DUP7
00001cfa: DUP5
00001cfb: PUSH2 0x1f99
00001cfe: JUMP
00001cff: JUMPDEST
00001d00: DUP5
00001d01: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d16: AND
00001d17: PUSH32 0x8c8f77105ce8ee99e391fd4da140bc14a988eb4cf878b240bfed9b10ae7c6758
00001d38: DUP4
00001d39: PUSH1 0x40
00001d3b: MLOAD
00001d3c: PUSH2 0x1d47
00001d3f: SWAP2
00001d40: DUP2
00001d41: MSTORE
00001d42: PUSH1 0x20
00001d44: ADD
00001d45: SWAP1
00001d46: JUMP
00001d47: JUMPDEST
00001d48: PUSH1 0x40
00001d4a: MLOAD
00001d4b: DUP1
00001d4c: SWAP2
00001d4d: SUB
00001d4e: SWAP1
00001d4f: LOG2
00001d50: DUP5
00001d51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001d66: AND
00001d67: DUP7
00001d68: PUSH1 0x40
00001d6a: MLOAD
00001d6b: PUSH2 0x1d74
00001d6e: SWAP2
00001d6f: SWAP1
00001d70: PUSH2 0x3589
00001d73: JUMP
00001d74: JUMPDEST
00001d75: PUSH1 0x40
00001d77: MLOAD
00001d78: DUP1
00001d79: SWAP2
00001d7a: SUB
00001d7b: SWAP1
00001d7c: KECCAK256
00001d7d: DUP10
00001d7e: PUSH1 0x40
00001d80: MLOAD
00001d81: PUSH2 0x1d8a
00001d84: SWAP2
00001d85: SWAP1
00001d86: PUSH2 0x3589
00001d89: JUMP
00001d8a: JUMPDEST
00001d8b: PUSH1 0x40
00001d8d: DUP1
00001d8e: MLOAD
00001d8f: SWAP2
00001d90: DUP3
00001d91: SWAP1
00001d92: SUB
00001d93: DUP3
00001d94: KECCAK256
00001d95: DUP12
00001d96: DUP4
00001d97: MSTORE
00001d98: PUSH1 0x20
00001d9a: DUP4
00001d9b: ADD
00001d9c: DUP8
00001d9d: SWAP1
00001d9e: MSTORE
00001d9f: SWAP1
00001da0: DUP3
00001da1: ADD
00001da2: DUP6
00001da3: SWAP1
00001da4: MSTORE
00001da5: SWAP1
00001da6: PUSH32 0x3ec450082f2489098a948b09fef486373fd1c855628384ba4054ed1e02b92799
00001dc7: SWAP1
00001dc8: PUSH1 0x60
00001dca: ADD
00001dcb: PUSH1 0x40
00001dcd: MLOAD
00001dce: DUP1
00001dcf: SWAP2
00001dd0: SUB
00001dd1: SWAP1
00001dd2: LOG4
00001dd3: PUSH2 0x1dda
00001dd6: PUSH2 0x14ff
00001dd9: JUMP
00001dda: JUMPDEST
00001ddb: ISZERO
00001ddc: PUSH2 0x1e82
00001ddf: JUMPI
00001de0: PUSH1 0x09
00001de2: SLOAD
00001de3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001df8: AND
00001df9: PUSH1 0x40
00001dfb: MLOAD
00001dfc: PUSH32 0xc2e6d02500000000000000000000000000000000000000000000000000000000
00001e1d: DUP2
00001e1e: MSTORE
00001e1f: ADDRESS
00001e20: PUSH1 0x04
00001e22: DUP3
00001e23: ADD
00001e24: MSTORE
00001e25: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001e3a: DUP8
00001e3b: DUP2
00001e3c: AND
00001e3d: PUSH1 0x24
00001e3f: DUP4
00001e40: ADD
00001e41: MSTORE
00001e42: SWAP2
00001e43: SWAP1
00001e44: SWAP2
00001e45: AND
00001e46: SWAP1
00001e47: PUSH4 0xc2e6d025
00001e4c: SWAP1
00001e4d: PUSH1 0x44
00001e4f: ADD
00001e50: PUSH1 0x00
00001e52: PUSH1 0x40
00001e54: MLOAD
00001e55: DUP1
00001e56: DUP4
00001e57: SUB
00001e58: DUP2
00001e59: PUSH1 0x00
00001e5b: DUP8
00001e5c: DUP1
00001e5d: EXTCODESIZE
00001e5e: ISZERO
00001e5f: DUP1
00001e60: ISZERO
00001e61: PUSH2 0x1e69
00001e64: JUMPI
00001e65: PUSH1 0x00
00001e67: DUP1
00001e68: REVERT
00001e69: JUMPDEST
00001e6a: POP
00001e6b: GAS
00001e6c: CALL
00001e6d: ISZERO
00001e6e: DUP1
00001e6f: ISZERO
00001e70: PUSH2 0x1e7d
00001e73: JUMPI
00001e74: RETURNDATASIZE
00001e75: PUSH1 0x00
00001e77: DUP1
00001e78: RETURNDATACOPY
00001e79: RETURNDATASIZE
00001e7a: PUSH1 0x00
00001e7c: REVERT
00001e7d: JUMPDEST
00001e7e: POP
00001e7f: POP
00001e80: POP
00001e81: POP
00001e82: JUMPDEST
00001e83: POP
00001e84: POP
00001e85: POP
00001e86: PUSH2 0x1e8f
00001e89: PUSH1 0x01
00001e8b: PUSH1 0x02
00001e8d: SSTORE
00001e8e: JUMP
00001e8f: JUMPDEST
00001e90: POP
00001e91: POP
00001e92: POP
00001e93: POP
00001e94: POP
00001e95: JUMP
00001e96: JUMPDEST
00001e97: PUSH1 0x00
00001e99: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00001eba: DUP3
00001ebb: AND
00001ebc: PUSH32 0x5e660c6a00000000000000000000000000000000000000000000000000000000
00001edd: EQ
00001ede: DUP1
00001edf: PUSH2 0x0b54
00001ee2: JUMPI
00001ee3: POP
00001ee4: PUSH32 0xa0929cda00000000000000000000000000000000000000000000000000000000
00001f05: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00001f26: DUP4
00001f27: AND
00001f28: EQ
00001f29: PUSH2 0x0b54
00001f2c: JUMP
00001f2d: JUMPDEST
00001f2e: PUSH2 0x1559
00001f31: DUP2
00001f32: CALLER
00001f33: PUSH2 0x2977
00001f36: JUMP
00001f37: JUMPDEST
00001f38: PUSH1 0x00
00001f3a: DUP1
00001f3b: PUSH2 0x1f44
00001f3e: DUP5
00001f3f: DUP5
00001f40: PUSH2 0x29fd
00001f43: JUMP
00001f44: JUMPDEST
00001f45: SWAP1
00001f46: POP
00001f47: DUP1
00001f48: ISZERO
00001f49: PUSH2 0x15fb
00001f4c: JUMPI
00001f4d: PUSH1 0x00
00001f4f: DUP5
00001f50: DUP2
00001f51: MSTORE
00001f52: PUSH1 0x01
00001f54: PUSH1 0x20
00001f56: MSTORE
00001f57: PUSH1 0x40
00001f59: SWAP1
00001f5a: KECCAK256
00001f5b: PUSH2 0x1f64
00001f5e: SWAP1
00001f5f: DUP5
00001f60: PUSH2 0x2af9
00001f63: JUMP
00001f64: JUMPDEST
00001f65: POP
00001f66: SWAP4
00001f67: SWAP3
00001f68: POP
00001f69: POP
00001f6a: POP
00001f6b: JUMP
00001f6c: JUMPDEST
00001f6d: PUSH1 0x00
00001f6f: DUP1
00001f70: PUSH2 0x1f79
00001f73: DUP5
00001f74: DUP5
00001f75: PUSH2 0x2b1b
00001f78: JUMP
00001f79: JUMPDEST
00001f7a: SWAP1
00001f7b: POP
00001f7c: DUP1
00001f7d: ISZERO
00001f7e: PUSH2 0x15fb
00001f81: JUMPI
00001f82: PUSH1 0x00
00001f84: DUP5
00001f85: DUP2
00001f86: MSTORE
00001f87: PUSH1 0x01
00001f89: PUSH1 0x20
00001f8b: MSTORE
00001f8c: PUSH1 0x40
00001f8e: SWAP1
00001f8f: KECCAK256
00001f90: PUSH2 0x1f64
00001f93: SWAP1
00001f94: DUP5
00001f95: PUSH2 0x2bd6
00001f98: JUMP
00001f99: JUMPDEST
00001f9a: ADDRESS
00001f9b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fb0: DUP5
00001fb1: AND
00001fb2: SUB
00001fb3: PUSH2 0x1ff7
00001fb6: JUMPI
00001fb7: PUSH2 0x0d9e
00001fba: DUP3
00001fbb: DUP3
00001fbc: PUSH2 0x1fda
00001fbf: PUSH1 0x0d
00001fc1: SLOAD
00001fc2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001fd7: AND
00001fd8: SWAP1
00001fd9: JUMP
00001fda: JUMPDEST
00001fdb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001ff0: AND
00001ff1: SWAP2
00001ff2: SWAP1
00001ff3: PUSH2 0x2bf8
00001ff6: JUMP
00001ff7: JUMPDEST
00001ff8: PUSH2 0x0d9e
00001ffb: DUP4
00001ffc: DUP4
00001ffd: DUP4
00001ffe: PUSH2 0x201c
00002001: PUSH1 0x0d
00002003: SLOAD
00002004: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002019: AND
0000201a: SWAP1
0000201b: JUMP
0000201c: JUMPDEST
0000201d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002032: AND
00002033: SWAP3
00002034: SWAP2
00002035: SWAP1
00002036: PUSH2 0x2c79
00002039: JUMP
0000203a: JUMPDEST
0000203b: DUP1
0000203c: ISZERO
0000203d: PUSH2 0x208f
00002040: JUMPI
00002041: PUSH1 0x08
00002043: SLOAD
00002044: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002059: AND
0000205a: PUSH2 0x208f
0000205d: JUMPI
0000205e: PUSH1 0x40
00002060: MLOAD
00002061: PUSH32 0xd92e233d00000000000000000000000000000000000000000000000000000000
00002082: DUP2
00002083: MSTORE
00002084: PUSH1 0x04
00002086: ADD
00002087: PUSH1 0x40
00002089: MLOAD
0000208a: DUP1
0000208b: SWAP2
0000208c: SUB
0000208d: SWAP1
0000208e: REVERT
0000208f: JUMPDEST
00002090: PUSH1 0x06
00002092: SLOAD
00002093: PUSH1 0x40
00002095: DUP1
00002096: MLOAD
00002097: PUSH2 0x0100
0000209a: SWAP1
0000209b: SWAP3
0000209c: DIV
0000209d: PUSH1 0xff
0000209f: AND
000020a0: ISZERO
000020a1: ISZERO
000020a2: DUP3
000020a3: MSTORE
000020a4: DUP3
000020a5: ISZERO
000020a6: ISZERO
000020a7: PUSH1 0x20
000020a9: DUP4
000020aa: ADD
000020ab: MSTORE
000020ac: PUSH32 0xf391c490de99c2c515c09ccd9d70362856bd19e0feda0a1f557d069ede9fabee
000020cd: SWAP2
000020ce: ADD
000020cf: PUSH1 0x40
000020d1: MLOAD
000020d2: DUP1
000020d3: SWAP2
000020d4: SUB
000020d5: SWAP1
000020d6: LOG1
000020d7: PUSH1 0x06
000020d9: DUP1
000020da: SLOAD
000020db: SWAP2
000020dc: ISZERO
000020dd: ISZERO
000020de: PUSH2 0x0100
000020e1: MUL
000020e2: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
00002103: SWAP1
00002104: SWAP3
00002105: AND
00002106: SWAP2
00002107: SWAP1
00002108: SWAP2
00002109: OR
0000210a: SWAP1
0000210b: SSTORE
0000210c: JUMP
0000210d: JUMPDEST
0000210e: PUSH1 0x03
00002110: SLOAD
00002111: PUSH1 0xff
00002113: AND
00002114: ISZERO
00002115: PUSH2 0x217a
00002118: JUMPI
00002119: PUSH1 0x40
0000211b: MLOAD
0000211c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000213d: DUP2
0000213e: MSTORE
0000213f: PUSH1 0x20
00002141: PUSH1 0x04
00002143: DUP3
00002144: ADD
00002145: MSTORE
00002146: PUSH1 0x18
00002148: PUSH1 0x24
0000214a: DUP3
0000214b: ADD
0000214c: MSTORE
0000214d: PUSH32 0x496e697469616c697a65643a20496e697469616c697a65640000000000000000
0000216e: PUSH1 0x44
00002170: DUP3
00002171: ADD
00002172: MSTORE
00002173: PUSH1 0x64
00002175: ADD
00002176: PUSH2 0x03c1
00002179: JUMP
0000217a: JUMPDEST
0000217b: JUMP
0000217c: JUMPDEST
0000217d: PUSH1 0x08
0000217f: SLOAD
00002180: PUSH1 0x40
00002182: DUP1
00002183: MLOAD
00002184: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002199: SWAP3
0000219a: DUP4
0000219b: AND
0000219c: DUP2
0000219d: MSTORE
0000219e: SWAP2
0000219f: DUP4
000021a0: AND
000021a1: PUSH1 0x20
000021a3: DUP4
000021a4: ADD
000021a5: MSTORE
000021a6: PUSH32 0x12aeedbe105c518128d60ce786ade81525990783e6a01c9f849a47954c5043b7
000021c7: SWAP2
000021c8: ADD
000021c9: PUSH1 0x40
000021cb: MLOAD
000021cc: DUP1
000021cd: SWAP2
000021ce: SUB
000021cf: SWAP1
000021d0: LOG1
000021d1: PUSH1 0x08
000021d3: DUP1
000021d4: SLOAD
000021d5: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000021f6: AND
000021f7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000220c: SWAP3
0000220d: SWAP1
0000220e: SWAP3
0000220f: AND
00002210: SWAP2
00002211: SWAP1
00002212: SWAP2
00002213: OR
00002214: SWAP1
00002215: SSTORE
00002216: JUMP
00002217: JUMPDEST
00002218: PUSH2 0x2710
0000221b: DUP2
0000221c: LT
0000221d: PUSH2 0x2282
00002220: JUMPI
00002221: PUSH1 0x40
00002223: MLOAD
00002224: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00002245: DUP2
00002246: MSTORE
00002247: PUSH1 0x20
00002249: PUSH1 0x04
0000224b: DUP3
0000224c: ADD
0000224d: MSTORE
0000224e: PUSH1 0x1f
00002250: PUSH1 0x24
00002252: DUP3
00002253: ADD
00002254: MSTORE
00002255: PUSH32 0x4665652063616e6e6f7420626520626967676572207468616e20313030252100
00002276: PUSH1 0x44
00002278: DUP3
00002279: ADD
0000227a: MSTORE
0000227b: PUSH1 0x64
0000227d: ADD
0000227e: PUSH2 0x03c1
00002281: JUMP
00002282: JUMPDEST
00002283: PUSH1 0x07
00002285: SLOAD
00002286: PUSH1 0x40
00002288: DUP1
00002289: MLOAD
0000228a: SWAP2
0000228b: DUP3
0000228c: MSTORE
0000228d: PUSH1 0x20
0000228f: DUP3
00002290: ADD
00002291: DUP4
00002292: SWAP1
00002293: MSTORE
00002294: PUSH32 0x5fc463da23c1b063e66f9e352006a7fbe8db7223c455dc429e881a2dfe2f94f1
000022b5: SWAP2
000022b6: ADD
000022b7: PUSH1 0x40
000022b9: MLOAD
000022ba: DUP1
000022bb: SWAP2
000022bc: SUB
000022bd: SWAP1
000022be: LOG1
000022bf: PUSH1 0x07
000022c1: SSTORE
000022c2: JUMP
000022c3: JUMPDEST
000022c4: DUP1
000022c5: ISZERO
000022c6: PUSH2 0x2318
000022c9: JUMPI
000022ca: PUSH1 0x08
000022cc: SLOAD
000022cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000022e2: AND
000022e3: PUSH2 0x2318
000022e6: JUMPI
000022e7: PUSH1 0x40
000022e9: MLOAD
000022ea: PUSH32 0xd92e233d00000000000000000000000000000000000000000000000000000000
0000230b: DUP2
0000230c: MSTORE
0000230d: PUSH1 0x04
0000230f: ADD
00002310: PUSH1 0x40
00002312: MLOAD
00002313: DUP1
00002314: SWAP2
00002315: SUB
00002316: SWAP1
00002317: REVERT
00002318: JUMPDEST
00002319: PUSH1 0x06
0000231b: SLOAD
0000231c: PUSH1 0x40
0000231e: DUP1
0000231f: MLOAD
00002320: PUSH1 0xff
00002322: SWAP1
00002323: SWAP3
00002324: AND
00002325: ISZERO
00002326: ISZERO
00002327: DUP3
00002328: MSTORE
00002329: DUP3
0000232a: ISZERO
0000232b: ISZERO
0000232c: PUSH1 0x20
0000232e: DUP4
0000232f: ADD
00002330: MSTORE
00002331: PUSH32 0x25466a505dbb0b2e87070fe4cc9c80f1cd1a7ef8b74b24be03e4b39195bcb0ab
00002352: SWAP2
00002353: ADD
00002354: PUSH1 0x40
00002356: MLOAD
00002357: DUP1
00002358: SWAP2
00002359: SUB
0000235a: SWAP1
0000235b: LOG1
0000235c: PUSH1 0x06
0000235e: DUP1
0000235f: SLOAD
00002360: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
00002381: AND
00002382: SWAP2
00002383: ISZERO
00002384: ISZERO
00002385: SWAP2
00002386: SWAP1
00002387: SWAP2
00002388: OR
00002389: SWAP1
0000238a: SSTORE
0000238b: JUMP
0000238c: JUMPDEST
0000238d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000023a2: DUP2
000023a3: AND
000023a4: PUSH2 0x242f
000023a7: JUMPI
000023a8: PUSH1 0x40
000023aa: MLOAD
000023ab: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000023cc: DUP2
000023cd: MSTORE
000023ce: PUSH1 0x20
000023d0: PUSH1 0x04
000023d2: DUP3
000023d3: ADD
000023d4: MSTORE
000023d5: PUSH1 0x22
000023d7: PUSH1 0x24
000023d9: DUP3
000023da: ADD
000023db: MSTORE
000023dc: PUSH32 0x546f6b656e20616464726573732063616e6e6f74206265203020616464726573
000023fd: PUSH1 0x44
000023ff: DUP3
00002400: ADD
00002401: MSTORE
00002402: PUSH32 0x7321000000000000000000000000000000000000000000000000000000000000
00002423: PUSH1 0x64
00002425: DUP3
00002426: ADD
00002427: MSTORE
00002428: PUSH1 0x84
0000242a: ADD
0000242b: PUSH2 0x03c1
0000242e: JUMP
0000242f: JUMPDEST
00002430: PUSH1 0x0d
00002432: DUP1
00002433: SLOAD
00002434: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
00002455: AND
00002456: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000246b: SWAP3
0000246c: SWAP1
0000246d: SWAP3
0000246e: AND
0000246f: SWAP2
00002470: SWAP1
00002471: SWAP2
00002472: OR
00002473: SWAP1
00002474: SSTORE
00002475: JUMP
00002476: JUMPDEST
00002477: PUSH1 0x10
00002479: SLOAD
0000247a: PUSH1 0x40
0000247c: DUP1
0000247d: MLOAD
0000247e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002493: SWAP3
00002494: DUP4
00002495: AND
00002496: DUP2
00002497: MSTORE
00002498: SWAP2
00002499: DUP4
0000249a: AND
0000249b: PUSH1 0x20
0000249d: DUP4
0000249e: ADD
0000249f: MSTORE
000024a0: PUSH32 0x9742dcbf5b448e2d46c3d9a3f1a01a93b9f413c5079bf9212caad5d3bdebb9bd
000024c1: SWAP2
000024c2: ADD
000024c3: PUSH1 0x40
000024c5: MLOAD
000024c6: DUP1
000024c7: SWAP2
000024c8: SUB
000024c9: SWAP1
000024ca: LOG1
000024cb: PUSH1 0x10
000024cd: DUP1
000024ce: SLOAD
000024cf: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000024f0: AND
000024f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002506: SWAP3
00002507: SWAP1
00002508: SWAP3
00002509: AND
0000250a: SWAP2
0000250b: SWAP1
0000250c: SWAP2
0000250d: OR
0000250e: SWAP1
0000250f: SSTORE
00002510: JUMP
00002511: JUMPDEST
00002512: PUSH1 0x05
00002514: DUP1
00002515: SLOAD
00002516: SWAP1
00002517: PUSH1 0x00
00002519: PUSH2 0x2521
0000251c: DUP4
0000251d: PUSH2 0x36c5
00002520: JUMP
00002521: JUMPDEST
00002522: SWAP2
00002523: SWAP1
00002524: POP
00002525: SSTORE
00002526: POP
00002527: JUMP
00002528: JUMPDEST
00002529: PUSH2 0x2530
0000252c: PUSH2 0x210d
0000252f: JUMP
00002530: JUMPDEST
00002531: PUSH1 0x03
00002533: DUP1
00002534: SLOAD
00002535: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
00002556: AND
00002557: PUSH1 0x01
00002559: OR
0000255a: SWAP1
0000255b: SSTORE
0000255c: PUSH32 0xb8bb5a08c752924168166e254455ca6708ef2ac4cfd39bba39eb5a5b89f0cbd6
0000257d: PUSH2 0x2583
00002580: CALLER
00002581: SWAP1
00002582: JUMP
00002583: JUMPDEST
00002584: PUSH1 0x40
00002586: MLOAD
00002587: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000259c: SWAP1
0000259d: SWAP2
0000259e: AND
0000259f: DUP2
000025a0: MSTORE
000025a1: PUSH1 0x20
000025a3: ADD
000025a4: PUSH1 0x40
000025a6: MLOAD
000025a7: DUP1
000025a8: SWAP2
000025a9: SUB
000025aa: SWAP1
000025ab: LOG1
000025ac: JUMP
000025ad: JUMPDEST
000025ae: PUSH1 0x00
000025b0: DUP1
000025b1: PUSH2 0x25b9
000025b4: PUSH1 0x07
000025b6: SLOAD
000025b7: SWAP1
000025b8: JUMP
000025b9: JUMPDEST
000025ba: SWAP1
000025bb: POP
000025bc: PUSH1 0x00
000025be: DUP2
000025bf: GT
000025c0: PUSH2 0x2625
000025c3: JUMPI
000025c4: PUSH1 0x40
000025c6: MLOAD
000025c7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000025e8: DUP2
000025e9: MSTORE
000025ea: PUSH1 0x20
000025ec: PUSH1 0x04
000025ee: DUP3
000025ef: ADD
000025f0: MSTORE
000025f1: PUSH1 0x0e
000025f3: PUSH1 0x24
000025f5: DUP3
000025f6: ADD
000025f7: MSTORE
000025f8: PUSH32 0x466565206973206e6f7420736574000000000000000000000000000000000000
00002619: PUSH1 0x44
0000261b: DUP3
0000261c: ADD
0000261d: MSTORE
0000261e: PUSH1 0x64
00002620: ADD
00002621: PUSH2 0x03c1
00002624: JUMP
00002625: JUMPDEST
00002626: PUSH2 0x262f
00002629: DUP2
0000262a: DUP5
0000262b: PUSH2 0x36fd
0000262e: JUMP
0000262f: JUMPDEST
00002630: SWAP2
00002631: POP
00002632: PUSH2 0x15fb
00002635: PUSH2 0x2710
00002638: DUP4
00002639: PUSH2 0x3714
0000263c: JUMP
0000263d: JUMPDEST
0000263e: PUSH2 0x2645
00002641: PUSH2 0x2cbf
00002644: JUMP
00002645: JUMPDEST
00002646: PUSH1 0x03
00002648: DUP1
00002649: SLOAD
0000264a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
0000266b: AND
0000266c: SWAP1
0000266d: SSTORE
0000266e: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa
0000268f: CALLER
00002690: PUSH2 0x2583
00002693: JUMP
00002694: JUMPDEST
00002695: PUSH1 0x00
00002697: PUSH2 0x15fb
0000269a: DUP4
0000269b: DUP4
0000269c: PUSH2 0x2d00
0000269f: JUMP
000026a0: JUMPDEST
000026a1: PUSH2 0x26c1
000026a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026b9: DUP5
000026ba: AND
000026bb: DUP4
000026bc: DUP4
000026bd: PUSH2 0x2bf8
000026c0: JUMP
000026c1: JUMPDEST
000026c2: DUP2
000026c3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026d8: AND
000026d9: DUP4
000026da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000026ef: AND
000026f0: PUSH32 0xc00a88ee4656f9bf9caef53a29be902b0017cf1e454eaed6526c08b8c2e106cf
00002711: DUP4
00002712: PUSH1 0x40
00002714: MLOAD
00002715: PUSH2 0x2720
00002718: SWAP2
00002719: DUP2
0000271a: MSTORE
0000271b: PUSH1 0x20
0000271d: ADD
0000271e: SWAP1
0000271f: JUMP
00002720: JUMPDEST
00002721: PUSH1 0x40
00002723: MLOAD
00002724: DUP1
00002725: SWAP2
00002726: SUB
00002727: SWAP1
00002728: LOG3
00002729: POP
0000272a: POP
0000272b: POP
0000272c: JUMP
0000272d: JUMPDEST
0000272e: PUSH1 0x00
00002730: PUSH2 0x0b54
00002733: DUP3
00002734: SLOAD
00002735: SWAP1
00002736: JUMP
00002737: JUMPDEST
00002738: PUSH1 0x03
0000273a: SLOAD
0000273b: PUSH2 0x0100
0000273e: SWAP1
0000273f: DIV
00002740: PUSH1 0xff
00002742: AND
00002743: ISZERO
00002744: PUSH2 0x217a
00002747: JUMPI
00002748: PUSH1 0x40
0000274a: MLOAD
0000274b: PUSH32 0xd93c066500000000000000000000000000000000000000000000000000000000
0000276c: DUP2
0000276d: MSTORE
0000276e: PUSH1 0x04
00002770: ADD
00002771: PUSH1 0x40
00002773: MLOAD
00002774: DUP1
00002775: SWAP2
00002776: SUB
00002777: SWAP1
00002778: REVERT
00002779: JUMPDEST
0000277a: PUSH1 0x03
0000277c: SLOAD
0000277d: PUSH1 0xff
0000277f: AND
00002780: PUSH2 0x217a
00002783: JUMPI
00002784: PUSH1 0x40
00002786: MLOAD
00002787: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000027a8: DUP2
000027a9: MSTORE
000027aa: PUSH1 0x20
000027ac: PUSH1 0x04
000027ae: DUP3
000027af: ADD
000027b0: MSTORE
000027b1: PUSH1 0x1c
000027b3: PUSH1 0x24
000027b5: DUP3
000027b6: ADD
000027b7: MSTORE
000027b8: PUSH32 0x496e697469616c697a65643a206e6f7420696e697469616c697a656400000000
000027d9: PUSH1 0x44
000027db: DUP3
000027dc: ADD
000027dd: MSTORE
000027de: PUSH1 0x64
000027e0: ADD
000027e1: PUSH2 0x03c1
000027e4: JUMP
000027e5: JUMPDEST
000027e6: PUSH1 0x02
000027e8: DUP1
000027e9: SLOAD
000027ea: SUB
000027eb: PUSH2 0x2820
000027ee: JUMPI
000027ef: PUSH1 0x40
000027f1: MLOAD
000027f2: PUSH32 0x3ee5aeb500000000000000000000000000000000000000000000000000000000
00002813: DUP2
00002814: MSTORE
00002815: PUSH1 0x04
00002817: ADD
00002818: PUSH1 0x40
0000281a: MLOAD
0000281b: DUP1
0000281c: SWAP2
0000281d: SUB
0000281e: SWAP1
0000281f: REVERT
00002820: JUMPDEST
00002821: PUSH1 0x02
00002823: DUP1
00002824: SSTORE
00002825: JUMP
00002826: JUMPDEST
00002827: PUSH2 0x282e
0000282a: PUSH2 0x2737
0000282d: JUMP
0000282e: JUMPDEST
0000282f: PUSH1 0x03
00002831: DUP1
00002832: SLOAD
00002833: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
00002854: AND
00002855: PUSH2 0x0100
00002858: OR
00002859: SWAP1
0000285a: SSTORE
0000285b: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258
0000287c: PUSH2 0x2583
0000287f: CALLER
00002880: SWAP1
00002881: JUMP
00002882: JUMPDEST
00002883: PUSH2 0x288c
00002886: DUP3
00002887: DUP3
00002888: PUSH2 0x2d2a
0000288b: JUMP
0000288c: JUMPDEST
0000288d: ISZERO
0000288e: PUSH2 0x2919
00002891: JUMPI
00002892: PUSH1 0x40
00002894: MLOAD
00002895: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000028b6: DUP2
000028b7: MSTORE
000028b8: PUSH1 0x20
000028ba: PUSH1 0x04
000028bc: DUP3
000028bd: ADD
000028be: MSTORE
000028bf: PUSH1 0x2c
000028c1: PUSH1 0x24
000028c3: DUP3
000028c4: ADD
000028c5: MSTORE
000028c6: PUSH32 0x4d6967726174696f6e496420666f72207468697320636861696e496420616c72
000028e7: PUSH1 0x44
000028e9: DUP3
000028ea: ADD
000028eb: MSTORE
000028ec: PUSH32 0x6561647920657869737473210000000000000000000000000000000000000000
0000290d: PUSH1 0x64
0000290f: DUP3
00002910: ADD
00002911: MSTORE
00002912: PUSH1 0x84
00002914: ADD
00002915: PUSH2 0x03c1
00002918: JUMP
00002919: JUMPDEST
0000291a: PUSH1 0x01
0000291c: PUSH1 0x0c
0000291e: DUP4
0000291f: PUSH1 0x40
00002921: MLOAD
00002922: PUSH2 0x292b
00002925: SWAP2
00002926: SWAP1
00002927: PUSH2 0x3589
0000292a: JUMP
0000292b: JUMPDEST
0000292c: SWAP1
0000292d: DUP2
0000292e: MSTORE
0000292f: PUSH1 0x40
00002931: DUP1
00002932: MLOAD
00002933: PUSH1 0x20
00002935: SWAP3
00002936: DUP2
00002937: SWAP1
00002938: SUB
00002939: DUP4
0000293a: ADD
0000293b: SWAP1
0000293c: KECCAK256
0000293d: PUSH1 0x00
0000293f: SWAP5
00002940: DUP6
00002941: MSTORE
00002942: SWAP1
00002943: SWAP2
00002944: MSTORE
00002945: SWAP1
00002946: SWAP2
00002947: KECCAK256
00002948: DUP1
00002949: SLOAD
0000294a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
0000296b: AND
0000296c: SWAP2
0000296d: ISZERO
0000296e: ISZERO
0000296f: SWAP2
00002970: SWAP1
00002971: SWAP2
00002972: OR
00002973: SWAP1
00002974: SSTORE
00002975: POP
00002976: JUMP
00002977: JUMPDEST
00002978: PUSH1 0x00
0000297a: DUP3
0000297b: DUP2
0000297c: MSTORE
0000297d: PUSH1 0x20
0000297f: DUP2
00002980: DUP2
00002981: MSTORE
00002982: PUSH1 0x40
00002984: DUP1
00002985: DUP4
00002986: KECCAK256
00002987: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000299c: DUP6
0000299d: AND
0000299e: DUP5
0000299f: MSTORE
000029a0: SWAP1
000029a1: SWAP2
000029a2: MSTORE
000029a3: SWAP1
000029a4: KECCAK256
000029a5: SLOAD
000029a6: PUSH1 0xff
000029a8: AND
000029a9: PUSH2 0x10b6
000029ac: JUMPI
000029ad: PUSH1 0x40
000029af: MLOAD
000029b0: PUSH32 0xe2517d3f00000000000000000000000000000000000000000000000000000000
000029d1: DUP2
000029d2: MSTORE
000029d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000029e8: DUP3
000029e9: AND
000029ea: PUSH1 0x04
000029ec: DUP3
000029ed: ADD
000029ee: MSTORE
000029ef: PUSH1 0x24
000029f1: DUP2
000029f2: ADD
000029f3: DUP4
000029f4: SWAP1
000029f5: MSTORE
000029f6: PUSH1 0x44
000029f8: ADD
000029f9: PUSH2 0x03c1
000029fc: JUMP
000029fd: JUMPDEST
000029fe: PUSH1 0x00
00002a00: DUP3
00002a01: DUP2
00002a02: MSTORE
00002a03: PUSH1 0x20
00002a05: DUP2
00002a06: DUP2
00002a07: MSTORE
00002a08: PUSH1 0x40
00002a0a: DUP1
00002a0b: DUP4
00002a0c: KECCAK256
00002a0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a22: DUP6
00002a23: AND
00002a24: DUP5
00002a25: MSTORE
00002a26: SWAP1
00002a27: SWAP2
00002a28: MSTORE
00002a29: DUP2
00002a2a: KECCAK256
00002a2b: SLOAD
00002a2c: PUSH1 0xff
00002a2e: AND
00002a2f: PUSH2 0x2af1
00002a32: JUMPI
00002a33: PUSH1 0x00
00002a35: DUP4
00002a36: DUP2
00002a37: MSTORE
00002a38: PUSH1 0x20
00002a3a: DUP2
00002a3b: DUP2
00002a3c: MSTORE
00002a3d: PUSH1 0x40
00002a3f: DUP1
00002a40: DUP4
00002a41: KECCAK256
00002a42: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002a57: DUP7
00002a58: AND
00002a59: DUP5
00002a5a: MSTORE
00002a5b: SWAP1
00002a5c: SWAP2
00002a5d: MSTORE
00002a5e: SWAP1
00002a5f: KECCAK256
00002a60: DUP1
00002a61: SLOAD
00002a62: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
00002a83: AND
00002a84: PUSH1 0x01
00002a86: OR
00002a87: SWAP1
00002a88: SSTORE
00002a89: PUSH2 0x2a8f
00002a8c: CALLER
00002a8d: SWAP1
00002a8e: JUMP
00002a8f: JUMPDEST
00002a90: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002aa5: AND
00002aa6: DUP3
00002aa7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002abc: AND
00002abd: DUP5
00002abe: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d
00002adf: PUSH1 0x40
00002ae1: MLOAD
00002ae2: PUSH1 0x40
00002ae4: MLOAD
00002ae5: DUP1
00002ae6: SWAP2
00002ae7: SUB
00002ae8: SWAP1
00002ae9: LOG4
00002aea: POP
00002aeb: PUSH1 0x01
00002aed: PUSH2 0x0b54
00002af0: JUMP
00002af1: JUMPDEST
00002af2: POP
00002af3: PUSH1 0x00
00002af5: PUSH2 0x0b54
00002af8: JUMP
00002af9: JUMPDEST
00002afa: PUSH1 0x00
00002afc: PUSH2 0x15fb
00002aff: DUP4
00002b00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b15: DUP5
00002b16: AND
00002b17: PUSH2 0x2d69
00002b1a: JUMP
00002b1b: JUMPDEST
00002b1c: PUSH1 0x00
00002b1e: DUP3
00002b1f: DUP2
00002b20: MSTORE
00002b21: PUSH1 0x20
00002b23: DUP2
00002b24: DUP2
00002b25: MSTORE
00002b26: PUSH1 0x40
00002b28: DUP1
00002b29: DUP4
00002b2a: KECCAK256
00002b2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b40: DUP6
00002b41: AND
00002b42: DUP5
00002b43: MSTORE
00002b44: SWAP1
00002b45: SWAP2
00002b46: MSTORE
00002b47: DUP2
00002b48: KECCAK256
00002b49: SLOAD
00002b4a: PUSH1 0xff
00002b4c: AND
00002b4d: ISZERO
00002b4e: PUSH2 0x2af1
00002b51: JUMPI
00002b52: PUSH1 0x00
00002b54: DUP4
00002b55: DUP2
00002b56: MSTORE
00002b57: PUSH1 0x20
00002b59: DUP2
00002b5a: DUP2
00002b5b: MSTORE
00002b5c: PUSH1 0x40
00002b5e: DUP1
00002b5f: DUP4
00002b60: KECCAK256
00002b61: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002b76: DUP7
00002b77: AND
00002b78: DUP1
00002b79: DUP6
00002b7a: MSTORE
00002b7b: SWAP3
00002b7c: MSTORE
00002b7d: DUP1
00002b7e: DUP4
00002b7f: KECCAK256
00002b80: DUP1
00002b81: SLOAD
00002b82: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
00002ba3: AND
00002ba4: SWAP1
00002ba5: SSTORE
00002ba6: MLOAD
00002ba7: CALLER
00002ba8: SWAP3
00002ba9: DUP7
00002baa: SWAP2
00002bab: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b
00002bcc: SWAP2
00002bcd: SWAP1
00002bce: LOG4
00002bcf: POP
00002bd0: PUSH1 0x01
00002bd2: PUSH2 0x0b54
00002bd5: JUMP
00002bd6: JUMPDEST
00002bd7: PUSH1 0x00
00002bd9: PUSH2 0x15fb
00002bdc: DUP4
00002bdd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002bf2: DUP5
00002bf3: AND
00002bf4: PUSH2 0x2db0
00002bf7: JUMP
00002bf8: JUMPDEST
00002bf9: PUSH1 0x40
00002bfb: MLOAD
00002bfc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c11: DUP4
00002c12: DUP2
00002c13: AND
00002c14: PUSH1 0x24
00002c16: DUP4
00002c17: ADD
00002c18: MSTORE
00002c19: PUSH1 0x44
00002c1b: DUP3
00002c1c: ADD
00002c1d: DUP4
00002c1e: SWAP1
00002c1f: MSTORE
00002c20: PUSH2 0x0d9e
00002c23: SWAP2
00002c24: DUP6
00002c25: SWAP2
00002c26: DUP3
00002c27: AND
00002c28: SWAP1
00002c29: PUSH4 0xa9059cbb
00002c2e: SWAP1
00002c2f: PUSH1 0x64
00002c31: ADD
00002c32: JUMPDEST
00002c33: PUSH1 0x40
00002c35: MLOAD
00002c36: PUSH1 0x20
00002c38: DUP2
00002c39: DUP4
00002c3a: SUB
00002c3b: SUB
00002c3c: DUP2
00002c3d: MSTORE
00002c3e: SWAP1
00002c3f: PUSH1 0x40
00002c41: MSTORE
00002c42: SWAP2
00002c43: POP
00002c44: PUSH1 0xe0
00002c46: SHL
00002c47: PUSH1 0x20
00002c49: DUP3
00002c4a: ADD
00002c4b: DUP1
00002c4c: MLOAD
00002c4d: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002c6a: DUP4
00002c6b: DUP2
00002c6c: DUP4
00002c6d: AND
00002c6e: OR
00002c6f: DUP4
00002c70: MSTORE
00002c71: POP
00002c72: POP
00002c73: POP
00002c74: POP
00002c75: PUSH2 0x2ea3
00002c78: JUMP
00002c79: JUMPDEST
00002c7a: PUSH1 0x40
00002c7c: MLOAD
00002c7d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002c92: DUP5
00002c93: DUP2
00002c94: AND
00002c95: PUSH1 0x24
00002c97: DUP4
00002c98: ADD
00002c99: MSTORE
00002c9a: DUP4
00002c9b: DUP2
00002c9c: AND
00002c9d: PUSH1 0x44
00002c9f: DUP4
00002ca0: ADD
00002ca1: MSTORE
00002ca2: PUSH1 0x64
00002ca4: DUP3
00002ca5: ADD
00002ca6: DUP4
00002ca7: SWAP1
00002ca8: MSTORE
00002ca9: PUSH2 0x0d3f
00002cac: SWAP2
00002cad: DUP7
00002cae: SWAP2
00002caf: DUP3
00002cb0: AND
00002cb1: SWAP1
00002cb2: PUSH4 0x23b872dd
00002cb7: SWAP1
00002cb8: PUSH1 0x84
00002cba: ADD
00002cbb: PUSH2 0x2c32
00002cbe: JUMP
00002cbf: JUMPDEST
00002cc0: PUSH1 0x03
00002cc2: SLOAD
00002cc3: PUSH2 0x0100
00002cc6: SWAP1
00002cc7: DIV
00002cc8: PUSH1 0xff
00002cca: AND
00002ccb: PUSH2 0x217a
00002cce: JUMPI
00002ccf: PUSH1 0x40
00002cd1: MLOAD
00002cd2: PUSH32 0x8dfc202b00000000000000000000000000000000000000000000000000000000
00002cf3: DUP2
00002cf4: MSTORE
00002cf5: PUSH1 0x04
00002cf7: ADD
00002cf8: PUSH1 0x40
00002cfa: MLOAD
00002cfb: DUP1
00002cfc: SWAP2
00002cfd: SUB
00002cfe: SWAP1
00002cff: REVERT
00002d00: JUMPDEST
00002d01: PUSH1 0x00
00002d03: DUP3
00002d04: PUSH1 0x00
00002d06: ADD
00002d07: DUP3
00002d08: DUP2
00002d09: SLOAD
00002d0a: DUP2
00002d0b: LT
00002d0c: PUSH2 0x2d17
00002d0f: JUMPI
00002d10: PUSH2 0x2d17
00002d13: PUSH2 0x374f
00002d16: JUMP
00002d17: JUMPDEST
00002d18: SWAP1
00002d19: PUSH1 0x00
00002d1b: MSTORE
00002d1c: PUSH1 0x20
00002d1e: PUSH1 0x00
00002d20: KECCAK256
00002d21: ADD
00002d22: SLOAD
00002d23: SWAP1
00002d24: POP
00002d25: SWAP3
00002d26: SWAP2
00002d27: POP
00002d28: POP
00002d29: JUMP
00002d2a: JUMPDEST
00002d2b: PUSH1 0x00
00002d2d: PUSH1 0x0c
00002d2f: DUP4
00002d30: PUSH1 0x40
00002d32: MLOAD
00002d33: PUSH2 0x2d3c
00002d36: SWAP2
00002d37: SWAP1
00002d38: PUSH2 0x3589
00002d3b: JUMP
00002d3c: JUMPDEST
00002d3d: SWAP1
00002d3e: DUP2
00002d3f: MSTORE
00002d40: PUSH1 0x40
00002d42: DUP1
00002d43: MLOAD
00002d44: SWAP2
00002d45: DUP3
00002d46: SWAP1
00002d47: SUB
00002d48: PUSH1 0x20
00002d4a: SWAP1
00002d4b: DUP2
00002d4c: ADD
00002d4d: SWAP1
00002d4e: SWAP3
00002d4f: KECCAK256
00002d50: PUSH1 0x00
00002d52: DUP6
00002d53: DUP2
00002d54: MSTORE
00002d55: SWAP3
00002d56: MSTORE
00002d57: SWAP1
00002d58: KECCAK256
00002d59: SLOAD
00002d5a: PUSH1 0xff
00002d5c: AND
00002d5d: ISZERO
00002d5e: ISZERO
00002d5f: PUSH1 0x01
00002d61: EQ
00002d62: SWAP1
00002d63: POP
00002d64: SWAP3
00002d65: SWAP2
00002d66: POP
00002d67: POP
00002d68: JUMP
00002d69: JUMPDEST
00002d6a: PUSH1 0x00
00002d6c: DUP2
00002d6d: DUP2
00002d6e: MSTORE
00002d6f: PUSH1 0x01
00002d71: DUP4
00002d72: ADD
00002d73: PUSH1 0x20
00002d75: MSTORE
00002d76: PUSH1 0x40
00002d78: DUP2
00002d79: KECCAK256
00002d7a: SLOAD
00002d7b: PUSH2 0x2af1
00002d7e: JUMPI
00002d7f: POP
00002d80: DUP2
00002d81: SLOAD
00002d82: PUSH1 0x01
00002d84: DUP2
00002d85: DUP2
00002d86: ADD
00002d87: DUP5
00002d88: SSTORE
00002d89: PUSH1 0x00
00002d8b: DUP5
00002d8c: DUP2
00002d8d: MSTORE
00002d8e: PUSH1 0x20
00002d90: DUP1
00002d91: DUP3
00002d92: KECCAK256
00002d93: SWAP1
00002d94: SWAP4
00002d95: ADD
00002d96: DUP5
00002d97: SWAP1
00002d98: SSTORE
00002d99: DUP5
00002d9a: SLOAD
00002d9b: DUP5
00002d9c: DUP3
00002d9d: MSTORE
00002d9e: DUP3
00002d9f: DUP7
00002da0: ADD
00002da1: SWAP1
00002da2: SWAP4
00002da3: MSTORE
00002da4: PUSH1 0x40
00002da6: SWAP1
00002da7: KECCAK256
00002da8: SWAP2
00002da9: SWAP1
00002daa: SWAP2
00002dab: SSTORE
00002dac: PUSH2 0x0b54
00002daf: JUMP
00002db0: JUMPDEST
00002db1: PUSH1 0x00
00002db3: DUP2
00002db4: DUP2
00002db5: MSTORE
00002db6: PUSH1 0x01
00002db8: DUP4
00002db9: ADD
00002dba: PUSH1 0x20
00002dbc: MSTORE
00002dbd: PUSH1 0x40
00002dbf: DUP2
00002dc0: KECCAK256
00002dc1: SLOAD
00002dc2: DUP1
00002dc3: ISZERO
00002dc4: PUSH2 0x2e99
00002dc7: JUMPI
00002dc8: PUSH1 0x00
00002dca: PUSH2 0x2dd4
00002dcd: PUSH1 0x01
00002dcf: DUP4
00002dd0: PUSH2 0x3686
00002dd3: JUMP
00002dd4: JUMPDEST
00002dd5: DUP6
00002dd6: SLOAD
00002dd7: SWAP1
00002dd8: SWAP2
00002dd9: POP
00002dda: PUSH1 0x00
00002ddc: SWAP1
00002ddd: PUSH2 0x2de8
00002de0: SWAP1
00002de1: PUSH1 0x01
00002de3: SWAP1
00002de4: PUSH2 0x3686
00002de7: JUMP
00002de8: JUMPDEST
00002de9: SWAP1
00002dea: POP
00002deb: DUP1
00002dec: DUP3
00002ded: EQ
00002dee: PUSH2 0x2e4d
00002df1: JUMPI
00002df2: PUSH1 0x00
00002df4: DUP7
00002df5: PUSH1 0x00
00002df7: ADD
00002df8: DUP3
00002df9: DUP2
00002dfa: SLOAD
00002dfb: DUP2
00002dfc: LT
00002dfd: PUSH2 0x2e08
00002e00: JUMPI
00002e01: PUSH2 0x2e08
00002e04: PUSH2 0x374f
00002e07: JUMP
00002e08: JUMPDEST
00002e09: SWAP1
00002e0a: PUSH1 0x00
00002e0c: MSTORE
00002e0d: PUSH1 0x20
00002e0f: PUSH1 0x00
00002e11: KECCAK256
00002e12: ADD
00002e13: SLOAD
00002e14: SWAP1
00002e15: POP
00002e16: DUP1
00002e17: DUP8
00002e18: PUSH1 0x00
00002e1a: ADD
00002e1b: DUP5
00002e1c: DUP2
00002e1d: SLOAD
00002e1e: DUP2
00002e1f: LT
00002e20: PUSH2 0x2e2b
00002e23: JUMPI
00002e24: PUSH2 0x2e2b
00002e27: PUSH2 0x374f
00002e2a: JUMP
00002e2b: JUMPDEST
00002e2c: PUSH1 0x00
00002e2e: SWAP2
00002e2f: DUP3
00002e30: MSTORE
00002e31: PUSH1 0x20
00002e33: DUP1
00002e34: DUP4
00002e35: KECCAK256
00002e36: SWAP1
00002e37: SWAP2
00002e38: ADD
00002e39: SWAP3
00002e3a: SWAP1
00002e3b: SWAP3
00002e3c: SSTORE
00002e3d: SWAP2
00002e3e: DUP3
00002e3f: MSTORE
00002e40: PUSH1 0x01
00002e42: DUP9
00002e43: ADD
00002e44: SWAP1
00002e45: MSTORE
00002e46: PUSH1 0x40
00002e48: SWAP1
00002e49: KECCAK256
00002e4a: DUP4
00002e4b: SWAP1
00002e4c: SSTORE
00002e4d: JUMPDEST
00002e4e: DUP6
00002e4f: SLOAD
00002e50: DUP7
00002e51: SWAP1
00002e52: DUP1
00002e53: PUSH2 0x2e5e
00002e56: JUMPI
00002e57: PUSH2 0x2e5e
00002e5a: PUSH2 0x377e
00002e5d: JUMP
00002e5e: JUMPDEST
00002e5f: PUSH1 0x01
00002e61: SWAP1
00002e62: SUB
00002e63: DUP2
00002e64: DUP2
00002e65: SWAP1
00002e66: PUSH1 0x00
00002e68: MSTORE
00002e69: PUSH1 0x20
00002e6b: PUSH1 0x00
00002e6d: KECCAK256
00002e6e: ADD
00002e6f: PUSH1 0x00
00002e71: SWAP1
00002e72: SSTORE
00002e73: SWAP1
00002e74: SSTORE
00002e75: DUP6
00002e76: PUSH1 0x01
00002e78: ADD
00002e79: PUSH1 0x00
00002e7b: DUP7
00002e7c: DUP2
00002e7d: MSTORE
00002e7e: PUSH1 0x20
00002e80: ADD
00002e81: SWAP1
00002e82: DUP2
00002e83: MSTORE
00002e84: PUSH1 0x20
00002e86: ADD
00002e87: PUSH1 0x00
00002e89: KECCAK256
00002e8a: PUSH1 0x00
00002e8c: SWAP1
00002e8d: SSTORE
00002e8e: PUSH1 0x01
00002e90: SWAP4
00002e91: POP
00002e92: POP
00002e93: POP
00002e94: POP
00002e95: PUSH2 0x0b54
00002e98: JUMP
00002e99: JUMPDEST
00002e9a: PUSH1 0x00
00002e9c: SWAP2
00002e9d: POP
00002e9e: POP
00002e9f: PUSH2 0x0b54
00002ea2: JUMP
00002ea3: JUMPDEST
00002ea4: PUSH1 0x00
00002ea6: PUSH2 0x2ec5
00002ea9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ebe: DUP5
00002ebf: AND
00002ec0: DUP4
00002ec1: PUSH2 0x2f39
00002ec4: JUMP
00002ec5: JUMPDEST
00002ec6: SWAP1
00002ec7: POP
00002ec8: DUP1
00002ec9: MLOAD
00002eca: PUSH1 0x00
00002ecc: EQ
00002ecd: ISZERO
00002ece: DUP1
00002ecf: ISZERO
00002ed0: PUSH2 0x2eea
00002ed3: JUMPI
00002ed4: POP
00002ed5: DUP1
00002ed6: DUP1
00002ed7: PUSH1 0x20
00002ed9: ADD
00002eda: SWAP1
00002edb: MLOAD
00002edc: DUP2
00002edd: ADD
00002ede: SWAP1
00002edf: PUSH2 0x2ee8
00002ee2: SWAP2
00002ee3: SWAP1
00002ee4: PUSH2 0x37ad
00002ee7: JUMP
00002ee8: JUMPDEST
00002ee9: ISZERO
00002eea: JUMPDEST
00002eeb: ISZERO
00002eec: PUSH2 0x0d9e
00002eef: JUMPI
00002ef0: PUSH1 0x40
00002ef2: MLOAD
00002ef3: PUSH32 0x5274afe700000000000000000000000000000000000000000000000000000000
00002f14: DUP2
00002f15: MSTORE
00002f16: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f2b: DUP5
00002f2c: AND
00002f2d: PUSH1 0x04
00002f2f: DUP3
00002f30: ADD
00002f31: MSTORE
00002f32: PUSH1 0x24
00002f34: ADD
00002f35: PUSH2 0x03c1
00002f38: JUMP
00002f39: JUMPDEST
00002f3a: PUSH1 0x60
00002f3c: PUSH2 0x15fb
00002f3f: DUP4
00002f40: DUP4
00002f41: PUSH1 0x00
00002f43: DUP5
00002f44: PUSH1 0x00
00002f46: DUP1
00002f47: DUP6
00002f48: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002f5d: AND
00002f5e: DUP5
00002f5f: DUP7
00002f60: PUSH1 0x40
00002f62: MLOAD
00002f63: PUSH2 0x2f6c
00002f66: SWAP2
00002f67: SWAP1
00002f68: PUSH2 0x3589
00002f6b: JUMP
00002f6c: JUMPDEST
00002f6d: PUSH1 0x00
00002f6f: PUSH1 0x40
00002f71: MLOAD
00002f72: DUP1
00002f73: DUP4
00002f74: SUB
00002f75: DUP2
00002f76: DUP6
00002f77: DUP8
00002f78: GAS
00002f79: CALL
00002f7a: SWAP3
00002f7b: POP
00002f7c: POP
00002f7d: POP
00002f7e: RETURNDATASIZE
00002f7f: DUP1
00002f80: PUSH1 0x00
00002f82: DUP2
00002f83: EQ
00002f84: PUSH2 0x2fa9
00002f87: JUMPI
00002f88: PUSH1 0x40
00002f8a: MLOAD
00002f8b: SWAP2
00002f8c: POP
00002f8d: PUSH1 0x1f
00002f8f: NOT
00002f90: PUSH1 0x3f
00002f92: RETURNDATASIZE
00002f93: ADD
00002f94: AND
00002f95: DUP3
00002f96: ADD
00002f97: PUSH1 0x40
00002f99: MSTORE
00002f9a: RETURNDATASIZE
00002f9b: DUP3
00002f9c: MSTORE
00002f9d: RETURNDATASIZE
00002f9e: PUSH1 0x00
00002fa0: PUSH1 0x20
00002fa2: DUP5
00002fa3: ADD
00002fa4: RETURNDATACOPY
00002fa5: PUSH2 0x2fae
00002fa8: JUMP
00002fa9: JUMPDEST
00002faa: PUSH1 0x60
00002fac: SWAP2
00002fad: POP
00002fae: JUMPDEST
00002faf: POP
00002fb0: SWAP2
00002fb1: POP
00002fb2: SWAP2
00002fb3: POP
00002fb4: PUSH2 0x2fbe
00002fb7: DUP7
00002fb8: DUP4
00002fb9: DUP4
00002fba: PUSH2 0x2fc8
00002fbd: JUMP
00002fbe: JUMPDEST
00002fbf: SWAP7
00002fc0: SWAP6
00002fc1: POP
00002fc2: POP
00002fc3: POP
00002fc4: POP
00002fc5: POP
00002fc6: POP
00002fc7: JUMP
00002fc8: JUMPDEST
00002fc9: PUSH1 0x60
00002fcb: DUP3
00002fcc: PUSH2 0x2fdd
00002fcf: JUMPI
00002fd0: PUSH2 0x2fd8
00002fd3: DUP3
00002fd4: PUSH2 0x3057
00002fd7: JUMP
00002fd8: JUMPDEST
00002fd9: PUSH2 0x15fb
00002fdc: JUMP
00002fdd: JUMPDEST
00002fde: DUP2
00002fdf: MLOAD
00002fe0: ISZERO
00002fe1: DUP1
00002fe2: ISZERO
00002fe3: PUSH2 0x3001
00002fe6: JUMPI
00002fe7: POP
00002fe8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00002ffd: DUP5
00002ffe: AND
00002fff: EXTCODESIZE
00003000: ISZERO
00003001: JUMPDEST
00003002: ISZERO
00003003: PUSH2 0x3050
00003006: JUMPI
00003007: PUSH1 0x40
00003009: MLOAD
0000300a: PUSH32 0x9996b31500000000000000000000000000000000000000000000000000000000
0000302b: DUP2
0000302c: MSTORE
0000302d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003042: DUP6
00003043: AND
00003044: PUSH1 0x04
00003046: DUP3
00003047: ADD
00003048: MSTORE
00003049: PUSH1 0x24
0000304b: ADD
0000304c: PUSH2 0x03c1
0000304f: JUMP
00003050: JUMPDEST
00003051: POP
00003052: DUP1
00003053: PUSH2 0x15fb
00003056: JUMP
00003057: JUMPDEST
00003058: DUP1
00003059: MLOAD
0000305a: ISZERO
0000305b: PUSH2 0x3067
0000305e: JUMPI
0000305f: DUP1
00003060: MLOAD
00003061: DUP1
00003062: DUP3
00003063: PUSH1 0x20
00003065: ADD
00003066: REVERT
00003067: JUMPDEST
00003068: PUSH1 0x40
0000306a: MLOAD
0000306b: PUSH32 0x1425ea4200000000000000000000000000000000000000000000000000000000
0000308c: DUP2
0000308d: MSTORE
0000308e: PUSH1 0x04
00003090: ADD
00003091: PUSH1 0x40
00003093: MLOAD
00003094: DUP1
00003095: SWAP2
00003096: SUB
00003097: SWAP1
00003098: REVERT
00003099: JUMPDEST
0000309a: PUSH1 0x00
0000309c: PUSH1 0x20
0000309e: DUP3
0000309f: DUP5
000030a0: SUB
000030a1: SLT
000030a2: ISZERO
000030a3: PUSH2 0x30ab
000030a6: JUMPI
000030a7: PUSH1 0x00
000030a9: DUP1
000030aa: REVERT
000030ab: JUMPDEST
000030ac: DUP2
000030ad: CALLDATALOAD
000030ae: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
000030cf: DUP2
000030d0: AND
000030d1: DUP2
000030d2: EQ
000030d3: PUSH2 0x15fb
000030d6: JUMPI
000030d7: PUSH1 0x00
000030d9: DUP1
000030da: REVERT
000030db: JUMPDEST
000030dc: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000030fd: PUSH1 0x00
000030ff: MSTORE
00003100: PUSH1 0x41
00003102: PUSH1 0x04
00003104: MSTORE
00003105: PUSH1 0x24
00003107: PUSH1 0x00
00003109: REVERT
0000310a: JUMPDEST
0000310b: PUSH1 0x00
0000310d: DUP3
0000310e: PUSH1 0x1f
00003110: DUP4
00003111: ADD
00003112: SLT
00003113: PUSH2 0x311b
00003116: JUMPI
00003117: PUSH1 0x00
00003119: DUP1
0000311a: REVERT
0000311b: JUMPDEST
0000311c: DUP2
0000311d: CALLDATALOAD
0000311e: PUSH8 0xffffffffffffffff
00003127: DUP1
00003128: DUP3
00003129: GT
0000312a: ISZERO
0000312b: PUSH2 0x3136
0000312e: JUMPI
0000312f: PUSH2 0x3136
00003132: PUSH2 0x30db
00003135: JUMP
00003136: JUMPDEST
00003137: PUSH1 0x40
00003139: MLOAD
0000313a: PUSH1 0x1f
0000313c: DUP4
0000313d: ADD
0000313e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
0000315f: SWAP1
00003160: DUP2
00003161: AND
00003162: PUSH1 0x3f
00003164: ADD
00003165: AND
00003166: DUP2
00003167: ADD
00003168: SWAP1
00003169: DUP3
0000316a: DUP3
0000316b: GT
0000316c: DUP2
0000316d: DUP4
0000316e: LT
0000316f: OR
00003170: ISZERO
00003171: PUSH2 0x317c
00003174: JUMPI
00003175: PUSH2 0x317c
00003178: PUSH2 0x30db
0000317b: JUMP
0000317c: JUMPDEST
0000317d: DUP2
0000317e: PUSH1 0x40
00003180: MSTORE
00003181: DUP4
00003182: DUP2
00003183: MSTORE
00003184: DUP7
00003185: PUSH1 0x20
00003187: DUP6
00003188: DUP9
00003189: ADD
0000318a: ADD
0000318b: GT
0000318c: ISZERO
0000318d: PUSH2 0x3195
00003190: JUMPI
00003191: PUSH1 0x00
00003193: DUP1
00003194: REVERT
00003195: JUMPDEST
00003196: DUP4
00003197: PUSH1 0x20
00003199: DUP8
0000319a: ADD
0000319b: PUSH1 0x20
0000319d: DUP4
0000319e: ADD
0000319f: CALLDATACOPY
000031a0: PUSH1 0x00
000031a2: PUSH1 0x20
000031a4: DUP6
000031a5: DUP4
000031a6: ADD
000031a7: ADD
000031a8: MSTORE
000031a9: DUP1
000031aa: SWAP5
000031ab: POP
000031ac: POP
000031ad: POP
000031ae: POP
000031af: POP
000031b0: SWAP3
000031b1: SWAP2
000031b2: POP
000031b3: POP
000031b4: JUMP
000031b5: JUMPDEST
000031b6: PUSH1 0x00
000031b8: DUP1
000031b9: PUSH1 0x40
000031bb: DUP4
000031bc: DUP6
000031bd: SUB
000031be: SLT
000031bf: ISZERO
000031c0: PUSH2 0x31c8
000031c3: JUMPI
000031c4: PUSH1 0x00
000031c6: DUP1
000031c7: REVERT
000031c8: JUMPDEST
000031c9: DUP3
000031ca: CALLDATALOAD
000031cb: PUSH8 0xffffffffffffffff
000031d4: DUP2
000031d5: GT
000031d6: ISZERO
000031d7: PUSH2 0x31df
000031da: JUMPI
000031db: PUSH1 0x00
000031dd: DUP1
000031de: REVERT
000031df: JUMPDEST
000031e0: PUSH2 0x31eb
000031e3: DUP6
000031e4: DUP3
000031e5: DUP7
000031e6: ADD
000031e7: PUSH2 0x310a
000031ea: JUMP
000031eb: JUMPDEST
000031ec: SWAP6
000031ed: PUSH1 0x20
000031ef: SWAP5
000031f0: SWAP1
000031f1: SWAP5
000031f2: ADD
000031f3: CALLDATALOAD
000031f4: SWAP5
000031f5: POP
000031f6: POP
000031f7: POP
000031f8: POP
000031f9: JUMP
000031fa: JUMPDEST
000031fb: PUSH1 0x00
000031fd: PUSH1 0x20
000031ff: DUP3
00003200: DUP5
00003201: SUB
00003202: SLT
00003203: ISZERO
00003204: PUSH2 0x320c
00003207: JUMPI
00003208: PUSH1 0x00
0000320a: DUP1
0000320b: REVERT
0000320c: JUMPDEST
0000320d: DUP2
0000320e: CALLDATALOAD
0000320f: PUSH8 0xffffffffffffffff
00003218: DUP2
00003219: GT
0000321a: ISZERO
0000321b: PUSH2 0x3223
0000321e: JUMPI
0000321f: PUSH1 0x00
00003221: DUP1
00003222: REVERT
00003223: JUMPDEST
00003224: PUSH2 0x322f
00003227: DUP5
00003228: DUP3
00003229: DUP6
0000322a: ADD
0000322b: PUSH2 0x310a
0000322e: JUMP
0000322f: JUMPDEST
00003230: SWAP5
00003231: SWAP4
00003232: POP
00003233: POP
00003234: POP
00003235: POP
00003236: JUMP
00003237: JUMPDEST
00003238: PUSH1 0x00
0000323a: PUSH1 0x20
0000323c: DUP3
0000323d: DUP5
0000323e: SUB
0000323f: SLT
00003240: ISZERO
00003241: PUSH2 0x3249
00003244: JUMPI
00003245: PUSH1 0x00
00003247: DUP1
00003248: REVERT
00003249: JUMPDEST
0000324a: POP
0000324b: CALLDATALOAD
0000324c: SWAP2
0000324d: SWAP1
0000324e: POP
0000324f: JUMP
00003250: JUMPDEST
00003251: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00003266: DUP2
00003267: AND
00003268: DUP2
00003269: EQ
0000326a: PUSH2 0x1559
0000326d: JUMPI
0000326e: PUSH1 0x00
00003270: DUP1
00003271: REVERT
00003272: JUMPDEST
00003273: DUP1
00003274: CALLDATALOAD
00003275: PUSH2 0x327d
00003278: DUP2
00003279: PUSH2 0x3250
0000327c: JUMP
0000327d: JUMPDEST
0000327e: SWAP2
0000327f: SWAP1
00003280: POP
00003281: JUMP
00003282: JUMPDEST
00003283: PUSH1 0x00
00003285: DUP1
00003286: PUSH1 0x40
00003288: DUP4
00003289: DUP6
0000328a: SUB
0000328b: SLT
0000328c: ISZERO
0000328d: PUSH2 0x3295
00003290: JUMPI
00003291: PUSH1 0x00
00003293: DUP1
00003294: REVERT
00003295: JUMPDEST
00003296: DUP3
00003297: CALLDATALOAD
00003298: SWAP2
00003299: POP
0000329a: PUSH1 0x20
0000329c: DUP4
0000329d: ADD
0000329e: CALLDATALOAD
0000329f: PUSH2 0x32a7
000032a2: DUP2
000032a3: PUSH2 0x3250
000032a6: JUMP
000032a7: JUMPDEST
000032a8: DUP1
000032a9: SWAP2
000032aa: POP
000032ab: POP
000032ac: SWAP3
000032ad: POP
000032ae: SWAP3
000032af: SWAP1
000032b0: POP
000032b1: JUMP
000032b2: JUMPDEST
000032b3: PUSH1 0x00
000032b5: PUSH1 0x20
000032b7: DUP3
000032b8: DUP5
000032b9: SUB
000032ba: SLT
000032bb: ISZERO
000032bc: PUSH2 0x32c4
000032bf: JUMPI
000032c0: PUSH1 0x00
000032c2: DUP1
000032c3: REVERT
000032c4: JUMPDEST
000032c5: DUP2
000032c6: CALLDATALOAD
000032c7: PUSH2 0x15fb
000032ca: DUP2
000032cb: PUSH2 0x3250
000032ce: JUMP
000032cf: JUMPDEST
000032d0: DUP1
000032d1: ISZERO
000032d2: ISZERO
000032d3: DUP2
000032d4: EQ
000032d5: PUSH2 0x1559
000032d8: JUMPI
000032d9: PUSH1 0x00
000032db: DUP1
000032dc: REVERT
000032dd: JUMPDEST
000032de: PUSH1 0x00
000032e0: PUSH1 0x20
000032e2: DUP3
000032e3: DUP5
000032e4: SUB
000032e5: SLT
000032e6: ISZERO
000032e7: PUSH2 0x32ef
000032ea: JUMPI
000032eb: PUSH1 0x00
000032ed: DUP1
000032ee: REVERT
000032ef: JUMPDEST
000032f0: DUP2
000032f1: CALLDATALOAD
000032f2: PUSH2 0x15fb
000032f5: DUP2
000032f6: PUSH2 0x32cf
000032f9: JUMP
000032fa: JUMPDEST
000032fb: PUSH1 0x00
000032fd: DUP1
000032fe: PUSH1 0x00
00003300: DUP1
00003301: PUSH1 0x00
00003303: DUP1
00003304: PUSH1 0x00
00003306: DUP1
00003307: PUSH1 0x00
00003309: DUP1
0000330a: PUSH1 0x00
0000330c: DUP1
0000330d: PUSH2 0x0180
00003310: DUP14
00003311: DUP16
00003312: SUB
00003313: SLT
00003314: ISZERO
00003315: PUSH2 0x331d
00003318: JUMPI
00003319: PUSH1 0x00
0000331b: DUP1
0000331c: REVERT
0000331d: JUMPDEST
0000331e: DUP13
0000331f: CALLDATALOAD
00003320: PUSH2 0x3328
00003323: DUP2
00003324: PUSH2 0x3250
00003327: JUMP
00003328: JUMPDEST
00003329: SWAP12
0000332a: POP
0000332b: PUSH1 0x20
0000332d: DUP14
0000332e: ADD
0000332f: CALLDATALOAD
00003330: PUSH2 0x3338
00003333: DUP2
00003334: PUSH2 0x3250
00003337: JUMP
00003338: JUMPDEST
00003339: SWAP11
0000333a: POP
0000333b: PUSH1 0x40
0000333d: DUP14
0000333e: ADD
0000333f: CALLDATALOAD
00003340: PUSH2 0x3348
00003343: DUP2
00003344: PUSH2 0x3250
00003347: JUMP
00003348: JUMPDEST
00003349: SWAP10
0000334a: POP
0000334b: PUSH1 0x60
0000334d: DUP14
0000334e: ADD
0000334f: CALLDATALOAD
00003350: SWAP9
00003351: POP
00003352: PUSH1 0x80
00003354: DUP14
00003355: ADD
00003356: CALLDATALOAD
00003357: PUSH2 0x335f
0000335a: DUP2
0000335b: PUSH2 0x32cf
0000335e: JUMP
0000335f: JUMPDEST
00003360: SWAP8
00003361: POP
00003362: PUSH1 0xa0
00003364: DUP14
00003365: ADD
00003366: CALLDATALOAD
00003367: PUSH2 0x336f
0000336a: DUP2
0000336b: PUSH2 0x32cf
0000336e: JUMP
0000336f: JUMPDEST
00003370: SWAP7
00003371: POP
00003372: PUSH1 0xc0
00003374: DUP14
00003375: ADD
00003376: CALLDATALOAD
00003377: SWAP6
00003378: POP
00003379: PUSH1 0xe0
0000337b: DUP14
0000337c: ADD
0000337d: CALLDATALOAD
0000337e: PUSH2 0x3386
00003381: DUP2
00003382: PUSH2 0x3250
00003385: JUMP
00003386: JUMPDEST
00003387: SWAP5
00003388: POP
00003389: PUSH2 0x0100
0000338c: DUP14
0000338d: ADD
0000338e: CALLDATALOAD
0000338f: SWAP4
00003390: POP
00003391: PUSH2 0x0120
00003394: DUP14
00003395: ADD
00003396: CALLDATALOAD
00003397: SWAP3
00003398: POP
00003399: PUSH2 0x33a5
0000339c: PUSH2 0x0140
0000339f: DUP15
000033a0: ADD
000033a1: PUSH2 0x3272
000033a4: JUMP
000033a5: JUMPDEST
000033a6: SWAP2
000033a7: POP
000033a8: PUSH2 0x33b4
000033ab: PUSH2 0x0160
000033ae: DUP15
000033af: ADD
000033b0: PUSH2 0x3272
000033b3: JUMP
000033b4: JUMPDEST
000033b5: SWAP1
000033b6: POP
000033b7: SWAP3
000033b8: SWAP6
000033b9: SWAP9
000033ba: SWAP12
000033bb: POP
000033bc: SWAP3
000033bd: SWAP6
000033be: SWAP9
000033bf: SWAP12
000033c0: POP
000033c1: SWAP3
000033c2: SWAP6
000033c3: SWAP9
000033c4: SWAP12
000033c5: JUMP
000033c6: JUMPDEST
000033c7: PUSH1 0x00
000033c9: DUP1
000033ca: PUSH1 0x40
000033cc: DUP4
000033cd: DUP6
000033ce: SUB
000033cf: SLT
000033d0: ISZERO
000033d1: PUSH2 0x33d9
000033d4: JUMPI
000033d5: PUSH1 0x00
000033d7: DUP1
000033d8: REVERT
000033d9: JUMPDEST
000033da: POP
000033db: POP
000033dc: DUP1
000033dd: CALLDATALOAD
000033de: SWAP3
000033df: PUSH1 0x20
000033e1: SWAP1
000033e2: SWAP2
000033e3: ADD
000033e4: CALLDATALOAD
000033e5: SWAP2
000033e6: POP
000033e7: JUMP
000033e8: JUMPDEST
000033e9: PUSH1 0x00
000033eb: DUP1
000033ec: PUSH1 0x40
000033ee: DUP4
000033ef: DUP6
000033f0: SUB
000033f1: SLT
000033f2: ISZERO
000033f3: PUSH2 0x33fb
000033f6: JUMPI
000033f7: PUSH1 0x00
000033f9: DUP1
000033fa: REVERT
000033fb: JUMPDEST
000033fc: DUP3
000033fd: CALLDATALOAD
000033fe: PUSH8 0xffffffffffffffff
00003407: DUP2
00003408: GT
00003409: ISZERO
0000340a: PUSH2 0x3412
0000340d: JUMPI
0000340e: PUSH1 0x00
00003410: DUP1
00003411: REVERT
00003412: JUMPDEST
00003413: PUSH2 0x341e
00003416: DUP6
00003417: DUP3
00003418: DUP7
00003419: ADD
0000341a: PUSH2 0x310a
0000341d: JUMP
0000341e: JUMPDEST
0000341f: SWAP3
00003420: POP
00003421: POP
00003422: PUSH1 0x20
00003424: DUP4
00003425: ADD
00003426: CALLDATALOAD
00003427: PUSH2 0x32a7
0000342a: DUP2
0000342b: PUSH2 0x32cf
0000342e: JUMP
0000342f: JUMPDEST
00003430: PUSH1 0x00
00003432: DUP1
00003433: PUSH1 0x00
00003435: PUSH1 0x60
00003437: DUP5
00003438: DUP7
00003439: SUB
0000343a: SLT
0000343b: ISZERO
0000343c: PUSH2 0x3444
0000343f: JUMPI
00003440: PUSH1 0x00
00003442: DUP1
00003443: REVERT
00003444: JUMPDEST
00003445: DUP4
00003446: CALLDATALOAD
00003447: PUSH2 0x344f
0000344a: DUP2
0000344b: PUSH2 0x3250
0000344e: JUMP
0000344f: JUMPDEST
00003450: SWAP3
00003451: POP
00003452: PUSH1 0x20
00003454: DUP5
00003455: ADD
00003456: CALLDATALOAD
00003457: PUSH2 0x345f
0000345a: DUP2
0000345b: PUSH2 0x3250
0000345e: JUMP
0000345f: JUMPDEST
00003460: SWAP3
00003461: SWAP6
00003462: SWAP3
00003463: SWAP5
00003464: POP
00003465: POP
00003466: POP
00003467: PUSH1 0x40
00003469: SWAP2
0000346a: SWAP1
0000346b: SWAP2
0000346c: ADD
0000346d: CALLDATALOAD
0000346e: SWAP1
0000346f: JUMP
00003470: JUMPDEST
00003471: PUSH1 0x00
00003473: DUP1
00003474: PUSH1 0x00
00003476: PUSH1 0x60
00003478: DUP5
00003479: DUP7
0000347a: SUB
0000347b: SLT
0000347c: ISZERO
0000347d: PUSH2 0x3485
00003480: JUMPI
00003481: PUSH1 0x00
00003483: DUP1
00003484: REVERT
00003485: JUMPDEST
00003486: DUP4
00003487: CALLDATALOAD
00003488: PUSH8 0xffffffffffffffff
00003491: DUP1
00003492: DUP3
00003493: GT
00003494: ISZERO
00003495: PUSH2 0x349d
00003498: JUMPI
00003499: PUSH1 0x00
0000349b: DUP1
0000349c: REVERT
0000349d: JUMPDEST
0000349e: PUSH2 0x34a9
000034a1: DUP8
000034a2: DUP4
000034a3: DUP9
000034a4: ADD
000034a5: PUSH2 0x310a
000034a8: JUMP
000034a9: JUMPDEST
000034aa: SWAP5
000034ab: POP
000034ac: PUSH1 0x20
000034ae: DUP7
000034af: ADD
000034b0: CALLDATALOAD
000034b1: SWAP2
000034b2: POP
000034b3: DUP1
000034b4: DUP3
000034b5: GT
000034b6: ISZERO
000034b7: PUSH2 0x34bf
000034ba: JUMPI
000034bb: PUSH1 0x00
000034bd: DUP1
000034be: REVERT
000034bf: JUMPDEST
000034c0: POP
000034c1: PUSH2 0x34cc
000034c4: DUP7
000034c5: DUP3
000034c6: DUP8
000034c7: ADD
000034c8: PUSH2 0x310a
000034cb: JUMP
000034cc: JUMPDEST
000034cd: SWAP3
000034ce: POP
000034cf: POP
000034d0: PUSH1 0x40
000034d2: DUP5
000034d3: ADD
000034d4: CALLDATALOAD
000034d5: SWAP1
000034d6: POP
000034d7: SWAP3
000034d8: POP
000034d9: SWAP3
000034da: POP
000034db: SWAP3
000034dc: JUMP
000034dd: JUMPDEST
000034de: PUSH1 0x00
000034e0: DUP1
000034e1: PUSH1 0x00
000034e3: DUP1
000034e4: PUSH1 0x00
000034e6: PUSH1 0xa0
000034e8: DUP7
000034e9: DUP9
000034ea: SUB
000034eb: SLT
000034ec: ISZERO
000034ed: PUSH2 0x34f5
000034f0: JUMPI
000034f1: PUSH1 0x00
000034f3: DUP1
000034f4: REVERT
000034f5: JUMPDEST
000034f6: DUP6
000034f7: CALLDATALOAD
000034f8: PUSH8 0xffffffffffffffff
00003501: DUP1
00003502: DUP3
00003503: GT
00003504: ISZERO
00003505: PUSH2 0x350d
00003508: JUMPI
00003509: PUSH1 0x00
0000350b: DUP1
0000350c: REVERT
0000350d: JUMPDEST
0000350e: PUSH2 0x3519
00003511: DUP10
00003512: DUP4
00003513: DUP11
00003514: ADD
00003515: PUSH2 0x310a
00003518: JUMP
00003519: JUMPDEST
0000351a: SWAP7
0000351b: POP
0000351c: PUSH1 0x20
0000351e: DUP9
0000351f: ADD
00003520: CALLDATALOAD
00003521: SWAP6
00003522: POP
00003523: PUSH1 0x40
00003525: DUP9
00003526: ADD
00003527: CALLDATALOAD
00003528: SWAP2
00003529: POP
0000352a: DUP1
0000352b: DUP3
0000352c: GT
0000352d: ISZERO
0000352e: PUSH2 0x3536
00003531: JUMPI
00003532: PUSH1 0x00
00003534: DUP1
00003535: REVERT
00003536: JUMPDEST
00003537: POP
00003538: PUSH2 0x3543
0000353b: DUP9
0000353c: DUP3
0000353d: DUP10
0000353e: ADD
0000353f: PUSH2 0x310a
00003542: JUMP
00003543: JUMPDEST
00003544: SWAP4
00003545: POP
00003546: POP
00003547: PUSH1 0x60
00003549: DUP7
0000354a: ADD
0000354b: CALLDATALOAD
0000354c: PUSH2 0x3554
0000354f: DUP2
00003550: PUSH2 0x3250
00003553: JUMP
00003554: JUMPDEST
00003555: SWAP5
00003556: SWAP8
00003557: SWAP4
00003558: SWAP7
00003559: POP
0000355a: SWAP2
0000355b: SWAP5
0000355c: PUSH1 0x80
0000355e: ADD
0000355f: CALLDATALOAD
00003560: SWAP3
00003561: SWAP2
00003562: POP
00003563: POP
00003564: JUMP
00003565: JUMPDEST
00003566: PUSH1 0x00
00003568: JUMPDEST
00003569: DUP4
0000356a: DUP2
0000356b: LT
0000356c: ISZERO
0000356d: PUSH2 0x3580
00003570: JUMPI
00003571: DUP2
00003572: DUP2
00003573: ADD
00003574: MLOAD
00003575: DUP4
00003576: DUP3
00003577: ADD
00003578: MSTORE
00003579: PUSH1 0x20
0000357b: ADD
0000357c: PUSH2 0x3568
0000357f: JUMP
00003580: JUMPDEST
00003581: POP
00003582: POP
00003583: PUSH1 0x00
00003585: SWAP2
00003586: ADD
00003587: MSTORE
00003588: JUMP
00003589: JUMPDEST
0000358a: PUSH1 0x00
0000358c: DUP3
0000358d: MLOAD
0000358e: PUSH2 0x359b
00003591: DUP2
00003592: DUP5
00003593: PUSH1 0x20
00003595: DUP8
00003596: ADD
00003597: PUSH2 0x3565
0000359a: JUMP
0000359b: JUMPDEST
0000359c: SWAP2
0000359d: SWAP1
0000359e: SWAP2
0000359f: ADD
000035a0: SWAP3
000035a1: SWAP2
000035a2: POP
000035a3: POP
000035a4: JUMP
000035a5: JUMPDEST
000035a6: PUSH1 0x00
000035a8: DUP2
000035a9: MLOAD
000035aa: DUP1
000035ab: DUP5
000035ac: MSTORE
000035ad: PUSH2 0x35bd
000035b0: DUP2
000035b1: PUSH1 0x20
000035b3: DUP7
000035b4: ADD
000035b5: PUSH1 0x20
000035b7: DUP7
000035b8: ADD
000035b9: PUSH2 0x3565
000035bc: JUMP
000035bd: JUMPDEST
000035be: PUSH1 0x1f
000035c0: ADD
000035c1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000035e2: AND
000035e3: SWAP3
000035e4: SWAP1
000035e5: SWAP3
000035e6: ADD
000035e7: PUSH1 0x20
000035e9: ADD
000035ea: SWAP3
000035eb: SWAP2
000035ec: POP
000035ed: POP
000035ee: JUMP
000035ef: JUMPDEST
000035f0: PUSH1 0x60
000035f2: DUP2
000035f3: MSTORE
000035f4: PUSH1 0x00
000035f6: PUSH2 0x3602
000035f9: PUSH1 0x60
000035fb: DUP4
000035fc: ADD
000035fd: DUP7
000035fe: PUSH2 0x35a5
00003601: JUMP
00003602: JUMPDEST
00003603: PUSH1 0x20
00003605: DUP4
00003606: ADD
00003607: SWAP5
00003608: SWAP1
00003609: SWAP5
0000360a: MSTORE
0000360b: POP
0000360c: PUSH1 0x40
0000360e: ADD
0000360f: MSTORE
00003610: SWAP2
00003611: SWAP1
00003612: POP
00003613: JUMP
00003614: JUMPDEST
00003615: PUSH1 0x00
00003617: PUSH1 0x20
00003619: DUP3
0000361a: DUP5
0000361b: SUB
0000361c: SLT
0000361d: ISZERO
0000361e: PUSH2 0x3626
00003621: JUMPI
00003622: PUSH1 0x00
00003624: DUP1
00003625: REVERT
00003626: JUMPDEST
00003627: POP
00003628: MLOAD
00003629: SWAP2
0000362a: SWAP1
0000362b: POP
0000362c: JUMP
0000362d: JUMPDEST
0000362e: PUSH1 0x60
00003630: DUP2
00003631: MSTORE
00003632: PUSH1 0x00
00003634: PUSH2 0x3640
00003637: PUSH1 0x60
00003639: DUP4
0000363a: ADD
0000363b: DUP7
0000363c: PUSH2 0x35a5
0000363f: JUMP
00003640: JUMPDEST
00003641: SWAP4
00003642: ISZERO
00003643: ISZERO
00003644: PUSH1 0x20
00003646: DUP4
00003647: ADD
00003648: MSTORE
00003649: POP
0000364a: SWAP1
0000364b: ISZERO
0000364c: ISZERO
0000364d: PUSH1 0x40
0000364f: SWAP1
00003650: SWAP2
00003651: ADD
00003652: MSTORE
00003653: SWAP2
00003654: SWAP1
00003655: POP
00003656: JUMP
00003657: JUMPDEST
00003658: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003679: PUSH1 0x00
0000367b: MSTORE
0000367c: PUSH1 0x11
0000367e: PUSH1 0x04
00003680: MSTORE
00003681: PUSH1 0x24
00003683: PUSH1 0x00
00003685: REVERT
00003686: JUMPDEST
00003687: DUP2
00003688: DUP2
00003689: SUB
0000368a: DUP2
0000368b: DUP2
0000368c: GT
0000368d: ISZERO
0000368e: PUSH2 0x0b54
00003691: JUMPI
00003692: PUSH2 0x0b54
00003695: PUSH2 0x3657
00003698: JUMP
00003699: JUMPDEST
0000369a: DUP5
0000369b: DUP2
0000369c: MSTORE
0000369d: PUSH1 0x80
0000369f: PUSH1 0x20
000036a1: DUP3
000036a2: ADD
000036a3: MSTORE
000036a4: PUSH1 0x00
000036a6: PUSH2 0x36b2
000036a9: PUSH1 0x80
000036ab: DUP4
000036ac: ADD
000036ad: DUP7
000036ae: PUSH2 0x35a5
000036b1: JUMP
000036b2: JUMPDEST
000036b3: PUSH1 0x40
000036b5: DUP4
000036b6: ADD
000036b7: SWAP5
000036b8: SWAP1
000036b9: SWAP5
000036ba: MSTORE
000036bb: POP
000036bc: PUSH1 0x60
000036be: ADD
000036bf: MSTORE
000036c0: SWAP3
000036c1: SWAP2
000036c2: POP
000036c3: POP
000036c4: JUMP
000036c5: JUMPDEST
000036c6: PUSH1 0x00
000036c8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000036e9: DUP3
000036ea: SUB
000036eb: PUSH2 0x36f6
000036ee: JUMPI
000036ef: PUSH2 0x36f6
000036f2: PUSH2 0x3657
000036f5: JUMP
000036f6: JUMPDEST
000036f7: POP
000036f8: PUSH1 0x01
000036fa: ADD
000036fb: SWAP1
000036fc: JUMP
000036fd: JUMPDEST
000036fe: DUP1
000036ff: DUP3
00003700: MUL
00003701: DUP2
00003702: ISZERO
00003703: DUP3
00003704: DUP3
00003705: DIV
00003706: DUP5
00003707: EQ
00003708: OR
00003709: PUSH2 0x0b54
0000370c: JUMPI
0000370d: PUSH2 0x0b54
00003710: PUSH2 0x3657
00003713: JUMP
00003714: JUMPDEST
00003715: PUSH1 0x00
00003717: DUP3
00003718: PUSH2 0x374a
0000371b: JUMPI
0000371c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
0000373d: PUSH1 0x00
0000373f: MSTORE
00003740: PUSH1 0x12
00003742: PUSH1 0x04
00003744: MSTORE
00003745: PUSH1 0x24
00003747: PUSH1 0x00
00003749: REVERT
0000374a: JUMPDEST
0000374b: POP
0000374c: DIV
0000374d: SWAP1
0000374e: JUMP
0000374f: JUMPDEST
00003750: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00003771: PUSH1 0x00
00003773: MSTORE
00003774: PUSH1 0x32
00003776: PUSH1 0x04
00003778: MSTORE
00003779: PUSH1 0x24
0000377b: PUSH1 0x00
0000377d: REVERT
0000377e: JUMPDEST
0000377f: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000037a0: PUSH1 0x00
000037a2: MSTORE
000037a3: PUSH1 0x31
000037a5: PUSH1 0x04
000037a7: MSTORE
000037a8: PUSH1 0x24
000037aa: PUSH1 0x00
000037ac: REVERT
000037ad: JUMPDEST
000037ae: PUSH1 0x00
000037b0: PUSH1 0x20
000037b2: DUP3
000037b3: DUP5
000037b4: SUB
000037b5: SLT
000037b6: ISZERO
000037b7: PUSH2 0x37bf
000037ba: JUMPI
000037bb: PUSH1 0x00
000037bd: DUP1
000037be: REVERT
000037bf: JUMPDEST
000037c0: DUP2
000037c1: MLOAD
000037c2: PUSH2 0x15fb
000037c5: DUP2
000037c6: PUSH2 0x32cf
000037c9: JUMP
000037ca: INVALID
000037cb: LOG2
000037cc: PUSH5 0x6970667358
000037d2: UNKNOWN(0x22)
000037d3: SLT
000037d4: KECCAK256
000037d5: UNKNOWN(0x28)
000037d6: UNKNOWN(0xDB)
000037d7: PUSH9 0xa600810151d4a17571
000037e1: BALANCE
000037e2: CALLER
000037e3: UNKNOWN(0xBA)
000037e4: PUSH28

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0xd8af37cb19a9de169d4cea080e535a345c670917fff29d2de3c2843659021e0b
call_targets: 0xb0e5bea9f6e7e66e284bcfd47e354aa3484de62e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xd8af37cb19a9de169d4cea080e535a345c670917fff29d2de3c2843659021e0b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb0e5bea9f6e7e66e284bcfd47e354aa3484de62e"
    ],
    "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": "0xd73792a9",
            "selector": "0xd73792a9",
            "calldata_variants": [
                "0xd73792a9",
                "0xd73792a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe7b0610f",
            "selector": "0xe7b0610f",
            "calldata_variants": [
                "0xe7b0610f",
                "0xe7b0610f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2225e1e",
            "selector": "0xf2225e1e",
            "calldata_variants": [
                "0xf2225e1e",
                "0xf2225e1e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7e80312",
            "selector": "0xf7e80312",
            "calldata_variants": [
                "0xf7e80312",
                "0xf7e803120000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xced72f87",
            "selector": "0xced72f87",
            "calldata_variants": [
                "0xced72f87",
                "0xced72f870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd431b1ac",
            "selector": "0xd431b1ac",
            "calldata_variants": [
                "0xd431b1ac",
                "0xd431b1ac0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa9c53252",
            "selector": "0xa9c53252",
            "calldata_variants": [
                "0xa9c53252",
                "0xa9c532520000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7788,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 12153,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 2,
    "guards_detected": [],
    "untrusted_call_count": 2
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0xd8af37cb19a9de169d4cea080e535a345c670917fff29d2de3c2843659021e0b
call_targets: 0xb0e5bea9f6e7e66e284bcfd47e354aa3484de62e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xd8af37cb19a9de169d4cea080e535a345c670917fff29d2de3c2843659021e0b",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xb0e5bea9f6e7e66e284bcfd47e354aa3484de62e"
    ],
    "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": "0xd73792a9",
            "selector": "0xd73792a9",
            "calldata_variants": [
                "0xd73792a9",
                "0xd73792a90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe7b0610f",
            "selector": "0xe7b0610f",
            "calldata_variants": [
                "0xe7b0610f",
                "0xe7b0610f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2225e1e",
            "selector": "0xf2225e1e",
            "calldata_variants": [
                "0xf2225e1e",
                "0xf2225e1e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7e80312",
            "selector": "0xf7e80312",
            "calldata_variants": [
                "0xf7e80312",
                "0xf7e803120000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xced72f87",
            "selector": "0xced72f87",
            "calldata_variants": [
                "0xced72f87",
                "0xced72f870000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd431b1ac",
            "selector": "0xd431b1ac",
            "calldata_variants": [
                "0xd431b1ac",
                "0xd431b1ac0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd547741f",
            "selector": "0xd547741f",
            "calldata_variants": [
                "0xd547741f",
                "0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xa9c53252",
            "selector": "0xa9c53252",
            "calldata_variants": [
                "0xa9c53252",
                "0xa9c532520000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 7788,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 12153,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
medium reentrancy codex External CALL before state update (possible reentrancy if target untrusted) 75 no
view
evidence_json
{
    "evidence": "CALL at pc 0x1e6c is followed by an SSTORE in the next block (pc 0x1e82). No guards detected in the bundle. Target is derived from storage with an EXTCODESIZE check earlier in the sequence.",
    "locations": [
        "pc:0x1e6c",
        "pc:0x1e82"
    ],
    "recommendation": "Follow checks-effects-interactions: move critical state updates before the external CALL, add a reentrancy guard, and restrict/validate the call target if it is configurable.",
    "exploit_scenario": "If the CALL at pc 0x1e6c targets an untrusted contract, that contract can reenter before the subsequent SSTORE executes, potentially exploiting temporarily inconsistent state or bypassing intended sequencing. This risk depends on whether the callee is attacker-controlled (target appears storage-derived)."
}
low other codex Low-level CALL with computed target/value and unclear success enforcement 65 no
view
evidence_json
{
    "evidence": "CALL at pc 0x2f79 with computed target/value; opcodes show CALL followed by SWAP/POP operations and a RETURNDATASIZE equality check. Detector findings report computed target/value and possible ETH value transfer; guards_detected is empty, and validation did not confirm a variable target.",
    "locations": [
        "pc:0x2f79"
    ],
    "recommendation": "Validate or whitelist the call target and value, and explicitly check the CALL success flag before proceeding. Handle return data in a way compatible with expected ABI (e.g., require success and accept empty/32-byte returns if calling ERC20s).",
    "exploit_scenario": "If the CALL at pc 0x2f79 uses a caller-controlled target/value, the contract could be coerced into arbitrary external calls or ETH transfers. The bytecode sequence appears to discard the CALL success flag and only compares RETURNDATASIZE, so a failed call may be treated as success. Validation indicates a constant self-target in one trace, so the risk is uncertain and may be benign depending on actual target flow."
}