TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

bb5b93eb-4200-4976-ba61-e903af632b89

complete
Chain ID
1
Address
Block Number
Created
Sat, Dec 27, 2025 10:29 PM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Untrusted CALL target/value reachable
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30214 report.consolidate complete 1 / 1 3 months ago
73468 artifact.fetch complete 1 / 3 1 week ago
73469 tool.cast_disasm complete 1 / 3 1 week ago
73470 analysis.bundle complete 1 / 3 1 week ago
73471 capability.graph complete 1 / 3 1 week ago
73472 detector.run complete 1 / 3 1 week ago
73473 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: yes

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
2
No findings?
no
Summary
Found 2 issues: wrapped token minting can become undercollateralized for fee-on-transfer/malicious tokens, and permit signatures are malleable due to missing EIP-2 checks.
View stderr
[codex:1125939] OpenAI Codex v0.77.0 (research preview)
[codex:1125939] --------
[codex:1125939] workdir: /tmp/codex-multi-5crzii37
[codex:1125939] model: gpt-5.2-codex
[codex:1125939] provider: openai
[codex:1125939] approval: never
[codex:1125939] sandbox: read-only
[codex:1125939] reasoning effort: xhigh
[codex:1125939] reasoning summaries: auto
[codex:1125939] session id: 019b61eb-fdbd-7843-b6ae-9b3b861e2bd3
[codex:1125939] --------
[codex:1125939] user
[codex:1125939] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1125939] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1125939] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1125939] 
[codex:1125939] Scope rules:
[codex:1125939] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1125939] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1125939] 
[codex:1125939] Output MUST be valid JSON matching the provided schema.
[codex:1125939] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1125939] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1125939] 
[codex:1125939] Output constraints (IMPORTANT):
[codex:1125939] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1125939] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1125939] mcp startup: no servers
[codex:1125939] 
[codex:1125939] thinking
[codex:1125939] **Preparing to read skill instructions**
[codex:1125939] exec
[codex:1125939] /bin/bash -lc ls in /tmp/codex-multi-5crzii37 succeeded in 6ms:
[codex:1125939] AUDIT_BUNDLE.txt
[codex:1125939] codex-output-schema.json
[codex:1125939] contracts
[codex:1125939] 
[codex:1125939] thinking
[codex:1125939] **Reading AUDIT_BUNDLE.txt**
[codex:1125939] exec
[codex:1125939] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-5crzii37 succeeded in 5ms:
[codex:1125939] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1125939] 
[codex:1125939] ================================================================================
[codex:1125939] FILE: contracts/@uniswap/lib/contracts/libraries/TransferHelper.sol
[codex:1125939] ================================================================================
[codex:1125939] // SPDX-License-Identifier: GPL-3.0-or-later
[codex:1125939] 
[codex:1125939] pragma solidity >=0.6.0;
[codex:1125939] 
[codex:1125939] // helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false
[codex:1125939] library TransferHelper {
[codex:1125939]     function safeApprove(
[codex:1125939]         address token,
[codex:1125939]         address to,
[codex:1125939]         uint256 value
[codex:1125939]     ) internal {
[codex:1125939]         // bytes4(keccak256(bytes('approve(address,uint256)')));
[codex:1125939]         (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
[codex:1125939]         require(
[codex:1125939]             success && (data.length == 0 || abi.decode(data, (bool))),
[codex:1125939] 
[codex:1125939] 
[codex:1125939] thinking
[codex:1125939] **Analyzing token wrapper vulnerabilities**
[codex:1125939] thinking
[codex:1125939] **Examining fee-on-transfer risk and pause bypass**
[codex:1125939] 
[codex:1125939] I’m seeing a key issue where the wrapper mints tokens based on the requested amount without verifying the actual underlying received, which opens the door to economic loss when fee-on-transfer or rebasing tokens are wrapped. Attackers can exploit this to dilute backing and drain value from other depositors. There's also a gap where the pause mechanism used by the contract does not apply to the wrap and unwrap functions, potentially allowing token operations to continue during emergency stops. Both are notable concerns for how the contract manages accounting and access control.
[codex:1125939] exec
[codex:1125939] /bin/bash -lc 'nl -ba contracts/contracts/FewWrappedToken.sol' in /tmp/codex-multi-5crzii37 succeeded in 6ms:
[codex:1125939]      1	// SPDX-License-Identifier: BUSL-1.1
[codex:1125939]      2	pragma solidity =0.6.6;
[codex:1125939]      3	
[codex:1125939]      4	import '@uniswap/lib/contracts/libraries/TransferHelper.sol';
[codex:1125939]      5	
[codex:1125939]      6	import './interfaces/IFewWrappedToken.sol';
[codex:1125939]      7	import './libraries/SafeMath.sol';
[codex:1125939]      8	import './refs/ICoreRef.sol';
[codex:1125939]      9	import './interfaces/IFewFactory.sol';
[codex:1125939]     10	
[codex:1125939]     11	/// @title Few Wrapped Token
[codex:1125939]     12	contract FewWrappedToken is IFewWrappedToken {
[codex:1125939]     13	    using SafeMath for uint;
[codex:1125939]     14	
[codex:1125939]     15	    string public override name;
[codex:1125939]     16	    string public override symbol;
[codex:1125939]     17	    uint8 public override decimals;
[codex:1125939]     18	    uint  public override totalSupply;
[codex:1125939]     19	    mapping(address => uint) public override balanceOf;
[codex:1125939]     20	    mapping(address => mapping(address => uint)) public override allowance;
[codex:1125939] 
[codex:1125939] thinking
[codex:1125939] **Summarizing vulnerability analysis and crafting JSON output**
[codex:1125939] 
[codex:1125939] I'll carefully detail two main findings: the undercollateralization risk in `wrapTo` due to fee-on-transfer tokens and the low-severity signature malleability issue in `permit`. I'll explain the exploit scenarios, recommendations, and evidence with precise file and line references, then format the output as valid JSON according to the required schema.
[codex:1125939] codex
[codex:1125939] {"no_findings":false,"summary":"Found 2 issues: wrapped token minting can become undercollateralized for fee-on-transfer/malicious tokens, and permit signatures are malleable due to missing EIP-2 checks.","findings":[{"severity":"medium","category":"math","title":"Wrap mints based on requested amount instead of actual received tokens","exploit_scenario":"If the underlying token is fee-on-transfer, rebasing, or malicious (returns success without transferring), `wrapTo` still mints the full requested amount. An attacker can deposit such a token to receive more wrapped tokens than backing, then later redeem full amounts once other users deposit, leaving the contract undercollateralized and other holders unable to redeem.","recommendation":"Measure actual tokens received by checking `balanceOf` before/after transfer and mint only the delta, or explicitly reject fee-on-transfer/rebasing tokens (e.g., via a whitelist).","evidence":"`wrapTo` calls `safeTransferFrom` and then mints `amount` without verifying the contract’s token balance increase.","locations":["contracts/contracts/FewWrappedToken.sol:165","contracts/contracts/FewWrappedToken.sol:167","contracts/contracts/FewWrappedToken.sol:168"]},{"severity":"low","category":"auth","title":"Permit allows malleable signatures (no EIP-2 s/v checks)","exploit_scenario":"Because `permit` accepts any `v` and does not enforce `s` in the lower half-order, signatures are malleable. A second valid signature for the same permit can be submitted, which can enable front‑running or replay in systems that expect signature uniqueness (even though nonces prevent reuse for state changes).","recommendation":"Use OpenZeppelin’s `ECDSA` helpers or add explicit checks for `v` ∈ {27,28} and `s` ≤ secp256k1n/2.","evidence":"`ecrecover` is used directly with no validation of `v` or `s`.","locations":["contracts/contracts/FewWrappedToken.sol:115","contracts/contracts/FewWrappedToken.sol:124","contracts/contracts/FewWrappedToken.sol:125"]}]}
[codex:1125939] tokens used
[codex:1125939] 19,062
[codex:1125939] {"no_findings":false,"summary":"Found 2 issues: wrapped token minting can become undercollateralized for fee-on-transfer/malicious tokens, and permit signatures are malleable due to missing EIP-2 checks.","findings":[{"severity":"medium","category":"math","title":"Wrap mints based on requested amount instead of actual received tokens","exploit_scenario":"If the underlying token is fee-on-transfer, rebasing, or malicious (returns success without transferring), `wrapTo` still mints the full requested amount. An attacker can deposit such a token to receive more wrapped tokens than backing, then later redeem full amounts once other users deposit, leaving the contract undercollateralized and other holders unable to redeem.","recommendation":"Measure actual tokens received by checking `balanceOf` before/after transfer and mint only the delta, or explicitly reject fee-on-transfer/rebasing tokens (e.g., via a whitelist).","evidence":"`wrapTo` calls `safeTransferFrom` and then mints `amount` without verifying the contract’s token balance increase.","locations":["contracts/contracts/FewWrappedToken.sol:165","contracts/contracts/FewWrappedToken.sol:167","contracts/contracts/FewWrappedToken.sol:168"]},{"severity":"low","category":"auth","title":"Permit allows malleable signatures (no EIP-2 s/v checks)","exploit_scenario":"Because `permit` accepts any `v` and does not enforce `s` in the lower half-order, signatures are malleable. A second valid signature for the same permit can be submitted, which can enable front‑running or replay in systems that expect signature uniqueness (even though nonces prevent reuse for state changes).","recommendation":"Use OpenZeppelin’s `ECDSA` helpers or add explicit checks for `v` ∈ {27,28} and `s` ≤ secp256k1n/2.","evidence":"`ecrecover` is used directly with no validation of `v` or `s`.","locations":["contracts/contracts/FewWrappedToken.sol:115","contracts/contracts/FewWrappedToken.sol:124","contracts/contracts/FewWrappedToken.sol:125"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-27T22:29:44.569331+00:00",
        "returncode": 0
    },
    "summary": "Found 2 issues: wrapped token minting can become undercollateralized for fee-on-transfer/malicious tokens, and permit signatures are malleable due to missing EIP-2 checks.",
    "raw_final": {
        "summary": "Found 2 issues: wrapped token minting can become undercollateralized for fee-on-transfer/malicious tokens, and permit signatures are malleable due to missing EIP-2 checks.",
        "findings": [
            {
                "title": "Wrap mints based on requested amount instead of actual received tokens",
                "category": "math",
                "evidence": "`wrapTo` calls `safeTransferFrom` and then mints `amount` without verifying the contract\u2019s token balance increase.",
                "severity": "medium",
                "locations": [
                    "contracts/contracts/FewWrappedToken.sol:165",
                    "contracts/contracts/FewWrappedToken.sol:167",
                    "contracts/contracts/FewWrappedToken.sol:168"
                ],
                "recommendation": "Measure actual tokens received by checking `balanceOf` before/after transfer and mint only the delta, or explicitly reject fee-on-transfer/rebasing tokens (e.g., via a whitelist).",
                "exploit_scenario": "If the underlying token is fee-on-transfer, rebasing, or malicious (returns success without transferring), `wrapTo` still mints the full requested amount. An attacker can deposit such a token to receive more wrapped tokens than backing, then later redeem full amounts once other users deposit, leaving the contract undercollateralized and other holders unable to redeem."
            },
            {
                "title": "Permit allows malleable signatures (no EIP-2 s/v checks)",
                "category": "auth",
                "evidence": "`ecrecover` is used directly with no validation of `v` or `s`.",
                "severity": "low",
                "locations": [
                    "contracts/contracts/FewWrappedToken.sol:115",
                    "contracts/contracts/FewWrappedToken.sol:124",
                    "contracts/contracts/FewWrappedToken.sol:125"
                ],
                "recommendation": "Use OpenZeppelin\u2019s `ECDSA` helpers or add explicit checks for `v` \u2208 {27,28} and `s` \u2264 secp256k1n/2.",
                "exploit_scenario": "Because `permit` accepts any `v` and does not enforce `s` in the lower half-order, signatures are malleable. A second valid signature for the same permit can be submitted, which can enable front\u2011running or replay in systems that expect signature uniqueness (even though nonces prevent reuse for state changes)."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
9
EXT*/BALANCE
6
Total opcodes
3362
Flags
heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x0182
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x70a08231
00000026: GT
00000027: PUSH2 0x00d8
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xc45a0155
00000031: GT
00000032: PUSH2 0x008c
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xde0e9a3e
0000003c: GT
0000003d: PUSH2 0x0066
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xde0e9a3e
00000047: EQ
00000048: PUSH2 0x0550
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xea598cb0
00000052: EQ
00000053: PUSH2 0x056d
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xfc0c546a
0000005d: EQ
0000005e: PUSH2 0x058a
00000061: JUMPI
00000062: PUSH2 0x0182
00000065: JUMP
00000066: JUMPDEST
00000067: DUP1
00000068: PUSH4 0xc45a0155
0000006d: EQ
0000006e: PUSH2 0x0486
00000071: JUMPI
00000072: DUP1
00000073: PUSH4 0xd505accf
00000078: EQ
00000079: PUSH2 0x04b7
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0xdd62ed3e
00000083: EQ
00000084: PUSH2 0x0515
00000087: JUMPI
00000088: PUSH2 0x0182
0000008b: JUMP
0000008c: JUMPDEST
0000008d: DUP1
0000008e: PUSH4 0x7ecebe00
00000093: GT
00000094: PUSH2 0x00bd
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0x7ecebe00
0000009e: EQ
0000009f: PUSH2 0x0412
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0x95d89b41
000000a9: EQ
000000aa: PUSH2 0x0445
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0xa9059cbb
000000b4: EQ
000000b5: PUSH2 0x044d
000000b8: JUMPI
000000b9: PUSH2 0x0182
000000bc: JUMP
000000bd: JUMPDEST
000000be: DUP1
000000bf: PUSH4 0x70a08231
000000c4: EQ
000000c5: PUSH2 0x03a6
000000c8: JUMPI
000000c9: DUP1
000000ca: PUSH4 0x79cc6790
000000cf: EQ
000000d0: PUSH2 0x03d9
000000d3: JUMPI
000000d4: PUSH2 0x0182
000000d7: JUMP
000000d8: JUMPDEST
000000d9: DUP1
000000da: PUSH4 0x30adf81f
000000df: GT
000000e0: PUSH2 0x013a
000000e3: JUMPI
000000e4: DUP1
000000e5: PUSH4 0x40c10f19
000000ea: GT
000000eb: PUSH2 0x0114
000000ee: JUMPI
000000ef: DUP1
000000f0: PUSH4 0x40c10f19
000000f5: EQ
000000f6: PUSH2 0x0315
000000f9: JUMPI
000000fa: DUP1
000000fb: PUSH4 0x42966c68
00000100: EQ
00000101: PUSH2 0x0350
00000104: JUMPI
00000105: DUP1
00000106: PUSH4 0x5dbd6059
0000010b: EQ
0000010c: PUSH2 0x036d
0000010f: JUMPI
00000110: PUSH2 0x0182
00000113: JUMP
00000114: JUMPDEST
00000115: DUP1
00000116: PUSH4 0x30adf81f
0000011b: EQ
0000011c: PUSH2 0x02e7
0000011f: JUMPI
00000120: DUP1
00000121: PUSH4 0x313ce567
00000126: EQ
00000127: PUSH2 0x02ef
0000012a: JUMPI
0000012b: DUP1
0000012c: PUSH4 0x3644e515
00000131: EQ
00000132: PUSH2 0x030d
00000135: JUMPI
00000136: PUSH2 0x0182
00000139: JUMP
0000013a: JUMPDEST
0000013b: DUP1
0000013c: PUSH4 0x18160ddd
00000141: GT
00000142: PUSH2 0x016b
00000145: JUMPI
00000146: DUP1
00000147: PUSH4 0x18160ddd
0000014c: EQ
0000014d: PUSH2 0x0251
00000150: JUMPI
00000151: DUP1
00000152: PUSH4 0x23b872dd
00000157: EQ
00000158: PUSH2 0x026b
0000015b: JUMPI
0000015c: DUP1
0000015d: PUSH4 0x26599850
00000162: EQ
00000163: PUSH2 0x02ae
00000166: JUMPI
00000167: PUSH2 0x0182
0000016a: JUMP
0000016b: JUMPDEST
0000016c: DUP1
0000016d: PUSH4 0x06fdde03
00000172: EQ
00000173: PUSH2 0x0187
00000176: JUMPI
00000177: DUP1
00000178: PUSH4 0x095ea7b3
0000017d: EQ
0000017e: PUSH2 0x0204
00000181: JUMPI
00000182: JUMPDEST
00000183: PUSH1 0x00
00000185: DUP1
00000186: REVERT
00000187: JUMPDEST
00000188: PUSH2 0x018f
0000018b: PUSH2 0x0592
0000018e: JUMP
0000018f: JUMPDEST
00000190: PUSH1 0x40
00000192: DUP1
00000193: MLOAD
00000194: PUSH1 0x20
00000196: DUP1
00000197: DUP3
00000198: MSTORE
00000199: DUP4
0000019a: MLOAD
0000019b: DUP2
0000019c: DUP4
0000019d: ADD
0000019e: MSTORE
0000019f: DUP4
000001a0: MLOAD
000001a1: SWAP2
000001a2: SWAP3
000001a3: DUP4
000001a4: SWAP3
000001a5: SWAP1
000001a6: DUP4
000001a7: ADD
000001a8: SWAP2
000001a9: DUP6
000001aa: ADD
000001ab: SWAP1
000001ac: DUP1
000001ad: DUP4
000001ae: DUP4
000001af: PUSH1 0x00
000001b1: JUMPDEST
000001b2: DUP4
000001b3: DUP2
000001b4: LT
000001b5: ISZERO
000001b6: PUSH2 0x01c9
000001b9: JUMPI
000001ba: DUP2
000001bb: DUP2
000001bc: ADD
000001bd: MLOAD
000001be: DUP4
000001bf: DUP3
000001c0: ADD
000001c1: MSTORE
000001c2: PUSH1 0x20
000001c4: ADD
000001c5: PUSH2 0x01b1
000001c8: JUMP
000001c9: JUMPDEST
000001ca: POP
000001cb: POP
000001cc: POP
000001cd: POP
000001ce: SWAP1
000001cf: POP
000001d0: SWAP1
000001d1: DUP2
000001d2: ADD
000001d3: SWAP1
000001d4: PUSH1 0x1f
000001d6: AND
000001d7: DUP1
000001d8: ISZERO
000001d9: PUSH2 0x01f6
000001dc: JUMPI
000001dd: DUP1
000001de: DUP3
000001df: SUB
000001e0: DUP1
000001e1: MLOAD
000001e2: PUSH1 0x01
000001e4: DUP4
000001e5: PUSH1 0x20
000001e7: SUB
000001e8: PUSH2 0x0100
000001eb: EXP
000001ec: SUB
000001ed: NOT
000001ee: AND
000001ef: DUP2
000001f0: MSTORE
000001f1: PUSH1 0x20
000001f3: ADD
000001f4: SWAP2
000001f5: POP
000001f6: JUMPDEST
000001f7: POP
000001f8: SWAP3
000001f9: POP
000001fa: POP
000001fb: POP
000001fc: PUSH1 0x40
000001fe: MLOAD
000001ff: DUP1
00000200: SWAP2
00000201: SUB
00000202: SWAP1
00000203: RETURN
00000204: JUMPDEST
00000205: PUSH2 0x023d
00000208: PUSH1 0x04
0000020a: DUP1
0000020b: CALLDATASIZE
0000020c: SUB
0000020d: PUSH1 0x40
0000020f: DUP2
00000210: LT
00000211: ISZERO
00000212: PUSH2 0x021a
00000215: JUMPI
00000216: PUSH1 0x00
00000218: DUP1
00000219: REVERT
0000021a: JUMPDEST
0000021b: POP
0000021c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000231: DUP2
00000232: CALLDATALOAD
00000233: AND
00000234: SWAP1
00000235: PUSH1 0x20
00000237: ADD
00000238: CALLDATALOAD
00000239: PUSH2 0x063e
0000023c: JUMP
0000023d: JUMPDEST
0000023e: PUSH1 0x40
00000240: DUP1
00000241: MLOAD
00000242: SWAP2
00000243: ISZERO
00000244: ISZERO
00000245: DUP3
00000246: MSTORE
00000247: MLOAD
00000248: SWAP1
00000249: DUP2
0000024a: SWAP1
0000024b: SUB
0000024c: PUSH1 0x20
0000024e: ADD
0000024f: SWAP1
00000250: RETURN
00000251: JUMPDEST
00000252: PUSH2 0x0259
00000255: PUSH2 0x0655
00000258: JUMP
00000259: JUMPDEST
0000025a: PUSH1 0x40
0000025c: DUP1
0000025d: MLOAD
0000025e: SWAP2
0000025f: DUP3
00000260: MSTORE
00000261: MLOAD
00000262: SWAP1
00000263: DUP2
00000264: SWAP1
00000265: SUB
00000266: PUSH1 0x20
00000268: ADD
00000269: SWAP1
0000026a: RETURN
0000026b: JUMPDEST
0000026c: PUSH2 0x023d
0000026f: PUSH1 0x04
00000271: DUP1
00000272: CALLDATASIZE
00000273: SUB
00000274: PUSH1 0x60
00000276: DUP2
00000277: LT
00000278: ISZERO
00000279: PUSH2 0x0281
0000027c: JUMPI
0000027d: PUSH1 0x00
0000027f: DUP1
00000280: REVERT
00000281: JUMPDEST
00000282: POP
00000283: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000298: DUP2
00000299: CALLDATALOAD
0000029a: DUP2
0000029b: AND
0000029c: SWAP2
0000029d: PUSH1 0x20
0000029f: DUP2
000002a0: ADD
000002a1: CALLDATALOAD
000002a2: SWAP1
000002a3: SWAP2
000002a4: AND
000002a5: SWAP1
000002a6: PUSH1 0x40
000002a8: ADD
000002a9: CALLDATALOAD
000002aa: PUSH2 0x065b
000002ad: JUMP
000002ae: JUMPDEST
000002af: PUSH2 0x0259
000002b2: PUSH1 0x04
000002b4: DUP1
000002b5: CALLDATASIZE
000002b6: SUB
000002b7: PUSH1 0x40
000002b9: DUP2
000002ba: LT
000002bb: ISZERO
000002bc: PUSH2 0x02c4
000002bf: JUMPI
000002c0: PUSH1 0x00
000002c2: DUP1
000002c3: REVERT
000002c4: JUMPDEST
000002c5: POP
000002c6: DUP1
000002c7: CALLDATALOAD
000002c8: SWAP1
000002c9: PUSH1 0x20
000002cb: ADD
000002cc: CALLDATALOAD
000002cd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002e2: AND
000002e3: PUSH2 0x073a
000002e6: JUMP
000002e7: JUMPDEST
000002e8: PUSH2 0x0259
000002eb: PUSH2 0x082d
000002ee: JUMP
000002ef: JUMPDEST
000002f0: PUSH2 0x02f7
000002f3: PUSH2 0x0851
000002f6: JUMP
000002f7: JUMPDEST
000002f8: PUSH1 0x40
000002fa: DUP1
000002fb: MLOAD
000002fc: PUSH1 0xff
000002fe: SWAP1
000002ff: SWAP3
00000300: AND
00000301: DUP3
00000302: MSTORE
00000303: MLOAD
00000304: SWAP1
00000305: DUP2
00000306: SWAP1
00000307: SUB
00000308: PUSH1 0x20
0000030a: ADD
0000030b: SWAP1
0000030c: RETURN
0000030d: JUMPDEST
0000030e: PUSH2 0x0259
00000311: PUSH2 0x085a
00000314: JUMP
00000315: JUMPDEST
00000316: PUSH2 0x034e
00000319: PUSH1 0x04
0000031b: DUP1
0000031c: CALLDATASIZE
0000031d: SUB
0000031e: PUSH1 0x40
00000320: DUP2
00000321: LT
00000322: ISZERO
00000323: PUSH2 0x032b
00000326: JUMPI
00000327: PUSH1 0x00
00000329: DUP1
0000032a: REVERT
0000032b: JUMPDEST
0000032c: POP
0000032d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000342: DUP2
00000343: CALLDATALOAD
00000344: AND
00000345: SWAP1
00000346: PUSH1 0x20
00000348: ADD
00000349: CALLDATALOAD
0000034a: PUSH2 0x0860
0000034d: JUMP
0000034e: JUMPDEST
0000034f: STOP
00000350: JUMPDEST
00000351: PUSH2 0x034e
00000354: PUSH1 0x04
00000356: DUP1
00000357: CALLDATASIZE
00000358: SUB
00000359: PUSH1 0x20
0000035b: DUP2
0000035c: LT
0000035d: ISZERO
0000035e: PUSH2 0x0366
00000361: JUMPI
00000362: PUSH1 0x00
00000364: DUP1
00000365: REVERT
00000366: JUMPDEST
00000367: POP
00000368: CALLDATALOAD
00000369: PUSH2 0x0b54
0000036c: JUMP
0000036d: JUMPDEST
0000036e: PUSH2 0x0259
00000371: PUSH1 0x04
00000373: DUP1
00000374: CALLDATASIZE
00000375: SUB
00000376: PUSH1 0x40
00000378: DUP2
00000379: LT
0000037a: ISZERO
0000037b: PUSH2 0x0383
0000037e: JUMPI
0000037f: PUSH1 0x00
00000381: DUP1
00000382: REVERT
00000383: JUMPDEST
00000384: POP
00000385: DUP1
00000386: CALLDATALOAD
00000387: SWAP1
00000388: PUSH1 0x20
0000038a: ADD
0000038b: CALLDATALOAD
0000038c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003a1: AND
000003a2: PUSH2 0x0b98
000003a5: JUMP
000003a6: JUMPDEST
000003a7: PUSH2 0x0259
000003aa: PUSH1 0x04
000003ac: DUP1
000003ad: CALLDATASIZE
000003ae: SUB
000003af: PUSH1 0x20
000003b1: DUP2
000003b2: LT
000003b3: ISZERO
000003b4: PUSH2 0x03bc
000003b7: JUMPI
000003b8: PUSH1 0x00
000003ba: DUP1
000003bb: REVERT
000003bc: JUMPDEST
000003bd: POP
000003be: CALLDATALOAD
000003bf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000003d4: AND
000003d5: PUSH2 0x0c74
000003d8: JUMP
000003d9: JUMPDEST
000003da: PUSH2 0x034e
000003dd: PUSH1 0x04
000003df: DUP1
000003e0: CALLDATASIZE
000003e1: SUB
000003e2: PUSH1 0x40
000003e4: DUP2
000003e5: LT
000003e6: ISZERO
000003e7: PUSH2 0x03ef
000003ea: JUMPI
000003eb: PUSH1 0x00
000003ed: DUP1
000003ee: REVERT
000003ef: JUMPDEST
000003f0: POP
000003f1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000406: DUP2
00000407: CALLDATALOAD
00000408: AND
00000409: SWAP1
0000040a: PUSH1 0x20
0000040c: ADD
0000040d: CALLDATALOAD
0000040e: PUSH2 0x0c86
00000411: JUMP
00000412: JUMPDEST
00000413: PUSH2 0x0259
00000416: PUSH1 0x04
00000418: DUP1
00000419: CALLDATASIZE
0000041a: SUB
0000041b: PUSH1 0x20
0000041d: DUP2
0000041e: LT
0000041f: ISZERO
00000420: PUSH2 0x0428
00000423: JUMPI
00000424: PUSH1 0x00
00000426: DUP1
00000427: REVERT
00000428: JUMPDEST
00000429: POP
0000042a: CALLDATALOAD
0000042b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000440: AND
00000441: PUSH2 0x0f7a
00000444: JUMP
00000445: JUMPDEST
00000446: PUSH2 0x018f
00000449: PUSH2 0x0f8c
0000044c: JUMP
0000044d: JUMPDEST
0000044e: PUSH2 0x023d
00000451: PUSH1 0x04
00000453: DUP1
00000454: CALLDATASIZE
00000455: SUB
00000456: PUSH1 0x40
00000458: DUP2
00000459: LT
0000045a: ISZERO
0000045b: PUSH2 0x0463
0000045e: JUMPI
0000045f: PUSH1 0x00
00000461: DUP1
00000462: REVERT
00000463: JUMPDEST
00000464: POP
00000465: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000047a: DUP2
0000047b: CALLDATALOAD
0000047c: AND
0000047d: SWAP1
0000047e: PUSH1 0x20
00000480: ADD
00000481: CALLDATALOAD
00000482: PUSH2 0x1004
00000485: JUMP
00000486: JUMPDEST
00000487: PUSH2 0x048e
0000048a: PUSH2 0x1011
0000048d: JUMP
0000048e: JUMPDEST
0000048f: PUSH1 0x40
00000491: DUP1
00000492: MLOAD
00000493: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004a8: SWAP1
000004a9: SWAP3
000004aa: AND
000004ab: DUP3
000004ac: MSTORE
000004ad: MLOAD
000004ae: SWAP1
000004af: DUP2
000004b0: SWAP1
000004b1: SUB
000004b2: PUSH1 0x20
000004b4: ADD
000004b5: SWAP1
000004b6: RETURN
000004b7: JUMPDEST
000004b8: PUSH2 0x034e
000004bb: PUSH1 0x04
000004bd: DUP1
000004be: CALLDATASIZE
000004bf: SUB
000004c0: PUSH1 0xe0
000004c2: DUP2
000004c3: LT
000004c4: ISZERO
000004c5: PUSH2 0x04cd
000004c8: JUMPI
000004c9: PUSH1 0x00
000004cb: DUP1
000004cc: REVERT
000004cd: JUMPDEST
000004ce: POP
000004cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000004e4: DUP2
000004e5: CALLDATALOAD
000004e6: DUP2
000004e7: AND
000004e8: SWAP2
000004e9: PUSH1 0x20
000004eb: DUP2
000004ec: ADD
000004ed: CALLDATALOAD
000004ee: SWAP1
000004ef: SWAP2
000004f0: AND
000004f1: SWAP1
000004f2: PUSH1 0x40
000004f4: DUP2
000004f5: ADD
000004f6: CALLDATALOAD
000004f7: SWAP1
000004f8: PUSH1 0x60
000004fa: DUP2
000004fb: ADD
000004fc: CALLDATALOAD
000004fd: SWAP1
000004fe: PUSH1 0xff
00000500: PUSH1 0x80
00000502: DUP3
00000503: ADD
00000504: CALLDATALOAD
00000505: AND
00000506: SWAP1
00000507: PUSH1 0xa0
00000509: DUP2
0000050a: ADD
0000050b: CALLDATALOAD
0000050c: SWAP1
0000050d: PUSH1 0xc0
0000050f: ADD
00000510: CALLDATALOAD
00000511: PUSH2 0x102d
00000514: JUMP
00000515: JUMPDEST
00000516: PUSH2 0x0259
00000519: PUSH1 0x04
0000051b: DUP1
0000051c: CALLDATASIZE
0000051d: SUB
0000051e: PUSH1 0x40
00000520: DUP2
00000521: LT
00000522: ISZERO
00000523: PUSH2 0x052b
00000526: JUMPI
00000527: PUSH1 0x00
00000529: DUP1
0000052a: REVERT
0000052b: JUMPDEST
0000052c: POP
0000052d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000542: DUP2
00000543: CALLDATALOAD
00000544: DUP2
00000545: AND
00000546: SWAP2
00000547: PUSH1 0x20
00000549: ADD
0000054a: CALLDATALOAD
0000054b: AND
0000054c: PUSH2 0x12f9
0000054f: JUMP
00000550: JUMPDEST
00000551: PUSH2 0x0259
00000554: PUSH1 0x04
00000556: DUP1
00000557: CALLDATASIZE
00000558: SUB
00000559: PUSH1 0x20
0000055b: DUP2
0000055c: LT
0000055d: ISZERO
0000055e: PUSH2 0x0566
00000561: JUMPI
00000562: PUSH1 0x00
00000564: DUP1
00000565: REVERT
00000566: JUMPDEST
00000567: POP
00000568: CALLDATALOAD
00000569: PUSH2 0x1316
0000056c: JUMP
0000056d: JUMPDEST
0000056e: PUSH2 0x0259
00000571: PUSH1 0x04
00000573: DUP1
00000574: CALLDATASIZE
00000575: SUB
00000576: PUSH1 0x20
00000578: DUP2
00000579: LT
0000057a: ISZERO
0000057b: PUSH2 0x0583
0000057e: JUMPI
0000057f: PUSH1 0x00
00000581: DUP1
00000582: REVERT
00000583: JUMPDEST
00000584: POP
00000585: CALLDATALOAD
00000586: PUSH2 0x1322
00000589: JUMP
0000058a: JUMPDEST
0000058b: PUSH2 0x048e
0000058e: PUSH2 0x132e
00000591: JUMP
00000592: JUMPDEST
00000593: PUSH1 0x00
00000595: DUP1
00000596: SLOAD
00000597: PUSH1 0x40
00000599: DUP1
0000059a: MLOAD
0000059b: PUSH1 0x20
0000059d: PUSH1 0x02
0000059f: PUSH1 0x01
000005a1: DUP6
000005a2: AND
000005a3: ISZERO
000005a4: PUSH2 0x0100
000005a7: MUL
000005a8: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000005c9: ADD
000005ca: SWAP1
000005cb: SWAP5
000005cc: AND
000005cd: SWAP4
000005ce: SWAP1
000005cf: SWAP4
000005d0: DIV
000005d1: PUSH1 0x1f
000005d3: DUP2
000005d4: ADD
000005d5: DUP5
000005d6: SWAP1
000005d7: DIV
000005d8: DUP5
000005d9: MUL
000005da: DUP3
000005db: ADD
000005dc: DUP5
000005dd: ADD
000005de: SWAP1
000005df: SWAP3
000005e0: MSTORE
000005e1: DUP2
000005e2: DUP2
000005e3: MSTORE
000005e4: SWAP3
000005e5: SWAP2
000005e6: DUP4
000005e7: ADD
000005e8: DUP3
000005e9: DUP3
000005ea: DUP1
000005eb: ISZERO
000005ec: PUSH2 0x0636
000005ef: JUMPI
000005f0: DUP1
000005f1: PUSH1 0x1f
000005f3: LT
000005f4: PUSH2 0x060b
000005f7: JUMPI
000005f8: PUSH2 0x0100
000005fb: DUP1
000005fc: DUP4
000005fd: SLOAD
000005fe: DIV
000005ff: MUL
00000600: DUP4
00000601: MSTORE
00000602: SWAP2
00000603: PUSH1 0x20
00000605: ADD
00000606: SWAP2
00000607: PUSH2 0x0636
0000060a: JUMP
0000060b: JUMPDEST
0000060c: DUP3
0000060d: ADD
0000060e: SWAP2
0000060f: SWAP1
00000610: PUSH1 0x00
00000612: MSTORE
00000613: PUSH1 0x20
00000615: PUSH1 0x00
00000617: KECCAK256
00000618: SWAP1
00000619: JUMPDEST
0000061a: DUP2
0000061b: SLOAD
0000061c: DUP2
0000061d: MSTORE
0000061e: SWAP1
0000061f: PUSH1 0x01
00000621: ADD
00000622: SWAP1
00000623: PUSH1 0x20
00000625: ADD
00000626: DUP1
00000627: DUP4
00000628: GT
00000629: PUSH2 0x0619
0000062c: JUMPI
0000062d: DUP3
0000062e: SWAP1
0000062f: SUB
00000630: PUSH1 0x1f
00000632: AND
00000633: DUP3
00000634: ADD
00000635: SWAP2
00000636: JUMPDEST
00000637: POP
00000638: POP
00000639: POP
0000063a: POP
0000063b: POP
0000063c: DUP2
0000063d: JUMP
0000063e: JUMPDEST
0000063f: PUSH1 0x00
00000641: PUSH2 0x064b
00000644: CALLER
00000645: DUP5
00000646: DUP5
00000647: PUSH2 0x134a
0000064a: JUMP
0000064b: JUMPDEST
0000064c: POP
0000064d: PUSH1 0x01
0000064f: JUMPDEST
00000650: SWAP3
00000651: SWAP2
00000652: POP
00000653: POP
00000654: JUMP
00000655: JUMPDEST
00000656: PUSH1 0x03
00000658: SLOAD
00000659: DUP2
0000065a: JUMP
0000065b: JUMPDEST
0000065c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000671: DUP4
00000672: AND
00000673: PUSH1 0x00
00000675: SWAP1
00000676: DUP2
00000677: MSTORE
00000678: PUSH1 0x05
0000067a: PUSH1 0x20
0000067c: SWAP1
0000067d: DUP2
0000067e: MSTORE
0000067f: PUSH1 0x40
00000681: DUP1
00000682: DUP4
00000683: KECCAK256
00000684: CALLER
00000685: DUP5
00000686: MSTORE
00000687: SWAP1
00000688: SWAP2
00000689: MSTORE
0000068a: DUP2
0000068b: KECCAK256
0000068c: SLOAD
0000068d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000006ae: EQ
000006af: PUSH2 0x0725
000006b2: JUMPI
000006b3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000006c8: DUP5
000006c9: AND
000006ca: PUSH1 0x00
000006cc: SWAP1
000006cd: DUP2
000006ce: MSTORE
000006cf: PUSH1 0x05
000006d1: PUSH1 0x20
000006d3: SWAP1
000006d4: DUP2
000006d5: MSTORE
000006d6: PUSH1 0x40
000006d8: DUP1
000006d9: DUP4
000006da: KECCAK256
000006db: CALLER
000006dc: DUP5
000006dd: MSTORE
000006de: SWAP1
000006df: SWAP2
000006e0: MSTORE
000006e1: SWAP1
000006e2: KECCAK256
000006e3: SLOAD
000006e4: PUSH2 0x06f3
000006e7: SWAP1
000006e8: DUP4
000006e9: PUSH4 0xffffffff
000006ee: PUSH2 0x13b9
000006f1: AND
000006f2: JUMP
000006f3: JUMPDEST
000006f4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000709: DUP6
0000070a: AND
0000070b: PUSH1 0x00
0000070d: SWAP1
0000070e: DUP2
0000070f: MSTORE
00000710: PUSH1 0x05
00000712: PUSH1 0x20
00000714: SWAP1
00000715: DUP2
00000716: MSTORE
00000717: PUSH1 0x40
00000719: DUP1
0000071a: DUP4
0000071b: KECCAK256
0000071c: CALLER
0000071d: DUP5
0000071e: MSTORE
0000071f: SWAP1
00000720: SWAP2
00000721: MSTORE
00000722: SWAP1
00000723: KECCAK256
00000724: SSTORE
00000725: JUMPDEST
00000726: PUSH2 0x0730
00000729: DUP5
0000072a: DUP5
0000072b: DUP5
0000072c: PUSH2 0x142b
0000072f: JUMP
00000730: JUMPDEST
00000731: POP
00000732: PUSH1 0x01
00000734: SWAP4
00000735: SWAP3
00000736: POP
00000737: POP
00000738: POP
00000739: JUMP
0000073a: JUMPDEST
0000073b: PUSH1 0x00
0000073d: DUP1
0000073e: DUP4
0000073f: GT
00000740: PUSH2 0x07aa
00000743: JUMPI
00000744: PUSH1 0x40
00000746: DUP1
00000747: MLOAD
00000748: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000769: DUP2
0000076a: MSTORE
0000076b: PUSH1 0x20
0000076d: PUSH1 0x04
0000076f: DUP3
00000770: ADD
00000771: MSTORE
00000772: PUSH1 0x1a
00000774: PUSH1 0x24
00000776: DUP3
00000777: ADD
00000778: MSTORE
00000779: PUSH32 0x4665773a2063616e27742077726170207a65726f20746f6b656e000000000000
0000079a: PUSH1 0x44
0000079c: DUP3
0000079d: ADD
0000079e: MSTORE
0000079f: SWAP1
000007a0: MLOAD
000007a1: SWAP1
000007a2: DUP2
000007a3: SWAP1
000007a4: SUB
000007a5: PUSH1 0x64
000007a7: ADD
000007a8: SWAP1
000007a9: REVERT
000007aa: JUMPDEST
000007ab: PUSH1 0x09
000007ad: SLOAD
000007ae: PUSH2 0x07cf
000007b1: SWAP1
000007b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007c7: AND
000007c8: CALLER
000007c9: ADDRESS
000007ca: DUP7
000007cb: PUSH2 0x150c
000007ce: JUMP
000007cf: JUMPDEST
000007d0: PUSH2 0x07d9
000007d3: DUP3
000007d4: DUP5
000007d5: PUSH2 0x16dc
000007d8: JUMP
000007d9: JUMPDEST
000007da: PUSH1 0x40
000007dc: DUP1
000007dd: MLOAD
000007de: DUP5
000007df: DUP2
000007e0: MSTORE
000007e1: SWAP1
000007e2: MLOAD
000007e3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007f8: DUP5
000007f9: AND
000007fa: SWAP2
000007fb: CALLER
000007fc: SWAP2
000007fd: PUSH32 0xeb5580a0908e96b78bdcb1a3c5638793b491a6073c3ff56061a069cb20581773
0000081e: SWAP2
0000081f: DUP2
00000820: SWAP1
00000821: SUB
00000822: PUSH1 0x20
00000824: ADD
00000825: SWAP1
00000826: LOG3
00000827: POP
00000828: SWAP1
00000829: SWAP2
0000082a: SWAP1
0000082b: POP
0000082c: JUMP
0000082d: JUMPDEST
0000082e: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
0000084f: DUP2
00000850: JUMP
00000851: JUMPDEST
00000852: PUSH1 0x02
00000854: SLOAD
00000855: PUSH1 0xff
00000857: AND
00000858: DUP2
00000859: JUMP
0000085a: JUMPDEST
0000085b: PUSH1 0x06
0000085d: SLOAD
0000085e: DUP2
0000085f: JUMP
00000860: JUMPDEST
00000861: PUSH1 0x08
00000863: PUSH1 0x00
00000865: SWAP1
00000866: SLOAD
00000867: SWAP1
00000868: PUSH2 0x0100
0000086b: EXP
0000086c: SWAP1
0000086d: DIV
0000086e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000883: AND
00000884: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000899: AND
0000089a: PUSH4 0xf2f4eb26
0000089f: PUSH1 0x40
000008a1: MLOAD
000008a2: DUP2
000008a3: PUSH4 0xffffffff
000008a8: AND
000008a9: PUSH1 0xe0
000008ab: SHL
000008ac: DUP2
000008ad: MSTORE
000008ae: PUSH1 0x04
000008b0: ADD
000008b1: PUSH1 0x20
000008b3: PUSH1 0x40
000008b5: MLOAD
000008b6: DUP1
000008b7: DUP4
000008b8: SUB
000008b9: DUP2
000008ba: DUP7
000008bb: DUP1
000008bc: EXTCODESIZE
000008bd: ISZERO
000008be: DUP1
000008bf: ISZERO
000008c0: PUSH2 0x08c8
000008c3: JUMPI
000008c4: PUSH1 0x00
000008c6: DUP1
000008c7: REVERT
000008c8: JUMPDEST
000008c9: POP
000008ca: GAS
000008cb: STATICCALL
000008cc: ISZERO
000008cd: DUP1
000008ce: ISZERO
000008cf: PUSH2 0x08dc
000008d2: JUMPI
000008d3: RETURNDATASIZE
000008d4: PUSH1 0x00
000008d6: DUP1
000008d7: RETURNDATACOPY
000008d8: RETURNDATASIZE
000008d9: PUSH1 0x00
000008db: REVERT
000008dc: JUMPDEST
000008dd: POP
000008de: POP
000008df: POP
000008e0: POP
000008e1: PUSH1 0x40
000008e3: MLOAD
000008e4: RETURNDATASIZE
000008e5: PUSH1 0x20
000008e7: DUP2
000008e8: LT
000008e9: ISZERO
000008ea: PUSH2 0x08f2
000008ed: JUMPI
000008ee: PUSH1 0x00
000008f0: DUP1
000008f1: REVERT
000008f2: JUMPDEST
000008f3: POP
000008f4: MLOAD
000008f5: PUSH1 0x40
000008f7: DUP1
000008f8: MLOAD
000008f9: PUSH32 0xaa271e1a00000000000000000000000000000000000000000000000000000000
0000091a: DUP2
0000091b: MSTORE
0000091c: CALLER
0000091d: PUSH1 0x04
0000091f: DUP3
00000920: ADD
00000921: MSTORE
00000922: SWAP1
00000923: MLOAD
00000924: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000939: SWAP1
0000093a: SWAP3
0000093b: AND
0000093c: SWAP2
0000093d: PUSH4 0xaa271e1a
00000942: SWAP2
00000943: PUSH1 0x24
00000945: DUP1
00000946: DUP3
00000947: ADD
00000948: SWAP3
00000949: PUSH1 0x20
0000094b: SWAP3
0000094c: SWAP1
0000094d: SWAP2
0000094e: SWAP1
0000094f: DUP3
00000950: SWAP1
00000951: SUB
00000952: ADD
00000953: DUP2
00000954: DUP7
00000955: DUP1
00000956: EXTCODESIZE
00000957: ISZERO
00000958: DUP1
00000959: ISZERO
0000095a: PUSH2 0x0962
0000095d: JUMPI
0000095e: PUSH1 0x00
00000960: DUP1
00000961: REVERT
00000962: JUMPDEST
00000963: POP
00000964: GAS
00000965: STATICCALL
00000966: ISZERO
00000967: DUP1
00000968: ISZERO
00000969: PUSH2 0x0976
0000096c: JUMPI
0000096d: RETURNDATASIZE
0000096e: PUSH1 0x00
00000970: DUP1
00000971: RETURNDATACOPY
00000972: RETURNDATASIZE
00000973: PUSH1 0x00
00000975: REVERT
00000976: JUMPDEST
00000977: POP
00000978: POP
00000979: POP
0000097a: POP
0000097b: PUSH1 0x40
0000097d: MLOAD
0000097e: RETURNDATASIZE
0000097f: PUSH1 0x20
00000981: DUP2
00000982: LT
00000983: ISZERO
00000984: PUSH2 0x098c
00000987: JUMPI
00000988: PUSH1 0x00
0000098a: DUP1
0000098b: REVERT
0000098c: JUMPDEST
0000098d: POP
0000098e: MLOAD
0000098f: PUSH2 0x09f9
00000992: JUMPI
00000993: PUSH1 0x40
00000995: DUP1
00000996: MLOAD
00000997: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000009b8: DUP2
000009b9: MSTORE
000009ba: PUSH1 0x20
000009bc: PUSH1 0x04
000009be: DUP3
000009bf: ADD
000009c0: MSTORE
000009c1: PUSH1 0x1f
000009c3: PUSH1 0x24
000009c5: DUP3
000009c6: ADD
000009c7: MSTORE
000009c8: PUSH32 0x436f72655265663a2043616c6c6572206973206e6f742061206d696e74657200
000009e9: PUSH1 0x44
000009eb: DUP3
000009ec: ADD
000009ed: MSTORE
000009ee: SWAP1
000009ef: MLOAD
000009f0: SWAP1
000009f1: DUP2
000009f2: SWAP1
000009f3: SUB
000009f4: PUSH1 0x64
000009f6: ADD
000009f7: SWAP1
000009f8: REVERT
000009f9: JUMPDEST
000009fa: PUSH1 0x08
000009fc: PUSH1 0x00
000009fe: SWAP1
000009ff: SLOAD
00000a00: SWAP1
00000a01: PUSH2 0x0100
00000a04: EXP
00000a05: SWAP1
00000a06: DIV
00000a07: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a1c: AND
00000a1d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a32: AND
00000a33: PUSH4 0x5c975abb
00000a38: PUSH1 0x40
00000a3a: MLOAD
00000a3b: DUP2
00000a3c: PUSH4 0xffffffff
00000a41: AND
00000a42: PUSH1 0xe0
00000a44: SHL
00000a45: DUP2
00000a46: MSTORE
00000a47: PUSH1 0x04
00000a49: ADD
00000a4a: PUSH1 0x20
00000a4c: PUSH1 0x40
00000a4e: MLOAD
00000a4f: DUP1
00000a50: DUP4
00000a51: SUB
00000a52: DUP2
00000a53: DUP7
00000a54: DUP1
00000a55: EXTCODESIZE
00000a56: ISZERO
00000a57: DUP1
00000a58: ISZERO
00000a59: PUSH2 0x0a61
00000a5c: JUMPI
00000a5d: PUSH1 0x00
00000a5f: DUP1
00000a60: REVERT
00000a61: JUMPDEST
00000a62: POP
00000a63: GAS
00000a64: STATICCALL
00000a65: ISZERO
00000a66: DUP1
00000a67: ISZERO
00000a68: PUSH2 0x0a75
00000a6b: JUMPI
00000a6c: RETURNDATASIZE
00000a6d: PUSH1 0x00
00000a6f: DUP1
00000a70: RETURNDATACOPY
00000a71: RETURNDATASIZE
00000a72: PUSH1 0x00
00000a74: REVERT
00000a75: JUMPDEST
00000a76: POP
00000a77: POP
00000a78: POP
00000a79: POP
00000a7a: PUSH1 0x40
00000a7c: MLOAD
00000a7d: RETURNDATASIZE
00000a7e: PUSH1 0x20
00000a80: DUP2
00000a81: LT
00000a82: ISZERO
00000a83: PUSH2 0x0a8b
00000a86: JUMPI
00000a87: PUSH1 0x00
00000a89: DUP1
00000a8a: REVERT
00000a8b: JUMPDEST
00000a8c: POP
00000a8d: MLOAD
00000a8e: ISZERO
00000a8f: PUSH2 0x0af9
00000a92: JUMPI
00000a93: PUSH1 0x40
00000a95: DUP1
00000a96: MLOAD
00000a97: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000ab8: DUP2
00000ab9: MSTORE
00000aba: PUSH1 0x20
00000abc: PUSH1 0x04
00000abe: DUP3
00000abf: ADD
00000ac0: MSTORE
00000ac1: PUSH1 0x19
00000ac3: PUSH1 0x24
00000ac5: DUP3
00000ac6: ADD
00000ac7: MSTORE
00000ac8: PUSH32 0x436f72655265663a2043616c6c65722069732070617573656400000000000000
00000ae9: PUSH1 0x44
00000aeb: DUP3
00000aec: ADD
00000aed: MSTORE
00000aee: SWAP1
00000aef: MLOAD
00000af0: SWAP1
00000af1: DUP2
00000af2: SWAP1
00000af3: SUB
00000af4: PUSH1 0x64
00000af6: ADD
00000af7: SWAP1
00000af8: REVERT
00000af9: JUMPDEST
00000afa: PUSH2 0x0b03
00000afd: DUP3
00000afe: DUP3
00000aff: PUSH2 0x16dc
00000b02: JUMP
00000b03: JUMPDEST
00000b04: PUSH1 0x40
00000b06: DUP1
00000b07: MLOAD
00000b08: DUP3
00000b09: DUP2
00000b0a: MSTORE
00000b0b: SWAP1
00000b0c: MLOAD
00000b0d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000b22: DUP5
00000b23: AND
00000b24: SWAP2
00000b25: CALLER
00000b26: SWAP2
00000b27: PUSH32 0xbcad3d7d3dfccb90d49c6063bf70f828901fefc88937d90af74e58e6e55bc39d
00000b48: SWAP2
00000b49: DUP2
00000b4a: SWAP1
00000b4b: SUB
00000b4c: PUSH1 0x20
00000b4e: ADD
00000b4f: SWAP1
00000b50: LOG3
00000b51: POP
00000b52: POP
00000b53: JUMP
00000b54: JUMPDEST
00000b55: PUSH2 0x0b5e
00000b58: CALLER
00000b59: DUP3
00000b5a: PUSH2 0x178d
00000b5d: JUMP
00000b5e: JUMPDEST
00000b5f: PUSH1 0x40
00000b61: DUP1
00000b62: MLOAD
00000b63: DUP3
00000b64: DUP2
00000b65: MSTORE
00000b66: SWAP1
00000b67: MLOAD
00000b68: CALLER
00000b69: SWAP2
00000b6a: DUP3
00000b6b: SWAP2
00000b6c: PUSH32 0xdbdf9b8e4b75e75b162d151ec8fc7f0561cabab5fcccfa2600be62223e4300c4
00000b8d: SWAP2
00000b8e: DUP2
00000b8f: SWAP1
00000b90: SUB
00000b91: PUSH1 0x20
00000b93: ADD
00000b94: SWAP1
00000b95: LOG3
00000b96: POP
00000b97: JUMP
00000b98: JUMPDEST
00000b99: PUSH1 0x00
00000b9b: DUP1
00000b9c: DUP4
00000b9d: GT
00000b9e: PUSH2 0x0bf2
00000ba1: JUMPI
00000ba2: PUSH1 0x40
00000ba4: MLOAD
00000ba5: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000bc6: DUP2
00000bc7: MSTORE
00000bc8: PUSH1 0x04
00000bca: ADD
00000bcb: DUP1
00000bcc: DUP1
00000bcd: PUSH1 0x20
00000bcf: ADD
00000bd0: DUP3
00000bd1: DUP2
00000bd2: SUB
00000bd3: DUP3
00000bd4: MSTORE
00000bd5: PUSH1 0x23
00000bd7: DUP2
00000bd8: MSTORE
00000bd9: PUSH1 0x20
00000bdb: ADD
00000bdc: DUP1
00000bdd: PUSH2 0x1abc
00000be0: PUSH1 0x23
00000be2: SWAP2
00000be3: CODECOPY
00000be4: PUSH1 0x40
00000be6: ADD
00000be7: SWAP2
00000be8: POP
00000be9: POP
00000bea: PUSH1 0x40
00000bec: MLOAD
00000bed: DUP1
00000bee: SWAP2
00000bef: SUB
00000bf0: SWAP1
00000bf1: REVERT
00000bf2: JUMPDEST
00000bf3: PUSH2 0x0bfc
00000bf6: CALLER
00000bf7: DUP5
00000bf8: PUSH2 0x178d
00000bfb: JUMP
00000bfc: JUMPDEST
00000bfd: PUSH1 0x09
00000bff: SLOAD
00000c00: PUSH2 0x0c20
00000c03: SWAP1
00000c04: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c19: AND
00000c1a: DUP4
00000c1b: DUP6
00000c1c: PUSH2 0x1851
00000c1f: JUMP
00000c20: JUMPDEST
00000c21: PUSH1 0x40
00000c23: DUP1
00000c24: MLOAD
00000c25: DUP5
00000c26: DUP2
00000c27: MSTORE
00000c28: SWAP1
00000c29: MLOAD
00000c2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000c3f: DUP5
00000c40: AND
00000c41: SWAP2
00000c42: CALLER
00000c43: SWAP2
00000c44: PUSH32 0x12d6424519838e57637c6db9df31af32d7926ff0a53dd37007c191d0fe302818
00000c65: SWAP2
00000c66: DUP2
00000c67: SWAP1
00000c68: SUB
00000c69: PUSH1 0x20
00000c6b: ADD
00000c6c: SWAP1
00000c6d: LOG3
00000c6e: POP
00000c6f: SWAP1
00000c70: SWAP2
00000c71: SWAP1
00000c72: POP
00000c73: JUMP
00000c74: JUMPDEST
00000c75: PUSH1 0x04
00000c77: PUSH1 0x20
00000c79: MSTORE
00000c7a: PUSH1 0x00
00000c7c: SWAP1
00000c7d: DUP2
00000c7e: MSTORE
00000c7f: PUSH1 0x40
00000c81: SWAP1
00000c82: KECCAK256
00000c83: SLOAD
00000c84: DUP2
00000c85: JUMP
00000c86: JUMPDEST
00000c87: PUSH1 0x08
00000c89: PUSH1 0x00
00000c8b: SWAP1
00000c8c: SLOAD
00000c8d: SWAP1
00000c8e: PUSH2 0x0100
00000c91: EXP
00000c92: SWAP1
00000c93: DIV
00000c94: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000ca9: AND
00000caa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000cbf: AND
00000cc0: PUSH4 0xf2f4eb26
00000cc5: PUSH1 0x40
00000cc7: MLOAD
00000cc8: DUP2
00000cc9: PUSH4 0xffffffff
00000cce: AND
00000ccf: PUSH1 0xe0
00000cd1: SHL
00000cd2: DUP2
00000cd3: MSTORE
00000cd4: PUSH1 0x04
00000cd6: ADD
00000cd7: PUSH1 0x20
00000cd9: PUSH1 0x40
00000cdb: MLOAD
00000cdc: DUP1
00000cdd: DUP4
00000cde: SUB
00000cdf: DUP2
00000ce0: DUP7
00000ce1: DUP1
00000ce2: EXTCODESIZE
00000ce3: ISZERO
00000ce4: DUP1
00000ce5: ISZERO
00000ce6: PUSH2 0x0cee
00000ce9: JUMPI
00000cea: PUSH1 0x00
00000cec: DUP1
00000ced: REVERT
00000cee: JUMPDEST
00000cef: POP
00000cf0: GAS
00000cf1: STATICCALL
00000cf2: ISZERO
00000cf3: DUP1
00000cf4: ISZERO
00000cf5: PUSH2 0x0d02
00000cf8: JUMPI
00000cf9: RETURNDATASIZE
00000cfa: PUSH1 0x00
00000cfc: DUP1
00000cfd: RETURNDATACOPY
00000cfe: RETURNDATASIZE
00000cff: PUSH1 0x00
00000d01: REVERT
00000d02: JUMPDEST
00000d03: POP
00000d04: POP
00000d05: POP
00000d06: POP
00000d07: PUSH1 0x40
00000d09: MLOAD
00000d0a: RETURNDATASIZE
00000d0b: PUSH1 0x20
00000d0d: DUP2
00000d0e: LT
00000d0f: ISZERO
00000d10: PUSH2 0x0d18
00000d13: JUMPI
00000d14: PUSH1 0x00
00000d16: DUP1
00000d17: REVERT
00000d18: JUMPDEST
00000d19: POP
00000d1a: MLOAD
00000d1b: PUSH1 0x40
00000d1d: DUP1
00000d1e: MLOAD
00000d1f: PUSH32 0x4334614a00000000000000000000000000000000000000000000000000000000
00000d40: DUP2
00000d41: MSTORE
00000d42: CALLER
00000d43: PUSH1 0x04
00000d45: DUP3
00000d46: ADD
00000d47: MSTORE
00000d48: SWAP1
00000d49: MLOAD
00000d4a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d5f: SWAP1
00000d60: SWAP3
00000d61: AND
00000d62: SWAP2
00000d63: PUSH4 0x4334614a
00000d68: SWAP2
00000d69: PUSH1 0x24
00000d6b: DUP1
00000d6c: DUP3
00000d6d: ADD
00000d6e: SWAP3
00000d6f: PUSH1 0x20
00000d71: SWAP3
00000d72: SWAP1
00000d73: SWAP2
00000d74: SWAP1
00000d75: DUP3
00000d76: SWAP1
00000d77: SUB
00000d78: ADD
00000d79: DUP2
00000d7a: DUP7
00000d7b: DUP1
00000d7c: EXTCODESIZE
00000d7d: ISZERO
00000d7e: DUP1
00000d7f: ISZERO
00000d80: PUSH2 0x0d88
00000d83: JUMPI
00000d84: PUSH1 0x00
00000d86: DUP1
00000d87: REVERT
00000d88: JUMPDEST
00000d89: POP
00000d8a: GAS
00000d8b: STATICCALL
00000d8c: ISZERO
00000d8d: DUP1
00000d8e: ISZERO
00000d8f: PUSH2 0x0d9c
00000d92: JUMPI
00000d93: RETURNDATASIZE
00000d94: PUSH1 0x00
00000d96: DUP1
00000d97: RETURNDATACOPY
00000d98: RETURNDATASIZE
00000d99: PUSH1 0x00
00000d9b: REVERT
00000d9c: JUMPDEST
00000d9d: POP
00000d9e: POP
00000d9f: POP
00000da0: POP
00000da1: PUSH1 0x40
00000da3: MLOAD
00000da4: RETURNDATASIZE
00000da5: PUSH1 0x20
00000da7: DUP2
00000da8: LT
00000da9: ISZERO
00000daa: PUSH2 0x0db2
00000dad: JUMPI
00000dae: PUSH1 0x00
00000db0: DUP1
00000db1: REVERT
00000db2: JUMPDEST
00000db3: POP
00000db4: MLOAD
00000db5: PUSH2 0x0e1f
00000db8: JUMPI
00000db9: PUSH1 0x40
00000dbb: DUP1
00000dbc: MLOAD
00000dbd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000dde: DUP2
00000ddf: MSTORE
00000de0: PUSH1 0x20
00000de2: PUSH1 0x04
00000de4: DUP3
00000de5: ADD
00000de6: MSTORE
00000de7: PUSH1 0x1f
00000de9: PUSH1 0x24
00000deb: DUP3
00000dec: ADD
00000ded: MSTORE
00000dee: PUSH32 0x436f72655265663a2043616c6c6572206973206e6f742061206275726e657200
00000e0f: PUSH1 0x44
00000e11: DUP3
00000e12: ADD
00000e13: MSTORE
00000e14: SWAP1
00000e15: MLOAD
00000e16: SWAP1
00000e17: DUP2
00000e18: SWAP1
00000e19: SUB
00000e1a: PUSH1 0x64
00000e1c: ADD
00000e1d: SWAP1
00000e1e: REVERT
00000e1f: JUMPDEST
00000e20: PUSH1 0x08
00000e22: PUSH1 0x00
00000e24: SWAP1
00000e25: SLOAD
00000e26: SWAP1
00000e27: PUSH2 0x0100
00000e2a: EXP
00000e2b: SWAP1
00000e2c: DIV
00000e2d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e42: AND
00000e43: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000e58: AND
00000e59: PUSH4 0x5c975abb
00000e5e: PUSH1 0x40
00000e60: MLOAD
00000e61: DUP2
00000e62: PUSH4 0xffffffff
00000e67: AND
00000e68: PUSH1 0xe0
00000e6a: SHL
00000e6b: DUP2
00000e6c: MSTORE
00000e6d: PUSH1 0x04
00000e6f: ADD
00000e70: PUSH1 0x20
00000e72: PUSH1 0x40
00000e74: MLOAD
00000e75: DUP1
00000e76: DUP4
00000e77: SUB
00000e78: DUP2
00000e79: DUP7
00000e7a: DUP1
00000e7b: EXTCODESIZE
00000e7c: ISZERO
00000e7d: DUP1
00000e7e: ISZERO
00000e7f: PUSH2 0x0e87
00000e82: JUMPI
00000e83: PUSH1 0x00
00000e85: DUP1
00000e86: REVERT
00000e87: JUMPDEST
00000e88: POP
00000e89: GAS
00000e8a: STATICCALL
00000e8b: ISZERO
00000e8c: DUP1
00000e8d: ISZERO
00000e8e: PUSH2 0x0e9b
00000e91: JUMPI
00000e92: RETURNDATASIZE
00000e93: PUSH1 0x00
00000e95: DUP1
00000e96: RETURNDATACOPY
00000e97: RETURNDATASIZE
00000e98: PUSH1 0x00
00000e9a: REVERT
00000e9b: JUMPDEST
00000e9c: POP
00000e9d: POP
00000e9e: POP
00000e9f: POP
00000ea0: PUSH1 0x40
00000ea2: MLOAD
00000ea3: RETURNDATASIZE
00000ea4: PUSH1 0x20
00000ea6: DUP2
00000ea7: LT
00000ea8: ISZERO
00000ea9: PUSH2 0x0eb1
00000eac: JUMPI
00000ead: PUSH1 0x00
00000eaf: DUP1
00000eb0: REVERT
00000eb1: JUMPDEST
00000eb2: POP
00000eb3: MLOAD
00000eb4: ISZERO
00000eb5: PUSH2 0x0f1f
00000eb8: JUMPI
00000eb9: PUSH1 0x40
00000ebb: DUP1
00000ebc: MLOAD
00000ebd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00000ede: DUP2
00000edf: MSTORE
00000ee0: PUSH1 0x20
00000ee2: PUSH1 0x04
00000ee4: DUP3
00000ee5: ADD
00000ee6: MSTORE
00000ee7: PUSH1 0x19
00000ee9: PUSH1 0x24
00000eeb: DUP3
00000eec: ADD
00000eed: MSTORE
00000eee: PUSH32 0x436f72655265663a2043616c6c65722069732070617573656400000000000000
00000f0f: PUSH1 0x44
00000f11: DUP3
00000f12: ADD
00000f13: MSTORE
00000f14: SWAP1
00000f15: MLOAD
00000f16: SWAP1
00000f17: DUP2
00000f18: SWAP1
00000f19: SUB
00000f1a: PUSH1 0x64
00000f1c: ADD
00000f1d: SWAP1
00000f1e: REVERT
00000f1f: JUMPDEST
00000f20: PUSH2 0x0f29
00000f23: DUP3
00000f24: DUP3
00000f25: PUSH2 0x178d
00000f28: JUMP
00000f29: JUMPDEST
00000f2a: PUSH1 0x40
00000f2c: DUP1
00000f2d: MLOAD
00000f2e: DUP3
00000f2f: DUP2
00000f30: MSTORE
00000f31: SWAP1
00000f32: MLOAD
00000f33: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000f48: DUP5
00000f49: AND
00000f4a: SWAP2
00000f4b: CALLER
00000f4c: SWAP2
00000f4d: PUSH32 0xdbdf9b8e4b75e75b162d151ec8fc7f0561cabab5fcccfa2600be62223e4300c4
00000f6e: SWAP2
00000f6f: DUP2
00000f70: SWAP1
00000f71: SUB
00000f72: PUSH1 0x20
00000f74: ADD
00000f75: SWAP1
00000f76: LOG3
00000f77: POP
00000f78: POP
00000f79: JUMP
00000f7a: JUMPDEST
00000f7b: PUSH1 0x07
00000f7d: PUSH1 0x20
00000f7f: MSTORE
00000f80: PUSH1 0x00
00000f82: SWAP1
00000f83: DUP2
00000f84: MSTORE
00000f85: PUSH1 0x40
00000f87: SWAP1
00000f88: KECCAK256
00000f89: SLOAD
00000f8a: DUP2
00000f8b: JUMP
00000f8c: JUMPDEST
00000f8d: PUSH1 0x01
00000f8f: DUP1
00000f90: SLOAD
00000f91: PUSH1 0x40
00000f93: DUP1
00000f94: MLOAD
00000f95: PUSH1 0x20
00000f97: PUSH1 0x02
00000f99: DUP5
00000f9a: DUP7
00000f9b: AND
00000f9c: ISZERO
00000f9d: PUSH2 0x0100
00000fa0: MUL
00000fa1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00000fc2: ADD
00000fc3: SWAP1
00000fc4: SWAP5
00000fc5: AND
00000fc6: SWAP4
00000fc7: SWAP1
00000fc8: SWAP4
00000fc9: DIV
00000fca: PUSH1 0x1f
00000fcc: DUP2
00000fcd: ADD
00000fce: DUP5
00000fcf: SWAP1
00000fd0: DIV
00000fd1: DUP5
00000fd2: MUL
00000fd3: DUP3
00000fd4: ADD
00000fd5: DUP5
00000fd6: ADD
00000fd7: SWAP1
00000fd8: SWAP3
00000fd9: MSTORE
00000fda: DUP2
00000fdb: DUP2
00000fdc: MSTORE
00000fdd: SWAP3
00000fde: SWAP2
00000fdf: DUP4
00000fe0: ADD
00000fe1: DUP3
00000fe2: DUP3
00000fe3: DUP1
00000fe4: ISZERO
00000fe5: PUSH2 0x0636
00000fe8: JUMPI
00000fe9: DUP1
00000fea: PUSH1 0x1f
00000fec: LT
00000fed: PUSH2 0x060b
00000ff0: JUMPI
00000ff1: PUSH2 0x0100
00000ff4: DUP1
00000ff5: DUP4
00000ff6: SLOAD
00000ff7: DIV
00000ff8: MUL
00000ff9: DUP4
00000ffa: MSTORE
00000ffb: SWAP2
00000ffc: PUSH1 0x20
00000ffe: ADD
00000fff: SWAP2
00001000: PUSH2 0x0636
00001003: JUMP
00001004: JUMPDEST
00001005: PUSH1 0x00
00001007: PUSH2 0x064b
0000100a: CALLER
0000100b: DUP5
0000100c: DUP5
0000100d: PUSH2 0x142b
00001010: JUMP
00001011: JUMPDEST
00001012: PUSH1 0x08
00001014: SLOAD
00001015: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000102a: AND
0000102b: DUP2
0000102c: JUMP
0000102d: JUMPDEST
0000102e: TIMESTAMP
0000102f: DUP5
00001030: LT
00001031: ISZERO
00001032: PUSH2 0x109c
00001035: JUMPI
00001036: PUSH1 0x40
00001038: DUP1
00001039: MLOAD
0000103a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0000105b: DUP2
0000105c: MSTORE
0000105d: PUSH1 0x20
0000105f: PUSH1 0x04
00001061: DUP3
00001062: ADD
00001063: MSTORE
00001064: PUSH1 0x0c
00001066: PUSH1 0x24
00001068: DUP3
00001069: ADD
0000106a: MSTORE
0000106b: PUSH32 0x4665773a20455850495245440000000000000000000000000000000000000000
0000108c: PUSH1 0x44
0000108e: DUP3
0000108f: ADD
00001090: MSTORE
00001091: SWAP1
00001092: MLOAD
00001093: SWAP1
00001094: DUP2
00001095: SWAP1
00001096: SUB
00001097: PUSH1 0x64
00001099: ADD
0000109a: SWAP1
0000109b: REVERT
0000109c: JUMPDEST
0000109d: PUSH1 0x06
0000109f: SLOAD
000010a0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000010b5: DUP1
000010b6: DUP10
000010b7: AND
000010b8: PUSH1 0x00
000010ba: DUP2
000010bb: DUP2
000010bc: MSTORE
000010bd: PUSH1 0x07
000010bf: PUSH1 0x20
000010c1: SWAP1
000010c2: DUP2
000010c3: MSTORE
000010c4: PUSH1 0x40
000010c6: DUP1
000010c7: DUP4
000010c8: KECCAK256
000010c9: DUP1
000010ca: SLOAD
000010cb: PUSH1 0x01
000010cd: DUP1
000010ce: DUP3
000010cf: ADD
000010d0: SWAP1
000010d1: SWAP3
000010d2: SSTORE
000010d3: DUP3
000010d4: MLOAD
000010d5: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
000010f6: DUP2
000010f7: DUP7
000010f8: ADD
000010f9: MSTORE
000010fa: DUP1
000010fb: DUP5
000010fc: ADD
000010fd: SWAP7
000010fe: SWAP1
000010ff: SWAP7
00001100: MSTORE
00001101: SWAP6
00001102: DUP14
00001103: AND
00001104: PUSH1 0x60
00001106: DUP7
00001107: ADD
00001108: MSTORE
00001109: PUSH1 0x80
0000110b: DUP6
0000110c: ADD
0000110d: DUP13
0000110e: SWAP1
0000110f: MSTORE
00001110: PUSH1 0xa0
00001112: DUP6
00001113: ADD
00001114: SWAP6
00001115: SWAP1
00001116: SWAP6
00001117: MSTORE
00001118: PUSH1 0xc0
0000111a: DUP1
0000111b: DUP6
0000111c: ADD
0000111d: DUP12
0000111e: SWAP1
0000111f: MSTORE
00001120: DUP2
00001121: MLOAD
00001122: DUP1
00001123: DUP7
00001124: SUB
00001125: SWAP1
00001126: SWAP2
00001127: ADD
00001128: DUP2
00001129: MSTORE
0000112a: PUSH1 0xe0
0000112c: DUP6
0000112d: ADD
0000112e: DUP3
0000112f: MSTORE
00001130: DUP1
00001131: MLOAD
00001132: SWAP1
00001133: DUP4
00001134: ADD
00001135: KECCAK256
00001136: PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000
00001157: PUSH2 0x0100
0000115a: DUP7
0000115b: ADD
0000115c: MSTORE
0000115d: PUSH2 0x0102
00001160: DUP6
00001161: ADD
00001162: SWAP7
00001163: SWAP1
00001164: SWAP7
00001165: MSTORE
00001166: PUSH2 0x0122
00001169: DUP1
0000116a: DUP6
0000116b: ADD
0000116c: SWAP7
0000116d: SWAP1
0000116e: SWAP7
0000116f: MSTORE
00001170: DUP1
00001171: MLOAD
00001172: DUP1
00001173: DUP6
00001174: SUB
00001175: SWAP1
00001176: SWAP7
00001177: ADD
00001178: DUP7
00001179: MSTORE
0000117a: PUSH2 0x0142
0000117d: DUP5
0000117e: ADD
0000117f: DUP1
00001180: DUP3
00001181: MSTORE
00001182: DUP7
00001183: MLOAD
00001184: SWAP7
00001185: DUP4
00001186: ADD
00001187: SWAP7
00001188: SWAP1
00001189: SWAP7
0000118a: KECCAK256
0000118b: SWAP6
0000118c: DUP4
0000118d: SWAP1
0000118e: MSTORE
0000118f: PUSH2 0x0162
00001192: DUP5
00001193: ADD
00001194: DUP1
00001195: DUP3
00001196: MSTORE
00001197: DUP7
00001198: SWAP1
00001199: MSTORE
0000119a: PUSH1 0xff
0000119c: DUP10
0000119d: AND
0000119e: PUSH2 0x0182
000011a1: DUP6
000011a2: ADD
000011a3: MSTORE
000011a4: PUSH2 0x01a2
000011a7: DUP5
000011a8: ADD
000011a9: DUP9
000011aa: SWAP1
000011ab: MSTORE
000011ac: PUSH2 0x01c2
000011af: DUP5
000011b0: ADD
000011b1: DUP8
000011b2: SWAP1
000011b3: MSTORE
000011b4: MLOAD
000011b5: SWAP2
000011b6: SWAP4
000011b7: SWAP3
000011b8: PUSH2 0x01e2
000011bb: DUP1
000011bc: DUP3
000011bd: ADD
000011be: SWAP4
000011bf: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000011e0: DUP2
000011e1: ADD
000011e2: SWAP3
000011e3: DUP2
000011e4: SWAP1
000011e5: SUB
000011e6: SWAP1
000011e7: SWAP2
000011e8: ADD
000011e9: SWAP1
000011ea: DUP6
000011eb: GAS
000011ec: STATICCALL
000011ed: ISZERO
000011ee: DUP1
000011ef: ISZERO
000011f0: PUSH2 0x11fd
000011f3: JUMPI
000011f4: RETURNDATASIZE
000011f5: PUSH1 0x00
000011f7: DUP1
000011f8: RETURNDATACOPY
000011f9: RETURNDATASIZE
000011fa: PUSH1 0x00
000011fc: REVERT
000011fd: JUMPDEST
000011fe: POP
000011ff: POP
00001200: PUSH1 0x40
00001202: MLOAD
00001203: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001224: ADD
00001225: MLOAD
00001226: SWAP2
00001227: POP
00001228: POP
00001229: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000123e: DUP2
0000123f: AND
00001240: ISZERO
00001241: DUP1
00001242: ISZERO
00001243: SWAP1
00001244: PUSH2 0x1278
00001247: JUMPI
00001248: POP
00001249: DUP9
0000124a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000125f: AND
00001260: DUP2
00001261: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001276: AND
00001277: EQ
00001278: JUMPDEST
00001279: PUSH2 0x12e3
0000127c: JUMPI
0000127d: PUSH1 0x40
0000127f: DUP1
00001280: MLOAD
00001281: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000012a2: DUP2
000012a3: MSTORE
000012a4: PUSH1 0x20
000012a6: PUSH1 0x04
000012a8: DUP3
000012a9: ADD
000012aa: MSTORE
000012ab: PUSH1 0x16
000012ad: PUSH1 0x24
000012af: DUP3
000012b0: ADD
000012b1: MSTORE
000012b2: PUSH32 0x4665773a20494e56414c49445f5349474e415455524500000000000000000000
000012d3: PUSH1 0x44
000012d5: DUP3
000012d6: ADD
000012d7: MSTORE
000012d8: SWAP1
000012d9: MLOAD
000012da: SWAP1
000012db: DUP2
000012dc: SWAP1
000012dd: SUB
000012de: PUSH1 0x64
000012e0: ADD
000012e1: SWAP1
000012e2: REVERT
000012e3: JUMPDEST
000012e4: PUSH2 0x12ee
000012e7: DUP10
000012e8: DUP10
000012e9: DUP10
000012ea: PUSH2 0x134a
000012ed: JUMP
000012ee: JUMPDEST
000012ef: POP
000012f0: POP
000012f1: POP
000012f2: POP
000012f3: POP
000012f4: POP
000012f5: POP
000012f6: POP
000012f7: POP
000012f8: JUMP
000012f9: JUMPDEST
000012fa: PUSH1 0x05
000012fc: PUSH1 0x20
000012fe: SWAP1
000012ff: DUP2
00001300: MSTORE
00001301: PUSH1 0x00
00001303: SWAP3
00001304: DUP4
00001305: MSTORE
00001306: PUSH1 0x40
00001308: DUP1
00001309: DUP5
0000130a: KECCAK256
0000130b: SWAP1
0000130c: SWAP2
0000130d: MSTORE
0000130e: SWAP1
0000130f: DUP3
00001310: MSTORE
00001311: SWAP1
00001312: KECCAK256
00001313: SLOAD
00001314: DUP2
00001315: JUMP
00001316: JUMPDEST
00001317: PUSH1 0x00
00001319: PUSH2 0x064f
0000131c: DUP3
0000131d: CALLER
0000131e: PUSH2 0x0b98
00001321: JUMP
00001322: JUMPDEST
00001323: PUSH1 0x00
00001325: PUSH2 0x064f
00001328: DUP3
00001329: CALLER
0000132a: PUSH2 0x073a
0000132d: JUMP
0000132e: JUMPDEST
0000132f: PUSH1 0x09
00001331: SLOAD
00001332: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001347: AND
00001348: DUP2
00001349: JUMP
0000134a: JUMPDEST
0000134b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001360: DUP1
00001361: DUP5
00001362: AND
00001363: PUSH1 0x00
00001365: DUP2
00001366: DUP2
00001367: MSTORE
00001368: PUSH1 0x05
0000136a: PUSH1 0x20
0000136c: SWAP1
0000136d: DUP2
0000136e: MSTORE
0000136f: PUSH1 0x40
00001371: DUP1
00001372: DUP4
00001373: KECCAK256
00001374: SWAP5
00001375: DUP8
00001376: AND
00001377: DUP1
00001378: DUP5
00001379: MSTORE
0000137a: SWAP5
0000137b: DUP3
0000137c: MSTORE
0000137d: SWAP2
0000137e: DUP3
0000137f: SWAP1
00001380: KECCAK256
00001381: DUP6
00001382: SWAP1
00001383: SSTORE
00001384: DUP2
00001385: MLOAD
00001386: DUP6
00001387: DUP2
00001388: MSTORE
00001389: SWAP2
0000138a: MLOAD
0000138b: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
000013ac: SWAP3
000013ad: DUP2
000013ae: SWAP1
000013af: SUB
000013b0: SWAP1
000013b1: SWAP2
000013b2: ADD
000013b3: SWAP1
000013b4: LOG3
000013b5: POP
000013b6: POP
000013b7: POP
000013b8: JUMP
000013b9: JUMPDEST
000013ba: DUP1
000013bb: DUP3
000013bc: SUB
000013bd: DUP3
000013be: DUP2
000013bf: GT
000013c0: ISZERO
000013c1: PUSH2 0x064f
000013c4: JUMPI
000013c5: PUSH1 0x40
000013c7: DUP1
000013c8: MLOAD
000013c9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000013ea: DUP2
000013eb: MSTORE
000013ec: PUSH1 0x20
000013ee: PUSH1 0x04
000013f0: DUP3
000013f1: ADD
000013f2: MSTORE
000013f3: PUSH1 0x15
000013f5: PUSH1 0x24
000013f7: DUP3
000013f8: ADD
000013f9: MSTORE
000013fa: PUSH32 0x64732d6d6174682d7375622d756e646572666c6f770000000000000000000000
0000141b: PUSH1 0x44
0000141d: DUP3
0000141e: ADD
0000141f: MSTORE
00001420: SWAP1
00001421: MLOAD
00001422: SWAP1
00001423: DUP2
00001424: SWAP1
00001425: SUB
00001426: PUSH1 0x64
00001428: ADD
00001429: SWAP1
0000142a: REVERT
0000142b: JUMPDEST
0000142c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001441: DUP4
00001442: AND
00001443: PUSH1 0x00
00001445: SWAP1
00001446: DUP2
00001447: MSTORE
00001448: PUSH1 0x04
0000144a: PUSH1 0x20
0000144c: MSTORE
0000144d: PUSH1 0x40
0000144f: SWAP1
00001450: KECCAK256
00001451: SLOAD
00001452: PUSH2 0x1461
00001455: SWAP1
00001456: DUP3
00001457: PUSH4 0xffffffff
0000145c: PUSH2 0x13b9
0000145f: AND
00001460: JUMP
00001461: JUMPDEST
00001462: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001477: DUP1
00001478: DUP6
00001479: AND
0000147a: PUSH1 0x00
0000147c: SWAP1
0000147d: DUP2
0000147e: MSTORE
0000147f: PUSH1 0x04
00001481: PUSH1 0x20
00001483: MSTORE
00001484: PUSH1 0x40
00001486: DUP1
00001487: DUP3
00001488: KECCAK256
00001489: SWAP4
0000148a: SWAP1
0000148b: SWAP4
0000148c: SSTORE
0000148d: SWAP1
0000148e: DUP5
0000148f: AND
00001490: DUP2
00001491: MSTORE
00001492: KECCAK256
00001493: SLOAD
00001494: PUSH2 0x14a3
00001497: SWAP1
00001498: DUP3
00001499: PUSH4 0xffffffff
0000149e: PUSH2 0x1a18
000014a1: AND
000014a2: JUMP
000014a3: JUMPDEST
000014a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000014b9: DUP1
000014ba: DUP5
000014bb: AND
000014bc: PUSH1 0x00
000014be: DUP2
000014bf: DUP2
000014c0: MSTORE
000014c1: PUSH1 0x04
000014c3: PUSH1 0x20
000014c5: SWAP1
000014c6: DUP2
000014c7: MSTORE
000014c8: PUSH1 0x40
000014ca: SWAP2
000014cb: DUP3
000014cc: SWAP1
000014cd: KECCAK256
000014ce: SWAP5
000014cf: SWAP1
000014d0: SWAP5
000014d1: SSTORE
000014d2: DUP1
000014d3: MLOAD
000014d4: DUP6
000014d5: DUP2
000014d6: MSTORE
000014d7: SWAP1
000014d8: MLOAD
000014d9: SWAP2
000014da: SWAP4
000014db: SWAP3
000014dc: DUP8
000014dd: AND
000014de: SWAP3
000014df: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00001500: SWAP3
00001501: SWAP2
00001502: DUP3
00001503: SWAP1
00001504: SUB
00001505: ADD
00001506: SWAP1
00001507: LOG3
00001508: POP
00001509: POP
0000150a: POP
0000150b: JUMP
0000150c: JUMPDEST
0000150d: PUSH1 0x40
0000150f: DUP1
00001510: MLOAD
00001511: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001526: DUP6
00001527: DUP2
00001528: AND
00001529: PUSH1 0x24
0000152b: DUP4
0000152c: ADD
0000152d: MSTORE
0000152e: DUP5
0000152f: DUP2
00001530: AND
00001531: PUSH1 0x44
00001533: DUP4
00001534: ADD
00001535: MSTORE
00001536: PUSH1 0x64
00001538: DUP1
00001539: DUP4
0000153a: ADD
0000153b: DUP6
0000153c: SWAP1
0000153d: MSTORE
0000153e: DUP4
0000153f: MLOAD
00001540: DUP1
00001541: DUP5
00001542: SUB
00001543: SWAP1
00001544: SWAP2
00001545: ADD
00001546: DUP2
00001547: MSTORE
00001548: PUSH1 0x84
0000154a: SWAP1
0000154b: SWAP3
0000154c: ADD
0000154d: DUP4
0000154e: MSTORE
0000154f: PUSH1 0x20
00001551: DUP3
00001552: ADD
00001553: DUP1
00001554: MLOAD
00001555: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001572: AND
00001573: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000
00001594: OR
00001595: DUP2
00001596: MSTORE
00001597: SWAP3
00001598: MLOAD
00001599: DUP3
0000159a: MLOAD
0000159b: PUSH1 0x00
0000159d: SWAP5
0000159e: PUSH1 0x60
000015a0: SWAP5
000015a1: SWAP4
000015a2: DUP11
000015a3: AND
000015a4: SWAP4
000015a5: SWAP3
000015a6: SWAP2
000015a7: DUP3
000015a8: SWAP2
000015a9: SWAP1
000015aa: DUP1
000015ab: DUP4
000015ac: DUP4
000015ad: JUMPDEST
000015ae: PUSH1 0x20
000015b0: DUP4
000015b1: LT
000015b2: PUSH2 0x15ea
000015b5: JUMPI
000015b6: DUP1
000015b7: MLOAD
000015b8: DUP3
000015b9: MSTORE
000015ba: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000015db: SWAP1
000015dc: SWAP3
000015dd: ADD
000015de: SWAP2
000015df: PUSH1 0x20
000015e1: SWAP2
000015e2: DUP3
000015e3: ADD
000015e4: SWAP2
000015e5: ADD
000015e6: PUSH2 0x15ad
000015e9: JUMP
000015ea: JUMPDEST
000015eb: PUSH1 0x01
000015ed: DUP4
000015ee: PUSH1 0x20
000015f0: SUB
000015f1: PUSH2 0x0100
000015f4: EXP
000015f5: SUB
000015f6: DUP1
000015f7: NOT
000015f8: DUP3
000015f9: MLOAD
000015fa: AND
000015fb: DUP2
000015fc: DUP5
000015fd: MLOAD
000015fe: AND
000015ff: DUP1
00001600: DUP3
00001601: OR
00001602: DUP6
00001603: MSTORE
00001604: POP
00001605: POP
00001606: POP
00001607: POP
00001608: POP
00001609: POP
0000160a: SWAP1
0000160b: POP
0000160c: ADD
0000160d: SWAP2
0000160e: POP
0000160f: POP
00001610: PUSH1 0x00
00001612: PUSH1 0x40
00001614: MLOAD
00001615: DUP1
00001616: DUP4
00001617: SUB
00001618: DUP2
00001619: PUSH1 0x00
0000161b: DUP7
0000161c: GAS
0000161d: CALL
0000161e: SWAP2
0000161f: POP
00001620: POP
00001621: RETURNDATASIZE
00001622: DUP1
00001623: PUSH1 0x00
00001625: DUP2
00001626: EQ
00001627: PUSH2 0x164c
0000162a: JUMPI
0000162b: PUSH1 0x40
0000162d: MLOAD
0000162e: SWAP2
0000162f: POP
00001630: PUSH1 0x1f
00001632: NOT
00001633: PUSH1 0x3f
00001635: RETURNDATASIZE
00001636: ADD
00001637: AND
00001638: DUP3
00001639: ADD
0000163a: PUSH1 0x40
0000163c: MSTORE
0000163d: RETURNDATASIZE
0000163e: DUP3
0000163f: MSTORE
00001640: RETURNDATASIZE
00001641: PUSH1 0x00
00001643: PUSH1 0x20
00001645: DUP5
00001646: ADD
00001647: RETURNDATACOPY
00001648: PUSH2 0x1651
0000164b: JUMP
0000164c: JUMPDEST
0000164d: PUSH1 0x60
0000164f: SWAP2
00001650: POP
00001651: JUMPDEST
00001652: POP
00001653: SWAP2
00001654: POP
00001655: SWAP2
00001656: POP
00001657: DUP2
00001658: DUP1
00001659: ISZERO
0000165a: PUSH2 0x167f
0000165d: JUMPI
0000165e: POP
0000165f: DUP1
00001660: MLOAD
00001661: ISZERO
00001662: DUP1
00001663: PUSH2 0x167f
00001666: JUMPI
00001667: POP
00001668: DUP1
00001669: DUP1
0000166a: PUSH1 0x20
0000166c: ADD
0000166d: SWAP1
0000166e: MLOAD
0000166f: PUSH1 0x20
00001671: DUP2
00001672: LT
00001673: ISZERO
00001674: PUSH2 0x167c
00001677: JUMPI
00001678: PUSH1 0x00
0000167a: DUP1
0000167b: REVERT
0000167c: JUMPDEST
0000167d: POP
0000167e: MLOAD
0000167f: JUMPDEST
00001680: PUSH2 0x16d4
00001683: JUMPI
00001684: PUSH1 0x40
00001686: MLOAD
00001687: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000016a8: DUP2
000016a9: MSTORE
000016aa: PUSH1 0x04
000016ac: ADD
000016ad: DUP1
000016ae: DUP1
000016af: PUSH1 0x20
000016b1: ADD
000016b2: DUP3
000016b3: DUP2
000016b4: SUB
000016b5: DUP3
000016b6: MSTORE
000016b7: PUSH1 0x31
000016b9: DUP2
000016ba: MSTORE
000016bb: PUSH1 0x20
000016bd: ADD
000016be: DUP1
000016bf: PUSH2 0x1a8b
000016c2: PUSH1 0x31
000016c4: SWAP2
000016c5: CODECOPY
000016c6: PUSH1 0x40
000016c8: ADD
000016c9: SWAP2
000016ca: POP
000016cb: POP
000016cc: PUSH1 0x40
000016ce: MLOAD
000016cf: DUP1
000016d0: SWAP2
000016d1: SUB
000016d2: SWAP1
000016d3: REVERT
000016d4: JUMPDEST
000016d5: POP
000016d6: POP
000016d7: POP
000016d8: POP
000016d9: POP
000016da: POP
000016db: JUMP
000016dc: JUMPDEST
000016dd: PUSH1 0x03
000016df: SLOAD
000016e0: PUSH2 0x16ef
000016e3: SWAP1
000016e4: DUP3
000016e5: PUSH4 0xffffffff
000016ea: PUSH2 0x1a18
000016ed: AND
000016ee: JUMP
000016ef: JUMPDEST
000016f0: PUSH1 0x03
000016f2: SSTORE
000016f3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001708: DUP3
00001709: AND
0000170a: PUSH1 0x00
0000170c: SWAP1
0000170d: DUP2
0000170e: MSTORE
0000170f: PUSH1 0x04
00001711: PUSH1 0x20
00001713: MSTORE
00001714: PUSH1 0x40
00001716: SWAP1
00001717: KECCAK256
00001718: SLOAD
00001719: PUSH2 0x1728
0000171c: SWAP1
0000171d: DUP3
0000171e: PUSH4 0xffffffff
00001723: PUSH2 0x1a18
00001726: AND
00001727: JUMP
00001728: JUMPDEST
00001729: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000173e: DUP4
0000173f: AND
00001740: PUSH1 0x00
00001742: DUP2
00001743: DUP2
00001744: MSTORE
00001745: PUSH1 0x04
00001747: PUSH1 0x20
00001749: SWAP1
0000174a: DUP2
0000174b: MSTORE
0000174c: PUSH1 0x40
0000174e: DUP1
0000174f: DUP4
00001750: KECCAK256
00001751: SWAP5
00001752: SWAP1
00001753: SWAP5
00001754: SSTORE
00001755: DUP4
00001756: MLOAD
00001757: DUP6
00001758: DUP2
00001759: MSTORE
0000175a: SWAP4
0000175b: MLOAD
0000175c: SWAP3
0000175d: SWAP4
0000175e: SWAP2
0000175f: SWAP3
00001760: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00001781: SWAP3
00001782: DUP2
00001783: SWAP1
00001784: SUB
00001785: SWAP1
00001786: SWAP2
00001787: ADD
00001788: SWAP1
00001789: LOG3
0000178a: POP
0000178b: POP
0000178c: JUMP
0000178d: JUMPDEST
0000178e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017a3: DUP3
000017a4: AND
000017a5: PUSH1 0x00
000017a7: SWAP1
000017a8: DUP2
000017a9: MSTORE
000017aa: PUSH1 0x04
000017ac: PUSH1 0x20
000017ae: MSTORE
000017af: PUSH1 0x40
000017b1: SWAP1
000017b2: KECCAK256
000017b3: SLOAD
000017b4: PUSH2 0x17c3
000017b7: SWAP1
000017b8: DUP3
000017b9: PUSH4 0xffffffff
000017be: PUSH2 0x13b9
000017c1: AND
000017c2: JUMP
000017c3: JUMPDEST
000017c4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017d9: DUP4
000017da: AND
000017db: PUSH1 0x00
000017dd: SWAP1
000017de: DUP2
000017df: MSTORE
000017e0: PUSH1 0x04
000017e2: PUSH1 0x20
000017e4: MSTORE
000017e5: PUSH1 0x40
000017e7: SWAP1
000017e8: KECCAK256
000017e9: SSTORE
000017ea: PUSH1 0x03
000017ec: SLOAD
000017ed: PUSH2 0x17fc
000017f0: SWAP1
000017f1: DUP3
000017f2: PUSH4 0xffffffff
000017f7: PUSH2 0x13b9
000017fa: AND
000017fb: JUMP
000017fc: JUMPDEST
000017fd: PUSH1 0x03
000017ff: SSTORE
00001800: PUSH1 0x40
00001802: DUP1
00001803: MLOAD
00001804: DUP3
00001805: DUP2
00001806: MSTORE
00001807: SWAP1
00001808: MLOAD
00001809: PUSH1 0x00
0000180b: SWAP2
0000180c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001821: DUP6
00001822: AND
00001823: SWAP2
00001824: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00001845: SWAP2
00001846: DUP2
00001847: SWAP1
00001848: SUB
00001849: PUSH1 0x20
0000184b: ADD
0000184c: SWAP1
0000184d: LOG3
0000184e: POP
0000184f: POP
00001850: JUMP
00001851: JUMPDEST
00001852: PUSH1 0x40
00001854: DUP1
00001855: MLOAD
00001856: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000186b: DUP5
0000186c: DUP2
0000186d: AND
0000186e: PUSH1 0x24
00001870: DUP4
00001871: ADD
00001872: MSTORE
00001873: PUSH1 0x44
00001875: DUP1
00001876: DUP4
00001877: ADD
00001878: DUP6
00001879: SWAP1
0000187a: MSTORE
0000187b: DUP4
0000187c: MLOAD
0000187d: DUP1
0000187e: DUP5
0000187f: SUB
00001880: SWAP1
00001881: SWAP2
00001882: ADD
00001883: DUP2
00001884: MSTORE
00001885: PUSH1 0x64
00001887: SWAP1
00001888: SWAP3
00001889: ADD
0000188a: DUP4
0000188b: MSTORE
0000188c: PUSH1 0x20
0000188e: DUP3
0000188f: ADD
00001890: DUP1
00001891: MLOAD
00001892: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000018af: AND
000018b0: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
000018d1: OR
000018d2: DUP2
000018d3: MSTORE
000018d4: SWAP3
000018d5: MLOAD
000018d6: DUP3
000018d7: MLOAD
000018d8: PUSH1 0x00
000018da: SWAP5
000018db: PUSH1 0x60
000018dd: SWAP5
000018de: SWAP4
000018df: DUP10
000018e0: AND
000018e1: SWAP4
000018e2: SWAP3
000018e3: SWAP2
000018e4: DUP3
000018e5: SWAP2
000018e6: SWAP1
000018e7: DUP1
000018e8: DUP4
000018e9: DUP4
000018ea: JUMPDEST
000018eb: PUSH1 0x20
000018ed: DUP4
000018ee: LT
000018ef: PUSH2 0x1927
000018f2: JUMPI
000018f3: DUP1
000018f4: MLOAD
000018f5: DUP3
000018f6: MSTORE
000018f7: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00001918: SWAP1
00001919: SWAP3
0000191a: ADD
0000191b: SWAP2
0000191c: PUSH1 0x20
0000191e: SWAP2
0000191f: DUP3
00001920: ADD
00001921: SWAP2
00001922: ADD
00001923: PUSH2 0x18ea
00001926: JUMP
00001927: JUMPDEST
00001928: PUSH1 0x01
0000192a: DUP4
0000192b: PUSH1 0x20
0000192d: SUB
0000192e: PUSH2 0x0100
00001931: EXP
00001932: SUB
00001933: DUP1
00001934: NOT
00001935: DUP3
00001936: MLOAD
00001937: AND
00001938: DUP2
00001939: DUP5
0000193a: MLOAD
0000193b: AND
0000193c: DUP1
0000193d: DUP3
0000193e: OR
0000193f: DUP6
00001940: MSTORE
00001941: POP
00001942: POP
00001943: POP
00001944: POP
00001945: POP
00001946: POP
00001947: SWAP1
00001948: POP
00001949: ADD
0000194a: SWAP2
0000194b: POP
0000194c: POP
0000194d: PUSH1 0x00
0000194f: PUSH1 0x40
00001951: MLOAD
00001952: DUP1
00001953: DUP4
00001954: SUB
00001955: DUP2
00001956: PUSH1 0x00
00001958: DUP7
00001959: GAS
0000195a: CALL
0000195b: SWAP2
0000195c: POP
0000195d: POP
0000195e: RETURNDATASIZE
0000195f: DUP1
00001960: PUSH1 0x00
00001962: DUP2
00001963: EQ
00001964: PUSH2 0x1989
00001967: JUMPI
00001968: PUSH1 0x40
0000196a: MLOAD
0000196b: SWAP2
0000196c: POP
0000196d: PUSH1 0x1f
0000196f: NOT
00001970: PUSH1 0x3f
00001972: RETURNDATASIZE
00001973: ADD
00001974: AND
00001975: DUP3
00001976: ADD
00001977: PUSH1 0x40
00001979: MSTORE
0000197a: RETURNDATASIZE
0000197b: DUP3
0000197c: MSTORE
0000197d: RETURNDATASIZE
0000197e: PUSH1 0x00
00001980: PUSH1 0x20
00001982: DUP5
00001983: ADD
00001984: RETURNDATACOPY
00001985: PUSH2 0x198e
00001988: JUMP
00001989: JUMPDEST
0000198a: PUSH1 0x60
0000198c: SWAP2
0000198d: POP
0000198e: JUMPDEST
0000198f: POP
00001990: SWAP2
00001991: POP
00001992: SWAP2
00001993: POP
00001994: DUP2
00001995: DUP1
00001996: ISZERO
00001997: PUSH2 0x19bc
0000199a: JUMPI
0000199b: POP
0000199c: DUP1
0000199d: MLOAD
0000199e: ISZERO
0000199f: DUP1
000019a0: PUSH2 0x19bc
000019a3: JUMPI
000019a4: POP
000019a5: DUP1
000019a6: DUP1
000019a7: PUSH1 0x20
000019a9: ADD
000019aa: SWAP1
000019ab: MLOAD
000019ac: PUSH1 0x20
000019ae: DUP2
000019af: LT
000019b0: ISZERO
000019b1: PUSH2 0x19b9
000019b4: JUMPI
000019b5: PUSH1 0x00
000019b7: DUP1
000019b8: REVERT
000019b9: JUMPDEST
000019ba: POP
000019bb: MLOAD
000019bc: JUMPDEST
000019bd: PUSH2 0x1a11
000019c0: JUMPI
000019c1: PUSH1 0x40
000019c3: MLOAD
000019c4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
000019e5: DUP2
000019e6: MSTORE
000019e7: PUSH1 0x04
000019e9: ADD
000019ea: DUP1
000019eb: DUP1
000019ec: PUSH1 0x20
000019ee: ADD
000019ef: DUP3
000019f0: DUP2
000019f1: SUB
000019f2: DUP3
000019f3: MSTORE
000019f4: PUSH1 0x2d
000019f6: DUP2
000019f7: MSTORE
000019f8: PUSH1 0x20
000019fa: ADD
000019fb: DUP1
000019fc: PUSH2 0x1adf
000019ff: PUSH1 0x2d
00001a01: SWAP2
00001a02: CODECOPY
00001a03: PUSH1 0x40
00001a05: ADD
00001a06: SWAP2
00001a07: POP
00001a08: POP
00001a09: PUSH1 0x40
00001a0b: MLOAD
00001a0c: DUP1
00001a0d: SWAP2
00001a0e: SUB
00001a0f: SWAP1
00001a10: REVERT
00001a11: JUMPDEST
00001a12: POP
00001a13: POP
00001a14: POP
00001a15: POP
00001a16: POP
00001a17: JUMP
00001a18: JUMPDEST
00001a19: DUP1
00001a1a: DUP3
00001a1b: ADD
00001a1c: DUP3
00001a1d: DUP2
00001a1e: LT
00001a1f: ISZERO
00001a20: PUSH2 0x064f
00001a23: JUMPI
00001a24: PUSH1 0x40
00001a26: DUP1
00001a27: MLOAD
00001a28: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
00001a49: DUP2
00001a4a: MSTORE
00001a4b: PUSH1 0x20
00001a4d: PUSH1 0x04
00001a4f: DUP3
00001a50: ADD
00001a51: MSTORE
00001a52: PUSH1 0x14
00001a54: PUSH1 0x24
00001a56: DUP3
00001a57: ADD
00001a58: MSTORE
00001a59: PUSH32 0x64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000
00001a7a: PUSH1 0x44
00001a7c: DUP3
00001a7d: ADD
00001a7e: MSTORE
00001a7f: SWAP1
00001a80: MLOAD
00001a81: SWAP1
00001a82: DUP2
00001a83: SWAP1
00001a84: SUB
00001a85: PUSH1 0x64
00001a87: ADD
00001a88: SWAP1
00001a89: REVERT
00001a8a: INVALID
00001a8b: SLOAD
00001a8c: PUSH19 0x616e7366657248656c7065723a3a7472616e73
00001aa0: PUSH7 0x657246726f6d3a
00001aa8: KECCAK256
00001aa9: PUSH21 0x72616e7366657246726f6d206661696c6564466577
00001abf: GASPRICE
00001ac0: KECCAK256
00001ac1: PUSH27 0x65726f20616d6f756e7420756e77726170206e6f7420616c6c6f77
00001add: PUSH6 0x645472616e73
00001ae4: PUSH7 0x657248656c7065
00001aec: PUSH19 0x3a3a736166655472616e736665723a20747261
00001b00: PUSH15 0x73666572206661696c6564a2646970
00001b10: PUSH7 0x7358221220a6e8
00001b18: SWAP10
00001b19: SAR
00001b1a: SHR
00001b1b: SWAP12
00001b1c: UNKNOWN(0xB4)
00001b1d: PC
00001b1e: DUP9
00001b1f: PUSH13 0xaf6747ba791abf4d04a0ed9229
00001b2d: ISZERO
00001b2e: NOT
00001b2f: UNKNOWN(0xC0)
00001b30: PUSH28

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x492dbd421e444d7847c45b29d6c019aea2bd5af775c84e5bf82a459742709c7e
call_targets: 0xa250cc729bb3323e7933022a67b52200fe354767
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x492dbd421e444d7847c45b29d6c019aea2bd5af775c84e5bf82a459742709c7e",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xa250cc729bb3323e7933022a67b52200fe354767"
    ],
    "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": "0xde0e9a3e",
            "selector": "0xde0e9a3e",
            "calldata_variants": [
                "0xde0e9a3e",
                "0xde0e9a3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xea598cb0",
            "selector": "0xea598cb0",
            "calldata_variants": [
                "0xea598cb0",
                "0xea598cb00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc45a0155",
            "selector": "0xc45a0155",
            "calldata_variants": [
                "0xc45a0155",
                "0xc45a01550000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd505accf",
            "selector": "0xd505accf",
            "calldata_variants": [
                "0xd505accf",
                "0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7ecebe00",
            "selector": "0x7ecebe00",
            "calldata_variants": [
                "0x7ecebe00",
                "0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x95d89b41",
            "selector": "0x95d89b41",
            "calldata_variants": [
                "0x95d89b41",
                "0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5661,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6490,
            "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
view
trace_id: 0x492dbd421e444d7847c45b29d6c019aea2bd5af775c84e5bf82a459742709c7e
call_targets: 0xa250cc729bb3323e7933022a67b52200fe354767
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x492dbd421e444d7847c45b29d6c019aea2bd5af775c84e5bf82a459742709c7e",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xa250cc729bb3323e7933022a67b52200fe354767"
    ],
    "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": "0xde0e9a3e",
            "selector": "0xde0e9a3e",
            "calldata_variants": [
                "0xde0e9a3e",
                "0xde0e9a3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xea598cb0",
            "selector": "0xea598cb0",
            "calldata_variants": [
                "0xea598cb0",
                "0xea598cb00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfc0c546a",
            "selector": "0xfc0c546a",
            "calldata_variants": [
                "0xfc0c546a",
                "0xfc0c546a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc45a0155",
            "selector": "0xc45a0155",
            "calldata_variants": [
                "0xc45a0155",
                "0xc45a01550000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd505accf",
            "selector": "0xd505accf",
            "calldata_variants": [
                "0xd505accf",
                "0xd505accf0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x7ecebe00",
            "selector": "0x7ecebe00",
            "calldata_variants": [
                "0x7ecebe00",
                "0x7ecebe000000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x95d89b41",
            "selector": "0x95d89b41",
            "calldata_variants": [
                "0x95d89b41",
                "0x95d89b410000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 5661,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 6490,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 2,
    "guards_detected": []
}
medium math codex Wrap mints based on requested amount instead of actual received tokens 75 no
view
evidence_json
{
    "evidence": "`wrapTo` calls `safeTransferFrom` and then mints `amount` without verifying the contract\u2019s token balance increase.",
    "locations": [
        "contracts/contracts/FewWrappedToken.sol:165",
        "contracts/contracts/FewWrappedToken.sol:167",
        "contracts/contracts/FewWrappedToken.sol:168"
    ],
    "recommendation": "Measure actual tokens received by checking `balanceOf` before/after transfer and mint only the delta, or explicitly reject fee-on-transfer/rebasing tokens (e.g., via a whitelist).",
    "exploit_scenario": "If the underlying token is fee-on-transfer, rebasing, or malicious (returns success without transferring), `wrapTo` still mints the full requested amount. An attacker can deposit such a token to receive more wrapped tokens than backing, then later redeem full amounts once other users deposit, leaving the contract undercollateralized and other holders unable to redeem."
}
low auth codex Permit allows malleable signatures (no EIP-2 s/v checks) 65 no
view
evidence_json
{
    "evidence": "`ecrecover` is used directly with no validation of `v` or `s`.",
    "locations": [
        "contracts/contracts/FewWrappedToken.sol:115",
        "contracts/contracts/FewWrappedToken.sol:124",
        "contracts/contracts/FewWrappedToken.sol:125"
    ],
    "recommendation": "Use OpenZeppelin\u2019s `ECDSA` helpers or add explicit checks for `v` \u2208 {27,28} and `s` \u2264 secp256k1n/2.",
    "exploit_scenario": "Because `permit` accepts any `v` and does not enforce `s` in the lower half-order, signatures are malleable. A second valid signature for the same permit can be submitted, which can enable front\u2011running or replay in systems that expect signature uniqueness (even though nonces prevent reuse for state changes)."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 6
}