86d4515f-6381-4ede-ac6f-89c32fe84757
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 |
|---|---|---|---|---|
| 30443 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 108819 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 108820 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 108821 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 108822 | capability.graph | complete | 1 / 3 | 1 week ago |
| 108823 | detector.run | complete | 1 / 3 | 1 week ago |
| 108824 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1301083] OpenAI Codex v0.77.0 (research preview)
[codex:1301083] --------
[codex:1301083] workdir: /tmp/codex-multi-lso4tic8
[codex:1301083] model: gpt-5.2-codex
[codex:1301083] provider: openai
[codex:1301083] approval: never
[codex:1301083] sandbox: read-only
[codex:1301083] reasoning effort: xhigh
[codex:1301083] reasoning summaries: auto
[codex:1301083] session id: 019b68bb-b16a-7aa3-93d8-4d7aeb0012c6
[codex:1301083] --------
[codex:1301083] user
[codex:1301083] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1301083] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1301083] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1301083]
[codex:1301083] Scope rules:
[codex:1301083] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1301083] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1301083]
[codex:1301083] Output MUST be valid JSON matching the provided schema.
[codex:1301083] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1301083] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1301083]
[codex:1301083] Output constraints (IMPORTANT):
[codex:1301083] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1301083] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1301083] mcp startup: no servers
[codex:1301083]
[codex:1301083] thinking
[codex:1301083] **Reviewing AUDIT_BUNDLE file**
[codex:1301083] exec
[codex:1301083] /bin/bash -lc ls in /tmp/codex-multi-lso4tic8 succeeded in 5ms:
[codex:1301083] AUDIT_BUNDLE.txt
[codex:1301083] codex-output-schema.json
[codex:1301083] contracts
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-lso4tic8 succeeded in 5ms:
[codex:1301083] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1301083]
[codex:1301083] ================================================================================
[codex:1301083] FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IContractIdentifier.sol
[codex:1301083] ================================================================================
[codex:1301083] // SPDX-License-Identifier: MIT
[codex:1301083]
[codex:1301083] pragma solidity ^0.8.0;
[codex:1301083]
[codex:1301083] // General interface for upgradable contracts
[codex:1301083] interface IContractIdentifier {
[codex:1301083] /**
[codex:1301083] * @notice Returns the contract ID. It can be used as a check during upgrades.
[codex:1301083] * @dev Meant to be overridden in derived contracts.
[codex:1301083] * @return bytes32 The contract ID
[codex:1301083] */
[codex:1301083] function contractId() external pure returns (bytes32);
[codex:1301083] }
[codex:1301083]
[codex:1301083] ================================================================================
[codex:1301083]
[codex:1301083] thinking
[codex:1301083] **Distinguishing first-party from third-party code**
[codex:1301083] exec
[codex:1301083] /bin/bash -lc 'rg "''^FILE:" -n AUDIT_BUNDLE.txt' in /tmp/codex-multi-lso4tic8 succeeded in 7ms:
[codex:1301083] 4:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IContractIdentifier.sol
[codex:1301083] 21:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IERC20.sol
[codex:1301083] 108:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IImplementation.sol
[codex:1301083] 123:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IMulticall.sol
[codex:1301083] 148:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IRolesBase.sol
[codex:1301083] 180:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/libs/AddressBytes.sol
[codex:1301083] 222:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/libs/SafeTransfer.sol
[codex:1301083] 294:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/upgradable/Implementation.sol
[codex:1301083] 336:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/utils/Multicall.sol
[codex:1301083] 378:FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/utils/RolesBase.sol
[codex:1301083] 778:FILE: contracts/contracts/interfaces/IBaseTokenManager.sol
[codex:1301083] 808:FILE: contracts/contracts/interfaces/IERC20MintableBurnable.sol
[codex:1301083] 837:FILE: contracts/contracts/interfaces/IFlowLimit.sol
[codex:1301083] 874:FILE: contracts/contracts/interfaces/IOperator.sol
[codex:1301083] 918:FILE: contracts/contracts/interfaces/ITokenManager.sol
[codex:1301083] 1017:FILE: contracts/contracts/token-manager/TokenManager.sol
[codex:1301083] 1237:FILE: contracts/contracts/utils/FlowLimit.sol
[codex:1301083] 1386:FILE: contracts/contracts/utils/Operator.sol
[codex:1301083] 1452:FILE: contracts/contracts/utils/RolesConstants.sol
[codex:1301083]
[codex:1301083] thinking
[codex:1301083] **Focusing on first-party contract files**
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "sed -n '760,1120p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-lso4tic8 succeeded in 5ms:
[codex:1301083] * @dev Original account must have all the proposed roles.
[codex:1301083] * @param fromAccount The address of the current role
[codex:1301083] * @param toAccount The address to transfer role to
[codex:1301083] * @param accountRoles The account roles to transfer
[codex:1301083] */
[codex:1301083] function _transferAccountRoles(
[codex:1301083] address fromAccount,
[codex:1301083] address toAccount,
[codex:1301083] uint256 accountRoles
[codex:1301083] ) internal {
[codex:1301083] if (!_hasAllTheRoles(_getRoles(fromAccount), accountRoles)) revert MissingAllRoles(fromAccount, accountRoles);
[codex:1301083]
[codex:1301083] _removeAccountRoles(fromAccount, accountRoles);
[codex:1301083] _addAccountRoles(toAccount, accountRoles);
[codex:1301083] }
[codex:1301083] }
[codex:1301083]
[codex:1301083] ================================================================================
[codex:1301083] FILE: contracts/contracts/interfaces/IBaseTokenManager.sol
[codex:1301083] ================================================================================
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "sed -n '1120,1560p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-lso4tic8 succeeded in 5ms:
[codex:1301083] bytes memory operatorBytes = abi.decode(params_, (bytes));
[codex:1301083]
[codex:1301083] address operator = address(0);
[codex:1301083]
[codex:1301083] if (operatorBytes.length != 0) {
[codex:1301083] operator = operatorBytes.toAddress();
[codex:1301083] }
[codex:1301083]
[codex:1301083] // If an operator is not provided, set `address(0)` as the operator.
[codex:1301083] // This allows anyone to easily check if a custom operator was set on the token manager.
[codex:1301083] _addAccountRoles(operator, (1 << uint8(Roles.FLOW_LIMITER)) | (1 << uint8(Roles.OPERATOR)));
[codex:1301083] // Add operator and flow limiter role to the service. The operator can remove the flow limiter role if they so chose and the service has no way to use the operator role for now.
[codex:1301083] _addAccountRoles(interchainTokenService, (1 << uint8(Roles.FLOW_LIMITER)) | (1 << uint8(Roles.OPERATOR)));
[codex:1301083] }
[codex:1301083]
[codex:1301083] function addFlowIn(uint256 amount) external onlyService {
[codex:1301083] _addFlowIn(amount);
[codex:1301083] }
[codex:1301083]
[codex:1301083] function addFlowOut(uint256 amount) external onlyService {
[codex:1301083]
[codex:1301083] thinking
[codex:1301083] **Reviewing dependencies for potential vulnerabilities**
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "sed -n '180,520p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-lso4tic8 succeeded in 5ms:
[codex:1301083] FILE: contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/libs/AddressBytes.sol
[codex:1301083] ================================================================================
[codex:1301083] // SPDX-License-Identifier: MIT
[codex:1301083]
[codex:1301083] pragma solidity ^0.8.0;
[codex:1301083]
[codex:1301083] /**
[codex:1301083] * @title AddressBytesUtils
[codex:1301083] * @dev This library provides utility functions to convert between `address` and `bytes`.
[codex:1301083] */
[codex:1301083] library AddressBytes {
[codex:1301083] error InvalidBytesLength(bytes bytesAddress);
[codex:1301083]
[codex:1301083] /**
[codex:1301083] * @dev Converts a bytes address to an address type.
[codex:1301083] * @param bytesAddress The bytes representation of an address
[codex:1301083] * @return addr The converted address
[codex:1301083] */
[codex:1301083] function toAddress(bytes memory bytesAddress) internal pure returns (address addr) {
[codex:1301083] if (bytesAddress.length != 20) revert InvalidBytesLength(bytesAddress);
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "sed -n '520,760p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-lso4tic8 succeeded in 6ms:
[codex:1301083] }
[codex:1301083] }
[codex:1301083]
[codex:1301083] /**
[codex:1301083] * @notice Internal function to add a role to an account.
[codex:1301083] * @dev emits a RolesAdded event.
[codex:1301083] * @param account The address to add the role to
[codex:1301083] * @param role The role to add
[codex:1301083] */
[codex:1301083] function _addRole(address account, uint8 role) internal {
[codex:1301083] _addAccountRoles(account, 1 << role);
[codex:1301083] }
[codex:1301083]
[codex:1301083] /**
[codex:1301083] * @notice Internal function to add roles to an account.
[codex:1301083] * @dev emits a RolesAdded event.
[codex:1301083] * @dev Called in the constructor to set the initial roles.
[codex:1301083] * @param account The address to add roles to
[codex:1301083] * @param roles The roles to add
[codex:1301083] */
[codex:1301083]
[codex:1301083]
[codex:1301083] thinking
[codex:1301083] **Analyzing TokenManager initialization and access control risks**
[codex:1301083]
[codex:1301083] I'm carefully reviewing TokenManager's setup method and access control patterns, noticing that setup lacks a proper initializer guard and can be called multiple times through the proxy, potentially allowing anyone to reassign critical roles. This raises risks around unprotected initialization, upgradeability, and operator role hijacking. I'm also evaluating multicall usage, external token interactions, flow limits, and the reliance on service trust, while considering how proxy storage and immutable variables are handled. There’s a lot to consider about role management and potential reentrancy, but the main concern is the missing setup guard that might allow privilege escalation if proxy restrictions aren't enforced elsewhere.
[codex:1301083] thinking
[codex:1301083] **Evaluating delegatecall and initialization protections**
[codex:1301083]
[codex:1301083] I’m examining how the onlyProxy modifier works with delegatecalls, realizing that any delegatecall to the implementation passes it, which means malicious proxies could call setup for their own storage safely. The lack of an initializer guard in setup remains a big concern if proxies don’t block multiple calls. I’m also weighing subtle points like storage slot usage in FlowLimit, external calls in approveService, potential issues with repeated role assignments during reinitialization, and some nuanced memory layout details in address-byte conversions—though the latter is probably third-party and safe to skip here. Overall, the initialization and access controls keep standing out as the main risk.
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "rg \"toBytes\\(\" -n /tmp/codex-multi-lso4tic8" in /tmp/codex-multi-lso4tic8 succeeded in 10ms:
[codex:1301083] /tmp/codex-multi-lso4tic8/AUDIT_BUNDLE.txt:211: function toBytes(address addr) internal pure returns (bytes memory bytesAddress) {
[codex:1301083] /tmp/codex-multi-lso4tic8/contracts/@axelar-network/axelar-gmp-sdk-solidity/contracts/libs/AddressBytes.sol:30: function toBytes(address addr) internal pure returns (bytes memory bytesAddress) {
[codex:1301083]
[codex:1301083] thinking
[codex:1301083] **Reviewing potential vulnerabilities in first-party code**
[codex:1301083] exec
[codex:1301083] /bin/bash -lc 'tail -n 20 AUDIT_BUNDLE.txt' in /tmp/codex-multi-lso4tic8 succeeded in 5ms:
[codex:1301083]
[codex:1301083] ================================================================================
[codex:1301083] FILE: contracts/contracts/utils/RolesConstants.sol
[codex:1301083] ================================================================================
[codex:1301083] // SPDX-License-Identifier: MIT
[codex:1301083]
[codex:1301083] pragma solidity ^0.8.0;
[codex:1301083]
[codex:1301083] /**
[codex:1301083] * @title RolesConstants
[codex:1301083] * @notice This contract contains enum values representing different contract roles.
[codex:1301083] */
[codex:1301083] contract RolesConstants {
[codex:1301083] enum Roles {
[codex:1301083] MINTER,
[codex:1301083] OPERATOR,
[codex:1301083] FLOW_LIMITER
[codex:1301083] }
[codex:1301083] }
[codex:1301083]
[codex:1301083]
[codex:1301083] thinking
[codex:1301083] **Identifying potential subtle issues and preparing for audit output**
[codex:1301083]
[codex:1301083] I'm analyzing various contract behaviors, focusing on proxy use, external calls, storage collisions, and access controls to spot subtle issues or risks. I'm gearing up to include file paths and approximate line numbers for these findings to align with the audit output format.
[codex:1301083] exec
[codex:1301083] /bin/bash -lc "nl -ba contracts/contracts/token-manager/TokenManager.sol | sed -n '1,220p'" in /tmp/codex-multi-lso4tic8 succeeded in 7ms:
[codex:1301083] 1 // SPDX-License-Identifier: MIT
[codex:1301083] 2
[codex:1301083] 3 pragma solidity ^0.8.0;
[codex:1301083] 4
[codex:1301083] 5 import { IERC20 } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IERC20.sol';
[codex:1301083] 6 import { AddressBytes } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/libs/AddressBytes.sol';
[codex:1301083] 7 import { IImplementation } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IImplementation.sol';
[codex:1301083] 8 import { Implementation } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/upgradable/Implementation.sol';
[codex:1301083] 9 import { SafeTokenCall } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/libs/SafeTransfer.sol';
[codex:1301083] 10 import { Multicall } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/utils/Multicall.sol';
[codex:1301083] 11
[codex:1301083] 12 import { ITokenManager } from '../interfaces/ITokenManager.sol';
[codex:1301083] 13 import { IERC20MintableBurnable } from '../interfaces/IERC20MintableBurnable.sol';
[codex:1301083] 14
[codex:1301083] 15 import { Operator } from '../utils/Operator.sol';
[codex:1301083] 16 import { FlowLimit } from '../utils/FlowLimit.sol';
[codex:1301083] 17
[codex:1301083] 18 /**
[codex:1301083] 19 * @title TokenManager
[codex:1301083] 20 * @notice This contract is responsible for managing tokens, such as setting locking token balances, or setting flow limits, for interchain transfers.
[codex:1301083]
[codex:1301083] thinking
[codex:1301083] **Analyzing TokenManager security nuances**
[codex:1301083] exec
[codex:1301083] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-lso4tic8 succeeded in 7ms:
[codex:1301083] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:1301083]
[codex:1301083] thinking
[codex:1301083] **Preparing JSON security finding**
[codex:1301083] codex
[codex:1301083] {"no_findings":false,"summary":"1 high severity issue found: TokenManager setup can be re-initialized on the proxy, enabling role takeover if the proxy does not enforce one-time initialization.","findings":[{"severity":"high","category":"upgradeability","title":"Re-initializable setup can grant operator/flow-limiter roles to an attacker","exploit_scenario":"If the proxy does not enforce a single initialization, any external caller can invoke `setup` on the proxy after deployment with their address encoded in `params_`. This grants them `OPERATOR` and `FLOW_LIMITER` roles, allowing them to change flow limiters and set the flow limit to 0 or an arbitrarily large value, potentially disabling rate limits relied on by the service.","recommendation":"Add an initialization guard in `TokenManager.setup` (e.g., an `initialized` flag in unstructured storage) or ensure the proxy constructor permanently disables further `setup` calls. Consider reverting if roles are already set to prevent role accumulation on re-init.","evidence":"`setup` is `external` and gated only by `onlyProxy`; it unconditionally calls `_addAccountRoles` for the supplied operator and the service, with no one-time initialization check, so repeated calls accumulate privileged roles.","locations":["contracts/contracts/token-manager/TokenManager.sol:101","contracts/contracts/token-manager/TokenManager.sol:110"]}]}
[codex:1301083] tokens used
[codex:1301083] 34,543
[codex:1301083] {"no_findings":false,"summary":"1 high severity issue found: TokenManager setup can be re-initialized on the proxy, enabling role takeover if the proxy does not enforce one-time initialization.","findings":[{"severity":"high","category":"upgradeability","title":"Re-initializable setup can grant operator/flow-limiter roles to an attacker","exploit_scenario":"If the proxy does not enforce a single initialization, any external caller can invoke `setup` on the proxy after deployment with their address encoded in `params_`. This grants them `OPERATOR` and `FLOW_LIMITER` roles, allowing them to change flow limiters and set the flow limit to 0 or an arbitrarily large value, potentially disabling rate limits relied on by the service.","recommendation":"Add an initialization guard in `TokenManager.setup` (e.g., an `initialized` flag in unstructured storage) or ensure the proxy constructor permanently disables further `setup` calls. Consider reverting if roles are already set to prevent role accumulation on re-init.","evidence":"`setup` is `external` and gated only by `onlyProxy`; it unconditionally calls `_addAccountRoles` for the supplied operator and the service, with no one-time initialization check, so repeated calls accumulate privileged roles.","locations":["contracts/contracts/token-manager/TokenManager.sol:101","contracts/contracts/token-manager/TokenManager.sol:110"]}]}
{
"codex": {
"ran_at": "2025-12-29T06:15:19.600799+00:00",
"returncode": 0
},
"summary": "1 high severity issue found: TokenManager setup can be re-initialized on the proxy, enabling role takeover if the proxy does not enforce one-time initialization.",
"raw_final": {
"summary": "1 high severity issue found: TokenManager setup can be re-initialized on the proxy, enabling role takeover if the proxy does not enforce one-time initialization.",
"findings": [
{
"title": "Re-initializable setup can grant operator/flow-limiter roles to an attacker",
"category": "upgradeability",
"evidence": "`setup` is `external` and gated only by `onlyProxy`; it unconditionally calls `_addAccountRoles` for the supplied operator and the service, with no one-time initialization check, so repeated calls accumulate privileged roles.",
"severity": "high",
"locations": [
"contracts/contracts/token-manager/TokenManager.sol:101",
"contracts/contracts/token-manager/TokenManager.sol:110"
],
"recommendation": "Add an initialization guard in `TokenManager.setup` (e.g., an `initialized` flag in unstructured storage) or ensure the proxy constructor permanently disables further `setup` calls. Consider reverting if roles are already set to prevent role accumulation on re-init.",
"exploit_scenario": "If the proxy does not enforce a single initialization, any external caller can invoke `setup` on the proxy after deployment with their address encoded in `params_`. This grants them `OPERATOR` and `FLOW_LIMITER` roles, allowing them to change flow limiters and set the flow limit to 0 or an arbitrarily large value, potentially disabling rate limits relied on by the service."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x01ac 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x7dbab19b 00000019: GT 0000001a: PUSH2 0x00ec 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xac9650d8 00000024: GT 00000025: PUSH2 0x008a 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xdce29136 0000002f: GT 00000030: PUSH2 0x0064 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xdce29136 0000003a: EQ 0000003b: PUSH2 0x04bf 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xdeb11e78 00000045: EQ 00000046: PUSH2 0x04df 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xe915cfd1 00000050: EQ 00000051: PUSH2 0x04ff 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xf5983e83 0000005b: EQ 0000005c: PUSH2 0x051f 0000005f: JUMPI 00000060: PUSH1 0x00 00000062: DUP1 00000063: REVERT 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xac9650d8 0000006b: EQ 0000006c: PUSH2 0x045f 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xadc0dc3b 00000076: EQ 00000077: PUSH2 0x047f 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xda4886df 00000081: EQ 00000082: PUSH2 0x049f 00000085: JUMPI 00000086: PUSH1 0x00 00000088: DUP1 00000089: REVERT 0000008a: JUMPDEST 0000008b: DUP1 0000008c: PUSH4 0x95a8c58d 00000091: GT 00000092: PUSH2 0x00c6 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0x95a8c58d 0000009c: EQ 0000009d: PUSH2 0x03ea 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x9d76ea58 000000a7: EQ 000000a8: PUSH2 0x040a 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0x9ded06df 000000b2: EQ 000000b3: PUSH2 0x041f 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0xa56dbe63 000000bd: EQ 000000be: PUSH2 0x043f 000000c1: JUMPI 000000c2: PUSH1 0x00 000000c4: DUP1 000000c5: REVERT 000000c6: JUMPDEST 000000c7: DUP1 000000c8: PUSH4 0x7dbab19b 000000cd: EQ 000000ce: PUSH2 0x036e 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0x8291286c 000000d8: EQ 000000d9: PUSH2 0x0383 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0x8b38b35d 000000e3: EQ 000000e4: PUSH2 0x03b6 000000e7: JUMPI 000000e8: PUSH1 0x00 000000ea: DUP1 000000eb: REVERT 000000ec: JUMPDEST 000000ed: DUP1 000000ee: PUSH4 0x2f3c7888 000000f3: GT 000000f4: PUSH2 0x0159 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0x4fdf7cb5 000000fe: GT 000000ff: PUSH2 0x0133 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0x4fdf7cb5 00000109: EQ 0000010a: PUSH2 0x0244 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0x6bec32da 00000114: EQ 00000115: PUSH2 0x02fe 00000118: JUMPI 00000119: DUP1 0000011a: PUSH4 0x6d70f7ae 0000011f: EQ 00000120: PUSH2 0x031e 00000123: JUMPI 00000124: DUP1 00000125: PUSH4 0x6f3eef62 0000012a: EQ 0000012b: PUSH2 0x034e 0000012e: JUMPI 0000012f: PUSH1 0x00 00000131: DUP1 00000132: REVERT 00000133: JUMPDEST 00000134: DUP1 00000135: PUSH4 0x2f3c7888 0000013a: EQ 0000013b: PUSH2 0x02a9 0000013e: JUMPI 0000013f: DUP1 00000140: PUSH4 0x3416794d 00000145: EQ 00000146: PUSH2 0x02be 00000149: JUMPI 0000014a: DUP1 0000014b: PUSH4 0x4a6a42d8 00000150: EQ 00000151: PUSH2 0x02de 00000154: JUMPI 00000155: PUSH1 0x00 00000157: DUP1 00000158: REVERT 00000159: JUMPDEST 0000015a: DUP1 0000015b: PUSH4 0x129d8188 00000160: GT 00000161: PUSH2 0x018a 00000164: JUMPI 00000165: DUP1 00000166: PUSH4 0x129d8188 0000016b: EQ 0000016c: PUSH2 0x0244 0000016f: JUMPI 00000170: DUP1 00000171: PUSH4 0x1c53d265 00000176: EQ 00000177: PUSH2 0x0267 0000017a: JUMPI 0000017b: DUP1 0000017c: PUSH4 0x27415838 00000181: EQ 00000182: PUSH2 0x0294 00000185: JUMPI 00000186: PUSH1 0x00 00000188: DUP1 00000189: REVERT 0000018a: JUMPDEST 0000018b: DUP1 0000018c: PUSH4 0x09c6bed9 00000191: EQ 00000192: PUSH2 0x01b1 00000195: JUMPI 00000196: DUP1 00000197: PUSH4 0x10d8d8e3 0000019c: EQ 0000019d: PUSH2 0x0202 000001a0: JUMPI 000001a1: DUP1 000001a2: PUSH4 0x120a63b5 000001a7: EQ 000001a8: PUSH2 0x0224 000001ab: JUMPI 000001ac: JUMPDEST 000001ad: PUSH1 0x00 000001af: DUP1 000001b0: REVERT 000001b1: JUMPDEST 000001b2: CALLVALUE 000001b3: DUP1 000001b4: ISZERO 000001b5: PUSH2 0x01bd 000001b8: JUMPI 000001b9: PUSH1 0x00 000001bb: DUP1 000001bc: REVERT 000001bd: JUMPDEST 000001be: POP 000001bf: PUSH2 0x01e5 000001c2: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c 000001e3: DUP2 000001e4: JUMP 000001e5: JUMPDEST 000001e6: PUSH1 0x40 000001e8: MLOAD 000001e9: PUSH1 0x01 000001eb: PUSH1 0x01 000001ed: PUSH1 0xa0 000001ef: SHL 000001f0: SUB 000001f1: SWAP1 000001f2: SWAP2 000001f3: AND 000001f4: DUP2 000001f5: MSTORE 000001f6: PUSH1 0x20 000001f8: ADD 000001f9: JUMPDEST 000001fa: PUSH1 0x40 000001fc: MLOAD 000001fd: DUP1 000001fe: SWAP2 000001ff: SUB 00000200: SWAP1 00000201: RETURN 00000202: JUMPDEST 00000203: CALLVALUE 00000204: DUP1 00000205: ISZERO 00000206: PUSH2 0x020e 00000209: JUMPI 0000020a: PUSH1 0x00 0000020c: DUP1 0000020d: REVERT 0000020e: JUMPDEST 0000020f: POP 00000210: PUSH2 0x0222 00000213: PUSH2 0x021d 00000216: CALLDATASIZE 00000217: PUSH1 0x04 00000219: PUSH2 0x15d2 0000021c: JUMP 0000021d: JUMPDEST 0000021e: PUSH2 0x053f 00000221: JUMP 00000222: JUMPDEST 00000223: STOP 00000224: JUMPDEST 00000225: CALLVALUE 00000226: DUP1 00000227: ISZERO 00000228: PUSH2 0x0230 0000022b: JUMPI 0000022c: PUSH1 0x00 0000022e: DUP1 0000022f: REVERT 00000230: JUMPDEST 00000231: POP 00000232: PUSH2 0x0222 00000235: PUSH2 0x023f 00000238: CALLDATASIZE 00000239: PUSH1 0x04 0000023b: PUSH2 0x1600 0000023e: JUMP 0000023f: JUMPDEST 00000240: PUSH2 0x059b 00000243: JUMP 00000244: JUMPDEST 00000245: CALLVALUE 00000246: DUP1 00000247: ISZERO 00000248: PUSH2 0x0250 0000024b: JUMPI 0000024c: PUSH1 0x00 0000024e: DUP1 0000024f: REVERT 00000250: JUMPDEST 00000251: POP 00000252: PUSH2 0x0259 00000255: PUSH2 0x05ed 00000258: JUMP 00000259: JUMPDEST 0000025a: PUSH1 0x40 0000025c: MLOAD 0000025d: SWAP1 0000025e: DUP2 0000025f: MSTORE 00000260: PUSH1 0x20 00000262: ADD 00000263: PUSH2 0x01f9 00000266: JUMP 00000267: JUMPDEST 00000268: CALLVALUE 00000269: DUP1 0000026a: ISZERO 0000026b: PUSH2 0x0273 0000026e: JUMPI 0000026f: PUSH1 0x00 00000271: DUP1 00000272: REVERT 00000273: JUMPDEST 00000274: POP 00000275: PUSH2 0x0287 00000278: PUSH2 0x0282 0000027b: CALLDATASIZE 0000027c: PUSH1 0x04 0000027e: PUSH2 0x1666 00000281: JUMP 00000282: JUMPDEST 00000283: PUSH2 0x0621 00000286: JUMP 00000287: JUMPDEST 00000288: PUSH1 0x40 0000028a: MLOAD 0000028b: PUSH2 0x01f9 0000028e: SWAP2 0000028f: SWAP1 00000290: PUSH2 0x170d 00000293: JUMP 00000294: JUMPDEST 00000295: CALLVALUE 00000296: DUP1 00000297: ISZERO 00000298: PUSH2 0x02a0 0000029b: JUMPI 0000029c: PUSH1 0x00 0000029e: DUP1 0000029f: REVERT 000002a0: JUMPDEST 000002a1: POP 000002a2: PUSH2 0x0222 000002a5: PUSH2 0x0650 000002a8: JUMP 000002a9: JUMPDEST 000002aa: CALLVALUE 000002ab: DUP1 000002ac: ISZERO 000002ad: PUSH2 0x02b5 000002b0: JUMPI 000002b1: PUSH1 0x00 000002b3: DUP1 000002b4: REVERT 000002b5: JUMPDEST 000002b6: POP 000002b7: PUSH2 0x0259 000002ba: PUSH2 0x07bb 000002bd: JUMP 000002be: JUMPDEST 000002bf: CALLVALUE 000002c0: DUP1 000002c1: ISZERO 000002c2: PUSH2 0x02ca 000002c5: JUMPI 000002c6: PUSH1 0x00 000002c8: DUP1 000002c9: REVERT 000002ca: JUMPDEST 000002cb: POP 000002cc: PUSH2 0x0222 000002cf: PUSH2 0x02d9 000002d2: CALLDATASIZE 000002d3: PUSH1 0x04 000002d5: PUSH2 0x1720 000002d8: JUMP 000002d9: JUMPDEST 000002da: PUSH2 0x07df 000002dd: JUMP 000002de: JUMPDEST 000002df: CALLVALUE 000002e0: DUP1 000002e1: ISZERO 000002e2: PUSH2 0x02ea 000002e5: JUMPI 000002e6: PUSH1 0x00 000002e8: DUP1 000002e9: REVERT 000002ea: JUMPDEST 000002eb: POP 000002ec: PUSH2 0x0222 000002ef: PUSH2 0x02f9 000002f2: CALLDATASIZE 000002f3: PUSH1 0x04 000002f5: PUSH2 0x1600 000002f8: JUMP 000002f9: JUMPDEST 000002fa: PUSH2 0x08e1 000002fd: JUMP 000002fe: JUMPDEST 000002ff: CALLVALUE 00000300: DUP1 00000301: ISZERO 00000302: PUSH2 0x030a 00000305: JUMPI 00000306: PUSH1 0x00 00000308: DUP1 00000309: REVERT 0000030a: JUMPDEST 0000030b: POP 0000030c: PUSH2 0x0222 0000030f: PUSH2 0x0319 00000312: CALLDATASIZE 00000313: PUSH1 0x04 00000315: PUSH2 0x1720 00000318: JUMP 00000319: JUMPDEST 0000031a: PUSH2 0x0923 0000031d: JUMP 0000031e: JUMPDEST 0000031f: CALLVALUE 00000320: DUP1 00000321: ISZERO 00000322: PUSH2 0x032a 00000325: JUMPI 00000326: PUSH1 0x00 00000328: DUP1 00000329: REVERT 0000032a: JUMPDEST 0000032b: POP 0000032c: PUSH2 0x033e 0000032f: PUSH2 0x0339 00000332: CALLDATASIZE 00000333: PUSH1 0x04 00000335: PUSH2 0x1600 00000338: JUMP 00000339: JUMPDEST 0000033a: PUSH2 0x09b5 0000033d: JUMP 0000033e: JUMPDEST 0000033f: PUSH1 0x40 00000341: MLOAD 00000342: SWAP1 00000343: ISZERO 00000344: ISZERO 00000345: DUP2 00000346: MSTORE 00000347: PUSH1 0x20 00000349: ADD 0000034a: PUSH2 0x01f9 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 0x0222 0000035f: PUSH2 0x0369 00000362: CALLDATASIZE 00000363: PUSH1 0x04 00000365: PUSH2 0x1600 00000368: JUMP 00000369: JUMPDEST 0000036a: PUSH2 0x09c8 0000036d: JUMP 0000036e: JUMPDEST 0000036f: CALLVALUE 00000370: DUP1 00000371: ISZERO 00000372: PUSH2 0x037a 00000375: JUMPI 00000376: PUSH1 0x00 00000378: DUP1 00000379: REVERT 0000037a: JUMPDEST 0000037b: POP 0000037c: PUSH2 0x0259 0000037f: PUSH2 0x0a0a 00000382: JUMP 00000383: JUMPDEST 00000384: CALLVALUE 00000385: DUP1 00000386: ISZERO 00000387: PUSH2 0x038f 0000038a: JUMPI 0000038b: PUSH1 0x00 0000038d: DUP1 0000038e: REVERT 0000038f: JUMPDEST 00000390: POP 00000391: PUSH32 0xde5fa9c0ef6d18cdb8ef4461bfb45c94dc915629a2a1f311fb33838aff95436f 000003b2: PUSH2 0x0259 000003b5: JUMP 000003b6: JUMPDEST 000003b7: CALLVALUE 000003b8: DUP1 000003b9: ISZERO 000003ba: PUSH2 0x03c2 000003bd: JUMPI 000003be: PUSH1 0x00 000003c0: DUP1 000003c1: REVERT 000003c2: JUMPDEST 000003c3: POP 000003c4: PUSH32 0x201b7a0b7c19aaddc4ce9579b7df8d2db123805861bc7763627f13e04d8af42f 000003e5: SLOAD 000003e6: PUSH2 0x0259 000003e9: JUMP 000003ea: JUMPDEST 000003eb: CALLVALUE 000003ec: DUP1 000003ed: ISZERO 000003ee: PUSH2 0x03f6 000003f1: JUMPI 000003f2: PUSH1 0x00 000003f4: DUP1 000003f5: REVERT 000003f6: JUMPDEST 000003f7: POP 000003f8: PUSH2 0x033e 000003fb: PUSH2 0x0405 000003fe: CALLDATASIZE 000003ff: PUSH1 0x04 00000401: PUSH2 0x1761 00000404: JUMP 00000405: JUMPDEST 00000406: PUSH2 0x0a26 00000409: JUMP 0000040a: JUMPDEST 0000040b: CALLVALUE 0000040c: DUP1 0000040d: ISZERO 0000040e: PUSH2 0x0416 00000411: JUMPI 00000412: PUSH1 0x00 00000414: DUP1 00000415: REVERT 00000416: JUMPDEST 00000417: POP 00000418: PUSH2 0x01e5 0000041b: PUSH2 0x05ed 0000041e: JUMP 0000041f: JUMPDEST 00000420: CALLVALUE 00000421: DUP1 00000422: ISZERO 00000423: PUSH2 0x042b 00000426: JUMPI 00000427: PUSH1 0x00 00000429: DUP1 0000042a: REVERT 0000042b: JUMPDEST 0000042c: POP 0000042d: PUSH2 0x0222 00000430: PUSH2 0x043a 00000433: CALLDATASIZE 00000434: PUSH1 0x04 00000436: PUSH2 0x17a0 00000439: JUMP 0000043a: JUMPDEST 0000043b: PUSH2 0x0a48 0000043e: JUMP 0000043f: JUMPDEST 00000440: CALLVALUE 00000441: DUP1 00000442: ISZERO 00000443: PUSH2 0x044b 00000446: JUMPI 00000447: PUSH1 0x00 00000449: DUP1 0000044a: REVERT 0000044b: JUMPDEST 0000044c: POP 0000044d: PUSH2 0x0222 00000450: PUSH2 0x045a 00000453: CALLDATASIZE 00000454: PUSH1 0x04 00000456: PUSH2 0x15d2 00000459: JUMP 0000045a: JUMPDEST 0000045b: PUSH2 0x0b1a 0000045e: JUMP 0000045f: JUMPDEST 00000460: PUSH2 0x0472 00000463: PUSH2 0x046d 00000466: CALLDATASIZE 00000467: PUSH1 0x04 00000469: PUSH2 0x17e2 0000046c: JUMP 0000046d: JUMPDEST 0000046e: PUSH2 0x0bbb 00000471: JUMP 00000472: JUMPDEST 00000473: PUSH1 0x40 00000475: MLOAD 00000476: PUSH2 0x01f9 00000479: SWAP2 0000047a: SWAP1 0000047b: PUSH2 0x1859 0000047e: JUMP 0000047f: JUMPDEST 00000480: CALLVALUE 00000481: DUP1 00000482: ISZERO 00000483: PUSH2 0x048b 00000486: JUMPI 00000487: PUSH1 0x00 00000489: DUP1 0000048a: REVERT 0000048b: JUMPDEST 0000048c: POP 0000048d: PUSH2 0x0222 00000490: PUSH2 0x049a 00000493: CALLDATASIZE 00000494: PUSH1 0x04 00000496: PUSH2 0x18be 00000499: JUMP 0000049a: JUMPDEST 0000049b: PUSH2 0x0d0b 0000049e: JUMP 0000049f: JUMPDEST 000004a0: CALLVALUE 000004a1: DUP1 000004a2: ISZERO 000004a3: PUSH2 0x04ab 000004a6: JUMPI 000004a7: PUSH1 0x00 000004a9: DUP1 000004aa: REVERT 000004ab: JUMPDEST 000004ac: POP 000004ad: PUSH2 0x0222 000004b0: PUSH2 0x04ba 000004b3: CALLDATASIZE 000004b4: PUSH1 0x04 000004b6: PUSH2 0x1600 000004b9: JUMP 000004ba: JUMPDEST 000004bb: PUSH2 0x0d4d 000004be: JUMP 000004bf: JUMPDEST 000004c0: CALLVALUE 000004c1: DUP1 000004c2: ISZERO 000004c3: PUSH2 0x04cb 000004c6: JUMPI 000004c7: PUSH1 0x00 000004c9: DUP1 000004ca: REVERT 000004cb: JUMPDEST 000004cc: POP 000004cd: PUSH2 0x0222 000004d0: PUSH2 0x04da 000004d3: CALLDATASIZE 000004d4: PUSH1 0x04 000004d6: PUSH2 0x15d2 000004d9: JUMP 000004da: JUMPDEST 000004db: PUSH2 0x0d59 000004de: JUMP 000004df: JUMPDEST 000004e0: CALLVALUE 000004e1: DUP1 000004e2: ISZERO 000004e3: PUSH2 0x04eb 000004e6: JUMPI 000004e7: PUSH1 0x00 000004e9: DUP1 000004ea: REVERT 000004eb: JUMPDEST 000004ec: POP 000004ed: PUSH2 0x033e 000004f0: PUSH2 0x04fa 000004f3: CALLDATASIZE 000004f4: PUSH1 0x04 000004f6: PUSH2 0x1600 000004f9: JUMP 000004fa: JUMPDEST 000004fb: PUSH2 0x0dad 000004fe: JUMP 000004ff: JUMPDEST 00000500: CALLVALUE 00000501: DUP1 00000502: ISZERO 00000503: PUSH2 0x050b 00000506: JUMPI 00000507: PUSH1 0x00 00000509: DUP1 0000050a: REVERT 0000050b: JUMPDEST 0000050c: POP 0000050d: PUSH2 0x0222 00000510: PUSH2 0x051a 00000513: CALLDATASIZE 00000514: PUSH1 0x04 00000516: PUSH2 0x1600 00000519: JUMP 0000051a: JUMPDEST 0000051b: PUSH2 0x0dba 0000051e: JUMP 0000051f: JUMPDEST 00000520: CALLVALUE 00000521: DUP1 00000522: ISZERO 00000523: PUSH2 0x052b 00000526: JUMPI 00000527: PUSH1 0x00 00000529: DUP1 0000052a: REVERT 0000052b: JUMPDEST 0000052c: POP 0000052d: PUSH2 0x01e5 00000530: PUSH2 0x053a 00000533: CALLDATASIZE 00000534: PUSH1 0x04 00000536: PUSH2 0x17a0 00000539: JUMP 0000053a: JUMPDEST 0000053b: PUSH2 0x0dfb 0000053e: JUMP 0000053f: JUMPDEST 00000540: CALLER 00000541: PUSH1 0x01 00000543: PUSH1 0x01 00000545: PUSH1 0xa0 00000547: SHL 00000548: SUB 00000549: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c 0000056a: AND 0000056b: EQ 0000056c: PUSH2 0x058f 0000056f: JUMPI 00000570: PUSH1 0x40 00000572: MLOAD 00000573: PUSH4 0x0d6c7be9 00000578: PUSH1 0xe0 0000057a: SHL 0000057b: DUP2 0000057c: MSTORE 0000057d: CALLER 0000057e: PUSH1 0x04 00000580: DUP3 00000581: ADD 00000582: MSTORE 00000583: PUSH1 0x24 00000585: ADD 00000586: JUMPDEST 00000587: PUSH1 0x40 00000589: MLOAD 0000058a: DUP1 0000058b: SWAP2 0000058c: SUB 0000058d: SWAP1 0000058e: REVERT 0000058f: JUMPDEST 00000590: PUSH2 0x0598 00000593: DUP2 00000594: PUSH2 0x0e11 00000597: JUMP 00000598: JUMPDEST 00000599: POP 0000059a: JUMP 0000059b: JUMPDEST 0000059c: PUSH1 0x01 0000059e: PUSH2 0x05b6 000005a1: PUSH2 0x05a9 000005a4: CALLER 000005a5: PUSH2 0x0e86 000005a8: JUMP 000005a9: JUMPDEST 000005aa: PUSH1 0x01 000005ac: PUSH1 0xff 000005ae: DUP5 000005af: AND 000005b0: SHL 000005b1: AND 000005b2: ISZERO 000005b3: ISZERO 000005b4: SWAP1 000005b5: JUMP 000005b6: JUMPDEST 000005b7: PUSH2 0x05de 000005ba: JUMPI 000005bb: PUSH1 0x40 000005bd: MLOAD 000005be: PUSH4 0xbb6c1639 000005c3: PUSH1 0xe0 000005c5: SHL 000005c6: DUP2 000005c7: MSTORE 000005c8: CALLER 000005c9: PUSH1 0x04 000005cb: DUP3 000005cc: ADD 000005cd: MSTORE 000005ce: PUSH1 0xff 000005d0: DUP3 000005d1: AND 000005d2: PUSH1 0x24 000005d4: DUP3 000005d5: ADD 000005d6: MSTORE 000005d7: PUSH1 0x44 000005d9: ADD 000005da: PUSH2 0x0586 000005dd: JUMP 000005de: JUMPDEST 000005df: PUSH2 0x05e9 000005e2: DUP3 000005e3: PUSH1 0x02 000005e5: PUSH2 0x0e92 000005e8: JUMP 000005e9: JUMPDEST 000005ea: POP 000005eb: POP 000005ec: JUMP 000005ed: JUMPDEST 000005ee: PUSH1 0x00 000005f0: PUSH1 0x40 000005f2: MLOAD 000005f3: PUSH32 0xa038794000000000000000000000000000000000000000000000000000000000 00000614: DUP2 00000615: MSTORE 00000616: PUSH1 0x04 00000618: ADD 00000619: PUSH1 0x40 0000061b: MLOAD 0000061c: DUP1 0000061d: SWAP2 0000061e: SUB 0000061f: SWAP1 00000620: REVERT 00000621: JUMPDEST 00000622: PUSH1 0x60 00000624: DUP4 00000625: DUP4 00000626: DUP4 00000627: PUSH1 0x40 00000629: MLOAD 0000062a: PUSH1 0x20 0000062c: ADD 0000062d: PUSH2 0x0638 00000630: SWAP4 00000631: SWAP3 00000632: SWAP2 00000633: SWAP1 00000634: PUSH2 0x18ec 00000637: JUMP 00000638: JUMPDEST 00000639: PUSH1 0x40 0000063b: MLOAD 0000063c: PUSH1 0x20 0000063e: DUP2 0000063f: DUP4 00000640: SUB 00000641: SUB 00000642: DUP2 00000643: MSTORE 00000644: SWAP1 00000645: PUSH1 0x40 00000647: MSTORE 00000648: SWAP1 00000649: POP 0000064a: SWAP4 0000064b: SWAP3 0000064c: POP 0000064d: POP 0000064e: POP 0000064f: JUMP 00000650: JUMPDEST 00000651: CALLER 00000652: PUSH1 0x01 00000654: PUSH1 0x01 00000656: PUSH1 0xa0 00000658: SHL 00000659: SUB 0000065a: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c 0000067b: AND 0000067c: EQ 0000067d: PUSH2 0x069b 00000680: JUMPI 00000681: PUSH1 0x40 00000683: MLOAD 00000684: PUSH4 0x0d6c7be9 00000689: PUSH1 0xe0 0000068b: SHL 0000068c: DUP2 0000068d: MSTORE 0000068e: CALLER 0000068f: PUSH1 0x04 00000691: DUP3 00000692: ADD 00000693: MSTORE 00000694: PUSH1 0x24 00000696: ADD 00000697: PUSH2 0x0586 0000069a: JUMP 0000069b: JUMPDEST 0000069c: PUSH1 0x40 0000069e: DUP1 0000069f: MLOAD 000006a0: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c 000006c1: PUSH1 0x01 000006c3: PUSH1 0x01 000006c5: PUSH1 0xa0 000006c7: SHL 000006c8: SUB 000006c9: AND 000006ca: PUSH1 0x24 000006cc: DUP3 000006cd: ADD 000006ce: MSTORE 000006cf: PUSH1 0x00 000006d1: NOT 000006d2: PUSH1 0x44 000006d4: DUP1 000006d5: DUP4 000006d6: ADD 000006d7: SWAP2 000006d8: SWAP1 000006d9: SWAP2 000006da: MSTORE 000006db: DUP3 000006dc: MLOAD 000006dd: DUP1 000006de: DUP4 000006df: SUB 000006e0: SWAP1 000006e1: SWAP2 000006e2: ADD 000006e3: DUP2 000006e4: MSTORE 000006e5: PUSH1 0x64 000006e7: SWAP1 000006e8: SWAP2 000006e9: ADD 000006ea: DUP3 000006eb: MSTORE 000006ec: PUSH1 0x20 000006ee: DUP1 000006ef: DUP3 000006f0: ADD 000006f1: DUP1 000006f2: MLOAD 000006f3: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00000710: AND 00000711: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000 00000732: OR 00000733: SWAP1 00000734: MSTORE 00000735: DUP3 00000736: MLOAD 00000737: PUSH32 0x9d76ea5800000000000000000000000000000000000000000000000000000000 00000758: DUP2 00000759: MSTORE 0000075a: SWAP3 0000075b: MLOAD 0000075c: PUSH2 0x07b9 0000075f: SWAP4 00000760: ADDRESS 00000761: SWAP3 00000762: PUSH4 0x9d76ea58 00000767: SWAP3 00000768: PUSH1 0x04 0000076a: DUP1 0000076b: DUP5 0000076c: ADD 0000076d: SWAP4 0000076e: DUP3 0000076f: SWAP1 00000770: SUB 00000771: ADD 00000772: DUP2 00000773: DUP7 00000774: GAS 00000775: STATICCALL 00000776: ISZERO 00000777: DUP1 00000778: ISZERO 00000779: PUSH2 0x0786 0000077c: JUMPI 0000077d: RETURNDATASIZE 0000077e: PUSH1 0x00 00000780: DUP1 00000781: RETURNDATACOPY 00000782: RETURNDATASIZE 00000783: PUSH1 0x00 00000785: REVERT 00000786: JUMPDEST 00000787: POP 00000788: POP 00000789: POP 0000078a: POP 0000078b: PUSH1 0x40 0000078d: MLOAD 0000078e: RETURNDATASIZE 0000078f: PUSH1 0x1f 00000791: NOT 00000792: PUSH1 0x1f 00000794: DUP3 00000795: ADD 00000796: AND 00000797: DUP3 00000798: ADD 00000799: DUP1 0000079a: PUSH1 0x40 0000079c: MSTORE 0000079d: POP 0000079e: DUP2 0000079f: ADD 000007a0: SWAP1 000007a1: PUSH2 0x07aa 000007a4: SWAP2 000007a5: SWAP1 000007a6: PUSH2 0x192e 000007a9: JUMP 000007aa: JUMPDEST 000007ab: PUSH1 0x01 000007ad: PUSH1 0x01 000007af: PUSH1 0xa0 000007b1: SHL 000007b2: SUB 000007b3: AND 000007b4: SWAP1 000007b5: PUSH2 0x0ea2 000007b8: JUMP 000007b9: JUMPDEST 000007ba: JUMP 000007bb: JUMPDEST 000007bc: PUSH1 0x00 000007be: DUP1 000007bf: PUSH2 0x07ca 000007c2: PUSH2 0x5460 000007c5: TIMESTAMP 000007c6: PUSH2 0x1961 000007c9: JUMP 000007ca: JUMPDEST 000007cb: SWAP1 000007cc: POP 000007cd: PUSH1 0x00 000007cf: PUSH2 0x07d7 000007d2: DUP3 000007d3: PUSH2 0x0f79 000007d6: JUMP 000007d7: JUMPDEST 000007d8: SLOAD 000007d9: SWAP4 000007da: SWAP3 000007db: POP 000007dc: POP 000007dd: POP 000007de: JUMP 000007df: JUMPDEST 000007e0: CALLER 000007e1: PUSH1 0x01 000007e3: PUSH1 0x01 000007e5: PUSH1 0xa0 000007e7: SHL 000007e8: SUB 000007e9: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c 0000080a: AND 0000080b: EQ 0000080c: PUSH2 0x082a 0000080f: JUMPI 00000810: PUSH1 0x40 00000812: MLOAD 00000813: PUSH4 0x0d6c7be9 00000818: PUSH1 0xe0 0000081a: SHL 0000081b: DUP2 0000081c: MSTORE 0000081d: CALLER 0000081e: PUSH1 0x04 00000820: DUP3 00000821: ADD 00000822: MSTORE 00000823: PUSH1 0x24 00000825: ADD 00000826: PUSH2 0x0586 00000829: JUMP 0000082a: JUMPDEST 0000082b: PUSH1 0x40 0000082d: MLOAD 0000082e: PUSH1 0x01 00000830: PUSH1 0x01 00000832: PUSH1 0xa0 00000834: SHL 00000835: SUB 00000836: DUP4 00000837: AND 00000838: PUSH1 0x24 0000083a: DUP3 0000083b: ADD 0000083c: MSTORE 0000083d: PUSH1 0x44 0000083f: DUP2 00000840: ADD 00000841: DUP3 00000842: SWAP1 00000843: MSTORE 00000844: PUSH2 0x08dc 00000847: SWAP1 00000848: PUSH32 0x9dc29fac00000000000000000000000000000000000000000000000000000000 00000869: SWAP1 0000086a: PUSH1 0x64 0000086c: ADD 0000086d: JUMPDEST 0000086e: PUSH1 0x40 00000870: DUP1 00000871: MLOAD 00000872: PUSH1 0x1f 00000874: NOT 00000875: DUP2 00000876: DUP5 00000877: SUB 00000878: ADD 00000879: DUP2 0000087a: MSTORE 0000087b: SWAP2 0000087c: SWAP1 0000087d: MSTORE 0000087e: PUSH1 0x20 00000880: DUP2 00000881: ADD 00000882: DUP1 00000883: MLOAD 00000884: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000008a1: AND 000008a2: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000008c3: SWAP1 000008c4: SWAP4 000008c5: AND 000008c6: SWAP3 000008c7: SWAP1 000008c8: SWAP3 000008c9: OR 000008ca: SWAP1 000008cb: SWAP2 000008cc: MSTORE 000008cd: PUSH1 0x01 000008cf: PUSH1 0x01 000008d1: PUSH1 0xa0 000008d3: SHL 000008d4: SUB 000008d5: DUP6 000008d6: AND 000008d7: SWAP1 000008d8: PUSH2 0x0ea2 000008db: JUMP 000008dc: JUMPDEST 000008dd: POP 000008de: POP 000008df: POP 000008e0: JUMP 000008e1: JUMPDEST 000008e2: PUSH1 0x01 000008e4: PUSH2 0x08ef 000008e7: PUSH2 0x05a9 000008ea: CALLER 000008eb: PUSH2 0x0e86 000008ee: JUMP 000008ef: JUMPDEST 000008f0: PUSH2 0x0917 000008f3: JUMPI 000008f4: PUSH1 0x40 000008f6: MLOAD 000008f7: PUSH4 0xbb6c1639 000008fc: PUSH1 0xe0 000008fe: SHL 000008ff: DUP2 00000900: MSTORE 00000901: CALLER 00000902: PUSH1 0x04 00000904: DUP3 00000905: ADD 00000906: MSTORE 00000907: PUSH1 0xff 00000909: DUP3 0000090a: AND 0000090b: PUSH1 0x24 0000090d: DUP3 0000090e: ADD 0000090f: MSTORE 00000910: PUSH1 0x44 00000912: ADD 00000913: PUSH2 0x0586 00000916: JUMP 00000917: JUMPDEST 00000918: PUSH2 0x05e9 0000091b: CALLER 0000091c: DUP4 0000091d: PUSH1 0x01 0000091f: PUSH2 0x0fce 00000922: JUMP 00000923: JUMPDEST 00000924: CALLER 00000925: PUSH1 0x01 00000927: PUSH1 0x01 00000929: PUSH1 0xa0 0000092b: SHL 0000092c: SUB 0000092d: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c 0000094e: AND 0000094f: EQ 00000950: PUSH2 0x096e 00000953: JUMPI 00000954: PUSH1 0x40 00000956: MLOAD 00000957: PUSH4 0x0d6c7be9 0000095c: PUSH1 0xe0 0000095e: SHL 0000095f: DUP2 00000960: MSTORE 00000961: CALLER 00000962: PUSH1 0x04 00000964: DUP3 00000965: ADD 00000966: MSTORE 00000967: PUSH1 0x24 00000969: ADD 0000096a: PUSH2 0x0586 0000096d: JUMP 0000096e: JUMPDEST 0000096f: PUSH1 0x40 00000971: MLOAD 00000972: PUSH1 0x01 00000974: PUSH1 0x01 00000976: PUSH1 0xa0 00000978: SHL 00000979: SUB 0000097a: DUP4 0000097b: AND 0000097c: PUSH1 0x24 0000097e: DUP3 0000097f: ADD 00000980: MSTORE 00000981: PUSH1 0x44 00000983: DUP2 00000984: ADD 00000985: DUP3 00000986: SWAP1 00000987: MSTORE 00000988: PUSH2 0x08dc 0000098b: SWAP1 0000098c: PUSH32 0x40c10f1900000000000000000000000000000000000000000000000000000000 000009ad: SWAP1 000009ae: PUSH1 0x64 000009b0: ADD 000009b1: PUSH2 0x086d 000009b4: JUMP 000009b5: JUMPDEST 000009b6: PUSH1 0x00 000009b8: PUSH2 0x09c2 000009bb: DUP3 000009bc: PUSH1 0x01 000009be: PUSH2 0x0a26 000009c1: JUMP 000009c2: JUMPDEST 000009c3: SWAP3 000009c4: SWAP2 000009c5: POP 000009c6: POP 000009c7: JUMP 000009c8: JUMPDEST 000009c9: PUSH1 0x01 000009cb: PUSH2 0x09d6 000009ce: PUSH2 0x05a9 000009d1: CALLER 000009d2: PUSH2 0x0e86 000009d5: JUMP 000009d6: JUMPDEST 000009d7: PUSH2 0x09fe 000009da: JUMPI 000009db: PUSH1 0x40 000009dd: MLOAD 000009de: PUSH4 0xbb6c1639 000009e3: PUSH1 0xe0 000009e5: SHL 000009e6: DUP2 000009e7: MSTORE 000009e8: CALLER 000009e9: PUSH1 0x04 000009eb: DUP3 000009ec: ADD 000009ed: MSTORE 000009ee: PUSH1 0xff 000009f0: DUP3 000009f1: AND 000009f2: PUSH1 0x24 000009f4: DUP3 000009f5: ADD 000009f6: MSTORE 000009f7: PUSH1 0x44 000009f9: ADD 000009fa: PUSH2 0x0586 000009fd: JUMP 000009fe: JUMPDEST 000009ff: PUSH2 0x05e9 00000a02: CALLER 00000a03: DUP4 00000a04: PUSH1 0x01 00000a06: PUSH2 0x0fdf 00000a09: JUMP 00000a0a: JUMPDEST 00000a0b: PUSH1 0x00 00000a0d: DUP1 00000a0e: PUSH2 0x0a19 00000a11: PUSH2 0x5460 00000a14: TIMESTAMP 00000a15: PUSH2 0x1961 00000a18: JUMP 00000a19: JUMPDEST 00000a1a: SWAP1 00000a1b: POP 00000a1c: PUSH1 0x00 00000a1e: PUSH2 0x07d7 00000a21: DUP3 00000a22: PUSH2 0x0ff0 00000a25: JUMP 00000a26: JUMPDEST 00000a27: PUSH1 0x00 00000a29: PUSH2 0x0a41 00000a2c: PUSH2 0x0a34 00000a2f: DUP5 00000a30: PUSH2 0x0e86 00000a33: JUMP 00000a34: JUMPDEST 00000a35: PUSH1 0x01 00000a37: PUSH1 0xff 00000a39: DUP6 00000a3a: AND 00000a3b: SHL 00000a3c: AND 00000a3d: ISZERO 00000a3e: ISZERO 00000a3f: SWAP1 00000a40: JUMP 00000a41: JUMPDEST 00000a42: SWAP4 00000a43: SWAP3 00000a44: POP 00000a45: POP 00000a46: POP 00000a47: JUMP 00000a48: JUMPDEST 00000a49: ADDRESS 00000a4a: PUSH32 0x0000000000000000000000008832f0381707bb29756edecf42580800207f2a9e 00000a6b: PUSH1 0x01 00000a6d: PUSH1 0x01 00000a6f: PUSH1 0xa0 00000a71: SHL 00000a72: SUB 00000a73: AND 00000a74: SUB 00000a75: PUSH2 0x0aaa 00000a78: JUMPI 00000a79: PUSH1 0x40 00000a7b: MLOAD 00000a7c: PUSH32 0xbf10dd3a00000000000000000000000000000000000000000000000000000000 00000a9d: DUP2 00000a9e: MSTORE 00000a9f: PUSH1 0x04 00000aa1: ADD 00000aa2: PUSH1 0x40 00000aa4: MLOAD 00000aa5: DUP1 00000aa6: SWAP2 00000aa7: SUB 00000aa8: SWAP1 00000aa9: REVERT 00000aaa: JUMPDEST 00000aab: PUSH1 0x00 00000aad: PUSH2 0x0ab8 00000ab0: DUP3 00000ab1: DUP5 00000ab2: ADD 00000ab3: DUP5 00000ab4: PUSH2 0x1a28 00000ab7: JUMP 00000ab8: JUMPDEST 00000ab9: SWAP1 00000aba: POP 00000abb: PUSH1 0x00 00000abd: DUP2 00000abe: MLOAD 00000abf: PUSH1 0x00 00000ac1: EQ 00000ac2: PUSH2 0x0ad1 00000ac5: JUMPI 00000ac6: PUSH2 0x0ace 00000ac9: DUP3 00000aca: PUSH2 0x102b 00000acd: JUMP 00000ace: JUMPDEST 00000acf: SWAP1 00000ad0: POP 00000ad1: JUMPDEST 00000ad2: PUSH2 0x0ae9 00000ad5: DUP2 00000ad6: PUSH1 0x01 00000ad8: JUMPDEST 00000ad9: PUSH1 0x01 00000adb: PUSH1 0xff 00000add: SWAP2 00000ade: SWAP1 00000adf: SWAP2 00000ae0: AND 00000ae1: SHL 00000ae2: PUSH1 0x04 00000ae4: OR 00000ae5: PUSH2 0x1072 00000ae8: JUMP 00000ae9: JUMPDEST 00000aea: PUSH2 0x0b14 00000aed: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c 00000b0e: PUSH1 0x01 00000b10: PUSH2 0x0ad8 00000b13: JUMP 00000b14: JUMPDEST 00000b15: POP 00000b16: POP 00000b17: POP 00000b18: POP 00000b19: JUMP 00000b1a: JUMPDEST 00000b1b: PUSH1 0x02 00000b1d: PUSH2 0x0b28 00000b20: PUSH2 0x05a9 00000b23: CALLER 00000b24: PUSH2 0x0e86 00000b27: JUMP 00000b28: JUMPDEST 00000b29: PUSH2 0x0b50 00000b2c: JUMPI 00000b2d: PUSH1 0x40 00000b2f: MLOAD 00000b30: PUSH4 0xbb6c1639 00000b35: PUSH1 0xe0 00000b37: SHL 00000b38: DUP2 00000b39: MSTORE 00000b3a: CALLER 00000b3b: PUSH1 0x04 00000b3d: DUP3 00000b3e: ADD 00000b3f: MSTORE 00000b40: PUSH1 0xff 00000b42: DUP3 00000b43: AND 00000b44: PUSH1 0x24 00000b46: DUP3 00000b47: ADD 00000b48: MSTORE 00000b49: PUSH1 0x44 00000b4b: ADD 00000b4c: PUSH2 0x0586 00000b4f: JUMP 00000b50: JUMPDEST 00000b51: PUSH2 0x05e9 00000b54: DUP3 00000b55: ADDRESS 00000b56: PUSH1 0x01 00000b58: PUSH1 0x01 00000b5a: PUSH1 0xa0 00000b5c: SHL 00000b5d: SUB 00000b5e: AND 00000b5f: PUSH4 0x129d8188 00000b64: PUSH1 0x40 00000b66: MLOAD 00000b67: DUP2 00000b68: PUSH4 0xffffffff 00000b6d: AND 00000b6e: PUSH1 0xe0 00000b70: SHL 00000b71: DUP2 00000b72: MSTORE 00000b73: PUSH1 0x04 00000b75: ADD 00000b76: PUSH1 0x20 00000b78: PUSH1 0x40 00000b7a: MLOAD 00000b7b: DUP1 00000b7c: DUP4 00000b7d: SUB 00000b7e: DUP2 00000b7f: DUP7 00000b80: GAS 00000b81: STATICCALL 00000b82: ISZERO 00000b83: DUP1 00000b84: ISZERO 00000b85: PUSH2 0x0b92 00000b88: JUMPI 00000b89: RETURNDATASIZE 00000b8a: PUSH1 0x00 00000b8c: DUP1 00000b8d: RETURNDATACOPY 00000b8e: RETURNDATASIZE 00000b8f: PUSH1 0x00 00000b91: REVERT 00000b92: JUMPDEST 00000b93: POP 00000b94: POP 00000b95: POP 00000b96: POP 00000b97: PUSH1 0x40 00000b99: MLOAD 00000b9a: RETURNDATASIZE 00000b9b: PUSH1 0x1f 00000b9d: NOT 00000b9e: PUSH1 0x1f 00000ba0: DUP3 00000ba1: ADD 00000ba2: AND 00000ba3: DUP3 00000ba4: ADD 00000ba5: DUP1 00000ba6: PUSH1 0x40 00000ba8: MSTORE 00000ba9: POP 00000baa: DUP2 00000bab: ADD 00000bac: SWAP1 00000bad: PUSH2 0x0bb6 00000bb0: SWAP2 00000bb1: SWAP1 00000bb2: PUSH2 0x1a5d 00000bb5: JUMP 00000bb6: JUMPDEST 00000bb7: PUSH2 0x10d3 00000bba: JUMP 00000bbb: JUMPDEST 00000bbc: PUSH1 0x60 00000bbe: DUP2 00000bbf: PUSH8 0xffffffffffffffff 00000bc8: DUP2 00000bc9: GT 00000bca: ISZERO 00000bcb: PUSH2 0x0bd6 00000bce: JUMPI 00000bcf: PUSH2 0x0bd6 00000bd2: PUSH2 0x1983 00000bd5: JUMP 00000bd6: JUMPDEST 00000bd7: PUSH1 0x40 00000bd9: MLOAD 00000bda: SWAP1 00000bdb: DUP1 00000bdc: DUP3 00000bdd: MSTORE 00000bde: DUP1 00000bdf: PUSH1 0x20 00000be1: MUL 00000be2: PUSH1 0x20 00000be4: ADD 00000be5: DUP3 00000be6: ADD 00000be7: PUSH1 0x40 00000be9: MSTORE 00000bea: DUP1 00000beb: ISZERO 00000bec: PUSH2 0x0c09 00000bef: JUMPI 00000bf0: DUP2 00000bf1: PUSH1 0x20 00000bf3: ADD 00000bf4: JUMPDEST 00000bf5: PUSH1 0x60 00000bf7: DUP2 00000bf8: MSTORE 00000bf9: PUSH1 0x20 00000bfb: ADD 00000bfc: SWAP1 00000bfd: PUSH1 0x01 00000bff: SWAP1 00000c00: SUB 00000c01: SWAP1 00000c02: DUP2 00000c03: PUSH2 0x0bf4 00000c06: JUMPI 00000c07: SWAP1 00000c08: POP 00000c09: JUMPDEST 00000c0a: POP 00000c0b: SWAP1 00000c0c: POP 00000c0d: PUSH1 0x00 00000c0f: PUSH1 0x60 00000c11: PUSH1 0x00 00000c13: JUMPDEST 00000c14: DUP5 00000c15: DUP2 00000c16: LT 00000c17: ISZERO 00000c18: PUSH2 0x0d02 00000c1b: JUMPI 00000c1c: ADDRESS 00000c1d: DUP7 00000c1e: DUP7 00000c1f: DUP4 00000c20: DUP2 00000c21: DUP2 00000c22: LT 00000c23: PUSH2 0x0c2e 00000c26: JUMPI 00000c27: PUSH2 0x0c2e 00000c2a: PUSH2 0x1a76 00000c2d: JUMP 00000c2e: JUMPDEST 00000c2f: SWAP1 00000c30: POP 00000c31: PUSH1 0x20 00000c33: MUL 00000c34: DUP2 00000c35: ADD 00000c36: SWAP1 00000c37: PUSH2 0x0c40 00000c3a: SWAP2 00000c3b: SWAP1 00000c3c: PUSH2 0x1a8c 00000c3f: JUMP 00000c40: JUMPDEST 00000c41: PUSH1 0x40 00000c43: MLOAD 00000c44: PUSH2 0x0c4e 00000c47: SWAP3 00000c48: SWAP2 00000c49: SWAP1 00000c4a: PUSH2 0x1ad3 00000c4d: JUMP 00000c4e: JUMPDEST 00000c4f: PUSH1 0x00 00000c51: PUSH1 0x40 00000c53: MLOAD 00000c54: DUP1 00000c55: DUP4 00000c56: SUB 00000c57: DUP2 00000c58: DUP6 00000c59: GAS 00000c5a: DELEGATECALL 00000c5b: SWAP2 00000c5c: POP 00000c5d: POP 00000c5e: RETURNDATASIZE 00000c5f: DUP1 00000c60: PUSH1 0x00 00000c62: DUP2 00000c63: EQ 00000c64: PUSH2 0x0c89 00000c67: JUMPI 00000c68: PUSH1 0x40 00000c6a: MLOAD 00000c6b: SWAP2 00000c6c: POP 00000c6d: PUSH1 0x1f 00000c6f: NOT 00000c70: PUSH1 0x3f 00000c72: RETURNDATASIZE 00000c73: ADD 00000c74: AND 00000c75: DUP3 00000c76: ADD 00000c77: PUSH1 0x40 00000c79: MSTORE 00000c7a: RETURNDATASIZE 00000c7b: DUP3 00000c7c: MSTORE 00000c7d: RETURNDATASIZE 00000c7e: PUSH1 0x00 00000c80: PUSH1 0x20 00000c82: DUP5 00000c83: ADD 00000c84: RETURNDATACOPY 00000c85: PUSH2 0x0c8e 00000c88: JUMP 00000c89: JUMPDEST 00000c8a: PUSH1 0x60 00000c8c: SWAP2 00000c8d: POP 00000c8e: JUMPDEST 00000c8f: POP 00000c90: SWAP1 00000c91: SWAP4 00000c92: POP 00000c93: SWAP2 00000c94: POP 00000c95: DUP3 00000c96: PUSH2 0x0cdc 00000c99: JUMPI 00000c9a: DUP2 00000c9b: MLOAD 00000c9c: PUSH1 0x00 00000c9e: SUB 00000c9f: PUSH2 0x0cd4 00000ca2: JUMPI 00000ca3: PUSH1 0x40 00000ca5: MLOAD 00000ca6: PUSH32 0x4d6a232800000000000000000000000000000000000000000000000000000000 00000cc7: DUP2 00000cc8: MSTORE 00000cc9: PUSH1 0x04 00000ccb: ADD 00000ccc: PUSH1 0x40 00000cce: MLOAD 00000ccf: DUP1 00000cd0: SWAP2 00000cd1: SUB 00000cd2: SWAP1 00000cd3: REVERT 00000cd4: JUMPDEST 00000cd5: DUP2 00000cd6: MLOAD 00000cd7: DUP3 00000cd8: PUSH1 0x20 00000cda: ADD 00000cdb: REVERT 00000cdc: JUMPDEST 00000cdd: DUP2 00000cde: DUP5 00000cdf: DUP3 00000ce0: DUP2 00000ce1: MLOAD 00000ce2: DUP2 00000ce3: LT 00000ce4: PUSH2 0x0cef 00000ce7: JUMPI 00000ce8: PUSH2 0x0cef 00000ceb: PUSH2 0x1a76 00000cee: JUMP 00000cef: JUMPDEST 00000cf0: PUSH1 0x20 00000cf2: SWAP1 00000cf3: DUP2 00000cf4: MUL 00000cf5: SWAP2 00000cf6: SWAP1 00000cf7: SWAP2 00000cf8: ADD 00000cf9: ADD 00000cfa: MSTORE 00000cfb: PUSH1 0x01 00000cfd: ADD 00000cfe: PUSH2 0x0c13 00000d01: JUMP 00000d02: JUMPDEST 00000d03: POP 00000d04: POP 00000d05: POP 00000d06: SWAP3 00000d07: SWAP2 00000d08: POP 00000d09: POP 00000d0a: JUMP 00000d0b: JUMPDEST 00000d0c: PUSH1 0x01 00000d0e: PUSH2 0x0d19 00000d11: PUSH2 0x05a9 00000d14: CALLER 00000d15: PUSH2 0x0e86 00000d18: JUMP 00000d19: JUMPDEST 00000d1a: PUSH2 0x0d41 00000d1d: JUMPI 00000d1e: PUSH1 0x40 00000d20: MLOAD 00000d21: PUSH4 0xbb6c1639 00000d26: PUSH1 0xe0 00000d28: SHL 00000d29: DUP2 00000d2a: MSTORE 00000d2b: CALLER 00000d2c: PUSH1 0x04 00000d2e: DUP3 00000d2f: ADD 00000d30: MSTORE 00000d31: PUSH1 0xff 00000d33: DUP3 00000d34: AND 00000d35: PUSH1 0x24 00000d37: DUP3 00000d38: ADD 00000d39: MSTORE 00000d3a: PUSH1 0x44 00000d3c: ADD 00000d3d: PUSH2 0x0586 00000d40: JUMP 00000d41: JUMPDEST 00000d42: PUSH2 0x08dc 00000d45: DUP4 00000d46: DUP4 00000d47: PUSH1 0x04 00000d49: PUSH2 0x1136 00000d4c: JUMP 00000d4d: JUMPDEST 00000d4e: PUSH2 0x0598 00000d51: DUP2 00000d52: CALLER 00000d53: PUSH1 0x01 00000d55: PUSH2 0x118c 00000d58: JUMP 00000d59: JUMPDEST 00000d5a: CALLER 00000d5b: PUSH1 0x01 00000d5d: PUSH1 0x01 00000d5f: PUSH1 0xa0 00000d61: SHL 00000d62: SUB 00000d63: PUSH32 0x000000000000000000000000b5fb4be02232b1bba4dc8f81dc24c26980de9e3c 00000d84: AND 00000d85: EQ 00000d86: PUSH2 0x0da4 00000d89: JUMPI 00000d8a: PUSH1 0x40 00000d8c: MLOAD 00000d8d: PUSH4 0x0d6c7be9 00000d92: PUSH1 0xe0 00000d94: SHL 00000d95: DUP2 00000d96: MSTORE 00000d97: CALLER 00000d98: PUSH1 0x04 00000d9a: DUP3 00000d9b: ADD 00000d9c: MSTORE 00000d9d: PUSH1 0x24 00000d9f: ADD 00000da0: PUSH2 0x0586 00000da3: JUMP 00000da4: JUMPDEST 00000da5: PUSH2 0x0598 00000da8: DUP2 00000da9: PUSH2 0x119d 00000dac: JUMP 00000dad: JUMPDEST 00000dae: PUSH1 0x00 00000db0: PUSH2 0x09c2 00000db3: DUP3 00000db4: PUSH1 0x02 00000db6: PUSH2 0x0a26 00000db9: JUMP 00000dba: JUMPDEST 00000dbb: PUSH1 0x01 00000dbd: PUSH2 0x0dc8 00000dc0: PUSH2 0x05a9 00000dc3: CALLER 00000dc4: PUSH2 0x0e86 00000dc7: JUMP 00000dc8: JUMPDEST 00000dc9: PUSH2 0x0df0 00000dcc: JUMPI 00000dcd: PUSH1 0x40 00000dcf: MLOAD 00000dd0: PUSH4 0xbb6c1639 00000dd5: PUSH1 0xe0 00000dd7: SHL 00000dd8: DUP2 00000dd9: MSTORE 00000dda: CALLER 00000ddb: PUSH1 0x04 00000ddd: DUP3 00000dde: ADD 00000ddf: MSTORE 00000de0: PUSH1 0xff 00000de2: DUP3 00000de3: AND 00000de4: PUSH1 0x24 00000de6: DUP3 00000de7: ADD 00000de8: MSTORE 00000de9: PUSH1 0x44 00000deb: ADD 00000dec: PUSH2 0x0586 00000def: JUMP 00000df0: JUMPDEST 00000df1: PUSH2 0x05e9 00000df4: DUP3 00000df5: PUSH1 0x02 00000df7: PUSH2 0x11fd 00000dfa: JUMP 00000dfb: JUMPDEST 00000dfc: PUSH1 0x00 00000dfe: PUSH2 0x0e09 00000e01: DUP3 00000e02: DUP5 00000e03: ADD 00000e04: DUP5 00000e05: PUSH2 0x1ae3 00000e08: JUMP 00000e09: JUMPDEST 00000e0a: SWAP5 00000e0b: SWAP4 00000e0c: POP 00000e0d: POP 00000e0e: POP 00000e0f: POP 00000e10: JUMP 00000e11: JUMPDEST 00000e12: PUSH1 0x00 00000e14: PUSH2 0x0e3b 00000e17: PUSH32 0x201b7a0b7c19aaddc4ce9579b7df8d2db123805861bc7763627f13e04d8af42f 00000e38: SLOAD 00000e39: SWAP1 00000e3a: JUMP 00000e3b: JUMPDEST 00000e3c: SWAP1 00000e3d: POP 00000e3e: DUP1 00000e3f: PUSH1 0x00 00000e41: SUB 00000e42: PUSH2 0x0e49 00000e45: JUMPI 00000e46: POP 00000e47: POP 00000e48: JUMP 00000e49: JUMPDEST 00000e4a: PUSH1 0x00 00000e4c: PUSH2 0x0e57 00000e4f: PUSH2 0x5460 00000e52: TIMESTAMP 00000e53: PUSH2 0x1961 00000e56: JUMP 00000e57: JUMPDEST 00000e58: SWAP1 00000e59: POP 00000e5a: PUSH1 0x00 00000e5c: PUSH2 0x0e64 00000e5f: DUP3 00000e60: PUSH2 0x0ff0 00000e63: JUMP 00000e64: JUMPDEST 00000e65: SWAP1 00000e66: POP 00000e67: PUSH1 0x00 00000e69: PUSH2 0x0e71 00000e6c: DUP4 00000e6d: PUSH2 0x0f79 00000e70: JUMP 00000e71: JUMPDEST 00000e72: SWAP1 00000e73: POP 00000e74: PUSH2 0x0e7f 00000e77: DUP5 00000e78: DUP4 00000e79: DUP4 00000e7a: DUP9 00000e7b: PUSH2 0x120d 00000e7e: JUMP 00000e7f: JUMPDEST 00000e80: POP 00000e81: POP 00000e82: POP 00000e83: POP 00000e84: POP 00000e85: JUMP 00000e86: JUMPDEST 00000e87: PUSH1 0x00 00000e89: DUP1 00000e8a: PUSH2 0x07d7 00000e8d: DUP4 00000e8e: PUSH2 0x134b 00000e91: JUMP 00000e92: JUMPDEST 00000e93: PUSH2 0x05e9 00000e96: DUP3 00000e97: PUSH1 0x01 00000e99: PUSH1 0xff 00000e9b: DUP5 00000e9c: AND 00000e9d: SHL 00000e9e: PUSH2 0x1072 00000ea1: JUMP 00000ea2: JUMPDEST 00000ea3: PUSH1 0x00 00000ea5: DUP1 00000ea6: DUP4 00000ea7: PUSH1 0x01 00000ea9: PUSH1 0x01 00000eab: PUSH1 0xa0 00000ead: SHL 00000eae: SUB 00000eaf: AND 00000eb0: DUP4 00000eb1: PUSH1 0x40 00000eb3: MLOAD 00000eb4: PUSH2 0x0ebd 00000eb7: SWAP2 00000eb8: SWAP1 00000eb9: PUSH2 0x1b2a 00000ebc: JUMP 00000ebd: JUMPDEST 00000ebe: PUSH1 0x00 00000ec0: PUSH1 0x40 00000ec2: MLOAD 00000ec3: DUP1 00000ec4: DUP4 00000ec5: SUB 00000ec6: DUP2 00000ec7: PUSH1 0x00 00000ec9: DUP7 00000eca: GAS 00000ecb: CALL 00000ecc: SWAP2 00000ecd: POP 00000ece: POP 00000ecf: RETURNDATASIZE 00000ed0: DUP1 00000ed1: PUSH1 0x00 00000ed3: DUP2 00000ed4: EQ 00000ed5: PUSH2 0x0efa 00000ed8: JUMPI 00000ed9: PUSH1 0x40 00000edb: MLOAD 00000edc: SWAP2 00000edd: POP 00000ede: PUSH1 0x1f 00000ee0: NOT 00000ee1: PUSH1 0x3f 00000ee3: RETURNDATASIZE 00000ee4: ADD 00000ee5: AND 00000ee6: DUP3 00000ee7: ADD 00000ee8: PUSH1 0x40 00000eea: MSTORE 00000eeb: RETURNDATASIZE 00000eec: DUP3 00000eed: MSTORE 00000eee: RETURNDATASIZE 00000eef: PUSH1 0x00 00000ef1: PUSH1 0x20 00000ef3: DUP5 00000ef4: ADD 00000ef5: RETURNDATACOPY 00000ef6: PUSH2 0x0eff 00000ef9: JUMP 00000efa: JUMPDEST 00000efb: PUSH1 0x60 00000efd: SWAP2 00000efe: POP 00000eff: JUMPDEST 00000f00: POP 00000f01: SWAP2 00000f02: POP 00000f03: SWAP2 00000f04: POP 00000f05: PUSH1 0x00 00000f07: DUP3 00000f08: DUP1 00000f09: ISZERO 00000f0a: PUSH2 0x0f2b 00000f0d: JUMPI 00000f0e: POP 00000f0f: DUP2 00000f10: MLOAD 00000f11: ISZERO 00000f12: DUP1 00000f13: PUSH2 0x0f2b 00000f16: JUMPI 00000f17: POP 00000f18: DUP2 00000f19: DUP1 00000f1a: PUSH1 0x20 00000f1c: ADD 00000f1d: SWAP1 00000f1e: MLOAD 00000f1f: DUP2 00000f20: ADD 00000f21: SWAP1 00000f22: PUSH2 0x0f2b 00000f25: SWAP2 00000f26: SWAP1 00000f27: PUSH2 0x1b46 00000f2a: JUMP 00000f2b: JUMPDEST 00000f2c: SWAP1 00000f2d: POP 00000f2e: DUP1 00000f2f: ISZERO 00000f30: DUP1 00000f31: PUSH2 0x0f42 00000f34: JUMPI 00000f35: POP 00000f36: PUSH1 0x01 00000f38: PUSH1 0x01 00000f3a: PUSH1 0xa0 00000f3c: SHL 00000f3d: SUB 00000f3e: DUP6 00000f3f: AND 00000f40: EXTCODESIZE 00000f41: ISZERO 00000f42: JUMPDEST 00000f43: ISZERO 00000f44: PUSH2 0x0e7f 00000f47: JUMPI 00000f48: PUSH1 0x40 00000f4a: MLOAD 00000f4b: PUSH32 0x045c4b0200000000000000000000000000000000000000000000000000000000 00000f6c: DUP2 00000f6d: MSTORE 00000f6e: PUSH1 0x04 00000f70: ADD 00000f71: PUSH1 0x40 00000f73: MLOAD 00000f74: DUP1 00000f75: SWAP2 00000f76: SUB 00000f77: SWAP1 00000f78: REVERT 00000f79: JUMPDEST 00000f7a: PUSH1 0x40 00000f7c: DUP1 00000f7d: MLOAD 00000f7e: PUSH32 0xb221f782e2afd1b10c9284a915bb8aa319f8e6cc8d90aebea117327eafbd28c1 00000f9f: PUSH1 0x20 00000fa1: DUP3 00000fa2: ADD 00000fa3: MSTORE 00000fa4: SWAP1 00000fa5: DUP2 00000fa6: ADD 00000fa7: DUP3 00000fa8: SWAP1 00000fa9: MSTORE 00000faa: PUSH1 0x00 00000fac: SWAP1 00000fad: PUSH1 0x60 00000faf: ADD 00000fb0: JUMPDEST 00000fb1: PUSH1 0x40 00000fb3: DUP1 00000fb4: MLOAD 00000fb5: PUSH1 0x1f 00000fb7: NOT 00000fb8: DUP2 00000fb9: DUP5 00000fba: SUB 00000fbb: ADD 00000fbc: DUP2 00000fbd: MSTORE 00000fbe: SWAP2 00000fbf: SWAP1 00000fc0: MSTORE 00000fc1: DUP1 00000fc2: MLOAD 00000fc3: PUSH1 0x20 00000fc5: SWAP1 00000fc6: SWAP2 00000fc7: ADD 00000fc8: KECCAK256 00000fc9: SWAP3 00000fca: SWAP2 00000fcb: POP 00000fcc: POP 00000fcd: JUMP 00000fce: JUMPDEST 00000fcf: PUSH2 0x08dc 00000fd2: DUP4 00000fd3: DUP4 00000fd4: PUSH1 0x01 00000fd6: PUSH1 0xff 00000fd8: DUP6 00000fd9: AND 00000fda: SHL 00000fdb: PUSH2 0x1136 00000fde: JUMP 00000fdf: JUMPDEST 00000fe0: PUSH2 0x08dc 00000fe3: DUP4 00000fe4: DUP4 00000fe5: PUSH1 0x01 00000fe7: PUSH1 0xff 00000fe9: DUP6 00000fea: AND 00000feb: SHL 00000fec: PUSH2 0x13b8 00000fef: JUMP 00000ff0: JUMPDEST 00000ff1: PUSH1 0x40 00000ff3: DUP1 00000ff4: MLOAD 00000ff5: PUSH32 0xf4ff4213eda59f47bb3fdf8cb7fcc07540628bdeb7f1aebcfe07049bbd9f634f 00001016: PUSH1 0x20 00001018: DUP3 00001019: ADD 0000101a: MSTORE 0000101b: SWAP1 0000101c: DUP2 0000101d: ADD 0000101e: DUP3 0000101f: SWAP1 00001020: MSTORE 00001021: PUSH1 0x00 00001023: SWAP1 00001024: PUSH1 0x60 00001026: ADD 00001027: PUSH2 0x0fb0 0000102a: JUMP 0000102b: JUMPDEST 0000102c: PUSH1 0x00 0000102e: DUP2 0000102f: MLOAD 00001030: PUSH1 0x14 00001032: EQ 00001033: PUSH2 0x106a 00001036: JUMPI 00001037: DUP2 00001038: PUSH1 0x40 0000103a: MLOAD 0000103b: PUSH32 0xd08dbec500000000000000000000000000000000000000000000000000000000 0000105c: DUP2 0000105d: MSTORE 0000105e: PUSH1 0x04 00001060: ADD 00001061: PUSH2 0x0586 00001064: SWAP2 00001065: SWAP1 00001066: PUSH2 0x170d 00001069: JUMP 0000106a: JUMPDEST 0000106b: POP 0000106c: PUSH1 0x14 0000106e: ADD 0000106f: MLOAD 00001070: SWAP1 00001071: JUMP 00001072: JUMPDEST 00001073: PUSH1 0x00 00001075: DUP2 00001076: PUSH2 0x107e 00001079: DUP5 0000107a: PUSH2 0x0e86 0000107d: JUMP 0000107e: JUMPDEST 0000107f: OR 00001080: SWAP1 00001081: POP 00001082: PUSH2 0x108b 00001085: DUP4 00001086: DUP3 00001087: PUSH2 0x1450 0000108a: JUMP 0000108b: JUMPDEST 0000108c: DUP3 0000108d: PUSH1 0x01 0000108f: PUSH1 0x01 00001091: PUSH1 0xa0 00001093: SHL 00001094: SUB 00001095: AND 00001096: PUSH32 0x34e73c57659d4b6809b53db4feee9b007b892e978114eda420d2991aba150143 000010b7: DUP4 000010b8: PUSH1 0x40 000010ba: MLOAD 000010bb: PUSH2 0x10c6 000010be: SWAP2 000010bf: DUP2 000010c0: MSTORE 000010c1: PUSH1 0x20 000010c3: ADD 000010c4: SWAP1 000010c5: JUMP 000010c6: JUMPDEST 000010c7: PUSH1 0x40 000010c9: MLOAD 000010ca: DUP1 000010cb: SWAP2 000010cc: SUB 000010cd: SWAP1 000010ce: LOG2 000010cf: POP 000010d0: POP 000010d1: POP 000010d2: JUMP 000010d3: JUMPDEST 000010d4: PUSH32 0x201b7a0b7c19aaddc4ce9579b7df8d2db123805861bc7763627f13e04d8af42f 000010f5: DUP3 000010f6: SWAP1 000010f7: SSTORE 000010f8: PUSH1 0x40 000010fa: DUP1 000010fb: MLOAD 000010fc: CALLER 000010fd: DUP2 000010fe: MSTORE 000010ff: PUSH1 0x20 00001101: DUP2 00001102: ADD 00001103: DUP5 00001104: SWAP1 00001105: MSTORE 00001106: DUP3 00001107: SWAP2 00001108: PUSH32 0x024e856c5f6f5e287ff2be13db089b016f28a6ebe6aaffdfb5fa5b902fdd366b 00001129: SWAP2 0000112a: ADD 0000112b: PUSH1 0x40 0000112d: MLOAD 0000112e: DUP1 0000112f: SWAP2 00001130: SUB 00001131: SWAP1 00001132: LOG2 00001133: POP 00001134: POP 00001135: JUMP 00001136: JUMPDEST 00001137: PUSH2 0x1149 0000113a: PUSH2 0x1142 0000113d: DUP5 0000113e: PUSH2 0x0e86 00001141: JUMP 00001142: JUMPDEST 00001143: DUP3 00001144: AND 00001145: DUP3 00001146: EQ 00001147: SWAP1 00001148: JUMP 00001149: JUMPDEST 0000114a: PUSH2 0x1178 0000114d: JUMPI 0000114e: PUSH1 0x40 00001150: MLOAD 00001151: PUSH4 0x1fe9beed 00001156: PUSH1 0xe2 00001158: SHL 00001159: DUP2 0000115a: MSTORE 0000115b: PUSH1 0x01 0000115d: PUSH1 0x01 0000115f: PUSH1 0xa0 00001161: SHL 00001162: SUB 00001163: DUP5 00001164: AND 00001165: PUSH1 0x04 00001167: DUP3 00001168: ADD 00001169: MSTORE 0000116a: PUSH1 0x24 0000116c: DUP2 0000116d: ADD 0000116e: DUP3 0000116f: SWAP1 00001170: MSTORE 00001171: PUSH1 0x44 00001173: ADD 00001174: PUSH2 0x0586 00001177: JUMP 00001178: JUMPDEST 00001179: PUSH2 0x1182 0000117c: DUP4 0000117d: DUP3 0000117e: PUSH2 0x1463 00001181: JUMP 00001182: JUMPDEST 00001183: PUSH2 0x08dc 00001186: DUP3 00001187: DUP3 00001188: PUSH2 0x1072 0000118b: JUMP 0000118c: JUMPDEST 0000118d: PUSH2 0x08dc 00001190: DUP4 00001191: DUP4 00001192: PUSH1 0x01 00001194: PUSH1 0xff 00001196: DUP6 00001197: AND 00001198: SHL 00001199: PUSH2 0x14b8 0000119c: JUMP 0000119d: JUMPDEST 0000119e: PUSH1 0x00 000011a0: PUSH2 0x11c7 000011a3: PUSH32 0x201b7a0b7c19aaddc4ce9579b7df8d2db123805861bc7763627f13e04d8af42f 000011c4: SLOAD 000011c5: SWAP1 000011c6: JUMP 000011c7: JUMPDEST 000011c8: SWAP1 000011c9: POP 000011ca: DUP1 000011cb: PUSH1 0x00 000011cd: SUB 000011ce: PUSH2 0x11d5 000011d1: JUMPI 000011d2: POP 000011d3: POP 000011d4: JUMP 000011d5: JUMPDEST 000011d6: PUSH1 0x00 000011d8: PUSH2 0x11e3 000011db: PUSH2 0x5460 000011de: TIMESTAMP 000011df: PUSH2 0x1961 000011e2: JUMP 000011e3: JUMPDEST 000011e4: SWAP1 000011e5: POP 000011e6: PUSH1 0x00 000011e8: PUSH2 0x11f0 000011eb: DUP3 000011ec: PUSH2 0x0f79 000011ef: JUMP 000011f0: JUMPDEST 000011f1: SWAP1 000011f2: POP 000011f3: PUSH1 0x00 000011f5: PUSH2 0x0e71 000011f8: DUP4 000011f9: PUSH2 0x0ff0 000011fc: JUMP 000011fd: JUMPDEST 000011fe: PUSH2 0x05e9 00001201: DUP3 00001202: PUSH1 0x01 00001204: PUSH1 0xff 00001206: DUP5 00001207: AND 00001208: SHL 00001209: PUSH2 0x1463 0000120c: JUMP 0000120d: JUMPDEST 0000120e: DUP3 0000120f: SLOAD 00001210: DUP3 00001211: SLOAD 00001212: PUSH2 0x121d 00001215: DUP4 00001216: PUSH1 0x00 00001218: NOT 00001219: PUSH2 0x1b68 0000121c: JUMP 0000121d: JUMPDEST 0000121e: DUP3 0000121f: GT 00001220: ISZERO 00001221: PUSH2 0x1266 00001224: JUMPI 00001225: PUSH1 0x40 00001227: MLOAD 00001228: PUSH32 0xd0a2616c00000000000000000000000000000000000000000000000000000000 00001249: DUP2 0000124a: MSTORE 0000124b: PUSH1 0x04 0000124d: DUP2 0000124e: ADD 0000124f: DUP5 00001250: SWAP1 00001251: MSTORE 00001252: PUSH1 0x24 00001254: DUP2 00001255: ADD 00001256: DUP4 00001257: SWAP1 00001258: MSTORE 00001259: ADDRESS 0000125a: PUSH1 0x44 0000125c: DUP3 0000125d: ADD 0000125e: MSTORE 0000125f: PUSH1 0x64 00001261: ADD 00001262: PUSH2 0x0586 00001265: JUMP 00001266: JUMPDEST 00001267: PUSH2 0x1272 0000126a: DUP7 0000126b: PUSH1 0x00 0000126d: NOT 0000126e: PUSH2 0x1b68 00001271: JUMP 00001272: JUMPDEST 00001273: DUP2 00001274: GT 00001275: ISZERO 00001276: PUSH2 0x12bb 00001279: JUMPI 0000127a: PUSH1 0x40 0000127c: MLOAD 0000127d: PUSH32 0xa6413e8b00000000000000000000000000000000000000000000000000000000 0000129e: DUP2 0000129f: MSTORE 000012a0: PUSH1 0x04 000012a2: DUP2 000012a3: ADD 000012a4: DUP8 000012a5: SWAP1 000012a6: MSTORE 000012a7: PUSH1 0x24 000012a9: DUP2 000012aa: ADD 000012ab: DUP3 000012ac: SWAP1 000012ad: MSTORE 000012ae: ADDRESS 000012af: PUSH1 0x44 000012b1: DUP3 000012b2: ADD 000012b3: MSTORE 000012b4: PUSH1 0x64 000012b6: ADD 000012b7: PUSH2 0x0586 000012ba: JUMP 000012bb: JUMPDEST 000012bc: PUSH2 0x12c5 000012bf: DUP7 000012c0: DUP3 000012c1: PUSH2 0x1b7b 000012c4: JUMP 000012c5: JUMPDEST 000012c6: PUSH2 0x12cf 000012c9: DUP5 000012ca: DUP5 000012cb: PUSH2 0x1b7b 000012ce: JUMP 000012cf: JUMPDEST 000012d0: GT 000012d1: ISZERO 000012d2: PUSH2 0x1311 000012d5: JUMPI 000012d6: PUSH2 0x12df 000012d9: DUP7 000012da: DUP3 000012db: PUSH2 0x1b7b 000012de: JUMP 000012df: JUMPDEST 000012e0: PUSH2 0x12e9 000012e3: DUP5 000012e4: DUP5 000012e5: PUSH2 0x1b7b 000012e8: JUMP 000012e9: JUMPDEST 000012ea: PUSH1 0x40 000012ec: MLOAD 000012ed: PUSH4 0x2bab62d1 000012f2: PUSH1 0xe0 000012f4: SHL 000012f5: DUP2 000012f6: MSTORE 000012f7: PUSH1 0x04 000012f9: DUP2 000012fa: ADD 000012fb: SWAP3 000012fc: SWAP1 000012fd: SWAP3 000012fe: MSTORE 000012ff: PUSH1 0x24 00001301: DUP3 00001302: ADD 00001303: MSTORE 00001304: ADDRESS 00001305: PUSH1 0x44 00001307: DUP3 00001308: ADD 00001309: MSTORE 0000130a: PUSH1 0x64 0000130c: ADD 0000130d: PUSH2 0x0586 00001310: JUMP 00001311: JUMPDEST 00001312: DUP6 00001313: DUP4 00001314: GT 00001315: ISZERO 00001316: PUSH2 0x1342 00001319: JUMPI 0000131a: PUSH1 0x40 0000131c: MLOAD 0000131d: PUSH4 0x2bab62d1 00001322: PUSH1 0xe0 00001324: SHL 00001325: DUP2 00001326: MSTORE 00001327: PUSH1 0x04 00001329: DUP2 0000132a: ADD 0000132b: DUP8 0000132c: SWAP1 0000132d: MSTORE 0000132e: PUSH1 0x24 00001330: DUP2 00001331: ADD 00001332: DUP5 00001333: SWAP1 00001334: MSTORE 00001335: ADDRESS 00001336: PUSH1 0x44 00001338: DUP3 00001339: ADD 0000133a: MSTORE 0000133b: PUSH1 0x64 0000133d: ADD 0000133e: PUSH2 0x0586 00001341: JUMP 00001342: JUMPDEST 00001343: POP 00001344: ADD 00001345: SWAP1 00001346: SWAP2 00001347: SSTORE 00001348: POP 00001349: POP 0000134a: JUMP 0000134b: JUMPDEST 0000134c: PUSH1 0x00 0000134e: PUSH32 0xde9bdca322e1a848f72215bc15cf2c87fe7749145789a9ee281a2a6290af26ab 0000136f: DUP3 00001370: PUSH1 0x40 00001372: MLOAD 00001373: PUSH1 0x20 00001375: ADD 00001376: PUSH2 0x139b 00001379: SWAP3 0000137a: SWAP2 0000137b: SWAP1 0000137c: SWAP2 0000137d: DUP3 0000137e: MSTORE 0000137f: PUSH1 0x60 00001381: SHL 00001382: PUSH12 0xffffffffffffffffffffffff 0000138f: NOT 00001390: AND 00001391: PUSH1 0x20 00001393: DUP3 00001394: ADD 00001395: MSTORE 00001396: PUSH1 0x34 00001398: ADD 00001399: SWAP1 0000139a: JUMP 0000139b: JUMPDEST 0000139c: PUSH1 0x40 0000139e: MLOAD 0000139f: PUSH1 0x20 000013a1: DUP2 000013a2: DUP4 000013a3: SUB 000013a4: SUB 000013a5: DUP2 000013a6: MSTORE 000013a7: SWAP1 000013a8: PUSH1 0x40 000013aa: MSTORE 000013ab: DUP1 000013ac: MLOAD 000013ad: SWAP1 000013ae: PUSH1 0x20 000013b0: ADD 000013b1: KECCAK256 000013b2: SWAP1 000013b3: POP 000013b4: SWAP2 000013b5: SWAP1 000013b6: POP 000013b7: JUMP 000013b8: JUMPDEST 000013b9: PUSH2 0x13c4 000013bc: PUSH2 0x1142 000013bf: DUP5 000013c0: PUSH2 0x0e86 000013c3: JUMP 000013c4: JUMPDEST 000013c5: PUSH2 0x13f3 000013c8: JUMPI 000013c9: PUSH1 0x40 000013cb: MLOAD 000013cc: PUSH4 0x1fe9beed 000013d1: PUSH1 0xe2 000013d3: SHL 000013d4: DUP2 000013d5: MSTORE 000013d6: PUSH1 0x01 000013d8: PUSH1 0x01 000013da: PUSH1 0xa0 000013dc: SHL 000013dd: SUB 000013de: DUP5 000013df: AND 000013e0: PUSH1 0x04 000013e2: DUP3 000013e3: ADD 000013e4: MSTORE 000013e5: PUSH1 0x24 000013e7: DUP2 000013e8: ADD 000013e9: DUP3 000013ea: SWAP1 000013eb: MSTORE 000013ec: PUSH1 0x44 000013ee: ADD 000013ef: PUSH2 0x0586 000013f2: JUMP 000013f3: JUMPDEST 000013f4: PUSH2 0x13fe 000013f7: DUP4 000013f8: DUP4 000013f9: DUP4 000013fa: PUSH2 0x152b 000013fd: JUMP 000013fe: JUMPDEST 000013ff: DUP2 00001400: PUSH1 0x01 00001402: PUSH1 0x01 00001404: PUSH1 0xa0 00001406: SHL 00001407: SUB 00001408: AND 00001409: DUP4 0000140a: PUSH1 0x01 0000140c: PUSH1 0x01 0000140e: PUSH1 0xa0 00001410: SHL 00001411: SUB 00001412: AND 00001413: PUSH32 0xf7158d1591c2cf17c0e6b9459d86365c47fe0969c79f40ef49e0c437d8f39914 00001434: DUP4 00001435: PUSH1 0x40 00001437: MLOAD 00001438: PUSH2 0x1443 0000143b: SWAP2 0000143c: DUP2 0000143d: MSTORE 0000143e: PUSH1 0x20 00001440: ADD 00001441: SWAP1 00001442: JUMP 00001443: JUMPDEST 00001444: PUSH1 0x40 00001446: MLOAD 00001447: DUP1 00001448: SWAP2 00001449: SUB 0000144a: SWAP1 0000144b: LOG3 0000144c: POP 0000144d: POP 0000144e: POP 0000144f: JUMP 00001450: JUMPDEST 00001451: PUSH1 0x00 00001453: PUSH2 0x145b 00001456: DUP4 00001457: PUSH2 0x134b 0000145a: JUMP 0000145b: JUMPDEST 0000145c: SWAP2 0000145d: SWAP1 0000145e: SWAP2 0000145f: SSTORE 00001460: POP 00001461: POP 00001462: JUMP 00001463: JUMPDEST 00001464: PUSH1 0x00 00001466: DUP2 00001467: NOT 00001468: PUSH2 0x1470 0000146b: DUP5 0000146c: PUSH2 0x0e86 0000146f: JUMP 00001470: JUMPDEST 00001471: AND 00001472: SWAP1 00001473: POP 00001474: PUSH2 0x147d 00001477: DUP4 00001478: DUP3 00001479: PUSH2 0x1450 0000147c: JUMP 0000147d: JUMPDEST 0000147e: DUP3 0000147f: PUSH1 0x01 00001481: PUSH1 0x01 00001483: PUSH1 0xa0 00001485: SHL 00001486: SUB 00001487: AND 00001488: PUSH32 0xccf920c8facee98a9c2a6c6124f2857b87b17e9f3a819bfcc6945196ee77366b 000014a9: DUP4 000014aa: PUSH1 0x40 000014ac: MLOAD 000014ad: PUSH2 0x10c6 000014b0: SWAP2 000014b1: DUP2 000014b2: MSTORE 000014b3: PUSH1 0x20 000014b5: ADD 000014b6: SWAP1 000014b7: JUMP 000014b8: JUMPDEST 000014b9: DUP1 000014ba: PUSH2 0x14c3 000014bd: DUP5 000014be: DUP5 000014bf: PUSH2 0x1540 000014c2: JUMP 000014c3: JUMPDEST 000014c4: EQ 000014c5: PUSH2 0x1514 000014c8: JUMPI 000014c9: PUSH1 0x40 000014cb: MLOAD 000014cc: PUSH32 0x6004fe4000000000000000000000000000000000000000000000000000000000 000014ed: DUP2 000014ee: MSTORE 000014ef: PUSH1 0x01 000014f1: PUSH1 0x01 000014f3: PUSH1 0xa0 000014f5: SHL 000014f6: SUB 000014f7: DUP1 000014f8: DUP6 000014f9: AND 000014fa: PUSH1 0x04 000014fc: DUP4 000014fd: ADD 000014fe: MSTORE 000014ff: DUP4 00001500: AND 00001501: PUSH1 0x24 00001503: DUP3 00001504: ADD 00001505: MSTORE 00001506: PUSH1 0x44 00001508: DUP2 00001509: ADD 0000150a: DUP3 0000150b: SWAP1 0000150c: MSTORE 0000150d: PUSH1 0x64 0000150f: ADD 00001510: PUSH2 0x0586 00001513: JUMP 00001514: JUMPDEST 00001515: PUSH2 0x1520 00001518: DUP4 00001519: DUP4 0000151a: PUSH1 0x00 0000151c: PUSH2 0x152b 0000151f: JUMP 00001520: JUMPDEST 00001521: PUSH2 0x08dc 00001524: DUP4 00001525: DUP4 00001526: DUP4 00001527: PUSH2 0x1136 0000152a: JUMP 0000152b: JUMPDEST 0000152c: PUSH1 0x00 0000152e: PUSH2 0x1537 00001531: DUP5 00001532: DUP5 00001533: PUSH2 0x1556 00001536: JUMP 00001537: JUMPDEST 00001538: SWAP2 00001539: SWAP1 0000153a: SWAP2 0000153b: SSTORE 0000153c: POP 0000153d: POP 0000153e: POP 0000153f: JUMP 00001540: JUMPDEST 00001541: PUSH1 0x00 00001543: DUP1 00001544: PUSH2 0x154d 00001547: DUP5 00001548: DUP5 00001549: PUSH2 0x1556 0000154c: JUMP 0000154d: JUMPDEST 0000154e: SLOAD 0000154f: SWAP5 00001550: SWAP4 00001551: POP 00001552: POP 00001553: POP 00001554: POP 00001555: JUMP 00001556: JUMPDEST 00001557: PUSH1 0x00 00001559: PUSH32 0xf96e07b2f4fbb81c31567d2b261589af429e98f0958d53f7e6ad5d63aea0ab7c 0000157a: DUP4 0000157b: DUP4 0000157c: PUSH1 0x40 0000157e: MLOAD 0000157f: PUSH1 0x20 00001581: ADD 00001582: PUSH2 0x15b4 00001585: SWAP4 00001586: SWAP3 00001587: SWAP2 00001588: SWAP1 00001589: SWAP3 0000158a: DUP4 0000158b: MSTORE 0000158c: PUSH1 0x60 0000158e: SWAP2 0000158f: DUP3 00001590: SHL 00001591: PUSH12 0xffffffffffffffffffffffff 0000159e: NOT 0000159f: SWAP1 000015a0: DUP2 000015a1: AND 000015a2: PUSH1 0x20 000015a4: DUP6 000015a5: ADD 000015a6: MSTORE 000015a7: SWAP2 000015a8: SHL 000015a9: AND 000015aa: PUSH1 0x34 000015ac: DUP3 000015ad: ADD 000015ae: MSTORE 000015af: PUSH1 0x48 000015b1: ADD 000015b2: SWAP1 000015b3: JUMP 000015b4: JUMPDEST 000015b5: PUSH1 0x40 000015b7: MLOAD 000015b8: PUSH1 0x20 000015ba: DUP2 000015bb: DUP4 000015bc: SUB 000015bd: SUB 000015be: DUP2 000015bf: MSTORE 000015c0: SWAP1 000015c1: PUSH1 0x40 000015c3: MSTORE 000015c4: DUP1 000015c5: MLOAD 000015c6: SWAP1 000015c7: PUSH1 0x20 000015c9: ADD 000015ca: KECCAK256 000015cb: SWAP1 000015cc: POP 000015cd: SWAP3 000015ce: SWAP2 000015cf: POP 000015d0: POP 000015d1: JUMP 000015d2: JUMPDEST 000015d3: PUSH1 0x00 000015d5: PUSH1 0x20 000015d7: DUP3 000015d8: DUP5 000015d9: SUB 000015da: SLT 000015db: ISZERO 000015dc: PUSH2 0x15e4 000015df: JUMPI 000015e0: PUSH1 0x00 000015e2: DUP1 000015e3: REVERT 000015e4: JUMPDEST 000015e5: POP 000015e6: CALLDATALOAD 000015e7: SWAP2 000015e8: SWAP1 000015e9: POP 000015ea: JUMP 000015eb: JUMPDEST 000015ec: PUSH1 0x01 000015ee: PUSH1 0x01 000015f0: PUSH1 0xa0 000015f2: SHL 000015f3: SUB 000015f4: DUP2 000015f5: AND 000015f6: DUP2 000015f7: EQ 000015f8: PUSH2 0x0598 000015fb: JUMPI 000015fc: PUSH1 0x00 000015fe: DUP1 000015ff: REVERT 00001600: JUMPDEST 00001601: PUSH1 0x00 00001603: PUSH1 0x20 00001605: DUP3 00001606: DUP5 00001607: SUB 00001608: SLT 00001609: ISZERO 0000160a: PUSH2 0x1612 0000160d: JUMPI 0000160e: PUSH1 0x00 00001610: DUP1 00001611: REVERT 00001612: JUMPDEST 00001613: DUP2 00001614: CALLDATALOAD 00001615: PUSH2 0x0a41 00001618: DUP2 00001619: PUSH2 0x15eb 0000161c: JUMP 0000161d: JUMPDEST 0000161e: PUSH1 0x00 00001620: DUP1 00001621: DUP4 00001622: PUSH1 0x1f 00001624: DUP5 00001625: ADD 00001626: SLT 00001627: PUSH2 0x162f 0000162a: JUMPI 0000162b: PUSH1 0x00 0000162d: DUP1 0000162e: REVERT 0000162f: JUMPDEST 00001630: POP 00001631: DUP2 00001632: CALLDATALOAD 00001633: PUSH8 0xffffffffffffffff 0000163c: DUP2 0000163d: GT 0000163e: ISZERO 0000163f: PUSH2 0x1647 00001642: JUMPI 00001643: PUSH1 0x00 00001645: DUP1 00001646: REVERT 00001647: JUMPDEST 00001648: PUSH1 0x20 0000164a: DUP4 0000164b: ADD 0000164c: SWAP2 0000164d: POP 0000164e: DUP4 0000164f: PUSH1 0x20 00001651: DUP3 00001652: DUP6 00001653: ADD 00001654: ADD 00001655: GT 00001656: ISZERO 00001657: PUSH2 0x165f 0000165a: JUMPI 0000165b: PUSH1 0x00 0000165d: DUP1 0000165e: REVERT 0000165f: JUMPDEST 00001660: SWAP3 00001661: POP 00001662: SWAP3 00001663: SWAP1 00001664: POP 00001665: JUMP 00001666: JUMPDEST 00001667: PUSH1 0x00 00001669: DUP1 0000166a: PUSH1 0x00 0000166c: PUSH1 0x40 0000166e: DUP5 0000166f: DUP7 00001670: SUB 00001671: SLT 00001672: ISZERO 00001673: PUSH2 0x167b 00001676: JUMPI 00001677: PUSH1 0x00 00001679: DUP1 0000167a: REVERT 0000167b: JUMPDEST 0000167c: DUP4 0000167d: CALLDATALOAD 0000167e: PUSH8 0xffffffffffffffff 00001687: DUP2 00001688: GT 00001689: ISZERO 0000168a: PUSH2 0x1692 0000168d: JUMPI 0000168e: PUSH1 0x00 00001690: DUP1 00001691: REVERT 00001692: JUMPDEST 00001693: PUSH2 0x169e 00001696: DUP7 00001697: DUP3 00001698: DUP8 00001699: ADD 0000169a: PUSH2 0x161d 0000169d: JUMP 0000169e: JUMPDEST 0000169f: SWAP1 000016a0: SWAP5 000016a1: POP 000016a2: SWAP3 000016a3: POP 000016a4: POP 000016a5: PUSH1 0x20 000016a7: DUP5 000016a8: ADD 000016a9: CALLDATALOAD 000016aa: PUSH2 0x16b2 000016ad: DUP2 000016ae: PUSH2 0x15eb 000016b1: JUMP 000016b2: JUMPDEST 000016b3: DUP1 000016b4: SWAP2 000016b5: POP 000016b6: POP 000016b7: SWAP3 000016b8: POP 000016b9: SWAP3 000016ba: POP 000016bb: SWAP3 000016bc: JUMP 000016bd: JUMPDEST 000016be: PUSH1 0x00 000016c0: JUMPDEST 000016c1: DUP4 000016c2: DUP2 000016c3: LT 000016c4: ISZERO 000016c5: PUSH2 0x16d8 000016c8: JUMPI 000016c9: DUP2 000016ca: DUP2 000016cb: ADD 000016cc: MLOAD 000016cd: DUP4 000016ce: DUP3 000016cf: ADD 000016d0: MSTORE 000016d1: PUSH1 0x20 000016d3: ADD 000016d4: PUSH2 0x16c0 000016d7: JUMP 000016d8: JUMPDEST 000016d9: POP 000016da: POP 000016db: PUSH1 0x00 000016dd: SWAP2 000016de: ADD 000016df: MSTORE 000016e0: JUMP 000016e1: JUMPDEST 000016e2: PUSH1 0x00 000016e4: DUP2 000016e5: MLOAD 000016e6: DUP1 000016e7: DUP5 000016e8: MSTORE 000016e9: PUSH2 0x16f9 000016ec: DUP2 000016ed: PUSH1 0x20 000016ef: DUP7 000016f0: ADD 000016f1: PUSH1 0x20 000016f3: DUP7 000016f4: ADD 000016f5: PUSH2 0x16bd 000016f8: JUMP 000016f9: JUMPDEST 000016fa: PUSH1 0x1f 000016fc: ADD 000016fd: PUSH1 0x1f 000016ff: NOT 00001700: AND 00001701: SWAP3 00001702: SWAP1 00001703: SWAP3 00001704: ADD 00001705: PUSH1 0x20 00001707: ADD 00001708: SWAP3 00001709: SWAP2 0000170a: POP 0000170b: POP 0000170c: JUMP 0000170d: JUMPDEST 0000170e: PUSH1 0x20 00001710: DUP2 00001711: MSTORE 00001712: PUSH1 0x00 00001714: PUSH2 0x0a41 00001717: PUSH1 0x20 00001719: DUP4 0000171a: ADD 0000171b: DUP5 0000171c: PUSH2 0x16e1 0000171f: JUMP 00001720: JUMPDEST 00001721: PUSH1 0x00 00001723: DUP1 00001724: PUSH1 0x00 00001726: PUSH1 0x60 00001728: DUP5 00001729: DUP7 0000172a: SUB 0000172b: SLT 0000172c: ISZERO 0000172d: PUSH2 0x1735 00001730: JUMPI 00001731: PUSH1 0x00 00001733: DUP1 00001734: REVERT 00001735: JUMPDEST 00001736: DUP4 00001737: CALLDATALOAD 00001738: PUSH2 0x1740 0000173b: DUP2 0000173c: PUSH2 0x15eb 0000173f: JUMP 00001740: JUMPDEST 00001741: SWAP3 00001742: POP 00001743: PUSH1 0x20 00001745: DUP5 00001746: ADD 00001747: CALLDATALOAD 00001748: PUSH2 0x1750 0000174b: DUP2 0000174c: PUSH2 0x15eb 0000174f: JUMP 00001750: JUMPDEST 00001751: SWAP3 00001752: SWAP6 00001753: SWAP3 00001754: SWAP5 00001755: POP 00001756: POP 00001757: POP 00001758: PUSH1 0x40 0000175a: SWAP2 0000175b: SWAP1 0000175c: SWAP2 0000175d: ADD 0000175e: CALLDATALOAD 0000175f: SWAP1 00001760: JUMP 00001761: JUMPDEST 00001762: PUSH1 0x00 00001764: DUP1 00001765: PUSH1 0x40 00001767: DUP4 00001768: DUP6 00001769: SUB 0000176a: SLT 0000176b: ISZERO 0000176c: PUSH2 0x1774 0000176f: JUMPI 00001770: PUSH1 0x00 00001772: DUP1 00001773: REVERT 00001774: JUMPDEST 00001775: DUP3 00001776: CALLDATALOAD 00001777: PUSH2 0x177f 0000177a: DUP2 0000177b: PUSH2 0x15eb 0000177e: JUMP 0000177f: JUMPDEST 00001780: SWAP2 00001781: POP 00001782: PUSH1 0x20 00001784: DUP4 00001785: ADD 00001786: CALLDATALOAD 00001787: PUSH1 0xff 00001789: DUP2 0000178a: AND 0000178b: DUP2 0000178c: EQ 0000178d: PUSH2 0x1795 00001790: JUMPI 00001791: PUSH1 0x00 00001793: DUP1 00001794: REVERT 00001795: JUMPDEST 00001796: DUP1 00001797: SWAP2 00001798: POP 00001799: POP 0000179a: SWAP3 0000179b: POP 0000179c: SWAP3 0000179d: SWAP1 0000179e: POP 0000179f: JUMP 000017a0: JUMPDEST 000017a1: PUSH1 0x00 000017a3: DUP1 000017a4: PUSH1 0x20 000017a6: DUP4 000017a7: DUP6 000017a8: SUB 000017a9: SLT 000017aa: ISZERO 000017ab: PUSH2 0x17b3 000017ae: JUMPI 000017af: PUSH1 0x00 000017b1: DUP1 000017b2: REVERT 000017b3: JUMPDEST 000017b4: DUP3 000017b5: CALLDATALOAD 000017b6: PUSH8 0xffffffffffffffff 000017bf: DUP2 000017c0: GT 000017c1: ISZERO 000017c2: PUSH2 0x17ca 000017c5: JUMPI 000017c6: PUSH1 0x00 000017c8: DUP1 000017c9: REVERT 000017ca: JUMPDEST 000017cb: PUSH2 0x17d6 000017ce: DUP6 000017cf: DUP3 000017d0: DUP7 000017d1: ADD 000017d2: PUSH2 0x161d 000017d5: JUMP 000017d6: JUMPDEST 000017d7: SWAP1 000017d8: SWAP7 000017d9: SWAP1 000017da: SWAP6 000017db: POP 000017dc: SWAP4 000017dd: POP 000017de: POP 000017df: POP 000017e0: POP 000017e1: JUMP 000017e2: JUMPDEST 000017e3: PUSH1 0x00 000017e5: DUP1 000017e6: PUSH1 0x20 000017e8: DUP4 000017e9: DUP6 000017ea: SUB 000017eb: SLT 000017ec: ISZERO 000017ed: PUSH2 0x17f5 000017f0: JUMPI 000017f1: PUSH1 0x00 000017f3: DUP1 000017f4: REVERT 000017f5: JUMPDEST 000017f6: DUP3 000017f7: CALLDATALOAD 000017f8: PUSH8 0xffffffffffffffff 00001801: DUP2 00001802: GT 00001803: ISZERO 00001804: PUSH2 0x180c 00001807: JUMPI 00001808: PUSH1 0x00 0000180a: DUP1 0000180b: REVERT 0000180c: JUMPDEST 0000180d: DUP4 0000180e: ADD 0000180f: PUSH1 0x1f 00001811: DUP2 00001812: ADD 00001813: DUP6 00001814: SGT 00001815: PUSH2 0x181d 00001818: JUMPI 00001819: PUSH1 0x00 0000181b: DUP1 0000181c: REVERT 0000181d: JUMPDEST 0000181e: DUP1 0000181f: CALLDATALOAD 00001820: PUSH8 0xffffffffffffffff 00001829: DUP2 0000182a: GT 0000182b: ISZERO 0000182c: PUSH2 0x1834 0000182f: JUMPI 00001830: PUSH1 0x00 00001832: DUP1 00001833: REVERT 00001834: JUMPDEST 00001835: DUP6 00001836: PUSH1 0x20 00001838: DUP3 00001839: PUSH1 0x05 0000183b: SHL 0000183c: DUP5 0000183d: ADD 0000183e: ADD 0000183f: GT 00001840: ISZERO 00001841: PUSH2 0x1849 00001844: JUMPI 00001845: PUSH1 0x00 00001847: DUP1 00001848: REVERT 00001849: JUMPDEST 0000184a: PUSH1 0x20 0000184c: SWAP2 0000184d: SWAP1 0000184e: SWAP2 0000184f: ADD 00001850: SWAP6 00001851: SWAP1 00001852: SWAP5 00001853: POP 00001854: SWAP3 00001855: POP 00001856: POP 00001857: POP 00001858: JUMP 00001859: JUMPDEST 0000185a: PUSH1 0x00 0000185c: PUSH1 0x20 0000185e: DUP3 0000185f: ADD 00001860: PUSH1 0x20 00001862: DUP4 00001863: MSTORE 00001864: DUP1 00001865: DUP5 00001866: MLOAD 00001867: DUP1 00001868: DUP4 00001869: MSTORE 0000186a: PUSH1 0x40 0000186c: DUP6 0000186d: ADD 0000186e: SWAP2 0000186f: POP 00001870: PUSH1 0x40 00001872: DUP2 00001873: PUSH1 0x05 00001875: SHL 00001876: DUP7 00001877: ADD 00001878: ADD 00001879: SWAP3 0000187a: POP 0000187b: PUSH1 0x20 0000187d: DUP7 0000187e: ADD 0000187f: PUSH1 0x00 00001881: JUMPDEST 00001882: DUP3 00001883: DUP2 00001884: LT 00001885: ISZERO 00001886: PUSH2 0x18b2 00001889: JUMPI 0000188a: PUSH1 0x3f 0000188c: NOT 0000188d: DUP8 0000188e: DUP7 0000188f: SUB 00001890: ADD 00001891: DUP5 00001892: MSTORE 00001893: PUSH2 0x189d 00001896: DUP6 00001897: DUP4 00001898: MLOAD 00001899: PUSH2 0x16e1 0000189c: JUMP 0000189d: JUMPDEST 0000189e: SWAP5 0000189f: POP 000018a0: PUSH1 0x20 000018a2: SWAP4 000018a3: DUP5 000018a4: ADD 000018a5: SWAP4 000018a6: SWAP2 000018a7: SWAP1 000018a8: SWAP2 000018a9: ADD 000018aa: SWAP1 000018ab: PUSH1 0x01 000018ad: ADD 000018ae: PUSH2 0x1881 000018b1: JUMP 000018b2: JUMPDEST 000018b3: POP 000018b4: SWAP3 000018b5: SWAP7 000018b6: SWAP6 000018b7: POP 000018b8: POP 000018b9: POP 000018ba: POP 000018bb: POP 000018bc: POP 000018bd: JUMP 000018be: JUMPDEST 000018bf: PUSH1 0x00 000018c1: DUP1 000018c2: PUSH1 0x40 000018c4: DUP4 000018c5: DUP6 000018c6: SUB 000018c7: SLT 000018c8: ISZERO 000018c9: PUSH2 0x18d1 000018cc: JUMPI 000018cd: PUSH1 0x00 000018cf: DUP1 000018d0: REVERT 000018d1: JUMPDEST 000018d2: DUP3 000018d3: CALLDATALOAD 000018d4: PUSH2 0x18dc 000018d7: DUP2 000018d8: PUSH2 0x15eb 000018db: JUMP 000018dc: JUMPDEST 000018dd: SWAP2 000018de: POP 000018df: PUSH1 0x20 000018e1: DUP4 000018e2: ADD 000018e3: CALLDATALOAD 000018e4: PUSH2 0x1795 000018e7: DUP2 000018e8: PUSH2 0x15eb 000018eb: JUMP 000018ec: JUMPDEST 000018ed: PUSH1 0x40 000018ef: DUP2 000018f0: MSTORE 000018f1: DUP3 000018f2: PUSH1 0x40 000018f4: DUP3 000018f5: ADD 000018f6: MSTORE 000018f7: DUP3 000018f8: DUP5 000018f9: PUSH1 0x60 000018fb: DUP4 000018fc: ADD 000018fd: CALLDATACOPY 000018fe: PUSH1 0x00 00001900: PUSH1 0x60 00001902: DUP5 00001903: DUP4 00001904: ADD 00001905: ADD 00001906: MSTORE 00001907: PUSH1 0x00 00001909: PUSH1 0x60 0000190b: PUSH1 0x1f 0000190d: NOT 0000190e: PUSH1 0x1f 00001910: DUP7 00001911: ADD 00001912: AND 00001913: DUP4 00001914: ADD 00001915: ADD 00001916: SWAP1 00001917: POP 00001918: PUSH1 0x01 0000191a: PUSH1 0x01 0000191c: PUSH1 0xa0 0000191e: SHL 0000191f: SUB 00001920: DUP4 00001921: AND 00001922: PUSH1 0x20 00001924: DUP4 00001925: ADD 00001926: MSTORE 00001927: SWAP5 00001928: SWAP4 00001929: POP 0000192a: POP 0000192b: POP 0000192c: POP 0000192d: JUMP 0000192e: JUMPDEST 0000192f: PUSH1 0x00 00001931: PUSH1 0x20 00001933: DUP3 00001934: DUP5 00001935: SUB 00001936: SLT 00001937: ISZERO 00001938: PUSH2 0x1940 0000193b: JUMPI 0000193c: PUSH1 0x00 0000193e: DUP1 0000193f: REVERT 00001940: JUMPDEST 00001941: DUP2 00001942: MLOAD 00001943: PUSH2 0x0a41 00001946: DUP2 00001947: PUSH2 0x15eb 0000194a: JUMP 0000194b: JUMPDEST 0000194c: PUSH4 0x4e487b71 00001951: PUSH1 0xe0 00001953: SHL 00001954: PUSH1 0x00 00001956: MSTORE 00001957: PUSH1 0x11 00001959: PUSH1 0x04 0000195b: MSTORE 0000195c: PUSH1 0x24 0000195e: PUSH1 0x00 00001960: REVERT 00001961: JUMPDEST 00001962: PUSH1 0x00 00001964: DUP3 00001965: PUSH2 0x197e 00001968: JUMPI 00001969: PUSH4 0x4e487b71 0000196e: PUSH1 0xe0 00001970: SHL 00001971: PUSH1 0x00 00001973: MSTORE 00001974: PUSH1 0x12 00001976: PUSH1 0x04 00001978: MSTORE 00001979: PUSH1 0x24 0000197b: PUSH1 0x00 0000197d: REVERT 0000197e: JUMPDEST 0000197f: POP 00001980: DIV 00001981: SWAP1 00001982: JUMP 00001983: JUMPDEST 00001984: PUSH4 0x4e487b71 00001989: PUSH1 0xe0 0000198b: SHL 0000198c: PUSH1 0x00 0000198e: MSTORE 0000198f: PUSH1 0x41 00001991: PUSH1 0x04 00001993: MSTORE 00001994: PUSH1 0x24 00001996: PUSH1 0x00 00001998: REVERT 00001999: JUMPDEST 0000199a: PUSH1 0x00 0000199c: DUP3 0000199d: PUSH1 0x1f 0000199f: DUP4 000019a0: ADD 000019a1: SLT 000019a2: PUSH2 0x19aa 000019a5: JUMPI 000019a6: PUSH1 0x00 000019a8: DUP1 000019a9: REVERT 000019aa: JUMPDEST 000019ab: DUP2 000019ac: CALLDATALOAD 000019ad: PUSH8 0xffffffffffffffff 000019b6: DUP2 000019b7: GT 000019b8: ISZERO 000019b9: PUSH2 0x19c4 000019bc: JUMPI 000019bd: PUSH2 0x19c4 000019c0: PUSH2 0x1983 000019c3: JUMP 000019c4: JUMPDEST 000019c5: PUSH1 0x40 000019c7: MLOAD 000019c8: PUSH1 0x1f 000019ca: DUP3 000019cb: ADD 000019cc: PUSH1 0x1f 000019ce: NOT 000019cf: SWAP1 000019d0: DUP2 000019d1: AND 000019d2: PUSH1 0x3f 000019d4: ADD 000019d5: AND 000019d6: DUP2 000019d7: ADD 000019d8: PUSH8 0xffffffffffffffff 000019e1: DUP2 000019e2: GT 000019e3: DUP3 000019e4: DUP3 000019e5: LT 000019e6: OR 000019e7: ISZERO 000019e8: PUSH2 0x19f3 000019eb: JUMPI 000019ec: PUSH2 0x19f3 000019ef: PUSH2 0x1983 000019f2: JUMP 000019f3: JUMPDEST 000019f4: PUSH1 0x40 000019f6: MSTORE 000019f7: DUP2 000019f8: DUP2 000019f9: MSTORE 000019fa: DUP4 000019fb: DUP3 000019fc: ADD 000019fd: PUSH1 0x20 000019ff: ADD 00001a00: DUP6 00001a01: LT 00001a02: ISZERO 00001a03: PUSH2 0x1a0b 00001a06: JUMPI 00001a07: PUSH1 0x00 00001a09: DUP1 00001a0a: REVERT 00001a0b: JUMPDEST 00001a0c: DUP2 00001a0d: PUSH1 0x20 00001a0f: DUP6 00001a10: ADD 00001a11: PUSH1 0x20 00001a13: DUP4 00001a14: ADD 00001a15: CALLDATACOPY 00001a16: PUSH1 0x00 00001a18: SWAP2 00001a19: DUP2 00001a1a: ADD 00001a1b: PUSH1 0x20 00001a1d: ADD 00001a1e: SWAP2 00001a1f: SWAP1 00001a20: SWAP2 00001a21: MSTORE 00001a22: SWAP4 00001a23: SWAP3 00001a24: POP 00001a25: POP 00001a26: POP 00001a27: JUMP 00001a28: JUMPDEST 00001a29: PUSH1 0x00 00001a2b: PUSH1 0x20 00001a2d: DUP3 00001a2e: DUP5 00001a2f: SUB 00001a30: SLT 00001a31: ISZERO 00001a32: PUSH2 0x1a3a 00001a35: JUMPI 00001a36: PUSH1 0x00 00001a38: DUP1 00001a39: REVERT 00001a3a: JUMPDEST 00001a3b: DUP2 00001a3c: CALLDATALOAD 00001a3d: PUSH8 0xffffffffffffffff 00001a46: DUP2 00001a47: GT 00001a48: ISZERO 00001a49: PUSH2 0x1a51 00001a4c: JUMPI 00001a4d: PUSH1 0x00 00001a4f: DUP1 00001a50: REVERT 00001a51: JUMPDEST 00001a52: PUSH2 0x0e09 00001a55: DUP5 00001a56: DUP3 00001a57: DUP6 00001a58: ADD 00001a59: PUSH2 0x1999 00001a5c: JUMP 00001a5d: JUMPDEST 00001a5e: PUSH1 0x00 00001a60: PUSH1 0x20 00001a62: DUP3 00001a63: DUP5 00001a64: SUB 00001a65: SLT 00001a66: ISZERO 00001a67: PUSH2 0x1a6f 00001a6a: JUMPI 00001a6b: PUSH1 0x00 00001a6d: DUP1 00001a6e: REVERT 00001a6f: JUMPDEST 00001a70: POP 00001a71: MLOAD 00001a72: SWAP2 00001a73: SWAP1 00001a74: POP 00001a75: JUMP 00001a76: JUMPDEST 00001a77: PUSH4 0x4e487b71 00001a7c: PUSH1 0xe0 00001a7e: SHL 00001a7f: PUSH1 0x00 00001a81: MSTORE 00001a82: PUSH1 0x32 00001a84: PUSH1 0x04 00001a86: MSTORE 00001a87: PUSH1 0x24 00001a89: PUSH1 0x00 00001a8b: REVERT 00001a8c: JUMPDEST 00001a8d: PUSH1 0x00 00001a8f: DUP1 00001a90: DUP4 00001a91: CALLDATALOAD 00001a92: PUSH1 0x1e 00001a94: NOT 00001a95: DUP5 00001a96: CALLDATASIZE 00001a97: SUB 00001a98: ADD 00001a99: DUP2 00001a9a: SLT 00001a9b: PUSH2 0x1aa3 00001a9e: JUMPI 00001a9f: PUSH1 0x00 00001aa1: DUP1 00001aa2: REVERT 00001aa3: JUMPDEST 00001aa4: DUP4 00001aa5: ADD 00001aa6: DUP1 00001aa7: CALLDATALOAD 00001aa8: SWAP2 00001aa9: POP 00001aaa: PUSH8 0xffffffffffffffff 00001ab3: DUP3 00001ab4: GT 00001ab5: ISZERO 00001ab6: PUSH2 0x1abe 00001ab9: JUMPI 00001aba: PUSH1 0x00 00001abc: DUP1 00001abd: REVERT 00001abe: JUMPDEST 00001abf: PUSH1 0x20 00001ac1: ADD 00001ac2: SWAP2 00001ac3: POP 00001ac4: CALLDATASIZE 00001ac5: DUP2 00001ac6: SWAP1 00001ac7: SUB 00001ac8: DUP3 00001ac9: SGT 00001aca: ISZERO 00001acb: PUSH2 0x165f 00001ace: JUMPI 00001acf: PUSH1 0x00 00001ad1: DUP1 00001ad2: REVERT 00001ad3: JUMPDEST 00001ad4: DUP2 00001ad5: DUP4 00001ad6: DUP3 00001ad7: CALLDATACOPY 00001ad8: PUSH1 0x00 00001ada: SWAP2 00001adb: ADD 00001adc: SWAP1 00001add: DUP2 00001ade: MSTORE 00001adf: SWAP2 00001ae0: SWAP1 00001ae1: POP 00001ae2: JUMP 00001ae3: JUMPDEST 00001ae4: PUSH1 0x00 00001ae6: DUP1 00001ae7: PUSH1 0x40 00001ae9: DUP4 00001aea: DUP6 00001aeb: SUB 00001aec: SLT 00001aed: ISZERO 00001aee: PUSH2 0x1af6 00001af1: JUMPI 00001af2: PUSH1 0x00 00001af4: DUP1 00001af5: REVERT 00001af6: JUMPDEST 00001af7: DUP3 00001af8: CALLDATALOAD 00001af9: PUSH8 0xffffffffffffffff 00001b02: DUP2 00001b03: GT 00001b04: ISZERO 00001b05: PUSH2 0x1b0d 00001b08: JUMPI 00001b09: PUSH1 0x00 00001b0b: DUP1 00001b0c: REVERT 00001b0d: JUMPDEST 00001b0e: PUSH2 0x1b19 00001b11: DUP6 00001b12: DUP3 00001b13: DUP7 00001b14: ADD 00001b15: PUSH2 0x1999 00001b18: JUMP 00001b19: JUMPDEST 00001b1a: SWAP3 00001b1b: POP 00001b1c: POP 00001b1d: PUSH1 0x20 00001b1f: DUP4 00001b20: ADD 00001b21: CALLDATALOAD 00001b22: PUSH2 0x1795 00001b25: DUP2 00001b26: PUSH2 0x15eb 00001b29: JUMP 00001b2a: JUMPDEST 00001b2b: PUSH1 0x00 00001b2d: DUP3 00001b2e: MLOAD 00001b2f: PUSH2 0x1b3c 00001b32: DUP2 00001b33: DUP5 00001b34: PUSH1 0x20 00001b36: DUP8 00001b37: ADD 00001b38: PUSH2 0x16bd 00001b3b: JUMP 00001b3c: JUMPDEST 00001b3d: SWAP2 00001b3e: SWAP1 00001b3f: SWAP2 00001b40: ADD 00001b41: SWAP3 00001b42: SWAP2 00001b43: POP 00001b44: POP 00001b45: JUMP 00001b46: JUMPDEST 00001b47: PUSH1 0x00 00001b49: PUSH1 0x20 00001b4b: DUP3 00001b4c: DUP5 00001b4d: SUB 00001b4e: SLT 00001b4f: ISZERO 00001b50: PUSH2 0x1b58 00001b53: JUMPI 00001b54: PUSH1 0x00 00001b56: DUP1 00001b57: REVERT 00001b58: JUMPDEST 00001b59: DUP2 00001b5a: MLOAD 00001b5b: DUP1 00001b5c: ISZERO 00001b5d: ISZERO 00001b5e: DUP2 00001b5f: EQ 00001b60: PUSH2 0x0a41 00001b63: JUMPI 00001b64: PUSH1 0x00 00001b66: DUP1 00001b67: REVERT 00001b68: JUMPDEST 00001b69: DUP2 00001b6a: DUP2 00001b6b: SUB 00001b6c: DUP2 00001b6d: DUP2 00001b6e: GT 00001b6f: ISZERO 00001b70: PUSH2 0x09c2 00001b73: JUMPI 00001b74: PUSH2 0x09c2 00001b77: PUSH2 0x194b 00001b7a: JUMP 00001b7b: JUMPDEST 00001b7c: DUP1 00001b7d: DUP3 00001b7e: ADD 00001b7f: DUP1 00001b80: DUP3 00001b81: GT 00001b82: ISZERO 00001b83: PUSH2 0x09c2 00001b86: JUMPI 00001b87: PUSH2 0x09c2 00001b8a: PUSH2 0x194b 00001b8d: JUMP 00001b8e: INVALID 00001b8f: LOG2 00001b90: PUSH5 0x6970667358 00001b96: UNKNOWN(0x22) 00001b97: SLT 00001b98: KECCAK256 00001b99: EXTCODESIZE 00001b9a: SLT 00001b9b: CREATE 00001b9c: UNKNOWN(0x26) 00001b9d: PUSH16 0x15b8e017c675a53b34b1cb9f3ee4ca15 00001bae: UNKNOWN(0xBF) 00001baf: SHL 00001bb0: MUL 00001bb1: RETURN 00001bb2: UNKNOWN(0xC1) 00001bb3: PUSH11 0x0a59011c5264736f6c6343 00001bbf: STOP 00001bc0: ADDMOD 00001bc1: SHL 00001bc2: STOP 00001bc3: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0x8bc0697590156c2934c3863729113d71a7d2873b7aeff29343e2cfd92d2c313f
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0x8bc0697590156c2934c3863729113d71a7d2873b7aeff29343e2cfd92d2c313f",
"confirmed": false,
"trace_mode": "callTracer",
"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": "0xdce29136",
"selector": "0xdce29136",
"calldata_variants": [
"0xdce29136",
"0xdce291360000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdeb11e78",
"selector": "0xdeb11e78",
"calldata_variants": [
"0xdeb11e78",
"0xdeb11e780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe915cfd1",
"selector": "0xe915cfd1",
"calldata_variants": [
"0xe915cfd1",
"0xe915cfd10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5983e83",
"selector": "0xf5983e83",
"calldata_variants": [
"0xf5983e83",
"0xf5983e830000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xac9650d8",
"selector": "0xac9650d8",
"calldata_variants": [
"0xac9650d8",
"0xac9650d80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xadc0dc3b",
"selector": "0xadc0dc3b",
"calldata_variants": [
"0xadc0dc3b",
"0xadc0dc3b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda4886df",
"selector": "0xda4886df",
"calldata_variants": [
"0xda4886df",
"0xda4886df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95a8c58d",
"selector": "0x95a8c58d",
"calldata_variants": [
"0x95a8c58d",
"0x95a8c58d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3162,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | upgradeability | codex | Re-initializable setup can grant operator/flow-limiter roles to an attacker | 85 | no | — |
viewevidence_json{
"evidence": "`setup` is `external` and gated only by `onlyProxy`; it unconditionally calls `_addAccountRoles` for the supplied operator and the service, with no one-time initialization check, so repeated calls accumulate privileged roles.",
"locations": [
"contracts/contracts/token-manager/TokenManager.sol:101",
"contracts/contracts/token-manager/TokenManager.sol:110"
],
"recommendation": "Add an initialization guard in `TokenManager.setup` (e.g., an `initialized` flag in unstructured storage) or ensure the proxy constructor permanently disables further `setup` calls. Consider reverting if roles are already set to prevent role accumulation on re-init.",
"exploit_scenario": "If the proxy does not enforce a single initialization, any external caller can invoke `setup` on the proxy after deployment with their address encoded in `params_`. This grants them `OPERATOR` and `FLOW_LIMITER` roles, allowing them to change flow limiters and set the flow limit to 0 or an arbitrarily large value, potentially disabling rate limits relied on by the service."
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x15f4b5d14dc747c479add8d6b3e80709a6ac2688aa916215d82559fa2de1bbcf
call_targets:
0x8832f0381707bb29756edecf42580800207f2a9e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x15f4b5d14dc747c479add8d6b3e80709a6ac2688aa916215d82559fa2de1bbcf",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x8832f0381707bb29756edecf42580800207f2a9e"
],
"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": "0xdce29136",
"selector": "0xdce29136",
"calldata_variants": [
"0xdce29136",
"0xdce291360000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdeb11e78",
"selector": "0xdeb11e78",
"calldata_variants": [
"0xdeb11e78",
"0xdeb11e780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe915cfd1",
"selector": "0xe915cfd1",
"calldata_variants": [
"0xe915cfd1",
"0xe915cfd10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5983e83",
"selector": "0xf5983e83",
"calldata_variants": [
"0xf5983e83",
"0xf5983e830000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xac9650d8",
"selector": "0xac9650d8",
"calldata_variants": [
"0xac9650d8",
"0xac9650d80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xadc0dc3b",
"selector": "0xadc0dc3b",
"calldata_variants": [
"0xadc0dc3b",
"0xadc0dc3b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda4886df",
"selector": "0xda4886df",
"calldata_variants": [
"0xda4886df",
"0xda4886df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95a8c58d",
"selector": "0x95a8c58d",
"calldata_variants": [
"0x95a8c58d",
"0x95a8c58d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3787,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 1,
"guards_detected": [],
"untrusted_call_count": 1
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x15f4b5d14dc747c479add8d6b3e80709a6ac2688aa916215d82559fa2de1bbcf
call_targets:
0x8832f0381707bb29756edecf42580800207f2a9e
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x15f4b5d14dc747c479add8d6b3e80709a6ac2688aa916215d82559fa2de1bbcf",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x8832f0381707bb29756edecf42580800207f2a9e"
],
"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": "0xdce29136",
"selector": "0xdce29136",
"calldata_variants": [
"0xdce29136",
"0xdce291360000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdeb11e78",
"selector": "0xdeb11e78",
"calldata_variants": [
"0xdeb11e78",
"0xdeb11e780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe915cfd1",
"selector": "0xe915cfd1",
"calldata_variants": [
"0xe915cfd1",
"0xe915cfd10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5983e83",
"selector": "0xf5983e83",
"calldata_variants": [
"0xf5983e83",
"0xf5983e830000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xac9650d8",
"selector": "0xac9650d8",
"calldata_variants": [
"0xac9650d8",
"0xac9650d80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xadc0dc3b",
"selector": "0xadc0dc3b",
"calldata_variants": [
"0xadc0dc3b",
"0xadc0dc3b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda4886df",
"selector": "0xda4886df",
"calldata_variants": [
"0xda4886df",
"0xda4886df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95a8c58d",
"selector": "0x95a8c58d",
"calldata_variants": [
"0x95a8c58d",
"0x95a8c58d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3787,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": []
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| medium | other | detector | CREATE/CREATE2 reachable | 45 | no | no |
viewtrace_id: 0xe5ba42503e2823e4f3b8f571b934d5a8964f0fdc6519631fc07b1333a0d1f8ef
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0xe5ba42503e2823e4f3b8f571b934d5a8964f0fdc6519631fc07b1333a0d1f8ef",
"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": "0xdce29136",
"selector": "0xdce29136",
"calldata_variants": [
"0xdce29136",
"0xdce291360000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdeb11e78",
"selector": "0xdeb11e78",
"calldata_variants": [
"0xdeb11e78",
"0xdeb11e780000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe915cfd1",
"selector": "0xe915cfd1",
"calldata_variants": [
"0xe915cfd1",
"0xe915cfd10000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf5983e83",
"selector": "0xf5983e83",
"calldata_variants": [
"0xf5983e83",
"0xf5983e830000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xac9650d8",
"selector": "0xac9650d8",
"calldata_variants": [
"0xac9650d8",
"0xac9650d80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xadc0dc3b",
"selector": "0xadc0dc3b",
"calldata_variants": [
"0xadc0dc3b",
"0xadc0dc3b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xda4886df",
"selector": "0xda4886df",
"calldata_variants": [
"0xda4886df",
"0xda4886df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x95a8c58d",
"selector": "0x95a8c58d",
"calldata_variants": [
"0x95a8c58d",
"0x95a8c58d0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 1,
"create2_count": 0
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 1,
"create2_count": 0
}
|