019c0eaa-46e2-714b-a04f-a45cdb834d69
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 42313 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 42314 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 42315 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 42316 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 42317 | capability.graph | complete | 1 / 3 | 2 months ago |
| 42318 | detector.run | complete | 1 / 3 | 2 months ago |
| 42319 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42495 | report.consolidate | complete | 1 / 6 | 2 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"External CALLs to computed targets (one with ETH value) are present without any detected reentrancy guard, creating a potential reentrancy/untrusted-call risk if state is updated after the call.","findings":[{"severity":"medium","category":"reentrancy","title":"External CALL with ETH value to computed target (reentrancy/untrusted-call risk)","exploit_scenario":"If a function forwards ETH to a user-supplied recipient and updates accounting after the external CALL, a malicious recipient contract could reenter (via fallback/receive) and invoke the same release/withdraw path multiple times before state is finalized. Bytecode-only analysis cannot confirm the exact state-update order; risk depends on surrounding logic.","recommendation":"Apply checks-effects-interactions: update any accounting/state before the external call, or use a pull-payment pattern. Add a reentrancy guard around the affected entrypoints. If only specific targets are intended, validate the recipient/token address before the call.","evidence":"CALL at pc 0x224f masks an address from the stack (PUSH1 0xa0; SHL; SUB; AND) and uses a computed value; callsite metadata shows target/value are computed. A second CALL at pc 0x2a87 uses full GAS with computed stack arguments. Detector flagged both as untrusted CALLs with possible ETH value; validation trace noted a constant target in one observed trace, so target variability is uncertain from bytecode alone.","locations":["pc:0x224f","pc:0x2a87"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-auyuxg94
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0fb7-6a93-7402-b0ed-93b846d2c3e4
--------
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
exec
/bin/bash -lc ls in /tmp/codex-auyuxg94 succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-auyuxg94 succeeded in 10ms:
{
"analysis_artifact": {
"address": "0xeda4c4067bdd708bb75ac620e1e2215a747a1f39",
"artifact_hash": "0xf6fc7f51ac5129ce2076470e9d74849d82267c83265672c1d0b90e7c7b98b2bc",
"artifact_json": {
"auth": {
"guards": []
},
"basic_blocks": [
{
"end_pc": 12,
"hash": "0x0b6eca42904daa282c46755cddac3ceb4b5fb559336310fd0951cd9ddd07694a",
"opcodes": [
"PUSH1",
"PUSH1",
"MSTORE",
"PUSH1",
"CALLDATASIZE",
"LT",
"PUSH2",
exec
/bin/bash -lc 'rg -n "call:8783|call:10887" BYTECODE_BUNDLE.json' in /tmp/codex-auyuxg94 succeeded in 9ms:
35461: "to": "call:8783",
35465: "from": "call:8783",
35491: "to": "call:10887",
35495: "from": "call:10887",
40908: "id": "call:8783",
40926: "id": "call:10887",
exec
/bin/bash -lc "sed -n '35440,35520p' BYTECODE_BUNDLE.json" in /tmp/codex-auyuxg94 succeeded in 10ms:
"from": "bb:5546",
"to": "call:5549",
"type": "contains"
},
{
"from": "call:5549",
"to": "sink:staticcall",
"type": "capability"
},
{
"from": "bb:5751",
"to": "call:5754",
"type": "contains"
},
{
"from": "call:5754",
"to": "sink:staticcall",
"type": "capability"
},
{
exec
/bin/bash -lc 'rg -n "bb:8751|bb:10874" BYTECODE_BUNDLE.json' in /tmp/codex-auyuxg94 succeeded in 9ms:
16593: "to": "bb:8751",
16607: "from": "bb:8751",
16612: "from": "bb:8751",
17057: "from": "bb:10874",
17062: "from": "bb:10874",
33666: "to": "bb:8751",
33680: "from": "bb:8751",
33685: "from": "bb:8751",
34130: "from": "bb:10874",
34135: "from": "bb:10874",
35460: "from": "bb:8751",
35490: "from": "bb:10874",
38654: "id": "bb:8751",
39221: "id": "bb:10874",
exec
/bin/bash -lc "sed -n '38640,38720p' BYTECODE_BUNDLE.json" in /tmp/codex-auyuxg94 succeeded in 10ms:
"id": "bb:8672",
"start_pc": 8672,
"type": "basic_block"
},
{
"end_pc": 8750,
"hash": "0x028cbd838e067a86b8c2b4d08ba6d05241416d51541141a7aa3a45a438da8be5",
"id": "bb:8680",
"start_pc": 8680,
"type": "basic_block"
},
{
"end_pc": 8795,
"hash": "0xfe142d05918cf0e8b962dcc1b4d523cf37726060778c33250f110c4b436318c6",
"id": "bb:8751",
"start_pc": 8751,
"type": "basic_block"
},
{
"end_pc": 8804,
exec
/bin/bash -lc "python - <<'PY'
import json
import sys
from pathlib import Path
p=Path('BYTECODE_BUNDLE.json')
with p.open() as f:
data=json.load(f)
# find basic block with start_pc 8751 and 10874 in analysis_artifact artifact_json basic_blocks
bbs = data['analysis_artifact']['artifact_json']['basic_blocks']
for sp in (8751,10874):
blk = next((b for b in bbs if b.get('start_pc')==sp), None)
print('block', sp, 'found', bool(blk))
if blk:
print('end_pc', blk['end_pc'])
print('opcodes', blk['opcodes'])
PY" in /tmp/codex-auyuxg94 succeeded in 46ms:
block 8751 found True
end_pc 8795
opcodes ['JUMPDEST', 'PUSH1', 'MLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'OP_85', 'AND', 'OP_90', 'OP_82', 'ISZERO', 'PUSH2', 'MUL', 'OP_90', 'OP_83', 'OP_90', 'PUSH1', 'OP_81', 'OP_81', 'OP_81', 'OP_85', 'OP_88', 'OP_88', 'CALL', 'OP_93', 'POP', 'POP', 'POP', 'POP', 'ISZERO', 'OP_80', 'ISZERO', 'PUSH2', 'JUMPI']
block 10874 found True
end_pc 10901
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']
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
# edges in artifact_json maybe? find node edges in analysis_artifact artifact_json if there is 'edges'
artifact = data['analysis_artifact']['artifact_json']
# find edges
edges = artifact.get('edges', [])
# map containment edges from function to bb
contain = [e for e in edges if e.get('type')=='contains']
# create reverse map to function(s) containing bb
from_to = {}
for e in contain:
from_to.setdefault(e['to'], []).append(e['from'])
for bb in ['bb:8751','bb:10874']:
print(bb, 'contained by', from_to.get(bb))
# also check if there are function nodes in artifact_json? nodes with type function
fns = {n['id']:n for n in artifact.get('nodes', []) if n.get('type')=='function'}
print('function nodes count', len(fns))
# output selectors for functions containing these blocks
for bb in ['bb:8751','bb:10874']:
fns_ids = from_to.get(bb, [])
print('bb', bb, 'fns_ids', fns_ids)
if fns_ids:
for fid in fns_ids:
fn = fns.get(fid)
if fn:
print(' ', fid, fn.get('selector'), fn.get('entry_pc'))
PY" in /tmp/codex-auyuxg94 succeeded in 39ms:
bb:8751 contained by None
bb:10874 contained by None
function nodes count 0
bb bb:8751 fns_ids []
bb bb:10874 fns_ids []
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
print(data.keys())
PY" in /tmp/codex-auyuxg94 succeeded in 42ms:
dict_keys(['analysis_artifact', 'analysis_run', 'artifact', 'capability_graph', 'detector_findings', 'heuristics_summary'])
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
cap = data['capability_graph']
print(cap.keys())
print('nodes', len(cap.get('nodes', [])), 'edges', len(cap.get('edges', [])))
# find functions nodes
fns=[n for n in cap['nodes'] if n.get('type')=='function']
print('function nodes', len(fns))
print('sample', fns[:5])
PY" in /tmp/codex-auyuxg94 exited 1 in 46ms:
dict_keys(['address', 'block_number', 'chain_id', 'codehash', 'created_at', 'graph_hash', 'graph_json', 'id', 'updated_at', 'version'])
nodes 0 edges 0
Traceback (most recent call last):
File "<stdin>", line 8, in <module>
KeyError: 'nodes'
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
cap = data['capability_graph']['graph_json']
print(cap.keys())
print('nodes', len(cap.get('nodes', [])), 'edges', len(cap.get('edges', [])))
# find function nodes
fns=[n for n in cap['nodes'] if n.get('type')=='function']
print('function nodes', len(fns))
print('sample', fns[:5])
PY" in /tmp/codex-auyuxg94 succeeded in 36ms:
dict_keys(['edges', 'nodes', 'version'])
nodes 810 edges 884
function nodes 31
sample [{'entry_pc': 4190258143, 'id': 'fn:0xf9c243df', 'selector': '0xf9c243df', 'type': 'function'}, {'entry_pc': 4272867189, 'id': 'fn:0xfa7643f4', 'selector': '0xfa7643f4', 'type': 'function'}, {'entry_pc': 4293673438, 'id': 'fn:0xfeaec775', 'selector': '0xfeaec775', 'type': 'function'}, {'entry_pc': None, 'id': 'fn:0xffec41de', 'selector': '0xffec41de', 'type': 'function'}, {'entry_pc': 4099210651, 'id': 'fn:0xf2fde38b', 'selector': '0xf2fde38b', 'type': 'function'}]
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
cap = data['capability_graph']['graph_json']
edges = cap['edges']
contain = [e for e in edges if e.get('type')=='contains']
# build map to->from
from_to = {}
for e in contain:
from_to.setdefault(e['to'], []).append(e['from'])
for bb in ['bb:8751','bb:10874']:
print(bb, 'contained by', from_to.get(bb))
# map function nodes
def get_fn(fid):
return next((n for n in cap['nodes'] if n.get('id')==fid), None)
for bb in ['bb:8751','bb:10874']:
fns_ids = from_to.get(bb, [])
print('bb', bb, 'fns', fns_ids)
for fid in fns_ids or []:
fn = get_fn(fid)
if fn:
print(' ', fid, fn.get('selector'), fn.get('entry_pc'))
PY" in /tmp/codex-auyuxg94 succeeded in 40ms:
bb:8751 contained by None
bb:10874 contained by None
bb bb:8751 fns []
bb bb:10874 fns []
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
cap = data['capability_graph']['graph_json']
edges = [e for e in cap['edges'] if e.get('from')=='bb:8751' or e.get('to')=='bb:8751']
print('edges for bb:8751', edges)
edges2 = [e for e in cap['edges'] if e.get('from')=='bb:10874' or e.get('to')=='bb:10874']
print('edges for bb:10874', edges2)
PY" in /tmp/codex-auyuxg94 succeeded in 41ms:
edges for bb:8751 [{'from': 'bb:8672', 'to': 'bb:8751', 'type': 'control_flow'}, {'from': 'bb:8751', 'to': 'bb:8805', 'type': 'control_flow'}, {'from': 'bb:8751', 'to': 'bb:8796', 'type': 'control_flow_fallthrough'}, {'from': 'bb:8751', 'to': 'call:8783', 'type': 'contains'}]
edges for bb:10874 [{'from': 'bb:10874', 'to': 'bb:10935', 'type': 'control_flow'}, {'from': 'bb:10874', 'to': 'bb:10902', 'type': 'control_flow_fallthrough'}, {'from': 'bb:10874', 'to': 'call:10887', 'type': 'contains'}]
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
cap = data['capability_graph']['graph_json']
# build map of which blocks are directly contained by functions (if any)
func_contains = [e for e in cap['edges'] if e.get('type')=='contains' and e['from'].startswith('fn:') and e['to'].startswith('bb:')]
print('function contains edges', len(func_contains))
print(func_contains[:5])
PY" in /tmp/codex-auyuxg94 succeeded in 47ms:
function contains edges 0
[]
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
artifact=data['analysis_artifact']['artifact_json']
print(artifact.keys())
PY" in /tmp/codex-auyuxg94 succeeded in 44ms:
dict_keys(['auth', 'basic_blocks', 'callsites', 'cfg_edges', 'cfg_hash', 'dispatcher_type', 'function_entries', 'functions', 'selectors', 'sinks', 'storage', 'version'])
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
callsites=data['analysis_artifact']['artifact_json']['callsites']
# find callsites with pc 8783, 10887
for pc in (8783,10887):
cs = next((c for c in callsites if c.get('pc')==pc), None)
print('pc', pc, 'callsite', cs)
PY" in /tmp/codex-auyuxg94 succeeded in 35ms:
pc 8783 callsite {'opcode': 'CALL', 'pc': 8783, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
pc 10887 callsite {'opcode': 'CALL', 'pc': 10887, 'returndata_checked': None, 'target_expression_category': 'computed', 'value_expression_category': 'computed'}
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
storage=data['analysis_artifact']['artifact_json'].get('storage')
print(storage)
PY" in /tmp/codex-auyuxg94 succeeded in 38ms:
{'keccak_count': 38, 'reads': 107, 'slots': [{'op': 'SLOAD', 'pc': 681, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 797, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 870, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 1006, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 1071, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 1104, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 1216, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 1596, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 1693, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 1748, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 1821, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000100'}, {'op': 'SLOAD', 'pc': 2141, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2221, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 2280, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SSTORE', 'pc': 2308, 'slot': '0x332aea18fc605b6be38db00074cd3c21a757c11fee654fd98c382a2e49ea2297'}, {'op': 'SLOAD', 'pc': 2313, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 2971, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3003, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 3018, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 3146, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 3613, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3616, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 3625, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 3632, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 3759, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 3841, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 4727, 'slot': '0x000000000000000000000000000000000000000000000000000000000000000a'}, {'op': 'SLOAD', 'pc': 4874, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 4947, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000100'}, {'op': 'SLOAD', 'pc': 5015, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 5179, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 5949, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 6024, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000006'}, {'op': 'SLOAD', 'pc': 6060, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 6140, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 6199, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SSTORE', 'pc': 6227, 'slot': '0xa57582a20eb2f0c4265459d1d9ef9990b45fa7a768b2a47481ff82b5e0864d78'}, {'op': 'SLOAD', 'pc': 6232, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 6813, 'slot': '0x000000000000000000000000000000000000000000000000000000000000000a'}, {'op': 'SLOAD', 'pc': 6877, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 7408, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 7470, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 7510, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7591, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7648, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7702, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000007'}, {'op': 'SLOAD', 'pc': 7799, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000007'}, {'op': 'SLOAD', 'pc': 7867, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 7909, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 7936, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 8022, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000005'}, {'op': 'SLOAD', 'pc': 8114, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 8192, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 8216, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 8278, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SSTORE', 'pc': 8297, 'slot': '0x0d33af2381f036762445cec5d4a21f68c50c4236845f915b6e15419695c64367'}, {'op': 'SLOAD', 'pc': 8657, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 9329, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000007'}, {'op': 'SLOAD', 'pc': 9402, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000007'}, {'op': 'SLOAD', 'pc': 9443, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000007'}, {'op': 'SSTORE', 'pc': 9474, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 9485, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9497, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9595, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9607, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9621, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9651, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9695, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 9788, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000004'}, {'op': 'SLOAD', 'pc': 10398, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 10402, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}, {'op': 'SLOAD', 'pc': 10424, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 10499, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000001'}, {'op': 'SLOAD', 'pc': 10557, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000002'}, {'op': 'SLOAD', 'pc': 10616, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000000'}], 'writes': 32}
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
print(data['artifact'].keys())
PY" in /tmp/codex-auyuxg94 succeeded in 44ms:
dict_keys(['codehash', 'compiler_json', 'implementation_address', 'is_proxy', 'runtime_bytecode', 'verified_source'])
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
# EVM opcode mapping to immediates
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
# fill common
names = {
0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
0x20:'SHA3',
0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
opcodes[k]=v
# push, dup, swap, log
for i in range(1,33):
opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
opcodes[0xa0+i]=f'LOG{i}'
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']
if bytecode.startswith('0x'):
bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)
# disassemble function
def disasm(start, end):
pc=0
out=[]
while pc < len(code):
op=code[pc]
if pc>=start and pc<=end:
name=opcodes.get(op,f'OP_{op:02x}')
if 0x60 <= op <= 0x7f: # PUSH1-32
n = op-0x5f
data_bytes = code[pc+1:pc+1+n]
out.append((pc, name, '0x'+data_bytes.hex()))
pc += 1+n
continue
else:
out.append((pc, name, ''))
# advance
if 0x60 <= op <= 0x7f:
pc += 1 + (op-0x5f)
else:
pc += 1
return out
for (start,end) in [(8740,8820),(10860,10930)]:
print('\\nRange', start, end)
for pc,name,arg in disasm(start,end):
if arg:
print(f\"{pc:5d}: {name} {arg}\")
else:
print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 exited 1 in 55ms:
Traceback (most recent call last):
File "<stdin>", line 31, in <module>
AttributeError: 'dict' object has no attribute 'startswith'
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
print(type(data['artifact']['runtime_bytecode']))
print(data['artifact']['runtime_bytecode'].keys())
PY" in /tmp/codex-auyuxg94 succeeded in 43ms:
<class 'dict'>
dict_keys(['full', 'head', 'length', 'tail', 'truncated'])
exec
/bin/bash -lc "python - <<'PY'
import json
from pathlib import Path
# opcode mapping
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
# fill common
names = {
0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
0x20:'SHA3',
0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
opcodes[k]=v
for i in range(1,33):
opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
opcodes[0xa0+i]=f'LOG{i}'
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']['full']
if bytecode.startswith('0x'):
bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)
# disassemble function
def disasm(start, end):
pc=0
out=[]
while pc < len(code):
op=code[pc]
if pc>=start and pc<=end:
name=opcodes.get(op,f'OP_{op:02x}')
if 0x60 <= op <= 0x7f: # PUSH1-32
n = op-0x5f
data_bytes = code[pc+1:pc+1+n]
out.append((pc, name, '0x'+data_bytes.hex()))
pc += 1+n
continue
else:
out.append((pc, name, ''))
# advance
if 0x60 <= op <= 0x7f:
pc += 1 + (op-0x5f)
else:
pc += 1
return out
for (start,end) in [(8740,8820),(10860,10930)]:
print('\\nRange', start, end)
for pc,name,arg in disasm(start,end):
if arg:
print(f\"{pc:5d}: {name} {arg}\")
else:
print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 succeeded in 57ms:
Range 8740 8820
8741: DUP3
8742: ADD
8743: MSTORE
8744: PUSH1 0x64
8746: ADD
8747: PUSH2 0x021d
8750: JUMP
8751: JUMPDEST
8752: PUSH1 0x40
8754: MLOAD
8755: PUSH1 0x01
8757: PUSH1 0x01
8759: PUSH1 0xa0
8761: SHL
8762: SUB
8763: DUP6
8764: AND
8765: SWAP1
exec
/bin/bash -lc "python - <<'PY'
import json
# disasm utility from previous
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
# names mapping
names = {
0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
0x20:'SHA3',
0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
opcodes[k]=v
for i in range(1,33):
opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
opcodes[0xa0+i]=f'LOG{i}'
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']['full']
if bytecode.startswith('0x'):
bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)
# disassemble function
def disasm(start, end):
pc=0
out=[]
while pc < len(code):
op=code[pc]
if pc>=start and pc<=end:
name=opcodes.get(op,f'OP_{op:02x}')
if 0x60 <= op <= 0x7f: # PUSH1-32
n = op-0x5f
data_bytes = code[pc+1:pc+1+n]
out.append((pc, name, '0x'+data_bytes.hex()))
pc += 1+n
continue
else:
out.append((pc, name, ''))
# advance
if 0x60 <= op <= 0x7f:
pc += 1 + (op-0x5f)
else:
pc += 1
return out
start,end=10870,10990
print('Range', start, end)
for pc,name,arg in disasm(start,end):
if arg:
print(f\"{pc:5d}: {name} {arg}\")
else:
print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 succeeded in 37ms:
Range 10870 10990
10870: PUSH2 0x3034
10873: JUMP
10874: JUMPDEST
10875: PUSH1 0x00
10877: PUSH1 0x40
10879: MLOAD
10880: DUP1
10881: DUP4
10882: SUB
10883: DUP2
10884: DUP6
10885: DUP8
10886: GAS
10887: CALL
10888: SWAP3
10889: POP
10890: POP
10891: POP
10892: RETURNDATASIZE
exec
/bin/bash -lc "python - <<'PY'
import json
# disasm utility reused
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
# names mapping
names = {
0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
0x20:'SHA3',
0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
opcodes[k]=v
for i in range(1,33):
opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
opcodes[0xa0+i]=f'LOG{i}'
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']['full']
if bytecode.startswith('0x'):
bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)
# disassemble function
def disasm(start, end):
pc=0
out=[]
while pc < len(code):
op=code[pc]
if pc>=start and pc<=end:
name=opcodes.get(op,f'OP_{op:02x}')
if 0x60 <= op <= 0x7f: # PUSH1-32
n = op-0x5f
data_bytes = code[pc+1:pc+1+n]
out.append((pc, name, '0x'+data_bytes.hex()))
pc += 1+n
continue
else:
out.append((pc, name, ''))
# advance
if 0x60 <= op <= 0x7f:
pc += 1 + (op-0x5f)
else:
pc += 1
return out
start,end=10930,11050
print('Range', start, end)
for pc,name,arg in disasm(start,end):
if arg:
print(f\"{pc:5d}: {name} {arg}\")
else:
print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 succeeded in 39ms:
Range 10930 11050
10930: RETURNDATACOPY
10931: PUSH2 0x2abc
10934: JUMP
10935: JUMPDEST
10936: PUSH1 0x60
10938: SWAP2
10939: POP
10940: JUMPDEST
10941: POP
10942: SWAP2
10943: POP
10944: SWAP2
10945: POP
10946: PUSH2 0x1d1e
10949: DUP3
10950: DUP3
10951: DUP7
10952: PUSH1 0x60
10954: DUP4
exec
/bin/bash -lc "python - <<'PY'
import json
# reuse disasm util
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
names = {
0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
0x20:'SHA3',
0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
opcodes[k]=v
for i in range(1,33):
opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
opcodes[0xa0+i]=f'LOG{i}'
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']['full']
if bytecode.startswith('0x'):
bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)
# disassemble function
def disasm(start, end):
pc=0
out=[]
while pc < len(code):
op=code[pc]
if pc>=start and pc<=end:
name=opcodes.get(op,f'OP_{op:02x}')
if 0x60 <= op <= 0x7f: # PUSH1-32
n = op-0x5f
data_bytes = code[pc+1:pc+1+n]
out.append((pc, name, '0x'+data_bytes.hex()))
pc += 1+n
continue
else:
out.append((pc, name, ''))
if 0x60 <= op <= 0x7f:
pc += 1 + (op-0x5f)
else:
pc += 1
return out
start,end=8680,8755
print('Range', start, end)
for pc,name,arg in disasm(start,end):
if arg:
print(f\"{pc:5d}: {name} {arg}\")
else:
print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 succeeded in 47ms:
Range 8680 8755
8680: PUSH1 0x40
8682: MLOAD
8683: PUSH3 0x461bcd
8687: PUSH1 0xe5
8689: SHL
8690: DUP2
8691: MSTORE
8692: PUSH1 0x20
8694: PUSH1 0x04
8696: DUP3
8697: ADD
8698: MSTORE
8699: PUSH1 0x1c
8701: PUSH1 0x24
8703: DUP3
8704: ADD
8705: MSTORE
8706: PUSH32 0x72656c656173652f696e73756666696369656e742d62616c616e636500000000
8739: PUSH1 0x44
exec
/bin/bash -lc "python - <<'PY'
import json
# disasm util
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
names = {
0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
0x20:'SHA3',
0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
opcodes[k]=v
for i in range(1,33):
opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
opcodes[0xa0+i]=f'LOG{i}'
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']['full']
if bytecode.startswith('0x'):
bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)
# disassemble function
def disasm(start, end):
pc=0
out=[]
while pc < len(code):
op=code[pc]
if pc>=start and pc<=end:
name=opcodes.get(op,f'OP_{op:02x}')
if 0x60 <= op <= 0x7f: # PUSH1-32
n = op-0x5f
data_bytes = code[pc+1:pc+1+n]
out.append((pc, name, '0x'+data_bytes.hex()))
pc += 1+n
continue
else:
out.append((pc, name, ''))
if 0x60 <= op <= 0x7f:
pc += 1 + (op-0x5f)
else:
pc += 1
return out
start,end=8580,8795
print('Range', start, end)
for pc,name,arg in disasm(start,end):
if arg:
print(f\"{pc:5d}: {name} {arg}\")
else:
print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 succeeded in 38ms:
Range 8580 8795
8580: PUSH2 0x218e
8583: DUP6
8584: PUSH1 0x0a
8586: PUSH2 0x33c6
8589: JUMP
8590: JUMPDEST
8591: PUSH2 0x27bb
8594: JUMP
8595: JUMPDEST
8596: SWAP4
8597: SWAP3
8598: POP
8599: POP
8600: POP
8601: JUMP
8602: JUMPDEST
8603: PUSH2 0x21c8
8606: PUSH1 0x0c
8608: DUP5
exec
/bin/bash -lc "python - <<'PY'
import json
# disasm util
opcodes = {i: f'OP_{i:02x}' for i in range(256)}
# names mapping
names = {
0x00:'STOP',0x01:'ADD',0x02:'MUL',0x03:'SUB',0x04:'DIV',0x05:'SDIV',0x06:'MOD',0x07:'SMOD',0x08:'ADDMOD',0x09:'MULMOD',0x0a:'EXP',0x0b:'SIGNEXTEND',
0x10:'LT',0x11:'GT',0x12:'SLT',0x13:'SGT',0x14:'EQ',0x15:'ISZERO',0x16:'AND',0x17:'OR',0x18:'XOR',0x19:'NOT',0x1a:'BYTE',0x1b:'SHL',0x1c:'SHR',0x1d:'SAR',
0x20:'SHA3',
0x30:'ADDRESS',0x31:'BALANCE',0x32:'ORIGIN',0x33:'CALLER',0x34:'CALLVALUE',0x35:'CALLDATALOAD',0x36:'CALLDATASIZE',0x37:'CALLDATACOPY',0x38:'CODESIZE',0x39:'CODECOPY',0x3a:'GASPRICE',0x3b:'EXTCODESIZE',0x3c:'EXTCODECOPY',0x3d:'RETURNDATASIZE',0x3e:'RETURNDATACOPY',0x3f:'EXTCODEHASH',
0x40:'BLOCKHASH',0x41:'COINBASE',0x42:'TIMESTAMP',0x43:'NUMBER',0x44:'DIFFICULTY',0x45:'GASLIMIT',0x46:'CHAINID',0x47:'SELFBALANCE',0x48:'BASEFEE',
0x50:'POP',0x51:'MLOAD',0x52:'MSTORE',0x53:'MSTORE8',0x54:'SLOAD',0x55:'SSTORE',0x56:'JUMP',0x57:'JUMPI',0x58:'PC',0x59:'MSIZE',0x5a:'GAS',0x5b:'JUMPDEST',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
for k,v in names.items():
opcodes[k]=v
for i in range(1,33):
opcodes[0x5f+i]=f'PUSH{i}'
for i in range(1,17):
opcodes[0x7f+i]=f'DUP{i}'
for i in range(1,17):
opcodes[0x8f+i]=f'SWAP{i}'
for i in range(0,5):
opcodes[0xa0+i]=f'LOG{i}'
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode = data['artifact']['runtime_bytecode']['full']
if bytecode.startswith('0x'):
bytecode = bytecode[2:]
code = bytes.fromhex(bytecode)
# disassemble function
def disasm(start, end):
pc=0
out=[]
while pc < len(code):
op=code[pc]
if pc>=start and pc<=end:
name=opcodes.get(op,f'OP_{op:02x}')
if 0x60 <= op <= 0x7f: # PUSH1-32
n = op-0x5f
data_bytes = code[pc+1:pc+1+n]
out.append((pc, name, '0x'+data_bytes.hex()))
pc += 1+n
continue
else:
out.append((pc, name, ''))
if 0x60 <= op <= 0x7f:
pc += 1 + (op-0x5f)
else:
pc += 1
return out
start,end=8790,8905
print('Range', start, end)
for pc,name,arg in disasm(start,end):
if arg:
print(f\"{pc:5d}: {name} {arg}\")
else:
print(f\"{pc:5d}: {name}\")
PY" in /tmp/codex-auyuxg94 succeeded in 55ms:
Range 8790 8905
8790: DUP1
8791: ISZERO
8792: PUSH2 0x2265
8795: JUMPI
8796: RETURNDATASIZE
8797: PUSH1 0x00
8799: DUP1
8800: RETURNDATACOPY
8801: RETURNDATASIZE
8802: PUSH1 0x00
8804: REVERT
8805: JUMPDEST
8806: POP
8807: PUSH2 0x2150
8810: JUMP
8811: JUMPDEST
8812: PUSH1 0x00
8814: PUSH1 0x0b
8816: DUP5
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
print('is_proxy', data['artifact'].get('is_proxy'))
print('implementation', data['artifact'].get('implementation_address'))
PY" in /tmp/codex-auyuxg94 succeeded in 50ms:
is_proxy False
implementation None
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bbs=data['analysis_artifact']['artifact_json']['basic_blocks']
blocks_with_caller=[]
for b in bbs:
if 'CALLER' in b['opcodes']:
blocks_with_caller.append((b['start_pc'], b['end_pc'], b['opcodes']))
print('blocks with CALLER', len(blocks_with_caller))
print('sample', blocks_with_caller[:5])
# check if any block has CALLER and EQ or LT/GT etc
cand=[]
for sp,ep,ops in blocks_with_caller:
if 'EQ' in ops or 'ISZERO' in ops:
cand.append((sp,ep,ops))
print('blocks with CALLER and EQ/ISZERO', len(cand))
print('sample', cand[:5])
PY" in /tmp/codex-auyuxg94 succeeded in 56ms:
blocks with CALLER 18
sample [(814, 834, ['JUMPDEST', 'POP', 'CALLER', 'PUSH1', 'OP_90', 'OP_81', 'MSTORE', 'PUSH1', 'PUSH1', 'MSTORE', 'PUSH1', 'OP_90', 'SHA3', 'SLOAD', 'PUSH1', 'AND']), (1064, 1084, ['JUMPDEST', 'POP', 'PUSH2', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'OP_90', 'JUMP']), (1209, 1229, ['JUMPDEST', 'POP', 'PUSH2', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'OP_90', 'JUMP']), (1686, 1706, ['JUMPDEST', 'POP', 'PUSH2', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'OP_90', 'JUMP']), (2138, 2156, ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI'])]
blocks with CALLER and EQ/ISZERO 13
sample [(1064, 1084, ['JUMPDEST', 'POP', 'PUSH2', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'OP_90', 'JUMP']), (1209, 1229, ['JUMPDEST', 'POP', 'PUSH2', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'OP_90', 'JUMP']), (1686, 1706, ['JUMPDEST', 'POP', 'PUSH2', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'OP_90', 'JUMP']), (2138, 2156, ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI']), (2310, 2328, ['JUMPDEST', 'PUSH1', 'SLOAD', 'PUSH1', 'PUSH1', 'PUSH1', 'SHL', 'SUB', 'AND', 'CALLER', 'EQ', 'PUSH2', 'JUMPI'])]
codex
{"no_findings":false,"summary":"External CALLs to computed targets (one with ETH value) are present without any detected reentrancy guard, creating a potential reentrancy/untrusted-call risk if state is updated after the call.","findings":[{"severity":"medium","category":"reentrancy","title":"External CALL with ETH value to computed target (reentrancy/untrusted-call risk)","exploit_scenario":"If a function forwards ETH to a user-supplied recipient and updates accounting after the external CALL, a malicious recipient contract could reenter (via fallback/receive) and invoke the same release/withdraw path multiple times before state is finalized. Bytecode-only analysis cannot confirm the exact state-update order; risk depends on surrounding logic.","recommendation":"Apply checks-effects-interactions: update any accounting/state before the external call, or use a pull-payment pattern. Add a reentrancy guard around the affected entrypoints. If only specific targets are intended, validate the recipient/token address before the call.","evidence":"CALL at pc 0x224f masks an address from the stack (PUSH1 0xa0; SHL; SUB; AND) and uses a computed value; callsite metadata shows target/value are computed. A second CALL at pc 0x2a87 uses full GAS with computed stack arguments. Detector flagged both as untrusted CALLs with possible ETH value; validation trace noted a constant target in one observed trace, so target variability is uncertain from bytecode alone.","locations":["pc:0x224f","pc:0x2a87"]}]}
tokens used
76,866
{
"codex": {
"ran_at": "2026-01-30T16:29:20.039739+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 27550,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "External CALLs to computed targets (one with ETH value) are present without any detected reentrancy guard, creating a potential reentrancy/untrusted-call risk if state is updated after the call.",
"raw_final": {
"summary": "External CALLs to computed targets (one with ETH value) are present without any detected reentrancy guard, creating a potential reentrancy/untrusted-call risk if state is updated after the call.",
"findings": [
{
"title": "External CALL with ETH value to computed target (reentrancy/untrusted-call risk)",
"category": "reentrancy",
"evidence": "CALL at pc 0x224f masks an address from the stack (PUSH1 0xa0; SHL; SUB; AND) and uses a computed value; callsite metadata shows target/value are computed. A second CALL at pc 0x2a87 uses full GAS with computed stack arguments. Detector flagged both as untrusted CALLs with possible ETH value; validation trace noted a constant target in one observed trace, so target variability is uncertain from bytecode alone.",
"severity": "medium",
"locations": [
"pc:0x224f",
"pc:0x2a87"
],
"recommendation": "Apply checks-effects-interactions: update any accounting/state before the external call, or use a pull-payment pattern. Add a reentrancy guard around the affected entrypoints. If only specific targets are intended, validate the recipient/token address before the call.",
"exploit_scenario": "If a function forwards ETH to a user-supplied recipient and updates accounting after the external CALL, a malicious recipient contract could reenter (via fallback/receive) and invoke the same release/withdraw path multiple times before state is finalized. Bytecode-only analysis cannot confirm the exact state-update order; risk depends on surrounding logic."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x01dc 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0xa531494e 00000019: GT 0000001a: PUSH2 0x0102 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xf2fde38b 00000024: GT 00000025: PUSH2 0x0095 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xf9c243df 0000002f: GT 00000030: PUSH2 0x0064 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xf9c243df 0000003a: EQ 0000003b: PUSH2 0x064a 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xfa7643f4 00000045: EQ 00000046: PUSH2 0x066a 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xfeaec775 00000050: EQ 00000051: PUSH2 0x068a 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xffec41de 0000005b: EQ 0000005c: PUSH2 0x06ab 0000005f: JUMPI 00000060: PUSH2 0x0226 00000063: JUMP 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xf2fde38b 0000006b: EQ 0000006c: PUSH2 0x059f 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xf454fd9b 00000076: EQ 00000077: PUSH2 0x05bf 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xf62d1888 00000081: EQ 00000082: PUSH2 0x060c 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xf851a440 0000008c: EQ 0000008d: PUSH2 0x062c 00000090: JUMPI 00000091: PUSH2 0x0226 00000094: JUMP 00000095: JUMPDEST 00000096: DUP1 00000097: PUSH4 0xcab28a78 0000009c: GT 0000009d: PUSH2 0x00d1 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xcab28a78 000000a7: EQ 000000a8: PUSH2 0x04ee 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xd3c47427 000000b2: EQ 000000b3: PUSH2 0x050e 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0xdcebec5c 000000bd: EQ 000000be: PUSH2 0x052e 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0xed5c1c13 000000c8: EQ 000000c9: PUSH2 0x055e 000000cc: JUMPI 000000cd: PUSH2 0x0226 000000d0: JUMP 000000d1: JUMPDEST 000000d2: DUP1 000000d3: PUSH4 0xa531494e 000000d8: EQ 000000d9: PUSH2 0x045d 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0xb30df69e 000000e3: EQ 000000e4: PUSH2 0x047d 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0xb6db75a0 000000ee: EQ 000000ef: PUSH2 0x04ad 000000f2: JUMPI 000000f3: DUP1 000000f4: PUSH4 0xb851f0ae 000000f9: EQ 000000fa: PUSH2 0x04ce 000000fd: JUMPI 000000fe: PUSH2 0x0226 00000101: JUMP 00000102: JUMPDEST 00000103: DUP1 00000104: PUSH4 0x5b2a8b4b 00000109: GT 0000010a: PUSH2 0x017a 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x8da5cb5b 00000114: GT 00000115: PUSH2 0x0149 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x8da5cb5b 0000011f: EQ 00000120: PUSH2 0x03de 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x8f283970 0000012a: EQ 0000012b: PUSH2 0x03fc 0000012e: JUMPI 0000012f: DUP1 00000130: PUSH4 0x8f32d59b 00000135: EQ 00000136: PUSH2 0x041c 00000139: JUMPI 0000013a: DUP1 0000013b: PUSH4 0x91e1f3e2 00000140: EQ 00000141: PUSH2 0x043d 00000144: JUMPI 00000145: PUSH2 0x0226 00000148: JUMP 00000149: JUMPDEST 0000014a: DUP1 0000014b: PUSH4 0x5b2a8b4b 00000150: EQ 00000151: PUSH2 0x0369 00000154: JUMPI 00000155: DUP1 00000156: PUSH4 0x79a0d001 0000015b: EQ 0000015c: PUSH2 0x0389 0000015f: JUMPI 00000160: DUP1 00000161: PUSH4 0x7fedad55 00000166: EQ 00000167: PUSH2 0x03a9 0000016a: JUMPI 0000016b: DUP1 0000016c: PUSH4 0x82b65ea4 00000171: EQ 00000172: PUSH2 0x03cb 00000175: JUMPI 00000176: PUSH2 0x0226 00000179: JUMP 0000017a: JUMPDEST 0000017b: DUP1 0000017c: PUSH4 0x15ce2faf 00000181: GT 00000182: PUSH2 0x01b6 00000185: JUMPI 00000186: DUP1 00000187: PUSH4 0x15ce2faf 0000018c: EQ 0000018d: PUSH2 0x02ed 00000190: JUMPI 00000191: DUP1 00000192: PUSH4 0x1c3e6ee6 00000197: EQ 00000198: PUSH2 0x030d 0000019b: JUMPI 0000019c: DUP1 0000019d: PUSH4 0x217e2466 000001a2: EQ 000001a3: PUSH2 0x0322 000001a6: JUMPI 000001a7: DUP1 000001a8: PUSH4 0x2772aed9 000001ad: EQ 000001ae: PUSH2 0x0353 000001b1: JUMPI 000001b2: PUSH2 0x0226 000001b5: JUMP 000001b6: JUMPDEST 000001b7: DUP1 000001b8: PUSH4 0x025abd58 000001bd: EQ 000001be: PUSH2 0x0266 000001c1: JUMPI 000001c2: DUP1 000001c3: PUSH4 0x041ae880 000001c8: EQ 000001c9: PUSH2 0x0299 000001cc: JUMPI 000001cd: DUP1 000001ce: PUSH4 0x11ea94d6 000001d3: EQ 000001d4: PUSH2 0x02cb 000001d7: JUMPI 000001d8: PUSH2 0x0226 000001db: JUMP 000001dc: JUMPDEST 000001dd: CALLDATASIZE 000001de: PUSH2 0x0226 000001e1: JUMPI 000001e2: PUSH1 0x40 000001e4: MLOAD 000001e5: PUSH3 0x461bcd 000001e9: PUSH1 0xe5 000001eb: SHL 000001ec: DUP2 000001ed: MSTORE 000001ee: PUSH1 0x20 000001f0: PUSH1 0x04 000001f2: DUP3 000001f3: ADD 000001f4: MSTORE 000001f5: PUSH1 0x15 000001f7: PUSH1 0x24 000001f9: DUP3 000001fa: ADD 000001fb: MSTORE 000001fc: PUSH21 0x10d0d0985cd94bd8d85b1b0b5b1bd8dad05cdcd95d 00000212: PUSH1 0x5a 00000214: SHL 00000215: PUSH1 0x44 00000217: DUP3 00000218: ADD 00000219: MSTORE 0000021a: PUSH1 0x64 0000021c: ADD 0000021d: JUMPDEST 0000021e: PUSH1 0x40 00000220: MLOAD 00000221: DUP1 00000222: SWAP2 00000223: SUB 00000224: SWAP1 00000225: REVERT 00000226: JUMPDEST 00000227: PUSH1 0x40 00000229: MLOAD 0000022a: PUSH3 0x461bcd 0000022e: PUSH1 0xe5 00000230: SHL 00000231: DUP2 00000232: MSTORE 00000233: PUSH1 0x20 00000235: PUSH1 0x04 00000237: DUP3 00000238: ADD 00000239: MSTORE 0000023a: PUSH1 0x15 0000023c: PUSH1 0x24 0000023e: DUP3 0000023f: ADD 00000240: MSTORE 00000241: PUSH21 0x10d0d0985cd94bd8d85b1b0b5b1bd8dad05cdcd95d 00000257: PUSH1 0x5a 00000259: SHL 0000025a: PUSH1 0x44 0000025c: DUP3 0000025d: ADD 0000025e: MSTORE 0000025f: PUSH1 0x64 00000261: ADD 00000262: PUSH2 0x021d 00000265: JUMP 00000266: JUMPDEST 00000267: CALLVALUE 00000268: DUP1 00000269: ISZERO 0000026a: PUSH2 0x0272 0000026d: JUMPI 0000026e: PUSH1 0x00 00000270: DUP1 00000271: REVERT 00000272: JUMPDEST 00000273: POP 00000274: PUSH2 0x0286 00000277: PUSH2 0x0281 0000027a: CALLDATASIZE 0000027b: PUSH1 0x04 0000027d: PUSH2 0x2dbe 00000280: JUMP 00000281: JUMPDEST 00000282: PUSH2 0x06cb 00000285: JUMP 00000286: JUMPDEST 00000287: PUSH1 0x40 00000289: MLOAD 0000028a: SWAP1 0000028b: DUP2 0000028c: MSTORE 0000028d: PUSH1 0x20 0000028f: ADD 00000290: JUMPDEST 00000291: PUSH1 0x40 00000293: MLOAD 00000294: DUP1 00000295: SWAP2 00000296: SUB 00000297: SWAP1 00000298: RETURN 00000299: JUMPDEST 0000029a: CALLVALUE 0000029b: DUP1 0000029c: ISZERO 0000029d: PUSH2 0x02a5 000002a0: JUMPI 000002a1: PUSH1 0x00 000002a3: DUP1 000002a4: REVERT 000002a5: JUMPDEST 000002a6: POP 000002a7: PUSH1 0x02 000002a9: SLOAD 000002aa: PUSH1 0x01 000002ac: PUSH1 0x01 000002ae: PUSH1 0xa0 000002b0: SHL 000002b1: SUB 000002b2: AND 000002b3: JUMPDEST 000002b4: PUSH1 0x40 000002b6: MLOAD 000002b7: PUSH1 0x01 000002b9: PUSH1 0x01 000002bb: PUSH1 0xa0 000002bd: SHL 000002be: SUB 000002bf: SWAP1 000002c0: SWAP2 000002c1: AND 000002c2: DUP2 000002c3: MSTORE 000002c4: PUSH1 0x20 000002c6: ADD 000002c7: PUSH2 0x0290 000002ca: JUMP 000002cb: JUMPDEST 000002cc: CALLVALUE 000002cd: DUP1 000002ce: ISZERO 000002cf: PUSH2 0x02d7 000002d2: JUMPI 000002d3: PUSH1 0x00 000002d5: DUP1 000002d6: REVERT 000002d7: JUMPDEST 000002d8: POP 000002d9: PUSH2 0x02eb 000002dc: PUSH2 0x02e6 000002df: CALLDATASIZE 000002e0: PUSH1 0x04 000002e2: PUSH2 0x2c37 000002e5: JUMP 000002e6: JUMPDEST 000002e7: PUSH2 0x085a 000002ea: JUMP 000002eb: JUMPDEST 000002ec: STOP 000002ed: JUMPDEST 000002ee: CALLVALUE 000002ef: DUP1 000002f0: ISZERO 000002f1: PUSH2 0x02f9 000002f4: JUMPI 000002f5: PUSH1 0x00 000002f7: DUP1 000002f8: REVERT 000002f9: JUMPDEST 000002fa: POP 000002fb: PUSH2 0x02eb 000002fe: PUSH2 0x0308 00000301: CALLDATASIZE 00000302: PUSH1 0x04 00000304: PUSH2 0x2ca8 00000307: JUMP 00000308: JUMPDEST 00000309: PUSH2 0x0906 0000030c: JUMP 0000030d: JUMPDEST 0000030e: CALLVALUE 0000030f: DUP1 00000310: ISZERO 00000311: PUSH2 0x0319 00000314: JUMPI 00000315: PUSH1 0x00 00000317: DUP1 00000318: REVERT 00000319: JUMPDEST 0000031a: POP 0000031b: PUSH1 0x06 0000031d: SLOAD 0000031e: PUSH2 0x0286 00000321: JUMP 00000322: JUMPDEST 00000323: CALLVALUE 00000324: DUP1 00000325: ISZERO 00000326: PUSH2 0x032e 00000329: JUMPI 0000032a: PUSH1 0x00 0000032c: DUP1 0000032d: REVERT 0000032e: JUMPDEST 0000032f: POP 00000330: CALLER 00000331: PUSH1 0x00 00000333: SWAP1 00000334: DUP2 00000335: MSTORE 00000336: PUSH1 0x03 00000338: PUSH1 0x20 0000033a: MSTORE 0000033b: PUSH1 0x40 0000033d: SWAP1 0000033e: KECCAK256 0000033f: SLOAD 00000340: PUSH1 0xff 00000342: AND 00000343: JUMPDEST 00000344: PUSH1 0x40 00000346: MLOAD 00000347: SWAP1 00000348: ISZERO 00000349: ISZERO 0000034a: DUP2 0000034b: MSTORE 0000034c: PUSH1 0x20 0000034e: ADD 0000034f: PUSH2 0x0290 00000352: JUMP 00000353: JUMPDEST 00000354: CALLVALUE 00000355: DUP1 00000356: ISZERO 00000357: PUSH2 0x035f 0000035a: JUMPI 0000035b: PUSH1 0x00 0000035d: DUP1 0000035e: REVERT 0000035f: JUMPDEST 00000360: POP 00000361: PUSH2 0x0286 00000364: PUSH1 0x05 00000366: SLOAD 00000367: DUP2 00000368: JUMP 00000369: JUMPDEST 0000036a: CALLVALUE 0000036b: DUP1 0000036c: ISZERO 0000036d: PUSH2 0x0375 00000370: JUMPI 00000371: PUSH1 0x00 00000373: DUP1 00000374: REVERT 00000375: JUMPDEST 00000376: POP 00000377: PUSH2 0x02eb 0000037a: PUSH2 0x0384 0000037d: CALLDATASIZE 0000037e: PUSH1 0x04 00000380: PUSH2 0x2ca8 00000383: JUMP 00000384: JUMPDEST 00000385: PUSH2 0x0c47 00000388: JUMP 00000389: JUMPDEST 0000038a: CALLVALUE 0000038b: DUP1 0000038c: ISZERO 0000038d: PUSH2 0x0395 00000390: JUMPI 00000391: PUSH1 0x00 00000393: DUP1 00000394: REVERT 00000395: JUMPDEST 00000396: POP 00000397: PUSH2 0x02eb 0000039a: PUSH2 0x03a4 0000039d: CALLDATASIZE 0000039e: PUSH1 0x04 000003a0: PUSH2 0x2df1 000003a3: JUMP 000003a4: JUMPDEST 000003a5: PUSH2 0x0eac 000003a8: JUMP 000003a9: JUMPDEST 000003aa: CALLVALUE 000003ab: DUP1 000003ac: ISZERO 000003ad: PUSH2 0x03b5 000003b0: JUMPI 000003b1: PUSH1 0x00 000003b3: DUP1 000003b4: REVERT 000003b5: JUMPDEST 000003b6: POP 000003b7: PUSH2 0x03be 000003ba: PUSH2 0x1306 000003bd: JUMP 000003be: JUMPDEST 000003bf: PUSH1 0x40 000003c1: MLOAD 000003c2: PUSH2 0x0290 000003c5: SWAP2 000003c6: SWAP1 000003c7: PUSH2 0x3194 000003ca: JUMP 000003cb: JUMPDEST 000003cc: PUSH2 0x02eb 000003cf: PUSH2 0x03d9 000003d2: CALLDATASIZE 000003d3: PUSH1 0x04 000003d5: PUSH2 0x2c51 000003d8: JUMP 000003d9: JUMPDEST 000003da: PUSH2 0x1394 000003dd: JUMP 000003de: JUMPDEST 000003df: CALLVALUE 000003e0: DUP1 000003e1: ISZERO 000003e2: PUSH2 0x03ea 000003e5: JUMPI 000003e6: PUSH1 0x00 000003e8: DUP1 000003e9: REVERT 000003ea: JUMPDEST 000003eb: POP 000003ec: PUSH1 0x00 000003ee: SLOAD 000003ef: PUSH1 0x01 000003f1: PUSH1 0x01 000003f3: PUSH1 0xa0 000003f5: SHL 000003f6: SUB 000003f7: AND 000003f8: PUSH2 0x02b3 000003fb: JUMP 000003fc: JUMPDEST 000003fd: CALLVALUE 000003fe: DUP1 000003ff: ISZERO 00000400: PUSH2 0x0408 00000403: JUMPI 00000404: PUSH1 0x00 00000406: DUP1 00000407: REVERT 00000408: JUMPDEST 00000409: POP 0000040a: PUSH2 0x02eb 0000040d: PUSH2 0x0417 00000410: CALLDATASIZE 00000411: PUSH1 0x04 00000413: PUSH2 0x2c37 00000416: JUMP 00000417: JUMPDEST 00000418: PUSH2 0x17a9 0000041b: JUMP 0000041c: JUMPDEST 0000041d: CALLVALUE 0000041e: DUP1 0000041f: ISZERO 00000420: PUSH2 0x0428 00000423: JUMPI 00000424: PUSH1 0x00 00000426: DUP1 00000427: REVERT 00000428: JUMPDEST 00000429: POP 0000042a: PUSH2 0x0343 0000042d: PUSH1 0x00 0000042f: SLOAD 00000430: PUSH1 0x01 00000432: PUSH1 0x01 00000434: PUSH1 0xa0 00000436: SHL 00000437: SUB 00000438: AND 00000439: CALLER 0000043a: EQ 0000043b: SWAP1 0000043c: JUMP 0000043d: JUMPDEST 0000043e: CALLVALUE 0000043f: DUP1 00000440: ISZERO 00000441: PUSH2 0x0449 00000444: JUMPI 00000445: PUSH1 0x00 00000447: DUP1 00000448: REVERT 00000449: JUMPDEST 0000044a: POP 0000044b: PUSH2 0x0343 0000044e: PUSH1 0x02 00000450: SLOAD 00000451: PUSH1 0x01 00000453: PUSH1 0xa0 00000455: SHL 00000456: SWAP1 00000457: DIV 00000458: PUSH1 0xff 0000045a: AND 0000045b: SWAP1 0000045c: JUMP 0000045d: JUMPDEST 0000045e: CALLVALUE 0000045f: DUP1 00000460: ISZERO 00000461: PUSH2 0x0469 00000464: JUMPI 00000465: PUSH1 0x00 00000467: DUP1 00000468: REVERT 00000469: JUMPDEST 0000046a: POP 0000046b: PUSH2 0x02eb 0000046e: PUSH2 0x0478 00000471: CALLDATASIZE 00000472: PUSH1 0x04 00000474: PUSH2 0x2f2c 00000477: JUMP 00000478: JUMPDEST 00000479: PUSH2 0x1855 0000047c: JUMP 0000047d: JUMPDEST 0000047e: CALLVALUE 0000047f: DUP1 00000480: ISZERO 00000481: PUSH2 0x0489 00000484: JUMPI 00000485: PUSH1 0x00 00000487: DUP1 00000488: REVERT 00000489: JUMPDEST 0000048a: POP 0000048b: PUSH2 0x0343 0000048e: PUSH2 0x0498 00000491: CALLDATASIZE 00000492: PUSH1 0x04 00000494: PUSH2 0x2fcc 00000497: JUMP 00000498: JUMPDEST 00000499: PUSH1 0x08 0000049b: PUSH1 0x20 0000049d: MSTORE 0000049e: PUSH1 0x00 000004a0: SWAP1 000004a1: DUP2 000004a2: MSTORE 000004a3: PUSH1 0x40 000004a5: SWAP1 000004a6: KECCAK256 000004a7: SLOAD 000004a8: PUSH1 0xff 000004aa: AND 000004ab: DUP2 000004ac: JUMP 000004ad: JUMPDEST 000004ae: CALLVALUE 000004af: DUP1 000004b0: ISZERO 000004b1: PUSH2 0x04b9 000004b4: JUMPI 000004b5: PUSH1 0x00 000004b7: DUP1 000004b8: REVERT 000004b9: JUMPDEST 000004ba: POP 000004bb: PUSH2 0x0343 000004be: PUSH1 0x01 000004c0: SLOAD 000004c1: PUSH1 0x01 000004c3: PUSH1 0x01 000004c5: PUSH1 0xa0 000004c7: SHL 000004c8: SUB 000004c9: AND 000004ca: CALLER 000004cb: EQ 000004cc: SWAP1 000004cd: JUMP 000004ce: JUMPDEST 000004cf: CALLVALUE 000004d0: DUP1 000004d1: ISZERO 000004d2: PUSH2 0x04da 000004d5: JUMPI 000004d6: PUSH1 0x00 000004d8: DUP1 000004d9: REVERT 000004da: JUMPDEST 000004db: POP 000004dc: PUSH2 0x03be 000004df: PUSH2 0x04e9 000004e2: CALLDATASIZE 000004e3: PUSH1 0x04 000004e5: PUSH2 0x2fcc 000004e8: JUMP 000004e9: JUMPDEST 000004ea: PUSH2 0x1a98 000004ed: JUMP 000004ee: JUMPDEST 000004ef: CALLVALUE 000004f0: DUP1 000004f1: ISZERO 000004f2: PUSH2 0x04fa 000004f5: JUMPI 000004f6: PUSH1 0x00 000004f8: DUP1 000004f9: REVERT 000004fa: JUMPDEST 000004fb: POP 000004fc: PUSH2 0x0343 000004ff: PUSH2 0x0509 00000502: CALLDATASIZE 00000503: PUSH1 0x04 00000505: PUSH2 0x2d1f 00000508: JUMP 00000509: JUMPDEST 0000050a: PUSH2 0x1ac3 0000050d: JUMP 0000050e: JUMPDEST 0000050f: CALLVALUE 00000510: DUP1 00000511: ISZERO 00000512: PUSH2 0x051a 00000515: JUMPI 00000516: PUSH1 0x00 00000518: DUP1 00000519: REVERT 0000051a: JUMPDEST 0000051b: POP 0000051c: PUSH2 0x02b3 0000051f: PUSH2 0x0529 00000522: CALLDATASIZE 00000523: PUSH1 0x04 00000525: PUSH2 0x2fcc 00000528: JUMP 00000529: JUMPDEST 0000052a: PUSH2 0x1d29 0000052d: JUMP 0000052e: JUMPDEST 0000052f: CALLVALUE 00000530: DUP1 00000531: ISZERO 00000532: PUSH2 0x053a 00000535: JUMPI 00000536: PUSH1 0x00 00000538: DUP1 00000539: REVERT 0000053a: JUMPDEST 0000053b: POP 0000053c: PUSH2 0x0343 0000053f: PUSH2 0x0549 00000542: CALLDATASIZE 00000543: PUSH1 0x04 00000545: PUSH2 0x2c37 00000548: JUMP 00000549: JUMPDEST 0000054a: PUSH1 0x03 0000054c: PUSH1 0x20 0000054e: MSTORE 0000054f: PUSH1 0x00 00000551: SWAP1 00000552: DUP2 00000553: MSTORE 00000554: PUSH1 0x40 00000556: SWAP1 00000557: KECCAK256 00000558: SLOAD 00000559: PUSH1 0xff 0000055b: AND 0000055c: DUP2 0000055d: JUMP 0000055e: JUMPDEST 0000055f: CALLVALUE 00000560: DUP1 00000561: ISZERO 00000562: PUSH2 0x056a 00000565: JUMPI 00000566: PUSH1 0x00 00000568: DUP1 00000569: REVERT 0000056a: JUMPDEST 0000056b: POP 0000056c: PUSH2 0x02b3 0000056f: PUSH2 0x0579 00000572: CALLDATASIZE 00000573: PUSH1 0x04 00000575: PUSH2 0x2e42 00000578: JUMP 00000579: JUMPDEST 0000057a: DUP1 0000057b: MLOAD 0000057c: PUSH1 0x20 0000057e: DUP2 0000057f: DUP4 00000580: ADD 00000581: DUP2 00000582: ADD 00000583: DUP1 00000584: MLOAD 00000585: PUSH1 0x0b 00000587: DUP3 00000588: MSTORE 00000589: SWAP3 0000058a: DUP3 0000058b: ADD 0000058c: SWAP2 0000058d: SWAP1 0000058e: SWAP4 0000058f: ADD 00000590: KECCAK256 00000591: SWAP2 00000592: MSTORE 00000593: SLOAD 00000594: PUSH1 0x01 00000596: PUSH1 0x01 00000598: PUSH1 0xa0 0000059a: SHL 0000059b: SUB 0000059c: AND 0000059d: DUP2 0000059e: JUMP 0000059f: JUMPDEST 000005a0: CALLVALUE 000005a1: DUP1 000005a2: ISZERO 000005a3: PUSH2 0x05ab 000005a6: JUMPI 000005a7: PUSH1 0x00 000005a9: DUP1 000005aa: REVERT 000005ab: JUMPDEST 000005ac: POP 000005ad: PUSH2 0x02eb 000005b0: PUSH2 0x05ba 000005b3: CALLDATASIZE 000005b4: PUSH1 0x04 000005b6: PUSH2 0x2c37 000005b9: JUMP 000005ba: JUMPDEST 000005bb: PUSH2 0x1d53 000005be: JUMP 000005bf: JUMPDEST 000005c0: CALLVALUE 000005c1: DUP1 000005c2: ISZERO 000005c3: PUSH2 0x05cb 000005c6: JUMPI 000005c7: PUSH1 0x00 000005c9: DUP1 000005ca: REVERT 000005cb: JUMPDEST 000005cc: POP 000005cd: PUSH2 0x05fa 000005d0: PUSH2 0x05da 000005d3: CALLDATASIZE 000005d4: PUSH1 0x04 000005d6: PUSH2 0x2e42 000005d9: JUMP 000005da: JUMPDEST 000005db: DUP1 000005dc: MLOAD 000005dd: PUSH1 0x20 000005df: DUP2 000005e0: DUP4 000005e1: ADD 000005e2: DUP2 000005e3: ADD 000005e4: DUP1 000005e5: MLOAD 000005e6: PUSH1 0x0c 000005e8: DUP3 000005e9: MSTORE 000005ea: SWAP3 000005eb: DUP3 000005ec: ADD 000005ed: SWAP2 000005ee: SWAP1 000005ef: SWAP4 000005f0: ADD 000005f1: KECCAK256 000005f2: SWAP2 000005f3: MSTORE 000005f4: SLOAD 000005f5: PUSH1 0xff 000005f7: AND 000005f8: DUP2 000005f9: JUMP 000005fa: JUMPDEST 000005fb: PUSH1 0x40 000005fd: MLOAD 000005fe: PUSH1 0xff 00000600: SWAP1 00000601: SWAP2 00000602: AND 00000603: DUP2 00000604: MSTORE 00000605: PUSH1 0x20 00000607: ADD 00000608: PUSH2 0x0290 0000060b: JUMP 0000060c: JUMPDEST 0000060d: CALLVALUE 0000060e: DUP1 0000060f: ISZERO 00000610: PUSH2 0x0618 00000613: JUMPI 00000614: PUSH1 0x00 00000616: DUP1 00000617: REVERT 00000618: JUMPDEST 00000619: POP 0000061a: PUSH2 0x02eb 0000061d: PUSH2 0x0627 00000620: CALLDATASIZE 00000621: PUSH1 0x04 00000623: PUSH2 0x2dbe 00000626: JUMP 00000627: JUMPDEST 00000628: PUSH2 0x1dfe 0000062b: JUMP 0000062c: JUMPDEST 0000062d: CALLVALUE 0000062e: DUP1 0000062f: ISZERO 00000630: PUSH2 0x0638 00000633: JUMPI 00000634: PUSH1 0x00 00000636: DUP1 00000637: REVERT 00000638: JUMPDEST 00000639: POP 0000063a: PUSH1 0x01 0000063c: SLOAD 0000063d: PUSH1 0x01 0000063f: PUSH1 0x01 00000641: PUSH1 0xa0 00000643: SHL 00000644: SUB 00000645: AND 00000646: PUSH2 0x02b3 00000649: JUMP 0000064a: JUMPDEST 0000064b: CALLVALUE 0000064c: DUP1 0000064d: ISZERO 0000064e: PUSH2 0x0656 00000651: JUMPI 00000652: PUSH1 0x00 00000654: DUP1 00000655: REVERT 00000656: JUMPDEST 00000657: POP 00000658: PUSH2 0x02eb 0000065b: PUSH2 0x0665 0000065e: CALLDATASIZE 0000065f: PUSH1 0x04 00000661: PUSH2 0x2ffc 00000664: JUMP 00000665: JUMPDEST 00000666: PUSH2 0x1eb8 00000669: JUMP 0000066a: JUMPDEST 0000066b: CALLVALUE 0000066c: DUP1 0000066d: ISZERO 0000066e: PUSH2 0x0676 00000671: JUMPI 00000672: PUSH1 0x00 00000674: DUP1 00000675: REVERT 00000676: JUMPDEST 00000677: POP 00000678: PUSH2 0x0343 0000067b: PUSH2 0x0685 0000067e: CALLDATASIZE 0000067f: PUSH1 0x04 00000681: PUSH2 0x2c37 00000684: JUMP 00000685: JUMPDEST 00000686: PUSH2 0x1f8d 00000689: JUMP 0000068a: JUMPDEST 0000068b: CALLVALUE 0000068c: DUP1 0000068d: ISZERO 0000068e: PUSH2 0x0696 00000691: JUMPI 00000692: PUSH1 0x00 00000694: DUP1 00000695: REVERT 00000696: JUMPDEST 00000697: POP 00000698: PUSH2 0x0343 0000069b: PUSH1 0x02 0000069d: SLOAD 0000069e: PUSH1 0x01 000006a0: PUSH1 0x01 000006a2: PUSH1 0xa0 000006a4: SHL 000006a5: SUB 000006a6: AND 000006a7: CALLER 000006a8: EQ 000006a9: SWAP1 000006aa: JUMP 000006ab: JUMPDEST 000006ac: CALLVALUE 000006ad: DUP1 000006ae: ISZERO 000006af: PUSH2 0x06b7 000006b2: JUMPI 000006b3: PUSH1 0x00 000006b5: DUP1 000006b6: REVERT 000006b7: JUMPDEST 000006b8: POP 000006b9: PUSH2 0x02eb 000006bc: PUSH2 0x06c6 000006bf: CALLDATASIZE 000006c0: PUSH1 0x04 000006c2: PUSH2 0x2ce7 000006c5: JUMP 000006c6: JUMPDEST 000006c7: PUSH2 0x1faf 000006ca: JUMP 000006cb: JUMPDEST 000006cc: PUSH1 0x00 000006ce: PUSH2 0x0797 000006d1: PUSH1 0x09 000006d3: DUP1 000006d4: SLOAD 000006d5: PUSH2 0x06dd 000006d8: SWAP1 000006d9: PUSH2 0x34f9 000006dc: JUMP 000006dd: JUMPDEST 000006de: DUP1 000006df: PUSH1 0x1f 000006e1: ADD 000006e2: PUSH1 0x20 000006e4: DUP1 000006e5: SWAP2 000006e6: DIV 000006e7: MUL 000006e8: PUSH1 0x20 000006ea: ADD 000006eb: PUSH1 0x40 000006ed: MLOAD 000006ee: SWAP1 000006ef: DUP2 000006f0: ADD 000006f1: PUSH1 0x40 000006f3: MSTORE 000006f4: DUP1 000006f5: SWAP3 000006f6: SWAP2 000006f7: SWAP1 000006f8: DUP2 000006f9: DUP2 000006fa: MSTORE 000006fb: PUSH1 0x20 000006fd: ADD 000006fe: DUP3 000006ff: DUP1 00000700: SLOAD 00000701: PUSH2 0x0709 00000704: SWAP1 00000705: PUSH2 0x34f9 00000708: JUMP 00000709: JUMPDEST 0000070a: DUP1 0000070b: ISZERO 0000070c: PUSH2 0x0756 0000070f: JUMPI 00000710: DUP1 00000711: PUSH1 0x1f 00000713: LT 00000714: PUSH2 0x072b 00000717: JUMPI 00000718: PUSH2 0x0100 0000071b: DUP1 0000071c: DUP4 0000071d: SLOAD 0000071e: DIV 0000071f: MUL 00000720: DUP4 00000721: MSTORE 00000722: SWAP2 00000723: PUSH1 0x20 00000725: ADD 00000726: SWAP2 00000727: PUSH2 0x0756 0000072a: JUMP 0000072b: JUMPDEST 0000072c: DUP3 0000072d: ADD 0000072e: SWAP2 0000072f: SWAP1 00000730: PUSH1 0x00 00000732: MSTORE 00000733: PUSH1 0x20 00000735: PUSH1 0x00 00000737: KECCAK256 00000738: SWAP1 00000739: JUMPDEST 0000073a: DUP2 0000073b: SLOAD 0000073c: DUP2 0000073d: MSTORE 0000073e: SWAP1 0000073f: PUSH1 0x01 00000741: ADD 00000742: SWAP1 00000743: PUSH1 0x20 00000745: ADD 00000746: DUP1 00000747: DUP4 00000748: GT 00000749: PUSH2 0x0739 0000074c: JUMPI 0000074d: DUP3 0000074e: SWAP1 0000074f: SUB 00000750: PUSH1 0x1f 00000752: AND 00000753: DUP3 00000754: ADD 00000755: SWAP2 00000756: JUMPDEST 00000757: POP 00000758: POP 00000759: POP 0000075a: POP 0000075b: POP 0000075c: DUP5 0000075d: DUP5 0000075e: DUP1 0000075f: DUP1 00000760: PUSH1 0x1f 00000762: ADD 00000763: PUSH1 0x20 00000765: DUP1 00000766: SWAP2 00000767: DIV 00000768: MUL 00000769: PUSH1 0x20 0000076b: ADD 0000076c: PUSH1 0x40 0000076e: MLOAD 0000076f: SWAP1 00000770: DUP2 00000771: ADD 00000772: PUSH1 0x40 00000774: MSTORE 00000775: DUP1 00000776: SWAP4 00000777: SWAP3 00000778: SWAP2 00000779: SWAP1 0000077a: DUP2 0000077b: DUP2 0000077c: MSTORE 0000077d: PUSH1 0x20 0000077f: ADD 00000780: DUP4 00000781: DUP4 00000782: DUP1 00000783: DUP3 00000784: DUP5 00000785: CALLDATACOPY 00000786: PUSH1 0x00 00000788: SWAP3 00000789: ADD 0000078a: SWAP2 0000078b: SWAP1 0000078c: SWAP2 0000078d: MSTORE 0000078e: POP 0000078f: PUSH2 0x206d 00000792: SWAP3 00000793: POP 00000794: POP 00000795: POP 00000796: JUMP 00000797: JUMPDEST 00000798: ISZERO 00000799: PUSH2 0x07a3 0000079c: JUMPI 0000079d: POP 0000079e: SELFBALANCE 0000079f: PUSH2 0x0854 000007a2: JUMP 000007a3: JUMPDEST 000007a4: PUSH1 0x00 000007a6: PUSH1 0x0b 000007a8: DUP5 000007a9: DUP5 000007aa: PUSH1 0x40 000007ac: MLOAD 000007ad: PUSH2 0x07b7 000007b0: SWAP3 000007b1: SWAP2 000007b2: SWAP1 000007b3: PUSH2 0x3050 000007b6: JUMP 000007b7: JUMPDEST 000007b8: SWAP1 000007b9: DUP2 000007ba: MSTORE 000007bb: PUSH1 0x40 000007bd: MLOAD 000007be: SWAP1 000007bf: DUP2 000007c0: SWAP1 000007c1: SUB 000007c2: PUSH1 0x20 000007c4: ADD 000007c5: SWAP1 000007c6: KECCAK256 000007c7: SLOAD 000007c8: PUSH1 0x01 000007ca: PUSH1 0x01 000007cc: PUSH1 0xa0 000007ce: SHL 000007cf: SUB 000007d0: AND 000007d1: SWAP1 000007d2: POP 000007d3: DUP1 000007d4: ISZERO 000007d5: PUSH2 0x0852 000007d8: JUMPI 000007d9: PUSH1 0x40 000007db: MLOAD 000007dc: PUSH4 0x70a08231 000007e1: PUSH1 0xe0 000007e3: SHL 000007e4: DUP2 000007e5: MSTORE 000007e6: ADDRESS 000007e7: PUSH1 0x04 000007e9: DUP3 000007ea: ADD 000007eb: MSTORE 000007ec: PUSH1 0x01 000007ee: PUSH1 0x01 000007f0: PUSH1 0xa0 000007f2: SHL 000007f3: SUB 000007f4: DUP3 000007f5: AND 000007f6: SWAP1 000007f7: PUSH4 0x70a08231 000007fc: SWAP1 000007fd: PUSH1 0x24 000007ff: ADD 00000800: PUSH1 0x20 00000802: PUSH1 0x40 00000804: MLOAD 00000805: DUP1 00000806: DUP4 00000807: SUB 00000808: DUP2 00000809: DUP7 0000080a: DUP1 0000080b: EXTCODESIZE 0000080c: ISZERO 0000080d: DUP1 0000080e: ISZERO 0000080f: PUSH2 0x0817 00000812: JUMPI 00000813: PUSH1 0x00 00000815: DUP1 00000816: REVERT 00000817: JUMPDEST 00000818: POP 00000819: GAS 0000081a: STATICCALL 0000081b: ISZERO 0000081c: DUP1 0000081d: ISZERO 0000081e: PUSH2 0x082b 00000821: JUMPI 00000822: RETURNDATASIZE 00000823: PUSH1 0x00 00000825: DUP1 00000826: RETURNDATACOPY 00000827: RETURNDATASIZE 00000828: PUSH1 0x00 0000082a: REVERT 0000082b: JUMPDEST 0000082c: POP 0000082d: POP 0000082e: POP 0000082f: POP 00000830: PUSH1 0x40 00000832: MLOAD 00000833: RETURNDATASIZE 00000834: PUSH1 0x1f 00000836: NOT 00000837: PUSH1 0x1f 00000839: DUP3 0000083a: ADD 0000083b: AND 0000083c: DUP3 0000083d: ADD 0000083e: DUP1 0000083f: PUSH1 0x40 00000841: MSTORE 00000842: POP 00000843: DUP2 00000844: ADD 00000845: SWAP1 00000846: PUSH2 0x084f 00000849: SWAP2 0000084a: SWAP1 0000084b: PUSH2 0x2fe4 0000084e: JUMP 0000084f: JUMPDEST 00000850: SWAP2 00000851: POP 00000852: JUMPDEST 00000853: POP 00000854: JUMPDEST 00000855: SWAP3 00000856: SWAP2 00000857: POP 00000858: POP 00000859: JUMP 0000085a: JUMPDEST 0000085b: PUSH1 0x00 0000085d: SLOAD 0000085e: PUSH1 0x01 00000860: PUSH1 0x01 00000862: PUSH1 0xa0 00000864: SHL 00000865: SUB 00000866: AND 00000867: CALLER 00000868: EQ 00000869: PUSH2 0x0884 0000086c: JUMPI 0000086d: PUSH1 0x40 0000086f: MLOAD 00000870: PUSH3 0x461bcd 00000874: PUSH1 0xe5 00000876: SHL 00000877: DUP2 00000878: MSTORE 00000879: PUSH1 0x04 0000087b: ADD 0000087c: PUSH2 0x021d 0000087f: SWAP1 00000880: PUSH2 0x3215 00000883: JUMP 00000884: JUMPDEST 00000885: PUSH1 0x01 00000887: PUSH1 0x01 00000889: PUSH1 0xa0 0000088b: SHL 0000088c: SUB 0000088d: DUP2 0000088e: AND 0000088f: PUSH2 0x08aa 00000892: JUMPI 00000893: PUSH1 0x40 00000895: MLOAD 00000896: PUSH3 0x461bcd 0000089a: PUSH1 0xe5 0000089c: SHL 0000089d: DUP2 0000089e: MSTORE 0000089f: PUSH1 0x04 000008a1: ADD 000008a2: PUSH2 0x021d 000008a5: SWAP1 000008a6: PUSH2 0x3240 000008a9: JUMP 000008aa: JUMPDEST 000008ab: PUSH1 0x02 000008ad: SLOAD 000008ae: PUSH1 0x40 000008b0: MLOAD 000008b1: PUSH1 0x01 000008b3: PUSH1 0x01 000008b5: PUSH1 0xa0 000008b7: SHL 000008b8: SUB 000008b9: DUP1 000008ba: DUP5 000008bb: AND 000008bc: SWAP3 000008bd: AND 000008be: SWAP1 000008bf: PUSH32 0x332aea18fc605b6be38db00074cd3c21a757c11fee654fd98c382a2e49ea2297 000008e0: SWAP1 000008e1: PUSH1 0x00 000008e3: SWAP1 000008e4: LOG3 000008e5: PUSH1 0x02 000008e7: DUP1 000008e8: SLOAD 000008e9: PUSH1 0x01 000008eb: PUSH1 0x01 000008ed: PUSH1 0xa0 000008ef: SHL 000008f0: SUB 000008f1: NOT 000008f2: AND 000008f3: PUSH1 0x01 000008f5: PUSH1 0x01 000008f7: PUSH1 0xa0 000008f9: SHL 000008fa: SUB 000008fb: SWAP3 000008fc: SWAP1 000008fd: SWAP3 000008fe: AND 000008ff: SWAP2 00000900: SWAP1 00000901: SWAP2 00000902: OR 00000903: SWAP1 00000904: SSTORE 00000905: JUMP 00000906: JUMPDEST 00000907: PUSH1 0x00 00000909: SLOAD 0000090a: PUSH1 0x01 0000090c: PUSH1 0x01 0000090e: PUSH1 0xa0 00000910: SHL 00000911: SUB 00000912: AND 00000913: CALLER 00000914: EQ 00000915: PUSH2 0x0930 00000918: JUMPI 00000919: PUSH1 0x40 0000091b: MLOAD 0000091c: PUSH3 0x461bcd 00000920: PUSH1 0xe5 00000922: SHL 00000923: DUP2 00000924: MSTORE 00000925: PUSH1 0x04 00000927: ADD 00000928: PUSH2 0x021d 0000092b: SWAP1 0000092c: PUSH2 0x3215 0000092f: JUMP 00000930: JUMPDEST 00000931: DUP1 00000932: PUSH2 0x097d 00000935: JUMPI 00000936: PUSH1 0x40 00000938: MLOAD 00000939: PUSH3 0x461bcd 0000093d: PUSH1 0xe5 0000093f: SHL 00000940: DUP2 00000941: MSTORE 00000942: PUSH1 0x20 00000944: PUSH1 0x04 00000946: DUP3 00000947: ADD 00000948: MSTORE 00000949: PUSH1 0x1a 0000094b: PUSH1 0x24 0000094d: DUP3 0000094e: ADD 0000094f: MSTORE 00000950: PUSH32 0x4d756c74695369676e436f72652f6e756c6c2d61646472657373000000000000 00000971: PUSH1 0x44 00000973: DUP3 00000974: ADD 00000975: MSTORE 00000976: PUSH1 0x64 00000978: ADD 00000979: PUSH2 0x021d 0000097c: JUMP 0000097d: JUMPDEST 0000097e: PUSH1 0x00 00000980: JUMPDEST 00000981: DUP2 00000982: DUP2 00000983: LT 00000984: ISZERO 00000985: PUSH2 0x0b97 00000988: JUMPI 00000989: PUSH1 0x00 0000098b: DUP4 0000098c: DUP4 0000098d: DUP4 0000098e: DUP2 0000098f: DUP2 00000990: LT 00000991: PUSH2 0x09aa 00000994: JUMPI 00000995: PUSH4 0x4e487b71 0000099a: PUSH1 0xe0 0000099c: SHL 0000099d: PUSH1 0x00 0000099f: MSTORE 000009a0: PUSH1 0x32 000009a2: PUSH1 0x04 000009a4: MSTORE 000009a5: PUSH1 0x24 000009a7: PUSH1 0x00 000009a9: REVERT 000009aa: JUMPDEST 000009ab: SWAP1 000009ac: POP 000009ad: PUSH1 0x20 000009af: MUL 000009b0: ADD 000009b1: PUSH1 0x20 000009b3: DUP2 000009b4: ADD 000009b5: SWAP1 000009b6: PUSH2 0x09bf 000009b9: SWAP2 000009ba: SWAP1 000009bb: PUSH2 0x2c37 000009be: JUMP 000009bf: JUMPDEST 000009c0: PUSH1 0x01 000009c2: PUSH1 0x01 000009c4: PUSH1 0xa0 000009c6: SHL 000009c7: SUB 000009c8: AND 000009c9: EQ 000009ca: ISZERO 000009cb: PUSH2 0x0a16 000009ce: JUMPI 000009cf: PUSH1 0x40 000009d1: MLOAD 000009d2: PUSH3 0x461bcd 000009d6: PUSH1 0xe5 000009d8: SHL 000009d9: DUP2 000009da: MSTORE 000009db: PUSH1 0x20 000009dd: PUSH1 0x04 000009df: DUP3 000009e0: ADD 000009e1: MSTORE 000009e2: PUSH1 0x17 000009e4: PUSH1 0x24 000009e6: DUP3 000009e7: ADD 000009e8: MSTORE 000009e9: PUSH32 0x4d756c74695369676e436f72652f616464726573732d30000000000000000000 00000a0a: PUSH1 0x44 00000a0c: DUP3 00000a0d: ADD 00000a0e: MSTORE 00000a0f: PUSH1 0x64 00000a11: ADD 00000a12: PUSH2 0x021d 00000a15: JUMP 00000a16: JUMPDEST 00000a17: PUSH1 0x03 00000a19: PUSH1 0x00 00000a1b: DUP5 00000a1c: DUP5 00000a1d: DUP5 00000a1e: DUP2 00000a1f: DUP2 00000a20: LT 00000a21: PUSH2 0x0a3a 00000a24: JUMPI 00000a25: PUSH4 0x4e487b71 00000a2a: PUSH1 0xe0 00000a2c: SHL 00000a2d: PUSH1 0x00 00000a2f: MSTORE 00000a30: PUSH1 0x32 00000a32: PUSH1 0x04 00000a34: MSTORE 00000a35: PUSH1 0x24 00000a37: PUSH1 0x00 00000a39: REVERT 00000a3a: JUMPDEST 00000a3b: SWAP1 00000a3c: POP 00000a3d: PUSH1 0x20 00000a3f: MUL 00000a40: ADD 00000a41: PUSH1 0x20 00000a43: DUP2 00000a44: ADD 00000a45: SWAP1 00000a46: PUSH2 0x0a4f 00000a49: SWAP2 00000a4a: SWAP1 00000a4b: PUSH2 0x2c37 00000a4e: JUMP 00000a4f: JUMPDEST 00000a50: PUSH1 0x01 00000a52: PUSH1 0x01 00000a54: PUSH1 0xa0 00000a56: SHL 00000a57: SUB 00000a58: AND 00000a59: DUP2 00000a5a: MSTORE 00000a5b: PUSH1 0x20 00000a5d: DUP2 00000a5e: ADD 00000a5f: SWAP2 00000a60: SWAP1 00000a61: SWAP2 00000a62: MSTORE 00000a63: PUSH1 0x40 00000a65: ADD 00000a66: PUSH1 0x00 00000a68: KECCAK256 00000a69: SLOAD 00000a6a: PUSH1 0xff 00000a6c: AND 00000a6d: ISZERO 00000a6e: PUSH2 0x0ab9 00000a71: JUMPI 00000a72: PUSH1 0x40 00000a74: MLOAD 00000a75: PUSH3 0x461bcd 00000a79: PUSH1 0xe5 00000a7b: SHL 00000a7c: DUP2 00000a7d: MSTORE 00000a7e: PUSH1 0x20 00000a80: PUSH1 0x04 00000a82: DUP3 00000a83: ADD 00000a84: MSTORE 00000a85: PUSH1 0x1c 00000a87: PUSH1 0x24 00000a89: DUP3 00000a8a: ADD 00000a8b: MSTORE 00000a8c: PUSH32 0x4d756c74695369676e436f72652f7769746e6573732d65786973747300000000 00000aad: PUSH1 0x44 00000aaf: DUP3 00000ab0: ADD 00000ab1: MSTORE 00000ab2: PUSH1 0x64 00000ab4: ADD 00000ab5: PUSH2 0x021d 00000ab8: JUMP 00000ab9: JUMPDEST 00000aba: PUSH1 0x01 00000abc: PUSH1 0x03 00000abe: PUSH1 0x00 00000ac0: DUP6 00000ac1: DUP6 00000ac2: DUP6 00000ac3: DUP2 00000ac4: DUP2 00000ac5: LT 00000ac6: PUSH2 0x0adf 00000ac9: JUMPI 00000aca: PUSH4 0x4e487b71 00000acf: PUSH1 0xe0 00000ad1: SHL 00000ad2: PUSH1 0x00 00000ad4: MSTORE 00000ad5: PUSH1 0x32 00000ad7: PUSH1 0x04 00000ad9: MSTORE 00000ada: PUSH1 0x24 00000adc: PUSH1 0x00 00000ade: REVERT 00000adf: JUMPDEST 00000ae0: SWAP1 00000ae1: POP 00000ae2: PUSH1 0x20 00000ae4: MUL 00000ae5: ADD 00000ae6: PUSH1 0x20 00000ae8: DUP2 00000ae9: ADD 00000aea: SWAP1 00000aeb: PUSH2 0x0af4 00000aee: SWAP2 00000aef: SWAP1 00000af0: PUSH2 0x2c37 00000af3: JUMP 00000af4: JUMPDEST 00000af5: PUSH1 0x01 00000af7: PUSH1 0x01 00000af9: PUSH1 0xa0 00000afb: SHL 00000afc: SUB 00000afd: AND 00000afe: DUP2 00000aff: MSTORE 00000b00: PUSH1 0x20 00000b02: DUP2 00000b03: ADD 00000b04: SWAP2 00000b05: SWAP1 00000b06: SWAP2 00000b07: MSTORE 00000b08: PUSH1 0x40 00000b0a: ADD 00000b0b: PUSH1 0x00 00000b0d: KECCAK256 00000b0e: DUP1 00000b0f: SLOAD 00000b10: PUSH1 0xff 00000b12: NOT 00000b13: AND 00000b14: SWAP2 00000b15: ISZERO 00000b16: ISZERO 00000b17: SWAP2 00000b18: SWAP1 00000b19: SWAP2 00000b1a: OR 00000b1b: SWAP1 00000b1c: SSTORE 00000b1d: PUSH1 0x04 00000b1f: DUP4 00000b20: DUP4 00000b21: DUP4 00000b22: DUP2 00000b23: DUP2 00000b24: LT 00000b25: PUSH2 0x0b3e 00000b28: JUMPI 00000b29: PUSH4 0x4e487b71 00000b2e: PUSH1 0xe0 00000b30: SHL 00000b31: PUSH1 0x00 00000b33: MSTORE 00000b34: PUSH1 0x32 00000b36: PUSH1 0x04 00000b38: MSTORE 00000b39: PUSH1 0x24 00000b3b: PUSH1 0x00 00000b3d: REVERT 00000b3e: JUMPDEST 00000b3f: SWAP1 00000b40: POP 00000b41: PUSH1 0x20 00000b43: MUL 00000b44: ADD 00000b45: PUSH1 0x20 00000b47: DUP2 00000b48: ADD 00000b49: SWAP1 00000b4a: PUSH2 0x0b53 00000b4d: SWAP2 00000b4e: SWAP1 00000b4f: PUSH2 0x2c37 00000b52: JUMP 00000b53: JUMPDEST 00000b54: DUP2 00000b55: SLOAD 00000b56: PUSH1 0x01 00000b58: DUP2 00000b59: ADD 00000b5a: DUP4 00000b5b: SSTORE 00000b5c: PUSH1 0x00 00000b5e: SWAP3 00000b5f: DUP4 00000b60: MSTORE 00000b61: PUSH1 0x20 00000b63: SWAP1 00000b64: SWAP3 00000b65: KECCAK256 00000b66: SWAP1 00000b67: SWAP2 00000b68: ADD 00000b69: DUP1 00000b6a: SLOAD 00000b6b: PUSH1 0x01 00000b6d: PUSH1 0x01 00000b6f: PUSH1 0xa0 00000b71: SHL 00000b72: SUB 00000b73: NOT 00000b74: AND 00000b75: PUSH1 0x01 00000b77: PUSH1 0x01 00000b79: PUSH1 0xa0 00000b7b: SHL 00000b7c: SUB 00000b7d: SWAP1 00000b7e: SWAP3 00000b7f: AND 00000b80: SWAP2 00000b81: SWAP1 00000b82: SWAP2 00000b83: OR 00000b84: SWAP1 00000b85: SSTORE 00000b86: DUP1 00000b87: PUSH2 0x0b8f 00000b8a: DUP2 00000b8b: PUSH2 0x3534 00000b8e: JUMP 00000b8f: JUMPDEST 00000b90: SWAP2 00000b91: POP 00000b92: POP 00000b93: PUSH2 0x0980 00000b96: JUMP 00000b97: JUMPDEST 00000b98: POP 00000b99: PUSH1 0x04 00000b9b: SLOAD 00000b9c: PUSH1 0x00 00000b9e: SWAP1 00000b9f: PUSH2 0x0baa 00000ba2: SWAP1 00000ba3: PUSH1 0x02 00000ba5: SWAP1 00000ba6: PUSH2 0x3360 00000ba9: JUMP 00000baa: JUMPDEST 00000bab: PUSH2 0x0bb5 00000bae: SWAP1 00000baf: PUSH1 0x01 00000bb1: PUSH2 0x3348 00000bb4: JUMP 00000bb5: JUMPDEST 00000bb6: SWAP1 00000bb7: POP 00000bb8: DUP1 00000bb9: PUSH1 0x05 00000bbb: SLOAD 00000bbc: LT 00000bbd: ISZERO 00000bbe: PUSH2 0x0bc7 00000bc1: JUMPI 00000bc2: PUSH1 0x05 00000bc4: DUP2 00000bc5: SWAP1 00000bc6: SSTORE 00000bc7: JUMPDEST 00000bc8: PUSH1 0x05 00000bca: SLOAD 00000bcb: DUP4 00000bcc: DUP4 00000bcd: PUSH1 0x00 00000bcf: DUP2 00000bd0: DUP2 00000bd1: LT 00000bd2: PUSH2 0x0beb 00000bd5: JUMPI 00000bd6: PUSH4 0x4e487b71 00000bdb: PUSH1 0xe0 00000bdd: SHL 00000bde: PUSH1 0x00 00000be0: MSTORE 00000be1: PUSH1 0x32 00000be3: PUSH1 0x04 00000be5: MSTORE 00000be6: PUSH1 0x24 00000be8: PUSH1 0x00 00000bea: REVERT 00000beb: JUMPDEST 00000bec: SWAP1 00000bed: POP 00000bee: PUSH1 0x20 00000bf0: MUL 00000bf1: ADD 00000bf2: PUSH1 0x20 00000bf4: DUP2 00000bf5: ADD 00000bf6: SWAP1 00000bf7: PUSH2 0x0c00 00000bfa: SWAP2 00000bfb: SWAP1 00000bfc: PUSH2 0x2c37 00000bff: JUMP 00000c00: JUMPDEST 00000c01: PUSH1 0x01 00000c03: PUSH1 0x01 00000c05: PUSH1 0xa0 00000c07: SHL 00000c08: SUB 00000c09: AND 00000c0a: PUSH32 0xaf30db8bf82d0d3b54c27212a962aa5dcbc3846aa754ecc88119ad80052ff39d 00000c2b: DUP6 00000c2c: DUP6 00000c2d: PUSH1 0x40 00000c2f: MLOAD 00000c30: PUSH2 0x0c3a 00000c33: SWAP3 00000c34: SWAP2 00000c35: SWAP1 00000c36: PUSH2 0x3148 00000c39: JUMP 00000c3a: JUMPDEST 00000c3b: PUSH1 0x40 00000c3d: MLOAD 00000c3e: DUP1 00000c3f: SWAP2 00000c40: SUB 00000c41: SWAP1 00000c42: LOG3 00000c43: POP 00000c44: POP 00000c45: POP 00000c46: JUMP 00000c47: JUMPDEST 00000c48: PUSH1 0x00 00000c4a: SLOAD 00000c4b: PUSH1 0x01 00000c4d: PUSH1 0x01 00000c4f: PUSH1 0xa0 00000c51: SHL 00000c52: SUB 00000c53: AND 00000c54: CALLER 00000c55: EQ 00000c56: PUSH2 0x0c71 00000c59: JUMPI 00000c5a: PUSH1 0x40 00000c5c: MLOAD 00000c5d: PUSH3 0x461bcd 00000c61: PUSH1 0xe5 00000c63: SHL 00000c64: DUP2 00000c65: MSTORE 00000c66: PUSH1 0x04 00000c68: ADD 00000c69: PUSH2 0x021d 00000c6c: SWAP1 00000c6d: PUSH2 0x3215 00000c70: JUMP 00000c71: JUMPDEST 00000c72: DUP1 00000c73: PUSH2 0x0cbe 00000c76: JUMPI 00000c77: PUSH1 0x40 00000c79: MLOAD 00000c7a: PUSH3 0x461bcd 00000c7e: PUSH1 0xe5 00000c80: SHL 00000c81: DUP2 00000c82: MSTORE 00000c83: PUSH1 0x20 00000c85: PUSH1 0x04 00000c87: DUP3 00000c88: ADD 00000c89: MSTORE 00000c8a: PUSH1 0x1a 00000c8c: PUSH1 0x24 00000c8e: DUP3 00000c8f: ADD 00000c90: MSTORE 00000c91: PUSH32 0x4d756c74695369676e436f72652f6e756c6c2d61646472657373000000000000 00000cb2: PUSH1 0x44 00000cb4: DUP3 00000cb5: ADD 00000cb6: MSTORE 00000cb7: PUSH1 0x64 00000cb9: ADD 00000cba: PUSH2 0x021d 00000cbd: JUMP 00000cbe: JUMPDEST 00000cbf: PUSH1 0x00 00000cc1: JUMPDEST 00000cc2: DUP2 00000cc3: DUP2 00000cc4: LT 00000cc5: ISZERO 00000cc6: PUSH2 0x0e19 00000cc9: JUMPI 00000cca: PUSH1 0x03 00000ccc: PUSH1 0x00 00000cce: DUP5 00000ccf: DUP5 00000cd0: DUP5 00000cd1: DUP2 00000cd2: DUP2 00000cd3: LT 00000cd4: PUSH2 0x0ced 00000cd7: JUMPI 00000cd8: PUSH4 0x4e487b71 00000cdd: PUSH1 0xe0 00000cdf: SHL 00000ce0: PUSH1 0x00 00000ce2: MSTORE 00000ce3: PUSH1 0x32 00000ce5: PUSH1 0x04 00000ce7: MSTORE 00000ce8: PUSH1 0x24 00000cea: PUSH1 0x00 00000cec: REVERT 00000ced: JUMPDEST 00000cee: SWAP1 00000cef: POP 00000cf0: PUSH1 0x20 00000cf2: MUL 00000cf3: ADD 00000cf4: PUSH1 0x20 00000cf6: DUP2 00000cf7: ADD 00000cf8: SWAP1 00000cf9: PUSH2 0x0d02 00000cfc: SWAP2 00000cfd: SWAP1 00000cfe: PUSH2 0x2c37 00000d01: JUMP 00000d02: JUMPDEST 00000d03: PUSH1 0x01 00000d05: PUSH1 0x01 00000d07: PUSH1 0xa0 00000d09: SHL 00000d0a: SUB 00000d0b: AND 00000d0c: DUP2 00000d0d: MSTORE 00000d0e: PUSH1 0x20 00000d10: DUP2 00000d11: ADD 00000d12: SWAP2 00000d13: SWAP1 00000d14: SWAP2 00000d15: MSTORE 00000d16: PUSH1 0x40 00000d18: ADD 00000d19: PUSH1 0x00 00000d1b: KECCAK256 00000d1c: SLOAD 00000d1d: PUSH1 0xff 00000d1f: AND 00000d20: ISZERO 00000d21: ISZERO 00000d22: PUSH1 0x01 00000d24: EQ 00000d25: PUSH2 0x0d70 00000d28: JUMPI 00000d29: PUSH1 0x40 00000d2b: MLOAD 00000d2c: PUSH3 0x461bcd 00000d30: PUSH1 0xe5 00000d32: SHL 00000d33: DUP2 00000d34: MSTORE 00000d35: PUSH1 0x20 00000d37: PUSH1 0x04 00000d39: DUP3 00000d3a: ADD 00000d3b: DUP2 00000d3c: SWAP1 00000d3d: MSTORE 00000d3e: PUSH1 0x24 00000d40: DUP3 00000d41: ADD 00000d42: MSTORE 00000d43: PUSH32 0x4d756c74695369676e436f72652f7769746e6573732d6e6f742d657869737473 00000d64: PUSH1 0x44 00000d66: DUP3 00000d67: ADD 00000d68: MSTORE 00000d69: PUSH1 0x64 00000d6b: ADD 00000d6c: PUSH2 0x021d 00000d6f: JUMP 00000d70: JUMPDEST 00000d71: PUSH1 0x03 00000d73: PUSH1 0x00 00000d75: DUP5 00000d76: DUP5 00000d77: DUP5 00000d78: DUP2 00000d79: DUP2 00000d7a: LT 00000d7b: PUSH2 0x0d94 00000d7e: JUMPI 00000d7f: PUSH4 0x4e487b71 00000d84: PUSH1 0xe0 00000d86: SHL 00000d87: PUSH1 0x00 00000d89: MSTORE 00000d8a: PUSH1 0x32 00000d8c: PUSH1 0x04 00000d8e: MSTORE 00000d8f: PUSH1 0x24 00000d91: PUSH1 0x00 00000d93: REVERT 00000d94: JUMPDEST 00000d95: SWAP1 00000d96: POP 00000d97: PUSH1 0x20 00000d99: MUL 00000d9a: ADD 00000d9b: PUSH1 0x20 00000d9d: DUP2 00000d9e: ADD 00000d9f: SWAP1 00000da0: PUSH2 0x0da9 00000da3: SWAP2 00000da4: SWAP1 00000da5: PUSH2 0x2c37 00000da8: JUMP 00000da9: JUMPDEST 00000daa: PUSH1 0x01 00000dac: PUSH1 0x01 00000dae: PUSH1 0xa0 00000db0: SHL 00000db1: SUB 00000db2: AND 00000db3: DUP2 00000db4: MSTORE 00000db5: PUSH1 0x20 00000db7: DUP2 00000db8: ADD 00000db9: SWAP2 00000dba: SWAP1 00000dbb: SWAP2 00000dbc: MSTORE 00000dbd: PUSH1 0x40 00000dbf: ADD 00000dc0: PUSH1 0x00 00000dc2: KECCAK256 00000dc3: DUP1 00000dc4: SLOAD 00000dc5: PUSH1 0xff 00000dc7: NOT 00000dc8: AND 00000dc9: SWAP1 00000dca: SSTORE 00000dcb: PUSH2 0x0e07 00000dce: DUP4 00000dcf: DUP4 00000dd0: DUP4 00000dd1: DUP2 00000dd2: DUP2 00000dd3: LT 00000dd4: PUSH2 0x0ded 00000dd7: JUMPI 00000dd8: PUSH4 0x4e487b71 00000ddd: PUSH1 0xe0 00000ddf: SHL 00000de0: PUSH1 0x00 00000de2: MSTORE 00000de3: PUSH1 0x32 00000de5: PUSH1 0x04 00000de7: MSTORE 00000de8: PUSH1 0x24 00000dea: PUSH1 0x00 00000dec: REVERT 00000ded: JUMPDEST 00000dee: SWAP1 00000def: POP 00000df0: PUSH1 0x20 00000df2: MUL 00000df3: ADD 00000df4: PUSH1 0x20 00000df6: DUP2 00000df7: ADD 00000df8: SWAP1 00000df9: PUSH2 0x0e02 00000dfc: SWAP2 00000dfd: SWAP1 00000dfe: PUSH2 0x2c37 00000e01: JUMP 00000e02: JUMPDEST 00000e03: PUSH2 0x20c6 00000e06: JUMP 00000e07: JUMPDEST 00000e08: DUP1 00000e09: PUSH2 0x0e11 00000e0c: DUP2 00000e0d: PUSH2 0x3534 00000e10: JUMP 00000e11: JUMPDEST 00000e12: SWAP2 00000e13: POP 00000e14: POP 00000e15: PUSH2 0x0cc1 00000e18: JUMP 00000e19: JUMPDEST 00000e1a: POP 00000e1b: PUSH1 0x04 00000e1d: SLOAD 00000e1e: PUSH1 0x05 00000e20: SLOAD 00000e21: GT 00000e22: ISZERO 00000e23: PUSH2 0x0e2d 00000e26: JUMPI 00000e27: PUSH1 0x04 00000e29: SLOAD 00000e2a: PUSH1 0x05 00000e2c: SSTORE 00000e2d: JUMPDEST 00000e2e: PUSH1 0x05 00000e30: SLOAD 00000e31: DUP3 00000e32: DUP3 00000e33: PUSH1 0x00 00000e35: DUP2 00000e36: DUP2 00000e37: LT 00000e38: PUSH2 0x0e51 00000e3b: JUMPI 00000e3c: PUSH4 0x4e487b71 00000e41: PUSH1 0xe0 00000e43: SHL 00000e44: PUSH1 0x00 00000e46: MSTORE 00000e47: PUSH1 0x32 00000e49: PUSH1 0x04 00000e4b: MSTORE 00000e4c: PUSH1 0x24 00000e4e: PUSH1 0x00 00000e50: REVERT 00000e51: JUMPDEST 00000e52: SWAP1 00000e53: POP 00000e54: PUSH1 0x20 00000e56: MUL 00000e57: ADD 00000e58: PUSH1 0x20 00000e5a: DUP2 00000e5b: ADD 00000e5c: SWAP1 00000e5d: PUSH2 0x0e66 00000e60: SWAP2 00000e61: SWAP1 00000e62: PUSH2 0x2c37 00000e65: JUMP 00000e66: JUMPDEST 00000e67: PUSH1 0x01 00000e69: PUSH1 0x01 00000e6b: PUSH1 0xa0 00000e6d: SHL 00000e6e: SUB 00000e6f: AND 00000e70: PUSH32 0x67891fe0d9250300c088f9c276e7ce16c947a67815eb528eaa2274706d5d1c46 00000e91: DUP5 00000e92: DUP5 00000e93: PUSH1 0x40 00000e95: MLOAD 00000e96: PUSH2 0x0ea0 00000e99: SWAP3 00000e9a: SWAP2 00000e9b: SWAP1 00000e9c: PUSH2 0x3148 00000e9f: JUMP 00000ea0: JUMPDEST 00000ea1: PUSH1 0x40 00000ea3: MLOAD 00000ea4: DUP1 00000ea5: SWAP2 00000ea6: SUB 00000ea7: SWAP1 00000ea8: LOG3 00000ea9: POP 00000eaa: POP 00000eab: JUMP 00000eac: JUMPDEST 00000ead: PUSH1 0x01 00000eaf: SLOAD 00000eb0: PUSH1 0x01 00000eb2: PUSH1 0x01 00000eb4: PUSH1 0xa0 00000eb6: SHL 00000eb7: SUB 00000eb8: AND 00000eb9: CALLER 00000eba: EQ 00000ebb: PUSH2 0x0efa 00000ebe: JUMPI 00000ebf: PUSH1 0x40 00000ec1: MLOAD 00000ec2: PUSH3 0x461bcd 00000ec6: PUSH1 0xe5 00000ec8: SHL 00000ec9: DUP2 00000eca: MSTORE 00000ecb: PUSH1 0x20 00000ecd: PUSH1 0x04 00000ecf: DUP3 00000ed0: ADD 00000ed1: MSTORE 00000ed2: PUSH1 0x11 00000ed4: PUSH1 0x24 00000ed6: DUP3 00000ed7: ADD 00000ed8: MSTORE 00000ed9: PUSH17 0x27bbb730b1363297a737ba1030b236b4b7 00000eeb: PUSH1 0x79 00000eed: SHL 00000eee: PUSH1 0x44 00000ef0: DUP3 00000ef1: ADD 00000ef2: MSTORE 00000ef3: PUSH1 0x64 00000ef5: ADD 00000ef6: PUSH2 0x021d 00000ef9: JUMP 00000efa: JUMPDEST 00000efb: PUSH2 0x0f0a 00000efe: PUSH1 0x09 00000f00: DUP1 00000f01: SLOAD 00000f02: PUSH2 0x06dd 00000f05: SWAP1 00000f06: PUSH2 0x34f9 00000f09: JUMP 00000f0a: JUMPDEST 00000f0b: ISZERO 00000f0c: PUSH2 0x0f57 00000f0f: JUMPI 00000f10: PUSH1 0x40 00000f12: MLOAD 00000f13: PUSH3 0x461bcd 00000f17: PUSH1 0xe5 00000f19: SHL 00000f1a: DUP2 00000f1b: MSTORE 00000f1c: PUSH1 0x20 00000f1e: PUSH1 0x04 00000f20: DUP3 00000f21: ADD 00000f22: MSTORE 00000f23: PUSH1 0x1f 00000f25: PUSH1 0x24 00000f27: DUP3 00000f28: ADD 00000f29: MSTORE 00000f2a: PUSH32 0x726567546f6b656e2f6e61746976652d73796d626f6c2d726573657276656400 00000f4b: PUSH1 0x44 00000f4d: DUP3 00000f4e: ADD 00000f4f: MSTORE 00000f50: PUSH1 0x64 00000f52: ADD 00000f53: PUSH2 0x021d 00000f56: JUMP 00000f57: JUMPDEST 00000f58: DUP1 00000f59: EXTCODESIZE 00000f5a: PUSH2 0x0fa5 00000f5d: JUMPI 00000f5e: PUSH1 0x40 00000f60: MLOAD 00000f61: PUSH3 0x461bcd 00000f65: PUSH1 0xe5 00000f67: SHL 00000f68: DUP2 00000f69: MSTORE 00000f6a: PUSH1 0x20 00000f6c: PUSH1 0x04 00000f6e: DUP3 00000f6f: ADD 00000f70: MSTORE 00000f71: PUSH1 0x18 00000f73: PUSH1 0x24 00000f75: DUP3 00000f76: ADD 00000f77: MSTORE 00000f78: PUSH32 0x726567546f6b656e2f696e76616c69642d616464726573730000000000000000 00000f99: PUSH1 0x44 00000f9b: DUP3 00000f9c: ADD 00000f9d: MSTORE 00000f9e: PUSH1 0x64 00000fa0: ADD 00000fa1: PUSH2 0x021d 00000fa4: JUMP 00000fa5: JUMPDEST 00000fa6: PUSH1 0x00 00000fa8: DUP2 00000fa9: SWAP1 00000faa: POP 00000fab: PUSH1 0x00 00000fad: DUP2 00000fae: PUSH1 0x01 00000fb0: PUSH1 0x01 00000fb2: PUSH1 0xa0 00000fb4: SHL 00000fb5: SUB 00000fb6: AND 00000fb7: PUSH4 0x313ce567 00000fbc: PUSH1 0x40 00000fbe: MLOAD 00000fbf: DUP2 00000fc0: PUSH4 0xffffffff 00000fc5: AND 00000fc6: PUSH1 0xe0 00000fc8: SHL 00000fc9: DUP2 00000fca: MSTORE 00000fcb: PUSH1 0x04 00000fcd: ADD 00000fce: PUSH1 0x20 00000fd0: PUSH1 0x40 00000fd2: MLOAD 00000fd3: DUP1 00000fd4: DUP4 00000fd5: SUB 00000fd6: DUP2 00000fd7: DUP7 00000fd8: DUP1 00000fd9: EXTCODESIZE 00000fda: ISZERO 00000fdb: DUP1 00000fdc: ISZERO 00000fdd: PUSH2 0x0fe5 00000fe0: JUMPI 00000fe1: PUSH1 0x00 00000fe3: DUP1 00000fe4: REVERT 00000fe5: JUMPDEST 00000fe6: POP 00000fe7: GAS 00000fe8: STATICCALL 00000fe9: ISZERO 00000fea: DUP1 00000feb: ISZERO 00000fec: PUSH2 0x0ff9 00000fef: JUMPI 00000ff0: RETURNDATASIZE 00000ff1: PUSH1 0x00 00000ff3: DUP1 00000ff4: RETURNDATACOPY 00000ff5: RETURNDATASIZE 00000ff6: PUSH1 0x00 00000ff8: REVERT 00000ff9: JUMPDEST 00000ffa: POP 00000ffb: POP 00000ffc: POP 00000ffd: POP 00000ffe: PUSH1 0x40 00001000: MLOAD 00001001: RETURNDATASIZE 00001002: PUSH1 0x1f 00001004: NOT 00001005: PUSH1 0x1f 00001007: DUP3 00001008: ADD 00001009: AND 0000100a: DUP3 0000100b: ADD 0000100c: DUP1 0000100d: PUSH1 0x40 0000100f: MSTORE 00001010: POP 00001011: DUP2 00001012: ADD 00001013: SWAP1 00001014: PUSH2 0x101d 00001017: SWAP2 00001018: SWAP1 00001019: PUSH2 0x3018 0000101c: JUMP 0000101d: JUMPDEST 0000101e: SWAP1 0000101f: POP 00001020: PUSH1 0x12 00001022: PUSH1 0xff 00001024: DUP3 00001025: AND 00001026: GT 00001027: ISZERO 00001028: PUSH2 0x1073 0000102b: JUMPI 0000102c: PUSH1 0x40 0000102e: MLOAD 0000102f: PUSH3 0x461bcd 00001033: PUSH1 0xe5 00001035: SHL 00001036: DUP2 00001037: MSTORE 00001038: PUSH1 0x20 0000103a: PUSH1 0x04 0000103c: DUP3 0000103d: ADD 0000103e: MSTORE 0000103f: PUSH1 0x19 00001041: PUSH1 0x24 00001043: DUP3 00001044: ADD 00001045: MSTORE 00001046: PUSH32 0x726567546f6b656e2f696e76616c69642d646563696d616c7300000000000000 00001067: PUSH1 0x44 00001069: DUP3 0000106a: ADD 0000106b: MSTORE 0000106c: PUSH1 0x64 0000106e: ADD 0000106f: PUSH2 0x021d 00001072: JUMP 00001073: JUMPDEST 00001074: PUSH2 0x1129 00001077: DUP6 00001078: DUP6 00001079: DUP1 0000107a: DUP1 0000107b: PUSH1 0x1f 0000107d: ADD 0000107e: PUSH1 0x20 00001080: DUP1 00001081: SWAP2 00001082: DIV 00001083: MUL 00001084: PUSH1 0x20 00001086: ADD 00001087: PUSH1 0x40 00001089: MLOAD 0000108a: SWAP1 0000108b: DUP2 0000108c: ADD 0000108d: PUSH1 0x40 0000108f: MSTORE 00001090: DUP1 00001091: SWAP4 00001092: SWAP3 00001093: SWAP2 00001094: SWAP1 00001095: DUP2 00001096: DUP2 00001097: MSTORE 00001098: PUSH1 0x20 0000109a: ADD 0000109b: DUP4 0000109c: DUP4 0000109d: DUP1 0000109e: DUP3 0000109f: DUP5 000010a0: CALLDATACOPY 000010a1: PUSH1 0x00 000010a3: SWAP3 000010a4: ADD 000010a5: DUP3 000010a6: SWAP1 000010a7: MSTORE 000010a8: POP 000010a9: PUSH1 0x40 000010ab: DUP1 000010ac: MLOAD 000010ad: PUSH4 0x95d89b41 000010b2: PUSH1 0xe0 000010b4: SHL 000010b5: DUP2 000010b6: MSTORE 000010b7: SWAP1 000010b8: MLOAD 000010b9: PUSH1 0x01 000010bb: PUSH1 0x01 000010bd: PUSH1 0xa0 000010bf: SHL 000010c0: SUB 000010c1: DUP11 000010c2: AND 000010c3: SWAP6 000010c4: POP 000010c5: PUSH4 0x95d89b41 000010ca: SWAP5 000010cb: POP 000010cc: PUSH1 0x04 000010ce: DUP1 000010cf: DUP4 000010d0: ADD 000010d1: SWAP5 000010d2: POP 000010d3: SWAP1 000010d4: SWAP2 000010d5: DUP3 000010d6: SWAP1 000010d7: SUB 000010d8: ADD 000010d9: DUP2 000010da: DUP7 000010db: DUP1 000010dc: EXTCODESIZE 000010dd: ISZERO 000010de: DUP1 000010df: ISZERO 000010e0: PUSH2 0x10e8 000010e3: JUMPI 000010e4: PUSH1 0x00 000010e6: DUP1 000010e7: REVERT 000010e8: JUMPDEST 000010e9: POP 000010ea: GAS 000010eb: STATICCALL 000010ec: ISZERO 000010ed: DUP1 000010ee: ISZERO 000010ef: PUSH2 0x10fc 000010f2: JUMPI 000010f3: RETURNDATASIZE 000010f4: PUSH1 0x00 000010f6: DUP1 000010f7: RETURNDATACOPY 000010f8: RETURNDATASIZE 000010f9: PUSH1 0x00 000010fb: REVERT 000010fc: JUMPDEST 000010fd: POP 000010fe: POP 000010ff: POP 00001100: POP 00001101: PUSH1 0x40 00001103: MLOAD 00001104: RETURNDATASIZE 00001105: PUSH1 0x00 00001107: DUP3 00001108: RETURNDATACOPY 00001109: PUSH1 0x1f 0000110b: RETURNDATASIZE 0000110c: SWAP1 0000110d: DUP2 0000110e: ADD 0000110f: PUSH1 0x1f 00001111: NOT 00001112: AND 00001113: DUP3 00001114: ADD 00001115: PUSH1 0x40 00001117: MSTORE 00001118: PUSH2 0x1124 0000111b: SWAP2 0000111c: SWAP1 0000111d: DUP2 0000111e: ADD 0000111f: SWAP1 00001120: PUSH2 0x2eba 00001123: JUMP 00001124: JUMPDEST 00001125: PUSH2 0x206d 00001128: JUMP 00001129: JUMPDEST 0000112a: PUSH2 0x1175 0000112d: JUMPI 0000112e: PUSH1 0x40 00001130: MLOAD 00001131: PUSH3 0x461bcd 00001135: PUSH1 0xe5 00001137: SHL 00001138: DUP2 00001139: MSTORE 0000113a: PUSH1 0x20 0000113c: PUSH1 0x04 0000113e: DUP3 0000113f: ADD 00001140: MSTORE 00001141: PUSH1 0x17 00001143: PUSH1 0x24 00001145: DUP3 00001146: ADD 00001147: MSTORE 00001148: PUSH32 0x726567546f6b656e2f696e76616c69642d73796d626f6c000000000000000000 00001169: PUSH1 0x44 0000116b: DUP3 0000116c: ADD 0000116d: MSTORE 0000116e: PUSH1 0x64 00001170: ADD 00001171: PUSH2 0x021d 00001174: JUMP 00001175: JUMPDEST 00001176: PUSH1 0x00 00001178: PUSH1 0x01 0000117a: PUSH1 0x01 0000117c: PUSH1 0xa0 0000117e: SHL 0000117f: SUB 00001180: AND 00001181: PUSH1 0x0b 00001183: DUP7 00001184: DUP7 00001185: PUSH1 0x40 00001187: MLOAD 00001188: PUSH2 0x1192 0000118b: SWAP3 0000118c: SWAP2 0000118d: SWAP1 0000118e: PUSH2 0x3050 00001191: JUMP 00001192: JUMPDEST 00001193: SWAP1 00001194: DUP2 00001195: MSTORE 00001196: PUSH1 0x40 00001198: MLOAD 00001199: SWAP1 0000119a: DUP2 0000119b: SWAP1 0000119c: SUB 0000119d: PUSH1 0x20 0000119f: ADD 000011a0: SWAP1 000011a1: KECCAK256 000011a2: SLOAD 000011a3: PUSH1 0x01 000011a5: PUSH1 0x01 000011a7: PUSH1 0xa0 000011a9: SHL 000011aa: SUB 000011ab: AND 000011ac: EQ 000011ad: PUSH2 0x11f8 000011b0: JUMPI 000011b1: PUSH1 0x40 000011b3: MLOAD 000011b4: PUSH3 0x461bcd 000011b8: PUSH1 0xe5 000011ba: SHL 000011bb: DUP2 000011bc: MSTORE 000011bd: PUSH1 0x20 000011bf: PUSH1 0x04 000011c1: DUP3 000011c2: ADD 000011c3: MSTORE 000011c4: PUSH1 0x19 000011c6: PUSH1 0x24 000011c8: DUP3 000011c9: ADD 000011ca: MSTORE 000011cb: PUSH32 0x726567546f6b656e2f746f6b656e2d7265676973746572656400000000000000 000011ec: PUSH1 0x44 000011ee: DUP3 000011ef: ADD 000011f0: MSTORE 000011f1: PUSH1 0x64 000011f3: ADD 000011f4: PUSH2 0x021d 000011f7: JUMP 000011f8: JUMPDEST 000011f9: DUP3 000011fa: PUSH1 0x0b 000011fc: DUP7 000011fd: DUP7 000011fe: PUSH1 0x40 00001200: MLOAD 00001201: PUSH2 0x120b 00001204: SWAP3 00001205: SWAP2 00001206: SWAP1 00001207: PUSH2 0x3050 0000120a: JUMP 0000120b: JUMPDEST 0000120c: SWAP1 0000120d: DUP2 0000120e: MSTORE 0000120f: PUSH1 0x20 00001211: ADD 00001212: PUSH1 0x40 00001214: MLOAD 00001215: DUP1 00001216: SWAP2 00001217: SUB 00001218: SWAP1 00001219: KECCAK256 0000121a: PUSH1 0x00 0000121c: PUSH2 0x0100 0000121f: EXP 00001220: DUP2 00001221: SLOAD 00001222: DUP2 00001223: PUSH1 0x01 00001225: PUSH1 0x01 00001227: PUSH1 0xa0 00001229: SHL 0000122a: SUB 0000122b: MUL 0000122c: NOT 0000122d: AND 0000122e: SWAP1 0000122f: DUP4 00001230: PUSH1 0x01 00001232: PUSH1 0x01 00001234: PUSH1 0xa0 00001236: SHL 00001237: SUB 00001238: AND 00001239: MUL 0000123a: OR 0000123b: SWAP1 0000123c: SSTORE 0000123d: POP 0000123e: DUP1 0000123f: PUSH1 0x0c 00001241: DUP7 00001242: DUP7 00001243: PUSH1 0x40 00001245: MLOAD 00001246: PUSH2 0x1250 00001249: SWAP3 0000124a: SWAP2 0000124b: SWAP1 0000124c: PUSH2 0x3050 0000124f: JUMP 00001250: JUMPDEST 00001251: SWAP1 00001252: DUP2 00001253: MSTORE 00001254: PUSH1 0x40 00001256: MLOAD 00001257: SWAP1 00001258: DUP2 00001259: SWAP1 0000125a: SUB 0000125b: PUSH1 0x20 0000125d: ADD 0000125e: SWAP1 0000125f: KECCAK256 00001260: DUP1 00001261: SLOAD 00001262: PUSH1 0xff 00001264: SWAP3 00001265: SWAP1 00001266: SWAP3 00001267: AND 00001268: PUSH1 0xff 0000126a: NOT 0000126b: SWAP1 0000126c: SWAP3 0000126d: AND 0000126e: SWAP2 0000126f: SWAP1 00001270: SWAP2 00001271: OR 00001272: SWAP1 00001273: SSTORE 00001274: PUSH1 0x0a 00001276: DUP1 00001277: SLOAD 00001278: PUSH1 0x01 0000127a: DUP2 0000127b: ADD 0000127c: DUP3 0000127d: SSTORE 0000127e: PUSH1 0x00 00001280: SWAP2 00001281: SWAP1 00001282: SWAP2 00001283: MSTORE 00001284: PUSH2 0x12b0 00001287: SWAP1 00001288: PUSH32 0xc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8 000012a9: ADD 000012aa: DUP7 000012ab: DUP7 000012ac: PUSH2 0x2b00 000012af: JUMP 000012b0: JUMPDEST 000012b1: POP 000012b2: DUP1 000012b3: PUSH1 0xff 000012b5: AND 000012b6: DUP4 000012b7: PUSH1 0x01 000012b9: PUSH1 0x01 000012bb: PUSH1 0xa0 000012bd: SHL 000012be: SUB 000012bf: AND 000012c0: DUP7 000012c1: DUP7 000012c2: PUSH1 0x40 000012c4: MLOAD 000012c5: PUSH2 0x12cf 000012c8: SWAP3 000012c9: SWAP2 000012ca: SWAP1 000012cb: PUSH2 0x3050 000012ce: JUMP 000012cf: JUMPDEST 000012d0: PUSH1 0x40 000012d2: MLOAD 000012d3: SWAP1 000012d4: DUP2 000012d5: SWAP1 000012d6: SUB 000012d7: DUP2 000012d8: KECCAK256 000012d9: SWAP1 000012da: PUSH32 0x4f26da311bd4d456b737a6ad354fa72b40329c4b6537ff6bf223711e4a1b1541 000012fb: SWAP1 000012fc: PUSH1 0x00 000012fe: SWAP1 000012ff: LOG4 00001300: POP 00001301: POP 00001302: POP 00001303: POP 00001304: POP 00001305: JUMP 00001306: JUMPDEST 00001307: PUSH1 0x09 00001309: DUP1 0000130a: SLOAD 0000130b: PUSH2 0x1313 0000130e: SWAP1 0000130f: PUSH2 0x34f9 00001312: JUMP 00001313: JUMPDEST 00001314: DUP1 00001315: PUSH1 0x1f 00001317: ADD 00001318: PUSH1 0x20 0000131a: DUP1 0000131b: SWAP2 0000131c: DIV 0000131d: MUL 0000131e: PUSH1 0x20 00001320: ADD 00001321: PUSH1 0x40 00001323: MLOAD 00001324: SWAP1 00001325: DUP2 00001326: ADD 00001327: PUSH1 0x40 00001329: MSTORE 0000132a: DUP1 0000132b: SWAP3 0000132c: SWAP2 0000132d: SWAP1 0000132e: DUP2 0000132f: DUP2 00001330: MSTORE 00001331: PUSH1 0x20 00001333: ADD 00001334: DUP3 00001335: DUP1 00001336: SLOAD 00001337: PUSH2 0x133f 0000133a: SWAP1 0000133b: PUSH2 0x34f9 0000133e: JUMP 0000133f: JUMPDEST 00001340: DUP1 00001341: ISZERO 00001342: PUSH2 0x138c 00001345: JUMPI 00001346: DUP1 00001347: PUSH1 0x1f 00001349: LT 0000134a: PUSH2 0x1361 0000134d: JUMPI 0000134e: PUSH2 0x0100 00001351: DUP1 00001352: DUP4 00001353: SLOAD 00001354: DIV 00001355: MUL 00001356: DUP4 00001357: MSTORE 00001358: SWAP2 00001359: PUSH1 0x20 0000135b: ADD 0000135c: SWAP2 0000135d: PUSH2 0x138c 00001360: JUMP 00001361: JUMPDEST 00001362: DUP3 00001363: ADD 00001364: SWAP2 00001365: SWAP1 00001366: PUSH1 0x00 00001368: MSTORE 00001369: PUSH1 0x20 0000136b: PUSH1 0x00 0000136d: KECCAK256 0000136e: SWAP1 0000136f: JUMPDEST 00001370: DUP2 00001371: SLOAD 00001372: DUP2 00001373: MSTORE 00001374: SWAP1 00001375: PUSH1 0x01 00001377: ADD 00001378: SWAP1 00001379: PUSH1 0x20 0000137b: ADD 0000137c: DUP1 0000137d: DUP4 0000137e: GT 0000137f: PUSH2 0x136f 00001382: JUMPI 00001383: DUP3 00001384: SWAP1 00001385: SUB 00001386: PUSH1 0x1f 00001388: AND 00001389: DUP3 0000138a: ADD 0000138b: SWAP2 0000138c: JUMPDEST 0000138d: POP 0000138e: POP 0000138f: POP 00001390: POP 00001391: POP 00001392: DUP2 00001393: JUMP 00001394: JUMPDEST 00001395: PUSH1 0x02 00001397: SLOAD 00001398: PUSH1 0x01 0000139a: PUSH1 0xa0 0000139c: SHL 0000139d: SWAP1 0000139e: DIV 0000139f: PUSH1 0xff 000013a1: AND 000013a2: PUSH2 0x13e4 000013a5: JUMPI 000013a6: PUSH1 0x40 000013a8: MLOAD 000013a9: PUSH3 0x461bcd 000013ad: PUSH1 0xe5 000013af: SHL 000013b0: DUP2 000013b1: MSTORE 000013b2: PUSH1 0x20 000013b4: PUSH1 0x04 000013b6: DUP3 000013b7: ADD 000013b8: MSTORE 000013b9: PUSH1 0x14 000013bb: PUSH1 0x24 000013bd: DUP3 000013be: ADD 000013bf: MSTORE 000013c0: PUSH20 0x27bbb730b1363297b9bbb4ba31b432b216b7b333 000013d5: PUSH1 0x61 000013d7: SHL 000013d8: PUSH1 0x44 000013da: DUP3 000013db: ADD 000013dc: MSTORE 000013dd: PUSH1 0x64 000013df: ADD 000013e0: PUSH2 0x021d 000013e3: JUMP 000013e4: JUMPDEST 000013e5: PUSH1 0x00 000013e7: DUP2 000013e8: GT 000013e9: PUSH2 0x1434 000013ec: JUMPI 000013ed: PUSH1 0x40 000013ef: MLOAD 000013f0: PUSH3 0x461bcd 000013f4: PUSH1 0xe5 000013f6: SHL 000013f7: DUP2 000013f8: MSTORE 000013f9: PUSH1 0x20 000013fb: PUSH1 0x04 000013fd: DUP3 000013fe: ADD 000013ff: MSTORE 00001400: PUSH1 0x18 00001402: PUSH1 0x24 00001404: DUP3 00001405: ADD 00001406: MSTORE 00001407: PUSH32 0x6c6f636b41737365742f616d6f756e742d69732d7a65726f0000000000000000 00001428: PUSH1 0x44 0000142a: DUP3 0000142b: ADD 0000142c: MSTORE 0000142d: PUSH1 0x64 0000142f: ADD 00001430: PUSH2 0x021d 00001433: JUMP 00001434: JUMPDEST 00001435: PUSH2 0x1444 00001438: PUSH1 0x09 0000143a: DUP1 0000143b: SLOAD 0000143c: PUSH2 0x06dd 0000143f: SWAP1 00001440: PUSH2 0x34f9 00001443: JUMP 00001444: JUMPDEST 00001445: ISZERO 00001446: PUSH2 0x149f 00001449: JUMPI 0000144a: CALLVALUE 0000144b: DUP2 0000144c: DUP2 0000144d: EQ 0000144e: PUSH2 0x1499 00001451: JUMPI 00001452: PUSH1 0x40 00001454: MLOAD 00001455: PUSH3 0x461bcd 00001459: PUSH1 0xe5 0000145b: SHL 0000145c: DUP2 0000145d: MSTORE 0000145e: PUSH1 0x20 00001460: PUSH1 0x04 00001462: DUP3 00001463: ADD 00001464: MSTORE 00001465: PUSH1 0x1f 00001467: PUSH1 0x24 00001469: DUP3 0000146a: ADD 0000146b: MSTORE 0000146c: PUSH32 0x6c6f636b41737365742f6e61746976652d616d6f756e742d696e76616c696400 0000148d: PUSH1 0x44 0000148f: DUP3 00001490: ADD 00001491: MSTORE 00001492: PUSH1 0x64 00001494: ADD 00001495: PUSH2 0x021d 00001498: JUMP 00001499: JUMPDEST 0000149a: POP 0000149b: PUSH2 0x170b 0000149e: JUMP 0000149f: JUMPDEST 000014a0: PUSH1 0x00 000014a2: PUSH1 0x0b 000014a4: DUP5 000014a5: DUP5 000014a6: PUSH1 0x40 000014a8: MLOAD 000014a9: PUSH2 0x14b3 000014ac: SWAP3 000014ad: SWAP2 000014ae: SWAP1 000014af: PUSH2 0x3050 000014b2: JUMP 000014b3: JUMPDEST 000014b4: SWAP1 000014b5: DUP2 000014b6: MSTORE 000014b7: PUSH1 0x40 000014b9: MLOAD 000014ba: SWAP1 000014bb: DUP2 000014bc: SWAP1 000014bd: SUB 000014be: PUSH1 0x20 000014c0: ADD 000014c1: SWAP1 000014c2: KECCAK256 000014c3: SLOAD 000014c4: PUSH1 0x01 000014c6: PUSH1 0x01 000014c8: PUSH1 0xa0 000014ca: SHL 000014cb: SUB 000014cc: AND 000014cd: SWAP1 000014ce: POP 000014cf: DUP1 000014d0: PUSH2 0x151b 000014d3: JUMPI 000014d4: PUSH1 0x40 000014d6: MLOAD 000014d7: PUSH3 0x461bcd 000014db: PUSH1 0xe5 000014dd: SHL 000014de: DUP2 000014df: MSTORE 000014e0: PUSH1 0x20 000014e2: PUSH1 0x04 000014e4: DUP3 000014e5: ADD 000014e6: MSTORE 000014e7: PUSH1 0x18 000014e9: PUSH1 0x24 000014eb: DUP3 000014ec: ADD 000014ed: MSTORE 000014ee: PUSH32 0x6c6f636b41737365742f73796d626f6c2d696e76616c69640000000000000000 0000150f: PUSH1 0x44 00001511: DUP3 00001512: ADD 00001513: MSTORE 00001514: PUSH1 0x64 00001516: ADD 00001517: PUSH2 0x021d 0000151a: JUMP 0000151b: JUMPDEST 0000151c: CALLVALUE 0000151d: ISZERO 0000151e: PUSH2 0x1569 00001521: JUMPI 00001522: PUSH1 0x40 00001524: MLOAD 00001525: PUSH3 0x461bcd 00001529: PUSH1 0xe5 0000152b: SHL 0000152c: DUP2 0000152d: MSTORE 0000152e: PUSH1 0x20 00001530: PUSH1 0x04 00001532: DUP3 00001533: ADD 00001534: MSTORE 00001535: PUSH1 0x1b 00001537: PUSH1 0x24 00001539: DUP3 0000153a: ADD 0000153b: MSTORE 0000153c: PUSH32 0x6c6f636b41737365742f6e6f2d6e6565642d6d73672d76616c75650000000000 0000155d: PUSH1 0x44 0000155f: DUP3 00001560: ADD 00001561: MSTORE 00001562: PUSH1 0x64 00001564: ADD 00001565: PUSH2 0x021d 00001568: JUMP 00001569: JUMPDEST 0000156a: PUSH1 0x40 0000156c: MLOAD 0000156d: PUSH4 0x70a08231 00001572: PUSH1 0xe0 00001574: SHL 00001575: DUP2 00001576: MSTORE 00001577: CALLER 00001578: PUSH1 0x04 0000157a: DUP3 0000157b: ADD 0000157c: MSTORE 0000157d: DUP3 0000157e: SWAP1 0000157f: PUSH1 0x01 00001581: PUSH1 0x01 00001583: PUSH1 0xa0 00001585: SHL 00001586: SUB 00001587: DUP4 00001588: AND 00001589: SWAP1 0000158a: PUSH4 0x70a08231 0000158f: SWAP1 00001590: PUSH1 0x24 00001592: ADD 00001593: PUSH1 0x20 00001595: PUSH1 0x40 00001597: MLOAD 00001598: DUP1 00001599: DUP4 0000159a: SUB 0000159b: DUP2 0000159c: DUP7 0000159d: DUP1 0000159e: EXTCODESIZE 0000159f: ISZERO 000015a0: DUP1 000015a1: ISZERO 000015a2: PUSH2 0x15aa 000015a5: JUMPI 000015a6: PUSH1 0x00 000015a8: DUP1 000015a9: REVERT 000015aa: JUMPDEST 000015ab: POP 000015ac: GAS 000015ad: STATICCALL 000015ae: ISZERO 000015af: DUP1 000015b0: ISZERO 000015b1: PUSH2 0x15be 000015b4: JUMPI 000015b5: RETURNDATASIZE 000015b6: PUSH1 0x00 000015b8: DUP1 000015b9: RETURNDATACOPY 000015ba: RETURNDATASIZE 000015bb: PUSH1 0x00 000015bd: REVERT 000015be: JUMPDEST 000015bf: POP 000015c0: POP 000015c1: POP 000015c2: POP 000015c3: PUSH1 0x40 000015c5: MLOAD 000015c6: RETURNDATASIZE 000015c7: PUSH1 0x1f 000015c9: NOT 000015ca: PUSH1 0x1f 000015cc: DUP3 000015cd: ADD 000015ce: AND 000015cf: DUP3 000015d0: ADD 000015d1: DUP1 000015d2: PUSH1 0x40 000015d4: MSTORE 000015d5: POP 000015d6: DUP2 000015d7: ADD 000015d8: SWAP1 000015d9: PUSH2 0x15e2 000015dc: SWAP2 000015dd: SWAP1 000015de: PUSH2 0x2fe4 000015e1: JUMP 000015e2: JUMPDEST 000015e3: LT 000015e4: ISZERO 000015e5: PUSH2 0x1630 000015e8: JUMPI 000015e9: PUSH1 0x40 000015eb: MLOAD 000015ec: PUSH3 0x461bcd 000015f0: PUSH1 0xe5 000015f2: SHL 000015f3: DUP2 000015f4: MSTORE 000015f5: PUSH1 0x20 000015f7: PUSH1 0x04 000015f9: DUP3 000015fa: ADD 000015fb: MSTORE 000015fc: PUSH1 0x1e 000015fe: PUSH1 0x24 00001600: DUP3 00001601: ADD 00001602: MSTORE 00001603: PUSH32 0x6c6f636b41737365742f696e73756666696369656e742d62616c616e63650000 00001624: PUSH1 0x44 00001626: DUP3 00001627: ADD 00001628: MSTORE 00001629: PUSH1 0x64 0000162b: ADD 0000162c: PUSH2 0x021d 0000162f: JUMP 00001630: JUMPDEST 00001631: PUSH1 0x40 00001633: MLOAD 00001634: PUSH4 0x6eb1769f 00001639: PUSH1 0xe1 0000163b: SHL 0000163c: DUP2 0000163d: MSTORE 0000163e: CALLER 0000163f: PUSH1 0x04 00001641: DUP3 00001642: ADD 00001643: MSTORE 00001644: ADDRESS 00001645: PUSH1 0x24 00001647: DUP3 00001648: ADD 00001649: MSTORE 0000164a: DUP3 0000164b: SWAP1 0000164c: PUSH1 0x01 0000164e: PUSH1 0x01 00001650: PUSH1 0xa0 00001652: SHL 00001653: SUB 00001654: DUP4 00001655: AND 00001656: SWAP1 00001657: PUSH4 0xdd62ed3e 0000165c: SWAP1 0000165d: PUSH1 0x44 0000165f: ADD 00001660: PUSH1 0x20 00001662: PUSH1 0x40 00001664: MLOAD 00001665: DUP1 00001666: DUP4 00001667: SUB 00001668: DUP2 00001669: DUP7 0000166a: DUP1 0000166b: EXTCODESIZE 0000166c: ISZERO 0000166d: DUP1 0000166e: ISZERO 0000166f: PUSH2 0x1677 00001672: JUMPI 00001673: PUSH1 0x00 00001675: DUP1 00001676: REVERT 00001677: JUMPDEST 00001678: POP 00001679: GAS 0000167a: STATICCALL 0000167b: ISZERO 0000167c: DUP1 0000167d: ISZERO 0000167e: PUSH2 0x168b 00001681: JUMPI 00001682: RETURNDATASIZE 00001683: PUSH1 0x00 00001685: DUP1 00001686: RETURNDATACOPY 00001687: RETURNDATASIZE 00001688: PUSH1 0x00 0000168a: REVERT 0000168b: JUMPDEST 0000168c: POP 0000168d: POP 0000168e: POP 0000168f: POP 00001690: PUSH1 0x40 00001692: MLOAD 00001693: RETURNDATASIZE 00001694: PUSH1 0x1f 00001696: NOT 00001697: PUSH1 0x1f 00001699: DUP3 0000169a: ADD 0000169b: AND 0000169c: DUP3 0000169d: ADD 0000169e: DUP1 0000169f: PUSH1 0x40 000016a1: MSTORE 000016a2: POP 000016a3: DUP2 000016a4: ADD 000016a5: SWAP1 000016a6: PUSH2 0x16af 000016a9: SWAP2 000016aa: SWAP1 000016ab: PUSH2 0x2fe4 000016ae: JUMP 000016af: JUMPDEST 000016b0: LT 000016b1: ISZERO 000016b2: PUSH2 0x16fd 000016b5: JUMPI 000016b6: PUSH1 0x40 000016b8: MLOAD 000016b9: PUSH3 0x461bcd 000016bd: PUSH1 0xe5 000016bf: SHL 000016c0: DUP2 000016c1: MSTORE 000016c2: PUSH1 0x20 000016c4: PUSH1 0x04 000016c6: DUP3 000016c7: ADD 000016c8: DUP2 000016c9: SWAP1 000016ca: MSTORE 000016cb: PUSH1 0x24 000016cd: DUP3 000016ce: ADD 000016cf: MSTORE 000016d0: PUSH32 0x6c6f636b41737365742f696e73756666696369656e742d616c6c6f77616e6365 000016f1: PUSH1 0x44 000016f3: DUP3 000016f4: ADD 000016f5: MSTORE 000016f6: PUSH1 0x64 000016f8: ADD 000016f9: PUSH2 0x021d 000016fc: JUMP 000016fd: JUMPDEST 000016fe: PUSH2 0x1709 00001701: DUP2 00001702: CALLER 00001703: ADDRESS 00001704: DUP6 00001705: PUSH2 0x20e5 00001708: JUMP 00001709: JUMPDEST 0000170a: POP 0000170b: JUMPDEST 0000170c: PUSH2 0x1739 0000170f: PUSH1 0x0c 00001711: DUP5 00001712: DUP5 00001713: PUSH1 0x40 00001715: MLOAD 00001716: PUSH2 0x1720 00001719: SWAP3 0000171a: SWAP2 0000171b: SWAP1 0000171c: PUSH2 0x3050 0000171f: JUMP 00001720: JUMPDEST 00001721: SWAP1 00001722: DUP2 00001723: MSTORE 00001724: PUSH1 0x40 00001726: MLOAD 00001727: SWAP1 00001728: DUP2 00001729: SWAP1 0000172a: SUB 0000172b: PUSH1 0x20 0000172d: ADD 0000172e: SWAP1 0000172f: KECCAK256 00001730: SLOAD 00001731: PUSH1 0xff 00001733: AND 00001734: DUP3 00001735: PUSH2 0x2156 00001738: JUMP 00001739: JUMPDEST 0000173a: PUSH1 0x06 0000173c: DUP1 0000173d: SLOAD 0000173e: SWAP2 0000173f: SWAP3 00001740: POP 00001741: PUSH1 0x00 00001743: PUSH2 0x174b 00001746: DUP4 00001747: PUSH2 0x3534 0000174a: JUMP 0000174b: JUMPDEST 0000174c: SWAP2 0000174d: SWAP1 0000174e: POP 0000174f: SSTORE 00001750: POP 00001751: DUP4 00001752: PUSH1 0x01 00001754: PUSH1 0x01 00001756: PUSH1 0xa0 00001758: SHL 00001759: SUB 0000175a: AND 0000175b: CALLER 0000175c: PUSH1 0x01 0000175e: PUSH1 0x01 00001760: PUSH1 0xa0 00001762: SHL 00001763: SUB 00001764: AND 00001765: PUSH32 0xbf731209a977f11dc3fa8bd77374876a472069de5536e449edf7780102c2574e 00001786: PUSH1 0x06 00001788: SLOAD 00001789: DUP7 0000178a: DUP7 0000178b: DUP7 0000178c: PUSH1 0x40 0000178e: MLOAD 0000178f: PUSH2 0x179b 00001792: SWAP5 00001793: SWAP4 00001794: SWAP3 00001795: SWAP2 00001796: SWAP1 00001797: PUSH2 0x326e 0000179a: JUMP 0000179b: JUMPDEST 0000179c: PUSH1 0x40 0000179e: MLOAD 0000179f: DUP1 000017a0: SWAP2 000017a1: SUB 000017a2: SWAP1 000017a3: LOG3 000017a4: POP 000017a5: POP 000017a6: POP 000017a7: POP 000017a8: JUMP 000017a9: JUMPDEST 000017aa: PUSH1 0x00 000017ac: SLOAD 000017ad: PUSH1 0x01 000017af: PUSH1 0x01 000017b1: PUSH1 0xa0 000017b3: SHL 000017b4: SUB 000017b5: AND 000017b6: CALLER 000017b7: EQ 000017b8: PUSH2 0x17d3 000017bb: JUMPI 000017bc: PUSH1 0x40 000017be: MLOAD 000017bf: PUSH3 0x461bcd 000017c3: PUSH1 0xe5 000017c5: SHL 000017c6: DUP2 000017c7: MSTORE 000017c8: PUSH1 0x04 000017ca: ADD 000017cb: PUSH2 0x021d 000017ce: SWAP1 000017cf: PUSH2 0x3215 000017d2: JUMP 000017d3: JUMPDEST 000017d4: PUSH1 0x01 000017d6: PUSH1 0x01 000017d8: PUSH1 0xa0 000017da: SHL 000017db: SUB 000017dc: DUP2 000017dd: AND 000017de: PUSH2 0x17f9 000017e1: JUMPI 000017e2: PUSH1 0x40 000017e4: MLOAD 000017e5: PUSH3 0x461bcd 000017e9: PUSH1 0xe5 000017eb: SHL 000017ec: DUP2 000017ed: MSTORE 000017ee: PUSH1 0x04 000017f0: ADD 000017f1: PUSH2 0x021d 000017f4: SWAP1 000017f5: PUSH2 0x3240 000017f8: JUMP 000017f9: JUMPDEST 000017fa: PUSH1 0x01 000017fc: SLOAD 000017fd: PUSH1 0x40 000017ff: MLOAD 00001800: PUSH1 0x01 00001802: PUSH1 0x01 00001804: PUSH1 0xa0 00001806: SHL 00001807: SUB 00001808: DUP1 00001809: DUP5 0000180a: AND 0000180b: SWAP3 0000180c: AND 0000180d: SWAP1 0000180e: PUSH32 0xa57582a20eb2f0c4265459d1d9ef9990b45fa7a768b2a47481ff82b5e0864d78 0000182f: SWAP1 00001830: PUSH1 0x00 00001832: SWAP1 00001833: LOG3 00001834: PUSH1 0x01 00001836: DUP1 00001837: SLOAD 00001838: PUSH1 0x01 0000183a: PUSH1 0x01 0000183c: PUSH1 0xa0 0000183e: SHL 0000183f: SUB 00001840: NOT 00001841: AND 00001842: PUSH1 0x01 00001844: PUSH1 0x01 00001846: PUSH1 0xa0 00001848: SHL 00001849: SUB 0000184a: SWAP3 0000184b: SWAP1 0000184c: SWAP3 0000184d: AND 0000184e: SWAP2 0000184f: SWAP1 00001850: SWAP2 00001851: OR 00001852: SWAP1 00001853: SSTORE 00001854: JUMP 00001855: JUMPDEST 00001856: PUSH1 0x02 00001858: SLOAD 00001859: PUSH1 0x01 0000185b: PUSH1 0xa0 0000185d: SHL 0000185e: SWAP1 0000185f: DIV 00001860: PUSH1 0xff 00001862: AND 00001863: PUSH2 0x18a5 00001866: JUMPI 00001867: PUSH1 0x40 00001869: MLOAD 0000186a: PUSH3 0x461bcd 0000186e: PUSH1 0xe5 00001870: SHL 00001871: DUP2 00001872: MSTORE 00001873: PUSH1 0x20 00001875: PUSH1 0x04 00001877: DUP3 00001878: ADD 00001879: MSTORE 0000187a: PUSH1 0x14 0000187c: PUSH1 0x24 0000187e: DUP3 0000187f: ADD 00001880: MSTORE 00001881: PUSH20 0x27bbb730b1363297b9bbb4ba31b432b216b7b333 00001896: PUSH1 0x61 00001898: SHL 00001899: PUSH1 0x44 0000189b: DUP3 0000189c: ADD 0000189d: MSTORE 0000189e: PUSH1 0x64 000018a0: ADD 000018a1: PUSH2 0x021d 000018a4: JUMP 000018a5: JUMPDEST 000018a6: DUP7 000018a7: CALLDATALOAD 000018a8: PUSH1 0x00 000018aa: SWAP1 000018ab: DUP2 000018ac: MSTORE 000018ad: PUSH1 0x08 000018af: PUSH1 0x20 000018b1: MSTORE 000018b2: PUSH1 0x40 000018b4: SWAP1 000018b5: KECCAK256 000018b6: SLOAD 000018b7: PUSH1 0xff 000018b9: AND 000018ba: ISZERO 000018bb: PUSH2 0x1906 000018be: JUMPI 000018bf: PUSH1 0x40 000018c1: MLOAD 000018c2: PUSH3 0x461bcd 000018c6: PUSH1 0xe5 000018c8: SHL 000018c9: DUP2 000018ca: MSTORE 000018cb: PUSH1 0x20 000018cd: PUSH1 0x04 000018cf: DUP3 000018d0: ADD 000018d1: MSTORE 000018d2: PUSH1 0x17 000018d4: PUSH1 0x24 000018d6: DUP3 000018d7: ADD 000018d8: MSTORE 000018d9: PUSH32 0x72656c6561736541737365742f6475706c696361746564000000000000000000 000018fa: PUSH1 0x44 000018fc: DUP3 000018fd: ADD 000018fe: MSTORE 000018ff: PUSH1 0x64 00001901: ADD 00001902: PUSH2 0x021d 00001905: JUMP 00001906: JUMPDEST 00001907: PUSH1 0x00 00001909: DUP8 0000190a: CALLDATALOAD 0000190b: PUSH2 0x191a 0000190e: PUSH1 0x60 00001910: DUP11 00001911: ADD 00001912: PUSH1 0x40 00001914: DUP12 00001915: ADD 00001916: PUSH2 0x2c37 00001919: JUMP 0000191a: JUMPDEST 0000191b: PUSH2 0x192a 0000191e: PUSH1 0x40 00001920: DUP12 00001921: ADD 00001922: PUSH1 0x20 00001924: DUP13 00001925: ADD 00001926: PUSH2 0x2c37 00001929: JUMP 0000192a: JUMPDEST 0000192b: PUSH2 0x1937 0000192e: PUSH1 0x60 00001930: DUP13 00001931: ADD 00001932: DUP13 00001933: PUSH2 0x32ad 00001936: JUMP 00001937: JUMPDEST 00001938: DUP13 00001939: PUSH1 0x80 0000193b: ADD 0000193c: CALLDATALOAD 0000193d: CHAINID 0000193e: PUSH1 0x40 00001940: MLOAD 00001941: PUSH1 0x20 00001943: ADD 00001944: PUSH2 0x1953 00001947: SWAP8 00001948: SWAP7 00001949: SWAP6 0000194a: SWAP5 0000194b: SWAP4 0000194c: SWAP3 0000194d: SWAP2 0000194e: SWAP1 0000194f: PUSH2 0x30fb 00001952: JUMP 00001953: JUMPDEST 00001954: PUSH1 0x40 00001956: MLOAD 00001957: PUSH1 0x20 00001959: DUP2 0000195a: DUP4 0000195b: SUB 0000195c: SUB 0000195d: DUP2 0000195e: MSTORE 0000195f: SWAP1 00001960: PUSH1 0x40 00001962: MSTORE 00001963: DUP1 00001964: MLOAD 00001965: SWAP1 00001966: PUSH1 0x20 00001968: ADD 00001969: KECCAK256 0000196a: SWAP1 0000196b: POP 0000196c: PUSH2 0x197a 0000196f: DUP2 00001970: DUP9 00001971: DUP9 00001972: DUP9 00001973: DUP9 00001974: DUP9 00001975: DUP9 00001976: PUSH2 0x1ac3 00001979: JUMP 0000197a: JUMPDEST 0000197b: PUSH2 0x19c6 0000197e: JUMPI 0000197f: PUSH1 0x40 00001981: MLOAD 00001982: PUSH3 0x461bcd 00001986: PUSH1 0xe5 00001988: SHL 00001989: DUP2 0000198a: MSTORE 0000198b: PUSH1 0x20 0000198d: PUSH1 0x04 0000198f: DUP3 00001990: ADD 00001991: MSTORE 00001992: PUSH1 0x1c 00001994: PUSH1 0x24 00001996: DUP3 00001997: ADD 00001998: MSTORE 00001999: PUSH32 0x72656c6561736541737365742f7369676e61747572652d6572726f7200000000 000019ba: PUSH1 0x44 000019bc: DUP3 000019bd: ADD 000019be: MSTORE 000019bf: PUSH1 0x64 000019c1: ADD 000019c2: PUSH2 0x021d 000019c5: JUMP 000019c6: JUMPDEST 000019c7: DUP8 000019c8: CALLDATALOAD 000019c9: PUSH1 0x00 000019cb: SWAP1 000019cc: DUP2 000019cd: MSTORE 000019ce: PUSH1 0x08 000019d0: PUSH1 0x20 000019d2: SWAP1 000019d3: DUP2 000019d4: MSTORE 000019d5: PUSH1 0x40 000019d7: SWAP2 000019d8: DUP3 000019d9: SWAP1 000019da: KECCAK256 000019db: DUP1 000019dc: SLOAD 000019dd: PUSH1 0xff 000019df: NOT 000019e0: AND 000019e1: PUSH1 0x01 000019e3: OR 000019e4: SWAP1 000019e5: SSTORE 000019e6: PUSH2 0x1a0f 000019e9: SWAP2 000019ea: PUSH2 0x19f8 000019ed: SWAP2 000019ee: SWAP1 000019ef: DUP12 000019f0: ADD 000019f1: SWAP1 000019f2: DUP12 000019f3: ADD 000019f4: PUSH2 0x2c37 000019f7: JUMP 000019f8: JUMPDEST 000019f9: PUSH2 0x1a05 000019fc: PUSH1 0x60 000019fe: DUP12 000019ff: ADD 00001a00: DUP12 00001a01: PUSH2 0x32ad 00001a04: JUMP 00001a05: JUMPDEST 00001a06: DUP12 00001a07: PUSH1 0x80 00001a09: ADD 00001a0a: CALLDATALOAD 00001a0b: PUSH2 0x219a 00001a0e: JUMP 00001a0f: JUMPDEST 00001a10: PUSH2 0x1a1f 00001a13: PUSH1 0x60 00001a15: DUP10 00001a16: ADD 00001a17: PUSH1 0x40 00001a19: DUP11 00001a1a: ADD 00001a1b: PUSH2 0x2c37 00001a1e: JUMP 00001a1f: JUMPDEST 00001a20: PUSH1 0x01 00001a22: PUSH1 0x01 00001a24: PUSH1 0xa0 00001a26: SHL 00001a27: SUB 00001a28: AND 00001a29: PUSH2 0x1a38 00001a2c: PUSH1 0x40 00001a2e: DUP11 00001a2f: ADD 00001a30: PUSH1 0x20 00001a32: DUP12 00001a33: ADD 00001a34: PUSH2 0x2c37 00001a37: JUMP 00001a38: JUMPDEST 00001a39: PUSH1 0x01 00001a3b: PUSH1 0x01 00001a3d: PUSH1 0xa0 00001a3f: SHL 00001a40: SUB 00001a41: AND 00001a42: PUSH32 0x230a2a04ea5ecfa8059eefd5264207e0bd9d322dffffc461d389956678868120 00001a63: DUP11 00001a64: CALLDATALOAD 00001a65: PUSH2 0x1a71 00001a68: PUSH1 0x60 00001a6a: DUP14 00001a6b: ADD 00001a6c: DUP14 00001a6d: PUSH2 0x32ad 00001a70: JUMP 00001a71: JUMPDEST 00001a72: DUP14 00001a73: PUSH1 0x80 00001a75: ADD 00001a76: CALLDATALOAD 00001a77: PUSH1 0x40 00001a79: MLOAD 00001a7a: PUSH2 0x1a86 00001a7d: SWAP5 00001a7e: SWAP4 00001a7f: SWAP3 00001a80: SWAP2 00001a81: SWAP1 00001a82: PUSH2 0x326e 00001a85: JUMP 00001a86: JUMPDEST 00001a87: PUSH1 0x40 00001a89: MLOAD 00001a8a: DUP1 00001a8b: SWAP2 00001a8c: SUB 00001a8d: SWAP1 00001a8e: LOG3 00001a8f: POP 00001a90: POP 00001a91: POP 00001a92: POP 00001a93: POP 00001a94: POP 00001a95: POP 00001a96: POP 00001a97: JUMP 00001a98: JUMPDEST 00001a99: PUSH1 0x0a 00001a9b: DUP2 00001a9c: DUP2 00001a9d: SLOAD 00001a9e: DUP2 00001a9f: LT 00001aa0: PUSH2 0x1aa8 00001aa3: JUMPI 00001aa4: PUSH1 0x00 00001aa6: DUP1 00001aa7: REVERT 00001aa8: JUMPDEST 00001aa9: SWAP1 00001aaa: PUSH1 0x00 00001aac: MSTORE 00001aad: PUSH1 0x20 00001aaf: PUSH1 0x00 00001ab1: KECCAK256 00001ab2: ADD 00001ab3: PUSH1 0x00 00001ab5: SWAP2 00001ab6: POP 00001ab7: SWAP1 00001ab8: POP 00001ab9: DUP1 00001aba: SLOAD 00001abb: PUSH2 0x1313 00001abe: SWAP1 00001abf: PUSH2 0x34f9 00001ac2: JUMP 00001ac3: JUMPDEST 00001ac4: PUSH1 0x00 00001ac6: DUP6 00001ac7: DUP5 00001ac8: EQ 00001ac9: ISZERO 00001aca: DUP1 00001acb: PUSH2 0x1ad4 00001ace: JUMPI 00001acf: POP 00001ad0: DUP4 00001ad1: DUP3 00001ad2: EQ 00001ad3: ISZERO 00001ad4: JUMPDEST 00001ad5: DUP1 00001ad6: PUSH2 0x1ae0 00001ad9: JUMPI 00001ada: POP 00001adb: PUSH1 0x05 00001add: SLOAD 00001ade: DUP7 00001adf: LT 00001ae0: JUMPDEST 00001ae1: ISZERO 00001ae2: PUSH2 0x1aed 00001ae5: JUMPI 00001ae6: POP 00001ae7: PUSH1 0x00 00001ae9: PUSH2 0x1d1e 00001aec: JUMP 00001aed: JUMPDEST 00001aee: PUSH1 0x00 00001af0: DUP1 00001af1: DUP8 00001af2: PUSH1 0x01 00001af4: PUSH1 0x01 00001af6: PUSH1 0x40 00001af8: SHL 00001af9: SUB 00001afa: DUP2 00001afb: GT 00001afc: ISZERO 00001afd: PUSH2 0x1b16 00001b00: JUMPI 00001b01: PUSH4 0x4e487b71 00001b06: PUSH1 0xe0 00001b08: SHL 00001b09: PUSH1 0x00 00001b0b: MSTORE 00001b0c: PUSH1 0x41 00001b0e: PUSH1 0x04 00001b10: MSTORE 00001b11: PUSH1 0x24 00001b13: PUSH1 0x00 00001b15: REVERT 00001b16: JUMPDEST 00001b17: PUSH1 0x40 00001b19: MLOAD 00001b1a: SWAP1 00001b1b: DUP1 00001b1c: DUP3 00001b1d: MSTORE 00001b1e: DUP1 00001b1f: PUSH1 0x20 00001b21: MUL 00001b22: PUSH1 0x20 00001b24: ADD 00001b25: DUP3 00001b26: ADD 00001b27: PUSH1 0x40 00001b29: MSTORE 00001b2a: DUP1 00001b2b: ISZERO 00001b2c: PUSH2 0x1b3f 00001b2f: JUMPI 00001b30: DUP2 00001b31: PUSH1 0x20 00001b33: ADD 00001b34: PUSH1 0x20 00001b36: DUP3 00001b37: MUL 00001b38: DUP1 00001b39: CALLDATASIZE 00001b3a: DUP4 00001b3b: CALLDATACOPY 00001b3c: ADD 00001b3d: SWAP1 00001b3e: POP 00001b3f: JUMPDEST 00001b40: POP 00001b41: SWAP1 00001b42: POP 00001b43: PUSH1 0x00 00001b45: JUMPDEST 00001b46: DUP9 00001b47: DUP2 00001b48: LT 00001b49: ISZERO 00001b4a: PUSH2 0x1d16 00001b4d: JUMPI 00001b4e: PUSH1 0x00 00001b50: PUSH2 0x1bdb 00001b53: DUP13 00001b54: DUP13 00001b55: DUP13 00001b56: DUP6 00001b57: DUP2 00001b58: DUP2 00001b59: LT 00001b5a: PUSH2 0x1b73 00001b5d: JUMPI 00001b5e: PUSH4 0x4e487b71 00001b63: PUSH1 0xe0 00001b65: SHL 00001b66: PUSH1 0x00 00001b68: MSTORE 00001b69: PUSH1 0x32 00001b6b: PUSH1 0x04 00001b6d: MSTORE 00001b6e: PUSH1 0x24 00001b70: PUSH1 0x00 00001b72: REVERT 00001b73: JUMPDEST 00001b74: SWAP1 00001b75: POP 00001b76: PUSH1 0x20 00001b78: MUL 00001b79: ADD 00001b7a: PUSH1 0x20 00001b7c: DUP2 00001b7d: ADD 00001b7e: SWAP1 00001b7f: PUSH2 0x1b88 00001b82: SWAP2 00001b83: SWAP1 00001b84: PUSH2 0x2ffc 00001b87: JUMP 00001b88: JUMPDEST 00001b89: DUP12 00001b8a: DUP12 00001b8b: DUP7 00001b8c: DUP2 00001b8d: DUP2 00001b8e: LT 00001b8f: PUSH2 0x1ba8 00001b92: JUMPI 00001b93: PUSH4 0x4e487b71 00001b98: PUSH1 0xe0 00001b9a: SHL 00001b9b: PUSH1 0x00 00001b9d: MSTORE 00001b9e: PUSH1 0x32 00001ba0: PUSH1 0x04 00001ba2: MSTORE 00001ba3: PUSH1 0x24 00001ba5: PUSH1 0x00 00001ba7: REVERT 00001ba8: JUMPDEST 00001ba9: SWAP1 00001baa: POP 00001bab: PUSH1 0x20 00001bad: MUL 00001bae: ADD 00001baf: CALLDATALOAD 00001bb0: DUP11 00001bb1: DUP11 00001bb2: DUP8 00001bb3: DUP2 00001bb4: DUP2 00001bb5: LT 00001bb6: PUSH2 0x1bcf 00001bb9: JUMPI 00001bba: PUSH4 0x4e487b71 00001bbf: PUSH1 0xe0 00001bc1: SHL 00001bc2: PUSH1 0x00 00001bc4: MSTORE 00001bc5: PUSH1 0x32 00001bc7: PUSH1 0x04 00001bc9: MSTORE 00001bca: PUSH1 0x24 00001bcc: PUSH1 0x00 00001bce: REVERT 00001bcf: JUMPDEST 00001bd0: SWAP1 00001bd1: POP 00001bd2: PUSH1 0x20 00001bd4: MUL 00001bd5: ADD 00001bd6: CALLDATALOAD 00001bd7: PUSH2 0x23c0 00001bda: JUMP 00001bdb: JUMPDEST 00001bdc: SWAP1 00001bdd: POP 00001bde: PUSH2 0x1be6 00001be1: DUP2 00001be2: PUSH2 0x1f8d 00001be5: JUMP 00001be6: JUMPDEST 00001be7: PUSH2 0x1c32 00001bea: JUMPI 00001beb: PUSH1 0x40 00001bed: MLOAD 00001bee: PUSH3 0x461bcd 00001bf2: PUSH1 0xe5 00001bf4: SHL 00001bf5: DUP2 00001bf6: MSTORE 00001bf7: PUSH1 0x20 00001bf9: PUSH1 0x04 00001bfb: DUP3 00001bfc: ADD 00001bfd: MSTORE 00001bfe: PUSH1 0x1c 00001c00: PUSH1 0x24 00001c02: DUP3 00001c03: ADD 00001c04: MSTORE 00001c05: PUSH32 0x4d756c74695369676e436f72652f696e76616c69642d7369676e657200000000 00001c26: PUSH1 0x44 00001c28: DUP3 00001c29: ADD 00001c2a: MSTORE 00001c2b: PUSH1 0x64 00001c2d: ADD 00001c2e: PUSH2 0x021d 00001c31: JUMP 00001c32: JUMPDEST 00001c33: PUSH1 0x00 00001c35: JUMPDEST 00001c36: DUP3 00001c37: DUP2 00001c38: LT 00001c39: ISZERO 00001c3a: PUSH2 0x1c9e 00001c3d: JUMPI 00001c3e: DUP2 00001c3f: PUSH1 0x01 00001c41: PUSH1 0x01 00001c43: PUSH1 0xa0 00001c45: SHL 00001c46: SUB 00001c47: AND 00001c48: DUP5 00001c49: DUP3 00001c4a: DUP2 00001c4b: MLOAD 00001c4c: DUP2 00001c4d: LT 00001c4e: PUSH2 0x1c67 00001c51: JUMPI 00001c52: PUSH4 0x4e487b71 00001c57: PUSH1 0xe0 00001c59: SHL 00001c5a: PUSH1 0x00 00001c5c: MSTORE 00001c5d: PUSH1 0x32 00001c5f: PUSH1 0x04 00001c61: MSTORE 00001c62: PUSH1 0x24 00001c64: PUSH1 0x00 00001c66: REVERT 00001c67: JUMPDEST 00001c68: PUSH1 0x20 00001c6a: MUL 00001c6b: PUSH1 0x20 00001c6d: ADD 00001c6e: ADD 00001c6f: MLOAD 00001c70: PUSH1 0x01 00001c72: PUSH1 0x01 00001c74: PUSH1 0xa0 00001c76: SHL 00001c77: SUB 00001c78: AND 00001c79: EQ 00001c7a: ISZERO 00001c7b: PUSH2 0x1c8c 00001c7e: JUMPI 00001c7f: PUSH1 0x00 00001c81: SWAP6 00001c82: POP 00001c83: POP 00001c84: POP 00001c85: POP 00001c86: POP 00001c87: POP 00001c88: PUSH2 0x1d1e 00001c8b: JUMP 00001c8c: JUMPDEST 00001c8d: DUP1 00001c8e: PUSH2 0x1c96 00001c91: DUP2 00001c92: PUSH2 0x3534 00001c95: JUMP 00001c96: JUMPDEST 00001c97: SWAP2 00001c98: POP 00001c99: POP 00001c9a: PUSH2 0x1c35 00001c9d: JUMP 00001c9e: JUMPDEST 00001c9f: POP 00001ca0: DUP4 00001ca1: PUSH2 0x1ca9 00001ca4: DUP2 00001ca5: PUSH2 0x3534 00001ca8: JUMP 00001ca9: JUMPDEST 00001caa: SWAP5 00001cab: POP 00001cac: POP 00001cad: DUP1 00001cae: DUP4 00001caf: DUP4 00001cb0: DUP2 00001cb1: MLOAD 00001cb2: DUP2 00001cb3: LT 00001cb4: PUSH2 0x1ccd 00001cb7: JUMPI 00001cb8: PUSH4 0x4e487b71 00001cbd: PUSH1 0xe0 00001cbf: SHL 00001cc0: PUSH1 0x00 00001cc2: MSTORE 00001cc3: PUSH1 0x32 00001cc5: PUSH1 0x04 00001cc7: MSTORE 00001cc8: PUSH1 0x24 00001cca: PUSH1 0x00 00001ccc: REVERT 00001ccd: JUMPDEST 00001cce: PUSH1 0x20 00001cd0: MUL 00001cd1: PUSH1 0x20 00001cd3: ADD 00001cd4: ADD 00001cd5: SWAP1 00001cd6: PUSH1 0x01 00001cd8: PUSH1 0x01 00001cda: PUSH1 0xa0 00001cdc: SHL 00001cdd: SUB 00001cde: AND 00001cdf: SWAP1 00001ce0: DUP2 00001ce1: PUSH1 0x01 00001ce3: PUSH1 0x01 00001ce5: PUSH1 0xa0 00001ce7: SHL 00001ce8: SUB 00001ce9: AND 00001cea: DUP2 00001ceb: MSTORE 00001cec: POP 00001ced: POP 00001cee: PUSH1 0x05 00001cf0: SLOAD 00001cf1: DUP5 00001cf2: LT 00001cf3: PUSH2 0x1d03 00001cf6: JUMPI 00001cf7: PUSH1 0x01 00001cf9: SWAP5 00001cfa: POP 00001cfb: POP 00001cfc: POP 00001cfd: POP 00001cfe: POP 00001cff: PUSH2 0x1d1e 00001d02: JUMP 00001d03: JUMPDEST 00001d04: POP 00001d05: DUP1 00001d06: PUSH2 0x1d0e 00001d09: DUP2 00001d0a: PUSH2 0x3534 00001d0d: JUMP 00001d0e: JUMPDEST 00001d0f: SWAP2 00001d10: POP 00001d11: POP 00001d12: PUSH2 0x1b45 00001d15: JUMP 00001d16: JUMPDEST 00001d17: POP 00001d18: PUSH1 0x00 00001d1a: SWAP3 00001d1b: POP 00001d1c: POP 00001d1d: POP 00001d1e: JUMPDEST 00001d1f: SWAP8 00001d20: SWAP7 00001d21: POP 00001d22: POP 00001d23: POP 00001d24: POP 00001d25: POP 00001d26: POP 00001d27: POP 00001d28: JUMP 00001d29: JUMPDEST 00001d2a: PUSH1 0x04 00001d2c: DUP2 00001d2d: DUP2 00001d2e: SLOAD 00001d2f: DUP2 00001d30: LT 00001d31: PUSH2 0x1d39 00001d34: JUMPI 00001d35: PUSH1 0x00 00001d37: DUP1 00001d38: REVERT 00001d39: JUMPDEST 00001d3a: PUSH1 0x00 00001d3c: SWAP2 00001d3d: DUP3 00001d3e: MSTORE 00001d3f: PUSH1 0x20 00001d41: SWAP1 00001d42: SWAP2 00001d43: KECCAK256 00001d44: ADD 00001d45: SLOAD 00001d46: PUSH1 0x01 00001d48: PUSH1 0x01 00001d4a: PUSH1 0xa0 00001d4c: SHL 00001d4d: SUB 00001d4e: AND 00001d4f: SWAP1 00001d50: POP 00001d51: DUP2 00001d52: JUMP 00001d53: JUMPDEST 00001d54: PUSH1 0x00 00001d56: SLOAD 00001d57: PUSH1 0x01 00001d59: PUSH1 0x01 00001d5b: PUSH1 0xa0 00001d5d: SHL 00001d5e: SUB 00001d5f: AND 00001d60: CALLER 00001d61: EQ 00001d62: PUSH2 0x1d7d 00001d65: JUMPI 00001d66: PUSH1 0x40 00001d68: MLOAD 00001d69: PUSH3 0x461bcd 00001d6d: PUSH1 0xe5 00001d6f: SHL 00001d70: DUP2 00001d71: MSTORE 00001d72: PUSH1 0x04 00001d74: ADD 00001d75: PUSH2 0x021d 00001d78: SWAP1 00001d79: PUSH2 0x3215 00001d7c: JUMP 00001d7d: JUMPDEST 00001d7e: PUSH1 0x01 00001d80: PUSH1 0x01 00001d82: PUSH1 0xa0 00001d84: SHL 00001d85: SUB 00001d86: DUP2 00001d87: AND 00001d88: PUSH2 0x1da3 00001d8b: JUMPI 00001d8c: PUSH1 0x40 00001d8e: MLOAD 00001d8f: PUSH3 0x461bcd 00001d93: PUSH1 0xe5 00001d95: SHL 00001d96: DUP2 00001d97: MSTORE 00001d98: PUSH1 0x04 00001d9a: ADD 00001d9b: PUSH2 0x021d 00001d9e: SWAP1 00001d9f: PUSH2 0x3240 00001da2: JUMP 00001da3: JUMPDEST 00001da4: PUSH1 0x00 00001da6: DUP1 00001da7: SLOAD 00001da8: PUSH1 0x40 00001daa: MLOAD 00001dab: PUSH1 0x01 00001dad: PUSH1 0x01 00001daf: PUSH1 0xa0 00001db1: SHL 00001db2: SUB 00001db3: DUP1 00001db4: DUP6 00001db5: AND 00001db6: SWAP4 00001db7: SWAP3 00001db8: AND 00001db9: SWAP2 00001dba: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001ddb: SWAP2 00001ddc: LOG3 00001ddd: PUSH1 0x00 00001ddf: DUP1 00001de0: SLOAD 00001de1: PUSH1 0x01 00001de3: PUSH1 0x01 00001de5: PUSH1 0xa0 00001de7: SHL 00001de8: SUB 00001de9: NOT 00001dea: AND 00001deb: PUSH1 0x01 00001ded: PUSH1 0x01 00001def: PUSH1 0xa0 00001df1: SHL 00001df2: SUB 00001df3: SWAP3 00001df4: SWAP1 00001df5: SWAP3 00001df6: AND 00001df7: SWAP2 00001df8: SWAP1 00001df9: SWAP2 00001dfa: OR 00001dfb: SWAP1 00001dfc: SSTORE 00001dfd: JUMP 00001dfe: JUMPDEST 00001dff: PUSH1 0x00 00001e01: PUSH2 0x1e0a 00001e04: PUSH1 0x01 00001e06: PUSH2 0x246e 00001e09: JUMP 00001e0a: JUMPDEST 00001e0b: SWAP1 00001e0c: POP 00001e0d: DUP1 00001e0e: ISZERO 00001e0f: PUSH2 0x1e22 00001e12: JUMPI 00001e13: PUSH1 0x07 00001e15: DUP1 00001e16: SLOAD 00001e17: PUSH2 0xff00 00001e1a: NOT 00001e1b: AND 00001e1c: PUSH2 0x0100 00001e1f: OR 00001e20: SWAP1 00001e21: SSTORE 00001e22: JUMPDEST 00001e23: PUSH2 0x1e2a 00001e26: PUSH2 0x24f5 00001e29: JUMP 00001e2a: JUMPDEST 00001e2b: PUSH2 0x1e36 00001e2e: PUSH1 0x09 00001e30: DUP5 00001e31: DUP5 00001e32: PUSH2 0x2b00 00001e35: JUMP 00001e36: JUMPDEST 00001e37: POP 00001e38: PUSH1 0x12 00001e3a: PUSH1 0x0c 00001e3c: PUSH1 0x09 00001e3e: PUSH1 0x40 00001e40: MLOAD 00001e41: PUSH2 0x1e4a 00001e44: SWAP2 00001e45: SWAP1 00001e46: PUSH2 0x3060 00001e49: JUMP 00001e4a: JUMPDEST 00001e4b: SWAP1 00001e4c: DUP2 00001e4d: MSTORE 00001e4e: PUSH1 0x40 00001e50: MLOAD 00001e51: SWAP1 00001e52: DUP2 00001e53: SWAP1 00001e54: SUB 00001e55: PUSH1 0x20 00001e57: ADD 00001e58: SWAP1 00001e59: KECCAK256 00001e5a: DUP1 00001e5b: SLOAD 00001e5c: PUSH1 0xff 00001e5e: SWAP3 00001e5f: SWAP1 00001e60: SWAP3 00001e61: AND 00001e62: PUSH1 0xff 00001e64: NOT 00001e65: SWAP1 00001e66: SWAP3 00001e67: AND 00001e68: SWAP2 00001e69: SWAP1 00001e6a: SWAP2 00001e6b: OR 00001e6c: SWAP1 00001e6d: SSTORE 00001e6e: DUP1 00001e6f: ISZERO 00001e70: PUSH2 0x1eb3 00001e73: JUMPI 00001e74: PUSH1 0x07 00001e76: DUP1 00001e77: SLOAD 00001e78: PUSH2 0xff00 00001e7b: NOT 00001e7c: AND 00001e7d: SWAP1 00001e7e: SSTORE 00001e7f: PUSH1 0x40 00001e81: MLOAD 00001e82: PUSH1 0x01 00001e84: DUP2 00001e85: MSTORE 00001e86: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498 00001ea7: SWAP1 00001ea8: PUSH1 0x20 00001eaa: ADD 00001eab: PUSH1 0x40 00001ead: MLOAD 00001eae: DUP1 00001eaf: SWAP2 00001eb0: SUB 00001eb1: SWAP1 00001eb2: LOG1 00001eb3: JUMPDEST 00001eb4: POP 00001eb5: POP 00001eb6: POP 00001eb7: JUMP 00001eb8: JUMPDEST 00001eb9: PUSH1 0x00 00001ebb: SLOAD 00001ebc: PUSH1 0x01 00001ebe: PUSH1 0x01 00001ec0: PUSH1 0xa0 00001ec2: SHL 00001ec3: SUB 00001ec4: AND 00001ec5: CALLER 00001ec6: EQ 00001ec7: PUSH2 0x1ee2 00001eca: JUMPI 00001ecb: PUSH1 0x40 00001ecd: MLOAD 00001ece: PUSH3 0x461bcd 00001ed2: PUSH1 0xe5 00001ed4: SHL 00001ed5: DUP2 00001ed6: MSTORE 00001ed7: PUSH1 0x04 00001ed9: ADD 00001eda: PUSH2 0x021d 00001edd: SWAP1 00001ede: PUSH2 0x3215 00001ee1: JUMP 00001ee2: JUMPDEST 00001ee3: PUSH1 0x04 00001ee5: SLOAD 00001ee6: PUSH2 0x1ef1 00001ee9: SWAP1 00001eea: PUSH1 0x02 00001eec: SWAP1 00001eed: PUSH2 0x3360 00001ef0: JUMP 00001ef1: JUMPDEST 00001ef2: DUP2 00001ef3: PUSH1 0xff 00001ef5: AND 00001ef6: GT 00001ef7: DUP1 00001ef8: ISZERO 00001ef9: PUSH2 0x1f07 00001efc: JUMPI 00001efd: POP 00001efe: PUSH1 0x04 00001f00: SLOAD 00001f01: PUSH1 0xff 00001f03: DUP3 00001f04: AND 00001f05: GT 00001f06: ISZERO 00001f07: JUMPDEST 00001f08: PUSH2 0x1f53 00001f0b: JUMPI 00001f0c: PUSH1 0x40 00001f0e: MLOAD 00001f0f: PUSH3 0x461bcd 00001f13: PUSH1 0xe5 00001f15: SHL 00001f16: DUP2 00001f17: MSTORE 00001f18: PUSH1 0x20 00001f1a: PUSH1 0x04 00001f1c: DUP3 00001f1d: ADD 00001f1e: MSTORE 00001f1f: PUSH1 0x1e 00001f21: PUSH1 0x24 00001f23: DUP3 00001f24: ADD 00001f25: MSTORE 00001f26: PUSH32 0x4d756c74695369676e436f72652f72657175697265642d696e76616c69640000 00001f47: PUSH1 0x44 00001f49: DUP3 00001f4a: ADD 00001f4b: MSTORE 00001f4c: PUSH1 0x64 00001f4e: ADD 00001f4f: PUSH2 0x021d 00001f52: JUMP 00001f53: JUMPDEST 00001f54: PUSH1 0x05 00001f56: SLOAD 00001f57: PUSH1 0x40 00001f59: MLOAD 00001f5a: PUSH1 0xff 00001f5c: DUP4 00001f5d: AND 00001f5e: SWAP2 00001f5f: SWAP1 00001f60: PUSH32 0xfb3001e0843edb719860511052e4bdaf1475810dbadedb6eb4443937a25e64d9 00001f81: SWAP1 00001f82: PUSH1 0x00 00001f84: SWAP1 00001f85: LOG3 00001f86: PUSH1 0xff 00001f88: AND 00001f89: PUSH1 0x05 00001f8b: SSTORE 00001f8c: JUMP 00001f8d: JUMPDEST 00001f8e: PUSH1 0x01 00001f90: PUSH1 0x01 00001f92: PUSH1 0xa0 00001f94: SHL 00001f95: SUB 00001f96: DUP2 00001f97: AND 00001f98: PUSH1 0x00 00001f9a: SWAP1 00001f9b: DUP2 00001f9c: MSTORE 00001f9d: PUSH1 0x03 00001f9f: PUSH1 0x20 00001fa1: MSTORE 00001fa2: PUSH1 0x40 00001fa4: SWAP1 00001fa5: KECCAK256 00001fa6: SLOAD 00001fa7: PUSH1 0xff 00001fa9: AND 00001faa: JUMPDEST 00001fab: SWAP2 00001fac: SWAP1 00001fad: POP 00001fae: JUMP 00001faf: JUMPDEST 00001fb0: PUSH1 0x01 00001fb2: SLOAD 00001fb3: PUSH1 0x01 00001fb5: PUSH1 0x01 00001fb7: PUSH1 0xa0 00001fb9: SHL 00001fba: SUB 00001fbb: AND 00001fbc: CALLER 00001fbd: EQ 00001fbe: PUSH2 0x1ffd 00001fc1: JUMPI 00001fc2: PUSH1 0x40 00001fc4: MLOAD 00001fc5: PUSH3 0x461bcd 00001fc9: PUSH1 0xe5 00001fcb: SHL 00001fcc: DUP2 00001fcd: MSTORE 00001fce: PUSH1 0x20 00001fd0: PUSH1 0x04 00001fd2: DUP3 00001fd3: ADD 00001fd4: MSTORE 00001fd5: PUSH1 0x11 00001fd7: PUSH1 0x24 00001fd9: DUP3 00001fda: ADD 00001fdb: MSTORE 00001fdc: PUSH17 0x27bbb730b1363297a737ba1030b236b4b7 00001fee: PUSH1 0x79 00001ff0: SHL 00001ff1: PUSH1 0x44 00001ff3: DUP3 00001ff4: ADD 00001ff5: MSTORE 00001ff6: PUSH1 0x64 00001ff8: ADD 00001ff9: PUSH2 0x021d 00001ffc: JUMP 00001ffd: JUMPDEST 00001ffe: PUSH1 0x02 00002000: SLOAD 00002001: PUSH1 0xff 00002003: PUSH1 0x01 00002005: PUSH1 0xa0 00002007: SHL 00002008: SWAP1 00002009: SWAP2 0000200a: DIV 0000200b: AND 0000200c: ISZERO 0000200d: ISZERO 0000200e: DUP2 0000200f: ISZERO 00002010: ISZERO 00002011: EQ 00002012: PUSH2 0x206a 00002015: JUMPI 00002016: PUSH1 0x02 00002018: SLOAD 00002019: PUSH1 0x40 0000201b: MLOAD 0000201c: DUP3 0000201d: ISZERO 0000201e: ISZERO 0000201f: SWAP2 00002020: PUSH1 0x01 00002022: PUSH1 0xa0 00002024: SHL 00002025: SWAP1 00002026: DIV 00002027: PUSH1 0xff 00002029: AND 0000202a: ISZERO 0000202b: ISZERO 0000202c: SWAP1 0000202d: PUSH32 0x0d33af2381f036762445cec5d4a21f68c50c4236845f915b6e15419695c64367 0000204e: SWAP1 0000204f: PUSH1 0x00 00002051: SWAP1 00002052: LOG3 00002053: PUSH1 0x02 00002055: DUP1 00002056: SLOAD 00002057: PUSH1 0xff 00002059: PUSH1 0xa0 0000205b: SHL 0000205c: NOT 0000205d: AND 0000205e: PUSH1 0x01 00002060: PUSH1 0xa0 00002062: SHL 00002063: DUP4 00002064: ISZERO 00002065: ISZERO 00002066: MUL 00002067: OR 00002068: SWAP1 00002069: SSTORE 0000206a: JUMPDEST 0000206b: POP 0000206c: JUMP 0000206d: JUMPDEST 0000206e: PUSH1 0x00 00002070: DUP2 00002071: PUSH1 0x40 00002073: MLOAD 00002074: PUSH1 0x20 00002076: ADD 00002077: PUSH2 0x2080 0000207a: SWAP2 0000207b: SWAP1 0000207c: PUSH2 0x3034 0000207f: JUMP 00002080: JUMPDEST 00002081: PUSH1 0x40 00002083: MLOAD 00002084: PUSH1 0x20 00002086: DUP2 00002087: DUP4 00002088: SUB 00002089: SUB 0000208a: DUP2 0000208b: MSTORE 0000208c: SWAP1 0000208d: PUSH1 0x40 0000208f: MSTORE 00002090: DUP1 00002091: MLOAD 00002092: SWAP1 00002093: PUSH1 0x20 00002095: ADD 00002096: KECCAK256 00002097: DUP4 00002098: PUSH1 0x40 0000209a: MLOAD 0000209b: PUSH1 0x20 0000209d: ADD 0000209e: PUSH2 0x20a7 000020a1: SWAP2 000020a2: SWAP1 000020a3: PUSH2 0x3034 000020a6: JUMP 000020a7: JUMPDEST 000020a8: PUSH1 0x40 000020aa: MLOAD 000020ab: PUSH1 0x20 000020ad: DUP2 000020ae: DUP4 000020af: SUB 000020b0: SUB 000020b1: DUP2 000020b2: MSTORE 000020b3: SWAP1 000020b4: PUSH1 0x40 000020b6: MSTORE 000020b7: DUP1 000020b8: MLOAD 000020b9: SWAP1 000020ba: PUSH1 0x20 000020bc: ADD 000020bd: KECCAK256 000020be: EQ 000020bf: SWAP1 000020c0: POP 000020c1: SWAP3 000020c2: SWAP2 000020c3: POP 000020c4: POP 000020c5: JUMP 000020c6: JUMPDEST 000020c7: PUSH1 0x00 000020c9: DUP1 000020ca: PUSH2 0x20d2 000020cd: DUP4 000020ce: PUSH2 0x2504 000020d1: JUMP 000020d2: JUMPDEST 000020d3: SWAP2 000020d4: POP 000020d5: SWAP2 000020d6: POP 000020d7: DUP1 000020d8: ISZERO 000020d9: PUSH2 0x1eb3 000020dc: JUMPI 000020dd: PUSH2 0x1eb3 000020e0: DUP3 000020e1: PUSH2 0x2578 000020e4: JUMP 000020e5: JUMPDEST 000020e6: PUSH1 0x40 000020e8: MLOAD 000020e9: PUSH1 0x01 000020eb: PUSH1 0x01 000020ed: PUSH1 0xa0 000020ef: SHL 000020f0: SUB 000020f1: DUP1 000020f2: DUP6 000020f3: AND 000020f4: PUSH1 0x24 000020f6: DUP4 000020f7: ADD 000020f8: MSTORE 000020f9: DUP4 000020fa: AND 000020fb: PUSH1 0x44 000020fd: DUP3 000020fe: ADD 000020ff: MSTORE 00002100: PUSH1 0x64 00002102: DUP2 00002103: ADD 00002104: DUP3 00002105: SWAP1 00002106: MSTORE 00002107: PUSH2 0x2150 0000210a: SWAP1 0000210b: DUP6 0000210c: SWAP1 0000210d: PUSH4 0x23b872dd 00002112: PUSH1 0xe0 00002114: SHL 00002115: SWAP1 00002116: PUSH1 0x84 00002118: ADD 00002119: JUMPDEST 0000211a: PUSH1 0x40 0000211c: DUP1 0000211d: MLOAD 0000211e: PUSH1 0x1f 00002120: NOT 00002121: DUP2 00002122: DUP5 00002123: SUB 00002124: ADD 00002125: DUP2 00002126: MSTORE 00002127: SWAP2 00002128: SWAP1 00002129: MSTORE 0000212a: PUSH1 0x20 0000212c: DUP2 0000212d: ADD 0000212e: DUP1 0000212f: MLOAD 00002130: PUSH1 0x01 00002132: PUSH1 0x01 00002134: PUSH1 0xe0 00002136: SHL 00002137: SUB 00002138: AND 00002139: PUSH1 0x01 0000213b: PUSH1 0x01 0000213d: PUSH1 0xe0 0000213f: SHL 00002140: SUB 00002141: NOT 00002142: SWAP1 00002143: SWAP4 00002144: AND 00002145: SWAP3 00002146: SWAP1 00002147: SWAP3 00002148: OR 00002149: SWAP1 0000214a: SWAP2 0000214b: MSTORE 0000214c: PUSH2 0x267d 0000214f: JUMP 00002150: JUMPDEST 00002151: POP 00002152: POP 00002153: POP 00002154: POP 00002155: JUMP 00002156: JUMPDEST 00002157: PUSH1 0x00 00002159: PUSH1 0x12 0000215b: PUSH1 0xff 0000215d: DUP5 0000215e: AND 0000215f: EQ 00002160: ISZERO 00002161: PUSH2 0x216b 00002164: JUMPI 00002165: POP 00002166: DUP1 00002167: PUSH2 0x0854 0000216a: JUMP 0000216b: JUMPDEST 0000216c: PUSH2 0x2193 0000216f: PUSH2 0x2183 00002172: DUP4 00002173: PUSH2 0x217e 00002176: PUSH1 0x12 00002178: PUSH1 0x0a 0000217a: PUSH2 0x33c6 0000217d: JUMP 0000217e: JUMPDEST 0000217f: PUSH2 0x273c 00002182: JUMP 00002183: JUMPDEST 00002184: PUSH2 0x218e 00002187: DUP6 00002188: PUSH1 0x0a 0000218a: PUSH2 0x33c6 0000218d: JUMP 0000218e: JUMPDEST 0000218f: PUSH2 0x27bb 00002192: JUMP 00002193: JUMPDEST 00002194: SWAP4 00002195: SWAP3 00002196: POP 00002197: POP 00002198: POP 00002199: JUMP 0000219a: JUMPDEST 0000219b: PUSH2 0x21c8 0000219e: PUSH1 0x0c 000021a0: DUP5 000021a1: DUP5 000021a2: PUSH1 0x40 000021a4: MLOAD 000021a5: PUSH2 0x21af 000021a8: SWAP3 000021a9: SWAP2 000021aa: SWAP1 000021ab: PUSH2 0x3050 000021ae: JUMP 000021af: JUMPDEST 000021b0: SWAP1 000021b1: DUP2 000021b2: MSTORE 000021b3: PUSH1 0x40 000021b5: MLOAD 000021b6: SWAP1 000021b7: DUP2 000021b8: SWAP1 000021b9: SUB 000021ba: PUSH1 0x20 000021bc: ADD 000021bd: SWAP1 000021be: KECCAK256 000021bf: SLOAD 000021c0: PUSH1 0xff 000021c2: AND 000021c3: DUP3 000021c4: PUSH2 0x2816 000021c7: JUMP 000021c8: JUMPDEST 000021c9: SWAP1 000021ca: POP 000021cb: PUSH2 0x21da 000021ce: PUSH1 0x09 000021d0: DUP1 000021d1: SLOAD 000021d2: PUSH2 0x06dd 000021d5: SWAP1 000021d6: PUSH2 0x34f9 000021d9: JUMP 000021da: JUMPDEST 000021db: ISZERO 000021dc: PUSH2 0x226b 000021df: JUMPI 000021e0: DUP1 000021e1: SELFBALANCE 000021e2: LT 000021e3: ISZERO 000021e4: PUSH2 0x222f 000021e7: JUMPI 000021e8: PUSH1 0x40 000021ea: MLOAD 000021eb: PUSH3 0x461bcd 000021ef: PUSH1 0xe5 000021f1: SHL 000021f2: DUP2 000021f3: MSTORE 000021f4: PUSH1 0x20 000021f6: PUSH1 0x04 000021f8: DUP3 000021f9: ADD 000021fa: MSTORE 000021fb: PUSH1 0x1c 000021fd: PUSH1 0x24 000021ff: DUP3 00002200: ADD 00002201: MSTORE 00002202: PUSH32 0x72656c656173652f696e73756666696369656e742d62616c616e636500000000 00002223: PUSH1 0x44 00002225: DUP3 00002226: ADD 00002227: MSTORE 00002228: PUSH1 0x64 0000222a: ADD 0000222b: PUSH2 0x021d 0000222e: JUMP 0000222f: JUMPDEST 00002230: PUSH1 0x40 00002232: MLOAD 00002233: PUSH1 0x01 00002235: PUSH1 0x01 00002237: PUSH1 0xa0 00002239: SHL 0000223a: SUB 0000223b: DUP6 0000223c: AND 0000223d: SWAP1 0000223e: DUP3 0000223f: ISZERO 00002240: PUSH2 0x08fc 00002243: MUL 00002244: SWAP1 00002245: DUP4 00002246: SWAP1 00002247: PUSH1 0x00 00002249: DUP2 0000224a: DUP2 0000224b: DUP2 0000224c: DUP6 0000224d: DUP9 0000224e: DUP9 0000224f: CALL 00002250: SWAP4 00002251: POP 00002252: POP 00002253: POP 00002254: POP 00002255: ISZERO 00002256: DUP1 00002257: ISZERO 00002258: PUSH2 0x2265 0000225b: JUMPI 0000225c: RETURNDATASIZE 0000225d: PUSH1 0x00 0000225f: DUP1 00002260: RETURNDATACOPY 00002261: RETURNDATASIZE 00002262: PUSH1 0x00 00002264: REVERT 00002265: JUMPDEST 00002266: POP 00002267: PUSH2 0x2150 0000226a: JUMP 0000226b: JUMPDEST 0000226c: PUSH1 0x00 0000226e: PUSH1 0x0b 00002270: DUP5 00002271: DUP5 00002272: PUSH1 0x40 00002274: MLOAD 00002275: PUSH2 0x227f 00002278: SWAP3 00002279: SWAP2 0000227a: SWAP1 0000227b: PUSH2 0x3050 0000227e: JUMP 0000227f: JUMPDEST 00002280: SWAP1 00002281: DUP2 00002282: MSTORE 00002283: PUSH1 0x40 00002285: MLOAD 00002286: SWAP1 00002287: DUP2 00002288: SWAP1 00002289: SUB 0000228a: PUSH1 0x20 0000228c: ADD 0000228d: SWAP1 0000228e: KECCAK256 0000228f: SLOAD 00002290: PUSH1 0x01 00002292: PUSH1 0x01 00002294: PUSH1 0xa0 00002296: SHL 00002297: SUB 00002298: AND 00002299: SWAP1 0000229a: POP 0000229b: DUP1 0000229c: PUSH2 0x22e7 0000229f: JUMPI 000022a0: PUSH1 0x40 000022a2: MLOAD 000022a3: PUSH3 0x461bcd 000022a7: PUSH1 0xe5 000022a9: SHL 000022aa: DUP2 000022ab: MSTORE 000022ac: PUSH1 0x20 000022ae: PUSH1 0x04 000022b0: DUP3 000022b1: ADD 000022b2: MSTORE 000022b3: PUSH1 0x1d 000022b5: PUSH1 0x24 000022b7: DUP3 000022b8: ADD 000022b9: MSTORE 000022ba: PUSH32 0x72656c656173652f73796d626f6c2d6e6f742d72656769737465726564000000 000022db: PUSH1 0x44 000022dd: DUP3 000022de: ADD 000022df: MSTORE 000022e0: PUSH1 0x64 000022e2: ADD 000022e3: PUSH2 0x021d 000022e6: JUMP 000022e7: JUMPDEST 000022e8: PUSH1 0x40 000022ea: MLOAD 000022eb: PUSH4 0x70a08231 000022f0: PUSH1 0xe0 000022f2: SHL 000022f3: DUP2 000022f4: MSTORE 000022f5: ADDRESS 000022f6: PUSH1 0x04 000022f8: DUP3 000022f9: ADD 000022fa: MSTORE 000022fb: DUP3 000022fc: SWAP1 000022fd: PUSH1 0x01 000022ff: PUSH1 0x01 00002301: PUSH1 0xa0 00002303: SHL 00002304: SUB 00002305: DUP4 00002306: AND 00002307: SWAP1 00002308: PUSH4 0x70a08231 0000230d: SWAP1 0000230e: PUSH1 0x24 00002310: ADD 00002311: PUSH1 0x20 00002313: PUSH1 0x40 00002315: MLOAD 00002316: DUP1 00002317: DUP4 00002318: SUB 00002319: DUP2 0000231a: DUP7 0000231b: DUP1 0000231c: EXTCODESIZE 0000231d: ISZERO 0000231e: DUP1 0000231f: ISZERO 00002320: PUSH2 0x2328 00002323: JUMPI 00002324: PUSH1 0x00 00002326: DUP1 00002327: REVERT 00002328: JUMPDEST 00002329: POP 0000232a: GAS 0000232b: STATICCALL 0000232c: ISZERO 0000232d: DUP1 0000232e: ISZERO 0000232f: PUSH2 0x233c 00002332: JUMPI 00002333: RETURNDATASIZE 00002334: PUSH1 0x00 00002336: DUP1 00002337: RETURNDATACOPY 00002338: RETURNDATASIZE 00002339: PUSH1 0x00 0000233b: REVERT 0000233c: JUMPDEST 0000233d: POP 0000233e: POP 0000233f: POP 00002340: POP 00002341: PUSH1 0x40 00002343: MLOAD 00002344: RETURNDATASIZE 00002345: PUSH1 0x1f 00002347: NOT 00002348: PUSH1 0x1f 0000234a: DUP3 0000234b: ADD 0000234c: AND 0000234d: DUP3 0000234e: ADD 0000234f: DUP1 00002350: PUSH1 0x40 00002352: MSTORE 00002353: POP 00002354: DUP2 00002355: ADD 00002356: SWAP1 00002357: PUSH2 0x2360 0000235a: SWAP2 0000235b: SWAP1 0000235c: PUSH2 0x2fe4 0000235f: JUMP 00002360: JUMPDEST 00002361: LT 00002362: ISZERO 00002363: PUSH2 0x23ae 00002366: JUMPI 00002367: PUSH1 0x40 00002369: MLOAD 0000236a: PUSH3 0x461bcd 0000236e: PUSH1 0xe5 00002370: SHL 00002371: DUP2 00002372: MSTORE 00002373: PUSH1 0x20 00002375: PUSH1 0x04 00002377: DUP3 00002378: ADD 00002379: MSTORE 0000237a: PUSH1 0x1c 0000237c: PUSH1 0x24 0000237e: DUP3 0000237f: ADD 00002380: MSTORE 00002381: PUSH32 0x72656c656173652f696e73756666696369656e742d62616c616e636500000000 000023a2: PUSH1 0x44 000023a4: DUP3 000023a5: ADD 000023a6: MSTORE 000023a7: PUSH1 0x64 000023a9: ADD 000023aa: PUSH2 0x021d 000023ad: JUMP 000023ae: JUMPDEST 000023af: PUSH2 0x23b9 000023b2: DUP2 000023b3: DUP7 000023b4: DUP5 000023b5: PUSH2 0x2849 000023b8: JUMP 000023b9: JUMPDEST 000023ba: POP 000023bb: POP 000023bc: POP 000023bd: POP 000023be: POP 000023bf: JUMP 000023c0: JUMPDEST 000023c1: PUSH1 0x40 000023c3: MLOAD 000023c4: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 000023e5: PUSH1 0x20 000023e7: DUP3 000023e8: ADD 000023e9: MSTORE 000023ea: PUSH1 0x3c 000023ec: DUP2 000023ed: ADD 000023ee: DUP6 000023ef: SWAP1 000023f0: MSTORE 000023f1: PUSH1 0x00 000023f3: SWAP1 000023f4: DUP2 000023f5: SWAP1 000023f6: PUSH1 0x01 000023f8: SWAP1 000023f9: PUSH1 0x5c 000023fb: ADD 000023fc: PUSH1 0x40 000023fe: DUP1 000023ff: MLOAD 00002400: PUSH1 0x1f 00002402: NOT 00002403: DUP2 00002404: DUP5 00002405: SUB 00002406: ADD 00002407: DUP2 00002408: MSTORE 00002409: DUP3 0000240a: DUP3 0000240b: MSTORE 0000240c: DUP1 0000240d: MLOAD 0000240e: PUSH1 0x20 00002410: SWAP2 00002411: DUP3 00002412: ADD 00002413: KECCAK256 00002414: PUSH1 0x00 00002416: DUP5 00002417: MSTORE 00002418: SWAP1 00002419: DUP4 0000241a: ADD 0000241b: DUP1 0000241c: DUP4 0000241d: MSTORE 0000241e: MSTORE 0000241f: PUSH1 0xff 00002421: DUP9 00002422: AND 00002423: SWAP1 00002424: DUP3 00002425: ADD 00002426: MSTORE 00002427: PUSH1 0x60 00002429: DUP2 0000242a: ADD 0000242b: DUP7 0000242c: SWAP1 0000242d: MSTORE 0000242e: PUSH1 0x80 00002430: DUP2 00002431: ADD 00002432: DUP6 00002433: SWAP1 00002434: MSTORE 00002435: PUSH1 0xa0 00002437: ADD 00002438: PUSH1 0x20 0000243a: PUSH1 0x40 0000243c: MLOAD 0000243d: PUSH1 0x20 0000243f: DUP2 00002440: SUB 00002441: SWAP1 00002442: DUP1 00002443: DUP5 00002444: SUB 00002445: SWAP1 00002446: DUP6 00002447: GAS 00002448: STATICCALL 00002449: ISZERO 0000244a: DUP1 0000244b: ISZERO 0000244c: PUSH2 0x2459 0000244f: JUMPI 00002450: RETURNDATASIZE 00002451: PUSH1 0x00 00002453: DUP1 00002454: RETURNDATACOPY 00002455: RETURNDATASIZE 00002456: PUSH1 0x00 00002458: REVERT 00002459: JUMPDEST 0000245a: POP 0000245b: POP 0000245c: PUSH1 0x40 0000245e: MLOAD 0000245f: PUSH1 0x1f 00002461: NOT 00002462: ADD 00002463: MLOAD 00002464: SWAP8 00002465: SWAP7 00002466: POP 00002467: POP 00002468: POP 00002469: POP 0000246a: POP 0000246b: POP 0000246c: POP 0000246d: JUMP 0000246e: JUMPDEST 0000246f: PUSH1 0x07 00002471: SLOAD 00002472: PUSH1 0x00 00002474: SWAP1 00002475: PUSH2 0x0100 00002478: SWAP1 00002479: DIV 0000247a: PUSH1 0xff 0000247c: AND 0000247d: ISZERO 0000247e: PUSH2 0x24b7 00002481: JUMPI 00002482: DUP2 00002483: PUSH1 0xff 00002485: AND 00002486: PUSH1 0x01 00002488: EQ 00002489: DUP1 0000248a: ISZERO 0000248b: PUSH2 0x2493 0000248e: JUMPI 0000248f: POP 00002490: ADDRESS 00002491: EXTCODESIZE 00002492: ISZERO 00002493: JUMPDEST 00002494: PUSH2 0x24af 00002497: JUMPI 00002498: PUSH1 0x40 0000249a: MLOAD 0000249b: PUSH3 0x461bcd 0000249f: PUSH1 0xe5 000024a1: SHL 000024a2: DUP2 000024a3: MSTORE 000024a4: PUSH1 0x04 000024a6: ADD 000024a7: PUSH2 0x021d 000024aa: SWAP1 000024ab: PUSH2 0x31c7 000024ae: JUMP 000024af: JUMPDEST 000024b0: POP 000024b1: PUSH1 0x00 000024b3: PUSH2 0x1faa 000024b6: JUMP 000024b7: JUMPDEST 000024b8: PUSH1 0x07 000024ba: SLOAD 000024bb: PUSH1 0xff 000024bd: DUP1 000024be: DUP5 000024bf: AND 000024c0: SWAP2 000024c1: AND 000024c2: LT 000024c3: PUSH2 0x24de 000024c6: JUMPI 000024c7: PUSH1 0x40 000024c9: MLOAD 000024ca: PUSH3 0x461bcd 000024ce: PUSH1 0xe5 000024d0: SHL 000024d1: DUP2 000024d2: MSTORE 000024d3: PUSH1 0x04 000024d5: ADD 000024d6: PUSH2 0x021d 000024d9: SWAP1 000024da: PUSH2 0x31c7 000024dd: JUMP 000024de: JUMPDEST 000024df: POP 000024e0: PUSH1 0x07 000024e2: DUP1 000024e3: SLOAD 000024e4: PUSH1 0xff 000024e6: NOT 000024e7: AND 000024e8: PUSH1 0xff 000024ea: DUP4 000024eb: AND 000024ec: OR 000024ed: SWAP1 000024ee: SSTORE 000024ef: PUSH1 0x01 000024f1: PUSH2 0x1faa 000024f4: JUMP 000024f5: JUMPDEST 000024f6: PUSH2 0x24fd 000024f9: PUSH2 0x2879 000024fc: JUMP 000024fd: JUMPDEST 000024fe: PUSH1 0x00 00002500: PUSH1 0x06 00002502: SSTORE 00002503: JUMP 00002504: JUMPDEST 00002505: PUSH1 0x00 00002507: DUP1 00002508: PUSH1 0x00 0000250a: JUMPDEST 0000250b: PUSH1 0x04 0000250d: SLOAD 0000250e: DUP2 0000250f: LT 00002510: ISZERO 00002511: PUSH2 0x2572 00002514: JUMPI 00002515: PUSH1 0x04 00002517: DUP2 00002518: DUP2 00002519: SLOAD 0000251a: DUP2 0000251b: LT 0000251c: PUSH2 0x2535 0000251f: JUMPI 00002520: PUSH4 0x4e487b71 00002525: PUSH1 0xe0 00002527: SHL 00002528: PUSH1 0x00 0000252a: MSTORE 0000252b: PUSH1 0x32 0000252d: PUSH1 0x04 0000252f: MSTORE 00002530: PUSH1 0x24 00002532: PUSH1 0x00 00002534: REVERT 00002535: JUMPDEST 00002536: PUSH1 0x00 00002538: SWAP2 00002539: DUP3 0000253a: MSTORE 0000253b: PUSH1 0x20 0000253d: SWAP1 0000253e: SWAP2 0000253f: KECCAK256 00002540: ADD 00002541: SLOAD 00002542: PUSH1 0x01 00002544: PUSH1 0x01 00002546: PUSH1 0xa0 00002548: SHL 00002549: SUB 0000254a: DUP6 0000254b: DUP2 0000254c: AND 0000254d: SWAP2 0000254e: AND 0000254f: EQ 00002550: ISZERO 00002551: PUSH2 0x2560 00002554: JUMPI 00002555: DUP1 00002556: SWAP3 00002557: POP 00002558: PUSH1 0x01 0000255a: SWAP2 0000255b: POP 0000255c: PUSH2 0x2572 0000255f: JUMP 00002560: JUMPDEST 00002561: DUP1 00002562: PUSH2 0x256a 00002565: DUP2 00002566: PUSH2 0x3534 00002569: JUMP 0000256a: JUMPDEST 0000256b: SWAP2 0000256c: POP 0000256d: POP 0000256e: PUSH2 0x250a 00002571: JUMP 00002572: JUMPDEST 00002573: POP 00002574: SWAP2 00002575: POP 00002576: SWAP2 00002577: JUMP 00002578: JUMPDEST 00002579: PUSH1 0x04 0000257b: SLOAD 0000257c: PUSH2 0x2584 0000257f: JUMPI 00002580: PUSH1 0x00 00002582: DUP1 00002583: REVERT 00002584: JUMPDEST 00002585: PUSH1 0x04 00002587: SLOAD 00002588: DUP2 00002589: LT 0000258a: PUSH2 0x2592 0000258d: JUMPI 0000258e: PUSH1 0x00 00002590: DUP1 00002591: REVERT 00002592: JUMPDEST 00002593: PUSH1 0x04 00002595: SLOAD 00002596: PUSH1 0x00 00002598: SWAP1 00002599: PUSH2 0x25a4 0000259c: SWAP1 0000259d: PUSH1 0x01 0000259f: SWAP1 000025a0: PUSH2 0x34b6 000025a3: JUMP 000025a4: JUMPDEST 000025a5: SWAP1 000025a6: POP 000025a7: DUP1 000025a8: DUP3 000025a9: LT 000025aa: ISZERO 000025ab: PUSH2 0x2638 000025ae: JUMPI 000025af: PUSH1 0x04 000025b1: DUP2 000025b2: DUP2 000025b3: SLOAD 000025b4: DUP2 000025b5: LT 000025b6: PUSH2 0x25cf 000025b9: JUMPI 000025ba: PUSH4 0x4e487b71 000025bf: PUSH1 0xe0 000025c1: SHL 000025c2: PUSH1 0x00 000025c4: MSTORE 000025c5: PUSH1 0x32 000025c7: PUSH1 0x04 000025c9: MSTORE 000025ca: PUSH1 0x24 000025cc: PUSH1 0x00 000025ce: REVERT 000025cf: JUMPDEST 000025d0: PUSH1 0x00 000025d2: SWAP2 000025d3: DUP3 000025d4: MSTORE 000025d5: PUSH1 0x20 000025d7: SWAP1 000025d8: SWAP2 000025d9: KECCAK256 000025da: ADD 000025db: SLOAD 000025dc: PUSH1 0x04 000025de: DUP1 000025df: SLOAD 000025e0: PUSH1 0x01 000025e2: PUSH1 0x01 000025e4: PUSH1 0xa0 000025e6: SHL 000025e7: SUB 000025e8: SWAP1 000025e9: SWAP3 000025ea: AND 000025eb: SWAP2 000025ec: DUP5 000025ed: SWAP1 000025ee: DUP2 000025ef: LT 000025f0: PUSH2 0x2609 000025f3: JUMPI 000025f4: PUSH4 0x4e487b71 000025f9: PUSH1 0xe0 000025fb: SHL 000025fc: PUSH1 0x00 000025fe: MSTORE 000025ff: PUSH1 0x32 00002601: PUSH1 0x04 00002603: MSTORE 00002604: PUSH1 0x24 00002606: PUSH1 0x00 00002608: REVERT 00002609: JUMPDEST 0000260a: SWAP1 0000260b: PUSH1 0x00 0000260d: MSTORE 0000260e: PUSH1 0x20 00002610: PUSH1 0x00 00002612: KECCAK256 00002613: ADD 00002614: PUSH1 0x00 00002616: PUSH2 0x0100 00002619: EXP 0000261a: DUP2 0000261b: SLOAD 0000261c: DUP2 0000261d: PUSH1 0x01 0000261f: PUSH1 0x01 00002621: PUSH1 0xa0 00002623: SHL 00002624: SUB 00002625: MUL 00002626: NOT 00002627: AND 00002628: SWAP1 00002629: DUP4 0000262a: PUSH1 0x01 0000262c: PUSH1 0x01 0000262e: PUSH1 0xa0 00002630: SHL 00002631: SUB 00002632: AND 00002633: MUL 00002634: OR 00002635: SWAP1 00002636: SSTORE 00002637: POP 00002638: JUMPDEST 00002639: PUSH1 0x04 0000263b: DUP1 0000263c: SLOAD 0000263d: DUP1 0000263e: PUSH2 0x2657 00002641: JUMPI 00002642: PUSH4 0x4e487b71 00002647: PUSH1 0xe0 00002649: SHL 0000264a: PUSH1 0x00 0000264c: MSTORE 0000264d: PUSH1 0x31 0000264f: PUSH1 0x04 00002651: MSTORE 00002652: PUSH1 0x24 00002654: PUSH1 0x00 00002656: REVERT 00002657: JUMPDEST 00002658: PUSH1 0x00 0000265a: DUP3 0000265b: DUP2 0000265c: MSTORE 0000265d: PUSH1 0x20 0000265f: SWAP1 00002660: KECCAK256 00002661: DUP2 00002662: ADD 00002663: PUSH1 0x00 00002665: NOT 00002666: SWAP1 00002667: DUP2 00002668: ADD 00002669: DUP1 0000266a: SLOAD 0000266b: PUSH1 0x01 0000266d: PUSH1 0x01 0000266f: PUSH1 0xa0 00002671: SHL 00002672: SUB 00002673: NOT 00002674: AND 00002675: SWAP1 00002676: SSTORE 00002677: ADD 00002678: SWAP1 00002679: SSTORE 0000267a: POP 0000267b: POP 0000267c: JUMP 0000267d: JUMPDEST 0000267e: PUSH1 0x00 00002680: PUSH2 0x26bf 00002683: DUP4 00002684: DUP4 00002685: PUSH1 0x40 00002687: MLOAD 00002688: DUP1 00002689: PUSH1 0x40 0000268b: ADD 0000268c: PUSH1 0x40 0000268e: MSTORE 0000268f: DUP1 00002690: PUSH1 0x20 00002692: DUP2 00002693: MSTORE 00002694: PUSH1 0x20 00002696: ADD 00002697: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 000026b8: DUP2 000026b9: MSTORE 000026ba: POP 000026bb: PUSH2 0x2883 000026be: JUMP 000026bf: JUMPDEST 000026c0: DUP1 000026c1: MLOAD 000026c2: SWAP1 000026c3: SWAP2 000026c4: POP 000026c5: ISZERO 000026c6: PUSH2 0x1eb3 000026c9: JUMPI 000026ca: DUP1 000026cb: DUP1 000026cc: PUSH1 0x20 000026ce: ADD 000026cf: SWAP1 000026d0: MLOAD 000026d1: DUP2 000026d2: ADD 000026d3: SWAP1 000026d4: PUSH2 0x26dd 000026d7: SWAP2 000026d8: SWAP1 000026d9: PUSH2 0x2d03 000026dc: JUMP 000026dd: JUMPDEST 000026de: PUSH2 0x1eb3 000026e1: JUMPI 000026e2: PUSH1 0x40 000026e4: MLOAD 000026e5: PUSH3 0x461bcd 000026e9: PUSH1 0xe5 000026eb: SHL 000026ec: DUP2 000026ed: MSTORE 000026ee: PUSH1 0x20 000026f0: PUSH1 0x04 000026f2: DUP3 000026f3: ADD 000026f4: MSTORE 000026f5: PUSH1 0x2a 000026f7: PUSH1 0x24 000026f9: DUP3 000026fa: ADD 000026fb: MSTORE 000026fc: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 0000271d: PUSH1 0x44 0000271f: DUP3 00002720: ADD 00002721: MSTORE 00002722: PUSH10 0x1bdd081cdd58d8d95959 0000272d: PUSH1 0xb2 0000272f: SHL 00002730: PUSH1 0x64 00002732: DUP3 00002733: ADD 00002734: MSTORE 00002735: PUSH1 0x84 00002737: ADD 00002738: PUSH2 0x021d 0000273b: JUMP 0000273c: JUMPDEST 0000273d: PUSH1 0x00 0000273f: DUP3 00002740: PUSH2 0x274b 00002743: JUMPI 00002744: POP 00002745: PUSH1 0x00 00002747: PUSH2 0x0854 0000274a: JUMP 0000274b: JUMPDEST 0000274c: PUSH1 0x00 0000274e: PUSH2 0x2757 00002751: DUP4 00002752: DUP6 00002753: PUSH2 0x3497 00002756: JUMP 00002757: JUMPDEST 00002758: SWAP1 00002759: POP 0000275a: DUP3 0000275b: PUSH2 0x2764 0000275e: DUP6 0000275f: DUP4 00002760: PUSH2 0x3360 00002763: JUMP 00002764: JUMPDEST 00002765: EQ 00002766: PUSH2 0x2193 00002769: JUMPI 0000276a: PUSH1 0x40 0000276c: MLOAD 0000276d: PUSH3 0x461bcd 00002771: PUSH1 0xe5 00002773: SHL 00002774: DUP2 00002775: MSTORE 00002776: PUSH1 0x20 00002778: PUSH1 0x04 0000277a: DUP3 0000277b: ADD 0000277c: MSTORE 0000277d: PUSH1 0x21 0000277f: PUSH1 0x24 00002781: DUP3 00002782: ADD 00002783: MSTORE 00002784: PUSH32 0x536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f 000027a5: PUSH1 0x44 000027a7: DUP3 000027a8: ADD 000027a9: MSTORE 000027aa: PUSH1 0x77 000027ac: PUSH1 0xf8 000027ae: SHL 000027af: PUSH1 0x64 000027b1: DUP3 000027b2: ADD 000027b3: MSTORE 000027b4: PUSH1 0x84 000027b6: ADD 000027b7: PUSH2 0x021d 000027ba: JUMP 000027bb: JUMPDEST 000027bc: PUSH1 0x00 000027be: DUP1 000027bf: DUP3 000027c0: GT 000027c1: PUSH2 0x280c 000027c4: JUMPI 000027c5: PUSH1 0x40 000027c7: MLOAD 000027c8: PUSH3 0x461bcd 000027cc: PUSH1 0xe5 000027ce: SHL 000027cf: DUP2 000027d0: MSTORE 000027d1: PUSH1 0x20 000027d3: PUSH1 0x04 000027d5: DUP3 000027d6: ADD 000027d7: MSTORE 000027d8: PUSH1 0x1a 000027da: PUSH1 0x24 000027dc: DUP3 000027dd: ADD 000027de: MSTORE 000027df: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000 00002800: PUSH1 0x44 00002802: DUP3 00002803: ADD 00002804: MSTORE 00002805: PUSH1 0x64 00002807: ADD 00002808: PUSH2 0x021d 0000280b: JUMP 0000280c: JUMPDEST 0000280d: PUSH2 0x2193 00002810: DUP3 00002811: DUP5 00002812: PUSH2 0x3360 00002815: JUMP 00002816: JUMPDEST 00002817: PUSH1 0x00 00002819: PUSH1 0x12 0000281b: PUSH1 0xff 0000281d: DUP5 0000281e: AND 0000281f: EQ 00002820: ISZERO 00002821: PUSH2 0x282b 00002824: JUMPI 00002825: POP 00002826: DUP1 00002827: PUSH2 0x0854 0000282a: JUMP 0000282b: JUMPDEST 0000282c: PUSH2 0x2193 0000282f: PUSH2 0x283d 00002832: DUP4 00002833: PUSH2 0x217e 00002836: DUP7 00002837: PUSH1 0x0a 00002839: PUSH2 0x33c6 0000283c: JUMP 0000283d: JUMPDEST 0000283e: PUSH2 0x218e 00002841: PUSH1 0x12 00002843: PUSH1 0x0a 00002845: PUSH2 0x33c6 00002848: JUMP 00002849: JUMPDEST 0000284a: PUSH1 0x40 0000284c: MLOAD 0000284d: PUSH1 0x01 0000284f: PUSH1 0x01 00002851: PUSH1 0xa0 00002853: SHL 00002854: SUB 00002855: DUP4 00002856: AND 00002857: PUSH1 0x24 00002859: DUP3 0000285a: ADD 0000285b: MSTORE 0000285c: PUSH1 0x44 0000285e: DUP2 0000285f: ADD 00002860: DUP3 00002861: SWAP1 00002862: MSTORE 00002863: PUSH2 0x1eb3 00002866: SWAP1 00002867: DUP5 00002868: SWAP1 00002869: PUSH4 0xa9059cbb 0000286e: PUSH1 0xe0 00002870: SHL 00002871: SWAP1 00002872: PUSH1 0x64 00002874: ADD 00002875: PUSH2 0x2119 00002878: JUMP 00002879: JUMPDEST 0000287a: PUSH2 0x2881 0000287d: PUSH2 0x289a 00002880: JUMP 00002881: JUMPDEST 00002882: JUMP 00002883: JUMPDEST 00002884: PUSH1 0x60 00002886: PUSH2 0x2892 00002889: DUP5 0000288a: DUP5 0000288b: PUSH1 0x00 0000288d: DUP6 0000288e: PUSH2 0x29af 00002891: JUMP 00002892: JUMPDEST 00002893: SWAP5 00002894: SWAP4 00002895: POP 00002896: POP 00002897: POP 00002898: POP 00002899: JUMP 0000289a: JUMPDEST 0000289b: PUSH1 0x02 0000289d: DUP1 0000289e: SLOAD 0000289f: PUSH1 0x00 000028a1: DUP1 000028a2: SLOAD 000028a3: PUSH1 0x01 000028a5: PUSH1 0x01 000028a7: PUSH1 0xa0 000028a9: SHL 000028aa: SUB 000028ab: NOT 000028ac: SWAP1 000028ad: DUP2 000028ae: AND 000028af: CALLER 000028b0: SWAP1 000028b1: DUP2 000028b2: OR 000028b3: DUP4 000028b4: SSTORE 000028b5: PUSH1 0x01 000028b7: DUP1 000028b8: SLOAD 000028b9: DUP4 000028ba: AND 000028bb: DUP3 000028bc: OR 000028bd: DUP2 000028be: SSTORE 000028bf: PUSH1 0xff 000028c1: PUSH1 0xa0 000028c3: SHL 000028c4: NOT 000028c5: SWAP1 000028c6: SWAP5 000028c7: AND 000028c8: PUSH1 0x01 000028ca: PUSH1 0xa0 000028cc: SHL 000028cd: OR 000028ce: SWAP2 000028cf: SWAP1 000028d0: SWAP2 000028d1: AND 000028d2: OR 000028d3: SWAP1 000028d4: SWAP3 000028d5: SSTORE 000028d6: PUSH1 0x40 000028d8: MLOAD 000028d9: SWAP1 000028da: SWAP2 000028db: SWAP1 000028dc: PUSH32 0x0d33af2381f036762445cec5d4a21f68c50c4236845f915b6e15419695c64367 000028fd: SWAP1 000028fe: DUP3 000028ff: SWAP1 00002900: LOG3 00002901: PUSH1 0x01 00002903: SLOAD 00002904: PUSH1 0x40 00002906: MLOAD 00002907: PUSH1 0x01 00002909: PUSH1 0x01 0000290b: PUSH1 0xa0 0000290d: SHL 0000290e: SUB 0000290f: SWAP1 00002910: SWAP2 00002911: AND 00002912: SWAP1 00002913: PUSH1 0x00 00002915: SWAP1 00002916: PUSH32 0xa57582a20eb2f0c4265459d1d9ef9990b45fa7a768b2a47481ff82b5e0864d78 00002937: SWAP1 00002938: DUP3 00002939: SWAP1 0000293a: LOG3 0000293b: PUSH1 0x02 0000293d: SLOAD 0000293e: PUSH1 0x40 00002940: MLOAD 00002941: PUSH1 0x01 00002943: PUSH1 0x01 00002945: PUSH1 0xa0 00002947: SHL 00002948: SUB 00002949: SWAP1 0000294a: SWAP2 0000294b: AND 0000294c: SWAP1 0000294d: PUSH1 0x00 0000294f: SWAP1 00002950: PUSH32 0x332aea18fc605b6be38db00074cd3c21a757c11fee654fd98c382a2e49ea2297 00002971: SWAP1 00002972: DUP3 00002973: SWAP1 00002974: LOG3 00002975: PUSH1 0x00 00002977: DUP1 00002978: SLOAD 00002979: PUSH1 0x40 0000297b: MLOAD 0000297c: PUSH1 0x01 0000297e: PUSH1 0x01 00002980: PUSH1 0xa0 00002982: SHL 00002983: SUB 00002984: SWAP1 00002985: SWAP2 00002986: AND 00002987: SWAP2 00002988: SWAP1 00002989: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000029aa: SWAP1 000029ab: DUP3 000029ac: SWAP1 000029ad: LOG3 000029ae: JUMP 000029af: JUMPDEST 000029b0: PUSH1 0x60 000029b2: DUP3 000029b3: SELFBALANCE 000029b4: LT 000029b5: ISZERO 000029b6: PUSH2 0x2a10 000029b9: JUMPI 000029ba: PUSH1 0x40 000029bc: MLOAD 000029bd: PUSH3 0x461bcd 000029c1: PUSH1 0xe5 000029c3: SHL 000029c4: DUP2 000029c5: MSTORE 000029c6: PUSH1 0x20 000029c8: PUSH1 0x04 000029ca: DUP3 000029cb: ADD 000029cc: MSTORE 000029cd: PUSH1 0x26 000029cf: PUSH1 0x24 000029d1: DUP3 000029d2: ADD 000029d3: MSTORE 000029d4: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 000029f5: PUSH1 0x44 000029f7: DUP3 000029f8: ADD 000029f9: MSTORE 000029fa: PUSH6 0x1c8818d85b1b 00002a01: PUSH1 0xd2 00002a03: SHL 00002a04: PUSH1 0x64 00002a06: DUP3 00002a07: ADD 00002a08: MSTORE 00002a09: PUSH1 0x84 00002a0b: ADD 00002a0c: PUSH2 0x021d 00002a0f: JUMP 00002a10: JUMPDEST 00002a11: DUP5 00002a12: EXTCODESIZE 00002a13: PUSH2 0x2a5e 00002a16: JUMPI 00002a17: PUSH1 0x40 00002a19: MLOAD 00002a1a: PUSH3 0x461bcd 00002a1e: PUSH1 0xe5 00002a20: SHL 00002a21: DUP2 00002a22: MSTORE 00002a23: PUSH1 0x20 00002a25: PUSH1 0x04 00002a27: DUP3 00002a28: ADD 00002a29: MSTORE 00002a2a: PUSH1 0x1d 00002a2c: PUSH1 0x24 00002a2e: DUP3 00002a2f: ADD 00002a30: MSTORE 00002a31: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00002a52: PUSH1 0x44 00002a54: DUP3 00002a55: ADD 00002a56: MSTORE 00002a57: PUSH1 0x64 00002a59: ADD 00002a5a: PUSH2 0x021d 00002a5d: JUMP 00002a5e: JUMPDEST 00002a5f: PUSH1 0x00 00002a61: DUP1 00002a62: DUP7 00002a63: PUSH1 0x01 00002a65: PUSH1 0x01 00002a67: PUSH1 0xa0 00002a69: SHL 00002a6a: SUB 00002a6b: AND 00002a6c: DUP6 00002a6d: DUP8 00002a6e: PUSH1 0x40 00002a70: MLOAD 00002a71: PUSH2 0x2a7a 00002a74: SWAP2 00002a75: SWAP1 00002a76: PUSH2 0x3034 00002a79: JUMP 00002a7a: JUMPDEST 00002a7b: PUSH1 0x00 00002a7d: PUSH1 0x40 00002a7f: MLOAD 00002a80: DUP1 00002a81: DUP4 00002a82: SUB 00002a83: DUP2 00002a84: DUP6 00002a85: DUP8 00002a86: GAS 00002a87: CALL 00002a88: SWAP3 00002a89: POP 00002a8a: POP 00002a8b: POP 00002a8c: RETURNDATASIZE 00002a8d: DUP1 00002a8e: PUSH1 0x00 00002a90: DUP2 00002a91: EQ 00002a92: PUSH2 0x2ab7 00002a95: JUMPI 00002a96: PUSH1 0x40 00002a98: MLOAD 00002a99: SWAP2 00002a9a: POP 00002a9b: PUSH1 0x1f 00002a9d: NOT 00002a9e: PUSH1 0x3f 00002aa0: RETURNDATASIZE 00002aa1: ADD 00002aa2: AND 00002aa3: DUP3 00002aa4: ADD 00002aa5: PUSH1 0x40 00002aa7: MSTORE 00002aa8: RETURNDATASIZE 00002aa9: DUP3 00002aaa: MSTORE 00002aab: RETURNDATASIZE 00002aac: PUSH1 0x00 00002aae: PUSH1 0x20 00002ab0: DUP5 00002ab1: ADD 00002ab2: RETURNDATACOPY 00002ab3: PUSH2 0x2abc 00002ab6: JUMP 00002ab7: JUMPDEST 00002ab8: PUSH1 0x60 00002aba: SWAP2 00002abb: POP 00002abc: JUMPDEST 00002abd: POP 00002abe: SWAP2 00002abf: POP 00002ac0: SWAP2 00002ac1: POP 00002ac2: PUSH2 0x1d1e 00002ac5: DUP3 00002ac6: DUP3 00002ac7: DUP7 00002ac8: PUSH1 0x60 00002aca: DUP4 00002acb: ISZERO 00002acc: PUSH2 0x2ad6 00002acf: JUMPI 00002ad0: POP 00002ad1: DUP2 00002ad2: PUSH2 0x2193 00002ad5: JUMP 00002ad6: JUMPDEST 00002ad7: DUP3 00002ad8: MLOAD 00002ad9: ISZERO 00002ada: PUSH2 0x2ae6 00002add: JUMPI 00002ade: DUP3 00002adf: MLOAD 00002ae0: DUP1 00002ae1: DUP5 00002ae2: PUSH1 0x20 00002ae4: ADD 00002ae5: REVERT 00002ae6: JUMPDEST 00002ae7: DUP2 00002ae8: PUSH1 0x40 00002aea: MLOAD 00002aeb: PUSH3 0x461bcd 00002aef: PUSH1 0xe5 00002af1: SHL 00002af2: DUP2 00002af3: MSTORE 00002af4: PUSH1 0x04 00002af6: ADD 00002af7: PUSH2 0x021d 00002afa: SWAP2 00002afb: SWAP1 00002afc: PUSH2 0x3194 00002aff: JUMP 00002b00: JUMPDEST 00002b01: DUP3 00002b02: DUP1 00002b03: SLOAD 00002b04: PUSH2 0x2b0c 00002b07: SWAP1 00002b08: PUSH2 0x34f9 00002b0b: JUMP 00002b0c: JUMPDEST 00002b0d: SWAP1 00002b0e: PUSH1 0x00 00002b10: MSTORE 00002b11: PUSH1 0x20 00002b13: PUSH1 0x00 00002b15: KECCAK256 00002b16: SWAP1 00002b17: PUSH1 0x1f 00002b19: ADD 00002b1a: PUSH1 0x20 00002b1c: SWAP1 00002b1d: DIV 00002b1e: DUP2 00002b1f: ADD 00002b20: SWAP3 00002b21: DUP3 00002b22: PUSH2 0x2b2e 00002b25: JUMPI 00002b26: PUSH1 0x00 00002b28: DUP6 00002b29: SSTORE 00002b2a: PUSH2 0x2b74 00002b2d: JUMP 00002b2e: JUMPDEST 00002b2f: DUP3 00002b30: PUSH1 0x1f 00002b32: LT 00002b33: PUSH2 0x2b47 00002b36: JUMPI 00002b37: DUP3 00002b38: DUP1 00002b39: ADD 00002b3a: PUSH1 0xff 00002b3c: NOT 00002b3d: DUP3 00002b3e: CALLDATALOAD 00002b3f: AND 00002b40: OR 00002b41: DUP6 00002b42: SSTORE 00002b43: PUSH2 0x2b74 00002b46: JUMP 00002b47: JUMPDEST 00002b48: DUP3 00002b49: DUP1 00002b4a: ADD 00002b4b: PUSH1 0x01 00002b4d: ADD 00002b4e: DUP6 00002b4f: SSTORE 00002b50: DUP3 00002b51: ISZERO 00002b52: PUSH2 0x2b74 00002b55: JUMPI 00002b56: SWAP2 00002b57: DUP3 00002b58: ADD 00002b59: JUMPDEST 00002b5a: DUP3 00002b5b: DUP2 00002b5c: GT 00002b5d: ISZERO 00002b5e: PUSH2 0x2b74 00002b61: JUMPI 00002b62: DUP3 00002b63: CALLDATALOAD 00002b64: DUP3 00002b65: SSTORE 00002b66: SWAP2 00002b67: PUSH1 0x20 00002b69: ADD 00002b6a: SWAP2 00002b6b: SWAP1 00002b6c: PUSH1 0x01 00002b6e: ADD 00002b6f: SWAP1 00002b70: PUSH2 0x2b59 00002b73: JUMP 00002b74: JUMPDEST 00002b75: POP 00002b76: PUSH2 0x2b80 00002b79: SWAP3 00002b7a: SWAP2 00002b7b: POP 00002b7c: PUSH2 0x2b84 00002b7f: JUMP 00002b80: JUMPDEST 00002b81: POP 00002b82: SWAP1 00002b83: JUMP 00002b84: JUMPDEST 00002b85: JUMPDEST 00002b86: DUP1 00002b87: DUP3 00002b88: GT 00002b89: ISZERO 00002b8a: PUSH2 0x2b80 00002b8d: JUMPI 00002b8e: PUSH1 0x00 00002b90: DUP2 00002b91: SSTORE 00002b92: PUSH1 0x01 00002b94: ADD 00002b95: PUSH2 0x2b85 00002b98: JUMP 00002b99: JUMPDEST 00002b9a: DUP1 00002b9b: CALLDATALOAD 00002b9c: PUSH1 0x01 00002b9e: PUSH1 0x01 00002ba0: PUSH1 0xa0 00002ba2: SHL 00002ba3: SUB 00002ba4: DUP2 00002ba5: AND 00002ba6: DUP2 00002ba7: EQ 00002ba8: PUSH2 0x1faa 00002bab: JUMPI 00002bac: PUSH1 0x00 00002bae: DUP1 00002baf: REVERT 00002bb0: JUMPDEST 00002bb1: PUSH1 0x00 00002bb3: DUP1 00002bb4: DUP4 00002bb5: PUSH1 0x1f 00002bb7: DUP5 00002bb8: ADD 00002bb9: SLT 00002bba: PUSH2 0x2bc1 00002bbd: JUMPI 00002bbe: DUP1 00002bbf: DUP2 00002bc0: REVERT 00002bc1: JUMPDEST 00002bc2: POP 00002bc3: DUP2 00002bc4: CALLDATALOAD 00002bc5: PUSH1 0x01 00002bc7: PUSH1 0x01 00002bc9: PUSH1 0x40 00002bcb: SHL 00002bcc: SUB 00002bcd: DUP2 00002bce: GT 00002bcf: ISZERO 00002bd0: PUSH2 0x2bd7 00002bd3: JUMPI 00002bd4: DUP2 00002bd5: DUP3 00002bd6: REVERT 00002bd7: JUMPDEST 00002bd8: PUSH1 0x20 00002bda: DUP4 00002bdb: ADD 00002bdc: SWAP2 00002bdd: POP 00002bde: DUP4 00002bdf: PUSH1 0x20 00002be1: DUP1 00002be2: DUP4 00002be3: MUL 00002be4: DUP6 00002be5: ADD 00002be6: ADD 00002be7: GT 00002be8: ISZERO 00002be9: PUSH2 0x2bf1 00002bec: JUMPI 00002bed: PUSH1 0x00 00002bef: DUP1 00002bf0: REVERT 00002bf1: JUMPDEST 00002bf2: SWAP3 00002bf3: POP 00002bf4: SWAP3 00002bf5: SWAP1 00002bf6: POP 00002bf7: JUMP 00002bf8: JUMPDEST 00002bf9: PUSH1 0x00 00002bfb: DUP1 00002bfc: DUP4 00002bfd: PUSH1 0x1f 00002bff: DUP5 00002c00: ADD 00002c01: SLT 00002c02: PUSH2 0x2c09 00002c05: JUMPI 00002c06: DUP2 00002c07: DUP3 00002c08: REVERT 00002c09: JUMPDEST 00002c0a: POP 00002c0b: DUP2 00002c0c: CALLDATALOAD 00002c0d: PUSH1 0x01 00002c0f: PUSH1 0x01 00002c11: PUSH1 0x40 00002c13: SHL 00002c14: SUB 00002c15: DUP2 00002c16: GT 00002c17: ISZERO 00002c18: PUSH2 0x2c1f 00002c1b: JUMPI 00002c1c: DUP2 00002c1d: DUP3 00002c1e: REVERT 00002c1f: JUMPDEST 00002c20: PUSH1 0x20 00002c22: DUP4 00002c23: ADD 00002c24: SWAP2 00002c25: POP 00002c26: DUP4 00002c27: PUSH1 0x20 00002c29: DUP3 00002c2a: DUP6 00002c2b: ADD 00002c2c: ADD 00002c2d: GT 00002c2e: ISZERO 00002c2f: PUSH2 0x2bf1 00002c32: JUMPI 00002c33: PUSH1 0x00 00002c35: DUP1 00002c36: REVERT 00002c37: JUMPDEST 00002c38: PUSH1 0x00 00002c3a: PUSH1 0x20 00002c3c: DUP3 00002c3d: DUP5 00002c3e: SUB 00002c3f: SLT 00002c40: ISZERO 00002c41: PUSH2 0x2c48 00002c44: JUMPI 00002c45: DUP1 00002c46: DUP2 00002c47: REVERT 00002c48: JUMPDEST 00002c49: PUSH2 0x2193 00002c4c: DUP3 00002c4d: PUSH2 0x2b99 00002c50: JUMP 00002c51: JUMPDEST 00002c52: PUSH1 0x00 00002c54: DUP1 00002c55: PUSH1 0x00 00002c57: DUP1 00002c58: PUSH1 0x60 00002c5a: DUP6 00002c5b: DUP8 00002c5c: SUB 00002c5d: SLT 00002c5e: ISZERO 00002c5f: PUSH2 0x2c66 00002c62: JUMPI 00002c63: DUP3 00002c64: DUP4 00002c65: REVERT 00002c66: JUMPDEST 00002c67: PUSH2 0x2c6f 00002c6a: DUP6 00002c6b: PUSH2 0x2b99 00002c6e: JUMP 00002c6f: JUMPDEST 00002c70: SWAP4 00002c71: POP 00002c72: PUSH1 0x20 00002c74: DUP6 00002c75: ADD 00002c76: CALLDATALOAD 00002c77: PUSH1 0x01 00002c79: PUSH1 0x01 00002c7b: PUSH1 0x40 00002c7d: SHL 00002c7e: SUB 00002c7f: DUP2 00002c80: GT 00002c81: ISZERO 00002c82: PUSH2 0x2c89 00002c85: JUMPI 00002c86: DUP4 00002c87: DUP5 00002c88: REVERT 00002c89: JUMPDEST 00002c8a: PUSH2 0x2c95 00002c8d: DUP8 00002c8e: DUP3 00002c8f: DUP9 00002c90: ADD 00002c91: PUSH2 0x2bf8 00002c94: JUMP 00002c95: JUMPDEST 00002c96: SWAP6 00002c97: SWAP9 00002c98: SWAP1 00002c99: SWAP8 00002c9a: POP 00002c9b: SWAP5 00002c9c: SWAP6 00002c9d: PUSH1 0x40 00002c9f: ADD 00002ca0: CALLDATALOAD 00002ca1: SWAP5 00002ca2: SWAP4 00002ca3: POP 00002ca4: POP 00002ca5: POP 00002ca6: POP 00002ca7: JUMP 00002ca8: JUMPDEST 00002ca9: PUSH1 0x00 00002cab: DUP1 00002cac: PUSH1 0x20 00002cae: DUP4 00002caf: DUP6 00002cb0: SUB 00002cb1: SLT 00002cb2: ISZERO 00002cb3: PUSH2 0x2cba 00002cb6: JUMPI 00002cb7: DUP2 00002cb8: DUP3 00002cb9: REVERT 00002cba: JUMPDEST 00002cbb: DUP3 00002cbc: CALLDATALOAD 00002cbd: PUSH1 0x01 00002cbf: PUSH1 0x01 00002cc1: PUSH1 0x40 00002cc3: SHL 00002cc4: SUB 00002cc5: DUP2 00002cc6: GT 00002cc7: ISZERO 00002cc8: PUSH2 0x2ccf 00002ccb: JUMPI 00002ccc: DUP3 00002ccd: DUP4 00002cce: REVERT 00002ccf: JUMPDEST 00002cd0: PUSH2 0x2cdb 00002cd3: DUP6 00002cd4: DUP3 00002cd5: DUP7 00002cd6: ADD 00002cd7: PUSH2 0x2bb0 00002cda: JUMP 00002cdb: JUMPDEST 00002cdc: SWAP1 00002cdd: SWAP7 00002cde: SWAP1 00002cdf: SWAP6 00002ce0: POP 00002ce1: SWAP4 00002ce2: POP 00002ce3: POP 00002ce4: POP 00002ce5: POP 00002ce6: JUMP 00002ce7: JUMPDEST 00002ce8: PUSH1 0x00 00002cea: PUSH1 0x20 00002cec: DUP3 00002ced: DUP5 00002cee: SUB 00002cef: SLT 00002cf0: ISZERO 00002cf1: PUSH2 0x2cf8 00002cf4: JUMPI 00002cf5: DUP1 00002cf6: DUP2 00002cf7: REVERT 00002cf8: JUMPDEST 00002cf9: DUP2 00002cfa: CALLDATALOAD 00002cfb: PUSH2 0x2193 00002cfe: DUP2 00002cff: PUSH2 0x357b 00002d02: JUMP 00002d03: JUMPDEST 00002d04: PUSH1 0x00 00002d06: PUSH1 0x20 00002d08: DUP3 00002d09: DUP5 00002d0a: SUB 00002d0b: SLT 00002d0c: ISZERO 00002d0d: PUSH2 0x2d14 00002d10: JUMPI 00002d11: DUP1 00002d12: DUP2 00002d13: REVERT 00002d14: JUMPDEST 00002d15: DUP2 00002d16: MLOAD 00002d17: PUSH2 0x2193 00002d1a: DUP2 00002d1b: PUSH2 0x357b 00002d1e: JUMP 00002d1f: JUMPDEST 00002d20: PUSH1 0x00 00002d22: DUP1 00002d23: PUSH1 0x00 00002d25: DUP1 00002d26: PUSH1 0x00 00002d28: DUP1 00002d29: PUSH1 0x00 00002d2b: PUSH1 0x80 00002d2d: DUP9 00002d2e: DUP11 00002d2f: SUB 00002d30: SLT 00002d31: ISZERO 00002d32: PUSH2 0x2d39 00002d35: JUMPI 00002d36: DUP3 00002d37: DUP4 00002d38: REVERT 00002d39: JUMPDEST 00002d3a: DUP8 00002d3b: CALLDATALOAD 00002d3c: SWAP7 00002d3d: POP 00002d3e: PUSH1 0x20 00002d40: DUP9 00002d41: ADD 00002d42: CALLDATALOAD 00002d43: PUSH1 0x01 00002d45: PUSH1 0x01 00002d47: PUSH1 0x40 00002d49: SHL 00002d4a: SUB 00002d4b: DUP1 00002d4c: DUP3 00002d4d: GT 00002d4e: ISZERO 00002d4f: PUSH2 0x2d56 00002d52: JUMPI 00002d53: DUP5 00002d54: DUP6 00002d55: REVERT 00002d56: JUMPDEST 00002d57: PUSH2 0x2d62 00002d5a: DUP12 00002d5b: DUP4 00002d5c: DUP13 00002d5d: ADD 00002d5e: PUSH2 0x2bb0 00002d61: JUMP 00002d62: JUMPDEST 00002d63: SWAP1 00002d64: SWAP9 00002d65: POP 00002d66: SWAP7 00002d67: POP 00002d68: PUSH1 0x40 00002d6a: DUP11 00002d6b: ADD 00002d6c: CALLDATALOAD 00002d6d: SWAP2 00002d6e: POP 00002d6f: DUP1 00002d70: DUP3 00002d71: GT 00002d72: ISZERO 00002d73: PUSH2 0x2d7a 00002d76: JUMPI 00002d77: DUP5 00002d78: DUP6 00002d79: REVERT 00002d7a: JUMPDEST 00002d7b: PUSH2 0x2d86 00002d7e: DUP12 00002d7f: DUP4 00002d80: DUP13 00002d81: ADD 00002d82: PUSH2 0x2bb0 00002d85: JUMP 00002d86: JUMPDEST 00002d87: SWAP1 00002d88: SWAP7 00002d89: POP 00002d8a: SWAP5 00002d8b: POP 00002d8c: PUSH1 0x60 00002d8e: DUP11 00002d8f: ADD 00002d90: CALLDATALOAD 00002d91: SWAP2 00002d92: POP 00002d93: DUP1 00002d94: DUP3 00002d95: GT 00002d96: ISZERO 00002d97: PUSH2 0x2d9e 00002d9a: JUMPI 00002d9b: DUP4 00002d9c: DUP5 00002d9d: REVERT 00002d9e: JUMPDEST 00002d9f: POP 00002da0: PUSH2 0x2dab 00002da3: DUP11 00002da4: DUP3 00002da5: DUP12 00002da6: ADD 00002da7: PUSH2 0x2bb0 00002daa: JUMP 00002dab: JUMPDEST 00002dac: SWAP9 00002dad: SWAP12 00002dae: SWAP8 00002daf: SWAP11 00002db0: POP 00002db1: SWAP6 00002db2: SWAP9 00002db3: POP 00002db4: SWAP4 00002db5: SWAP7 00002db6: SWAP3 00002db7: SWAP6 00002db8: SWAP3 00002db9: SWAP4 00002dba: POP 00002dbb: POP 00002dbc: POP 00002dbd: JUMP 00002dbe: JUMPDEST 00002dbf: PUSH1 0x00 00002dc1: DUP1 00002dc2: PUSH1 0x20 00002dc4: DUP4 00002dc5: DUP6 00002dc6: SUB 00002dc7: SLT 00002dc8: ISZERO 00002dc9: PUSH2 0x2dd0 00002dcc: JUMPI 00002dcd: DUP2 00002dce: DUP3 00002dcf: REVERT 00002dd0: JUMPDEST 00002dd1: DUP3 00002dd2: CALLDATALOAD 00002dd3: PUSH1 0x01 00002dd5: PUSH1 0x01 00002dd7: PUSH1 0x40 00002dd9: SHL 00002dda: SUB 00002ddb: DUP2 00002ddc: GT 00002ddd: ISZERO 00002dde: PUSH2 0x2de5 00002de1: JUMPI 00002de2: DUP3 00002de3: DUP4 00002de4: REVERT 00002de5: JUMPDEST 00002de6: PUSH2 0x2cdb 00002de9: DUP6 00002dea: DUP3 00002deb: DUP7 00002dec: ADD 00002ded: PUSH2 0x2bf8 00002df0: JUMP 00002df1: JUMPDEST 00002df2: PUSH1 0x00 00002df4: DUP1 00002df5: PUSH1 0x00 00002df7: PUSH1 0x40 00002df9: DUP5 00002dfa: DUP7 00002dfb: SUB 00002dfc: SLT 00002dfd: ISZERO 00002dfe: PUSH2 0x2e05 00002e01: JUMPI 00002e02: DUP3 00002e03: DUP4 00002e04: REVERT 00002e05: JUMPDEST 00002e06: DUP4 00002e07: CALLDATALOAD 00002e08: PUSH1 0x01 00002e0a: PUSH1 0x01 00002e0c: PUSH1 0x40 00002e0e: SHL 00002e0f: SUB 00002e10: DUP2 00002e11: GT 00002e12: ISZERO 00002e13: PUSH2 0x2e1a 00002e16: JUMPI 00002e17: DUP4 00002e18: DUP5 00002e19: REVERT 00002e1a: JUMPDEST 00002e1b: PUSH2 0x2e26 00002e1e: DUP7 00002e1f: DUP3 00002e20: DUP8 00002e21: ADD 00002e22: PUSH2 0x2bf8 00002e25: JUMP 00002e26: JUMPDEST 00002e27: SWAP1 00002e28: SWAP5 00002e29: POP 00002e2a: SWAP3 00002e2b: POP 00002e2c: PUSH2 0x2e39 00002e2f: SWAP1 00002e30: POP 00002e31: PUSH1 0x20 00002e33: DUP6 00002e34: ADD 00002e35: PUSH2 0x2b99 00002e38: JUMP 00002e39: JUMPDEST 00002e3a: SWAP1 00002e3b: POP 00002e3c: SWAP3 00002e3d: POP 00002e3e: SWAP3 00002e3f: POP 00002e40: SWAP3 00002e41: JUMP 00002e42: JUMPDEST 00002e43: PUSH1 0x00 00002e45: PUSH1 0x20 00002e47: DUP3 00002e48: DUP5 00002e49: SUB 00002e4a: SLT 00002e4b: ISZERO 00002e4c: PUSH2 0x2e53 00002e4f: JUMPI 00002e50: DUP1 00002e51: DUP2 00002e52: REVERT 00002e53: JUMPDEST 00002e54: DUP2 00002e55: CALLDATALOAD 00002e56: PUSH1 0x01 00002e58: PUSH1 0x01 00002e5a: PUSH1 0x40 00002e5c: SHL 00002e5d: SUB 00002e5e: DUP2 00002e5f: GT 00002e60: ISZERO 00002e61: PUSH2 0x2e68 00002e64: JUMPI 00002e65: DUP2 00002e66: DUP3 00002e67: REVERT 00002e68: JUMPDEST 00002e69: DUP3 00002e6a: ADD 00002e6b: PUSH1 0x1f 00002e6d: DUP2 00002e6e: ADD 00002e6f: DUP5 00002e70: SGT 00002e71: PUSH2 0x2e78 00002e74: JUMPI 00002e75: DUP2 00002e76: DUP3 00002e77: REVERT 00002e78: JUMPDEST 00002e79: DUP1 00002e7a: CALLDATALOAD 00002e7b: PUSH2 0x2e8b 00002e7e: PUSH2 0x2e86 00002e81: DUP3 00002e82: PUSH2 0x3321 00002e85: JUMP 00002e86: JUMPDEST 00002e87: PUSH2 0x32f1 00002e8a: JUMP 00002e8b: JUMPDEST 00002e8c: DUP2 00002e8d: DUP2 00002e8e: MSTORE 00002e8f: DUP6 00002e90: PUSH1 0x20 00002e92: DUP4 00002e93: DUP6 00002e94: ADD 00002e95: ADD 00002e96: GT 00002e97: ISZERO 00002e98: PUSH2 0x2e9f 00002e9b: JUMPI 00002e9c: DUP4 00002e9d: DUP5 00002e9e: REVERT 00002e9f: JUMPDEST 00002ea0: DUP2 00002ea1: PUSH1 0x20 00002ea3: DUP5 00002ea4: ADD 00002ea5: PUSH1 0x20 00002ea7: DUP4 00002ea8: ADD 00002ea9: CALLDATACOPY 00002eaa: SWAP1 00002eab: DUP2 00002eac: ADD 00002ead: PUSH1 0x20 00002eaf: ADD 00002eb0: SWAP3 00002eb1: SWAP1 00002eb2: SWAP3 00002eb3: MSTORE 00002eb4: POP 00002eb5: SWAP3 00002eb6: SWAP2 00002eb7: POP 00002eb8: POP 00002eb9: JUMP 00002eba: JUMPDEST 00002ebb: PUSH1 0x00 00002ebd: PUSH1 0x20 00002ebf: DUP3 00002ec0: DUP5 00002ec1: SUB 00002ec2: SLT 00002ec3: ISZERO 00002ec4: PUSH2 0x2ecb 00002ec7: JUMPI 00002ec8: DUP1 00002ec9: DUP2 00002eca: REVERT 00002ecb: JUMPDEST 00002ecc: DUP2 00002ecd: MLOAD 00002ece: PUSH1 0x01 00002ed0: PUSH1 0x01 00002ed2: PUSH1 0x40 00002ed4: SHL 00002ed5: SUB 00002ed6: DUP2 00002ed7: GT 00002ed8: ISZERO 00002ed9: PUSH2 0x2ee0 00002edc: JUMPI 00002edd: DUP2 00002ede: DUP3 00002edf: REVERT 00002ee0: JUMPDEST 00002ee1: DUP3 00002ee2: ADD 00002ee3: PUSH1 0x1f 00002ee5: DUP2 00002ee6: ADD 00002ee7: DUP5 00002ee8: SGT 00002ee9: PUSH2 0x2ef0 00002eec: JUMPI 00002eed: DUP2 00002eee: DUP3 00002eef: REVERT 00002ef0: JUMPDEST 00002ef1: DUP1 00002ef2: MLOAD 00002ef3: PUSH2 0x2efe 00002ef6: PUSH2 0x2e86 00002ef9: DUP3 00002efa: PUSH2 0x3321 00002efd: JUMP 00002efe: JUMPDEST 00002eff: DUP2 00002f00: DUP2 00002f01: MSTORE 00002f02: DUP6 00002f03: PUSH1 0x20 00002f05: DUP4 00002f06: DUP6 00002f07: ADD 00002f08: ADD 00002f09: GT 00002f0a: ISZERO 00002f0b: PUSH2 0x2f12 00002f0e: JUMPI 00002f0f: DUP4 00002f10: DUP5 00002f11: REVERT 00002f12: JUMPDEST 00002f13: PUSH2 0x2f23 00002f16: DUP3 00002f17: PUSH1 0x20 00002f19: DUP4 00002f1a: ADD 00002f1b: PUSH1 0x20 00002f1d: DUP7 00002f1e: ADD 00002f1f: PUSH2 0x34cd 00002f22: JUMP 00002f23: JUMPDEST 00002f24: SWAP6 00002f25: SWAP5 00002f26: POP 00002f27: POP 00002f28: POP 00002f29: POP 00002f2a: POP 00002f2b: JUMP 00002f2c: JUMPDEST 00002f2d: PUSH1 0x00 00002f2f: DUP1 00002f30: PUSH1 0x00 00002f32: DUP1 00002f33: PUSH1 0x00 00002f35: DUP1 00002f36: PUSH1 0x00 00002f38: PUSH1 0x80 00002f3a: DUP9 00002f3b: DUP11 00002f3c: SUB 00002f3d: SLT 00002f3e: ISZERO 00002f3f: PUSH2 0x2f46 00002f42: JUMPI 00002f43: DUP1 00002f44: DUP2 00002f45: REVERT 00002f46: JUMPDEST 00002f47: DUP8 00002f48: CALLDATALOAD 00002f49: PUSH1 0x01 00002f4b: PUSH1 0x01 00002f4d: PUSH1 0x40 00002f4f: SHL 00002f50: SUB 00002f51: DUP1 00002f52: DUP3 00002f53: GT 00002f54: ISZERO 00002f55: PUSH2 0x2f5c 00002f58: JUMPI 00002f59: DUP3 00002f5a: DUP4 00002f5b: REVERT 00002f5c: JUMPDEST 00002f5d: SWAP1 00002f5e: DUP10 00002f5f: ADD 00002f60: SWAP1 00002f61: PUSH1 0xa0 00002f63: DUP3 00002f64: DUP13 00002f65: SUB 00002f66: SLT 00002f67: ISZERO 00002f68: PUSH2 0x2f6f 00002f6b: JUMPI 00002f6c: DUP3 00002f6d: DUP4 00002f6e: REVERT 00002f6f: JUMPDEST 00002f70: SWAP1 00002f71: SWAP8 00002f72: POP 00002f73: PUSH1 0x20 00002f75: DUP10 00002f76: ADD 00002f77: CALLDATALOAD 00002f78: SWAP1 00002f79: DUP1 00002f7a: DUP3 00002f7b: GT 00002f7c: ISZERO 00002f7d: PUSH2 0x2f84 00002f80: JUMPI 00002f81: DUP3 00002f82: DUP4 00002f83: REVERT 00002f84: JUMPDEST 00002f85: PUSH2 0x2f90 00002f88: DUP12 00002f89: DUP4 00002f8a: DUP13 00002f8b: ADD 00002f8c: PUSH2 0x2bb0 00002f8f: JUMP 00002f90: JUMPDEST 00002f91: SWAP1 00002f92: SWAP9 00002f93: POP 00002f94: SWAP7 00002f95: POP 00002f96: PUSH1 0x40 00002f98: DUP11 00002f99: ADD 00002f9a: CALLDATALOAD 00002f9b: SWAP2 00002f9c: POP 00002f9d: DUP1 00002f9e: DUP3 00002f9f: GT 00002fa0: ISZERO 00002fa1: PUSH2 0x2fa8 00002fa4: JUMPI 00002fa5: DUP3 00002fa6: DUP4 00002fa7: REVERT 00002fa8: JUMPDEST 00002fa9: PUSH2 0x2fb4 00002fac: DUP12 00002fad: DUP4 00002fae: DUP13 00002faf: ADD 00002fb0: PUSH2 0x2bb0 00002fb3: JUMP 00002fb4: JUMPDEST 00002fb5: SWAP1 00002fb6: SWAP7 00002fb7: POP 00002fb8: SWAP5 00002fb9: POP 00002fba: PUSH1 0x60 00002fbc: DUP11 00002fbd: ADD 00002fbe: CALLDATALOAD 00002fbf: SWAP2 00002fc0: POP 00002fc1: DUP1 00002fc2: DUP3 00002fc3: GT 00002fc4: ISZERO 00002fc5: PUSH2 0x2d9e 00002fc8: JUMPI 00002fc9: DUP3 00002fca: DUP4 00002fcb: REVERT 00002fcc: JUMPDEST 00002fcd: PUSH1 0x00 00002fcf: PUSH1 0x20 00002fd1: DUP3 00002fd2: DUP5 00002fd3: SUB 00002fd4: SLT 00002fd5: ISZERO 00002fd6: PUSH2 0x2fdd 00002fd9: JUMPI 00002fda: DUP1 00002fdb: DUP2 00002fdc: REVERT 00002fdd: JUMPDEST 00002fde: POP 00002fdf: CALLDATALOAD 00002fe0: SWAP2 00002fe1: SWAP1 00002fe2: POP 00002fe3: JUMP 00002fe4: JUMPDEST 00002fe5: PUSH1 0x00 00002fe7: PUSH1 0x20 00002fe9: DUP3 00002fea: DUP5 00002feb: SUB 00002fec: SLT 00002fed: ISZERO 00002fee: PUSH2 0x2ff5 00002ff1: JUMPI 00002ff2: DUP1 00002ff3: DUP2 00002ff4: REVERT 00002ff5: JUMPDEST 00002ff6: POP 00002ff7: MLOAD 00002ff8: SWAP2 00002ff9: SWAP1 00002ffa: POP 00002ffb: JUMP 00002ffc: JUMPDEST 00002ffd: PUSH1 0x00 00002fff: PUSH1 0x20 00003001: DUP3 00003002: DUP5 00003003: SUB 00003004: SLT 00003005: ISZERO 00003006: PUSH2 0x300d 00003009: JUMPI 0000300a: DUP1 0000300b: DUP2 0000300c: REVERT 0000300d: JUMPDEST 0000300e: DUP2 0000300f: CALLDATALOAD 00003010: PUSH2 0x2193 00003013: DUP2 00003014: PUSH2 0x3589 00003017: JUMP 00003018: JUMPDEST 00003019: PUSH1 0x00 0000301b: PUSH1 0x20 0000301d: DUP3 0000301e: DUP5 0000301f: SUB 00003020: SLT 00003021: ISZERO 00003022: PUSH2 0x3029 00003025: JUMPI 00003026: DUP1 00003027: DUP2 00003028: REVERT 00003029: JUMPDEST 0000302a: DUP2 0000302b: MLOAD 0000302c: PUSH2 0x2193 0000302f: DUP2 00003030: PUSH2 0x3589 00003033: JUMP 00003034: JUMPDEST 00003035: PUSH1 0x00 00003037: DUP3 00003038: MLOAD 00003039: PUSH2 0x3046 0000303c: DUP2 0000303d: DUP5 0000303e: PUSH1 0x20 00003040: DUP8 00003041: ADD 00003042: PUSH2 0x34cd 00003045: JUMP 00003046: JUMPDEST 00003047: SWAP2 00003048: SWAP1 00003049: SWAP2 0000304a: ADD 0000304b: SWAP3 0000304c: SWAP2 0000304d: POP 0000304e: POP 0000304f: JUMP 00003050: JUMPDEST 00003051: PUSH1 0x00 00003053: DUP3 00003054: DUP5 00003055: DUP4 00003056: CALLDATACOPY 00003057: SWAP2 00003058: ADD 00003059: SWAP1 0000305a: DUP2 0000305b: MSTORE 0000305c: SWAP2 0000305d: SWAP1 0000305e: POP 0000305f: JUMP 00003060: JUMPDEST 00003061: DUP2 00003062: SLOAD 00003063: PUSH1 0x00 00003065: SWAP1 00003066: DUP2 00003067: SWAP1 00003068: PUSH1 0x02 0000306a: DUP2 0000306b: DIV 0000306c: PUSH1 0x01 0000306e: DUP1 0000306f: DUP4 00003070: AND 00003071: DUP1 00003072: PUSH2 0x307c 00003075: JUMPI 00003076: PUSH1 0x7f 00003078: DUP4 00003079: AND 0000307a: SWAP3 0000307b: POP 0000307c: JUMPDEST 0000307d: PUSH1 0x20 0000307f: DUP1 00003080: DUP5 00003081: LT 00003082: DUP3 00003083: EQ 00003084: ISZERO 00003085: PUSH2 0x309c 00003088: JUMPI 00003089: PUSH4 0x4e487b71 0000308e: PUSH1 0xe0 00003090: SHL 00003091: DUP8 00003092: MSTORE 00003093: PUSH1 0x22 00003095: PUSH1 0x04 00003097: MSTORE 00003098: PUSH1 0x24 0000309a: DUP8 0000309b: REVERT 0000309c: JUMPDEST 0000309d: DUP2 0000309e: DUP1 0000309f: ISZERO 000030a0: PUSH2 0x30b0 000030a3: JUMPI 000030a4: PUSH1 0x01 000030a6: DUP2 000030a7: EQ 000030a8: PUSH2 0x30c1 000030ab: JUMPI 000030ac: PUSH2 0x30ed 000030af: JUMP 000030b0: JUMPDEST 000030b1: PUSH1 0xff 000030b3: NOT 000030b4: DUP7 000030b5: AND 000030b6: DUP10 000030b7: MSTORE 000030b8: DUP5 000030b9: DUP10 000030ba: ADD 000030bb: SWAP7 000030bc: POP 000030bd: PUSH2 0x30ed 000030c0: JUMP 000030c1: JUMPDEST 000030c2: PUSH1 0x00 000030c4: DUP11 000030c5: DUP2 000030c6: MSTORE 000030c7: PUSH1 0x20 000030c9: SWAP1 000030ca: KECCAK256 000030cb: DUP9 000030cc: JUMPDEST 000030cd: DUP7 000030ce: DUP2 000030cf: LT 000030d0: ISZERO 000030d1: PUSH2 0x30e5 000030d4: JUMPI 000030d5: DUP2 000030d6: SLOAD 000030d7: DUP12 000030d8: DUP3 000030d9: ADD 000030da: MSTORE 000030db: SWAP1 000030dc: DUP6 000030dd: ADD 000030de: SWAP1 000030df: DUP4 000030e0: ADD 000030e1: PUSH2 0x30cc 000030e4: JUMP 000030e5: JUMPDEST 000030e6: POP 000030e7: POP 000030e8: DUP5 000030e9: DUP10 000030ea: ADD 000030eb: SWAP7 000030ec: POP 000030ed: JUMPDEST 000030ee: POP 000030ef: SWAP5 000030f0: SWAP9 000030f1: SWAP8 000030f2: POP 000030f3: POP 000030f4: POP 000030f5: POP 000030f6: POP 000030f7: POP 000030f8: POP 000030f9: POP 000030fa: JUMP 000030fb: JUMPDEST 000030fc: PUSH1 0x00 000030fe: DUP9 000030ff: DUP3 00003100: MSTORE 00003101: PUSH12 0xffffffffffffffffffffffff 0000310e: NOT 0000310f: DUP1 00003110: DUP10 00003111: PUSH1 0x60 00003113: SHL 00003114: AND 00003115: PUSH1 0x20 00003117: DUP5 00003118: ADD 00003119: MSTORE 0000311a: DUP1 0000311b: DUP9 0000311c: PUSH1 0x60 0000311e: SHL 0000311f: AND 00003120: PUSH1 0x34 00003122: DUP5 00003123: ADD 00003124: MSTORE 00003125: POP 00003126: DUP5 00003127: DUP7 00003128: PUSH1 0x48 0000312a: DUP5 0000312b: ADD 0000312c: CALLDATACOPY 0000312d: POP 0000312e: PUSH1 0x48 00003130: SWAP4 00003131: ADD 00003132: SWAP3 00003133: DUP4 00003134: ADD 00003135: SWAP2 00003136: SWAP1 00003137: SWAP2 00003138: MSTORE 00003139: PUSH1 0x68 0000313b: DUP3 0000313c: ADD 0000313d: MSTORE 0000313e: PUSH1 0x88 00003140: ADD 00003141: SWAP5 00003142: SWAP4 00003143: POP 00003144: POP 00003145: POP 00003146: POP 00003147: JUMP 00003148: JUMPDEST 00003149: PUSH1 0x20 0000314b: DUP1 0000314c: DUP3 0000314d: MSTORE 0000314e: DUP2 0000314f: DUP2 00003150: ADD 00003151: DUP4 00003152: SWAP1 00003153: MSTORE 00003154: PUSH1 0x00 00003156: SWAP1 00003157: DUP5 00003158: PUSH1 0x40 0000315a: DUP5 0000315b: ADD 0000315c: DUP4 0000315d: JUMPDEST 0000315e: DUP7 0000315f: DUP2 00003160: LT 00003161: ISZERO 00003162: PUSH2 0x3189 00003165: JUMPI 00003166: PUSH1 0x01 00003168: PUSH1 0x01 0000316a: PUSH1 0xa0 0000316c: SHL 0000316d: SUB 0000316e: PUSH2 0x3176 00003171: DUP5 00003172: PUSH2 0x2b99 00003175: JUMP 00003176: JUMPDEST 00003177: AND 00003178: DUP3 00003179: MSTORE 0000317a: SWAP2 0000317b: DUP4 0000317c: ADD 0000317d: SWAP2 0000317e: SWAP1 0000317f: DUP4 00003180: ADD 00003181: SWAP1 00003182: PUSH1 0x01 00003184: ADD 00003185: PUSH2 0x315d 00003188: JUMP 00003189: JUMPDEST 0000318a: POP 0000318b: SWAP7 0000318c: SWAP6 0000318d: POP 0000318e: POP 0000318f: POP 00003190: POP 00003191: POP 00003192: POP 00003193: JUMP 00003194: JUMPDEST 00003195: PUSH1 0x00 00003197: PUSH1 0x20 00003199: DUP3 0000319a: MSTORE 0000319b: DUP3 0000319c: MLOAD 0000319d: DUP1 0000319e: PUSH1 0x20 000031a0: DUP5 000031a1: ADD 000031a2: MSTORE 000031a3: PUSH2 0x31b3 000031a6: DUP2 000031a7: PUSH1 0x40 000031a9: DUP6 000031aa: ADD 000031ab: PUSH1 0x20 000031ad: DUP8 000031ae: ADD 000031af: PUSH2 0x34cd 000031b2: JUMP 000031b3: JUMPDEST 000031b4: PUSH1 0x1f 000031b6: ADD 000031b7: PUSH1 0x1f 000031b9: NOT 000031ba: AND 000031bb: SWAP2 000031bc: SWAP1 000031bd: SWAP2 000031be: ADD 000031bf: PUSH1 0x40 000031c1: ADD 000031c2: SWAP3 000031c3: SWAP2 000031c4: POP 000031c5: POP 000031c6: JUMP 000031c7: JUMPDEST 000031c8: PUSH1 0x20 000031ca: DUP1 000031cb: DUP3 000031cc: MSTORE 000031cd: PUSH1 0x2e 000031cf: SWAP1 000031d0: DUP3 000031d1: ADD 000031d2: MSTORE 000031d3: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 000031f4: PUSH1 0x40 000031f6: DUP3 000031f7: ADD 000031f8: MSTORE 000031f9: PUSH14 0x191e481a5b9a5d1a585b1a5e9959 00003208: PUSH1 0x92 0000320a: SHL 0000320b: PUSH1 0x60 0000320d: DUP3 0000320e: ADD 0000320f: MSTORE 00003210: PUSH1 0x80 00003212: ADD 00003213: SWAP1 00003214: JUMP 00003215: JUMPDEST 00003216: PUSH1 0x20 00003218: DUP1 00003219: DUP3 0000321a: MSTORE 0000321b: PUSH1 0x11 0000321d: SWAP1 0000321e: DUP3 0000321f: ADD 00003220: MSTORE 00003221: PUSH17 0x27bbb730b1363297a737ba1037bbb732b9 00003233: PUSH1 0x79 00003235: SHL 00003236: PUSH1 0x40 00003238: DUP3 00003239: ADD 0000323a: MSTORE 0000323b: PUSH1 0x60 0000323d: ADD 0000323e: SWAP1 0000323f: JUMP 00003240: JUMPDEST 00003241: PUSH1 0x20 00003243: DUP1 00003244: DUP3 00003245: MSTORE 00003246: PUSH1 0x14 00003248: SWAP1 00003249: DUP3 0000324a: ADD 0000324b: MSTORE 0000324c: PUSH20 0x4f776e61626c652f5a65726f2d61646472657373 00003261: PUSH1 0x60 00003263: SHL 00003264: PUSH1 0x40 00003266: DUP3 00003267: ADD 00003268: MSTORE 00003269: PUSH1 0x60 0000326b: ADD 0000326c: SWAP1 0000326d: JUMP 0000326e: JUMPDEST 0000326f: PUSH1 0x00 00003271: DUP6 00003272: DUP3 00003273: MSTORE 00003274: PUSH1 0x60 00003276: PUSH1 0x20 00003278: DUP4 00003279: ADD 0000327a: MSTORE 0000327b: DUP4 0000327c: PUSH1 0x60 0000327e: DUP4 0000327f: ADD 00003280: MSTORE 00003281: DUP4 00003282: DUP6 00003283: PUSH1 0x80 00003285: DUP5 00003286: ADD 00003287: CALLDATACOPY 00003288: DUP1 00003289: PUSH1 0x80 0000328b: DUP6 0000328c: DUP5 0000328d: ADD 0000328e: ADD 0000328f: MSTORE 00003290: PUSH1 0x80 00003292: PUSH1 0x1f 00003294: NOT 00003295: PUSH1 0x1f 00003297: DUP7 00003298: ADD 00003299: AND 0000329a: DUP4 0000329b: ADD 0000329c: ADD 0000329d: SWAP1 0000329e: POP 0000329f: DUP3 000032a0: PUSH1 0x40 000032a2: DUP4 000032a3: ADD 000032a4: MSTORE 000032a5: SWAP6 000032a6: SWAP5 000032a7: POP 000032a8: POP 000032a9: POP 000032aa: POP 000032ab: POP 000032ac: JUMP 000032ad: JUMPDEST 000032ae: PUSH1 0x00 000032b0: DUP1 000032b1: DUP4 000032b2: CALLDATALOAD 000032b3: PUSH1 0x1e 000032b5: NOT 000032b6: DUP5 000032b7: CALLDATASIZE 000032b8: SUB 000032b9: ADD 000032ba: DUP2 000032bb: SLT 000032bc: PUSH2 0x32c3 000032bf: JUMPI 000032c0: DUP3 000032c1: DUP4 000032c2: REVERT 000032c3: JUMPDEST 000032c4: DUP4 000032c5: ADD 000032c6: DUP1 000032c7: CALLDATALOAD 000032c8: SWAP2 000032c9: POP 000032ca: PUSH1 0x01 000032cc: PUSH1 0x01 000032ce: PUSH1 0x40 000032d0: SHL 000032d1: SUB 000032d2: DUP3 000032d3: GT 000032d4: ISZERO 000032d5: PUSH2 0x32dc 000032d8: JUMPI 000032d9: DUP3 000032da: DUP4 000032db: REVERT 000032dc: JUMPDEST 000032dd: PUSH1 0x20 000032df: ADD 000032e0: SWAP2 000032e1: POP 000032e2: CALLDATASIZE 000032e3: DUP2 000032e4: SWAP1 000032e5: SUB 000032e6: DUP3 000032e7: SGT 000032e8: ISZERO 000032e9: PUSH2 0x2bf1 000032ec: JUMPI 000032ed: PUSH1 0x00 000032ef: DUP1 000032f0: REVERT 000032f1: JUMPDEST 000032f2: PUSH1 0x40 000032f4: MLOAD 000032f5: PUSH1 0x1f 000032f7: DUP3 000032f8: ADD 000032f9: PUSH1 0x1f 000032fb: NOT 000032fc: AND 000032fd: DUP2 000032fe: ADD 000032ff: PUSH1 0x01 00003301: PUSH1 0x01 00003303: PUSH1 0x40 00003305: SHL 00003306: SUB 00003307: DUP2 00003308: GT 00003309: DUP3 0000330a: DUP3 0000330b: LT 0000330c: OR 0000330d: ISZERO 0000330e: PUSH2 0x3319 00003311: JUMPI 00003312: PUSH2 0x3319 00003315: PUSH2 0x3565 00003318: JUMP 00003319: JUMPDEST 0000331a: PUSH1 0x40 0000331c: MSTORE 0000331d: SWAP2 0000331e: SWAP1 0000331f: POP 00003320: JUMP 00003321: JUMPDEST 00003322: PUSH1 0x00 00003324: PUSH1 0x01 00003326: PUSH1 0x01 00003328: PUSH1 0x40 0000332a: SHL 0000332b: SUB 0000332c: DUP3 0000332d: GT 0000332e: ISZERO 0000332f: PUSH2 0x333a 00003332: JUMPI 00003333: PUSH2 0x333a 00003336: PUSH2 0x3565 00003339: JUMP 0000333a: JUMPDEST 0000333b: POP 0000333c: PUSH1 0x1f 0000333e: ADD 0000333f: PUSH1 0x1f 00003341: NOT 00003342: AND 00003343: PUSH1 0x20 00003345: ADD 00003346: SWAP1 00003347: JUMP 00003348: JUMPDEST 00003349: PUSH1 0x00 0000334b: DUP3 0000334c: NOT 0000334d: DUP3 0000334e: GT 0000334f: ISZERO 00003350: PUSH2 0x335b 00003353: JUMPI 00003354: PUSH2 0x335b 00003357: PUSH2 0x354f 0000335a: JUMP 0000335b: JUMPDEST 0000335c: POP 0000335d: ADD 0000335e: SWAP1 0000335f: JUMP 00003360: JUMPDEST 00003361: PUSH1 0x00 00003363: DUP3 00003364: PUSH2 0x337b 00003367: JUMPI 00003368: PUSH4 0x4e487b71 0000336d: PUSH1 0xe0 0000336f: SHL 00003370: DUP2 00003371: MSTORE 00003372: PUSH1 0x12 00003374: PUSH1 0x04 00003376: MSTORE 00003377: PUSH1 0x24 00003379: DUP2 0000337a: REVERT 0000337b: JUMPDEST 0000337c: POP 0000337d: DIV 0000337e: SWAP1 0000337f: JUMP 00003380: JUMPDEST 00003381: DUP1 00003382: DUP3 00003383: JUMPDEST 00003384: PUSH1 0x01 00003386: DUP1 00003387: DUP7 00003388: GT 00003389: PUSH2 0x3392 0000338c: JUMPI 0000338d: POP 0000338e: PUSH2 0x33bd 00003391: JUMP 00003392: JUMPDEST 00003393: DUP2 00003394: DUP8 00003395: DIV 00003396: DUP3 00003397: GT 00003398: ISZERO 00003399: PUSH2 0x33a4 0000339c: JUMPI 0000339d: PUSH2 0x33a4 000033a0: PUSH2 0x354f 000033a3: JUMP 000033a4: JUMPDEST 000033a5: DUP1 000033a6: DUP7 000033a7: AND 000033a8: ISZERO 000033a9: PUSH2 0x33b1 000033ac: JUMPI 000033ad: SWAP2 000033ae: DUP2 000033af: MUL 000033b0: SWAP2 000033b1: JUMPDEST 000033b2: SWAP5 000033b3: SWAP1 000033b4: SWAP5 000033b5: SHR 000033b6: SWAP4 000033b7: DUP1 000033b8: MUL 000033b9: PUSH2 0x3383 000033bc: JUMP 000033bd: JUMPDEST 000033be: SWAP5 000033bf: POP 000033c0: SWAP5 000033c1: SWAP3 000033c2: POP 000033c3: POP 000033c4: POP 000033c5: JUMP 000033c6: JUMPDEST 000033c7: PUSH1 0x00 000033c9: PUSH2 0x2193 000033cc: PUSH1 0x00 000033ce: NOT 000033cf: PUSH1 0xff 000033d1: DUP6 000033d2: AND 000033d3: DUP5 000033d4: PUSH1 0x00 000033d6: DUP3 000033d7: PUSH2 0x33e2 000033da: JUMPI 000033db: POP 000033dc: PUSH1 0x01 000033de: PUSH2 0x2193 000033e1: JUMP 000033e2: JUMPDEST 000033e3: DUP2 000033e4: PUSH2 0x33ef 000033e7: JUMPI 000033e8: POP 000033e9: PUSH1 0x00 000033eb: PUSH2 0x2193 000033ee: JUMP 000033ef: JUMPDEST 000033f0: DUP2 000033f1: PUSH1 0x01 000033f3: DUP2 000033f4: EQ 000033f5: PUSH2 0x3405 000033f8: JUMPI 000033f9: PUSH1 0x02 000033fb: DUP2 000033fc: EQ 000033fd: PUSH2 0x340f 00003400: JUMPI 00003401: PUSH2 0x343c 00003404: JUMP 00003405: JUMPDEST 00003406: PUSH1 0x01 00003408: SWAP2 00003409: POP 0000340a: POP 0000340b: PUSH2 0x2193 0000340e: JUMP 0000340f: JUMPDEST 00003410: PUSH1 0xff 00003412: DUP5 00003413: GT 00003414: ISZERO 00003415: PUSH2 0x3420 00003418: JUMPI 00003419: PUSH2 0x3420 0000341c: PUSH2 0x354f 0000341f: JUMP 00003420: JUMPDEST 00003421: PUSH1 0x01 00003423: DUP5 00003424: SHL 00003425: SWAP2 00003426: POP 00003427: DUP5 00003428: DUP3 00003429: GT 0000342a: ISZERO 0000342b: PUSH2 0x3436 0000342e: JUMPI 0000342f: PUSH2 0x3436 00003432: PUSH2 0x354f 00003435: JUMP 00003436: JUMPDEST 00003437: POP 00003438: PUSH2 0x2193 0000343b: JUMP 0000343c: JUMPDEST 0000343d: POP 0000343e: PUSH1 0x20 00003440: DUP4 00003441: LT 00003442: PUSH2 0x0133 00003445: DUP4 00003446: LT 00003447: AND 00003448: PUSH1 0x4e 0000344a: DUP5 0000344b: LT 0000344c: PUSH1 0x0b 0000344e: DUP5 0000344f: LT 00003450: AND 00003451: OR 00003452: ISZERO 00003453: PUSH2 0x346f 00003456: JUMPI 00003457: POP 00003458: DUP2 00003459: DUP2 0000345a: EXP 0000345b: DUP4 0000345c: DUP2 0000345d: GT 0000345e: ISZERO 0000345f: PUSH2 0x346a 00003462: JUMPI 00003463: PUSH2 0x346a 00003466: PUSH2 0x354f 00003469: JUMP 0000346a: JUMPDEST 0000346b: PUSH2 0x2193 0000346e: JUMP 0000346f: JUMPDEST 00003470: PUSH2 0x347c 00003473: DUP5 00003474: DUP5 00003475: DUP5 00003476: PUSH1 0x01 00003478: PUSH2 0x3380 0000347b: JUMP 0000347c: JUMPDEST 0000347d: DUP1 0000347e: DUP7 0000347f: DIV 00003480: DUP3 00003481: GT 00003482: ISZERO 00003483: PUSH2 0x348e 00003486: JUMPI 00003487: PUSH2 0x348e 0000348a: PUSH2 0x354f 0000348d: JUMP 0000348e: JUMPDEST 0000348f: MUL 00003490: SWAP5 00003491: SWAP4 00003492: POP 00003493: POP 00003494: POP 00003495: POP 00003496: JUMP 00003497: JUMPDEST 00003498: PUSH1 0x00 0000349a: DUP2 0000349b: PUSH1 0x00 0000349d: NOT 0000349e: DIV 0000349f: DUP4 000034a0: GT 000034a1: DUP3 000034a2: ISZERO 000034a3: ISZERO 000034a4: AND 000034a5: ISZERO 000034a6: PUSH2 0x34b1 000034a9: JUMPI 000034aa: PUSH2 0x34b1 000034ad: PUSH2 0x354f 000034b0: JUMP 000034b1: JUMPDEST 000034b2: POP 000034b3: MUL 000034b4: SWAP1 000034b5: JUMP 000034b6: JUMPDEST 000034b7: PUSH1 0x00 000034b9: DUP3 000034ba: DUP3 000034bb: LT 000034bc: ISZERO 000034bd: PUSH2 0x34c8 000034c0: JUMPI 000034c1: PUSH2 0x34c8 000034c4: PUSH2 0x354f 000034c7: JUMP 000034c8: JUMPDEST 000034c9: POP 000034ca: SUB 000034cb: SWAP1 000034cc: JUMP 000034cd: JUMPDEST 000034ce: PUSH1 0x00 000034d0: JUMPDEST 000034d1: DUP4 000034d2: DUP2 000034d3: LT 000034d4: ISZERO 000034d5: PUSH2 0x34e8 000034d8: JUMPI 000034d9: DUP2 000034da: DUP2 000034db: ADD 000034dc: MLOAD 000034dd: DUP4 000034de: DUP3 000034df: ADD 000034e0: MSTORE 000034e1: PUSH1 0x20 000034e3: ADD 000034e4: PUSH2 0x34d0 000034e7: JUMP 000034e8: JUMPDEST 000034e9: DUP4 000034ea: DUP2 000034eb: GT 000034ec: ISZERO 000034ed: PUSH2 0x2150 000034f0: JUMPI 000034f1: POP 000034f2: POP 000034f3: PUSH1 0x00 000034f5: SWAP2 000034f6: ADD 000034f7: MSTORE 000034f8: JUMP 000034f9: JUMPDEST 000034fa: PUSH1 0x02 000034fc: DUP2 000034fd: DIV 000034fe: PUSH1 0x01 00003500: DUP3 00003501: AND 00003502: DUP1 00003503: PUSH2 0x350d 00003506: JUMPI 00003507: PUSH1 0x7f 00003509: DUP3 0000350a: AND 0000350b: SWAP2 0000350c: POP 0000350d: JUMPDEST 0000350e: PUSH1 0x20 00003510: DUP3 00003511: LT 00003512: DUP2 00003513: EQ 00003514: ISZERO 00003515: PUSH2 0x352e 00003518: JUMPI 00003519: PUSH4 0x4e487b71 0000351e: PUSH1 0xe0 00003520: SHL 00003521: PUSH1 0x00 00003523: MSTORE 00003524: PUSH1 0x22 00003526: PUSH1 0x04 00003528: MSTORE 00003529: PUSH1 0x24 0000352b: PUSH1 0x00 0000352d: REVERT 0000352e: JUMPDEST 0000352f: POP 00003530: SWAP2 00003531: SWAP1 00003532: POP 00003533: JUMP 00003534: JUMPDEST 00003535: PUSH1 0x00 00003537: PUSH1 0x00 00003539: NOT 0000353a: DUP3 0000353b: EQ 0000353c: ISZERO 0000353d: PUSH2 0x3548 00003540: JUMPI 00003541: PUSH2 0x3548 00003544: PUSH2 0x354f 00003547: JUMP 00003548: JUMPDEST 00003549: POP 0000354a: PUSH1 0x01 0000354c: ADD 0000354d: SWAP1 0000354e: JUMP 0000354f: JUMPDEST 00003550: PUSH4 0x4e487b71 00003555: PUSH1 0xe0 00003557: SHL 00003558: PUSH1 0x00 0000355a: MSTORE 0000355b: PUSH1 0x11 0000355d: PUSH1 0x04 0000355f: MSTORE 00003560: PUSH1 0x24 00003562: PUSH1 0x00 00003564: REVERT 00003565: JUMPDEST 00003566: PUSH4 0x4e487b71 0000356b: PUSH1 0xe0 0000356d: SHL 0000356e: PUSH1 0x00 00003570: MSTORE 00003571: PUSH1 0x41 00003573: PUSH1 0x04 00003575: MSTORE 00003576: PUSH1 0x24 00003578: PUSH1 0x00 0000357a: REVERT 0000357b: JUMPDEST 0000357c: DUP1 0000357d: ISZERO 0000357e: ISZERO 0000357f: DUP2 00003580: EQ 00003581: PUSH2 0x206a 00003584: JUMPI 00003585: PUSH1 0x00 00003587: DUP1 00003588: REVERT 00003589: JUMPDEST 0000358a: PUSH1 0xff 0000358c: DUP2 0000358d: AND 0000358e: DUP2 0000358f: EQ 00003590: PUSH2 0x206a 00003593: JUMPI 00003594: PUSH1 0x00 00003596: DUP1 00003597: REVERT 00003598: INVALID 00003599: LOG2 0000359a: PUSH5 0x6970667358 000035a0: UNKNOWN(0x22) 000035a1: SLT 000035a2: KECCAK256 000035a3: SGT 000035a4: UNKNOWN(0x24) 000035a5: SWAP5 000035a6: PUSH22 0xaa244f294f885962efc63899b39abf75d154f852f31b 000035bd: BLOBHASH 000035be: XOR 000035bf: CALLDATASIZE 000035c0: JUMPDEST 000035c1: MOD 000035c2: MUL 000035c3: PUSH5 0x736f6c6343 000035c9: STOP 000035ca: ADDMOD 000035cb: MUL 000035cc: STOP 000035cd: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xf9fead42d16bf72ff7dab35a0a5d39bb4561830eab233430847c98b5f6768c1c
call_targets:
0xeda4c4067bdd708bb75ac620e1e2215a747a1f39
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xf9fead42d16bf72ff7dab35a0a5d39bb4561830eab233430847c98b5f6768c1c",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xeda4c4067bdd708bb75ac620e1e2215a747a1f39"
],
"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": "0xf9c243df",
"selector": "0xf9c243df",
"calldata_variants": [
"0xf9c243df",
"0xf9c243df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa7643f4",
"selector": "0xfa7643f4",
"calldata_variants": [
"0xfa7643f4",
"0xfa7643f40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfeaec775",
"selector": "0xfeaec775",
"calldata_variants": [
"0xfeaec775",
"0xfeaec7750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffec41de",
"selector": "0xffec41de",
"calldata_variants": [
"0xffec41de",
"0xffec41de0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf454fd9b",
"selector": "0xf454fd9b",
"calldata_variants": [
"0xf454fd9b",
"0xf454fd9b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf62d1888",
"selector": "0xf62d1888",
"calldata_variants": [
"0xf62d1888",
"0xf62d18880000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf851a440",
"selector": "0xf851a440",
"calldata_variants": [
"0xf851a440",
"0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 8783,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10887,
"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 |
viewtrace_id: 0xf9fead42d16bf72ff7dab35a0a5d39bb4561830eab233430847c98b5f6768c1c
call_targets:
0xeda4c4067bdd708bb75ac620e1e2215a747a1f39
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xf9fead42d16bf72ff7dab35a0a5d39bb4561830eab233430847c98b5f6768c1c",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xeda4c4067bdd708bb75ac620e1e2215a747a1f39"
],
"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": "0xf9c243df",
"selector": "0xf9c243df",
"calldata_variants": [
"0xf9c243df",
"0xf9c243df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfa7643f4",
"selector": "0xfa7643f4",
"calldata_variants": [
"0xfa7643f4",
"0xfa7643f40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfeaec775",
"selector": "0xfeaec775",
"calldata_variants": [
"0xfeaec775",
"0xfeaec7750000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffec41de",
"selector": "0xffec41de",
"calldata_variants": [
"0xffec41de",
"0xffec41de0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf454fd9b",
"selector": "0xf454fd9b",
"calldata_variants": [
"0xf454fd9b",
"0xf454fd9b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf62d1888",
"selector": "0xf62d1888",
"calldata_variants": [
"0xf62d1888",
"0xf62d18880000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf851a440",
"selector": "0xf851a440",
"calldata_variants": [
"0xf851a440",
"0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 8783,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10887,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|
| medium | reentrancy | codex | External CALL with ETH value to computed target (reentrancy/untrusted-call risk) | 75 | no | — |
viewevidence_json{
"evidence": "CALL at pc 0x224f masks an address from the stack (PUSH1 0xa0; SHL; SUB; AND) and uses a computed value; callsite metadata shows target/value are computed. A second CALL at pc 0x2a87 uses full GAS with computed stack arguments. Detector flagged both as untrusted CALLs with possible ETH value; validation trace noted a constant target in one observed trace, so target variability is uncertain from bytecode alone.",
"locations": [
"pc:0x224f",
"pc:0x2a87"
],
"recommendation": "Apply checks-effects-interactions: update any accounting/state before the external call, or use a pull-payment pattern. Add a reentrancy guard around the affected entrypoints. If only specific targets are intended, validate the recipient/token address before the call.",
"exploit_scenario": "If a function forwards ETH to a user-supplied recipient and updates accounting after the external CALL, a malicious recipient contract could reenter (via fallback/receive) and invoke the same release/withdraw path multiple times before state is finalized. Bytecode-only analysis cannot confirm the exact state-update order; risk depends on surrounding logic."
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 9
}
|