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

Analysis Run

019bab3b-ac0d-70eb-9589-3835283d1f66

complete
Chain ID
1
Address
Block Number
Created
Sun, Jan 11, 2026 4:06 AM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Reentrancy in DividendPayingToken._withdrawDividendOfUser(address) (contracts/DividendPayingToken.sol#86-95):
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
38695 artifact.fetch complete 1 / 3 3 months ago
38696 proxy.resolve complete 1 / 3 3 months ago
38697 tool.cast_disasm complete 1 / 3 3 months ago
38698 analysis.bundle complete 1 / 3 3 months ago
38699 capability.graph complete 1 / 3 3 months ago
38700 detector.run complete 1 / 3 3 months ago
38701 validation.fork complete 1 / 3 3 months ago
39138 report.consolidate complete 1 / 6 3 months ago
39139 tool.slither complete 1 / 2 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither
Status
complete
Attempts
1 / 2
Findings
2
Solc
0.8.0 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-harvljl4)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-harvljl4)

Reentrancy in DividendPayingToken._withdrawDividendOfUser(address) (contracts/DividendPayingToken.sol#86-95):
	External calls:
	- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (contracts/DividendPayingToken.sol#90)
	State variables written after the call(s):
	- withdrawnDividends[user] = _withdrawnAmount (contracts/DividendPayingToken.sol#91-92)
	DividendPayingToken.withdrawnDividends (contracts/DividendPayingToken.sol#41-42) can be used in cross function reentrancies:
	- DividendPayingToken._withdrawDividendOfUser(address) (contracts/DividendPayingToken.sol#86-95)
	- DividendPayingToken.withdrawableDividendOf(address) (contracts/DividendPayingToken.sol#110-113)
	- DividendPayingToken.withdrawnDividendOf(address) (contracts/DividendPayingToken.sol#118-120)
Reentrancy in FetchInuDividendTracker.process(uint256) (contracts/FetchInuDividendTracker.sol#156-201):
	External calls:
	- _processAccount(address(account)) (contracts/FetchInuDividendTracker.sol#184-185)
		- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (contracts/DividendPayingToken.sol#90)
	State variables written after the call(s):
	- lastProcessedIndex = _lastProcessedIndex (contracts/FetchInuDividendTracker.sol#196-198)
	FetchInuDividendTracker.lastProcessedIndex (contracts/FetchInuDividendTracker.sol#10-11) can be used in cross function reentrancies:
	- FetchInuDividendTracker._getAccount(address) (contracts/FetchInuDividendTracker.sol#46-88)
	- FetchInuDividendTracker.getLastProcessedIndex() (contracts/FetchInuDividendTracker.sol#29-32)
	- FetchInuDividendTracker.lastProcessedIndex (contracts/FetchInuDividendTracker.sol#10-11)
	- FetchInuDividendTracker.process(uint256) (contracts/FetchInuDividendTracker.sol#156-201)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities

DividendPayingToken.constructor(string,string)._name (contracts/DividendPayingToken.sol#42) shadows:
	- ERC20._name (contracts/ERC20.sol#40-41) (state variable)
DividendPayingToken.constructor(string,string)._symbol (contracts/DividendPayingToken.sol#42-46) shadows:
	- ERC20._symbol (contracts/ERC20.sol#41-43) (state variable)
DividendPayingToken.dividendOf(address)._owner (contracts/DividendPayingToken.sol#102-103) shadows:
	- Ownable._owner (contracts/Ownable.sol#7-8) (state variable)
DividendPayingToken.withdrawableDividendOf(address)._owner (contracts/DividendPayingToken.sol#110-111) shadows:
	- Ownable._owner (contracts/Ownable.sol#7-8) (state variable)
DividendPayingToken.withdrawnDividendOf(address)._owner (contracts/DividendPayingToken.sol#118-119) shadows:
	- Ownable._owner (contracts/Ownable.sol#7-8) (state variable)
DividendPayingToken.accumulativeDividendOf(address)._owner (contracts/DividendPayingToken.sol#128) shadows:
	- Ownable._owner (contracts/Ownable.sol#7-8) (state variable)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#local-variable-shadowing

DividendPayingToken._withdrawDividendOfUser(address) (contracts/DividendPayingToken.sol#86-95) has external calls inside a loop: (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (contracts/DividendPayingToken.sol#90)
	Calls stack containing the loop:
		FetchInuDividendTracker.process(uint256)
		FetchInuDividendTracker._processAccount(address)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop

Reentrancy in FetchInuDividendTracker._processAccount(address) (contracts/FetchInuDividendTracker.sol#148-154):
	External calls:
	- amount = _withdrawDividendOfUser(account) (contracts/FetchInuDividendTracker.sol#149-150)
		- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (contracts/DividendPayingToken.sol#90)
	State variables written after the call(s):
	- lastClaimTimes[account] = block.timestamp (contracts/FetchInuDividendTracker.sol#153)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2

Reentrancy in FetchInuDividendTracker.processAccount(address) (contracts/FetchInuDividendTracker.sol#139-148):
	External calls:
	- amount = _withdrawDividendOfUser(account) (contracts/FetchInuDividendTracker.sol#142-145)
		- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (contracts/DividendPayingToken.sol#90)
	Event emitted after the call(s):
	- Claim(account,amount) (contracts/FetchInuDividendTracker.sol#145-148)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3

DividendPayingToken._withdrawDividendOfUser(address) (contracts/DividendPayingToken.sol#86-95) tries to limit the gas of an external call that controls implicit decoding
	(success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (contracts/DividendPayingToken.sol#90)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#return-bomb

FetchInuDividendTracker._getAccount(address) (contracts/FetchInuDividendTracker.sol#46-88) uses timestamp for comparisons
	Dangerous comparisons:
	- nextClaimTime > block.timestamp (contracts/FetchInuDividendTracker.sol#84-88)
FetchInuDividendTracker.canAutoClaim(uint256) (contracts/FetchInuDividendTracker.sol#201-213) uses timestamp for comparisons
	Dangerous comparisons:
	- lastClaimTime > block.timestamp (contracts/FetchInuDividendTracker.sol#207)
	- block.timestamp.sub(lastClaimTime) >= claimWait (contracts/FetchInuDividendTracker.sol#209-212)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp

Context._msgData() (contracts/Context.sol#17-22) is never used and should be removed
ERC20._transfer(address,address,uint256) (contracts/ERC20.sol#203-221) is never used and should be removed
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dead-code

Version constraint ^0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation
	- SignedImmutables
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching.
It is used by:
	- ^0.8.0 (contracts/Context.sol#2-3)
	- ^0.8.0 (contracts/DividendPayingToken.sol#2-3)
	- ^0.8.0 (contracts/ERC20.sol#2-3)
	- ^0.8.0 (contracts/FetchInuDividendTracker.sol#1-2)
	- ^0.8.0 (contracts/IDividendPayingToken.sol#2-3)
	- ^0.8.0 (contracts/IDividendPayingTokenOptional.sol#2-3)
	- ^0.8.0 (contracts/IERC20.sol#2-3)
	- ^0.8.0 (contracts/IERC20Metadata.sol#2-3)
	- ^0.8.0 (contracts/IterableMapping.sol#1-2)
	- ^0.8.0 (contracts/Ownable.sol#1)
	- ^0.8.0 (contracts/SafeMath.sol#2-3)
	- ^0.8.0 (contracts/SafeMathInt.sol#24-26)
	- ^0.8.0 (contracts/SafeMathUint.sol#2-3)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Low level call in DividendPayingToken._withdrawDividendOfUser(address) (contracts/DividendPayingToken.sol#86-95):
	- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (contracts/DividendPayingToken.sol#90)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls

Parameter DividendPayingToken.dividendOf(address)._owner (contracts/DividendPayingToken.sol#102-103) is not in mixedCase
Parameter DividendPayingToken.withdrawableDividendOf(address)._owner (contracts/DividendPayingToken.sol#110-111) is not in mixedCase
Parameter DividendPayingToken.withdrawnDividendOf(address)._owner (contracts/DividendPayingToken.sol#118-119) is not in mixedCase
Parameter DividendPayingToken.accumulativeDividendOf(address)._owner (contracts/DividendPayingToken.sol#128) is not in mixedCase
Constant DividendPayingToken.magnitude (contracts/DividendPayingToken.sol#25-26) is not in UPPER_CASE_WITH_UNDERSCORES
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

Redundant expression "this (contracts/Context.sol#20)" inContext (contracts/Context.sol#13-22)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#redundant-statements

DividendPayingToken.lastAmount (contracts/DividendPayingToken.sol#27-28) is never used in FetchInuDividendTracker (contracts/FetchInuDividendTracker.sol#4-213)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-state-variable

DividendPayingToken.lastAmount (contracts/DividendPayingToken.sol#27-28) should be constant 
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant
. analyzed (13 contracts with 100 detectors), 26 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.8.0",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.8.0",
        "install_stderr": null,
        "install_stdout": "Version '0.8.0' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-harvljl4 --allow-paths /tmp/slither-harvljl4,/tmp/slither-harvljl4/lib,/tmp/slither-harvljl4/src",
    "remappings": [],
    "source_files": [
        "contracts/FetchInuDividendTracker.sol",
        "contracts/DividendPayingToken.sol",
        "contracts/IterableMapping.sol",
        "contracts/ERC20.sol",
        "contracts/Ownable.sol",
        "contracts/SafeMath.sol",
        "contracts/SafeMathUint.sol",
        "contracts/SafeMathInt.sol",
        "contracts/IDividendPayingToken.sol",
        "contracts/IDividendPayingTokenOptional.sol",
        "contracts/IERC20.sol",
        "contracts/IERC20Metadata.sol",
        "contracts/Context.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 26,
    "workspace_hash": "74d2daf76200bb7d56451d529d9f8aa9f65577ab2506f269dff0bf87098b456c",
    "duration_seconds": 1.0371882915496826,
    "solc_version_requested": "0.8.0"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
3
No findings?
no
Summary
Main risks are external-call ordering in dividend withdrawals, admin-controlled dividend share adjustments, and the fixed gas stipend that can lock dividends for contract wallets.
View stdout
{"no_findings":false,"summary":"Main risks are external-call ordering in dividend withdrawals, admin-controlled dividend share adjustments, and the fixed gas stipend that can lock dividends for contract wallets.","findings":[{"severity":"low","category":"reentrancy","title":"External ETH transfer before state update can allow reentrant double-claims","exploit_scenario":"A malicious dividend recipient contract can use its fallback to reenter `withdrawDividend` (or a future refactor that increases the call gas) before `withdrawnDividends` is updated, letting it withdraw the same dividends multiple times and drain the pool.","recommendation":"Apply checks-effects-interactions: update `withdrawnDividends` before the external call and revert on failure, or add a reentrancy guard around dividend withdrawals.","evidence":"`_withdrawDividendOfUser` sends ETH to `user` and only updates `withdrawnDividends` after the call succeeds.","locations":["contracts/DividendPayingToken.sol:87","contracts/DividendPayingToken.sol:90","contracts/DividendPayingToken.sol:91","contracts/DividendPayingToken.sol:95"]},{"severity":"low","category":"access_control","title":"Owner can arbitrarily change dividend shares and exclude accounts","exploit_scenario":"If the owner is compromised or malicious, it can call `setBalance` with arbitrary values or `excludeFromDividends` to remove accounts, diverting future dividends or blocking claims; since `withdrawDividend` is disabled, users cannot independently withdraw.","recommendation":"Restrict `setBalance` to a trusted token contract that enforces balance correctness, or add validation against the underlying token balance. Consider a timelock/multisig for owner actions and/or enable user-initiated withdrawals.","evidence":"`setBalance` accepts arbitrary `newBalance` under `onlyOwner`, and `excludeFromDividends` can remove accounts while `withdrawDividend` is disabled.","locations":["contracts/FetchInuDividendTracker.sol:28","contracts/FetchInuDividendTracker.sol:112","contracts/FetchInuDividendTracker.sol:132"]},{"severity":"low","category":"other","title":"Fixed 3000 gas stipend can permanently lock dividends for contract wallets","exploit_scenario":"If a holder is a contract whose fallback requires more than 3000 gas, every dividend payout attempt will fail and remain stuck. `process()` will keep retrying the same accounts, wasting gas and delaying other claims, and users cannot self-withdraw because `withdrawDividend` is disabled.","recommendation":"Remove the fixed 3000 gas stipend and rely on reentrancy protection, or allow users to call a withdrawal function that forwards sufficient gas. Optionally track repeated failures and skip them to avoid gas griefing.","evidence":"Dividend payouts use `call{gas:3000}` and `withdrawDividend` is disabled in the tracker, while `process` routes through `_withdrawDividendOfUser`.","locations":["contracts/DividendPayingToken.sol:91","contracts/FetchInuDividendTracker.sol:28","contracts/FetchInuDividendTracker.sol:153"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-fp25rhuj
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019babcb-abb1-7b21-a6ba-3f75815ebff3
--------
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 file**
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-fp25rhuj 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/Context.sol
================================================================================
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */

thinking
**Ensuring complete file reading**

I need to confirm I have the full AUDIT_BUNDLE.txt contents since the previous output was truncated mid-ERC20. I'll check file boundaries using ripgrep and then read the file in segments with sed to avoid truncation, making sure I get the entire content before moving forward.
exec
/bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-fp25rhuj succeeded in 6ms:
5:FILE: contracts/Context.sol
33:FILE: contracts/DividendPayingToken.sol
219:FILE: contracts/ERC20.sol
546:FILE: contracts/FetchInuDividendTracker.sol
770:FILE: contracts/IDividendPayingToken.sol
815:FILE: contracts/IDividendPayingTokenOptional.sol
844:FILE: contracts/IERC20.sol
929:FILE: contracts/IERC20Metadata.sol
960:FILE: contracts/IterableMapping.sol
1027:FILE: contracts/Ownable.sol
1076:FILE: contracts/SafeMath.sol
1226:FILE: contracts/SafeMathInt.sol
1322:FILE: contracts/SafeMathUint.sol

thinking
**Examining ERC20 and Dividend Tracker segments**
exec
/bin/bash -lc "sed -n '219,545p' AUDIT_BUNDLE.txt" in /tmp/codex-fp25rhuj succeeded in 11ms:
FILE: contracts/ERC20.sol
================================================================================
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./IERC20Metadata.sol";
import "./Context.sol";
import "./SafeMath.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How

thinking
**Examining FetchInuDividendTracker file**
exec
/bin/bash -lc "sed -n '546,769p' AUDIT_BUNDLE.txt" in /tmp/codex-fp25rhuj succeeded in 9ms:
FILE: contracts/FetchInuDividendTracker.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./DividendPayingToken.sol";
import "./IterableMapping.sol";
contract FetchInuDividendTracker is DividendPayingToken {
    using SafeMath for uint256;
    using SafeMathInt for int256;
    using IterableMapping for IterableMapping.Map;

    IterableMapping.Map private tokenHoldersMap;
    uint256 public lastProcessedIndex;
    uint256 public claimWait;
    uint256 public immutable minimumTokenBalanceForDividends;

    mapping (address => bool) public isExcludedFromDividends;
    mapping (address => uint256) public lastClaimTimes;
  
    event ExcludeFromDividends(address indexed account, bool exclude);



thinking
**Analyzing dividend contract risks and access controls**

I'm reviewing DividendPayingToken and FetchInuDividendTracker for reentrancy risks, gas stipend issues, and owner privileges. The 3000 gas low-level call might limit reentrancy but isn't foolproof. Owner control over balance setting and exclusion enables centralized dividend manipulation, which is expected but a risk to note. Withdrawal methods can fail for contracts needing more gas, possibly causing locked dividends, yet no clear exploit arises. Overall, this audit spotlights nuanced trade-offs between gas limits, reentrancy, and admin access.
thinking
**Evaluating reentrancy and access control concerns in dividend tracker**

I'm digging deeper into DividendPayingToken and FetchInuDividendTracker, confirming that the owner’s ability to manipulate balances is an expected centralization risk, not a direct vulnerability. The reused external call before state update in dividend withdrawal remains a potential medium-risk reentrancy point despite gas limits, and relying on gas stipend for protection is brittle. I also note possible denial-of-service if contracts require more gas to accept dividends, causing stalled payouts and wasted processing gas. Overall, reentrancy and admin control are primary concerns to highlight.
thinking
**Listing files with ripgrep**
exec
/bin/bash -lc 'rg --files' in /tmp/codex-fp25rhuj succeeded in 11ms:
codex-output-schema.json
AUDIT_BUNDLE.txt
contracts/IDividendPayingTokenOptional.sol
contracts/SafeMath.sol
contracts/Ownable.sol
contracts/SafeMathUint.sol
contracts/IERC20Metadata.sol
contracts/SafeMathInt.sol
contracts/IDividendPayingToken.sol
contracts/DividendPayingToken.sol
contracts/Context.sol
contracts/FetchInuDividendTracker.sol
contracts/IERC20.sol
contracts/IterableMapping.sol
contracts/ERC20.sol

thinking
**Checking line numbers with nl**
exec
/bin/bash -lc "nl -ba contracts/DividendPayingToken.sol | sed -n '50,200p'" in /tmp/codex-fp25rhuj succeeded in 10ms:
    50	  receive() external payable {
    51	    distributeDividends();
    52	  }
    53	
    54	  /// @notice Distributes ether to token holders as dividends.
    55	  /// @dev It reverts if the total supply of tokens is 0.
    56	  /// It emits the `DividendsDistributed` event if the amount of received ether is greater than 0.
    57	  /// About undistributed ether:
    58	  ///   In each distribution, there is a small amount of ether not distributed,
    59	  ///     the magnified amount of which is
    60	  ///     `(msg.value * magnitude) % totalSupply()`.
    61	  ///   With a well-chosen `magnitude`, the amount of undistributed ether
    62	  ///     (de-magnified) in a distribution can be less than 1 wei.
    63	  ///   We can actually keep track of the undistributed ether in a distribution
    64	  ///     and try to distribute it in the next distribution,
    65	  ///     but keeping track of such data on-chain costs much more than
    66	  ///     the saved ether, so we don't do that.
    67	  function distributeDividends() public override payable {
    68	    require(totalSupply() > 0,"dividened totalsupply error");
    69	    if (msg.value > 0) {

thinking
**Checking owner functions in FetchInuDividendTracker**
exec
/bin/bash -lc 'nl -ba contracts/FetchInuDividendTracker.sol' in /tmp/codex-fp25rhuj succeeded in 7ms:
     1	// SPDX-License-Identifier: MIT
     2	pragma solidity ^0.8.0;
     3	import "./DividendPayingToken.sol";
     4	import "./IterableMapping.sol";
     5	contract FetchInuDividendTracker is DividendPayingToken {
     6	    using SafeMath for uint256;
     7	    using SafeMathInt for int256;
     8	    using IterableMapping for IterableMapping.Map;
     9	
    10	    IterableMapping.Map private tokenHoldersMap;
    11	    uint256 public lastProcessedIndex;
    12	    uint256 public claimWait;
    13	    uint256 public immutable minimumTokenBalanceForDividends;
    14	
    15	    mapping (address => bool) public isExcludedFromDividends;
    16	    mapping (address => uint256) public lastClaimTimes;
    17	  
    18	    event ExcludeFromDividends(address indexed account, bool exclude);
    19	    event ClaimWaitUpdated(uint256 indexed newValue, uint256 indexed oldValue);
    20	    event Claim(address indexed account, uint256 amount);


thinking
**Summarizing security audit findings**

I'm identifying key security findings focused on reentrancy risks due to external calls before state updates, ownership centralization allowing arbitrary balance manipulation, and the implications of limited gas stipends potentially locking dividends for contract holders. I’m preparing clear exploit scenarios, severity assessments, and recommendations linked to specific code locations to provide a concise audit summary.
thinking
**Detailing external call pattern issue**

This finding highlights how the fixed 3000 gas stipend in external calls can block dividends for contract wallets needing more gas, causing repeated failed attempts and wasting processing gas. I’m focusing on clear exploit scenarios, recommending removing the gas limit or enabling user withdrawals, and pinpointing relevant code lines to support the analysis.
codex
{"no_findings":false,"summary":"Main risks are external-call ordering in dividend withdrawals, admin-controlled dividend share adjustments, and the fixed gas stipend that can lock dividends for contract wallets.","findings":[{"severity":"low","category":"reentrancy","title":"External ETH transfer before state update can allow reentrant double-claims","exploit_scenario":"A malicious dividend recipient contract can use its fallback to reenter `withdrawDividend` (or a future refactor that increases the call gas) before `withdrawnDividends` is updated, letting it withdraw the same dividends multiple times and drain the pool.","recommendation":"Apply checks-effects-interactions: update `withdrawnDividends` before the external call and revert on failure, or add a reentrancy guard around dividend withdrawals.","evidence":"`_withdrawDividendOfUser` sends ETH to `user` and only updates `withdrawnDividends` after the call succeeds.","locations":["contracts/DividendPayingToken.sol:87","contracts/DividendPayingToken.sol:90","contracts/DividendPayingToken.sol:91","contracts/DividendPayingToken.sol:95"]},{"severity":"low","category":"access_control","title":"Owner can arbitrarily change dividend shares and exclude accounts","exploit_scenario":"If the owner is compromised or malicious, it can call `setBalance` with arbitrary values or `excludeFromDividends` to remove accounts, diverting future dividends or blocking claims; since `withdrawDividend` is disabled, users cannot independently withdraw.","recommendation":"Restrict `setBalance` to a trusted token contract that enforces balance correctness, or add validation against the underlying token balance. Consider a timelock/multisig for owner actions and/or enable user-initiated withdrawals.","evidence":"`setBalance` accepts arbitrary `newBalance` under `onlyOwner`, and `excludeFromDividends` can remove accounts while `withdrawDividend` is disabled.","locations":["contracts/FetchInuDividendTracker.sol:28","contracts/FetchInuDividendTracker.sol:112","contracts/FetchInuDividendTracker.sol:132"]},{"severity":"low","category":"other","title":"Fixed 3000 gas stipend can permanently lock dividends for contract wallets","exploit_scenario":"If a holder is a contract whose fallback requires more than 3000 gas, every dividend payout attempt will fail and remain stuck. `process()` will keep retrying the same accounts, wasting gas and delaying other claims, and users cannot self-withdraw because `withdrawDividend` is disabled.","recommendation":"Remove the fixed 3000 gas stipend and rely on reentrancy protection, or allow users to call a withdrawal function that forwards sufficient gas. Optionally track repeated failures and skip them to avoid gas griefing.","evidence":"Dividend payouts use `call{gas:3000}` and `withdrawDividend` is disabled in the tracker, while `process` routes through `_withdrawDividendOfUser`.","locations":["contracts/DividendPayingToken.sol:91","contracts/FetchInuDividendTracker.sol:28","contracts/FetchInuDividendTracker.sol:153"]}]}
tokens used
68,676
Metadata
{
    "codex": {
        "ran_at": "2026-01-11T06:47:28.873622+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 13,
        "import_count": 12,
        "first_party_contracts_count": 13
    },
    "summary": "Main risks are external-call ordering in dividend withdrawals, admin-controlled dividend share adjustments, and the fixed gas stipend that can lock dividends for contract wallets.",
    "raw_final": {
        "summary": "Main risks are external-call ordering in dividend withdrawals, admin-controlled dividend share adjustments, and the fixed gas stipend that can lock dividends for contract wallets.",
        "findings": [
            {
                "title": "External ETH transfer before state update can allow reentrant double-claims",
                "category": "reentrancy",
                "evidence": "`_withdrawDividendOfUser` sends ETH to `user` and only updates `withdrawnDividends` after the call succeeds.",
                "severity": "low",
                "locations": [
                    "contracts/DividendPayingToken.sol:87",
                    "contracts/DividendPayingToken.sol:90",
                    "contracts/DividendPayingToken.sol:91",
                    "contracts/DividendPayingToken.sol:95"
                ],
                "recommendation": "Apply checks-effects-interactions: update `withdrawnDividends` before the external call and revert on failure, or add a reentrancy guard around dividend withdrawals.",
                "exploit_scenario": "A malicious dividend recipient contract can use its fallback to reenter `withdrawDividend` (or a future refactor that increases the call gas) before `withdrawnDividends` is updated, letting it withdraw the same dividends multiple times and drain the pool."
            },
            {
                "title": "Owner can arbitrarily change dividend shares and exclude accounts",
                "category": "access_control",
                "evidence": "`setBalance` accepts arbitrary `newBalance` under `onlyOwner`, and `excludeFromDividends` can remove accounts while `withdrawDividend` is disabled.",
                "severity": "low",
                "locations": [
                    "contracts/FetchInuDividendTracker.sol:28",
                    "contracts/FetchInuDividendTracker.sol:112",
                    "contracts/FetchInuDividendTracker.sol:132"
                ],
                "recommendation": "Restrict `setBalance` to a trusted token contract that enforces balance correctness, or add validation against the underlying token balance. Consider a timelock/multisig for owner actions and/or enable user-initiated withdrawals.",
                "exploit_scenario": "If the owner is compromised or malicious, it can call `setBalance` with arbitrary values or `excludeFromDividends` to remove accounts, diverting future dividends or blocking claims; since `withdrawDividend` is disabled, users cannot independently withdraw."
            },
            {
                "title": "Fixed 3000 gas stipend can permanently lock dividends for contract wallets",
                "category": "other",
                "evidence": "Dividend payouts use `call{gas:3000}` and `withdrawDividend` is disabled in the tracker, while `process` routes through `_withdrawDividendOfUser`.",
                "severity": "low",
                "locations": [
                    "contracts/DividendPayingToken.sol:91",
                    "contracts/FetchInuDividendTracker.sol:28",
                    "contracts/FetchInuDividendTracker.sol:153"
                ],
                "recommendation": "Remove the fixed 3000 gas stipend and rely on reentrancy protection, or allow users to call a withdrawal function that forwards sufficient gas. Optionally track repeated failures and skip them to avoid gas griefing.",
                "exploit_scenario": "If a holder is a contract whose fallback requires more than 3000 gas, every dividend payout attempt will fail and remain stuck. `process()` will keep retrying the same accounts, wasting gas and delaying other claims, and users cannot self-withdraw because `withdrawDividend` is disabled."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
7
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
2
EXT*/BALANCE
8
Total opcodes
5579
Flags
delegatecall_present heavy_ext_balance_usage
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x0208
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0x807ab4f7
00000019: GT
0000001a: PUSH2 0x0118
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xbe10b614
00000024: GT
00000025: PUSH2 0x00a0
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xe7841ec0
0000002f: GT
00000030: PUSH2 0x006f
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xe7841ec0
0000003a: EQ
0000003b: PUSH2 0x05a9
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xe98030c7
00000045: EQ
00000046: PUSH2 0x05be
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf2fde38b
00000050: EQ
00000051: PUSH2 0x05de
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0xfbcbc0f1
0000005b: EQ
0000005c: PUSH2 0x05fe
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0xffb2c479
00000066: EQ
00000067: PUSH2 0x061e
0000006a: JUMPI
0000006b: PUSH2 0x0217
0000006e: JUMP
0000006f: JUMPDEST
00000070: DUP1
00000071: PUSH4 0xbe10b614
00000076: EQ
00000077: PUSH2 0x0534
0000007a: JUMPI
0000007b: DUP1
0000007c: PUSH4 0xc705c569
00000081: EQ
00000082: PUSH2 0x0549
00000085: JUMPI
00000086: DUP1
00000087: PUSH4 0xdd62ed3e
0000008c: EQ
0000008d: PUSH2 0x0569
00000090: JUMPI
00000091: DUP1
00000092: PUSH4 0xe30443bc
00000097: EQ
00000098: PUSH2 0x0589
0000009b: JUMPI
0000009c: PUSH2 0x0217
0000009f: JUMP
000000a0: JUMPDEST
000000a1: DUP1
000000a2: PUSH4 0x95d89b41
000000a7: GT
000000a8: PUSH2 0x00e7
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0x95d89b41
000000b2: EQ
000000b3: PUSH2 0x049f
000000b6: JUMPI
000000b7: DUP1
000000b8: PUSH4 0xa457c2d7
000000bd: EQ
000000be: PUSH2 0x04b4
000000c1: JUMPI
000000c2: DUP1
000000c3: PUSH4 0xa8b9d240
000000c8: EQ
000000c9: PUSH2 0x04d4
000000cc: JUMPI
000000cd: DUP1
000000ce: PUSH4 0xa9059cbb
000000d3: EQ
000000d4: PUSH2 0x04f4
000000d7: JUMPI
000000d8: DUP1
000000d9: PUSH4 0xaafd847a
000000de: EQ
000000df: PUSH2 0x0514
000000e2: JUMPI
000000e3: PUSH2 0x0217
000000e6: JUMP
000000e7: JUMPDEST
000000e8: DUP1
000000e9: PUSH4 0x807ab4f7
000000ee: EQ
000000ef: PUSH2 0x0428
000000f2: JUMPI
000000f3: DUP1
000000f4: PUSH4 0x85a6b3ae
000000f9: EQ
000000fa: PUSH2 0x0448
000000fd: JUMPI
000000fe: DUP1
000000ff: PUSH4 0x8da5cb5b
00000104: EQ
00000105: PUSH2 0x045d
00000108: JUMPI
00000109: DUP1
0000010a: PUSH4 0x91b89fba
0000010f: EQ
00000110: PUSH2 0x047f
00000113: JUMPI
00000114: PUSH2 0x0217
00000117: JUMP
00000118: JUMPDEST
00000119: DUP1
0000011a: PUSH4 0x27ce0147
0000011f: GT
00000120: PUSH2 0x019b
00000123: JUMPI
00000124: DUP1
00000125: PUSH4 0x42966c68
0000012a: GT
0000012b: PUSH2 0x016a
0000012e: JUMPI
0000012f: DUP1
00000130: PUSH4 0x42966c68
00000135: EQ
00000136: PUSH2 0x038a
00000139: JUMPI
0000013a: DUP1
0000013b: PUSH4 0x5183d6fd
00000140: EQ
00000141: PUSH2 0x03aa
00000144: JUMPI
00000145: DUP1
00000146: PUSH4 0x6a474002
0000014b: EQ
0000014c: PUSH2 0x03de
0000014f: JUMPI
00000150: DUP1
00000151: PUSH4 0x6f2789ec
00000156: EQ
00000157: PUSH2 0x03f3
0000015a: JUMPI
0000015b: DUP1
0000015c: PUSH4 0x70a08231
00000161: EQ
00000162: PUSH2 0x0408
00000165: JUMPI
00000166: PUSH2 0x0217
00000169: JUMP
0000016a: JUMPDEST
0000016b: DUP1
0000016c: PUSH4 0x27ce0147
00000171: EQ
00000172: PUSH2 0x0313
00000175: JUMPI
00000176: DUP1
00000177: PUSH4 0x3009a609
0000017c: EQ
0000017d: PUSH2 0x0333
00000180: JUMPI
00000181: DUP1
00000182: PUSH4 0x313ce567
00000187: EQ
00000188: PUSH2 0x0348
0000018b: JUMPI
0000018c: DUP1
0000018d: PUSH4 0x39509351
00000192: EQ
00000193: PUSH2 0x036a
00000196: JUMPI
00000197: PUSH2 0x0217
0000019a: JUMP
0000019b: JUMPDEST
0000019c: DUP1
0000019d: PUSH4 0x09bbedde
000001a2: GT
000001a3: PUSH2 0x01d7
000001a6: JUMPI
000001a7: DUP1
000001a8: PUSH4 0x09bbedde
000001ad: EQ
000001ae: PUSH2 0x029c
000001b1: JUMPI
000001b2: DUP1
000001b3: PUSH4 0x18160ddd
000001b8: EQ
000001b9: PUSH2 0x02be
000001bc: JUMPI
000001bd: DUP1
000001be: PUSH4 0x226cfa3d
000001c3: EQ
000001c4: PUSH2 0x02d3
000001c7: JUMPI
000001c8: DUP1
000001c9: PUSH4 0x23b872dd
000001ce: EQ
000001cf: PUSH2 0x02f3
000001d2: JUMPI
000001d3: PUSH2 0x0217
000001d6: JUMP
000001d7: JUMPDEST
000001d8: DUP1
000001d9: PUSH4 0x03c83302
000001de: EQ
000001df: PUSH2 0x021c
000001e2: JUMPI
000001e3: DUP1
000001e4: PUSH4 0x0483f7a0
000001e9: EQ
000001ea: PUSH2 0x0224
000001ed: JUMPI
000001ee: DUP1
000001ef: PUSH4 0x06fdde03
000001f4: EQ
000001f5: PUSH2 0x0244
000001f8: JUMPI
000001f9: DUP1
000001fa: PUSH4 0x095ea7b3
000001ff: EQ
00000200: PUSH2 0x026f
00000203: JUMPI
00000204: PUSH2 0x0217
00000207: JUMP
00000208: JUMPDEST
00000209: CALLDATASIZE
0000020a: PUSH2 0x0217
0000020d: JUMPI
0000020e: PUSH2 0x0215
00000211: PUSH2 0x064d
00000214: JUMP
00000215: JUMPDEST
00000216: STOP
00000217: JUMPDEST
00000218: PUSH1 0x00
0000021a: DUP1
0000021b: REVERT
0000021c: JUMPDEST
0000021d: PUSH2 0x0215
00000220: PUSH2 0x064d
00000223: JUMP
00000224: JUMPDEST
00000225: CALLVALUE
00000226: DUP1
00000227: ISZERO
00000228: PUSH2 0x0230
0000022b: JUMPI
0000022c: PUSH1 0x00
0000022e: DUP1
0000022f: REVERT
00000230: JUMPDEST
00000231: POP
00000232: PUSH2 0x0215
00000235: PUSH2 0x023f
00000238: CALLDATASIZE
00000239: PUSH1 0x04
0000023b: PUSH2 0x1c3c
0000023e: JUMP
0000023f: JUMPDEST
00000240: PUSH2 0x070b
00000243: JUMP
00000244: JUMPDEST
00000245: CALLVALUE
00000246: DUP1
00000247: ISZERO
00000248: PUSH2 0x0250
0000024b: JUMPI
0000024c: PUSH1 0x00
0000024e: DUP1
0000024f: REVERT
00000250: JUMPDEST
00000251: POP
00000252: PUSH2 0x0259
00000255: PUSH2 0x0965
00000258: JUMP
00000259: JUMPDEST
0000025a: PUSH1 0x40
0000025c: MLOAD
0000025d: PUSH2 0x0266
00000260: SWAP2
00000261: SWAP1
00000262: PUSH2 0x1d12
00000265: JUMP
00000266: JUMPDEST
00000267: PUSH1 0x40
00000269: MLOAD
0000026a: DUP1
0000026b: SWAP2
0000026c: SUB
0000026d: SWAP1
0000026e: RETURN
0000026f: JUMPDEST
00000270: CALLVALUE
00000271: DUP1
00000272: ISZERO
00000273: PUSH2 0x027b
00000276: JUMPI
00000277: PUSH1 0x00
00000279: DUP1
0000027a: REVERT
0000027b: JUMPDEST
0000027c: POP
0000027d: PUSH2 0x028f
00000280: PUSH2 0x028a
00000283: CALLDATASIZE
00000284: PUSH1 0x04
00000286: PUSH2 0x1c6d
00000289: JUMP
0000028a: JUMPDEST
0000028b: PUSH2 0x09f7
0000028e: JUMP
0000028f: JUMPDEST
00000290: PUSH1 0x40
00000292: MLOAD
00000293: PUSH2 0x0266
00000296: SWAP2
00000297: SWAP1
00000298: PUSH2 0x1d07
0000029b: JUMP
0000029c: JUMPDEST
0000029d: CALLVALUE
0000029e: DUP1
0000029f: ISZERO
000002a0: PUSH2 0x02a8
000002a3: JUMPI
000002a4: PUSH1 0x00
000002a6: DUP1
000002a7: REVERT
000002a8: JUMPDEST
000002a9: POP
000002aa: PUSH2 0x02b1
000002ad: PUSH2 0x0a15
000002b0: JUMP
000002b1: JUMPDEST
000002b2: PUSH1 0x40
000002b4: MLOAD
000002b5: PUSH2 0x0266
000002b8: SWAP2
000002b9: SWAP1
000002ba: PUSH2 0x216d
000002bd: JUMP
000002be: JUMPDEST
000002bf: CALLVALUE
000002c0: DUP1
000002c1: ISZERO
000002c2: PUSH2 0x02ca
000002c5: JUMPI
000002c6: PUSH1 0x00
000002c8: DUP1
000002c9: REVERT
000002ca: JUMPDEST
000002cb: POP
000002cc: PUSH2 0x02b1
000002cf: PUSH2 0x0a1b
000002d2: JUMP
000002d3: JUMPDEST
000002d4: CALLVALUE
000002d5: DUP1
000002d6: ISZERO
000002d7: PUSH2 0x02df
000002da: JUMPI
000002db: PUSH1 0x00
000002dd: DUP1
000002de: REVERT
000002df: JUMPDEST
000002e0: POP
000002e1: PUSH2 0x02b1
000002e4: PUSH2 0x02ee
000002e7: CALLDATASIZE
000002e8: PUSH1 0x04
000002ea: PUSH2 0x1b61
000002ed: JUMP
000002ee: JUMPDEST
000002ef: PUSH2 0x0a21
000002f2: JUMP
000002f3: JUMPDEST
000002f4: CALLVALUE
000002f5: DUP1
000002f6: ISZERO
000002f7: PUSH2 0x02ff
000002fa: JUMPI
000002fb: PUSH1 0x00
000002fd: DUP1
000002fe: REVERT
000002ff: JUMPDEST
00000300: POP
00000301: PUSH2 0x028f
00000304: PUSH2 0x030e
00000307: CALLDATASIZE
00000308: PUSH1 0x04
0000030a: PUSH2 0x1bfc
0000030d: JUMP
0000030e: JUMPDEST
0000030f: PUSH2 0x0a33
00000312: JUMP
00000313: JUMPDEST
00000314: CALLVALUE
00000315: DUP1
00000316: ISZERO
00000317: PUSH2 0x031f
0000031a: JUMPI
0000031b: PUSH1 0x00
0000031d: DUP1
0000031e: REVERT
0000031f: JUMPDEST
00000320: POP
00000321: PUSH2 0x02b1
00000324: PUSH2 0x032e
00000327: CALLDATASIZE
00000328: PUSH1 0x04
0000032a: PUSH2 0x1b61
0000032d: JUMP
0000032e: JUMPDEST
0000032f: PUSH2 0x0aba
00000332: JUMP
00000333: JUMPDEST
00000334: CALLVALUE
00000335: DUP1
00000336: ISZERO
00000337: PUSH2 0x033f
0000033a: JUMPI
0000033b: PUSH1 0x00
0000033d: DUP1
0000033e: REVERT
0000033f: JUMPDEST
00000340: POP
00000341: PUSH2 0x02b1
00000344: PUSH2 0x0b1e
00000347: JUMP
00000348: JUMPDEST
00000349: CALLVALUE
0000034a: DUP1
0000034b: ISZERO
0000034c: PUSH2 0x0354
0000034f: JUMPI
00000350: PUSH1 0x00
00000352: DUP1
00000353: REVERT
00000354: JUMPDEST
00000355: POP
00000356: PUSH2 0x035d
00000359: PUSH2 0x0b24
0000035c: JUMP
0000035d: JUMPDEST
0000035e: PUSH1 0x40
00000360: MLOAD
00000361: PUSH2 0x0266
00000364: SWAP2
00000365: SWAP1
00000366: PUSH2 0x21d0
00000369: JUMP
0000036a: JUMPDEST
0000036b: CALLVALUE
0000036c: DUP1
0000036d: ISZERO
0000036e: PUSH2 0x0376
00000371: JUMPI
00000372: PUSH1 0x00
00000374: DUP1
00000375: REVERT
00000376: JUMPDEST
00000377: POP
00000378: PUSH2 0x028f
0000037b: PUSH2 0x0385
0000037e: CALLDATASIZE
0000037f: PUSH1 0x04
00000381: PUSH2 0x1c6d
00000384: JUMP
00000385: JUMPDEST
00000386: PUSH2 0x0b29
00000389: JUMP
0000038a: JUMPDEST
0000038b: CALLVALUE
0000038c: DUP1
0000038d: ISZERO
0000038e: PUSH2 0x0396
00000391: JUMPI
00000392: PUSH1 0x00
00000394: DUP1
00000395: REVERT
00000396: JUMPDEST
00000397: POP
00000398: PUSH2 0x0215
0000039b: PUSH2 0x03a5
0000039e: CALLDATASIZE
0000039f: PUSH1 0x04
000003a1: PUSH2 0x1c97
000003a4: JUMP
000003a5: JUMPDEST
000003a6: PUSH2 0x0b77
000003a9: JUMP
000003aa: JUMPDEST
000003ab: CALLVALUE
000003ac: DUP1
000003ad: ISZERO
000003ae: PUSH2 0x03b6
000003b1: JUMPI
000003b2: PUSH1 0x00
000003b4: DUP1
000003b5: REVERT
000003b6: JUMPDEST
000003b7: POP
000003b8: PUSH2 0x03ca
000003bb: PUSH2 0x03c5
000003be: CALLDATASIZE
000003bf: PUSH1 0x04
000003c1: PUSH2 0x1c97
000003c4: JUMP
000003c5: JUMPDEST
000003c6: PUSH2 0x0b92
000003c9: JUMP
000003ca: JUMPDEST
000003cb: PUSH1 0x40
000003cd: MLOAD
000003ce: PUSH2 0x0266
000003d1: SWAP9
000003d2: SWAP8
000003d3: SWAP7
000003d4: SWAP6
000003d5: SWAP5
000003d6: SWAP4
000003d7: SWAP3
000003d8: SWAP2
000003d9: SWAP1
000003da: PUSH2 0x1cc6
000003dd: JUMP
000003de: JUMPDEST
000003df: CALLVALUE
000003e0: DUP1
000003e1: ISZERO
000003e2: PUSH2 0x03ea
000003e5: JUMPI
000003e6: PUSH1 0x00
000003e8: DUP1
000003e9: REVERT
000003ea: JUMPDEST
000003eb: POP
000003ec: PUSH2 0x0215
000003ef: PUSH2 0x0d02
000003f2: JUMP
000003f3: JUMPDEST
000003f4: CALLVALUE
000003f5: DUP1
000003f6: ISZERO
000003f7: PUSH2 0x03ff
000003fa: JUMPI
000003fb: PUSH1 0x00
000003fd: DUP1
000003fe: REVERT
000003ff: JUMPDEST
00000400: POP
00000401: PUSH2 0x02b1
00000404: PUSH2 0x0d1a
00000407: JUMP
00000408: JUMPDEST
00000409: CALLVALUE
0000040a: DUP1
0000040b: ISZERO
0000040c: PUSH2 0x0414
0000040f: JUMPI
00000410: PUSH1 0x00
00000412: DUP1
00000413: REVERT
00000414: JUMPDEST
00000415: POP
00000416: PUSH2 0x02b1
00000419: PUSH2 0x0423
0000041c: CALLDATASIZE
0000041d: PUSH1 0x04
0000041f: PUSH2 0x1b61
00000422: JUMP
00000423: JUMPDEST
00000424: PUSH2 0x0d20
00000427: JUMP
00000428: JUMPDEST
00000429: CALLVALUE
0000042a: DUP1
0000042b: ISZERO
0000042c: PUSH2 0x0434
0000042f: JUMPI
00000430: PUSH1 0x00
00000432: DUP1
00000433: REVERT
00000434: JUMPDEST
00000435: POP
00000436: PUSH2 0x0215
00000439: PUSH2 0x0443
0000043c: CALLDATASIZE
0000043d: PUSH1 0x04
0000043f: PUSH2 0x1b61
00000442: JUMP
00000443: JUMPDEST
00000444: PUSH2 0x0d3b
00000447: JUMP
00000448: JUMPDEST
00000449: CALLVALUE
0000044a: DUP1
0000044b: ISZERO
0000044c: PUSH2 0x0454
0000044f: JUMPI
00000450: PUSH1 0x00
00000452: DUP1
00000453: REVERT
00000454: JUMPDEST
00000455: POP
00000456: PUSH2 0x02b1
00000459: PUSH2 0x0dc2
0000045c: JUMP
0000045d: JUMPDEST
0000045e: CALLVALUE
0000045f: DUP1
00000460: ISZERO
00000461: PUSH2 0x0469
00000464: JUMPI
00000465: PUSH1 0x00
00000467: DUP1
00000468: REVERT
00000469: JUMPDEST
0000046a: POP
0000046b: PUSH2 0x0472
0000046e: PUSH2 0x0dc8
00000471: JUMP
00000472: JUMPDEST
00000473: PUSH1 0x40
00000475: MLOAD
00000476: PUSH2 0x0266
00000479: SWAP2
0000047a: SWAP1
0000047b: PUSH2 0x1cb2
0000047e: JUMP
0000047f: JUMPDEST
00000480: CALLVALUE
00000481: DUP1
00000482: ISZERO
00000483: PUSH2 0x048b
00000486: JUMPI
00000487: PUSH1 0x00
00000489: DUP1
0000048a: REVERT
0000048b: JUMPDEST
0000048c: POP
0000048d: PUSH2 0x02b1
00000490: PUSH2 0x049a
00000493: CALLDATASIZE
00000494: PUSH1 0x04
00000496: PUSH2 0x1b61
00000499: JUMP
0000049a: JUMPDEST
0000049b: PUSH2 0x0dd7
0000049e: JUMP
0000049f: JUMPDEST
000004a0: CALLVALUE
000004a1: DUP1
000004a2: ISZERO
000004a3: PUSH2 0x04ab
000004a6: JUMPI
000004a7: PUSH1 0x00
000004a9: DUP1
000004aa: REVERT
000004ab: JUMPDEST
000004ac: POP
000004ad: PUSH2 0x0259
000004b0: PUSH2 0x0de3
000004b3: JUMP
000004b4: JUMPDEST
000004b5: CALLVALUE
000004b6: DUP1
000004b7: ISZERO
000004b8: PUSH2 0x04c0
000004bb: JUMPI
000004bc: PUSH1 0x00
000004be: DUP1
000004bf: REVERT
000004c0: JUMPDEST
000004c1: POP
000004c2: PUSH2 0x028f
000004c5: PUSH2 0x04cf
000004c8: CALLDATASIZE
000004c9: PUSH1 0x04
000004cb: PUSH2 0x1c6d
000004ce: JUMP
000004cf: JUMPDEST
000004d0: PUSH2 0x0df2
000004d3: JUMP
000004d4: JUMPDEST
000004d5: CALLVALUE
000004d6: DUP1
000004d7: ISZERO
000004d8: PUSH2 0x04e0
000004db: JUMPI
000004dc: PUSH1 0x00
000004de: DUP1
000004df: REVERT
000004e0: JUMPDEST
000004e1: POP
000004e2: PUSH2 0x02b1
000004e5: PUSH2 0x04ef
000004e8: CALLDATASIZE
000004e9: PUSH1 0x04
000004eb: PUSH2 0x1b61
000004ee: JUMP
000004ef: JUMPDEST
000004f0: PUSH2 0x0e5a
000004f3: JUMP
000004f4: JUMPDEST
000004f5: CALLVALUE
000004f6: DUP1
000004f7: ISZERO
000004f8: PUSH2 0x0500
000004fb: JUMPI
000004fc: PUSH1 0x00
000004fe: DUP1
000004ff: REVERT
00000500: JUMPDEST
00000501: POP
00000502: PUSH2 0x028f
00000505: PUSH2 0x050f
00000508: CALLDATASIZE
00000509: PUSH1 0x04
0000050b: PUSH2 0x1c6d
0000050e: JUMP
0000050f: JUMPDEST
00000510: PUSH2 0x0e88
00000513: JUMP
00000514: JUMPDEST
00000515: CALLVALUE
00000516: DUP1
00000517: ISZERO
00000518: PUSH2 0x0520
0000051b: JUMPI
0000051c: PUSH1 0x00
0000051e: DUP1
0000051f: REVERT
00000520: JUMPDEST
00000521: POP
00000522: PUSH2 0x02b1
00000525: PUSH2 0x052f
00000528: CALLDATASIZE
00000529: PUSH1 0x04
0000052b: PUSH2 0x1b61
0000052e: JUMP
0000052f: JUMPDEST
00000530: PUSH2 0x0e9c
00000533: JUMP
00000534: JUMPDEST
00000535: CALLVALUE
00000536: DUP1
00000537: ISZERO
00000538: PUSH2 0x0540
0000053b: JUMPI
0000053c: PUSH1 0x00
0000053e: DUP1
0000053f: REVERT
00000540: JUMPDEST
00000541: POP
00000542: PUSH2 0x02b1
00000545: PUSH2 0x0eb7
00000548: JUMP
00000549: JUMPDEST
0000054a: CALLVALUE
0000054b: DUP1
0000054c: ISZERO
0000054d: PUSH2 0x0555
00000550: JUMPI
00000551: PUSH1 0x00
00000553: DUP1
00000554: REVERT
00000555: JUMPDEST
00000556: POP
00000557: PUSH2 0x028f
0000055a: PUSH2 0x0564
0000055d: CALLDATASIZE
0000055e: PUSH1 0x04
00000560: PUSH2 0x1b61
00000563: JUMP
00000564: JUMPDEST
00000565: PUSH2 0x0edb
00000568: JUMP
00000569: JUMPDEST
0000056a: CALLVALUE
0000056b: DUP1
0000056c: ISZERO
0000056d: PUSH2 0x0575
00000570: JUMPI
00000571: PUSH1 0x00
00000573: DUP1
00000574: REVERT
00000575: JUMPDEST
00000576: POP
00000577: PUSH2 0x02b1
0000057a: PUSH2 0x0584
0000057d: CALLDATASIZE
0000057e: PUSH1 0x04
00000580: PUSH2 0x1bc4
00000583: JUMP
00000584: JUMPDEST
00000585: PUSH2 0x0ef0
00000588: JUMP
00000589: JUMPDEST
0000058a: CALLVALUE
0000058b: DUP1
0000058c: ISZERO
0000058d: PUSH2 0x0595
00000590: JUMPI
00000591: PUSH1 0x00
00000593: DUP1
00000594: REVERT
00000595: JUMPDEST
00000596: POP
00000597: PUSH2 0x0215
0000059a: PUSH2 0x05a4
0000059d: CALLDATASIZE
0000059e: PUSH1 0x04
000005a0: PUSH2 0x1b99
000005a3: JUMP
000005a4: JUMPDEST
000005a5: PUSH2 0x0f1b
000005a8: JUMP
000005a9: JUMPDEST
000005aa: CALLVALUE
000005ab: DUP1
000005ac: ISZERO
000005ad: PUSH2 0x05b5
000005b0: JUMPI
000005b1: PUSH1 0x00
000005b3: DUP1
000005b4: REVERT
000005b5: JUMPDEST
000005b6: POP
000005b7: PUSH2 0x02b1
000005ba: PUSH2 0x109d
000005bd: JUMP
000005be: JUMPDEST
000005bf: CALLVALUE
000005c0: DUP1
000005c1: ISZERO
000005c2: PUSH2 0x05ca
000005c5: JUMPI
000005c6: PUSH1 0x00
000005c8: DUP1
000005c9: REVERT
000005ca: JUMPDEST
000005cb: POP
000005cc: PUSH2 0x0215
000005cf: PUSH2 0x05d9
000005d2: CALLDATASIZE
000005d3: PUSH1 0x04
000005d5: PUSH2 0x1c97
000005d8: JUMP
000005d9: JUMPDEST
000005da: PUSH2 0x10a3
000005dd: JUMP
000005de: JUMPDEST
000005df: CALLVALUE
000005e0: DUP1
000005e1: ISZERO
000005e2: PUSH2 0x05ea
000005e5: JUMPI
000005e6: PUSH1 0x00
000005e8: DUP1
000005e9: REVERT
000005ea: JUMPDEST
000005eb: POP
000005ec: PUSH2 0x0215
000005ef: PUSH2 0x05f9
000005f2: CALLDATASIZE
000005f3: PUSH1 0x04
000005f5: PUSH2 0x1b61
000005f8: JUMP
000005f9: JUMPDEST
000005fa: PUSH2 0x115e
000005fd: JUMP
000005fe: JUMPDEST
000005ff: CALLVALUE
00000600: DUP1
00000601: ISZERO
00000602: PUSH2 0x060a
00000605: JUMPI
00000606: PUSH1 0x00
00000608: DUP1
00000609: REVERT
0000060a: JUMPDEST
0000060b: POP
0000060c: PUSH2 0x03ca
0000060f: PUSH2 0x0619
00000612: CALLDATASIZE
00000613: PUSH1 0x04
00000615: PUSH2 0x1b61
00000618: JUMP
00000619: JUMPDEST
0000061a: PUSH2 0x1215
0000061d: JUMP
0000061e: JUMPDEST
0000061f: CALLVALUE
00000620: DUP1
00000621: ISZERO
00000622: PUSH2 0x062a
00000625: JUMPI
00000626: PUSH1 0x00
00000628: DUP1
00000629: REVERT
0000062a: JUMPDEST
0000062b: POP
0000062c: PUSH2 0x063e
0000062f: PUSH2 0x0639
00000632: CALLDATASIZE
00000633: PUSH1 0x04
00000635: PUSH2 0x1c97
00000638: JUMP
00000639: JUMPDEST
0000063a: PUSH2 0x1245
0000063d: JUMP
0000063e: JUMPDEST
0000063f: PUSH1 0x40
00000641: MLOAD
00000642: PUSH2 0x0266
00000645: SWAP4
00000646: SWAP3
00000647: SWAP2
00000648: SWAP1
00000649: PUSH2 0x21ba
0000064c: JUMP
0000064d: JUMPDEST
0000064e: PUSH1 0x00
00000650: PUSH2 0x0657
00000653: PUSH2 0x0a1b
00000656: JUMP
00000657: JUMPDEST
00000658: GT
00000659: PUSH2 0x067d
0000065c: JUMPI
0000065d: PUSH1 0x40
0000065f: MLOAD
00000660: PUSH3 0x461bcd
00000664: PUSH1 0xe5
00000666: SHL
00000667: DUP2
00000668: MSTORE
00000669: PUSH1 0x04
0000066b: ADD
0000066c: PUSH2 0x0674
0000066f: SWAP1
00000670: PUSH2 0x1f23
00000673: JUMP
00000674: JUMPDEST
00000675: PUSH1 0x40
00000677: MLOAD
00000678: DUP1
00000679: SWAP2
0000067a: SUB
0000067b: SWAP1
0000067c: REVERT
0000067d: JUMPDEST
0000067e: CALLVALUE
0000067f: ISZERO
00000680: PUSH2 0x0709
00000683: JUMPI
00000684: PUSH1 0x00
00000686: PUSH2 0x06b1
00000689: PUSH2 0x0690
0000068c: PUSH2 0x0a1b
0000068f: JUMP
00000690: JUMPDEST
00000691: PUSH2 0x069e
00000694: CALLVALUE
00000695: PUSH1 0x01
00000697: PUSH1 0x80
00000699: SHL
0000069a: PUSH2 0x136c
0000069d: JUMP
0000069e: JUMPDEST
0000069f: PUSH2 0x06a8
000006a2: SWAP2
000006a3: SWAP1
000006a4: PUSH2 0x2237
000006a7: JUMP
000006a8: JUMPDEST
000006a9: PUSH1 0x06
000006ab: SLOAD
000006ac: SWAP1
000006ad: PUSH2 0x13b8
000006b0: JUMP
000006b1: JUMPDEST
000006b2: PUSH1 0x06
000006b4: DUP2
000006b5: SWAP1
000006b6: SSTORE
000006b7: PUSH1 0x40
000006b9: MLOAD
000006ba: SWAP1
000006bb: SWAP2
000006bc: POP
000006bd: CALLER
000006be: SWAP1
000006bf: PUSH32 0xa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d78454116511
000006e0: SWAP1
000006e1: PUSH2 0x06eb
000006e4: SWAP1
000006e5: CALLVALUE
000006e6: SWAP1
000006e7: PUSH2 0x216d
000006ea: JUMP
000006eb: JUMPDEST
000006ec: PUSH1 0x40
000006ee: MLOAD
000006ef: DUP1
000006f0: SWAP2
000006f1: SUB
000006f2: SWAP1
000006f3: LOG2
000006f4: PUSH1 0x08
000006f6: SLOAD
000006f7: PUSH1 0x00
000006f9: SWAP1
000006fa: PUSH2 0x0703
000006fd: SWAP1
000006fe: CALLVALUE
000006ff: PUSH2 0x13b8
00000702: JUMP
00000703: JUMPDEST
00000704: PUSH1 0x08
00000706: SSTORE
00000707: POP
00000708: POP
00000709: JUMPDEST
0000070a: JUMP
0000070b: JUMPDEST
0000070c: PUSH2 0x0713
0000070f: PUSH2 0x13e7
00000712: JUMP
00000713: JUMPDEST
00000714: PUSH1 0x05
00000716: SLOAD
00000717: PUSH1 0x01
00000719: PUSH1 0x01
0000071b: PUSH1 0xa0
0000071d: SHL
0000071e: SUB
0000071f: SWAP1
00000720: DUP2
00000721: AND
00000722: SWAP2
00000723: AND
00000724: EQ
00000725: PUSH2 0x0740
00000728: JUMPI
00000729: PUSH1 0x40
0000072b: MLOAD
0000072c: PUSH3 0x461bcd
00000730: PUSH1 0xe5
00000732: SHL
00000733: DUP2
00000734: MSTORE
00000735: PUSH1 0x04
00000737: ADD
00000738: PUSH2 0x0674
0000073b: SWAP1
0000073c: PUSH2 0x1fc7
0000073f: JUMP
00000740: JUMPDEST
00000741: PUSH1 0x01
00000743: PUSH1 0x01
00000745: PUSH1 0xa0
00000747: SHL
00000748: SUB
00000749: DUP3
0000074a: AND
0000074b: PUSH1 0x00
0000074d: SWAP1
0000074e: DUP2
0000074f: MSTORE
00000750: PUSH1 0x11
00000752: PUSH1 0x20
00000754: MSTORE
00000755: PUSH1 0x40
00000757: SWAP1
00000758: KECCAK256
00000759: SLOAD
0000075a: PUSH1 0xff
0000075c: AND
0000075d: ISZERO
0000075e: ISZERO
0000075f: DUP2
00000760: ISZERO
00000761: ISZERO
00000762: EQ
00000763: ISZERO
00000764: PUSH2 0x077f
00000767: JUMPI
00000768: PUSH1 0x40
0000076a: MLOAD
0000076b: PUSH3 0x461bcd
0000076f: PUSH1 0xe5
00000771: SHL
00000772: DUP2
00000773: MSTORE
00000774: PUSH1 0x04
00000776: ADD
00000777: PUSH2 0x0674
0000077a: SWAP1
0000077b: PUSH2 0x2107
0000077e: JUMP
0000077f: JUMPDEST
00000780: PUSH1 0x01
00000782: PUSH1 0x01
00000784: PUSH1 0xa0
00000786: SHL
00000787: SUB
00000788: DUP3
00000789: AND
0000078a: PUSH1 0x00
0000078c: SWAP1
0000078d: DUP2
0000078e: MSTORE
0000078f: PUSH1 0x11
00000791: PUSH1 0x20
00000793: MSTORE
00000794: PUSH1 0x40
00000796: DUP2
00000797: KECCAK256
00000798: DUP1
00000799: SLOAD
0000079a: PUSH1 0xff
0000079c: NOT
0000079d: AND
0000079e: DUP4
0000079f: ISZERO
000007a0: ISZERO
000007a1: OR
000007a2: SWAP1
000007a3: SSTORE
000007a4: PUSH2 0x07ab
000007a7: PUSH2 0x0dc8
000007aa: JUMP
000007ab: JUMPDEST
000007ac: PUSH1 0x01
000007ae: PUSH1 0x01
000007b0: PUSH1 0xa0
000007b2: SHL
000007b3: SUB
000007b4: AND
000007b5: PUSH4 0x70a08231
000007ba: DUP5
000007bb: PUSH1 0x40
000007bd: MLOAD
000007be: DUP3
000007bf: PUSH4 0xffffffff
000007c4: AND
000007c5: PUSH1 0xe0
000007c7: SHL
000007c8: DUP2
000007c9: MSTORE
000007ca: PUSH1 0x04
000007cc: ADD
000007cd: PUSH2 0x07d6
000007d0: SWAP2
000007d1: SWAP1
000007d2: PUSH2 0x1cb2
000007d5: JUMP
000007d6: JUMPDEST
000007d7: PUSH1 0x20
000007d9: PUSH1 0x40
000007db: MLOAD
000007dc: DUP1
000007dd: DUP4
000007de: SUB
000007df: DUP2
000007e0: DUP7
000007e1: DUP1
000007e2: EXTCODESIZE
000007e3: ISZERO
000007e4: DUP1
000007e5: ISZERO
000007e6: PUSH2 0x07ee
000007e9: JUMPI
000007ea: PUSH1 0x00
000007ec: DUP1
000007ed: REVERT
000007ee: JUMPDEST
000007ef: POP
000007f0: GAS
000007f1: STATICCALL
000007f2: ISZERO
000007f3: DUP1
000007f4: ISZERO
000007f5: PUSH2 0x0802
000007f8: JUMPI
000007f9: RETURNDATASIZE
000007fa: PUSH1 0x00
000007fc: DUP1
000007fd: RETURNDATACOPY
000007fe: RETURNDATASIZE
000007ff: PUSH1 0x00
00000801: REVERT
00000802: JUMPDEST
00000803: POP
00000804: POP
00000805: POP
00000806: POP
00000807: PUSH1 0x40
00000809: MLOAD
0000080a: RETURNDATASIZE
0000080b: PUSH1 0x1f
0000080d: NOT
0000080e: PUSH1 0x1f
00000810: DUP3
00000811: ADD
00000812: AND
00000813: DUP3
00000814: ADD
00000815: DUP1
00000816: PUSH1 0x40
00000818: MSTORE
00000819: POP
0000081a: DUP2
0000081b: ADD
0000081c: SWAP1
0000081d: PUSH2 0x0826
00000820: SWAP2
00000821: SWAP1
00000822: PUSH2 0x1c7f
00000825: JUMP
00000826: JUMPDEST
00000827: SWAP1
00000828: POP
00000829: DUP2
0000082a: ISZERO
0000082b: PUSH2 0x08a8
0000082e: JUMPI
0000082f: PUSH2 0x0839
00000832: DUP4
00000833: PUSH1 0x00
00000835: PUSH2 0x13eb
00000838: JUMP
00000839: JUMPDEST
0000083a: PUSH1 0x40
0000083c: MLOAD
0000083d: PUSH4 0x131836e7
00000842: PUSH1 0xe2
00000844: SHL
00000845: DUP2
00000846: MSTORE
00000847: PUSH20 0x95fcc6006d2a7c02e0eae2859299efa04ee16d19
0000085c: SWAP1
0000085d: PUSH4 0x4c60db9c
00000862: SWAP1
00000863: PUSH2 0x0873
00000866: SWAP1
00000867: PUSH1 0x0b
00000869: SWAP1
0000086a: DUP8
0000086b: SWAP1
0000086c: PUSH1 0x04
0000086e: ADD
0000086f: PUSH2 0x2176
00000872: JUMP
00000873: JUMPDEST
00000874: PUSH1 0x00
00000876: PUSH1 0x40
00000878: MLOAD
00000879: DUP1
0000087a: DUP4
0000087b: SUB
0000087c: DUP2
0000087d: DUP7
0000087e: DUP1
0000087f: EXTCODESIZE
00000880: ISZERO
00000881: DUP1
00000882: ISZERO
00000883: PUSH2 0x088b
00000886: JUMPI
00000887: PUSH1 0x00
00000889: DUP1
0000088a: REVERT
0000088b: JUMPDEST
0000088c: POP
0000088d: GAS
0000088e: DELEGATECALL
0000088f: ISZERO
00000890: DUP1
00000891: ISZERO
00000892: PUSH2 0x089f
00000895: JUMPI
00000896: RETURNDATASIZE
00000897: PUSH1 0x00
00000899: DUP1
0000089a: RETURNDATACOPY
0000089b: RETURNDATASIZE
0000089c: PUSH1 0x00
0000089e: REVERT
0000089f: JUMPDEST
000008a0: POP
000008a1: POP
000008a2: POP
000008a3: POP
000008a4: PUSH2 0x091f
000008a7: JUMP
000008a8: JUMPDEST
000008a9: PUSH2 0x08b2
000008ac: DUP4
000008ad: DUP3
000008ae: PUSH2 0x13eb
000008b1: JUMP
000008b2: JUMPDEST
000008b3: PUSH1 0x40
000008b5: MLOAD
000008b6: PUSH4 0x2f0ad017
000008bb: PUSH1 0xe2
000008bd: SHL
000008be: DUP2
000008bf: MSTORE
000008c0: PUSH20 0x95fcc6006d2a7c02e0eae2859299efa04ee16d19
000008d5: SWAP1
000008d6: PUSH4 0xbc2b405c
000008db: SWAP1
000008dc: PUSH2 0x08ee
000008df: SWAP1
000008e0: PUSH1 0x0b
000008e2: SWAP1
000008e3: DUP8
000008e4: SWAP1
000008e5: DUP7
000008e6: SWAP1
000008e7: PUSH1 0x04
000008e9: ADD
000008ea: PUSH2 0x218d
000008ed: JUMP
000008ee: JUMPDEST
000008ef: PUSH1 0x00
000008f1: PUSH1 0x40
000008f3: MLOAD
000008f4: DUP1
000008f5: DUP4
000008f6: SUB
000008f7: DUP2
000008f8: DUP7
000008f9: DUP1
000008fa: EXTCODESIZE
000008fb: ISZERO
000008fc: DUP1
000008fd: ISZERO
000008fe: PUSH2 0x0906
00000901: JUMPI
00000902: PUSH1 0x00
00000904: DUP1
00000905: REVERT
00000906: JUMPDEST
00000907: POP
00000908: GAS
00000909: DELEGATECALL
0000090a: ISZERO
0000090b: DUP1
0000090c: ISZERO
0000090d: PUSH2 0x091a
00000910: JUMPI
00000911: RETURNDATASIZE
00000912: PUSH1 0x00
00000914: DUP1
00000915: RETURNDATACOPY
00000916: RETURNDATASIZE
00000917: PUSH1 0x00
00000919: REVERT
0000091a: JUMPDEST
0000091b: POP
0000091c: POP
0000091d: POP
0000091e: POP
0000091f: JUMPDEST
00000920: DUP3
00000921: PUSH1 0x01
00000923: PUSH1 0x01
00000925: PUSH1 0xa0
00000927: SHL
00000928: SUB
00000929: AND
0000092a: PUSH32 0xa3c7c11b2e12c4144b09a7813f3393ba646392788638998c97be8da908cf04be
0000094b: DUP4
0000094c: PUSH1 0x40
0000094e: MLOAD
0000094f: PUSH2 0x0958
00000952: SWAP2
00000953: SWAP1
00000954: PUSH2 0x1d07
00000957: JUMP
00000958: JUMPDEST
00000959: PUSH1 0x40
0000095b: MLOAD
0000095c: DUP1
0000095d: SWAP2
0000095e: SUB
0000095f: SWAP1
00000960: LOG2
00000961: POP
00000962: POP
00000963: POP
00000964: JUMP
00000965: JUMPDEST
00000966: PUSH1 0x60
00000968: PUSH1 0x03
0000096a: DUP1
0000096b: SLOAD
0000096c: PUSH2 0x0974
0000096f: SWAP1
00000970: PUSH2 0x22cc
00000973: JUMP
00000974: JUMPDEST
00000975: DUP1
00000976: PUSH1 0x1f
00000978: ADD
00000979: PUSH1 0x20
0000097b: DUP1
0000097c: SWAP2
0000097d: DIV
0000097e: MUL
0000097f: PUSH1 0x20
00000981: ADD
00000982: PUSH1 0x40
00000984: MLOAD
00000985: SWAP1
00000986: DUP2
00000987: ADD
00000988: PUSH1 0x40
0000098a: MSTORE
0000098b: DUP1
0000098c: SWAP3
0000098d: SWAP2
0000098e: SWAP1
0000098f: DUP2
00000990: DUP2
00000991: MSTORE
00000992: PUSH1 0x20
00000994: ADD
00000995: DUP3
00000996: DUP1
00000997: SLOAD
00000998: PUSH2 0x09a0
0000099b: SWAP1
0000099c: PUSH2 0x22cc
0000099f: JUMP
000009a0: JUMPDEST
000009a1: DUP1
000009a2: ISZERO
000009a3: PUSH2 0x09ed
000009a6: JUMPI
000009a7: DUP1
000009a8: PUSH1 0x1f
000009aa: LT
000009ab: PUSH2 0x09c2
000009ae: JUMPI
000009af: PUSH2 0x0100
000009b2: DUP1
000009b3: DUP4
000009b4: SLOAD
000009b5: DIV
000009b6: MUL
000009b7: DUP4
000009b8: MSTORE
000009b9: SWAP2
000009ba: PUSH1 0x20
000009bc: ADD
000009bd: SWAP2
000009be: PUSH2 0x09ed
000009c1: JUMP
000009c2: JUMPDEST
000009c3: DUP3
000009c4: ADD
000009c5: SWAP2
000009c6: SWAP1
000009c7: PUSH1 0x00
000009c9: MSTORE
000009ca: PUSH1 0x20
000009cc: PUSH1 0x00
000009ce: KECCAK256
000009cf: SWAP1
000009d0: JUMPDEST
000009d1: DUP2
000009d2: SLOAD
000009d3: DUP2
000009d4: MSTORE
000009d5: SWAP1
000009d6: PUSH1 0x01
000009d8: ADD
000009d9: SWAP1
000009da: PUSH1 0x20
000009dc: ADD
000009dd: DUP1
000009de: DUP4
000009df: GT
000009e0: PUSH2 0x09d0
000009e3: JUMPI
000009e4: DUP3
000009e5: SWAP1
000009e6: SUB
000009e7: PUSH1 0x1f
000009e9: AND
000009ea: DUP3
000009eb: ADD
000009ec: SWAP2
000009ed: JUMPDEST
000009ee: POP
000009ef: POP
000009f0: POP
000009f1: POP
000009f2: POP
000009f3: SWAP1
000009f4: POP
000009f5: SWAP1
000009f6: JUMP
000009f7: JUMPDEST
000009f8: PUSH1 0x00
000009fa: PUSH2 0x0a0b
000009fd: PUSH2 0x0a04
00000a00: PUSH2 0x13e7
00000a03: JUMP
00000a04: JUMPDEST
00000a05: DUP5
00000a06: DUP5
00000a07: PUSH2 0x1444
00000a0a: JUMP
00000a0b: JUMPDEST
00000a0c: POP
00000a0d: PUSH1 0x01
00000a0f: JUMPDEST
00000a10: SWAP3
00000a11: SWAP2
00000a12: POP
00000a13: POP
00000a14: JUMP
00000a15: JUMPDEST
00000a16: PUSH1 0x0b
00000a18: SLOAD
00000a19: SWAP1
00000a1a: JUMP
00000a1b: JUMPDEST
00000a1c: PUSH1 0x02
00000a1e: SLOAD
00000a1f: SWAP1
00000a20: JUMP
00000a21: JUMPDEST
00000a22: PUSH1 0x12
00000a24: PUSH1 0x20
00000a26: MSTORE
00000a27: PUSH1 0x00
00000a29: SWAP1
00000a2a: DUP2
00000a2b: MSTORE
00000a2c: PUSH1 0x40
00000a2e: SWAP1
00000a2f: KECCAK256
00000a30: SLOAD
00000a31: DUP2
00000a32: JUMP
00000a33: JUMPDEST
00000a34: PUSH1 0x00
00000a36: PUSH2 0x0a40
00000a39: DUP5
00000a3a: DUP5
00000a3b: DUP5
00000a3c: PUSH2 0x14f8
00000a3f: JUMP
00000a40: JUMPDEST
00000a41: PUSH2 0x0ab0
00000a44: DUP5
00000a45: PUSH2 0x0a4c
00000a48: PUSH2 0x13e7
00000a4b: JUMP
00000a4c: JUMPDEST
00000a4d: PUSH2 0x0aab
00000a50: DUP6
00000a51: PUSH1 0x40
00000a53: MLOAD
00000a54: DUP1
00000a55: PUSH1 0x60
00000a57: ADD
00000a58: PUSH1 0x40
00000a5a: MSTORE
00000a5b: DUP1
00000a5c: PUSH1 0x28
00000a5e: DUP2
00000a5f: MSTORE
00000a60: PUSH1 0x20
00000a62: ADD
00000a63: PUSH2 0x2370
00000a66: PUSH1 0x28
00000a68: SWAP2
00000a69: CODECOPY
00000a6a: PUSH1 0x01
00000a6c: PUSH1 0x01
00000a6e: PUSH1 0xa0
00000a70: SHL
00000a71: SUB
00000a72: DUP11
00000a73: AND
00000a74: PUSH1 0x00
00000a76: SWAP1
00000a77: DUP2
00000a78: MSTORE
00000a79: PUSH1 0x01
00000a7b: PUSH1 0x20
00000a7d: MSTORE
00000a7e: PUSH1 0x40
00000a80: DUP2
00000a81: KECCAK256
00000a82: SWAP1
00000a83: PUSH2 0x0a8a
00000a86: PUSH2 0x13e7
00000a89: JUMP
00000a8a: JUMPDEST
00000a8b: PUSH1 0x01
00000a8d: PUSH1 0x01
00000a8f: PUSH1 0xa0
00000a91: SHL
00000a92: SUB
00000a93: AND
00000a94: DUP2
00000a95: MSTORE
00000a96: PUSH1 0x20
00000a98: DUP2
00000a99: ADD
00000a9a: SWAP2
00000a9b: SWAP1
00000a9c: SWAP2
00000a9d: MSTORE
00000a9e: PUSH1 0x40
00000aa0: ADD
00000aa1: PUSH1 0x00
00000aa3: KECCAK256
00000aa4: SLOAD
00000aa5: SWAP2
00000aa6: SWAP1
00000aa7: PUSH2 0x1510
00000aaa: JUMP
00000aab: JUMPDEST
00000aac: PUSH2 0x1444
00000aaf: JUMP
00000ab0: JUMPDEST
00000ab1: POP
00000ab2: PUSH1 0x01
00000ab4: SWAP4
00000ab5: SWAP3
00000ab6: POP
00000ab7: POP
00000ab8: POP
00000ab9: JUMP
00000aba: JUMPDEST
00000abb: PUSH1 0x01
00000abd: PUSH1 0x01
00000abf: PUSH1 0xa0
00000ac1: SHL
00000ac2: SUB
00000ac3: DUP2
00000ac4: AND
00000ac5: PUSH1 0x00
00000ac7: SWAP1
00000ac8: DUP2
00000ac9: MSTORE
00000aca: PUSH1 0x09
00000acc: PUSH1 0x20
00000ace: MSTORE
00000acf: PUSH1 0x40
00000ad1: DUP2
00000ad2: KECCAK256
00000ad3: SLOAD
00000ad4: DUP2
00000ad5: SWAP1
00000ad6: PUSH1 0x01
00000ad8: PUSH1 0x80
00000ada: SHL
00000adb: SWAP1
00000adc: PUSH2 0x0b0b
00000adf: SWAP1
00000ae0: PUSH2 0x0b06
00000ae3: SWAP1
00000ae4: PUSH2 0x0b00
00000ae7: PUSH2 0x0afb
00000aea: PUSH2 0x0af2
00000aed: DUP10
00000aee: PUSH2 0x0d20
00000af1: JUMP
00000af2: JUMPDEST
00000af3: PUSH1 0x06
00000af5: SLOAD
00000af6: SWAP1
00000af7: PUSH2 0x136c
00000afa: JUMP
00000afb: JUMPDEST
00000afc: PUSH2 0x154a
00000aff: JUMP
00000b00: JUMPDEST
00000b01: SWAP1
00000b02: PUSH2 0x156d
00000b05: JUMP
00000b06: JUMPDEST
00000b07: PUSH2 0x15be
00000b0a: JUMP
00000b0b: JUMPDEST
00000b0c: PUSH2 0x0b15
00000b0f: SWAP2
00000b10: SWAP1
00000b11: PUSH2 0x2237
00000b14: JUMP
00000b15: JUMPDEST
00000b16: SWAP2
00000b17: POP
00000b18: POP
00000b19: JUMPDEST
00000b1a: SWAP2
00000b1b: SWAP1
00000b1c: POP
00000b1d: JUMP
00000b1e: JUMPDEST
00000b1f: PUSH1 0x0f
00000b21: SLOAD
00000b22: DUP2
00000b23: JUMP
00000b24: JUMPDEST
00000b25: PUSH1 0x12
00000b27: SWAP1
00000b28: JUMP
00000b29: JUMPDEST
00000b2a: PUSH1 0x00
00000b2c: PUSH2 0x0a0b
00000b2f: PUSH2 0x0b36
00000b32: PUSH2 0x13e7
00000b35: JUMP
00000b36: JUMPDEST
00000b37: DUP5
00000b38: PUSH2 0x0aab
00000b3b: DUP6
00000b3c: PUSH1 0x01
00000b3e: PUSH1 0x00
00000b40: PUSH2 0x0b47
00000b43: PUSH2 0x13e7
00000b46: JUMP
00000b47: JUMPDEST
00000b48: PUSH1 0x01
00000b4a: PUSH1 0x01
00000b4c: PUSH1 0xa0
00000b4e: SHL
00000b4f: SUB
00000b50: SWAP1
00000b51: DUP2
00000b52: AND
00000b53: DUP3
00000b54: MSTORE
00000b55: PUSH1 0x20
00000b57: DUP1
00000b58: DUP4
00000b59: ADD
00000b5a: SWAP4
00000b5b: SWAP1
00000b5c: SWAP4
00000b5d: MSTORE
00000b5e: PUSH1 0x40
00000b60: SWAP2
00000b61: DUP3
00000b62: ADD
00000b63: PUSH1 0x00
00000b65: SWAP1
00000b66: DUP2
00000b67: KECCAK256
00000b68: SWAP2
00000b69: DUP13
00000b6a: AND
00000b6b: DUP2
00000b6c: MSTORE
00000b6d: SWAP3
00000b6e: MSTORE
00000b6f: SWAP1
00000b70: KECCAK256
00000b71: SLOAD
00000b72: SWAP1
00000b73: PUSH2 0x13b8
00000b76: JUMP
00000b77: JUMPDEST
00000b78: PUSH1 0x40
00000b7a: MLOAD
00000b7b: PUSH3 0x461bcd
00000b7f: PUSH1 0xe5
00000b81: SHL
00000b82: DUP2
00000b83: MSTORE
00000b84: PUSH1 0x04
00000b86: ADD
00000b87: PUSH2 0x0674
00000b8a: SWAP1
00000b8b: PUSH2 0x20dc
00000b8e: JUMP
00000b8f: JUMPDEST
00000b90: POP
00000b91: JUMP
00000b92: JUMPDEST
00000b93: PUSH1 0x00
00000b95: DUP1
00000b96: PUSH1 0x00
00000b98: DUP1
00000b99: PUSH1 0x00
00000b9b: DUP1
00000b9c: PUSH1 0x00
00000b9e: DUP1
00000b9f: PUSH1 0x0b
00000ba1: PUSH20 0x95fcc6006d2a7c02e0eae2859299efa04ee16d19
00000bb6: PUSH4 0xdeb3d896
00000bbb: SWAP1
00000bbc: SWAP2
00000bbd: PUSH1 0x40
00000bbf: MLOAD
00000bc0: DUP3
00000bc1: PUSH4 0xffffffff
00000bc6: AND
00000bc7: PUSH1 0xe0
00000bc9: SHL
00000bca: DUP2
00000bcb: MSTORE
00000bcc: PUSH1 0x04
00000bce: ADD
00000bcf: PUSH2 0x0bd8
00000bd2: SWAP2
00000bd3: SWAP1
00000bd4: PUSH2 0x216d
00000bd7: JUMP
00000bd8: JUMPDEST
00000bd9: PUSH1 0x20
00000bdb: PUSH1 0x40
00000bdd: MLOAD
00000bde: DUP1
00000bdf: DUP4
00000be0: SUB
00000be1: DUP2
00000be2: DUP7
00000be3: DUP1
00000be4: EXTCODESIZE
00000be5: ISZERO
00000be6: DUP1
00000be7: ISZERO
00000be8: PUSH2 0x0bf0
00000beb: JUMPI
00000bec: PUSH1 0x00
00000bee: DUP1
00000bef: REVERT
00000bf0: JUMPDEST
00000bf1: POP
00000bf2: GAS
00000bf3: DELEGATECALL
00000bf4: ISZERO
00000bf5: DUP1
00000bf6: ISZERO
00000bf7: PUSH2 0x0c04
00000bfa: JUMPI
00000bfb: RETURNDATASIZE
00000bfc: PUSH1 0x00
00000bfe: DUP1
00000bff: RETURNDATACOPY
00000c00: RETURNDATASIZE
00000c01: PUSH1 0x00
00000c03: REVERT
00000c04: JUMPDEST
00000c05: POP
00000c06: POP
00000c07: POP
00000c08: POP
00000c09: PUSH1 0x40
00000c0b: MLOAD
00000c0c: RETURNDATASIZE
00000c0d: PUSH1 0x1f
00000c0f: NOT
00000c10: PUSH1 0x1f
00000c12: DUP3
00000c13: ADD
00000c14: AND
00000c15: DUP3
00000c16: ADD
00000c17: DUP1
00000c18: PUSH1 0x40
00000c1a: MSTORE
00000c1b: POP
00000c1c: DUP2
00000c1d: ADD
00000c1e: SWAP1
00000c1f: PUSH2 0x0c28
00000c22: SWAP2
00000c23: SWAP1
00000c24: PUSH2 0x1c7f
00000c27: JUMP
00000c28: JUMPDEST
00000c29: DUP10
00000c2a: LT
00000c2b: PUSH2 0x0c4d
00000c2e: JUMPI
00000c2f: POP
00000c30: PUSH1 0x00
00000c32: SWAP7
00000c33: POP
00000c34: PUSH1 0x00
00000c36: NOT
00000c37: SWAP6
00000c38: POP
00000c39: DUP6
00000c3a: SWAP5
00000c3b: POP
00000c3c: DUP7
00000c3d: SWAP4
00000c3e: POP
00000c3f: DUP4
00000c40: SWAP3
00000c41: POP
00000c42: DUP3
00000c43: SWAP2
00000c44: POP
00000c45: DUP2
00000c46: SWAP1
00000c47: POP
00000c48: DUP1
00000c49: PUSH2 0x0cf7
00000c4c: JUMP
00000c4d: JUMPDEST
00000c4e: PUSH1 0x40
00000c50: MLOAD
00000c51: PUSH4 0x68d54f3f
00000c56: PUSH1 0xe1
00000c58: SHL
00000c59: DUP2
00000c5a: MSTORE
00000c5b: PUSH1 0x00
00000c5d: SWAP1
00000c5e: PUSH20 0x95fcc6006d2a7c02e0eae2859299efa04ee16d19
00000c73: SWAP1
00000c74: PUSH4 0xd1aa9e7e
00000c79: SWAP1
00000c7a: PUSH2 0x0c8a
00000c7d: SWAP1
00000c7e: PUSH1 0x0b
00000c80: SWAP1
00000c81: DUP15
00000c82: SWAP1
00000c83: PUSH1 0x04
00000c85: ADD
00000c86: PUSH2 0x21ac
00000c89: JUMP
00000c8a: JUMPDEST
00000c8b: PUSH1 0x20
00000c8d: PUSH1 0x40
00000c8f: MLOAD
00000c90: DUP1
00000c91: DUP4
00000c92: SUB
00000c93: DUP2
00000c94: DUP7
00000c95: DUP1
00000c96: EXTCODESIZE
00000c97: ISZERO
00000c98: DUP1
00000c99: ISZERO
00000c9a: PUSH2 0x0ca2
00000c9d: JUMPI
00000c9e: PUSH1 0x00
00000ca0: DUP1
00000ca1: REVERT
00000ca2: JUMPDEST
00000ca3: POP
00000ca4: GAS
00000ca5: DELEGATECALL
00000ca6: ISZERO
00000ca7: DUP1
00000ca8: ISZERO
00000ca9: PUSH2 0x0cb6
00000cac: JUMPI
00000cad: RETURNDATASIZE
00000cae: PUSH1 0x00
00000cb0: DUP1
00000cb1: RETURNDATACOPY
00000cb2: RETURNDATASIZE
00000cb3: PUSH1 0x00
00000cb5: REVERT
00000cb6: JUMPDEST
00000cb7: POP
00000cb8: POP
00000cb9: POP
00000cba: POP
00000cbb: PUSH1 0x40
00000cbd: MLOAD
00000cbe: RETURNDATASIZE
00000cbf: PUSH1 0x1f
00000cc1: NOT
00000cc2: PUSH1 0x1f
00000cc4: DUP3
00000cc5: ADD
00000cc6: AND
00000cc7: DUP3
00000cc8: ADD
00000cc9: DUP1
00000cca: PUSH1 0x40
00000ccc: MSTORE
00000ccd: POP
00000cce: DUP2
00000ccf: ADD
00000cd0: SWAP1
00000cd1: PUSH2 0x0cda
00000cd4: SWAP2
00000cd5: SWAP1
00000cd6: PUSH2 0x1b7d
00000cd9: JUMP
00000cda: JUMPDEST
00000cdb: SWAP1
00000cdc: POP
00000cdd: PUSH2 0x0ce5
00000ce0: DUP2
00000ce1: PUSH2 0x15e4
00000ce4: JUMP
00000ce5: JUMPDEST
00000ce6: SWAP9
00000ce7: POP
00000ce8: SWAP9
00000ce9: POP
00000cea: SWAP9
00000ceb: POP
00000cec: SWAP9
00000ced: POP
00000cee: SWAP9
00000cef: POP
00000cf0: SWAP9
00000cf1: POP
00000cf2: SWAP9
00000cf3: POP
00000cf4: SWAP9
00000cf5: POP
00000cf6: POP
00000cf7: JUMPDEST
00000cf8: SWAP2
00000cf9: SWAP4
00000cfa: SWAP6
00000cfb: SWAP8
00000cfc: POP
00000cfd: SWAP2
00000cfe: SWAP4
00000cff: SWAP6
00000d00: SWAP8
00000d01: JUMP
00000d02: JUMPDEST
00000d03: PUSH1 0x40
00000d05: MLOAD
00000d06: PUSH3 0x461bcd
00000d0a: PUSH1 0xe5
00000d0c: SHL
00000d0d: DUP2
00000d0e: MSTORE
00000d0f: PUSH1 0x04
00000d11: ADD
00000d12: PUSH2 0x0674
00000d15: SWAP1
00000d16: PUSH2 0x1eb5
00000d19: JUMP
00000d1a: JUMPDEST
00000d1b: PUSH1 0x10
00000d1d: SLOAD
00000d1e: DUP2
00000d1f: JUMP
00000d20: JUMPDEST
00000d21: PUSH1 0x01
00000d23: PUSH1 0x01
00000d25: PUSH1 0xa0
00000d27: SHL
00000d28: SUB
00000d29: AND
00000d2a: PUSH1 0x00
00000d2c: SWAP1
00000d2d: DUP2
00000d2e: MSTORE
00000d2f: PUSH1 0x20
00000d31: DUP2
00000d32: SWAP1
00000d33: MSTORE
00000d34: PUSH1 0x40
00000d36: SWAP1
00000d37: KECCAK256
00000d38: SLOAD
00000d39: SWAP1
00000d3a: JUMP
00000d3b: JUMPDEST
00000d3c: PUSH2 0x0d43
00000d3f: PUSH2 0x13e7
00000d42: JUMP
00000d43: JUMPDEST
00000d44: PUSH1 0x05
00000d46: SLOAD
00000d47: PUSH1 0x01
00000d49: PUSH1 0x01
00000d4b: PUSH1 0xa0
00000d4d: SHL
00000d4e: SUB
00000d4f: SWAP1
00000d50: DUP2
00000d51: AND
00000d52: SWAP2
00000d53: AND
00000d54: EQ
00000d55: PUSH2 0x0d70
00000d58: JUMPI
00000d59: PUSH1 0x40
00000d5b: MLOAD
00000d5c: PUSH3 0x461bcd
00000d60: PUSH1 0xe5
00000d62: SHL
00000d63: DUP2
00000d64: MSTORE
00000d65: PUSH1 0x04
00000d67: ADD
00000d68: PUSH2 0x0674
00000d6b: SWAP1
00000d6c: PUSH2 0x1fc7
00000d6f: JUMP
00000d70: JUMPDEST
00000d71: PUSH1 0x00
00000d73: PUSH2 0x0d7b
00000d76: DUP3
00000d77: PUSH2 0x1754
00000d7a: JUMP
00000d7b: JUMPDEST
00000d7c: SWAP1
00000d7d: POP
00000d7e: DUP2
00000d7f: PUSH1 0x01
00000d81: PUSH1 0x01
00000d83: PUSH1 0xa0
00000d85: SHL
00000d86: SUB
00000d87: AND
00000d88: PUSH32 0x47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4
00000da9: DUP3
00000daa: PUSH1 0x40
00000dac: MLOAD
00000dad: PUSH2 0x0db6
00000db0: SWAP2
00000db1: SWAP1
00000db2: PUSH2 0x216d
00000db5: JUMP
00000db6: JUMPDEST
00000db7: PUSH1 0x40
00000db9: MLOAD
00000dba: DUP1
00000dbb: SWAP2
00000dbc: SUB
00000dbd: SWAP1
00000dbe: LOG2
00000dbf: POP
00000dc0: POP
00000dc1: JUMP
00000dc2: JUMPDEST
00000dc3: PUSH1 0x08
00000dc5: SLOAD
00000dc6: DUP2
00000dc7: JUMP
00000dc8: JUMPDEST
00000dc9: PUSH1 0x05
00000dcb: SLOAD
00000dcc: PUSH1 0x01
00000dce: PUSH1 0x01
00000dd0: PUSH1 0xa0
00000dd2: SHL
00000dd3: SUB
00000dd4: AND
00000dd5: SWAP1
00000dd6: JUMP
00000dd7: JUMPDEST
00000dd8: PUSH1 0x00
00000dda: DUP1
00000ddb: PUSH2 0x0b15
00000dde: DUP4
00000ddf: PUSH2 0x0e5a
00000de2: JUMP
00000de3: JUMPDEST
00000de4: PUSH1 0x60
00000de6: PUSH1 0x04
00000de8: DUP1
00000de9: SLOAD
00000dea: PUSH2 0x0974
00000ded: SWAP1
00000dee: PUSH2 0x22cc
00000df1: JUMP
00000df2: JUMPDEST
00000df3: PUSH1 0x00
00000df5: PUSH2 0x0a0b
00000df8: PUSH2 0x0dff
00000dfb: PUSH2 0x13e7
00000dfe: JUMP
00000dff: JUMPDEST
00000e00: DUP5
00000e01: PUSH2 0x0aab
00000e04: DUP6
00000e05: PUSH1 0x40
00000e07: MLOAD
00000e08: DUP1
00000e09: PUSH1 0x60
00000e0b: ADD
00000e0c: PUSH1 0x40
00000e0e: MSTORE
00000e0f: DUP1
00000e10: PUSH1 0x25
00000e12: DUP2
00000e13: MSTORE
00000e14: PUSH1 0x20
00000e16: ADD
00000e17: PUSH2 0x2398
00000e1a: PUSH1 0x25
00000e1c: SWAP2
00000e1d: CODECOPY
00000e1e: PUSH1 0x01
00000e20: PUSH1 0x00
00000e22: PUSH2 0x0e29
00000e25: PUSH2 0x13e7
00000e28: JUMP
00000e29: JUMPDEST
00000e2a: PUSH1 0x01
00000e2c: PUSH1 0x01
00000e2e: PUSH1 0xa0
00000e30: SHL
00000e31: SUB
00000e32: SWAP1
00000e33: DUP2
00000e34: AND
00000e35: DUP3
00000e36: MSTORE
00000e37: PUSH1 0x20
00000e39: DUP1
00000e3a: DUP4
00000e3b: ADD
00000e3c: SWAP4
00000e3d: SWAP1
00000e3e: SWAP4
00000e3f: MSTORE
00000e40: PUSH1 0x40
00000e42: SWAP2
00000e43: DUP3
00000e44: ADD
00000e45: PUSH1 0x00
00000e47: SWAP1
00000e48: DUP2
00000e49: KECCAK256
00000e4a: SWAP2
00000e4b: DUP14
00000e4c: AND
00000e4d: DUP2
00000e4e: MSTORE
00000e4f: SWAP3
00000e50: MSTORE
00000e51: SWAP1
00000e52: KECCAK256
00000e53: SLOAD
00000e54: SWAP2
00000e55: SWAP1
00000e56: PUSH2 0x1510
00000e59: JUMP
00000e5a: JUMPDEST
00000e5b: PUSH1 0x01
00000e5d: PUSH1 0x01
00000e5f: PUSH1 0xa0
00000e61: SHL
00000e62: SUB
00000e63: DUP2
00000e64: AND
00000e65: PUSH1 0x00
00000e67: SWAP1
00000e68: DUP2
00000e69: MSTORE
00000e6a: PUSH1 0x0a
00000e6c: PUSH1 0x20
00000e6e: MSTORE
00000e6f: PUSH1 0x40
00000e71: DUP2
00000e72: KECCAK256
00000e73: SLOAD
00000e74: DUP2
00000e75: SWAP1
00000e76: PUSH2 0x0b15
00000e79: SWAP1
00000e7a: PUSH2 0x0e82
00000e7d: DUP6
00000e7e: PUSH2 0x0aba
00000e81: JUMP
00000e82: JUMPDEST
00000e83: SWAP1
00000e84: PUSH2 0x182c
00000e87: JUMP
00000e88: JUMPDEST
00000e89: PUSH1 0x00
00000e8b: PUSH2 0x0a0b
00000e8e: PUSH2 0x0e95
00000e91: PUSH2 0x13e7
00000e94: JUMP
00000e95: JUMPDEST
00000e96: DUP5
00000e97: DUP5
00000e98: PUSH2 0x14f8
00000e9b: JUMP
00000e9c: JUMPDEST
00000e9d: PUSH1 0x01
00000e9f: PUSH1 0x01
00000ea1: PUSH1 0xa0
00000ea3: SHL
00000ea4: SUB
00000ea5: AND
00000ea6: PUSH1 0x00
00000ea8: SWAP1
00000ea9: DUP2
00000eaa: MSTORE
00000eab: PUSH1 0x0a
00000ead: PUSH1 0x20
00000eaf: MSTORE
00000eb0: PUSH1 0x40
00000eb2: SWAP1
00000eb3: KECCAK256
00000eb4: SLOAD
00000eb5: SWAP1
00000eb6: JUMP
00000eb7: JUMPDEST
00000eb8: PUSH32 0x000000000000000000000000000000000000000002d7eb3f96e070d970000000
00000ed9: DUP2
00000eda: JUMP
00000edb: JUMPDEST
00000edc: PUSH1 0x11
00000ede: PUSH1 0x20
00000ee0: MSTORE
00000ee1: PUSH1 0x00
00000ee3: SWAP1
00000ee4: DUP2
00000ee5: MSTORE
00000ee6: PUSH1 0x40
00000ee8: SWAP1
00000ee9: KECCAK256
00000eea: SLOAD
00000eeb: PUSH1 0xff
00000eed: AND
00000eee: DUP2
00000eef: JUMP
00000ef0: JUMPDEST
00000ef1: PUSH1 0x01
00000ef3: PUSH1 0x01
00000ef5: PUSH1 0xa0
00000ef7: SHL
00000ef8: SUB
00000ef9: SWAP2
00000efa: DUP3
00000efb: AND
00000efc: PUSH1 0x00
00000efe: SWAP1
00000eff: DUP2
00000f00: MSTORE
00000f01: PUSH1 0x01
00000f03: PUSH1 0x20
00000f05: SWAP1
00000f06: DUP2
00000f07: MSTORE
00000f08: PUSH1 0x40
00000f0a: DUP1
00000f0b: DUP4
00000f0c: KECCAK256
00000f0d: SWAP4
00000f0e: SWAP1
00000f0f: SWAP5
00000f10: AND
00000f11: DUP3
00000f12: MSTORE
00000f13: SWAP2
00000f14: SWAP1
00000f15: SWAP2
00000f16: MSTORE
00000f17: KECCAK256
00000f18: SLOAD
00000f19: SWAP1
00000f1a: JUMP
00000f1b: JUMPDEST
00000f1c: PUSH2 0x0f23
00000f1f: PUSH2 0x13e7
00000f22: JUMP
00000f23: JUMPDEST
00000f24: PUSH1 0x05
00000f26: SLOAD
00000f27: PUSH1 0x01
00000f29: PUSH1 0x01
00000f2b: PUSH1 0xa0
00000f2d: SHL
00000f2e: SUB
00000f2f: SWAP1
00000f30: DUP2
00000f31: AND
00000f32: SWAP2
00000f33: AND
00000f34: EQ
00000f35: PUSH2 0x0f50
00000f38: JUMPI
00000f39: PUSH1 0x40
00000f3b: MLOAD
00000f3c: PUSH3 0x461bcd
00000f40: PUSH1 0xe5
00000f42: SHL
00000f43: DUP2
00000f44: MSTORE
00000f45: PUSH1 0x04
00000f47: ADD
00000f48: PUSH2 0x0674
00000f4b: SWAP1
00000f4c: PUSH2 0x1fc7
00000f4f: JUMP
00000f50: JUMPDEST
00000f51: PUSH1 0x01
00000f53: PUSH1 0x01
00000f55: PUSH1 0xa0
00000f57: SHL
00000f58: SUB
00000f59: DUP3
00000f5a: AND
00000f5b: PUSH1 0x00
00000f5d: SWAP1
00000f5e: DUP2
00000f5f: MSTORE
00000f60: PUSH1 0x11
00000f62: PUSH1 0x20
00000f64: MSTORE
00000f65: PUSH1 0x40
00000f67: SWAP1
00000f68: KECCAK256
00000f69: SLOAD
00000f6a: PUSH1 0xff
00000f6c: AND
00000f6d: ISZERO
00000f6e: PUSH2 0x0f76
00000f71: JUMPI
00000f72: PUSH2 0x1099
00000f75: JUMP
00000f76: JUMPDEST
00000f77: PUSH32 0x000000000000000000000000000000000000000002d7eb3f96e070d970000000
00000f98: DUP2
00000f99: LT
00000f9a: PUSH2 0x1018
00000f9d: JUMPI
00000f9e: PUSH2 0x0fa7
00000fa1: DUP3
00000fa2: DUP3
00000fa3: PUSH2 0x13eb
00000fa6: JUMP
00000fa7: JUMPDEST
00000fa8: PUSH1 0x40
00000faa: MLOAD
00000fab: PUSH4 0x2f0ad017
00000fb0: PUSH1 0xe2
00000fb2: SHL
00000fb3: DUP2
00000fb4: MSTORE
00000fb5: PUSH20 0x95fcc6006d2a7c02e0eae2859299efa04ee16d19
00000fca: SWAP1
00000fcb: PUSH4 0xbc2b405c
00000fd0: SWAP1
00000fd1: PUSH2 0x0fe3
00000fd4: SWAP1
00000fd5: PUSH1 0x0b
00000fd7: SWAP1
00000fd8: DUP7
00000fd9: SWAP1
00000fda: DUP7
00000fdb: SWAP1
00000fdc: PUSH1 0x04
00000fde: ADD
00000fdf: PUSH2 0x218d
00000fe2: JUMP
00000fe3: JUMPDEST
00000fe4: PUSH1 0x00
00000fe6: PUSH1 0x40
00000fe8: MLOAD
00000fe9: DUP1
00000fea: DUP4
00000feb: SUB
00000fec: DUP2
00000fed: DUP7
00000fee: DUP1
00000fef: EXTCODESIZE
00000ff0: ISZERO
00000ff1: DUP1
00000ff2: ISZERO
00000ff3: PUSH2 0x0ffb
00000ff6: JUMPI
00000ff7: PUSH1 0x00
00000ff9: DUP1
00000ffa: REVERT
00000ffb: JUMPDEST
00000ffc: POP
00000ffd: GAS
00000ffe: DELEGATECALL
00000fff: ISZERO
00001000: DUP1
00001001: ISZERO
00001002: PUSH2 0x100f
00001005: JUMPI
00001006: RETURNDATASIZE
00001007: PUSH1 0x00
00001009: DUP1
0000100a: RETURNDATACOPY
0000100b: RETURNDATASIZE
0000100c: PUSH1 0x00
0000100e: REVERT
0000100f: JUMPDEST
00001010: POP
00001011: POP
00001012: POP
00001013: POP
00001014: PUSH2 0x108e
00001017: JUMP
00001018: JUMPDEST
00001019: PUSH2 0x1023
0000101c: DUP3
0000101d: PUSH1 0x00
0000101f: PUSH2 0x13eb
00001022: JUMP
00001023: JUMPDEST
00001024: PUSH1 0x40
00001026: MLOAD
00001027: PUSH4 0x131836e7
0000102c: PUSH1 0xe2
0000102e: SHL
0000102f: DUP2
00001030: MSTORE
00001031: PUSH20 0x95fcc6006d2a7c02e0eae2859299efa04ee16d19
00001046: SWAP1
00001047: PUSH4 0x4c60db9c
0000104c: SWAP1
0000104d: PUSH2 0x105d
00001050: SWAP1
00001051: PUSH1 0x0b
00001053: SWAP1
00001054: DUP7
00001055: SWAP1
00001056: PUSH1 0x04
00001058: ADD
00001059: PUSH2 0x2176
0000105c: JUMP
0000105d: JUMPDEST
0000105e: PUSH1 0x00
00001060: PUSH1 0x40
00001062: MLOAD
00001063: DUP1
00001064: DUP4
00001065: SUB
00001066: DUP2
00001067: DUP7
00001068: DUP1
00001069: EXTCODESIZE
0000106a: ISZERO
0000106b: DUP1
0000106c: ISZERO
0000106d: PUSH2 0x1075
00001070: JUMPI
00001071: PUSH1 0x00
00001073: DUP1
00001074: REVERT
00001075: JUMPDEST
00001076: POP
00001077: GAS
00001078: DELEGATECALL
00001079: ISZERO
0000107a: DUP1
0000107b: ISZERO
0000107c: PUSH2 0x1089
0000107f: JUMPI
00001080: RETURNDATASIZE
00001081: PUSH1 0x00
00001083: DUP1
00001084: RETURNDATACOPY
00001085: RETURNDATASIZE
00001086: PUSH1 0x00
00001088: REVERT
00001089: JUMPDEST
0000108a: POP
0000108b: POP
0000108c: POP
0000108d: POP
0000108e: JUMPDEST
0000108f: PUSH2 0x1097
00001092: DUP3
00001093: PUSH2 0x186e
00001096: JUMP
00001097: JUMPDEST
00001098: POP
00001099: JUMPDEST
0000109a: POP
0000109b: POP
0000109c: JUMP
0000109d: JUMPDEST
0000109e: PUSH1 0x0f
000010a0: SLOAD
000010a1: SWAP1
000010a2: JUMP
000010a3: JUMPDEST
000010a4: PUSH2 0x10ab
000010a7: PUSH2 0x13e7
000010aa: JUMP
000010ab: JUMPDEST
000010ac: PUSH1 0x05
000010ae: SLOAD
000010af: PUSH1 0x01
000010b1: PUSH1 0x01
000010b3: PUSH1 0xa0
000010b5: SHL
000010b6: SUB
000010b7: SWAP1
000010b8: DUP2
000010b9: AND
000010ba: SWAP2
000010bb: AND
000010bc: EQ
000010bd: PUSH2 0x10d8
000010c0: JUMPI
000010c1: PUSH1 0x40
000010c3: MLOAD
000010c4: PUSH3 0x461bcd
000010c8: PUSH1 0xe5
000010ca: SHL
000010cb: DUP2
000010cc: MSTORE
000010cd: PUSH1 0x04
000010cf: ADD
000010d0: PUSH2 0x0674
000010d3: SWAP1
000010d4: PUSH2 0x1fc7
000010d7: JUMP
000010d8: JUMPDEST
000010d9: PUSH2 0x0708
000010dc: DUP2
000010dd: LT
000010de: ISZERO
000010df: DUP1
000010e0: ISZERO
000010e1: PUSH2 0x10ed
000010e4: JUMPI
000010e5: POP
000010e6: PUSH3 0x015180
000010ea: DUP2
000010eb: GT
000010ec: ISZERO
000010ed: JUMPDEST
000010ee: PUSH2 0x1109
000010f1: JUMPI
000010f2: PUSH1 0x40
000010f4: MLOAD
000010f5: PUSH3 0x461bcd
000010f9: PUSH1 0xe5
000010fb: SHL
000010fc: DUP2
000010fd: MSTORE
000010fe: PUSH1 0x04
00001100: ADD
00001101: PUSH2 0x0674
00001104: SWAP1
00001105: PUSH2 0x1eec
00001108: JUMP
00001109: JUMPDEST
0000110a: PUSH1 0x10
0000110c: SLOAD
0000110d: DUP2
0000110e: EQ
0000110f: ISZERO
00001110: PUSH2 0x112b
00001113: JUMPI
00001114: PUSH1 0x40
00001116: MLOAD
00001117: PUSH3 0x461bcd
0000111b: PUSH1 0xe5
0000111d: SHL
0000111e: DUP2
0000111f: MSTORE
00001120: PUSH1 0x04
00001122: ADD
00001123: PUSH2 0x0674
00001126: SWAP1
00001127: PUSH2 0x1d65
0000112a: JUMP
0000112b: JUMPDEST
0000112c: PUSH1 0x10
0000112e: SLOAD
0000112f: PUSH1 0x40
00001131: MLOAD
00001132: DUP3
00001133: SWAP1
00001134: PUSH32 0x474ea64804364a1e29a4487ddb63c3342a2dd826ccd8acf48825e680a0e6f20f
00001155: SWAP1
00001156: PUSH1 0x00
00001158: SWAP1
00001159: LOG3
0000115a: PUSH1 0x10
0000115c: SSTORE
0000115d: JUMP
0000115e: JUMPDEST
0000115f: PUSH2 0x1166
00001162: PUSH2 0x13e7
00001165: JUMP
00001166: JUMPDEST
00001167: PUSH1 0x05
00001169: SLOAD
0000116a: PUSH1 0x01
0000116c: PUSH1 0x01
0000116e: PUSH1 0xa0
00001170: SHL
00001171: SUB
00001172: SWAP1
00001173: DUP2
00001174: AND
00001175: SWAP2
00001176: AND
00001177: EQ
00001178: PUSH2 0x1193
0000117b: JUMPI
0000117c: PUSH1 0x40
0000117e: MLOAD
0000117f: PUSH3 0x461bcd
00001183: PUSH1 0xe5
00001185: SHL
00001186: DUP2
00001187: MSTORE
00001188: PUSH1 0x04
0000118a: ADD
0000118b: PUSH2 0x0674
0000118e: SWAP1
0000118f: PUSH2 0x1fc7
00001192: JUMP
00001193: JUMPDEST
00001194: PUSH1 0x01
00001196: PUSH1 0x01
00001198: PUSH1 0xa0
0000119a: SHL
0000119b: SUB
0000119c: DUP2
0000119d: AND
0000119e: PUSH2 0x11b9
000011a1: JUMPI
000011a2: PUSH1 0x40
000011a4: MLOAD
000011a5: PUSH3 0x461bcd
000011a9: PUSH1 0xe5
000011ab: SHL
000011ac: DUP2
000011ad: MSTORE
000011ae: PUSH1 0x04
000011b0: ADD
000011b1: PUSH2 0x0674
000011b4: SWAP1
000011b5: PUSH2 0x1df6
000011b8: JUMP
000011b9: JUMPDEST
000011ba: PUSH1 0x05
000011bc: SLOAD
000011bd: PUSH1 0x40
000011bf: MLOAD
000011c0: PUSH1 0x01
000011c2: PUSH1 0x01
000011c4: PUSH1 0xa0
000011c6: SHL
000011c7: SUB
000011c8: DUP1
000011c9: DUP5
000011ca: AND
000011cb: SWAP3
000011cc: AND
000011cd: SWAP1
000011ce: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
000011ef: SWAP1
000011f0: PUSH1 0x00
000011f2: SWAP1
000011f3: LOG3
000011f4: PUSH1 0x05
000011f6: DUP1
000011f7: SLOAD
000011f8: PUSH1 0x01
000011fa: PUSH1 0x01
000011fc: PUSH1 0xa0
000011fe: SHL
000011ff: SUB
00001200: NOT
00001201: AND
00001202: PUSH1 0x01
00001204: PUSH1 0x01
00001206: PUSH1 0xa0
00001208: SHL
00001209: SUB
0000120a: SWAP3
0000120b: SWAP1
0000120c: SWAP3
0000120d: AND
0000120e: SWAP2
0000120f: SWAP1
00001210: SWAP2
00001211: OR
00001212: SWAP1
00001213: SSTORE
00001214: JUMP
00001215: JUMPDEST
00001216: PUSH1 0x00
00001218: DUP1
00001219: PUSH1 0x00
0000121b: DUP1
0000121c: PUSH1 0x00
0000121e: DUP1
0000121f: PUSH1 0x00
00001221: DUP1
00001222: PUSH2 0x122a
00001225: DUP10
00001226: PUSH2 0x15e4
00001229: JUMP
0000122a: JUMPDEST
0000122b: SWAP8
0000122c: POP
0000122d: SWAP8
0000122e: POP
0000122f: SWAP8
00001230: POP
00001231: SWAP8
00001232: POP
00001233: SWAP8
00001234: POP
00001235: SWAP8
00001236: POP
00001237: SWAP8
00001238: POP
00001239: SWAP8
0000123a: POP
0000123b: SWAP2
0000123c: SWAP4
0000123d: SWAP6
0000123e: SWAP8
0000123f: POP
00001240: SWAP2
00001241: SWAP4
00001242: SWAP6
00001243: SWAP8
00001244: JUMP
00001245: JUMPDEST
00001246: PUSH1 0x0b
00001248: SLOAD
00001249: PUSH1 0x00
0000124b: SWAP1
0000124c: DUP2
0000124d: SWAP1
0000124e: DUP2
0000124f: SWAP1
00001250: DUP1
00001251: PUSH2 0x1265
00001254: JUMPI
00001255: POP
00001256: POP
00001257: PUSH1 0x0f
00001259: SLOAD
0000125a: PUSH1 0x00
0000125c: SWAP3
0000125d: POP
0000125e: DUP3
0000125f: SWAP2
00001260: POP
00001261: PUSH2 0x1365
00001264: JUMP
00001265: JUMPDEST
00001266: PUSH1 0x0f
00001268: SLOAD
00001269: PUSH1 0x00
0000126b: DUP1
0000126c: GAS
0000126d: SWAP1
0000126e: POP
0000126f: PUSH1 0x00
00001271: DUP1
00001272: JUMPDEST
00001273: DUP10
00001274: DUP5
00001275: LT
00001276: DUP1
00001277: ISZERO
00001278: PUSH2 0x1280
0000127b: JUMPI
0000127c: POP
0000127d: DUP6
0000127e: DUP3
0000127f: LT
00001280: JUMPDEST
00001281: ISZERO
00001282: PUSH2 0x1354
00001285: JUMPI
00001286: DUP5
00001287: PUSH2 0x128f
0000128a: DUP2
0000128b: PUSH2 0x2307
0000128e: JUMP
0000128f: JUMPDEST
00001290: PUSH1 0x0b
00001292: SLOAD
00001293: SWAP1
00001294: SWAP7
00001295: POP
00001296: DUP7
00001297: LT
00001298: SWAP1
00001299: POP
0000129a: PUSH2 0x12a2
0000129d: JUMPI
0000129e: PUSH1 0x00
000012a0: SWAP5
000012a1: POP
000012a2: JUMPDEST
000012a3: PUSH1 0x00
000012a5: PUSH1 0x0b
000012a7: PUSH1 0x00
000012a9: ADD
000012aa: DUP7
000012ab: DUP2
000012ac: SLOAD
000012ad: DUP2
000012ae: LT
000012af: PUSH2 0x12c8
000012b2: JUMPI
000012b3: PUSH4 0x4e487b71
000012b8: PUSH1 0xe0
000012ba: SHL
000012bb: PUSH1 0x00
000012bd: MSTORE
000012be: PUSH1 0x32
000012c0: PUSH1 0x04
000012c2: MSTORE
000012c3: PUSH1 0x24
000012c5: PUSH1 0x00
000012c7: REVERT
000012c8: JUMPDEST
000012c9: PUSH1 0x00
000012cb: SWAP2
000012cc: DUP3
000012cd: MSTORE
000012ce: PUSH1 0x20
000012d0: DUP1
000012d1: DUP4
000012d2: KECCAK256
000012d3: SWAP1
000012d4: SWAP2
000012d5: ADD
000012d6: SLOAD
000012d7: PUSH1 0x01
000012d9: PUSH1 0x01
000012db: PUSH1 0xa0
000012dd: SHL
000012de: SUB
000012df: AND
000012e0: DUP1
000012e1: DUP4
000012e2: MSTORE
000012e3: PUSH1 0x12
000012e5: SWAP1
000012e6: SWAP2
000012e7: MSTORE
000012e8: PUSH1 0x40
000012ea: SWAP1
000012eb: SWAP2
000012ec: KECCAK256
000012ed: SLOAD
000012ee: SWAP1
000012ef: SWAP2
000012f0: POP
000012f1: PUSH2 0x12f9
000012f4: SWAP1
000012f5: PUSH2 0x18a6
000012f8: JUMP
000012f9: JUMPDEST
000012fa: ISZERO
000012fb: PUSH2 0x131a
000012fe: JUMPI
000012ff: PUSH2 0x1307
00001302: DUP2
00001303: PUSH2 0x186e
00001306: JUMP
00001307: JUMPDEST
00001308: ISZERO
00001309: PUSH2 0x131a
0000130c: JUMPI
0000130d: DUP2
0000130e: PUSH2 0x1316
00001311: DUP2
00001312: PUSH2 0x2307
00001315: JUMP
00001316: JUMPDEST
00001317: SWAP3
00001318: POP
00001319: POP
0000131a: JUMPDEST
0000131b: DUP3
0000131c: PUSH2 0x1324
0000131f: DUP2
00001320: PUSH2 0x2307
00001323: JUMP
00001324: JUMPDEST
00001325: SWAP4
00001326: POP
00001327: POP
00001328: PUSH1 0x00
0000132a: GAS
0000132b: SWAP1
0000132c: POP
0000132d: DUP1
0000132e: DUP6
0000132f: GT
00001330: ISZERO
00001331: PUSH2 0x134b
00001334: JUMPI
00001335: PUSH2 0x1348
00001338: PUSH2 0x1341
0000133b: DUP7
0000133c: DUP4
0000133d: PUSH2 0x182c
00001340: JUMP
00001341: JUMPDEST
00001342: DUP8
00001343: SWAP1
00001344: PUSH2 0x13b8
00001347: JUMP
00001348: JUMPDEST
00001349: SWAP6
0000134a: POP
0000134b: JUMPDEST
0000134c: SWAP4
0000134d: POP
0000134e: PUSH2 0x1272
00001351: SWAP1
00001352: POP
00001353: JUMP
00001354: JUMPDEST
00001355: PUSH1 0x0f
00001357: DUP6
00001358: SWAP1
00001359: SSTORE
0000135a: SWAP1
0000135b: SWAP8
0000135c: POP
0000135d: SWAP6
0000135e: POP
0000135f: SWAP2
00001360: SWAP4
00001361: POP
00001362: POP
00001363: POP
00001364: POP
00001365: JUMPDEST
00001366: SWAP2
00001367: SWAP4
00001368: SWAP1
00001369: SWAP3
0000136a: POP
0000136b: JUMP
0000136c: JUMPDEST
0000136d: PUSH1 0x00
0000136f: DUP3
00001370: PUSH2 0x137b
00001373: JUMPI
00001374: POP
00001375: PUSH1 0x00
00001377: PUSH2 0x0a0f
0000137a: JUMP
0000137b: JUMPDEST
0000137c: PUSH1 0x00
0000137e: PUSH2 0x1387
00001381: DUP4
00001382: DUP6
00001383: PUSH2 0x2257
00001386: JUMP
00001387: JUMPDEST
00001388: SWAP1
00001389: POP
0000138a: DUP3
0000138b: PUSH2 0x1394
0000138e: DUP6
0000138f: DUP4
00001390: PUSH2 0x2237
00001393: JUMP
00001394: JUMPDEST
00001395: EQ
00001396: PUSH2 0x13b1
00001399: JUMPI
0000139a: PUSH1 0x40
0000139c: MLOAD
0000139d: PUSH3 0x461bcd
000013a1: PUSH1 0xe5
000013a3: SHL
000013a4: DUP2
000013a5: MSTORE
000013a6: PUSH1 0x04
000013a8: ADD
000013a9: PUSH2 0x0674
000013ac: SWAP1
000013ad: PUSH2 0x1f86
000013b0: JUMP
000013b1: JUMPDEST
000013b2: SWAP4
000013b3: SWAP3
000013b4: POP
000013b5: POP
000013b6: POP
000013b7: JUMP
000013b8: JUMPDEST
000013b9: PUSH1 0x00
000013bb: DUP1
000013bc: PUSH2 0x13c5
000013bf: DUP4
000013c0: DUP6
000013c1: PUSH2 0x221f
000013c4: JUMP
000013c5: JUMPDEST
000013c6: SWAP1
000013c7: POP
000013c8: DUP4
000013c9: DUP2
000013ca: LT
000013cb: ISZERO
000013cc: PUSH2 0x13b1
000013cf: JUMPI
000013d0: PUSH1 0x40
000013d2: MLOAD
000013d3: PUSH3 0x461bcd
000013d7: PUSH1 0xe5
000013d9: SHL
000013da: DUP2
000013db: MSTORE
000013dc: PUSH1 0x04
000013de: ADD
000013df: PUSH2 0x0674
000013e2: SWAP1
000013e3: PUSH2 0x1e7e
000013e6: JUMP
000013e7: JUMPDEST
000013e8: CALLER
000013e9: SWAP1
000013ea: JUMP
000013eb: JUMPDEST
000013ec: PUSH1 0x00
000013ee: PUSH2 0x13f6
000013f1: DUP4
000013f2: PUSH2 0x0d20
000013f5: JUMP
000013f6: JUMPDEST
000013f7: SWAP1
000013f8: POP
000013f9: DUP1
000013fa: DUP3
000013fb: GT
000013fc: ISZERO
000013fd: PUSH2 0x141e
00001400: JUMPI
00001401: PUSH1 0x00
00001403: PUSH2 0x140c
00001406: DUP4
00001407: DUP4
00001408: PUSH2 0x182c
0000140b: JUMP
0000140c: JUMPDEST
0000140d: SWAP1
0000140e: POP
0000140f: PUSH2 0x1418
00001412: DUP5
00001413: DUP3
00001414: PUSH2 0x18cd
00001417: JUMP
00001418: JUMPDEST
00001419: POP
0000141a: PUSH2 0x1097
0000141d: JUMP
0000141e: JUMPDEST
0000141f: DUP1
00001420: DUP3
00001421: LT
00001422: ISZERO
00001423: PUSH2 0x1097
00001426: JUMPI
00001427: PUSH1 0x00
00001429: PUSH2 0x1432
0000142c: DUP3
0000142d: DUP5
0000142e: PUSH2 0x182c
00001431: JUMP
00001432: JUMPDEST
00001433: SWAP1
00001434: POP
00001435: PUSH2 0x143e
00001438: DUP5
00001439: DUP3
0000143a: PUSH2 0x1934
0000143d: JUMP
0000143e: JUMPDEST
0000143f: POP
00001440: POP
00001441: POP
00001442: POP
00001443: JUMP
00001444: JUMPDEST
00001445: PUSH1 0x01
00001447: PUSH1 0x01
00001449: PUSH1 0xa0
0000144b: SHL
0000144c: SUB
0000144d: DUP4
0000144e: AND
0000144f: PUSH2 0x146a
00001452: JUMPI
00001453: PUSH1 0x40
00001455: MLOAD
00001456: PUSH3 0x461bcd
0000145a: PUSH1 0xe5
0000145c: SHL
0000145d: DUP2
0000145e: MSTORE
0000145f: PUSH1 0x04
00001461: ADD
00001462: PUSH2 0x0674
00001465: SWAP1
00001466: PUSH2 0x206c
00001469: JUMP
0000146a: JUMPDEST
0000146b: PUSH1 0x01
0000146d: PUSH1 0x01
0000146f: PUSH1 0xa0
00001471: SHL
00001472: SUB
00001473: DUP3
00001474: AND
00001475: PUSH2 0x1490
00001478: JUMPI
00001479: PUSH1 0x40
0000147b: MLOAD
0000147c: PUSH3 0x461bcd
00001480: PUSH1 0xe5
00001482: SHL
00001483: DUP2
00001484: MSTORE
00001485: PUSH1 0x04
00001487: ADD
00001488: PUSH2 0x0674
0000148b: SWAP1
0000148c: PUSH2 0x1e3c
0000148f: JUMP
00001490: JUMPDEST
00001491: PUSH1 0x01
00001493: PUSH1 0x01
00001495: PUSH1 0xa0
00001497: SHL
00001498: SUB
00001499: DUP1
0000149a: DUP5
0000149b: AND
0000149c: PUSH1 0x00
0000149e: DUP2
0000149f: DUP2
000014a0: MSTORE
000014a1: PUSH1 0x01
000014a3: PUSH1 0x20
000014a5: SWAP1
000014a6: DUP2
000014a7: MSTORE
000014a8: PUSH1 0x40
000014aa: DUP1
000014ab: DUP4
000014ac: KECCAK256
000014ad: SWAP5
000014ae: DUP8
000014af: AND
000014b0: DUP1
000014b1: DUP5
000014b2: MSTORE
000014b3: SWAP5
000014b4: SWAP1
000014b5: SWAP2
000014b6: MSTORE
000014b7: SWAP1
000014b8: DUP2
000014b9: SWAP1
000014ba: KECCAK256
000014bb: DUP5
000014bc: SWAP1
000014bd: SSTORE
000014be: MLOAD
000014bf: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
000014e0: SWAP1
000014e1: PUSH2 0x14eb
000014e4: SWAP1
000014e5: DUP6
000014e6: SWAP1
000014e7: PUSH2 0x216d
000014ea: JUMP
000014eb: JUMPDEST
000014ec: PUSH1 0x40
000014ee: MLOAD
000014ef: DUP1
000014f0: SWAP2
000014f1: SUB
000014f2: SWAP1
000014f3: LOG3
000014f4: POP
000014f5: POP
000014f6: POP
000014f7: JUMP
000014f8: JUMPDEST
000014f9: PUSH1 0x40
000014fb: MLOAD
000014fc: PUSH3 0x461bcd
00001500: PUSH1 0xe5
00001502: SHL
00001503: DUP2
00001504: MSTORE
00001505: PUSH1 0x04
00001507: ADD
00001508: PUSH2 0x0674
0000150b: SWAP1
0000150c: PUSH2 0x1f5a
0000150f: JUMP
00001510: JUMPDEST
00001511: PUSH1 0x00
00001513: DUP2
00001514: DUP5
00001515: DUP5
00001516: GT
00001517: ISZERO
00001518: PUSH2 0x1534
0000151b: JUMPI
0000151c: PUSH1 0x40
0000151e: MLOAD
0000151f: PUSH3 0x461bcd
00001523: PUSH1 0xe5
00001525: SHL
00001526: DUP2
00001527: MSTORE
00001528: PUSH1 0x04
0000152a: ADD
0000152b: PUSH2 0x0674
0000152e: SWAP2
0000152f: SWAP1
00001530: PUSH2 0x1d12
00001533: JUMP
00001534: JUMPDEST
00001535: POP
00001536: PUSH1 0x00
00001538: PUSH2 0x1541
0000153b: DUP5
0000153c: DUP7
0000153d: PUSH2 0x22b5
00001540: JUMP
00001541: JUMPDEST
00001542: SWAP6
00001543: SWAP5
00001544: POP
00001545: POP
00001546: POP
00001547: POP
00001548: POP
00001549: JUMP
0000154a: JUMPDEST
0000154b: PUSH1 0x00
0000154d: DUP2
0000154e: DUP2
0000154f: DUP2
00001550: SLT
00001551: ISZERO
00001552: PUSH2 0x0a0f
00001555: JUMPI
00001556: PUSH1 0x40
00001558: MLOAD
00001559: PUSH3 0x461bcd
0000155d: PUSH1 0xe5
0000155f: SHL
00001560: DUP2
00001561: MSTORE
00001562: PUSH1 0x04
00001564: ADD
00001565: PUSH2 0x0674
00001568: SWAP1
00001569: PUSH2 0x1dbf
0000156c: JUMP
0000156d: JUMPDEST
0000156e: PUSH1 0x00
00001570: DUP1
00001571: PUSH2 0x157a
00001574: DUP4
00001575: DUP6
00001576: PUSH2 0x21de
00001579: JUMP
0000157a: JUMPDEST
0000157b: SWAP1
0000157c: POP
0000157d: PUSH1 0x00
0000157f: DUP4
00001580: SLT
00001581: ISZERO
00001582: DUP1
00001583: ISZERO
00001584: PUSH2 0x158d
00001587: JUMPI
00001588: POP
00001589: DUP4
0000158a: DUP2
0000158b: SLT
0000158c: ISZERO
0000158d: JUMPDEST
0000158e: DUP1
0000158f: PUSH2 0x15a2
00001592: JUMPI
00001593: POP
00001594: PUSH1 0x00
00001596: DUP4
00001597: SLT
00001598: DUP1
00001599: ISZERO
0000159a: PUSH2 0x15a2
0000159d: JUMPI
0000159e: POP
0000159f: DUP4
000015a0: DUP2
000015a1: SLT
000015a2: JUMPDEST
000015a3: PUSH2 0x13b1
000015a6: JUMPI
000015a7: PUSH1 0x40
000015a9: MLOAD
000015aa: PUSH3 0x461bcd
000015ae: PUSH1 0xe5
000015b0: SHL
000015b1: DUP2
000015b2: MSTORE
000015b3: PUSH1 0x04
000015b5: ADD
000015b6: PUSH2 0x0674
000015b9: SWAP1
000015ba: PUSH2 0x20b0
000015bd: JUMP
000015be: JUMPDEST
000015bf: PUSH1 0x00
000015c1: DUP1
000015c2: DUP3
000015c3: SLT
000015c4: ISZERO
000015c5: PUSH2 0x15e0
000015c8: JUMPI
000015c9: PUSH1 0x40
000015cb: MLOAD
000015cc: PUSH3 0x461bcd
000015d0: PUSH1 0xe5
000015d2: SHL
000015d3: DUP2
000015d4: MSTORE
000015d5: PUSH1 0x04
000015d7: ADD
000015d8: PUSH2 0x0674
000015db: SWAP1
000015dc: PUSH2 0x1ffc
000015df: JUMP
000015e0: JUMPDEST
000015e1: POP
000015e2: SWAP1
000015e3: JUMP
000015e4: JUMPDEST
000015e5: PUSH1 0x00
000015e7: DUP1
000015e8: PUSH1 0x00
000015ea: DUP1
000015eb: PUSH1 0x00
000015ed: DUP1
000015ee: PUSH1 0x00
000015f0: DUP1
000015f1: DUP9
000015f2: SWAP8
000015f3: POP
000015f4: PUSH1 0x0b
000015f6: PUSH20 0x95fcc6006d2a7c02e0eae2859299efa04ee16d19
0000160b: PUSH4 0x17e142d1
00001610: SWAP1
00001611: SWAP2
00001612: DUP11
00001613: PUSH1 0x40
00001615: MLOAD
00001616: DUP4
00001617: PUSH4 0xffffffff
0000161c: AND
0000161d: PUSH1 0xe0
0000161f: SHL
00001620: DUP2
00001621: MSTORE
00001622: PUSH1 0x04
00001624: ADD
00001625: PUSH2 0x162f
00001628: SWAP3
00001629: SWAP2
0000162a: SWAP1
0000162b: PUSH2 0x2176
0000162e: JUMP
0000162f: JUMPDEST
00001630: PUSH1 0x20
00001632: PUSH1 0x40
00001634: MLOAD
00001635: DUP1
00001636: DUP4
00001637: SUB
00001638: DUP2
00001639: DUP7
0000163a: DUP1
0000163b: EXTCODESIZE
0000163c: ISZERO
0000163d: DUP1
0000163e: ISZERO
0000163f: PUSH2 0x1647
00001642: JUMPI
00001643: PUSH1 0x00
00001645: DUP1
00001646: REVERT
00001647: JUMPDEST
00001648: POP
00001649: GAS
0000164a: DELEGATECALL
0000164b: ISZERO
0000164c: DUP1
0000164d: ISZERO
0000164e: PUSH2 0x165b
00001651: JUMPI
00001652: RETURNDATASIZE
00001653: PUSH1 0x00
00001655: DUP1
00001656: RETURNDATACOPY
00001657: RETURNDATASIZE
00001658: PUSH1 0x00
0000165a: REVERT
0000165b: JUMPDEST
0000165c: POP
0000165d: POP
0000165e: POP
0000165f: POP
00001660: PUSH1 0x40
00001662: MLOAD
00001663: RETURNDATASIZE
00001664: PUSH1 0x1f
00001666: NOT
00001667: PUSH1 0x1f
00001669: DUP3
0000166a: ADD
0000166b: AND
0000166c: DUP3
0000166d: ADD
0000166e: DUP1
0000166f: PUSH1 0x40
00001671: MSTORE
00001672: POP
00001673: DUP2
00001674: ADD
00001675: SWAP1
00001676: PUSH2 0x167f
00001679: SWAP2
0000167a: SWAP1
0000167b: PUSH2 0x1c7f
0000167e: JUMP
0000167f: JUMPDEST
00001680: SWAP7
00001681: POP
00001682: PUSH1 0x00
00001684: NOT
00001685: SWAP6
00001686: POP
00001687: PUSH1 0x00
00001689: DUP8
0000168a: SLT
0000168b: PUSH2 0x16e1
0000168e: JUMPI
0000168f: PUSH1 0x0f
00001691: SLOAD
00001692: DUP8
00001693: GT
00001694: ISZERO
00001695: PUSH2 0x16ad
00001698: JUMPI
00001699: PUSH1 0x0f
0000169b: SLOAD
0000169c: PUSH2 0x16a6
0000169f: SWAP1
000016a0: DUP9
000016a1: SWAP1
000016a2: PUSH2 0x197a
000016a5: JUMP
000016a6: JUMPDEST
000016a7: SWAP6
000016a8: POP
000016a9: PUSH2 0x16e1
000016ac: JUMP
000016ad: JUMPDEST
000016ae: PUSH1 0x0f
000016b0: SLOAD
000016b1: PUSH1 0x0b
000016b3: SLOAD
000016b4: PUSH1 0x00
000016b6: SWAP2
000016b7: LT
000016b8: PUSH2 0x16c2
000016bb: JUMPI
000016bc: PUSH1 0x00
000016be: PUSH2 0x16d1
000016c1: JUMP
000016c2: JUMPDEST
000016c3: PUSH1 0x0f
000016c5: SLOAD
000016c6: PUSH1 0x0b
000016c8: SLOAD
000016c9: PUSH2 0x16d1
000016cc: SWAP2
000016cd: PUSH2 0x182c
000016d0: JUMP
000016d1: JUMPDEST
000016d2: SWAP1
000016d3: POP
000016d4: PUSH2 0x16dd
000016d7: DUP9
000016d8: DUP3
000016d9: PUSH2 0x156d
000016dc: JUMP
000016dd: JUMPDEST
000016de: SWAP7
000016df: POP
000016e0: POP
000016e1: JUMPDEST
000016e2: PUSH2 0x16ea
000016e5: DUP9
000016e6: PUSH2 0x0e5a
000016e9: JUMP
000016ea: JUMPDEST
000016eb: SWAP5
000016ec: POP
000016ed: PUSH2 0x16f5
000016f0: DUP9
000016f1: PUSH2 0x0aba
000016f4: JUMP
000016f5: JUMPDEST
000016f6: PUSH1 0x01
000016f8: PUSH1 0x01
000016fa: PUSH1 0xa0
000016fc: SHL
000016fd: SUB
000016fe: DUP10
000016ff: AND
00001700: PUSH1 0x00
00001702: SWAP1
00001703: DUP2
00001704: MSTORE
00001705: PUSH1 0x12
00001707: PUSH1 0x20
00001709: MSTORE
0000170a: PUSH1 0x40
0000170c: SWAP1
0000170d: KECCAK256
0000170e: SLOAD
0000170f: SWAP1
00001710: SWAP5
00001711: POP
00001712: SWAP3
00001713: POP
00001714: DUP3
00001715: PUSH2 0x171f
00001718: JUMPI
00001719: PUSH1 0x00
0000171b: PUSH2 0x172d
0000171e: JUMP
0000171f: JUMPDEST
00001720: PUSH1 0x10
00001722: SLOAD
00001723: PUSH2 0x172d
00001726: SWAP1
00001727: DUP5
00001728: SWAP1
00001729: PUSH2 0x13b8
0000172c: JUMP
0000172d: JUMPDEST
0000172e: SWAP2
0000172f: POP
00001730: TIMESTAMP
00001731: DUP3
00001732: GT
00001733: PUSH2 0x173d
00001736: JUMPI
00001737: PUSH1 0x00
00001739: PUSH2 0x1747
0000173c: JUMP
0000173d: JUMPDEST
0000173e: PUSH2 0x1747
00001741: DUP3
00001742: TIMESTAMP
00001743: PUSH2 0x182c
00001746: JUMP
00001747: JUMPDEST
00001748: SWAP1
00001749: POP
0000174a: SWAP2
0000174b: SWAP4
0000174c: SWAP6
0000174d: SWAP8
0000174e: POP
0000174f: SWAP2
00001750: SWAP4
00001751: SWAP6
00001752: SWAP8
00001753: JUMP
00001754: JUMPDEST
00001755: PUSH1 0x00
00001757: DUP1
00001758: PUSH2 0x1760
0000175b: DUP4
0000175c: PUSH2 0x0e5a
0000175f: JUMP
00001760: JUMPDEST
00001761: SWAP1
00001762: POP
00001763: DUP1
00001764: ISZERO
00001765: PUSH2 0x1823
00001768: JUMPI
00001769: PUSH1 0x01
0000176b: PUSH1 0x01
0000176d: PUSH1 0xa0
0000176f: SHL
00001770: SUB
00001771: DUP4
00001772: AND
00001773: PUSH1 0x00
00001775: SWAP1
00001776: DUP2
00001777: MSTORE
00001778: PUSH1 0x0a
0000177a: PUSH1 0x20
0000177c: MSTORE
0000177d: PUSH1 0x40
0000177f: DUP2
00001780: KECCAK256
00001781: SLOAD
00001782: PUSH2 0x178b
00001785: SWAP1
00001786: DUP4
00001787: PUSH2 0x13b8
0000178a: JUMP
0000178b: JUMPDEST
0000178c: SWAP1
0000178d: POP
0000178e: PUSH1 0x00
00001790: DUP5
00001791: PUSH1 0x01
00001793: PUSH1 0x01
00001795: PUSH1 0xa0
00001797: SHL
00001798: SUB
00001799: AND
0000179a: DUP4
0000179b: PUSH2 0x0bb8
0000179e: SWAP1
0000179f: PUSH1 0x40
000017a1: MLOAD
000017a2: PUSH2 0x17aa
000017a5: SWAP1
000017a6: PUSH2 0x1caf
000017a9: JUMP
000017aa: JUMPDEST
000017ab: PUSH1 0x00
000017ad: PUSH1 0x40
000017af: MLOAD
000017b0: DUP1
000017b1: DUP4
000017b2: SUB
000017b3: DUP2
000017b4: DUP6
000017b5: DUP9
000017b6: DUP9
000017b7: CALL
000017b8: SWAP4
000017b9: POP
000017ba: POP
000017bb: POP
000017bc: POP
000017bd: RETURNDATASIZE
000017be: DUP1
000017bf: PUSH1 0x00
000017c1: DUP2
000017c2: EQ
000017c3: PUSH2 0x17e8
000017c6: JUMPI
000017c7: PUSH1 0x40
000017c9: MLOAD
000017ca: SWAP2
000017cb: POP
000017cc: PUSH1 0x1f
000017ce: NOT
000017cf: PUSH1 0x3f
000017d1: RETURNDATASIZE
000017d2: ADD
000017d3: AND
000017d4: DUP3
000017d5: ADD
000017d6: PUSH1 0x40
000017d8: MSTORE
000017d9: RETURNDATASIZE
000017da: DUP3
000017db: MSTORE
000017dc: RETURNDATASIZE
000017dd: PUSH1 0x00
000017df: PUSH1 0x20
000017e1: DUP5
000017e2: ADD
000017e3: RETURNDATACOPY
000017e4: PUSH2 0x17ed
000017e7: JUMP
000017e8: JUMPDEST
000017e9: PUSH1 0x60
000017eb: SWAP2
000017ec: POP
000017ed: JUMPDEST
000017ee: POP
000017ef: POP
000017f0: SWAP1
000017f1: POP
000017f2: DUP1
000017f3: PUSH2 0x1802
000017f6: JUMPI
000017f7: PUSH1 0x00
000017f9: SWAP4
000017fa: POP
000017fb: POP
000017fc: POP
000017fd: POP
000017fe: PUSH2 0x0b19
00001801: JUMP
00001802: JUMPDEST
00001803: POP
00001804: PUSH1 0x01
00001806: PUSH1 0x01
00001808: PUSH1 0xa0
0000180a: SHL
0000180b: SUB
0000180c: DUP5
0000180d: AND
0000180e: PUSH1 0x00
00001810: SWAP1
00001811: DUP2
00001812: MSTORE
00001813: PUSH1 0x0a
00001815: PUSH1 0x20
00001817: MSTORE
00001818: PUSH1 0x40
0000181a: SWAP1
0000181b: KECCAK256
0000181c: SSTORE
0000181d: SWAP1
0000181e: POP
0000181f: PUSH2 0x0b19
00001822: JUMP
00001823: JUMPDEST
00001824: POP
00001825: PUSH1 0x00
00001827: SWAP3
00001828: SWAP2
00001829: POP
0000182a: POP
0000182b: JUMP
0000182c: JUMPDEST
0000182d: PUSH1 0x00
0000182f: PUSH2 0x13b1
00001832: DUP4
00001833: DUP4
00001834: PUSH1 0x40
00001836: MLOAD
00001837: DUP1
00001838: PUSH1 0x40
0000183a: ADD
0000183b: PUSH1 0x40
0000183d: MSTORE
0000183e: DUP1
0000183f: PUSH1 0x1e
00001841: DUP2
00001842: MSTORE
00001843: PUSH1 0x20
00001845: ADD
00001846: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
00001867: DUP2
00001868: MSTORE
00001869: POP
0000186a: PUSH2 0x1510
0000186d: JUMP
0000186e: JUMPDEST
0000186f: PUSH1 0x00
00001871: DUP1
00001872: PUSH2 0x187a
00001875: DUP4
00001876: PUSH2 0x1754
00001879: JUMP
0000187a: JUMPDEST
0000187b: SWAP1
0000187c: POP
0000187d: DUP1
0000187e: ISZERO
0000187f: PUSH2 0x1823
00001882: JUMPI
00001883: POP
00001884: POP
00001885: PUSH1 0x01
00001887: PUSH1 0x01
00001889: PUSH1 0xa0
0000188b: SHL
0000188c: SUB
0000188d: DUP2
0000188e: AND
0000188f: PUSH1 0x00
00001891: SWAP1
00001892: DUP2
00001893: MSTORE
00001894: PUSH1 0x12
00001896: PUSH1 0x20
00001898: MSTORE
00001899: PUSH1 0x40
0000189b: SWAP1
0000189c: KECCAK256
0000189d: TIMESTAMP
0000189e: SWAP1
0000189f: SSTORE
000018a0: PUSH1 0x01
000018a2: PUSH2 0x0b19
000018a5: JUMP
000018a6: JUMPDEST
000018a7: PUSH1 0x00
000018a9: TIMESTAMP
000018aa: DUP3
000018ab: GT
000018ac: ISZERO
000018ad: PUSH2 0x18b8
000018b0: JUMPI
000018b1: POP
000018b2: PUSH1 0x00
000018b4: PUSH2 0x0b19
000018b7: JUMP
000018b8: JUMPDEST
000018b9: PUSH1 0x10
000018bb: SLOAD
000018bc: PUSH2 0x18c5
000018bf: TIMESTAMP
000018c0: DUP5
000018c1: PUSH2 0x182c
000018c4: JUMP
000018c5: JUMPDEST
000018c6: LT
000018c7: ISZERO
000018c8: SWAP3
000018c9: SWAP2
000018ca: POP
000018cb: POP
000018cc: JUMP
000018cd: JUMPDEST
000018ce: PUSH2 0x18d7
000018d1: DUP3
000018d2: DUP3
000018d3: PUSH2 0x19cb
000018d6: JUMP
000018d7: JUMPDEST
000018d8: PUSH1 0x00
000018da: PUSH2 0x1913
000018dd: PUSH2 0x18f4
000018e0: PUSH2 0x0afb
000018e3: DUP5
000018e4: PUSH1 0x06
000018e6: SLOAD
000018e7: PUSH2 0x136c
000018ea: SWAP1
000018eb: SWAP2
000018ec: SWAP1
000018ed: PUSH4 0xffffffff
000018f2: AND
000018f3: JUMP
000018f4: JUMPDEST
000018f5: PUSH1 0x01
000018f7: PUSH1 0x01
000018f9: PUSH1 0xa0
000018fb: SHL
000018fc: SUB
000018fd: DUP6
000018fe: AND
000018ff: PUSH1 0x00
00001901: SWAP1
00001902: DUP2
00001903: MSTORE
00001904: PUSH1 0x09
00001906: PUSH1 0x20
00001908: MSTORE
00001909: PUSH1 0x40
0000190b: SWAP1
0000190c: KECCAK256
0000190d: SLOAD
0000190e: SWAP1
0000190f: PUSH2 0x197a
00001912: JUMP
00001913: JUMPDEST
00001914: PUSH1 0x01
00001916: PUSH1 0x01
00001918: PUSH1 0xa0
0000191a: SHL
0000191b: SUB
0000191c: SWAP1
0000191d: SWAP4
0000191e: AND
0000191f: PUSH1 0x00
00001921: SWAP1
00001922: DUP2
00001923: MSTORE
00001924: PUSH1 0x09
00001926: PUSH1 0x20
00001928: MSTORE
00001929: PUSH1 0x40
0000192b: SWAP1
0000192c: KECCAK256
0000192d: SWAP3
0000192e: SWAP1
0000192f: SWAP3
00001930: SSTORE
00001931: POP
00001932: POP
00001933: JUMP
00001934: JUMPDEST
00001935: PUSH2 0x193e
00001938: DUP3
00001939: DUP3
0000193a: PUSH2 0x1a8b
0000193d: JUMP
0000193e: JUMPDEST
0000193f: PUSH1 0x00
00001941: PUSH2 0x1913
00001944: PUSH2 0x195b
00001947: PUSH2 0x0afb
0000194a: DUP5
0000194b: PUSH1 0x06
0000194d: SLOAD
0000194e: PUSH2 0x136c
00001951: SWAP1
00001952: SWAP2
00001953: SWAP1
00001954: PUSH4 0xffffffff
00001959: AND
0000195a: JUMP
0000195b: JUMPDEST
0000195c: PUSH1 0x01
0000195e: PUSH1 0x01
00001960: PUSH1 0xa0
00001962: SHL
00001963: SUB
00001964: DUP6
00001965: AND
00001966: PUSH1 0x00
00001968: SWAP1
00001969: DUP2
0000196a: MSTORE
0000196b: PUSH1 0x09
0000196d: PUSH1 0x20
0000196f: MSTORE
00001970: PUSH1 0x40
00001972: SWAP1
00001973: KECCAK256
00001974: SLOAD
00001975: SWAP1
00001976: PUSH2 0x156d
00001979: JUMP
0000197a: JUMPDEST
0000197b: PUSH1 0x00
0000197d: DUP1
0000197e: PUSH2 0x1987
00001981: DUP4
00001982: DUP6
00001983: PUSH2 0x2276
00001986: JUMP
00001987: JUMPDEST
00001988: SWAP1
00001989: POP
0000198a: PUSH1 0x00
0000198c: DUP4
0000198d: SLT
0000198e: ISZERO
0000198f: DUP1
00001990: ISZERO
00001991: PUSH2 0x199a
00001994: JUMPI
00001995: POP
00001996: DUP4
00001997: DUP2
00001998: SGT
00001999: ISZERO
0000199a: JUMPDEST
0000199b: DUP1
0000199c: PUSH2 0x19af
0000199f: JUMPI
000019a0: POP
000019a1: PUSH1 0x00
000019a3: DUP4
000019a4: SLT
000019a5: DUP1
000019a6: ISZERO
000019a7: PUSH2 0x19af
000019aa: JUMPI
000019ab: POP
000019ac: DUP4
000019ad: DUP2
000019ae: SGT
000019af: JUMPDEST
000019b0: PUSH2 0x13b1
000019b3: JUMPI
000019b4: PUSH1 0x40
000019b6: MLOAD
000019b7: PUSH3 0x461bcd
000019bb: PUSH1 0xe5
000019bd: SHL
000019be: DUP2
000019bf: MSTORE
000019c0: PUSH1 0x04
000019c2: ADD
000019c3: PUSH2 0x0674
000019c6: SWAP1
000019c7: PUSH2 0x1d93
000019ca: JUMP
000019cb: JUMPDEST
000019cc: PUSH1 0x01
000019ce: PUSH1 0x01
000019d0: PUSH1 0xa0
000019d2: SHL
000019d3: SUB
000019d4: DUP3
000019d5: AND
000019d6: PUSH2 0x19f1
000019d9: JUMPI
000019da: PUSH1 0x40
000019dc: MLOAD
000019dd: PUSH3 0x461bcd
000019e1: PUSH1 0xe5
000019e3: SHL
000019e4: DUP2
000019e5: MSTORE
000019e6: PUSH1 0x04
000019e8: ADD
000019e9: PUSH2 0x0674
000019ec: SWAP1
000019ed: PUSH2 0x2136
000019f0: JUMP
000019f1: JUMPDEST
000019f2: PUSH2 0x19fd
000019f5: PUSH1 0x00
000019f7: DUP4
000019f8: DUP4
000019f9: PUSH2 0x1097
000019fc: JUMP
000019fd: JUMPDEST
000019fe: PUSH1 0x02
00001a00: SLOAD
00001a01: PUSH2 0x1a0a
00001a04: SWAP1
00001a05: DUP3
00001a06: PUSH2 0x13b8
00001a09: JUMP
00001a0a: JUMPDEST
00001a0b: PUSH1 0x02
00001a0d: SSTORE
00001a0e: PUSH1 0x01
00001a10: PUSH1 0x01
00001a12: PUSH1 0xa0
00001a14: SHL
00001a15: SUB
00001a16: DUP3
00001a17: AND
00001a18: PUSH1 0x00
00001a1a: SWAP1
00001a1b: DUP2
00001a1c: MSTORE
00001a1d: PUSH1 0x20
00001a1f: DUP2
00001a20: SWAP1
00001a21: MSTORE
00001a22: PUSH1 0x40
00001a24: SWAP1
00001a25: KECCAK256
00001a26: SLOAD
00001a27: PUSH2 0x1a30
00001a2a: SWAP1
00001a2b: DUP3
00001a2c: PUSH2 0x13b8
00001a2f: JUMP
00001a30: JUMPDEST
00001a31: PUSH1 0x01
00001a33: PUSH1 0x01
00001a35: PUSH1 0xa0
00001a37: SHL
00001a38: SUB
00001a39: DUP4
00001a3a: AND
00001a3b: PUSH1 0x00
00001a3d: DUP2
00001a3e: DUP2
00001a3f: MSTORE
00001a40: PUSH1 0x20
00001a42: DUP2
00001a43: SWAP1
00001a44: MSTORE
00001a45: PUSH1 0x40
00001a47: DUP1
00001a48: DUP3
00001a49: KECCAK256
00001a4a: SWAP4
00001a4b: SWAP1
00001a4c: SWAP4
00001a4d: SSTORE
00001a4e: SWAP2
00001a4f: MLOAD
00001a50: SWAP1
00001a51: SWAP2
00001a52: SWAP1
00001a53: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00001a74: SWAP1
00001a75: PUSH2 0x1a7f
00001a78: SWAP1
00001a79: DUP6
00001a7a: SWAP1
00001a7b: PUSH2 0x216d
00001a7e: JUMP
00001a7f: JUMPDEST
00001a80: PUSH1 0x40
00001a82: MLOAD
00001a83: DUP1
00001a84: SWAP2
00001a85: SUB
00001a86: SWAP1
00001a87: LOG3
00001a88: POP
00001a89: POP
00001a8a: JUMP
00001a8b: JUMPDEST
00001a8c: PUSH1 0x01
00001a8e: PUSH1 0x01
00001a90: PUSH1 0xa0
00001a92: SHL
00001a93: SUB
00001a94: DUP3
00001a95: AND
00001a96: PUSH2 0x1ab1
00001a99: JUMPI
00001a9a: PUSH1 0x40
00001a9c: MLOAD
00001a9d: PUSH3 0x461bcd
00001aa1: PUSH1 0xe5
00001aa3: SHL
00001aa4: DUP2
00001aa5: MSTORE
00001aa6: PUSH1 0x04
00001aa8: ADD
00001aa9: PUSH2 0x0674
00001aac: SWAP1
00001aad: PUSH2 0x202b
00001ab0: JUMP
00001ab1: JUMPDEST
00001ab2: PUSH2 0x1abd
00001ab5: DUP3
00001ab6: PUSH1 0x00
00001ab8: DUP4
00001ab9: PUSH2 0x1097
00001abc: JUMP
00001abd: JUMPDEST
00001abe: PUSH2 0x1afa
00001ac1: DUP2
00001ac2: PUSH1 0x40
00001ac4: MLOAD
00001ac5: DUP1
00001ac6: PUSH1 0x60
00001ac8: ADD
00001ac9: PUSH1 0x40
00001acb: MSTORE
00001acc: DUP1
00001acd: PUSH1 0x22
00001acf: DUP2
00001ad0: MSTORE
00001ad1: PUSH1 0x20
00001ad3: ADD
00001ad4: PUSH2 0x234e
00001ad7: PUSH1 0x22
00001ad9: SWAP2
00001ada: CODECOPY
00001adb: PUSH1 0x01
00001add: PUSH1 0x01
00001adf: PUSH1 0xa0
00001ae1: SHL
00001ae2: SUB
00001ae3: DUP6
00001ae4: AND
00001ae5: PUSH1 0x00
00001ae7: SWAP1
00001ae8: DUP2
00001ae9: MSTORE
00001aea: PUSH1 0x20
00001aec: DUP2
00001aed: SWAP1
00001aee: MSTORE
00001aef: PUSH1 0x40
00001af1: SWAP1
00001af2: KECCAK256
00001af3: SLOAD
00001af4: SWAP2
00001af5: SWAP1
00001af6: PUSH2 0x1510
00001af9: JUMP
00001afa: JUMPDEST
00001afb: PUSH1 0x01
00001afd: PUSH1 0x01
00001aff: PUSH1 0xa0
00001b01: SHL
00001b02: SUB
00001b03: DUP4
00001b04: AND
00001b05: PUSH1 0x00
00001b07: SWAP1
00001b08: DUP2
00001b09: MSTORE
00001b0a: PUSH1 0x20
00001b0c: DUP2
00001b0d: SWAP1
00001b0e: MSTORE
00001b0f: PUSH1 0x40
00001b11: SWAP1
00001b12: KECCAK256
00001b13: SSTORE
00001b14: PUSH1 0x02
00001b16: SLOAD
00001b17: PUSH2 0x1b20
00001b1a: SWAP1
00001b1b: DUP3
00001b1c: PUSH2 0x182c
00001b1f: JUMP
00001b20: JUMPDEST
00001b21: PUSH1 0x02
00001b23: SSTORE
00001b24: PUSH1 0x40
00001b26: MLOAD
00001b27: PUSH1 0x00
00001b29: SWAP1
00001b2a: PUSH1 0x01
00001b2c: PUSH1 0x01
00001b2e: PUSH1 0xa0
00001b30: SHL
00001b31: SUB
00001b32: DUP5
00001b33: AND
00001b34: SWAP1
00001b35: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
00001b56: SWAP1
00001b57: PUSH2 0x1a7f
00001b5a: SWAP1
00001b5b: DUP6
00001b5c: SWAP1
00001b5d: PUSH2 0x216d
00001b60: JUMP
00001b61: JUMPDEST
00001b62: PUSH1 0x00
00001b64: PUSH1 0x20
00001b66: DUP3
00001b67: DUP5
00001b68: SUB
00001b69: SLT
00001b6a: ISZERO
00001b6b: PUSH2 0x1b72
00001b6e: JUMPI
00001b6f: DUP1
00001b70: DUP2
00001b71: REVERT
00001b72: JUMPDEST
00001b73: DUP2
00001b74: CALLDATALOAD
00001b75: PUSH2 0x13b1
00001b78: DUP2
00001b79: PUSH2 0x2338
00001b7c: JUMP
00001b7d: JUMPDEST
00001b7e: PUSH1 0x00
00001b80: PUSH1 0x20
00001b82: DUP3
00001b83: DUP5
00001b84: SUB
00001b85: SLT
00001b86: ISZERO
00001b87: PUSH2 0x1b8e
00001b8a: JUMPI
00001b8b: DUP1
00001b8c: DUP2
00001b8d: REVERT
00001b8e: JUMPDEST
00001b8f: DUP2
00001b90: MLOAD
00001b91: PUSH2 0x13b1
00001b94: DUP2
00001b95: PUSH2 0x2338
00001b98: JUMP
00001b99: JUMPDEST
00001b9a: PUSH1 0x00
00001b9c: DUP1
00001b9d: PUSH1 0x40
00001b9f: DUP4
00001ba0: DUP6
00001ba1: SUB
00001ba2: SLT
00001ba3: ISZERO
00001ba4: PUSH2 0x1bab
00001ba7: JUMPI
00001ba8: DUP1
00001ba9: DUP2
00001baa: REVERT
00001bab: JUMPDEST
00001bac: DUP3
00001bad: CALLDATALOAD
00001bae: PUSH2 0x1bb6
00001bb1: DUP2
00001bb2: PUSH2 0x2338
00001bb5: JUMP
00001bb6: JUMPDEST
00001bb7: SWAP5
00001bb8: PUSH1 0x20
00001bba: SWAP4
00001bbb: SWAP1
00001bbc: SWAP4
00001bbd: ADD
00001bbe: CALLDATALOAD
00001bbf: SWAP4
00001bc0: POP
00001bc1: POP
00001bc2: POP
00001bc3: JUMP
00001bc4: JUMPDEST
00001bc5: PUSH1 0x00
00001bc7: DUP1
00001bc8: PUSH1 0x40
00001bca: DUP4
00001bcb: DUP6
00001bcc: SUB
00001bcd: SLT
00001bce: ISZERO
00001bcf: PUSH2 0x1bd6
00001bd2: JUMPI
00001bd3: DUP2
00001bd4: DUP3
00001bd5: REVERT
00001bd6: JUMPDEST
00001bd7: DUP3
00001bd8: CALLDATALOAD
00001bd9: PUSH2 0x1be1
00001bdc: DUP2
00001bdd: PUSH2 0x2338
00001be0: JUMP
00001be1: JUMPDEST
00001be2: SWAP2
00001be3: POP
00001be4: PUSH1 0x20
00001be6: DUP4
00001be7: ADD
00001be8: CALLDATALOAD
00001be9: PUSH2 0x1bf1
00001bec: DUP2
00001bed: PUSH2 0x2338
00001bf0: JUMP
00001bf1: JUMPDEST
00001bf2: DUP1
00001bf3: SWAP2
00001bf4: POP
00001bf5: POP
00001bf6: SWAP3
00001bf7: POP
00001bf8: SWAP3
00001bf9: SWAP1
00001bfa: POP
00001bfb: JUMP
00001bfc: JUMPDEST
00001bfd: PUSH1 0x00
00001bff: DUP1
00001c00: PUSH1 0x00
00001c02: PUSH1 0x60
00001c04: DUP5
00001c05: DUP7
00001c06: SUB
00001c07: SLT
00001c08: ISZERO
00001c09: PUSH2 0x1c10
00001c0c: JUMPI
00001c0d: DUP1
00001c0e: DUP2
00001c0f: REVERT
00001c10: JUMPDEST
00001c11: DUP4
00001c12: CALLDATALOAD
00001c13: PUSH2 0x1c1b
00001c16: DUP2
00001c17: PUSH2 0x2338
00001c1a: JUMP
00001c1b: JUMPDEST
00001c1c: SWAP3
00001c1d: POP
00001c1e: PUSH1 0x20
00001c20: DUP5
00001c21: ADD
00001c22: CALLDATALOAD
00001c23: PUSH2 0x1c2b
00001c26: DUP2
00001c27: PUSH2 0x2338
00001c2a: JUMP
00001c2b: JUMPDEST
00001c2c: SWAP3
00001c2d: SWAP6
00001c2e: SWAP3
00001c2f: SWAP5
00001c30: POP
00001c31: POP
00001c32: POP
00001c33: PUSH1 0x40
00001c35: SWAP2
00001c36: SWAP1
00001c37: SWAP2
00001c38: ADD
00001c39: CALLDATALOAD
00001c3a: SWAP1
00001c3b: JUMP
00001c3c: JUMPDEST
00001c3d: PUSH1 0x00
00001c3f: DUP1
00001c40: PUSH1 0x40
00001c42: DUP4
00001c43: DUP6
00001c44: SUB
00001c45: SLT
00001c46: ISZERO
00001c47: PUSH2 0x1c4e
00001c4a: JUMPI
00001c4b: DUP2
00001c4c: DUP3
00001c4d: REVERT
00001c4e: JUMPDEST
00001c4f: DUP3
00001c50: CALLDATALOAD
00001c51: PUSH2 0x1c59
00001c54: DUP2
00001c55: PUSH2 0x2338
00001c58: JUMP
00001c59: JUMPDEST
00001c5a: SWAP2
00001c5b: POP
00001c5c: PUSH1 0x20
00001c5e: DUP4
00001c5f: ADD
00001c60: CALLDATALOAD
00001c61: DUP1
00001c62: ISZERO
00001c63: ISZERO
00001c64: DUP2
00001c65: EQ
00001c66: PUSH2 0x1bf1
00001c69: JUMPI
00001c6a: DUP2
00001c6b: DUP3
00001c6c: REVERT
00001c6d: JUMPDEST
00001c6e: PUSH1 0x00
00001c70: DUP1
00001c71: PUSH1 0x40
00001c73: DUP4
00001c74: DUP6
00001c75: SUB
00001c76: SLT
00001c77: ISZERO
00001c78: PUSH2 0x1bab
00001c7b: JUMPI
00001c7c: DUP2
00001c7d: DUP3
00001c7e: REVERT
00001c7f: JUMPDEST
00001c80: PUSH1 0x00
00001c82: PUSH1 0x20
00001c84: DUP3
00001c85: DUP5
00001c86: SUB
00001c87: SLT
00001c88: ISZERO
00001c89: PUSH2 0x1c90
00001c8c: JUMPI
00001c8d: DUP1
00001c8e: DUP2
00001c8f: REVERT
00001c90: JUMPDEST
00001c91: POP
00001c92: MLOAD
00001c93: SWAP2
00001c94: SWAP1
00001c95: POP
00001c96: JUMP
00001c97: JUMPDEST
00001c98: PUSH1 0x00
00001c9a: PUSH1 0x20
00001c9c: DUP3
00001c9d: DUP5
00001c9e: SUB
00001c9f: SLT
00001ca0: ISZERO
00001ca1: PUSH2 0x1ca8
00001ca4: JUMPI
00001ca5: DUP1
00001ca6: DUP2
00001ca7: REVERT
00001ca8: JUMPDEST
00001ca9: POP
00001caa: CALLDATALOAD
00001cab: SWAP2
00001cac: SWAP1
00001cad: POP
00001cae: JUMP
00001caf: JUMPDEST
00001cb0: SWAP1
00001cb1: JUMP
00001cb2: JUMPDEST
00001cb3: PUSH1 0x01
00001cb5: PUSH1 0x01
00001cb7: PUSH1 0xa0
00001cb9: SHL
00001cba: SUB
00001cbb: SWAP2
00001cbc: SWAP1
00001cbd: SWAP2
00001cbe: AND
00001cbf: DUP2
00001cc0: MSTORE
00001cc1: PUSH1 0x20
00001cc3: ADD
00001cc4: SWAP1
00001cc5: JUMP
00001cc6: JUMPDEST
00001cc7: PUSH1 0x01
00001cc9: PUSH1 0x01
00001ccb: PUSH1 0xa0
00001ccd: SHL
00001cce: SUB
00001ccf: SWAP9
00001cd0: SWAP1
00001cd1: SWAP9
00001cd2: AND
00001cd3: DUP9
00001cd4: MSTORE
00001cd5: PUSH1 0x20
00001cd7: DUP9
00001cd8: ADD
00001cd9: SWAP7
00001cda: SWAP1
00001cdb: SWAP7
00001cdc: MSTORE
00001cdd: PUSH1 0x40
00001cdf: DUP8
00001ce0: ADD
00001ce1: SWAP5
00001ce2: SWAP1
00001ce3: SWAP5
00001ce4: MSTORE
00001ce5: PUSH1 0x60
00001ce7: DUP7
00001ce8: ADD
00001ce9: SWAP3
00001cea: SWAP1
00001ceb: SWAP3
00001cec: MSTORE
00001ced: PUSH1 0x80
00001cef: DUP6
00001cf0: ADD
00001cf1: MSTORE
00001cf2: PUSH1 0xa0
00001cf4: DUP5
00001cf5: ADD
00001cf6: MSTORE
00001cf7: PUSH1 0xc0
00001cf9: DUP4
00001cfa: ADD
00001cfb: MSTORE
00001cfc: PUSH1 0xe0
00001cfe: DUP3
00001cff: ADD
00001d00: MSTORE
00001d01: PUSH2 0x0100
00001d04: ADD
00001d05: SWAP1
00001d06: JUMP
00001d07: JUMPDEST
00001d08: SWAP1
00001d09: ISZERO
00001d0a: ISZERO
00001d0b: DUP2
00001d0c: MSTORE
00001d0d: PUSH1 0x20
00001d0f: ADD
00001d10: SWAP1
00001d11: JUMP
00001d12: JUMPDEST
00001d13: PUSH1 0x00
00001d15: PUSH1 0x20
00001d17: DUP1
00001d18: DUP4
00001d19: MSTORE
00001d1a: DUP4
00001d1b: MLOAD
00001d1c: DUP1
00001d1d: DUP3
00001d1e: DUP6
00001d1f: ADD
00001d20: MSTORE
00001d21: DUP3
00001d22: JUMPDEST
00001d23: DUP2
00001d24: DUP2
00001d25: LT
00001d26: ISZERO
00001d27: PUSH2 0x1d3e
00001d2a: JUMPI
00001d2b: DUP6
00001d2c: DUP2
00001d2d: ADD
00001d2e: DUP4
00001d2f: ADD
00001d30: MLOAD
00001d31: DUP6
00001d32: DUP3
00001d33: ADD
00001d34: PUSH1 0x40
00001d36: ADD
00001d37: MSTORE
00001d38: DUP3
00001d39: ADD
00001d3a: PUSH2 0x1d22
00001d3d: JUMP
00001d3e: JUMPDEST
00001d3f: DUP2
00001d40: DUP2
00001d41: GT
00001d42: ISZERO
00001d43: PUSH2 0x1d4f
00001d46: JUMPI
00001d47: DUP4
00001d48: PUSH1 0x40
00001d4a: DUP4
00001d4b: DUP8
00001d4c: ADD
00001d4d: ADD
00001d4e: MSTORE
00001d4f: JUMPDEST
00001d50: POP
00001d51: PUSH1 0x1f
00001d53: ADD
00001d54: PUSH1 0x1f
00001d56: NOT
00001d57: AND
00001d58: SWAP3
00001d59: SWAP1
00001d5a: SWAP3
00001d5b: ADD
00001d5c: PUSH1 0x40
00001d5e: ADD
00001d5f: SWAP4
00001d60: SWAP3
00001d61: POP
00001d62: POP
00001d63: POP
00001d64: JUMP
00001d65: JUMPDEST
00001d66: PUSH1 0x20
00001d68: DUP1
00001d69: DUP3
00001d6a: MSTORE
00001d6b: PUSH1 0x14
00001d6d: SWAP1
00001d6e: DUP3
00001d6f: ADD
00001d70: MSTORE
00001d71: PUSH20 0x73616d6520636c61696d576169742076616c7565
00001d86: PUSH1 0x60
00001d88: SHL
00001d89: PUSH1 0x40
00001d8b: DUP3
00001d8c: ADD
00001d8d: MSTORE
00001d8e: PUSH1 0x60
00001d90: ADD
00001d91: SWAP1
00001d92: JUMP
00001d93: JUMPDEST
00001d94: PUSH1 0x20
00001d96: DUP1
00001d97: DUP3
00001d98: MSTORE
00001d99: PUSH1 0x12
00001d9b: SWAP1
00001d9c: DUP3
00001d9d: ADD
00001d9e: MSTORE
00001d9f: PUSH18 0x29b0b332a6b0ba341032b93937b91039bab1
00001db2: PUSH1 0x71
00001db4: SHL
00001db5: PUSH1 0x40
00001db7: DUP3
00001db8: ADD
00001db9: MSTORE
00001dba: PUSH1 0x60
00001dbc: ADD
00001dbd: SWAP1
00001dbe: JUMP
00001dbf: JUMPDEST
00001dc0: PUSH1 0x20
00001dc2: DUP1
00001dc3: DUP3
00001dc4: MSTORE
00001dc5: PUSH1 0x1e
00001dc7: SWAP1
00001dc8: DUP3
00001dc9: ADD
00001dca: MSTORE
00001dcb: PUSH32 0x4e65676174697665206e756d626572206973206e6f7420616c6c6f7765640000
00001dec: PUSH1 0x40
00001dee: DUP3
00001def: ADD
00001df0: MSTORE
00001df1: PUSH1 0x60
00001df3: ADD
00001df4: SWAP1
00001df5: JUMP
00001df6: JUMPDEST
00001df7: PUSH1 0x20
00001df9: DUP1
00001dfa: DUP3
00001dfb: MSTORE
00001dfc: PUSH1 0x26
00001dfe: SWAP1
00001dff: DUP3
00001e00: ADD
00001e01: MSTORE
00001e02: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061
00001e23: PUSH1 0x40
00001e25: DUP3
00001e26: ADD
00001e27: MSTORE
00001e28: PUSH6 0x646472657373
00001e2f: PUSH1 0xd0
00001e31: SHL
00001e32: PUSH1 0x60
00001e34: DUP3
00001e35: ADD
00001e36: MSTORE
00001e37: PUSH1 0x80
00001e39: ADD
00001e3a: SWAP1
00001e3b: JUMP
00001e3c: JUMPDEST
00001e3d: PUSH1 0x20
00001e3f: DUP1
00001e40: DUP3
00001e41: MSTORE
00001e42: PUSH1 0x22
00001e44: SWAP1
00001e45: DUP3
00001e46: ADD
00001e47: MSTORE
00001e48: PUSH32 0x45524332303a20617070726f766520746f20746865207a65726f206164647265
00001e69: PUSH1 0x40
00001e6b: DUP3
00001e6c: ADD
00001e6d: MSTORE
00001e6e: PUSH2 0x7373
00001e71: PUSH1 0xf0
00001e73: SHL
00001e74: PUSH1 0x60
00001e76: DUP3
00001e77: ADD
00001e78: MSTORE
00001e79: PUSH1 0x80
00001e7b: ADD
00001e7c: SWAP1
00001e7d: JUMP
00001e7e: JUMPDEST
00001e7f: PUSH1 0x20
00001e81: DUP1
00001e82: DUP3
00001e83: MSTORE
00001e84: PUSH1 0x1b
00001e86: SWAP1
00001e87: DUP3
00001e88: ADD
00001e89: MSTORE
00001e8a: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000
00001eab: PUSH1 0x40
00001ead: DUP3
00001eae: ADD
00001eaf: MSTORE
00001eb0: PUSH1 0x60
00001eb2: ADD
00001eb3: SWAP1
00001eb4: JUMP
00001eb5: JUMPDEST
00001eb6: PUSH1 0x20
00001eb8: DUP1
00001eb9: DUP3
00001eba: MSTORE
00001ebb: PUSH1 0x1e
00001ebd: SWAP1
00001ebe: DUP3
00001ebf: ADD
00001ec0: MSTORE
00001ec1: PUSH32 0x64697361626c65642c207573652027636c61696d272066756e6374696f6e0000
00001ee2: PUSH1 0x40
00001ee4: DUP3
00001ee5: ADD
00001ee6: MSTORE
00001ee7: PUSH1 0x60
00001ee9: ADD
00001eea: SWAP1
00001eeb: JUMP
00001eec: JUMPDEST
00001eed: PUSH1 0x20
00001eef: DUP1
00001ef0: DUP3
00001ef1: MSTORE
00001ef2: PUSH1 0x1d
00001ef4: SWAP1
00001ef5: DUP3
00001ef6: ADD
00001ef7: MSTORE
00001ef8: PUSH32 0x6d7573742062652075706461746564203120746f20323420686f757273000000
00001f19: PUSH1 0x40
00001f1b: DUP3
00001f1c: ADD
00001f1d: MSTORE
00001f1e: PUSH1 0x60
00001f20: ADD
00001f21: SWAP1
00001f22: JUMP
00001f23: JUMPDEST
00001f24: PUSH1 0x20
00001f26: DUP1
00001f27: DUP3
00001f28: MSTORE
00001f29: PUSH1 0x1b
00001f2b: SWAP1
00001f2c: DUP3
00001f2d: ADD
00001f2e: MSTORE
00001f2f: PUSH32 0x6469766964656e656420746f74616c737570706c79206572726f720000000000
00001f50: PUSH1 0x40
00001f52: DUP3
00001f53: ADD
00001f54: MSTORE
00001f55: PUSH1 0x60
00001f57: ADD
00001f58: SWAP1
00001f59: JUMP
00001f5a: JUMPDEST
00001f5b: PUSH1 0x20
00001f5d: DUP1
00001f5e: DUP3
00001f5f: MSTORE
00001f60: PUSH1 0x12
00001f62: SWAP1
00001f63: DUP3
00001f64: ADD
00001f65: MSTORE
00001f66: PUSH18 0x1d1c985b9cd9995c881a5b985b1b1bddd959
00001f79: PUSH1 0x72
00001f7b: SHL
00001f7c: PUSH1 0x40
00001f7e: DUP3
00001f7f: ADD
00001f80: MSTORE
00001f81: PUSH1 0x60
00001f83: ADD
00001f84: SWAP1
00001f85: JUMP
00001f86: JUMPDEST
00001f87: PUSH1 0x20
00001f89: DUP1
00001f8a: DUP3
00001f8b: MSTORE
00001f8c: PUSH1 0x21
00001f8e: SWAP1
00001f8f: DUP3
00001f90: ADD
00001f91: MSTORE
00001f92: PUSH32 0x536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f
00001fb3: PUSH1 0x40
00001fb5: DUP3
00001fb6: ADD
00001fb7: MSTORE
00001fb8: PUSH1 0x77
00001fba: PUSH1 0xf8
00001fbc: SHL
00001fbd: PUSH1 0x60
00001fbf: DUP3
00001fc0: ADD
00001fc1: MSTORE
00001fc2: PUSH1 0x80
00001fc4: ADD
00001fc5: SWAP1
00001fc6: JUMP
00001fc7: JUMPDEST
00001fc8: PUSH1 0x20
00001fca: DUP1
00001fcb: DUP3
00001fcc: MSTORE
00001fcd: DUP2
00001fce: DUP2
00001fcf: ADD
00001fd0: MSTORE
00001fd1: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
00001ff2: PUSH1 0x40
00001ff4: DUP3
00001ff5: ADD
00001ff6: MSTORE
00001ff7: PUSH1 0x60
00001ff9: ADD
00001ffa: SWAP1
00001ffb: JUMP
00001ffc: JUMPDEST
00001ffd: PUSH1 0x20
00001fff: DUP1
00002000: DUP3
00002001: MSTORE
00002002: PUSH1 0x15
00002004: SWAP1
00002005: DUP3
00002006: ADD
00002007: MSTORE
00002008: PUSH21 0x29b0b332a6b0ba34103a37aab4b73a1032b93937b9
0000201e: PUSH1 0x59
00002020: SHL
00002021: PUSH1 0x40
00002023: DUP3
00002024: ADD
00002025: MSTORE
00002026: PUSH1 0x60
00002028: ADD
00002029: SWAP1
0000202a: JUMP
0000202b: JUMPDEST
0000202c: PUSH1 0x20
0000202e: DUP1
0000202f: DUP3
00002030: MSTORE
00002031: PUSH1 0x21
00002033: SWAP1
00002034: DUP3
00002035: ADD
00002036: MSTORE
00002037: PUSH32 0x45524332303a206275726e2066726f6d20746865207a65726f20616464726573
00002058: PUSH1 0x40
0000205a: DUP3
0000205b: ADD
0000205c: MSTORE
0000205d: PUSH1 0x73
0000205f: PUSH1 0xf8
00002061: SHL
00002062: PUSH1 0x60
00002064: DUP3
00002065: ADD
00002066: MSTORE
00002067: PUSH1 0x80
00002069: ADD
0000206a: SWAP1
0000206b: JUMP
0000206c: JUMPDEST
0000206d: PUSH1 0x20
0000206f: DUP1
00002070: DUP3
00002071: MSTORE
00002072: PUSH1 0x24
00002074: SWAP1
00002075: DUP3
00002076: ADD
00002077: MSTORE
00002078: PUSH32 0x45524332303a20617070726f76652066726f6d20746865207a65726f20616464
00002099: PUSH1 0x40
0000209b: DUP3
0000209c: ADD
0000209d: MSTORE
0000209e: PUSH4 0x72657373
000020a3: PUSH1 0xe0
000020a5: SHL
000020a6: PUSH1 0x60
000020a8: DUP3
000020a9: ADD
000020aa: MSTORE
000020ab: PUSH1 0x80
000020ad: ADD
000020ae: SWAP1
000020af: JUMP
000020b0: JUMPDEST
000020b1: PUSH1 0x20
000020b3: DUP1
000020b4: DUP3
000020b5: MSTORE
000020b6: PUSH1 0x12
000020b8: SWAP1
000020b9: DUP3
000020ba: ADD
000020bb: MSTORE
000020bc: PUSH18 0x14d8599953585d1a08195c9c9bdc88185919
000020cf: PUSH1 0x72
000020d1: SHL
000020d2: PUSH1 0x40
000020d4: DUP3
000020d5: ADD
000020d6: MSTORE
000020d7: PUSH1 0x60
000020d9: ADD
000020da: SWAP1
000020db: JUMP
000020dc: JUMPDEST
000020dd: PUSH1 0x20
000020df: DUP1
000020e0: DUP3
000020e1: MSTORE
000020e2: PUSH1 0x11
000020e4: SWAP1
000020e5: DUP3
000020e6: ADD
000020e7: MSTORE
000020e8: PUSH17 0x189d5c9b9a5b99c81d5b985b1b1bddd959
000020fa: PUSH1 0x7a
000020fc: SHL
000020fd: PUSH1 0x40
000020ff: DUP3
00002100: ADD
00002101: MSTORE
00002102: PUSH1 0x60
00002104: ADD
00002105: SWAP1
00002106: JUMP
00002107: JUMPDEST
00002108: PUSH1 0x20
0000210a: DUP1
0000210b: DUP3
0000210c: MSTORE
0000210d: PUSH1 0x15
0000210f: SWAP1
00002110: DUP3
00002111: ADD
00002112: MSTORE
00002113: PUSH21 0x616c726561647920686173206265656e2073657421
00002129: PUSH1 0x58
0000212b: SHL
0000212c: PUSH1 0x40
0000212e: DUP3
0000212f: ADD
00002130: MSTORE
00002131: PUSH1 0x60
00002133: ADD
00002134: SWAP1
00002135: JUMP
00002136: JUMPDEST
00002137: PUSH1 0x20
00002139: DUP1
0000213a: DUP3
0000213b: MSTORE
0000213c: PUSH1 0x1f
0000213e: SWAP1
0000213f: DUP3
00002140: ADD
00002141: MSTORE
00002142: PUSH32 0x45524332303a206d696e7420746f20746865207a65726f206164647265737300
00002163: PUSH1 0x40
00002165: DUP3
00002166: ADD
00002167: MSTORE
00002168: PUSH1 0x60
0000216a: ADD
0000216b: SWAP1
0000216c: JUMP
0000216d: JUMPDEST
0000216e: SWAP1
0000216f: DUP2
00002170: MSTORE
00002171: PUSH1 0x20
00002173: ADD
00002174: SWAP1
00002175: JUMP
00002176: JUMPDEST
00002177: SWAP2
00002178: DUP3
00002179: MSTORE
0000217a: PUSH1 0x01
0000217c: PUSH1 0x01
0000217e: PUSH1 0xa0
00002180: SHL
00002181: SUB
00002182: AND
00002183: PUSH1 0x20
00002185: DUP3
00002186: ADD
00002187: MSTORE
00002188: PUSH1 0x40
0000218a: ADD
0000218b: SWAP1
0000218c: JUMP
0000218d: JUMPDEST
0000218e: SWAP3
0000218f: DUP4
00002190: MSTORE
00002191: PUSH1 0x01
00002193: PUSH1 0x01
00002195: PUSH1 0xa0
00002197: SHL
00002198: SUB
00002199: SWAP2
0000219a: SWAP1
0000219b: SWAP2
0000219c: AND
0000219d: PUSH1 0x20
0000219f: DUP4
000021a0: ADD
000021a1: MSTORE
000021a2: PUSH1 0x40
000021a4: DUP3
000021a5: ADD
000021a6: MSTORE
000021a7: PUSH1 0x60
000021a9: ADD
000021aa: SWAP1
000021ab: JUMP
000021ac: JUMPDEST
000021ad: SWAP2
000021ae: DUP3
000021af: MSTORE
000021b0: PUSH1 0x20
000021b2: DUP3
000021b3: ADD
000021b4: MSTORE
000021b5: PUSH1 0x40
000021b7: ADD
000021b8: SWAP1
000021b9: JUMP
000021ba: JUMPDEST
000021bb: SWAP3
000021bc: DUP4
000021bd: MSTORE
000021be: PUSH1 0x20
000021c0: DUP4
000021c1: ADD
000021c2: SWAP2
000021c3: SWAP1
000021c4: SWAP2
000021c5: MSTORE
000021c6: PUSH1 0x40
000021c8: DUP3
000021c9: ADD
000021ca: MSTORE
000021cb: PUSH1 0x60
000021cd: ADD
000021ce: SWAP1
000021cf: JUMP
000021d0: JUMPDEST
000021d1: PUSH1 0xff
000021d3: SWAP2
000021d4: SWAP1
000021d5: SWAP2
000021d6: AND
000021d7: DUP2
000021d8: MSTORE
000021d9: PUSH1 0x20
000021db: ADD
000021dc: SWAP1
000021dd: JUMP
000021de: JUMPDEST
000021df: PUSH1 0x00
000021e1: DUP1
000021e2: DUP3
000021e3: SLT
000021e4: DUP1
000021e5: ISZERO
000021e6: PUSH1 0x01
000021e8: PUSH1 0x01
000021ea: PUSH1 0xff
000021ec: SHL
000021ed: SUB
000021ee: DUP5
000021ef: SWAP1
000021f0: SUB
000021f1: DUP6
000021f2: SGT
000021f3: AND
000021f4: ISZERO
000021f5: PUSH2 0x2200
000021f8: JUMPI
000021f9: PUSH2 0x2200
000021fc: PUSH2 0x2322
000021ff: JUMP
00002200: JUMPDEST
00002201: PUSH1 0x01
00002203: PUSH1 0xff
00002205: SHL
00002206: DUP4
00002207: SWAP1
00002208: SUB
00002209: DUP5
0000220a: SLT
0000220b: DUP2
0000220c: AND
0000220d: ISZERO
0000220e: PUSH2 0x2219
00002211: JUMPI
00002212: PUSH2 0x2219
00002215: PUSH2 0x2322
00002218: JUMP
00002219: JUMPDEST
0000221a: POP
0000221b: POP
0000221c: ADD
0000221d: SWAP1
0000221e: JUMP
0000221f: JUMPDEST
00002220: PUSH1 0x00
00002222: DUP3
00002223: NOT
00002224: DUP3
00002225: GT
00002226: ISZERO
00002227: PUSH2 0x2232
0000222a: JUMPI
0000222b: PUSH2 0x2232
0000222e: PUSH2 0x2322
00002231: JUMP
00002232: JUMPDEST
00002233: POP
00002234: ADD
00002235: SWAP1
00002236: JUMP
00002237: JUMPDEST
00002238: PUSH1 0x00
0000223a: DUP3
0000223b: PUSH2 0x2252
0000223e: JUMPI
0000223f: PUSH4 0x4e487b71
00002244: PUSH1 0xe0
00002246: SHL
00002247: DUP2
00002248: MSTORE
00002249: PUSH1 0x12
0000224b: PUSH1 0x04
0000224d: MSTORE
0000224e: PUSH1 0x24
00002250: DUP2
00002251: REVERT
00002252: JUMPDEST
00002253: POP
00002254: DIV
00002255: SWAP1
00002256: JUMP
00002257: JUMPDEST
00002258: PUSH1 0x00
0000225a: DUP2
0000225b: PUSH1 0x00
0000225d: NOT
0000225e: DIV
0000225f: DUP4
00002260: GT
00002261: DUP3
00002262: ISZERO
00002263: ISZERO
00002264: AND
00002265: ISZERO
00002266: PUSH2 0x2271
00002269: JUMPI
0000226a: PUSH2 0x2271
0000226d: PUSH2 0x2322
00002270: JUMP
00002271: JUMPDEST
00002272: POP
00002273: MUL
00002274: SWAP1
00002275: JUMP
00002276: JUMPDEST
00002277: PUSH1 0x00
00002279: DUP1
0000227a: DUP4
0000227b: SLT
0000227c: DUP1
0000227d: ISZERO
0000227e: PUSH1 0x01
00002280: PUSH1 0xff
00002282: SHL
00002283: DUP6
00002284: ADD
00002285: DUP5
00002286: SLT
00002287: AND
00002288: ISZERO
00002289: PUSH2 0x2294
0000228c: JUMPI
0000228d: PUSH2 0x2294
00002290: PUSH2 0x2322
00002293: JUMP
00002294: JUMPDEST
00002295: PUSH1 0x01
00002297: PUSH1 0x01
00002299: PUSH1 0xff
0000229b: SHL
0000229c: SUB
0000229d: DUP5
0000229e: ADD
0000229f: DUP4
000022a0: SGT
000022a1: DUP2
000022a2: AND
000022a3: ISZERO
000022a4: PUSH2 0x22af
000022a7: JUMPI
000022a8: PUSH2 0x22af
000022ab: PUSH2 0x2322
000022ae: JUMP
000022af: JUMPDEST
000022b0: POP
000022b1: POP
000022b2: SUB
000022b3: SWAP1
000022b4: JUMP
000022b5: JUMPDEST
000022b6: PUSH1 0x00
000022b8: DUP3
000022b9: DUP3
000022ba: LT
000022bb: ISZERO
000022bc: PUSH2 0x22c7
000022bf: JUMPI
000022c0: PUSH2 0x22c7
000022c3: PUSH2 0x2322
000022c6: JUMP
000022c7: JUMPDEST
000022c8: POP
000022c9: SUB
000022ca: SWAP1
000022cb: JUMP
000022cc: JUMPDEST
000022cd: PUSH1 0x02
000022cf: DUP2
000022d0: DIV
000022d1: PUSH1 0x01
000022d3: DUP3
000022d4: AND
000022d5: DUP1
000022d6: PUSH2 0x22e0
000022d9: JUMPI
000022da: PUSH1 0x7f
000022dc: DUP3
000022dd: AND
000022de: SWAP2
000022df: POP
000022e0: JUMPDEST
000022e1: PUSH1 0x20
000022e3: DUP3
000022e4: LT
000022e5: DUP2
000022e6: EQ
000022e7: ISZERO
000022e8: PUSH2 0x2301
000022eb: JUMPI
000022ec: PUSH4 0x4e487b71
000022f1: PUSH1 0xe0
000022f3: SHL
000022f4: PUSH1 0x00
000022f6: MSTORE
000022f7: PUSH1 0x22
000022f9: PUSH1 0x04
000022fb: MSTORE
000022fc: PUSH1 0x24
000022fe: PUSH1 0x00
00002300: REVERT
00002301: JUMPDEST
00002302: POP
00002303: SWAP2
00002304: SWAP1
00002305: POP
00002306: JUMP
00002307: JUMPDEST
00002308: PUSH1 0x00
0000230a: PUSH1 0x00
0000230c: NOT
0000230d: DUP3
0000230e: EQ
0000230f: ISZERO
00002310: PUSH2 0x231b
00002313: JUMPI
00002314: PUSH2 0x231b
00002317: PUSH2 0x2322
0000231a: JUMP
0000231b: JUMPDEST
0000231c: POP
0000231d: PUSH1 0x01
0000231f: ADD
00002320: SWAP1
00002321: JUMP
00002322: JUMPDEST
00002323: PUSH4 0x4e487b71
00002328: PUSH1 0xe0
0000232a: SHL
0000232b: PUSH1 0x00
0000232d: MSTORE
0000232e: PUSH1 0x11
00002330: PUSH1 0x04
00002332: MSTORE
00002333: PUSH1 0x24
00002335: PUSH1 0x00
00002337: REVERT
00002338: JUMPDEST
00002339: PUSH1 0x01
0000233b: PUSH1 0x01
0000233d: PUSH1 0xa0
0000233f: SHL
00002340: SUB
00002341: DUP2
00002342: AND
00002343: DUP2
00002344: EQ
00002345: PUSH2 0x0b8f
00002348: JUMPI
00002349: PUSH1 0x00
0000234b: DUP1
0000234c: REVERT
0000234d: INVALID
0000234e: GASLIMIT
0000234f: MSTORE
00002350: NUMBER
00002351: ORIGIN
00002352: ADDRESS
00002353: GASPRICE
00002354: KECCAK256
00002355: PUSH3 0x75726e
00002359: KECCAK256
0000235a: PUSH2 0x6d6f
0000235d: PUSH22 0x6e7420657863656564732062616c616e636545524332
00002374: ADDRESS
00002375: GASPRICE
00002376: KECCAK256
00002377: PUSH21 0x72616e7366657220616d6f756e7420657863656564
0000238d: PUSH20 0x20616c6c6f77616e636545524332303a20646563
000023a2: PUSH19 0x656173656420616c6c6f77616e63652062656c
000023b6: PUSH16 0x77207a65726fa2646970667358221220
000023c7: UNKNOWN(0xDE)
000023c8: SWAP15
000023c9: BLOCKHASH
000023ca: UNKNOWN(0x2B)
000023cb: UNKNOWN(0xA8)
000023cc: UNKNOWN(0x26)
000023cd: CALLDATACOPY
000023ce: UNKNOWN(0xDE)
000023cf: UNKNOWN(0xAA)
000023d0: PUSH8 0x123699ec3517dfbb
000023d9: UNKNOWN(0xAD)
000023da: STOP
000023db: UNKNOWN(0xC0)
000023dc: UNKNOWN(0xE4)
000023dd: UNKNOWN(0xB4)
000023de: UNKNOWN(0xB1)
000023df: UNKNOWN(0xE7)
000023e0: PUSH27

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high reentrancy slither Reentrancy in DividendPayingToken._withdrawDividendOfUser(address) (contracts/DividendPayingToken.sol#86-95): 85 no
view
evidence_json
{
    "impact": "High",
    "detector": "reentrancy-eth",
    "elements": [
        {
            "name": "_withdrawDividendOfUser",
            "type": "function",
            "source_mapping": {
                "lines": [
                    86,
                    87,
                    88,
                    89,
                    90,
                    91,
                    92,
                    93,
                    94,
                    95
                ],
                "start": 4278,
                "length": 509,
                "ending_column": 17,
                "is_dependency": false,
                "filename_short": "contracts/DividendPayingToken.sol",
                "starting_column": 18,
                "filename_absolute": "/tmp/slither-harvljl4/contracts/DividendPayingToken.sol",
                "filename_relative": "contracts/DividendPayingToken.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "DividendPayingToken",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            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
                        ],
                        "start": 641,
                        "length": 8125,
                        "ending_column": 9,
                        "is_dependency": false,
                        "filename_short": "contracts/DividendPayingToken.sol",
                        "starting_column": 105,
                        "filename_absolute": "/tmp/slither-harvljl4/contracts/DividendPayingToken.sol",
                        "filename_relative": "contracts/DividendPayingToken.sol"
                    }
                },
                "signature": "_withdrawDividendOfUser(address)"
            }
        },
        {
            "name": "(success,None) = user.call{gas: 3000,value: _withdrawableDividend}()",
            "type": "node",
            "source_mapping": {
                "lines": [
                    90
                ],
                "start": 4557,
                "length": 71,
                "ending_column": 75,
                "is_dependency": false,
                "filename_short": "contracts/DividendPayingToken.sol",
                "starting_column": 4,
                "filename_absolute": "/tmp/slither-harvljl4/contracts/DividendPayingToken.sol",
                "filename_relative": "contracts/DividendPayingToken.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "_withdrawDividendOfUser",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            86,
                            87,
                            88,
                            89,
                            90,
                            91,
                            92,
                            93,
                            94,
                            95
                        ],
                        "start": 4278,
                        "length": 509,
                        "ending_column": 17,
                        "is_dependency": false,
                        "filename_short": "contracts/DividendPayingToken.sol",
                        "starting_column": 18,
                        "filename_absolute": "/tmp/slither-harvljl4/contracts/DividendPayingToken.sol",
                        "filename_relative": "contracts/DividendPayingToken.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "DividendPayingToken",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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
                                ],
                                "start": 641,
                                "length": 8125,
                                "ending_column": 9,
                                "is_dependency": false,
                                "filename_short": "contracts/DividendPayingToken.sol",
                                "starting_column": 105,
                                "filename_absolute": "/tmp/slither-harvljl4/contracts/DividendPayingToken.sol",
                                "filename_relative": "contracts/DividendPayingToken.sol"
                            }
                        },
                        "signature": "_withdrawDividendOfUser(address)"
                    }
                }
            }
        },
        {
            "name": "withdrawnDividends[user] = _withdrawnAmount",
            "type": "node",
            "source_mapping": {
                "lines": [
                    91,
                    92
                ],
                "start": 4683,
                "length": 43,
                "ending_column": 6,
                "is_dependency": false,
                "filename_short": "contracts/DividendPayingToken.sol",
                "starting_column": 43,
                "filename_absolute": "/tmp/slither-harvljl4/contracts/DividendPayingToken.sol",
                "filename_relative": "contracts/DividendPayingToken.sol"
            },
            "additional_fields": {
                "variable_name": "withdrawnDividends",
                "underlying_type": "variables_written"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "_withdrawDividendOfUser",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            86,
                            87,
                            88,
                            89,
                            90,
                            91,
                            92,
                            93,
                            94,
                            95
                        ],
                        "start": 4278,
                        "length": 509,
                        "ending_column": 17,
                        "is_dependency": false,
                        "filename_short": "contracts/DividendPayingToken.sol",
                        "starting_column": 18,
                        "filename_absolute": "/tmp/slither-harvljl4/contracts/DividendPayingToken.sol",
                        "filename_relative": "contracts/DividendPayingToken.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "DividendPayingToken",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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
                                ],
                                "start": 641,
                                "length": 8125,
                                "ending_column": 9,
                                "is_dependency": false,
                                "filename_short": "contracts/DividendPayingToken.sol",
                                "starting_column": 105,
                                "filename_absolute": "/tmp/slither-harvljl4/contracts/DividendPayingToken.sol",
                                "filename_relative": "contracts/DividendPayingToken.sol"
                            }
                        },
                        "signature": "_withdrawDividendOfUser(address)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "contracts/DividendPayingToken.sol",
            "name": "_withdrawDividendOfUser",
            "type": "function",
            "lines": [
                86,
                87,
                88,
                89,
                90,
                91,
                92,
                93,
                94,
                95
            ]
        },
        {
            "file": "contracts/DividendPayingToken.sol",
            "name": "(success,None) = user.call{gas: 3000,value: _withdrawableDividend}()",
            "type": "node",
            "lines": [
                90
            ]
        },
        {
            "file": "contracts/DividendPayingToken.sol",
            "name": "withdrawnDividends[user] = _withdrawnAmount",
            "type": "node",
            "lines": [
                91,
                92
            ]
        }
    ],
    "description": "Reentrancy in DividendPayingToken._withdrawDividendOfUser(address) (contracts/DividendPayingToken.sol#86-95):\n\tExternal calls:\n\t- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (contracts/DividendPayingToken.sol#90)\n\tState variables written after the call(s):\n\t- withdrawnDividends[user] = _withdrawnAmount (contracts/DividendPayingToken.sol#91-92)\n\tDividendPayingToken.withdrawnDividends (contracts/DividendPayingToken.sol#41-42) can be used in cross function reentrancies:\n\t- DividendPayingToken._withdrawDividendOfUser(address) (contracts/DividendPayingToken.sol#86-95)\n\t- DividendPayingToken.withdrawableDividendOf(address) (contracts/DividendPayingToken.sol#110-113)\n\t- DividendPayingToken.withdrawnDividendOf(address) (contracts/DividendPayingToken.sol#118-120)"
}
high upgradeability detector Untrusted DELEGATECALL target reachable 55 no no
view
trace_id: 0x70556dd2e9aa589037da06fdf6ffadeaea5fc80d445dd15b4a6bcf746b7ce7d8
call_targets: 0x95fcc6006d2a7c02e0eae2859299efa04ee16d19
target_varies: no
classification: constant_target
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 38,
    "trace_id": "0x70556dd2e9aa589037da06fdf6ffadeaea5fc80d445dd15b4a6bcf746b7ce7d8",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x95fcc6006d2a7c02e0eae2859299efa04ee16d19"
    ],
    "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": "0xe7841ec0",
            "selector": "0xe7841ec0",
            "calldata_variants": [
                "0xe7841ec0",
                "0xe7841ec00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe98030c7",
            "selector": "0xe98030c7",
            "calldata_variants": [
                "0xe98030c7",
                "0xe98030c70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfbcbc0f1",
            "selector": "0xfbcbc0f1",
            "calldata_variants": [
                "0xfbcbc0f1",
                "0xfbcbc0f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffb2c479",
            "selector": "0xffb2c479",
            "calldata_variants": [
                "0xffb2c479",
                "0xffb2c4790000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbe10b614",
            "selector": "0xbe10b614",
            "calldata_variants": [
                "0xbe10b614",
                "0xbe10b6140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc705c569",
            "selector": "0xc705c569",
            "calldata_variants": [
                "0xc705c569",
                "0xc705c5690000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2190,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 2313,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        },
        {
            "pc": 3059,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [
        {
            "pc": 9041,
            "type": "tx_origin_used"
        }
    ],
    "delegatecall_count": 7,
    "untrusted_delegatecall_count": 7
}
high reentrancy slither Reentrancy in FetchInuDividendTracker.process(uint256) (contracts/FetchInuDividendTracker.sol#156-201): 85 no
view
evidence_json
{
    "impact": "High",
    "detector": "reentrancy-eth",
    "elements": [
        {
            "name": "process",
            "type": "function",
            "source_mapping": {
                "lines": [
                    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
                ],
                "start": 5631,
                "length": 1102,
                "ending_column": 8,
                "is_dependency": false,
                "filename_short": "contracts/FetchInuDividendTracker.sol",
                "starting_column": 1,
                "filename_absolute": "/tmp/slither-harvljl4/contracts/FetchInuDividendTracker.sol",
                "filename_relative": "contracts/FetchInuDividendTracker.sol"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "FetchInuDividendTracker",
                    "type": "contract",
                    "source_mapping": {
                        "lines": [
                            4,
                            5,
                            6,
                            7,
                            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
                        ],
                        "start": 124,
                        "length": 6845,
                        "ending_column": 8,
                        "is_dependency": false,
                        "filename_short": "contracts/FetchInuDividendTracker.sol",
                        "starting_column": 30,
                        "filename_absolute": "/tmp/slither-harvljl4/contracts/FetchInuDividendTracker.sol",
                        "filename_relative": "contracts/FetchInuDividendTracker.sol"
                    }
                },
                "signature": "process(uint256)"
            }
        },
        {
            "name": "_processAccount(address(account))",
            "type": "node",
            "source_mapping": {
                "lines": [
                    184,
                    185
                ],
                "start": 6360,
                "length": 33,
                "ending_column": 19,
                "is_dependency": false,
                "filename_short": "contracts/FetchInuDividendTracker.sol",
                "starting_column": 50,
                "filename_absolute": "/tmp/slither-harvljl4/contracts/FetchInuDividendTracker.sol",
                "filename_relative": "contracts/FetchInuDividendTracker.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "process",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            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
                        ],
                        "start": 5631,
                        "length": 1102,
                        "ending_column": 8,
                        "is_dependency": false,
                        "filename_short": "contracts/FetchInuDividendTracker.sol",
                        "starting_column": 1,
                        "filename_absolute": "/tmp/slither-harvljl4/contracts/FetchInuDividendTracker.sol",
                        "filename_relative": "contracts/FetchInuDividendTracker.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "FetchInuDividendTracker",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    4,
                                    5,
                                    6,
                                    7,
                                    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
                                ],
                                "start": 124,
                                "length": 6845,
                                "ending_column": 8,
                                "is_dependency": false,
                                "filename_short": "contracts/FetchInuDividendTracker.sol",
                                "starting_column": 30,
                                "filename_absolute": "/tmp/slither-harvljl4/contracts/FetchInuDividendTracker.sol",
                                "filename_relative": "contracts/FetchInuDividendTracker.sol"
                            }
                        },
                        "signature": "process(uint256)"
                    }
                }
            }
        },
        {
            "name": "(success,None) = user.call{gas: 3000,value: _withdrawableDividend}()",
            "type": "node",
            "source_mapping": {
                "lines": [
                    90
                ],
                "start": 4557,
                "length": 71,
                "ending_column": 75,
                "is_dependency": false,
                "filename_short": "contracts/DividendPayingToken.sol",
                "starting_column": 4,
                "filename_absolute": "/tmp/slither-harvljl4/contracts/DividendPayingToken.sol",
                "filename_relative": "contracts/DividendPayingToken.sol"
            },
            "additional_fields": {
                "underlying_type": "external_calls_sending_eth"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "_withdrawDividendOfUser",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            86,
                            87,
                            88,
                            89,
                            90,
                            91,
                            92,
                            93,
                            94,
                            95
                        ],
                        "start": 4278,
                        "length": 509,
                        "ending_column": 17,
                        "is_dependency": false,
                        "filename_short": "contracts/DividendPayingToken.sol",
                        "starting_column": 18,
                        "filename_absolute": "/tmp/slither-harvljl4/contracts/DividendPayingToken.sol",
                        "filename_relative": "contracts/DividendPayingToken.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "DividendPayingToken",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    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
                                ],
                                "start": 641,
                                "length": 8125,
                                "ending_column": 9,
                                "is_dependency": false,
                                "filename_short": "contracts/DividendPayingToken.sol",
                                "starting_column": 105,
                                "filename_absolute": "/tmp/slither-harvljl4/contracts/DividendPayingToken.sol",
                                "filename_relative": "contracts/DividendPayingToken.sol"
                            }
                        },
                        "signature": "_withdrawDividendOfUser(address)"
                    }
                }
            }
        },
        {
            "name": "lastProcessedIndex = _lastProcessedIndex",
            "type": "node",
            "source_mapping": {
                "lines": [
                    196,
                    197,
                    198
                ],
                "start": 6631,
                "length": 40,
                "ending_column": 21,
                "is_dependency": false,
                "filename_short": "contracts/FetchInuDividendTracker.sol",
                "starting_column": 4,
                "filename_absolute": "/tmp/slither-harvljl4/contracts/FetchInuDividendTracker.sol",
                "filename_relative": "contracts/FetchInuDividendTracker.sol"
            },
            "additional_fields": {
                "variable_name": "lastProcessedIndex",
                "underlying_type": "variables_written"
            },
            "type_specific_fields": {
                "parent": {
                    "name": "process",
                    "type": "function",
                    "source_mapping": {
                        "lines": [
                            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
                        ],
                        "start": 5631,
                        "length": 1102,
                        "ending_column": 8,
                        "is_dependency": false,
                        "filename_short": "contracts/FetchInuDividendTracker.sol",
                        "starting_column": 1,
                        "filename_absolute": "/tmp/slither-harvljl4/contracts/FetchInuDividendTracker.sol",
                        "filename_relative": "contracts/FetchInuDividendTracker.sol"
                    },
                    "type_specific_fields": {
                        "parent": {
                            "name": "FetchInuDividendTracker",
                            "type": "contract",
                            "source_mapping": {
                                "lines": [
                                    4,
                                    5,
                                    6,
                                    7,
                                    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
                                ],
                                "start": 124,
                                "length": 6845,
                                "ending_column": 8,
                                "is_dependency": false,
                                "filename_short": "contracts/FetchInuDividendTracker.sol",
                                "starting_column": 30,
                                "filename_absolute": "/tmp/slither-harvljl4/contracts/FetchInuDividendTracker.sol",
                                "filename_relative": "contracts/FetchInuDividendTracker.sol"
                            }
                        },
                        "signature": "process(uint256)"
                    }
                }
            }
        }
    ],
    "locations": [
        {
            "file": "contracts/FetchInuDividendTracker.sol",
            "name": "process",
            "type": "function",
            "lines": [
                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
            ]
        },
        {
            "file": "contracts/FetchInuDividendTracker.sol",
            "name": "_processAccount(address(account))",
            "type": "node",
            "lines": [
                184,
                185
            ]
        },
        {
            "file": "contracts/DividendPayingToken.sol",
            "name": "(success,None) = user.call{gas: 3000,value: _withdrawableDividend}()",
            "type": "node",
            "lines": [
                90
            ]
        },
        {
            "file": "contracts/FetchInuDividendTracker.sol",
            "name": "lastProcessedIndex = _lastProcessedIndex",
            "type": "node",
            "lines": [
                196,
                197,
                198
            ]
        }
    ],
    "description": "Reentrancy in FetchInuDividendTracker.process(uint256) (contracts/FetchInuDividendTracker.sol#156-201):\n\tExternal calls:\n\t- _processAccount(address(account)) (contracts/FetchInuDividendTracker.sol#184-185)\n\t\t- (success,None) = user.call{gas: 3000,value: _withdrawableDividend}() (contracts/DividendPayingToken.sol#90)\n\tState variables written after the call(s):\n\t- lastProcessedIndex = _lastProcessedIndex (contracts/FetchInuDividendTracker.sol#196-198)\n\tFetchInuDividendTracker.lastProcessedIndex (contracts/FetchInuDividendTracker.sol#10-11) can be used in cross function reentrancies:\n\t- FetchInuDividendTracker._getAccount(address) (contracts/FetchInuDividendTracker.sol#46-88)\n\t- FetchInuDividendTracker.getLastProcessedIndex() (contracts/FetchInuDividendTracker.sol#29-32)\n\t- FetchInuDividendTracker.lastProcessedIndex (contracts/FetchInuDividendTracker.sol#10-11)\n\t- FetchInuDividendTracker.process(uint256) (contracts/FetchInuDividendTracker.sol#156-201)"
}
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xe7841ec0",
            "selector": "0xe7841ec0",
            "calldata_variants": [
                "0xe7841ec0",
                "0xe7841ec00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe98030c7",
            "selector": "0xe98030c7",
            "calldata_variants": [
                "0xe98030c7",
                "0xe98030c70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfbcbc0f1",
            "selector": "0xfbcbc0f1",
            "calldata_variants": [
                "0xfbcbc0f1",
                "0xfbcbc0f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffb2c479",
            "selector": "0xffb2c479",
            "calldata_variants": [
                "0xffb2c479",
                "0xffb2c4790000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbe10b614",
            "selector": "0xbe10b614",
            "calldata_variants": [
                "0xbe10b614",
                "0xbe10b6140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc705c569",
            "selector": "0xc705c569",
            "calldata_variants": [
                "0xc705c569",
                "0xc705c5690000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 9041,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0xa3a857d387375d3c8b61d8ed6e5ae7150e8f384f1fa4cd677f6242bdd0eb9f7d
call_targets: 0x456fa3183d33497b290a3d24b98ddbc902ae1da5
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xa3a857d387375d3c8b61d8ed6e5ae7150e8f384f1fa4cd677f6242bdd0eb9f7d",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x456fa3183d33497b290a3d24b98ddbc902ae1da5"
    ],
    "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": "0xe7841ec0",
            "selector": "0xe7841ec0",
            "calldata_variants": [
                "0xe7841ec0",
                "0xe7841ec00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe98030c7",
            "selector": "0xe98030c7",
            "calldata_variants": [
                "0xe98030c7",
                "0xe98030c70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfbcbc0f1",
            "selector": "0xfbcbc0f1",
            "calldata_variants": [
                "0xfbcbc0f1",
                "0xfbcbc0f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffb2c479",
            "selector": "0xffb2c479",
            "calldata_variants": [
                "0xffb2c479",
                "0xffb2c4790000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbe10b614",
            "selector": "0xbe10b614",
            "calldata_variants": [
                "0xbe10b614",
                "0xbe10b6140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc705c569",
            "selector": "0xc705c569",
            "calldata_variants": [
                "0xc705c569",
                "0xc705c5690000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 6071,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 1,
    "guards_detected": [
        {
            "pc": 9041,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0xa3a857d387375d3c8b61d8ed6e5ae7150e8f384f1fa4cd677f6242bdd0eb9f7d
call_targets: 0x456fa3183d33497b290a3d24b98ddbc902ae1da5
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0xa3a857d387375d3c8b61d8ed6e5ae7150e8f384f1fa4cd677f6242bdd0eb9f7d",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x456fa3183d33497b290a3d24b98ddbc902ae1da5"
    ],
    "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": "0xe7841ec0",
            "selector": "0xe7841ec0",
            "calldata_variants": [
                "0xe7841ec0",
                "0xe7841ec00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe98030c7",
            "selector": "0xe98030c7",
            "calldata_variants": [
                "0xe98030c7",
                "0xe98030c70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfbcbc0f1",
            "selector": "0xfbcbc0f1",
            "calldata_variants": [
                "0xfbcbc0f1",
                "0xfbcbc0f10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xffb2c479",
            "selector": "0xffb2c479",
            "calldata_variants": [
                "0xffb2c479",
                "0xffb2c4790000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xbe10b614",
            "selector": "0xbe10b614",
            "calldata_variants": [
                "0xbe10b614",
                "0xbe10b6140000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc705c569",
            "selector": "0xc705c569",
            "calldata_variants": [
                "0xc705c569",
                "0xc705c5690000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdd62ed3e",
            "selector": "0xdd62ed3e",
            "calldata_variants": [
                "0xdd62ed3e",
                "0xdd62ed3e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 6071,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 1,
    "guards_detected": [
        {
            "pc": 9041,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 1
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 7
}
low access_control codex Owner can arbitrarily change dividend shares and exclude accounts 65 no
view
evidence_json
{
    "evidence": "`setBalance` accepts arbitrary `newBalance` under `onlyOwner`, and `excludeFromDividends` can remove accounts while `withdrawDividend` is disabled.",
    "locations": [
        "contracts/FetchInuDividendTracker.sol:28",
        "contracts/FetchInuDividendTracker.sol:112",
        "contracts/FetchInuDividendTracker.sol:132"
    ],
    "recommendation": "Restrict `setBalance` to a trusted token contract that enforces balance correctness, or add validation against the underlying token balance. Consider a timelock/multisig for owner actions and/or enable user-initiated withdrawals.",
    "exploit_scenario": "If the owner is compromised or malicious, it can call `setBalance` with arbitrary values or `excludeFromDividends` to remove accounts, diverting future dividends or blocking claims; since `withdrawDividend` is disabled, users cannot independently withdraw."
}
low other codex Fixed 3000 gas stipend can permanently lock dividends for contract wallets 65 no
view
evidence_json
{
    "evidence": "Dividend payouts use `call{gas:3000}` and `withdrawDividend` is disabled in the tracker, while `process` routes through `_withdrawDividendOfUser`.",
    "locations": [
        "contracts/DividendPayingToken.sol:91",
        "contracts/FetchInuDividendTracker.sol:28",
        "contracts/FetchInuDividendTracker.sol:153"
    ],
    "recommendation": "Remove the fixed 3000 gas stipend and rely on reentrancy protection, or allow users to call a withdrawal function that forwards sufficient gas. Optionally track repeated failures and skip them to avoid gas griefing.",
    "exploit_scenario": "If a holder is a contract whose fallback requires more than 3000 gas, every dividend payout attempt will fail and remain stuck. `process()` will keep retrying the same accounts, wasting gas and delaying other claims, and users cannot self-withdraw because `withdrawDividend` is disabled."
}
low reentrancy codex External ETH transfer before state update can allow reentrant double-claims 65 no
view
evidence_json
{
    "evidence": "`_withdrawDividendOfUser` sends ETH to `user` and only updates `withdrawnDividends` after the call succeeds.",
    "locations": [
        "contracts/DividendPayingToken.sol:87",
        "contracts/DividendPayingToken.sol:90",
        "contracts/DividendPayingToken.sol:91",
        "contracts/DividendPayingToken.sol:95"
    ],
    "recommendation": "Apply checks-effects-interactions: update `withdrawnDividends` before the external call and revert on failure, or add a reentrancy guard around dividend withdrawals.",
    "exploit_scenario": "A malicious dividend recipient contract can use its fallback to reenter `withdrawDividend` (or a future refactor that increases the call gas) before `withdrawnDividends` is updated, letting it withdraw the same dividends multiple times and drain the pool."
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 8
}