12545c16-2165-45b2-b65c-c39c1cd44d83
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 |
|---|---|---|---|---|
| 31226 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 95167 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 95168 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 95169 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 95170 | capability.graph | complete | 1 / 3 | 1 week ago |
| 95171 | detector.run | complete | 1 / 3 | 1 week ago |
| 95172 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:559330] OpenAI Codex v0.77.0 (research preview)
[codex:559330] --------
[codex:559330] workdir: /tmp/codex-multi-hl527syp
[codex:559330] model: gpt-5.2-codex
[codex:559330] provider: openai
[codex:559330] approval: never
[codex:559330] sandbox: read-only
[codex:559330] reasoning effort: xhigh
[codex:559330] reasoning summaries: auto
[codex:559330] session id: 019b7d1f-720d-70c0-8918-e368a95d9d20
[codex:559330] --------
[codex:559330] user
[codex:559330] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:559330]
[codex:559330] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:559330]
[codex:559330] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:559330] - Gas inefficiency, code quality, naming, or best practices
[codex:559330] - Theoretical vulnerabilities without a clear extraction path
[codex:559330] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:559330] - Front-running unless it enables theft beyond MEV
[codex:559330] - DoS, griefing, or issues that don't result in attacker profit
[codex:559330] - Missing events, view function issues, or informational findings
[codex:559330]
[codex:559330] HIGH-VALUE PATTERNS TO HUNT:
[codex:559330] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:559330] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:559330] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:559330] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:559330] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:559330] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:559330] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:559330] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:559330] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:559330]
[codex:559330] For each finding, you MUST provide:
[codex:559330] 1. Exact file and line numbers of vulnerable code
[codex:559330] 2. Step-by-step exploit transaction sequence
[codex:559330] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:559330]
[codex:559330] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:559330]
[codex:559330] Output MUST be valid JSON matching the provided schema.
[codex:559330] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:559330] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:559330] mcp startup: no servers
[codex:559330]
[codex:559330] thinking
[codex:559330] **Checking instructions and audit files**
[codex:559330] exec
[codex:559330] /bin/bash -lc ls in /tmp/codex-multi-hl527syp succeeded in 5ms:
[codex:559330] AUDIT_BUNDLE.txt
[codex:559330] codex-output-schema.json
[codex:559330] contracts
[codex:559330] exec
[codex:559330] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-hl527syp succeeded in 5ms:
[codex:559330] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:559330]
[codex:559330] ================================================================================
[codex:559330] FILE: contracts/SafeMath.sol
[codex:559330] ================================================================================
[codex:559330] // SPDX-License-Identifier: MIT
[codex:559330]
[codex:559330] pragma solidity >=0.6.0 <0.8.0;
[codex:559330]
[codex:559330] /**
[codex:559330] * @dev Wrappers over Solidity's arithmetic operations with added overflow
[codex:559330] * checks.
[codex:559330] *
[codex:559330] * Arithmetic operations in Solidity wrap on overflow. This can easily result
[codex:559330] * in bugs, because programmers usually assume that an overflow raises an
[codex:559330] * error, which is the standard behavior in high level programming languages.
[codex:559330] * `SafeMath` restores this intuition by reverting the transaction when an
[codex:559330] * operation overflows.
[codex:559330] *
[codex:559330] * Using this library instead of the unchecked operations eliminates an entire
[codex:559330]
[codex:559330] thinking
[codex:559330] **Requesting more file content**
[codex:559330] exec
[codex:559330] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-hl527syp succeeded in 5ms:
[codex:559330] /**
[codex:559330] * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
[codex:559330] * reverting with custom message when dividing by zero.
[codex:559330] *
[codex:559330] * CAUTION: This function is deprecated because it requires allocating memory for the error
[codex:559330] * message unnecessarily. For custom revert reasons use {tryMod}.
[codex:559330] *
[codex:559330] * Counterpart to Solidity's `%` operator. This function uses a `revert`
[codex:559330] * opcode (which leaves remaining gas untouched) while Solidity uses an
[codex:559330] * invalid opcode to revert (consuming all remaining gas).
[codex:559330] *
[codex:559330] * Requirements:
[codex:559330] *
[codex:559330] * - The divisor cannot be zero.
[codex:559330] */
[codex:559330] function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
[codex:559330] require(b > 0, errorMessage);
[codex:559330] return a % b;
[codex:559330] }
[codex:559330] }
[codex:559330]
[codex:559330] thinking
[codex:559330] **Checking contents of AUDIT_BUNDLE**
[codex:559330] exec
[codex:559330] /bin/bash -lc 'tail -n 20 AUDIT_BUNDLE.txt' in /tmp/codex-multi-hl527syp succeeded in 5ms:
[codex:559330] callData = data;
[codex:559330] } else {
[codex:559330] callData = abi.encodePacked(bytes4(keccak256(bytes(signature))), data);
[codex:559330] }
[codex:559330]
[codex:559330] // solium-disable-next-line security/no-call-value
[codex:559330] (bool success, bytes memory returnData) = target.call{value: value}(callData);
[codex:559330] require(success, "Timelock::executeTransaction: Transaction execution reverted.");
[codex:559330]
[codex:559330] emit ExecuteTransaction(txHash, target, value, signature, data, eta);
[codex:559330]
[codex:559330] return returnData;
[codex:559330] }
[codex:559330]
[codex:559330] function getBlockTimestamp() internal view returns (uint) {
[codex:559330] // solium-disable-next-line security/no-block-members
[codex:559330] return block.timestamp;
[codex:559330] }
[codex:559330] }
[codex:559330]
[codex:559330]
[codex:559330] thinking
[codex:559330] **Analyzing Timelock and SafeMath security**
[codex:559330] codex
[codex:559330] {"no_findings":true,"summary":"Reviewed AUDIT_BUNDLE.txt (SafeMath and Timelock). No concrete, exploitable profit paths found for an external attacker under the given assumptions.","findings":[]}
[codex:559330] tokens used
[codex:559330] 6,628
[codex:559330] {"no_findings":true,"summary":"Reviewed AUDIT_BUNDLE.txt (SafeMath and Timelock). No concrete, exploitable profit paths found for an external attacker under the given assumptions.","findings":[]}
{
"codex": {
"ran_at": "2026-01-02T05:13:08.926294+00:00",
"returncode": 0
},
"summary": "Reviewed AUDIT_BUNDLE.txt (SafeMath and Timelock). No concrete, exploitable profit paths found for an external attacker under the given assumptions.",
"raw_final": {
"summary": "Reviewed AUDIT_BUNDLE.txt (SafeMath and Timelock). No concrete, exploitable profit paths found for an external attacker under the given assumptions.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x00d6 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x6a42b8f8 00000019: GT 0000001a: PUSH2 0x007f 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xc1a287e2 00000024: GT 00000025: PUSH2 0x0059 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xc1a287e2 0000002f: EQ 00000030: PUSH2 0x064a 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xe177246e 0000003a: EQ 0000003b: PUSH2 0x065f 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xf2b06537 00000045: EQ 00000046: PUSH2 0x0689 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf851a440 00000050: EQ 00000051: PUSH2 0x06c7 00000054: JUMPI 00000055: PUSH2 0x00dd 00000058: JUMP 00000059: JUMPDEST 0000005a: DUP1 0000005b: PUSH4 0x6a42b8f8 00000060: EQ 00000061: PUSH2 0x060b 00000064: JUMPI 00000065: DUP1 00000066: PUSH4 0x7d645fab 0000006b: EQ 0000006c: PUSH2 0x0620 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xb1b43ae5 00000076: EQ 00000077: PUSH2 0x0635 0000007a: JUMPI 0000007b: PUSH2 0x00dd 0000007e: JUMP 0000007f: JUMPDEST 00000080: DUP1 00000081: PUSH4 0x3a66f901 00000086: GT 00000087: PUSH2 0x00b0 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0x3a66f901 00000091: EQ 00000092: PUSH2 0x02fd 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0x4dd18bf5 0000009c: EQ 0000009d: PUSH2 0x046d 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x591fcdfe 000000a7: EQ 000000a8: PUSH2 0x04ad 000000ab: JUMPI 000000ac: PUSH2 0x00dd 000000af: JUMP 000000b0: JUMPDEST 000000b1: DUP1 000000b2: PUSH4 0x0825f38f 000000b7: EQ 000000b8: PUSH2 0x00e2 000000bb: JUMPI 000000bc: DUP1 000000bd: PUSH4 0x0e18b681 000000c2: EQ 000000c3: PUSH2 0x02a8 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0x26782247 000000cd: EQ 000000ce: PUSH2 0x02bf 000000d1: JUMPI 000000d2: PUSH2 0x00dd 000000d5: JUMP 000000d6: JUMPDEST 000000d7: CALLDATASIZE 000000d8: PUSH2 0x00dd 000000db: JUMPI 000000dc: STOP 000000dd: JUMPDEST 000000de: PUSH1 0x00 000000e0: DUP1 000000e1: REVERT 000000e2: JUMPDEST 000000e3: PUSH2 0x0233 000000e6: PUSH1 0x04 000000e8: DUP1 000000e9: CALLDATASIZE 000000ea: SUB 000000eb: PUSH1 0xa0 000000ed: DUP2 000000ee: LT 000000ef: ISZERO 000000f0: PUSH2 0x00f8 000000f3: JUMPI 000000f4: PUSH1 0x00 000000f6: DUP1 000000f7: REVERT 000000f8: JUMPDEST 000000f9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000010e: DUP3 0000010f: CALLDATALOAD 00000110: AND 00000111: SWAP2 00000112: PUSH1 0x20 00000114: DUP2 00000115: ADD 00000116: CALLDATALOAD 00000117: SWAP2 00000118: DUP2 00000119: ADD 0000011a: SWAP1 0000011b: PUSH1 0x60 0000011d: DUP2 0000011e: ADD 0000011f: PUSH1 0x40 00000121: DUP3 00000122: ADD 00000123: CALLDATALOAD 00000124: PUSH5 0x0100000000 0000012a: DUP2 0000012b: GT 0000012c: ISZERO 0000012d: PUSH2 0x0135 00000130: JUMPI 00000131: PUSH1 0x00 00000133: DUP1 00000134: REVERT 00000135: JUMPDEST 00000136: DUP3 00000137: ADD 00000138: DUP4 00000139: PUSH1 0x20 0000013b: DUP3 0000013c: ADD 0000013d: GT 0000013e: ISZERO 0000013f: PUSH2 0x0147 00000142: JUMPI 00000143: PUSH1 0x00 00000145: DUP1 00000146: REVERT 00000147: JUMPDEST 00000148: DUP1 00000149: CALLDATALOAD 0000014a: SWAP1 0000014b: PUSH1 0x20 0000014d: ADD 0000014e: SWAP2 0000014f: DUP5 00000150: PUSH1 0x01 00000152: DUP4 00000153: MUL 00000154: DUP5 00000155: ADD 00000156: GT 00000157: PUSH5 0x0100000000 0000015d: DUP4 0000015e: GT 0000015f: OR 00000160: ISZERO 00000161: PUSH2 0x0169 00000164: JUMPI 00000165: PUSH1 0x00 00000167: DUP1 00000168: REVERT 00000169: JUMPDEST 0000016a: SWAP2 0000016b: SWAP1 0000016c: DUP1 0000016d: DUP1 0000016e: PUSH1 0x1f 00000170: ADD 00000171: PUSH1 0x20 00000173: DUP1 00000174: SWAP2 00000175: DIV 00000176: MUL 00000177: PUSH1 0x20 00000179: ADD 0000017a: PUSH1 0x40 0000017c: MLOAD 0000017d: SWAP1 0000017e: DUP2 0000017f: ADD 00000180: PUSH1 0x40 00000182: MSTORE 00000183: DUP1 00000184: SWAP4 00000185: SWAP3 00000186: SWAP2 00000187: SWAP1 00000188: DUP2 00000189: DUP2 0000018a: MSTORE 0000018b: PUSH1 0x20 0000018d: ADD 0000018e: DUP4 0000018f: DUP4 00000190: DUP1 00000191: DUP3 00000192: DUP5 00000193: CALLDATACOPY 00000194: PUSH1 0x00 00000196: SWAP3 00000197: ADD 00000198: SWAP2 00000199: SWAP1 0000019a: SWAP2 0000019b: MSTORE 0000019c: POP 0000019d: SWAP3 0000019e: SWAP6 0000019f: SWAP5 000001a0: SWAP4 000001a1: PUSH1 0x20 000001a3: DUP2 000001a4: ADD 000001a5: SWAP4 000001a6: POP 000001a7: CALLDATALOAD 000001a8: SWAP2 000001a9: POP 000001aa: POP 000001ab: PUSH5 0x0100000000 000001b1: DUP2 000001b2: GT 000001b3: ISZERO 000001b4: PUSH2 0x01bc 000001b7: JUMPI 000001b8: PUSH1 0x00 000001ba: DUP1 000001bb: REVERT 000001bc: JUMPDEST 000001bd: DUP3 000001be: ADD 000001bf: DUP4 000001c0: PUSH1 0x20 000001c2: DUP3 000001c3: ADD 000001c4: GT 000001c5: ISZERO 000001c6: PUSH2 0x01ce 000001c9: JUMPI 000001ca: PUSH1 0x00 000001cc: DUP1 000001cd: REVERT 000001ce: JUMPDEST 000001cf: DUP1 000001d0: CALLDATALOAD 000001d1: SWAP1 000001d2: PUSH1 0x20 000001d4: ADD 000001d5: SWAP2 000001d6: DUP5 000001d7: PUSH1 0x01 000001d9: DUP4 000001da: MUL 000001db: DUP5 000001dc: ADD 000001dd: GT 000001de: PUSH5 0x0100000000 000001e4: DUP4 000001e5: GT 000001e6: OR 000001e7: ISZERO 000001e8: PUSH2 0x01f0 000001eb: JUMPI 000001ec: PUSH1 0x00 000001ee: DUP1 000001ef: REVERT 000001f0: JUMPDEST 000001f1: SWAP2 000001f2: SWAP1 000001f3: DUP1 000001f4: DUP1 000001f5: PUSH1 0x1f 000001f7: ADD 000001f8: PUSH1 0x20 000001fa: DUP1 000001fb: SWAP2 000001fc: DIV 000001fd: MUL 000001fe: PUSH1 0x20 00000200: ADD 00000201: PUSH1 0x40 00000203: MLOAD 00000204: SWAP1 00000205: DUP2 00000206: ADD 00000207: PUSH1 0x40 00000209: MSTORE 0000020a: DUP1 0000020b: SWAP4 0000020c: SWAP3 0000020d: SWAP2 0000020e: SWAP1 0000020f: DUP2 00000210: DUP2 00000211: MSTORE 00000212: PUSH1 0x20 00000214: ADD 00000215: DUP4 00000216: DUP4 00000217: DUP1 00000218: DUP3 00000219: DUP5 0000021a: CALLDATACOPY 0000021b: PUSH1 0x00 0000021d: SWAP3 0000021e: ADD 0000021f: SWAP2 00000220: SWAP1 00000221: SWAP2 00000222: MSTORE 00000223: POP 00000224: SWAP3 00000225: SWAP6 00000226: POP 00000227: POP 00000228: SWAP2 00000229: CALLDATALOAD 0000022a: SWAP3 0000022b: POP 0000022c: PUSH2 0x06dc 0000022f: SWAP2 00000230: POP 00000231: POP 00000232: JUMP 00000233: JUMPDEST 00000234: PUSH1 0x40 00000236: DUP1 00000237: MLOAD 00000238: PUSH1 0x20 0000023a: DUP1 0000023b: DUP3 0000023c: MSTORE 0000023d: DUP4 0000023e: MLOAD 0000023f: DUP2 00000240: DUP4 00000241: ADD 00000242: MSTORE 00000243: DUP4 00000244: MLOAD 00000245: SWAP2 00000246: SWAP3 00000247: DUP4 00000248: SWAP3 00000249: SWAP1 0000024a: DUP4 0000024b: ADD 0000024c: SWAP2 0000024d: DUP6 0000024e: ADD 0000024f: SWAP1 00000250: DUP1 00000251: DUP4 00000252: DUP4 00000253: PUSH1 0x00 00000255: JUMPDEST 00000256: DUP4 00000257: DUP2 00000258: LT 00000259: ISZERO 0000025a: PUSH2 0x026d 0000025d: JUMPI 0000025e: DUP2 0000025f: DUP2 00000260: ADD 00000261: MLOAD 00000262: DUP4 00000263: DUP3 00000264: ADD 00000265: MSTORE 00000266: PUSH1 0x20 00000268: ADD 00000269: PUSH2 0x0255 0000026c: JUMP 0000026d: JUMPDEST 0000026e: POP 0000026f: POP 00000270: POP 00000271: POP 00000272: SWAP1 00000273: POP 00000274: SWAP1 00000275: DUP2 00000276: ADD 00000277: SWAP1 00000278: PUSH1 0x1f 0000027a: AND 0000027b: DUP1 0000027c: ISZERO 0000027d: PUSH2 0x029a 00000280: JUMPI 00000281: DUP1 00000282: DUP3 00000283: SUB 00000284: DUP1 00000285: MLOAD 00000286: PUSH1 0x01 00000288: DUP4 00000289: PUSH1 0x20 0000028b: SUB 0000028c: PUSH2 0x0100 0000028f: EXP 00000290: SUB 00000291: NOT 00000292: AND 00000293: DUP2 00000294: MSTORE 00000295: PUSH1 0x20 00000297: ADD 00000298: SWAP2 00000299: POP 0000029a: JUMPDEST 0000029b: POP 0000029c: SWAP3 0000029d: POP 0000029e: POP 0000029f: POP 000002a0: PUSH1 0x40 000002a2: MLOAD 000002a3: DUP1 000002a4: SWAP2 000002a5: SUB 000002a6: SWAP1 000002a7: RETURN 000002a8: JUMPDEST 000002a9: CALLVALUE 000002aa: DUP1 000002ab: ISZERO 000002ac: PUSH2 0x02b4 000002af: JUMPI 000002b0: PUSH1 0x00 000002b2: DUP1 000002b3: REVERT 000002b4: JUMPDEST 000002b5: POP 000002b6: PUSH2 0x02bd 000002b9: PUSH2 0x0d5a 000002bc: JUMP 000002bd: JUMPDEST 000002be: STOP 000002bf: JUMPDEST 000002c0: CALLVALUE 000002c1: DUP1 000002c2: ISZERO 000002c3: PUSH2 0x02cb 000002c6: JUMPI 000002c7: PUSH1 0x00 000002c9: DUP1 000002ca: REVERT 000002cb: JUMPDEST 000002cc: POP 000002cd: PUSH2 0x02d4 000002d0: PUSH2 0x0e42 000002d3: JUMP 000002d4: JUMPDEST 000002d5: PUSH1 0x40 000002d7: DUP1 000002d8: MLOAD 000002d9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000002ee: SWAP1 000002ef: SWAP3 000002f0: AND 000002f1: DUP3 000002f2: MSTORE 000002f3: MLOAD 000002f4: SWAP1 000002f5: DUP2 000002f6: SWAP1 000002f7: SUB 000002f8: PUSH1 0x20 000002fa: ADD 000002fb: SWAP1 000002fc: RETURN 000002fd: JUMPDEST 000002fe: CALLVALUE 000002ff: DUP1 00000300: ISZERO 00000301: PUSH2 0x0309 00000304: JUMPI 00000305: PUSH1 0x00 00000307: DUP1 00000308: REVERT 00000309: JUMPDEST 0000030a: POP 0000030b: PUSH2 0x045b 0000030e: PUSH1 0x04 00000310: DUP1 00000311: CALLDATASIZE 00000312: SUB 00000313: PUSH1 0xa0 00000315: DUP2 00000316: LT 00000317: ISZERO 00000318: PUSH2 0x0320 0000031b: JUMPI 0000031c: PUSH1 0x00 0000031e: DUP1 0000031f: REVERT 00000320: JUMPDEST 00000321: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000336: DUP3 00000337: CALLDATALOAD 00000338: AND 00000339: SWAP2 0000033a: PUSH1 0x20 0000033c: DUP2 0000033d: ADD 0000033e: CALLDATALOAD 0000033f: SWAP2 00000340: DUP2 00000341: ADD 00000342: SWAP1 00000343: PUSH1 0x60 00000345: DUP2 00000346: ADD 00000347: PUSH1 0x40 00000349: DUP3 0000034a: ADD 0000034b: CALLDATALOAD 0000034c: PUSH5 0x0100000000 00000352: DUP2 00000353: GT 00000354: ISZERO 00000355: PUSH2 0x035d 00000358: JUMPI 00000359: PUSH1 0x00 0000035b: DUP1 0000035c: REVERT 0000035d: JUMPDEST 0000035e: DUP3 0000035f: ADD 00000360: DUP4 00000361: PUSH1 0x20 00000363: DUP3 00000364: ADD 00000365: GT 00000366: ISZERO 00000367: PUSH2 0x036f 0000036a: JUMPI 0000036b: PUSH1 0x00 0000036d: DUP1 0000036e: REVERT 0000036f: JUMPDEST 00000370: DUP1 00000371: CALLDATALOAD 00000372: SWAP1 00000373: PUSH1 0x20 00000375: ADD 00000376: SWAP2 00000377: DUP5 00000378: PUSH1 0x01 0000037a: DUP4 0000037b: MUL 0000037c: DUP5 0000037d: ADD 0000037e: GT 0000037f: PUSH5 0x0100000000 00000385: DUP4 00000386: GT 00000387: OR 00000388: ISZERO 00000389: PUSH2 0x0391 0000038c: JUMPI 0000038d: PUSH1 0x00 0000038f: DUP1 00000390: REVERT 00000391: JUMPDEST 00000392: SWAP2 00000393: SWAP1 00000394: DUP1 00000395: DUP1 00000396: PUSH1 0x1f 00000398: ADD 00000399: PUSH1 0x20 0000039b: DUP1 0000039c: SWAP2 0000039d: DIV 0000039e: MUL 0000039f: PUSH1 0x20 000003a1: ADD 000003a2: PUSH1 0x40 000003a4: MLOAD 000003a5: SWAP1 000003a6: DUP2 000003a7: ADD 000003a8: PUSH1 0x40 000003aa: MSTORE 000003ab: DUP1 000003ac: SWAP4 000003ad: SWAP3 000003ae: SWAP2 000003af: SWAP1 000003b0: DUP2 000003b1: DUP2 000003b2: MSTORE 000003b3: PUSH1 0x20 000003b5: ADD 000003b6: DUP4 000003b7: DUP4 000003b8: DUP1 000003b9: DUP3 000003ba: DUP5 000003bb: CALLDATACOPY 000003bc: PUSH1 0x00 000003be: SWAP3 000003bf: ADD 000003c0: SWAP2 000003c1: SWAP1 000003c2: SWAP2 000003c3: MSTORE 000003c4: POP 000003c5: SWAP3 000003c6: SWAP6 000003c7: SWAP5 000003c8: SWAP4 000003c9: PUSH1 0x20 000003cb: DUP2 000003cc: ADD 000003cd: SWAP4 000003ce: POP 000003cf: CALLDATALOAD 000003d0: SWAP2 000003d1: POP 000003d2: POP 000003d3: PUSH5 0x0100000000 000003d9: DUP2 000003da: GT 000003db: ISZERO 000003dc: PUSH2 0x03e4 000003df: JUMPI 000003e0: PUSH1 0x00 000003e2: DUP1 000003e3: REVERT 000003e4: JUMPDEST 000003e5: DUP3 000003e6: ADD 000003e7: DUP4 000003e8: PUSH1 0x20 000003ea: DUP3 000003eb: ADD 000003ec: GT 000003ed: ISZERO 000003ee: PUSH2 0x03f6 000003f1: JUMPI 000003f2: PUSH1 0x00 000003f4: DUP1 000003f5: REVERT 000003f6: JUMPDEST 000003f7: DUP1 000003f8: CALLDATALOAD 000003f9: SWAP1 000003fa: PUSH1 0x20 000003fc: ADD 000003fd: SWAP2 000003fe: DUP5 000003ff: PUSH1 0x01 00000401: DUP4 00000402: MUL 00000403: DUP5 00000404: ADD 00000405: GT 00000406: PUSH5 0x0100000000 0000040c: DUP4 0000040d: GT 0000040e: OR 0000040f: ISZERO 00000410: PUSH2 0x0418 00000413: JUMPI 00000414: PUSH1 0x00 00000416: DUP1 00000417: REVERT 00000418: JUMPDEST 00000419: SWAP2 0000041a: SWAP1 0000041b: DUP1 0000041c: DUP1 0000041d: PUSH1 0x1f 0000041f: ADD 00000420: PUSH1 0x20 00000422: DUP1 00000423: SWAP2 00000424: DIV 00000425: MUL 00000426: PUSH1 0x20 00000428: ADD 00000429: PUSH1 0x40 0000042b: MLOAD 0000042c: SWAP1 0000042d: DUP2 0000042e: ADD 0000042f: PUSH1 0x40 00000431: MSTORE 00000432: DUP1 00000433: SWAP4 00000434: SWAP3 00000435: SWAP2 00000436: SWAP1 00000437: DUP2 00000438: DUP2 00000439: MSTORE 0000043a: PUSH1 0x20 0000043c: ADD 0000043d: DUP4 0000043e: DUP4 0000043f: DUP1 00000440: DUP3 00000441: DUP5 00000442: CALLDATACOPY 00000443: PUSH1 0x00 00000445: SWAP3 00000446: ADD 00000447: SWAP2 00000448: SWAP1 00000449: SWAP2 0000044a: MSTORE 0000044b: POP 0000044c: SWAP3 0000044d: SWAP6 0000044e: POP 0000044f: POP 00000450: SWAP2 00000451: CALLDATALOAD 00000452: SWAP3 00000453: POP 00000454: PUSH2 0x0e5e 00000457: SWAP2 00000458: POP 00000459: POP 0000045a: JUMP 0000045b: JUMPDEST 0000045c: PUSH1 0x40 0000045e: DUP1 0000045f: MLOAD 00000460: SWAP2 00000461: DUP3 00000462: MSTORE 00000463: MLOAD 00000464: SWAP1 00000465: DUP2 00000466: SWAP1 00000467: SUB 00000468: PUSH1 0x20 0000046a: ADD 0000046b: SWAP1 0000046c: RETURN 0000046d: JUMPDEST 0000046e: CALLVALUE 0000046f: DUP1 00000470: ISZERO 00000471: PUSH2 0x0479 00000474: JUMPI 00000475: PUSH1 0x00 00000477: DUP1 00000478: REVERT 00000479: JUMPDEST 0000047a: POP 0000047b: PUSH2 0x02bd 0000047e: PUSH1 0x04 00000480: DUP1 00000481: CALLDATASIZE 00000482: SUB 00000483: PUSH1 0x20 00000485: DUP2 00000486: LT 00000487: ISZERO 00000488: PUSH2 0x0490 0000048b: JUMPI 0000048c: PUSH1 0x00 0000048e: DUP1 0000048f: REVERT 00000490: JUMPDEST 00000491: POP 00000492: CALLDATALOAD 00000493: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004a8: AND 000004a9: PUSH2 0x11d7 000004ac: JUMP 000004ad: JUMPDEST 000004ae: CALLVALUE 000004af: DUP1 000004b0: ISZERO 000004b1: PUSH2 0x04b9 000004b4: JUMPI 000004b5: PUSH1 0x00 000004b7: DUP1 000004b8: REVERT 000004b9: JUMPDEST 000004ba: POP 000004bb: PUSH2 0x02bd 000004be: PUSH1 0x04 000004c0: DUP1 000004c1: CALLDATASIZE 000004c2: SUB 000004c3: PUSH1 0xa0 000004c5: DUP2 000004c6: LT 000004c7: ISZERO 000004c8: PUSH2 0x04d0 000004cb: JUMPI 000004cc: PUSH1 0x00 000004ce: DUP1 000004cf: REVERT 000004d0: JUMPDEST 000004d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004e6: DUP3 000004e7: CALLDATALOAD 000004e8: AND 000004e9: SWAP2 000004ea: PUSH1 0x20 000004ec: DUP2 000004ed: ADD 000004ee: CALLDATALOAD 000004ef: SWAP2 000004f0: DUP2 000004f1: ADD 000004f2: SWAP1 000004f3: PUSH1 0x60 000004f5: DUP2 000004f6: ADD 000004f7: PUSH1 0x40 000004f9: DUP3 000004fa: ADD 000004fb: CALLDATALOAD 000004fc: PUSH5 0x0100000000 00000502: DUP2 00000503: GT 00000504: ISZERO 00000505: PUSH2 0x050d 00000508: JUMPI 00000509: PUSH1 0x00 0000050b: DUP1 0000050c: REVERT 0000050d: JUMPDEST 0000050e: DUP3 0000050f: ADD 00000510: DUP4 00000511: PUSH1 0x20 00000513: DUP3 00000514: ADD 00000515: GT 00000516: ISZERO 00000517: PUSH2 0x051f 0000051a: JUMPI 0000051b: PUSH1 0x00 0000051d: DUP1 0000051e: REVERT 0000051f: JUMPDEST 00000520: DUP1 00000521: CALLDATALOAD 00000522: SWAP1 00000523: PUSH1 0x20 00000525: ADD 00000526: SWAP2 00000527: DUP5 00000528: PUSH1 0x01 0000052a: DUP4 0000052b: MUL 0000052c: DUP5 0000052d: ADD 0000052e: GT 0000052f: PUSH5 0x0100000000 00000535: DUP4 00000536: GT 00000537: OR 00000538: ISZERO 00000539: PUSH2 0x0541 0000053c: JUMPI 0000053d: PUSH1 0x00 0000053f: DUP1 00000540: REVERT 00000541: JUMPDEST 00000542: SWAP2 00000543: SWAP1 00000544: DUP1 00000545: DUP1 00000546: PUSH1 0x1f 00000548: ADD 00000549: PUSH1 0x20 0000054b: DUP1 0000054c: SWAP2 0000054d: DIV 0000054e: MUL 0000054f: PUSH1 0x20 00000551: ADD 00000552: PUSH1 0x40 00000554: MLOAD 00000555: SWAP1 00000556: DUP2 00000557: ADD 00000558: PUSH1 0x40 0000055a: MSTORE 0000055b: DUP1 0000055c: SWAP4 0000055d: SWAP3 0000055e: SWAP2 0000055f: SWAP1 00000560: DUP2 00000561: DUP2 00000562: MSTORE 00000563: PUSH1 0x20 00000565: ADD 00000566: DUP4 00000567: DUP4 00000568: DUP1 00000569: DUP3 0000056a: DUP5 0000056b: CALLDATACOPY 0000056c: PUSH1 0x00 0000056e: SWAP3 0000056f: ADD 00000570: SWAP2 00000571: SWAP1 00000572: SWAP2 00000573: MSTORE 00000574: POP 00000575: SWAP3 00000576: SWAP6 00000577: SWAP5 00000578: SWAP4 00000579: PUSH1 0x20 0000057b: DUP2 0000057c: ADD 0000057d: SWAP4 0000057e: POP 0000057f: CALLDATALOAD 00000580: SWAP2 00000581: POP 00000582: POP 00000583: PUSH5 0x0100000000 00000589: DUP2 0000058a: GT 0000058b: ISZERO 0000058c: PUSH2 0x0594 0000058f: JUMPI 00000590: PUSH1 0x00 00000592: DUP1 00000593: REVERT 00000594: JUMPDEST 00000595: DUP3 00000596: ADD 00000597: DUP4 00000598: PUSH1 0x20 0000059a: DUP3 0000059b: ADD 0000059c: GT 0000059d: ISZERO 0000059e: PUSH2 0x05a6 000005a1: JUMPI 000005a2: PUSH1 0x00 000005a4: DUP1 000005a5: REVERT 000005a6: JUMPDEST 000005a7: DUP1 000005a8: CALLDATALOAD 000005a9: SWAP1 000005aa: PUSH1 0x20 000005ac: ADD 000005ad: SWAP2 000005ae: DUP5 000005af: PUSH1 0x01 000005b1: DUP4 000005b2: MUL 000005b3: DUP5 000005b4: ADD 000005b5: GT 000005b6: PUSH5 0x0100000000 000005bc: DUP4 000005bd: GT 000005be: OR 000005bf: ISZERO 000005c0: PUSH2 0x05c8 000005c3: JUMPI 000005c4: PUSH1 0x00 000005c6: DUP1 000005c7: REVERT 000005c8: JUMPDEST 000005c9: SWAP2 000005ca: SWAP1 000005cb: DUP1 000005cc: DUP1 000005cd: PUSH1 0x1f 000005cf: ADD 000005d0: PUSH1 0x20 000005d2: DUP1 000005d3: SWAP2 000005d4: DIV 000005d5: MUL 000005d6: PUSH1 0x20 000005d8: ADD 000005d9: PUSH1 0x40 000005db: MLOAD 000005dc: SWAP1 000005dd: DUP2 000005de: ADD 000005df: PUSH1 0x40 000005e1: MSTORE 000005e2: DUP1 000005e3: SWAP4 000005e4: SWAP3 000005e5: SWAP2 000005e6: SWAP1 000005e7: DUP2 000005e8: DUP2 000005e9: MSTORE 000005ea: PUSH1 0x20 000005ec: ADD 000005ed: DUP4 000005ee: DUP4 000005ef: DUP1 000005f0: DUP3 000005f1: DUP5 000005f2: CALLDATACOPY 000005f3: PUSH1 0x00 000005f5: SWAP3 000005f6: ADD 000005f7: SWAP2 000005f8: SWAP1 000005f9: SWAP2 000005fa: MSTORE 000005fb: POP 000005fc: SWAP3 000005fd: SWAP6 000005fe: POP 000005ff: POP 00000600: SWAP2 00000601: CALLDATALOAD 00000602: SWAP3 00000603: POP 00000604: PUSH2 0x12a4 00000607: SWAP2 00000608: POP 00000609: POP 0000060a: JUMP 0000060b: JUMPDEST 0000060c: CALLVALUE 0000060d: DUP1 0000060e: ISZERO 0000060f: PUSH2 0x0617 00000612: JUMPI 00000613: PUSH1 0x00 00000615: DUP1 00000616: REVERT 00000617: JUMPDEST 00000618: POP 00000619: PUSH2 0x045b 0000061c: PUSH2 0x15a8 0000061f: JUMP 00000620: JUMPDEST 00000621: CALLVALUE 00000622: DUP1 00000623: ISZERO 00000624: PUSH2 0x062c 00000627: JUMPI 00000628: PUSH1 0x00 0000062a: DUP1 0000062b: REVERT 0000062c: JUMPDEST 0000062d: POP 0000062e: PUSH2 0x045b 00000631: PUSH2 0x15ae 00000634: JUMP 00000635: JUMPDEST 00000636: CALLVALUE 00000637: DUP1 00000638: ISZERO 00000639: PUSH2 0x0641 0000063c: JUMPI 0000063d: PUSH1 0x00 0000063f: DUP1 00000640: REVERT 00000641: JUMPDEST 00000642: POP 00000643: PUSH2 0x045b 00000646: PUSH2 0x15b5 00000649: JUMP 0000064a: JUMPDEST 0000064b: CALLVALUE 0000064c: DUP1 0000064d: ISZERO 0000064e: PUSH2 0x0656 00000651: JUMPI 00000652: PUSH1 0x00 00000654: DUP1 00000655: REVERT 00000656: JUMPDEST 00000657: POP 00000658: PUSH2 0x045b 0000065b: PUSH2 0x15bc 0000065e: JUMP 0000065f: JUMPDEST 00000660: CALLVALUE 00000661: DUP1 00000662: ISZERO 00000663: PUSH2 0x066b 00000666: JUMPI 00000667: PUSH1 0x00 00000669: DUP1 0000066a: REVERT 0000066b: JUMPDEST 0000066c: POP 0000066d: PUSH2 0x02bd 00000670: PUSH1 0x04 00000672: DUP1 00000673: CALLDATASIZE 00000674: SUB 00000675: PUSH1 0x20 00000677: DUP2 00000678: LT 00000679: ISZERO 0000067a: PUSH2 0x0682 0000067d: JUMPI 0000067e: PUSH1 0x00 00000680: DUP1 00000681: REVERT 00000682: JUMPDEST 00000683: POP 00000684: CALLDATALOAD 00000685: PUSH2 0x15c3 00000688: JUMP 00000689: JUMPDEST 0000068a: CALLVALUE 0000068b: DUP1 0000068c: ISZERO 0000068d: PUSH2 0x0695 00000690: JUMPI 00000691: PUSH1 0x00 00000693: DUP1 00000694: REVERT 00000695: JUMPDEST 00000696: POP 00000697: PUSH2 0x06b3 0000069a: PUSH1 0x04 0000069c: DUP1 0000069d: CALLDATASIZE 0000069e: SUB 0000069f: PUSH1 0x20 000006a1: DUP2 000006a2: LT 000006a3: ISZERO 000006a4: PUSH2 0x06ac 000006a7: JUMPI 000006a8: PUSH1 0x00 000006aa: DUP1 000006ab: REVERT 000006ac: JUMPDEST 000006ad: POP 000006ae: CALLDATALOAD 000006af: PUSH2 0x1706 000006b2: JUMP 000006b3: JUMPDEST 000006b4: PUSH1 0x40 000006b6: DUP1 000006b7: MLOAD 000006b8: SWAP2 000006b9: ISZERO 000006ba: ISZERO 000006bb: DUP3 000006bc: MSTORE 000006bd: MLOAD 000006be: SWAP1 000006bf: DUP2 000006c0: SWAP1 000006c1: SUB 000006c2: PUSH1 0x20 000006c4: ADD 000006c5: SWAP1 000006c6: RETURN 000006c7: JUMPDEST 000006c8: CALLVALUE 000006c9: DUP1 000006ca: ISZERO 000006cb: PUSH2 0x06d3 000006ce: JUMPI 000006cf: PUSH1 0x00 000006d1: DUP1 000006d2: REVERT 000006d3: JUMPDEST 000006d4: POP 000006d5: PUSH2 0x02d4 000006d8: PUSH2 0x171b 000006db: JUMP 000006dc: JUMPDEST 000006dd: PUSH1 0x00 000006df: SLOAD 000006e0: PUSH1 0x60 000006e2: SWAP1 000006e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006f8: AND 000006f9: CALLER 000006fa: EQ 000006fb: PUSH2 0x074f 000006fe: JUMPI 000006ff: PUSH1 0x40 00000701: MLOAD 00000702: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000723: DUP2 00000724: MSTORE 00000725: PUSH1 0x04 00000727: ADD 00000728: DUP1 00000729: DUP1 0000072a: PUSH1 0x20 0000072c: ADD 0000072d: DUP3 0000072e: DUP2 0000072f: SUB 00000730: DUP3 00000731: MSTORE 00000732: PUSH1 0x38 00000734: DUP2 00000735: MSTORE 00000736: PUSH1 0x20 00000738: ADD 00000739: DUP1 0000073a: PUSH2 0x17b7 0000073d: PUSH1 0x38 0000073f: SWAP2 00000740: CODECOPY 00000741: PUSH1 0x40 00000743: ADD 00000744: SWAP2 00000745: POP 00000746: POP 00000747: PUSH1 0x40 00000749: MLOAD 0000074a: DUP1 0000074b: SWAP2 0000074c: SUB 0000074d: SWAP1 0000074e: REVERT 0000074f: JUMPDEST 00000750: PUSH1 0x00 00000752: DUP7 00000753: DUP7 00000754: DUP7 00000755: DUP7 00000756: DUP7 00000757: PUSH1 0x40 00000759: MLOAD 0000075a: PUSH1 0x20 0000075c: ADD 0000075d: DUP1 0000075e: DUP7 0000075f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000774: AND 00000775: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000078a: AND 0000078b: DUP2 0000078c: MSTORE 0000078d: PUSH1 0x20 0000078f: ADD 00000790: DUP6 00000791: DUP2 00000792: MSTORE 00000793: PUSH1 0x20 00000795: ADD 00000796: DUP1 00000797: PUSH1 0x20 00000799: ADD 0000079a: DUP1 0000079b: PUSH1 0x20 0000079d: ADD 0000079e: DUP5 0000079f: DUP2 000007a0: MSTORE 000007a1: PUSH1 0x20 000007a3: ADD 000007a4: DUP4 000007a5: DUP2 000007a6: SUB 000007a7: DUP4 000007a8: MSTORE 000007a9: DUP7 000007aa: DUP2 000007ab: DUP2 000007ac: MLOAD 000007ad: DUP2 000007ae: MSTORE 000007af: PUSH1 0x20 000007b1: ADD 000007b2: SWAP2 000007b3: POP 000007b4: DUP1 000007b5: MLOAD 000007b6: SWAP1 000007b7: PUSH1 0x20 000007b9: ADD 000007ba: SWAP1 000007bb: DUP1 000007bc: DUP4 000007bd: DUP4 000007be: PUSH1 0x00 000007c0: JUMPDEST 000007c1: DUP4 000007c2: DUP2 000007c3: LT 000007c4: ISZERO 000007c5: PUSH2 0x07d8 000007c8: JUMPI 000007c9: DUP2 000007ca: DUP2 000007cb: ADD 000007cc: MLOAD 000007cd: DUP4 000007ce: DUP3 000007cf: ADD 000007d0: MSTORE 000007d1: PUSH1 0x20 000007d3: ADD 000007d4: PUSH2 0x07c0 000007d7: JUMP 000007d8: JUMPDEST 000007d9: POP 000007da: POP 000007db: POP 000007dc: POP 000007dd: SWAP1 000007de: POP 000007df: SWAP1 000007e0: DUP2 000007e1: ADD 000007e2: SWAP1 000007e3: PUSH1 0x1f 000007e5: AND 000007e6: DUP1 000007e7: ISZERO 000007e8: PUSH2 0x0805 000007eb: JUMPI 000007ec: DUP1 000007ed: DUP3 000007ee: SUB 000007ef: DUP1 000007f0: MLOAD 000007f1: PUSH1 0x01 000007f3: DUP4 000007f4: PUSH1 0x20 000007f6: SUB 000007f7: PUSH2 0x0100 000007fa: EXP 000007fb: SUB 000007fc: NOT 000007fd: AND 000007fe: DUP2 000007ff: MSTORE 00000800: PUSH1 0x20 00000802: ADD 00000803: SWAP2 00000804: POP 00000805: JUMPDEST 00000806: POP 00000807: DUP4 00000808: DUP2 00000809: SUB 0000080a: DUP3 0000080b: MSTORE 0000080c: DUP6 0000080d: MLOAD 0000080e: DUP2 0000080f: MSTORE 00000810: DUP6 00000811: MLOAD 00000812: PUSH1 0x20 00000814: SWAP2 00000815: DUP3 00000816: ADD 00000817: SWAP2 00000818: DUP8 00000819: ADD 0000081a: SWAP1 0000081b: DUP1 0000081c: DUP4 0000081d: DUP4 0000081e: PUSH1 0x00 00000820: JUMPDEST 00000821: DUP4 00000822: DUP2 00000823: LT 00000824: ISZERO 00000825: PUSH2 0x0838 00000828: JUMPI 00000829: DUP2 0000082a: DUP2 0000082b: ADD 0000082c: MLOAD 0000082d: DUP4 0000082e: DUP3 0000082f: ADD 00000830: MSTORE 00000831: PUSH1 0x20 00000833: ADD 00000834: PUSH2 0x0820 00000837: JUMP 00000838: JUMPDEST 00000839: POP 0000083a: POP 0000083b: POP 0000083c: POP 0000083d: SWAP1 0000083e: POP 0000083f: SWAP1 00000840: DUP2 00000841: ADD 00000842: SWAP1 00000843: PUSH1 0x1f 00000845: AND 00000846: DUP1 00000847: ISZERO 00000848: PUSH2 0x0865 0000084b: JUMPI 0000084c: DUP1 0000084d: DUP3 0000084e: SUB 0000084f: DUP1 00000850: MLOAD 00000851: PUSH1 0x01 00000853: DUP4 00000854: PUSH1 0x20 00000856: SUB 00000857: PUSH2 0x0100 0000085a: EXP 0000085b: SUB 0000085c: NOT 0000085d: AND 0000085e: DUP2 0000085f: MSTORE 00000860: PUSH1 0x20 00000862: ADD 00000863: SWAP2 00000864: POP 00000865: JUMPDEST 00000866: POP 00000867: PUSH1 0x40 00000869: DUP1 0000086a: MLOAD 0000086b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000088c: DUP2 0000088d: DUP5 0000088e: SUB 0000088f: ADD 00000890: DUP2 00000891: MSTORE 00000892: SWAP2 00000893: DUP2 00000894: MSTORE 00000895: DUP2 00000896: MLOAD 00000897: PUSH1 0x20 00000899: SWAP3 0000089a: DUP4 0000089b: ADD 0000089c: KECCAK256 0000089d: PUSH1 0x00 0000089f: DUP2 000008a0: DUP2 000008a1: MSTORE 000008a2: PUSH1 0x03 000008a4: SWAP1 000008a5: SWAP4 000008a6: MSTORE 000008a7: SWAP2 000008a8: KECCAK256 000008a9: SLOAD 000008aa: SWAP1 000008ab: SWAP10 000008ac: POP 000008ad: PUSH1 0xff 000008af: AND 000008b0: SWAP8 000008b1: POP 000008b2: PUSH2 0x090e 000008b5: SWAP7 000008b6: POP 000008b7: POP 000008b8: POP 000008b9: POP 000008ba: POP 000008bb: POP 000008bc: POP 000008bd: JUMPI 000008be: PUSH1 0x40 000008c0: MLOAD 000008c1: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000008e2: DUP2 000008e3: MSTORE 000008e4: PUSH1 0x04 000008e6: ADD 000008e7: DUP1 000008e8: DUP1 000008e9: PUSH1 0x20 000008eb: ADD 000008ec: DUP3 000008ed: DUP2 000008ee: SUB 000008ef: DUP3 000008f0: MSTORE 000008f1: PUSH1 0x3d 000008f3: DUP2 000008f4: MSTORE 000008f5: PUSH1 0x20 000008f7: ADD 000008f8: DUP1 000008f9: PUSH2 0x190a 000008fc: PUSH1 0x3d 000008fe: SWAP2 000008ff: CODECOPY 00000900: PUSH1 0x40 00000902: ADD 00000903: SWAP2 00000904: POP 00000905: POP 00000906: PUSH1 0x40 00000908: MLOAD 00000909: DUP1 0000090a: SWAP2 0000090b: SUB 0000090c: SWAP1 0000090d: REVERT 0000090e: JUMPDEST 0000090f: DUP3 00000910: PUSH2 0x0917 00000913: PUSH2 0x1737 00000916: JUMP 00000917: JUMPDEST 00000918: LT 00000919: ISZERO 0000091a: PUSH2 0x096e 0000091d: JUMPI 0000091e: PUSH1 0x40 00000920: MLOAD 00000921: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000942: DUP2 00000943: MSTORE 00000944: PUSH1 0x04 00000946: ADD 00000947: DUP1 00000948: DUP1 00000949: PUSH1 0x20 0000094b: ADD 0000094c: DUP3 0000094d: DUP2 0000094e: SUB 0000094f: DUP3 00000950: MSTORE 00000951: PUSH1 0x45 00000953: DUP2 00000954: MSTORE 00000955: PUSH1 0x20 00000957: ADD 00000958: DUP1 00000959: PUSH2 0x1859 0000095c: PUSH1 0x45 0000095e: SWAP2 0000095f: CODECOPY 00000960: PUSH1 0x60 00000962: ADD 00000963: SWAP2 00000964: POP 00000965: POP 00000966: PUSH1 0x40 00000968: MLOAD 00000969: DUP1 0000096a: SWAP2 0000096b: SUB 0000096c: SWAP1 0000096d: REVERT 0000096e: JUMPDEST 0000096f: PUSH2 0x0981 00000972: DUP4 00000973: PUSH3 0x127500 00000977: PUSH4 0xffffffff 0000097c: PUSH2 0x173b 0000097f: AND 00000980: JUMP 00000981: JUMPDEST 00000982: PUSH2 0x0989 00000985: PUSH2 0x1737 00000988: JUMP 00000989: JUMPDEST 0000098a: GT 0000098b: ISZERO 0000098c: PUSH2 0x09e0 0000098f: JUMPI 00000990: PUSH1 0x40 00000992: MLOAD 00000993: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000009b4: DUP2 000009b5: MSTORE 000009b6: PUSH1 0x04 000009b8: ADD 000009b9: DUP1 000009ba: DUP1 000009bb: PUSH1 0x20 000009bd: ADD 000009be: DUP3 000009bf: DUP2 000009c0: SUB 000009c1: DUP3 000009c2: MSTORE 000009c3: PUSH1 0x33 000009c5: DUP2 000009c6: MSTORE 000009c7: PUSH1 0x20 000009c9: ADD 000009ca: DUP1 000009cb: PUSH2 0x1826 000009ce: PUSH1 0x33 000009d0: SWAP2 000009d1: CODECOPY 000009d2: PUSH1 0x40 000009d4: ADD 000009d5: SWAP2 000009d6: POP 000009d7: POP 000009d8: PUSH1 0x40 000009da: MLOAD 000009db: DUP1 000009dc: SWAP2 000009dd: SUB 000009de: SWAP1 000009df: REVERT 000009e0: JUMPDEST 000009e1: PUSH1 0x00 000009e3: DUP2 000009e4: DUP2 000009e5: MSTORE 000009e6: PUSH1 0x03 000009e8: PUSH1 0x20 000009ea: MSTORE 000009eb: PUSH1 0x40 000009ed: SWAP1 000009ee: KECCAK256 000009ef: DUP1 000009f0: SLOAD 000009f1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00000a12: AND 00000a13: SWAP1 00000a14: SSTORE 00000a15: DUP5 00000a16: MLOAD 00000a17: PUSH1 0x60 00000a19: SWAP1 00000a1a: PUSH2 0x0a24 00000a1d: JUMPI 00000a1e: POP 00000a1f: DUP4 00000a20: PUSH2 0x0af9 00000a23: JUMP 00000a24: JUMPDEST 00000a25: DUP6 00000a26: DUP1 00000a27: MLOAD 00000a28: SWAP1 00000a29: PUSH1 0x20 00000a2b: ADD 00000a2c: KECCAK256 00000a2d: DUP6 00000a2e: PUSH1 0x40 00000a30: MLOAD 00000a31: PUSH1 0x20 00000a33: ADD 00000a34: DUP1 00000a35: DUP4 00000a36: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000a53: NOT 00000a54: AND 00000a55: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000a72: NOT 00000a73: AND 00000a74: DUP2 00000a75: MSTORE 00000a76: PUSH1 0x04 00000a78: ADD 00000a79: DUP3 00000a7a: DUP1 00000a7b: MLOAD 00000a7c: SWAP1 00000a7d: PUSH1 0x20 00000a7f: ADD 00000a80: SWAP1 00000a81: DUP1 00000a82: DUP4 00000a83: DUP4 00000a84: JUMPDEST 00000a85: PUSH1 0x20 00000a87: DUP4 00000a88: LT 00000a89: PUSH2 0x0ac1 00000a8c: JUMPI 00000a8d: DUP1 00000a8e: MLOAD 00000a8f: DUP3 00000a90: MSTORE 00000a91: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00000ab2: SWAP1 00000ab3: SWAP3 00000ab4: ADD 00000ab5: SWAP2 00000ab6: PUSH1 0x20 00000ab8: SWAP2 00000ab9: DUP3 00000aba: ADD 00000abb: SWAP2 00000abc: ADD 00000abd: PUSH2 0x0a84 00000ac0: JUMP 00000ac1: JUMPDEST 00000ac2: PUSH1 0x01 00000ac4: DUP4 00000ac5: PUSH1 0x20 00000ac7: SUB 00000ac8: PUSH2 0x0100 00000acb: EXP 00000acc: SUB 00000acd: DUP1 00000ace: NOT 00000acf: DUP3 00000ad0: MLOAD 00000ad1: AND 00000ad2: DUP2 00000ad3: DUP5 00000ad4: MLOAD 00000ad5: AND 00000ad6: DUP1 00000ad7: DUP3 00000ad8: OR 00000ad9: DUP6 00000ada: MSTORE 00000adb: POP 00000adc: POP 00000add: POP 00000ade: POP 00000adf: POP 00000ae0: POP 00000ae1: SWAP1 00000ae2: POP 00000ae3: ADD 00000ae4: SWAP3 00000ae5: POP 00000ae6: POP 00000ae7: POP 00000ae8: PUSH1 0x40 00000aea: MLOAD 00000aeb: PUSH1 0x20 00000aed: DUP2 00000aee: DUP4 00000aef: SUB 00000af0: SUB 00000af1: DUP2 00000af2: MSTORE 00000af3: SWAP1 00000af4: PUSH1 0x40 00000af6: MSTORE 00000af7: SWAP1 00000af8: POP 00000af9: JUMPDEST 00000afa: PUSH1 0x00 00000afc: PUSH1 0x60 00000afe: DUP10 00000aff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b14: AND 00000b15: DUP10 00000b16: DUP5 00000b17: PUSH1 0x40 00000b19: MLOAD 00000b1a: DUP1 00000b1b: DUP3 00000b1c: DUP1 00000b1d: MLOAD 00000b1e: SWAP1 00000b1f: PUSH1 0x20 00000b21: ADD 00000b22: SWAP1 00000b23: DUP1 00000b24: DUP4 00000b25: DUP4 00000b26: JUMPDEST 00000b27: PUSH1 0x20 00000b29: DUP4 00000b2a: LT 00000b2b: PUSH2 0x0b63 00000b2e: JUMPI 00000b2f: DUP1 00000b30: MLOAD 00000b31: DUP3 00000b32: MSTORE 00000b33: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00000b54: SWAP1 00000b55: SWAP3 00000b56: ADD 00000b57: SWAP2 00000b58: PUSH1 0x20 00000b5a: SWAP2 00000b5b: DUP3 00000b5c: ADD 00000b5d: SWAP2 00000b5e: ADD 00000b5f: PUSH2 0x0b26 00000b62: JUMP 00000b63: JUMPDEST 00000b64: PUSH1 0x01 00000b66: DUP4 00000b67: PUSH1 0x20 00000b69: SUB 00000b6a: PUSH2 0x0100 00000b6d: EXP 00000b6e: SUB 00000b6f: DUP1 00000b70: NOT 00000b71: DUP3 00000b72: MLOAD 00000b73: AND 00000b74: DUP2 00000b75: DUP5 00000b76: MLOAD 00000b77: AND 00000b78: DUP1 00000b79: DUP3 00000b7a: OR 00000b7b: DUP6 00000b7c: MSTORE 00000b7d: POP 00000b7e: POP 00000b7f: POP 00000b80: POP 00000b81: POP 00000b82: POP 00000b83: SWAP1 00000b84: POP 00000b85: ADD 00000b86: SWAP2 00000b87: POP 00000b88: POP 00000b89: PUSH1 0x00 00000b8b: PUSH1 0x40 00000b8d: MLOAD 00000b8e: DUP1 00000b8f: DUP4 00000b90: SUB 00000b91: DUP2 00000b92: DUP6 00000b93: DUP8 00000b94: GAS 00000b95: CALL 00000b96: SWAP3 00000b97: POP 00000b98: POP 00000b99: POP 00000b9a: RETURNDATASIZE 00000b9b: DUP1 00000b9c: PUSH1 0x00 00000b9e: DUP2 00000b9f: EQ 00000ba0: PUSH2 0x0bc5 00000ba3: JUMPI 00000ba4: PUSH1 0x40 00000ba6: MLOAD 00000ba7: SWAP2 00000ba8: POP 00000ba9: PUSH1 0x1f 00000bab: NOT 00000bac: PUSH1 0x3f 00000bae: RETURNDATASIZE 00000baf: ADD 00000bb0: AND 00000bb1: DUP3 00000bb2: ADD 00000bb3: PUSH1 0x40 00000bb5: MSTORE 00000bb6: RETURNDATASIZE 00000bb7: DUP3 00000bb8: MSTORE 00000bb9: RETURNDATASIZE 00000bba: PUSH1 0x00 00000bbc: PUSH1 0x20 00000bbe: DUP5 00000bbf: ADD 00000bc0: RETURNDATACOPY 00000bc1: PUSH2 0x0bca 00000bc4: JUMP 00000bc5: JUMPDEST 00000bc6: PUSH1 0x60 00000bc8: SWAP2 00000bc9: POP 00000bca: JUMPDEST 00000bcb: POP 00000bcc: SWAP2 00000bcd: POP 00000bce: SWAP2 00000bcf: POP 00000bd0: DUP2 00000bd1: PUSH2 0x0c25 00000bd4: JUMPI 00000bd5: PUSH1 0x40 00000bd7: MLOAD 00000bd8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000bf9: DUP2 00000bfa: MSTORE 00000bfb: PUSH1 0x04 00000bfd: ADD 00000bfe: DUP1 00000bff: DUP1 00000c00: PUSH1 0x20 00000c02: ADD 00000c03: DUP3 00000c04: DUP2 00000c05: SUB 00000c06: DUP3 00000c07: MSTORE 00000c08: PUSH1 0x3d 00000c0a: DUP2 00000c0b: MSTORE 00000c0c: PUSH1 0x20 00000c0e: ADD 00000c0f: DUP1 00000c10: PUSH2 0x19ed 00000c13: PUSH1 0x3d 00000c15: SWAP2 00000c16: CODECOPY 00000c17: PUSH1 0x40 00000c19: ADD 00000c1a: SWAP2 00000c1b: POP 00000c1c: POP 00000c1d: PUSH1 0x40 00000c1f: MLOAD 00000c20: DUP1 00000c21: SWAP2 00000c22: SUB 00000c23: SWAP1 00000c24: REVERT 00000c25: JUMPDEST 00000c26: DUP10 00000c27: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c3c: AND 00000c3d: DUP5 00000c3e: PUSH32 0xa560e3198060a2f10670c1ec5b403077ea6ae93ca8de1c32b451dc1a943cd6e7 00000c5f: DUP12 00000c60: DUP12 00000c61: DUP12 00000c62: DUP12 00000c63: PUSH1 0x40 00000c65: MLOAD 00000c66: DUP1 00000c67: DUP6 00000c68: DUP2 00000c69: MSTORE 00000c6a: PUSH1 0x20 00000c6c: ADD 00000c6d: DUP1 00000c6e: PUSH1 0x20 00000c70: ADD 00000c71: DUP1 00000c72: PUSH1 0x20 00000c74: ADD 00000c75: DUP5 00000c76: DUP2 00000c77: MSTORE 00000c78: PUSH1 0x20 00000c7a: ADD 00000c7b: DUP4 00000c7c: DUP2 00000c7d: SUB 00000c7e: DUP4 00000c7f: MSTORE 00000c80: DUP7 00000c81: DUP2 00000c82: DUP2 00000c83: MLOAD 00000c84: DUP2 00000c85: MSTORE 00000c86: PUSH1 0x20 00000c88: ADD 00000c89: SWAP2 00000c8a: POP 00000c8b: DUP1 00000c8c: MLOAD 00000c8d: SWAP1 00000c8e: PUSH1 0x20 00000c90: ADD 00000c91: SWAP1 00000c92: DUP1 00000c93: DUP4 00000c94: DUP4 00000c95: PUSH1 0x00 00000c97: JUMPDEST 00000c98: DUP4 00000c99: DUP2 00000c9a: LT 00000c9b: ISZERO 00000c9c: PUSH2 0x0caf 00000c9f: JUMPI 00000ca0: DUP2 00000ca1: DUP2 00000ca2: ADD 00000ca3: MLOAD 00000ca4: DUP4 00000ca5: DUP3 00000ca6: ADD 00000ca7: MSTORE 00000ca8: PUSH1 0x20 00000caa: ADD 00000cab: PUSH2 0x0c97 00000cae: JUMP 00000caf: JUMPDEST 00000cb0: POP 00000cb1: POP 00000cb2: POP 00000cb3: POP 00000cb4: SWAP1 00000cb5: POP 00000cb6: SWAP1 00000cb7: DUP2 00000cb8: ADD 00000cb9: SWAP1 00000cba: PUSH1 0x1f 00000cbc: AND 00000cbd: DUP1 00000cbe: ISZERO 00000cbf: PUSH2 0x0cdc 00000cc2: JUMPI 00000cc3: DUP1 00000cc4: DUP3 00000cc5: SUB 00000cc6: DUP1 00000cc7: MLOAD 00000cc8: PUSH1 0x01 00000cca: DUP4 00000ccb: PUSH1 0x20 00000ccd: SUB 00000cce: PUSH2 0x0100 00000cd1: EXP 00000cd2: SUB 00000cd3: NOT 00000cd4: AND 00000cd5: DUP2 00000cd6: MSTORE 00000cd7: PUSH1 0x20 00000cd9: ADD 00000cda: SWAP2 00000cdb: POP 00000cdc: JUMPDEST 00000cdd: POP 00000cde: DUP4 00000cdf: DUP2 00000ce0: SUB 00000ce1: DUP3 00000ce2: MSTORE 00000ce3: DUP6 00000ce4: MLOAD 00000ce5: DUP2 00000ce6: MSTORE 00000ce7: DUP6 00000ce8: MLOAD 00000ce9: PUSH1 0x20 00000ceb: SWAP2 00000cec: DUP3 00000ced: ADD 00000cee: SWAP2 00000cef: DUP8 00000cf0: ADD 00000cf1: SWAP1 00000cf2: DUP1 00000cf3: DUP4 00000cf4: DUP4 00000cf5: PUSH1 0x00 00000cf7: JUMPDEST 00000cf8: DUP4 00000cf9: DUP2 00000cfa: LT 00000cfb: ISZERO 00000cfc: PUSH2 0x0d0f 00000cff: JUMPI 00000d00: DUP2 00000d01: DUP2 00000d02: ADD 00000d03: MLOAD 00000d04: DUP4 00000d05: DUP3 00000d06: ADD 00000d07: MSTORE 00000d08: PUSH1 0x20 00000d0a: ADD 00000d0b: PUSH2 0x0cf7 00000d0e: JUMP 00000d0f: JUMPDEST 00000d10: POP 00000d11: POP 00000d12: POP 00000d13: POP 00000d14: SWAP1 00000d15: POP 00000d16: SWAP1 00000d17: DUP2 00000d18: ADD 00000d19: SWAP1 00000d1a: PUSH1 0x1f 00000d1c: AND 00000d1d: DUP1 00000d1e: ISZERO 00000d1f: PUSH2 0x0d3c 00000d22: JUMPI 00000d23: DUP1 00000d24: DUP3 00000d25: SUB 00000d26: DUP1 00000d27: MLOAD 00000d28: PUSH1 0x01 00000d2a: DUP4 00000d2b: PUSH1 0x20 00000d2d: SUB 00000d2e: PUSH2 0x0100 00000d31: EXP 00000d32: SUB 00000d33: NOT 00000d34: AND 00000d35: DUP2 00000d36: MSTORE 00000d37: PUSH1 0x20 00000d39: ADD 00000d3a: SWAP2 00000d3b: POP 00000d3c: JUMPDEST 00000d3d: POP 00000d3e: SWAP7 00000d3f: POP 00000d40: POP 00000d41: POP 00000d42: POP 00000d43: POP 00000d44: POP 00000d45: POP 00000d46: PUSH1 0x40 00000d48: MLOAD 00000d49: DUP1 00000d4a: SWAP2 00000d4b: SUB 00000d4c: SWAP1 00000d4d: LOG3 00000d4e: SWAP10 00000d4f: SWAP9 00000d50: POP 00000d51: POP 00000d52: POP 00000d53: POP 00000d54: POP 00000d55: POP 00000d56: POP 00000d57: POP 00000d58: POP 00000d59: JUMP 00000d5a: JUMPDEST 00000d5b: PUSH1 0x01 00000d5d: SLOAD 00000d5e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d73: AND 00000d74: CALLER 00000d75: EQ 00000d76: PUSH2 0x0dca 00000d79: JUMPI 00000d7a: PUSH1 0x40 00000d7c: MLOAD 00000d7d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000d9e: DUP2 00000d9f: MSTORE 00000da0: PUSH1 0x04 00000da2: ADD 00000da3: DUP1 00000da4: DUP1 00000da5: PUSH1 0x20 00000da7: ADD 00000da8: DUP3 00000da9: DUP2 00000daa: SUB 00000dab: DUP3 00000dac: MSTORE 00000dad: PUSH1 0x38 00000daf: DUP2 00000db0: MSTORE 00000db1: PUSH1 0x20 00000db3: ADD 00000db4: DUP1 00000db5: PUSH2 0x1947 00000db8: PUSH1 0x38 00000dba: SWAP2 00000dbb: CODECOPY 00000dbc: PUSH1 0x40 00000dbe: ADD 00000dbf: SWAP2 00000dc0: POP 00000dc1: POP 00000dc2: PUSH1 0x40 00000dc4: MLOAD 00000dc5: DUP1 00000dc6: SWAP2 00000dc7: SUB 00000dc8: SWAP1 00000dc9: REVERT 00000dca: JUMPDEST 00000dcb: PUSH1 0x00 00000dcd: DUP1 00000dce: SLOAD 00000dcf: CALLER 00000dd0: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000df1: SWAP2 00000df2: DUP3 00000df3: AND 00000df4: OR 00000df5: DUP1 00000df6: DUP4 00000df7: SSTORE 00000df8: PUSH1 0x01 00000dfa: DUP1 00000dfb: SLOAD 00000dfc: SWAP1 00000dfd: SWAP3 00000dfe: AND 00000dff: SWAP1 00000e00: SWAP2 00000e01: SSTORE 00000e02: PUSH1 0x40 00000e04: MLOAD 00000e05: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e1a: SWAP1 00000e1b: SWAP2 00000e1c: AND 00000e1d: SWAP2 00000e1e: PUSH32 0x71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c 00000e3f: SWAP2 00000e40: LOG2 00000e41: JUMP 00000e42: JUMPDEST 00000e43: PUSH1 0x01 00000e45: SLOAD 00000e46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e5b: AND 00000e5c: DUP2 00000e5d: JUMP 00000e5e: JUMPDEST 00000e5f: PUSH1 0x00 00000e61: DUP1 00000e62: SLOAD 00000e63: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e78: AND 00000e79: CALLER 00000e7a: EQ 00000e7b: PUSH2 0x0ecf 00000e7e: JUMPI 00000e7f: PUSH1 0x40 00000e81: MLOAD 00000e82: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000ea3: DUP2 00000ea4: MSTORE 00000ea5: PUSH1 0x04 00000ea7: ADD 00000ea8: DUP1 00000ea9: DUP1 00000eaa: PUSH1 0x20 00000eac: ADD 00000ead: DUP3 00000eae: DUP2 00000eaf: SUB 00000eb0: DUP3 00000eb1: MSTORE 00000eb2: PUSH1 0x36 00000eb4: DUP2 00000eb5: MSTORE 00000eb6: PUSH1 0x20 00000eb8: ADD 00000eb9: DUP1 00000eba: PUSH2 0x19b7 00000ebd: PUSH1 0x36 00000ebf: SWAP2 00000ec0: CODECOPY 00000ec1: PUSH1 0x40 00000ec3: ADD 00000ec4: SWAP2 00000ec5: POP 00000ec6: POP 00000ec7: PUSH1 0x40 00000ec9: MLOAD 00000eca: DUP1 00000ecb: SWAP2 00000ecc: SUB 00000ecd: SWAP1 00000ece: REVERT 00000ecf: JUMPDEST 00000ed0: PUSH2 0x0ee9 00000ed3: PUSH1 0x02 00000ed5: SLOAD 00000ed6: PUSH2 0x0edd 00000ed9: PUSH2 0x1737 00000edc: JUMP 00000edd: JUMPDEST 00000ede: SWAP1 00000edf: PUSH4 0xffffffff 00000ee4: PUSH2 0x173b 00000ee7: AND 00000ee8: JUMP 00000ee9: JUMPDEST 00000eea: DUP3 00000eeb: LT 00000eec: ISZERO 00000eed: PUSH2 0x0f41 00000ef0: JUMPI 00000ef1: PUSH1 0x40 00000ef3: MLOAD 00000ef4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000f15: DUP2 00000f16: MSTORE 00000f17: PUSH1 0x04 00000f19: ADD 00000f1a: DUP1 00000f1b: DUP1 00000f1c: PUSH1 0x20 00000f1e: ADD 00000f1f: DUP3 00000f20: DUP2 00000f21: SUB 00000f22: DUP3 00000f23: MSTORE 00000f24: PUSH1 0x49 00000f26: DUP2 00000f27: MSTORE 00000f28: PUSH1 0x20 00000f2a: ADD 00000f2b: DUP1 00000f2c: PUSH2 0x1a2a 00000f2f: PUSH1 0x49 00000f31: SWAP2 00000f32: CODECOPY 00000f33: PUSH1 0x60 00000f35: ADD 00000f36: SWAP2 00000f37: POP 00000f38: POP 00000f39: PUSH1 0x40 00000f3b: MLOAD 00000f3c: DUP1 00000f3d: SWAP2 00000f3e: SUB 00000f3f: SWAP1 00000f40: REVERT 00000f41: JUMPDEST 00000f42: PUSH1 0x00 00000f44: DUP7 00000f45: DUP7 00000f46: DUP7 00000f47: DUP7 00000f48: DUP7 00000f49: PUSH1 0x40 00000f4b: MLOAD 00000f4c: PUSH1 0x20 00000f4e: ADD 00000f4f: DUP1 00000f50: DUP7 00000f51: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f66: AND 00000f67: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f7c: AND 00000f7d: DUP2 00000f7e: MSTORE 00000f7f: PUSH1 0x20 00000f81: ADD 00000f82: DUP6 00000f83: DUP2 00000f84: MSTORE 00000f85: PUSH1 0x20 00000f87: ADD 00000f88: DUP1 00000f89: PUSH1 0x20 00000f8b: ADD 00000f8c: DUP1 00000f8d: PUSH1 0x20 00000f8f: ADD 00000f90: DUP5 00000f91: DUP2 00000f92: MSTORE 00000f93: PUSH1 0x20 00000f95: ADD 00000f96: DUP4 00000f97: DUP2 00000f98: SUB 00000f99: DUP4 00000f9a: MSTORE 00000f9b: DUP7 00000f9c: DUP2 00000f9d: DUP2 00000f9e: MLOAD 00000f9f: DUP2 00000fa0: MSTORE 00000fa1: PUSH1 0x20 00000fa3: ADD 00000fa4: SWAP2 00000fa5: POP 00000fa6: DUP1 00000fa7: MLOAD 00000fa8: SWAP1 00000fa9: PUSH1 0x20 00000fab: ADD 00000fac: SWAP1 00000fad: DUP1 00000fae: DUP4 00000faf: DUP4 00000fb0: PUSH1 0x00 00000fb2: JUMPDEST 00000fb3: DUP4 00000fb4: DUP2 00000fb5: LT 00000fb6: ISZERO 00000fb7: PUSH2 0x0fca 00000fba: JUMPI 00000fbb: DUP2 00000fbc: DUP2 00000fbd: ADD 00000fbe: MLOAD 00000fbf: DUP4 00000fc0: DUP3 00000fc1: ADD 00000fc2: MSTORE 00000fc3: PUSH1 0x20 00000fc5: ADD 00000fc6: PUSH2 0x0fb2 00000fc9: JUMP 00000fca: JUMPDEST 00000fcb: POP 00000fcc: POP 00000fcd: POP 00000fce: POP 00000fcf: SWAP1 00000fd0: POP 00000fd1: SWAP1 00000fd2: DUP2 00000fd3: ADD 00000fd4: SWAP1 00000fd5: PUSH1 0x1f 00000fd7: AND 00000fd8: DUP1 00000fd9: ISZERO 00000fda: PUSH2 0x0ff7 00000fdd: JUMPI 00000fde: DUP1 00000fdf: DUP3 00000fe0: SUB 00000fe1: DUP1 00000fe2: MLOAD 00000fe3: PUSH1 0x01 00000fe5: DUP4 00000fe6: PUSH1 0x20 00000fe8: SUB 00000fe9: PUSH2 0x0100 00000fec: EXP 00000fed: SUB 00000fee: NOT 00000fef: AND 00000ff0: DUP2 00000ff1: MSTORE 00000ff2: PUSH1 0x20 00000ff4: ADD 00000ff5: SWAP2 00000ff6: POP 00000ff7: JUMPDEST 00000ff8: POP 00000ff9: DUP4 00000ffa: DUP2 00000ffb: SUB 00000ffc: DUP3 00000ffd: MSTORE 00000ffe: DUP6 00000fff: MLOAD 00001000: DUP2 00001001: MSTORE 00001002: DUP6 00001003: MLOAD 00001004: PUSH1 0x20 00001006: SWAP2 00001007: DUP3 00001008: ADD 00001009: SWAP2 0000100a: DUP8 0000100b: ADD 0000100c: SWAP1 0000100d: DUP1 0000100e: DUP4 0000100f: DUP4 00001010: PUSH1 0x00 00001012: JUMPDEST 00001013: DUP4 00001014: DUP2 00001015: LT 00001016: ISZERO 00001017: PUSH2 0x102a 0000101a: JUMPI 0000101b: DUP2 0000101c: DUP2 0000101d: ADD 0000101e: MLOAD 0000101f: DUP4 00001020: DUP3 00001021: ADD 00001022: MSTORE 00001023: PUSH1 0x20 00001025: ADD 00001026: PUSH2 0x1012 00001029: JUMP 0000102a: JUMPDEST 0000102b: POP 0000102c: POP 0000102d: POP 0000102e: POP 0000102f: SWAP1 00001030: POP 00001031: SWAP1 00001032: DUP2 00001033: ADD 00001034: SWAP1 00001035: PUSH1 0x1f 00001037: AND 00001038: DUP1 00001039: ISZERO 0000103a: PUSH2 0x1057 0000103d: JUMPI 0000103e: DUP1 0000103f: DUP3 00001040: SUB 00001041: DUP1 00001042: MLOAD 00001043: PUSH1 0x01 00001045: DUP4 00001046: PUSH1 0x20 00001048: SUB 00001049: PUSH2 0x0100 0000104c: EXP 0000104d: SUB 0000104e: NOT 0000104f: AND 00001050: DUP2 00001051: MSTORE 00001052: PUSH1 0x20 00001054: ADD 00001055: SWAP2 00001056: POP 00001057: JUMPDEST 00001058: POP 00001059: SWAP8 0000105a: POP 0000105b: POP 0000105c: POP 0000105d: POP 0000105e: POP 0000105f: POP 00001060: POP 00001061: POP 00001062: PUSH1 0x40 00001064: MLOAD 00001065: PUSH1 0x20 00001067: DUP2 00001068: DUP4 00001069: SUB 0000106a: SUB 0000106b: DUP2 0000106c: MSTORE 0000106d: SWAP1 0000106e: PUSH1 0x40 00001070: MSTORE 00001071: DUP1 00001072: MLOAD 00001073: SWAP1 00001074: PUSH1 0x20 00001076: ADD 00001077: KECCAK256 00001078: SWAP1 00001079: POP 0000107a: PUSH1 0x01 0000107c: PUSH1 0x03 0000107e: PUSH1 0x00 00001080: DUP4 00001081: DUP2 00001082: MSTORE 00001083: PUSH1 0x20 00001085: ADD 00001086: SWAP1 00001087: DUP2 00001088: MSTORE 00001089: PUSH1 0x20 0000108b: ADD 0000108c: PUSH1 0x00 0000108e: KECCAK256 0000108f: PUSH1 0x00 00001091: PUSH2 0x0100 00001094: EXP 00001095: DUP2 00001096: SLOAD 00001097: DUP2 00001098: PUSH1 0xff 0000109a: MUL 0000109b: NOT 0000109c: AND 0000109d: SWAP1 0000109e: DUP4 0000109f: ISZERO 000010a0: ISZERO 000010a1: MUL 000010a2: OR 000010a3: SWAP1 000010a4: SSTORE 000010a5: POP 000010a6: DUP7 000010a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010bc: AND 000010bd: DUP2 000010be: PUSH32 0x76e2796dc3a81d57b0e8504b647febcbeeb5f4af818e164f11eef8131a6a763f 000010df: DUP9 000010e0: DUP9 000010e1: DUP9 000010e2: DUP9 000010e3: PUSH1 0x40 000010e5: MLOAD 000010e6: DUP1 000010e7: DUP6 000010e8: DUP2 000010e9: MSTORE 000010ea: PUSH1 0x20 000010ec: ADD 000010ed: DUP1 000010ee: PUSH1 0x20 000010f0: ADD 000010f1: DUP1 000010f2: PUSH1 0x20 000010f4: ADD 000010f5: DUP5 000010f6: DUP2 000010f7: MSTORE 000010f8: PUSH1 0x20 000010fa: ADD 000010fb: DUP4 000010fc: DUP2 000010fd: SUB 000010fe: DUP4 000010ff: MSTORE 00001100: DUP7 00001101: DUP2 00001102: DUP2 00001103: MLOAD 00001104: DUP2 00001105: MSTORE 00001106: PUSH1 0x20 00001108: ADD 00001109: SWAP2 0000110a: POP 0000110b: DUP1 0000110c: MLOAD 0000110d: SWAP1 0000110e: PUSH1 0x20 00001110: ADD 00001111: SWAP1 00001112: DUP1 00001113: DUP4 00001114: DUP4 00001115: PUSH1 0x00 00001117: JUMPDEST 00001118: DUP4 00001119: DUP2 0000111a: LT 0000111b: ISZERO 0000111c: PUSH2 0x112f 0000111f: JUMPI 00001120: DUP2 00001121: DUP2 00001122: ADD 00001123: MLOAD 00001124: DUP4 00001125: DUP3 00001126: ADD 00001127: MSTORE 00001128: PUSH1 0x20 0000112a: ADD 0000112b: PUSH2 0x1117 0000112e: JUMP 0000112f: JUMPDEST 00001130: POP 00001131: POP 00001132: POP 00001133: POP 00001134: SWAP1 00001135: POP 00001136: SWAP1 00001137: DUP2 00001138: ADD 00001139: SWAP1 0000113a: PUSH1 0x1f 0000113c: AND 0000113d: DUP1 0000113e: ISZERO 0000113f: PUSH2 0x115c 00001142: JUMPI 00001143: DUP1 00001144: DUP3 00001145: SUB 00001146: DUP1 00001147: MLOAD 00001148: PUSH1 0x01 0000114a: DUP4 0000114b: PUSH1 0x20 0000114d: SUB 0000114e: PUSH2 0x0100 00001151: EXP 00001152: SUB 00001153: NOT 00001154: AND 00001155: DUP2 00001156: MSTORE 00001157: PUSH1 0x20 00001159: ADD 0000115a: SWAP2 0000115b: POP 0000115c: JUMPDEST 0000115d: POP 0000115e: DUP4 0000115f: DUP2 00001160: SUB 00001161: DUP3 00001162: MSTORE 00001163: DUP6 00001164: MLOAD 00001165: DUP2 00001166: MSTORE 00001167: DUP6 00001168: MLOAD 00001169: PUSH1 0x20 0000116b: SWAP2 0000116c: DUP3 0000116d: ADD 0000116e: SWAP2 0000116f: DUP8 00001170: ADD 00001171: SWAP1 00001172: DUP1 00001173: DUP4 00001174: DUP4 00001175: PUSH1 0x00 00001177: JUMPDEST 00001178: DUP4 00001179: DUP2 0000117a: LT 0000117b: ISZERO 0000117c: PUSH2 0x118f 0000117f: JUMPI 00001180: DUP2 00001181: DUP2 00001182: ADD 00001183: MLOAD 00001184: DUP4 00001185: DUP3 00001186: ADD 00001187: MSTORE 00001188: PUSH1 0x20 0000118a: ADD 0000118b: PUSH2 0x1177 0000118e: JUMP 0000118f: JUMPDEST 00001190: POP 00001191: POP 00001192: POP 00001193: POP 00001194: SWAP1 00001195: POP 00001196: SWAP1 00001197: DUP2 00001198: ADD 00001199: SWAP1 0000119a: PUSH1 0x1f 0000119c: AND 0000119d: DUP1 0000119e: ISZERO 0000119f: PUSH2 0x11bc 000011a2: JUMPI 000011a3: DUP1 000011a4: DUP3 000011a5: SUB 000011a6: DUP1 000011a7: MLOAD 000011a8: PUSH1 0x01 000011aa: DUP4 000011ab: PUSH1 0x20 000011ad: SUB 000011ae: PUSH2 0x0100 000011b1: EXP 000011b2: SUB 000011b3: NOT 000011b4: AND 000011b5: DUP2 000011b6: MSTORE 000011b7: PUSH1 0x20 000011b9: ADD 000011ba: SWAP2 000011bb: POP 000011bc: JUMPDEST 000011bd: POP 000011be: SWAP7 000011bf: POP 000011c0: POP 000011c1: POP 000011c2: POP 000011c3: POP 000011c4: POP 000011c5: POP 000011c6: PUSH1 0x40 000011c8: MLOAD 000011c9: DUP1 000011ca: SWAP2 000011cb: SUB 000011cc: SWAP1 000011cd: LOG3 000011ce: SWAP7 000011cf: SWAP6 000011d0: POP 000011d1: POP 000011d2: POP 000011d3: POP 000011d4: POP 000011d5: POP 000011d6: JUMP 000011d7: JUMPDEST 000011d8: CALLER 000011d9: ADDRESS 000011da: EQ 000011db: PUSH2 0x122f 000011de: JUMPI 000011df: PUSH1 0x40 000011e1: MLOAD 000011e2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001203: DUP2 00001204: MSTORE 00001205: PUSH1 0x04 00001207: ADD 00001208: DUP1 00001209: DUP1 0000120a: PUSH1 0x20 0000120c: ADD 0000120d: DUP3 0000120e: DUP2 0000120f: SUB 00001210: DUP3 00001211: MSTORE 00001212: PUSH1 0x38 00001214: DUP2 00001215: MSTORE 00001216: PUSH1 0x20 00001218: ADD 00001219: DUP1 0000121a: PUSH2 0x197f 0000121d: PUSH1 0x38 0000121f: SWAP2 00001220: CODECOPY 00001221: PUSH1 0x40 00001223: ADD 00001224: SWAP2 00001225: POP 00001226: POP 00001227: PUSH1 0x40 00001229: MLOAD 0000122a: DUP1 0000122b: SWAP2 0000122c: SUB 0000122d: SWAP1 0000122e: REVERT 0000122f: JUMPDEST 00001230: PUSH1 0x01 00001232: DUP1 00001233: SLOAD 00001234: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00001255: AND 00001256: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000126b: DUP4 0000126c: DUP2 0000126d: AND 0000126e: SWAP2 0000126f: SWAP1 00001270: SWAP2 00001271: OR 00001272: SWAP2 00001273: DUP3 00001274: SWAP1 00001275: SSTORE 00001276: PUSH1 0x40 00001278: MLOAD 00001279: SWAP2 0000127a: AND 0000127b: SWAP1 0000127c: PUSH32 0x69d78e38a01985fbb1462961809b4b2d65531bc93b2b94037f3334b82ca4a756 0000129d: SWAP1 0000129e: PUSH1 0x00 000012a0: SWAP1 000012a1: LOG2 000012a2: POP 000012a3: JUMP 000012a4: JUMPDEST 000012a5: PUSH1 0x00 000012a7: SLOAD 000012a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012bd: AND 000012be: CALLER 000012bf: EQ 000012c0: PUSH2 0x1314 000012c3: JUMPI 000012c4: PUSH1 0x40 000012c6: MLOAD 000012c7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000012e8: DUP2 000012e9: MSTORE 000012ea: PUSH1 0x04 000012ec: ADD 000012ed: DUP1 000012ee: DUP1 000012ef: PUSH1 0x20 000012f1: ADD 000012f2: DUP3 000012f3: DUP2 000012f4: SUB 000012f5: DUP3 000012f6: MSTORE 000012f7: PUSH1 0x37 000012f9: DUP2 000012fa: MSTORE 000012fb: PUSH1 0x20 000012fd: ADD 000012fe: DUP1 000012ff: PUSH2 0x17ef 00001302: PUSH1 0x37 00001304: SWAP2 00001305: CODECOPY 00001306: PUSH1 0x40 00001308: ADD 00001309: SWAP2 0000130a: POP 0000130b: POP 0000130c: PUSH1 0x40 0000130e: MLOAD 0000130f: DUP1 00001310: SWAP2 00001311: SUB 00001312: SWAP1 00001313: REVERT 00001314: JUMPDEST 00001315: PUSH1 0x00 00001317: DUP6 00001318: DUP6 00001319: DUP6 0000131a: DUP6 0000131b: DUP6 0000131c: PUSH1 0x40 0000131e: MLOAD 0000131f: PUSH1 0x20 00001321: ADD 00001322: DUP1 00001323: DUP7 00001324: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001339: AND 0000133a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000134f: AND 00001350: DUP2 00001351: MSTORE 00001352: PUSH1 0x20 00001354: ADD 00001355: DUP6 00001356: DUP2 00001357: MSTORE 00001358: PUSH1 0x20 0000135a: ADD 0000135b: DUP1 0000135c: PUSH1 0x20 0000135e: ADD 0000135f: DUP1 00001360: PUSH1 0x20 00001362: ADD 00001363: DUP5 00001364: DUP2 00001365: MSTORE 00001366: PUSH1 0x20 00001368: ADD 00001369: DUP4 0000136a: DUP2 0000136b: SUB 0000136c: DUP4 0000136d: MSTORE 0000136e: DUP7 0000136f: DUP2 00001370: DUP2 00001371: MLOAD 00001372: DUP2 00001373: MSTORE 00001374: PUSH1 0x20 00001376: ADD 00001377: SWAP2 00001378: POP 00001379: DUP1 0000137a: MLOAD 0000137b: SWAP1 0000137c: PUSH1 0x20 0000137e: ADD 0000137f: SWAP1 00001380: DUP1 00001381: DUP4 00001382: DUP4 00001383: PUSH1 0x00 00001385: JUMPDEST 00001386: DUP4 00001387: DUP2 00001388: LT 00001389: ISZERO 0000138a: PUSH2 0x139d 0000138d: JUMPI 0000138e: DUP2 0000138f: DUP2 00001390: ADD 00001391: MLOAD 00001392: DUP4 00001393: DUP3 00001394: ADD 00001395: MSTORE 00001396: PUSH1 0x20 00001398: ADD 00001399: PUSH2 0x1385 0000139c: JUMP 0000139d: JUMPDEST 0000139e: POP 0000139f: POP 000013a0: POP 000013a1: POP 000013a2: SWAP1 000013a3: POP 000013a4: SWAP1 000013a5: DUP2 000013a6: ADD 000013a7: SWAP1 000013a8: PUSH1 0x1f 000013aa: AND 000013ab: DUP1 000013ac: ISZERO 000013ad: PUSH2 0x13ca 000013b0: JUMPI 000013b1: DUP1 000013b2: DUP3 000013b3: SUB 000013b4: DUP1 000013b5: MLOAD 000013b6: PUSH1 0x01 000013b8: DUP4 000013b9: PUSH1 0x20 000013bb: SUB 000013bc: PUSH2 0x0100 000013bf: EXP 000013c0: SUB 000013c1: NOT 000013c2: AND 000013c3: DUP2 000013c4: MSTORE 000013c5: PUSH1 0x20 000013c7: ADD 000013c8: SWAP2 000013c9: POP 000013ca: JUMPDEST 000013cb: POP 000013cc: DUP4 000013cd: DUP2 000013ce: SUB 000013cf: DUP3 000013d0: MSTORE 000013d1: DUP6 000013d2: MLOAD 000013d3: DUP2 000013d4: MSTORE 000013d5: DUP6 000013d6: MLOAD 000013d7: PUSH1 0x20 000013d9: SWAP2 000013da: DUP3 000013db: ADD 000013dc: SWAP2 000013dd: DUP8 000013de: ADD 000013df: SWAP1 000013e0: DUP1 000013e1: DUP4 000013e2: DUP4 000013e3: PUSH1 0x00 000013e5: JUMPDEST 000013e6: DUP4 000013e7: DUP2 000013e8: LT 000013e9: ISZERO 000013ea: PUSH2 0x13fd 000013ed: JUMPI 000013ee: DUP2 000013ef: DUP2 000013f0: ADD 000013f1: MLOAD 000013f2: DUP4 000013f3: DUP3 000013f4: ADD 000013f5: MSTORE 000013f6: PUSH1 0x20 000013f8: ADD 000013f9: PUSH2 0x13e5 000013fc: JUMP 000013fd: JUMPDEST 000013fe: POP 000013ff: POP 00001400: POP 00001401: POP 00001402: SWAP1 00001403: POP 00001404: SWAP1 00001405: DUP2 00001406: ADD 00001407: SWAP1 00001408: PUSH1 0x1f 0000140a: AND 0000140b: DUP1 0000140c: ISZERO 0000140d: PUSH2 0x142a 00001410: JUMPI 00001411: DUP1 00001412: DUP3 00001413: SUB 00001414: DUP1 00001415: MLOAD 00001416: PUSH1 0x01 00001418: DUP4 00001419: PUSH1 0x20 0000141b: SUB 0000141c: PUSH2 0x0100 0000141f: EXP 00001420: SUB 00001421: NOT 00001422: AND 00001423: DUP2 00001424: MSTORE 00001425: PUSH1 0x20 00001427: ADD 00001428: SWAP2 00001429: POP 0000142a: JUMPDEST 0000142b: POP 0000142c: SWAP8 0000142d: POP 0000142e: POP 0000142f: POP 00001430: POP 00001431: POP 00001432: POP 00001433: POP 00001434: POP 00001435: PUSH1 0x40 00001437: MLOAD 00001438: PUSH1 0x20 0000143a: DUP2 0000143b: DUP4 0000143c: SUB 0000143d: SUB 0000143e: DUP2 0000143f: MSTORE 00001440: SWAP1 00001441: PUSH1 0x40 00001443: MSTORE 00001444: DUP1 00001445: MLOAD 00001446: SWAP1 00001447: PUSH1 0x20 00001449: ADD 0000144a: KECCAK256 0000144b: SWAP1 0000144c: POP 0000144d: PUSH1 0x00 0000144f: PUSH1 0x03 00001451: PUSH1 0x00 00001453: DUP4 00001454: DUP2 00001455: MSTORE 00001456: PUSH1 0x20 00001458: ADD 00001459: SWAP1 0000145a: DUP2 0000145b: MSTORE 0000145c: PUSH1 0x20 0000145e: ADD 0000145f: PUSH1 0x00 00001461: KECCAK256 00001462: PUSH1 0x00 00001464: PUSH2 0x0100 00001467: EXP 00001468: DUP2 00001469: SLOAD 0000146a: DUP2 0000146b: PUSH1 0xff 0000146d: MUL 0000146e: NOT 0000146f: AND 00001470: SWAP1 00001471: DUP4 00001472: ISZERO 00001473: ISZERO 00001474: MUL 00001475: OR 00001476: SWAP1 00001477: SSTORE 00001478: POP 00001479: DUP6 0000147a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000148f: AND 00001490: DUP2 00001491: PUSH32 0x2fffc091a501fd91bfbff27141450d3acb40fb8e6d8382b243ec7a812a3aaf87 000014b2: DUP8 000014b3: DUP8 000014b4: DUP8 000014b5: DUP8 000014b6: PUSH1 0x40 000014b8: MLOAD 000014b9: DUP1 000014ba: DUP6 000014bb: DUP2 000014bc: MSTORE 000014bd: PUSH1 0x20 000014bf: ADD 000014c0: DUP1 000014c1: PUSH1 0x20 000014c3: ADD 000014c4: DUP1 000014c5: PUSH1 0x20 000014c7: ADD 000014c8: DUP5 000014c9: DUP2 000014ca: MSTORE 000014cb: PUSH1 0x20 000014cd: ADD 000014ce: DUP4 000014cf: DUP2 000014d0: SUB 000014d1: DUP4 000014d2: MSTORE 000014d3: DUP7 000014d4: DUP2 000014d5: DUP2 000014d6: MLOAD 000014d7: DUP2 000014d8: MSTORE 000014d9: PUSH1 0x20 000014db: ADD 000014dc: SWAP2 000014dd: POP 000014de: DUP1 000014df: MLOAD 000014e0: SWAP1 000014e1: PUSH1 0x20 000014e3: ADD 000014e4: SWAP1 000014e5: DUP1 000014e6: DUP4 000014e7: DUP4 000014e8: PUSH1 0x00 000014ea: JUMPDEST 000014eb: DUP4 000014ec: DUP2 000014ed: LT 000014ee: ISZERO 000014ef: PUSH2 0x1502 000014f2: JUMPI 000014f3: DUP2 000014f4: DUP2 000014f5: ADD 000014f6: MLOAD 000014f7: DUP4 000014f8: DUP3 000014f9: ADD 000014fa: MSTORE 000014fb: PUSH1 0x20 000014fd: ADD 000014fe: PUSH2 0x14ea 00001501: JUMP 00001502: JUMPDEST 00001503: POP 00001504: POP 00001505: POP 00001506: POP 00001507: SWAP1 00001508: POP 00001509: SWAP1 0000150a: DUP2 0000150b: ADD 0000150c: SWAP1 0000150d: PUSH1 0x1f 0000150f: AND 00001510: DUP1 00001511: ISZERO 00001512: PUSH2 0x152f 00001515: JUMPI 00001516: DUP1 00001517: DUP3 00001518: SUB 00001519: DUP1 0000151a: MLOAD 0000151b: PUSH1 0x01 0000151d: DUP4 0000151e: PUSH1 0x20 00001520: SUB 00001521: PUSH2 0x0100 00001524: EXP 00001525: SUB 00001526: NOT 00001527: AND 00001528: DUP2 00001529: MSTORE 0000152a: PUSH1 0x20 0000152c: ADD 0000152d: SWAP2 0000152e: POP 0000152f: JUMPDEST 00001530: POP 00001531: DUP4 00001532: DUP2 00001533: SUB 00001534: DUP3 00001535: MSTORE 00001536: DUP6 00001537: MLOAD 00001538: DUP2 00001539: MSTORE 0000153a: DUP6 0000153b: MLOAD 0000153c: PUSH1 0x20 0000153e: SWAP2 0000153f: DUP3 00001540: ADD 00001541: SWAP2 00001542: DUP8 00001543: ADD 00001544: SWAP1 00001545: DUP1 00001546: DUP4 00001547: DUP4 00001548: PUSH1 0x00 0000154a: JUMPDEST 0000154b: DUP4 0000154c: DUP2 0000154d: LT 0000154e: ISZERO 0000154f: PUSH2 0x1562 00001552: JUMPI 00001553: DUP2 00001554: DUP2 00001555: ADD 00001556: MLOAD 00001557: DUP4 00001558: DUP3 00001559: ADD 0000155a: MSTORE 0000155b: PUSH1 0x20 0000155d: ADD 0000155e: PUSH2 0x154a 00001561: JUMP 00001562: JUMPDEST 00001563: POP 00001564: POP 00001565: POP 00001566: POP 00001567: SWAP1 00001568: POP 00001569: SWAP1 0000156a: DUP2 0000156b: ADD 0000156c: SWAP1 0000156d: PUSH1 0x1f 0000156f: AND 00001570: DUP1 00001571: ISZERO 00001572: PUSH2 0x158f 00001575: JUMPI 00001576: DUP1 00001577: DUP3 00001578: SUB 00001579: DUP1 0000157a: MLOAD 0000157b: PUSH1 0x01 0000157d: DUP4 0000157e: PUSH1 0x20 00001580: SUB 00001581: PUSH2 0x0100 00001584: EXP 00001585: SUB 00001586: NOT 00001587: AND 00001588: DUP2 00001589: MSTORE 0000158a: PUSH1 0x20 0000158c: ADD 0000158d: SWAP2 0000158e: POP 0000158f: JUMPDEST 00001590: POP 00001591: SWAP7 00001592: POP 00001593: POP 00001594: POP 00001595: POP 00001596: POP 00001597: POP 00001598: POP 00001599: PUSH1 0x40 0000159b: MLOAD 0000159c: DUP1 0000159d: SWAP2 0000159e: SUB 0000159f: SWAP1 000015a0: LOG3 000015a1: POP 000015a2: POP 000015a3: POP 000015a4: POP 000015a5: POP 000015a6: POP 000015a7: JUMP 000015a8: JUMPDEST 000015a9: PUSH1 0x02 000015ab: SLOAD 000015ac: DUP2 000015ad: JUMP 000015ae: JUMPDEST 000015af: PUSH3 0x278d00 000015b3: DUP2 000015b4: JUMP 000015b5: JUMPDEST 000015b6: PUSH3 0x02a300 000015ba: DUP2 000015bb: JUMP 000015bc: JUMPDEST 000015bd: PUSH3 0x127500 000015c1: DUP2 000015c2: JUMP 000015c3: JUMPDEST 000015c4: CALLER 000015c5: ADDRESS 000015c6: EQ 000015c7: PUSH2 0x161b 000015ca: JUMPI 000015cb: PUSH1 0x40 000015cd: MLOAD 000015ce: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000015ef: DUP2 000015f0: MSTORE 000015f1: PUSH1 0x04 000015f3: ADD 000015f4: DUP1 000015f5: DUP1 000015f6: PUSH1 0x20 000015f8: ADD 000015f9: DUP3 000015fa: DUP2 000015fb: SUB 000015fc: DUP3 000015fd: MSTORE 000015fe: PUSH1 0x31 00001600: DUP2 00001601: MSTORE 00001602: PUSH1 0x20 00001604: ADD 00001605: DUP1 00001606: PUSH2 0x1a73 00001609: PUSH1 0x31 0000160b: SWAP2 0000160c: CODECOPY 0000160d: PUSH1 0x40 0000160f: ADD 00001610: SWAP2 00001611: POP 00001612: POP 00001613: PUSH1 0x40 00001615: MLOAD 00001616: DUP1 00001617: SWAP2 00001618: SUB 00001619: SWAP1 0000161a: REVERT 0000161b: JUMPDEST 0000161c: PUSH3 0x02a300 00001620: DUP2 00001621: LT 00001622: ISZERO 00001623: PUSH2 0x1677 00001626: JUMPI 00001627: PUSH1 0x40 00001629: MLOAD 0000162a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000164b: DUP2 0000164c: MSTORE 0000164d: PUSH1 0x04 0000164f: ADD 00001650: DUP1 00001651: DUP1 00001652: PUSH1 0x20 00001654: ADD 00001655: DUP3 00001656: DUP2 00001657: SUB 00001658: DUP3 00001659: MSTORE 0000165a: PUSH1 0x34 0000165c: DUP2 0000165d: MSTORE 0000165e: PUSH1 0x20 00001660: ADD 00001661: DUP1 00001662: PUSH2 0x189e 00001665: PUSH1 0x34 00001667: SWAP2 00001668: CODECOPY 00001669: PUSH1 0x40 0000166b: ADD 0000166c: SWAP2 0000166d: POP 0000166e: POP 0000166f: PUSH1 0x40 00001671: MLOAD 00001672: DUP1 00001673: SWAP2 00001674: SUB 00001675: SWAP1 00001676: REVERT 00001677: JUMPDEST 00001678: PUSH3 0x278d00 0000167c: DUP2 0000167d: GT 0000167e: ISZERO 0000167f: PUSH2 0x16d3 00001682: JUMPI 00001683: PUSH1 0x40 00001685: MLOAD 00001686: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000016a7: DUP2 000016a8: MSTORE 000016a9: PUSH1 0x04 000016ab: ADD 000016ac: DUP1 000016ad: DUP1 000016ae: PUSH1 0x20 000016b0: ADD 000016b1: DUP3 000016b2: DUP2 000016b3: SUB 000016b4: DUP3 000016b5: MSTORE 000016b6: PUSH1 0x38 000016b8: DUP2 000016b9: MSTORE 000016ba: PUSH1 0x20 000016bc: ADD 000016bd: DUP1 000016be: PUSH2 0x18d2 000016c1: PUSH1 0x38 000016c3: SWAP2 000016c4: CODECOPY 000016c5: PUSH1 0x40 000016c7: ADD 000016c8: SWAP2 000016c9: POP 000016ca: POP 000016cb: PUSH1 0x40 000016cd: MLOAD 000016ce: DUP1 000016cf: SWAP2 000016d0: SUB 000016d1: SWAP1 000016d2: REVERT 000016d3: JUMPDEST 000016d4: PUSH1 0x02 000016d6: DUP2 000016d7: SWAP1 000016d8: SSTORE 000016d9: PUSH1 0x40 000016db: MLOAD 000016dc: DUP2 000016dd: SWAP1 000016de: PUSH32 0x948b1f6a42ee138b7e34058ba85a37f716d55ff25ff05a763f15bed6a04c8d2c 000016ff: SWAP1 00001700: PUSH1 0x00 00001702: SWAP1 00001703: LOG2 00001704: POP 00001705: JUMP 00001706: JUMPDEST 00001707: PUSH1 0x03 00001709: PUSH1 0x20 0000170b: MSTORE 0000170c: PUSH1 0x00 0000170e: SWAP1 0000170f: DUP2 00001710: MSTORE 00001711: PUSH1 0x40 00001713: SWAP1 00001714: KECCAK256 00001715: SLOAD 00001716: PUSH1 0xff 00001718: AND 00001719: DUP2 0000171a: JUMP 0000171b: JUMPDEST 0000171c: PUSH1 0x00 0000171e: SLOAD 0000171f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001734: AND 00001735: DUP2 00001736: JUMP 00001737: JUMPDEST 00001738: TIMESTAMP 00001739: SWAP1 0000173a: JUMP 0000173b: JUMPDEST 0000173c: PUSH1 0x00 0000173e: DUP3 0000173f: DUP3 00001740: ADD 00001741: DUP4 00001742: DUP2 00001743: LT 00001744: ISZERO 00001745: PUSH2 0x17af 00001748: JUMPI 00001749: PUSH1 0x40 0000174b: DUP1 0000174c: MLOAD 0000174d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000176e: DUP2 0000176f: MSTORE 00001770: PUSH1 0x20 00001772: PUSH1 0x04 00001774: DUP3 00001775: ADD 00001776: MSTORE 00001777: PUSH1 0x1b 00001779: PUSH1 0x24 0000177b: DUP3 0000177c: ADD 0000177d: MSTORE 0000177e: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000 0000179f: PUSH1 0x44 000017a1: DUP3 000017a2: ADD 000017a3: MSTORE 000017a4: SWAP1 000017a5: MLOAD 000017a6: SWAP1 000017a7: DUP2 000017a8: SWAP1 000017a9: SUB 000017aa: PUSH1 0x64 000017ac: ADD 000017ad: SWAP1 000017ae: REVERT 000017af: JUMPDEST 000017b0: SWAP4 000017b1: SWAP3 000017b2: POP 000017b3: POP 000017b4: POP 000017b5: JUMP 000017b6: INVALID 000017b7: SLOAD 000017b8: PUSH10 0x6d656c6f636b3a3a6578 000017c3: PUSH6 0x637574655472 000017ca: PUSH2 0x6e73 000017cd: PUSH2 0x6374 000017d0: PUSH10 0x6f6e3a2043616c6c206d 000017db: PUSH22 0x737420636f6d652066726f6d2061646d696e2e54696d 000017f2: PUSH6 0x6c6f636b3a3a 000017f9: PUSH4 0x616e6365 000017fe: PUSH13 0x5472616e73616374696f6e3a20 0000180c: NUMBER 0000180d: PUSH2 0x6c6c 00001810: KECCAK256 00001811: PUSH14 0x75737420636f6d652066726f6d20 00001820: PUSH2 0x646d 00001823: PUSH10 0x6e2e54696d656c6f636b 0000182e: GASPRICE 0000182f: GASPRICE 00001830: PUSH6 0x786563757465 00001837: SLOAD 00001838: PUSH19 0x616e73616374696f6e3a205472616e73616374 0000184c: PUSH10 0x6f6e206973207374616c 00001857: PUSH6 0x2e54696d656c 0000185e: PUSH16 0x636b3a3a657865637574655472616e73 0000186f: PUSH2 0x6374 00001872: PUSH10 0x6f6e3a205472616e7361 0000187d: PUSH4 0x74696f6e 00001882: KECCAK256 00001883: PUSH9 0x61736e277420737572 0000188d: PUSH17 0x61737365642074696d65206c6f636b2e54 0000189f: PUSH10 0x6d656c6f636b3a3a7365 000018aa: PUSH21 0x44656c61793a2044656c6179206d75737420657863 000018c0: PUSH6 0x6564206d696e 000018c7: PUSH10 0x6d756d2064656c61792e 000018d2: SLOAD 000018d3: PUSH10 0x6d656c6f636b3a3a7365 000018de: PUSH21 0x44656c61793a2044656c6179206d757374206e6f74 000018f4: KECCAK256 000018f5: PUSH6 0x786365656420 000018fc: PUSH14 0x6178696d756d2064656c61792e54 0000190b: PUSH10 0x6d656c6f636b3a3a6578 00001916: PUSH6 0x637574655472 0000191d: PUSH2 0x6e73 00001920: PUSH2 0x6374 00001923: PUSH10 0x6f6e3a205472616e7361 0000192e: PUSH4 0x74696f6e 00001933: KECCAK256 00001934: PUSH9 0x61736e277420626565 0000193e: PUSH15 0x207175657565642e54696d656c6f63 0000194e: PUSH12 0x3a3a61636365707441646d69 0000195b: PUSH15 0x3a2043616c6c206d75737420636f6d 0000196b: PUSH6 0x2066726f6d20 00001972: PUSH17 0x656e64696e6741646d696e2e54696d656c 00001984: PUSH16 0x636b3a3a73657450656e64696e674164 00001995: PUSH14 0x696e3a2043616c6c206d75737420 000019a4: PUSH4 0x6f6d6520 000019a9: PUSH7 0x726f6d2054696d 000019b1: PUSH6 0x6c6f636b2e54 000019b8: PUSH10 0x6d656c6f636b3a3a7175 000019c3: PUSH6 0x75655472616e 000019ca: PUSH20 0x616374696f6e3a2043616c6c206d75737420636f 000019df: PUSH14 0x652066726f6d2061646d696e2e54 000019ee: PUSH10 0x6d656c6f636b3a3a6578 000019f9: PUSH6 0x637574655472 00001a00: PUSH2 0x6e73 00001a03: PUSH2 0x6374 00001a06: PUSH10 0x6f6e3a205472616e7361 00001a11: PUSH4 0x74696f6e 00001a16: KECCAK256 00001a17: PUSH6 0x786563757469 00001a1e: PUSH16 0x6e2072657665727465642e54696d656c 00001a2f: PUSH16 0x636b3a3a71756575655472616e736163 00001a40: PUSH21 0x696f6e3a20457374696d6174656420657865637574 00001a56: PUSH10 0x6f6e20626c6f636b206d 00001a61: PUSH22 0x737420736174697366792064656c61792e54696d656c 00001a78: PUSH16 0x636b3a3a73657444656c61793a204361 00001a89: PUSH13 0x6c206d75737420636f6d652066 00001a97: PUSH19 0x6f6d2054696d656c6f636b2ea2646970667358 00001aab: UNKNOWN(0x22) 00001aac: SLT 00001aad: KECCAK256 00001aae: UNKNOWN(0x26) 00001aaf: UNKNOWN(0xBF) 00001ab0: UNKNOWN(0xC2) 00001ab1: UNKNOWN(0xFB) 00001ab2: OR 00001ab3: UNKNOWN(0xB6) 00001ab4: UNKNOWN(0xAD) 00001ab5: UNKNOWN(0x28) 00001ab6: BLOBHASH 00001ab7: UNKNOWN(0xD8) 00001ab8: LOG2 00001ab9: UNKNOWN(0xDD) 00001aba: CLZ 00001abb: DUP12 00001abc: JUMPDEST 00001abd: DUP1 00001abe: MSTORE 00001abf: DIFFICULTY 00001ac0: LOG1 00001ac1: UNKNOWN(0x28) 00001ac2: UNKNOWN(0xDC) 00001ac3: UNKNOWN(0xCE) 00001ac4: CALL 00001ac5: LOG1 00001ac6: BALANCE 00001ac7: UNKNOWN(0x21) 00001ac8: CODECOPY 00001ac9: XOR 00001aca: ISZERO 00001acb: DUP6 00001acc: PUSH28
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x5adf9ee8aa1013f7673effc867e2c21cff16e399182cf7365d3e7e31dc5925ba
call_targets:
0x223592a191ecfc7fdc38a9256c3bd96e771539a9
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x5adf9ee8aa1013f7673effc867e2c21cff16e399182cf7365d3e7e31dc5925ba",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x223592a191ecfc7fdc38a9256c3bd96e771539a9"
],
"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": "0xc1a287e2",
"selector": "0xc1a287e2",
"calldata_variants": [
"0xc1a287e2",
"0xc1a287e20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe177246e",
"selector": "0xe177246e",
"calldata_variants": [
"0xe177246e",
"0xe177246e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2b06537",
"selector": "0xf2b06537",
"calldata_variants": [
"0xf2b06537",
"0xf2b065370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf851a440",
"selector": "0xf851a440",
"calldata_variants": [
"0xf851a440",
"0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6a42b8f8",
"selector": "0x6a42b8f8",
"calldata_variants": [
"0x6a42b8f8",
"0x6a42b8f80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7d645fab",
"selector": "0x7d645fab",
"calldata_variants": [
"0x7d645fab",
"0x7d645fab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb1b43ae5",
"selector": "0xb1b43ae5",
"calldata_variants": [
"0xb1b43ae5",
"0xb1b43ae50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3a66f901",
"selector": "0x3a66f901",
"calldata_variants": [
"0x3a66f901",
"0x3a66f9010000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2965,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6852,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x5adf9ee8aa1013f7673effc867e2c21cff16e399182cf7365d3e7e31dc5925ba
call_targets:
0x223592a191ecfc7fdc38a9256c3bd96e771539a9
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x5adf9ee8aa1013f7673effc867e2c21cff16e399182cf7365d3e7e31dc5925ba",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x223592a191ecfc7fdc38a9256c3bd96e771539a9"
],
"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": "0xc1a287e2",
"selector": "0xc1a287e2",
"calldata_variants": [
"0xc1a287e2",
"0xc1a287e20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe177246e",
"selector": "0xe177246e",
"calldata_variants": [
"0xe177246e",
"0xe177246e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2b06537",
"selector": "0xf2b06537",
"calldata_variants": [
"0xf2b06537",
"0xf2b065370000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf851a440",
"selector": "0xf851a440",
"calldata_variants": [
"0xf851a440",
"0xf851a4400000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x6a42b8f8",
"selector": "0x6a42b8f8",
"calldata_variants": [
"0x6a42b8f8",
"0x6a42b8f80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x7d645fab",
"selector": "0x7d645fab",
"calldata_variants": [
"0x7d645fab",
"0x7d645fab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb1b43ae5",
"selector": "0xb1b43ae5",
"calldata_variants": [
"0xb1b43ae5",
"0xb1b43ae50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3a66f901",
"selector": "0x3a66f901",
"calldata_variants": [
"0x3a66f901",
"0x3a66f9010000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 2965,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6852,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|