019bb491-3d27-7127-9860-f89577df5ac6
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 |
|---|---|---|---|---|
| 40197 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 40198 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 40199 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 40200 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 40201 | capability.graph | complete | 1 / 3 | 3 months ago |
| 40202 | detector.run | complete | 1 / 3 | 3 months ago |
| 40203 | validation.fork | complete | 1 / 3 | 3 months ago |
| 40267 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 40268 | tool.slither | complete | 1 / 2 | 3 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-_v3kfwtt)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-_v3kfwtt)
Reentrancy in CollateralManagement.withdrawFunds(address,uint256) (contracts/mixins/CollateralManagement.sol#31-38):
External calls:
- to.sendValue(amount) (contracts/mixins/CollateralManagement.sol#35)
Event emitted after the call(s):
- FundsWithdrawn(to,amount) (contracts/mixins/CollateralManagement.sol#37)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
AddressUpgradeable.isContract(address) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#26-35) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#33)
AddressUpgradeable._verifyCallResult(bool,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#147-164) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#156-159)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
3 different versions of Solidity are used:
- Version constraint ^0.7.0 is used by:
-^0.7.0 (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#3)
-^0.7.0 (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#3)
-^0.7.0 (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#3)
-^0.7.0 (contracts/FoundationTreasury.sol#48)
-^0.7.0 (contracts/interfaces/ISendValueWithFallbackWithdraw.sol#3)
-^0.7.0 (contracts/mixins/CollateralManagement.sol#3)
-^0.7.0 (contracts/mixins/WithdrawFromEscrow.sol#3)
-^0.7.0 (contracts/mixins/roles/AdminRole.sol#3)
-^0.7.0 (contracts/mixins/roles/OperatorRole.sol#3)
- Version constraint >=0.4.24<0.8.0 is used by:
->=0.4.24<0.8.0 (@openzeppelin/contracts-upgradeable/proxy/Initializable.sol#4)
- Version constraint >=0.6.0<0.8.0 is used by:
->=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#3)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used
AccessControlUpgradeable._setRoleAdmin(bytes32,bytes32) (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#209-212) is never used and should be removed
ContextUpgradeable.__Context_init() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#17-19) is never used and should be removed
ContextUpgradeable._msgData() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#27-30) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code
Version constraint ^0.7.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching
- EmptyByteArrayCopy
- DynamicArrayCleanup.
It is used by:
- ^0.7.0 (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#3)
- ^0.7.0 (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#3)
- ^0.7.0 (@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol#3)
- ^0.7.0 (contracts/FoundationTreasury.sol#48)
- ^0.7.0 (contracts/interfaces/ISendValueWithFallbackWithdraw.sol#3)
- ^0.7.0 (contracts/mixins/CollateralManagement.sol#3)
- ^0.7.0 (contracts/mixins/WithdrawFromEscrow.sol#3)
- ^0.7.0 (contracts/mixins/roles/AdminRole.sol#3)
- ^0.7.0 (contracts/mixins/roles/OperatorRole.sol#3)
Version constraint >=0.4.24<0.8.0 is too complex.
It is used by:
- >=0.4.24<0.8.0 (@openzeppelin/contracts-upgradeable/proxy/Initializable.sol#4)
Version constraint >=0.6.0<0.8.0 is too complex.
It is used by:
- >=0.6.0<0.8.0 (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#3)
solc-0.7.0 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible.
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
Low level call in AddressUpgradeable.sendValue(address,uint256) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#53-59):
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#57)
Low level call in AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#114-121):
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#119)
Low level call in AddressUpgradeable.functionStaticCall(address,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#139-145):
- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#143)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
Function AccessControlUpgradeable.__AccessControl_init() (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#46-49) is not in mixedCase
Function AccessControlUpgradeable.__AccessControl_init_unchained() (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#51-52) is not in mixedCase
Variable AccessControlUpgradeable.__gap (@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol#225) is not in mixedCase
Function ContextUpgradeable.__Context_init() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#17-19) is not in mixedCase
Function ContextUpgradeable.__Context_init_unchained() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#21-22) is not in mixedCase
Variable ContextUpgradeable.__gap (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#31) is not in mixedCase
Variable CollateralManagement.__gap (contracts/mixins/CollateralManagement.sol#40) is not in mixedCase
Variable AdminRole.__gap (contracts/mixins/roles/AdminRole.sol#41) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
Redundant expression "this (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#28)" inContextUpgradeable (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#16-32)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements
. analyzed (11 contracts with 100 detectors), 23 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.7.0",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.7.0",
"install_stderr": null,
"install_stdout": "Installing solc '0.7.0'...\nVersion '0.7.0' installed."
},
"solc_args": "--base-path /tmp/slither-_v3kfwtt --include-path /tmp/slither-_v3kfwtt/lib --include-path /tmp/slither-_v3kfwtt/lib/openzeppelin-contracts --allow-paths /tmp/slither-_v3kfwtt,/tmp/slither-_v3kfwtt/lib,/tmp/slither-_v3kfwtt/lib/openzeppelin-contracts,/tmp/slither-_v3kfwtt/src",
"remappings": [
"openzeppelin-contracts/=lib/openzeppelin-contracts/"
],
"source_files": [
"contracts/FoundationTreasury.sol",
"@openzeppelin/contracts-upgradeable/proxy/Initializable.sol",
"contracts/mixins/roles/AdminRole.sol",
"contracts/mixins/roles/OperatorRole.sol",
"contracts/mixins/CollateralManagement.sol",
"contracts/mixins/WithdrawFromEscrow.sol",
"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/utils/EnumerableSetUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol",
"contracts/interfaces/ISendValueWithFallbackWithdraw.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 23,
"workspace_hash": "b77b62c42fc5e7218808df8063d3f59488f8c32b982ced73d94fb3df0b36a0f8",
"duration_seconds": 1.176844596862793,
"solc_version_requested": "0.7.6"
}
{"no_findings":true,"summary":"No exploitable vulnerabilities found in the first-party contracts within scope.","findings":[]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-j5jhmpvp
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb4c8-873d-7230-806a-93cd533ca273
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Reviewing AUDIT_BUNDLE.txt contents**
exec
/bin/bash -lc ls in /tmp/codex-j5jhmpvp succeeded in 6ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
@openzeppelin
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-j5jhmpvp succeeded in 5ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/FoundationTreasury.sol
================================================================================
/*
・
* ★
・ 。
・ ゚☆ 。
* ★ ゚・。 * 。
* ☆ 。・゚*.。
゚ *.。☆。★ ・
* ゚。·*・。 ゚*
☆゚・。°*. ゚
・ ゚*。・゚★。
・ *゚。 *
・゚*。★・
☆∴。 *
thinking
**Analyzing upgradeable contract initialization**
exec
/bin/bash -lc 'rg "modifier initializer" -n @openzeppelin/contracts-upgradeable/proxy/Initializable.sol' in /tmp/codex-j5jhmpvp succeeded in 8ms:
35: modifier initializer() {
exec
/bin/bash -lc "sed -n '1,120p' @openzeppelin/contracts-upgradeable/proxy/Initializable.sol" in /tmp/codex-j5jhmpvp succeeded in 5ms:
// SPDX-License-Identifier: MIT
// solhint-disable-next-line compiler-version
pragma solidity >=0.4.24 <0.8.0;
import "../utils/AddressUpgradeable.sol";
/**
* @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed
* behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an
* external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
* function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.
*
* TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as
* possible by providing the encoded function call as the `_data` argument to {UpgradeableProxy-constructor}.
*
* CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure
* that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.
*/
abstract contract Initializable {
thinking
**Analyzing role-based access control logic**
exec
/bin/bash -lc 'rg "__AccessControl_init" -n @openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol' in /tmp/codex-j5jhmpvp succeeded in 9ms:
46: function __AccessControl_init() internal initializer {
48: __AccessControl_init_unchained();
51: function __AccessControl_init_unchained() internal initializer {
exec
/bin/bash -lc "sed -n '1,120p' @openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol" in /tmp/codex-j5jhmpvp succeeded in 6ms:
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
import "../utils/EnumerableSetUpgradeable.sol";
import "../utils/AddressUpgradeable.sol";
import "../utils/ContextUpgradeable.sol";
import "../proxy/Initializable.sol";
/**
* @dev Contract module that allows children to implement role-based access
* control mechanisms.
*
* Roles are referred to by their `bytes32` identifier. These should be exposed
* in the external API and be unique. The best way to achieve this is by
* using `public constant` hash digests:
*
* ```
* bytes32 public constant MY_ROLE = keccak256("MY_ROLE");
* ```
thinking
**Summarizing security findings in JSON**
I'm preparing a JSON summary that states no exploitable issues were found in the first-party contracts, confirms admin roles are set up safely without risky delegatecalls or oracle usage, and includes fields for no_findings, summary, and findings per the required schema. I’ll keep it concise and accurate.
codex
{"no_findings":true,"summary":"No exploitable vulnerabilities found in the first-party contracts within scope.","findings":[]}
tokens used
13,858
{
"codex": {
"ran_at": "2026-01-13T00:38:07.954434+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 11,
"import_count": 13,
"first_party_contracts_count": 6
},
"summary": "No exploitable vulnerabilities found in the first-party contracts within scope.",
"raw_final": {
"summary": "No exploitable vulnerabilities found in the first-party contracts within scope.",
"findings": [],
"no_findings": true
},
"no_findings": true,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x012d 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x924ab158 00000019: GT 0000001a: PUSH2 0x00a5 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xca15c873 00000024: GT 00000025: PUSH2 0x0074 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xe348da13 0000002f: GT 00000030: PUSH2 0x0059 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xe348da13 0000003a: EQ 0000003b: PUSH2 0x0465 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xf5b541a6 00000045: EQ 00000046: PUSH2 0x0498 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xfad8b32a 00000050: EQ 00000051: PUSH2 0x04ad 00000054: JUMPI 00000055: PUSH2 0x0134 00000058: JUMP 00000059: JUMPDEST 0000005a: DUP1 0000005b: PUSH4 0xca15c873 00000060: EQ 00000061: PUSH2 0x0402 00000064: JUMPI 00000065: DUP1 00000066: PUSH4 0xd547741f 0000006b: EQ 0000006c: PUSH2 0x042c 0000006f: JUMPI 00000070: PUSH2 0x0134 00000073: JUMP 00000074: JUMPDEST 00000075: DUP1 00000076: PUSH4 0x924ab158 0000007b: EQ 0000007c: PUSH2 0x034e 0000007f: JUMPI 00000080: DUP1 00000081: PUSH4 0xa217fddf 00000086: EQ 00000087: PUSH2 0x0381 0000008a: JUMPI 0000008b: DUP1 0000008c: PUSH4 0xc1075329 00000091: EQ 00000092: PUSH2 0x0396 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0xc4d66de8 0000009c: EQ 0000009d: PUSH2 0x03cf 000000a0: JUMPI 000000a1: PUSH2 0x0134 000000a4: JUMP 000000a5: JUMPDEST 000000a6: DUP1 000000a7: PUSH4 0x35bb3e16 000000ac: GT 000000ad: PUSH2 0x00fc 000000b0: JUMPI 000000b1: DUP1 000000b2: PUSH4 0x6d70f7ae 000000b7: GT 000000b8: PUSH2 0x00e1 000000bb: JUMPI 000000bc: DUP1 000000bd: PUSH4 0x6d70f7ae 000000c2: EQ 000000c3: PUSH2 0x0296 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0x9010d07c 000000cd: EQ 000000ce: PUSH2 0x02c9 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0x91d14854 000000d8: EQ 000000d9: PUSH2 0x0315 000000dc: JUMPI 000000dd: PUSH2 0x0134 000000e0: JUMP 000000e1: JUMPDEST 000000e2: DUP1 000000e3: PUSH4 0x35bb3e16 000000e8: EQ 000000e9: PUSH2 0x022a 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0x36568abe 000000f3: EQ 000000f4: PUSH2 0x025d 000000f7: JUMPI 000000f8: PUSH2 0x0134 000000fb: JUMP 000000fc: JUMPDEST 000000fd: DUP1 000000fe: PUSH4 0x248a9ca3 00000103: EQ 00000104: PUSH2 0x0139 00000107: JUMPI 00000108: DUP1 00000109: PUSH4 0x24d7806c 0000010e: EQ 0000010f: PUSH2 0x0175 00000112: JUMPI 00000113: DUP1 00000114: PUSH4 0x2d345670 00000119: EQ 0000011a: PUSH2 0x01bc 0000011d: JUMPI 0000011e: DUP1 0000011f: PUSH4 0x2f2ff15d 00000124: EQ 00000125: PUSH2 0x01f1 00000128: JUMPI 00000129: PUSH2 0x0134 0000012c: JUMP 0000012d: JUMPDEST 0000012e: CALLDATASIZE 0000012f: PUSH2 0x0134 00000132: JUMPI 00000133: STOP 00000134: JUMPDEST 00000135: PUSH1 0x00 00000137: DUP1 00000138: REVERT 00000139: JUMPDEST 0000013a: CALLVALUE 0000013b: DUP1 0000013c: ISZERO 0000013d: PUSH2 0x0145 00000140: JUMPI 00000141: PUSH1 0x00 00000143: DUP1 00000144: REVERT 00000145: JUMPDEST 00000146: POP 00000147: PUSH2 0x0163 0000014a: PUSH1 0x04 0000014c: DUP1 0000014d: CALLDATASIZE 0000014e: SUB 0000014f: PUSH1 0x20 00000151: DUP2 00000152: LT 00000153: ISZERO 00000154: PUSH2 0x015c 00000157: JUMPI 00000158: PUSH1 0x00 0000015a: DUP1 0000015b: REVERT 0000015c: JUMPDEST 0000015d: POP 0000015e: CALLDATALOAD 0000015f: PUSH2 0x04e0 00000162: JUMP 00000163: JUMPDEST 00000164: PUSH1 0x40 00000166: DUP1 00000167: MLOAD 00000168: SWAP2 00000169: DUP3 0000016a: MSTORE 0000016b: MLOAD 0000016c: SWAP1 0000016d: DUP2 0000016e: SWAP1 0000016f: SUB 00000170: PUSH1 0x20 00000172: ADD 00000173: SWAP1 00000174: RETURN 00000175: JUMPDEST 00000176: CALLVALUE 00000177: DUP1 00000178: ISZERO 00000179: PUSH2 0x0181 0000017c: JUMPI 0000017d: PUSH1 0x00 0000017f: DUP1 00000180: REVERT 00000181: JUMPDEST 00000182: POP 00000183: PUSH2 0x01a8 00000186: PUSH1 0x04 00000188: DUP1 00000189: CALLDATASIZE 0000018a: SUB 0000018b: PUSH1 0x20 0000018d: DUP2 0000018e: LT 0000018f: ISZERO 00000190: PUSH2 0x0198 00000193: JUMPI 00000194: PUSH1 0x00 00000196: DUP1 00000197: REVERT 00000198: JUMPDEST 00000199: POP 0000019a: CALLDATALOAD 0000019b: PUSH1 0x01 0000019d: PUSH1 0x01 0000019f: PUSH1 0xa0 000001a1: SHL 000001a2: SUB 000001a3: AND 000001a4: PUSH2 0x04f5 000001a7: JUMP 000001a8: JUMPDEST 000001a9: PUSH1 0x40 000001ab: DUP1 000001ac: MLOAD 000001ad: SWAP2 000001ae: ISZERO 000001af: ISZERO 000001b0: DUP3 000001b1: MSTORE 000001b2: MLOAD 000001b3: SWAP1 000001b4: DUP2 000001b5: SWAP1 000001b6: SUB 000001b7: PUSH1 0x20 000001b9: ADD 000001ba: SWAP1 000001bb: RETURN 000001bc: JUMPDEST 000001bd: CALLVALUE 000001be: DUP1 000001bf: ISZERO 000001c0: PUSH2 0x01c8 000001c3: JUMPI 000001c4: PUSH1 0x00 000001c6: DUP1 000001c7: REVERT 000001c8: JUMPDEST 000001c9: POP 000001ca: PUSH2 0x01ef 000001cd: PUSH1 0x04 000001cf: DUP1 000001d0: CALLDATASIZE 000001d1: SUB 000001d2: PUSH1 0x20 000001d4: DUP2 000001d5: LT 000001d6: ISZERO 000001d7: PUSH2 0x01df 000001da: JUMPI 000001db: PUSH1 0x00 000001dd: DUP1 000001de: REVERT 000001df: JUMPDEST 000001e0: POP 000001e1: CALLDATALOAD 000001e2: PUSH1 0x01 000001e4: PUSH1 0x01 000001e6: PUSH1 0xa0 000001e8: SHL 000001e9: SUB 000001ea: AND 000001eb: PUSH2 0x0507 000001ee: JUMP 000001ef: JUMPDEST 000001f0: STOP 000001f1: JUMPDEST 000001f2: CALLVALUE 000001f3: DUP1 000001f4: ISZERO 000001f5: PUSH2 0x01fd 000001f8: JUMPI 000001f9: PUSH1 0x00 000001fb: DUP1 000001fc: REVERT 000001fd: JUMPDEST 000001fe: POP 000001ff: PUSH2 0x01ef 00000202: PUSH1 0x04 00000204: DUP1 00000205: CALLDATASIZE 00000206: SUB 00000207: PUSH1 0x40 00000209: DUP2 0000020a: LT 0000020b: ISZERO 0000020c: PUSH2 0x0214 0000020f: JUMPI 00000210: PUSH1 0x00 00000212: DUP1 00000213: REVERT 00000214: JUMPDEST 00000215: POP 00000216: DUP1 00000217: CALLDATALOAD 00000218: SWAP1 00000219: PUSH1 0x20 0000021b: ADD 0000021c: CALLDATALOAD 0000021d: PUSH1 0x01 0000021f: PUSH1 0x01 00000221: PUSH1 0xa0 00000223: SHL 00000224: SUB 00000225: AND 00000226: PUSH2 0x0515 00000229: JUMP 0000022a: JUMPDEST 0000022b: CALLVALUE 0000022c: DUP1 0000022d: ISZERO 0000022e: PUSH2 0x0236 00000231: JUMPI 00000232: PUSH1 0x00 00000234: DUP1 00000235: REVERT 00000236: JUMPDEST 00000237: POP 00000238: PUSH2 0x01ef 0000023b: PUSH1 0x04 0000023d: DUP1 0000023e: CALLDATASIZE 0000023f: SUB 00000240: PUSH1 0x20 00000242: DUP2 00000243: LT 00000244: ISZERO 00000245: PUSH2 0x024d 00000248: JUMPI 00000249: PUSH1 0x00 0000024b: DUP1 0000024c: REVERT 0000024d: JUMPDEST 0000024e: POP 0000024f: CALLDATALOAD 00000250: PUSH1 0x01 00000252: PUSH1 0x01 00000254: PUSH1 0xa0 00000256: SHL 00000257: SUB 00000258: AND 00000259: PUSH2 0x0581 0000025c: JUMP 0000025d: JUMPDEST 0000025e: CALLVALUE 0000025f: DUP1 00000260: ISZERO 00000261: PUSH2 0x0269 00000264: JUMPI 00000265: PUSH1 0x00 00000267: DUP1 00000268: REVERT 00000269: JUMPDEST 0000026a: POP 0000026b: PUSH2 0x01ef 0000026e: PUSH1 0x04 00000270: DUP1 00000271: CALLDATASIZE 00000272: SUB 00000273: PUSH1 0x40 00000275: DUP2 00000276: LT 00000277: ISZERO 00000278: PUSH2 0x0280 0000027b: JUMPI 0000027c: PUSH1 0x00 0000027e: DUP1 0000027f: REVERT 00000280: JUMPDEST 00000281: POP 00000282: DUP1 00000283: CALLDATALOAD 00000284: SWAP1 00000285: PUSH1 0x20 00000287: ADD 00000288: CALLDATALOAD 00000289: PUSH1 0x01 0000028b: PUSH1 0x01 0000028d: PUSH1 0xa0 0000028f: SHL 00000290: SUB 00000291: AND 00000292: PUSH2 0x058c 00000295: JUMP 00000296: JUMPDEST 00000297: CALLVALUE 00000298: DUP1 00000299: ISZERO 0000029a: PUSH2 0x02a2 0000029d: JUMPI 0000029e: PUSH1 0x00 000002a0: DUP1 000002a1: REVERT 000002a2: JUMPDEST 000002a3: POP 000002a4: PUSH2 0x01a8 000002a7: PUSH1 0x04 000002a9: DUP1 000002aa: CALLDATASIZE 000002ab: SUB 000002ac: PUSH1 0x20 000002ae: DUP2 000002af: LT 000002b0: ISZERO 000002b1: PUSH2 0x02b9 000002b4: JUMPI 000002b5: PUSH1 0x00 000002b7: DUP1 000002b8: REVERT 000002b9: JUMPDEST 000002ba: POP 000002bb: CALLDATALOAD 000002bc: PUSH1 0x01 000002be: PUSH1 0x01 000002c0: PUSH1 0xa0 000002c2: SHL 000002c3: SUB 000002c4: AND 000002c5: PUSH2 0x05ed 000002c8: JUMP 000002c9: JUMPDEST 000002ca: CALLVALUE 000002cb: DUP1 000002cc: ISZERO 000002cd: PUSH2 0x02d5 000002d0: JUMPI 000002d1: PUSH1 0x00 000002d3: DUP1 000002d4: REVERT 000002d5: JUMPDEST 000002d6: POP 000002d7: PUSH2 0x02f9 000002da: PUSH1 0x04 000002dc: DUP1 000002dd: CALLDATASIZE 000002de: SUB 000002df: PUSH1 0x40 000002e1: DUP2 000002e2: LT 000002e3: ISZERO 000002e4: PUSH2 0x02ec 000002e7: JUMPI 000002e8: PUSH1 0x00 000002ea: DUP1 000002eb: REVERT 000002ec: JUMPDEST 000002ed: POP 000002ee: DUP1 000002ef: CALLDATALOAD 000002f0: SWAP1 000002f1: PUSH1 0x20 000002f3: ADD 000002f4: CALLDATALOAD 000002f5: PUSH2 0x0619 000002f8: JUMP 000002f9: JUMPDEST 000002fa: PUSH1 0x40 000002fc: DUP1 000002fd: MLOAD 000002fe: PUSH1 0x01 00000300: PUSH1 0x01 00000302: PUSH1 0xa0 00000304: SHL 00000305: SUB 00000306: SWAP1 00000307: SWAP3 00000308: AND 00000309: DUP3 0000030a: MSTORE 0000030b: MLOAD 0000030c: SWAP1 0000030d: DUP2 0000030e: SWAP1 0000030f: SUB 00000310: PUSH1 0x20 00000312: ADD 00000313: SWAP1 00000314: RETURN 00000315: JUMPDEST 00000316: CALLVALUE 00000317: DUP1 00000318: ISZERO 00000319: PUSH2 0x0321 0000031c: JUMPI 0000031d: PUSH1 0x00 0000031f: DUP1 00000320: REVERT 00000321: JUMPDEST 00000322: POP 00000323: PUSH2 0x01a8 00000326: PUSH1 0x04 00000328: DUP1 00000329: CALLDATASIZE 0000032a: SUB 0000032b: PUSH1 0x40 0000032d: DUP2 0000032e: LT 0000032f: ISZERO 00000330: PUSH2 0x0338 00000333: JUMPI 00000334: PUSH1 0x00 00000336: DUP1 00000337: REVERT 00000338: JUMPDEST 00000339: POP 0000033a: DUP1 0000033b: CALLDATALOAD 0000033c: SWAP1 0000033d: PUSH1 0x20 0000033f: ADD 00000340: CALLDATALOAD 00000341: PUSH1 0x01 00000343: PUSH1 0x01 00000345: PUSH1 0xa0 00000347: SHL 00000348: SUB 00000349: AND 0000034a: PUSH2 0x0638 0000034d: JUMP 0000034e: JUMPDEST 0000034f: CALLVALUE 00000350: DUP1 00000351: ISZERO 00000352: PUSH2 0x035a 00000355: JUMPI 00000356: PUSH1 0x00 00000358: DUP1 00000359: REVERT 0000035a: JUMPDEST 0000035b: POP 0000035c: PUSH2 0x01ef 0000035f: PUSH1 0x04 00000361: DUP1 00000362: CALLDATASIZE 00000363: SUB 00000364: PUSH1 0x20 00000366: DUP2 00000367: LT 00000368: ISZERO 00000369: PUSH2 0x0371 0000036c: JUMPI 0000036d: PUSH1 0x00 0000036f: DUP1 00000370: REVERT 00000371: JUMPDEST 00000372: POP 00000373: CALLDATALOAD 00000374: PUSH1 0x01 00000376: PUSH1 0x01 00000378: PUSH1 0xa0 0000037a: SHL 0000037b: SUB 0000037c: AND 0000037d: PUSH2 0x0650 00000380: JUMP 00000381: JUMPDEST 00000382: CALLVALUE 00000383: DUP1 00000384: ISZERO 00000385: PUSH2 0x038d 00000388: JUMPI 00000389: PUSH1 0x00 0000038b: DUP1 0000038c: REVERT 0000038d: JUMPDEST 0000038e: POP 0000038f: PUSH2 0x0163 00000392: PUSH2 0x06ec 00000395: JUMP 00000396: JUMPDEST 00000397: CALLVALUE 00000398: DUP1 00000399: ISZERO 0000039a: PUSH2 0x03a2 0000039d: JUMPI 0000039e: PUSH1 0x00 000003a0: DUP1 000003a1: REVERT 000003a2: JUMPDEST 000003a3: POP 000003a4: PUSH2 0x01ef 000003a7: PUSH1 0x04 000003a9: DUP1 000003aa: CALLDATASIZE 000003ab: SUB 000003ac: PUSH1 0x40 000003ae: DUP2 000003af: LT 000003b0: ISZERO 000003b1: PUSH2 0x03b9 000003b4: JUMPI 000003b5: PUSH1 0x00 000003b7: DUP1 000003b8: REVERT 000003b9: JUMPDEST 000003ba: POP 000003bb: PUSH1 0x01 000003bd: PUSH1 0x01 000003bf: PUSH1 0xa0 000003c1: SHL 000003c2: SUB 000003c3: DUP2 000003c4: CALLDATALOAD 000003c5: AND 000003c6: SWAP1 000003c7: PUSH1 0x20 000003c9: ADD 000003ca: CALLDATALOAD 000003cb: PUSH2 0x06f1 000003ce: JUMP 000003cf: JUMPDEST 000003d0: CALLVALUE 000003d1: DUP1 000003d2: ISZERO 000003d3: PUSH2 0x03db 000003d6: JUMPI 000003d7: PUSH1 0x00 000003d9: DUP1 000003da: REVERT 000003db: JUMPDEST 000003dc: POP 000003dd: PUSH2 0x01ef 000003e0: PUSH1 0x04 000003e2: DUP1 000003e3: CALLDATASIZE 000003e4: SUB 000003e5: PUSH1 0x20 000003e7: DUP2 000003e8: LT 000003e9: ISZERO 000003ea: PUSH2 0x03f2 000003ed: JUMPI 000003ee: PUSH1 0x00 000003f0: DUP1 000003f1: REVERT 000003f2: JUMPDEST 000003f3: POP 000003f4: CALLDATALOAD 000003f5: PUSH1 0x01 000003f7: PUSH1 0x01 000003f9: PUSH1 0xa0 000003fb: SHL 000003fc: SUB 000003fd: AND 000003fe: PUSH2 0x0795 00000401: JUMP 00000402: JUMPDEST 00000403: CALLVALUE 00000404: DUP1 00000405: ISZERO 00000406: PUSH2 0x040e 00000409: JUMPI 0000040a: PUSH1 0x00 0000040c: DUP1 0000040d: REVERT 0000040e: JUMPDEST 0000040f: POP 00000410: PUSH2 0x0163 00000413: PUSH1 0x04 00000415: DUP1 00000416: CALLDATASIZE 00000417: SUB 00000418: PUSH1 0x20 0000041a: DUP2 0000041b: LT 0000041c: ISZERO 0000041d: PUSH2 0x0425 00000420: JUMPI 00000421: PUSH1 0x00 00000423: DUP1 00000424: REVERT 00000425: JUMPDEST 00000426: POP 00000427: CALLDATALOAD 00000428: PUSH2 0x0840 0000042b: JUMP 0000042c: JUMPDEST 0000042d: CALLVALUE 0000042e: DUP1 0000042f: ISZERO 00000430: PUSH2 0x0438 00000433: JUMPI 00000434: PUSH1 0x00 00000436: DUP1 00000437: REVERT 00000438: JUMPDEST 00000439: POP 0000043a: PUSH2 0x01ef 0000043d: PUSH1 0x04 0000043f: DUP1 00000440: CALLDATASIZE 00000441: SUB 00000442: PUSH1 0x40 00000444: DUP2 00000445: LT 00000446: ISZERO 00000447: PUSH2 0x044f 0000044a: JUMPI 0000044b: PUSH1 0x00 0000044d: DUP1 0000044e: REVERT 0000044f: JUMPDEST 00000450: POP 00000451: DUP1 00000452: CALLDATALOAD 00000453: SWAP1 00000454: PUSH1 0x20 00000456: ADD 00000457: CALLDATALOAD 00000458: PUSH1 0x01 0000045a: PUSH1 0x01 0000045c: PUSH1 0xa0 0000045e: SHL 0000045f: SUB 00000460: AND 00000461: PUSH2 0x0857 00000464: JUMP 00000465: JUMPDEST 00000466: CALLVALUE 00000467: DUP1 00000468: ISZERO 00000469: PUSH2 0x0471 0000046c: JUMPI 0000046d: PUSH1 0x00 0000046f: DUP1 00000470: REVERT 00000471: JUMPDEST 00000472: POP 00000473: PUSH2 0x01ef 00000476: PUSH1 0x04 00000478: DUP1 00000479: CALLDATASIZE 0000047a: SUB 0000047b: PUSH1 0x20 0000047d: DUP2 0000047e: LT 0000047f: ISZERO 00000480: PUSH2 0x0488 00000483: JUMPI 00000484: PUSH1 0x00 00000486: DUP1 00000487: REVERT 00000488: JUMPDEST 00000489: POP 0000048a: CALLDATALOAD 0000048b: PUSH1 0x01 0000048d: PUSH1 0x01 0000048f: PUSH1 0xa0 00000491: SHL 00000492: SUB 00000493: AND 00000494: PUSH2 0x08b0 00000497: JUMP 00000498: JUMPDEST 00000499: CALLVALUE 0000049a: DUP1 0000049b: ISZERO 0000049c: PUSH2 0x04a4 0000049f: JUMPI 000004a0: PUSH1 0x00 000004a2: DUP1 000004a3: REVERT 000004a4: JUMPDEST 000004a5: POP 000004a6: PUSH2 0x0163 000004a9: PUSH2 0x08da 000004ac: JUMP 000004ad: JUMPDEST 000004ae: CALLVALUE 000004af: DUP1 000004b0: ISZERO 000004b1: PUSH2 0x04b9 000004b4: JUMPI 000004b5: PUSH1 0x00 000004b7: DUP1 000004b8: REVERT 000004b9: JUMPDEST 000004ba: POP 000004bb: PUSH2 0x01ef 000004be: PUSH1 0x04 000004c0: DUP1 000004c1: CALLDATASIZE 000004c2: SUB 000004c3: PUSH1 0x20 000004c5: DUP2 000004c6: LT 000004c7: ISZERO 000004c8: PUSH2 0x04d0 000004cb: JUMPI 000004cc: PUSH1 0x00 000004ce: DUP1 000004cf: REVERT 000004d0: JUMPDEST 000004d1: POP 000004d2: CALLDATALOAD 000004d3: PUSH1 0x01 000004d5: PUSH1 0x01 000004d7: PUSH1 0xa0 000004d9: SHL 000004da: SUB 000004db: AND 000004dc: PUSH2 0x08fe 000004df: JUMP 000004e0: JUMPDEST 000004e1: PUSH1 0x00 000004e3: SWAP1 000004e4: DUP2 000004e5: MSTORE 000004e6: PUSH1 0x33 000004e8: PUSH1 0x20 000004ea: MSTORE 000004eb: PUSH1 0x40 000004ed: SWAP1 000004ee: KECCAK256 000004ef: PUSH1 0x02 000004f1: ADD 000004f2: SLOAD 000004f3: SWAP1 000004f4: JUMP 000004f5: JUMPDEST 000004f6: PUSH1 0x00 000004f8: PUSH2 0x0501 000004fb: DUP2 000004fc: DUP4 000004fd: PUSH2 0x0638 00000500: JUMP 00000501: JUMPDEST 00000502: SWAP3 00000503: SWAP2 00000504: POP 00000505: POP 00000506: JUMP 00000507: JUMPDEST 00000508: PUSH2 0x0512 0000050b: PUSH1 0x00 0000050d: DUP3 0000050e: PUSH2 0x0857 00000511: JUMP 00000512: JUMPDEST 00000513: POP 00000514: JUMP 00000515: JUMPDEST 00000516: PUSH1 0x00 00000518: DUP3 00000519: DUP2 0000051a: MSTORE 0000051b: PUSH1 0x33 0000051d: PUSH1 0x20 0000051f: MSTORE 00000520: PUSH1 0x40 00000522: SWAP1 00000523: KECCAK256 00000524: PUSH1 0x02 00000526: ADD 00000527: SLOAD 00000528: PUSH2 0x0538 0000052b: SWAP1 0000052c: PUSH2 0x0533 0000052f: PUSH2 0x0928 00000532: JUMP 00000533: JUMPDEST 00000534: PUSH2 0x0638 00000537: JUMP 00000538: JUMPDEST 00000539: PUSH2 0x0573 0000053c: JUMPI 0000053d: PUSH1 0x40 0000053f: MLOAD 00000540: PUSH3 0x461bcd 00000544: PUSH1 0xe5 00000546: SHL 00000547: DUP2 00000548: MSTORE 00000549: PUSH1 0x04 0000054b: ADD 0000054c: DUP1 0000054d: DUP1 0000054e: PUSH1 0x20 00000550: ADD 00000551: DUP3 00000552: DUP2 00000553: SUB 00000554: DUP3 00000555: MSTORE 00000556: PUSH1 0x2f 00000558: DUP2 00000559: MSTORE 0000055a: PUSH1 0x20 0000055c: ADD 0000055d: DUP1 0000055e: PUSH2 0x0ef9 00000561: PUSH1 0x2f 00000563: SWAP2 00000564: CODECOPY 00000565: PUSH1 0x40 00000567: ADD 00000568: SWAP2 00000569: POP 0000056a: POP 0000056b: PUSH1 0x40 0000056d: MLOAD 0000056e: DUP1 0000056f: SWAP2 00000570: SUB 00000571: SWAP1 00000572: REVERT 00000573: JUMPDEST 00000574: PUSH2 0x057d 00000577: DUP3 00000578: DUP3 00000579: PUSH2 0x092c 0000057c: JUMP 0000057d: JUMPDEST 0000057e: POP 0000057f: POP 00000580: JUMP 00000581: JUMPDEST 00000582: PUSH2 0x0512 00000585: PUSH1 0x00 00000587: DUP3 00000588: PUSH2 0x0515 0000058b: JUMP 0000058c: JUMPDEST 0000058d: PUSH2 0x0594 00000590: PUSH2 0x0928 00000593: JUMP 00000594: JUMPDEST 00000595: PUSH1 0x01 00000597: PUSH1 0x01 00000599: PUSH1 0xa0 0000059b: SHL 0000059c: SUB 0000059d: AND 0000059e: DUP2 0000059f: PUSH1 0x01 000005a1: PUSH1 0x01 000005a3: PUSH1 0xa0 000005a5: SHL 000005a6: SUB 000005a7: AND 000005a8: EQ 000005a9: PUSH2 0x05e3 000005ac: JUMPI 000005ad: PUSH1 0x40 000005af: MLOAD 000005b0: PUSH3 0x461bcd 000005b4: PUSH1 0xe5 000005b6: SHL 000005b7: DUP2 000005b8: MSTORE 000005b9: PUSH1 0x04 000005bb: ADD 000005bc: DUP1 000005bd: DUP1 000005be: PUSH1 0x20 000005c0: ADD 000005c1: DUP3 000005c2: DUP2 000005c3: SUB 000005c4: DUP3 000005c5: MSTORE 000005c6: PUSH1 0x2f 000005c8: DUP2 000005c9: MSTORE 000005ca: PUSH1 0x20 000005cc: ADD 000005cd: DUP1 000005ce: PUSH2 0x0fee 000005d1: PUSH1 0x2f 000005d3: SWAP2 000005d4: CODECOPY 000005d5: PUSH1 0x40 000005d7: ADD 000005d8: SWAP2 000005d9: POP 000005da: POP 000005db: PUSH1 0x40 000005dd: MLOAD 000005de: DUP1 000005df: SWAP2 000005e0: SUB 000005e1: SWAP1 000005e2: REVERT 000005e3: JUMPDEST 000005e4: PUSH2 0x057d 000005e7: DUP3 000005e8: DUP3 000005e9: PUSH2 0x0995 000005ec: JUMP 000005ed: JUMPDEST 000005ee: PUSH1 0x00 000005f0: PUSH2 0x0501 000005f3: PUSH32 0x97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929 00000614: DUP4 00000615: PUSH2 0x0638 00000618: JUMP 00000619: JUMPDEST 0000061a: PUSH1 0x00 0000061c: DUP3 0000061d: DUP2 0000061e: MSTORE 0000061f: PUSH1 0x33 00000621: PUSH1 0x20 00000623: MSTORE 00000624: PUSH1 0x40 00000626: DUP2 00000627: KECCAK256 00000628: PUSH2 0x0631 0000062b: SWAP1 0000062c: DUP4 0000062d: PUSH2 0x09fe 00000630: JUMP 00000631: JUMPDEST 00000632: SWAP4 00000633: SWAP3 00000634: POP 00000635: POP 00000636: POP 00000637: JUMP 00000638: JUMPDEST 00000639: PUSH1 0x00 0000063b: DUP3 0000063c: DUP2 0000063d: MSTORE 0000063e: PUSH1 0x33 00000640: PUSH1 0x20 00000642: MSTORE 00000643: PUSH1 0x40 00000645: DUP2 00000646: KECCAK256 00000647: PUSH2 0x0631 0000064a: SWAP1 0000064b: DUP4 0000064c: PUSH2 0x0a0a 0000064f: JUMP 00000650: JUMPDEST 00000651: PUSH2 0x065b 00000654: PUSH1 0x00 00000656: CALLER 00000657: PUSH2 0x0638 0000065a: JUMP 0000065b: JUMPDEST 0000065c: PUSH2 0x0696 0000065f: JUMPI 00000660: PUSH1 0x40 00000662: MLOAD 00000663: PUSH3 0x461bcd 00000667: PUSH1 0xe5 00000669: SHL 0000066a: DUP2 0000066b: MSTORE 0000066c: PUSH1 0x04 0000066e: ADD 0000066f: DUP1 00000670: DUP1 00000671: PUSH1 0x20 00000673: ADD 00000674: DUP3 00000675: DUP2 00000676: SUB 00000677: DUP3 00000678: MSTORE 00000679: PUSH1 0x2e 0000067b: DUP2 0000067c: MSTORE 0000067d: PUSH1 0x20 0000067f: ADD 00000680: DUP1 00000681: PUSH2 0x0fc0 00000684: PUSH1 0x2e 00000686: SWAP2 00000687: CODECOPY 00000688: PUSH1 0x40 0000068a: ADD 0000068b: SWAP2 0000068c: POP 0000068d: POP 0000068e: PUSH1 0x40 00000690: MLOAD 00000691: DUP1 00000692: SWAP2 00000693: SUB 00000694: SWAP1 00000695: REVERT 00000696: JUMPDEST 00000697: DUP1 00000698: PUSH1 0x01 0000069a: PUSH1 0x01 0000069c: PUSH1 0xa0 0000069e: SHL 0000069f: SUB 000006a0: AND 000006a1: PUSH4 0x3ccfd60b 000006a6: PUSH1 0x40 000006a8: MLOAD 000006a9: DUP2 000006aa: PUSH4 0xffffffff 000006af: AND 000006b0: PUSH1 0xe0 000006b2: SHL 000006b3: DUP2 000006b4: MSTORE 000006b5: PUSH1 0x04 000006b7: ADD 000006b8: PUSH1 0x00 000006ba: PUSH1 0x40 000006bc: MLOAD 000006bd: DUP1 000006be: DUP4 000006bf: SUB 000006c0: DUP2 000006c1: PUSH1 0x00 000006c3: DUP8 000006c4: DUP1 000006c5: EXTCODESIZE 000006c6: ISZERO 000006c7: DUP1 000006c8: ISZERO 000006c9: PUSH2 0x06d1 000006cc: JUMPI 000006cd: PUSH1 0x00 000006cf: DUP1 000006d0: REVERT 000006d1: JUMPDEST 000006d2: POP 000006d3: GAS 000006d4: CALL 000006d5: ISZERO 000006d6: DUP1 000006d7: ISZERO 000006d8: PUSH2 0x06e5 000006db: JUMPI 000006dc: RETURNDATASIZE 000006dd: PUSH1 0x00 000006df: DUP1 000006e0: RETURNDATACOPY 000006e1: RETURNDATASIZE 000006e2: PUSH1 0x00 000006e4: REVERT 000006e5: JUMPDEST 000006e6: POP 000006e7: POP 000006e8: POP 000006e9: POP 000006ea: POP 000006eb: JUMP 000006ec: JUMPDEST 000006ed: PUSH1 0x00 000006ef: DUP2 000006f0: JUMP 000006f1: JUMPDEST 000006f2: PUSH2 0x06fc 000006f5: PUSH1 0x00 000006f7: CALLER 000006f8: PUSH2 0x0638 000006fb: JUMP 000006fc: JUMPDEST 000006fd: PUSH2 0x0737 00000700: JUMPI 00000701: PUSH1 0x40 00000703: MLOAD 00000704: PUSH3 0x461bcd 00000708: PUSH1 0xe5 0000070a: SHL 0000070b: DUP2 0000070c: MSTORE 0000070d: PUSH1 0x04 0000070f: ADD 00000710: DUP1 00000711: DUP1 00000712: PUSH1 0x20 00000714: ADD 00000715: DUP3 00000716: DUP2 00000717: SUB 00000718: DUP3 00000719: MSTORE 0000071a: PUSH1 0x2e 0000071c: DUP2 0000071d: MSTORE 0000071e: PUSH1 0x20 00000720: ADD 00000721: DUP1 00000722: PUSH2 0x0fc0 00000725: PUSH1 0x2e 00000727: SWAP2 00000728: CODECOPY 00000729: PUSH1 0x40 0000072b: ADD 0000072c: SWAP2 0000072d: POP 0000072e: POP 0000072f: PUSH1 0x40 00000731: MLOAD 00000732: DUP1 00000733: SWAP2 00000734: SUB 00000735: SWAP1 00000736: REVERT 00000737: JUMPDEST 00000738: DUP1 00000739: PUSH2 0x073f 0000073c: JUMPI 0000073d: POP 0000073e: SELFBALANCE 0000073f: JUMPDEST 00000740: PUSH2 0x0752 00000743: PUSH1 0x01 00000745: PUSH1 0x01 00000747: PUSH1 0xa0 00000749: SHL 0000074a: SUB 0000074b: DUP4 0000074c: AND 0000074d: DUP3 0000074e: PUSH2 0x0a1f 00000751: JUMP 00000752: JUMPDEST 00000753: PUSH1 0x40 00000755: DUP1 00000756: MLOAD 00000757: DUP3 00000758: DUP2 00000759: MSTORE 0000075a: SWAP1 0000075b: MLOAD 0000075c: PUSH1 0x01 0000075e: PUSH1 0x01 00000760: PUSH1 0xa0 00000762: SHL 00000763: SUB 00000764: DUP5 00000765: AND 00000766: SWAP2 00000767: PUSH32 0xeaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d 00000788: SWAP2 00000789: SWAP1 0000078a: DUP2 0000078b: SWAP1 0000078c: SUB 0000078d: PUSH1 0x20 0000078f: ADD 00000790: SWAP1 00000791: LOG2 00000792: POP 00000793: POP 00000794: JUMP 00000795: JUMPDEST 00000796: PUSH1 0x00 00000798: SLOAD 00000799: PUSH2 0x0100 0000079c: SWAP1 0000079d: DIV 0000079e: PUSH1 0xff 000007a0: AND 000007a1: DUP1 000007a2: PUSH2 0x07ae 000007a5: JUMPI 000007a6: POP 000007a7: PUSH2 0x07ae 000007aa: PUSH2 0x0b09 000007ad: JUMP 000007ae: JUMPDEST 000007af: DUP1 000007b0: PUSH2 0x07bc 000007b3: JUMPI 000007b4: POP 000007b5: PUSH1 0x00 000007b7: SLOAD 000007b8: PUSH1 0xff 000007ba: AND 000007bb: ISZERO 000007bc: JUMPDEST 000007bd: PUSH2 0x07f7 000007c0: JUMPI 000007c1: PUSH1 0x40 000007c3: MLOAD 000007c4: PUSH3 0x461bcd 000007c8: PUSH1 0xe5 000007ca: SHL 000007cb: DUP2 000007cc: MSTORE 000007cd: PUSH1 0x04 000007cf: ADD 000007d0: DUP1 000007d1: DUP1 000007d2: PUSH1 0x20 000007d4: ADD 000007d5: DUP3 000007d6: DUP2 000007d7: SUB 000007d8: DUP3 000007d9: MSTORE 000007da: PUSH1 0x2e 000007dc: DUP2 000007dd: MSTORE 000007de: PUSH1 0x20 000007e0: ADD 000007e1: DUP1 000007e2: PUSH2 0x0f92 000007e5: PUSH1 0x2e 000007e7: SWAP2 000007e8: CODECOPY 000007e9: PUSH1 0x40 000007eb: ADD 000007ec: SWAP2 000007ed: POP 000007ee: POP 000007ef: PUSH1 0x40 000007f1: MLOAD 000007f2: DUP1 000007f3: SWAP2 000007f4: SUB 000007f5: SWAP1 000007f6: REVERT 000007f7: JUMPDEST 000007f8: PUSH1 0x00 000007fa: SLOAD 000007fb: PUSH2 0x0100 000007fe: SWAP1 000007ff: DIV 00000800: PUSH1 0xff 00000802: AND 00000803: ISZERO 00000804: DUP1 00000805: ISZERO 00000806: PUSH2 0x0822 00000809: JUMPI 0000080a: PUSH1 0x00 0000080c: DUP1 0000080d: SLOAD 0000080e: PUSH1 0xff 00000810: NOT 00000811: PUSH2 0xff00 00000814: NOT 00000815: SWAP1 00000816: SWAP2 00000817: AND 00000818: PUSH2 0x0100 0000081b: OR 0000081c: AND 0000081d: PUSH1 0x01 0000081f: OR 00000820: SWAP1 00000821: SSTORE 00000822: JUMPDEST 00000823: PUSH2 0x082b 00000826: DUP3 00000827: PUSH2 0x0b1a 0000082a: JUMP 0000082b: JUMPDEST 0000082c: DUP1 0000082d: ISZERO 0000082e: PUSH2 0x057d 00000831: JUMPI 00000832: PUSH1 0x00 00000834: DUP1 00000835: SLOAD 00000836: PUSH2 0xff00 00000839: NOT 0000083a: AND 0000083b: SWAP1 0000083c: SSTORE 0000083d: POP 0000083e: POP 0000083f: JUMP 00000840: JUMPDEST 00000841: PUSH1 0x00 00000843: DUP2 00000844: DUP2 00000845: MSTORE 00000846: PUSH1 0x33 00000848: PUSH1 0x20 0000084a: MSTORE 0000084b: PUSH1 0x40 0000084d: DUP2 0000084e: KECCAK256 0000084f: PUSH2 0x0501 00000852: SWAP1 00000853: PUSH2 0x0bba 00000856: JUMP 00000857: JUMPDEST 00000858: PUSH1 0x00 0000085a: DUP3 0000085b: DUP2 0000085c: MSTORE 0000085d: PUSH1 0x33 0000085f: PUSH1 0x20 00000861: MSTORE 00000862: PUSH1 0x40 00000864: SWAP1 00000865: KECCAK256 00000866: PUSH1 0x02 00000868: ADD 00000869: SLOAD 0000086a: PUSH2 0x0875 0000086d: SWAP1 0000086e: PUSH2 0x0533 00000871: PUSH2 0x0928 00000874: JUMP 00000875: JUMPDEST 00000876: PUSH2 0x05e3 00000879: JUMPI 0000087a: PUSH1 0x40 0000087c: MLOAD 0000087d: PUSH3 0x461bcd 00000881: PUSH1 0xe5 00000883: SHL 00000884: DUP2 00000885: MSTORE 00000886: PUSH1 0x04 00000888: ADD 00000889: DUP1 0000088a: DUP1 0000088b: PUSH1 0x20 0000088d: ADD 0000088e: DUP3 0000088f: DUP2 00000890: SUB 00000891: DUP3 00000892: MSTORE 00000893: PUSH1 0x30 00000895: DUP2 00000896: MSTORE 00000897: PUSH1 0x20 00000899: ADD 0000089a: DUP1 0000089b: PUSH2 0x0f62 0000089e: PUSH1 0x30 000008a0: SWAP2 000008a1: CODECOPY 000008a2: PUSH1 0x40 000008a4: ADD 000008a5: SWAP2 000008a6: POP 000008a7: POP 000008a8: PUSH1 0x40 000008aa: MLOAD 000008ab: DUP1 000008ac: SWAP2 000008ad: SUB 000008ae: SWAP1 000008af: REVERT 000008b0: JUMPDEST 000008b1: PUSH2 0x0512 000008b4: PUSH32 0x97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929 000008d5: DUP3 000008d6: PUSH2 0x0515 000008d9: JUMP 000008da: JUMPDEST 000008db: PUSH32 0x97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929 000008fc: DUP2 000008fd: JUMP 000008fe: JUMPDEST 000008ff: PUSH2 0x0512 00000902: PUSH32 0x97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929 00000923: DUP3 00000924: PUSH2 0x0857 00000927: JUMP 00000928: JUMPDEST 00000929: CALLER 0000092a: SWAP1 0000092b: JUMP 0000092c: JUMPDEST 0000092d: PUSH1 0x00 0000092f: DUP3 00000930: DUP2 00000931: MSTORE 00000932: PUSH1 0x33 00000934: PUSH1 0x20 00000936: MSTORE 00000937: PUSH1 0x40 00000939: SWAP1 0000093a: KECCAK256 0000093b: PUSH2 0x0944 0000093e: SWAP1 0000093f: DUP3 00000940: PUSH2 0x0bc5 00000943: JUMP 00000944: JUMPDEST 00000945: ISZERO 00000946: PUSH2 0x057d 00000949: JUMPI 0000094a: PUSH2 0x0951 0000094d: PUSH2 0x0928 00000950: JUMP 00000951: JUMPDEST 00000952: PUSH1 0x01 00000954: PUSH1 0x01 00000956: PUSH1 0xa0 00000958: SHL 00000959: SUB 0000095a: AND 0000095b: DUP2 0000095c: PUSH1 0x01 0000095e: PUSH1 0x01 00000960: PUSH1 0xa0 00000962: SHL 00000963: SUB 00000964: AND 00000965: DUP4 00000966: PUSH32 0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d 00000987: PUSH1 0x40 00000989: MLOAD 0000098a: PUSH1 0x40 0000098c: MLOAD 0000098d: DUP1 0000098e: SWAP2 0000098f: SUB 00000990: SWAP1 00000991: LOG4 00000992: POP 00000993: POP 00000994: JUMP 00000995: JUMPDEST 00000996: PUSH1 0x00 00000998: DUP3 00000999: DUP2 0000099a: MSTORE 0000099b: PUSH1 0x33 0000099d: PUSH1 0x20 0000099f: MSTORE 000009a0: PUSH1 0x40 000009a2: SWAP1 000009a3: KECCAK256 000009a4: PUSH2 0x09ad 000009a7: SWAP1 000009a8: DUP3 000009a9: PUSH2 0x0bda 000009ac: JUMP 000009ad: JUMPDEST 000009ae: ISZERO 000009af: PUSH2 0x057d 000009b2: JUMPI 000009b3: PUSH2 0x09ba 000009b6: PUSH2 0x0928 000009b9: JUMP 000009ba: JUMPDEST 000009bb: PUSH1 0x01 000009bd: PUSH1 0x01 000009bf: PUSH1 0xa0 000009c1: SHL 000009c2: SUB 000009c3: AND 000009c4: DUP2 000009c5: PUSH1 0x01 000009c7: PUSH1 0x01 000009c9: PUSH1 0xa0 000009cb: SHL 000009cc: SUB 000009cd: AND 000009ce: DUP4 000009cf: PUSH32 0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b 000009f0: PUSH1 0x40 000009f2: MLOAD 000009f3: PUSH1 0x40 000009f5: MLOAD 000009f6: DUP1 000009f7: SWAP2 000009f8: SUB 000009f9: SWAP1 000009fa: LOG4 000009fb: POP 000009fc: POP 000009fd: JUMP 000009fe: JUMPDEST 000009ff: PUSH1 0x00 00000a01: PUSH2 0x0631 00000a04: DUP4 00000a05: DUP4 00000a06: PUSH2 0x0bef 00000a09: JUMP 00000a0a: JUMPDEST 00000a0b: PUSH1 0x00 00000a0d: PUSH2 0x0631 00000a10: DUP4 00000a11: PUSH1 0x01 00000a13: PUSH1 0x01 00000a15: PUSH1 0xa0 00000a17: SHL 00000a18: SUB 00000a19: DUP5 00000a1a: AND 00000a1b: PUSH2 0x0c53 00000a1e: JUMP 00000a1f: JUMPDEST 00000a20: DUP1 00000a21: SELFBALANCE 00000a22: LT 00000a23: ISZERO 00000a24: PUSH2 0x0a74 00000a27: JUMPI 00000a28: PUSH1 0x40 00000a2a: DUP1 00000a2b: MLOAD 00000a2c: PUSH3 0x461bcd 00000a30: PUSH1 0xe5 00000a32: SHL 00000a33: DUP2 00000a34: MSTORE 00000a35: PUSH1 0x20 00000a37: PUSH1 0x04 00000a39: DUP3 00000a3a: ADD 00000a3b: MSTORE 00000a3c: PUSH1 0x1d 00000a3e: PUSH1 0x24 00000a40: DUP3 00000a41: ADD 00000a42: MSTORE 00000a43: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e6365000000 00000a64: PUSH1 0x44 00000a66: DUP3 00000a67: ADD 00000a68: MSTORE 00000a69: SWAP1 00000a6a: MLOAD 00000a6b: SWAP1 00000a6c: DUP2 00000a6d: SWAP1 00000a6e: SUB 00000a6f: PUSH1 0x64 00000a71: ADD 00000a72: SWAP1 00000a73: REVERT 00000a74: JUMPDEST 00000a75: PUSH1 0x40 00000a77: MLOAD 00000a78: PUSH1 0x00 00000a7a: SWAP1 00000a7b: PUSH1 0x01 00000a7d: PUSH1 0x01 00000a7f: PUSH1 0xa0 00000a81: SHL 00000a82: SUB 00000a83: DUP5 00000a84: AND 00000a85: SWAP1 00000a86: DUP4 00000a87: SWAP1 00000a88: DUP4 00000a89: DUP2 00000a8a: DUP2 00000a8b: DUP2 00000a8c: DUP6 00000a8d: DUP8 00000a8e: GAS 00000a8f: CALL 00000a90: SWAP3 00000a91: POP 00000a92: POP 00000a93: POP 00000a94: RETURNDATASIZE 00000a95: DUP1 00000a96: PUSH1 0x00 00000a98: DUP2 00000a99: EQ 00000a9a: PUSH2 0x0abf 00000a9d: JUMPI 00000a9e: PUSH1 0x40 00000aa0: MLOAD 00000aa1: SWAP2 00000aa2: POP 00000aa3: PUSH1 0x1f 00000aa5: NOT 00000aa6: PUSH1 0x3f 00000aa8: RETURNDATASIZE 00000aa9: ADD 00000aaa: AND 00000aab: DUP3 00000aac: ADD 00000aad: PUSH1 0x40 00000aaf: MSTORE 00000ab0: RETURNDATASIZE 00000ab1: DUP3 00000ab2: MSTORE 00000ab3: RETURNDATASIZE 00000ab4: PUSH1 0x00 00000ab6: PUSH1 0x20 00000ab8: DUP5 00000ab9: ADD 00000aba: RETURNDATACOPY 00000abb: PUSH2 0x0ac4 00000abe: JUMP 00000abf: JUMPDEST 00000ac0: PUSH1 0x60 00000ac2: SWAP2 00000ac3: POP 00000ac4: JUMPDEST 00000ac5: POP 00000ac6: POP 00000ac7: SWAP1 00000ac8: POP 00000ac9: DUP1 00000aca: PUSH2 0x0b04 00000acd: JUMPI 00000ace: PUSH1 0x40 00000ad0: MLOAD 00000ad1: PUSH3 0x461bcd 00000ad5: PUSH1 0xe5 00000ad7: SHL 00000ad8: DUP2 00000ad9: MSTORE 00000ada: PUSH1 0x04 00000adc: ADD 00000add: DUP1 00000ade: DUP1 00000adf: PUSH1 0x20 00000ae1: ADD 00000ae2: DUP3 00000ae3: DUP2 00000ae4: SUB 00000ae5: DUP3 00000ae6: MSTORE 00000ae7: PUSH1 0x3a 00000ae9: DUP2 00000aea: MSTORE 00000aeb: PUSH1 0x20 00000aed: ADD 00000aee: DUP1 00000aef: PUSH2 0x0f28 00000af2: PUSH1 0x3a 00000af4: SWAP2 00000af5: CODECOPY 00000af6: PUSH1 0x40 00000af8: ADD 00000af9: SWAP2 00000afa: POP 00000afb: POP 00000afc: PUSH1 0x40 00000afe: MLOAD 00000aff: DUP1 00000b00: SWAP2 00000b01: SUB 00000b02: SWAP1 00000b03: REVERT 00000b04: JUMPDEST 00000b05: POP 00000b06: POP 00000b07: POP 00000b08: JUMP 00000b09: JUMPDEST 00000b0a: PUSH1 0x00 00000b0c: PUSH2 0x0b14 00000b0f: ADDRESS 00000b10: PUSH2 0x0c6b 00000b13: JUMP 00000b14: JUMPDEST 00000b15: ISZERO 00000b16: SWAP1 00000b17: POP 00000b18: SWAP1 00000b19: JUMP 00000b1a: JUMPDEST 00000b1b: PUSH1 0x00 00000b1d: SLOAD 00000b1e: PUSH2 0x0100 00000b21: SWAP1 00000b22: DIV 00000b23: PUSH1 0xff 00000b25: AND 00000b26: DUP1 00000b27: PUSH2 0x0b33 00000b2a: JUMPI 00000b2b: POP 00000b2c: PUSH2 0x0b33 00000b2f: PUSH2 0x0b09 00000b32: JUMP 00000b33: JUMPDEST 00000b34: DUP1 00000b35: PUSH2 0x0b41 00000b38: JUMPI 00000b39: POP 00000b3a: PUSH1 0x00 00000b3c: SLOAD 00000b3d: PUSH1 0xff 00000b3f: AND 00000b40: ISZERO 00000b41: JUMPDEST 00000b42: PUSH2 0x0b7c 00000b45: JUMPI 00000b46: PUSH1 0x40 00000b48: MLOAD 00000b49: PUSH3 0x461bcd 00000b4d: PUSH1 0xe5 00000b4f: SHL 00000b50: DUP2 00000b51: MSTORE 00000b52: PUSH1 0x04 00000b54: ADD 00000b55: DUP1 00000b56: DUP1 00000b57: PUSH1 0x20 00000b59: ADD 00000b5a: DUP3 00000b5b: DUP2 00000b5c: SUB 00000b5d: DUP3 00000b5e: MSTORE 00000b5f: PUSH1 0x2e 00000b61: DUP2 00000b62: MSTORE 00000b63: PUSH1 0x20 00000b65: ADD 00000b66: DUP1 00000b67: PUSH2 0x0f92 00000b6a: PUSH1 0x2e 00000b6c: SWAP2 00000b6d: CODECOPY 00000b6e: PUSH1 0x40 00000b70: ADD 00000b71: SWAP2 00000b72: POP 00000b73: POP 00000b74: PUSH1 0x40 00000b76: MLOAD 00000b77: DUP1 00000b78: SWAP2 00000b79: SUB 00000b7a: SWAP1 00000b7b: REVERT 00000b7c: JUMPDEST 00000b7d: PUSH1 0x00 00000b7f: SLOAD 00000b80: PUSH2 0x0100 00000b83: SWAP1 00000b84: DIV 00000b85: PUSH1 0xff 00000b87: AND 00000b88: ISZERO 00000b89: DUP1 00000b8a: ISZERO 00000b8b: PUSH2 0x0ba7 00000b8e: JUMPI 00000b8f: PUSH1 0x00 00000b91: DUP1 00000b92: SLOAD 00000b93: PUSH1 0xff 00000b95: NOT 00000b96: PUSH2 0xff00 00000b99: NOT 00000b9a: SWAP1 00000b9b: SWAP2 00000b9c: AND 00000b9d: PUSH2 0x0100 00000ba0: OR 00000ba1: AND 00000ba2: PUSH1 0x01 00000ba4: OR 00000ba5: SWAP1 00000ba6: SSTORE 00000ba7: JUMPDEST 00000ba8: PUSH2 0x0baf 00000bab: PUSH2 0x0c71 00000bae: JUMP 00000baf: JUMPDEST 00000bb0: PUSH2 0x082b 00000bb3: PUSH1 0x00 00000bb5: DUP4 00000bb6: PUSH2 0x0573 00000bb9: JUMP 00000bba: JUMPDEST 00000bbb: PUSH1 0x00 00000bbd: PUSH2 0x0501 00000bc0: DUP3 00000bc1: PUSH2 0x0d22 00000bc4: JUMP 00000bc5: JUMPDEST 00000bc6: PUSH1 0x00 00000bc8: PUSH2 0x0631 00000bcb: DUP4 00000bcc: PUSH1 0x01 00000bce: PUSH1 0x01 00000bd0: PUSH1 0xa0 00000bd2: SHL 00000bd3: SUB 00000bd4: DUP5 00000bd5: AND 00000bd6: PUSH2 0x0d26 00000bd9: JUMP 00000bda: JUMPDEST 00000bdb: PUSH1 0x00 00000bdd: PUSH2 0x0631 00000be0: DUP4 00000be1: PUSH1 0x01 00000be3: PUSH1 0x01 00000be5: PUSH1 0xa0 00000be7: SHL 00000be8: SUB 00000be9: DUP5 00000bea: AND 00000beb: PUSH2 0x0d70 00000bee: JUMP 00000bef: JUMPDEST 00000bf0: DUP2 00000bf1: SLOAD 00000bf2: PUSH1 0x00 00000bf4: SWAP1 00000bf5: DUP3 00000bf6: LT 00000bf7: PUSH2 0x0c31 00000bfa: JUMPI 00000bfb: PUSH1 0x40 00000bfd: MLOAD 00000bfe: PUSH3 0x461bcd 00000c02: PUSH1 0xe5 00000c04: SHL 00000c05: DUP2 00000c06: MSTORE 00000c07: PUSH1 0x04 00000c09: ADD 00000c0a: DUP1 00000c0b: DUP1 00000c0c: PUSH1 0x20 00000c0e: ADD 00000c0f: DUP3 00000c10: DUP2 00000c11: SUB 00000c12: DUP3 00000c13: MSTORE 00000c14: PUSH1 0x22 00000c16: DUP2 00000c17: MSTORE 00000c18: PUSH1 0x20 00000c1a: ADD 00000c1b: DUP1 00000c1c: PUSH2 0x0ed7 00000c1f: PUSH1 0x22 00000c21: SWAP2 00000c22: CODECOPY 00000c23: PUSH1 0x40 00000c25: ADD 00000c26: SWAP2 00000c27: POP 00000c28: POP 00000c29: PUSH1 0x40 00000c2b: MLOAD 00000c2c: DUP1 00000c2d: SWAP2 00000c2e: SUB 00000c2f: SWAP1 00000c30: REVERT 00000c31: JUMPDEST 00000c32: DUP3 00000c33: PUSH1 0x00 00000c35: ADD 00000c36: DUP3 00000c37: DUP2 00000c38: SLOAD 00000c39: DUP2 00000c3a: LT 00000c3b: PUSH2 0x0c40 00000c3e: JUMPI 00000c3f: INVALID 00000c40: JUMPDEST 00000c41: SWAP1 00000c42: PUSH1 0x00 00000c44: MSTORE 00000c45: PUSH1 0x20 00000c47: PUSH1 0x00 00000c49: KECCAK256 00000c4a: ADD 00000c4b: SLOAD 00000c4c: SWAP1 00000c4d: POP 00000c4e: SWAP3 00000c4f: SWAP2 00000c50: POP 00000c51: POP 00000c52: JUMP 00000c53: JUMPDEST 00000c54: PUSH1 0x00 00000c56: SWAP1 00000c57: DUP2 00000c58: MSTORE 00000c59: PUSH1 0x01 00000c5b: SWAP2 00000c5c: SWAP1 00000c5d: SWAP2 00000c5e: ADD 00000c5f: PUSH1 0x20 00000c61: MSTORE 00000c62: PUSH1 0x40 00000c64: SWAP1 00000c65: KECCAK256 00000c66: SLOAD 00000c67: ISZERO 00000c68: ISZERO 00000c69: SWAP1 00000c6a: JUMP 00000c6b: JUMPDEST 00000c6c: EXTCODESIZE 00000c6d: ISZERO 00000c6e: ISZERO 00000c6f: SWAP1 00000c70: JUMP 00000c71: JUMPDEST 00000c72: PUSH1 0x00 00000c74: SLOAD 00000c75: PUSH2 0x0100 00000c78: SWAP1 00000c79: DIV 00000c7a: PUSH1 0xff 00000c7c: AND 00000c7d: DUP1 00000c7e: PUSH2 0x0c8a 00000c81: JUMPI 00000c82: POP 00000c83: PUSH2 0x0c8a 00000c86: PUSH2 0x0b09 00000c89: JUMP 00000c8a: JUMPDEST 00000c8b: DUP1 00000c8c: PUSH2 0x0c98 00000c8f: JUMPI 00000c90: POP 00000c91: PUSH1 0x00 00000c93: SLOAD 00000c94: PUSH1 0xff 00000c96: AND 00000c97: ISZERO 00000c98: JUMPDEST 00000c99: PUSH2 0x0cd3 00000c9c: JUMPI 00000c9d: PUSH1 0x40 00000c9f: MLOAD 00000ca0: PUSH3 0x461bcd 00000ca4: PUSH1 0xe5 00000ca6: SHL 00000ca7: DUP2 00000ca8: MSTORE 00000ca9: PUSH1 0x04 00000cab: ADD 00000cac: DUP1 00000cad: DUP1 00000cae: PUSH1 0x20 00000cb0: ADD 00000cb1: DUP3 00000cb2: DUP2 00000cb3: SUB 00000cb4: DUP3 00000cb5: MSTORE 00000cb6: PUSH1 0x2e 00000cb8: DUP2 00000cb9: MSTORE 00000cba: PUSH1 0x20 00000cbc: ADD 00000cbd: DUP1 00000cbe: PUSH2 0x0f92 00000cc1: PUSH1 0x2e 00000cc3: SWAP2 00000cc4: CODECOPY 00000cc5: PUSH1 0x40 00000cc7: ADD 00000cc8: SWAP2 00000cc9: POP 00000cca: POP 00000ccb: PUSH1 0x40 00000ccd: MLOAD 00000cce: DUP1 00000ccf: SWAP2 00000cd0: SUB 00000cd1: SWAP1 00000cd2: REVERT 00000cd3: JUMPDEST 00000cd4: PUSH1 0x00 00000cd6: SLOAD 00000cd7: PUSH2 0x0100 00000cda: SWAP1 00000cdb: DIV 00000cdc: PUSH1 0xff 00000cde: AND 00000cdf: ISZERO 00000ce0: DUP1 00000ce1: ISZERO 00000ce2: PUSH2 0x0cfe 00000ce5: JUMPI 00000ce6: PUSH1 0x00 00000ce8: DUP1 00000ce9: SLOAD 00000cea: PUSH1 0xff 00000cec: NOT 00000ced: PUSH2 0xff00 00000cf0: NOT 00000cf1: SWAP1 00000cf2: SWAP2 00000cf3: AND 00000cf4: PUSH2 0x0100 00000cf7: OR 00000cf8: AND 00000cf9: PUSH1 0x01 00000cfb: OR 00000cfc: SWAP1 00000cfd: SSTORE 00000cfe: JUMPDEST 00000cff: PUSH2 0x0d06 00000d02: PUSH2 0x0e36 00000d05: JUMP 00000d06: JUMPDEST 00000d07: PUSH2 0x0d0e 00000d0a: PUSH2 0x0e36 00000d0d: JUMP 00000d0e: JUMPDEST 00000d0f: DUP1 00000d10: ISZERO 00000d11: PUSH2 0x0512 00000d14: JUMPI 00000d15: PUSH1 0x00 00000d17: DUP1 00000d18: SLOAD 00000d19: PUSH2 0xff00 00000d1c: NOT 00000d1d: AND 00000d1e: SWAP1 00000d1f: SSTORE 00000d20: POP 00000d21: JUMP 00000d22: JUMPDEST 00000d23: SLOAD 00000d24: SWAP1 00000d25: JUMP 00000d26: JUMPDEST 00000d27: PUSH1 0x00 00000d29: PUSH2 0x0d32 00000d2c: DUP4 00000d2d: DUP4 00000d2e: PUSH2 0x0c53 00000d31: JUMP 00000d32: JUMPDEST 00000d33: PUSH2 0x0d68 00000d36: JUMPI 00000d37: POP 00000d38: DUP2 00000d39: SLOAD 00000d3a: PUSH1 0x01 00000d3c: DUP2 00000d3d: DUP2 00000d3e: ADD 00000d3f: DUP5 00000d40: SSTORE 00000d41: PUSH1 0x00 00000d43: DUP5 00000d44: DUP2 00000d45: MSTORE 00000d46: PUSH1 0x20 00000d48: DUP1 00000d49: DUP3 00000d4a: KECCAK256 00000d4b: SWAP1 00000d4c: SWAP4 00000d4d: ADD 00000d4e: DUP5 00000d4f: SWAP1 00000d50: SSTORE 00000d51: DUP5 00000d52: SLOAD 00000d53: DUP5 00000d54: DUP3 00000d55: MSTORE 00000d56: DUP3 00000d57: DUP7 00000d58: ADD 00000d59: SWAP1 00000d5a: SWAP4 00000d5b: MSTORE 00000d5c: PUSH1 0x40 00000d5e: SWAP1 00000d5f: KECCAK256 00000d60: SWAP2 00000d61: SWAP1 00000d62: SWAP2 00000d63: SSTORE 00000d64: PUSH2 0x0501 00000d67: JUMP 00000d68: JUMPDEST 00000d69: POP 00000d6a: PUSH1 0x00 00000d6c: PUSH2 0x0501 00000d6f: JUMP 00000d70: JUMPDEST 00000d71: PUSH1 0x00 00000d73: DUP2 00000d74: DUP2 00000d75: MSTORE 00000d76: PUSH1 0x01 00000d78: DUP4 00000d79: ADD 00000d7a: PUSH1 0x20 00000d7c: MSTORE 00000d7d: PUSH1 0x40 00000d7f: DUP2 00000d80: KECCAK256 00000d81: SLOAD 00000d82: DUP1 00000d83: ISZERO 00000d84: PUSH2 0x0e2c 00000d87: JUMPI 00000d88: DUP4 00000d89: SLOAD 00000d8a: PUSH1 0x00 00000d8c: NOT 00000d8d: DUP1 00000d8e: DUP4 00000d8f: ADD 00000d90: SWAP2 00000d91: SWAP1 00000d92: DUP2 00000d93: ADD 00000d94: SWAP1 00000d95: PUSH1 0x00 00000d97: SWAP1 00000d98: DUP8 00000d99: SWAP1 00000d9a: DUP4 00000d9b: SWAP1 00000d9c: DUP2 00000d9d: LT 00000d9e: PUSH2 0x0da3 00000da1: JUMPI 00000da2: INVALID 00000da3: JUMPDEST 00000da4: SWAP1 00000da5: PUSH1 0x00 00000da7: MSTORE 00000da8: PUSH1 0x20 00000daa: PUSH1 0x00 00000dac: KECCAK256 00000dad: ADD 00000dae: SLOAD 00000daf: SWAP1 00000db0: POP 00000db1: DUP1 00000db2: DUP8 00000db3: PUSH1 0x00 00000db5: ADD 00000db6: DUP5 00000db7: DUP2 00000db8: SLOAD 00000db9: DUP2 00000dba: LT 00000dbb: PUSH2 0x0dc0 00000dbe: JUMPI 00000dbf: INVALID 00000dc0: JUMPDEST 00000dc1: PUSH1 0x00 00000dc3: SWAP2 00000dc4: DUP3 00000dc5: MSTORE 00000dc6: PUSH1 0x20 00000dc8: DUP1 00000dc9: DUP4 00000dca: KECCAK256 00000dcb: SWAP1 00000dcc: SWAP2 00000dcd: ADD 00000dce: SWAP3 00000dcf: SWAP1 00000dd0: SWAP3 00000dd1: SSTORE 00000dd2: DUP3 00000dd3: DUP2 00000dd4: MSTORE 00000dd5: PUSH1 0x01 00000dd7: DUP10 00000dd8: DUP2 00000dd9: ADD 00000dda: SWAP1 00000ddb: SWAP3 00000ddc: MSTORE 00000ddd: PUSH1 0x40 00000ddf: SWAP1 00000de0: KECCAK256 00000de1: SWAP1 00000de2: DUP5 00000de3: ADD 00000de4: SWAP1 00000de5: SSTORE 00000de6: DUP7 00000de7: SLOAD 00000de8: DUP8 00000de9: SWAP1 00000dea: DUP1 00000deb: PUSH2 0x0df0 00000dee: JUMPI 00000def: INVALID 00000df0: JUMPDEST 00000df1: PUSH1 0x01 00000df3: SWAP1 00000df4: SUB 00000df5: DUP2 00000df6: DUP2 00000df7: SWAP1 00000df8: PUSH1 0x00 00000dfa: MSTORE 00000dfb: PUSH1 0x20 00000dfd: PUSH1 0x00 00000dff: KECCAK256 00000e00: ADD 00000e01: PUSH1 0x00 00000e03: SWAP1 00000e04: SSTORE 00000e05: SWAP1 00000e06: SSTORE 00000e07: DUP7 00000e08: PUSH1 0x01 00000e0a: ADD 00000e0b: PUSH1 0x00 00000e0d: DUP8 00000e0e: DUP2 00000e0f: MSTORE 00000e10: PUSH1 0x20 00000e12: ADD 00000e13: SWAP1 00000e14: DUP2 00000e15: MSTORE 00000e16: PUSH1 0x20 00000e18: ADD 00000e19: PUSH1 0x00 00000e1b: KECCAK256 00000e1c: PUSH1 0x00 00000e1e: SWAP1 00000e1f: SSTORE 00000e20: PUSH1 0x01 00000e22: SWAP5 00000e23: POP 00000e24: POP 00000e25: POP 00000e26: POP 00000e27: POP 00000e28: PUSH2 0x0501 00000e2b: JUMP 00000e2c: JUMPDEST 00000e2d: PUSH1 0x00 00000e2f: SWAP2 00000e30: POP 00000e31: POP 00000e32: PUSH2 0x0501 00000e35: JUMP 00000e36: JUMPDEST 00000e37: PUSH1 0x00 00000e39: SLOAD 00000e3a: PUSH2 0x0100 00000e3d: SWAP1 00000e3e: DIV 00000e3f: PUSH1 0xff 00000e41: AND 00000e42: DUP1 00000e43: PUSH2 0x0e4f 00000e46: JUMPI 00000e47: POP 00000e48: PUSH2 0x0e4f 00000e4b: PUSH2 0x0b09 00000e4e: JUMP 00000e4f: JUMPDEST 00000e50: DUP1 00000e51: PUSH2 0x0e5d 00000e54: JUMPI 00000e55: POP 00000e56: PUSH1 0x00 00000e58: SLOAD 00000e59: PUSH1 0xff 00000e5b: AND 00000e5c: ISZERO 00000e5d: JUMPDEST 00000e5e: PUSH2 0x0e98 00000e61: JUMPI 00000e62: PUSH1 0x40 00000e64: MLOAD 00000e65: PUSH3 0x461bcd 00000e69: PUSH1 0xe5 00000e6b: SHL 00000e6c: DUP2 00000e6d: MSTORE 00000e6e: PUSH1 0x04 00000e70: ADD 00000e71: DUP1 00000e72: DUP1 00000e73: PUSH1 0x20 00000e75: ADD 00000e76: DUP3 00000e77: DUP2 00000e78: SUB 00000e79: DUP3 00000e7a: MSTORE 00000e7b: PUSH1 0x2e 00000e7d: DUP2 00000e7e: MSTORE 00000e7f: PUSH1 0x20 00000e81: ADD 00000e82: DUP1 00000e83: PUSH2 0x0f92 00000e86: PUSH1 0x2e 00000e88: SWAP2 00000e89: CODECOPY 00000e8a: PUSH1 0x40 00000e8c: ADD 00000e8d: SWAP2 00000e8e: POP 00000e8f: POP 00000e90: PUSH1 0x40 00000e92: MLOAD 00000e93: DUP1 00000e94: SWAP2 00000e95: SUB 00000e96: SWAP1 00000e97: REVERT 00000e98: JUMPDEST 00000e99: PUSH1 0x00 00000e9b: SLOAD 00000e9c: PUSH2 0x0100 00000e9f: SWAP1 00000ea0: DIV 00000ea1: PUSH1 0xff 00000ea3: AND 00000ea4: ISZERO 00000ea5: DUP1 00000ea6: ISZERO 00000ea7: PUSH2 0x0d0e 00000eaa: JUMPI 00000eab: PUSH1 0x00 00000ead: DUP1 00000eae: SLOAD 00000eaf: PUSH1 0xff 00000eb1: NOT 00000eb2: PUSH2 0xff00 00000eb5: NOT 00000eb6: SWAP1 00000eb7: SWAP2 00000eb8: AND 00000eb9: PUSH2 0x0100 00000ebc: OR 00000ebd: AND 00000ebe: PUSH1 0x01 00000ec0: OR 00000ec1: SWAP1 00000ec2: SSTORE 00000ec3: DUP1 00000ec4: ISZERO 00000ec5: PUSH2 0x0512 00000ec8: JUMPI 00000ec9: PUSH1 0x00 00000ecb: DUP1 00000ecc: SLOAD 00000ecd: PUSH2 0xff00 00000ed0: NOT 00000ed1: AND 00000ed2: SWAP1 00000ed3: SSTORE 00000ed4: POP 00000ed5: JUMP 00000ed6: INVALID 00000ed7: GASLIMIT 00000ed8: PUSH15 0x756d657261626c655365743a20696e 00000ee8: PUSH5 0x6578206f75 00000eee: PUSH21 0x206f6620626f756e6473416363657373436f6e7472 00000f04: PUSH16 0x6c3a2073656e646572206d7573742062 00000f15: PUSH6 0x20616e206164 00000f1c: PUSH14 0x696e20746f206772616e74416464 00000f2b: PUSH19 0x6573733a20756e61626c6520746f2073656e64 00000f3f: KECCAK256 00000f40: PUSH23 0x616c75652c20726563697069656e74206d617920686176 00000f58: PUSH6 0x207265766572 00000f5f: PUSH21 0x6564416363657373436f6e74726f6c3a2073656e64 00000f75: PUSH6 0x72206d757374 00000f7c: KECCAK256 00000f7d: PUSH3 0x652061 00000f81: PUSH15 0x2061646d696e20746f207265766f6b 00000f91: PUSH6 0x496e69746961 00000f98: PUSH13 0x697a61626c653a20636f6e7472 00000fa6: PUSH2 0x6374 00000fa9: KECCAK256 00000faa: PUSH10 0x7320616c726561647920 00000fb5: PUSH10 0x6e697469616c697a6564 00000fc0: COINBASE 00000fc1: PUSH5 0x6d696e526f 00000fc7: PUSH13 0x653a2063616c6c657220646f65 00000fd5: PUSH20 0x206e6f742068617665207468652041646d696e20 00000fea: PUSH19 0x6f6c65416363657373436f6e74726f6c3a2063 00000ffe: PUSH2 0x6e20 00001001: PUSH16 0x6e6c792072656e6f756e636520726f6c 00001012: PUSH6 0x7320666f7220 00001019: PUSH20 0x656c66a2646970667358221220d341fa407cebe2 0000102e: UNKNOWN(0xEB) 0000102f: PUSH12 0x2905070971c4101ce07a96e7 0000103c: UNKNOWN(0xCA) 0000103d: UNKNOWN(0xE3) 0000103e: PUSH25
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xf45f283a3de5d881ecb41f24ae86ba336a73bfecc727c72bc4d1de9cfb5d7e41
call_targets:
0x1c0df262a40f99d7d6145faba04db75d1126f93d
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xf45f283a3de5d881ecb41f24ae86ba336a73bfecc727c72bc4d1de9cfb5d7e41",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1c0df262a40f99d7d6145faba04db75d1126f93d"
],
"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": "0xe348da13",
"selector": "0xe348da13",
"calldata_variants": [
"0xe348da13",
"0xe348da130000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5b541a6",
"selector": "0xf5b541a6",
"calldata_variants": [
"0xf5b541a6",
"0xf5b541a60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfad8b32a",
"selector": "0xfad8b32a",
"calldata_variants": [
"0xfad8b32a",
"0xfad8b32a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca15c873",
"selector": "0xca15c873",
"calldata_variants": [
"0xca15c873",
"0xca15c8730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x924ab158",
"selector": "0x924ab158",
"calldata_variants": [
"0x924ab158",
"0x924ab1580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa217fddf",
"selector": "0xa217fddf",
"calldata_variants": [
"0xa217fddf",
"0xa217fddf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc1075329",
"selector": "0xc1075329",
"calldata_variants": [
"0xc1075329",
"0xc10753290000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1748,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2703,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 2,
"guards_detected": [],
"untrusted_call_count": 2
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xf45f283a3de5d881ecb41f24ae86ba336a73bfecc727c72bc4d1de9cfb5d7e41
call_targets:
0x1c0df262a40f99d7d6145faba04db75d1126f93d
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xf45f283a3de5d881ecb41f24ae86ba336a73bfecc727c72bc4d1de9cfb5d7e41",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1c0df262a40f99d7d6145faba04db75d1126f93d"
],
"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": "0xe348da13",
"selector": "0xe348da13",
"calldata_variants": [
"0xe348da13",
"0xe348da130000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5b541a6",
"selector": "0xf5b541a6",
"calldata_variants": [
"0xf5b541a6",
"0xf5b541a60000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfad8b32a",
"selector": "0xfad8b32a",
"calldata_variants": [
"0xfad8b32a",
"0xfad8b32a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xca15c873",
"selector": "0xca15c873",
"calldata_variants": [
"0xca15c873",
"0xca15c8730000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd547741f",
"selector": "0xd547741f",
"calldata_variants": [
"0xd547741f",
"0xd547741f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x924ab158",
"selector": "0x924ab158",
"calldata_variants": [
"0x924ab158",
"0x924ab1580000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa217fddf",
"selector": "0xa217fddf",
"calldata_variants": [
"0xa217fddf",
"0xa217fddf0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xc1075329",
"selector": "0xc1075329",
"calldata_variants": [
"0xc1075329",
"0xc10753290000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1748,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2703,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 2,
"guards_detected": []
}
|