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

Analysis Run

b806a3f0-ce94-4e32-977e-bb6d911ba46b

failed
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 6:07 PM
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
1
Validated
1
Source
Verified
Review Backing
Present
Best current signal
Untrusted DELEGATECALL target reachable
crit 1 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
30547 report.consolidate complete 1 / 1 3 months ago
104141 artifact.fetch complete 1 / 3 1 week ago
104142 tool.cast_disasm complete 1 / 3 1 week ago
104143 analysis.bundle complete 1 / 3 1 week ago
104144 capability.graph complete 1 / 3 1 week ago
104145 detector.run complete 1 / 3 1 week ago
104146 validation.fork complete 1 / 3 1 week ago
113890 tool.slither failed 2 / 2 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: yes

Slither

tool.slither
Status
failed slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-ugi9hgsv) 'forge config --json' running 'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-ugi9hgsv) 'forge' returned non-zero exit code 1 Compiling 42 files with Solc 0.8.21 stdout: Solc 0.8.21 finished in 55.76ms Error: Compiler run failed: stderr: Error (3415): No arguments passed to the base constructor. Specify the arguments or mark "PriceRouter" as abstract. stderr: --> src/modules/price-router/PriceRouter.sol:23:1: stderr: | stderr: 23 | contract PriceRouter is Ownable { stderr: | ^ (Relevant source part starts here and spans across multiple lines). stderr: Note: Base constructor parameters: stderr: --> lib/openzeppelin-contracts/contracts/access/Ownable.sol:38:16: stderr: | stderr: 38 | constructor(address initialOwner) { stderr: | ^^^^^^^^^^^^^^^^^^^^^^ stderr: stderr: Error (2973): Wrong argument count for modifier invocation: 0 arguments given but expected 1. stderr: --> src/Registry.sol:80:99: stderr: | stderr: 80 | constructor(address newOwner, address gravityBridge, address swapRouter, address priceRouter) Ownable() { stderr: | ^^^^^^^^^ Traceback (most recent call last): File "/var/www/tripwire/.venv/bin/slither", line 10, in <module> sys.exit(main()) ~~~~^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main main_impl(all_detector_classes=detectors, all_printer_classes=printers) ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl ) = process_all(filename, args, detector_classes, printer_classes) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all compilations = compile_all(target, **vars(args)) File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all compilations.append(CryticCompile(target, **kwargs)) ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__ self._compile(**kwargs) ~~~~~~~~~~~~~^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile self._platform.compile(self, **kwargs) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile hardhat_like_parsing( ~~~~~~~~~~~~~~~~~~~~^ crytic_compile, str(self._target), build_directory, str(self._project_root) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing raise InvalidCompilation(txt) crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command? /tmp/slither-ugi9hgsv/out/build-info is not a directory.
Attempts
2 / 2
Findings
0
Solc
View stderr
Traceback (most recent call last):
  File "/var/www/tripwire/worker/worker.py", line 198, in main
    payload = dispatch_job(job_type, job_id, job_meta, run_data, config, laravel_client)
  File "/var/www/tripwire/worker/worker.py", line 114, in dispatch_job
    return slither_run.run(job_id, job_meta, run_data, config, log, laravel_client)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/worker/jobs/slither_run.py", line 1084, in run
    stdout_text, stderr_text, result_json = _run_slither(
                                            ~~~~~~~~~~~~^
        workspace,
        ^^^^^^^^^^
    ...<4 lines>...
        target_path=target_path,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/var/www/tripwire/worker/jobs/slither_run.py", line 958, in _run_slither
    raise RuntimeError(f"slither failed (exit {result.returncode}): {stderr_text or stdout_text}")
RuntimeError: slither failed (exit 1): 'forge clean' running (wd: /tmp/slither-ugi9hgsv)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-ugi9hgsv)
'forge' returned non-zero exit code 1
Compiling 42 files with Solc 0.8.21
stdout: Solc 0.8.21 finished in 55.76ms
Error: Compiler run failed:
stderr: Error (3415): No arguments passed to the base constructor. Specify the arguments or mark "PriceRouter" as abstract.
stderr:   --> src/modules/price-router/PriceRouter.sol:23:1:
stderr:    |
stderr: 23 | contract PriceRouter is Ownable {
stderr:    | ^ (Relevant source part starts here and spans across multiple lines).
stderr: Note: Base constructor parameters:
stderr:   --> lib/openzeppelin-contracts/contracts/access/Ownable.sol:38:16:
stderr:    |
stderr: 38 |     constructor(address initialOwner) {
stderr:    |                ^^^^^^^^^^^^^^^^^^^^^^
stderr: 
stderr: Error (2973): Wrong argument count for modifier invocation: 0 arguments given but expected 1.
stderr:   --> src/Registry.sol:80:99:
stderr:    |
stderr: 80 |     constructor(address newOwner, address gravityBridge, address swapRouter, address priceRouter) Ownable() {
stderr:    |                                                                                                   ^^^^^^^^^
Traceback (most recent call last):
  File "/var/www/tripwire/.venv/bin/slither", line 10, in <module>
    sys.exit(main())
             ~~~~^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 776, in main
    main_impl(all_detector_classes=detectors, all_printer_classes=printers)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 882, in main_impl
    ) = process_all(filename, args, detector_classes, printer_classes)
        ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/slither/__main__.py", line 96, in process_all
    compilations = compile_all(target, **vars(args))
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 722, in compile_all
    compilations.append(CryticCompile(target, **kwargs))
                        ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 211, in __init__
    self._compile(**kwargs)
    ~~~~~~~~~~~~~^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/crytic_compile.py", line 633, in _compile
    self._platform.compile(self, **kwargs)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/foundry.py", line 102, in compile
    hardhat_like_parsing(
    ~~~~~~~~~~~~~~~~~~~~^
        crytic_compile, str(self._target), build_directory, str(self._project_root)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/var/www/tripwire/.venv/lib/python3.13/site-packages/crytic_compile/platform/hardhat.py", line 52, in hardhat_like_parsing
    raise InvalidCompilation(txt)
crytic_compile.platform.exceptions.InvalidCompilation: Compilation failed. Can you run build command?
/tmp/slither-ugi9hgsv/out/build-info is not a directory.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
2
No findings?
no
Summary
Found 2 issues: a debt/credit underflow can DoS totalAssets-based flows, and Chainlink round completeness is not validated.
View stderr
[codex:989565] OpenAI Codex v0.77.0 (research preview)
[codex:989565] --------
[codex:989565] workdir: /tmp/codex-multi-q9h4qu58
[codex:989565] model: gpt-5.2-codex
[codex:989565] provider: openai
[codex:989565] approval: never
[codex:989565] sandbox: read-only
[codex:989565] reasoning effort: xhigh
[codex:989565] reasoning summaries: auto
[codex:989565] session id: 019b6b42-b266-7522-9877-bdd8864a6189
[codex:989565] --------
[codex:989565] user
[codex:989565] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:989565] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:989565] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:989565] 
[codex:989565] Scope rules:
[codex:989565] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:989565] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:989565] 
[codex:989565] Output MUST be valid JSON matching the provided schema.
[codex:989565] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:989565] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:989565] 
[codex:989565] Output constraints (IMPORTANT):
[codex:989565] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:989565] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:989565] mcp startup: no servers
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Preparing to review audit requirements**
[codex:989565] exec
[codex:989565] /bin/bash -lc ls in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] AUDIT_BUNDLE.txt
[codex:989565] codex-output-schema.json
[codex:989565] contracts
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Reading AUDIT_BUNDLE.txt file**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:989565] 
[codex:989565] ================================================================================
[codex:989565] FILE: contracts/lib/balancer-v2-monorepo/pkg/interfaces/contracts/solidity-utils/openzeppelin/IERC20.sol
[codex:989565] ================================================================================
[codex:989565] // SPDX-License-Identifier: MIT
[codex:989565] 
[codex:989565] pragma solidity >=0.7.0 <0.9.0;
[codex:989565] 
[codex:989565] /**
[codex:989565]  * @dev Interface of the ERC20 standard as defined in the EIP.
[codex:989565]  */
[codex:989565] interface IERC20 {
[codex:989565]     /**
[codex:989565]      * @dev Returns the amount of tokens in existence.
[codex:989565]      */
[codex:989565]     function totalSupply() external view returns (uint256);
[codex:989565] 
[codex:989565]     /**
[codex:989565]      * @dev Returns the amount of tokens owned by `account`.
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Identifying first-party contract files**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "FILE: contracts/src" AUDIT_BUNDLE.txt' in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 3702:FILE: contracts/src/Registry.sol
[codex:989565] 4196:FILE: contracts/src/base/Cellar.sol
[codex:989565] 5721:FILE: contracts/src/base/ERC4626SharePriceOracle.sol
[codex:989565] 6165:FILE: contracts/src/base/permutations/CellarWithOracle.sol
[codex:989565] 6268:FILE: contracts/src/base/permutations/CellarWithOracleWithBalancerFlashLoans.sol
[codex:989565] 6356:FILE: contracts/src/interfaces/external/IChainlinkAggregator.sol
[codex:989565] 6372:FILE: contracts/src/interfaces/external/UniswapV3Pool.sol
[codex:989565] 6554:FILE: contracts/src/modules/adaptors/BaseAdaptor.sol
[codex:989565] 6774:FILE: contracts/src/modules/price-router/Extensions/Extension.sol
[codex:989565] 6823:FILE: contracts/src/modules/price-router/PriceRouter.sol
[codex:989565] 7663:FILE: contracts/src/utils/Math.sol
[codex:989565] 7737:FILE: contracts/src/utils/Uint32Array.sol
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Preparing contract audit plan**
[codex:989565] exec
[codex:989565] /bin/bash -lc "sed -n '3702,4195p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-q9h4qu58 succeeded in 7ms:
[codex:989565] FILE: contracts/src/Registry.sol
[codex:989565] ================================================================================
[codex:989565] // SPDX-License-Identifier: Apache-2.0
[codex:989565] pragma solidity 0.8.21;
[codex:989565] 
[codex:989565] import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
[codex:989565] import { Cellar } from "src/base/Cellar.sol";
[codex:989565] import { ERC20 } from "@solmate/tokens/ERC20.sol";
[codex:989565] import { BaseAdaptor } from "src/modules/adaptors/BaseAdaptor.sol";
[codex:989565] import { PriceRouter } from "src/modules/price-router/PriceRouter.sol";
[codex:989565] 
[codex:989565] contract Registry is Ownable {
[codex:989565]     // ============================================= ADDRESS CONFIG =============================================
[codex:989565] 
[codex:989565]     /**
[codex:989565]      * @notice Emitted when the address of a contract is changed.
[codex:989565]      * @param id value representing the unique ID tied to the changed contract
[codex:989565]      * @param oldAddress address of the contract before the change
[codex:989565]      * @param newAddress address of the contract after the contract
[codex:989565]      */
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Analyzing registry access control risks**
[codex:989565] exec
[codex:989565] /bin/bash -lc "sed -n '4196,5720p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] FILE: contracts/src/base/Cellar.sol
[codex:989565] ================================================================================
[codex:989565] // SPDX-License-Identifier: Apache-2.0
[codex:989565] pragma solidity 0.8.21;
[codex:989565] 
[codex:989565] import { Math } from "src/utils/Math.sol";
[codex:989565] import { ERC4626 } from "@solmate/mixins/ERC4626.sol";
[codex:989565] import { SafeTransferLib } from "@solmate/utils/SafeTransferLib.sol";
[codex:989565] import { ERC20 } from "@solmate/tokens/ERC20.sol";
[codex:989565] // import { ERC4626, SafeTransferLib, Math, ERC20 } from "src/base/ERC4626.sol";
[codex:989565] import { Registry } from "src/Registry.sol";
[codex:989565] import { PriceRouter } from "src/modules/price-router/PriceRouter.sol";
[codex:989565] import { Uint32Array } from "src/utils/Uint32Array.sol";
[codex:989565] import { BaseAdaptor } from "src/modules/adaptors/BaseAdaptor.sol";
[codex:989565] import { Address } from "@openzeppelin/contracts/utils/Address.sol";
[codex:989565] import { ERC721Holder } from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";
[codex:989565] import { Owned } from "@solmate/auth/Owned.sol";
[codex:989565] 
[codex:989565] /**
[codex:989565]  * @title Sommelier Cellar
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Investigating file truncation and planning detailed inspection**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/Cellar.sol | sed -n '1,260p'" in /tmp/codex-multi-q9h4qu58 succeeded in 8ms:
[codex:989565]      1	// SPDX-License-Identifier: Apache-2.0
[codex:989565]      2	pragma solidity 0.8.21;
[codex:989565]      3	
[codex:989565]      4	import { Math } from "src/utils/Math.sol";
[codex:989565]      5	import { ERC4626 } from "@solmate/mixins/ERC4626.sol";
[codex:989565]      6	import { SafeTransferLib } from "@solmate/utils/SafeTransferLib.sol";
[codex:989565]      7	import { ERC20 } from "@solmate/tokens/ERC20.sol";
[codex:989565]      8	// import { ERC4626, SafeTransferLib, Math, ERC20 } from "src/base/ERC4626.sol";
[codex:989565]      9	import { Registry } from "src/Registry.sol";
[codex:989565]     10	import { PriceRouter } from "src/modules/price-router/PriceRouter.sol";
[codex:989565]     11	import { Uint32Array } from "src/utils/Uint32Array.sol";
[codex:989565]     12	import { BaseAdaptor } from "src/modules/adaptors/BaseAdaptor.sol";
[codex:989565]     13	import { Address } from "@openzeppelin/contracts/utils/Address.sol";
[codex:989565]     14	import { ERC721Holder } from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";
[codex:989565]     15	import { Owned } from "@solmate/auth/Owned.sol";
[codex:989565]     16	
[codex:989565]     17	/**
[codex:989565]     18	 * @title Sommelier Cellar
[codex:989565]     19	 * @notice A composable ERC4626 that can use arbitrary DeFi assets/positions using adaptors.
[codex:989565]     20	 * @author crispymangoes
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Searching for deposit implementations**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "function deposit|function withdraw|function redeem|function mint|_after|_before|_withdraw|_deposit|totalAssets" contracts/src/base/Cellar.sol' in /tmp/codex-multi-q9h4qu58 succeeded in 8ms:
[codex:989565] 96:     * @param checkTotalAssets If true totalAssets is checked before and after updating the price router,
[codex:989565] 98:     *        If false totalAssets is only called after updating the price router.]
[codex:989565] 116:            uint256 assetsBefore = totalAssets();
[codex:989565] 125:        uint256 assetsAfter = totalAssets();
[codex:989565] 692:        _depositTo(_holdingPosition, _initialDeposit);
[codex:989565] 735:        _depositTo(holdingPosition, assets);
[codex:989565] 767:    function deposit(uint256 assets, address receiver) public override nonReentrant returns (uint256 shares) {
[codex:989565] 768:        // Use `_calculateTotalAssetsOrTotalAssetsWithdrawable` instead of totalAssets bc re-entrancy is already checked in this function.
[codex:989565] 769:        (uint256 _totalAssets, uint256 _totalSupply) = _getTotalAssetsAndTotalSupply(true);
[codex:989565] 772:        if ((shares = _convertToShares(assets, _totalAssets, _totalSupply)) == 0) revert Cellar__ZeroShares();
[codex:989565] 785:    function mint(uint256 shares, address receiver) public override nonReentrant returns (uint256 assets) {
[codex:989565] 786:        (uint256 _totalAssets, uint256 _totalSupply) = _getTotalAssetsAndTotalSupply(true);
[codex:989565] 789:        if ((assets = _previewMint(shares, _totalAssets, _totalSupply)) == 0) revert Cellar__ZeroAssets();
[codex:989565] 811:        _withdrawInOrder(assets, receiver);
[codex:989565] 830:    function withdraw(
[codex:989565] 835:        (uint256 _totalAssets, uint256 _totalSupply) = _getTotalAssetsAndTotalSupply(false);
[codex:989565] 838:        shares = _previewWithdraw(assets, _totalAssets, _totalSupply);
[codex:989565] 856:    function redeem(
[codex:989565] 861:        (uint256 _totalAssets, uint256 _totalSupply) = _getTotalAssetsAndTotalSupply(false);
[codex:989565] 864:        if ((assets = _convertToAssets(shares, _totalAssets, _totalSupply)) == 0) revert Cellar__ZeroAssets();
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Examining deposit and withdraw sections**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/Cellar.sol | sed -n '640,920p'" in /tmp/codex-multi-q9h4qu58 succeeded in 8ms:
[codex:989565]    640	
[codex:989565]    641	    /**
[codex:989565]    642	     * @notice Address of the platform's registry contract. Used to get the latest address of modules.
[codex:989565]    643	     */
[codex:989565]    644	    Registry public immutable registry;
[codex:989565]    645	
[codex:989565]    646	    /**
[codex:989565]    647	     * @dev Owner should be set to the Gravity Bridge, which relays instructions from the Steward
[codex:989565]    648	     *      module to the cellars.
[codex:989565]    649	     *      https://github.com/PeggyJV/steward
[codex:989565]    650	     *      https://github.com/cosmos/gravity-bridge/blob/main/solidity/contracts/Gravity.sol
[codex:989565]    651	     * @param _registry address of the platform's registry contract
[codex:989565]    652	     * @param _asset address of underlying token used for the for accounting, depositing, and withdrawing
[codex:989565]    653	     * @param _name name of this cellar's share token
[codex:989565]    654	     * @param _symbol symbol of this cellar's share token
[codex:989565]    655	     * @param _holdingPosition the holding position of the Cellar
[codex:989565]    656	     *        must use a position that does NOT call back to cellar on use(Like ERC20 positions).
[codex:989565]    657	     * @param _holdingPositionConfig configuration data for holding position
[codex:989565]    658	     * @param _initialDeposit initial amount of assets to deposit into the Cellar
[codex:989565]    659	     * @param _strategistPlatformCut platform cut to use
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/Cellar.sol | sed -n '920,1240p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]    920	            uint256 amount;
[codex:989565]    921	
[codex:989565]    922	            if (totalWithdrawableBalanceInAssets > assets) {
[codex:989565]    923	                // Convert assets into position asset.
[codex:989565]    924	                uint256 assetsInUSD = (PRECISION_MULTIPLIER * assets).mulDivDown(
[codex:989565]    925	                    pricingInfo.priceQuoteUSD,
[codex:989565]    926	                    pricingInfo.oneQuote
[codex:989565]    927	                );
[codex:989565]    928	                amount = assetsInUSD.mulDivDown(pricingInfo.oneBase, pricingInfo.priceBaseUSD);
[codex:989565]    929	                amount = amount / PRECISION_MULTIPLIER;
[codex:989565]    930	                assets = 0;
[codex:989565]    931	            } else {
[codex:989565]    932	                amount = withdrawableBalance;
[codex:989565]    933	                assets = assets - totalWithdrawableBalanceInAssets;
[codex:989565]    934	            }
[codex:989565]    935	
[codex:989565]    936	            // Withdraw from position.
[codex:989565]    937	            _withdrawFrom(position, amount, receiver);
[codex:989565]    938	
[codex:989565]    939	            // Stop if no more assets to withdraw.
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Analyzing security risks and contract functions**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "pause|shutdown|reentr|blockExternal|external receiver|fees|accru" contracts/src/base/Cellar.sol' in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 38:     * @notice Whether or not the contract is shutdown in case of an emergency.
[codex:989565] 50:    bool public blockExternalReceiver;
[codex:989565] 293:        // Make sure position is not paused and is trusted.
[codex:989565] 313:        // Make sure adaptor is not paused and is trusted.
[codex:989565] 482:     * @notice Data related to fees.
[codex:989565] 483:     * @param strategistPlatformCut Determines how much platform fees go to strategist.
[codex:989565] 485:     * @param platformFee The percentage of total assets accrued as platform fees over a year.
[codex:989565] 518:     * @notice Sets the Strategists cut of platform fees
[codex:989565] 544:     * @param isShutdown whether the cellar is shutdown
[codex:989565] 549:     * @notice Attempted action was prevented due to contract being shutdown.
[codex:989565] 554:     * @notice Attempted action was prevented due to contract not being shutdown.
[codex:989565] 559:     * @notice Attempted to interact with the cellar when it is paused.
[codex:989565] 564:     * @notice View function external contracts can use to see if the cellar is paused.
[codex:989565] 583:     * @notice Allows governance to choose whether or not to respect a pause.
[codex:989565] 591:     * @notice Prevent a function from being called during a shutdown.
[codex:989565] 1003:     * @dev EIP4626 states totalAssets needs to be inclusive of fees.
[codex:989565] 1004:     * Since performance fees mint shares, total assets remains unchanged,
[codex:989565] 1005:     * so this implementation is inclusive of fees even though it does not explicitly show it.
[codex:989565] 1110:     * @notice Returns the max amount withdrawable by a user inclusive of performance fees
[codex:989565] 1239:     * @notice Strategist attempted to use an adaptor that is either paused or is not trusted by governance.
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Inspecting fees and pause logic**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/Cellar.sol | sed -n '440,640p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]    440	        if (inDebtArray) {
[codex:989565]    441	            newPosition1 = debtPositions[index2];
[codex:989565]    442	            newPosition2 = debtPositions[index1];
[codex:989565]    443	            // Swap positions.
[codex:989565]    444	            (debtPositions[index1], debtPositions[index2]) = (newPosition1, newPosition2);
[codex:989565]    445	        } else {
[codex:989565]    446	            newPosition1 = creditPositions[index2];
[codex:989565]    447	            newPosition2 = creditPositions[index1];
[codex:989565]    448	            // Swap positions.
[codex:989565]    449	            (creditPositions[index1], creditPositions[index2]) = (newPosition1, newPosition2);
[codex:989565]    450	        }
[codex:989565]    451	
[codex:989565]    452	        emit PositionSwapped(newPosition1, newPosition2, index1, index2);
[codex:989565]    453	    }
[codex:989565]    454	
[codex:989565]    455	    // =============================================== FEES CONFIG ===============================================
[codex:989565]    456	
[codex:989565]    457	    /**
[codex:989565]    458	     * @notice Emitted when strategist platform fee cut is changed.
[codex:989565]    459	     * @param oldPlatformCut value strategist platform fee cut was changed from
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Continuing file review**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/Cellar.sol | sed -n '1240,1600p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]   1240	     * @param adaptor the adaptor address that is paused or not trusted.
[codex:989565]   1241	     */
[codex:989565]   1242	    error Cellar__CallToAdaptorNotAllowed(address adaptor);
[codex:989565]   1243	
[codex:989565]   1244	    /**
[codex:989565]   1245	     * @notice Stores the max possible rebalance deviation for this cellar.
[codex:989565]   1246	     */
[codex:989565]   1247	    uint64 public constant MAX_REBALANCE_DEVIATION = 0.1e18;
[codex:989565]   1248	
[codex:989565]   1249	    /**
[codex:989565]   1250	     * @notice The percent the total assets of a cellar may deviate during a `callOnAdaptor`(rebalance) call.
[codex:989565]   1251	     */
[codex:989565]   1252	    uint256 public allowedRebalanceDeviation = 0.0003e18;
[codex:989565]   1253	
[codex:989565]   1254	    /**
[codex:989565]   1255	     * @notice Allows governance to change this cellars rebalance deviation.
[codex:989565]   1256	     * @param newDeviation the new rebalance deviation value.
[codex:989565]   1257	     * @dev Callable by Sommelier Governance.
[codex:989565]   1258	     */
[codex:989565]   1259	    function setRebalanceDeviation(uint256 newDeviation) external onlyOwner {
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Investigating adaptor delegatecall mechanism**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/adaptors/BaseAdaptor.sol | sed -n '1,260p'" in /tmp/codex-multi-q9h4qu58 succeeded in 7ms:
[codex:989565]      1	// SPDX-License-Identifier: Apache-2.0
[codex:989565]      2	pragma solidity 0.8.21;
[codex:989565]      3	
[codex:989565]      4	import { Math } from "src/utils/Math.sol";
[codex:989565]      5	import { SafeTransferLib } from "@solmate/utils/SafeTransferLib.sol";
[codex:989565]      6	import { ERC20 } from "@solmate/tokens/ERC20.sol";
[codex:989565]      7	import { Registry } from "src/Registry.sol";
[codex:989565]      8	import { Cellar } from "src/base/Cellar.sol";
[codex:989565]      9	import { PriceRouter } from "src/modules/price-router/PriceRouter.sol";
[codex:989565]     10	
[codex:989565]     11	/**
[codex:989565]     12	 * @title Base Adaptor
[codex:989565]     13	 * @notice Base contract all adaptors must inherit from.
[codex:989565]     14	 * @dev Allows Cellars to interact with arbritrary DeFi assets and protocols.
[codex:989565]     15	 * @author crispymangoes
[codex:989565]     16	 */
[codex:989565]     17	abstract contract BaseAdaptor {
[codex:989565]     18	    using SafeTransferLib for ERC20;
[codex:989565]     19	    using Math for uint256;
[codex:989565]     20	
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Analyzing adaptor usage and checks**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "contract .*Adaptor" contracts/src/modules/adaptors' in /tmp/codex-multi-q9h4qu58 succeeded in 9ms:
[codex:989565] contracts/src/modules/adaptors/BaseAdaptor.sol:17:abstract contract BaseAdaptor {
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Inspecting additional adaptors**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/ERC4626SharePriceOracle.sol | sed -n '1,260p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]      1	// SPDX-License-Identifier: Apache-2.0
[codex:989565]      2	pragma solidity 0.8.21;
[codex:989565]      3	
[codex:989565]      4	import { ERC4626 } from "@solmate/mixins/ERC4626.sol";
[codex:989565]      5	import { Math } from "src/utils/Math.sol";
[codex:989565]      6	import { Owned } from "@solmate/auth/Owned.sol";
[codex:989565]      7	import { AutomationCompatibleInterface } from "@chainlink/contracts/src/v0.8/interfaces/AutomationCompatibleInterface.sol";
[codex:989565]      8	
[codex:989565]      9	contract ERC4626SharePriceOracle is AutomationCompatibleInterface {
[codex:989565]     10	    using Math for uint256;
[codex:989565]     11	
[codex:989565]     12	    // ========================================= STRUCTS =========================================
[codex:989565]     13	
[codex:989565]     14	    struct Observation {
[codex:989565]     15	        uint64 timestamp;
[codex:989565]     16	        uint192 cumulative;
[codex:989565]     17	    }
[codex:989565]     18	
[codex:989565]     19	    // ========================================= GLOBAL STATE =========================================
[codex:989565]     20	    /**
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Inspecting for vulnerabilities**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/ERC4626SharePriceOracle.sol | sed -n '260,620p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]    260	        // Make sure time is larger than previous time.
[codex:989565]    261	        if (currentTime <= currentObservation.timestamp) revert ERC4626SharePriceOracle__StalePerformData();
[codex:989565]    262	
[codex:989565]    263	        // Make sure time is not in the future.
[codex:989565]    264	        if (currentTime > block.timestamp) revert ERC4626SharePriceOracle__FuturePerformData();
[codex:989565]    265	
[codex:989565]    266	        // See if we are updating because of staleness.
[codex:989565]    267	        uint256 timeDelta = currentTime - currentObservation.timestamp;
[codex:989565]    268	        if (timeDelta >= heartbeat) upkeepConditionMet = true;
[codex:989565]    269	
[codex:989565]    270	        // Use the old answer to calculate cumulative.
[codex:989565]    271	        uint256 currentCumulative = currentObservation.cumulative + (_answer * timeDelta);
[codex:989565]    272	        if (currentCumulative > type(uint192).max) revert ERC4626SharePriceOracle__CumulativeTooLarge();
[codex:989565]    273	        currentObservation.cumulative = uint192(currentCumulative);
[codex:989565]    274	        currentObservation.timestamp = currentTime;
[codex:989565]    275	
[codex:989565]    276	        uint256 timeDeltaSincePreviousObservation = currentTime -
[codex:989565]    277	            observations[_getPreviousIndex(_currentIndex, _observationsLength)].timestamp;
[codex:989565]    278	        // See if we need to advance to the next cumulative.
[codex:989565]    279	        if (timeDeltaSincePreviousObservation >= heartbeat) {
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Analyzing potential risks in upkeep functions**
[codex:989565] 
[codex:989565] I'm reviewing how performUpkeep relies on offchain data and automationRegistry calls, noting the trust assumptions involved and recognizing possible manipulation if the registry is compromised, but overall seeing expected safeguards like kill switch checks and caller restrictions. I’m now shifting to examine related contracts like CellarWithOracle for broader context.
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/permutations/CellarWithOracle.sol | sed -n '1,260p'" in /tmp/codex-multi-q9h4qu58 succeeded in 5ms:
[codex:989565]      1	// SPDX-License-Identifier: Apache-2.0
[codex:989565]      2	pragma solidity 0.8.21;
[codex:989565]      3	
[codex:989565]      4	import { Cellar, Registry, ERC20, Math } from "src/base/Cellar.sol";
[codex:989565]      5	import { ERC4626SharePriceOracle } from "src/base/ERC4626SharePriceOracle.sol";
[codex:989565]      6	
[codex:989565]      7	contract CellarWithOracle is Cellar {
[codex:989565]      8	    using Math for uint256;
[codex:989565]      9	
[codex:989565]     10	    constructor(
[codex:989565]     11	        address _owner,
[codex:989565]     12	        Registry _registry,
[codex:989565]     13	        ERC20 _asset,
[codex:989565]     14	        string memory _name,
[codex:989565]     15	        string memory _symbol,
[codex:989565]     16	        uint32 _holdingPosition,
[codex:989565]     17	        bytes memory _holdingPositionConfig,
[codex:989565]     18	        uint256 _initialDeposit,
[codex:989565]     19	        uint64 _strategistPlatformCut,
[codex:989565]     20	        uint192 _shareSupplyCap
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Analyzing oracle-based asset valuation**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/permutations/CellarWithOracleWithBalancerFlashLoans.sol | sed -n '1,260p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]      1	// SPDX-License-Identifier: Apache-2.0
[codex:989565]      2	pragma solidity 0.8.21;
[codex:989565]      3	
[codex:989565]      4	import { Registry, ERC20, Math, SafeTransferLib } from "src/base/Cellar.sol";
[codex:989565]      5	import { IFlashLoanRecipient, IERC20 } from "@balancer/interfaces/contracts/vault/IFlashLoanRecipient.sol";
[codex:989565]      6	import { CellarWithOracle } from "src/base/permutations/CellarWithOracle.sol";
[codex:989565]      7	
[codex:989565]      8	import { ERC4626SharePriceOracle } from "src/base/ERC4626SharePriceOracle.sol";
[codex:989565]      9	
[codex:989565]     10	contract CellarWithOracleWithBalancerFlashLoans is CellarWithOracle, IFlashLoanRecipient {
[codex:989565]     11	    using Math for uint256;
[codex:989565]     12	    using SafeTransferLib for ERC20;
[codex:989565]     13	
[codex:989565]     14	    /**
[codex:989565]     15	     * @notice The Balancer Vault contract on current network.
[codex:989565]     16	     * @dev For mainnet use 0xBA12222222228d8Ba445958a75a0704d566BF2C8.
[codex:989565]     17	     */
[codex:989565]     18	    address public immutable balancerVault;
[codex:989565]     19	
[codex:989565]     20	    constructor(
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Analyzing flash loan reentrancy safeguards**
[codex:989565] 
[codex:989565] I'm carefully examining how receiveFlashLoan manages reentrancy given it lacks a nonReentrant modifier while relying on blockExternalReceiver as a guard. The interaction with callOnAdaptor's nonReentrant lock and delegatecall mechanics raises important questions about trust boundaries and potential exploit paths, so I'm breaking down the call flow and state checks to understand if any vulnerable scenarios exist—especially regarding adaptor control and balance validations prior to and after flash loans. Now, I’m shifting focus to inspect PriceRouter for related concerns with price feeds and data validation.
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '1,260p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]      1	// SPDX-License-Identifier: Apache-2.0
[codex:989565]      2	pragma solidity 0.8.21;
[codex:989565]      3	
[codex:989565]      4	import { SafeTransferLib } from "@solmate/utils/SafeTransferLib.sol";
[codex:989565]      5	import { ERC20 } from "@solmate/tokens/ERC20.sol";
[codex:989565]      6	import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
[codex:989565]      7	import { IChainlinkAggregator } from "src/interfaces/external/IChainlinkAggregator.sol";
[codex:989565]      8	import { SafeCast } from "@openzeppelin/contracts/utils/math/SafeCast.sol";
[codex:989565]      9	import { Math } from "src/utils/Math.sol";
[codex:989565]     10	import { Address } from "@openzeppelin/contracts/utils/Address.sol";
[codex:989565]     11	import { Extension } from "src/modules/price-router/Extensions/Extension.sol";
[codex:989565]     12	import { Registry } from "src/Registry.sol";
[codex:989565]     13	
[codex:989565]     14	import { UniswapV3Pool } from "src/interfaces/external/UniswapV3Pool.sol";
[codex:989565]     15	import { OracleLibrary } from "@uniswapV3P/libraries/OracleLibrary.sol";
[codex:989565]     16	
[codex:989565]     17	/**
[codex:989565]     18	 * @title Sommelier Price Router
[codex:989565]     19	 * @notice Provides a universal interface allowing Sommelier contracts to retrieve secure pricing
[codex:989565]     20	 *         data from Chainlink.
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Searching for price-related functions in PriceRouter**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "latestRoundData|answeredInRound|minAnswer|maxAnswer|decimals" contracts/src/modules/price-router/PriceRouter.sol' in /tmp/codex-multi-q9h4qu58 succeeded in 7ms:
[codex:989565] 364:        uint256 minAnswer = _expectedAnswer.mulWadDown((1e18 - EXPECTED_ANSWER_DEVIATION));
[codex:989565] 365:        uint256 maxAnswer = _expectedAnswer.mulWadDown((1e18 + EXPECTED_ANSWER_DEVIATION));
[codex:989565] 369:        if (answer < minAnswer || answer > maxAnswer) revert PriceRouter__BadAnswer(answer, _expectedAnswer);
[codex:989565] 385:     * @dev Returns price in USD with 8 decimals.
[codex:989565] 394:     * @dev Returns array of prices in USD with 8 decimals.
[codex:989565] 418:        value = _getValueInQuote(priceBaseUSD, priceQuoteUSD, baseAsset.decimals(), quoteAsset.decimals(), amount);
[codex:989565] 459:        exchangeRate = _getExchangeRate(baseAsset, baseSettings, quoteAsset, quoteSettings, quoteAsset.decimals());
[codex:989565] 472:        uint8 quoteAssetDecimals = quoteAsset.decimals();
[codex:989565] 520:     * @dev Returns price in USD with 8 decimals.
[codex:989565] 540:     * @param baseDecimals the base asset decimals
[codex:989565] 541:     * @param quoteDecimals the quote asset decimals
[codex:989565] 586:        uint8 quoteDecimals = quoteAsset.decimals();
[codex:989565] 603:                    baseAsset.decimals(),
[codex:989565] 653:        uint256 minFromChainklink = uint256(uint192(aggregator.minAnswer()));
[codex:989565] 654:        uint256 maxFromChainlink = uint256(uint192(aggregator.maxAnswer()));
[codex:989565] 694:        (, int256 _price, , uint256 _timestamp, ) = aggregator.latestRoundData();
[codex:989565] 760:     * @param baseDecimals the base assets decimals
[codex:989565] 761:     * @param quoteDecimals the quote assets decimals
[codex:989565] 808:            parameters.baseDecimals = _asset.decimals();
[codex:989565] 809:            parameters.quoteDecimals = token1.decimals();
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Analyzing Chainlink Data Validation and Reentrancy Risks**
[codex:989565] 
[codex:989565] I'm going through Chainlink usage, focusing on whether they properly check answeredInRound to avoid stale data and how they handle timestamps. I'm also reviewing PriceRouter's external calls, especially delegatecalls to adaptors, to assess potential reentrancy or access control vulnerabilities. I'm examining multicall's interaction with reentrancy guards and verifying assumptions about trusted adaptors and oracle manipulation risks to prepare a thorough vulnerability assessment.
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/interfaces/external/IChainlinkAggregator.sol | sed -n '1,200p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]      1	// SPDX-License-Identifier: Apache-2.0
[codex:989565]      2	pragma solidity 0.8.21;
[codex:989565]      3	
[codex:989565]      4	import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol";
[codex:989565]      5	
[codex:989565]      6	interface IChainlinkAggregator is AggregatorV2V3Interface {
[codex:989565]      7	    function maxAnswer() external view returns (int192);
[codex:989565]      8	
[codex:989565]      9	    function minAnswer() external view returns (int192);
[codex:989565]     10	
[codex:989565]     11	    function aggregator() external view returns (address);
[codex:989565]     12	}
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Analyzing Chainlink price feed assumptions**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/Extensions/Extension.sol | sed -n '1,200p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]      1	// SPDX-License-Identifier: Apache-2.0
[codex:989565]      2	pragma solidity 0.8.21;
[codex:989565]      3	
[codex:989565]      4	import { ERC20 } from "@solmate/tokens/ERC20.sol";
[codex:989565]      5	import { PriceRouter } from "src/modules/price-router/PriceRouter.sol";
[codex:989565]      6	import { Math } from "src/utils/Math.sol";
[codex:989565]      7	
[codex:989565]      8	/**
[codex:989565]      9	 * @title Sommelier Price Router Extension abstract contract.
[codex:989565]     10	 * @notice Provides shared logic between Extensions.
[codex:989565]     11	 * @author crispymangoes
[codex:989565]     12	 */
[codex:989565]     13	abstract contract Extension {
[codex:989565]     14	    /**
[codex:989565]     15	     * @notice Attempted to call a function only callable by the price router.
[codex:989565]     16	     */
[codex:989565]     17	    error Extension__OnlyPriceRouter();
[codex:989565]     18	
[codex:989565]     19	    /**
[codex:989565]     20	     * @notice Prevents non price router contracts from calling a function.
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Analyzing access control in Registry and PriceRouter**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "startEditAsset|completeEditAsset|cancel|edit" contracts/src/modules/price-router/PriceRouter.sol' in /tmp/codex-multi-q9h4qu58 succeeded in 8ms:
[codex:989565] 35:        bytes32 editHash,
[codex:989565] 39:    event EditAssetCancelled(address asset, bytes32 editHash);
[codex:989565] 41:    event EditAssetComplete(address asset, bytes32 editHash);
[codex:989565] 76:     * @notice Emitted when an ownership transition is cancelled.
[codex:989565] 101:     * @notice Attempted to cancel or complete a transition when one is not active.
[codex:989565] 138:     * @notice Allows Zero Id address to cancel an ongoing owner transition.
[codex:989565] 140:    function cancelTransition() external {
[codex:989565] 198:     * @notice Attempted to edit an asset that is not supported.
[codex:989565] 203:     * @notice Attempted to edit an asset that is not editable.
[codex:989565] 208:     * @notice Attempted to cancel the editing of an asset that is not pending edit.
[codex:989565] 235:     * @notice The amount of time that must pass between owner calling `startEditAsset`, and `completeEditAsset`.
[codex:989565] 240:     * @notice Stores the timestamp when an asset can be editted.
[codex:989565] 269:     * @notice Allows owner to start the edit asset process.
[codex:989565] 270:     * @dev Saves a hash of the inputs, and maps it to the timestamp when `_asset` is editable.
[codex:989565] 271:     * @param _asset the asset to edit in the pricing router
[codex:989565] 276:    function startEditAsset(ERC20 _asset, AssetSettings memory _settings, bytes memory _storage) external onlyOwner {
[codex:989565] 279:        bytes32 editHash = keccak256(abi.encode(_asset, _settings, _storage));
[codex:989565] 282:        assetEditableTimestamp[editHash] = assetEditableAt;
[codex:989565] 284:        emit IntentToEditAsset(address(_asset), _settings, _storage, editHash, assetEditableAt);
[codex:989565] 288:     * @notice Once `EDIT_ASSET_DELAY` has passed, `_asset` is now editable using the
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Inspecting derivative-setting functions**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '250,420p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]    250	     *        @dev The `derivative` value in settings MUST be non zero.
[codex:989565]    251	     * @param _storage arbitrary bytes data used to configure `_asset` pricing
[codex:989565]    252	     * @param _expectedAnswer the expected answer for the asset from  `_getPriceInUSD`
[codex:989565]    253	     */
[codex:989565]    254	    function addAsset(
[codex:989565]    255	        ERC20 _asset,
[codex:989565]    256	        AssetSettings memory _settings,
[codex:989565]    257	        bytes memory _storage,
[codex:989565]    258	        uint256 _expectedAnswer
[codex:989565]    259	    ) external onlyOwner {
[codex:989565]    260	        // Check that asset is not already added.
[codex:989565]    261	        if (getAssetSettings[_asset].derivative > 0) revert PriceRouter__AssetAlreadyAdded(address(_asset));
[codex:989565]    262	
[codex:989565]    263	        _updateAsset(_asset, _settings, _storage, _expectedAnswer);
[codex:989565]    264	
[codex:989565]    265	        emit AddAsset(address(_asset));
[codex:989565]    266	    }
[codex:989565]    267	
[codex:989565]    268	    /**
[codex:989565]    269	     * @notice Allows owner to start the edit asset process.
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Reviewing price retrieval functions**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '420,780p'" in /tmp/codex-multi-q9h4qu58 succeeded in 7ms:
[codex:989565]    420	
[codex:989565]    421	    /**
[codex:989565]    422	     * @notice Helper function that compares `_getValues` between input 0 and input 1.
[codex:989565]    423	     */
[codex:989565]    424	    function getValuesDelta(
[codex:989565]    425	        ERC20[] calldata baseAssets0,
[codex:989565]    426	        uint256[] calldata amounts0,
[codex:989565]    427	        ERC20[] calldata baseAssets1,
[codex:989565]    428	        uint256[] calldata amounts1,
[codex:989565]    429	        ERC20 quoteAsset
[codex:989565]    430	    ) external view returns (uint256) {
[codex:989565]    431	        uint256 value0 = _getValues(baseAssets0, amounts0, quoteAsset);
[codex:989565]    432	        uint256 value1 = _getValues(baseAssets1, amounts1, quoteAsset);
[codex:989565]    433	        return value0 - value1;
[codex:989565]    434	    }
[codex:989565]    435	
[codex:989565]    436	    /**
[codex:989565]    437	     * @notice Helper function that determines the value of assets using `_getValues`.
[codex:989565]    438	     */
[codex:989565]    439	    function getValues(
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Reviewing TWAP usage until end**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '780,1040p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]    780	
[codex:989565]    781	    /**
[codex:989565]    782	     * @notice Returns Twap Derivative Storage
[codex:989565]    783	     */
[codex:989565]    784	    mapping(ERC20 => TwapDerivativeStorage) public getTwapDerivativeStorage;
[codex:989565]    785	
[codex:989565]    786	    /**
[codex:989565]    787	     * @notice The smallest possible TWAP that can be used.
[codex:989565]    788	     */
[codex:989565]    789	    uint32 public constant MINIMUM_SECONDS_AGO = 900;
[codex:989565]    790	
[codex:989565]    791	    /**
[codex:989565]    792	     * @notice Setup function for pricing Twap derivative assets.
[codex:989565]    793	     * @dev Make sure that TWAP assets have sufficient observations, and increase them if not before adding.
[codex:989565]    794	     * @dev _source The address of the Uniswap V3 pool.
[codex:989565]    795	     * @dev _storage A TwapDerivativeStorage value defining valid prices.
[codex:989565]    796	     */
[codex:989565]    797	    function _setupPriceForTwapDerivative(ERC20 _asset, address _source, bytes memory _storage) internal {
[codex:989565]    798	        TwapDerivativeStorage memory parameters = abi.decode(_storage, (TwapDerivativeStorage));
[codex:989565]    799	
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Analyzing underflow and oracle manipulation risks**
[codex:989565] exec
[codex:989565] /bin/bash -lc "rg -n \"approvedForDepositOnBehalf|depositOnBehalf|onBehalf\" -g'*.sol' contracts/src" in /tmp/codex-multi-q9h4qu58 succeeded in 9ms:
[codex:989565] contracts/src/Registry.sol:47:    mapping(address => bool) public approvedForDepositOnBehalf;
[codex:989565] contracts/src/Registry.sol:53:        approvedForDepositOnBehalf[depositor] = state;
[codex:989565] 
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Analyzing potential smart contract issues and risks**
[codex:989565] thinking
[codex:989565] **Evaluating contract logic and edge cases for vulnerabilities**
[codex:989565] 
[codex:989565] I'll carefully weigh multiple subtle logic and arithmetic edge cases across contracts, focusing on oracle data freshness, arithmetic underflows causing operation halts, delegatecall risks with adaptors, and governance-controlled state variables. I want to highlight potential oracle manipulation via stale Chainlink rounds, deposit/withdraw blocking from underflows, and nuanced access controls tied to adaptor calls and owner transitions. Let’s see if these findings align well for a concise security summary!
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "OwnerTransitionStarted|transitionOwner" contracts/src/Registry.sol' in /tmp/codex-multi-q9h4qu58 succeeded in 7ms:
[codex:989565] 122:    event OwnerTransitionStarted(address newOwner, uint256 startTime);
[codex:989565] 177:    function transitionOwner(address newOwner) external {
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/Registry.sol | sed -n '160,230p'" in /tmp/codex-multi-q9h4qu58 succeeded in 5ms:
[codex:989565]    160	     * @notice The amount of time it takes for an ownership transition to work.
[codex:989565]    161	     */
[codex:989565]    162	    uint256 public constant TRANSITION_PERIOD = 7 days;
[codex:989565]    163	
[codex:989565]    164	    /**
[codex:989565]    165	     * @notice The Pending Owner, that becomes the owner after the transition period, and they call `completeTransition`.
[codex:989565]    166	     */
[codex:989565]    167	    address public pendingOwner;
[codex:989565]    168	
[codex:989565]    169	    /**
[codex:989565]    170	     * @notice The starting time stamp of the transition.
[codex:989565]    171	     */
[codex:989565]    172	    uint256 public transitionStart;
[codex:989565]    173	
[codex:989565]    174	    /**
[codex:989565]    175	     * @notice Allows Zero Id address to set a new owner, after the transition period is up.
[codex:989565]    176	     */
[codex:989565]    177	    function transitionOwner(address newOwner) external {
[codex:989565]    178	        if (msg.sender != getAddress[0]) revert Registry__OnlyCallableByZeroId();
[codex:989565]    179	        if (pendingOwner != address(0)) revert Registry__TransitionPending();
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Checking event emission in PriceRouter**
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "OwnerTransitionStarted|transitionOwner" contracts/src/modules/price-router/PriceRouter.sol' in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565] 73:    event OwnerTransitionStarted(address newOwner, uint256 startTime);
[codex:989565] 128:    function transitionOwner(address newOwner) external {
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '120,170p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]    120	    /**
[codex:989565]    121	     * @notice The starting time stamp of the transition.
[codex:989565]    122	     */
[codex:989565]    123	    uint256 public transitionStart;
[codex:989565]    124	
[codex:989565]    125	    /**
[codex:989565]    126	     * @notice Allows Zero Id address to set a new owner, after the transition period is up.
[codex:989565]    127	     */
[codex:989565]    128	    function transitionOwner(address newOwner) external {
[codex:989565]    129	        if (msg.sender != registry.getAddress(0)) revert PriceRouter__OnlyCallableByZeroId();
[codex:989565]    130	        if (pendingOwner != address(0)) revert PriceRouter__TransitionPending();
[codex:989565]    131	        if (newOwner == address(0)) revert PriceRouter__NewOwnerCanNotBeZero();
[codex:989565]    132	
[codex:989565]    133	        pendingOwner = newOwner;
[codex:989565]    134	        transitionStart = block.timestamp;
[codex:989565]    135	    }
[codex:989565]    136	
[codex:989565]    137	    /**
[codex:989565]    138	     * @notice Allows Zero Id address to cancel an ongoing owner transition.
[codex:989565]    139	     */
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Analyzing potential smart contract vulnerabilities**
[codex:989565] 
[codex:989565] I'm carefully reviewing multiple contracts for possible issues like reentrancy, unchecked external calls, underflow, stale oracle data, and access control gaps, focusing on specific functions that might allow DoS, freezing of user funds, or oracle manipulation. There is a lot to consider about how state updates, price feeds, and ownership transitions interact and where logic might lead to transaction reverts or security risks. Let's explore these details thoroughly!
[codex:989565] exec
[codex:989565] /bin/bash -lc 'rg -n "delegatecall|functionDelegateCall" contracts/src' in /tmp/codex-multi-q9h4qu58 succeeded in 10ms:
[codex:989565] contracts/src/modules/adaptors/BaseAdaptor.sol:94:    // All mutative Base functions will be called using delegatecall.
[codex:989565] contracts/src/modules/adaptors/BaseAdaptor.sol:162:    // All strategist functions will be called using delegatecall.
[codex:989565] contracts/src/base/Cellar.sol:71:        for (uint256 i = 0; i < data.length; i++) address(this).functionDelegateCall(data[i]);
[codex:989565] contracts/src/base/Cellar.sol:1293:                adaptor.functionDelegateCall(data[i].callData[j]);
[codex:989565] contracts/src/base/Cellar.sol:1415:        adaptor.functionDelegateCall(
[codex:989565] contracts/src/base/Cellar.sol:1433:        adaptor.functionDelegateCall(
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Analyzing potential multicall and contract issues**
[codex:989565] 
[codex:989565] I'm exploring whether the multicall delegatecall to self might bypass the reentrancy guard by resetting the locked storage variable, but it seems that each call starts with locked false, so reentrancy is prevented. I'm checking if multicall can call internal functions or owner-only functions; internal ones lack accessible selectors, so no. I also note multicall is external but deposit/withdraw enforce pause/shutdown checks internally, so no immediate bypass there. Then, I identify specific issues to report, such as a missing Chainlink `answeredInRound` check, an underflow risk in `getValuesDelta` causing possible DoS, and configuration risks around `sharePriceOracle` and stale timestamps in oracle updates. I’m aligning line numbers and file paths for precise findings and preparing recommendations accordingly.
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '420,450p'" in /tmp/codex-multi-q9h4qu58 succeeded in 7ms:
[codex:989565]    420	
[codex:989565]    421	    /**
[codex:989565]    422	     * @notice Helper function that compares `_getValues` between input 0 and input 1.
[codex:989565]    423	     */
[codex:989565]    424	    function getValuesDelta(
[codex:989565]    425	        ERC20[] calldata baseAssets0,
[codex:989565]    426	        uint256[] calldata amounts0,
[codex:989565]    427	        ERC20[] calldata baseAssets1,
[codex:989565]    428	        uint256[] calldata amounts1,
[codex:989565]    429	        ERC20 quoteAsset
[codex:989565]    430	    ) external view returns (uint256) {
[codex:989565]    431	        uint256 value0 = _getValues(baseAssets0, amounts0, quoteAsset);
[codex:989565]    432	        uint256 value1 = _getValues(baseAssets1, amounts1, quoteAsset);
[codex:989565]    433	        return value0 - value1;
[codex:989565]    434	    }
[codex:989565]    435	
[codex:989565]    436	    /**
[codex:989565]    437	     * @notice Helper function that determines the value of assets using `_getValues`.
[codex:989565]    438	     */
[codex:989565]    439	    function getValues(
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Noting specific code lines**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/modules/price-router/PriceRouter.sol | sed -n '686,706p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]    686	    }
[codex:989565]    687	
[codex:989565]    688	    /**
[codex:989565]    689	     * @notice Get the price of a Chainlink derivative in terms of USD.
[codex:989565]    690	     */
[codex:989565]    691	    function _getPriceForChainlinkDerivative(ERC20 _asset, address _source) internal view returns (uint256) {
[codex:989565]    692	        ChainlinkDerivativeStorage memory parameters = getChainlinkDerivativeStorage[_asset];
[codex:989565]    693	        IChainlinkAggregator aggregator = IChainlinkAggregator(_source);
[codex:989565]    694	        (, int256 _price, , uint256 _timestamp, ) = aggregator.latestRoundData();
[codex:989565]    695	        uint256 price = _price.toUint256();
[codex:989565]    696	        _checkPriceFeed(address(_asset), price, _timestamp, parameters.max, parameters.min, parameters.heartbeat);
[codex:989565]    697	        // If price is in ETH, then convert price into USD.
[codex:989565]    698	        if (parameters.inETH) {
[codex:989565]    699	            uint256 _ethToUsd = _getPriceInUSD(WETH, getAssetSettings[WETH]);
[codex:989565]    700	            price = price.mulWadDown(_ethToUsd);
[codex:989565]    701	        }
[codex:989565]    702	        return price;
[codex:989565]    703	    }
[codex:989565]    704	
[codex:989565]    705	    /**
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Inspecting totalAssets calculation references**
[codex:989565] exec
[codex:989565] /bin/bash -lc "nl -ba contracts/src/base/Cellar.sol | sed -n '960,1005p'" in /tmp/codex-multi-q9h4qu58 succeeded in 6ms:
[codex:989565]    960	
[codex:989565]    961	    /**
[codex:989565]    962	     * @notice Internal accounting function that can report total assets, or total assets withdrawable.
[codex:989565]    963	     * @param reportWithdrawable if true, then the withdrawable total assets is reported,
[codex:989565]    964	     *                           if false, then the total assets is reported
[codex:989565]    965	     */
[codex:989565]    966	    function _calculateTotalAssetsOrTotalAssetsWithdrawable(
[codex:989565]    967	        bool reportWithdrawable
[codex:989565]    968	    ) internal view returns (uint256 assets) {
[codex:989565]    969	        uint256 numOfCreditPositions = creditPositions.length;
[codex:989565]    970	        ERC20[] memory creditAssets = new ERC20[](numOfCreditPositions);
[codex:989565]    971	        uint256[] memory creditBalances = new uint256[](numOfCreditPositions);
[codex:989565]    972	        // If we just need the withdrawable, then query credit array value.
[codex:989565]    973	        if (reportWithdrawable) {
[codex:989565]    974	            for (uint256 i; i < numOfCreditPositions; ++i) {
[codex:989565]    975	                uint32 position = creditPositions[i];
[codex:989565]    976	                // If the withdrawable balance is zero there is no point to query the asset since a zero balance has zero value.
[codex:989565]    977	                if ((creditBalances[i] = _withdrawableFrom(position)) == 0) continue;
[codex:989565]    978	                creditAssets[i] = _assetOf(position);
[codex:989565]    979	            }
[codex:989565] 
[codex:989565] thinking
[codex:989565] **Summarizing audit findings and crafting JSON**
[codex:989565] 
[codex:989565] I’m organizing the detailed audit observations into two main findings about underflow causing DoS on totalAssets and Chainlink round validation gaps, framing them with severity, categories, exploit scenarios, and recommendations, then preparing the JSON output per schema.
[codex:989565] codex
[codex:989565] {"no_findings":false,"summary":"Found 2 issues: a debt/credit underflow can DoS totalAssets-based flows, and Chainlink round completeness is not validated.","findings":[{"severity":"medium","category":"math","title":"Debt > credit underflow can brick totalAssets and withdrawals","exploit_scenario":"If a debt position’s priced value exceeds credit positions (e.g., due to oracle manipulation or rapid market moves), `getValuesDelta` underflows and reverts. Because `Cellar` relies on this for `totalAssets`, deposits/withdrawals and rebalances that call `totalAssets` or `_getTotalAssetsAndTotalSupply` will revert, freezing user exits until prices normalize.","recommendation":"Handle negative net value explicitly instead of unchecked subtraction. Use signed math or clamp at zero (e.g., return 0 if debt > credit), or add a controlled insolvency path that still allows withdrawals rather than reverting all accounting.","evidence":"`PriceRouter.getValuesDelta` returns `value0 - value1` without guarding against underflow; `Cellar._calculateTotalAssetsOrTotalAssetsWithdrawable` uses it to compute total assets.","locations":["contracts/src/modules/price-router/PriceRouter.sol:424","contracts/src/modules/price-router/PriceRouter.sol:431","contracts/src/base/Cellar.sol:966","contracts/src/base/Cellar.sol:997"]},{"severity":"low","category":"oracle","title":"Chainlink answeredInRound not checked in price fetch","exploit_scenario":"If a Chainlink feed starts a new round but hasn’t answered yet, `latestRoundData` can return the previous round’s answer with `answeredInRound < roundId`. Because this check is omitted, the contract may accept stale prices as long as `updatedAt` is within the heartbeat, allowing users to act on outdated pricing during volatility.","recommendation":"Read `roundId` and `answeredInRound` from `latestRoundData` and require `answeredInRound >= roundId` and `updatedAt != 0` before accepting the price.","evidence":"`_getPriceForChainlinkDerivative` only uses `(, _price, , _timestamp, ) = latestRoundData()` and ignores `answeredInRound`/`roundId`.","locations":["contracts/src/modules/price-router/PriceRouter.sol:691","contracts/src/modules/price-router/PriceRouter.sol:694"]}]}
[codex:989565] tokens used
[codex:989565] 180,372
[codex:989565] {"no_findings":false,"summary":"Found 2 issues: a debt/credit underflow can DoS totalAssets-based flows, and Chainlink round completeness is not validated.","findings":[{"severity":"medium","category":"math","title":"Debt > credit underflow can brick totalAssets and withdrawals","exploit_scenario":"If a debt position’s priced value exceeds credit positions (e.g., due to oracle manipulation or rapid market moves), `getValuesDelta` underflows and reverts. Because `Cellar` relies on this for `totalAssets`, deposits/withdrawals and rebalances that call `totalAssets` or `_getTotalAssetsAndTotalSupply` will revert, freezing user exits until prices normalize.","recommendation":"Handle negative net value explicitly instead of unchecked subtraction. Use signed math or clamp at zero (e.g., return 0 if debt > credit), or add a controlled insolvency path that still allows withdrawals rather than reverting all accounting.","evidence":"`PriceRouter.getValuesDelta` returns `value0 - value1` without guarding against underflow; `Cellar._calculateTotalAssetsOrTotalAssetsWithdrawable` uses it to compute total assets.","locations":["contracts/src/modules/price-router/PriceRouter.sol:424","contracts/src/modules/price-router/PriceRouter.sol:431","contracts/src/base/Cellar.sol:966","contracts/src/base/Cellar.sol:997"]},{"severity":"low","category":"oracle","title":"Chainlink answeredInRound not checked in price fetch","exploit_scenario":"If a Chainlink feed starts a new round but hasn’t answered yet, `latestRoundData` can return the previous round’s answer with `answeredInRound < roundId`. Because this check is omitted, the contract may accept stale prices as long as `updatedAt` is within the heartbeat, allowing users to act on outdated pricing during volatility.","recommendation":"Read `roundId` and `answeredInRound` from `latestRoundData` and require `answeredInRound >= roundId` and `updatedAt != 0` before accepting the price.","evidence":"`_getPriceForChainlinkDerivative` only uses `(, _price, , _timestamp, ) = latestRoundData()` and ignores `answeredInRound`/`roundId`.","locations":["contracts/src/modules/price-router/PriceRouter.sol:691","contracts/src/modules/price-router/PriceRouter.sol:694"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T18:07:17.848047+00:00",
        "returncode": 0
    },
    "summary": "Found 2 issues: a debt/credit underflow can DoS totalAssets-based flows, and Chainlink round completeness is not validated.",
    "raw_final": {
        "summary": "Found 2 issues: a debt/credit underflow can DoS totalAssets-based flows, and Chainlink round completeness is not validated.",
        "findings": [
            {
                "title": "Debt > credit underflow can brick totalAssets and withdrawals",
                "category": "math",
                "evidence": "`PriceRouter.getValuesDelta` returns `value0 - value1` without guarding against underflow; `Cellar._calculateTotalAssetsOrTotalAssetsWithdrawable` uses it to compute total assets.",
                "severity": "medium",
                "locations": [
                    "contracts/src/modules/price-router/PriceRouter.sol:424",
                    "contracts/src/modules/price-router/PriceRouter.sol:431",
                    "contracts/src/base/Cellar.sol:966",
                    "contracts/src/base/Cellar.sol:997"
                ],
                "recommendation": "Handle negative net value explicitly instead of unchecked subtraction. Use signed math or clamp at zero (e.g., return 0 if debt > credit), or add a controlled insolvency path that still allows withdrawals rather than reverting all accounting.",
                "exploit_scenario": "If a debt position\u2019s priced value exceeds credit positions (e.g., due to oracle manipulation or rapid market moves), `getValuesDelta` underflows and reverts. Because `Cellar` relies on this for `totalAssets`, deposits/withdrawals and rebalances that call `totalAssets` or `_getTotalAssetsAndTotalSupply` will revert, freezing user exits until prices normalize."
            },
            {
                "title": "Chainlink answeredInRound not checked in price fetch",
                "category": "oracle",
                "evidence": "`_getPriceForChainlinkDerivative` only uses `(, _price, , _timestamp, ) = latestRoundData()` and ignores `answeredInRound`/`roundId`.",
                "severity": "low",
                "locations": [
                    "contracts/src/modules/price-router/PriceRouter.sol:691",
                    "contracts/src/modules/price-router/PriceRouter.sol:694"
                ],
                "recommendation": "Read `roundId` and `answeredInRound` from `latestRoundData` and require `answeredInRound >= roundId` and `updatedAt != 0` before accepting the price.",
                "exploit_scenario": "If a Chainlink feed starts a new round but hasn\u2019t answered yet, `latestRoundData` can return the previous round\u2019s answer with `answeredInRound < roundId`. Because this check is omitted, the contract may accept stale prices as long as `updatedAt` is within the heartbeat, allowing users to act on outdated pricing during volatility."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
1
Selfdestruct
0
CREATE2
3
CALL-family (heavy)
23
EXT*/BALANCE
3
Total opcodes
15827
Flags
delegatecall_present create_opcodes_present call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x04b7
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x8da5cb5b
00000026: GT
00000027: PUSH2 0x0278
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xc588d8d6
00000031: GT
00000032: PUSH2 0x015c
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xd7d4bf45
0000003c: GT
0000003d: PUSH2 0x00ce
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xeef33eca
00000047: GT
00000048: PUSH2 0x0092
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xeef33eca
00000052: EQ
00000053: PUSH2 0x0bd2
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xef8b30f7
0000005d: EQ
0000005e: PUSH2 0x0a30
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xf04f2707
00000068: EQ
00000069: PUSH2 0x0be1
0000006c: JUMPI
0000006d: DUP1
0000006e: PUSH4 0xf2fde38b
00000073: EQ
00000074: PUSH2 0x0bf4
00000077: JUMPI
00000078: DUP1
00000079: PUSH4 0xf5743bc9
0000007e: EQ
0000007f: PUSH2 0x0c07
00000082: JUMPI
00000083: DUP1
00000084: PUSH4 0xf7b24e08
00000089: EQ
0000008a: PUSH2 0x0c1a
0000008d: JUMPI
0000008e: PUSH1 0x00
00000090: DUP1
00000091: REVERT
00000092: JUMPDEST
00000093: DUP1
00000094: PUSH4 0xd7d4bf45
00000099: EQ
0000009a: PUSH2 0x0af9
0000009d: JUMPI
0000009e: DUP1
0000009f: PUSH4 0xd905777e
000000a4: EQ
000000a5: PUSH2 0x0b0c
000000a8: JUMPI
000000a9: DUP1
000000aa: PUSH4 0xdd62ed3e
000000af: EQ
000000b0: PUSH2 0x0b1f
000000b3: JUMPI
000000b4: DUP1
000000b5: PUSH4 0xe1b1acb7
000000ba: EQ
000000bb: PUSH2 0x0b4a
000000be: JUMPI
000000bf: DUP1
000000c0: PUSH4 0xe753e600
000000c5: EQ
000000c6: PUSH2 0x0b5d
000000c9: JUMPI
000000ca: PUSH1 0x00
000000cc: DUP1
000000cd: REVERT
000000ce: JUMPDEST
000000cf: DUP1
000000d0: PUSH4 0xcd82f8b1
000000d5: GT
000000d6: PUSH2 0x0120
000000d9: JUMPI
000000da: DUP1
000000db: PUSH4 0xcd82f8b1
000000e0: EQ
000000e1: PUSH2 0x0a79
000000e4: JUMPI
000000e5: DUP1
000000e6: PUSH4 0xce96cb77
000000eb: EQ
000000ec: PUSH2 0x0a81
000000ef: JUMPI
000000f0: DUP1
000000f1: PUSH4 0xcf309012
000000f6: EQ
000000f7: PUSH2 0x0a94
000000fa: JUMPI
000000fb: DUP1
000000fc: PUSH4 0xd1e88404
00000101: EQ
00000102: PUSH2 0x0aa8
00000105: JUMPI
00000106: DUP1
00000107: PUSH4 0xd446bbcc
0000010c: EQ
0000010d: PUSH2 0x0abb
00000110: JUMPI
00000111: DUP1
00000112: PUSH4 0xd505accf
00000117: EQ
00000118: PUSH2 0x0ae6
0000011b: JUMPI
0000011c: PUSH1 0x00
0000011e: DUP1
0000011f: REVERT
00000120: JUMPDEST
00000121: DUP1
00000122: PUSH4 0xc588d8d6
00000127: EQ
00000128: PUSH2 0x0a0a
0000012b: JUMPI
0000012c: DUP1
0000012d: PUSH4 0xc63d75b6
00000132: EQ
00000133: PUSH2 0x0a1d
00000136: JUMPI
00000137: DUP1
00000138: PUSH4 0xc6e6f592
0000013d: EQ
0000013e: PUSH2 0x0a30
00000141: JUMPI
00000142: DUP1
00000143: PUSH4 0xc8e81950
00000148: EQ
00000149: PUSH2 0x0a43
0000014c: JUMPI
0000014d: DUP1
0000014e: PUSH4 0xcbdf33d0
00000153: EQ
00000154: PUSH2 0x0a56
00000157: JUMPI
00000158: PUSH1 0x00
0000015a: DUP1
0000015b: REVERT
0000015c: JUMPDEST
0000015d: DUP1
0000015e: PUSH4 0xa9059cbb
00000163: GT
00000164: PUSH2 0x01f5
00000167: JUMPI
00000168: DUP1
00000169: PUSH4 0xb3d7f6b9
0000016e: GT
0000016f: PUSH2 0x01b9
00000172: JUMPI
00000173: DUP1
00000174: PUSH4 0xb3d7f6b9
00000179: EQ
0000017a: PUSH2 0x09a1
0000017d: JUMPI
0000017e: DUP1
0000017f: PUSH4 0xb460af94
00000184: EQ
00000185: PUSH2 0x09b4
00000188: JUMPI
00000189: DUP1
0000018a: PUSH4 0xb5292a99
0000018f: EQ
00000190: PUSH2 0x09c7
00000193: JUMPI
00000194: DUP1
00000195: PUSH4 0xba087652
0000019a: EQ
0000019b: PUSH2 0x09da
0000019e: JUMPI
0000019f: DUP1
000001a0: PUSH4 0xbf86d690
000001a5: EQ
000001a6: PUSH2 0x09ed
000001a9: JUMPI
000001aa: DUP1
000001ab: PUSH4 0xc244245a
000001b0: EQ
000001b1: PUSH2 0x0a01
000001b4: JUMPI
000001b5: PUSH1 0x00
000001b7: DUP1
000001b8: REVERT
000001b9: JUMPDEST
000001ba: DUP1
000001bb: PUSH4 0xa9059cbb
000001c0: EQ
000001c1: PUSH2 0x094d
000001c4: JUMPI
000001c5: DUP1
000001c6: PUSH4 0xac9650d8
000001cb: EQ
000001cc: PUSH2 0x0960
000001cf: JUMPI
000001d0: DUP1
000001d1: PUSH4 0xb0646e27
000001d6: EQ
000001d7: PUSH2 0x0973
000001da: JUMPI
000001db: DUP1
000001dc: PUSH4 0xb0a75d36
000001e1: EQ
000001e2: PUSH2 0x0986
000001e5: JUMPI
000001e6: DUP1
000001e7: PUSH4 0xb187bd26
000001ec: EQ
000001ed: PUSH2 0x0999
000001f0: JUMPI
000001f1: PUSH1 0x00
000001f3: DUP1
000001f4: REVERT
000001f5: JUMPDEST
000001f6: DUP1
000001f7: PUSH4 0x9959af94
000001fc: GT
000001fd: PUSH2 0x023c
00000200: JUMPI
00000201: DUP1
00000202: PUSH4 0x9959af94
00000207: EQ
00000208: PUSH2 0x08ff
0000020b: JUMPI
0000020c: DUP1
0000020d: PUSH4 0x9c5f00c2
00000212: EQ
00000213: PUSH2 0x0913
00000216: JUMPI
00000217: DUP1
00000218: PUSH4 0xa07bee0b
0000021d: EQ
0000021e: PUSH2 0x092a
00000221: JUMPI
00000222: DUP1
00000223: PUSH4 0xa373e3ff
00000228: EQ
00000229: PUSH2 0x093d
0000022c: JUMPI
0000022d: DUP1
0000022e: PUSH4 0xa8144e48
00000233: EQ
00000234: PUSH2 0x0945
00000237: JUMPI
00000238: PUSH1 0x00
0000023a: DUP1
0000023b: REVERT
0000023c: JUMPDEST
0000023d: DUP1
0000023e: PUSH4 0x8da5cb5b
00000243: EQ
00000244: PUSH2 0x089b
00000247: JUMPI
00000248: DUP1
00000249: PUSH4 0x93bbeac0
0000024e: EQ
0000024f: PUSH2 0x08ae
00000252: JUMPI
00000253: DUP1
00000254: PUSH4 0x94bf804d
00000259: EQ
0000025a: PUSH2 0x08d1
0000025d: JUMPI
0000025e: DUP1
0000025f: PUSH4 0x95d89b41
00000264: EQ
00000265: PUSH2 0x08e4
00000268: JUMPI
00000269: DUP1
0000026a: PUSH4 0x9955a9d4
0000026f: EQ
00000270: PUSH2 0x08ec
00000273: JUMPI
00000274: PUSH1 0x00
00000276: DUP1
00000277: REVERT
00000278: JUMPDEST
00000279: DUP1
0000027a: PUSH4 0x3e3382ba
0000027f: GT
00000280: PUSH2 0x039f
00000283: JUMPI
00000284: DUP1
00000285: PUSH4 0x5e2c576e
0000028a: GT
0000028b: PUSH2 0x031c
0000028e: JUMPI
0000028f: DUP1
00000290: PUSH4 0x71e99dc2
00000295: GT
00000296: PUSH2 0x02e0
00000299: JUMPI
0000029a: DUP1
0000029b: PUSH4 0x71e99dc2
000002a0: EQ
000002a1: PUSH2 0x07ff
000002a4: JUMPI
000002a5: DUP1
000002a6: PUSH4 0x7384504f
000002ab: EQ
000002ac: PUSH2 0x0807
000002af: JUMPI
000002b0: DUP1
000002b1: PUSH4 0x78e0233e
000002b6: EQ
000002b7: PUSH2 0x082a
000002ba: JUMPI
000002bb: DUP1
000002bc: PUSH4 0x7b103999
000002c1: EQ
000002c2: PUSH2 0x0841
000002c5: JUMPI
000002c6: DUP1
000002c7: PUSH4 0x7ecebe00
000002cc: EQ
000002cd: PUSH2 0x0868
000002d0: JUMPI
000002d1: DUP1
000002d2: PUSH4 0x88c4caba
000002d7: EQ
000002d8: PUSH2 0x0888
000002db: JUMPI
000002dc: PUSH1 0x00
000002de: DUP1
000002df: REVERT
000002e0: JUMPDEST
000002e1: DUP1
000002e2: PUSH4 0x5e2c576e
000002e7: EQ
000002e8: PUSH2 0x07a2
000002eb: JUMPI
000002ec: DUP1
000002ed: PUSH4 0x5f6b88a0
000002f2: EQ
000002f3: PUSH2 0x07aa
000002f6: JUMPI
000002f7: DUP1
000002f8: PUSH4 0x6e553f65
000002fd: EQ
000002fe: PUSH2 0x07bd
00000301: JUMPI
00000302: DUP1
00000303: PUSH4 0x6ff1c02a
00000308: EQ
00000309: PUSH2 0x07d0
0000030c: JUMPI
0000030d: DUP1
0000030e: PUSH4 0x70a08231
00000313: EQ
00000314: PUSH2 0x07df
00000317: JUMPI
00000318: PUSH1 0x00
0000031a: DUP1
0000031b: REVERT
0000031c: JUMPDEST
0000031d: DUP1
0000031e: PUSH4 0x501eb4fe
00000323: GT
00000324: PUSH2 0x0363
00000327: JUMPI
00000328: DUP1
00000329: PUSH4 0x501eb4fe
0000032e: EQ
0000032f: PUSH2 0x0739
00000332: JUMPI
00000333: DUP1
00000334: PUSH4 0x530a3714
00000339: EQ
0000033a: PUSH2 0x074c
0000033d: JUMPI
0000033e: DUP1
0000033f: PUSH4 0x575bbce6
00000344: EQ
00000345: PUSH2 0x075f
00000348: JUMPI
00000349: DUP1
0000034a: PUSH4 0x59d20b4e
0000034f: EQ
00000350: PUSH2 0x0772
00000353: JUMPI
00000354: DUP1
00000355: PUSH4 0x5a400d25
0000035a: EQ
0000035b: PUSH2 0x079a
0000035e: JUMPI
0000035f: PUSH1 0x00
00000361: DUP1
00000362: REVERT
00000363: JUMPDEST
00000364: DUP1
00000365: PUSH4 0x3e3382ba
0000036a: EQ
0000036b: PUSH2 0x06ea
0000036e: JUMPI
0000036f: DUP1
00000370: PUSH4 0x402d267d
00000375: EQ
00000376: PUSH2 0x06ff
00000379: JUMPI
0000037a: DUP1
0000037b: PUSH4 0x4c4602da
00000380: EQ
00000381: PUSH2 0x0712
00000384: JUMPI
00000385: DUP1
00000386: PUSH4 0x4cdad506
0000038b: EQ
0000038c: PUSH2 0x0501
0000038f: JUMPI
00000390: DUP1
00000391: PUSH4 0x4e84befe
00000396: EQ
00000397: PUSH2 0x0726
0000039a: JUMPI
0000039b: PUSH1 0x00
0000039d: DUP1
0000039e: REVERT
0000039f: JUMPDEST
000003a0: DUP1
000003a1: PUSH4 0x18d4c143
000003a6: GT
000003a7: PUSH2 0x0438
000003aa: JUMPI
000003ab: DUP1
000003ac: PUSH4 0x33e15be2
000003b1: GT
000003b2: PUSH2 0x03fc
000003b5: JUMPI
000003b6: DUP1
000003b7: PUSH4 0x33e15be2
000003bc: EQ
000003bd: PUSH2 0x065b
000003c0: JUMPI
000003c1: DUP1
000003c2: PUSH4 0x3644e515
000003c7: EQ
000003c8: PUSH2 0x066e
000003cb: JUMPI
000003cc: DUP1
000003cd: PUSH4 0x379e0b13
000003d2: EQ
000003d3: PUSH2 0x0676
000003d6: JUMPI
000003d7: DUP1
000003d8: PUSH4 0x38d52e0f
000003dd: EQ
000003de: PUSH2 0x0689
000003e1: JUMPI
000003e2: DUP1
000003e3: PUSH4 0x3998a681
000003e8: EQ
000003e9: PUSH2 0x06b0
000003ec: JUMPI
000003ed: DUP1
000003ee: PUSH4 0x3d8ab1e5
000003f3: EQ
000003f4: PUSH2 0x06d7
000003f7: JUMPI
000003f8: PUSH1 0x00
000003fa: DUP1
000003fb: REVERT
000003fc: JUMPDEST
000003fd: DUP1
000003fe: PUSH4 0x18d4c143
00000403: EQ
00000404: PUSH2 0x05d1
00000407: JUMPI
00000408: DUP1
00000409: PUSH4 0x196e8285
0000040e: EQ
0000040f: PUSH2 0x05f4
00000412: JUMPI
00000413: DUP1
00000414: PUSH4 0x1ea15502
00000419: EQ
0000041a: PUSH2 0x0607
0000041d: JUMPI
0000041e: DUP1
0000041f: PUSH4 0x23b872dd
00000424: EQ
00000425: PUSH2 0x0621
00000428: JUMPI
00000429: DUP1
0000042a: PUSH4 0x313ce567
0000042f: EQ
00000430: PUSH2 0x0634
00000433: JUMPI
00000434: PUSH1 0x00
00000436: DUP1
00000437: REVERT
00000438: JUMPDEST
00000439: DUP1
0000043a: PUSH4 0x0a28a477
0000043f: GT
00000440: PUSH2 0x047f
00000443: JUMPI
00000444: DUP1
00000445: PUSH4 0x0a28a477
0000044a: EQ
0000044b: PUSH2 0x0537
0000044e: JUMPI
0000044f: DUP1
00000450: PUSH4 0x0a680e18
00000455: EQ
00000456: PUSH2 0x054a
00000459: JUMPI
0000045a: DUP1
0000045b: PUSH4 0x150b7a02
00000460: EQ
00000461: PUSH2 0x0552
00000464: JUMPI
00000465: DUP1
00000466: PUSH4 0x158274a5
0000046b: EQ
0000046c: PUSH2 0x0589
0000046f: JUMPI
00000470: DUP1
00000471: PUSH4 0x18160ddd
00000476: EQ
00000477: PUSH2 0x05c8
0000047a: JUMPI
0000047b: PUSH1 0x00
0000047d: DUP1
0000047e: REVERT
0000047f: JUMPDEST
00000480: DUP1
00000481: PUSH4 0x01e1d114
00000486: EQ
00000487: PUSH2 0x04bc
0000048a: JUMPI
0000048b: DUP1
0000048c: PUSH4 0x06fdde03
00000491: EQ
00000492: PUSH2 0x04d7
00000495: JUMPI
00000496: DUP1
00000497: PUSH4 0x0780fd3a
0000049c: EQ
0000049d: PUSH2 0x04ec
000004a0: JUMPI
000004a1: DUP1
000004a2: PUSH4 0x07a2d13a
000004a7: EQ
000004a8: PUSH2 0x0501
000004ab: JUMPI
000004ac: DUP1
000004ad: PUSH4 0x095ea7b3
000004b2: EQ
000004b3: PUSH2 0x0514
000004b6: JUMPI
000004b7: JUMPDEST
000004b8: PUSH1 0x00
000004ba: DUP1
000004bb: REVERT
000004bc: JUMPDEST
000004bd: PUSH2 0x04c4
000004c0: PUSH2 0x0c22
000004c3: JUMP
000004c4: JUMPDEST
000004c5: PUSH1 0x40
000004c7: MLOAD
000004c8: SWAP1
000004c9: DUP2
000004ca: MSTORE
000004cb: PUSH1 0x20
000004cd: ADD
000004ce: JUMPDEST
000004cf: PUSH1 0x40
000004d1: MLOAD
000004d2: DUP1
000004d3: SWAP2
000004d4: SUB
000004d5: SWAP1
000004d6: RETURN
000004d7: JUMPDEST
000004d8: PUSH2 0x04df
000004db: PUSH2 0x0c6e
000004de: JUMP
000004df: JUMPDEST
000004e0: PUSH1 0x40
000004e2: MLOAD
000004e3: PUSH2 0x04ce
000004e6: SWAP2
000004e7: SWAP1
000004e8: PUSH2 0x4e44
000004eb: JUMP
000004ec: JUMPDEST
000004ed: PUSH2 0x04ff
000004f0: PUSH2 0x04fa
000004f3: CALLDATASIZE
000004f4: PUSH1 0x04
000004f6: PUSH2 0x4e70
000004f9: JUMP
000004fa: JUMPDEST
000004fb: PUSH2 0x0cfc
000004fe: JUMP
000004ff: JUMPDEST
00000500: STOP
00000501: JUMPDEST
00000502: PUSH2 0x04c4
00000505: PUSH2 0x050f
00000508: CALLDATASIZE
00000509: PUSH1 0x04
0000050b: PUSH2 0x4e8b
0000050e: JUMP
0000050f: JUMPDEST
00000510: PUSH2 0x0e67
00000513: JUMP
00000514: JUMPDEST
00000515: PUSH2 0x0527
00000518: PUSH2 0x0522
0000051b: CALLDATASIZE
0000051c: PUSH1 0x04
0000051e: PUSH2 0x4eb9
00000521: JUMP
00000522: JUMPDEST
00000523: PUSH2 0x0e8d
00000526: JUMP
00000527: JUMPDEST
00000528: PUSH1 0x40
0000052a: MLOAD
0000052b: SWAP1
0000052c: ISZERO
0000052d: ISZERO
0000052e: DUP2
0000052f: MSTORE
00000530: PUSH1 0x20
00000532: ADD
00000533: PUSH2 0x04ce
00000536: JUMP
00000537: JUMPDEST
00000538: PUSH2 0x04c4
0000053b: PUSH2 0x0545
0000053e: CALLDATASIZE
0000053f: PUSH1 0x04
00000541: PUSH2 0x4e8b
00000544: JUMP
00000545: JUMPDEST
00000546: PUSH2 0x0efa
00000549: JUMP
0000054a: JUMPDEST
0000054b: PUSH2 0x04ff
0000054e: PUSH2 0x0f18
00000551: JUMP
00000552: JUMPDEST
00000553: PUSH2 0x0570
00000556: PUSH2 0x0560
00000559: CALLDATASIZE
0000055a: PUSH1 0x04
0000055c: PUSH2 0x4fd0
0000055f: JUMP
00000560: JUMPDEST
00000561: PUSH4 0x0a85bd01
00000566: PUSH1 0xe1
00000568: SHL
00000569: SWAP5
0000056a: SWAP4
0000056b: POP
0000056c: POP
0000056d: POP
0000056e: POP
0000056f: JUMP
00000570: JUMPDEST
00000571: PUSH1 0x40
00000573: MLOAD
00000574: PUSH1 0x01
00000576: PUSH1 0x01
00000578: PUSH1 0xe0
0000057a: SHL
0000057b: SUB
0000057c: NOT
0000057d: SWAP1
0000057e: SWAP2
0000057f: AND
00000580: DUP2
00000581: MSTORE
00000582: PUSH1 0x20
00000584: ADD
00000585: PUSH2 0x04ce
00000588: JUMP
00000589: JUMPDEST
0000058a: PUSH2 0x05b0
0000058d: PUSH32 0x000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8
000005ae: DUP2
000005af: JUMP
000005b0: JUMPDEST
000005b1: PUSH1 0x40
000005b3: MLOAD
000005b4: PUSH1 0x01
000005b6: PUSH1 0x01
000005b8: PUSH1 0xa0
000005ba: SHL
000005bb: SUB
000005bc: SWAP1
000005bd: SWAP2
000005be: AND
000005bf: DUP2
000005c0: MSTORE
000005c1: PUSH1 0x20
000005c3: ADD
000005c4: PUSH2 0x04ce
000005c7: JUMP
000005c8: JUMPDEST
000005c9: PUSH2 0x04c4
000005cc: PUSH1 0x02
000005ce: SLOAD
000005cf: DUP2
000005d0: JUMP
000005d1: JUMPDEST
000005d2: PUSH2 0x0527
000005d5: PUSH2 0x05df
000005d8: CALLDATASIZE
000005d9: PUSH1 0x04
000005db: PUSH2 0x503b
000005de: JUMP
000005df: JUMPDEST
000005e0: PUSH1 0x0e
000005e2: PUSH1 0x20
000005e4: MSTORE
000005e5: PUSH1 0x00
000005e7: SWAP1
000005e8: DUP2
000005e9: MSTORE
000005ea: PUSH1 0x40
000005ec: SWAP1
000005ed: KECCAK256
000005ee: SLOAD
000005ef: PUSH1 0xff
000005f1: AND
000005f2: DUP2
000005f3: JUMP
000005f4: JUMPDEST
000005f5: PUSH1 0x13
000005f7: SLOAD
000005f8: PUSH2 0x05b0
000005fb: SWAP1
000005fc: PUSH1 0x01
000005fe: PUSH1 0x01
00000600: PUSH1 0xa0
00000602: SHL
00000603: SUB
00000604: AND
00000605: DUP2
00000606: JUMP
00000607: JUMPDEST
00000608: PUSH2 0x060f
0000060b: PUSH1 0x12
0000060d: DUP2
0000060e: JUMP
0000060f: JUMPDEST
00000610: PUSH1 0x40
00000612: MLOAD
00000613: PUSH1 0xff
00000615: SWAP1
00000616: SWAP2
00000617: AND
00000618: DUP2
00000619: MSTORE
0000061a: PUSH1 0x20
0000061c: ADD
0000061d: PUSH2 0x04ce
00000620: JUMP
00000621: JUMPDEST
00000622: PUSH2 0x0527
00000625: PUSH2 0x062f
00000628: CALLDATASIZE
00000629: PUSH1 0x04
0000062b: PUSH2 0x5058
0000062e: JUMP
0000062f: JUMPDEST
00000630: PUSH2 0x0f94
00000633: JUMP
00000634: JUMPDEST
00000635: PUSH2 0x060f
00000638: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000012
00000659: DUP2
0000065a: JUMP
0000065b: JUMPDEST
0000065c: PUSH2 0x04ff
0000065f: PUSH2 0x0669
00000662: CALLDATASIZE
00000663: PUSH1 0x04
00000665: PUSH2 0x50a7
00000668: JUMP
00000669: JUMPDEST
0000066a: PUSH2 0x1074
0000066d: JUMP
0000066e: JUMPDEST
0000066f: PUSH2 0x04c4
00000672: PUSH2 0x1177
00000675: JUMP
00000676: JUMPDEST
00000677: PUSH2 0x04ff
0000067a: PUSH2 0x0684
0000067d: CALLDATASIZE
0000067e: PUSH1 0x04
00000680: PUSH2 0x50de
00000683: JUMP
00000684: JUMPDEST
00000685: PUSH2 0x11cd
00000688: JUMP
00000689: JUMPDEST
0000068a: PUSH2 0x05b0
0000068d: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
000006ae: DUP2
000006af: JUMP
000006b0: JUMPDEST
000006b1: PUSH2 0x06bf
000006b4: PUSH8 0x02c68af0bb140000
000006bd: DUP2
000006be: JUMP
000006bf: JUMPDEST
000006c0: PUSH1 0x40
000006c2: MLOAD
000006c3: PUSH1 0x01
000006c5: PUSH1 0x01
000006c7: PUSH1 0x40
000006c9: SHL
000006ca: SUB
000006cb: SWAP1
000006cc: SWAP2
000006cd: AND
000006ce: DUP2
000006cf: MSTORE
000006d0: PUSH1 0x20
000006d2: ADD
000006d3: PUSH2 0x04ce
000006d6: JUMP
000006d7: JUMPDEST
000006d8: PUSH2 0x04ff
000006db: PUSH2 0x06e5
000006de: CALLDATASIZE
000006df: PUSH1 0x04
000006e1: PUSH2 0x503b
000006e4: JUMP
000006e5: JUMPDEST
000006e6: PUSH2 0x14a5
000006e9: JUMP
000006ea: JUMPDEST
000006eb: PUSH2 0x06f2
000006ee: PUSH2 0x15aa
000006f1: JUMP
000006f2: JUMPDEST
000006f3: PUSH1 0x40
000006f5: MLOAD
000006f6: PUSH2 0x04ce
000006f9: SWAP2
000006fa: SWAP1
000006fb: PUSH2 0x5125
000006fe: JUMP
000006ff: JUMPDEST
00000700: PUSH2 0x04c4
00000703: PUSH2 0x070d
00000706: CALLDATASIZE
00000707: PUSH1 0x04
00000709: PUSH2 0x503b
0000070c: JUMP
0000070d: JUMPDEST
0000070e: PUSH2 0x162e
00000711: JUMP
00000712: JUMPDEST
00000713: PUSH1 0x06
00000715: SLOAD
00000716: PUSH2 0x0527
00000719: SWAP1
0000071a: PUSH1 0x01
0000071c: PUSH1 0xb8
0000071e: SHL
0000071f: SWAP1
00000720: DIV
00000721: PUSH1 0xff
00000723: AND
00000724: DUP2
00000725: JUMP
00000726: JUMPDEST
00000727: PUSH2 0x04ff
0000072a: PUSH2 0x0734
0000072d: CALLDATASIZE
0000072e: PUSH1 0x04
00000730: PUSH2 0x51ba
00000733: JUMP
00000734: JUMPDEST
00000735: PUSH2 0x16d0
00000738: JUMP
00000739: JUMPDEST
0000073a: PUSH2 0x04ff
0000073d: PUSH2 0x0747
00000740: CALLDATASIZE
00000741: PUSH1 0x04
00000743: PUSH2 0x4e70
00000746: JUMP
00000747: JUMPDEST
00000748: PUSH2 0x1875
0000074b: JUMP
0000074c: JUMPDEST
0000074d: PUSH2 0x04ff
00000750: PUSH2 0x075a
00000753: CALLDATASIZE
00000754: PUSH1 0x04
00000756: PUSH2 0x4e8b
00000759: JUMP
0000075a: JUMPDEST
0000075b: PUSH2 0x1974
0000075e: JUMP
0000075f: JUMPDEST
00000760: PUSH2 0x04ff
00000763: PUSH2 0x076d
00000766: CALLDATASIZE
00000767: PUSH1 0x04
00000769: PUSH2 0x51fb
0000076c: JUMP
0000076d: JUMPDEST
0000076e: PUSH2 0x1a1e
00000771: JUMP
00000772: JUMPDEST
00000773: PUSH2 0x0785
00000776: PUSH2 0x0780
00000779: CALLDATASIZE
0000077a: PUSH1 0x04
0000077c: PUSH2 0x4e8b
0000077f: JUMP
00000780: JUMPDEST
00000781: PUSH2 0x1a9a
00000784: JUMP
00000785: JUMPDEST
00000786: PUSH1 0x40
00000788: MLOAD
00000789: PUSH4 0xffffffff
0000078e: SWAP1
0000078f: SWAP2
00000790: AND
00000791: DUP2
00000792: MSTORE
00000793: PUSH1 0x20
00000795: ADD
00000796: PUSH2 0x04ce
00000799: JUMP
0000079a: JUMPDEST
0000079b: PUSH2 0x04c4
0000079e: PUSH1 0x02
000007a0: DUP2
000007a1: JUMP
000007a2: JUMPDEST
000007a3: PUSH2 0x04ff
000007a6: PUSH2 0x1ad4
000007a9: JUMP
000007aa: JUMPDEST
000007ab: PUSH2 0x04ff
000007ae: PUSH2 0x07b8
000007b1: CALLDATASIZE
000007b2: PUSH1 0x04
000007b4: PUSH2 0x503b
000007b7: JUMP
000007b8: JUMPDEST
000007b9: PUSH2 0x1b66
000007bc: JUMP
000007bd: JUMPDEST
000007be: PUSH2 0x04c4
000007c1: PUSH2 0x07cb
000007c4: CALLDATASIZE
000007c5: PUSH1 0x04
000007c7: PUSH2 0x5224
000007ca: JUMP
000007cb: JUMPDEST
000007cc: PUSH2 0x1be7
000007cf: JUMP
000007d0: JUMPDEST
000007d1: PUSH2 0x06bf
000007d4: PUSH8 0x016345785d8a0000
000007dd: DUP2
000007de: JUMP
000007df: JUMPDEST
000007e0: PUSH2 0x04c4
000007e3: PUSH2 0x07ed
000007e6: CALLDATASIZE
000007e7: PUSH1 0x04
000007e9: PUSH2 0x503b
000007ec: JUMP
000007ed: JUMPDEST
000007ee: PUSH1 0x03
000007f0: PUSH1 0x20
000007f2: MSTORE
000007f3: PUSH1 0x00
000007f5: SWAP1
000007f6: DUP2
000007f7: MSTORE
000007f8: PUSH1 0x40
000007fa: SWAP1
000007fb: KECCAK256
000007fc: SLOAD
000007fd: DUP2
000007fe: JUMP
000007ff: JUMPDEST
00000800: PUSH2 0x06f2
00000803: PUSH2 0x1cbb
00000806: JUMP
00000807: JUMPDEST
00000808: PUSH2 0x081a
0000080b: PUSH2 0x0815
0000080e: CALLDATASIZE
0000080f: PUSH1 0x04
00000811: PUSH2 0x4e70
00000814: JUMP
00000815: JUMPDEST
00000816: PUSH2 0x1d18
00000819: JUMP
0000081a: JUMPDEST
0000081b: PUSH1 0x40
0000081d: MLOAD
0000081e: PUSH2 0x04ce
00000821: SWAP5
00000822: SWAP4
00000823: SWAP3
00000824: SWAP2
00000825: SWAP1
00000826: PUSH2 0x5249
00000829: JUMP
0000082a: JUMPDEST
0000082b: PUSH2 0x0832
0000082e: PUSH2 0x1e61
00000831: JUMP
00000832: JUMPDEST
00000833: PUSH1 0x40
00000835: MLOAD
00000836: PUSH2 0x04ce
00000839: SWAP4
0000083a: SWAP3
0000083b: SWAP2
0000083c: SWAP1
0000083d: PUSH2 0x5306
00000840: JUMP
00000841: JUMPDEST
00000842: PUSH2 0x05b0
00000845: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476
00000866: DUP2
00000867: JUMP
00000868: JUMPDEST
00000869: PUSH2 0x04c4
0000086c: PUSH2 0x0876
0000086f: CALLDATASIZE
00000870: PUSH1 0x04
00000872: PUSH2 0x503b
00000875: JUMP
00000876: JUMPDEST
00000877: PUSH1 0x05
00000879: PUSH1 0x20
0000087b: MSTORE
0000087c: PUSH1 0x00
0000087e: SWAP1
0000087f: DUP2
00000880: MSTORE
00000881: PUSH1 0x40
00000883: SWAP1
00000884: KECCAK256
00000885: SLOAD
00000886: DUP2
00000887: JUMP
00000888: JUMPDEST
00000889: PUSH1 0x11
0000088b: SLOAD
0000088c: PUSH2 0x05b0
0000088f: SWAP1
00000890: PUSH1 0x01
00000892: PUSH1 0x01
00000894: PUSH1 0xa0
00000896: SHL
00000897: SUB
00000898: AND
00000899: DUP2
0000089a: JUMP
0000089b: JUMPDEST
0000089c: PUSH1 0x06
0000089e: SLOAD
0000089f: PUSH2 0x05b0
000008a2: SWAP1
000008a3: PUSH1 0x01
000008a5: PUSH1 0x01
000008a7: PUSH1 0xa0
000008a9: SHL
000008aa: SUB
000008ab: AND
000008ac: DUP2
000008ad: JUMP
000008ae: JUMPDEST
000008af: PUSH2 0x0527
000008b2: PUSH2 0x08bc
000008b5: CALLDATASIZE
000008b6: PUSH1 0x04
000008b8: PUSH2 0x4e8b
000008bb: JUMP
000008bc: JUMPDEST
000008bd: PUSH1 0x0b
000008bf: PUSH1 0x20
000008c1: MSTORE
000008c2: PUSH1 0x00
000008c4: SWAP1
000008c5: DUP2
000008c6: MSTORE
000008c7: PUSH1 0x40
000008c9: SWAP1
000008ca: KECCAK256
000008cb: SLOAD
000008cc: PUSH1 0xff
000008ce: AND
000008cf: DUP2
000008d0: JUMP
000008d1: JUMPDEST
000008d2: PUSH2 0x04c4
000008d5: PUSH2 0x08df
000008d8: CALLDATASIZE
000008d9: PUSH1 0x04
000008db: PUSH2 0x5224
000008de: JUMP
000008df: JUMPDEST
000008e0: PUSH2 0x2152
000008e3: JUMP
000008e4: JUMPDEST
000008e5: PUSH2 0x04df
000008e8: PUSH2 0x2211
000008eb: JUMP
000008ec: JUMPDEST
000008ed: PUSH2 0x04ff
000008f0: PUSH2 0x08fa
000008f3: CALLDATASIZE
000008f4: PUSH1 0x04
000008f6: PUSH2 0x5371
000008f9: JUMP
000008fa: JUMPDEST
000008fb: PUSH2 0x221e
000008fe: JUMP
000008ff: JUMPDEST
00000900: PUSH1 0x06
00000902: SLOAD
00000903: PUSH2 0x0527
00000906: SWAP1
00000907: PUSH1 0x01
00000909: PUSH1 0xb0
0000090b: SHL
0000090c: SWAP1
0000090d: DIV
0000090e: PUSH1 0xff
00000910: AND
00000911: DUP2
00000912: JUMP
00000913: JUMPDEST
00000914: PUSH1 0x06
00000916: SLOAD
00000917: PUSH2 0x0785
0000091a: SWAP1
0000091b: PUSH1 0x01
0000091d: PUSH1 0xc0
0000091f: SHL
00000920: SWAP1
00000921: DIV
00000922: PUSH4 0xffffffff
00000927: AND
00000928: DUP2
00000929: JUMP
0000092a: JUMPDEST
0000092b: PUSH2 0x04ff
0000092e: PUSH2 0x0938
00000931: CALLDATASIZE
00000932: PUSH1 0x04
00000934: PUSH2 0x50de
00000937: JUMP
00000938: JUMPDEST
00000939: PUSH2 0x250f
0000093c: JUMP
0000093d: JUMPDEST
0000093e: PUSH2 0x04ff
00000941: PUSH2 0x2693
00000944: JUMP
00000945: JUMPDEST
00000946: PUSH2 0x04c4
00000949: PUSH2 0x26f6
0000094c: JUMP
0000094d: JUMPDEST
0000094e: PUSH2 0x0527
00000951: PUSH2 0x095b
00000954: CALLDATASIZE
00000955: PUSH1 0x04
00000957: PUSH2 0x4eb9
0000095a: JUMP
0000095b: JUMPDEST
0000095c: PUSH2 0x2734
0000095f: JUMP
00000960: JUMPDEST
00000961: PUSH2 0x04ff
00000964: PUSH2 0x096e
00000967: CALLDATASIZE
00000968: PUSH1 0x04
0000096a: PUSH2 0x51ba
0000096d: JUMP
0000096e: JUMPDEST
0000096f: PUSH2 0x279a
00000972: JUMP
00000973: JUMPDEST
00000974: PUSH2 0x04ff
00000977: PUSH2 0x0981
0000097a: CALLDATASIZE
0000097b: PUSH1 0x04
0000097d: PUSH2 0x51fb
00000980: JUMP
00000981: JUMPDEST
00000982: PUSH2 0x2821
00000985: JUMP
00000986: JUMPDEST
00000987: PUSH2 0x04ff
0000098a: PUSH2 0x0994
0000098d: CALLDATASIZE
0000098e: PUSH1 0x04
00000990: PUSH2 0x503b
00000993: JUMP
00000994: JUMPDEST
00000995: PUSH2 0x287b
00000998: JUMP
00000999: JUMPDEST
0000099a: PUSH2 0x0527
0000099d: PUSH2 0x290e
000009a0: JUMP
000009a1: JUMPDEST
000009a2: PUSH2 0x04c4
000009a5: PUSH2 0x09af
000009a8: CALLDATASIZE
000009a9: PUSH1 0x04
000009ab: PUSH2 0x4e8b
000009ae: JUMP
000009af: JUMPDEST
000009b0: PUSH2 0x29b0
000009b3: JUMP
000009b4: JUMPDEST
000009b5: PUSH2 0x04c4
000009b8: PUSH2 0x09c2
000009bb: CALLDATASIZE
000009bc: PUSH1 0x04
000009be: PUSH2 0x53e1
000009c1: JUMP
000009c2: JUMPDEST
000009c3: PUSH2 0x29ce
000009c6: JUMP
000009c7: JUMPDEST
000009c8: PUSH2 0x04ff
000009cb: PUSH2 0x09d5
000009ce: CALLDATASIZE
000009cf: PUSH1 0x04
000009d1: PUSH2 0x5418
000009d4: JUMP
000009d5: JUMPDEST
000009d6: PUSH2 0x2a4d
000009d9: JUMP
000009da: JUMPDEST
000009db: PUSH2 0x04c4
000009de: PUSH2 0x09e8
000009e1: CALLDATASIZE
000009e2: PUSH1 0x04
000009e4: PUSH2 0x53e1
000009e7: JUMP
000009e8: JUMPDEST
000009e9: PUSH2 0x2b13
000009ec: JUMP
000009ed: JUMPDEST
000009ee: PUSH1 0x06
000009f0: SLOAD
000009f1: PUSH2 0x0527
000009f4: SWAP1
000009f5: PUSH1 0x01
000009f7: PUSH1 0xa8
000009f9: SHL
000009fa: SWAP1
000009fb: DIV
000009fc: PUSH1 0xff
000009fe: AND
000009ff: DUP2
00000a00: JUMP
00000a01: JUMPDEST
00000a02: PUSH2 0x04c4
00000a05: PUSH1 0x12
00000a07: SLOAD
00000a08: DUP2
00000a09: JUMP
00000a0a: JUMPDEST
00000a0b: PUSH2 0x04ff
00000a0e: PUSH2 0x0a18
00000a11: CALLDATASIZE
00000a12: PUSH1 0x04
00000a14: PUSH2 0x5441
00000a17: JUMP
00000a18: JUMPDEST
00000a19: PUSH2 0x2b9d
00000a1c: JUMP
00000a1d: JUMPDEST
00000a1e: PUSH2 0x04c4
00000a21: PUSH2 0x0a2b
00000a24: CALLDATASIZE
00000a25: PUSH1 0x04
00000a27: PUSH2 0x503b
00000a2a: JUMP
00000a2b: JUMPDEST
00000a2c: PUSH2 0x2c8a
00000a2f: JUMP
00000a30: JUMPDEST
00000a31: PUSH2 0x04c4
00000a34: PUSH2 0x0a3e
00000a37: CALLDATASIZE
00000a38: PUSH1 0x04
00000a3a: PUSH2 0x4e8b
00000a3d: JUMP
00000a3e: JUMPDEST
00000a3f: PUSH2 0x2d02
00000a42: JUMP
00000a43: JUMPDEST
00000a44: PUSH2 0x04ff
00000a47: PUSH2 0x0a51
00000a4a: CALLDATASIZE
00000a4b: PUSH1 0x04
00000a4d: PUSH2 0x5224
00000a50: JUMP
00000a51: JUMPDEST
00000a52: PUSH2 0x2d20
00000a55: JUMP
00000a56: JUMPDEST
00000a57: PUSH2 0x0527
00000a5a: PUSH2 0x0a64
00000a5d: CALLDATASIZE
00000a5e: PUSH1 0x04
00000a60: PUSH2 0x4e70
00000a63: JUMP
00000a64: JUMPDEST
00000a65: PUSH1 0x0d
00000a67: PUSH1 0x20
00000a69: MSTORE
00000a6a: PUSH1 0x00
00000a6c: SWAP1
00000a6d: DUP2
00000a6e: MSTORE
00000a6f: PUSH1 0x40
00000a71: SWAP1
00000a72: KECCAK256
00000a73: SLOAD
00000a74: PUSH1 0xff
00000a76: AND
00000a77: DUP2
00000a78: JUMP
00000a79: JUMPDEST
00000a7a: PUSH2 0x04c4
00000a7d: PUSH1 0x00
00000a7f: DUP2
00000a80: JUMP
00000a81: JUMPDEST
00000a82: PUSH2 0x04c4
00000a85: PUSH2 0x0a8f
00000a88: CALLDATASIZE
00000a89: PUSH1 0x04
00000a8b: PUSH2 0x503b
00000a8e: JUMP
00000a8f: JUMPDEST
00000a90: PUSH2 0x2da2
00000a93: JUMP
00000a94: JUMPDEST
00000a95: PUSH1 0x06
00000a97: SLOAD
00000a98: PUSH2 0x0527
00000a9b: SWAP1
00000a9c: PUSH1 0x01
00000a9e: PUSH1 0xa0
00000aa0: SHL
00000aa1: SWAP1
00000aa2: DIV
00000aa3: PUSH1 0xff
00000aa5: AND
00000aa6: DUP2
00000aa7: JUMP
00000aa8: JUMPDEST
00000aa9: PUSH2 0x04ff
00000aac: PUSH2 0x0ab6
00000aaf: CALLDATASIZE
00000ab0: PUSH1 0x04
00000ab2: PUSH2 0x4e70
00000ab5: JUMP
00000ab6: JUMPDEST
00000ab7: PUSH2 0x2dda
00000aba: JUMP
00000abb: JUMPDEST
00000abc: PUSH1 0x07
00000abe: SLOAD
00000abf: PUSH2 0x0ace
00000ac2: SWAP1
00000ac3: PUSH1 0x01
00000ac5: PUSH1 0x01
00000ac7: PUSH1 0xc0
00000ac9: SHL
00000aca: SUB
00000acb: AND
00000acc: DUP2
00000acd: JUMP
00000ace: JUMPDEST
00000acf: PUSH1 0x40
00000ad1: MLOAD
00000ad2: PUSH1 0x01
00000ad4: PUSH1 0x01
00000ad6: PUSH1 0xc0
00000ad8: SHL
00000ad9: SUB
00000ada: SWAP1
00000adb: SWAP2
00000adc: AND
00000add: DUP2
00000ade: MSTORE
00000adf: PUSH1 0x20
00000ae1: ADD
00000ae2: PUSH2 0x04ce
00000ae5: JUMP
00000ae6: JUMPDEST
00000ae7: PUSH2 0x04ff
00000aea: PUSH2 0x0af4
00000aed: CALLDATASIZE
00000aee: PUSH1 0x04
00000af0: PUSH2 0x5487
00000af3: JUMP
00000af4: JUMPDEST
00000af5: PUSH2 0x2e58
00000af8: JUMP
00000af9: JUMPDEST
00000afa: PUSH1 0x08
00000afc: SLOAD
00000afd: PUSH2 0x05b0
00000b00: SWAP1
00000b01: PUSH1 0x01
00000b03: PUSH1 0x01
00000b05: PUSH1 0xa0
00000b07: SHL
00000b08: SUB
00000b09: AND
00000b0a: DUP2
00000b0b: JUMP
00000b0c: JUMPDEST
00000b0d: PUSH2 0x04c4
00000b10: PUSH2 0x0b1a
00000b13: CALLDATASIZE
00000b14: PUSH1 0x04
00000b16: PUSH2 0x503b
00000b19: JUMP
00000b1a: JUMPDEST
00000b1b: PUSH2 0x309c
00000b1e: JUMP
00000b1f: JUMPDEST
00000b20: PUSH2 0x04c4
00000b23: PUSH2 0x0b2d
00000b26: CALLDATASIZE
00000b27: PUSH1 0x04
00000b29: PUSH2 0x54f8
00000b2c: JUMP
00000b2d: JUMPDEST
00000b2e: PUSH1 0x04
00000b30: PUSH1 0x20
00000b32: SWAP1
00000b33: DUP2
00000b34: MSTORE
00000b35: PUSH1 0x00
00000b37: SWAP3
00000b38: DUP4
00000b39: MSTORE
00000b3a: PUSH1 0x40
00000b3c: DUP1
00000b3d: DUP5
00000b3e: KECCAK256
00000b3f: SWAP1
00000b40: SWAP2
00000b41: MSTORE
00000b42: SWAP1
00000b43: DUP3
00000b44: MSTORE
00000b45: SWAP1
00000b46: KECCAK256
00000b47: SLOAD
00000b48: DUP2
00000b49: JUMP
00000b4a: JUMPDEST
00000b4b: PUSH2 0x0785
00000b4e: PUSH2 0x0b58
00000b51: CALLDATASIZE
00000b52: PUSH1 0x04
00000b54: PUSH2 0x4e8b
00000b57: JUMP
00000b58: JUMPDEST
00000b59: PUSH2 0x30d4
00000b5c: JUMP
00000b5d: JUMPDEST
00000b5e: PUSH1 0x0f
00000b60: SLOAD
00000b61: PUSH1 0x10
00000b63: SLOAD
00000b64: PUSH2 0x0b99
00000b67: SWAP2
00000b68: PUSH1 0x01
00000b6a: PUSH1 0x01
00000b6c: PUSH1 0x40
00000b6e: SHL
00000b6f: SUB
00000b70: DUP1
00000b71: DUP3
00000b72: AND
00000b73: SWAP3
00000b74: PUSH9 0x010000000000000000
00000b7e: DUP4
00000b7f: DIV
00000b80: DUP3
00000b81: AND
00000b82: SWAP3
00000b83: PUSH1 0x01
00000b85: PUSH1 0x80
00000b87: SHL
00000b88: SWAP1
00000b89: DIV
00000b8a: SWAP1
00000b8b: SWAP2
00000b8c: AND
00000b8d: SWAP1
00000b8e: PUSH1 0x01
00000b90: PUSH1 0x01
00000b92: PUSH1 0xa0
00000b94: SHL
00000b95: SUB
00000b96: AND
00000b97: DUP5
00000b98: JUMP
00000b99: JUMPDEST
00000b9a: PUSH1 0x40
00000b9c: DUP1
00000b9d: MLOAD
00000b9e: PUSH1 0x01
00000ba0: PUSH1 0x01
00000ba2: PUSH1 0x40
00000ba4: SHL
00000ba5: SUB
00000ba6: SWAP6
00000ba7: DUP7
00000ba8: AND
00000ba9: DUP2
00000baa: MSTORE
00000bab: SWAP4
00000bac: DUP6
00000bad: AND
00000bae: PUSH1 0x20
00000bb0: DUP6
00000bb1: ADD
00000bb2: MSTORE
00000bb3: SWAP2
00000bb4: SWAP1
00000bb5: SWAP4
00000bb6: AND
00000bb7: SWAP1
00000bb8: DUP3
00000bb9: ADD
00000bba: MSTORE
00000bbb: PUSH1 0x01
00000bbd: PUSH1 0x01
00000bbf: PUSH1 0xa0
00000bc1: SHL
00000bc2: SUB
00000bc3: SWAP1
00000bc4: SWAP2
00000bc5: AND
00000bc6: PUSH1 0x60
00000bc8: DUP3
00000bc9: ADD
00000bca: MSTORE
00000bcb: PUSH1 0x80
00000bcd: ADD
00000bce: PUSH2 0x04ce
00000bd1: JUMP
00000bd2: JUMPDEST
00000bd3: PUSH2 0x06bf
00000bd6: PUSH8 0x0de0b6b3a7640000
00000bdf: DUP2
00000be0: JUMP
00000be1: JUMPDEST
00000be2: PUSH2 0x04ff
00000be5: PUSH2 0x0bef
00000be8: CALLDATASIZE
00000be9: PUSH1 0x04
00000beb: PUSH2 0x5526
00000bee: JUMP
00000bef: JUMPDEST
00000bf0: PUSH2 0x30e4
00000bf3: JUMP
00000bf4: JUMPDEST
00000bf5: PUSH2 0x04ff
00000bf8: PUSH2 0x0c02
00000bfb: CALLDATASIZE
00000bfc: PUSH1 0x04
00000bfe: PUSH2 0x503b
00000c01: JUMP
00000c02: JUMPDEST
00000c03: PUSH2 0x322e
00000c06: JUMP
00000c07: JUMPDEST
00000c08: PUSH2 0x04ff
00000c0b: PUSH2 0x0c15
00000c0e: CALLDATASIZE
00000c0f: PUSH1 0x04
00000c11: PUSH2 0x5224
00000c14: JUMP
00000c15: JUMPDEST
00000c16: PUSH2 0x32a4
00000c19: JUMP
00000c1a: JUMPDEST
00000c1b: PUSH2 0x04c4
00000c1e: PUSH1 0x20
00000c20: DUP2
00000c21: JUMP
00000c22: JUMPDEST
00000c23: PUSH1 0x00
00000c25: PUSH2 0x0c2c
00000c28: PUSH2 0x342e
00000c2b: JUMP
00000c2c: JUMPDEST
00000c2d: PUSH1 0x06
00000c2f: SLOAD
00000c30: PUSH1 0x01
00000c32: PUSH1 0xa0
00000c34: SHL
00000c35: SWAP1
00000c36: DIV
00000c37: PUSH1 0xff
00000c39: AND
00000c3a: ISZERO
00000c3b: PUSH2 0x0c5f
00000c3e: JUMPI
00000c3f: PUSH1 0x40
00000c41: MLOAD
00000c42: PUSH3 0x461bcd
00000c46: PUSH1 0xe5
00000c48: SHL
00000c49: DUP2
00000c4a: MSTORE
00000c4b: PUSH1 0x04
00000c4d: ADD
00000c4e: PUSH2 0x0c56
00000c51: SWAP1
00000c52: PUSH2 0x5616
00000c55: JUMP
00000c56: JUMPDEST
00000c57: PUSH1 0x40
00000c59: MLOAD
00000c5a: DUP1
00000c5b: SWAP2
00000c5c: SUB
00000c5d: SWAP1
00000c5e: REVERT
00000c5f: JUMPDEST
00000c60: PUSH2 0x0c69
00000c63: PUSH1 0x00
00000c65: PUSH2 0x34e7
00000c68: JUMP
00000c69: JUMPDEST
00000c6a: SWAP1
00000c6b: POP
00000c6c: SWAP1
00000c6d: JUMP
00000c6e: JUMPDEST
00000c6f: PUSH1 0x00
00000c71: DUP1
00000c72: SLOAD
00000c73: PUSH2 0x0c7b
00000c76: SWAP1
00000c77: PUSH2 0x563a
00000c7a: JUMP
00000c7b: JUMPDEST
00000c7c: DUP1
00000c7d: PUSH1 0x1f
00000c7f: ADD
00000c80: PUSH1 0x20
00000c82: DUP1
00000c83: SWAP2
00000c84: DIV
00000c85: MUL
00000c86: PUSH1 0x20
00000c88: ADD
00000c89: PUSH1 0x40
00000c8b: MLOAD
00000c8c: SWAP1
00000c8d: DUP2
00000c8e: ADD
00000c8f: PUSH1 0x40
00000c91: MSTORE
00000c92: DUP1
00000c93: SWAP3
00000c94: SWAP2
00000c95: SWAP1
00000c96: DUP2
00000c97: DUP2
00000c98: MSTORE
00000c99: PUSH1 0x20
00000c9b: ADD
00000c9c: DUP3
00000c9d: DUP1
00000c9e: SLOAD
00000c9f: PUSH2 0x0ca7
00000ca2: SWAP1
00000ca3: PUSH2 0x563a
00000ca6: JUMP
00000ca7: JUMPDEST
00000ca8: DUP1
00000ca9: ISZERO
00000caa: PUSH2 0x0cf4
00000cad: JUMPI
00000cae: DUP1
00000caf: PUSH1 0x1f
00000cb1: LT
00000cb2: PUSH2 0x0cc9
00000cb5: JUMPI
00000cb6: PUSH2 0x0100
00000cb9: DUP1
00000cba: DUP4
00000cbb: SLOAD
00000cbc: DIV
00000cbd: MUL
00000cbe: DUP4
00000cbf: MSTORE
00000cc0: SWAP2
00000cc1: PUSH1 0x20
00000cc3: ADD
00000cc4: SWAP2
00000cc5: PUSH2 0x0cf4
00000cc8: JUMP
00000cc9: JUMPDEST
00000cca: DUP3
00000ccb: ADD
00000ccc: SWAP2
00000ccd: SWAP1
00000cce: PUSH1 0x00
00000cd0: MSTORE
00000cd1: PUSH1 0x20
00000cd3: PUSH1 0x00
00000cd5: KECCAK256
00000cd6: SWAP1
00000cd7: JUMPDEST
00000cd8: DUP2
00000cd9: SLOAD
00000cda: DUP2
00000cdb: MSTORE
00000cdc: SWAP1
00000cdd: PUSH1 0x01
00000cdf: ADD
00000ce0: SWAP1
00000ce1: PUSH1 0x20
00000ce3: ADD
00000ce4: DUP1
00000ce5: DUP4
00000ce6: GT
00000ce7: PUSH2 0x0cd7
00000cea: JUMPI
00000ceb: DUP3
00000cec: SWAP1
00000ced: SUB
00000cee: PUSH1 0x1f
00000cf0: AND
00000cf1: DUP3
00000cf2: ADD
00000cf3: SWAP2
00000cf4: JUMPDEST
00000cf5: POP
00000cf6: POP
00000cf7: POP
00000cf8: POP
00000cf9: POP
00000cfa: DUP2
00000cfb: JUMP
00000cfc: JUMPDEST
00000cfd: PUSH1 0x06
00000cff: SLOAD
00000d00: PUSH1 0x01
00000d02: PUSH1 0x01
00000d04: PUSH1 0xa0
00000d06: SHL
00000d07: SUB
00000d08: AND
00000d09: CALLER
00000d0a: EQ
00000d0b: PUSH2 0x0d26
00000d0e: JUMPI
00000d0f: PUSH1 0x40
00000d11: MLOAD
00000d12: PUSH3 0x461bcd
00000d16: PUSH1 0xe5
00000d18: SHL
00000d19: DUP2
00000d1a: MSTORE
00000d1b: PUSH1 0x04
00000d1d: ADD
00000d1e: PUSH2 0x0c56
00000d21: SWAP1
00000d22: PUSH2 0x5674
00000d25: JUMP
00000d26: JUMPDEST
00000d27: PUSH4 0xffffffff
00000d2c: DUP2
00000d2d: AND
00000d2e: PUSH1 0x00
00000d30: SWAP1
00000d31: DUP2
00000d32: MSTORE
00000d33: PUSH1 0x0b
00000d35: PUSH1 0x20
00000d37: MSTORE
00000d38: PUSH1 0x40
00000d3a: SWAP1
00000d3b: KECCAK256
00000d3c: SLOAD
00000d3d: PUSH1 0xff
00000d3f: AND
00000d40: PUSH2 0x0d64
00000d43: JUMPI
00000d44: PUSH1 0x40
00000d46: MLOAD
00000d47: PUSH4 0x70abe859
00000d4c: PUSH1 0xe0
00000d4e: SHL
00000d4f: DUP2
00000d50: MSTORE
00000d51: PUSH4 0xffffffff
00000d56: DUP3
00000d57: AND
00000d58: PUSH1 0x04
00000d5a: DUP3
00000d5b: ADD
00000d5c: MSTORE
00000d5d: PUSH1 0x24
00000d5f: ADD
00000d60: PUSH2 0x0c56
00000d63: JUMP
00000d64: JUMPDEST
00000d65: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000d86: PUSH1 0x01
00000d88: PUSH1 0x01
00000d8a: PUSH1 0xa0
00000d8c: SHL
00000d8d: SUB
00000d8e: AND
00000d8f: PUSH2 0x0d97
00000d92: DUP3
00000d93: PUSH2 0x39a9
00000d96: JUMP
00000d97: JUMPDEST
00000d98: PUSH1 0x01
00000d9a: PUSH1 0x01
00000d9c: PUSH1 0xa0
00000d9e: SHL
00000d9f: SUB
00000da0: AND
00000da1: EQ
00000da2: PUSH2 0x0dfb
00000da5: JUMPI
00000da6: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000dc7: PUSH2 0x0dcf
00000dca: DUP3
00000dcb: PUSH2 0x39a9
00000dce: JUMP
00000dcf: JUMPDEST
00000dd0: PUSH1 0x40
00000dd2: MLOAD
00000dd3: PUSH4 0x298473c7
00000dd8: PUSH1 0xe1
00000dda: SHL
00000ddb: DUP2
00000ddc: MSTORE
00000ddd: PUSH1 0x01
00000ddf: PUSH1 0x01
00000de1: PUSH1 0xa0
00000de3: SHL
00000de4: SUB
00000de5: SWAP3
00000de6: DUP4
00000de7: AND
00000de8: PUSH1 0x04
00000dea: DUP3
00000deb: ADD
00000dec: MSTORE
00000ded: SWAP2
00000dee: AND
00000def: PUSH1 0x24
00000df1: DUP3
00000df2: ADD
00000df3: MSTORE
00000df4: PUSH1 0x44
00000df6: ADD
00000df7: PUSH2 0x0c56
00000dfa: JUMP
00000dfb: JUMPDEST
00000dfc: PUSH4 0xffffffff
00000e01: DUP2
00000e02: AND
00000e03: PUSH1 0x00
00000e05: SWAP1
00000e06: DUP2
00000e07: MSTORE
00000e08: PUSH1 0x0c
00000e0a: PUSH1 0x20
00000e0c: MSTORE
00000e0d: PUSH1 0x40
00000e0f: SWAP1
00000e10: KECCAK256
00000e11: SLOAD
00000e12: PUSH1 0x01
00000e14: PUSH1 0xa0
00000e16: SHL
00000e17: SWAP1
00000e18: DIV
00000e19: PUSH1 0xff
00000e1b: AND
00000e1c: ISZERO
00000e1d: PUSH2 0x0e41
00000e20: JUMPI
00000e21: PUSH1 0x40
00000e23: MLOAD
00000e24: PUSH4 0x0a42c0f9
00000e29: PUSH1 0xe4
00000e2b: SHL
00000e2c: DUP2
00000e2d: MSTORE
00000e2e: PUSH4 0xffffffff
00000e33: DUP3
00000e34: AND
00000e35: PUSH1 0x04
00000e37: DUP3
00000e38: ADD
00000e39: MSTORE
00000e3a: PUSH1 0x24
00000e3c: ADD
00000e3d: PUSH2 0x0c56
00000e40: JUMP
00000e41: JUMPDEST
00000e42: PUSH1 0x06
00000e44: DUP1
00000e45: SLOAD
00000e46: PUSH4 0xffffffff
00000e4b: SWAP1
00000e4c: SWAP3
00000e4d: AND
00000e4e: PUSH1 0x01
00000e50: PUSH1 0xc0
00000e52: SHL
00000e53: MUL
00000e54: PUSH4 0xffffffff
00000e59: PUSH1 0xc0
00000e5b: SHL
00000e5c: NOT
00000e5d: SWAP1
00000e5e: SWAP3
00000e5f: AND
00000e60: SWAP2
00000e61: SWAP1
00000e62: SWAP2
00000e63: OR
00000e64: SWAP1
00000e65: SSTORE
00000e66: JUMP
00000e67: JUMPDEST
00000e68: PUSH1 0x00
00000e6a: DUP1
00000e6b: PUSH1 0x00
00000e6d: PUSH2 0x0e76
00000e70: PUSH1 0x00
00000e72: PUSH2 0x3a39
00000e75: JUMP
00000e76: JUMPDEST
00000e77: SWAP2
00000e78: POP
00000e79: SWAP2
00000e7a: POP
00000e7b: PUSH2 0x0e85
00000e7e: DUP5
00000e7f: DUP4
00000e80: DUP4
00000e81: PUSH2 0x3b53
00000e84: JUMP
00000e85: JUMPDEST
00000e86: SWAP5
00000e87: SWAP4
00000e88: POP
00000e89: POP
00000e8a: POP
00000e8b: POP
00000e8c: JUMP
00000e8d: JUMPDEST
00000e8e: CALLER
00000e8f: PUSH1 0x00
00000e91: DUP2
00000e92: DUP2
00000e93: MSTORE
00000e94: PUSH1 0x04
00000e96: PUSH1 0x20
00000e98: SWAP1
00000e99: DUP2
00000e9a: MSTORE
00000e9b: PUSH1 0x40
00000e9d: DUP1
00000e9e: DUP4
00000e9f: KECCAK256
00000ea0: PUSH1 0x01
00000ea2: PUSH1 0x01
00000ea4: PUSH1 0xa0
00000ea6: SHL
00000ea7: SUB
00000ea8: DUP8
00000ea9: AND
00000eaa: DUP1
00000eab: DUP6
00000eac: MSTORE
00000ead: SWAP3
00000eae: MSTORE
00000eaf: DUP1
00000eb0: DUP4
00000eb1: KECCAK256
00000eb2: DUP6
00000eb3: SWAP1
00000eb4: SSTORE
00000eb5: MLOAD
00000eb6: SWAP2
00000eb7: SWAP3
00000eb8: SWAP1
00000eb9: SWAP2
00000eba: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
00000edb: SWAP1
00000edc: PUSH2 0x0ee8
00000edf: SWAP1
00000ee0: DUP7
00000ee1: DUP2
00000ee2: MSTORE
00000ee3: PUSH1 0x20
00000ee5: ADD
00000ee6: SWAP1
00000ee7: JUMP
00000ee8: JUMPDEST
00000ee9: PUSH1 0x40
00000eeb: MLOAD
00000eec: DUP1
00000eed: SWAP2
00000eee: SUB
00000eef: SWAP1
00000ef0: LOG3
00000ef1: POP
00000ef2: PUSH1 0x01
00000ef4: JUMPDEST
00000ef5: SWAP3
00000ef6: SWAP2
00000ef7: POP
00000ef8: POP
00000ef9: JUMP
00000efa: JUMPDEST
00000efb: PUSH1 0x00
00000efd: DUP1
00000efe: PUSH1 0x00
00000f00: PUSH2 0x0f09
00000f03: PUSH1 0x00
00000f05: PUSH2 0x3a39
00000f08: JUMP
00000f09: JUMPDEST
00000f0a: SWAP2
00000f0b: POP
00000f0c: SWAP2
00000f0d: POP
00000f0e: PUSH2 0x0e85
00000f11: DUP5
00000f12: DUP4
00000f13: DUP4
00000f14: PUSH2 0x3b60
00000f17: JUMP
00000f18: JUMPDEST
00000f19: PUSH1 0x06
00000f1b: SLOAD
00000f1c: PUSH1 0x01
00000f1e: PUSH1 0x01
00000f20: PUSH1 0xa0
00000f22: SHL
00000f23: SUB
00000f24: AND
00000f25: CALLER
00000f26: EQ
00000f27: PUSH2 0x0f42
00000f2a: JUMPI
00000f2b: PUSH1 0x40
00000f2d: MLOAD
00000f2e: PUSH3 0x461bcd
00000f32: PUSH1 0xe5
00000f34: SHL
00000f35: DUP2
00000f36: MSTORE
00000f37: PUSH1 0x04
00000f39: ADD
00000f3a: PUSH2 0x0c56
00000f3d: SWAP1
00000f3e: PUSH2 0x5674
00000f41: JUMP
00000f42: JUMPDEST
00000f43: PUSH2 0x0f4a
00000f46: PUSH2 0x3b6d
00000f49: JUMP
00000f4a: JUMPDEST
00000f4b: PUSH1 0x06
00000f4d: DUP1
00000f4e: SLOAD
00000f4f: PUSH1 0xff
00000f51: PUSH1 0xa8
00000f53: SHL
00000f54: NOT
00000f55: AND
00000f56: PUSH1 0x01
00000f58: PUSH1 0xa8
00000f5a: SHL
00000f5b: OR
00000f5c: SWAP1
00000f5d: SSTORE
00000f5e: PUSH1 0x40
00000f60: MLOAD
00000f61: PUSH1 0x01
00000f63: DUP2
00000f64: MSTORE
00000f65: PUSH32 0xb8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c
00000f86: SWAP1
00000f87: PUSH1 0x20
00000f89: ADD
00000f8a: JUMPDEST
00000f8b: PUSH1 0x40
00000f8d: MLOAD
00000f8e: DUP1
00000f8f: SWAP2
00000f90: SUB
00000f91: SWAP1
00000f92: LOG1
00000f93: JUMP
00000f94: JUMPDEST
00000f95: PUSH1 0x01
00000f97: PUSH1 0x01
00000f99: PUSH1 0xa0
00000f9b: SHL
00000f9c: SUB
00000f9d: DUP4
00000f9e: AND
00000f9f: PUSH1 0x00
00000fa1: SWAP1
00000fa2: DUP2
00000fa3: MSTORE
00000fa4: PUSH1 0x04
00000fa6: PUSH1 0x20
00000fa8: SWAP1
00000fa9: DUP2
00000faa: MSTORE
00000fab: PUSH1 0x40
00000fad: DUP1
00000fae: DUP4
00000faf: KECCAK256
00000fb0: CALLER
00000fb1: DUP5
00000fb2: MSTORE
00000fb3: SWAP1
00000fb4: SWAP2
00000fb5: MSTORE
00000fb6: DUP2
00000fb7: KECCAK256
00000fb8: SLOAD
00000fb9: PUSH1 0x00
00000fbb: NOT
00000fbc: DUP2
00000fbd: EQ
00000fbe: PUSH2 0x0ff0
00000fc1: JUMPI
00000fc2: PUSH2 0x0fcb
00000fc5: DUP4
00000fc6: DUP3
00000fc7: PUSH2 0x56b0
00000fca: JUMP
00000fcb: JUMPDEST
00000fcc: PUSH1 0x01
00000fce: PUSH1 0x01
00000fd0: PUSH1 0xa0
00000fd2: SHL
00000fd3: SUB
00000fd4: DUP7
00000fd5: AND
00000fd6: PUSH1 0x00
00000fd8: SWAP1
00000fd9: DUP2
00000fda: MSTORE
00000fdb: PUSH1 0x04
00000fdd: PUSH1 0x20
00000fdf: SWAP1
00000fe0: DUP2
00000fe1: MSTORE
00000fe2: PUSH1 0x40
00000fe4: DUP1
00000fe5: DUP4
00000fe6: KECCAK256
00000fe7: CALLER
00000fe8: DUP5
00000fe9: MSTORE
00000fea: SWAP1
00000feb: SWAP2
00000fec: MSTORE
00000fed: SWAP1
00000fee: KECCAK256
00000fef: SSTORE
00000ff0: JUMPDEST
00000ff1: PUSH1 0x01
00000ff3: PUSH1 0x01
00000ff5: PUSH1 0xa0
00000ff7: SHL
00000ff8: SUB
00000ff9: DUP6
00000ffa: AND
00000ffb: PUSH1 0x00
00000ffd: SWAP1
00000ffe: DUP2
00000fff: MSTORE
00001000: PUSH1 0x03
00001002: PUSH1 0x20
00001004: MSTORE
00001005: PUSH1 0x40
00001007: DUP2
00001008: KECCAK256
00001009: DUP1
0000100a: SLOAD
0000100b: DUP6
0000100c: SWAP3
0000100d: SWAP1
0000100e: PUSH2 0x1018
00001011: SWAP1
00001012: DUP5
00001013: SWAP1
00001014: PUSH2 0x56b0
00001017: JUMP
00001018: JUMPDEST
00001019: SWAP1
0000101a: SWAP2
0000101b: SSTORE
0000101c: POP
0000101d: POP
0000101e: PUSH1 0x01
00001020: PUSH1 0x01
00001022: PUSH1 0xa0
00001024: SHL
00001025: SUB
00001026: DUP1
00001027: DUP6
00001028: AND
00001029: PUSH1 0x00
0000102b: DUP2
0000102c: DUP2
0000102d: MSTORE
0000102e: PUSH1 0x03
00001030: PUSH1 0x20
00001032: MSTORE
00001033: PUSH1 0x40
00001035: SWAP1
00001036: DUP2
00001037: SWAP1
00001038: KECCAK256
00001039: DUP1
0000103a: SLOAD
0000103b: DUP8
0000103c: ADD
0000103d: SWAP1
0000103e: SSTORE
0000103f: MLOAD
00001040: SWAP1
00001041: SWAP2
00001042: DUP8
00001043: AND
00001044: SWAP1
00001045: PUSH1 0x00
00001047: DUP1
00001048: MLOAD
00001049: PUSH1 0x20
0000104b: PUSH2 0x5f65
0000104e: DUP4
0000104f: CODECOPY
00001050: DUP2
00001051: MLOAD
00001052: SWAP2
00001053: MSTORE
00001054: SWAP1
00001055: PUSH2 0x1061
00001058: SWAP1
00001059: DUP8
0000105a: DUP2
0000105b: MSTORE
0000105c: PUSH1 0x20
0000105e: ADD
0000105f: SWAP1
00001060: JUMP
00001061: JUMPDEST
00001062: PUSH1 0x40
00001064: MLOAD
00001065: DUP1
00001066: SWAP2
00001067: SUB
00001068: SWAP1
00001069: LOG3
0000106a: POP
0000106b: PUSH1 0x01
0000106d: SWAP5
0000106e: SWAP4
0000106f: POP
00001070: POP
00001071: POP
00001072: POP
00001073: JUMP
00001074: JUMPDEST
00001075: PUSH1 0x06
00001077: SLOAD
00001078: PUSH1 0x01
0000107a: PUSH1 0x01
0000107c: PUSH1 0xa0
0000107e: SHL
0000107f: SUB
00001080: AND
00001081: CALLER
00001082: EQ
00001083: PUSH2 0x109e
00001086: JUMPI
00001087: PUSH1 0x40
00001089: MLOAD
0000108a: PUSH3 0x461bcd
0000108e: PUSH1 0xe5
00001090: SHL
00001091: DUP2
00001092: MSTORE
00001093: PUSH1 0x04
00001095: ADD
00001096: PUSH2 0x0c56
00001099: SWAP1
0000109a: PUSH2 0x5674
0000109d: JUMP
0000109e: JUMPDEST
0000109f: PUSH1 0x00
000010a1: DUP2
000010a2: PUSH2 0x10e9
000010a5: JUMPI
000010a6: PUSH1 0x09
000010a8: DUP4
000010a9: PUSH4 0xffffffff
000010ae: AND
000010af: DUP2
000010b0: SLOAD
000010b1: DUP2
000010b2: LT
000010b3: PUSH2 0x10be
000010b6: JUMPI
000010b7: PUSH2 0x10be
000010ba: PUSH2 0x56c3
000010bd: JUMP
000010be: JUMPDEST
000010bf: SWAP1
000010c0: PUSH1 0x00
000010c2: MSTORE
000010c3: PUSH1 0x20
000010c5: PUSH1 0x00
000010c7: KECCAK256
000010c8: SWAP1
000010c9: PUSH1 0x08
000010cb: SWAP2
000010cc: DUP3
000010cd: DUP3
000010ce: DIV
000010cf: ADD
000010d0: SWAP2
000010d1: SWAP1
000010d2: MOD
000010d3: PUSH1 0x04
000010d5: MUL
000010d6: SWAP1
000010d7: SLOAD
000010d8: SWAP1
000010d9: PUSH2 0x0100
000010dc: EXP
000010dd: SWAP1
000010de: DIV
000010df: PUSH4 0xffffffff
000010e4: AND
000010e5: PUSH2 0x1129
000010e8: JUMP
000010e9: JUMPDEST
000010ea: PUSH1 0x0a
000010ec: DUP4
000010ed: PUSH4 0xffffffff
000010f2: AND
000010f3: DUP2
000010f4: SLOAD
000010f5: DUP2
000010f6: LT
000010f7: PUSH2 0x1102
000010fa: JUMPI
000010fb: PUSH2 0x1102
000010fe: PUSH2 0x56c3
00001101: JUMP
00001102: JUMPDEST
00001103: SWAP1
00001104: PUSH1 0x00
00001106: MSTORE
00001107: PUSH1 0x20
00001109: PUSH1 0x00
0000110b: KECCAK256
0000110c: SWAP1
0000110d: PUSH1 0x08
0000110f: SWAP2
00001110: DUP3
00001111: DUP3
00001112: DIV
00001113: ADD
00001114: SWAP2
00001115: SWAP1
00001116: MOD
00001117: PUSH1 0x04
00001119: MUL
0000111a: SWAP1
0000111b: SLOAD
0000111c: SWAP1
0000111d: PUSH2 0x0100
00001120: EXP
00001121: SWAP1
00001122: DIV
00001123: PUSH4 0xffffffff
00001128: AND
00001129: JUMPDEST
0000112a: SWAP1
0000112b: POP
0000112c: PUSH1 0x00
0000112e: PUSH2 0x1136
00001131: DUP3
00001132: PUSH2 0x3b98
00001135: JUMP
00001136: JUMPDEST
00001137: SWAP1
00001138: POP
00001139: DUP1
0000113a: ISZERO
0000113b: PUSH2 0x1166
0000113e: JUMPI
0000113f: PUSH1 0x40
00001141: MLOAD
00001142: PUSH4 0x1c7b946d
00001147: PUSH1 0xe3
00001149: SHL
0000114a: DUP2
0000114b: MSTORE
0000114c: PUSH4 0xffffffff
00001151: DUP4
00001152: AND
00001153: PUSH1 0x04
00001155: DUP3
00001156: ADD
00001157: MSTORE
00001158: PUSH1 0x24
0000115a: DUP2
0000115b: ADD
0000115c: DUP3
0000115d: SWAP1
0000115e: MSTORE
0000115f: PUSH1 0x44
00001161: ADD
00001162: PUSH2 0x0c56
00001165: JUMP
00001166: JUMPDEST
00001167: PUSH2 0x1171
0000116a: DUP5
0000116b: DUP4
0000116c: DUP6
0000116d: PUSH2 0x3c21
00001170: JUMP
00001171: JUMPDEST
00001172: POP
00001173: POP
00001174: POP
00001175: POP
00001176: JUMP
00001177: JUMPDEST
00001178: PUSH1 0x00
0000117a: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000001
0000119b: CHAINID
0000119c: EQ
0000119d: PUSH2 0x11a8
000011a0: JUMPI
000011a1: PUSH2 0x0c69
000011a4: PUSH2 0x3d0d
000011a7: JUMP
000011a8: JUMPDEST
000011a9: POP
000011aa: PUSH32 0xba30efb318c7f9e52b778ab8c19b1379f3d1c885b4947b787c46552c71c84207
000011cb: SWAP1
000011cc: JUMP
000011cd: JUMPDEST
000011ce: PUSH1 0x06
000011d0: SLOAD
000011d1: PUSH1 0x01
000011d3: PUSH1 0x01
000011d5: PUSH1 0xa0
000011d7: SHL
000011d8: SUB
000011d9: AND
000011da: CALLER
000011db: EQ
000011dc: PUSH2 0x11f7
000011df: JUMPI
000011e0: PUSH1 0x40
000011e2: MLOAD
000011e3: PUSH3 0x461bcd
000011e7: PUSH1 0xe5
000011e9: SHL
000011ea: DUP2
000011eb: MSTORE
000011ec: PUSH1 0x04
000011ee: ADD
000011ef: PUSH2 0x0c56
000011f2: SWAP1
000011f3: PUSH2 0x5674
000011f6: JUMP
000011f7: JUMPDEST
000011f8: PUSH1 0x00
000011fa: DUP1
000011fb: DUP3
000011fc: ISZERO
000011fd: PUSH2 0x1329
00001200: JUMPI
00001201: PUSH1 0x0a
00001203: DUP5
00001204: PUSH4 0xffffffff
00001209: AND
0000120a: DUP2
0000120b: SLOAD
0000120c: DUP2
0000120d: LT
0000120e: PUSH2 0x1219
00001211: JUMPI
00001212: PUSH2 0x1219
00001215: PUSH2 0x56c3
00001218: JUMP
00001219: JUMPDEST
0000121a: SWAP1
0000121b: PUSH1 0x00
0000121d: MSTORE
0000121e: PUSH1 0x20
00001220: PUSH1 0x00
00001222: KECCAK256
00001223: SWAP1
00001224: PUSH1 0x08
00001226: SWAP2
00001227: DUP3
00001228: DUP3
00001229: DIV
0000122a: ADD
0000122b: SWAP2
0000122c: SWAP1
0000122d: MOD
0000122e: PUSH1 0x04
00001230: MUL
00001231: SWAP1
00001232: SLOAD
00001233: SWAP1
00001234: PUSH2 0x0100
00001237: EXP
00001238: SWAP1
00001239: DIV
0000123a: PUSH4 0xffffffff
0000123f: AND
00001240: SWAP2
00001241: POP
00001242: PUSH1 0x0a
00001244: DUP6
00001245: PUSH4 0xffffffff
0000124a: AND
0000124b: DUP2
0000124c: SLOAD
0000124d: DUP2
0000124e: LT
0000124f: PUSH2 0x125a
00001252: JUMPI
00001253: PUSH2 0x125a
00001256: PUSH2 0x56c3
00001259: JUMP
0000125a: JUMPDEST
0000125b: SWAP1
0000125c: PUSH1 0x00
0000125e: MSTORE
0000125f: PUSH1 0x20
00001261: PUSH1 0x00
00001263: KECCAK256
00001264: SWAP1
00001265: PUSH1 0x08
00001267: SWAP2
00001268: DUP3
00001269: DUP3
0000126a: DIV
0000126b: ADD
0000126c: SWAP2
0000126d: SWAP1
0000126e: MOD
0000126f: PUSH1 0x04
00001271: MUL
00001272: SWAP1
00001273: SLOAD
00001274: SWAP1
00001275: PUSH2 0x0100
00001278: EXP
00001279: SWAP1
0000127a: DIV
0000127b: PUSH4 0xffffffff
00001280: AND
00001281: SWAP1
00001282: POP
00001283: DUP2
00001284: DUP2
00001285: PUSH1 0x0a
00001287: DUP8
00001288: PUSH4 0xffffffff
0000128d: AND
0000128e: DUP2
0000128f: SLOAD
00001290: DUP2
00001291: LT
00001292: PUSH2 0x129d
00001295: JUMPI
00001296: PUSH2 0x129d
00001299: PUSH2 0x56c3
0000129c: JUMP
0000129d: JUMPDEST
0000129e: SWAP1
0000129f: PUSH1 0x00
000012a1: MSTORE
000012a2: PUSH1 0x20
000012a4: PUSH1 0x00
000012a6: KECCAK256
000012a7: SWAP1
000012a8: PUSH1 0x08
000012aa: SWAP2
000012ab: DUP3
000012ac: DUP3
000012ad: DIV
000012ae: ADD
000012af: SWAP2
000012b0: SWAP1
000012b1: MOD
000012b2: PUSH1 0x04
000012b4: MUL
000012b5: PUSH1 0x0a
000012b7: DUP9
000012b8: PUSH4 0xffffffff
000012bd: AND
000012be: DUP2
000012bf: SLOAD
000012c0: DUP2
000012c1: LT
000012c2: PUSH2 0x12cd
000012c5: JUMPI
000012c6: PUSH2 0x12cd
000012c9: PUSH2 0x56c3
000012cc: JUMP
000012cd: JUMPDEST
000012ce: SWAP1
000012cf: PUSH1 0x00
000012d1: MSTORE
000012d2: PUSH1 0x20
000012d4: PUSH1 0x00
000012d6: KECCAK256
000012d7: SWAP1
000012d8: PUSH1 0x08
000012da: SWAP2
000012db: DUP3
000012dc: DUP3
000012dd: DIV
000012de: ADD
000012df: SWAP2
000012e0: SWAP1
000012e1: MOD
000012e2: PUSH1 0x04
000012e4: MUL
000012e5: DUP5
000012e6: SWAP2
000012e7: SWAP1
000012e8: PUSH2 0x0100
000012eb: EXP
000012ec: DUP2
000012ed: SLOAD
000012ee: DUP2
000012ef: PUSH4 0xffffffff
000012f4: MUL
000012f5: NOT
000012f6: AND
000012f7: SWAP1
000012f8: DUP4
000012f9: PUSH4 0xffffffff
000012fe: AND
000012ff: MUL
00001300: OR
00001301: SWAP1
00001302: SSTORE
00001303: POP
00001304: DUP4
00001305: SWAP2
00001306: SWAP1
00001307: PUSH2 0x0100
0000130a: EXP
0000130b: DUP2
0000130c: SLOAD
0000130d: DUP2
0000130e: PUSH4 0xffffffff
00001313: MUL
00001314: NOT
00001315: AND
00001316: SWAP1
00001317: DUP4
00001318: PUSH4 0xffffffff
0000131d: AND
0000131e: MUL
0000131f: OR
00001320: SWAP1
00001321: SSTORE
00001322: POP
00001323: POP
00001324: POP
00001325: PUSH2 0x144e
00001328: JUMP
00001329: JUMPDEST
0000132a: PUSH1 0x09
0000132c: DUP5
0000132d: PUSH4 0xffffffff
00001332: AND
00001333: DUP2
00001334: SLOAD
00001335: DUP2
00001336: LT
00001337: PUSH2 0x1342
0000133a: JUMPI
0000133b: PUSH2 0x1342
0000133e: PUSH2 0x56c3
00001341: JUMP
00001342: JUMPDEST
00001343: SWAP1
00001344: PUSH1 0x00
00001346: MSTORE
00001347: PUSH1 0x20
00001349: PUSH1 0x00
0000134b: KECCAK256
0000134c: SWAP1
0000134d: PUSH1 0x08
0000134f: SWAP2
00001350: DUP3
00001351: DUP3
00001352: DIV
00001353: ADD
00001354: SWAP2
00001355: SWAP1
00001356: MOD
00001357: PUSH1 0x04
00001359: MUL
0000135a: SWAP1
0000135b: SLOAD
0000135c: SWAP1
0000135d: PUSH2 0x0100
00001360: EXP
00001361: SWAP1
00001362: DIV
00001363: PUSH4 0xffffffff
00001368: AND
00001369: SWAP2
0000136a: POP
0000136b: PUSH1 0x09
0000136d: DUP6
0000136e: PUSH4 0xffffffff
00001373: AND
00001374: DUP2
00001375: SLOAD
00001376: DUP2
00001377: LT
00001378: PUSH2 0x1383
0000137b: JUMPI
0000137c: PUSH2 0x1383
0000137f: PUSH2 0x56c3
00001382: JUMP
00001383: JUMPDEST
00001384: SWAP1
00001385: PUSH1 0x00
00001387: MSTORE
00001388: PUSH1 0x20
0000138a: PUSH1 0x00
0000138c: KECCAK256
0000138d: SWAP1
0000138e: PUSH1 0x08
00001390: SWAP2
00001391: DUP3
00001392: DUP3
00001393: DIV
00001394: ADD
00001395: SWAP2
00001396: SWAP1
00001397: MOD
00001398: PUSH1 0x04
0000139a: MUL
0000139b: SWAP1
0000139c: SLOAD
0000139d: SWAP1
0000139e: PUSH2 0x0100
000013a1: EXP
000013a2: SWAP1
000013a3: DIV
000013a4: PUSH4 0xffffffff
000013a9: AND
000013aa: SWAP1
000013ab: POP
000013ac: DUP2
000013ad: DUP2
000013ae: PUSH1 0x09
000013b0: DUP8
000013b1: PUSH4 0xffffffff
000013b6: AND
000013b7: DUP2
000013b8: SLOAD
000013b9: DUP2
000013ba: LT
000013bb: PUSH2 0x13c6
000013be: JUMPI
000013bf: PUSH2 0x13c6
000013c2: PUSH2 0x56c3
000013c5: JUMP
000013c6: JUMPDEST
000013c7: SWAP1
000013c8: PUSH1 0x00
000013ca: MSTORE
000013cb: PUSH1 0x20
000013cd: PUSH1 0x00
000013cf: KECCAK256
000013d0: SWAP1
000013d1: PUSH1 0x08
000013d3: SWAP2
000013d4: DUP3
000013d5: DUP3
000013d6: DIV
000013d7: ADD
000013d8: SWAP2
000013d9: SWAP1
000013da: MOD
000013db: PUSH1 0x04
000013dd: MUL
000013de: PUSH1 0x09
000013e0: DUP9
000013e1: PUSH4 0xffffffff
000013e6: AND
000013e7: DUP2
000013e8: SLOAD
000013e9: DUP2
000013ea: LT
000013eb: PUSH2 0x13f6
000013ee: JUMPI
000013ef: PUSH2 0x13f6
000013f2: PUSH2 0x56c3
000013f5: JUMP
000013f6: JUMPDEST
000013f7: SWAP1
000013f8: PUSH1 0x00
000013fa: MSTORE
000013fb: PUSH1 0x20
000013fd: PUSH1 0x00
000013ff: KECCAK256
00001400: SWAP1
00001401: PUSH1 0x08
00001403: SWAP2
00001404: DUP3
00001405: DUP3
00001406: DIV
00001407: ADD
00001408: SWAP2
00001409: SWAP1
0000140a: MOD
0000140b: PUSH1 0x04
0000140d: MUL
0000140e: DUP5
0000140f: SWAP2
00001410: SWAP1
00001411: PUSH2 0x0100
00001414: EXP
00001415: DUP2
00001416: SLOAD
00001417: DUP2
00001418: PUSH4 0xffffffff
0000141d: MUL
0000141e: NOT
0000141f: AND
00001420: SWAP1
00001421: DUP4
00001422: PUSH4 0xffffffff
00001427: AND
00001428: MUL
00001429: OR
0000142a: SWAP1
0000142b: SSTORE
0000142c: POP
0000142d: DUP4
0000142e: SWAP2
0000142f: SWAP1
00001430: PUSH2 0x0100
00001433: EXP
00001434: DUP2
00001435: SLOAD
00001436: DUP2
00001437: PUSH4 0xffffffff
0000143c: MUL
0000143d: NOT
0000143e: AND
0000143f: SWAP1
00001440: DUP4
00001441: PUSH4 0xffffffff
00001446: AND
00001447: MUL
00001448: OR
00001449: SWAP1
0000144a: SSTORE
0000144b: POP
0000144c: POP
0000144d: POP
0000144e: JUMPDEST
0000144f: PUSH1 0x40
00001451: DUP1
00001452: MLOAD
00001453: PUSH4 0xffffffff
00001458: DUP5
00001459: DUP2
0000145a: AND
0000145b: DUP3
0000145c: MSTORE
0000145d: DUP4
0000145e: DUP2
0000145f: AND
00001460: PUSH1 0x20
00001462: DUP4
00001463: ADD
00001464: MSTORE
00001465: DUP8
00001466: DUP2
00001467: AND
00001468: DUP3
00001469: DUP5
0000146a: ADD
0000146b: MSTORE
0000146c: DUP7
0000146d: AND
0000146e: PUSH1 0x60
00001470: DUP3
00001471: ADD
00001472: MSTORE
00001473: SWAP1
00001474: MLOAD
00001475: PUSH32 0xb7c5df04749a3a06a9a7bf1a8142ccf2a4ee6cbf4709489e876a6e4eb3301e8a
00001496: SWAP2
00001497: DUP2
00001498: SWAP1
00001499: SUB
0000149a: PUSH1 0x80
0000149c: ADD
0000149d: SWAP1
0000149e: LOG1
0000149f: POP
000014a0: POP
000014a1: POP
000014a2: POP
000014a3: POP
000014a4: JUMP
000014a5: JUMPDEST
000014a6: PUSH1 0x06
000014a8: SLOAD
000014a9: PUSH1 0x01
000014ab: PUSH1 0x01
000014ad: PUSH1 0xa0
000014af: SHL
000014b0: SUB
000014b1: AND
000014b2: CALLER
000014b3: EQ
000014b4: PUSH2 0x14cf
000014b7: JUMPI
000014b8: PUSH1 0x40
000014ba: MLOAD
000014bb: PUSH3 0x461bcd
000014bf: PUSH1 0xe5
000014c1: SHL
000014c2: DUP2
000014c3: MSTORE
000014c4: PUSH1 0x04
000014c6: ADD
000014c7: PUSH2 0x0c56
000014ca: SWAP1
000014cb: PUSH2 0x5674
000014ce: JUMP
000014cf: JUMPDEST
000014d0: PUSH1 0x40
000014d2: MLOAD
000014d3: PUSH4 0x67771405
000014d8: PUSH1 0xe1
000014da: SHL
000014db: DUP2
000014dc: MSTORE
000014dd: PUSH1 0x01
000014df: PUSH1 0x01
000014e1: PUSH1 0xa0
000014e3: SHL
000014e4: SUB
000014e5: DUP3
000014e6: DUP2
000014e7: AND
000014e8: PUSH1 0x04
000014ea: DUP4
000014eb: ADD
000014ec: MSTORE
000014ed: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476
0000150e: AND
0000150f: SWAP1
00001510: PUSH4 0xceee280a
00001515: SWAP1
00001516: PUSH1 0x24
00001518: ADD
00001519: PUSH1 0x00
0000151b: PUSH1 0x40
0000151d: MLOAD
0000151e: DUP1
0000151f: DUP4
00001520: SUB
00001521: DUP2
00001522: DUP7
00001523: DUP1
00001524: EXTCODESIZE
00001525: ISZERO
00001526: DUP1
00001527: ISZERO
00001528: PUSH2 0x1530
0000152b: JUMPI
0000152c: PUSH1 0x00
0000152e: DUP1
0000152f: REVERT
00001530: JUMPDEST
00001531: POP
00001532: GAS
00001533: STATICCALL
00001534: ISZERO
00001535: DUP1
00001536: ISZERO
00001537: PUSH2 0x1544
0000153a: JUMPI
0000153b: RETURNDATASIZE
0000153c: PUSH1 0x00
0000153e: DUP1
0000153f: RETURNDATACOPY
00001540: RETURNDATASIZE
00001541: PUSH1 0x00
00001543: REVERT
00001544: JUMPDEST
00001545: POP
00001546: POP
00001547: POP
00001548: POP
00001549: PUSH1 0x01
0000154b: PUSH1 0x01
0000154d: PUSH1 0xa0
0000154f: SHL
00001550: SUB
00001551: DUP2
00001552: AND
00001553: PUSH1 0x00
00001555: DUP2
00001556: DUP2
00001557: MSTORE
00001558: PUSH1 0x0e
0000155a: PUSH1 0x20
0000155c: SWAP1
0000155d: DUP2
0000155e: MSTORE
0000155f: PUSH1 0x40
00001561: SWAP2
00001562: DUP3
00001563: SWAP1
00001564: KECCAK256
00001565: DUP1
00001566: SLOAD
00001567: PUSH1 0xff
00001569: NOT
0000156a: AND
0000156b: PUSH1 0x01
0000156d: SWAP1
0000156e: DUP2
0000156f: OR
00001570: SWAP1
00001571: SWAP2
00001572: SSTORE
00001573: DUP3
00001574: MLOAD
00001575: SWAP4
00001576: DUP5
00001577: MSTORE
00001578: SWAP1
00001579: DUP4
0000157a: ADD
0000157b: MSTORE
0000157c: PUSH32 0x572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a
0000159d: SWAP2
0000159e: ADD
0000159f: JUMPDEST
000015a0: PUSH1 0x40
000015a2: MLOAD
000015a3: DUP1
000015a4: SWAP2
000015a5: SUB
000015a6: SWAP1
000015a7: LOG1
000015a8: POP
000015a9: JUMP
000015aa: JUMPDEST
000015ab: PUSH1 0x60
000015ad: PUSH1 0x0a
000015af: DUP1
000015b0: SLOAD
000015b1: DUP1
000015b2: PUSH1 0x20
000015b4: MUL
000015b5: PUSH1 0x20
000015b7: ADD
000015b8: PUSH1 0x40
000015ba: MLOAD
000015bb: SWAP1
000015bc: DUP2
000015bd: ADD
000015be: PUSH1 0x40
000015c0: MSTORE
000015c1: DUP1
000015c2: SWAP3
000015c3: SWAP2
000015c4: SWAP1
000015c5: DUP2
000015c6: DUP2
000015c7: MSTORE
000015c8: PUSH1 0x20
000015ca: ADD
000015cb: DUP3
000015cc: DUP1
000015cd: SLOAD
000015ce: DUP1
000015cf: ISZERO
000015d0: PUSH2 0x1624
000015d3: JUMPI
000015d4: PUSH1 0x20
000015d6: MUL
000015d7: DUP3
000015d8: ADD
000015d9: SWAP2
000015da: SWAP1
000015db: PUSH1 0x00
000015dd: MSTORE
000015de: PUSH1 0x20
000015e0: PUSH1 0x00
000015e2: KECCAK256
000015e3: SWAP1
000015e4: PUSH1 0x00
000015e6: SWAP1
000015e7: JUMPDEST
000015e8: DUP3
000015e9: DUP3
000015ea: SWAP1
000015eb: SLOAD
000015ec: SWAP1
000015ed: PUSH2 0x0100
000015f0: EXP
000015f1: SWAP1
000015f2: DIV
000015f3: PUSH4 0xffffffff
000015f8: AND
000015f9: PUSH4 0xffffffff
000015fe: AND
000015ff: DUP2
00001600: MSTORE
00001601: PUSH1 0x20
00001603: ADD
00001604: SWAP1
00001605: PUSH1 0x04
00001607: ADD
00001608: SWAP1
00001609: PUSH1 0x20
0000160b: DUP3
0000160c: PUSH1 0x03
0000160e: ADD
0000160f: DIV
00001610: SWAP3
00001611: DUP4
00001612: ADD
00001613: SWAP3
00001614: PUSH1 0x01
00001616: SUB
00001617: DUP3
00001618: MUL
00001619: SWAP2
0000161a: POP
0000161b: DUP1
0000161c: DUP5
0000161d: GT
0000161e: PUSH2 0x15e7
00001621: JUMPI
00001622: SWAP1
00001623: POP
00001624: JUMPDEST
00001625: POP
00001626: POP
00001627: POP
00001628: POP
00001629: POP
0000162a: SWAP1
0000162b: POP
0000162c: SWAP1
0000162d: JUMP
0000162e: JUMPDEST
0000162f: PUSH1 0x06
00001631: SLOAD
00001632: PUSH1 0x00
00001634: SWAP1
00001635: PUSH1 0x01
00001637: PUSH1 0xa8
00001639: SHL
0000163a: SWAP1
0000163b: DIV
0000163c: PUSH1 0xff
0000163e: AND
0000163f: ISZERO
00001640: PUSH2 0x164b
00001643: JUMPI
00001644: POP
00001645: PUSH1 0x00
00001647: SWAP2
00001648: SWAP1
00001649: POP
0000164a: JUMP
0000164b: JUMPDEST
0000164c: PUSH1 0x07
0000164e: SLOAD
0000164f: PUSH1 0x01
00001651: PUSH1 0x01
00001653: PUSH1 0xc0
00001655: SHL
00001656: SUB
00001657: AND
00001658: PUSH1 0x02
0000165a: PUSH1 0x01
0000165c: PUSH1 0xc0
0000165e: SHL
0000165f: SUB
00001660: NOT
00001661: DUP2
00001662: ADD
00001663: PUSH2 0x1670
00001666: JUMPI
00001667: POP
00001668: PUSH1 0x00
0000166a: NOT
0000166b: SWAP3
0000166c: SWAP2
0000166d: POP
0000166e: POP
0000166f: JUMP
00001670: JUMPDEST
00001671: PUSH1 0x00
00001673: DUP1
00001674: PUSH2 0x167d
00001677: PUSH1 0x01
00001679: PUSH2 0x3a39
0000167c: JUMP
0000167d: JUMPDEST
0000167e: SWAP2
0000167f: POP
00001680: SWAP2
00001681: POP
00001682: DUP3
00001683: PUSH1 0x01
00001685: PUSH1 0x01
00001687: PUSH1 0xc0
00001689: SHL
0000168a: SUB
0000168b: AND
0000168c: DUP2
0000168d: LT
0000168e: PUSH2 0x169c
00001691: JUMPI
00001692: POP
00001693: PUSH1 0x00
00001695: SWAP5
00001696: SWAP4
00001697: POP
00001698: POP
00001699: POP
0000169a: POP
0000169b: JUMP
0000169c: JUMPDEST
0000169d: PUSH1 0x00
0000169f: PUSH2 0x16b1
000016a2: DUP3
000016a3: PUSH1 0x01
000016a5: PUSH1 0x01
000016a7: PUSH1 0xc0
000016a9: SHL
000016aa: SUB
000016ab: DUP7
000016ac: AND
000016ad: PUSH2 0x56b0
000016b0: JUMP
000016b1: JUMPDEST
000016b2: SWAP1
000016b3: POP
000016b4: PUSH2 0x16be
000016b7: DUP2
000016b8: DUP5
000016b9: DUP5
000016ba: PUSH2 0x3b53
000016bd: JUMP
000016be: JUMPDEST
000016bf: SWAP7
000016c0: SWAP6
000016c1: POP
000016c2: POP
000016c3: POP
000016c4: POP
000016c5: POP
000016c6: POP
000016c7: JUMP
000016c8: JUMPDEST
000016c9: POP
000016ca: POP
000016cb: POP
000016cc: SWAP2
000016cd: SWAP1
000016ce: POP
000016cf: JUMP
000016d0: JUMPDEST
000016d1: PUSH1 0x06
000016d3: SLOAD
000016d4: PUSH1 0x01
000016d6: PUSH1 0xa0
000016d8: SHL
000016d9: SWAP1
000016da: DIV
000016db: PUSH1 0xff
000016dd: AND
000016de: ISZERO
000016df: PUSH2 0x16fa
000016e2: JUMPI
000016e3: PUSH1 0x40
000016e5: MLOAD
000016e6: PUSH3 0x461bcd
000016ea: PUSH1 0xe5
000016ec: SHL
000016ed: DUP2
000016ee: MSTORE
000016ef: PUSH1 0x04
000016f1: ADD
000016f2: PUSH2 0x0c56
000016f5: SWAP1
000016f6: PUSH2 0x5616
000016f9: JUMP
000016fa: JUMPDEST
000016fb: PUSH1 0x06
000016fd: DUP1
000016fe: SLOAD
000016ff: PUSH1 0x01
00001701: PUSH1 0xa0
00001703: SHL
00001704: PUSH1 0xff
00001706: PUSH1 0xa0
00001708: SHL
00001709: NOT
0000170a: DUP3
0000170b: AND
0000170c: OR
0000170d: SWAP1
0000170e: SWAP2
0000170f: SSTORE
00001710: PUSH1 0x01
00001712: PUSH1 0x01
00001714: PUSH1 0xa0
00001716: SHL
00001717: SUB
00001718: AND
00001719: CALLER
0000171a: EQ
0000171b: DUP1
0000171c: ISZERO
0000171d: SWAP1
0000171e: PUSH2 0x1732
00001721: JUMPI
00001722: POP
00001723: PUSH1 0x11
00001725: SLOAD
00001726: PUSH1 0x01
00001728: PUSH1 0x01
0000172a: PUSH1 0xa0
0000172c: SHL
0000172d: SUB
0000172e: AND
0000172f: CALLER
00001730: EQ
00001731: ISZERO
00001732: JUMPDEST
00001733: ISZERO
00001734: PUSH2 0x1750
00001737: JUMPI
00001738: PUSH1 0x40
0000173a: MLOAD
0000173b: PUSH4 0x3fd29235
00001740: PUSH1 0xe0
00001742: SHL
00001743: DUP2
00001744: MSTORE
00001745: PUSH1 0x04
00001747: ADD
00001748: PUSH1 0x40
0000174a: MLOAD
0000174b: DUP1
0000174c: SWAP2
0000174d: SUB
0000174e: SWAP1
0000174f: REVERT
00001750: JUMPDEST
00001751: PUSH2 0x1758
00001754: PUSH2 0x3b6d
00001757: JUMP
00001758: JUMPDEST
00001759: PUSH2 0x1760
0000175c: PUSH2 0x342e
0000175f: JUMP
00001760: JUMPDEST
00001761: PUSH1 0x06
00001763: DUP1
00001764: SLOAD
00001765: PUSH1 0xff
00001767: PUSH1 0xb8
00001769: SHL
0000176a: NOT
0000176b: AND
0000176c: PUSH1 0x01
0000176e: PUSH1 0xb8
00001770: SHL
00001771: OR
00001772: SWAP1
00001773: SSTORE
00001774: PUSH1 0x00
00001776: DUP1
00001777: DUP1
00001778: DUP1
00001779: PUSH2 0x1781
0000177c: DUP2
0000177d: PUSH2 0x34e7
00001780: JUMP
00001781: JUMPDEST
00001782: SWAP1
00001783: POP
00001784: PUSH2 0x17ac
00001787: PUSH1 0x12
00001789: SLOAD
0000178a: PUSH8 0x0de0b6b3a7640000
00001793: PUSH2 0x179c
00001796: SWAP2
00001797: SWAP1
00001798: PUSH2 0x56b0
0000179b: JUMP
0000179c: JUMPDEST
0000179d: DUP3
0000179e: SWAP1
0000179f: PUSH8 0x0de0b6b3a7640000
000017a8: PUSH2 0x3da7
000017ab: JUMP
000017ac: JUMPDEST
000017ad: SWAP4
000017ae: POP
000017af: PUSH2 0x17c7
000017b2: PUSH1 0x12
000017b4: SLOAD
000017b5: PUSH8 0x0de0b6b3a7640000
000017be: PUSH2 0x179c
000017c1: SWAP2
000017c2: SWAP1
000017c3: PUSH2 0x56d9
000017c6: JUMP
000017c7: JUMPDEST
000017c8: PUSH1 0x02
000017ca: SLOAD
000017cb: SWAP1
000017cc: SWAP4
000017cd: POP
000017ce: SWAP2
000017cf: POP
000017d0: PUSH2 0x17e3
000017d3: SWAP1
000017d4: POP
000017d5: PUSH2 0x17de
000017d8: DUP6
000017d9: DUP8
000017da: PUSH2 0x5830
000017dd: JUMP
000017de: JUMPDEST
000017df: PUSH2 0x3dd5
000017e2: JUMP
000017e3: JUMPDEST
000017e4: PUSH1 0x00
000017e6: PUSH2 0x17ef
000017e9: PUSH1 0x00
000017eb: PUSH2 0x34e7
000017ee: JUMP
000017ef: JUMPDEST
000017f0: SWAP1
000017f1: POP
000017f2: DUP4
000017f3: DUP2
000017f4: LT
000017f5: DUP1
000017f6: PUSH2 0x17fe
000017f9: JUMPI
000017fa: POP
000017fb: DUP3
000017fc: DUP2
000017fd: GT
000017fe: JUMPDEST
000017ff: ISZERO
00001800: PUSH2 0x182d
00001803: JUMPI
00001804: PUSH1 0x40
00001806: MLOAD
00001807: PUSH4 0x628cc475
0000180c: PUSH1 0xe1
0000180e: SHL
0000180f: DUP2
00001810: MSTORE
00001811: PUSH1 0x04
00001813: DUP2
00001814: ADD
00001815: DUP3
00001816: SWAP1
00001817: MSTORE
00001818: PUSH1 0x24
0000181a: DUP2
0000181b: ADD
0000181c: DUP6
0000181d: SWAP1
0000181e: MSTORE
0000181f: PUSH1 0x44
00001821: DUP2
00001822: ADD
00001823: DUP5
00001824: SWAP1
00001825: MSTORE
00001826: PUSH1 0x64
00001828: ADD
00001829: PUSH2 0x0c56
0000182c: JUMP
0000182d: JUMPDEST
0000182e: PUSH1 0x02
00001830: SLOAD
00001831: DUP3
00001832: EQ
00001833: PUSH2 0x185d
00001836: JUMPI
00001837: PUSH1 0x02
00001839: SLOAD
0000183a: PUSH1 0x40
0000183c: MLOAD
0000183d: PUSH4 0x2b401459
00001842: PUSH1 0xe2
00001844: SHL
00001845: DUP2
00001846: MSTORE
00001847: PUSH1 0x04
00001849: DUP2
0000184a: ADD
0000184b: SWAP2
0000184c: SWAP1
0000184d: SWAP2
0000184e: MSTORE
0000184f: PUSH1 0x24
00001851: DUP2
00001852: ADD
00001853: DUP4
00001854: SWAP1
00001855: MSTORE
00001856: PUSH1 0x44
00001858: ADD
00001859: PUSH2 0x0c56
0000185c: JUMP
0000185d: JUMPDEST
0000185e: POP
0000185f: POP
00001860: PUSH1 0x06
00001862: DUP1
00001863: SLOAD
00001864: PUSH4 0xff0000ff
00001869: PUSH1 0xa0
0000186b: SHL
0000186c: NOT
0000186d: AND
0000186e: SWAP1
0000186f: SSTORE
00001870: POP
00001871: POP
00001872: POP
00001873: POP
00001874: JUMP
00001875: JUMPDEST
00001876: PUSH1 0x06
00001878: SLOAD
00001879: PUSH1 0x01
0000187b: PUSH1 0x01
0000187d: PUSH1 0xa0
0000187f: SHL
00001880: SUB
00001881: AND
00001882: CALLER
00001883: EQ
00001884: PUSH2 0x189f
00001887: JUMPI
00001888: PUSH1 0x40
0000188a: MLOAD
0000188b: PUSH3 0x461bcd
0000188f: PUSH1 0xe5
00001891: SHL
00001892: DUP2
00001893: MSTORE
00001894: PUSH1 0x04
00001896: ADD
00001897: PUSH2 0x0c56
0000189a: SWAP1
0000189b: PUSH2 0x5674
0000189e: JUMP
0000189f: JUMPDEST
000018a0: PUSH1 0x40
000018a2: MLOAD
000018a3: PUSH4 0x5159d87f
000018a8: PUSH1 0xe1
000018aa: SHL
000018ab: DUP2
000018ac: MSTORE
000018ad: PUSH4 0xffffffff
000018b2: DUP3
000018b3: AND
000018b4: PUSH1 0x04
000018b6: DUP3
000018b7: ADD
000018b8: MSTORE
000018b9: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476
000018da: PUSH1 0x01
000018dc: PUSH1 0x01
000018de: PUSH1 0xa0
000018e0: SHL
000018e1: SUB
000018e2: AND
000018e3: SWAP1
000018e4: PUSH4 0xa2b3b0fe
000018e9: SWAP1
000018ea: PUSH1 0x24
000018ec: ADD
000018ed: PUSH1 0x00
000018ef: PUSH1 0x40
000018f1: MLOAD
000018f2: DUP1
000018f3: DUP4
000018f4: SUB
000018f5: DUP2
000018f6: DUP7
000018f7: DUP1
000018f8: EXTCODESIZE
000018f9: ISZERO
000018fa: DUP1
000018fb: ISZERO
000018fc: PUSH2 0x1904
000018ff: JUMPI
00001900: PUSH1 0x00
00001902: DUP1
00001903: REVERT
00001904: JUMPDEST
00001905: POP
00001906: GAS
00001907: STATICCALL
00001908: ISZERO
00001909: DUP1
0000190a: ISZERO
0000190b: PUSH2 0x1918
0000190e: JUMPI
0000190f: RETURNDATASIZE
00001910: PUSH1 0x00
00001912: DUP1
00001913: RETURNDATACOPY
00001914: RETURNDATASIZE
00001915: PUSH1 0x00
00001917: REVERT
00001918: JUMPDEST
00001919: POP
0000191a: POP
0000191b: POP
0000191c: POP
0000191d: PUSH4 0xffffffff
00001922: DUP2
00001923: AND
00001924: PUSH1 0x00
00001926: DUP2
00001927: DUP2
00001928: MSTORE
00001929: PUSH1 0x0d
0000192b: PUSH1 0x20
0000192d: SWAP1
0000192e: DUP2
0000192f: MSTORE
00001930: PUSH1 0x40
00001932: SWAP2
00001933: DUP3
00001934: SWAP1
00001935: KECCAK256
00001936: DUP1
00001937: SLOAD
00001938: PUSH1 0xff
0000193a: NOT
0000193b: AND
0000193c: PUSH1 0x01
0000193e: SWAP1
0000193f: DUP2
00001940: OR
00001941: SWAP1
00001942: SWAP2
00001943: SSTORE
00001944: DUP3
00001945: MLOAD
00001946: SWAP4
00001947: DUP5
00001948: MSTORE
00001949: SWAP1
0000194a: DUP4
0000194b: ADD
0000194c: MSTORE
0000194d: PUSH32 0xea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f
0000196e: SWAP2
0000196f: ADD
00001970: PUSH2 0x159f
00001973: JUMP
00001974: JUMPDEST
00001975: PUSH1 0x06
00001977: SLOAD
00001978: PUSH1 0x01
0000197a: PUSH1 0x01
0000197c: PUSH1 0xa0
0000197e: SHL
0000197f: SUB
00001980: AND
00001981: CALLER
00001982: EQ
00001983: PUSH2 0x199e
00001986: JUMPI
00001987: PUSH1 0x40
00001989: MLOAD
0000198a: PUSH3 0x461bcd
0000198e: PUSH1 0xe5
00001990: SHL
00001991: DUP2
00001992: MSTORE
00001993: PUSH1 0x04
00001995: ADD
00001996: PUSH2 0x0c56
00001999: SWAP1
0000199a: PUSH2 0x5674
0000199d: JUMP
0000199e: JUMPDEST
0000199f: PUSH8 0x016345785d8a0000
000019a8: DUP2
000019a9: GT
000019aa: ISZERO
000019ab: PUSH2 0x19d8
000019ae: JUMPI
000019af: PUSH1 0x40
000019b1: MLOAD
000019b2: PUSH4 0x02d2a90f
000019b7: PUSH1 0xe5
000019b9: SHL
000019ba: DUP2
000019bb: MSTORE
000019bc: PUSH1 0x04
000019be: DUP2
000019bf: ADD
000019c0: DUP3
000019c1: SWAP1
000019c2: MSTORE
000019c3: PUSH8 0x016345785d8a0000
000019cc: PUSH1 0x24
000019ce: DUP3
000019cf: ADD
000019d0: MSTORE
000019d1: PUSH1 0x44
000019d3: ADD
000019d4: PUSH2 0x0c56
000019d7: JUMP
000019d8: JUMPDEST
000019d9: PUSH1 0x12
000019db: DUP1
000019dc: SLOAD
000019dd: SWAP1
000019de: DUP3
000019df: SWAP1
000019e0: SSTORE
000019e1: PUSH1 0x40
000019e3: DUP1
000019e4: MLOAD
000019e5: DUP3
000019e6: DUP2
000019e7: MSTORE
000019e8: PUSH1 0x20
000019ea: DUP2
000019eb: ADD
000019ec: DUP5
000019ed: SWAP1
000019ee: MSTORE
000019ef: PUSH32 0xdf4be33b2e9e3dd4d9e0e85645aea428494a0644a72c51d6a15aedae6b66a3ff
00001a10: SWAP2
00001a11: ADD
00001a12: JUMPDEST
00001a13: PUSH1 0x40
00001a15: MLOAD
00001a16: DUP1
00001a17: SWAP2
00001a18: SUB
00001a19: SWAP1
00001a1a: LOG1
00001a1b: POP
00001a1c: POP
00001a1d: JUMP
00001a1e: JUMPDEST
00001a1f: PUSH1 0x06
00001a21: SLOAD
00001a22: PUSH1 0x01
00001a24: PUSH1 0x01
00001a26: PUSH1 0xa0
00001a28: SHL
00001a29: SUB
00001a2a: AND
00001a2b: CALLER
00001a2c: EQ
00001a2d: PUSH2 0x1a48
00001a30: JUMPI
00001a31: PUSH1 0x40
00001a33: MLOAD
00001a34: PUSH3 0x461bcd
00001a38: PUSH1 0xe5
00001a3a: SHL
00001a3b: DUP2
00001a3c: MSTORE
00001a3d: PUSH1 0x04
00001a3f: ADD
00001a40: PUSH2 0x0c56
00001a43: SWAP1
00001a44: PUSH2 0x5674
00001a47: JUMP
00001a48: JUMPDEST
00001a49: PUSH1 0x07
00001a4b: SLOAD
00001a4c: PUSH1 0x01
00001a4e: PUSH1 0x01
00001a50: PUSH1 0xc0
00001a52: SHL
00001a53: SUB
00001a54: SWAP1
00001a55: DUP2
00001a56: AND
00001a57: SWAP1
00001a58: DUP3
00001a59: AND
00001a5a: GT
00001a5b: ISZERO
00001a5c: PUSH2 0x1a78
00001a5f: JUMPI
00001a60: PUSH1 0x40
00001a62: MLOAD
00001a63: PUSH4 0x34f1ec1b
00001a68: PUSH1 0xe0
00001a6a: SHL
00001a6b: DUP2
00001a6c: MSTORE
00001a6d: PUSH1 0x04
00001a6f: ADD
00001a70: PUSH1 0x40
00001a72: MLOAD
00001a73: DUP1
00001a74: SWAP2
00001a75: SUB
00001a76: SWAP1
00001a77: REVERT
00001a78: JUMPDEST
00001a79: PUSH1 0x07
00001a7b: DUP1
00001a7c: SLOAD
00001a7d: PUSH1 0x01
00001a7f: PUSH1 0x01
00001a81: PUSH1 0xc0
00001a83: SHL
00001a84: SUB
00001a85: NOT
00001a86: AND
00001a87: PUSH1 0x01
00001a89: PUSH1 0x01
00001a8b: PUSH1 0xc0
00001a8d: SHL
00001a8e: SUB
00001a8f: SWAP3
00001a90: SWAP1
00001a91: SWAP3
00001a92: AND
00001a93: SWAP2
00001a94: SWAP1
00001a95: SWAP2
00001a96: OR
00001a97: SWAP1
00001a98: SSTORE
00001a99: JUMP
00001a9a: JUMPDEST
00001a9b: PUSH1 0x09
00001a9d: DUP2
00001a9e: DUP2
00001a9f: SLOAD
00001aa0: DUP2
00001aa1: LT
00001aa2: PUSH2 0x1aaa
00001aa5: JUMPI
00001aa6: PUSH1 0x00
00001aa8: DUP1
00001aa9: REVERT
00001aaa: JUMPDEST
00001aab: SWAP1
00001aac: PUSH1 0x00
00001aae: MSTORE
00001aaf: PUSH1 0x20
00001ab1: PUSH1 0x00
00001ab3: KECCAK256
00001ab4: SWAP1
00001ab5: PUSH1 0x08
00001ab7: SWAP2
00001ab8: DUP3
00001ab9: DUP3
00001aba: DIV
00001abb: ADD
00001abc: SWAP2
00001abd: SWAP1
00001abe: MOD
00001abf: PUSH1 0x04
00001ac1: MUL
00001ac2: SWAP2
00001ac3: POP
00001ac4: SLOAD
00001ac5: SWAP1
00001ac6: PUSH2 0x0100
00001ac9: EXP
00001aca: SWAP1
00001acb: DIV
00001acc: PUSH4 0xffffffff
00001ad1: AND
00001ad2: DUP2
00001ad3: JUMP
00001ad4: JUMPDEST
00001ad5: PUSH1 0x06
00001ad7: SLOAD
00001ad8: PUSH1 0x01
00001ada: PUSH1 0x01
00001adc: PUSH1 0xa0
00001ade: SHL
00001adf: SUB
00001ae0: AND
00001ae1: CALLER
00001ae2: EQ
00001ae3: PUSH2 0x1afe
00001ae6: JUMPI
00001ae7: PUSH1 0x40
00001ae9: MLOAD
00001aea: PUSH3 0x461bcd
00001aee: PUSH1 0xe5
00001af0: SHL
00001af1: DUP2
00001af2: MSTORE
00001af3: PUSH1 0x04
00001af5: ADD
00001af6: PUSH2 0x0c56
00001af9: SWAP1
00001afa: PUSH2 0x5674
00001afd: JUMP
00001afe: JUMPDEST
00001aff: PUSH1 0x06
00001b01: SLOAD
00001b02: PUSH1 0x01
00001b04: PUSH1 0xa8
00001b06: SHL
00001b07: SWAP1
00001b08: DIV
00001b09: PUSH1 0xff
00001b0b: AND
00001b0c: PUSH2 0x1b28
00001b0f: JUMPI
00001b10: PUSH1 0x40
00001b12: MLOAD
00001b13: PUSH4 0xec7165bf
00001b18: PUSH1 0xe0
00001b1a: SHL
00001b1b: DUP2
00001b1c: MSTORE
00001b1d: PUSH1 0x04
00001b1f: ADD
00001b20: PUSH1 0x40
00001b22: MLOAD
00001b23: DUP1
00001b24: SWAP2
00001b25: SUB
00001b26: SWAP1
00001b27: REVERT
00001b28: JUMPDEST
00001b29: PUSH1 0x06
00001b2b: DUP1
00001b2c: SLOAD
00001b2d: PUSH1 0xff
00001b2f: PUSH1 0xa8
00001b31: SHL
00001b32: NOT
00001b33: AND
00001b34: SWAP1
00001b35: SSTORE
00001b36: PUSH1 0x40
00001b38: MLOAD
00001b39: PUSH1 0x00
00001b3b: DUP2
00001b3c: MSTORE
00001b3d: PUSH32 0xb8527b93c36dabdfe078af41be789ba946a4adcfeafcf9d8de21d51629859e3c
00001b5e: SWAP1
00001b5f: PUSH1 0x20
00001b61: ADD
00001b62: PUSH2 0x0f8a
00001b65: JUMP
00001b66: JUMPDEST
00001b67: PUSH1 0x06
00001b69: SLOAD
00001b6a: PUSH1 0x01
00001b6c: PUSH1 0x01
00001b6e: PUSH1 0xa0
00001b70: SHL
00001b71: SUB
00001b72: AND
00001b73: CALLER
00001b74: EQ
00001b75: PUSH2 0x1b90
00001b78: JUMPI
00001b79: PUSH1 0x40
00001b7b: MLOAD
00001b7c: PUSH3 0x461bcd
00001b80: PUSH1 0xe5
00001b82: SHL
00001b83: DUP2
00001b84: MSTORE
00001b85: PUSH1 0x04
00001b87: ADD
00001b88: PUSH2 0x0c56
00001b8b: SWAP1
00001b8c: PUSH2 0x5674
00001b8f: JUMP
00001b90: JUMPDEST
00001b91: PUSH1 0x01
00001b93: PUSH1 0x01
00001b95: PUSH1 0xa0
00001b97: SHL
00001b98: SUB
00001b99: DUP2
00001b9a: AND
00001b9b: PUSH1 0x00
00001b9d: DUP2
00001b9e: DUP2
00001b9f: MSTORE
00001ba0: PUSH1 0x0e
00001ba2: PUSH1 0x20
00001ba4: SWAP1
00001ba5: DUP2
00001ba6: MSTORE
00001ba7: PUSH1 0x40
00001ba9: DUP1
00001baa: DUP4
00001bab: KECCAK256
00001bac: DUP1
00001bad: SLOAD
00001bae: PUSH1 0xff
00001bb0: NOT
00001bb1: AND
00001bb2: SWAP1
00001bb3: SSTORE
00001bb4: DUP1
00001bb5: MLOAD
00001bb6: SWAP4
00001bb7: DUP5
00001bb8: MSTORE
00001bb9: SWAP1
00001bba: DUP4
00001bbb: ADD
00001bbc: SWAP2
00001bbd: SWAP1
00001bbe: SWAP2
00001bbf: MSTORE
00001bc0: PUSH32 0x572570e8a43782d3698a3fed258c72f9c201c19be1e4764e359d1adc8f00af7a
00001be1: SWAP2
00001be2: ADD
00001be3: PUSH2 0x159f
00001be6: JUMP
00001be7: JUMPDEST
00001be8: PUSH1 0x06
00001bea: SLOAD
00001beb: PUSH1 0x00
00001bed: SWAP1
00001bee: PUSH1 0x01
00001bf0: PUSH1 0xa0
00001bf2: SHL
00001bf3: SWAP1
00001bf4: DIV
00001bf5: PUSH1 0xff
00001bf7: AND
00001bf8: ISZERO
00001bf9: PUSH2 0x1c14
00001bfc: JUMPI
00001bfd: PUSH1 0x40
00001bff: MLOAD
00001c00: PUSH3 0x461bcd
00001c04: PUSH1 0xe5
00001c06: SHL
00001c07: DUP2
00001c08: MSTORE
00001c09: PUSH1 0x04
00001c0b: ADD
00001c0c: PUSH2 0x0c56
00001c0f: SWAP1
00001c10: PUSH2 0x5616
00001c13: JUMP
00001c14: JUMPDEST
00001c15: PUSH1 0x06
00001c17: DUP1
00001c18: SLOAD
00001c19: PUSH1 0xff
00001c1b: PUSH1 0xa0
00001c1d: SHL
00001c1e: NOT
00001c1f: AND
00001c20: PUSH1 0x01
00001c22: PUSH1 0xa0
00001c24: SHL
00001c25: OR
00001c26: SWAP1
00001c27: SSTORE
00001c28: PUSH1 0x00
00001c2a: DUP1
00001c2b: PUSH2 0x1c34
00001c2e: PUSH1 0x01
00001c30: PUSH2 0x3a39
00001c33: JUMP
00001c34: JUMPDEST
00001c35: SWAP2
00001c36: POP
00001c37: SWAP2
00001c38: POP
00001c39: PUSH2 0x1c43
00001c3c: DUP6
00001c3d: DUP4
00001c3e: DUP4
00001c3f: PUSH2 0x3f5e
00001c42: JUMP
00001c43: JUMPDEST
00001c44: SWAP3
00001c45: POP
00001c46: DUP3
00001c47: PUSH1 0x00
00001c49: SUB
00001c4a: PUSH2 0x1c66
00001c4d: JUMPI
00001c4e: PUSH1 0x40
00001c50: MLOAD
00001c51: PUSH4 0x426f1537
00001c56: PUSH1 0xe1
00001c58: SHL
00001c59: DUP2
00001c5a: MSTORE
00001c5b: PUSH1 0x04
00001c5d: ADD
00001c5e: PUSH1 0x40
00001c60: MLOAD
00001c61: DUP1
00001c62: SWAP2
00001c63: SUB
00001c64: SWAP1
00001c65: REVERT
00001c66: JUMPDEST
00001c67: PUSH1 0x07
00001c69: SLOAD
00001c6a: PUSH1 0x01
00001c6c: PUSH1 0x01
00001c6e: PUSH1 0xc0
00001c70: SHL
00001c71: SUB
00001c72: AND
00001c73: PUSH2 0x1c7c
00001c76: DUP5
00001c77: DUP4
00001c78: PUSH2 0x56d9
00001c7b: JUMP
00001c7c: JUMPDEST
00001c7d: GT
00001c7e: ISZERO
00001c7f: PUSH2 0x1c9b
00001c82: JUMPI
00001c83: PUSH1 0x40
00001c85: MLOAD
00001c86: PUSH4 0xadea3dfd
00001c8b: PUSH1 0xe0
00001c8d: SHL
00001c8e: DUP2
00001c8f: MSTORE
00001c90: PUSH1 0x04
00001c92: ADD
00001c93: PUSH1 0x40
00001c95: MLOAD
00001c96: DUP1
00001c97: SWAP2
00001c98: SUB
00001c99: SWAP1
00001c9a: REVERT
00001c9b: JUMPDEST
00001c9c: PUSH2 0x1ca6
00001c9f: DUP6
00001ca0: DUP5
00001ca1: DUP7
00001ca2: PUSH2 0x3f6b
00001ca5: JUMP
00001ca6: JUMPDEST
00001ca7: POP
00001ca8: POP
00001ca9: PUSH1 0x06
00001cab: DUP1
00001cac: SLOAD
00001cad: PUSH1 0xff
00001caf: PUSH1 0xa0
00001cb1: SHL
00001cb2: NOT
00001cb3: AND
00001cb4: SWAP1
00001cb5: SSTORE
00001cb6: SWAP3
00001cb7: SWAP2
00001cb8: POP
00001cb9: POP
00001cba: JUMP
00001cbb: JUMPDEST
00001cbc: PUSH1 0x60
00001cbe: PUSH1 0x09
00001cc0: DUP1
00001cc1: SLOAD
00001cc2: DUP1
00001cc3: PUSH1 0x20
00001cc5: MUL
00001cc6: PUSH1 0x20
00001cc8: ADD
00001cc9: PUSH1 0x40
00001ccb: MLOAD
00001ccc: SWAP1
00001ccd: DUP2
00001cce: ADD
00001ccf: PUSH1 0x40
00001cd1: MSTORE
00001cd2: DUP1
00001cd3: SWAP3
00001cd4: SWAP2
00001cd5: SWAP1
00001cd6: DUP2
00001cd7: DUP2
00001cd8: MSTORE
00001cd9: PUSH1 0x20
00001cdb: ADD
00001cdc: DUP3
00001cdd: DUP1
00001cde: SLOAD
00001cdf: DUP1
00001ce0: ISZERO
00001ce1: PUSH2 0x1624
00001ce4: JUMPI
00001ce5: PUSH1 0x00
00001ce7: SWAP2
00001ce8: DUP3
00001ce9: MSTORE
00001cea: PUSH1 0x20
00001cec: SWAP2
00001ced: DUP3
00001cee: SWAP1
00001cef: KECCAK256
00001cf0: DUP1
00001cf1: SLOAD
00001cf2: PUSH4 0xffffffff
00001cf7: AND
00001cf8: DUP5
00001cf9: MSTORE
00001cfa: SWAP1
00001cfb: DUP3
00001cfc: MUL
00001cfd: DUP4
00001cfe: ADD
00001cff: SWAP3
00001d00: SWAP1
00001d01: SWAP2
00001d02: PUSH1 0x04
00001d04: SWAP2
00001d05: ADD
00001d06: DUP1
00001d07: DUP5
00001d08: GT
00001d09: PUSH2 0x15e7
00001d0c: JUMPI
00001d0d: SWAP1
00001d0e: POP
00001d0f: POP
00001d10: POP
00001d11: POP
00001d12: POP
00001d13: POP
00001d14: SWAP1
00001d15: POP
00001d16: SWAP1
00001d17: JUMP
00001d18: JUMPDEST
00001d19: PUSH1 0x0c
00001d1b: PUSH1 0x20
00001d1d: MSTORE
00001d1e: PUSH1 0x00
00001d20: SWAP1
00001d21: DUP2
00001d22: MSTORE
00001d23: PUSH1 0x40
00001d25: SWAP1
00001d26: KECCAK256
00001d27: DUP1
00001d28: SLOAD
00001d29: PUSH1 0x01
00001d2b: DUP3
00001d2c: ADD
00001d2d: DUP1
00001d2e: SLOAD
00001d2f: PUSH1 0x01
00001d31: PUSH1 0x01
00001d33: PUSH1 0xa0
00001d35: SHL
00001d36: SUB
00001d37: DUP4
00001d38: AND
00001d39: SWAP4
00001d3a: PUSH1 0x01
00001d3c: PUSH1 0xa0
00001d3e: SHL
00001d3f: SWAP1
00001d40: SWAP4
00001d41: DIV
00001d42: PUSH1 0xff
00001d44: AND
00001d45: SWAP3
00001d46: SWAP2
00001d47: SWAP1
00001d48: PUSH2 0x1d50
00001d4b: SWAP1
00001d4c: PUSH2 0x563a
00001d4f: JUMP
00001d50: JUMPDEST
00001d51: DUP1
00001d52: PUSH1 0x1f
00001d54: ADD
00001d55: PUSH1 0x20
00001d57: DUP1
00001d58: SWAP2
00001d59: DIV
00001d5a: MUL
00001d5b: PUSH1 0x20
00001d5d: ADD
00001d5e: PUSH1 0x40
00001d60: MLOAD
00001d61: SWAP1
00001d62: DUP2
00001d63: ADD
00001d64: PUSH1 0x40
00001d66: MSTORE
00001d67: DUP1
00001d68: SWAP3
00001d69: SWAP2
00001d6a: SWAP1
00001d6b: DUP2
00001d6c: DUP2
00001d6d: MSTORE
00001d6e: PUSH1 0x20
00001d70: ADD
00001d71: DUP3
00001d72: DUP1
00001d73: SLOAD
00001d74: PUSH2 0x1d7c
00001d77: SWAP1
00001d78: PUSH2 0x563a
00001d7b: JUMP
00001d7c: JUMPDEST
00001d7d: DUP1
00001d7e: ISZERO
00001d7f: PUSH2 0x1dc9
00001d82: JUMPI
00001d83: DUP1
00001d84: PUSH1 0x1f
00001d86: LT
00001d87: PUSH2 0x1d9e
00001d8a: JUMPI
00001d8b: PUSH2 0x0100
00001d8e: DUP1
00001d8f: DUP4
00001d90: SLOAD
00001d91: DIV
00001d92: MUL
00001d93: DUP4
00001d94: MSTORE
00001d95: SWAP2
00001d96: PUSH1 0x20
00001d98: ADD
00001d99: SWAP2
00001d9a: PUSH2 0x1dc9
00001d9d: JUMP
00001d9e: JUMPDEST
00001d9f: DUP3
00001da0: ADD
00001da1: SWAP2
00001da2: SWAP1
00001da3: PUSH1 0x00
00001da5: MSTORE
00001da6: PUSH1 0x20
00001da8: PUSH1 0x00
00001daa: KECCAK256
00001dab: SWAP1
00001dac: JUMPDEST
00001dad: DUP2
00001dae: SLOAD
00001daf: DUP2
00001db0: MSTORE
00001db1: SWAP1
00001db2: PUSH1 0x01
00001db4: ADD
00001db5: SWAP1
00001db6: PUSH1 0x20
00001db8: ADD
00001db9: DUP1
00001dba: DUP4
00001dbb: GT
00001dbc: PUSH2 0x1dac
00001dbf: JUMPI
00001dc0: DUP3
00001dc1: SWAP1
00001dc2: SUB
00001dc3: PUSH1 0x1f
00001dc5: AND
00001dc6: DUP3
00001dc7: ADD
00001dc8: SWAP2
00001dc9: JUMPDEST
00001dca: POP
00001dcb: POP
00001dcc: POP
00001dcd: POP
00001dce: POP
00001dcf: SWAP1
00001dd0: DUP1
00001dd1: PUSH1 0x02
00001dd3: ADD
00001dd4: DUP1
00001dd5: SLOAD
00001dd6: PUSH2 0x1dde
00001dd9: SWAP1
00001dda: PUSH2 0x563a
00001ddd: JUMP
00001dde: JUMPDEST
00001ddf: DUP1
00001de0: PUSH1 0x1f
00001de2: ADD
00001de3: PUSH1 0x20
00001de5: DUP1
00001de6: SWAP2
00001de7: DIV
00001de8: MUL
00001de9: PUSH1 0x20
00001deb: ADD
00001dec: PUSH1 0x40
00001dee: MLOAD
00001def: SWAP1
00001df0: DUP2
00001df1: ADD
00001df2: PUSH1 0x40
00001df4: MSTORE
00001df5: DUP1
00001df6: SWAP3
00001df7: SWAP2
00001df8: SWAP1
00001df9: DUP2
00001dfa: DUP2
00001dfb: MSTORE
00001dfc: PUSH1 0x20
00001dfe: ADD
00001dff: DUP3
00001e00: DUP1
00001e01: SLOAD
00001e02: PUSH2 0x1e0a
00001e05: SWAP1
00001e06: PUSH2 0x563a
00001e09: JUMP
00001e0a: JUMPDEST
00001e0b: DUP1
00001e0c: ISZERO
00001e0d: PUSH2 0x1e57
00001e10: JUMPI
00001e11: DUP1
00001e12: PUSH1 0x1f
00001e14: LT
00001e15: PUSH2 0x1e2c
00001e18: JUMPI
00001e19: PUSH2 0x0100
00001e1c: DUP1
00001e1d: DUP4
00001e1e: SLOAD
00001e1f: DIV
00001e20: MUL
00001e21: DUP4
00001e22: MSTORE
00001e23: SWAP2
00001e24: PUSH1 0x20
00001e26: ADD
00001e27: SWAP2
00001e28: PUSH2 0x1e57
00001e2b: JUMP
00001e2c: JUMPDEST
00001e2d: DUP3
00001e2e: ADD
00001e2f: SWAP2
00001e30: SWAP1
00001e31: PUSH1 0x00
00001e33: MSTORE
00001e34: PUSH1 0x20
00001e36: PUSH1 0x00
00001e38: KECCAK256
00001e39: SWAP1
00001e3a: JUMPDEST
00001e3b: DUP2
00001e3c: SLOAD
00001e3d: DUP2
00001e3e: MSTORE
00001e3f: SWAP1
00001e40: PUSH1 0x01
00001e42: ADD
00001e43: SWAP1
00001e44: PUSH1 0x20
00001e46: ADD
00001e47: DUP1
00001e48: DUP4
00001e49: GT
00001e4a: PUSH2 0x1e3a
00001e4d: JUMPI
00001e4e: DUP3
00001e4f: SWAP1
00001e50: SUB
00001e51: PUSH1 0x1f
00001e53: AND
00001e54: DUP3
00001e55: ADD
00001e56: SWAP2
00001e57: JUMPDEST
00001e58: POP
00001e59: POP
00001e5a: POP
00001e5b: POP
00001e5c: POP
00001e5d: SWAP1
00001e5e: POP
00001e5f: DUP5
00001e60: JUMP
00001e61: JUMPDEST
00001e62: PUSH1 0x09
00001e64: SLOAD
00001e65: PUSH1 0x0a
00001e67: SLOAD
00001e68: PUSH1 0x60
00001e6a: SWAP2
00001e6b: DUP3
00001e6c: SWAP2
00001e6d: DUP3
00001e6e: SWAP2
00001e6f: SWAP1
00001e70: PUSH2 0x1e79
00001e73: DUP2
00001e74: DUP4
00001e75: PUSH2 0x56d9
00001e78: JUMP
00001e79: JUMPDEST
00001e7a: PUSH1 0x01
00001e7c: PUSH1 0x01
00001e7e: PUSH1 0x40
00001e80: SHL
00001e81: SUB
00001e82: DUP2
00001e83: GT
00001e84: ISZERO
00001e85: PUSH2 0x1e90
00001e88: JUMPI
00001e89: PUSH2 0x1e90
00001e8c: PUSH2 0x4ee5
00001e8f: JUMP
00001e90: JUMPDEST
00001e91: PUSH1 0x40
00001e93: MLOAD
00001e94: SWAP1
00001e95: DUP1
00001e96: DUP3
00001e97: MSTORE
00001e98: DUP1
00001e99: PUSH1 0x20
00001e9b: MUL
00001e9c: PUSH1 0x20
00001e9e: ADD
00001e9f: DUP3
00001ea0: ADD
00001ea1: PUSH1 0x40
00001ea3: MSTORE
00001ea4: DUP1
00001ea5: ISZERO
00001ea6: PUSH2 0x1eb9
00001ea9: JUMPI
00001eaa: DUP2
00001eab: PUSH1 0x20
00001ead: ADD
00001eae: PUSH1 0x20
00001eb0: DUP3
00001eb1: MUL
00001eb2: DUP1
00001eb3: CALLDATASIZE
00001eb4: DUP4
00001eb5: CALLDATACOPY
00001eb6: ADD
00001eb7: SWAP1
00001eb8: POP
00001eb9: JUMPDEST
00001eba: POP
00001ebb: SWAP5
00001ebc: POP
00001ebd: PUSH2 0x1ec6
00001ec0: DUP2
00001ec1: DUP4
00001ec2: PUSH2 0x56d9
00001ec5: JUMP
00001ec6: JUMPDEST
00001ec7: PUSH1 0x01
00001ec9: PUSH1 0x01
00001ecb: PUSH1 0x40
00001ecd: SHL
00001ece: SUB
00001ecf: DUP2
00001ed0: GT
00001ed1: ISZERO
00001ed2: PUSH2 0x1edd
00001ed5: JUMPI
00001ed6: PUSH2 0x1edd
00001ed9: PUSH2 0x4ee5
00001edc: JUMP
00001edd: JUMPDEST
00001ede: PUSH1 0x40
00001ee0: MLOAD
00001ee1: SWAP1
00001ee2: DUP1
00001ee3: DUP3
00001ee4: MSTORE
00001ee5: DUP1
00001ee6: PUSH1 0x20
00001ee8: MUL
00001ee9: PUSH1 0x20
00001eeb: ADD
00001eec: DUP3
00001eed: ADD
00001eee: PUSH1 0x40
00001ef0: MSTORE
00001ef1: DUP1
00001ef2: ISZERO
00001ef3: PUSH2 0x1f06
00001ef6: JUMPI
00001ef7: DUP2
00001ef8: PUSH1 0x20
00001efa: ADD
00001efb: PUSH1 0x20
00001efd: DUP3
00001efe: MUL
00001eff: DUP1
00001f00: CALLDATASIZE
00001f01: DUP4
00001f02: CALLDATACOPY
00001f03: ADD
00001f04: SWAP1
00001f05: POP
00001f06: JUMPDEST
00001f07: POP
00001f08: SWAP4
00001f09: POP
00001f0a: PUSH2 0x1f13
00001f0d: DUP2
00001f0e: DUP4
00001f0f: PUSH2 0x56d9
00001f12: JUMP
00001f13: JUMPDEST
00001f14: PUSH1 0x01
00001f16: PUSH1 0x01
00001f18: PUSH1 0x40
00001f1a: SHL
00001f1b: SUB
00001f1c: DUP2
00001f1d: GT
00001f1e: ISZERO
00001f1f: PUSH2 0x1f2a
00001f22: JUMPI
00001f23: PUSH2 0x1f2a
00001f26: PUSH2 0x4ee5
00001f29: JUMP
00001f2a: JUMPDEST
00001f2b: PUSH1 0x40
00001f2d: MLOAD
00001f2e: SWAP1
00001f2f: DUP1
00001f30: DUP3
00001f31: MSTORE
00001f32: DUP1
00001f33: PUSH1 0x20
00001f35: MUL
00001f36: PUSH1 0x20
00001f38: ADD
00001f39: DUP3
00001f3a: ADD
00001f3b: PUSH1 0x40
00001f3d: MSTORE
00001f3e: DUP1
00001f3f: ISZERO
00001f40: PUSH2 0x1f53
00001f43: JUMPI
00001f44: DUP2
00001f45: PUSH1 0x20
00001f47: ADD
00001f48: PUSH1 0x20
00001f4a: DUP3
00001f4b: MUL
00001f4c: DUP1
00001f4d: CALLDATASIZE
00001f4e: DUP4
00001f4f: CALLDATACOPY
00001f50: ADD
00001f51: SWAP1
00001f52: POP
00001f53: JUMPDEST
00001f54: POP
00001f55: SWAP3
00001f56: POP
00001f57: PUSH1 0x00
00001f59: JUMPDEST
00001f5a: DUP3
00001f5b: DUP2
00001f5c: LT
00001f5d: ISZERO
00001f5e: PUSH2 0x2067
00001f61: JUMPI
00001f62: PUSH2 0x1fa2
00001f65: PUSH1 0x09
00001f67: DUP3
00001f68: DUP2
00001f69: SLOAD
00001f6a: DUP2
00001f6b: LT
00001f6c: PUSH2 0x1f77
00001f6f: JUMPI
00001f70: PUSH2 0x1f77
00001f73: PUSH2 0x56c3
00001f76: JUMP
00001f77: JUMPDEST
00001f78: SWAP1
00001f79: PUSH1 0x00
00001f7b: MSTORE
00001f7c: PUSH1 0x20
00001f7e: PUSH1 0x00
00001f80: KECCAK256
00001f81: SWAP1
00001f82: PUSH1 0x08
00001f84: SWAP2
00001f85: DUP3
00001f86: DUP3
00001f87: DIV
00001f88: ADD
00001f89: SWAP2
00001f8a: SWAP1
00001f8b: MOD
00001f8c: PUSH1 0x04
00001f8e: MUL
00001f8f: SWAP1
00001f90: SLOAD
00001f91: SWAP1
00001f92: PUSH2 0x0100
00001f95: EXP
00001f96: SWAP1
00001f97: DIV
00001f98: PUSH4 0xffffffff
00001f9d: AND
00001f9e: PUSH2 0x39a9
00001fa1: JUMP
00001fa2: JUMPDEST
00001fa3: DUP7
00001fa4: DUP3
00001fa5: DUP2
00001fa6: MLOAD
00001fa7: DUP2
00001fa8: LT
00001fa9: PUSH2 0x1fb4
00001fac: JUMPI
00001fad: PUSH2 0x1fb4
00001fb0: PUSH2 0x56c3
00001fb3: JUMP
00001fb4: JUMPDEST
00001fb5: PUSH1 0x20
00001fb7: MUL
00001fb8: PUSH1 0x20
00001fba: ADD
00001fbb: ADD
00001fbc: SWAP1
00001fbd: PUSH1 0x01
00001fbf: PUSH1 0x01
00001fc1: PUSH1 0xa0
00001fc3: SHL
00001fc4: SUB
00001fc5: AND
00001fc6: SWAP1
00001fc7: DUP2
00001fc8: PUSH1 0x01
00001fca: PUSH1 0x01
00001fcc: PUSH1 0xa0
00001fce: SHL
00001fcf: SUB
00001fd0: AND
00001fd1: DUP2
00001fd2: MSTORE
00001fd3: POP
00001fd4: POP
00001fd5: PUSH2 0x2015
00001fd8: PUSH1 0x09
00001fda: DUP3
00001fdb: DUP2
00001fdc: SLOAD
00001fdd: DUP2
00001fde: LT
00001fdf: PUSH2 0x1fea
00001fe2: JUMPI
00001fe3: PUSH2 0x1fea
00001fe6: PUSH2 0x56c3
00001fe9: JUMP
00001fea: JUMPDEST
00001feb: SWAP1
00001fec: PUSH1 0x00
00001fee: MSTORE
00001fef: PUSH1 0x20
00001ff1: PUSH1 0x00
00001ff3: KECCAK256
00001ff4: SWAP1
00001ff5: PUSH1 0x08
00001ff7: SWAP2
00001ff8: DUP3
00001ff9: DUP3
00001ffa: DIV
00001ffb: ADD
00001ffc: SWAP2
00001ffd: SWAP1
00001ffe: MOD
00001fff: PUSH1 0x04
00002001: MUL
00002002: SWAP1
00002003: SLOAD
00002004: SWAP1
00002005: PUSH2 0x0100
00002008: EXP
00002009: SWAP1
0000200a: DIV
0000200b: PUSH4 0xffffffff
00002010: AND
00002011: PUSH2 0x3b98
00002014: JUMP
00002015: JUMPDEST
00002016: DUP6
00002017: DUP3
00002018: DUP2
00002019: MLOAD
0000201a: DUP2
0000201b: LT
0000201c: PUSH2 0x2027
0000201f: JUMPI
00002020: PUSH2 0x2027
00002023: PUSH2 0x56c3
00002026: JUMP
00002027: JUMPDEST
00002028: PUSH1 0x20
0000202a: MUL
0000202b: PUSH1 0x20
0000202d: ADD
0000202e: ADD
0000202f: DUP2
00002030: DUP2
00002031: MSTORE
00002032: POP
00002033: POP
00002034: PUSH1 0x00
00002036: DUP5
00002037: DUP3
00002038: DUP2
00002039: MLOAD
0000203a: DUP2
0000203b: LT
0000203c: PUSH2 0x2047
0000203f: JUMPI
00002040: PUSH2 0x2047
00002043: PUSH2 0x56c3
00002046: JUMP
00002047: JUMPDEST
00002048: SWAP2
00002049: ISZERO
0000204a: ISZERO
0000204b: PUSH1 0x20
0000204d: SWAP3
0000204e: DUP4
0000204f: MUL
00002050: SWAP2
00002051: SWAP1
00002052: SWAP2
00002053: ADD
00002054: SWAP1
00002055: SWAP2
00002056: ADD
00002057: MSTORE
00002058: PUSH2 0x2060
0000205b: DUP2
0000205c: PUSH2 0x583d
0000205f: JUMP
00002060: JUMPDEST
00002061: SWAP1
00002062: POP
00002063: PUSH2 0x1f59
00002066: JUMP
00002067: JUMPDEST
00002068: POP
00002069: PUSH1 0x00
0000206b: JUMPDEST
0000206c: DUP2
0000206d: DUP2
0000206e: LT
0000206f: ISZERO
00002070: PUSH2 0x214a
00002073: JUMPI
00002074: PUSH2 0x2089
00002077: PUSH1 0x0a
00002079: DUP3
0000207a: DUP2
0000207b: SLOAD
0000207c: DUP2
0000207d: LT
0000207e: PUSH2 0x1f77
00002081: JUMPI
00002082: PUSH2 0x1f77
00002085: PUSH2 0x56c3
00002088: JUMP
00002089: JUMPDEST
0000208a: PUSH1 0x09
0000208c: SLOAD
0000208d: DUP8
0000208e: SWAP1
0000208f: PUSH2 0x2098
00002092: SWAP1
00002093: DUP5
00002094: PUSH2 0x56d9
00002097: JUMP
00002098: JUMPDEST
00002099: DUP2
0000209a: MLOAD
0000209b: DUP2
0000209c: LT
0000209d: PUSH2 0x20a8
000020a0: JUMPI
000020a1: PUSH2 0x20a8
000020a4: PUSH2 0x56c3
000020a7: JUMP
000020a8: JUMPDEST
000020a9: PUSH1 0x20
000020ab: MUL
000020ac: PUSH1 0x20
000020ae: ADD
000020af: ADD
000020b0: SWAP1
000020b1: PUSH1 0x01
000020b3: PUSH1 0x01
000020b5: PUSH1 0xa0
000020b7: SHL
000020b8: SUB
000020b9: AND
000020ba: SWAP1
000020bb: DUP2
000020bc: PUSH1 0x01
000020be: PUSH1 0x01
000020c0: PUSH1 0xa0
000020c2: SHL
000020c3: SUB
000020c4: AND
000020c5: DUP2
000020c6: MSTORE
000020c7: POP
000020c8: POP
000020c9: PUSH2 0x20de
000020cc: PUSH1 0x0a
000020ce: DUP3
000020cf: DUP2
000020d0: SLOAD
000020d1: DUP2
000020d2: LT
000020d3: PUSH2 0x1fea
000020d6: JUMPI
000020d7: PUSH2 0x1fea
000020da: PUSH2 0x56c3
000020dd: JUMP
000020de: JUMPDEST
000020df: PUSH1 0x09
000020e1: SLOAD
000020e2: DUP7
000020e3: SWAP1
000020e4: PUSH2 0x20ed
000020e7: SWAP1
000020e8: DUP5
000020e9: PUSH2 0x56d9
000020ec: JUMP
000020ed: JUMPDEST
000020ee: DUP2
000020ef: MLOAD
000020f0: DUP2
000020f1: LT
000020f2: PUSH2 0x20fd
000020f5: JUMPI
000020f6: PUSH2 0x20fd
000020f9: PUSH2 0x56c3
000020fc: JUMP
000020fd: JUMPDEST
000020fe: PUSH1 0x20
00002100: SWAP1
00002101: DUP2
00002102: MUL
00002103: SWAP2
00002104: SWAP1
00002105: SWAP2
00002106: ADD
00002107: ADD
00002108: MSTORE
00002109: PUSH1 0x09
0000210b: SLOAD
0000210c: PUSH1 0x01
0000210e: SWAP1
0000210f: DUP6
00002110: SWAP1
00002111: PUSH2 0x211a
00002114: SWAP1
00002115: DUP5
00002116: PUSH2 0x56d9
00002119: JUMP
0000211a: JUMPDEST
0000211b: DUP2
0000211c: MLOAD
0000211d: DUP2
0000211e: LT
0000211f: PUSH2 0x212a
00002122: JUMPI
00002123: PUSH2 0x212a
00002126: PUSH2 0x56c3
00002129: JUMP
0000212a: JUMPDEST
0000212b: SWAP2
0000212c: ISZERO
0000212d: ISZERO
0000212e: PUSH1 0x20
00002130: SWAP3
00002131: DUP4
00002132: MUL
00002133: SWAP2
00002134: SWAP1
00002135: SWAP2
00002136: ADD
00002137: SWAP1
00002138: SWAP2
00002139: ADD
0000213a: MSTORE
0000213b: PUSH2 0x2143
0000213e: DUP2
0000213f: PUSH2 0x583d
00002142: JUMP
00002143: JUMPDEST
00002144: SWAP1
00002145: POP
00002146: PUSH2 0x206b
00002149: JUMP
0000214a: JUMPDEST
0000214b: POP
0000214c: POP
0000214d: POP
0000214e: SWAP1
0000214f: SWAP2
00002150: SWAP3
00002151: JUMP
00002152: JUMPDEST
00002153: PUSH1 0x06
00002155: SLOAD
00002156: PUSH1 0x00
00002158: SWAP1
00002159: PUSH1 0x01
0000215b: PUSH1 0xa0
0000215d: SHL
0000215e: SWAP1
0000215f: DIV
00002160: PUSH1 0xff
00002162: AND
00002163: ISZERO
00002164: PUSH2 0x217f
00002167: JUMPI
00002168: PUSH1 0x40
0000216a: MLOAD
0000216b: PUSH3 0x461bcd
0000216f: PUSH1 0xe5
00002171: SHL
00002172: DUP2
00002173: MSTORE
00002174: PUSH1 0x04
00002176: ADD
00002177: PUSH2 0x0c56
0000217a: SWAP1
0000217b: PUSH2 0x5616
0000217e: JUMP
0000217f: JUMPDEST
00002180: PUSH1 0x06
00002182: DUP1
00002183: SLOAD
00002184: PUSH1 0xff
00002186: PUSH1 0xa0
00002188: SHL
00002189: NOT
0000218a: AND
0000218b: PUSH1 0x01
0000218d: PUSH1 0xa0
0000218f: SHL
00002190: OR
00002191: SWAP1
00002192: SSTORE
00002193: PUSH1 0x00
00002195: DUP1
00002196: PUSH2 0x219f
00002199: PUSH1 0x01
0000219b: PUSH2 0x3a39
0000219e: JUMP
0000219f: JUMPDEST
000021a0: SWAP2
000021a1: POP
000021a2: SWAP2
000021a3: POP
000021a4: PUSH2 0x21ae
000021a7: DUP6
000021a8: DUP4
000021a9: DUP4
000021aa: PUSH2 0x4006
000021ad: JUMP
000021ae: JUMPDEST
000021af: SWAP3
000021b0: POP
000021b1: DUP3
000021b2: PUSH1 0x00
000021b4: SUB
000021b5: PUSH2 0x21d1
000021b8: JUMPI
000021b9: PUSH1 0x40
000021bb: MLOAD
000021bc: PUSH4 0x97683005
000021c1: PUSH1 0xe0
000021c3: SHL
000021c4: DUP2
000021c5: MSTORE
000021c6: PUSH1 0x04
000021c8: ADD
000021c9: PUSH1 0x40
000021cb: MLOAD
000021cc: DUP1
000021cd: SWAP2
000021ce: SUB
000021cf: SWAP1
000021d0: REVERT
000021d1: JUMPDEST
000021d2: PUSH1 0x07
000021d4: SLOAD
000021d5: PUSH1 0x01
000021d7: PUSH1 0x01
000021d9: PUSH1 0xc0
000021db: SHL
000021dc: SUB
000021dd: AND
000021de: PUSH2 0x21e7
000021e1: DUP7
000021e2: DUP4
000021e3: PUSH2 0x56d9
000021e6: JUMP
000021e7: JUMPDEST
000021e8: GT
000021e9: ISZERO
000021ea: PUSH2 0x2206
000021ed: JUMPI
000021ee: PUSH1 0x40
000021f0: MLOAD
000021f1: PUSH4 0xadea3dfd
000021f6: PUSH1 0xe0
000021f8: SHL
000021f9: DUP2
000021fa: MSTORE
000021fb: PUSH1 0x04
000021fd: ADD
000021fe: PUSH1 0x40
00002200: MLOAD
00002201: DUP1
00002202: SWAP2
00002203: SUB
00002204: SWAP1
00002205: REVERT
00002206: JUMPDEST
00002207: PUSH2 0x1ca6
0000220a: DUP4
0000220b: DUP7
0000220c: DUP7
0000220d: PUSH2 0x3f6b
00002210: JUMP
00002211: JUMPDEST
00002212: PUSH1 0x01
00002214: DUP1
00002215: SLOAD
00002216: PUSH2 0x0c7b
00002219: SWAP1
0000221a: PUSH2 0x563a
0000221d: JUMP
0000221e: JUMPDEST
0000221f: PUSH1 0x06
00002221: SLOAD
00002222: PUSH1 0x01
00002224: PUSH1 0x01
00002226: PUSH1 0xa0
00002228: SHL
00002229: SUB
0000222a: AND
0000222b: CALLER
0000222c: EQ
0000222d: PUSH2 0x2248
00002230: JUMPI
00002231: PUSH1 0x40
00002233: MLOAD
00002234: PUSH3 0x461bcd
00002238: PUSH1 0xe5
0000223a: SHL
0000223b: DUP2
0000223c: MSTORE
0000223d: PUSH1 0x04
0000223f: ADD
00002240: PUSH2 0x0c56
00002243: SWAP1
00002244: PUSH2 0x5674
00002247: JUMP
00002248: JUMPDEST
00002249: PUSH2 0x2250
0000224c: PUSH2 0x3b6d
0000224f: JUMP
00002250: JUMPDEST
00002251: PUSH4 0xffffffff
00002256: DUP4
00002257: AND
00002258: PUSH1 0x00
0000225a: SWAP1
0000225b: DUP2
0000225c: MSTORE
0000225d: PUSH1 0x0b
0000225f: PUSH1 0x20
00002261: MSTORE
00002262: PUSH1 0x40
00002264: SWAP1
00002265: KECCAK256
00002266: SLOAD
00002267: PUSH1 0xff
00002269: AND
0000226a: ISZERO
0000226b: PUSH2 0x228f
0000226e: JUMPI
0000226f: PUSH1 0x40
00002271: MLOAD
00002272: PUSH4 0x335894fb
00002277: PUSH1 0xe1
00002279: SHL
0000227a: DUP2
0000227b: MSTORE
0000227c: PUSH4 0xffffffff
00002281: DUP5
00002282: AND
00002283: PUSH1 0x04
00002285: DUP3
00002286: ADD
00002287: MSTORE
00002288: PUSH1 0x24
0000228a: ADD
0000228b: PUSH2 0x0c56
0000228e: JUMP
0000228f: JUMPDEST
00002290: PUSH4 0xffffffff
00002295: DUP4
00002296: AND
00002297: PUSH1 0x00
00002299: SWAP1
0000229a: DUP2
0000229b: MSTORE
0000229c: PUSH1 0x0d
0000229e: PUSH1 0x20
000022a0: MSTORE
000022a1: PUSH1 0x40
000022a3: SWAP1
000022a4: KECCAK256
000022a5: SLOAD
000022a6: PUSH1 0xff
000022a8: AND
000022a9: PUSH2 0x22cd
000022ac: JUMPI
000022ad: PUSH1 0x40
000022af: MLOAD
000022b0: PUSH4 0x1f9db01d
000022b5: PUSH1 0xe3
000022b7: SHL
000022b8: DUP2
000022b9: MSTORE
000022ba: PUSH4 0xffffffff
000022bf: DUP5
000022c0: AND
000022c1: PUSH1 0x04
000022c3: DUP3
000022c4: ADD
000022c5: MSTORE
000022c6: PUSH1 0x24
000022c8: ADD
000022c9: PUSH2 0x0c56
000022cc: JUMP
000022cd: JUMPDEST
000022ce: PUSH1 0x40
000022d0: MLOAD
000022d1: PUSH4 0x85ae5d57
000022d6: PUSH1 0xe0
000022d8: SHL
000022d9: DUP2
000022da: MSTORE
000022db: PUSH4 0xffffffff
000022e0: DUP5
000022e1: AND
000022e2: PUSH1 0x04
000022e4: DUP3
000022e5: ADD
000022e6: MSTORE
000022e7: PUSH1 0x00
000022e9: SWAP1
000022ea: DUP2
000022eb: SWAP1
000022ec: DUP2
000022ed: SWAP1
000022ee: PUSH1 0x01
000022f0: PUSH1 0x01
000022f2: PUSH1 0xa0
000022f4: SHL
000022f5: SUB
000022f6: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476
00002317: AND
00002318: SWAP1
00002319: PUSH4 0x85ae5d57
0000231e: SWAP1
0000231f: PUSH1 0x24
00002321: ADD
00002322: PUSH1 0x00
00002324: PUSH1 0x40
00002326: MLOAD
00002327: DUP1
00002328: DUP4
00002329: SUB
0000232a: DUP2
0000232b: DUP7
0000232c: GAS
0000232d: STATICCALL
0000232e: ISZERO
0000232f: DUP1
00002330: ISZERO
00002331: PUSH2 0x233e
00002334: JUMPI
00002335: RETURNDATASIZE
00002336: PUSH1 0x00
00002338: DUP1
00002339: RETURNDATACOPY
0000233a: RETURNDATASIZE
0000233b: PUSH1 0x00
0000233d: REVERT
0000233e: JUMPDEST
0000233f: POP
00002340: POP
00002341: POP
00002342: POP
00002343: PUSH1 0x40
00002345: MLOAD
00002346: RETURNDATASIZE
00002347: PUSH1 0x00
00002349: DUP3
0000234a: RETURNDATACOPY
0000234b: PUSH1 0x1f
0000234d: RETURNDATASIZE
0000234e: SWAP1
0000234f: DUP2
00002350: ADD
00002351: PUSH1 0x1f
00002353: NOT
00002354: AND
00002355: DUP3
00002356: ADD
00002357: PUSH1 0x40
00002359: MSTORE
0000235a: PUSH2 0x2366
0000235d: SWAP2
0000235e: SWAP1
0000235f: DUP2
00002360: ADD
00002361: SWAP1
00002362: PUSH2 0x5856
00002365: JUMP
00002366: JUMPDEST
00002367: SWAP3
00002368: POP
00002369: SWAP3
0000236a: POP
0000236b: SWAP3
0000236c: POP
0000236d: DUP4
0000236e: ISZERO
0000236f: ISZERO
00002370: DUP3
00002371: ISZERO
00002372: ISZERO
00002373: EQ
00002374: PUSH2 0x2398
00002377: JUMPI
00002378: PUSH1 0x40
0000237a: MLOAD
0000237b: PUSH4 0x2b1d0bd3
00002380: PUSH1 0xe1
00002382: SHL
00002383: DUP2
00002384: MSTORE
00002385: PUSH4 0xffffffff
0000238a: DUP8
0000238b: AND
0000238c: PUSH1 0x04
0000238e: DUP3
0000238f: ADD
00002390: MSTORE
00002391: PUSH1 0x24
00002393: ADD
00002394: PUSH2 0x0c56
00002397: JUMP
00002398: JUMPDEST
00002399: PUSH1 0x40
0000239b: DUP1
0000239c: MLOAD
0000239d: PUSH1 0x80
0000239f: DUP2
000023a0: ADD
000023a1: DUP3
000023a2: MSTORE
000023a3: PUSH1 0x01
000023a5: PUSH1 0x01
000023a7: PUSH1 0xa0
000023a9: SHL
000023aa: SUB
000023ab: DUP1
000023ac: DUP7
000023ad: AND
000023ae: DUP3
000023af: MSTORE
000023b0: DUP5
000023b1: ISZERO
000023b2: ISZERO
000023b3: PUSH1 0x20
000023b5: DUP1
000023b6: DUP5
000023b7: ADD
000023b8: SWAP2
000023b9: DUP3
000023ba: MSTORE
000023bb: DUP4
000023bc: DUP6
000023bd: ADD
000023be: DUP7
000023bf: DUP2
000023c0: MSTORE
000023c1: PUSH1 0x60
000023c3: DUP6
000023c4: ADD
000023c5: DUP12
000023c6: SWAP1
000023c7: MSTORE
000023c8: PUSH4 0xffffffff
000023cd: DUP13
000023ce: AND
000023cf: PUSH1 0x00
000023d1: SWAP1
000023d2: DUP2
000023d3: MSTORE
000023d4: PUSH1 0x0c
000023d6: SWAP1
000023d7: SWAP3
000023d8: MSTORE
000023d9: SWAP5
000023da: SWAP1
000023db: KECCAK256
000023dc: DUP4
000023dd: MLOAD
000023de: DUP2
000023df: SLOAD
000023e0: SWAP3
000023e1: MLOAD
000023e2: ISZERO
000023e3: ISZERO
000023e4: PUSH1 0x01
000023e6: PUSH1 0xa0
000023e8: SHL
000023e9: MUL
000023ea: PUSH1 0x01
000023ec: PUSH1 0x01
000023ee: PUSH1 0xa8
000023f0: SHL
000023f1: SUB
000023f2: NOT
000023f3: SWAP1
000023f4: SWAP4
000023f5: AND
000023f6: SWAP4
000023f7: AND
000023f8: SWAP3
000023f9: SWAP1
000023fa: SWAP3
000023fb: OR
000023fc: OR
000023fd: DUP2
000023fe: SSTORE
000023ff: SWAP2
00002400: MLOAD
00002401: SWAP1
00002402: SWAP2
00002403: SWAP1
00002404: PUSH1 0x01
00002406: DUP3
00002407: ADD
00002408: SWAP1
00002409: PUSH2 0x2412
0000240c: SWAP1
0000240d: DUP3
0000240e: PUSH2 0x593b
00002411: JUMP
00002412: JUMPDEST
00002413: POP
00002414: PUSH1 0x60
00002416: DUP3
00002417: ADD
00002418: MLOAD
00002419: PUSH1 0x02
0000241b: DUP3
0000241c: ADD
0000241d: SWAP1
0000241e: PUSH2 0x2427
00002421: SWAP1
00002422: DUP3
00002423: PUSH2 0x593b
00002426: JUMP
00002427: JUMPDEST
00002428: POP
00002429: SWAP1
0000242a: POP
0000242b: POP
0000242c: DUP2
0000242d: ISZERO
0000242e: PUSH2 0x2468
00002431: JUMPI
00002432: PUSH1 0x0a
00002434: SLOAD
00002435: PUSH1 0x20
00002437: GT
00002438: PUSH2 0x2457
0000243b: JUMPI
0000243c: PUSH1 0x40
0000243e: MLOAD
0000243f: PUSH4 0xf025236d
00002444: PUSH1 0xe0
00002446: SHL
00002447: DUP2
00002448: MSTORE
00002449: PUSH1 0x20
0000244b: PUSH1 0x04
0000244d: DUP3
0000244e: ADD
0000244f: MSTORE
00002450: PUSH1 0x24
00002452: ADD
00002453: PUSH2 0x0c56
00002456: JUMP
00002457: JUMPDEST
00002458: PUSH2 0x2463
0000245b: PUSH1 0x0a
0000245d: DUP9
0000245e: DUP9
0000245f: PUSH2 0x4013
00002462: JUMP
00002463: JUMPDEST
00002464: PUSH2 0x249a
00002467: JUMP
00002468: JUMPDEST
00002469: PUSH1 0x09
0000246b: SLOAD
0000246c: PUSH1 0x20
0000246e: GT
0000246f: PUSH2 0x248e
00002472: JUMPI
00002473: PUSH1 0x40
00002475: MLOAD
00002476: PUSH4 0xf025236d
0000247b: PUSH1 0xe0
0000247d: SHL
0000247e: DUP2
0000247f: MSTORE
00002480: PUSH1 0x20
00002482: PUSH1 0x04
00002484: DUP3
00002485: ADD
00002486: MSTORE
00002487: PUSH1 0x24
00002489: ADD
0000248a: PUSH2 0x0c56
0000248d: JUMP
0000248e: JUMPDEST
0000248f: PUSH2 0x249a
00002492: PUSH1 0x09
00002494: DUP9
00002495: DUP9
00002496: PUSH2 0x4013
00002499: JUMP
0000249a: JUMPDEST
0000249b: PUSH4 0xffffffff
000024a0: DUP7
000024a1: AND
000024a2: PUSH1 0x00
000024a4: SWAP1
000024a5: DUP2
000024a6: MSTORE
000024a7: PUSH1 0x0b
000024a9: PUSH1 0x20
000024ab: MSTORE
000024ac: PUSH1 0x40
000024ae: SWAP1
000024af: DUP2
000024b0: SWAP1
000024b1: KECCAK256
000024b2: DUP1
000024b3: SLOAD
000024b4: PUSH1 0xff
000024b6: NOT
000024b7: AND
000024b8: PUSH1 0x01
000024ba: OR
000024bb: SWAP1
000024bc: SSTORE
000024bd: MLOAD
000024be: PUSH32 0xc4f8cb57c016f0b294fff2666f86fa6cfee9b03aed19f816ae4bf44b7e837bbb
000024df: SWAP1
000024e0: PUSH2 0x24fe
000024e3: SWAP1
000024e4: DUP9
000024e5: SWAP1
000024e6: DUP11
000024e7: SWAP1
000024e8: PUSH4 0xffffffff
000024ed: SWAP3
000024ee: DUP4
000024ef: AND
000024f0: DUP2
000024f1: MSTORE
000024f2: SWAP2
000024f3: AND
000024f4: PUSH1 0x20
000024f6: DUP3
000024f7: ADD
000024f8: MSTORE
000024f9: PUSH1 0x40
000024fb: ADD
000024fc: SWAP1
000024fd: JUMP
000024fe: JUMPDEST
000024ff: PUSH1 0x40
00002501: MLOAD
00002502: DUP1
00002503: SWAP2
00002504: SUB
00002505: SWAP1
00002506: LOG1
00002507: POP
00002508: POP
00002509: POP
0000250a: POP
0000250b: POP
0000250c: POP
0000250d: POP
0000250e: JUMP
0000250f: JUMPDEST
00002510: PUSH1 0x06
00002512: SLOAD
00002513: PUSH1 0x01
00002515: PUSH1 0x01
00002517: PUSH1 0xa0
00002519: SHL
0000251a: SUB
0000251b: AND
0000251c: CALLER
0000251d: EQ
0000251e: PUSH2 0x2539
00002521: JUMPI
00002522: PUSH1 0x40
00002524: MLOAD
00002525: PUSH3 0x461bcd
00002529: PUSH1 0xe5
0000252b: SHL
0000252c: DUP2
0000252d: MSTORE
0000252e: PUSH1 0x04
00002530: ADD
00002531: PUSH2 0x0c56
00002534: SWAP1
00002535: PUSH2 0x5674
00002538: JUMP
00002539: JUMPDEST
0000253a: PUSH1 0x00
0000253c: DUP2
0000253d: PUSH2 0x2584
00002540: JUMPI
00002541: PUSH1 0x09
00002543: DUP5
00002544: PUSH4 0xffffffff
00002549: AND
0000254a: DUP2
0000254b: SLOAD
0000254c: DUP2
0000254d: LT
0000254e: PUSH2 0x2559
00002551: JUMPI
00002552: PUSH2 0x2559
00002555: PUSH2 0x56c3
00002558: JUMP
00002559: JUMPDEST
0000255a: SWAP1
0000255b: PUSH1 0x00
0000255d: MSTORE
0000255e: PUSH1 0x20
00002560: PUSH1 0x00
00002562: KECCAK256
00002563: SWAP1
00002564: PUSH1 0x08
00002566: SWAP2
00002567: DUP3
00002568: DUP3
00002569: DIV
0000256a: ADD
0000256b: SWAP2
0000256c: SWAP1
0000256d: MOD
0000256e: PUSH1 0x04
00002570: MUL
00002571: SWAP1
00002572: SLOAD
00002573: SWAP1
00002574: PUSH2 0x0100
00002577: EXP
00002578: SWAP1
00002579: DIV
0000257a: PUSH4 0xffffffff
0000257f: AND
00002580: PUSH2 0x25c4
00002583: JUMP
00002584: JUMPDEST
00002585: PUSH1 0x0a
00002587: DUP5
00002588: PUSH4 0xffffffff
0000258d: AND
0000258e: DUP2
0000258f: SLOAD
00002590: DUP2
00002591: LT
00002592: PUSH2 0x259d
00002595: JUMPI
00002596: PUSH2 0x259d
00002599: PUSH2 0x56c3
0000259c: JUMP
0000259d: JUMPDEST
0000259e: SWAP1
0000259f: PUSH1 0x00
000025a1: MSTORE
000025a2: PUSH1 0x20
000025a4: PUSH1 0x00
000025a6: KECCAK256
000025a7: SWAP1
000025a8: PUSH1 0x08
000025aa: SWAP2
000025ab: DUP3
000025ac: DUP3
000025ad: DIV
000025ae: ADD
000025af: SWAP2
000025b0: SWAP1
000025b1: MOD
000025b2: PUSH1 0x04
000025b4: MUL
000025b5: SWAP1
000025b6: SLOAD
000025b7: SWAP1
000025b8: PUSH2 0x0100
000025bb: EXP
000025bc: SWAP1
000025bd: DIV
000025be: PUSH4 0xffffffff
000025c3: AND
000025c4: JUMPDEST
000025c5: SWAP1
000025c6: POP
000025c7: DUP1
000025c8: PUSH4 0xffffffff
000025cd: AND
000025ce: DUP4
000025cf: PUSH4 0xffffffff
000025d4: AND
000025d5: EQ
000025d6: ISZERO
000025d7: DUP1
000025d8: PUSH2 0x266a
000025db: JUMPI
000025dc: POP
000025dd: PUSH1 0x40
000025df: MLOAD
000025e0: PUSH4 0x21a0f753
000025e5: PUSH1 0xe0
000025e7: SHL
000025e8: DUP2
000025e9: MSTORE
000025ea: PUSH4 0xffffffff
000025ef: DUP5
000025f0: AND
000025f1: PUSH1 0x04
000025f3: DUP3
000025f4: ADD
000025f5: MSTORE
000025f6: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476
00002617: PUSH1 0x01
00002619: PUSH1 0x01
0000261b: PUSH1 0xa0
0000261d: SHL
0000261e: SUB
0000261f: AND
00002620: SWAP1
00002621: PUSH4 0x21a0f753
00002626: SWAP1
00002627: PUSH1 0x24
00002629: ADD
0000262a: PUSH1 0x20
0000262c: PUSH1 0x40
0000262e: MLOAD
0000262f: DUP1
00002630: DUP4
00002631: SUB
00002632: DUP2
00002633: DUP7
00002634: GAS
00002635: STATICCALL
00002636: ISZERO
00002637: DUP1
00002638: ISZERO
00002639: PUSH2 0x2646
0000263c: JUMPI
0000263d: RETURNDATASIZE
0000263e: PUSH1 0x00
00002640: DUP1
00002641: RETURNDATACOPY
00002642: RETURNDATASIZE
00002643: PUSH1 0x00
00002645: REVERT
00002646: JUMPDEST
00002647: POP
00002648: POP
00002649: POP
0000264a: POP
0000264b: PUSH1 0x40
0000264d: MLOAD
0000264e: RETURNDATASIZE
0000264f: PUSH1 0x1f
00002651: NOT
00002652: PUSH1 0x1f
00002654: DUP3
00002655: ADD
00002656: AND
00002657: DUP3
00002658: ADD
00002659: DUP1
0000265a: PUSH1 0x40
0000265c: MSTORE
0000265d: POP
0000265e: DUP2
0000265f: ADD
00002660: SWAP1
00002661: PUSH2 0x266a
00002664: SWAP2
00002665: SWAP1
00002666: PUSH2 0x59fa
00002669: JUMP
0000266a: JUMPDEST
0000266b: ISZERO
0000266c: PUSH2 0x2688
0000266f: JUMPI
00002670: PUSH1 0x40
00002672: MLOAD
00002673: PUSH4 0xd4db0b79
00002678: PUSH1 0xe0
0000267a: SHL
0000267b: DUP2
0000267c: MSTORE
0000267d: PUSH1 0x04
0000267f: ADD
00002680: PUSH1 0x40
00002682: MLOAD
00002683: DUP1
00002684: SWAP2
00002685: SUB
00002686: SWAP1
00002687: REVERT
00002688: JUMPDEST
00002689: PUSH2 0x1171
0000268c: DUP5
0000268d: DUP5
0000268e: DUP5
0000268f: PUSH2 0x3c21
00002692: JUMP
00002693: JUMPDEST
00002694: PUSH1 0x06
00002696: SLOAD
00002697: PUSH1 0x01
00002699: PUSH1 0x01
0000269b: PUSH1 0xa0
0000269d: SHL
0000269e: SUB
0000269f: AND
000026a0: CALLER
000026a1: EQ
000026a2: PUSH2 0x26bd
000026a5: JUMPI
000026a6: PUSH1 0x40
000026a8: MLOAD
000026a9: PUSH3 0x461bcd
000026ad: PUSH1 0xe5
000026af: SHL
000026b0: DUP2
000026b1: MSTORE
000026b2: PUSH1 0x04
000026b4: ADD
000026b5: PUSH2 0x0c56
000026b8: SWAP1
000026b9: PUSH2 0x5674
000026bc: JUMP
000026bd: JUMPDEST
000026be: PUSH1 0x06
000026c0: SLOAD
000026c1: PUSH1 0x01
000026c3: PUSH1 0xb0
000026c5: SHL
000026c6: SWAP1
000026c7: DIV
000026c8: PUSH1 0xff
000026ca: AND
000026cb: PUSH2 0x26d5
000026ce: JUMPI
000026cf: PUSH1 0x01
000026d1: PUSH2 0x26d8
000026d4: JUMP
000026d5: JUMPDEST
000026d6: PUSH1 0x00
000026d8: JUMPDEST
000026d9: PUSH1 0x06
000026db: DUP1
000026dc: SLOAD
000026dd: SWAP2
000026de: ISZERO
000026df: ISZERO
000026e0: PUSH1 0x01
000026e2: PUSH1 0xb0
000026e4: SHL
000026e5: MUL
000026e6: PUSH1 0xff
000026e8: PUSH1 0xb0
000026ea: SHL
000026eb: NOT
000026ec: SWAP1
000026ed: SWAP3
000026ee: AND
000026ef: SWAP2
000026f0: SWAP1
000026f1: SWAP2
000026f2: OR
000026f3: SWAP1
000026f4: SSTORE
000026f5: JUMP
000026f6: JUMPDEST
000026f7: PUSH1 0x00
000026f9: PUSH2 0x2700
000026fc: PUSH2 0x342e
000026ff: JUMP
00002700: JUMPDEST
00002701: PUSH1 0x06
00002703: SLOAD
00002704: PUSH1 0x01
00002706: PUSH1 0xa0
00002708: SHL
00002709: SWAP1
0000270a: DIV
0000270b: PUSH1 0xff
0000270d: AND
0000270e: ISZERO
0000270f: PUSH2 0x272a
00002712: JUMPI
00002713: PUSH1 0x40
00002715: MLOAD
00002716: PUSH3 0x461bcd
0000271a: PUSH1 0xe5
0000271c: SHL
0000271d: DUP2
0000271e: MSTORE
0000271f: PUSH1 0x04
00002721: ADD
00002722: PUSH2 0x0c56
00002725: SWAP1
00002726: PUSH2 0x5616
00002729: JUMP
0000272a: JUMPDEST
0000272b: PUSH2 0x0c69
0000272e: PUSH1 0x01
00002730: PUSH2 0x34e7
00002733: JUMP
00002734: JUMPDEST
00002735: CALLER
00002736: PUSH1 0x00
00002738: SWAP1
00002739: DUP2
0000273a: MSTORE
0000273b: PUSH1 0x03
0000273d: PUSH1 0x20
0000273f: MSTORE
00002740: PUSH1 0x40
00002742: DUP2
00002743: KECCAK256
00002744: DUP1
00002745: SLOAD
00002746: DUP4
00002747: SWAP2
00002748: SWAP1
00002749: DUP4
0000274a: SWAP1
0000274b: PUSH2 0x2755
0000274e: SWAP1
0000274f: DUP5
00002750: SWAP1
00002751: PUSH2 0x56b0
00002754: JUMP
00002755: JUMPDEST
00002756: SWAP1
00002757: SWAP2
00002758: SSTORE
00002759: POP
0000275a: POP
0000275b: PUSH1 0x01
0000275d: PUSH1 0x01
0000275f: PUSH1 0xa0
00002761: SHL
00002762: SUB
00002763: DUP4
00002764: AND
00002765: PUSH1 0x00
00002767: DUP2
00002768: DUP2
00002769: MSTORE
0000276a: PUSH1 0x03
0000276c: PUSH1 0x20
0000276e: MSTORE
0000276f: PUSH1 0x40
00002771: SWAP1
00002772: DUP2
00002773: SWAP1
00002774: KECCAK256
00002775: DUP1
00002776: SLOAD
00002777: DUP6
00002778: ADD
00002779: SWAP1
0000277a: SSTORE
0000277b: MLOAD
0000277c: CALLER
0000277d: SWAP1
0000277e: PUSH1 0x00
00002780: DUP1
00002781: MLOAD
00002782: PUSH1 0x20
00002784: PUSH2 0x5f65
00002787: DUP4
00002788: CODECOPY
00002789: DUP2
0000278a: MLOAD
0000278b: SWAP2
0000278c: MSTORE
0000278d: SWAP1
0000278e: PUSH2 0x0ee8
00002791: SWAP1
00002792: DUP7
00002793: DUP2
00002794: MSTORE
00002795: PUSH1 0x20
00002797: ADD
00002798: SWAP1
00002799: JUMP
0000279a: JUMPDEST
0000279b: PUSH1 0x00
0000279d: JUMPDEST
0000279e: DUP2
0000279f: DUP2
000027a0: LT
000027a1: ISZERO
000027a2: PUSH2 0x281c
000027a5: JUMPI
000027a6: PUSH2 0x2809
000027a9: DUP4
000027aa: DUP4
000027ab: DUP4
000027ac: DUP2
000027ad: DUP2
000027ae: LT
000027af: PUSH2 0x27ba
000027b2: JUMPI
000027b3: PUSH2 0x27ba
000027b6: PUSH2 0x56c3
000027b9: JUMP
000027ba: JUMPDEST
000027bb: SWAP1
000027bc: POP
000027bd: PUSH1 0x20
000027bf: MUL
000027c0: DUP2
000027c1: ADD
000027c2: SWAP1
000027c3: PUSH2 0x27cc
000027c6: SWAP2
000027c7: SWAP1
000027c8: PUSH2 0x5a17
000027cb: JUMP
000027cc: JUMPDEST
000027cd: DUP1
000027ce: DUP1
000027cf: PUSH1 0x1f
000027d1: ADD
000027d2: PUSH1 0x20
000027d4: DUP1
000027d5: SWAP2
000027d6: DIV
000027d7: MUL
000027d8: PUSH1 0x20
000027da: ADD
000027db: PUSH1 0x40
000027dd: MLOAD
000027de: SWAP1
000027df: DUP2
000027e0: ADD
000027e1: PUSH1 0x40
000027e3: MSTORE
000027e4: DUP1
000027e5: SWAP4
000027e6: SWAP3
000027e7: SWAP2
000027e8: SWAP1
000027e9: DUP2
000027ea: DUP2
000027eb: MSTORE
000027ec: PUSH1 0x20
000027ee: ADD
000027ef: DUP4
000027f0: DUP4
000027f1: DUP1
000027f2: DUP3
000027f3: DUP5
000027f4: CALLDATACOPY
000027f5: PUSH1 0x00
000027f7: SWAP3
000027f8: ADD
000027f9: SWAP2
000027fa: SWAP1
000027fb: SWAP2
000027fc: MSTORE
000027fd: POP
000027fe: ADDRESS
000027ff: SWAP4
00002800: SWAP3
00002801: POP
00002802: POP
00002803: PUSH2 0x41d8
00002806: SWAP1
00002807: POP
00002808: JUMP
00002809: JUMPDEST
0000280a: POP
0000280b: DUP1
0000280c: PUSH2 0x2814
0000280f: DUP2
00002810: PUSH2 0x583d
00002813: JUMP
00002814: JUMPDEST
00002815: SWAP2
00002816: POP
00002817: POP
00002818: PUSH2 0x279d
0000281b: JUMP
0000281c: JUMPDEST
0000281d: POP
0000281e: POP
0000281f: POP
00002820: JUMP
00002821: JUMPDEST
00002822: PUSH1 0x06
00002824: SLOAD
00002825: PUSH1 0x01
00002827: PUSH1 0x01
00002829: PUSH1 0xa0
0000282b: SHL
0000282c: SUB
0000282d: AND
0000282e: CALLER
0000282f: EQ
00002830: PUSH2 0x284b
00002833: JUMPI
00002834: PUSH1 0x40
00002836: MLOAD
00002837: PUSH3 0x461bcd
0000283b: PUSH1 0xe5
0000283d: SHL
0000283e: DUP2
0000283f: MSTORE
00002840: PUSH1 0x04
00002842: ADD
00002843: PUSH2 0x0c56
00002846: SWAP1
00002847: PUSH2 0x5674
0000284a: JUMP
0000284b: JUMPDEST
0000284c: PUSH1 0x07
0000284e: SLOAD
0000284f: PUSH1 0x01
00002851: PUSH1 0x01
00002853: PUSH1 0xc0
00002855: SHL
00002856: SUB
00002857: SWAP1
00002858: DUP2
00002859: AND
0000285a: SWAP1
0000285b: DUP3
0000285c: AND
0000285d: LT
0000285e: ISZERO
0000285f: PUSH2 0x1a78
00002862: JUMPI
00002863: PUSH1 0x40
00002865: MLOAD
00002866: PUSH4 0x34f1ec1b
0000286b: PUSH1 0xe0
0000286d: SHL
0000286e: DUP2
0000286f: MSTORE
00002870: PUSH1 0x04
00002872: ADD
00002873: PUSH1 0x40
00002875: MLOAD
00002876: DUP1
00002877: SWAP2
00002878: SUB
00002879: SWAP1
0000287a: REVERT
0000287b: JUMPDEST
0000287c: PUSH1 0x06
0000287e: SLOAD
0000287f: PUSH1 0x01
00002881: PUSH1 0x01
00002883: PUSH1 0xa0
00002885: SHL
00002886: SUB
00002887: AND
00002888: CALLER
00002889: EQ
0000288a: PUSH2 0x28a5
0000288d: JUMPI
0000288e: PUSH1 0x40
00002890: MLOAD
00002891: PUSH3 0x461bcd
00002895: PUSH1 0xe5
00002897: SHL
00002898: DUP2
00002899: MSTORE
0000289a: PUSH1 0x04
0000289c: ADD
0000289d: PUSH2 0x0c56
000028a0: SWAP1
000028a1: PUSH2 0x5674
000028a4: JUMP
000028a5: JUMPDEST
000028a6: PUSH1 0x10
000028a8: SLOAD
000028a9: PUSH1 0x40
000028ab: DUP1
000028ac: MLOAD
000028ad: PUSH1 0x01
000028af: PUSH1 0x01
000028b1: PUSH1 0xa0
000028b3: SHL
000028b4: SUB
000028b5: SWAP3
000028b6: DUP4
000028b7: AND
000028b8: DUP2
000028b9: MSTORE
000028ba: SWAP2
000028bb: DUP4
000028bc: AND
000028bd: PUSH1 0x20
000028bf: DUP4
000028c0: ADD
000028c1: MSTORE
000028c2: PUSH32 0x51dbb5a65bb22737861a63ec12ba6ce78a98631e9404b0567a2eaf7a06fc544d
000028e3: SWAP2
000028e4: ADD
000028e5: PUSH1 0x40
000028e7: MLOAD
000028e8: DUP1
000028e9: SWAP2
000028ea: SUB
000028eb: SWAP1
000028ec: LOG1
000028ed: PUSH1 0x10
000028ef: DUP1
000028f0: SLOAD
000028f1: PUSH1 0x01
000028f3: PUSH1 0x01
000028f5: PUSH1 0xa0
000028f7: SHL
000028f8: SUB
000028f9: NOT
000028fa: AND
000028fb: PUSH1 0x01
000028fd: PUSH1 0x01
000028ff: PUSH1 0xa0
00002901: SHL
00002902: SUB
00002903: SWAP3
00002904: SWAP1
00002905: SWAP3
00002906: AND
00002907: SWAP2
00002908: SWAP1
00002909: SWAP2
0000290a: OR
0000290b: SWAP1
0000290c: SSTORE
0000290d: JUMP
0000290e: JUMPDEST
0000290f: PUSH1 0x06
00002911: SLOAD
00002912: PUSH1 0x00
00002914: SWAP1
00002915: PUSH1 0x01
00002917: PUSH1 0xb0
00002919: SHL
0000291a: SWAP1
0000291b: DIV
0000291c: PUSH1 0xff
0000291e: AND
0000291f: PUSH2 0x29aa
00002922: JUMPI
00002923: PUSH1 0x40
00002925: MLOAD
00002926: PUSH4 0x0ad85dff
0000292b: PUSH1 0xe4
0000292d: SHL
0000292e: DUP2
0000292f: MSTORE
00002930: ADDRESS
00002931: PUSH1 0x04
00002933: DUP3
00002934: ADD
00002935: MSTORE
00002936: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476
00002957: PUSH1 0x01
00002959: PUSH1 0x01
0000295b: PUSH1 0xa0
0000295d: SHL
0000295e: SUB
0000295f: AND
00002960: SWAP1
00002961: PUSH4 0xad85dff0
00002966: SWAP1
00002967: PUSH1 0x24
00002969: ADD
0000296a: PUSH1 0x20
0000296c: PUSH1 0x40
0000296e: MLOAD
0000296f: DUP1
00002970: DUP4
00002971: SUB
00002972: DUP2
00002973: DUP7
00002974: GAS
00002975: STATICCALL
00002976: ISZERO
00002977: DUP1
00002978: ISZERO
00002979: PUSH2 0x2986
0000297c: JUMPI
0000297d: RETURNDATASIZE
0000297e: PUSH1 0x00
00002980: DUP1
00002981: RETURNDATACOPY
00002982: RETURNDATASIZE
00002983: PUSH1 0x00
00002985: REVERT
00002986: JUMPDEST
00002987: POP
00002988: POP
00002989: POP
0000298a: POP
0000298b: PUSH1 0x40
0000298d: MLOAD
0000298e: RETURNDATASIZE
0000298f: PUSH1 0x1f
00002991: NOT
00002992: PUSH1 0x1f
00002994: DUP3
00002995: ADD
00002996: AND
00002997: DUP3
00002998: ADD
00002999: DUP1
0000299a: PUSH1 0x40
0000299c: MSTORE
0000299d: POP
0000299e: DUP2
0000299f: ADD
000029a0: SWAP1
000029a1: PUSH2 0x0c69
000029a4: SWAP2
000029a5: SWAP1
000029a6: PUSH2 0x59fa
000029a9: JUMP
000029aa: JUMPDEST
000029ab: POP
000029ac: PUSH1 0x00
000029ae: SWAP1
000029af: JUMP
000029b0: JUMPDEST
000029b1: PUSH1 0x00
000029b3: DUP1
000029b4: PUSH1 0x00
000029b6: PUSH2 0x29bf
000029b9: PUSH1 0x01
000029bb: PUSH2 0x3a39
000029be: JUMP
000029bf: JUMPDEST
000029c0: SWAP2
000029c1: POP
000029c2: SWAP2
000029c3: POP
000029c4: PUSH2 0x0e85
000029c7: DUP5
000029c8: DUP4
000029c9: DUP4
000029ca: PUSH2 0x4006
000029cd: JUMP
000029ce: JUMPDEST
000029cf: PUSH1 0x06
000029d1: SLOAD
000029d2: PUSH1 0x00
000029d4: SWAP1
000029d5: PUSH1 0x01
000029d7: PUSH1 0xa0
000029d9: SHL
000029da: SWAP1
000029db: DIV
000029dc: PUSH1 0xff
000029de: AND
000029df: ISZERO
000029e0: PUSH2 0x29fb
000029e3: JUMPI
000029e4: PUSH1 0x40
000029e6: MLOAD
000029e7: PUSH3 0x461bcd
000029eb: PUSH1 0xe5
000029ed: SHL
000029ee: DUP2
000029ef: MSTORE
000029f0: PUSH1 0x04
000029f2: ADD
000029f3: PUSH2 0x0c56
000029f6: SWAP1
000029f7: PUSH2 0x5616
000029fa: JUMP
000029fb: JUMPDEST
000029fc: PUSH1 0x06
000029fe: DUP1
000029ff: SLOAD
00002a00: PUSH1 0xff
00002a02: PUSH1 0xa0
00002a04: SHL
00002a05: NOT
00002a06: AND
00002a07: PUSH1 0x01
00002a09: PUSH1 0xa0
00002a0b: SHL
00002a0c: OR
00002a0d: SWAP1
00002a0e: SSTORE
00002a0f: PUSH1 0x00
00002a11: DUP1
00002a12: PUSH2 0x2a1a
00002a15: DUP2
00002a16: PUSH2 0x3a39
00002a19: JUMP
00002a1a: JUMPDEST
00002a1b: SWAP2
00002a1c: POP
00002a1d: SWAP2
00002a1e: POP
00002a1f: PUSH2 0x2a29
00002a22: DUP7
00002a23: DUP4
00002a24: DUP4
00002a25: PUSH2 0x3b60
00002a28: JUMP
00002a29: JUMPDEST
00002a2a: SWAP3
00002a2b: POP
00002a2c: PUSH2 0x2a37
00002a2f: DUP7
00002a30: DUP5
00002a31: DUP8
00002a32: DUP8
00002a33: PUSH2 0x41fd
00002a36: JUMP
00002a37: JUMPDEST
00002a38: POP
00002a39: POP
00002a3a: PUSH1 0x06
00002a3c: DUP1
00002a3d: SLOAD
00002a3e: PUSH1 0xff
00002a40: PUSH1 0xa0
00002a42: SHL
00002a43: NOT
00002a44: AND
00002a45: SWAP1
00002a46: SSTORE
00002a47: SWAP4
00002a48: SWAP3
00002a49: POP
00002a4a: POP
00002a4b: POP
00002a4c: JUMP
00002a4d: JUMPDEST
00002a4e: PUSH1 0x06
00002a50: SLOAD
00002a51: PUSH1 0x01
00002a53: PUSH1 0x01
00002a55: PUSH1 0xa0
00002a57: SHL
00002a58: SUB
00002a59: AND
00002a5a: CALLER
00002a5b: EQ
00002a5c: PUSH2 0x2a77
00002a5f: JUMPI
00002a60: PUSH1 0x40
00002a62: MLOAD
00002a63: PUSH3 0x461bcd
00002a67: PUSH1 0xe5
00002a69: SHL
00002a6a: DUP2
00002a6b: MSTORE
00002a6c: PUSH1 0x04
00002a6e: ADD
00002a6f: PUSH2 0x0c56
00002a72: SWAP1
00002a73: PUSH2 0x5674
00002a76: JUMP
00002a77: JUMPDEST
00002a78: PUSH8 0x0de0b6b3a7640000
00002a81: PUSH1 0x01
00002a83: PUSH1 0x01
00002a85: PUSH1 0x40
00002a87: SHL
00002a88: SUB
00002a89: DUP3
00002a8a: AND
00002a8b: GT
00002a8c: ISZERO
00002a8d: PUSH2 0x2aa9
00002a90: JUMPI
00002a91: PUSH1 0x40
00002a93: MLOAD
00002a94: PUSH4 0x3d0203e5
00002a99: PUSH1 0xe0
00002a9b: SHL
00002a9c: DUP2
00002a9d: MSTORE
00002a9e: PUSH1 0x04
00002aa0: ADD
00002aa1: PUSH1 0x40
00002aa3: MLOAD
00002aa4: DUP1
00002aa5: SWAP2
00002aa6: SUB
00002aa7: SWAP1
00002aa8: REVERT
00002aa9: JUMPDEST
00002aaa: PUSH1 0x0f
00002aac: SLOAD
00002aad: PUSH1 0x40
00002aaf: DUP1
00002ab0: MLOAD
00002ab1: PUSH1 0x01
00002ab3: PUSH1 0x01
00002ab5: PUSH1 0x40
00002ab7: SHL
00002ab8: SUB
00002ab9: SWAP3
00002aba: DUP4
00002abb: AND
00002abc: DUP2
00002abd: MSTORE
00002abe: SWAP2
00002abf: DUP4
00002ac0: AND
00002ac1: PUSH1 0x20
00002ac3: DUP4
00002ac4: ADD
00002ac5: MSTORE
00002ac6: PUSH32 0xb5cc994a260a85a42d6588668221571ae0a14f0a28f9e4817a5195262102c868
00002ae7: SWAP2
00002ae8: ADD
00002ae9: PUSH1 0x40
00002aeb: MLOAD
00002aec: DUP1
00002aed: SWAP2
00002aee: SUB
00002aef: SWAP1
00002af0: LOG1
00002af1: PUSH1 0x0f
00002af3: DUP1
00002af4: SLOAD
00002af5: PUSH8 0xffffffffffffffff
00002afe: NOT
00002aff: AND
00002b00: PUSH1 0x01
00002b02: PUSH1 0x01
00002b04: PUSH1 0x40
00002b06: SHL
00002b07: SUB
00002b08: SWAP3
00002b09: SWAP1
00002b0a: SWAP3
00002b0b: AND
00002b0c: SWAP2
00002b0d: SWAP1
00002b0e: SWAP2
00002b0f: OR
00002b10: SWAP1
00002b11: SSTORE
00002b12: JUMP
00002b13: JUMPDEST
00002b14: PUSH1 0x06
00002b16: SLOAD
00002b17: PUSH1 0x00
00002b19: SWAP1
00002b1a: PUSH1 0x01
00002b1c: PUSH1 0xa0
00002b1e: SHL
00002b1f: SWAP1
00002b20: DIV
00002b21: PUSH1 0xff
00002b23: AND
00002b24: ISZERO
00002b25: PUSH2 0x2b40
00002b28: JUMPI
00002b29: PUSH1 0x40
00002b2b: MLOAD
00002b2c: PUSH3 0x461bcd
00002b30: PUSH1 0xe5
00002b32: SHL
00002b33: DUP2
00002b34: MSTORE
00002b35: PUSH1 0x04
00002b37: ADD
00002b38: PUSH2 0x0c56
00002b3b: SWAP1
00002b3c: PUSH2 0x5616
00002b3f: JUMP
00002b40: JUMPDEST
00002b41: PUSH1 0x06
00002b43: DUP1
00002b44: SLOAD
00002b45: PUSH1 0xff
00002b47: PUSH1 0xa0
00002b49: SHL
00002b4a: NOT
00002b4b: AND
00002b4c: PUSH1 0x01
00002b4e: PUSH1 0xa0
00002b50: SHL
00002b51: OR
00002b52: SWAP1
00002b53: SSTORE
00002b54: PUSH1 0x00
00002b56: DUP1
00002b57: PUSH2 0x2b5f
00002b5a: DUP2
00002b5b: PUSH2 0x3a39
00002b5e: JUMP
00002b5f: JUMPDEST
00002b60: SWAP2
00002b61: POP
00002b62: SWAP2
00002b63: POP
00002b64: PUSH2 0x2b6e
00002b67: DUP7
00002b68: DUP4
00002b69: DUP4
00002b6a: PUSH2 0x3b53
00002b6d: JUMP
00002b6e: JUMPDEST
00002b6f: SWAP3
00002b70: POP
00002b71: DUP3
00002b72: PUSH1 0x00
00002b74: SUB
00002b75: PUSH2 0x2b91
00002b78: JUMPI
00002b79: PUSH1 0x40
00002b7b: MLOAD
00002b7c: PUSH4 0x97683005
00002b81: PUSH1 0xe0
00002b83: SHL
00002b84: DUP2
00002b85: MSTORE
00002b86: PUSH1 0x04
00002b88: ADD
00002b89: PUSH1 0x40
00002b8b: MLOAD
00002b8c: DUP1
00002b8d: SWAP2
00002b8e: SUB
00002b8f: SWAP1
00002b90: REVERT
00002b91: JUMPDEST
00002b92: PUSH2 0x2a37
00002b95: DUP4
00002b96: DUP8
00002b97: DUP8
00002b98: DUP8
00002b99: PUSH2 0x41fd
00002b9c: JUMP
00002b9d: JUMPDEST
00002b9e: PUSH1 0x06
00002ba0: SLOAD
00002ba1: PUSH1 0x01
00002ba3: PUSH1 0x01
00002ba5: PUSH1 0xa0
00002ba7: SHL
00002ba8: SUB
00002ba9: AND
00002baa: CALLER
00002bab: EQ
00002bac: PUSH2 0x2bc7
00002baf: JUMPI
00002bb0: PUSH1 0x40
00002bb2: MLOAD
00002bb3: PUSH3 0x461bcd
00002bb7: PUSH1 0xe5
00002bb9: SHL
00002bba: DUP2
00002bbb: MSTORE
00002bbc: PUSH1 0x04
00002bbe: ADD
00002bbf: PUSH2 0x0c56
00002bc2: SWAP1
00002bc3: PUSH2 0x5674
00002bc6: JUMP
00002bc7: JUMPDEST
00002bc8: PUSH1 0x00
00002bca: DUP1
00002bcb: DUP5
00002bcc: ISZERO
00002bcd: PUSH2 0x2c0e
00002bd0: JUMPI
00002bd1: PUSH1 0x00
00002bd3: PUSH2 0x2bda
00002bd6: PUSH2 0x0c22
00002bd9: JUMP
00002bda: JUMPDEST
00002bdb: SWAP1
00002bdc: POP
00002bdd: PUSH2 0x2bf9
00002be0: PUSH2 0x2beb
00002be3: DUP7
00002be4: PUSH2 0x2710
00002be7: PUSH2 0x5a5d
00002bea: JUMP
00002beb: JUMPDEST
00002bec: DUP3
00002bed: SWAP1
00002bee: PUSH2 0xffff
00002bf1: AND
00002bf2: PUSH2 0x2710
00002bf5: PUSH2 0x42d6
00002bf8: JUMP
00002bf9: JUMPDEST
00002bfa: SWAP3
00002bfb: POP
00002bfc: PUSH2 0x2c0a
00002bff: PUSH2 0x2beb
00002c02: DUP7
00002c03: PUSH2 0x2710
00002c06: PUSH2 0x5a7f
00002c09: JUMP
00002c0a: JUMPDEST
00002c0b: SWAP2
00002c0c: POP
00002c0d: POP
00002c0e: JUMPDEST
00002c0f: PUSH2 0x2c19
00002c12: PUSH1 0x02
00002c14: DUP5
00002c15: PUSH2 0x42f5
00002c18: JUMP
00002c19: JUMPDEST
00002c1a: PUSH1 0x08
00002c1c: DUP1
00002c1d: SLOAD
00002c1e: PUSH1 0x01
00002c20: PUSH1 0x01
00002c22: PUSH1 0xa0
00002c24: SHL
00002c25: SUB
00002c26: NOT
00002c27: AND
00002c28: PUSH1 0x01
00002c2a: PUSH1 0x01
00002c2c: PUSH1 0xa0
00002c2e: SHL
00002c2f: SUB
00002c30: DUP6
00002c31: AND
00002c32: OR
00002c33: SWAP1
00002c34: SSTORE
00002c35: PUSH1 0x00
00002c37: PUSH2 0x2c3e
00002c3a: PUSH2 0x0c22
00002c3d: JUMP
00002c3e: JUMPDEST
00002c3f: SWAP1
00002c40: POP
00002c41: DUP6
00002c42: ISZERO
00002c43: PUSH2 0x2c82
00002c46: JUMPI
00002c47: DUP3
00002c48: DUP2
00002c49: LT
00002c4a: DUP1
00002c4b: PUSH2 0x2c53
00002c4e: JUMPI
00002c4f: POP
00002c50: DUP2
00002c51: DUP2
00002c52: GT
00002c53: JUMPDEST
00002c54: ISZERO
00002c55: PUSH2 0x2c82
00002c58: JUMPI
00002c59: PUSH1 0x40
00002c5b: MLOAD
00002c5c: PUSH4 0x628cc475
00002c61: PUSH1 0xe1
00002c63: SHL
00002c64: DUP2
00002c65: MSTORE
00002c66: PUSH1 0x04
00002c68: DUP2
00002c69: ADD
00002c6a: DUP3
00002c6b: SWAP1
00002c6c: MSTORE
00002c6d: PUSH1 0x24
00002c6f: DUP2
00002c70: ADD
00002c71: DUP5
00002c72: SWAP1
00002c73: MSTORE
00002c74: PUSH1 0x44
00002c76: DUP2
00002c77: ADD
00002c78: DUP4
00002c79: SWAP1
00002c7a: MSTORE
00002c7b: PUSH1 0x64
00002c7d: ADD
00002c7e: PUSH2 0x0c56
00002c81: JUMP
00002c82: JUMPDEST
00002c83: POP
00002c84: POP
00002c85: POP
00002c86: POP
00002c87: POP
00002c88: POP
00002c89: JUMP
00002c8a: JUMPDEST
00002c8b: PUSH1 0x06
00002c8d: SLOAD
00002c8e: PUSH1 0x00
00002c90: SWAP1
00002c91: PUSH1 0x01
00002c93: PUSH1 0xa8
00002c95: SHL
00002c96: SWAP1
00002c97: DIV
00002c98: PUSH1 0xff
00002c9a: AND
00002c9b: ISZERO
00002c9c: PUSH2 0x2ca7
00002c9f: JUMPI
00002ca0: POP
00002ca1: PUSH1 0x00
00002ca3: SWAP2
00002ca4: SWAP1
00002ca5: POP
00002ca6: JUMP
00002ca7: JUMPDEST
00002ca8: PUSH1 0x07
00002caa: SLOAD
00002cab: PUSH1 0x01
00002cad: PUSH1 0x01
00002caf: PUSH1 0xc0
00002cb1: SHL
00002cb2: SUB
00002cb3: AND
00002cb4: PUSH1 0x02
00002cb6: PUSH1 0x01
00002cb8: PUSH1 0xc0
00002cba: SHL
00002cbb: SUB
00002cbc: NOT
00002cbd: DUP2
00002cbe: ADD
00002cbf: PUSH2 0x2ccc
00002cc2: JUMPI
00002cc3: POP
00002cc4: PUSH1 0x00
00002cc6: NOT
00002cc7: SWAP3
00002cc8: SWAP2
00002cc9: POP
00002cca: POP
00002ccb: JUMP
00002ccc: JUMPDEST
00002ccd: PUSH1 0x02
00002ccf: SLOAD
00002cd0: PUSH1 0x01
00002cd2: PUSH1 0x01
00002cd4: PUSH1 0xc0
00002cd6: SHL
00002cd7: SUB
00002cd8: DUP3
00002cd9: AND
00002cda: DUP2
00002cdb: LT
00002cdc: ISZERO
00002cdd: PUSH2 0x2cf8
00002ce0: JUMPI
00002ce1: PUSH2 0x2cf3
00002ce4: DUP2
00002ce5: PUSH1 0x01
00002ce7: PUSH1 0x01
00002ce9: PUSH1 0xc0
00002ceb: SHL
00002cec: SUB
00002ced: DUP5
00002cee: AND
00002cef: PUSH2 0x56b0
00002cf2: JUMP
00002cf3: JUMPDEST
00002cf4: PUSH2 0x0e85
00002cf7: JUMP
00002cf8: JUMPDEST
00002cf9: PUSH1 0x00
00002cfb: SWAP5
00002cfc: SWAP4
00002cfd: POP
00002cfe: POP
00002cff: POP
00002d00: POP
00002d01: JUMP
00002d02: JUMPDEST
00002d03: PUSH1 0x00
00002d05: DUP1
00002d06: PUSH1 0x00
00002d08: PUSH2 0x2d11
00002d0b: PUSH1 0x01
00002d0d: PUSH2 0x3a39
00002d10: JUMP
00002d11: JUMPDEST
00002d12: SWAP2
00002d13: POP
00002d14: SWAP2
00002d15: POP
00002d16: PUSH2 0x0e85
00002d19: DUP5
00002d1a: DUP4
00002d1b: DUP4
00002d1c: PUSH2 0x3f5e
00002d1f: JUMP
00002d20: JUMPDEST
00002d21: PUSH1 0x06
00002d23: SLOAD
00002d24: PUSH1 0x01
00002d26: PUSH1 0x01
00002d28: PUSH1 0xa0
00002d2a: SHL
00002d2b: SUB
00002d2c: AND
00002d2d: CALLER
00002d2e: EQ
00002d2f: PUSH2 0x2d4a
00002d32: JUMPI
00002d33: PUSH1 0x40
00002d35: MLOAD
00002d36: PUSH3 0x461bcd
00002d3a: PUSH1 0xe5
00002d3c: SHL
00002d3d: DUP2
00002d3e: MSTORE
00002d3f: PUSH1 0x04
00002d41: ADD
00002d42: PUSH2 0x0c56
00002d45: SWAP1
00002d46: PUSH2 0x5674
00002d49: JUMP
00002d4a: JUMPDEST
00002d4b: PUSH2 0x2d54
00002d4e: DUP3
00002d4f: DUP3
00002d50: PUSH2 0x42f5
00002d53: JUMP
00002d54: JUMPDEST
00002d55: PUSH1 0x11
00002d57: DUP1
00002d58: SLOAD
00002d59: PUSH1 0x01
00002d5b: PUSH1 0x01
00002d5d: PUSH1 0xa0
00002d5f: SHL
00002d60: SUB
00002d61: NOT
00002d62: AND
00002d63: PUSH1 0x01
00002d65: PUSH1 0x01
00002d67: PUSH1 0xa0
00002d69: SHL
00002d6a: SUB
00002d6b: DUP4
00002d6c: AND
00002d6d: SWAP1
00002d6e: DUP2
00002d6f: OR
00002d70: SWAP1
00002d71: SWAP2
00002d72: SSTORE
00002d73: PUSH1 0x40
00002d75: MLOAD
00002d76: SWAP1
00002d77: DUP2
00002d78: MSTORE
00002d79: PUSH32 0x3ced9f0d0ac37f3370e1e00515182a375773698b50f5a46523e2cb3736015583
00002d9a: SWAP1
00002d9b: PUSH1 0x20
00002d9d: ADD
00002d9e: PUSH2 0x1a12
00002da1: JUMP
00002da2: JUMPDEST
00002da3: PUSH1 0x06
00002da5: SLOAD
00002da6: PUSH1 0x00
00002da8: SWAP1
00002da9: PUSH1 0x01
00002dab: PUSH1 0xa0
00002dad: SHL
00002dae: SWAP1
00002daf: DIV
00002db0: PUSH1 0xff
00002db2: AND
00002db3: ISZERO
00002db4: PUSH2 0x2dcf
00002db7: JUMPI
00002db8: PUSH1 0x40
00002dba: MLOAD
00002dbb: PUSH3 0x461bcd
00002dbf: PUSH1 0xe5
00002dc1: SHL
00002dc2: DUP2
00002dc3: MSTORE
00002dc4: PUSH1 0x04
00002dc6: ADD
00002dc7: PUSH2 0x0c56
00002dca: SWAP1
00002dcb: PUSH2 0x5616
00002dce: JUMP
00002dcf: JUMPDEST
00002dd0: PUSH2 0x0ef4
00002dd3: DUP3
00002dd4: PUSH1 0x00
00002dd6: PUSH2 0x43d6
00002dd9: JUMP
00002dda: JUMPDEST
00002ddb: PUSH1 0x06
00002ddd: SLOAD
00002dde: PUSH1 0x01
00002de0: PUSH1 0x01
00002de2: PUSH1 0xa0
00002de4: SHL
00002de5: SUB
00002de6: AND
00002de7: CALLER
00002de8: EQ
00002de9: PUSH2 0x2e04
00002dec: JUMPI
00002ded: PUSH1 0x40
00002def: MLOAD
00002df0: PUSH3 0x461bcd
00002df4: PUSH1 0xe5
00002df6: SHL
00002df7: DUP2
00002df8: MSTORE
00002df9: PUSH1 0x04
00002dfb: ADD
00002dfc: PUSH2 0x0c56
00002dff: SWAP1
00002e00: PUSH2 0x5674
00002e03: JUMP
00002e04: JUMPDEST
00002e05: PUSH4 0xffffffff
00002e0a: DUP2
00002e0b: AND
00002e0c: PUSH1 0x00
00002e0e: DUP2
00002e0f: DUP2
00002e10: MSTORE
00002e11: PUSH1 0x0d
00002e13: PUSH1 0x20
00002e15: SWAP1
00002e16: DUP2
00002e17: MSTORE
00002e18: PUSH1 0x40
00002e1a: DUP1
00002e1b: DUP4
00002e1c: KECCAK256
00002e1d: DUP1
00002e1e: SLOAD
00002e1f: PUSH1 0xff
00002e21: NOT
00002e22: AND
00002e23: SWAP1
00002e24: SSTORE
00002e25: DUP1
00002e26: MLOAD
00002e27: SWAP4
00002e28: DUP5
00002e29: MSTORE
00002e2a: SWAP1
00002e2b: DUP4
00002e2c: ADD
00002e2d: SWAP2
00002e2e: SWAP1
00002e2f: SWAP2
00002e30: MSTORE
00002e31: PUSH32 0xea052d1fb1ecba6aaf6bd32e92f20e7b6a094eaa478248322cc8ff024a90978f
00002e52: SWAP2
00002e53: ADD
00002e54: PUSH2 0x159f
00002e57: JUMP
00002e58: JUMPDEST
00002e59: TIMESTAMP
00002e5a: DUP5
00002e5b: LT
00002e5c: ISZERO
00002e5d: PUSH2 0x2ea8
00002e60: JUMPI
00002e61: PUSH1 0x40
00002e63: MLOAD
00002e64: PUSH3 0x461bcd
00002e68: PUSH1 0xe5
00002e6a: SHL
00002e6b: DUP2
00002e6c: MSTORE
00002e6d: PUSH1 0x20
00002e6f: PUSH1 0x04
00002e71: DUP3
00002e72: ADD
00002e73: MSTORE
00002e74: PUSH1 0x17
00002e76: PUSH1 0x24
00002e78: DUP3
00002e79: ADD
00002e7a: MSTORE
00002e7b: PUSH32 0x5045524d49545f444541444c494e455f45585049524544000000000000000000
00002e9c: PUSH1 0x44
00002e9e: DUP3
00002e9f: ADD
00002ea0: MSTORE
00002ea1: PUSH1 0x64
00002ea3: ADD
00002ea4: PUSH2 0x0c56
00002ea7: JUMP
00002ea8: JUMPDEST
00002ea9: PUSH1 0x00
00002eab: PUSH1 0x01
00002ead: PUSH2 0x2eb4
00002eb0: PUSH2 0x1177
00002eb3: JUMP
00002eb4: JUMPDEST
00002eb5: PUSH1 0x01
00002eb7: PUSH1 0x01
00002eb9: PUSH1 0xa0
00002ebb: SHL
00002ebc: SUB
00002ebd: DUP11
00002ebe: DUP2
00002ebf: AND
00002ec0: PUSH1 0x00
00002ec2: DUP2
00002ec3: DUP2
00002ec4: MSTORE
00002ec5: PUSH1 0x05
00002ec7: PUSH1 0x20
00002ec9: SWAP1
00002eca: DUP2
00002ecb: MSTORE
00002ecc: PUSH1 0x40
00002ece: SWAP2
00002ecf: DUP3
00002ed0: SWAP1
00002ed1: KECCAK256
00002ed2: DUP1
00002ed3: SLOAD
00002ed4: PUSH1 0x01
00002ed6: DUP2
00002ed7: ADD
00002ed8: SWAP1
00002ed9: SWAP2
00002eda: SSTORE
00002edb: DUP3
00002edc: MLOAD
00002edd: PUSH32 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9
00002efe: DUP2
00002eff: DUP5
00002f00: ADD
00002f01: MSTORE
00002f02: DUP1
00002f03: DUP5
00002f04: ADD
00002f05: SWAP5
00002f06: SWAP1
00002f07: SWAP5
00002f08: MSTORE
00002f09: SWAP4
00002f0a: DUP14
00002f0b: AND
00002f0c: PUSH1 0x60
00002f0e: DUP5
00002f0f: ADD
00002f10: MSTORE
00002f11: PUSH1 0x80
00002f13: DUP4
00002f14: ADD
00002f15: DUP13
00002f16: SWAP1
00002f17: MSTORE
00002f18: PUSH1 0xa0
00002f1a: DUP4
00002f1b: ADD
00002f1c: SWAP4
00002f1d: SWAP1
00002f1e: SWAP4
00002f1f: MSTORE
00002f20: PUSH1 0xc0
00002f22: DUP1
00002f23: DUP4
00002f24: ADD
00002f25: DUP12
00002f26: SWAP1
00002f27: MSTORE
00002f28: DUP2
00002f29: MLOAD
00002f2a: DUP1
00002f2b: DUP5
00002f2c: SUB
00002f2d: SWAP1
00002f2e: SWAP2
00002f2f: ADD
00002f30: DUP2
00002f31: MSTORE
00002f32: PUSH1 0xe0
00002f34: DUP4
00002f35: ADD
00002f36: SWAP1
00002f37: SWAP2
00002f38: MSTORE
00002f39: DUP1
00002f3a: MLOAD
00002f3b: SWAP3
00002f3c: ADD
00002f3d: SWAP2
00002f3e: SWAP1
00002f3f: SWAP2
00002f40: KECCAK256
00002f41: PUSH2 0x1901
00002f44: PUSH1 0xf0
00002f46: SHL
00002f47: PUSH2 0x0100
00002f4a: DUP4
00002f4b: ADD
00002f4c: MSTORE
00002f4d: PUSH2 0x0102
00002f50: DUP3
00002f51: ADD
00002f52: SWAP3
00002f53: SWAP1
00002f54: SWAP3
00002f55: MSTORE
00002f56: PUSH2 0x0122
00002f59: DUP2
00002f5a: ADD
00002f5b: SWAP2
00002f5c: SWAP1
00002f5d: SWAP2
00002f5e: MSTORE
00002f5f: PUSH2 0x0142
00002f62: ADD
00002f63: PUSH1 0x40
00002f65: DUP1
00002f66: MLOAD
00002f67: PUSH1 0x1f
00002f69: NOT
00002f6a: DUP2
00002f6b: DUP5
00002f6c: SUB
00002f6d: ADD
00002f6e: DUP2
00002f6f: MSTORE
00002f70: DUP3
00002f71: DUP3
00002f72: MSTORE
00002f73: DUP1
00002f74: MLOAD
00002f75: PUSH1 0x20
00002f77: SWAP2
00002f78: DUP3
00002f79: ADD
00002f7a: KECCAK256
00002f7b: PUSH1 0x00
00002f7d: DUP5
00002f7e: MSTORE
00002f7f: SWAP1
00002f80: DUP4
00002f81: ADD
00002f82: DUP1
00002f83: DUP4
00002f84: MSTORE
00002f85: MSTORE
00002f86: PUSH1 0xff
00002f88: DUP8
00002f89: AND
00002f8a: SWAP1
00002f8b: DUP3
00002f8c: ADD
00002f8d: MSTORE
00002f8e: PUSH1 0x60
00002f90: DUP2
00002f91: ADD
00002f92: DUP6
00002f93: SWAP1
00002f94: MSTORE
00002f95: PUSH1 0x80
00002f97: DUP2
00002f98: ADD
00002f99: DUP5
00002f9a: SWAP1
00002f9b: MSTORE
00002f9c: PUSH1 0xa0
00002f9e: ADD
00002f9f: PUSH1 0x20
00002fa1: PUSH1 0x40
00002fa3: MLOAD
00002fa4: PUSH1 0x20
00002fa6: DUP2
00002fa7: SUB
00002fa8: SWAP1
00002fa9: DUP1
00002faa: DUP5
00002fab: SUB
00002fac: SWAP1
00002fad: DUP6
00002fae: GAS
00002faf: STATICCALL
00002fb0: ISZERO
00002fb1: DUP1
00002fb2: ISZERO
00002fb3: PUSH2 0x2fc0
00002fb6: JUMPI
00002fb7: RETURNDATASIZE
00002fb8: PUSH1 0x00
00002fba: DUP1
00002fbb: RETURNDATACOPY
00002fbc: RETURNDATASIZE
00002fbd: PUSH1 0x00
00002fbf: REVERT
00002fc0: JUMPDEST
00002fc1: POP
00002fc2: POP
00002fc3: PUSH1 0x40
00002fc5: MLOAD
00002fc6: PUSH1 0x1f
00002fc8: NOT
00002fc9: ADD
00002fca: MLOAD
00002fcb: SWAP2
00002fcc: POP
00002fcd: POP
00002fce: PUSH1 0x01
00002fd0: PUSH1 0x01
00002fd2: PUSH1 0xa0
00002fd4: SHL
00002fd5: SUB
00002fd6: DUP2
00002fd7: AND
00002fd8: ISZERO
00002fd9: DUP1
00002fda: ISZERO
00002fdb: SWAP1
00002fdc: PUSH2 0x2ff6
00002fdf: JUMPI
00002fe0: POP
00002fe1: DUP8
00002fe2: PUSH1 0x01
00002fe4: PUSH1 0x01
00002fe6: PUSH1 0xa0
00002fe8: SHL
00002fe9: SUB
00002fea: AND
00002feb: DUP2
00002fec: PUSH1 0x01
00002fee: PUSH1 0x01
00002ff0: PUSH1 0xa0
00002ff2: SHL
00002ff3: SUB
00002ff4: AND
00002ff5: EQ
00002ff6: JUMPDEST
00002ff7: PUSH2 0x3033
00002ffa: JUMPI
00002ffb: PUSH1 0x40
00002ffd: MLOAD
00002ffe: PUSH3 0x461bcd
00003002: PUSH1 0xe5
00003004: SHL
00003005: DUP2
00003006: MSTORE
00003007: PUSH1 0x20
00003009: PUSH1 0x04
0000300b: DUP3
0000300c: ADD
0000300d: MSTORE
0000300e: PUSH1 0x0e
00003010: PUSH1 0x24
00003012: DUP3
00003013: ADD
00003014: MSTORE
00003015: PUSH14 0x24a72b20a624a22fa9a4a3a722a9
00003024: PUSH1 0x91
00003026: SHL
00003027: PUSH1 0x44
00003029: DUP3
0000302a: ADD
0000302b: MSTORE
0000302c: PUSH1 0x64
0000302e: ADD
0000302f: PUSH2 0x0c56
00003032: JUMP
00003033: JUMPDEST
00003034: PUSH1 0x01
00003036: PUSH1 0x01
00003038: PUSH1 0xa0
0000303a: SHL
0000303b: SUB
0000303c: SWAP1
0000303d: DUP2
0000303e: AND
0000303f: PUSH1 0x00
00003041: SWAP1
00003042: DUP2
00003043: MSTORE
00003044: PUSH1 0x04
00003046: PUSH1 0x20
00003048: SWAP1
00003049: DUP2
0000304a: MSTORE
0000304b: PUSH1 0x40
0000304d: DUP1
0000304e: DUP4
0000304f: KECCAK256
00003050: DUP11
00003051: DUP6
00003052: AND
00003053: DUP1
00003054: DUP6
00003055: MSTORE
00003056: SWAP1
00003057: DUP4
00003058: MSTORE
00003059: SWAP3
0000305a: DUP2
0000305b: SWAP1
0000305c: KECCAK256
0000305d: DUP10
0000305e: SWAP1
0000305f: SSTORE
00003060: MLOAD
00003061: DUP9
00003062: DUP2
00003063: MSTORE
00003064: SWAP2
00003065: SWAP3
00003066: DUP11
00003067: AND
00003068: SWAP2
00003069: PUSH32 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925
0000308a: SWAP2
0000308b: ADD
0000308c: PUSH1 0x40
0000308e: MLOAD
0000308f: DUP1
00003090: SWAP2
00003091: SUB
00003092: SWAP1
00003093: LOG3
00003094: POP
00003095: POP
00003096: POP
00003097: POP
00003098: POP
00003099: POP
0000309a: POP
0000309b: JUMP
0000309c: JUMPDEST
0000309d: PUSH1 0x06
0000309f: SLOAD
000030a0: PUSH1 0x00
000030a2: SWAP1
000030a3: PUSH1 0x01
000030a5: PUSH1 0xa0
000030a7: SHL
000030a8: SWAP1
000030a9: DIV
000030aa: PUSH1 0xff
000030ac: AND
000030ad: ISZERO
000030ae: PUSH2 0x30c9
000030b1: JUMPI
000030b2: PUSH1 0x40
000030b4: MLOAD
000030b5: PUSH3 0x461bcd
000030b9: PUSH1 0xe5
000030bb: SHL
000030bc: DUP2
000030bd: MSTORE
000030be: PUSH1 0x04
000030c0: ADD
000030c1: PUSH2 0x0c56
000030c4: SWAP1
000030c5: PUSH2 0x5616
000030c8: JUMP
000030c9: JUMPDEST
000030ca: PUSH2 0x0ef4
000030cd: DUP3
000030ce: PUSH1 0x01
000030d0: PUSH2 0x43d6
000030d3: JUMP
000030d4: JUMPDEST
000030d5: PUSH1 0x0a
000030d7: DUP2
000030d8: DUP2
000030d9: SLOAD
000030da: DUP2
000030db: LT
000030dc: PUSH2 0x1aaa
000030df: JUMPI
000030e0: PUSH1 0x00
000030e2: DUP1
000030e3: REVERT
000030e4: JUMPDEST
000030e5: CALLER
000030e6: PUSH1 0x01
000030e8: PUSH1 0x01
000030ea: PUSH1 0xa0
000030ec: SHL
000030ed: SUB
000030ee: PUSH32 0x000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8
0000310f: AND
00003110: EQ
00003111: PUSH2 0x312d
00003114: JUMPI
00003115: PUSH1 0x40
00003117: MLOAD
00003118: PUSH4 0x3cf941a3
0000311d: PUSH1 0xe0
0000311f: SHL
00003120: DUP2
00003121: MSTORE
00003122: PUSH1 0x04
00003124: ADD
00003125: PUSH1 0x40
00003127: MLOAD
00003128: DUP1
00003129: SWAP2
0000312a: SUB
0000312b: SWAP1
0000312c: REVERT
0000312d: JUMPDEST
0000312e: PUSH1 0x06
00003130: SLOAD
00003131: PUSH1 0x01
00003133: PUSH1 0xb8
00003135: SHL
00003136: SWAP1
00003137: DIV
00003138: PUSH1 0xff
0000313a: AND
0000313b: PUSH2 0x3157
0000313e: JUMPI
0000313f: PUSH1 0x40
00003141: MLOAD
00003142: PUSH4 0x04a246dd
00003147: PUSH1 0xe5
00003149: SHL
0000314a: DUP2
0000314b: MSTORE
0000314c: PUSH1 0x04
0000314e: ADD
0000314f: PUSH1 0x40
00003151: MLOAD
00003152: DUP1
00003153: SWAP2
00003154: SUB
00003155: SWAP1
00003156: REVERT
00003157: JUMPDEST
00003158: PUSH1 0x00
0000315a: PUSH2 0x3165
0000315d: DUP3
0000315e: DUP5
0000315f: ADD
00003160: DUP5
00003161: PUSH2 0x5a9a
00003164: JUMP
00003165: JUMPDEST
00003166: SWAP1
00003167: POP
00003168: PUSH2 0x3170
0000316b: DUP2
0000316c: PUSH2 0x3dd5
0000316f: JUMP
00003170: JUMPDEST
00003171: PUSH1 0x00
00003173: JUMPDEST
00003174: DUP7
00003175: DUP2
00003176: LT
00003177: ISZERO
00003178: PUSH2 0x3222
0000317b: JUMPI
0000317c: PUSH2 0x3212
0000317f: PUSH32 0x000000000000000000000000ba12222222228d8ba445958a75a0704d566bf2c8
000031a0: DUP8
000031a1: DUP8
000031a2: DUP5
000031a3: DUP2
000031a4: DUP2
000031a5: LT
000031a6: PUSH2 0x31b1
000031a9: JUMPI
000031aa: PUSH2 0x31b1
000031ad: PUSH2 0x56c3
000031b0: JUMP
000031b1: JUMPDEST
000031b2: SWAP1
000031b3: POP
000031b4: PUSH1 0x20
000031b6: MUL
000031b7: ADD
000031b8: CALLDATALOAD
000031b9: DUP11
000031ba: DUP11
000031bb: DUP6
000031bc: DUP2
000031bd: DUP2
000031be: LT
000031bf: PUSH2 0x31ca
000031c2: JUMPI
000031c3: PUSH2 0x31ca
000031c6: PUSH2 0x56c3
000031c9: JUMP
000031ca: JUMPDEST
000031cb: SWAP1
000031cc: POP
000031cd: PUSH1 0x20
000031cf: MUL
000031d0: ADD
000031d1: CALLDATALOAD
000031d2: PUSH2 0x31db
000031d5: SWAP2
000031d6: SWAP1
000031d7: PUSH2 0x56d9
000031da: JUMP
000031db: JUMPDEST
000031dc: DUP13
000031dd: DUP13
000031de: DUP6
000031df: DUP2
000031e0: DUP2
000031e1: LT
000031e2: PUSH2 0x31ed
000031e5: JUMPI
000031e6: PUSH2 0x31ed
000031e9: PUSH2 0x56c3
000031ec: JUMP
000031ed: JUMPDEST
000031ee: SWAP1
000031ef: POP
000031f0: PUSH1 0x20
000031f2: MUL
000031f3: ADD
000031f4: PUSH1 0x20
000031f6: DUP2
000031f7: ADD
000031f8: SWAP1
000031f9: PUSH2 0x3202
000031fc: SWAP2
000031fd: SWAP1
000031fe: PUSH2 0x503b
00003201: JUMP
00003202: JUMPDEST
00003203: PUSH1 0x01
00003205: PUSH1 0x01
00003207: PUSH1 0xa0
00003209: SHL
0000320a: SUB
0000320b: AND
0000320c: SWAP2
0000320d: SWAP1
0000320e: PUSH2 0x4458
00003211: JUMP
00003212: JUMPDEST
00003213: PUSH2 0x321b
00003216: DUP2
00003217: PUSH2 0x583d
0000321a: JUMP
0000321b: JUMPDEST
0000321c: SWAP1
0000321d: POP
0000321e: PUSH2 0x3173
00003221: JUMP
00003222: JUMPDEST
00003223: POP
00003224: POP
00003225: POP
00003226: POP
00003227: POP
00003228: POP
00003229: POP
0000322a: POP
0000322b: POP
0000322c: POP
0000322d: JUMP
0000322e: JUMPDEST
0000322f: PUSH1 0x06
00003231: SLOAD
00003232: PUSH1 0x01
00003234: PUSH1 0x01
00003236: PUSH1 0xa0
00003238: SHL
00003239: SUB
0000323a: AND
0000323b: CALLER
0000323c: EQ
0000323d: PUSH2 0x3258
00003240: JUMPI
00003241: PUSH1 0x40
00003243: MLOAD
00003244: PUSH3 0x461bcd
00003248: PUSH1 0xe5
0000324a: SHL
0000324b: DUP2
0000324c: MSTORE
0000324d: PUSH1 0x04
0000324f: ADD
00003250: PUSH2 0x0c56
00003253: SWAP1
00003254: PUSH2 0x5674
00003257: JUMP
00003258: JUMPDEST
00003259: PUSH1 0x06
0000325b: DUP1
0000325c: SLOAD
0000325d: PUSH1 0x01
0000325f: PUSH1 0x01
00003261: PUSH1 0xa0
00003263: SHL
00003264: SUB
00003265: NOT
00003266: AND
00003267: PUSH1 0x01
00003269: PUSH1 0x01
0000326b: PUSH1 0xa0
0000326d: SHL
0000326e: SUB
0000326f: DUP4
00003270: AND
00003271: SWAP1
00003272: DUP2
00003273: OR
00003274: SWAP1
00003275: SWAP2
00003276: SSTORE
00003277: PUSH1 0x40
00003279: MLOAD
0000327a: CALLER
0000327b: SWAP1
0000327c: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
0000329d: SWAP1
0000329e: PUSH1 0x00
000032a0: SWAP1
000032a1: LOG3
000032a2: POP
000032a3: JUMP
000032a4: JUMPDEST
000032a5: PUSH1 0x06
000032a7: SLOAD
000032a8: PUSH1 0x01
000032aa: PUSH1 0x01
000032ac: PUSH1 0xa0
000032ae: SHL
000032af: SUB
000032b0: AND
000032b1: CALLER
000032b2: EQ
000032b3: PUSH2 0x32ce
000032b6: JUMPI
000032b7: PUSH1 0x40
000032b9: MLOAD
000032ba: PUSH3 0x461bcd
000032be: PUSH1 0xe5
000032c0: SHL
000032c1: DUP2
000032c2: MSTORE
000032c3: PUSH1 0x04
000032c5: ADD
000032c6: PUSH2 0x0c56
000032c9: SWAP1
000032ca: PUSH2 0x5674
000032cd: JUMP
000032ce: JUMPDEST
000032cf: PUSH2 0x32d8
000032d2: DUP3
000032d3: DUP3
000032d4: PUSH2 0x42f5
000032d7: JUMP
000032d8: JUMPDEST
000032d9: PUSH1 0x12
000032db: PUSH1 0xff
000032dd: AND
000032de: DUP2
000032df: PUSH1 0x01
000032e1: PUSH1 0x01
000032e3: PUSH1 0xa0
000032e5: SHL
000032e6: SUB
000032e7: AND
000032e8: PUSH4 0x313ce567
000032ed: PUSH1 0x40
000032ef: MLOAD
000032f0: DUP2
000032f1: PUSH4 0xffffffff
000032f6: AND
000032f7: PUSH1 0xe0
000032f9: SHL
000032fa: DUP2
000032fb: MSTORE
000032fc: PUSH1 0x04
000032fe: ADD
000032ff: PUSH1 0x20
00003301: PUSH1 0x40
00003303: MLOAD
00003304: DUP1
00003305: DUP4
00003306: SUB
00003307: DUP2
00003308: DUP7
00003309: GAS
0000330a: STATICCALL
0000330b: ISZERO
0000330c: DUP1
0000330d: ISZERO
0000330e: PUSH2 0x331b
00003311: JUMPI
00003312: RETURNDATASIZE
00003313: PUSH1 0x00
00003315: DUP1
00003316: RETURNDATACOPY
00003317: RETURNDATASIZE
00003318: PUSH1 0x00
0000331a: REVERT
0000331b: JUMPDEST
0000331c: POP
0000331d: POP
0000331e: POP
0000331f: POP
00003320: PUSH1 0x40
00003322: MLOAD
00003323: RETURNDATASIZE
00003324: PUSH1 0x1f
00003326: NOT
00003327: PUSH1 0x1f
00003329: DUP3
0000332a: ADD
0000332b: AND
0000332c: DUP3
0000332d: ADD
0000332e: DUP1
0000332f: PUSH1 0x40
00003331: MSTORE
00003332: POP
00003333: DUP2
00003334: ADD
00003335: SWAP1
00003336: PUSH2 0x333f
00003339: SWAP2
0000333a: SWAP1
0000333b: PUSH2 0x5ae2
0000333e: JUMP
0000333f: JUMPDEST
00003340: PUSH1 0xff
00003342: AND
00003343: EQ
00003344: ISZERO
00003345: DUP1
00003346: PUSH2 0x33c2
00003349: JUMPI
0000334a: POP
0000334b: ADDRESS
0000334c: PUSH1 0x01
0000334e: PUSH1 0x01
00003350: PUSH1 0xa0
00003352: SHL
00003353: SUB
00003354: AND
00003355: DUP2
00003356: PUSH1 0x01
00003358: PUSH1 0x01
0000335a: PUSH1 0xa0
0000335c: SHL
0000335d: SUB
0000335e: AND
0000335f: PUSH4 0xd4b83992
00003364: PUSH1 0x40
00003366: MLOAD
00003367: DUP2
00003368: PUSH4 0xffffffff
0000336d: AND
0000336e: PUSH1 0xe0
00003370: SHL
00003371: DUP2
00003372: MSTORE
00003373: PUSH1 0x04
00003375: ADD
00003376: PUSH1 0x20
00003378: PUSH1 0x40
0000337a: MLOAD
0000337b: DUP1
0000337c: DUP4
0000337d: SUB
0000337e: DUP2
0000337f: DUP7
00003380: GAS
00003381: STATICCALL
00003382: ISZERO
00003383: DUP1
00003384: ISZERO
00003385: PUSH2 0x3392
00003388: JUMPI
00003389: RETURNDATASIZE
0000338a: PUSH1 0x00
0000338c: DUP1
0000338d: RETURNDATACOPY
0000338e: RETURNDATASIZE
0000338f: PUSH1 0x00
00003391: REVERT
00003392: JUMPDEST
00003393: POP
00003394: POP
00003395: POP
00003396: POP
00003397: PUSH1 0x40
00003399: MLOAD
0000339a: RETURNDATASIZE
0000339b: PUSH1 0x1f
0000339d: NOT
0000339e: PUSH1 0x1f
000033a0: DUP3
000033a1: ADD
000033a2: AND
000033a3: DUP3
000033a4: ADD
000033a5: DUP1
000033a6: PUSH1 0x40
000033a8: MSTORE
000033a9: POP
000033aa: DUP2
000033ab: ADD
000033ac: SWAP1
000033ad: PUSH2 0x33b6
000033b0: SWAP2
000033b1: SWAP1
000033b2: PUSH2 0x5aff
000033b5: JUMP
000033b6: JUMPDEST
000033b7: PUSH1 0x01
000033b9: PUSH1 0x01
000033bb: PUSH1 0xa0
000033bd: SHL
000033be: SUB
000033bf: AND
000033c0: EQ
000033c1: ISZERO
000033c2: JUMPDEST
000033c3: ISZERO
000033c4: PUSH2 0x33e0
000033c7: JUMPI
000033c8: PUSH1 0x40
000033ca: MLOAD
000033cb: PUSH4 0x229e78bb
000033d0: PUSH1 0xe0
000033d2: SHL
000033d3: DUP2
000033d4: MSTORE
000033d5: PUSH1 0x04
000033d7: ADD
000033d8: PUSH1 0x40
000033da: MLOAD
000033db: DUP1
000033dc: SWAP2
000033dd: SUB
000033de: SWAP1
000033df: REVERT
000033e0: JUMPDEST
000033e1: PUSH1 0x13
000033e3: DUP1
000033e4: SLOAD
000033e5: PUSH1 0x01
000033e7: PUSH1 0x01
000033e9: PUSH1 0xa0
000033eb: SHL
000033ec: SUB
000033ed: NOT
000033ee: AND
000033ef: PUSH1 0x01
000033f1: PUSH1 0x01
000033f3: PUSH1 0xa0
000033f5: SHL
000033f6: SUB
000033f7: DUP4
000033f8: AND
000033f9: SWAP1
000033fa: DUP2
000033fb: OR
000033fc: SWAP1
000033fd: SWAP2
000033fe: SSTORE
000033ff: PUSH1 0x40
00003401: MLOAD
00003402: SWAP1
00003403: DUP2
00003404: MSTORE
00003405: PUSH32 0x51b1b17228af00bd72d43ecec4334e09b3584633abf6ef363a9fde05dfa73f88
00003426: SWAP1
00003427: PUSH1 0x20
00003429: ADD
0000342a: PUSH2 0x1a12
0000342d: JUMP
0000342e: JUMPDEST
0000342f: PUSH1 0x06
00003431: SLOAD
00003432: PUSH1 0x01
00003434: PUSH1 0xb0
00003436: SHL
00003437: SWAP1
00003438: DIV
00003439: PUSH1 0xff
0000343b: AND
0000343c: PUSH2 0x34e5
0000343f: JUMPI
00003440: PUSH1 0x40
00003442: MLOAD
00003443: PUSH4 0x0ad85dff
00003448: PUSH1 0xe4
0000344a: SHL
0000344b: DUP2
0000344c: MSTORE
0000344d: ADDRESS
0000344e: PUSH1 0x04
00003450: DUP3
00003451: ADD
00003452: MSTORE
00003453: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476
00003474: PUSH1 0x01
00003476: PUSH1 0x01
00003478: PUSH1 0xa0
0000347a: SHL
0000347b: SUB
0000347c: AND
0000347d: SWAP1
0000347e: PUSH4 0xad85dff0
00003483: SWAP1
00003484: PUSH1 0x24
00003486: ADD
00003487: PUSH1 0x20
00003489: PUSH1 0x40
0000348b: MLOAD
0000348c: DUP1
0000348d: DUP4
0000348e: SUB
0000348f: DUP2
00003490: DUP7
00003491: GAS
00003492: STATICCALL
00003493: ISZERO
00003494: DUP1
00003495: ISZERO
00003496: PUSH2 0x34a3
00003499: JUMPI
0000349a: RETURNDATASIZE
0000349b: PUSH1 0x00
0000349d: DUP1
0000349e: RETURNDATACOPY
0000349f: RETURNDATASIZE
000034a0: PUSH1 0x00
000034a2: REVERT
000034a3: JUMPDEST
000034a4: POP
000034a5: POP
000034a6: POP
000034a7: POP
000034a8: PUSH1 0x40
000034aa: MLOAD
000034ab: RETURNDATASIZE
000034ac: PUSH1 0x1f
000034ae: NOT
000034af: PUSH1 0x1f
000034b1: DUP3
000034b2: ADD
000034b3: AND
000034b4: DUP3
000034b5: ADD
000034b6: DUP1
000034b7: PUSH1 0x40
000034b9: MSTORE
000034ba: POP
000034bb: DUP2
000034bc: ADD
000034bd: SWAP1
000034be: PUSH2 0x34c7
000034c1: SWAP2
000034c2: SWAP1
000034c3: PUSH2 0x59fa
000034c6: JUMP
000034c7: JUMPDEST
000034c8: ISZERO
000034c9: PUSH2 0x34e5
000034cc: JUMPI
000034cd: PUSH1 0x40
000034cf: MLOAD
000034d0: PUSH4 0x0f301f8f
000034d5: PUSH1 0xe4
000034d7: SHL
000034d8: DUP2
000034d9: MSTORE
000034da: PUSH1 0x04
000034dc: ADD
000034dd: PUSH1 0x40
000034df: MLOAD
000034e0: DUP1
000034e1: SWAP2
000034e2: SUB
000034e3: SWAP1
000034e4: REVERT
000034e5: JUMPDEST
000034e6: JUMP
000034e7: JUMPDEST
000034e8: PUSH1 0x09
000034ea: SLOAD
000034eb: PUSH1 0x00
000034ed: SWAP1
000034ee: DUP2
000034ef: DUP2
000034f0: PUSH1 0x01
000034f2: PUSH1 0x01
000034f4: PUSH1 0x40
000034f6: SHL
000034f7: SUB
000034f8: DUP2
000034f9: GT
000034fa: ISZERO
000034fb: PUSH2 0x3506
000034fe: JUMPI
000034ff: PUSH2 0x3506
00003502: PUSH2 0x4ee5
00003505: JUMP
00003506: JUMPDEST
00003507: PUSH1 0x40
00003509: MLOAD
0000350a: SWAP1
0000350b: DUP1
0000350c: DUP3
0000350d: MSTORE
0000350e: DUP1
0000350f: PUSH1 0x20
00003511: MUL
00003512: PUSH1 0x20
00003514: ADD
00003515: DUP3
00003516: ADD
00003517: PUSH1 0x40
00003519: MSTORE
0000351a: DUP1
0000351b: ISZERO
0000351c: PUSH2 0x352f
0000351f: JUMPI
00003520: DUP2
00003521: PUSH1 0x20
00003523: ADD
00003524: PUSH1 0x20
00003526: DUP3
00003527: MUL
00003528: DUP1
00003529: CALLDATASIZE
0000352a: DUP4
0000352b: CALLDATACOPY
0000352c: ADD
0000352d: SWAP1
0000352e: POP
0000352f: JUMPDEST
00003530: POP
00003531: SWAP1
00003532: POP
00003533: PUSH1 0x00
00003535: DUP3
00003536: PUSH1 0x01
00003538: PUSH1 0x01
0000353a: PUSH1 0x40
0000353c: SHL
0000353d: SUB
0000353e: DUP2
0000353f: GT
00003540: ISZERO
00003541: PUSH2 0x354c
00003544: JUMPI
00003545: PUSH2 0x354c
00003548: PUSH2 0x4ee5
0000354b: JUMP
0000354c: JUMPDEST
0000354d: PUSH1 0x40
0000354f: MLOAD
00003550: SWAP1
00003551: DUP1
00003552: DUP3
00003553: MSTORE
00003554: DUP1
00003555: PUSH1 0x20
00003557: MUL
00003558: PUSH1 0x20
0000355a: ADD
0000355b: DUP3
0000355c: ADD
0000355d: PUSH1 0x40
0000355f: MSTORE
00003560: DUP1
00003561: ISZERO
00003562: PUSH2 0x3575
00003565: JUMPI
00003566: DUP2
00003567: PUSH1 0x20
00003569: ADD
0000356a: PUSH1 0x20
0000356c: DUP3
0000356d: MUL
0000356e: DUP1
0000356f: CALLDATASIZE
00003570: DUP4
00003571: CALLDATACOPY
00003572: ADD
00003573: SWAP1
00003574: POP
00003575: JUMPDEST
00003576: POP
00003577: SWAP1
00003578: POP
00003579: DUP5
0000357a: ISZERO
0000357b: PUSH2 0x36e3
0000357e: JUMPI
0000357f: PUSH1 0x00
00003581: JUMPDEST
00003582: DUP4
00003583: DUP2
00003584: LT
00003585: ISZERO
00003586: PUSH2 0x3646
00003589: JUMPI
0000358a: PUSH1 0x00
0000358c: PUSH1 0x09
0000358e: DUP3
0000358f: DUP2
00003590: SLOAD
00003591: DUP2
00003592: LT
00003593: PUSH2 0x359e
00003596: JUMPI
00003597: PUSH2 0x359e
0000359a: PUSH2 0x56c3
0000359d: JUMP
0000359e: JUMPDEST
0000359f: SWAP1
000035a0: PUSH1 0x00
000035a2: MSTORE
000035a3: PUSH1 0x20
000035a5: PUSH1 0x00
000035a7: KECCAK256
000035a8: SWAP1
000035a9: PUSH1 0x08
000035ab: SWAP2
000035ac: DUP3
000035ad: DUP3
000035ae: DIV
000035af: ADD
000035b0: SWAP2
000035b1: SWAP1
000035b2: MOD
000035b3: PUSH1 0x04
000035b5: MUL
000035b6: SWAP1
000035b7: SLOAD
000035b8: SWAP1
000035b9: PUSH2 0x0100
000035bc: EXP
000035bd: SWAP1
000035be: DIV
000035bf: PUSH4 0xffffffff
000035c4: AND
000035c5: SWAP1
000035c6: POP
000035c7: PUSH2 0x35cf
000035ca: DUP2
000035cb: PUSH2 0x44d0
000035ce: JUMP
000035cf: JUMPDEST
000035d0: DUP4
000035d1: DUP4
000035d2: DUP2
000035d3: MLOAD
000035d4: DUP2
000035d5: LT
000035d6: PUSH2 0x35e1
000035d9: JUMPI
000035da: PUSH2 0x35e1
000035dd: PUSH2 0x56c3
000035e0: JUMP
000035e1: JUMPDEST
000035e2: PUSH1 0x20
000035e4: MUL
000035e5: PUSH1 0x20
000035e7: ADD
000035e8: ADD
000035e9: DUP2
000035ea: DUP2
000035eb: MSTORE
000035ec: POP
000035ed: PUSH1 0x00
000035ef: SUB
000035f0: PUSH2 0x35f9
000035f3: JUMPI
000035f4: POP
000035f5: PUSH2 0x3636
000035f8: JUMP
000035f9: JUMPDEST
000035fa: PUSH2 0x3602
000035fd: DUP2
000035fe: PUSH2 0x39a9
00003601: JUMP
00003602: JUMPDEST
00003603: DUP5
00003604: DUP4
00003605: DUP2
00003606: MLOAD
00003607: DUP2
00003608: LT
00003609: PUSH2 0x3614
0000360c: JUMPI
0000360d: PUSH2 0x3614
00003610: PUSH2 0x56c3
00003613: JUMP
00003614: JUMPDEST
00003615: PUSH1 0x20
00003617: MUL
00003618: PUSH1 0x20
0000361a: ADD
0000361b: ADD
0000361c: SWAP1
0000361d: PUSH1 0x01
0000361f: PUSH1 0x01
00003621: PUSH1 0xa0
00003623: SHL
00003624: SUB
00003625: AND
00003626: SWAP1
00003627: DUP2
00003628: PUSH1 0x01
0000362a: PUSH1 0x01
0000362c: PUSH1 0xa0
0000362e: SHL
0000362f: SUB
00003630: AND
00003631: DUP2
00003632: MSTORE
00003633: POP
00003634: POP
00003635: POP
00003636: JUMPDEST
00003637: PUSH2 0x363f
0000363a: DUP2
0000363b: PUSH2 0x583d
0000363e: JUMP
0000363f: JUMPDEST
00003640: SWAP1
00003641: POP
00003642: PUSH2 0x3581
00003645: JUMP
00003646: JUMPDEST
00003647: POP
00003648: PUSH1 0x08
0000364a: SLOAD
0000364b: PUSH1 0x40
0000364d: MLOAD
0000364e: PUSH4 0xb333a175
00003653: PUSH1 0xe0
00003655: SHL
00003656: DUP2
00003657: MSTORE
00003658: PUSH1 0x01
0000365a: PUSH1 0x01
0000365c: PUSH1 0xa0
0000365e: SHL
0000365f: SUB
00003660: SWAP1
00003661: SWAP2
00003662: AND
00003663: SWAP1
00003664: PUSH4 0xb333a175
00003669: SWAP1
0000366a: PUSH2 0x369b
0000366d: SWAP1
0000366e: DUP6
0000366f: SWAP1
00003670: DUP6
00003671: SWAP1
00003672: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00003693: SWAP1
00003694: PUSH1 0x04
00003696: ADD
00003697: PUSH2 0x5b1c
0000369a: JUMP
0000369b: JUMPDEST
0000369c: PUSH1 0x20
0000369e: PUSH1 0x40
000036a0: MLOAD
000036a1: DUP1
000036a2: DUP4
000036a3: SUB
000036a4: DUP2
000036a5: DUP7
000036a6: GAS
000036a7: STATICCALL
000036a8: ISZERO
000036a9: DUP1
000036aa: ISZERO
000036ab: PUSH2 0x36b8
000036ae: JUMPI
000036af: RETURNDATASIZE
000036b0: PUSH1 0x00
000036b2: DUP1
000036b3: RETURNDATACOPY
000036b4: RETURNDATASIZE
000036b5: PUSH1 0x00
000036b7: REVERT
000036b8: JUMPDEST
000036b9: POP
000036ba: POP
000036bb: POP
000036bc: POP
000036bd: PUSH1 0x40
000036bf: MLOAD
000036c0: RETURNDATASIZE
000036c1: PUSH1 0x1f
000036c3: NOT
000036c4: PUSH1 0x1f
000036c6: DUP3
000036c7: ADD
000036c8: AND
000036c9: DUP3
000036ca: ADD
000036cb: DUP1
000036cc: PUSH1 0x40
000036ce: MSTORE
000036cf: POP
000036d0: DUP2
000036d1: ADD
000036d2: SWAP1
000036d3: PUSH2 0x36dc
000036d6: SWAP2
000036d7: SWAP1
000036d8: PUSH2 0x5b5a
000036db: JUMP
000036dc: JUMPDEST
000036dd: SWAP4
000036de: POP
000036df: PUSH2 0x16c8
000036e2: JUMP
000036e3: JUMPDEST
000036e4: PUSH1 0x0a
000036e6: SLOAD
000036e7: PUSH1 0x00
000036e9: DUP2
000036ea: PUSH1 0x01
000036ec: PUSH1 0x01
000036ee: PUSH1 0x40
000036f0: SHL
000036f1: SUB
000036f2: DUP2
000036f3: GT
000036f4: ISZERO
000036f5: PUSH2 0x3700
000036f8: JUMPI
000036f9: PUSH2 0x3700
000036fc: PUSH2 0x4ee5
000036ff: JUMP
00003700: JUMPDEST
00003701: PUSH1 0x40
00003703: MLOAD
00003704: SWAP1
00003705: DUP1
00003706: DUP3
00003707: MSTORE
00003708: DUP1
00003709: PUSH1 0x20
0000370b: MUL
0000370c: PUSH1 0x20
0000370e: ADD
0000370f: DUP3
00003710: ADD
00003711: PUSH1 0x40
00003713: MSTORE
00003714: DUP1
00003715: ISZERO
00003716: PUSH2 0x3729
00003719: JUMPI
0000371a: DUP2
0000371b: PUSH1 0x20
0000371d: ADD
0000371e: PUSH1 0x20
00003720: DUP3
00003721: MUL
00003722: DUP1
00003723: CALLDATASIZE
00003724: DUP4
00003725: CALLDATACOPY
00003726: ADD
00003727: SWAP1
00003728: POP
00003729: JUMPDEST
0000372a: POP
0000372b: SWAP1
0000372c: POP
0000372d: PUSH1 0x00
0000372f: DUP3
00003730: PUSH1 0x01
00003732: PUSH1 0x01
00003734: PUSH1 0x40
00003736: SHL
00003737: SUB
00003738: DUP2
00003739: GT
0000373a: ISZERO
0000373b: PUSH2 0x3746
0000373e: JUMPI
0000373f: PUSH2 0x3746
00003742: PUSH2 0x4ee5
00003745: JUMP
00003746: JUMPDEST
00003747: PUSH1 0x40
00003749: MLOAD
0000374a: SWAP1
0000374b: DUP1
0000374c: DUP3
0000374d: MSTORE
0000374e: DUP1
0000374f: PUSH1 0x20
00003751: MUL
00003752: PUSH1 0x20
00003754: ADD
00003755: DUP3
00003756: ADD
00003757: PUSH1 0x40
00003759: MSTORE
0000375a: DUP1
0000375b: ISZERO
0000375c: PUSH2 0x376f
0000375f: JUMPI
00003760: DUP2
00003761: PUSH1 0x20
00003763: ADD
00003764: PUSH1 0x20
00003766: DUP3
00003767: MUL
00003768: DUP1
00003769: CALLDATASIZE
0000376a: DUP4
0000376b: CALLDATACOPY
0000376c: ADD
0000376d: SWAP1
0000376e: POP
0000376f: JUMPDEST
00003770: POP
00003771: SWAP1
00003772: POP
00003773: PUSH1 0x00
00003775: JUMPDEST
00003776: DUP7
00003777: DUP2
00003778: LT
00003779: ISZERO
0000377a: PUSH2 0x383a
0000377d: JUMPI
0000377e: PUSH1 0x00
00003780: PUSH1 0x09
00003782: DUP3
00003783: DUP2
00003784: SLOAD
00003785: DUP2
00003786: LT
00003787: PUSH2 0x3792
0000378a: JUMPI
0000378b: PUSH2 0x3792
0000378e: PUSH2 0x56c3
00003791: JUMP
00003792: JUMPDEST
00003793: SWAP1
00003794: PUSH1 0x00
00003796: MSTORE
00003797: PUSH1 0x20
00003799: PUSH1 0x00
0000379b: KECCAK256
0000379c: SWAP1
0000379d: PUSH1 0x08
0000379f: SWAP2
000037a0: DUP3
000037a1: DUP3
000037a2: DIV
000037a3: ADD
000037a4: SWAP2
000037a5: SWAP1
000037a6: MOD
000037a7: PUSH1 0x04
000037a9: MUL
000037aa: SWAP1
000037ab: SLOAD
000037ac: SWAP1
000037ad: PUSH2 0x0100
000037b0: EXP
000037b1: SWAP1
000037b2: DIV
000037b3: PUSH4 0xffffffff
000037b8: AND
000037b9: SWAP1
000037ba: POP
000037bb: PUSH2 0x37c3
000037be: DUP2
000037bf: PUSH2 0x3b98
000037c2: JUMP
000037c3: JUMPDEST
000037c4: DUP7
000037c5: DUP4
000037c6: DUP2
000037c7: MLOAD
000037c8: DUP2
000037c9: LT
000037ca: PUSH2 0x37d5
000037cd: JUMPI
000037ce: PUSH2 0x37d5
000037d1: PUSH2 0x56c3
000037d4: JUMP
000037d5: JUMPDEST
000037d6: PUSH1 0x20
000037d8: MUL
000037d9: PUSH1 0x20
000037db: ADD
000037dc: ADD
000037dd: DUP2
000037de: DUP2
000037df: MSTORE
000037e0: POP
000037e1: PUSH1 0x00
000037e3: SUB
000037e4: PUSH2 0x37ed
000037e7: JUMPI
000037e8: POP
000037e9: PUSH2 0x382a
000037ec: JUMP
000037ed: JUMPDEST
000037ee: PUSH2 0x37f6
000037f1: DUP2
000037f2: PUSH2 0x39a9
000037f5: JUMP
000037f6: JUMPDEST
000037f7: DUP8
000037f8: DUP4
000037f9: DUP2
000037fa: MLOAD
000037fb: DUP2
000037fc: LT
000037fd: PUSH2 0x3808
00003800: JUMPI
00003801: PUSH2 0x3808
00003804: PUSH2 0x56c3
00003807: JUMP
00003808: JUMPDEST
00003809: PUSH1 0x20
0000380b: MUL
0000380c: PUSH1 0x20
0000380e: ADD
0000380f: ADD
00003810: SWAP1
00003811: PUSH1 0x01
00003813: PUSH1 0x01
00003815: PUSH1 0xa0
00003817: SHL
00003818: SUB
00003819: AND
0000381a: SWAP1
0000381b: DUP2
0000381c: PUSH1 0x01
0000381e: PUSH1 0x01
00003820: PUSH1 0xa0
00003822: SHL
00003823: SUB
00003824: AND
00003825: DUP2
00003826: MSTORE
00003827: POP
00003828: POP
00003829: POP
0000382a: JUMPDEST
0000382b: PUSH2 0x3833
0000382e: DUP2
0000382f: PUSH2 0x583d
00003832: JUMP
00003833: JUMPDEST
00003834: SWAP1
00003835: POP
00003836: PUSH2 0x3775
00003839: JUMP
0000383a: JUMPDEST
0000383b: POP
0000383c: PUSH1 0x00
0000383e: JUMPDEST
0000383f: DUP4
00003840: DUP2
00003841: LT
00003842: ISZERO
00003843: PUSH2 0x3903
00003846: JUMPI
00003847: PUSH1 0x00
00003849: PUSH1 0x0a
0000384b: DUP3
0000384c: DUP2
0000384d: SLOAD
0000384e: DUP2
0000384f: LT
00003850: PUSH2 0x385b
00003853: JUMPI
00003854: PUSH2 0x385b
00003857: PUSH2 0x56c3
0000385a: JUMP
0000385b: JUMPDEST
0000385c: SWAP1
0000385d: PUSH1 0x00
0000385f: MSTORE
00003860: PUSH1 0x20
00003862: PUSH1 0x00
00003864: KECCAK256
00003865: SWAP1
00003866: PUSH1 0x08
00003868: SWAP2
00003869: DUP3
0000386a: DUP3
0000386b: DIV
0000386c: ADD
0000386d: SWAP2
0000386e: SWAP1
0000386f: MOD
00003870: PUSH1 0x04
00003872: MUL
00003873: SWAP1
00003874: SLOAD
00003875: SWAP1
00003876: PUSH2 0x0100
00003879: EXP
0000387a: SWAP1
0000387b: DIV
0000387c: PUSH4 0xffffffff
00003881: AND
00003882: SWAP1
00003883: POP
00003884: PUSH2 0x388c
00003887: DUP2
00003888: PUSH2 0x3b98
0000388b: JUMP
0000388c: JUMPDEST
0000388d: DUP4
0000388e: DUP4
0000388f: DUP2
00003890: MLOAD
00003891: DUP2
00003892: LT
00003893: PUSH2 0x389e
00003896: JUMPI
00003897: PUSH2 0x389e
0000389a: PUSH2 0x56c3
0000389d: JUMP
0000389e: JUMPDEST
0000389f: PUSH1 0x20
000038a1: MUL
000038a2: PUSH1 0x20
000038a4: ADD
000038a5: ADD
000038a6: DUP2
000038a7: DUP2
000038a8: MSTORE
000038a9: POP
000038aa: PUSH1 0x00
000038ac: SUB
000038ad: PUSH2 0x38b6
000038b0: JUMPI
000038b1: POP
000038b2: PUSH2 0x38f3
000038b5: JUMP
000038b6: JUMPDEST
000038b7: PUSH2 0x38bf
000038ba: DUP2
000038bb: PUSH2 0x39a9
000038be: JUMP
000038bf: JUMPDEST
000038c0: DUP5
000038c1: DUP4
000038c2: DUP2
000038c3: MLOAD
000038c4: DUP2
000038c5: LT
000038c6: PUSH2 0x38d1
000038c9: JUMPI
000038ca: PUSH2 0x38d1
000038cd: PUSH2 0x56c3
000038d0: JUMP
000038d1: JUMPDEST
000038d2: PUSH1 0x20
000038d4: MUL
000038d5: PUSH1 0x20
000038d7: ADD
000038d8: ADD
000038d9: SWAP1
000038da: PUSH1 0x01
000038dc: PUSH1 0x01
000038de: PUSH1 0xa0
000038e0: SHL
000038e1: SUB
000038e2: AND
000038e3: SWAP1
000038e4: DUP2
000038e5: PUSH1 0x01
000038e7: PUSH1 0x01
000038e9: PUSH1 0xa0
000038eb: SHL
000038ec: SUB
000038ed: AND
000038ee: DUP2
000038ef: MSTORE
000038f0: POP
000038f1: POP
000038f2: POP
000038f3: JUMPDEST
000038f4: PUSH2 0x38fc
000038f7: DUP2
000038f8: PUSH2 0x583d
000038fb: JUMP
000038fc: JUMPDEST
000038fd: SWAP1
000038fe: POP
000038ff: PUSH2 0x383e
00003902: JUMP
00003903: JUMPDEST
00003904: POP
00003905: PUSH1 0x08
00003907: SLOAD
00003908: PUSH1 0x40
0000390a: MLOAD
0000390b: PUSH4 0x7563738b
00003910: PUSH1 0xe1
00003912: SHL
00003913: DUP2
00003914: MSTORE
00003915: PUSH1 0x01
00003917: PUSH1 0x01
00003919: PUSH1 0xa0
0000391b: SHL
0000391c: SUB
0000391d: SWAP1
0000391e: SWAP2
0000391f: AND
00003920: SWAP1
00003921: PUSH4 0xeac6e716
00003926: SWAP1
00003927: PUSH2 0x395c
0000392a: SWAP1
0000392b: DUP9
0000392c: SWAP1
0000392d: DUP9
0000392e: SWAP1
0000392f: DUP8
00003930: SWAP1
00003931: DUP8
00003932: SWAP1
00003933: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00003954: SWAP1
00003955: PUSH1 0x04
00003957: ADD
00003958: PUSH2 0x5b73
0000395b: JUMP
0000395c: JUMPDEST
0000395d: PUSH1 0x20
0000395f: PUSH1 0x40
00003961: MLOAD
00003962: DUP1
00003963: DUP4
00003964: SUB
00003965: DUP2
00003966: DUP7
00003967: GAS
00003968: STATICCALL
00003969: ISZERO
0000396a: DUP1
0000396b: ISZERO
0000396c: PUSH2 0x3979
0000396f: JUMPI
00003970: RETURNDATASIZE
00003971: PUSH1 0x00
00003973: DUP1
00003974: RETURNDATACOPY
00003975: RETURNDATASIZE
00003976: PUSH1 0x00
00003978: REVERT
00003979: JUMPDEST
0000397a: POP
0000397b: POP
0000397c: POP
0000397d: POP
0000397e: PUSH1 0x40
00003980: MLOAD
00003981: RETURNDATASIZE
00003982: PUSH1 0x1f
00003984: NOT
00003985: PUSH1 0x1f
00003987: DUP3
00003988: ADD
00003989: AND
0000398a: DUP3
0000398b: ADD
0000398c: DUP1
0000398d: PUSH1 0x40
0000398f: MSTORE
00003990: POP
00003991: DUP2
00003992: ADD
00003993: SWAP1
00003994: PUSH2 0x399d
00003997: SWAP2
00003998: SWAP1
00003999: PUSH2 0x5b5a
0000399c: JUMP
0000399d: JUMPDEST
0000399e: SWAP9
0000399f: SWAP8
000039a0: POP
000039a1: POP
000039a2: POP
000039a3: POP
000039a4: POP
000039a5: POP
000039a6: POP
000039a7: POP
000039a8: JUMP
000039a9: JUMPDEST
000039aa: PUSH4 0xffffffff
000039af: DUP2
000039b0: AND
000039b1: PUSH1 0x00
000039b3: SWAP1
000039b4: DUP2
000039b5: MSTORE
000039b6: PUSH1 0x0c
000039b8: PUSH1 0x20
000039ba: MSTORE
000039bb: PUSH1 0x40
000039bd: DUP1
000039be: DUP3
000039bf: KECCAK256
000039c0: DUP1
000039c1: SLOAD
000039c2: SWAP2
000039c3: MLOAD
000039c4: PUSH4 0xe170a9bf
000039c9: PUSH1 0xe0
000039cb: SHL
000039cc: DUP2
000039cd: MSTORE
000039ce: PUSH1 0x01
000039d0: PUSH1 0x01
000039d2: PUSH1 0xa0
000039d4: SHL
000039d5: SUB
000039d6: SWAP1
000039d7: SWAP3
000039d8: AND
000039d9: SWAP2
000039da: DUP3
000039db: SWAP2
000039dc: PUSH4 0xe170a9bf
000039e1: SWAP2
000039e2: PUSH2 0x39f1
000039e5: SWAP2
000039e6: PUSH1 0x01
000039e8: ADD
000039e9: SWAP1
000039ea: PUSH1 0x04
000039ec: ADD
000039ed: PUSH2 0x5c58
000039f0: JUMP
000039f1: JUMPDEST
000039f2: PUSH1 0x20
000039f4: PUSH1 0x40
000039f6: MLOAD
000039f7: DUP1
000039f8: DUP4
000039f9: SUB
000039fa: DUP2
000039fb: DUP7
000039fc: GAS
000039fd: STATICCALL
000039fe: ISZERO
000039ff: DUP1
00003a00: ISZERO
00003a01: PUSH2 0x3a0e
00003a04: JUMPI
00003a05: RETURNDATASIZE
00003a06: PUSH1 0x00
00003a08: DUP1
00003a09: RETURNDATACOPY
00003a0a: RETURNDATASIZE
00003a0b: PUSH1 0x00
00003a0d: REVERT
00003a0e: JUMPDEST
00003a0f: POP
00003a10: POP
00003a11: POP
00003a12: POP
00003a13: PUSH1 0x40
00003a15: MLOAD
00003a16: RETURNDATASIZE
00003a17: PUSH1 0x1f
00003a19: NOT
00003a1a: PUSH1 0x1f
00003a1c: DUP3
00003a1d: ADD
00003a1e: AND
00003a1f: DUP3
00003a20: ADD
00003a21: DUP1
00003a22: PUSH1 0x40
00003a24: MSTORE
00003a25: POP
00003a26: DUP2
00003a27: ADD
00003a28: SWAP1
00003a29: PUSH2 0x3a32
00003a2c: SWAP2
00003a2d: SWAP1
00003a2e: PUSH2 0x5aff
00003a31: JUMP
00003a32: JUMPDEST
00003a33: SWAP4
00003a34: SWAP3
00003a35: POP
00003a36: POP
00003a37: POP
00003a38: JUMP
00003a39: JUMPDEST
00003a3a: PUSH1 0x13
00003a3c: SLOAD
00003a3d: PUSH1 0x00
00003a3f: SWAP1
00003a40: DUP2
00003a41: SWAP1
00003a42: PUSH1 0x01
00003a44: PUSH1 0x01
00003a46: PUSH1 0xa0
00003a48: SHL
00003a49: SUB
00003a4a: AND
00003a4b: DUP1
00003a4c: ISZERO
00003a4d: PUSH2 0x3b34
00003a50: JUMPI
00003a51: PUSH1 0x00
00003a53: DUP1
00003a54: PUSH1 0x00
00003a56: DUP4
00003a57: PUSH1 0x01
00003a59: PUSH1 0x01
00003a5b: PUSH1 0xa0
00003a5d: SHL
00003a5e: SUB
00003a5f: AND
00003a60: PUSH4 0xc36af460
00003a65: PUSH1 0x40
00003a67: MLOAD
00003a68: DUP2
00003a69: PUSH4 0xffffffff
00003a6e: AND
00003a6f: PUSH1 0xe0
00003a71: SHL
00003a72: DUP2
00003a73: MSTORE
00003a74: PUSH1 0x04
00003a76: ADD
00003a77: PUSH1 0x60
00003a79: PUSH1 0x40
00003a7b: MLOAD
00003a7c: DUP1
00003a7d: DUP4
00003a7e: SUB
00003a7f: DUP2
00003a80: DUP7
00003a81: GAS
00003a82: STATICCALL
00003a83: ISZERO
00003a84: DUP1
00003a85: ISZERO
00003a86: PUSH2 0x3a93
00003a89: JUMPI
00003a8a: RETURNDATASIZE
00003a8b: PUSH1 0x00
00003a8d: DUP1
00003a8e: RETURNDATACOPY
00003a8f: RETURNDATASIZE
00003a90: PUSH1 0x00
00003a92: REVERT
00003a93: JUMPDEST
00003a94: POP
00003a95: POP
00003a96: POP
00003a97: POP
00003a98: PUSH1 0x40
00003a9a: MLOAD
00003a9b: RETURNDATASIZE
00003a9c: PUSH1 0x1f
00003a9e: NOT
00003a9f: PUSH1 0x1f
00003aa1: DUP3
00003aa2: ADD
00003aa3: AND
00003aa4: DUP3
00003aa5: ADD
00003aa6: DUP1
00003aa7: PUSH1 0x40
00003aa9: MSTORE
00003aaa: POP
00003aab: DUP2
00003aac: ADD
00003aad: SWAP1
00003aae: PUSH2 0x3ab7
00003ab1: SWAP2
00003ab2: SWAP1
00003ab3: PUSH2 0x5c6b
00003ab6: JUMP
00003ab7: JUMPDEST
00003ab8: SWAP3
00003ab9: POP
00003aba: SWAP3
00003abb: POP
00003abc: SWAP3
00003abd: POP
00003abe: DUP1
00003abf: ISZERO
00003ac0: PUSH2 0x3adc
00003ac3: JUMPI
00003ac4: PUSH1 0x40
00003ac6: MLOAD
00003ac7: PUSH4 0x229e78bb
00003acc: PUSH1 0xe0
00003ace: SHL
00003acf: DUP2
00003ad0: MSTORE
00003ad1: PUSH1 0x04
00003ad3: ADD
00003ad4: PUSH1 0x40
00003ad6: MLOAD
00003ad7: DUP1
00003ad8: SWAP2
00003ad9: SUB
00003ada: SWAP1
00003adb: REVERT
00003adc: JUMPDEST
00003add: PUSH1 0x00
00003adf: DUP8
00003ae0: ISZERO
00003ae1: PUSH2 0x3afa
00003ae4: JUMPI
00003ae5: DUP3
00003ae6: DUP5
00003ae7: GT
00003ae8: PUSH2 0x3af1
00003aeb: JUMPI
00003aec: DUP3
00003aed: PUSH2 0x3af3
00003af0: JUMP
00003af1: JUMPDEST
00003af2: DUP4
00003af3: JUMPDEST
00003af4: SWAP1
00003af5: POP
00003af6: PUSH2 0x3b0c
00003af9: JUMP
00003afa: JUMPDEST
00003afb: DUP3
00003afc: DUP5
00003afd: LT
00003afe: PUSH2 0x3b07
00003b01: JUMPI
00003b02: DUP3
00003b03: PUSH2 0x3b09
00003b06: JUMP
00003b07: JUMPDEST
00003b08: DUP4
00003b09: JUMPDEST
00003b0a: SWAP1
00003b0b: POP
00003b0c: JUMPDEST
00003b0d: PUSH1 0x02
00003b0f: SLOAD
00003b10: SWAP6
00003b11: POP
00003b12: PUSH2 0x3b29
00003b15: DUP7
00003b16: PUSH2 0x3b21
00003b19: PUSH1 0x12
00003b1b: PUSH1 0x0a
00003b1d: PUSH2 0x5d7d
00003b20: JUMP
00003b21: JUMPDEST
00003b22: DUP4
00003b23: SWAP2
00003b24: SWAP1
00003b25: PUSH2 0x42d6
00003b28: JUMP
00003b29: JUMPDEST
00003b2a: SWAP7
00003b2b: POP
00003b2c: POP
00003b2d: POP
00003b2e: POP
00003b2f: POP
00003b30: PUSH2 0x3b4d
00003b33: JUMP
00003b34: JUMPDEST
00003b35: PUSH1 0x40
00003b37: MLOAD
00003b38: PUSH4 0x229e78bb
00003b3d: PUSH1 0xe0
00003b3f: SHL
00003b40: DUP2
00003b41: MSTORE
00003b42: PUSH1 0x04
00003b44: ADD
00003b45: PUSH1 0x40
00003b47: MLOAD
00003b48: DUP1
00003b49: SWAP2
00003b4a: SUB
00003b4b: SWAP1
00003b4c: REVERT
00003b4d: JUMPDEST
00003b4e: POP
00003b4f: SWAP2
00003b50: POP
00003b51: SWAP2
00003b52: JUMP
00003b53: JUMPDEST
00003b54: PUSH1 0x00
00003b56: PUSH2 0x0e85
00003b59: DUP5
00003b5a: DUP5
00003b5b: DUP5
00003b5c: PUSH2 0x42d6
00003b5f: JUMP
00003b60: JUMPDEST
00003b61: PUSH1 0x00
00003b63: PUSH2 0x0e85
00003b66: DUP5
00003b67: DUP4
00003b68: DUP6
00003b69: PUSH2 0x3da7
00003b6c: JUMP
00003b6d: JUMPDEST
00003b6e: PUSH1 0x06
00003b70: SLOAD
00003b71: PUSH1 0x01
00003b73: PUSH1 0xa8
00003b75: SHL
00003b76: SWAP1
00003b77: DIV
00003b78: PUSH1 0xff
00003b7a: AND
00003b7b: ISZERO
00003b7c: PUSH2 0x34e5
00003b7f: JUMPI
00003b80: PUSH1 0x40
00003b82: MLOAD
00003b83: PUSH4 0x37a5332d
00003b88: PUSH1 0xe1
00003b8a: SHL
00003b8b: DUP2
00003b8c: MSTORE
00003b8d: PUSH1 0x04
00003b8f: ADD
00003b90: PUSH1 0x40
00003b92: MLOAD
00003b93: DUP1
00003b94: SWAP2
00003b95: SUB
00003b96: SWAP1
00003b97: REVERT
00003b98: JUMPDEST
00003b99: PUSH4 0xffffffff
00003b9e: DUP2
00003b9f: AND
00003ba0: PUSH1 0x00
00003ba2: SWAP1
00003ba3: DUP2
00003ba4: MSTORE
00003ba5: PUSH1 0x0c
00003ba7: PUSH1 0x20
00003ba9: MSTORE
00003baa: PUSH1 0x40
00003bac: DUP1
00003bad: DUP3
00003bae: KECCAK256
00003baf: DUP1
00003bb0: SLOAD
00003bb1: SWAP2
00003bb2: MLOAD
00003bb3: PUSH4 0x78415365
00003bb8: PUSH1 0xe0
00003bba: SHL
00003bbb: DUP2
00003bbc: MSTORE
00003bbd: PUSH1 0x01
00003bbf: PUSH1 0x01
00003bc1: PUSH1 0xa0
00003bc3: SHL
00003bc4: SUB
00003bc5: SWAP1
00003bc6: SWAP3
00003bc7: AND
00003bc8: SWAP2
00003bc9: DUP3
00003bca: SWAP2
00003bcb: PUSH4 0x78415365
00003bd0: SWAP2
00003bd1: PUSH2 0x3be0
00003bd4: SWAP2
00003bd5: PUSH1 0x01
00003bd7: ADD
00003bd8: SWAP1
00003bd9: PUSH1 0x04
00003bdb: ADD
00003bdc: PUSH2 0x5c58
00003bdf: JUMP
00003be0: JUMPDEST
00003be1: PUSH1 0x20
00003be3: PUSH1 0x40
00003be5: MLOAD
00003be6: DUP1
00003be7: DUP4
00003be8: SUB
00003be9: DUP2
00003bea: DUP7
00003beb: GAS
00003bec: STATICCALL
00003bed: ISZERO
00003bee: DUP1
00003bef: ISZERO
00003bf0: PUSH2 0x3bfd
00003bf3: JUMPI
00003bf4: RETURNDATASIZE
00003bf5: PUSH1 0x00
00003bf7: DUP1
00003bf8: RETURNDATACOPY
00003bf9: RETURNDATASIZE
00003bfa: PUSH1 0x00
00003bfc: REVERT
00003bfd: JUMPDEST
00003bfe: POP
00003bff: POP
00003c00: POP
00003c01: POP
00003c02: PUSH1 0x40
00003c04: MLOAD
00003c05: RETURNDATASIZE
00003c06: PUSH1 0x1f
00003c08: NOT
00003c09: PUSH1 0x1f
00003c0b: DUP3
00003c0c: ADD
00003c0d: AND
00003c0e: DUP3
00003c0f: ADD
00003c10: DUP1
00003c11: PUSH1 0x40
00003c13: MSTORE
00003c14: POP
00003c15: DUP2
00003c16: ADD
00003c17: SWAP1
00003c18: PUSH2 0x3a32
00003c1b: SWAP2
00003c1c: SWAP1
00003c1d: PUSH2 0x5b5a
00003c20: JUMP
00003c21: JUMPDEST
00003c22: PUSH1 0x06
00003c24: SLOAD
00003c25: PUSH4 0xffffffff
00003c2a: PUSH1 0x01
00003c2c: PUSH1 0xc0
00003c2e: SHL
00003c2f: SWAP1
00003c30: SWAP2
00003c31: DIV
00003c32: DUP2
00003c33: AND
00003c34: SWAP1
00003c35: DUP4
00003c36: AND
00003c37: SUB
00003c38: PUSH2 0x3c54
00003c3b: JUMPI
00003c3c: PUSH1 0x40
00003c3e: MLOAD
00003c3f: PUSH4 0x19ded731
00003c44: PUSH1 0xe2
00003c46: SHL
00003c47: DUP2
00003c48: MSTORE
00003c49: PUSH1 0x04
00003c4b: ADD
00003c4c: PUSH1 0x40
00003c4e: MLOAD
00003c4f: DUP1
00003c50: SWAP2
00003c51: SUB
00003c52: SWAP1
00003c53: REVERT
00003c54: JUMPDEST
00003c55: DUP1
00003c56: ISZERO
00003c57: PUSH2 0x3c6a
00003c5a: JUMPI
00003c5b: PUSH2 0x3c65
00003c5e: PUSH1 0x0a
00003c60: DUP5
00003c61: PUSH2 0x458a
00003c64: JUMP
00003c65: JUMPDEST
00003c66: PUSH2 0x3c75
00003c69: JUMP
00003c6a: JUMPDEST
00003c6b: PUSH2 0x3c75
00003c6e: PUSH1 0x09
00003c70: DUP5
00003c71: PUSH2 0x458a
00003c74: JUMP
00003c75: JUMPDEST
00003c76: PUSH4 0xffffffff
00003c7b: DUP3
00003c7c: AND
00003c7d: PUSH1 0x00
00003c7f: SWAP1
00003c80: DUP2
00003c81: MSTORE
00003c82: PUSH1 0x0b
00003c84: PUSH1 0x20
00003c86: SWAP1
00003c87: DUP2
00003c88: MSTORE
00003c89: PUSH1 0x40
00003c8b: DUP1
00003c8c: DUP4
00003c8d: KECCAK256
00003c8e: DUP1
00003c8f: SLOAD
00003c90: PUSH1 0xff
00003c92: NOT
00003c93: AND
00003c94: SWAP1
00003c95: SSTORE
00003c96: PUSH1 0x0c
00003c98: SWAP1
00003c99: SWAP2
00003c9a: MSTORE
00003c9b: DUP2
00003c9c: KECCAK256
00003c9d: DUP1
00003c9e: SLOAD
00003c9f: PUSH1 0x01
00003ca1: PUSH1 0x01
00003ca3: PUSH1 0xa8
00003ca5: SHL
00003ca6: SUB
00003ca7: NOT
00003ca8: AND
00003ca9: DUP2
00003caa: SSTORE
00003cab: SWAP1
00003cac: PUSH2 0x3cb8
00003caf: PUSH1 0x01
00003cb1: DUP4
00003cb2: ADD
00003cb3: DUP3
00003cb4: PUSH2 0x4d9e
00003cb7: JUMP
00003cb8: JUMPDEST
00003cb9: PUSH2 0x3cc6
00003cbc: PUSH1 0x02
00003cbe: DUP4
00003cbf: ADD
00003cc0: PUSH1 0x00
00003cc2: PUSH2 0x4d9e
00003cc5: JUMP
00003cc6: JUMPDEST
00003cc7: POP
00003cc8: POP
00003cc9: PUSH1 0x40
00003ccb: DUP1
00003ccc: MLOAD
00003ccd: PUSH4 0xffffffff
00003cd2: DUP1
00003cd3: DUP6
00003cd4: AND
00003cd5: DUP3
00003cd6: MSTORE
00003cd7: DUP6
00003cd8: AND
00003cd9: PUSH1 0x20
00003cdb: DUP3
00003cdc: ADD
00003cdd: MSTORE
00003cde: PUSH32 0xa5cd0099b78b279c04987aa80ffffaf8fc8c8af4e7c7bce2686e8d01e2e1bd51
00003cff: SWAP2
00003d00: ADD
00003d01: PUSH1 0x40
00003d03: MLOAD
00003d04: DUP1
00003d05: SWAP2
00003d06: SUB
00003d07: SWAP1
00003d08: LOG1
00003d09: POP
00003d0a: POP
00003d0b: POP
00003d0c: JUMP
00003d0d: JUMPDEST
00003d0e: PUSH1 0x00
00003d10: PUSH32 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f
00003d31: PUSH1 0x00
00003d33: PUSH1 0x40
00003d35: MLOAD
00003d36: PUSH2 0x3d3f
00003d39: SWAP2
00003d3a: SWAP1
00003d3b: PUSH2 0x5d8c
00003d3e: JUMP
00003d3f: JUMPDEST
00003d40: PUSH1 0x40
00003d42: DUP1
00003d43: MLOAD
00003d44: SWAP2
00003d45: DUP3
00003d46: SWAP1
00003d47: SUB
00003d48: DUP3
00003d49: KECCAK256
00003d4a: PUSH1 0x20
00003d4c: DUP4
00003d4d: ADD
00003d4e: SWAP4
00003d4f: SWAP1
00003d50: SWAP4
00003d51: MSTORE
00003d52: DUP2
00003d53: ADD
00003d54: SWAP2
00003d55: SWAP1
00003d56: SWAP2
00003d57: MSTORE
00003d58: PUSH32 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6
00003d79: PUSH1 0x60
00003d7b: DUP3
00003d7c: ADD
00003d7d: MSTORE
00003d7e: CHAINID
00003d7f: PUSH1 0x80
00003d81: DUP3
00003d82: ADD
00003d83: MSTORE
00003d84: ADDRESS
00003d85: PUSH1 0xa0
00003d87: DUP3
00003d88: ADD
00003d89: MSTORE
00003d8a: PUSH1 0xc0
00003d8c: ADD
00003d8d: PUSH1 0x40
00003d8f: MLOAD
00003d90: PUSH1 0x20
00003d92: DUP2
00003d93: DUP4
00003d94: SUB
00003d95: SUB
00003d96: DUP2
00003d97: MSTORE
00003d98: SWAP1
00003d99: PUSH1 0x40
00003d9b: MSTORE
00003d9c: DUP1
00003d9d: MLOAD
00003d9e: SWAP1
00003d9f: PUSH1 0x20
00003da1: ADD
00003da2: KECCAK256
00003da3: SWAP1
00003da4: POP
00003da5: SWAP1
00003da6: JUMP
00003da7: JUMPDEST
00003da8: DUP3
00003da9: DUP3
00003daa: MUL
00003dab: DUP2
00003dac: ISZERO
00003dad: ISZERO
00003dae: DUP5
00003daf: ISZERO
00003db0: DUP6
00003db1: DUP4
00003db2: DIV
00003db3: DUP6
00003db4: EQ
00003db5: OR
00003db6: AND
00003db7: PUSH2 0x3dbf
00003dba: JUMPI
00003dbb: PUSH1 0x00
00003dbd: DUP1
00003dbe: REVERT
00003dbf: JUMPDEST
00003dc0: PUSH1 0x01
00003dc2: DUP3
00003dc3: PUSH1 0x01
00003dc5: DUP4
00003dc6: SUB
00003dc7: DIV
00003dc8: ADD
00003dc9: DUP2
00003dca: ISZERO
00003dcb: ISZERO
00003dcc: MUL
00003dcd: SWAP1
00003dce: POP
00003dcf: SWAP4
00003dd0: SWAP3
00003dd1: POP
00003dd2: POP
00003dd3: POP
00003dd4: JUMP
00003dd5: JUMPDEST
00003dd6: PUSH1 0x00
00003dd8: JUMPDEST
00003dd9: DUP2
00003dda: MLOAD
00003ddb: DUP2
00003ddc: LT
00003ddd: ISZERO
00003dde: PUSH2 0x3f5a
00003de1: JUMPI
00003de2: PUSH1 0x00
00003de4: DUP3
00003de5: DUP3
00003de6: DUP2
00003de7: MLOAD
00003de8: DUP2
00003de9: LT
00003dea: PUSH2 0x3df5
00003ded: JUMPI
00003dee: PUSH2 0x3df5
00003df1: PUSH2 0x56c3
00003df4: JUMP
00003df5: JUMPDEST
00003df6: PUSH1 0x20
00003df8: SWAP1
00003df9: DUP2
00003dfa: MUL
00003dfb: SWAP2
00003dfc: SWAP1
00003dfd: SWAP2
00003dfe: ADD
00003dff: DUP2
00003e00: ADD
00003e01: MLOAD
00003e02: MLOAD
00003e03: PUSH1 0x01
00003e05: PUSH1 0x01
00003e07: PUSH1 0xa0
00003e09: SHL
00003e0a: SUB
00003e0b: DUP2
00003e0c: AND
00003e0d: PUSH1 0x00
00003e0f: SWAP1
00003e10: DUP2
00003e11: MSTORE
00003e12: PUSH1 0x0e
00003e14: SWAP1
00003e15: SWAP3
00003e16: MSTORE
00003e17: PUSH1 0x40
00003e19: SWAP1
00003e1a: SWAP2
00003e1b: KECCAK256
00003e1c: SLOAD
00003e1d: SWAP1
00003e1e: SWAP2
00003e1f: POP
00003e20: PUSH1 0xff
00003e22: AND
00003e23: PUSH2 0x3e4a
00003e26: JUMPI
00003e27: PUSH1 0x40
00003e29: MLOAD
00003e2a: PUSH4 0x5df6b617
00003e2f: PUSH1 0xe1
00003e31: SHL
00003e32: DUP2
00003e33: MSTORE
00003e34: PUSH1 0x01
00003e36: PUSH1 0x01
00003e38: PUSH1 0xa0
00003e3a: SHL
00003e3b: SUB
00003e3c: DUP3
00003e3d: AND
00003e3e: PUSH1 0x04
00003e40: DUP3
00003e41: ADD
00003e42: MSTORE
00003e43: PUSH1 0x24
00003e45: ADD
00003e46: PUSH2 0x0c56
00003e49: JUMP
00003e4a: JUMPDEST
00003e4b: PUSH1 0x00
00003e4d: JUMPDEST
00003e4e: DUP4
00003e4f: DUP4
00003e50: DUP2
00003e51: MLOAD
00003e52: DUP2
00003e53: LT
00003e54: PUSH2 0x3e5f
00003e57: JUMPI
00003e58: PUSH2 0x3e5f
00003e5b: PUSH2 0x56c3
00003e5e: JUMP
00003e5f: JUMPDEST
00003e60: PUSH1 0x20
00003e62: MUL
00003e63: PUSH1 0x20
00003e65: ADD
00003e66: ADD
00003e67: MLOAD
00003e68: PUSH1 0x20
00003e6a: ADD
00003e6b: MLOAD
00003e6c: MLOAD
00003e6d: DUP2
00003e6e: LT
00003e6f: ISZERO
00003e70: PUSH2 0x3f47
00003e73: JUMPI
00003e74: PUSH2 0x3ec5
00003e77: DUP5
00003e78: DUP5
00003e79: DUP2
00003e7a: MLOAD
00003e7b: DUP2
00003e7c: LT
00003e7d: PUSH2 0x3e88
00003e80: JUMPI
00003e81: PUSH2 0x3e88
00003e84: PUSH2 0x56c3
00003e87: JUMP
00003e88: JUMPDEST
00003e89: PUSH1 0x20
00003e8b: MUL
00003e8c: PUSH1 0x20
00003e8e: ADD
00003e8f: ADD
00003e90: MLOAD
00003e91: PUSH1 0x20
00003e93: ADD
00003e94: MLOAD
00003e95: DUP3
00003e96: DUP2
00003e97: MLOAD
00003e98: DUP2
00003e99: LT
00003e9a: PUSH2 0x3ea5
00003e9d: JUMPI
00003e9e: PUSH2 0x3ea5
00003ea1: PUSH2 0x56c3
00003ea4: JUMP
00003ea5: JUMPDEST
00003ea6: PUSH1 0x20
00003ea8: MUL
00003ea9: PUSH1 0x20
00003eab: ADD
00003eac: ADD
00003ead: MLOAD
00003eae: DUP4
00003eaf: PUSH1 0x01
00003eb1: PUSH1 0x01
00003eb3: PUSH1 0xa0
00003eb5: SHL
00003eb6: SUB
00003eb7: AND
00003eb8: PUSH2 0x41d8
00003ebb: SWAP1
00003ebc: SWAP2
00003ebd: SWAP1
00003ebe: PUSH4 0xffffffff
00003ec3: AND
00003ec4: JUMP
00003ec5: JUMPDEST
00003ec6: POP
00003ec7: PUSH32 0x7445c6598e1b553f076d507692eab3dceef0d608757141b53e9e56aa8bbaf483
00003ee8: DUP3
00003ee9: DUP6
00003eea: DUP6
00003eeb: DUP2
00003eec: MLOAD
00003eed: DUP2
00003eee: LT
00003eef: PUSH2 0x3efa
00003ef2: JUMPI
00003ef3: PUSH2 0x3efa
00003ef6: PUSH2 0x56c3
00003ef9: JUMP
00003efa: JUMPDEST
00003efb: PUSH1 0x20
00003efd: MUL
00003efe: PUSH1 0x20
00003f00: ADD
00003f01: ADD
00003f02: MLOAD
00003f03: PUSH1 0x20
00003f05: ADD
00003f06: MLOAD
00003f07: DUP4
00003f08: DUP2
00003f09: MLOAD
00003f0a: DUP2
00003f0b: LT
00003f0c: PUSH2 0x3f17
00003f0f: JUMPI
00003f10: PUSH2 0x3f17
00003f13: PUSH2 0x56c3
00003f16: JUMP
00003f17: JUMPDEST
00003f18: PUSH1 0x20
00003f1a: MUL
00003f1b: PUSH1 0x20
00003f1d: ADD
00003f1e: ADD
00003f1f: MLOAD
00003f20: PUSH1 0x40
00003f22: MLOAD
00003f23: PUSH2 0x3f2d
00003f26: SWAP3
00003f27: SWAP2
00003f28: SWAP1
00003f29: PUSH2 0x5e02
00003f2c: JUMP
00003f2d: JUMPDEST
00003f2e: PUSH1 0x40
00003f30: MLOAD
00003f31: DUP1
00003f32: SWAP2
00003f33: SUB
00003f34: SWAP1
00003f35: LOG1
00003f36: DUP1
00003f37: PUSH2 0x3f3f
00003f3a: DUP2
00003f3b: PUSH2 0x583d
00003f3e: JUMP
00003f3f: JUMPDEST
00003f40: SWAP2
00003f41: POP
00003f42: POP
00003f43: PUSH2 0x3e4d
00003f46: JUMP
00003f47: JUMPDEST
00003f48: POP
00003f49: POP
00003f4a: DUP1
00003f4b: PUSH2 0x3f53
00003f4e: SWAP1
00003f4f: PUSH2 0x583d
00003f52: JUMP
00003f53: JUMPDEST
00003f54: SWAP1
00003f55: POP
00003f56: PUSH2 0x3dd8
00003f59: JUMP
00003f5a: JUMPDEST
00003f5b: POP
00003f5c: POP
00003f5d: JUMP
00003f5e: JUMPDEST
00003f5f: PUSH1 0x00
00003f61: PUSH2 0x0e85
00003f64: DUP5
00003f65: DUP4
00003f66: DUP6
00003f67: PUSH2 0x42d6
00003f6a: JUMP
00003f6b: JUMPDEST
00003f6c: PUSH2 0x3f76
00003f6f: DUP4
00003f70: DUP4
00003f71: DUP4
00003f72: PUSH2 0x46cf
00003f75: JUMP
00003f76: JUMPDEST
00003f77: PUSH2 0x3fab
00003f7a: PUSH1 0x01
00003f7c: PUSH1 0x01
00003f7e: PUSH1 0xa0
00003f80: SHL
00003f81: SUB
00003f82: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00003fa3: AND
00003fa4: CALLER
00003fa5: ADDRESS
00003fa6: DUP7
00003fa7: PUSH2 0x46df
00003faa: JUMP
00003fab: JUMPDEST
00003fac: PUSH2 0x3fb5
00003faf: DUP2
00003fb0: DUP4
00003fb1: PUSH2 0x4769
00003fb4: JUMP
00003fb5: JUMPDEST
00003fb6: PUSH1 0x40
00003fb8: DUP1
00003fb9: MLOAD
00003fba: DUP5
00003fbb: DUP2
00003fbc: MSTORE
00003fbd: PUSH1 0x20
00003fbf: DUP2
00003fc0: ADD
00003fc1: DUP5
00003fc2: SWAP1
00003fc3: MSTORE
00003fc4: PUSH1 0x01
00003fc6: PUSH1 0x01
00003fc8: PUSH1 0xa0
00003fca: SHL
00003fcb: SUB
00003fcc: DUP4
00003fcd: AND
00003fce: SWAP2
00003fcf: CALLER
00003fd0: SWAP2
00003fd1: PUSH32 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7
00003ff2: SWAP2
00003ff3: ADD
00003ff4: PUSH1 0x40
00003ff6: MLOAD
00003ff7: DUP1
00003ff8: SWAP2
00003ff9: SUB
00003ffa: SWAP1
00003ffb: LOG3
00003ffc: PUSH2 0x281c
00003fff: DUP4
00004000: DUP4
00004001: DUP4
00004002: PUSH2 0x47c3
00004005: JUMP
00004006: JUMPDEST
00004007: PUSH1 0x00
00004009: PUSH2 0x0e85
0000400c: DUP5
0000400d: DUP5
0000400e: DUP5
0000400f: PUSH2 0x3da7
00004012: JUMP
00004013: JUMPDEST
00004014: DUP3
00004015: SLOAD
00004016: DUP1
00004017: ISZERO
00004018: PUSH2 0x4197
0000401b: JUMPI
0000401c: DUP4
0000401d: DUP1
0000401e: PUSH2 0x4028
00004021: PUSH1 0x01
00004023: DUP5
00004024: PUSH2 0x56b0
00004027: JUMP
00004028: JUMPDEST
00004029: DUP2
0000402a: SLOAD
0000402b: DUP2
0000402c: LT
0000402d: PUSH2 0x4038
00004030: JUMPI
00004031: PUSH2 0x4038
00004034: PUSH2 0x56c3
00004037: JUMP
00004038: JUMPDEST
00004039: PUSH1 0x00
0000403b: SWAP2
0000403c: DUP3
0000403d: MSTORE
0000403e: PUSH1 0x20
00004040: DUP1
00004041: DUP4
00004042: KECCAK256
00004043: PUSH1 0x08
00004045: DUP1
00004046: DUP5
00004047: DIV
00004048: SWAP1
00004049: SWAP2
0000404a: ADD
0000404b: SLOAD
0000404c: DUP6
0000404d: SLOAD
0000404e: PUSH1 0x01
00004050: DUP1
00004051: DUP3
00004052: ADD
00004053: DUP9
00004054: SSTORE
00004055: SWAP7
00004056: DUP7
00004057: MSTORE
00004058: SWAP3
00004059: DUP6
0000405a: KECCAK256
0000405b: SWAP2
0000405c: DUP4
0000405d: DIV
0000405e: SWAP1
0000405f: SWAP2
00004060: ADD
00004061: DUP1
00004062: SLOAD
00004063: PUSH4 0xffffffff
00004068: PUSH1 0x04
0000406a: PUSH1 0x07
0000406c: SWAP6
0000406d: DUP7
0000406e: AND
0000406f: DUP2
00004070: MUL
00004071: PUSH2 0x0100
00004074: SWAP1
00004075: DUP2
00004076: EXP
00004077: DUP4
00004078: DUP2
00004079: MUL
0000407a: NOT
0000407b: SWAP1
0000407c: SWAP5
0000407d: AND
0000407e: SWAP7
0000407f: SWAP1
00004080: SWAP8
00004081: AND
00004082: MUL
00004083: SWAP1
00004084: SWAP6
00004085: EXP
00004086: SWAP1
00004087: SWAP3
00004088: DIV
00004089: SWAP1
0000408a: SWAP4
0000408b: AND
0000408c: MUL
0000408d: OR
0000408e: SWAP1
0000408f: SSTORE
00004090: SWAP1
00004091: PUSH2 0x409a
00004094: SWAP1
00004095: DUP4
00004096: PUSH2 0x56b0
00004099: JUMP
0000409a: JUMPDEST
0000409b: SWAP1
0000409c: POP
0000409d: JUMPDEST
0000409e: DUP4
0000409f: PUSH4 0xffffffff
000040a4: AND
000040a5: DUP2
000040a6: GT
000040a7: ISZERO
000040a8: PUSH2 0x4145
000040ab: JUMPI
000040ac: DUP5
000040ad: PUSH2 0x40b7
000040b0: PUSH1 0x01
000040b2: DUP4
000040b3: PUSH2 0x56b0
000040b6: JUMP
000040b7: JUMPDEST
000040b8: DUP2
000040b9: SLOAD
000040ba: DUP2
000040bb: LT
000040bc: PUSH2 0x40c7
000040bf: JUMPI
000040c0: PUSH2 0x40c7
000040c3: PUSH2 0x56c3
000040c6: JUMP
000040c7: JUMPDEST
000040c8: SWAP1
000040c9: PUSH1 0x00
000040cb: MSTORE
000040cc: PUSH1 0x20
000040ce: PUSH1 0x00
000040d0: KECCAK256
000040d1: SWAP1
000040d2: PUSH1 0x08
000040d4: SWAP2
000040d5: DUP3
000040d6: DUP3
000040d7: DIV
000040d8: ADD
000040d9: SWAP2
000040da: SWAP1
000040db: MOD
000040dc: PUSH1 0x04
000040de: MUL
000040df: SWAP1
000040e0: SLOAD
000040e1: SWAP1
000040e2: PUSH2 0x0100
000040e5: EXP
000040e6: SWAP1
000040e7: DIV
000040e8: PUSH4 0xffffffff
000040ed: AND
000040ee: DUP6
000040ef: DUP3
000040f0: DUP2
000040f1: SLOAD
000040f2: DUP2
000040f3: LT
000040f4: PUSH2 0x40ff
000040f7: JUMPI
000040f8: PUSH2 0x40ff
000040fb: PUSH2 0x56c3
000040fe: JUMP
000040ff: JUMPDEST
00004100: SWAP1
00004101: PUSH1 0x00
00004103: MSTORE
00004104: PUSH1 0x20
00004106: PUSH1 0x00
00004108: KECCAK256
00004109: SWAP1
0000410a: PUSH1 0x08
0000410c: SWAP2
0000410d: DUP3
0000410e: DUP3
0000410f: DIV
00004110: ADD
00004111: SWAP2
00004112: SWAP1
00004113: MOD
00004114: PUSH1 0x04
00004116: MUL
00004117: PUSH2 0x0100
0000411a: EXP
0000411b: DUP2
0000411c: SLOAD
0000411d: DUP2
0000411e: PUSH4 0xffffffff
00004123: MUL
00004124: NOT
00004125: AND
00004126: SWAP1
00004127: DUP4
00004128: PUSH4 0xffffffff
0000412d: AND
0000412e: MUL
0000412f: OR
00004130: SWAP1
00004131: SSTORE
00004132: POP
00004133: DUP1
00004134: DUP1
00004135: PUSH2 0x413d
00004138: SWAP1
00004139: PUSH2 0x5e26
0000413c: JUMP
0000413d: JUMPDEST
0000413e: SWAP2
0000413f: POP
00004140: POP
00004141: PUSH2 0x409d
00004144: JUMP
00004145: JUMPDEST
00004146: POP
00004147: DUP2
00004148: DUP5
00004149: DUP5
0000414a: PUSH4 0xffffffff
0000414f: AND
00004150: DUP2
00004151: SLOAD
00004152: DUP2
00004153: LT
00004154: PUSH2 0x415f
00004157: JUMPI
00004158: PUSH2 0x415f
0000415b: PUSH2 0x56c3
0000415e: JUMP
0000415f: JUMPDEST
00004160: SWAP1
00004161: PUSH1 0x00
00004163: MSTORE
00004164: PUSH1 0x20
00004166: PUSH1 0x00
00004168: KECCAK256
00004169: SWAP1
0000416a: PUSH1 0x08
0000416c: SWAP2
0000416d: DUP3
0000416e: DUP3
0000416f: DIV
00004170: ADD
00004171: SWAP2
00004172: SWAP1
00004173: MOD
00004174: PUSH1 0x04
00004176: MUL
00004177: PUSH2 0x0100
0000417a: EXP
0000417b: DUP2
0000417c: SLOAD
0000417d: DUP2
0000417e: PUSH4 0xffffffff
00004183: MUL
00004184: NOT
00004185: AND
00004186: SWAP1
00004187: DUP4
00004188: PUSH4 0xffffffff
0000418d: AND
0000418e: MUL
0000418f: OR
00004190: SWAP1
00004191: SSTORE
00004192: POP
00004193: PUSH2 0x1171
00004196: JUMP
00004197: JUMPDEST
00004198: POP
00004199: DUP3
0000419a: SLOAD
0000419b: PUSH1 0x01
0000419d: DUP2
0000419e: ADD
0000419f: DUP5
000041a0: SSTORE
000041a1: PUSH1 0x00
000041a3: SWAP4
000041a4: DUP5
000041a5: MSTORE
000041a6: PUSH1 0x20
000041a8: SWAP1
000041a9: SWAP4
000041aa: KECCAK256
000041ab: PUSH1 0x08
000041ad: DUP5
000041ae: DIV
000041af: ADD
000041b0: DUP1
000041b1: SLOAD
000041b2: PUSH1 0x07
000041b4: SWAP1
000041b5: SWAP5
000041b6: AND
000041b7: PUSH1 0x04
000041b9: MUL
000041ba: PUSH2 0x0100
000041bd: EXP
000041be: PUSH4 0xffffffff
000041c3: DUP2
000041c4: DUP2
000041c5: MUL
000041c6: NOT
000041c7: SWAP1
000041c8: SWAP6
000041c9: AND
000041ca: SWAP3
000041cb: SWAP1
000041cc: SWAP5
000041cd: AND
000041ce: SWAP4
000041cf: SWAP1
000041d0: SWAP4
000041d1: MUL
000041d2: OR
000041d3: SWAP1
000041d4: SWAP2
000041d5: SSTORE
000041d6: POP
000041d7: JUMP
000041d8: JUMPDEST
000041d9: PUSH1 0x60
000041db: PUSH2 0x3a32
000041de: DUP4
000041df: DUP4
000041e0: PUSH1 0x40
000041e2: MLOAD
000041e3: DUP1
000041e4: PUSH1 0x60
000041e6: ADD
000041e7: PUSH1 0x40
000041e9: MSTORE
000041ea: DUP1
000041eb: PUSH1 0x27
000041ed: DUP2
000041ee: MSTORE
000041ef: PUSH1 0x20
000041f1: ADD
000041f2: PUSH2 0x5f3e
000041f5: PUSH1 0x27
000041f7: SWAP2
000041f8: CODECOPY
000041f9: PUSH2 0x47dd
000041fc: JUMP
000041fd: JUMPDEST
000041fe: PUSH2 0x4209
00004201: DUP5
00004202: DUP5
00004203: DUP5
00004204: DUP5
00004205: PUSH2 0x484b
00004208: JUMP
00004209: JUMPDEST
0000420a: CALLER
0000420b: PUSH1 0x01
0000420d: PUSH1 0x01
0000420f: PUSH1 0xa0
00004211: SHL
00004212: SUB
00004213: DUP3
00004214: AND
00004215: EQ
00004216: PUSH2 0x4277
00004219: JUMPI
0000421a: PUSH1 0x01
0000421c: PUSH1 0x01
0000421e: PUSH1 0xa0
00004220: SHL
00004221: SUB
00004222: DUP2
00004223: AND
00004224: PUSH1 0x00
00004226: SWAP1
00004227: DUP2
00004228: MSTORE
00004229: PUSH1 0x04
0000422b: PUSH1 0x20
0000422d: SWAP1
0000422e: DUP2
0000422f: MSTORE
00004230: PUSH1 0x40
00004232: DUP1
00004233: DUP4
00004234: KECCAK256
00004235: CALLER
00004236: DUP5
00004237: MSTORE
00004238: SWAP1
00004239: SWAP2
0000423a: MSTORE
0000423b: SWAP1
0000423c: KECCAK256
0000423d: SLOAD
0000423e: PUSH1 0x00
00004240: NOT
00004241: DUP2
00004242: EQ
00004243: PUSH2 0x4275
00004246: JUMPI
00004247: PUSH2 0x4250
0000424a: DUP5
0000424b: DUP3
0000424c: PUSH2 0x56b0
0000424f: JUMP
00004250: JUMPDEST
00004251: PUSH1 0x01
00004253: PUSH1 0x01
00004255: PUSH1 0xa0
00004257: SHL
00004258: SUB
00004259: DUP4
0000425a: AND
0000425b: PUSH1 0x00
0000425d: SWAP1
0000425e: DUP2
0000425f: MSTORE
00004260: PUSH1 0x04
00004262: PUSH1 0x20
00004264: SWAP1
00004265: DUP2
00004266: MSTORE
00004267: PUSH1 0x40
00004269: DUP1
0000426a: DUP4
0000426b: KECCAK256
0000426c: CALLER
0000426d: DUP5
0000426e: MSTORE
0000426f: SWAP1
00004270: SWAP2
00004271: MSTORE
00004272: SWAP1
00004273: KECCAK256
00004274: SSTORE
00004275: JUMPDEST
00004276: POP
00004277: JUMPDEST
00004278: PUSH2 0x4281
0000427b: DUP2
0000427c: DUP5
0000427d: PUSH2 0x4853
00004280: JUMP
00004281: JUMPDEST
00004282: PUSH1 0x40
00004284: DUP1
00004285: MLOAD
00004286: DUP6
00004287: DUP2
00004288: MSTORE
00004289: PUSH1 0x20
0000428b: DUP2
0000428c: ADD
0000428d: DUP6
0000428e: SWAP1
0000428f: MSTORE
00004290: PUSH1 0x01
00004292: PUSH1 0x01
00004294: PUSH1 0xa0
00004296: SHL
00004297: SUB
00004298: DUP1
00004299: DUP5
0000429a: AND
0000429b: SWAP3
0000429c: SWAP1
0000429d: DUP6
0000429e: AND
0000429f: SWAP2
000042a0: CALLER
000042a1: SWAP2
000042a2: PUSH32 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db
000042c3: SWAP2
000042c4: ADD
000042c5: PUSH1 0x40
000042c7: MLOAD
000042c8: DUP1
000042c9: SWAP2
000042ca: SUB
000042cb: SWAP1
000042cc: LOG4
000042cd: PUSH2 0x1171
000042d0: DUP5
000042d1: DUP4
000042d2: PUSH2 0x48b5
000042d5: JUMP
000042d6: JUMPDEST
000042d7: DUP3
000042d8: DUP3
000042d9: MUL
000042da: DUP2
000042db: ISZERO
000042dc: ISZERO
000042dd: DUP5
000042de: ISZERO
000042df: DUP6
000042e0: DUP4
000042e1: DIV
000042e2: DUP6
000042e3: EQ
000042e4: OR
000042e5: AND
000042e6: PUSH2 0x42ee
000042e9: JUMPI
000042ea: PUSH1 0x00
000042ec: DUP1
000042ed: REVERT
000042ee: JUMPDEST
000042ef: DIV
000042f0: SWAP3
000042f1: SWAP2
000042f2: POP
000042f3: POP
000042f4: JUMP
000042f5: JUMPDEST
000042f6: DUP2
000042f7: PUSH1 0x00
000042f9: SUB
000042fa: PUSH2 0x4316
000042fd: JUMPI
000042fe: PUSH1 0x40
00004300: MLOAD
00004301: PUSH4 0x2db38d05
00004306: PUSH1 0xe0
00004308: SHL
00004309: DUP2
0000430a: MSTORE
0000430b: PUSH1 0x04
0000430d: ADD
0000430e: PUSH1 0x40
00004310: MLOAD
00004311: DUP1
00004312: SWAP2
00004313: SUB
00004314: SWAP1
00004315: REVERT
00004316: JUMPDEST
00004317: DUP1
00004318: PUSH1 0x01
0000431a: PUSH1 0x01
0000431c: PUSH1 0xa0
0000431e: SHL
0000431f: SUB
00004320: AND
00004321: PUSH32 0x000000000000000000000000eed68c267e9313a6ed6ee08de08c9f68dee44476
00004342: PUSH1 0x01
00004344: PUSH1 0x01
00004346: PUSH1 0xa0
00004348: SHL
00004349: SUB
0000434a: AND
0000434b: PUSH4 0xb93f9b0a
00004350: DUP5
00004351: PUSH1 0x40
00004353: MLOAD
00004354: DUP3
00004355: PUSH4 0xffffffff
0000435a: AND
0000435b: PUSH1 0xe0
0000435d: SHL
0000435e: DUP2
0000435f: MSTORE
00004360: PUSH1 0x04
00004362: ADD
00004363: PUSH2 0x436e
00004366: SWAP2
00004367: DUP2
00004368: MSTORE
00004369: PUSH1 0x20
0000436b: ADD
0000436c: SWAP1
0000436d: JUMP
0000436e: JUMPDEST
0000436f: PUSH1 0x20
00004371: PUSH1 0x40
00004373: MLOAD
00004374: DUP1
00004375: DUP4
00004376: SUB
00004377: DUP2
00004378: DUP7
00004379: GAS
0000437a: STATICCALL
0000437b: ISZERO
0000437c: DUP1
0000437d: ISZERO
0000437e: PUSH2 0x438b
00004381: JUMPI
00004382: RETURNDATASIZE
00004383: PUSH1 0x00
00004385: DUP1
00004386: RETURNDATACOPY
00004387: RETURNDATASIZE
00004388: PUSH1 0x00
0000438a: REVERT
0000438b: JUMPDEST
0000438c: POP
0000438d: POP
0000438e: POP
0000438f: POP
00004390: PUSH1 0x40
00004392: MLOAD
00004393: RETURNDATASIZE
00004394: PUSH1 0x1f
00004396: NOT
00004397: PUSH1 0x1f
00004399: DUP3
0000439a: ADD
0000439b: AND
0000439c: DUP3
0000439d: ADD
0000439e: DUP1
0000439f: PUSH1 0x40
000043a1: MSTORE
000043a2: POP
000043a3: DUP2
000043a4: ADD
000043a5: SWAP1
000043a6: PUSH2 0x43af
000043a9: SWAP2
000043aa: SWAP1
000043ab: PUSH2 0x5aff
000043ae: JUMP
000043af: JUMPDEST
000043b0: PUSH1 0x01
000043b2: PUSH1 0x01
000043b4: PUSH1 0xa0
000043b6: SHL
000043b7: SUB
000043b8: AND
000043b9: EQ
000043ba: PUSH2 0x3f5a
000043bd: JUMPI
000043be: PUSH1 0x40
000043c0: MLOAD
000043c1: PUSH4 0x4ee204d7
000043c6: PUSH1 0xe0
000043c8: SHL
000043c9: DUP2
000043ca: MSTORE
000043cb: PUSH1 0x04
000043cd: ADD
000043ce: PUSH1 0x40
000043d0: MLOAD
000043d1: DUP1
000043d2: SWAP2
000043d3: SUB
000043d4: SWAP1
000043d5: REVERT
000043d6: JUMPDEST
000043d7: PUSH1 0x00
000043d9: PUSH2 0x43e0
000043dc: PUSH2 0x342e
000043df: JUMP
000043e0: JUMPDEST
000043e1: PUSH1 0x00
000043e3: DUP1
000043e4: PUSH2 0x43ed
000043e7: PUSH1 0x00
000043e9: PUSH2 0x3a39
000043ec: JUMP
000043ed: JUMPDEST
000043ee: PUSH1 0x01
000043f0: PUSH1 0x01
000043f2: PUSH1 0xa0
000043f4: SHL
000043f5: SUB
000043f6: DUP8
000043f7: AND
000043f8: PUSH1 0x00
000043fa: SWAP1
000043fb: DUP2
000043fc: MSTORE
000043fd: PUSH1 0x03
000043ff: PUSH1 0x20
00004401: MSTORE
00004402: PUSH1 0x40
00004404: DUP2
00004405: KECCAK256
00004406: SLOAD
00004407: SWAP3
00004408: SWAP5
00004409: POP
0000440a: SWAP1
0000440b: SWAP3
0000440c: POP
0000440d: SWAP1
0000440e: PUSH2 0x4418
00004411: SWAP1
00004412: DUP5
00004413: DUP5
00004414: PUSH2 0x3b53
00004417: JUMP
00004418: JUMPDEST
00004419: SWAP1
0000441a: POP
0000441b: PUSH1 0x00
0000441d: PUSH2 0x4426
00004420: PUSH1 0x01
00004422: PUSH2 0x34e7
00004425: JUMP
00004426: JUMPDEST
00004427: SWAP1
00004428: POP
00004429: DUP1
0000442a: DUP3
0000442b: GT
0000442c: ISZERO
0000442d: PUSH2 0x4436
00004430: JUMPI
00004431: DUP1
00004432: PUSH2 0x4438
00004435: JUMP
00004436: JUMPDEST
00004437: DUP2
00004438: JUMPDEST
00004439: SWAP5
0000443a: POP
0000443b: DUP6
0000443c: ISZERO
0000443d: PUSH2 0x444e
00004440: JUMPI
00004441: PUSH2 0x444b
00004444: DUP6
00004445: DUP6
00004446: DUP6
00004447: PUSH2 0x3f5e
0000444a: JUMP
0000444b: JUMPDEST
0000444c: SWAP5
0000444d: POP
0000444e: JUMPDEST
0000444f: POP
00004450: POP
00004451: POP
00004452: POP
00004453: SWAP3
00004454: SWAP2
00004455: POP
00004456: POP
00004457: JUMP
00004458: JUMPDEST
00004459: PUSH1 0x00
0000445b: PUSH1 0x40
0000445d: MLOAD
0000445e: PUSH4 0xa9059cbb
00004463: PUSH1 0xe0
00004465: SHL
00004466: DUP2
00004467: MSTORE
00004468: DUP4
00004469: PUSH1 0x04
0000446b: DUP3
0000446c: ADD
0000446d: MSTORE
0000446e: DUP3
0000446f: PUSH1 0x24
00004471: DUP3
00004472: ADD
00004473: MSTORE
00004474: PUSH1 0x20
00004476: PUSH1 0x00
00004478: PUSH1 0x44
0000447a: DUP4
0000447b: PUSH1 0x00
0000447d: DUP10
0000447e: GAS
0000447f: CALL
00004480: RETURNDATASIZE
00004481: ISZERO
00004482: PUSH1 0x1f
00004484: RETURNDATASIZE
00004485: GT
00004486: PUSH1 0x01
00004488: PUSH1 0x00
0000448a: MLOAD
0000448b: EQ
0000448c: AND
0000448d: OR
0000448e: AND
0000448f: SWAP2
00004490: POP
00004491: POP
00004492: DUP1
00004493: PUSH2 0x1171
00004496: JUMPI
00004497: PUSH1 0x40
00004499: MLOAD
0000449a: PUSH3 0x461bcd
0000449e: PUSH1 0xe5
000044a0: SHL
000044a1: DUP2
000044a2: MSTORE
000044a3: PUSH1 0x20
000044a5: PUSH1 0x04
000044a7: DUP3
000044a8: ADD
000044a9: MSTORE
000044aa: PUSH1 0x0f
000044ac: PUSH1 0x24
000044ae: DUP3
000044af: ADD
000044b0: MSTORE
000044b1: PUSH15 0x1514905394d1915497d19052531151
000044c1: PUSH1 0x8a
000044c3: SHL
000044c4: PUSH1 0x44
000044c6: DUP3
000044c7: ADD
000044c8: MSTORE
000044c9: PUSH1 0x64
000044cb: ADD
000044cc: PUSH2 0x0c56
000044cf: JUMP
000044d0: JUMPDEST
000044d1: PUSH4 0xffffffff
000044d6: DUP2
000044d7: AND
000044d8: PUSH1 0x00
000044da: SWAP1
000044db: DUP2
000044dc: MSTORE
000044dd: PUSH1 0x0c
000044df: PUSH1 0x20
000044e1: MSTORE
000044e2: PUSH1 0x40
000044e4: DUP2
000044e5: KECCAK256
000044e6: SLOAD
000044e7: PUSH1 0x01
000044e9: PUSH1 0xa0
000044eb: SHL
000044ec: SWAP1
000044ed: DIV
000044ee: PUSH1 0xff
000044f0: AND
000044f1: ISZERO
000044f2: PUSH2 0x44fd
000044f5: JUMPI
000044f6: POP
000044f7: PUSH1 0x00
000044f9: SWAP2
000044fa: SWAP1
000044fb: POP
000044fc: JUMP
000044fd: JUMPDEST
000044fe: PUSH4 0xffffffff
00004503: DUP3
00004504: AND
00004505: PUSH1 0x00
00004507: SWAP1
00004508: DUP2
00004509: MSTORE
0000450a: PUSH1 0x0c
0000450c: PUSH1 0x20
0000450e: MSTORE
0000450f: PUSH1 0x40
00004511: SWAP1
00004512: DUP2
00004513: SWAP1
00004514: KECCAK256
00004515: DUP1
00004516: SLOAD
00004517: SWAP2
00004518: MLOAD
00004519: PUSH4 0x7d2872e9
0000451e: PUSH1 0xe1
00004520: SHL
00004521: DUP2
00004522: MSTORE
00004523: PUSH1 0x01
00004525: PUSH1 0x01
00004527: PUSH1 0xa0
00004529: SHL
0000452a: SUB
0000452b: SWAP1
0000452c: SWAP3
0000452d: AND
0000452e: SWAP2
0000452f: PUSH4 0xfa50e5d2
00004534: SWAP2
00004535: PUSH2 0x4549
00004538: SWAP2
00004539: PUSH1 0x01
0000453b: DUP3
0000453c: ADD
0000453d: SWAP2
0000453e: PUSH1 0x02
00004540: ADD
00004541: SWAP1
00004542: PUSH1 0x04
00004544: ADD
00004545: PUSH2 0x5e3d
00004548: JUMP
00004549: JUMPDEST
0000454a: PUSH1 0x20
0000454c: PUSH1 0x40
0000454e: MLOAD
0000454f: DUP1
00004550: DUP4
00004551: SUB
00004552: DUP2
00004553: DUP7
00004554: GAS
00004555: STATICCALL
00004556: ISZERO
00004557: DUP1
00004558: ISZERO
00004559: PUSH2 0x4566
0000455c: JUMPI
0000455d: RETURNDATASIZE
0000455e: PUSH1 0x00
00004560: DUP1
00004561: RETURNDATACOPY
00004562: RETURNDATASIZE
00004563: PUSH1 0x00
00004565: REVERT
00004566: JUMPDEST
00004567: POP
00004568: POP
00004569: POP
0000456a: POP
0000456b: PUSH1 0x40
0000456d: MLOAD
0000456e: RETURNDATASIZE
0000456f: PUSH1 0x1f
00004571: NOT
00004572: PUSH1 0x1f
00004574: DUP3
00004575: ADD
00004576: AND
00004577: DUP3
00004578: ADD
00004579: DUP1
0000457a: PUSH1 0x40
0000457c: MSTORE
0000457d: POP
0000457e: DUP2
0000457f: ADD
00004580: SWAP1
00004581: PUSH2 0x0ef4
00004584: SWAP2
00004585: SWAP1
00004586: PUSH2 0x5b5a
00004589: JUMP
0000458a: JUMPDEST
0000458b: DUP2
0000458c: SLOAD
0000458d: PUSH4 0xffffffff
00004592: DUP3
00004593: AND
00004594: DUP2
00004595: GT
00004596: PUSH2 0x45d7
00004599: JUMPI
0000459a: PUSH1 0x40
0000459c: MLOAD
0000459d: PUSH3 0x461bcd
000045a1: PUSH1 0xe5
000045a3: SHL
000045a4: DUP2
000045a5: MSTORE
000045a6: PUSH1 0x20
000045a8: PUSH1 0x04
000045aa: DUP3
000045ab: ADD
000045ac: MSTORE
000045ad: PUSH1 0x13
000045af: PUSH1 0x24
000045b1: DUP3
000045b2: ADD
000045b3: MSTORE
000045b4: PUSH19 0x496e646578206f7574206f6620626f756e6473
000045c8: PUSH1 0x68
000045ca: SHL
000045cb: PUSH1 0x44
000045cd: DUP3
000045ce: ADD
000045cf: MSTORE
000045d0: PUSH1 0x64
000045d2: ADD
000045d3: PUSH2 0x0c56
000045d6: JUMP
000045d7: JUMPDEST
000045d8: PUSH4 0xffffffff
000045dd: DUP3
000045de: AND
000045df: JUMPDEST
000045e0: PUSH2 0x45ea
000045e3: PUSH1 0x01
000045e5: DUP4
000045e6: PUSH2 0x56b0
000045e9: JUMP
000045ea: JUMPDEST
000045eb: DUP2
000045ec: LT
000045ed: ISZERO
000045ee: PUSH2 0x468b
000045f1: JUMPI
000045f2: DUP4
000045f3: PUSH2 0x45fd
000045f6: DUP3
000045f7: PUSH1 0x01
000045f9: PUSH2 0x56d9
000045fc: JUMP
000045fd: JUMPDEST
000045fe: DUP2
000045ff: SLOAD
00004600: DUP2
00004601: LT
00004602: PUSH2 0x460d
00004605: JUMPI
00004606: PUSH2 0x460d
00004609: PUSH2 0x56c3
0000460c: JUMP
0000460d: JUMPDEST
0000460e: SWAP1
0000460f: PUSH1 0x00
00004611: MSTORE
00004612: PUSH1 0x20
00004614: PUSH1 0x00
00004616: KECCAK256
00004617: SWAP1
00004618: PUSH1 0x08
0000461a: SWAP2
0000461b: DUP3
0000461c: DUP3
0000461d: DIV
0000461e: ADD
0000461f: SWAP2
00004620: SWAP1
00004621: MOD
00004622: PUSH1 0x04
00004624: MUL
00004625: SWAP1
00004626: SLOAD
00004627: SWAP1
00004628: PUSH2 0x0100
0000462b: EXP
0000462c: SWAP1
0000462d: DIV
0000462e: PUSH4 0xffffffff
00004633: AND
00004634: DUP5
00004635: DUP3
00004636: DUP2
00004637: SLOAD
00004638: DUP2
00004639: LT
0000463a: PUSH2 0x4645
0000463d: JUMPI
0000463e: PUSH2 0x4645
00004641: PUSH2 0x56c3
00004644: JUMP
00004645: JUMPDEST
00004646: SWAP1
00004647: PUSH1 0x00
00004649: MSTORE
0000464a: PUSH1 0x20
0000464c: PUSH1 0x00
0000464e: KECCAK256
0000464f: SWAP1
00004650: PUSH1 0x08
00004652: SWAP2
00004653: DUP3
00004654: DUP3
00004655: DIV
00004656: ADD
00004657: SWAP2
00004658: SWAP1
00004659: MOD
0000465a: PUSH1 0x04
0000465c: MUL
0000465d: PUSH2 0x0100
00004660: EXP
00004661: DUP2
00004662: SLOAD
00004663: DUP2
00004664: PUSH4 0xffffffff
00004669: MUL
0000466a: NOT
0000466b: AND
0000466c: SWAP1
0000466d: DUP4
0000466e: PUSH4 0xffffffff
00004673: AND
00004674: MUL
00004675: OR
00004676: SWAP1
00004677: SSTORE
00004678: POP
00004679: DUP1
0000467a: DUP1
0000467b: PUSH2 0x4683
0000467e: SWAP1
0000467f: PUSH2 0x583d
00004682: JUMP
00004683: JUMPDEST
00004684: SWAP2
00004685: POP
00004686: POP
00004687: PUSH2 0x45df
0000468a: JUMP
0000468b: JUMPDEST
0000468c: POP
0000468d: DUP3
0000468e: DUP1
0000468f: SLOAD
00004690: DUP1
00004691: PUSH2 0x469c
00004694: JUMPI
00004695: PUSH2 0x469c
00004698: PUSH2 0x5e6b
0000469b: JUMP
0000469c: JUMPDEST
0000469d: PUSH1 0x00
0000469f: DUP3
000046a0: DUP2
000046a1: MSTORE
000046a2: PUSH1 0x20
000046a4: SWAP1
000046a5: KECCAK256
000046a6: PUSH1 0x08
000046a8: PUSH1 0x00
000046aa: NOT
000046ab: SWAP1
000046ac: SWAP3
000046ad: ADD
000046ae: SWAP2
000046af: DUP3
000046b0: DIV
000046b1: ADD
000046b2: DUP1
000046b3: SLOAD
000046b4: PUSH4 0xffffffff
000046b9: PUSH1 0x04
000046bb: PUSH1 0x07
000046bd: DUP6
000046be: AND
000046bf: MUL
000046c0: PUSH2 0x0100
000046c3: EXP
000046c4: MUL
000046c5: NOT
000046c6: AND
000046c7: SWAP1
000046c8: SSTORE
000046c9: SWAP1
000046ca: SSTORE
000046cb: POP
000046cc: POP
000046cd: POP
000046ce: JUMP
000046cf: JUMPDEST
000046d0: PUSH2 0x46d7
000046d3: PUSH2 0x3b6d
000046d6: JUMP
000046d7: JUMPDEST
000046d8: PUSH2 0x281c
000046db: PUSH2 0x342e
000046de: JUMP
000046df: JUMPDEST
000046e0: PUSH1 0x00
000046e2: PUSH1 0x40
000046e4: MLOAD
000046e5: PUSH4 0x23b872dd
000046ea: PUSH1 0xe0
000046ec: SHL
000046ed: DUP2
000046ee: MSTORE
000046ef: DUP5
000046f0: PUSH1 0x04
000046f2: DUP3
000046f3: ADD
000046f4: MSTORE
000046f5: DUP4
000046f6: PUSH1 0x24
000046f8: DUP3
000046f9: ADD
000046fa: MSTORE
000046fb: DUP3
000046fc: PUSH1 0x44
000046fe: DUP3
000046ff: ADD
00004700: MSTORE
00004701: PUSH1 0x20
00004703: PUSH1 0x00
00004705: PUSH1 0x64
00004707: DUP4
00004708: PUSH1 0x00
0000470a: DUP11
0000470b: GAS
0000470c: CALL
0000470d: RETURNDATASIZE
0000470e: ISZERO
0000470f: PUSH1 0x1f
00004711: RETURNDATASIZE
00004712: GT
00004713: PUSH1 0x01
00004715: PUSH1 0x00
00004717: MLOAD
00004718: EQ
00004719: AND
0000471a: OR
0000471b: AND
0000471c: SWAP2
0000471d: POP
0000471e: POP
0000471f: DUP1
00004720: PUSH2 0x4762
00004723: JUMPI
00004724: PUSH1 0x40
00004726: MLOAD
00004727: PUSH3 0x461bcd
0000472b: PUSH1 0xe5
0000472d: SHL
0000472e: DUP2
0000472f: MSTORE
00004730: PUSH1 0x20
00004732: PUSH1 0x04
00004734: DUP3
00004735: ADD
00004736: MSTORE
00004737: PUSH1 0x14
00004739: PUSH1 0x24
0000473b: DUP3
0000473c: ADD
0000473d: MSTORE
0000473e: PUSH20 0x1514905394d1915497d19493d357d19052531151
00004753: PUSH1 0x62
00004755: SHL
00004756: PUSH1 0x44
00004758: DUP3
00004759: ADD
0000475a: MSTORE
0000475b: PUSH1 0x64
0000475d: ADD
0000475e: PUSH2 0x0c56
00004761: JUMP
00004762: JUMPDEST
00004763: POP
00004764: POP
00004765: POP
00004766: POP
00004767: POP
00004768: JUMP
00004769: JUMPDEST
0000476a: DUP1
0000476b: PUSH1 0x02
0000476d: PUSH1 0x00
0000476f: DUP3
00004770: DUP3
00004771: SLOAD
00004772: PUSH2 0x477b
00004775: SWAP2
00004776: SWAP1
00004777: PUSH2 0x56d9
0000477a: JUMP
0000477b: JUMPDEST
0000477c: SWAP1
0000477d: SWAP2
0000477e: SSTORE
0000477f: POP
00004780: POP
00004781: PUSH1 0x01
00004783: PUSH1 0x01
00004785: PUSH1 0xa0
00004787: SHL
00004788: SUB
00004789: DUP3
0000478a: AND
0000478b: PUSH1 0x00
0000478d: DUP2
0000478e: DUP2
0000478f: MSTORE
00004790: PUSH1 0x03
00004792: PUSH1 0x20
00004794: SWAP1
00004795: DUP2
00004796: MSTORE
00004797: PUSH1 0x40
00004799: DUP1
0000479a: DUP4
0000479b: KECCAK256
0000479c: DUP1
0000479d: SLOAD
0000479e: DUP7
0000479f: ADD
000047a0: SWAP1
000047a1: SSTORE
000047a2: MLOAD
000047a3: DUP5
000047a4: DUP2
000047a5: MSTORE
000047a6: PUSH1 0x00
000047a8: DUP1
000047a9: MLOAD
000047aa: PUSH1 0x20
000047ac: PUSH2 0x5f65
000047af: DUP4
000047b0: CODECOPY
000047b1: DUP2
000047b2: MLOAD
000047b3: SWAP2
000047b4: MSTORE
000047b5: SWAP2
000047b6: ADD
000047b7: JUMPDEST
000047b8: PUSH1 0x40
000047ba: MLOAD
000047bb: DUP1
000047bc: SWAP2
000047bd: SUB
000047be: SWAP1
000047bf: LOG3
000047c0: POP
000047c1: POP
000047c2: JUMP
000047c3: JUMPDEST
000047c4: PUSH1 0x06
000047c6: SLOAD
000047c7: PUSH2 0x281c
000047ca: SWAP1
000047cb: PUSH1 0x01
000047cd: PUSH1 0xc0
000047cf: SHL
000047d0: SWAP1
000047d1: DIV
000047d2: PUSH4 0xffffffff
000047d7: AND
000047d8: DUP5
000047d9: PUSH2 0x4c1f
000047dc: JUMP
000047dd: JUMPDEST
000047de: PUSH1 0x60
000047e0: PUSH1 0x00
000047e2: DUP1
000047e3: DUP6
000047e4: PUSH1 0x01
000047e6: PUSH1 0x01
000047e8: PUSH1 0xa0
000047ea: SHL
000047eb: SUB
000047ec: AND
000047ed: DUP6
000047ee: PUSH1 0x40
000047f0: MLOAD
000047f1: PUSH2 0x47fa
000047f4: SWAP2
000047f5: SWAP1
000047f6: PUSH2 0x5e81
000047f9: JUMP
000047fa: JUMPDEST
000047fb: PUSH1 0x00
000047fd: PUSH1 0x40
000047ff: MLOAD
00004800: DUP1
00004801: DUP4
00004802: SUB
00004803: DUP2
00004804: DUP6
00004805: GAS
00004806: DELEGATECALL
00004807: SWAP2
00004808: POP
00004809: POP
0000480a: RETURNDATASIZE
0000480b: DUP1
0000480c: PUSH1 0x00
0000480e: DUP2
0000480f: EQ
00004810: PUSH2 0x4835
00004813: JUMPI
00004814: PUSH1 0x40
00004816: MLOAD
00004817: SWAP2
00004818: POP
00004819: PUSH1 0x1f
0000481b: NOT
0000481c: PUSH1 0x3f
0000481e: RETURNDATASIZE
0000481f: ADD
00004820: AND
00004821: DUP3
00004822: ADD
00004823: PUSH1 0x40
00004825: MSTORE
00004826: RETURNDATASIZE
00004827: DUP3
00004828: MSTORE
00004829: RETURNDATASIZE
0000482a: PUSH1 0x00
0000482c: PUSH1 0x20
0000482e: DUP5
0000482f: ADD
00004830: RETURNDATACOPY
00004831: PUSH2 0x483a
00004834: JUMP
00004835: JUMPDEST
00004836: PUSH1 0x60
00004838: SWAP2
00004839: POP
0000483a: JUMPDEST
0000483b: POP
0000483c: SWAP2
0000483d: POP
0000483e: SWAP2
0000483f: POP
00004840: PUSH2 0x16be
00004843: DUP7
00004844: DUP4
00004845: DUP4
00004846: DUP8
00004847: PUSH2 0x4cac
0000484a: JUMP
0000484b: JUMPDEST
0000484c: PUSH2 0x1171
0000484f: PUSH2 0x342e
00004852: JUMP
00004853: JUMPDEST
00004854: PUSH1 0x01
00004856: PUSH1 0x01
00004858: PUSH1 0xa0
0000485a: SHL
0000485b: SUB
0000485c: DUP3
0000485d: AND
0000485e: PUSH1 0x00
00004860: SWAP1
00004861: DUP2
00004862: MSTORE
00004863: PUSH1 0x03
00004865: PUSH1 0x20
00004867: MSTORE
00004868: PUSH1 0x40
0000486a: DUP2
0000486b: KECCAK256
0000486c: DUP1
0000486d: SLOAD
0000486e: DUP4
0000486f: SWAP3
00004870: SWAP1
00004871: PUSH2 0x487b
00004874: SWAP1
00004875: DUP5
00004876: SWAP1
00004877: PUSH2 0x56b0
0000487a: JUMP
0000487b: JUMPDEST
0000487c: SWAP1
0000487d: SWAP2
0000487e: SSTORE
0000487f: POP
00004880: POP
00004881: PUSH1 0x02
00004883: DUP1
00004884: SLOAD
00004885: DUP3
00004886: SWAP1
00004887: SUB
00004888: SWAP1
00004889: SSTORE
0000488a: PUSH1 0x40
0000488c: MLOAD
0000488d: DUP2
0000488e: DUP2
0000488f: MSTORE
00004890: PUSH1 0x00
00004892: SWAP1
00004893: PUSH1 0x01
00004895: PUSH1 0x01
00004897: PUSH1 0xa0
00004899: SHL
0000489a: SUB
0000489b: DUP5
0000489c: AND
0000489d: SWAP1
0000489e: PUSH1 0x00
000048a0: DUP1
000048a1: MLOAD
000048a2: PUSH1 0x20
000048a4: PUSH2 0x5f65
000048a7: DUP4
000048a8: CODECOPY
000048a9: DUP2
000048aa: MLOAD
000048ab: SWAP2
000048ac: MSTORE
000048ad: SWAP1
000048ae: PUSH1 0x20
000048b0: ADD
000048b1: PUSH2 0x47b7
000048b4: JUMP
000048b5: JUMPDEST
000048b6: PUSH2 0x48e0
000048b9: PUSH1 0x40
000048bb: MLOAD
000048bc: DUP1
000048bd: PUSH1 0x80
000048bf: ADD
000048c0: PUSH1 0x40
000048c2: MSTORE
000048c3: DUP1
000048c4: PUSH1 0x00
000048c6: DUP2
000048c7: MSTORE
000048c8: PUSH1 0x20
000048ca: ADD
000048cb: PUSH1 0x00
000048cd: DUP2
000048ce: MSTORE
000048cf: PUSH1 0x20
000048d1: ADD
000048d2: PUSH1 0x00
000048d4: DUP2
000048d5: MSTORE
000048d6: PUSH1 0x20
000048d8: ADD
000048d9: PUSH1 0x00
000048db: DUP2
000048dc: MSTORE
000048dd: POP
000048de: SWAP1
000048df: JUMP
000048e0: JUMPDEST
000048e1: PUSH1 0x08
000048e3: SLOAD
000048e4: PUSH1 0x40
000048e6: MLOAD
000048e7: PUSH4 0x02266147
000048ec: PUSH1 0xe0
000048ee: SHL
000048ef: DUP2
000048f0: MSTORE
000048f1: PUSH1 0x01
000048f3: PUSH1 0x01
000048f5: PUSH1 0xa0
000048f7: SHL
000048f8: SUB
000048f9: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
0000491a: DUP2
0000491b: AND
0000491c: PUSH1 0x04
0000491e: DUP4
0000491f: ADD
00004920: MSTORE
00004921: SWAP1
00004922: SWAP2
00004923: AND
00004924: SWAP1
00004925: PUSH4 0x02266147
0000492a: SWAP1
0000492b: PUSH1 0x24
0000492d: ADD
0000492e: PUSH1 0x20
00004930: PUSH1 0x40
00004932: MLOAD
00004933: DUP1
00004934: DUP4
00004935: SUB
00004936: DUP2
00004937: DUP7
00004938: GAS
00004939: STATICCALL
0000493a: ISZERO
0000493b: DUP1
0000493c: ISZERO
0000493d: PUSH2 0x494a
00004940: JUMPI
00004941: RETURNDATASIZE
00004942: PUSH1 0x00
00004944: DUP1
00004945: RETURNDATACOPY
00004946: RETURNDATASIZE
00004947: PUSH1 0x00
00004949: REVERT
0000494a: JUMPDEST
0000494b: POP
0000494c: POP
0000494d: POP
0000494e: POP
0000494f: PUSH1 0x40
00004951: MLOAD
00004952: RETURNDATASIZE
00004953: PUSH1 0x1f
00004955: NOT
00004956: PUSH1 0x1f
00004958: DUP3
00004959: ADD
0000495a: AND
0000495b: DUP3
0000495c: ADD
0000495d: DUP1
0000495e: PUSH1 0x40
00004960: MSTORE
00004961: POP
00004962: DUP2
00004963: ADD
00004964: SWAP1
00004965: PUSH2 0x496e
00004968: SWAP2
00004969: SWAP1
0000496a: PUSH2 0x5b5a
0000496d: JUMP
0000496e: JUMPDEST
0000496f: PUSH1 0x40
00004971: DUP3
00004972: ADD
00004973: MSTORE
00004974: PUSH2 0x499e
00004977: PUSH32 0x0000000000000000000000000000000000000000000000000000000000000012
00004998: PUSH1 0x0a
0000499a: PUSH2 0x5d7d
0000499d: JUMP
0000499e: JUMPDEST
0000499f: PUSH1 0x60
000049a1: DUP3
000049a2: ADD
000049a3: MSTORE
000049a4: PUSH1 0x09
000049a6: SLOAD
000049a7: PUSH1 0x00
000049a9: JUMPDEST
000049aa: DUP2
000049ab: DUP2
000049ac: LT
000049ad: ISZERO
000049ae: PUSH2 0x4bfc
000049b1: JUMPI
000049b2: PUSH1 0x00
000049b4: PUSH1 0x09
000049b6: DUP3
000049b7: DUP2
000049b8: SLOAD
000049b9: DUP2
000049ba: LT
000049bb: PUSH2 0x49c6
000049be: JUMPI
000049bf: PUSH2 0x49c6
000049c2: PUSH2 0x56c3
000049c5: JUMP
000049c6: JUMPDEST
000049c7: PUSH1 0x00
000049c9: SWAP2
000049ca: DUP3
000049cb: MSTORE
000049cc: PUSH1 0x20
000049ce: DUP3
000049cf: KECCAK256
000049d0: PUSH1 0x08
000049d2: DUP3
000049d3: DIV
000049d4: ADD
000049d5: SLOAD
000049d6: PUSH1 0x07
000049d8: SWAP1
000049d9: SWAP2
000049da: AND
000049db: PUSH1 0x04
000049dd: MUL
000049de: PUSH2 0x0100
000049e1: EXP
000049e2: SWAP1
000049e3: DIV
000049e4: PUSH4 0xffffffff
000049e9: AND
000049ea: SWAP2
000049eb: POP
000049ec: PUSH2 0x49f4
000049ef: DUP3
000049f0: PUSH2 0x44d0
000049f3: JUMP
000049f4: JUMPDEST
000049f5: SWAP1
000049f6: POP
000049f7: DUP1
000049f8: PUSH1 0x00
000049fa: SUB
000049fb: PUSH2 0x4a05
000049fe: JUMPI
000049ff: POP
00004a00: POP
00004a01: PUSH2 0x4bec
00004a04: JUMP
00004a05: JUMPDEST
00004a06: PUSH1 0x00
00004a08: PUSH2 0x4a10
00004a0b: DUP4
00004a0c: PUSH2 0x39a9
00004a0f: JUMP
00004a10: JUMPDEST
00004a11: PUSH1 0x08
00004a13: SLOAD
00004a14: PUSH1 0x40
00004a16: MLOAD
00004a17: PUSH4 0x02266147
00004a1c: PUSH1 0xe0
00004a1e: SHL
00004a1f: DUP2
00004a20: MSTORE
00004a21: PUSH1 0x01
00004a23: PUSH1 0x01
00004a25: PUSH1 0xa0
00004a27: SHL
00004a28: SUB
00004a29: DUP1
00004a2a: DUP5
00004a2b: AND
00004a2c: PUSH1 0x04
00004a2e: DUP4
00004a2f: ADD
00004a30: MSTORE
00004a31: SWAP3
00004a32: SWAP4
00004a33: POP
00004a34: SWAP2
00004a35: AND
00004a36: SWAP1
00004a37: PUSH4 0x02266147
00004a3c: SWAP1
00004a3d: PUSH1 0x24
00004a3f: ADD
00004a40: PUSH1 0x20
00004a42: PUSH1 0x40
00004a44: MLOAD
00004a45: DUP1
00004a46: DUP4
00004a47: SUB
00004a48: DUP2
00004a49: DUP7
00004a4a: GAS
00004a4b: STATICCALL
00004a4c: ISZERO
00004a4d: DUP1
00004a4e: ISZERO
00004a4f: PUSH2 0x4a5c
00004a52: JUMPI
00004a53: RETURNDATASIZE
00004a54: PUSH1 0x00
00004a56: DUP1
00004a57: RETURNDATACOPY
00004a58: RETURNDATASIZE
00004a59: PUSH1 0x00
00004a5b: REVERT
00004a5c: JUMPDEST
00004a5d: POP
00004a5e: POP
00004a5f: POP
00004a60: POP
00004a61: PUSH1 0x40
00004a63: MLOAD
00004a64: RETURNDATASIZE
00004a65: PUSH1 0x1f
00004a67: NOT
00004a68: PUSH1 0x1f
00004a6a: DUP3
00004a6b: ADD
00004a6c: AND
00004a6d: DUP3
00004a6e: ADD
00004a6f: DUP1
00004a70: PUSH1 0x40
00004a72: MSTORE
00004a73: POP
00004a74: DUP2
00004a75: ADD
00004a76: SWAP1
00004a77: PUSH2 0x4a80
00004a7a: SWAP2
00004a7b: SWAP1
00004a7c: PUSH2 0x5b5a
00004a7f: JUMP
00004a80: JUMPDEST
00004a81: DUP7
00004a82: PUSH1 0x00
00004a84: ADD
00004a85: DUP2
00004a86: DUP2
00004a87: MSTORE
00004a88: POP
00004a89: POP
00004a8a: DUP1
00004a8b: PUSH1 0x01
00004a8d: PUSH1 0x01
00004a8f: PUSH1 0xa0
00004a91: SHL
00004a92: SUB
00004a93: AND
00004a94: PUSH4 0x313ce567
00004a99: PUSH1 0x40
00004a9b: MLOAD
00004a9c: DUP2
00004a9d: PUSH4 0xffffffff
00004aa2: AND
00004aa3: PUSH1 0xe0
00004aa5: SHL
00004aa6: DUP2
00004aa7: MSTORE
00004aa8: PUSH1 0x04
00004aaa: ADD
00004aab: PUSH1 0x20
00004aad: PUSH1 0x40
00004aaf: MLOAD
00004ab0: DUP1
00004ab1: DUP4
00004ab2: SUB
00004ab3: DUP2
00004ab4: DUP7
00004ab5: GAS
00004ab6: STATICCALL
00004ab7: ISZERO
00004ab8: DUP1
00004ab9: ISZERO
00004aba: PUSH2 0x4ac7
00004abd: JUMPI
00004abe: RETURNDATASIZE
00004abf: PUSH1 0x00
00004ac1: DUP1
00004ac2: RETURNDATACOPY
00004ac3: RETURNDATASIZE
00004ac4: PUSH1 0x00
00004ac6: REVERT
00004ac7: JUMPDEST
00004ac8: POP
00004ac9: POP
00004aca: POP
00004acb: POP
00004acc: PUSH1 0x40
00004ace: MLOAD
00004acf: RETURNDATASIZE
00004ad0: PUSH1 0x1f
00004ad2: NOT
00004ad3: PUSH1 0x1f
00004ad5: DUP3
00004ad6: ADD
00004ad7: AND
00004ad8: DUP3
00004ad9: ADD
00004ada: DUP1
00004adb: PUSH1 0x40
00004add: MSTORE
00004ade: POP
00004adf: DUP2
00004ae0: ADD
00004ae1: SWAP1
00004ae2: PUSH2 0x4aeb
00004ae5: SWAP2
00004ae6: SWAP1
00004ae7: PUSH2 0x5ae2
00004aea: JUMP
00004aeb: JUMPDEST
00004aec: PUSH2 0x4af6
00004aef: SWAP1
00004af0: PUSH1 0x0a
00004af2: PUSH2 0x5d7d
00004af5: JUMP
00004af6: JUMPDEST
00004af7: PUSH1 0x20
00004af9: DUP8
00004afa: ADD
00004afb: DUP2
00004afc: SWAP1
00004afd: MSTORE
00004afe: DUP7
00004aff: MLOAD
00004b00: PUSH1 0x00
00004b02: SWAP2
00004b03: DUP3
00004b04: SWAP2
00004b05: PUSH2 0x4b21
00004b08: SWAP2
00004b09: PUSH2 0x4b1a
00004b0c: DUP8
00004b0d: PUSH8 0x0de0b6b3a7640000
00004b16: PUSH2 0x5e9d
00004b19: JUMP
00004b1a: JUMPDEST
00004b1b: SWAP2
00004b1c: SWAP1
00004b1d: PUSH2 0x42d6
00004b20: JUMP
00004b21: JUMPDEST
00004b22: SWAP1
00004b23: POP
00004b24: PUSH2 0x4b40
00004b27: DUP9
00004b28: PUSH1 0x60
00004b2a: ADD
00004b2b: MLOAD
00004b2c: DUP10
00004b2d: PUSH1 0x40
00004b2f: ADD
00004b30: MLOAD
00004b31: DUP4
00004b32: PUSH2 0x42d6
00004b35: SWAP1
00004b36: SWAP3
00004b37: SWAP2
00004b38: SWAP1
00004b39: PUSH4 0xffffffff
00004b3e: AND
00004b3f: JUMP
00004b40: JUMPDEST
00004b41: SWAP2
00004b42: POP
00004b43: PUSH2 0x4b54
00004b46: PUSH8 0x0de0b6b3a7640000
00004b4f: DUP4
00004b50: PUSH2 0x5eb4
00004b53: JUMP
00004b54: JUMPDEST
00004b55: SWAP2
00004b56: POP
00004b57: POP
00004b58: PUSH1 0x00
00004b5a: DUP10
00004b5b: DUP3
00004b5c: GT
00004b5d: ISZERO
00004b5e: PUSH2 0x4bba
00004b61: JUMPI
00004b62: PUSH1 0x00
00004b64: PUSH2 0x4b84
00004b67: DUP10
00004b68: PUSH1 0x40
00004b6a: ADD
00004b6b: MLOAD
00004b6c: DUP11
00004b6d: PUSH1 0x60
00004b6f: ADD
00004b70: MLOAD
00004b71: DUP14
00004b72: PUSH8 0x0de0b6b3a7640000
00004b7b: PUSH2 0x4b1a
00004b7e: SWAP2
00004b7f: SWAP1
00004b80: PUSH2 0x5e9d
00004b83: JUMP
00004b84: JUMPDEST
00004b85: PUSH1 0x20
00004b87: DUP11
00004b88: ADD
00004b89: MLOAD
00004b8a: DUP11
00004b8b: MLOAD
00004b8c: SWAP2
00004b8d: SWAP3
00004b8e: POP
00004b8f: PUSH2 0x4b9a
00004b92: SWAP2
00004b93: DUP4
00004b94: SWAP2
00004b95: SWAP1
00004b96: PUSH2 0x42d6
00004b99: JUMP
00004b9a: JUMPDEST
00004b9b: SWAP2
00004b9c: POP
00004b9d: PUSH2 0x4bae
00004ba0: PUSH8 0x0de0b6b3a7640000
00004ba9: DUP4
00004baa: PUSH2 0x5eb4
00004bad: JUMP
00004bae: JUMPDEST
00004baf: SWAP2
00004bb0: POP
00004bb1: PUSH1 0x00
00004bb3: SWAP11
00004bb4: POP
00004bb5: POP
00004bb6: PUSH2 0x4bc9
00004bb9: JUMP
00004bba: JUMPDEST
00004bbb: POP
00004bbc: DUP3
00004bbd: PUSH2 0x4bc6
00004bc0: DUP3
00004bc1: DUP12
00004bc2: PUSH2 0x56b0
00004bc5: JUMP
00004bc6: JUMPDEST
00004bc7: SWAP10
00004bc8: POP
00004bc9: JUMPDEST
00004bca: PUSH2 0x4bd4
00004bcd: DUP6
00004bce: DUP3
00004bcf: DUP12
00004bd0: PUSH2 0x4d25
00004bd3: JUMP
00004bd4: JUMPDEST
00004bd5: DUP10
00004bd6: PUSH1 0x00
00004bd8: SUB
00004bd9: PUSH2 0x4be6
00004bdc: JUMPI
00004bdd: POP
00004bde: POP
00004bdf: POP
00004be0: POP
00004be1: POP
00004be2: PUSH2 0x4bfc
00004be5: JUMP
00004be6: JUMPDEST
00004be7: POP
00004be8: POP
00004be9: POP
00004bea: POP
00004beb: POP
00004bec: JUMPDEST
00004bed: PUSH2 0x4bf5
00004bf0: DUP2
00004bf1: PUSH2 0x583d
00004bf4: JUMP
00004bf5: JUMPDEST
00004bf6: SWAP1
00004bf7: POP
00004bf8: PUSH2 0x49a9
00004bfb: JUMP
00004bfc: JUMPDEST
00004bfd: POP
00004bfe: DUP4
00004bff: ISZERO
00004c00: PUSH2 0x1171
00004c03: JUMPI
00004c04: PUSH1 0x40
00004c06: MLOAD
00004c07: PUSH4 0xcc5ea39b
00004c0c: PUSH1 0xe0
00004c0e: SHL
00004c0f: DUP2
00004c10: MSTORE
00004c11: PUSH1 0x04
00004c13: DUP2
00004c14: ADD
00004c15: DUP6
00004c16: SWAP1
00004c17: MSTORE
00004c18: PUSH1 0x24
00004c1a: ADD
00004c1b: PUSH2 0x0c56
00004c1e: JUMP
00004c1f: JUMPDEST
00004c20: PUSH4 0xffffffff
00004c25: DUP3
00004c26: AND
00004c27: PUSH1 0x00
00004c29: SWAP1
00004c2a: DUP2
00004c2b: MSTORE
00004c2c: PUSH1 0x0c
00004c2e: PUSH1 0x20
00004c30: MSTORE
00004c31: PUSH1 0x40
00004c33: SWAP1
00004c34: DUP2
00004c35: SWAP1
00004c36: KECCAK256
00004c37: DUP1
00004c38: SLOAD
00004c39: SWAP2
00004c3a: MLOAD
00004c3b: PUSH1 0x01
00004c3d: PUSH1 0x01
00004c3f: PUSH1 0xa0
00004c41: SHL
00004c42: SUB
00004c43: SWAP1
00004c44: SWAP3
00004c45: AND
00004c46: SWAP2
00004c47: PUSH2 0x1171
00004c4a: SWAP2
00004c4b: PUSH4 0x69445c31
00004c50: PUSH1 0xe0
00004c52: SHL
00004c53: SWAP2
00004c54: PUSH2 0x4c6a
00004c57: SWAP2
00004c58: DUP7
00004c59: SWAP2
00004c5a: PUSH1 0x01
00004c5c: DUP3
00004c5d: ADD
00004c5e: SWAP2
00004c5f: PUSH1 0x02
00004c61: ADD
00004c62: SWAP1
00004c63: PUSH1 0x24
00004c65: ADD
00004c66: PUSH2 0x5ed6
00004c69: JUMP
00004c6a: JUMPDEST
00004c6b: PUSH1 0x40
00004c6d: DUP1
00004c6e: MLOAD
00004c6f: PUSH1 0x1f
00004c71: NOT
00004c72: DUP2
00004c73: DUP5
00004c74: SUB
00004c75: ADD
00004c76: DUP2
00004c77: MSTORE
00004c78: SWAP2
00004c79: SWAP1
00004c7a: MSTORE
00004c7b: PUSH1 0x20
00004c7d: DUP2
00004c7e: ADD
00004c7f: DUP1
00004c80: MLOAD
00004c81: PUSH1 0x01
00004c83: PUSH1 0x01
00004c85: PUSH1 0xe0
00004c87: SHL
00004c88: SUB
00004c89: AND
00004c8a: PUSH1 0x01
00004c8c: PUSH1 0x01
00004c8e: PUSH1 0xe0
00004c90: SHL
00004c91: SUB
00004c92: NOT
00004c93: SWAP1
00004c94: SWAP4
00004c95: AND
00004c96: SWAP3
00004c97: SWAP1
00004c98: SWAP3
00004c99: OR
00004c9a: SWAP1
00004c9b: SWAP2
00004c9c: MSTORE
00004c9d: PUSH1 0x01
00004c9f: PUSH1 0x01
00004ca1: PUSH1 0xa0
00004ca3: SHL
00004ca4: SUB
00004ca5: DUP4
00004ca6: AND
00004ca7: SWAP1
00004ca8: PUSH2 0x41d8
00004cab: JUMP
00004cac: JUMPDEST
00004cad: PUSH1 0x60
00004caf: DUP4
00004cb0: ISZERO
00004cb1: PUSH2 0x4d1b
00004cb4: JUMPI
00004cb5: DUP3
00004cb6: MLOAD
00004cb7: PUSH1 0x00
00004cb9: SUB
00004cba: PUSH2 0x4d14
00004cbd: JUMPI
00004cbe: PUSH1 0x01
00004cc0: PUSH1 0x01
00004cc2: PUSH1 0xa0
00004cc4: SHL
00004cc5: SUB
00004cc6: DUP6
00004cc7: AND
00004cc8: EXTCODESIZE
00004cc9: PUSH2 0x4d14
00004ccc: JUMPI
00004ccd: PUSH1 0x40
00004ccf: MLOAD
00004cd0: PUSH3 0x461bcd
00004cd4: PUSH1 0xe5
00004cd6: SHL
00004cd7: DUP2
00004cd8: MSTORE
00004cd9: PUSH1 0x20
00004cdb: PUSH1 0x04
00004cdd: DUP3
00004cde: ADD
00004cdf: MSTORE
00004ce0: PUSH1 0x1d
00004ce2: PUSH1 0x24
00004ce4: DUP3
00004ce5: ADD
00004ce6: MSTORE
00004ce7: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000
00004d08: PUSH1 0x44
00004d0a: DUP3
00004d0b: ADD
00004d0c: MSTORE
00004d0d: PUSH1 0x64
00004d0f: ADD
00004d10: PUSH2 0x0c56
00004d13: JUMP
00004d14: JUMPDEST
00004d15: POP
00004d16: DUP2
00004d17: PUSH2 0x0e85
00004d1a: JUMP
00004d1b: JUMPDEST
00004d1c: PUSH2 0x0e85
00004d1f: DUP4
00004d20: DUP4
00004d21: PUSH2 0x4d74
00004d24: JUMP
00004d25: JUMPDEST
00004d26: PUSH4 0xffffffff
00004d2b: DUP4
00004d2c: AND
00004d2d: PUSH1 0x00
00004d2f: SWAP1
00004d30: DUP2
00004d31: MSTORE
00004d32: PUSH1 0x0c
00004d34: PUSH1 0x20
00004d36: MSTORE
00004d37: PUSH1 0x40
00004d39: SWAP1
00004d3a: DUP2
00004d3b: SWAP1
00004d3c: KECCAK256
00004d3d: DUP1
00004d3e: SLOAD
00004d3f: SWAP2
00004d40: MLOAD
00004d41: PUSH1 0x01
00004d43: PUSH1 0x01
00004d45: PUSH1 0xa0
00004d47: SHL
00004d48: SUB
00004d49: SWAP1
00004d4a: SWAP3
00004d4b: AND
00004d4c: SWAP2
00004d4d: PUSH2 0x4762
00004d50: SWAP2
00004d51: PUSH4 0xc9111bd7
00004d56: PUSH1 0xe0
00004d58: SHL
00004d59: SWAP2
00004d5a: PUSH2 0x4c6a
00004d5d: SWAP2
00004d5e: DUP8
00004d5f: SWAP2
00004d60: DUP8
00004d61: SWAP2
00004d62: PUSH1 0x01
00004d64: DUP2
00004d65: ADD
00004d66: SWAP2
00004d67: PUSH1 0x02
00004d69: SWAP1
00004d6a: SWAP2
00004d6b: ADD
00004d6c: SWAP1
00004d6d: PUSH1 0x24
00004d6f: ADD
00004d70: PUSH2 0x5f01
00004d73: JUMP
00004d74: JUMPDEST
00004d75: DUP2
00004d76: MLOAD
00004d77: ISZERO
00004d78: PUSH2 0x4d84
00004d7b: JUMPI
00004d7c: DUP2
00004d7d: MLOAD
00004d7e: DUP1
00004d7f: DUP4
00004d80: PUSH1 0x20
00004d82: ADD
00004d83: REVERT
00004d84: JUMPDEST
00004d85: DUP1
00004d86: PUSH1 0x40
00004d88: MLOAD
00004d89: PUSH3 0x461bcd
00004d8d: PUSH1 0xe5
00004d8f: SHL
00004d90: DUP2
00004d91: MSTORE
00004d92: PUSH1 0x04
00004d94: ADD
00004d95: PUSH2 0x0c56
00004d98: SWAP2
00004d99: SWAP1
00004d9a: PUSH2 0x4e44
00004d9d: JUMP
00004d9e: JUMPDEST
00004d9f: POP
00004da0: DUP1
00004da1: SLOAD
00004da2: PUSH2 0x4daa
00004da5: SWAP1
00004da6: PUSH2 0x563a
00004da9: JUMP
00004daa: JUMPDEST
00004dab: PUSH1 0x00
00004dad: DUP3
00004dae: SSTORE
00004daf: DUP1
00004db0: PUSH1 0x1f
00004db2: LT
00004db3: PUSH2 0x4dba
00004db6: JUMPI
00004db7: POP
00004db8: POP
00004db9: JUMP
00004dba: JUMPDEST
00004dbb: PUSH1 0x1f
00004dbd: ADD
00004dbe: PUSH1 0x20
00004dc0: SWAP1
00004dc1: DIV
00004dc2: SWAP1
00004dc3: PUSH1 0x00
00004dc5: MSTORE
00004dc6: PUSH1 0x20
00004dc8: PUSH1 0x00
00004dca: KECCAK256
00004dcb: SWAP1
00004dcc: DUP2
00004dcd: ADD
00004dce: SWAP1
00004dcf: PUSH2 0x4dd8
00004dd2: SWAP2
00004dd3: SWAP1
00004dd4: PUSH2 0x4ddb
00004dd7: JUMP
00004dd8: JUMPDEST
00004dd9: POP
00004dda: JUMP
00004ddb: JUMPDEST
00004ddc: JUMPDEST
00004ddd: DUP1
00004dde: DUP3
00004ddf: GT
00004de0: ISZERO
00004de1: PUSH2 0x4df0
00004de4: JUMPI
00004de5: PUSH1 0x00
00004de7: DUP2
00004de8: SSTORE
00004de9: PUSH1 0x01
00004deb: ADD
00004dec: PUSH2 0x4ddc
00004def: JUMP
00004df0: JUMPDEST
00004df1: POP
00004df2: SWAP1
00004df3: JUMP
00004df4: JUMPDEST
00004df5: PUSH1 0x00
00004df7: JUMPDEST
00004df8: DUP4
00004df9: DUP2
00004dfa: LT
00004dfb: ISZERO
00004dfc: PUSH2 0x4e0f
00004dff: JUMPI
00004e00: DUP2
00004e01: DUP2
00004e02: ADD
00004e03: MLOAD
00004e04: DUP4
00004e05: DUP3
00004e06: ADD
00004e07: MSTORE
00004e08: PUSH1 0x20
00004e0a: ADD
00004e0b: PUSH2 0x4df7
00004e0e: JUMP
00004e0f: JUMPDEST
00004e10: POP
00004e11: POP
00004e12: PUSH1 0x00
00004e14: SWAP2
00004e15: ADD
00004e16: MSTORE
00004e17: JUMP
00004e18: JUMPDEST
00004e19: PUSH1 0x00
00004e1b: DUP2
00004e1c: MLOAD
00004e1d: DUP1
00004e1e: DUP5
00004e1f: MSTORE
00004e20: PUSH2 0x4e30
00004e23: DUP2
00004e24: PUSH1 0x20
00004e26: DUP7
00004e27: ADD
00004e28: PUSH1 0x20
00004e2a: DUP7
00004e2b: ADD
00004e2c: PUSH2 0x4df4
00004e2f: JUMP
00004e30: JUMPDEST
00004e31: PUSH1 0x1f
00004e33: ADD
00004e34: PUSH1 0x1f
00004e36: NOT
00004e37: AND
00004e38: SWAP3
00004e39: SWAP1
00004e3a: SWAP3
00004e3b: ADD
00004e3c: PUSH1 0x20
00004e3e: ADD
00004e3f: SWAP3
00004e40: SWAP2
00004e41: POP
00004e42: POP
00004e43: JUMP
00004e44: JUMPDEST
00004e45: PUSH1 0x20
00004e47: DUP2
00004e48: MSTORE
00004e49: PUSH1 0x00
00004e4b: PUSH2 0x3a32
00004e4e: PUSH1 0x20
00004e50: DUP4
00004e51: ADD
00004e52: DUP5
00004e53: PUSH2 0x4e18
00004e56: JUMP
00004e57: JUMPDEST
00004e58: DUP1
00004e59: CALLDATALOAD
00004e5a: PUSH4 0xffffffff
00004e5f: DUP2
00004e60: AND
00004e61: DUP2
00004e62: EQ
00004e63: PUSH2 0x4e6b
00004e66: JUMPI
00004e67: PUSH1 0x00
00004e69: DUP1
00004e6a: REVERT
00004e6b: JUMPDEST
00004e6c: SWAP2
00004e6d: SWAP1
00004e6e: POP
00004e6f: JUMP
00004e70: JUMPDEST
00004e71: PUSH1 0x00
00004e73: PUSH1 0x20
00004e75: DUP3
00004e76: DUP5
00004e77: SUB
00004e78: SLT
00004e79: ISZERO
00004e7a: PUSH2 0x4e82
00004e7d: JUMPI
00004e7e: PUSH1 0x00
00004e80: DUP1
00004e81: REVERT
00004e82: JUMPDEST
00004e83: PUSH2 0x3a32
00004e86: DUP3
00004e87: PUSH2 0x4e57
00004e8a: JUMP
00004e8b: JUMPDEST
00004e8c: PUSH1 0x00
00004e8e: PUSH1 0x20
00004e90: DUP3
00004e91: DUP5
00004e92: SUB
00004e93: SLT
00004e94: ISZERO
00004e95: PUSH2 0x4e9d
00004e98: JUMPI
00004e99: PUSH1 0x00
00004e9b: DUP1
00004e9c: REVERT
00004e9d: JUMPDEST
00004e9e: POP
00004e9f: CALLDATALOAD
00004ea0: SWAP2
00004ea1: SWAP1
00004ea2: POP
00004ea3: JUMP
00004ea4: JUMPDEST
00004ea5: PUSH1 0x01
00004ea7: PUSH1 0x01
00004ea9: PUSH1 0xa0
00004eab: SHL
00004eac: SUB
00004ead: DUP2
00004eae: AND
00004eaf: DUP2
00004eb0: EQ
00004eb1: PUSH2 0x4dd8
00004eb4: JUMPI
00004eb5: PUSH1 0x00
00004eb7: DUP1
00004eb8: REVERT
00004eb9: JUMPDEST
00004eba: PUSH1 0x00
00004ebc: DUP1
00004ebd: PUSH1 0x40
00004ebf: DUP4
00004ec0: DUP6
00004ec1: SUB
00004ec2: SLT
00004ec3: ISZERO
00004ec4: PUSH2 0x4ecc
00004ec7: JUMPI
00004ec8: PUSH1 0x00
00004eca: DUP1
00004ecb: REVERT
00004ecc: JUMPDEST
00004ecd: DUP3
00004ece: CALLDATALOAD
00004ecf: PUSH2 0x4ed7
00004ed2: DUP2
00004ed3: PUSH2 0x4ea4
00004ed6: JUMP
00004ed7: JUMPDEST
00004ed8: SWAP5
00004ed9: PUSH1 0x20
00004edb: SWAP4
00004edc: SWAP1
00004edd: SWAP4
00004ede: ADD
00004edf: CALLDATALOAD
00004ee0: SWAP4
00004ee1: POP
00004ee2: POP
00004ee3: POP
00004ee4: JUMP
00004ee5: JUMPDEST
00004ee6: PUSH4 0x4e487b71
00004eeb: PUSH1 0xe0
00004eed: SHL
00004eee: PUSH1 0x00
00004ef0: MSTORE
00004ef1: PUSH1 0x41
00004ef3: PUSH1 0x04
00004ef5: MSTORE
00004ef6: PUSH1 0x24
00004ef8: PUSH1 0x00
00004efa: REVERT
00004efb: JUMPDEST
00004efc: PUSH1 0x40
00004efe: DUP1
00004eff: MLOAD
00004f00: SWAP1
00004f01: DUP2
00004f02: ADD
00004f03: PUSH1 0x01
00004f05: PUSH1 0x01
00004f07: PUSH1 0x40
00004f09: SHL
00004f0a: SUB
00004f0b: DUP2
00004f0c: GT
00004f0d: DUP3
00004f0e: DUP3
00004f0f: LT
00004f10: OR
00004f11: ISZERO
00004f12: PUSH2 0x4f1d
00004f15: JUMPI
00004f16: PUSH2 0x4f1d
00004f19: PUSH2 0x4ee5
00004f1c: JUMP
00004f1d: JUMPDEST
00004f1e: PUSH1 0x40
00004f20: MSTORE
00004f21: SWAP1
00004f22: JUMP
00004f23: JUMPDEST
00004f24: PUSH1 0x40
00004f26: MLOAD
00004f27: PUSH1 0x1f
00004f29: DUP3
00004f2a: ADD
00004f2b: PUSH1 0x1f
00004f2d: NOT
00004f2e: AND
00004f2f: DUP2
00004f30: ADD
00004f31: PUSH1 0x01
00004f33: PUSH1 0x01
00004f35: PUSH1 0x40
00004f37: SHL
00004f38: SUB
00004f39: DUP2
00004f3a: GT
00004f3b: DUP3
00004f3c: DUP3
00004f3d: LT
00004f3e: OR
00004f3f: ISZERO
00004f40: PUSH2 0x4f4b
00004f43: JUMPI
00004f44: PUSH2 0x4f4b
00004f47: PUSH2 0x4ee5
00004f4a: JUMP
00004f4b: JUMPDEST
00004f4c: PUSH1 0x40
00004f4e: MSTORE
00004f4f: SWAP2
00004f50: SWAP1
00004f51: POP
00004f52: JUMP
00004f53: JUMPDEST
00004f54: PUSH1 0x00
00004f56: PUSH1 0x01
00004f58: PUSH1 0x01
00004f5a: PUSH1 0x40
00004f5c: SHL
00004f5d: SUB
00004f5e: DUP3
00004f5f: GT
00004f60: ISZERO
00004f61: PUSH2 0x4f6c
00004f64: JUMPI
00004f65: PUSH2 0x4f6c
00004f68: PUSH2 0x4ee5
00004f6b: JUMP
00004f6c: JUMPDEST
00004f6d: POP
00004f6e: PUSH1 0x1f
00004f70: ADD
00004f71: PUSH1 0x1f
00004f73: NOT
00004f74: AND
00004f75: PUSH1 0x20
00004f77: ADD
00004f78: SWAP1
00004f79: JUMP
00004f7a: JUMPDEST
00004f7b: PUSH1 0x00
00004f7d: DUP3
00004f7e: PUSH1 0x1f
00004f80: DUP4
00004f81: ADD
00004f82: SLT
00004f83: PUSH2 0x4f8b
00004f86: JUMPI
00004f87: PUSH1 0x00
00004f89: DUP1
00004f8a: REVERT
00004f8b: JUMPDEST
00004f8c: DUP2
00004f8d: CALLDATALOAD
00004f8e: PUSH2 0x4f9e
00004f91: PUSH2 0x4f99
00004f94: DUP3
00004f95: PUSH2 0x4f53
00004f98: JUMP
00004f99: JUMPDEST
00004f9a: PUSH2 0x4f23
00004f9d: JUMP
00004f9e: JUMPDEST
00004f9f: DUP2
00004fa0: DUP2
00004fa1: MSTORE
00004fa2: DUP5
00004fa3: PUSH1 0x20
00004fa5: DUP4
00004fa6: DUP7
00004fa7: ADD
00004fa8: ADD
00004fa9: GT
00004faa: ISZERO
00004fab: PUSH2 0x4fb3
00004fae: JUMPI
00004faf: PUSH1 0x00
00004fb1: DUP1
00004fb2: REVERT
00004fb3: JUMPDEST
00004fb4: DUP2
00004fb5: PUSH1 0x20
00004fb7: DUP6
00004fb8: ADD
00004fb9: PUSH1 0x20
00004fbb: DUP4
00004fbc: ADD
00004fbd: CALLDATACOPY
00004fbe: PUSH1 0x00
00004fc0: SWAP2
00004fc1: DUP2
00004fc2: ADD
00004fc3: PUSH1 0x20
00004fc5: ADD
00004fc6: SWAP2
00004fc7: SWAP1
00004fc8: SWAP2
00004fc9: MSTORE
00004fca: SWAP4
00004fcb: SWAP3
00004fcc: POP
00004fcd: POP
00004fce: POP
00004fcf: JUMP
00004fd0: JUMPDEST
00004fd1: PUSH1 0x00
00004fd3: DUP1
00004fd4: PUSH1 0x00
00004fd6: DUP1
00004fd7: PUSH1 0x80
00004fd9: DUP6
00004fda: DUP8
00004fdb: SUB
00004fdc: SLT
00004fdd: ISZERO
00004fde: PUSH2 0x4fe6
00004fe1: JUMPI
00004fe2: PUSH1 0x00
00004fe4: DUP1
00004fe5: REVERT
00004fe6: JUMPDEST
00004fe7: DUP5
00004fe8: CALLDATALOAD
00004fe9: PUSH2 0x4ff1
00004fec: DUP2
00004fed: PUSH2 0x4ea4
00004ff0: JUMP
00004ff1: JUMPDEST
00004ff2: SWAP4
00004ff3: POP
00004ff4: PUSH1 0x20
00004ff6: DUP6
00004ff7: ADD
00004ff8: CALLDATALOAD
00004ff9: PUSH2 0x5001
00004ffc: DUP2
00004ffd: PUSH2 0x4ea4
00005000: JUMP
00005001: JUMPDEST
00005002: SWAP3
00005003: POP
00005004: PUSH1 0x40
00005006: DUP6
00005007: ADD
00005008: CALLDATALOAD
00005009: SWAP2
0000500a: POP
0000500b: PUSH1 0x60
0000500d: DUP6
0000500e: ADD
0000500f: CALLDATALOAD
00005010: PUSH1 0x01
00005012: PUSH1 0x01
00005014: PUSH1 0x40
00005016: SHL
00005017: SUB
00005018: DUP2
00005019: GT
0000501a: ISZERO
0000501b: PUSH2 0x5023
0000501e: JUMPI
0000501f: PUSH1 0x00
00005021: DUP1
00005022: REVERT
00005023: JUMPDEST
00005024: PUSH2 0x502f
00005027: DUP8
00005028: DUP3
00005029: DUP9
0000502a: ADD
0000502b: PUSH2 0x4f7a
0000502e: JUMP
0000502f: JUMPDEST
00005030: SWAP2
00005031: POP
00005032: POP
00005033: SWAP3
00005034: SWAP6
00005035: SWAP2
00005036: SWAP5
00005037: POP
00005038: SWAP3
00005039: POP
0000503a: JUMP
0000503b: JUMPDEST
0000503c: PUSH1 0x00
0000503e: PUSH1 0x20
00005040: DUP3
00005041: DUP5
00005042: SUB
00005043: SLT
00005044: ISZERO
00005045: PUSH2 0x504d
00005048: JUMPI
00005049: PUSH1 0x00
0000504b: DUP1
0000504c: REVERT
0000504d: JUMPDEST
0000504e: DUP2
0000504f: CALLDATALOAD
00005050: PUSH2 0x3a32
00005053: DUP2
00005054: PUSH2 0x4ea4
00005057: JUMP
00005058: JUMPDEST
00005059: PUSH1 0x00
0000505b: DUP1
0000505c: PUSH1 0x00
0000505e: PUSH1 0x60
00005060: DUP5
00005061: DUP7
00005062: SUB
00005063: SLT
00005064: ISZERO
00005065: PUSH2 0x506d
00005068: JUMPI
00005069: PUSH1 0x00
0000506b: DUP1
0000506c: REVERT
0000506d: JUMPDEST
0000506e: DUP4
0000506f: CALLDATALOAD
00005070: PUSH2 0x5078
00005073: DUP2
00005074: PUSH2 0x4ea4
00005077: JUMP
00005078: JUMPDEST
00005079: SWAP3
0000507a: POP
0000507b: PUSH1 0x20
0000507d: DUP5
0000507e: ADD
0000507f: CALLDATALOAD
00005080: PUSH2 0x5088
00005083: DUP2
00005084: PUSH2 0x4ea4
00005087: JUMP
00005088: JUMPDEST
00005089: SWAP3
0000508a: SWAP6
0000508b: SWAP3
0000508c: SWAP5
0000508d: POP
0000508e: POP
0000508f: POP
00005090: PUSH1 0x40
00005092: SWAP2
00005093: SWAP1
00005094: SWAP2
00005095: ADD
00005096: CALLDATALOAD
00005097: SWAP1
00005098: JUMP
00005099: JUMPDEST
0000509a: DUP1
0000509b: ISZERO
0000509c: ISZERO
0000509d: DUP2
0000509e: EQ
0000509f: PUSH2 0x4dd8
000050a2: JUMPI
000050a3: PUSH1 0x00
000050a5: DUP1
000050a6: REVERT
000050a7: JUMPDEST
000050a8: PUSH1 0x00
000050aa: DUP1
000050ab: PUSH1 0x40
000050ad: DUP4
000050ae: DUP6
000050af: SUB
000050b0: SLT
000050b1: ISZERO
000050b2: PUSH2 0x50ba
000050b5: JUMPI
000050b6: PUSH1 0x00
000050b8: DUP1
000050b9: REVERT
000050ba: JUMPDEST
000050bb: PUSH2 0x50c3
000050be: DUP4
000050bf: PUSH2 0x4e57
000050c2: JUMP
000050c3: JUMPDEST
000050c4: SWAP2
000050c5: POP
000050c6: PUSH1 0x20
000050c8: DUP4
000050c9: ADD
000050ca: CALLDATALOAD
000050cb: PUSH2 0x50d3
000050ce: DUP2
000050cf: PUSH2 0x5099
000050d2: JUMP
000050d3: JUMPDEST
000050d4: DUP1
000050d5: SWAP2
000050d6: POP
000050d7: POP
000050d8: SWAP3
000050d9: POP
000050da: SWAP3
000050db: SWAP1
000050dc: POP
000050dd: JUMP
000050de: JUMPDEST
000050df: PUSH1 0x00
000050e1: DUP1
000050e2: PUSH1 0x00
000050e4: PUSH1 0x60
000050e6: DUP5
000050e7: DUP7
000050e8: SUB
000050e9: SLT
000050ea: ISZERO
000050eb: PUSH2 0x50f3
000050ee: JUMPI
000050ef: PUSH1 0x00
000050f1: DUP1
000050f2: REVERT
000050f3: JUMPDEST
000050f4: PUSH2 0x50fc
000050f7: DUP5
000050f8: PUSH2 0x4e57
000050fb: JUMP
000050fc: JUMPDEST
000050fd: SWAP3
000050fe: POP
000050ff: PUSH2 0x510a
00005102: PUSH1 0x20
00005104: DUP6
00005105: ADD
00005106: PUSH2 0x4e57
00005109: JUMP
0000510a: JUMPDEST
0000510b: SWAP2
0000510c: POP
0000510d: PUSH1 0x40
0000510f: DUP5
00005110: ADD
00005111: CALLDATALOAD
00005112: PUSH2 0x511a
00005115: DUP2
00005116: PUSH2 0x5099
00005119: JUMP
0000511a: JUMPDEST
0000511b: DUP1
0000511c: SWAP2
0000511d: POP
0000511e: POP
0000511f: SWAP3
00005120: POP
00005121: SWAP3
00005122: POP
00005123: SWAP3
00005124: JUMP
00005125: JUMPDEST
00005126: PUSH1 0x20
00005128: DUP1
00005129: DUP3
0000512a: MSTORE
0000512b: DUP3
0000512c: MLOAD
0000512d: DUP3
0000512e: DUP3
0000512f: ADD
00005130: DUP2
00005131: SWAP1
00005132: MSTORE
00005133: PUSH1 0x00
00005135: SWAP2
00005136: SWAP1
00005137: DUP5
00005138: DUP3
00005139: ADD
0000513a: SWAP1
0000513b: PUSH1 0x40
0000513d: DUP6
0000513e: ADD
0000513f: SWAP1
00005140: DUP5
00005141: JUMPDEST
00005142: DUP2
00005143: DUP2
00005144: LT
00005145: ISZERO
00005146: PUSH2 0x5163
00005149: JUMPI
0000514a: DUP4
0000514b: MLOAD
0000514c: PUSH4 0xffffffff
00005151: AND
00005152: DUP4
00005153: MSTORE
00005154: SWAP3
00005155: DUP5
00005156: ADD
00005157: SWAP3
00005158: SWAP2
00005159: DUP5
0000515a: ADD
0000515b: SWAP2
0000515c: PUSH1 0x01
0000515e: ADD
0000515f: PUSH2 0x5141
00005162: JUMP
00005163: JUMPDEST
00005164: POP
00005165: SWAP1
00005166: SWAP7
00005167: SWAP6
00005168: POP
00005169: POP
0000516a: POP
0000516b: POP
0000516c: POP
0000516d: POP
0000516e: JUMP
0000516f: JUMPDEST
00005170: PUSH1 0x00
00005172: DUP1
00005173: DUP4
00005174: PUSH1 0x1f
00005176: DUP5
00005177: ADD
00005178: SLT
00005179: PUSH2 0x5181
0000517c: JUMPI
0000517d: PUSH1 0x00
0000517f: DUP1
00005180: REVERT
00005181: JUMPDEST
00005182: POP
00005183: DUP2
00005184: CALLDATALOAD
00005185: PUSH1 0x01
00005187: PUSH1 0x01
00005189: PUSH1 0x40
0000518b: SHL
0000518c: SUB
0000518d: DUP2
0000518e: GT
0000518f: ISZERO
00005190: PUSH2 0x5198
00005193: JUMPI
00005194: PUSH1 0x00
00005196: DUP1
00005197: REVERT
00005198: JUMPDEST
00005199: PUSH1 0x20
0000519b: DUP4
0000519c: ADD
0000519d: SWAP2
0000519e: POP
0000519f: DUP4
000051a0: PUSH1 0x20
000051a2: DUP3
000051a3: PUSH1 0x05
000051a5: SHL
000051a6: DUP6
000051a7: ADD
000051a8: ADD
000051a9: GT
000051aa: ISZERO
000051ab: PUSH2 0x51b3
000051ae: JUMPI
000051af: PUSH1 0x00
000051b1: DUP1
000051b2: REVERT
000051b3: JUMPDEST
000051b4: SWAP3
000051b5: POP
000051b6: SWAP3
000051b7: SWAP1
000051b8: POP
000051b9: JUMP
000051ba: JUMPDEST
000051bb: PUSH1 0x00
000051bd: DUP1
000051be: PUSH1 0x20
000051c0: DUP4
000051c1: DUP6
000051c2: SUB
000051c3: SLT
000051c4: ISZERO
000051c5: PUSH2 0x51cd
000051c8: JUMPI
000051c9: PUSH1 0x00
000051cb: DUP1
000051cc: REVERT
000051cd: JUMPDEST
000051ce: DUP3
000051cf: CALLDATALOAD
000051d0: PUSH1 0x01
000051d2: PUSH1 0x01
000051d4: PUSH1 0x40
000051d6: SHL
000051d7: SUB
000051d8: DUP2
000051d9: GT
000051da: ISZERO
000051db: PUSH2 0x51e3
000051de: JUMPI
000051df: PUSH1 0x00
000051e1: DUP1
000051e2: REVERT
000051e3: JUMPDEST
000051e4: PUSH2 0x51ef
000051e7: DUP6
000051e8: DUP3
000051e9: DUP7
000051ea: ADD
000051eb: PUSH2 0x516f
000051ee: JUMP
000051ef: JUMPDEST
000051f0: SWAP1
000051f1: SWAP7
000051f2: SWAP1
000051f3: SWAP6
000051f4: POP
000051f5: SWAP4
000051f6: POP
000051f7: POP
000051f8: POP
000051f9: POP
000051fa: JUMP
000051fb: JUMPDEST
000051fc: PUSH1 0x00
000051fe: PUSH1 0x20
00005200: DUP3
00005201: DUP5
00005202: SUB
00005203: SLT
00005204: ISZERO
00005205: PUSH2 0x520d
00005208: JUMPI
00005209: PUSH1 0x00
0000520b: DUP1
0000520c: REVERT
0000520d: JUMPDEST
0000520e: DUP2
0000520f: CALLDATALOAD
00005210: PUSH1 0x01
00005212: PUSH1 0x01
00005214: PUSH1 0xc0
00005216: SHL
00005217: SUB
00005218: DUP2
00005219: AND
0000521a: DUP2
0000521b: EQ
0000521c: PUSH2 0x3a32
0000521f: JUMPI
00005220: PUSH1 0x00
00005222: DUP1
00005223: REVERT
00005224: JUMPDEST
00005225: PUSH1 0x00
00005227: DUP1
00005228: PUSH1 0x40
0000522a: DUP4
0000522b: DUP6
0000522c: SUB
0000522d: SLT
0000522e: ISZERO
0000522f: PUSH2 0x5237
00005232: JUMPI
00005233: PUSH1 0x00
00005235: DUP1
00005236: REVERT
00005237: JUMPDEST
00005238: DUP3
00005239: CALLDATALOAD
0000523a: SWAP2
0000523b: POP
0000523c: PUSH1 0x20
0000523e: DUP4
0000523f: ADD
00005240: CALLDATALOAD
00005241: PUSH2 0x50d3
00005244: DUP2
00005245: PUSH2 0x4ea4
00005248: JUMP
00005249: JUMPDEST
0000524a: PUSH1 0x01
0000524c: PUSH1 0x01
0000524e: PUSH1 0xa0
00005250: SHL
00005251: SUB
00005252: DUP6
00005253: AND
00005254: DUP2
00005255: MSTORE
00005256: DUP4
00005257: ISZERO
00005258: ISZERO
00005259: PUSH1 0x20
0000525b: DUP3
0000525c: ADD
0000525d: MSTORE
0000525e: PUSH1 0x80
00005260: PUSH1 0x40
00005262: DUP3
00005263: ADD
00005264: DUP2
00005265: SWAP1
00005266: MSTORE
00005267: PUSH1 0x00
00005269: SWAP1
0000526a: PUSH2 0x5275
0000526d: SWAP1
0000526e: DUP4
0000526f: ADD
00005270: DUP6
00005271: PUSH2 0x4e18
00005274: JUMP
00005275: JUMPDEST
00005276: DUP3
00005277: DUP2
00005278: SUB
00005279: PUSH1 0x60
0000527b: DUP5
0000527c: ADD
0000527d: MSTORE
0000527e: PUSH2 0x5287
00005281: DUP2
00005282: DUP6
00005283: PUSH2 0x4e18
00005286: JUMP
00005287: JUMPDEST
00005288: SWAP8
00005289: SWAP7
0000528a: POP
0000528b: POP
0000528c: POP
0000528d: POP
0000528e: POP
0000528f: POP
00005290: POP
00005291: JUMP
00005292: JUMPDEST
00005293: PUSH1 0x00
00005295: DUP2
00005296: MLOAD
00005297: DUP1
00005298: DUP5
00005299: MSTORE
0000529a: PUSH1 0x20
0000529c: DUP1
0000529d: DUP6
0000529e: ADD
0000529f: SWAP5
000052a0: POP
000052a1: DUP1
000052a2: DUP5
000052a3: ADD
000052a4: PUSH1 0x00
000052a6: JUMPDEST
000052a7: DUP4
000052a8: DUP2
000052a9: LT
000052aa: ISZERO
000052ab: PUSH2 0x52cb
000052ae: JUMPI
000052af: DUP2
000052b0: MLOAD
000052b1: PUSH1 0x01
000052b3: PUSH1 0x01
000052b5: PUSH1 0xa0
000052b7: SHL
000052b8: SUB
000052b9: AND
000052ba: DUP8
000052bb: MSTORE
000052bc: SWAP6
000052bd: DUP3
000052be: ADD
000052bf: SWAP6
000052c0: SWAP1
000052c1: DUP3
000052c2: ADD
000052c3: SWAP1
000052c4: PUSH1 0x01
000052c6: ADD
000052c7: PUSH2 0x52a6
000052ca: JUMP
000052cb: JUMPDEST
000052cc: POP
000052cd: SWAP5
000052ce: SWAP6
000052cf: SWAP5
000052d0: POP
000052d1: POP
000052d2: POP
000052d3: POP
000052d4: POP
000052d5: JUMP
000052d6: JUMPDEST
000052d7: PUSH1 0x00
000052d9: DUP2
000052da: MLOAD
000052db: DUP1
000052dc: DUP5
000052dd: MSTORE
000052de: PUSH1 0x20
000052e0: DUP1
000052e1: DUP6
000052e2: ADD
000052e3: SWAP5
000052e4: POP
000052e5: DUP1
000052e6: DUP5
000052e7: ADD
000052e8: PUSH1 0x00
000052ea: JUMPDEST
000052eb: DUP4
000052ec: DUP2
000052ed: LT
000052ee: ISZERO
000052ef: PUSH2 0x52cb
000052f2: JUMPI
000052f3: DUP2
000052f4: MLOAD
000052f5: DUP8
000052f6: MSTORE
000052f7: SWAP6
000052f8: DUP3
000052f9: ADD
000052fa: SWAP6
000052fb: SWAP1
000052fc: DUP3
000052fd: ADD
000052fe: SWAP1
000052ff: PUSH1 0x01
00005301: ADD
00005302: PUSH2 0x52ea
00005305: JUMP
00005306: JUMPDEST
00005307: PUSH1 0x60
00005309: DUP2
0000530a: MSTORE
0000530b: PUSH1 0x00
0000530d: PUSH2 0x5319
00005310: PUSH1 0x60
00005312: DUP4
00005313: ADD
00005314: DUP7
00005315: PUSH2 0x5292
00005318: JUMP
00005319: JUMPDEST
0000531a: PUSH1 0x20
0000531c: DUP4
0000531d: DUP3
0000531e: SUB
0000531f: DUP2
00005320: DUP6
00005321: ADD
00005322: MSTORE
00005323: PUSH2 0x532c
00005326: DUP3
00005327: DUP8
00005328: PUSH2 0x52d6
0000532b: JUMP
0000532c: JUMPDEST
0000532d: DUP5
0000532e: DUP2
0000532f: SUB
00005330: PUSH1 0x40
00005332: DUP7
00005333: ADD
00005334: MSTORE
00005335: DUP6
00005336: MLOAD
00005337: DUP1
00005338: DUP3
00005339: MSTORE
0000533a: DUP3
0000533b: DUP8
0000533c: ADD
0000533d: SWAP4
0000533e: POP
0000533f: SWAP1
00005340: DUP3
00005341: ADD
00005342: SWAP1
00005343: PUSH1 0x00
00005345: JUMPDEST
00005346: DUP2
00005347: DUP2
00005348: LT
00005349: ISZERO
0000534a: PUSH2 0x5363
0000534d: JUMPI
0000534e: DUP5
0000534f: MLOAD
00005350: ISZERO
00005351: ISZERO
00005352: DUP4
00005353: MSTORE
00005354: SWAP4
00005355: DUP4
00005356: ADD
00005357: SWAP4
00005358: SWAP2
00005359: DUP4
0000535a: ADD
0000535b: SWAP2
0000535c: PUSH1 0x01
0000535e: ADD
0000535f: PUSH2 0x5345
00005362: JUMP
00005363: JUMPDEST
00005364: POP
00005365: SWAP1
00005366: SWAP9
00005367: SWAP8
00005368: POP
00005369: POP
0000536a: POP
0000536b: POP
0000536c: POP
0000536d: POP
0000536e: POP
0000536f: POP
00005370: JUMP
00005371: JUMPDEST
00005372: PUSH1 0x00
00005374: DUP1
00005375: PUSH1 0x00
00005377: DUP1
00005378: PUSH1 0x80
0000537a: DUP6
0000537b: DUP8
0000537c: SUB
0000537d: SLT
0000537e: ISZERO
0000537f: PUSH2 0x5387
00005382: JUMPI
00005383: PUSH1 0x00
00005385: DUP1
00005386: REVERT
00005387: JUMPDEST
00005388: PUSH2 0x5390
0000538b: DUP6
0000538c: PUSH2 0x4e57
0000538f: JUMP
00005390: JUMPDEST
00005391: SWAP4
00005392: POP
00005393: PUSH2 0x539e
00005396: PUSH1 0x20
00005398: DUP7
00005399: ADD
0000539a: PUSH2 0x4e57
0000539d: JUMP
0000539e: JUMPDEST
0000539f: SWAP3
000053a0: POP
000053a1: PUSH1 0x40
000053a3: DUP6
000053a4: ADD
000053a5: CALLDATALOAD
000053a6: PUSH1 0x01
000053a8: PUSH1 0x01
000053aa: PUSH1 0x40
000053ac: SHL
000053ad: SUB
000053ae: DUP2
000053af: GT
000053b0: ISZERO
000053b1: PUSH2 0x53b9
000053b4: JUMPI
000053b5: PUSH1 0x00
000053b7: DUP1
000053b8: REVERT
000053b9: JUMPDEST
000053ba: PUSH2 0x53c5
000053bd: DUP8
000053be: DUP3
000053bf: DUP9
000053c0: ADD
000053c1: PUSH2 0x4f7a
000053c4: JUMP
000053c5: JUMPDEST
000053c6: SWAP3
000053c7: POP
000053c8: POP
000053c9: PUSH1 0x60
000053cb: DUP6
000053cc: ADD
000053cd: CALLDATALOAD
000053ce: PUSH2 0x53d6
000053d1: DUP2
000053d2: PUSH2 0x5099
000053d5: JUMP
000053d6: JUMPDEST
000053d7: SWAP4
000053d8: SWAP7
000053d9: SWAP3
000053da: SWAP6
000053db: POP
000053dc: SWAP1
000053dd: SWAP4
000053de: POP
000053df: POP
000053e0: JUMP
000053e1: JUMPDEST
000053e2: PUSH1 0x00
000053e4: DUP1
000053e5: PUSH1 0x00
000053e7: PUSH1 0x60
000053e9: DUP5
000053ea: DUP7
000053eb: SUB
000053ec: SLT
000053ed: ISZERO
000053ee: PUSH2 0x53f6
000053f1: JUMPI
000053f2: PUSH1 0x00
000053f4: DUP1
000053f5: REVERT
000053f6: JUMPDEST
000053f7: DUP4
000053f8: CALLDATALOAD
000053f9: SWAP3
000053fa: POP
000053fb: PUSH1 0x20
000053fd: DUP5
000053fe: ADD
000053ff: CALLDATALOAD
00005400: PUSH2 0x5408
00005403: DUP2
00005404: PUSH2 0x4ea4
00005407: JUMP
00005408: JUMPDEST
00005409: SWAP2
0000540a: POP
0000540b: PUSH1 0x40
0000540d: DUP5
0000540e: ADD
0000540f: CALLDATALOAD
00005410: PUSH2 0x511a
00005413: DUP2
00005414: PUSH2 0x4ea4
00005417: JUMP
00005418: JUMPDEST
00005419: PUSH1 0x00
0000541b: PUSH1 0x20
0000541d: DUP3
0000541e: DUP5
0000541f: SUB
00005420: SLT
00005421: ISZERO
00005422: PUSH2 0x542a
00005425: JUMPI
00005426: PUSH1 0x00
00005428: DUP1
00005429: REVERT
0000542a: JUMPDEST
0000542b: DUP2
0000542c: CALLDATALOAD
0000542d: PUSH1 0x01
0000542f: PUSH1 0x01
00005431: PUSH1 0x40
00005433: SHL
00005434: SUB
00005435: DUP2
00005436: AND
00005437: DUP2
00005438: EQ
00005439: PUSH2 0x3a32
0000543c: JUMPI
0000543d: PUSH1 0x00
0000543f: DUP1
00005440: REVERT
00005441: JUMPDEST
00005442: PUSH1 0x00
00005444: DUP1
00005445: PUSH1 0x00
00005447: PUSH1 0x60
00005449: DUP5
0000544a: DUP7
0000544b: SUB
0000544c: SLT
0000544d: ISZERO
0000544e: PUSH2 0x5456
00005451: JUMPI
00005452: PUSH1 0x00
00005454: DUP1
00005455: REVERT
00005456: JUMPDEST
00005457: DUP4
00005458: CALLDATALOAD
00005459: PUSH2 0x5461
0000545c: DUP2
0000545d: PUSH2 0x5099
00005460: JUMP
00005461: JUMPDEST
00005462: SWAP3
00005463: POP
00005464: PUSH1 0x20
00005466: DUP5
00005467: ADD
00005468: CALLDATALOAD
00005469: PUSH2 0xffff
0000546c: DUP2
0000546d: AND
0000546e: DUP2
0000546f: EQ
00005470: PUSH2 0x5408
00005473: JUMPI
00005474: PUSH1 0x00
00005476: DUP1
00005477: REVERT
00005478: JUMPDEST
00005479: PUSH1 0xff
0000547b: DUP2
0000547c: AND
0000547d: DUP2
0000547e: EQ
0000547f: PUSH2 0x4dd8
00005482: JUMPI
00005483: PUSH1 0x00
00005485: DUP1
00005486: REVERT
00005487: JUMPDEST
00005488: PUSH1 0x00
0000548a: DUP1
0000548b: PUSH1 0x00
0000548d: DUP1
0000548e: PUSH1 0x00
00005490: DUP1
00005491: PUSH1 0x00
00005493: PUSH1 0xe0
00005495: DUP9
00005496: DUP11
00005497: SUB
00005498: SLT
00005499: ISZERO
0000549a: PUSH2 0x54a2
0000549d: JUMPI
0000549e: PUSH1 0x00
000054a0: DUP1
000054a1: REVERT
000054a2: JUMPDEST
000054a3: DUP8
000054a4: CALLDATALOAD
000054a5: PUSH2 0x54ad
000054a8: DUP2
000054a9: PUSH2 0x4ea4
000054ac: JUMP
000054ad: JUMPDEST
000054ae: SWAP7
000054af: POP
000054b0: PUSH1 0x20
000054b2: DUP9
000054b3: ADD
000054b4: CALLDATALOAD
000054b5: PUSH2 0x54bd
000054b8: DUP2
000054b9: PUSH2 0x4ea4
000054bc: JUMP
000054bd: JUMPDEST
000054be: SWAP6
000054bf: POP
000054c0: PUSH1 0x40
000054c2: DUP9
000054c3: ADD
000054c4: CALLDATALOAD
000054c5: SWAP5
000054c6: POP
000054c7: PUSH1 0x60
000054c9: DUP9
000054ca: ADD
000054cb: CALLDATALOAD
000054cc: SWAP4
000054cd: POP
000054ce: PUSH1 0x80
000054d0: DUP9
000054d1: ADD
000054d2: CALLDATALOAD
000054d3: PUSH2 0x54db
000054d6: DUP2
000054d7: PUSH2 0x5478
000054da: JUMP
000054db: JUMPDEST
000054dc: SWAP7
000054dd: SWAP10
000054de: SWAP6
000054df: SWAP9
000054e0: POP
000054e1: SWAP4
000054e2: SWAP7
000054e3: SWAP3
000054e4: SWAP6
000054e5: SWAP5
000054e6: PUSH1 0xa0
000054e8: DUP5
000054e9: ADD
000054ea: CALLDATALOAD
000054eb: SWAP5
000054ec: POP
000054ed: PUSH1 0xc0
000054ef: SWAP1
000054f0: SWAP4
000054f1: ADD
000054f2: CALLDATALOAD
000054f3: SWAP3
000054f4: SWAP2
000054f5: POP
000054f6: POP
000054f7: JUMP
000054f8: JUMPDEST
000054f9: PUSH1 0x00
000054fb: DUP1
000054fc: PUSH1 0x40
000054fe: DUP4
000054ff: DUP6
00005500: SUB
00005501: SLT
00005502: ISZERO
00005503: PUSH2 0x550b
00005506: JUMPI
00005507: PUSH1 0x00
00005509: DUP1
0000550a: REVERT
0000550b: JUMPDEST
0000550c: DUP3
0000550d: CALLDATALOAD
0000550e: PUSH2 0x5516
00005511: DUP2
00005512: PUSH2 0x4ea4
00005515: JUMP
00005516: JUMPDEST
00005517: SWAP2
00005518: POP
00005519: PUSH1 0x20
0000551b: DUP4
0000551c: ADD
0000551d: CALLDATALOAD
0000551e: PUSH2 0x50d3
00005521: DUP2
00005522: PUSH2 0x4ea4
00005525: JUMP
00005526: JUMPDEST
00005527: PUSH1 0x00
00005529: DUP1
0000552a: PUSH1 0x00
0000552c: DUP1
0000552d: PUSH1 0x00
0000552f: DUP1
00005530: PUSH1 0x00
00005532: DUP1
00005533: PUSH1 0x80
00005535: DUP10
00005536: DUP12
00005537: SUB
00005538: SLT
00005539: ISZERO
0000553a: PUSH2 0x5542
0000553d: JUMPI
0000553e: PUSH1 0x00
00005540: DUP1
00005541: REVERT
00005542: JUMPDEST
00005543: DUP9
00005544: CALLDATALOAD
00005545: PUSH1 0x01
00005547: PUSH1 0x01
00005549: PUSH1 0x40
0000554b: SHL
0000554c: SUB
0000554d: DUP1
0000554e: DUP3
0000554f: GT
00005550: ISZERO
00005551: PUSH2 0x5559
00005554: JUMPI
00005555: PUSH1 0x00
00005557: DUP1
00005558: REVERT
00005559: JUMPDEST
0000555a: PUSH2 0x5565
0000555d: DUP13
0000555e: DUP4
0000555f: DUP14
00005560: ADD
00005561: PUSH2 0x516f
00005564: JUMP
00005565: JUMPDEST
00005566: SWAP1
00005567: SWAP11
00005568: POP
00005569: SWAP9
0000556a: POP
0000556b: PUSH1 0x20
0000556d: DUP12
0000556e: ADD
0000556f: CALLDATALOAD
00005570: SWAP2
00005571: POP
00005572: DUP1
00005573: DUP3
00005574: GT
00005575: ISZERO
00005576: PUSH2 0x557e
00005579: JUMPI
0000557a: PUSH1 0x00
0000557c: DUP1
0000557d: REVERT
0000557e: JUMPDEST
0000557f: PUSH2 0x558a
00005582: DUP13
00005583: DUP4
00005584: DUP14
00005585: ADD
00005586: PUSH2 0x516f
00005589: JUMP
0000558a: JUMPDEST
0000558b: SWAP1
0000558c: SWAP9
0000558d: POP
0000558e: SWAP7
0000558f: POP
00005590: PUSH1 0x40
00005592: DUP12
00005593: ADD
00005594: CALLDATALOAD
00005595: SWAP2
00005596: POP
00005597: DUP1
00005598: DUP3
00005599: GT
0000559a: ISZERO
0000559b: PUSH2 0x55a3
0000559e: JUMPI
0000559f: PUSH1 0x00
000055a1: DUP1
000055a2: REVERT
000055a3: JUMPDEST
000055a4: PUSH2 0x55af
000055a7: DUP13
000055a8: DUP4
000055a9: DUP14
000055aa: ADD
000055ab: PUSH2 0x516f
000055ae: JUMP
000055af: JUMPDEST
000055b0: SWAP1
000055b1: SWAP7
000055b2: POP
000055b3: SWAP5
000055b4: POP
000055b5: PUSH1 0x60
000055b7: DUP12
000055b8: ADD
000055b9: CALLDATALOAD
000055ba: SWAP2
000055bb: POP
000055bc: DUP1
000055bd: DUP3
000055be: GT
000055bf: ISZERO
000055c0: PUSH2 0x55c8
000055c3: JUMPI
000055c4: PUSH1 0x00
000055c6: DUP1
000055c7: REVERT
000055c8: JUMPDEST
000055c9: DUP2
000055ca: DUP12
000055cb: ADD
000055cc: SWAP2
000055cd: POP
000055ce: DUP12
000055cf: PUSH1 0x1f
000055d1: DUP4
000055d2: ADD
000055d3: SLT
000055d4: PUSH2 0x55dc
000055d7: JUMPI
000055d8: PUSH1 0x00
000055da: DUP1
000055db: REVERT
000055dc: JUMPDEST
000055dd: DUP2
000055de: CALLDATALOAD
000055df: DUP2
000055e0: DUP2
000055e1: GT
000055e2: ISZERO
000055e3: PUSH2 0x55eb
000055e6: JUMPI
000055e7: PUSH1 0x00
000055e9: DUP1
000055ea: REVERT
000055eb: JUMPDEST
000055ec: DUP13
000055ed: PUSH1 0x20
000055ef: DUP3
000055f0: DUP6
000055f1: ADD
000055f2: ADD
000055f3: GT
000055f4: ISZERO
000055f5: PUSH2 0x55fd
000055f8: JUMPI
000055f9: PUSH1 0x00
000055fb: DUP1
000055fc: REVERT
000055fd: JUMPDEST
000055fe: PUSH1 0x20
00005600: DUP4
00005601: ADD
00005602: SWAP5
00005603: POP
00005604: DUP1
00005605: SWAP4
00005606: POP
00005607: POP
00005608: POP
00005609: POP
0000560a: SWAP3
0000560b: SWAP6
0000560c: SWAP9
0000560d: POP
0000560e: SWAP3
0000560f: SWAP6
00005610: SWAP9
00005611: SWAP1
00005612: SWAP4
00005613: SWAP7
00005614: POP
00005615: JUMP
00005616: JUMPDEST
00005617: PUSH1 0x20
00005619: DUP1
0000561a: DUP3
0000561b: MSTORE
0000561c: PUSH1 0x0a
0000561e: SWAP1
0000561f: DUP3
00005620: ADD
00005621: MSTORE
00005622: PUSH10 0x5245454e5452414e4359
0000562d: PUSH1 0xb0
0000562f: SHL
00005630: PUSH1 0x40
00005632: DUP3
00005633: ADD
00005634: MSTORE
00005635: PUSH1 0x60
00005637: ADD
00005638: SWAP1
00005639: JUMP
0000563a: JUMPDEST
0000563b: PUSH1 0x01
0000563d: DUP2
0000563e: DUP2
0000563f: SHR
00005640: SWAP1
00005641: DUP3
00005642: AND
00005643: DUP1
00005644: PUSH2 0x564e
00005647: JUMPI
00005648: PUSH1 0x7f
0000564a: DUP3
0000564b: AND
0000564c: SWAP2
0000564d: POP
0000564e: JUMPDEST
0000564f: PUSH1 0x20
00005651: DUP3
00005652: LT
00005653: DUP2
00005654: SUB
00005655: PUSH2 0x566e
00005658: JUMPI
00005659: PUSH4 0x4e487b71
0000565e: PUSH1 0xe0
00005660: SHL
00005661: PUSH1 0x00
00005663: MSTORE
00005664: PUSH1 0x22
00005666: PUSH1 0x04
00005668: MSTORE
00005669: PUSH1 0x24
0000566b: PUSH1 0x00
0000566d: REVERT
0000566e: JUMPDEST
0000566f: POP
00005670: SWAP2
00005671: SWAP1
00005672: POP
00005673: JUMP
00005674: JUMPDEST
00005675: PUSH1 0x20
00005677: DUP1
00005678: DUP3
00005679: MSTORE
0000567a: PUSH1 0x0c
0000567c: SWAP1
0000567d: DUP3
0000567e: ADD
0000567f: MSTORE
00005680: PUSH12 0x15539055551213d492569151
0000568d: PUSH1 0xa2
0000568f: SHL
00005690: PUSH1 0x40
00005692: DUP3
00005693: ADD
00005694: MSTORE
00005695: PUSH1 0x60
00005697: ADD
00005698: SWAP1
00005699: JUMP
0000569a: JUMPDEST
0000569b: PUSH4 0x4e487b71
000056a0: PUSH1 0xe0
000056a2: SHL
000056a3: PUSH1 0x00
000056a5: MSTORE
000056a6: PUSH1 0x11
000056a8: PUSH1 0x04
000056aa: MSTORE
000056ab: PUSH1 0x24
000056ad: PUSH1 0x00
000056af: REVERT
000056b0: JUMPDEST
000056b1: DUP2
000056b2: DUP2
000056b3: SUB
000056b4: DUP2
000056b5: DUP2
000056b6: GT
000056b7: ISZERO
000056b8: PUSH2 0x0ef4
000056bb: JUMPI
000056bc: PUSH2 0x0ef4
000056bf: PUSH2 0x569a
000056c2: JUMP
000056c3: JUMPDEST
000056c4: PUSH4 0x4e487b71
000056c9: PUSH1 0xe0
000056cb: SHL
000056cc: PUSH1 0x00
000056ce: MSTORE
000056cf: PUSH1 0x32
000056d1: PUSH1 0x04
000056d3: MSTORE
000056d4: PUSH1 0x24
000056d6: PUSH1 0x00
000056d8: REVERT
000056d9: JUMPDEST
000056da: DUP1
000056db: DUP3
000056dc: ADD
000056dd: DUP1
000056de: DUP3
000056df: GT
000056e0: ISZERO
000056e1: PUSH2 0x0ef4
000056e4: JUMPI
000056e5: PUSH2 0x0ef4
000056e8: PUSH2 0x569a
000056eb: JUMP
000056ec: JUMPDEST
000056ed: PUSH1 0x00
000056ef: PUSH1 0x01
000056f1: PUSH1 0x01
000056f3: PUSH1 0x40
000056f5: SHL
000056f6: SUB
000056f7: DUP3
000056f8: GT
000056f9: ISZERO
000056fa: PUSH2 0x5705
000056fd: JUMPI
000056fe: PUSH2 0x5705
00005701: PUSH2 0x4ee5
00005704: JUMP
00005705: JUMPDEST
00005706: POP
00005707: PUSH1 0x05
00005709: SHL
0000570a: PUSH1 0x20
0000570c: ADD
0000570d: SWAP1
0000570e: JUMP
0000570f: JUMPDEST
00005710: PUSH1 0x00
00005712: PUSH2 0x571d
00005715: PUSH2 0x4f99
00005718: DUP5
00005719: PUSH2 0x56ec
0000571c: JUMP
0000571d: JUMPDEST
0000571e: DUP4
0000571f: DUP2
00005720: MSTORE
00005721: SWAP1
00005722: POP
00005723: PUSH1 0x20
00005725: DUP1
00005726: DUP3
00005727: ADD
00005728: SWAP1
00005729: PUSH1 0x05
0000572b: DUP6
0000572c: SWAP1
0000572d: SHL
0000572e: DUP5
0000572f: ADD
00005730: DUP7
00005731: DUP2
00005732: GT
00005733: ISZERO
00005734: PUSH2 0x573c
00005737: JUMPI
00005738: PUSH1 0x00
0000573a: DUP1
0000573b: REVERT
0000573c: JUMPDEST
0000573d: DUP5
0000573e: JUMPDEST
0000573f: DUP2
00005740: DUP2
00005741: LT
00005742: ISZERO
00005743: PUSH2 0x5825
00005746: JUMPI
00005747: PUSH1 0x01
00005749: PUSH1 0x01
0000574b: PUSH1 0x40
0000574d: SHL
0000574e: SUB
0000574f: DUP1
00005750: DUP3
00005751: CALLDATALOAD
00005752: GT
00005753: ISZERO
00005754: PUSH2 0x575c
00005757: JUMPI
00005758: PUSH1 0x00
0000575a: DUP1
0000575b: REVERT
0000575c: JUMPDEST
0000575d: DUP2
0000575e: CALLDATALOAD
0000575f: DUP8
00005760: ADD
00005761: PUSH1 0x40
00005763: DUP2
00005764: DUP12
00005765: SUB
00005766: SLT
00005767: ISZERO
00005768: PUSH2 0x5770
0000576b: JUMPI
0000576c: PUSH1 0x00
0000576e: DUP1
0000576f: REVERT
00005770: JUMPDEST
00005771: PUSH2 0x5778
00005774: PUSH2 0x4efb
00005777: JUMP
00005778: JUMPDEST
00005779: PUSH2 0x5782
0000577c: DUP3
0000577d: CALLDATALOAD
0000577e: PUSH2 0x4ea4
00005781: JUMP
00005782: JUMPDEST
00005783: DUP2
00005784: CALLDATALOAD
00005785: DUP2
00005786: MSTORE
00005787: DUP6
00005788: DUP3
00005789: ADD
0000578a: CALLDATALOAD
0000578b: DUP4
0000578c: DUP2
0000578d: GT
0000578e: ISZERO
0000578f: PUSH2 0x5797
00005792: JUMPI
00005793: PUSH1 0x00
00005795: DUP1
00005796: REVERT
00005797: JUMPDEST
00005798: DUP1
00005799: DUP4
0000579a: ADD
0000579b: SWAP3
0000579c: POP
0000579d: POP
0000579e: DUP11
0000579f: PUSH1 0x1f
000057a1: DUP4
000057a2: ADD
000057a3: SLT
000057a4: PUSH2 0x57ac
000057a7: JUMPI
000057a8: PUSH1 0x00
000057aa: DUP1
000057ab: REVERT
000057ac: JUMPDEST
000057ad: DUP2
000057ae: CALLDATALOAD
000057af: PUSH2 0x57ba
000057b2: PUSH2 0x4f99
000057b5: DUP3
000057b6: PUSH2 0x56ec
000057b9: JUMP
000057ba: JUMPDEST
000057bb: DUP2
000057bc: DUP2
000057bd: MSTORE
000057be: PUSH1 0x05
000057c0: SWAP2
000057c1: SWAP1
000057c2: SWAP2
000057c3: SHL
000057c4: DUP4
000057c5: ADD
000057c6: DUP8
000057c7: ADD
000057c8: SWAP1
000057c9: DUP8
000057ca: DUP2
000057cb: ADD
000057cc: SWAP1
000057cd: DUP14
000057ce: DUP4
000057cf: GT
000057d0: ISZERO
000057d1: PUSH2 0x57d9
000057d4: JUMPI
000057d5: PUSH1 0x00
000057d7: DUP1
000057d8: REVERT
000057d9: JUMPDEST
000057da: DUP9
000057db: DUP6
000057dc: ADD
000057dd: JUMPDEST
000057de: DUP4
000057df: DUP2
000057e0: LT
000057e1: ISZERO
000057e2: PUSH2 0x580f
000057e5: JUMPI
000057e6: DUP7
000057e7: DUP2
000057e8: CALLDATALOAD
000057e9: GT
000057ea: ISZERO
000057eb: PUSH2 0x57f3
000057ee: JUMPI
000057ef: PUSH1 0x00
000057f1: DUP1
000057f2: REVERT
000057f3: JUMPDEST
000057f4: PUSH2 0x5802
000057f7: DUP16
000057f8: DUP12
000057f9: DUP4
000057fa: CALLDATALOAD
000057fb: DUP10
000057fc: ADD
000057fd: ADD
000057fe: PUSH2 0x4f7a
00005801: JUMP
00005802: JUMPDEST
00005803: DUP4
00005804: MSTORE
00005805: SWAP2
00005806: DUP10
00005807: ADD
00005808: SWAP2
00005809: DUP10
0000580a: ADD
0000580b: PUSH2 0x57dd
0000580e: JUMP
0000580f: JUMPDEST
00005810: POP
00005811: DUP4
00005812: DUP10
00005813: ADD
00005814: MSTORE
00005815: POP
00005816: POP
00005817: DUP7
00005818: MSTORE
00005819: POP
0000581a: POP
0000581b: SWAP3
0000581c: DUP3
0000581d: ADD
0000581e: SWAP3
0000581f: DUP3
00005820: ADD
00005821: PUSH2 0x573e
00005824: JUMP
00005825: JUMPDEST
00005826: POP
00005827: POP
00005828: POP
00005829: POP
0000582a: SWAP4
0000582b: SWAP3
0000582c: POP
0000582d: POP
0000582e: POP
0000582f: JUMP
00005830: JUMPDEST
00005831: PUSH1 0x00
00005833: PUSH2 0x3a32
00005836: CALLDATASIZE
00005837: DUP5
00005838: DUP5
00005839: PUSH2 0x570f
0000583c: JUMP
0000583d: JUMPDEST
0000583e: PUSH1 0x00
00005840: PUSH1 0x01
00005842: DUP3
00005843: ADD
00005844: PUSH2 0x584f
00005847: JUMPI
00005848: PUSH2 0x584f
0000584b: PUSH2 0x569a
0000584e: JUMP
0000584f: JUMPDEST
00005850: POP
00005851: PUSH1 0x01
00005853: ADD
00005854: SWAP1
00005855: JUMP
00005856: JUMPDEST
00005857: PUSH1 0x00
00005859: DUP1
0000585a: PUSH1 0x00
0000585c: PUSH1 0x60
0000585e: DUP5
0000585f: DUP7
00005860: SUB
00005861: SLT
00005862: ISZERO
00005863: PUSH2 0x586b
00005866: JUMPI
00005867: PUSH1 0x00
00005869: DUP1
0000586a: REVERT
0000586b: JUMPDEST
0000586c: DUP4
0000586d: MLOAD
0000586e: PUSH2 0x5876
00005871: DUP2
00005872: PUSH2 0x4ea4
00005875: JUMP
00005876: JUMPDEST
00005877: PUSH1 0x20
00005879: DUP6
0000587a: ADD
0000587b: MLOAD
0000587c: SWAP1
0000587d: SWAP4
0000587e: POP
0000587f: PUSH2 0x5887
00005882: DUP2
00005883: PUSH2 0x5099
00005886: JUMP
00005887: JUMPDEST
00005888: PUSH1 0x40
0000588a: DUP6
0000588b: ADD
0000588c: MLOAD
0000588d: SWAP1
0000588e: SWAP3
0000588f: POP
00005890: PUSH1 0x01
00005892: PUSH1 0x01
00005894: PUSH1 0x40
00005896: SHL
00005897: SUB
00005898: DUP2
00005899: GT
0000589a: ISZERO
0000589b: PUSH2 0x58a3
0000589e: JUMPI
0000589f: PUSH1 0x00
000058a1: DUP1
000058a2: REVERT
000058a3: JUMPDEST
000058a4: DUP5
000058a5: ADD
000058a6: PUSH1 0x1f
000058a8: DUP2
000058a9: ADD
000058aa: DUP7
000058ab: SGT
000058ac: PUSH2 0x58b4
000058af: JUMPI
000058b0: PUSH1 0x00
000058b2: DUP1
000058b3: REVERT
000058b4: JUMPDEST
000058b5: DUP1
000058b6: MLOAD
000058b7: PUSH2 0x58c2
000058ba: PUSH2 0x4f99
000058bd: DUP3
000058be: PUSH2 0x4f53
000058c1: JUMP
000058c2: JUMPDEST
000058c3: DUP2
000058c4: DUP2
000058c5: MSTORE
000058c6: DUP8
000058c7: PUSH1 0x20
000058c9: DUP4
000058ca: DUP6
000058cb: ADD
000058cc: ADD
000058cd: GT
000058ce: ISZERO
000058cf: PUSH2 0x58d7
000058d2: JUMPI
000058d3: PUSH1 0x00
000058d5: DUP1
000058d6: REVERT
000058d7: JUMPDEST
000058d8: PUSH2 0x58e8
000058db: DUP3
000058dc: PUSH1 0x20
000058de: DUP4
000058df: ADD
000058e0: PUSH1 0x20
000058e2: DUP7
000058e3: ADD
000058e4: PUSH2 0x4df4
000058e7: JUMP
000058e8: JUMPDEST
000058e9: DUP1
000058ea: SWAP4
000058eb: POP
000058ec: POP
000058ed: POP
000058ee: POP
000058ef: SWAP3
000058f0: POP
000058f1: SWAP3
000058f2: POP
000058f3: SWAP3
000058f4: JUMP
000058f5: JUMPDEST
000058f6: PUSH1 0x1f
000058f8: DUP3
000058f9: GT
000058fa: ISZERO
000058fb: PUSH2 0x281c
000058fe: JUMPI
000058ff: PUSH1 0x00
00005901: DUP2
00005902: DUP2
00005903: MSTORE
00005904: PUSH1 0x20
00005906: DUP2
00005907: KECCAK256
00005908: PUSH1 0x1f
0000590a: DUP6
0000590b: ADD
0000590c: PUSH1 0x05
0000590e: SHR
0000590f: DUP2
00005910: ADD
00005911: PUSH1 0x20
00005913: DUP7
00005914: LT
00005915: ISZERO
00005916: PUSH2 0x591c
00005919: JUMPI
0000591a: POP
0000591b: DUP1
0000591c: JUMPDEST
0000591d: PUSH1 0x1f
0000591f: DUP6
00005920: ADD
00005921: PUSH1 0x05
00005923: SHR
00005924: DUP3
00005925: ADD
00005926: SWAP2
00005927: POP
00005928: JUMPDEST
00005929: DUP2
0000592a: DUP2
0000592b: LT
0000592c: ISZERO
0000592d: PUSH2 0x2c82
00005930: JUMPI
00005931: DUP3
00005932: DUP2
00005933: SSTORE
00005934: PUSH1 0x01
00005936: ADD
00005937: PUSH2 0x5928
0000593a: JUMP
0000593b: JUMPDEST
0000593c: DUP2
0000593d: MLOAD
0000593e: PUSH1 0x01
00005940: PUSH1 0x01
00005942: PUSH1 0x40
00005944: SHL
00005945: SUB
00005946: DUP2
00005947: GT
00005948: ISZERO
00005949: PUSH2 0x5954
0000594c: JUMPI
0000594d: PUSH2 0x5954
00005950: PUSH2 0x4ee5
00005953: JUMP
00005954: JUMPDEST
00005955: PUSH2 0x5968
00005958: DUP2
00005959: PUSH2 0x5962
0000595c: DUP5
0000595d: SLOAD
0000595e: PUSH2 0x563a
00005961: JUMP
00005962: JUMPDEST
00005963: DUP5
00005964: PUSH2 0x58f5
00005967: JUMP
00005968: JUMPDEST
00005969: PUSH1 0x20
0000596b: DUP1
0000596c: PUSH1 0x1f
0000596e: DUP4
0000596f: GT
00005970: PUSH1 0x01
00005972: DUP2
00005973: EQ
00005974: PUSH2 0x599d
00005977: JUMPI
00005978: PUSH1 0x00
0000597a: DUP5
0000597b: ISZERO
0000597c: PUSH2 0x5985
0000597f: JUMPI
00005980: POP
00005981: DUP6
00005982: DUP4
00005983: ADD
00005984: MLOAD
00005985: JUMPDEST
00005986: PUSH1 0x00
00005988: NOT
00005989: PUSH1 0x03
0000598b: DUP7
0000598c: SWAP1
0000598d: SHL
0000598e: SHR
0000598f: NOT
00005990: AND
00005991: PUSH1 0x01
00005993: DUP6
00005994: SWAP1
00005995: SHL
00005996: OR
00005997: DUP6
00005998: SSTORE
00005999: PUSH2 0x2c82
0000599c: JUMP
0000599d: JUMPDEST
0000599e: PUSH1 0x00
000059a0: DUP6
000059a1: DUP2
000059a2: MSTORE
000059a3: PUSH1 0x20
000059a5: DUP2
000059a6: KECCAK256
000059a7: PUSH1 0x1f
000059a9: NOT
000059aa: DUP7
000059ab: AND
000059ac: SWAP2
000059ad: JUMPDEST
000059ae: DUP3
000059af: DUP2
000059b0: LT
000059b1: ISZERO
000059b2: PUSH2 0x59cc
000059b5: JUMPI
000059b6: DUP9
000059b7: DUP7
000059b8: ADD
000059b9: MLOAD
000059ba: DUP3
000059bb: SSTORE
000059bc: SWAP5
000059bd: DUP5
000059be: ADD
000059bf: SWAP5
000059c0: PUSH1 0x01
000059c2: SWAP1
000059c3: SWAP2
000059c4: ADD
000059c5: SWAP1
000059c6: DUP5
000059c7: ADD
000059c8: PUSH2 0x59ad
000059cb: JUMP
000059cc: JUMPDEST
000059cd: POP
000059ce: DUP6
000059cf: DUP3
000059d0: LT
000059d1: ISZERO
000059d2: PUSH2 0x59ea
000059d5: JUMPI
000059d6: DUP8
000059d7: DUP6
000059d8: ADD
000059d9: MLOAD
000059da: PUSH1 0x00
000059dc: NOT
000059dd: PUSH1 0x03
000059df: DUP9
000059e0: SWAP1
000059e1: SHL
000059e2: PUSH1 0xf8
000059e4: AND
000059e5: SHR
000059e6: NOT
000059e7: AND
000059e8: DUP2
000059e9: SSTORE
000059ea: JUMPDEST
000059eb: POP
000059ec: POP
000059ed: POP
000059ee: POP
000059ef: POP
000059f0: PUSH1 0x01
000059f2: SWAP1
000059f3: DUP2
000059f4: SHL
000059f5: ADD
000059f6: SWAP1
000059f7: SSTORE
000059f8: POP
000059f9: JUMP
000059fa: JUMPDEST
000059fb: PUSH1 0x00
000059fd: PUSH1 0x20
000059ff: DUP3
00005a00: DUP5
00005a01: SUB
00005a02: SLT
00005a03: ISZERO
00005a04: PUSH2 0x5a0c
00005a07: JUMPI
00005a08: PUSH1 0x00
00005a0a: DUP1
00005a0b: REVERT
00005a0c: JUMPDEST
00005a0d: DUP2
00005a0e: MLOAD
00005a0f: PUSH2 0x3a32
00005a12: DUP2
00005a13: PUSH2 0x5099
00005a16: JUMP
00005a17: JUMPDEST
00005a18: PUSH1 0x00
00005a1a: DUP1
00005a1b: DUP4
00005a1c: CALLDATALOAD
00005a1d: PUSH1 0x1e
00005a1f: NOT
00005a20: DUP5
00005a21: CALLDATASIZE
00005a22: SUB
00005a23: ADD
00005a24: DUP2
00005a25: SLT
00005a26: PUSH2 0x5a2e
00005a29: JUMPI
00005a2a: PUSH1 0x00
00005a2c: DUP1
00005a2d: REVERT
00005a2e: JUMPDEST
00005a2f: DUP4
00005a30: ADD
00005a31: DUP1
00005a32: CALLDATALOAD
00005a33: SWAP2
00005a34: POP
00005a35: PUSH1 0x01
00005a37: PUSH1 0x01
00005a39: PUSH1 0x40
00005a3b: SHL
00005a3c: SUB
00005a3d: DUP3
00005a3e: GT
00005a3f: ISZERO
00005a40: PUSH2 0x5a48
00005a43: JUMPI
00005a44: PUSH1 0x00
00005a46: DUP1
00005a47: REVERT
00005a48: JUMPDEST
00005a49: PUSH1 0x20
00005a4b: ADD
00005a4c: SWAP2
00005a4d: POP
00005a4e: CALLDATASIZE
00005a4f: DUP2
00005a50: SWAP1
00005a51: SUB
00005a52: DUP3
00005a53: SGT
00005a54: ISZERO
00005a55: PUSH2 0x51b3
00005a58: JUMPI
00005a59: PUSH1 0x00
00005a5b: DUP1
00005a5c: REVERT
00005a5d: JUMPDEST
00005a5e: PUSH2 0xffff
00005a61: DUP3
00005a62: DUP2
00005a63: AND
00005a64: DUP3
00005a65: DUP3
00005a66: AND
00005a67: SUB
00005a68: SWAP1
00005a69: DUP1
00005a6a: DUP3
00005a6b: GT
00005a6c: ISZERO
00005a6d: PUSH2 0x5a78
00005a70: JUMPI
00005a71: PUSH2 0x5a78
00005a74: PUSH2 0x569a
00005a77: JUMP
00005a78: JUMPDEST
00005a79: POP
00005a7a: SWAP3
00005a7b: SWAP2
00005a7c: POP
00005a7d: POP
00005a7e: JUMP
00005a7f: JUMPDEST
00005a80: PUSH2 0xffff
00005a83: DUP2
00005a84: DUP2
00005a85: AND
00005a86: DUP4
00005a87: DUP3
00005a88: AND
00005a89: ADD
00005a8a: SWAP1
00005a8b: DUP1
00005a8c: DUP3
00005a8d: GT
00005a8e: ISZERO
00005a8f: PUSH2 0x5a78
00005a92: JUMPI
00005a93: PUSH2 0x5a78
00005a96: PUSH2 0x569a
00005a99: JUMP
00005a9a: JUMPDEST
00005a9b: PUSH1 0x00
00005a9d: PUSH1 0x20
00005a9f: DUP3
00005aa0: DUP5
00005aa1: SUB
00005aa2: SLT
00005aa3: ISZERO
00005aa4: PUSH2 0x5aac
00005aa7: JUMPI
00005aa8: PUSH1 0x00
00005aaa: DUP1
00005aab: REVERT
00005aac: JUMPDEST
00005aad: DUP2
00005aae: CALLDATALOAD
00005aaf: PUSH1 0x01
00005ab1: PUSH1 0x01
00005ab3: PUSH1 0x40
00005ab5: SHL
00005ab6: SUB
00005ab7: DUP2
00005ab8: GT
00005ab9: ISZERO
00005aba: PUSH2 0x5ac2
00005abd: JUMPI
00005abe: PUSH1 0x00
00005ac0: DUP1
00005ac1: REVERT
00005ac2: JUMPDEST
00005ac3: DUP3
00005ac4: ADD
00005ac5: PUSH1 0x1f
00005ac7: DUP2
00005ac8: ADD
00005ac9: DUP5
00005aca: SGT
00005acb: PUSH2 0x5ad3
00005ace: JUMPI
00005acf: PUSH1 0x00
00005ad1: DUP1
00005ad2: REVERT
00005ad3: JUMPDEST
00005ad4: PUSH2 0x0e85
00005ad7: DUP5
00005ad8: DUP3
00005ad9: CALLDATALOAD
00005ada: PUSH1 0x20
00005adc: DUP5
00005add: ADD
00005ade: PUSH2 0x570f
00005ae1: JUMP
00005ae2: JUMPDEST
00005ae3: PUSH1 0x00
00005ae5: PUSH1 0x20
00005ae7: DUP3
00005ae8: DUP5
00005ae9: SUB
00005aea: SLT
00005aeb: ISZERO
00005aec: PUSH2 0x5af4
00005aef: JUMPI
00005af0: PUSH1 0x00
00005af2: DUP1
00005af3: REVERT
00005af4: JUMPDEST
00005af5: DUP2
00005af6: MLOAD
00005af7: PUSH2 0x3a32
00005afa: DUP2
00005afb: PUSH2 0x5478
00005afe: JUMP
00005aff: JUMPDEST
00005b00: PUSH1 0x00
00005b02: PUSH1 0x20
00005b04: DUP3
00005b05: DUP5
00005b06: SUB
00005b07: SLT
00005b08: ISZERO
00005b09: PUSH2 0x5b11
00005b0c: JUMPI
00005b0d: PUSH1 0x00
00005b0f: DUP1
00005b10: REVERT
00005b11: JUMPDEST
00005b12: DUP2
00005b13: MLOAD
00005b14: PUSH2 0x3a32
00005b17: DUP2
00005b18: PUSH2 0x4ea4
00005b1b: JUMP
00005b1c: JUMPDEST
00005b1d: PUSH1 0x60
00005b1f: DUP2
00005b20: MSTORE
00005b21: PUSH1 0x00
00005b23: PUSH2 0x5b2f
00005b26: PUSH1 0x60
00005b28: DUP4
00005b29: ADD
00005b2a: DUP7
00005b2b: PUSH2 0x5292
00005b2e: JUMP
00005b2f: JUMPDEST
00005b30: DUP3
00005b31: DUP2
00005b32: SUB
00005b33: PUSH1 0x20
00005b35: DUP5
00005b36: ADD
00005b37: MSTORE
00005b38: PUSH2 0x5b41
00005b3b: DUP2
00005b3c: DUP7
00005b3d: PUSH2 0x52d6
00005b40: JUMP
00005b41: JUMPDEST
00005b42: SWAP2
00005b43: POP
00005b44: POP
00005b45: PUSH1 0x01
00005b47: DUP1
00005b48: PUSH1 0xa0
00005b4a: SHL
00005b4b: SUB
00005b4c: DUP4
00005b4d: AND
00005b4e: PUSH1 0x40
00005b50: DUP4
00005b51: ADD
00005b52: MSTORE
00005b53: SWAP5
00005b54: SWAP4
00005b55: POP
00005b56: POP
00005b57: POP
00005b58: POP
00005b59: JUMP
00005b5a: JUMPDEST
00005b5b: PUSH1 0x00
00005b5d: PUSH1 0x20
00005b5f: DUP3
00005b60: DUP5
00005b61: SUB
00005b62: SLT
00005b63: ISZERO
00005b64: PUSH2 0x5b6c
00005b67: JUMPI
00005b68: PUSH1 0x00
00005b6a: DUP1
00005b6b: REVERT
00005b6c: JUMPDEST
00005b6d: POP
00005b6e: MLOAD
00005b6f: SWAP2
00005b70: SWAP1
00005b71: POP
00005b72: JUMP
00005b73: JUMPDEST
00005b74: PUSH1 0xa0
00005b76: DUP2
00005b77: MSTORE
00005b78: PUSH1 0x00
00005b7a: PUSH2 0x5b86
00005b7d: PUSH1 0xa0
00005b7f: DUP4
00005b80: ADD
00005b81: DUP9
00005b82: PUSH2 0x5292
00005b85: JUMP
00005b86: JUMPDEST
00005b87: DUP3
00005b88: DUP2
00005b89: SUB
00005b8a: PUSH1 0x20
00005b8c: DUP5
00005b8d: ADD
00005b8e: MSTORE
00005b8f: PUSH2 0x5b98
00005b92: DUP2
00005b93: DUP9
00005b94: PUSH2 0x52d6
00005b97: JUMP
00005b98: JUMPDEST
00005b99: SWAP1
00005b9a: POP
00005b9b: DUP3
00005b9c: DUP2
00005b9d: SUB
00005b9e: PUSH1 0x40
00005ba0: DUP5
00005ba1: ADD
00005ba2: MSTORE
00005ba3: PUSH2 0x5bac
00005ba6: DUP2
00005ba7: DUP8
00005ba8: PUSH2 0x5292
00005bab: JUMP
00005bac: JUMPDEST
00005bad: SWAP1
00005bae: POP
00005baf: DUP3
00005bb0: DUP2
00005bb1: SUB
00005bb2: PUSH1 0x60
00005bb4: DUP5
00005bb5: ADD
00005bb6: MSTORE
00005bb7: PUSH2 0x5bc0
00005bba: DUP2
00005bbb: DUP7
00005bbc: PUSH2 0x52d6
00005bbf: JUMP
00005bc0: JUMPDEST
00005bc1: SWAP2
00005bc2: POP
00005bc3: POP
00005bc4: PUSH1 0x01
00005bc6: DUP1
00005bc7: PUSH1 0xa0
00005bc9: SHL
00005bca: SUB
00005bcb: DUP4
00005bcc: AND
00005bcd: PUSH1 0x80
00005bcf: DUP4
00005bd0: ADD
00005bd1: MSTORE
00005bd2: SWAP7
00005bd3: SWAP6
00005bd4: POP
00005bd5: POP
00005bd6: POP
00005bd7: POP
00005bd8: POP
00005bd9: POP
00005bda: JUMP
00005bdb: JUMPDEST
00005bdc: PUSH1 0x00
00005bde: DUP2
00005bdf: SLOAD
00005be0: PUSH2 0x5be8
00005be3: DUP2
00005be4: PUSH2 0x563a
00005be7: JUMP
00005be8: JUMPDEST
00005be9: DUP1
00005bea: DUP6
00005beb: MSTORE
00005bec: PUSH1 0x20
00005bee: PUSH1 0x01
00005bf0: DUP4
00005bf1: DUP2
00005bf2: AND
00005bf3: DUP1
00005bf4: ISZERO
00005bf5: PUSH2 0x5c05
00005bf8: JUMPI
00005bf9: PUSH1 0x01
00005bfb: DUP2
00005bfc: EQ
00005bfd: PUSH2 0x5c1f
00005c00: JUMPI
00005c01: PUSH2 0x5c4d
00005c04: JUMP
00005c05: JUMPDEST
00005c06: PUSH1 0xff
00005c08: NOT
00005c09: DUP6
00005c0a: AND
00005c0b: DUP9
00005c0c: DUP5
00005c0d: ADD
00005c0e: MSTORE
00005c0f: DUP4
00005c10: ISZERO
00005c11: ISZERO
00005c12: PUSH1 0x05
00005c14: SHL
00005c15: DUP9
00005c16: ADD
00005c17: DUP4
00005c18: ADD
00005c19: SWAP6
00005c1a: POP
00005c1b: PUSH2 0x5c4d
00005c1e: JUMP
00005c1f: JUMPDEST
00005c20: DUP7
00005c21: PUSH1 0x00
00005c23: MSTORE
00005c24: DUP3
00005c25: PUSH1 0x00
00005c27: KECCAK256
00005c28: PUSH1 0x00
00005c2a: JUMPDEST
00005c2b: DUP6
00005c2c: DUP2
00005c2d: LT
00005c2e: ISZERO
00005c2f: PUSH2 0x5c45
00005c32: JUMPI
00005c33: DUP2
00005c34: SLOAD
00005c35: DUP11
00005c36: DUP3
00005c37: ADD
00005c38: DUP7
00005c39: ADD
00005c3a: MSTORE
00005c3b: SWAP1
00005c3c: DUP4
00005c3d: ADD
00005c3e: SWAP1
00005c3f: DUP5
00005c40: ADD
00005c41: PUSH2 0x5c2a
00005c44: JUMP
00005c45: JUMPDEST
00005c46: DUP10
00005c47: ADD
00005c48: DUP5
00005c49: ADD
00005c4a: SWAP7
00005c4b: POP
00005c4c: POP
00005c4d: JUMPDEST
00005c4e: POP
00005c4f: POP
00005c50: POP
00005c51: POP
00005c52: POP
00005c53: SWAP3
00005c54: SWAP2
00005c55: POP
00005c56: POP
00005c57: JUMP
00005c58: JUMPDEST
00005c59: PUSH1 0x20
00005c5b: DUP2
00005c5c: MSTORE
00005c5d: PUSH1 0x00
00005c5f: PUSH2 0x3a32
00005c62: PUSH1 0x20
00005c64: DUP4
00005c65: ADD
00005c66: DUP5
00005c67: PUSH2 0x5bdb
00005c6a: JUMP
00005c6b: JUMPDEST
00005c6c: PUSH1 0x00
00005c6e: DUP1
00005c6f: PUSH1 0x00
00005c71: PUSH1 0x60
00005c73: DUP5
00005c74: DUP7
00005c75: SUB
00005c76: SLT
00005c77: ISZERO
00005c78: PUSH2 0x5c80
00005c7b: JUMPI
00005c7c: PUSH1 0x00
00005c7e: DUP1
00005c7f: REVERT
00005c80: JUMPDEST
00005c81: DUP4
00005c82: MLOAD
00005c83: SWAP3
00005c84: POP
00005c85: PUSH1 0x20
00005c87: DUP5
00005c88: ADD
00005c89: MLOAD
00005c8a: SWAP2
00005c8b: POP
00005c8c: PUSH1 0x40
00005c8e: DUP5
00005c8f: ADD
00005c90: MLOAD
00005c91: PUSH2 0x511a
00005c94: DUP2
00005c95: PUSH2 0x5099
00005c98: JUMP
00005c99: JUMPDEST
00005c9a: PUSH1 0x01
00005c9c: DUP2
00005c9d: DUP2
00005c9e: JUMPDEST
00005c9f: DUP1
00005ca0: DUP6
00005ca1: GT
00005ca2: ISZERO
00005ca3: PUSH2 0x5cd4
00005ca6: JUMPI
00005ca7: DUP2
00005ca8: PUSH1 0x00
00005caa: NOT
00005cab: DIV
00005cac: DUP3
00005cad: GT
00005cae: ISZERO
00005caf: PUSH2 0x5cba
00005cb2: JUMPI
00005cb3: PUSH2 0x5cba
00005cb6: PUSH2 0x569a
00005cb9: JUMP
00005cba: JUMPDEST
00005cbb: DUP1
00005cbc: DUP6
00005cbd: AND
00005cbe: ISZERO
00005cbf: PUSH2 0x5cc7
00005cc2: JUMPI
00005cc3: SWAP2
00005cc4: DUP2
00005cc5: MUL
00005cc6: SWAP2
00005cc7: JUMPDEST
00005cc8: SWAP4
00005cc9: DUP5
00005cca: SHR
00005ccb: SWAP4
00005ccc: SWAP1
00005ccd: DUP1
00005cce: MUL
00005ccf: SWAP1
00005cd0: PUSH2 0x5c9e
00005cd3: JUMP
00005cd4: JUMPDEST
00005cd5: POP
00005cd6: SWAP3
00005cd7: POP
00005cd8: SWAP3
00005cd9: SWAP1
00005cda: POP
00005cdb: JUMP
00005cdc: JUMPDEST
00005cdd: PUSH1 0x00
00005cdf: DUP3
00005ce0: PUSH2 0x5ceb
00005ce3: JUMPI
00005ce4: POP
00005ce5: PUSH1 0x01
00005ce7: PUSH2 0x0ef4
00005cea: JUMP
00005ceb: JUMPDEST
00005cec: DUP2
00005ced: PUSH2 0x5cf8
00005cf0: JUMPI
00005cf1: POP
00005cf2: PUSH1 0x00
00005cf4: PUSH2 0x0ef4
00005cf7: JUMP
00005cf8: JUMPDEST
00005cf9: DUP2
00005cfa: PUSH1 0x01
00005cfc: DUP2
00005cfd: EQ
00005cfe: PUSH2 0x5d0e
00005d01: JUMPI
00005d02: PUSH1 0x02
00005d04: DUP2
00005d05: EQ
00005d06: PUSH2 0x5d18
00005d09: JUMPI
00005d0a: PUSH2 0x5d34
00005d0d: JUMP
00005d0e: JUMPDEST
00005d0f: PUSH1 0x01
00005d11: SWAP2
00005d12: POP
00005d13: POP
00005d14: PUSH2 0x0ef4
00005d17: JUMP
00005d18: JUMPDEST
00005d19: PUSH1 0xff
00005d1b: DUP5
00005d1c: GT
00005d1d: ISZERO
00005d1e: PUSH2 0x5d29
00005d21: JUMPI
00005d22: PUSH2 0x5d29
00005d25: PUSH2 0x569a
00005d28: JUMP
00005d29: JUMPDEST
00005d2a: POP
00005d2b: POP
00005d2c: PUSH1 0x01
00005d2e: DUP3
00005d2f: SHL
00005d30: PUSH2 0x0ef4
00005d33: JUMP
00005d34: JUMPDEST
00005d35: POP
00005d36: PUSH1 0x20
00005d38: DUP4
00005d39: LT
00005d3a: PUSH2 0x0133
00005d3d: DUP4
00005d3e: LT
00005d3f: AND
00005d40: PUSH1 0x4e
00005d42: DUP5
00005d43: LT
00005d44: PUSH1 0x0b
00005d46: DUP5
00005d47: LT
00005d48: AND
00005d49: OR
00005d4a: ISZERO
00005d4b: PUSH2 0x5d57
00005d4e: JUMPI
00005d4f: POP
00005d50: DUP2
00005d51: DUP2
00005d52: EXP
00005d53: PUSH2 0x0ef4
00005d56: JUMP
00005d57: JUMPDEST
00005d58: PUSH2 0x5d61
00005d5b: DUP4
00005d5c: DUP4
00005d5d: PUSH2 0x5c99
00005d60: JUMP
00005d61: JUMPDEST
00005d62: DUP1
00005d63: PUSH1 0x00
00005d65: NOT
00005d66: DIV
00005d67: DUP3
00005d68: GT
00005d69: ISZERO
00005d6a: PUSH2 0x5d75
00005d6d: JUMPI
00005d6e: PUSH2 0x5d75
00005d71: PUSH2 0x569a
00005d74: JUMP
00005d75: JUMPDEST
00005d76: MUL
00005d77: SWAP4
00005d78: SWAP3
00005d79: POP
00005d7a: POP
00005d7b: POP
00005d7c: JUMP
00005d7d: JUMPDEST
00005d7e: PUSH1 0x00
00005d80: PUSH2 0x3a32
00005d83: PUSH1 0xff
00005d85: DUP5
00005d86: AND
00005d87: DUP4
00005d88: PUSH2 0x5cdc
00005d8b: JUMP
00005d8c: JUMPDEST
00005d8d: PUSH1 0x00
00005d8f: DUP1
00005d90: DUP4
00005d91: SLOAD
00005d92: PUSH2 0x5d9a
00005d95: DUP2
00005d96: PUSH2 0x563a
00005d99: JUMP
00005d9a: JUMPDEST
00005d9b: PUSH1 0x01
00005d9d: DUP3
00005d9e: DUP2
00005d9f: AND
00005da0: DUP1
00005da1: ISZERO
00005da2: PUSH2 0x5db2
00005da5: JUMPI
00005da6: PUSH1 0x01
00005da8: DUP2
00005da9: EQ
00005daa: PUSH2 0x5dc7
00005dad: JUMPI
00005dae: PUSH2 0x5df6
00005db1: JUMP
00005db2: JUMPDEST
00005db3: PUSH1 0xff
00005db5: NOT
00005db6: DUP5
00005db7: AND
00005db8: DUP8
00005db9: MSTORE
00005dba: DUP3
00005dbb: ISZERO
00005dbc: ISZERO
00005dbd: DUP4
00005dbe: MUL
00005dbf: DUP8
00005dc0: ADD
00005dc1: SWAP5
00005dc2: POP
00005dc3: PUSH2 0x5df6
00005dc6: JUMP
00005dc7: JUMPDEST
00005dc8: DUP8
00005dc9: PUSH1 0x00
00005dcb: MSTORE
00005dcc: PUSH1 0x20
00005dce: DUP1
00005dcf: PUSH1 0x00
00005dd1: KECCAK256
00005dd2: PUSH1 0x00
00005dd4: JUMPDEST
00005dd5: DUP6
00005dd6: DUP2
00005dd7: LT
00005dd8: ISZERO
00005dd9: PUSH2 0x5ded
00005ddc: JUMPI
00005ddd: DUP2
00005dde: SLOAD
00005ddf: DUP11
00005de0: DUP3
00005de1: ADD
00005de2: MSTORE
00005de3: SWAP1
00005de4: DUP5
00005de5: ADD
00005de6: SWAP1
00005de7: DUP3
00005de8: ADD
00005de9: PUSH2 0x5dd4
00005dec: JUMP
00005ded: JUMPDEST
00005dee: POP
00005def: POP
00005df0: POP
00005df1: DUP3
00005df2: DUP8
00005df3: ADD
00005df4: SWAP5
00005df5: POP
00005df6: JUMPDEST
00005df7: POP
00005df8: SWAP3
00005df9: SWAP7
00005dfa: SWAP6
00005dfb: POP
00005dfc: POP
00005dfd: POP
00005dfe: POP
00005dff: POP
00005e00: POP
00005e01: JUMP
00005e02: JUMPDEST
00005e03: PUSH1 0x01
00005e05: PUSH1 0x01
00005e07: PUSH1 0xa0
00005e09: SHL
00005e0a: SUB
00005e0b: DUP4
00005e0c: AND
00005e0d: DUP2
00005e0e: MSTORE
00005e0f: PUSH1 0x40
00005e11: PUSH1 0x20
00005e13: DUP3
00005e14: ADD
00005e15: DUP2
00005e16: SWAP1
00005e17: MSTORE
00005e18: PUSH1 0x00
00005e1a: SWAP1
00005e1b: PUSH2 0x0e85
00005e1e: SWAP1
00005e1f: DUP4
00005e20: ADD
00005e21: DUP5
00005e22: PUSH2 0x4e18
00005e25: JUMP
00005e26: JUMPDEST
00005e27: PUSH1 0x00
00005e29: DUP2
00005e2a: PUSH2 0x5e35
00005e2d: JUMPI
00005e2e: PUSH2 0x5e35
00005e31: PUSH2 0x569a
00005e34: JUMP
00005e35: JUMPDEST
00005e36: POP
00005e37: PUSH1 0x00
00005e39: NOT
00005e3a: ADD
00005e3b: SWAP1
00005e3c: JUMP
00005e3d: JUMPDEST
00005e3e: PUSH1 0x40
00005e40: DUP2
00005e41: MSTORE
00005e42: PUSH1 0x00
00005e44: PUSH2 0x5e50
00005e47: PUSH1 0x40
00005e49: DUP4
00005e4a: ADD
00005e4b: DUP6
00005e4c: PUSH2 0x5bdb
00005e4f: JUMP
00005e50: JUMPDEST
00005e51: DUP3
00005e52: DUP2
00005e53: SUB
00005e54: PUSH1 0x20
00005e56: DUP5
00005e57: ADD
00005e58: MSTORE
00005e59: PUSH2 0x5e62
00005e5c: DUP2
00005e5d: DUP6
00005e5e: PUSH2 0x5bdb
00005e61: JUMP
00005e62: JUMPDEST
00005e63: SWAP6
00005e64: SWAP5
00005e65: POP
00005e66: POP
00005e67: POP
00005e68: POP
00005e69: POP
00005e6a: JUMP
00005e6b: JUMPDEST
00005e6c: PUSH4 0x4e487b71
00005e71: PUSH1 0xe0
00005e73: SHL
00005e74: PUSH1 0x00
00005e76: MSTORE
00005e77: PUSH1 0x31
00005e79: PUSH1 0x04
00005e7b: MSTORE
00005e7c: PUSH1 0x24
00005e7e: PUSH1 0x00
00005e80: REVERT
00005e81: JUMPDEST
00005e82: PUSH1 0x00
00005e84: DUP3
00005e85: MLOAD
00005e86: PUSH2 0x5e93
00005e89: DUP2
00005e8a: DUP5
00005e8b: PUSH1 0x20
00005e8d: DUP8
00005e8e: ADD
00005e8f: PUSH2 0x4df4
00005e92: JUMP
00005e93: JUMPDEST
00005e94: SWAP2
00005e95: SWAP1
00005e96: SWAP2
00005e97: ADD
00005e98: SWAP3
00005e99: SWAP2
00005e9a: POP
00005e9b: POP
00005e9c: JUMP
00005e9d: JUMPDEST
00005e9e: DUP1
00005e9f: DUP3
00005ea0: MUL
00005ea1: DUP2
00005ea2: ISZERO
00005ea3: DUP3
00005ea4: DUP3
00005ea5: DIV
00005ea6: DUP5
00005ea7: EQ
00005ea8: OR
00005ea9: PUSH2 0x0ef4
00005eac: JUMPI
00005ead: PUSH2 0x0ef4
00005eb0: PUSH2 0x569a
00005eb3: JUMP
00005eb4: JUMPDEST
00005eb5: PUSH1 0x00
00005eb7: DUP3
00005eb8: PUSH2 0x5ed1
00005ebb: JUMPI
00005ebc: PUSH4 0x4e487b71
00005ec1: PUSH1 0xe0
00005ec3: SHL
00005ec4: PUSH1 0x00
00005ec6: MSTORE
00005ec7: PUSH1 0x12
00005ec9: PUSH1 0x04
00005ecb: MSTORE
00005ecc: PUSH1 0x24
00005ece: PUSH1 0x00
00005ed0: REVERT
00005ed1: JUMPDEST
00005ed2: POP
00005ed3: DIV
00005ed4: SWAP1
00005ed5: JUMP
00005ed6: JUMPDEST
00005ed7: DUP4
00005ed8: DUP2
00005ed9: MSTORE
00005eda: PUSH1 0x60
00005edc: PUSH1 0x20
00005ede: DUP3
00005edf: ADD
00005ee0: MSTORE
00005ee1: PUSH1 0x00
00005ee3: PUSH2 0x5eef
00005ee6: PUSH1 0x60
00005ee8: DUP4
00005ee9: ADD
00005eea: DUP6
00005eeb: PUSH2 0x5bdb
00005eee: JUMP
00005eef: JUMPDEST
00005ef0: DUP3
00005ef1: DUP2
00005ef2: SUB
00005ef3: PUSH1 0x40
00005ef5: DUP5
00005ef6: ADD
00005ef7: MSTORE
00005ef8: PUSH2 0x16be
00005efb: DUP2
00005efc: DUP6
00005efd: PUSH2 0x5bdb
00005f00: JUMP
00005f01: JUMPDEST
00005f02: DUP5
00005f03: DUP2
00005f04: MSTORE
00005f05: PUSH1 0x01
00005f07: PUSH1 0x01
00005f09: PUSH1 0xa0
00005f0b: SHL
00005f0c: SUB
00005f0d: DUP5
00005f0e: AND
00005f0f: PUSH1 0x20
00005f11: DUP3
00005f12: ADD
00005f13: MSTORE
00005f14: PUSH1 0x80
00005f16: PUSH1 0x40
00005f18: DUP3
00005f19: ADD
00005f1a: DUP2
00005f1b: SWAP1
00005f1c: MSTORE
00005f1d: PUSH1 0x00
00005f1f: SWAP1
00005f20: PUSH2 0x5f2b
00005f23: SWAP1
00005f24: DUP4
00005f25: ADD
00005f26: DUP6
00005f27: PUSH2 0x5bdb
00005f2a: JUMP
00005f2b: JUMPDEST
00005f2c: DUP3
00005f2d: DUP2
00005f2e: SUB
00005f2f: PUSH1 0x60
00005f31: DUP5
00005f32: ADD
00005f33: MSTORE
00005f34: PUSH2 0x5287
00005f37: DUP2
00005f38: DUP6
00005f39: PUSH2 0x5bdb
00005f3c: JUMP
00005f3d: INVALID
00005f3e: COINBASE
00005f3f: PUSH5 0x6472657373
00005f45: GASPRICE
00005f46: KECCAK256
00005f47: PUSH13 0x6f772d6c6576656c2064656c65
00005f55: PUSH8 0x6174652063616c6c
00005f5e: KECCAK256
00005f5f: PUSH7 0x61696c6564ddf2
00005f67: MSTORE
00005f68: UNKNOWN(0xAD)
00005f69: SHL
00005f6a: UNKNOWN(0xE2)
00005f6b: UNKNOWN(0xC8)
00005f6c: SWAP12
00005f6d: PUSH10 0xc2b068fc378daa952ba7
00005f78: CALL
00005f79: PUSH4 0xc4a11628
00005f7e: CREATE2
00005f7f: GAS
00005f80: UNKNOWN(0x4D)
00005f81: CREATE2
00005f82: UNKNOWN(0x23)
00005f83: UNKNOWN(0xB3)
00005f84: UNKNOWN(0xEF)
00005f85: LOG2
00005f86: PUSH5 0x6970667358
00005f8c: UNKNOWN(0x22)
00005f8d: SLT
00005f8e: KECCAK256
00005f8f: CREATE2
00005f90: EXP
00005f91: CALL
00005f92: JUMPI
00005f93: CALLDATACOPY
00005f94: UNKNOWN(0x2E)
00005f95: UNKNOWN(0xC5)
00005f96: SWAP8
00005f97: DUP3
00005f98: PUSH6 0xc80cd860f5c6
00005f9f: PUSH27

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
critical upgradeability detector Untrusted DELEGATECALL target reachable 70 yes yes
view
trace_id: 0x5b96ca9945f4da7cbe444e9253ecce6ecbd15553dc8bfa2f8f8000cb4095e584
call_targets: 0x02d84abd89ee9db409572f19b6e1596c301f3c81, 0x25ed699a052b820d772765e26ed4dd9f0a26f3e5, 0x2b33cf282f867a7ff693a66e11b0fcc5552e4425, 0x541dcd3f00bcd1a683cc73e1b2a8693b602201f4, 0x6ca84080381e43938476814be61b779a8bb6a600, 0x80d786df608603ccdcc83f5712b97c185a6a948d, 0x8147b99df7672a21809c9093e6f6ce1a60f119bd, 0xadc45df3cf1584624c97338bef33363bf5b97ada, 0xc313a383d1838dcda96f4c97698238f0a5499ea4, 0xf835456cb1de3e39ab50a8a9fbb07ebec3a8ff67, 0xfbc7693f114273739c74a3ff028c13769c49f2d0
target_varies: yes
classification: target_varies
validation_json
{
    "sink": "DELEGATECALL",
    "errors": 0,
    "status": "confirmed",
    "attempts": 86,
    "trace_id": "0x5b96ca9945f4da7cbe444e9253ecce6ecbd15553dc8bfa2f8f8000cb4095e584",
    "confirmed": true,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x02d84abd89ee9db409572f19b6e1596c301f3c81",
        "0x25ed699a052b820d772765e26ed4dd9f0a26f3e5",
        "0x2b33cf282f867a7ff693a66e11b0fcc5552e4425",
        "0x541dcd3f00bcd1a683cc73e1b2a8693b602201f4",
        "0x6ca84080381e43938476814be61b779a8bb6a600",
        "0x80d786df608603ccdcc83f5712b97c185a6a948d",
        "0x8147b99df7672a21809c9093e6f6ce1a60f119bd",
        "0xadc45df3cf1584624c97338bef33363bf5b97ada",
        "0xc313a383d1838dcda96f4c97698238f0a5499ea4",
        "0xf835456cb1de3e39ab50a8a9fbb07ebec3a8ff67",
        "0xfbc7693f114273739c74a3ff028c13769c49f2d0"
    ],
    "matched_probe": null,
    "target_varies": true,
    "classification": "target_varies"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xeef33eca",
            "selector": "0xeef33eca",
            "calldata_variants": [
                "0xeef33eca",
                "0xeef33eca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf04f2707",
            "selector": "0xf04f2707",
            "calldata_variants": [
                "0xf04f2707",
                "0xf04f27070000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5743bc9",
            "selector": "0xf5743bc9",
            "calldata_variants": [
                "0xf5743bc9",
                "0xf5743bc90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7b24e08",
            "selector": "0xf7b24e08",
            "calldata_variants": [
                "0xf7b24e08",
                "0xf7b24e080000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7d4bf45",
            "selector": "0xd7d4bf45",
            "calldata_variants": [
                "0xd7d4bf45",
                "0xd7d4bf450000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd905777e",
            "selector": "0xd905777e",
            "calldata_variants": [
                "0xd905777e",
                "0xd905777e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 18438,
            "opcode": "DELEGATECALL",
            "returndata_checked": null,
            "value_expression_category": "n/a",
            "target_expression_category": "computed"
        }
    ],
    "guards_detected": [],
    "delegatecall_count": 1,
    "untrusted_delegatecall_count": 1
}
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x66382fdff0ee1ffc701c29ed7915cff119a9667c624fc6f25db04e996d5cac59
call_targets: 0xfd6db5011b171b05e1ea3b92f9eacaeeb055e971
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x66382fdff0ee1ffc701c29ed7915cff119a9667c624fc6f25db04e996d5cac59",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xfd6db5011b171b05e1ea3b92f9eacaeeb055e971"
    ],
    "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": "0xeef33eca",
            "selector": "0xeef33eca",
            "calldata_variants": [
                "0xeef33eca",
                "0xeef33eca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf04f2707",
            "selector": "0xf04f2707",
            "calldata_variants": [
                "0xf04f2707",
                "0xf04f27070000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5743bc9",
            "selector": "0xf5743bc9",
            "calldata_variants": [
                "0xf5743bc9",
                "0xf5743bc90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7b24e08",
            "selector": "0xf7b24e08",
            "calldata_variants": [
                "0xf7b24e08",
                "0xf7b24e080000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7d4bf45",
            "selector": "0xd7d4bf45",
            "calldata_variants": [
                "0xd7d4bf45",
                "0xd7d4bf450000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd905777e",
            "selector": "0xd905777e",
            "calldata_variants": [
                "0xd905777e",
                "0xd905777e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 17535,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 18188,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 24440,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 4,
    "guards_detected": [],
    "untrusted_call_count": 4
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x66382fdff0ee1ffc701c29ed7915cff119a9667c624fc6f25db04e996d5cac59
call_targets: 0xfd6db5011b171b05e1ea3b92f9eacaeeb055e971
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x66382fdff0ee1ffc701c29ed7915cff119a9667c624fc6f25db04e996d5cac59",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xfd6db5011b171b05e1ea3b92f9eacaeeb055e971"
    ],
    "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": "0xeef33eca",
            "selector": "0xeef33eca",
            "calldata_variants": [
                "0xeef33eca",
                "0xeef33eca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf04f2707",
            "selector": "0xf04f2707",
            "calldata_variants": [
                "0xf04f2707",
                "0xf04f27070000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5743bc9",
            "selector": "0xf5743bc9",
            "calldata_variants": [
                "0xf5743bc9",
                "0xf5743bc90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7b24e08",
            "selector": "0xf7b24e08",
            "calldata_variants": [
                "0xf7b24e08",
                "0xf7b24e080000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7d4bf45",
            "selector": "0xd7d4bf45",
            "calldata_variants": [
                "0xd7d4bf45",
                "0xd7d4bf450000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd905777e",
            "selector": "0xd905777e",
            "calldata_variants": [
                "0xd905777e",
                "0xd905777e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 17535,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 18188,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 24440,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 4,
    "guards_detected": []
}
medium other detector CREATE/CREATE2 reachable 45 no no
view
trace_id: 0xd6f3a553d4d38c2a7043e9c505f5c53d18422faa8a00cfee2e5b7c4c7cc49a1b
validation_json
{
    "sink": "CREATE",
    "errors": 0,
    "status": "unknown",
    "attempts": 32,
    "trace_id": "0xd6f3a553d4d38c2a7043e9c505f5c53d18422faa8a00cfee2e5b7c4c7cc49a1b",
    "confirmed": false,
    "trace_mode": "structLogs",
    "call_targets": null,
    "matched_probe": null,
    "target_varies": null,
    "classification": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xeef33eca",
            "selector": "0xeef33eca",
            "calldata_variants": [
                "0xeef33eca",
                "0xeef33eca0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xef8b30f7",
            "selector": "0xef8b30f7",
            "calldata_variants": [
                "0xef8b30f7",
                "0xef8b30f70000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf04f2707",
            "selector": "0xf04f2707",
            "calldata_variants": [
                "0xf04f2707",
                "0xf04f27070000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf5743bc9",
            "selector": "0xf5743bc9",
            "calldata_variants": [
                "0xf5743bc9",
                "0xf5743bc90000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf7b24e08",
            "selector": "0xf7b24e08",
            "calldata_variants": [
                "0xf7b24e08",
                "0xf7b24e080000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd7d4bf45",
            "selector": "0xd7d4bf45",
            "calldata_variants": [
                "0xd7d4bf45",
                "0xd7d4bf450000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd905777e",
            "selector": "0xd905777e",
            "calldata_variants": [
                "0xd905777e",
                "0xd905777e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "create_count": 0,
    "create2_count": 3
}
medium math codex Debt > credit underflow can brick totalAssets and withdrawals 75 no
view
evidence_json
{
    "evidence": "`PriceRouter.getValuesDelta` returns `value0 - value1` without guarding against underflow; `Cellar._calculateTotalAssetsOrTotalAssetsWithdrawable` uses it to compute total assets.",
    "locations": [
        "contracts/src/modules/price-router/PriceRouter.sol:424",
        "contracts/src/modules/price-router/PriceRouter.sol:431",
        "contracts/src/base/Cellar.sol:966",
        "contracts/src/base/Cellar.sol:997"
    ],
    "recommendation": "Handle negative net value explicitly instead of unchecked subtraction. Use signed math or clamp at zero (e.g., return 0 if debt > credit), or add a controlled insolvency path that still allows withdrawals rather than reverting all accounting.",
    "exploit_scenario": "If a debt position\u2019s priced value exceeds credit positions (e.g., due to oracle manipulation or rapid market moves), `getValuesDelta` underflows and reverts. Because `Cellar` relies on this for `totalAssets`, deposits/withdrawals and rebalances that call `totalAssets` or `_getTotalAssetsAndTotalSupply` will revert, freezing user exits until prices normalize."
}
medium upgradeability cast DELEGATECALL present 80 no
view
evidence_json
{
    "notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
    "delegatecall_count": 1
}
low oracle codex Chainlink answeredInRound not checked in price fetch 65 no
view
evidence_json
{
    "evidence": "`_getPriceForChainlinkDerivative` only uses `(, _price, , _timestamp, ) = latestRoundData()` and ignores `answeredInRound`/`roundId`.",
    "locations": [
        "contracts/src/modules/price-router/PriceRouter.sol:691",
        "contracts/src/modules/price-router/PriceRouter.sol:694"
    ],
    "recommendation": "Read `roundId` and `answeredInRound` from `latestRoundData` and require `answeredInRound >= roundId` and `updatedAt != 0` before accepting the price.",
    "exploit_scenario": "If a Chainlink feed starts a new round but hasn\u2019t answered yet, `latestRoundData` can return the previous round\u2019s answer with `answeredInRound < roundId`. Because this check is omitted, the contract may accept stale prices as long as `updatedAt` is within the heartbeat, allowing users to act on outdated pricing during volatility."
}
low other cast Contract creation opcode present 60 no
view
evidence_json
{
    "notes": "runtime can deploy contracts dynamically via CREATE/CREATE2",
    "create_count": 0,
    "create2_count": 3
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 23
}