6d9075ea-e510-4702-8437-3a8481b449fa
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 |
|---|---|---|---|---|
| 30655 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 74926 | artifact.fetch | complete | 1 / 3 | 1 week ago |
| 74927 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 74928 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 74929 | capability.graph | complete | 1 / 3 | 1 week ago |
| 74930 | detector.run | complete | 1 / 3 | 1 week ago |
| 74931 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:545551] OpenAI Codex v0.77.0 (research preview)
[codex:545551] --------
[codex:545551] workdir: /tmp/codex-multi-ar9m3aj7
[codex:545551] model: gpt-5.2-codex
[codex:545551] provider: openai
[codex:545551] approval: never
[codex:545551] sandbox: read-only
[codex:545551] reasoning effort: xhigh
[codex:545551] reasoning summaries: auto
[codex:545551] session id: 019b6cfc-f113-75c1-a5b0-1679e9ea069e
[codex:545551] --------
[codex:545551] user
[codex:545551] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:545551] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:545551] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:545551]
[codex:545551] Scope rules:
[codex:545551] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:545551] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:545551]
[codex:545551] Output MUST be valid JSON matching the provided schema.
[codex:545551] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:545551] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:545551]
[codex:545551] Output constraints (IMPORTANT):
[codex:545551] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:545551] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:545551] mcp startup: no servers
[codex:545551]
[codex:545551] thinking
[codex:545551] **Reviewing task instructions and bundle file**
[codex:545551] exec
[codex:545551] /bin/bash -lc ls in /tmp/codex-multi-ar9m3aj7 succeeded in 5ms:
[codex:545551] AUDIT_BUNDLE.txt
[codex:545551] codex-output-schema.json
[codex:545551] contracts
[codex:545551]
[codex:545551] thinking
[codex:545551] **Reading AUDIT_BUNDLE file**
[codex:545551] exec
[codex:545551] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-ar9m3aj7 succeeded in 5ms:
[codex:545551] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:545551]
[codex:545551] ================================================================================
[codex:545551] FILE: contracts/@openzeppelin/contracts/cryptography/ECDSA.sol
[codex:545551] ================================================================================
[codex:545551] // SPDX-License-Identifier: MIT
[codex:545551]
[codex:545551] pragma solidity >=0.6.0 <0.8.0;
[codex:545551]
[codex:545551] /**
[codex:545551] * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.
[codex:545551] *
[codex:545551] * These functions can be used to verify that a message was signed by the holder
[codex:545551] * of the private keys of a given address.
[codex:545551] */
[codex:545551] library ECDSA {
[codex:545551] /**
[codex:545551] * @dev Returns the address that signed a hashed message (`hash`) with
[codex:545551] * `signature`. This address can then be used for verification purposes.
[codex:545551] *
[codex:545551]
[codex:545551]
[codex:545551] thinking
[codex:545551] **Analyzing WrapMultisig contract vulnerabilities**
[codex:545551] thinking
[codex:545551] **Evaluating call patterns and signature handling risks**
[codex:545551]
[codex:545551] I’m examining corner cases in self-calls allowing potential reentrancy, fee-on-transfer token discrepancies affecting minted amounts, unchecked return values in token transfers risking asset loss, and signature encoding choices that could cause cross-chain replay or validation mismatches. I also want to map vulnerabilities to specific files and lines by inspecting key contract source files next.
[codex:545551] exec
[codex:545551] /bin/bash -lc 'nl -ba contracts/contracts/WrapMultisig.sol' in /tmp/codex-multi-ar9m3aj7 succeeded in 6ms:
[codex:545551] 1 // SPDX-License-Identifier: LGPL-3.0-only
[codex:545551] 2 pragma solidity >=0.7.0 <0.8.0;
[codex:545551] 3 import "@openzeppelin/contracts/math/SafeMath.sol";
[codex:545551] 4 import "@openzeppelin/contracts/cryptography/ECDSA.sol";
[codex:545551] 5 import "./base/WrapManager.sol";
[codex:545551] 6 import "./interfaces/ERC721TokenReceiver.sol";
[codex:545551] 7
[codex:545551] 8 /// @title Wrap protocol locking contract, based on Gnosis Safe contract work
[codex:545551] 9 contract WrapMultisig is MultisigManager, ERC721TokenReceiver {
[codex:545551] 10 using SafeMath for uint256;
[codex:545551] 11 using ECDSA for bytes32;
[codex:545551] 12
[codex:545551] 13 string public constant NAME = "Wrap multisig";
[codex:545551] 14 string public constant VERSION = "1.0.0";
[codex:545551] 15
[codex:545551] 16 bytes4 private constant ERC20_TRANSFER_SELECTOR =
[codex:545551] 17 bytes4(keccak256(bytes("transferFrom(address,address,uint256)")));
[codex:545551] 18
[codex:545551] 19 bytes4 private constant ERC721_SAFE_TRANSFER_SELECTOR =
[codex:545551] 20 bytes4(keccak256(bytes("safeTransferFrom(address,address,uint256)")));
[codex:545551]
[codex:545551] thinking
[codex:545551] **Analyzing multisig contract vulnerabilities**
[codex:545551] exec
[codex:545551] /bin/bash -lc 'nl -ba contracts/contracts/base/WrapManager.sol' in /tmp/codex-multi-ar9m3aj7 succeeded in 5ms:
[codex:545551] 1 // SPDX-License-Identifier: LGPL-3.0-only
[codex:545551] 2 pragma solidity >=0.7.0 <0.8.0;
[codex:545551] 3
[codex:545551] 4 /// @title MultisigManager - Manages a set of owners and a threshold to perform actions
[codex:545551] 5 /// @notice Owners and threshold is managed by the administrator
[codex:545551] 6 contract MultisigManager {
[codex:545551] 7 event AddedOwner(address owner);
[codex:545551] 8 event RemovedOwner(address owner);
[codex:545551] 9 event ChangedThreshold(uint256 threshold);
[codex:545551] 10
[codex:545551] 11 address internal constant SENTINEL_OWNERS = address(0x1);
[codex:545551] 12
[codex:545551] 13 address administrator;
[codex:545551] 14 mapping(address => address) internal owners;
[codex:545551] 15 uint256 ownerCount;
[codex:545551] 16 uint256 internal threshold;
[codex:545551] 17
[codex:545551] 18 modifier authorized() {
[codex:545551] 19 require(
[codex:545551] 20 msg.sender == administrator,
[codex:545551]
[codex:545551] thinking
[codex:545551] **Summarizing security findings**
[codex:545551] codex
[codex:545551] {"no_findings":false,"summary":"Identified three issues: a high-severity nonce/DoS risk on failed execTransaction, a medium unchecked-return-data false-success risk, and a low cross-chain signature replay risk from a minimal domain separator.","findings":[{"severity":"high","category":"other","title":"Failed execTransaction still consumes tezosOperation, enabling gas‑griefing DoS and stuck unwraps","exploit_scenario":"An attacker observes a valid signed unwrap in the mempool and submits the same execTransaction with a tight gas limit so the internal call fails. Because tezosOperations[tezosOperation] is set before execution and the function does not revert on failure, the operation is permanently marked processed and cannot be retried, locking funds corresponding to the Tezos burn.","recommendation":"Only mark tezosOperation as processed after a successful execution (or revert on failure with require(success)) so failed calls do not consume the nonce; alternatively add an admin-controlled recovery path to reset failed operations.","evidence":"execTransaction sets tezosOperations[tezosOperation]=true before _execute and does not revert on failure; it merely emits ExecutionFailure.","locations":["contracts/contracts/WrapMultisig.sol:158","contracts/contracts/WrapMultisig.sol:162","contracts/contracts/WrapMultisig.sol:167"]},{"severity":"medium","category":"other","title":"execTransaction ignores return data, so ERC20 transfers that return false are treated as successful","exploit_scenario":"Owners sign an unwrap that calls an ERC20 transfer on a token that signals failure by returning false (e.g., blacklisted/paused tokens). The low‑level call succeeds (no revert), _execute returns true, ExecutionSuccess is emitted, and tezosOperation is consumed even though no tokens moved.","recommendation":"When interacting with token contracts, decode and require a true return value (or use SafeERC20-style checks) so false-returning transfers are treated as failures; consider reverting on any failed token call to keep tezosOperation reusable.","evidence":"_execute uses a raw call and discards return data; execTransaction only checks the boolean success flag.","locations":["contracts/contracts/WrapMultisig.sol:167","contracts/contracts/WrapMultisig.sol:172"]},{"severity":"low","category":"auth","title":"Domain separator omits chainId, allowing cross‑chain signature replay","exploit_scenario":"Signatures collected on one chain (or a fork) remain valid on another chain where the contract is deployed at the same address, because the domain separator only includes verifyingContract. An attacker can replay a signed unwrap on a different chain/fork to trigger an unintended execution.","recommendation":"Include chainId in the EIP‑712 domain separator (e.g., name, version, chainId, verifyingContract) and recompute if chainId changes to prevent cross‑chain replay.","evidence":"DOMAIN_SEPARATOR_TYPEHASH corresponds to EIP712Domain(address verifyingContract) and setup hashes only the contract address.","locations":["contracts/contracts/WrapMultisig.sol:22","contracts/contracts/WrapMultisig.sol:71"]}]}
[codex:545551] tokens used
[codex:545551] 34,073
[codex:545551] {"no_findings":false,"summary":"Identified three issues: a high-severity nonce/DoS risk on failed execTransaction, a medium unchecked-return-data false-success risk, and a low cross-chain signature replay risk from a minimal domain separator.","findings":[{"severity":"high","category":"other","title":"Failed execTransaction still consumes tezosOperation, enabling gas‑griefing DoS and stuck unwraps","exploit_scenario":"An attacker observes a valid signed unwrap in the mempool and submits the same execTransaction with a tight gas limit so the internal call fails. Because tezosOperations[tezosOperation] is set before execution and the function does not revert on failure, the operation is permanently marked processed and cannot be retried, locking funds corresponding to the Tezos burn.","recommendation":"Only mark tezosOperation as processed after a successful execution (or revert on failure with require(success)) so failed calls do not consume the nonce; alternatively add an admin-controlled recovery path to reset failed operations.","evidence":"execTransaction sets tezosOperations[tezosOperation]=true before _execute and does not revert on failure; it merely emits ExecutionFailure.","locations":["contracts/contracts/WrapMultisig.sol:158","contracts/contracts/WrapMultisig.sol:162","contracts/contracts/WrapMultisig.sol:167"]},{"severity":"medium","category":"other","title":"execTransaction ignores return data, so ERC20 transfers that return false are treated as successful","exploit_scenario":"Owners sign an unwrap that calls an ERC20 transfer on a token that signals failure by returning false (e.g., blacklisted/paused tokens). The low‑level call succeeds (no revert), _execute returns true, ExecutionSuccess is emitted, and tezosOperation is consumed even though no tokens moved.","recommendation":"When interacting with token contracts, decode and require a true return value (or use SafeERC20-style checks) so false-returning transfers are treated as failures; consider reverting on any failed token call to keep tezosOperation reusable.","evidence":"_execute uses a raw call and discards return data; execTransaction only checks the boolean success flag.","locations":["contracts/contracts/WrapMultisig.sol:167","contracts/contracts/WrapMultisig.sol:172"]},{"severity":"low","category":"auth","title":"Domain separator omits chainId, allowing cross‑chain signature replay","exploit_scenario":"Signatures collected on one chain (or a fork) remain valid on another chain where the contract is deployed at the same address, because the domain separator only includes verifyingContract. An attacker can replay a signed unwrap on a different chain/fork to trigger an unintended execution.","recommendation":"Include chainId in the EIP‑712 domain separator (e.g., name, version, chainId, verifyingContract) and recompute if chainId changes to prevent cross‑chain replay.","evidence":"DOMAIN_SEPARATOR_TYPEHASH corresponds to EIP712Domain(address verifyingContract) and setup hashes only the contract address.","locations":["contracts/contracts/WrapMultisig.sol:22","contracts/contracts/WrapMultisig.sol:71"]}]}
{
"codex": {
"ran_at": "2025-12-30T02:05:01.714036+00:00",
"returncode": 0
},
"summary": "Identified three issues: a high-severity nonce/DoS risk on failed execTransaction, a medium unchecked-return-data false-success risk, and a low cross-chain signature replay risk from a minimal domain separator.",
"raw_final": {
"summary": "Identified three issues: a high-severity nonce/DoS risk on failed execTransaction, a medium unchecked-return-data false-success risk, and a low cross-chain signature replay risk from a minimal domain separator.",
"findings": [
{
"title": "Failed execTransaction still consumes tezosOperation, enabling gas\u2011griefing DoS and stuck unwraps",
"category": "other",
"evidence": "execTransaction sets tezosOperations[tezosOperation]=true before _execute and does not revert on failure; it merely emits ExecutionFailure.",
"severity": "high",
"locations": [
"contracts/contracts/WrapMultisig.sol:158",
"contracts/contracts/WrapMultisig.sol:162",
"contracts/contracts/WrapMultisig.sol:167"
],
"recommendation": "Only mark tezosOperation as processed after a successful execution (or revert on failure with require(success)) so failed calls do not consume the nonce; alternatively add an admin-controlled recovery path to reset failed operations.",
"exploit_scenario": "An attacker observes a valid signed unwrap in the mempool and submits the same execTransaction with a tight gas limit so the internal call fails. Because tezosOperations[tezosOperation] is set before execution and the function does not revert on failure, the operation is permanently marked processed and cannot be retried, locking funds corresponding to the Tezos burn."
},
{
"title": "execTransaction ignores return data, so ERC20 transfers that return false are treated as successful",
"category": "other",
"evidence": "_execute uses a raw call and discards return data; execTransaction only checks the boolean success flag.",
"severity": "medium",
"locations": [
"contracts/contracts/WrapMultisig.sol:167",
"contracts/contracts/WrapMultisig.sol:172"
],
"recommendation": "When interacting with token contracts, decode and require a true return value (or use SafeERC20-style checks) so false-returning transfers are treated as failures; consider reverting on any failed token call to keep tezosOperation reusable.",
"exploit_scenario": "Owners sign an unwrap that calls an ERC20 transfer on a token that signals failure by returning false (e.g., blacklisted/paused tokens). The low\u2011level call succeeds (no revert), _execute returns true, ExecutionSuccess is emitted, and tezosOperation is consumed even though no tokens moved."
},
{
"title": "Domain separator omits chainId, allowing cross\u2011chain signature replay",
"category": "auth",
"evidence": "DOMAIN_SEPARATOR_TYPEHASH corresponds to EIP712Domain(address verifyingContract) and setup hashes only the contract address.",
"severity": "low",
"locations": [
"contracts/contracts/WrapMultisig.sol:22",
"contracts/contracts/WrapMultisig.sol:71"
],
"recommendation": "Include chainId in the EIP\u2011712 domain separator (e.g., name, version, chainId, verifyingContract) and recompute if chainId changes to prevent cross\u2011chain replay.",
"exploit_scenario": "Signatures collected on one chain (or a fork) remain valid on another chain where the contract is deployed at the same address, because the domain separator only includes verifyingContract. An attacker can replay a signed unwrap on a different chain/fork to trigger an unintended execution."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
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 0x0151 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x931a2256 00000026: GT 00000027: PUSH2 0x00cd 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xe75235b8 00000031: GT 00000032: PUSH2 0x0081 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xf698da25 0000003c: GT 0000003d: PUSH2 0x0066 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xf698da25 00000047: EQ 00000048: PUSH2 0x0a3a 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xf8dc5dd9 00000052: EQ 00000053: PUSH2 0x0a42 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xffa1ad74 0000005d: EQ 0000005e: PUSH2 0x0a85 00000061: JUMPI 00000062: PUSH2 0x0151 00000065: JUMP 00000066: JUMPDEST 00000067: DUP1 00000068: PUSH4 0xe75235b8 0000006d: EQ 0000006e: PUSH2 0x08d1 00000071: JUMPI 00000072: DUP1 00000073: PUSH4 0xeed53e9f 00000078: EQ 00000079: PUSH2 0x08eb 0000007c: JUMPI 0000007d: PUSH2 0x0151 00000080: JUMP 00000081: JUMPDEST 00000082: DUP1 00000083: PUSH4 0xa3f4df7e 00000088: GT 00000089: PUSH2 0x00b2 0000008c: JUMPI 0000008d: DUP1 0000008e: PUSH4 0xa3f4df7e 00000093: EQ 00000094: PUSH2 0x06c0 00000097: JUMPI 00000098: DUP1 00000099: PUSH4 0xc8d3e980 0000009e: EQ 0000009f: PUSH2 0x073d 000000a2: JUMPI 000000a3: DUP1 000000a4: PUSH4 0xe318b52b 000000a9: EQ 000000aa: PUSH2 0x088c 000000ad: JUMPI 000000ae: PUSH2 0x0151 000000b1: JUMP 000000b2: JUMPDEST 000000b3: DUP1 000000b4: PUSH4 0x931a2256 000000b9: EQ 000000ba: PUSH2 0x05d6 000000bd: JUMPI 000000be: DUP1 000000bf: PUSH4 0xa0e67e2b 000000c4: EQ 000000c5: PUSH2 0x0668 000000c8: JUMPI 000000c9: PUSH2 0x0151 000000cc: JUMP 000000cd: JUMPDEST 000000ce: DUP1 000000cf: PUSH4 0x2f54bf6e 000000d4: GT 000000d5: PUSH2 0x0124 000000d8: JUMPI 000000d9: DUP1 000000da: PUSH4 0x45426b9b 000000df: GT 000000e0: PUSH2 0x0109 000000e3: JUMPI 000000e4: DUP1 000000e5: PUSH4 0x45426b9b 000000ea: EQ 000000eb: PUSH2 0x0413 000000ee: JUMPI 000000ef: DUP1 000000f0: PUSH4 0x4ab88427 000000f5: EQ 000000f6: PUSH2 0x0549 000000f9: JUMPI 000000fa: DUP1 000000fb: PUSH4 0x694e80c3 00000100: EQ 00000101: PUSH2 0x05b9 00000104: JUMPI 00000105: PUSH2 0x0151 00000108: JUMP 00000109: JUMPDEST 0000010a: DUP1 0000010b: PUSH4 0x2f54bf6e 00000110: EQ 00000111: PUSH2 0x033a 00000114: JUMPI 00000115: DUP1 00000116: PUSH4 0x39c691d5 0000011b: EQ 0000011c: PUSH2 0x036d 0000011f: JUMPI 00000120: PUSH2 0x0151 00000123: JUMP 00000124: JUMPDEST 00000125: DUP1 00000126: PUSH4 0x090a3282 0000012b: EQ 0000012c: PUSH2 0x0156 0000012f: JUMPI 00000130: DUP1 00000131: PUSH4 0x0d582f13 00000136: EQ 00000137: PUSH2 0x01fc 0000013a: JUMPI 0000013b: DUP1 0000013c: PUSH4 0x150b7a02 00000141: EQ 00000142: PUSH2 0x0237 00000145: JUMPI 00000146: DUP1 00000147: PUSH4 0x16967407 0000014c: EQ 0000014d: PUSH2 0x0309 00000150: JUMPI 00000151: JUMPDEST 00000152: PUSH1 0x00 00000154: DUP1 00000155: REVERT 00000156: JUMPDEST 00000157: PUSH2 0x01e8 0000015a: PUSH1 0x04 0000015c: DUP1 0000015d: CALLDATASIZE 0000015e: SUB 0000015f: PUSH1 0x60 00000161: DUP2 00000162: LT 00000163: ISZERO 00000164: PUSH2 0x016c 00000167: JUMPI 00000168: PUSH1 0x00 0000016a: DUP1 0000016b: REVERT 0000016c: JUMPDEST 0000016d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000182: DUP3 00000183: CALLDATALOAD 00000184: AND 00000185: SWAP2 00000186: PUSH1 0x20 00000188: DUP2 00000189: ADD 0000018a: CALLDATALOAD 0000018b: SWAP2 0000018c: DUP2 0000018d: ADD 0000018e: SWAP1 0000018f: PUSH1 0x60 00000191: DUP2 00000192: ADD 00000193: PUSH1 0x40 00000195: DUP3 00000196: ADD 00000197: CALLDATALOAD 00000198: PUSH5 0x0100000000 0000019e: DUP2 0000019f: GT 000001a0: ISZERO 000001a1: PUSH2 0x01a9 000001a4: JUMPI 000001a5: PUSH1 0x00 000001a7: DUP1 000001a8: REVERT 000001a9: JUMPDEST 000001aa: DUP3 000001ab: ADD 000001ac: DUP4 000001ad: PUSH1 0x20 000001af: DUP3 000001b0: ADD 000001b1: GT 000001b2: ISZERO 000001b3: PUSH2 0x01bb 000001b6: JUMPI 000001b7: PUSH1 0x00 000001b9: DUP1 000001ba: REVERT 000001bb: JUMPDEST 000001bc: DUP1 000001bd: CALLDATALOAD 000001be: SWAP1 000001bf: PUSH1 0x20 000001c1: ADD 000001c2: SWAP2 000001c3: DUP5 000001c4: PUSH1 0x01 000001c6: DUP4 000001c7: MUL 000001c8: DUP5 000001c9: ADD 000001ca: GT 000001cb: PUSH5 0x0100000000 000001d1: DUP4 000001d2: GT 000001d3: OR 000001d4: ISZERO 000001d5: PUSH2 0x01dd 000001d8: JUMPI 000001d9: PUSH1 0x00 000001db: DUP1 000001dc: REVERT 000001dd: JUMPDEST 000001de: POP 000001df: SWAP1 000001e0: SWAP3 000001e1: POP 000001e2: SWAP1 000001e3: POP 000001e4: PUSH2 0x0a8d 000001e7: JUMP 000001e8: JUMPDEST 000001e9: PUSH1 0x40 000001eb: DUP1 000001ec: MLOAD 000001ed: SWAP2 000001ee: ISZERO 000001ef: ISZERO 000001f0: DUP3 000001f1: MSTORE 000001f2: MLOAD 000001f3: SWAP1 000001f4: DUP2 000001f5: SWAP1 000001f6: SUB 000001f7: PUSH1 0x20 000001f9: ADD 000001fa: SWAP1 000001fb: RETURN 000001fc: JUMPDEST 000001fd: PUSH2 0x0235 00000200: PUSH1 0x04 00000202: DUP1 00000203: CALLDATASIZE 00000204: SUB 00000205: PUSH1 0x40 00000207: DUP2 00000208: LT 00000209: ISZERO 0000020a: PUSH2 0x0212 0000020d: JUMPI 0000020e: PUSH1 0x00 00000210: DUP1 00000211: REVERT 00000212: JUMPDEST 00000213: POP 00000214: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000229: DUP2 0000022a: CALLDATALOAD 0000022b: AND 0000022c: SWAP1 0000022d: PUSH1 0x20 0000022f: ADD 00000230: CALLDATALOAD 00000231: PUSH2 0x0b68 00000234: JUMP 00000235: JUMPDEST 00000236: STOP 00000237: JUMPDEST 00000238: PUSH2 0x02d4 0000023b: PUSH1 0x04 0000023d: DUP1 0000023e: CALLDATASIZE 0000023f: SUB 00000240: PUSH1 0x80 00000242: DUP2 00000243: LT 00000244: ISZERO 00000245: PUSH2 0x024d 00000248: JUMPI 00000249: PUSH1 0x00 0000024b: DUP1 0000024c: REVERT 0000024d: JUMPDEST 0000024e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000263: DUP3 00000264: CALLDATALOAD 00000265: DUP2 00000266: AND 00000267: SWAP3 00000268: PUSH1 0x20 0000026a: DUP2 0000026b: ADD 0000026c: CALLDATALOAD 0000026d: SWAP1 0000026e: SWAP2 0000026f: AND 00000270: SWAP2 00000271: PUSH1 0x40 00000273: DUP3 00000274: ADD 00000275: CALLDATALOAD 00000276: SWAP2 00000277: SWAP1 00000278: DUP2 00000279: ADD 0000027a: SWAP1 0000027b: PUSH1 0x80 0000027d: DUP2 0000027e: ADD 0000027f: PUSH1 0x60 00000281: DUP3 00000282: ADD 00000283: CALLDATALOAD 00000284: PUSH5 0x0100000000 0000028a: DUP2 0000028b: GT 0000028c: ISZERO 0000028d: PUSH2 0x0295 00000290: JUMPI 00000291: PUSH1 0x00 00000293: DUP1 00000294: REVERT 00000295: JUMPDEST 00000296: DUP3 00000297: ADD 00000298: DUP4 00000299: PUSH1 0x20 0000029b: DUP3 0000029c: ADD 0000029d: GT 0000029e: ISZERO 0000029f: PUSH2 0x02a7 000002a2: JUMPI 000002a3: PUSH1 0x00 000002a5: DUP1 000002a6: REVERT 000002a7: JUMPDEST 000002a8: DUP1 000002a9: CALLDATALOAD 000002aa: SWAP1 000002ab: PUSH1 0x20 000002ad: ADD 000002ae: SWAP2 000002af: DUP5 000002b0: PUSH1 0x01 000002b2: DUP4 000002b3: MUL 000002b4: DUP5 000002b5: ADD 000002b6: GT 000002b7: PUSH5 0x0100000000 000002bd: DUP4 000002be: GT 000002bf: OR 000002c0: ISZERO 000002c1: PUSH2 0x02c9 000002c4: JUMPI 000002c5: PUSH1 0x00 000002c7: DUP1 000002c8: REVERT 000002c9: JUMPDEST 000002ca: POP 000002cb: SWAP1 000002cc: SWAP3 000002cd: POP 000002ce: SWAP1 000002cf: POP 000002d0: PUSH2 0x0dbf 000002d3: JUMP 000002d4: JUMPDEST 000002d5: PUSH1 0x40 000002d7: DUP1 000002d8: MLOAD 000002d9: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000002fa: SWAP1 000002fb: SWAP3 000002fc: AND 000002fd: DUP3 000002fe: MSTORE 000002ff: MLOAD 00000300: SWAP1 00000301: DUP2 00000302: SWAP1 00000303: SUB 00000304: PUSH1 0x20 00000306: ADD 00000307: SWAP1 00000308: RETURN 00000309: JUMPDEST 0000030a: PUSH2 0x0311 0000030d: PUSH2 0x0de9 00000310: JUMP 00000311: JUMPDEST 00000312: PUSH1 0x40 00000314: DUP1 00000315: MLOAD 00000316: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000032b: SWAP1 0000032c: SWAP3 0000032d: AND 0000032e: DUP3 0000032f: MSTORE 00000330: MLOAD 00000331: SWAP1 00000332: DUP2 00000333: SWAP1 00000334: SUB 00000335: PUSH1 0x20 00000337: ADD 00000338: SWAP1 00000339: RETURN 0000033a: JUMPDEST 0000033b: PUSH2 0x01e8 0000033e: PUSH1 0x04 00000340: DUP1 00000341: CALLDATASIZE 00000342: SUB 00000343: PUSH1 0x20 00000345: DUP2 00000346: LT 00000347: ISZERO 00000348: PUSH2 0x0350 0000034b: JUMPI 0000034c: PUSH1 0x00 0000034e: DUP1 0000034f: REVERT 00000350: JUMPDEST 00000351: POP 00000352: CALLDATALOAD 00000353: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000368: AND 00000369: PUSH2 0x0e05 0000036c: JUMP 0000036d: JUMPDEST 0000036e: PUSH2 0x01e8 00000371: PUSH1 0x04 00000373: DUP1 00000374: CALLDATASIZE 00000375: SUB 00000376: PUSH1 0x20 00000378: DUP2 00000379: LT 0000037a: ISZERO 0000037b: PUSH2 0x0383 0000037e: JUMPI 0000037f: PUSH1 0x00 00000381: DUP1 00000382: REVERT 00000383: JUMPDEST 00000384: DUP2 00000385: ADD 00000386: SWAP1 00000387: PUSH1 0x20 00000389: DUP2 0000038a: ADD 0000038b: DUP2 0000038c: CALLDATALOAD 0000038d: PUSH5 0x0100000000 00000393: DUP2 00000394: GT 00000395: ISZERO 00000396: PUSH2 0x039e 00000399: JUMPI 0000039a: PUSH1 0x00 0000039c: DUP1 0000039d: REVERT 0000039e: JUMPDEST 0000039f: DUP3 000003a0: ADD 000003a1: DUP4 000003a2: PUSH1 0x20 000003a4: DUP3 000003a5: ADD 000003a6: GT 000003a7: ISZERO 000003a8: PUSH2 0x03b0 000003ab: JUMPI 000003ac: PUSH1 0x00 000003ae: DUP1 000003af: REVERT 000003b0: JUMPDEST 000003b1: DUP1 000003b2: CALLDATALOAD 000003b3: SWAP1 000003b4: PUSH1 0x20 000003b6: ADD 000003b7: SWAP2 000003b8: DUP5 000003b9: PUSH1 0x01 000003bb: DUP4 000003bc: MUL 000003bd: DUP5 000003be: ADD 000003bf: GT 000003c0: PUSH5 0x0100000000 000003c6: DUP4 000003c7: GT 000003c8: OR 000003c9: ISZERO 000003ca: PUSH2 0x03d2 000003cd: JUMPI 000003ce: PUSH1 0x00 000003d0: DUP1 000003d1: REVERT 000003d2: JUMPDEST 000003d3: SWAP2 000003d4: SWAP1 000003d5: DUP1 000003d6: DUP1 000003d7: PUSH1 0x1f 000003d9: ADD 000003da: PUSH1 0x20 000003dc: DUP1 000003dd: SWAP2 000003de: DIV 000003df: MUL 000003e0: PUSH1 0x20 000003e2: ADD 000003e3: PUSH1 0x40 000003e5: MLOAD 000003e6: SWAP1 000003e7: DUP2 000003e8: ADD 000003e9: PUSH1 0x40 000003eb: MSTORE 000003ec: DUP1 000003ed: SWAP4 000003ee: SWAP3 000003ef: SWAP2 000003f0: SWAP1 000003f1: DUP2 000003f2: DUP2 000003f3: MSTORE 000003f4: PUSH1 0x20 000003f6: ADD 000003f7: DUP4 000003f8: DUP4 000003f9: DUP1 000003fa: DUP3 000003fb: DUP5 000003fc: CALLDATACOPY 000003fd: PUSH1 0x00 000003ff: SWAP3 00000400: ADD 00000401: SWAP2 00000402: SWAP1 00000403: SWAP2 00000404: MSTORE 00000405: POP 00000406: SWAP3 00000407: SWAP6 00000408: POP 00000409: PUSH2 0x0e5a 0000040c: SWAP5 0000040d: POP 0000040e: POP 0000040f: POP 00000410: POP 00000411: POP 00000412: JUMP 00000413: JUMPDEST 00000414: PUSH2 0x01e8 00000417: PUSH1 0x04 00000419: DUP1 0000041a: CALLDATASIZE 0000041b: SUB 0000041c: PUSH1 0xa0 0000041e: DUP2 0000041f: LT 00000420: ISZERO 00000421: PUSH2 0x0429 00000424: JUMPI 00000425: PUSH1 0x00 00000427: DUP1 00000428: REVERT 00000429: JUMPDEST 0000042a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000043f: DUP3 00000440: CALLDATALOAD 00000441: AND 00000442: SWAP2 00000443: PUSH1 0x20 00000445: DUP2 00000446: ADD 00000447: CALLDATALOAD 00000448: SWAP2 00000449: DUP2 0000044a: ADD 0000044b: SWAP1 0000044c: PUSH1 0x60 0000044e: DUP2 0000044f: ADD 00000450: PUSH1 0x40 00000452: DUP3 00000453: ADD 00000454: CALLDATALOAD 00000455: PUSH5 0x0100000000 0000045b: DUP2 0000045c: GT 0000045d: ISZERO 0000045e: PUSH2 0x0466 00000461: JUMPI 00000462: PUSH1 0x00 00000464: DUP1 00000465: REVERT 00000466: JUMPDEST 00000467: DUP3 00000468: ADD 00000469: DUP4 0000046a: PUSH1 0x20 0000046c: DUP3 0000046d: ADD 0000046e: GT 0000046f: ISZERO 00000470: PUSH2 0x0478 00000473: JUMPI 00000474: PUSH1 0x00 00000476: DUP1 00000477: REVERT 00000478: JUMPDEST 00000479: DUP1 0000047a: CALLDATALOAD 0000047b: SWAP1 0000047c: PUSH1 0x20 0000047e: ADD 0000047f: SWAP2 00000480: DUP5 00000481: PUSH1 0x01 00000483: DUP4 00000484: MUL 00000485: DUP5 00000486: ADD 00000487: GT 00000488: PUSH5 0x0100000000 0000048e: DUP4 0000048f: GT 00000490: OR 00000491: ISZERO 00000492: PUSH2 0x049a 00000495: JUMPI 00000496: PUSH1 0x00 00000498: DUP1 00000499: REVERT 0000049a: JUMPDEST 0000049b: SWAP2 0000049c: SWAP4 0000049d: SWAP1 0000049e: SWAP3 0000049f: SWAP1 000004a0: SWAP2 000004a1: PUSH1 0x20 000004a3: DUP2 000004a4: ADD 000004a5: SWAP1 000004a6: CALLDATALOAD 000004a7: PUSH5 0x0100000000 000004ad: DUP2 000004ae: GT 000004af: ISZERO 000004b0: PUSH2 0x04b8 000004b3: JUMPI 000004b4: PUSH1 0x00 000004b6: DUP1 000004b7: REVERT 000004b8: JUMPDEST 000004b9: DUP3 000004ba: ADD 000004bb: DUP4 000004bc: PUSH1 0x20 000004be: DUP3 000004bf: ADD 000004c0: GT 000004c1: ISZERO 000004c2: PUSH2 0x04ca 000004c5: JUMPI 000004c6: PUSH1 0x00 000004c8: DUP1 000004c9: REVERT 000004ca: JUMPDEST 000004cb: DUP1 000004cc: CALLDATALOAD 000004cd: SWAP1 000004ce: PUSH1 0x20 000004d0: ADD 000004d1: SWAP2 000004d2: DUP5 000004d3: PUSH1 0x01 000004d5: DUP4 000004d6: MUL 000004d7: DUP5 000004d8: ADD 000004d9: GT 000004da: PUSH5 0x0100000000 000004e0: DUP4 000004e1: GT 000004e2: OR 000004e3: ISZERO 000004e4: PUSH2 0x04ec 000004e7: JUMPI 000004e8: PUSH1 0x00 000004ea: DUP1 000004eb: REVERT 000004ec: JUMPDEST 000004ed: SWAP2 000004ee: SWAP4 000004ef: SWAP1 000004f0: SWAP3 000004f1: SWAP1 000004f2: SWAP2 000004f3: PUSH1 0x20 000004f5: DUP2 000004f6: ADD 000004f7: SWAP1 000004f8: CALLDATALOAD 000004f9: PUSH5 0x0100000000 000004ff: DUP2 00000500: GT 00000501: ISZERO 00000502: PUSH2 0x050a 00000505: JUMPI 00000506: PUSH1 0x00 00000508: DUP1 00000509: REVERT 0000050a: JUMPDEST 0000050b: DUP3 0000050c: ADD 0000050d: DUP4 0000050e: PUSH1 0x20 00000510: DUP3 00000511: ADD 00000512: GT 00000513: ISZERO 00000514: PUSH2 0x051c 00000517: JUMPI 00000518: PUSH1 0x00 0000051a: DUP1 0000051b: REVERT 0000051c: JUMPDEST 0000051d: DUP1 0000051e: CALLDATALOAD 0000051f: SWAP1 00000520: PUSH1 0x20 00000522: ADD 00000523: SWAP2 00000524: DUP5 00000525: PUSH1 0x01 00000527: DUP4 00000528: MUL 00000529: DUP5 0000052a: ADD 0000052b: GT 0000052c: PUSH5 0x0100000000 00000532: DUP4 00000533: GT 00000534: OR 00000535: ISZERO 00000536: PUSH2 0x053e 00000539: JUMPI 0000053a: PUSH1 0x00 0000053c: DUP1 0000053d: REVERT 0000053e: JUMPDEST 0000053f: POP 00000540: SWAP1 00000541: SWAP3 00000542: POP 00000543: SWAP1 00000544: POP 00000545: PUSH2 0x0f01 00000548: JUMP 00000549: JUMPDEST 0000054a: PUSH2 0x0235 0000054d: PUSH1 0x04 0000054f: DUP1 00000550: CALLDATASIZE 00000551: SUB 00000552: PUSH1 0x40 00000554: DUP2 00000555: LT 00000556: ISZERO 00000557: PUSH2 0x055f 0000055a: JUMPI 0000055b: PUSH1 0x00 0000055d: DUP1 0000055e: REVERT 0000055f: JUMPDEST 00000560: DUP2 00000561: ADD 00000562: SWAP1 00000563: PUSH1 0x20 00000565: DUP2 00000566: ADD 00000567: DUP2 00000568: CALLDATALOAD 00000569: PUSH5 0x0100000000 0000056f: DUP2 00000570: GT 00000571: ISZERO 00000572: PUSH2 0x057a 00000575: JUMPI 00000576: PUSH1 0x00 00000578: DUP1 00000579: REVERT 0000057a: JUMPDEST 0000057b: DUP3 0000057c: ADD 0000057d: DUP4 0000057e: PUSH1 0x20 00000580: DUP3 00000581: ADD 00000582: GT 00000583: ISZERO 00000584: PUSH2 0x058c 00000587: JUMPI 00000588: PUSH1 0x00 0000058a: DUP1 0000058b: REVERT 0000058c: JUMPDEST 0000058d: DUP1 0000058e: CALLDATALOAD 0000058f: SWAP1 00000590: PUSH1 0x20 00000592: ADD 00000593: SWAP2 00000594: DUP5 00000595: PUSH1 0x20 00000597: DUP4 00000598: MUL 00000599: DUP5 0000059a: ADD 0000059b: GT 0000059c: PUSH5 0x0100000000 000005a2: DUP4 000005a3: GT 000005a4: OR 000005a5: ISZERO 000005a6: PUSH2 0x05ae 000005a9: JUMPI 000005aa: PUSH1 0x00 000005ac: DUP1 000005ad: REVERT 000005ae: JUMPDEST 000005af: SWAP2 000005b0: SWAP4 000005b1: POP 000005b2: SWAP2 000005b3: POP 000005b4: CALLDATALOAD 000005b5: PUSH2 0x115e 000005b8: JUMP 000005b9: JUMPDEST 000005ba: PUSH2 0x0235 000005bd: PUSH1 0x04 000005bf: DUP1 000005c0: CALLDATASIZE 000005c1: SUB 000005c2: PUSH1 0x20 000005c4: DUP2 000005c5: LT 000005c6: ISZERO 000005c7: PUSH2 0x05cf 000005ca: JUMPI 000005cb: PUSH1 0x00 000005cd: DUP1 000005ce: REVERT 000005cf: JUMPDEST 000005d0: POP 000005d1: CALLDATALOAD 000005d2: PUSH2 0x12b6 000005d5: JUMP 000005d6: JUMPDEST 000005d7: PUSH2 0x01e8 000005da: PUSH1 0x04 000005dc: DUP1 000005dd: CALLDATASIZE 000005de: SUB 000005df: PUSH1 0x60 000005e1: DUP2 000005e2: LT 000005e3: ISZERO 000005e4: PUSH2 0x05ec 000005e7: JUMPI 000005e8: PUSH1 0x00 000005ea: DUP1 000005eb: REVERT 000005ec: JUMPDEST 000005ed: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000602: DUP3 00000603: CALLDATALOAD 00000604: AND 00000605: SWAP2 00000606: PUSH1 0x20 00000608: DUP2 00000609: ADD 0000060a: CALLDATALOAD 0000060b: SWAP2 0000060c: DUP2 0000060d: ADD 0000060e: SWAP1 0000060f: PUSH1 0x60 00000611: DUP2 00000612: ADD 00000613: PUSH1 0x40 00000615: DUP3 00000616: ADD 00000617: CALLDATALOAD 00000618: PUSH5 0x0100000000 0000061e: DUP2 0000061f: GT 00000620: ISZERO 00000621: PUSH2 0x0629 00000624: JUMPI 00000625: PUSH1 0x00 00000627: DUP1 00000628: REVERT 00000629: JUMPDEST 0000062a: DUP3 0000062b: ADD 0000062c: DUP4 0000062d: PUSH1 0x20 0000062f: DUP3 00000630: ADD 00000631: GT 00000632: ISZERO 00000633: PUSH2 0x063b 00000636: JUMPI 00000637: PUSH1 0x00 00000639: DUP1 0000063a: REVERT 0000063b: JUMPDEST 0000063c: DUP1 0000063d: CALLDATALOAD 0000063e: SWAP1 0000063f: PUSH1 0x20 00000641: ADD 00000642: SWAP2 00000643: DUP5 00000644: PUSH1 0x01 00000646: DUP4 00000647: MUL 00000648: DUP5 00000649: ADD 0000064a: GT 0000064b: PUSH5 0x0100000000 00000651: DUP4 00000652: GT 00000653: OR 00000654: ISZERO 00000655: PUSH2 0x065d 00000658: JUMPI 00000659: PUSH1 0x00 0000065b: DUP1 0000065c: REVERT 0000065d: JUMPDEST 0000065e: POP 0000065f: SWAP1 00000660: SWAP3 00000661: POP 00000662: SWAP1 00000663: POP 00000664: PUSH2 0x1416 00000667: JUMP 00000668: JUMPDEST 00000669: PUSH2 0x0670 0000066c: PUSH2 0x155f 0000066f: JUMP 00000670: JUMPDEST 00000671: PUSH1 0x40 00000673: DUP1 00000674: MLOAD 00000675: PUSH1 0x20 00000677: DUP1 00000678: DUP3 00000679: MSTORE 0000067a: DUP4 0000067b: MLOAD 0000067c: DUP2 0000067d: DUP4 0000067e: ADD 0000067f: MSTORE 00000680: DUP4 00000681: MLOAD 00000682: SWAP2 00000683: SWAP3 00000684: DUP4 00000685: SWAP3 00000686: SWAP1 00000687: DUP4 00000688: ADD 00000689: SWAP2 0000068a: DUP6 0000068b: DUP2 0000068c: ADD 0000068d: SWAP2 0000068e: MUL 0000068f: DUP1 00000690: DUP4 00000691: DUP4 00000692: PUSH1 0x00 00000694: JUMPDEST 00000695: DUP4 00000696: DUP2 00000697: LT 00000698: ISZERO 00000699: PUSH2 0x06ac 0000069c: JUMPI 0000069d: DUP2 0000069e: DUP2 0000069f: ADD 000006a0: MLOAD 000006a1: DUP4 000006a2: DUP3 000006a3: ADD 000006a4: MSTORE 000006a5: PUSH1 0x20 000006a7: ADD 000006a8: PUSH2 0x0694 000006ab: JUMP 000006ac: JUMPDEST 000006ad: POP 000006ae: POP 000006af: POP 000006b0: POP 000006b1: SWAP1 000006b2: POP 000006b3: ADD 000006b4: SWAP3 000006b5: POP 000006b6: POP 000006b7: POP 000006b8: PUSH1 0x40 000006ba: MLOAD 000006bb: DUP1 000006bc: SWAP2 000006bd: SUB 000006be: SWAP1 000006bf: RETURN 000006c0: JUMPDEST 000006c1: PUSH2 0x06c8 000006c4: PUSH2 0x1669 000006c7: JUMP 000006c8: JUMPDEST 000006c9: PUSH1 0x40 000006cb: DUP1 000006cc: MLOAD 000006cd: PUSH1 0x20 000006cf: DUP1 000006d0: DUP3 000006d1: MSTORE 000006d2: DUP4 000006d3: MLOAD 000006d4: DUP2 000006d5: DUP4 000006d6: ADD 000006d7: MSTORE 000006d8: DUP4 000006d9: MLOAD 000006da: SWAP2 000006db: SWAP3 000006dc: DUP4 000006dd: SWAP3 000006de: SWAP1 000006df: DUP4 000006e0: ADD 000006e1: SWAP2 000006e2: DUP6 000006e3: ADD 000006e4: SWAP1 000006e5: DUP1 000006e6: DUP4 000006e7: DUP4 000006e8: PUSH1 0x00 000006ea: JUMPDEST 000006eb: DUP4 000006ec: DUP2 000006ed: LT 000006ee: ISZERO 000006ef: PUSH2 0x0702 000006f2: JUMPI 000006f3: DUP2 000006f4: DUP2 000006f5: ADD 000006f6: MLOAD 000006f7: DUP4 000006f8: DUP3 000006f9: ADD 000006fa: MSTORE 000006fb: PUSH1 0x20 000006fd: ADD 000006fe: PUSH2 0x06ea 00000701: JUMP 00000702: JUMPDEST 00000703: POP 00000704: POP 00000705: POP 00000706: POP 00000707: SWAP1 00000708: POP 00000709: SWAP1 0000070a: DUP2 0000070b: ADD 0000070c: SWAP1 0000070d: PUSH1 0x1f 0000070f: AND 00000710: DUP1 00000711: ISZERO 00000712: PUSH2 0x072f 00000715: JUMPI 00000716: DUP1 00000717: DUP3 00000718: SUB 00000719: DUP1 0000071a: MLOAD 0000071b: PUSH1 0x01 0000071d: DUP4 0000071e: PUSH1 0x20 00000720: SUB 00000721: PUSH2 0x0100 00000724: EXP 00000725: SUB 00000726: NOT 00000727: AND 00000728: DUP2 00000729: MSTORE 0000072a: PUSH1 0x20 0000072c: ADD 0000072d: SWAP2 0000072e: POP 0000072f: JUMPDEST 00000730: POP 00000731: SWAP3 00000732: POP 00000733: POP 00000734: POP 00000735: PUSH1 0x40 00000737: MLOAD 00000738: DUP1 00000739: SWAP2 0000073a: SUB 0000073b: SWAP1 0000073c: RETURN 0000073d: JUMPDEST 0000073e: PUSH2 0x06c8 00000741: PUSH1 0x04 00000743: DUP1 00000744: CALLDATASIZE 00000745: SUB 00000746: PUSH1 0x80 00000748: DUP2 00000749: LT 0000074a: ISZERO 0000074b: PUSH2 0x0753 0000074e: JUMPI 0000074f: PUSH1 0x00 00000751: DUP1 00000752: REVERT 00000753: JUMPDEST 00000754: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000769: DUP3 0000076a: CALLDATALOAD 0000076b: AND 0000076c: SWAP2 0000076d: PUSH1 0x20 0000076f: DUP2 00000770: ADD 00000771: CALLDATALOAD 00000772: SWAP2 00000773: DUP2 00000774: ADD 00000775: SWAP1 00000776: PUSH1 0x60 00000778: DUP2 00000779: ADD 0000077a: PUSH1 0x40 0000077c: DUP3 0000077d: ADD 0000077e: CALLDATALOAD 0000077f: PUSH5 0x0100000000 00000785: DUP2 00000786: GT 00000787: ISZERO 00000788: PUSH2 0x0790 0000078b: JUMPI 0000078c: PUSH1 0x00 0000078e: DUP1 0000078f: REVERT 00000790: JUMPDEST 00000791: DUP3 00000792: ADD 00000793: DUP4 00000794: PUSH1 0x20 00000796: DUP3 00000797: ADD 00000798: GT 00000799: ISZERO 0000079a: PUSH2 0x07a2 0000079d: JUMPI 0000079e: PUSH1 0x00 000007a0: DUP1 000007a1: REVERT 000007a2: JUMPDEST 000007a3: DUP1 000007a4: CALLDATALOAD 000007a5: SWAP1 000007a6: PUSH1 0x20 000007a8: ADD 000007a9: SWAP2 000007aa: DUP5 000007ab: PUSH1 0x01 000007ad: DUP4 000007ae: MUL 000007af: DUP5 000007b0: ADD 000007b1: GT 000007b2: PUSH5 0x0100000000 000007b8: DUP4 000007b9: GT 000007ba: OR 000007bb: ISZERO 000007bc: PUSH2 0x07c4 000007bf: JUMPI 000007c0: PUSH1 0x00 000007c2: DUP1 000007c3: REVERT 000007c4: JUMPDEST 000007c5: SWAP2 000007c6: SWAP1 000007c7: DUP1 000007c8: DUP1 000007c9: PUSH1 0x1f 000007cb: ADD 000007cc: PUSH1 0x20 000007ce: DUP1 000007cf: SWAP2 000007d0: DIV 000007d1: MUL 000007d2: PUSH1 0x20 000007d4: ADD 000007d5: PUSH1 0x40 000007d7: MLOAD 000007d8: SWAP1 000007d9: DUP2 000007da: ADD 000007db: PUSH1 0x40 000007dd: MSTORE 000007de: DUP1 000007df: SWAP4 000007e0: SWAP3 000007e1: SWAP2 000007e2: SWAP1 000007e3: DUP2 000007e4: DUP2 000007e5: MSTORE 000007e6: PUSH1 0x20 000007e8: ADD 000007e9: DUP4 000007ea: DUP4 000007eb: DUP1 000007ec: DUP3 000007ed: DUP5 000007ee: CALLDATACOPY 000007ef: PUSH1 0x00 000007f1: SWAP3 000007f2: ADD 000007f3: SWAP2 000007f4: SWAP1 000007f5: SWAP2 000007f6: MSTORE 000007f7: POP 000007f8: SWAP3 000007f9: SWAP6 000007fa: SWAP5 000007fb: SWAP4 000007fc: PUSH1 0x20 000007fe: DUP2 000007ff: ADD 00000800: SWAP4 00000801: POP 00000802: CALLDATALOAD 00000803: SWAP2 00000804: POP 00000805: POP 00000806: PUSH5 0x0100000000 0000080c: DUP2 0000080d: GT 0000080e: ISZERO 0000080f: PUSH2 0x0817 00000812: JUMPI 00000813: PUSH1 0x00 00000815: DUP1 00000816: REVERT 00000817: JUMPDEST 00000818: DUP3 00000819: ADD 0000081a: DUP4 0000081b: PUSH1 0x20 0000081d: DUP3 0000081e: ADD 0000081f: GT 00000820: ISZERO 00000821: PUSH2 0x0829 00000824: JUMPI 00000825: PUSH1 0x00 00000827: DUP1 00000828: REVERT 00000829: JUMPDEST 0000082a: DUP1 0000082b: CALLDATALOAD 0000082c: SWAP1 0000082d: PUSH1 0x20 0000082f: ADD 00000830: SWAP2 00000831: DUP5 00000832: PUSH1 0x01 00000834: DUP4 00000835: MUL 00000836: DUP5 00000837: ADD 00000838: GT 00000839: PUSH5 0x0100000000 0000083f: DUP4 00000840: GT 00000841: OR 00000842: ISZERO 00000843: PUSH2 0x084b 00000846: JUMPI 00000847: PUSH1 0x00 00000849: DUP1 0000084a: REVERT 0000084b: JUMPDEST 0000084c: SWAP2 0000084d: SWAP1 0000084e: DUP1 0000084f: DUP1 00000850: PUSH1 0x1f 00000852: ADD 00000853: PUSH1 0x20 00000855: DUP1 00000856: SWAP2 00000857: DIV 00000858: MUL 00000859: PUSH1 0x20 0000085b: ADD 0000085c: PUSH1 0x40 0000085e: MLOAD 0000085f: SWAP1 00000860: DUP2 00000861: ADD 00000862: PUSH1 0x40 00000864: MSTORE 00000865: DUP1 00000866: SWAP4 00000867: SWAP3 00000868: SWAP2 00000869: SWAP1 0000086a: DUP2 0000086b: DUP2 0000086c: MSTORE 0000086d: PUSH1 0x20 0000086f: ADD 00000870: DUP4 00000871: DUP4 00000872: DUP1 00000873: DUP3 00000874: DUP5 00000875: CALLDATACOPY 00000876: PUSH1 0x00 00000878: SWAP3 00000879: ADD 0000087a: SWAP2 0000087b: SWAP1 0000087c: SWAP2 0000087d: MSTORE 0000087e: POP 0000087f: SWAP3 00000880: SWAP6 00000881: POP 00000882: PUSH2 0x16a2 00000885: SWAP5 00000886: POP 00000887: POP 00000888: POP 00000889: POP 0000088a: POP 0000088b: JUMP 0000088c: JUMPDEST 0000088d: PUSH2 0x0235 00000890: PUSH1 0x04 00000892: DUP1 00000893: CALLDATASIZE 00000894: SUB 00000895: PUSH1 0x60 00000897: DUP2 00000898: LT 00000899: ISZERO 0000089a: PUSH2 0x08a2 0000089d: JUMPI 0000089e: PUSH1 0x00 000008a0: DUP1 000008a1: REVERT 000008a2: JUMPDEST 000008a3: POP 000008a4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008b9: DUP2 000008ba: CALLDATALOAD 000008bb: DUP2 000008bc: AND 000008bd: SWAP2 000008be: PUSH1 0x20 000008c0: DUP2 000008c1: ADD 000008c2: CALLDATALOAD 000008c3: DUP3 000008c4: AND 000008c5: SWAP2 000008c6: PUSH1 0x40 000008c8: SWAP1 000008c9: SWAP2 000008ca: ADD 000008cb: CALLDATALOAD 000008cc: AND 000008cd: PUSH2 0x182b 000008d0: JUMP 000008d1: JUMPDEST 000008d2: PUSH2 0x08d9 000008d5: PUSH2 0x1bbb 000008d8: JUMP 000008d9: JUMPDEST 000008da: PUSH1 0x40 000008dc: DUP1 000008dd: MLOAD 000008de: SWAP2 000008df: DUP3 000008e0: MSTORE 000008e1: MLOAD 000008e2: SWAP1 000008e3: DUP2 000008e4: SWAP1 000008e5: SUB 000008e6: PUSH1 0x20 000008e8: ADD 000008e9: SWAP1 000008ea: RETURN 000008eb: JUMPDEST 000008ec: PUSH2 0x08d9 000008ef: PUSH1 0x04 000008f1: DUP1 000008f2: CALLDATASIZE 000008f3: SUB 000008f4: PUSH1 0x80 000008f6: DUP2 000008f7: LT 000008f8: ISZERO 000008f9: PUSH2 0x0901 000008fc: JUMPI 000008fd: PUSH1 0x00 000008ff: DUP1 00000900: REVERT 00000901: JUMPDEST 00000902: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000917: DUP3 00000918: CALLDATALOAD 00000919: AND 0000091a: SWAP2 0000091b: PUSH1 0x20 0000091d: DUP2 0000091e: ADD 0000091f: CALLDATALOAD 00000920: SWAP2 00000921: DUP2 00000922: ADD 00000923: SWAP1 00000924: PUSH1 0x60 00000926: DUP2 00000927: ADD 00000928: PUSH1 0x40 0000092a: DUP3 0000092b: ADD 0000092c: CALLDATALOAD 0000092d: PUSH5 0x0100000000 00000933: DUP2 00000934: GT 00000935: ISZERO 00000936: PUSH2 0x093e 00000939: JUMPI 0000093a: PUSH1 0x00 0000093c: DUP1 0000093d: REVERT 0000093e: JUMPDEST 0000093f: DUP3 00000940: ADD 00000941: DUP4 00000942: PUSH1 0x20 00000944: DUP3 00000945: ADD 00000946: GT 00000947: ISZERO 00000948: PUSH2 0x0950 0000094b: JUMPI 0000094c: PUSH1 0x00 0000094e: DUP1 0000094f: REVERT 00000950: JUMPDEST 00000951: DUP1 00000952: CALLDATALOAD 00000953: SWAP1 00000954: PUSH1 0x20 00000956: ADD 00000957: SWAP2 00000958: DUP5 00000959: PUSH1 0x01 0000095b: DUP4 0000095c: MUL 0000095d: DUP5 0000095e: ADD 0000095f: GT 00000960: PUSH5 0x0100000000 00000966: DUP4 00000967: GT 00000968: OR 00000969: ISZERO 0000096a: PUSH2 0x0972 0000096d: JUMPI 0000096e: PUSH1 0x00 00000970: DUP1 00000971: REVERT 00000972: JUMPDEST 00000973: SWAP2 00000974: SWAP1 00000975: DUP1 00000976: DUP1 00000977: PUSH1 0x1f 00000979: ADD 0000097a: PUSH1 0x20 0000097c: DUP1 0000097d: SWAP2 0000097e: DIV 0000097f: MUL 00000980: PUSH1 0x20 00000982: ADD 00000983: PUSH1 0x40 00000985: MLOAD 00000986: SWAP1 00000987: DUP2 00000988: ADD 00000989: PUSH1 0x40 0000098b: MSTORE 0000098c: DUP1 0000098d: SWAP4 0000098e: SWAP3 0000098f: SWAP2 00000990: SWAP1 00000991: DUP2 00000992: DUP2 00000993: MSTORE 00000994: PUSH1 0x20 00000996: ADD 00000997: DUP4 00000998: DUP4 00000999: DUP1 0000099a: DUP3 0000099b: DUP5 0000099c: CALLDATACOPY 0000099d: PUSH1 0x00 0000099f: SWAP3 000009a0: ADD 000009a1: SWAP2 000009a2: SWAP1 000009a3: SWAP2 000009a4: MSTORE 000009a5: POP 000009a6: SWAP3 000009a7: SWAP6 000009a8: SWAP5 000009a9: SWAP4 000009aa: PUSH1 0x20 000009ac: DUP2 000009ad: ADD 000009ae: SWAP4 000009af: POP 000009b0: CALLDATALOAD 000009b1: SWAP2 000009b2: POP 000009b3: POP 000009b4: PUSH5 0x0100000000 000009ba: DUP2 000009bb: GT 000009bc: ISZERO 000009bd: PUSH2 0x09c5 000009c0: JUMPI 000009c1: PUSH1 0x00 000009c3: DUP1 000009c4: REVERT 000009c5: JUMPDEST 000009c6: DUP3 000009c7: ADD 000009c8: DUP4 000009c9: PUSH1 0x20 000009cb: DUP3 000009cc: ADD 000009cd: GT 000009ce: ISZERO 000009cf: PUSH2 0x09d7 000009d2: JUMPI 000009d3: PUSH1 0x00 000009d5: DUP1 000009d6: REVERT 000009d7: JUMPDEST 000009d8: DUP1 000009d9: CALLDATALOAD 000009da: SWAP1 000009db: PUSH1 0x20 000009dd: ADD 000009de: SWAP2 000009df: DUP5 000009e0: PUSH1 0x01 000009e2: DUP4 000009e3: MUL 000009e4: DUP5 000009e5: ADD 000009e6: GT 000009e7: PUSH5 0x0100000000 000009ed: DUP4 000009ee: GT 000009ef: OR 000009f0: ISZERO 000009f1: PUSH2 0x09f9 000009f4: JUMPI 000009f5: PUSH1 0x00 000009f7: DUP1 000009f8: REVERT 000009f9: JUMPDEST 000009fa: SWAP2 000009fb: SWAP1 000009fc: DUP1 000009fd: DUP1 000009fe: PUSH1 0x1f 00000a00: ADD 00000a01: PUSH1 0x20 00000a03: DUP1 00000a04: SWAP2 00000a05: DIV 00000a06: MUL 00000a07: PUSH1 0x20 00000a09: ADD 00000a0a: PUSH1 0x40 00000a0c: MLOAD 00000a0d: SWAP1 00000a0e: DUP2 00000a0f: ADD 00000a10: PUSH1 0x40 00000a12: MSTORE 00000a13: DUP1 00000a14: SWAP4 00000a15: SWAP3 00000a16: SWAP2 00000a17: SWAP1 00000a18: DUP2 00000a19: DUP2 00000a1a: MSTORE 00000a1b: PUSH1 0x20 00000a1d: ADD 00000a1e: DUP4 00000a1f: DUP4 00000a20: DUP1 00000a21: DUP3 00000a22: DUP5 00000a23: CALLDATACOPY 00000a24: PUSH1 0x00 00000a26: SWAP3 00000a27: ADD 00000a28: SWAP2 00000a29: SWAP1 00000a2a: SWAP2 00000a2b: MSTORE 00000a2c: POP 00000a2d: SWAP3 00000a2e: SWAP6 00000a2f: POP 00000a30: PUSH2 0x1bc1 00000a33: SWAP5 00000a34: POP 00000a35: POP 00000a36: POP 00000a37: POP 00000a38: POP 00000a39: JUMP 00000a3a: JUMPDEST 00000a3b: PUSH2 0x08d9 00000a3e: PUSH2 0x1be0 00000a41: JUMP 00000a42: JUMPDEST 00000a43: PUSH2 0x0235 00000a46: PUSH1 0x04 00000a48: DUP1 00000a49: CALLDATASIZE 00000a4a: SUB 00000a4b: PUSH1 0x60 00000a4d: DUP2 00000a4e: LT 00000a4f: ISZERO 00000a50: PUSH2 0x0a58 00000a53: JUMPI 00000a54: PUSH1 0x00 00000a56: DUP1 00000a57: REVERT 00000a58: JUMPDEST 00000a59: POP 00000a5a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000a6f: DUP2 00000a70: CALLDATALOAD 00000a71: DUP2 00000a72: AND 00000a73: SWAP2 00000a74: PUSH1 0x20 00000a76: DUP2 00000a77: ADD 00000a78: CALLDATALOAD 00000a79: SWAP1 00000a7a: SWAP2 00000a7b: AND 00000a7c: SWAP1 00000a7d: PUSH1 0x40 00000a7f: ADD 00000a80: CALLDATALOAD 00000a81: PUSH2 0x1be6 00000a84: JUMP 00000a85: JUMPDEST 00000a86: PUSH2 0x06c8 00000a89: PUSH2 0x1ea0 00000a8c: JUMP 00000a8d: JUMPDEST 00000a8e: PUSH1 0x00 00000a90: PUSH2 0x0a9b 00000a93: DUP6 00000a94: CALLER 00000a95: ADDRESS 00000a96: DUP8 00000a97: PUSH2 0x1ed9 00000a9a: JUMP 00000a9b: JUMPDEST 00000a9c: PUSH32 0x2e616d24cb14cc7a22d0efef037ff9c8dc13ee53c172ca5fef2185c5f5ad28e0 00000abd: CALLER 00000abe: DUP7 00000abf: DUP7 00000ac0: DUP7 00000ac1: DUP7 00000ac2: PUSH1 0x40 00000ac4: MLOAD 00000ac5: DUP1 00000ac6: DUP7 00000ac7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000adc: AND 00000add: DUP2 00000ade: MSTORE 00000adf: PUSH1 0x20 00000ae1: ADD 00000ae2: DUP6 00000ae3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000af8: AND 00000af9: DUP2 00000afa: MSTORE 00000afb: PUSH1 0x20 00000afd: ADD 00000afe: DUP5 00000aff: DUP2 00000b00: MSTORE 00000b01: PUSH1 0x20 00000b03: ADD 00000b04: DUP1 00000b05: PUSH1 0x20 00000b07: ADD 00000b08: DUP3 00000b09: DUP2 00000b0a: SUB 00000b0b: DUP3 00000b0c: MSTORE 00000b0d: DUP5 00000b0e: DUP5 00000b0f: DUP3 00000b10: DUP2 00000b11: DUP2 00000b12: MSTORE 00000b13: PUSH1 0x20 00000b15: ADD 00000b16: SWAP3 00000b17: POP 00000b18: DUP1 00000b19: DUP3 00000b1a: DUP5 00000b1b: CALLDATACOPY 00000b1c: PUSH1 0x00 00000b1e: DUP4 00000b1f: DUP3 00000b20: ADD 00000b21: MSTORE 00000b22: PUSH1 0x40 00000b24: MLOAD 00000b25: PUSH1 0x1f 00000b27: SWAP1 00000b28: SWAP2 00000b29: ADD 00000b2a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00000b4b: AND 00000b4c: SWAP1 00000b4d: SWAP3 00000b4e: ADD 00000b4f: DUP3 00000b50: SWAP1 00000b51: SUB 00000b52: SWAP9 00000b53: POP 00000b54: SWAP1 00000b55: SWAP7 00000b56: POP 00000b57: POP 00000b58: POP 00000b59: POP 00000b5a: POP 00000b5b: POP 00000b5c: POP 00000b5d: LOG1 00000b5e: POP 00000b5f: PUSH1 0x01 00000b61: SWAP5 00000b62: SWAP4 00000b63: POP 00000b64: POP 00000b65: POP 00000b66: POP 00000b67: JUMP 00000b68: JUMPDEST 00000b69: PUSH1 0x00 00000b6b: SLOAD 00000b6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b81: AND 00000b82: CALLER 00000b83: EQ 00000b84: PUSH2 0x0bd8 00000b87: JUMPI 00000b88: PUSH1 0x40 00000b8a: MLOAD 00000b8b: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000bac: DUP2 00000bad: MSTORE 00000bae: PUSH1 0x04 00000bb0: ADD 00000bb1: DUP1 00000bb2: DUP1 00000bb3: PUSH1 0x20 00000bb5: ADD 00000bb6: DUP3 00000bb7: DUP2 00000bb8: SUB 00000bb9: DUP3 00000bba: MSTORE 00000bbb: PUSH1 0x30 00000bbd: DUP2 00000bbe: MSTORE 00000bbf: PUSH1 0x20 00000bc1: ADD 00000bc2: DUP1 00000bc3: PUSH2 0x2d5a 00000bc6: PUSH1 0x30 00000bc8: SWAP2 00000bc9: CODECOPY 00000bca: PUSH1 0x40 00000bcc: ADD 00000bcd: SWAP2 00000bce: POP 00000bcf: POP 00000bd0: PUSH1 0x40 00000bd2: MLOAD 00000bd3: DUP1 00000bd4: SWAP2 00000bd5: SUB 00000bd6: SWAP1 00000bd7: REVERT 00000bd8: JUMPDEST 00000bd9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000bee: DUP3 00000bef: AND 00000bf0: ISZERO 00000bf1: DUP1 00000bf2: ISZERO 00000bf3: SWAP1 00000bf4: PUSH2 0x0c14 00000bf7: JUMPI 00000bf8: POP 00000bf9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c0e: DUP3 00000c0f: AND 00000c10: PUSH1 0x01 00000c12: EQ 00000c13: ISZERO 00000c14: JUMPDEST 00000c15: PUSH2 0x0c69 00000c18: JUMPI 00000c19: PUSH1 0x40 00000c1b: MLOAD 00000c1c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000c3d: DUP2 00000c3e: MSTORE 00000c3f: PUSH1 0x04 00000c41: ADD 00000c42: DUP1 00000c43: DUP1 00000c44: PUSH1 0x20 00000c46: ADD 00000c47: DUP3 00000c48: DUP2 00000c49: SUB 00000c4a: DUP3 00000c4b: MSTORE 00000c4c: PUSH1 0x24 00000c4e: DUP2 00000c4f: MSTORE 00000c50: PUSH1 0x20 00000c52: ADD 00000c53: DUP1 00000c54: PUSH2 0x2baf 00000c57: PUSH1 0x24 00000c59: SWAP2 00000c5a: CODECOPY 00000c5b: PUSH1 0x40 00000c5d: ADD 00000c5e: SWAP2 00000c5f: POP 00000c60: POP 00000c61: PUSH1 0x40 00000c63: MLOAD 00000c64: DUP1 00000c65: SWAP2 00000c66: SUB 00000c67: SWAP1 00000c68: REVERT 00000c69: JUMPDEST 00000c6a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c7f: DUP3 00000c80: DUP2 00000c81: AND 00000c82: PUSH1 0x00 00000c84: SWAP1 00000c85: DUP2 00000c86: MSTORE 00000c87: PUSH1 0x01 00000c89: PUSH1 0x20 00000c8b: MSTORE 00000c8c: PUSH1 0x40 00000c8e: SWAP1 00000c8f: KECCAK256 00000c90: SLOAD 00000c91: AND 00000c92: ISZERO 00000c93: PUSH2 0x0ce7 00000c96: JUMPI 00000c97: PUSH1 0x40 00000c99: MLOAD 00000c9a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000cbb: DUP2 00000cbc: MSTORE 00000cbd: PUSH1 0x04 00000cbf: ADD 00000cc0: DUP1 00000cc1: DUP1 00000cc2: PUSH1 0x20 00000cc4: ADD 00000cc5: DUP3 00000cc6: DUP2 00000cc7: SUB 00000cc8: DUP3 00000cc9: MSTORE 00000cca: PUSH1 0x21 00000ccc: DUP2 00000ccd: MSTORE 00000cce: PUSH1 0x20 00000cd0: ADD 00000cd1: DUP1 00000cd2: PUSH2 0x2c77 00000cd5: PUSH1 0x21 00000cd7: SWAP2 00000cd8: CODECOPY 00000cd9: PUSH1 0x40 00000cdb: ADD 00000cdc: SWAP2 00000cdd: POP 00000cde: POP 00000cdf: PUSH1 0x40 00000ce1: MLOAD 00000ce2: DUP1 00000ce3: SWAP2 00000ce4: SUB 00000ce5: SWAP1 00000ce6: REVERT 00000ce7: JUMPDEST 00000ce8: PUSH1 0x01 00000cea: PUSH1 0x20 00000cec: DUP2 00000ced: DUP2 00000cee: MSTORE 00000cef: PUSH32 0xcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f 00000d10: DUP1 00000d11: SLOAD 00000d12: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d27: DUP7 00000d28: DUP2 00000d29: AND 00000d2a: PUSH1 0x00 00000d2c: DUP2 00000d2d: DUP2 00000d2e: MSTORE 00000d2f: PUSH1 0x40 00000d31: DUP1 00000d32: DUP3 00000d33: KECCAK256 00000d34: DUP1 00000d35: SLOAD 00000d36: SWAP5 00000d37: SWAP1 00000d38: SWAP6 00000d39: AND 00000d3a: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00000d5b: SWAP5 00000d5c: DUP6 00000d5d: AND 00000d5e: OR 00000d5f: SWAP1 00000d60: SWAP5 00000d61: SSTORE 00000d62: DUP7 00000d63: SWAP1 00000d64: MSTORE 00000d65: DUP4 00000d66: SLOAD 00000d67: SWAP1 00000d68: SWAP2 00000d69: AND 00000d6a: DUP2 00000d6b: OR 00000d6c: SWAP1 00000d6d: SWAP3 00000d6e: SSTORE 00000d6f: PUSH1 0x02 00000d71: DUP1 00000d72: SLOAD 00000d73: SWAP1 00000d74: SWAP5 00000d75: ADD 00000d76: SWAP1 00000d77: SWAP4 00000d78: SSTORE 00000d79: DUP3 00000d7a: MLOAD 00000d7b: SWAP1 00000d7c: DUP2 00000d7d: MSTORE 00000d7e: SWAP2 00000d7f: MLOAD 00000d80: PUSH32 0x9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea26 00000da1: SWAP3 00000da2: DUP2 00000da3: SWAP1 00000da4: SUB 00000da5: SWAP1 00000da6: SWAP2 00000da7: ADD 00000da8: SWAP1 00000da9: LOG1 00000daa: DUP1 00000dab: PUSH1 0x03 00000dad: SLOAD 00000dae: EQ 00000daf: PUSH2 0x0dbb 00000db2: JUMPI 00000db3: PUSH2 0x0dbb 00000db6: DUP2 00000db7: PUSH2 0x12b6 00000dba: JUMP 00000dbb: JUMPDEST 00000dbc: POP 00000dbd: POP 00000dbe: JUMP 00000dbf: JUMPDEST 00000dc0: PUSH32 0x150b7a0200000000000000000000000000000000000000000000000000000000 00000de1: SWAP6 00000de2: SWAP5 00000de3: POP 00000de4: POP 00000de5: POP 00000de6: POP 00000de7: POP 00000de8: JUMP 00000de9: JUMPDEST 00000dea: PUSH1 0x00 00000dec: SLOAD 00000ded: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e02: AND 00000e03: SWAP1 00000e04: JUMP 00000e05: JUMPDEST 00000e06: PUSH1 0x00 00000e08: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e1d: DUP3 00000e1e: AND 00000e1f: PUSH1 0x01 00000e21: EQ 00000e22: DUP1 00000e23: ISZERO 00000e24: SWAP1 00000e25: PUSH2 0x0e54 00000e28: JUMPI 00000e29: POP 00000e2a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e3f: DUP3 00000e40: DUP2 00000e41: AND 00000e42: PUSH1 0x00 00000e44: SWAP1 00000e45: DUP2 00000e46: MSTORE 00000e47: PUSH1 0x01 00000e49: PUSH1 0x20 00000e4b: MSTORE 00000e4c: PUSH1 0x40 00000e4e: SWAP1 00000e4f: KECCAK256 00000e50: SLOAD 00000e51: AND 00000e52: ISZERO 00000e53: ISZERO 00000e54: JUMPDEST 00000e55: SWAP3 00000e56: SWAP2 00000e57: POP 00000e58: POP 00000e59: JUMP 00000e5a: JUMPDEST 00000e5b: PUSH1 0x00 00000e5d: PUSH1 0x04 00000e5f: DUP3 00000e60: PUSH1 0x40 00000e62: MLOAD 00000e63: DUP1 00000e64: DUP3 00000e65: DUP1 00000e66: MLOAD 00000e67: SWAP1 00000e68: PUSH1 0x20 00000e6a: ADD 00000e6b: SWAP1 00000e6c: DUP1 00000e6d: DUP4 00000e6e: DUP4 00000e6f: JUMPDEST 00000e70: PUSH1 0x20 00000e72: DUP4 00000e73: LT 00000e74: PUSH2 0x0eac 00000e77: JUMPI 00000e78: DUP1 00000e79: MLOAD 00000e7a: DUP3 00000e7b: MSTORE 00000e7c: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00000e9d: SWAP1 00000e9e: SWAP3 00000e9f: ADD 00000ea0: SWAP2 00000ea1: PUSH1 0x20 00000ea3: SWAP2 00000ea4: DUP3 00000ea5: ADD 00000ea6: SWAP2 00000ea7: ADD 00000ea8: PUSH2 0x0e6f 00000eab: JUMP 00000eac: JUMPDEST 00000ead: MLOAD 00000eae: DUP2 00000eaf: MLOAD 00000eb0: PUSH1 0x20 00000eb2: SWAP4 00000eb3: DUP5 00000eb4: SUB 00000eb5: PUSH2 0x0100 00000eb8: EXP 00000eb9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000eda: ADD 00000edb: DUP1 00000edc: NOT 00000edd: SWAP1 00000ede: SWAP3 00000edf: AND 00000ee0: SWAP2 00000ee1: AND 00000ee2: OR 00000ee3: SWAP1 00000ee4: MSTORE 00000ee5: SWAP3 00000ee6: ADD 00000ee7: SWAP5 00000ee8: DUP6 00000ee9: MSTORE 00000eea: POP 00000eeb: PUSH1 0x40 00000eed: MLOAD 00000eee: SWAP4 00000eef: DUP5 00000ef0: SWAP1 00000ef1: SUB 00000ef2: ADD 00000ef3: SWAP1 00000ef4: SWAP3 00000ef5: KECCAK256 00000ef6: SLOAD 00000ef7: PUSH1 0xff 00000ef9: AND 00000efa: SWAP5 00000efb: SWAP4 00000efc: POP 00000efd: POP 00000efe: POP 00000eff: POP 00000f00: JUMP 00000f01: JUMPDEST 00000f02: PUSH1 0x00 00000f04: PUSH1 0x04 00000f06: DUP6 00000f07: DUP6 00000f08: PUSH1 0x40 00000f0a: MLOAD 00000f0b: DUP1 00000f0c: DUP4 00000f0d: DUP4 00000f0e: DUP1 00000f0f: DUP3 00000f10: DUP5 00000f11: CALLDATACOPY 00000f12: SWAP2 00000f13: SWAP1 00000f14: SWAP2 00000f15: ADD 00000f16: SWAP5 00000f17: DUP6 00000f18: MSTORE 00000f19: POP 00000f1a: POP 00000f1b: PUSH1 0x40 00000f1d: MLOAD 00000f1e: SWAP3 00000f1f: DUP4 00000f20: SWAP1 00000f21: SUB 00000f22: PUSH1 0x20 00000f24: ADD 00000f25: SWAP1 00000f26: SWAP3 00000f27: KECCAK256 00000f28: SLOAD 00000f29: PUSH1 0xff 00000f2b: AND 00000f2c: ISZERO 00000f2d: SWAP2 00000f2e: POP 00000f2f: PUSH2 0x0f85 00000f32: SWAP1 00000f33: POP 00000f34: JUMPI 00000f35: PUSH1 0x40 00000f37: MLOAD 00000f38: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000f59: DUP2 00000f5a: MSTORE 00000f5b: PUSH1 0x04 00000f5d: ADD 00000f5e: DUP1 00000f5f: DUP1 00000f60: PUSH1 0x20 00000f62: ADD 00000f63: DUP3 00000f64: DUP2 00000f65: SUB 00000f66: DUP3 00000f67: MSTORE 00000f68: PUSH1 0x23 00000f6a: DUP2 00000f6b: MSTORE 00000f6c: PUSH1 0x20 00000f6e: ADD 00000f6f: DUP1 00000f70: PUSH2 0x2b67 00000f73: PUSH1 0x23 00000f75: SWAP2 00000f76: CODECOPY 00000f77: PUSH1 0x40 00000f79: ADD 00000f7a: SWAP2 00000f7b: POP 00000f7c: POP 00000f7d: PUSH1 0x40 00000f7f: MLOAD 00000f80: DUP1 00000f81: SWAP2 00000f82: SUB 00000f83: SWAP1 00000f84: REVERT 00000f85: JUMPDEST 00000f86: PUSH1 0x01 00000f88: PUSH1 0x04 00000f8a: DUP7 00000f8b: DUP7 00000f8c: PUSH1 0x40 00000f8e: MLOAD 00000f8f: DUP1 00000f90: DUP4 00000f91: DUP4 00000f92: DUP1 00000f93: DUP3 00000f94: DUP5 00000f95: CALLDATACOPY 00000f96: SWAP2 00000f97: SWAP1 00000f98: SWAP2 00000f99: ADD 00000f9a: SWAP5 00000f9b: DUP6 00000f9c: MSTORE 00000f9d: POP 00000f9e: POP 00000f9f: PUSH1 0x40 00000fa1: DUP1 00000fa2: MLOAD 00000fa3: PUSH1 0x20 00000fa5: SWAP5 00000fa6: DUP2 00000fa7: SWAP1 00000fa8: SUB 00000fa9: DUP6 00000faa: ADD 00000fab: DUP2 00000fac: KECCAK256 00000fad: DUP1 00000fae: SLOAD 00000faf: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 00000fd0: AND 00000fd1: SWAP7 00000fd2: ISZERO 00000fd3: ISZERO 00000fd4: SWAP7 00000fd5: SWAP1 00000fd6: SWAP7 00000fd7: OR 00000fd8: SWAP1 00000fd9: SWAP6 00000fda: SSTORE 00000fdb: PUSH1 0x1f 00000fdd: DUP12 00000fde: ADD 00000fdf: DUP5 00000fe0: SWAP1 00000fe1: DIV 00000fe2: DUP5 00000fe3: MUL 00000fe4: DUP6 00000fe5: ADD 00000fe6: DUP5 00000fe7: ADD 00000fe8: SWAP1 00000fe9: MSTORE 00000fea: POP 00000feb: POP 00000fec: DUP8 00000fed: DUP3 00000fee: MSTORE 00000fef: PUSH1 0x00 00000ff1: SWAP2 00000ff2: PUSH2 0x104d 00000ff5: SWAP2 00000ff6: DUP13 00000ff7: SWAP2 00000ff8: DUP13 00000ff9: SWAP2 00000ffa: DUP13 00000ffb: SWAP1 00000ffc: DUP13 00000ffd: SWAP1 00000ffe: DUP2 00000fff: SWAP1 00001000: DUP5 00001001: ADD 00001002: DUP4 00001003: DUP3 00001004: DUP1 00001005: DUP3 00001006: DUP5 00001007: CALLDATACOPY 00001008: PUSH1 0x00 0000100a: SWAP3 0000100b: ADD 0000100c: SWAP2 0000100d: SWAP1 0000100e: SWAP2 0000100f: MSTORE 00001010: POP 00001011: POP 00001012: PUSH1 0x40 00001014: DUP1 00001015: MLOAD 00001016: PUSH1 0x20 00001018: PUSH1 0x1f 0000101a: DUP15 0000101b: ADD 0000101c: DUP2 0000101d: SWAP1 0000101e: DIV 0000101f: DUP2 00001020: MUL 00001021: DUP3 00001022: ADD 00001023: DUP2 00001024: ADD 00001025: SWAP1 00001026: SWAP3 00001027: MSTORE 00001028: DUP13 00001029: DUP2 0000102a: MSTORE 0000102b: SWAP3 0000102c: POP 0000102d: DUP13 0000102e: SWAP2 0000102f: POP 00001030: DUP12 00001031: SWAP1 00001032: DUP2 00001033: SWAP1 00001034: DUP5 00001035: ADD 00001036: DUP4 00001037: DUP3 00001038: DUP1 00001039: DUP3 0000103a: DUP5 0000103b: CALLDATACOPY 0000103c: PUSH1 0x00 0000103e: SWAP3 0000103f: ADD 00001040: SWAP2 00001041: SWAP1 00001042: SWAP2 00001043: MSTORE 00001044: POP 00001045: PUSH2 0x16a2 00001048: SWAP3 00001049: POP 0000104a: POP 0000104b: POP 0000104c: JUMP 0000104d: JUMPDEST 0000104e: SWAP1 0000104f: POP 00001050: PUSH1 0x00 00001052: DUP2 00001053: DUP1 00001054: MLOAD 00001055: SWAP1 00001056: PUSH1 0x20 00001058: ADD 00001059: KECCAK256 0000105a: SWAP1 0000105b: POP 0000105c: PUSH2 0x109b 0000105f: DUP2 00001060: DUP7 00001061: DUP7 00001062: DUP1 00001063: DUP1 00001064: PUSH1 0x1f 00001066: ADD 00001067: PUSH1 0x20 00001069: DUP1 0000106a: SWAP2 0000106b: DIV 0000106c: MUL 0000106d: PUSH1 0x20 0000106f: ADD 00001070: PUSH1 0x40 00001072: MLOAD 00001073: SWAP1 00001074: DUP2 00001075: ADD 00001076: PUSH1 0x40 00001078: MSTORE 00001079: DUP1 0000107a: SWAP4 0000107b: SWAP3 0000107c: SWAP2 0000107d: SWAP1 0000107e: DUP2 0000107f: DUP2 00001080: MSTORE 00001081: PUSH1 0x20 00001083: ADD 00001084: DUP4 00001085: DUP4 00001086: DUP1 00001087: DUP3 00001088: DUP5 00001089: CALLDATACOPY 0000108a: PUSH1 0x00 0000108c: SWAP3 0000108d: ADD 0000108e: SWAP2 0000108f: SWAP1 00001090: SWAP2 00001091: MSTORE 00001092: POP 00001093: PUSH2 0x20f2 00001096: SWAP3 00001097: POP 00001098: POP 00001099: POP 0000109a: JUMP 0000109b: JUMPDEST 0000109c: PUSH2 0x10dc 0000109f: DUP12 000010a0: DUP12 000010a1: DUP12 000010a2: DUP12 000010a3: DUP1 000010a4: DUP1 000010a5: PUSH1 0x1f 000010a7: ADD 000010a8: PUSH1 0x20 000010aa: DUP1 000010ab: SWAP2 000010ac: DIV 000010ad: MUL 000010ae: PUSH1 0x20 000010b0: ADD 000010b1: PUSH1 0x40 000010b3: MLOAD 000010b4: SWAP1 000010b5: DUP2 000010b6: ADD 000010b7: PUSH1 0x40 000010b9: MSTORE 000010ba: DUP1 000010bb: SWAP4 000010bc: SWAP3 000010bd: SWAP2 000010be: SWAP1 000010bf: DUP2 000010c0: DUP2 000010c1: MSTORE 000010c2: PUSH1 0x20 000010c4: ADD 000010c5: DUP4 000010c6: DUP4 000010c7: DUP1 000010c8: DUP3 000010c9: DUP5 000010ca: CALLDATACOPY 000010cb: PUSH1 0x00 000010cd: SWAP3 000010ce: ADD 000010cf: SWAP2 000010d0: SWAP1 000010d1: SWAP2 000010d2: MSTORE 000010d3: POP 000010d4: POP 000010d5: POP 000010d6: POP 000010d7: GAS 000010d8: PUSH2 0x231e 000010db: JUMP 000010dc: JUMPDEST 000010dd: SWAP3 000010de: POP 000010df: DUP3 000010e0: ISZERO 000010e1: PUSH2 0x111c 000010e4: JUMPI 000010e5: PUSH1 0x40 000010e7: DUP1 000010e8: MLOAD 000010e9: DUP3 000010ea: DUP2 000010eb: MSTORE 000010ec: SWAP1 000010ed: MLOAD 000010ee: PUSH32 0xdc29884a71d2bb98d3c53dc09718be05c7bfd142b7773a5c5cf2517629290ac0 0000110f: SWAP2 00001110: DUP2 00001111: SWAP1 00001112: SUB 00001113: PUSH1 0x20 00001115: ADD 00001116: SWAP1 00001117: LOG1 00001118: PUSH2 0x1150 0000111b: JUMP 0000111c: JUMPDEST 0000111d: PUSH1 0x40 0000111f: DUP1 00001120: MLOAD 00001121: DUP3 00001122: DUP2 00001123: MSTORE 00001124: SWAP1 00001125: MLOAD 00001126: PUSH32 0xdbe42d02a4e07d7eeff2874efe172540c93b297d206f6d691c9782a257323e32 00001147: SWAP2 00001148: DUP2 00001149: SWAP1 0000114a: SUB 0000114b: PUSH1 0x20 0000114d: ADD 0000114e: SWAP1 0000114f: LOG1 00001150: JUMPDEST 00001151: POP 00001152: POP 00001153: SWAP9 00001154: SWAP8 00001155: POP 00001156: POP 00001157: POP 00001158: POP 00001159: POP 0000115a: POP 0000115b: POP 0000115c: POP 0000115d: JUMP 0000115e: JUMPDEST 0000115f: PUSH1 0x00 00001161: SLOAD 00001162: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001177: AND 00001178: CALLER 00001179: EQ 0000117a: PUSH2 0x11ce 0000117d: JUMPI 0000117e: PUSH1 0x40 00001180: MLOAD 00001181: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000011a2: DUP2 000011a3: MSTORE 000011a4: PUSH1 0x04 000011a6: ADD 000011a7: DUP1 000011a8: DUP1 000011a9: PUSH1 0x20 000011ab: ADD 000011ac: DUP3 000011ad: DUP2 000011ae: SUB 000011af: DUP3 000011b0: MSTORE 000011b1: PUSH1 0x30 000011b3: DUP2 000011b4: MSTORE 000011b5: PUSH1 0x20 000011b7: ADD 000011b8: DUP1 000011b9: PUSH2 0x2d5a 000011bc: PUSH1 0x30 000011be: SWAP2 000011bf: CODECOPY 000011c0: PUSH1 0x40 000011c2: ADD 000011c3: SWAP2 000011c4: POP 000011c5: POP 000011c6: PUSH1 0x40 000011c8: MLOAD 000011c9: DUP1 000011ca: SWAP2 000011cb: SUB 000011cc: SWAP1 000011cd: REVERT 000011ce: JUMPDEST 000011cf: PUSH1 0x05 000011d1: SLOAD 000011d2: ISZERO 000011d3: PUSH2 0x1227 000011d6: JUMPI 000011d7: PUSH1 0x40 000011d9: MLOAD 000011da: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000011fb: DUP2 000011fc: MSTORE 000011fd: PUSH1 0x04 000011ff: ADD 00001200: DUP1 00001201: DUP1 00001202: PUSH1 0x20 00001204: ADD 00001205: DUP3 00001206: DUP2 00001207: SUB 00001208: DUP3 00001209: MSTORE 0000120a: PUSH1 0x22 0000120c: DUP2 0000120d: MSTORE 0000120e: PUSH1 0x20 00001210: ADD 00001211: DUP1 00001212: PUSH2 0x2c55 00001215: PUSH1 0x22 00001217: SWAP2 00001218: CODECOPY 00001219: PUSH1 0x40 0000121b: ADD 0000121c: SWAP2 0000121d: POP 0000121e: POP 0000121f: PUSH1 0x40 00001221: MLOAD 00001222: DUP1 00001223: SWAP2 00001224: SUB 00001225: SWAP1 00001226: REVERT 00001227: JUMPDEST 00001228: PUSH1 0x40 0000122a: DUP1 0000122b: MLOAD 0000122c: PUSH32 0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749 0000124d: PUSH1 0x20 0000124f: DUP1 00001250: DUP4 00001251: ADD 00001252: SWAP2 00001253: SWAP1 00001254: SWAP2 00001255: MSTORE 00001256: ADDRESS 00001257: DUP3 00001258: DUP5 00001259: ADD 0000125a: MSTORE 0000125b: DUP3 0000125c: MLOAD 0000125d: DUP1 0000125e: DUP4 0000125f: SUB 00001260: DUP5 00001261: ADD 00001262: DUP2 00001263: MSTORE 00001264: PUSH1 0x60 00001266: DUP4 00001267: ADD 00001268: DUP1 00001269: DUP6 0000126a: MSTORE 0000126b: DUP2 0000126c: MLOAD 0000126d: SWAP2 0000126e: DUP4 0000126f: ADD 00001270: SWAP2 00001271: SWAP1 00001272: SWAP2 00001273: KECCAK256 00001274: PUSH1 0x05 00001276: SSTORE 00001277: PUSH1 0x80 00001279: SWAP2 0000127a: DUP7 0000127b: MUL 0000127c: DUP1 0000127d: DUP5 0000127e: ADD 0000127f: DUP4 00001280: ADD 00001281: SWAP1 00001282: SWAP5 00001283: MSTORE 00001284: DUP6 00001285: DUP2 00001286: MSTORE 00001287: PUSH2 0x12b1 0000128a: SWAP4 0000128b: SWAP1 0000128c: SWAP3 0000128d: DUP8 0000128e: SWAP3 0000128f: DUP8 00001290: SWAP3 00001291: DUP4 00001292: SWAP3 00001293: SWAP2 00001294: SWAP1 00001295: SWAP2 00001296: ADD 00001297: SWAP1 00001298: DUP5 00001299: SWAP1 0000129a: DUP1 0000129b: DUP3 0000129c: DUP5 0000129d: CALLDATACOPY 0000129e: PUSH1 0x00 000012a0: SWAP3 000012a1: ADD 000012a2: SWAP2 000012a3: SWAP1 000012a4: SWAP2 000012a5: MSTORE 000012a6: POP 000012a7: DUP6 000012a8: SWAP3 000012a9: POP 000012aa: PUSH2 0x2336 000012ad: SWAP2 000012ae: POP 000012af: POP 000012b0: JUMP 000012b1: JUMPDEST 000012b2: POP 000012b3: POP 000012b4: POP 000012b5: JUMP 000012b6: JUMPDEST 000012b7: PUSH1 0x00 000012b9: SLOAD 000012ba: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000012cf: AND 000012d0: CALLER 000012d1: EQ 000012d2: PUSH2 0x1326 000012d5: JUMPI 000012d6: PUSH1 0x40 000012d8: MLOAD 000012d9: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000012fa: DUP2 000012fb: MSTORE 000012fc: PUSH1 0x04 000012fe: ADD 000012ff: DUP1 00001300: DUP1 00001301: PUSH1 0x20 00001303: ADD 00001304: DUP3 00001305: DUP2 00001306: SUB 00001307: DUP3 00001308: MSTORE 00001309: PUSH1 0x30 0000130b: DUP2 0000130c: MSTORE 0000130d: PUSH1 0x20 0000130f: ADD 00001310: DUP1 00001311: PUSH2 0x2d5a 00001314: PUSH1 0x30 00001316: SWAP2 00001317: CODECOPY 00001318: PUSH1 0x40 0000131a: ADD 0000131b: SWAP2 0000131c: POP 0000131d: POP 0000131e: PUSH1 0x40 00001320: MLOAD 00001321: DUP1 00001322: SWAP2 00001323: SUB 00001324: SWAP1 00001325: REVERT 00001326: JUMPDEST 00001327: PUSH1 0x02 00001329: SLOAD 0000132a: DUP2 0000132b: GT 0000132c: ISZERO 0000132d: PUSH2 0x1381 00001330: JUMPI 00001331: PUSH1 0x40 00001333: MLOAD 00001334: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001355: DUP2 00001356: MSTORE 00001357: PUSH1 0x04 00001359: ADD 0000135a: DUP1 0000135b: DUP1 0000135c: PUSH1 0x20 0000135e: ADD 0000135f: DUP3 00001360: DUP2 00001361: SUB 00001362: DUP3 00001363: MSTORE 00001364: PUSH1 0x29 00001366: DUP2 00001367: MSTORE 00001368: PUSH1 0x20 0000136a: ADD 0000136b: DUP1 0000136c: PUSH2 0x2d07 0000136f: PUSH1 0x29 00001371: SWAP2 00001372: CODECOPY 00001373: PUSH1 0x40 00001375: ADD 00001376: SWAP2 00001377: POP 00001378: POP 00001379: PUSH1 0x40 0000137b: MLOAD 0000137c: DUP1 0000137d: SWAP2 0000137e: SUB 0000137f: SWAP1 00001380: REVERT 00001381: JUMPDEST 00001382: PUSH1 0x01 00001384: DUP2 00001385: LT 00001386: ISZERO 00001387: PUSH2 0x13db 0000138a: JUMPI 0000138b: PUSH1 0x40 0000138d: MLOAD 0000138e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000013af: DUP2 000013b0: MSTORE 000013b1: PUSH1 0x04 000013b3: ADD 000013b4: DUP1 000013b5: DUP1 000013b6: PUSH1 0x20 000013b8: ADD 000013b9: DUP3 000013ba: DUP2 000013bb: SUB 000013bc: DUP3 000013bd: MSTORE 000013be: PUSH1 0x2a 000013c0: DUP2 000013c1: MSTORE 000013c2: PUSH1 0x20 000013c4: ADD 000013c5: DUP1 000013c6: PUSH2 0x2d30 000013c9: PUSH1 0x2a 000013cb: SWAP2 000013cc: CODECOPY 000013cd: PUSH1 0x40 000013cf: ADD 000013d0: SWAP2 000013d1: POP 000013d2: POP 000013d3: PUSH1 0x40 000013d5: MLOAD 000013d6: DUP1 000013d7: SWAP2 000013d8: SUB 000013d9: SWAP1 000013da: REVERT 000013db: JUMPDEST 000013dc: PUSH1 0x03 000013de: DUP2 000013df: SWAP1 000013e0: SSTORE 000013e1: PUSH1 0x40 000013e3: DUP1 000013e4: MLOAD 000013e5: DUP3 000013e6: DUP2 000013e7: MSTORE 000013e8: SWAP1 000013e9: MLOAD 000013ea: PUSH32 0x610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c93 0000140b: SWAP2 0000140c: DUP2 0000140d: SWAP1 0000140e: SUB 0000140f: PUSH1 0x20 00001411: ADD 00001412: SWAP1 00001413: LOG1 00001414: POP 00001415: JUMP 00001416: JUMPDEST 00001417: PUSH1 0x00 00001419: DUP1 0000141a: DUP5 0000141b: GT 0000141c: PUSH2 0x1486 0000141f: JUMPI 00001420: PUSH1 0x40 00001422: DUP1 00001423: MLOAD 00001424: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001445: DUP2 00001446: MSTORE 00001447: PUSH1 0x20 00001449: PUSH1 0x04 0000144b: DUP3 0000144c: ADD 0000144d: MSTORE 0000144e: PUSH1 0x14 00001450: PUSH1 0x24 00001452: DUP3 00001453: ADD 00001454: MSTORE 00001455: PUSH32 0x575241503a20494e56414c49445f414d4f554e54000000000000000000000000 00001476: PUSH1 0x44 00001478: DUP3 00001479: ADD 0000147a: MSTORE 0000147b: SWAP1 0000147c: MLOAD 0000147d: SWAP1 0000147e: DUP2 0000147f: SWAP1 00001480: SUB 00001481: PUSH1 0x64 00001483: ADD 00001484: SWAP1 00001485: REVERT 00001486: JUMPDEST 00001487: PUSH2 0x1492 0000148a: DUP6 0000148b: CALLER 0000148c: ADDRESS 0000148d: DUP8 0000148e: PUSH2 0x2675 00001491: JUMP 00001492: JUMPDEST 00001493: PUSH32 0x4f4dff159c274e50aaa8650afd371620db5c679e96bde2a4133cf626384ba046 000014b4: CALLER 000014b5: DUP7 000014b6: DUP7 000014b7: DUP7 000014b8: DUP7 000014b9: PUSH1 0x40 000014bb: MLOAD 000014bc: DUP1 000014bd: DUP7 000014be: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014d3: AND 000014d4: DUP2 000014d5: MSTORE 000014d6: PUSH1 0x20 000014d8: ADD 000014d9: DUP6 000014da: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014ef: AND 000014f0: DUP2 000014f1: MSTORE 000014f2: PUSH1 0x20 000014f4: ADD 000014f5: DUP5 000014f6: DUP2 000014f7: MSTORE 000014f8: PUSH1 0x20 000014fa: ADD 000014fb: DUP1 000014fc: PUSH1 0x20 000014fe: ADD 000014ff: DUP3 00001500: DUP2 00001501: SUB 00001502: DUP3 00001503: MSTORE 00001504: DUP5 00001505: DUP5 00001506: DUP3 00001507: DUP2 00001508: DUP2 00001509: MSTORE 0000150a: PUSH1 0x20 0000150c: ADD 0000150d: SWAP3 0000150e: POP 0000150f: DUP1 00001510: DUP3 00001511: DUP5 00001512: CALLDATACOPY 00001513: PUSH1 0x00 00001515: DUP4 00001516: DUP3 00001517: ADD 00001518: MSTORE 00001519: PUSH1 0x40 0000151b: MLOAD 0000151c: PUSH1 0x1f 0000151e: SWAP1 0000151f: SWAP2 00001520: ADD 00001521: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001542: AND 00001543: SWAP1 00001544: SWAP3 00001545: ADD 00001546: DUP3 00001547: SWAP1 00001548: SUB 00001549: SWAP9 0000154a: POP 0000154b: SWAP1 0000154c: SWAP7 0000154d: POP 0000154e: POP 0000154f: POP 00001550: POP 00001551: POP 00001552: POP 00001553: POP 00001554: LOG1 00001555: POP 00001556: PUSH1 0x01 00001558: SWAP5 00001559: SWAP4 0000155a: POP 0000155b: POP 0000155c: POP 0000155d: POP 0000155e: JUMP 0000155f: JUMPDEST 00001560: PUSH1 0x60 00001562: PUSH1 0x00 00001564: PUSH1 0x02 00001566: SLOAD 00001567: PUSH8 0xffffffffffffffff 00001570: DUP2 00001571: GT 00001572: DUP1 00001573: ISZERO 00001574: PUSH2 0x157c 00001577: JUMPI 00001578: PUSH1 0x00 0000157a: DUP1 0000157b: REVERT 0000157c: JUMPDEST 0000157d: POP 0000157e: PUSH1 0x40 00001580: MLOAD 00001581: SWAP1 00001582: DUP1 00001583: DUP3 00001584: MSTORE 00001585: DUP1 00001586: PUSH1 0x20 00001588: MUL 00001589: PUSH1 0x20 0000158b: ADD 0000158c: DUP3 0000158d: ADD 0000158e: PUSH1 0x40 00001590: MSTORE 00001591: DUP1 00001592: ISZERO 00001593: PUSH2 0x15a6 00001596: JUMPI 00001597: DUP2 00001598: PUSH1 0x20 0000159a: ADD 0000159b: PUSH1 0x20 0000159d: DUP3 0000159e: MUL 0000159f: DUP1 000015a0: CALLDATASIZE 000015a1: DUP4 000015a2: CALLDATACOPY 000015a3: ADD 000015a4: SWAP1 000015a5: POP 000015a6: JUMPDEST 000015a7: POP 000015a8: PUSH1 0x01 000015aa: PUSH1 0x00 000015ac: DUP2 000015ad: DUP2 000015ae: MSTORE 000015af: PUSH1 0x20 000015b1: SWAP2 000015b2: SWAP1 000015b3: SWAP2 000015b4: MSTORE 000015b5: PUSH32 0xcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f 000015d6: SLOAD 000015d7: SWAP2 000015d8: SWAP3 000015d9: POP 000015da: SWAP1 000015db: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015f0: AND 000015f1: JUMPDEST 000015f2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001607: DUP2 00001608: AND 00001609: PUSH1 0x01 0000160b: EQ 0000160c: PUSH2 0x1661 0000160f: JUMPI 00001610: DUP1 00001611: DUP4 00001612: DUP4 00001613: DUP2 00001614: MLOAD 00001615: DUP2 00001616: LT 00001617: PUSH2 0x161c 0000161a: JUMPI 0000161b: INVALID 0000161c: JUMPDEST 0000161d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001632: SWAP3 00001633: DUP4 00001634: AND 00001635: PUSH1 0x20 00001637: SWAP2 00001638: DUP3 00001639: MUL 0000163a: SWAP3 0000163b: SWAP1 0000163c: SWAP3 0000163d: ADD 0000163e: DUP2 0000163f: ADD 00001640: SWAP2 00001641: SWAP1 00001642: SWAP2 00001643: MSTORE 00001644: SWAP2 00001645: DUP2 00001646: AND 00001647: PUSH1 0x00 00001649: SWAP1 0000164a: DUP2 0000164b: MSTORE 0000164c: PUSH1 0x01 0000164e: SWAP3 0000164f: DUP4 00001650: SWAP1 00001651: MSTORE 00001652: PUSH1 0x40 00001654: SWAP1 00001655: KECCAK256 00001656: SLOAD 00001657: SWAP3 00001658: SWAP1 00001659: SWAP2 0000165a: ADD 0000165b: SWAP2 0000165c: AND 0000165d: PUSH2 0x15f1 00001660: JUMP 00001661: JUMPDEST 00001662: POP 00001663: SWAP1 00001664: SWAP2 00001665: POP 00001666: POP 00001667: SWAP1 00001668: JUMP 00001669: JUMPDEST 0000166a: PUSH1 0x40 0000166c: MLOAD 0000166d: DUP1 0000166e: PUSH1 0x40 00001670: ADD 00001671: PUSH1 0x40 00001673: MSTORE 00001674: DUP1 00001675: PUSH1 0x0d 00001677: DUP2 00001678: MSTORE 00001679: PUSH1 0x20 0000167b: ADD 0000167c: PUSH32 0x57726170206d756c746973696700000000000000000000000000000000000000 0000169d: DUP2 0000169e: MSTORE 0000169f: POP 000016a0: DUP2 000016a1: JUMP 000016a2: JUMPDEST 000016a3: PUSH1 0x60 000016a5: PUSH1 0x00 000016a7: PUSH32 0x987804e036e2c4c5e32f45ccae87d65fb92de3f7d16998a7fa3910a01da2ab53 000016c8: PUSH1 0x00 000016ca: SHL 000016cb: DUP7 000016cc: DUP7 000016cd: DUP7 000016ce: DUP1 000016cf: MLOAD 000016d0: SWAP1 000016d1: PUSH1 0x20 000016d3: ADD 000016d4: KECCAK256 000016d5: DUP7 000016d6: PUSH1 0x40 000016d8: MLOAD 000016d9: PUSH1 0x20 000016db: ADD 000016dc: DUP1 000016dd: DUP7 000016de: DUP2 000016df: MSTORE 000016e0: PUSH1 0x20 000016e2: ADD 000016e3: DUP6 000016e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016f9: AND 000016fa: DUP2 000016fb: MSTORE 000016fc: PUSH1 0x20 000016fe: ADD 000016ff: DUP5 00001700: DUP2 00001701: MSTORE 00001702: PUSH1 0x20 00001704: ADD 00001705: DUP4 00001706: DUP2 00001707: MSTORE 00001708: PUSH1 0x20 0000170a: ADD 0000170b: DUP1 0000170c: PUSH1 0x20 0000170e: ADD 0000170f: DUP3 00001710: DUP2 00001711: SUB 00001712: DUP3 00001713: MSTORE 00001714: DUP4 00001715: DUP2 00001716: DUP2 00001717: MLOAD 00001718: DUP2 00001719: MSTORE 0000171a: PUSH1 0x20 0000171c: ADD 0000171d: SWAP2 0000171e: POP 0000171f: DUP1 00001720: MLOAD 00001721: SWAP1 00001722: PUSH1 0x20 00001724: ADD 00001725: SWAP1 00001726: DUP1 00001727: DUP4 00001728: DUP4 00001729: PUSH1 0x00 0000172b: JUMPDEST 0000172c: DUP4 0000172d: DUP2 0000172e: LT 0000172f: ISZERO 00001730: PUSH2 0x1743 00001733: JUMPI 00001734: DUP2 00001735: DUP2 00001736: ADD 00001737: MLOAD 00001738: DUP4 00001739: DUP3 0000173a: ADD 0000173b: MSTORE 0000173c: PUSH1 0x20 0000173e: ADD 0000173f: PUSH2 0x172b 00001742: JUMP 00001743: JUMPDEST 00001744: POP 00001745: POP 00001746: POP 00001747: POP 00001748: SWAP1 00001749: POP 0000174a: SWAP1 0000174b: DUP2 0000174c: ADD 0000174d: SWAP1 0000174e: PUSH1 0x1f 00001750: AND 00001751: DUP1 00001752: ISZERO 00001753: PUSH2 0x1770 00001756: JUMPI 00001757: DUP1 00001758: DUP3 00001759: SUB 0000175a: DUP1 0000175b: MLOAD 0000175c: PUSH1 0x01 0000175e: DUP4 0000175f: PUSH1 0x20 00001761: SUB 00001762: PUSH2 0x0100 00001765: EXP 00001766: SUB 00001767: NOT 00001768: AND 00001769: DUP2 0000176a: MSTORE 0000176b: PUSH1 0x20 0000176d: ADD 0000176e: SWAP2 0000176f: POP 00001770: JUMPDEST 00001771: POP 00001772: PUSH1 0x40 00001774: DUP1 00001775: MLOAD 00001776: DUP1 00001777: DUP4 00001778: SUB 00001779: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 0000179a: ADD 0000179b: DUP2 0000179c: MSTORE 0000179d: DUP3 0000179e: DUP3 0000179f: MSTORE 000017a0: DUP1 000017a1: MLOAD 000017a2: PUSH1 0x20 000017a4: SWAP2 000017a5: DUP3 000017a6: ADD 000017a7: KECCAK256 000017a8: PUSH1 0x05 000017aa: SLOAD 000017ab: PUSH32 0x1900000000000000000000000000000000000000000000000000000000000000 000017cc: SWAP3 000017cd: DUP6 000017ce: ADD 000017cf: SWAP3 000017d0: SWAP1 000017d1: SWAP3 000017d2: MSTORE 000017d3: PUSH32 0x0100000000000000000000000000000000000000000000000000000000000000 000017f4: PUSH1 0x21 000017f6: DUP6 000017f7: ADD 000017f8: MSTORE 000017f9: PUSH1 0x22 000017fb: DUP5 000017fc: ADD 000017fd: SWAP2 000017fe: SWAP1 000017ff: SWAP2 00001800: MSTORE 00001801: PUSH1 0x42 00001803: DUP1 00001804: DUP5 00001805: ADD 00001806: SWAP2 00001807: SWAP1 00001808: SWAP2 00001809: MSTORE 0000180a: DUP2 0000180b: MLOAD 0000180c: DUP1 0000180d: DUP5 0000180e: SUB 0000180f: SWAP1 00001810: SWAP2 00001811: ADD 00001812: DUP2 00001813: MSTORE 00001814: PUSH1 0x62 00001816: SWAP1 00001817: SWAP3 00001818: ADD 00001819: SWAP1 0000181a: MSTORE 0000181b: SWAP14 0000181c: SWAP13 0000181d: POP 0000181e: POP 0000181f: POP 00001820: POP 00001821: POP 00001822: POP 00001823: POP 00001824: POP 00001825: POP 00001826: POP 00001827: POP 00001828: POP 00001829: POP 0000182a: JUMP 0000182b: JUMPDEST 0000182c: PUSH1 0x00 0000182e: SLOAD 0000182f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001844: AND 00001845: CALLER 00001846: EQ 00001847: PUSH2 0x189b 0000184a: JUMPI 0000184b: PUSH1 0x40 0000184d: MLOAD 0000184e: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000186f: DUP2 00001870: MSTORE 00001871: PUSH1 0x04 00001873: ADD 00001874: DUP1 00001875: DUP1 00001876: PUSH1 0x20 00001878: ADD 00001879: DUP3 0000187a: DUP2 0000187b: SUB 0000187c: DUP3 0000187d: MSTORE 0000187e: PUSH1 0x30 00001880: DUP2 00001881: MSTORE 00001882: PUSH1 0x20 00001884: ADD 00001885: DUP1 00001886: PUSH2 0x2d5a 00001889: PUSH1 0x30 0000188b: SWAP2 0000188c: CODECOPY 0000188d: PUSH1 0x40 0000188f: ADD 00001890: SWAP2 00001891: POP 00001892: POP 00001893: PUSH1 0x40 00001895: MLOAD 00001896: DUP1 00001897: SWAP2 00001898: SUB 00001899: SWAP1 0000189a: REVERT 0000189b: JUMPDEST 0000189c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018b1: DUP2 000018b2: AND 000018b3: ISZERO 000018b4: DUP1 000018b5: ISZERO 000018b6: SWAP1 000018b7: PUSH2 0x18d7 000018ba: JUMPI 000018bb: POP 000018bc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018d1: DUP2 000018d2: AND 000018d3: PUSH1 0x01 000018d5: EQ 000018d6: ISZERO 000018d7: JUMPDEST 000018d8: PUSH2 0x192c 000018db: JUMPI 000018dc: PUSH1 0x40 000018de: MLOAD 000018df: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001900: DUP2 00001901: MSTORE 00001902: PUSH1 0x04 00001904: ADD 00001905: DUP1 00001906: DUP1 00001907: PUSH1 0x20 00001909: ADD 0000190a: DUP3 0000190b: DUP2 0000190c: SUB 0000190d: DUP3 0000190e: MSTORE 0000190f: PUSH1 0x24 00001911: DUP2 00001912: MSTORE 00001913: PUSH1 0x20 00001915: ADD 00001916: DUP1 00001917: PUSH2 0x2baf 0000191a: PUSH1 0x24 0000191c: SWAP2 0000191d: CODECOPY 0000191e: PUSH1 0x40 00001920: ADD 00001921: SWAP2 00001922: POP 00001923: POP 00001924: PUSH1 0x40 00001926: MLOAD 00001927: DUP1 00001928: SWAP2 00001929: SUB 0000192a: SWAP1 0000192b: REVERT 0000192c: JUMPDEST 0000192d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001942: DUP2 00001943: DUP2 00001944: AND 00001945: PUSH1 0x00 00001947: SWAP1 00001948: DUP2 00001949: MSTORE 0000194a: PUSH1 0x01 0000194c: PUSH1 0x20 0000194e: MSTORE 0000194f: PUSH1 0x40 00001951: SWAP1 00001952: KECCAK256 00001953: SLOAD 00001954: AND 00001955: ISZERO 00001956: PUSH2 0x19aa 00001959: JUMPI 0000195a: PUSH1 0x40 0000195c: MLOAD 0000195d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000197e: DUP2 0000197f: MSTORE 00001980: PUSH1 0x04 00001982: ADD 00001983: DUP1 00001984: DUP1 00001985: PUSH1 0x20 00001987: ADD 00001988: DUP3 00001989: DUP2 0000198a: SUB 0000198b: DUP3 0000198c: MSTORE 0000198d: PUSH1 0x21 0000198f: DUP2 00001990: MSTORE 00001991: PUSH1 0x20 00001993: ADD 00001994: DUP1 00001995: PUSH2 0x2c77 00001998: PUSH1 0x21 0000199a: SWAP2 0000199b: CODECOPY 0000199c: PUSH1 0x40 0000199e: ADD 0000199f: SWAP2 000019a0: POP 000019a1: POP 000019a2: PUSH1 0x40 000019a4: MLOAD 000019a5: DUP1 000019a6: SWAP2 000019a7: SUB 000019a8: SWAP1 000019a9: REVERT 000019aa: JUMPDEST 000019ab: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019c0: DUP3 000019c1: AND 000019c2: ISZERO 000019c3: DUP1 000019c4: ISZERO 000019c5: SWAP1 000019c6: PUSH2 0x19e6 000019c9: JUMPI 000019ca: POP 000019cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019e0: DUP3 000019e1: AND 000019e2: PUSH1 0x01 000019e4: EQ 000019e5: ISZERO 000019e6: JUMPDEST 000019e7: PUSH2 0x1a3b 000019ea: JUMPI 000019eb: PUSH1 0x40 000019ed: MLOAD 000019ee: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001a0f: DUP2 00001a10: MSTORE 00001a11: PUSH1 0x04 00001a13: ADD 00001a14: DUP1 00001a15: DUP1 00001a16: PUSH1 0x20 00001a18: ADD 00001a19: DUP3 00001a1a: DUP2 00001a1b: SUB 00001a1c: DUP3 00001a1d: MSTORE 00001a1e: PUSH1 0x24 00001a20: DUP2 00001a21: MSTORE 00001a22: PUSH1 0x20 00001a24: ADD 00001a25: DUP1 00001a26: PUSH2 0x2baf 00001a29: PUSH1 0x24 00001a2b: SWAP2 00001a2c: CODECOPY 00001a2d: PUSH1 0x40 00001a2f: ADD 00001a30: SWAP2 00001a31: POP 00001a32: POP 00001a33: PUSH1 0x40 00001a35: MLOAD 00001a36: DUP1 00001a37: SWAP2 00001a38: SUB 00001a39: SWAP1 00001a3a: REVERT 00001a3b: JUMPDEST 00001a3c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a51: DUP4 00001a52: DUP2 00001a53: AND 00001a54: PUSH1 0x00 00001a56: SWAP1 00001a57: DUP2 00001a58: MSTORE 00001a59: PUSH1 0x01 00001a5b: PUSH1 0x20 00001a5d: MSTORE 00001a5e: PUSH1 0x40 00001a60: SWAP1 00001a61: KECCAK256 00001a62: SLOAD 00001a63: DUP2 00001a64: AND 00001a65: SWAP1 00001a66: DUP4 00001a67: AND 00001a68: EQ 00001a69: PUSH2 0x1abd 00001a6c: JUMPI 00001a6d: PUSH1 0x40 00001a6f: MLOAD 00001a70: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001a91: DUP2 00001a92: MSTORE 00001a93: PUSH1 0x04 00001a95: ADD 00001a96: DUP1 00001a97: DUP1 00001a98: PUSH1 0x20 00001a9a: ADD 00001a9b: DUP3 00001a9c: DUP2 00001a9d: SUB 00001a9e: DUP3 00001a9f: MSTORE 00001aa0: PUSH1 0x2c 00001aa2: DUP2 00001aa3: MSTORE 00001aa4: PUSH1 0x20 00001aa6: ADD 00001aa7: DUP1 00001aa8: PUSH2 0x2cdb 00001aab: PUSH1 0x2c 00001aad: SWAP2 00001aae: CODECOPY 00001aaf: PUSH1 0x40 00001ab1: ADD 00001ab2: SWAP2 00001ab3: POP 00001ab4: POP 00001ab5: PUSH1 0x40 00001ab7: MLOAD 00001ab8: DUP1 00001ab9: SWAP2 00001aba: SUB 00001abb: SWAP1 00001abc: REVERT 00001abd: JUMPDEST 00001abe: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ad3: DUP3 00001ad4: DUP2 00001ad5: AND 00001ad6: PUSH1 0x00 00001ad8: DUP2 00001ad9: DUP2 00001ada: MSTORE 00001adb: PUSH1 0x01 00001add: PUSH1 0x20 00001adf: SWAP1 00001ae0: DUP2 00001ae1: MSTORE 00001ae2: PUSH1 0x40 00001ae4: DUP1 00001ae5: DUP4 00001ae6: KECCAK256 00001ae7: DUP1 00001ae8: SLOAD 00001ae9: DUP8 00001aea: DUP8 00001aeb: AND 00001aec: DUP1 00001aed: DUP7 00001aee: MSTORE 00001aef: DUP4 00001af0: DUP7 00001af1: KECCAK256 00001af2: DUP1 00001af3: SLOAD 00001af4: SWAP3 00001af5: DUP10 00001af6: AND 00001af7: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00001b18: SWAP4 00001b19: DUP5 00001b1a: AND 00001b1b: OR 00001b1c: SWAP1 00001b1d: SSTORE 00001b1e: SWAP7 00001b1f: DUP11 00001b20: AND 00001b21: DUP6 00001b22: MSTORE 00001b23: DUP3 00001b24: DUP6 00001b25: KECCAK256 00001b26: DUP1 00001b27: SLOAD 00001b28: DUP3 00001b29: AND 00001b2a: SWAP1 00001b2b: SWAP8 00001b2c: OR 00001b2d: SWAP1 00001b2e: SWAP7 00001b2f: SSTORE 00001b30: SWAP3 00001b31: DUP5 00001b32: SWAP1 00001b33: MSTORE 00001b34: DUP3 00001b35: SLOAD 00001b36: SWAP1 00001b37: SWAP5 00001b38: AND 00001b39: SWAP1 00001b3a: SWAP2 00001b3b: SSTORE 00001b3c: DUP3 00001b3d: MLOAD 00001b3e: SWAP2 00001b3f: DUP3 00001b40: MSTORE 00001b41: SWAP2 00001b42: MLOAD 00001b43: PUSH32 0xf8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf 00001b64: SWAP3 00001b65: SWAP2 00001b66: DUP2 00001b67: SWAP1 00001b68: SUB 00001b69: SWAP1 00001b6a: SWAP2 00001b6b: ADD 00001b6c: SWAP1 00001b6d: LOG1 00001b6e: PUSH1 0x40 00001b70: DUP1 00001b71: MLOAD 00001b72: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b87: DUP4 00001b88: AND 00001b89: DUP2 00001b8a: MSTORE 00001b8b: SWAP1 00001b8c: MLOAD 00001b8d: PUSH32 0x9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea26 00001bae: SWAP2 00001baf: DUP2 00001bb0: SWAP1 00001bb1: SUB 00001bb2: PUSH1 0x20 00001bb4: ADD 00001bb5: SWAP1 00001bb6: LOG1 00001bb7: POP 00001bb8: POP 00001bb9: POP 00001bba: JUMP 00001bbb: JUMPDEST 00001bbc: PUSH1 0x03 00001bbe: SLOAD 00001bbf: SWAP1 00001bc0: JUMP 00001bc1: JUMPDEST 00001bc2: PUSH1 0x00 00001bc4: PUSH2 0x1bcf 00001bc7: DUP6 00001bc8: DUP6 00001bc9: DUP6 00001bca: DUP6 00001bcb: PUSH2 0x16a2 00001bce: JUMP 00001bcf: JUMPDEST 00001bd0: DUP1 00001bd1: MLOAD 00001bd2: SWAP1 00001bd3: PUSH1 0x20 00001bd5: ADD 00001bd6: KECCAK256 00001bd7: SWAP1 00001bd8: POP 00001bd9: SWAP5 00001bda: SWAP4 00001bdb: POP 00001bdc: POP 00001bdd: POP 00001bde: POP 00001bdf: JUMP 00001be0: JUMPDEST 00001be1: PUSH1 0x05 00001be3: SLOAD 00001be4: DUP2 00001be5: JUMP 00001be6: JUMPDEST 00001be7: PUSH1 0x00 00001be9: SLOAD 00001bea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bff: AND 00001c00: CALLER 00001c01: EQ 00001c02: PUSH2 0x1c56 00001c05: JUMPI 00001c06: PUSH1 0x40 00001c08: MLOAD 00001c09: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001c2a: DUP2 00001c2b: MSTORE 00001c2c: PUSH1 0x04 00001c2e: ADD 00001c2f: DUP1 00001c30: DUP1 00001c31: PUSH1 0x20 00001c33: ADD 00001c34: DUP3 00001c35: DUP2 00001c36: SUB 00001c37: DUP3 00001c38: MSTORE 00001c39: PUSH1 0x30 00001c3b: DUP2 00001c3c: MSTORE 00001c3d: PUSH1 0x20 00001c3f: ADD 00001c40: DUP1 00001c41: PUSH2 0x2d5a 00001c44: PUSH1 0x30 00001c46: SWAP2 00001c47: CODECOPY 00001c48: PUSH1 0x40 00001c4a: ADD 00001c4b: SWAP2 00001c4c: POP 00001c4d: POP 00001c4e: PUSH1 0x40 00001c50: MLOAD 00001c51: DUP1 00001c52: SWAP2 00001c53: SUB 00001c54: SWAP1 00001c55: REVERT 00001c56: JUMPDEST 00001c57: DUP1 00001c58: PUSH1 0x01 00001c5a: PUSH1 0x02 00001c5c: SLOAD 00001c5d: SUB 00001c5e: LT 00001c5f: ISZERO 00001c60: PUSH2 0x1cb4 00001c63: JUMPI 00001c64: PUSH1 0x40 00001c66: MLOAD 00001c67: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001c88: DUP2 00001c89: MSTORE 00001c8a: PUSH1 0x04 00001c8c: ADD 00001c8d: DUP1 00001c8e: DUP1 00001c8f: PUSH1 0x20 00001c91: ADD 00001c92: DUP3 00001c93: DUP2 00001c94: SUB 00001c95: DUP3 00001c96: MSTORE 00001c97: PUSH1 0x37 00001c99: DUP2 00001c9a: MSTORE 00001c9b: PUSH1 0x20 00001c9d: ADD 00001c9e: DUP1 00001c9f: PUSH2 0x2bfc 00001ca2: PUSH1 0x37 00001ca4: SWAP2 00001ca5: CODECOPY 00001ca6: PUSH1 0x40 00001ca8: ADD 00001ca9: SWAP2 00001caa: POP 00001cab: POP 00001cac: PUSH1 0x40 00001cae: MLOAD 00001caf: DUP1 00001cb0: SWAP2 00001cb1: SUB 00001cb2: SWAP1 00001cb3: REVERT 00001cb4: JUMPDEST 00001cb5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cca: DUP3 00001ccb: AND 00001ccc: ISZERO 00001ccd: DUP1 00001cce: ISZERO 00001ccf: SWAP1 00001cd0: PUSH2 0x1cf0 00001cd3: JUMPI 00001cd4: POP 00001cd5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cea: DUP3 00001ceb: AND 00001cec: PUSH1 0x01 00001cee: EQ 00001cef: ISZERO 00001cf0: JUMPDEST 00001cf1: PUSH2 0x1d45 00001cf4: JUMPI 00001cf5: PUSH1 0x40 00001cf7: MLOAD 00001cf8: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001d19: DUP2 00001d1a: MSTORE 00001d1b: PUSH1 0x04 00001d1d: ADD 00001d1e: DUP1 00001d1f: DUP1 00001d20: PUSH1 0x20 00001d22: ADD 00001d23: DUP3 00001d24: DUP2 00001d25: SUB 00001d26: DUP3 00001d27: MSTORE 00001d28: PUSH1 0x24 00001d2a: DUP2 00001d2b: MSTORE 00001d2c: PUSH1 0x20 00001d2e: ADD 00001d2f: DUP1 00001d30: PUSH2 0x2baf 00001d33: PUSH1 0x24 00001d35: SWAP2 00001d36: CODECOPY 00001d37: PUSH1 0x40 00001d39: ADD 00001d3a: SWAP2 00001d3b: POP 00001d3c: POP 00001d3d: PUSH1 0x40 00001d3f: MLOAD 00001d40: DUP1 00001d41: SWAP2 00001d42: SUB 00001d43: SWAP1 00001d44: REVERT 00001d45: JUMPDEST 00001d46: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d5b: DUP4 00001d5c: DUP2 00001d5d: AND 00001d5e: PUSH1 0x00 00001d60: SWAP1 00001d61: DUP2 00001d62: MSTORE 00001d63: PUSH1 0x01 00001d65: PUSH1 0x20 00001d67: MSTORE 00001d68: PUSH1 0x40 00001d6a: SWAP1 00001d6b: KECCAK256 00001d6c: SLOAD 00001d6d: DUP2 00001d6e: AND 00001d6f: SWAP1 00001d70: DUP4 00001d71: AND 00001d72: EQ 00001d73: PUSH2 0x1dc7 00001d76: JUMPI 00001d77: PUSH1 0x40 00001d79: MLOAD 00001d7a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001d9b: DUP2 00001d9c: MSTORE 00001d9d: PUSH1 0x04 00001d9f: ADD 00001da0: DUP1 00001da1: DUP1 00001da2: PUSH1 0x20 00001da4: ADD 00001da5: DUP3 00001da6: DUP2 00001da7: SUB 00001da8: DUP3 00001da9: MSTORE 00001daa: PUSH1 0x2c 00001dac: DUP2 00001dad: MSTORE 00001dae: PUSH1 0x20 00001db0: ADD 00001db1: DUP1 00001db2: PUSH2 0x2cdb 00001db5: PUSH1 0x2c 00001db7: SWAP2 00001db8: CODECOPY 00001db9: PUSH1 0x40 00001dbb: ADD 00001dbc: SWAP2 00001dbd: POP 00001dbe: POP 00001dbf: PUSH1 0x40 00001dc1: MLOAD 00001dc2: DUP1 00001dc3: SWAP2 00001dc4: SUB 00001dc5: SWAP1 00001dc6: REVERT 00001dc7: JUMPDEST 00001dc8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ddd: DUP3 00001dde: DUP2 00001ddf: AND 00001de0: PUSH1 0x00 00001de2: DUP2 00001de3: DUP2 00001de4: MSTORE 00001de5: PUSH1 0x01 00001de7: PUSH1 0x20 00001de9: SWAP1 00001dea: DUP2 00001deb: MSTORE 00001dec: PUSH1 0x40 00001dee: DUP1 00001def: DUP4 00001df0: KECCAK256 00001df1: DUP1 00001df2: SLOAD 00001df3: DUP10 00001df4: DUP8 00001df5: AND 00001df6: DUP6 00001df7: MSTORE 00001df8: DUP3 00001df9: DUP6 00001dfa: KECCAK256 00001dfb: DUP1 00001dfc: SLOAD 00001dfd: SWAP2 00001dfe: SWAP1 00001dff: SWAP8 00001e00: AND 00001e01: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00001e22: SWAP2 00001e23: DUP3 00001e24: AND 00001e25: OR 00001e26: SWAP1 00001e27: SWAP7 00001e28: SSTORE 00001e29: SWAP3 00001e2a: DUP5 00001e2b: SWAP1 00001e2c: MSTORE 00001e2d: DUP3 00001e2e: SLOAD 00001e2f: SWAP1 00001e30: SWAP5 00001e31: AND 00001e32: SWAP1 00001e33: SWAP2 00001e34: SSTORE 00001e35: PUSH1 0x02 00001e37: DUP1 00001e38: SLOAD 00001e39: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001e5a: ADD 00001e5b: SWAP1 00001e5c: SSTORE 00001e5d: DUP3 00001e5e: MLOAD 00001e5f: SWAP2 00001e60: DUP3 00001e61: MSTORE 00001e62: SWAP2 00001e63: MLOAD 00001e64: PUSH32 0xf8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf 00001e85: SWAP3 00001e86: SWAP2 00001e87: DUP2 00001e88: SWAP1 00001e89: SUB 00001e8a: SWAP1 00001e8b: SWAP2 00001e8c: ADD 00001e8d: SWAP1 00001e8e: LOG1 00001e8f: DUP1 00001e90: PUSH1 0x03 00001e92: SLOAD 00001e93: EQ 00001e94: PUSH2 0x12b1 00001e97: JUMPI 00001e98: PUSH2 0x12b1 00001e9b: DUP2 00001e9c: PUSH2 0x12b6 00001e9f: JUMP 00001ea0: JUMPDEST 00001ea1: PUSH1 0x40 00001ea3: MLOAD 00001ea4: DUP1 00001ea5: PUSH1 0x40 00001ea7: ADD 00001ea8: PUSH1 0x40 00001eaa: MSTORE 00001eab: DUP1 00001eac: PUSH1 0x05 00001eae: DUP2 00001eaf: MSTORE 00001eb0: PUSH1 0x20 00001eb2: ADD 00001eb3: PUSH32 0x312e302e30000000000000000000000000000000000000000000000000000000 00001ed4: DUP2 00001ed5: MSTORE 00001ed6: POP 00001ed7: DUP2 00001ed8: JUMP 00001ed9: JUMPDEST 00001eda: PUSH1 0x00 00001edc: DUP1 00001edd: DUP6 00001ede: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ef3: AND 00001ef4: PUSH1 0x40 00001ef6: MLOAD 00001ef7: DUP1 00001ef8: PUSH1 0x60 00001efa: ADD 00001efb: PUSH1 0x40 00001efd: MSTORE 00001efe: DUP1 00001eff: PUSH1 0x29 00001f01: DUP2 00001f02: MSTORE 00001f03: PUSH1 0x20 00001f05: ADD 00001f06: PUSH2 0x2bd3 00001f09: PUSH1 0x29 00001f0b: SWAP2 00001f0c: CODECOPY 00001f0d: DUP1 00001f0e: MLOAD 00001f0f: PUSH1 0x20 00001f11: SWAP2 00001f12: DUP3 00001f13: ADD 00001f14: KECCAK256 00001f15: PUSH1 0x40 00001f17: DUP1 00001f18: MLOAD 00001f19: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001f2e: DUP1 00001f2f: DUP12 00001f30: AND 00001f31: PUSH1 0x24 00001f33: DUP4 00001f34: ADD 00001f35: MSTORE 00001f36: DUP10 00001f37: AND 00001f38: PUSH1 0x44 00001f3a: DUP3 00001f3b: ADD 00001f3c: MSTORE 00001f3d: PUSH1 0x64 00001f3f: DUP1 00001f40: DUP3 00001f41: ADD 00001f42: DUP10 00001f43: SWAP1 00001f44: MSTORE 00001f45: DUP3 00001f46: MLOAD 00001f47: DUP1 00001f48: DUP4 00001f49: SUB 00001f4a: SWAP1 00001f4b: SWAP2 00001f4c: ADD 00001f4d: DUP2 00001f4e: MSTORE 00001f4f: PUSH1 0x84 00001f51: SWAP1 00001f52: SWAP2 00001f53: ADD 00001f54: DUP3 00001f55: MSTORE 00001f56: SWAP3 00001f57: DUP4 00001f58: ADD 00001f59: DUP1 00001f5a: MLOAD 00001f5b: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00001f78: AND 00001f79: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001f9a: SWAP1 00001f9b: SWAP4 00001f9c: AND 00001f9d: SWAP3 00001f9e: SWAP1 00001f9f: SWAP3 00001fa0: OR 00001fa1: DUP3 00001fa2: MSTORE 00001fa3: MLOAD 00001fa4: DUP3 00001fa5: MLOAD 00001fa6: SWAP1 00001fa7: SWAP2 00001fa8: DUP3 00001fa9: SWAP2 00001faa: DUP1 00001fab: DUP4 00001fac: DUP4 00001fad: JUMPDEST 00001fae: PUSH1 0x20 00001fb0: DUP4 00001fb1: LT 00001fb2: PUSH2 0x1fea 00001fb5: JUMPI 00001fb6: DUP1 00001fb7: MLOAD 00001fb8: DUP3 00001fb9: MSTORE 00001fba: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00001fdb: SWAP1 00001fdc: SWAP3 00001fdd: ADD 00001fde: SWAP2 00001fdf: PUSH1 0x20 00001fe1: SWAP2 00001fe2: DUP3 00001fe3: ADD 00001fe4: SWAP2 00001fe5: ADD 00001fe6: PUSH2 0x1fad 00001fe9: JUMP 00001fea: JUMPDEST 00001feb: PUSH1 0x01 00001fed: DUP4 00001fee: PUSH1 0x20 00001ff0: SUB 00001ff1: PUSH2 0x0100 00001ff4: EXP 00001ff5: SUB 00001ff6: DUP1 00001ff7: NOT 00001ff8: DUP3 00001ff9: MLOAD 00001ffa: AND 00001ffb: DUP2 00001ffc: DUP5 00001ffd: MLOAD 00001ffe: AND 00001fff: DUP1 00002000: DUP3 00002001: OR 00002002: DUP6 00002003: MSTORE 00002004: POP 00002005: POP 00002006: POP 00002007: POP 00002008: POP 00002009: POP 0000200a: SWAP1 0000200b: POP 0000200c: ADD 0000200d: SWAP2 0000200e: POP 0000200f: POP 00002010: PUSH1 0x00 00002012: PUSH1 0x40 00002014: MLOAD 00002015: DUP1 00002016: DUP4 00002017: SUB 00002018: DUP2 00002019: PUSH1 0x00 0000201b: DUP7 0000201c: GAS 0000201d: CALL 0000201e: SWAP2 0000201f: POP 00002020: POP 00002021: RETURNDATASIZE 00002022: DUP1 00002023: PUSH1 0x00 00002025: DUP2 00002026: EQ 00002027: PUSH2 0x204c 0000202a: JUMPI 0000202b: PUSH1 0x40 0000202d: MLOAD 0000202e: SWAP2 0000202f: POP 00002030: PUSH1 0x1f 00002032: NOT 00002033: PUSH1 0x3f 00002035: RETURNDATASIZE 00002036: ADD 00002037: AND 00002038: DUP3 00002039: ADD 0000203a: PUSH1 0x40 0000203c: MSTORE 0000203d: RETURNDATASIZE 0000203e: DUP3 0000203f: MSTORE 00002040: RETURNDATASIZE 00002041: PUSH1 0x00 00002043: PUSH1 0x20 00002045: DUP5 00002046: ADD 00002047: RETURNDATACOPY 00002048: PUSH2 0x2051 0000204b: JUMP 0000204c: JUMPDEST 0000204d: PUSH1 0x60 0000204f: SWAP2 00002050: POP 00002051: JUMPDEST 00002052: POP 00002053: SWAP2 00002054: POP 00002055: SWAP2 00002056: POP 00002057: DUP2 00002058: DUP1 00002059: ISZERO 0000205a: PUSH2 0x207f 0000205d: JUMPI 0000205e: POP 0000205f: DUP1 00002060: MLOAD 00002061: ISZERO 00002062: DUP1 00002063: PUSH2 0x207f 00002066: JUMPI 00002067: POP 00002068: DUP1 00002069: DUP1 0000206a: PUSH1 0x20 0000206c: ADD 0000206d: SWAP1 0000206e: MLOAD 0000206f: PUSH1 0x20 00002071: DUP2 00002072: LT 00002073: ISZERO 00002074: PUSH2 0x207c 00002077: JUMPI 00002078: PUSH1 0x00 0000207a: DUP1 0000207b: REVERT 0000207c: JUMPDEST 0000207d: POP 0000207e: MLOAD 0000207f: JUMPDEST 00002080: PUSH2 0x20ea 00002083: JUMPI 00002084: PUSH1 0x40 00002086: DUP1 00002087: MLOAD 00002088: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000020a9: DUP2 000020aa: MSTORE 000020ab: PUSH1 0x20 000020ad: PUSH1 0x04 000020af: DUP3 000020b0: ADD 000020b1: MSTORE 000020b2: PUSH1 0x1c 000020b4: PUSH1 0x24 000020b6: DUP3 000020b7: ADD 000020b8: MSTORE 000020b9: PUSH32 0x575241503a204552433732315f5452414e534645525f4641494c454400000000 000020da: PUSH1 0x44 000020dc: DUP3 000020dd: ADD 000020de: MSTORE 000020df: SWAP1 000020e0: MLOAD 000020e1: SWAP1 000020e2: DUP2 000020e3: SWAP1 000020e4: SUB 000020e5: PUSH1 0x64 000020e7: ADD 000020e8: SWAP1 000020e9: REVERT 000020ea: JUMPDEST 000020eb: POP 000020ec: POP 000020ed: POP 000020ee: POP 000020ef: POP 000020f0: POP 000020f1: JUMP 000020f2: JUMPDEST 000020f3: PUSH1 0x03 000020f5: SLOAD 000020f6: DUP1 000020f7: PUSH2 0x2161 000020fa: JUMPI 000020fb: PUSH1 0x40 000020fd: DUP1 000020fe: MLOAD 000020ff: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002120: DUP2 00002121: MSTORE 00002122: PUSH1 0x20 00002124: PUSH1 0x04 00002126: DUP3 00002127: ADD 00002128: MSTORE 00002129: PUSH1 0x1b 0000212b: PUSH1 0x24 0000212d: DUP3 0000212e: ADD 0000212f: MSTORE 00002130: PUSH32 0x575241503a205448524553484f4c445f4e4f545f444546494e45440000000000 00002151: PUSH1 0x44 00002153: DUP3 00002154: ADD 00002155: MSTORE 00002156: SWAP1 00002157: MLOAD 00002158: SWAP1 00002159: DUP2 0000215a: SWAP1 0000215b: SUB 0000215c: PUSH1 0x64 0000215e: ADD 0000215f: SWAP1 00002160: REVERT 00002161: JUMPDEST 00002162: PUSH2 0x216c 00002165: DUP2 00002166: PUSH1 0x41 00002168: PUSH2 0x2886 0000216b: JUMP 0000216c: JUMPDEST 0000216d: DUP3 0000216e: MLOAD 0000216f: LT 00002170: ISZERO 00002171: PUSH2 0x21db 00002174: JUMPI 00002175: PUSH1 0x40 00002177: DUP1 00002178: MLOAD 00002179: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000219a: DUP2 0000219b: MSTORE 0000219c: PUSH1 0x20 0000219e: PUSH1 0x04 000021a0: DUP3 000021a1: ADD 000021a2: MSTORE 000021a3: PUSH1 0x1f 000021a5: PUSH1 0x24 000021a7: DUP3 000021a8: ADD 000021a9: MSTORE 000021aa: PUSH32 0x575241503a205349474e4154555245535f444154415f544f4f5f53484f525400 000021cb: PUSH1 0x44 000021cd: DUP3 000021ce: ADD 000021cf: MSTORE 000021d0: SWAP1 000021d1: MLOAD 000021d2: SWAP1 000021d3: DUP2 000021d4: SWAP1 000021d5: SUB 000021d6: PUSH1 0x64 000021d8: ADD 000021d9: SWAP1 000021da: REVERT 000021db: JUMPDEST 000021dc: PUSH1 0x00 000021de: DUP1 000021df: DUP1 000021e0: PUSH1 0x00 000021e2: DUP1 000021e3: PUSH1 0x00 000021e5: JUMPDEST 000021e6: DUP7 000021e7: DUP2 000021e8: LT 000021e9: ISZERO 000021ea: PUSH2 0x2313 000021ed: JUMPI 000021ee: PUSH2 0x21f7 000021f1: DUP9 000021f2: DUP3 000021f3: PUSH2 0x2900 000021f6: JUMP 000021f7: JUMPDEST 000021f8: SWAP2 000021f9: SWAP6 000021fa: POP 000021fb: SWAP4 000021fc: POP 000021fd: SWAP2 000021fe: POP 000021ff: PUSH2 0x2215 00002202: DUP5 00002203: DUP5 00002204: DUP5 00002205: PUSH2 0x220d 00002208: DUP14 00002209: PUSH2 0x291e 0000220c: JUMP 0000220d: JUMPDEST 0000220e: SWAP3 0000220f: SWAP2 00002210: SWAP1 00002211: PUSH2 0x296f 00002214: JUMP 00002215: JUMPDEST 00002216: SWAP5 00002217: POP 00002218: DUP6 00002219: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000222e: AND 0000222f: DUP6 00002230: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002245: AND 00002246: GT 00002247: DUP1 00002248: ISZERO 00002249: PUSH2 0x2278 0000224c: JUMPI 0000224d: POP 0000224e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002263: DUP6 00002264: DUP2 00002265: AND 00002266: PUSH1 0x00 00002268: SWAP1 00002269: DUP2 0000226a: MSTORE 0000226b: PUSH1 0x01 0000226d: PUSH1 0x20 0000226f: MSTORE 00002270: PUSH1 0x40 00002272: SWAP1 00002273: KECCAK256 00002274: SLOAD 00002275: AND 00002276: ISZERO 00002277: ISZERO 00002278: JUMPDEST 00002279: DUP1 0000227a: ISZERO 0000227b: PUSH2 0x229b 0000227e: JUMPI 0000227f: POP 00002280: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002295: DUP6 00002296: AND 00002297: PUSH1 0x01 00002299: EQ 0000229a: ISZERO 0000229b: JUMPDEST 0000229c: PUSH2 0x2306 0000229f: JUMPI 000022a0: PUSH1 0x40 000022a2: DUP1 000022a3: MLOAD 000022a4: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000022c5: DUP2 000022c6: MSTORE 000022c7: PUSH1 0x20 000022c9: PUSH1 0x04 000022cb: DUP3 000022cc: ADD 000022cd: MSTORE 000022ce: PUSH1 0x1c 000022d0: PUSH1 0x24 000022d2: DUP3 000022d3: ADD 000022d4: MSTORE 000022d5: PUSH32 0x575241503a20494e56414c49445f4f574e45525f50524f564944454400000000 000022f6: PUSH1 0x44 000022f8: DUP3 000022f9: ADD 000022fa: MSTORE 000022fb: SWAP1 000022fc: MLOAD 000022fd: SWAP1 000022fe: DUP2 000022ff: SWAP1 00002300: SUB 00002301: PUSH1 0x64 00002303: ADD 00002304: SWAP1 00002305: REVERT 00002306: JUMPDEST 00002307: SWAP4 00002308: SWAP5 00002309: POP 0000230a: DUP5 0000230b: SWAP4 0000230c: PUSH1 0x01 0000230e: ADD 0000230f: PUSH2 0x21e5 00002312: JUMP 00002313: JUMPDEST 00002314: POP 00002315: POP 00002316: POP 00002317: POP 00002318: POP 00002319: POP 0000231a: POP 0000231b: POP 0000231c: POP 0000231d: JUMP 0000231e: JUMPDEST 0000231f: PUSH1 0x00 00002321: DUP1 00002322: PUSH1 0x00 00002324: DUP5 00002325: MLOAD 00002326: PUSH1 0x20 00002328: DUP7 00002329: ADD 0000232a: DUP8 0000232b: DUP10 0000232c: DUP8 0000232d: CALL 0000232e: SWAP6 0000232f: SWAP5 00002330: POP 00002331: POP 00002332: POP 00002333: POP 00002334: POP 00002335: JUMP 00002336: JUMPDEST 00002337: PUSH1 0x03 00002339: SLOAD 0000233a: ISZERO 0000233b: PUSH2 0x23a5 0000233e: JUMPI 0000233f: PUSH1 0x40 00002341: DUP1 00002342: MLOAD 00002343: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002364: DUP2 00002365: MSTORE 00002366: PUSH1 0x20 00002368: PUSH1 0x04 0000236a: DUP3 0000236b: ADD 0000236c: MSTORE 0000236d: PUSH1 0x1c 0000236f: PUSH1 0x24 00002371: DUP3 00002372: ADD 00002373: MSTORE 00002374: PUSH32 0x575241503a20434f4e54524143545f414c52454144595f534554555000000000 00002395: PUSH1 0x44 00002397: DUP3 00002398: ADD 00002399: MSTORE 0000239a: SWAP1 0000239b: MLOAD 0000239c: SWAP1 0000239d: DUP2 0000239e: SWAP1 0000239f: SUB 000023a0: PUSH1 0x64 000023a2: ADD 000023a3: SWAP1 000023a4: REVERT 000023a5: JUMPDEST 000023a6: DUP2 000023a7: MLOAD 000023a8: DUP2 000023a9: GT 000023aa: ISZERO 000023ab: PUSH2 0x23ff 000023ae: JUMPI 000023af: PUSH1 0x40 000023b1: MLOAD 000023b2: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000023d3: DUP2 000023d4: MSTORE 000023d5: PUSH1 0x04 000023d7: ADD 000023d8: DUP1 000023d9: DUP1 000023da: PUSH1 0x20 000023dc: ADD 000023dd: DUP3 000023de: DUP2 000023df: SUB 000023e0: DUP3 000023e1: MSTORE 000023e2: PUSH1 0x29 000023e4: DUP2 000023e5: MSTORE 000023e6: PUSH1 0x20 000023e8: ADD 000023e9: DUP1 000023ea: PUSH2 0x2d07 000023ed: PUSH1 0x29 000023ef: SWAP2 000023f0: CODECOPY 000023f1: PUSH1 0x40 000023f3: ADD 000023f4: SWAP2 000023f5: POP 000023f6: POP 000023f7: PUSH1 0x40 000023f9: MLOAD 000023fa: DUP1 000023fb: SWAP2 000023fc: SUB 000023fd: SWAP1 000023fe: REVERT 000023ff: JUMPDEST 00002400: PUSH1 0x01 00002402: DUP2 00002403: LT 00002404: ISZERO 00002405: PUSH2 0x2459 00002408: JUMPI 00002409: PUSH1 0x40 0000240b: MLOAD 0000240c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000242d: DUP2 0000242e: MSTORE 0000242f: PUSH1 0x04 00002431: ADD 00002432: DUP1 00002433: DUP1 00002434: PUSH1 0x20 00002436: ADD 00002437: DUP3 00002438: DUP2 00002439: SUB 0000243a: DUP3 0000243b: MSTORE 0000243c: PUSH1 0x2a 0000243e: DUP2 0000243f: MSTORE 00002440: PUSH1 0x20 00002442: ADD 00002443: DUP1 00002444: PUSH2 0x2d30 00002447: PUSH1 0x2a 00002449: SWAP2 0000244a: CODECOPY 0000244b: PUSH1 0x40 0000244d: ADD 0000244e: SWAP2 0000244f: POP 00002450: POP 00002451: PUSH1 0x40 00002453: MLOAD 00002454: DUP1 00002455: SWAP2 00002456: SUB 00002457: SWAP1 00002458: REVERT 00002459: JUMPDEST 0000245a: PUSH1 0x01 0000245c: PUSH1 0x00 0000245e: JUMPDEST 0000245f: DUP4 00002460: MLOAD 00002461: DUP2 00002462: LT 00002463: ISZERO 00002464: PUSH2 0x261a 00002467: JUMPI 00002468: PUSH1 0x00 0000246a: DUP5 0000246b: DUP3 0000246c: DUP2 0000246d: MLOAD 0000246e: DUP2 0000246f: LT 00002470: PUSH2 0x2475 00002473: JUMPI 00002474: INVALID 00002475: JUMPDEST 00002476: PUSH1 0x20 00002478: MUL 00002479: PUSH1 0x20 0000247b: ADD 0000247c: ADD 0000247d: MLOAD 0000247e: SWAP1 0000247f: POP 00002480: PUSH1 0x00 00002482: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002497: AND 00002498: DUP2 00002499: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024ae: AND 000024af: EQ 000024b0: ISZERO 000024b1: DUP1 000024b2: ISZERO 000024b3: PUSH2 0x24d3 000024b6: JUMPI 000024b7: POP 000024b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024cd: DUP2 000024ce: AND 000024cf: PUSH1 0x01 000024d1: EQ 000024d2: ISZERO 000024d3: JUMPDEST 000024d4: PUSH2 0x253e 000024d7: JUMPI 000024d8: PUSH1 0x40 000024da: DUP1 000024db: MLOAD 000024dc: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000024fd: DUP2 000024fe: MSTORE 000024ff: PUSH1 0x20 00002501: PUSH1 0x04 00002503: DUP3 00002504: ADD 00002505: MSTORE 00002506: PUSH1 0x1c 00002508: PUSH1 0x24 0000250a: DUP3 0000250b: ADD 0000250c: MSTORE 0000250d: PUSH32 0x575241503a20494e56414c49445f4f574e45525f50524f564944454400000000 0000252e: PUSH1 0x44 00002530: DUP3 00002531: ADD 00002532: MSTORE 00002533: SWAP1 00002534: MLOAD 00002535: SWAP1 00002536: DUP2 00002537: SWAP1 00002538: SUB 00002539: PUSH1 0x64 0000253b: ADD 0000253c: SWAP1 0000253d: REVERT 0000253e: JUMPDEST 0000253f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002554: DUP2 00002555: DUP2 00002556: AND 00002557: PUSH1 0x00 00002559: SWAP1 0000255a: DUP2 0000255b: MSTORE 0000255c: PUSH1 0x01 0000255e: PUSH1 0x20 00002560: MSTORE 00002561: PUSH1 0x40 00002563: SWAP1 00002564: KECCAK256 00002565: SLOAD 00002566: AND 00002567: ISZERO 00002568: PUSH2 0x25bc 0000256b: JUMPI 0000256c: PUSH1 0x40 0000256e: MLOAD 0000256f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002590: DUP2 00002591: MSTORE 00002592: PUSH1 0x04 00002594: ADD 00002595: DUP1 00002596: DUP1 00002597: PUSH1 0x20 00002599: ADD 0000259a: DUP3 0000259b: DUP2 0000259c: SUB 0000259d: DUP3 0000259e: MSTORE 0000259f: PUSH1 0x26 000025a1: DUP2 000025a2: MSTORE 000025a3: PUSH1 0x20 000025a5: ADD 000025a6: DUP1 000025a7: PUSH2 0x2d8a 000025aa: PUSH1 0x26 000025ac: SWAP2 000025ad: CODECOPY 000025ae: PUSH1 0x40 000025b0: ADD 000025b1: SWAP2 000025b2: POP 000025b3: POP 000025b4: PUSH1 0x40 000025b6: MLOAD 000025b7: DUP1 000025b8: SWAP2 000025b9: SUB 000025ba: SWAP1 000025bb: REVERT 000025bc: JUMPDEST 000025bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000025d2: SWAP3 000025d3: DUP4 000025d4: AND 000025d5: PUSH1 0x00 000025d7: SWAP1 000025d8: DUP2 000025d9: MSTORE 000025da: PUSH1 0x01 000025dc: PUSH1 0x20 000025de: DUP2 000025df: SWAP1 000025e0: MSTORE 000025e1: PUSH1 0x40 000025e3: SWAP1 000025e4: SWAP2 000025e5: KECCAK256 000025e6: DUP1 000025e7: SLOAD 000025e8: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00002609: AND 0000260a: SWAP5 0000260b: DUP4 0000260c: AND 0000260d: SWAP5 0000260e: SWAP1 0000260f: SWAP5 00002610: OR 00002611: SWAP1 00002612: SWAP4 00002613: SSTORE 00002614: SWAP2 00002615: ADD 00002616: PUSH2 0x245e 00002619: JUMP 0000261a: JUMPDEST 0000261b: POP 0000261c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002631: AND 00002632: PUSH1 0x00 00002634: SWAP1 00002635: DUP2 00002636: MSTORE 00002637: PUSH1 0x01 00002639: PUSH1 0x20 0000263b: DUP2 0000263c: SWAP1 0000263d: MSTORE 0000263e: PUSH1 0x40 00002640: SWAP1 00002641: SWAP2 00002642: KECCAK256 00002643: DUP1 00002644: SLOAD 00002645: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00002666: AND 00002667: SWAP1 00002668: SWAP2 00002669: OR 0000266a: SWAP1 0000266b: SSTORE 0000266c: SWAP1 0000266d: MLOAD 0000266e: PUSH1 0x02 00002670: SSTORE 00002671: PUSH1 0x03 00002673: SSTORE 00002674: JUMP 00002675: JUMPDEST 00002676: PUSH1 0x00 00002678: DUP1 00002679: DUP6 0000267a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000268f: AND 00002690: PUSH1 0x40 00002692: MLOAD 00002693: DUP1 00002694: PUSH1 0x60 00002696: ADD 00002697: PUSH1 0x40 00002699: MSTORE 0000269a: DUP1 0000269b: PUSH1 0x25 0000269d: DUP2 0000269e: MSTORE 0000269f: PUSH1 0x20 000026a1: ADD 000026a2: PUSH2 0x2b8a 000026a5: PUSH1 0x25 000026a7: SWAP2 000026a8: CODECOPY 000026a9: DUP1 000026aa: MLOAD 000026ab: PUSH1 0x20 000026ad: SWAP2 000026ae: DUP3 000026af: ADD 000026b0: KECCAK256 000026b1: PUSH1 0x40 000026b3: DUP1 000026b4: MLOAD 000026b5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000026ca: DUP1 000026cb: DUP12 000026cc: AND 000026cd: PUSH1 0x24 000026cf: DUP4 000026d0: ADD 000026d1: MSTORE 000026d2: DUP10 000026d3: AND 000026d4: PUSH1 0x44 000026d6: DUP3 000026d7: ADD 000026d8: MSTORE 000026d9: PUSH1 0x64 000026db: DUP1 000026dc: DUP3 000026dd: ADD 000026de: DUP10 000026df: SWAP1 000026e0: MSTORE 000026e1: DUP3 000026e2: MLOAD 000026e3: DUP1 000026e4: DUP4 000026e5: SUB 000026e6: SWAP1 000026e7: SWAP2 000026e8: ADD 000026e9: DUP2 000026ea: MSTORE 000026eb: PUSH1 0x84 000026ed: SWAP1 000026ee: SWAP2 000026ef: ADD 000026f0: DUP3 000026f1: MSTORE 000026f2: SWAP3 000026f3: DUP4 000026f4: ADD 000026f5: DUP1 000026f6: MLOAD 000026f7: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002714: AND 00002715: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00002736: SWAP1 00002737: SWAP4 00002738: AND 00002739: SWAP3 0000273a: SWAP1 0000273b: SWAP3 0000273c: OR 0000273d: DUP3 0000273e: MSTORE 0000273f: MLOAD 00002740: DUP3 00002741: MLOAD 00002742: SWAP1 00002743: SWAP2 00002744: DUP3 00002745: SWAP2 00002746: DUP1 00002747: DUP4 00002748: DUP4 00002749: JUMPDEST 0000274a: PUSH1 0x20 0000274c: DUP4 0000274d: LT 0000274e: PUSH2 0x2786 00002751: JUMPI 00002752: DUP1 00002753: MLOAD 00002754: DUP3 00002755: MSTORE 00002756: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00002777: SWAP1 00002778: SWAP3 00002779: ADD 0000277a: SWAP2 0000277b: PUSH1 0x20 0000277d: SWAP2 0000277e: DUP3 0000277f: ADD 00002780: SWAP2 00002781: ADD 00002782: PUSH2 0x2749 00002785: JUMP 00002786: JUMPDEST 00002787: PUSH1 0x01 00002789: DUP4 0000278a: PUSH1 0x20 0000278c: SUB 0000278d: PUSH2 0x0100 00002790: EXP 00002791: SUB 00002792: DUP1 00002793: NOT 00002794: DUP3 00002795: MLOAD 00002796: AND 00002797: DUP2 00002798: DUP5 00002799: MLOAD 0000279a: AND 0000279b: DUP1 0000279c: DUP3 0000279d: OR 0000279e: DUP6 0000279f: MSTORE 000027a0: POP 000027a1: POP 000027a2: POP 000027a3: POP 000027a4: POP 000027a5: POP 000027a6: SWAP1 000027a7: POP 000027a8: ADD 000027a9: SWAP2 000027aa: POP 000027ab: POP 000027ac: PUSH1 0x00 000027ae: PUSH1 0x40 000027b0: MLOAD 000027b1: DUP1 000027b2: DUP4 000027b3: SUB 000027b4: DUP2 000027b5: PUSH1 0x00 000027b7: DUP7 000027b8: GAS 000027b9: CALL 000027ba: SWAP2 000027bb: POP 000027bc: POP 000027bd: RETURNDATASIZE 000027be: DUP1 000027bf: PUSH1 0x00 000027c1: DUP2 000027c2: EQ 000027c3: PUSH2 0x27e8 000027c6: JUMPI 000027c7: PUSH1 0x40 000027c9: MLOAD 000027ca: SWAP2 000027cb: POP 000027cc: PUSH1 0x1f 000027ce: NOT 000027cf: PUSH1 0x3f 000027d1: RETURNDATASIZE 000027d2: ADD 000027d3: AND 000027d4: DUP3 000027d5: ADD 000027d6: PUSH1 0x40 000027d8: MSTORE 000027d9: RETURNDATASIZE 000027da: DUP3 000027db: MSTORE 000027dc: RETURNDATASIZE 000027dd: PUSH1 0x00 000027df: PUSH1 0x20 000027e1: DUP5 000027e2: ADD 000027e3: RETURNDATACOPY 000027e4: PUSH2 0x27ed 000027e7: JUMP 000027e8: JUMPDEST 000027e9: PUSH1 0x60 000027eb: SWAP2 000027ec: POP 000027ed: JUMPDEST 000027ee: POP 000027ef: SWAP2 000027f0: POP 000027f1: SWAP2 000027f2: POP 000027f3: DUP2 000027f4: DUP1 000027f5: ISZERO 000027f6: PUSH2 0x281b 000027f9: JUMPI 000027fa: POP 000027fb: DUP1 000027fc: MLOAD 000027fd: ISZERO 000027fe: DUP1 000027ff: PUSH2 0x281b 00002802: JUMPI 00002803: POP 00002804: DUP1 00002805: DUP1 00002806: PUSH1 0x20 00002808: ADD 00002809: SWAP1 0000280a: MLOAD 0000280b: PUSH1 0x20 0000280d: DUP2 0000280e: LT 0000280f: ISZERO 00002810: PUSH2 0x2818 00002813: JUMPI 00002814: PUSH1 0x00 00002816: DUP1 00002817: REVERT 00002818: JUMPDEST 00002819: POP 0000281a: MLOAD 0000281b: JUMPDEST 0000281c: PUSH2 0x20ea 0000281f: JUMPI 00002820: PUSH1 0x40 00002822: DUP1 00002823: MLOAD 00002824: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002845: DUP2 00002846: MSTORE 00002847: PUSH1 0x20 00002849: PUSH1 0x04 0000284b: DUP3 0000284c: ADD 0000284d: MSTORE 0000284e: PUSH1 0x1b 00002850: PUSH1 0x24 00002852: DUP3 00002853: ADD 00002854: MSTORE 00002855: PUSH32 0x575241503a2045524332305f5452414e534645525f4641494c45440000000000 00002876: PUSH1 0x44 00002878: DUP3 00002879: ADD 0000287a: MSTORE 0000287b: SWAP1 0000287c: MLOAD 0000287d: SWAP1 0000287e: DUP2 0000287f: SWAP1 00002880: SUB 00002881: PUSH1 0x64 00002883: ADD 00002884: SWAP1 00002885: REVERT 00002886: JUMPDEST 00002887: PUSH1 0x00 00002889: DUP3 0000288a: PUSH2 0x2895 0000288d: JUMPI 0000288e: POP 0000288f: PUSH1 0x00 00002891: PUSH2 0x0e54 00002894: JUMP 00002895: JUMPDEST 00002896: DUP3 00002897: DUP3 00002898: MUL 00002899: DUP3 0000289a: DUP5 0000289b: DUP3 0000289c: DUP2 0000289d: PUSH2 0x28a2 000028a0: JUMPI 000028a1: INVALID 000028a2: JUMPDEST 000028a3: DIV 000028a4: EQ 000028a5: PUSH2 0x28f9 000028a8: JUMPI 000028a9: PUSH1 0x40 000028ab: MLOAD 000028ac: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000028cd: DUP2 000028ce: MSTORE 000028cf: PUSH1 0x04 000028d1: ADD 000028d2: DUP1 000028d3: DUP1 000028d4: PUSH1 0x20 000028d6: ADD 000028d7: DUP3 000028d8: DUP2 000028d9: SUB 000028da: DUP3 000028db: MSTORE 000028dc: PUSH1 0x21 000028de: DUP2 000028df: MSTORE 000028e0: PUSH1 0x20 000028e2: ADD 000028e3: DUP1 000028e4: PUSH2 0x2cba 000028e7: PUSH1 0x21 000028e9: SWAP2 000028ea: CODECOPY 000028eb: PUSH1 0x40 000028ed: ADD 000028ee: SWAP2 000028ef: POP 000028f0: POP 000028f1: PUSH1 0x40 000028f3: MLOAD 000028f4: DUP1 000028f5: SWAP2 000028f6: SUB 000028f7: SWAP1 000028f8: REVERT 000028f9: JUMPDEST 000028fa: SWAP4 000028fb: SWAP3 000028fc: POP 000028fd: POP 000028fe: POP 000028ff: JUMP 00002900: JUMPDEST 00002901: PUSH1 0x41 00002903: SWAP1 00002904: DUP2 00002905: MUL 00002906: SWAP2 00002907: SWAP1 00002908: SWAP2 00002909: ADD 0000290a: PUSH1 0x20 0000290c: DUP2 0000290d: ADD 0000290e: MLOAD 0000290f: PUSH1 0x40 00002911: DUP3 00002912: ADD 00002913: MLOAD 00002914: SWAP2 00002915: SWAP1 00002916: SWAP3 00002917: ADD 00002918: MLOAD 00002919: PUSH1 0xff 0000291b: AND 0000291c: SWAP3 0000291d: JUMP 0000291e: JUMPDEST 0000291f: PUSH1 0x40 00002921: DUP1 00002922: MLOAD 00002923: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 00002944: PUSH1 0x20 00002946: DUP1 00002947: DUP4 00002948: ADD 00002949: SWAP2 0000294a: SWAP1 0000294b: SWAP2 0000294c: MSTORE 0000294d: PUSH1 0x3c 0000294f: DUP1 00002950: DUP4 00002951: ADD 00002952: SWAP5 00002953: SWAP1 00002954: SWAP5 00002955: MSTORE 00002956: DUP3 00002957: MLOAD 00002958: DUP1 00002959: DUP4 0000295a: SUB 0000295b: SWAP1 0000295c: SWAP5 0000295d: ADD 0000295e: DUP5 0000295f: MSTORE 00002960: PUSH1 0x5c 00002962: SWAP1 00002963: SWAP2 00002964: ADD 00002965: SWAP1 00002966: SWAP2 00002967: MSTORE 00002968: DUP2 00002969: MLOAD 0000296a: SWAP2 0000296b: ADD 0000296c: KECCAK256 0000296d: SWAP1 0000296e: JUMP 0000296f: JUMPDEST 00002970: PUSH1 0x00 00002972: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 00002993: DUP3 00002994: GT 00002995: ISZERO 00002996: PUSH2 0x29ea 00002999: JUMPI 0000299a: PUSH1 0x40 0000299c: MLOAD 0000299d: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000029be: DUP2 000029bf: MSTORE 000029c0: PUSH1 0x04 000029c2: ADD 000029c3: DUP1 000029c4: DUP1 000029c5: PUSH1 0x20 000029c7: ADD 000029c8: DUP3 000029c9: DUP2 000029ca: SUB 000029cb: DUP3 000029cc: MSTORE 000029cd: PUSH1 0x22 000029cf: DUP2 000029d0: MSTORE 000029d1: PUSH1 0x20 000029d3: ADD 000029d4: DUP1 000029d5: PUSH2 0x2c33 000029d8: PUSH1 0x22 000029da: SWAP2 000029db: CODECOPY 000029dc: PUSH1 0x40 000029de: ADD 000029df: SWAP2 000029e0: POP 000029e1: POP 000029e2: PUSH1 0x40 000029e4: MLOAD 000029e5: DUP1 000029e6: SWAP2 000029e7: SUB 000029e8: SWAP1 000029e9: REVERT 000029ea: JUMPDEST 000029eb: DUP4 000029ec: PUSH1 0xff 000029ee: AND 000029ef: PUSH1 0x1b 000029f1: EQ 000029f2: DUP1 000029f3: PUSH2 0x29ff 000029f6: JUMPI 000029f7: POP 000029f8: DUP4 000029f9: PUSH1 0xff 000029fb: AND 000029fc: PUSH1 0x1c 000029fe: EQ 000029ff: JUMPDEST 00002a00: PUSH2 0x2a54 00002a03: JUMPI 00002a04: PUSH1 0x40 00002a06: MLOAD 00002a07: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002a28: DUP2 00002a29: MSTORE 00002a2a: PUSH1 0x04 00002a2c: ADD 00002a2d: DUP1 00002a2e: DUP1 00002a2f: PUSH1 0x20 00002a31: ADD 00002a32: DUP3 00002a33: DUP2 00002a34: SUB 00002a35: DUP3 00002a36: MSTORE 00002a37: PUSH1 0x22 00002a39: DUP2 00002a3a: MSTORE 00002a3b: PUSH1 0x20 00002a3d: ADD 00002a3e: DUP1 00002a3f: PUSH2 0x2c98 00002a42: PUSH1 0x22 00002a44: SWAP2 00002a45: CODECOPY 00002a46: PUSH1 0x40 00002a48: ADD 00002a49: SWAP2 00002a4a: POP 00002a4b: POP 00002a4c: PUSH1 0x40 00002a4e: MLOAD 00002a4f: DUP1 00002a50: SWAP2 00002a51: SUB 00002a52: SWAP1 00002a53: REVERT 00002a54: JUMPDEST 00002a55: PUSH1 0x00 00002a57: PUSH1 0x01 00002a59: DUP7 00002a5a: DUP7 00002a5b: DUP7 00002a5c: DUP7 00002a5d: PUSH1 0x40 00002a5f: MLOAD 00002a60: PUSH1 0x00 00002a62: DUP2 00002a63: MSTORE 00002a64: PUSH1 0x20 00002a66: ADD 00002a67: PUSH1 0x40 00002a69: MSTORE 00002a6a: PUSH1 0x40 00002a6c: MLOAD 00002a6d: DUP1 00002a6e: DUP6 00002a6f: DUP2 00002a70: MSTORE 00002a71: PUSH1 0x20 00002a73: ADD 00002a74: DUP5 00002a75: PUSH1 0xff 00002a77: AND 00002a78: DUP2 00002a79: MSTORE 00002a7a: PUSH1 0x20 00002a7c: ADD 00002a7d: DUP4 00002a7e: DUP2 00002a7f: MSTORE 00002a80: PUSH1 0x20 00002a82: ADD 00002a83: DUP3 00002a84: DUP2 00002a85: MSTORE 00002a86: PUSH1 0x20 00002a88: ADD 00002a89: SWAP5 00002a8a: POP 00002a8b: POP 00002a8c: POP 00002a8d: POP 00002a8e: POP 00002a8f: PUSH1 0x20 00002a91: PUSH1 0x40 00002a93: MLOAD 00002a94: PUSH1 0x20 00002a96: DUP2 00002a97: SUB 00002a98: SWAP1 00002a99: DUP1 00002a9a: DUP5 00002a9b: SUB 00002a9c: SWAP1 00002a9d: DUP6 00002a9e: GAS 00002a9f: STATICCALL 00002aa0: ISZERO 00002aa1: DUP1 00002aa2: ISZERO 00002aa3: PUSH2 0x2ab0 00002aa6: JUMPI 00002aa7: RETURNDATASIZE 00002aa8: PUSH1 0x00 00002aaa: DUP1 00002aab: RETURNDATACOPY 00002aac: RETURNDATASIZE 00002aad: PUSH1 0x00 00002aaf: REVERT 00002ab0: JUMPDEST 00002ab1: POP 00002ab2: POP 00002ab3: PUSH1 0x40 00002ab5: MLOAD 00002ab6: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 00002ad7: ADD 00002ad8: MLOAD 00002ad9: SWAP2 00002ada: POP 00002adb: POP 00002adc: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002af1: DUP2 00002af2: AND 00002af3: PUSH2 0x2b5d 00002af6: JUMPI 00002af7: PUSH1 0x40 00002af9: DUP1 00002afa: MLOAD 00002afb: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002b1c: DUP2 00002b1d: MSTORE 00002b1e: PUSH1 0x20 00002b20: PUSH1 0x04 00002b22: DUP3 00002b23: ADD 00002b24: MSTORE 00002b25: PUSH1 0x18 00002b27: PUSH1 0x24 00002b29: DUP3 00002b2a: ADD 00002b2b: MSTORE 00002b2c: PUSH32 0x45434453413a20696e76616c6964207369676e61747572650000000000000000 00002b4d: PUSH1 0x44 00002b4f: DUP3 00002b50: ADD 00002b51: MSTORE 00002b52: SWAP1 00002b53: MLOAD 00002b54: SWAP1 00002b55: DUP2 00002b56: SWAP1 00002b57: SUB 00002b58: PUSH1 0x64 00002b5a: ADD 00002b5b: SWAP1 00002b5c: REVERT 00002b5d: JUMPDEST 00002b5e: SWAP6 00002b5f: SWAP5 00002b60: POP 00002b61: POP 00002b62: POP 00002b63: POP 00002b64: POP 00002b65: JUMP 00002b66: INVALID 00002b67: JUMPI 00002b68: MSTORE 00002b69: COINBASE 00002b6a: POP 00002b6b: GASPRICE 00002b6c: KECCAK256 00002b6d: SLOAD 00002b6e: MSTORE 00002b6f: COINBASE 00002b70: UNKNOWN(0x4E) 00002b71: MSTORE8 00002b72: COINBASE 00002b73: NUMBER 00002b74: SLOAD 00002b75: BLOBHASH 00002b76: UNKNOWN(0x4F) 00002b77: UNKNOWN(0x4E) 00002b78: PUSH0 00002b79: COINBASE 00002b7a: UNKNOWN(0x4C) 00002b7b: MSTORE 00002b7c: GASLIMIT 00002b7d: COINBASE 00002b7e: DIFFICULTY 00002b7f: MSIZE 00002b80: PUSH0 00002b81: POP 00002b82: MSTORE 00002b83: UNKNOWN(0x4F) 00002b84: NUMBER 00002b85: GASLIMIT 00002b86: MSTORE8 00002b87: MSTORE8 00002b88: GASLIMIT 00002b89: DIFFICULTY 00002b8a: PUSH21 0x72616e7366657246726f6d28616464726573732c61 00002ba0: PUSH5 0x6472657373 00002ba6: UNKNOWN(0x2C) 00002ba7: PUSH22 0x696e7432353629575241503a20494e56414c49445f4f 00002bbe: JUMPI 00002bbf: UNKNOWN(0x4E) 00002bc0: GASLIMIT 00002bc1: MSTORE 00002bc2: PUSH0 00002bc3: COINBASE 00002bc4: DIFFICULTY 00002bc5: DIFFICULTY 00002bc6: MSTORE 00002bc7: GASLIMIT 00002bc8: MSTORE8 00002bc9: MSTORE8 00002bca: PUSH0 00002bcb: POP 00002bcc: MSTORE 00002bcd: UNKNOWN(0x4F) 00002bce: JUMP 00002bcf: BLOBHASH 00002bd0: DIFFICULTY 00002bd1: GASLIMIT 00002bd2: DIFFICULTY 00002bd3: PUSH20 0x6166655472616e7366657246726f6d2861646472 00002be8: PUSH6 0x73732c616464 00002bef: PUSH19 0x6573732c75696e7432353629575241503a204e 00002c03: GASLIMIT 00002c04: JUMPI 00002c05: PUSH0 00002c06: UNKNOWN(0x4F) 00002c07: JUMPI 00002c08: UNKNOWN(0x4E) 00002c09: GASLIMIT 00002c0a: MSTORE 00002c0b: PUSH0 00002c0c: NUMBER 00002c0d: UNKNOWN(0x4F) 00002c0e: SSTORE 00002c0f: UNKNOWN(0x4E) 00002c10: SLOAD 00002c11: PUSH0 00002c12: UNKNOWN(0x4E) 00002c13: GASLIMIT 00002c14: GASLIMIT 00002c15: DIFFICULTY 00002c16: MSTORE8 00002c17: PUSH0 00002c18: SLOAD 00002c19: UNKNOWN(0x4F) 00002c1a: PUSH0 00002c1b: TIMESTAMP 00002c1c: GASLIMIT 00002c1d: PUSH0 00002c1e: UNKNOWN(0x4C) 00002c1f: UNKNOWN(0x4F) 00002c20: UNKNOWN(0x4E) 00002c21: SELFBALANCE 00002c22: GASLIMIT 00002c23: MSTORE 00002c24: PUSH0 00002c25: SLOAD 00002c26: BASEFEE 00002c27: COINBASE 00002c28: UNKNOWN(0x4E) 00002c29: PUSH0 00002c2a: SLOAD 00002c2b: BASEFEE 00002c2c: MSTORE 00002c2d: GASLIMIT 00002c2e: MSTORE8 00002c2f: BASEFEE 00002c30: UNKNOWN(0x4F) 00002c31: UNKNOWN(0x4C) 00002c32: DIFFICULTY 00002c33: GASLIMIT 00002c34: NUMBER 00002c35: DIFFICULTY 00002c36: MSTORE8 00002c37: COINBASE 00002c38: GASPRICE 00002c39: KECCAK256 00002c3a: PUSH10 0x6e76616c696420736967 00002c45: PUSH15 0x6174757265202773272076616c7565 00002c55: JUMPI 00002c56: MSTORE 00002c57: COINBASE 00002c58: POP 00002c59: GASPRICE 00002c5a: KECCAK256 00002c5b: DIFFICULTY 00002c5c: UNKNOWN(0x4F) 00002c5d: UNKNOWN(0x4D) 00002c5e: COINBASE 00002c5f: BLOBHASH 00002c60: UNKNOWN(0x4E) 00002c61: PUSH0 00002c62: MSTORE8 00002c63: GASLIMIT 00002c64: POP 00002c65: COINBASE 00002c66: MSTORE 00002c67: COINBASE 00002c68: SLOAD 00002c69: UNKNOWN(0x4F) 00002c6a: MSTORE 00002c6b: PUSH0 00002c6c: COINBASE 00002c6d: UNKNOWN(0x4C) 00002c6e: MSTORE 00002c6f: GASLIMIT 00002c70: COINBASE 00002c71: DIFFICULTY 00002c72: MSIZE 00002c73: PUSH0 00002c74: MSTORE8 00002c75: GASLIMIT 00002c76: SLOAD 00002c77: JUMPI 00002c78: MSTORE 00002c79: COINBASE 00002c7a: POP 00002c7b: GASPRICE 00002c7c: KECCAK256 00002c7d: COINBASE 00002c7e: DIFFICULTY 00002c7f: DIFFICULTY 00002c80: MSTORE 00002c81: GASLIMIT 00002c82: MSTORE8 00002c83: MSTORE8 00002c84: PUSH0 00002c85: BLOBHASH 00002c86: MSTORE8 00002c87: PUSH0 00002c88: COINBASE 00002c89: UNKNOWN(0x4C) 00002c8a: MSTORE 00002c8b: GASLIMIT 00002c8c: COINBASE 00002c8d: DIFFICULTY 00002c8e: MSIZE 00002c8f: PUSH0 00002c90: COINBASE 00002c91: UNKNOWN(0x4E) 00002c92: PUSH0 00002c93: UNKNOWN(0x4F) 00002c94: JUMPI 00002c95: UNKNOWN(0x4E) 00002c96: GASLIMIT 00002c97: MSTORE 00002c98: GASLIMIT 00002c99: NUMBER 00002c9a: DIFFICULTY 00002c9b: MSTORE8 00002c9c: COINBASE 00002c9d: GASPRICE 00002c9e: KECCAK256 00002c9f: PUSH10 0x6e76616c696420736967 00002caa: PUSH15 0x6174757265202776272076616c7565 00002cba: MSTORE8 00002cbb: PUSH2 0x6665 00002cbe: UNKNOWN(0x4D) 00002cbf: PUSH2 0x7468 00002cc2: GASPRICE 00002cc3: KECCAK256 00002cc4: PUSH14 0x756c7469706c69636174696f6e20 00002cd3: PUSH16 0x766572666c6f77575241503a20494e56 00002ce4: COINBASE 00002ce5: UNKNOWN(0x4C) 00002ce6: BLOBHASH 00002ce7: DIFFICULTY 00002ce8: PUSH0 00002ce9: POP 00002cea: MSTORE 00002ceb: GASLIMIT 00002cec: JUMP 00002ced: PUSH0 00002cee: UNKNOWN(0x4F) 00002cef: JUMPI 00002cf0: UNKNOWN(0x4E) 00002cf1: GASLIMIT 00002cf2: MSTORE 00002cf3: PUSH0 00002cf4: UNKNOWN(0x4F) 00002cf5: JUMPI 00002cf6: UNKNOWN(0x4E) 00002cf7: GASLIMIT 00002cf8: MSTORE 00002cf9: PUSH0 00002cfa: POP 00002cfb: COINBASE 00002cfc: BLOBHASH 00002cfd: MSTORE 00002cfe: PUSH0 00002cff: POP 00002d00: MSTORE 00002d01: UNKNOWN(0x4F) 00002d02: JUMP 00002d03: BLOBHASH 00002d04: DIFFICULTY 00002d05: GASLIMIT 00002d06: DIFFICULTY 00002d07: JUMPI 00002d08: MSTORE 00002d09: COINBASE 00002d0a: POP 00002d0b: GASPRICE 00002d0c: KECCAK256 00002d0d: SLOAD 00002d0e: BASEFEE 00002d0f: MSTORE 00002d10: GASLIMIT 00002d11: MSTORE8 00002d12: BASEFEE 00002d13: UNKNOWN(0x4F) 00002d14: UNKNOWN(0x4C) 00002d15: DIFFICULTY 00002d16: PUSH0 00002d17: NUMBER 00002d18: COINBASE 00002d19: UNKNOWN(0x4E) 00002d1a: UNKNOWN(0x4E) 00002d1b: UNKNOWN(0x4F) 00002d1c: SLOAD 00002d1d: PUSH0 00002d1e: GASLIMIT 00002d1f: PC 00002d20: NUMBER 00002d21: GASLIMIT 00002d22: GASLIMIT 00002d23: DIFFICULTY 00002d24: PUSH0 00002d25: UNKNOWN(0x4F) 00002d26: JUMPI 00002d27: UNKNOWN(0x4E) 00002d28: GASLIMIT 00002d29: MSTORE 00002d2a: PUSH0 00002d2b: NUMBER 00002d2c: UNKNOWN(0x4F) 00002d2d: SSTORE 00002d2e: UNKNOWN(0x4E) 00002d2f: SLOAD 00002d30: JUMPI 00002d31: MSTORE 00002d32: COINBASE 00002d33: POP 00002d34: GASPRICE 00002d35: KECCAK256 00002d36: SLOAD 00002d37: BASEFEE 00002d38: MSTORE 00002d39: GASLIMIT 00002d3a: MSTORE8 00002d3b: BASEFEE 00002d3c: UNKNOWN(0x4F) 00002d3d: UNKNOWN(0x4C) 00002d3e: DIFFICULTY 00002d3f: PUSH0 00002d40: UNKNOWN(0x4E) 00002d41: GASLIMIT 00002d42: GASLIMIT 00002d43: GASLIMIT 00002d44: DIFFICULTY 00002d45: PUSH0 00002d46: SLOAD 00002d47: UNKNOWN(0x4F) 00002d48: PUSH0 00002d49: TIMESTAMP 00002d4a: GASLIMIT 00002d4b: PUSH0 00002d4c: SELFBALANCE 00002d4d: MSTORE 00002d4e: GASLIMIT 00002d4f: GASLIMIT 00002d50: SLOAD 00002d51: GASLIMIT 00002d52: MSTORE 00002d53: PUSH0 00002d54: SLOAD 00002d55: BASEFEE 00002d56: COINBASE 00002d57: UNKNOWN(0x4E) 00002d58: PUSH0 00002d59: ADDRESS 00002d5a: JUMPI 00002d5b: MSTORE 00002d5c: COINBASE 00002d5d: POP 00002d5e: GASPRICE 00002d5f: KECCAK256 00002d60: UNKNOWN(0x4D) 00002d61: GASLIMIT 00002d62: SLOAD 00002d63: BASEFEE 00002d64: UNKNOWN(0x4F) 00002d65: DIFFICULTY 00002d66: PUSH0 00002d67: NUMBER 00002d68: COINBASE 00002d69: UNKNOWN(0x4E) 00002d6a: PUSH0 00002d6b: UNKNOWN(0x4F) 00002d6c: UNKNOWN(0x4E) 00002d6d: UNKNOWN(0x4C) 00002d6e: MSIZE 00002d6f: PUSH0 00002d70: TIMESTAMP 00002d71: GASLIMIT 00002d72: PUSH0 00002d73: NUMBER 00002d74: COINBASE 00002d75: UNKNOWN(0x4C) 00002d76: UNKNOWN(0x4C) 00002d77: GASLIMIT 00002d78: DIFFICULTY 00002d79: PUSH0 00002d7a: TIMESTAMP 00002d7b: MSIZE 00002d7c: PUSH0 00002d7d: COINBASE 00002d7e: DIFFICULTY 00002d7f: UNKNOWN(0x4D) 00002d80: BLOBHASH 00002d81: UNKNOWN(0x4E) 00002d82: BLOBHASH 00002d83: MSTORE8 00002d84: SLOAD 00002d85: MSTORE 00002d86: COINBASE 00002d87: SLOAD 00002d88: UNKNOWN(0x4F) 00002d89: MSTORE 00002d8a: JUMPI 00002d8b: MSTORE 00002d8c: COINBASE 00002d8d: POP 00002d8e: GASPRICE 00002d8f: KECCAK256 00002d90: DIFFICULTY 00002d91: SSTORE 00002d92: POP 00002d93: UNKNOWN(0x4C) 00002d94: BLOBHASH 00002d95: NUMBER 00002d96: COINBASE 00002d97: SLOAD 00002d98: GASLIMIT 00002d99: PUSH0 00002d9a: UNKNOWN(0x4F) 00002d9b: JUMPI 00002d9c: UNKNOWN(0x4E) 00002d9d: GASLIMIT 00002d9e: MSTORE 00002d9f: PUSH0 00002da0: COINBASE 00002da1: DIFFICULTY 00002da2: DIFFICULTY 00002da3: MSTORE 00002da4: GASLIMIT 00002da5: MSTORE8 00002da6: MSTORE8 00002da7: PUSH0 00002da8: POP 00002da9: MSTORE 00002daa: UNKNOWN(0x4F) 00002dab: JUMP 00002dac: BLOBHASH 00002dad: DIFFICULTY 00002dae: GASLIMIT 00002daf: DIFFICULTY 00002db0: LOG2 00002db1: PUSH5 0x6970667358 00002db7: UNKNOWN(0x22) 00002db8: SLT 00002db9: KECCAK256 00002dba: PUSH17 0xf702fc78d19ccd35e78eca00de9cbc7d60 00002dcc: CREATE2 00002dcd: UNKNOWN(0xEF) 00002dce: DUP7 00002dcf: RETURN 00002dd0: UNKNOWN(0x26) 00002dd1: NOT 00002dd2: UNKNOWN(0xD0) 00002dd3: SWAP9 00002dd4: UNKNOWN(0xEC) 00002dd5: DUP1 00002dd6: UNKNOWN(0xDC) 00002dd7: PUSH28
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x3e9fb61b351ab0f470279990914d1ecee5bcd0dc82b599a0a90789ea30b3fa07
call_targets:
0x5dc76fd132354be5567ad617fd1fe8fb79421d82
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x3e9fb61b351ab0f470279990914d1ecee5bcd0dc82b599a0a90789ea30b3fa07",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x5dc76fd132354be5567ad617fd1fe8fb79421d82"
],
"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": "0xf698da25",
"selector": "0xf698da25",
"calldata_variants": [
"0xf698da25",
"0xf698da250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8dc5dd9",
"selector": "0xf8dc5dd9",
"calldata_variants": [
"0xf8dc5dd9",
"0xf8dc5dd90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffa1ad74",
"selector": "0xffa1ad74",
"calldata_variants": [
"0xffa1ad74",
"0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe75235b8",
"selector": "0xe75235b8",
"calldata_variants": [
"0xe75235b8",
"0xe75235b80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeed53e9f",
"selector": "0xeed53e9f",
"calldata_variants": [
"0xeed53e9f",
"0xeed53e9f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa3f4df7e",
"selector": "0xa3f4df7e",
"calldata_variants": [
"0xa3f4df7e",
"0xa3f4df7e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc8d3e980",
"selector": "0xc8d3e980",
"calldata_variants": [
"0xc8d3e980",
"0xc8d3e9800000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe318b52b",
"selector": "0xe318b52b",
"calldata_variants": [
"0xe318b52b",
"0xe318b52b0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 8221,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9005,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10169,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 3,
"guards_detected": [],
"untrusted_call_count": 3
}
|
| high | other | codex | Failed execTransaction still consumes tezosOperation, enabling gas‑griefing DoS and stuck unwraps | 85 | no | — |
viewevidence_json{
"evidence": "execTransaction sets tezosOperations[tezosOperation]=true before _execute and does not revert on failure; it merely emits ExecutionFailure.",
"locations": [
"contracts/contracts/WrapMultisig.sol:158",
"contracts/contracts/WrapMultisig.sol:162",
"contracts/contracts/WrapMultisig.sol:167"
],
"recommendation": "Only mark tezosOperation as processed after a successful execution (or revert on failure with require(success)) so failed calls do not consume the nonce; alternatively add an admin-controlled recovery path to reset failed operations.",
"exploit_scenario": "An attacker observes a valid signed unwrap in the mempool and submits the same execTransaction with a tight gas limit so the internal call fails. Because tezosOperations[tezosOperation] is set before execution and the function does not revert on failure, the operation is permanently marked processed and cannot be retried, locking funds corresponding to the Tezos burn."
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x3e9fb61b351ab0f470279990914d1ecee5bcd0dc82b599a0a90789ea30b3fa07
call_targets:
0x5dc76fd132354be5567ad617fd1fe8fb79421d82
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x3e9fb61b351ab0f470279990914d1ecee5bcd0dc82b599a0a90789ea30b3fa07",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x5dc76fd132354be5567ad617fd1fe8fb79421d82"
],
"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": "0xf698da25",
"selector": "0xf698da25",
"calldata_variants": [
"0xf698da25",
"0xf698da250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8dc5dd9",
"selector": "0xf8dc5dd9",
"calldata_variants": [
"0xf8dc5dd9",
"0xf8dc5dd90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffa1ad74",
"selector": "0xffa1ad74",
"calldata_variants": [
"0xffa1ad74",
"0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe75235b8",
"selector": "0xe75235b8",
"calldata_variants": [
"0xe75235b8",
"0xe75235b80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeed53e9f",
"selector": "0xeed53e9f",
"calldata_variants": [
"0xeed53e9f",
"0xeed53e9f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa3f4df7e",
"selector": "0xa3f4df7e",
"calldata_variants": [
"0xa3f4df7e",
"0xa3f4df7e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc8d3e980",
"selector": "0xc8d3e980",
"calldata_variants": [
"0xc8d3e980",
"0xc8d3e9800000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe318b52b",
"selector": "0xe318b52b",
"calldata_variants": [
"0xe318b52b",
"0xe318b52b0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 8221,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 9005,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 10169,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 3,
"guards_detected": []
}
|
| medium | other | codex | execTransaction ignores return data, so ERC20 transfers that return false are treated as successful | 75 | no | — |
viewevidence_json{
"evidence": "_execute uses a raw call and discards return data; execTransaction only checks the boolean success flag.",
"locations": [
"contracts/contracts/WrapMultisig.sol:167",
"contracts/contracts/WrapMultisig.sol:172"
],
"recommendation": "When interacting with token contracts, decode and require a true return value (or use SafeERC20-style checks) so false-returning transfers are treated as failures; consider reverting on any failed token call to keep tezosOperation reusable.",
"exploit_scenario": "Owners sign an unwrap that calls an ERC20 transfer on a token that signals failure by returning false (e.g., blacklisted/paused tokens). The low\u2011level call succeeds (no revert), _execute returns true, ExecutionSuccess is emitted, and tezosOperation is consumed even though no tokens moved."
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0x98e283ffbf559b674a6c42ee93ed640f87dd28a9f4607ee10168954920308a4b
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0x98e283ffbf559b674a6c42ee93ed640f87dd28a9f4607ee10168954920308a4b",
"confirmed": false,
"trace_mode": "structLogs",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xf698da25",
"selector": "0xf698da25",
"calldata_variants": [
"0xf698da25",
"0xf698da250000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf8dc5dd9",
"selector": "0xf8dc5dd9",
"calldata_variants": [
"0xf8dc5dd9",
"0xf8dc5dd90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffa1ad74",
"selector": "0xffa1ad74",
"calldata_variants": [
"0xffa1ad74",
"0xffa1ad740000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe75235b8",
"selector": "0xe75235b8",
"calldata_variants": [
"0xe75235b8",
"0xe75235b80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeed53e9f",
"selector": "0xeed53e9f",
"calldata_variants": [
"0xeed53e9f",
"0xeed53e9f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa3f4df7e",
"selector": "0xa3f4df7e",
"calldata_variants": [
"0xa3f4df7e",
"0xa3f4df7e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc8d3e980",
"selector": "0xc8d3e980",
"calldata_variants": [
"0xc8d3e980",
"0xc8d3e9800000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe318b52b",
"selector": "0xe318b52b",
"calldata_variants": [
"0xe318b52b",
"0xe318b52b0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 1
}
|
| low | auth | codex | Domain separator omits chainId, allowing cross‑chain signature replay | 65 | no | — |
viewevidence_json{
"evidence": "DOMAIN_SEPARATOR_TYPEHASH corresponds to EIP712Domain(address verifyingContract) and setup hashes only the contract address.",
"locations": [
"contracts/contracts/WrapMultisig.sol:22",
"contracts/contracts/WrapMultisig.sol:71"
],
"recommendation": "Include chainId in the EIP\u2011712 domain separator (e.g., name, version, chainId, verifyingContract) and recompute if chainId changes to prevent cross\u2011chain replay.",
"exploit_scenario": "Signatures collected on one chain (or a fork) remain valid on another chain where the contract is deployed at the same address, because the domain separator only includes verifyingContract. An attacker can replay a signed unwrap on a different chain/fork to trigger an unintended execution."
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 0,
"create2_count": 1
}
|