019be3d6-83e1-7166-b811-d5bbdcacd0d9
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 |
|---|---|---|---|---|
| 40946 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 40947 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 40948 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 40949 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 40950 | capability.graph | complete | 1 / 3 | 2 months ago |
| 40951 | detector.run | complete | 1 / 3 | 2 months ago |
| 40952 | validation.fork | complete | 1 / 3 | 2 months ago |
| 41371 | report.consolidate | complete | 1 / 6 | 2 months ago |
| 41372 | tool.slither | complete | 1 / 2 | 2 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-z05148xz)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-z05148xz)
Stock._sell(address,uint256) (contracts/Stock.sol#111-150) sends eth to arbitrary user
Dangerous calls:
- (success,None) = __from.call{value: _totalSellAmount}() (contracts/Stock.sol#144)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#functions-that-send-ether-to-arbitrary-destinations
Stock.evaluateExercisable(address,uint256) (contracts/Stock.sol#234-248) performs a multiplication on the result of a division:
- tranches = (block.timestamp - _option.createTime) / 86400 (contracts/Stock.sol#240)
- (_option.granted * tranches) / 3650 - _option.vested (contracts/Stock.sol#247)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply
Stock.evaluateExercisable(address,uint256) (contracts/Stock.sol#234-248) uses a dangerous strict equality:
- tranches == 3650 (contracts/Stock.sol#244)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities
Stock.constructor(string,string,address,uint256,address).__parent (contracts/Stock.sol#29) lacks a zero-check on :
- parent = __parent (contracts/Stock.sol#34)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation
Reentrancy in Stock._sell(address,uint256) (contracts/Stock.sol#111-150):
External calls:
- (success,None) = __from.call{value: _totalSellAmount}() (contracts/Stock.sol#144)
Event emitted after the call(s):
- Sell(__from,_minRound,_maxRound,_totalSellAmount,__quantity) (contracts/Stock.sol#147)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
Stock.grantOption(address[],uint256[]) (contracts/Stock.sol#152-200) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(optionPool.totalShares >= _toGrantedQuantity + optionPool.totalGranted,Insufficient option) (contracts/Stock.sol#168-172)
- require(bool,string)(ys <= 10,No more shares) (contracts/Stock.sol#175)
- require(bool,string)(_toGrantedQuantity + optionPool.totalGranted <= _maxGrantQuantity,100K every year) (contracts/Stock.sol#178-181)
- require(bool,string)(_option.createTime == 0,GrantNo already exists) (contracts/Stock.sol#192)
Stock._exerciseOption(address,uint256,uint256) (contracts/Stock.sol#219-232) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(exercisable >= __amount,Insufficient option) (contracts/Stock.sol#225)
Stock.evaluateExercisable(address,uint256) (contracts/Stock.sol#234-248) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(tranches <= 3650,No more Option) (contracts/Stock.sol#241)
- tranches == 3650 (contracts/Stock.sol#244)
Stock.__getOption(address,uint256) (contracts/Stock.sol#261-269) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(_option.createTime > 0,Option not exist) (contracts/Stock.sol#266)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp
4 different versions of Solidity are used:
- Version constraint ^0.8.20 is used by:
-^0.8.20 (contracts/IStock.sol#2)
-^0.8.20 (contracts/Stock.sol#2)
-^0.8.20 (lib/openzeppelin-contracts/contracts/access/Ownable.sol#4)
-^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol#4)
-^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Context.sol#4)
- Version constraint >=0.8.4 is used by:
->=0.8.4 (lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#4)
- Version constraint >=0.4.16 is used by:
->=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
- Version constraint >=0.6.2 is used by:
->=0.6.2 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used
Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- VerbatimInvalidDeduplication
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess.
It is used by:
- ^0.8.20 (contracts/IStock.sol#2)
- ^0.8.20 (contracts/Stock.sol#2)
- ^0.8.20 (lib/openzeppelin-contracts/contracts/access/Ownable.sol#4)
- ^0.8.20 (lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol#4)
- ^0.8.20 (lib/openzeppelin-contracts/contracts/utils/Context.sol#4)
Version constraint >=0.8.4 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables.
It is used by:
- >=0.8.4 (lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#4)
Version constraint >=0.4.16 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- DirtyBytesArrayToStorage
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching
- EmptyByteArrayCopy
- DynamicArrayCleanup
- ImplicitConstructorCallvalueCheck
- TupleAssignmentMultiStackSlotComponents
- MemoryArrayCreationOverflow
- privateCanBeOverridden
- SignedArrayStorageCopy
- ABIEncoderV2StorageArrayWithMultiSlotElement
- DynamicConstructorArgumentsClippedABIV2
- UninitializedFunctionPointerInConstructor_0.4.x
- IncorrectEventSignatureInLibraries_0.4.x
- ExpExponentCleanup
- NestedArrayFunctionCallDecoder
- ZeroFunctionSelector.
It is used by:
- >=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
Version constraint >=0.6.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- NestedCalldataArrayAbiReencodingSizeValidation
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching
- EmptyByteArrayCopy
- DynamicArrayCleanup
- MissingEscapingInFormatting
- ArraySliceDynamicallyEncodedBaseType
- ImplicitConstructorCallvalueCheck
- TupleAssignmentMultiStackSlotComponents
- MemoryArrayCreationOverflow.
It is used by:
- >=0.6.2 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
Low level call in Stock._sell(address,uint256) (contracts/Stock.sol#111-150):
- (success,None) = __from.call{value: _totalSellAmount}() (contracts/Stock.sol#144)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
Parameter Stock.setHome(string).__home (contracts/Stock.sol#45) is not in mixedCase
Parameter Stock.burn(address,uint256).__account (contracts/Stock.sol#49) is not in mixedCase
Parameter Stock.burn(address,uint256).__amount (contracts/Stock.sol#49) is not in mixedCase
Parameter Stock.buy(address).__referrer (contracts/Stock.sol#54) is not in mixedCase
Parameter Stock.sell(uint256).__quantity (contracts/Stock.sol#95) is not in mixedCase
Parameter Stock.sellFrom(address,uint256).__contractAddress (contracts/Stock.sol#100) is not in mixedCase
Parameter Stock.sellFrom(address,uint256).__quantity (contracts/Stock.sol#101) is not in mixedCase
Parameter Stock.grantOption(address[],uint256[]).__contributors (contracts/Stock.sol#153) is not in mixedCase
Parameter Stock.grantOption(address[],uint256[]).__quantities (contracts/Stock.sol#154) is not in mixedCase
Parameter Stock.exerciseOption(uint256,uint256).__grantNo (contracts/Stock.sol#202) is not in mixedCase
Parameter Stock.exerciseOption(uint256,uint256).__amount (contracts/Stock.sol#202) is not in mixedCase
Parameter Stock.exerciseStockOption(address,uint256,uint256).__contractAddress (contracts/Stock.sol#207) is not in mixedCase
Parameter Stock.exerciseStockOption(address,uint256,uint256).__grantNo (contracts/Stock.sol#208) is not in mixedCase
Parameter Stock.exerciseStockOption(address,uint256,uint256).__amount (contracts/Stock.sol#209) is not in mixedCase
Parameter Stock.evaluateExercisable(address,uint256).__account (contracts/Stock.sol#235) is not in mixedCase
Parameter Stock.evaluateExercisable(address,uint256).__grantNo (contracts/Stock.sol#236) is not in mixedCase
Parameter Stock.option(address,uint256).__account (contracts/Stock.sol#251) is not in mixedCase
Parameter Stock.option(address,uint256).__grantNo (contracts/Stock.sol#252) is not in mixedCase
Parameter Stock.grantNo(address).__account (contracts/Stock.sol#257) is not in mixedCase
Function Stock.__getOption(address,uint256) (contracts/Stock.sol#261-269) is not in mixedCase
Parameter Stock.__getOption(address,uint256).__account (contracts/Stock.sol#262) is not in mixedCase
Parameter Stock.__getOption(address,uint256).__grantNo (contracts/Stock.sol#263) is not in mixedCase
Variable Stock.MAGNIFICATION (contracts/Stock.sol#9) is not in mixedCase
Variable Stock.ROUND_UNIT (contracts/Stock.sol#11) is not in mixedCase
Variable Stock.MAX_ROUND (contracts/Stock.sol#12) is not in mixedCase
Variable Stock.ORDER_UNIT_SUPPLY (contracts/Stock.sol#14) is not in mixedCase
Variable Stock.DEFAULT_TOTAL_SUPPLY (contracts/Stock.sol#15) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
Stock.DEFAULT_TOTAL_SUPPLY (contracts/Stock.sol#15) should be constant
Stock.MAGNIFICATION (contracts/Stock.sol#9) should be constant
Stock.MAX_ROUND (contracts/Stock.sol#12) should be constant
Stock.ORDER_UNIT_SUPPLY (contracts/Stock.sol#14) should be constant
Stock.ROUND_UNIT (contracts/Stock.sol#11) should be constant
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant
Stock.broker (contracts/Stock.sol#18) should be immutable
Stock.createTime (contracts/Stock.sol#24) should be immutable
Stock.parent (contracts/Stock.sol#19) should be immutable
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-immutable
. analyzed (10 contracts with 100 detectors), 50 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.8.20",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.8.20",
"install_stderr": null,
"install_stdout": "Version '0.8.20' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-z05148xz --include-path /tmp/slither-z05148xz/lib --include-path /tmp/slither-z05148xz/lib/openzeppelin-contracts --allow-paths /tmp/slither-z05148xz,/tmp/slither-z05148xz/lib,/tmp/slither-z05148xz/lib/openzeppelin-contracts,/tmp/slither-z05148xz/src",
"remappings": [
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/"
],
"source_files": [
"contracts/Stock.sol",
"@openzeppelin/contracts/access/Ownable.sol",
"@openzeppelin/contracts/token/ERC20/ERC20.sol",
"contracts/IStock.sol",
"@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
"@openzeppelin/contracts/utils/Context.sol",
"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
"@openzeppelin/contracts/token/ERC20/IERC20.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 50,
"workspace_hash": "801d65236d2d3a088e1dacec446d8f15ee1d4034ed0bf229dfbe78bae0d99f60",
"duration_seconds": 1.0314767360687256,
"solc_version_requested": "0.8.20"
}
{"no_findings":false,"summary":"Found an authorization/validation bug in option exercising that can bypass vesting/limits when exercising on behalf of another account.","findings":[{"severity":"medium","category":"auth","title":"exerciseStockOption checks vesting for msg.sender instead of target account","exploit_scenario":"An owner of a contract address calls exerciseStockOption for that contract’s grant. _exerciseOption verifies exercisable options for msg.sender (the owner), not the target __account. If the owner has sufficient vested options under the same grant number, they can exercise any amount for the contract even if the contract’s option is unvested or exceeds its grant, transferring tokens from broker to the contract and bypassing the intended vesting/invariant checks.","recommendation":"In _exerciseOption, compute exercisable using the target account (evaluateExercisable(__account, __grantNo)) and ensure _option.vested + __amount <= _option.granted before transferring.","evidence":"_exerciseOption uses evaluateExercisable(_msgSender(), __grantNo) before updating the option for __account, so exerciseStockOption validates the caller’s vesting instead of the target’s.","locations":["contracts/Stock.sol:219","contracts/Stock.sol:224","contracts/Stock.sol:206"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-4ek01fz7
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019be468-6738-7132-973a-d67773d88238
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Reading AUDIT_BUNDLE contents**
exec
/bin/bash -lc ls in /tmp/codex-4ek01fz7 succeeded in 8ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
@openzeppelin
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-4ek01fz7 succeeded in 6ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/IStock.sol
================================================================================
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.20;
struct OrderBook {
uint256 round;
uint256 balance;
}
struct OptionPool {
uint256 totalShares;
uint256 totalGranted;
mapping(address => uint256) grantNoMapping;
mapping(address => mapping(uint256 => Option)) optionMapping;
}
thinking
**Auditing potential reentrancy in token sell flow**
The sell function transfers tokens to the broker and then makes an external call that could trigger reentrancy, but state updates occur before the call and prevent double spending; although fallback functions may trigger buy calls, the msg.value-based logic and updated balances limit exploitability.
thinking
**Identifying key logic and access control flaws**
The exerciseStockOption function misuses msg.sender in eligibility checks, allowing an owner to exercise options on behalf of a contract beyond its vested amount, creating an authorization bug. Additionally, sellFrom relies on external owner() calls to authorize token sales from contracts, enabling contracts with owner() returning caller to bypass checks, which may lead to unintended token transfers, though these appear design-related rather than direct exploits.
exec
/bin/bash -lc 'nl -ba contracts/Stock.sol' in /tmp/codex-4ek01fz7 succeeded in 6ms:
1 // SPDX-License-Identifier: Apache-2.0
2 pragma solidity ^0.8.20;
3
4 import "./IStock.sol";
5 import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
6 import "@openzeppelin/contracts/access/Ownable.sol";
7
8 contract Stock is ERC20, Ownable, IStock {
9 uint256 MAGNIFICATION = 1e4; // 0.0001 wei eth per wei token
10
11 uint256 ROUND_UNIT = 1;
12 uint256 MAX_ROUND = 1e4;
13
14 uint256 ORDER_UNIT_SUPPLY = 1e4 * 1e18;
15 uint256 DEFAULT_TOTAL_SUPPLY = 1e8 * 1e18;
16
17 string public home;
18 address public broker;
19 address public parent;
20
thinking
**Identifying internal authorization risk**
Found that exerciseStockOption relies on external owner() and uses msg.sender vs. __account mismatches, allowing potential unauthorized early token transfers from broker to contract, risking asset inflation and unauthorized redistribution with medium to possibly high severity.
thinking
**Detailing authorization issue and preparing JSON output**
Analyzed owner-controlled exerciseStockOption call bypassing vesting via misuse of evaluateExercisable with caller's grantNo instead of target account's, confirming medium severity auth flaw; identified relevant code lines and possible external call misuse but without immediate risk. Next, I'll craft the JSON summary with evidence, severity, category, locations, and recommendations.
codex
{"no_findings":false,"summary":"Found an authorization/validation bug in option exercising that can bypass vesting/limits when exercising on behalf of another account.","findings":[{"severity":"medium","category":"auth","title":"exerciseStockOption checks vesting for msg.sender instead of target account","exploit_scenario":"An owner of a contract address calls exerciseStockOption for that contract’s grant. _exerciseOption verifies exercisable options for msg.sender (the owner), not the target __account. If the owner has sufficient vested options under the same grant number, they can exercise any amount for the contract even if the contract’s option is unvested or exceeds its grant, transferring tokens from broker to the contract and bypassing the intended vesting/invariant checks.","recommendation":"In _exerciseOption, compute exercisable using the target account (evaluateExercisable(__account, __grantNo)) and ensure _option.vested + __amount <= _option.granted before transferring.","evidence":"_exerciseOption uses evaluateExercisable(_msgSender(), __grantNo) before updating the option for __account, so exerciseStockOption validates the caller’s vesting instead of the target’s.","locations":["contracts/Stock.sol:219","contracts/Stock.sol:224","contracts/Stock.sol:206"]}]}
tokens used
13,925
{
"codex": {
"ran_at": "2026-01-22T06:34:59.995509+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 8,
"import_count": 9,
"first_party_contracts_count": 2
},
"summary": "Found an authorization/validation bug in option exercising that can bypass vesting/limits when exercising on behalf of another account.",
"raw_final": {
"summary": "Found an authorization/validation bug in option exercising that can bypass vesting/limits when exercising on behalf of another account.",
"findings": [
{
"title": "exerciseStockOption checks vesting for msg.sender instead of target account",
"category": "auth",
"evidence": "_exerciseOption uses evaluateExercisable(_msgSender(), __grantNo) before updating the option for __account, so exerciseStockOption validates the caller\u2019s vesting instead of the target\u2019s.",
"severity": "medium",
"locations": [
"contracts/Stock.sol:219",
"contracts/Stock.sol:224",
"contracts/Stock.sol:206"
],
"recommendation": "In _exerciseOption, compute exercisable using the target account (evaluateExercisable(__account, __grantNo)) and ensure _option.vested + __amount <= _option.granted before transferring.",
"exploit_scenario": "An owner of a contract address calls exerciseStockOption for that contract\u2019s grant. _exerciseOption verifies exercisable options for msg.sender (the owner), not the target __account. If the owner has sufficient vested options under the same grant number, they can exercise any amount for the contract even if the contract\u2019s option is unvested or exceeds its grant, transferring tokens from broker to the contract and bypassing the intended vesting/invariant checks."
}
],
"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 0x01bd 0000000c: JUMPI 0000000d: PUSH0 0000000e: CALLDATALOAD 0000000f: PUSH1 0xe0 00000011: SHR 00000012: DUP1 00000013: PUSH4 0x7c9c6712 00000018: GT 00000019: PUSH2 0x00f2 0000001c: JUMPI 0000001d: DUP1 0000001e: PUSH4 0xabff0110 00000023: GT 00000024: PUSH2 0x0092 00000027: JUMPI 00000028: DUP1 00000029: PUSH4 0xe4849b32 0000002e: GT 0000002f: PUSH2 0x0062 00000032: JUMPI 00000033: DUP1 00000034: PUSH4 0xe4849b32 00000039: EQ 0000003a: PUSH2 0x0555 0000003d: JUMPI 0000003e: DUP1 0000003f: PUSH4 0xeb1715cc 00000044: EQ 00000045: PUSH2 0x0574 00000048: JUMPI 00000049: DUP1 0000004a: PUSH4 0xf088d547 0000004f: EQ 00000050: PUSH2 0x0593 00000053: JUMPI 00000054: DUP1 00000055: PUSH4 0xf2fde38b 0000005a: EQ 0000005b: PUSH2 0x05a6 0000005e: JUMPI 0000005f: PUSH0 00000060: DUP1 00000061: REVERT 00000062: JUMPDEST 00000063: DUP1 00000064: PUSH4 0xabff0110 00000069: EQ 0000006a: PUSH2 0x0492 0000006d: JUMPI 0000006e: DUP1 0000006f: PUSH4 0xb45323b4 00000074: EQ 00000075: PUSH2 0x04b1 00000078: JUMPI 00000079: DUP1 0000007a: PUSH4 0xd86f0aab 0000007f: EQ 00000080: PUSH2 0x04d0 00000083: JUMPI 00000084: DUP1 00000085: PUSH4 0xdd62ed3e 0000008a: EQ 0000008b: PUSH2 0x0511 0000008e: JUMPI 0000008f: PUSH0 00000090: DUP1 00000091: REVERT 00000092: JUMPDEST 00000093: DUP1 00000094: PUSH4 0x9dc29fac 00000099: GT 0000009a: PUSH2 0x00cd 0000009d: JUMPI 0000009e: DUP1 0000009f: PUSH4 0x9dc29fac 000000a4: EQ 000000a5: PUSH2 0x040c 000000a8: JUMPI 000000a9: DUP1 000000aa: PUSH4 0x9fa92f9d 000000af: EQ 000000b0: PUSH2 0x042b 000000b3: JUMPI 000000b4: DUP1 000000b5: PUSH4 0xa6594a5b 000000ba: EQ 000000bb: PUSH2 0x043f 000000be: JUMPI 000000bf: DUP1 000000c0: PUSH4 0xa9059cbb 000000c5: EQ 000000c6: PUSH2 0x0473 000000c9: JUMPI 000000ca: PUSH0 000000cb: DUP1 000000cc: REVERT 000000cd: JUMPDEST 000000ce: DUP1 000000cf: PUSH4 0x7c9c6712 000000d4: EQ 000000d5: PUSH2 0x03bc 000000d8: JUMPI 000000d9: DUP1 000000da: PUSH4 0x8da5cb5b 000000df: EQ 000000e0: PUSH2 0x03db 000000e3: JUMPI 000000e4: DUP1 000000e5: PUSH4 0x95d89b41 000000ea: EQ 000000eb: PUSH2 0x03f8 000000ee: JUMPI 000000ef: PUSH0 000000f0: DUP1 000000f1: REVERT 000000f2: JUMPDEST 000000f3: DUP1 000000f4: PUSH4 0x4b1d9165 000000f9: GT 000000fa: PUSH2 0x015d 000000fd: JUMPI 000000fe: DUP1 000000ff: PUSH4 0x61dcd7ab 00000104: GT 00000105: PUSH2 0x0138 00000108: JUMPI 00000109: DUP1 0000010a: PUSH4 0x61dcd7ab 0000010f: EQ 00000110: PUSH2 0x0345 00000113: JUMPI 00000114: DUP1 00000115: PUSH4 0x70a08231 0000011a: EQ 0000011b: PUSH2 0x035a 0000011e: JUMPI 0000011f: DUP1 00000120: PUSH4 0x715018a6 00000125: EQ 00000126: PUSH2 0x038e 00000129: JUMPI 0000012a: DUP1 0000012b: PUSH4 0x776af5ba 00000130: EQ 00000131: PUSH2 0x03a2 00000134: JUMPI 00000135: PUSH0 00000136: DUP1 00000137: REVERT 00000138: JUMPDEST 00000139: DUP1 0000013a: PUSH4 0x4b1d9165 0000013f: EQ 00000140: PUSH2 0x02d0 00000143: JUMPI 00000144: DUP1 00000145: PUSH4 0x56260ada 0000014a: EQ 0000014b: PUSH2 0x02ef 0000014e: JUMPI 0000014f: DUP1 00000150: PUSH4 0x60f96a8f 00000155: EQ 00000156: PUSH2 0x030e 00000159: JUMPI 0000015a: PUSH0 0000015b: DUP1 0000015c: REVERT 0000015d: JUMPDEST 0000015e: DUP1 0000015f: PUSH4 0x23b872dd 00000164: GT 00000165: PUSH2 0x0198 00000168: JUMPI 00000169: DUP1 0000016a: PUSH4 0x23b872dd 0000016f: EQ 00000170: PUSH2 0x0248 00000173: JUMPI 00000174: DUP1 00000175: PUSH4 0x2aab80dd 0000017a: EQ 0000017b: PUSH2 0x0267 0000017e: JUMPI 0000017f: DUP1 00000180: PUSH4 0x313ce567 00000185: EQ 00000186: PUSH2 0x0296 00000189: JUMPI 0000018a: DUP1 0000018b: PUSH4 0x3ebdb1cb 00000190: EQ 00000191: PUSH2 0x02b1 00000194: JUMPI 00000195: PUSH0 00000196: DUP1 00000197: REVERT 00000198: JUMPDEST 00000199: DUP1 0000019a: PUSH4 0x06fdde03 0000019f: EQ 000001a0: PUSH2 0x01d1 000001a3: JUMPI 000001a4: DUP1 000001a5: PUSH4 0x095ea7b3 000001aa: EQ 000001ab: PUSH2 0x01fb 000001ae: JUMPI 000001af: DUP1 000001b0: PUSH4 0x18160ddd 000001b5: EQ 000001b6: PUSH2 0x022a 000001b9: JUMPI 000001ba: PUSH0 000001bb: DUP1 000001bc: REVERT 000001bd: JUMPDEST 000001be: CALLDATASIZE 000001bf: PUSH2 0x01cd 000001c2: JUMPI 000001c3: PUSH2 0x01cb 000001c6: CALLER 000001c7: PUSH2 0x05c5 000001ca: JUMP 000001cb: JUMPDEST 000001cc: STOP 000001cd: JUMPDEST 000001ce: PUSH0 000001cf: DUP1 000001d0: REVERT 000001d1: JUMPDEST 000001d2: CALLVALUE 000001d3: DUP1 000001d4: ISZERO 000001d5: PUSH2 0x01dc 000001d8: JUMPI 000001d9: PUSH0 000001da: DUP1 000001db: REVERT 000001dc: JUMPDEST 000001dd: POP 000001de: PUSH2 0x01e5 000001e1: PUSH2 0x0795 000001e4: JUMP 000001e5: JUMPDEST 000001e6: PUSH1 0x40 000001e8: MLOAD 000001e9: PUSH2 0x01f2 000001ec: SWAP2 000001ed: SWAP1 000001ee: PUSH2 0x1904 000001f1: JUMP 000001f2: JUMPDEST 000001f3: PUSH1 0x40 000001f5: MLOAD 000001f6: DUP1 000001f7: SWAP2 000001f8: SUB 000001f9: SWAP1 000001fa: RETURN 000001fb: JUMPDEST 000001fc: CALLVALUE 000001fd: DUP1 000001fe: ISZERO 000001ff: PUSH2 0x0206 00000202: JUMPI 00000203: PUSH0 00000204: DUP1 00000205: REVERT 00000206: JUMPDEST 00000207: POP 00000208: PUSH2 0x021a 0000020b: PUSH2 0x0215 0000020e: CALLDATASIZE 0000020f: PUSH1 0x04 00000211: PUSH2 0x1963 00000214: JUMP 00000215: JUMPDEST 00000216: PUSH2 0x0825 00000219: JUMP 0000021a: JUMPDEST 0000021b: PUSH1 0x40 0000021d: MLOAD 0000021e: SWAP1 0000021f: ISZERO 00000220: ISZERO 00000221: DUP2 00000222: MSTORE 00000223: PUSH1 0x20 00000225: ADD 00000226: PUSH2 0x01f2 00000229: JUMP 0000022a: JUMPDEST 0000022b: CALLVALUE 0000022c: DUP1 0000022d: ISZERO 0000022e: PUSH2 0x0235 00000231: JUMPI 00000232: PUSH0 00000233: DUP1 00000234: REVERT 00000235: JUMPDEST 00000236: POP 00000237: PUSH1 0x02 00000239: SLOAD 0000023a: JUMPDEST 0000023b: PUSH1 0x40 0000023d: MLOAD 0000023e: SWAP1 0000023f: DUP2 00000240: MSTORE 00000241: PUSH1 0x20 00000243: ADD 00000244: PUSH2 0x01f2 00000247: JUMP 00000248: JUMPDEST 00000249: CALLVALUE 0000024a: DUP1 0000024b: ISZERO 0000024c: PUSH2 0x0253 0000024f: JUMPI 00000250: PUSH0 00000251: DUP1 00000252: REVERT 00000253: JUMPDEST 00000254: POP 00000255: PUSH2 0x021a 00000258: PUSH2 0x0262 0000025b: CALLDATASIZE 0000025c: PUSH1 0x04 0000025e: PUSH2 0x198d 00000261: JUMP 00000262: JUMPDEST 00000263: PUSH2 0x083e 00000266: JUMP 00000267: JUMPDEST 00000268: CALLVALUE 00000269: DUP1 0000026a: ISZERO 0000026b: PUSH2 0x0272 0000026e: JUMPI 0000026f: PUSH0 00000270: DUP1 00000271: REVERT 00000272: JUMPDEST 00000273: POP 00000274: PUSH1 0x10 00000276: SLOAD 00000277: PUSH1 0x11 00000279: SLOAD 0000027a: PUSH2 0x0281 0000027d: SWAP2 0000027e: SWAP1 0000027f: DUP3 00000280: JUMP 00000281: JUMPDEST 00000282: PUSH1 0x40 00000284: DUP1 00000285: MLOAD 00000286: SWAP3 00000287: DUP4 00000288: MSTORE 00000289: PUSH1 0x20 0000028b: DUP4 0000028c: ADD 0000028d: SWAP2 0000028e: SWAP1 0000028f: SWAP2 00000290: MSTORE 00000291: ADD 00000292: PUSH2 0x01f2 00000295: JUMP 00000296: JUMPDEST 00000297: CALLVALUE 00000298: DUP1 00000299: ISZERO 0000029a: PUSH2 0x02a1 0000029d: JUMPI 0000029e: PUSH0 0000029f: DUP1 000002a0: REVERT 000002a1: JUMPDEST 000002a2: POP 000002a3: PUSH1 0x40 000002a5: MLOAD 000002a6: PUSH1 0x12 000002a8: DUP2 000002a9: MSTORE 000002aa: PUSH1 0x20 000002ac: ADD 000002ad: PUSH2 0x01f2 000002b0: JUMP 000002b1: JUMPDEST 000002b2: CALLVALUE 000002b3: DUP1 000002b4: ISZERO 000002b5: PUSH2 0x02bc 000002b8: JUMPI 000002b9: PUSH0 000002ba: DUP1 000002bb: REVERT 000002bc: JUMPDEST 000002bd: POP 000002be: PUSH2 0x01cb 000002c1: PUSH2 0x02cb 000002c4: CALLDATASIZE 000002c5: PUSH1 0x04 000002c7: PUSH2 0x1a10 000002ca: JUMP 000002cb: JUMPDEST 000002cc: PUSH2 0x0861 000002cf: JUMP 000002d0: JUMPDEST 000002d1: CALLVALUE 000002d2: DUP1 000002d3: ISZERO 000002d4: PUSH2 0x02db 000002d7: JUMPI 000002d8: PUSH0 000002d9: DUP1 000002da: REVERT 000002db: JUMPDEST 000002dc: POP 000002dd: PUSH2 0x023a 000002e0: PUSH2 0x02ea 000002e3: CALLDATASIZE 000002e4: PUSH1 0x04 000002e6: PUSH2 0x1963 000002e9: JUMP 000002ea: JUMPDEST 000002eb: PUSH2 0x0879 000002ee: JUMP 000002ef: JUMPDEST 000002f0: CALLVALUE 000002f1: DUP1 000002f2: ISZERO 000002f3: PUSH2 0x02fa 000002f6: JUMPI 000002f7: PUSH0 000002f8: DUP1 000002f9: REVERT 000002fa: JUMPDEST 000002fb: POP 000002fc: PUSH2 0x01cb 000002ff: PUSH2 0x0309 00000302: CALLDATASIZE 00000303: PUSH1 0x04 00000305: PUSH2 0x1a9f 00000308: JUMP 00000309: JUMPDEST 0000030a: PUSH2 0x098e 0000030d: JUMP 0000030e: JUMPDEST 0000030f: CALLVALUE 00000310: DUP1 00000311: ISZERO 00000312: PUSH2 0x0319 00000315: JUMPI 00000316: PUSH0 00000317: DUP1 00000318: REVERT 00000319: JUMPDEST 0000031a: POP 0000031b: PUSH1 0x0d 0000031d: SLOAD 0000031e: PUSH2 0x032d 00000321: SWAP1 00000322: PUSH1 0x01 00000324: PUSH1 0x01 00000326: PUSH1 0xa0 00000328: SHL 00000329: SUB 0000032a: AND 0000032b: DUP2 0000032c: JUMP 0000032d: JUMPDEST 0000032e: PUSH1 0x40 00000330: MLOAD 00000331: PUSH1 0x01 00000333: PUSH1 0x01 00000335: PUSH1 0xa0 00000337: SHL 00000338: SUB 00000339: SWAP1 0000033a: SWAP2 0000033b: AND 0000033c: DUP2 0000033d: MSTORE 0000033e: PUSH1 0x20 00000340: ADD 00000341: PUSH2 0x01f2 00000344: JUMP 00000345: JUMPDEST 00000346: CALLVALUE 00000347: DUP1 00000348: ISZERO 00000349: PUSH2 0x0350 0000034c: JUMPI 0000034d: PUSH0 0000034e: DUP1 0000034f: REVERT 00000350: JUMPDEST 00000351: POP 00000352: PUSH2 0x023a 00000355: PUSH1 0x14 00000357: SLOAD 00000358: DUP2 00000359: JUMP 0000035a: JUMPDEST 0000035b: CALLVALUE 0000035c: DUP1 0000035d: ISZERO 0000035e: PUSH2 0x0365 00000361: JUMPI 00000362: PUSH0 00000363: DUP1 00000364: REVERT 00000365: JUMPDEST 00000366: POP 00000367: PUSH2 0x023a 0000036a: PUSH2 0x0374 0000036d: CALLDATASIZE 0000036e: PUSH1 0x04 00000370: PUSH2 0x1ad1 00000373: JUMP 00000374: JUMPDEST 00000375: PUSH1 0x01 00000377: PUSH1 0x01 00000379: PUSH1 0xa0 0000037b: SHL 0000037c: SUB 0000037d: AND 0000037e: PUSH0 0000037f: SWAP1 00000380: DUP2 00000381: MSTORE 00000382: PUSH1 0x20 00000384: DUP2 00000385: SWAP1 00000386: MSTORE 00000387: PUSH1 0x40 00000389: SWAP1 0000038a: KECCAK256 0000038b: SLOAD 0000038c: SWAP1 0000038d: JUMP 0000038e: JUMPDEST 0000038f: CALLVALUE 00000390: DUP1 00000391: ISZERO 00000392: PUSH2 0x0399 00000395: JUMPI 00000396: PUSH0 00000397: DUP1 00000398: REVERT 00000399: JUMPDEST 0000039a: POP 0000039b: PUSH2 0x01cb 0000039e: PUSH2 0x0a4e 000003a1: JUMP 000003a2: JUMPDEST 000003a3: CALLVALUE 000003a4: DUP1 000003a5: ISZERO 000003a6: PUSH2 0x03ad 000003a9: JUMPI 000003aa: PUSH0 000003ab: DUP1 000003ac: REVERT 000003ad: JUMPDEST 000003ae: POP 000003af: PUSH1 0x0e 000003b1: SLOAD 000003b2: PUSH1 0x0f 000003b4: SLOAD 000003b5: PUSH2 0x0281 000003b8: SWAP2 000003b9: SWAP1 000003ba: DUP3 000003bb: JUMP 000003bc: JUMPDEST 000003bd: CALLVALUE 000003be: DUP1 000003bf: ISZERO 000003c0: PUSH2 0x03c7 000003c3: JUMPI 000003c4: PUSH0 000003c5: DUP1 000003c6: REVERT 000003c7: JUMPDEST 000003c8: POP 000003c9: PUSH2 0x01cb 000003cc: PUSH2 0x03d6 000003cf: CALLDATASIZE 000003d0: PUSH1 0x04 000003d2: PUSH2 0x1aec 000003d5: JUMP 000003d6: JUMPDEST 000003d7: PUSH2 0x0a61 000003da: JUMP 000003db: JUMPDEST 000003dc: CALLVALUE 000003dd: DUP1 000003de: ISZERO 000003df: PUSH2 0x03e6 000003e2: JUMPI 000003e3: PUSH0 000003e4: DUP1 000003e5: REVERT 000003e6: JUMPDEST 000003e7: POP 000003e8: PUSH1 0x05 000003ea: SLOAD 000003eb: PUSH1 0x01 000003ed: PUSH1 0x01 000003ef: PUSH1 0xa0 000003f1: SHL 000003f2: SUB 000003f3: AND 000003f4: PUSH2 0x032d 000003f7: JUMP 000003f8: JUMPDEST 000003f9: CALLVALUE 000003fa: DUP1 000003fb: ISZERO 000003fc: PUSH2 0x0403 000003ff: JUMPI 00000400: PUSH0 00000401: DUP1 00000402: REVERT 00000403: JUMPDEST 00000404: POP 00000405: PUSH2 0x01e5 00000408: PUSH2 0x0a6c 0000040b: JUMP 0000040c: JUMPDEST 0000040d: CALLVALUE 0000040e: DUP1 0000040f: ISZERO 00000410: PUSH2 0x0417 00000413: JUMPI 00000414: PUSH0 00000415: DUP1 00000416: REVERT 00000417: JUMPDEST 00000418: POP 00000419: PUSH2 0x01cb 0000041c: PUSH2 0x0426 0000041f: CALLDATASIZE 00000420: PUSH1 0x04 00000422: PUSH2 0x1963 00000425: JUMP 00000426: JUMPDEST 00000427: PUSH2 0x0a7b 0000042a: JUMP 0000042b: JUMPDEST 0000042c: CALLVALUE 0000042d: DUP1 0000042e: ISZERO 0000042f: PUSH2 0x0436 00000432: JUMPI 00000433: PUSH0 00000434: DUP1 00000435: REVERT 00000436: JUMPDEST 00000437: POP 00000438: PUSH2 0x01e5 0000043b: PUSH2 0x0acd 0000043e: JUMP 0000043f: JUMPDEST 00000440: CALLVALUE 00000441: DUP1 00000442: ISZERO 00000443: PUSH2 0x044a 00000446: JUMPI 00000447: PUSH0 00000448: DUP1 00000449: REVERT 0000044a: JUMPDEST 0000044b: POP 0000044c: PUSH2 0x023a 0000044f: PUSH2 0x0459 00000452: CALLDATASIZE 00000453: PUSH1 0x04 00000455: PUSH2 0x1ad1 00000458: JUMP 00000459: JUMPDEST 0000045a: PUSH1 0x01 0000045c: PUSH1 0x01 0000045e: PUSH1 0xa0 00000460: SHL 00000461: SUB 00000462: AND 00000463: PUSH0 00000464: SWAP1 00000465: DUP2 00000466: MSTORE 00000467: PUSH1 0x12 00000469: PUSH1 0x20 0000046b: MSTORE 0000046c: PUSH1 0x40 0000046e: SWAP1 0000046f: KECCAK256 00000470: SLOAD 00000471: SWAP1 00000472: JUMP 00000473: JUMPDEST 00000474: CALLVALUE 00000475: DUP1 00000476: ISZERO 00000477: PUSH2 0x047e 0000047a: JUMPI 0000047b: PUSH0 0000047c: DUP1 0000047d: REVERT 0000047e: JUMPDEST 0000047f: POP 00000480: PUSH2 0x021a 00000483: PUSH2 0x048d 00000486: CALLDATASIZE 00000487: PUSH1 0x04 00000489: PUSH2 0x1963 0000048c: JUMP 0000048d: JUMPDEST 0000048e: PUSH2 0x0b59 00000491: JUMP 00000492: JUMPDEST 00000493: CALLVALUE 00000494: DUP1 00000495: ISZERO 00000496: PUSH2 0x049d 00000499: JUMPI 0000049a: PUSH0 0000049b: DUP1 0000049c: REVERT 0000049d: JUMPDEST 0000049e: POP 0000049f: PUSH1 0x0c 000004a1: SLOAD 000004a2: PUSH2 0x032d 000004a5: SWAP1 000004a6: PUSH1 0x01 000004a8: PUSH1 0x01 000004aa: PUSH1 0xa0 000004ac: SHL 000004ad: SUB 000004ae: AND 000004af: DUP2 000004b0: JUMP 000004b1: JUMPDEST 000004b2: CALLVALUE 000004b3: DUP1 000004b4: ISZERO 000004b5: PUSH2 0x04bc 000004b8: JUMPI 000004b9: PUSH0 000004ba: DUP1 000004bb: REVERT 000004bc: JUMPDEST 000004bd: POP 000004be: PUSH2 0x01cb 000004c1: PUSH2 0x04cb 000004c4: CALLDATASIZE 000004c5: PUSH1 0x04 000004c7: PUSH2 0x1b97 000004ca: JUMP 000004cb: JUMPDEST 000004cc: PUSH2 0x0b66 000004cf: JUMP 000004d0: JUMPDEST 000004d1: CALLVALUE 000004d2: DUP1 000004d3: ISZERO 000004d4: PUSH2 0x04db 000004d7: JUMPI 000004d8: PUSH0 000004d9: DUP1 000004da: REVERT 000004db: JUMPDEST 000004dc: POP 000004dd: PUSH2 0x04ef 000004e0: PUSH2 0x04ea 000004e3: CALLDATASIZE 000004e4: PUSH1 0x04 000004e6: PUSH2 0x1963 000004e9: JUMP 000004ea: JUMPDEST 000004eb: PUSH2 0x0fe1 000004ee: JUMP 000004ef: JUMPDEST 000004f0: PUSH1 0x40 000004f2: DUP1 000004f3: MLOAD 000004f4: DUP3 000004f5: MLOAD 000004f6: DUP2 000004f7: MSTORE 000004f8: PUSH1 0x20 000004fa: DUP1 000004fb: DUP5 000004fc: ADD 000004fd: MLOAD 000004fe: SWAP1 000004ff: DUP3 00000500: ADD 00000501: MSTORE 00000502: SWAP2 00000503: DUP2 00000504: ADD 00000505: MLOAD 00000506: SWAP1 00000507: DUP3 00000508: ADD 00000509: MSTORE 0000050a: PUSH1 0x60 0000050c: ADD 0000050d: PUSH2 0x01f2 00000510: JUMP 00000511: JUMPDEST 00000512: CALLVALUE 00000513: DUP1 00000514: ISZERO 00000515: PUSH2 0x051c 00000518: JUMPI 00000519: PUSH0 0000051a: DUP1 0000051b: REVERT 0000051c: JUMPDEST 0000051d: POP 0000051e: PUSH2 0x023a 00000521: PUSH2 0x052b 00000524: CALLDATASIZE 00000525: PUSH1 0x04 00000527: PUSH2 0x1c53 0000052a: JUMP 0000052b: JUMPDEST 0000052c: PUSH1 0x01 0000052e: PUSH1 0x01 00000530: PUSH1 0xa0 00000532: SHL 00000533: SUB 00000534: SWAP2 00000535: DUP3 00000536: AND 00000537: PUSH0 00000538: SWAP1 00000539: DUP2 0000053a: MSTORE 0000053b: PUSH1 0x01 0000053d: PUSH1 0x20 0000053f: SWAP1 00000540: DUP2 00000541: MSTORE 00000542: PUSH1 0x40 00000544: DUP1 00000545: DUP4 00000546: KECCAK256 00000547: SWAP4 00000548: SWAP1 00000549: SWAP5 0000054a: AND 0000054b: DUP3 0000054c: MSTORE 0000054d: SWAP2 0000054e: SWAP1 0000054f: SWAP2 00000550: MSTORE 00000551: KECCAK256 00000552: SLOAD 00000553: SWAP1 00000554: JUMP 00000555: JUMPDEST 00000556: CALLVALUE 00000557: DUP1 00000558: ISZERO 00000559: PUSH2 0x0560 0000055c: JUMPI 0000055d: PUSH0 0000055e: DUP1 0000055f: REVERT 00000560: JUMPDEST 00000561: POP 00000562: PUSH2 0x023a 00000565: PUSH2 0x056f 00000568: CALLDATASIZE 00000569: PUSH1 0x04 0000056b: PUSH2 0x1c8a 0000056e: JUMP 0000056f: JUMPDEST 00000570: PUSH2 0x104f 00000573: JUMP 00000574: JUMPDEST 00000575: CALLVALUE 00000576: DUP1 00000577: ISZERO 00000578: PUSH2 0x057f 0000057b: JUMPI 0000057c: PUSH0 0000057d: DUP1 0000057e: REVERT 0000057f: JUMPDEST 00000580: POP 00000581: PUSH2 0x023a 00000584: PUSH2 0x058e 00000587: CALLDATASIZE 00000588: PUSH1 0x04 0000058a: PUSH2 0x1963 0000058d: JUMP 0000058e: JUMPDEST 0000058f: PUSH2 0x105a 00000592: JUMP 00000593: JUMPDEST 00000594: PUSH2 0x023a 00000597: PUSH2 0x05a1 0000059a: CALLDATASIZE 0000059b: PUSH1 0x04 0000059d: PUSH2 0x1ad1 000005a0: JUMP 000005a1: JUMPDEST 000005a2: PUSH2 0x05c5 000005a5: JUMP 000005a6: JUMPDEST 000005a7: CALLVALUE 000005a8: DUP1 000005a9: ISZERO 000005aa: PUSH2 0x05b1 000005ad: JUMPI 000005ae: PUSH0 000005af: DUP1 000005b0: REVERT 000005b1: JUMPDEST 000005b2: POP 000005b3: PUSH2 0x01cb 000005b6: PUSH2 0x05c0 000005b9: CALLDATASIZE 000005ba: PUSH1 0x04 000005bc: PUSH2 0x1ad1 000005bf: JUMP 000005c0: JUMPDEST 000005c1: PUSH2 0x111c 000005c4: JUMP 000005c5: JUMPDEST 000005c6: PUSH0 000005c7: PUSH1 0x08 000005c9: SLOAD 000005ca: PUSH1 0x0e 000005cc: PUSH0 000005cd: ADD 000005ce: SLOAD 000005cf: LT 000005d0: PUSH2 0x060c 000005d3: JUMPI 000005d4: PUSH1 0x40 000005d6: MLOAD 000005d7: PUSH3 0x461bcd 000005db: PUSH1 0xe5 000005dd: SHL 000005de: DUP2 000005df: MSTORE 000005e0: PUSH1 0x20 000005e2: PUSH1 0x04 000005e4: DUP3 000005e5: ADD 000005e6: MSTORE 000005e7: PUSH1 0x09 000005e9: PUSH1 0x24 000005eb: DUP3 000005ec: ADD 000005ed: MSTORE 000005ee: PUSH9 0x536f6c64206f757421 000005f8: PUSH1 0xb8 000005fa: SHL 000005fb: PUSH1 0x44 000005fd: DUP3 000005fe: ADD 000005ff: MSTORE 00000600: PUSH1 0x64 00000602: ADD 00000603: JUMPDEST 00000604: PUSH1 0x40 00000606: MLOAD 00000607: DUP1 00000608: SWAP2 00000609: SUB 0000060a: SWAP1 0000060b: REVERT 0000060c: JUMPDEST 0000060d: PUSH1 0x0e 0000060f: SLOAD 00000610: CALLVALUE 00000611: SWAP1 00000612: PUSH0 00000613: SWAP1 00000614: DUP1 00000615: JUMPDEST 00000616: DUP4 00000617: ISZERO 00000618: PUSH2 0x071c 0000061b: JUMPI 0000061c: PUSH1 0x06 0000061e: SLOAD 0000061f: PUSH1 0x0f 00000621: SLOAD 00000622: PUSH1 0x0e 00000624: SLOAD 00000625: PUSH0 00000626: SWAP3 00000627: SWAP2 00000628: PUSH2 0x0630 0000062b: SWAP2 0000062c: PUSH2 0x1cb5 0000062f: JUMP 00000630: JUMPDEST 00000631: PUSH2 0x063a 00000634: SWAP2 00000635: SWAP1 00000636: PUSH2 0x1ccc 00000639: JUMP 0000063a: JUMPDEST 0000063b: SWAP1 0000063c: POP 0000063d: DUP1 0000063e: DUP6 0000063f: GT 00000640: PUSH2 0x0691 00000643: JUMPI 00000644: PUSH1 0x0e 00000646: SLOAD 00000647: PUSH1 0x06 00000649: SLOAD 0000064a: PUSH0 0000064b: SWAP2 0000064c: SWAP1 0000064d: PUSH2 0x0656 00000650: SWAP1 00000651: DUP9 00000652: PUSH2 0x1cb5 00000655: JUMP 00000656: JUMPDEST 00000657: PUSH2 0x0660 0000065a: SWAP2 0000065b: SWAP1 0000065c: PUSH2 0x1ccc 0000065f: JUMP 00000660: JUMPDEST 00000661: SWAP1 00000662: POP 00000663: PUSH0 00000664: SWAP6 00000665: POP 00000666: DUP1 00000667: PUSH1 0x0e 00000669: PUSH1 0x01 0000066b: ADD 0000066c: PUSH0 0000066d: DUP3 0000066e: DUP3 0000066f: SLOAD 00000670: PUSH2 0x0679 00000673: SWAP2 00000674: SWAP1 00000675: PUSH2 0x1ceb 00000678: JUMP 00000679: JUMPDEST 0000067a: SWAP1 0000067b: SWAP2 0000067c: SSTORE 0000067d: POP 0000067e: PUSH2 0x0689 00000681: SWAP1 00000682: POP 00000683: DUP2 00000684: DUP7 00000685: PUSH2 0x1cfe 00000688: JUMP 00000689: JUMPDEST 0000068a: SWAP5 0000068b: POP 0000068c: POP 0000068d: PUSH2 0x06d3 00000690: JUMP 00000691: JUMPDEST 00000692: PUSH2 0x069b 00000695: DUP2 00000696: DUP7 00000697: PUSH2 0x1ceb 0000069a: JUMP 0000069b: JUMPDEST 0000069c: PUSH1 0x0f 0000069e: SLOAD 0000069f: SWAP1 000006a0: SWAP6 000006a1: POP 000006a2: PUSH2 0x06ab 000006a5: SWAP1 000006a6: DUP6 000006a7: PUSH2 0x1cfe 000006aa: JUMP 000006ab: JUMPDEST 000006ac: SWAP4 000006ad: POP 000006ae: PUSH1 0x07 000006b0: SLOAD 000006b1: PUSH1 0x0e 000006b3: PUSH0 000006b4: ADD 000006b5: PUSH0 000006b6: DUP3 000006b7: DUP3 000006b8: SLOAD 000006b9: PUSH2 0x06c2 000006bc: SWAP2 000006bd: SWAP1 000006be: PUSH2 0x1cfe 000006c1: JUMP 000006c2: JUMPDEST 000006c3: SWAP1 000006c4: SWAP2 000006c5: SSTORE 000006c6: POP 000006c7: POP 000006c8: PUSH1 0x09 000006ca: SLOAD 000006cb: PUSH1 0x0f 000006cd: SSTORE 000006ce: PUSH1 0x0e 000006d0: SLOAD 000006d1: SWAP2 000006d2: POP 000006d3: JUMPDEST 000006d4: PUSH1 0x08 000006d6: SLOAD 000006d7: PUSH1 0x0e 000006d9: SLOAD 000006da: LT 000006db: PUSH2 0x0716 000006de: JUMPI 000006df: PUSH1 0x40 000006e1: MLOAD 000006e2: PUSH3 0x461bcd 000006e6: PUSH1 0xe5 000006e8: SHL 000006e9: DUP2 000006ea: MSTORE 000006eb: PUSH1 0x20 000006ed: PUSH1 0x04 000006ef: DUP3 000006f0: ADD 000006f1: MSTORE 000006f2: PUSH1 0x0d 000006f4: PUSH1 0x24 000006f6: DUP3 000006f7: ADD 000006f8: MSTORE 000006f9: PUSH13 0x119d5b99081cdbdb19081bdd5d 00000707: PUSH1 0x9a 00000709: SHL 0000070a: PUSH1 0x44 0000070c: DUP3 0000070d: ADD 0000070e: MSTORE 0000070f: PUSH1 0x64 00000711: ADD 00000712: PUSH2 0x0603 00000715: JUMP 00000716: JUMPDEST 00000717: POP 00000718: PUSH2 0x0615 0000071b: JUMP 0000071c: JUMPDEST 0000071d: PUSH1 0x0c 0000071f: SLOAD 00000720: PUSH2 0x0733 00000723: SWAP1 00000724: PUSH1 0x01 00000726: PUSH1 0x01 00000728: PUSH1 0xa0 0000072a: SHL 0000072b: SUB 0000072c: AND 0000072d: CALLER 0000072e: DUP6 0000072f: PUSH2 0x1159 00000732: JUMP 00000733: JUMPDEST 00000734: PUSH1 0x40 00000736: DUP1 00000737: MLOAD 00000738: DUP4 00000739: DUP2 0000073a: MSTORE 0000073b: PUSH1 0x20 0000073d: DUP2 0000073e: ADD 0000073f: DUP4 00000740: SWAP1 00000741: MSTORE 00000742: CALLVALUE 00000743: DUP2 00000744: DUP4 00000745: ADD 00000746: MSTORE 00000747: PUSH1 0x60 00000749: DUP2 0000074a: ADD 0000074b: DUP6 0000074c: SWAP1 0000074d: MSTORE 0000074e: PUSH1 0x01 00000750: PUSH1 0x01 00000752: PUSH1 0xa0 00000754: SHL 00000755: SUB 00000756: DUP9 00000757: AND 00000758: PUSH1 0x80 0000075a: DUP3 0000075b: ADD 0000075c: MSTORE 0000075d: SWAP1 0000075e: MLOAD 0000075f: CALLER 00000760: SWAP2 00000761: PUSH32 0xa883f846ecd22b33737d7e8fea7aa17c7d937eec2aaad4a507dcb2ce9bef05c8 00000782: SWAP2 00000783: SWAP1 00000784: DUP2 00000785: SWAP1 00000786: SUB 00000787: PUSH1 0xa0 00000789: ADD 0000078a: SWAP1 0000078b: LOG2 0000078c: POP 0000078d: SWAP1 0000078e: SWAP5 0000078f: SWAP4 00000790: POP 00000791: POP 00000792: POP 00000793: POP 00000794: JUMP 00000795: JUMPDEST 00000796: PUSH1 0x60 00000798: PUSH1 0x03 0000079a: DUP1 0000079b: SLOAD 0000079c: PUSH2 0x07a4 0000079f: SWAP1 000007a0: PUSH2 0x1d11 000007a3: JUMP 000007a4: JUMPDEST 000007a5: DUP1 000007a6: PUSH1 0x1f 000007a8: ADD 000007a9: PUSH1 0x20 000007ab: DUP1 000007ac: SWAP2 000007ad: DIV 000007ae: MUL 000007af: PUSH1 0x20 000007b1: ADD 000007b2: PUSH1 0x40 000007b4: MLOAD 000007b5: SWAP1 000007b6: DUP2 000007b7: ADD 000007b8: PUSH1 0x40 000007ba: MSTORE 000007bb: DUP1 000007bc: SWAP3 000007bd: SWAP2 000007be: SWAP1 000007bf: DUP2 000007c0: DUP2 000007c1: MSTORE 000007c2: PUSH1 0x20 000007c4: ADD 000007c5: DUP3 000007c6: DUP1 000007c7: SLOAD 000007c8: PUSH2 0x07d0 000007cb: SWAP1 000007cc: PUSH2 0x1d11 000007cf: JUMP 000007d0: JUMPDEST 000007d1: DUP1 000007d2: ISZERO 000007d3: PUSH2 0x081b 000007d6: JUMPI 000007d7: DUP1 000007d8: PUSH1 0x1f 000007da: LT 000007db: PUSH2 0x07f2 000007de: JUMPI 000007df: PUSH2 0x0100 000007e2: DUP1 000007e3: DUP4 000007e4: SLOAD 000007e5: DIV 000007e6: MUL 000007e7: DUP4 000007e8: MSTORE 000007e9: SWAP2 000007ea: PUSH1 0x20 000007ec: ADD 000007ed: SWAP2 000007ee: PUSH2 0x081b 000007f1: JUMP 000007f2: JUMPDEST 000007f3: DUP3 000007f4: ADD 000007f5: SWAP2 000007f6: SWAP1 000007f7: PUSH0 000007f8: MSTORE 000007f9: PUSH1 0x20 000007fb: PUSH0 000007fc: KECCAK256 000007fd: SWAP1 000007fe: JUMPDEST 000007ff: DUP2 00000800: SLOAD 00000801: DUP2 00000802: MSTORE 00000803: SWAP1 00000804: PUSH1 0x01 00000806: ADD 00000807: SWAP1 00000808: PUSH1 0x20 0000080a: ADD 0000080b: DUP1 0000080c: DUP4 0000080d: GT 0000080e: PUSH2 0x07fe 00000811: JUMPI 00000812: DUP3 00000813: SWAP1 00000814: SUB 00000815: PUSH1 0x1f 00000817: AND 00000818: DUP3 00000819: ADD 0000081a: SWAP2 0000081b: JUMPDEST 0000081c: POP 0000081d: POP 0000081e: POP 0000081f: POP 00000820: POP 00000821: SWAP1 00000822: POP 00000823: SWAP1 00000824: JUMP 00000825: JUMPDEST 00000826: PUSH0 00000827: CALLER 00000828: PUSH2 0x0832 0000082b: DUP2 0000082c: DUP6 0000082d: DUP6 0000082e: PUSH2 0x11b6 00000831: JUMP 00000832: JUMPDEST 00000833: PUSH1 0x01 00000835: SWAP2 00000836: POP 00000837: POP 00000838: JUMPDEST 00000839: SWAP3 0000083a: SWAP2 0000083b: POP 0000083c: POP 0000083d: JUMP 0000083e: JUMPDEST 0000083f: PUSH0 00000840: CALLER 00000841: PUSH2 0x084b 00000844: DUP6 00000845: DUP3 00000846: DUP6 00000847: PUSH2 0x11c3 0000084a: JUMP 0000084b: JUMPDEST 0000084c: PUSH2 0x0856 0000084f: DUP6 00000850: DUP6 00000851: DUP6 00000852: PUSH2 0x1159 00000855: JUMP 00000856: JUMPDEST 00000857: POP 00000858: PUSH1 0x01 0000085a: SWAP5 0000085b: SWAP4 0000085c: POP 0000085d: POP 0000085e: POP 0000085f: POP 00000860: JUMP 00000861: JUMPDEST 00000862: PUSH2 0x0869 00000865: PUSH2 0x123f 00000868: JUMP 00000869: JUMPDEST 0000086a: PUSH1 0x0b 0000086c: PUSH2 0x0875 0000086f: DUP3 00000870: DUP3 00000871: PUSH2 0x1d8e 00000874: JUMP 00000875: JUMPDEST 00000876: POP 00000877: POP 00000878: JUMP 00000879: JUMPDEST 0000087a: PUSH0 0000087b: DUP1 0000087c: PUSH2 0x0885 0000087f: DUP5 00000880: DUP5 00000881: PUSH2 0x126c 00000884: JUMP 00000885: JUMPDEST 00000886: SWAP1 00000887: POP 00000888: PUSH0 00000889: PUSH3 0x015180 0000088d: DUP3 0000088e: PUSH0 0000088f: ADD 00000890: SLOAD 00000891: TIMESTAMP 00000892: PUSH2 0x089b 00000895: SWAP2 00000896: SWAP1 00000897: PUSH2 0x1ceb 0000089a: JUMP 0000089b: JUMPDEST 0000089c: PUSH2 0x08a5 0000089f: SWAP2 000008a0: SWAP1 000008a1: PUSH2 0x1ccc 000008a4: JUMP 000008a5: JUMPDEST 000008a6: SWAP1 000008a7: POP 000008a8: PUSH2 0x0e42 000008ab: DUP2 000008ac: GT 000008ad: ISZERO 000008ae: PUSH2 0x08ea 000008b1: JUMPI 000008b2: PUSH1 0x40 000008b4: MLOAD 000008b5: PUSH3 0x461bcd 000008b9: PUSH1 0xe5 000008bb: SHL 000008bc: DUP2 000008bd: MSTORE 000008be: PUSH1 0x20 000008c0: PUSH1 0x04 000008c2: DUP3 000008c3: ADD 000008c4: MSTORE 000008c5: PUSH1 0x0e 000008c7: PUSH1 0x24 000008c9: DUP3 000008ca: ADD 000008cb: MSTORE 000008cc: PUSH14 0x27379036b7b9329027b83a34b7b7 000008db: PUSH1 0x91 000008dd: SHL 000008de: PUSH1 0x44 000008e0: DUP3 000008e1: ADD 000008e2: MSTORE 000008e3: PUSH1 0x64 000008e5: ADD 000008e6: PUSH2 0x0603 000008e9: JUMP 000008ea: JUMPDEST 000008eb: DUP2 000008ec: PUSH1 0x02 000008ee: ADD 000008ef: SLOAD 000008f0: DUP3 000008f1: PUSH1 0x01 000008f3: ADD 000008f4: SLOAD 000008f5: LT 000008f6: ISZERO 000008f7: PUSH2 0x0933 000008fa: JUMPI 000008fb: PUSH1 0x40 000008fd: MLOAD 000008fe: PUSH3 0x461bcd 00000902: PUSH1 0xe5 00000904: SHL 00000905: DUP2 00000906: MSTORE 00000907: PUSH1 0x20 00000909: PUSH1 0x04 0000090b: DUP3 0000090c: ADD 0000090d: MSTORE 0000090e: PUSH1 0x0e 00000910: PUSH1 0x24 00000912: DUP3 00000913: ADD 00000914: MSTORE 00000915: PUSH14 0x27379036b7b9329037b83a34b7b7 00000924: PUSH1 0x91 00000926: SHL 00000927: PUSH1 0x44 00000929: DUP3 0000092a: ADD 0000092b: MSTORE 0000092c: PUSH1 0x64 0000092e: ADD 0000092f: PUSH2 0x0603 00000932: JUMP 00000933: JUMPDEST 00000934: DUP1 00000935: PUSH2 0x0e42 00000938: SUB 00000939: PUSH2 0x0959 0000093c: JUMPI 0000093d: DUP2 0000093e: PUSH1 0x02 00000940: ADD 00000941: SLOAD 00000942: DUP3 00000943: PUSH1 0x01 00000945: ADD 00000946: SLOAD 00000947: PUSH2 0x0950 0000094a: SWAP2 0000094b: SWAP1 0000094c: PUSH2 0x1ceb 0000094f: JUMP 00000950: JUMPDEST 00000951: SWAP3 00000952: POP 00000953: POP 00000954: POP 00000955: PUSH2 0x0838 00000958: JUMP 00000959: JUMPDEST 0000095a: DUP2 0000095b: PUSH1 0x02 0000095d: ADD 0000095e: SLOAD 0000095f: PUSH2 0x0e42 00000962: DUP3 00000963: DUP5 00000964: PUSH1 0x01 00000966: ADD 00000967: SLOAD 00000968: PUSH2 0x0971 0000096b: SWAP2 0000096c: SWAP1 0000096d: PUSH2 0x1cb5 00000970: JUMP 00000971: JUMPDEST 00000972: PUSH2 0x097b 00000975: SWAP2 00000976: SWAP1 00000977: PUSH2 0x1ccc 0000097a: JUMP 0000097b: JUMPDEST 0000097c: PUSH2 0x0985 0000097f: SWAP2 00000980: SWAP1 00000981: PUSH2 0x1ceb 00000984: JUMP 00000985: JUMPDEST 00000986: SWAP6 00000987: SWAP5 00000988: POP 00000989: POP 0000098a: POP 0000098b: POP 0000098c: POP 0000098d: JUMP 0000098e: JUMPDEST 0000098f: DUP3 00000990: PUSH1 0x01 00000992: PUSH1 0x01 00000994: PUSH1 0xa0 00000996: SHL 00000997: SUB 00000998: AND 00000999: PUSH4 0x8da5cb5b 0000099e: PUSH1 0x40 000009a0: MLOAD 000009a1: DUP2 000009a2: PUSH4 0xffffffff 000009a7: AND 000009a8: PUSH1 0xe0 000009aa: SHL 000009ab: DUP2 000009ac: MSTORE 000009ad: PUSH1 0x04 000009af: ADD 000009b0: PUSH1 0x20 000009b2: PUSH1 0x40 000009b4: MLOAD 000009b5: DUP1 000009b6: DUP4 000009b7: SUB 000009b8: DUP2 000009b9: DUP7 000009ba: GAS 000009bb: STATICCALL 000009bc: ISZERO 000009bd: DUP1 000009be: ISZERO 000009bf: PUSH2 0x09ca 000009c2: JUMPI 000009c3: RETURNDATASIZE 000009c4: PUSH0 000009c5: DUP1 000009c6: RETURNDATACOPY 000009c7: RETURNDATASIZE 000009c8: PUSH0 000009c9: REVERT 000009ca: JUMPDEST 000009cb: POP 000009cc: POP 000009cd: POP 000009ce: POP 000009cf: PUSH1 0x40 000009d1: MLOAD 000009d2: RETURNDATASIZE 000009d3: PUSH1 0x1f 000009d5: NOT 000009d6: PUSH1 0x1f 000009d8: DUP3 000009d9: ADD 000009da: AND 000009db: DUP3 000009dc: ADD 000009dd: DUP1 000009de: PUSH1 0x40 000009e0: MSTORE 000009e1: POP 000009e2: DUP2 000009e3: ADD 000009e4: SWAP1 000009e5: PUSH2 0x09ee 000009e8: SWAP2 000009e9: SWAP1 000009ea: PUSH2 0x1e4a 000009ed: JUMP 000009ee: JUMPDEST 000009ef: PUSH1 0x01 000009f1: PUSH1 0x01 000009f3: PUSH1 0xa0 000009f5: SHL 000009f6: SUB 000009f7: AND 000009f8: CALLER 000009f9: PUSH1 0x01 000009fb: PUSH1 0x01 000009fd: PUSH1 0xa0 000009ff: SHL 00000a00: SUB 00000a01: AND 00000a02: EQ 00000a03: PUSH2 0x0a3e 00000a06: JUMPI 00000a07: PUSH1 0x40 00000a09: MLOAD 00000a0a: PUSH3 0x461bcd 00000a0e: PUSH1 0xe5 00000a10: SHL 00000a11: DUP2 00000a12: MSTORE 00000a13: PUSH1 0x20 00000a15: PUSH1 0x04 00000a17: DUP3 00000a18: ADD 00000a19: MSTORE 00000a1a: PUSH1 0x0d 00000a1c: PUSH1 0x24 00000a1e: DUP3 00000a1f: ADD 00000a20: MSTORE 00000a21: PUSH13 0x2932b8bab4b9329037bbb732b9 00000a2f: PUSH1 0x99 00000a31: SHL 00000a32: PUSH1 0x44 00000a34: DUP3 00000a35: ADD 00000a36: MSTORE 00000a37: PUSH1 0x64 00000a39: ADD 00000a3a: PUSH2 0x0603 00000a3d: JUMP 00000a3e: JUMPDEST 00000a3f: PUSH2 0x0a49 00000a42: DUP4 00000a43: DUP4 00000a44: DUP4 00000a45: PUSH2 0x12cf 00000a48: JUMP 00000a49: JUMPDEST 00000a4a: POP 00000a4b: POP 00000a4c: POP 00000a4d: JUMP 00000a4e: JUMPDEST 00000a4f: PUSH2 0x0a56 00000a52: PUSH2 0x123f 00000a55: JUMP 00000a56: JUMPDEST 00000a57: PUSH2 0x0a5f 00000a5a: PUSH0 00000a5b: PUSH2 0x13a9 00000a5e: JUMP 00000a5f: JUMPDEST 00000a60: JUMP 00000a61: JUMPDEST 00000a62: PUSH2 0x0875 00000a65: CALLER 00000a66: DUP4 00000a67: DUP4 00000a68: PUSH2 0x12cf 00000a6b: JUMP 00000a6c: JUMPDEST 00000a6d: PUSH1 0x60 00000a6f: PUSH1 0x04 00000a71: DUP1 00000a72: SLOAD 00000a73: PUSH2 0x07a4 00000a76: SWAP1 00000a77: PUSH2 0x1d11 00000a7a: JUMP 00000a7b: JUMPDEST 00000a7c: PUSH1 0x0c 00000a7e: SLOAD 00000a7f: PUSH1 0x01 00000a81: PUSH1 0x01 00000a83: PUSH1 0xa0 00000a85: SHL 00000a86: SUB 00000a87: AND 00000a88: CALLER 00000a89: EQ 00000a8a: PUSH2 0x0ac3 00000a8d: JUMPI 00000a8e: PUSH1 0x40 00000a90: MLOAD 00000a91: PUSH3 0x461bcd 00000a95: PUSH1 0xe5 00000a97: SHL 00000a98: DUP2 00000a99: MSTORE 00000a9a: PUSH1 0x20 00000a9c: PUSH1 0x04 00000a9e: DUP3 00000a9f: ADD 00000aa0: MSTORE 00000aa1: PUSH1 0x0b 00000aa3: PUSH1 0x24 00000aa5: DUP3 00000aa6: ADD 00000aa7: MSTORE 00000aa8: PUSH11 0x27b7363c90313937b5b2b9 00000ab4: PUSH1 0xa9 00000ab6: SHL 00000ab7: PUSH1 0x44 00000ab9: DUP3 00000aba: ADD 00000abb: MSTORE 00000abc: PUSH1 0x64 00000abe: ADD 00000abf: PUSH2 0x0603 00000ac2: JUMP 00000ac3: JUMPDEST 00000ac4: PUSH2 0x0875 00000ac7: DUP3 00000ac8: DUP3 00000ac9: PUSH2 0x13fa 00000acc: JUMP 00000acd: JUMPDEST 00000ace: PUSH1 0x0b 00000ad0: DUP1 00000ad1: SLOAD 00000ad2: PUSH2 0x0ada 00000ad5: SWAP1 00000ad6: PUSH2 0x1d11 00000ad9: JUMP 00000ada: JUMPDEST 00000adb: DUP1 00000adc: PUSH1 0x1f 00000ade: ADD 00000adf: PUSH1 0x20 00000ae1: DUP1 00000ae2: SWAP2 00000ae3: DIV 00000ae4: MUL 00000ae5: PUSH1 0x20 00000ae7: ADD 00000ae8: PUSH1 0x40 00000aea: MLOAD 00000aeb: SWAP1 00000aec: DUP2 00000aed: ADD 00000aee: PUSH1 0x40 00000af0: MSTORE 00000af1: DUP1 00000af2: SWAP3 00000af3: SWAP2 00000af4: SWAP1 00000af5: DUP2 00000af6: DUP2 00000af7: MSTORE 00000af8: PUSH1 0x20 00000afa: ADD 00000afb: DUP3 00000afc: DUP1 00000afd: SLOAD 00000afe: PUSH2 0x0b06 00000b01: SWAP1 00000b02: PUSH2 0x1d11 00000b05: JUMP 00000b06: JUMPDEST 00000b07: DUP1 00000b08: ISZERO 00000b09: PUSH2 0x0b51 00000b0c: JUMPI 00000b0d: DUP1 00000b0e: PUSH1 0x1f 00000b10: LT 00000b11: PUSH2 0x0b28 00000b14: JUMPI 00000b15: PUSH2 0x0100 00000b18: DUP1 00000b19: DUP4 00000b1a: SLOAD 00000b1b: DIV 00000b1c: MUL 00000b1d: DUP4 00000b1e: MSTORE 00000b1f: SWAP2 00000b20: PUSH1 0x20 00000b22: ADD 00000b23: SWAP2 00000b24: PUSH2 0x0b51 00000b27: JUMP 00000b28: JUMPDEST 00000b29: DUP3 00000b2a: ADD 00000b2b: SWAP2 00000b2c: SWAP1 00000b2d: PUSH0 00000b2e: MSTORE 00000b2f: PUSH1 0x20 00000b31: PUSH0 00000b32: KECCAK256 00000b33: SWAP1 00000b34: JUMPDEST 00000b35: DUP2 00000b36: SLOAD 00000b37: DUP2 00000b38: MSTORE 00000b39: SWAP1 00000b3a: PUSH1 0x01 00000b3c: ADD 00000b3d: SWAP1 00000b3e: PUSH1 0x20 00000b40: ADD 00000b41: DUP1 00000b42: DUP4 00000b43: GT 00000b44: PUSH2 0x0b34 00000b47: JUMPI 00000b48: DUP3 00000b49: SWAP1 00000b4a: SUB 00000b4b: PUSH1 0x1f 00000b4d: AND 00000b4e: DUP3 00000b4f: ADD 00000b50: SWAP2 00000b51: JUMPDEST 00000b52: POP 00000b53: POP 00000b54: POP 00000b55: POP 00000b56: POP 00000b57: DUP2 00000b58: JUMP 00000b59: JUMPDEST 00000b5a: PUSH0 00000b5b: CALLER 00000b5c: PUSH2 0x0832 00000b5f: DUP2 00000b60: DUP6 00000b61: DUP6 00000b62: PUSH2 0x1159 00000b65: JUMP 00000b66: JUMPDEST 00000b67: PUSH2 0x0b6e 00000b6a: PUSH2 0x123f 00000b6d: JUMP 00000b6e: JUMPDEST 00000b6f: PUSH0 00000b70: DUP3 00000b71: MLOAD 00000b72: GT 00000b73: PUSH2 0x0bb2 00000b76: JUMPI 00000b77: PUSH1 0x40 00000b79: MLOAD 00000b7a: PUSH3 0x461bcd 00000b7e: PUSH1 0xe5 00000b80: SHL 00000b81: DUP2 00000b82: MSTORE 00000b83: PUSH1 0x20 00000b85: PUSH1 0x04 00000b87: DUP3 00000b88: ADD 00000b89: MSTORE 00000b8a: PUSH1 0x11 00000b8c: PUSH1 0x24 00000b8e: DUP3 00000b8f: ADD 00000b90: MSTORE 00000b91: PUSH17 0x436f6e7472696275746f7220656d707479 00000ba3: PUSH1 0x78 00000ba5: SHL 00000ba6: PUSH1 0x44 00000ba8: DUP3 00000ba9: ADD 00000baa: MSTORE 00000bab: PUSH1 0x64 00000bad: ADD 00000bae: PUSH2 0x0603 00000bb1: JUMP 00000bb2: JUMPDEST 00000bb3: DUP1 00000bb4: MLOAD 00000bb5: DUP3 00000bb6: MLOAD 00000bb7: EQ 00000bb8: PUSH2 0x0bf6 00000bbb: JUMPI 00000bbc: PUSH1 0x40 00000bbe: MLOAD 00000bbf: PUSH3 0x461bcd 00000bc3: PUSH1 0xe5 00000bc5: SHL 00000bc6: DUP2 00000bc7: MSTORE 00000bc8: PUSH1 0x20 00000bca: PUSH1 0x04 00000bcc: DUP3 00000bcd: ADD 00000bce: MSTORE 00000bcf: PUSH1 0x10 00000bd1: PUSH1 0x24 00000bd3: DUP3 00000bd4: ADD 00000bd5: MSTORE 00000bd6: PUSH16 0x13195b99dd1a081b9bdd08195c5d585b 00000be7: PUSH1 0x82 00000be9: SHL 00000bea: PUSH1 0x44 00000bec: DUP3 00000bed: ADD 00000bee: MSTORE 00000bef: PUSH1 0x64 00000bf1: ADD 00000bf2: PUSH2 0x0603 00000bf5: JUMP 00000bf6: JUMPDEST 00000bf7: PUSH0 00000bf8: DUP1 00000bf9: JUMPDEST 00000bfa: DUP3 00000bfb: MLOAD 00000bfc: DUP2 00000bfd: LT 00000bfe: ISZERO 00000bff: PUSH2 0x0c92 00000c02: JUMPI 00000c03: PUSH0 00000c04: DUP4 00000c05: DUP3 00000c06: DUP2 00000c07: MLOAD 00000c08: DUP2 00000c09: LT 00000c0a: PUSH2 0x0c15 00000c0d: JUMPI 00000c0e: PUSH2 0x0c15 00000c11: PUSH2 0x1e65 00000c14: JUMP 00000c15: JUMPDEST 00000c16: PUSH1 0x20 00000c18: MUL 00000c19: PUSH1 0x20 00000c1b: ADD 00000c1c: ADD 00000c1d: MLOAD 00000c1e: GT 00000c1f: PUSH2 0x0c59 00000c22: JUMPI 00000c23: PUSH1 0x40 00000c25: MLOAD 00000c26: PUSH3 0x461bcd 00000c2a: PUSH1 0xe5 00000c2c: SHL 00000c2d: DUP2 00000c2e: MSTORE 00000c2f: PUSH1 0x20 00000c31: PUSH1 0x04 00000c33: DUP3 00000c34: ADD 00000c35: MSTORE 00000c36: PUSH1 0x0c 00000c38: PUSH1 0x24 00000c3a: DUP3 00000c3b: ADD 00000c3c: MSTORE 00000c3d: PUSH12 0x05175616e74697479203e203 00000c4a: PUSH1 0xa4 00000c4c: SHL 00000c4d: PUSH1 0x44 00000c4f: DUP3 00000c50: ADD 00000c51: MSTORE 00000c52: PUSH1 0x64 00000c54: ADD 00000c55: PUSH2 0x0603 00000c58: JUMP 00000c59: JUMPDEST 00000c5a: DUP3 00000c5b: DUP2 00000c5c: DUP2 00000c5d: MLOAD 00000c5e: DUP2 00000c5f: LT 00000c60: PUSH2 0x0c6b 00000c63: JUMPI 00000c64: PUSH2 0x0c6b 00000c67: PUSH2 0x1e65 00000c6a: JUMP 00000c6b: JUMPDEST 00000c6c: PUSH1 0x20 00000c6e: MUL 00000c6f: PUSH1 0x20 00000c71: ADD 00000c72: ADD 00000c73: MLOAD 00000c74: DUP3 00000c75: PUSH2 0x0c7e 00000c78: SWAP2 00000c79: SWAP1 00000c7a: PUSH2 0x1cfe 00000c7d: JUMP 00000c7e: JUMPDEST 00000c7f: SWAP2 00000c80: POP 00000c81: DUP1 00000c82: PUSH2 0x0c8a 00000c85: DUP2 00000c86: PUSH2 0x1e79 00000c89: JUMP 00000c8a: JUMPDEST 00000c8b: SWAP2 00000c8c: POP 00000c8d: POP 00000c8e: PUSH2 0x0bf9 00000c91: JUMP 00000c92: JUMPDEST 00000c93: POP 00000c94: PUSH1 0x11 00000c96: SLOAD 00000c97: PUSH2 0x0ca0 00000c9a: SWAP1 00000c9b: DUP3 00000c9c: PUSH2 0x1cfe 00000c9f: JUMP 00000ca0: JUMPDEST 00000ca1: PUSH1 0x10 00000ca3: SLOAD 00000ca4: LT 00000ca5: ISZERO 00000ca6: PUSH2 0x0ce7 00000ca9: JUMPI 00000caa: PUSH1 0x40 00000cac: MLOAD 00000cad: PUSH3 0x461bcd 00000cb1: PUSH1 0xe5 00000cb3: SHL 00000cb4: DUP2 00000cb5: MSTORE 00000cb6: PUSH1 0x20 00000cb8: PUSH1 0x04 00000cba: DUP3 00000cbb: ADD 00000cbc: MSTORE 00000cbd: PUSH1 0x13 00000cbf: PUSH1 0x24 00000cc1: DUP3 00000cc2: ADD 00000cc3: MSTORE 00000cc4: PUSH19 0x24b739bab33334b1b4b2b73a1037b83a34b7b7 00000cd8: PUSH1 0x69 00000cda: SHL 00000cdb: PUSH1 0x44 00000cdd: DUP3 00000cde: ADD 00000cdf: MSTORE 00000ce0: PUSH1 0x64 00000ce2: ADD 00000ce3: PUSH2 0x0603 00000ce6: JUMP 00000ce7: JUMPDEST 00000ce8: PUSH0 00000ce9: PUSH4 0x01e13380 00000cee: PUSH1 0x14 00000cf0: SLOAD 00000cf1: TIMESTAMP 00000cf2: PUSH2 0x0cfb 00000cf5: SWAP2 00000cf6: SWAP1 00000cf7: PUSH2 0x1ceb 00000cfa: JUMP 00000cfb: JUMPDEST 00000cfc: PUSH2 0x0d05 00000cff: SWAP2 00000d00: SWAP1 00000d01: PUSH2 0x1ccc 00000d04: JUMP 00000d05: JUMPDEST 00000d06: PUSH2 0x0d10 00000d09: SWAP1 00000d0a: PUSH1 0x01 00000d0c: PUSH2 0x1cfe 00000d0f: JUMP 00000d10: JUMPDEST 00000d11: SWAP1 00000d12: POP 00000d13: PUSH1 0x0a 00000d15: DUP2 00000d16: GT 00000d17: ISZERO 00000d18: PUSH2 0x0d54 00000d1b: JUMPI 00000d1c: PUSH1 0x40 00000d1e: MLOAD 00000d1f: PUSH3 0x461bcd 00000d23: PUSH1 0xe5 00000d25: SHL 00000d26: DUP2 00000d27: MSTORE 00000d28: PUSH1 0x20 00000d2a: PUSH1 0x04 00000d2c: DUP3 00000d2d: ADD 00000d2e: MSTORE 00000d2f: PUSH1 0x0e 00000d31: PUSH1 0x24 00000d33: DUP3 00000d34: ADD 00000d35: MSTORE 00000d36: PUSH14 0x4e6f206d6f726520736861726573 00000d45: PUSH1 0x90 00000d47: SHL 00000d48: PUSH1 0x44 00000d4a: DUP3 00000d4b: ADD 00000d4c: MSTORE 00000d4d: PUSH1 0x64 00000d4f: ADD 00000d50: PUSH2 0x0603 00000d53: JUMP 00000d54: JUMPDEST 00000d55: PUSH0 00000d56: PUSH2 0x0d62 00000d59: DUP3 00000d5a: PUSH3 0x0186a0 00000d5e: PUSH2 0x1cb5 00000d61: JUMP 00000d62: JUMPDEST 00000d63: PUSH2 0x0d74 00000d66: SWAP1 00000d67: PUSH8 0x0de0b6b3a7640000 00000d70: PUSH2 0x1cb5 00000d73: JUMP 00000d74: JUMPDEST 00000d75: PUSH1 0x11 00000d77: SLOAD 00000d78: SWAP1 00000d79: SWAP2 00000d7a: POP 00000d7b: DUP2 00000d7c: SWAP1 00000d7d: PUSH2 0x0d86 00000d80: SWAP1 00000d81: DUP6 00000d82: PUSH2 0x1cfe 00000d85: JUMP 00000d86: JUMPDEST 00000d87: GT 00000d88: ISZERO 00000d89: PUSH2 0x0dc6 00000d8c: JUMPI 00000d8d: PUSH1 0x40 00000d8f: MLOAD 00000d90: PUSH3 0x461bcd 00000d94: PUSH1 0xe5 00000d96: SHL 00000d97: DUP2 00000d98: MSTORE 00000d99: PUSH1 0x20 00000d9b: PUSH1 0x04 00000d9d: DUP3 00000d9e: ADD 00000d9f: MSTORE 00000da0: PUSH1 0x0f 00000da2: PUSH1 0x24 00000da4: DUP3 00000da5: ADD 00000da6: MSTORE 00000da7: PUSH15 0x189818259032bb32b93c903cb2b0b9 00000db7: PUSH1 0x89 00000db9: SHL 00000dba: PUSH1 0x44 00000dbc: DUP3 00000dbd: ADD 00000dbe: MSTORE 00000dbf: PUSH1 0x64 00000dc1: ADD 00000dc2: PUSH2 0x0603 00000dc5: JUMP 00000dc6: JUMPDEST 00000dc7: DUP3 00000dc8: PUSH1 0x10 00000dca: PUSH1 0x01 00000dcc: ADD 00000dcd: PUSH0 00000dce: DUP3 00000dcf: DUP3 00000dd0: SLOAD 00000dd1: PUSH2 0x0dda 00000dd4: SWAP2 00000dd5: SWAP1 00000dd6: PUSH2 0x1cfe 00000dd9: JUMP 00000dda: JUMPDEST 00000ddb: SWAP1 00000ddc: SWAP2 00000ddd: SSTORE 00000dde: POP 00000ddf: PUSH0 00000de0: SWAP1 00000de1: POP 00000de2: JUMPDEST 00000de3: DUP6 00000de4: MLOAD 00000de5: DUP2 00000de6: LT 00000de7: ISZERO 00000de8: PUSH2 0x0fd9 00000deb: JUMPI 00000dec: PUSH0 00000ded: PUSH1 0x10 00000def: PUSH1 0x02 00000df1: ADD 00000df2: PUSH0 00000df3: DUP9 00000df4: DUP5 00000df5: DUP2 00000df6: MLOAD 00000df7: DUP2 00000df8: LT 00000df9: PUSH2 0x0e04 00000dfc: JUMPI 00000dfd: PUSH2 0x0e04 00000e00: PUSH2 0x1e65 00000e03: JUMP 00000e04: JUMPDEST 00000e05: PUSH1 0x20 00000e07: MUL 00000e08: PUSH1 0x20 00000e0a: ADD 00000e0b: ADD 00000e0c: MLOAD 00000e0d: PUSH1 0x01 00000e0f: PUSH1 0x01 00000e11: PUSH1 0xa0 00000e13: SHL 00000e14: SUB 00000e15: AND 00000e16: PUSH1 0x01 00000e18: PUSH1 0x01 00000e1a: PUSH1 0xa0 00000e1c: SHL 00000e1d: SUB 00000e1e: AND 00000e1f: DUP2 00000e20: MSTORE 00000e21: PUSH1 0x20 00000e23: ADD 00000e24: SWAP1 00000e25: DUP2 00000e26: MSTORE 00000e27: PUSH1 0x20 00000e29: ADD 00000e2a: PUSH0 00000e2b: KECCAK256 00000e2c: SLOAD 00000e2d: SWAP1 00000e2e: POP 00000e2f: PUSH0 00000e30: DUP2 00000e31: PUSH1 0x01 00000e33: PUSH2 0x0e3c 00000e36: SWAP2 00000e37: SWAP1 00000e38: PUSH2 0x1cfe 00000e3b: JUMP 00000e3c: JUMPDEST 00000e3d: SWAP1 00000e3e: POP 00000e3f: PUSH0 00000e40: PUSH1 0x10 00000e42: PUSH1 0x03 00000e44: ADD 00000e45: PUSH0 00000e46: DUP11 00000e47: DUP7 00000e48: DUP2 00000e49: MLOAD 00000e4a: DUP2 00000e4b: LT 00000e4c: PUSH2 0x0e57 00000e4f: JUMPI 00000e50: PUSH2 0x0e57 00000e53: PUSH2 0x1e65 00000e56: JUMP 00000e57: JUMPDEST 00000e58: PUSH1 0x20 00000e5a: MUL 00000e5b: PUSH1 0x20 00000e5d: ADD 00000e5e: ADD 00000e5f: MLOAD 00000e60: PUSH1 0x01 00000e62: PUSH1 0x01 00000e64: PUSH1 0xa0 00000e66: SHL 00000e67: SUB 00000e68: AND 00000e69: PUSH1 0x01 00000e6b: PUSH1 0x01 00000e6d: PUSH1 0xa0 00000e6f: SHL 00000e70: SUB 00000e71: AND 00000e72: DUP2 00000e73: MSTORE 00000e74: PUSH1 0x20 00000e76: ADD 00000e77: SWAP1 00000e78: DUP2 00000e79: MSTORE 00000e7a: PUSH1 0x20 00000e7c: ADD 00000e7d: PUSH0 00000e7e: KECCAK256 00000e7f: PUSH0 00000e80: DUP4 00000e81: DUP2 00000e82: MSTORE 00000e83: PUSH1 0x20 00000e85: ADD 00000e86: SWAP1 00000e87: DUP2 00000e88: MSTORE 00000e89: PUSH1 0x20 00000e8b: ADD 00000e8c: PUSH0 00000e8d: KECCAK256 00000e8e: SWAP1 00000e8f: POP 00000e90: DUP1 00000e91: PUSH0 00000e92: ADD 00000e93: SLOAD 00000e94: PUSH0 00000e95: EQ 00000e96: PUSH2 0x0eda 00000e99: JUMPI 00000e9a: PUSH1 0x40 00000e9c: MLOAD 00000e9d: PUSH3 0x461bcd 00000ea1: PUSH1 0xe5 00000ea3: SHL 00000ea4: DUP2 00000ea5: MSTORE 00000ea6: PUSH1 0x20 00000ea8: PUSH1 0x04 00000eaa: DUP3 00000eab: ADD 00000eac: MSTORE 00000ead: PUSH1 0x16 00000eaf: PUSH1 0x24 00000eb1: DUP3 00000eb2: ADD 00000eb3: MSTORE 00000eb4: PUSH22 0x4772616e744e6f20616c726561647920657869737473 00000ecb: PUSH1 0x50 00000ecd: SHL 00000ece: PUSH1 0x44 00000ed0: DUP3 00000ed1: ADD 00000ed2: MSTORE 00000ed3: PUSH1 0x64 00000ed5: ADD 00000ed6: PUSH2 0x0603 00000ed9: JUMP 00000eda: JUMPDEST 00000edb: TIMESTAMP 00000edc: DUP2 00000edd: SSTORE 00000ede: DUP8 00000edf: MLOAD 00000ee0: DUP9 00000ee1: SWAP1 00000ee2: DUP6 00000ee3: SWAP1 00000ee4: DUP2 00000ee5: LT 00000ee6: PUSH2 0x0ef1 00000ee9: JUMPI 00000eea: PUSH2 0x0ef1 00000eed: PUSH2 0x1e65 00000ef0: JUMP 00000ef1: JUMPDEST 00000ef2: PUSH1 0x20 00000ef4: MUL 00000ef5: PUSH1 0x20 00000ef7: ADD 00000ef8: ADD 00000ef9: MLOAD 00000efa: DUP2 00000efb: PUSH1 0x01 00000efd: ADD 00000efe: DUP2 00000eff: SWAP1 00000f00: SSTORE 00000f01: POP 00000f02: DUP2 00000f03: PUSH1 0x10 00000f05: PUSH1 0x02 00000f07: ADD 00000f08: PUSH0 00000f09: DUP12 00000f0a: DUP8 00000f0b: DUP2 00000f0c: MLOAD 00000f0d: DUP2 00000f0e: LT 00000f0f: PUSH2 0x0f1a 00000f12: JUMPI 00000f13: PUSH2 0x0f1a 00000f16: PUSH2 0x1e65 00000f19: JUMP 00000f1a: JUMPDEST 00000f1b: PUSH1 0x20 00000f1d: MUL 00000f1e: PUSH1 0x20 00000f20: ADD 00000f21: ADD 00000f22: MLOAD 00000f23: PUSH1 0x01 00000f25: PUSH1 0x01 00000f27: PUSH1 0xa0 00000f29: SHL 00000f2a: SUB 00000f2b: AND 00000f2c: PUSH1 0x01 00000f2e: PUSH1 0x01 00000f30: PUSH1 0xa0 00000f32: SHL 00000f33: SUB 00000f34: AND 00000f35: DUP2 00000f36: MSTORE 00000f37: PUSH1 0x20 00000f39: ADD 00000f3a: SWAP1 00000f3b: DUP2 00000f3c: MSTORE 00000f3d: PUSH1 0x20 00000f3f: ADD 00000f40: PUSH0 00000f41: KECCAK256 00000f42: DUP2 00000f43: SWAP1 00000f44: SSTORE 00000f45: POP 00000f46: DUP9 00000f47: DUP5 00000f48: DUP2 00000f49: MLOAD 00000f4a: DUP2 00000f4b: LT 00000f4c: PUSH2 0x0f57 00000f4f: JUMPI 00000f50: PUSH2 0x0f57 00000f53: PUSH2 0x1e65 00000f56: JUMP 00000f57: JUMPDEST 00000f58: PUSH1 0x20 00000f5a: MUL 00000f5b: PUSH1 0x20 00000f5d: ADD 00000f5e: ADD 00000f5f: MLOAD 00000f60: PUSH1 0x01 00000f62: PUSH1 0x01 00000f64: PUSH1 0xa0 00000f66: SHL 00000f67: SUB 00000f68: AND 00000f69: PUSH32 0x0f85174f83a975ab5271c8b5c1de7a05cb845ef02d16e6da45e9e39ab4ed1afd 00000f8a: DUP4 00000f8b: DUP11 00000f8c: DUP8 00000f8d: DUP2 00000f8e: MLOAD 00000f8f: DUP2 00000f90: LT 00000f91: PUSH2 0x0f9c 00000f94: JUMPI 00000f95: PUSH2 0x0f9c 00000f98: PUSH2 0x1e65 00000f9b: JUMP 00000f9c: JUMPDEST 00000f9d: PUSH1 0x20 00000f9f: MUL 00000fa0: PUSH1 0x20 00000fa2: ADD 00000fa3: ADD 00000fa4: MLOAD 00000fa5: PUSH1 0x40 00000fa7: MLOAD 00000fa8: PUSH2 0x0fbb 00000fab: SWAP3 00000fac: SWAP2 00000fad: SWAP1 00000fae: SWAP2 00000faf: DUP3 00000fb0: MSTORE 00000fb1: PUSH1 0x20 00000fb3: DUP3 00000fb4: ADD 00000fb5: MSTORE 00000fb6: PUSH1 0x40 00000fb8: ADD 00000fb9: SWAP1 00000fba: JUMP 00000fbb: JUMPDEST 00000fbc: PUSH1 0x40 00000fbe: MLOAD 00000fbf: DUP1 00000fc0: SWAP2 00000fc1: SUB 00000fc2: SWAP1 00000fc3: LOG2 00000fc4: POP 00000fc5: POP 00000fc6: POP 00000fc7: DUP1 00000fc8: DUP1 00000fc9: PUSH2 0x0fd1 00000fcc: SWAP1 00000fcd: PUSH2 0x1e79 00000fd0: JUMP 00000fd1: JUMPDEST 00000fd2: SWAP2 00000fd3: POP 00000fd4: POP 00000fd5: PUSH2 0x0de2 00000fd8: JUMP 00000fd9: JUMPDEST 00000fda: POP 00000fdb: POP 00000fdc: POP 00000fdd: POP 00000fde: POP 00000fdf: POP 00000fe0: JUMP 00000fe1: JUMPDEST 00000fe2: PUSH2 0x1002 00000fe5: PUSH1 0x40 00000fe7: MLOAD 00000fe8: DUP1 00000fe9: PUSH1 0x60 00000feb: ADD 00000fec: PUSH1 0x40 00000fee: MSTORE 00000fef: DUP1 00000ff0: PUSH0 00000ff1: DUP2 00000ff2: MSTORE 00000ff3: PUSH1 0x20 00000ff5: ADD 00000ff6: PUSH0 00000ff7: DUP2 00000ff8: MSTORE 00000ff9: PUSH1 0x20 00000ffb: ADD 00000ffc: PUSH0 00000ffd: DUP2 00000ffe: MSTORE 00000fff: POP 00001000: SWAP1 00001001: JUMP 00001002: JUMPDEST 00001003: POP 00001004: PUSH1 0x01 00001006: PUSH1 0x01 00001008: PUSH1 0xa0 0000100a: SHL 0000100b: SUB 0000100c: DUP3 0000100d: AND 0000100e: PUSH0 0000100f: SWAP1 00001010: DUP2 00001011: MSTORE 00001012: PUSH1 0x13 00001014: PUSH1 0x20 00001016: SWAP1 00001017: DUP2 00001018: MSTORE 00001019: PUSH1 0x40 0000101b: DUP1 0000101c: DUP4 0000101d: KECCAK256 0000101e: DUP5 0000101f: DUP5 00001020: MSTORE 00001021: DUP3 00001022: MSTORE 00001023: SWAP2 00001024: DUP3 00001025: SWAP1 00001026: KECCAK256 00001027: DUP3 00001028: MLOAD 00001029: PUSH1 0x60 0000102b: DUP2 0000102c: ADD 0000102d: DUP5 0000102e: MSTORE 0000102f: DUP2 00001030: SLOAD 00001031: DUP2 00001032: MSTORE 00001033: PUSH1 0x01 00001035: DUP3 00001036: ADD 00001037: SLOAD 00001038: SWAP3 00001039: DUP2 0000103a: ADD 0000103b: SWAP3 0000103c: SWAP1 0000103d: SWAP3 0000103e: MSTORE 0000103f: PUSH1 0x02 00001041: ADD 00001042: SLOAD 00001043: SWAP2 00001044: DUP2 00001045: ADD 00001046: SWAP2 00001047: SWAP1 00001048: SWAP2 00001049: MSTORE 0000104a: SWAP3 0000104b: SWAP2 0000104c: POP 0000104d: POP 0000104e: JUMP 0000104f: JUMPDEST 00001050: PUSH0 00001051: PUSH2 0x0838 00001054: CALLER 00001055: DUP4 00001056: PUSH2 0x142e 00001059: JUMP 0000105a: JUMPDEST 0000105b: PUSH0 0000105c: DUP3 0000105d: PUSH1 0x01 0000105f: PUSH1 0x01 00001061: PUSH1 0xa0 00001063: SHL 00001064: SUB 00001065: AND 00001066: PUSH4 0x8da5cb5b 0000106b: PUSH1 0x40 0000106d: MLOAD 0000106e: DUP2 0000106f: PUSH4 0xffffffff 00001074: AND 00001075: PUSH1 0xe0 00001077: SHL 00001078: DUP2 00001079: MSTORE 0000107a: PUSH1 0x04 0000107c: ADD 0000107d: PUSH1 0x20 0000107f: PUSH1 0x40 00001081: MLOAD 00001082: DUP1 00001083: DUP4 00001084: SUB 00001085: DUP2 00001086: DUP7 00001087: GAS 00001088: STATICCALL 00001089: ISZERO 0000108a: DUP1 0000108b: ISZERO 0000108c: PUSH2 0x1097 0000108f: JUMPI 00001090: RETURNDATASIZE 00001091: PUSH0 00001092: DUP1 00001093: RETURNDATACOPY 00001094: RETURNDATASIZE 00001095: PUSH0 00001096: REVERT 00001097: JUMPDEST 00001098: POP 00001099: POP 0000109a: POP 0000109b: POP 0000109c: PUSH1 0x40 0000109e: MLOAD 0000109f: RETURNDATASIZE 000010a0: PUSH1 0x1f 000010a2: NOT 000010a3: PUSH1 0x1f 000010a5: DUP3 000010a6: ADD 000010a7: AND 000010a8: DUP3 000010a9: ADD 000010aa: DUP1 000010ab: PUSH1 0x40 000010ad: MSTORE 000010ae: POP 000010af: DUP2 000010b0: ADD 000010b1: SWAP1 000010b2: PUSH2 0x10bb 000010b5: SWAP2 000010b6: SWAP1 000010b7: PUSH2 0x1e4a 000010ba: JUMP 000010bb: JUMPDEST 000010bc: PUSH1 0x01 000010be: PUSH1 0x01 000010c0: PUSH1 0xa0 000010c2: SHL 000010c3: SUB 000010c4: AND 000010c5: CALLER 000010c6: PUSH1 0x01 000010c8: PUSH1 0x01 000010ca: PUSH1 0xa0 000010cc: SHL 000010cd: SUB 000010ce: AND 000010cf: EQ 000010d0: PUSH2 0x110b 000010d3: JUMPI 000010d4: PUSH1 0x40 000010d6: MLOAD 000010d7: PUSH3 0x461bcd 000010db: PUSH1 0xe5 000010dd: SHL 000010de: DUP2 000010df: MSTORE 000010e0: PUSH1 0x20 000010e2: PUSH1 0x04 000010e4: DUP3 000010e5: ADD 000010e6: MSTORE 000010e7: PUSH1 0x0d 000010e9: PUSH1 0x24 000010eb: DUP3 000010ec: ADD 000010ed: MSTORE 000010ee: PUSH13 0x2932b8bab4b9329037bbb732b9 000010fc: PUSH1 0x99 000010fe: SHL 000010ff: PUSH1 0x44 00001101: DUP3 00001102: ADD 00001103: MSTORE 00001104: PUSH1 0x64 00001106: ADD 00001107: PUSH2 0x0603 0000110a: JUMP 0000110b: JUMPDEST 0000110c: PUSH2 0x1115 0000110f: DUP4 00001110: DUP4 00001111: PUSH2 0x142e 00001114: JUMP 00001115: JUMPDEST 00001116: SWAP4 00001117: SWAP3 00001118: POP 00001119: POP 0000111a: POP 0000111b: JUMP 0000111c: JUMPDEST 0000111d: PUSH2 0x1124 00001120: PUSH2 0x123f 00001123: JUMP 00001124: JUMPDEST 00001125: PUSH1 0x01 00001127: PUSH1 0x01 00001129: PUSH1 0xa0 0000112b: SHL 0000112c: SUB 0000112d: DUP2 0000112e: AND 0000112f: PUSH2 0x114d 00001132: JUMPI 00001133: PUSH1 0x40 00001135: MLOAD 00001136: PUSH4 0x1e4fbdf7 0000113b: PUSH1 0xe0 0000113d: SHL 0000113e: DUP2 0000113f: MSTORE 00001140: PUSH0 00001141: PUSH1 0x04 00001143: DUP3 00001144: ADD 00001145: MSTORE 00001146: PUSH1 0x24 00001148: ADD 00001149: PUSH2 0x0603 0000114c: JUMP 0000114d: JUMPDEST 0000114e: PUSH2 0x1156 00001151: DUP2 00001152: PUSH2 0x13a9 00001155: JUMP 00001156: JUMPDEST 00001157: POP 00001158: JUMP 00001159: JUMPDEST 0000115a: PUSH1 0x01 0000115c: PUSH1 0x01 0000115e: PUSH1 0xa0 00001160: SHL 00001161: SUB 00001162: DUP4 00001163: AND 00001164: PUSH2 0x1182 00001167: JUMPI 00001168: PUSH1 0x40 0000116a: MLOAD 0000116b: PUSH4 0x4b637e8f 00001170: PUSH1 0xe1 00001172: SHL 00001173: DUP2 00001174: MSTORE 00001175: PUSH0 00001176: PUSH1 0x04 00001178: DUP3 00001179: ADD 0000117a: MSTORE 0000117b: PUSH1 0x24 0000117d: ADD 0000117e: PUSH2 0x0603 00001181: JUMP 00001182: JUMPDEST 00001183: PUSH1 0x01 00001185: PUSH1 0x01 00001187: PUSH1 0xa0 00001189: SHL 0000118a: SUB 0000118b: DUP3 0000118c: AND 0000118d: PUSH2 0x11ab 00001190: JUMPI 00001191: PUSH1 0x40 00001193: MLOAD 00001194: PUSH4 0xec442f05 00001199: PUSH1 0xe0 0000119b: SHL 0000119c: DUP2 0000119d: MSTORE 0000119e: PUSH0 0000119f: PUSH1 0x04 000011a1: DUP3 000011a2: ADD 000011a3: MSTORE 000011a4: PUSH1 0x24 000011a6: ADD 000011a7: PUSH2 0x0603 000011aa: JUMP 000011ab: JUMPDEST 000011ac: PUSH2 0x0a49 000011af: DUP4 000011b0: DUP4 000011b1: DUP4 000011b2: PUSH2 0x170c 000011b5: JUMP 000011b6: JUMPDEST 000011b7: PUSH2 0x0a49 000011ba: DUP4 000011bb: DUP4 000011bc: DUP4 000011bd: PUSH1 0x01 000011bf: PUSH2 0x1832 000011c2: JUMP 000011c3: JUMPDEST 000011c4: PUSH1 0x01 000011c6: PUSH1 0x01 000011c8: PUSH1 0xa0 000011ca: SHL 000011cb: SUB 000011cc: DUP4 000011cd: DUP2 000011ce: AND 000011cf: PUSH0 000011d0: SWAP1 000011d1: DUP2 000011d2: MSTORE 000011d3: PUSH1 0x01 000011d5: PUSH1 0x20 000011d7: SWAP1 000011d8: DUP2 000011d9: MSTORE 000011da: PUSH1 0x40 000011dc: DUP1 000011dd: DUP4 000011de: KECCAK256 000011df: SWAP4 000011e0: DUP7 000011e1: AND 000011e2: DUP4 000011e3: MSTORE 000011e4: SWAP3 000011e5: SWAP1 000011e6: MSTORE 000011e7: KECCAK256 000011e8: SLOAD 000011e9: PUSH0 000011ea: NOT 000011eb: DUP2 000011ec: LT 000011ed: ISZERO 000011ee: PUSH2 0x1239 000011f1: JUMPI 000011f2: DUP2 000011f3: DUP2 000011f4: LT 000011f5: ISZERO 000011f6: PUSH2 0x122b 000011f9: JUMPI 000011fa: PUSH1 0x40 000011fc: MLOAD 000011fd: PUSH4 0x7dc7a0d9 00001202: PUSH1 0xe1 00001204: SHL 00001205: DUP2 00001206: MSTORE 00001207: PUSH1 0x01 00001209: PUSH1 0x01 0000120b: PUSH1 0xa0 0000120d: SHL 0000120e: SUB 0000120f: DUP5 00001210: AND 00001211: PUSH1 0x04 00001213: DUP3 00001214: ADD 00001215: MSTORE 00001216: PUSH1 0x24 00001218: DUP2 00001219: ADD 0000121a: DUP3 0000121b: SWAP1 0000121c: MSTORE 0000121d: PUSH1 0x44 0000121f: DUP2 00001220: ADD 00001221: DUP4 00001222: SWAP1 00001223: MSTORE 00001224: PUSH1 0x64 00001226: ADD 00001227: PUSH2 0x0603 0000122a: JUMP 0000122b: JUMPDEST 0000122c: PUSH2 0x1239 0000122f: DUP5 00001230: DUP5 00001231: DUP5 00001232: DUP5 00001233: SUB 00001234: PUSH0 00001235: PUSH2 0x1832 00001238: JUMP 00001239: JUMPDEST 0000123a: POP 0000123b: POP 0000123c: POP 0000123d: POP 0000123e: JUMP 0000123f: JUMPDEST 00001240: PUSH1 0x05 00001242: SLOAD 00001243: PUSH1 0x01 00001245: PUSH1 0x01 00001247: PUSH1 0xa0 00001249: SHL 0000124a: SUB 0000124b: AND 0000124c: CALLER 0000124d: EQ 0000124e: PUSH2 0x0a5f 00001251: JUMPI 00001252: PUSH1 0x40 00001254: MLOAD 00001255: PUSH4 0x118cdaa7 0000125a: PUSH1 0xe0 0000125c: SHL 0000125d: DUP2 0000125e: MSTORE 0000125f: CALLER 00001260: PUSH1 0x04 00001262: DUP3 00001263: ADD 00001264: MSTORE 00001265: PUSH1 0x24 00001267: ADD 00001268: PUSH2 0x0603 0000126b: JUMP 0000126c: JUMPDEST 0000126d: PUSH1 0x01 0000126f: PUSH1 0x01 00001271: PUSH1 0xa0 00001273: SHL 00001274: SUB 00001275: DUP3 00001276: AND 00001277: PUSH0 00001278: SWAP1 00001279: DUP2 0000127a: MSTORE 0000127b: PUSH1 0x13 0000127d: PUSH1 0x20 0000127f: SWAP1 00001280: DUP2 00001281: MSTORE 00001282: PUSH1 0x40 00001284: DUP1 00001285: DUP4 00001286: KECCAK256 00001287: DUP5 00001288: DUP5 00001289: MSTORE 0000128a: SWAP1 0000128b: SWAP2 0000128c: MSTORE 0000128d: DUP2 0000128e: KECCAK256 0000128f: DUP1 00001290: SLOAD 00001291: PUSH2 0x1115 00001294: JUMPI 00001295: PUSH1 0x40 00001297: MLOAD 00001298: PUSH3 0x461bcd 0000129c: PUSH1 0xe5 0000129e: SHL 0000129f: DUP2 000012a0: MSTORE 000012a1: PUSH1 0x20 000012a3: PUSH1 0x04 000012a5: DUP3 000012a6: ADD 000012a7: MSTORE 000012a8: PUSH1 0x10 000012aa: PUSH1 0x24 000012ac: DUP3 000012ad: ADD 000012ae: MSTORE 000012af: PUSH16 0x13dc1d1a5bdb881b9bdd08195e1a5cdd 000012c0: PUSH1 0x82 000012c2: SHL 000012c3: PUSH1 0x44 000012c5: DUP3 000012c6: ADD 000012c7: MSTORE 000012c8: PUSH1 0x64 000012ca: ADD 000012cb: PUSH2 0x0603 000012ce: JUMP 000012cf: JUMPDEST 000012d0: PUSH0 000012d1: PUSH2 0x12da 000012d4: CALLER 000012d5: DUP5 000012d6: PUSH2 0x0879 000012d9: JUMP 000012da: JUMPDEST 000012db: SWAP1 000012dc: POP 000012dd: DUP2 000012de: DUP2 000012df: LT 000012e0: ISZERO 000012e1: PUSH2 0x1322 000012e4: JUMPI 000012e5: PUSH1 0x40 000012e7: MLOAD 000012e8: PUSH3 0x461bcd 000012ec: PUSH1 0xe5 000012ee: SHL 000012ef: DUP2 000012f0: MSTORE 000012f1: PUSH1 0x20 000012f3: PUSH1 0x04 000012f5: DUP3 000012f6: ADD 000012f7: MSTORE 000012f8: PUSH1 0x13 000012fa: PUSH1 0x24 000012fc: DUP3 000012fd: ADD 000012fe: MSTORE 000012ff: PUSH19 0x24b739bab33334b1b4b2b73a1037b83a34b7b7 00001313: PUSH1 0x69 00001315: SHL 00001316: PUSH1 0x44 00001318: DUP3 00001319: ADD 0000131a: MSTORE 0000131b: PUSH1 0x64 0000131d: ADD 0000131e: PUSH2 0x0603 00001321: JUMP 00001322: JUMPDEST 00001323: PUSH0 00001324: PUSH2 0x132d 00001327: DUP6 00001328: DUP6 00001329: PUSH2 0x126c 0000132c: JUMP 0000132d: JUMPDEST 0000132e: SWAP1 0000132f: POP 00001330: DUP3 00001331: DUP2 00001332: PUSH1 0x02 00001334: ADD 00001335: PUSH0 00001336: DUP3 00001337: DUP3 00001338: SLOAD 00001339: PUSH2 0x1342 0000133c: SWAP2 0000133d: SWAP1 0000133e: PUSH2 0x1cfe 00001341: JUMP 00001342: JUMPDEST 00001343: SWAP1 00001344: SWAP2 00001345: SSTORE 00001346: POP 00001347: POP 00001348: PUSH1 0x0c 0000134a: SLOAD 0000134b: PUSH2 0x135e 0000134e: SWAP1 0000134f: PUSH1 0x01 00001351: PUSH1 0x01 00001353: PUSH1 0xa0 00001355: SHL 00001356: SUB 00001357: AND 00001358: DUP7 00001359: DUP6 0000135a: PUSH2 0x1159 0000135d: JUMP 0000135e: JUMPDEST 0000135f: PUSH1 0x40 00001361: DUP1 00001362: MLOAD 00001363: DUP6 00001364: DUP2 00001365: MSTORE 00001366: PUSH1 0x20 00001368: DUP2 00001369: ADD 0000136a: DUP6 0000136b: SWAP1 0000136c: MSTORE 0000136d: PUSH1 0x01 0000136f: PUSH1 0x01 00001371: PUSH1 0xa0 00001373: SHL 00001374: SUB 00001375: DUP8 00001376: AND 00001377: SWAP2 00001378: PUSH32 0x7fb8af33a94ca7bd709d59757a015eb48270f350724a5409fd77b579d0b7247d 00001399: SWAP2 0000139a: ADD 0000139b: PUSH1 0x40 0000139d: MLOAD 0000139e: DUP1 0000139f: SWAP2 000013a0: SUB 000013a1: SWAP1 000013a2: LOG2 000013a3: POP 000013a4: POP 000013a5: POP 000013a6: POP 000013a7: POP 000013a8: JUMP 000013a9: JUMPDEST 000013aa: PUSH1 0x05 000013ac: DUP1 000013ad: SLOAD 000013ae: PUSH1 0x01 000013b0: PUSH1 0x01 000013b2: PUSH1 0xa0 000013b4: SHL 000013b5: SUB 000013b6: DUP4 000013b7: DUP2 000013b8: AND 000013b9: PUSH1 0x01 000013bb: PUSH1 0x01 000013bd: PUSH1 0xa0 000013bf: SHL 000013c0: SUB 000013c1: NOT 000013c2: DUP4 000013c3: AND 000013c4: DUP2 000013c5: OR 000013c6: SWAP1 000013c7: SWAP4 000013c8: SSTORE 000013c9: PUSH1 0x40 000013cb: MLOAD 000013cc: SWAP2 000013cd: AND 000013ce: SWAP2 000013cf: SWAP1 000013d0: DUP3 000013d1: SWAP1 000013d2: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000013f3: SWAP1 000013f4: PUSH0 000013f5: SWAP1 000013f6: LOG3 000013f7: POP 000013f8: POP 000013f9: JUMP 000013fa: JUMPDEST 000013fb: PUSH1 0x01 000013fd: PUSH1 0x01 000013ff: PUSH1 0xa0 00001401: SHL 00001402: SUB 00001403: DUP3 00001404: AND 00001405: PUSH2 0x1423 00001408: JUMPI 00001409: PUSH1 0x40 0000140b: MLOAD 0000140c: PUSH4 0x4b637e8f 00001411: PUSH1 0xe1 00001413: SHL 00001414: DUP2 00001415: MSTORE 00001416: PUSH0 00001417: PUSH1 0x04 00001419: DUP3 0000141a: ADD 0000141b: MSTORE 0000141c: PUSH1 0x24 0000141e: ADD 0000141f: PUSH2 0x0603 00001422: JUMP 00001423: JUMPDEST 00001424: PUSH2 0x0875 00001427: DUP3 00001428: PUSH0 00001429: DUP4 0000142a: PUSH2 0x170c 0000142d: JUMP 0000142e: JUMPDEST 0000142f: PUSH0 00001430: DUP1 00001431: DUP3 00001432: GT 00001433: PUSH2 0x146d 00001436: JUMPI 00001437: PUSH1 0x40 00001439: MLOAD 0000143a: PUSH3 0x461bcd 0000143e: PUSH1 0xe5 00001440: SHL 00001441: DUP2 00001442: MSTORE 00001443: PUSH1 0x20 00001445: PUSH1 0x04 00001447: DUP3 00001448: ADD 00001449: MSTORE 0000144a: PUSH1 0x0c 0000144c: PUSH1 0x24 0000144e: DUP3 0000144f: ADD 00001450: MSTORE 00001451: PUSH12 0x05175616e74697479203e203 0000145e: PUSH1 0xa4 00001460: SHL 00001461: PUSH1 0x44 00001463: DUP3 00001464: ADD 00001465: MSTORE 00001466: PUSH1 0x64 00001468: ADD 00001469: PUSH2 0x0603 0000146c: JUMP 0000146d: JUMPDEST 0000146e: DUP2 0000146f: PUSH2 0x148c 00001472: DUP5 00001473: PUSH1 0x01 00001475: PUSH1 0x01 00001477: PUSH1 0xa0 00001479: SHL 0000147a: SUB 0000147b: AND 0000147c: PUSH0 0000147d: SWAP1 0000147e: DUP2 0000147f: MSTORE 00001480: PUSH1 0x20 00001482: DUP2 00001483: SWAP1 00001484: MSTORE 00001485: PUSH1 0x40 00001487: SWAP1 00001488: KECCAK256 00001489: SLOAD 0000148a: SWAP1 0000148b: JUMP 0000148c: JUMPDEST 0000148d: LT 0000148e: ISZERO 0000148f: PUSH2 0x14d0 00001492: JUMPI 00001493: PUSH1 0x40 00001495: MLOAD 00001496: PUSH3 0x461bcd 0000149a: PUSH1 0xe5 0000149c: SHL 0000149d: DUP2 0000149e: MSTORE 0000149f: PUSH1 0x20 000014a1: PUSH1 0x04 000014a3: DUP3 000014a4: ADD 000014a5: MSTORE 000014a6: PUSH1 0x13 000014a8: PUSH1 0x24 000014aa: DUP3 000014ab: ADD 000014ac: MSTORE 000014ad: PUSH19 0x496e73756666696369656e7420736861726573 000014c1: PUSH1 0x68 000014c3: SHL 000014c4: PUSH1 0x44 000014c6: DUP3 000014c7: ADD 000014c8: MSTORE 000014c9: PUSH1 0x64 000014cb: ADD 000014cc: PUSH2 0x0603 000014cf: JUMP 000014d0: JUMPDEST 000014d1: PUSH1 0x0c 000014d3: SLOAD 000014d4: PUSH2 0x14e8 000014d7: SWAP1 000014d8: DUP5 000014d9: SWAP1 000014da: PUSH1 0x01 000014dc: PUSH1 0x01 000014de: PUSH1 0xa0 000014e0: SHL 000014e1: SUB 000014e2: AND 000014e3: DUP5 000014e4: PUSH2 0x1159 000014e7: JUMP 000014e8: JUMPDEST 000014e9: PUSH1 0x0e 000014eb: SLOAD 000014ec: DUP3 000014ed: SWAP1 000014ee: PUSH0 000014ef: SWAP1 000014f0: DUP1 000014f1: JUMPDEST 000014f2: DUP4 000014f3: ISZERO 000014f4: PUSH2 0x1618 000014f7: JUMPI 000014f8: PUSH1 0x09 000014fa: SLOAD 000014fb: PUSH1 0x0f 000014fd: SLOAD 000014fe: PUSH2 0x1507 00001501: SWAP1 00001502: DUP7 00001503: PUSH2 0x1cfe 00001506: JUMP 00001507: JUMPDEST 00001508: LT 00001509: ISZERO 0000150a: PUSH2 0x1554 0000150d: JUMPI 0000150e: DUP4 0000150f: PUSH1 0x0e 00001511: PUSH1 0x01 00001513: ADD 00001514: PUSH0 00001515: DUP3 00001516: DUP3 00001517: SLOAD 00001518: PUSH2 0x1521 0000151b: SWAP2 0000151c: SWAP1 0000151d: PUSH2 0x1cfe 00001520: JUMP 00001521: JUMPDEST 00001522: SWAP1 00001523: SWAP2 00001524: SSTORE 00001525: POP 00001526: POP 00001527: PUSH1 0x06 00001529: SLOAD 0000152a: PUSH1 0x0e 0000152c: SLOAD 0000152d: PUSH2 0x1536 00001530: SWAP1 00001531: DUP7 00001532: PUSH2 0x1cb5 00001535: JUMP 00001536: JUMPDEST 00001537: PUSH2 0x1540 0000153a: SWAP2 0000153b: SWAP1 0000153c: PUSH2 0x1ccc 0000153f: JUMP 00001540: JUMPDEST 00001541: PUSH2 0x154a 00001544: SWAP1 00001545: DUP5 00001546: PUSH2 0x1cfe 00001549: JUMP 0000154a: JUMPDEST 0000154b: SWAP3 0000154c: POP 0000154d: PUSH0 0000154e: SWAP4 0000154f: POP 00001550: PUSH2 0x15cf 00001553: JUMP 00001554: JUMPDEST 00001555: PUSH1 0x0f 00001557: SLOAD 00001558: PUSH1 0x09 0000155a: SLOAD 0000155b: PUSH2 0x1564 0000155e: SWAP2 0000155f: SWAP1 00001560: PUSH2 0x1ceb 00001563: JUMP 00001564: JUMPDEST 00001565: PUSH2 0x156e 00001568: SWAP1 00001569: DUP6 0000156a: PUSH2 0x1ceb 0000156d: JUMP 0000156e: JUMPDEST 0000156f: SWAP4 00001570: POP 00001571: PUSH1 0x06 00001573: SLOAD 00001574: PUSH1 0x0e 00001576: PUSH0 00001577: ADD 00001578: SLOAD 00001579: PUSH1 0x0e 0000157b: PUSH1 0x01 0000157d: ADD 0000157e: SLOAD 0000157f: PUSH1 0x09 00001581: SLOAD 00001582: PUSH2 0x158b 00001585: SWAP2 00001586: SWAP1 00001587: PUSH2 0x1ceb 0000158a: JUMP 0000158b: JUMPDEST 0000158c: PUSH2 0x1595 0000158f: SWAP2 00001590: SWAP1 00001591: PUSH2 0x1cb5 00001594: JUMP 00001595: JUMPDEST 00001596: PUSH2 0x159f 00001599: SWAP2 0000159a: SWAP1 0000159b: PUSH2 0x1ccc 0000159e: JUMP 0000159f: JUMPDEST 000015a0: PUSH2 0x15a9 000015a3: SWAP1 000015a4: DUP5 000015a5: PUSH2 0x1cfe 000015a8: JUMP 000015a9: JUMPDEST 000015aa: SWAP3 000015ab: POP 000015ac: PUSH1 0x07 000015ae: SLOAD 000015af: PUSH1 0x0e 000015b1: PUSH0 000015b2: ADD 000015b3: PUSH0 000015b4: DUP3 000015b5: DUP3 000015b6: SLOAD 000015b7: PUSH2 0x15c0 000015ba: SWAP2 000015bb: SWAP1 000015bc: PUSH2 0x1ceb 000015bf: JUMP 000015c0: JUMPDEST 000015c1: SWAP1 000015c2: SWAP2 000015c3: SSTORE 000015c4: POP 000015c5: POP 000015c6: PUSH0 000015c7: PUSH1 0x0f 000015c9: SSTORE 000015ca: PUSH1 0x0e 000015cc: SLOAD 000015cd: SWAP2 000015ce: POP 000015cf: JUMPDEST 000015d0: PUSH1 0x0e 000015d2: SLOAD 000015d3: PUSH2 0x1613 000015d6: JUMPI 000015d7: PUSH1 0x40 000015d9: MLOAD 000015da: PUSH3 0x461bcd 000015de: PUSH1 0xe5 000015e0: SHL 000015e1: DUP2 000015e2: MSTORE 000015e3: PUSH1 0x20 000015e5: PUSH1 0x04 000015e7: DUP3 000015e8: ADD 000015e9: MSTORE 000015ea: PUSH1 0x12 000015ec: PUSH1 0x24 000015ee: DUP3 000015ef: ADD 000015f0: MSTORE 000015f1: PUSH18 0x496e7375666669656e742062616c616e6365 00001604: PUSH1 0x70 00001606: SHL 00001607: PUSH1 0x44 00001609: DUP3 0000160a: ADD 0000160b: MSTORE 0000160c: PUSH1 0x64 0000160e: ADD 0000160f: PUSH2 0x0603 00001612: JUMP 00001613: JUMPDEST 00001614: PUSH2 0x14f1 00001617: JUMP 00001618: JUMPDEST 00001619: PUSH0 0000161a: DUP8 0000161b: PUSH1 0x01 0000161d: PUSH1 0x01 0000161f: PUSH1 0xa0 00001621: SHL 00001622: SUB 00001623: AND 00001624: DUP5 00001625: PUSH1 0x40 00001627: MLOAD 00001628: PUSH0 00001629: PUSH1 0x40 0000162b: MLOAD 0000162c: DUP1 0000162d: DUP4 0000162e: SUB 0000162f: DUP2 00001630: DUP6 00001631: DUP8 00001632: GAS 00001633: CALL 00001634: SWAP3 00001635: POP 00001636: POP 00001637: POP 00001638: RETURNDATASIZE 00001639: DUP1 0000163a: PUSH0 0000163b: DUP2 0000163c: EQ 0000163d: PUSH2 0x1661 00001640: JUMPI 00001641: PUSH1 0x40 00001643: MLOAD 00001644: SWAP2 00001645: POP 00001646: PUSH1 0x1f 00001648: NOT 00001649: PUSH1 0x3f 0000164b: RETURNDATASIZE 0000164c: ADD 0000164d: AND 0000164e: DUP3 0000164f: ADD 00001650: PUSH1 0x40 00001652: MSTORE 00001653: RETURNDATASIZE 00001654: DUP3 00001655: MSTORE 00001656: RETURNDATASIZE 00001657: PUSH0 00001658: PUSH1 0x20 0000165a: DUP5 0000165b: ADD 0000165c: RETURNDATACOPY 0000165d: PUSH2 0x1666 00001660: JUMP 00001661: JUMPDEST 00001662: PUSH1 0x60 00001664: SWAP2 00001665: POP 00001666: JUMPDEST 00001667: POP 00001668: POP 00001669: SWAP1 0000166a: POP 0000166b: DUP1 0000166c: PUSH2 0x16ad 0000166f: JUMPI 00001670: PUSH1 0x40 00001672: MLOAD 00001673: PUSH3 0x461bcd 00001677: PUSH1 0xe5 00001679: SHL 0000167a: DUP2 0000167b: MSTORE 0000167c: PUSH1 0x20 0000167e: PUSH1 0x04 00001680: DUP3 00001681: ADD 00001682: MSTORE 00001683: PUSH1 0x13 00001685: PUSH1 0x24 00001687: DUP3 00001688: ADD 00001689: MSTORE 0000168a: PUSH19 0x151c985b9cd9995c88195d1a195c8819985a5b 0000169e: PUSH1 0x6a 000016a0: SHL 000016a1: PUSH1 0x44 000016a3: DUP3 000016a4: ADD 000016a5: MSTORE 000016a6: PUSH1 0x64 000016a8: ADD 000016a9: PUSH2 0x0603 000016ac: JUMP 000016ad: JUMPDEST 000016ae: PUSH1 0x40 000016b0: DUP1 000016b1: MLOAD 000016b2: DUP5 000016b3: DUP2 000016b4: MSTORE 000016b5: PUSH1 0x20 000016b7: DUP2 000016b8: ADD 000016b9: DUP5 000016ba: SWAP1 000016bb: MSTORE 000016bc: SWAP1 000016bd: DUP2 000016be: ADD 000016bf: DUP6 000016c0: SWAP1 000016c1: MSTORE 000016c2: PUSH1 0x60 000016c4: DUP2 000016c5: ADD 000016c6: DUP9 000016c7: SWAP1 000016c8: MSTORE 000016c9: PUSH1 0x01 000016cb: PUSH1 0x01 000016cd: PUSH1 0xa0 000016cf: SHL 000016d0: SUB 000016d1: DUP10 000016d2: AND 000016d3: SWAP1 000016d4: PUSH32 0x483f8aec0fd892ac72ad1ba8d0e9c9e73db59c12d263fd71de480b5b3deeae3c 000016f5: SWAP1 000016f6: PUSH1 0x80 000016f8: ADD 000016f9: PUSH1 0x40 000016fb: MLOAD 000016fc: DUP1 000016fd: SWAP2 000016fe: SUB 000016ff: SWAP1 00001700: LOG2 00001701: POP 00001702: SWAP2 00001703: SWAP7 00001704: SWAP6 00001705: POP 00001706: POP 00001707: POP 00001708: POP 00001709: POP 0000170a: POP 0000170b: JUMP 0000170c: JUMPDEST 0000170d: PUSH1 0x01 0000170f: PUSH1 0x01 00001711: PUSH1 0xa0 00001713: SHL 00001714: SUB 00001715: DUP4 00001716: AND 00001717: PUSH2 0x1736 0000171a: JUMPI 0000171b: DUP1 0000171c: PUSH1 0x02 0000171e: PUSH0 0000171f: DUP3 00001720: DUP3 00001721: SLOAD 00001722: PUSH2 0x172b 00001725: SWAP2 00001726: SWAP1 00001727: PUSH2 0x1cfe 0000172a: JUMP 0000172b: JUMPDEST 0000172c: SWAP1 0000172d: SWAP2 0000172e: SSTORE 0000172f: POP 00001730: PUSH2 0x17a6 00001733: SWAP1 00001734: POP 00001735: JUMP 00001736: JUMPDEST 00001737: PUSH1 0x01 00001739: PUSH1 0x01 0000173b: PUSH1 0xa0 0000173d: SHL 0000173e: SUB 0000173f: DUP4 00001740: AND 00001741: PUSH0 00001742: SWAP1 00001743: DUP2 00001744: MSTORE 00001745: PUSH1 0x20 00001747: DUP2 00001748: SWAP1 00001749: MSTORE 0000174a: PUSH1 0x40 0000174c: SWAP1 0000174d: KECCAK256 0000174e: SLOAD 0000174f: DUP2 00001750: DUP2 00001751: LT 00001752: ISZERO 00001753: PUSH2 0x1788 00001756: JUMPI 00001757: PUSH1 0x40 00001759: MLOAD 0000175a: PUSH4 0x391434e3 0000175f: PUSH1 0xe2 00001761: SHL 00001762: DUP2 00001763: MSTORE 00001764: PUSH1 0x01 00001766: PUSH1 0x01 00001768: PUSH1 0xa0 0000176a: SHL 0000176b: SUB 0000176c: DUP6 0000176d: AND 0000176e: PUSH1 0x04 00001770: DUP3 00001771: ADD 00001772: MSTORE 00001773: PUSH1 0x24 00001775: DUP2 00001776: ADD 00001777: DUP3 00001778: SWAP1 00001779: MSTORE 0000177a: PUSH1 0x44 0000177c: DUP2 0000177d: ADD 0000177e: DUP4 0000177f: SWAP1 00001780: MSTORE 00001781: PUSH1 0x64 00001783: ADD 00001784: PUSH2 0x0603 00001787: JUMP 00001788: JUMPDEST 00001789: PUSH1 0x01 0000178b: PUSH1 0x01 0000178d: PUSH1 0xa0 0000178f: SHL 00001790: SUB 00001791: DUP5 00001792: AND 00001793: PUSH0 00001794: SWAP1 00001795: DUP2 00001796: MSTORE 00001797: PUSH1 0x20 00001799: DUP2 0000179a: SWAP1 0000179b: MSTORE 0000179c: PUSH1 0x40 0000179e: SWAP1 0000179f: KECCAK256 000017a0: SWAP1 000017a1: DUP3 000017a2: SWAP1 000017a3: SUB 000017a4: SWAP1 000017a5: SSTORE 000017a6: JUMPDEST 000017a7: PUSH1 0x01 000017a9: PUSH1 0x01 000017ab: PUSH1 0xa0 000017ad: SHL 000017ae: SUB 000017af: DUP3 000017b0: AND 000017b1: PUSH2 0x17c2 000017b4: JUMPI 000017b5: PUSH1 0x02 000017b7: DUP1 000017b8: SLOAD 000017b9: DUP3 000017ba: SWAP1 000017bb: SUB 000017bc: SWAP1 000017bd: SSTORE 000017be: PUSH2 0x17e0 000017c1: JUMP 000017c2: JUMPDEST 000017c3: PUSH1 0x01 000017c5: PUSH1 0x01 000017c7: PUSH1 0xa0 000017c9: SHL 000017ca: SUB 000017cb: DUP3 000017cc: AND 000017cd: PUSH0 000017ce: SWAP1 000017cf: DUP2 000017d0: MSTORE 000017d1: PUSH1 0x20 000017d3: DUP2 000017d4: SWAP1 000017d5: MSTORE 000017d6: PUSH1 0x40 000017d8: SWAP1 000017d9: KECCAK256 000017da: DUP1 000017db: SLOAD 000017dc: DUP3 000017dd: ADD 000017de: SWAP1 000017df: SSTORE 000017e0: JUMPDEST 000017e1: DUP2 000017e2: PUSH1 0x01 000017e4: PUSH1 0x01 000017e6: PUSH1 0xa0 000017e8: SHL 000017e9: SUB 000017ea: AND 000017eb: DUP4 000017ec: PUSH1 0x01 000017ee: PUSH1 0x01 000017f0: PUSH1 0xa0 000017f2: SHL 000017f3: SUB 000017f4: AND 000017f5: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 00001816: DUP4 00001817: PUSH1 0x40 00001819: MLOAD 0000181a: PUSH2 0x1825 0000181d: SWAP2 0000181e: DUP2 0000181f: MSTORE 00001820: PUSH1 0x20 00001822: ADD 00001823: SWAP1 00001824: JUMP 00001825: JUMPDEST 00001826: PUSH1 0x40 00001828: MLOAD 00001829: DUP1 0000182a: SWAP2 0000182b: SUB 0000182c: SWAP1 0000182d: LOG3 0000182e: POP 0000182f: POP 00001830: POP 00001831: JUMP 00001832: JUMPDEST 00001833: PUSH1 0x01 00001835: PUSH1 0x01 00001837: PUSH1 0xa0 00001839: SHL 0000183a: SUB 0000183b: DUP5 0000183c: AND 0000183d: PUSH2 0x185b 00001840: JUMPI 00001841: PUSH1 0x40 00001843: MLOAD 00001844: PUSH4 0xe602df05 00001849: PUSH1 0xe0 0000184b: SHL 0000184c: DUP2 0000184d: MSTORE 0000184e: PUSH0 0000184f: PUSH1 0x04 00001851: DUP3 00001852: ADD 00001853: MSTORE 00001854: PUSH1 0x24 00001856: ADD 00001857: PUSH2 0x0603 0000185a: JUMP 0000185b: JUMPDEST 0000185c: PUSH1 0x01 0000185e: PUSH1 0x01 00001860: PUSH1 0xa0 00001862: SHL 00001863: SUB 00001864: DUP4 00001865: AND 00001866: PUSH2 0x1884 00001869: JUMPI 0000186a: PUSH1 0x40 0000186c: MLOAD 0000186d: PUSH4 0x4a1406b1 00001872: PUSH1 0xe1 00001874: SHL 00001875: DUP2 00001876: MSTORE 00001877: PUSH0 00001878: PUSH1 0x04 0000187a: DUP3 0000187b: ADD 0000187c: MSTORE 0000187d: PUSH1 0x24 0000187f: ADD 00001880: PUSH2 0x0603 00001883: JUMP 00001884: JUMPDEST 00001885: PUSH1 0x01 00001887: PUSH1 0x01 00001889: PUSH1 0xa0 0000188b: SHL 0000188c: SUB 0000188d: DUP1 0000188e: DUP6 0000188f: AND 00001890: PUSH0 00001891: SWAP1 00001892: DUP2 00001893: MSTORE 00001894: PUSH1 0x01 00001896: PUSH1 0x20 00001898: SWAP1 00001899: DUP2 0000189a: MSTORE 0000189b: PUSH1 0x40 0000189d: DUP1 0000189e: DUP4 0000189f: KECCAK256 000018a0: SWAP4 000018a1: DUP8 000018a2: AND 000018a3: DUP4 000018a4: MSTORE 000018a5: SWAP3 000018a6: SWAP1 000018a7: MSTORE 000018a8: KECCAK256 000018a9: DUP3 000018aa: SWAP1 000018ab: SSTORE 000018ac: DUP1 000018ad: ISZERO 000018ae: PUSH2 0x1239 000018b1: JUMPI 000018b2: DUP3 000018b3: PUSH1 0x01 000018b5: PUSH1 0x01 000018b7: PUSH1 0xa0 000018b9: SHL 000018ba: SUB 000018bb: AND 000018bc: DUP5 000018bd: PUSH1 0x01 000018bf: PUSH1 0x01 000018c1: PUSH1 0xa0 000018c3: SHL 000018c4: SUB 000018c5: AND 000018c6: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 000018e7: DUP5 000018e8: PUSH1 0x40 000018ea: MLOAD 000018eb: PUSH2 0x18f6 000018ee: SWAP2 000018ef: DUP2 000018f0: MSTORE 000018f1: PUSH1 0x20 000018f3: ADD 000018f4: SWAP1 000018f5: JUMP 000018f6: JUMPDEST 000018f7: PUSH1 0x40 000018f9: MLOAD 000018fa: DUP1 000018fb: SWAP2 000018fc: SUB 000018fd: SWAP1 000018fe: LOG3 000018ff: POP 00001900: POP 00001901: POP 00001902: POP 00001903: JUMP 00001904: JUMPDEST 00001905: PUSH0 00001906: PUSH1 0x20 00001908: DUP1 00001909: DUP4 0000190a: MSTORE 0000190b: DUP4 0000190c: MLOAD 0000190d: DUP1 0000190e: DUP3 0000190f: DUP6 00001910: ADD 00001911: MSTORE 00001912: PUSH0 00001913: JUMPDEST 00001914: DUP2 00001915: DUP2 00001916: LT 00001917: ISZERO 00001918: PUSH2 0x192f 0000191b: JUMPI 0000191c: DUP6 0000191d: DUP2 0000191e: ADD 0000191f: DUP4 00001920: ADD 00001921: MLOAD 00001922: DUP6 00001923: DUP3 00001924: ADD 00001925: PUSH1 0x40 00001927: ADD 00001928: MSTORE 00001929: DUP3 0000192a: ADD 0000192b: PUSH2 0x1913 0000192e: JUMP 0000192f: JUMPDEST 00001930: POP 00001931: PUSH0 00001932: PUSH1 0x40 00001934: DUP3 00001935: DUP7 00001936: ADD 00001937: ADD 00001938: MSTORE 00001939: PUSH1 0x40 0000193b: PUSH1 0x1f 0000193d: NOT 0000193e: PUSH1 0x1f 00001940: DUP4 00001941: ADD 00001942: AND 00001943: DUP6 00001944: ADD 00001945: ADD 00001946: SWAP3 00001947: POP 00001948: POP 00001949: POP 0000194a: SWAP3 0000194b: SWAP2 0000194c: POP 0000194d: POP 0000194e: JUMP 0000194f: JUMPDEST 00001950: PUSH1 0x01 00001952: PUSH1 0x01 00001954: PUSH1 0xa0 00001956: SHL 00001957: SUB 00001958: DUP2 00001959: AND 0000195a: DUP2 0000195b: EQ 0000195c: PUSH2 0x1156 0000195f: JUMPI 00001960: PUSH0 00001961: DUP1 00001962: REVERT 00001963: JUMPDEST 00001964: PUSH0 00001965: DUP1 00001966: PUSH1 0x40 00001968: DUP4 00001969: DUP6 0000196a: SUB 0000196b: SLT 0000196c: ISZERO 0000196d: PUSH2 0x1974 00001970: JUMPI 00001971: PUSH0 00001972: DUP1 00001973: REVERT 00001974: JUMPDEST 00001975: DUP3 00001976: CALLDATALOAD 00001977: PUSH2 0x197f 0000197a: DUP2 0000197b: PUSH2 0x194f 0000197e: JUMP 0000197f: JUMPDEST 00001980: SWAP5 00001981: PUSH1 0x20 00001983: SWAP4 00001984: SWAP1 00001985: SWAP4 00001986: ADD 00001987: CALLDATALOAD 00001988: SWAP4 00001989: POP 0000198a: POP 0000198b: POP 0000198c: JUMP 0000198d: JUMPDEST 0000198e: PUSH0 0000198f: DUP1 00001990: PUSH0 00001991: PUSH1 0x60 00001993: DUP5 00001994: DUP7 00001995: SUB 00001996: SLT 00001997: ISZERO 00001998: PUSH2 0x199f 0000199b: JUMPI 0000199c: PUSH0 0000199d: DUP1 0000199e: REVERT 0000199f: JUMPDEST 000019a0: DUP4 000019a1: CALLDATALOAD 000019a2: PUSH2 0x19aa 000019a5: DUP2 000019a6: PUSH2 0x194f 000019a9: JUMP 000019aa: JUMPDEST 000019ab: SWAP3 000019ac: POP 000019ad: PUSH1 0x20 000019af: DUP5 000019b0: ADD 000019b1: CALLDATALOAD 000019b2: PUSH2 0x19ba 000019b5: DUP2 000019b6: PUSH2 0x194f 000019b9: JUMP 000019ba: JUMPDEST 000019bb: SWAP3 000019bc: SWAP6 000019bd: SWAP3 000019be: SWAP5 000019bf: POP 000019c0: POP 000019c1: POP 000019c2: PUSH1 0x40 000019c4: SWAP2 000019c5: SWAP1 000019c6: SWAP2 000019c7: ADD 000019c8: CALLDATALOAD 000019c9: SWAP1 000019ca: JUMP 000019cb: JUMPDEST 000019cc: PUSH4 0x4e487b71 000019d1: PUSH1 0xe0 000019d3: SHL 000019d4: PUSH0 000019d5: MSTORE 000019d6: PUSH1 0x41 000019d8: PUSH1 0x04 000019da: MSTORE 000019db: PUSH1 0x24 000019dd: PUSH0 000019de: REVERT 000019df: JUMPDEST 000019e0: PUSH1 0x40 000019e2: MLOAD 000019e3: PUSH1 0x1f 000019e5: DUP3 000019e6: ADD 000019e7: PUSH1 0x1f 000019e9: NOT 000019ea: AND 000019eb: DUP2 000019ec: ADD 000019ed: PUSH8 0xffffffffffffffff 000019f6: DUP2 000019f7: GT 000019f8: DUP3 000019f9: DUP3 000019fa: LT 000019fb: OR 000019fc: ISZERO 000019fd: PUSH2 0x1a08 00001a00: JUMPI 00001a01: PUSH2 0x1a08 00001a04: PUSH2 0x19cb 00001a07: JUMP 00001a08: JUMPDEST 00001a09: PUSH1 0x40 00001a0b: MSTORE 00001a0c: SWAP2 00001a0d: SWAP1 00001a0e: POP 00001a0f: JUMP 00001a10: JUMPDEST 00001a11: PUSH0 00001a12: PUSH1 0x20 00001a14: DUP1 00001a15: DUP4 00001a16: DUP6 00001a17: SUB 00001a18: SLT 00001a19: ISZERO 00001a1a: PUSH2 0x1a21 00001a1d: JUMPI 00001a1e: PUSH0 00001a1f: DUP1 00001a20: REVERT 00001a21: JUMPDEST 00001a22: DUP3 00001a23: CALLDATALOAD 00001a24: PUSH8 0xffffffffffffffff 00001a2d: DUP1 00001a2e: DUP3 00001a2f: GT 00001a30: ISZERO 00001a31: PUSH2 0x1a38 00001a34: JUMPI 00001a35: PUSH0 00001a36: DUP1 00001a37: REVERT 00001a38: JUMPDEST 00001a39: DUP2 00001a3a: DUP6 00001a3b: ADD 00001a3c: SWAP2 00001a3d: POP 00001a3e: DUP6 00001a3f: PUSH1 0x1f 00001a41: DUP4 00001a42: ADD 00001a43: SLT 00001a44: PUSH2 0x1a4b 00001a47: JUMPI 00001a48: PUSH0 00001a49: DUP1 00001a4a: REVERT 00001a4b: JUMPDEST 00001a4c: DUP2 00001a4d: CALLDATALOAD 00001a4e: DUP2 00001a4f: DUP2 00001a50: GT 00001a51: ISZERO 00001a52: PUSH2 0x1a5d 00001a55: JUMPI 00001a56: PUSH2 0x1a5d 00001a59: PUSH2 0x19cb 00001a5c: JUMP 00001a5d: JUMPDEST 00001a5e: PUSH2 0x1a6f 00001a61: PUSH1 0x1f 00001a63: DUP3 00001a64: ADD 00001a65: PUSH1 0x1f 00001a67: NOT 00001a68: AND 00001a69: DUP6 00001a6a: ADD 00001a6b: PUSH2 0x19df 00001a6e: JUMP 00001a6f: JUMPDEST 00001a70: SWAP2 00001a71: POP 00001a72: DUP1 00001a73: DUP3 00001a74: MSTORE 00001a75: DUP7 00001a76: DUP5 00001a77: DUP3 00001a78: DUP6 00001a79: ADD 00001a7a: ADD 00001a7b: GT 00001a7c: ISZERO 00001a7d: PUSH2 0x1a84 00001a80: JUMPI 00001a81: PUSH0 00001a82: DUP1 00001a83: REVERT 00001a84: JUMPDEST 00001a85: DUP1 00001a86: DUP5 00001a87: DUP5 00001a88: ADD 00001a89: DUP6 00001a8a: DUP5 00001a8b: ADD 00001a8c: CALLDATACOPY 00001a8d: PUSH0 00001a8e: SWAP1 00001a8f: DUP3 00001a90: ADD 00001a91: SWAP1 00001a92: SWAP4 00001a93: ADD 00001a94: SWAP3 00001a95: SWAP1 00001a96: SWAP3 00001a97: MSTORE 00001a98: POP 00001a99: SWAP4 00001a9a: SWAP3 00001a9b: POP 00001a9c: POP 00001a9d: POP 00001a9e: JUMP 00001a9f: JUMPDEST 00001aa0: PUSH0 00001aa1: DUP1 00001aa2: PUSH0 00001aa3: PUSH1 0x60 00001aa5: DUP5 00001aa6: DUP7 00001aa7: SUB 00001aa8: SLT 00001aa9: ISZERO 00001aaa: PUSH2 0x1ab1 00001aad: JUMPI 00001aae: PUSH0 00001aaf: DUP1 00001ab0: REVERT 00001ab1: JUMPDEST 00001ab2: DUP4 00001ab3: CALLDATALOAD 00001ab4: PUSH2 0x1abc 00001ab7: DUP2 00001ab8: PUSH2 0x194f 00001abb: JUMP 00001abc: JUMPDEST 00001abd: SWAP6 00001abe: PUSH1 0x20 00001ac0: DUP6 00001ac1: ADD 00001ac2: CALLDATALOAD 00001ac3: SWAP6 00001ac4: POP 00001ac5: PUSH1 0x40 00001ac7: SWAP1 00001ac8: SWAP5 00001ac9: ADD 00001aca: CALLDATALOAD 00001acb: SWAP4 00001acc: SWAP3 00001acd: POP 00001ace: POP 00001acf: POP 00001ad0: JUMP 00001ad1: JUMPDEST 00001ad2: PUSH0 00001ad3: PUSH1 0x20 00001ad5: DUP3 00001ad6: DUP5 00001ad7: SUB 00001ad8: SLT 00001ad9: ISZERO 00001ada: PUSH2 0x1ae1 00001add: JUMPI 00001ade: PUSH0 00001adf: DUP1 00001ae0: REVERT 00001ae1: JUMPDEST 00001ae2: DUP2 00001ae3: CALLDATALOAD 00001ae4: PUSH2 0x1115 00001ae7: DUP2 00001ae8: PUSH2 0x194f 00001aeb: JUMP 00001aec: JUMPDEST 00001aed: PUSH0 00001aee: DUP1 00001aef: PUSH1 0x40 00001af1: DUP4 00001af2: DUP6 00001af3: SUB 00001af4: SLT 00001af5: ISZERO 00001af6: PUSH2 0x1afd 00001af9: JUMPI 00001afa: PUSH0 00001afb: DUP1 00001afc: REVERT 00001afd: JUMPDEST 00001afe: POP 00001aff: POP 00001b00: DUP1 00001b01: CALLDATALOAD 00001b02: SWAP3 00001b03: PUSH1 0x20 00001b05: SWAP1 00001b06: SWAP2 00001b07: ADD 00001b08: CALLDATALOAD 00001b09: SWAP2 00001b0a: POP 00001b0b: JUMP 00001b0c: JUMPDEST 00001b0d: PUSH0 00001b0e: PUSH8 0xffffffffffffffff 00001b17: DUP3 00001b18: GT 00001b19: ISZERO 00001b1a: PUSH2 0x1b25 00001b1d: JUMPI 00001b1e: PUSH2 0x1b25 00001b21: PUSH2 0x19cb 00001b24: JUMP 00001b25: JUMPDEST 00001b26: POP 00001b27: PUSH1 0x05 00001b29: SHL 00001b2a: PUSH1 0x20 00001b2c: ADD 00001b2d: SWAP1 00001b2e: JUMP 00001b2f: JUMPDEST 00001b30: PUSH0 00001b31: DUP3 00001b32: PUSH1 0x1f 00001b34: DUP4 00001b35: ADD 00001b36: SLT 00001b37: PUSH2 0x1b3e 00001b3a: JUMPI 00001b3b: PUSH0 00001b3c: DUP1 00001b3d: REVERT 00001b3e: JUMPDEST 00001b3f: DUP2 00001b40: CALLDATALOAD 00001b41: PUSH1 0x20 00001b43: PUSH2 0x1b53 00001b46: PUSH2 0x1b4e 00001b49: DUP4 00001b4a: PUSH2 0x1b0c 00001b4d: JUMP 00001b4e: JUMPDEST 00001b4f: PUSH2 0x19df 00001b52: JUMP 00001b53: JUMPDEST 00001b54: DUP3 00001b55: DUP2 00001b56: MSTORE 00001b57: PUSH1 0x05 00001b59: SWAP3 00001b5a: SWAP1 00001b5b: SWAP3 00001b5c: SHL 00001b5d: DUP5 00001b5e: ADD 00001b5f: DUP2 00001b60: ADD 00001b61: SWAP2 00001b62: DUP2 00001b63: DUP2 00001b64: ADD 00001b65: SWAP1 00001b66: DUP7 00001b67: DUP5 00001b68: GT 00001b69: ISZERO 00001b6a: PUSH2 0x1b71 00001b6d: JUMPI 00001b6e: PUSH0 00001b6f: DUP1 00001b70: REVERT 00001b71: JUMPDEST 00001b72: DUP3 00001b73: DUP7 00001b74: ADD 00001b75: JUMPDEST 00001b76: DUP5 00001b77: DUP2 00001b78: LT 00001b79: ISZERO 00001b7a: PUSH2 0x1b8c 00001b7d: JUMPI 00001b7e: DUP1 00001b7f: CALLDATALOAD 00001b80: DUP4 00001b81: MSTORE 00001b82: SWAP2 00001b83: DUP4 00001b84: ADD 00001b85: SWAP2 00001b86: DUP4 00001b87: ADD 00001b88: PUSH2 0x1b75 00001b8b: JUMP 00001b8c: JUMPDEST 00001b8d: POP 00001b8e: SWAP7 00001b8f: SWAP6 00001b90: POP 00001b91: POP 00001b92: POP 00001b93: POP 00001b94: POP 00001b95: POP 00001b96: JUMP 00001b97: JUMPDEST 00001b98: PUSH0 00001b99: DUP1 00001b9a: PUSH1 0x40 00001b9c: DUP4 00001b9d: DUP6 00001b9e: SUB 00001b9f: SLT 00001ba0: ISZERO 00001ba1: PUSH2 0x1ba8 00001ba4: JUMPI 00001ba5: PUSH0 00001ba6: DUP1 00001ba7: REVERT 00001ba8: JUMPDEST 00001ba9: DUP3 00001baa: CALLDATALOAD 00001bab: PUSH8 0xffffffffffffffff 00001bb4: DUP1 00001bb5: DUP3 00001bb6: GT 00001bb7: ISZERO 00001bb8: PUSH2 0x1bbf 00001bbb: JUMPI 00001bbc: PUSH0 00001bbd: DUP1 00001bbe: REVERT 00001bbf: JUMPDEST 00001bc0: DUP2 00001bc1: DUP6 00001bc2: ADD 00001bc3: SWAP2 00001bc4: POP 00001bc5: DUP6 00001bc6: PUSH1 0x1f 00001bc8: DUP4 00001bc9: ADD 00001bca: SLT 00001bcb: PUSH2 0x1bd2 00001bce: JUMPI 00001bcf: PUSH0 00001bd0: DUP1 00001bd1: REVERT 00001bd2: JUMPDEST 00001bd3: DUP2 00001bd4: CALLDATALOAD 00001bd5: PUSH1 0x20 00001bd7: PUSH2 0x1be2 00001bda: PUSH2 0x1b4e 00001bdd: DUP4 00001bde: PUSH2 0x1b0c 00001be1: JUMP 00001be2: JUMPDEST 00001be3: DUP3 00001be4: DUP2 00001be5: MSTORE 00001be6: PUSH1 0x05 00001be8: SWAP3 00001be9: SWAP1 00001bea: SWAP3 00001beb: SHL 00001bec: DUP5 00001bed: ADD 00001bee: DUP2 00001bef: ADD 00001bf0: SWAP2 00001bf1: DUP2 00001bf2: DUP2 00001bf3: ADD 00001bf4: SWAP1 00001bf5: DUP10 00001bf6: DUP5 00001bf7: GT 00001bf8: ISZERO 00001bf9: PUSH2 0x1c00 00001bfc: JUMPI 00001bfd: PUSH0 00001bfe: DUP1 00001bff: REVERT 00001c00: JUMPDEST 00001c01: SWAP5 00001c02: DUP3 00001c03: ADD 00001c04: SWAP5 00001c05: JUMPDEST 00001c06: DUP4 00001c07: DUP7 00001c08: LT 00001c09: ISZERO 00001c0a: PUSH2 0x1c27 00001c0d: JUMPI 00001c0e: DUP6 00001c0f: CALLDATALOAD 00001c10: PUSH2 0x1c18 00001c13: DUP2 00001c14: PUSH2 0x194f 00001c17: JUMP 00001c18: JUMPDEST 00001c19: DUP3 00001c1a: MSTORE 00001c1b: SWAP5 00001c1c: DUP3 00001c1d: ADD 00001c1e: SWAP5 00001c1f: SWAP1 00001c20: DUP3 00001c21: ADD 00001c22: SWAP1 00001c23: PUSH2 0x1c05 00001c26: JUMP 00001c27: JUMPDEST 00001c28: SWAP7 00001c29: POP 00001c2a: POP 00001c2b: DUP7 00001c2c: ADD 00001c2d: CALLDATALOAD 00001c2e: SWAP3 00001c2f: POP 00001c30: POP 00001c31: DUP1 00001c32: DUP3 00001c33: GT 00001c34: ISZERO 00001c35: PUSH2 0x1c3c 00001c38: JUMPI 00001c39: PUSH0 00001c3a: DUP1 00001c3b: REVERT 00001c3c: JUMPDEST 00001c3d: POP 00001c3e: PUSH2 0x1c49 00001c41: DUP6 00001c42: DUP3 00001c43: DUP7 00001c44: ADD 00001c45: PUSH2 0x1b2f 00001c48: JUMP 00001c49: JUMPDEST 00001c4a: SWAP2 00001c4b: POP 00001c4c: POP 00001c4d: SWAP3 00001c4e: POP 00001c4f: SWAP3 00001c50: SWAP1 00001c51: POP 00001c52: JUMP 00001c53: JUMPDEST 00001c54: PUSH0 00001c55: DUP1 00001c56: PUSH1 0x40 00001c58: DUP4 00001c59: DUP6 00001c5a: SUB 00001c5b: SLT 00001c5c: ISZERO 00001c5d: PUSH2 0x1c64 00001c60: JUMPI 00001c61: PUSH0 00001c62: DUP1 00001c63: REVERT 00001c64: JUMPDEST 00001c65: DUP3 00001c66: CALLDATALOAD 00001c67: PUSH2 0x1c6f 00001c6a: DUP2 00001c6b: PUSH2 0x194f 00001c6e: JUMP 00001c6f: JUMPDEST 00001c70: SWAP2 00001c71: POP 00001c72: PUSH1 0x20 00001c74: DUP4 00001c75: ADD 00001c76: CALLDATALOAD 00001c77: PUSH2 0x1c7f 00001c7a: DUP2 00001c7b: PUSH2 0x194f 00001c7e: JUMP 00001c7f: JUMPDEST 00001c80: DUP1 00001c81: SWAP2 00001c82: POP 00001c83: POP 00001c84: SWAP3 00001c85: POP 00001c86: SWAP3 00001c87: SWAP1 00001c88: POP 00001c89: JUMP 00001c8a: JUMPDEST 00001c8b: PUSH0 00001c8c: PUSH1 0x20 00001c8e: DUP3 00001c8f: DUP5 00001c90: SUB 00001c91: SLT 00001c92: ISZERO 00001c93: PUSH2 0x1c9a 00001c96: JUMPI 00001c97: PUSH0 00001c98: DUP1 00001c99: REVERT 00001c9a: JUMPDEST 00001c9b: POP 00001c9c: CALLDATALOAD 00001c9d: SWAP2 00001c9e: SWAP1 00001c9f: POP 00001ca0: JUMP 00001ca1: JUMPDEST 00001ca2: PUSH4 0x4e487b71 00001ca7: PUSH1 0xe0 00001ca9: SHL 00001caa: PUSH0 00001cab: MSTORE 00001cac: PUSH1 0x11 00001cae: PUSH1 0x04 00001cb0: MSTORE 00001cb1: PUSH1 0x24 00001cb3: PUSH0 00001cb4: REVERT 00001cb5: JUMPDEST 00001cb6: DUP1 00001cb7: DUP3 00001cb8: MUL 00001cb9: DUP2 00001cba: ISZERO 00001cbb: DUP3 00001cbc: DUP3 00001cbd: DIV 00001cbe: DUP5 00001cbf: EQ 00001cc0: OR 00001cc1: PUSH2 0x0838 00001cc4: JUMPI 00001cc5: PUSH2 0x0838 00001cc8: PUSH2 0x1ca1 00001ccb: JUMP 00001ccc: JUMPDEST 00001ccd: PUSH0 00001cce: DUP3 00001ccf: PUSH2 0x1ce6 00001cd2: JUMPI 00001cd3: PUSH4 0x4e487b71 00001cd8: PUSH1 0xe0 00001cda: SHL 00001cdb: PUSH0 00001cdc: MSTORE 00001cdd: PUSH1 0x12 00001cdf: PUSH1 0x04 00001ce1: MSTORE 00001ce2: PUSH1 0x24 00001ce4: PUSH0 00001ce5: REVERT 00001ce6: JUMPDEST 00001ce7: POP 00001ce8: DIV 00001ce9: SWAP1 00001cea: JUMP 00001ceb: JUMPDEST 00001cec: DUP2 00001ced: DUP2 00001cee: SUB 00001cef: DUP2 00001cf0: DUP2 00001cf1: GT 00001cf2: ISZERO 00001cf3: PUSH2 0x0838 00001cf6: JUMPI 00001cf7: PUSH2 0x0838 00001cfa: PUSH2 0x1ca1 00001cfd: JUMP 00001cfe: JUMPDEST 00001cff: DUP1 00001d00: DUP3 00001d01: ADD 00001d02: DUP1 00001d03: DUP3 00001d04: GT 00001d05: ISZERO 00001d06: PUSH2 0x0838 00001d09: JUMPI 00001d0a: PUSH2 0x0838 00001d0d: PUSH2 0x1ca1 00001d10: JUMP 00001d11: JUMPDEST 00001d12: PUSH1 0x01 00001d14: DUP2 00001d15: DUP2 00001d16: SHR 00001d17: SWAP1 00001d18: DUP3 00001d19: AND 00001d1a: DUP1 00001d1b: PUSH2 0x1d25 00001d1e: JUMPI 00001d1f: PUSH1 0x7f 00001d21: DUP3 00001d22: AND 00001d23: SWAP2 00001d24: POP 00001d25: JUMPDEST 00001d26: PUSH1 0x20 00001d28: DUP3 00001d29: LT 00001d2a: DUP2 00001d2b: SUB 00001d2c: PUSH2 0x1d43 00001d2f: JUMPI 00001d30: PUSH4 0x4e487b71 00001d35: PUSH1 0xe0 00001d37: SHL 00001d38: PUSH0 00001d39: MSTORE 00001d3a: PUSH1 0x22 00001d3c: PUSH1 0x04 00001d3e: MSTORE 00001d3f: PUSH1 0x24 00001d41: PUSH0 00001d42: REVERT 00001d43: JUMPDEST 00001d44: POP 00001d45: SWAP2 00001d46: SWAP1 00001d47: POP 00001d48: JUMP 00001d49: JUMPDEST 00001d4a: PUSH1 0x1f 00001d4c: DUP3 00001d4d: GT 00001d4e: ISZERO 00001d4f: PUSH2 0x0a49 00001d52: JUMPI 00001d53: PUSH0 00001d54: DUP2 00001d55: DUP2 00001d56: MSTORE 00001d57: PUSH1 0x20 00001d59: DUP2 00001d5a: KECCAK256 00001d5b: PUSH1 0x1f 00001d5d: DUP6 00001d5e: ADD 00001d5f: PUSH1 0x05 00001d61: SHR 00001d62: DUP2 00001d63: ADD 00001d64: PUSH1 0x20 00001d66: DUP7 00001d67: LT 00001d68: ISZERO 00001d69: PUSH2 0x1d6f 00001d6c: JUMPI 00001d6d: POP 00001d6e: DUP1 00001d6f: JUMPDEST 00001d70: PUSH1 0x1f 00001d72: DUP6 00001d73: ADD 00001d74: PUSH1 0x05 00001d76: SHR 00001d77: DUP3 00001d78: ADD 00001d79: SWAP2 00001d7a: POP 00001d7b: JUMPDEST 00001d7c: DUP2 00001d7d: DUP2 00001d7e: LT 00001d7f: ISZERO 00001d80: PUSH2 0x0fd9 00001d83: JUMPI 00001d84: DUP3 00001d85: DUP2 00001d86: SSTORE 00001d87: PUSH1 0x01 00001d89: ADD 00001d8a: PUSH2 0x1d7b 00001d8d: JUMP 00001d8e: JUMPDEST 00001d8f: DUP2 00001d90: MLOAD 00001d91: PUSH8 0xffffffffffffffff 00001d9a: DUP2 00001d9b: GT 00001d9c: ISZERO 00001d9d: PUSH2 0x1da8 00001da0: JUMPI 00001da1: PUSH2 0x1da8 00001da4: PUSH2 0x19cb 00001da7: JUMP 00001da8: JUMPDEST 00001da9: PUSH2 0x1dbc 00001dac: DUP2 00001dad: PUSH2 0x1db6 00001db0: DUP5 00001db1: SLOAD 00001db2: PUSH2 0x1d11 00001db5: JUMP 00001db6: JUMPDEST 00001db7: DUP5 00001db8: PUSH2 0x1d49 00001dbb: JUMP 00001dbc: JUMPDEST 00001dbd: PUSH1 0x20 00001dbf: DUP1 00001dc0: PUSH1 0x1f 00001dc2: DUP4 00001dc3: GT 00001dc4: PUSH1 0x01 00001dc6: DUP2 00001dc7: EQ 00001dc8: PUSH2 0x1def 00001dcb: JUMPI 00001dcc: PUSH0 00001dcd: DUP5 00001dce: ISZERO 00001dcf: PUSH2 0x1dd8 00001dd2: JUMPI 00001dd3: POP 00001dd4: DUP6 00001dd5: DUP4 00001dd6: ADD 00001dd7: MLOAD 00001dd8: JUMPDEST 00001dd9: PUSH0 00001dda: NOT 00001ddb: PUSH1 0x03 00001ddd: DUP7 00001dde: SWAP1 00001ddf: SHL 00001de0: SHR 00001de1: NOT 00001de2: AND 00001de3: PUSH1 0x01 00001de5: DUP6 00001de6: SWAP1 00001de7: SHL 00001de8: OR 00001de9: DUP6 00001dea: SSTORE 00001deb: PUSH2 0x0fd9 00001dee: JUMP 00001def: JUMPDEST 00001df0: PUSH0 00001df1: DUP6 00001df2: DUP2 00001df3: MSTORE 00001df4: PUSH1 0x20 00001df6: DUP2 00001df7: KECCAK256 00001df8: PUSH1 0x1f 00001dfa: NOT 00001dfb: DUP7 00001dfc: AND 00001dfd: SWAP2 00001dfe: JUMPDEST 00001dff: DUP3 00001e00: DUP2 00001e01: LT 00001e02: ISZERO 00001e03: PUSH2 0x1e1d 00001e06: JUMPI 00001e07: DUP9 00001e08: DUP7 00001e09: ADD 00001e0a: MLOAD 00001e0b: DUP3 00001e0c: SSTORE 00001e0d: SWAP5 00001e0e: DUP5 00001e0f: ADD 00001e10: SWAP5 00001e11: PUSH1 0x01 00001e13: SWAP1 00001e14: SWAP2 00001e15: ADD 00001e16: SWAP1 00001e17: DUP5 00001e18: ADD 00001e19: PUSH2 0x1dfe 00001e1c: JUMP 00001e1d: JUMPDEST 00001e1e: POP 00001e1f: DUP6 00001e20: DUP3 00001e21: LT 00001e22: ISZERO 00001e23: PUSH2 0x1e3a 00001e26: JUMPI 00001e27: DUP8 00001e28: DUP6 00001e29: ADD 00001e2a: MLOAD 00001e2b: PUSH0 00001e2c: NOT 00001e2d: PUSH1 0x03 00001e2f: DUP9 00001e30: SWAP1 00001e31: SHL 00001e32: PUSH1 0xf8 00001e34: AND 00001e35: SHR 00001e36: NOT 00001e37: AND 00001e38: DUP2 00001e39: SSTORE 00001e3a: JUMPDEST 00001e3b: POP 00001e3c: POP 00001e3d: POP 00001e3e: POP 00001e3f: POP 00001e40: PUSH1 0x01 00001e42: SWAP1 00001e43: DUP2 00001e44: SHL 00001e45: ADD 00001e46: SWAP1 00001e47: SSTORE 00001e48: POP 00001e49: JUMP 00001e4a: JUMPDEST 00001e4b: PUSH0 00001e4c: PUSH1 0x20 00001e4e: DUP3 00001e4f: DUP5 00001e50: SUB 00001e51: SLT 00001e52: ISZERO 00001e53: PUSH2 0x1e5a 00001e56: JUMPI 00001e57: PUSH0 00001e58: DUP1 00001e59: REVERT 00001e5a: JUMPDEST 00001e5b: DUP2 00001e5c: MLOAD 00001e5d: PUSH2 0x1115 00001e60: DUP2 00001e61: PUSH2 0x194f 00001e64: JUMP 00001e65: JUMPDEST 00001e66: PUSH4 0x4e487b71 00001e6b: PUSH1 0xe0 00001e6d: SHL 00001e6e: PUSH0 00001e6f: MSTORE 00001e70: PUSH1 0x32 00001e72: PUSH1 0x04 00001e74: MSTORE 00001e75: PUSH1 0x24 00001e77: PUSH0 00001e78: REVERT 00001e79: JUMPDEST 00001e7a: PUSH0 00001e7b: PUSH1 0x01 00001e7d: DUP3 00001e7e: ADD 00001e7f: PUSH2 0x1e8a 00001e82: JUMPI 00001e83: PUSH2 0x1e8a 00001e86: PUSH2 0x1ca1 00001e89: JUMP 00001e8a: JUMPDEST 00001e8b: POP 00001e8c: PUSH1 0x01 00001e8e: ADD 00001e8f: SWAP1 00001e90: JUMP 00001e91: INVALID 00001e92: LOG2 00001e93: PUSH5 0x6970667358 00001e99: UNKNOWN(0x22) 00001e9a: SLT 00001e9b: KECCAK256 00001e9c: UNKNOWN(0xD7) 00001e9d: SELFBALANCE 00001e9e: CREATE2 00001e9f: SHR 00001ea0: UNKNOWN(0x2F) 00001ea1: UNKNOWN(0x2E) 00001ea2: UNKNOWN(0xD7) 00001ea3: XOR 00001ea4: NOT 00001ea5: UNKNOWN(0xB6) 00001ea6: DELEGATECALL 00001ea7: UNKNOWN(0xB5) 00001ea8: UNKNOWN(0xE1) 00001ea9: MSTORE8 00001eaa: CLZ 00001eab: PUSH16 0x01b17135deaca5812e49dadc9b5acb6b 00001ebc: PUSH5 0x736f6c6343 00001ec2: STOP 00001ec3: ADDMOD 00001ec4: EQ 00001ec5: STOP 00001ec6: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0xbb37422616f33ebaa2567ea007ff47ac3fa9ce5305ef8e6cd2157ce6fd98402e
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0xbb37422616f33ebaa2567ea007ff47ac3fa9ce5305ef8e6cd2157ce6fd98402e",
"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": "0xe4849b32",
"selector": "0xe4849b32",
"calldata_variants": [
"0xe4849b32",
"0xe4849b320000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeb1715cc",
"selector": "0xeb1715cc",
"calldata_variants": [
"0xeb1715cc",
"0xeb1715cc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf088d547",
"selector": "0xf088d547",
"calldata_variants": [
"0xf088d547",
"0xf088d5470000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xabff0110",
"selector": "0xabff0110",
"calldata_variants": [
"0xabff0110",
"0xabff01100000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb45323b4",
"selector": "0xb45323b4",
"calldata_variants": [
"0xb45323b4",
"0xb45323b40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd86f0aab",
"selector": "0xd86f0aab",
"calldata_variants": [
"0xd86f0aab",
"0xd86f0aab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 7846,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x57c582ea0bb075cd36a1e96b270212473bf78c960e6aebf665f7e8ae2dc76740
call_targets:
0x1123f22a0c120d07cd660759839ae746c7a778ff
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x57c582ea0bb075cd36a1e96b270212473bf78c960e6aebf665f7e8ae2dc76740",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1123f22a0c120d07cd660759839ae746c7a778ff"
],
"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": "0xe4849b32",
"selector": "0xe4849b32",
"calldata_variants": [
"0xe4849b32",
"0xe4849b320000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeb1715cc",
"selector": "0xeb1715cc",
"calldata_variants": [
"0xeb1715cc",
"0xeb1715cc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf088d547",
"selector": "0xf088d547",
"calldata_variants": [
"0xf088d547",
"0xf088d5470000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xabff0110",
"selector": "0xabff0110",
"calldata_variants": [
"0xabff0110",
"0xabff01100000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb45323b4",
"selector": "0xb45323b4",
"calldata_variants": [
"0xb45323b4",
"0xb45323b40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd86f0aab",
"selector": "0xd86f0aab",
"calldata_variants": [
"0xd86f0aab",
"0xd86f0aab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5683,
"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: 0x57c582ea0bb075cd36a1e96b270212473bf78c960e6aebf665f7e8ae2dc76740
call_targets:
0x1123f22a0c120d07cd660759839ae746c7a778ff
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x57c582ea0bb075cd36a1e96b270212473bf78c960e6aebf665f7e8ae2dc76740",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x1123f22a0c120d07cd660759839ae746c7a778ff"
],
"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": "0xe4849b32",
"selector": "0xe4849b32",
"calldata_variants": [
"0xe4849b32",
"0xe4849b320000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeb1715cc",
"selector": "0xeb1715cc",
"calldata_variants": [
"0xeb1715cc",
"0xeb1715cc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf088d547",
"selector": "0xf088d547",
"calldata_variants": [
"0xf088d547",
"0xf088d5470000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xabff0110",
"selector": "0xabff0110",
"calldata_variants": [
"0xabff0110",
"0xabff01100000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb45323b4",
"selector": "0xb45323b4",
"calldata_variants": [
"0xb45323b4",
"0xb45323b40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd86f0aab",
"selector": "0xd86f0aab",
"calldata_variants": [
"0xd86f0aab",
"0xd86f0aab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5683,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 1,
"guards_detected": []
}
|
| high | other | slither | Stock._sell(address,uint256) (contracts/Stock.sol#111-150) sends eth to arbitrary user | 85 | no | — |
viewevidence_json{
"impact": "High",
"detector": "arbitrary-send-eth",
"elements": [
{
"name": "_sell",
"type": "function",
"source_mapping": {
"lines": [
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150
],
"start": 2645,
"length": 1143,
"ending_column": 3,
"is_dependency": false,
"filename_short": "contracts/Stock.sol",
"starting_column": 2,
"filename_absolute": "/tmp/slither-z05148xz/contracts/Stock.sol",
"filename_relative": "contracts/Stock.sol"
},
"type_specific_fields": {
"parent": {
"name": "Stock",
"type": "contract",
"source_mapping": {
"lines": [
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274
],
"start": 198,
"length": 6926,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/Stock.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-z05148xz/contracts/Stock.sol",
"filename_relative": "contracts/Stock.sol"
}
},
"signature": "_sell(address,uint256)"
}
},
{
"name": "(success,None) = __from.call{value: _totalSellAmount}()",
"type": "node",
"source_mapping": {
"lines": [
144
],
"start": 3578,
"length": 61,
"ending_column": 64,
"is_dependency": false,
"filename_short": "contracts/Stock.sol",
"starting_column": 3,
"filename_absolute": "/tmp/slither-z05148xz/contracts/Stock.sol",
"filename_relative": "contracts/Stock.sol"
},
"type_specific_fields": {
"parent": {
"name": "_sell",
"type": "function",
"source_mapping": {
"lines": [
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150
],
"start": 2645,
"length": 1143,
"ending_column": 3,
"is_dependency": false,
"filename_short": "contracts/Stock.sol",
"starting_column": 2,
"filename_absolute": "/tmp/slither-z05148xz/contracts/Stock.sol",
"filename_relative": "contracts/Stock.sol"
},
"type_specific_fields": {
"parent": {
"name": "Stock",
"type": "contract",
"source_mapping": {
"lines": [
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50,
51,
52,
53,
54,
55,
56,
57,
58,
59,
60,
61,
62,
63,
64,
65,
66,
67,
68,
69,
70,
71,
72,
73,
74,
75,
76,
77,
78,
79,
80,
81,
82,
83,
84,
85,
86,
87,
88,
89,
90,
91,
92,
93,
94,
95,
96,
97,
98,
99,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
164,
165,
166,
167,
168,
169,
170,
171,
172,
173,
174,
175,
176,
177,
178,
179,
180,
181,
182,
183,
184,
185,
186,
187,
188,
189,
190,
191,
192,
193,
194,
195,
196,
197,
198,
199,
200,
201,
202,
203,
204,
205,
206,
207,
208,
209,
210,
211,
212,
213,
214,
215,
216,
217,
218,
219,
220,
221,
222,
223,
224,
225,
226,
227,
228,
229,
230,
231,
232,
233,
234,
235,
236,
237,
238,
239,
240,
241,
242,
243,
244,
245,
246,
247,
248,
249,
250,
251,
252,
253,
254,
255,
256,
257,
258,
259,
260,
261,
262,
263,
264,
265,
266,
267,
268,
269,
270,
271,
272,
273,
274
],
"start": 198,
"length": 6926,
"ending_column": 2,
"is_dependency": false,
"filename_short": "contracts/Stock.sol",
"starting_column": 1,
"filename_absolute": "/tmp/slither-z05148xz/contracts/Stock.sol",
"filename_relative": "contracts/Stock.sol"
}
},
"signature": "_sell(address,uint256)"
}
}
}
}
],
"locations": [
{
"file": "contracts/Stock.sol",
"name": "_sell",
"type": "function",
"lines": [
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150
]
},
{
"file": "contracts/Stock.sol",
"name": "(success,None) = __from.call{value: _totalSellAmount}()",
"type": "node",
"lines": [
144
]
}
],
"description": "Stock._sell(address,uint256) (contracts/Stock.sol#111-150) sends eth to arbitrary user\n\tDangerous calls:\n\t- (success,None) = __from.call{value: _totalSellAmount}() (contracts/Stock.sol#144)"
}
|
| medium | auth | codex | exerciseStockOption checks vesting for msg.sender instead of target account | 75 | no | — |
viewevidence_json{
"evidence": "_exerciseOption uses evaluateExercisable(_msgSender(), __grantNo) before updating the option for __account, so exerciseStockOption validates the caller\u2019s vesting instead of the target\u2019s.",
"locations": [
"contracts/Stock.sol:219",
"contracts/Stock.sol:224",
"contracts/Stock.sol:206"
],
"recommendation": "In _exerciseOption, compute exercisable using the target account (evaluateExercisable(__account, __grantNo)) and ensure _option.vested + __amount <= _option.granted before transferring.",
"exploit_scenario": "An owner of a contract address calls exerciseStockOption for that contract\u2019s grant. _exerciseOption verifies exercisable options for msg.sender (the owner), not the target __account. If the owner has sufficient vested options under the same grant number, they can exercise any amount for the contract even if the contract\u2019s option is unvested or exceeds its grant, transferring tokens from broker to the contract and bypassing the intended vesting/invariant checks."
}
|
| 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: 0xa67078b05916791b1bad1fee3f2fd5d3703c4322dfc4db35738aa6aa20f7f91f
validation_json{
"sink": "CREATE",
"errors": 0,
"status": "unknown",
"attempts": 32,
"trace_id": "0xa67078b05916791b1bad1fee3f2fd5d3703c4322dfc4db35738aa6aa20f7f91f",
"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": "0xe4849b32",
"selector": "0xe4849b32",
"calldata_variants": [
"0xe4849b32",
"0xe4849b320000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xeb1715cc",
"selector": "0xeb1715cc",
"calldata_variants": [
"0xeb1715cc",
"0xeb1715cc0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf088d547",
"selector": "0xf088d547",
"calldata_variants": [
"0xf088d547",
"0xf088d5470000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xabff0110",
"selector": "0xabff0110",
"calldata_variants": [
"0xabff0110",
"0xabff01100000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb45323b4",
"selector": "0xb45323b4",
"calldata_variants": [
"0xb45323b4",
"0xb45323b40000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd86f0aab",
"selector": "0xd86f0aab",
"calldata_variants": [
"0xd86f0aab",
"0xd86f0aab0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdd62ed3e",
"selector": "0xdd62ed3e",
"calldata_variants": [
"0xdd62ed3e",
"0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"create_count": 0,
"create2_count": 1
}
|
| low | other | cast | Contract creation opcode present | 60 | no | — |
viewevidence_json{
"notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
"create_count": 0,
"create2_count": 1
}
|