019c0ea9-07ab-7229-8ea9-ef5c66ea8236
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 |
|---|---|---|---|---|
| 41648 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 41649 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 41650 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 41651 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 41652 | capability.graph | complete | 1 / 3 | 2 months ago |
| 41653 | detector.run | complete | 1 / 3 | 2 months ago |
| 41654 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42244 | report.consolidate | complete | 1 / 6 | 2 months ago |
| 42245 | tool.slither | complete | 1 / 2 | 2 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-1amkpmi8)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-1amkpmi8)
OwnbitMultiSig.spend(address,uint256,uint8[],bytes32[],bytes32[],bytes) (contracts/Contract.sol#116-123) sends eth to arbitrary user
Dangerous calls:
- (sent,_ret) = destination.call{value: value}(data) (contracts/Contract.sol#120-122)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#functions-that-send-ether-to-arbitrary-destinations
OwnbitMultiSig._distinctOwners(address[]) (contracts/Contract.sol#173-188) uses a dangerous strict equality:
- ownerBlockMap[addrs[i]] == 0 (contracts/Contract.sol#179-180)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities
Reentrancy in OwnbitMultiSig.spend(address,uint256,uint8[],bytes32[],bytes32[],bytes) (contracts/Contract.sol#116-123):
External calls:
- (sent,_ret) = destination.call{value: value}(data) (contracts/Contract.sol#120-122)
Event emitted after the call(s):
- Spent(destination,value) (contracts/Contract.sol#122-123)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
Version constraint >=0.8.0<0.9.0 is too complex.
It is used by:
- >=0.8.0<0.9.0 (contracts/Contract.sol#1)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
Low level call in OwnbitMultiSig.spend(address,uint256,uint8[],bytes32[],bytes32[],bytes) (contracts/Contract.sol#116-123):
- (sent,_ret) = destination.call{value: value}(data) (contracts/Contract.sol#120-122)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
OwnbitMultiSig.slitherConstructorConstantVariables() (contracts/Contract.sol#24-213) uses literals with too many digits:
- MAX_INACTIVE_BLOCKNUMBER = 3000000 (contracts/Contract.sol#29-30)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#too-many-digits
Loop condition i < owners.length (contracts/Contract.sol#133-136) should use cached array length instead of referencing `length` member of the storage array.
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#cache-array-length
OwnbitMultiSig.required (contracts/Contract.sol#35-36) should be immutable
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-immutable
. analyzed (1 contracts with 100 detectors), 8 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.8.0",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.8.0",
"install_stderr": null,
"install_stdout": "Version '0.8.0' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-1amkpmi8 --allow-paths /tmp/slither-1amkpmi8,/tmp/slither-1amkpmi8/lib,/tmp/slither-1amkpmi8/src",
"remappings": [],
"source_files": [
"contracts/Contract.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 8,
"workspace_hash": "c5866a14e1ec055e6f192d75559c23eabfad7df40e71ccc77607dece69a435b7",
"duration_seconds": 0.5256297588348389,
"solc_version_requested": "0.8.17"
}
{"no_findings":false,"summary":"Two issues found: silent failure/nonce consumption on external calls and missing chain-id in signed message domain separation.","findings":[{"severity":"low","category":"other","title":"External call result ignored; nonce advances even on failed transfer","exploit_scenario":"A signed spend can fail (e.g., destination reverts or ERC20 returns false without reverting). The contract still increments spendNonce and may emit Spent, consuming the signed nonce and forcing owners to re-sign; for ERC20s that return false, observers may think the transfer succeeded even though it did not.","recommendation":"Require the call to succeed and validate ERC20 return data when calling token contracts; revert on failure so the nonce is not consumed and no misleading event is emitted.","evidence":"spend() increments spendNonce before executing destination.call and ignores _ret; it does not revert when sent is false.","locations":["contracts/Contract.sol:spend"]},{"severity":"info","category":"auth","title":"Signed message lacks chain-id domain separation","exploit_scenario":"If the multisig is deployed at the same address on another chain (e.g., via CREATE2), a valid signature on one chain can be replayed on the other because the signed digest does not include chain-id.","recommendation":"Include block.chainid in the signed message (or use EIP-712 domain separation) to prevent cross-chain replay.","evidence":"generateMessageToSign hashes address(this), destination, value, data, spendNonce only.","locations":["contracts/Contract.sol:generateMessageToSign"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-3n_y5vof
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0ee4-4a7c-7633-820f-c1696c35d189
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
exec
/bin/bash -lc ls in /tmp/codex-3n_y5vof succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-3n_y5vof succeeded in 5ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/Contract.sol
================================================================================
pragma solidity >=0.8.0 <0.9.0;
// This is the ETH/ERC20/NFT multisig contract for Ownbit.
//
// For 2-of-3 multisig, to authorize a spend, two signtures must be provided by 2 of the 3 owners.
// To generate the message to be signed, provide the destination address and
// spend amount (in wei) to the generateMessageToSign method.
// The signatures must be provided as the (v, r, s) hex-encoded coordinates.
// The S coordinate must be 0x00 or 0x01 corresponding to 0x1b and 0x1c, respectively.
//
// WARNING: The generated message is only valid until the next spend is executed.
// after that, a new message will need to be calculated.
//
//
codex
{"no_findings":false,"summary":"Two issues found: silent failure/nonce consumption on external calls and missing chain-id in signed message domain separation.","findings":[{"severity":"low","category":"other","title":"External call result ignored; nonce advances even on failed transfer","exploit_scenario":"A signed spend can fail (e.g., destination reverts or ERC20 returns false without reverting). The contract still increments spendNonce and may emit Spent, consuming the signed nonce and forcing owners to re-sign; for ERC20s that return false, observers may think the transfer succeeded even though it did not.","recommendation":"Require the call to succeed and validate ERC20 return data when calling token contracts; revert on failure so the nonce is not consumed and no misleading event is emitted.","evidence":"spend() increments spendNonce before executing destination.call and ignores _ret; it does not revert when sent is false.","locations":["contracts/Contract.sol:spend"]},{"severity":"info","category":"auth","title":"Signed message lacks chain-id domain separation","exploit_scenario":"If the multisig is deployed at the same address on another chain (e.g., via CREATE2), a valid signature on one chain can be replayed on the other because the signed digest does not include chain-id.","recommendation":"Include block.chainid in the signed message (or use EIP-712 domain separation) to prevent cross-chain replay.","evidence":"generateMessageToSign hashes address(this), destination, value, data, spendNonce only.","locations":["contracts/Contract.sol:generateMessageToSign"]}]}
tokens used
10,782
{
"codex": {
"ran_at": "2026-01-30T12:34:03.701910+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 1,
"import_count": 0,
"first_party_contracts_count": 1
},
"summary": "Two issues found: silent failure/nonce consumption on external calls and missing chain-id in signed message domain separation.",
"raw_final": {
"summary": "Two issues found: silent failure/nonce consumption on external calls and missing chain-id in signed message domain separation.",
"findings": [
{
"title": "External call result ignored; nonce advances even on failed transfer",
"category": "other",
"evidence": "spend() increments spendNonce before executing destination.call and ignores _ret; it does not revert when sent is false.",
"severity": "low",
"locations": [
"contracts/Contract.sol:spend"
],
"recommendation": "Require the call to succeed and validate ERC20 return data when calling token contracts; revert on failure so the nonce is not consumed and no misleading event is emitted.",
"exploit_scenario": "A signed spend can fail (e.g., destination reverts or ERC20 returns false without reverting). The contract still increments spendNonce and may emit Spent, consuming the signed nonce and forcing owners to re-sign; for ERC20s that return false, observers may think the transfer succeeded even though it did not."
},
{
"title": "Signed message lacks chain-id domain separation",
"category": "auth",
"evidence": "generateMessageToSign hashes address(this), destination, value, data, spendNonce only.",
"severity": "info",
"locations": [
"contracts/Contract.sol:generateMessageToSign"
],
"recommendation": "Include block.chainid in the signed message (or use EIP-712 domain separation) to prevent cross-chain replay.",
"exploit_scenario": "If the multisig is deployed at the same address on another chain (e.g., via CREATE2), a valid signature on one chain can be replayed on the other because the signed digest does not include chain-id."
}
],
"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 0x00a0 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x7c99df4a 00000019: GT 0000001a: PUSH2 0x0064 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0x7c99df4a 00000024: EQ 00000025: PUSH2 0x01c0 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xa0e67e2b 0000002f: EQ 00000030: PUSH2 0x01e9 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xc6a2a9f1 0000003a: EQ 0000003b: PUSH2 0x0214 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xd74f8edd 00000045: EQ 00000046: PUSH2 0x023f 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf23a6e61 00000050: EQ 00000051: PUSH2 0x026a 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf3acb258 0000005b: EQ 0000005c: PUSH2 0x02a7 0000005f: JUMPI 00000060: PUSH2 0x00a1 00000063: JUMP 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0x02fb0c5e 0000006b: EQ 0000006c: PUSH2 0x00e6 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0x1398a5f6 00000076: EQ 00000077: PUSH2 0x00f0 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0x150b7a02 00000081: EQ 00000082: PUSH2 0x011b 00000085: JUMPI 00000086: DUP1 00000087: PUSH4 0x5f43e63f 0000008c: EQ 0000008d: PUSH2 0x0158 00000090: JUMPI 00000091: DUP1 00000092: PUSH4 0x6ad68826 00000097: EQ 00000098: PUSH2 0x0183 0000009b: JUMPI 0000009c: PUSH2 0x00a1 0000009f: JUMP 000000a0: JUMPDEST 000000a1: JUMPDEST 000000a2: PUSH1 0x00 000000a4: CALLVALUE 000000a5: GT 000000a6: ISZERO 000000a7: PUSH2 0x00e4 000000aa: JUMPI 000000ab: PUSH32 0x5af8184bef8e4b45eb9f6ed7734d04da38ced226495548f46e0c8ff8d7d9a524 000000cc: CALLER 000000cd: CALLVALUE 000000ce: PUSH1 0x40 000000d0: MLOAD 000000d1: PUSH2 0x00db 000000d4: SWAP3 000000d5: SWAP2 000000d6: SWAP1 000000d7: PUSH2 0x0d1d 000000da: JUMP 000000db: JUMPDEST 000000dc: PUSH1 0x40 000000de: MLOAD 000000df: DUP1 000000e0: SWAP2 000000e1: SUB 000000e2: SWAP1 000000e3: LOG1 000000e4: JUMPDEST 000000e5: STOP 000000e6: JUMPDEST 000000e7: PUSH2 0x00ee 000000ea: PUSH2 0x02d2 000000ed: JUMP 000000ee: JUMPDEST 000000ef: STOP 000000f0: JUMPDEST 000000f1: CALLVALUE 000000f2: DUP1 000000f3: ISZERO 000000f4: PUSH2 0x00fc 000000f7: JUMPI 000000f8: PUSH1 0x00 000000fa: DUP1 000000fb: REVERT 000000fc: JUMPDEST 000000fd: POP 000000fe: PUSH2 0x0105 00000101: PUSH2 0x0398 00000104: JUMP 00000105: JUMPDEST 00000106: PUSH1 0x40 00000108: MLOAD 00000109: PUSH2 0x0112 0000010c: SWAP2 0000010d: SWAP1 0000010e: PUSH2 0x0d46 00000111: JUMP 00000112: JUMPDEST 00000113: PUSH1 0x40 00000115: MLOAD 00000116: DUP1 00000117: SWAP2 00000118: SUB 00000119: SWAP1 0000011a: RETURN 0000011b: JUMPDEST 0000011c: CALLVALUE 0000011d: DUP1 0000011e: ISZERO 0000011f: PUSH2 0x0127 00000122: JUMPI 00000123: PUSH1 0x00 00000125: DUP1 00000126: REVERT 00000127: JUMPDEST 00000128: POP 00000129: PUSH2 0x0142 0000012c: PUSH1 0x04 0000012e: DUP1 0000012f: CALLDATASIZE 00000130: SUB 00000131: DUP2 00000132: ADD 00000133: SWAP1 00000134: PUSH2 0x013d 00000137: SWAP2 00000138: SWAP1 00000139: PUSH2 0x0e32 0000013c: JUMP 0000013d: JUMPDEST 0000013e: PUSH2 0x03a2 00000141: JUMP 00000142: JUMPDEST 00000143: PUSH1 0x40 00000145: MLOAD 00000146: PUSH2 0x014f 00000149: SWAP2 0000014a: SWAP1 0000014b: PUSH2 0x0ef5 0000014e: JUMP 0000014f: JUMPDEST 00000150: PUSH1 0x40 00000152: MLOAD 00000153: DUP1 00000154: SWAP2 00000155: SUB 00000156: SWAP1 00000157: RETURN 00000158: JUMPDEST 00000159: CALLVALUE 0000015a: DUP1 0000015b: ISZERO 0000015c: PUSH2 0x0164 0000015f: JUMPI 00000160: PUSH1 0x00 00000162: DUP1 00000163: REVERT 00000164: JUMPDEST 00000165: POP 00000166: PUSH2 0x016d 00000169: PUSH2 0x03d0 0000016c: JUMP 0000016d: JUMPDEST 0000016e: PUSH1 0x40 00000170: MLOAD 00000171: PUSH2 0x017a 00000174: SWAP2 00000175: SWAP1 00000176: PUSH2 0x0d46 00000179: JUMP 0000017a: JUMPDEST 0000017b: PUSH1 0x40 0000017d: MLOAD 0000017e: DUP1 0000017f: SWAP2 00000180: SUB 00000181: SWAP1 00000182: RETURN 00000183: JUMPDEST 00000184: CALLVALUE 00000185: DUP1 00000186: ISZERO 00000187: PUSH2 0x018f 0000018a: JUMPI 0000018b: PUSH1 0x00 0000018d: DUP1 0000018e: REVERT 0000018f: JUMPDEST 00000190: POP 00000191: PUSH2 0x01aa 00000194: PUSH1 0x04 00000196: DUP1 00000197: CALLDATASIZE 00000198: SUB 00000199: DUP2 0000019a: ADD 0000019b: SWAP1 0000019c: PUSH2 0x01a5 0000019f: SWAP2 000001a0: SWAP1 000001a1: PUSH2 0x0f10 000001a4: JUMP 000001a5: JUMPDEST 000001a6: PUSH2 0x03d7 000001a9: JUMP 000001aa: JUMPDEST 000001ab: PUSH1 0x40 000001ad: MLOAD 000001ae: PUSH2 0x01b7 000001b1: SWAP2 000001b2: SWAP1 000001b3: PUSH2 0x0d46 000001b6: JUMP 000001b7: JUMPDEST 000001b8: PUSH1 0x40 000001ba: MLOAD 000001bb: DUP1 000001bc: SWAP2 000001bd: SUB 000001be: SWAP1 000001bf: RETURN 000001c0: JUMPDEST 000001c1: CALLVALUE 000001c2: DUP1 000001c3: ISZERO 000001c4: PUSH2 0x01cc 000001c7: JUMPI 000001c8: PUSH1 0x00 000001ca: DUP1 000001cb: REVERT 000001cc: JUMPDEST 000001cd: POP 000001ce: PUSH2 0x01e7 000001d1: PUSH1 0x04 000001d3: DUP1 000001d4: CALLDATASIZE 000001d5: SUB 000001d6: DUP2 000001d7: ADD 000001d8: SWAP1 000001d9: PUSH2 0x01e2 000001dc: SWAP2 000001dd: SWAP1 000001de: PUSH2 0x11be 000001e1: JUMP 000001e2: JUMPDEST 000001e3: PUSH2 0x041f 000001e6: JUMP 000001e7: JUMPDEST 000001e8: STOP 000001e9: JUMPDEST 000001ea: CALLVALUE 000001eb: DUP1 000001ec: ISZERO 000001ed: PUSH2 0x01f5 000001f0: JUMPI 000001f1: PUSH1 0x00 000001f3: DUP1 000001f4: REVERT 000001f5: JUMPDEST 000001f6: POP 000001f7: PUSH2 0x01fe 000001fa: PUSH2 0x05f0 000001fd: JUMP 000001fe: JUMPDEST 000001ff: PUSH1 0x40 00000201: MLOAD 00000202: PUSH2 0x020b 00000205: SWAP2 00000206: SWAP1 00000207: PUSH2 0x137f 0000020a: JUMP 0000020b: JUMPDEST 0000020c: PUSH1 0x40 0000020e: MLOAD 0000020f: DUP1 00000210: SWAP2 00000211: SUB 00000212: SWAP1 00000213: RETURN 00000214: JUMPDEST 00000215: CALLVALUE 00000216: DUP1 00000217: ISZERO 00000218: PUSH2 0x0220 0000021b: JUMPI 0000021c: PUSH1 0x00 0000021e: DUP1 0000021f: REVERT 00000220: JUMPDEST 00000221: POP 00000222: PUSH2 0x0229 00000225: PUSH2 0x067e 00000228: JUMP 00000229: JUMPDEST 0000022a: PUSH1 0x40 0000022c: MLOAD 0000022d: PUSH2 0x0236 00000230: SWAP2 00000231: SWAP1 00000232: PUSH2 0x0d46 00000235: JUMP 00000236: JUMPDEST 00000237: PUSH1 0x40 00000239: MLOAD 0000023a: DUP1 0000023b: SWAP2 0000023c: SUB 0000023d: SWAP1 0000023e: RETURN 0000023f: JUMPDEST 00000240: CALLVALUE 00000241: DUP1 00000242: ISZERO 00000243: PUSH2 0x024b 00000246: JUMPI 00000247: PUSH1 0x00 00000249: DUP1 0000024a: REVERT 0000024b: JUMPDEST 0000024c: POP 0000024d: PUSH2 0x0254 00000250: PUSH2 0x0688 00000253: JUMP 00000254: JUMPDEST 00000255: PUSH1 0x40 00000257: MLOAD 00000258: PUSH2 0x0261 0000025b: SWAP2 0000025c: SWAP1 0000025d: PUSH2 0x0d46 00000260: JUMP 00000261: JUMPDEST 00000262: PUSH1 0x40 00000264: MLOAD 00000265: DUP1 00000266: SWAP2 00000267: SUB 00000268: SWAP1 00000269: RETURN 0000026a: JUMPDEST 0000026b: CALLVALUE 0000026c: DUP1 0000026d: ISZERO 0000026e: PUSH2 0x0276 00000271: JUMPI 00000272: PUSH1 0x00 00000274: DUP1 00000275: REVERT 00000276: JUMPDEST 00000277: POP 00000278: PUSH2 0x0291 0000027b: PUSH1 0x04 0000027d: DUP1 0000027e: CALLDATASIZE 0000027f: SUB 00000280: DUP2 00000281: ADD 00000282: SWAP1 00000283: PUSH2 0x028c 00000286: SWAP2 00000287: SWAP1 00000288: PUSH2 0x13a1 0000028b: JUMP 0000028c: JUMPDEST 0000028d: PUSH2 0x068d 00000290: JUMP 00000291: JUMPDEST 00000292: PUSH1 0x40 00000294: MLOAD 00000295: PUSH2 0x029e 00000298: SWAP2 00000299: SWAP1 0000029a: PUSH2 0x0ef5 0000029d: JUMP 0000029e: JUMPDEST 0000029f: PUSH1 0x40 000002a1: MLOAD 000002a2: DUP1 000002a3: SWAP2 000002a4: SUB 000002a5: SWAP1 000002a6: RETURN 000002a7: JUMPDEST 000002a8: CALLVALUE 000002a9: DUP1 000002aa: ISZERO 000002ab: PUSH2 0x02b3 000002ae: JUMPI 000002af: PUSH1 0x00 000002b1: DUP1 000002b2: REVERT 000002b3: JUMPDEST 000002b4: POP 000002b5: PUSH2 0x02bc 000002b8: PUSH2 0x06bc 000002bb: JUMP 000002bc: JUMPDEST 000002bd: PUSH1 0x40 000002bf: MLOAD 000002c0: PUSH2 0x02c9 000002c3: SWAP2 000002c4: SWAP1 000002c5: PUSH2 0x0d46 000002c8: JUMP 000002c9: JUMPDEST 000002ca: PUSH1 0x40 000002cc: MLOAD 000002cd: DUP1 000002ce: SWAP2 000002cf: SUB 000002d0: SWAP1 000002d1: RETURN 000002d2: JUMPDEST 000002d3: PUSH1 0x00 000002d5: DUP1 000002d6: PUSH1 0x00 000002d8: CALLER 000002d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002ee: AND 000002ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000304: AND 00000305: DUP2 00000306: MSTORE 00000307: PUSH1 0x20 00000309: ADD 0000030a: SWAP1 0000030b: DUP2 0000030c: MSTORE 0000030d: PUSH1 0x20 0000030f: ADD 00000310: PUSH1 0x00 00000312: KECCAK256 00000313: SLOAD 00000314: GT 00000315: PUSH2 0x0353 00000318: JUMPI 00000319: PUSH1 0x40 0000031b: MLOAD 0000031c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000033d: DUP2 0000033e: MSTORE 0000033f: PUSH1 0x04 00000341: ADD 00000342: PUSH2 0x034a 00000345: SWAP1 00000346: PUSH2 0x1498 00000349: JUMP 0000034a: JUMPDEST 0000034b: PUSH1 0x40 0000034d: MLOAD 0000034e: DUP1 0000034f: SWAP2 00000350: SUB 00000351: SWAP1 00000352: REVERT 00000353: JUMPDEST 00000354: NUMBER 00000355: PUSH1 0x00 00000357: DUP1 00000358: CALLER 00000359: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000036e: AND 0000036f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000384: AND 00000385: DUP2 00000386: MSTORE 00000387: PUSH1 0x20 00000389: ADD 0000038a: SWAP1 0000038b: DUP2 0000038c: MSTORE 0000038d: PUSH1 0x20 0000038f: ADD 00000390: PUSH1 0x00 00000392: KECCAK256 00000393: DUP2 00000394: SWAP1 00000395: SSTORE 00000396: POP 00000397: JUMP 00000398: JUMPDEST 00000399: PUSH1 0x00 0000039b: PUSH1 0x02 0000039d: SLOAD 0000039e: SWAP1 0000039f: POP 000003a0: SWAP1 000003a1: JUMP 000003a2: JUMPDEST 000003a3: PUSH1 0x00 000003a5: PUSH32 0x150b7a023d4804d13e8c85fb27262cb750cf6ba9f9dd3bb30d90f482ceeb4b1f 000003c6: SWAP1 000003c7: POP 000003c8: SWAP6 000003c9: SWAP5 000003ca: POP 000003cb: POP 000003cc: POP 000003cd: POP 000003ce: POP 000003cf: JUMP 000003d0: JUMPDEST 000003d1: PUSH3 0x2dc6c0 000003d5: DUP2 000003d6: JUMP 000003d7: JUMPDEST 000003d8: PUSH1 0x00 000003da: DUP1 000003db: PUSH1 0x00 000003dd: DUP4 000003de: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003f3: AND 000003f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000409: AND 0000040a: DUP2 0000040b: MSTORE 0000040c: PUSH1 0x20 0000040e: ADD 0000040f: SWAP1 00000410: DUP2 00000411: MSTORE 00000412: PUSH1 0x20 00000414: ADD 00000415: PUSH1 0x00 00000417: KECCAK256 00000418: SLOAD 00000419: SWAP1 0000041a: POP 0000041b: SWAP2 0000041c: SWAP1 0000041d: POP 0000041e: JUMP 0000041f: JUMPDEST 00000420: ADDRESS 00000421: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000436: AND 00000437: DUP8 00000438: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000044d: AND 0000044e: SUB 0000044f: PUSH2 0x048d 00000452: JUMPI 00000453: PUSH1 0x40 00000455: MLOAD 00000456: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000477: DUP2 00000478: MSTORE 00000479: PUSH1 0x04 0000047b: ADD 0000047c: PUSH2 0x0484 0000047f: SWAP1 00000480: PUSH2 0x1504 00000483: JUMP 00000484: JUMPDEST 00000485: PUSH1 0x40 00000487: MLOAD 00000488: DUP1 00000489: SWAP2 0000048a: SUB 0000048b: SWAP1 0000048c: REVERT 0000048d: JUMPDEST 0000048e: PUSH2 0x04df 00000491: DUP8 00000492: DUP8 00000493: DUP8 00000494: DUP8 00000495: DUP8 00000496: DUP8 00000497: DUP8 00000498: DUP1 00000499: DUP1 0000049a: PUSH1 0x1f 0000049c: ADD 0000049d: PUSH1 0x20 0000049f: DUP1 000004a0: SWAP2 000004a1: DIV 000004a2: MUL 000004a3: PUSH1 0x20 000004a5: ADD 000004a6: PUSH1 0x40 000004a8: MLOAD 000004a9: SWAP1 000004aa: DUP2 000004ab: ADD 000004ac: PUSH1 0x40 000004ae: MSTORE 000004af: DUP1 000004b0: SWAP4 000004b1: SWAP3 000004b2: SWAP2 000004b3: SWAP1 000004b4: DUP2 000004b5: DUP2 000004b6: MSTORE 000004b7: PUSH1 0x20 000004b9: ADD 000004ba: DUP4 000004bb: DUP4 000004bc: DUP1 000004bd: DUP3 000004be: DUP5 000004bf: CALLDATACOPY 000004c0: PUSH1 0x00 000004c2: DUP2 000004c3: DUP5 000004c4: ADD 000004c5: MSTORE 000004c6: PUSH1 0x1f 000004c8: NOT 000004c9: PUSH1 0x1f 000004cb: DUP3 000004cc: ADD 000004cd: AND 000004ce: SWAP1 000004cf: POP 000004d0: DUP1 000004d1: DUP4 000004d2: ADD 000004d3: SWAP3 000004d4: POP 000004d5: POP 000004d6: POP 000004d7: POP 000004d8: POP 000004d9: POP 000004da: POP 000004db: PUSH2 0x07b5 000004de: JUMP 000004df: JUMPDEST 000004e0: PUSH2 0x051e 000004e3: JUMPI 000004e4: PUSH1 0x40 000004e6: MLOAD 000004e7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000508: DUP2 00000509: MSTORE 0000050a: PUSH1 0x04 0000050c: ADD 0000050d: PUSH2 0x0515 00000510: SWAP1 00000511: PUSH2 0x1570 00000514: JUMP 00000515: JUMPDEST 00000516: PUSH1 0x40 00000518: MLOAD 00000519: DUP1 0000051a: SWAP2 0000051b: SUB 0000051c: SWAP1 0000051d: REVERT 0000051e: JUMPDEST 0000051f: PUSH1 0x01 00000521: PUSH1 0x03 00000523: SLOAD 00000524: PUSH2 0x052d 00000527: SWAP2 00000528: SWAP1 00000529: PUSH2 0x15bf 0000052c: JUMP 0000052d: JUMPDEST 0000052e: PUSH1 0x03 00000530: DUP2 00000531: SWAP1 00000532: SSTORE 00000533: POP 00000534: PUSH1 0x00 00000536: DUP1 00000537: DUP9 00000538: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000054d: AND 0000054e: DUP9 0000054f: DUP6 00000550: DUP6 00000551: PUSH1 0x40 00000553: MLOAD 00000554: PUSH2 0x055e 00000557: SWAP3 00000558: SWAP2 00000559: SWAP1 0000055a: PUSH2 0x1632 0000055d: JUMP 0000055e: JUMPDEST 0000055f: PUSH1 0x00 00000561: PUSH1 0x40 00000563: MLOAD 00000564: DUP1 00000565: DUP4 00000566: SUB 00000567: DUP2 00000568: DUP6 00000569: DUP8 0000056a: GAS 0000056b: CALL 0000056c: SWAP3 0000056d: POP 0000056e: POP 0000056f: POP 00000570: RETURNDATASIZE 00000571: DUP1 00000572: PUSH1 0x00 00000574: DUP2 00000575: EQ 00000576: PUSH2 0x059b 00000579: JUMPI 0000057a: PUSH1 0x40 0000057c: MLOAD 0000057d: SWAP2 0000057e: POP 0000057f: PUSH1 0x1f 00000581: NOT 00000582: PUSH1 0x3f 00000584: RETURNDATASIZE 00000585: ADD 00000586: AND 00000587: DUP3 00000588: ADD 00000589: PUSH1 0x40 0000058b: MSTORE 0000058c: RETURNDATASIZE 0000058d: DUP3 0000058e: MSTORE 0000058f: RETURNDATASIZE 00000590: PUSH1 0x00 00000592: PUSH1 0x20 00000594: DUP5 00000595: ADD 00000596: RETURNDATACOPY 00000597: PUSH2 0x05a0 0000059a: JUMP 0000059b: JUMPDEST 0000059c: PUSH1 0x60 0000059e: SWAP2 0000059f: POP 000005a0: JUMPDEST 000005a1: POP 000005a2: SWAP2 000005a3: POP 000005a4: SWAP2 000005a5: POP 000005a6: DUP2 000005a7: ISZERO 000005a8: PUSH2 0x05e5 000005ab: JUMPI 000005ac: PUSH32 0xd3eec71143c45f28685b24760ea218d476917aa0ac0392a55e5304cef40bd2b6 000005cd: DUP10 000005ce: DUP10 000005cf: PUSH1 0x40 000005d1: MLOAD 000005d2: PUSH2 0x05dc 000005d5: SWAP3 000005d6: SWAP2 000005d7: SWAP1 000005d8: PUSH2 0x0d1d 000005db: JUMP 000005dc: JUMPDEST 000005dd: PUSH1 0x40 000005df: MLOAD 000005e0: DUP1 000005e1: SWAP2 000005e2: SUB 000005e3: SWAP1 000005e4: LOG1 000005e5: JUMPDEST 000005e6: POP 000005e7: POP 000005e8: POP 000005e9: POP 000005ea: POP 000005eb: POP 000005ec: POP 000005ed: POP 000005ee: POP 000005ef: JUMP 000005f0: JUMPDEST 000005f1: PUSH1 0x60 000005f3: PUSH1 0x01 000005f5: DUP1 000005f6: SLOAD 000005f7: DUP1 000005f8: PUSH1 0x20 000005fa: MUL 000005fb: PUSH1 0x20 000005fd: ADD 000005fe: PUSH1 0x40 00000600: MLOAD 00000601: SWAP1 00000602: DUP2 00000603: ADD 00000604: PUSH1 0x40 00000606: MSTORE 00000607: DUP1 00000608: SWAP3 00000609: SWAP2 0000060a: SWAP1 0000060b: DUP2 0000060c: DUP2 0000060d: MSTORE 0000060e: PUSH1 0x20 00000610: ADD 00000611: DUP3 00000612: DUP1 00000613: SLOAD 00000614: DUP1 00000615: ISZERO 00000616: PUSH2 0x0674 00000619: JUMPI 0000061a: PUSH1 0x20 0000061c: MUL 0000061d: DUP3 0000061e: ADD 0000061f: SWAP2 00000620: SWAP1 00000621: PUSH1 0x00 00000623: MSTORE 00000624: PUSH1 0x20 00000626: PUSH1 0x00 00000628: KECCAK256 00000629: SWAP1 0000062a: JUMPDEST 0000062b: DUP2 0000062c: PUSH1 0x00 0000062e: SWAP1 0000062f: SLOAD 00000630: SWAP1 00000631: PUSH2 0x0100 00000634: EXP 00000635: SWAP1 00000636: DIV 00000637: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000064c: AND 0000064d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000662: AND 00000663: DUP2 00000664: MSTORE 00000665: PUSH1 0x20 00000667: ADD 00000668: SWAP1 00000669: PUSH1 0x01 0000066b: ADD 0000066c: SWAP1 0000066d: DUP1 0000066e: DUP4 0000066f: GT 00000670: PUSH2 0x062a 00000673: JUMPI 00000674: JUMPDEST 00000675: POP 00000676: POP 00000677: POP 00000678: POP 00000679: POP 0000067a: SWAP1 0000067b: POP 0000067c: SWAP1 0000067d: JUMP 0000067e: JUMPDEST 0000067f: PUSH1 0x00 00000681: PUSH1 0x03 00000683: SLOAD 00000684: SWAP1 00000685: POP 00000686: SWAP1 00000687: JUMP 00000688: JUMPDEST 00000689: PUSH1 0x09 0000068b: DUP2 0000068c: JUMP 0000068d: JUMPDEST 0000068e: PUSH1 0x00 00000690: PUSH32 0xf23a6e612e1ff4830e658fe43f4e3cb4a5f8170bd5d9e69fb5d7a7fa9e4fdf97 000006b1: SWAP1 000006b2: POP 000006b3: SWAP7 000006b4: SWAP6 000006b5: POP 000006b6: POP 000006b7: POP 000006b8: POP 000006b9: POP 000006ba: POP 000006bb: JUMP 000006bc: JUMPDEST 000006bd: PUSH1 0x00 000006bf: DUP1 000006c0: PUSH1 0x00 000006c2: SWAP1 000006c3: POP 000006c4: PUSH1 0x00 000006c6: JUMPDEST 000006c7: PUSH1 0x01 000006c9: DUP1 000006ca: SLOAD 000006cb: SWAP1 000006cc: POP 000006cd: DUP2 000006ce: LT 000006cf: ISZERO 000006d0: PUSH2 0x0786 000006d3: JUMPI 000006d4: NUMBER 000006d5: PUSH3 0x2dc6c0 000006d9: PUSH1 0x00 000006db: DUP1 000006dc: PUSH1 0x01 000006de: DUP6 000006df: DUP2 000006e0: SLOAD 000006e1: DUP2 000006e2: LT 000006e3: PUSH2 0x06ef 000006e6: JUMPI 000006e7: PUSH2 0x06ee 000006ea: PUSH2 0x164b 000006ed: JUMP 000006ee: JUMPDEST 000006ef: JUMPDEST 000006f0: SWAP1 000006f1: PUSH1 0x00 000006f3: MSTORE 000006f4: PUSH1 0x20 000006f6: PUSH1 0x00 000006f8: KECCAK256 000006f9: ADD 000006fa: PUSH1 0x00 000006fc: SWAP1 000006fd: SLOAD 000006fe: SWAP1 000006ff: PUSH2 0x0100 00000702: EXP 00000703: SWAP1 00000704: DIV 00000705: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000071a: AND 0000071b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000730: AND 00000731: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000746: AND 00000747: DUP2 00000748: MSTORE 00000749: PUSH1 0x20 0000074b: ADD 0000074c: SWAP1 0000074d: DUP2 0000074e: MSTORE 0000074f: PUSH1 0x20 00000751: ADD 00000752: PUSH1 0x00 00000754: KECCAK256 00000755: SLOAD 00000756: PUSH2 0x075f 00000759: SWAP2 0000075a: SWAP1 0000075b: PUSH2 0x15bf 0000075e: JUMP 0000075f: JUMPDEST 00000760: LT 00000761: PUSH2 0x0773 00000764: JUMPI 00000765: DUP2 00000766: DUP1 00000767: PUSH2 0x076f 0000076a: SWAP1 0000076b: PUSH2 0x167a 0000076e: JUMP 0000076f: JUMPDEST 00000770: SWAP3 00000771: POP 00000772: POP 00000773: JUMPDEST 00000774: DUP1 00000775: DUP1 00000776: PUSH2 0x077e 00000779: SWAP1 0000077a: PUSH2 0x167a 0000077d: JUMP 0000077e: JUMPDEST 0000077f: SWAP2 00000780: POP 00000781: POP 00000782: PUSH2 0x06c6 00000785: JUMP 00000786: JUMPDEST 00000787: POP 00000788: PUSH1 0x02 0000078a: SLOAD 0000078b: DUP2 0000078c: LT 0000078d: PUSH2 0x079b 00000790: JUMPI 00000791: PUSH1 0x02 00000793: SLOAD 00000794: SWAP2 00000795: POP 00000796: POP 00000797: PUSH2 0x07b2 0000079a: JUMP 0000079b: JUMPDEST 0000079c: PUSH1 0x01 0000079e: DUP2 0000079f: LT 000007a0: PUSH2 0x07ac 000007a3: JUMPI 000007a4: DUP1 000007a5: SWAP2 000007a6: POP 000007a7: POP 000007a8: PUSH2 0x07b2 000007ab: JUMP 000007ac: JUMPDEST 000007ad: PUSH1 0x01 000007af: SWAP2 000007b0: POP 000007b1: POP 000007b2: JUMPDEST 000007b3: SWAP1 000007b4: JUMP 000007b5: JUMPDEST 000007b6: PUSH1 0x00 000007b8: DUP4 000007b9: MLOAD 000007ba: DUP6 000007bb: MLOAD 000007bc: EQ 000007bd: PUSH2 0x07c5 000007c0: JUMPI 000007c1: PUSH1 0x00 000007c3: DUP1 000007c4: REVERT 000007c5: JUMPDEST 000007c6: DUP3 000007c7: MLOAD 000007c8: DUP5 000007c9: MLOAD 000007ca: EQ 000007cb: PUSH2 0x07d3 000007ce: JUMPI 000007cf: PUSH1 0x00 000007d1: DUP1 000007d2: REVERT 000007d3: JUMPDEST 000007d4: PUSH1 0x01 000007d6: DUP1 000007d7: SLOAD 000007d8: SWAP1 000007d9: POP 000007da: DUP6 000007db: MLOAD 000007dc: GT 000007dd: ISZERO 000007de: PUSH2 0x07e6 000007e1: JUMPI 000007e2: PUSH1 0x00 000007e4: DUP1 000007e5: REVERT 000007e6: JUMPDEST 000007e7: PUSH2 0x07ee 000007ea: PUSH2 0x06bc 000007ed: JUMP 000007ee: JUMPDEST 000007ef: DUP6 000007f0: MLOAD 000007f1: LT 000007f2: ISZERO 000007f3: PUSH2 0x07fb 000007f6: JUMPI 000007f7: PUSH1 0x00 000007f9: DUP1 000007fa: REVERT 000007fb: JUMPDEST 000007fc: PUSH1 0x00 000007fe: PUSH2 0x0808 00000801: DUP9 00000802: DUP9 00000803: DUP6 00000804: PUSH2 0x09e4 00000807: JUMP 00000808: JUMPDEST 00000809: SWAP1 0000080a: POP 0000080b: PUSH1 0x00 0000080d: DUP7 0000080e: MLOAD 0000080f: PUSH8 0xffffffffffffffff 00000818: DUP2 00000819: GT 0000081a: ISZERO 0000081b: PUSH2 0x0827 0000081e: JUMPI 0000081f: PUSH2 0x0826 00000822: PUSH2 0x0f4e 00000825: JUMP 00000826: JUMPDEST 00000827: JUMPDEST 00000828: PUSH1 0x40 0000082a: MLOAD 0000082b: SWAP1 0000082c: DUP1 0000082d: DUP3 0000082e: MSTORE 0000082f: DUP1 00000830: PUSH1 0x20 00000832: MUL 00000833: PUSH1 0x20 00000835: ADD 00000836: DUP3 00000837: ADD 00000838: PUSH1 0x40 0000083a: MSTORE 0000083b: DUP1 0000083c: ISZERO 0000083d: PUSH2 0x0855 00000840: JUMPI 00000841: DUP2 00000842: PUSH1 0x20 00000844: ADD 00000845: PUSH1 0x20 00000847: DUP3 00000848: MUL 00000849: DUP1 0000084a: CALLDATASIZE 0000084b: DUP4 0000084c: CALLDATACOPY 0000084d: DUP1 0000084e: DUP3 0000084f: ADD 00000850: SWAP2 00000851: POP 00000852: POP 00000853: SWAP1 00000854: POP 00000855: JUMPDEST 00000856: POP 00000857: SWAP1 00000858: POP 00000859: PUSH1 0x00 0000085b: JUMPDEST 0000085c: DUP8 0000085d: MLOAD 0000085e: DUP2 0000085f: LT 00000860: ISZERO 00000861: PUSH2 0x096d 00000864: JUMPI 00000865: PUSH1 0x01 00000867: DUP4 00000868: PUSH1 0x1b 0000086a: DUP11 0000086b: DUP5 0000086c: DUP2 0000086d: MLOAD 0000086e: DUP2 0000086f: LT 00000870: PUSH2 0x087c 00000873: JUMPI 00000874: PUSH2 0x087b 00000877: PUSH2 0x164b 0000087a: JUMP 0000087b: JUMPDEST 0000087c: JUMPDEST 0000087d: PUSH1 0x20 0000087f: MUL 00000880: PUSH1 0x20 00000882: ADD 00000883: ADD 00000884: MLOAD 00000885: PUSH2 0x088e 00000888: SWAP2 00000889: SWAP1 0000088a: PUSH2 0x16c2 0000088d: JUMP 0000088e: JUMPDEST 0000088f: DUP10 00000890: DUP5 00000891: DUP2 00000892: MLOAD 00000893: DUP2 00000894: LT 00000895: PUSH2 0x08a1 00000898: JUMPI 00000899: PUSH2 0x08a0 0000089c: PUSH2 0x164b 0000089f: JUMP 000008a0: JUMPDEST 000008a1: JUMPDEST 000008a2: PUSH1 0x20 000008a4: MUL 000008a5: PUSH1 0x20 000008a7: ADD 000008a8: ADD 000008a9: MLOAD 000008aa: DUP10 000008ab: DUP6 000008ac: DUP2 000008ad: MLOAD 000008ae: DUP2 000008af: LT 000008b0: PUSH2 0x08bc 000008b3: JUMPI 000008b4: PUSH2 0x08bb 000008b7: PUSH2 0x164b 000008ba: JUMP 000008bb: JUMPDEST 000008bc: JUMPDEST 000008bd: PUSH1 0x20 000008bf: MUL 000008c0: PUSH1 0x20 000008c2: ADD 000008c3: ADD 000008c4: MLOAD 000008c5: PUSH1 0x40 000008c7: MLOAD 000008c8: PUSH1 0x00 000008ca: DUP2 000008cb: MSTORE 000008cc: PUSH1 0x20 000008ce: ADD 000008cf: PUSH1 0x40 000008d1: MSTORE 000008d2: PUSH1 0x40 000008d4: MLOAD 000008d5: PUSH2 0x08e1 000008d8: SWAP5 000008d9: SWAP4 000008da: SWAP3 000008db: SWAP2 000008dc: SWAP1 000008dd: PUSH2 0x1715 000008e0: JUMP 000008e1: JUMPDEST 000008e2: PUSH1 0x20 000008e4: PUSH1 0x40 000008e6: MLOAD 000008e7: PUSH1 0x20 000008e9: DUP2 000008ea: SUB 000008eb: SWAP1 000008ec: DUP1 000008ed: DUP5 000008ee: SUB 000008ef: SWAP1 000008f0: DUP6 000008f1: GAS 000008f2: STATICCALL 000008f3: ISZERO 000008f4: DUP1 000008f5: ISZERO 000008f6: PUSH2 0x0903 000008f9: JUMPI 000008fa: RETURNDATASIZE 000008fb: PUSH1 0x00 000008fd: DUP1 000008fe: RETURNDATACOPY 000008ff: RETURNDATASIZE 00000900: PUSH1 0x00 00000902: REVERT 00000903: JUMPDEST 00000904: POP 00000905: POP 00000906: POP 00000907: PUSH1 0x20 00000909: PUSH1 0x40 0000090b: MLOAD 0000090c: SUB 0000090d: MLOAD 0000090e: DUP3 0000090f: DUP3 00000910: DUP2 00000911: MLOAD 00000912: DUP2 00000913: LT 00000914: PUSH2 0x0920 00000917: JUMPI 00000918: PUSH2 0x091f 0000091b: PUSH2 0x164b 0000091e: JUMP 0000091f: JUMPDEST 00000920: JUMPDEST 00000921: PUSH1 0x20 00000923: MUL 00000924: PUSH1 0x20 00000926: ADD 00000927: ADD 00000928: SWAP1 00000929: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000093e: AND 0000093f: SWAP1 00000940: DUP2 00000941: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000956: AND 00000957: DUP2 00000958: MSTORE 00000959: POP 0000095a: POP 0000095b: DUP1 0000095c: DUP1 0000095d: PUSH2 0x0965 00000960: SWAP1 00000961: PUSH2 0x167a 00000964: JUMP 00000965: JUMPDEST 00000966: SWAP2 00000967: POP 00000968: POP 00000969: PUSH2 0x085b 0000096c: JUMP 0000096d: JUMPDEST 0000096e: POP 0000096f: PUSH2 0x0977 00000972: DUP2 00000973: PUSH2 0x0a62 00000976: JUMP 00000977: JUMPDEST 00000978: PUSH2 0x0980 0000097b: JUMPI 0000097c: PUSH1 0x00 0000097e: DUP1 0000097f: REVERT 00000980: JUMPDEST 00000981: PUSH2 0x0989 00000984: DUP2 00000985: PUSH2 0x0ba0 00000988: JUMP 00000989: JUMPDEST 0000098a: PUSH2 0x0991 0000098d: PUSH2 0x06bc 00000990: JUMP 00000991: JUMPDEST 00000992: DUP8 00000993: MLOAD 00000994: LT 00000995: ISZERO 00000996: PUSH2 0x09d4 00000999: JUMPI 0000099a: PUSH1 0x40 0000099c: MLOAD 0000099d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000009be: DUP2 000009bf: MSTORE 000009c0: PUSH1 0x04 000009c2: ADD 000009c3: PUSH2 0x09cb 000009c6: SWAP1 000009c7: PUSH2 0x17f2 000009ca: JUMP 000009cb: JUMPDEST 000009cc: PUSH1 0x40 000009ce: MLOAD 000009cf: DUP1 000009d0: SWAP2 000009d1: SUB 000009d2: SWAP1 000009d3: REVERT 000009d4: JUMPDEST 000009d5: PUSH1 0x01 000009d7: SWAP3 000009d8: POP 000009d9: POP 000009da: POP 000009db: SWAP7 000009dc: SWAP6 000009dd: POP 000009de: POP 000009df: POP 000009e0: POP 000009e1: POP 000009e2: POP 000009e3: JUMP 000009e4: JUMPDEST 000009e5: PUSH1 0x00 000009e7: DUP1 000009e8: PUSH2 0x09f2 000009eb: DUP6 000009ec: DUP6 000009ed: DUP6 000009ee: PUSH2 0x0c82 000009f1: JUMP 000009f2: JUMPDEST 000009f3: SWAP1 000009f4: POP 000009f5: PUSH1 0x00 000009f7: PUSH1 0x40 000009f9: MLOAD 000009fa: DUP1 000009fb: PUSH1 0x40 000009fd: ADD 000009fe: PUSH1 0x40 00000a00: MSTORE 00000a01: DUP1 00000a02: PUSH1 0x1c 00000a04: DUP2 00000a05: MSTORE 00000a06: PUSH1 0x20 00000a08: ADD 00000a09: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00000a2a: DUP2 00000a2b: MSTORE 00000a2c: POP 00000a2d: SWAP1 00000a2e: POP 00000a2f: DUP1 00000a30: DUP3 00000a31: PUSH1 0x40 00000a33: MLOAD 00000a34: PUSH1 0x20 00000a36: ADD 00000a37: PUSH2 0x0a41 00000a3a: SWAP3 00000a3b: SWAP2 00000a3c: SWAP1 00000a3d: PUSH2 0x1899 00000a40: JUMP 00000a41: JUMPDEST 00000a42: PUSH1 0x40 00000a44: MLOAD 00000a45: PUSH1 0x20 00000a47: DUP2 00000a48: DUP4 00000a49: SUB 00000a4a: SUB 00000a4b: DUP2 00000a4c: MSTORE 00000a4d: SWAP1 00000a4e: PUSH1 0x40 00000a50: MSTORE 00000a51: DUP1 00000a52: MLOAD 00000a53: SWAP1 00000a54: PUSH1 0x20 00000a56: ADD 00000a57: KECCAK256 00000a58: SWAP3 00000a59: POP 00000a5a: POP 00000a5b: POP 00000a5c: SWAP4 00000a5d: SWAP3 00000a5e: POP 00000a5f: POP 00000a60: POP 00000a61: JUMP 00000a62: JUMPDEST 00000a63: PUSH1 0x00 00000a65: PUSH1 0x01 00000a67: DUP1 00000a68: SLOAD 00000a69: SWAP1 00000a6a: POP 00000a6b: DUP3 00000a6c: MLOAD 00000a6d: GT 00000a6e: ISZERO 00000a6f: PUSH2 0x0a7b 00000a72: JUMPI 00000a73: PUSH1 0x00 00000a75: SWAP1 00000a76: POP 00000a77: PUSH2 0x0b9b 00000a7a: JUMP 00000a7b: JUMPDEST 00000a7c: PUSH1 0x00 00000a7e: JUMPDEST 00000a7f: DUP3 00000a80: MLOAD 00000a81: DUP2 00000a82: LT 00000a83: ISZERO 00000a84: PUSH2 0x0b95 00000a87: JUMPI 00000a88: PUSH1 0x00 00000a8a: DUP1 00000a8b: PUSH1 0x00 00000a8d: DUP6 00000a8e: DUP5 00000a8f: DUP2 00000a90: MLOAD 00000a91: DUP2 00000a92: LT 00000a93: PUSH2 0x0a9f 00000a96: JUMPI 00000a97: PUSH2 0x0a9e 00000a9a: PUSH2 0x164b 00000a9d: JUMP 00000a9e: JUMPDEST 00000a9f: JUMPDEST 00000aa0: PUSH1 0x20 00000aa2: MUL 00000aa3: PUSH1 0x20 00000aa5: ADD 00000aa6: ADD 00000aa7: MLOAD 00000aa8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000abd: AND 00000abe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ad3: AND 00000ad4: DUP2 00000ad5: MSTORE 00000ad6: PUSH1 0x20 00000ad8: ADD 00000ad9: SWAP1 00000ada: DUP2 00000adb: MSTORE 00000adc: PUSH1 0x20 00000ade: ADD 00000adf: PUSH1 0x00 00000ae1: KECCAK256 00000ae2: SLOAD 00000ae3: SUB 00000ae4: PUSH2 0x0af1 00000ae7: JUMPI 00000ae8: PUSH1 0x00 00000aea: SWAP2 00000aeb: POP 00000aec: POP 00000aed: PUSH2 0x0b9b 00000af0: JUMP 00000af1: JUMPDEST 00000af2: PUSH1 0x00 00000af4: JUMPDEST 00000af5: DUP2 00000af6: DUP2 00000af7: LT 00000af8: ISZERO 00000af9: PUSH2 0x0b81 00000afc: JUMPI 00000afd: DUP4 00000afe: DUP2 00000aff: DUP2 00000b00: MLOAD 00000b01: DUP2 00000b02: LT 00000b03: PUSH2 0x0b0f 00000b06: JUMPI 00000b07: PUSH2 0x0b0e 00000b0a: PUSH2 0x164b 00000b0d: JUMP 00000b0e: JUMPDEST 00000b0f: JUMPDEST 00000b10: PUSH1 0x20 00000b12: MUL 00000b13: PUSH1 0x20 00000b15: ADD 00000b16: ADD 00000b17: MLOAD 00000b18: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b2d: AND 00000b2e: DUP5 00000b2f: DUP4 00000b30: DUP2 00000b31: MLOAD 00000b32: DUP2 00000b33: LT 00000b34: PUSH2 0x0b40 00000b37: JUMPI 00000b38: PUSH2 0x0b3f 00000b3b: PUSH2 0x164b 00000b3e: JUMP 00000b3f: JUMPDEST 00000b40: JUMPDEST 00000b41: PUSH1 0x20 00000b43: MUL 00000b44: PUSH1 0x20 00000b46: ADD 00000b47: ADD 00000b48: MLOAD 00000b49: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b5e: AND 00000b5f: SUB 00000b60: PUSH2 0x0b6e 00000b63: JUMPI 00000b64: PUSH1 0x00 00000b66: SWAP3 00000b67: POP 00000b68: POP 00000b69: POP 00000b6a: PUSH2 0x0b9b 00000b6d: JUMP 00000b6e: JUMPDEST 00000b6f: DUP1 00000b70: DUP1 00000b71: PUSH2 0x0b79 00000b74: SWAP1 00000b75: PUSH2 0x167a 00000b78: JUMP 00000b79: JUMPDEST 00000b7a: SWAP2 00000b7b: POP 00000b7c: POP 00000b7d: PUSH2 0x0af4 00000b80: JUMP 00000b81: JUMPDEST 00000b82: POP 00000b83: DUP1 00000b84: DUP1 00000b85: PUSH2 0x0b8d 00000b88: SWAP1 00000b89: PUSH2 0x167a 00000b8c: JUMP 00000b8d: JUMPDEST 00000b8e: SWAP2 00000b8f: POP 00000b90: POP 00000b91: PUSH2 0x0a7e 00000b94: JUMP 00000b95: JUMPDEST 00000b96: POP 00000b97: PUSH1 0x01 00000b99: SWAP1 00000b9a: POP 00000b9b: JUMPDEST 00000b9c: SWAP2 00000b9d: SWAP1 00000b9e: POP 00000b9f: JUMP 00000ba0: JUMPDEST 00000ba1: PUSH1 0x00 00000ba3: JUMPDEST 00000ba4: DUP2 00000ba5: MLOAD 00000ba6: DUP2 00000ba7: LT 00000ba8: ISZERO 00000ba9: PUSH2 0x0c7e 00000bac: JUMPI 00000bad: PUSH1 0x00 00000baf: DUP1 00000bb0: PUSH1 0x00 00000bb2: DUP5 00000bb3: DUP5 00000bb4: DUP2 00000bb5: MLOAD 00000bb6: DUP2 00000bb7: LT 00000bb8: PUSH2 0x0bc4 00000bbb: JUMPI 00000bbc: PUSH2 0x0bc3 00000bbf: PUSH2 0x164b 00000bc2: JUMP 00000bc3: JUMPDEST 00000bc4: JUMPDEST 00000bc5: PUSH1 0x20 00000bc7: MUL 00000bc8: PUSH1 0x20 00000bca: ADD 00000bcb: ADD 00000bcc: MLOAD 00000bcd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000be2: AND 00000be3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bf8: AND 00000bf9: DUP2 00000bfa: MSTORE 00000bfb: PUSH1 0x20 00000bfd: ADD 00000bfe: SWAP1 00000bff: DUP2 00000c00: MSTORE 00000c01: PUSH1 0x20 00000c03: ADD 00000c04: PUSH1 0x00 00000c06: KECCAK256 00000c07: SLOAD 00000c08: GT 00000c09: ISZERO 00000c0a: PUSH2 0x0c6b 00000c0d: JUMPI 00000c0e: NUMBER 00000c0f: PUSH1 0x00 00000c11: DUP1 00000c12: DUP5 00000c13: DUP5 00000c14: DUP2 00000c15: MLOAD 00000c16: DUP2 00000c17: LT 00000c18: PUSH2 0x0c24 00000c1b: JUMPI 00000c1c: PUSH2 0x0c23 00000c1f: PUSH2 0x164b 00000c22: JUMP 00000c23: JUMPDEST 00000c24: JUMPDEST 00000c25: PUSH1 0x20 00000c27: MUL 00000c28: PUSH1 0x20 00000c2a: ADD 00000c2b: ADD 00000c2c: MLOAD 00000c2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c42: AND 00000c43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c58: AND 00000c59: DUP2 00000c5a: MSTORE 00000c5b: PUSH1 0x20 00000c5d: ADD 00000c5e: SWAP1 00000c5f: DUP2 00000c60: MSTORE 00000c61: PUSH1 0x20 00000c63: ADD 00000c64: PUSH1 0x00 00000c66: KECCAK256 00000c67: DUP2 00000c68: SWAP1 00000c69: SSTORE 00000c6a: POP 00000c6b: JUMPDEST 00000c6c: DUP1 00000c6d: DUP1 00000c6e: PUSH2 0x0c76 00000c71: SWAP1 00000c72: PUSH2 0x167a 00000c75: JUMP 00000c76: JUMPDEST 00000c77: SWAP2 00000c78: POP 00000c79: POP 00000c7a: PUSH2 0x0ba3 00000c7d: JUMP 00000c7e: JUMPDEST 00000c7f: POP 00000c80: POP 00000c81: JUMP 00000c82: JUMPDEST 00000c83: PUSH1 0x00 00000c85: DUP1 00000c86: ADDRESS 00000c87: DUP6 00000c88: DUP6 00000c89: DUP6 00000c8a: PUSH1 0x03 00000c8c: SLOAD 00000c8d: PUSH1 0x40 00000c8f: MLOAD 00000c90: PUSH1 0x20 00000c92: ADD 00000c93: PUSH2 0x0ca0 00000c96: SWAP6 00000c97: SWAP5 00000c98: SWAP4 00000c99: SWAP3 00000c9a: SWAP2 00000c9b: SWAP1 00000c9c: PUSH2 0x192a 00000c9f: JUMP 00000ca0: JUMPDEST 00000ca1: PUSH1 0x40 00000ca3: MLOAD 00000ca4: PUSH1 0x20 00000ca6: DUP2 00000ca7: DUP4 00000ca8: SUB 00000ca9: SUB 00000caa: DUP2 00000cab: MSTORE 00000cac: SWAP1 00000cad: PUSH1 0x40 00000caf: MSTORE 00000cb0: DUP1 00000cb1: MLOAD 00000cb2: SWAP1 00000cb3: PUSH1 0x20 00000cb5: ADD 00000cb6: KECCAK256 00000cb7: SWAP1 00000cb8: POP 00000cb9: DUP1 00000cba: SWAP2 00000cbb: POP 00000cbc: POP 00000cbd: SWAP4 00000cbe: SWAP3 00000cbf: POP 00000cc0: POP 00000cc1: POP 00000cc2: JUMP 00000cc3: JUMPDEST 00000cc4: PUSH1 0x00 00000cc6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cdb: DUP3 00000cdc: AND 00000cdd: SWAP1 00000cde: POP 00000cdf: SWAP2 00000ce0: SWAP1 00000ce1: POP 00000ce2: JUMP 00000ce3: JUMPDEST 00000ce4: PUSH1 0x00 00000ce6: PUSH2 0x0cee 00000ce9: DUP3 00000cea: PUSH2 0x0cc3 00000ced: JUMP 00000cee: JUMPDEST 00000cef: SWAP1 00000cf0: POP 00000cf1: SWAP2 00000cf2: SWAP1 00000cf3: POP 00000cf4: JUMP 00000cf5: JUMPDEST 00000cf6: PUSH2 0x0cfe 00000cf9: DUP2 00000cfa: PUSH2 0x0ce3 00000cfd: JUMP 00000cfe: JUMPDEST 00000cff: DUP3 00000d00: MSTORE 00000d01: POP 00000d02: POP 00000d03: JUMP 00000d04: JUMPDEST 00000d05: PUSH1 0x00 00000d07: DUP2 00000d08: SWAP1 00000d09: POP 00000d0a: SWAP2 00000d0b: SWAP1 00000d0c: POP 00000d0d: JUMP 00000d0e: JUMPDEST 00000d0f: PUSH2 0x0d17 00000d12: DUP2 00000d13: PUSH2 0x0d04 00000d16: JUMP 00000d17: JUMPDEST 00000d18: DUP3 00000d19: MSTORE 00000d1a: POP 00000d1b: POP 00000d1c: JUMP 00000d1d: JUMPDEST 00000d1e: PUSH1 0x00 00000d20: PUSH1 0x40 00000d22: DUP3 00000d23: ADD 00000d24: SWAP1 00000d25: POP 00000d26: PUSH2 0x0d32 00000d29: PUSH1 0x00 00000d2b: DUP4 00000d2c: ADD 00000d2d: DUP6 00000d2e: PUSH2 0x0cf5 00000d31: JUMP 00000d32: JUMPDEST 00000d33: PUSH2 0x0d3f 00000d36: PUSH1 0x20 00000d38: DUP4 00000d39: ADD 00000d3a: DUP5 00000d3b: PUSH2 0x0d0e 00000d3e: JUMP 00000d3f: JUMPDEST 00000d40: SWAP4 00000d41: SWAP3 00000d42: POP 00000d43: POP 00000d44: POP 00000d45: JUMP 00000d46: JUMPDEST 00000d47: PUSH1 0x00 00000d49: PUSH1 0x20 00000d4b: DUP3 00000d4c: ADD 00000d4d: SWAP1 00000d4e: POP 00000d4f: PUSH2 0x0d5b 00000d52: PUSH1 0x00 00000d54: DUP4 00000d55: ADD 00000d56: DUP5 00000d57: PUSH2 0x0d0e 00000d5a: JUMP 00000d5b: JUMPDEST 00000d5c: SWAP3 00000d5d: SWAP2 00000d5e: POP 00000d5f: POP 00000d60: JUMP 00000d61: JUMPDEST 00000d62: PUSH1 0x00 00000d64: PUSH1 0x40 00000d66: MLOAD 00000d67: SWAP1 00000d68: POP 00000d69: SWAP1 00000d6a: JUMP 00000d6b: JUMPDEST 00000d6c: PUSH1 0x00 00000d6e: DUP1 00000d6f: REVERT 00000d70: JUMPDEST 00000d71: PUSH1 0x00 00000d73: DUP1 00000d74: REVERT 00000d75: JUMPDEST 00000d76: PUSH2 0x0d7e 00000d79: DUP2 00000d7a: PUSH2 0x0ce3 00000d7d: JUMP 00000d7e: JUMPDEST 00000d7f: DUP2 00000d80: EQ 00000d81: PUSH2 0x0d89 00000d84: JUMPI 00000d85: PUSH1 0x00 00000d87: DUP1 00000d88: REVERT 00000d89: JUMPDEST 00000d8a: POP 00000d8b: JUMP 00000d8c: JUMPDEST 00000d8d: PUSH1 0x00 00000d8f: DUP2 00000d90: CALLDATALOAD 00000d91: SWAP1 00000d92: POP 00000d93: PUSH2 0x0d9b 00000d96: DUP2 00000d97: PUSH2 0x0d75 00000d9a: JUMP 00000d9b: JUMPDEST 00000d9c: SWAP3 00000d9d: SWAP2 00000d9e: POP 00000d9f: POP 00000da0: JUMP 00000da1: JUMPDEST 00000da2: PUSH2 0x0daa 00000da5: DUP2 00000da6: PUSH2 0x0d04 00000da9: JUMP 00000daa: JUMPDEST 00000dab: DUP2 00000dac: EQ 00000dad: PUSH2 0x0db5 00000db0: JUMPI 00000db1: PUSH1 0x00 00000db3: DUP1 00000db4: REVERT 00000db5: JUMPDEST 00000db6: POP 00000db7: JUMP 00000db8: JUMPDEST 00000db9: PUSH1 0x00 00000dbb: DUP2 00000dbc: CALLDATALOAD 00000dbd: SWAP1 00000dbe: POP 00000dbf: PUSH2 0x0dc7 00000dc2: DUP2 00000dc3: PUSH2 0x0da1 00000dc6: JUMP 00000dc7: JUMPDEST 00000dc8: SWAP3 00000dc9: SWAP2 00000dca: POP 00000dcb: POP 00000dcc: JUMP 00000dcd: JUMPDEST 00000dce: PUSH1 0x00 00000dd0: DUP1 00000dd1: REVERT 00000dd2: JUMPDEST 00000dd3: PUSH1 0x00 00000dd5: DUP1 00000dd6: REVERT 00000dd7: JUMPDEST 00000dd8: PUSH1 0x00 00000dda: DUP1 00000ddb: REVERT 00000ddc: JUMPDEST 00000ddd: PUSH1 0x00 00000ddf: DUP1 00000de0: DUP4 00000de1: PUSH1 0x1f 00000de3: DUP5 00000de4: ADD 00000de5: SLT 00000de6: PUSH2 0x0df2 00000de9: JUMPI 00000dea: PUSH2 0x0df1 00000ded: PUSH2 0x0dcd 00000df0: JUMP 00000df1: JUMPDEST 00000df2: JUMPDEST 00000df3: DUP3 00000df4: CALLDATALOAD 00000df5: SWAP1 00000df6: POP 00000df7: PUSH8 0xffffffffffffffff 00000e00: DUP2 00000e01: GT 00000e02: ISZERO 00000e03: PUSH2 0x0e0f 00000e06: JUMPI 00000e07: PUSH2 0x0e0e 00000e0a: PUSH2 0x0dd2 00000e0d: JUMP 00000e0e: JUMPDEST 00000e0f: JUMPDEST 00000e10: PUSH1 0x20 00000e12: DUP4 00000e13: ADD 00000e14: SWAP2 00000e15: POP 00000e16: DUP4 00000e17: PUSH1 0x01 00000e19: DUP3 00000e1a: MUL 00000e1b: DUP4 00000e1c: ADD 00000e1d: GT 00000e1e: ISZERO 00000e1f: PUSH2 0x0e2b 00000e22: JUMPI 00000e23: PUSH2 0x0e2a 00000e26: PUSH2 0x0dd7 00000e29: JUMP 00000e2a: JUMPDEST 00000e2b: JUMPDEST 00000e2c: SWAP3 00000e2d: POP 00000e2e: SWAP3 00000e2f: SWAP1 00000e30: POP 00000e31: JUMP 00000e32: JUMPDEST 00000e33: PUSH1 0x00 00000e35: DUP1 00000e36: PUSH1 0x00 00000e38: DUP1 00000e39: PUSH1 0x00 00000e3b: PUSH1 0x80 00000e3d: DUP7 00000e3e: DUP9 00000e3f: SUB 00000e40: SLT 00000e41: ISZERO 00000e42: PUSH2 0x0e4e 00000e45: JUMPI 00000e46: PUSH2 0x0e4d 00000e49: PUSH2 0x0d6b 00000e4c: JUMP 00000e4d: JUMPDEST 00000e4e: JUMPDEST 00000e4f: PUSH1 0x00 00000e51: PUSH2 0x0e5c 00000e54: DUP9 00000e55: DUP3 00000e56: DUP10 00000e57: ADD 00000e58: PUSH2 0x0d8c 00000e5b: JUMP 00000e5c: JUMPDEST 00000e5d: SWAP6 00000e5e: POP 00000e5f: POP 00000e60: PUSH1 0x20 00000e62: PUSH2 0x0e6d 00000e65: DUP9 00000e66: DUP3 00000e67: DUP10 00000e68: ADD 00000e69: PUSH2 0x0d8c 00000e6c: JUMP 00000e6d: JUMPDEST 00000e6e: SWAP5 00000e6f: POP 00000e70: POP 00000e71: PUSH1 0x40 00000e73: PUSH2 0x0e7e 00000e76: DUP9 00000e77: DUP3 00000e78: DUP10 00000e79: ADD 00000e7a: PUSH2 0x0db8 00000e7d: JUMP 00000e7e: JUMPDEST 00000e7f: SWAP4 00000e80: POP 00000e81: POP 00000e82: PUSH1 0x60 00000e84: DUP7 00000e85: ADD 00000e86: CALLDATALOAD 00000e87: PUSH8 0xffffffffffffffff 00000e90: DUP2 00000e91: GT 00000e92: ISZERO 00000e93: PUSH2 0x0e9f 00000e96: JUMPI 00000e97: PUSH2 0x0e9e 00000e9a: PUSH2 0x0d70 00000e9d: JUMP 00000e9e: JUMPDEST 00000e9f: JUMPDEST 00000ea0: PUSH2 0x0eab 00000ea3: DUP9 00000ea4: DUP3 00000ea5: DUP10 00000ea6: ADD 00000ea7: PUSH2 0x0ddc 00000eaa: JUMP 00000eab: JUMPDEST 00000eac: SWAP3 00000ead: POP 00000eae: SWAP3 00000eaf: POP 00000eb0: POP 00000eb1: SWAP3 00000eb2: SWAP6 00000eb3: POP 00000eb4: SWAP3 00000eb5: SWAP6 00000eb6: SWAP1 00000eb7: SWAP4 00000eb8: POP 00000eb9: JUMP 00000eba: JUMPDEST 00000ebb: PUSH1 0x00 00000ebd: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000ede: DUP3 00000edf: AND 00000ee0: SWAP1 00000ee1: POP 00000ee2: SWAP2 00000ee3: SWAP1 00000ee4: POP 00000ee5: JUMP 00000ee6: JUMPDEST 00000ee7: PUSH2 0x0eef 00000eea: DUP2 00000eeb: PUSH2 0x0eba 00000eee: JUMP 00000eef: JUMPDEST 00000ef0: DUP3 00000ef1: MSTORE 00000ef2: POP 00000ef3: POP 00000ef4: JUMP 00000ef5: JUMPDEST 00000ef6: PUSH1 0x00 00000ef8: PUSH1 0x20 00000efa: DUP3 00000efb: ADD 00000efc: SWAP1 00000efd: POP 00000efe: PUSH2 0x0f0a 00000f01: PUSH1 0x00 00000f03: DUP4 00000f04: ADD 00000f05: DUP5 00000f06: PUSH2 0x0ee6 00000f09: JUMP 00000f0a: JUMPDEST 00000f0b: SWAP3 00000f0c: SWAP2 00000f0d: POP 00000f0e: POP 00000f0f: JUMP 00000f10: JUMPDEST 00000f11: PUSH1 0x00 00000f13: PUSH1 0x20 00000f15: DUP3 00000f16: DUP5 00000f17: SUB 00000f18: SLT 00000f19: ISZERO 00000f1a: PUSH2 0x0f26 00000f1d: JUMPI 00000f1e: PUSH2 0x0f25 00000f21: PUSH2 0x0d6b 00000f24: JUMP 00000f25: JUMPDEST 00000f26: JUMPDEST 00000f27: PUSH1 0x00 00000f29: PUSH2 0x0f34 00000f2c: DUP5 00000f2d: DUP3 00000f2e: DUP6 00000f2f: ADD 00000f30: PUSH2 0x0d8c 00000f33: JUMP 00000f34: JUMPDEST 00000f35: SWAP2 00000f36: POP 00000f37: POP 00000f38: SWAP3 00000f39: SWAP2 00000f3a: POP 00000f3b: POP 00000f3c: JUMP 00000f3d: JUMPDEST 00000f3e: PUSH1 0x00 00000f40: PUSH1 0x1f 00000f42: NOT 00000f43: PUSH1 0x1f 00000f45: DUP4 00000f46: ADD 00000f47: AND 00000f48: SWAP1 00000f49: POP 00000f4a: SWAP2 00000f4b: SWAP1 00000f4c: POP 00000f4d: JUMP 00000f4e: JUMPDEST 00000f4f: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00000f70: PUSH1 0x00 00000f72: MSTORE 00000f73: PUSH1 0x41 00000f75: PUSH1 0x04 00000f77: MSTORE 00000f78: PUSH1 0x24 00000f7a: PUSH1 0x00 00000f7c: REVERT 00000f7d: JUMPDEST 00000f7e: PUSH2 0x0f86 00000f81: DUP3 00000f82: PUSH2 0x0f3d 00000f85: JUMP 00000f86: JUMPDEST 00000f87: DUP2 00000f88: ADD 00000f89: DUP2 00000f8a: DUP2 00000f8b: LT 00000f8c: PUSH8 0xffffffffffffffff 00000f95: DUP3 00000f96: GT 00000f97: OR 00000f98: ISZERO 00000f99: PUSH2 0x0fa5 00000f9c: JUMPI 00000f9d: PUSH2 0x0fa4 00000fa0: PUSH2 0x0f4e 00000fa3: JUMP 00000fa4: JUMPDEST 00000fa5: JUMPDEST 00000fa6: DUP1 00000fa7: PUSH1 0x40 00000fa9: MSTORE 00000faa: POP 00000fab: POP 00000fac: POP 00000fad: JUMP 00000fae: JUMPDEST 00000faf: PUSH1 0x00 00000fb1: PUSH2 0x0fb8 00000fb4: PUSH2 0x0d61 00000fb7: JUMP 00000fb8: JUMPDEST 00000fb9: SWAP1 00000fba: POP 00000fbb: PUSH2 0x0fc4 00000fbe: DUP3 00000fbf: DUP3 00000fc0: PUSH2 0x0f7d 00000fc3: JUMP 00000fc4: JUMPDEST 00000fc5: SWAP2 00000fc6: SWAP1 00000fc7: POP 00000fc8: JUMP 00000fc9: JUMPDEST 00000fca: PUSH1 0x00 00000fcc: PUSH8 0xffffffffffffffff 00000fd5: DUP3 00000fd6: GT 00000fd7: ISZERO 00000fd8: PUSH2 0x0fe4 00000fdb: JUMPI 00000fdc: PUSH2 0x0fe3 00000fdf: PUSH2 0x0f4e 00000fe2: JUMP 00000fe3: JUMPDEST 00000fe4: JUMPDEST 00000fe5: PUSH1 0x20 00000fe7: DUP3 00000fe8: MUL 00000fe9: SWAP1 00000fea: POP 00000feb: PUSH1 0x20 00000fed: DUP2 00000fee: ADD 00000fef: SWAP1 00000ff0: POP 00000ff1: SWAP2 00000ff2: SWAP1 00000ff3: POP 00000ff4: JUMP 00000ff5: JUMPDEST 00000ff6: PUSH1 0x00 00000ff8: PUSH1 0xff 00000ffa: DUP3 00000ffb: AND 00000ffc: SWAP1 00000ffd: POP 00000ffe: SWAP2 00000fff: SWAP1 00001000: POP 00001001: JUMP 00001002: JUMPDEST 00001003: PUSH2 0x100b 00001006: DUP2 00001007: PUSH2 0x0ff5 0000100a: JUMP 0000100b: JUMPDEST 0000100c: DUP2 0000100d: EQ 0000100e: PUSH2 0x1016 00001011: JUMPI 00001012: PUSH1 0x00 00001014: DUP1 00001015: REVERT 00001016: JUMPDEST 00001017: POP 00001018: JUMP 00001019: JUMPDEST 0000101a: PUSH1 0x00 0000101c: DUP2 0000101d: CALLDATALOAD 0000101e: SWAP1 0000101f: POP 00001020: PUSH2 0x1028 00001023: DUP2 00001024: PUSH2 0x1002 00001027: JUMP 00001028: JUMPDEST 00001029: SWAP3 0000102a: SWAP2 0000102b: POP 0000102c: POP 0000102d: JUMP 0000102e: JUMPDEST 0000102f: PUSH1 0x00 00001031: PUSH2 0x1041 00001034: PUSH2 0x103c 00001037: DUP5 00001038: PUSH2 0x0fc9 0000103b: JUMP 0000103c: JUMPDEST 0000103d: PUSH2 0x0fae 00001040: JUMP 00001041: JUMPDEST 00001042: SWAP1 00001043: POP 00001044: DUP1 00001045: DUP4 00001046: DUP3 00001047: MSTORE 00001048: PUSH1 0x20 0000104a: DUP3 0000104b: ADD 0000104c: SWAP1 0000104d: POP 0000104e: PUSH1 0x20 00001050: DUP5 00001051: MUL 00001052: DUP4 00001053: ADD 00001054: DUP6 00001055: DUP2 00001056: GT 00001057: ISZERO 00001058: PUSH2 0x1064 0000105b: JUMPI 0000105c: PUSH2 0x1063 0000105f: PUSH2 0x0dd7 00001062: JUMP 00001063: JUMPDEST 00001064: JUMPDEST 00001065: DUP4 00001066: JUMPDEST 00001067: DUP2 00001068: DUP2 00001069: LT 0000106a: ISZERO 0000106b: PUSH2 0x108d 0000106e: JUMPI 0000106f: DUP1 00001070: PUSH2 0x1079 00001073: DUP9 00001074: DUP3 00001075: PUSH2 0x1019 00001078: JUMP 00001079: JUMPDEST 0000107a: DUP5 0000107b: MSTORE 0000107c: PUSH1 0x20 0000107e: DUP5 0000107f: ADD 00001080: SWAP4 00001081: POP 00001082: POP 00001083: PUSH1 0x20 00001085: DUP2 00001086: ADD 00001087: SWAP1 00001088: POP 00001089: PUSH2 0x1066 0000108c: JUMP 0000108d: JUMPDEST 0000108e: POP 0000108f: POP 00001090: POP 00001091: SWAP4 00001092: SWAP3 00001093: POP 00001094: POP 00001095: POP 00001096: JUMP 00001097: JUMPDEST 00001098: PUSH1 0x00 0000109a: DUP3 0000109b: PUSH1 0x1f 0000109d: DUP4 0000109e: ADD 0000109f: SLT 000010a0: PUSH2 0x10ac 000010a3: JUMPI 000010a4: PUSH2 0x10ab 000010a7: PUSH2 0x0dcd 000010aa: JUMP 000010ab: JUMPDEST 000010ac: JUMPDEST 000010ad: DUP2 000010ae: CALLDATALOAD 000010af: PUSH2 0x10bc 000010b2: DUP5 000010b3: DUP3 000010b4: PUSH1 0x20 000010b6: DUP7 000010b7: ADD 000010b8: PUSH2 0x102e 000010bb: JUMP 000010bc: JUMPDEST 000010bd: SWAP2 000010be: POP 000010bf: POP 000010c0: SWAP3 000010c1: SWAP2 000010c2: POP 000010c3: POP 000010c4: JUMP 000010c5: JUMPDEST 000010c6: PUSH1 0x00 000010c8: PUSH8 0xffffffffffffffff 000010d1: DUP3 000010d2: GT 000010d3: ISZERO 000010d4: PUSH2 0x10e0 000010d7: JUMPI 000010d8: PUSH2 0x10df 000010db: PUSH2 0x0f4e 000010de: JUMP 000010df: JUMPDEST 000010e0: JUMPDEST 000010e1: PUSH1 0x20 000010e3: DUP3 000010e4: MUL 000010e5: SWAP1 000010e6: POP 000010e7: PUSH1 0x20 000010e9: DUP2 000010ea: ADD 000010eb: SWAP1 000010ec: POP 000010ed: SWAP2 000010ee: SWAP1 000010ef: POP 000010f0: JUMP 000010f1: JUMPDEST 000010f2: PUSH1 0x00 000010f4: DUP2 000010f5: SWAP1 000010f6: POP 000010f7: SWAP2 000010f8: SWAP1 000010f9: POP 000010fa: JUMP 000010fb: JUMPDEST 000010fc: PUSH2 0x1104 000010ff: DUP2 00001100: PUSH2 0x10f1 00001103: JUMP 00001104: JUMPDEST 00001105: DUP2 00001106: EQ 00001107: PUSH2 0x110f 0000110a: JUMPI 0000110b: PUSH1 0x00 0000110d: DUP1 0000110e: REVERT 0000110f: JUMPDEST 00001110: POP 00001111: JUMP 00001112: JUMPDEST 00001113: PUSH1 0x00 00001115: DUP2 00001116: CALLDATALOAD 00001117: SWAP1 00001118: POP 00001119: PUSH2 0x1121 0000111c: DUP2 0000111d: PUSH2 0x10fb 00001120: JUMP 00001121: JUMPDEST 00001122: SWAP3 00001123: SWAP2 00001124: POP 00001125: POP 00001126: JUMP 00001127: JUMPDEST 00001128: PUSH1 0x00 0000112a: PUSH2 0x113a 0000112d: PUSH2 0x1135 00001130: DUP5 00001131: PUSH2 0x10c5 00001134: JUMP 00001135: JUMPDEST 00001136: PUSH2 0x0fae 00001139: JUMP 0000113a: JUMPDEST 0000113b: SWAP1 0000113c: POP 0000113d: DUP1 0000113e: DUP4 0000113f: DUP3 00001140: MSTORE 00001141: PUSH1 0x20 00001143: DUP3 00001144: ADD 00001145: SWAP1 00001146: POP 00001147: PUSH1 0x20 00001149: DUP5 0000114a: MUL 0000114b: DUP4 0000114c: ADD 0000114d: DUP6 0000114e: DUP2 0000114f: GT 00001150: ISZERO 00001151: PUSH2 0x115d 00001154: JUMPI 00001155: PUSH2 0x115c 00001158: PUSH2 0x0dd7 0000115b: JUMP 0000115c: JUMPDEST 0000115d: JUMPDEST 0000115e: DUP4 0000115f: JUMPDEST 00001160: DUP2 00001161: DUP2 00001162: LT 00001163: ISZERO 00001164: PUSH2 0x1186 00001167: JUMPI 00001168: DUP1 00001169: PUSH2 0x1172 0000116c: DUP9 0000116d: DUP3 0000116e: PUSH2 0x1112 00001171: JUMP 00001172: JUMPDEST 00001173: DUP5 00001174: MSTORE 00001175: PUSH1 0x20 00001177: DUP5 00001178: ADD 00001179: SWAP4 0000117a: POP 0000117b: POP 0000117c: PUSH1 0x20 0000117e: DUP2 0000117f: ADD 00001180: SWAP1 00001181: POP 00001182: PUSH2 0x115f 00001185: JUMP 00001186: JUMPDEST 00001187: POP 00001188: POP 00001189: POP 0000118a: SWAP4 0000118b: SWAP3 0000118c: POP 0000118d: POP 0000118e: POP 0000118f: JUMP 00001190: JUMPDEST 00001191: PUSH1 0x00 00001193: DUP3 00001194: PUSH1 0x1f 00001196: DUP4 00001197: ADD 00001198: SLT 00001199: PUSH2 0x11a5 0000119c: JUMPI 0000119d: PUSH2 0x11a4 000011a0: PUSH2 0x0dcd 000011a3: JUMP 000011a4: JUMPDEST 000011a5: JUMPDEST 000011a6: DUP2 000011a7: CALLDATALOAD 000011a8: PUSH2 0x11b5 000011ab: DUP5 000011ac: DUP3 000011ad: PUSH1 0x20 000011af: DUP7 000011b0: ADD 000011b1: PUSH2 0x1127 000011b4: JUMP 000011b5: JUMPDEST 000011b6: SWAP2 000011b7: POP 000011b8: POP 000011b9: SWAP3 000011ba: SWAP2 000011bb: POP 000011bc: POP 000011bd: JUMP 000011be: JUMPDEST 000011bf: PUSH1 0x00 000011c1: DUP1 000011c2: PUSH1 0x00 000011c4: DUP1 000011c5: PUSH1 0x00 000011c7: DUP1 000011c8: PUSH1 0x00 000011ca: PUSH1 0xc0 000011cc: DUP9 000011cd: DUP11 000011ce: SUB 000011cf: SLT 000011d0: ISZERO 000011d1: PUSH2 0x11dd 000011d4: JUMPI 000011d5: PUSH2 0x11dc 000011d8: PUSH2 0x0d6b 000011db: JUMP 000011dc: JUMPDEST 000011dd: JUMPDEST 000011de: PUSH1 0x00 000011e0: PUSH2 0x11eb 000011e3: DUP11 000011e4: DUP3 000011e5: DUP12 000011e6: ADD 000011e7: PUSH2 0x0d8c 000011ea: JUMP 000011eb: JUMPDEST 000011ec: SWAP8 000011ed: POP 000011ee: POP 000011ef: PUSH1 0x20 000011f1: PUSH2 0x11fc 000011f4: DUP11 000011f5: DUP3 000011f6: DUP12 000011f7: ADD 000011f8: PUSH2 0x0db8 000011fb: JUMP 000011fc: JUMPDEST 000011fd: SWAP7 000011fe: POP 000011ff: POP 00001200: PUSH1 0x40 00001202: DUP9 00001203: ADD 00001204: CALLDATALOAD 00001205: PUSH8 0xffffffffffffffff 0000120e: DUP2 0000120f: GT 00001210: ISZERO 00001211: PUSH2 0x121d 00001214: JUMPI 00001215: PUSH2 0x121c 00001218: PUSH2 0x0d70 0000121b: JUMP 0000121c: JUMPDEST 0000121d: JUMPDEST 0000121e: PUSH2 0x1229 00001221: DUP11 00001222: DUP3 00001223: DUP12 00001224: ADD 00001225: PUSH2 0x1097 00001228: JUMP 00001229: JUMPDEST 0000122a: SWAP6 0000122b: POP 0000122c: POP 0000122d: PUSH1 0x60 0000122f: DUP9 00001230: ADD 00001231: CALLDATALOAD 00001232: PUSH8 0xffffffffffffffff 0000123b: DUP2 0000123c: GT 0000123d: ISZERO 0000123e: PUSH2 0x124a 00001241: JUMPI 00001242: PUSH2 0x1249 00001245: PUSH2 0x0d70 00001248: JUMP 00001249: JUMPDEST 0000124a: JUMPDEST 0000124b: PUSH2 0x1256 0000124e: DUP11 0000124f: DUP3 00001250: DUP12 00001251: ADD 00001252: PUSH2 0x1190 00001255: JUMP 00001256: JUMPDEST 00001257: SWAP5 00001258: POP 00001259: POP 0000125a: PUSH1 0x80 0000125c: DUP9 0000125d: ADD 0000125e: CALLDATALOAD 0000125f: PUSH8 0xffffffffffffffff 00001268: DUP2 00001269: GT 0000126a: ISZERO 0000126b: PUSH2 0x1277 0000126e: JUMPI 0000126f: PUSH2 0x1276 00001272: PUSH2 0x0d70 00001275: JUMP 00001276: JUMPDEST 00001277: JUMPDEST 00001278: PUSH2 0x1283 0000127b: DUP11 0000127c: DUP3 0000127d: DUP12 0000127e: ADD 0000127f: PUSH2 0x1190 00001282: JUMP 00001283: JUMPDEST 00001284: SWAP4 00001285: POP 00001286: POP 00001287: PUSH1 0xa0 00001289: DUP9 0000128a: ADD 0000128b: CALLDATALOAD 0000128c: PUSH8 0xffffffffffffffff 00001295: DUP2 00001296: GT 00001297: ISZERO 00001298: PUSH2 0x12a4 0000129b: JUMPI 0000129c: PUSH2 0x12a3 0000129f: PUSH2 0x0d70 000012a2: JUMP 000012a3: JUMPDEST 000012a4: JUMPDEST 000012a5: PUSH2 0x12b0 000012a8: DUP11 000012a9: DUP3 000012aa: DUP12 000012ab: ADD 000012ac: PUSH2 0x0ddc 000012af: JUMP 000012b0: JUMPDEST 000012b1: SWAP3 000012b2: POP 000012b3: SWAP3 000012b4: POP 000012b5: POP 000012b6: SWAP3 000012b7: SWAP6 000012b8: SWAP9 000012b9: SWAP2 000012ba: SWAP5 000012bb: SWAP8 000012bc: POP 000012bd: SWAP3 000012be: SWAP6 000012bf: POP 000012c0: JUMP 000012c1: JUMPDEST 000012c2: PUSH1 0x00 000012c4: DUP2 000012c5: MLOAD 000012c6: SWAP1 000012c7: POP 000012c8: SWAP2 000012c9: SWAP1 000012ca: POP 000012cb: JUMP 000012cc: JUMPDEST 000012cd: PUSH1 0x00 000012cf: DUP3 000012d0: DUP3 000012d1: MSTORE 000012d2: PUSH1 0x20 000012d4: DUP3 000012d5: ADD 000012d6: SWAP1 000012d7: POP 000012d8: SWAP3 000012d9: SWAP2 000012da: POP 000012db: POP 000012dc: JUMP 000012dd: JUMPDEST 000012de: PUSH1 0x00 000012e0: DUP2 000012e1: SWAP1 000012e2: POP 000012e3: PUSH1 0x20 000012e5: DUP3 000012e6: ADD 000012e7: SWAP1 000012e8: POP 000012e9: SWAP2 000012ea: SWAP1 000012eb: POP 000012ec: JUMP 000012ed: JUMPDEST 000012ee: PUSH2 0x12f6 000012f1: DUP2 000012f2: PUSH2 0x0ce3 000012f5: JUMP 000012f6: JUMPDEST 000012f7: DUP3 000012f8: MSTORE 000012f9: POP 000012fa: POP 000012fb: JUMP 000012fc: JUMPDEST 000012fd: PUSH1 0x00 000012ff: PUSH2 0x1308 00001302: DUP4 00001303: DUP4 00001304: PUSH2 0x12ed 00001307: JUMP 00001308: JUMPDEST 00001309: PUSH1 0x20 0000130b: DUP4 0000130c: ADD 0000130d: SWAP1 0000130e: POP 0000130f: SWAP3 00001310: SWAP2 00001311: POP 00001312: POP 00001313: JUMP 00001314: JUMPDEST 00001315: PUSH1 0x00 00001317: PUSH1 0x20 00001319: DUP3 0000131a: ADD 0000131b: SWAP1 0000131c: POP 0000131d: SWAP2 0000131e: SWAP1 0000131f: POP 00001320: JUMP 00001321: JUMPDEST 00001322: PUSH1 0x00 00001324: PUSH2 0x132c 00001327: DUP3 00001328: PUSH2 0x12c1 0000132b: JUMP 0000132c: JUMPDEST 0000132d: PUSH2 0x1336 00001330: DUP2 00001331: DUP6 00001332: PUSH2 0x12cc 00001335: JUMP 00001336: JUMPDEST 00001337: SWAP4 00001338: POP 00001339: PUSH2 0x1341 0000133c: DUP4 0000133d: PUSH2 0x12dd 00001340: JUMP 00001341: JUMPDEST 00001342: DUP1 00001343: PUSH1 0x00 00001345: JUMPDEST 00001346: DUP4 00001347: DUP2 00001348: LT 00001349: ISZERO 0000134a: PUSH2 0x1372 0000134d: JUMPI 0000134e: DUP2 0000134f: MLOAD 00001350: PUSH2 0x1359 00001353: DUP9 00001354: DUP3 00001355: PUSH2 0x12fc 00001358: JUMP 00001359: JUMPDEST 0000135a: SWAP8 0000135b: POP 0000135c: PUSH2 0x1364 0000135f: DUP4 00001360: PUSH2 0x1314 00001363: JUMP 00001364: JUMPDEST 00001365: SWAP3 00001366: POP 00001367: POP 00001368: PUSH1 0x01 0000136a: DUP2 0000136b: ADD 0000136c: SWAP1 0000136d: POP 0000136e: PUSH2 0x1345 00001371: JUMP 00001372: JUMPDEST 00001373: POP 00001374: DUP6 00001375: SWAP4 00001376: POP 00001377: POP 00001378: POP 00001379: POP 0000137a: SWAP3 0000137b: SWAP2 0000137c: POP 0000137d: POP 0000137e: JUMP 0000137f: JUMPDEST 00001380: PUSH1 0x00 00001382: PUSH1 0x20 00001384: DUP3 00001385: ADD 00001386: SWAP1 00001387: POP 00001388: DUP2 00001389: DUP2 0000138a: SUB 0000138b: PUSH1 0x00 0000138d: DUP4 0000138e: ADD 0000138f: MSTORE 00001390: PUSH2 0x1399 00001393: DUP2 00001394: DUP5 00001395: PUSH2 0x1321 00001398: JUMP 00001399: JUMPDEST 0000139a: SWAP1 0000139b: POP 0000139c: SWAP3 0000139d: SWAP2 0000139e: POP 0000139f: POP 000013a0: JUMP 000013a1: JUMPDEST 000013a2: PUSH1 0x00 000013a4: DUP1 000013a5: PUSH1 0x00 000013a7: DUP1 000013a8: PUSH1 0x00 000013aa: DUP1 000013ab: PUSH1 0xa0 000013ad: DUP8 000013ae: DUP10 000013af: SUB 000013b0: SLT 000013b1: ISZERO 000013b2: PUSH2 0x13be 000013b5: JUMPI 000013b6: PUSH2 0x13bd 000013b9: PUSH2 0x0d6b 000013bc: JUMP 000013bd: JUMPDEST 000013be: JUMPDEST 000013bf: PUSH1 0x00 000013c1: PUSH2 0x13cc 000013c4: DUP10 000013c5: DUP3 000013c6: DUP11 000013c7: ADD 000013c8: PUSH2 0x0d8c 000013cb: JUMP 000013cc: JUMPDEST 000013cd: SWAP7 000013ce: POP 000013cf: POP 000013d0: PUSH1 0x20 000013d2: PUSH2 0x13dd 000013d5: DUP10 000013d6: DUP3 000013d7: DUP11 000013d8: ADD 000013d9: PUSH2 0x0d8c 000013dc: JUMP 000013dd: JUMPDEST 000013de: SWAP6 000013df: POP 000013e0: POP 000013e1: PUSH1 0x40 000013e3: PUSH2 0x13ee 000013e6: DUP10 000013e7: DUP3 000013e8: DUP11 000013e9: ADD 000013ea: PUSH2 0x0db8 000013ed: JUMP 000013ee: JUMPDEST 000013ef: SWAP5 000013f0: POP 000013f1: POP 000013f2: PUSH1 0x60 000013f4: PUSH2 0x13ff 000013f7: DUP10 000013f8: DUP3 000013f9: DUP11 000013fa: ADD 000013fb: PUSH2 0x0db8 000013fe: JUMP 000013ff: JUMPDEST 00001400: SWAP4 00001401: POP 00001402: POP 00001403: PUSH1 0x80 00001405: DUP8 00001406: ADD 00001407: CALLDATALOAD 00001408: PUSH8 0xffffffffffffffff 00001411: DUP2 00001412: GT 00001413: ISZERO 00001414: PUSH2 0x1420 00001417: JUMPI 00001418: PUSH2 0x141f 0000141b: PUSH2 0x0d70 0000141e: JUMP 0000141f: JUMPDEST 00001420: JUMPDEST 00001421: PUSH2 0x142c 00001424: DUP10 00001425: DUP3 00001426: DUP11 00001427: ADD 00001428: PUSH2 0x0ddc 0000142b: JUMP 0000142c: JUMPDEST 0000142d: SWAP3 0000142e: POP 0000142f: SWAP3 00001430: POP 00001431: POP 00001432: SWAP3 00001433: SWAP6 00001434: POP 00001435: SWAP3 00001436: SWAP6 00001437: POP 00001438: SWAP3 00001439: SWAP6 0000143a: JUMP 0000143b: JUMPDEST 0000143c: PUSH1 0x00 0000143e: DUP3 0000143f: DUP3 00001440: MSTORE 00001441: PUSH1 0x20 00001443: DUP3 00001444: ADD 00001445: SWAP1 00001446: POP 00001447: SWAP3 00001448: SWAP2 00001449: POP 0000144a: POP 0000144b: JUMP 0000144c: JUMPDEST 0000144d: PUSH32 0x4e6f7420616e206f776e65720000000000000000000000000000000000000000 0000146e: PUSH1 0x00 00001470: DUP3 00001471: ADD 00001472: MSTORE 00001473: POP 00001474: JUMP 00001475: JUMPDEST 00001476: PUSH1 0x00 00001478: PUSH2 0x1482 0000147b: PUSH1 0x0c 0000147d: DUP4 0000147e: PUSH2 0x143b 00001481: JUMP 00001482: JUMPDEST 00001483: SWAP2 00001484: POP 00001485: PUSH2 0x148d 00001488: DUP3 00001489: PUSH2 0x144c 0000148c: JUMP 0000148d: JUMPDEST 0000148e: PUSH1 0x20 00001490: DUP3 00001491: ADD 00001492: SWAP1 00001493: POP 00001494: SWAP2 00001495: SWAP1 00001496: POP 00001497: JUMP 00001498: JUMPDEST 00001499: PUSH1 0x00 0000149b: PUSH1 0x20 0000149d: DUP3 0000149e: ADD 0000149f: SWAP1 000014a0: POP 000014a1: DUP2 000014a2: DUP2 000014a3: SUB 000014a4: PUSH1 0x00 000014a6: DUP4 000014a7: ADD 000014a8: MSTORE 000014a9: PUSH2 0x14b1 000014ac: DUP2 000014ad: PUSH2 0x1475 000014b0: JUMP 000014b1: JUMPDEST 000014b2: SWAP1 000014b3: POP 000014b4: SWAP2 000014b5: SWAP1 000014b6: POP 000014b7: JUMP 000014b8: JUMPDEST 000014b9: PUSH32 0x4e6f7420616c6c6f772073656e64696e6720746f20796f757273656c66000000 000014da: PUSH1 0x00 000014dc: DUP3 000014dd: ADD 000014de: MSTORE 000014df: POP 000014e0: JUMP 000014e1: JUMPDEST 000014e2: PUSH1 0x00 000014e4: PUSH2 0x14ee 000014e7: PUSH1 0x1d 000014e9: DUP4 000014ea: PUSH2 0x143b 000014ed: JUMP 000014ee: JUMPDEST 000014ef: SWAP2 000014f0: POP 000014f1: PUSH2 0x14f9 000014f4: DUP3 000014f5: PUSH2 0x14b8 000014f8: JUMP 000014f9: JUMPDEST 000014fa: PUSH1 0x20 000014fc: DUP3 000014fd: ADD 000014fe: SWAP1 000014ff: POP 00001500: SWAP2 00001501: SWAP1 00001502: POP 00001503: JUMP 00001504: JUMPDEST 00001505: PUSH1 0x00 00001507: PUSH1 0x20 00001509: DUP3 0000150a: ADD 0000150b: SWAP1 0000150c: POP 0000150d: DUP2 0000150e: DUP2 0000150f: SUB 00001510: PUSH1 0x00 00001512: DUP4 00001513: ADD 00001514: MSTORE 00001515: PUSH2 0x151d 00001518: DUP2 00001519: PUSH2 0x14e1 0000151c: JUMP 0000151d: JUMPDEST 0000151e: SWAP1 0000151f: POP 00001520: SWAP2 00001521: SWAP1 00001522: POP 00001523: JUMP 00001524: JUMPDEST 00001525: PUSH32 0x696e76616c6964207369676e6174757265730000000000000000000000000000 00001546: PUSH1 0x00 00001548: DUP3 00001549: ADD 0000154a: MSTORE 0000154b: POP 0000154c: JUMP 0000154d: JUMPDEST 0000154e: PUSH1 0x00 00001550: PUSH2 0x155a 00001553: PUSH1 0x12 00001555: DUP4 00001556: PUSH2 0x143b 00001559: JUMP 0000155a: JUMPDEST 0000155b: SWAP2 0000155c: POP 0000155d: PUSH2 0x1565 00001560: DUP3 00001561: PUSH2 0x1524 00001564: JUMP 00001565: JUMPDEST 00001566: PUSH1 0x20 00001568: DUP3 00001569: ADD 0000156a: SWAP1 0000156b: POP 0000156c: SWAP2 0000156d: SWAP1 0000156e: POP 0000156f: JUMP 00001570: JUMPDEST 00001571: PUSH1 0x00 00001573: PUSH1 0x20 00001575: DUP3 00001576: ADD 00001577: SWAP1 00001578: POP 00001579: DUP2 0000157a: DUP2 0000157b: SUB 0000157c: PUSH1 0x00 0000157e: DUP4 0000157f: ADD 00001580: MSTORE 00001581: PUSH2 0x1589 00001584: DUP2 00001585: PUSH2 0x154d 00001588: JUMP 00001589: JUMPDEST 0000158a: SWAP1 0000158b: POP 0000158c: SWAP2 0000158d: SWAP1 0000158e: POP 0000158f: JUMP 00001590: JUMPDEST 00001591: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000015b2: PUSH1 0x00 000015b4: MSTORE 000015b5: PUSH1 0x11 000015b7: PUSH1 0x04 000015b9: MSTORE 000015ba: PUSH1 0x24 000015bc: PUSH1 0x00 000015be: REVERT 000015bf: JUMPDEST 000015c0: PUSH1 0x00 000015c2: PUSH2 0x15ca 000015c5: DUP3 000015c6: PUSH2 0x0d04 000015c9: JUMP 000015ca: JUMPDEST 000015cb: SWAP2 000015cc: POP 000015cd: PUSH2 0x15d5 000015d0: DUP4 000015d1: PUSH2 0x0d04 000015d4: JUMP 000015d5: JUMPDEST 000015d6: SWAP3 000015d7: POP 000015d8: DUP3 000015d9: DUP3 000015da: ADD 000015db: SWAP1 000015dc: POP 000015dd: DUP1 000015de: DUP3 000015df: GT 000015e0: ISZERO 000015e1: PUSH2 0x15ed 000015e4: JUMPI 000015e5: PUSH2 0x15ec 000015e8: PUSH2 0x1590 000015eb: JUMP 000015ec: JUMPDEST 000015ed: JUMPDEST 000015ee: SWAP3 000015ef: SWAP2 000015f0: POP 000015f1: POP 000015f2: JUMP 000015f3: JUMPDEST 000015f4: PUSH1 0x00 000015f6: DUP2 000015f7: SWAP1 000015f8: POP 000015f9: SWAP3 000015fa: SWAP2 000015fb: POP 000015fc: POP 000015fd: JUMP 000015fe: JUMPDEST 000015ff: DUP3 00001600: DUP2 00001601: DUP4 00001602: CALLDATACOPY 00001603: PUSH1 0x00 00001605: DUP4 00001606: DUP4 00001607: ADD 00001608: MSTORE 00001609: POP 0000160a: POP 0000160b: POP 0000160c: JUMP 0000160d: JUMPDEST 0000160e: PUSH1 0x00 00001610: PUSH2 0x1619 00001613: DUP4 00001614: DUP6 00001615: PUSH2 0x15f3 00001618: JUMP 00001619: JUMPDEST 0000161a: SWAP4 0000161b: POP 0000161c: PUSH2 0x1626 0000161f: DUP4 00001620: DUP6 00001621: DUP5 00001622: PUSH2 0x15fe 00001625: JUMP 00001626: JUMPDEST 00001627: DUP3 00001628: DUP5 00001629: ADD 0000162a: SWAP1 0000162b: POP 0000162c: SWAP4 0000162d: SWAP3 0000162e: POP 0000162f: POP 00001630: POP 00001631: JUMP 00001632: JUMPDEST 00001633: PUSH1 0x00 00001635: PUSH2 0x163f 00001638: DUP3 00001639: DUP5 0000163a: DUP7 0000163b: PUSH2 0x160d 0000163e: JUMP 0000163f: JUMPDEST 00001640: SWAP2 00001641: POP 00001642: DUP2 00001643: SWAP1 00001644: POP 00001645: SWAP4 00001646: SWAP3 00001647: POP 00001648: POP 00001649: POP 0000164a: JUMP 0000164b: JUMPDEST 0000164c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0000166d: PUSH1 0x00 0000166f: MSTORE 00001670: PUSH1 0x32 00001672: PUSH1 0x04 00001674: MSTORE 00001675: PUSH1 0x24 00001677: PUSH1 0x00 00001679: REVERT 0000167a: JUMPDEST 0000167b: PUSH1 0x00 0000167d: PUSH2 0x1685 00001680: DUP3 00001681: PUSH2 0x0d04 00001684: JUMP 00001685: JUMPDEST 00001686: SWAP2 00001687: POP 00001688: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000016a9: DUP3 000016aa: SUB 000016ab: PUSH2 0x16b7 000016ae: JUMPI 000016af: PUSH2 0x16b6 000016b2: PUSH2 0x1590 000016b5: JUMP 000016b6: JUMPDEST 000016b7: JUMPDEST 000016b8: PUSH1 0x01 000016ba: DUP3 000016bb: ADD 000016bc: SWAP1 000016bd: POP 000016be: SWAP2 000016bf: SWAP1 000016c0: POP 000016c1: JUMP 000016c2: JUMPDEST 000016c3: PUSH1 0x00 000016c5: PUSH2 0x16cd 000016c8: DUP3 000016c9: PUSH2 0x0ff5 000016cc: JUMP 000016cd: JUMPDEST 000016ce: SWAP2 000016cf: POP 000016d0: PUSH2 0x16d8 000016d3: DUP4 000016d4: PUSH2 0x0ff5 000016d7: JUMP 000016d8: JUMPDEST 000016d9: SWAP3 000016da: POP 000016db: DUP3 000016dc: DUP3 000016dd: ADD 000016de: SWAP1 000016df: POP 000016e0: PUSH1 0xff 000016e2: DUP2 000016e3: GT 000016e4: ISZERO 000016e5: PUSH2 0x16f1 000016e8: JUMPI 000016e9: PUSH2 0x16f0 000016ec: PUSH2 0x1590 000016ef: JUMP 000016f0: JUMPDEST 000016f1: JUMPDEST 000016f2: SWAP3 000016f3: SWAP2 000016f4: POP 000016f5: POP 000016f6: JUMP 000016f7: JUMPDEST 000016f8: PUSH2 0x1700 000016fb: DUP2 000016fc: PUSH2 0x10f1 000016ff: JUMP 00001700: JUMPDEST 00001701: DUP3 00001702: MSTORE 00001703: POP 00001704: POP 00001705: JUMP 00001706: JUMPDEST 00001707: PUSH2 0x170f 0000170a: DUP2 0000170b: PUSH2 0x0ff5 0000170e: JUMP 0000170f: JUMPDEST 00001710: DUP3 00001711: MSTORE 00001712: POP 00001713: POP 00001714: JUMP 00001715: JUMPDEST 00001716: PUSH1 0x00 00001718: PUSH1 0x80 0000171a: DUP3 0000171b: ADD 0000171c: SWAP1 0000171d: POP 0000171e: PUSH2 0x172a 00001721: PUSH1 0x00 00001723: DUP4 00001724: ADD 00001725: DUP8 00001726: PUSH2 0x16f7 00001729: JUMP 0000172a: JUMPDEST 0000172b: PUSH2 0x1737 0000172e: PUSH1 0x20 00001730: DUP4 00001731: ADD 00001732: DUP7 00001733: PUSH2 0x1706 00001736: JUMP 00001737: JUMPDEST 00001738: PUSH2 0x1744 0000173b: PUSH1 0x40 0000173d: DUP4 0000173e: ADD 0000173f: DUP6 00001740: PUSH2 0x16f7 00001743: JUMP 00001744: JUMPDEST 00001745: PUSH2 0x1751 00001748: PUSH1 0x60 0000174a: DUP4 0000174b: ADD 0000174c: DUP5 0000174d: PUSH2 0x16f7 00001750: JUMP 00001751: JUMPDEST 00001752: SWAP6 00001753: SWAP5 00001754: POP 00001755: POP 00001756: POP 00001757: POP 00001758: POP 00001759: JUMP 0000175a: JUMPDEST 0000175b: PUSH32 0x416374697665206f776e65727320757064617465642061667465722074686520 0000177c: PUSH1 0x00 0000177e: DUP3 0000177f: ADD 00001780: MSTORE 00001781: PUSH32 0x63616c6c2c20706c656173652063616c6c206163746976652829206265666f72 000017a2: PUSH1 0x20 000017a4: DUP3 000017a5: ADD 000017a6: MSTORE 000017a7: PUSH32 0x652063616c6c696e67207370656e642e00000000000000000000000000000000 000017c8: PUSH1 0x40 000017ca: DUP3 000017cb: ADD 000017cc: MSTORE 000017cd: POP 000017ce: JUMP 000017cf: JUMPDEST 000017d0: PUSH1 0x00 000017d2: PUSH2 0x17dc 000017d5: PUSH1 0x50 000017d7: DUP4 000017d8: PUSH2 0x143b 000017db: JUMP 000017dc: JUMPDEST 000017dd: SWAP2 000017de: POP 000017df: PUSH2 0x17e7 000017e2: DUP3 000017e3: PUSH2 0x175a 000017e6: JUMP 000017e7: JUMPDEST 000017e8: PUSH1 0x60 000017ea: DUP3 000017eb: ADD 000017ec: SWAP1 000017ed: POP 000017ee: SWAP2 000017ef: SWAP1 000017f0: POP 000017f1: JUMP 000017f2: JUMPDEST 000017f3: PUSH1 0x00 000017f5: PUSH1 0x20 000017f7: DUP3 000017f8: ADD 000017f9: SWAP1 000017fa: POP 000017fb: DUP2 000017fc: DUP2 000017fd: SUB 000017fe: PUSH1 0x00 00001800: DUP4 00001801: ADD 00001802: MSTORE 00001803: PUSH2 0x180b 00001806: DUP2 00001807: PUSH2 0x17cf 0000180a: JUMP 0000180b: JUMPDEST 0000180c: SWAP1 0000180d: POP 0000180e: SWAP2 0000180f: SWAP1 00001810: POP 00001811: JUMP 00001812: JUMPDEST 00001813: PUSH1 0x00 00001815: DUP2 00001816: MLOAD 00001817: SWAP1 00001818: POP 00001819: SWAP2 0000181a: SWAP1 0000181b: POP 0000181c: JUMP 0000181d: JUMPDEST 0000181e: PUSH1 0x00 00001820: JUMPDEST 00001821: DUP4 00001822: DUP2 00001823: LT 00001824: ISZERO 00001825: PUSH2 0x183b 00001828: JUMPI 00001829: DUP1 0000182a: DUP3 0000182b: ADD 0000182c: MLOAD 0000182d: DUP2 0000182e: DUP5 0000182f: ADD 00001830: MSTORE 00001831: PUSH1 0x20 00001833: DUP2 00001834: ADD 00001835: SWAP1 00001836: POP 00001837: PUSH2 0x1820 0000183a: JUMP 0000183b: JUMPDEST 0000183c: PUSH1 0x00 0000183e: DUP5 0000183f: DUP5 00001840: ADD 00001841: MSTORE 00001842: POP 00001843: POP 00001844: POP 00001845: POP 00001846: JUMP 00001847: JUMPDEST 00001848: PUSH1 0x00 0000184a: PUSH2 0x1852 0000184d: DUP3 0000184e: PUSH2 0x1812 00001851: JUMP 00001852: JUMPDEST 00001853: PUSH2 0x185c 00001856: DUP2 00001857: DUP6 00001858: PUSH2 0x15f3 0000185b: JUMP 0000185c: JUMPDEST 0000185d: SWAP4 0000185e: POP 0000185f: PUSH2 0x186c 00001862: DUP2 00001863: DUP6 00001864: PUSH1 0x20 00001866: DUP7 00001867: ADD 00001868: PUSH2 0x181d 0000186b: JUMP 0000186c: JUMPDEST 0000186d: DUP1 0000186e: DUP5 0000186f: ADD 00001870: SWAP2 00001871: POP 00001872: POP 00001873: SWAP3 00001874: SWAP2 00001875: POP 00001876: POP 00001877: JUMP 00001878: JUMPDEST 00001879: PUSH1 0x00 0000187b: DUP2 0000187c: SWAP1 0000187d: POP 0000187e: SWAP2 0000187f: SWAP1 00001880: POP 00001881: JUMP 00001882: JUMPDEST 00001883: PUSH2 0x1893 00001886: PUSH2 0x188e 00001889: DUP3 0000188a: PUSH2 0x10f1 0000188d: JUMP 0000188e: JUMPDEST 0000188f: PUSH2 0x1878 00001892: JUMP 00001893: JUMPDEST 00001894: DUP3 00001895: MSTORE 00001896: POP 00001897: POP 00001898: JUMP 00001899: JUMPDEST 0000189a: PUSH1 0x00 0000189c: PUSH2 0x18a5 0000189f: DUP3 000018a0: DUP6 000018a1: PUSH2 0x1847 000018a4: JUMP 000018a5: JUMPDEST 000018a6: SWAP2 000018a7: POP 000018a8: PUSH2 0x18b1 000018ab: DUP3 000018ac: DUP5 000018ad: PUSH2 0x1882 000018b0: JUMP 000018b1: JUMPDEST 000018b2: PUSH1 0x20 000018b4: DUP3 000018b5: ADD 000018b6: SWAP2 000018b7: POP 000018b8: DUP2 000018b9: SWAP1 000018ba: POP 000018bb: SWAP4 000018bc: SWAP3 000018bd: POP 000018be: POP 000018bf: POP 000018c0: JUMP 000018c1: JUMPDEST 000018c2: PUSH1 0x00 000018c4: DUP2 000018c5: PUSH1 0x60 000018c7: SHL 000018c8: SWAP1 000018c9: POP 000018ca: SWAP2 000018cb: SWAP1 000018cc: POP 000018cd: JUMP 000018ce: JUMPDEST 000018cf: PUSH1 0x00 000018d1: PUSH2 0x18d9 000018d4: DUP3 000018d5: PUSH2 0x18c1 000018d8: JUMP 000018d9: JUMPDEST 000018da: SWAP1 000018db: POP 000018dc: SWAP2 000018dd: SWAP1 000018de: POP 000018df: JUMP 000018e0: JUMPDEST 000018e1: PUSH1 0x00 000018e3: PUSH2 0x18eb 000018e6: DUP3 000018e7: PUSH2 0x18ce 000018ea: JUMP 000018eb: JUMPDEST 000018ec: SWAP1 000018ed: POP 000018ee: SWAP2 000018ef: SWAP1 000018f0: POP 000018f1: JUMP 000018f2: JUMPDEST 000018f3: PUSH2 0x1903 000018f6: PUSH2 0x18fe 000018f9: DUP3 000018fa: PUSH2 0x0ce3 000018fd: JUMP 000018fe: JUMPDEST 000018ff: PUSH2 0x18e0 00001902: JUMP 00001903: JUMPDEST 00001904: DUP3 00001905: MSTORE 00001906: POP 00001907: POP 00001908: JUMP 00001909: JUMPDEST 0000190a: PUSH1 0x00 0000190c: DUP2 0000190d: SWAP1 0000190e: POP 0000190f: SWAP2 00001910: SWAP1 00001911: POP 00001912: JUMP 00001913: JUMPDEST 00001914: PUSH2 0x1924 00001917: PUSH2 0x191f 0000191a: DUP3 0000191b: PUSH2 0x0d04 0000191e: JUMP 0000191f: JUMPDEST 00001920: PUSH2 0x1909 00001923: JUMP 00001924: JUMPDEST 00001925: DUP3 00001926: MSTORE 00001927: POP 00001928: POP 00001929: JUMP 0000192a: JUMPDEST 0000192b: PUSH1 0x00 0000192d: PUSH2 0x1936 00001930: DUP3 00001931: DUP9 00001932: PUSH2 0x18f2 00001935: JUMP 00001936: JUMPDEST 00001937: PUSH1 0x14 00001939: DUP3 0000193a: ADD 0000193b: SWAP2 0000193c: POP 0000193d: PUSH2 0x1946 00001940: DUP3 00001941: DUP8 00001942: PUSH2 0x18f2 00001945: JUMP 00001946: JUMPDEST 00001947: PUSH1 0x14 00001949: DUP3 0000194a: ADD 0000194b: SWAP2 0000194c: POP 0000194d: PUSH2 0x1956 00001950: DUP3 00001951: DUP7 00001952: PUSH2 0x1913 00001955: JUMP 00001956: JUMPDEST 00001957: PUSH1 0x20 00001959: DUP3 0000195a: ADD 0000195b: SWAP2 0000195c: POP 0000195d: PUSH2 0x1966 00001960: DUP3 00001961: DUP6 00001962: PUSH2 0x1847 00001965: JUMP 00001966: JUMPDEST 00001967: SWAP2 00001968: POP 00001969: PUSH2 0x1972 0000196c: DUP3 0000196d: DUP5 0000196e: PUSH2 0x1913 00001971: JUMP 00001972: JUMPDEST 00001973: PUSH1 0x20 00001975: DUP3 00001976: ADD 00001977: SWAP2 00001978: POP 00001979: DUP2 0000197a: SWAP1 0000197b: POP 0000197c: SWAP7 0000197d: SWAP6 0000197e: POP 0000197f: POP 00001980: POP 00001981: POP 00001982: POP 00001983: POP 00001984: JUMP 00001985: INVALID 00001986: LOG2 00001987: PUSH5 0x6970667358 0000198d: UNKNOWN(0x22) 0000198e: SLT 0000198f: KECCAK256 00001990: SHR 00001991: UNKNOWN(0xDE) 00001992: SWAP7 00001993: DUP2 00001994: ORIGIN 00001995: AND 00001996: DUP5 00001997: UNKNOWN(0xB6) 00001998: UNKNOWN(0xD8) 00001999: UNKNOWN(0xD0) 0000199a: JUMPDEST 0000199b: CALLDATACOPY 0000199c: CALLVALUE 0000199d: UNKNOWN(0xC1) 0000199e: CREATE 0000199f: UNKNOWN(0x2D) 000019a0: UNKNOWN(0xCD) 000019a1: UNKNOWN(0xBE) 000019a2: UNKNOWN(0xEB) 000019a3: CALL 000019a4: NOT 000019a5: DUP6 000019a6: UNKNOWN(0xE4) 000019a7: DUP8 000019a8: UNKNOWN(0xD8) 000019a9: REVERT 000019aa: UNKNOWN(0x23) 000019ab: TIMESTAMP 000019ac: BYTE 000019ad: CALLER 000019ae: PUSH20
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | slither | OwnbitMultiSig.spend(address,uint256,uint8[],bytes32[],bytes32[],bytes) (contracts/Contract.sol#116-123) sends eth to arbitrary user | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "arbitrary-send-eth",
"elements": [
{
"name": "spend",
"type": "function",
"source_mapping": {
"lines": [
116,
117,
118,
119,
120,
121,
122,
123
],
"start": 5206,
"length": 551,
"ending_column": 19,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 176,
"filename_absolute": "/tmp/slither-1amkpmi8/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "OwnbitMultiSig",
"type": "contract",
"source_mapping": {
"lines": [
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213
],
"start": 1236,
"length": 8017,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 2,
"filename_absolute": "/tmp/slither-1amkpmi8/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "spend(address,uint256,uint8[],bytes32[],bytes32[],bytes)"
}
},
{
"name": "(sent,_ret) = destination.call{value: value}(data)",
"type": "node",
"source_mapping": {
"lines": [
120,
121,
122
],
"start": 5621,
"length": 69,
"ending_column": 21,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 77,
"filename_absolute": "/tmp/slither-1amkpmi8/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "spend",
"type": "function",
"source_mapping": {
"lines": [
116,
117,
118,
119,
120,
121,
122,
123
],
"start": 5206,
"length": 551,
"ending_column": 19,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 176,
"filename_absolute": "/tmp/slither-1amkpmi8/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
},
"type_specific_fields": {
"parent": {
"name": "OwnbitMultiSig",
"type": "contract",
"source_mapping": {
"lines": [
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213
],
"start": 1236,
"length": 8017,
"ending_column": 27,
"is_dependency": false,
"filename_short": "contracts/Contract.sol",
"starting_column": 2,
"filename_absolute": "/tmp/slither-1amkpmi8/contracts/Contract.sol",
"filename_relative": "contracts/Contract.sol"
}
},
"signature": "spend(address,uint256,uint8[],bytes32[],bytes32[],bytes)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Contract.sol",
"name": "spend",
"type": "function",
"lines": [
116,
117,
118,
119,
120,
121,
122,
123
]
},
{
"file": "contracts/Contract.sol",
"name": "(sent,_ret) = destination.call{value: value}(data)",
"type": "node",
"lines": [
120,
121,
122
]
}
],
"description": "OwnbitMultiSig.spend(address,uint256,uint8[],bytes32[],bytes32[],bytes) (contracts/Contract.sol#116-123) sends eth to arbitrary user\n\tDangerous calls:\n\t- (sent,_ret) = destination.call{value: value}(data) (contracts/Contract.sol#120-122)"
}
|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x7c99df4a",
"selector": "0x7c99df4a",
"calldata_variants": [
"0x7c99df4a",
"0x7c99df4a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa0e67e2b",
"selector": "0xa0e67e2b",
"calldata_variants": [
"0xa0e67e2b",
"0xa0e67e2b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc6a2a9f1",
"selector": "0xc6a2a9f1",
"calldata_variants": [
"0xc6a2a9f1",
"0xc6a2a9f10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd74f8edd",
"selector": "0xd74f8edd",
"calldata_variants": [
"0xd74f8edd",
"0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf23a6e61",
"selector": "0xf23a6e61",
"calldata_variants": [
"0xf23a6e61",
"0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3acb258",
"selector": "0xf3acb258",
"calldata_variants": [
"0xf3acb258",
"0xf3acb2580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02fb0c5e",
"selector": "0x02fb0c5e",
"calldata_variants": [
"0x02fb0c5e",
"0x02fb0c5e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1398a5f6",
"selector": "0x1398a5f6",
"calldata_variants": [
"0x1398a5f6",
"0x1398a5f60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 6548,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x53d72b4b7f1da11f71a14bf699aa936b2f56df286432b202782f5b827fab9fc3
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 22,
"trace_id": "0x53d72b4b7f1da11f71a14bf699aa936b2f56df286432b202782f5b827fab9fc3",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0x7c99df4a",
"selector": "0x7c99df4a",
"calldata_variants": [
"0x7c99df4a",
"0x7c99df4a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa0e67e2b",
"selector": "0xa0e67e2b",
"calldata_variants": [
"0xa0e67e2b",
"0xa0e67e2b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc6a2a9f1",
"selector": "0xc6a2a9f1",
"calldata_variants": [
"0xc6a2a9f1",
"0xc6a2a9f10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd74f8edd",
"selector": "0xd74f8edd",
"calldata_variants": [
"0xd74f8edd",
"0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf23a6e61",
"selector": "0xf23a6e61",
"calldata_variants": [
"0xf23a6e61",
"0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3acb258",
"selector": "0xf3acb258",
"calldata_variants": [
"0xf3acb258",
"0xf3acb2580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02fb0c5e",
"selector": "0x02fb0c5e",
"calldata_variants": [
"0x02fb0c5e",
"0x02fb0c5e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1398a5f6",
"selector": "0x1398a5f6",
"calldata_variants": [
"0x1398a5f6",
"0x1398a5f60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 0
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0x923ccc44cf404223315e78396ac44e7e4c27418d71cb8c7c96b8bb026477eeaf
call_targets:
0xb916796bacee1d6553b86ae05d9dd4c5e8d0b057
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x923ccc44cf404223315e78396ac44e7e4c27418d71cb8c7c96b8bb026477eeaf",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb916796bacee1d6553b86ae05d9dd4c5e8d0b057"
],
"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": "0x7c99df4a",
"selector": "0x7c99df4a",
"calldata_variants": [
"0x7c99df4a",
"0x7c99df4a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa0e67e2b",
"selector": "0xa0e67e2b",
"calldata_variants": [
"0xa0e67e2b",
"0xa0e67e2b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc6a2a9f1",
"selector": "0xc6a2a9f1",
"calldata_variants": [
"0xc6a2a9f1",
"0xc6a2a9f10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd74f8edd",
"selector": "0xd74f8edd",
"calldata_variants": [
"0xd74f8edd",
"0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf23a6e61",
"selector": "0xf23a6e61",
"calldata_variants": [
"0xf23a6e61",
"0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3acb258",
"selector": "0xf3acb258",
"calldata_variants": [
"0xf3acb258",
"0xf3acb2580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02fb0c5e",
"selector": "0x02fb0c5e",
"calldata_variants": [
"0x02fb0c5e",
"0x02fb0c5e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1398a5f6",
"selector": "0x1398a5f6",
"calldata_variants": [
"0x1398a5f6",
"0x1398a5f60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1387,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6563,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [
{
"pc": 6548,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 2
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0x923ccc44cf404223315e78396ac44e7e4c27418d71cb8c7c96b8bb026477eeaf
call_targets:
0xb916796bacee1d6553b86ae05d9dd4c5e8d0b057
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x923ccc44cf404223315e78396ac44e7e4c27418d71cb8c7c96b8bb026477eeaf",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0xb916796bacee1d6553b86ae05d9dd4c5e8d0b057"
],
"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": "0x7c99df4a",
"selector": "0x7c99df4a",
"calldata_variants": [
"0x7c99df4a",
"0x7c99df4a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa0e67e2b",
"selector": "0xa0e67e2b",
"calldata_variants": [
"0xa0e67e2b",
"0xa0e67e2b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc6a2a9f1",
"selector": "0xc6a2a9f1",
"calldata_variants": [
"0xc6a2a9f1",
"0xc6a2a9f10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd74f8edd",
"selector": "0xd74f8edd",
"calldata_variants": [
"0xd74f8edd",
"0xd74f8edd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf23a6e61",
"selector": "0xf23a6e61",
"calldata_variants": [
"0xf23a6e61",
"0xf23a6e610000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3acb258",
"selector": "0xf3acb258",
"calldata_variants": [
"0xf3acb258",
"0xf3acb2580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x02fb0c5e",
"selector": "0x02fb0c5e",
"calldata_variants": [
"0x02fb0c5e",
"0x02fb0c5e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1398a5f6",
"selector": "0x1398a5f6",
"calldata_variants": [
"0x1398a5f6",
"0x1398a5f60000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1387,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6563,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": [
{
"pc": 6548,
"type": "tx_origin_used"
}
]
}
|
| low | other | codex | External call result ignored; nonce advances even on failed transfer | 65 | no | — |
viewevidence_json{
"evidence": "spend() increments spendNonce before executing destination.call and ignores _ret; it does not revert when sent is false.",
"locations": [
"contracts/Contract.sol:spend"
],
"recommendation": "Require the call to succeed and validate ERC20 return data when calling token contracts; revert on failure so the nonce is not consumed and no misleading event is emitted.",
"exploit_scenario": "A signed spend can fail (e.g., destination reverts or ERC20 returns false without reverting). The contract still increments spendNonce and may emit Spent, consuming the signed nonce and forcing owners to re-sign; for ERC20s that return false, observers may think the transfer succeeded even though it did not."
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 0
}
|
| info | auth | codex | Signed message lacks chain-id domain separation | 60 | no | — |
viewevidence_json{
"evidence": "generateMessageToSign hashes address(this), destination, value, data, spendNonce only.",
"locations": [
"contracts/Contract.sol:generateMessageToSign"
],
"recommendation": "Include block.chainid in the signed message (or use EIP-712 domain separation) to prevent cross-chain replay.",
"exploit_scenario": "If the multisig is deployed at the same address on another chain (e.g., via CREATE2), a valid signature on one chain can be replayed on the other because the signed digest does not include chain-id."
}
|