019ba9bc-ec6f-7149-8a86-ad2ee8cbb230
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 |
|---|---|---|---|---|
| 37783 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 37784 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 37785 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 37786 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 37787 | capability.graph | complete | 1 / 3 | 3 months ago |
| 37788 | detector.run | complete | 1 / 3 | 3 months ago |
| 37789 | validation.fork | complete | 1 / 3 | 3 months ago |
| 37911 | report.consolidate | complete | 1 / 6 | 3 months ago |
{
"status": "not_proxy"
}
No slither job recorded yet.
{"no_findings":false,"summary":"Bytecode contains multiple low-level CALL sites with computed targets/values and at least one CALL where success handling is unclear; depending on how inputs are controlled at runtime, this could enable unintended external interactions or silent failures.","findings":[{"severity":"medium","category":"other","title":"Computed CALL targets/values may allow unintended external calls with ETH","exploit_scenario":"If any of the computed CALL targets/values are influenced by untrusted inputs (e.g., user-provided addresses or payloads), an attacker could trigger calls to arbitrary contracts, potentially transferring ETH or reentering before state updates. The detector trace saw a constant self-target in one run, but this was not confirmed and may be input-dependent.","recommendation":"Constrain CALL targets to trusted addresses (allowlist or immutable endpoint), validate value sources, and ensure state is updated before external calls. Consider reentrancy guards on external-call paths and explicit success checks when failure should revert.","evidence":"detector_findings: \"Untrusted CALL target/value reachable\" (call_count=8) with target/value marked computed; callsites list shows CALLs at pc 0x0ed0, 0x0f89, 0x11b1, 0x141a, 0x1bbf, 0x2f94, 0x32cf, 0x35fe. Validation_json shows a single trace with constant self-target but not confirmed, so input sensitivity remains uncertain.","locations":["pc:0xed0","pc:0xf89","pc:0x11b1","pc:0x141a","pc:0x1bbf","pc:0x2f94","pc:0x32cf","pc:0x35fe"]},{"severity":"low","category":"other","title":"CALL success handling unclear at pc 0x2f94 (possible silent failure)","exploit_scenario":"If this CALL is used to forward value or invoke a receiver hook, and the success flag is ignored, a failed call could leave token/accounting state updated while the external effect did not occur, leading to stuck funds or inconsistent balances. Bytecode-only analysis cannot confirm intended semantics.","recommendation":"Explicitly check the CALL success flag and revert or store failed payloads for retry, depending on intended nonblocking behavior. Ensure accounting state changes are aligned with call outcomes.","evidence":"callsites entry for pc 12180 (0x2f94) shows CALL with `returndata_checked: null`; the immediate post-call sequence does not show a clear success gate in the local snippet, so failure handling is uncertain.","locations":["pc:0x2f94"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-5aswk2f_
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: xhigh
reasoning summaries: auto
session id: 019ba9e6-7c8a-7700-85bd-482168959ae8
--------
user
You are a security auditor. You ONLY have runtime bytecode + analysis artifacts.
You MUST read `BYTECODE_BUNDLE.json` before concluding; it contains the bytecode summary,
evidence bundle, callsites, storage slots, and detector findings.
Special cases when reasoning from bytecode (be explicit about uncertainty):
- Selector inference is best-effort; missing selectors are common.
- Fallback/receive paths may be the only entrypoints.
- CALL vs DELEGATECALL semantics differ; DELEGATECALL executes in caller storage.
- Proxy patterns (EIP-1967, minimal proxies, beacon) change which storage is authoritative.
- Storage slots are raw; mappings/arrays appear via keccak patterns, names are unknown.
- Guard detection is heuristic; absence of guards does NOT mean unguarded.
- Returndata checking is unknown unless explicitly shown in evidence.
- Precompiles (0x1..0x9) and common ERC20 transfer selectors may appear; do not over-claim.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title.
- Locations can be pc references like "pc:0x123" or selectors like "selector:0xa9059cbb".
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation,
accounting/invariant breaks, dangerous delegatecall, and untrusted external calls.
Be conservative: if evidence is weak, mark severity low/medium and explain why.
mcp startup: no servers
thinking
**Reading BYTECODE_BUNDLE.json**
exec
/bin/bash -lc ls in /tmp/codex-5aswk2f_ succeeded in 6ms:
BYTECODE_BUNDLE.json
codex-output-schema.json
exec
/bin/bash -lc 'cat BYTECODE_BUNDLE.json' in /tmp/codex-5aswk2f_ succeeded in 8ms:
{
"analysis_artifact": {
"address": "0x1edb8bded80e1b87ed19ee7d97ee80b4fdb615c1",
"artifact_hash": "0x96f63bd44f4a193d2169825f2f3048bc65e769e54cf124dbef7e0e2f88075832",
"artifact_json": {
"auth": {
"guards": [
{
"pc": 12358,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"basic_blocks": [
{
"end_pc": 12,
"hash": "0xa3508d9ee0c2083b16b14499c804c86da2856d363c799e1a2e96490ac266a15b",
"opcodes": [
"PUSH1",
thinking
**Analyzing bytecode bundle structure**
exec
/bin/bash -lc 'rg -n "storage" BYTECODE_BUNDLE.json | head -n 40' in /tmp/codex-5aswk2f_ succeeded in 7ms:
30289: "storage": {
30444: "storage": {
30599: "storage": {
30754: "storage": {
30909: "storage": {
31064: "storage": {
31219: "storage": {
31374: "storage": {
31529: "storage": {
31684: "storage": {
31839: "storage": {
31994: "storage": {
32149: "storage": {
32304: "storage": {
32459: "storage": {
32614: "storage": {
32769: "storage": {
32924: "storage": {
33079: "storage": {
33234: "storage": {
thinking
**Examining storage sections for context**
exec
/bin/bash -lc "sed -n '30270,30330p' BYTECODE_BUNDLE.json" in /tmp/codex-5aswk2f_ succeeded in 41ms:
"functions": [
{
"auth": {
"guards": [
{
"pc": 12358,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
},
"entry_pc": 3744095035,
"selector": "0xdf2a5b3b",
"sinks": {
"call": 8,
"delegatecall": 0,
"selfdestruct": 0,
"staticcall": 2
},
"storage": {
thinking
**Analyzing function callsites and risks**
exec
/bin/bash -lc "rg -n \"\\\"pc\\\": 3792\" -n BYTECODE_BUNDLE.json" in /tmp/codex-5aswk2f_ succeeded in 26ms:
23832: "pc": 3792,
53657: "pc": 3792,
53989: "pc": 3792,
54047: "pc": 3792,
thinking
**Inspecting relevant areas**
exec
/bin/bash -lc "sed -n '23810,23870p' BYTECODE_BUNDLE.json" in /tmp/codex-5aswk2f_ succeeded in 12ms:
"ADDRESS",
"OP_97",
"OP_A8",
"OP_CB",
"PUSH20",
"GT",
"STOP"
],
"start_pc": 24293
},
{
"end_pc": 24334,
"hash": "0xfe90508261559800993ba2464bde4c80e06c9dfbc50b8aed37e2a57f501b067e",
"opcodes": [
"CALLER"
],
"start_pc": 24334
}
],
"callsites": [
thinking
**Reviewing callsite and guard patterns**
exec
/bin/bash -lc 'rg -n "360894a1|be70|eip1967|proxy" BYTECODE_BUNDLE.json' in /tmp/codex-5aswk2f_ succeeded in 7ms:
9567: "hash": "0xa54c5c49c2f686849be6abe70d21678f771aef22e0c08d2ae52bfbfa81d9528b",
12998: "hash": "0x3672d569ddc572f3d62d8914759d56264334d27be7097923034e35ed000c9f1c",
14721: "hash": "0xe6776f576748aca74fc105ef871ddbe7057d4e2af2f6d9ebb3ba3f653722d8c1",
37001: "proxy": "0",
37006: "proxy_evidence": {
37007: "status": "not_proxy"
37011: "is_proxy": false,
47405: "hash": "0xa54c5c49c2f686849be6abe70d21678f771aef22e0c08d2ae52bfbfa81d9528b",
48777: "hash": "0x3672d569ddc572f3d62d8914759d56264334d27be7097923034e35ed000c9f1c",
49610: "hash": "0xe6776f576748aca74fc105ef871ddbe7057d4e2af2f6d9ebb3ba3f653722d8c1",
thinking
**Verifying proxy status**
exec
/bin/bash -lc "sed -n '36980,37030p' BYTECODE_BUNDLE.json" in /tmp/codex-5aswk2f_ succeeded in 12ms:
"version": "analysis_artifact_v1"
},
"analysis_run": {
"address": "0x1edb8bded80e1b87ed19ee7d97ee80b4fdb615c1",
"block_number": null,
"chain_id": 1,
"child_links": [],
"created_at": "2026-01-10T21:08:09.000000Z",
"id": "019ba9bc-ec6f-7149-8a86-ad2ee8cbb230",
"parent_links": [],
"status": "running",
"updated_at": "2026-01-10T21:08:27.000000Z"
},
"artifact": {
"codehash": "0x8878a417bc31126a4fd01951945faea5b0b7b8637006fd54f0d58719193cd2c8",
"compiler_json": {
"compiler_version": null,
"etherscan": {
"contract_name": null,
"implementation": null,
thinking
**Analyzing bytecode for vulnerabilities**
I’m examining runtime bytecode and analysis data to identify potential security issues, focusing on functions that write to storage without guard checks, evidence of ReentrancyGuard usage, and LayerZero bridging components; I plan to script JSON parsing with Python to systematically find functions that might have risky storage writes lacking proper access control.
exec
/bin/bash -lc "python - <<'PY'
import json
from collections import defaultdict
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
cg=data.get('analysis_artifact',{}).get('artifact_json',{})
funcs=cg.get('functions',[])
# Determine guard presence per function
rows=[]
for fn in funcs:
selector=fn.get('selector')
entry=fn.get('entry_pc')
auth=fn.get('auth',{})
guards=auth.get('guards',[])
sinks=fn.get('sinks',{})
storage=fn.get('storage',{})
slots=storage.get('slots',[])
sstores=[s for s in slots if s.get('op')=='SSTORE']
sloads=[s for s in slots if s.get('op')=='SLOAD']
if sstores:
rows.append((selector, entry, len(sstores), len(sloads), len(guards)))
# sort by sstore count desc
rows.sort(key=lambda x:(-x[2], x[0] or ''))
print('functions with SSTORE:')
for r in rows:
print(r)
# show those with SSTORE and no guards
print('\\nSSTORE with no guards:')
for r in rows:
if r[4]==0:
print(r)
PY" in /tmp/codex-5aswk2f_ succeeded in 53ms:
functions with SSTORE:
('0x01ffc9a7', 117300739, 2, 24, 1)
('0x06fdde03', 132176663, 2, 24, 1)
('0x07e0db17', 157198259, 2, 24, 1)
('0x095ea7b3', None, 2, 24, 1)
('0x10ddb137', 282964279, 2, 24, 1)
('0x18160ddd', 599290589, 2, 24, 1)
('0x23b872dd', 706764349, 2, 24, 1)
('0x2a205e3d', 773487949, 2, 24, 1)
('0x2e1a7d4d', None, 2, 24, 1)
('0x313ce567', 961581905, 2, 24, 1)
('0x39509351', 1032534262, 2, 24, 1)
('0x3d8b38f6', 1121344141, 2, 24, 1)
('0x42d65a8d', 1148650773, 2, 24, 1)
('0x44770515', None, 2, 24, 1)
('0x4c42899a', 1279429018, 2, 24, 1)
('0x51905636', 1535918566, 2, 24, 1)
('0x5b8c41e6', 1722637450, 2, 24, 1)
('0x66ad5c8a', 1889567281, 2, 24, 1)
('0x70a08231', 1901074598, 2, 24, 1)
thinking
**Investigating function storage counts**
exec
/bin/bash -lc "python - <<'PY'
import json
from collections import Counter
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
graph=data.get('capability_graph',{}).get('graph_json',{})
print(graph.keys())
# maybe contains functions detail
print('edges', len(graph.get('edges',[])))
print('nodes', len(graph.get('nodes',[])))
# show node types counts
ct=Counter(n.get('type') for n in graph.get('nodes',[]))
print('node types:', ct)
# show some nodes with function type
func_nodes=[n for n in graph.get('nodes',[]) if n.get('type')=='function']
print('func nodes', len(func_nodes))
print(func_nodes[:5])
PY" in /tmp/codex-5aswk2f_ succeeded in 72ms:
dict_keys(['edges', 'nodes', 'version'])
edges 1293
nodes 1505
node types: Counter({'basic_block': 1451, 'function': 42, 'callsite': 10, 'sink': 2})
func nodes 42
[{'entry_pc': 3744095035, 'id': 'fn:0xdf2a5b3b', 'selector': '0xdf2a5b3b', 'type': 'function'}, {'entry_pc': 3951915703, 'id': 'fn:0xeab45d9c', 'selector': '0xeab45d9c', 'type': 'function'}, {'entry_pc': 3982662748, 'id': 'fn:0xeb8d72b7', 'selector': '0xeb8d72b7', 'type': 'function'}, {'entry_pc': 4076725131, 'id': 'fn:0xed629c5c', 'selector': '0xed629c5c', 'type': 'function'}, {'entry_pc': 4125932988, 'id': 'fn:0xf2fde38b', 'selector': '0xf2fde38b', 'type': 'function'}]
thinking
**Verifying per-function storage data**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
funcs=data['analysis_artifact']['artifact_json']['functions']
# find two specific selectors
for sel in ['0x06fdde03','0xf2fde38b']:
fn=next((f for f in funcs if f.get('selector')==sel), None)
print(sel, 'entry_pc', fn.get('entry_pc'))
print('auth', fn.get('auth'))
print('storage slots len', len(fn.get('storage',{}).get('slots',[])))
print('first 5 slots', fn.get('storage',{}).get('slots',[])[:5])
print('sinks', fn.get('sinks'))
print('----')
PY" in /tmp/codex-5aswk2f_ succeeded in 66ms:
0x06fdde03 entry_pc 132176663
auth {'guards': [{'pc': 12358, 'type': 'msg_sender_eq_const', 'value': '0xffffffffffffffffffffffffffffffffffffffff'}]}
storage slots len 26
first 5 slots [{'op': 'SLOAD', 'pc': 2981, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000100'}, {'op': 'SLOAD', 'pc': 3526, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 3599, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000100'}, {'op': 'SLOAD', 'pc': 4006, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000008'}, {'op': 'SLOAD', 'pc': 4321, 'slot': '0x000000000000000000000000000000000000000000000000000000000000000b'}]
sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 2}
----
0xf2fde38b entry_pc 4125932988
auth {'guards': [{'pc': 12358, 'type': 'msg_sender_eq_const', 'value': '0xffffffffffffffffffffffffffffffffffffffff'}]}
storage slots len 26
first 5 slots [{'op': 'SLOAD', 'pc': 2981, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000100'}, {'op': 'SLOAD', 'pc': 3526, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000009'}, {'op': 'SLOAD', 'pc': 3599, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000100'}, {'op': 'SLOAD', 'pc': 4006, 'slot': '0x0000000000000000000000000000000000000000000000000000000000000008'}, {'op': 'SLOAD', 'pc': 4321, 'slot': '0x000000000000000000000000000000000000000000000000000000000000000b'}]
sinks {'call': 8, 'delegatecall': 0, 'selfdestruct': 0, 'staticcall': 2}
----
thinking
**Planning EVM disassembly for callsite analysis**
I’m preparing to write a Python disassembler to parse runtime bytecode and identify instructions around callsite PCs. This will help reveal call targets and values by mapping byte offsets to opcodes and immediates, since existing data lacks full detail. By inspecting instructions around callsites, I hope to clarify whether external calls are truly untrusted or false positives.
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode_hex=data['artifact']['runtime_bytecode']['full']
if bytecode_hex.startswith('0x'):
bytecode_hex=bytecode_hex[2:]
bytecode=bytes.fromhex(bytecode_hex)
# opcode map
opmap={}
# fill op names
for i in range(0x00,0x100):
opmap[i]=f'OP_{i:02X}'
# common ops
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',
0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
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():
opmap[k]=v
# disassemble
ins=[]
pc=0
b=bytecode
while pc < len(b):
op=b[pc]
name=opmap.get(op, f'OP_{op:02X}')
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=b[pc+1:pc+1+n]
ins.append((pc,name,imm.hex()))
pc+=1+n
else:
ins.append((pc,name,None))
pc+=1
# index by pc
pc_index={i[0]:idx for idx,i in enumerate(ins)}
call_pcs=[3792,3977,4246,4529,5146,7103,12180,13007,13822]
for call_pc in call_pcs:
idx=pc_index.get(call_pc)
if idx is None:
print('no instruction at',call_pc)
continue
start=max(0,idx-12)
end=min(len(ins), idx+8)
print('\\n-- context for pc',call_pc,'--')
for j in range(start,end):
pc,name,imm=ins[j]
if imm is not None:
print(f'{pc:05d}: {name} 0x{imm}')
else:
print(f'{pc:05d}: {name}')
PY" in /tmp/codex-5aswk2f_ succeeded in 79ms:
-- context for pc 3792 --
03777: EXTCODESIZE
03778: ISZERO
03779: DUP1
03780: ISZERO
03781: PUSH2 0x0ecd
03784: JUMPI
03785: PUSH1 0x00
03787: DUP1
03788: REVERT
03789: JUMPDEST
03790: POP
03791: GAS
03792: CALL
03793: ISZERO
03794: DUP1
03795: ISZERO
03796: PUSH2 0x0ee1
03799: JUMPI
thinking
**Analyzing call target resolution**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode_hex=data['artifact']['runtime_bytecode']['full']
if bytecode_hex.startswith('0x'):
bytecode_hex=bytecode_hex[2:]
bytecode=bytes.fromhex(bytecode_hex)
# opcode map
opmap={}
for i in range(0x00,0x100):
opmap[i]=f'OP_{i:02X}'
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',
0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
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():
opmap[k]=v
# disassemble
ins=[]
pc=0
b=bytecode
while pc < len(b):
op=b[pc]
name=opmap.get(op, f'OP_{op:02X}')
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=b[pc+1:pc+1+n]
ins.append((pc,name,imm.hex()))
pc+=1+n
else:
ins.append((pc,name,None))
pc+=1
# index by pc
pc_index={i[0]:idx for idx,i in enumerate(ins)}
call_pcs=[3792,3977,4529,5146,7103,12180,13007,13822]
for call_pc in call_pcs:
idx=pc_index.get(call_pc)
if idx is None:
print('no instruction at',call_pc)
continue
start=max(0,idx-40)
end=min(len(ins), idx+15)
print('\\n-- extended context for pc',call_pc,'--')
for j in range(start,end):
pc,name,imm=ins[j]
if imm is not None:
print(f'{pc:05d}: {name} 0x{imm}')
else:
print(f'{pc:05d}: {name}')
PY" in /tmp/codex-5aswk2f_ succeeded in 73ms:
-- extended context for pc 3792 --
03735: DUP3
03736: PUSH1 0x40
03738: MLOAD
03739: DUP3
03740: PUSH4 0xffffffff
03745: AND
03746: PUSH1 0xe0
03748: SHL
03749: DUP2
03750: MSTORE
03751: PUSH1 0x04
03753: ADD
03754: PUSH2 0x0eb3
03757: SWAP2
03758: SWAP1
03759: PUSH2 0x3ce6
03762: JUMP
03763: JUMPDEST
thinking
**Investigating low-level CALL patterns and value handling**
I'm examining EVM CALL instruction sequences to understand how calls with ETH value are made and whether they pose reentrancy risks. I’m parsing stack usages, symbolic addresses, and constant endpoints, trying to identify trusted versus untrusted calls, especially focusing on withdraw-like functions that use call with full gas, which might open reentrancy vulnerabilities without proper guards. I'll also locate relevant function selectors in the bytecode to analyze these vulnerable code paths more precisely.
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode_hex=data['artifact']['runtime_bytecode']['full']
if bytecode_hex.startswith('0x'):
bytecode_hex=bytecode_hex[2:]
bytecode=bytes.fromhex(bytecode_hex)
# simple disasm to map PUSH4 values to pcs
pcs=[]
pc=0
while pc < len(bytecode):
op=bytecode[pc]
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=bytecode[pc+1:pc+1+n]
if op==0x63 and n==4:
pcs.append((pc, imm.hex()))
pc+=1+n
else:
pc+=1
# find selector 2e1a7d4d
for pc,val in pcs:
if val=='2e1a7d4d':
print('PUSH4 0x2e1a7d4d at pc', pc)
# also find 0xd0e30db0
for pc,val in pcs:
if val=='d0e30db0':
print('PUSH4 0xd0e30db0 at pc', pc)
PY" in /tmp/codex-5aswk2f_ succeeded in 45ms:
PUSH4 0x2e1a7d4d at pc 534
PUSH4 0xd0e30db0 at pc 146
thinking
**Analyzing external calls and reentrancy risks**
I'm investigating the dispatch function's external calls, trying to infer which belong to withdraw operations by spotting typical ETH transfers and examining stack states near CALL instructions. Since reentrancy guards might be used but aren't obvious from bytecode alone, I'm wary of potential vulnerabilities when calls send ETH to computed addresses without clear checks. I'll piece together function mappings from program counters and explore call graph edges to identify which functions invoke these calls to better assess risks.
exec
/bin/bash -lc "python - <<'PY'
import json
from collections import defaultdict
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
graph=data['capability_graph']['graph_json']
# inspect edge format
edge=graph['edges'][0]
print(edge)
# find edges that link function -> callsite or callsite -> function
# show unique edge keys
print('edge keys', edge.keys())
# Build adjacency mapping
adj=defaultdict(list)
for e in graph['edges']:
src=e.get('source') or e.get('from') or e.get('src') or e.get('start')
dst=e.get('target') or e.get('to') or e.get('dst') or e.get('end')
if src is None or dst is None:
# attempt other keys
if 'src' in e and 'dst' in e:
src=e['src']; dst=e['dst']
if src is None or dst is None:
continue
adj[src].append(dst)
# list callsite nodes
callsites=[n['id'] for n in graph['nodes'] if n['type']=='callsite']
print('callsites', callsites)
# attempt to find functions that reach callsite via edges (direct)
func_nodes=[n for n in graph['nodes'] if n['type']=='function']
func_ids={n['id']:n for n in func_nodes}
# edges from function to callsite?
for cs in callsites:
# find sources that point to cs
sources=[src for src, dsts in adj.items() if cs in dsts]
funcs=[s for s in sources if s in func_ids]
if funcs:
print(cs, 'called from functions', funcs)
PY" in /tmp/codex-5aswk2f_ succeeded in 44ms:
{'from': 'bb:0', 'to': 'bb:607', 'type': 'control_flow'}
edge keys dict_keys(['from', 'to', 'type'])
callsites ['call:3792', 'call:3977', 'call:4246', 'call:4529', 'call:5146', 'call:7103', 'call:8507', 'call:12180', 'call:13007', 'call:13822']
thinking
**Examining edge connections for callsites**
exec
/bin/bash -lc "python - <<'PY'
import json
from collections import defaultdict
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
graph=data['capability_graph']['graph_json']
# index nodes by id
nodes={n['id']:n for n in graph['nodes']}
# collect edges where to is callsite
edges_to_call=[e for e in graph['edges'] if e.get('to','').startswith('call:')]
print('edges_to_call count', len(edges_to_call))
print(edges_to_call[:5])
# check edges from function to basic blocks? maybe type 'contains'
edge_types=set(e.get('type') for e in graph['edges'])
print('edge types', edge_types)
# find path from function to callsite: maybe function->basic_block, basic_block->callsite
# Build adjacency list
adj=defaultdict(list)
for e in graph['edges']:
adj[e['from']].append(e['to'])
# For each function, see if it can reach callsite via simple DFS but might be heavy; we can attempt for one callsite.
from collections import deque
funcs=[n['id'] for n in graph['nodes'] if n['type']=='function']
callsite='call:4529'
# Build reverse adjacency for quick source detection
rev=defaultdict(list)
for e in graph['edges']:
rev[e['to']].append(e['from'])
# find nearest function upstream by BFS on reverse graph
for cs in ['call:3792','call:3977','call:4529','call:5146','call:7103','call:12180','call:13007','call:13822']:
seen=set([cs])
dq=deque([(cs,0)])
found=None
while dq and found is None:
node,depth=dq.popleft()
for src in rev.get(node,[]):
if src in seen: continue
if src in funcs:
found=src
break
seen.add(src)
if depth<50:
dq.append((src,depth+1))
print(cs, 'closest function', found)
PY" in /tmp/codex-5aswk2f_ succeeded in 67ms:
edges_to_call count 10
[{'from': 'bb:3789', 'to': 'call:3792', 'type': 'contains'}, {'from': 'bb:3974', 'to': 'call:3977', 'type': 'contains'}, {'from': 'bb:4235', 'to': 'call:4246', 'type': 'contains'}, {'from': 'bb:4516', 'to': 'call:4529', 'type': 'contains'}, {'from': 'bb:5143', 'to': 'call:5146', 'type': 'contains'}]
edge types {'control_flow', 'entry', 'control_flow_fallthrough', 'contains', 'capability'}
call:3792 closest function None
call:3977 closest function None
call:4529 closest function None
call:5146 closest function None
call:7103 closest function None
call:12180 closest function None
call:13007 closest function None
call:13822 closest function None
thinking
**Inspecting "entry" edge types**
exec
/bin/bash -lc "python - <<'PY'
import json
from collections import defaultdict
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
graph=data['capability_graph']['graph_json']
entry_edges=[e for e in graph['edges'] if e.get('type')=='entry']
print('entry edges count', len(entry_edges))
print(entry_edges[:5])
PY" in /tmp/codex-5aswk2f_ succeeded in 81ms:
entry edges count 34
[{'from': 'fn:0xdf2a5b3b', 'to': 'bb:3744095035', 'type': 'entry'}, {'from': 'fn:0xeab45d9c', 'to': 'bb:3951915703', 'type': 'entry'}, {'from': 'fn:0xeb8d72b7', 'to': 'bb:3982662748', 'type': 'entry'}, {'from': 'fn:0xed629c5c', 'to': 'bb:4076725131', 'type': 'entry'}, {'from': 'fn:0xf2fde38b', 'to': 'bb:4125932988', 'type': 'entry'}]
thinking
**Analyzing function entry PCs and callsites**
I'm noticing that function entry PCs seem hashed or misencoded, making it hard to map callsites to functions. The callsites use normal PC values, but function entries have huge IDs, likely hashed. This means I need to focus findings on callsites themselves, especially around external calls, potential reentrancy, and access control nuances. There's evidence of Ownable usage, but guard detection might be missing or inaccurate, so I want to check bytecode patterns for owner checks and scrutinize storage slots to understand state variables like owner and endpoint. I'll look for signs of reentrancy and risk from untrusted external calls, especially related to cross-chain messaging and withdraw logic.
exec
/bin/bash -lc 'rg -n "storage_slots|slots" BYTECODE_BUNDLE.json | head -n 20' in /tmp/codex-5aswk2f_ succeeded in 8ms:
30291: "slots": [
30446: "slots": [
30601: "slots": [
30756: "slots": [
30911: "slots": [
31066: "slots": [
31221: "slots": [
31376: "slots": [
31531: "slots": [
31686: "slots": [
31841: "slots": [
31996: "slots": [
32151: "slots": [
32306: "slots": [
32461: "slots": [
32616: "slots": [
32771: "slots": [
32926: "slots": [
33081: "slots": [
33236: "slots": [
thinking
**Analyzing external call risks and access controls**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode_hex=data['artifact']['runtime_bytecode']['full']
if bytecode_hex.startswith('0x'):
bytecode_hex=bytecode_hex[2:]
bytecode=bytes.fromhex(bytecode_hex)
# disassemble
opmap={}
for i in range(256):
opmap[i]=f'OP_{i:02X}'
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',
0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
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():
opmap[k]=v
ins=[]
pc=0
b=bytecode
while pc < len(b):
op=b[pc]
name=opmap.get(op, f'OP_{op:02X}')
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=b[pc+1:pc+1+n]
ins.append((pc,name,imm.hex()))
pc+=1+n
else:
ins.append((pc,name,None))
pc+=1
pc_index={i[0]:idx for idx,i in enumerate(ins)}
call_pc=4529
idx=pc_index[call_pc]
start=max(0,idx-120)
end=min(len(ins), idx+20)
for j in range(start,end):
pc,name,imm=ins[j]
if imm is not None:
print(f'{pc:05d}: {name} 0x{imm}')
else:
print(f'{pc:05d}: {name}')
PY" in /tmp/codex-5aswk2f_ succeeded in 61ms:
04282: DUP1
04283: PUSH1 0x40
04285: MSTORE
04286: POP
04287: DUP2
04288: ADD
04289: SWAP1
04290: PUSH2 0x10cb
04293: SWAP2
04294: SWAP1
04295: PUSH2 0x462f
04298: JUMP
04299: JUMPDEST
04300: SWAP3
04301: POP
04302: SWAP3
04303: POP
04304: POP
04305: SWAP8
04306: POP
thinking
**Analyzing reentrancy guard usage**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode_hex=data['artifact']['runtime_bytecode']['full']
if bytecode_hex.startswith('0x'):
bytecode_hex=bytecode_hex[2:]
bytecode=bytes.fromhex(bytecode_hex)
# disassemble
opmap={}
for i in range(256):
opmap[i]=f'OP_{i:02X}'
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',
0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
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():
opmap[k]=v
ins=[]
pc=0
b=bytecode
while pc < len(b):
op=b[pc]
name=opmap.get(op, f'OP_{op:02X}')
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=b[pc+1:pc+1+n]
ins.append((pc,name,imm.hex()))
pc+=1+n
else:
ins.append((pc,name,None))
pc+=1
pc_index={i[0]:idx for idx,i in enumerate(ins)}
call_pc=13822
idx=pc_index[call_pc]
start=max(0,idx-120)
end=min(len(ins), idx+20)
for j in range(start,end):
pc,name,imm=ins[j]
if imm is not None:
print(f'{pc:05d}: {name} 0x{imm}')
else:
print(f'{pc:05d}: {name}')
PY" in /tmp/codex-5aswk2f_ succeeded in 84ms:
13566: MLOAD
13567: LT
13568: ISZERO
13569: PUSH2 0x353f
13572: JUMPI
13573: PUSH1 0x40
13575: MLOAD
13576: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
13609: DUP2
13610: MSTORE
13611: PUSH1 0x04
13613: ADD
13614: PUSH2 0x3536
13617: SWAP1
13618: PUSH2 0x5de1
13621: JUMP
13622: JUMPDEST
13623: PUSH1 0x40
13625: MLOAD
13626: DUP1
thinking
**Analyzing potential reentrancy risks**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode_hex=data['artifact']['runtime_bytecode']['full']
if bytecode_hex.startswith('0x'):
bytecode_hex=bytecode_hex[2:]
bytecode=bytes.fromhex(bytecode_hex)
# disassemble
opmap={}
for i in range(256):
opmap[i]=f'OP_{i:02X}'
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',
0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
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():
opmap[k]=v
ins=[]
pc=0
b=bytecode
while pc < len(b):
op=b[pc]
name=opmap.get(op, f'OP_{op:02X}')
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=b[pc+1:pc+1+n]
ins.append((pc,name,imm.hex()))
pc+=1+n
else:
ins.append((pc,name,None))
pc+=1
pc_index={i[0]:idx for idx,i in enumerate(ins)}
call_pc=12180
idx=pc_index[call_pc]
start=max(0,idx-120)
end=min(len(ins), idx+30)
for j in range(start,end):
pc,name,imm=ins[j]
if imm is not None:
print(f'{pc:05d}: {name} 0x{imm}')
else:
print(f'{pc:05d}: {name}')
PY" in /tmp/codex-5aswk2f_ succeeded in 70ms:
12022: POP
12023: PUSH1 0x20
12025: DUP2
12026: ADD
12027: SWAP1
12028: POP
12029: PUSH2 0x2ee4
12032: JUMP
12033: JUMPDEST
12034: POP
12035: DUP7
12036: DUP6
12037: MSTORE
12038: PUSH1 0x1f
12040: NOT
12041: PUSH1 0x1f
12043: DUP4
12044: ADD
12045: AND
12046: PUSH1 0x40
thinking
**Analyzing unchecked call return and reentrancy risks**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode_hex=data['artifact']['runtime_bytecode']['full']
if bytecode_hex.startswith('0x'):
bytecode_hex=bytecode_hex[2:]
bytecode=bytes.fromhex(bytecode_hex)
# disassemble
opmap={}
for i in range(256):
opmap[i]=f'OP_{i:02X}'
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',
0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
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():
opmap[k]=v
ins=[]
pc=0
b=bytecode
while pc < len(b):
op=b[pc]
name=opmap.get(op, f'OP_{op:02X}')
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=b[pc+1:pc+1+n]
ins.append((pc,name,imm.hex()))
pc+=1+n
else:
ins.append((pc,name,None))
pc+=1
pc_index={i[0]:idx for idx,i in enumerate(ins)}
call_pc=13822
idx=pc_index[call_pc]
start=max(0,idx-200)
end=min(len(ins), idx+10)
ss=[(pc,name,imm) for pc,name,imm in ins[start:end] if name=='SSTORE']
print('SSTOREs near call', ss)
PY" in /tmp/codex-5aswk2f_ succeeded in 111ms:
SSTOREs near call []
thinking
**Analyzing external calls and symbolic stack**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode_hex=data['artifact']['runtime_bytecode']['full']
if bytecode_hex.startswith('0x'):
bytecode_hex=bytecode_hex[2:]
bytecode=bytes.fromhex(bytecode_hex)
# disassemble into list with pc
ops=[]
pc=0
while pc < len(bytecode):
op=bytecode[pc]
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=bytecode[pc+1:pc+1+n]
ops.append((pc, op, imm))
pc+=1+n
else:
ops.append((pc, op, None))
pc+=1
# Build map pc->index
pc_index={pc:i for i,(pc,op,imm) in enumerate(ops)}
# opcode names
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',
0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
# simple symbolic executor for linear segment
def simulate(start_pc, end_pc, stack_depth=20):
stack=[f's{i}' for i in range(stack_depth)] # s0 top? We'll treat stack[0] as top
mem={}
pc=start_pc
idx=pc_index[pc]
while idx < len(ops):
pc,op,imm=ops[idx]
name=names.get(op,f'OP_{op:02X}')
# print(pc, name, imm.hex() if imm else '')
if pc==end_pc:
# stop before executing end_pc
break
# handle
if 0x60 <= op <= 0x7f:
stack.insert(0, f'0x{imm.hex()}')
elif 0x80 <= op <= 0x8f:
n=op-0x7f
if len(stack) >= n:
stack.insert(0, stack[n-1])
else:
stack.insert(0, f'unk_dup{n}')
elif 0x90 <= op <= 0x9f:
n=op-0x8f
if len(stack) > n:
stack[0], stack[n] = stack[n], stack[0]
elif op==0x50: # POP
if stack: stack.pop(0)
elif op==0x52: # MSTORE
if len(stack)>=2:
offset=stack.pop(0)
value=stack.pop(0)
mem[offset]=value
elif op==0x51: # MLOAD
if stack:
offset=stack.pop(0)
val=mem.get(offset, f'mem[{offset}]')
stack.insert(0, val)
elif op==0x54: # SLOAD
if stack:
slot=stack.pop(0)
stack.insert(0, f'sload[{slot}]')
elif op==0x55: # SSTORE
if len(stack)>=2:
slot=stack.pop(0)
val=stack.pop(0)
elif op in (0x01,0x03,0x02,0x04,0x10,0x11,0x14,0x15,0x16,0x17,0x18,0x1b,0x1c,0x1d,0x19,0x1a,0x20):
# binary/unary ops: pop args and push expr
if op==0x15 or op==0x19:
if stack:
a=stack.pop(0)
stack.insert(0, f'{name}({a})')
else:
if len(stack)>=2:
a=stack.pop(0)
b=stack.pop(0)
stack.insert(0, f'{name}({a},{b})')
elif op==0x5a: # GAS
stack.insert(0,'gas')
elif op==0x33: # CALLER
stack.insert(0,'caller')
elif op==0x30: # ADDRESS
stack.insert(0,'address')
elif op==0x34: # CALLVALUE
stack.insert(0,'callvalue')
elif op==0x36: # CALLDATASIZE
stack.insert(0,'calldatasize')
elif op==0x35: # CALLDATALOAD
if stack:
ofs=stack.pop(0)
stack.insert(0, f'calldata[{ofs}]')
elif op==0x37: # CALLDATACOPY
# pop 3
for _ in range(3):
if stack: stack.pop(0)
elif op==0x3d: # RETURNDATASIZE
stack.insert(0,'returndatasize')
elif op==0x3e: # RETURNDATACOPY
for _ in range(3):
if stack: stack.pop(0)
elif op==0x5b: # JUMPDEST
pass
elif op==0xf1: # CALL
# pop 7, push success
args=[stack.pop(0) if stack else 'unk' for _ in range(7)]
# args order: gas, to, value, in_offset, in_size, out_offset, out_size
gas,to,value,inoff,insz,outoff,outsz=args
stack.insert(0, f'call_success')
return {'pc':pc,'gas':gas,'to':to,'value':value,'args':args,'stack':stack}
# ignore others
idx+=1
return None
# simulate for call at 12180 starting at 12074
res=simulate(12074,12180, stack_depth=25)
print('call12180', res)
# simulate for call at 13822 starting at 13761
res=simulate(13761,13822, stack_depth=25)
print('call13822', res)
# simulate for call at 4529 starting at 4469
res=simulate(4469,4529, stack_depth=25)
print('call4529', res)
PY" in /tmp/codex-5aswk2f_ succeeded in 51ms:
call12180 None
call13822 None
call4529 None
thinking
**Adjusting simulation to include CALL execution**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode_hex=data['artifact']['runtime_bytecode']['full']
if bytecode_hex.startswith('0x'):
bytecode_hex=bytecode_hex[2:]
bytecode=bytes.fromhex(bytecode_hex)
# disassemble
ops=[]
pc=0
while pc < len(bytecode):
op=bytecode[pc]
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=bytecode[pc+1:pc+1+n]
ops.append((pc, op, imm))
pc+=1+n
else:
ops.append((pc, op, None))
pc+=1
pc_index={pc:i for i,(pc,op,imm) in enumerate(ops)}
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',
0x60:'PUSH1',0x61:'PUSH2',0x62:'PUSH3',0x63:'PUSH4',0x64:'PUSH5',0x65:'PUSH6',0x66:'PUSH7',0x67:'PUSH8',0x68:'PUSH9',0x69:'PUSH10',0x6a:'PUSH11',0x6b:'PUSH12',0x6c:'PUSH13',0x6d:'PUSH14',0x6e:'PUSH15',0x6f:'PUSH16',0x70:'PUSH17',0x71:'PUSH18',0x72:'PUSH19',0x73:'PUSH20',0x74:'PUSH21',0x75:'PUSH22',0x76:'PUSH23',0x77:'PUSH24',0x78:'PUSH25',0x79:'PUSH26',0x7a:'PUSH27',0x7b:'PUSH28',0x7c:'PUSH29',0x7d:'PUSH30',0x7e:'PUSH31',0x7f:'PUSH32',
0x80:'DUP1',0x81:'DUP2',0x82:'DUP3',0x83:'DUP4',0x84:'DUP5',0x85:'DUP6',0x86:'DUP7',0x87:'DUP8',0x88:'DUP9',0x89:'DUP10',0x8a:'DUP11',0x8b:'DUP12',0x8c:'DUP13',0x8d:'DUP14',0x8e:'DUP15',0x8f:'DUP16',
0x90:'SWAP1',0x91:'SWAP2',0x92:'SWAP3',0x93:'SWAP4',0x94:'SWAP5',0x95:'SWAP6',0x96:'SWAP7',0x97:'SWAP8',0x98:'SWAP9',0x99:'SWAP10',0x9a:'SWAP11',0x9b:'SWAP12',0x9c:'SWAP13',0x9d:'SWAP14',0x9e:'SWAP15',0x9f:'SWAP16',
0xa0:'LOG0',0xa1:'LOG1',0xa2:'LOG2',0xa3:'LOG3',0xa4:'LOG4',
0xf0:'CREATE',0xf1:'CALL',0xf2:'CALLCODE',0xf3:'RETURN',0xf4:'DELEGATECALL',0xf5:'CREATE2',0xfa:'STATICCALL',0xfd:'REVERT',0xfe:'INVALID',0xff:'SELFDESTRUCT'
}
def simulate(start_pc, call_pc, stack_depth=30, max_steps=400):
stack=[f's{i}' for i in range(stack_depth)] # s0 top
mem={}
idx=pc_index[start_pc]
steps=0
while idx < len(ops) and steps < max_steps:
pc,op,imm=ops[idx]
name=names.get(op,f'OP_{op:02X}')
if op==0xf1 and pc==call_pc:
# CALL: gas,to,value, in_offset, in_size, out_offset, out_size
args=[stack.pop(0) if stack else 'unk' for _ in range(7)]
gas,to,value,inoff,insz,outoff,outsz=args
return {'pc':pc,'gas':gas,'to':to,'value':value,'args':args,'stack_top':stack[:5]}
if 0x60 <= op <= 0x7f:
stack.insert(0, f'0x{imm.hex()}')
elif 0x80 <= op <= 0x8f:
n=op-0x7f
stack.insert(0, stack[n-1] if len(stack)>=n else f'unk_dup{n}')
elif 0x90 <= op <= 0x9f:
n=op-0x8f
if len(stack)>n:
stack[0], stack[n]=stack[n], stack[0]
elif op==0x50:
if stack: stack.pop(0)
elif op==0x52:
if len(stack)>=2:
offset=stack.pop(0); value=stack.pop(0); mem[offset]=value
elif op==0x51:
if stack:
offset=stack.pop(0); stack.insert(0, mem.get(offset, f'mem[{offset}]'))
elif op==0x54:
if stack:
slot=stack.pop(0); stack.insert(0, f'sload[{slot}]')
elif op==0x55:
if len(stack)>=2:
slot=stack.pop(0); val=stack.pop(0)
elif op in (0x01,0x03,0x02,0x04,0x10,0x11,0x14,0x15,0x16,0x17,0x18,0x1b,0x1c,0x1d,0x19,0x1a,0x20):
if op==0x15 or op==0x19:
if stack:
a=stack.pop(0); stack.insert(0, f'{name}({a})')
else:
if len(stack)>=2:
a=stack.pop(0); b=stack.pop(0); stack.insert(0, f'{name}({a},{b})')
elif op==0x5a:
stack.insert(0,'gas')
elif op==0x33:
stack.insert(0,'caller')
elif op==0x30:
stack.insert(0,'address')
elif op==0x34:
stack.insert(0,'callvalue')
elif op==0x36:
stack.insert(0,'calldatasize')
elif op==0x35:
if stack:
ofs=stack.pop(0); stack.insert(0,f'calldata[{ofs}]')
elif op==0x37:
for _ in range(3):
if stack: stack.pop(0)
elif op==0x3d:
stack.insert(0,'returndatasize')
elif op==0x3e:
for _ in range(3):
if stack: stack.pop(0)
elif op==0x5b:
pass
# ignore control flow (jumps)
idx+=1
steps+=1
return None
for start,call in [(12074,12180),(13761,13822),(4469,4529)]:
res=simulate(start,call,stack_depth=40)
print('start',start,'call',call,'->',res)
PY" in /tmp/codex-5aswk2f_ succeeded in 58ms:
start 12074 call 12180 -> {'pc': 12180, 'gas': '0x00', 'to': '0x00', 'value': '0x00', 'args': ['0x00', '0x00', '0x00', 'ADD(AND(0xffff,s1),0x20)', 'mem[AND(0xffff,s1)]', '0x00', '0x00'], 'stack_top': ['ISZERO(0x3e26)', 'mem[0x40]', '0x2f50', '0x2f51', 'ISZERO(GT(AND(0xffff,s1),0xffffffffffffffff))']}
start 13761 call 13822 -> {'pc': 13822, 'gas': 'gas', 'to': '0x35f1', 'value': 'mem[0x40]', 'args': ['gas', '0x35f1', 'mem[0x40]', 'mem[0x40]', 'SUB(0x476d,mem[0x40])', 'mem[0x40]', '0x00'], 'stack_top': ['0x476d', 'mem[0x40]', '0x35f1', '0x2a1b', 'AND(0xffffffffffffffffffffffffffffffffffffffff,s0)']}
start 4469 call 4529 -> {'pc': 4529, 'gas': 'gas', 'to': '0x11a4', 'value': 'mem[0x40]', 'args': ['gas', '0x11a4', 'mem[0x40]', 'mem[0x40]', 'SUB(0x476d,mem[0x40])', 'mem[0x40]', '0x00'], 'stack_top': ['0x476d', 'mem[0x40]', '0x11a4', '0x2a1b', 'AND(0xffffffffffffffffffffffffffffffffffffffff,caller)']}
thinking
**Evaluating symbolic simulation limits**
This symbolic simulation is very rough due to ignoring control flow and memory semantics, so its results are likely unreliable. I see it suggests an obviously wrong call with zero gas, zero value, and zero target because we don’t track real values or memory. Given this, I’ll avoid deep symbolic reasoning and instead look for the constant address in the code via disassembly to check if any CALL uses it nearby. I’ll search for PUSH20 0x66a71dce and inspect calls around it.
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode_hex=data['artifact']['runtime_bytecode']['full']
if bytecode_hex.startswith('0x'):
bytecode_hex=bytecode_hex[2:]
bytecode=bytes.fromhex(bytecode_hex)
# disassemble into list
ops=[]
pc=0
while pc < len(bytecode):
op=bytecode[pc]
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=bytecode[pc+1:pc+1+n]
ops.append((pc, op, imm))
pc+=1+n
else:
ops.append((pc, op, None))
pc+=1
# find PUSH20 0x66a71dce...
addr='66a71dcef29a0ffbdbe3c6a460a3b5bc225cd675'
indices=[i for i,(pc,op,imm) in enumerate(ops) if op==0x73 and imm.hex()==addr]
print('found',len(indices))
for idx in indices[:5]:
pc,op,imm=ops[idx]
print('pc',pc)
# show context around this push20
for j in range(max(0,idx-8), min(len(ops), idx+8)):
pc2,op2,imm2=ops[j]
name = 'PUSH20' if op2==0x73 else hex(op2)
if imm2 is not None:
print(f'{pc2:05d}: {name} 0x{imm2.hex()}')
else:
print(f'{pc2:05d}: {name}')
print('---')
PY" in /tmp/codex-5aswk2f_ succeeded in 48ms:
found 0
thinking
**Searching for PUSH32 opcode with address suffix**
exec
/bin/bash -lc "python - <<'PY'
import json
with open('BYTECODE_BUNDLE.json') as f:
data=json.load(f)
bytecode_hex=data['artifact']['runtime_bytecode']['full']
if bytecode_hex.startswith('0x'):
bytecode_hex=bytecode_hex[2:]
bytecode=bytes.fromhex(bytecode_hex)
ops=[]
pc=0
while pc < len(bytecode):
op=bytecode[pc]
if 0x60 <= op <= 0x7f:
n=op-0x5f
imm=bytecode[pc+1:pc+1+n]
ops.append((pc, op, imm))
pc+=1+n
else:
ops.append((pc, op, None))
pc+=1
addr='66a71dcef29a0ffbdbe3c6a460a3b5bc225cd675'
indices=[]
for i,(pc,op,imm) in enumerate(ops):
if op==0x7f and imm.hex().endswith(addr):
indices.append(i)
print('found',len(indices))
for idx in indices[:3]:
pc,op,imm=ops[idx]
print('pc',pc,'imm',imm.hex())
for j in range(max(0,idx-6), min(len(ops), idx+6)):
pc2,op2,imm2=ops[j]
name=f'PUSH{op2-0x5f}' if 0x60<=op2<=0x7f else hex(op2)
if imm2 is not None:
print(f'{pc2:05d}: {name} 0x{imm2.hex()}')
else:
print(f'{pc2:05d}: {name}')
print('---')
PY" in /tmp/codex-5aswk2f_ succeeded in 49ms:
found 9
pc 2729 imm 00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675
02723: 0x91
02724: 0x3
02725: 0x90
02726: 0xa2
02727: 0x56
02728: 0x5b
02729: PUSH32 0x00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675
02762: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
02783: 0x16
02784: PUSH2 0x0ae7
02787: PUSH2 0x22df
02790: 0x56
---
pc 3675 imm 00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675
03665: 0x56
03666: 0x5b
03667: PUSH2 0x0e5a
03670: PUSH2 0x24c6
thinking
**Analyzing external calls and call success checks**
exec
/bin/bash -lc "python - <<'PY'
pcs=[3792,3977,4529,5146,7103,12180,13007,13822]
for pc in pcs:
print(pc, hex(pc))
PY" in /tmp/codex-5aswk2f_ succeeded in 16ms:
3792 0xed0
3977 0xf89
4529 0x11b1
5146 0x141a
7103 0x1bbf
12180 0x2f94
13007 0x32cf
13822 0x35fe
thinking
**Summarizing bytecode CALL findings**
I'm carefully reviewing bytecode CALL sites for potential issues, distinguishing between computed CALLs that might be attacker-controlled and CALLs lacking clear success checks. I’m preparing a JSON report with severity levels, categories, exploit scenarios, and recommendations, ensuring to highlight uncertainties from static analysis and clearly citing evidence from callsite PCs and disassembly.
codex
{"no_findings":false,"summary":"Bytecode contains multiple low-level CALL sites with computed targets/values and at least one CALL where success handling is unclear; depending on how inputs are controlled at runtime, this could enable unintended external interactions or silent failures.","findings":[{"severity":"medium","category":"other","title":"Computed CALL targets/values may allow unintended external calls with ETH","exploit_scenario":"If any of the computed CALL targets/values are influenced by untrusted inputs (e.g., user-provided addresses or payloads), an attacker could trigger calls to arbitrary contracts, potentially transferring ETH or reentering before state updates. The detector trace saw a constant self-target in one run, but this was not confirmed and may be input-dependent.","recommendation":"Constrain CALL targets to trusted addresses (allowlist or immutable endpoint), validate value sources, and ensure state is updated before external calls. Consider reentrancy guards on external-call paths and explicit success checks when failure should revert.","evidence":"detector_findings: \"Untrusted CALL target/value reachable\" (call_count=8) with target/value marked computed; callsites list shows CALLs at pc 0x0ed0, 0x0f89, 0x11b1, 0x141a, 0x1bbf, 0x2f94, 0x32cf, 0x35fe. Validation_json shows a single trace with constant self-target but not confirmed, so input sensitivity remains uncertain.","locations":["pc:0xed0","pc:0xf89","pc:0x11b1","pc:0x141a","pc:0x1bbf","pc:0x2f94","pc:0x32cf","pc:0x35fe"]},{"severity":"low","category":"other","title":"CALL success handling unclear at pc 0x2f94 (possible silent failure)","exploit_scenario":"If this CALL is used to forward value or invoke a receiver hook, and the success flag is ignored, a failed call could leave token/accounting state updated while the external effect did not occur, leading to stuck funds or inconsistent balances. Bytecode-only analysis cannot confirm intended semantics.","recommendation":"Explicitly check the CALL success flag and revert or store failed payloads for retry, depending on intended nonblocking behavior. Ensure accounting state changes are aligned with call outcomes.","evidence":"callsites entry for pc 12180 (0x2f94) shows CALL with `returndata_checked: null`; the immediate post-call sequence does not show a clear success gate in the local snippet, so failure handling is uncertain.","locations":["pc:0x2f94"]}]}
tokens used
109,273
{
"codex": {
"ran_at": "2026-01-10T22:04:04.612230+00:00",
"returncode": 0
},
"project": {
"mode": "bytecode",
"bytecode_length": 48672,
"bytecode_truncated": false,
"capability_graph_present": true,
"analysis_artifact_present": true
},
"summary": "Bytecode contains multiple low-level CALL sites with computed targets/values and at least one CALL where success handling is unclear; depending on how inputs are controlled at runtime, this could enable unintended external interactions or silent failures.",
"raw_final": {
"summary": "Bytecode contains multiple low-level CALL sites with computed targets/values and at least one CALL where success handling is unclear; depending on how inputs are controlled at runtime, this could enable unintended external interactions or silent failures.",
"findings": [
{
"title": "Computed CALL targets/values may allow unintended external calls with ETH",
"category": "other",
"evidence": "detector_findings: \"Untrusted CALL target/value reachable\" (call_count=8) with target/value marked computed; callsites list shows CALLs at pc 0x0ed0, 0x0f89, 0x11b1, 0x141a, 0x1bbf, 0x2f94, 0x32cf, 0x35fe. Validation_json shows a single trace with constant self-target but not confirmed, so input sensitivity remains uncertain.",
"severity": "medium",
"locations": [
"pc:0xed0",
"pc:0xf89",
"pc:0x11b1",
"pc:0x141a",
"pc:0x1bbf",
"pc:0x2f94",
"pc:0x32cf",
"pc:0x35fe"
],
"recommendation": "Constrain CALL targets to trusted addresses (allowlist or immutable endpoint), validate value sources, and ensure state is updated before external calls. Consider reentrancy guards on external-call paths and explicit success checks when failure should revert.",
"exploit_scenario": "If any of the computed CALL targets/values are influenced by untrusted inputs (e.g., user-provided addresses or payloads), an attacker could trigger calls to arbitrary contracts, potentially transferring ETH or reentering before state updates. The detector trace saw a constant self-target in one run, but this was not confirmed and may be input-dependent."
},
{
"title": "CALL success handling unclear at pc 0x2f94 (possible silent failure)",
"category": "other",
"evidence": "callsites entry for pc 12180 (0x2f94) shows CALL with `returndata_checked: null`; the immediate post-call sequence does not show a clear success gate in the local snippet, so failure handling is uncertain.",
"severity": "low",
"locations": [
"pc:0x2f94"
],
"recommendation": "Explicitly check the CALL success flag and revert or store failed payloads for retry, depending on intended nonblocking behavior. Ensure accounting state changes are aligned with call outcomes.",
"exploit_scenario": "If this CALL is used to forward value or invoke a receiver hook, and the success flag is ignored, a failed call could leave token/accounting state updated while the external effect did not occur, leading to stuck funds or inconsistent balances. Bytecode-only analysis cannot confirm intended semantics."
}
],
"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 0x025f 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x7533d788 00000019: GT 0000001a: PUSH2 0x0144 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xbaf3292d 00000024: GT 00000025: PUSH2 0x00b6 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xdf2a5b3b 0000002f: GT 00000030: PUSH2 0x007a 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xdf2a5b3b 0000003a: EQ 0000003b: PUSH2 0x0942 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xeab45d9c 00000045: EQ 00000046: PUSH2 0x096b 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xeb8d72b7 00000050: EQ 00000051: PUSH2 0x0994 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xed629c5c 0000005b: EQ 0000005c: PUSH2 0x09bd 0000005f: JUMPI 00000060: DUP1 00000061: PUSH4 0xf2fde38b 00000066: EQ 00000067: PUSH2 0x09e8 0000006a: JUMPI 0000006b: DUP1 0000006c: PUSH4 0xf5ecbdbc 00000071: EQ 00000072: PUSH2 0x0a11 00000075: JUMPI 00000076: PUSH2 0x026e 00000079: JUMP 0000007a: JUMPDEST 0000007b: DUP1 0000007c: PUSH4 0xbaf3292d 00000081: EQ 00000082: PUSH2 0x088d 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0xcbed8b9c 0000008c: EQ 0000008d: PUSH2 0x08b6 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0xd0e30db0 00000097: EQ 00000098: PUSH2 0x08df 0000009b: JUMPI 0000009c: DUP1 0000009d: PUSH4 0xd1deba1f 000000a2: EQ 000000a3: PUSH2 0x08e9 000000a6: JUMPI 000000a7: DUP1 000000a8: PUSH4 0xdd62ed3e 000000ad: EQ 000000ae: PUSH2 0x0905 000000b1: JUMPI 000000b2: PUSH2 0x026e 000000b5: JUMP 000000b6: JUMPDEST 000000b7: DUP1 000000b8: PUSH4 0x95d89b41 000000bd: GT 000000be: PUSH2 0x0108 000000c1: JUMPI 000000c2: DUP1 000000c3: PUSH4 0x95d89b41 000000c8: EQ 000000c9: PUSH2 0x0757 000000cc: JUMPI 000000cd: DUP1 000000ce: PUSH4 0x9f38369a 000000d3: EQ 000000d4: PUSH2 0x0782 000000d7: JUMPI 000000d8: DUP1 000000d9: PUSH4 0xa457c2d7 000000de: EQ 000000df: PUSH2 0x07bf 000000e2: JUMPI 000000e3: DUP1 000000e4: PUSH4 0xa6c3d165 000000e9: EQ 000000ea: PUSH2 0x07fc 000000ed: JUMPI 000000ee: DUP1 000000ef: PUSH4 0xa9059cbb 000000f4: EQ 000000f5: PUSH2 0x0825 000000f8: JUMPI 000000f9: DUP1 000000fa: PUSH4 0xb353aaa7 000000ff: EQ 00000100: PUSH2 0x0862 00000103: JUMPI 00000104: PUSH2 0x026e 00000107: JUMP 00000108: JUMPDEST 00000109: DUP1 0000010a: PUSH4 0x7533d788 0000010f: EQ 00000110: PUSH2 0x065c 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0x8cfd8f5c 0000011a: EQ 0000011b: PUSH2 0x0699 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0x8da5cb5b 00000125: EQ 00000126: PUSH2 0x06d6 00000129: JUMPI 0000012a: DUP1 0000012b: PUSH4 0x9358928b 00000130: EQ 00000131: PUSH2 0x0701 00000134: JUMPI 00000135: DUP1 00000136: PUSH4 0x950c8a74 0000013b: EQ 0000013c: PUSH2 0x072c 0000013f: JUMPI 00000140: PUSH2 0x026e 00000143: JUMP 00000144: JUMPDEST 00000145: DUP1 00000146: PUSH4 0x313ce567 0000014b: GT 0000014c: PUSH2 0x01dd 0000014f: JUMPI 00000150: DUP1 00000151: PUSH4 0x4c42899a 00000156: GT 00000157: PUSH2 0x01a1 0000015a: JUMPI 0000015b: DUP1 0000015c: PUSH4 0x4c42899a 00000161: EQ 00000162: PUSH2 0x055b 00000165: JUMPI 00000166: DUP1 00000167: PUSH4 0x51905636 0000016c: EQ 0000016d: PUSH2 0x0586 00000170: JUMPI 00000171: DUP1 00000172: PUSH4 0x5b8c41e6 00000177: EQ 00000178: PUSH2 0x05a2 0000017b: JUMPI 0000017c: DUP1 0000017d: PUSH4 0x66ad5c8a 00000182: EQ 00000183: PUSH2 0x05df 00000186: JUMPI 00000187: DUP1 00000188: PUSH4 0x70a08231 0000018d: EQ 0000018e: PUSH2 0x0608 00000191: JUMPI 00000192: DUP1 00000193: PUSH4 0x715018a6 00000198: EQ 00000199: PUSH2 0x0645 0000019c: JUMPI 0000019d: PUSH2 0x026e 000001a0: JUMP 000001a1: JUMPDEST 000001a2: DUP1 000001a3: PUSH4 0x313ce567 000001a8: EQ 000001a9: PUSH2 0x0462 000001ac: JUMPI 000001ad: DUP1 000001ae: PUSH4 0x39509351 000001b3: EQ 000001b4: PUSH2 0x048d 000001b7: JUMPI 000001b8: DUP1 000001b9: PUSH4 0x3d8b38f6 000001be: EQ 000001bf: PUSH2 0x04ca 000001c2: JUMPI 000001c3: DUP1 000001c4: PUSH4 0x42d65a8d 000001c9: EQ 000001ca: PUSH2 0x0507 000001cd: JUMPI 000001ce: DUP1 000001cf: PUSH4 0x44770515 000001d4: EQ 000001d5: PUSH2 0x0530 000001d8: JUMPI 000001d9: PUSH2 0x026e 000001dc: JUMP 000001dd: JUMPDEST 000001de: DUP1 000001df: PUSH4 0x10ddb137 000001e4: GT 000001e5: PUSH2 0x0224 000001e8: JUMPI 000001e9: DUP1 000001ea: PUSH4 0x10ddb137 000001ef: EQ 000001f0: PUSH2 0x036a 000001f3: JUMPI 000001f4: DUP1 000001f5: PUSH4 0x18160ddd 000001fa: EQ 000001fb: PUSH2 0x0393 000001fe: JUMPI 000001ff: DUP1 00000200: PUSH4 0x23b872dd 00000205: EQ 00000206: PUSH2 0x03be 00000209: JUMPI 0000020a: DUP1 0000020b: PUSH4 0x2a205e3d 00000210: EQ 00000211: PUSH2 0x03fb 00000214: JUMPI 00000215: DUP1 00000216: PUSH4 0x2e1a7d4d 0000021b: EQ 0000021c: PUSH2 0x0439 0000021f: JUMPI 00000220: PUSH2 0x026e 00000223: JUMP 00000224: JUMPDEST 00000225: DUP1 00000226: PUSH3 0x1d3567 0000022a: EQ 0000022b: PUSH2 0x0273 0000022e: JUMPI 0000022f: DUP1 00000230: PUSH4 0x01ffc9a7 00000235: EQ 00000236: PUSH2 0x029c 00000239: JUMPI 0000023a: DUP1 0000023b: PUSH4 0x06fdde03 00000240: EQ 00000241: PUSH2 0x02d9 00000244: JUMPI 00000245: DUP1 00000246: PUSH4 0x07e0db17 0000024b: EQ 0000024c: PUSH2 0x0304 0000024f: JUMPI 00000250: DUP1 00000251: PUSH4 0x095ea7b3 00000256: EQ 00000257: PUSH2 0x032d 0000025a: JUMPI 0000025b: PUSH2 0x026e 0000025e: JUMP 0000025f: JUMPDEST 00000260: CALLDATASIZE 00000261: PUSH2 0x026e 00000264: JUMPI 00000265: PUSH2 0x026c 00000268: PUSH2 0x0a4e 0000026b: JUMP 0000026c: JUMPDEST 0000026d: STOP 0000026e: JUMPDEST 0000026f: PUSH1 0x00 00000271: DUP1 00000272: REVERT 00000273: JUMPDEST 00000274: CALLVALUE 00000275: DUP1 00000276: ISZERO 00000277: PUSH2 0x027f 0000027a: JUMPI 0000027b: PUSH1 0x00 0000027d: DUP1 0000027e: REVERT 0000027f: JUMPDEST 00000280: POP 00000281: PUSH2 0x029a 00000284: PUSH1 0x04 00000286: DUP1 00000287: CALLDATASIZE 00000288: SUB 00000289: DUP2 0000028a: ADD 0000028b: SWAP1 0000028c: PUSH2 0x0295 0000028f: SWAP2 00000290: SWAP1 00000291: PUSH2 0x3770 00000294: JUMP 00000295: JUMPDEST 00000296: PUSH2 0x0aa8 00000299: JUMP 0000029a: JUMPDEST 0000029b: STOP 0000029c: JUMPDEST 0000029d: CALLVALUE 0000029e: DUP1 0000029f: ISZERO 000002a0: PUSH2 0x02a8 000002a3: JUMPI 000002a4: PUSH1 0x00 000002a6: DUP1 000002a7: REVERT 000002a8: JUMPDEST 000002a9: POP 000002aa: PUSH2 0x02c3 000002ad: PUSH1 0x04 000002af: DUP1 000002b0: CALLDATASIZE 000002b1: SUB 000002b2: DUP2 000002b3: ADD 000002b4: SWAP1 000002b5: PUSH2 0x02be 000002b8: SWAP2 000002b9: SWAP1 000002ba: PUSH2 0x386f 000002bd: JUMP 000002be: JUMPDEST 000002bf: PUSH2 0x0cfe 000002c2: JUMP 000002c3: JUMPDEST 000002c4: PUSH1 0x40 000002c6: MLOAD 000002c7: PUSH2 0x02d0 000002ca: SWAP2 000002cb: SWAP1 000002cc: PUSH2 0x38b7 000002cf: JUMP 000002d0: JUMPDEST 000002d1: PUSH1 0x40 000002d3: MLOAD 000002d4: DUP1 000002d5: SWAP2 000002d6: SUB 000002d7: SWAP1 000002d8: RETURN 000002d9: JUMPDEST 000002da: CALLVALUE 000002db: DUP1 000002dc: ISZERO 000002dd: PUSH2 0x02e5 000002e0: JUMPI 000002e1: PUSH1 0x00 000002e3: DUP1 000002e4: REVERT 000002e5: JUMPDEST 000002e6: POP 000002e7: PUSH2 0x02ee 000002ea: PUSH2 0x0dc0 000002ed: JUMP 000002ee: JUMPDEST 000002ef: PUSH1 0x40 000002f1: MLOAD 000002f2: PUSH2 0x02fb 000002f5: SWAP2 000002f6: SWAP1 000002f7: PUSH2 0x3962 000002fa: JUMP 000002fb: JUMPDEST 000002fc: PUSH1 0x40 000002fe: MLOAD 000002ff: DUP1 00000300: SWAP2 00000301: SUB 00000302: SWAP1 00000303: RETURN 00000304: JUMPDEST 00000305: CALLVALUE 00000306: DUP1 00000307: ISZERO 00000308: PUSH2 0x0310 0000030b: JUMPI 0000030c: PUSH1 0x00 0000030e: DUP1 0000030f: REVERT 00000310: JUMPDEST 00000311: POP 00000312: PUSH2 0x032b 00000315: PUSH1 0x04 00000317: DUP1 00000318: CALLDATASIZE 00000319: SUB 0000031a: DUP2 0000031b: ADD 0000031c: SWAP1 0000031d: PUSH2 0x0326 00000320: SWAP2 00000321: SWAP1 00000322: PUSH2 0x3984 00000325: JUMP 00000326: JUMPDEST 00000327: PUSH2 0x0e52 0000032a: JUMP 0000032b: JUMPDEST 0000032c: STOP 0000032d: JUMPDEST 0000032e: CALLVALUE 0000032f: DUP1 00000330: ISZERO 00000331: PUSH2 0x0339 00000334: JUMPI 00000335: PUSH1 0x00 00000337: DUP1 00000338: REVERT 00000339: JUMPDEST 0000033a: POP 0000033b: PUSH2 0x0354 0000033e: PUSH1 0x04 00000340: DUP1 00000341: CALLDATASIZE 00000342: SUB 00000343: DUP2 00000344: ADD 00000345: SWAP1 00000346: PUSH2 0x034f 00000349: SWAP2 0000034a: SWAP1 0000034b: PUSH2 0x3a45 0000034e: JUMP 0000034f: JUMPDEST 00000350: PUSH2 0x0ee8 00000353: JUMP 00000354: JUMPDEST 00000355: PUSH1 0x40 00000357: MLOAD 00000358: PUSH2 0x0361 0000035b: SWAP2 0000035c: SWAP1 0000035d: PUSH2 0x38b7 00000360: JUMP 00000361: JUMPDEST 00000362: PUSH1 0x40 00000364: MLOAD 00000365: DUP1 00000366: SWAP2 00000367: SUB 00000368: SWAP1 00000369: RETURN 0000036a: JUMPDEST 0000036b: CALLVALUE 0000036c: DUP1 0000036d: ISZERO 0000036e: PUSH2 0x0376 00000371: JUMPI 00000372: PUSH1 0x00 00000374: DUP1 00000375: REVERT 00000376: JUMPDEST 00000377: POP 00000378: PUSH2 0x0391 0000037b: PUSH1 0x04 0000037d: DUP1 0000037e: CALLDATASIZE 0000037f: SUB 00000380: DUP2 00000381: ADD 00000382: SWAP1 00000383: PUSH2 0x038c 00000386: SWAP2 00000387: SWAP1 00000388: PUSH2 0x3984 0000038b: JUMP 0000038c: JUMPDEST 0000038d: PUSH2 0x0f0b 00000390: JUMP 00000391: JUMPDEST 00000392: STOP 00000393: JUMPDEST 00000394: CALLVALUE 00000395: DUP1 00000396: ISZERO 00000397: PUSH2 0x039f 0000039a: JUMPI 0000039b: PUSH1 0x00 0000039d: DUP1 0000039e: REVERT 0000039f: JUMPDEST 000003a0: POP 000003a1: PUSH2 0x03a8 000003a4: PUSH2 0x0fa1 000003a7: JUMP 000003a8: JUMPDEST 000003a9: PUSH1 0x40 000003ab: MLOAD 000003ac: PUSH2 0x03b5 000003af: SWAP2 000003b0: SWAP1 000003b1: PUSH2 0x3a94 000003b4: JUMP 000003b5: JUMPDEST 000003b6: PUSH1 0x40 000003b8: MLOAD 000003b9: DUP1 000003ba: SWAP2 000003bb: SUB 000003bc: SWAP1 000003bd: RETURN 000003be: JUMPDEST 000003bf: CALLVALUE 000003c0: DUP1 000003c1: ISZERO 000003c2: PUSH2 0x03ca 000003c5: JUMPI 000003c6: PUSH1 0x00 000003c8: DUP1 000003c9: REVERT 000003ca: JUMPDEST 000003cb: POP 000003cc: PUSH2 0x03e5 000003cf: PUSH1 0x04 000003d1: DUP1 000003d2: CALLDATASIZE 000003d3: SUB 000003d4: DUP2 000003d5: ADD 000003d6: SWAP1 000003d7: PUSH2 0x03e0 000003da: SWAP2 000003db: SWAP1 000003dc: PUSH2 0x3aaf 000003df: JUMP 000003e0: JUMPDEST 000003e1: PUSH2 0x0fab 000003e4: JUMP 000003e5: JUMPDEST 000003e6: PUSH1 0x40 000003e8: MLOAD 000003e9: PUSH2 0x03f2 000003ec: SWAP2 000003ed: SWAP1 000003ee: PUSH2 0x38b7 000003f1: JUMP 000003f2: JUMPDEST 000003f3: PUSH1 0x40 000003f5: MLOAD 000003f6: DUP1 000003f7: SWAP2 000003f8: SUB 000003f9: SWAP1 000003fa: RETURN 000003fb: JUMPDEST 000003fc: CALLVALUE 000003fd: DUP1 000003fe: ISZERO 000003ff: PUSH2 0x0407 00000402: JUMPI 00000403: PUSH1 0x00 00000405: DUP1 00000406: REVERT 00000407: JUMPDEST 00000408: POP 00000409: PUSH2 0x0422 0000040c: PUSH1 0x04 0000040e: DUP1 0000040f: CALLDATASIZE 00000410: SUB 00000411: DUP2 00000412: ADD 00000413: SWAP1 00000414: PUSH2 0x041d 00000417: SWAP2 00000418: SWAP1 00000419: PUSH2 0x3b2e 0000041c: JUMP 0000041d: JUMPDEST 0000041e: PUSH2 0x0fda 00000421: JUMP 00000422: JUMPDEST 00000423: PUSH1 0x40 00000425: MLOAD 00000426: PUSH2 0x0430 00000429: SWAP3 0000042a: SWAP2 0000042b: SWAP1 0000042c: PUSH2 0x3bea 0000042f: JUMP 00000430: JUMPDEST 00000431: PUSH1 0x40 00000433: MLOAD 00000434: DUP1 00000435: SWAP2 00000436: SUB 00000437: SWAP1 00000438: RETURN 00000439: JUMPDEST 0000043a: CALLVALUE 0000043b: DUP1 0000043c: ISZERO 0000043d: PUSH2 0x0445 00000440: JUMPI 00000441: PUSH1 0x00 00000443: DUP1 00000444: REVERT 00000445: JUMPDEST 00000446: POP 00000447: PUSH2 0x0460 0000044a: PUSH1 0x04 0000044c: DUP1 0000044d: CALLDATASIZE 0000044e: SUB 0000044f: DUP2 00000450: ADD 00000451: SWAP1 00000452: PUSH2 0x045b 00000455: SWAP2 00000456: SWAP1 00000457: PUSH2 0x3c13 0000045a: JUMP 0000045b: JUMPDEST 0000045c: PUSH2 0x10dc 0000045f: JUMP 00000460: JUMPDEST 00000461: STOP 00000462: JUMPDEST 00000463: CALLVALUE 00000464: DUP1 00000465: ISZERO 00000466: PUSH2 0x046e 00000469: JUMPI 0000046a: PUSH1 0x00 0000046c: DUP1 0000046d: REVERT 0000046e: JUMPDEST 0000046f: POP 00000470: PUSH2 0x0477 00000473: PUSH2 0x1284 00000476: JUMP 00000477: JUMPDEST 00000478: PUSH1 0x40 0000047a: MLOAD 0000047b: PUSH2 0x0484 0000047e: SWAP2 0000047f: SWAP1 00000480: PUSH2 0x3c5c 00000483: JUMP 00000484: JUMPDEST 00000485: PUSH1 0x40 00000487: MLOAD 00000488: DUP1 00000489: SWAP2 0000048a: SUB 0000048b: SWAP1 0000048c: RETURN 0000048d: JUMPDEST 0000048e: CALLVALUE 0000048f: DUP1 00000490: ISZERO 00000491: PUSH2 0x0499 00000494: JUMPI 00000495: PUSH1 0x00 00000497: DUP1 00000498: REVERT 00000499: JUMPDEST 0000049a: POP 0000049b: PUSH2 0x04b4 0000049e: PUSH1 0x04 000004a0: DUP1 000004a1: CALLDATASIZE 000004a2: SUB 000004a3: DUP2 000004a4: ADD 000004a5: SWAP1 000004a6: PUSH2 0x04af 000004a9: SWAP2 000004aa: SWAP1 000004ab: PUSH2 0x3a45 000004ae: JUMP 000004af: JUMPDEST 000004b0: PUSH2 0x128d 000004b3: JUMP 000004b4: JUMPDEST 000004b5: PUSH1 0x40 000004b7: MLOAD 000004b8: PUSH2 0x04c1 000004bb: SWAP2 000004bc: SWAP1 000004bd: PUSH2 0x38b7 000004c0: JUMP 000004c1: JUMPDEST 000004c2: PUSH1 0x40 000004c4: MLOAD 000004c5: DUP1 000004c6: SWAP2 000004c7: SUB 000004c8: SWAP1 000004c9: RETURN 000004ca: JUMPDEST 000004cb: CALLVALUE 000004cc: DUP1 000004cd: ISZERO 000004ce: PUSH2 0x04d6 000004d1: JUMPI 000004d2: PUSH1 0x00 000004d4: DUP1 000004d5: REVERT 000004d6: JUMPDEST 000004d7: POP 000004d8: PUSH2 0x04f1 000004db: PUSH1 0x04 000004dd: DUP1 000004de: CALLDATASIZE 000004df: SUB 000004e0: DUP2 000004e1: ADD 000004e2: SWAP1 000004e3: PUSH2 0x04ec 000004e6: SWAP2 000004e7: SWAP1 000004e8: PUSH2 0x3c77 000004eb: JUMP 000004ec: JUMPDEST 000004ed: PUSH2 0x12c4 000004f0: JUMP 000004f1: JUMPDEST 000004f2: PUSH1 0x40 000004f4: MLOAD 000004f5: PUSH2 0x04fe 000004f8: SWAP2 000004f9: SWAP1 000004fa: PUSH2 0x38b7 000004fd: JUMP 000004fe: JUMPDEST 000004ff: PUSH1 0x40 00000501: MLOAD 00000502: DUP1 00000503: SWAP2 00000504: SUB 00000505: SWAP1 00000506: RETURN 00000507: JUMPDEST 00000508: CALLVALUE 00000509: DUP1 0000050a: ISZERO 0000050b: PUSH2 0x0513 0000050e: JUMPI 0000050f: PUSH1 0x00 00000511: DUP1 00000512: REVERT 00000513: JUMPDEST 00000514: POP 00000515: PUSH2 0x052e 00000518: PUSH1 0x04 0000051a: DUP1 0000051b: CALLDATASIZE 0000051c: SUB 0000051d: DUP2 0000051e: ADD 0000051f: SWAP1 00000520: PUSH2 0x0529 00000523: SWAP2 00000524: SWAP1 00000525: PUSH2 0x3c77 00000528: JUMP 00000529: JUMPDEST 0000052a: PUSH2 0x1398 0000052d: JUMP 0000052e: JUMPDEST 0000052f: STOP 00000530: JUMPDEST 00000531: CALLVALUE 00000532: DUP1 00000533: ISZERO 00000534: PUSH2 0x053c 00000537: JUMPI 00000538: PUSH1 0x00 0000053a: DUP1 0000053b: REVERT 0000053c: JUMPDEST 0000053d: POP 0000053e: PUSH2 0x0545 00000541: PUSH2 0x1434 00000544: JUMP 00000545: JUMPDEST 00000546: PUSH1 0x40 00000548: MLOAD 00000549: PUSH2 0x0552 0000054c: SWAP2 0000054d: SWAP1 0000054e: PUSH2 0x3a94 00000551: JUMP 00000552: JUMPDEST 00000553: PUSH1 0x40 00000555: MLOAD 00000556: DUP1 00000557: SWAP2 00000558: SUB 00000559: SWAP1 0000055a: RETURN 0000055b: JUMPDEST 0000055c: CALLVALUE 0000055d: DUP1 0000055e: ISZERO 0000055f: PUSH2 0x0567 00000562: JUMPI 00000563: PUSH1 0x00 00000565: DUP1 00000566: REVERT 00000567: JUMPDEST 00000568: POP 00000569: PUSH2 0x0570 0000056c: PUSH2 0x1439 0000056f: JUMP 00000570: JUMPDEST 00000571: PUSH1 0x40 00000573: MLOAD 00000574: PUSH2 0x057d 00000577: SWAP2 00000578: SWAP1 00000579: PUSH2 0x3ce6 0000057c: JUMP 0000057d: JUMPDEST 0000057e: PUSH1 0x40 00000580: MLOAD 00000581: DUP1 00000582: SWAP2 00000583: SUB 00000584: SWAP1 00000585: RETURN 00000586: JUMPDEST 00000587: PUSH2 0x05a0 0000058a: PUSH1 0x04 0000058c: DUP1 0000058d: CALLDATASIZE 0000058e: SUB 0000058f: DUP2 00000590: ADD 00000591: SWAP1 00000592: PUSH2 0x059b 00000595: SWAP2 00000596: SWAP1 00000597: PUSH2 0x3d3f 0000059a: JUMP 0000059b: JUMPDEST 0000059c: PUSH2 0x143e 0000059f: JUMP 000005a0: JUMPDEST 000005a1: STOP 000005a2: JUMPDEST 000005a3: CALLVALUE 000005a4: DUP1 000005a5: ISZERO 000005a6: PUSH2 0x05ae 000005a9: JUMPI 000005aa: PUSH1 0x00 000005ac: DUP1 000005ad: REVERT 000005ae: JUMPDEST 000005af: POP 000005b0: PUSH2 0x05c9 000005b3: PUSH1 0x04 000005b5: DUP1 000005b6: CALLDATASIZE 000005b7: SUB 000005b8: DUP2 000005b9: ADD 000005ba: SWAP1 000005bb: PUSH2 0x05c4 000005be: SWAP2 000005bf: SWAP1 000005c0: PUSH2 0x3f51 000005c3: JUMP 000005c4: JUMPDEST 000005c5: PUSH2 0x14e0 000005c8: JUMP 000005c9: JUMPDEST 000005ca: PUSH1 0x40 000005cc: MLOAD 000005cd: PUSH2 0x05d6 000005d0: SWAP2 000005d1: SWAP1 000005d2: PUSH2 0x3fd9 000005d5: JUMP 000005d6: JUMPDEST 000005d7: PUSH1 0x40 000005d9: MLOAD 000005da: DUP1 000005db: SWAP2 000005dc: SUB 000005dd: SWAP1 000005de: RETURN 000005df: JUMPDEST 000005e0: CALLVALUE 000005e1: DUP1 000005e2: ISZERO 000005e3: PUSH2 0x05eb 000005e6: JUMPI 000005e7: PUSH1 0x00 000005e9: DUP1 000005ea: REVERT 000005eb: JUMPDEST 000005ec: POP 000005ed: PUSH2 0x0606 000005f0: PUSH1 0x04 000005f2: DUP1 000005f3: CALLDATASIZE 000005f4: SUB 000005f5: DUP2 000005f6: ADD 000005f7: SWAP1 000005f8: PUSH2 0x0601 000005fb: SWAP2 000005fc: SWAP1 000005fd: PUSH2 0x3770 00000600: JUMP 00000601: JUMPDEST 00000602: PUSH2 0x1528 00000605: JUMP 00000606: JUMPDEST 00000607: STOP 00000608: JUMPDEST 00000609: CALLVALUE 0000060a: DUP1 0000060b: ISZERO 0000060c: PUSH2 0x0614 0000060f: JUMPI 00000610: PUSH1 0x00 00000612: DUP1 00000613: REVERT 00000614: JUMPDEST 00000615: POP 00000616: PUSH2 0x062f 00000619: PUSH1 0x04 0000061b: DUP1 0000061c: CALLDATASIZE 0000061d: SUB 0000061e: DUP2 0000061f: ADD 00000620: SWAP1 00000621: PUSH2 0x062a 00000624: SWAP2 00000625: SWAP1 00000626: PUSH2 0x3ff4 00000629: JUMP 0000062a: JUMPDEST 0000062b: PUSH2 0x1639 0000062e: JUMP 0000062f: JUMPDEST 00000630: PUSH1 0x40 00000632: MLOAD 00000633: PUSH2 0x063c 00000636: SWAP2 00000637: SWAP1 00000638: PUSH2 0x3a94 0000063b: JUMP 0000063c: JUMPDEST 0000063d: PUSH1 0x40 0000063f: MLOAD 00000640: DUP1 00000641: SWAP2 00000642: SUB 00000643: SWAP1 00000644: RETURN 00000645: JUMPDEST 00000646: CALLVALUE 00000647: DUP1 00000648: ISZERO 00000649: PUSH2 0x0651 0000064c: JUMPI 0000064d: PUSH1 0x00 0000064f: DUP1 00000650: REVERT 00000651: JUMPDEST 00000652: POP 00000653: PUSH2 0x065a 00000656: PUSH2 0x1682 00000659: JUMP 0000065a: JUMPDEST 0000065b: STOP 0000065c: JUMPDEST 0000065d: CALLVALUE 0000065e: DUP1 0000065f: ISZERO 00000660: PUSH2 0x0668 00000663: JUMPI 00000664: PUSH1 0x00 00000666: DUP1 00000667: REVERT 00000668: JUMPDEST 00000669: POP 0000066a: PUSH2 0x0683 0000066d: PUSH1 0x04 0000066f: DUP1 00000670: CALLDATASIZE 00000671: SUB 00000672: DUP2 00000673: ADD 00000674: SWAP1 00000675: PUSH2 0x067e 00000678: SWAP2 00000679: SWAP1 0000067a: PUSH2 0x3984 0000067d: JUMP 0000067e: JUMPDEST 0000067f: PUSH2 0x1696 00000682: JUMP 00000683: JUMPDEST 00000684: PUSH1 0x40 00000686: MLOAD 00000687: PUSH2 0x0690 0000068a: SWAP2 0000068b: SWAP1 0000068c: PUSH2 0x4076 0000068f: JUMP 00000690: JUMPDEST 00000691: PUSH1 0x40 00000693: MLOAD 00000694: DUP1 00000695: SWAP2 00000696: SUB 00000697: SWAP1 00000698: RETURN 00000699: JUMPDEST 0000069a: CALLVALUE 0000069b: DUP1 0000069c: ISZERO 0000069d: PUSH2 0x06a5 000006a0: JUMPI 000006a1: PUSH1 0x00 000006a3: DUP1 000006a4: REVERT 000006a5: JUMPDEST 000006a6: POP 000006a7: PUSH2 0x06c0 000006aa: PUSH1 0x04 000006ac: DUP1 000006ad: CALLDATASIZE 000006ae: SUB 000006af: DUP2 000006b0: ADD 000006b1: SWAP1 000006b2: PUSH2 0x06bb 000006b5: SWAP2 000006b6: SWAP1 000006b7: PUSH2 0x4098 000006ba: JUMP 000006bb: JUMPDEST 000006bc: PUSH2 0x1736 000006bf: JUMP 000006c0: JUMPDEST 000006c1: PUSH1 0x40 000006c3: MLOAD 000006c4: PUSH2 0x06cd 000006c7: SWAP2 000006c8: SWAP1 000006c9: PUSH2 0x3a94 000006cc: JUMP 000006cd: JUMPDEST 000006ce: PUSH1 0x40 000006d0: MLOAD 000006d1: DUP1 000006d2: SWAP2 000006d3: SUB 000006d4: SWAP1 000006d5: RETURN 000006d6: JUMPDEST 000006d7: CALLVALUE 000006d8: DUP1 000006d9: ISZERO 000006da: PUSH2 0x06e2 000006dd: JUMPI 000006de: PUSH1 0x00 000006e0: DUP1 000006e1: REVERT 000006e2: JUMPDEST 000006e3: POP 000006e4: PUSH2 0x06eb 000006e7: PUSH2 0x175b 000006ea: JUMP 000006eb: JUMPDEST 000006ec: PUSH1 0x40 000006ee: MLOAD 000006ef: PUSH2 0x06f8 000006f2: SWAP2 000006f3: SWAP1 000006f4: PUSH2 0x40e7 000006f7: JUMP 000006f8: JUMPDEST 000006f9: PUSH1 0x40 000006fb: MLOAD 000006fc: DUP1 000006fd: SWAP2 000006fe: SUB 000006ff: SWAP1 00000700: RETURN 00000701: JUMPDEST 00000702: CALLVALUE 00000703: DUP1 00000704: ISZERO 00000705: PUSH2 0x070d 00000708: JUMPI 00000709: PUSH1 0x00 0000070b: DUP1 0000070c: REVERT 0000070d: JUMPDEST 0000070e: POP 0000070f: PUSH2 0x0716 00000712: PUSH2 0x1784 00000715: JUMP 00000716: JUMPDEST 00000717: PUSH1 0x40 00000719: MLOAD 0000071a: PUSH2 0x0723 0000071d: SWAP2 0000071e: SWAP1 0000071f: PUSH2 0x3a94 00000722: JUMP 00000723: JUMPDEST 00000724: PUSH1 0x40 00000726: MLOAD 00000727: DUP1 00000728: SWAP2 00000729: SUB 0000072a: SWAP1 0000072b: RETURN 0000072c: JUMPDEST 0000072d: CALLVALUE 0000072e: DUP1 0000072f: ISZERO 00000730: PUSH2 0x0738 00000733: JUMPI 00000734: PUSH1 0x00 00000736: DUP1 00000737: REVERT 00000738: JUMPDEST 00000739: POP 0000073a: PUSH2 0x0741 0000073d: PUSH2 0x1793 00000740: JUMP 00000741: JUMPDEST 00000742: PUSH1 0x40 00000744: MLOAD 00000745: PUSH2 0x074e 00000748: SWAP2 00000749: SWAP1 0000074a: PUSH2 0x40e7 0000074d: JUMP 0000074e: JUMPDEST 0000074f: PUSH1 0x40 00000751: MLOAD 00000752: DUP1 00000753: SWAP2 00000754: SUB 00000755: SWAP1 00000756: RETURN 00000757: JUMPDEST 00000758: CALLVALUE 00000759: DUP1 0000075a: ISZERO 0000075b: PUSH2 0x0763 0000075e: JUMPI 0000075f: PUSH1 0x00 00000761: DUP1 00000762: REVERT 00000763: JUMPDEST 00000764: POP 00000765: PUSH2 0x076c 00000768: PUSH2 0x17b9 0000076b: JUMP 0000076c: JUMPDEST 0000076d: PUSH1 0x40 0000076f: MLOAD 00000770: PUSH2 0x0779 00000773: SWAP2 00000774: SWAP1 00000775: PUSH2 0x3962 00000778: JUMP 00000779: JUMPDEST 0000077a: PUSH1 0x40 0000077c: MLOAD 0000077d: DUP1 0000077e: SWAP2 0000077f: SUB 00000780: SWAP1 00000781: RETURN 00000782: JUMPDEST 00000783: CALLVALUE 00000784: DUP1 00000785: ISZERO 00000786: PUSH2 0x078e 00000789: JUMPI 0000078a: PUSH1 0x00 0000078c: DUP1 0000078d: REVERT 0000078e: JUMPDEST 0000078f: POP 00000790: PUSH2 0x07a9 00000793: PUSH1 0x04 00000795: DUP1 00000796: CALLDATASIZE 00000797: SUB 00000798: DUP2 00000799: ADD 0000079a: SWAP1 0000079b: PUSH2 0x07a4 0000079e: SWAP2 0000079f: SWAP1 000007a0: PUSH2 0x3984 000007a3: JUMP 000007a4: JUMPDEST 000007a5: PUSH2 0x184b 000007a8: JUMP 000007a9: JUMPDEST 000007aa: PUSH1 0x40 000007ac: MLOAD 000007ad: PUSH2 0x07b6 000007b0: SWAP2 000007b1: SWAP1 000007b2: PUSH2 0x4076 000007b5: JUMP 000007b6: JUMPDEST 000007b7: PUSH1 0x40 000007b9: MLOAD 000007ba: DUP1 000007bb: SWAP2 000007bc: SUB 000007bd: SWAP1 000007be: RETURN 000007bf: JUMPDEST 000007c0: CALLVALUE 000007c1: DUP1 000007c2: ISZERO 000007c3: PUSH2 0x07cb 000007c6: JUMPI 000007c7: PUSH1 0x00 000007c9: DUP1 000007ca: REVERT 000007cb: JUMPDEST 000007cc: POP 000007cd: PUSH2 0x07e6 000007d0: PUSH1 0x04 000007d2: DUP1 000007d3: CALLDATASIZE 000007d4: SUB 000007d5: DUP2 000007d6: ADD 000007d7: SWAP1 000007d8: PUSH2 0x07e1 000007db: SWAP2 000007dc: SWAP1 000007dd: PUSH2 0x3a45 000007e0: JUMP 000007e1: JUMPDEST 000007e2: PUSH2 0x1964 000007e5: JUMP 000007e6: JUMPDEST 000007e7: PUSH1 0x40 000007e9: MLOAD 000007ea: PUSH2 0x07f3 000007ed: SWAP2 000007ee: SWAP1 000007ef: PUSH2 0x38b7 000007f2: JUMP 000007f3: JUMPDEST 000007f4: PUSH1 0x40 000007f6: MLOAD 000007f7: DUP1 000007f8: SWAP2 000007f9: SUB 000007fa: SWAP1 000007fb: RETURN 000007fc: JUMPDEST 000007fd: CALLVALUE 000007fe: DUP1 000007ff: ISZERO 00000800: PUSH2 0x0808 00000803: JUMPI 00000804: PUSH1 0x00 00000806: DUP1 00000807: REVERT 00000808: JUMPDEST 00000809: POP 0000080a: PUSH2 0x0823 0000080d: PUSH1 0x04 0000080f: DUP1 00000810: CALLDATASIZE 00000811: SUB 00000812: DUP2 00000813: ADD 00000814: SWAP1 00000815: PUSH2 0x081e 00000818: SWAP2 00000819: SWAP1 0000081a: PUSH2 0x3c77 0000081d: JUMP 0000081e: JUMPDEST 0000081f: PUSH2 0x19db 00000822: JUMP 00000823: JUMPDEST 00000824: STOP 00000825: JUMPDEST 00000826: CALLVALUE 00000827: DUP1 00000828: ISZERO 00000829: PUSH2 0x0831 0000082c: JUMPI 0000082d: PUSH1 0x00 0000082f: DUP1 00000830: REVERT 00000831: JUMPDEST 00000832: POP 00000833: PUSH2 0x084c 00000836: PUSH1 0x04 00000838: DUP1 00000839: CALLDATASIZE 0000083a: SUB 0000083b: DUP2 0000083c: ADD 0000083d: SWAP1 0000083e: PUSH2 0x0847 00000841: SWAP2 00000842: SWAP1 00000843: PUSH2 0x3a45 00000846: JUMP 00000847: JUMPDEST 00000848: PUSH2 0x1a6f 0000084b: JUMP 0000084c: JUMPDEST 0000084d: PUSH1 0x40 0000084f: MLOAD 00000850: PUSH2 0x0859 00000853: SWAP2 00000854: SWAP1 00000855: PUSH2 0x38b7 00000858: JUMP 00000859: JUMPDEST 0000085a: PUSH1 0x40 0000085c: MLOAD 0000085d: DUP1 0000085e: SWAP2 0000085f: SUB 00000860: SWAP1 00000861: RETURN 00000862: JUMPDEST 00000863: CALLVALUE 00000864: DUP1 00000865: ISZERO 00000866: PUSH2 0x086e 00000869: JUMPI 0000086a: PUSH1 0x00 0000086c: DUP1 0000086d: REVERT 0000086e: JUMPDEST 0000086f: POP 00000870: PUSH2 0x0877 00000873: PUSH2 0x1a92 00000876: JUMP 00000877: JUMPDEST 00000878: PUSH1 0x40 0000087a: MLOAD 0000087b: PUSH2 0x0884 0000087e: SWAP2 0000087f: SWAP1 00000880: PUSH2 0x4161 00000883: JUMP 00000884: JUMPDEST 00000885: PUSH1 0x40 00000887: MLOAD 00000888: DUP1 00000889: SWAP2 0000088a: SUB 0000088b: SWAP1 0000088c: RETURN 0000088d: JUMPDEST 0000088e: CALLVALUE 0000088f: DUP1 00000890: ISZERO 00000891: PUSH2 0x0899 00000894: JUMPI 00000895: PUSH1 0x00 00000897: DUP1 00000898: REVERT 00000899: JUMPDEST 0000089a: POP 0000089b: PUSH2 0x08b4 0000089e: PUSH1 0x04 000008a0: DUP1 000008a1: CALLDATASIZE 000008a2: SUB 000008a3: DUP2 000008a4: ADD 000008a5: SWAP1 000008a6: PUSH2 0x08af 000008a9: SWAP2 000008aa: SWAP1 000008ab: PUSH2 0x3ff4 000008ae: JUMP 000008af: JUMPDEST 000008b0: PUSH2 0x1ab6 000008b3: JUMP 000008b4: JUMPDEST 000008b5: STOP 000008b6: JUMPDEST 000008b7: CALLVALUE 000008b8: DUP1 000008b9: ISZERO 000008ba: PUSH2 0x08c2 000008bd: JUMPI 000008be: PUSH1 0x00 000008c0: DUP1 000008c1: REVERT 000008c2: JUMPDEST 000008c3: POP 000008c4: PUSH2 0x08dd 000008c7: PUSH1 0x04 000008c9: DUP1 000008ca: CALLDATASIZE 000008cb: SUB 000008cc: DUP2 000008cd: ADD 000008ce: SWAP1 000008cf: PUSH2 0x08d8 000008d2: SWAP2 000008d3: SWAP1 000008d4: PUSH2 0x417c 000008d7: JUMP 000008d8: JUMPDEST 000008d9: PUSH2 0x1b39 000008dc: JUMP 000008dd: JUMPDEST 000008de: STOP 000008df: JUMPDEST 000008e0: PUSH2 0x08e7 000008e3: PUSH2 0x0a4e 000008e6: JUMP 000008e7: JUMPDEST 000008e8: STOP 000008e9: JUMPDEST 000008ea: PUSH2 0x0903 000008ed: PUSH1 0x04 000008ef: DUP1 000008f0: CALLDATASIZE 000008f1: SUB 000008f2: DUP2 000008f3: ADD 000008f4: SWAP1 000008f5: PUSH2 0x08fe 000008f8: SWAP2 000008f9: SWAP1 000008fa: PUSH2 0x3770 000008fd: JUMP 000008fe: JUMPDEST 000008ff: PUSH2 0x1bdb 00000902: JUMP 00000903: JUMPDEST 00000904: STOP 00000905: JUMPDEST 00000906: CALLVALUE 00000907: DUP1 00000908: ISZERO 00000909: PUSH2 0x0911 0000090c: JUMPI 0000090d: PUSH1 0x00 0000090f: DUP1 00000910: REVERT 00000911: JUMPDEST 00000912: POP 00000913: PUSH2 0x092c 00000916: PUSH1 0x04 00000918: DUP1 00000919: CALLDATASIZE 0000091a: SUB 0000091b: DUP2 0000091c: ADD 0000091d: SWAP1 0000091e: PUSH2 0x0927 00000921: SWAP2 00000922: SWAP1 00000923: PUSH2 0x4204 00000926: JUMP 00000927: JUMPDEST 00000928: PUSH2 0x1e1e 0000092b: JUMP 0000092c: JUMPDEST 0000092d: PUSH1 0x40 0000092f: MLOAD 00000930: PUSH2 0x0939 00000933: SWAP2 00000934: SWAP1 00000935: PUSH2 0x3a94 00000938: JUMP 00000939: JUMPDEST 0000093a: PUSH1 0x40 0000093c: MLOAD 0000093d: DUP1 0000093e: SWAP2 0000093f: SUB 00000940: SWAP1 00000941: RETURN 00000942: JUMPDEST 00000943: CALLVALUE 00000944: DUP1 00000945: ISZERO 00000946: PUSH2 0x094e 00000949: JUMPI 0000094a: PUSH1 0x00 0000094c: DUP1 0000094d: REVERT 0000094e: JUMPDEST 0000094f: POP 00000950: PUSH2 0x0969 00000953: PUSH1 0x04 00000955: DUP1 00000956: CALLDATASIZE 00000957: SUB 00000958: DUP2 00000959: ADD 0000095a: SWAP1 0000095b: PUSH2 0x0964 0000095e: SWAP2 0000095f: SWAP1 00000960: PUSH2 0x4244 00000963: JUMP 00000964: JUMPDEST 00000965: PUSH2 0x1ea5 00000968: JUMP 00000969: JUMPDEST 0000096a: STOP 0000096b: JUMPDEST 0000096c: CALLVALUE 0000096d: DUP1 0000096e: ISZERO 0000096f: PUSH2 0x0977 00000972: JUMPI 00000973: PUSH1 0x00 00000975: DUP1 00000976: REVERT 00000977: JUMPDEST 00000978: POP 00000979: PUSH2 0x0992 0000097c: PUSH1 0x04 0000097e: DUP1 0000097f: CALLDATASIZE 00000980: SUB 00000981: DUP2 00000982: ADD 00000983: SWAP1 00000984: PUSH2 0x098d 00000987: SWAP2 00000988: SWAP1 00000989: PUSH2 0x4297 0000098c: JUMP 0000098d: JUMPDEST 0000098e: PUSH2 0x1f69 00000991: JUMP 00000992: JUMPDEST 00000993: STOP 00000994: JUMPDEST 00000995: CALLVALUE 00000996: DUP1 00000997: ISZERO 00000998: PUSH2 0x09a0 0000099b: JUMPI 0000099c: PUSH1 0x00 0000099e: DUP1 0000099f: REVERT 000009a0: JUMPDEST 000009a1: POP 000009a2: PUSH2 0x09bb 000009a5: PUSH1 0x04 000009a7: DUP1 000009a8: CALLDATASIZE 000009a9: SUB 000009aa: DUP2 000009ab: ADD 000009ac: SWAP1 000009ad: PUSH2 0x09b6 000009b0: SWAP2 000009b1: SWAP1 000009b2: PUSH2 0x3c77 000009b5: JUMP 000009b6: JUMPDEST 000009b7: PUSH2 0x1fc5 000009ba: JUMP 000009bb: JUMPDEST 000009bc: STOP 000009bd: JUMPDEST 000009be: CALLVALUE 000009bf: DUP1 000009c0: ISZERO 000009c1: PUSH2 0x09c9 000009c4: JUMPI 000009c5: PUSH1 0x00 000009c7: DUP1 000009c8: REVERT 000009c9: JUMPDEST 000009ca: POP 000009cb: PUSH2 0x09d2 000009ce: PUSH2 0x2038 000009d1: JUMP 000009d2: JUMPDEST 000009d3: PUSH1 0x40 000009d5: MLOAD 000009d6: PUSH2 0x09df 000009d9: SWAP2 000009da: SWAP1 000009db: PUSH2 0x38b7 000009de: JUMP 000009df: JUMPDEST 000009e0: PUSH1 0x40 000009e2: MLOAD 000009e3: DUP1 000009e4: SWAP2 000009e5: SUB 000009e6: SWAP1 000009e7: RETURN 000009e8: JUMPDEST 000009e9: CALLVALUE 000009ea: DUP1 000009eb: ISZERO 000009ec: PUSH2 0x09f4 000009ef: JUMPI 000009f0: PUSH1 0x00 000009f2: DUP1 000009f3: REVERT 000009f4: JUMPDEST 000009f5: POP 000009f6: PUSH2 0x0a0f 000009f9: PUSH1 0x04 000009fb: DUP1 000009fc: CALLDATASIZE 000009fd: SUB 000009fe: DUP2 000009ff: ADD 00000a00: SWAP1 00000a01: PUSH2 0x0a0a 00000a04: SWAP2 00000a05: SWAP1 00000a06: PUSH2 0x3ff4 00000a09: JUMP 00000a0a: JUMPDEST 00000a0b: PUSH2 0x204b 00000a0e: JUMP 00000a0f: JUMPDEST 00000a10: STOP 00000a11: JUMPDEST 00000a12: CALLVALUE 00000a13: DUP1 00000a14: ISZERO 00000a15: PUSH2 0x0a1d 00000a18: JUMPI 00000a19: PUSH1 0x00 00000a1b: DUP1 00000a1c: REVERT 00000a1d: JUMPDEST 00000a1e: POP 00000a1f: PUSH2 0x0a38 00000a22: PUSH1 0x04 00000a24: DUP1 00000a25: CALLDATASIZE 00000a26: SUB 00000a27: DUP2 00000a28: ADD 00000a29: SWAP1 00000a2a: PUSH2 0x0a33 00000a2d: SWAP2 00000a2e: SWAP1 00000a2f: PUSH2 0x42c4 00000a32: JUMP 00000a33: JUMPDEST 00000a34: PUSH2 0x20ce 00000a37: JUMP 00000a38: JUMPDEST 00000a39: PUSH1 0x40 00000a3b: MLOAD 00000a3c: PUSH2 0x0a45 00000a3f: SWAP2 00000a40: SWAP1 00000a41: PUSH2 0x4076 00000a44: JUMP 00000a45: JUMPDEST 00000a46: PUSH1 0x40 00000a48: MLOAD 00000a49: DUP1 00000a4a: SWAP2 00000a4b: SUB 00000a4c: SWAP1 00000a4d: RETURN 00000a4e: JUMPDEST 00000a4f: PUSH2 0x0a58 00000a52: CALLER 00000a53: CALLVALUE 00000a54: PUSH2 0x217f 00000a57: JUMP 00000a58: JUMPDEST 00000a59: CALLER 00000a5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a6f: AND 00000a70: PUSH32 0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c 00000a91: CALLVALUE 00000a92: PUSH1 0x40 00000a94: MLOAD 00000a95: PUSH2 0x0a9e 00000a98: SWAP2 00000a99: SWAP1 00000a9a: PUSH2 0x3a94 00000a9d: JUMP 00000a9e: JUMPDEST 00000a9f: PUSH1 0x40 00000aa1: MLOAD 00000aa2: DUP1 00000aa3: SWAP2 00000aa4: SUB 00000aa5: SWAP1 00000aa6: LOG2 00000aa7: JUMP 00000aa8: JUMPDEST 00000aa9: PUSH32 0x00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675 00000aca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000adf: AND 00000ae0: PUSH2 0x0ae7 00000ae3: PUSH2 0x22df 00000ae6: JUMP 00000ae7: JUMPDEST 00000ae8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000afd: AND 00000afe: EQ 00000aff: PUSH2 0x0b3d 00000b02: JUMPI 00000b03: PUSH1 0x40 00000b05: MLOAD 00000b06: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000b27: DUP2 00000b28: MSTORE 00000b29: PUSH1 0x04 00000b2b: ADD 00000b2c: PUSH2 0x0b34 00000b2f: SWAP1 00000b30: PUSH2 0x4377 00000b33: JUMP 00000b34: JUMPDEST 00000b35: PUSH1 0x40 00000b37: MLOAD 00000b38: DUP1 00000b39: SWAP2 00000b3a: SUB 00000b3b: SWAP1 00000b3c: REVERT 00000b3d: JUMPDEST 00000b3e: PUSH1 0x00 00000b40: PUSH1 0x01 00000b42: PUSH1 0x00 00000b44: DUP9 00000b45: PUSH2 0xffff 00000b48: AND 00000b49: PUSH2 0xffff 00000b4c: AND 00000b4d: DUP2 00000b4e: MSTORE 00000b4f: PUSH1 0x20 00000b51: ADD 00000b52: SWAP1 00000b53: DUP2 00000b54: MSTORE 00000b55: PUSH1 0x20 00000b57: ADD 00000b58: PUSH1 0x00 00000b5a: KECCAK256 00000b5b: DUP1 00000b5c: SLOAD 00000b5d: PUSH2 0x0b65 00000b60: SWAP1 00000b61: PUSH2 0x43c6 00000b64: JUMP 00000b65: JUMPDEST 00000b66: DUP1 00000b67: PUSH1 0x1f 00000b69: ADD 00000b6a: PUSH1 0x20 00000b6c: DUP1 00000b6d: SWAP2 00000b6e: DIV 00000b6f: MUL 00000b70: PUSH1 0x20 00000b72: ADD 00000b73: PUSH1 0x40 00000b75: MLOAD 00000b76: SWAP1 00000b77: DUP2 00000b78: ADD 00000b79: PUSH1 0x40 00000b7b: MSTORE 00000b7c: DUP1 00000b7d: SWAP3 00000b7e: SWAP2 00000b7f: SWAP1 00000b80: DUP2 00000b81: DUP2 00000b82: MSTORE 00000b83: PUSH1 0x20 00000b85: ADD 00000b86: DUP3 00000b87: DUP1 00000b88: SLOAD 00000b89: PUSH2 0x0b91 00000b8c: SWAP1 00000b8d: PUSH2 0x43c6 00000b90: JUMP 00000b91: JUMPDEST 00000b92: DUP1 00000b93: ISZERO 00000b94: PUSH2 0x0bde 00000b97: JUMPI 00000b98: DUP1 00000b99: PUSH1 0x1f 00000b9b: LT 00000b9c: PUSH2 0x0bb3 00000b9f: JUMPI 00000ba0: PUSH2 0x0100 00000ba3: DUP1 00000ba4: DUP4 00000ba5: SLOAD 00000ba6: DIV 00000ba7: MUL 00000ba8: DUP4 00000ba9: MSTORE 00000baa: SWAP2 00000bab: PUSH1 0x20 00000bad: ADD 00000bae: SWAP2 00000baf: PUSH2 0x0bde 00000bb2: JUMP 00000bb3: JUMPDEST 00000bb4: DUP3 00000bb5: ADD 00000bb6: SWAP2 00000bb7: SWAP1 00000bb8: PUSH1 0x00 00000bba: MSTORE 00000bbb: PUSH1 0x20 00000bbd: PUSH1 0x00 00000bbf: KECCAK256 00000bc0: SWAP1 00000bc1: JUMPDEST 00000bc2: DUP2 00000bc3: SLOAD 00000bc4: DUP2 00000bc5: MSTORE 00000bc6: SWAP1 00000bc7: PUSH1 0x01 00000bc9: ADD 00000bca: SWAP1 00000bcb: PUSH1 0x20 00000bcd: ADD 00000bce: DUP1 00000bcf: DUP4 00000bd0: GT 00000bd1: PUSH2 0x0bc1 00000bd4: JUMPI 00000bd5: DUP3 00000bd6: SWAP1 00000bd7: SUB 00000bd8: PUSH1 0x1f 00000bda: AND 00000bdb: DUP3 00000bdc: ADD 00000bdd: SWAP2 00000bde: JUMPDEST 00000bdf: POP 00000be0: POP 00000be1: POP 00000be2: POP 00000be3: POP 00000be4: SWAP1 00000be5: POP 00000be6: DUP1 00000be7: MLOAD 00000be8: DUP7 00000be9: DUP7 00000bea: SWAP1 00000beb: POP 00000bec: EQ 00000bed: DUP1 00000bee: ISZERO 00000bef: PUSH2 0x0bf9 00000bf2: JUMPI 00000bf3: POP 00000bf4: PUSH1 0x00 00000bf6: DUP2 00000bf7: MLOAD 00000bf8: GT 00000bf9: JUMPDEST 00000bfa: DUP1 00000bfb: ISZERO 00000bfc: PUSH2 0x0c22 00000bff: JUMPI 00000c00: POP 00000c01: DUP1 00000c02: DUP1 00000c03: MLOAD 00000c04: SWAP1 00000c05: PUSH1 0x20 00000c07: ADD 00000c08: KECCAK256 00000c09: DUP7 00000c0a: DUP7 00000c0b: PUSH1 0x40 00000c0d: MLOAD 00000c0e: PUSH2 0x0c18 00000c11: SWAP3 00000c12: SWAP2 00000c13: SWAP1 00000c14: PUSH2 0x4427 00000c17: JUMP 00000c18: JUMPDEST 00000c19: PUSH1 0x40 00000c1b: MLOAD 00000c1c: DUP1 00000c1d: SWAP2 00000c1e: SUB 00000c1f: SWAP1 00000c20: KECCAK256 00000c21: EQ 00000c22: JUMPDEST 00000c23: PUSH2 0x0c61 00000c26: JUMPI 00000c27: PUSH1 0x40 00000c29: MLOAD 00000c2a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000c4b: DUP2 00000c4c: MSTORE 00000c4d: PUSH1 0x04 00000c4f: ADD 00000c50: PUSH2 0x0c58 00000c53: SWAP1 00000c54: PUSH2 0x44b2 00000c57: JUMP 00000c58: JUMPDEST 00000c59: PUSH1 0x40 00000c5b: MLOAD 00000c5c: DUP1 00000c5d: SWAP2 00000c5e: SUB 00000c5f: SWAP1 00000c60: REVERT 00000c61: JUMPDEST 00000c62: PUSH2 0x0cf5 00000c65: DUP8 00000c66: DUP8 00000c67: DUP8 00000c68: DUP1 00000c69: DUP1 00000c6a: PUSH1 0x1f 00000c6c: ADD 00000c6d: PUSH1 0x20 00000c6f: DUP1 00000c70: SWAP2 00000c71: DIV 00000c72: MUL 00000c73: PUSH1 0x20 00000c75: ADD 00000c76: PUSH1 0x40 00000c78: MLOAD 00000c79: SWAP1 00000c7a: DUP2 00000c7b: ADD 00000c7c: PUSH1 0x40 00000c7e: MSTORE 00000c7f: DUP1 00000c80: SWAP4 00000c81: SWAP3 00000c82: SWAP2 00000c83: SWAP1 00000c84: DUP2 00000c85: DUP2 00000c86: MSTORE 00000c87: PUSH1 0x20 00000c89: ADD 00000c8a: DUP4 00000c8b: DUP4 00000c8c: DUP1 00000c8d: DUP3 00000c8e: DUP5 00000c8f: CALLDATACOPY 00000c90: PUSH1 0x00 00000c92: DUP2 00000c93: DUP5 00000c94: ADD 00000c95: MSTORE 00000c96: PUSH1 0x1f 00000c98: NOT 00000c99: PUSH1 0x1f 00000c9b: DUP3 00000c9c: ADD 00000c9d: AND 00000c9e: SWAP1 00000c9f: POP 00000ca0: DUP1 00000ca1: DUP4 00000ca2: ADD 00000ca3: SWAP3 00000ca4: POP 00000ca5: POP 00000ca6: POP 00000ca7: POP 00000ca8: POP 00000ca9: POP 00000caa: POP 00000cab: DUP7 00000cac: DUP7 00000cad: DUP7 00000cae: DUP1 00000caf: DUP1 00000cb0: PUSH1 0x1f 00000cb2: ADD 00000cb3: PUSH1 0x20 00000cb5: DUP1 00000cb6: SWAP2 00000cb7: DIV 00000cb8: MUL 00000cb9: PUSH1 0x20 00000cbb: ADD 00000cbc: PUSH1 0x40 00000cbe: MLOAD 00000cbf: SWAP1 00000cc0: DUP2 00000cc1: ADD 00000cc2: PUSH1 0x40 00000cc4: MSTORE 00000cc5: DUP1 00000cc6: SWAP4 00000cc7: SWAP3 00000cc8: SWAP2 00000cc9: SWAP1 00000cca: DUP2 00000ccb: DUP2 00000ccc: MSTORE 00000ccd: PUSH1 0x20 00000ccf: ADD 00000cd0: DUP4 00000cd1: DUP4 00000cd2: DUP1 00000cd3: DUP3 00000cd4: DUP5 00000cd5: CALLDATACOPY 00000cd6: PUSH1 0x00 00000cd8: DUP2 00000cd9: DUP5 00000cda: ADD 00000cdb: MSTORE 00000cdc: PUSH1 0x1f 00000cde: NOT 00000cdf: PUSH1 0x1f 00000ce1: DUP3 00000ce2: ADD 00000ce3: AND 00000ce4: SWAP1 00000ce5: POP 00000ce6: DUP1 00000ce7: DUP4 00000ce8: ADD 00000ce9: SWAP3 00000cea: POP 00000ceb: POP 00000cec: POP 00000ced: POP 00000cee: POP 00000cef: POP 00000cf0: POP 00000cf1: PUSH2 0x22e7 00000cf4: JUMP 00000cf5: JUMPDEST 00000cf6: POP 00000cf7: POP 00000cf8: POP 00000cf9: POP 00000cfa: POP 00000cfb: POP 00000cfc: POP 00000cfd: JUMP 00000cfe: JUMPDEST 00000cff: PUSH1 0x00 00000d01: DUP1 00000d02: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000d1f: NOT 00000d20: AND 00000d21: DUP3 00000d22: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000d3f: NOT 00000d40: AND 00000d41: EQ 00000d42: DUP1 00000d43: PUSH2 0x0da9 00000d46: JUMPI 00000d47: POP 00000d48: PUSH32 0x36372b0700000000000000000000000000000000000000000000000000000000 00000d69: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000d86: NOT 00000d87: AND 00000d88: DUP3 00000d89: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000da6: NOT 00000da7: AND 00000da8: EQ 00000da9: JUMPDEST 00000daa: DUP1 00000dab: PUSH2 0x0db9 00000dae: JUMPI 00000daf: POP 00000db0: PUSH2 0x0db8 00000db3: DUP3 00000db4: PUSH2 0x244c 00000db7: JUMP 00000db8: JUMPDEST 00000db9: JUMPDEST 00000dba: SWAP1 00000dbb: POP 00000dbc: SWAP2 00000dbd: SWAP1 00000dbe: POP 00000dbf: JUMP 00000dc0: JUMPDEST 00000dc1: PUSH1 0x60 00000dc3: PUSH1 0x09 00000dc5: DUP1 00000dc6: SLOAD 00000dc7: PUSH2 0x0dcf 00000dca: SWAP1 00000dcb: PUSH2 0x43c6 00000dce: JUMP 00000dcf: JUMPDEST 00000dd0: DUP1 00000dd1: PUSH1 0x1f 00000dd3: ADD 00000dd4: PUSH1 0x20 00000dd6: DUP1 00000dd7: SWAP2 00000dd8: DIV 00000dd9: MUL 00000dda: PUSH1 0x20 00000ddc: ADD 00000ddd: PUSH1 0x40 00000ddf: MLOAD 00000de0: SWAP1 00000de1: DUP2 00000de2: ADD 00000de3: PUSH1 0x40 00000de5: MSTORE 00000de6: DUP1 00000de7: SWAP3 00000de8: SWAP2 00000de9: SWAP1 00000dea: DUP2 00000deb: DUP2 00000dec: MSTORE 00000ded: PUSH1 0x20 00000def: ADD 00000df0: DUP3 00000df1: DUP1 00000df2: SLOAD 00000df3: PUSH2 0x0dfb 00000df6: SWAP1 00000df7: PUSH2 0x43c6 00000dfa: JUMP 00000dfb: JUMPDEST 00000dfc: DUP1 00000dfd: ISZERO 00000dfe: PUSH2 0x0e48 00000e01: JUMPI 00000e02: DUP1 00000e03: PUSH1 0x1f 00000e05: LT 00000e06: PUSH2 0x0e1d 00000e09: JUMPI 00000e0a: PUSH2 0x0100 00000e0d: DUP1 00000e0e: DUP4 00000e0f: SLOAD 00000e10: DIV 00000e11: MUL 00000e12: DUP4 00000e13: MSTORE 00000e14: SWAP2 00000e15: PUSH1 0x20 00000e17: ADD 00000e18: SWAP2 00000e19: PUSH2 0x0e48 00000e1c: JUMP 00000e1d: JUMPDEST 00000e1e: DUP3 00000e1f: ADD 00000e20: SWAP2 00000e21: SWAP1 00000e22: PUSH1 0x00 00000e24: MSTORE 00000e25: PUSH1 0x20 00000e27: PUSH1 0x00 00000e29: KECCAK256 00000e2a: SWAP1 00000e2b: JUMPDEST 00000e2c: DUP2 00000e2d: SLOAD 00000e2e: DUP2 00000e2f: MSTORE 00000e30: SWAP1 00000e31: PUSH1 0x01 00000e33: ADD 00000e34: SWAP1 00000e35: PUSH1 0x20 00000e37: ADD 00000e38: DUP1 00000e39: DUP4 00000e3a: GT 00000e3b: PUSH2 0x0e2b 00000e3e: JUMPI 00000e3f: DUP3 00000e40: SWAP1 00000e41: SUB 00000e42: PUSH1 0x1f 00000e44: AND 00000e45: DUP3 00000e46: ADD 00000e47: SWAP2 00000e48: JUMPDEST 00000e49: POP 00000e4a: POP 00000e4b: POP 00000e4c: POP 00000e4d: POP 00000e4e: SWAP1 00000e4f: POP 00000e50: SWAP1 00000e51: JUMP 00000e52: JUMPDEST 00000e53: PUSH2 0x0e5a 00000e56: PUSH2 0x24c6 00000e59: JUMP 00000e5a: JUMPDEST 00000e5b: PUSH32 0x00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675 00000e7c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e91: AND 00000e92: PUSH4 0x07e0db17 00000e97: DUP3 00000e98: PUSH1 0x40 00000e9a: MLOAD 00000e9b: DUP3 00000e9c: PUSH4 0xffffffff 00000ea1: AND 00000ea2: PUSH1 0xe0 00000ea4: SHL 00000ea5: DUP2 00000ea6: MSTORE 00000ea7: PUSH1 0x04 00000ea9: ADD 00000eaa: PUSH2 0x0eb3 00000ead: SWAP2 00000eae: SWAP1 00000eaf: PUSH2 0x3ce6 00000eb2: JUMP 00000eb3: JUMPDEST 00000eb4: PUSH1 0x00 00000eb6: PUSH1 0x40 00000eb8: MLOAD 00000eb9: DUP1 00000eba: DUP4 00000ebb: SUB 00000ebc: DUP2 00000ebd: PUSH1 0x00 00000ebf: DUP8 00000ec0: DUP1 00000ec1: EXTCODESIZE 00000ec2: ISZERO 00000ec3: DUP1 00000ec4: ISZERO 00000ec5: PUSH2 0x0ecd 00000ec8: JUMPI 00000ec9: PUSH1 0x00 00000ecb: DUP1 00000ecc: REVERT 00000ecd: JUMPDEST 00000ece: POP 00000ecf: GAS 00000ed0: CALL 00000ed1: ISZERO 00000ed2: DUP1 00000ed3: ISZERO 00000ed4: PUSH2 0x0ee1 00000ed7: JUMPI 00000ed8: RETURNDATASIZE 00000ed9: PUSH1 0x00 00000edb: DUP1 00000edc: RETURNDATACOPY 00000edd: RETURNDATASIZE 00000ede: PUSH1 0x00 00000ee0: REVERT 00000ee1: JUMPDEST 00000ee2: POP 00000ee3: POP 00000ee4: POP 00000ee5: POP 00000ee6: POP 00000ee7: JUMP 00000ee8: JUMPDEST 00000ee9: PUSH1 0x00 00000eeb: DUP1 00000eec: PUSH2 0x0ef3 00000eef: PUSH2 0x22df 00000ef2: JUMP 00000ef3: JUMPDEST 00000ef4: SWAP1 00000ef5: POP 00000ef6: PUSH2 0x0f00 00000ef9: DUP2 00000efa: DUP6 00000efb: DUP6 00000efc: PUSH2 0x2544 00000eff: JUMP 00000f00: JUMPDEST 00000f01: PUSH1 0x01 00000f03: SWAP2 00000f04: POP 00000f05: POP 00000f06: SWAP3 00000f07: SWAP2 00000f08: POP 00000f09: POP 00000f0a: JUMP 00000f0b: JUMPDEST 00000f0c: PUSH2 0x0f13 00000f0f: PUSH2 0x24c6 00000f12: JUMP 00000f13: JUMPDEST 00000f14: PUSH32 0x00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675 00000f35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f4a: AND 00000f4b: PUSH4 0x10ddb137 00000f50: DUP3 00000f51: PUSH1 0x40 00000f53: MLOAD 00000f54: DUP3 00000f55: PUSH4 0xffffffff 00000f5a: AND 00000f5b: PUSH1 0xe0 00000f5d: SHL 00000f5e: DUP2 00000f5f: MSTORE 00000f60: PUSH1 0x04 00000f62: ADD 00000f63: PUSH2 0x0f6c 00000f66: SWAP2 00000f67: SWAP1 00000f68: PUSH2 0x3ce6 00000f6b: JUMP 00000f6c: JUMPDEST 00000f6d: PUSH1 0x00 00000f6f: PUSH1 0x40 00000f71: MLOAD 00000f72: DUP1 00000f73: DUP4 00000f74: SUB 00000f75: DUP2 00000f76: PUSH1 0x00 00000f78: DUP8 00000f79: DUP1 00000f7a: EXTCODESIZE 00000f7b: ISZERO 00000f7c: DUP1 00000f7d: ISZERO 00000f7e: PUSH2 0x0f86 00000f81: JUMPI 00000f82: PUSH1 0x00 00000f84: DUP1 00000f85: REVERT 00000f86: JUMPDEST 00000f87: POP 00000f88: GAS 00000f89: CALL 00000f8a: ISZERO 00000f8b: DUP1 00000f8c: ISZERO 00000f8d: PUSH2 0x0f9a 00000f90: JUMPI 00000f91: RETURNDATASIZE 00000f92: PUSH1 0x00 00000f94: DUP1 00000f95: RETURNDATACOPY 00000f96: RETURNDATASIZE 00000f97: PUSH1 0x00 00000f99: REVERT 00000f9a: JUMPDEST 00000f9b: POP 00000f9c: POP 00000f9d: POP 00000f9e: POP 00000f9f: POP 00000fa0: JUMP 00000fa1: JUMPDEST 00000fa2: PUSH1 0x00 00000fa4: PUSH1 0x08 00000fa6: SLOAD 00000fa7: SWAP1 00000fa8: POP 00000fa9: SWAP1 00000faa: JUMP 00000fab: JUMPDEST 00000fac: PUSH1 0x00 00000fae: DUP1 00000faf: PUSH2 0x0fb6 00000fb2: PUSH2 0x22df 00000fb5: JUMP 00000fb6: JUMPDEST 00000fb7: SWAP1 00000fb8: POP 00000fb9: PUSH2 0x0fc3 00000fbc: DUP6 00000fbd: DUP3 00000fbe: DUP6 00000fbf: PUSH2 0x270d 00000fc2: JUMP 00000fc3: JUMPDEST 00000fc4: PUSH2 0x0fce 00000fc7: DUP6 00000fc8: DUP6 00000fc9: DUP6 00000fca: PUSH2 0x2799 00000fcd: JUMP 00000fce: JUMPDEST 00000fcf: PUSH1 0x01 00000fd1: SWAP2 00000fd2: POP 00000fd3: POP 00000fd4: SWAP4 00000fd5: SWAP3 00000fd6: POP 00000fd7: POP 00000fd8: POP 00000fd9: JUMP 00000fda: JUMPDEST 00000fdb: PUSH1 0x00 00000fdd: DUP1 00000fde: PUSH1 0x00 00000fe0: DUP1 00000fe1: CALLER 00000fe2: PUSH1 0x40 00000fe4: MLOAD 00000fe5: PUSH1 0x20 00000fe7: ADD 00000fe8: PUSH2 0x0ff1 00000feb: SWAP2 00000fec: SWAP1 00000fed: PUSH2 0x451a 00000ff0: JUMP 00000ff1: JUMPDEST 00000ff2: PUSH1 0x40 00000ff4: MLOAD 00000ff5: PUSH1 0x20 00000ff7: DUP2 00000ff8: DUP4 00000ff9: SUB 00000ffa: SUB 00000ffb: DUP2 00000ffc: MSTORE 00000ffd: SWAP1 00000ffe: PUSH1 0x40 00001000: MSTORE 00001001: DUP11 00001002: DUP11 00001003: DUP11 00001004: PUSH1 0x40 00001006: MLOAD 00001007: PUSH1 0x20 00001009: ADD 0000100a: PUSH2 0x1017 0000100d: SWAP6 0000100e: SWAP5 0000100f: SWAP4 00001010: SWAP3 00001011: SWAP2 00001012: SWAP1 00001013: PUSH2 0x4562 00001016: JUMP 00001017: JUMPDEST 00001018: PUSH1 0x40 0000101a: MLOAD 0000101b: PUSH1 0x20 0000101d: DUP2 0000101e: DUP4 0000101f: SUB 00001020: SUB 00001021: DUP2 00001022: MSTORE 00001023: SWAP1 00001024: PUSH1 0x40 00001026: MSTORE 00001027: SWAP1 00001028: POP 00001029: PUSH32 0x00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675 0000104a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000105f: AND 00001060: PUSH4 0x40a7bb10 00001065: DUP12 00001066: ADDRESS 00001067: DUP5 00001068: DUP11 00001069: DUP11 0000106a: DUP11 0000106b: PUSH1 0x40 0000106d: MLOAD 0000106e: DUP8 0000106f: PUSH4 0xffffffff 00001074: AND 00001075: PUSH1 0xe0 00001077: SHL 00001078: DUP2 00001079: MSTORE 0000107a: PUSH1 0x04 0000107c: ADD 0000107d: PUSH2 0x108b 00001080: SWAP7 00001081: SWAP6 00001082: SWAP5 00001083: SWAP4 00001084: SWAP3 00001085: SWAP2 00001086: SWAP1 00001087: PUSH2 0x45b7 0000108a: JUMP 0000108b: JUMPDEST 0000108c: PUSH1 0x40 0000108e: DUP1 0000108f: MLOAD 00001090: DUP1 00001091: DUP4 00001092: SUB 00001093: DUP2 00001094: DUP7 00001095: GAS 00001096: STATICCALL 00001097: ISZERO 00001098: DUP1 00001099: ISZERO 0000109a: PUSH2 0x10a7 0000109d: JUMPI 0000109e: RETURNDATASIZE 0000109f: PUSH1 0x00 000010a1: DUP1 000010a2: RETURNDATACOPY 000010a3: RETURNDATASIZE 000010a4: PUSH1 0x00 000010a6: REVERT 000010a7: JUMPDEST 000010a8: POP 000010a9: POP 000010aa: POP 000010ab: POP 000010ac: PUSH1 0x40 000010ae: MLOAD 000010af: RETURNDATASIZE 000010b0: PUSH1 0x1f 000010b2: NOT 000010b3: PUSH1 0x1f 000010b5: DUP3 000010b6: ADD 000010b7: AND 000010b8: DUP3 000010b9: ADD 000010ba: DUP1 000010bb: PUSH1 0x40 000010bd: MSTORE 000010be: POP 000010bf: DUP2 000010c0: ADD 000010c1: SWAP1 000010c2: PUSH2 0x10cb 000010c5: SWAP2 000010c6: SWAP1 000010c7: PUSH2 0x462f 000010ca: JUMP 000010cb: JUMPDEST 000010cc: SWAP3 000010cd: POP 000010ce: SWAP3 000010cf: POP 000010d0: POP 000010d1: SWAP8 000010d2: POP 000010d3: SWAP8 000010d4: SWAP6 000010d5: POP 000010d6: POP 000010d7: POP 000010d8: POP 000010d9: POP 000010da: POP 000010db: JUMP 000010dc: JUMPDEST 000010dd: PUSH1 0x02 000010df: PUSH1 0x0b 000010e1: SLOAD 000010e2: SUB 000010e3: PUSH2 0x1121 000010e6: JUMPI 000010e7: PUSH1 0x40 000010e9: MLOAD 000010ea: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000110b: DUP2 0000110c: MSTORE 0000110d: PUSH1 0x04 0000110f: ADD 00001110: PUSH2 0x1118 00001113: SWAP1 00001114: PUSH2 0x46bb 00001117: JUMP 00001118: JUMPDEST 00001119: PUSH1 0x40 0000111b: MLOAD 0000111c: DUP1 0000111d: SWAP2 0000111e: SUB 0000111f: SWAP1 00001120: REVERT 00001121: JUMPDEST 00001122: PUSH1 0x02 00001124: PUSH1 0x0b 00001126: DUP2 00001127: SWAP1 00001128: SSTORE 00001129: POP 0000112a: DUP1 0000112b: PUSH2 0x1133 0000112e: CALLER 0000112f: PUSH2 0x1639 00001132: JUMP 00001133: JUMPDEST 00001134: LT 00001135: ISZERO 00001136: PUSH2 0x1174 00001139: JUMPI 0000113a: PUSH1 0x40 0000113c: MLOAD 0000113d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000115e: DUP2 0000115f: MSTORE 00001160: PUSH1 0x04 00001162: ADD 00001163: PUSH2 0x116b 00001166: SWAP1 00001167: PUSH2 0x4727 0000116a: JUMP 0000116b: JUMPDEST 0000116c: PUSH1 0x40 0000116e: MLOAD 0000116f: DUP1 00001170: SWAP2 00001171: SUB 00001172: SWAP1 00001173: REVERT 00001174: JUMPDEST 00001175: PUSH2 0x117e 00001178: CALLER 00001179: DUP3 0000117a: PUSH2 0x2a1b 0000117d: JUMP 0000117e: JUMPDEST 0000117f: PUSH1 0x00 00001181: CALLER 00001182: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001197: AND 00001198: DUP3 00001199: PUSH1 0x40 0000119b: MLOAD 0000119c: PUSH2 0x11a4 0000119f: SWAP1 000011a0: PUSH2 0x476d 000011a3: JUMP 000011a4: JUMPDEST 000011a5: PUSH1 0x00 000011a7: PUSH1 0x40 000011a9: MLOAD 000011aa: DUP1 000011ab: DUP4 000011ac: SUB 000011ad: DUP2 000011ae: DUP6 000011af: DUP8 000011b0: GAS 000011b1: CALL 000011b2: SWAP3 000011b3: POP 000011b4: POP 000011b5: POP 000011b6: RETURNDATASIZE 000011b7: DUP1 000011b8: PUSH1 0x00 000011ba: DUP2 000011bb: EQ 000011bc: PUSH2 0x11e1 000011bf: JUMPI 000011c0: PUSH1 0x40 000011c2: MLOAD 000011c3: SWAP2 000011c4: POP 000011c5: PUSH1 0x1f 000011c7: NOT 000011c8: PUSH1 0x3f 000011ca: RETURNDATASIZE 000011cb: ADD 000011cc: AND 000011cd: DUP3 000011ce: ADD 000011cf: PUSH1 0x40 000011d1: MSTORE 000011d2: RETURNDATASIZE 000011d3: DUP3 000011d4: MSTORE 000011d5: RETURNDATASIZE 000011d6: PUSH1 0x00 000011d8: PUSH1 0x20 000011da: DUP5 000011db: ADD 000011dc: RETURNDATACOPY 000011dd: PUSH2 0x11e6 000011e0: JUMP 000011e1: JUMPDEST 000011e2: PUSH1 0x60 000011e4: SWAP2 000011e5: POP 000011e6: JUMPDEST 000011e7: POP 000011e8: POP 000011e9: SWAP1 000011ea: POP 000011eb: DUP1 000011ec: PUSH2 0x122a 000011ef: JUMPI 000011f0: PUSH1 0x40 000011f2: MLOAD 000011f3: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001214: DUP2 00001215: MSTORE 00001216: PUSH1 0x04 00001218: ADD 00001219: PUSH2 0x1221 0000121c: SWAP1 0000121d: PUSH2 0x47ce 00001220: JUMP 00001221: JUMPDEST 00001222: PUSH1 0x40 00001224: MLOAD 00001225: DUP1 00001226: SWAP2 00001227: SUB 00001228: SWAP1 00001229: REVERT 0000122a: JUMPDEST 0000122b: CALLER 0000122c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001241: AND 00001242: PUSH32 0x7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65 00001263: DUP4 00001264: PUSH1 0x40 00001266: MLOAD 00001267: PUSH2 0x1270 0000126a: SWAP2 0000126b: SWAP1 0000126c: PUSH2 0x3a94 0000126f: JUMP 00001270: JUMPDEST 00001271: PUSH1 0x40 00001273: MLOAD 00001274: DUP1 00001275: SWAP2 00001276: SUB 00001277: SWAP1 00001278: LOG2 00001279: POP 0000127a: PUSH1 0x01 0000127c: PUSH1 0x0b 0000127e: DUP2 0000127f: SWAP1 00001280: SSTORE 00001281: POP 00001282: POP 00001283: JUMP 00001284: JUMPDEST 00001285: PUSH1 0x00 00001287: PUSH1 0x12 00001289: SWAP1 0000128a: POP 0000128b: SWAP1 0000128c: JUMP 0000128d: JUMPDEST 0000128e: PUSH1 0x00 00001290: DUP1 00001291: PUSH2 0x1298 00001294: PUSH2 0x22df 00001297: JUMP 00001298: JUMPDEST 00001299: SWAP1 0000129a: POP 0000129b: PUSH2 0x12b9 0000129e: DUP2 0000129f: DUP6 000012a0: DUP6 000012a1: PUSH2 0x12aa 000012a4: DUP6 000012a5: DUP10 000012a6: PUSH2 0x1e1e 000012a9: JUMP 000012aa: JUMPDEST 000012ab: PUSH2 0x12b4 000012ae: SWAP2 000012af: SWAP1 000012b0: PUSH2 0x481d 000012b3: JUMP 000012b4: JUMPDEST 000012b5: PUSH2 0x2544 000012b8: JUMP 000012b9: JUMPDEST 000012ba: PUSH1 0x01 000012bc: SWAP2 000012bd: POP 000012be: POP 000012bf: SWAP3 000012c0: SWAP2 000012c1: POP 000012c2: POP 000012c3: JUMP 000012c4: JUMPDEST 000012c5: PUSH1 0x00 000012c7: DUP1 000012c8: PUSH1 0x01 000012ca: PUSH1 0x00 000012cc: DUP7 000012cd: PUSH2 0xffff 000012d0: AND 000012d1: PUSH2 0xffff 000012d4: AND 000012d5: DUP2 000012d6: MSTORE 000012d7: PUSH1 0x20 000012d9: ADD 000012da: SWAP1 000012db: DUP2 000012dc: MSTORE 000012dd: PUSH1 0x20 000012df: ADD 000012e0: PUSH1 0x00 000012e2: KECCAK256 000012e3: DUP1 000012e4: SLOAD 000012e5: PUSH2 0x12ed 000012e8: SWAP1 000012e9: PUSH2 0x43c6 000012ec: JUMP 000012ed: JUMPDEST 000012ee: DUP1 000012ef: PUSH1 0x1f 000012f1: ADD 000012f2: PUSH1 0x20 000012f4: DUP1 000012f5: SWAP2 000012f6: DIV 000012f7: MUL 000012f8: PUSH1 0x20 000012fa: ADD 000012fb: PUSH1 0x40 000012fd: MLOAD 000012fe: SWAP1 000012ff: DUP2 00001300: ADD 00001301: PUSH1 0x40 00001303: MSTORE 00001304: DUP1 00001305: SWAP3 00001306: SWAP2 00001307: SWAP1 00001308: DUP2 00001309: DUP2 0000130a: MSTORE 0000130b: PUSH1 0x20 0000130d: ADD 0000130e: DUP3 0000130f: DUP1 00001310: SLOAD 00001311: PUSH2 0x1319 00001314: SWAP1 00001315: PUSH2 0x43c6 00001318: JUMP 00001319: JUMPDEST 0000131a: DUP1 0000131b: ISZERO 0000131c: PUSH2 0x1366 0000131f: JUMPI 00001320: DUP1 00001321: PUSH1 0x1f 00001323: LT 00001324: PUSH2 0x133b 00001327: JUMPI 00001328: PUSH2 0x0100 0000132b: DUP1 0000132c: DUP4 0000132d: SLOAD 0000132e: DIV 0000132f: MUL 00001330: DUP4 00001331: MSTORE 00001332: SWAP2 00001333: PUSH1 0x20 00001335: ADD 00001336: SWAP2 00001337: PUSH2 0x1366 0000133a: JUMP 0000133b: JUMPDEST 0000133c: DUP3 0000133d: ADD 0000133e: SWAP2 0000133f: SWAP1 00001340: PUSH1 0x00 00001342: MSTORE 00001343: PUSH1 0x20 00001345: PUSH1 0x00 00001347: KECCAK256 00001348: SWAP1 00001349: JUMPDEST 0000134a: DUP2 0000134b: SLOAD 0000134c: DUP2 0000134d: MSTORE 0000134e: SWAP1 0000134f: PUSH1 0x01 00001351: ADD 00001352: SWAP1 00001353: PUSH1 0x20 00001355: ADD 00001356: DUP1 00001357: DUP4 00001358: GT 00001359: PUSH2 0x1349 0000135c: JUMPI 0000135d: DUP3 0000135e: SWAP1 0000135f: SUB 00001360: PUSH1 0x1f 00001362: AND 00001363: DUP3 00001364: ADD 00001365: SWAP2 00001366: JUMPDEST 00001367: POP 00001368: POP 00001369: POP 0000136a: POP 0000136b: POP 0000136c: SWAP1 0000136d: POP 0000136e: DUP4 0000136f: DUP4 00001370: PUSH1 0x40 00001372: MLOAD 00001373: PUSH2 0x137d 00001376: SWAP3 00001377: SWAP2 00001378: SWAP1 00001379: PUSH2 0x4427 0000137c: JUMP 0000137d: JUMPDEST 0000137e: PUSH1 0x40 00001380: MLOAD 00001381: DUP1 00001382: SWAP2 00001383: SUB 00001384: SWAP1 00001385: KECCAK256 00001386: DUP2 00001387: DUP1 00001388: MLOAD 00001389: SWAP1 0000138a: PUSH1 0x20 0000138c: ADD 0000138d: KECCAK256 0000138e: EQ 0000138f: SWAP2 00001390: POP 00001391: POP 00001392: SWAP4 00001393: SWAP3 00001394: POP 00001395: POP 00001396: POP 00001397: JUMP 00001398: JUMPDEST 00001399: PUSH2 0x13a0 0000139c: PUSH2 0x24c6 0000139f: JUMP 000013a0: JUMPDEST 000013a1: PUSH32 0x00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675 000013c2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013d7: AND 000013d8: PUSH4 0x42d65a8d 000013dd: DUP5 000013de: DUP5 000013df: DUP5 000013e0: PUSH1 0x40 000013e2: MLOAD 000013e3: DUP5 000013e4: PUSH4 0xffffffff 000013e9: AND 000013ea: PUSH1 0xe0 000013ec: SHL 000013ed: DUP2 000013ee: MSTORE 000013ef: PUSH1 0x04 000013f1: ADD 000013f2: PUSH2 0x13fd 000013f5: SWAP4 000013f6: SWAP3 000013f7: SWAP2 000013f8: SWAP1 000013f9: PUSH2 0x4851 000013fc: JUMP 000013fd: JUMPDEST 000013fe: PUSH1 0x00 00001400: PUSH1 0x40 00001402: MLOAD 00001403: DUP1 00001404: DUP4 00001405: SUB 00001406: DUP2 00001407: PUSH1 0x00 00001409: DUP8 0000140a: DUP1 0000140b: EXTCODESIZE 0000140c: ISZERO 0000140d: DUP1 0000140e: ISZERO 0000140f: PUSH2 0x1417 00001412: JUMPI 00001413: PUSH1 0x00 00001415: DUP1 00001416: REVERT 00001417: JUMPDEST 00001418: POP 00001419: GAS 0000141a: CALL 0000141b: ISZERO 0000141c: DUP1 0000141d: ISZERO 0000141e: PUSH2 0x142b 00001421: JUMPI 00001422: RETURNDATASIZE 00001423: PUSH1 0x00 00001425: DUP1 00001426: RETURNDATACOPY 00001427: RETURNDATASIZE 00001428: PUSH1 0x00 0000142a: REVERT 0000142b: JUMPDEST 0000142c: POP 0000142d: POP 0000142e: POP 0000142f: POP 00001430: POP 00001431: POP 00001432: POP 00001433: JUMP 00001434: JUMPDEST 00001435: PUSH1 0x00 00001437: DUP2 00001438: JUMP 00001439: JUMPDEST 0000143a: PUSH1 0x00 0000143c: DUP2 0000143d: JUMP 0000143e: JUMPDEST 0000143f: PUSH2 0x14d5 00001442: DUP10 00001443: DUP10 00001444: DUP10 00001445: DUP10 00001446: DUP1 00001447: DUP1 00001448: PUSH1 0x1f 0000144a: ADD 0000144b: PUSH1 0x20 0000144d: DUP1 0000144e: SWAP2 0000144f: DIV 00001450: MUL 00001451: PUSH1 0x20 00001453: ADD 00001454: PUSH1 0x40 00001456: MLOAD 00001457: SWAP1 00001458: DUP2 00001459: ADD 0000145a: PUSH1 0x40 0000145c: MSTORE 0000145d: DUP1 0000145e: SWAP4 0000145f: SWAP3 00001460: SWAP2 00001461: SWAP1 00001462: DUP2 00001463: DUP2 00001464: MSTORE 00001465: PUSH1 0x20 00001467: ADD 00001468: DUP4 00001469: DUP4 0000146a: DUP1 0000146b: DUP3 0000146c: DUP5 0000146d: CALLDATACOPY 0000146e: PUSH1 0x00 00001470: DUP2 00001471: DUP5 00001472: ADD 00001473: MSTORE 00001474: PUSH1 0x1f 00001476: NOT 00001477: PUSH1 0x1f 00001479: DUP3 0000147a: ADD 0000147b: AND 0000147c: SWAP1 0000147d: POP 0000147e: DUP1 0000147f: DUP4 00001480: ADD 00001481: SWAP3 00001482: POP 00001483: POP 00001484: POP 00001485: POP 00001486: POP 00001487: POP 00001488: POP 00001489: DUP9 0000148a: DUP9 0000148b: DUP9 0000148c: DUP9 0000148d: DUP9 0000148e: DUP1 0000148f: DUP1 00001490: PUSH1 0x1f 00001492: ADD 00001493: PUSH1 0x20 00001495: DUP1 00001496: SWAP2 00001497: DIV 00001498: MUL 00001499: PUSH1 0x20 0000149b: ADD 0000149c: PUSH1 0x40 0000149e: MLOAD 0000149f: SWAP1 000014a0: DUP2 000014a1: ADD 000014a2: PUSH1 0x40 000014a4: MSTORE 000014a5: DUP1 000014a6: SWAP4 000014a7: SWAP3 000014a8: SWAP2 000014a9: SWAP1 000014aa: DUP2 000014ab: DUP2 000014ac: MSTORE 000014ad: PUSH1 0x20 000014af: ADD 000014b0: DUP4 000014b1: DUP4 000014b2: DUP1 000014b3: DUP3 000014b4: DUP5 000014b5: CALLDATACOPY 000014b6: PUSH1 0x00 000014b8: DUP2 000014b9: DUP5 000014ba: ADD 000014bb: MSTORE 000014bc: PUSH1 0x1f 000014be: NOT 000014bf: PUSH1 0x1f 000014c1: DUP3 000014c2: ADD 000014c3: AND 000014c4: SWAP1 000014c5: POP 000014c6: DUP1 000014c7: DUP4 000014c8: ADD 000014c9: SWAP3 000014ca: POP 000014cb: POP 000014cc: POP 000014cd: POP 000014ce: POP 000014cf: POP 000014d0: POP 000014d1: PUSH2 0x2bf3 000014d4: JUMP 000014d5: JUMPDEST 000014d6: POP 000014d7: POP 000014d8: POP 000014d9: POP 000014da: POP 000014db: POP 000014dc: POP 000014dd: POP 000014de: POP 000014df: JUMP 000014e0: JUMPDEST 000014e1: PUSH1 0x04 000014e3: PUSH1 0x20 000014e5: MSTORE 000014e6: DUP3 000014e7: PUSH1 0x00 000014e9: MSTORE 000014ea: PUSH1 0x40 000014ec: PUSH1 0x00 000014ee: KECCAK256 000014ef: DUP3 000014f0: DUP1 000014f1: MLOAD 000014f2: PUSH1 0x20 000014f4: DUP2 000014f5: ADD 000014f6: DUP3 000014f7: ADD 000014f8: DUP1 000014f9: MLOAD 000014fa: DUP5 000014fb: DUP3 000014fc: MSTORE 000014fd: PUSH1 0x20 000014ff: DUP4 00001500: ADD 00001501: PUSH1 0x20 00001503: DUP6 00001504: ADD 00001505: KECCAK256 00001506: DUP2 00001507: DUP4 00001508: MSTORE 00001509: DUP1 0000150a: SWAP6 0000150b: POP 0000150c: POP 0000150d: POP 0000150e: POP 0000150f: POP 00001510: POP 00001511: PUSH1 0x20 00001513: MSTORE 00001514: DUP1 00001515: PUSH1 0x00 00001517: MSTORE 00001518: PUSH1 0x40 0000151a: PUSH1 0x00 0000151c: KECCAK256 0000151d: PUSH1 0x00 0000151f: SWAP3 00001520: POP 00001521: SWAP3 00001522: POP 00001523: POP 00001524: POP 00001525: SLOAD 00001526: DUP2 00001527: JUMP 00001528: JUMPDEST 00001529: ADDRESS 0000152a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000153f: AND 00001540: PUSH2 0x1547 00001543: PUSH2 0x22df 00001546: JUMP 00001547: JUMPDEST 00001548: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000155d: AND 0000155e: EQ 0000155f: PUSH2 0x159d 00001562: JUMPI 00001563: PUSH1 0x40 00001565: MLOAD 00001566: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001587: DUP2 00001588: MSTORE 00001589: PUSH1 0x04 0000158b: ADD 0000158c: PUSH2 0x1594 0000158f: SWAP1 00001590: PUSH2 0x48f5 00001593: JUMP 00001594: JUMPDEST 00001595: PUSH1 0x40 00001597: MLOAD 00001598: DUP1 00001599: SWAP2 0000159a: SUB 0000159b: SWAP1 0000159c: REVERT 0000159d: JUMPDEST 0000159e: PUSH2 0x1631 000015a1: DUP7 000015a2: DUP7 000015a3: DUP7 000015a4: DUP1 000015a5: DUP1 000015a6: PUSH1 0x1f 000015a8: ADD 000015a9: PUSH1 0x20 000015ab: DUP1 000015ac: SWAP2 000015ad: DIV 000015ae: MUL 000015af: PUSH1 0x20 000015b1: ADD 000015b2: PUSH1 0x40 000015b4: MLOAD 000015b5: SWAP1 000015b6: DUP2 000015b7: ADD 000015b8: PUSH1 0x40 000015ba: MSTORE 000015bb: DUP1 000015bc: SWAP4 000015bd: SWAP3 000015be: SWAP2 000015bf: SWAP1 000015c0: DUP2 000015c1: DUP2 000015c2: MSTORE 000015c3: PUSH1 0x20 000015c5: ADD 000015c6: DUP4 000015c7: DUP4 000015c8: DUP1 000015c9: DUP3 000015ca: DUP5 000015cb: CALLDATACOPY 000015cc: PUSH1 0x00 000015ce: DUP2 000015cf: DUP5 000015d0: ADD 000015d1: MSTORE 000015d2: PUSH1 0x1f 000015d4: NOT 000015d5: PUSH1 0x1f 000015d7: DUP3 000015d8: ADD 000015d9: AND 000015da: SWAP1 000015db: POP 000015dc: DUP1 000015dd: DUP4 000015de: ADD 000015df: SWAP3 000015e0: POP 000015e1: POP 000015e2: POP 000015e3: POP 000015e4: POP 000015e5: POP 000015e6: POP 000015e7: DUP6 000015e8: DUP6 000015e9: DUP6 000015ea: DUP1 000015eb: DUP1 000015ec: PUSH1 0x1f 000015ee: ADD 000015ef: PUSH1 0x20 000015f1: DUP1 000015f2: SWAP2 000015f3: DIV 000015f4: MUL 000015f5: PUSH1 0x20 000015f7: ADD 000015f8: PUSH1 0x40 000015fa: MLOAD 000015fb: SWAP1 000015fc: DUP2 000015fd: ADD 000015fe: PUSH1 0x40 00001600: MSTORE 00001601: DUP1 00001602: SWAP4 00001603: SWAP3 00001604: SWAP2 00001605: SWAP1 00001606: DUP2 00001607: DUP2 00001608: MSTORE 00001609: PUSH1 0x20 0000160b: ADD 0000160c: DUP4 0000160d: DUP4 0000160e: DUP1 0000160f: DUP3 00001610: DUP5 00001611: CALLDATACOPY 00001612: PUSH1 0x00 00001614: DUP2 00001615: DUP5 00001616: ADD 00001617: MSTORE 00001618: PUSH1 0x1f 0000161a: NOT 0000161b: PUSH1 0x1f 0000161d: DUP3 0000161e: ADD 0000161f: AND 00001620: SWAP1 00001621: POP 00001622: DUP1 00001623: DUP4 00001624: ADD 00001625: SWAP3 00001626: POP 00001627: POP 00001628: POP 00001629: POP 0000162a: POP 0000162b: POP 0000162c: POP 0000162d: PUSH2 0x2cd2 00001630: JUMP 00001631: JUMPDEST 00001632: POP 00001633: POP 00001634: POP 00001635: POP 00001636: POP 00001637: POP 00001638: JUMP 00001639: JUMPDEST 0000163a: PUSH1 0x00 0000163c: PUSH1 0x06 0000163e: PUSH1 0x00 00001640: DUP4 00001641: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001656: AND 00001657: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000166c: AND 0000166d: DUP2 0000166e: MSTORE 0000166f: PUSH1 0x20 00001671: ADD 00001672: SWAP1 00001673: DUP2 00001674: MSTORE 00001675: PUSH1 0x20 00001677: ADD 00001678: PUSH1 0x00 0000167a: KECCAK256 0000167b: SLOAD 0000167c: SWAP1 0000167d: POP 0000167e: SWAP2 0000167f: SWAP1 00001680: POP 00001681: JUMP 00001682: JUMPDEST 00001683: PUSH2 0x168a 00001686: PUSH2 0x24c6 00001689: JUMP 0000168a: JUMPDEST 0000168b: PUSH2 0x1694 0000168e: PUSH1 0x00 00001690: PUSH2 0x2d3e 00001693: JUMP 00001694: JUMPDEST 00001695: JUMP 00001696: JUMPDEST 00001697: PUSH1 0x01 00001699: PUSH1 0x20 0000169b: MSTORE 0000169c: DUP1 0000169d: PUSH1 0x00 0000169f: MSTORE 000016a0: PUSH1 0x40 000016a2: PUSH1 0x00 000016a4: KECCAK256 000016a5: PUSH1 0x00 000016a7: SWAP2 000016a8: POP 000016a9: SWAP1 000016aa: POP 000016ab: DUP1 000016ac: SLOAD 000016ad: PUSH2 0x16b5 000016b0: SWAP1 000016b1: PUSH2 0x43c6 000016b4: JUMP 000016b5: JUMPDEST 000016b6: DUP1 000016b7: PUSH1 0x1f 000016b9: ADD 000016ba: PUSH1 0x20 000016bc: DUP1 000016bd: SWAP2 000016be: DIV 000016bf: MUL 000016c0: PUSH1 0x20 000016c2: ADD 000016c3: PUSH1 0x40 000016c5: MLOAD 000016c6: SWAP1 000016c7: DUP2 000016c8: ADD 000016c9: PUSH1 0x40 000016cb: MSTORE 000016cc: DUP1 000016cd: SWAP3 000016ce: SWAP2 000016cf: SWAP1 000016d0: DUP2 000016d1: DUP2 000016d2: MSTORE 000016d3: PUSH1 0x20 000016d5: ADD 000016d6: DUP3 000016d7: DUP1 000016d8: SLOAD 000016d9: PUSH2 0x16e1 000016dc: SWAP1 000016dd: PUSH2 0x43c6 000016e0: JUMP 000016e1: JUMPDEST 000016e2: DUP1 000016e3: ISZERO 000016e4: PUSH2 0x172e 000016e7: JUMPI 000016e8: DUP1 000016e9: PUSH1 0x1f 000016eb: LT 000016ec: PUSH2 0x1703 000016ef: JUMPI 000016f0: PUSH2 0x0100 000016f3: DUP1 000016f4: DUP4 000016f5: SLOAD 000016f6: DIV 000016f7: MUL 000016f8: DUP4 000016f9: MSTORE 000016fa: SWAP2 000016fb: PUSH1 0x20 000016fd: ADD 000016fe: SWAP2 000016ff: PUSH2 0x172e 00001702: JUMP 00001703: JUMPDEST 00001704: DUP3 00001705: ADD 00001706: SWAP2 00001707: SWAP1 00001708: PUSH1 0x00 0000170a: MSTORE 0000170b: PUSH1 0x20 0000170d: PUSH1 0x00 0000170f: KECCAK256 00001710: SWAP1 00001711: JUMPDEST 00001712: DUP2 00001713: SLOAD 00001714: DUP2 00001715: MSTORE 00001716: SWAP1 00001717: PUSH1 0x01 00001719: ADD 0000171a: SWAP1 0000171b: PUSH1 0x20 0000171d: ADD 0000171e: DUP1 0000171f: DUP4 00001720: GT 00001721: PUSH2 0x1711 00001724: JUMPI 00001725: DUP3 00001726: SWAP1 00001727: SUB 00001728: PUSH1 0x1f 0000172a: AND 0000172b: DUP3 0000172c: ADD 0000172d: SWAP2 0000172e: JUMPDEST 0000172f: POP 00001730: POP 00001731: POP 00001732: POP 00001733: POP 00001734: DUP2 00001735: JUMP 00001736: JUMPDEST 00001737: PUSH1 0x02 00001739: PUSH1 0x20 0000173b: MSTORE 0000173c: DUP2 0000173d: PUSH1 0x00 0000173f: MSTORE 00001740: PUSH1 0x40 00001742: PUSH1 0x00 00001744: KECCAK256 00001745: PUSH1 0x20 00001747: MSTORE 00001748: DUP1 00001749: PUSH1 0x00 0000174b: MSTORE 0000174c: PUSH1 0x40 0000174e: PUSH1 0x00 00001750: KECCAK256 00001751: PUSH1 0x00 00001753: SWAP2 00001754: POP 00001755: SWAP2 00001756: POP 00001757: POP 00001758: SLOAD 00001759: DUP2 0000175a: JUMP 0000175b: JUMPDEST 0000175c: PUSH1 0x00 0000175e: DUP1 0000175f: PUSH1 0x00 00001761: SWAP1 00001762: SLOAD 00001763: SWAP1 00001764: PUSH2 0x0100 00001767: EXP 00001768: SWAP1 00001769: DIV 0000176a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000177f: AND 00001780: SWAP1 00001781: POP 00001782: SWAP1 00001783: JUMP 00001784: JUMPDEST 00001785: PUSH1 0x00 00001787: PUSH2 0x178e 0000178a: PUSH2 0x0fa1 0000178d: JUMP 0000178e: JUMPDEST 0000178f: SWAP1 00001790: POP 00001791: SWAP1 00001792: JUMP 00001793: JUMPDEST 00001794: PUSH1 0x03 00001796: PUSH1 0x00 00001798: SWAP1 00001799: SLOAD 0000179a: SWAP1 0000179b: PUSH2 0x0100 0000179e: EXP 0000179f: SWAP1 000017a0: DIV 000017a1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017b6: AND 000017b7: DUP2 000017b8: JUMP 000017b9: JUMPDEST 000017ba: PUSH1 0x60 000017bc: PUSH1 0x0a 000017be: DUP1 000017bf: SLOAD 000017c0: PUSH2 0x17c8 000017c3: SWAP1 000017c4: PUSH2 0x43c6 000017c7: JUMP 000017c8: JUMPDEST 000017c9: DUP1 000017ca: PUSH1 0x1f 000017cc: ADD 000017cd: PUSH1 0x20 000017cf: DUP1 000017d0: SWAP2 000017d1: DIV 000017d2: MUL 000017d3: PUSH1 0x20 000017d5: ADD 000017d6: PUSH1 0x40 000017d8: MLOAD 000017d9: SWAP1 000017da: DUP2 000017db: ADD 000017dc: PUSH1 0x40 000017de: MSTORE 000017df: DUP1 000017e0: SWAP3 000017e1: SWAP2 000017e2: SWAP1 000017e3: DUP2 000017e4: DUP2 000017e5: MSTORE 000017e6: PUSH1 0x20 000017e8: ADD 000017e9: DUP3 000017ea: DUP1 000017eb: SLOAD 000017ec: PUSH2 0x17f4 000017ef: SWAP1 000017f0: PUSH2 0x43c6 000017f3: JUMP 000017f4: JUMPDEST 000017f5: DUP1 000017f6: ISZERO 000017f7: PUSH2 0x1841 000017fa: JUMPI 000017fb: DUP1 000017fc: PUSH1 0x1f 000017fe: LT 000017ff: PUSH2 0x1816 00001802: JUMPI 00001803: PUSH2 0x0100 00001806: DUP1 00001807: DUP4 00001808: SLOAD 00001809: DIV 0000180a: MUL 0000180b: DUP4 0000180c: MSTORE 0000180d: SWAP2 0000180e: PUSH1 0x20 00001810: ADD 00001811: SWAP2 00001812: PUSH2 0x1841 00001815: JUMP 00001816: JUMPDEST 00001817: DUP3 00001818: ADD 00001819: SWAP2 0000181a: SWAP1 0000181b: PUSH1 0x00 0000181d: MSTORE 0000181e: PUSH1 0x20 00001820: PUSH1 0x00 00001822: KECCAK256 00001823: SWAP1 00001824: JUMPDEST 00001825: DUP2 00001826: SLOAD 00001827: DUP2 00001828: MSTORE 00001829: SWAP1 0000182a: PUSH1 0x01 0000182c: ADD 0000182d: SWAP1 0000182e: PUSH1 0x20 00001830: ADD 00001831: DUP1 00001832: DUP4 00001833: GT 00001834: PUSH2 0x1824 00001837: JUMPI 00001838: DUP3 00001839: SWAP1 0000183a: SUB 0000183b: PUSH1 0x1f 0000183d: AND 0000183e: DUP3 0000183f: ADD 00001840: SWAP2 00001841: JUMPDEST 00001842: POP 00001843: POP 00001844: POP 00001845: POP 00001846: POP 00001847: SWAP1 00001848: POP 00001849: SWAP1 0000184a: JUMP 0000184b: JUMPDEST 0000184c: PUSH1 0x60 0000184e: PUSH1 0x00 00001850: PUSH1 0x01 00001852: PUSH1 0x00 00001854: DUP5 00001855: PUSH2 0xffff 00001858: AND 00001859: PUSH2 0xffff 0000185c: AND 0000185d: DUP2 0000185e: MSTORE 0000185f: PUSH1 0x20 00001861: ADD 00001862: SWAP1 00001863: DUP2 00001864: MSTORE 00001865: PUSH1 0x20 00001867: ADD 00001868: PUSH1 0x00 0000186a: KECCAK256 0000186b: DUP1 0000186c: SLOAD 0000186d: PUSH2 0x1875 00001870: SWAP1 00001871: PUSH2 0x43c6 00001874: JUMP 00001875: JUMPDEST 00001876: DUP1 00001877: PUSH1 0x1f 00001879: ADD 0000187a: PUSH1 0x20 0000187c: DUP1 0000187d: SWAP2 0000187e: DIV 0000187f: MUL 00001880: PUSH1 0x20 00001882: ADD 00001883: PUSH1 0x40 00001885: MLOAD 00001886: SWAP1 00001887: DUP2 00001888: ADD 00001889: PUSH1 0x40 0000188b: MSTORE 0000188c: DUP1 0000188d: SWAP3 0000188e: SWAP2 0000188f: SWAP1 00001890: DUP2 00001891: DUP2 00001892: MSTORE 00001893: PUSH1 0x20 00001895: ADD 00001896: DUP3 00001897: DUP1 00001898: SLOAD 00001899: PUSH2 0x18a1 0000189c: SWAP1 0000189d: PUSH2 0x43c6 000018a0: JUMP 000018a1: JUMPDEST 000018a2: DUP1 000018a3: ISZERO 000018a4: PUSH2 0x18ee 000018a7: JUMPI 000018a8: DUP1 000018a9: PUSH1 0x1f 000018ab: LT 000018ac: PUSH2 0x18c3 000018af: JUMPI 000018b0: PUSH2 0x0100 000018b3: DUP1 000018b4: DUP4 000018b5: SLOAD 000018b6: DIV 000018b7: MUL 000018b8: DUP4 000018b9: MSTORE 000018ba: SWAP2 000018bb: PUSH1 0x20 000018bd: ADD 000018be: SWAP2 000018bf: PUSH2 0x18ee 000018c2: JUMP 000018c3: JUMPDEST 000018c4: DUP3 000018c5: ADD 000018c6: SWAP2 000018c7: SWAP1 000018c8: PUSH1 0x00 000018ca: MSTORE 000018cb: PUSH1 0x20 000018cd: PUSH1 0x00 000018cf: KECCAK256 000018d0: SWAP1 000018d1: JUMPDEST 000018d2: DUP2 000018d3: SLOAD 000018d4: DUP2 000018d5: MSTORE 000018d6: SWAP1 000018d7: PUSH1 0x01 000018d9: ADD 000018da: SWAP1 000018db: PUSH1 0x20 000018dd: ADD 000018de: DUP1 000018df: DUP4 000018e0: GT 000018e1: PUSH2 0x18d1 000018e4: JUMPI 000018e5: DUP3 000018e6: SWAP1 000018e7: SUB 000018e8: PUSH1 0x1f 000018ea: AND 000018eb: DUP3 000018ec: ADD 000018ed: SWAP2 000018ee: JUMPDEST 000018ef: POP 000018f0: POP 000018f1: POP 000018f2: POP 000018f3: POP 000018f4: SWAP1 000018f5: POP 000018f6: PUSH1 0x00 000018f8: DUP2 000018f9: MLOAD 000018fa: SUB 000018fb: PUSH2 0x1939 000018fe: JUMPI 000018ff: PUSH1 0x40 00001901: MLOAD 00001902: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001923: DUP2 00001924: MSTORE 00001925: PUSH1 0x04 00001927: ADD 00001928: PUSH2 0x1930 0000192b: SWAP1 0000192c: PUSH2 0x4961 0000192f: JUMP 00001930: JUMPDEST 00001931: PUSH1 0x40 00001933: MLOAD 00001934: DUP1 00001935: SWAP2 00001936: SUB 00001937: SWAP1 00001938: REVERT 00001939: JUMPDEST 0000193a: PUSH2 0x195c 0000193d: PUSH1 0x00 0000193f: PUSH1 0x14 00001941: DUP4 00001942: MLOAD 00001943: PUSH2 0x194c 00001946: SWAP2 00001947: SWAP1 00001948: PUSH2 0x4981 0000194b: JUMP 0000194c: JUMPDEST 0000194d: DUP4 0000194e: PUSH2 0x2e02 00001951: SWAP1 00001952: SWAP3 00001953: SWAP2 00001954: SWAP1 00001955: PUSH4 0xffffffff 0000195a: AND 0000195b: JUMP 0000195c: JUMPDEST 0000195d: SWAP2 0000195e: POP 0000195f: POP 00001960: SWAP2 00001961: SWAP1 00001962: POP 00001963: JUMP 00001964: JUMPDEST 00001965: PUSH1 0x00 00001967: DUP1 00001968: PUSH2 0x196f 0000196b: PUSH2 0x22df 0000196e: JUMP 0000196f: JUMPDEST 00001970: SWAP1 00001971: POP 00001972: PUSH1 0x00 00001974: PUSH2 0x197d 00001977: DUP3 00001978: DUP7 00001979: PUSH2 0x1e1e 0000197c: JUMP 0000197d: JUMPDEST 0000197e: SWAP1 0000197f: POP 00001980: DUP4 00001981: DUP2 00001982: LT 00001983: ISZERO 00001984: PUSH2 0x19c2 00001987: JUMPI 00001988: PUSH1 0x40 0000198a: MLOAD 0000198b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000019ac: DUP2 000019ad: MSTORE 000019ae: PUSH1 0x04 000019b0: ADD 000019b1: PUSH2 0x19b9 000019b4: SWAP1 000019b5: PUSH2 0x4a27 000019b8: JUMP 000019b9: JUMPDEST 000019ba: PUSH1 0x40 000019bc: MLOAD 000019bd: DUP1 000019be: SWAP2 000019bf: SUB 000019c0: SWAP1 000019c1: REVERT 000019c2: JUMPDEST 000019c3: PUSH2 0x19cf 000019c6: DUP3 000019c7: DUP7 000019c8: DUP7 000019c9: DUP5 000019ca: SUB 000019cb: PUSH2 0x2544 000019ce: JUMP 000019cf: JUMPDEST 000019d0: PUSH1 0x01 000019d2: SWAP3 000019d3: POP 000019d4: POP 000019d5: POP 000019d6: SWAP3 000019d7: SWAP2 000019d8: POP 000019d9: POP 000019da: JUMP 000019db: JUMPDEST 000019dc: PUSH2 0x19e3 000019df: PUSH2 0x24c6 000019e2: JUMP 000019e3: JUMPDEST 000019e4: DUP2 000019e5: DUP2 000019e6: ADDRESS 000019e7: PUSH1 0x40 000019e9: MLOAD 000019ea: PUSH1 0x20 000019ec: ADD 000019ed: PUSH2 0x19f8 000019f0: SWAP4 000019f1: SWAP3 000019f2: SWAP2 000019f3: SWAP1 000019f4: PUSH2 0x4a47 000019f7: JUMP 000019f8: JUMPDEST 000019f9: PUSH1 0x40 000019fb: MLOAD 000019fc: PUSH1 0x20 000019fe: DUP2 000019ff: DUP4 00001a00: SUB 00001a01: SUB 00001a02: DUP2 00001a03: MSTORE 00001a04: SWAP1 00001a05: PUSH1 0x40 00001a07: MSTORE 00001a08: PUSH1 0x01 00001a0a: PUSH1 0x00 00001a0c: DUP6 00001a0d: PUSH2 0xffff 00001a10: AND 00001a11: PUSH2 0xffff 00001a14: AND 00001a15: DUP2 00001a16: MSTORE 00001a17: PUSH1 0x20 00001a19: ADD 00001a1a: SWAP1 00001a1b: DUP2 00001a1c: MSTORE 00001a1d: PUSH1 0x20 00001a1f: ADD 00001a20: PUSH1 0x00 00001a22: KECCAK256 00001a23: SWAP1 00001a24: DUP2 00001a25: PUSH2 0x1a2e 00001a28: SWAP2 00001a29: SWAP1 00001a2a: PUSH2 0x4c13 00001a2d: JUMP 00001a2e: JUMPDEST 00001a2f: POP 00001a30: PUSH32 0x8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce 00001a51: DUP4 00001a52: DUP4 00001a53: DUP4 00001a54: PUSH1 0x40 00001a56: MLOAD 00001a57: PUSH2 0x1a62 00001a5a: SWAP4 00001a5b: SWAP3 00001a5c: SWAP2 00001a5d: SWAP1 00001a5e: PUSH2 0x4851 00001a61: JUMP 00001a62: JUMPDEST 00001a63: PUSH1 0x40 00001a65: MLOAD 00001a66: DUP1 00001a67: SWAP2 00001a68: SUB 00001a69: SWAP1 00001a6a: LOG1 00001a6b: POP 00001a6c: POP 00001a6d: POP 00001a6e: JUMP 00001a6f: JUMPDEST 00001a70: PUSH1 0x00 00001a72: DUP1 00001a73: PUSH2 0x1a7a 00001a76: PUSH2 0x22df 00001a79: JUMP 00001a7a: JUMPDEST 00001a7b: SWAP1 00001a7c: POP 00001a7d: PUSH2 0x1a87 00001a80: DUP2 00001a81: DUP6 00001a82: DUP6 00001a83: PUSH2 0x2799 00001a86: JUMP 00001a87: JUMPDEST 00001a88: PUSH1 0x01 00001a8a: SWAP2 00001a8b: POP 00001a8c: POP 00001a8d: SWAP3 00001a8e: SWAP2 00001a8f: POP 00001a90: POP 00001a91: JUMP 00001a92: JUMPDEST 00001a93: PUSH32 0x00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675 00001ab4: DUP2 00001ab5: JUMP 00001ab6: JUMPDEST 00001ab7: PUSH2 0x1abe 00001aba: PUSH2 0x24c6 00001abd: JUMP 00001abe: JUMPDEST 00001abf: DUP1 00001ac0: PUSH1 0x03 00001ac2: PUSH1 0x00 00001ac4: PUSH2 0x0100 00001ac7: EXP 00001ac8: DUP2 00001ac9: SLOAD 00001aca: DUP2 00001acb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ae0: MUL 00001ae1: NOT 00001ae2: AND 00001ae3: SWAP1 00001ae4: DUP4 00001ae5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001afa: AND 00001afb: MUL 00001afc: OR 00001afd: SWAP1 00001afe: SSTORE 00001aff: POP 00001b00: PUSH32 0x5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b 00001b21: DUP2 00001b22: PUSH1 0x40 00001b24: MLOAD 00001b25: PUSH2 0x1b2e 00001b28: SWAP2 00001b29: SWAP1 00001b2a: PUSH2 0x40e7 00001b2d: JUMP 00001b2e: JUMPDEST 00001b2f: PUSH1 0x40 00001b31: MLOAD 00001b32: DUP1 00001b33: SWAP2 00001b34: SUB 00001b35: SWAP1 00001b36: LOG1 00001b37: POP 00001b38: JUMP 00001b39: JUMPDEST 00001b3a: PUSH2 0x1b41 00001b3d: PUSH2 0x24c6 00001b40: JUMP 00001b41: JUMPDEST 00001b42: PUSH32 0x00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675 00001b63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b78: AND 00001b79: PUSH4 0xcbed8b9c 00001b7e: DUP7 00001b7f: DUP7 00001b80: DUP7 00001b81: DUP7 00001b82: DUP7 00001b83: PUSH1 0x40 00001b85: MLOAD 00001b86: DUP7 00001b87: PUSH4 0xffffffff 00001b8c: AND 00001b8d: PUSH1 0xe0 00001b8f: SHL 00001b90: DUP2 00001b91: MSTORE 00001b92: PUSH1 0x04 00001b94: ADD 00001b95: PUSH2 0x1ba2 00001b98: SWAP6 00001b99: SWAP5 00001b9a: SWAP4 00001b9b: SWAP3 00001b9c: SWAP2 00001b9d: SWAP1 00001b9e: PUSH2 0x4ce5 00001ba1: JUMP 00001ba2: JUMPDEST 00001ba3: PUSH1 0x00 00001ba5: PUSH1 0x40 00001ba7: MLOAD 00001ba8: DUP1 00001ba9: DUP4 00001baa: SUB 00001bab: DUP2 00001bac: PUSH1 0x00 00001bae: DUP8 00001baf: DUP1 00001bb0: EXTCODESIZE 00001bb1: ISZERO 00001bb2: DUP1 00001bb3: ISZERO 00001bb4: PUSH2 0x1bbc 00001bb7: JUMPI 00001bb8: PUSH1 0x00 00001bba: DUP1 00001bbb: REVERT 00001bbc: JUMPDEST 00001bbd: POP 00001bbe: GAS 00001bbf: CALL 00001bc0: ISZERO 00001bc1: DUP1 00001bc2: ISZERO 00001bc3: PUSH2 0x1bd0 00001bc6: JUMPI 00001bc7: RETURNDATASIZE 00001bc8: PUSH1 0x00 00001bca: DUP1 00001bcb: RETURNDATACOPY 00001bcc: RETURNDATASIZE 00001bcd: PUSH1 0x00 00001bcf: REVERT 00001bd0: JUMPDEST 00001bd1: POP 00001bd2: POP 00001bd3: POP 00001bd4: POP 00001bd5: POP 00001bd6: POP 00001bd7: POP 00001bd8: POP 00001bd9: POP 00001bda: JUMP 00001bdb: JUMPDEST 00001bdc: PUSH1 0x00 00001bde: PUSH1 0x04 00001be0: PUSH1 0x00 00001be2: DUP9 00001be3: PUSH2 0xffff 00001be6: AND 00001be7: PUSH2 0xffff 00001bea: AND 00001beb: DUP2 00001bec: MSTORE 00001bed: PUSH1 0x20 00001bef: ADD 00001bf0: SWAP1 00001bf1: DUP2 00001bf2: MSTORE 00001bf3: PUSH1 0x20 00001bf5: ADD 00001bf6: PUSH1 0x00 00001bf8: KECCAK256 00001bf9: DUP7 00001bfa: DUP7 00001bfb: PUSH1 0x40 00001bfd: MLOAD 00001bfe: PUSH2 0x1c08 00001c01: SWAP3 00001c02: SWAP2 00001c03: SWAP1 00001c04: PUSH2 0x4427 00001c07: JUMP 00001c08: JUMPDEST 00001c09: SWAP1 00001c0a: DUP2 00001c0b: MSTORE 00001c0c: PUSH1 0x20 00001c0e: ADD 00001c0f: PUSH1 0x40 00001c11: MLOAD 00001c12: DUP1 00001c13: SWAP2 00001c14: SUB 00001c15: SWAP1 00001c16: KECCAK256 00001c17: PUSH1 0x00 00001c19: DUP6 00001c1a: PUSH8 0xffffffffffffffff 00001c23: AND 00001c24: PUSH8 0xffffffffffffffff 00001c2d: AND 00001c2e: DUP2 00001c2f: MSTORE 00001c30: PUSH1 0x20 00001c32: ADD 00001c33: SWAP1 00001c34: DUP2 00001c35: MSTORE 00001c36: PUSH1 0x20 00001c38: ADD 00001c39: PUSH1 0x00 00001c3b: KECCAK256 00001c3c: SLOAD 00001c3d: SWAP1 00001c3e: POP 00001c3f: PUSH1 0x00 00001c41: DUP1 00001c42: SHL 00001c43: DUP2 00001c44: SUB 00001c45: PUSH2 0x1c83 00001c48: JUMPI 00001c49: PUSH1 0x40 00001c4b: MLOAD 00001c4c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001c6d: DUP2 00001c6e: MSTORE 00001c6f: PUSH1 0x04 00001c71: ADD 00001c72: PUSH2 0x1c7a 00001c75: SWAP1 00001c76: PUSH2 0x4da5 00001c79: JUMP 00001c7a: JUMPDEST 00001c7b: PUSH1 0x40 00001c7d: MLOAD 00001c7e: DUP1 00001c7f: SWAP2 00001c80: SUB 00001c81: SWAP1 00001c82: REVERT 00001c83: JUMPDEST 00001c84: DUP1 00001c85: DUP4 00001c86: DUP4 00001c87: PUSH1 0x40 00001c89: MLOAD 00001c8a: PUSH2 0x1c94 00001c8d: SWAP3 00001c8e: SWAP2 00001c8f: SWAP1 00001c90: PUSH2 0x4427 00001c93: JUMP 00001c94: JUMPDEST 00001c95: PUSH1 0x40 00001c97: MLOAD 00001c98: DUP1 00001c99: SWAP2 00001c9a: SUB 00001c9b: SWAP1 00001c9c: KECCAK256 00001c9d: EQ 00001c9e: PUSH2 0x1cdc 00001ca1: JUMPI 00001ca2: PUSH1 0x40 00001ca4: MLOAD 00001ca5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001cc6: DUP2 00001cc7: MSTORE 00001cc8: PUSH1 0x04 00001cca: ADD 00001ccb: PUSH2 0x1cd3 00001cce: SWAP1 00001ccf: PUSH2 0x4e37 00001cd2: JUMP 00001cd3: JUMPDEST 00001cd4: PUSH1 0x40 00001cd6: MLOAD 00001cd7: DUP1 00001cd8: SWAP2 00001cd9: SUB 00001cda: SWAP1 00001cdb: REVERT 00001cdc: JUMPDEST 00001cdd: PUSH1 0x00 00001cdf: DUP1 00001ce0: SHL 00001ce1: PUSH1 0x04 00001ce3: PUSH1 0x00 00001ce5: DUP10 00001ce6: PUSH2 0xffff 00001ce9: AND 00001cea: PUSH2 0xffff 00001ced: AND 00001cee: DUP2 00001cef: MSTORE 00001cf0: PUSH1 0x20 00001cf2: ADD 00001cf3: SWAP1 00001cf4: DUP2 00001cf5: MSTORE 00001cf6: PUSH1 0x20 00001cf8: ADD 00001cf9: PUSH1 0x00 00001cfb: KECCAK256 00001cfc: DUP8 00001cfd: DUP8 00001cfe: PUSH1 0x40 00001d00: MLOAD 00001d01: PUSH2 0x1d0b 00001d04: SWAP3 00001d05: SWAP2 00001d06: SWAP1 00001d07: PUSH2 0x4427 00001d0a: JUMP 00001d0b: JUMPDEST 00001d0c: SWAP1 00001d0d: DUP2 00001d0e: MSTORE 00001d0f: PUSH1 0x20 00001d11: ADD 00001d12: PUSH1 0x40 00001d14: MLOAD 00001d15: DUP1 00001d16: SWAP2 00001d17: SUB 00001d18: SWAP1 00001d19: KECCAK256 00001d1a: PUSH1 0x00 00001d1c: DUP7 00001d1d: PUSH8 0xffffffffffffffff 00001d26: AND 00001d27: PUSH8 0xffffffffffffffff 00001d30: AND 00001d31: DUP2 00001d32: MSTORE 00001d33: PUSH1 0x20 00001d35: ADD 00001d36: SWAP1 00001d37: DUP2 00001d38: MSTORE 00001d39: PUSH1 0x20 00001d3b: ADD 00001d3c: PUSH1 0x00 00001d3e: KECCAK256 00001d3f: DUP2 00001d40: SWAP1 00001d41: SSTORE 00001d42: POP 00001d43: PUSH2 0x1dd6 00001d46: DUP8 00001d47: DUP8 00001d48: DUP8 00001d49: DUP1 00001d4a: DUP1 00001d4b: PUSH1 0x1f 00001d4d: ADD 00001d4e: PUSH1 0x20 00001d50: DUP1 00001d51: SWAP2 00001d52: DIV 00001d53: MUL 00001d54: PUSH1 0x20 00001d56: ADD 00001d57: PUSH1 0x40 00001d59: MLOAD 00001d5a: SWAP1 00001d5b: DUP2 00001d5c: ADD 00001d5d: PUSH1 0x40 00001d5f: MSTORE 00001d60: DUP1 00001d61: SWAP4 00001d62: SWAP3 00001d63: SWAP2 00001d64: SWAP1 00001d65: DUP2 00001d66: DUP2 00001d67: MSTORE 00001d68: PUSH1 0x20 00001d6a: ADD 00001d6b: DUP4 00001d6c: DUP4 00001d6d: DUP1 00001d6e: DUP3 00001d6f: DUP5 00001d70: CALLDATACOPY 00001d71: PUSH1 0x00 00001d73: DUP2 00001d74: DUP5 00001d75: ADD 00001d76: MSTORE 00001d77: PUSH1 0x1f 00001d79: NOT 00001d7a: PUSH1 0x1f 00001d7c: DUP3 00001d7d: ADD 00001d7e: AND 00001d7f: SWAP1 00001d80: POP 00001d81: DUP1 00001d82: DUP4 00001d83: ADD 00001d84: SWAP3 00001d85: POP 00001d86: POP 00001d87: POP 00001d88: POP 00001d89: POP 00001d8a: POP 00001d8b: POP 00001d8c: DUP7 00001d8d: DUP7 00001d8e: DUP7 00001d8f: DUP1 00001d90: DUP1 00001d91: PUSH1 0x1f 00001d93: ADD 00001d94: PUSH1 0x20 00001d96: DUP1 00001d97: SWAP2 00001d98: DIV 00001d99: MUL 00001d9a: PUSH1 0x20 00001d9c: ADD 00001d9d: PUSH1 0x40 00001d9f: MLOAD 00001da0: SWAP1 00001da1: DUP2 00001da2: ADD 00001da3: PUSH1 0x40 00001da5: MSTORE 00001da6: DUP1 00001da7: SWAP4 00001da8: SWAP3 00001da9: SWAP2 00001daa: SWAP1 00001dab: DUP2 00001dac: DUP2 00001dad: MSTORE 00001dae: PUSH1 0x20 00001db0: ADD 00001db1: DUP4 00001db2: DUP4 00001db3: DUP1 00001db4: DUP3 00001db5: DUP5 00001db6: CALLDATACOPY 00001db7: PUSH1 0x00 00001db9: DUP2 00001dba: DUP5 00001dbb: ADD 00001dbc: MSTORE 00001dbd: PUSH1 0x1f 00001dbf: NOT 00001dc0: PUSH1 0x1f 00001dc2: DUP3 00001dc3: ADD 00001dc4: AND 00001dc5: SWAP1 00001dc6: POP 00001dc7: DUP1 00001dc8: DUP4 00001dc9: ADD 00001dca: SWAP3 00001dcb: POP 00001dcc: POP 00001dcd: POP 00001dce: POP 00001dcf: POP 00001dd0: POP 00001dd1: POP 00001dd2: PUSH2 0x2cd2 00001dd5: JUMP 00001dd6: JUMPDEST 00001dd7: PUSH32 0xc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e5 00001df8: DUP8 00001df9: DUP8 00001dfa: DUP8 00001dfb: DUP8 00001dfc: DUP6 00001dfd: PUSH1 0x40 00001dff: MLOAD 00001e00: PUSH2 0x1e0d 00001e03: SWAP6 00001e04: SWAP5 00001e05: SWAP4 00001e06: SWAP3 00001e07: SWAP2 00001e08: SWAP1 00001e09: PUSH2 0x4e66 00001e0c: JUMP 00001e0d: JUMPDEST 00001e0e: PUSH1 0x40 00001e10: MLOAD 00001e11: DUP1 00001e12: SWAP2 00001e13: SUB 00001e14: SWAP1 00001e15: LOG1 00001e16: POP 00001e17: POP 00001e18: POP 00001e19: POP 00001e1a: POP 00001e1b: POP 00001e1c: POP 00001e1d: JUMP 00001e1e: JUMPDEST 00001e1f: PUSH1 0x00 00001e21: PUSH1 0x07 00001e23: PUSH1 0x00 00001e25: DUP5 00001e26: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e3b: AND 00001e3c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e51: AND 00001e52: DUP2 00001e53: MSTORE 00001e54: PUSH1 0x20 00001e56: ADD 00001e57: SWAP1 00001e58: DUP2 00001e59: MSTORE 00001e5a: PUSH1 0x20 00001e5c: ADD 00001e5d: PUSH1 0x00 00001e5f: KECCAK256 00001e60: PUSH1 0x00 00001e62: DUP4 00001e63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e78: AND 00001e79: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e8e: AND 00001e8f: DUP2 00001e90: MSTORE 00001e91: PUSH1 0x20 00001e93: ADD 00001e94: SWAP1 00001e95: DUP2 00001e96: MSTORE 00001e97: PUSH1 0x20 00001e99: ADD 00001e9a: PUSH1 0x00 00001e9c: KECCAK256 00001e9d: SLOAD 00001e9e: SWAP1 00001e9f: POP 00001ea0: SWAP3 00001ea1: SWAP2 00001ea2: POP 00001ea3: POP 00001ea4: JUMP 00001ea5: JUMPDEST 00001ea6: PUSH2 0x1ead 00001ea9: PUSH2 0x24c6 00001eac: JUMP 00001ead: JUMPDEST 00001eae: PUSH1 0x00 00001eb0: DUP2 00001eb1: GT 00001eb2: PUSH2 0x1ef0 00001eb5: JUMPI 00001eb6: PUSH1 0x40 00001eb8: MLOAD 00001eb9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001eda: DUP2 00001edb: MSTORE 00001edc: PUSH1 0x04 00001ede: ADD 00001edf: PUSH2 0x1ee7 00001ee2: SWAP1 00001ee3: PUSH2 0x4f00 00001ee6: JUMP 00001ee7: JUMPDEST 00001ee8: PUSH1 0x40 00001eea: MLOAD 00001eeb: DUP1 00001eec: SWAP2 00001eed: SUB 00001eee: SWAP1 00001eef: REVERT 00001ef0: JUMPDEST 00001ef1: DUP1 00001ef2: PUSH1 0x02 00001ef4: PUSH1 0x00 00001ef6: DUP6 00001ef7: PUSH2 0xffff 00001efa: AND 00001efb: PUSH2 0xffff 00001efe: AND 00001eff: DUP2 00001f00: MSTORE 00001f01: PUSH1 0x20 00001f03: ADD 00001f04: SWAP1 00001f05: DUP2 00001f06: MSTORE 00001f07: PUSH1 0x20 00001f09: ADD 00001f0a: PUSH1 0x00 00001f0c: KECCAK256 00001f0d: PUSH1 0x00 00001f0f: DUP5 00001f10: PUSH2 0xffff 00001f13: AND 00001f14: PUSH2 0xffff 00001f17: AND 00001f18: DUP2 00001f19: MSTORE 00001f1a: PUSH1 0x20 00001f1c: ADD 00001f1d: SWAP1 00001f1e: DUP2 00001f1f: MSTORE 00001f20: PUSH1 0x20 00001f22: ADD 00001f23: PUSH1 0x00 00001f25: KECCAK256 00001f26: DUP2 00001f27: SWAP1 00001f28: SSTORE 00001f29: POP 00001f2a: PUSH32 0x9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac0 00001f4b: DUP4 00001f4c: DUP4 00001f4d: DUP4 00001f4e: PUSH1 0x40 00001f50: MLOAD 00001f51: PUSH2 0x1f5c 00001f54: SWAP4 00001f55: SWAP3 00001f56: SWAP2 00001f57: SWAP1 00001f58: PUSH2 0x4f20 00001f5b: JUMP 00001f5c: JUMPDEST 00001f5d: PUSH1 0x40 00001f5f: MLOAD 00001f60: DUP1 00001f61: SWAP2 00001f62: SUB 00001f63: SWAP1 00001f64: LOG1 00001f65: POP 00001f66: POP 00001f67: POP 00001f68: JUMP 00001f69: JUMPDEST 00001f6a: PUSH2 0x1f71 00001f6d: PUSH2 0x24c6 00001f70: JUMP 00001f71: JUMPDEST 00001f72: DUP1 00001f73: PUSH1 0x05 00001f75: PUSH1 0x00 00001f77: PUSH2 0x0100 00001f7a: EXP 00001f7b: DUP2 00001f7c: SLOAD 00001f7d: DUP2 00001f7e: PUSH1 0xff 00001f80: MUL 00001f81: NOT 00001f82: AND 00001f83: SWAP1 00001f84: DUP4 00001f85: ISZERO 00001f86: ISZERO 00001f87: MUL 00001f88: OR 00001f89: SWAP1 00001f8a: SSTORE 00001f8b: POP 00001f8c: PUSH32 0x1584ad594a70cbe1e6515592e1272a987d922b097ead875069cebe8b40c004a4 00001fad: DUP2 00001fae: PUSH1 0x40 00001fb0: MLOAD 00001fb1: PUSH2 0x1fba 00001fb4: SWAP2 00001fb5: SWAP1 00001fb6: PUSH2 0x38b7 00001fb9: JUMP 00001fba: JUMPDEST 00001fbb: PUSH1 0x40 00001fbd: MLOAD 00001fbe: DUP1 00001fbf: SWAP2 00001fc0: SUB 00001fc1: SWAP1 00001fc2: LOG1 00001fc3: POP 00001fc4: JUMP 00001fc5: JUMPDEST 00001fc6: PUSH2 0x1fcd 00001fc9: PUSH2 0x24c6 00001fcc: JUMP 00001fcd: JUMPDEST 00001fce: DUP2 00001fcf: DUP2 00001fd0: PUSH1 0x01 00001fd2: PUSH1 0x00 00001fd4: DUP7 00001fd5: PUSH2 0xffff 00001fd8: AND 00001fd9: PUSH2 0xffff 00001fdc: AND 00001fdd: DUP2 00001fde: MSTORE 00001fdf: PUSH1 0x20 00001fe1: ADD 00001fe2: SWAP1 00001fe3: DUP2 00001fe4: MSTORE 00001fe5: PUSH1 0x20 00001fe7: ADD 00001fe8: PUSH1 0x00 00001fea: KECCAK256 00001feb: SWAP2 00001fec: DUP3 00001fed: PUSH2 0x1ff7 00001ff0: SWAP3 00001ff1: SWAP2 00001ff2: SWAP1 00001ff3: PUSH2 0x4f62 00001ff6: JUMP 00001ff7: JUMPDEST 00001ff8: POP 00001ff9: PUSH32 0xfa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab 0000201a: DUP4 0000201b: DUP4 0000201c: DUP4 0000201d: PUSH1 0x40 0000201f: MLOAD 00002020: PUSH2 0x202b 00002023: SWAP4 00002024: SWAP3 00002025: SWAP2 00002026: SWAP1 00002027: PUSH2 0x4851 0000202a: JUMP 0000202b: JUMPDEST 0000202c: PUSH1 0x40 0000202e: MLOAD 0000202f: DUP1 00002030: SWAP2 00002031: SUB 00002032: SWAP1 00002033: LOG1 00002034: POP 00002035: POP 00002036: POP 00002037: JUMP 00002038: JUMPDEST 00002039: PUSH1 0x05 0000203b: PUSH1 0x00 0000203d: SWAP1 0000203e: SLOAD 0000203f: SWAP1 00002040: PUSH2 0x0100 00002043: EXP 00002044: SWAP1 00002045: DIV 00002046: PUSH1 0xff 00002048: AND 00002049: DUP2 0000204a: JUMP 0000204b: JUMPDEST 0000204c: PUSH2 0x2053 0000204f: PUSH2 0x24c6 00002052: JUMP 00002053: JUMPDEST 00002054: PUSH1 0x00 00002056: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000206b: AND 0000206c: DUP2 0000206d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002082: AND 00002083: SUB 00002084: PUSH2 0x20c2 00002087: JUMPI 00002088: PUSH1 0x40 0000208a: MLOAD 0000208b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000020ac: DUP2 000020ad: MSTORE 000020ae: PUSH1 0x04 000020b0: ADD 000020b1: PUSH2 0x20b9 000020b4: SWAP1 000020b5: PUSH2 0x50a4 000020b8: JUMP 000020b9: JUMPDEST 000020ba: PUSH1 0x40 000020bc: MLOAD 000020bd: DUP1 000020be: SWAP2 000020bf: SUB 000020c0: SWAP1 000020c1: REVERT 000020c2: JUMPDEST 000020c3: PUSH2 0x20cb 000020c6: DUP2 000020c7: PUSH2 0x2d3e 000020ca: JUMP 000020cb: JUMPDEST 000020cc: POP 000020cd: JUMP 000020ce: JUMPDEST 000020cf: PUSH1 0x60 000020d1: PUSH32 0x00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675 000020f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002107: AND 00002108: PUSH4 0xf5ecbdbc 0000210d: DUP7 0000210e: DUP7 0000210f: ADDRESS 00002110: DUP7 00002111: PUSH1 0x40 00002113: MLOAD 00002114: DUP6 00002115: PUSH4 0xffffffff 0000211a: AND 0000211b: PUSH1 0xe0 0000211d: SHL 0000211e: DUP2 0000211f: MSTORE 00002120: PUSH1 0x04 00002122: ADD 00002123: PUSH2 0x212f 00002126: SWAP5 00002127: SWAP4 00002128: SWAP3 00002129: SWAP2 0000212a: SWAP1 0000212b: PUSH2 0x50c4 0000212e: JUMP 0000212f: JUMPDEST 00002130: PUSH1 0x00 00002132: PUSH1 0x40 00002134: MLOAD 00002135: DUP1 00002136: DUP4 00002137: SUB 00002138: DUP2 00002139: DUP7 0000213a: GAS 0000213b: STATICCALL 0000213c: ISZERO 0000213d: DUP1 0000213e: ISZERO 0000213f: PUSH2 0x214c 00002142: JUMPI 00002143: RETURNDATASIZE 00002144: PUSH1 0x00 00002146: DUP1 00002147: RETURNDATACOPY 00002148: RETURNDATASIZE 00002149: PUSH1 0x00 0000214b: REVERT 0000214c: JUMPDEST 0000214d: POP 0000214e: POP 0000214f: POP 00002150: POP 00002151: PUSH1 0x40 00002153: MLOAD 00002154: RETURNDATASIZE 00002155: PUSH1 0x00 00002157: DUP3 00002158: RETURNDATACOPY 00002159: RETURNDATASIZE 0000215a: PUSH1 0x1f 0000215c: NOT 0000215d: PUSH1 0x1f 0000215f: DUP3 00002160: ADD 00002161: AND 00002162: DUP3 00002163: ADD 00002164: DUP1 00002165: PUSH1 0x40 00002167: MSTORE 00002168: POP 00002169: DUP2 0000216a: ADD 0000216b: SWAP1 0000216c: PUSH2 0x2175 0000216f: SWAP2 00002170: SWAP1 00002171: PUSH2 0x5179 00002174: JUMP 00002175: JUMPDEST 00002176: SWAP1 00002177: POP 00002178: SWAP5 00002179: SWAP4 0000217a: POP 0000217b: POP 0000217c: POP 0000217d: POP 0000217e: JUMP 0000217f: JUMPDEST 00002180: PUSH1 0x00 00002182: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002197: AND 00002198: DUP3 00002199: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000021ae: AND 000021af: SUB 000021b0: PUSH2 0x21ee 000021b3: JUMPI 000021b4: PUSH1 0x40 000021b6: MLOAD 000021b7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000021d8: DUP2 000021d9: MSTORE 000021da: PUSH1 0x04 000021dc: ADD 000021dd: PUSH2 0x21e5 000021e0: SWAP1 000021e1: PUSH2 0x520e 000021e4: JUMP 000021e5: JUMPDEST 000021e6: PUSH1 0x40 000021e8: MLOAD 000021e9: DUP1 000021ea: SWAP2 000021eb: SUB 000021ec: SWAP1 000021ed: REVERT 000021ee: JUMPDEST 000021ef: PUSH2 0x21fa 000021f2: PUSH1 0x00 000021f4: DUP4 000021f5: DUP4 000021f6: PUSH2 0x2f20 000021f9: JUMP 000021fa: JUMPDEST 000021fb: DUP1 000021fc: PUSH1 0x08 000021fe: PUSH1 0x00 00002200: DUP3 00002201: DUP3 00002202: SLOAD 00002203: PUSH2 0x220c 00002206: SWAP2 00002207: SWAP1 00002208: PUSH2 0x481d 0000220b: JUMP 0000220c: JUMPDEST 0000220d: SWAP3 0000220e: POP 0000220f: POP 00002210: DUP2 00002211: SWAP1 00002212: SSTORE 00002213: POP 00002214: DUP1 00002215: PUSH1 0x06 00002217: PUSH1 0x00 00002219: DUP5 0000221a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000222f: AND 00002230: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002245: AND 00002246: DUP2 00002247: MSTORE 00002248: PUSH1 0x20 0000224a: ADD 0000224b: SWAP1 0000224c: DUP2 0000224d: MSTORE 0000224e: PUSH1 0x20 00002250: ADD 00002251: PUSH1 0x00 00002253: KECCAK256 00002254: PUSH1 0x00 00002256: DUP3 00002257: DUP3 00002258: SLOAD 00002259: PUSH2 0x2262 0000225c: SWAP2 0000225d: SWAP1 0000225e: PUSH2 0x481d 00002261: JUMP 00002262: JUMPDEST 00002263: SWAP3 00002264: POP 00002265: POP 00002266: DUP2 00002267: SWAP1 00002268: SSTORE 00002269: POP 0000226a: DUP2 0000226b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002280: AND 00002281: PUSH1 0x00 00002283: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002298: AND 00002299: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000022ba: DUP4 000022bb: PUSH1 0x40 000022bd: MLOAD 000022be: PUSH2 0x22c7 000022c1: SWAP2 000022c2: SWAP1 000022c3: PUSH2 0x3a94 000022c6: JUMP 000022c7: JUMPDEST 000022c8: PUSH1 0x40 000022ca: MLOAD 000022cb: DUP1 000022cc: SWAP2 000022cd: SUB 000022ce: SWAP1 000022cf: LOG3 000022d0: PUSH2 0x22db 000022d3: PUSH1 0x00 000022d5: DUP4 000022d6: DUP4 000022d7: PUSH2 0x2f25 000022da: JUMP 000022db: JUMPDEST 000022dc: POP 000022dd: POP 000022de: JUMP 000022df: JUMPDEST 000022e0: PUSH1 0x00 000022e2: CALLER 000022e3: SWAP1 000022e4: POP 000022e5: SWAP1 000022e6: JUMP 000022e7: JUMPDEST 000022e8: PUSH1 0x00 000022ea: DUP1 000022eb: PUSH2 0x2393 000022ee: GAS 000022ef: PUSH1 0x96 000022f1: PUSH4 0x66ad5c8a 000022f6: PUSH1 0xe0 000022f8: SHL 000022f9: DUP10 000022fa: DUP10 000022fb: DUP10 000022fc: DUP10 000022fd: PUSH1 0x40 000022ff: MLOAD 00002300: PUSH1 0x24 00002302: ADD 00002303: PUSH2 0x230f 00002306: SWAP5 00002307: SWAP4 00002308: SWAP3 00002309: SWAP2 0000230a: SWAP1 0000230b: PUSH2 0x522e 0000230e: JUMP 0000230f: JUMPDEST 00002310: PUSH1 0x40 00002312: MLOAD 00002313: PUSH1 0x20 00002315: DUP2 00002316: DUP4 00002317: SUB 00002318: SUB 00002319: DUP2 0000231a: MSTORE 0000231b: SWAP1 0000231c: PUSH1 0x40 0000231e: MSTORE 0000231f: SWAP1 00002320: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000233d: NOT 0000233e: AND 0000233f: PUSH1 0x20 00002341: DUP3 00002342: ADD 00002343: DUP1 00002344: MLOAD 00002345: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002362: DUP4 00002363: DUP2 00002364: DUP4 00002365: AND 00002366: OR 00002367: DUP4 00002368: MSTORE 00002369: POP 0000236a: POP 0000236b: POP 0000236c: POP 0000236d: ADDRESS 0000236e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002383: AND 00002384: PUSH2 0x2f2a 00002387: SWAP1 00002388: SWAP4 00002389: SWAP3 0000238a: SWAP2 0000238b: SWAP1 0000238c: PUSH4 0xffffffff 00002391: AND 00002392: JUMP 00002393: JUMPDEST 00002394: SWAP2 00002395: POP 00002396: SWAP2 00002397: POP 00002398: DUP2 00002399: PUSH2 0x2444 0000239c: JUMPI 0000239d: DUP3 0000239e: DUP1 0000239f: MLOAD 000023a0: SWAP1 000023a1: PUSH1 0x20 000023a3: ADD 000023a4: KECCAK256 000023a5: PUSH1 0x04 000023a7: PUSH1 0x00 000023a9: DUP9 000023aa: PUSH2 0xffff 000023ad: AND 000023ae: PUSH2 0xffff 000023b1: AND 000023b2: DUP2 000023b3: MSTORE 000023b4: PUSH1 0x20 000023b6: ADD 000023b7: SWAP1 000023b8: DUP2 000023b9: MSTORE 000023ba: PUSH1 0x20 000023bc: ADD 000023bd: PUSH1 0x00 000023bf: KECCAK256 000023c0: DUP7 000023c1: PUSH1 0x40 000023c3: MLOAD 000023c4: PUSH2 0x23cd 000023c7: SWAP2 000023c8: SWAP1 000023c9: PUSH2 0x52b2 000023cc: JUMP 000023cd: JUMPDEST 000023ce: SWAP1 000023cf: DUP2 000023d0: MSTORE 000023d1: PUSH1 0x20 000023d3: ADD 000023d4: PUSH1 0x40 000023d6: MLOAD 000023d7: DUP1 000023d8: SWAP2 000023d9: SUB 000023da: SWAP1 000023db: KECCAK256 000023dc: PUSH1 0x00 000023de: DUP7 000023df: PUSH8 0xffffffffffffffff 000023e8: AND 000023e9: PUSH8 0xffffffffffffffff 000023f2: AND 000023f3: DUP2 000023f4: MSTORE 000023f5: PUSH1 0x20 000023f7: ADD 000023f8: SWAP1 000023f9: DUP2 000023fa: MSTORE 000023fb: PUSH1 0x20 000023fd: ADD 000023fe: PUSH1 0x00 00002400: KECCAK256 00002401: DUP2 00002402: SWAP1 00002403: SSTORE 00002404: POP 00002405: PUSH32 0xe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c 00002426: DUP7 00002427: DUP7 00002428: DUP7 00002429: DUP7 0000242a: DUP6 0000242b: PUSH1 0x40 0000242d: MLOAD 0000242e: PUSH2 0x243b 00002431: SWAP6 00002432: SWAP5 00002433: SWAP4 00002434: SWAP3 00002435: SWAP2 00002436: SWAP1 00002437: PUSH2 0x52c9 0000243a: JUMP 0000243b: JUMPDEST 0000243c: PUSH1 0x40 0000243e: MLOAD 0000243f: DUP1 00002440: SWAP2 00002441: SUB 00002442: SWAP1 00002443: LOG1 00002444: JUMPDEST 00002445: POP 00002446: POP 00002447: POP 00002448: POP 00002449: POP 0000244a: POP 0000244b: JUMP 0000244c: JUMPDEST 0000244d: PUSH1 0x00 0000244f: PUSH32 0xe8e89a8000000000000000000000000000000000000000000000000000000000 00002470: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000248d: NOT 0000248e: AND 0000248f: DUP3 00002490: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000024ad: NOT 000024ae: AND 000024af: EQ 000024b0: DUP1 000024b1: PUSH2 0x24bf 000024b4: JUMPI 000024b5: POP 000024b6: PUSH2 0x24be 000024b9: DUP3 000024ba: PUSH2 0x2fc2 000024bd: JUMP 000024be: JUMPDEST 000024bf: JUMPDEST 000024c0: SWAP1 000024c1: POP 000024c2: SWAP2 000024c3: SWAP1 000024c4: POP 000024c5: JUMP 000024c6: JUMPDEST 000024c7: PUSH2 0x24ce 000024ca: PUSH2 0x22df 000024cd: JUMP 000024ce: JUMPDEST 000024cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024e4: AND 000024e5: PUSH2 0x24ec 000024e8: PUSH2 0x175b 000024eb: JUMP 000024ec: JUMPDEST 000024ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002502: AND 00002503: EQ 00002504: PUSH2 0x2542 00002507: JUMPI 00002508: PUSH1 0x40 0000250a: MLOAD 0000250b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000252c: DUP2 0000252d: MSTORE 0000252e: PUSH1 0x04 00002530: ADD 00002531: PUSH2 0x2539 00002534: SWAP1 00002535: PUSH2 0x537d 00002538: JUMP 00002539: JUMPDEST 0000253a: PUSH1 0x40 0000253c: MLOAD 0000253d: DUP1 0000253e: SWAP2 0000253f: SUB 00002540: SWAP1 00002541: REVERT 00002542: JUMPDEST 00002543: JUMP 00002544: JUMPDEST 00002545: PUSH1 0x00 00002547: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000255c: AND 0000255d: DUP4 0000255e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002573: AND 00002574: SUB 00002575: PUSH2 0x25b3 00002578: JUMPI 00002579: PUSH1 0x40 0000257b: MLOAD 0000257c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000259d: DUP2 0000259e: MSTORE 0000259f: PUSH1 0x04 000025a1: ADD 000025a2: PUSH2 0x25aa 000025a5: SWAP1 000025a6: PUSH2 0x540f 000025a9: JUMP 000025aa: JUMPDEST 000025ab: PUSH1 0x40 000025ad: MLOAD 000025ae: DUP1 000025af: SWAP2 000025b0: SUB 000025b1: SWAP1 000025b2: REVERT 000025b3: JUMPDEST 000025b4: PUSH1 0x00 000025b6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025cb: AND 000025cc: DUP3 000025cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025e2: AND 000025e3: SUB 000025e4: PUSH2 0x2622 000025e7: JUMPI 000025e8: PUSH1 0x40 000025ea: MLOAD 000025eb: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000260c: DUP2 0000260d: MSTORE 0000260e: PUSH1 0x04 00002610: ADD 00002611: PUSH2 0x2619 00002614: SWAP1 00002615: PUSH2 0x54a1 00002618: JUMP 00002619: JUMPDEST 0000261a: PUSH1 0x40 0000261c: MLOAD 0000261d: DUP1 0000261e: SWAP2 0000261f: SUB 00002620: SWAP1 00002621: REVERT 00002622: JUMPDEST 00002623: DUP1 00002624: PUSH1 0x07 00002626: PUSH1 0x00 00002628: DUP6 00002629: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000263e: AND 0000263f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002654: AND 00002655: DUP2 00002656: MSTORE 00002657: PUSH1 0x20 00002659: ADD 0000265a: SWAP1 0000265b: DUP2 0000265c: MSTORE 0000265d: PUSH1 0x20 0000265f: ADD 00002660: PUSH1 0x00 00002662: KECCAK256 00002663: PUSH1 0x00 00002665: DUP5 00002666: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000267b: AND 0000267c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002691: AND 00002692: DUP2 00002693: MSTORE 00002694: PUSH1 0x20 00002696: ADD 00002697: SWAP1 00002698: DUP2 00002699: MSTORE 0000269a: PUSH1 0x20 0000269c: ADD 0000269d: PUSH1 0x00 0000269f: KECCAK256 000026a0: DUP2 000026a1: SWAP1 000026a2: SSTORE 000026a3: POP 000026a4: DUP2 000026a5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026ba: AND 000026bb: DUP4 000026bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026d1: AND 000026d2: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 000026f3: DUP4 000026f4: PUSH1 0x40 000026f6: MLOAD 000026f7: PUSH2 0x2700 000026fa: SWAP2 000026fb: SWAP1 000026fc: PUSH2 0x3a94 000026ff: JUMP 00002700: JUMPDEST 00002701: PUSH1 0x40 00002703: MLOAD 00002704: DUP1 00002705: SWAP2 00002706: SUB 00002707: SWAP1 00002708: LOG3 00002709: POP 0000270a: POP 0000270b: POP 0000270c: JUMP 0000270d: JUMPDEST 0000270e: PUSH1 0x00 00002710: PUSH2 0x2719 00002713: DUP5 00002714: DUP5 00002715: PUSH2 0x1e1e 00002718: JUMP 00002719: JUMPDEST 0000271a: SWAP1 0000271b: POP 0000271c: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000273d: DUP2 0000273e: EQ 0000273f: PUSH2 0x2793 00002742: JUMPI 00002743: DUP2 00002744: DUP2 00002745: LT 00002746: ISZERO 00002747: PUSH2 0x2785 0000274a: JUMPI 0000274b: PUSH1 0x40 0000274d: MLOAD 0000274e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000276f: DUP2 00002770: MSTORE 00002771: PUSH1 0x04 00002773: ADD 00002774: PUSH2 0x277c 00002777: SWAP1 00002778: PUSH2 0x550d 0000277b: JUMP 0000277c: JUMPDEST 0000277d: PUSH1 0x40 0000277f: MLOAD 00002780: DUP1 00002781: SWAP2 00002782: SUB 00002783: SWAP1 00002784: REVERT 00002785: JUMPDEST 00002786: PUSH2 0x2792 00002789: DUP5 0000278a: DUP5 0000278b: DUP5 0000278c: DUP5 0000278d: SUB 0000278e: PUSH2 0x2544 00002791: JUMP 00002792: JUMPDEST 00002793: JUMPDEST 00002794: POP 00002795: POP 00002796: POP 00002797: POP 00002798: JUMP 00002799: JUMPDEST 0000279a: PUSH1 0x00 0000279c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027b1: AND 000027b2: DUP4 000027b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027c8: AND 000027c9: SUB 000027ca: PUSH2 0x2808 000027cd: JUMPI 000027ce: PUSH1 0x40 000027d0: MLOAD 000027d1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000027f2: DUP2 000027f3: MSTORE 000027f4: PUSH1 0x04 000027f6: ADD 000027f7: PUSH2 0x27ff 000027fa: SWAP1 000027fb: PUSH2 0x559f 000027fe: JUMP 000027ff: JUMPDEST 00002800: PUSH1 0x40 00002802: MLOAD 00002803: DUP1 00002804: SWAP2 00002805: SUB 00002806: SWAP1 00002807: REVERT 00002808: JUMPDEST 00002809: PUSH1 0x00 0000280b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002820: AND 00002821: DUP3 00002822: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002837: AND 00002838: SUB 00002839: PUSH2 0x2877 0000283c: JUMPI 0000283d: PUSH1 0x40 0000283f: MLOAD 00002840: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002861: DUP2 00002862: MSTORE 00002863: PUSH1 0x04 00002865: ADD 00002866: PUSH2 0x286e 00002869: SWAP1 0000286a: PUSH2 0x5631 0000286d: JUMP 0000286e: JUMPDEST 0000286f: PUSH1 0x40 00002871: MLOAD 00002872: DUP1 00002873: SWAP2 00002874: SUB 00002875: SWAP1 00002876: REVERT 00002877: JUMPDEST 00002878: PUSH2 0x2882 0000287b: DUP4 0000287c: DUP4 0000287d: DUP4 0000287e: PUSH2 0x2f20 00002881: JUMP 00002882: JUMPDEST 00002883: PUSH1 0x00 00002885: PUSH1 0x06 00002887: PUSH1 0x00 00002889: DUP6 0000288a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000289f: AND 000028a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000028b5: AND 000028b6: DUP2 000028b7: MSTORE 000028b8: PUSH1 0x20 000028ba: ADD 000028bb: SWAP1 000028bc: DUP2 000028bd: MSTORE 000028be: PUSH1 0x20 000028c0: ADD 000028c1: PUSH1 0x00 000028c3: KECCAK256 000028c4: SLOAD 000028c5: SWAP1 000028c6: POP 000028c7: DUP2 000028c8: DUP2 000028c9: LT 000028ca: ISZERO 000028cb: PUSH2 0x2909 000028ce: JUMPI 000028cf: PUSH1 0x40 000028d1: MLOAD 000028d2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000028f3: DUP2 000028f4: MSTORE 000028f5: PUSH1 0x04 000028f7: ADD 000028f8: PUSH2 0x2900 000028fb: SWAP1 000028fc: PUSH2 0x56c3 000028ff: JUMP 00002900: JUMPDEST 00002901: PUSH1 0x40 00002903: MLOAD 00002904: DUP1 00002905: SWAP2 00002906: SUB 00002907: SWAP1 00002908: REVERT 00002909: JUMPDEST 0000290a: DUP2 0000290b: DUP2 0000290c: SUB 0000290d: PUSH1 0x06 0000290f: PUSH1 0x00 00002911: DUP7 00002912: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002927: AND 00002928: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000293d: AND 0000293e: DUP2 0000293f: MSTORE 00002940: PUSH1 0x20 00002942: ADD 00002943: SWAP1 00002944: DUP2 00002945: MSTORE 00002946: PUSH1 0x20 00002948: ADD 00002949: PUSH1 0x00 0000294b: KECCAK256 0000294c: DUP2 0000294d: SWAP1 0000294e: SSTORE 0000294f: POP 00002950: DUP2 00002951: PUSH1 0x06 00002953: PUSH1 0x00 00002955: DUP6 00002956: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000296b: AND 0000296c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002981: AND 00002982: DUP2 00002983: MSTORE 00002984: PUSH1 0x20 00002986: ADD 00002987: SWAP1 00002988: DUP2 00002989: MSTORE 0000298a: PUSH1 0x20 0000298c: ADD 0000298d: PUSH1 0x00 0000298f: KECCAK256 00002990: PUSH1 0x00 00002992: DUP3 00002993: DUP3 00002994: SLOAD 00002995: PUSH2 0x299e 00002998: SWAP2 00002999: SWAP1 0000299a: PUSH2 0x481d 0000299d: JUMP 0000299e: JUMPDEST 0000299f: SWAP3 000029a0: POP 000029a1: POP 000029a2: DUP2 000029a3: SWAP1 000029a4: SSTORE 000029a5: POP 000029a6: DUP3 000029a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029bc: AND 000029bd: DUP5 000029be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000029d3: AND 000029d4: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 000029f5: DUP5 000029f6: PUSH1 0x40 000029f8: MLOAD 000029f9: PUSH2 0x2a02 000029fc: SWAP2 000029fd: SWAP1 000029fe: PUSH2 0x3a94 00002a01: JUMP 00002a02: JUMPDEST 00002a03: PUSH1 0x40 00002a05: MLOAD 00002a06: DUP1 00002a07: SWAP2 00002a08: SUB 00002a09: SWAP1 00002a0a: LOG3 00002a0b: PUSH2 0x2a15 00002a0e: DUP5 00002a0f: DUP5 00002a10: DUP5 00002a11: PUSH2 0x2f25 00002a14: JUMP 00002a15: JUMPDEST 00002a16: POP 00002a17: POP 00002a18: POP 00002a19: POP 00002a1a: JUMP 00002a1b: JUMPDEST 00002a1c: PUSH1 0x00 00002a1e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a33: AND 00002a34: DUP3 00002a35: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002a4a: AND 00002a4b: SUB 00002a4c: PUSH2 0x2a8a 00002a4f: JUMPI 00002a50: PUSH1 0x40 00002a52: MLOAD 00002a53: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002a74: DUP2 00002a75: MSTORE 00002a76: PUSH1 0x04 00002a78: ADD 00002a79: PUSH2 0x2a81 00002a7c: SWAP1 00002a7d: PUSH2 0x5755 00002a80: JUMP 00002a81: JUMPDEST 00002a82: PUSH1 0x40 00002a84: MLOAD 00002a85: DUP1 00002a86: SWAP2 00002a87: SUB 00002a88: SWAP1 00002a89: REVERT 00002a8a: JUMPDEST 00002a8b: PUSH2 0x2a96 00002a8e: DUP3 00002a8f: PUSH1 0x00 00002a91: DUP4 00002a92: PUSH2 0x2f20 00002a95: JUMP 00002a96: JUMPDEST 00002a97: PUSH1 0x00 00002a99: PUSH1 0x06 00002a9b: PUSH1 0x00 00002a9d: DUP5 00002a9e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ab3: AND 00002ab4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002ac9: AND 00002aca: DUP2 00002acb: MSTORE 00002acc: PUSH1 0x20 00002ace: ADD 00002acf: SWAP1 00002ad0: DUP2 00002ad1: MSTORE 00002ad2: PUSH1 0x20 00002ad4: ADD 00002ad5: PUSH1 0x00 00002ad7: KECCAK256 00002ad8: SLOAD 00002ad9: SWAP1 00002ada: POP 00002adb: DUP2 00002adc: DUP2 00002add: LT 00002ade: ISZERO 00002adf: PUSH2 0x2b1d 00002ae2: JUMPI 00002ae3: PUSH1 0x40 00002ae5: MLOAD 00002ae6: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002b07: DUP2 00002b08: MSTORE 00002b09: PUSH1 0x04 00002b0b: ADD 00002b0c: PUSH2 0x2b14 00002b0f: SWAP1 00002b10: PUSH2 0x57e7 00002b13: JUMP 00002b14: JUMPDEST 00002b15: PUSH1 0x40 00002b17: MLOAD 00002b18: DUP1 00002b19: SWAP2 00002b1a: SUB 00002b1b: SWAP1 00002b1c: REVERT 00002b1d: JUMPDEST 00002b1e: DUP2 00002b1f: DUP2 00002b20: SUB 00002b21: PUSH1 0x06 00002b23: PUSH1 0x00 00002b25: DUP6 00002b26: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b3b: AND 00002b3c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b51: AND 00002b52: DUP2 00002b53: MSTORE 00002b54: PUSH1 0x20 00002b56: ADD 00002b57: SWAP1 00002b58: DUP2 00002b59: MSTORE 00002b5a: PUSH1 0x20 00002b5c: ADD 00002b5d: PUSH1 0x00 00002b5f: KECCAK256 00002b60: DUP2 00002b61: SWAP1 00002b62: SSTORE 00002b63: POP 00002b64: DUP2 00002b65: PUSH1 0x08 00002b67: PUSH1 0x00 00002b69: DUP3 00002b6a: DUP3 00002b6b: SLOAD 00002b6c: PUSH2 0x2b75 00002b6f: SWAP2 00002b70: SWAP1 00002b71: PUSH2 0x4981 00002b74: JUMP 00002b75: JUMPDEST 00002b76: SWAP3 00002b77: POP 00002b78: POP 00002b79: DUP2 00002b7a: SWAP1 00002b7b: SSTORE 00002b7c: POP 00002b7d: PUSH1 0x00 00002b7f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002b94: AND 00002b95: DUP4 00002b96: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002bab: AND 00002bac: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00002bcd: DUP5 00002bce: PUSH1 0x40 00002bd0: MLOAD 00002bd1: PUSH2 0x2bda 00002bd4: SWAP2 00002bd5: SWAP1 00002bd6: PUSH2 0x3a94 00002bd9: JUMP 00002bda: JUMPDEST 00002bdb: PUSH1 0x40 00002bdd: MLOAD 00002bde: DUP1 00002bdf: SWAP2 00002be0: SUB 00002be1: SWAP1 00002be2: LOG3 00002be3: PUSH2 0x2bee 00002be6: DUP4 00002be7: PUSH1 0x00 00002be9: DUP5 00002bea: PUSH2 0x2f25 00002bed: JUMP 00002bee: JUMPDEST 00002bef: POP 00002bf0: POP 00002bf1: POP 00002bf2: JUMP 00002bf3: JUMPDEST 00002bf4: PUSH1 0x00 00002bf6: PUSH2 0x2c01 00002bf9: DUP9 00002bfa: DUP9 00002bfb: DUP9 00002bfc: DUP9 00002bfd: PUSH2 0x302c 00002c00: JUMP 00002c01: JUMPDEST 00002c02: SWAP1 00002c03: POP 00002c04: PUSH1 0x00 00002c06: DUP1 00002c07: DUP10 00002c08: PUSH1 0x40 00002c0a: MLOAD 00002c0b: PUSH1 0x20 00002c0d: ADD 00002c0e: PUSH2 0x2c17 00002c11: SWAP2 00002c12: SWAP1 00002c13: PUSH2 0x451a 00002c16: JUMP 00002c17: JUMPDEST 00002c18: PUSH1 0x40 00002c1a: MLOAD 00002c1b: PUSH1 0x20 00002c1d: DUP2 00002c1e: DUP4 00002c1f: SUB 00002c20: SUB 00002c21: DUP2 00002c22: MSTORE 00002c23: SWAP1 00002c24: PUSH1 0x40 00002c26: MSTORE 00002c27: DUP9 00002c28: DUP9 00002c29: PUSH1 0x40 00002c2b: MLOAD 00002c2c: PUSH1 0x20 00002c2e: ADD 00002c2f: PUSH2 0x2c3b 00002c32: SWAP5 00002c33: SWAP4 00002c34: SWAP3 00002c35: SWAP2 00002c36: SWAP1 00002c37: PUSH2 0x5807 00002c3a: JUMP 00002c3b: JUMPDEST 00002c3c: PUSH1 0x40 00002c3e: MLOAD 00002c3f: PUSH1 0x20 00002c41: DUP2 00002c42: DUP4 00002c43: SUB 00002c44: SUB 00002c45: DUP2 00002c46: MSTORE 00002c47: SWAP1 00002c48: PUSH1 0x40 00002c4a: MSTORE 00002c4b: SWAP1 00002c4c: POP 00002c4d: PUSH1 0x05 00002c4f: PUSH1 0x00 00002c51: SWAP1 00002c52: SLOAD 00002c53: SWAP1 00002c54: PUSH2 0x0100 00002c57: EXP 00002c58: SWAP1 00002c59: DIV 00002c5a: PUSH1 0xff 00002c5c: AND 00002c5d: ISZERO 00002c5e: PUSH2 0x2c74 00002c61: JUMPI 00002c62: PUSH2 0x2c6f 00002c65: DUP9 00002c66: PUSH1 0x00 00002c68: DUP6 00002c69: PUSH1 0x00 00002c6b: PUSH2 0x3084 00002c6e: JUMP 00002c6f: JUMPDEST 00002c70: PUSH2 0x2cb9 00002c73: JUMP 00002c74: JUMPDEST 00002c75: PUSH1 0x00 00002c77: DUP4 00002c78: MLOAD 00002c79: EQ 00002c7a: PUSH2 0x2cb8 00002c7d: JUMPI 00002c7e: PUSH1 0x40 00002c80: MLOAD 00002c81: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002ca2: DUP2 00002ca3: MSTORE 00002ca4: PUSH1 0x04 00002ca6: ADD 00002ca7: PUSH2 0x2caf 00002caa: SWAP1 00002cab: PUSH2 0x58cc 00002cae: JUMP 00002caf: JUMPDEST 00002cb0: PUSH1 0x40 00002cb2: MLOAD 00002cb3: DUP1 00002cb4: SWAP2 00002cb5: SUB 00002cb6: SWAP1 00002cb7: REVERT 00002cb8: JUMPDEST 00002cb9: JUMPDEST 00002cba: PUSH2 0x2cc7 00002cbd: DUP9 00002cbe: DUP3 00002cbf: DUP8 00002cc0: DUP8 00002cc1: DUP8 00002cc2: DUP8 00002cc3: PUSH2 0x3163 00002cc6: JUMP 00002cc7: JUMPDEST 00002cc8: POP 00002cc9: POP 00002cca: POP 00002ccb: POP 00002ccc: POP 00002ccd: POP 00002cce: POP 00002ccf: POP 00002cd0: POP 00002cd1: JUMP 00002cd2: JUMPDEST 00002cd3: PUSH1 0x00 00002cd5: PUSH1 0x20 00002cd7: DUP3 00002cd8: ADD 00002cd9: MLOAD 00002cda: SWAP1 00002cdb: POP 00002cdc: PUSH1 0x00 00002cde: PUSH2 0xffff 00002ce1: AND 00002ce2: DUP2 00002ce3: PUSH2 0xffff 00002ce6: AND 00002ce7: SUB 00002ce8: PUSH2 0x2cfc 00002ceb: JUMPI 00002cec: PUSH2 0x2cf7 00002cef: DUP6 00002cf0: DUP6 00002cf1: DUP6 00002cf2: DUP6 00002cf3: PUSH2 0x32ee 00002cf6: JUMP 00002cf7: JUMPDEST 00002cf8: PUSH2 0x2d37 00002cfb: JUMP 00002cfc: JUMPDEST 00002cfd: PUSH1 0x40 00002cff: MLOAD 00002d00: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002d21: DUP2 00002d22: MSTORE 00002d23: PUSH1 0x04 00002d25: ADD 00002d26: PUSH2 0x2d2e 00002d29: SWAP1 00002d2a: PUSH2 0x5938 00002d2d: JUMP 00002d2e: JUMPDEST 00002d2f: PUSH1 0x40 00002d31: MLOAD 00002d32: DUP1 00002d33: SWAP2 00002d34: SUB 00002d35: SWAP1 00002d36: REVERT 00002d37: JUMPDEST 00002d38: POP 00002d39: POP 00002d3a: POP 00002d3b: POP 00002d3c: POP 00002d3d: JUMP 00002d3e: JUMPDEST 00002d3f: PUSH1 0x00 00002d41: DUP1 00002d42: PUSH1 0x00 00002d44: SWAP1 00002d45: SLOAD 00002d46: SWAP1 00002d47: PUSH2 0x0100 00002d4a: EXP 00002d4b: SWAP1 00002d4c: DIV 00002d4d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d62: AND 00002d63: SWAP1 00002d64: POP 00002d65: DUP2 00002d66: PUSH1 0x00 00002d68: DUP1 00002d69: PUSH2 0x0100 00002d6c: EXP 00002d6d: DUP2 00002d6e: SLOAD 00002d6f: DUP2 00002d70: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d85: MUL 00002d86: NOT 00002d87: AND 00002d88: SWAP1 00002d89: DUP4 00002d8a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d9f: AND 00002da0: MUL 00002da1: OR 00002da2: SWAP1 00002da3: SSTORE 00002da4: POP 00002da5: DUP2 00002da6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002dbb: AND 00002dbc: DUP2 00002dbd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002dd2: AND 00002dd3: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002df4: PUSH1 0x40 00002df6: MLOAD 00002df7: PUSH1 0x40 00002df9: MLOAD 00002dfa: DUP1 00002dfb: SWAP2 00002dfc: SUB 00002dfd: SWAP1 00002dfe: LOG3 00002dff: POP 00002e00: POP 00002e01: JUMP 00002e02: JUMPDEST 00002e03: PUSH1 0x60 00002e05: DUP2 00002e06: PUSH1 0x1f 00002e08: DUP4 00002e09: PUSH2 0x2e12 00002e0c: SWAP2 00002e0d: SWAP1 00002e0e: PUSH2 0x481d 00002e11: JUMP 00002e12: JUMPDEST 00002e13: LT 00002e14: ISZERO 00002e15: PUSH2 0x2e53 00002e18: JUMPI 00002e19: PUSH1 0x40 00002e1b: MLOAD 00002e1c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002e3d: DUP2 00002e3e: MSTORE 00002e3f: PUSH1 0x04 00002e41: ADD 00002e42: PUSH2 0x2e4a 00002e45: SWAP1 00002e46: PUSH2 0x59a4 00002e49: JUMP 00002e4a: JUMPDEST 00002e4b: PUSH1 0x40 00002e4d: MLOAD 00002e4e: DUP1 00002e4f: SWAP2 00002e50: SUB 00002e51: SWAP1 00002e52: REVERT 00002e53: JUMPDEST 00002e54: DUP2 00002e55: DUP4 00002e56: PUSH2 0x2e5f 00002e59: SWAP2 00002e5a: SWAP1 00002e5b: PUSH2 0x481d 00002e5e: JUMP 00002e5f: JUMPDEST 00002e60: DUP5 00002e61: MLOAD 00002e62: LT 00002e63: ISZERO 00002e64: PUSH2 0x2ea2 00002e67: JUMPI 00002e68: PUSH1 0x40 00002e6a: MLOAD 00002e6b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002e8c: DUP2 00002e8d: MSTORE 00002e8e: PUSH1 0x04 00002e90: ADD 00002e91: PUSH2 0x2e99 00002e94: SWAP1 00002e95: PUSH2 0x5a10 00002e98: JUMP 00002e99: JUMPDEST 00002e9a: PUSH1 0x40 00002e9c: MLOAD 00002e9d: DUP1 00002e9e: SWAP2 00002e9f: SUB 00002ea0: SWAP1 00002ea1: REVERT 00002ea2: JUMPDEST 00002ea3: PUSH1 0x60 00002ea5: DUP3 00002ea6: ISZERO 00002ea7: PUSH1 0x00 00002ea9: DUP2 00002eaa: EQ 00002eab: PUSH2 0x2ec3 00002eae: JUMPI 00002eaf: PUSH1 0x40 00002eb1: MLOAD 00002eb2: SWAP2 00002eb3: POP 00002eb4: PUSH1 0x00 00002eb6: DUP3 00002eb7: MSTORE 00002eb8: PUSH1 0x20 00002eba: DUP3 00002ebb: ADD 00002ebc: PUSH1 0x40 00002ebe: MSTORE 00002ebf: PUSH2 0x2f14 00002ec2: JUMP 00002ec3: JUMPDEST 00002ec4: PUSH1 0x40 00002ec6: MLOAD 00002ec7: SWAP2 00002ec8: POP 00002ec9: PUSH1 0x1f 00002ecb: DUP5 00002ecc: AND 00002ecd: DUP1 00002ece: ISZERO 00002ecf: PUSH1 0x20 00002ed1: MUL 00002ed2: DUP2 00002ed3: DUP5 00002ed4: ADD 00002ed5: ADD 00002ed6: DUP6 00002ed7: DUP2 00002ed8: ADD 00002ed9: DUP8 00002eda: DUP4 00002edb: ISZERO 00002edc: PUSH1 0x20 00002ede: MUL 00002edf: DUP5 00002ee0: DUP12 00002ee1: ADD 00002ee2: ADD 00002ee3: ADD 00002ee4: JUMPDEST 00002ee5: DUP2 00002ee6: DUP4 00002ee7: LT 00002ee8: ISZERO 00002ee9: PUSH2 0x2f01 00002eec: JUMPI 00002eed: DUP1 00002eee: MLOAD 00002eef: DUP4 00002ef0: MSTORE 00002ef1: PUSH1 0x20 00002ef3: DUP4 00002ef4: ADD 00002ef5: SWAP3 00002ef6: POP 00002ef7: PUSH1 0x20 00002ef9: DUP2 00002efa: ADD 00002efb: SWAP1 00002efc: POP 00002efd: PUSH2 0x2ee4 00002f00: JUMP 00002f01: JUMPDEST 00002f02: POP 00002f03: DUP7 00002f04: DUP6 00002f05: MSTORE 00002f06: PUSH1 0x1f 00002f08: NOT 00002f09: PUSH1 0x1f 00002f0b: DUP4 00002f0c: ADD 00002f0d: AND 00002f0e: PUSH1 0x40 00002f10: MSTORE 00002f11: POP 00002f12: POP 00002f13: POP 00002f14: JUMPDEST 00002f15: POP 00002f16: DUP1 00002f17: SWAP2 00002f18: POP 00002f19: POP 00002f1a: SWAP4 00002f1b: SWAP3 00002f1c: POP 00002f1d: POP 00002f1e: POP 00002f1f: JUMP 00002f20: JUMPDEST 00002f21: POP 00002f22: POP 00002f23: POP 00002f24: JUMP 00002f25: JUMPDEST 00002f26: POP 00002f27: POP 00002f28: POP 00002f29: JUMP 00002f2a: JUMPDEST 00002f2b: PUSH1 0x00 00002f2d: PUSH1 0x60 00002f2f: PUSH1 0x00 00002f31: DUP1 00002f32: PUSH1 0x00 00002f34: DUP7 00002f35: PUSH2 0xffff 00002f38: AND 00002f39: PUSH8 0xffffffffffffffff 00002f42: DUP2 00002f43: GT 00002f44: ISZERO 00002f45: PUSH2 0x2f51 00002f48: JUMPI 00002f49: PUSH2 0x2f50 00002f4c: PUSH2 0x3e26 00002f4f: JUMP 00002f50: JUMPDEST 00002f51: JUMPDEST 00002f52: PUSH1 0x40 00002f54: MLOAD 00002f55: SWAP1 00002f56: DUP1 00002f57: DUP3 00002f58: MSTORE 00002f59: DUP1 00002f5a: PUSH1 0x1f 00002f5c: ADD 00002f5d: PUSH1 0x1f 00002f5f: NOT 00002f60: AND 00002f61: PUSH1 0x20 00002f63: ADD 00002f64: DUP3 00002f65: ADD 00002f66: PUSH1 0x40 00002f68: MSTORE 00002f69: DUP1 00002f6a: ISZERO 00002f6b: PUSH2 0x2f83 00002f6e: JUMPI 00002f6f: DUP2 00002f70: PUSH1 0x20 00002f72: ADD 00002f73: PUSH1 0x01 00002f75: DUP3 00002f76: MUL 00002f77: DUP1 00002f78: CALLDATASIZE 00002f79: DUP4 00002f7a: CALLDATACOPY 00002f7b: DUP1 00002f7c: DUP3 00002f7d: ADD 00002f7e: SWAP2 00002f7f: POP 00002f80: POP 00002f81: SWAP1 00002f82: POP 00002f83: JUMPDEST 00002f84: POP 00002f85: SWAP1 00002f86: POP 00002f87: PUSH1 0x00 00002f89: DUP1 00002f8a: DUP8 00002f8b: MLOAD 00002f8c: PUSH1 0x20 00002f8e: DUP10 00002f8f: ADD 00002f90: PUSH1 0x00 00002f92: DUP14 00002f93: DUP14 00002f94: CALL 00002f95: SWAP2 00002f96: POP 00002f97: RETURNDATASIZE 00002f98: SWAP3 00002f99: POP 00002f9a: DUP7 00002f9b: DUP4 00002f9c: GT 00002f9d: ISZERO 00002f9e: PUSH2 0x2fa5 00002fa1: JUMPI 00002fa2: DUP7 00002fa3: SWAP3 00002fa4: POP 00002fa5: JUMPDEST 00002fa6: DUP3 00002fa7: DUP2 00002fa8: MSTORE 00002fa9: DUP3 00002faa: PUSH1 0x00 00002fac: PUSH1 0x20 00002fae: DUP4 00002faf: ADD 00002fb0: RETURNDATACOPY 00002fb1: DUP2 00002fb2: DUP2 00002fb3: SWAP5 00002fb4: POP 00002fb5: SWAP5 00002fb6: POP 00002fb7: POP 00002fb8: POP 00002fb9: POP 00002fba: SWAP5 00002fbb: POP 00002fbc: SWAP5 00002fbd: SWAP3 00002fbe: POP 00002fbf: POP 00002fc0: POP 00002fc1: JUMP 00002fc2: JUMPDEST 00002fc3: PUSH1 0x00 00002fc5: PUSH32 0x01ffc9a700000000000000000000000000000000000000000000000000000000 00002fe6: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003003: NOT 00003004: AND 00003005: DUP3 00003006: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003023: NOT 00003024: AND 00003025: EQ 00003026: SWAP1 00003027: POP 00003028: SWAP2 00003029: SWAP1 0000302a: POP 0000302b: JUMP 0000302c: JUMPDEST 0000302d: PUSH1 0x00 0000302f: DUP5 00003030: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003045: AND 00003046: CALLER 00003047: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000305c: AND 0000305d: EQ 0000305e: PUSH2 0x3070 00003061: JUMPI 00003062: PUSH2 0x306b 00003065: DUP6 00003066: DUP4 00003067: PUSH2 0x3390 0000306a: JUMP 0000306b: JUMPDEST 0000306c: PUSH2 0x307a 0000306f: JUMP 00003070: JUMPDEST 00003071: PUSH2 0x3079 00003074: DUP3 00003075: PUSH2 0x3451 00003078: JUMP 00003079: JUMPDEST 0000307a: JUMPDEST 0000307b: SWAP1 0000307c: POP 0000307d: SWAP5 0000307e: SWAP4 0000307f: POP 00003080: POP 00003081: POP 00003082: POP 00003083: JUMP 00003084: JUMPDEST 00003085: PUSH1 0x00 00003087: PUSH2 0x308f 0000308a: DUP4 0000308b: PUSH2 0x34f8 0000308e: JUMP 0000308f: JUMPDEST 00003090: SWAP1 00003091: POP 00003092: PUSH1 0x00 00003094: DUP3 00003095: PUSH1 0x02 00003097: PUSH1 0x00 00003099: DUP9 0000309a: PUSH2 0xffff 0000309d: AND 0000309e: PUSH2 0xffff 000030a1: AND 000030a2: DUP2 000030a3: MSTORE 000030a4: PUSH1 0x20 000030a6: ADD 000030a7: SWAP1 000030a8: DUP2 000030a9: MSTORE 000030aa: PUSH1 0x20 000030ac: ADD 000030ad: PUSH1 0x00 000030af: KECCAK256 000030b0: PUSH1 0x00 000030b2: DUP8 000030b3: PUSH2 0xffff 000030b6: AND 000030b7: PUSH2 0xffff 000030ba: AND 000030bb: DUP2 000030bc: MSTORE 000030bd: PUSH1 0x20 000030bf: ADD 000030c0: SWAP1 000030c1: DUP2 000030c2: MSTORE 000030c3: PUSH1 0x20 000030c5: ADD 000030c6: PUSH1 0x00 000030c8: KECCAK256 000030c9: SLOAD 000030ca: PUSH2 0x30d3 000030cd: SWAP2 000030ce: SWAP1 000030cf: PUSH2 0x481d 000030d2: JUMP 000030d3: JUMPDEST 000030d4: SWAP1 000030d5: POP 000030d6: PUSH1 0x00 000030d8: DUP2 000030d9: GT 000030da: PUSH2 0x3118 000030dd: JUMPI 000030de: PUSH1 0x40 000030e0: MLOAD 000030e1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003102: DUP2 00003103: MSTORE 00003104: PUSH1 0x04 00003106: ADD 00003107: PUSH2 0x310f 0000310a: SWAP1 0000310b: PUSH2 0x5a7c 0000310e: JUMP 0000310f: JUMPDEST 00003110: PUSH1 0x40 00003112: MLOAD 00003113: DUP1 00003114: SWAP2 00003115: SUB 00003116: SWAP1 00003117: REVERT 00003118: JUMPDEST 00003119: DUP1 0000311a: DUP3 0000311b: LT 0000311c: ISZERO 0000311d: PUSH2 0x315b 00003120: JUMPI 00003121: PUSH1 0x40 00003123: MLOAD 00003124: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003145: DUP2 00003146: MSTORE 00003147: PUSH1 0x04 00003149: ADD 0000314a: PUSH2 0x3152 0000314d: SWAP1 0000314e: PUSH2 0x5ae8 00003151: JUMP 00003152: JUMPDEST 00003153: PUSH1 0x40 00003155: MLOAD 00003156: DUP1 00003157: SWAP2 00003158: SUB 00003159: SWAP1 0000315a: REVERT 0000315b: JUMPDEST 0000315c: POP 0000315d: POP 0000315e: POP 0000315f: POP 00003160: POP 00003161: POP 00003162: JUMP 00003163: JUMPDEST 00003164: PUSH1 0x00 00003166: PUSH1 0x01 00003168: PUSH1 0x00 0000316a: DUP9 0000316b: PUSH2 0xffff 0000316e: AND 0000316f: PUSH2 0xffff 00003172: AND 00003173: DUP2 00003174: MSTORE 00003175: PUSH1 0x20 00003177: ADD 00003178: SWAP1 00003179: DUP2 0000317a: MSTORE 0000317b: PUSH1 0x20 0000317d: ADD 0000317e: PUSH1 0x00 00003180: KECCAK256 00003181: DUP1 00003182: SLOAD 00003183: PUSH2 0x318b 00003186: SWAP1 00003187: PUSH2 0x43c6 0000318a: JUMP 0000318b: JUMPDEST 0000318c: DUP1 0000318d: PUSH1 0x1f 0000318f: ADD 00003190: PUSH1 0x20 00003192: DUP1 00003193: SWAP2 00003194: DIV 00003195: MUL 00003196: PUSH1 0x20 00003198: ADD 00003199: PUSH1 0x40 0000319b: MLOAD 0000319c: SWAP1 0000319d: DUP2 0000319e: ADD 0000319f: PUSH1 0x40 000031a1: MSTORE 000031a2: DUP1 000031a3: SWAP3 000031a4: SWAP2 000031a5: SWAP1 000031a6: DUP2 000031a7: DUP2 000031a8: MSTORE 000031a9: PUSH1 0x20 000031ab: ADD 000031ac: DUP3 000031ad: DUP1 000031ae: SLOAD 000031af: PUSH2 0x31b7 000031b2: SWAP1 000031b3: PUSH2 0x43c6 000031b6: JUMP 000031b7: JUMPDEST 000031b8: DUP1 000031b9: ISZERO 000031ba: PUSH2 0x3204 000031bd: JUMPI 000031be: DUP1 000031bf: PUSH1 0x1f 000031c1: LT 000031c2: PUSH2 0x31d9 000031c5: JUMPI 000031c6: PUSH2 0x0100 000031c9: DUP1 000031ca: DUP4 000031cb: SLOAD 000031cc: DIV 000031cd: MUL 000031ce: DUP4 000031cf: MSTORE 000031d0: SWAP2 000031d1: PUSH1 0x20 000031d3: ADD 000031d4: SWAP2 000031d5: PUSH2 0x3204 000031d8: JUMP 000031d9: JUMPDEST 000031da: DUP3 000031db: ADD 000031dc: SWAP2 000031dd: SWAP1 000031de: PUSH1 0x00 000031e0: MSTORE 000031e1: PUSH1 0x20 000031e3: PUSH1 0x00 000031e5: KECCAK256 000031e6: SWAP1 000031e7: JUMPDEST 000031e8: DUP2 000031e9: SLOAD 000031ea: DUP2 000031eb: MSTORE 000031ec: SWAP1 000031ed: PUSH1 0x01 000031ef: ADD 000031f0: SWAP1 000031f1: PUSH1 0x20 000031f3: ADD 000031f4: DUP1 000031f5: DUP4 000031f6: GT 000031f7: PUSH2 0x31e7 000031fa: JUMPI 000031fb: DUP3 000031fc: SWAP1 000031fd: SUB 000031fe: PUSH1 0x1f 00003200: AND 00003201: DUP3 00003202: ADD 00003203: SWAP2 00003204: JUMPDEST 00003205: POP 00003206: POP 00003207: POP 00003208: POP 00003209: POP 0000320a: SWAP1 0000320b: POP 0000320c: PUSH1 0x00 0000320e: DUP2 0000320f: MLOAD 00003210: SUB 00003211: PUSH2 0x324f 00003214: JUMPI 00003215: PUSH1 0x40 00003217: MLOAD 00003218: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003239: DUP2 0000323a: MSTORE 0000323b: PUSH1 0x04 0000323d: ADD 0000323e: PUSH2 0x3246 00003241: SWAP1 00003242: PUSH2 0x5b7a 00003245: JUMP 00003246: JUMPDEST 00003247: PUSH1 0x40 00003249: MLOAD 0000324a: DUP1 0000324b: SWAP2 0000324c: SUB 0000324d: SWAP1 0000324e: REVERT 0000324f: JUMPDEST 00003250: PUSH32 0x00000000000000000000000066a71dcef29a0ffbdbe3c6a460a3b5bc225cd675 00003271: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003286: AND 00003287: PUSH4 0xc5803100 0000328c: DUP4 0000328d: DUP10 0000328e: DUP5 0000328f: DUP11 00003290: DUP11 00003291: DUP11 00003292: DUP11 00003293: PUSH1 0x40 00003295: MLOAD 00003296: DUP9 00003297: PUSH4 0xffffffff 0000329c: AND 0000329d: PUSH1 0xe0 0000329f: SHL 000032a0: DUP2 000032a1: MSTORE 000032a2: PUSH1 0x04 000032a4: ADD 000032a5: PUSH2 0x32b3 000032a8: SWAP7 000032a9: SWAP6 000032aa: SWAP5 000032ab: SWAP4 000032ac: SWAP3 000032ad: SWAP2 000032ae: SWAP1 000032af: PUSH2 0x5ba9 000032b2: JUMP 000032b3: JUMPDEST 000032b4: PUSH1 0x00 000032b6: PUSH1 0x40 000032b8: MLOAD 000032b9: DUP1 000032ba: DUP4 000032bb: SUB 000032bc: DUP2 000032bd: DUP6 000032be: DUP9 000032bf: DUP1 000032c0: EXTCODESIZE 000032c1: ISZERO 000032c2: DUP1 000032c3: ISZERO 000032c4: PUSH2 0x32cc 000032c7: JUMPI 000032c8: PUSH1 0x00 000032ca: DUP1 000032cb: REVERT 000032cc: JUMPDEST 000032cd: POP 000032ce: GAS 000032cf: CALL 000032d0: ISZERO 000032d1: DUP1 000032d2: ISZERO 000032d3: PUSH2 0x32e0 000032d6: JUMPI 000032d7: RETURNDATASIZE 000032d8: PUSH1 0x00 000032da: DUP1 000032db: RETURNDATACOPY 000032dc: RETURNDATASIZE 000032dd: PUSH1 0x00 000032df: REVERT 000032e0: JUMPDEST 000032e1: POP 000032e2: POP 000032e3: POP 000032e4: POP 000032e5: POP 000032e6: POP 000032e7: POP 000032e8: POP 000032e9: POP 000032ea: POP 000032eb: POP 000032ec: POP 000032ed: JUMP 000032ee: JUMPDEST 000032ef: PUSH1 0x00 000032f1: DUP1 000032f2: PUSH1 0x00 000032f4: DUP4 000032f5: DUP1 000032f6: PUSH1 0x20 000032f8: ADD 000032f9: SWAP1 000032fa: MLOAD 000032fb: DUP2 000032fc: ADD 000032fd: SWAP1 000032fe: PUSH2 0x3307 00003301: SWAP2 00003302: SWAP1 00003303: PUSH2 0x5c34 00003306: JUMP 00003307: JUMPDEST 00003308: SWAP4 00003309: POP 0000330a: SWAP4 0000330b: POP 0000330c: SWAP4 0000330d: POP 0000330e: POP 0000330f: PUSH1 0x00 00003311: PUSH2 0x3324 00003314: PUSH1 0x00 00003316: DUP5 00003317: PUSH2 0x354b 0000331a: SWAP1 0000331b: SWAP2 0000331c: SWAP1 0000331d: PUSH4 0xffffffff 00003322: AND 00003323: JUMP 00003324: JUMPDEST 00003325: SWAP1 00003326: POP 00003327: PUSH2 0x3331 0000332a: DUP9 0000332b: DUP3 0000332c: DUP5 0000332d: PUSH2 0x35c1 00003330: JUMP 00003331: JUMPDEST 00003332: DUP1 00003333: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00003348: AND 00003349: DUP9 0000334a: PUSH2 0xffff 0000334d: AND 0000334e: PUSH32 0x776434b505c7beb3db155c58df6c88985bf7c31730767e43ec773005059fed7a 0000336f: DUP7 00003370: DUP6 00003371: PUSH1 0x40 00003373: MLOAD 00003374: PUSH2 0x337e 00003377: SWAP3 00003378: SWAP2 00003379: SWAP1 0000337a: PUSH2 0x5cd3 0000337d: JUMP 0000337e: JUMPDEST 0000337f: PUSH1 0x40 00003381: MLOAD 00003382: DUP1 00003383: SWAP2 00003384: SUB 00003385: SWAP1 00003386: LOG3 00003387: POP 00003388: POP 00003389: POP 0000338a: POP 0000338b: POP 0000338c: POP 0000338d: POP 0000338e: POP 0000338f: JUMP 00003390: JUMPDEST 00003391: PUSH1 0x00 00003393: DUP1 00003394: PUSH2 0x339c 00003397: DUP5 00003398: PUSH2 0x1639 0000339b: JUMP 0000339c: JUMPDEST 0000339d: SWAP1 0000339e: POP 0000339f: DUP3 000033a0: DUP2 000033a1: LT 000033a2: ISZERO 000033a3: PUSH2 0x3430 000033a6: JUMPI 000033a7: DUP3 000033a8: CALLVALUE 000033a9: DUP3 000033aa: PUSH2 0x33b3 000033ad: SWAP2 000033ae: SWAP1 000033af: PUSH2 0x481d 000033b2: JUMP 000033b3: JUMPDEST 000033b4: LT 000033b5: ISZERO 000033b6: PUSH2 0x33f4 000033b9: JUMPI 000033ba: PUSH1 0x40 000033bc: MLOAD 000033bd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000033de: DUP2 000033df: MSTORE 000033e0: PUSH1 0x04 000033e2: ADD 000033e3: PUSH2 0x33eb 000033e6: SWAP1 000033e7: PUSH2 0x5d75 000033ea: JUMP 000033eb: JUMPDEST 000033ec: PUSH1 0x40 000033ee: MLOAD 000033ef: DUP1 000033f0: SWAP2 000033f1: SUB 000033f2: SWAP1 000033f3: REVERT 000033f4: JUMPDEST 000033f5: PUSH1 0x00 000033f7: DUP2 000033f8: DUP5 000033f9: PUSH2 0x3402 000033fc: SWAP2 000033fd: SWAP1 000033fe: PUSH2 0x4981 00003401: JUMP 00003402: JUMPDEST 00003403: SWAP1 00003404: POP 00003405: PUSH2 0x340e 00003408: CALLER 00003409: DUP3 0000340a: PUSH2 0x217f 0000340d: JUMP 0000340e: JUMPDEST 0000340f: PUSH2 0x3419 00003412: CALLER 00003413: ADDRESS 00003414: DUP4 00003415: PUSH2 0x2799 00003418: JUMP 00003419: JUMPDEST 0000341a: DUP2 0000341b: SWAP4 0000341c: POP 0000341d: DUP1 0000341e: CALLVALUE 0000341f: PUSH2 0x3428 00003422: SWAP2 00003423: SWAP1 00003424: PUSH2 0x4981 00003427: JUMP 00003428: JUMPDEST 00003429: SWAP3 0000342a: POP 0000342b: POP 0000342c: PUSH2 0x3434 0000342f: JUMP 00003430: JUMPDEST 00003431: CALLVALUE 00003432: SWAP2 00003433: POP 00003434: JUMPDEST 00003435: PUSH2 0x343f 00003438: DUP5 00003439: CALLER 0000343a: DUP6 0000343b: PUSH2 0x270d 0000343e: JUMP 0000343f: JUMPDEST 00003440: PUSH2 0x344a 00003443: DUP5 00003444: ADDRESS 00003445: DUP6 00003446: PUSH2 0x2799 00003449: JUMP 0000344a: JUMPDEST 0000344b: POP 0000344c: SWAP3 0000344d: SWAP2 0000344e: POP 0000344f: POP 00003450: JUMP 00003451: JUMPDEST 00003452: PUSH1 0x00 00003454: DUP1 00003455: PUSH2 0x345d 00003458: CALLER 00003459: PUSH2 0x1639 0000345c: JUMP 0000345d: JUMPDEST 0000345e: SWAP1 0000345f: POP 00003460: DUP3 00003461: DUP2 00003462: LT 00003463: ISZERO 00003464: PUSH2 0x34e3 00003467: JUMPI 00003468: DUP3 00003469: CALLVALUE 0000346a: DUP3 0000346b: PUSH2 0x3474 0000346e: SWAP2 0000346f: SWAP1 00003470: PUSH2 0x481d 00003473: JUMP 00003474: JUMPDEST 00003475: LT 00003476: ISZERO 00003477: PUSH2 0x34b5 0000347a: JUMPI 0000347b: PUSH1 0x40 0000347d: MLOAD 0000347e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000349f: DUP2 000034a0: MSTORE 000034a1: PUSH1 0x04 000034a3: ADD 000034a4: PUSH2 0x34ac 000034a7: SWAP1 000034a8: PUSH2 0x5d75 000034ab: JUMP 000034ac: JUMPDEST 000034ad: PUSH1 0x40 000034af: MLOAD 000034b0: DUP1 000034b1: SWAP2 000034b2: SUB 000034b3: SWAP1 000034b4: REVERT 000034b5: JUMPDEST 000034b6: PUSH1 0x00 000034b8: DUP2 000034b9: DUP5 000034ba: PUSH2 0x34c3 000034bd: SWAP2 000034be: SWAP1 000034bf: PUSH2 0x4981 000034c2: JUMP 000034c3: JUMPDEST 000034c4: SWAP1 000034c5: POP 000034c6: PUSH2 0x34cf 000034c9: CALLER 000034ca: DUP3 000034cb: PUSH2 0x217f 000034ce: JUMP 000034cf: JUMPDEST 000034d0: DUP1 000034d1: CALLVALUE 000034d2: PUSH2 0x34db 000034d5: SWAP2 000034d6: SWAP1 000034d7: PUSH2 0x4981 000034da: JUMP 000034db: JUMPDEST 000034dc: SWAP3 000034dd: POP 000034de: POP 000034df: PUSH2 0x34e7 000034e2: JUMP 000034e3: JUMPDEST 000034e4: CALLVALUE 000034e5: SWAP2 000034e6: POP 000034e7: JUMPDEST 000034e8: PUSH2 0x34f2 000034eb: CALLER 000034ec: ADDRESS 000034ed: DUP6 000034ee: PUSH2 0x2799 000034f1: JUMP 000034f2: JUMPDEST 000034f3: POP 000034f4: SWAP2 000034f5: SWAP1 000034f6: POP 000034f7: JUMP 000034f8: JUMPDEST 000034f9: PUSH1 0x00 000034fb: PUSH1 0x22 000034fd: DUP3 000034fe: MLOAD 000034ff: LT 00003500: ISZERO 00003501: PUSH2 0x353f 00003504: JUMPI 00003505: PUSH1 0x40 00003507: MLOAD 00003508: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003529: DUP2 0000352a: MSTORE 0000352b: PUSH1 0x04 0000352d: ADD 0000352e: PUSH2 0x3536 00003531: SWAP1 00003532: PUSH2 0x5de1 00003535: JUMP 00003536: JUMPDEST 00003537: PUSH1 0x40 00003539: MLOAD 0000353a: DUP1 0000353b: SWAP2 0000353c: SUB 0000353d: SWAP1 0000353e: REVERT 0000353f: JUMPDEST 00003540: PUSH1 0x22 00003542: DUP3 00003543: ADD 00003544: MLOAD 00003545: SWAP1 00003546: POP 00003547: SWAP2 00003548: SWAP1 00003549: POP 0000354a: JUMP 0000354b: JUMPDEST 0000354c: PUSH1 0x00 0000354e: PUSH1 0x14 00003550: DUP3 00003551: PUSH2 0x355a 00003554: SWAP2 00003555: SWAP1 00003556: PUSH2 0x481d 00003559: JUMP 0000355a: JUMPDEST 0000355b: DUP4 0000355c: MLOAD 0000355d: LT 0000355e: ISZERO 0000355f: PUSH2 0x359d 00003562: JUMPI 00003563: PUSH1 0x40 00003565: MLOAD 00003566: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003587: DUP2 00003588: MSTORE 00003589: PUSH1 0x04 0000358b: ADD 0000358c: PUSH2 0x3594 0000358f: SWAP1 00003590: PUSH2 0x5e4d 00003593: JUMP 00003594: JUMPDEST 00003595: PUSH1 0x40 00003597: MLOAD 00003598: DUP1 00003599: SWAP2 0000359a: SUB 0000359b: SWAP1 0000359c: REVERT 0000359d: JUMPDEST 0000359e: PUSH1 0x00 000035a0: PUSH13 0x01000000000000000000000000 000035ae: DUP4 000035af: PUSH1 0x20 000035b1: DUP7 000035b2: ADD 000035b3: ADD 000035b4: MLOAD 000035b5: DIV 000035b6: SWAP1 000035b7: POP 000035b8: DUP1 000035b9: SWAP2 000035ba: POP 000035bb: POP 000035bc: SWAP3 000035bd: SWAP2 000035be: POP 000035bf: POP 000035c0: JUMP 000035c1: JUMPDEST 000035c2: PUSH2 0x35cb 000035c5: ADDRESS 000035c6: DUP3 000035c7: PUSH2 0x2a1b 000035ca: JUMP 000035cb: JUMPDEST 000035cc: PUSH1 0x00 000035ce: DUP3 000035cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000035e4: AND 000035e5: DUP3 000035e6: PUSH1 0x40 000035e8: MLOAD 000035e9: PUSH2 0x35f1 000035ec: SWAP1 000035ed: PUSH2 0x476d 000035f0: JUMP 000035f1: JUMPDEST 000035f2: PUSH1 0x00 000035f4: PUSH1 0x40 000035f6: MLOAD 000035f7: DUP1 000035f8: DUP4 000035f9: SUB 000035fa: DUP2 000035fb: DUP6 000035fc: DUP8 000035fd: GAS 000035fe: CALL 000035ff: SWAP3 00003600: POP 00003601: POP 00003602: POP 00003603: RETURNDATASIZE 00003604: DUP1 00003605: PUSH1 0x00 00003607: DUP2 00003608: EQ 00003609: PUSH2 0x362e 0000360c: JUMPI 0000360d: PUSH1 0x40 0000360f: MLOAD 00003610: SWAP2 00003611: POP 00003612: PUSH1 0x1f 00003614: NOT 00003615: PUSH1 0x3f 00003617: RETURNDATASIZE 00003618: ADD 00003619: AND 0000361a: DUP3 0000361b: ADD 0000361c: PUSH1 0x40 0000361e: MSTORE 0000361f: RETURNDATASIZE 00003620: DUP3 00003621: MSTORE 00003622: RETURNDATASIZE 00003623: PUSH1 0x00 00003625: PUSH1 0x20 00003627: DUP5 00003628: ADD 00003629: RETURNDATACOPY 0000362a: PUSH2 0x3633 0000362d: JUMP 0000362e: JUMPDEST 0000362f: PUSH1 0x60 00003631: SWAP2 00003632: POP 00003633: JUMPDEST 00003634: POP 00003635: POP 00003636: SWAP1 00003637: POP 00003638: DUP1 00003639: PUSH2 0x3677 0000363c: JUMPI 0000363d: PUSH1 0x40 0000363f: MLOAD 00003640: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003661: DUP2 00003662: MSTORE 00003663: PUSH1 0x04 00003665: ADD 00003666: PUSH2 0x366e 00003669: SWAP1 0000366a: PUSH2 0x5eb9 0000366d: JUMP 0000366e: JUMPDEST 0000366f: PUSH1 0x40 00003671: MLOAD 00003672: DUP1 00003673: SWAP2 00003674: SUB 00003675: SWAP1 00003676: REVERT 00003677: JUMPDEST 00003678: POP 00003679: POP 0000367a: POP 0000367b: POP 0000367c: JUMP 0000367d: JUMPDEST 0000367e: PUSH1 0x00 00003680: PUSH1 0x40 00003682: MLOAD 00003683: SWAP1 00003684: POP 00003685: SWAP1 00003686: JUMP 00003687: JUMPDEST 00003688: PUSH1 0x00 0000368a: DUP1 0000368b: REVERT 0000368c: JUMPDEST 0000368d: PUSH1 0x00 0000368f: DUP1 00003690: REVERT 00003691: JUMPDEST 00003692: PUSH1 0x00 00003694: PUSH2 0xffff 00003697: DUP3 00003698: AND 00003699: SWAP1 0000369a: POP 0000369b: SWAP2 0000369c: SWAP1 0000369d: POP 0000369e: JUMP 0000369f: JUMPDEST 000036a0: PUSH2 0x36a8 000036a3: DUP2 000036a4: PUSH2 0x3691 000036a7: JUMP 000036a8: JUMPDEST 000036a9: DUP2 000036aa: EQ 000036ab: PUSH2 0x36b3 000036ae: JUMPI 000036af: PUSH1 0x00 000036b1: DUP1 000036b2: REVERT 000036b3: JUMPDEST 000036b4: POP 000036b5: JUMP 000036b6: JUMPDEST 000036b7: PUSH1 0x00 000036b9: DUP2 000036ba: CALLDATALOAD 000036bb: SWAP1 000036bc: POP 000036bd: PUSH2 0x36c5 000036c0: DUP2 000036c1: PUSH2 0x369f 000036c4: JUMP 000036c5: JUMPDEST 000036c6: SWAP3 000036c7: SWAP2 000036c8: POP 000036c9: POP 000036ca: JUMP 000036cb: JUMPDEST 000036cc: PUSH1 0x00 000036ce: DUP1 000036cf: REVERT 000036d0: JUMPDEST 000036d1: PUSH1 0x00 000036d3: DUP1 000036d4: REVERT 000036d5: JUMPDEST 000036d6: PUSH1 0x00 000036d8: DUP1 000036d9: REVERT 000036da: JUMPDEST 000036db: PUSH1 0x00 000036dd: DUP1 000036de: DUP4 000036df: PUSH1 0x1f 000036e1: DUP5 000036e2: ADD 000036e3: SLT 000036e4: PUSH2 0x36f0 000036e7: JUMPI 000036e8: PUSH2 0x36ef 000036eb: PUSH2 0x36cb 000036ee: JUMP 000036ef: JUMPDEST 000036f0: JUMPDEST 000036f1: DUP3 000036f2: CALLDATALOAD 000036f3: SWAP1 000036f4: POP 000036f5: PUSH8 0xffffffffffffffff 000036fe: DUP2 000036ff: GT 00003700: ISZERO 00003701: PUSH2 0x370d 00003704: JUMPI 00003705: PUSH2 0x370c 00003708: PUSH2 0x36d0 0000370b: JUMP 0000370c: JUMPDEST 0000370d: JUMPDEST 0000370e: PUSH1 0x20 00003710: DUP4 00003711: ADD 00003712: SWAP2 00003713: POP 00003714: DUP4 00003715: PUSH1 0x01 00003717: DUP3 00003718: MUL 00003719: DUP4 0000371a: ADD 0000371b: GT 0000371c: ISZERO 0000371d: PUSH2 0x3729 00003720: JUMPI 00003721: PUSH2 0x3728 00003724: PUSH2 0x36d5 00003727: JUMP 00003728: JUMPDEST 00003729: JUMPDEST 0000372a: SWAP3 0000372b: POP 0000372c: SWAP3 0000372d: SWAP1 0000372e: POP 0000372f: JUMP 00003730: JUMPDEST 00003731: PUSH1 0x00 00003733: PUSH8 0xffffffffffffffff 0000373c: DUP3 0000373d: AND 0000373e: SWAP1 0000373f: POP 00003740: SWAP2 00003741: SWAP1 00003742: POP 00003743: JUMP 00003744: JUMPDEST 00003745: PUSH2 0x374d 00003748: DUP2 00003749: PUSH2 0x3730 0000374c: JUMP 0000374d: JUMPDEST 0000374e: DUP2 0000374f: EQ 00003750: PUSH2 0x3758 00003753: JUMPI 00003754: PUSH1 0x00 00003756: DUP1 00003757: REVERT 00003758: JUMPDEST 00003759: POP 0000375a: JUMP 0000375b: JUMPDEST 0000375c: PUSH1 0x00 0000375e: DUP2 0000375f: CALLDATALOAD 00003760: SWAP1 00003761: POP 00003762: PUSH2 0x376a 00003765: DUP2 00003766: PUSH2 0x3744 00003769: JUMP 0000376a: JUMPDEST 0000376b: SWAP3 0000376c: SWAP2 0000376d: POP 0000376e: POP 0000376f: JUMP 00003770: JUMPDEST 00003771: PUSH1 0x00 00003773: DUP1 00003774: PUSH1 0x00 00003776: DUP1 00003777: PUSH1 0x00 00003779: DUP1 0000377a: PUSH1 0x80 0000377c: DUP8 0000377d: DUP10 0000377e: SUB 0000377f: SLT 00003780: ISZERO 00003781: PUSH2 0x378d 00003784: JUMPI 00003785: PUSH2 0x378c 00003788: PUSH2 0x3687 0000378b: JUMP 0000378c: JUMPDEST 0000378d: JUMPDEST 0000378e: PUSH1 0x00 00003790: PUSH2 0x379b 00003793: DUP10 00003794: DUP3 00003795: DUP11 00003796: ADD 00003797: PUSH2 0x36b6 0000379a: JUMP 0000379b: JUMPDEST 0000379c: SWAP7 0000379d: POP 0000379e: POP 0000379f: PUSH1 0x20 000037a1: DUP8 000037a2: ADD 000037a3: CALLDATALOAD 000037a4: PUSH8 0xffffffffffffffff 000037ad: DUP2 000037ae: GT 000037af: ISZERO 000037b0: PUSH2 0x37bc 000037b3: JUMPI 000037b4: PUSH2 0x37bb 000037b7: PUSH2 0x368c 000037ba: JUMP 000037bb: JUMPDEST 000037bc: JUMPDEST 000037bd: PUSH2 0x37c8 000037c0: DUP10 000037c1: DUP3 000037c2: DUP11 000037c3: ADD 000037c4: PUSH2 0x36da 000037c7: JUMP 000037c8: JUMPDEST 000037c9: SWAP6 000037ca: POP 000037cb: SWAP6 000037cc: POP 000037cd: POP 000037ce: PUSH1 0x40 000037d0: PUSH2 0x37db 000037d3: DUP10 000037d4: DUP3 000037d5: DUP11 000037d6: ADD 000037d7: PUSH2 0x375b 000037da: JUMP 000037db: JUMPDEST 000037dc: SWAP4 000037dd: POP 000037de: POP 000037df: PUSH1 0x60 000037e1: DUP8 000037e2: ADD 000037e3: CALLDATALOAD 000037e4: PUSH8 0xffffffffffffffff 000037ed: DUP2 000037ee: GT 000037ef: ISZERO 000037f0: PUSH2 0x37fc 000037f3: JUMPI 000037f4: PUSH2 0x37fb 000037f7: PUSH2 0x368c 000037fa: JUMP 000037fb: JUMPDEST 000037fc: JUMPDEST 000037fd: PUSH2 0x3808 00003800: DUP10 00003801: DUP3 00003802: DUP11 00003803: ADD 00003804: PUSH2 0x36da 00003807: JUMP 00003808: JUMPDEST 00003809: SWAP3 0000380a: POP 0000380b: SWAP3 0000380c: POP 0000380d: POP 0000380e: SWAP3 0000380f: SWAP6 00003810: POP 00003811: SWAP3 00003812: SWAP6 00003813: POP 00003814: SWAP3 00003815: SWAP6 00003816: JUMP 00003817: JUMPDEST 00003818: PUSH1 0x00 0000381a: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000383b: DUP3 0000383c: AND 0000383d: SWAP1 0000383e: POP 0000383f: SWAP2 00003840: SWAP1 00003841: POP 00003842: JUMP 00003843: JUMPDEST 00003844: PUSH2 0x384c 00003847: DUP2 00003848: PUSH2 0x3817 0000384b: JUMP 0000384c: JUMPDEST 0000384d: DUP2 0000384e: EQ 0000384f: PUSH2 0x3857 00003852: JUMPI 00003853: PUSH1 0x00 00003855: DUP1 00003856: REVERT 00003857: JUMPDEST 00003858: POP 00003859: JUMP 0000385a: JUMPDEST 0000385b: PUSH1 0x00 0000385d: DUP2 0000385e: CALLDATALOAD 0000385f: SWAP1 00003860: POP 00003861: PUSH2 0x3869 00003864: DUP2 00003865: PUSH2 0x3843 00003868: JUMP 00003869: JUMPDEST 0000386a: SWAP3 0000386b: SWAP2 0000386c: POP 0000386d: POP 0000386e: JUMP 0000386f: JUMPDEST 00003870: PUSH1 0x00 00003872: PUSH1 0x20 00003874: DUP3 00003875: DUP5 00003876: SUB 00003877: SLT 00003878: ISZERO 00003879: PUSH2 0x3885 0000387c: JUMPI 0000387d: PUSH2 0x3884 00003880: PUSH2 0x3687 00003883: JUMP 00003884: JUMPDEST 00003885: JUMPDEST 00003886: PUSH1 0x00 00003888: PUSH2 0x3893 0000388b: DUP5 0000388c: DUP3 0000388d: DUP6 0000388e: ADD 0000388f: PUSH2 0x385a 00003892: JUMP 00003893: JUMPDEST 00003894: SWAP2 00003895: POP 00003896: POP 00003897: SWAP3 00003898: SWAP2 00003899: POP 0000389a: POP 0000389b: JUMP 0000389c: JUMPDEST 0000389d: PUSH1 0x00 0000389f: DUP2 000038a0: ISZERO 000038a1: ISZERO 000038a2: SWAP1 000038a3: POP 000038a4: SWAP2 000038a5: SWAP1 000038a6: POP 000038a7: JUMP 000038a8: JUMPDEST 000038a9: PUSH2 0x38b1 000038ac: DUP2 000038ad: PUSH2 0x389c 000038b0: JUMP 000038b1: JUMPDEST 000038b2: DUP3 000038b3: MSTORE 000038b4: POP 000038b5: POP 000038b6: JUMP 000038b7: JUMPDEST 000038b8: PUSH1 0x00 000038ba: PUSH1 0x20 000038bc: DUP3 000038bd: ADD 000038be: SWAP1 000038bf: POP 000038c0: PUSH2 0x38cc 000038c3: PUSH1 0x00 000038c5: DUP4 000038c6: ADD 000038c7: DUP5 000038c8: PUSH2 0x38a8 000038cb: JUMP 000038cc: JUMPDEST 000038cd: SWAP3 000038ce: SWAP2 000038cf: POP 000038d0: POP 000038d1: JUMP 000038d2: JUMPDEST 000038d3: PUSH1 0x00 000038d5: DUP2 000038d6: MLOAD 000038d7: SWAP1 000038d8: POP 000038d9: SWAP2 000038da: SWAP1 000038db: POP 000038dc: JUMP 000038dd: JUMPDEST 000038de: PUSH1 0x00 000038e0: DUP3 000038e1: DUP3 000038e2: MSTORE 000038e3: PUSH1 0x20 000038e5: DUP3 000038e6: ADD 000038e7: SWAP1 000038e8: POP 000038e9: SWAP3 000038ea: SWAP2 000038eb: POP 000038ec: POP 000038ed: JUMP 000038ee: JUMPDEST 000038ef: PUSH1 0x00 000038f1: JUMPDEST 000038f2: DUP4 000038f3: DUP2 000038f4: LT 000038f5: ISZERO 000038f6: PUSH2 0x390c 000038f9: JUMPI 000038fa: DUP1 000038fb: DUP3 000038fc: ADD 000038fd: MLOAD 000038fe: DUP2 000038ff: DUP5 00003900: ADD 00003901: MSTORE 00003902: PUSH1 0x20 00003904: DUP2 00003905: ADD 00003906: SWAP1 00003907: POP 00003908: PUSH2 0x38f1 0000390b: JUMP 0000390c: JUMPDEST 0000390d: PUSH1 0x00 0000390f: DUP5 00003910: DUP5 00003911: ADD 00003912: MSTORE 00003913: POP 00003914: POP 00003915: POP 00003916: POP 00003917: JUMP 00003918: JUMPDEST 00003919: PUSH1 0x00 0000391b: PUSH1 0x1f 0000391d: NOT 0000391e: PUSH1 0x1f 00003920: DUP4 00003921: ADD 00003922: AND 00003923: SWAP1 00003924: POP 00003925: SWAP2 00003926: SWAP1 00003927: POP 00003928: JUMP 00003929: JUMPDEST 0000392a: PUSH1 0x00 0000392c: PUSH2 0x3934 0000392f: DUP3 00003930: PUSH2 0x38d2 00003933: JUMP 00003934: JUMPDEST 00003935: PUSH2 0x393e 00003938: DUP2 00003939: DUP6 0000393a: PUSH2 0x38dd 0000393d: JUMP 0000393e: JUMPDEST 0000393f: SWAP4 00003940: POP 00003941: PUSH2 0x394e 00003944: DUP2 00003945: DUP6 00003946: PUSH1 0x20 00003948: DUP7 00003949: ADD 0000394a: PUSH2 0x38ee 0000394d: JUMP 0000394e: JUMPDEST 0000394f: PUSH2 0x3957 00003952: DUP2 00003953: PUSH2 0x3918 00003956: JUMP 00003957: JUMPDEST 00003958: DUP5 00003959: ADD 0000395a: SWAP2 0000395b: POP 0000395c: POP 0000395d: SWAP3 0000395e: SWAP2 0000395f: POP 00003960: POP 00003961: JUMP 00003962: JUMPDEST 00003963: PUSH1 0x00 00003965: PUSH1 0x20 00003967: DUP3 00003968: ADD 00003969: SWAP1 0000396a: POP 0000396b: DUP2 0000396c: DUP2 0000396d: SUB 0000396e: PUSH1 0x00 00003970: DUP4 00003971: ADD 00003972: MSTORE 00003973: PUSH2 0x397c 00003976: DUP2 00003977: DUP5 00003978: PUSH2 0x3929 0000397b: JUMP 0000397c: JUMPDEST 0000397d: SWAP1 0000397e: POP 0000397f: SWAP3 00003980: SWAP2 00003981: POP 00003982: POP 00003983: JUMP 00003984: JUMPDEST 00003985: PUSH1 0x00 00003987: PUSH1 0x20 00003989: DUP3 0000398a: DUP5 0000398b: SUB 0000398c: SLT 0000398d: ISZERO 0000398e: PUSH2 0x399a 00003991: JUMPI 00003992: PUSH2 0x3999 00003995: PUSH2 0x3687 00003998: JUMP 00003999: JUMPDEST 0000399a: JUMPDEST 0000399b: PUSH1 0x00 0000399d: PUSH2 0x39a8 000039a0: DUP5 000039a1: DUP3 000039a2: DUP6 000039a3: ADD 000039a4: PUSH2 0x36b6 000039a7: JUMP 000039a8: JUMPDEST 000039a9: SWAP2 000039aa: POP 000039ab: POP 000039ac: SWAP3 000039ad: SWAP2 000039ae: POP 000039af: POP 000039b0: JUMP 000039b1: JUMPDEST 000039b2: PUSH1 0x00 000039b4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000039c9: DUP3 000039ca: AND 000039cb: SWAP1 000039cc: POP 000039cd: SWAP2 000039ce: SWAP1 000039cf: POP 000039d0: JUMP 000039d1: JUMPDEST 000039d2: PUSH1 0x00 000039d4: PUSH2 0x39dc 000039d7: DUP3 000039d8: PUSH2 0x39b1 000039db: JUMP 000039dc: JUMPDEST 000039dd: SWAP1 000039de: POP 000039df: SWAP2 000039e0: SWAP1 000039e1: POP 000039e2: JUMP 000039e3: JUMPDEST 000039e4: PUSH2 0x39ec 000039e7: DUP2 000039e8: PUSH2 0x39d1 000039eb: JUMP 000039ec: JUMPDEST 000039ed: DUP2 000039ee: EQ 000039ef: PUSH2 0x39f7 000039f2: JUMPI 000039f3: PUSH1 0x00 000039f5: DUP1 000039f6: REVERT 000039f7: JUMPDEST 000039f8: POP 000039f9: JUMP 000039fa: JUMPDEST 000039fb: PUSH1 0x00 000039fd: DUP2 000039fe: CALLDATALOAD 000039ff: SWAP1 00003a00: POP 00003a01: PUSH2 0x3a09 00003a04: DUP2 00003a05: PUSH2 0x39e3 00003a08: JUMP 00003a09: JUMPDEST 00003a0a: SWAP3 00003a0b: SWAP2 00003a0c: POP 00003a0d: POP 00003a0e: JUMP 00003a0f: JUMPDEST 00003a10: PUSH1 0x00 00003a12: DUP2 00003a13: SWAP1 00003a14: POP 00003a15: SWAP2 00003a16: SWAP1 00003a17: POP 00003a18: JUMP 00003a19: JUMPDEST 00003a1a: PUSH2 0x3a22 00003a1d: DUP2 00003a1e: PUSH2 0x3a0f 00003a21: JUMP 00003a22: JUMPDEST 00003a23: DUP2 00003a24: EQ 00003a25: PUSH2 0x3a2d 00003a28: JUMPI 00003a29: PUSH1 0x00 00003a2b: DUP1 00003a2c: REVERT 00003a2d: JUMPDEST 00003a2e: POP 00003a2f: JUMP 00003a30: JUMPDEST 00003a31: PUSH1 0x00 00003a33: DUP2 00003a34: CALLDATALOAD 00003a35: SWAP1 00003a36: POP 00003a37: PUSH2 0x3a3f 00003a3a: DUP2 00003a3b: PUSH2 0x3a19 00003a3e: JUMP 00003a3f: JUMPDEST 00003a40: SWAP3 00003a41: SWAP2 00003a42: POP 00003a43: POP 00003a44: JUMP 00003a45: JUMPDEST 00003a46: PUSH1 0x00 00003a48: DUP1 00003a49: PUSH1 0x40 00003a4b: DUP4 00003a4c: DUP6 00003a4d: SUB 00003a4e: SLT 00003a4f: ISZERO 00003a50: PUSH2 0x3a5c 00003a53: JUMPI 00003a54: PUSH2 0x3a5b 00003a57: PUSH2 0x3687 00003a5a: JUMP 00003a5b: JUMPDEST 00003a5c: JUMPDEST 00003a5d: PUSH1 0x00 00003a5f: PUSH2 0x3a6a 00003a62: DUP6 00003a63: DUP3 00003a64: DUP7 00003a65: ADD 00003a66: PUSH2 0x39fa 00003a69: JUMP 00003a6a: JUMPDEST 00003a6b: SWAP3 00003a6c: POP 00003a6d: POP 00003a6e: PUSH1 0x20 00003a70: PUSH2 0x3a7b 00003a73: DUP6 00003a74: DUP3 00003a75: DUP7 00003a76: ADD 00003a77: PUSH2 0x3a30 00003a7a: JUMP 00003a7b: JUMPDEST 00003a7c: SWAP2 00003a7d: POP 00003a7e: POP 00003a7f: SWAP3 00003a80: POP 00003a81: SWAP3 00003a82: SWAP1 00003a83: POP 00003a84: JUMP 00003a85: JUMPDEST 00003a86: PUSH2 0x3a8e 00003a89: DUP2 00003a8a: PUSH2 0x3a0f 00003a8d: JUMP 00003a8e: JUMPDEST 00003a8f: DUP3 00003a90: MSTORE 00003a91: POP 00003a92: POP 00003a93: JUMP 00003a94: JUMPDEST 00003a95: PUSH1 0x00 00003a97: PUSH1 0x20 00003a99: DUP3 00003a9a: ADD 00003a9b: SWAP1 00003a9c: POP 00003a9d: PUSH2 0x3aa9 00003aa0: PUSH1 0x00 00003aa2: DUP4 00003aa3: ADD 00003aa4: DUP5 00003aa5: PUSH2 0x3a85 00003aa8: JUMP 00003aa9: JUMPDEST 00003aaa: SWAP3 00003aab: SWAP2 00003aac: POP 00003aad: POP 00003aae: JUMP 00003aaf: JUMPDEST 00003ab0: PUSH1 0x00 00003ab2: DUP1 00003ab3: PUSH1 0x00 00003ab5: PUSH1 0x60 00003ab7: DUP5 00003ab8: DUP7 00003ab9: SUB 00003aba: SLT 00003abb: ISZERO 00003abc: PUSH2 0x3ac8 00003abf: JUMPI 00003ac0: PUSH2 0x3ac7 00003ac3: PUSH2 0x3687 00003ac6: JUMP 00003ac7: JUMPDEST 00003ac8: JUMPDEST 00003ac9: PUSH1 0x00 00003acb: PUSH2 0x3ad6 00003ace: DUP7 00003acf: DUP3 00003ad0: DUP8 00003ad1: ADD 00003ad2: PUSH2 0x39fa 00003ad5: JUMP 00003ad6: JUMPDEST 00003ad7: SWAP4 00003ad8: POP 00003ad9: POP 00003ada: PUSH1 0x20 00003adc: PUSH2 0x3ae7 00003adf: DUP7 00003ae0: DUP3 00003ae1: DUP8 00003ae2: ADD 00003ae3: PUSH2 0x39fa 00003ae6: JUMP 00003ae7: JUMPDEST 00003ae8: SWAP3 00003ae9: POP 00003aea: POP 00003aeb: PUSH1 0x40 00003aed: PUSH2 0x3af8 00003af0: DUP7 00003af1: DUP3 00003af2: DUP8 00003af3: ADD 00003af4: PUSH2 0x3a30 00003af7: JUMP 00003af8: JUMPDEST 00003af9: SWAP2 00003afa: POP 00003afb: POP 00003afc: SWAP3 00003afd: POP 00003afe: SWAP3 00003aff: POP 00003b00: SWAP3 00003b01: JUMP 00003b02: JUMPDEST 00003b03: PUSH2 0x3b0b 00003b06: DUP2 00003b07: PUSH2 0x389c 00003b0a: JUMP 00003b0b: JUMPDEST 00003b0c: DUP2 00003b0d: EQ 00003b0e: PUSH2 0x3b16 00003b11: JUMPI 00003b12: PUSH1 0x00 00003b14: DUP1 00003b15: REVERT 00003b16: JUMPDEST 00003b17: POP 00003b18: JUMP 00003b19: JUMPDEST 00003b1a: PUSH1 0x00 00003b1c: DUP2 00003b1d: CALLDATALOAD 00003b1e: SWAP1 00003b1f: POP 00003b20: PUSH2 0x3b28 00003b23: DUP2 00003b24: PUSH2 0x3b02 00003b27: JUMP 00003b28: JUMPDEST 00003b29: SWAP3 00003b2a: SWAP2 00003b2b: POP 00003b2c: POP 00003b2d: JUMP 00003b2e: JUMPDEST 00003b2f: PUSH1 0x00 00003b31: DUP1 00003b32: PUSH1 0x00 00003b34: DUP1 00003b35: PUSH1 0x00 00003b37: DUP1 00003b38: PUSH1 0x00 00003b3a: PUSH1 0xa0 00003b3c: DUP9 00003b3d: DUP11 00003b3e: SUB 00003b3f: SLT 00003b40: ISZERO 00003b41: PUSH2 0x3b4d 00003b44: JUMPI 00003b45: PUSH2 0x3b4c 00003b48: PUSH2 0x3687 00003b4b: JUMP 00003b4c: JUMPDEST 00003b4d: JUMPDEST 00003b4e: PUSH1 0x00 00003b50: PUSH2 0x3b5b 00003b53: DUP11 00003b54: DUP3 00003b55: DUP12 00003b56: ADD 00003b57: PUSH2 0x36b6 00003b5a: JUMP 00003b5b: JUMPDEST 00003b5c: SWAP8 00003b5d: POP 00003b5e: POP 00003b5f: PUSH1 0x20 00003b61: DUP9 00003b62: ADD 00003b63: CALLDATALOAD 00003b64: PUSH8 0xffffffffffffffff 00003b6d: DUP2 00003b6e: GT 00003b6f: ISZERO 00003b70: PUSH2 0x3b7c 00003b73: JUMPI 00003b74: PUSH2 0x3b7b 00003b77: PUSH2 0x368c 00003b7a: JUMP 00003b7b: JUMPDEST 00003b7c: JUMPDEST 00003b7d: PUSH2 0x3b88 00003b80: DUP11 00003b81: DUP3 00003b82: DUP12 00003b83: ADD 00003b84: PUSH2 0x36da 00003b87: JUMP 00003b88: JUMPDEST 00003b89: SWAP7 00003b8a: POP 00003b8b: SWAP7 00003b8c: POP 00003b8d: POP 00003b8e: PUSH1 0x40 00003b90: PUSH2 0x3b9b 00003b93: DUP11 00003b94: DUP3 00003b95: DUP12 00003b96: ADD 00003b97: PUSH2 0x3a30 00003b9a: JUMP 00003b9b: JUMPDEST 00003b9c: SWAP5 00003b9d: POP 00003b9e: POP 00003b9f: PUSH1 0x60 00003ba1: PUSH2 0x3bac 00003ba4: DUP11 00003ba5: DUP3 00003ba6: DUP12 00003ba7: ADD 00003ba8: PUSH2 0x3b19 00003bab: JUMP 00003bac: JUMPDEST 00003bad: SWAP4 00003bae: POP 00003baf: POP 00003bb0: PUSH1 0x80 00003bb2: DUP9 00003bb3: ADD 00003bb4: CALLDATALOAD 00003bb5: PUSH8 0xffffffffffffffff 00003bbe: DUP2 00003bbf: GT 00003bc0: ISZERO 00003bc1: PUSH2 0x3bcd 00003bc4: JUMPI 00003bc5: PUSH2 0x3bcc 00003bc8: PUSH2 0x368c 00003bcb: JUMP 00003bcc: JUMPDEST 00003bcd: JUMPDEST 00003bce: PUSH2 0x3bd9 00003bd1: DUP11 00003bd2: DUP3 00003bd3: DUP12 00003bd4: ADD 00003bd5: PUSH2 0x36da 00003bd8: JUMP 00003bd9: JUMPDEST 00003bda: SWAP3 00003bdb: POP 00003bdc: SWAP3 00003bdd: POP 00003bde: POP 00003bdf: SWAP3 00003be0: SWAP6 00003be1: SWAP9 00003be2: SWAP2 00003be3: SWAP5 00003be4: SWAP8 00003be5: POP 00003be6: SWAP3 00003be7: SWAP6 00003be8: POP 00003be9: JUMP 00003bea: JUMPDEST 00003beb: PUSH1 0x00 00003bed: PUSH1 0x40 00003bef: DUP3 00003bf0: ADD 00003bf1: SWAP1 00003bf2: POP 00003bf3: PUSH2 0x3bff 00003bf6: PUSH1 0x00 00003bf8: DUP4 00003bf9: ADD 00003bfa: DUP6 00003bfb: PUSH2 0x3a85 00003bfe: JUMP 00003bff: JUMPDEST 00003c00: PUSH2 0x3c0c 00003c03: PUSH1 0x20 00003c05: DUP4 00003c06: ADD 00003c07: DUP5 00003c08: PUSH2 0x3a85 00003c0b: JUMP 00003c0c: JUMPDEST 00003c0d: SWAP4 00003c0e: SWAP3 00003c0f: POP 00003c10: POP 00003c11: POP 00003c12: JUMP 00003c13: JUMPDEST 00003c14: PUSH1 0x00 00003c16: PUSH1 0x20 00003c18: DUP3 00003c19: DUP5 00003c1a: SUB 00003c1b: SLT 00003c1c: ISZERO 00003c1d: PUSH2 0x3c29 00003c20: JUMPI 00003c21: PUSH2 0x3c28 00003c24: PUSH2 0x3687 00003c27: JUMP 00003c28: JUMPDEST 00003c29: JUMPDEST 00003c2a: PUSH1 0x00 00003c2c: PUSH2 0x3c37 00003c2f: DUP5 00003c30: DUP3 00003c31: DUP6 00003c32: ADD 00003c33: PUSH2 0x3a30 00003c36: JUMP 00003c37: JUMPDEST 00003c38: SWAP2 00003c39: POP 00003c3a: POP 00003c3b: SWAP3 00003c3c: SWAP2 00003c3d: POP 00003c3e: POP 00003c3f: JUMP 00003c40: JUMPDEST 00003c41: PUSH1 0x00 00003c43: PUSH1 0xff 00003c45: DUP3 00003c46: AND 00003c47: SWAP1 00003c48: POP 00003c49: SWAP2 00003c4a: SWAP1 00003c4b: POP 00003c4c: JUMP 00003c4d: JUMPDEST 00003c4e: PUSH2 0x3c56 00003c51: DUP2 00003c52: PUSH2 0x3c40 00003c55: JUMP 00003c56: JUMPDEST 00003c57: DUP3 00003c58: MSTORE 00003c59: POP 00003c5a: POP 00003c5b: JUMP 00003c5c: JUMPDEST 00003c5d: PUSH1 0x00 00003c5f: PUSH1 0x20 00003c61: DUP3 00003c62: ADD 00003c63: SWAP1 00003c64: POP 00003c65: PUSH2 0x3c71 00003c68: PUSH1 0x00 00003c6a: DUP4 00003c6b: ADD 00003c6c: DUP5 00003c6d: PUSH2 0x3c4d 00003c70: JUMP 00003c71: JUMPDEST 00003c72: SWAP3 00003c73: SWAP2 00003c74: POP 00003c75: POP 00003c76: JUMP 00003c77: JUMPDEST 00003c78: PUSH1 0x00 00003c7a: DUP1 00003c7b: PUSH1 0x00 00003c7d: PUSH1 0x40 00003c7f: DUP5 00003c80: DUP7 00003c81: SUB 00003c82: SLT 00003c83: ISZERO 00003c84: PUSH2 0x3c90 00003c87: JUMPI 00003c88: PUSH2 0x3c8f 00003c8b: PUSH2 0x3687 00003c8e: JUMP 00003c8f: JUMPDEST 00003c90: JUMPDEST 00003c91: PUSH1 0x00 00003c93: PUSH2 0x3c9e 00003c96: DUP7 00003c97: DUP3 00003c98: DUP8 00003c99: ADD 00003c9a: PUSH2 0x36b6 00003c9d: JUMP 00003c9e: JUMPDEST 00003c9f: SWAP4 00003ca0: POP 00003ca1: POP 00003ca2: PUSH1 0x20 00003ca4: DUP5 00003ca5: ADD 00003ca6: CALLDATALOAD 00003ca7: PUSH8 0xffffffffffffffff 00003cb0: DUP2 00003cb1: GT 00003cb2: ISZERO 00003cb3: PUSH2 0x3cbf 00003cb6: JUMPI 00003cb7: PUSH2 0x3cbe 00003cba: PUSH2 0x368c 00003cbd: JUMP 00003cbe: JUMPDEST 00003cbf: JUMPDEST 00003cc0: PUSH2 0x3ccb 00003cc3: DUP7 00003cc4: DUP3 00003cc5: DUP8 00003cc6: ADD 00003cc7: PUSH2 0x36da 00003cca: JUMP 00003ccb: JUMPDEST 00003ccc: SWAP3 00003ccd: POP 00003cce: SWAP3 00003ccf: POP 00003cd0: POP 00003cd1: SWAP3 00003cd2: POP 00003cd3: SWAP3 00003cd4: POP 00003cd5: SWAP3 00003cd6: JUMP 00003cd7: JUMPDEST 00003cd8: PUSH2 0x3ce0 00003cdb: DUP2 00003cdc: PUSH2 0x3691 00003cdf: JUMP 00003ce0: JUMPDEST 00003ce1: DUP3 00003ce2: MSTORE 00003ce3: POP 00003ce4: POP 00003ce5: JUMP 00003ce6: JUMPDEST 00003ce7: PUSH1 0x00 00003ce9: PUSH1 0x20 00003ceb: DUP3 00003cec: ADD 00003ced: SWAP1 00003cee: POP 00003cef: PUSH2 0x3cfb 00003cf2: PUSH1 0x00 00003cf4: DUP4 00003cf5: ADD 00003cf6: DUP5 00003cf7: PUSH2 0x3cd7 00003cfa: JUMP 00003cfb: JUMPDEST 00003cfc: SWAP3 00003cfd: SWAP2 00003cfe: POP 00003cff: POP 00003d00: JUMP 00003d01: JUMPDEST 00003d02: PUSH1 0x00 00003d04: PUSH2 0x3d0c 00003d07: DUP3 00003d08: PUSH2 0x39b1 00003d0b: JUMP 00003d0c: JUMPDEST 00003d0d: SWAP1 00003d0e: POP 00003d0f: SWAP2 00003d10: SWAP1 00003d11: POP 00003d12: JUMP 00003d13: JUMPDEST 00003d14: PUSH2 0x3d1c 00003d17: DUP2 00003d18: PUSH2 0x3d01 00003d1b: JUMP 00003d1c: JUMPDEST 00003d1d: DUP2 00003d1e: EQ 00003d1f: PUSH2 0x3d27 00003d22: JUMPI 00003d23: PUSH1 0x00 00003d25: DUP1 00003d26: REVERT 00003d27: JUMPDEST 00003d28: POP 00003d29: JUMP 00003d2a: JUMPDEST 00003d2b: PUSH1 0x00 00003d2d: DUP2 00003d2e: CALLDATALOAD 00003d2f: SWAP1 00003d30: POP 00003d31: PUSH2 0x3d39 00003d34: DUP2 00003d35: PUSH2 0x3d13 00003d38: JUMP 00003d39: JUMPDEST 00003d3a: SWAP3 00003d3b: SWAP2 00003d3c: POP 00003d3d: POP 00003d3e: JUMP 00003d3f: JUMPDEST 00003d40: PUSH1 0x00 00003d42: DUP1 00003d43: PUSH1 0x00 00003d45: DUP1 00003d46: PUSH1 0x00 00003d48: DUP1 00003d49: PUSH1 0x00 00003d4b: DUP1 00003d4c: PUSH1 0x00 00003d4e: PUSH1 0xe0 00003d50: DUP11 00003d51: DUP13 00003d52: SUB 00003d53: SLT 00003d54: ISZERO 00003d55: PUSH2 0x3d61 00003d58: JUMPI 00003d59: PUSH2 0x3d60 00003d5c: PUSH2 0x3687 00003d5f: JUMP 00003d60: JUMPDEST 00003d61: JUMPDEST 00003d62: PUSH1 0x00 00003d64: PUSH2 0x3d6f 00003d67: DUP13 00003d68: DUP3 00003d69: DUP14 00003d6a: ADD 00003d6b: PUSH2 0x39fa 00003d6e: JUMP 00003d6f: JUMPDEST 00003d70: SWAP10 00003d71: POP 00003d72: POP 00003d73: PUSH1 0x20 00003d75: PUSH2 0x3d80 00003d78: DUP13 00003d79: DUP3 00003d7a: DUP14 00003d7b: ADD 00003d7c: PUSH2 0x36b6 00003d7f: JUMP 00003d80: JUMPDEST 00003d81: SWAP9 00003d82: POP 00003d83: POP 00003d84: PUSH1 0x40 00003d86: DUP11 00003d87: ADD 00003d88: CALLDATALOAD 00003d89: PUSH8 0xffffffffffffffff 00003d92: DUP2 00003d93: GT 00003d94: ISZERO 00003d95: PUSH2 0x3da1 00003d98: JUMPI 00003d99: PUSH2 0x3da0 00003d9c: PUSH2 0x368c 00003d9f: JUMP 00003da0: JUMPDEST 00003da1: JUMPDEST 00003da2: PUSH2 0x3dad 00003da5: DUP13 00003da6: DUP3 00003da7: DUP14 00003da8: ADD 00003da9: PUSH2 0x36da 00003dac: JUMP 00003dad: JUMPDEST 00003dae: SWAP8 00003daf: POP 00003db0: SWAP8 00003db1: POP 00003db2: POP 00003db3: PUSH1 0x60 00003db5: PUSH2 0x3dc0 00003db8: DUP13 00003db9: DUP3 00003dba: DUP14 00003dbb: ADD 00003dbc: PUSH2 0x3a30 00003dbf: JUMP 00003dc0: JUMPDEST 00003dc1: SWAP6 00003dc2: POP 00003dc3: POP 00003dc4: PUSH1 0x80 00003dc6: PUSH2 0x3dd1 00003dc9: DUP13 00003dca: DUP3 00003dcb: DUP14 00003dcc: ADD 00003dcd: PUSH2 0x3d2a 00003dd0: JUMP 00003dd1: JUMPDEST 00003dd2: SWAP5 00003dd3: POP 00003dd4: POP 00003dd5: PUSH1 0xa0 00003dd7: PUSH2 0x3de2 00003dda: DUP13 00003ddb: DUP3 00003ddc: DUP14 00003ddd: ADD 00003dde: PUSH2 0x39fa 00003de1: JUMP 00003de2: JUMPDEST 00003de3: SWAP4 00003de4: POP 00003de5: POP 00003de6: PUSH1 0xc0 00003de8: DUP11 00003de9: ADD 00003dea: CALLDATALOAD 00003deb: PUSH8 0xffffffffffffffff 00003df4: DUP2 00003df5: GT 00003df6: ISZERO 00003df7: PUSH2 0x3e03 00003dfa: JUMPI 00003dfb: PUSH2 0x3e02 00003dfe: PUSH2 0x368c 00003e01: JUMP 00003e02: JUMPDEST 00003e03: JUMPDEST 00003e04: PUSH2 0x3e0f 00003e07: DUP13 00003e08: DUP3 00003e09: DUP14 00003e0a: ADD 00003e0b: PUSH2 0x36da 00003e0e: JUMP 00003e0f: JUMPDEST 00003e10: SWAP3 00003e11: POP 00003e12: SWAP3 00003e13: POP 00003e14: POP 00003e15: SWAP3 00003e16: SWAP6 00003e17: SWAP9 00003e18: POP 00003e19: SWAP3 00003e1a: SWAP6 00003e1b: SWAP9 00003e1c: POP 00003e1d: SWAP3 00003e1e: SWAP6 00003e1f: SWAP9 00003e20: JUMP 00003e21: JUMPDEST 00003e22: PUSH1 0x00 00003e24: DUP1 00003e25: REVERT 00003e26: JUMPDEST 00003e27: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00003e48: PUSH1 0x00 00003e4a: MSTORE 00003e4b: PUSH1 0x41 00003e4d: PUSH1 0x04 00003e4f: MSTORE 00003e50: PUSH1 0x24 00003e52: PUSH1 0x00 00003e54: REVERT 00003e55: JUMPDEST 00003e56: PUSH2 0x3e5e 00003e59: DUP3 00003e5a: PUSH2 0x3918 00003e5d: JUMP 00003e5e: JUMPDEST 00003e5f: DUP2 00003e60: ADD 00003e61: DUP2 00003e62: DUP2 00003e63: LT 00003e64: PUSH8 0xffffffffffffffff 00003e6d: DUP3 00003e6e: GT 00003e6f: OR 00003e70: ISZERO 00003e71: PUSH2 0x3e7d 00003e74: JUMPI 00003e75: PUSH2 0x3e7c 00003e78: PUSH2 0x3e26 00003e7b: JUMP 00003e7c: JUMPDEST 00003e7d: JUMPDEST 00003e7e: DUP1 00003e7f: PUSH1 0x40 00003e81: MSTORE 00003e82: POP 00003e83: POP 00003e84: POP 00003e85: JUMP 00003e86: JUMPDEST 00003e87: PUSH1 0x00 00003e89: PUSH2 0x3e90 00003e8c: PUSH2 0x367d 00003e8f: JUMP 00003e90: JUMPDEST 00003e91: SWAP1 00003e92: POP 00003e93: PUSH2 0x3e9c 00003e96: DUP3 00003e97: DUP3 00003e98: PUSH2 0x3e55 00003e9b: JUMP 00003e9c: JUMPDEST 00003e9d: SWAP2 00003e9e: SWAP1 00003e9f: POP 00003ea0: JUMP 00003ea1: JUMPDEST 00003ea2: PUSH1 0x00 00003ea4: PUSH8 0xffffffffffffffff 00003ead: DUP3 00003eae: GT 00003eaf: ISZERO 00003eb0: PUSH2 0x3ebc 00003eb3: JUMPI 00003eb4: PUSH2 0x3ebb 00003eb7: PUSH2 0x3e26 00003eba: JUMP 00003ebb: JUMPDEST 00003ebc: JUMPDEST 00003ebd: PUSH2 0x3ec5 00003ec0: DUP3 00003ec1: PUSH2 0x3918 00003ec4: JUMP 00003ec5: JUMPDEST 00003ec6: SWAP1 00003ec7: POP 00003ec8: PUSH1 0x20 00003eca: DUP2 00003ecb: ADD 00003ecc: SWAP1 00003ecd: POP 00003ece: SWAP2 00003ecf: SWAP1 00003ed0: POP 00003ed1: JUMP 00003ed2: JUMPDEST 00003ed3: DUP3 00003ed4: DUP2 00003ed5: DUP4 00003ed6: CALLDATACOPY 00003ed7: PUSH1 0x00 00003ed9: DUP4 00003eda: DUP4 00003edb: ADD 00003edc: MSTORE 00003edd: POP 00003ede: POP 00003edf: POP 00003ee0: JUMP 00003ee1: JUMPDEST 00003ee2: PUSH1 0x00 00003ee4: PUSH2 0x3ef4 00003ee7: PUSH2 0x3eef 00003eea: DUP5 00003eeb: PUSH2 0x3ea1 00003eee: JUMP 00003eef: JUMPDEST 00003ef0: PUSH2 0x3e86 00003ef3: JUMP 00003ef4: JUMPDEST 00003ef5: SWAP1 00003ef6: POP 00003ef7: DUP3 00003ef8: DUP2 00003ef9: MSTORE 00003efa: PUSH1 0x20 00003efc: DUP2 00003efd: ADD 00003efe: DUP5 00003eff: DUP5 00003f00: DUP5 00003f01: ADD 00003f02: GT 00003f03: ISZERO 00003f04: PUSH2 0x3f10 00003f07: JUMPI 00003f08: PUSH2 0x3f0f 00003f0b: PUSH2 0x3e21 00003f0e: JUMP 00003f0f: JUMPDEST 00003f10: JUMPDEST 00003f11: PUSH2 0x3f1b 00003f14: DUP5 00003f15: DUP3 00003f16: DUP6 00003f17: PUSH2 0x3ed2 00003f1a: JUMP 00003f1b: JUMPDEST 00003f1c: POP 00003f1d: SWAP4 00003f1e: SWAP3 00003f1f: POP 00003f20: POP 00003f21: POP 00003f22: JUMP 00003f23: JUMPDEST 00003f24: PUSH1 0x00 00003f26: DUP3 00003f27: PUSH1 0x1f 00003f29: DUP4 00003f2a: ADD 00003f2b: SLT 00003f2c: PUSH2 0x3f38 00003f2f: JUMPI 00003f30: PUSH2 0x3f37 00003f33: PUSH2 0x36cb 00003f36: JUMP 00003f37: JUMPDEST 00003f38: JUMPDEST 00003f39: DUP2 00003f3a: CALLDATALOAD 00003f3b: PUSH2 0x3f48 00003f3e: DUP5 00003f3f: DUP3 00003f40: PUSH1 0x20 00003f42: DUP7 00003f43: ADD 00003f44: PUSH2 0x3ee1 00003f47: JUMP 00003f48: JUMPDEST 00003f49: SWAP2 00003f4a: POP 00003f4b: POP 00003f4c: SWAP3 00003f4d: SWAP2 00003f4e: POP 00003f4f: POP 00003f50: JUMP 00003f51: JUMPDEST 00003f52: PUSH1 0x00 00003f54: DUP1 00003f55: PUSH1 0x00 00003f57: PUSH1 0x60 00003f59: DUP5 00003f5a: DUP7 00003f5b: SUB 00003f5c: SLT 00003f5d: ISZERO 00003f5e: PUSH2 0x3f6a 00003f61: JUMPI 00003f62: PUSH2 0x3f69 00003f65: PUSH2 0x3687 00003f68: JUMP 00003f69: JUMPDEST 00003f6a: JUMPDEST 00003f6b: PUSH1 0x00 00003f6d: PUSH2 0x3f78 00003f70: DUP7 00003f71: DUP3 00003f72: DUP8 00003f73: ADD 00003f74: PUSH2 0x36b6 00003f77: JUMP 00003f78: JUMPDEST 00003f79: SWAP4 00003f7a: POP 00003f7b: POP 00003f7c: PUSH1 0x20 00003f7e: DUP5 00003f7f: ADD 00003f80: CALLDATALOAD 00003f81: PUSH8 0xffffffffffffffff 00003f8a: DUP2 00003f8b: GT 00003f8c: ISZERO 00003f8d: PUSH2 0x3f99 00003f90: JUMPI 00003f91: PUSH2 0x3f98 00003f94: PUSH2 0x368c 00003f97: JUMP 00003f98: JUMPDEST 00003f99: JUMPDEST 00003f9a: PUSH2 0x3fa5 00003f9d: DUP7 00003f9e: DUP3 00003f9f: DUP8 00003fa0: ADD 00003fa1: PUSH2 0x3f23 00003fa4: JUMP 00003fa5: JUMPDEST 00003fa6: SWAP3 00003fa7: POP 00003fa8: POP 00003fa9: PUSH1 0x40 00003fab: PUSH2 0x3fb6 00003fae: DUP7 00003faf: DUP3 00003fb0: DUP8 00003fb1: ADD 00003fb2: PUSH2 0x375b 00003fb5: JUMP 00003fb6: JUMPDEST 00003fb7: SWAP2 00003fb8: POP 00003fb9: POP 00003fba: SWAP3 00003fbb: POP 00003fbc: SWAP3 00003fbd: POP 00003fbe: SWAP3 00003fbf: JUMP 00003fc0: JUMPDEST 00003fc1: PUSH1 0x00 00003fc3: DUP2 00003fc4: SWAP1 00003fc5: POP 00003fc6: SWAP2 00003fc7: SWAP1 00003fc8: POP 00003fc9: JUMP 00003fca: JUMPDEST 00003fcb: PUSH2 0x3fd3 00003fce: DUP2 00003fcf: PUSH2 0x3fc0 00003fd2: JUMP 00003fd3: JUMPDEST 00003fd4: DUP3 00003fd5: MSTORE 00003fd6: POP 00003fd7: POP 00003fd8: JUMP 00003fd9: JUMPDEST 00003fda: PUSH1 0x00 00003fdc: PUSH1 0x20 00003fde: DUP3 00003fdf: ADD 00003fe0: SWAP1 00003fe1: POP 00003fe2: PUSH2 0x3fee 00003fe5: PUSH1 0x00 00003fe7: DUP4 00003fe8: ADD 00003fe9: DUP5 00003fea: PUSH2 0x3fca 00003fed: JUMP 00003fee: JUMPDEST 00003fef: SWAP3 00003ff0: SWAP2 00003ff1: POP 00003ff2: POP 00003ff3: JUMP 00003ff4: JUMPDEST 00003ff5: PUSH1 0x00 00003ff7: PUSH1 0x20 00003ff9: DUP3 00003ffa: DUP5 00003ffb: SUB 00003ffc: SLT 00003ffd: ISZERO 00003ffe: PUSH2 0x400a 00004001: JUMPI 00004002: PUSH2 0x4009 00004005: PUSH2 0x3687 00004008: JUMP 00004009: JUMPDEST 0000400a: JUMPDEST 0000400b: PUSH1 0x00 0000400d: PUSH2 0x4018 00004010: DUP5 00004011: DUP3 00004012: DUP6 00004013: ADD 00004014: PUSH2 0x39fa 00004017: JUMP 00004018: JUMPDEST 00004019: SWAP2 0000401a: POP 0000401b: POP 0000401c: SWAP3 0000401d: SWAP2 0000401e: POP 0000401f: POP 00004020: JUMP 00004021: JUMPDEST 00004022: PUSH1 0x00 00004024: DUP2 00004025: MLOAD 00004026: SWAP1 00004027: POP 00004028: SWAP2 00004029: SWAP1 0000402a: POP 0000402b: JUMP 0000402c: JUMPDEST 0000402d: PUSH1 0x00 0000402f: DUP3 00004030: DUP3 00004031: MSTORE 00004032: PUSH1 0x20 00004034: DUP3 00004035: ADD 00004036: SWAP1 00004037: POP 00004038: SWAP3 00004039: SWAP2 0000403a: POP 0000403b: POP 0000403c: JUMP 0000403d: JUMPDEST 0000403e: PUSH1 0x00 00004040: PUSH2 0x4048 00004043: DUP3 00004044: PUSH2 0x4021 00004047: JUMP 00004048: JUMPDEST 00004049: PUSH2 0x4052 0000404c: DUP2 0000404d: DUP6 0000404e: PUSH2 0x402c 00004051: JUMP 00004052: JUMPDEST 00004053: SWAP4 00004054: POP 00004055: PUSH2 0x4062 00004058: DUP2 00004059: DUP6 0000405a: PUSH1 0x20 0000405c: DUP7 0000405d: ADD 0000405e: PUSH2 0x38ee 00004061: JUMP 00004062: JUMPDEST 00004063: PUSH2 0x406b 00004066: DUP2 00004067: PUSH2 0x3918 0000406a: JUMP 0000406b: JUMPDEST 0000406c: DUP5 0000406d: ADD 0000406e: SWAP2 0000406f: POP 00004070: POP 00004071: SWAP3 00004072: SWAP2 00004073: POP 00004074: POP 00004075: JUMP 00004076: JUMPDEST 00004077: PUSH1 0x00 00004079: PUSH1 0x20 0000407b: DUP3 0000407c: ADD 0000407d: SWAP1 0000407e: POP 0000407f: DUP2 00004080: DUP2 00004081: SUB 00004082: PUSH1 0x00 00004084: DUP4 00004085: ADD 00004086: MSTORE 00004087: PUSH2 0x4090 0000408a: DUP2 0000408b: DUP5 0000408c: PUSH2 0x403d 0000408f: JUMP 00004090: JUMPDEST 00004091: SWAP1 00004092: POP 00004093: SWAP3 00004094: SWAP2 00004095: POP 00004096: POP 00004097: JUMP 00004098: JUMPDEST 00004099: PUSH1 0x00 0000409b: DUP1 0000409c: PUSH1 0x40 0000409e: DUP4 0000409f: DUP6 000040a0: SUB 000040a1: SLT 000040a2: ISZERO 000040a3: PUSH2 0x40af 000040a6: JUMPI 000040a7: PUSH2 0x40ae 000040aa: PUSH2 0x3687 000040ad: JUMP 000040ae: JUMPDEST 000040af: JUMPDEST 000040b0: PUSH1 0x00 000040b2: PUSH2 0x40bd 000040b5: DUP6 000040b6: DUP3 000040b7: DUP7 000040b8: ADD 000040b9: PUSH2 0x36b6 000040bc: JUMP 000040bd: JUMPDEST 000040be: SWAP3 000040bf: POP 000040c0: POP 000040c1: PUSH1 0x20 000040c3: PUSH2 0x40ce 000040c6: DUP6 000040c7: DUP3 000040c8: DUP7 000040c9: ADD 000040ca: PUSH2 0x36b6 000040cd: JUMP 000040ce: JUMPDEST 000040cf: SWAP2 000040d0: POP 000040d1: POP 000040d2: SWAP3 000040d3: POP 000040d4: SWAP3 000040d5: SWAP1 000040d6: POP 000040d7: JUMP 000040d8: JUMPDEST 000040d9: PUSH2 0x40e1 000040dc: DUP2 000040dd: PUSH2 0x39d1 000040e0: JUMP 000040e1: JUMPDEST 000040e2: DUP3 000040e3: MSTORE 000040e4: POP 000040e5: POP 000040e6: JUMP 000040e7: JUMPDEST 000040e8: PUSH1 0x00 000040ea: PUSH1 0x20 000040ec: DUP3 000040ed: ADD 000040ee: SWAP1 000040ef: POP 000040f0: PUSH2 0x40fc 000040f3: PUSH1 0x00 000040f5: DUP4 000040f6: ADD 000040f7: DUP5 000040f8: PUSH2 0x40d8 000040fb: JUMP 000040fc: JUMPDEST 000040fd: SWAP3 000040fe: SWAP2 000040ff: POP 00004100: POP 00004101: JUMP 00004102: JUMPDEST 00004103: PUSH1 0x00 00004105: DUP2 00004106: SWAP1 00004107: POP 00004108: SWAP2 00004109: SWAP1 0000410a: POP 0000410b: JUMP 0000410c: JUMPDEST 0000410d: PUSH1 0x00 0000410f: PUSH2 0x4127 00004112: PUSH2 0x4122 00004115: PUSH2 0x411d 00004118: DUP5 00004119: PUSH2 0x39b1 0000411c: JUMP 0000411d: JUMPDEST 0000411e: PUSH2 0x4102 00004121: JUMP 00004122: JUMPDEST 00004123: PUSH2 0x39b1 00004126: JUMP 00004127: JUMPDEST 00004128: SWAP1 00004129: POP 0000412a: SWAP2 0000412b: SWAP1 0000412c: POP 0000412d: JUMP 0000412e: JUMPDEST 0000412f: PUSH1 0x00 00004131: PUSH2 0x4139 00004134: DUP3 00004135: PUSH2 0x410c 00004138: JUMP 00004139: JUMPDEST 0000413a: SWAP1 0000413b: POP 0000413c: SWAP2 0000413d: SWAP1 0000413e: POP 0000413f: JUMP 00004140: JUMPDEST 00004141: PUSH1 0x00 00004143: PUSH2 0x414b 00004146: DUP3 00004147: PUSH2 0x412e 0000414a: JUMP 0000414b: JUMPDEST 0000414c: SWAP1 0000414d: POP 0000414e: SWAP2 0000414f: SWAP1 00004150: POP 00004151: JUMP 00004152: JUMPDEST 00004153: PUSH2 0x415b 00004156: DUP2 00004157: PUSH2 0x4140 0000415a: JUMP 0000415b: JUMPDEST 0000415c: DUP3 0000415d: MSTORE 0000415e: POP 0000415f: POP 00004160: JUMP 00004161: JUMPDEST 00004162: PUSH1 0x00 00004164: PUSH1 0x20 00004166: DUP3 00004167: ADD 00004168: SWAP1 00004169: POP 0000416a: PUSH2 0x4176 0000416d: PUSH1 0x00 0000416f: DUP4 00004170: ADD 00004171: DUP5 00004172: PUSH2 0x4152 00004175: JUMP 00004176: JUMPDEST 00004177: SWAP3 00004178: SWAP2 00004179: POP 0000417a: POP 0000417b: JUMP 0000417c: JUMPDEST 0000417d: PUSH1 0x00 0000417f: DUP1 00004180: PUSH1 0x00 00004182: DUP1 00004183: PUSH1 0x00 00004185: PUSH1 0x80 00004187: DUP7 00004188: DUP9 00004189: SUB 0000418a: SLT 0000418b: ISZERO 0000418c: PUSH2 0x4198 0000418f: JUMPI 00004190: PUSH2 0x4197 00004193: PUSH2 0x3687 00004196: JUMP 00004197: JUMPDEST 00004198: JUMPDEST 00004199: PUSH1 0x00 0000419b: PUSH2 0x41a6 0000419e: DUP9 0000419f: DUP3 000041a0: DUP10 000041a1: ADD 000041a2: PUSH2 0x36b6 000041a5: JUMP 000041a6: JUMPDEST 000041a7: SWAP6 000041a8: POP 000041a9: POP 000041aa: PUSH1 0x20 000041ac: PUSH2 0x41b7 000041af: DUP9 000041b0: DUP3 000041b1: DUP10 000041b2: ADD 000041b3: PUSH2 0x36b6 000041b6: JUMP 000041b7: JUMPDEST 000041b8: SWAP5 000041b9: POP 000041ba: POP 000041bb: PUSH1 0x40 000041bd: PUSH2 0x41c8 000041c0: DUP9 000041c1: DUP3 000041c2: DUP10 000041c3: ADD 000041c4: PUSH2 0x3a30 000041c7: JUMP 000041c8: JUMPDEST 000041c9: SWAP4 000041ca: POP 000041cb: POP 000041cc: PUSH1 0x60 000041ce: DUP7 000041cf: ADD 000041d0: CALLDATALOAD 000041d1: PUSH8 0xffffffffffffffff 000041da: DUP2 000041db: GT 000041dc: ISZERO 000041dd: PUSH2 0x41e9 000041e0: JUMPI 000041e1: PUSH2 0x41e8 000041e4: PUSH2 0x368c 000041e7: JUMP 000041e8: JUMPDEST 000041e9: JUMPDEST 000041ea: PUSH2 0x41f5 000041ed: DUP9 000041ee: DUP3 000041ef: DUP10 000041f0: ADD 000041f1: PUSH2 0x36da 000041f4: JUMP 000041f5: JUMPDEST 000041f6: SWAP3 000041f7: POP 000041f8: SWAP3 000041f9: POP 000041fa: POP 000041fb: SWAP3 000041fc: SWAP6 000041fd: POP 000041fe: SWAP3 000041ff: SWAP6 00004200: SWAP1 00004201: SWAP4 00004202: POP 00004203: JUMP 00004204: JUMPDEST 00004205: PUSH1 0x00 00004207: DUP1 00004208: PUSH1 0x40 0000420a: DUP4 0000420b: DUP6 0000420c: SUB 0000420d: SLT 0000420e: ISZERO 0000420f: PUSH2 0x421b 00004212: JUMPI 00004213: PUSH2 0x421a 00004216: PUSH2 0x3687 00004219: JUMP 0000421a: JUMPDEST 0000421b: JUMPDEST 0000421c: PUSH1 0x00 0000421e: PUSH2 0x4229 00004221: DUP6 00004222: DUP3 00004223: DUP7 00004224: ADD 00004225: PUSH2 0x39fa 00004228: JUMP 00004229: JUMPDEST 0000422a: SWAP3 0000422b: POP 0000422c: POP 0000422d: PUSH1 0x20 0000422f: PUSH2 0x423a 00004232: DUP6 00004233: DUP3 00004234: DUP7 00004235: ADD 00004236: PUSH2 0x39fa 00004239: JUMP 0000423a: JUMPDEST 0000423b: SWAP2 0000423c: POP 0000423d: POP 0000423e: SWAP3 0000423f: POP 00004240: SWAP3 00004241: SWAP1 00004242: POP 00004243: JUMP 00004244: JUMPDEST 00004245: PUSH1 0x00 00004247: DUP1 00004248: PUSH1 0x00 0000424a: PUSH1 0x60 0000424c: DUP5 0000424d: DUP7 0000424e: SUB 0000424f: SLT 00004250: ISZERO 00004251: PUSH2 0x425d 00004254: JUMPI 00004255: PUSH2 0x425c 00004258: PUSH2 0x3687 0000425b: JUMP 0000425c: JUMPDEST 0000425d: JUMPDEST 0000425e: PUSH1 0x00 00004260: PUSH2 0x426b 00004263: DUP7 00004264: DUP3 00004265: DUP8 00004266: ADD 00004267: PUSH2 0x36b6 0000426a: JUMP 0000426b: JUMPDEST 0000426c: SWAP4 0000426d: POP 0000426e: POP 0000426f: PUSH1 0x20 00004271: PUSH2 0x427c 00004274: DUP7 00004275: DUP3 00004276: DUP8 00004277: ADD 00004278: PUSH2 0x36b6 0000427b: JUMP 0000427c: JUMPDEST 0000427d: SWAP3 0000427e: POP 0000427f: POP 00004280: PUSH1 0x40 00004282: PUSH2 0x428d 00004285: DUP7 00004286: DUP3 00004287: DUP8 00004288: ADD 00004289: PUSH2 0x3a30 0000428c: JUMP 0000428d: JUMPDEST 0000428e: SWAP2 0000428f: POP 00004290: POP 00004291: SWAP3 00004292: POP 00004293: SWAP3 00004294: POP 00004295: SWAP3 00004296: JUMP 00004297: JUMPDEST 00004298: PUSH1 0x00 0000429a: PUSH1 0x20 0000429c: DUP3 0000429d: DUP5 0000429e: SUB 0000429f: SLT 000042a0: ISZERO 000042a1: PUSH2 0x42ad 000042a4: JUMPI 000042a5: PUSH2 0x42ac 000042a8: PUSH2 0x3687 000042ab: JUMP 000042ac: JUMPDEST 000042ad: JUMPDEST 000042ae: PUSH1 0x00 000042b0: PUSH2 0x42bb 000042b3: DUP5 000042b4: DUP3 000042b5: DUP6 000042b6: ADD 000042b7: PUSH2 0x3b19 000042ba: JUMP 000042bb: JUMPDEST 000042bc: SWAP2 000042bd: POP 000042be: POP 000042bf: SWAP3 000042c0: SWAP2 000042c1: POP 000042c2: POP 000042c3: JUMP 000042c4: JUMPDEST 000042c5: PUSH1 0x00 000042c7: DUP1 000042c8: PUSH1 0x00 000042ca: DUP1 000042cb: PUSH1 0x80 000042cd: DUP6 000042ce: DUP8 000042cf: SUB 000042d0: SLT 000042d1: ISZERO 000042d2: PUSH2 0x42de 000042d5: JUMPI 000042d6: PUSH2 0x42dd 000042d9: PUSH2 0x3687 000042dc: JUMP 000042dd: JUMPDEST 000042de: JUMPDEST 000042df: PUSH1 0x00 000042e1: PUSH2 0x42ec 000042e4: DUP8 000042e5: DUP3 000042e6: DUP9 000042e7: ADD 000042e8: PUSH2 0x36b6 000042eb: JUMP 000042ec: JUMPDEST 000042ed: SWAP5 000042ee: POP 000042ef: POP 000042f0: PUSH1 0x20 000042f2: PUSH2 0x42fd 000042f5: DUP8 000042f6: DUP3 000042f7: DUP9 000042f8: ADD 000042f9: PUSH2 0x36b6 000042fc: JUMP 000042fd: JUMPDEST 000042fe: SWAP4 000042ff: POP 00004300: POP 00004301: PUSH1 0x40 00004303: PUSH2 0x430e 00004306: DUP8 00004307: DUP3 00004308: DUP9 00004309: ADD 0000430a: PUSH2 0x39fa 0000430d: JUMP 0000430e: JUMPDEST 0000430f: SWAP3 00004310: POP 00004311: POP 00004312: PUSH1 0x60 00004314: PUSH2 0x431f 00004317: DUP8 00004318: DUP3 00004319: DUP9 0000431a: ADD 0000431b: PUSH2 0x3a30 0000431e: JUMP 0000431f: JUMPDEST 00004320: SWAP2 00004321: POP 00004322: POP 00004323: SWAP3 00004324: SWAP6 00004325: SWAP2 00004326: SWAP5 00004327: POP 00004328: SWAP3 00004329: POP 0000432a: JUMP 0000432b: JUMPDEST 0000432c: PUSH32 0x4c7a4170703a20696e76616c696420656e64706f696e742063616c6c65720000 0000434d: PUSH1 0x00 0000434f: DUP3 00004350: ADD 00004351: MSTORE 00004352: POP 00004353: JUMP 00004354: JUMPDEST 00004355: PUSH1 0x00 00004357: PUSH2 0x4361 0000435a: PUSH1 0x1e 0000435c: DUP4 0000435d: PUSH2 0x38dd 00004360: JUMP 00004361: JUMPDEST 00004362: SWAP2 00004363: POP 00004364: PUSH2 0x436c 00004367: DUP3 00004368: PUSH2 0x432b 0000436b: JUMP 0000436c: JUMPDEST 0000436d: PUSH1 0x20 0000436f: DUP3 00004370: ADD 00004371: SWAP1 00004372: POP 00004373: SWAP2 00004374: SWAP1 00004375: POP 00004376: JUMP 00004377: JUMPDEST 00004378: PUSH1 0x00 0000437a: PUSH1 0x20 0000437c: DUP3 0000437d: ADD 0000437e: SWAP1 0000437f: POP 00004380: DUP2 00004381: DUP2 00004382: SUB 00004383: PUSH1 0x00 00004385: DUP4 00004386: ADD 00004387: MSTORE 00004388: PUSH2 0x4390 0000438b: DUP2 0000438c: PUSH2 0x4354 0000438f: JUMP 00004390: JUMPDEST 00004391: SWAP1 00004392: POP 00004393: SWAP2 00004394: SWAP1 00004395: POP 00004396: JUMP 00004397: JUMPDEST 00004398: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000043b9: PUSH1 0x00 000043bb: MSTORE 000043bc: PUSH1 0x22 000043be: PUSH1 0x04 000043c0: MSTORE 000043c1: PUSH1 0x24 000043c3: PUSH1 0x00 000043c5: REVERT 000043c6: JUMPDEST 000043c7: PUSH1 0x00 000043c9: PUSH1 0x02 000043cb: DUP3 000043cc: DIV 000043cd: SWAP1 000043ce: POP 000043cf: PUSH1 0x01 000043d1: DUP3 000043d2: AND 000043d3: DUP1 000043d4: PUSH2 0x43de 000043d7: JUMPI 000043d8: PUSH1 0x7f 000043da: DUP3 000043db: AND 000043dc: SWAP2 000043dd: POP 000043de: JUMPDEST 000043df: PUSH1 0x20 000043e1: DUP3 000043e2: LT 000043e3: DUP2 000043e4: SUB 000043e5: PUSH2 0x43f1 000043e8: JUMPI 000043e9: PUSH2 0x43f0 000043ec: PUSH2 0x4397 000043ef: JUMP 000043f0: JUMPDEST 000043f1: JUMPDEST 000043f2: POP 000043f3: SWAP2 000043f4: SWAP1 000043f5: POP 000043f6: JUMP 000043f7: JUMPDEST 000043f8: PUSH1 0x00 000043fa: DUP2 000043fb: SWAP1 000043fc: POP 000043fd: SWAP3 000043fe: SWAP2 000043ff: POP 00004400: POP 00004401: JUMP 00004402: JUMPDEST 00004403: PUSH1 0x00 00004405: PUSH2 0x440e 00004408: DUP4 00004409: DUP6 0000440a: PUSH2 0x43f7 0000440d: JUMP 0000440e: JUMPDEST 0000440f: SWAP4 00004410: POP 00004411: PUSH2 0x441b 00004414: DUP4 00004415: DUP6 00004416: DUP5 00004417: PUSH2 0x3ed2 0000441a: JUMP 0000441b: JUMPDEST 0000441c: DUP3 0000441d: DUP5 0000441e: ADD 0000441f: SWAP1 00004420: POP 00004421: SWAP4 00004422: SWAP3 00004423: POP 00004424: POP 00004425: POP 00004426: JUMP 00004427: JUMPDEST 00004428: PUSH1 0x00 0000442a: PUSH2 0x4434 0000442d: DUP3 0000442e: DUP5 0000442f: DUP7 00004430: PUSH2 0x4402 00004433: JUMP 00004434: JUMPDEST 00004435: SWAP2 00004436: POP 00004437: DUP2 00004438: SWAP1 00004439: POP 0000443a: SWAP4 0000443b: SWAP3 0000443c: POP 0000443d: POP 0000443e: POP 0000443f: JUMP 00004440: JUMPDEST 00004441: PUSH32 0x4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f 00004462: PUSH1 0x00 00004464: DUP3 00004465: ADD 00004466: MSTORE 00004467: PUSH32 0x6e74726163740000000000000000000000000000000000000000000000000000 00004488: PUSH1 0x20 0000448a: DUP3 0000448b: ADD 0000448c: MSTORE 0000448d: POP 0000448e: JUMP 0000448f: JUMPDEST 00004490: PUSH1 0x00 00004492: PUSH2 0x449c 00004495: PUSH1 0x26 00004497: DUP4 00004498: PUSH2 0x38dd 0000449b: JUMP 0000449c: JUMPDEST 0000449d: SWAP2 0000449e: POP 0000449f: PUSH2 0x44a7 000044a2: DUP3 000044a3: PUSH2 0x4440 000044a6: JUMP 000044a7: JUMPDEST 000044a8: PUSH1 0x40 000044aa: DUP3 000044ab: ADD 000044ac: SWAP1 000044ad: POP 000044ae: SWAP2 000044af: SWAP1 000044b0: POP 000044b1: JUMP 000044b2: JUMPDEST 000044b3: PUSH1 0x00 000044b5: PUSH1 0x20 000044b7: DUP3 000044b8: ADD 000044b9: SWAP1 000044ba: POP 000044bb: DUP2 000044bc: DUP2 000044bd: SUB 000044be: PUSH1 0x00 000044c0: DUP4 000044c1: ADD 000044c2: MSTORE 000044c3: PUSH2 0x44cb 000044c6: DUP2 000044c7: PUSH2 0x448f 000044ca: JUMP 000044cb: JUMPDEST 000044cc: SWAP1 000044cd: POP 000044ce: SWAP2 000044cf: SWAP1 000044d0: POP 000044d1: JUMP 000044d2: JUMPDEST 000044d3: PUSH1 0x00 000044d5: DUP2 000044d6: PUSH1 0x60 000044d8: SHL 000044d9: SWAP1 000044da: POP 000044db: SWAP2 000044dc: SWAP1 000044dd: POP 000044de: JUMP 000044df: JUMPDEST 000044e0: PUSH1 0x00 000044e2: PUSH2 0x44ea 000044e5: DUP3 000044e6: PUSH2 0x44d2 000044e9: JUMP 000044ea: JUMPDEST 000044eb: SWAP1 000044ec: POP 000044ed: SWAP2 000044ee: SWAP1 000044ef: POP 000044f0: JUMP 000044f1: JUMPDEST 000044f2: PUSH1 0x00 000044f4: PUSH2 0x44fc 000044f7: DUP3 000044f8: PUSH2 0x44df 000044fb: JUMP 000044fc: JUMPDEST 000044fd: SWAP1 000044fe: POP 000044ff: SWAP2 00004500: SWAP1 00004501: POP 00004502: JUMP 00004503: JUMPDEST 00004504: PUSH2 0x4514 00004507: PUSH2 0x450f 0000450a: DUP3 0000450b: PUSH2 0x39d1 0000450e: JUMP 0000450f: JUMPDEST 00004510: PUSH2 0x44f1 00004513: JUMP 00004514: JUMPDEST 00004515: DUP3 00004516: MSTORE 00004517: POP 00004518: POP 00004519: JUMP 0000451a: JUMPDEST 0000451b: PUSH1 0x00 0000451d: PUSH2 0x4526 00004520: DUP3 00004521: DUP5 00004522: PUSH2 0x4503 00004525: JUMP 00004526: JUMPDEST 00004527: PUSH1 0x14 00004529: DUP3 0000452a: ADD 0000452b: SWAP2 0000452c: POP 0000452d: DUP2 0000452e: SWAP1 0000452f: POP 00004530: SWAP3 00004531: SWAP2 00004532: POP 00004533: POP 00004534: JUMP 00004535: JUMPDEST 00004536: PUSH1 0x00 00004538: PUSH2 0x4541 0000453b: DUP4 0000453c: DUP6 0000453d: PUSH2 0x402c 00004540: JUMP 00004541: JUMPDEST 00004542: SWAP4 00004543: POP 00004544: PUSH2 0x454e 00004547: DUP4 00004548: DUP6 00004549: DUP5 0000454a: PUSH2 0x3ed2 0000454d: JUMP 0000454e: JUMPDEST 0000454f: PUSH2 0x4557 00004552: DUP4 00004553: PUSH2 0x3918 00004556: JUMP 00004557: JUMPDEST 00004558: DUP5 00004559: ADD 0000455a: SWAP1 0000455b: POP 0000455c: SWAP4 0000455d: SWAP3 0000455e: POP 0000455f: POP 00004560: POP 00004561: JUMP 00004562: JUMPDEST 00004563: PUSH1 0x00 00004565: PUSH1 0x80 00004567: DUP3 00004568: ADD 00004569: SWAP1 0000456a: POP 0000456b: PUSH2 0x4577 0000456e: PUSH1 0x00 00004570: DUP4 00004571: ADD 00004572: DUP9 00004573: PUSH2 0x3cd7 00004576: JUMP 00004577: JUMPDEST 00004578: DUP2 00004579: DUP2 0000457a: SUB 0000457b: PUSH1 0x20 0000457d: DUP4 0000457e: ADD 0000457f: MSTORE 00004580: PUSH2 0x4589 00004583: DUP2 00004584: DUP8 00004585: PUSH2 0x403d 00004588: JUMP 00004589: JUMPDEST 0000458a: SWAP1 0000458b: POP 0000458c: DUP2 0000458d: DUP2 0000458e: SUB 0000458f: PUSH1 0x40 00004591: DUP4 00004592: ADD 00004593: MSTORE 00004594: PUSH2 0x459e 00004597: DUP2 00004598: DUP6 00004599: DUP8 0000459a: PUSH2 0x4535 0000459d: JUMP 0000459e: JUMPDEST 0000459f: SWAP1 000045a0: POP 000045a1: PUSH2 0x45ad 000045a4: PUSH1 0x60 000045a6: DUP4 000045a7: ADD 000045a8: DUP5 000045a9: PUSH2 0x3a85 000045ac: JUMP 000045ad: JUMPDEST 000045ae: SWAP7 000045af: SWAP6 000045b0: POP 000045b1: POP 000045b2: POP 000045b3: POP 000045b4: POP 000045b5: POP 000045b6: JUMP 000045b7: JUMPDEST 000045b8: PUSH1 0x00 000045ba: PUSH1 0xa0 000045bc: DUP3 000045bd: ADD 000045be: SWAP1 000045bf: POP 000045c0: PUSH2 0x45cc 000045c3: PUSH1 0x00 000045c5: DUP4 000045c6: ADD 000045c7: DUP10 000045c8: PUSH2 0x3cd7 000045cb: JUMP 000045cc: JUMPDEST 000045cd: PUSH2 0x45d9 000045d0: PUSH1 0x20 000045d2: DUP4 000045d3: ADD 000045d4: DUP9 000045d5: PUSH2 0x40d8 000045d8: JUMP 000045d9: JUMPDEST 000045da: DUP2 000045db: DUP2 000045dc: SUB 000045dd: PUSH1 0x40 000045df: DUP4 000045e0: ADD 000045e1: MSTORE 000045e2: PUSH2 0x45eb 000045e5: DUP2 000045e6: DUP8 000045e7: PUSH2 0x403d 000045ea: JUMP 000045eb: JUMPDEST 000045ec: SWAP1 000045ed: POP 000045ee: PUSH2 0x45fa 000045f1: PUSH1 0x60 000045f3: DUP4 000045f4: ADD 000045f5: DUP7 000045f6: PUSH2 0x38a8 000045f9: JUMP 000045fa: JUMPDEST 000045fb: DUP2 000045fc: DUP2 000045fd: SUB 000045fe: PUSH1 0x80 00004600: DUP4 00004601: ADD 00004602: MSTORE 00004603: PUSH2 0x460d 00004606: DUP2 00004607: DUP5 00004608: DUP7 00004609: PUSH2 0x4535 0000460c: JUMP 0000460d: JUMPDEST 0000460e: SWAP1 0000460f: POP 00004610: SWAP8 00004611: SWAP7 00004612: POP 00004613: POP 00004614: POP 00004615: POP 00004616: POP 00004617: POP 00004618: POP 00004619: JUMP 0000461a: JUMPDEST 0000461b: PUSH1 0x00 0000461d: DUP2 0000461e: MLOAD 0000461f: SWAP1 00004620: POP 00004621: PUSH2 0x4629 00004624: DUP2 00004625: PUSH2 0x3a19 00004628: JUMP 00004629: JUMPDEST 0000462a: SWAP3 0000462b: SWAP2 0000462c: POP 0000462d: POP 0000462e: JUMP 0000462f: JUMPDEST 00004630: PUSH1 0x00 00004632: DUP1 00004633: PUSH1 0x40 00004635: DUP4 00004636: DUP6 00004637: SUB 00004638: SLT 00004639: ISZERO 0000463a: PUSH2 0x4646 0000463d: JUMPI 0000463e: PUSH2 0x4645 00004641: PUSH2 0x3687 00004644: JUMP 00004645: JUMPDEST 00004646: JUMPDEST 00004647: PUSH1 0x00 00004649: PUSH2 0x4654 0000464c: DUP6 0000464d: DUP3 0000464e: DUP7 0000464f: ADD 00004650: PUSH2 0x461a 00004653: JUMP 00004654: JUMPDEST 00004655: SWAP3 00004656: POP 00004657: POP 00004658: PUSH1 0x20 0000465a: PUSH2 0x4665 0000465d: DUP6 0000465e: DUP3 0000465f: DUP7 00004660: ADD 00004661: PUSH2 0x461a 00004664: JUMP 00004665: JUMPDEST 00004666: SWAP2 00004667: POP 00004668: POP 00004669: SWAP3 0000466a: POP 0000466b: SWAP3 0000466c: SWAP1 0000466d: POP 0000466e: JUMP 0000466f: JUMPDEST 00004670: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 00004691: PUSH1 0x00 00004693: DUP3 00004694: ADD 00004695: MSTORE 00004696: POP 00004697: JUMP 00004698: JUMPDEST 00004699: PUSH1 0x00 0000469b: PUSH2 0x46a5 0000469e: PUSH1 0x1f 000046a0: DUP4 000046a1: PUSH2 0x38dd 000046a4: JUMP 000046a5: JUMPDEST 000046a6: SWAP2 000046a7: POP 000046a8: PUSH2 0x46b0 000046ab: DUP3 000046ac: PUSH2 0x466f 000046af: JUMP 000046b0: JUMPDEST 000046b1: PUSH1 0x20 000046b3: DUP3 000046b4: ADD 000046b5: SWAP1 000046b6: POP 000046b7: SWAP2 000046b8: SWAP1 000046b9: POP 000046ba: JUMP 000046bb: JUMPDEST 000046bc: PUSH1 0x00 000046be: PUSH1 0x20 000046c0: DUP3 000046c1: ADD 000046c2: SWAP1 000046c3: POP 000046c4: DUP2 000046c5: DUP2 000046c6: SUB 000046c7: PUSH1 0x00 000046c9: DUP4 000046ca: ADD 000046cb: MSTORE 000046cc: PUSH2 0x46d4 000046cf: DUP2 000046d0: PUSH2 0x4698 000046d3: JUMP 000046d4: JUMPDEST 000046d5: SWAP1 000046d6: POP 000046d7: SWAP2 000046d8: SWAP1 000046d9: POP 000046da: JUMP 000046db: JUMPDEST 000046dc: PUSH32 0x4e61746976654f46543a20496e73756666696369656e742062616c616e63652e 000046fd: PUSH1 0x00 000046ff: DUP3 00004700: ADD 00004701: MSTORE 00004702: POP 00004703: JUMP 00004704: JUMPDEST 00004705: PUSH1 0x00 00004707: PUSH2 0x4711 0000470a: PUSH1 0x20 0000470c: DUP4 0000470d: PUSH2 0x38dd 00004710: JUMP 00004711: JUMPDEST 00004712: SWAP2 00004713: POP 00004714: PUSH2 0x471c 00004717: DUP3 00004718: PUSH2 0x46db 0000471b: JUMP 0000471c: JUMPDEST 0000471d: PUSH1 0x20 0000471f: DUP3 00004720: ADD 00004721: SWAP1 00004722: POP 00004723: SWAP2 00004724: SWAP1 00004725: POP 00004726: JUMP 00004727: JUMPDEST 00004728: PUSH1 0x00 0000472a: PUSH1 0x20 0000472c: DUP3 0000472d: ADD 0000472e: SWAP1 0000472f: POP 00004730: DUP2 00004731: DUP2 00004732: SUB 00004733: PUSH1 0x00 00004735: DUP4 00004736: ADD 00004737: MSTORE 00004738: PUSH2 0x4740 0000473b: DUP2 0000473c: PUSH2 0x4704 0000473f: JUMP 00004740: JUMPDEST 00004741: SWAP1 00004742: POP 00004743: SWAP2 00004744: SWAP1 00004745: POP 00004746: JUMP 00004747: JUMPDEST 00004748: POP 00004749: JUMP 0000474a: JUMPDEST 0000474b: PUSH1 0x00 0000474d: PUSH2 0x4757 00004750: PUSH1 0x00 00004752: DUP4 00004753: PUSH2 0x43f7 00004756: JUMP 00004757: JUMPDEST 00004758: SWAP2 00004759: POP 0000475a: PUSH2 0x4762 0000475d: DUP3 0000475e: PUSH2 0x4747 00004761: JUMP 00004762: JUMPDEST 00004763: PUSH1 0x00 00004765: DUP3 00004766: ADD 00004767: SWAP1 00004768: POP 00004769: SWAP2 0000476a: SWAP1 0000476b: POP 0000476c: JUMP 0000476d: JUMPDEST 0000476e: PUSH1 0x00 00004770: PUSH2 0x4778 00004773: DUP3 00004774: PUSH2 0x474a 00004777: JUMP 00004778: JUMPDEST 00004779: SWAP2 0000477a: POP 0000477b: DUP2 0000477c: SWAP1 0000477d: POP 0000477e: SWAP2 0000477f: SWAP1 00004780: POP 00004781: JUMP 00004782: JUMPDEST 00004783: PUSH32 0x4e61746976654f46543a206661696c656420746f20756e777261700000000000 000047a4: PUSH1 0x00 000047a6: DUP3 000047a7: ADD 000047a8: MSTORE 000047a9: POP 000047aa: JUMP 000047ab: JUMPDEST 000047ac: PUSH1 0x00 000047ae: PUSH2 0x47b8 000047b1: PUSH1 0x1b 000047b3: DUP4 000047b4: PUSH2 0x38dd 000047b7: JUMP 000047b8: JUMPDEST 000047b9: SWAP2 000047ba: POP 000047bb: PUSH2 0x47c3 000047be: DUP3 000047bf: PUSH2 0x4782 000047c2: JUMP 000047c3: JUMPDEST 000047c4: PUSH1 0x20 000047c6: DUP3 000047c7: ADD 000047c8: SWAP1 000047c9: POP 000047ca: SWAP2 000047cb: SWAP1 000047cc: POP 000047cd: JUMP 000047ce: JUMPDEST 000047cf: PUSH1 0x00 000047d1: PUSH1 0x20 000047d3: DUP3 000047d4: ADD 000047d5: SWAP1 000047d6: POP 000047d7: DUP2 000047d8: DUP2 000047d9: SUB 000047da: PUSH1 0x00 000047dc: DUP4 000047dd: ADD 000047de: MSTORE 000047df: PUSH2 0x47e7 000047e2: DUP2 000047e3: PUSH2 0x47ab 000047e6: JUMP 000047e7: JUMPDEST 000047e8: SWAP1 000047e9: POP 000047ea: SWAP2 000047eb: SWAP1 000047ec: POP 000047ed: JUMP 000047ee: JUMPDEST 000047ef: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00004810: PUSH1 0x00 00004812: MSTORE 00004813: PUSH1 0x11 00004815: PUSH1 0x04 00004817: MSTORE 00004818: PUSH1 0x24 0000481a: PUSH1 0x00 0000481c: REVERT 0000481d: JUMPDEST 0000481e: PUSH1 0x00 00004820: PUSH2 0x4828 00004823: DUP3 00004824: PUSH2 0x3a0f 00004827: JUMP 00004828: JUMPDEST 00004829: SWAP2 0000482a: POP 0000482b: PUSH2 0x4833 0000482e: DUP4 0000482f: PUSH2 0x3a0f 00004832: JUMP 00004833: JUMPDEST 00004834: SWAP3 00004835: POP 00004836: DUP3 00004837: DUP3 00004838: ADD 00004839: SWAP1 0000483a: POP 0000483b: DUP1 0000483c: DUP3 0000483d: GT 0000483e: ISZERO 0000483f: PUSH2 0x484b 00004842: JUMPI 00004843: PUSH2 0x484a 00004846: PUSH2 0x47ee 00004849: JUMP 0000484a: JUMPDEST 0000484b: JUMPDEST 0000484c: SWAP3 0000484d: SWAP2 0000484e: POP 0000484f: POP 00004850: JUMP 00004851: JUMPDEST 00004852: PUSH1 0x00 00004854: PUSH1 0x40 00004856: DUP3 00004857: ADD 00004858: SWAP1 00004859: POP 0000485a: PUSH2 0x4866 0000485d: PUSH1 0x00 0000485f: DUP4 00004860: ADD 00004861: DUP7 00004862: PUSH2 0x3cd7 00004865: JUMP 00004866: JUMPDEST 00004867: DUP2 00004868: DUP2 00004869: SUB 0000486a: PUSH1 0x20 0000486c: DUP4 0000486d: ADD 0000486e: MSTORE 0000486f: PUSH2 0x4879 00004872: DUP2 00004873: DUP5 00004874: DUP7 00004875: PUSH2 0x4535 00004878: JUMP 00004879: JUMPDEST 0000487a: SWAP1 0000487b: POP 0000487c: SWAP5 0000487d: SWAP4 0000487e: POP 0000487f: POP 00004880: POP 00004881: POP 00004882: JUMP 00004883: JUMPDEST 00004884: PUSH32 0x4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d757374206265 000048a5: PUSH1 0x00 000048a7: DUP3 000048a8: ADD 000048a9: MSTORE 000048aa: PUSH32 0x204c7a4170700000000000000000000000000000000000000000000000000000 000048cb: PUSH1 0x20 000048cd: DUP3 000048ce: ADD 000048cf: MSTORE 000048d0: POP 000048d1: JUMP 000048d2: JUMPDEST 000048d3: PUSH1 0x00 000048d5: PUSH2 0x48df 000048d8: PUSH1 0x26 000048da: DUP4 000048db: PUSH2 0x38dd 000048de: JUMP 000048df: JUMPDEST 000048e0: SWAP2 000048e1: POP 000048e2: PUSH2 0x48ea 000048e5: DUP3 000048e6: PUSH2 0x4883 000048e9: JUMP 000048ea: JUMPDEST 000048eb: PUSH1 0x40 000048ed: DUP3 000048ee: ADD 000048ef: SWAP1 000048f0: POP 000048f1: SWAP2 000048f2: SWAP1 000048f3: POP 000048f4: JUMP 000048f5: JUMPDEST 000048f6: PUSH1 0x00 000048f8: PUSH1 0x20 000048fa: DUP3 000048fb: ADD 000048fc: SWAP1 000048fd: POP 000048fe: DUP2 000048ff: DUP2 00004900: SUB 00004901: PUSH1 0x00 00004903: DUP4 00004904: ADD 00004905: MSTORE 00004906: PUSH2 0x490e 00004909: DUP2 0000490a: PUSH2 0x48d2 0000490d: JUMP 0000490e: JUMPDEST 0000490f: SWAP1 00004910: POP 00004911: SWAP2 00004912: SWAP1 00004913: POP 00004914: JUMP 00004915: JUMPDEST 00004916: PUSH32 0x4c7a4170703a206e6f20747275737465642070617468207265636f7264000000 00004937: PUSH1 0x00 00004939: DUP3 0000493a: ADD 0000493b: MSTORE 0000493c: POP 0000493d: JUMP 0000493e: JUMPDEST 0000493f: PUSH1 0x00 00004941: PUSH2 0x494b 00004944: PUSH1 0x1d 00004946: DUP4 00004947: PUSH2 0x38dd 0000494a: JUMP 0000494b: JUMPDEST 0000494c: SWAP2 0000494d: POP 0000494e: PUSH2 0x4956 00004951: DUP3 00004952: PUSH2 0x4915 00004955: JUMP 00004956: JUMPDEST 00004957: PUSH1 0x20 00004959: DUP3 0000495a: ADD 0000495b: SWAP1 0000495c: POP 0000495d: SWAP2 0000495e: SWAP1 0000495f: POP 00004960: JUMP 00004961: JUMPDEST 00004962: PUSH1 0x00 00004964: PUSH1 0x20 00004966: DUP3 00004967: ADD 00004968: SWAP1 00004969: POP 0000496a: DUP2 0000496b: DUP2 0000496c: SUB 0000496d: PUSH1 0x00 0000496f: DUP4 00004970: ADD 00004971: MSTORE 00004972: PUSH2 0x497a 00004975: DUP2 00004976: PUSH2 0x493e 00004979: JUMP 0000497a: JUMPDEST 0000497b: SWAP1 0000497c: POP 0000497d: SWAP2 0000497e: SWAP1 0000497f: POP 00004980: JUMP 00004981: JUMPDEST 00004982: PUSH1 0x00 00004984: PUSH2 0x498c 00004987: DUP3 00004988: PUSH2 0x3a0f 0000498b: JUMP 0000498c: JUMPDEST 0000498d: SWAP2 0000498e: POP 0000498f: PUSH2 0x4997 00004992: DUP4 00004993: PUSH2 0x3a0f 00004996: JUMP 00004997: JUMPDEST 00004998: SWAP3 00004999: POP 0000499a: DUP3 0000499b: DUP3 0000499c: SUB 0000499d: SWAP1 0000499e: POP 0000499f: DUP2 000049a0: DUP2 000049a1: GT 000049a2: ISZERO 000049a3: PUSH2 0x49af 000049a6: JUMPI 000049a7: PUSH2 0x49ae 000049aa: PUSH2 0x47ee 000049ad: JUMP 000049ae: JUMPDEST 000049af: JUMPDEST 000049b0: SWAP3 000049b1: SWAP2 000049b2: POP 000049b3: POP 000049b4: JUMP 000049b5: JUMPDEST 000049b6: PUSH32 0x45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77 000049d7: PUSH1 0x00 000049d9: DUP3 000049da: ADD 000049db: MSTORE 000049dc: PUSH32 0x207a65726f000000000000000000000000000000000000000000000000000000 000049fd: PUSH1 0x20 000049ff: DUP3 00004a00: ADD 00004a01: MSTORE 00004a02: POP 00004a03: JUMP 00004a04: JUMPDEST 00004a05: PUSH1 0x00 00004a07: PUSH2 0x4a11 00004a0a: PUSH1 0x25 00004a0c: DUP4 00004a0d: PUSH2 0x38dd 00004a10: JUMP 00004a11: JUMPDEST 00004a12: SWAP2 00004a13: POP 00004a14: PUSH2 0x4a1c 00004a17: DUP3 00004a18: PUSH2 0x49b5 00004a1b: JUMP 00004a1c: JUMPDEST 00004a1d: PUSH1 0x40 00004a1f: DUP3 00004a20: ADD 00004a21: SWAP1 00004a22: POP 00004a23: SWAP2 00004a24: SWAP1 00004a25: POP 00004a26: JUMP 00004a27: JUMPDEST 00004a28: PUSH1 0x00 00004a2a: PUSH1 0x20 00004a2c: DUP3 00004a2d: ADD 00004a2e: SWAP1 00004a2f: POP 00004a30: DUP2 00004a31: DUP2 00004a32: SUB 00004a33: PUSH1 0x00 00004a35: DUP4 00004a36: ADD 00004a37: MSTORE 00004a38: PUSH2 0x4a40 00004a3b: DUP2 00004a3c: PUSH2 0x4a04 00004a3f: JUMP 00004a40: JUMPDEST 00004a41: SWAP1 00004a42: POP 00004a43: SWAP2 00004a44: SWAP1 00004a45: POP 00004a46: JUMP 00004a47: JUMPDEST 00004a48: PUSH1 0x00 00004a4a: PUSH2 0x4a54 00004a4d: DUP3 00004a4e: DUP6 00004a4f: DUP8 00004a50: PUSH2 0x4402 00004a53: JUMP 00004a54: JUMPDEST 00004a55: SWAP2 00004a56: POP 00004a57: PUSH2 0x4a60 00004a5a: DUP3 00004a5b: DUP5 00004a5c: PUSH2 0x4503 00004a5f: JUMP 00004a60: JUMPDEST 00004a61: PUSH1 0x14 00004a63: DUP3 00004a64: ADD 00004a65: SWAP2 00004a66: POP 00004a67: DUP2 00004a68: SWAP1 00004a69: POP 00004a6a: SWAP5 00004a6b: SWAP4 00004a6c: POP 00004a6d: POP 00004a6e: POP 00004a6f: POP 00004a70: JUMP 00004a71: JUMPDEST 00004a72: PUSH1 0x00 00004a74: DUP2 00004a75: SWAP1 00004a76: POP 00004a77: DUP2 00004a78: PUSH1 0x00 00004a7a: MSTORE 00004a7b: PUSH1 0x20 00004a7d: PUSH1 0x00 00004a7f: KECCAK256 00004a80: SWAP1 00004a81: POP 00004a82: SWAP2 00004a83: SWAP1 00004a84: POP 00004a85: JUMP 00004a86: JUMPDEST 00004a87: PUSH1 0x00 00004a89: PUSH1 0x20 00004a8b: PUSH1 0x1f 00004a8d: DUP4 00004a8e: ADD 00004a8f: DIV 00004a90: SWAP1 00004a91: POP 00004a92: SWAP2 00004a93: SWAP1 00004a94: POP 00004a95: JUMP 00004a96: JUMPDEST 00004a97: PUSH1 0x00 00004a99: DUP3 00004a9a: DUP3 00004a9b: SHL 00004a9c: SWAP1 00004a9d: POP 00004a9e: SWAP3 00004a9f: SWAP2 00004aa0: POP 00004aa1: POP 00004aa2: JUMP 00004aa3: JUMPDEST 00004aa4: PUSH1 0x00 00004aa6: PUSH1 0x08 00004aa8: DUP4 00004aa9: MUL 00004aaa: PUSH2 0x4ad3 00004aad: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00004ace: DUP3 00004acf: PUSH2 0x4a96 00004ad2: JUMP 00004ad3: JUMPDEST 00004ad4: PUSH2 0x4add 00004ad7: DUP7 00004ad8: DUP4 00004ad9: PUSH2 0x4a96 00004adc: JUMP 00004add: JUMPDEST 00004ade: SWAP6 00004adf: POP 00004ae0: DUP1 00004ae1: NOT 00004ae2: DUP5 00004ae3: AND 00004ae4: SWAP4 00004ae5: POP 00004ae6: DUP1 00004ae7: DUP7 00004ae8: AND 00004ae9: DUP5 00004aea: OR 00004aeb: SWAP3 00004aec: POP 00004aed: POP 00004aee: POP 00004aef: SWAP4 00004af0: SWAP3 00004af1: POP 00004af2: POP 00004af3: POP 00004af4: JUMP 00004af5: JUMPDEST 00004af6: PUSH1 0x00 00004af8: PUSH2 0x4b10 00004afb: PUSH2 0x4b0b 00004afe: PUSH2 0x4b06 00004b01: DUP5 00004b02: PUSH2 0x3a0f 00004b05: JUMP 00004b06: JUMPDEST 00004b07: PUSH2 0x4102 00004b0a: JUMP 00004b0b: JUMPDEST 00004b0c: PUSH2 0x3a0f 00004b0f: JUMP 00004b10: JUMPDEST 00004b11: SWAP1 00004b12: POP 00004b13: SWAP2 00004b14: SWAP1 00004b15: POP 00004b16: JUMP 00004b17: JUMPDEST 00004b18: PUSH1 0x00 00004b1a: DUP2 00004b1b: SWAP1 00004b1c: POP 00004b1d: SWAP2 00004b1e: SWAP1 00004b1f: POP 00004b20: JUMP 00004b21: JUMPDEST 00004b22: PUSH2 0x4b2a 00004b25: DUP4 00004b26: PUSH2 0x4af5 00004b29: JUMP 00004b2a: JUMPDEST 00004b2b: PUSH2 0x4b3e 00004b2e: PUSH2 0x4b36 00004b31: DUP3 00004b32: PUSH2 0x4b17 00004b35: JUMP 00004b36: JUMPDEST 00004b37: DUP5 00004b38: DUP5 00004b39: SLOAD 00004b3a: PUSH2 0x4aa3 00004b3d: JUMP 00004b3e: JUMPDEST 00004b3f: DUP3 00004b40: SSTORE 00004b41: POP 00004b42: POP 00004b43: POP 00004b44: POP 00004b45: JUMP 00004b46: JUMPDEST 00004b47: PUSH1 0x00 00004b49: SWAP1 00004b4a: JUMP 00004b4b: JUMPDEST 00004b4c: PUSH2 0x4b53 00004b4f: PUSH2 0x4b46 00004b52: JUMP 00004b53: JUMPDEST 00004b54: PUSH2 0x4b5e 00004b57: DUP2 00004b58: DUP5 00004b59: DUP5 00004b5a: PUSH2 0x4b21 00004b5d: JUMP 00004b5e: JUMPDEST 00004b5f: POP 00004b60: POP 00004b61: POP 00004b62: JUMP 00004b63: JUMPDEST 00004b64: JUMPDEST 00004b65: DUP2 00004b66: DUP2 00004b67: LT 00004b68: ISZERO 00004b69: PUSH2 0x4b82 00004b6c: JUMPI 00004b6d: PUSH2 0x4b77 00004b70: PUSH1 0x00 00004b72: DUP3 00004b73: PUSH2 0x4b4b 00004b76: JUMP 00004b77: JUMPDEST 00004b78: PUSH1 0x01 00004b7a: DUP2 00004b7b: ADD 00004b7c: SWAP1 00004b7d: POP 00004b7e: PUSH2 0x4b64 00004b81: JUMP 00004b82: JUMPDEST 00004b83: POP 00004b84: POP 00004b85: JUMP 00004b86: JUMPDEST 00004b87: PUSH1 0x1f 00004b89: DUP3 00004b8a: GT 00004b8b: ISZERO 00004b8c: PUSH2 0x4bc7 00004b8f: JUMPI 00004b90: PUSH2 0x4b98 00004b93: DUP2 00004b94: PUSH2 0x4a71 00004b97: JUMP 00004b98: JUMPDEST 00004b99: PUSH2 0x4ba1 00004b9c: DUP5 00004b9d: PUSH2 0x4a86 00004ba0: JUMP 00004ba1: JUMPDEST 00004ba2: DUP2 00004ba3: ADD 00004ba4: PUSH1 0x20 00004ba6: DUP6 00004ba7: LT 00004ba8: ISZERO 00004ba9: PUSH2 0x4bb0 00004bac: JUMPI 00004bad: DUP2 00004bae: SWAP1 00004baf: POP 00004bb0: JUMPDEST 00004bb1: PUSH2 0x4bc4 00004bb4: PUSH2 0x4bbc 00004bb7: DUP6 00004bb8: PUSH2 0x4a86 00004bbb: JUMP 00004bbc: JUMPDEST 00004bbd: DUP4 00004bbe: ADD 00004bbf: DUP3 00004bc0: PUSH2 0x4b63 00004bc3: JUMP 00004bc4: JUMPDEST 00004bc5: POP 00004bc6: POP 00004bc7: JUMPDEST 00004bc8: POP 00004bc9: POP 00004bca: POP 00004bcb: JUMP 00004bcc: JUMPDEST 00004bcd: PUSH1 0x00 00004bcf: DUP3 00004bd0: DUP3 00004bd1: SHR 00004bd2: SWAP1 00004bd3: POP 00004bd4: SWAP3 00004bd5: SWAP2 00004bd6: POP 00004bd7: POP 00004bd8: JUMP 00004bd9: JUMPDEST 00004bda: PUSH1 0x00 00004bdc: PUSH2 0x4bea 00004bdf: PUSH1 0x00 00004be1: NOT 00004be2: DUP5 00004be3: PUSH1 0x08 00004be5: MUL 00004be6: PUSH2 0x4bcc 00004be9: JUMP 00004bea: JUMPDEST 00004beb: NOT 00004bec: DUP1 00004bed: DUP4 00004bee: AND 00004bef: SWAP2 00004bf0: POP 00004bf1: POP 00004bf2: SWAP3 00004bf3: SWAP2 00004bf4: POP 00004bf5: POP 00004bf6: JUMP 00004bf7: JUMPDEST 00004bf8: PUSH1 0x00 00004bfa: PUSH2 0x4c03 00004bfd: DUP4 00004bfe: DUP4 00004bff: PUSH2 0x4bd9 00004c02: JUMP 00004c03: JUMPDEST 00004c04: SWAP2 00004c05: POP 00004c06: DUP3 00004c07: PUSH1 0x02 00004c09: MUL 00004c0a: DUP3 00004c0b: OR 00004c0c: SWAP1 00004c0d: POP 00004c0e: SWAP3 00004c0f: SWAP2 00004c10: POP 00004c11: POP 00004c12: JUMP 00004c13: JUMPDEST 00004c14: PUSH2 0x4c1c 00004c17: DUP3 00004c18: PUSH2 0x4021 00004c1b: JUMP 00004c1c: JUMPDEST 00004c1d: PUSH8 0xffffffffffffffff 00004c26: DUP2 00004c27: GT 00004c28: ISZERO 00004c29: PUSH2 0x4c35 00004c2c: JUMPI 00004c2d: PUSH2 0x4c34 00004c30: PUSH2 0x3e26 00004c33: JUMP 00004c34: JUMPDEST 00004c35: JUMPDEST 00004c36: PUSH2 0x4c3f 00004c39: DUP3 00004c3a: SLOAD 00004c3b: PUSH2 0x43c6 00004c3e: JUMP 00004c3f: JUMPDEST 00004c40: PUSH2 0x4c4a 00004c43: DUP3 00004c44: DUP3 00004c45: DUP6 00004c46: PUSH2 0x4b86 00004c49: JUMP 00004c4a: JUMPDEST 00004c4b: PUSH1 0x00 00004c4d: PUSH1 0x20 00004c4f: SWAP1 00004c50: POP 00004c51: PUSH1 0x1f 00004c53: DUP4 00004c54: GT 00004c55: PUSH1 0x01 00004c57: DUP2 00004c58: EQ 00004c59: PUSH2 0x4c7d 00004c5c: JUMPI 00004c5d: PUSH1 0x00 00004c5f: DUP5 00004c60: ISZERO 00004c61: PUSH2 0x4c6b 00004c64: JUMPI 00004c65: DUP3 00004c66: DUP8 00004c67: ADD 00004c68: MLOAD 00004c69: SWAP1 00004c6a: POP 00004c6b: JUMPDEST 00004c6c: PUSH2 0x4c75 00004c6f: DUP6 00004c70: DUP3 00004c71: PUSH2 0x4bf7 00004c74: JUMP 00004c75: JUMPDEST 00004c76: DUP7 00004c77: SSTORE 00004c78: POP 00004c79: PUSH2 0x4cdd 00004c7c: JUMP 00004c7d: JUMPDEST 00004c7e: PUSH1 0x1f 00004c80: NOT 00004c81: DUP5 00004c82: AND 00004c83: PUSH2 0x4c8b 00004c86: DUP7 00004c87: PUSH2 0x4a71 00004c8a: JUMP 00004c8b: JUMPDEST 00004c8c: PUSH1 0x00 00004c8e: JUMPDEST 00004c8f: DUP3 00004c90: DUP2 00004c91: LT 00004c92: ISZERO 00004c93: PUSH2 0x4cb3 00004c96: JUMPI 00004c97: DUP5 00004c98: DUP10 00004c99: ADD 00004c9a: MLOAD 00004c9b: DUP3 00004c9c: SSTORE 00004c9d: PUSH1 0x01 00004c9f: DUP3 00004ca0: ADD 00004ca1: SWAP2 00004ca2: POP 00004ca3: PUSH1 0x20 00004ca5: DUP6 00004ca6: ADD 00004ca7: SWAP5 00004ca8: POP 00004ca9: PUSH1 0x20 00004cab: DUP2 00004cac: ADD 00004cad: SWAP1 00004cae: POP 00004caf: PUSH2 0x4c8e 00004cb2: JUMP 00004cb3: JUMPDEST 00004cb4: DUP7 00004cb5: DUP4 00004cb6: LT 00004cb7: ISZERO 00004cb8: PUSH2 0x4cd0 00004cbb: JUMPI 00004cbc: DUP5 00004cbd: DUP10 00004cbe: ADD 00004cbf: MLOAD 00004cc0: PUSH2 0x4ccc 00004cc3: PUSH1 0x1f 00004cc5: DUP10 00004cc6: AND 00004cc7: DUP3 00004cc8: PUSH2 0x4bd9 00004ccb: JUMP 00004ccc: JUMPDEST 00004ccd: DUP4 00004cce: SSTORE 00004ccf: POP 00004cd0: JUMPDEST 00004cd1: PUSH1 0x01 00004cd3: PUSH1 0x02 00004cd5: DUP9 00004cd6: MUL 00004cd7: ADD 00004cd8: DUP9 00004cd9: SSTORE 00004cda: POP 00004cdb: POP 00004cdc: POP 00004cdd: JUMPDEST 00004cde: POP 00004cdf: POP 00004ce0: POP 00004ce1: POP 00004ce2: POP 00004ce3: POP 00004ce4: JUMP 00004ce5: JUMPDEST 00004ce6: PUSH1 0x00 00004ce8: PUSH1 0x80 00004cea: DUP3 00004ceb: ADD 00004cec: SWAP1 00004ced: POP 00004cee: PUSH2 0x4cfa 00004cf1: PUSH1 0x00 00004cf3: DUP4 00004cf4: ADD 00004cf5: DUP9 00004cf6: PUSH2 0x3cd7 00004cf9: JUMP 00004cfa: JUMPDEST 00004cfb: PUSH2 0x4d07 00004cfe: PUSH1 0x20 00004d00: DUP4 00004d01: ADD 00004d02: DUP8 00004d03: PUSH2 0x3cd7 00004d06: JUMP 00004d07: JUMPDEST 00004d08: PUSH2 0x4d14 00004d0b: PUSH1 0x40 00004d0d: DUP4 00004d0e: ADD 00004d0f: DUP7 00004d10: PUSH2 0x3a85 00004d13: JUMP 00004d14: JUMPDEST 00004d15: DUP2 00004d16: DUP2 00004d17: SUB 00004d18: PUSH1 0x60 00004d1a: DUP4 00004d1b: ADD 00004d1c: MSTORE 00004d1d: PUSH2 0x4d27 00004d20: DUP2 00004d21: DUP5 00004d22: DUP7 00004d23: PUSH2 0x4535 00004d26: JUMP 00004d27: JUMPDEST 00004d28: SWAP1 00004d29: POP 00004d2a: SWAP7 00004d2b: SWAP6 00004d2c: POP 00004d2d: POP 00004d2e: POP 00004d2f: POP 00004d30: POP 00004d31: POP 00004d32: JUMP 00004d33: JUMPDEST 00004d34: PUSH32 0x4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d657373 00004d55: PUSH1 0x00 00004d57: DUP3 00004d58: ADD 00004d59: MSTORE 00004d5a: PUSH32 0x6167650000000000000000000000000000000000000000000000000000000000 00004d7b: PUSH1 0x20 00004d7d: DUP3 00004d7e: ADD 00004d7f: MSTORE 00004d80: POP 00004d81: JUMP 00004d82: JUMPDEST 00004d83: PUSH1 0x00 00004d85: PUSH2 0x4d8f 00004d88: PUSH1 0x23 00004d8a: DUP4 00004d8b: PUSH2 0x38dd 00004d8e: JUMP 00004d8f: JUMPDEST 00004d90: SWAP2 00004d91: POP 00004d92: PUSH2 0x4d9a 00004d95: DUP3 00004d96: PUSH2 0x4d33 00004d99: JUMP 00004d9a: JUMPDEST 00004d9b: PUSH1 0x40 00004d9d: DUP3 00004d9e: ADD 00004d9f: SWAP1 00004da0: POP 00004da1: SWAP2 00004da2: SWAP1 00004da3: POP 00004da4: JUMP 00004da5: JUMPDEST 00004da6: PUSH1 0x00 00004da8: PUSH1 0x20 00004daa: DUP3 00004dab: ADD 00004dac: SWAP1 00004dad: POP 00004dae: DUP2 00004daf: DUP2 00004db0: SUB 00004db1: PUSH1 0x00 00004db3: DUP4 00004db4: ADD 00004db5: MSTORE 00004db6: PUSH2 0x4dbe 00004db9: DUP2 00004dba: PUSH2 0x4d82 00004dbd: JUMP 00004dbe: JUMPDEST 00004dbf: SWAP1 00004dc0: POP 00004dc1: SWAP2 00004dc2: SWAP1 00004dc3: POP 00004dc4: JUMP 00004dc5: JUMPDEST 00004dc6: PUSH32 0x4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f61 00004de7: PUSH1 0x00 00004de9: DUP3 00004dea: ADD 00004deb: MSTORE 00004dec: PUSH32 0x6400000000000000000000000000000000000000000000000000000000000000 00004e0d: PUSH1 0x20 00004e0f: DUP3 00004e10: ADD 00004e11: MSTORE 00004e12: POP 00004e13: JUMP 00004e14: JUMPDEST 00004e15: PUSH1 0x00 00004e17: PUSH2 0x4e21 00004e1a: PUSH1 0x21 00004e1c: DUP4 00004e1d: PUSH2 0x38dd 00004e20: JUMP 00004e21: JUMPDEST 00004e22: SWAP2 00004e23: POP 00004e24: PUSH2 0x4e2c 00004e27: DUP3 00004e28: PUSH2 0x4dc5 00004e2b: JUMP 00004e2c: JUMPDEST 00004e2d: PUSH1 0x40 00004e2f: DUP3 00004e30: ADD 00004e31: SWAP1 00004e32: POP 00004e33: SWAP2 00004e34: SWAP1 00004e35: POP 00004e36: JUMP 00004e37: JUMPDEST 00004e38: PUSH1 0x00 00004e3a: PUSH1 0x20 00004e3c: DUP3 00004e3d: ADD 00004e3e: SWAP1 00004e3f: POP 00004e40: DUP2 00004e41: DUP2 00004e42: SUB 00004e43: PUSH1 0x00 00004e45: DUP4 00004e46: ADD 00004e47: MSTORE 00004e48: PUSH2 0x4e50 00004e4b: DUP2 00004e4c: PUSH2 0x4e14 00004e4f: JUMP 00004e50: JUMPDEST 00004e51: SWAP1 00004e52: POP 00004e53: SWAP2 00004e54: SWAP1 00004e55: POP 00004e56: JUMP 00004e57: JUMPDEST 00004e58: PUSH2 0x4e60 00004e5b: DUP2 00004e5c: PUSH2 0x3730 00004e5f: JUMP 00004e60: JUMPDEST 00004e61: DUP3 00004e62: MSTORE 00004e63: POP 00004e64: POP 00004e65: JUMP 00004e66: JUMPDEST 00004e67: PUSH1 0x00 00004e69: PUSH1 0x80 00004e6b: DUP3 00004e6c: ADD 00004e6d: SWAP1 00004e6e: POP 00004e6f: PUSH2 0x4e7b 00004e72: PUSH1 0x00 00004e74: DUP4 00004e75: ADD 00004e76: DUP9 00004e77: PUSH2 0x3cd7 00004e7a: JUMP 00004e7b: JUMPDEST 00004e7c: DUP2 00004e7d: DUP2 00004e7e: SUB 00004e7f: PUSH1 0x20 00004e81: DUP4 00004e82: ADD 00004e83: MSTORE 00004e84: PUSH2 0x4e8e 00004e87: DUP2 00004e88: DUP7 00004e89: DUP9 00004e8a: PUSH2 0x4535 00004e8d: JUMP 00004e8e: JUMPDEST 00004e8f: SWAP1 00004e90: POP 00004e91: PUSH2 0x4e9d 00004e94: PUSH1 0x40 00004e96: DUP4 00004e97: ADD 00004e98: DUP6 00004e99: PUSH2 0x4e57 00004e9c: JUMP 00004e9d: JUMPDEST 00004e9e: PUSH2 0x4eaa 00004ea1: PUSH1 0x60 00004ea3: DUP4 00004ea4: ADD 00004ea5: DUP5 00004ea6: PUSH2 0x3fca 00004ea9: JUMP 00004eaa: JUMPDEST 00004eab: SWAP7 00004eac: SWAP6 00004ead: POP 00004eae: POP 00004eaf: POP 00004eb0: POP 00004eb1: POP 00004eb2: POP 00004eb3: JUMP 00004eb4: JUMPDEST 00004eb5: PUSH32 0x4c7a4170703a20696e76616c6964206d696e4761730000000000000000000000 00004ed6: PUSH1 0x00 00004ed8: DUP3 00004ed9: ADD 00004eda: MSTORE 00004edb: POP 00004edc: JUMP 00004edd: JUMPDEST 00004ede: PUSH1 0x00 00004ee0: PUSH2 0x4eea 00004ee3: PUSH1 0x15 00004ee5: DUP4 00004ee6: PUSH2 0x38dd 00004ee9: JUMP 00004eea: JUMPDEST 00004eeb: SWAP2 00004eec: POP 00004eed: PUSH2 0x4ef5 00004ef0: DUP3 00004ef1: PUSH2 0x4eb4 00004ef4: JUMP 00004ef5: JUMPDEST 00004ef6: PUSH1 0x20 00004ef8: DUP3 00004ef9: ADD 00004efa: SWAP1 00004efb: POP 00004efc: SWAP2 00004efd: SWAP1 00004efe: POP 00004eff: JUMP 00004f00: JUMPDEST 00004f01: PUSH1 0x00 00004f03: PUSH1 0x20 00004f05: DUP3 00004f06: ADD 00004f07: SWAP1 00004f08: POP 00004f09: DUP2 00004f0a: DUP2 00004f0b: SUB 00004f0c: PUSH1 0x00 00004f0e: DUP4 00004f0f: ADD 00004f10: MSTORE 00004f11: PUSH2 0x4f19 00004f14: DUP2 00004f15: PUSH2 0x4edd 00004f18: JUMP 00004f19: JUMPDEST 00004f1a: SWAP1 00004f1b: POP 00004f1c: SWAP2 00004f1d: SWAP1 00004f1e: POP 00004f1f: JUMP 00004f20: JUMPDEST 00004f21: PUSH1 0x00 00004f23: PUSH1 0x60 00004f25: DUP3 00004f26: ADD 00004f27: SWAP1 00004f28: POP 00004f29: PUSH2 0x4f35 00004f2c: PUSH1 0x00 00004f2e: DUP4 00004f2f: ADD 00004f30: DUP7 00004f31: PUSH2 0x3cd7 00004f34: JUMP 00004f35: JUMPDEST 00004f36: PUSH2 0x4f42 00004f39: PUSH1 0x20 00004f3b: DUP4 00004f3c: ADD 00004f3d: DUP6 00004f3e: PUSH2 0x3cd7 00004f41: JUMP 00004f42: JUMPDEST 00004f43: PUSH2 0x4f4f 00004f46: PUSH1 0x40 00004f48: DUP4 00004f49: ADD 00004f4a: DUP5 00004f4b: PUSH2 0x3a85 00004f4e: JUMP 00004f4f: JUMPDEST 00004f50: SWAP5 00004f51: SWAP4 00004f52: POP 00004f53: POP 00004f54: POP 00004f55: POP 00004f56: JUMP 00004f57: JUMPDEST 00004f58: PUSH1 0x00 00004f5a: DUP3 00004f5b: SWAP1 00004f5c: POP 00004f5d: SWAP3 00004f5e: SWAP2 00004f5f: POP 00004f60: POP 00004f61: JUMP 00004f62: JUMPDEST 00004f63: PUSH2 0x4f6c 00004f66: DUP4 00004f67: DUP4 00004f68: PUSH2 0x4f57 00004f6b: JUMP 00004f6c: JUMPDEST 00004f6d: PUSH8 0xffffffffffffffff 00004f76: DUP2 00004f77: GT 00004f78: ISZERO 00004f79: PUSH2 0x4f85 00004f7c: JUMPI 00004f7d: PUSH2 0x4f84 00004f80: PUSH2 0x3e26 00004f83: JUMP 00004f84: JUMPDEST 00004f85: JUMPDEST 00004f86: PUSH2 0x4f8f 00004f89: DUP3 00004f8a: SLOAD 00004f8b: PUSH2 0x43c6 00004f8e: JUMP 00004f8f: JUMPDEST 00004f90: PUSH2 0x4f9a 00004f93: DUP3 00004f94: DUP3 00004f95: DUP6 00004f96: PUSH2 0x4b86 00004f99: JUMP 00004f9a: JUMPDEST 00004f9b: PUSH1 0x00 00004f9d: PUSH1 0x1f 00004f9f: DUP4 00004fa0: GT 00004fa1: PUSH1 0x01 00004fa3: DUP2 00004fa4: EQ 00004fa5: PUSH2 0x4fc9 00004fa8: JUMPI 00004fa9: PUSH1 0x00 00004fab: DUP5 00004fac: ISZERO 00004fad: PUSH2 0x4fb7 00004fb0: JUMPI 00004fb1: DUP3 00004fb2: DUP8 00004fb3: ADD 00004fb4: CALLDATALOAD 00004fb5: SWAP1 00004fb6: POP 00004fb7: JUMPDEST 00004fb8: PUSH2 0x4fc1 00004fbb: DUP6 00004fbc: DUP3 00004fbd: PUSH2 0x4bf7 00004fc0: JUMP 00004fc1: JUMPDEST 00004fc2: DUP7 00004fc3: SSTORE 00004fc4: POP 00004fc5: PUSH2 0x5029 00004fc8: JUMP 00004fc9: JUMPDEST 00004fca: PUSH1 0x1f 00004fcc: NOT 00004fcd: DUP5 00004fce: AND 00004fcf: PUSH2 0x4fd7 00004fd2: DUP7 00004fd3: PUSH2 0x4a71 00004fd6: JUMP 00004fd7: JUMPDEST 00004fd8: PUSH1 0x00 00004fda: JUMPDEST 00004fdb: DUP3 00004fdc: DUP2 00004fdd: LT 00004fde: ISZERO 00004fdf: PUSH2 0x4fff 00004fe2: JUMPI 00004fe3: DUP5 00004fe4: DUP10 00004fe5: ADD 00004fe6: CALLDATALOAD 00004fe7: DUP3 00004fe8: SSTORE 00004fe9: PUSH1 0x01 00004feb: DUP3 00004fec: ADD 00004fed: SWAP2 00004fee: POP 00004fef: PUSH1 0x20 00004ff1: DUP6 00004ff2: ADD 00004ff3: SWAP5 00004ff4: POP 00004ff5: PUSH1 0x20 00004ff7: DUP2 00004ff8: ADD 00004ff9: SWAP1 00004ffa: POP 00004ffb: PUSH2 0x4fda 00004ffe: JUMP 00004fff: JUMPDEST 00005000: DUP7 00005001: DUP4 00005002: LT 00005003: ISZERO 00005004: PUSH2 0x501c 00005007: JUMPI 00005008: DUP5 00005009: DUP10 0000500a: ADD 0000500b: CALLDATALOAD 0000500c: PUSH2 0x5018 0000500f: PUSH1 0x1f 00005011: DUP10 00005012: AND 00005013: DUP3 00005014: PUSH2 0x4bd9 00005017: JUMP 00005018: JUMPDEST 00005019: DUP4 0000501a: SSTORE 0000501b: POP 0000501c: JUMPDEST 0000501d: PUSH1 0x01 0000501f: PUSH1 0x02 00005021: DUP9 00005022: MUL 00005023: ADD 00005024: DUP9 00005025: SSTORE 00005026: POP 00005027: POP 00005028: POP 00005029: JUMPDEST 0000502a: POP 0000502b: POP 0000502c: POP 0000502d: POP 0000502e: POP 0000502f: POP 00005030: POP 00005031: JUMP 00005032: JUMPDEST 00005033: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 00005054: PUSH1 0x00 00005056: DUP3 00005057: ADD 00005058: MSTORE 00005059: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 0000507a: PUSH1 0x20 0000507c: DUP3 0000507d: ADD 0000507e: MSTORE 0000507f: POP 00005080: JUMP 00005081: JUMPDEST 00005082: PUSH1 0x00 00005084: PUSH2 0x508e 00005087: PUSH1 0x26 00005089: DUP4 0000508a: PUSH2 0x38dd 0000508d: JUMP 0000508e: JUMPDEST 0000508f: SWAP2 00005090: POP 00005091: PUSH2 0x5099 00005094: DUP3 00005095: PUSH2 0x5032 00005098: JUMP 00005099: JUMPDEST 0000509a: PUSH1 0x40 0000509c: DUP3 0000509d: ADD 0000509e: SWAP1 0000509f: POP 000050a0: SWAP2 000050a1: SWAP1 000050a2: POP 000050a3: JUMP 000050a4: JUMPDEST 000050a5: PUSH1 0x00 000050a7: PUSH1 0x20 000050a9: DUP3 000050aa: ADD 000050ab: SWAP1 000050ac: POP 000050ad: DUP2 000050ae: DUP2 000050af: SUB 000050b0: PUSH1 0x00 000050b2: DUP4 000050b3: ADD 000050b4: MSTORE 000050b5: PUSH2 0x50bd 000050b8: DUP2 000050b9: PUSH2 0x5081 000050bc: JUMP 000050bd: JUMPDEST 000050be: SWAP1 000050bf: POP 000050c0: SWAP2 000050c1: SWAP1 000050c2: POP 000050c3: JUMP 000050c4: JUMPDEST 000050c5: PUSH1 0x00 000050c7: PUSH1 0x80 000050c9: DUP3 000050ca: ADD 000050cb: SWAP1 000050cc: POP 000050cd: PUSH2 0x50d9 000050d0: PUSH1 0x00 000050d2: DUP4 000050d3: ADD 000050d4: DUP8 000050d5: PUSH2 0x3cd7 000050d8: JUMP 000050d9: JUMPDEST 000050da: PUSH2 0x50e6 000050dd: PUSH1 0x20 000050df: DUP4 000050e0: ADD 000050e1: DUP7 000050e2: PUSH2 0x3cd7 000050e5: JUMP 000050e6: JUMPDEST 000050e7: PUSH2 0x50f3 000050ea: PUSH1 0x40 000050ec: DUP4 000050ed: ADD 000050ee: DUP6 000050ef: PUSH2 0x40d8 000050f2: JUMP 000050f3: JUMPDEST 000050f4: PUSH2 0x5100 000050f7: PUSH1 0x60 000050f9: DUP4 000050fa: ADD 000050fb: DUP5 000050fc: PUSH2 0x3a85 000050ff: JUMP 00005100: JUMPDEST 00005101: SWAP6 00005102: SWAP5 00005103: POP 00005104: POP 00005105: POP 00005106: POP 00005107: POP 00005108: JUMP 00005109: JUMPDEST 0000510a: PUSH1 0x00 0000510c: PUSH2 0x511c 0000510f: PUSH2 0x5117 00005112: DUP5 00005113: PUSH2 0x3ea1 00005116: JUMP 00005117: JUMPDEST 00005118: PUSH2 0x3e86 0000511b: JUMP 0000511c: JUMPDEST 0000511d: SWAP1 0000511e: POP 0000511f: DUP3 00005120: DUP2 00005121: MSTORE 00005122: PUSH1 0x20 00005124: DUP2 00005125: ADD 00005126: DUP5 00005127: DUP5 00005128: DUP5 00005129: ADD 0000512a: GT 0000512b: ISZERO 0000512c: PUSH2 0x5138 0000512f: JUMPI 00005130: PUSH2 0x5137 00005133: PUSH2 0x3e21 00005136: JUMP 00005137: JUMPDEST 00005138: JUMPDEST 00005139: PUSH2 0x5143 0000513c: DUP5 0000513d: DUP3 0000513e: DUP6 0000513f: PUSH2 0x38ee 00005142: JUMP 00005143: JUMPDEST 00005144: POP 00005145: SWAP4 00005146: SWAP3 00005147: POP 00005148: POP 00005149: POP 0000514a: JUMP 0000514b: JUMPDEST 0000514c: PUSH1 0x00 0000514e: DUP3 0000514f: PUSH1 0x1f 00005151: DUP4 00005152: ADD 00005153: SLT 00005154: PUSH2 0x5160 00005157: JUMPI 00005158: PUSH2 0x515f 0000515b: PUSH2 0x36cb 0000515e: JUMP 0000515f: JUMPDEST 00005160: JUMPDEST 00005161: DUP2 00005162: MLOAD 00005163: PUSH2 0x5170 00005166: DUP5 00005167: DUP3 00005168: PUSH1 0x20 0000516a: DUP7 0000516b: ADD 0000516c: PUSH2 0x5109 0000516f: JUMP 00005170: JUMPDEST 00005171: SWAP2 00005172: POP 00005173: POP 00005174: SWAP3 00005175: SWAP2 00005176: POP 00005177: POP 00005178: JUMP 00005179: JUMPDEST 0000517a: PUSH1 0x00 0000517c: PUSH1 0x20 0000517e: DUP3 0000517f: DUP5 00005180: SUB 00005181: SLT 00005182: ISZERO 00005183: PUSH2 0x518f 00005186: JUMPI 00005187: PUSH2 0x518e 0000518a: PUSH2 0x3687 0000518d: JUMP 0000518e: JUMPDEST 0000518f: JUMPDEST 00005190: PUSH1 0x00 00005192: DUP3 00005193: ADD 00005194: MLOAD 00005195: PUSH8 0xffffffffffffffff 0000519e: DUP2 0000519f: GT 000051a0: ISZERO 000051a1: PUSH2 0x51ad 000051a4: JUMPI 000051a5: PUSH2 0x51ac 000051a8: PUSH2 0x368c 000051ab: JUMP 000051ac: JUMPDEST 000051ad: JUMPDEST 000051ae: PUSH2 0x51b9 000051b1: DUP5 000051b2: DUP3 000051b3: DUP6 000051b4: ADD 000051b5: PUSH2 0x514b 000051b8: JUMP 000051b9: JUMPDEST 000051ba: SWAP2 000051bb: POP 000051bc: POP 000051bd: SWAP3 000051be: SWAP2 000051bf: POP 000051c0: POP 000051c1: JUMP 000051c2: JUMPDEST 000051c3: PUSH32 0x45524332303a206d696e7420746f20746865207a65726f206164647265737300 000051e4: PUSH1 0x00 000051e6: DUP3 000051e7: ADD 000051e8: MSTORE 000051e9: POP 000051ea: JUMP 000051eb: JUMPDEST 000051ec: PUSH1 0x00 000051ee: PUSH2 0x51f8 000051f1: PUSH1 0x1f 000051f3: DUP4 000051f4: PUSH2 0x38dd 000051f7: JUMP 000051f8: JUMPDEST 000051f9: SWAP2 000051fa: POP 000051fb: PUSH2 0x5203 000051fe: DUP3 000051ff: PUSH2 0x51c2 00005202: JUMP 00005203: JUMPDEST 00005204: PUSH1 0x20 00005206: DUP3 00005207: ADD 00005208: SWAP1 00005209: POP 0000520a: SWAP2 0000520b: SWAP1 0000520c: POP 0000520d: JUMP 0000520e: JUMPDEST 0000520f: PUSH1 0x00 00005211: PUSH1 0x20 00005213: DUP3 00005214: ADD 00005215: SWAP1 00005216: POP 00005217: DUP2 00005218: DUP2 00005219: SUB 0000521a: PUSH1 0x00 0000521c: DUP4 0000521d: ADD 0000521e: MSTORE 0000521f: PUSH2 0x5227 00005222: DUP2 00005223: PUSH2 0x51eb 00005226: JUMP 00005227: JUMPDEST 00005228: SWAP1 00005229: POP 0000522a: SWAP2 0000522b: SWAP1 0000522c: POP 0000522d: JUMP 0000522e: JUMPDEST 0000522f: PUSH1 0x00 00005231: PUSH1 0x80 00005233: DUP3 00005234: ADD 00005235: SWAP1 00005236: POP 00005237: PUSH2 0x5243 0000523a: PUSH1 0x00 0000523c: DUP4 0000523d: ADD 0000523e: DUP8 0000523f: PUSH2 0x3cd7 00005242: JUMP 00005243: JUMPDEST 00005244: DUP2 00005245: DUP2 00005246: SUB 00005247: PUSH1 0x20 00005249: DUP4 0000524a: ADD 0000524b: MSTORE 0000524c: PUSH2 0x5255 0000524f: DUP2 00005250: DUP7 00005251: PUSH2 0x403d 00005254: JUMP 00005255: JUMPDEST 00005256: SWAP1 00005257: POP 00005258: PUSH2 0x5264 0000525b: PUSH1 0x40 0000525d: DUP4 0000525e: ADD 0000525f: DUP6 00005260: PUSH2 0x4e57 00005263: JUMP 00005264: JUMPDEST 00005265: DUP2 00005266: DUP2 00005267: SUB 00005268: PUSH1 0x60 0000526a: DUP4 0000526b: ADD 0000526c: MSTORE 0000526d: PUSH2 0x5276 00005270: DUP2 00005271: DUP5 00005272: PUSH2 0x403d 00005275: JUMP 00005276: JUMPDEST 00005277: SWAP1 00005278: POP 00005279: SWAP6 0000527a: SWAP5 0000527b: POP 0000527c: POP 0000527d: POP 0000527e: POP 0000527f: POP 00005280: JUMP 00005281: JUMPDEST 00005282: PUSH1 0x00 00005284: PUSH2 0x528c 00005287: DUP3 00005288: PUSH2 0x4021 0000528b: JUMP 0000528c: JUMPDEST 0000528d: PUSH2 0x5296 00005290: DUP2 00005291: DUP6 00005292: PUSH2 0x43f7 00005295: JUMP 00005296: JUMPDEST 00005297: SWAP4 00005298: POP 00005299: PUSH2 0x52a6 0000529c: DUP2 0000529d: DUP6 0000529e: PUSH1 0x20 000052a0: DUP7 000052a1: ADD 000052a2: PUSH2 0x38ee 000052a5: JUMP 000052a6: JUMPDEST 000052a7: DUP1 000052a8: DUP5 000052a9: ADD 000052aa: SWAP2 000052ab: POP 000052ac: POP 000052ad: SWAP3 000052ae: SWAP2 000052af: POP 000052b0: POP 000052b1: JUMP 000052b2: JUMPDEST 000052b3: PUSH1 0x00 000052b5: PUSH2 0x52be 000052b8: DUP3 000052b9: DUP5 000052ba: PUSH2 0x5281 000052bd: JUMP 000052be: JUMPDEST 000052bf: SWAP2 000052c0: POP 000052c1: DUP2 000052c2: SWAP1 000052c3: POP 000052c4: SWAP3 000052c5: SWAP2 000052c6: POP 000052c7: POP 000052c8: JUMP 000052c9: JUMPDEST 000052ca: PUSH1 0x00 000052cc: PUSH1 0xa0 000052ce: DUP3 000052cf: ADD 000052d0: SWAP1 000052d1: POP 000052d2: PUSH2 0x52de 000052d5: PUSH1 0x00 000052d7: DUP4 000052d8: ADD 000052d9: DUP9 000052da: PUSH2 0x3cd7 000052dd: JUMP 000052de: JUMPDEST 000052df: DUP2 000052e0: DUP2 000052e1: SUB 000052e2: PUSH1 0x20 000052e4: DUP4 000052e5: ADD 000052e6: MSTORE 000052e7: PUSH2 0x52f0 000052ea: DUP2 000052eb: DUP8 000052ec: PUSH2 0x403d 000052ef: JUMP 000052f0: JUMPDEST 000052f1: SWAP1 000052f2: POP 000052f3: PUSH2 0x52ff 000052f6: PUSH1 0x40 000052f8: DUP4 000052f9: ADD 000052fa: DUP7 000052fb: PUSH2 0x4e57 000052fe: JUMP 000052ff: JUMPDEST 00005300: DUP2 00005301: DUP2 00005302: SUB 00005303: PUSH1 0x60 00005305: DUP4 00005306: ADD 00005307: MSTORE 00005308: PUSH2 0x5311 0000530b: DUP2 0000530c: DUP6 0000530d: PUSH2 0x403d 00005310: JUMP 00005311: JUMPDEST 00005312: SWAP1 00005313: POP 00005314: DUP2 00005315: DUP2 00005316: SUB 00005317: PUSH1 0x80 00005319: DUP4 0000531a: ADD 0000531b: MSTORE 0000531c: PUSH2 0x5325 0000531f: DUP2 00005320: DUP5 00005321: PUSH2 0x403d 00005324: JUMP 00005325: JUMPDEST 00005326: SWAP1 00005327: POP 00005328: SWAP7 00005329: SWAP6 0000532a: POP 0000532b: POP 0000532c: POP 0000532d: POP 0000532e: POP 0000532f: POP 00005330: JUMP 00005331: JUMPDEST 00005332: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 00005353: PUSH1 0x00 00005355: DUP3 00005356: ADD 00005357: MSTORE 00005358: POP 00005359: JUMP 0000535a: JUMPDEST 0000535b: PUSH1 0x00 0000535d: PUSH2 0x5367 00005360: PUSH1 0x20 00005362: DUP4 00005363: PUSH2 0x38dd 00005366: JUMP 00005367: JUMPDEST 00005368: SWAP2 00005369: POP 0000536a: PUSH2 0x5372 0000536d: DUP3 0000536e: PUSH2 0x5331 00005371: JUMP 00005372: JUMPDEST 00005373: PUSH1 0x20 00005375: DUP3 00005376: ADD 00005377: SWAP1 00005378: POP 00005379: SWAP2 0000537a: SWAP1 0000537b: POP 0000537c: JUMP 0000537d: JUMPDEST 0000537e: PUSH1 0x00 00005380: PUSH1 0x20 00005382: DUP3 00005383: ADD 00005384: SWAP1 00005385: POP 00005386: DUP2 00005387: DUP2 00005388: SUB 00005389: PUSH1 0x00 0000538b: DUP4 0000538c: ADD 0000538d: MSTORE 0000538e: PUSH2 0x5396 00005391: DUP2 00005392: PUSH2 0x535a 00005395: JUMP 00005396: JUMPDEST 00005397: SWAP1 00005398: POP 00005399: SWAP2 0000539a: SWAP1 0000539b: POP 0000539c: JUMP 0000539d: JUMPDEST 0000539e: PUSH32 0x45524332303a20617070726f76652066726f6d20746865207a65726f20616464 000053bf: PUSH1 0x00 000053c1: DUP3 000053c2: ADD 000053c3: MSTORE 000053c4: PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 000053e5: PUSH1 0x20 000053e7: DUP3 000053e8: ADD 000053e9: MSTORE 000053ea: POP 000053eb: JUMP 000053ec: JUMPDEST 000053ed: PUSH1 0x00 000053ef: PUSH2 0x53f9 000053f2: PUSH1 0x24 000053f4: DUP4 000053f5: PUSH2 0x38dd 000053f8: JUMP 000053f9: JUMPDEST 000053fa: SWAP2 000053fb: POP 000053fc: PUSH2 0x5404 000053ff: DUP3 00005400: PUSH2 0x539d 00005403: JUMP 00005404: JUMPDEST 00005405: PUSH1 0x40 00005407: DUP3 00005408: ADD 00005409: SWAP1 0000540a: POP 0000540b: SWAP2 0000540c: SWAP1 0000540d: POP 0000540e: JUMP 0000540f: JUMPDEST 00005410: PUSH1 0x00 00005412: PUSH1 0x20 00005414: DUP3 00005415: ADD 00005416: SWAP1 00005417: POP 00005418: DUP2 00005419: DUP2 0000541a: SUB 0000541b: PUSH1 0x00 0000541d: DUP4 0000541e: ADD 0000541f: MSTORE 00005420: PUSH2 0x5428 00005423: DUP2 00005424: PUSH2 0x53ec 00005427: JUMP 00005428: JUMPDEST 00005429: SWAP1 0000542a: POP 0000542b: SWAP2 0000542c: SWAP1 0000542d: POP 0000542e: JUMP 0000542f: JUMPDEST 00005430: PUSH32 0x45524332303a20617070726f766520746f20746865207a65726f206164647265 00005451: PUSH1 0x00 00005453: DUP3 00005454: ADD 00005455: MSTORE 00005456: PUSH32 0x7373000000000000000000000000000000000000000000000000000000000000 00005477: PUSH1 0x20 00005479: DUP3 0000547a: ADD 0000547b: MSTORE 0000547c: POP 0000547d: JUMP 0000547e: JUMPDEST 0000547f: PUSH1 0x00 00005481: PUSH2 0x548b 00005484: PUSH1 0x22 00005486: DUP4 00005487: PUSH2 0x38dd 0000548a: JUMP 0000548b: JUMPDEST 0000548c: SWAP2 0000548d: POP 0000548e: PUSH2 0x5496 00005491: DUP3 00005492: PUSH2 0x542f 00005495: JUMP 00005496: JUMPDEST 00005497: PUSH1 0x40 00005499: DUP3 0000549a: ADD 0000549b: SWAP1 0000549c: POP 0000549d: SWAP2 0000549e: SWAP1 0000549f: POP 000054a0: JUMP 000054a1: JUMPDEST 000054a2: PUSH1 0x00 000054a4: PUSH1 0x20 000054a6: DUP3 000054a7: ADD 000054a8: SWAP1 000054a9: POP 000054aa: DUP2 000054ab: DUP2 000054ac: SUB 000054ad: PUSH1 0x00 000054af: DUP4 000054b0: ADD 000054b1: MSTORE 000054b2: PUSH2 0x54ba 000054b5: DUP2 000054b6: PUSH2 0x547e 000054b9: JUMP 000054ba: JUMPDEST 000054bb: SWAP1 000054bc: POP 000054bd: SWAP2 000054be: SWAP1 000054bf: POP 000054c0: JUMP 000054c1: JUMPDEST 000054c2: PUSH32 0x45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000 000054e3: PUSH1 0x00 000054e5: DUP3 000054e6: ADD 000054e7: MSTORE 000054e8: POP 000054e9: JUMP 000054ea: JUMPDEST 000054eb: PUSH1 0x00 000054ed: PUSH2 0x54f7 000054f0: PUSH1 0x1d 000054f2: DUP4 000054f3: PUSH2 0x38dd 000054f6: JUMP 000054f7: JUMPDEST 000054f8: SWAP2 000054f9: POP 000054fa: PUSH2 0x5502 000054fd: DUP3 000054fe: PUSH2 0x54c1 00005501: JUMP 00005502: JUMPDEST 00005503: PUSH1 0x20 00005505: DUP3 00005506: ADD 00005507: SWAP1 00005508: POP 00005509: SWAP2 0000550a: SWAP1 0000550b: POP 0000550c: JUMP 0000550d: JUMPDEST 0000550e: PUSH1 0x00 00005510: PUSH1 0x20 00005512: DUP3 00005513: ADD 00005514: SWAP1 00005515: POP 00005516: DUP2 00005517: DUP2 00005518: SUB 00005519: PUSH1 0x00 0000551b: DUP4 0000551c: ADD 0000551d: MSTORE 0000551e: PUSH2 0x5526 00005521: DUP2 00005522: PUSH2 0x54ea 00005525: JUMP 00005526: JUMPDEST 00005527: SWAP1 00005528: POP 00005529: SWAP2 0000552a: SWAP1 0000552b: POP 0000552c: JUMP 0000552d: JUMPDEST 0000552e: PUSH32 0x45524332303a207472616e736665722066726f6d20746865207a65726f206164 0000554f: PUSH1 0x00 00005551: DUP3 00005552: ADD 00005553: MSTORE 00005554: PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 00005575: PUSH1 0x20 00005577: DUP3 00005578: ADD 00005579: MSTORE 0000557a: POP 0000557b: JUMP 0000557c: JUMPDEST 0000557d: PUSH1 0x00 0000557f: PUSH2 0x5589 00005582: PUSH1 0x25 00005584: DUP4 00005585: PUSH2 0x38dd 00005588: JUMP 00005589: JUMPDEST 0000558a: SWAP2 0000558b: POP 0000558c: PUSH2 0x5594 0000558f: DUP3 00005590: PUSH2 0x552d 00005593: JUMP 00005594: JUMPDEST 00005595: PUSH1 0x40 00005597: DUP3 00005598: ADD 00005599: SWAP1 0000559a: POP 0000559b: SWAP2 0000559c: SWAP1 0000559d: POP 0000559e: JUMP 0000559f: JUMPDEST 000055a0: PUSH1 0x00 000055a2: PUSH1 0x20 000055a4: DUP3 000055a5: ADD 000055a6: SWAP1 000055a7: POP 000055a8: DUP2 000055a9: DUP2 000055aa: SUB 000055ab: PUSH1 0x00 000055ad: DUP4 000055ae: ADD 000055af: MSTORE 000055b0: PUSH2 0x55b8 000055b3: DUP2 000055b4: PUSH2 0x557c 000055b7: JUMP 000055b8: JUMPDEST 000055b9: SWAP1 000055ba: POP 000055bb: SWAP2 000055bc: SWAP1 000055bd: POP 000055be: JUMP 000055bf: JUMPDEST 000055c0: PUSH32 0x45524332303a207472616e7366657220746f20746865207a65726f2061646472 000055e1: PUSH1 0x00 000055e3: DUP3 000055e4: ADD 000055e5: MSTORE 000055e6: PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 00005607: PUSH1 0x20 00005609: DUP3 0000560a: ADD 0000560b: MSTORE 0000560c: POP 0000560d: JUMP 0000560e: JUMPDEST 0000560f: PUSH1 0x00 00005611: PUSH2 0x561b 00005614: PUSH1 0x23 00005616: DUP4 00005617: PUSH2 0x38dd 0000561a: JUMP 0000561b: JUMPDEST 0000561c: SWAP2 0000561d: POP 0000561e: PUSH2 0x5626 00005621: DUP3 00005622: PUSH2 0x55bf 00005625: JUMP 00005626: JUMPDEST 00005627: PUSH1 0x40 00005629: DUP3 0000562a: ADD 0000562b: SWAP1 0000562c: POP 0000562d: SWAP2 0000562e: SWAP1 0000562f: POP 00005630: JUMP 00005631: JUMPDEST 00005632: PUSH1 0x00 00005634: PUSH1 0x20 00005636: DUP3 00005637: ADD 00005638: SWAP1 00005639: POP 0000563a: DUP2 0000563b: DUP2 0000563c: SUB 0000563d: PUSH1 0x00 0000563f: DUP4 00005640: ADD 00005641: MSTORE 00005642: PUSH2 0x564a 00005645: DUP2 00005646: PUSH2 0x560e 00005649: JUMP 0000564a: JUMPDEST 0000564b: SWAP1 0000564c: POP 0000564d: SWAP2 0000564e: SWAP1 0000564f: POP 00005650: JUMP 00005651: JUMPDEST 00005652: PUSH32 0x45524332303a207472616e7366657220616d6f756e7420657863656564732062 00005673: PUSH1 0x00 00005675: DUP3 00005676: ADD 00005677: MSTORE 00005678: PUSH32 0x616c616e63650000000000000000000000000000000000000000000000000000 00005699: PUSH1 0x20 0000569b: DUP3 0000569c: ADD 0000569d: MSTORE 0000569e: POP 0000569f: JUMP 000056a0: JUMPDEST 000056a1: PUSH1 0x00 000056a3: PUSH2 0x56ad 000056a6: PUSH1 0x26 000056a8: DUP4 000056a9: PUSH2 0x38dd 000056ac: JUMP 000056ad: JUMPDEST 000056ae: SWAP2 000056af: POP 000056b0: PUSH2 0x56b8 000056b3: DUP3 000056b4: PUSH2 0x5651 000056b7: JUMP 000056b8: JUMPDEST 000056b9: PUSH1 0x40 000056bb: DUP3 000056bc: ADD 000056bd: SWAP1 000056be: POP 000056bf: SWAP2 000056c0: SWAP1 000056c1: POP 000056c2: JUMP 000056c3: JUMPDEST 000056c4: PUSH1 0x00 000056c6: PUSH1 0x20 000056c8: DUP3 000056c9: ADD 000056ca: SWAP1 000056cb: POP 000056cc: DUP2 000056cd: DUP2 000056ce: SUB 000056cf: PUSH1 0x00 000056d1: DUP4 000056d2: ADD 000056d3: MSTORE 000056d4: PUSH2 0x56dc 000056d7: DUP2 000056d8: PUSH2 0x56a0 000056db: JUMP 000056dc: JUMPDEST 000056dd: SWAP1 000056de: POP 000056df: SWAP2 000056e0: SWAP1 000056e1: POP 000056e2: JUMP 000056e3: JUMPDEST 000056e4: PUSH32 0x45524332303a206275726e2066726f6d20746865207a65726f20616464726573 00005705: PUSH1 0x00 00005707: DUP3 00005708: ADD 00005709: MSTORE 0000570a: PUSH32 0x7300000000000000000000000000000000000000000000000000000000000000 0000572b: PUSH1 0x20 0000572d: DUP3 0000572e: ADD 0000572f: MSTORE 00005730: POP 00005731: JUMP 00005732: JUMPDEST 00005733: PUSH1 0x00 00005735: PUSH2 0x573f 00005738: PUSH1 0x21 0000573a: DUP4 0000573b: PUSH2 0x38dd 0000573e: JUMP 0000573f: JUMPDEST 00005740: SWAP2 00005741: POP 00005742: PUSH2 0x574a 00005745: DUP3 00005746: PUSH2 0x56e3 00005749: JUMP 0000574a: JUMPDEST 0000574b: PUSH1 0x40 0000574d: DUP3 0000574e: ADD 0000574f: SWAP1 00005750: POP 00005751: SWAP2 00005752: SWAP1 00005753: POP 00005754: JUMP 00005755: JUMPDEST 00005756: PUSH1 0x00 00005758: PUSH1 0x20 0000575a: DUP3 0000575b: ADD 0000575c: SWAP1 0000575d: POP 0000575e: DUP2 0000575f: DUP2 00005760: SUB 00005761: PUSH1 0x00 00005763: DUP4 00005764: ADD 00005765: MSTORE 00005766: PUSH2 0x576e 00005769: DUP2 0000576a: PUSH2 0x5732 0000576d: JUMP 0000576e: JUMPDEST 0000576f: SWAP1 00005770: POP 00005771: SWAP2 00005772: SWAP1 00005773: POP 00005774: JUMP 00005775: JUMPDEST 00005776: PUSH32 0x45524332303a206275726e20616d6f756e7420657863656564732062616c616e 00005797: PUSH1 0x00 00005799: DUP3 0000579a: ADD 0000579b: MSTORE 0000579c: PUSH32 0x6365000000000000000000000000000000000000000000000000000000000000 000057bd: PUSH1 0x20 000057bf: DUP3 000057c0: ADD 000057c1: MSTORE 000057c2: POP 000057c3: JUMP 000057c4: JUMPDEST 000057c5: PUSH1 0x00 000057c7: PUSH2 0x57d1 000057ca: PUSH1 0x22 000057cc: DUP4 000057cd: PUSH2 0x38dd 000057d0: JUMP 000057d1: JUMPDEST 000057d2: SWAP2 000057d3: POP 000057d4: PUSH2 0x57dc 000057d7: DUP3 000057d8: PUSH2 0x5775 000057db: JUMP 000057dc: JUMPDEST 000057dd: PUSH1 0x40 000057df: DUP3 000057e0: ADD 000057e1: SWAP1 000057e2: POP 000057e3: SWAP2 000057e4: SWAP1 000057e5: POP 000057e6: JUMP 000057e7: JUMPDEST 000057e8: PUSH1 0x00 000057ea: PUSH1 0x20 000057ec: DUP3 000057ed: ADD 000057ee: SWAP1 000057ef: POP 000057f0: DUP2 000057f1: DUP2 000057f2: SUB 000057f3: PUSH1 0x00 000057f5: DUP4 000057f6: ADD 000057f7: MSTORE 000057f8: PUSH2 0x5800 000057fb: DUP2 000057fc: PUSH2 0x57c4 000057ff: JUMP 00005800: JUMPDEST 00005801: SWAP1 00005802: POP 00005803: SWAP2 00005804: SWAP1 00005805: POP 00005806: JUMP 00005807: JUMPDEST 00005808: PUSH1 0x00 0000580a: PUSH1 0x80 0000580c: DUP3 0000580d: ADD 0000580e: SWAP1 0000580f: POP 00005810: PUSH2 0x581c 00005813: PUSH1 0x00 00005815: DUP4 00005816: ADD 00005817: DUP8 00005818: PUSH2 0x3cd7 0000581b: JUMP 0000581c: JUMPDEST 0000581d: DUP2 0000581e: DUP2 0000581f: SUB 00005820: PUSH1 0x20 00005822: DUP4 00005823: ADD 00005824: MSTORE 00005825: PUSH2 0x582e 00005828: DUP2 00005829: DUP7 0000582a: PUSH2 0x403d 0000582d: JUMP 0000582e: JUMPDEST 0000582f: SWAP1 00005830: POP 00005831: DUP2 00005832: DUP2 00005833: SUB 00005834: PUSH1 0x40 00005836: DUP4 00005837: ADD 00005838: MSTORE 00005839: PUSH2 0x5842 0000583c: DUP2 0000583d: DUP6 0000583e: PUSH2 0x403d 00005841: JUMP 00005842: JUMPDEST 00005843: SWAP1 00005844: POP 00005845: PUSH2 0x5851 00005848: PUSH1 0x60 0000584a: DUP4 0000584b: ADD 0000584c: DUP5 0000584d: PUSH2 0x3a85 00005850: JUMP 00005851: JUMPDEST 00005852: SWAP6 00005853: SWAP5 00005854: POP 00005855: POP 00005856: POP 00005857: POP 00005858: POP 00005859: JUMP 0000585a: JUMPDEST 0000585b: PUSH32 0x4e61746976654f46543a205f61646170746572506172616d73206d7573742062 0000587c: PUSH1 0x00 0000587e: DUP3 0000587f: ADD 00005880: MSTORE 00005881: PUSH32 0x6520656d7074792e000000000000000000000000000000000000000000000000 000058a2: PUSH1 0x20 000058a4: DUP3 000058a5: ADD 000058a6: MSTORE 000058a7: POP 000058a8: JUMP 000058a9: JUMPDEST 000058aa: PUSH1 0x00 000058ac: PUSH2 0x58b6 000058af: PUSH1 0x28 000058b1: DUP4 000058b2: PUSH2 0x38dd 000058b5: JUMP 000058b6: JUMPDEST 000058b7: SWAP2 000058b8: POP 000058b9: PUSH2 0x58c1 000058bc: DUP3 000058bd: PUSH2 0x585a 000058c0: JUMP 000058c1: JUMPDEST 000058c2: PUSH1 0x40 000058c4: DUP3 000058c5: ADD 000058c6: SWAP1 000058c7: POP 000058c8: SWAP2 000058c9: SWAP1 000058ca: POP 000058cb: JUMP 000058cc: JUMPDEST 000058cd: PUSH1 0x00 000058cf: PUSH1 0x20 000058d1: DUP3 000058d2: ADD 000058d3: SWAP1 000058d4: POP 000058d5: DUP2 000058d6: DUP2 000058d7: SUB 000058d8: PUSH1 0x00 000058da: DUP4 000058db: ADD 000058dc: MSTORE 000058dd: PUSH2 0x58e5 000058e0: DUP2 000058e1: PUSH2 0x58a9 000058e4: JUMP 000058e5: JUMPDEST 000058e6: SWAP1 000058e7: POP 000058e8: SWAP2 000058e9: SWAP1 000058ea: POP 000058eb: JUMP 000058ec: JUMPDEST 000058ed: PUSH32 0x4f4654436f72653a20756e6b6e6f776e207061636b6574207479706500000000 0000590e: PUSH1 0x00 00005910: DUP3 00005911: ADD 00005912: MSTORE 00005913: POP 00005914: JUMP 00005915: JUMPDEST 00005916: PUSH1 0x00 00005918: PUSH2 0x5922 0000591b: PUSH1 0x1c 0000591d: DUP4 0000591e: PUSH2 0x38dd 00005921: JUMP 00005922: JUMPDEST 00005923: SWAP2 00005924: POP 00005925: PUSH2 0x592d 00005928: DUP3 00005929: PUSH2 0x58ec 0000592c: JUMP 0000592d: JUMPDEST 0000592e: PUSH1 0x20 00005930: DUP3 00005931: ADD 00005932: SWAP1 00005933: POP 00005934: SWAP2 00005935: SWAP1 00005936: POP 00005937: JUMP 00005938: JUMPDEST 00005939: PUSH1 0x00 0000593b: PUSH1 0x20 0000593d: DUP3 0000593e: ADD 0000593f: SWAP1 00005940: POP 00005941: DUP2 00005942: DUP2 00005943: SUB 00005944: PUSH1 0x00 00005946: DUP4 00005947: ADD 00005948: MSTORE 00005949: PUSH2 0x5951 0000594c: DUP2 0000594d: PUSH2 0x5915 00005950: JUMP 00005951: JUMPDEST 00005952: SWAP1 00005953: POP 00005954: SWAP2 00005955: SWAP1 00005956: POP 00005957: JUMP 00005958: JUMPDEST 00005959: PUSH32 0x736c6963655f6f766572666c6f77000000000000000000000000000000000000 0000597a: PUSH1 0x00 0000597c: DUP3 0000597d: ADD 0000597e: MSTORE 0000597f: POP 00005980: JUMP 00005981: JUMPDEST 00005982: PUSH1 0x00 00005984: PUSH2 0x598e 00005987: PUSH1 0x0e 00005989: DUP4 0000598a: PUSH2 0x38dd 0000598d: JUMP 0000598e: JUMPDEST 0000598f: SWAP2 00005990: POP 00005991: PUSH2 0x5999 00005994: DUP3 00005995: PUSH2 0x5958 00005998: JUMP 00005999: JUMPDEST 0000599a: PUSH1 0x20 0000599c: DUP3 0000599d: ADD 0000599e: SWAP1 0000599f: POP 000059a0: SWAP2 000059a1: SWAP1 000059a2: POP 000059a3: JUMP 000059a4: JUMPDEST 000059a5: PUSH1 0x00 000059a7: PUSH1 0x20 000059a9: DUP3 000059aa: ADD 000059ab: SWAP1 000059ac: POP 000059ad: DUP2 000059ae: DUP2 000059af: SUB 000059b0: PUSH1 0x00 000059b2: DUP4 000059b3: ADD 000059b4: MSTORE 000059b5: PUSH2 0x59bd 000059b8: DUP2 000059b9: PUSH2 0x5981 000059bc: JUMP 000059bd: JUMPDEST 000059be: SWAP1 000059bf: POP 000059c0: SWAP2 000059c1: SWAP1 000059c2: POP 000059c3: JUMP 000059c4: JUMPDEST 000059c5: PUSH32 0x736c6963655f6f75744f66426f756e6473000000000000000000000000000000 000059e6: PUSH1 0x00 000059e8: DUP3 000059e9: ADD 000059ea: MSTORE 000059eb: POP 000059ec: JUMP 000059ed: JUMPDEST 000059ee: PUSH1 0x00 000059f0: PUSH2 0x59fa 000059f3: PUSH1 0x11 000059f5: DUP4 000059f6: PUSH2 0x38dd 000059f9: JUMP 000059fa: JUMPDEST 000059fb: SWAP2 000059fc: POP 000059fd: PUSH2 0x5a05 00005a00: DUP3 00005a01: PUSH2 0x59c4 00005a04: JUMP 00005a05: JUMPDEST 00005a06: PUSH1 0x20 00005a08: DUP3 00005a09: ADD 00005a0a: SWAP1 00005a0b: POP 00005a0c: SWAP2 00005a0d: SWAP1 00005a0e: POP 00005a0f: JUMP 00005a10: JUMPDEST 00005a11: PUSH1 0x00 00005a13: PUSH1 0x20 00005a15: DUP3 00005a16: ADD 00005a17: SWAP1 00005a18: POP 00005a19: DUP2 00005a1a: DUP2 00005a1b: SUB 00005a1c: PUSH1 0x00 00005a1e: DUP4 00005a1f: ADD 00005a20: MSTORE 00005a21: PUSH2 0x5a29 00005a24: DUP2 00005a25: PUSH2 0x59ed 00005a28: JUMP 00005a29: JUMPDEST 00005a2a: SWAP1 00005a2b: POP 00005a2c: SWAP2 00005a2d: SWAP1 00005a2e: POP 00005a2f: JUMP 00005a30: JUMPDEST 00005a31: PUSH32 0x4c7a4170703a206d696e4761734c696d6974206e6f7420736574000000000000 00005a52: PUSH1 0x00 00005a54: DUP3 00005a55: ADD 00005a56: MSTORE 00005a57: POP 00005a58: JUMP 00005a59: JUMPDEST 00005a5a: PUSH1 0x00 00005a5c: PUSH2 0x5a66 00005a5f: PUSH1 0x1a 00005a61: DUP4 00005a62: PUSH2 0x38dd 00005a65: JUMP 00005a66: JUMPDEST 00005a67: SWAP2 00005a68: POP 00005a69: PUSH2 0x5a71 00005a6c: DUP3 00005a6d: PUSH2 0x5a30 00005a70: JUMP 00005a71: JUMPDEST 00005a72: PUSH1 0x20 00005a74: DUP3 00005a75: ADD 00005a76: SWAP1 00005a77: POP 00005a78: SWAP2 00005a79: SWAP1 00005a7a: POP 00005a7b: JUMP 00005a7c: JUMPDEST 00005a7d: PUSH1 0x00 00005a7f: PUSH1 0x20 00005a81: DUP3 00005a82: ADD 00005a83: SWAP1 00005a84: POP 00005a85: DUP2 00005a86: DUP2 00005a87: SUB 00005a88: PUSH1 0x00 00005a8a: DUP4 00005a8b: ADD 00005a8c: MSTORE 00005a8d: PUSH2 0x5a95 00005a90: DUP2 00005a91: PUSH2 0x5a59 00005a94: JUMP 00005a95: JUMPDEST 00005a96: SWAP1 00005a97: POP 00005a98: SWAP2 00005a99: SWAP1 00005a9a: POP 00005a9b: JUMP 00005a9c: JUMPDEST 00005a9d: PUSH32 0x4c7a4170703a20676173206c696d697420697320746f6f206c6f770000000000 00005abe: PUSH1 0x00 00005ac0: DUP3 00005ac1: ADD 00005ac2: MSTORE 00005ac3: POP 00005ac4: JUMP 00005ac5: JUMPDEST 00005ac6: PUSH1 0x00 00005ac8: PUSH2 0x5ad2 00005acb: PUSH1 0x1b 00005acd: DUP4 00005ace: PUSH2 0x38dd 00005ad1: JUMP 00005ad2: JUMPDEST 00005ad3: SWAP2 00005ad4: POP 00005ad5: PUSH2 0x5add 00005ad8: DUP3 00005ad9: PUSH2 0x5a9c 00005adc: JUMP 00005add: JUMPDEST 00005ade: PUSH1 0x20 00005ae0: DUP3 00005ae1: ADD 00005ae2: SWAP1 00005ae3: POP 00005ae4: SWAP2 00005ae5: SWAP1 00005ae6: POP 00005ae7: JUMP 00005ae8: JUMPDEST 00005ae9: PUSH1 0x00 00005aeb: PUSH1 0x20 00005aed: DUP3 00005aee: ADD 00005aef: SWAP1 00005af0: POP 00005af1: DUP2 00005af2: DUP2 00005af3: SUB 00005af4: PUSH1 0x00 00005af6: DUP4 00005af7: ADD 00005af8: MSTORE 00005af9: PUSH2 0x5b01 00005afc: DUP2 00005afd: PUSH2 0x5ac5 00005b00: JUMP 00005b01: JUMPDEST 00005b02: SWAP1 00005b03: POP 00005b04: SWAP2 00005b05: SWAP1 00005b06: POP 00005b07: JUMP 00005b08: JUMPDEST 00005b09: PUSH32 0x4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f7420 00005b2a: PUSH1 0x00 00005b2c: DUP3 00005b2d: ADD 00005b2e: MSTORE 00005b2f: PUSH32 0x61207472757374656420736f7572636500000000000000000000000000000000 00005b50: PUSH1 0x20 00005b52: DUP3 00005b53: ADD 00005b54: MSTORE 00005b55: POP 00005b56: JUMP 00005b57: JUMPDEST 00005b58: PUSH1 0x00 00005b5a: PUSH2 0x5b64 00005b5d: PUSH1 0x30 00005b5f: DUP4 00005b60: PUSH2 0x38dd 00005b63: JUMP 00005b64: JUMPDEST 00005b65: SWAP2 00005b66: POP 00005b67: PUSH2 0x5b6f 00005b6a: DUP3 00005b6b: PUSH2 0x5b08 00005b6e: JUMP 00005b6f: JUMPDEST 00005b70: PUSH1 0x40 00005b72: DUP3 00005b73: ADD 00005b74: SWAP1 00005b75: POP 00005b76: SWAP2 00005b77: SWAP1 00005b78: POP 00005b79: JUMP 00005b7a: JUMPDEST 00005b7b: PUSH1 0x00 00005b7d: PUSH1 0x20 00005b7f: DUP3 00005b80: ADD 00005b81: SWAP1 00005b82: POP 00005b83: DUP2 00005b84: DUP2 00005b85: SUB 00005b86: PUSH1 0x00 00005b88: DUP4 00005b89: ADD 00005b8a: MSTORE 00005b8b: PUSH2 0x5b93 00005b8e: DUP2 00005b8f: PUSH2 0x5b57 00005b92: JUMP 00005b93: JUMPDEST 00005b94: SWAP1 00005b95: POP 00005b96: SWAP2 00005b97: SWAP1 00005b98: POP 00005b99: JUMP 00005b9a: JUMPDEST 00005b9b: PUSH2 0x5ba3 00005b9e: DUP2 00005b9f: PUSH2 0x3d01 00005ba2: JUMP 00005ba3: JUMPDEST 00005ba4: DUP3 00005ba5: MSTORE 00005ba6: POP 00005ba7: POP 00005ba8: JUMP 00005ba9: JUMPDEST 00005baa: PUSH1 0x00 00005bac: PUSH1 0xc0 00005bae: DUP3 00005baf: ADD 00005bb0: SWAP1 00005bb1: POP 00005bb2: PUSH2 0x5bbe 00005bb5: PUSH1 0x00 00005bb7: DUP4 00005bb8: ADD 00005bb9: DUP10 00005bba: PUSH2 0x3cd7 00005bbd: JUMP 00005bbe: JUMPDEST 00005bbf: DUP2 00005bc0: DUP2 00005bc1: SUB 00005bc2: PUSH1 0x20 00005bc4: DUP4 00005bc5: ADD 00005bc6: MSTORE 00005bc7: PUSH2 0x5bd0 00005bca: DUP2 00005bcb: DUP9 00005bcc: PUSH2 0x403d 00005bcf: JUMP 00005bd0: JUMPDEST 00005bd1: SWAP1 00005bd2: POP 00005bd3: DUP2 00005bd4: DUP2 00005bd5: SUB 00005bd6: PUSH1 0x40 00005bd8: DUP4 00005bd9: ADD 00005bda: MSTORE 00005bdb: PUSH2 0x5be4 00005bde: DUP2 00005bdf: DUP8 00005be0: PUSH2 0x403d 00005be3: JUMP 00005be4: JUMPDEST 00005be5: SWAP1 00005be6: POP 00005be7: PUSH2 0x5bf3 00005bea: PUSH1 0x60 00005bec: DUP4 00005bed: ADD 00005bee: DUP7 00005bef: PUSH2 0x5b9a 00005bf2: JUMP 00005bf3: JUMPDEST 00005bf4: PUSH2 0x5c00 00005bf7: PUSH1 0x80 00005bf9: DUP4 00005bfa: ADD 00005bfb: DUP6 00005bfc: PUSH2 0x40d8 00005bff: JUMP 00005c00: JUMPDEST 00005c01: DUP2 00005c02: DUP2 00005c03: SUB 00005c04: PUSH1 0xa0 00005c06: DUP4 00005c07: ADD 00005c08: MSTORE 00005c09: PUSH2 0x5c12 00005c0c: DUP2 00005c0d: DUP5 00005c0e: PUSH2 0x403d 00005c11: JUMP 00005c12: JUMPDEST 00005c13: SWAP1 00005c14: POP 00005c15: SWAP8 00005c16: SWAP7 00005c17: POP 00005c18: POP 00005c19: POP 00005c1a: POP 00005c1b: POP 00005c1c: POP 00005c1d: POP 00005c1e: JUMP 00005c1f: JUMPDEST 00005c20: PUSH1 0x00 00005c22: DUP2 00005c23: MLOAD 00005c24: SWAP1 00005c25: POP 00005c26: PUSH2 0x5c2e 00005c29: DUP2 00005c2a: PUSH2 0x369f 00005c2d: JUMP 00005c2e: JUMPDEST 00005c2f: SWAP3 00005c30: SWAP2 00005c31: POP 00005c32: POP 00005c33: JUMP 00005c34: JUMPDEST 00005c35: PUSH1 0x00 00005c37: DUP1 00005c38: PUSH1 0x00 00005c3a: DUP1 00005c3b: PUSH1 0x80 00005c3d: DUP6 00005c3e: DUP8 00005c3f: SUB 00005c40: SLT 00005c41: ISZERO 00005c42: PUSH2 0x5c4e 00005c45: JUMPI 00005c46: PUSH2 0x5c4d 00005c49: PUSH2 0x3687 00005c4c: JUMP 00005c4d: JUMPDEST 00005c4e: JUMPDEST 00005c4f: PUSH1 0x00 00005c51: PUSH2 0x5c5c 00005c54: DUP8 00005c55: DUP3 00005c56: DUP9 00005c57: ADD 00005c58: PUSH2 0x5c1f 00005c5b: JUMP 00005c5c: JUMPDEST 00005c5d: SWAP5 00005c5e: POP 00005c5f: POP 00005c60: PUSH1 0x20 00005c62: DUP6 00005c63: ADD 00005c64: MLOAD 00005c65: PUSH8 0xffffffffffffffff 00005c6e: DUP2 00005c6f: GT 00005c70: ISZERO 00005c71: PUSH2 0x5c7d 00005c74: JUMPI 00005c75: PUSH2 0x5c7c 00005c78: PUSH2 0x368c 00005c7b: JUMP 00005c7c: JUMPDEST 00005c7d: JUMPDEST 00005c7e: PUSH2 0x5c89 00005c81: DUP8 00005c82: DUP3 00005c83: DUP9 00005c84: ADD 00005c85: PUSH2 0x514b 00005c88: JUMP 00005c89: JUMPDEST 00005c8a: SWAP4 00005c8b: POP 00005c8c: POP 00005c8d: PUSH1 0x40 00005c8f: DUP6 00005c90: ADD 00005c91: MLOAD 00005c92: PUSH8 0xffffffffffffffff 00005c9b: DUP2 00005c9c: GT 00005c9d: ISZERO 00005c9e: PUSH2 0x5caa 00005ca1: JUMPI 00005ca2: PUSH2 0x5ca9 00005ca5: PUSH2 0x368c 00005ca8: JUMP 00005ca9: JUMPDEST 00005caa: JUMPDEST 00005cab: PUSH2 0x5cb6 00005cae: DUP8 00005caf: DUP3 00005cb0: DUP9 00005cb1: ADD 00005cb2: PUSH2 0x514b 00005cb5: JUMP 00005cb6: JUMPDEST 00005cb7: SWAP3 00005cb8: POP 00005cb9: POP 00005cba: PUSH1 0x60 00005cbc: PUSH2 0x5cc7 00005cbf: DUP8 00005cc0: DUP3 00005cc1: DUP9 00005cc2: ADD 00005cc3: PUSH2 0x461a 00005cc6: JUMP 00005cc7: JUMPDEST 00005cc8: SWAP2 00005cc9: POP 00005cca: POP 00005ccb: SWAP3 00005ccc: SWAP6 00005ccd: SWAP2 00005cce: SWAP5 00005ccf: POP 00005cd0: SWAP3 00005cd1: POP 00005cd2: JUMP 00005cd3: JUMPDEST 00005cd4: PUSH1 0x00 00005cd6: PUSH1 0x40 00005cd8: DUP3 00005cd9: ADD 00005cda: SWAP1 00005cdb: POP 00005cdc: DUP2 00005cdd: DUP2 00005cde: SUB 00005cdf: PUSH1 0x00 00005ce1: DUP4 00005ce2: ADD 00005ce3: MSTORE 00005ce4: PUSH2 0x5ced 00005ce7: DUP2 00005ce8: DUP6 00005ce9: PUSH2 0x403d 00005cec: JUMP 00005ced: JUMPDEST 00005cee: SWAP1 00005cef: POP 00005cf0: PUSH2 0x5cfc 00005cf3: PUSH1 0x20 00005cf5: DUP4 00005cf6: ADD 00005cf7: DUP5 00005cf8: PUSH2 0x3a85 00005cfb: JUMP 00005cfc: JUMPDEST 00005cfd: SWAP4 00005cfe: SWAP3 00005cff: POP 00005d00: POP 00005d01: POP 00005d02: JUMP 00005d03: JUMPDEST 00005d04: PUSH32 0x4e61746976654f46543a20496e73756666696369656e74206d73672e76616c75 00005d25: PUSH1 0x00 00005d27: DUP3 00005d28: ADD 00005d29: MSTORE 00005d2a: PUSH32 0x6500000000000000000000000000000000000000000000000000000000000000 00005d4b: PUSH1 0x20 00005d4d: DUP3 00005d4e: ADD 00005d4f: MSTORE 00005d50: POP 00005d51: JUMP 00005d52: JUMPDEST 00005d53: PUSH1 0x00 00005d55: PUSH2 0x5d5f 00005d58: PUSH1 0x21 00005d5a: DUP4 00005d5b: PUSH2 0x38dd 00005d5e: JUMP 00005d5f: JUMPDEST 00005d60: SWAP2 00005d61: POP 00005d62: PUSH2 0x5d6a 00005d65: DUP3 00005d66: PUSH2 0x5d03 00005d69: JUMP 00005d6a: JUMPDEST 00005d6b: PUSH1 0x40 00005d6d: DUP3 00005d6e: ADD 00005d6f: SWAP1 00005d70: POP 00005d71: SWAP2 00005d72: SWAP1 00005d73: POP 00005d74: JUMP 00005d75: JUMPDEST 00005d76: PUSH1 0x00 00005d78: PUSH1 0x20 00005d7a: DUP3 00005d7b: ADD 00005d7c: SWAP1 00005d7d: POP 00005d7e: DUP2 00005d7f: DUP2 00005d80: SUB 00005d81: PUSH1 0x00 00005d83: DUP4 00005d84: ADD 00005d85: MSTORE 00005d86: PUSH2 0x5d8e 00005d89: DUP2 00005d8a: PUSH2 0x5d52 00005d8d: JUMP 00005d8e: JUMPDEST 00005d8f: SWAP1 00005d90: POP 00005d91: SWAP2 00005d92: SWAP1 00005d93: POP 00005d94: JUMP 00005d95: JUMPDEST 00005d96: PUSH32 0x4c7a4170703a20696e76616c69642061646170746572506172616d7300000000 00005db7: PUSH1 0x00 00005db9: DUP3 00005dba: ADD 00005dbb: MSTORE 00005dbc: POP 00005dbd: JUMP 00005dbe: JUMPDEST 00005dbf: PUSH1 0x00 00005dc1: PUSH2 0x5dcb 00005dc4: PUSH1 0x1c 00005dc6: DUP4 00005dc7: PUSH2 0x38dd 00005dca: JUMP 00005dcb: JUMPDEST 00005dcc: SWAP2 00005dcd: POP 00005dce: PUSH2 0x5dd6 00005dd1: DUP3 00005dd2: PUSH2 0x5d95 00005dd5: JUMP 00005dd6: JUMPDEST 00005dd7: PUSH1 0x20 00005dd9: DUP3 00005dda: ADD 00005ddb: SWAP1 00005ddc: POP 00005ddd: SWAP2 00005dde: SWAP1 00005ddf: POP 00005de0: JUMP 00005de1: JUMPDEST 00005de2: PUSH1 0x00 00005de4: PUSH1 0x20 00005de6: DUP3 00005de7: ADD 00005de8: SWAP1 00005de9: POP 00005dea: DUP2 00005deb: DUP2 00005dec: SUB 00005ded: PUSH1 0x00 00005def: DUP4 00005df0: ADD 00005df1: MSTORE 00005df2: PUSH2 0x5dfa 00005df5: DUP2 00005df6: PUSH2 0x5dbe 00005df9: JUMP 00005dfa: JUMPDEST 00005dfb: SWAP1 00005dfc: POP 00005dfd: SWAP2 00005dfe: SWAP1 00005dff: POP 00005e00: JUMP 00005e01: JUMPDEST 00005e02: PUSH32 0x746f416464726573735f6f75744f66426f756e64730000000000000000000000 00005e23: PUSH1 0x00 00005e25: DUP3 00005e26: ADD 00005e27: MSTORE 00005e28: POP 00005e29: JUMP 00005e2a: JUMPDEST 00005e2b: PUSH1 0x00 00005e2d: PUSH2 0x5e37 00005e30: PUSH1 0x15 00005e32: DUP4 00005e33: PUSH2 0x38dd 00005e36: JUMP 00005e37: JUMPDEST 00005e38: SWAP2 00005e39: POP 00005e3a: PUSH2 0x5e42 00005e3d: DUP3 00005e3e: PUSH2 0x5e01 00005e41: JUMP 00005e42: JUMPDEST 00005e43: PUSH1 0x20 00005e45: DUP3 00005e46: ADD 00005e47: SWAP1 00005e48: POP 00005e49: SWAP2 00005e4a: SWAP1 00005e4b: POP 00005e4c: JUMP 00005e4d: JUMPDEST 00005e4e: PUSH1 0x00 00005e50: PUSH1 0x20 00005e52: DUP3 00005e53: ADD 00005e54: SWAP1 00005e55: POP 00005e56: DUP2 00005e57: DUP2 00005e58: SUB 00005e59: PUSH1 0x00 00005e5b: DUP4 00005e5c: ADD 00005e5d: MSTORE 00005e5e: PUSH2 0x5e66 00005e61: DUP2 00005e62: PUSH2 0x5e2a 00005e65: JUMP 00005e66: JUMPDEST 00005e67: SWAP1 00005e68: POP 00005e69: SWAP2 00005e6a: SWAP1 00005e6b: POP 00005e6c: JUMP 00005e6d: JUMPDEST 00005e6e: PUSH32 0x4e61746976654f46543a206661696c656420746f205f637265646974546f0000 00005e8f: PUSH1 0x00 00005e91: DUP3 00005e92: ADD 00005e93: MSTORE 00005e94: POP 00005e95: JUMP 00005e96: JUMPDEST 00005e97: PUSH1 0x00 00005e99: PUSH2 0x5ea3 00005e9c: PUSH1 0x1e 00005e9e: DUP4 00005e9f: PUSH2 0x38dd 00005ea2: JUMP 00005ea3: JUMPDEST 00005ea4: SWAP2 00005ea5: POP 00005ea6: PUSH2 0x5eae 00005ea9: DUP3 00005eaa: PUSH2 0x5e6d 00005ead: JUMP 00005eae: JUMPDEST 00005eaf: PUSH1 0x20 00005eb1: DUP3 00005eb2: ADD 00005eb3: SWAP1 00005eb4: POP 00005eb5: SWAP2 00005eb6: SWAP1 00005eb7: POP 00005eb8: JUMP 00005eb9: JUMPDEST 00005eba: PUSH1 0x00 00005ebc: PUSH1 0x20 00005ebe: DUP3 00005ebf: ADD 00005ec0: SWAP1 00005ec1: POP 00005ec2: DUP2 00005ec3: DUP2 00005ec4: SUB 00005ec5: PUSH1 0x00 00005ec7: DUP4 00005ec8: ADD 00005ec9: MSTORE 00005eca: PUSH2 0x5ed2 00005ecd: DUP2 00005ece: PUSH2 0x5e96 00005ed1: JUMP 00005ed2: JUMPDEST 00005ed3: SWAP1 00005ed4: POP 00005ed5: SWAP2 00005ed6: SWAP1 00005ed7: POP 00005ed8: JUMP 00005ed9: INVALID 00005eda: LOG2 00005edb: PUSH5 0x6970667358 00005ee1: UNKNOWN(0x22) 00005ee2: SLT 00005ee3: KECCAK256 00005ee4: JUMPI 00005ee5: MCOPY 00005ee6: UNKNOWN(0xE5) 00005ee7: UNKNOWN(0x2D) 00005ee8: SWAP5 00005ee9: UNKNOWN(0xBE) 00005eea: UNKNOWN(0xD9) 00005eeb: SWAP16 00005eec: UNKNOWN(0xAA) 00005eed: MSTORE8 00005eee: ISZERO 00005eef: SWAP14 00005ef0: GT 00005ef1: UNKNOWN(0xC7) 00005ef2: UNKNOWN(0xCE) 00005ef3: ADDRESS 00005ef4: SWAP8 00005ef5: UNKNOWN(0xA8) 00005ef6: UNKNOWN(0xCB) 00005ef7: PUSH20 0x3fd76f07f079f82edb758b1a64736f6c63430008 00005f0c: GT 00005f0d: STOP 00005f0e: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xd6d798b826c4eb1c5958ce95065a75e895dffc092f681161c1a3408c887765fd
call_targets:
0x1edb8bded80e1b87ed19ee7d97ee80b4fdb615c1
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xd6d798b826c4eb1c5958ce95065a75e895dffc092f681161c1a3408c887765fd",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1edb8bded80e1b87ed19ee7d97ee80b4fdb615c1"
],
"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": "0xdf2a5b3b",
"selector": "0xdf2a5b3b",
"calldata_variants": [
"0xdf2a5b3b",
"0xdf2a5b3b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeab45d9c",
"selector": "0xeab45d9c",
"calldata_variants": [
"0xeab45d9c",
"0xeab45d9c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeb8d72b7",
"selector": "0xeb8d72b7",
"calldata_variants": [
"0xeb8d72b7",
"0xeb8d72b70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xed629c5c",
"selector": "0xed629c5c",
"calldata_variants": [
"0xed629c5c",
"0xed629c5c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5ecbdbc",
"selector": "0xf5ecbdbc",
"calldata_variants": [
"0xf5ecbdbc",
"0xf5ecbdbc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbaf3292d",
"selector": "0xbaf3292d",
"calldata_variants": [
"0xbaf3292d",
"0xbaf3292d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcbed8b9c",
"selector": "0xcbed8b9c",
"calldata_variants": [
"0xcbed8b9c",
"0xcbed8b9c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3792,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3977,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4529,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 8,
"guards_detected": [
{
"pc": 12358,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 8
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xd6d798b826c4eb1c5958ce95065a75e895dffc092f681161c1a3408c887765fd
call_targets:
0x1edb8bded80e1b87ed19ee7d97ee80b4fdb615c1
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xd6d798b826c4eb1c5958ce95065a75e895dffc092f681161c1a3408c887765fd",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1edb8bded80e1b87ed19ee7d97ee80b4fdb615c1"
],
"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": "0xdf2a5b3b",
"selector": "0xdf2a5b3b",
"calldata_variants": [
"0xdf2a5b3b",
"0xdf2a5b3b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeab45d9c",
"selector": "0xeab45d9c",
"calldata_variants": [
"0xeab45d9c",
"0xeab45d9c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeb8d72b7",
"selector": "0xeb8d72b7",
"calldata_variants": [
"0xeb8d72b7",
"0xeb8d72b70000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xed629c5c",
"selector": "0xed629c5c",
"calldata_variants": [
"0xed629c5c",
"0xed629c5c0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5ecbdbc",
"selector": "0xf5ecbdbc",
"calldata_variants": [
"0xf5ecbdbc",
"0xf5ecbdbc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbaf3292d",
"selector": "0xbaf3292d",
"calldata_variants": [
"0xbaf3292d",
"0xbaf3292d0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcbed8b9c",
"selector": "0xcbed8b9c",
"calldata_variants": [
"0xcbed8b9c",
"0xcbed8b9c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3792,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3977,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 4529,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 8,
"guards_detected": [
{
"pc": 12358,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| medium | other | codex | Computed CALL targets/values may allow unintended external calls with ETH | 75 | no | — |
viewevidence_json{
"evidence": "detector_findings: \"Untrusted CALL target/value reachable\" (call_count=8) with target/value marked computed; callsites list shows CALLs at pc 0x0ed0, 0x0f89, 0x11b1, 0x141a, 0x1bbf, 0x2f94, 0x32cf, 0x35fe. Validation_json shows a single trace with constant self-target but not confirmed, so input sensitivity remains uncertain.",
"locations": [
"pc:0xed0",
"pc:0xf89",
"pc:0x11b1",
"pc:0x141a",
"pc:0x1bbf",
"pc:0x2f94",
"pc:0x32cf",
"pc:0x35fe"
],
"recommendation": "Constrain CALL targets to trusted addresses (allowlist or immutable endpoint), validate value sources, and ensure state is updated before external calls. Consider reentrancy guards on external-call paths and explicit success checks when failure should revert.",
"exploit_scenario": "If any of the computed CALL targets/values are influenced by untrusted inputs (e.g., user-provided addresses or payloads), an attacker could trigger calls to arbitrary contracts, potentially transferring ETH or reentering before state updates. The detector trace saw a constant self-target in one run, but this was not confirmed and may be input-dependent."
}
|
| low | other | codex | CALL success handling unclear at pc 0x2f94 (possible silent failure) | 65 | no | — |
viewevidence_json{
"evidence": "callsites entry for pc 12180 (0x2f94) shows CALL with `returndata_checked: null`; the immediate post-call sequence does not show a clear success gate in the local snippet, so failure handling is uncertain.",
"locations": [
"pc:0x2f94"
],
"recommendation": "Explicitly check the CALL success flag and revert or store failed payloads for retry, depending on intended nonblocking behavior. Ensure accounting state changes are aligned with call outcomes.",
"exploit_scenario": "If this CALL is used to forward value or invoke a receiver hook, and the success flag is ignored, a failed call could leave token/accounting state updated while the external effect did not occur, leading to stuck funds or inconsistent balances. Bytecode-only analysis cannot confirm intended semantics."
}
|
| 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": 5
}
|