e6fd2d24-6eba-44aa-9a40-eae8d9f01e64
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 |
|---|---|---|---|---|
| 31514 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 77710 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 77711 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 77712 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 77713 | capability.graph | complete | 1 / 3 | 1 week ago |
| 77714 | detector.run | complete | 1 / 3 | 1 week ago |
| 77715 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:332640] OpenAI Codex v0.77.0 (research preview)
[codex:332640] --------
[codex:332640] workdir: /tmp/codex-multi-65onh5ec
[codex:332640] model: gpt-5.2-codex
[codex:332640] provider: openai
[codex:332640] approval: never
[codex:332640] sandbox: read-only
[codex:332640] reasoning effort: xhigh
[codex:332640] reasoning summaries: auto
[codex:332640] session id: 019b86ab-8c3c-7452-8752-3d13217cd6e6
[codex:332640] --------
[codex:332640] user
[codex:332640] You are a profit-focused exploit hunter. Your ONLY goal is finding ways to extract value (ETH, tokens, NFTs) from this contract.
[codex:332640]
[codex:332640] Read `AUDIT_BUNDLE.txt` completely before concluding. Treat `lib/` and `@openzeppelin/` as trusted unless misused.
[codex:332640]
[codex:332640] ONLY REPORT if you find a CONCRETE, EXPLOITABLE path to profit. We do NOT care about:
[codex:332640] - Gas inefficiency, code quality, naming, or best practices
[codex:332640] - Theoretical vulnerabilities without a clear extraction path
[codex:332640] - Centralization risks (admin can rug) - assume admin keys are secure
[codex:332640] - Front-running unless it enables theft beyond MEV
[codex:332640] - DoS, griefing, or issues that don't result in attacker profit
[codex:332640] - Missing events, view function issues, or informational findings
[codex:332640]
[codex:332640] HIGH-VALUE PATTERNS TO HUNT:
[codex:332640] - Reentrancy: external calls before state updates that allow double-withdrawal
[codex:332640] - Access control: missing/bypassable auth on withdraw, transfer, or mint functions
[codex:332640] - Flash loan attacks: borrow -> manipulate -> profit in single tx
[codex:332640] - Price oracle manipulation: TWAP with short window, spot price reads, stale prices
[codex:332640] - Signature replay: missing nonce, chainId, or deadline in permit/meta-tx
[codex:332640] - Proxy hijacking: unprotected initialize(), storage collision, UUPS without auth
[codex:332640] - Accounting errors: rounding that favors attacker, share inflation, first depositor attacks
[codex:332640] - Unchecked external calls: return value ignored on token transfers enabling fake tokens
[codex:332640] - Cross-function reentrancy: state read in function A, modified via reentrant call, used stale in A
[codex:332640]
[codex:332640] For each finding, you MUST provide:
[codex:332640] 1. Exact file and line numbers of vulnerable code
[codex:332640] 2. Step-by-step exploit transaction sequence
[codex:332640] 3. Estimated profit potential (order of magnitude: contract balance, LP reserves, etc.)
[codex:332640]
[codex:332640] If no concrete profit path exists: set no_findings=true. Do NOT pad with low-severity noise.
[codex:332640]
[codex:332640] Output MUST be valid JSON matching the provided schema.
[codex:332640] - severity: info, low, medium, high, critical (use high/critical ONLY for clear extraction paths)
[codex:332640] - category: access_control, reentrancy, math, oracle, upgradeability, auth, other
[codex:332640] mcp startup: no servers
[codex:332640]
[codex:332640] thinking
[codex:332640] **Reading AUDIT_BUNDLE.txt**
[codex:332640] exec
[codex:332640] /bin/bash -lc ls in /tmp/codex-multi-65onh5ec succeeded in 5ms:
[codex:332640] AUDIT_BUNDLE.txt
[codex:332640] codex-output-schema.json
[codex:332640] contracts
[codex:332640] exec
[codex:332640] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-65onh5ec succeeded in 5ms:
[codex:332640] This file concatenates first-party Solidity sources only (lib/@openzeppelin excluded).
[codex:332640]
[codex:332640] ================================================================================
[codex:332640] FILE: contracts/Contract.sol
[codex:332640] ================================================================================
[codex:332640] pragma solidity ^0.4.11;
[codex:332640]
[codex:332640] /**
[codex:332640] * @title Ownable
[codex:332640] * @dev The Ownable contract has an owner address, and provides basic authorization control
[codex:332640] * functions, this simplifies the implementation of "user permissions".
[codex:332640] */
[codex:332640] contract Ownable {
[codex:332640] address public owner;
[codex:332640]
[codex:332640]
[codex:332640] event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
[codex:332640]
[codex:332640]
[codex:332640] /**
[codex:332640]
[codex:332640] thinking
[codex:332640] **Preparing for exploit analysis**
[codex:332640] exec
[codex:332640] /bin/bash -lc 'nl -ba contracts/Contract.sol' in /tmp/codex-multi-65onh5ec succeeded in 5ms:
[codex:332640] 1 pragma solidity ^0.4.11;
[codex:332640] 2
[codex:332640] 3 /**
[codex:332640] 4 * @title Ownable
[codex:332640] 5 * @dev The Ownable contract has an owner address, and provides basic authorization control
[codex:332640] 6 * functions, this simplifies the implementation of "user permissions".
[codex:332640] 7 */
[codex:332640] 8 contract Ownable {
[codex:332640] 9 address public owner;
[codex:332640] 10
[codex:332640] 11
[codex:332640] 12 event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
[codex:332640] 13
[codex:332640] 14
[codex:332640] 15 /**
[codex:332640] 16 * @dev The Ownable constructor sets the original `owner` of the contract to the sender
[codex:332640] 17 * account.
[codex:332640] 18 */
[codex:332640] 19 function Ownable() public {
[codex:332640] 20 owner = msg.sender;
[codex:332640]
[codex:332640]
[codex:332640]
[codex:332640] thinking
[codex:332640] **Analyzing potential profit exploits in token presale contract**
[codex:332640] thinking
[codex:332640] **Preparing JSON report of identified vulnerability and exploit path**
[codex:332640]
[codex:332640] I'll summarize the primary profit-focused vulnerability involving token retention after refunds in presale failure, then output a structured JSON report with findings and evidence lines.
[codex:332640] thinking
[codex:332640] ```json
[codex:332640] {
[codex:332640] "no_findings": false,
[codex:332640] "summary": "Found 1 exploitable path: refund lets buyers keep tokens when soft cap not reached, enabling free tokens.",
[codex:332640] "findings": [
[codex:332640] {
[codex:332640] "severity": "medium",
[codex:332640] "category": "other",
[codex:332640] "title": "Refunds do not reclaim tokens, enabling free tokens if soft cap missed",
[codex:332640] "exploit_scenario": "1. Attacker (whitelisted) contributes during presale to receive tokens immediately. 2. Sale ends without reaching soft cap. 3. Attacker calls refund to get their ETH back while retaining the tokens. 4. If/when token is later released, attacker transfers/sells those free tokens.",
[codex:332640] "recommendation": "On refund, burn or claw back the contributor's tokens (or escrow token delivery until soft cap success). Also track and reduce tokensSold/collected appropriately.",
[codex:332640] "evidence": "`doPurchase` transfers tokens to buyer immediately (contracts/Contract.sol:618) while `refund` only transfers ETH back and never burns or reclaims tokens (contracts/Contract.sol:560-571).",
[codex:332640] "locations": [
[codex:332640] "contracts/Contract.sol:560",
[codex:332640] "contracts/Contract.sol:561",
[codex:332640] "contracts/Contract.sol:567",
[codex:332640] "contracts/Contract.sol:618"
[codex:332640] ]
[codex:332640] }
[codex:332640] ]
[codex:332640] }
[codex:332640] ```
[codex:332640] codex
[codex:332640] {"no_findings":false,"summary":"Found 1 exploitable path: refunds let contributors keep tokens when the soft cap is missed, enabling free tokens.","findings":[{"severity":"medium","category":"other","title":"Refunds do not reclaim tokens, enabling free tokens if soft cap is missed","exploit_scenario":"1) Attacker (whitelisted) contributes during the presale to receive tokens immediately. 2) The presale ends without reaching the soft cap. 3) Attacker calls `refund()` to receive their full ETH deposit back while keeping the tokens already transferred. 4) If/when the token is later released, attacker can transfer/sell those free tokens for profit.","recommendation":"When refunding, burn or claw back the contributor’s tokens (or escrow token delivery until soft cap success). Also adjust `tokensSold`/accounting on refund to prevent free-token outcomes.","evidence":"`doPurchase` transfers tokens immediately to the buyer (Contract.sol:618) while `refund` only returns ETH and never burns or reclaims tokens (Contract.sol:560-571).","locations":["contracts/Contract.sol:560","contracts/Contract.sol:618"]}]}
[codex:332640] tokens used
[codex:332640] 28,684
[codex:332640] {"no_findings":false,"summary":"Found 1 exploitable path: refunds let contributors keep tokens when the soft cap is missed, enabling free tokens.","findings":[{"severity":"medium","category":"other","title":"Refunds do not reclaim tokens, enabling free tokens if soft cap is missed","exploit_scenario":"1) Attacker (whitelisted) contributes during the presale to receive tokens immediately. 2) The presale ends without reaching the soft cap. 3) Attacker calls `refund()` to receive their full ETH deposit back while keeping the tokens already transferred. 4) If/when the token is later released, attacker can transfer/sell those free tokens for profit.","recommendation":"When refunding, burn or claw back the contributor’s tokens (or escrow token delivery until soft cap success). Also adjust `tokensSold`/accounting on refund to prevent free-token outcomes.","evidence":"`doPurchase` transfers tokens immediately to the buyer (Contract.sol:618) while `refund` only returns ETH and never burns or reclaims tokens (Contract.sol:560-571).","locations":["contracts/Contract.sol:560","contracts/Contract.sol:618"]}]}
{
"codex": {
"ran_at": "2026-01-04T01:44:53.535559+00:00",
"returncode": 0
},
"summary": "Found 1 exploitable path: refunds let contributors keep tokens when the soft cap is missed, enabling free tokens.",
"raw_final": {
"summary": "Found 1 exploitable path: refunds let contributors keep tokens when the soft cap is missed, enabling free tokens.",
"findings": [
{
"title": "Refunds do not reclaim tokens, enabling free tokens if soft cap is missed",
"category": "other",
"evidence": "`doPurchase` transfers tokens immediately to the buyer (Contract.sol:618) while `refund` only returns ETH and never burns or reclaims tokens (Contract.sol:560-571).",
"severity": "medium",
"locations": [
"contracts/Contract.sol:560",
"contracts/Contract.sol:618"
],
"recommendation": "When refunding, burn or claw back the contributor\u2019s tokens (or escrow token delivery until soft cap success). Also adjust `tokensSold`/accounting on refund to prevent free-token outcomes.",
"exploit_scenario": "1) Attacker (whitelisted) contributes during the presale to receive tokens immediately. 2) The presale ends without reaching the soft cap. 3) Attacker calls `refund()` to receive their full ETH deposit back while keeping the tokens already transferred. 4) If/when the token is later released, attacker can transfer/sell those free tokens for profit."
}
],
"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 0x0180 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 0000002e: SWAP1 0000002f: DIV 00000030: PUSH4 0xffffffff 00000035: AND 00000036: DUP1 00000037: PUSH4 0x06fdde03 0000003c: EQ 0000003d: PUSH2 0x028e 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0x2b9edee9 00000047: EQ 00000048: PUSH2 0x031e 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0x3197cbb6 00000052: EQ 00000053: PUSH2 0x034d 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0x38af3eed 0000005d: EQ 0000005e: PUSH2 0x0378 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0x3b478fc5 00000068: EQ 00000069: PUSH2 0x03cf 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0x3ccfd60b 00000073: EQ 00000074: PUSH2 0x03fa 00000077: JUMPI 00000078: DUP1 00000079: PUSH4 0x518ab2a8 0000007e: EQ 0000007f: PUSH2 0x0411 00000082: JUMPI 00000083: DUP1 00000084: PUSH4 0x5249be25 00000089: EQ 0000008a: PUSH2 0x043c 0000008d: JUMPI 0000008e: DUP1 0000008f: PUSH4 0x590e1ae3 00000094: EQ 00000095: PUSH2 0x0467 00000098: JUMPI 00000099: DUP1 0000009a: PUSH4 0x5da89ac0 0000009f: EQ 000000a0: PUSH2 0x047e 000000a3: JUMPI 000000a4: DUP1 000000a5: PUSH4 0x5ed7ca5b 000000aa: EQ 000000ab: PUSH2 0x04a9 000000ae: JUMPI 000000af: DUP1 000000b0: PUSH4 0x78e97925 000000b5: EQ 000000b6: PUSH2 0x04c0 000000b9: JUMPI 000000ba: DUP1 000000bb: PUSH4 0x7dbeb101 000000c0: EQ 000000c1: PUSH2 0x04eb 000000c4: JUMPI 000000c5: DUP1 000000c6: PUSH4 0x7e1c0c09 000000cb: EQ 000000cc: PUSH2 0x0516 000000cf: JUMPI 000000d0: DUP1 000000d1: PUSH4 0x84bcefd4 000000d6: EQ 000000d7: PUSH2 0x0541 000000da: JUMPI 000000db: DUP1 000000dc: PUSH4 0x8da5cb5b 000000e1: EQ 000000e2: PUSH2 0x056c 000000e5: JUMPI 000000e6: DUP1 000000e7: PUSH4 0x906a26e0 000000ec: EQ 000000ed: PUSH2 0x05c3 000000f0: JUMPI 000000f1: DUP1 000000f2: PUSH4 0xa47001a8 000000f7: EQ 000000f8: PUSH2 0x05ee 000000fb: JUMPI 000000fc: DUP1 000000fd: PUSH4 0xb9b8af0b 00000102: EQ 00000103: PUSH2 0x061b 00000106: JUMPI 00000107: DUP1 00000108: PUSH4 0xcb13cddb 0000010d: EQ 0000010e: PUSH2 0x064a 00000111: JUMPI 00000112: DUP1 00000113: PUSH4 0xcb3e64fd 00000118: EQ 00000119: PUSH2 0x06a1 0000011c: JUMPI 0000011d: DUP1 0000011e: PUSH4 0xd7e64c00 00000123: EQ 00000124: PUSH2 0x06b8 00000127: JUMPI 00000128: DUP1 00000129: PUSH4 0xdccdc893 0000012e: EQ 0000012f: PUSH2 0x06e3 00000132: JUMPI 00000133: DUP1 00000134: PUSH4 0xe342c2e6 00000139: EQ 0000013a: PUSH2 0x0726 0000013d: JUMPI 0000013e: DUP1 0000013f: PUSH4 0xe41f7dc1 00000144: EQ 00000145: PUSH2 0x077d 00000148: JUMPI 00000149: DUP1 0000014a: PUSH4 0xe4e9bcca 0000014f: EQ 00000150: PUSH2 0x07d4 00000153: JUMPI 00000154: DUP1 00000155: PUSH4 0xece84fd5 0000015a: EQ 0000015b: PUSH2 0x0817 0000015e: JUMPI 0000015f: DUP1 00000160: PUSH4 0xf2fde38b 00000165: EQ 00000166: PUSH2 0x0846 00000169: JUMPI 0000016a: DUP1 0000016b: PUSH4 0xfb86a404 00000170: EQ 00000171: PUSH2 0x0889 00000174: JUMPI 00000175: DUP1 00000176: PUSH4 0xfc0c546a 0000017b: EQ 0000017c: PUSH2 0x08b4 0000017f: JUMPI 00000180: JUMPDEST 00000181: PUSH1 0x03 00000183: PUSH1 0x00 00000185: SWAP1 00000186: SLOAD 00000187: SWAP1 00000188: PUSH2 0x0100 0000018b: EXP 0000018c: SWAP1 0000018d: DIV 0000018e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001a3: AND 000001a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000001b9: AND 000001ba: PUSH4 0xbabcc539 000001bf: CALLER 000001c0: PUSH1 0x40 000001c2: MLOAD 000001c3: DUP3 000001c4: PUSH4 0xffffffff 000001c9: AND 000001ca: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 000001e8: MUL 000001e9: DUP2 000001ea: MSTORE 000001eb: PUSH1 0x04 000001ed: ADD 000001ee: DUP1 000001ef: DUP3 000001f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000205: AND 00000206: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000021b: AND 0000021c: DUP2 0000021d: MSTORE 0000021e: PUSH1 0x20 00000220: ADD 00000221: SWAP2 00000222: POP 00000223: POP 00000224: PUSH1 0x20 00000226: PUSH1 0x40 00000228: MLOAD 00000229: DUP1 0000022a: DUP4 0000022b: SUB 0000022c: DUP2 0000022d: PUSH1 0x00 0000022f: DUP8 00000230: DUP1 00000231: EXTCODESIZE 00000232: ISZERO 00000233: DUP1 00000234: ISZERO 00000235: PUSH2 0x023d 00000238: JUMPI 00000239: PUSH1 0x00 0000023b: DUP1 0000023c: REVERT 0000023d: JUMPDEST 0000023e: POP 0000023f: GAS 00000240: CALL 00000241: ISZERO 00000242: DUP1 00000243: ISZERO 00000244: PUSH2 0x0251 00000247: JUMPI 00000248: RETURNDATASIZE 00000249: PUSH1 0x00 0000024b: DUP1 0000024c: RETURNDATACOPY 0000024d: RETURNDATASIZE 0000024e: PUSH1 0x00 00000250: REVERT 00000251: JUMPDEST 00000252: POP 00000253: POP 00000254: POP 00000255: POP 00000256: PUSH1 0x40 00000258: MLOAD 00000259: RETURNDATASIZE 0000025a: PUSH1 0x20 0000025c: DUP2 0000025d: LT 0000025e: ISZERO 0000025f: PUSH2 0x0267 00000262: JUMPI 00000263: PUSH1 0x00 00000265: DUP1 00000266: REVERT 00000267: JUMPDEST 00000268: DUP2 00000269: ADD 0000026a: SWAP1 0000026b: DUP1 0000026c: DUP1 0000026d: MLOAD 0000026e: SWAP1 0000026f: PUSH1 0x20 00000271: ADD 00000272: SWAP1 00000273: SWAP3 00000274: SWAP2 00000275: SWAP1 00000276: POP 00000277: POP 00000278: POP 00000279: ISZERO 0000027a: ISZERO 0000027b: PUSH2 0x0283 0000027e: JUMPI 0000027f: PUSH1 0x00 00000281: DUP1 00000282: REVERT 00000283: JUMPDEST 00000284: PUSH2 0x028c 00000287: CALLER 00000288: PUSH2 0x090b 0000028b: JUMP 0000028c: JUMPDEST 0000028d: STOP 0000028e: JUMPDEST 0000028f: CALLVALUE 00000290: DUP1 00000291: ISZERO 00000292: PUSH2 0x029a 00000295: JUMPI 00000296: PUSH1 0x00 00000298: DUP1 00000299: REVERT 0000029a: JUMPDEST 0000029b: POP 0000029c: PUSH2 0x02a3 0000029f: PUSH2 0x10bf 000002a2: JUMP 000002a3: JUMPDEST 000002a4: PUSH1 0x40 000002a6: MLOAD 000002a7: DUP1 000002a8: DUP1 000002a9: PUSH1 0x20 000002ab: ADD 000002ac: DUP3 000002ad: DUP2 000002ae: SUB 000002af: DUP3 000002b0: MSTORE 000002b1: DUP4 000002b2: DUP2 000002b3: DUP2 000002b4: MLOAD 000002b5: DUP2 000002b6: MSTORE 000002b7: PUSH1 0x20 000002b9: ADD 000002ba: SWAP2 000002bb: POP 000002bc: DUP1 000002bd: MLOAD 000002be: SWAP1 000002bf: PUSH1 0x20 000002c1: ADD 000002c2: SWAP1 000002c3: DUP1 000002c4: DUP4 000002c5: DUP4 000002c6: PUSH1 0x00 000002c8: JUMPDEST 000002c9: DUP4 000002ca: DUP2 000002cb: LT 000002cc: ISZERO 000002cd: PUSH2 0x02e3 000002d0: JUMPI 000002d1: DUP1 000002d2: DUP3 000002d3: ADD 000002d4: MLOAD 000002d5: DUP2 000002d6: DUP5 000002d7: ADD 000002d8: MSTORE 000002d9: PUSH1 0x20 000002db: DUP2 000002dc: ADD 000002dd: SWAP1 000002de: POP 000002df: PUSH2 0x02c8 000002e2: JUMP 000002e3: JUMPDEST 000002e4: POP 000002e5: POP 000002e6: POP 000002e7: POP 000002e8: SWAP1 000002e9: POP 000002ea: SWAP1 000002eb: DUP2 000002ec: ADD 000002ed: SWAP1 000002ee: PUSH1 0x1f 000002f0: AND 000002f1: DUP1 000002f2: ISZERO 000002f3: PUSH2 0x0310 000002f6: JUMPI 000002f7: DUP1 000002f8: DUP3 000002f9: SUB 000002fa: DUP1 000002fb: MLOAD 000002fc: PUSH1 0x01 000002fe: DUP4 000002ff: PUSH1 0x20 00000301: SUB 00000302: PUSH2 0x0100 00000305: EXP 00000306: SUB 00000307: NOT 00000308: AND 00000309: DUP2 0000030a: MSTORE 0000030b: PUSH1 0x20 0000030d: ADD 0000030e: SWAP2 0000030f: POP 00000310: JUMPDEST 00000311: POP 00000312: SWAP3 00000313: POP 00000314: POP 00000315: POP 00000316: PUSH1 0x40 00000318: MLOAD 00000319: DUP1 0000031a: SWAP2 0000031b: SUB 0000031c: SWAP1 0000031d: RETURN 0000031e: JUMPDEST 0000031f: CALLVALUE 00000320: DUP1 00000321: ISZERO 00000322: PUSH2 0x032a 00000325: JUMPI 00000326: PUSH1 0x00 00000328: DUP1 00000329: REVERT 0000032a: JUMPDEST 0000032b: POP 0000032c: PUSH2 0x0333 0000032f: PUSH2 0x10f8 00000332: JUMP 00000333: JUMPDEST 00000334: PUSH1 0x40 00000336: MLOAD 00000337: DUP1 00000338: DUP3 00000339: ISZERO 0000033a: ISZERO 0000033b: ISZERO 0000033c: ISZERO 0000033d: DUP2 0000033e: MSTORE 0000033f: PUSH1 0x20 00000341: ADD 00000342: SWAP2 00000343: POP 00000344: POP 00000345: PUSH1 0x40 00000347: MLOAD 00000348: DUP1 00000349: SWAP2 0000034a: SUB 0000034b: SWAP1 0000034c: RETURN 0000034d: JUMPDEST 0000034e: CALLVALUE 0000034f: DUP1 00000350: ISZERO 00000351: PUSH2 0x0359 00000354: JUMPI 00000355: PUSH1 0x00 00000357: DUP1 00000358: REVERT 00000359: JUMPDEST 0000035a: POP 0000035b: PUSH2 0x0362 0000035e: PUSH2 0x110b 00000361: JUMP 00000362: JUMPDEST 00000363: PUSH1 0x40 00000365: MLOAD 00000366: DUP1 00000367: DUP3 00000368: DUP2 00000369: MSTORE 0000036a: PUSH1 0x20 0000036c: ADD 0000036d: SWAP2 0000036e: POP 0000036f: POP 00000370: PUSH1 0x40 00000372: MLOAD 00000373: DUP1 00000374: SWAP2 00000375: SUB 00000376: SWAP1 00000377: RETURN 00000378: JUMPDEST 00000379: CALLVALUE 0000037a: DUP1 0000037b: ISZERO 0000037c: PUSH2 0x0384 0000037f: JUMPI 00000380: PUSH1 0x00 00000382: DUP1 00000383: REVERT 00000384: JUMPDEST 00000385: POP 00000386: PUSH2 0x038d 00000389: PUSH2 0x1111 0000038c: JUMP 0000038d: JUMPDEST 0000038e: PUSH1 0x40 00000390: MLOAD 00000391: DUP1 00000392: DUP3 00000393: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003a8: AND 000003a9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000003be: AND 000003bf: DUP2 000003c0: MSTORE 000003c1: PUSH1 0x20 000003c3: ADD 000003c4: SWAP2 000003c5: POP 000003c6: POP 000003c7: PUSH1 0x40 000003c9: MLOAD 000003ca: DUP1 000003cb: SWAP2 000003cc: SUB 000003cd: SWAP1 000003ce: RETURN 000003cf: JUMPDEST 000003d0: CALLVALUE 000003d1: DUP1 000003d2: ISZERO 000003d3: PUSH2 0x03db 000003d6: JUMPI 000003d7: PUSH1 0x00 000003d9: DUP1 000003da: REVERT 000003db: JUMPDEST 000003dc: POP 000003dd: PUSH2 0x03e4 000003e0: PUSH2 0x1137 000003e3: JUMP 000003e4: JUMPDEST 000003e5: PUSH1 0x40 000003e7: MLOAD 000003e8: DUP1 000003e9: DUP3 000003ea: DUP2 000003eb: MSTORE 000003ec: PUSH1 0x20 000003ee: ADD 000003ef: SWAP2 000003f0: POP 000003f1: POP 000003f2: PUSH1 0x40 000003f4: MLOAD 000003f5: DUP1 000003f6: SWAP2 000003f7: SUB 000003f8: SWAP1 000003f9: RETURN 000003fa: JUMPDEST 000003fb: CALLVALUE 000003fc: DUP1 000003fd: ISZERO 000003fe: PUSH2 0x0406 00000401: JUMPI 00000402: PUSH1 0x00 00000404: DUP1 00000405: REVERT 00000406: JUMPDEST 00000407: POP 00000408: PUSH2 0x040f 0000040b: PUSH2 0x113d 0000040e: JUMP 0000040f: JUMPDEST 00000410: STOP 00000411: JUMPDEST 00000412: CALLVALUE 00000413: DUP1 00000414: ISZERO 00000415: PUSH2 0x041d 00000418: JUMPI 00000419: PUSH1 0x00 0000041b: DUP1 0000041c: REVERT 0000041d: JUMPDEST 0000041e: POP 0000041f: PUSH2 0x0426 00000422: PUSH2 0x1455 00000425: JUMP 00000426: JUMPDEST 00000427: PUSH1 0x40 00000429: MLOAD 0000042a: DUP1 0000042b: DUP3 0000042c: DUP2 0000042d: MSTORE 0000042e: PUSH1 0x20 00000430: ADD 00000431: SWAP2 00000432: POP 00000433: POP 00000434: PUSH1 0x40 00000436: MLOAD 00000437: DUP1 00000438: SWAP2 00000439: SUB 0000043a: SWAP1 0000043b: RETURN 0000043c: JUMPDEST 0000043d: CALLVALUE 0000043e: DUP1 0000043f: ISZERO 00000440: PUSH2 0x0448 00000443: JUMPI 00000444: PUSH1 0x00 00000446: DUP1 00000447: REVERT 00000448: JUMPDEST 00000449: POP 0000044a: PUSH2 0x0451 0000044d: PUSH2 0x145b 00000450: JUMP 00000451: JUMPDEST 00000452: PUSH1 0x40 00000454: MLOAD 00000455: DUP1 00000456: DUP3 00000457: DUP2 00000458: MSTORE 00000459: PUSH1 0x20 0000045b: ADD 0000045c: SWAP2 0000045d: POP 0000045e: POP 0000045f: PUSH1 0x40 00000461: MLOAD 00000462: DUP1 00000463: SWAP2 00000464: SUB 00000465: SWAP1 00000466: RETURN 00000467: JUMPDEST 00000468: CALLVALUE 00000469: DUP1 0000046a: ISZERO 0000046b: PUSH2 0x0473 0000046e: JUMPI 0000046f: PUSH1 0x00 00000471: DUP1 00000472: REVERT 00000473: JUMPDEST 00000474: POP 00000475: PUSH2 0x047c 00000478: PUSH2 0x1461 0000047b: JUMP 0000047c: JUMPDEST 0000047d: STOP 0000047e: JUMPDEST 0000047f: CALLVALUE 00000480: DUP1 00000481: ISZERO 00000482: PUSH2 0x048a 00000485: JUMPI 00000486: PUSH1 0x00 00000488: DUP1 00000489: REVERT 0000048a: JUMPDEST 0000048b: POP 0000048c: PUSH2 0x0493 0000048f: PUSH2 0x16b2 00000492: JUMP 00000493: JUMPDEST 00000494: PUSH1 0x40 00000496: MLOAD 00000497: DUP1 00000498: DUP3 00000499: DUP2 0000049a: MSTORE 0000049b: PUSH1 0x20 0000049d: ADD 0000049e: SWAP2 0000049f: POP 000004a0: POP 000004a1: PUSH1 0x40 000004a3: MLOAD 000004a4: DUP1 000004a5: SWAP2 000004a6: SUB 000004a7: SWAP1 000004a8: RETURN 000004a9: JUMPDEST 000004aa: CALLVALUE 000004ab: DUP1 000004ac: ISZERO 000004ad: PUSH2 0x04b5 000004b0: JUMPI 000004b1: PUSH1 0x00 000004b3: DUP1 000004b4: REVERT 000004b5: JUMPDEST 000004b6: POP 000004b7: PUSH2 0x04be 000004ba: PUSH2 0x16b8 000004bd: JUMP 000004be: JUMPDEST 000004bf: STOP 000004c0: JUMPDEST 000004c1: CALLVALUE 000004c2: DUP1 000004c3: ISZERO 000004c4: PUSH2 0x04cc 000004c7: JUMPI 000004c8: PUSH1 0x00 000004ca: DUP1 000004cb: REVERT 000004cc: JUMPDEST 000004cd: POP 000004ce: PUSH2 0x04d5 000004d1: PUSH2 0x174c 000004d4: JUMP 000004d5: JUMPDEST 000004d6: PUSH1 0x40 000004d8: MLOAD 000004d9: DUP1 000004da: DUP3 000004db: DUP2 000004dc: MSTORE 000004dd: PUSH1 0x20 000004df: ADD 000004e0: SWAP2 000004e1: POP 000004e2: POP 000004e3: PUSH1 0x40 000004e5: MLOAD 000004e6: DUP1 000004e7: SWAP2 000004e8: SUB 000004e9: SWAP1 000004ea: RETURN 000004eb: JUMPDEST 000004ec: CALLVALUE 000004ed: DUP1 000004ee: ISZERO 000004ef: PUSH2 0x04f7 000004f2: JUMPI 000004f3: PUSH1 0x00 000004f5: DUP1 000004f6: REVERT 000004f7: JUMPDEST 000004f8: POP 000004f9: PUSH2 0x0500 000004fc: PUSH2 0x1752 000004ff: JUMP 00000500: JUMPDEST 00000501: PUSH1 0x40 00000503: MLOAD 00000504: DUP1 00000505: DUP3 00000506: DUP2 00000507: MSTORE 00000508: PUSH1 0x20 0000050a: ADD 0000050b: SWAP2 0000050c: POP 0000050d: POP 0000050e: PUSH1 0x40 00000510: MLOAD 00000511: DUP1 00000512: SWAP2 00000513: SUB 00000514: SWAP1 00000515: RETURN 00000516: JUMPDEST 00000517: CALLVALUE 00000518: DUP1 00000519: ISZERO 0000051a: PUSH2 0x0522 0000051d: JUMPI 0000051e: PUSH1 0x00 00000520: DUP1 00000521: REVERT 00000522: JUMPDEST 00000523: POP 00000524: PUSH2 0x052b 00000527: PUSH2 0x175e 0000052a: JUMP 0000052b: JUMPDEST 0000052c: PUSH1 0x40 0000052e: MLOAD 0000052f: DUP1 00000530: DUP3 00000531: DUP2 00000532: MSTORE 00000533: PUSH1 0x20 00000535: ADD 00000536: SWAP2 00000537: POP 00000538: POP 00000539: PUSH1 0x40 0000053b: MLOAD 0000053c: DUP1 0000053d: SWAP2 0000053e: SUB 0000053f: SWAP1 00000540: RETURN 00000541: JUMPDEST 00000542: CALLVALUE 00000543: DUP1 00000544: ISZERO 00000545: PUSH2 0x054d 00000548: JUMPI 00000549: PUSH1 0x00 0000054b: DUP1 0000054c: REVERT 0000054d: JUMPDEST 0000054e: POP 0000054f: PUSH2 0x0556 00000552: PUSH2 0x1764 00000555: JUMP 00000556: JUMPDEST 00000557: PUSH1 0x40 00000559: MLOAD 0000055a: DUP1 0000055b: DUP3 0000055c: DUP2 0000055d: MSTORE 0000055e: PUSH1 0x20 00000560: ADD 00000561: SWAP2 00000562: POP 00000563: POP 00000564: PUSH1 0x40 00000566: MLOAD 00000567: DUP1 00000568: SWAP2 00000569: SUB 0000056a: SWAP1 0000056b: RETURN 0000056c: JUMPDEST 0000056d: CALLVALUE 0000056e: DUP1 0000056f: ISZERO 00000570: PUSH2 0x0578 00000573: JUMPI 00000574: PUSH1 0x00 00000576: DUP1 00000577: REVERT 00000578: JUMPDEST 00000579: POP 0000057a: PUSH2 0x0581 0000057d: PUSH2 0x176a 00000580: JUMP 00000581: JUMPDEST 00000582: PUSH1 0x40 00000584: MLOAD 00000585: DUP1 00000586: DUP3 00000587: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000059c: AND 0000059d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005b2: AND 000005b3: DUP2 000005b4: MSTORE 000005b5: PUSH1 0x20 000005b7: ADD 000005b8: SWAP2 000005b9: POP 000005ba: POP 000005bb: PUSH1 0x40 000005bd: MLOAD 000005be: DUP1 000005bf: SWAP2 000005c0: SUB 000005c1: SWAP1 000005c2: RETURN 000005c3: JUMPDEST 000005c4: CALLVALUE 000005c5: DUP1 000005c6: ISZERO 000005c7: PUSH2 0x05cf 000005ca: JUMPI 000005cb: PUSH1 0x00 000005cd: DUP1 000005ce: REVERT 000005cf: JUMPDEST 000005d0: POP 000005d1: PUSH2 0x05d8 000005d4: PUSH2 0x178f 000005d7: JUMP 000005d8: JUMPDEST 000005d9: PUSH1 0x40 000005db: MLOAD 000005dc: DUP1 000005dd: DUP3 000005de: DUP2 000005df: MSTORE 000005e0: PUSH1 0x20 000005e2: ADD 000005e3: SWAP2 000005e4: POP 000005e5: POP 000005e6: PUSH1 0x40 000005e8: MLOAD 000005e9: DUP1 000005ea: SWAP2 000005eb: SUB 000005ec: SWAP1 000005ed: RETURN 000005ee: JUMPDEST 000005ef: CALLVALUE 000005f0: DUP1 000005f1: ISZERO 000005f2: PUSH2 0x05fa 000005f5: JUMPI 000005f6: PUSH1 0x00 000005f8: DUP1 000005f9: REVERT 000005fa: JUMPDEST 000005fb: POP 000005fc: PUSH2 0x0619 000005ff: PUSH1 0x04 00000601: DUP1 00000602: CALLDATASIZE 00000603: SUB 00000604: DUP2 00000605: ADD 00000606: SWAP1 00000607: DUP1 00000608: DUP1 00000609: CALLDATALOAD 0000060a: SWAP1 0000060b: PUSH1 0x20 0000060d: ADD 0000060e: SWAP1 0000060f: SWAP3 00000610: SWAP2 00000611: SWAP1 00000612: POP 00000613: POP 00000614: POP 00000615: PUSH2 0x1795 00000618: JUMP 00000619: JUMPDEST 0000061a: STOP 0000061b: JUMPDEST 0000061c: CALLVALUE 0000061d: DUP1 0000061e: ISZERO 0000061f: PUSH2 0x0627 00000622: JUMPI 00000623: PUSH1 0x00 00000625: DUP1 00000626: REVERT 00000627: JUMPDEST 00000628: POP 00000629: PUSH2 0x0630 0000062c: PUSH2 0x180a 0000062f: JUMP 00000630: JUMPDEST 00000631: PUSH1 0x40 00000633: MLOAD 00000634: DUP1 00000635: DUP3 00000636: ISZERO 00000637: ISZERO 00000638: ISZERO 00000639: ISZERO 0000063a: DUP2 0000063b: MSTORE 0000063c: PUSH1 0x20 0000063e: ADD 0000063f: SWAP2 00000640: POP 00000641: POP 00000642: PUSH1 0x40 00000644: MLOAD 00000645: DUP1 00000646: SWAP2 00000647: SUB 00000648: SWAP1 00000649: RETURN 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 0x068b 0000065b: PUSH1 0x04 0000065d: DUP1 0000065e: CALLDATASIZE 0000065f: SUB 00000660: DUP2 00000661: ADD 00000662: SWAP1 00000663: DUP1 00000664: DUP1 00000665: CALLDATALOAD 00000666: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000067b: AND 0000067c: SWAP1 0000067d: PUSH1 0x20 0000067f: ADD 00000680: SWAP1 00000681: SWAP3 00000682: SWAP2 00000683: SWAP1 00000684: POP 00000685: POP 00000686: POP 00000687: PUSH2 0x181d 0000068a: JUMP 0000068b: JUMPDEST 0000068c: PUSH1 0x40 0000068e: MLOAD 0000068f: DUP1 00000690: DUP3 00000691: DUP2 00000692: MSTORE 00000693: PUSH1 0x20 00000695: ADD 00000696: SWAP2 00000697: POP 00000698: POP 00000699: PUSH1 0x40 0000069b: MLOAD 0000069c: DUP1 0000069d: SWAP2 0000069e: SUB 0000069f: SWAP1 000006a0: RETURN 000006a1: JUMPDEST 000006a2: CALLVALUE 000006a3: DUP1 000006a4: ISZERO 000006a5: PUSH2 0x06ad 000006a8: JUMPI 000006a9: PUSH1 0x00 000006ab: DUP1 000006ac: REVERT 000006ad: JUMPDEST 000006ae: POP 000006af: PUSH2 0x06b6 000006b2: PUSH2 0x1835 000006b5: JUMP 000006b6: JUMPDEST 000006b7: STOP 000006b8: JUMPDEST 000006b9: CALLVALUE 000006ba: DUP1 000006bb: ISZERO 000006bc: PUSH2 0x06c4 000006bf: JUMPI 000006c0: PUSH1 0x00 000006c2: DUP1 000006c3: REVERT 000006c4: JUMPDEST 000006c5: POP 000006c6: PUSH2 0x06cd 000006c9: PUSH2 0x18c7 000006cc: JUMP 000006cd: JUMPDEST 000006ce: PUSH1 0x40 000006d0: MLOAD 000006d1: DUP1 000006d2: DUP3 000006d3: DUP2 000006d4: MSTORE 000006d5: PUSH1 0x20 000006d7: ADD 000006d8: SWAP2 000006d9: POP 000006da: POP 000006db: PUSH1 0x40 000006dd: MLOAD 000006de: DUP1 000006df: SWAP2 000006e0: SUB 000006e1: SWAP1 000006e2: RETURN 000006e3: JUMPDEST 000006e4: CALLVALUE 000006e5: DUP1 000006e6: ISZERO 000006e7: PUSH2 0x06ef 000006ea: JUMPI 000006eb: PUSH1 0x00 000006ed: DUP1 000006ee: REVERT 000006ef: JUMPDEST 000006f0: POP 000006f1: PUSH2 0x0724 000006f4: PUSH1 0x04 000006f6: DUP1 000006f7: CALLDATASIZE 000006f8: SUB 000006f9: DUP2 000006fa: ADD 000006fb: SWAP1 000006fc: DUP1 000006fd: DUP1 000006fe: CALLDATALOAD 000006ff: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000714: AND 00000715: SWAP1 00000716: PUSH1 0x20 00000718: ADD 00000719: SWAP1 0000071a: SWAP3 0000071b: SWAP2 0000071c: SWAP1 0000071d: POP 0000071e: POP 0000071f: POP 00000720: PUSH2 0x18cd 00000723: JUMP 00000724: JUMPDEST 00000725: STOP 00000726: JUMPDEST 00000727: CALLVALUE 00000728: DUP1 00000729: ISZERO 0000072a: PUSH2 0x0732 0000072d: JUMPI 0000072e: PUSH1 0x00 00000730: DUP1 00000731: REVERT 00000732: JUMPDEST 00000733: POP 00000734: PUSH2 0x073b 00000737: PUSH2 0x1992 0000073a: JUMP 0000073b: JUMPDEST 0000073c: PUSH1 0x40 0000073e: MLOAD 0000073f: DUP1 00000740: DUP3 00000741: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000756: AND 00000757: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000076c: AND 0000076d: DUP2 0000076e: MSTORE 0000076f: PUSH1 0x20 00000771: ADD 00000772: SWAP2 00000773: POP 00000774: POP 00000775: PUSH1 0x40 00000777: MLOAD 00000778: DUP1 00000779: SWAP2 0000077a: SUB 0000077b: SWAP1 0000077c: RETURN 0000077d: JUMPDEST 0000077e: CALLVALUE 0000077f: DUP1 00000780: ISZERO 00000781: PUSH2 0x0789 00000784: JUMPI 00000785: PUSH1 0x00 00000787: DUP1 00000788: REVERT 00000789: JUMPDEST 0000078a: POP 0000078b: PUSH2 0x0792 0000078e: PUSH2 0x19b8 00000791: JUMP 00000792: JUMPDEST 00000793: PUSH1 0x40 00000795: MLOAD 00000796: DUP1 00000797: DUP3 00000798: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007ad: AND 000007ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007c3: AND 000007c4: DUP2 000007c5: MSTORE 000007c6: PUSH1 0x20 000007c8: ADD 000007c9: SWAP2 000007ca: POP 000007cb: POP 000007cc: PUSH1 0x40 000007ce: MLOAD 000007cf: DUP1 000007d0: SWAP2 000007d1: SUB 000007d2: SWAP1 000007d3: RETURN 000007d4: JUMPDEST 000007d5: CALLVALUE 000007d6: DUP1 000007d7: ISZERO 000007d8: PUSH2 0x07e0 000007db: JUMPI 000007dc: PUSH1 0x00 000007de: DUP1 000007df: REVERT 000007e0: JUMPDEST 000007e1: POP 000007e2: PUSH2 0x0815 000007e5: PUSH1 0x04 000007e7: DUP1 000007e8: CALLDATASIZE 000007e9: SUB 000007ea: DUP2 000007eb: ADD 000007ec: SWAP1 000007ed: DUP1 000007ee: DUP1 000007ef: CALLDATALOAD 000007f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000805: AND 00000806: SWAP1 00000807: PUSH1 0x20 00000809: ADD 0000080a: SWAP1 0000080b: SWAP3 0000080c: SWAP2 0000080d: SWAP1 0000080e: POP 0000080f: POP 00000810: POP 00000811: PUSH2 0x19de 00000814: JUMP 00000815: JUMPDEST 00000816: STOP 00000817: JUMPDEST 00000818: CALLVALUE 00000819: DUP1 0000081a: ISZERO 0000081b: PUSH2 0x0823 0000081e: JUMPI 0000081f: PUSH1 0x00 00000821: DUP1 00000822: REVERT 00000823: JUMPDEST 00000824: POP 00000825: PUSH2 0x082c 00000828: PUSH2 0x1aa3 0000082b: JUMP 0000082c: JUMPDEST 0000082d: PUSH1 0x40 0000082f: MLOAD 00000830: DUP1 00000831: DUP3 00000832: ISZERO 00000833: ISZERO 00000834: ISZERO 00000835: ISZERO 00000836: DUP2 00000837: MSTORE 00000838: PUSH1 0x20 0000083a: ADD 0000083b: SWAP2 0000083c: POP 0000083d: POP 0000083e: PUSH1 0x40 00000840: MLOAD 00000841: DUP1 00000842: SWAP2 00000843: SUB 00000844: SWAP1 00000845: RETURN 00000846: JUMPDEST 00000847: CALLVALUE 00000848: DUP1 00000849: ISZERO 0000084a: PUSH2 0x0852 0000084d: JUMPI 0000084e: PUSH1 0x00 00000850: DUP1 00000851: REVERT 00000852: JUMPDEST 00000853: POP 00000854: PUSH2 0x0887 00000857: PUSH1 0x04 00000859: DUP1 0000085a: CALLDATASIZE 0000085b: SUB 0000085c: DUP2 0000085d: ADD 0000085e: SWAP1 0000085f: DUP1 00000860: DUP1 00000861: CALLDATALOAD 00000862: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000877: AND 00000878: SWAP1 00000879: PUSH1 0x20 0000087b: ADD 0000087c: SWAP1 0000087d: SWAP3 0000087e: SWAP2 0000087f: SWAP1 00000880: POP 00000881: POP 00000882: POP 00000883: PUSH2 0x1ab6 00000886: JUMP 00000887: JUMPDEST 00000888: STOP 00000889: JUMPDEST 0000088a: CALLVALUE 0000088b: DUP1 0000088c: ISZERO 0000088d: PUSH2 0x0895 00000890: JUMPI 00000891: PUSH1 0x00 00000893: DUP1 00000894: REVERT 00000895: JUMPDEST 00000896: POP 00000897: PUSH2 0x089e 0000089a: PUSH2 0x1c0b 0000089d: JUMP 0000089e: JUMPDEST 0000089f: PUSH1 0x40 000008a1: MLOAD 000008a2: DUP1 000008a3: DUP3 000008a4: DUP2 000008a5: MSTORE 000008a6: PUSH1 0x20 000008a8: ADD 000008a9: SWAP2 000008aa: POP 000008ab: POP 000008ac: PUSH1 0x40 000008ae: MLOAD 000008af: DUP1 000008b0: SWAP2 000008b1: SUB 000008b2: SWAP1 000008b3: RETURN 000008b4: JUMPDEST 000008b5: CALLVALUE 000008b6: DUP1 000008b7: ISZERO 000008b8: PUSH2 0x08c0 000008bb: JUMPI 000008bc: PUSH1 0x00 000008be: DUP1 000008bf: REVERT 000008c0: JUMPDEST 000008c1: POP 000008c2: PUSH2 0x08c9 000008c5: PUSH2 0x1c11 000008c8: JUMP 000008c9: JUMPDEST 000008ca: PUSH1 0x40 000008cc: MLOAD 000008cd: DUP1 000008ce: DUP3 000008cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008e4: AND 000008e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008fa: AND 000008fb: DUP2 000008fc: MSTORE 000008fd: PUSH1 0x20 000008ff: ADD 00000900: SWAP2 00000901: POP 00000902: POP 00000903: PUSH1 0x40 00000905: MLOAD 00000906: DUP1 00000907: SWAP2 00000908: SUB 00000909: SWAP1 0000090a: RETURN 0000090b: JUMPDEST 0000090c: PUSH1 0x00 0000090e: DUP1 0000090f: PUSH1 0x00 00000911: DUP1 00000912: PUSH1 0x0e 00000914: SLOAD 00000915: TIMESTAMP 00000916: LT 00000917: ISZERO 00000918: DUP1 00000919: ISZERO 0000091a: PUSH2 0x0924 0000091d: JUMPI 0000091e: POP 0000091f: PUSH1 0x0f 00000921: SLOAD 00000922: TIMESTAMP 00000923: LT 00000924: JUMPDEST 00000925: ISZERO 00000926: ISZERO 00000927: PUSH2 0x092f 0000092a: JUMPI 0000092b: PUSH1 0x00 0000092d: DUP1 0000092e: REVERT 0000092f: JUMPDEST 00000930: PUSH1 0x00 00000932: PUSH1 0x14 00000934: SWAP1 00000935: SLOAD 00000936: SWAP1 00000937: PUSH2 0x0100 0000093a: EXP 0000093b: SWAP1 0000093c: DIV 0000093d: PUSH1 0xff 0000093f: AND 00000940: ISZERO 00000941: ISZERO 00000942: ISZERO 00000943: PUSH2 0x094b 00000946: JUMPI 00000947: PUSH1 0x00 00000949: DUP1 0000094a: REVERT 0000094b: JUMPDEST 0000094c: PUSH1 0x10 0000094e: PUSH1 0x01 00000950: SWAP1 00000951: SLOAD 00000952: SWAP1 00000953: PUSH2 0x0100 00000956: EXP 00000957: SWAP1 00000958: DIV 00000959: PUSH1 0xff 0000095b: AND 0000095c: ISZERO 0000095d: ISZERO 0000095e: ISZERO 0000095f: PUSH2 0x0967 00000962: JUMPI 00000963: PUSH1 0x00 00000965: DUP1 00000966: REVERT 00000967: JUMPDEST 00000968: PUSH1 0x05 0000096a: SLOAD 0000096b: PUSH2 0x097f 0000096e: CALLVALUE 0000096f: PUSH1 0x0a 00000971: SLOAD 00000972: PUSH2 0x1c37 00000975: SWAP1 00000976: SWAP2 00000977: SWAP1 00000978: PUSH4 0xffffffff 0000097d: AND 0000097e: JUMP 0000097f: JUMPDEST 00000980: GT 00000981: ISZERO 00000982: ISZERO 00000983: ISZERO 00000984: PUSH2 0x098c 00000987: JUMPI 00000988: PUSH1 0x00 0000098a: DUP1 0000098b: REVERT 0000098c: JUMPDEST 0000098d: PUSH2 0x09b5 00000990: PUSH1 0x08 00000992: SLOAD 00000993: PUSH2 0x09a7 00000996: PUSH1 0x07 00000998: SLOAD 00000999: CALLVALUE 0000099a: PUSH2 0x1c55 0000099d: SWAP1 0000099e: SWAP2 0000099f: SWAP1 000009a0: PUSH4 0xffffffff 000009a5: AND 000009a6: JUMP 000009a7: JUMPDEST 000009a8: PUSH2 0x1c90 000009ab: SWAP1 000009ac: SWAP2 000009ad: SWAP1 000009ae: PUSH4 0xffffffff 000009b3: AND 000009b4: JUMP 000009b5: JUMPDEST 000009b6: PUSH1 0x0b 000009b8: SLOAD 000009b9: ADD 000009ba: PUSH1 0x09 000009bc: SLOAD 000009bd: LT 000009be: ISZERO 000009bf: ISZERO 000009c0: ISZERO 000009c1: PUSH2 0x09c9 000009c4: JUMPI 000009c5: PUSH1 0x00 000009c7: DUP1 000009c8: REVERT 000009c9: JUMPDEST 000009ca: PUSH1 0x10 000009cc: PUSH1 0x00 000009ce: SWAP1 000009cf: SLOAD 000009d0: SWAP1 000009d1: PUSH2 0x0100 000009d4: EXP 000009d5: SWAP1 000009d6: DIV 000009d7: PUSH1 0xff 000009d9: AND 000009da: ISZERO 000009db: DUP1 000009dc: ISZERO 000009dd: PUSH2 0x09e9 000009e0: JUMPI 000009e1: POP 000009e2: PUSH1 0x06 000009e4: SLOAD 000009e5: PUSH1 0x0a 000009e7: SLOAD 000009e8: LT 000009e9: JUMPDEST 000009ea: DUP1 000009eb: ISZERO 000009ec: PUSH2 0x0a0b 000009ef: JUMPI 000009f0: POP 000009f1: PUSH1 0x06 000009f3: SLOAD 000009f4: PUSH2 0x0a08 000009f7: CALLVALUE 000009f8: PUSH1 0x0a 000009fa: SLOAD 000009fb: PUSH2 0x1c37 000009fe: SWAP1 000009ff: SWAP2 00000a00: SWAP1 00000a01: PUSH4 0xffffffff 00000a06: AND 00000a07: JUMP 00000a08: JUMPDEST 00000a09: LT 00000a0a: ISZERO 00000a0b: JUMPDEST 00000a0c: ISZERO 00000a0d: PUSH2 0x0a65 00000a10: JUMPI 00000a11: PUSH1 0x01 00000a13: PUSH1 0x10 00000a15: PUSH1 0x00 00000a17: PUSH2 0x0100 00000a1a: EXP 00000a1b: DUP2 00000a1c: SLOAD 00000a1d: DUP2 00000a1e: PUSH1 0xff 00000a20: MUL 00000a21: NOT 00000a22: AND 00000a23: SWAP1 00000a24: DUP4 00000a25: ISZERO 00000a26: ISZERO 00000a27: MUL 00000a28: OR 00000a29: SWAP1 00000a2a: SSTORE 00000a2b: POP 00000a2c: PUSH32 0x42ef6182c6d744dd081ab962505f40413083376dfcc13e58b60f4f32e9673809 00000a4d: PUSH1 0x06 00000a4f: SLOAD 00000a50: PUSH1 0x40 00000a52: MLOAD 00000a53: DUP1 00000a54: DUP3 00000a55: DUP2 00000a56: MSTORE 00000a57: PUSH1 0x20 00000a59: ADD 00000a5a: SWAP2 00000a5b: POP 00000a5c: POP 00000a5d: PUSH1 0x40 00000a5f: MLOAD 00000a60: DUP1 00000a61: SWAP2 00000a62: SUB 00000a63: SWAP1 00000a64: LOG1 00000a65: JUMPDEST 00000a66: PUSH2 0x0a8e 00000a69: PUSH1 0x08 00000a6b: SLOAD 00000a6c: PUSH2 0x0a80 00000a6f: PUSH1 0x07 00000a71: SLOAD 00000a72: CALLVALUE 00000a73: PUSH2 0x1c55 00000a76: SWAP1 00000a77: SWAP2 00000a78: SWAP1 00000a79: PUSH4 0xffffffff 00000a7e: AND 00000a7f: JUMP 00000a80: JUMPDEST 00000a81: PUSH2 0x1c90 00000a84: SWAP1 00000a85: SWAP2 00000a86: SWAP1 00000a87: PUSH4 0xffffffff 00000a8c: AND 00000a8d: JUMP 00000a8e: JUMPDEST 00000a8f: SWAP4 00000a90: POP 00000a91: PUSH1 0x00 00000a93: PUSH1 0x02 00000a95: PUSH1 0x00 00000a97: SWAP1 00000a98: SLOAD 00000a99: SWAP1 00000a9a: PUSH2 0x0100 00000a9d: EXP 00000a9e: SWAP1 00000a9f: DIV 00000aa0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ab5: AND 00000ab6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000acb: AND 00000acc: PUSH4 0x70a08231 00000ad1: CALLER 00000ad2: PUSH1 0x40 00000ad4: MLOAD 00000ad5: DUP3 00000ad6: PUSH4 0xffffffff 00000adb: AND 00000adc: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000afa: MUL 00000afb: DUP2 00000afc: MSTORE 00000afd: PUSH1 0x04 00000aff: ADD 00000b00: DUP1 00000b01: DUP3 00000b02: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b17: AND 00000b18: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b2d: AND 00000b2e: DUP2 00000b2f: MSTORE 00000b30: PUSH1 0x20 00000b32: ADD 00000b33: SWAP2 00000b34: POP 00000b35: POP 00000b36: PUSH1 0x20 00000b38: PUSH1 0x40 00000b3a: MLOAD 00000b3b: DUP1 00000b3c: DUP4 00000b3d: SUB 00000b3e: DUP2 00000b3f: PUSH1 0x00 00000b41: DUP8 00000b42: DUP1 00000b43: EXTCODESIZE 00000b44: ISZERO 00000b45: DUP1 00000b46: ISZERO 00000b47: PUSH2 0x0b4f 00000b4a: JUMPI 00000b4b: PUSH1 0x00 00000b4d: DUP1 00000b4e: REVERT 00000b4f: JUMPDEST 00000b50: POP 00000b51: GAS 00000b52: CALL 00000b53: ISZERO 00000b54: DUP1 00000b55: ISZERO 00000b56: PUSH2 0x0b63 00000b59: JUMPI 00000b5a: RETURNDATASIZE 00000b5b: PUSH1 0x00 00000b5d: DUP1 00000b5e: RETURNDATACOPY 00000b5f: RETURNDATASIZE 00000b60: PUSH1 0x00 00000b62: REVERT 00000b63: JUMPDEST 00000b64: POP 00000b65: POP 00000b66: POP 00000b67: POP 00000b68: PUSH1 0x40 00000b6a: MLOAD 00000b6b: RETURNDATASIZE 00000b6c: PUSH1 0x20 00000b6e: DUP2 00000b6f: LT 00000b70: ISZERO 00000b71: PUSH2 0x0b79 00000b74: JUMPI 00000b75: PUSH1 0x00 00000b77: DUP1 00000b78: REVERT 00000b79: JUMPDEST 00000b7a: DUP2 00000b7b: ADD 00000b7c: SWAP1 00000b7d: DUP1 00000b7e: DUP1 00000b7f: MLOAD 00000b80: SWAP1 00000b81: PUSH1 0x20 00000b83: ADD 00000b84: SWAP1 00000b85: SWAP3 00000b86: SWAP2 00000b87: SWAP1 00000b88: POP 00000b89: POP 00000b8a: POP 00000b8b: EQ 00000b8c: ISZERO 00000b8d: PUSH2 0x0ba3 00000b90: JUMPI 00000b91: PUSH1 0x0c 00000b93: PUSH1 0x00 00000b95: DUP2 00000b96: SLOAD 00000b97: DUP1 00000b98: SWAP3 00000b99: SWAP2 00000b9a: SWAP1 00000b9b: PUSH1 0x01 00000b9d: ADD 00000b9e: SWAP2 00000b9f: SWAP1 00000ba0: POP 00000ba1: SSTORE 00000ba2: POP 00000ba3: JUMPDEST 00000ba4: PUSH1 0x03 00000ba6: PUSH1 0x00 00000ba8: SWAP1 00000ba9: SLOAD 00000baa: SWAP1 00000bab: PUSH2 0x0100 00000bae: EXP 00000baf: SWAP1 00000bb0: DIV 00000bb1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bc6: AND 00000bc7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bdc: AND 00000bdd: PUSH4 0x9478a7c9 00000be2: CALLER 00000be3: PUSH1 0x40 00000be5: MLOAD 00000be6: DUP3 00000be7: PUSH4 0xffffffff 00000bec: AND 00000bed: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000c0b: MUL 00000c0c: DUP2 00000c0d: MSTORE 00000c0e: PUSH1 0x04 00000c10: ADD 00000c11: DUP1 00000c12: DUP3 00000c13: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c28: AND 00000c29: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c3e: AND 00000c3f: DUP2 00000c40: MSTORE 00000c41: PUSH1 0x20 00000c43: ADD 00000c44: SWAP2 00000c45: POP 00000c46: POP 00000c47: PUSH1 0x20 00000c49: PUSH1 0x40 00000c4b: MLOAD 00000c4c: DUP1 00000c4d: DUP4 00000c4e: SUB 00000c4f: DUP2 00000c50: PUSH1 0x00 00000c52: DUP8 00000c53: DUP1 00000c54: EXTCODESIZE 00000c55: ISZERO 00000c56: DUP1 00000c57: ISZERO 00000c58: PUSH2 0x0c60 00000c5b: JUMPI 00000c5c: PUSH1 0x00 00000c5e: DUP1 00000c5f: REVERT 00000c60: JUMPDEST 00000c61: POP 00000c62: GAS 00000c63: CALL 00000c64: ISZERO 00000c65: DUP1 00000c66: ISZERO 00000c67: PUSH2 0x0c74 00000c6a: JUMPI 00000c6b: RETURNDATASIZE 00000c6c: PUSH1 0x00 00000c6e: DUP1 00000c6f: RETURNDATACOPY 00000c70: RETURNDATASIZE 00000c71: PUSH1 0x00 00000c73: REVERT 00000c74: JUMPDEST 00000c75: POP 00000c76: POP 00000c77: POP 00000c78: POP 00000c79: PUSH1 0x40 00000c7b: MLOAD 00000c7c: RETURNDATASIZE 00000c7d: PUSH1 0x20 00000c7f: DUP2 00000c80: LT 00000c81: ISZERO 00000c82: PUSH2 0x0c8a 00000c85: JUMPI 00000c86: PUSH1 0x00 00000c88: DUP1 00000c89: REVERT 00000c8a: JUMPDEST 00000c8b: DUP2 00000c8c: ADD 00000c8d: SWAP1 00000c8e: DUP1 00000c8f: DUP1 00000c90: MLOAD 00000c91: SWAP1 00000c92: PUSH1 0x20 00000c94: ADD 00000c95: SWAP1 00000c96: SWAP3 00000c97: SWAP2 00000c98: SWAP1 00000c99: POP 00000c9a: POP 00000c9b: POP 00000c9c: SWAP3 00000c9d: POP 00000c9e: PUSH1 0x00 00000ca0: SWAP2 00000ca1: POP 00000ca2: PUSH8 0x1bc16d674ec80000 00000cab: CALLVALUE 00000cac: LT 00000cad: ISZERO 00000cae: ISZERO 00000caf: PUSH2 0x0cbe 00000cb2: JUMPI 00000cb3: PUSH2 0x0cbb 00000cb6: DUP5 00000cb7: PUSH2 0x1cab 00000cba: JUMP 00000cbb: JUMPDEST 00000cbc: SWAP2 00000cbd: POP 00000cbe: JUMPDEST 00000cbf: PUSH2 0x0cd3 00000cc2: CALLVALUE 00000cc3: PUSH1 0x0a 00000cc5: SLOAD 00000cc6: PUSH2 0x1c37 00000cc9: SWAP1 00000cca: SWAP2 00000ccb: SWAP1 00000ccc: PUSH4 0xffffffff 00000cd1: AND 00000cd2: JUMP 00000cd3: JUMPDEST 00000cd4: PUSH1 0x0a 00000cd6: DUP2 00000cd7: SWAP1 00000cd8: SSTORE 00000cd9: POP 00000cda: PUSH1 0x02 00000cdc: PUSH1 0x00 00000cde: SWAP1 00000cdf: SLOAD 00000ce0: SWAP1 00000ce1: PUSH2 0x0100 00000ce4: EXP 00000ce5: SWAP1 00000ce6: DIV 00000ce7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cfc: AND 00000cfd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d12: AND 00000d13: PUSH4 0xa9059cbb 00000d18: CALLER 00000d19: DUP7 00000d1a: PUSH1 0x40 00000d1c: MLOAD 00000d1d: DUP4 00000d1e: PUSH4 0xffffffff 00000d23: AND 00000d24: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000d42: MUL 00000d43: DUP2 00000d44: MSTORE 00000d45: PUSH1 0x04 00000d47: ADD 00000d48: DUP1 00000d49: DUP4 00000d4a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d5f: AND 00000d60: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d75: AND 00000d76: DUP2 00000d77: MSTORE 00000d78: PUSH1 0x20 00000d7a: ADD 00000d7b: DUP3 00000d7c: DUP2 00000d7d: MSTORE 00000d7e: PUSH1 0x20 00000d80: ADD 00000d81: SWAP3 00000d82: POP 00000d83: POP 00000d84: POP 00000d85: PUSH1 0x20 00000d87: PUSH1 0x40 00000d89: MLOAD 00000d8a: DUP1 00000d8b: DUP4 00000d8c: SUB 00000d8d: DUP2 00000d8e: PUSH1 0x00 00000d90: DUP8 00000d91: DUP1 00000d92: EXTCODESIZE 00000d93: ISZERO 00000d94: DUP1 00000d95: ISZERO 00000d96: PUSH2 0x0d9e 00000d99: JUMPI 00000d9a: PUSH1 0x00 00000d9c: DUP1 00000d9d: REVERT 00000d9e: JUMPDEST 00000d9f: POP 00000da0: GAS 00000da1: CALL 00000da2: ISZERO 00000da3: DUP1 00000da4: ISZERO 00000da5: PUSH2 0x0db2 00000da8: JUMPI 00000da9: RETURNDATASIZE 00000daa: PUSH1 0x00 00000dac: DUP1 00000dad: RETURNDATACOPY 00000dae: RETURNDATASIZE 00000daf: PUSH1 0x00 00000db1: REVERT 00000db2: JUMPDEST 00000db3: POP 00000db4: POP 00000db5: POP 00000db6: POP 00000db7: PUSH1 0x40 00000db9: MLOAD 00000dba: RETURNDATASIZE 00000dbb: PUSH1 0x20 00000dbd: DUP2 00000dbe: LT 00000dbf: ISZERO 00000dc0: PUSH2 0x0dc8 00000dc3: JUMPI 00000dc4: PUSH1 0x00 00000dc6: DUP1 00000dc7: REVERT 00000dc8: JUMPDEST 00000dc9: DUP2 00000dca: ADD 00000dcb: SWAP1 00000dcc: DUP1 00000dcd: DUP1 00000dce: MLOAD 00000dcf: SWAP1 00000dd0: PUSH1 0x20 00000dd2: ADD 00000dd3: SWAP1 00000dd4: SWAP3 00000dd5: SWAP2 00000dd6: SWAP1 00000dd7: POP 00000dd8: POP 00000dd9: POP 00000dda: POP 00000ddb: PUSH2 0x0def 00000dde: DUP5 00000ddf: PUSH1 0x0b 00000de1: SLOAD 00000de2: PUSH2 0x1c37 00000de5: SWAP1 00000de6: SWAP2 00000de7: SWAP1 00000de8: PUSH4 0xffffffff 00000ded: AND 00000dee: JUMP 00000def: JUMPDEST 00000df0: SWAP1 00000df1: POP 00000df2: PUSH1 0x00 00000df4: DUP3 00000df5: GT 00000df6: DUP1 00000df7: ISZERO 00000df8: PUSH2 0x0e18 00000dfb: JUMPI 00000dfc: POP 00000dfd: PUSH1 0x00 00000dff: DUP4 00000e00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e15: AND 00000e16: EQ 00000e17: ISZERO 00000e18: JUMPDEST 00000e19: ISZERO 00000e1a: PUSH2 0x0e33 00000e1d: JUMPI 00000e1e: PUSH2 0x0e30 00000e21: DUP3 00000e22: DUP3 00000e23: PUSH2 0x1c37 00000e26: SWAP1 00000e27: SWAP2 00000e28: SWAP1 00000e29: PUSH4 0xffffffff 00000e2e: AND 00000e2f: JUMP 00000e30: JUMPDEST 00000e31: SWAP1 00000e32: POP 00000e33: JUMPDEST 00000e34: DUP1 00000e35: PUSH1 0x0b 00000e37: DUP2 00000e38: SWAP1 00000e39: SSTORE 00000e3a: POP 00000e3b: PUSH2 0x0e8c 00000e3e: CALLVALUE 00000e3f: PUSH1 0x12 00000e41: PUSH1 0x00 00000e43: CALLER 00000e44: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e59: AND 00000e5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e6f: AND 00000e70: DUP2 00000e71: MSTORE 00000e72: PUSH1 0x20 00000e74: ADD 00000e75: SWAP1 00000e76: DUP2 00000e77: MSTORE 00000e78: PUSH1 0x20 00000e7a: ADD 00000e7b: PUSH1 0x00 00000e7d: KECCAK256 00000e7e: SLOAD 00000e7f: PUSH2 0x1c37 00000e82: SWAP1 00000e83: SWAP2 00000e84: SWAP1 00000e85: PUSH4 0xffffffff 00000e8a: AND 00000e8b: JUMP 00000e8c: JUMPDEST 00000e8d: PUSH1 0x12 00000e8f: PUSH1 0x00 00000e91: CALLER 00000e92: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ea7: AND 00000ea8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ebd: AND 00000ebe: DUP2 00000ebf: MSTORE 00000ec0: PUSH1 0x20 00000ec2: ADD 00000ec3: SWAP1 00000ec4: DUP2 00000ec5: MSTORE 00000ec6: PUSH1 0x20 00000ec8: ADD 00000ec9: PUSH1 0x00 00000ecb: KECCAK256 00000ecc: DUP2 00000ecd: SWAP1 00000ece: SSTORE 00000ecf: POP 00000ed0: DUP5 00000ed1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ee6: AND 00000ee7: PUSH32 0x16d99cb06fd9528f88184dd0483174a09cfd8312c28639858734b0c449cc05b8 00000f08: DUP6 00000f09: CALLVALUE 00000f0a: PUSH1 0x40 00000f0c: MLOAD 00000f0d: DUP1 00000f0e: DUP4 00000f0f: DUP2 00000f10: MSTORE 00000f11: PUSH1 0x20 00000f13: ADD 00000f14: DUP3 00000f15: DUP2 00000f16: MSTORE 00000f17: PUSH1 0x20 00000f19: ADD 00000f1a: SWAP3 00000f1b: POP 00000f1c: POP 00000f1d: POP 00000f1e: PUSH1 0x40 00000f20: MLOAD 00000f21: DUP1 00000f22: SWAP2 00000f23: SUB 00000f24: SWAP1 00000f25: LOG2 00000f26: PUSH1 0x00 00000f28: DUP3 00000f29: GT 00000f2a: DUP1 00000f2b: ISZERO 00000f2c: PUSH2 0x0f4c 00000f2f: JUMPI 00000f30: POP 00000f31: PUSH1 0x00 00000f33: DUP4 00000f34: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f49: AND 00000f4a: EQ 00000f4b: ISZERO 00000f4c: JUMPDEST 00000f4d: ISZERO 00000f4e: PUSH2 0x10b8 00000f51: JUMPI 00000f52: PUSH1 0x02 00000f54: PUSH1 0x00 00000f56: SWAP1 00000f57: SLOAD 00000f58: SWAP1 00000f59: PUSH2 0x0100 00000f5c: EXP 00000f5d: SWAP1 00000f5e: DIV 00000f5f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f74: AND 00000f75: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000f8a: AND 00000f8b: PUSH4 0xa9059cbb 00000f90: DUP5 00000f91: DUP5 00000f92: PUSH1 0x40 00000f94: MLOAD 00000f95: DUP4 00000f96: PUSH4 0xffffffff 00000f9b: AND 00000f9c: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 00000fba: MUL 00000fbb: DUP2 00000fbc: MSTORE 00000fbd: PUSH1 0x04 00000fbf: ADD 00000fc0: DUP1 00000fc1: DUP4 00000fc2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fd7: AND 00000fd8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fed: AND 00000fee: DUP2 00000fef: MSTORE 00000ff0: PUSH1 0x20 00000ff2: ADD 00000ff3: DUP3 00000ff4: DUP2 00000ff5: MSTORE 00000ff6: PUSH1 0x20 00000ff8: ADD 00000ff9: SWAP3 00000ffa: POP 00000ffb: POP 00000ffc: POP 00000ffd: PUSH1 0x20 00000fff: PUSH1 0x40 00001001: MLOAD 00001002: DUP1 00001003: DUP4 00001004: SUB 00001005: DUP2 00001006: PUSH1 0x00 00001008: DUP8 00001009: DUP1 0000100a: EXTCODESIZE 0000100b: ISZERO 0000100c: DUP1 0000100d: ISZERO 0000100e: PUSH2 0x1016 00001011: JUMPI 00001012: PUSH1 0x00 00001014: DUP1 00001015: REVERT 00001016: JUMPDEST 00001017: POP 00001018: GAS 00001019: CALL 0000101a: ISZERO 0000101b: DUP1 0000101c: ISZERO 0000101d: PUSH2 0x102a 00001020: JUMPI 00001021: RETURNDATASIZE 00001022: PUSH1 0x00 00001024: DUP1 00001025: RETURNDATACOPY 00001026: RETURNDATASIZE 00001027: PUSH1 0x00 00001029: REVERT 0000102a: JUMPDEST 0000102b: POP 0000102c: POP 0000102d: POP 0000102e: POP 0000102f: PUSH1 0x40 00001031: MLOAD 00001032: RETURNDATASIZE 00001033: PUSH1 0x20 00001035: DUP2 00001036: LT 00001037: ISZERO 00001038: PUSH2 0x1040 0000103b: JUMPI 0000103c: PUSH1 0x00 0000103e: DUP1 0000103f: REVERT 00001040: JUMPDEST 00001041: DUP2 00001042: ADD 00001043: SWAP1 00001044: DUP1 00001045: DUP1 00001046: MLOAD 00001047: SWAP1 00001048: PUSH1 0x20 0000104a: ADD 0000104b: SWAP1 0000104c: SWAP3 0000104d: SWAP2 0000104e: SWAP1 0000104f: POP 00001050: POP 00001051: POP 00001052: POP 00001053: DUP3 00001054: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001069: AND 0000106a: CALLER 0000106b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001080: AND 00001081: PUSH32 0x63b1806f17e56a5994496cf87e213450b3ca26912d0a7c2ba0b722a2f822e497 000010a2: DUP5 000010a3: PUSH1 0x40 000010a5: MLOAD 000010a6: DUP1 000010a7: DUP3 000010a8: DUP2 000010a9: MSTORE 000010aa: PUSH1 0x20 000010ac: ADD 000010ad: SWAP2 000010ae: POP 000010af: POP 000010b0: PUSH1 0x40 000010b2: MLOAD 000010b3: DUP1 000010b4: SWAP2 000010b5: SUB 000010b6: SWAP1 000010b7: LOG3 000010b8: JUMPDEST 000010b9: POP 000010ba: POP 000010bb: POP 000010bc: POP 000010bd: POP 000010be: JUMP 000010bf: JUMPDEST 000010c0: PUSH1 0x40 000010c2: DUP1 000010c3: MLOAD 000010c4: SWAP1 000010c5: DUP2 000010c6: ADD 000010c7: PUSH1 0x40 000010c9: MSTORE 000010ca: DUP1 000010cb: PUSH1 0x1a 000010cd: DUP2 000010ce: MSTORE 000010cf: PUSH1 0x20 000010d1: ADD 000010d2: PUSH32 0x44697265637420437279707420546f6b656e2050726553616c65000000000000 000010f3: DUP2 000010f4: MSTORE 000010f5: POP 000010f6: DUP2 000010f7: JUMP 000010f8: JUMPDEST 000010f9: PUSH1 0x10 000010fb: PUSH1 0x00 000010fd: SWAP1 000010fe: SLOAD 000010ff: SWAP1 00001100: PUSH2 0x0100 00001103: EXP 00001104: SWAP1 00001105: DIV 00001106: PUSH1 0xff 00001108: AND 00001109: DUP2 0000110a: JUMP 0000110b: JUMPDEST 0000110c: PUSH1 0x0f 0000110e: SLOAD 0000110f: DUP2 00001110: JUMP 00001111: JUMPDEST 00001112: PUSH1 0x04 00001114: PUSH1 0x00 00001116: SWAP1 00001117: SLOAD 00001118: SWAP1 00001119: PUSH2 0x0100 0000111c: EXP 0000111d: SWAP1 0000111e: DIV 0000111f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001134: AND 00001135: DUP2 00001136: JUMP 00001137: JUMPDEST 00001138: PUSH1 0x07 0000113a: SLOAD 0000113b: DUP2 0000113c: JUMP 0000113d: JUMPDEST 0000113e: PUSH1 0x00 00001140: DUP1 00001141: SWAP1 00001142: SLOAD 00001143: SWAP1 00001144: PUSH2 0x0100 00001147: EXP 00001148: SWAP1 00001149: DIV 0000114a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000115f: AND 00001160: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001175: AND 00001176: CALLER 00001177: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000118c: AND 0000118d: EQ 0000118e: ISZERO 0000118f: ISZERO 00001190: PUSH2 0x1198 00001193: JUMPI 00001194: PUSH1 0x00 00001196: DUP1 00001197: REVERT 00001198: JUMPDEST 00001199: PUSH1 0x10 0000119b: PUSH1 0x00 0000119d: SWAP1 0000119e: SLOAD 0000119f: SWAP1 000011a0: PUSH2 0x0100 000011a3: EXP 000011a4: SWAP1 000011a5: DIV 000011a6: PUSH1 0xff 000011a8: AND 000011a9: ISZERO 000011aa: ISZERO 000011ab: PUSH2 0x11b3 000011ae: JUMPI 000011af: PUSH1 0x00 000011b1: DUP1 000011b2: REVERT 000011b3: JUMPDEST 000011b4: PUSH1 0x04 000011b6: PUSH1 0x00 000011b8: SWAP1 000011b9: SLOAD 000011ba: SWAP1 000011bb: PUSH2 0x0100 000011be: EXP 000011bf: SWAP1 000011c0: DIV 000011c1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011d6: AND 000011d7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011ec: AND 000011ed: PUSH2 0x08fc 000011f0: PUSH1 0x0a 000011f2: SLOAD 000011f3: SWAP1 000011f4: DUP2 000011f5: ISZERO 000011f6: MUL 000011f7: SWAP1 000011f8: PUSH1 0x40 000011fa: MLOAD 000011fb: PUSH1 0x00 000011fd: PUSH1 0x40 000011ff: MLOAD 00001200: DUP1 00001201: DUP4 00001202: SUB 00001203: DUP2 00001204: DUP6 00001205: DUP9 00001206: DUP9 00001207: CALL 00001208: SWAP4 00001209: POP 0000120a: POP 0000120b: POP 0000120c: POP 0000120d: ISZERO 0000120e: DUP1 0000120f: ISZERO 00001210: PUSH2 0x121d 00001213: JUMPI 00001214: RETURNDATASIZE 00001215: PUSH1 0x00 00001217: DUP1 00001218: RETURNDATACOPY 00001219: RETURNDATASIZE 0000121a: PUSH1 0x00 0000121c: REVERT 0000121d: JUMPDEST 0000121e: POP 0000121f: PUSH1 0x02 00001221: PUSH1 0x00 00001223: SWAP1 00001224: SLOAD 00001225: SWAP1 00001226: PUSH2 0x0100 00001229: EXP 0000122a: SWAP1 0000122b: DIV 0000122c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001241: AND 00001242: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001257: AND 00001258: PUSH4 0xa9059cbb 0000125d: PUSH1 0x04 0000125f: PUSH1 0x00 00001261: SWAP1 00001262: SLOAD 00001263: SWAP1 00001264: PUSH2 0x0100 00001267: EXP 00001268: SWAP1 00001269: DIV 0000126a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000127f: AND 00001280: PUSH1 0x02 00001282: PUSH1 0x00 00001284: SWAP1 00001285: SLOAD 00001286: SWAP1 00001287: PUSH2 0x0100 0000128a: EXP 0000128b: SWAP1 0000128c: DIV 0000128d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012a2: AND 000012a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012b8: AND 000012b9: PUSH4 0x70a08231 000012be: ADDRESS 000012bf: PUSH1 0x40 000012c1: MLOAD 000012c2: DUP3 000012c3: PUSH4 0xffffffff 000012c8: AND 000012c9: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 000012e7: MUL 000012e8: DUP2 000012e9: MSTORE 000012ea: PUSH1 0x04 000012ec: ADD 000012ed: DUP1 000012ee: DUP3 000012ef: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001304: AND 00001305: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000131a: AND 0000131b: DUP2 0000131c: MSTORE 0000131d: PUSH1 0x20 0000131f: ADD 00001320: SWAP2 00001321: POP 00001322: POP 00001323: PUSH1 0x20 00001325: PUSH1 0x40 00001327: MLOAD 00001328: DUP1 00001329: DUP4 0000132a: SUB 0000132b: DUP2 0000132c: PUSH1 0x00 0000132e: DUP8 0000132f: DUP1 00001330: EXTCODESIZE 00001331: ISZERO 00001332: DUP1 00001333: ISZERO 00001334: PUSH2 0x133c 00001337: JUMPI 00001338: PUSH1 0x00 0000133a: DUP1 0000133b: REVERT 0000133c: JUMPDEST 0000133d: POP 0000133e: GAS 0000133f: CALL 00001340: ISZERO 00001341: DUP1 00001342: ISZERO 00001343: PUSH2 0x1350 00001346: JUMPI 00001347: RETURNDATASIZE 00001348: PUSH1 0x00 0000134a: DUP1 0000134b: RETURNDATACOPY 0000134c: RETURNDATASIZE 0000134d: PUSH1 0x00 0000134f: REVERT 00001350: JUMPDEST 00001351: POP 00001352: POP 00001353: POP 00001354: POP 00001355: PUSH1 0x40 00001357: MLOAD 00001358: RETURNDATASIZE 00001359: PUSH1 0x20 0000135b: DUP2 0000135c: LT 0000135d: ISZERO 0000135e: PUSH2 0x1366 00001361: JUMPI 00001362: PUSH1 0x00 00001364: DUP1 00001365: REVERT 00001366: JUMPDEST 00001367: DUP2 00001368: ADD 00001369: SWAP1 0000136a: DUP1 0000136b: DUP1 0000136c: MLOAD 0000136d: SWAP1 0000136e: PUSH1 0x20 00001370: ADD 00001371: SWAP1 00001372: SWAP3 00001373: SWAP2 00001374: SWAP1 00001375: POP 00001376: POP 00001377: POP 00001378: PUSH1 0x40 0000137a: MLOAD 0000137b: DUP4 0000137c: PUSH4 0xffffffff 00001381: AND 00001382: PUSH29 0x0100000000000000000000000000000000000000000000000000000000 000013a0: MUL 000013a1: DUP2 000013a2: MSTORE 000013a3: PUSH1 0x04 000013a5: ADD 000013a6: DUP1 000013a7: DUP4 000013a8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013bd: AND 000013be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000013d3: AND 000013d4: DUP2 000013d5: MSTORE 000013d6: PUSH1 0x20 000013d8: ADD 000013d9: DUP3 000013da: DUP2 000013db: MSTORE 000013dc: PUSH1 0x20 000013de: ADD 000013df: SWAP3 000013e0: POP 000013e1: POP 000013e2: POP 000013e3: PUSH1 0x20 000013e5: PUSH1 0x40 000013e7: MLOAD 000013e8: DUP1 000013e9: DUP4 000013ea: SUB 000013eb: DUP2 000013ec: PUSH1 0x00 000013ee: DUP8 000013ef: DUP1 000013f0: EXTCODESIZE 000013f1: ISZERO 000013f2: DUP1 000013f3: ISZERO 000013f4: PUSH2 0x13fc 000013f7: JUMPI 000013f8: PUSH1 0x00 000013fa: DUP1 000013fb: REVERT 000013fc: JUMPDEST 000013fd: POP 000013fe: GAS 000013ff: CALL 00001400: ISZERO 00001401: DUP1 00001402: ISZERO 00001403: PUSH2 0x1410 00001406: JUMPI 00001407: RETURNDATASIZE 00001408: PUSH1 0x00 0000140a: DUP1 0000140b: RETURNDATACOPY 0000140c: RETURNDATASIZE 0000140d: PUSH1 0x00 0000140f: REVERT 00001410: JUMPDEST 00001411: POP 00001412: POP 00001413: POP 00001414: POP 00001415: PUSH1 0x40 00001417: MLOAD 00001418: RETURNDATASIZE 00001419: PUSH1 0x20 0000141b: DUP2 0000141c: LT 0000141d: ISZERO 0000141e: PUSH2 0x1426 00001421: JUMPI 00001422: PUSH1 0x00 00001424: DUP1 00001425: REVERT 00001426: JUMPDEST 00001427: DUP2 00001428: ADD 00001429: SWAP1 0000142a: DUP1 0000142b: DUP1 0000142c: MLOAD 0000142d: SWAP1 0000142e: PUSH1 0x20 00001430: ADD 00001431: SWAP1 00001432: SWAP3 00001433: SWAP2 00001434: SWAP1 00001435: POP 00001436: POP 00001437: POP 00001438: POP 00001439: PUSH1 0x01 0000143b: PUSH1 0x10 0000143d: PUSH1 0x01 0000143f: PUSH2 0x0100 00001442: EXP 00001443: DUP2 00001444: SLOAD 00001445: DUP2 00001446: PUSH1 0xff 00001448: MUL 00001449: NOT 0000144a: AND 0000144b: SWAP1 0000144c: DUP4 0000144d: ISZERO 0000144e: ISZERO 0000144f: MUL 00001450: OR 00001451: SWAP1 00001452: SSTORE 00001453: POP 00001454: JUMP 00001455: JUMPDEST 00001456: PUSH1 0x0b 00001458: SLOAD 00001459: DUP2 0000145a: JUMP 0000145b: JUMPDEST 0000145c: PUSH1 0x08 0000145e: SLOAD 0000145f: DUP2 00001460: JUMP 00001461: JUMPDEST 00001462: PUSH1 0x00 00001464: PUSH1 0x0f 00001466: SLOAD 00001467: TIMESTAMP 00001468: LT 00001469: ISZERO 0000146a: ISZERO 0000146b: ISZERO 0000146c: PUSH2 0x1474 0000146f: JUMPI 00001470: PUSH1 0x00 00001472: DUP1 00001473: REVERT 00001474: JUMPDEST 00001475: PUSH1 0x00 00001477: PUSH1 0x14 00001479: SWAP1 0000147a: SLOAD 0000147b: SWAP1 0000147c: PUSH2 0x0100 0000147f: EXP 00001480: SWAP1 00001481: DIV 00001482: PUSH1 0xff 00001484: AND 00001485: ISZERO 00001486: ISZERO 00001487: ISZERO 00001488: PUSH2 0x1490 0000148b: JUMPI 0000148c: PUSH1 0x00 0000148e: DUP1 0000148f: REVERT 00001490: JUMPDEST 00001491: PUSH1 0x00 00001493: ISZERO 00001494: ISZERO 00001495: PUSH1 0x10 00001497: PUSH1 0x00 00001499: SWAP1 0000149a: SLOAD 0000149b: SWAP1 0000149c: PUSH2 0x0100 0000149f: EXP 000014a0: SWAP1 000014a1: DIV 000014a2: PUSH1 0xff 000014a4: AND 000014a5: ISZERO 000014a6: ISZERO 000014a7: EQ 000014a8: ISZERO 000014a9: ISZERO 000014aa: PUSH2 0x14b2 000014ad: JUMPI 000014ae: PUSH1 0x00 000014b0: DUP1 000014b1: REVERT 000014b2: JUMPDEST 000014b3: PUSH1 0x00 000014b5: ISZERO 000014b6: ISZERO 000014b7: PUSH1 0x11 000014b9: PUSH1 0x00 000014bb: CALLER 000014bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014d1: AND 000014d2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014e7: AND 000014e8: DUP2 000014e9: MSTORE 000014ea: PUSH1 0x20 000014ec: ADD 000014ed: SWAP1 000014ee: DUP2 000014ef: MSTORE 000014f0: PUSH1 0x20 000014f2: ADD 000014f3: PUSH1 0x00 000014f5: KECCAK256 000014f6: PUSH1 0x00 000014f8: SWAP1 000014f9: SLOAD 000014fa: SWAP1 000014fb: PUSH2 0x0100 000014fe: EXP 000014ff: SWAP1 00001500: DIV 00001501: PUSH1 0xff 00001503: AND 00001504: ISZERO 00001505: ISZERO 00001506: EQ 00001507: ISZERO 00001508: ISZERO 00001509: PUSH2 0x1511 0000150c: JUMPI 0000150d: PUSH1 0x00 0000150f: DUP1 00001510: REVERT 00001511: JUMPDEST 00001512: PUSH1 0x12 00001514: PUSH1 0x00 00001516: CALLER 00001517: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000152c: AND 0000152d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001542: AND 00001543: DUP2 00001544: MSTORE 00001545: PUSH1 0x20 00001547: ADD 00001548: SWAP1 00001549: DUP2 0000154a: MSTORE 0000154b: PUSH1 0x20 0000154d: ADD 0000154e: PUSH1 0x00 00001550: KECCAK256 00001551: SLOAD 00001552: SWAP1 00001553: POP 00001554: PUSH1 0x00 00001556: DUP2 00001557: GT 00001558: ISZERO 00001559: ISZERO 0000155a: PUSH2 0x1562 0000155d: JUMPI 0000155e: PUSH1 0x00 00001560: DUP1 00001561: REVERT 00001562: JUMPDEST 00001563: CALLER 00001564: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001579: AND 0000157a: PUSH2 0x08fc 0000157d: DUP3 0000157e: SWAP1 0000157f: DUP2 00001580: ISZERO 00001581: MUL 00001582: SWAP1 00001583: PUSH1 0x40 00001585: MLOAD 00001586: PUSH1 0x00 00001588: PUSH1 0x40 0000158a: MLOAD 0000158b: DUP1 0000158c: DUP4 0000158d: SUB 0000158e: DUP2 0000158f: DUP6 00001590: DUP9 00001591: DUP9 00001592: CALL 00001593: SWAP4 00001594: POP 00001595: POP 00001596: POP 00001597: POP 00001598: ISZERO 00001599: DUP1 0000159a: ISZERO 0000159b: PUSH2 0x15a8 0000159e: JUMPI 0000159f: RETURNDATASIZE 000015a0: PUSH1 0x00 000015a2: DUP1 000015a3: RETURNDATACOPY 000015a4: RETURNDATASIZE 000015a5: PUSH1 0x00 000015a7: REVERT 000015a8: JUMPDEST 000015a9: POP 000015aa: PUSH1 0x00 000015ac: PUSH1 0x12 000015ae: PUSH1 0x00 000015b0: CALLER 000015b1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015c6: AND 000015c7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015dc: AND 000015dd: DUP2 000015de: MSTORE 000015df: PUSH1 0x20 000015e1: ADD 000015e2: SWAP1 000015e3: DUP2 000015e4: MSTORE 000015e5: PUSH1 0x20 000015e7: ADD 000015e8: PUSH1 0x00 000015ea: KECCAK256 000015eb: DUP2 000015ec: SWAP1 000015ed: SSTORE 000015ee: POP 000015ef: PUSH1 0x01 000015f1: PUSH1 0x11 000015f3: PUSH1 0x00 000015f5: CALLER 000015f6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000160b: AND 0000160c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001621: AND 00001622: DUP2 00001623: MSTORE 00001624: PUSH1 0x20 00001626: ADD 00001627: SWAP1 00001628: DUP2 00001629: MSTORE 0000162a: PUSH1 0x20 0000162c: ADD 0000162d: PUSH1 0x00 0000162f: KECCAK256 00001630: PUSH1 0x00 00001632: PUSH2 0x0100 00001635: EXP 00001636: DUP2 00001637: SLOAD 00001638: DUP2 00001639: PUSH1 0xff 0000163b: MUL 0000163c: NOT 0000163d: AND 0000163e: SWAP1 0000163f: DUP4 00001640: ISZERO 00001641: ISZERO 00001642: MUL 00001643: OR 00001644: SWAP1 00001645: SSTORE 00001646: POP 00001647: PUSH2 0x165b 0000164a: DUP2 0000164b: PUSH1 0x0d 0000164d: SLOAD 0000164e: PUSH2 0x1c37 00001651: SWAP1 00001652: SWAP2 00001653: SWAP1 00001654: PUSH4 0xffffffff 00001659: AND 0000165a: JUMP 0000165b: JUMPDEST 0000165c: PUSH1 0x0d 0000165e: DUP2 0000165f: SWAP1 00001660: SSTORE 00001661: POP 00001662: CALLER 00001663: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001678: AND 00001679: PUSH32 0xd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651 0000169a: DUP3 0000169b: PUSH1 0x40 0000169d: MLOAD 0000169e: DUP1 0000169f: DUP3 000016a0: DUP2 000016a1: MSTORE 000016a2: PUSH1 0x20 000016a4: ADD 000016a5: SWAP2 000016a6: POP 000016a7: POP 000016a8: PUSH1 0x40 000016aa: MLOAD 000016ab: DUP1 000016ac: SWAP2 000016ad: SUB 000016ae: SWAP1 000016af: LOG2 000016b0: POP 000016b1: JUMP 000016b2: JUMPDEST 000016b3: PUSH1 0x0d 000016b5: SLOAD 000016b6: DUP2 000016b7: JUMP 000016b8: JUMPDEST 000016b9: PUSH1 0x00 000016bb: DUP1 000016bc: SWAP1 000016bd: SLOAD 000016be: SWAP1 000016bf: PUSH2 0x0100 000016c2: EXP 000016c3: SWAP1 000016c4: DIV 000016c5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016da: AND 000016db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016f0: AND 000016f1: CALLER 000016f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001707: AND 00001708: EQ 00001709: ISZERO 0000170a: ISZERO 0000170b: PUSH2 0x1713 0000170e: JUMPI 0000170f: PUSH1 0x00 00001711: DUP1 00001712: REVERT 00001713: JUMPDEST 00001714: PUSH1 0x00 00001716: PUSH1 0x14 00001718: SWAP1 00001719: SLOAD 0000171a: SWAP1 0000171b: PUSH2 0x0100 0000171e: EXP 0000171f: SWAP1 00001720: DIV 00001721: PUSH1 0xff 00001723: AND 00001724: ISZERO 00001725: ISZERO 00001726: ISZERO 00001727: PUSH2 0x172f 0000172a: JUMPI 0000172b: PUSH1 0x00 0000172d: DUP1 0000172e: REVERT 0000172f: JUMPDEST 00001730: PUSH1 0x01 00001732: PUSH1 0x00 00001734: PUSH1 0x14 00001736: PUSH2 0x0100 00001739: EXP 0000173a: DUP2 0000173b: SLOAD 0000173c: DUP2 0000173d: PUSH1 0xff 0000173f: MUL 00001740: NOT 00001741: AND 00001742: SWAP1 00001743: DUP4 00001744: ISZERO 00001745: ISZERO 00001746: MUL 00001747: OR 00001748: SWAP1 00001749: SSTORE 0000174a: POP 0000174b: JUMP 0000174c: JUMPDEST 0000174d: PUSH1 0x0e 0000174f: SLOAD 00001750: DUP2 00001751: JUMP 00001752: JUMPDEST 00001753: PUSH8 0x1bc16d674ec80000 0000175c: DUP2 0000175d: JUMP 0000175e: JUMPDEST 0000175f: PUSH1 0x09 00001761: SLOAD 00001762: DUP2 00001763: JUMP 00001764: JUMPDEST 00001765: PUSH1 0x0a 00001767: SLOAD 00001768: DUP2 00001769: JUMP 0000176a: JUMPDEST 0000176b: PUSH1 0x00 0000176d: DUP1 0000176e: SWAP1 0000176f: SLOAD 00001770: SWAP1 00001771: PUSH2 0x0100 00001774: EXP 00001775: SWAP1 00001776: DIV 00001777: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000178c: AND 0000178d: DUP2 0000178e: JUMP 0000178f: JUMPDEST 00001790: PUSH1 0x06 00001792: SLOAD 00001793: DUP2 00001794: JUMP 00001795: JUMPDEST 00001796: PUSH1 0x01 00001798: PUSH1 0x00 0000179a: SWAP1 0000179b: SLOAD 0000179c: SWAP1 0000179d: PUSH2 0x0100 000017a0: EXP 000017a1: SWAP1 000017a2: DIV 000017a3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017b8: AND 000017b9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017ce: AND 000017cf: CALLER 000017d0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017e5: AND 000017e6: EQ 000017e7: ISZERO 000017e8: ISZERO 000017e9: PUSH2 0x17f1 000017ec: JUMPI 000017ed: PUSH1 0x00 000017ef: DUP1 000017f0: REVERT 000017f1: JUMPDEST 000017f2: PUSH1 0x00 000017f4: DUP2 000017f5: GT 000017f6: ISZERO 000017f7: ISZERO 000017f8: PUSH2 0x1800 000017fb: JUMPI 000017fc: PUSH1 0x00 000017fe: DUP1 000017ff: REVERT 00001800: JUMPDEST 00001801: DUP1 00001802: PUSH1 0x07 00001804: DUP2 00001805: SWAP1 00001806: SSTORE 00001807: POP 00001808: POP 00001809: JUMP 0000180a: JUMPDEST 0000180b: PUSH1 0x00 0000180d: PUSH1 0x14 0000180f: SWAP1 00001810: SLOAD 00001811: SWAP1 00001812: PUSH2 0x0100 00001815: EXP 00001816: SWAP1 00001817: DIV 00001818: PUSH1 0xff 0000181a: AND 0000181b: DUP2 0000181c: JUMP 0000181d: JUMPDEST 0000181e: PUSH1 0x12 00001820: PUSH1 0x20 00001822: MSTORE 00001823: DUP1 00001824: PUSH1 0x00 00001826: MSTORE 00001827: PUSH1 0x40 00001829: PUSH1 0x00 0000182b: KECCAK256 0000182c: PUSH1 0x00 0000182e: SWAP2 0000182f: POP 00001830: SWAP1 00001831: POP 00001832: SLOAD 00001833: DUP2 00001834: JUMP 00001835: JUMPDEST 00001836: PUSH1 0x00 00001838: DUP1 00001839: SWAP1 0000183a: SLOAD 0000183b: SWAP1 0000183c: PUSH2 0x0100 0000183f: EXP 00001840: SWAP1 00001841: DIV 00001842: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001857: AND 00001858: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000186d: AND 0000186e: CALLER 0000186f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001884: AND 00001885: EQ 00001886: ISZERO 00001887: ISZERO 00001888: PUSH2 0x1890 0000188b: JUMPI 0000188c: PUSH1 0x00 0000188e: DUP1 0000188f: REVERT 00001890: JUMPDEST 00001891: PUSH1 0x00 00001893: PUSH1 0x14 00001895: SWAP1 00001896: SLOAD 00001897: SWAP1 00001898: PUSH2 0x0100 0000189b: EXP 0000189c: SWAP1 0000189d: DIV 0000189e: PUSH1 0xff 000018a0: AND 000018a1: ISZERO 000018a2: ISZERO 000018a3: PUSH2 0x18ab 000018a6: JUMPI 000018a7: PUSH1 0x00 000018a9: DUP1 000018aa: REVERT 000018ab: JUMPDEST 000018ac: PUSH1 0x00 000018ae: DUP1 000018af: PUSH1 0x14 000018b1: PUSH2 0x0100 000018b4: EXP 000018b5: DUP2 000018b6: SLOAD 000018b7: DUP2 000018b8: PUSH1 0xff 000018ba: MUL 000018bb: NOT 000018bc: AND 000018bd: SWAP1 000018be: DUP4 000018bf: ISZERO 000018c0: ISZERO 000018c1: MUL 000018c2: OR 000018c3: SWAP1 000018c4: SSTORE 000018c5: POP 000018c6: JUMP 000018c7: JUMPDEST 000018c8: PUSH1 0x0c 000018ca: SLOAD 000018cb: DUP2 000018cc: JUMP 000018cd: JUMPDEST 000018ce: PUSH1 0x00 000018d0: DUP1 000018d1: SWAP1 000018d2: SLOAD 000018d3: SWAP1 000018d4: PUSH2 0x0100 000018d7: EXP 000018d8: SWAP1 000018d9: DIV 000018da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018ef: AND 000018f0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001905: AND 00001906: CALLER 00001907: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000191c: AND 0000191d: EQ 0000191e: ISZERO 0000191f: ISZERO 00001920: PUSH2 0x1928 00001923: JUMPI 00001924: PUSH1 0x00 00001926: DUP1 00001927: REVERT 00001928: JUMPDEST 00001929: PUSH1 0x00 0000192b: DUP2 0000192c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001941: AND 00001942: EQ 00001943: ISZERO 00001944: ISZERO 00001945: ISZERO 00001946: PUSH2 0x194e 00001949: JUMPI 0000194a: PUSH1 0x00 0000194c: DUP1 0000194d: REVERT 0000194e: JUMPDEST 0000194f: DUP1 00001950: PUSH1 0x03 00001952: PUSH1 0x00 00001954: PUSH2 0x0100 00001957: EXP 00001958: DUP2 00001959: SLOAD 0000195a: DUP2 0000195b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001970: MUL 00001971: NOT 00001972: AND 00001973: SWAP1 00001974: DUP4 00001975: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000198a: AND 0000198b: MUL 0000198c: OR 0000198d: SWAP1 0000198e: SSTORE 0000198f: POP 00001990: POP 00001991: JUMP 00001992: JUMPDEST 00001993: PUSH1 0x03 00001995: PUSH1 0x00 00001997: SWAP1 00001998: SLOAD 00001999: SWAP1 0000199a: PUSH2 0x0100 0000199d: EXP 0000199e: SWAP1 0000199f: DIV 000019a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019b5: AND 000019b6: DUP2 000019b7: JUMP 000019b8: JUMPDEST 000019b9: PUSH1 0x01 000019bb: PUSH1 0x00 000019bd: SWAP1 000019be: SLOAD 000019bf: SWAP1 000019c0: PUSH2 0x0100 000019c3: EXP 000019c4: SWAP1 000019c5: DIV 000019c6: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019db: AND 000019dc: DUP2 000019dd: JUMP 000019de: JUMPDEST 000019df: PUSH1 0x00 000019e1: DUP1 000019e2: SWAP1 000019e3: SLOAD 000019e4: SWAP1 000019e5: PUSH2 0x0100 000019e8: EXP 000019e9: SWAP1 000019ea: DIV 000019eb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a00: AND 00001a01: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a16: AND 00001a17: CALLER 00001a18: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a2d: AND 00001a2e: EQ 00001a2f: ISZERO 00001a30: ISZERO 00001a31: PUSH2 0x1a39 00001a34: JUMPI 00001a35: PUSH1 0x00 00001a37: DUP1 00001a38: REVERT 00001a39: JUMPDEST 00001a3a: PUSH1 0x00 00001a3c: DUP2 00001a3d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a52: AND 00001a53: EQ 00001a54: ISZERO 00001a55: ISZERO 00001a56: ISZERO 00001a57: PUSH2 0x1a5f 00001a5a: JUMPI 00001a5b: PUSH1 0x00 00001a5d: DUP1 00001a5e: REVERT 00001a5f: JUMPDEST 00001a60: DUP1 00001a61: PUSH1 0x01 00001a63: PUSH1 0x00 00001a65: PUSH2 0x0100 00001a68: EXP 00001a69: DUP2 00001a6a: SLOAD 00001a6b: DUP2 00001a6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a81: MUL 00001a82: NOT 00001a83: AND 00001a84: SWAP1 00001a85: DUP4 00001a86: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a9b: AND 00001a9c: MUL 00001a9d: OR 00001a9e: SWAP1 00001a9f: SSTORE 00001aa0: POP 00001aa1: POP 00001aa2: JUMP 00001aa3: JUMPDEST 00001aa4: PUSH1 0x10 00001aa6: PUSH1 0x01 00001aa8: SWAP1 00001aa9: SLOAD 00001aaa: SWAP1 00001aab: PUSH2 0x0100 00001aae: EXP 00001aaf: SWAP1 00001ab0: DIV 00001ab1: PUSH1 0xff 00001ab3: AND 00001ab4: DUP2 00001ab5: JUMP 00001ab6: JUMPDEST 00001ab7: PUSH1 0x00 00001ab9: DUP1 00001aba: SWAP1 00001abb: SLOAD 00001abc: SWAP1 00001abd: PUSH2 0x0100 00001ac0: EXP 00001ac1: SWAP1 00001ac2: DIV 00001ac3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ad8: AND 00001ad9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001aee: AND 00001aef: CALLER 00001af0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b05: AND 00001b06: EQ 00001b07: ISZERO 00001b08: ISZERO 00001b09: PUSH2 0x1b11 00001b0c: JUMPI 00001b0d: PUSH1 0x00 00001b0f: DUP1 00001b10: REVERT 00001b11: JUMPDEST 00001b12: PUSH1 0x00 00001b14: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b29: AND 00001b2a: DUP2 00001b2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b40: AND 00001b41: EQ 00001b42: ISZERO 00001b43: ISZERO 00001b44: ISZERO 00001b45: PUSH2 0x1b4d 00001b48: JUMPI 00001b49: PUSH1 0x00 00001b4b: DUP1 00001b4c: REVERT 00001b4d: JUMPDEST 00001b4e: DUP1 00001b4f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b64: AND 00001b65: PUSH1 0x00 00001b67: DUP1 00001b68: SWAP1 00001b69: SLOAD 00001b6a: SWAP1 00001b6b: PUSH2 0x0100 00001b6e: EXP 00001b6f: SWAP1 00001b70: DIV 00001b71: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b86: AND 00001b87: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b9c: AND 00001b9d: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001bbe: PUSH1 0x40 00001bc0: MLOAD 00001bc1: PUSH1 0x40 00001bc3: MLOAD 00001bc4: DUP1 00001bc5: SWAP2 00001bc6: SUB 00001bc7: SWAP1 00001bc8: LOG3 00001bc9: DUP1 00001bca: PUSH1 0x00 00001bcc: DUP1 00001bcd: PUSH2 0x0100 00001bd0: EXP 00001bd1: DUP2 00001bd2: SLOAD 00001bd3: DUP2 00001bd4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001be9: MUL 00001bea: NOT 00001beb: AND 00001bec: SWAP1 00001bed: DUP4 00001bee: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c03: AND 00001c04: MUL 00001c05: OR 00001c06: SWAP1 00001c07: SSTORE 00001c08: POP 00001c09: POP 00001c0a: JUMP 00001c0b: JUMPDEST 00001c0c: PUSH1 0x05 00001c0e: SLOAD 00001c0f: DUP2 00001c10: JUMP 00001c11: JUMPDEST 00001c12: PUSH1 0x02 00001c14: PUSH1 0x00 00001c16: SWAP1 00001c17: SLOAD 00001c18: SWAP1 00001c19: PUSH2 0x0100 00001c1c: EXP 00001c1d: SWAP1 00001c1e: DIV 00001c1f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c34: AND 00001c35: DUP2 00001c36: JUMP 00001c37: JUMPDEST 00001c38: PUSH1 0x00 00001c3a: DUP1 00001c3b: DUP3 00001c3c: DUP5 00001c3d: ADD 00001c3e: SWAP1 00001c3f: POP 00001c40: DUP4 00001c41: DUP2 00001c42: LT 00001c43: ISZERO 00001c44: ISZERO 00001c45: ISZERO 00001c46: PUSH2 0x1c4b 00001c49: JUMPI 00001c4a: INVALID 00001c4b: JUMPDEST 00001c4c: DUP1 00001c4d: SWAP2 00001c4e: POP 00001c4f: POP 00001c50: SWAP3 00001c51: SWAP2 00001c52: POP 00001c53: POP 00001c54: JUMP 00001c55: JUMPDEST 00001c56: PUSH1 0x00 00001c58: DUP1 00001c59: PUSH1 0x00 00001c5b: DUP5 00001c5c: EQ 00001c5d: ISZERO 00001c5e: PUSH2 0x1c6a 00001c61: JUMPI 00001c62: PUSH1 0x00 00001c64: SWAP2 00001c65: POP 00001c66: PUSH2 0x1c89 00001c69: JUMP 00001c6a: JUMPDEST 00001c6b: DUP3 00001c6c: DUP5 00001c6d: MUL 00001c6e: SWAP1 00001c6f: POP 00001c70: DUP3 00001c71: DUP5 00001c72: DUP3 00001c73: DUP2 00001c74: ISZERO 00001c75: ISZERO 00001c76: PUSH2 0x1c7b 00001c79: JUMPI 00001c7a: INVALID 00001c7b: JUMPDEST 00001c7c: DIV 00001c7d: EQ 00001c7e: ISZERO 00001c7f: ISZERO 00001c80: PUSH2 0x1c85 00001c83: JUMPI 00001c84: INVALID 00001c85: JUMPDEST 00001c86: DUP1 00001c87: SWAP2 00001c88: POP 00001c89: JUMPDEST 00001c8a: POP 00001c8b: SWAP3 00001c8c: SWAP2 00001c8d: POP 00001c8e: POP 00001c8f: JUMP 00001c90: JUMPDEST 00001c91: PUSH1 0x00 00001c93: DUP1 00001c94: DUP3 00001c95: DUP5 00001c96: DUP2 00001c97: ISZERO 00001c98: ISZERO 00001c99: PUSH2 0x1c9e 00001c9c: JUMPI 00001c9d: INVALID 00001c9e: JUMPDEST 00001c9f: DIV 00001ca0: SWAP1 00001ca1: POP 00001ca2: DUP1 00001ca3: SWAP2 00001ca4: POP 00001ca5: POP 00001ca6: SWAP3 00001ca7: SWAP2 00001ca8: POP 00001ca9: POP 00001caa: JUMP 00001cab: JUMPDEST 00001cac: PUSH1 0x00 00001cae: PUSH2 0x1cd4 00001cb1: PUSH1 0x64 00001cb3: PUSH2 0x1cc6 00001cb6: PUSH1 0x05 00001cb8: DUP6 00001cb9: PUSH2 0x1c55 00001cbc: SWAP1 00001cbd: SWAP2 00001cbe: SWAP1 00001cbf: PUSH4 0xffffffff 00001cc4: AND 00001cc5: JUMP 00001cc6: JUMPDEST 00001cc7: PUSH2 0x1c90 00001cca: SWAP1 00001ccb: SWAP2 00001ccc: SWAP1 00001ccd: PUSH4 0xffffffff 00001cd2: AND 00001cd3: JUMP 00001cd4: JUMPDEST 00001cd5: SWAP1 00001cd6: POP 00001cd7: SWAP2 00001cd8: SWAP1 00001cd9: POP 00001cda: JUMP 00001cdb: STOP 00001cdc: LOG1 00001cdd: PUSH6 0x627a7a723058 00001ce4: KECCAK256 00001ce5: SHL 00001ce6: GASLIMIT 00001ce7: PUSH28 0x130132a5e892527bff4852a9e4dfe4b5053e9fd0f11b688a67f4328e 00001d04: SWAP1 00001d05: STOP 00001d06: UNKNOWN(0x29)
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| medium | other | codex | Refunds do not reclaim tokens, enabling free tokens if soft cap is missed | 75 | no | — |
viewevidence_json{
"evidence": "`doPurchase` transfers tokens immediately to the buyer (Contract.sol:618) while `refund` only returns ETH and never burns or reclaims tokens (Contract.sol:560-571).",
"locations": [
"contracts/Contract.sol:560",
"contracts/Contract.sol:618"
],
"recommendation": "When refunding, burn or claw back the contributor\u2019s tokens (or escrow token delivery until soft cap success). Also adjust `tokensSold`/accounting on refund to prevent free-token outcomes.",
"exploit_scenario": "1) Attacker (whitelisted) contributes during the presale to receive tokens immediately. 2) The presale ends without reaching the soft cap. 3) Attacker calls `refund()` to receive their full ETH deposit back while keeping the tokens already transferred. 4) If/when the token is later released, attacker can transfer/sell those free tokens for profit."
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | yes | yes |
viewtrace_id: 0x571fdd4f6e81c3233c30aaab9cbedd7c270c642e499eaaf08490fd69885c721a
call_targets:
0x12d5b7c26dd8dc6e2f71f5bf240d5e76452b2fe5, 0xbdc3f19226b31b9f34589c491a8adc691991403a
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x571fdd4f6e81c3233c30aaab9cbedd7c270c642e499eaaf08490fd69885c721a",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x12d5b7c26dd8dc6e2f71f5bf240d5e76452b2fe5",
"0xbdc3f19226b31b9f34589c491a8adc691991403a"
],
"matched_probe": null,
"target_varies": true,
"classification": "target_varies"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2b9edee9",
"selector": "0x2b9edee9",
"calldata_variants": [
"0x2b9edee9",
"0x2b9edee90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3197cbb6",
"selector": "0x3197cbb6",
"calldata_variants": [
"0x3197cbb6",
"0x3197cbb60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x38af3eed",
"selector": "0x38af3eed",
"calldata_variants": [
"0x38af3eed",
"0x38af3eed0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3b478fc5",
"selector": "0x3b478fc5",
"calldata_variants": [
"0x3b478fc5",
"0x3b478fc50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3ccfd60b",
"selector": "0x3ccfd60b",
"calldata_variants": [
"0x3ccfd60b",
"0x3ccfd60b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x518ab2a8",
"selector": "0x518ab2a8",
"calldata_variants": [
"0x518ab2a8",
"0x518ab2a80000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 576,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2898,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3171,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 9,
"guards_detected": [
{
"pc": 4470,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 5873,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6095,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6254,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6406,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6679,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6895,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"untrusted_call_count": 9
}
|
| medium | other | detector | ETH value transfer possible | 40 | yes | yes |
viewtrace_id: 0x571fdd4f6e81c3233c30aaab9cbedd7c270c642e499eaaf08490fd69885c721a
call_targets:
0x12d5b7c26dd8dc6e2f71f5bf240d5e76452b2fe5, 0xbdc3f19226b31b9f34589c491a8adc691991403a
target_varies:
yes
classification:
target_varies
validation_json{
"sink": "CALL",
"errors": 0,
"status": "confirmed",
"attempts": 1,
"trace_id": "0x571fdd4f6e81c3233c30aaab9cbedd7c270c642e499eaaf08490fd69885c721a",
"confirmed": true,
"trace_mode": "callTracer",
"call_targets": [
"0x12d5b7c26dd8dc6e2f71f5bf240d5e76452b2fe5",
"0xbdc3f19226b31b9f34589c491a8adc691991403a"
],
"matched_probe": null,
"target_varies": true,
"classification": "target_varies"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xffffffff",
"selector": "0xffffffff",
"calldata_variants": [
"0xffffffff",
"0xffffffff0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x06fdde03",
"selector": "0x06fdde03",
"calldata_variants": [
"0x06fdde03",
"0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x2b9edee9",
"selector": "0x2b9edee9",
"calldata_variants": [
"0x2b9edee9",
"0x2b9edee90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3197cbb6",
"selector": "0x3197cbb6",
"calldata_variants": [
"0x3197cbb6",
"0x3197cbb60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x38af3eed",
"selector": "0x38af3eed",
"calldata_variants": [
"0x38af3eed",
"0x38af3eed0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3b478fc5",
"selector": "0x3b478fc5",
"calldata_variants": [
"0x3b478fc5",
"0x3b478fc50000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3ccfd60b",
"selector": "0x3ccfd60b",
"calldata_variants": [
"0x3ccfd60b",
"0x3ccfd60b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x518ab2a8",
"selector": "0x518ab2a8",
"calldata_variants": [
"0x518ab2a8",
"0x518ab2a80000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 576,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2898,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3171,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 9,
"guards_detected": [
{
"pc": 4470,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 5873,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6095,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6254,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6406,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6679,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 6895,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
]
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 7
}
|