019c0ea9-71ec-7140-b362-268cfeffbc7f
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 42201 | artifact.fetch | complete | 1 / 3 | 2 months ago |
| 42202 | proxy.resolve | complete | 1 / 3 | 2 months ago |
| 42203 | tool.cast_disasm | complete | 1 / 3 | 2 months ago |
| 42204 | analysis.bundle | complete | 1 / 3 | 2 months ago |
| 42205 | capability.graph | complete | 1 / 3 | 2 months ago |
| 42206 | detector.run | complete | 1 / 3 | 2 months ago |
| 42207 | validation.fork | complete | 1 / 3 | 2 months ago |
| 42479 | report.consolidate | complete | 1 / 6 | 2 months ago |
| 42480 | tool.slither | complete | 1 / 2 | 2 months ago |
{
"status": "not_proxy"
}
'forge clean' running (wd: /tmp/slither-zj237ijd)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-zj237ijd)
TaskTreasuryUpgradable._creditUser(address,address,uint256,uint256) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#259-285) uses a dangerous strict equality:
- sharesTotal == 0 (contracts/taskTreasury/TaskTreasuryUpgradable.sol#273)
TaskTreasuryUpgradable._deductUser(address,address,uint256) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#287-312) uses a dangerous strict equality:
- sharesOfUser == sharesToCharge (contracts/taskTreasury/TaskTreasuryUpgradable.sol#311)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities
TaskTreasuryUpgradable.getTotalCreditTokensByUser(address).tokensInOldOnlyLength (contracts/taskTreasury/TaskTreasuryUpgradable.sol#201) is a local variable never initialized
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#uninitialized-local-variables
TaskTreasuryUpgradable.updateWhitelistedService(address,bool) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#107-119) ignores return value by _whitelistedServices.add(_service) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#113)
TaskTreasuryUpgradable.updateWhitelistedService(address,bool) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#107-119) ignores return value by _whitelistedServices.remove(_service) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#115)
TaskTreasuryUpgradable._creditUser(address,address,uint256,uint256) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#259-285) ignores return value by _tokens[_user].add(_token) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#284)
TaskTreasuryUpgradable._deductUser(address,address,uint256) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#287-312) ignores return value by _tokens[_user].remove(_token) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#311)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-return
Reentrancy in TaskTreasuryUpgradable.depositFunds(address,address,uint256) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#136-161):
External calls:
- token.safeTransferFrom(msg.sender,address(this),_amount) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#150)
State variables written after the call(s):
- _creditUser(_receiver,_token,depositAmount,totalBalance) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#158)
- shares[_user][_token] += sharesToCredit (contracts/taskTreasury/TaskTreasuryUpgradable.sol#281)
- _creditUser(_receiver,_token,depositAmount,totalBalance) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#158)
- totalShares[_token] = sharesTotal + sharesToCredit (contracts/taskTreasury/TaskTreasuryUpgradable.sol#282)
Reentrancy in TaskTreasuryUpgradable.useFunds(address,address,uint256) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#74-94):
External calls:
- oldTreasury.useFunds(_token,balanceInOld,_user) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#88)
State variables written after the call(s):
- _pay(_user,_token,_amount - balanceInOld) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#90)
- shares[_user][_token] -= sharesToPay (contracts/taskTreasury/TaskTreasuryUpgradable.sol#334)
- shares[admin][_token] += sharesToPay (contracts/taskTreasury/TaskTreasuryUpgradable.sol#335)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2
Reentrancy in TaskTreasuryUpgradable.useFunds(address,address,uint256) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#74-94):
External calls:
- oldTreasury.useFunds(_token,_amount,_user) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#85)
- oldTreasury.useFunds(_token,balanceInOld,_user) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#88)
Event emitted after the call(s):
- LogDeductFees(_user,tx.origin,_token,_amount,msg.sender) (contracts/taskTreasury/TaskTreasuryUpgradable.sol#93)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-3
Address.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts/utils/Address.sol#201-221) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/Address.sol#213-216)
EnumerableSet.values(EnumerableSet.AddressSet) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#274-283) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#278-280)
EnumerableSet.values(EnumerableSet.UintSet) (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#347-356) uses assembly
- INLINE ASM (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#351-353)
AddressUpgradeable.isContract(address) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#27-37) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#33-35)
AddressUpgradeable.verifyCallResult(bool,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#169-189) uses assembly
- INLINE ASM (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#181-184)
Proxied._proxyAdmin() (contracts/vendor/proxy/EIP173/Proxied.sol#36-43) uses assembly
- INLINE ASM (contracts/vendor/proxy/EIP173/Proxied.sol#38-42)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage
3 different versions of Solidity are used:
- Version constraint ^0.8.0 is used by:
-^0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#4)
-^0.8.0 (@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#4)
-^0.8.0 (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#4)
-^0.8.0 (@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#4)
-^0.8.0 (@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#4)
-^0.8.0 (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#4)
-^0.8.0 (contracts/interfaces/IERC20Extended.sol#4)
-^0.8.0 (contracts/interfaces/ITaskTreasury.sol#2)
-^0.8.0 (contracts/interfaces/ITaskTreasuryUpgradable.sol#2)
- Version constraint ^0.8.1 is used by:
-^0.8.1 (@openzeppelin/contracts/utils/Address.sol#4)
- Version constraint ^0.8.12 is used by:
-^0.8.12 (contracts/functions/FUtils.sol#2)
-^0.8.12 (contracts/libraries/LibShares.sol#2)
-^0.8.12 (contracts/taskTreasury/TaskTreasuryUpgradable.sol#2)
-^0.8.12 (contracts/vendor/proxy/EIP173/Proxied.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used
Version constraint ^0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching.
It is used by:
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#4)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol#4)
- ^0.8.0 (@openzeppelin/contracts/utils/structs/EnumerableSet.sol#4)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#4)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#4)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#4)
- ^0.8.0 (contracts/interfaces/IERC20Extended.sol#4)
- ^0.8.0 (contracts/interfaces/ITaskTreasury.sol#2)
- ^0.8.0 (contracts/interfaces/ITaskTreasuryUpgradable.sol#2)
Version constraint ^0.8.1 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- SignedImmutables
- ABIDecodeTwoDimensionalArrayMemory
- KeccakCaching.
It is used by:
- ^0.8.1 (@openzeppelin/contracts/utils/Address.sol#4)
Version constraint ^0.8.12 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
- VerbatimInvalidDeduplication
- FullInlinerNonExpressionSplitArgumentEvaluationOrder
- MissingSideEffectsOnSelectorAccess
- AbiReencodingHeadOverflowWithStaticArrayCleanup
- DirtyBytesArrayToStorage
- DataLocationChangeInInternalOverride
- NestedCalldataArrayAbiReencodingSizeValidation
- AbiEncodeCallLiteralAsFixedBytesBug.
It is used by:
- ^0.8.12 (contracts/functions/FUtils.sol#2)
- ^0.8.12 (contracts/libraries/LibShares.sol#2)
- ^0.8.12 (contracts/taskTreasury/TaskTreasuryUpgradable.sol#2)
- ^0.8.12 (contracts/vendor/proxy/EIP173/Proxied.sol#2)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity
Low level call in Address.sendValue(address,uint256) (@openzeppelin/contracts/utils/Address.sol#60-65):
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts/utils/Address.sol#63)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts/utils/Address.sol#128-139):
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts/utils/Address.sol#137)
Low level call in Address.functionStaticCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#157-166):
- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts/utils/Address.sol#164)
Low level call in Address.functionDelegateCall(address,bytes,string) (@openzeppelin/contracts/utils/Address.sol#184-193):
- (success,returndata) = target.delegatecall(data) (@openzeppelin/contracts/utils/Address.sol#191)
Low level call in AddressUpgradeable.sendValue(address,uint256) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#55-60):
- (success,None) = recipient.call{value: amount}() (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#58)
Low level call in AddressUpgradeable.functionCallWithValue(address,bytes,uint256,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#123-134):
- (success,returndata) = target.call{value: value}(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#132)
Low level call in AddressUpgradeable.functionStaticCall(address,bytes,string) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#152-161):
- (success,returndata) = target.staticcall(data) (@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol#159)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls
Function ReentrancyGuardUpgradeable.__ReentrancyGuard_init() (@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#40-42) is not in mixedCase
Function ReentrancyGuardUpgradeable.__ReentrancyGuard_init_unchained() (@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#44-46) is not in mixedCase
Variable ReentrancyGuardUpgradeable.__gap (@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol#68) is not in mixedCase
Parameter LibShares.contractBalance(address)._token (contracts/libraries/LibShares.sol#7) is not in mixedCase
Parameter LibShares.tokenToShares(address,uint256,uint256,uint256)._token (contracts/libraries/LibShares.sol#16) is not in mixedCase
Parameter LibShares.tokenToShares(address,uint256,uint256,uint256)._tokenAmount (contracts/libraries/LibShares.sol#17) is not in mixedCase
Parameter LibShares.tokenToShares(address,uint256,uint256,uint256)._totalShares (contracts/libraries/LibShares.sol#18) is not in mixedCase
Parameter LibShares.tokenToShares(address,uint256,uint256,uint256)._totalBalance (contracts/libraries/LibShares.sol#19) is not in mixedCase
Parameter LibShares.to18Dp(address,uint256)._token (contracts/libraries/LibShares.sol#39) is not in mixedCase
Parameter LibShares.to18Dp(address,uint256)._amount (contracts/libraries/LibShares.sol#39) is not in mixedCase
Parameter LibShares.sharesToToken(uint256,uint256,uint256)._shares (contracts/libraries/LibShares.sol#55) is not in mixedCase
Parameter LibShares.sharesToToken(uint256,uint256,uint256)._totalShares (contracts/libraries/LibShares.sol#56) is not in mixedCase
Parameter LibShares.sharesToToken(uint256,uint256,uint256)._totalBalance (contracts/libraries/LibShares.sol#57) is not in mixedCase
Parameter TaskTreasuryUpgradable.initialize(uint256)._maxFee (contracts/taskTreasury/TaskTreasuryUpgradable.sol#65) is not in mixedCase
Parameter TaskTreasuryUpgradable.useFunds(address,address,uint256)._user (contracts/taskTreasury/TaskTreasuryUpgradable.sol#75) is not in mixedCase
Parameter TaskTreasuryUpgradable.useFunds(address,address,uint256)._token (contracts/taskTreasury/TaskTreasuryUpgradable.sol#76) is not in mixedCase
Parameter TaskTreasuryUpgradable.useFunds(address,address,uint256)._amount (contracts/taskTreasury/TaskTreasuryUpgradable.sol#77) is not in mixedCase
Parameter TaskTreasuryUpgradable.updateMaxFee(uint256)._newMaxFee (contracts/taskTreasury/TaskTreasuryUpgradable.sol#98) is not in mixedCase
Parameter TaskTreasuryUpgradable.updateWhitelistedService(address,bool)._service (contracts/taskTreasury/TaskTreasuryUpgradable.sol#107) is not in mixedCase
Parameter TaskTreasuryUpgradable.updateWhitelistedService(address,bool)._add (contracts/taskTreasury/TaskTreasuryUpgradable.sol#107) is not in mixedCase
Parameter TaskTreasuryUpgradable.depositFunds(address,address,uint256)._receiver (contracts/taskTreasury/TaskTreasuryUpgradable.sol#137) is not in mixedCase
Parameter TaskTreasuryUpgradable.depositFunds(address,address,uint256)._token (contracts/taskTreasury/TaskTreasuryUpgradable.sol#138) is not in mixedCase
Parameter TaskTreasuryUpgradable.depositFunds(address,address,uint256)._amount (contracts/taskTreasury/TaskTreasuryUpgradable.sol#139) is not in mixedCase
Parameter TaskTreasuryUpgradable.withdrawFunds(address,address,uint256)._receiver (contracts/taskTreasury/TaskTreasuryUpgradable.sol#168) is not in mixedCase
Parameter TaskTreasuryUpgradable.withdrawFunds(address,address,uint256)._token (contracts/taskTreasury/TaskTreasuryUpgradable.sol#169) is not in mixedCase
Parameter TaskTreasuryUpgradable.withdrawFunds(address,address,uint256)._amount (contracts/taskTreasury/TaskTreasuryUpgradable.sol#170) is not in mixedCase
Parameter TaskTreasuryUpgradable.getCreditTokensByUser(address)._user (contracts/taskTreasury/TaskTreasuryUpgradable.sol#181) is not in mixedCase
Parameter TaskTreasuryUpgradable.getTotalCreditTokensByUser(address)._user (contracts/taskTreasury/TaskTreasuryUpgradable.sol#192) is not in mixedCase
Parameter TaskTreasuryUpgradable.userTokenBalance(address,address)._user (contracts/taskTreasury/TaskTreasuryUpgradable.sol#227) is not in mixedCase
Parameter TaskTreasuryUpgradable.userTokenBalance(address,address)._token (contracts/taskTreasury/TaskTreasuryUpgradable.sol#227) is not in mixedCase
Parameter TaskTreasuryUpgradable.totalUserTokenBalance(address,address)._user (contracts/taskTreasury/TaskTreasuryUpgradable.sol#245) is not in mixedCase
Parameter TaskTreasuryUpgradable.totalUserTokenBalance(address,address)._token (contracts/taskTreasury/TaskTreasuryUpgradable.sol#245) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions
. analyzed (13 contracts with 100 detectors), 59 result(s) found
{
"solc": {
"status": "ok",
"use_rc": 0,
"version": "0.8.12",
"strategy": "solc-select",
"solc_path": "/var/www/tripwire/.venv/bin/solc",
"install_rc": 0,
"use_stderr": null,
"use_stdout": "Switched global version to 0.8.12",
"install_stderr": null,
"install_stdout": "Version '0.8.12' is already installed, skipping..."
},
"solc_args": "--base-path /tmp/slither-zj237ijd --allow-paths /tmp/slither-zj237ijd,/tmp/slither-zj237ijd/lib,/tmp/slither-zj237ijd/src",
"remappings": [],
"source_files": [
"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
"@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol",
"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol",
"@openzeppelin/contracts/token/ERC20/IERC20.sol",
"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol",
"@openzeppelin/contracts/utils/Address.sol",
"@openzeppelin/contracts/utils/structs/EnumerableSet.sol",
"contracts/functions/FUtils.sol",
"contracts/interfaces/IERC20Extended.sol",
"contracts/interfaces/ITaskTreasury.sol",
"contracts/interfaces/ITaskTreasuryUpgradable.sol",
"contracts/libraries/LibShares.sol",
"contracts/taskTreasury/TaskTreasuryUpgradable.sol",
"contracts/vendor/proxy/EIP173/Proxied.sol"
],
"contract_count": 0,
"contract_names": [],
"detector_count": 59,
"workspace_hash": "75ec68eed710b4ebb44546ee9424539fbabe7b4aabb0ec2634814dbeed0b308f",
"duration_seconds": 1.0129549503326416,
"solc_version_requested": "0.8.14"
}
{"no_findings":false,"summary":"One low-severity accounting issue: the minimum-shares invariant can prevent full withdrawals and permanently lock residual funds for a token.","findings":[{"severity":"low","category":"math","title":"Minimum-shares invariant can lock the last withdrawal for a token","exploit_scenario":"If totalShares[_token] equals MIN_SHARES_IN_TREASURY, any withdrawal that would reduce totalShares below MIN reverts. The last user(s) for that token cannot fully withdraw, leaving at least MIN_SHARES worth of funds stuck unless someone else deposits to raise totalShares. A user who makes the first deposit at the MIN threshold can also become unable to fully withdraw without another depositor.","recommendation":"Allow full withdrawals when burning the final shares (e.g., permit totalShares to reach 0 when sharesToCharge == sharesTotal), or separate protocol-owned minimum shares from user shares so user withdrawals are not blocked.","evidence":"_creditUser enforces a minimum on the first mint, and _deductUser blocks withdrawals that would drop totalShares below MIN_SHARES_IN_TREASURY.","locations":["contracts/taskTreasury/TaskTreasuryUpgradable.sol:273","contracts/taskTreasury/TaskTreasuryUpgradable.sol:301"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-6k4taw55
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0f99-61bd-7ac0-87a8-43975499685e
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
exec
/bin/bash -lc ls in /tmp/codex-6k4taw55 succeeded in 7ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
@openzeppelin
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-6k4taw55 succeeded in 5ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.
================================================================================
FILE: contracts/functions/FUtils.sol
================================================================================
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.12;
import {
SafeERC20,
IERC20
} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
address constant ETH = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
// solhint-disable private-vars-leading-underscore
// solhint-disable func-visibility
function _transfer(
address payable _to,
exec
/bin/bash -lc "nl -ba contracts/taskTreasury/TaskTreasuryUpgradable.sol | sed -n '180,320p'" in /tmp/codex-6k4taw55 succeeded in 9ms:
180 /// @param _user User to get the balances from
181 function getCreditTokensByUser(address _user)
182 public
183 view
184 override
185 returns (address[] memory)
186 {
187 return _tokens[_user].values();
188 }
189
190 /// @notice Helper func to get all deposited tokens by a user across treasuries.
191 /// @param _user User to get the balances from
192 function getTotalCreditTokensByUser(address _user)
193 public
194 view
195 override
196 returns (address[] memory)
197 {
198 address[] memory tokensInNew = _tokens[_user].values();
199 address[] memory tokensInOld = oldTreasury.getCreditTokensByUser(_user);
codex
{"no_findings":false,"summary":"One low-severity accounting issue: the minimum-shares invariant can prevent full withdrawals and permanently lock residual funds for a token.","findings":[{"severity":"low","category":"math","title":"Minimum-shares invariant can lock the last withdrawal for a token","exploit_scenario":"If totalShares[_token] equals MIN_SHARES_IN_TREASURY, any withdrawal that would reduce totalShares below MIN reverts. The last user(s) for that token cannot fully withdraw, leaving at least MIN_SHARES worth of funds stuck unless someone else deposits to raise totalShares. A user who makes the first deposit at the MIN threshold can also become unable to fully withdraw without another depositor.","recommendation":"Allow full withdrawals when burning the final shares (e.g., permit totalShares to reach 0 when sharesToCharge == sharesTotal), or separate protocol-owned minimum shares from user shares so user withdrawals are not blocked.","evidence":"_creditUser enforces a minimum on the first mint, and _deductUser blocks withdrawals that would drop totalShares below MIN_SHARES_IN_TREASURY.","locations":["contracts/taskTreasury/TaskTreasuryUpgradable.sol:273","contracts/taskTreasury/TaskTreasuryUpgradable.sol:301"]}]}
tokens used
14,627
{
"codex": {
"ran_at": "2026-01-30T15:52:39.737935+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 14,
"import_count": 9,
"first_party_contracts_count": 7
},
"summary": "One low-severity accounting issue: the minimum-shares invariant can prevent full withdrawals and permanently lock residual funds for a token.",
"raw_final": {
"summary": "One low-severity accounting issue: the minimum-shares invariant can prevent full withdrawals and permanently lock residual funds for a token.",
"findings": [
{
"title": "Minimum-shares invariant can lock the last withdrawal for a token",
"category": "math",
"evidence": "_creditUser enforces a minimum on the first mint, and _deductUser blocks withdrawals that would drop totalShares below MIN_SHARES_IN_TREASURY.",
"severity": "low",
"locations": [
"contracts/taskTreasury/TaskTreasuryUpgradable.sol:273",
"contracts/taskTreasury/TaskTreasuryUpgradable.sol:301"
],
"recommendation": "Allow full withdrawals when burning the final shares (e.g., permit totalShares to reach 0 when sharesToCharge == sharesTotal), or separate protocol-owned minimum shares from user shares so user withdrawals are not blocked.",
"exploit_scenario": "If totalShares[_token] equals MIN_SHARES_IN_TREASURY, any withdrawal that would reduce totalShares below MIN reverts. The last user(s) for that token cannot fully withdraw, leaving at least MIN_SHARES worth of funds stuck unless someone else deposits to raise totalShares. A user who makes the first deposit at the MIN threshold can also become unable to fully withdraw without another depositor."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: PUSH2 0x00f7 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0xa3f1233e 00000019: GT 0000001a: PUSH2 0x008a 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xc1461d57 00000024: GT 00000025: PUSH2 0x0059 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xc1461d57 0000002f: EQ 00000030: PUSH2 0x0378 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xcf0ef516 0000003a: EQ 0000003b: PUSH2 0x0394 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xd147adb9 00000045: EQ 00000046: PUSH2 0x03bf 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xfe4b84df 00000050: EQ 00000051: PUSH2 0x03fc 00000054: JUMPI 00000055: PUSH2 0x011d 00000058: JUMP 00000059: JUMPDEST 0000005a: DUP1 0000005b: PUSH4 0xa3f1233e 00000060: EQ 00000061: PUSH2 0x0298 00000064: JUMPI 00000065: DUP1 00000066: PUSH4 0xb0da8d0b 0000006b: EQ 0000006c: PUSH2 0x02c1 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xb47064c8 00000076: EQ 00000077: PUSH2 0x02fe 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xbf6b874e 00000081: EQ 00000082: PUSH2 0x033b 00000085: JUMPI 00000086: PUSH2 0x011d 00000089: JUMP 0000008a: JUMPDEST 0000008b: DUP1 0000008c: PUSH4 0x2bf30a0e 00000091: GT 00000092: PUSH2 0x00c6 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0x2bf30a0e 0000009c: EQ 0000009d: PUSH2 0x01ca 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0x550dddeb 000000a7: EQ 000000a8: PUSH2 0x0207 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0x5dfad06a 000000b2: EQ 000000b3: PUSH2 0x0230 000000b6: JUMPI 000000b7: DUP1 000000b8: PUSH4 0x7df44647 000000bd: EQ 000000be: PUSH2 0x025b 000000c1: JUMPI 000000c2: PUSH2 0x011d 000000c5: JUMP 000000c6: JUMPDEST 000000c7: DUP1 000000c8: PUSH4 0x01f59d16 000000cd: EQ 000000ce: PUSH2 0x0122 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0x03c84596 000000d8: EQ 000000d9: PUSH2 0x014d 000000dc: JUMPI 000000dd: DUP1 000000de: PUSH4 0x0a9b1803 000000e3: EQ 000000e4: PUSH2 0x0178 000000e7: JUMPI 000000e8: DUP1 000000e9: PUSH4 0x1c20fadd 000000ee: EQ 000000ef: PUSH2 0x01a1 000000f2: JUMPI 000000f3: PUSH2 0x011d 000000f6: JUMP 000000f7: JUMPDEST 000000f8: CALLDATASIZE 000000f9: PUSH2 0x011d 000000fc: JUMPI 000000fd: PUSH2 0x011b 00000100: CALLER 00000101: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 00000116: CALLVALUE 00000117: PUSH2 0x0425 0000011a: JUMP 0000011b: JUMPDEST 0000011c: STOP 0000011d: JUMPDEST 0000011e: PUSH1 0x00 00000120: DUP1 00000121: REVERT 00000122: JUMPDEST 00000123: CALLVALUE 00000124: DUP1 00000125: ISZERO 00000126: PUSH2 0x012e 00000129: JUMPI 0000012a: PUSH1 0x00 0000012c: DUP1 0000012d: REVERT 0000012e: JUMPDEST 0000012f: POP 00000130: PUSH2 0x0137 00000133: PUSH2 0x06d2 00000136: JUMP 00000137: JUMPDEST 00000138: PUSH1 0x40 0000013a: MLOAD 0000013b: PUSH2 0x0144 0000013e: SWAP2 0000013f: SWAP1 00000140: PUSH2 0x260f 00000143: JUMP 00000144: JUMPDEST 00000145: PUSH1 0x40 00000147: MLOAD 00000148: DUP1 00000149: SWAP2 0000014a: SUB 0000014b: SWAP1 0000014c: RETURN 0000014d: JUMPDEST 0000014e: CALLVALUE 0000014f: DUP1 00000150: ISZERO 00000151: PUSH2 0x0159 00000154: JUMPI 00000155: PUSH1 0x00 00000157: DUP1 00000158: REVERT 00000159: JUMPDEST 0000015a: POP 0000015b: PUSH2 0x0162 0000015e: PUSH2 0x06d8 00000161: JUMP 00000162: JUMPDEST 00000163: PUSH1 0x40 00000165: MLOAD 00000166: PUSH2 0x016f 00000169: SWAP2 0000016a: SWAP1 0000016b: PUSH2 0x260f 0000016e: JUMP 0000016f: JUMPDEST 00000170: PUSH1 0x40 00000172: MLOAD 00000173: DUP1 00000174: SWAP2 00000175: SUB 00000176: SWAP1 00000177: RETURN 00000178: JUMPDEST 00000179: CALLVALUE 0000017a: DUP1 0000017b: ISZERO 0000017c: PUSH2 0x0184 0000017f: JUMPI 00000180: PUSH1 0x00 00000182: DUP1 00000183: REVERT 00000184: JUMPDEST 00000185: POP 00000186: PUSH2 0x019f 00000189: PUSH1 0x04 0000018b: DUP1 0000018c: CALLDATASIZE 0000018d: SUB 0000018e: DUP2 0000018f: ADD 00000190: SWAP1 00000191: PUSH2 0x019a 00000194: SWAP2 00000195: SWAP1 00000196: PUSH2 0x26d4 00000199: JUMP 0000019a: JUMPDEST 0000019b: PUSH2 0x06e1 0000019e: JUMP 0000019f: JUMPDEST 000001a0: STOP 000001a1: JUMPDEST 000001a2: CALLVALUE 000001a3: DUP1 000001a4: ISZERO 000001a5: PUSH2 0x01ad 000001a8: JUMPI 000001a9: PUSH1 0x00 000001ab: DUP1 000001ac: REVERT 000001ad: JUMPDEST 000001ae: POP 000001af: PUSH2 0x01c8 000001b2: PUSH1 0x04 000001b4: DUP1 000001b5: CALLDATASIZE 000001b6: SUB 000001b7: DUP2 000001b8: ADD 000001b9: SWAP1 000001ba: PUSH2 0x01c3 000001bd: SWAP2 000001be: SWAP1 000001bf: PUSH2 0x277e 000001c2: JUMP 000001c3: JUMPDEST 000001c4: PUSH2 0x07de 000001c7: JUMP 000001c8: JUMPDEST 000001c9: STOP 000001ca: JUMPDEST 000001cb: CALLVALUE 000001cc: DUP1 000001cd: ISZERO 000001ce: PUSH2 0x01d6 000001d1: JUMPI 000001d2: PUSH1 0x00 000001d4: DUP1 000001d5: REVERT 000001d6: JUMPDEST 000001d7: POP 000001d8: PUSH2 0x01f1 000001db: PUSH1 0x04 000001dd: DUP1 000001de: CALLDATASIZE 000001df: SUB 000001e0: DUP2 000001e1: ADD 000001e2: SWAP1 000001e3: PUSH2 0x01ec 000001e6: SWAP2 000001e7: SWAP1 000001e8: PUSH2 0x27d1 000001eb: JUMP 000001ec: JUMPDEST 000001ed: PUSH2 0x08c9 000001f0: JUMP 000001f1: JUMPDEST 000001f2: PUSH1 0x40 000001f4: MLOAD 000001f5: PUSH2 0x01fe 000001f8: SWAP2 000001f9: SWAP1 000001fa: PUSH2 0x28bc 000001fd: JUMP 000001fe: JUMPDEST 000001ff: PUSH1 0x40 00000201: MLOAD 00000202: DUP1 00000203: SWAP2 00000204: SUB 00000205: SWAP1 00000206: RETURN 00000207: JUMPDEST 00000208: CALLVALUE 00000209: DUP1 0000020a: ISZERO 0000020b: PUSH2 0x0213 0000020e: JUMPI 0000020f: PUSH1 0x00 00000211: DUP1 00000212: REVERT 00000213: JUMPDEST 00000214: POP 00000215: PUSH2 0x022e 00000218: PUSH1 0x04 0000021a: DUP1 0000021b: CALLDATASIZE 0000021c: SUB 0000021d: DUP2 0000021e: ADD 0000021f: SWAP1 00000220: PUSH2 0x0229 00000223: SWAP2 00000224: SWAP1 00000225: PUSH2 0x28de 00000228: JUMP 00000229: JUMPDEST 0000022a: PUSH2 0x0919 0000022d: JUMP 0000022e: JUMPDEST 0000022f: STOP 00000230: JUMPDEST 00000231: CALLVALUE 00000232: DUP1 00000233: ISZERO 00000234: PUSH2 0x023c 00000237: JUMPI 00000238: PUSH1 0x00 0000023a: DUP1 0000023b: REVERT 0000023c: JUMPDEST 0000023d: POP 0000023e: PUSH2 0x0245 00000241: PUSH2 0x09c5 00000244: JUMP 00000245: JUMPDEST 00000246: PUSH1 0x40 00000248: MLOAD 00000249: PUSH2 0x0252 0000024c: SWAP2 0000024d: SWAP1 0000024e: PUSH2 0x28bc 00000251: JUMP 00000252: JUMPDEST 00000253: PUSH1 0x40 00000255: MLOAD 00000256: DUP1 00000257: SWAP2 00000258: SUB 00000259: SWAP1 0000025a: RETURN 0000025b: JUMPDEST 0000025c: CALLVALUE 0000025d: DUP1 0000025e: ISZERO 0000025f: PUSH2 0x0267 00000262: JUMPI 00000263: PUSH1 0x00 00000265: DUP1 00000266: REVERT 00000267: JUMPDEST 00000268: POP 00000269: PUSH2 0x0282 0000026c: PUSH1 0x04 0000026e: DUP1 0000026f: CALLDATASIZE 00000270: SUB 00000271: DUP2 00000272: ADD 00000273: SWAP1 00000274: PUSH2 0x027d 00000277: SWAP2 00000278: SWAP1 00000279: PUSH2 0x290b 0000027c: JUMP 0000027d: JUMPDEST 0000027e: PUSH2 0x09d6 00000281: JUMP 00000282: JUMPDEST 00000283: PUSH1 0x40 00000285: MLOAD 00000286: PUSH2 0x028f 00000289: SWAP2 0000028a: SWAP1 0000028b: PUSH2 0x260f 0000028e: JUMP 0000028f: JUMPDEST 00000290: PUSH1 0x40 00000292: MLOAD 00000293: DUP1 00000294: SWAP2 00000295: SUB 00000296: SWAP1 00000297: RETURN 00000298: JUMPDEST 00000299: CALLVALUE 0000029a: DUP1 0000029b: ISZERO 0000029c: PUSH2 0x02a4 0000029f: JUMPI 000002a0: PUSH1 0x00 000002a2: DUP1 000002a3: REVERT 000002a4: JUMPDEST 000002a5: POP 000002a6: PUSH2 0x02bf 000002a9: PUSH1 0x04 000002ab: DUP1 000002ac: CALLDATASIZE 000002ad: SUB 000002ae: DUP2 000002af: ADD 000002b0: SWAP1 000002b1: PUSH2 0x02ba 000002b4: SWAP2 000002b5: SWAP1 000002b6: PUSH2 0x294b 000002b9: JUMP 000002ba: JUMPDEST 000002bb: PUSH2 0x09fb 000002be: JUMP 000002bf: JUMPDEST 000002c0: STOP 000002c1: JUMPDEST 000002c2: CALLVALUE 000002c3: DUP1 000002c4: ISZERO 000002c5: PUSH2 0x02cd 000002c8: JUMPI 000002c9: PUSH1 0x00 000002cb: DUP1 000002cc: REVERT 000002cd: JUMPDEST 000002ce: POP 000002cf: PUSH2 0x02e8 000002d2: PUSH1 0x04 000002d4: DUP1 000002d5: CALLDATASIZE 000002d6: SUB 000002d7: DUP2 000002d8: ADD 000002d9: SWAP1 000002da: PUSH2 0x02e3 000002dd: SWAP2 000002de: SWAP1 000002df: PUSH2 0x27d1 000002e2: JUMP 000002e3: JUMPDEST 000002e4: PUSH2 0x0d0d 000002e7: JUMP 000002e8: JUMPDEST 000002e9: PUSH1 0x40 000002eb: MLOAD 000002ec: PUSH2 0x02f5 000002ef: SWAP2 000002f0: SWAP1 000002f1: PUSH2 0x28bc 000002f4: JUMP 000002f5: JUMPDEST 000002f6: PUSH1 0x40 000002f8: MLOAD 000002f9: DUP1 000002fa: SWAP2 000002fb: SUB 000002fc: SWAP1 000002fd: RETURN 000002fe: JUMPDEST 000002ff: CALLVALUE 00000300: DUP1 00000301: ISZERO 00000302: PUSH2 0x030a 00000305: JUMPI 00000306: PUSH1 0x00 00000308: DUP1 00000309: REVERT 0000030a: JUMPDEST 0000030b: POP 0000030c: PUSH2 0x0325 0000030f: PUSH1 0x04 00000311: DUP1 00000312: CALLDATASIZE 00000313: SUB 00000314: DUP2 00000315: ADD 00000316: SWAP1 00000317: PUSH2 0x0320 0000031a: SWAP2 0000031b: SWAP1 0000031c: PUSH2 0x290b 0000031f: JUMP 00000320: JUMPDEST 00000321: PUSH2 0x107f 00000324: JUMP 00000325: JUMPDEST 00000326: PUSH1 0x40 00000328: MLOAD 00000329: PUSH2 0x0332 0000032c: SWAP2 0000032d: SWAP1 0000032e: PUSH2 0x260f 00000331: JUMP 00000332: JUMPDEST 00000333: PUSH1 0x40 00000335: MLOAD 00000336: DUP1 00000337: SWAP2 00000338: SUB 00000339: SWAP1 0000033a: RETURN 0000033b: JUMPDEST 0000033c: CALLVALUE 0000033d: DUP1 0000033e: ISZERO 0000033f: PUSH2 0x0347 00000342: JUMPI 00000343: PUSH1 0x00 00000345: DUP1 00000346: REVERT 00000347: JUMPDEST 00000348: POP 00000349: PUSH2 0x0362 0000034c: PUSH1 0x04 0000034e: DUP1 0000034f: CALLDATASIZE 00000350: SUB 00000351: DUP2 00000352: ADD 00000353: SWAP1 00000354: PUSH2 0x035d 00000357: SWAP2 00000358: SWAP1 00000359: PUSH2 0x27d1 0000035c: JUMP 0000035d: JUMPDEST 0000035e: PUSH2 0x115c 00000361: JUMP 00000362: JUMPDEST 00000363: PUSH1 0x40 00000365: MLOAD 00000366: PUSH2 0x036f 00000369: SWAP2 0000036a: SWAP1 0000036b: PUSH2 0x260f 0000036e: JUMP 0000036f: JUMPDEST 00000370: PUSH1 0x40 00000372: MLOAD 00000373: DUP1 00000374: SWAP2 00000375: SUB 00000376: SWAP1 00000377: RETURN 00000378: JUMPDEST 00000379: PUSH2 0x0392 0000037c: PUSH1 0x04 0000037e: DUP1 0000037f: CALLDATASIZE 00000380: SUB 00000381: DUP2 00000382: ADD 00000383: SWAP1 00000384: PUSH2 0x038d 00000387: SWAP2 00000388: SWAP1 00000389: PUSH2 0x294b 0000038c: JUMP 0000038d: JUMPDEST 0000038e: PUSH2 0x0425 00000391: JUMP 00000392: JUMPDEST 00000393: STOP 00000394: JUMPDEST 00000395: CALLVALUE 00000396: DUP1 00000397: ISZERO 00000398: PUSH2 0x03a0 0000039b: JUMPI 0000039c: PUSH1 0x00 0000039e: DUP1 0000039f: REVERT 000003a0: JUMPDEST 000003a1: POP 000003a2: PUSH2 0x03a9 000003a5: PUSH2 0x1174 000003a8: JUMP 000003a9: JUMPDEST 000003aa: PUSH1 0x40 000003ac: MLOAD 000003ad: PUSH2 0x03b6 000003b0: SWAP2 000003b1: SWAP1 000003b2: PUSH2 0x29fd 000003b5: JUMP 000003b6: JUMPDEST 000003b7: PUSH1 0x40 000003b9: MLOAD 000003ba: DUP1 000003bb: SWAP2 000003bc: SUB 000003bd: SWAP1 000003be: RETURN 000003bf: JUMPDEST 000003c0: CALLVALUE 000003c1: DUP1 000003c2: ISZERO 000003c3: PUSH2 0x03cb 000003c6: JUMPI 000003c7: PUSH1 0x00 000003c9: DUP1 000003ca: REVERT 000003cb: JUMPDEST 000003cc: POP 000003cd: PUSH2 0x03e6 000003d0: PUSH1 0x04 000003d2: DUP1 000003d3: CALLDATASIZE 000003d4: SUB 000003d5: DUP2 000003d6: ADD 000003d7: SWAP1 000003d8: PUSH2 0x03e1 000003db: SWAP2 000003dc: SWAP1 000003dd: PUSH2 0x290b 000003e0: JUMP 000003e1: JUMPDEST 000003e2: PUSH2 0x1198 000003e5: JUMP 000003e6: JUMPDEST 000003e7: PUSH1 0x40 000003e9: MLOAD 000003ea: PUSH2 0x03f3 000003ed: SWAP2 000003ee: SWAP1 000003ef: PUSH2 0x260f 000003f2: JUMP 000003f3: JUMPDEST 000003f4: PUSH1 0x40 000003f6: MLOAD 000003f7: DUP1 000003f8: SWAP2 000003f9: SUB 000003fa: SWAP1 000003fb: RETURN 000003fc: JUMPDEST 000003fd: CALLVALUE 000003fe: DUP1 000003ff: ISZERO 00000400: PUSH2 0x0408 00000403: JUMPI 00000404: PUSH1 0x00 00000406: DUP1 00000407: REVERT 00000408: JUMPDEST 00000409: POP 0000040a: PUSH2 0x0423 0000040d: PUSH1 0x04 0000040f: DUP1 00000410: CALLDATASIZE 00000411: SUB 00000412: DUP2 00000413: ADD 00000414: SWAP1 00000415: PUSH2 0x041e 00000418: SWAP2 00000419: SWAP1 0000041a: PUSH2 0x28de 0000041d: JUMP 0000041e: JUMPDEST 0000041f: PUSH2 0x1263 00000422: JUMP 00000423: JUMPDEST 00000424: STOP 00000425: JUMPDEST 00000426: PUSH1 0x02 00000428: PUSH1 0x01 0000042a: SLOAD 0000042b: SUB 0000042c: PUSH2 0x046a 0000042f: JUMPI 00000430: PUSH1 0x40 00000432: MLOAD 00000433: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000454: DUP2 00000455: MSTORE 00000456: PUSH1 0x04 00000458: ADD 00000459: PUSH2 0x0461 0000045c: SWAP1 0000045d: PUSH2 0x2a75 00000460: JUMP 00000461: JUMPDEST 00000462: PUSH1 0x40 00000464: MLOAD 00000465: DUP1 00000466: SWAP2 00000467: SUB 00000468: SWAP1 00000469: REVERT 0000046a: JUMPDEST 0000046b: PUSH1 0x02 0000046d: PUSH1 0x01 0000046f: DUP2 00000470: SWAP1 00000471: SSTORE 00000472: POP 00000473: PUSH1 0x00 00000475: DUP1 00000476: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 0000048b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004a0: AND 000004a1: DUP5 000004a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000004b7: AND 000004b8: SUB 000004b9: PUSH2 0x04c4 000004bc: JUMPI 000004bd: CALLVALUE 000004be: SWAP2 000004bf: POP 000004c0: PUSH2 0x0647 000004c3: JUMP 000004c4: JUMPDEST 000004c5: PUSH1 0x00 000004c7: CALLVALUE 000004c8: EQ 000004c9: PUSH2 0x0507 000004cc: JUMPI 000004cd: PUSH1 0x40 000004cf: MLOAD 000004d0: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000004f1: DUP2 000004f2: MSTORE 000004f3: PUSH1 0x04 000004f5: ADD 000004f6: PUSH2 0x04fe 000004f9: SWAP1 000004fa: PUSH2 0x2ae1 000004fd: JUMP 000004fe: JUMPDEST 000004ff: PUSH1 0x40 00000501: MLOAD 00000502: DUP1 00000503: SWAP2 00000504: SUB 00000505: SWAP1 00000506: REVERT 00000507: JUMPDEST 00000508: PUSH1 0x00 0000050a: DUP5 0000050b: SWAP1 0000050c: POP 0000050d: PUSH1 0x00 0000050f: DUP2 00000510: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000525: AND 00000526: PUSH4 0x70a08231 0000052b: ADDRESS 0000052c: PUSH1 0x40 0000052e: MLOAD 0000052f: DUP3 00000530: PUSH4 0xffffffff 00000535: AND 00000536: PUSH1 0xe0 00000538: SHL 00000539: DUP2 0000053a: MSTORE 0000053b: PUSH1 0x04 0000053d: ADD 0000053e: PUSH2 0x0547 00000541: SWAP2 00000542: SWAP1 00000543: PUSH2 0x2b10 00000546: JUMP 00000547: JUMPDEST 00000548: PUSH1 0x20 0000054a: PUSH1 0x40 0000054c: MLOAD 0000054d: DUP1 0000054e: DUP4 0000054f: SUB 00000550: DUP2 00000551: DUP7 00000552: GAS 00000553: STATICCALL 00000554: ISZERO 00000555: DUP1 00000556: ISZERO 00000557: PUSH2 0x0564 0000055a: JUMPI 0000055b: RETURNDATASIZE 0000055c: PUSH1 0x00 0000055e: DUP1 0000055f: RETURNDATACOPY 00000560: RETURNDATASIZE 00000561: PUSH1 0x00 00000563: REVERT 00000564: JUMPDEST 00000565: POP 00000566: POP 00000567: POP 00000568: POP 00000569: PUSH1 0x40 0000056b: MLOAD 0000056c: RETURNDATASIZE 0000056d: PUSH1 0x1f 0000056f: NOT 00000570: PUSH1 0x1f 00000572: DUP3 00000573: ADD 00000574: AND 00000575: DUP3 00000576: ADD 00000577: DUP1 00000578: PUSH1 0x40 0000057a: MSTORE 0000057b: POP 0000057c: DUP2 0000057d: ADD 0000057e: SWAP1 0000057f: PUSH2 0x0588 00000582: SWAP2 00000583: SWAP1 00000584: PUSH2 0x2b40 00000587: JUMP 00000588: JUMPDEST 00000589: SWAP1 0000058a: POP 0000058b: PUSH2 0x05b7 0000058e: CALLER 0000058f: ADDRESS 00000590: DUP8 00000591: DUP6 00000592: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005a7: AND 000005a8: PUSH2 0x1357 000005ab: SWAP1 000005ac: SWAP4 000005ad: SWAP3 000005ae: SWAP2 000005af: SWAP1 000005b0: PUSH4 0xffffffff 000005b5: AND 000005b6: JUMP 000005b7: JUMPDEST 000005b8: PUSH1 0x00 000005ba: DUP3 000005bb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000005d0: AND 000005d1: PUSH4 0x70a08231 000005d6: ADDRESS 000005d7: PUSH1 0x40 000005d9: MLOAD 000005da: DUP3 000005db: PUSH4 0xffffffff 000005e0: AND 000005e1: PUSH1 0xe0 000005e3: SHL 000005e4: DUP2 000005e5: MSTORE 000005e6: PUSH1 0x04 000005e8: ADD 000005e9: PUSH2 0x05f2 000005ec: SWAP2 000005ed: SWAP1 000005ee: PUSH2 0x2b10 000005f1: JUMP 000005f2: JUMPDEST 000005f3: PUSH1 0x20 000005f5: PUSH1 0x40 000005f7: MLOAD 000005f8: DUP1 000005f9: DUP4 000005fa: SUB 000005fb: DUP2 000005fc: DUP7 000005fd: GAS 000005fe: STATICCALL 000005ff: ISZERO 00000600: DUP1 00000601: ISZERO 00000602: PUSH2 0x060f 00000605: JUMPI 00000606: RETURNDATASIZE 00000607: PUSH1 0x00 00000609: DUP1 0000060a: RETURNDATACOPY 0000060b: RETURNDATASIZE 0000060c: PUSH1 0x00 0000060e: REVERT 0000060f: JUMPDEST 00000610: POP 00000611: POP 00000612: POP 00000613: POP 00000614: PUSH1 0x40 00000616: MLOAD 00000617: RETURNDATASIZE 00000618: PUSH1 0x1f 0000061a: NOT 0000061b: PUSH1 0x1f 0000061d: DUP3 0000061e: ADD 0000061f: AND 00000620: DUP3 00000621: ADD 00000622: DUP1 00000623: PUSH1 0x40 00000625: MSTORE 00000626: POP 00000627: DUP2 00000628: ADD 00000629: SWAP1 0000062a: PUSH2 0x0633 0000062d: SWAP2 0000062e: SWAP1 0000062f: PUSH2 0x2b40 00000632: JUMP 00000633: JUMPDEST 00000634: SWAP1 00000635: POP 00000636: DUP2 00000637: DUP2 00000638: PUSH2 0x0641 0000063b: SWAP2 0000063c: SWAP1 0000063d: PUSH2 0x2b9c 00000640: JUMP 00000641: JUMPDEST 00000642: SWAP5 00000643: POP 00000644: POP 00000645: POP 00000646: POP 00000647: JUMPDEST 00000648: DUP2 00000649: PUSH2 0x0651 0000064c: DUP6 0000064d: PUSH2 0x13e0 00000650: JUMP 00000651: JUMPDEST 00000652: PUSH2 0x065b 00000655: SWAP2 00000656: SWAP1 00000657: PUSH2 0x2b9c 0000065a: JUMP 0000065b: JUMPDEST 0000065c: SWAP1 0000065d: POP 0000065e: PUSH2 0x0669 00000661: DUP6 00000662: DUP6 00000663: DUP5 00000664: DUP5 00000665: PUSH2 0x14b3 00000668: JUMP 00000669: JUMPDEST 0000066a: DUP2 0000066b: DUP5 0000066c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000681: AND 00000682: DUP7 00000683: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000698: AND 00000699: PUSH32 0xf0d0e99cae184d0187b093b48894117462462379674a6e11d89c3fbb618e96b0 000006ba: PUSH1 0x40 000006bc: MLOAD 000006bd: PUSH1 0x40 000006bf: MLOAD 000006c0: DUP1 000006c1: SWAP2 000006c2: SUB 000006c3: SWAP1 000006c4: LOG4 000006c5: POP 000006c6: POP 000006c7: PUSH1 0x01 000006c9: DUP1 000006ca: DUP2 000006cb: SWAP1 000006cc: SSTORE 000006cd: POP 000006ce: POP 000006cf: POP 000006d0: POP 000006d1: JUMP 000006d2: JUMPDEST 000006d3: PUSH1 0x33 000006d5: SLOAD 000006d6: DUP2 000006d7: JUMP 000006d8: JUMPDEST 000006d9: PUSH5 0xe8d4a51000 000006df: DUP2 000006e0: JUMP 000006e1: JUMPDEST 000006e2: PUSH2 0x06e9 000006e5: PUSH2 0x16d7 000006e8: JUMP 000006e9: JUMPDEST 000006ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000006ff: AND 00000700: CALLER 00000701: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000716: AND 00000717: EQ 00000718: PUSH2 0x0756 0000071b: JUMPI 0000071c: PUSH1 0x40 0000071e: MLOAD 0000071f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000740: DUP2 00000741: MSTORE 00000742: PUSH1 0x04 00000744: ADD 00000745: PUSH2 0x074d 00000748: SWAP1 00000749: PUSH2 0x2c1c 0000074c: JUMP 0000074d: JUMPDEST 0000074e: PUSH1 0x40 00000750: MLOAD 00000751: DUP1 00000752: SWAP2 00000753: SUB 00000754: SWAP1 00000755: REVERT 00000756: JUMPDEST 00000757: DUP1 00000758: ISZERO 00000759: PUSH2 0x0776 0000075c: JUMPI 0000075d: PUSH2 0x0770 00000760: DUP3 00000761: PUSH1 0x37 00000763: PUSH2 0x1700 00000766: SWAP1 00000767: SWAP2 00000768: SWAP1 00000769: PUSH4 0xffffffff 0000076e: AND 0000076f: JUMP 00000770: JUMPDEST 00000771: POP 00000772: PUSH2 0x078c 00000775: JUMP 00000776: JUMPDEST 00000777: PUSH2 0x078a 0000077a: DUP3 0000077b: PUSH1 0x37 0000077d: PUSH2 0x1730 00000780: SWAP1 00000781: SWAP2 00000782: SWAP1 00000783: PUSH4 0xffffffff 00000788: AND 00000789: JUMP 0000078a: JUMPDEST 0000078b: POP 0000078c: JUMPDEST 0000078d: DUP2 0000078e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000007a3: AND 000007a4: PUSH32 0x112acfcc345761cf642cf6d7086cc68572679c383746552dcf2f71b26623c158 000007c5: DUP3 000007c6: PUSH1 0x40 000007c8: MLOAD 000007c9: PUSH2 0x07d2 000007cc: SWAP2 000007cd: SWAP1 000007ce: PUSH2 0x2c4b 000007d1: JUMP 000007d2: JUMPDEST 000007d3: PUSH1 0x40 000007d5: MLOAD 000007d6: DUP1 000007d7: SWAP2 000007d8: SUB 000007d9: SWAP1 000007da: LOG2 000007db: POP 000007dc: POP 000007dd: JUMP 000007de: JUMPDEST 000007df: PUSH1 0x02 000007e1: PUSH1 0x01 000007e3: SLOAD 000007e4: SUB 000007e5: PUSH2 0x0823 000007e8: JUMPI 000007e9: PUSH1 0x40 000007eb: MLOAD 000007ec: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000080d: DUP2 0000080e: MSTORE 0000080f: PUSH1 0x04 00000811: ADD 00000812: PUSH2 0x081a 00000815: SWAP1 00000816: PUSH2 0x2a75 00000819: JUMP 0000081a: JUMPDEST 0000081b: PUSH1 0x40 0000081d: MLOAD 0000081e: DUP1 0000081f: SWAP2 00000820: SUB 00000821: SWAP1 00000822: REVERT 00000823: JUMPDEST 00000824: PUSH1 0x02 00000826: PUSH1 0x01 00000828: DUP2 00000829: SWAP1 0000082a: SSTORE 0000082b: POP 0000082c: PUSH2 0x0836 0000082f: CALLER 00000830: DUP4 00000831: DUP4 00000832: PUSH2 0x1760 00000835: JUMP 00000836: JUMPDEST 00000837: PUSH2 0x0841 0000083a: DUP4 0000083b: DUP4 0000083c: DUP4 0000083d: PUSH2 0x19d3 00000840: JUMP 00000841: JUMPDEST 00000842: DUP2 00000843: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000858: AND 00000859: CALLER 0000085a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000086f: AND 00000870: DUP5 00000871: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000886: AND 00000887: PUSH32 0xc322efa58c9cb2c39cfffdac61d35c8643f5cbf13c6a7d0034de2cf18923aff3 000008a8: DUP5 000008a9: PUSH1 0x40 000008ab: MLOAD 000008ac: PUSH2 0x08b5 000008af: SWAP2 000008b0: SWAP1 000008b1: PUSH2 0x260f 000008b4: JUMP 000008b5: JUMPDEST 000008b6: PUSH1 0x40 000008b8: MLOAD 000008b9: DUP1 000008ba: SWAP2 000008bb: SUB 000008bc: SWAP1 000008bd: LOG4 000008be: PUSH1 0x01 000008c0: DUP1 000008c1: DUP2 000008c2: SWAP1 000008c3: SSTORE 000008c4: POP 000008c5: POP 000008c6: POP 000008c7: POP 000008c8: JUMP 000008c9: JUMPDEST 000008ca: PUSH1 0x60 000008cc: PUSH2 0x0912 000008cf: PUSH1 0x36 000008d1: PUSH1 0x00 000008d3: DUP5 000008d4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008e9: AND 000008ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000008ff: AND 00000900: DUP2 00000901: MSTORE 00000902: PUSH1 0x20 00000904: ADD 00000905: SWAP1 00000906: DUP2 00000907: MSTORE 00000908: PUSH1 0x20 0000090a: ADD 0000090b: PUSH1 0x00 0000090d: KECCAK256 0000090e: PUSH2 0x1add 00000911: JUMP 00000912: JUMPDEST 00000913: SWAP1 00000914: POP 00000915: SWAP2 00000916: SWAP1 00000917: POP 00000918: JUMP 00000919: JUMPDEST 0000091a: PUSH2 0x0921 0000091d: PUSH2 0x16d7 00000920: JUMP 00000921: JUMPDEST 00000922: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000937: AND 00000938: CALLER 00000939: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000094e: AND 0000094f: EQ 00000950: PUSH2 0x098e 00000953: JUMPI 00000954: PUSH1 0x40 00000956: MLOAD 00000957: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000978: DUP2 00000979: MSTORE 0000097a: PUSH1 0x04 0000097c: ADD 0000097d: PUSH2 0x0985 00000980: SWAP1 00000981: PUSH2 0x2c1c 00000984: JUMP 00000985: JUMPDEST 00000986: PUSH1 0x40 00000988: MLOAD 00000989: DUP1 0000098a: SWAP2 0000098b: SUB 0000098c: SWAP1 0000098d: REVERT 0000098e: JUMPDEST 0000098f: DUP1 00000990: PUSH1 0x33 00000992: DUP2 00000993: SWAP1 00000994: SSTORE 00000995: POP 00000996: DUP1 00000997: PUSH32 0xd4710696fc3761c070b614c80e5020d726828d5f75aa8a6b8287c4194dfe6da2 000009b8: PUSH1 0x40 000009ba: MLOAD 000009bb: PUSH1 0x40 000009bd: MLOAD 000009be: DUP1 000009bf: SWAP2 000009c0: SUB 000009c1: SWAP1 000009c2: LOG2 000009c3: POP 000009c4: JUMP 000009c5: JUMPDEST 000009c6: PUSH1 0x60 000009c8: PUSH2 0x09d1 000009cb: PUSH1 0x37 000009cd: PUSH2 0x1add 000009d0: JUMP 000009d1: JUMPDEST 000009d2: SWAP1 000009d3: POP 000009d4: SWAP1 000009d5: JUMP 000009d6: JUMPDEST 000009d7: PUSH1 0x34 000009d9: PUSH1 0x20 000009db: MSTORE 000009dc: DUP2 000009dd: PUSH1 0x00 000009df: MSTORE 000009e0: PUSH1 0x40 000009e2: PUSH1 0x00 000009e4: KECCAK256 000009e5: PUSH1 0x20 000009e7: MSTORE 000009e8: DUP1 000009e9: PUSH1 0x00 000009eb: MSTORE 000009ec: PUSH1 0x40 000009ee: PUSH1 0x00 000009f0: KECCAK256 000009f1: PUSH1 0x00 000009f3: SWAP2 000009f4: POP 000009f5: SWAP2 000009f6: POP 000009f7: POP 000009f8: SLOAD 000009f9: DUP2 000009fa: JUMP 000009fb: JUMPDEST 000009fc: PUSH2 0x0a0f 000009ff: CALLER 00000a00: PUSH1 0x37 00000a02: PUSH2 0x1afe 00000a05: SWAP1 00000a06: SWAP2 00000a07: SWAP1 00000a08: PUSH4 0xffffffff 00000a0d: AND 00000a0e: JUMP 00000a0f: JUMPDEST 00000a10: PUSH2 0x0a4e 00000a13: JUMPI 00000a14: PUSH1 0x40 00000a16: MLOAD 00000a17: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000a38: DUP2 00000a39: MSTORE 00000a3a: PUSH1 0x04 00000a3c: ADD 00000a3d: PUSH2 0x0a45 00000a40: SWAP1 00000a41: PUSH2 0x2cd8 00000a44: JUMP 00000a45: JUMPDEST 00000a46: PUSH1 0x40 00000a48: MLOAD 00000a49: DUP1 00000a4a: SWAP2 00000a4b: SUB 00000a4c: SWAP1 00000a4d: REVERT 00000a4e: JUMPDEST 00000a4f: PUSH1 0x00 00000a51: PUSH1 0x33 00000a53: SLOAD 00000a54: EQ 00000a55: PUSH2 0x0a9e 00000a58: JUMPI 00000a59: DUP1 00000a5a: PUSH1 0x33 00000a5c: SLOAD 00000a5d: LT 00000a5e: ISZERO 00000a5f: PUSH2 0x0a9d 00000a62: JUMPI 00000a63: PUSH1 0x40 00000a65: MLOAD 00000a66: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00000a87: DUP2 00000a88: MSTORE 00000a89: PUSH1 0x04 00000a8b: ADD 00000a8c: PUSH2 0x0a94 00000a8f: SWAP1 00000a90: PUSH2 0x2d44 00000a93: JUMP 00000a94: JUMPDEST 00000a95: PUSH1 0x40 00000a97: MLOAD 00000a98: DUP1 00000a99: SWAP2 00000a9a: SUB 00000a9b: SWAP1 00000a9c: REVERT 00000a9d: JUMPDEST 00000a9e: JUMPDEST 00000a9f: PUSH1 0x00 00000aa1: PUSH32 0x000000000000000000000000115682745f38a926e4a8155509546c6cd16bce02 00000ac2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ad7: AND 00000ad8: PUSH4 0xb47064c8 00000add: DUP6 00000ade: DUP6 00000adf: PUSH1 0x40 00000ae1: MLOAD 00000ae2: DUP4 00000ae3: PUSH4 0xffffffff 00000ae8: AND 00000ae9: PUSH1 0xe0 00000aeb: SHL 00000aec: DUP2 00000aed: MSTORE 00000aee: PUSH1 0x04 00000af0: ADD 00000af1: PUSH2 0x0afb 00000af4: SWAP3 00000af5: SWAP2 00000af6: SWAP1 00000af7: PUSH2 0x2d64 00000afa: JUMP 00000afb: JUMPDEST 00000afc: PUSH1 0x20 00000afe: PUSH1 0x40 00000b00: MLOAD 00000b01: DUP1 00000b02: DUP4 00000b03: SUB 00000b04: DUP2 00000b05: DUP7 00000b06: GAS 00000b07: STATICCALL 00000b08: ISZERO 00000b09: DUP1 00000b0a: ISZERO 00000b0b: PUSH2 0x0b18 00000b0e: JUMPI 00000b0f: RETURNDATASIZE 00000b10: PUSH1 0x00 00000b12: DUP1 00000b13: RETURNDATACOPY 00000b14: RETURNDATASIZE 00000b15: PUSH1 0x00 00000b17: REVERT 00000b18: JUMPDEST 00000b19: POP 00000b1a: POP 00000b1b: POP 00000b1c: POP 00000b1d: PUSH1 0x40 00000b1f: MLOAD 00000b20: RETURNDATASIZE 00000b21: PUSH1 0x1f 00000b23: NOT 00000b24: PUSH1 0x1f 00000b26: DUP3 00000b27: ADD 00000b28: AND 00000b29: DUP3 00000b2a: ADD 00000b2b: DUP1 00000b2c: PUSH1 0x40 00000b2e: MSTORE 00000b2f: POP 00000b30: DUP2 00000b31: ADD 00000b32: SWAP1 00000b33: PUSH2 0x0b3c 00000b36: SWAP2 00000b37: SWAP1 00000b38: PUSH2 0x2b40 00000b3b: JUMP 00000b3c: JUMPDEST 00000b3d: SWAP1 00000b3e: POP 00000b3f: DUP1 00000b40: DUP3 00000b41: GT 00000b42: PUSH2 0x0bd9 00000b45: JUMPI 00000b46: PUSH32 0x000000000000000000000000115682745f38a926e4a8155509546c6cd16bce02 00000b67: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b7c: AND 00000b7d: PUSH4 0x6f192acc 00000b82: DUP5 00000b83: DUP5 00000b84: DUP8 00000b85: PUSH1 0x40 00000b87: MLOAD 00000b88: DUP5 00000b89: PUSH4 0xffffffff 00000b8e: AND 00000b8f: PUSH1 0xe0 00000b91: SHL 00000b92: DUP2 00000b93: MSTORE 00000b94: PUSH1 0x04 00000b96: ADD 00000b97: PUSH2 0x0ba2 00000b9a: SWAP4 00000b9b: SWAP3 00000b9c: SWAP2 00000b9d: SWAP1 00000b9e: PUSH2 0x2d8d 00000ba1: JUMP 00000ba2: JUMPDEST 00000ba3: PUSH1 0x00 00000ba5: PUSH1 0x40 00000ba7: MLOAD 00000ba8: DUP1 00000ba9: DUP4 00000baa: SUB 00000bab: DUP2 00000bac: PUSH1 0x00 00000bae: DUP8 00000baf: DUP1 00000bb0: EXTCODESIZE 00000bb1: ISZERO 00000bb2: DUP1 00000bb3: ISZERO 00000bb4: PUSH2 0x0bbc 00000bb7: JUMPI 00000bb8: PUSH1 0x00 00000bba: DUP1 00000bbb: REVERT 00000bbc: JUMPDEST 00000bbd: POP 00000bbe: GAS 00000bbf: CALL 00000bc0: ISZERO 00000bc1: DUP1 00000bc2: ISZERO 00000bc3: PUSH2 0x0bd0 00000bc6: JUMPI 00000bc7: RETURNDATASIZE 00000bc8: PUSH1 0x00 00000bca: DUP1 00000bcb: RETURNDATACOPY 00000bcc: RETURNDATASIZE 00000bcd: PUSH1 0x00 00000bcf: REVERT 00000bd0: JUMPDEST 00000bd1: POP 00000bd2: POP 00000bd3: POP 00000bd4: POP 00000bd5: PUSH2 0x0c89 00000bd8: JUMP 00000bd9: JUMPDEST 00000bda: PUSH1 0x00 00000bdc: DUP2 00000bdd: GT 00000bde: ISZERO 00000bdf: PUSH2 0x0c72 00000be2: JUMPI 00000be3: PUSH32 0x000000000000000000000000115682745f38a926e4a8155509546c6cd16bce02 00000c04: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000c19: AND 00000c1a: PUSH4 0x6f192acc 00000c1f: DUP5 00000c20: DUP4 00000c21: DUP8 00000c22: PUSH1 0x40 00000c24: MLOAD 00000c25: DUP5 00000c26: PUSH4 0xffffffff 00000c2b: AND 00000c2c: PUSH1 0xe0 00000c2e: SHL 00000c2f: DUP2 00000c30: MSTORE 00000c31: PUSH1 0x04 00000c33: ADD 00000c34: PUSH2 0x0c3f 00000c37: SWAP4 00000c38: SWAP3 00000c39: SWAP2 00000c3a: SWAP1 00000c3b: PUSH2 0x2d8d 00000c3e: JUMP 00000c3f: JUMPDEST 00000c40: PUSH1 0x00 00000c42: PUSH1 0x40 00000c44: MLOAD 00000c45: DUP1 00000c46: DUP4 00000c47: SUB 00000c48: DUP2 00000c49: PUSH1 0x00 00000c4b: DUP8 00000c4c: DUP1 00000c4d: EXTCODESIZE 00000c4e: ISZERO 00000c4f: DUP1 00000c50: ISZERO 00000c51: PUSH2 0x0c59 00000c54: JUMPI 00000c55: PUSH1 0x00 00000c57: DUP1 00000c58: REVERT 00000c59: JUMPDEST 00000c5a: POP 00000c5b: GAS 00000c5c: CALL 00000c5d: ISZERO 00000c5e: DUP1 00000c5f: ISZERO 00000c60: PUSH2 0x0c6d 00000c63: JUMPI 00000c64: RETURNDATASIZE 00000c65: PUSH1 0x00 00000c67: DUP1 00000c68: RETURNDATACOPY 00000c69: RETURNDATASIZE 00000c6a: PUSH1 0x00 00000c6c: REVERT 00000c6d: JUMPDEST 00000c6e: POP 00000c6f: POP 00000c70: POP 00000c71: POP 00000c72: JUMPDEST 00000c73: PUSH2 0x0c88 00000c76: DUP5 00000c77: DUP5 00000c78: DUP4 00000c79: DUP6 00000c7a: PUSH2 0x0c83 00000c7d: SWAP2 00000c7e: SWAP1 00000c7f: PUSH2 0x2b9c 00000c82: JUMP 00000c83: JUMPDEST 00000c84: PUSH2 0x1b2e 00000c87: JUMP 00000c88: JUMPDEST 00000c89: JUMPDEST 00000c8a: DUP3 00000c8b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ca0: AND 00000ca1: ORIGIN 00000ca2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cb7: AND 00000cb8: DUP6 00000cb9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000cce: AND 00000ccf: PUSH32 0xe06da4bed68570a3adccb02d0aed523ccc1dd372f85808168917d1c4a7e78acb 00000cf0: DUP6 00000cf1: CALLER 00000cf2: PUSH1 0x40 00000cf4: MLOAD 00000cf5: PUSH2 0x0cff 00000cf8: SWAP3 00000cf9: SWAP2 00000cfa: SWAP1 00000cfb: PUSH2 0x2dc4 00000cfe: JUMP 00000cff: JUMPDEST 00000d00: PUSH1 0x40 00000d02: MLOAD 00000d03: DUP1 00000d04: SWAP2 00000d05: SUB 00000d06: SWAP1 00000d07: LOG4 00000d08: POP 00000d09: POP 00000d0a: POP 00000d0b: POP 00000d0c: JUMP 00000d0d: JUMPDEST 00000d0e: PUSH1 0x60 00000d10: PUSH1 0x00 00000d12: PUSH2 0x0d58 00000d15: PUSH1 0x36 00000d17: PUSH1 0x00 00000d19: DUP6 00000d1a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d2f: AND 00000d30: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d45: AND 00000d46: DUP2 00000d47: MSTORE 00000d48: PUSH1 0x20 00000d4a: ADD 00000d4b: SWAP1 00000d4c: DUP2 00000d4d: MSTORE 00000d4e: PUSH1 0x20 00000d50: ADD 00000d51: PUSH1 0x00 00000d53: KECCAK256 00000d54: PUSH2 0x1add 00000d57: JUMP 00000d58: JUMPDEST 00000d59: SWAP1 00000d5a: POP 00000d5b: PUSH1 0x00 00000d5d: PUSH32 0x000000000000000000000000115682745f38a926e4a8155509546c6cd16bce02 00000d7e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000d93: AND 00000d94: PUSH4 0x2bf30a0e 00000d99: DUP6 00000d9a: PUSH1 0x40 00000d9c: MLOAD 00000d9d: DUP3 00000d9e: PUSH4 0xffffffff 00000da3: AND 00000da4: PUSH1 0xe0 00000da6: SHL 00000da7: DUP2 00000da8: MSTORE 00000da9: PUSH1 0x04 00000dab: ADD 00000dac: PUSH2 0x0db5 00000daf: SWAP2 00000db0: SWAP1 00000db1: PUSH2 0x2b10 00000db4: JUMP 00000db5: JUMPDEST 00000db6: PUSH1 0x00 00000db8: PUSH1 0x40 00000dba: MLOAD 00000dbb: DUP1 00000dbc: DUP4 00000dbd: SUB 00000dbe: DUP2 00000dbf: DUP7 00000dc0: GAS 00000dc1: STATICCALL 00000dc2: ISZERO 00000dc3: DUP1 00000dc4: ISZERO 00000dc5: PUSH2 0x0dd2 00000dc8: JUMPI 00000dc9: RETURNDATASIZE 00000dca: PUSH1 0x00 00000dcc: DUP1 00000dcd: RETURNDATACOPY 00000dce: RETURNDATASIZE 00000dcf: PUSH1 0x00 00000dd1: REVERT 00000dd2: JUMPDEST 00000dd3: POP 00000dd4: POP 00000dd5: POP 00000dd6: POP 00000dd7: PUSH1 0x40 00000dd9: MLOAD 00000dda: RETURNDATASIZE 00000ddb: PUSH1 0x00 00000ddd: DUP3 00000dde: RETURNDATACOPY 00000ddf: RETURNDATASIZE 00000de0: PUSH1 0x1f 00000de2: NOT 00000de3: PUSH1 0x1f 00000de5: DUP3 00000de6: ADD 00000de7: AND 00000de8: DUP3 00000de9: ADD 00000dea: DUP1 00000deb: PUSH1 0x40 00000ded: MSTORE 00000dee: POP 00000def: DUP2 00000df0: ADD 00000df1: SWAP1 00000df2: PUSH2 0x0dfb 00000df5: SWAP2 00000df6: SWAP1 00000df7: PUSH2 0x2f5b 00000dfa: JUMP 00000dfb: JUMPDEST 00000dfc: SWAP1 00000dfd: POP 00000dfe: PUSH1 0x00 00000e00: DUP1 00000e01: JUMPDEST 00000e02: DUP3 00000e03: MLOAD 00000e04: DUP2 00000e05: LT 00000e06: ISZERO 00000e07: PUSH2 0x0f03 00000e0a: JUMPI 00000e0b: PUSH2 0x0e75 00000e0e: DUP4 00000e0f: DUP3 00000e10: DUP2 00000e11: MLOAD 00000e12: DUP2 00000e13: LT 00000e14: PUSH2 0x0e20 00000e17: JUMPI 00000e18: PUSH2 0x0e1f 00000e1b: PUSH2 0x2fa4 00000e1e: JUMP 00000e1f: JUMPDEST 00000e20: JUMPDEST 00000e21: PUSH1 0x20 00000e23: MUL 00000e24: PUSH1 0x20 00000e26: ADD 00000e27: ADD 00000e28: MLOAD 00000e29: PUSH1 0x36 00000e2b: PUSH1 0x00 00000e2d: DUP10 00000e2e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e43: AND 00000e44: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000e59: AND 00000e5a: DUP2 00000e5b: MSTORE 00000e5c: PUSH1 0x20 00000e5e: ADD 00000e5f: SWAP1 00000e60: DUP2 00000e61: MSTORE 00000e62: PUSH1 0x20 00000e64: ADD 00000e65: PUSH1 0x00 00000e67: KECCAK256 00000e68: PUSH2 0x1afe 00000e6b: SWAP1 00000e6c: SWAP2 00000e6d: SWAP1 00000e6e: PUSH4 0xffffffff 00000e73: AND 00000e74: JUMP 00000e75: JUMPDEST 00000e76: PUSH2 0x0ef0 00000e79: JUMPI 00000e7a: DUP3 00000e7b: DUP2 00000e7c: DUP2 00000e7d: MLOAD 00000e7e: DUP2 00000e7f: LT 00000e80: PUSH2 0x0e8c 00000e83: JUMPI 00000e84: PUSH2 0x0e8b 00000e87: PUSH2 0x2fa4 00000e8a: JUMP 00000e8b: JUMPDEST 00000e8c: JUMPDEST 00000e8d: PUSH1 0x20 00000e8f: MUL 00000e90: PUSH1 0x20 00000e92: ADD 00000e93: ADD 00000e94: MLOAD 00000e95: DUP4 00000e96: DUP4 00000e97: DUP2 00000e98: MLOAD 00000e99: DUP2 00000e9a: LT 00000e9b: PUSH2 0x0ea7 00000e9e: JUMPI 00000e9f: PUSH2 0x0ea6 00000ea2: PUSH2 0x2fa4 00000ea5: JUMP 00000ea6: JUMPDEST 00000ea7: JUMPDEST 00000ea8: PUSH1 0x20 00000eaa: MUL 00000eab: PUSH1 0x20 00000ead: ADD 00000eae: ADD 00000eaf: SWAP1 00000eb0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000ec5: AND 00000ec6: SWAP1 00000ec7: DUP2 00000ec8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000edd: AND 00000ede: DUP2 00000edf: MSTORE 00000ee0: POP 00000ee1: POP 00000ee2: DUP2 00000ee3: DUP1 00000ee4: PUSH2 0x0eec 00000ee7: SWAP1 00000ee8: PUSH2 0x2fd3 00000eeb: JUMP 00000eec: JUMPDEST 00000eed: SWAP3 00000eee: POP 00000eef: POP 00000ef0: JUMPDEST 00000ef1: DUP1 00000ef2: DUP1 00000ef3: PUSH2 0x0efb 00000ef6: SWAP1 00000ef7: PUSH2 0x2fd3 00000efa: JUMP 00000efb: JUMPDEST 00000efc: SWAP2 00000efd: POP 00000efe: POP 00000eff: PUSH2 0x0e01 00000f02: JUMP 00000f03: JUMPDEST 00000f04: POP 00000f05: PUSH1 0x00 00000f07: DUP2 00000f08: DUP5 00000f09: MLOAD 00000f0a: PUSH2 0x0f13 00000f0d: SWAP2 00000f0e: SWAP1 00000f0f: PUSH2 0x301b 00000f12: JUMP 00000f13: JUMPDEST 00000f14: SWAP1 00000f15: POP 00000f16: PUSH1 0x00 00000f18: DUP2 00000f19: PUSH8 0xffffffffffffffff 00000f22: DUP2 00000f23: GT 00000f24: ISZERO 00000f25: PUSH2 0x0f31 00000f28: JUMPI 00000f29: PUSH2 0x0f30 00000f2c: PUSH2 0x2e03 00000f2f: JUMP 00000f30: JUMPDEST 00000f31: JUMPDEST 00000f32: PUSH1 0x40 00000f34: MLOAD 00000f35: SWAP1 00000f36: DUP1 00000f37: DUP3 00000f38: MSTORE 00000f39: DUP1 00000f3a: PUSH1 0x20 00000f3c: MUL 00000f3d: PUSH1 0x20 00000f3f: ADD 00000f40: DUP3 00000f41: ADD 00000f42: PUSH1 0x40 00000f44: MSTORE 00000f45: DUP1 00000f46: ISZERO 00000f47: PUSH2 0x0f5f 00000f4a: JUMPI 00000f4b: DUP2 00000f4c: PUSH1 0x20 00000f4e: ADD 00000f4f: PUSH1 0x20 00000f51: DUP3 00000f52: MUL 00000f53: DUP1 00000f54: CALLDATASIZE 00000f55: DUP4 00000f56: CALLDATACOPY 00000f57: DUP1 00000f58: DUP3 00000f59: ADD 00000f5a: SWAP2 00000f5b: POP 00000f5c: POP 00000f5d: SWAP1 00000f5e: POP 00000f5f: JUMPDEST 00000f60: POP 00000f61: SWAP1 00000f62: POP 00000f63: PUSH1 0x00 00000f65: JUMPDEST 00000f66: DUP3 00000f67: DUP2 00000f68: LT 00000f69: ISZERO 00000f6a: PUSH2 0x1071 00000f6d: JUMPI 00000f6e: DUP6 00000f6f: MLOAD 00000f70: DUP2 00000f71: LT 00000f72: ISZERO 00000f73: PUSH2 0x0fe3 00000f76: JUMPI 00000f77: DUP6 00000f78: DUP2 00000f79: DUP2 00000f7a: MLOAD 00000f7b: DUP2 00000f7c: LT 00000f7d: PUSH2 0x0f89 00000f80: JUMPI 00000f81: PUSH2 0x0f88 00000f84: PUSH2 0x2fa4 00000f87: JUMP 00000f88: JUMPDEST 00000f89: JUMPDEST 00000f8a: PUSH1 0x20 00000f8c: MUL 00000f8d: PUSH1 0x20 00000f8f: ADD 00000f90: ADD 00000f91: MLOAD 00000f92: DUP3 00000f93: DUP3 00000f94: DUP2 00000f95: MLOAD 00000f96: DUP2 00000f97: LT 00000f98: PUSH2 0x0fa4 00000f9b: JUMPI 00000f9c: PUSH2 0x0fa3 00000f9f: PUSH2 0x2fa4 00000fa2: JUMP 00000fa3: JUMPDEST 00000fa4: JUMPDEST 00000fa5: PUSH1 0x20 00000fa7: MUL 00000fa8: PUSH1 0x20 00000faa: ADD 00000fab: ADD 00000fac: SWAP1 00000fad: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fc2: AND 00000fc3: SWAP1 00000fc4: DUP2 00000fc5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000fda: AND 00000fdb: DUP2 00000fdc: MSTORE 00000fdd: POP 00000fde: POP 00000fdf: PUSH2 0x105e 00000fe2: JUMP 00000fe3: JUMPDEST 00000fe4: PUSH1 0x00 00000fe6: DUP7 00000fe7: MLOAD 00000fe8: DUP3 00000fe9: PUSH2 0x0ff2 00000fec: SWAP2 00000fed: SWAP1 00000fee: PUSH2 0x2b9c 00000ff1: JUMP 00000ff2: JUMPDEST 00000ff3: SWAP1 00000ff4: POP 00000ff5: DUP6 00000ff6: DUP2 00000ff7: DUP2 00000ff8: MLOAD 00000ff9: DUP2 00000ffa: LT 00000ffb: PUSH2 0x1007 00000ffe: JUMPI 00000fff: PUSH2 0x1006 00001002: PUSH2 0x2fa4 00001005: JUMP 00001006: JUMPDEST 00001007: JUMPDEST 00001008: PUSH1 0x20 0000100a: MUL 0000100b: PUSH1 0x20 0000100d: ADD 0000100e: ADD 0000100f: MLOAD 00001010: DUP4 00001011: DUP4 00001012: DUP2 00001013: MLOAD 00001014: DUP2 00001015: LT 00001016: PUSH2 0x1022 00001019: JUMPI 0000101a: PUSH2 0x1021 0000101d: PUSH2 0x2fa4 00001020: JUMP 00001021: JUMPDEST 00001022: JUMPDEST 00001023: PUSH1 0x20 00001025: MUL 00001026: PUSH1 0x20 00001028: ADD 00001029: ADD 0000102a: SWAP1 0000102b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001040: AND 00001041: SWAP1 00001042: DUP2 00001043: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001058: AND 00001059: DUP2 0000105a: MSTORE 0000105b: POP 0000105c: POP 0000105d: POP 0000105e: JUMPDEST 0000105f: DUP1 00001060: DUP1 00001061: PUSH2 0x1069 00001064: SWAP1 00001065: PUSH2 0x2fd3 00001068: JUMP 00001069: JUMPDEST 0000106a: SWAP2 0000106b: POP 0000106c: POP 0000106d: PUSH2 0x0f65 00001070: JUMP 00001071: JUMPDEST 00001072: POP 00001073: DUP1 00001074: SWAP6 00001075: POP 00001076: POP 00001077: POP 00001078: POP 00001079: POP 0000107a: POP 0000107b: SWAP2 0000107c: SWAP1 0000107d: POP 0000107e: JUMP 0000107f: JUMPDEST 00001080: PUSH1 0x00 00001082: DUP1 00001083: PUSH2 0x108b 00001086: DUP4 00001087: PUSH2 0x13e0 0000108a: JUMP 0000108b: JUMPDEST 0000108c: SWAP1 0000108d: POP 0000108e: PUSH2 0x1153 00001091: PUSH1 0x34 00001093: PUSH1 0x00 00001095: DUP7 00001096: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010ab: AND 000010ac: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010c1: AND 000010c2: DUP2 000010c3: MSTORE 000010c4: PUSH1 0x20 000010c6: ADD 000010c7: SWAP1 000010c8: DUP2 000010c9: MSTORE 000010ca: PUSH1 0x20 000010cc: ADD 000010cd: PUSH1 0x00 000010cf: KECCAK256 000010d0: PUSH1 0x00 000010d2: DUP6 000010d3: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010e8: AND 000010e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000010fe: AND 000010ff: DUP2 00001100: MSTORE 00001101: PUSH1 0x20 00001103: ADD 00001104: SWAP1 00001105: DUP2 00001106: MSTORE 00001107: PUSH1 0x20 00001109: ADD 0000110a: PUSH1 0x00 0000110c: KECCAK256 0000110d: SLOAD 0000110e: PUSH1 0x35 00001110: PUSH1 0x00 00001112: DUP7 00001113: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001128: AND 00001129: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000113e: AND 0000113f: DUP2 00001140: MSTORE 00001141: PUSH1 0x20 00001143: ADD 00001144: SWAP1 00001145: DUP2 00001146: MSTORE 00001147: PUSH1 0x20 00001149: ADD 0000114a: PUSH1 0x00 0000114c: KECCAK256 0000114d: SLOAD 0000114e: DUP4 0000114f: PUSH2 0x1df1 00001152: JUMP 00001153: JUMPDEST 00001154: SWAP2 00001155: POP 00001156: POP 00001157: SWAP3 00001158: SWAP2 00001159: POP 0000115a: POP 0000115b: JUMP 0000115c: JUMPDEST 0000115d: PUSH1 0x35 0000115f: PUSH1 0x20 00001161: MSTORE 00001162: DUP1 00001163: PUSH1 0x00 00001165: MSTORE 00001166: PUSH1 0x40 00001168: PUSH1 0x00 0000116a: KECCAK256 0000116b: PUSH1 0x00 0000116d: SWAP2 0000116e: POP 0000116f: SWAP1 00001170: POP 00001171: SLOAD 00001172: DUP2 00001173: JUMP 00001174: JUMPDEST 00001175: PUSH32 0x000000000000000000000000115682745f38a926e4a8155509546c6cd16bce02 00001196: DUP2 00001197: JUMP 00001198: JUMPDEST 00001199: PUSH1 0x00 0000119b: DUP1 0000119c: PUSH2 0x11a5 0000119f: DUP5 000011a0: DUP5 000011a1: PUSH2 0x107f 000011a4: JUMP 000011a5: JUMPDEST 000011a6: SWAP1 000011a7: POP 000011a8: PUSH1 0x00 000011aa: PUSH32 0x000000000000000000000000115682745f38a926e4a8155509546c6cd16bce02 000011cb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011e0: AND 000011e1: PUSH4 0xb47064c8 000011e6: DUP7 000011e7: DUP7 000011e8: PUSH1 0x40 000011ea: MLOAD 000011eb: DUP4 000011ec: PUSH4 0xffffffff 000011f1: AND 000011f2: PUSH1 0xe0 000011f4: SHL 000011f5: DUP2 000011f6: MSTORE 000011f7: PUSH1 0x04 000011f9: ADD 000011fa: PUSH2 0x1204 000011fd: SWAP3 000011fe: SWAP2 000011ff: SWAP1 00001200: PUSH2 0x2d64 00001203: JUMP 00001204: JUMPDEST 00001205: PUSH1 0x20 00001207: PUSH1 0x40 00001209: MLOAD 0000120a: DUP1 0000120b: DUP4 0000120c: SUB 0000120d: DUP2 0000120e: DUP7 0000120f: GAS 00001210: STATICCALL 00001211: ISZERO 00001212: DUP1 00001213: ISZERO 00001214: PUSH2 0x1221 00001217: JUMPI 00001218: RETURNDATASIZE 00001219: PUSH1 0x00 0000121b: DUP1 0000121c: RETURNDATACOPY 0000121d: RETURNDATASIZE 0000121e: PUSH1 0x00 00001220: REVERT 00001221: JUMPDEST 00001222: POP 00001223: POP 00001224: POP 00001225: POP 00001226: PUSH1 0x40 00001228: MLOAD 00001229: RETURNDATASIZE 0000122a: PUSH1 0x1f 0000122c: NOT 0000122d: PUSH1 0x1f 0000122f: DUP3 00001230: ADD 00001231: AND 00001232: DUP3 00001233: ADD 00001234: DUP1 00001235: PUSH1 0x40 00001237: MSTORE 00001238: POP 00001239: DUP2 0000123a: ADD 0000123b: SWAP1 0000123c: PUSH2 0x1245 0000123f: SWAP2 00001240: SWAP1 00001241: PUSH2 0x2b40 00001244: JUMP 00001245: JUMPDEST 00001246: SWAP1 00001247: POP 00001248: PUSH1 0x00 0000124a: DUP2 0000124b: DUP4 0000124c: PUSH2 0x1255 0000124f: SWAP2 00001250: SWAP1 00001251: PUSH2 0x301b 00001254: JUMP 00001255: JUMPDEST 00001256: SWAP1 00001257: POP 00001258: DUP1 00001259: SWAP4 0000125a: POP 0000125b: POP 0000125c: POP 0000125d: POP 0000125e: SWAP3 0000125f: SWAP2 00001260: POP 00001261: POP 00001262: JUMP 00001263: JUMPDEST 00001264: PUSH1 0x00 00001266: PUSH1 0x01 00001268: SWAP1 00001269: SLOAD 0000126a: SWAP1 0000126b: PUSH2 0x0100 0000126e: EXP 0000126f: SWAP1 00001270: DIV 00001271: PUSH1 0xff 00001273: AND 00001274: PUSH2 0x128b 00001277: JUMPI 00001278: PUSH1 0x00 0000127a: DUP1 0000127b: SLOAD 0000127c: SWAP1 0000127d: PUSH2 0x0100 00001280: EXP 00001281: SWAP1 00001282: DIV 00001283: PUSH1 0xff 00001285: AND 00001286: ISZERO 00001287: PUSH2 0x1294 0000128a: JUMP 0000128b: JUMPDEST 0000128c: PUSH2 0x1293 0000128f: PUSH2 0x1e36 00001292: JUMP 00001293: JUMPDEST 00001294: JUMPDEST 00001295: PUSH2 0x12d3 00001298: JUMPI 00001299: PUSH1 0x40 0000129b: MLOAD 0000129c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000012bd: DUP2 000012be: MSTORE 000012bf: PUSH1 0x04 000012c1: ADD 000012c2: PUSH2 0x12ca 000012c5: SWAP1 000012c6: PUSH2 0x30e3 000012c9: JUMP 000012ca: JUMPDEST 000012cb: PUSH1 0x40 000012cd: MLOAD 000012ce: DUP1 000012cf: SWAP2 000012d0: SUB 000012d1: SWAP1 000012d2: REVERT 000012d3: JUMPDEST 000012d4: PUSH1 0x00 000012d6: DUP1 000012d7: PUSH1 0x01 000012d9: SWAP1 000012da: SLOAD 000012db: SWAP1 000012dc: PUSH2 0x0100 000012df: EXP 000012e0: SWAP1 000012e1: DIV 000012e2: PUSH1 0xff 000012e4: AND 000012e5: ISZERO 000012e6: SWAP1 000012e7: POP 000012e8: DUP1 000012e9: ISZERO 000012ea: PUSH2 0x1323 000012ed: JUMPI 000012ee: PUSH1 0x01 000012f0: PUSH1 0x00 000012f2: PUSH1 0x01 000012f4: PUSH2 0x0100 000012f7: EXP 000012f8: DUP2 000012f9: SLOAD 000012fa: DUP2 000012fb: PUSH1 0xff 000012fd: MUL 000012fe: NOT 000012ff: AND 00001300: SWAP1 00001301: DUP4 00001302: ISZERO 00001303: ISZERO 00001304: MUL 00001305: OR 00001306: SWAP1 00001307: SSTORE 00001308: POP 00001309: PUSH1 0x01 0000130b: PUSH1 0x00 0000130d: DUP1 0000130e: PUSH2 0x0100 00001311: EXP 00001312: DUP2 00001313: SLOAD 00001314: DUP2 00001315: PUSH1 0xff 00001317: MUL 00001318: NOT 00001319: AND 0000131a: SWAP1 0000131b: DUP4 0000131c: ISZERO 0000131d: ISZERO 0000131e: MUL 0000131f: OR 00001320: SWAP1 00001321: SSTORE 00001322: POP 00001323: JUMPDEST 00001324: DUP2 00001325: PUSH1 0x33 00001327: DUP2 00001328: SWAP1 00001329: SSTORE 0000132a: POP 0000132b: PUSH2 0x1332 0000132e: PUSH2 0x1e47 00001331: JUMP 00001332: JUMPDEST 00001333: DUP1 00001334: ISZERO 00001335: PUSH2 0x1353 00001338: JUMPI 00001339: PUSH1 0x00 0000133b: DUP1 0000133c: PUSH1 0x01 0000133e: PUSH2 0x0100 00001341: EXP 00001342: DUP2 00001343: SLOAD 00001344: DUP2 00001345: PUSH1 0xff 00001347: MUL 00001348: NOT 00001349: AND 0000134a: SWAP1 0000134b: DUP4 0000134c: ISZERO 0000134d: ISZERO 0000134e: MUL 0000134f: OR 00001350: SWAP1 00001351: SSTORE 00001352: POP 00001353: JUMPDEST 00001354: POP 00001355: POP 00001356: JUMP 00001357: JUMPDEST 00001358: PUSH2 0x13da 0000135b: DUP5 0000135c: PUSH4 0x23b872dd 00001361: PUSH1 0xe0 00001363: SHL 00001364: DUP6 00001365: DUP6 00001366: DUP6 00001367: PUSH1 0x40 00001369: MLOAD 0000136a: PUSH1 0x24 0000136c: ADD 0000136d: PUSH2 0x1378 00001370: SWAP4 00001371: SWAP3 00001372: SWAP2 00001373: SWAP1 00001374: PUSH2 0x3103 00001377: JUMP 00001378: JUMPDEST 00001379: PUSH1 0x40 0000137b: MLOAD 0000137c: PUSH1 0x20 0000137e: DUP2 0000137f: DUP4 00001380: SUB 00001381: SUB 00001382: DUP2 00001383: MSTORE 00001384: SWAP1 00001385: PUSH1 0x40 00001387: MSTORE 00001388: SWAP1 00001389: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000013a6: NOT 000013a7: AND 000013a8: PUSH1 0x20 000013aa: DUP3 000013ab: ADD 000013ac: DUP1 000013ad: MLOAD 000013ae: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000013cb: DUP4 000013cc: DUP2 000013cd: DUP4 000013ce: AND 000013cf: OR 000013d0: DUP4 000013d1: MSTORE 000013d2: POP 000013d3: POP 000013d4: POP 000013d5: POP 000013d6: PUSH2 0x1ea0 000013d9: JUMP 000013da: JUMPDEST 000013db: POP 000013dc: POP 000013dd: POP 000013de: POP 000013df: JUMP 000013e0: JUMPDEST 000013e1: PUSH1 0x00 000013e3: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 000013f8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000140d: AND 0000140e: DUP3 0000140f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001424: AND 00001425: SUB 00001426: PUSH2 0x1431 00001429: JUMPI 0000142a: SELFBALANCE 0000142b: SWAP1 0000142c: POP 0000142d: PUSH2 0x14ae 00001430: JUMP 00001431: JUMPDEST 00001432: DUP2 00001433: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001448: AND 00001449: PUSH4 0x70a08231 0000144e: ADDRESS 0000144f: PUSH1 0x40 00001451: MLOAD 00001452: DUP3 00001453: PUSH4 0xffffffff 00001458: AND 00001459: PUSH1 0xe0 0000145b: SHL 0000145c: DUP2 0000145d: MSTORE 0000145e: PUSH1 0x04 00001460: ADD 00001461: PUSH2 0x146a 00001464: SWAP2 00001465: SWAP1 00001466: PUSH2 0x2b10 00001469: JUMP 0000146a: JUMPDEST 0000146b: PUSH1 0x20 0000146d: PUSH1 0x40 0000146f: MLOAD 00001470: DUP1 00001471: DUP4 00001472: SUB 00001473: DUP2 00001474: DUP7 00001475: GAS 00001476: STATICCALL 00001477: ISZERO 00001478: DUP1 00001479: ISZERO 0000147a: PUSH2 0x1487 0000147d: JUMPI 0000147e: RETURNDATASIZE 0000147f: PUSH1 0x00 00001481: DUP1 00001482: RETURNDATACOPY 00001483: RETURNDATASIZE 00001484: PUSH1 0x00 00001486: REVERT 00001487: JUMPDEST 00001488: POP 00001489: POP 0000148a: POP 0000148b: POP 0000148c: PUSH1 0x40 0000148e: MLOAD 0000148f: RETURNDATASIZE 00001490: PUSH1 0x1f 00001492: NOT 00001493: PUSH1 0x1f 00001495: DUP3 00001496: ADD 00001497: AND 00001498: DUP3 00001499: ADD 0000149a: DUP1 0000149b: PUSH1 0x40 0000149d: MSTORE 0000149e: POP 0000149f: DUP2 000014a0: ADD 000014a1: SWAP1 000014a2: PUSH2 0x14ab 000014a5: SWAP2 000014a6: SWAP1 000014a7: PUSH2 0x2b40 000014aa: JUMP 000014ab: JUMPDEST 000014ac: SWAP1 000014ad: POP 000014ae: JUMPDEST 000014af: SWAP2 000014b0: SWAP1 000014b1: POP 000014b2: JUMP 000014b3: JUMPDEST 000014b4: PUSH1 0x00 000014b6: PUSH1 0x35 000014b8: PUSH1 0x00 000014ba: DUP6 000014bb: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014d0: AND 000014d1: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000014e6: AND 000014e7: DUP2 000014e8: MSTORE 000014e9: PUSH1 0x20 000014eb: ADD 000014ec: SWAP1 000014ed: DUP2 000014ee: MSTORE 000014ef: PUSH1 0x20 000014f1: ADD 000014f2: PUSH1 0x00 000014f4: KECCAK256 000014f5: SLOAD 000014f6: SWAP1 000014f7: POP 000014f8: PUSH1 0x00 000014fa: PUSH2 0x1505 000014fd: DUP6 000014fe: DUP6 000014ff: DUP5 00001500: DUP7 00001501: PUSH2 0x1f67 00001504: JUMP 00001505: JUMPDEST 00001506: SWAP1 00001507: POP 00001508: PUSH1 0x00 0000150a: DUP3 0000150b: SUB 0000150c: PUSH2 0x1558 0000150f: JUMPI 00001510: PUSH5 0xe8d4a51000 00001516: DUP2 00001517: LT 00001518: ISZERO 00001519: PUSH2 0x1557 0000151c: JUMPI 0000151d: PUSH1 0x40 0000151f: MLOAD 00001520: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001541: DUP2 00001542: MSTORE 00001543: PUSH1 0x04 00001545: ADD 00001546: PUSH2 0x154e 00001549: SWAP1 0000154a: PUSH2 0x31ac 0000154d: JUMP 0000154e: JUMPDEST 0000154f: PUSH1 0x40 00001551: MLOAD 00001552: DUP1 00001553: SWAP2 00001554: SUB 00001555: SWAP1 00001556: REVERT 00001557: JUMPDEST 00001558: JUMPDEST 00001559: PUSH1 0x00 0000155b: DUP2 0000155c: GT 0000155d: PUSH2 0x159b 00001560: JUMPI 00001561: PUSH1 0x40 00001563: MLOAD 00001564: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001585: DUP2 00001586: MSTORE 00001587: PUSH1 0x04 00001589: ADD 0000158a: PUSH2 0x1592 0000158d: SWAP1 0000158e: PUSH2 0x323e 00001591: JUMP 00001592: JUMPDEST 00001593: PUSH1 0x40 00001595: MLOAD 00001596: DUP1 00001597: SWAP2 00001598: SUB 00001599: SWAP1 0000159a: REVERT 0000159b: JUMPDEST 0000159c: DUP1 0000159d: PUSH1 0x34 0000159f: PUSH1 0x00 000015a1: DUP9 000015a2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015b7: AND 000015b8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015cd: AND 000015ce: DUP2 000015cf: MSTORE 000015d0: PUSH1 0x20 000015d2: ADD 000015d3: SWAP1 000015d4: DUP2 000015d5: MSTORE 000015d6: PUSH1 0x20 000015d8: ADD 000015d9: PUSH1 0x00 000015db: KECCAK256 000015dc: PUSH1 0x00 000015de: DUP8 000015df: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015f4: AND 000015f5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000160a: AND 0000160b: DUP2 0000160c: MSTORE 0000160d: PUSH1 0x20 0000160f: ADD 00001610: SWAP1 00001611: DUP2 00001612: MSTORE 00001613: PUSH1 0x20 00001615: ADD 00001616: PUSH1 0x00 00001618: KECCAK256 00001619: PUSH1 0x00 0000161b: DUP3 0000161c: DUP3 0000161d: SLOAD 0000161e: PUSH2 0x1627 00001621: SWAP2 00001622: SWAP1 00001623: PUSH2 0x301b 00001626: JUMP 00001627: JUMPDEST 00001628: SWAP3 00001629: POP 0000162a: POP 0000162b: DUP2 0000162c: SWAP1 0000162d: SSTORE 0000162e: POP 0000162f: DUP1 00001630: DUP3 00001631: PUSH2 0x163a 00001634: SWAP2 00001635: SWAP1 00001636: PUSH2 0x301b 00001639: JUMP 0000163a: JUMPDEST 0000163b: PUSH1 0x35 0000163d: PUSH1 0x00 0000163f: DUP8 00001640: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001655: AND 00001656: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000166b: AND 0000166c: DUP2 0000166d: MSTORE 0000166e: PUSH1 0x20 00001670: ADD 00001671: SWAP1 00001672: DUP2 00001673: MSTORE 00001674: PUSH1 0x20 00001676: ADD 00001677: PUSH1 0x00 00001679: KECCAK256 0000167a: DUP2 0000167b: SWAP1 0000167c: SSTORE 0000167d: POP 0000167e: PUSH2 0x16ce 00001681: DUP6 00001682: PUSH1 0x36 00001684: PUSH1 0x00 00001686: DUP10 00001687: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000169c: AND 0000169d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000016b2: AND 000016b3: DUP2 000016b4: MSTORE 000016b5: PUSH1 0x20 000016b7: ADD 000016b8: SWAP1 000016b9: DUP2 000016ba: MSTORE 000016bb: PUSH1 0x20 000016bd: ADD 000016be: PUSH1 0x00 000016c0: KECCAK256 000016c1: PUSH2 0x1700 000016c4: SWAP1 000016c5: SWAP2 000016c6: SWAP1 000016c7: PUSH4 0xffffffff 000016cc: AND 000016cd: JUMP 000016ce: JUMPDEST 000016cf: POP 000016d0: POP 000016d1: POP 000016d2: POP 000016d3: POP 000016d4: POP 000016d5: POP 000016d6: JUMP 000016d7: JUMPDEST 000016d8: PUSH1 0x00 000016da: PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 000016fb: SLOAD 000016fc: SWAP1 000016fd: POP 000016fe: SWAP1 000016ff: JUMP 00001700: JUMPDEST 00001701: PUSH1 0x00 00001703: PUSH2 0x1728 00001706: DUP4 00001707: PUSH1 0x00 00001709: ADD 0000170a: DUP4 0000170b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001720: AND 00001721: PUSH1 0x00 00001723: SHL 00001724: PUSH2 0x1fc8 00001727: JUMP 00001728: JUMPDEST 00001729: SWAP1 0000172a: POP 0000172b: SWAP3 0000172c: SWAP2 0000172d: POP 0000172e: POP 0000172f: JUMP 00001730: JUMPDEST 00001731: PUSH1 0x00 00001733: PUSH2 0x1758 00001736: DUP4 00001737: PUSH1 0x00 00001739: ADD 0000173a: DUP4 0000173b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001750: AND 00001751: PUSH1 0x00 00001753: SHL 00001754: PUSH2 0x2038 00001757: JUMP 00001758: JUMPDEST 00001759: SWAP1 0000175a: POP 0000175b: SWAP3 0000175c: SWAP2 0000175d: POP 0000175e: POP 0000175f: JUMP 00001760: JUMPDEST 00001761: PUSH1 0x00 00001763: PUSH2 0x176b 00001766: DUP4 00001767: PUSH2 0x13e0 0000176a: JUMP 0000176b: JUMPDEST 0000176c: SWAP1 0000176d: POP 0000176e: PUSH1 0x00 00001770: PUSH1 0x35 00001772: PUSH1 0x00 00001774: DUP6 00001775: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000178a: AND 0000178b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000017a0: AND 000017a1: DUP2 000017a2: MSTORE 000017a3: PUSH1 0x20 000017a5: ADD 000017a6: SWAP1 000017a7: DUP2 000017a8: MSTORE 000017a9: PUSH1 0x20 000017ab: ADD 000017ac: PUSH1 0x00 000017ae: KECCAK256 000017af: SLOAD 000017b0: SWAP1 000017b1: POP 000017b2: PUSH1 0x00 000017b4: PUSH2 0x17bf 000017b7: DUP6 000017b8: DUP6 000017b9: DUP5 000017ba: DUP7 000017bb: PUSH2 0x1f67 000017be: JUMP 000017bf: JUMPDEST 000017c0: SWAP1 000017c1: POP 000017c2: PUSH5 0xe8d4a51000 000017c8: DUP2 000017c9: DUP4 000017ca: PUSH2 0x17d3 000017cd: SWAP2 000017ce: SWAP1 000017cf: PUSH2 0x2b9c 000017d2: JUMP 000017d3: JUMPDEST 000017d4: LT 000017d5: ISZERO 000017d6: PUSH2 0x1814 000017d9: JUMPI 000017da: PUSH1 0x40 000017dc: MLOAD 000017dd: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000017fe: DUP2 000017ff: MSTORE 00001800: PUSH1 0x04 00001802: ADD 00001803: PUSH2 0x180b 00001806: SWAP1 00001807: PUSH2 0x32d0 0000180a: JUMP 0000180b: JUMPDEST 0000180c: PUSH1 0x40 0000180e: MLOAD 0000180f: DUP1 00001810: SWAP2 00001811: SUB 00001812: SWAP1 00001813: REVERT 00001814: JUMPDEST 00001815: PUSH1 0x00 00001817: PUSH1 0x34 00001819: PUSH1 0x00 0000181b: DUP9 0000181c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001831: AND 00001832: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001847: AND 00001848: DUP2 00001849: MSTORE 0000184a: PUSH1 0x20 0000184c: ADD 0000184d: SWAP1 0000184e: DUP2 0000184f: MSTORE 00001850: PUSH1 0x20 00001852: ADD 00001853: PUSH1 0x00 00001855: KECCAK256 00001856: PUSH1 0x00 00001858: DUP8 00001859: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000186e: AND 0000186f: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001884: AND 00001885: DUP2 00001886: MSTORE 00001887: PUSH1 0x20 00001889: ADD 0000188a: SWAP1 0000188b: DUP2 0000188c: MSTORE 0000188d: PUSH1 0x20 0000188f: ADD 00001890: PUSH1 0x00 00001892: KECCAK256 00001893: SLOAD 00001894: SWAP1 00001895: POP 00001896: DUP2 00001897: DUP2 00001898: PUSH2 0x18a1 0000189b: SWAP2 0000189c: SWAP1 0000189d: PUSH2 0x2b9c 000018a0: JUMP 000018a1: JUMPDEST 000018a2: PUSH1 0x34 000018a4: PUSH1 0x00 000018a6: DUP10 000018a7: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018bc: AND 000018bd: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018d2: AND 000018d3: DUP2 000018d4: MSTORE 000018d5: PUSH1 0x20 000018d7: ADD 000018d8: SWAP1 000018d9: DUP2 000018da: MSTORE 000018db: PUSH1 0x20 000018dd: ADD 000018de: PUSH1 0x00 000018e0: KECCAK256 000018e1: PUSH1 0x00 000018e3: DUP9 000018e4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000018f9: AND 000018fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000190f: AND 00001910: DUP2 00001911: MSTORE 00001912: PUSH1 0x20 00001914: ADD 00001915: SWAP1 00001916: DUP2 00001917: MSTORE 00001918: PUSH1 0x20 0000191a: ADD 0000191b: PUSH1 0x00 0000191d: KECCAK256 0000191e: DUP2 0000191f: SWAP1 00001920: SSTORE 00001921: POP 00001922: DUP2 00001923: DUP4 00001924: PUSH2 0x192d 00001927: SWAP2 00001928: SWAP1 00001929: PUSH2 0x2b9c 0000192c: JUMP 0000192d: JUMPDEST 0000192e: PUSH1 0x35 00001930: PUSH1 0x00 00001932: DUP9 00001933: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001948: AND 00001949: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000195e: AND 0000195f: DUP2 00001960: MSTORE 00001961: PUSH1 0x20 00001963: ADD 00001964: SWAP1 00001965: DUP2 00001966: MSTORE 00001967: PUSH1 0x20 00001969: ADD 0000196a: PUSH1 0x00 0000196c: KECCAK256 0000196d: DUP2 0000196e: SWAP1 0000196f: SSTORE 00001970: POP 00001971: DUP2 00001972: DUP2 00001973: SUB 00001974: PUSH2 0x19ca 00001977: JUMPI 00001978: PUSH2 0x19c8 0000197b: DUP7 0000197c: PUSH1 0x36 0000197e: PUSH1 0x00 00001980: DUP11 00001981: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001996: AND 00001997: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019ac: AND 000019ad: DUP2 000019ae: MSTORE 000019af: PUSH1 0x20 000019b1: ADD 000019b2: SWAP1 000019b3: DUP2 000019b4: MSTORE 000019b5: PUSH1 0x20 000019b7: ADD 000019b8: PUSH1 0x00 000019ba: KECCAK256 000019bb: PUSH2 0x1730 000019be: SWAP1 000019bf: SWAP2 000019c0: SWAP1 000019c1: PUSH4 0xffffffff 000019c6: AND 000019c7: JUMP 000019c8: JUMPDEST 000019c9: POP 000019ca: JUMPDEST 000019cb: POP 000019cc: POP 000019cd: POP 000019ce: POP 000019cf: POP 000019d0: POP 000019d1: POP 000019d2: JUMP 000019d3: JUMPDEST 000019d4: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 000019e9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000019fe: AND 000019ff: DUP3 00001a00: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a15: AND 00001a16: SUB 00001a17: PUSH2 0x1acc 00001a1a: JUMPI 00001a1b: PUSH1 0x00 00001a1d: DUP4 00001a1e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001a33: AND 00001a34: DUP3 00001a35: PUSH1 0x40 00001a37: MLOAD 00001a38: PUSH2 0x1a40 00001a3b: SWAP1 00001a3c: PUSH2 0x3321 00001a3f: JUMP 00001a40: JUMPDEST 00001a41: PUSH1 0x00 00001a43: PUSH1 0x40 00001a45: MLOAD 00001a46: DUP1 00001a47: DUP4 00001a48: SUB 00001a49: DUP2 00001a4a: DUP6 00001a4b: DUP8 00001a4c: GAS 00001a4d: CALL 00001a4e: SWAP3 00001a4f: POP 00001a50: POP 00001a51: POP 00001a52: RETURNDATASIZE 00001a53: DUP1 00001a54: PUSH1 0x00 00001a56: DUP2 00001a57: EQ 00001a58: PUSH2 0x1a7d 00001a5b: JUMPI 00001a5c: PUSH1 0x40 00001a5e: MLOAD 00001a5f: SWAP2 00001a60: POP 00001a61: PUSH1 0x1f 00001a63: NOT 00001a64: PUSH1 0x3f 00001a66: RETURNDATASIZE 00001a67: ADD 00001a68: AND 00001a69: DUP3 00001a6a: ADD 00001a6b: PUSH1 0x40 00001a6d: MSTORE 00001a6e: RETURNDATASIZE 00001a6f: DUP3 00001a70: MSTORE 00001a71: RETURNDATASIZE 00001a72: PUSH1 0x00 00001a74: PUSH1 0x20 00001a76: DUP5 00001a77: ADD 00001a78: RETURNDATACOPY 00001a79: PUSH2 0x1a82 00001a7c: JUMP 00001a7d: JUMPDEST 00001a7e: PUSH1 0x60 00001a80: SWAP2 00001a81: POP 00001a82: JUMPDEST 00001a83: POP 00001a84: POP 00001a85: SWAP1 00001a86: POP 00001a87: DUP1 00001a88: PUSH2 0x1ac6 00001a8b: JUMPI 00001a8c: PUSH1 0x40 00001a8e: MLOAD 00001a8f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001ab0: DUP2 00001ab1: MSTORE 00001ab2: PUSH1 0x04 00001ab4: ADD 00001ab5: PUSH2 0x1abd 00001ab8: SWAP1 00001ab9: PUSH2 0x3382 00001abc: JUMP 00001abd: JUMPDEST 00001abe: PUSH1 0x40 00001ac0: MLOAD 00001ac1: DUP1 00001ac2: SWAP2 00001ac3: SUB 00001ac4: SWAP1 00001ac5: REVERT 00001ac6: JUMPDEST 00001ac7: POP 00001ac8: PUSH2 0x1ad8 00001acb: JUMP 00001acc: JUMPDEST 00001acd: PUSH2 0x1ad7 00001ad0: DUP3 00001ad1: DUP5 00001ad2: DUP4 00001ad3: PUSH2 0x214c 00001ad6: JUMP 00001ad7: JUMPDEST 00001ad8: JUMPDEST 00001ad9: POP 00001ada: POP 00001adb: POP 00001adc: JUMP 00001add: JUMPDEST 00001ade: PUSH1 0x60 00001ae0: PUSH1 0x00 00001ae2: PUSH2 0x1aed 00001ae5: DUP4 00001ae6: PUSH1 0x00 00001ae8: ADD 00001ae9: PUSH2 0x21d2 00001aec: JUMP 00001aed: JUMPDEST 00001aee: SWAP1 00001aef: POP 00001af0: PUSH1 0x60 00001af2: DUP2 00001af3: SWAP1 00001af4: POP 00001af5: DUP1 00001af6: SWAP3 00001af7: POP 00001af8: POP 00001af9: POP 00001afa: SWAP2 00001afb: SWAP1 00001afc: POP 00001afd: JUMP 00001afe: JUMPDEST 00001aff: PUSH1 0x00 00001b01: PUSH2 0x1b26 00001b04: DUP4 00001b05: PUSH1 0x00 00001b07: ADD 00001b08: DUP4 00001b09: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b1e: AND 00001b1f: PUSH1 0x00 00001b21: SHL 00001b22: PUSH2 0x222e 00001b25: JUMP 00001b26: JUMPDEST 00001b27: SWAP1 00001b28: POP 00001b29: SWAP3 00001b2a: SWAP2 00001b2b: POP 00001b2c: POP 00001b2d: JUMP 00001b2e: JUMPDEST 00001b2f: PUSH1 0x00 00001b31: PUSH2 0x1b38 00001b34: PUSH2 0x16d7 00001b37: JUMP 00001b38: JUMPDEST 00001b39: SWAP1 00001b3a: POP 00001b3b: DUP1 00001b3c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b51: AND 00001b52: DUP5 00001b53: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001b68: AND 00001b69: SUB 00001b6a: PUSH2 0x1ba8 00001b6d: JUMPI 00001b6e: PUSH1 0x40 00001b70: MLOAD 00001b71: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001b92: DUP2 00001b93: MSTORE 00001b94: PUSH1 0x04 00001b96: ADD 00001b97: PUSH2 0x1b9f 00001b9a: SWAP1 00001b9b: PUSH2 0x33ee 00001b9e: JUMP 00001b9f: JUMPDEST 00001ba0: PUSH1 0x40 00001ba2: MLOAD 00001ba3: DUP1 00001ba4: SWAP2 00001ba5: SUB 00001ba6: SWAP1 00001ba7: REVERT 00001ba8: JUMPDEST 00001ba9: PUSH1 0x00 00001bab: PUSH2 0x1bb3 00001bae: DUP5 00001baf: PUSH2 0x13e0 00001bb2: JUMP 00001bb3: JUMPDEST 00001bb4: SWAP1 00001bb5: POP 00001bb6: PUSH1 0x00 00001bb8: PUSH2 0x1c02 00001bbb: DUP6 00001bbc: DUP6 00001bbd: PUSH1 0x35 00001bbf: PUSH1 0x00 00001bc1: DUP10 00001bc2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bd7: AND 00001bd8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001bed: AND 00001bee: DUP2 00001bef: MSTORE 00001bf0: PUSH1 0x20 00001bf2: ADD 00001bf3: SWAP1 00001bf4: DUP2 00001bf5: MSTORE 00001bf6: PUSH1 0x20 00001bf8: ADD 00001bf9: PUSH1 0x00 00001bfb: KECCAK256 00001bfc: SLOAD 00001bfd: DUP6 00001bfe: PUSH2 0x1f67 00001c01: JUMP 00001c02: JUMPDEST 00001c03: SWAP1 00001c04: POP 00001c05: DUP1 00001c06: PUSH1 0x34 00001c08: PUSH1 0x00 00001c0a: DUP9 00001c0b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c20: AND 00001c21: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c36: AND 00001c37: DUP2 00001c38: MSTORE 00001c39: PUSH1 0x20 00001c3b: ADD 00001c3c: SWAP1 00001c3d: DUP2 00001c3e: MSTORE 00001c3f: PUSH1 0x20 00001c41: ADD 00001c42: PUSH1 0x00 00001c44: KECCAK256 00001c45: PUSH1 0x00 00001c47: DUP8 00001c48: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c5d: AND 00001c5e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001c73: AND 00001c74: DUP2 00001c75: MSTORE 00001c76: PUSH1 0x20 00001c78: ADD 00001c79: SWAP1 00001c7a: DUP2 00001c7b: MSTORE 00001c7c: PUSH1 0x20 00001c7e: ADD 00001c7f: PUSH1 0x00 00001c81: KECCAK256 00001c82: SLOAD 00001c83: LT 00001c84: ISZERO 00001c85: PUSH2 0x1cc3 00001c88: JUMPI 00001c89: PUSH1 0x40 00001c8b: MLOAD 00001c8c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001cad: DUP2 00001cae: MSTORE 00001caf: PUSH1 0x04 00001cb1: ADD 00001cb2: PUSH2 0x1cba 00001cb5: SWAP1 00001cb6: PUSH2 0x345a 00001cb9: JUMP 00001cba: JUMPDEST 00001cbb: PUSH1 0x40 00001cbd: MLOAD 00001cbe: DUP1 00001cbf: SWAP2 00001cc0: SUB 00001cc1: SWAP1 00001cc2: REVERT 00001cc3: JUMPDEST 00001cc4: DUP1 00001cc5: PUSH1 0x34 00001cc7: PUSH1 0x00 00001cc9: DUP9 00001cca: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cdf: AND 00001ce0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001cf5: AND 00001cf6: DUP2 00001cf7: MSTORE 00001cf8: PUSH1 0x20 00001cfa: ADD 00001cfb: SWAP1 00001cfc: DUP2 00001cfd: MSTORE 00001cfe: PUSH1 0x20 00001d00: ADD 00001d01: PUSH1 0x00 00001d03: KECCAK256 00001d04: PUSH1 0x00 00001d06: DUP8 00001d07: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d1c: AND 00001d1d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d32: AND 00001d33: DUP2 00001d34: MSTORE 00001d35: PUSH1 0x20 00001d37: ADD 00001d38: SWAP1 00001d39: DUP2 00001d3a: MSTORE 00001d3b: PUSH1 0x20 00001d3d: ADD 00001d3e: PUSH1 0x00 00001d40: KECCAK256 00001d41: PUSH1 0x00 00001d43: DUP3 00001d44: DUP3 00001d45: SLOAD 00001d46: PUSH2 0x1d4f 00001d49: SWAP2 00001d4a: SWAP1 00001d4b: PUSH2 0x2b9c 00001d4e: JUMP 00001d4f: JUMPDEST 00001d50: SWAP3 00001d51: POP 00001d52: POP 00001d53: DUP2 00001d54: SWAP1 00001d55: SSTORE 00001d56: POP 00001d57: DUP1 00001d58: PUSH1 0x34 00001d5a: PUSH1 0x00 00001d5c: DUP6 00001d5d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d72: AND 00001d73: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d88: AND 00001d89: DUP2 00001d8a: MSTORE 00001d8b: PUSH1 0x20 00001d8d: ADD 00001d8e: SWAP1 00001d8f: DUP2 00001d90: MSTORE 00001d91: PUSH1 0x20 00001d93: ADD 00001d94: PUSH1 0x00 00001d96: KECCAK256 00001d97: PUSH1 0x00 00001d99: DUP8 00001d9a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001daf: AND 00001db0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001dc5: AND 00001dc6: DUP2 00001dc7: MSTORE 00001dc8: PUSH1 0x20 00001dca: ADD 00001dcb: SWAP1 00001dcc: DUP2 00001dcd: MSTORE 00001dce: PUSH1 0x20 00001dd0: ADD 00001dd1: PUSH1 0x00 00001dd3: KECCAK256 00001dd4: PUSH1 0x00 00001dd6: DUP3 00001dd7: DUP3 00001dd8: SLOAD 00001dd9: PUSH2 0x1de2 00001ddc: SWAP2 00001ddd: SWAP1 00001dde: PUSH2 0x301b 00001de1: JUMP 00001de2: JUMPDEST 00001de3: SWAP3 00001de4: POP 00001de5: POP 00001de6: DUP2 00001de7: SWAP1 00001de8: SSTORE 00001de9: POP 00001dea: POP 00001deb: POP 00001dec: POP 00001ded: POP 00001dee: POP 00001def: POP 00001df0: JUMP 00001df1: JUMPDEST 00001df2: PUSH1 0x00 00001df4: DUP1 00001df5: PUSH1 0x00 00001df7: DUP5 00001df8: EQ 00001df9: DUP1 00001dfa: PUSH2 0x1e03 00001dfd: JUMPI 00001dfe: POP 00001dff: PUSH1 0x00 00001e01: DUP4 00001e02: EQ 00001e03: JUMPDEST 00001e04: ISZERO 00001e05: PUSH2 0x1e11 00001e08: JUMPI 00001e09: PUSH1 0x00 00001e0b: SWAP1 00001e0c: POP 00001e0d: PUSH2 0x1e2b 00001e10: JUMP 00001e11: JUMPDEST 00001e12: DUP4 00001e13: DUP4 00001e14: DUP7 00001e15: PUSH2 0x1e1e 00001e18: SWAP2 00001e19: SWAP1 00001e1a: PUSH2 0x347a 00001e1d: JUMP 00001e1e: JUMPDEST 00001e1f: PUSH2 0x1e28 00001e22: SWAP2 00001e23: SWAP1 00001e24: PUSH2 0x3503 00001e27: JUMP 00001e28: JUMPDEST 00001e29: SWAP1 00001e2a: POP 00001e2b: JUMPDEST 00001e2c: DUP1 00001e2d: SWAP2 00001e2e: POP 00001e2f: POP 00001e30: SWAP4 00001e31: SWAP3 00001e32: POP 00001e33: POP 00001e34: POP 00001e35: JUMP 00001e36: JUMPDEST 00001e37: PUSH1 0x00 00001e39: PUSH2 0x1e41 00001e3c: ADDRESS 00001e3d: PUSH2 0x2251 00001e40: JUMP 00001e41: JUMPDEST 00001e42: ISZERO 00001e43: SWAP1 00001e44: POP 00001e45: SWAP1 00001e46: JUMP 00001e47: JUMPDEST 00001e48: PUSH1 0x00 00001e4a: PUSH1 0x01 00001e4c: SWAP1 00001e4d: SLOAD 00001e4e: SWAP1 00001e4f: PUSH2 0x0100 00001e52: EXP 00001e53: SWAP1 00001e54: DIV 00001e55: PUSH1 0xff 00001e57: AND 00001e58: PUSH2 0x1e96 00001e5b: JUMPI 00001e5c: PUSH1 0x40 00001e5e: MLOAD 00001e5f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001e80: DUP2 00001e81: MSTORE 00001e82: PUSH1 0x04 00001e84: ADD 00001e85: PUSH2 0x1e8d 00001e88: SWAP1 00001e89: PUSH2 0x35a6 00001e8c: JUMP 00001e8d: JUMPDEST 00001e8e: PUSH1 0x40 00001e90: MLOAD 00001e91: DUP1 00001e92: SWAP2 00001e93: SUB 00001e94: SWAP1 00001e95: REVERT 00001e96: JUMPDEST 00001e97: PUSH2 0x1e9e 00001e9a: PUSH2 0x2264 00001e9d: JUMP 00001e9e: JUMPDEST 00001e9f: JUMP 00001ea0: JUMPDEST 00001ea1: PUSH1 0x00 00001ea3: PUSH2 0x1f02 00001ea6: DUP3 00001ea7: PUSH1 0x40 00001ea9: MLOAD 00001eaa: DUP1 00001eab: PUSH1 0x40 00001ead: ADD 00001eae: PUSH1 0x40 00001eb0: MSTORE 00001eb1: DUP1 00001eb2: PUSH1 0x20 00001eb4: DUP2 00001eb5: MSTORE 00001eb6: PUSH1 0x20 00001eb8: ADD 00001eb9: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564 00001eda: DUP2 00001edb: MSTORE 00001edc: POP 00001edd: DUP6 00001ede: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001ef3: AND 00001ef4: PUSH2 0x22bc 00001ef7: SWAP1 00001ef8: SWAP3 00001ef9: SWAP2 00001efa: SWAP1 00001efb: PUSH4 0xffffffff 00001f00: AND 00001f01: JUMP 00001f02: JUMPDEST 00001f03: SWAP1 00001f04: POP 00001f05: PUSH1 0x00 00001f07: DUP2 00001f08: MLOAD 00001f09: GT 00001f0a: ISZERO 00001f0b: PUSH2 0x1f62 00001f0e: JUMPI 00001f0f: DUP1 00001f10: DUP1 00001f11: PUSH1 0x20 00001f13: ADD 00001f14: SWAP1 00001f15: MLOAD 00001f16: DUP2 00001f17: ADD 00001f18: SWAP1 00001f19: PUSH2 0x1f22 00001f1c: SWAP2 00001f1d: SWAP1 00001f1e: PUSH2 0x35db 00001f21: JUMP 00001f22: JUMPDEST 00001f23: PUSH2 0x1f61 00001f26: JUMPI 00001f27: PUSH1 0x40 00001f29: MLOAD 00001f2a: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00001f4b: DUP2 00001f4c: MSTORE 00001f4d: PUSH1 0x04 00001f4f: ADD 00001f50: PUSH2 0x1f58 00001f53: SWAP1 00001f54: PUSH2 0x367a 00001f57: JUMP 00001f58: JUMPDEST 00001f59: PUSH1 0x40 00001f5b: MLOAD 00001f5c: DUP1 00001f5d: SWAP2 00001f5e: SUB 00001f5f: SWAP1 00001f60: REVERT 00001f61: JUMPDEST 00001f62: JUMPDEST 00001f63: POP 00001f64: POP 00001f65: POP 00001f66: JUMP 00001f67: JUMPDEST 00001f68: PUSH1 0x00 00001f6a: DUP1 00001f6b: PUSH1 0x00 00001f6d: PUSH2 0x1f76 00001f70: DUP8 00001f71: DUP8 00001f72: PUSH2 0x22d4 00001f75: JUMP 00001f76: JUMPDEST 00001f77: SWAP1 00001f78: POP 00001f79: PUSH1 0x00 00001f7b: PUSH2 0x1f84 00001f7e: DUP9 00001f7f: DUP7 00001f80: PUSH2 0x22d4 00001f83: JUMP 00001f84: JUMPDEST 00001f85: SWAP1 00001f86: POP 00001f87: PUSH1 0x00 00001f89: DUP7 00001f8a: EQ 00001f8b: DUP1 00001f8c: PUSH2 0x1f95 00001f8f: JUMPI 00001f90: POP 00001f91: PUSH1 0x00 00001f93: DUP6 00001f94: EQ 00001f95: JUMPDEST 00001f96: ISZERO 00001f97: PUSH2 0x1fa2 00001f9a: JUMPI 00001f9b: DUP2 00001f9c: SWAP3 00001f9d: POP 00001f9e: PUSH2 0x1fba 00001fa1: JUMP 00001fa2: JUMPDEST 00001fa3: PUSH2 0x1fb7 00001fa6: DUP7 00001fa7: DUP4 00001fa8: PUSH2 0x1fb1 00001fab: SWAP2 00001fac: SWAP1 00001fad: PUSH2 0x347a 00001fb0: JUMP 00001fb1: JUMPDEST 00001fb2: DUP3 00001fb3: PUSH2 0x23fb 00001fb6: JUMP 00001fb7: JUMPDEST 00001fb8: SWAP3 00001fb9: POP 00001fba: JUMPDEST 00001fbb: DUP3 00001fbc: SWAP4 00001fbd: POP 00001fbe: POP 00001fbf: POP 00001fc0: POP 00001fc1: SWAP5 00001fc2: SWAP4 00001fc3: POP 00001fc4: POP 00001fc5: POP 00001fc6: POP 00001fc7: JUMP 00001fc8: JUMPDEST 00001fc9: PUSH1 0x00 00001fcb: PUSH2 0x1fd4 00001fce: DUP4 00001fcf: DUP4 00001fd0: PUSH2 0x222e 00001fd3: JUMP 00001fd4: JUMPDEST 00001fd5: PUSH2 0x202d 00001fd8: JUMPI 00001fd9: DUP3 00001fda: PUSH1 0x00 00001fdc: ADD 00001fdd: DUP3 00001fde: SWAP1 00001fdf: DUP1 00001fe0: PUSH1 0x01 00001fe2: DUP2 00001fe3: SLOAD 00001fe4: ADD 00001fe5: DUP1 00001fe6: DUP3 00001fe7: SSTORE 00001fe8: DUP1 00001fe9: SWAP2 00001fea: POP 00001feb: POP 00001fec: PUSH1 0x01 00001fee: SWAP1 00001fef: SUB 00001ff0: SWAP1 00001ff1: PUSH1 0x00 00001ff3: MSTORE 00001ff4: PUSH1 0x20 00001ff6: PUSH1 0x00 00001ff8: KECCAK256 00001ff9: ADD 00001ffa: PUSH1 0x00 00001ffc: SWAP1 00001ffd: SWAP2 00001ffe: SWAP1 00001fff: SWAP2 00002000: SWAP1 00002001: SWAP2 00002002: POP 00002003: SSTORE 00002004: DUP3 00002005: PUSH1 0x00 00002007: ADD 00002008: DUP1 00002009: SLOAD 0000200a: SWAP1 0000200b: POP 0000200c: DUP4 0000200d: PUSH1 0x01 0000200f: ADD 00002010: PUSH1 0x00 00002012: DUP5 00002013: DUP2 00002014: MSTORE 00002015: PUSH1 0x20 00002017: ADD 00002018: SWAP1 00002019: DUP2 0000201a: MSTORE 0000201b: PUSH1 0x20 0000201d: ADD 0000201e: PUSH1 0x00 00002020: KECCAK256 00002021: DUP2 00002022: SWAP1 00002023: SSTORE 00002024: POP 00002025: PUSH1 0x01 00002027: SWAP1 00002028: POP 00002029: PUSH2 0x2032 0000202c: JUMP 0000202d: JUMPDEST 0000202e: PUSH1 0x00 00002030: SWAP1 00002031: POP 00002032: JUMPDEST 00002033: SWAP3 00002034: SWAP2 00002035: POP 00002036: POP 00002037: JUMP 00002038: JUMPDEST 00002039: PUSH1 0x00 0000203b: DUP1 0000203c: DUP4 0000203d: PUSH1 0x01 0000203f: ADD 00002040: PUSH1 0x00 00002042: DUP5 00002043: DUP2 00002044: MSTORE 00002045: PUSH1 0x20 00002047: ADD 00002048: SWAP1 00002049: DUP2 0000204a: MSTORE 0000204b: PUSH1 0x20 0000204d: ADD 0000204e: PUSH1 0x00 00002050: KECCAK256 00002051: SLOAD 00002052: SWAP1 00002053: POP 00002054: PUSH1 0x00 00002056: DUP2 00002057: EQ 00002058: PUSH2 0x2140 0000205b: JUMPI 0000205c: PUSH1 0x00 0000205e: PUSH1 0x01 00002060: DUP3 00002061: PUSH2 0x206a 00002064: SWAP2 00002065: SWAP1 00002066: PUSH2 0x2b9c 00002069: JUMP 0000206a: JUMPDEST 0000206b: SWAP1 0000206c: POP 0000206d: PUSH1 0x00 0000206f: PUSH1 0x01 00002071: DUP7 00002072: PUSH1 0x00 00002074: ADD 00002075: DUP1 00002076: SLOAD 00002077: SWAP1 00002078: POP 00002079: PUSH2 0x2082 0000207c: SWAP2 0000207d: SWAP1 0000207e: PUSH2 0x2b9c 00002081: JUMP 00002082: JUMPDEST 00002083: SWAP1 00002084: POP 00002085: DUP2 00002086: DUP2 00002087: EQ 00002088: PUSH2 0x20f1 0000208b: JUMPI 0000208c: PUSH1 0x00 0000208e: DUP7 0000208f: PUSH1 0x00 00002091: ADD 00002092: DUP3 00002093: DUP2 00002094: SLOAD 00002095: DUP2 00002096: LT 00002097: PUSH2 0x20a3 0000209a: JUMPI 0000209b: PUSH2 0x20a2 0000209e: PUSH2 0x2fa4 000020a1: JUMP 000020a2: JUMPDEST 000020a3: JUMPDEST 000020a4: SWAP1 000020a5: PUSH1 0x00 000020a7: MSTORE 000020a8: PUSH1 0x20 000020aa: PUSH1 0x00 000020ac: KECCAK256 000020ad: ADD 000020ae: SLOAD 000020af: SWAP1 000020b0: POP 000020b1: DUP1 000020b2: DUP8 000020b3: PUSH1 0x00 000020b5: ADD 000020b6: DUP5 000020b7: DUP2 000020b8: SLOAD 000020b9: DUP2 000020ba: LT 000020bb: PUSH2 0x20c7 000020be: JUMPI 000020bf: PUSH2 0x20c6 000020c2: PUSH2 0x2fa4 000020c5: JUMP 000020c6: JUMPDEST 000020c7: JUMPDEST 000020c8: SWAP1 000020c9: PUSH1 0x00 000020cb: MSTORE 000020cc: PUSH1 0x20 000020ce: PUSH1 0x00 000020d0: KECCAK256 000020d1: ADD 000020d2: DUP2 000020d3: SWAP1 000020d4: SSTORE 000020d5: POP 000020d6: DUP4 000020d7: DUP8 000020d8: PUSH1 0x01 000020da: ADD 000020db: PUSH1 0x00 000020dd: DUP4 000020de: DUP2 000020df: MSTORE 000020e0: PUSH1 0x20 000020e2: ADD 000020e3: SWAP1 000020e4: DUP2 000020e5: MSTORE 000020e6: PUSH1 0x20 000020e8: ADD 000020e9: PUSH1 0x00 000020eb: KECCAK256 000020ec: DUP2 000020ed: SWAP1 000020ee: SSTORE 000020ef: POP 000020f0: POP 000020f1: JUMPDEST 000020f2: DUP6 000020f3: PUSH1 0x00 000020f5: ADD 000020f6: DUP1 000020f7: SLOAD 000020f8: DUP1 000020f9: PUSH2 0x2105 000020fc: JUMPI 000020fd: PUSH2 0x2104 00002100: PUSH2 0x369a 00002103: JUMP 00002104: JUMPDEST 00002105: JUMPDEST 00002106: PUSH1 0x01 00002108: SWAP1 00002109: SUB 0000210a: DUP2 0000210b: DUP2 0000210c: SWAP1 0000210d: PUSH1 0x00 0000210f: MSTORE 00002110: PUSH1 0x20 00002112: PUSH1 0x00 00002114: KECCAK256 00002115: ADD 00002116: PUSH1 0x00 00002118: SWAP1 00002119: SSTORE 0000211a: SWAP1 0000211b: SSTORE 0000211c: DUP6 0000211d: PUSH1 0x01 0000211f: ADD 00002120: PUSH1 0x00 00002122: DUP7 00002123: DUP2 00002124: MSTORE 00002125: PUSH1 0x20 00002127: ADD 00002128: SWAP1 00002129: DUP2 0000212a: MSTORE 0000212b: PUSH1 0x20 0000212d: ADD 0000212e: PUSH1 0x00 00002130: KECCAK256 00002131: PUSH1 0x00 00002133: SWAP1 00002134: SSTORE 00002135: PUSH1 0x01 00002137: SWAP4 00002138: POP 00002139: POP 0000213a: POP 0000213b: POP 0000213c: PUSH2 0x2146 0000213f: JUMP 00002140: JUMPDEST 00002141: PUSH1 0x00 00002143: SWAP2 00002144: POP 00002145: POP 00002146: JUMPDEST 00002147: SWAP3 00002148: SWAP2 00002149: POP 0000214a: POP 0000214b: JUMP 0000214c: JUMPDEST 0000214d: PUSH2 0x21cd 00002150: DUP4 00002151: PUSH4 0xa9059cbb 00002156: PUSH1 0xe0 00002158: SHL 00002159: DUP5 0000215a: DUP5 0000215b: PUSH1 0x40 0000215d: MLOAD 0000215e: PUSH1 0x24 00002160: ADD 00002161: PUSH2 0x216b 00002164: SWAP3 00002165: SWAP2 00002166: SWAP1 00002167: PUSH2 0x36c9 0000216a: JUMP 0000216b: JUMPDEST 0000216c: PUSH1 0x40 0000216e: MLOAD 0000216f: PUSH1 0x20 00002171: DUP2 00002172: DUP4 00002173: SUB 00002174: SUB 00002175: DUP2 00002176: MSTORE 00002177: SWAP1 00002178: PUSH1 0x40 0000217a: MSTORE 0000217b: SWAP1 0000217c: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00002199: NOT 0000219a: AND 0000219b: PUSH1 0x20 0000219d: DUP3 0000219e: ADD 0000219f: DUP1 000021a0: MLOAD 000021a1: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000021be: DUP4 000021bf: DUP2 000021c0: DUP4 000021c1: AND 000021c2: OR 000021c3: DUP4 000021c4: MSTORE 000021c5: POP 000021c6: POP 000021c7: POP 000021c8: POP 000021c9: PUSH2 0x1ea0 000021cc: JUMP 000021cd: JUMPDEST 000021ce: POP 000021cf: POP 000021d0: POP 000021d1: JUMP 000021d2: JUMPDEST 000021d3: PUSH1 0x60 000021d5: DUP2 000021d6: PUSH1 0x00 000021d8: ADD 000021d9: DUP1 000021da: SLOAD 000021db: DUP1 000021dc: PUSH1 0x20 000021de: MUL 000021df: PUSH1 0x20 000021e1: ADD 000021e2: PUSH1 0x40 000021e4: MLOAD 000021e5: SWAP1 000021e6: DUP2 000021e7: ADD 000021e8: PUSH1 0x40 000021ea: MSTORE 000021eb: DUP1 000021ec: SWAP3 000021ed: SWAP2 000021ee: SWAP1 000021ef: DUP2 000021f0: DUP2 000021f1: MSTORE 000021f2: PUSH1 0x20 000021f4: ADD 000021f5: DUP3 000021f6: DUP1 000021f7: SLOAD 000021f8: DUP1 000021f9: ISZERO 000021fa: PUSH2 0x2222 000021fd: JUMPI 000021fe: PUSH1 0x20 00002200: MUL 00002201: DUP3 00002202: ADD 00002203: SWAP2 00002204: SWAP1 00002205: PUSH1 0x00 00002207: MSTORE 00002208: PUSH1 0x20 0000220a: PUSH1 0x00 0000220c: KECCAK256 0000220d: SWAP1 0000220e: JUMPDEST 0000220f: DUP2 00002210: SLOAD 00002211: DUP2 00002212: MSTORE 00002213: PUSH1 0x20 00002215: ADD 00002216: SWAP1 00002217: PUSH1 0x01 00002219: ADD 0000221a: SWAP1 0000221b: DUP1 0000221c: DUP4 0000221d: GT 0000221e: PUSH2 0x220e 00002221: JUMPI 00002222: JUMPDEST 00002223: POP 00002224: POP 00002225: POP 00002226: POP 00002227: POP 00002228: SWAP1 00002229: POP 0000222a: SWAP2 0000222b: SWAP1 0000222c: POP 0000222d: JUMP 0000222e: JUMPDEST 0000222f: PUSH1 0x00 00002231: DUP1 00002232: DUP4 00002233: PUSH1 0x01 00002235: ADD 00002236: PUSH1 0x00 00002238: DUP5 00002239: DUP2 0000223a: MSTORE 0000223b: PUSH1 0x20 0000223d: ADD 0000223e: SWAP1 0000223f: DUP2 00002240: MSTORE 00002241: PUSH1 0x20 00002243: ADD 00002244: PUSH1 0x00 00002246: KECCAK256 00002247: SLOAD 00002248: EQ 00002249: ISZERO 0000224a: SWAP1 0000224b: POP 0000224c: SWAP3 0000224d: SWAP2 0000224e: POP 0000224f: POP 00002250: JUMP 00002251: JUMPDEST 00002252: PUSH1 0x00 00002254: DUP1 00002255: DUP3 00002256: EXTCODESIZE 00002257: SWAP1 00002258: POP 00002259: PUSH1 0x00 0000225b: DUP2 0000225c: GT 0000225d: SWAP2 0000225e: POP 0000225f: POP 00002260: SWAP2 00002261: SWAP1 00002262: POP 00002263: JUMP 00002264: JUMPDEST 00002265: PUSH1 0x00 00002267: PUSH1 0x01 00002269: SWAP1 0000226a: SLOAD 0000226b: SWAP1 0000226c: PUSH2 0x0100 0000226f: EXP 00002270: SWAP1 00002271: DIV 00002272: PUSH1 0xff 00002274: AND 00002275: PUSH2 0x22b3 00002278: JUMPI 00002279: PUSH1 0x40 0000227b: MLOAD 0000227c: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0000229d: DUP2 0000229e: MSTORE 0000229f: PUSH1 0x04 000022a1: ADD 000022a2: PUSH2 0x22aa 000022a5: SWAP1 000022a6: PUSH2 0x35a6 000022a9: JUMP 000022aa: JUMPDEST 000022ab: PUSH1 0x40 000022ad: MLOAD 000022ae: DUP1 000022af: SWAP2 000022b0: SUB 000022b1: SWAP1 000022b2: REVERT 000022b3: JUMPDEST 000022b4: PUSH1 0x01 000022b6: DUP1 000022b7: DUP2 000022b8: SWAP1 000022b9: SSTORE 000022ba: POP 000022bb: JUMP 000022bc: JUMPDEST 000022bd: PUSH1 0x60 000022bf: PUSH2 0x22cb 000022c2: DUP5 000022c3: DUP5 000022c4: PUSH1 0x00 000022c6: DUP6 000022c7: PUSH2 0x2458 000022ca: JUMP 000022cb: JUMPDEST 000022cc: SWAP1 000022cd: POP 000022ce: SWAP4 000022cf: SWAP3 000022d0: POP 000022d1: POP 000022d2: POP 000022d3: JUMP 000022d4: JUMPDEST 000022d5: PUSH1 0x00 000022d7: PUSH20 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 000022ec: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002301: AND 00002302: DUP4 00002303: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002318: AND 00002319: SUB 0000231a: PUSH2 0x2325 0000231d: JUMPI 0000231e: DUP2 0000231f: SWAP1 00002320: POP 00002321: PUSH2 0x23f5 00002324: JUMP 00002325: JUMPDEST 00002326: PUSH1 0x00 00002328: DUP4 00002329: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000233e: AND 0000233f: PUSH4 0x313ce567 00002344: PUSH1 0x40 00002346: MLOAD 00002347: DUP2 00002348: PUSH4 0xffffffff 0000234d: AND 0000234e: PUSH1 0xe0 00002350: SHL 00002351: DUP2 00002352: MSTORE 00002353: PUSH1 0x04 00002355: ADD 00002356: PUSH1 0x20 00002358: PUSH1 0x40 0000235a: MLOAD 0000235b: DUP1 0000235c: DUP4 0000235d: SUB 0000235e: DUP2 0000235f: DUP7 00002360: GAS 00002361: STATICCALL 00002362: ISZERO 00002363: DUP1 00002364: ISZERO 00002365: PUSH2 0x2372 00002368: JUMPI 00002369: RETURNDATASIZE 0000236a: PUSH1 0x00 0000236c: DUP1 0000236d: RETURNDATACOPY 0000236e: RETURNDATASIZE 0000236f: PUSH1 0x00 00002371: REVERT 00002372: JUMPDEST 00002373: POP 00002374: POP 00002375: POP 00002376: POP 00002377: PUSH1 0x40 00002379: MLOAD 0000237a: RETURNDATASIZE 0000237b: PUSH1 0x1f 0000237d: NOT 0000237e: PUSH1 0x1f 00002380: DUP3 00002381: ADD 00002382: AND 00002383: DUP3 00002384: ADD 00002385: DUP1 00002386: PUSH1 0x40 00002388: MSTORE 00002389: POP 0000238a: DUP2 0000238b: ADD 0000238c: SWAP1 0000238d: PUSH2 0x2396 00002390: SWAP2 00002391: SWAP1 00002392: PUSH2 0x2b40 00002395: JUMP 00002396: JUMPDEST 00002397: SWAP1 00002398: POP 00002399: PUSH1 0x12 0000239b: DUP2 0000239c: LT 0000239d: ISZERO 0000239e: PUSH2 0x23cd 000023a1: JUMPI 000023a2: DUP1 000023a3: PUSH1 0x12 000023a5: PUSH2 0x23ae 000023a8: SWAP2 000023a9: SWAP1 000023aa: PUSH2 0x2b9c 000023ad: JUMP 000023ae: JUMPDEST 000023af: PUSH1 0x0a 000023b1: PUSH2 0x23ba 000023b4: SWAP2 000023b5: SWAP1 000023b6: PUSH2 0x3825 000023b9: JUMP 000023ba: JUMPDEST 000023bb: DUP4 000023bc: PUSH2 0x23c5 000023bf: SWAP2 000023c0: SWAP1 000023c1: PUSH2 0x347a 000023c4: JUMP 000023c5: JUMPDEST 000023c6: SWAP2 000023c7: POP 000023c8: POP 000023c9: PUSH2 0x23f5 000023cc: JUMP 000023cd: JUMPDEST 000023ce: PUSH1 0x12 000023d0: DUP2 000023d1: PUSH2 0x23da 000023d4: SWAP2 000023d5: SWAP1 000023d6: PUSH2 0x2b9c 000023d9: JUMP 000023da: JUMPDEST 000023db: PUSH1 0x0a 000023dd: PUSH2 0x23e6 000023e0: SWAP2 000023e1: SWAP1 000023e2: PUSH2 0x3825 000023e5: JUMP 000023e6: JUMPDEST 000023e7: DUP4 000023e8: PUSH2 0x23f1 000023eb: SWAP2 000023ec: SWAP1 000023ed: PUSH2 0x3503 000023f0: JUMP 000023f1: JUMPDEST 000023f2: SWAP2 000023f3: POP 000023f4: POP 000023f5: JUMPDEST 000023f6: SWAP3 000023f7: SWAP2 000023f8: POP 000023f9: POP 000023fa: JUMP 000023fb: JUMPDEST 000023fc: PUSH1 0x00 000023fe: DUP1 000023ff: DUP3 00002400: DUP5 00002401: PUSH2 0x240a 00002404: SWAP2 00002405: SWAP1 00002406: PUSH2 0x3870 00002409: JUMP 0000240a: JUMPDEST 0000240b: SWAP1 0000240c: POP 0000240d: PUSH1 0x00 0000240f: DUP1 00002410: DUP3 00002411: SUB 00002412: PUSH2 0x2428 00002415: JUMPI 00002416: DUP4 00002417: DUP6 00002418: PUSH2 0x2421 0000241b: SWAP2 0000241c: SWAP1 0000241d: PUSH2 0x3503 00002420: JUMP 00002421: JUMPDEST 00002422: SWAP1 00002423: POP 00002424: PUSH2 0x244d 00002427: JUMP 00002428: JUMPDEST 00002429: DUP4 0000242a: DUP5 0000242b: DUP4 0000242c: DUP8 0000242d: PUSH2 0x2436 00002430: SWAP2 00002431: SWAP1 00002432: PUSH2 0x2b9c 00002435: JUMP 00002436: JUMPDEST 00002437: PUSH2 0x2440 0000243a: SWAP2 0000243b: SWAP1 0000243c: PUSH2 0x301b 0000243f: JUMP 00002440: JUMPDEST 00002441: PUSH2 0x244a 00002444: SWAP2 00002445: SWAP1 00002446: PUSH2 0x3503 00002449: JUMP 0000244a: JUMPDEST 0000244b: SWAP1 0000244c: POP 0000244d: JUMPDEST 0000244e: DUP1 0000244f: SWAP3 00002450: POP 00002451: POP 00002452: POP 00002453: SWAP3 00002454: SWAP2 00002455: POP 00002456: POP 00002457: JUMP 00002458: JUMPDEST 00002459: PUSH1 0x60 0000245b: DUP3 0000245c: SELFBALANCE 0000245d: LT 0000245e: ISZERO 0000245f: PUSH2 0x249d 00002462: JUMPI 00002463: PUSH1 0x40 00002465: MLOAD 00002466: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002487: DUP2 00002488: MSTORE 00002489: PUSH1 0x04 0000248b: ADD 0000248c: PUSH2 0x2494 0000248f: SWAP1 00002490: PUSH2 0x3913 00002493: JUMP 00002494: JUMPDEST 00002495: PUSH1 0x40 00002497: MLOAD 00002498: DUP1 00002499: SWAP2 0000249a: SUB 0000249b: SWAP1 0000249c: REVERT 0000249d: JUMPDEST 0000249e: PUSH2 0x24a6 000024a1: DUP6 000024a2: PUSH2 0x256c 000024a5: JUMP 000024a6: JUMPDEST 000024a7: PUSH2 0x24e5 000024aa: JUMPI 000024ab: PUSH1 0x40 000024ad: MLOAD 000024ae: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000024cf: DUP2 000024d0: MSTORE 000024d1: PUSH1 0x04 000024d3: ADD 000024d4: PUSH2 0x24dc 000024d7: SWAP1 000024d8: PUSH2 0x397f 000024db: JUMP 000024dc: JUMPDEST 000024dd: PUSH1 0x40 000024df: MLOAD 000024e0: DUP1 000024e1: SWAP2 000024e2: SUB 000024e3: SWAP1 000024e4: REVERT 000024e5: JUMPDEST 000024e6: PUSH1 0x00 000024e8: DUP1 000024e9: DUP7 000024ea: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000024ff: AND 00002500: DUP6 00002501: DUP8 00002502: PUSH1 0x40 00002504: MLOAD 00002505: PUSH2 0x250e 00002508: SWAP2 00002509: SWAP1 0000250a: PUSH2 0x3a0e 0000250d: JUMP 0000250e: JUMPDEST 0000250f: PUSH1 0x00 00002511: PUSH1 0x40 00002513: MLOAD 00002514: DUP1 00002515: DUP4 00002516: SUB 00002517: DUP2 00002518: DUP6 00002519: DUP8 0000251a: GAS 0000251b: CALL 0000251c: SWAP3 0000251d: POP 0000251e: POP 0000251f: POP 00002520: RETURNDATASIZE 00002521: DUP1 00002522: PUSH1 0x00 00002524: DUP2 00002525: EQ 00002526: PUSH2 0x254b 00002529: JUMPI 0000252a: PUSH1 0x40 0000252c: MLOAD 0000252d: SWAP2 0000252e: POP 0000252f: PUSH1 0x1f 00002531: NOT 00002532: PUSH1 0x3f 00002534: RETURNDATASIZE 00002535: ADD 00002536: AND 00002537: DUP3 00002538: ADD 00002539: PUSH1 0x40 0000253b: MSTORE 0000253c: RETURNDATASIZE 0000253d: DUP3 0000253e: MSTORE 0000253f: RETURNDATASIZE 00002540: PUSH1 0x00 00002542: PUSH1 0x20 00002544: DUP5 00002545: ADD 00002546: RETURNDATACOPY 00002547: PUSH2 0x2550 0000254a: JUMP 0000254b: JUMPDEST 0000254c: PUSH1 0x60 0000254e: SWAP2 0000254f: POP 00002550: JUMPDEST 00002551: POP 00002552: SWAP2 00002553: POP 00002554: SWAP2 00002555: POP 00002556: PUSH2 0x2560 00002559: DUP3 0000255a: DUP3 0000255b: DUP7 0000255c: PUSH2 0x258f 0000255f: JUMP 00002560: JUMPDEST 00002561: SWAP3 00002562: POP 00002563: POP 00002564: POP 00002565: SWAP5 00002566: SWAP4 00002567: POP 00002568: POP 00002569: POP 0000256a: POP 0000256b: JUMP 0000256c: JUMPDEST 0000256d: PUSH1 0x00 0000256f: DUP1 00002570: DUP3 00002571: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002586: AND 00002587: EXTCODESIZE 00002588: GT 00002589: SWAP1 0000258a: POP 0000258b: SWAP2 0000258c: SWAP1 0000258d: POP 0000258e: JUMP 0000258f: JUMPDEST 00002590: PUSH1 0x60 00002592: DUP4 00002593: ISZERO 00002594: PUSH2 0x259f 00002597: JUMPI 00002598: DUP3 00002599: SWAP1 0000259a: POP 0000259b: PUSH2 0x25ef 0000259e: JUMP 0000259f: JUMPDEST 000025a0: PUSH1 0x00 000025a2: DUP4 000025a3: MLOAD 000025a4: GT 000025a5: ISZERO 000025a6: PUSH2 0x25b2 000025a9: JUMPI 000025aa: DUP3 000025ab: MLOAD 000025ac: DUP1 000025ad: DUP5 000025ae: PUSH1 0x20 000025b0: ADD 000025b1: REVERT 000025b2: JUMPDEST 000025b3: DUP2 000025b4: PUSH1 0x40 000025b6: MLOAD 000025b7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 000025d8: DUP2 000025d9: MSTORE 000025da: PUSH1 0x04 000025dc: ADD 000025dd: PUSH2 0x25e6 000025e0: SWAP2 000025e1: SWAP1 000025e2: PUSH2 0x3a69 000025e5: JUMP 000025e6: JUMPDEST 000025e7: PUSH1 0x40 000025e9: MLOAD 000025ea: DUP1 000025eb: SWAP2 000025ec: SUB 000025ed: SWAP1 000025ee: REVERT 000025ef: JUMPDEST 000025f0: SWAP4 000025f1: SWAP3 000025f2: POP 000025f3: POP 000025f4: POP 000025f5: JUMP 000025f6: JUMPDEST 000025f7: PUSH1 0x00 000025f9: DUP2 000025fa: SWAP1 000025fb: POP 000025fc: SWAP2 000025fd: SWAP1 000025fe: POP 000025ff: JUMP 00002600: JUMPDEST 00002601: PUSH2 0x2609 00002604: DUP2 00002605: PUSH2 0x25f6 00002608: JUMP 00002609: JUMPDEST 0000260a: DUP3 0000260b: MSTORE 0000260c: POP 0000260d: POP 0000260e: JUMP 0000260f: JUMPDEST 00002610: PUSH1 0x00 00002612: PUSH1 0x20 00002614: DUP3 00002615: ADD 00002616: SWAP1 00002617: POP 00002618: PUSH2 0x2624 0000261b: PUSH1 0x00 0000261d: DUP4 0000261e: ADD 0000261f: DUP5 00002620: PUSH2 0x2600 00002623: JUMP 00002624: JUMPDEST 00002625: SWAP3 00002626: SWAP2 00002627: POP 00002628: POP 00002629: JUMP 0000262a: JUMPDEST 0000262b: PUSH1 0x00 0000262d: PUSH1 0x40 0000262f: MLOAD 00002630: SWAP1 00002631: POP 00002632: SWAP1 00002633: JUMP 00002634: JUMPDEST 00002635: PUSH1 0x00 00002637: DUP1 00002638: REVERT 00002639: JUMPDEST 0000263a: PUSH1 0x00 0000263c: DUP1 0000263d: REVERT 0000263e: JUMPDEST 0000263f: PUSH1 0x00 00002641: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002656: DUP3 00002657: AND 00002658: SWAP1 00002659: POP 0000265a: SWAP2 0000265b: SWAP1 0000265c: POP 0000265d: JUMP 0000265e: JUMPDEST 0000265f: PUSH1 0x00 00002661: PUSH2 0x2669 00002664: DUP3 00002665: PUSH2 0x263e 00002668: JUMP 00002669: JUMPDEST 0000266a: SWAP1 0000266b: POP 0000266c: SWAP2 0000266d: SWAP1 0000266e: POP 0000266f: JUMP 00002670: JUMPDEST 00002671: PUSH2 0x2679 00002674: DUP2 00002675: PUSH2 0x265e 00002678: JUMP 00002679: JUMPDEST 0000267a: DUP2 0000267b: EQ 0000267c: PUSH2 0x2684 0000267f: JUMPI 00002680: PUSH1 0x00 00002682: DUP1 00002683: REVERT 00002684: JUMPDEST 00002685: POP 00002686: JUMP 00002687: JUMPDEST 00002688: PUSH1 0x00 0000268a: DUP2 0000268b: CALLDATALOAD 0000268c: SWAP1 0000268d: POP 0000268e: PUSH2 0x2696 00002691: DUP2 00002692: PUSH2 0x2670 00002695: JUMP 00002696: JUMPDEST 00002697: SWAP3 00002698: SWAP2 00002699: POP 0000269a: POP 0000269b: JUMP 0000269c: JUMPDEST 0000269d: PUSH1 0x00 0000269f: DUP2 000026a0: ISZERO 000026a1: ISZERO 000026a2: SWAP1 000026a3: POP 000026a4: SWAP2 000026a5: SWAP1 000026a6: POP 000026a7: JUMP 000026a8: JUMPDEST 000026a9: PUSH2 0x26b1 000026ac: DUP2 000026ad: PUSH2 0x269c 000026b0: JUMP 000026b1: JUMPDEST 000026b2: DUP2 000026b3: EQ 000026b4: PUSH2 0x26bc 000026b7: JUMPI 000026b8: PUSH1 0x00 000026ba: DUP1 000026bb: REVERT 000026bc: JUMPDEST 000026bd: POP 000026be: JUMP 000026bf: JUMPDEST 000026c0: PUSH1 0x00 000026c2: DUP2 000026c3: CALLDATALOAD 000026c4: SWAP1 000026c5: POP 000026c6: PUSH2 0x26ce 000026c9: DUP2 000026ca: PUSH2 0x26a8 000026cd: JUMP 000026ce: JUMPDEST 000026cf: SWAP3 000026d0: SWAP2 000026d1: POP 000026d2: POP 000026d3: JUMP 000026d4: JUMPDEST 000026d5: PUSH1 0x00 000026d7: DUP1 000026d8: PUSH1 0x40 000026da: DUP4 000026db: DUP6 000026dc: SUB 000026dd: SLT 000026de: ISZERO 000026df: PUSH2 0x26eb 000026e2: JUMPI 000026e3: PUSH2 0x26ea 000026e6: PUSH2 0x2634 000026e9: JUMP 000026ea: JUMPDEST 000026eb: JUMPDEST 000026ec: PUSH1 0x00 000026ee: PUSH2 0x26f9 000026f1: DUP6 000026f2: DUP3 000026f3: DUP7 000026f4: ADD 000026f5: PUSH2 0x2687 000026f8: JUMP 000026f9: JUMPDEST 000026fa: SWAP3 000026fb: POP 000026fc: POP 000026fd: PUSH1 0x20 000026ff: PUSH2 0x270a 00002702: DUP6 00002703: DUP3 00002704: DUP7 00002705: ADD 00002706: PUSH2 0x26bf 00002709: JUMP 0000270a: JUMPDEST 0000270b: SWAP2 0000270c: POP 0000270d: POP 0000270e: SWAP3 0000270f: POP 00002710: SWAP3 00002711: SWAP1 00002712: POP 00002713: JUMP 00002714: JUMPDEST 00002715: PUSH1 0x00 00002717: PUSH2 0x271f 0000271a: DUP3 0000271b: PUSH2 0x263e 0000271e: JUMP 0000271f: JUMPDEST 00002720: SWAP1 00002721: POP 00002722: SWAP2 00002723: SWAP1 00002724: POP 00002725: JUMP 00002726: JUMPDEST 00002727: PUSH2 0x272f 0000272a: DUP2 0000272b: PUSH2 0x2714 0000272e: JUMP 0000272f: JUMPDEST 00002730: DUP2 00002731: EQ 00002732: PUSH2 0x273a 00002735: JUMPI 00002736: PUSH1 0x00 00002738: DUP1 00002739: REVERT 0000273a: JUMPDEST 0000273b: POP 0000273c: JUMP 0000273d: JUMPDEST 0000273e: PUSH1 0x00 00002740: DUP2 00002741: CALLDATALOAD 00002742: SWAP1 00002743: POP 00002744: PUSH2 0x274c 00002747: DUP2 00002748: PUSH2 0x2726 0000274b: JUMP 0000274c: JUMPDEST 0000274d: SWAP3 0000274e: SWAP2 0000274f: POP 00002750: POP 00002751: JUMP 00002752: JUMPDEST 00002753: PUSH2 0x275b 00002756: DUP2 00002757: PUSH2 0x25f6 0000275a: JUMP 0000275b: JUMPDEST 0000275c: DUP2 0000275d: EQ 0000275e: PUSH2 0x2766 00002761: JUMPI 00002762: PUSH1 0x00 00002764: DUP1 00002765: REVERT 00002766: JUMPDEST 00002767: POP 00002768: JUMP 00002769: JUMPDEST 0000276a: PUSH1 0x00 0000276c: DUP2 0000276d: CALLDATALOAD 0000276e: SWAP1 0000276f: POP 00002770: PUSH2 0x2778 00002773: DUP2 00002774: PUSH2 0x2752 00002777: JUMP 00002778: JUMPDEST 00002779: SWAP3 0000277a: SWAP2 0000277b: POP 0000277c: POP 0000277d: JUMP 0000277e: JUMPDEST 0000277f: PUSH1 0x00 00002781: DUP1 00002782: PUSH1 0x00 00002784: PUSH1 0x60 00002786: DUP5 00002787: DUP7 00002788: SUB 00002789: SLT 0000278a: ISZERO 0000278b: PUSH2 0x2797 0000278e: JUMPI 0000278f: PUSH2 0x2796 00002792: PUSH2 0x2634 00002795: JUMP 00002796: JUMPDEST 00002797: JUMPDEST 00002798: PUSH1 0x00 0000279a: PUSH2 0x27a5 0000279d: DUP7 0000279e: DUP3 0000279f: DUP8 000027a0: ADD 000027a1: PUSH2 0x273d 000027a4: JUMP 000027a5: JUMPDEST 000027a6: SWAP4 000027a7: POP 000027a8: POP 000027a9: PUSH1 0x20 000027ab: PUSH2 0x27b6 000027ae: DUP7 000027af: DUP3 000027b0: DUP8 000027b1: ADD 000027b2: PUSH2 0x2687 000027b5: JUMP 000027b6: JUMPDEST 000027b7: SWAP3 000027b8: POP 000027b9: POP 000027ba: PUSH1 0x40 000027bc: PUSH2 0x27c7 000027bf: DUP7 000027c0: DUP3 000027c1: DUP8 000027c2: ADD 000027c3: PUSH2 0x2769 000027c6: JUMP 000027c7: JUMPDEST 000027c8: SWAP2 000027c9: POP 000027ca: POP 000027cb: SWAP3 000027cc: POP 000027cd: SWAP3 000027ce: POP 000027cf: SWAP3 000027d0: JUMP 000027d1: JUMPDEST 000027d2: PUSH1 0x00 000027d4: PUSH1 0x20 000027d6: DUP3 000027d7: DUP5 000027d8: SUB 000027d9: SLT 000027da: ISZERO 000027db: PUSH2 0x27e7 000027de: JUMPI 000027df: PUSH2 0x27e6 000027e2: PUSH2 0x2634 000027e5: JUMP 000027e6: JUMPDEST 000027e7: JUMPDEST 000027e8: PUSH1 0x00 000027ea: PUSH2 0x27f5 000027ed: DUP5 000027ee: DUP3 000027ef: DUP6 000027f0: ADD 000027f1: PUSH2 0x2687 000027f4: JUMP 000027f5: JUMPDEST 000027f6: SWAP2 000027f7: POP 000027f8: POP 000027f9: SWAP3 000027fa: SWAP2 000027fb: POP 000027fc: POP 000027fd: JUMP 000027fe: JUMPDEST 000027ff: PUSH1 0x00 00002801: DUP2 00002802: MLOAD 00002803: SWAP1 00002804: POP 00002805: SWAP2 00002806: SWAP1 00002807: POP 00002808: JUMP 00002809: JUMPDEST 0000280a: PUSH1 0x00 0000280c: DUP3 0000280d: DUP3 0000280e: MSTORE 0000280f: PUSH1 0x20 00002811: DUP3 00002812: ADD 00002813: SWAP1 00002814: POP 00002815: SWAP3 00002816: SWAP2 00002817: POP 00002818: POP 00002819: JUMP 0000281a: JUMPDEST 0000281b: PUSH1 0x00 0000281d: DUP2 0000281e: SWAP1 0000281f: POP 00002820: PUSH1 0x20 00002822: DUP3 00002823: ADD 00002824: SWAP1 00002825: POP 00002826: SWAP2 00002827: SWAP1 00002828: POP 00002829: JUMP 0000282a: JUMPDEST 0000282b: PUSH2 0x2833 0000282e: DUP2 0000282f: PUSH2 0x265e 00002832: JUMP 00002833: JUMPDEST 00002834: DUP3 00002835: MSTORE 00002836: POP 00002837: POP 00002838: JUMP 00002839: JUMPDEST 0000283a: PUSH1 0x00 0000283c: PUSH2 0x2845 0000283f: DUP4 00002840: DUP4 00002841: PUSH2 0x282a 00002844: JUMP 00002845: JUMPDEST 00002846: PUSH1 0x20 00002848: DUP4 00002849: ADD 0000284a: SWAP1 0000284b: POP 0000284c: SWAP3 0000284d: SWAP2 0000284e: POP 0000284f: POP 00002850: JUMP 00002851: JUMPDEST 00002852: PUSH1 0x00 00002854: PUSH1 0x20 00002856: DUP3 00002857: ADD 00002858: SWAP1 00002859: POP 0000285a: SWAP2 0000285b: SWAP1 0000285c: POP 0000285d: JUMP 0000285e: JUMPDEST 0000285f: PUSH1 0x00 00002861: PUSH2 0x2869 00002864: DUP3 00002865: PUSH2 0x27fe 00002868: JUMP 00002869: JUMPDEST 0000286a: PUSH2 0x2873 0000286d: DUP2 0000286e: DUP6 0000286f: PUSH2 0x2809 00002872: JUMP 00002873: JUMPDEST 00002874: SWAP4 00002875: POP 00002876: PUSH2 0x287e 00002879: DUP4 0000287a: PUSH2 0x281a 0000287d: JUMP 0000287e: JUMPDEST 0000287f: DUP1 00002880: PUSH1 0x00 00002882: JUMPDEST 00002883: DUP4 00002884: DUP2 00002885: LT 00002886: ISZERO 00002887: PUSH2 0x28af 0000288a: JUMPI 0000288b: DUP2 0000288c: MLOAD 0000288d: PUSH2 0x2896 00002890: DUP9 00002891: DUP3 00002892: PUSH2 0x2839 00002895: JUMP 00002896: JUMPDEST 00002897: SWAP8 00002898: POP 00002899: PUSH2 0x28a1 0000289c: DUP4 0000289d: PUSH2 0x2851 000028a0: JUMP 000028a1: JUMPDEST 000028a2: SWAP3 000028a3: POP 000028a4: POP 000028a5: PUSH1 0x01 000028a7: DUP2 000028a8: ADD 000028a9: SWAP1 000028aa: POP 000028ab: PUSH2 0x2882 000028ae: JUMP 000028af: JUMPDEST 000028b0: POP 000028b1: DUP6 000028b2: SWAP4 000028b3: POP 000028b4: POP 000028b5: POP 000028b6: POP 000028b7: SWAP3 000028b8: SWAP2 000028b9: POP 000028ba: POP 000028bb: JUMP 000028bc: JUMPDEST 000028bd: PUSH1 0x00 000028bf: PUSH1 0x20 000028c1: DUP3 000028c2: ADD 000028c3: SWAP1 000028c4: POP 000028c5: DUP2 000028c6: DUP2 000028c7: SUB 000028c8: PUSH1 0x00 000028ca: DUP4 000028cb: ADD 000028cc: MSTORE 000028cd: PUSH2 0x28d6 000028d0: DUP2 000028d1: DUP5 000028d2: PUSH2 0x285e 000028d5: JUMP 000028d6: JUMPDEST 000028d7: SWAP1 000028d8: POP 000028d9: SWAP3 000028da: SWAP2 000028db: POP 000028dc: POP 000028dd: JUMP 000028de: JUMPDEST 000028df: PUSH1 0x00 000028e1: PUSH1 0x20 000028e3: DUP3 000028e4: DUP5 000028e5: SUB 000028e6: SLT 000028e7: ISZERO 000028e8: PUSH2 0x28f4 000028eb: JUMPI 000028ec: PUSH2 0x28f3 000028ef: PUSH2 0x2634 000028f2: JUMP 000028f3: JUMPDEST 000028f4: JUMPDEST 000028f5: PUSH1 0x00 000028f7: PUSH2 0x2902 000028fa: DUP5 000028fb: DUP3 000028fc: DUP6 000028fd: ADD 000028fe: PUSH2 0x2769 00002901: JUMP 00002902: JUMPDEST 00002903: SWAP2 00002904: POP 00002905: POP 00002906: SWAP3 00002907: SWAP2 00002908: POP 00002909: POP 0000290a: JUMP 0000290b: JUMPDEST 0000290c: PUSH1 0x00 0000290e: DUP1 0000290f: PUSH1 0x40 00002911: DUP4 00002912: DUP6 00002913: SUB 00002914: SLT 00002915: ISZERO 00002916: PUSH2 0x2922 00002919: JUMPI 0000291a: PUSH2 0x2921 0000291d: PUSH2 0x2634 00002920: JUMP 00002921: JUMPDEST 00002922: JUMPDEST 00002923: PUSH1 0x00 00002925: PUSH2 0x2930 00002928: DUP6 00002929: DUP3 0000292a: DUP7 0000292b: ADD 0000292c: PUSH2 0x2687 0000292f: JUMP 00002930: JUMPDEST 00002931: SWAP3 00002932: POP 00002933: POP 00002934: PUSH1 0x20 00002936: PUSH2 0x2941 00002939: DUP6 0000293a: DUP3 0000293b: DUP7 0000293c: ADD 0000293d: PUSH2 0x2687 00002940: JUMP 00002941: JUMPDEST 00002942: SWAP2 00002943: POP 00002944: POP 00002945: SWAP3 00002946: POP 00002947: SWAP3 00002948: SWAP1 00002949: POP 0000294a: JUMP 0000294b: JUMPDEST 0000294c: PUSH1 0x00 0000294e: DUP1 0000294f: PUSH1 0x00 00002951: PUSH1 0x60 00002953: DUP5 00002954: DUP7 00002955: SUB 00002956: SLT 00002957: ISZERO 00002958: PUSH2 0x2964 0000295b: JUMPI 0000295c: PUSH2 0x2963 0000295f: PUSH2 0x2634 00002962: JUMP 00002963: JUMPDEST 00002964: JUMPDEST 00002965: PUSH1 0x00 00002967: PUSH2 0x2972 0000296a: DUP7 0000296b: DUP3 0000296c: DUP8 0000296d: ADD 0000296e: PUSH2 0x2687 00002971: JUMP 00002972: JUMPDEST 00002973: SWAP4 00002974: POP 00002975: POP 00002976: PUSH1 0x20 00002978: PUSH2 0x2983 0000297b: DUP7 0000297c: DUP3 0000297d: DUP8 0000297e: ADD 0000297f: PUSH2 0x2687 00002982: JUMP 00002983: JUMPDEST 00002984: SWAP3 00002985: POP 00002986: POP 00002987: PUSH1 0x40 00002989: PUSH2 0x2994 0000298c: DUP7 0000298d: DUP3 0000298e: DUP8 0000298f: ADD 00002990: PUSH2 0x2769 00002993: JUMP 00002994: JUMPDEST 00002995: SWAP2 00002996: POP 00002997: POP 00002998: SWAP3 00002999: POP 0000299a: SWAP3 0000299b: POP 0000299c: SWAP3 0000299d: JUMP 0000299e: JUMPDEST 0000299f: PUSH1 0x00 000029a1: DUP2 000029a2: SWAP1 000029a3: POP 000029a4: SWAP2 000029a5: SWAP1 000029a6: POP 000029a7: JUMP 000029a8: JUMPDEST 000029a9: PUSH1 0x00 000029ab: PUSH2 0x29c3 000029ae: PUSH2 0x29be 000029b1: PUSH2 0x29b9 000029b4: DUP5 000029b5: PUSH2 0x263e 000029b8: JUMP 000029b9: JUMPDEST 000029ba: PUSH2 0x299e 000029bd: JUMP 000029be: JUMPDEST 000029bf: PUSH2 0x263e 000029c2: JUMP 000029c3: JUMPDEST 000029c4: SWAP1 000029c5: POP 000029c6: SWAP2 000029c7: SWAP1 000029c8: POP 000029c9: JUMP 000029ca: JUMPDEST 000029cb: PUSH1 0x00 000029cd: PUSH2 0x29d5 000029d0: DUP3 000029d1: PUSH2 0x29a8 000029d4: JUMP 000029d5: JUMPDEST 000029d6: SWAP1 000029d7: POP 000029d8: SWAP2 000029d9: SWAP1 000029da: POP 000029db: JUMP 000029dc: JUMPDEST 000029dd: PUSH1 0x00 000029df: PUSH2 0x29e7 000029e2: DUP3 000029e3: PUSH2 0x29ca 000029e6: JUMP 000029e7: JUMPDEST 000029e8: SWAP1 000029e9: POP 000029ea: SWAP2 000029eb: SWAP1 000029ec: POP 000029ed: JUMP 000029ee: JUMPDEST 000029ef: PUSH2 0x29f7 000029f2: DUP2 000029f3: PUSH2 0x29dc 000029f6: JUMP 000029f7: JUMPDEST 000029f8: DUP3 000029f9: MSTORE 000029fa: POP 000029fb: POP 000029fc: JUMP 000029fd: JUMPDEST 000029fe: PUSH1 0x00 00002a00: PUSH1 0x20 00002a02: DUP3 00002a03: ADD 00002a04: SWAP1 00002a05: POP 00002a06: PUSH2 0x2a12 00002a09: PUSH1 0x00 00002a0b: DUP4 00002a0c: ADD 00002a0d: DUP5 00002a0e: PUSH2 0x29ee 00002a11: JUMP 00002a12: JUMPDEST 00002a13: SWAP3 00002a14: SWAP2 00002a15: POP 00002a16: POP 00002a17: JUMP 00002a18: JUMPDEST 00002a19: PUSH1 0x00 00002a1b: DUP3 00002a1c: DUP3 00002a1d: MSTORE 00002a1e: PUSH1 0x20 00002a20: DUP3 00002a21: ADD 00002a22: SWAP1 00002a23: POP 00002a24: SWAP3 00002a25: SWAP2 00002a26: POP 00002a27: POP 00002a28: JUMP 00002a29: JUMPDEST 00002a2a: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 00002a4b: PUSH1 0x00 00002a4d: DUP3 00002a4e: ADD 00002a4f: MSTORE 00002a50: POP 00002a51: JUMP 00002a52: JUMPDEST 00002a53: PUSH1 0x00 00002a55: PUSH2 0x2a5f 00002a58: PUSH1 0x1f 00002a5a: DUP4 00002a5b: PUSH2 0x2a18 00002a5e: JUMP 00002a5f: JUMPDEST 00002a60: SWAP2 00002a61: POP 00002a62: PUSH2 0x2a6a 00002a65: DUP3 00002a66: PUSH2 0x2a29 00002a69: JUMP 00002a6a: JUMPDEST 00002a6b: PUSH1 0x20 00002a6d: DUP3 00002a6e: ADD 00002a6f: SWAP1 00002a70: POP 00002a71: SWAP2 00002a72: SWAP1 00002a73: POP 00002a74: JUMP 00002a75: JUMPDEST 00002a76: PUSH1 0x00 00002a78: PUSH1 0x20 00002a7a: DUP3 00002a7b: ADD 00002a7c: SWAP1 00002a7d: POP 00002a7e: DUP2 00002a7f: DUP2 00002a80: SUB 00002a81: PUSH1 0x00 00002a83: DUP4 00002a84: ADD 00002a85: MSTORE 00002a86: PUSH2 0x2a8e 00002a89: DUP2 00002a8a: PUSH2 0x2a52 00002a8d: JUMP 00002a8e: JUMPDEST 00002a8f: SWAP1 00002a90: POP 00002a91: SWAP2 00002a92: SWAP1 00002a93: POP 00002a94: JUMP 00002a95: JUMPDEST 00002a96: PUSH32 0x5461736b54726561737572793a204e6f20455448000000000000000000000000 00002ab7: PUSH1 0x00 00002ab9: DUP3 00002aba: ADD 00002abb: MSTORE 00002abc: POP 00002abd: JUMP 00002abe: JUMPDEST 00002abf: PUSH1 0x00 00002ac1: PUSH2 0x2acb 00002ac4: PUSH1 0x14 00002ac6: DUP4 00002ac7: PUSH2 0x2a18 00002aca: JUMP 00002acb: JUMPDEST 00002acc: SWAP2 00002acd: POP 00002ace: PUSH2 0x2ad6 00002ad1: DUP3 00002ad2: PUSH2 0x2a95 00002ad5: JUMP 00002ad6: JUMPDEST 00002ad7: PUSH1 0x20 00002ad9: DUP3 00002ada: ADD 00002adb: SWAP1 00002adc: POP 00002add: SWAP2 00002ade: SWAP1 00002adf: POP 00002ae0: JUMP 00002ae1: JUMPDEST 00002ae2: PUSH1 0x00 00002ae4: PUSH1 0x20 00002ae6: DUP3 00002ae7: ADD 00002ae8: SWAP1 00002ae9: POP 00002aea: DUP2 00002aeb: DUP2 00002aec: SUB 00002aed: PUSH1 0x00 00002aef: DUP4 00002af0: ADD 00002af1: MSTORE 00002af2: PUSH2 0x2afa 00002af5: DUP2 00002af6: PUSH2 0x2abe 00002af9: JUMP 00002afa: JUMPDEST 00002afb: SWAP1 00002afc: POP 00002afd: SWAP2 00002afe: SWAP1 00002aff: POP 00002b00: JUMP 00002b01: JUMPDEST 00002b02: PUSH2 0x2b0a 00002b05: DUP2 00002b06: PUSH2 0x265e 00002b09: JUMP 00002b0a: JUMPDEST 00002b0b: DUP3 00002b0c: MSTORE 00002b0d: POP 00002b0e: POP 00002b0f: JUMP 00002b10: JUMPDEST 00002b11: PUSH1 0x00 00002b13: PUSH1 0x20 00002b15: DUP3 00002b16: ADD 00002b17: SWAP1 00002b18: POP 00002b19: PUSH2 0x2b25 00002b1c: PUSH1 0x00 00002b1e: DUP4 00002b1f: ADD 00002b20: DUP5 00002b21: PUSH2 0x2b01 00002b24: JUMP 00002b25: JUMPDEST 00002b26: SWAP3 00002b27: SWAP2 00002b28: POP 00002b29: POP 00002b2a: JUMP 00002b2b: JUMPDEST 00002b2c: PUSH1 0x00 00002b2e: DUP2 00002b2f: MLOAD 00002b30: SWAP1 00002b31: POP 00002b32: PUSH2 0x2b3a 00002b35: DUP2 00002b36: PUSH2 0x2752 00002b39: JUMP 00002b3a: JUMPDEST 00002b3b: SWAP3 00002b3c: SWAP2 00002b3d: POP 00002b3e: POP 00002b3f: JUMP 00002b40: JUMPDEST 00002b41: PUSH1 0x00 00002b43: PUSH1 0x20 00002b45: DUP3 00002b46: DUP5 00002b47: SUB 00002b48: SLT 00002b49: ISZERO 00002b4a: PUSH2 0x2b56 00002b4d: JUMPI 00002b4e: PUSH2 0x2b55 00002b51: PUSH2 0x2634 00002b54: JUMP 00002b55: JUMPDEST 00002b56: JUMPDEST 00002b57: PUSH1 0x00 00002b59: PUSH2 0x2b64 00002b5c: DUP5 00002b5d: DUP3 00002b5e: DUP6 00002b5f: ADD 00002b60: PUSH2 0x2b2b 00002b63: JUMP 00002b64: JUMPDEST 00002b65: SWAP2 00002b66: POP 00002b67: POP 00002b68: SWAP3 00002b69: SWAP2 00002b6a: POP 00002b6b: POP 00002b6c: JUMP 00002b6d: JUMPDEST 00002b6e: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002b8f: PUSH1 0x00 00002b91: MSTORE 00002b92: PUSH1 0x11 00002b94: PUSH1 0x04 00002b96: MSTORE 00002b97: PUSH1 0x24 00002b99: PUSH1 0x00 00002b9b: REVERT 00002b9c: JUMPDEST 00002b9d: PUSH1 0x00 00002b9f: PUSH2 0x2ba7 00002ba2: DUP3 00002ba3: PUSH2 0x25f6 00002ba6: JUMP 00002ba7: JUMPDEST 00002ba8: SWAP2 00002ba9: POP 00002baa: PUSH2 0x2bb2 00002bad: DUP4 00002bae: PUSH2 0x25f6 00002bb1: JUMP 00002bb2: JUMPDEST 00002bb3: SWAP3 00002bb4: POP 00002bb5: DUP3 00002bb6: DUP3 00002bb7: LT 00002bb8: ISZERO 00002bb9: PUSH2 0x2bc5 00002bbc: JUMPI 00002bbd: PUSH2 0x2bc4 00002bc0: PUSH2 0x2b6d 00002bc3: JUMP 00002bc4: JUMPDEST 00002bc5: JUMPDEST 00002bc6: DUP3 00002bc7: DUP3 00002bc8: SUB 00002bc9: SWAP1 00002bca: POP 00002bcb: SWAP3 00002bcc: SWAP2 00002bcd: POP 00002bce: POP 00002bcf: JUMP 00002bd0: JUMPDEST 00002bd1: PUSH32 0x4e4f545f415554484f52495a4544000000000000000000000000000000000000 00002bf2: PUSH1 0x00 00002bf4: DUP3 00002bf5: ADD 00002bf6: MSTORE 00002bf7: POP 00002bf8: JUMP 00002bf9: JUMPDEST 00002bfa: PUSH1 0x00 00002bfc: PUSH2 0x2c06 00002bff: PUSH1 0x0e 00002c01: DUP4 00002c02: PUSH2 0x2a18 00002c05: JUMP 00002c06: JUMPDEST 00002c07: SWAP2 00002c08: POP 00002c09: PUSH2 0x2c11 00002c0c: DUP3 00002c0d: PUSH2 0x2bd0 00002c10: JUMP 00002c11: JUMPDEST 00002c12: PUSH1 0x20 00002c14: DUP3 00002c15: ADD 00002c16: SWAP1 00002c17: POP 00002c18: SWAP2 00002c19: SWAP1 00002c1a: POP 00002c1b: JUMP 00002c1c: JUMPDEST 00002c1d: PUSH1 0x00 00002c1f: PUSH1 0x20 00002c21: DUP3 00002c22: ADD 00002c23: SWAP1 00002c24: POP 00002c25: DUP2 00002c26: DUP2 00002c27: SUB 00002c28: PUSH1 0x00 00002c2a: DUP4 00002c2b: ADD 00002c2c: MSTORE 00002c2d: PUSH2 0x2c35 00002c30: DUP2 00002c31: PUSH2 0x2bf9 00002c34: JUMP 00002c35: JUMPDEST 00002c36: SWAP1 00002c37: POP 00002c38: SWAP2 00002c39: SWAP1 00002c3a: POP 00002c3b: JUMP 00002c3c: JUMPDEST 00002c3d: PUSH2 0x2c45 00002c40: DUP2 00002c41: PUSH2 0x269c 00002c44: JUMP 00002c45: JUMPDEST 00002c46: DUP3 00002c47: MSTORE 00002c48: POP 00002c49: POP 00002c4a: JUMP 00002c4b: JUMPDEST 00002c4c: PUSH1 0x00 00002c4e: PUSH1 0x20 00002c50: DUP3 00002c51: ADD 00002c52: SWAP1 00002c53: POP 00002c54: PUSH2 0x2c60 00002c57: PUSH1 0x00 00002c59: DUP4 00002c5a: ADD 00002c5b: DUP5 00002c5c: PUSH2 0x2c3c 00002c5f: JUMP 00002c60: JUMPDEST 00002c61: SWAP3 00002c62: SWAP2 00002c63: POP 00002c64: POP 00002c65: JUMP 00002c66: JUMPDEST 00002c67: PUSH32 0x5461736b54726561737572793a206f6e6c7957686974656c6973746564536572 00002c88: PUSH1 0x00 00002c8a: DUP3 00002c8b: ADD 00002c8c: MSTORE 00002c8d: PUSH32 0x7669636573000000000000000000000000000000000000000000000000000000 00002cae: PUSH1 0x20 00002cb0: DUP3 00002cb1: ADD 00002cb2: MSTORE 00002cb3: POP 00002cb4: JUMP 00002cb5: JUMPDEST 00002cb6: PUSH1 0x00 00002cb8: PUSH2 0x2cc2 00002cbb: PUSH1 0x25 00002cbd: DUP4 00002cbe: PUSH2 0x2a18 00002cc1: JUMP 00002cc2: JUMPDEST 00002cc3: SWAP2 00002cc4: POP 00002cc5: PUSH2 0x2ccd 00002cc8: DUP3 00002cc9: PUSH2 0x2c66 00002ccc: JUMP 00002ccd: JUMPDEST 00002cce: PUSH1 0x40 00002cd0: DUP3 00002cd1: ADD 00002cd2: SWAP1 00002cd3: POP 00002cd4: SWAP2 00002cd5: SWAP1 00002cd6: POP 00002cd7: JUMP 00002cd8: JUMPDEST 00002cd9: PUSH1 0x00 00002cdb: PUSH1 0x20 00002cdd: DUP3 00002cde: ADD 00002cdf: SWAP1 00002ce0: POP 00002ce1: DUP2 00002ce2: DUP2 00002ce3: SUB 00002ce4: PUSH1 0x00 00002ce6: DUP4 00002ce7: ADD 00002ce8: MSTORE 00002ce9: PUSH2 0x2cf1 00002cec: DUP2 00002ced: PUSH2 0x2cb5 00002cf0: JUMP 00002cf1: JUMPDEST 00002cf2: SWAP1 00002cf3: POP 00002cf4: SWAP2 00002cf5: SWAP1 00002cf6: POP 00002cf7: JUMP 00002cf8: JUMPDEST 00002cf9: PUSH32 0x5461736b54726561737572793a204f7665726368617267656400000000000000 00002d1a: PUSH1 0x00 00002d1c: DUP3 00002d1d: ADD 00002d1e: MSTORE 00002d1f: POP 00002d20: JUMP 00002d21: JUMPDEST 00002d22: PUSH1 0x00 00002d24: PUSH2 0x2d2e 00002d27: PUSH1 0x19 00002d29: DUP4 00002d2a: PUSH2 0x2a18 00002d2d: JUMP 00002d2e: JUMPDEST 00002d2f: SWAP2 00002d30: POP 00002d31: PUSH2 0x2d39 00002d34: DUP3 00002d35: PUSH2 0x2cf8 00002d38: JUMP 00002d39: JUMPDEST 00002d3a: PUSH1 0x20 00002d3c: DUP3 00002d3d: ADD 00002d3e: SWAP1 00002d3f: POP 00002d40: SWAP2 00002d41: SWAP1 00002d42: POP 00002d43: JUMP 00002d44: JUMPDEST 00002d45: PUSH1 0x00 00002d47: PUSH1 0x20 00002d49: DUP3 00002d4a: ADD 00002d4b: SWAP1 00002d4c: POP 00002d4d: DUP2 00002d4e: DUP2 00002d4f: SUB 00002d50: PUSH1 0x00 00002d52: DUP4 00002d53: ADD 00002d54: MSTORE 00002d55: PUSH2 0x2d5d 00002d58: DUP2 00002d59: PUSH2 0x2d21 00002d5c: JUMP 00002d5d: JUMPDEST 00002d5e: SWAP1 00002d5f: POP 00002d60: SWAP2 00002d61: SWAP1 00002d62: POP 00002d63: JUMP 00002d64: JUMPDEST 00002d65: PUSH1 0x00 00002d67: PUSH1 0x40 00002d69: DUP3 00002d6a: ADD 00002d6b: SWAP1 00002d6c: POP 00002d6d: PUSH2 0x2d79 00002d70: PUSH1 0x00 00002d72: DUP4 00002d73: ADD 00002d74: DUP6 00002d75: PUSH2 0x2b01 00002d78: JUMP 00002d79: JUMPDEST 00002d7a: PUSH2 0x2d86 00002d7d: PUSH1 0x20 00002d7f: DUP4 00002d80: ADD 00002d81: DUP5 00002d82: PUSH2 0x2b01 00002d85: JUMP 00002d86: JUMPDEST 00002d87: SWAP4 00002d88: SWAP3 00002d89: POP 00002d8a: POP 00002d8b: POP 00002d8c: JUMP 00002d8d: JUMPDEST 00002d8e: PUSH1 0x00 00002d90: PUSH1 0x60 00002d92: DUP3 00002d93: ADD 00002d94: SWAP1 00002d95: POP 00002d96: PUSH2 0x2da2 00002d99: PUSH1 0x00 00002d9b: DUP4 00002d9c: ADD 00002d9d: DUP7 00002d9e: PUSH2 0x2b01 00002da1: JUMP 00002da2: JUMPDEST 00002da3: PUSH2 0x2daf 00002da6: PUSH1 0x20 00002da8: DUP4 00002da9: ADD 00002daa: DUP6 00002dab: PUSH2 0x2600 00002dae: JUMP 00002daf: JUMPDEST 00002db0: PUSH2 0x2dbc 00002db3: PUSH1 0x40 00002db5: DUP4 00002db6: ADD 00002db7: DUP5 00002db8: PUSH2 0x2b01 00002dbb: JUMP 00002dbc: JUMPDEST 00002dbd: SWAP5 00002dbe: SWAP4 00002dbf: POP 00002dc0: POP 00002dc1: POP 00002dc2: POP 00002dc3: JUMP 00002dc4: JUMPDEST 00002dc5: PUSH1 0x00 00002dc7: PUSH1 0x40 00002dc9: DUP3 00002dca: ADD 00002dcb: SWAP1 00002dcc: POP 00002dcd: PUSH2 0x2dd9 00002dd0: PUSH1 0x00 00002dd2: DUP4 00002dd3: ADD 00002dd4: DUP6 00002dd5: PUSH2 0x2600 00002dd8: JUMP 00002dd9: JUMPDEST 00002dda: PUSH2 0x2de6 00002ddd: PUSH1 0x20 00002ddf: DUP4 00002de0: ADD 00002de1: DUP5 00002de2: PUSH2 0x2b01 00002de5: JUMP 00002de6: JUMPDEST 00002de7: SWAP4 00002de8: SWAP3 00002de9: POP 00002dea: POP 00002deb: POP 00002dec: JUMP 00002ded: JUMPDEST 00002dee: PUSH1 0x00 00002df0: DUP1 00002df1: REVERT 00002df2: JUMPDEST 00002df3: PUSH1 0x00 00002df5: PUSH1 0x1f 00002df7: NOT 00002df8: PUSH1 0x1f 00002dfa: DUP4 00002dfb: ADD 00002dfc: AND 00002dfd: SWAP1 00002dfe: POP 00002dff: SWAP2 00002e00: SWAP1 00002e01: POP 00002e02: JUMP 00002e03: JUMPDEST 00002e04: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002e25: PUSH1 0x00 00002e27: MSTORE 00002e28: PUSH1 0x41 00002e2a: PUSH1 0x04 00002e2c: MSTORE 00002e2d: PUSH1 0x24 00002e2f: PUSH1 0x00 00002e31: REVERT 00002e32: JUMPDEST 00002e33: PUSH2 0x2e3b 00002e36: DUP3 00002e37: PUSH2 0x2df2 00002e3a: JUMP 00002e3b: JUMPDEST 00002e3c: DUP2 00002e3d: ADD 00002e3e: DUP2 00002e3f: DUP2 00002e40: LT 00002e41: PUSH8 0xffffffffffffffff 00002e4a: DUP3 00002e4b: GT 00002e4c: OR 00002e4d: ISZERO 00002e4e: PUSH2 0x2e5a 00002e51: JUMPI 00002e52: PUSH2 0x2e59 00002e55: PUSH2 0x2e03 00002e58: JUMP 00002e59: JUMPDEST 00002e5a: JUMPDEST 00002e5b: DUP1 00002e5c: PUSH1 0x40 00002e5e: MSTORE 00002e5f: POP 00002e60: POP 00002e61: POP 00002e62: JUMP 00002e63: JUMPDEST 00002e64: PUSH1 0x00 00002e66: PUSH2 0x2e6d 00002e69: PUSH2 0x262a 00002e6c: JUMP 00002e6d: JUMPDEST 00002e6e: SWAP1 00002e6f: POP 00002e70: PUSH2 0x2e79 00002e73: DUP3 00002e74: DUP3 00002e75: PUSH2 0x2e32 00002e78: JUMP 00002e79: JUMPDEST 00002e7a: SWAP2 00002e7b: SWAP1 00002e7c: POP 00002e7d: JUMP 00002e7e: JUMPDEST 00002e7f: PUSH1 0x00 00002e81: PUSH8 0xffffffffffffffff 00002e8a: DUP3 00002e8b: GT 00002e8c: ISZERO 00002e8d: PUSH2 0x2e99 00002e90: JUMPI 00002e91: PUSH2 0x2e98 00002e94: PUSH2 0x2e03 00002e97: JUMP 00002e98: JUMPDEST 00002e99: JUMPDEST 00002e9a: PUSH1 0x20 00002e9c: DUP3 00002e9d: MUL 00002e9e: SWAP1 00002e9f: POP 00002ea0: PUSH1 0x20 00002ea2: DUP2 00002ea3: ADD 00002ea4: SWAP1 00002ea5: POP 00002ea6: SWAP2 00002ea7: SWAP1 00002ea8: POP 00002ea9: JUMP 00002eaa: JUMPDEST 00002eab: PUSH1 0x00 00002ead: DUP1 00002eae: REVERT 00002eaf: JUMPDEST 00002eb0: PUSH1 0x00 00002eb2: DUP2 00002eb3: MLOAD 00002eb4: SWAP1 00002eb5: POP 00002eb6: PUSH2 0x2ebe 00002eb9: DUP2 00002eba: PUSH2 0x2670 00002ebd: JUMP 00002ebe: JUMPDEST 00002ebf: SWAP3 00002ec0: SWAP2 00002ec1: POP 00002ec2: POP 00002ec3: JUMP 00002ec4: JUMPDEST 00002ec5: PUSH1 0x00 00002ec7: PUSH2 0x2ed7 00002eca: PUSH2 0x2ed2 00002ecd: DUP5 00002ece: PUSH2 0x2e7e 00002ed1: JUMP 00002ed2: JUMPDEST 00002ed3: PUSH2 0x2e63 00002ed6: JUMP 00002ed7: JUMPDEST 00002ed8: SWAP1 00002ed9: POP 00002eda: DUP1 00002edb: DUP4 00002edc: DUP3 00002edd: MSTORE 00002ede: PUSH1 0x20 00002ee0: DUP3 00002ee1: ADD 00002ee2: SWAP1 00002ee3: POP 00002ee4: PUSH1 0x20 00002ee6: DUP5 00002ee7: MUL 00002ee8: DUP4 00002ee9: ADD 00002eea: DUP6 00002eeb: DUP2 00002eec: GT 00002eed: ISZERO 00002eee: PUSH2 0x2efa 00002ef1: JUMPI 00002ef2: PUSH2 0x2ef9 00002ef5: PUSH2 0x2eaa 00002ef8: JUMP 00002ef9: JUMPDEST 00002efa: JUMPDEST 00002efb: DUP4 00002efc: JUMPDEST 00002efd: DUP2 00002efe: DUP2 00002eff: LT 00002f00: ISZERO 00002f01: PUSH2 0x2f23 00002f04: JUMPI 00002f05: DUP1 00002f06: PUSH2 0x2f0f 00002f09: DUP9 00002f0a: DUP3 00002f0b: PUSH2 0x2eaf 00002f0e: JUMP 00002f0f: JUMPDEST 00002f10: DUP5 00002f11: MSTORE 00002f12: PUSH1 0x20 00002f14: DUP5 00002f15: ADD 00002f16: SWAP4 00002f17: POP 00002f18: POP 00002f19: PUSH1 0x20 00002f1b: DUP2 00002f1c: ADD 00002f1d: SWAP1 00002f1e: POP 00002f1f: PUSH2 0x2efc 00002f22: JUMP 00002f23: JUMPDEST 00002f24: POP 00002f25: POP 00002f26: POP 00002f27: SWAP4 00002f28: SWAP3 00002f29: POP 00002f2a: POP 00002f2b: POP 00002f2c: JUMP 00002f2d: JUMPDEST 00002f2e: PUSH1 0x00 00002f30: DUP3 00002f31: PUSH1 0x1f 00002f33: DUP4 00002f34: ADD 00002f35: SLT 00002f36: PUSH2 0x2f42 00002f39: JUMPI 00002f3a: PUSH2 0x2f41 00002f3d: PUSH2 0x2ded 00002f40: JUMP 00002f41: JUMPDEST 00002f42: JUMPDEST 00002f43: DUP2 00002f44: MLOAD 00002f45: PUSH2 0x2f52 00002f48: DUP5 00002f49: DUP3 00002f4a: PUSH1 0x20 00002f4c: DUP7 00002f4d: ADD 00002f4e: PUSH2 0x2ec4 00002f51: JUMP 00002f52: JUMPDEST 00002f53: SWAP2 00002f54: POP 00002f55: POP 00002f56: SWAP3 00002f57: SWAP2 00002f58: POP 00002f59: POP 00002f5a: JUMP 00002f5b: JUMPDEST 00002f5c: PUSH1 0x00 00002f5e: PUSH1 0x20 00002f60: DUP3 00002f61: DUP5 00002f62: SUB 00002f63: SLT 00002f64: ISZERO 00002f65: PUSH2 0x2f71 00002f68: JUMPI 00002f69: PUSH2 0x2f70 00002f6c: PUSH2 0x2634 00002f6f: JUMP 00002f70: JUMPDEST 00002f71: JUMPDEST 00002f72: PUSH1 0x00 00002f74: DUP3 00002f75: ADD 00002f76: MLOAD 00002f77: PUSH8 0xffffffffffffffff 00002f80: DUP2 00002f81: GT 00002f82: ISZERO 00002f83: PUSH2 0x2f8f 00002f86: JUMPI 00002f87: PUSH2 0x2f8e 00002f8a: PUSH2 0x2639 00002f8d: JUMP 00002f8e: JUMPDEST 00002f8f: JUMPDEST 00002f90: PUSH2 0x2f9b 00002f93: DUP5 00002f94: DUP3 00002f95: DUP6 00002f96: ADD 00002f97: PUSH2 0x2f2d 00002f9a: JUMP 00002f9b: JUMPDEST 00002f9c: SWAP2 00002f9d: POP 00002f9e: POP 00002f9f: SWAP3 00002fa0: SWAP2 00002fa1: POP 00002fa2: POP 00002fa3: JUMP 00002fa4: JUMPDEST 00002fa5: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00002fc6: PUSH1 0x00 00002fc8: MSTORE 00002fc9: PUSH1 0x32 00002fcb: PUSH1 0x04 00002fcd: MSTORE 00002fce: PUSH1 0x24 00002fd0: PUSH1 0x00 00002fd2: REVERT 00002fd3: JUMPDEST 00002fd4: PUSH1 0x00 00002fd6: PUSH2 0x2fde 00002fd9: DUP3 00002fda: PUSH2 0x25f6 00002fdd: JUMP 00002fde: JUMPDEST 00002fdf: SWAP2 00002fe0: POP 00002fe1: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003002: DUP3 00003003: SUB 00003004: PUSH2 0x3010 00003007: JUMPI 00003008: PUSH2 0x300f 0000300b: PUSH2 0x2b6d 0000300e: JUMP 0000300f: JUMPDEST 00003010: JUMPDEST 00003011: PUSH1 0x01 00003013: DUP3 00003014: ADD 00003015: SWAP1 00003016: POP 00003017: SWAP2 00003018: SWAP1 00003019: POP 0000301a: JUMP 0000301b: JUMPDEST 0000301c: PUSH1 0x00 0000301e: PUSH2 0x3026 00003021: DUP3 00003022: PUSH2 0x25f6 00003025: JUMP 00003026: JUMPDEST 00003027: SWAP2 00003028: POP 00003029: PUSH2 0x3031 0000302c: DUP4 0000302d: PUSH2 0x25f6 00003030: JUMP 00003031: JUMPDEST 00003032: SWAP3 00003033: POP 00003034: DUP3 00003035: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003056: SUB 00003057: DUP3 00003058: GT 00003059: ISZERO 0000305a: PUSH2 0x3066 0000305d: JUMPI 0000305e: PUSH2 0x3065 00003061: PUSH2 0x2b6d 00003064: JUMP 00003065: JUMPDEST 00003066: JUMPDEST 00003067: DUP3 00003068: DUP3 00003069: ADD 0000306a: SWAP1 0000306b: POP 0000306c: SWAP3 0000306d: SWAP2 0000306e: POP 0000306f: POP 00003070: JUMP 00003071: JUMPDEST 00003072: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00003093: PUSH1 0x00 00003095: DUP3 00003096: ADD 00003097: MSTORE 00003098: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000 000030b9: PUSH1 0x20 000030bb: DUP3 000030bc: ADD 000030bd: MSTORE 000030be: POP 000030bf: JUMP 000030c0: JUMPDEST 000030c1: PUSH1 0x00 000030c3: PUSH2 0x30cd 000030c6: PUSH1 0x2e 000030c8: DUP4 000030c9: PUSH2 0x2a18 000030cc: JUMP 000030cd: JUMPDEST 000030ce: SWAP2 000030cf: POP 000030d0: PUSH2 0x30d8 000030d3: DUP3 000030d4: PUSH2 0x3071 000030d7: JUMP 000030d8: JUMPDEST 000030d9: PUSH1 0x40 000030db: DUP3 000030dc: ADD 000030dd: SWAP1 000030de: POP 000030df: SWAP2 000030e0: SWAP1 000030e1: POP 000030e2: JUMP 000030e3: JUMPDEST 000030e4: PUSH1 0x00 000030e6: PUSH1 0x20 000030e8: DUP3 000030e9: ADD 000030ea: SWAP1 000030eb: POP 000030ec: DUP2 000030ed: DUP2 000030ee: SUB 000030ef: PUSH1 0x00 000030f1: DUP4 000030f2: ADD 000030f3: MSTORE 000030f4: PUSH2 0x30fc 000030f7: DUP2 000030f8: PUSH2 0x30c0 000030fb: JUMP 000030fc: JUMPDEST 000030fd: SWAP1 000030fe: POP 000030ff: SWAP2 00003100: SWAP1 00003101: POP 00003102: JUMP 00003103: JUMPDEST 00003104: PUSH1 0x00 00003106: PUSH1 0x60 00003108: DUP3 00003109: ADD 0000310a: SWAP1 0000310b: POP 0000310c: PUSH2 0x3118 0000310f: PUSH1 0x00 00003111: DUP4 00003112: ADD 00003113: DUP7 00003114: PUSH2 0x2b01 00003117: JUMP 00003118: JUMPDEST 00003119: PUSH2 0x3125 0000311c: PUSH1 0x20 0000311e: DUP4 0000311f: ADD 00003120: DUP6 00003121: PUSH2 0x2b01 00003124: JUMP 00003125: JUMPDEST 00003126: PUSH2 0x3132 00003129: PUSH1 0x40 0000312b: DUP4 0000312c: ADD 0000312d: DUP5 0000312e: PUSH2 0x2600 00003131: JUMP 00003132: JUMPDEST 00003133: SWAP5 00003134: SWAP4 00003135: POP 00003136: POP 00003137: POP 00003138: POP 00003139: JUMP 0000313a: JUMPDEST 0000313b: PUSH32 0x5461736b54726561737572793a2052657175697265204d494e5f534841524553 0000315c: PUSH1 0x00 0000315e: DUP3 0000315f: ADD 00003160: MSTORE 00003161: PUSH32 0x5f494e5f54524541535552590000000000000000000000000000000000000000 00003182: PUSH1 0x20 00003184: DUP3 00003185: ADD 00003186: MSTORE 00003187: POP 00003188: JUMP 00003189: JUMPDEST 0000318a: PUSH1 0x00 0000318c: PUSH2 0x3196 0000318f: PUSH1 0x2c 00003191: DUP4 00003192: PUSH2 0x2a18 00003195: JUMP 00003196: JUMPDEST 00003197: SWAP2 00003198: POP 00003199: PUSH2 0x31a1 0000319c: DUP3 0000319d: PUSH2 0x313a 000031a0: JUMP 000031a1: JUMPDEST 000031a2: PUSH1 0x40 000031a4: DUP3 000031a5: ADD 000031a6: SWAP1 000031a7: POP 000031a8: SWAP2 000031a9: SWAP1 000031aa: POP 000031ab: JUMP 000031ac: JUMPDEST 000031ad: PUSH1 0x00 000031af: PUSH1 0x20 000031b1: DUP3 000031b2: ADD 000031b3: SWAP1 000031b4: POP 000031b5: DUP2 000031b6: DUP2 000031b7: SUB 000031b8: PUSH1 0x00 000031ba: DUP4 000031bb: ADD 000031bc: MSTORE 000031bd: PUSH2 0x31c5 000031c0: DUP2 000031c1: PUSH2 0x3189 000031c4: JUMP 000031c5: JUMPDEST 000031c6: SWAP1 000031c7: POP 000031c8: SWAP2 000031c9: SWAP1 000031ca: POP 000031cb: JUMP 000031cc: JUMPDEST 000031cd: PUSH32 0x5461736b54726561737572793a205a65726f2073686172657320746f20637265 000031ee: PUSH1 0x00 000031f0: DUP3 000031f1: ADD 000031f2: MSTORE 000031f3: PUSH32 0x6469740000000000000000000000000000000000000000000000000000000000 00003214: PUSH1 0x20 00003216: DUP3 00003217: ADD 00003218: MSTORE 00003219: POP 0000321a: JUMP 0000321b: JUMPDEST 0000321c: PUSH1 0x00 0000321e: PUSH2 0x3228 00003221: PUSH1 0x23 00003223: DUP4 00003224: PUSH2 0x2a18 00003227: JUMP 00003228: JUMPDEST 00003229: SWAP2 0000322a: POP 0000322b: PUSH2 0x3233 0000322e: DUP3 0000322f: PUSH2 0x31cc 00003232: JUMP 00003233: JUMPDEST 00003234: PUSH1 0x40 00003236: DUP3 00003237: ADD 00003238: SWAP1 00003239: POP 0000323a: SWAP2 0000323b: SWAP1 0000323c: POP 0000323d: JUMP 0000323e: JUMPDEST 0000323f: PUSH1 0x00 00003241: PUSH1 0x20 00003243: DUP3 00003244: ADD 00003245: SWAP1 00003246: POP 00003247: DUP2 00003248: DUP2 00003249: SUB 0000324a: PUSH1 0x00 0000324c: DUP4 0000324d: ADD 0000324e: MSTORE 0000324f: PUSH2 0x3257 00003252: DUP2 00003253: PUSH2 0x321b 00003256: JUMP 00003257: JUMPDEST 00003258: SWAP1 00003259: POP 0000325a: SWAP2 0000325b: SWAP1 0000325c: POP 0000325d: JUMP 0000325e: JUMPDEST 0000325f: PUSH32 0x5461736b54726561737572793a2042656c6f77204d494e5f5348415245535f49 00003280: PUSH1 0x00 00003282: DUP3 00003283: ADD 00003284: MSTORE 00003285: PUSH32 0x4e5f545245415355525900000000000000000000000000000000000000000000 000032a6: PUSH1 0x20 000032a8: DUP3 000032a9: ADD 000032aa: MSTORE 000032ab: POP 000032ac: JUMP 000032ad: JUMPDEST 000032ae: PUSH1 0x00 000032b0: PUSH2 0x32ba 000032b3: PUSH1 0x2a 000032b5: DUP4 000032b6: PUSH2 0x2a18 000032b9: JUMP 000032ba: JUMPDEST 000032bb: SWAP2 000032bc: POP 000032bd: PUSH2 0x32c5 000032c0: DUP3 000032c1: PUSH2 0x325e 000032c4: JUMP 000032c5: JUMPDEST 000032c6: PUSH1 0x40 000032c8: DUP3 000032c9: ADD 000032ca: SWAP1 000032cb: POP 000032cc: SWAP2 000032cd: SWAP1 000032ce: POP 000032cf: JUMP 000032d0: JUMPDEST 000032d1: PUSH1 0x00 000032d3: PUSH1 0x20 000032d5: DUP3 000032d6: ADD 000032d7: SWAP1 000032d8: POP 000032d9: DUP2 000032da: DUP2 000032db: SUB 000032dc: PUSH1 0x00 000032de: DUP4 000032df: ADD 000032e0: MSTORE 000032e1: PUSH2 0x32e9 000032e4: DUP2 000032e5: PUSH2 0x32ad 000032e8: JUMP 000032e9: JUMPDEST 000032ea: SWAP1 000032eb: POP 000032ec: SWAP2 000032ed: SWAP1 000032ee: POP 000032ef: JUMP 000032f0: JUMPDEST 000032f1: PUSH1 0x00 000032f3: DUP2 000032f4: SWAP1 000032f5: POP 000032f6: SWAP3 000032f7: SWAP2 000032f8: POP 000032f9: POP 000032fa: JUMP 000032fb: JUMPDEST 000032fc: POP 000032fd: JUMP 000032fe: JUMPDEST 000032ff: PUSH1 0x00 00003301: PUSH2 0x330b 00003304: PUSH1 0x00 00003306: DUP4 00003307: PUSH2 0x32f0 0000330a: JUMP 0000330b: JUMPDEST 0000330c: SWAP2 0000330d: POP 0000330e: PUSH2 0x3316 00003311: DUP3 00003312: PUSH2 0x32fb 00003315: JUMP 00003316: JUMPDEST 00003317: PUSH1 0x00 00003319: DUP3 0000331a: ADD 0000331b: SWAP1 0000331c: POP 0000331d: SWAP2 0000331e: SWAP1 0000331f: POP 00003320: JUMP 00003321: JUMPDEST 00003322: PUSH1 0x00 00003324: PUSH2 0x332c 00003327: DUP3 00003328: PUSH2 0x32fe 0000332b: JUMP 0000332c: JUMPDEST 0000332d: SWAP2 0000332e: POP 0000332f: DUP2 00003330: SWAP1 00003331: POP 00003332: SWAP2 00003333: SWAP1 00003334: POP 00003335: JUMP 00003336: JUMPDEST 00003337: PUSH32 0x5f7472616e736665723a20455448207472616e73666572206661696c65640000 00003358: PUSH1 0x00 0000335a: DUP3 0000335b: ADD 0000335c: MSTORE 0000335d: POP 0000335e: JUMP 0000335f: JUMPDEST 00003360: PUSH1 0x00 00003362: PUSH2 0x336c 00003365: PUSH1 0x1e 00003367: DUP4 00003368: PUSH2 0x2a18 0000336b: JUMP 0000336c: JUMPDEST 0000336d: SWAP2 0000336e: POP 0000336f: PUSH2 0x3377 00003372: DUP3 00003373: PUSH2 0x3336 00003376: JUMP 00003377: JUMPDEST 00003378: PUSH1 0x20 0000337a: DUP3 0000337b: ADD 0000337c: SWAP1 0000337d: POP 0000337e: SWAP2 0000337f: SWAP1 00003380: POP 00003381: JUMP 00003382: JUMPDEST 00003383: PUSH1 0x00 00003385: PUSH1 0x20 00003387: DUP3 00003388: ADD 00003389: SWAP1 0000338a: POP 0000338b: DUP2 0000338c: DUP2 0000338d: SUB 0000338e: PUSH1 0x00 00003390: DUP4 00003391: ADD 00003392: MSTORE 00003393: PUSH2 0x339b 00003396: DUP2 00003397: PUSH2 0x335f 0000339a: JUMP 0000339b: JUMPDEST 0000339c: SWAP1 0000339d: POP 0000339e: SWAP2 0000339f: SWAP1 000033a0: POP 000033a1: JUMP 000033a2: JUMPDEST 000033a3: PUSH32 0x5461736b54726561737572793a204e6f2070726f78792061646d696e00000000 000033c4: PUSH1 0x00 000033c6: DUP3 000033c7: ADD 000033c8: MSTORE 000033c9: POP 000033ca: JUMP 000033cb: JUMPDEST 000033cc: PUSH1 0x00 000033ce: PUSH2 0x33d8 000033d1: PUSH1 0x1c 000033d3: DUP4 000033d4: PUSH2 0x2a18 000033d7: JUMP 000033d8: JUMPDEST 000033d9: SWAP2 000033da: POP 000033db: PUSH2 0x33e3 000033de: DUP3 000033df: PUSH2 0x33a2 000033e2: JUMP 000033e3: JUMPDEST 000033e4: PUSH1 0x20 000033e6: DUP3 000033e7: ADD 000033e8: SWAP1 000033e9: POP 000033ea: SWAP2 000033eb: SWAP1 000033ec: POP 000033ed: JUMP 000033ee: JUMPDEST 000033ef: PUSH1 0x00 000033f1: PUSH1 0x20 000033f3: DUP3 000033f4: ADD 000033f5: SWAP1 000033f6: POP 000033f7: DUP2 000033f8: DUP2 000033f9: SUB 000033fa: PUSH1 0x00 000033fc: DUP4 000033fd: ADD 000033fe: MSTORE 000033ff: PUSH2 0x3407 00003402: DUP2 00003403: PUSH2 0x33cb 00003406: JUMP 00003407: JUMPDEST 00003408: SWAP1 00003409: POP 0000340a: SWAP2 0000340b: SWAP1 0000340c: POP 0000340d: JUMP 0000340e: JUMPDEST 0000340f: PUSH32 0x5461736b54726561737572793a204e6f7420656e6f7567682066756e64730000 00003430: PUSH1 0x00 00003432: DUP3 00003433: ADD 00003434: MSTORE 00003435: POP 00003436: JUMP 00003437: JUMPDEST 00003438: PUSH1 0x00 0000343a: PUSH2 0x3444 0000343d: PUSH1 0x1e 0000343f: DUP4 00003440: PUSH2 0x2a18 00003443: JUMP 00003444: JUMPDEST 00003445: SWAP2 00003446: POP 00003447: PUSH2 0x344f 0000344a: DUP3 0000344b: PUSH2 0x340e 0000344e: JUMP 0000344f: JUMPDEST 00003450: PUSH1 0x20 00003452: DUP3 00003453: ADD 00003454: SWAP1 00003455: POP 00003456: SWAP2 00003457: SWAP1 00003458: POP 00003459: JUMP 0000345a: JUMPDEST 0000345b: PUSH1 0x00 0000345d: PUSH1 0x20 0000345f: DUP3 00003460: ADD 00003461: SWAP1 00003462: POP 00003463: DUP2 00003464: DUP2 00003465: SUB 00003466: PUSH1 0x00 00003468: DUP4 00003469: ADD 0000346a: MSTORE 0000346b: PUSH2 0x3473 0000346e: DUP2 0000346f: PUSH2 0x3437 00003472: JUMP 00003473: JUMPDEST 00003474: SWAP1 00003475: POP 00003476: SWAP2 00003477: SWAP1 00003478: POP 00003479: JUMP 0000347a: JUMPDEST 0000347b: PUSH1 0x00 0000347d: PUSH2 0x3485 00003480: DUP3 00003481: PUSH2 0x25f6 00003484: JUMP 00003485: JUMPDEST 00003486: SWAP2 00003487: POP 00003488: PUSH2 0x3490 0000348b: DUP4 0000348c: PUSH2 0x25f6 0000348f: JUMP 00003490: JUMPDEST 00003491: SWAP3 00003492: POP 00003493: DUP2 00003494: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000034b5: DIV 000034b6: DUP4 000034b7: GT 000034b8: DUP3 000034b9: ISZERO 000034ba: ISZERO 000034bb: AND 000034bc: ISZERO 000034bd: PUSH2 0x34c9 000034c0: JUMPI 000034c1: PUSH2 0x34c8 000034c4: PUSH2 0x2b6d 000034c7: JUMP 000034c8: JUMPDEST 000034c9: JUMPDEST 000034ca: DUP3 000034cb: DUP3 000034cc: MUL 000034cd: SWAP1 000034ce: POP 000034cf: SWAP3 000034d0: SWAP2 000034d1: POP 000034d2: POP 000034d3: JUMP 000034d4: JUMPDEST 000034d5: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000034f6: PUSH1 0x00 000034f8: MSTORE 000034f9: PUSH1 0x12 000034fb: PUSH1 0x04 000034fd: MSTORE 000034fe: PUSH1 0x24 00003500: PUSH1 0x00 00003502: REVERT 00003503: JUMPDEST 00003504: PUSH1 0x00 00003506: PUSH2 0x350e 00003509: DUP3 0000350a: PUSH2 0x25f6 0000350d: JUMP 0000350e: JUMPDEST 0000350f: SWAP2 00003510: POP 00003511: PUSH2 0x3519 00003514: DUP4 00003515: PUSH2 0x25f6 00003518: JUMP 00003519: JUMPDEST 0000351a: SWAP3 0000351b: POP 0000351c: DUP3 0000351d: PUSH2 0x3529 00003520: JUMPI 00003521: PUSH2 0x3528 00003524: PUSH2 0x34d4 00003527: JUMP 00003528: JUMPDEST 00003529: JUMPDEST 0000352a: DUP3 0000352b: DUP3 0000352c: DIV 0000352d: SWAP1 0000352e: POP 0000352f: SWAP3 00003530: SWAP2 00003531: POP 00003532: POP 00003533: JUMP 00003534: JUMPDEST 00003535: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00003556: PUSH1 0x00 00003558: DUP3 00003559: ADD 0000355a: MSTORE 0000355b: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 0000357c: PUSH1 0x20 0000357e: DUP3 0000357f: ADD 00003580: MSTORE 00003581: POP 00003582: JUMP 00003583: JUMPDEST 00003584: PUSH1 0x00 00003586: PUSH2 0x3590 00003589: PUSH1 0x2b 0000358b: DUP4 0000358c: PUSH2 0x2a18 0000358f: JUMP 00003590: JUMPDEST 00003591: SWAP2 00003592: POP 00003593: PUSH2 0x359b 00003596: DUP3 00003597: PUSH2 0x3534 0000359a: JUMP 0000359b: JUMPDEST 0000359c: PUSH1 0x40 0000359e: DUP3 0000359f: ADD 000035a0: SWAP1 000035a1: POP 000035a2: SWAP2 000035a3: SWAP1 000035a4: POP 000035a5: JUMP 000035a6: JUMPDEST 000035a7: PUSH1 0x00 000035a9: PUSH1 0x20 000035ab: DUP3 000035ac: ADD 000035ad: SWAP1 000035ae: POP 000035af: DUP2 000035b0: DUP2 000035b1: SUB 000035b2: PUSH1 0x00 000035b4: DUP4 000035b5: ADD 000035b6: MSTORE 000035b7: PUSH2 0x35bf 000035ba: DUP2 000035bb: PUSH2 0x3583 000035be: JUMP 000035bf: JUMPDEST 000035c0: SWAP1 000035c1: POP 000035c2: SWAP2 000035c3: SWAP1 000035c4: POP 000035c5: JUMP 000035c6: JUMPDEST 000035c7: PUSH1 0x00 000035c9: DUP2 000035ca: MLOAD 000035cb: SWAP1 000035cc: POP 000035cd: PUSH2 0x35d5 000035d0: DUP2 000035d1: PUSH2 0x26a8 000035d4: JUMP 000035d5: JUMPDEST 000035d6: SWAP3 000035d7: SWAP2 000035d8: POP 000035d9: POP 000035da: JUMP 000035db: JUMPDEST 000035dc: PUSH1 0x00 000035de: PUSH1 0x20 000035e0: DUP3 000035e1: DUP5 000035e2: SUB 000035e3: SLT 000035e4: ISZERO 000035e5: PUSH2 0x35f1 000035e8: JUMPI 000035e9: PUSH2 0x35f0 000035ec: PUSH2 0x2634 000035ef: JUMP 000035f0: JUMPDEST 000035f1: JUMPDEST 000035f2: PUSH1 0x00 000035f4: PUSH2 0x35ff 000035f7: DUP5 000035f8: DUP3 000035f9: DUP6 000035fa: ADD 000035fb: PUSH2 0x35c6 000035fe: JUMP 000035ff: JUMPDEST 00003600: SWAP2 00003601: POP 00003602: POP 00003603: SWAP3 00003604: SWAP2 00003605: POP 00003606: POP 00003607: JUMP 00003608: JUMPDEST 00003609: PUSH32 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e 0000362a: PUSH1 0x00 0000362c: DUP3 0000362d: ADD 0000362e: MSTORE 0000362f: PUSH32 0x6f74207375636365656400000000000000000000000000000000000000000000 00003650: PUSH1 0x20 00003652: DUP3 00003653: ADD 00003654: MSTORE 00003655: POP 00003656: JUMP 00003657: JUMPDEST 00003658: PUSH1 0x00 0000365a: PUSH2 0x3664 0000365d: PUSH1 0x2a 0000365f: DUP4 00003660: PUSH2 0x2a18 00003663: JUMP 00003664: JUMPDEST 00003665: SWAP2 00003666: POP 00003667: PUSH2 0x366f 0000366a: DUP3 0000366b: PUSH2 0x3608 0000366e: JUMP 0000366f: JUMPDEST 00003670: PUSH1 0x40 00003672: DUP3 00003673: ADD 00003674: SWAP1 00003675: POP 00003676: SWAP2 00003677: SWAP1 00003678: POP 00003679: JUMP 0000367a: JUMPDEST 0000367b: PUSH1 0x00 0000367d: PUSH1 0x20 0000367f: DUP3 00003680: ADD 00003681: SWAP1 00003682: POP 00003683: DUP2 00003684: DUP2 00003685: SUB 00003686: PUSH1 0x00 00003688: DUP4 00003689: ADD 0000368a: MSTORE 0000368b: PUSH2 0x3693 0000368e: DUP2 0000368f: PUSH2 0x3657 00003692: JUMP 00003693: JUMPDEST 00003694: SWAP1 00003695: POP 00003696: SWAP2 00003697: SWAP1 00003698: POP 00003699: JUMP 0000369a: JUMPDEST 0000369b: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 000036bc: PUSH1 0x00 000036be: MSTORE 000036bf: PUSH1 0x31 000036c1: PUSH1 0x04 000036c3: MSTORE 000036c4: PUSH1 0x24 000036c6: PUSH1 0x00 000036c8: REVERT 000036c9: JUMPDEST 000036ca: PUSH1 0x00 000036cc: PUSH1 0x40 000036ce: DUP3 000036cf: ADD 000036d0: SWAP1 000036d1: POP 000036d2: PUSH2 0x36de 000036d5: PUSH1 0x00 000036d7: DUP4 000036d8: ADD 000036d9: DUP6 000036da: PUSH2 0x2b01 000036dd: JUMP 000036de: JUMPDEST 000036df: PUSH2 0x36eb 000036e2: PUSH1 0x20 000036e4: DUP4 000036e5: ADD 000036e6: DUP5 000036e7: PUSH2 0x2600 000036ea: JUMP 000036eb: JUMPDEST 000036ec: SWAP4 000036ed: SWAP3 000036ee: POP 000036ef: POP 000036f0: POP 000036f1: JUMP 000036f2: JUMPDEST 000036f3: PUSH1 0x00 000036f5: DUP2 000036f6: PUSH1 0x01 000036f8: SHR 000036f9: SWAP1 000036fa: POP 000036fb: SWAP2 000036fc: SWAP1 000036fd: POP 000036fe: JUMP 000036ff: JUMPDEST 00003700: PUSH1 0x00 00003702: DUP1 00003703: DUP3 00003704: SWAP2 00003705: POP 00003706: DUP4 00003707: SWAP1 00003708: POP 00003709: JUMPDEST 0000370a: PUSH1 0x01 0000370c: DUP6 0000370d: GT 0000370e: ISZERO 0000370f: PUSH2 0x3749 00003712: JUMPI 00003713: DUP1 00003714: DUP7 00003715: DIV 00003716: DUP2 00003717: GT 00003718: ISZERO 00003719: PUSH2 0x3725 0000371c: JUMPI 0000371d: PUSH2 0x3724 00003720: PUSH2 0x2b6d 00003723: JUMP 00003724: JUMPDEST 00003725: JUMPDEST 00003726: PUSH1 0x01 00003728: DUP6 00003729: AND 0000372a: ISZERO 0000372b: PUSH2 0x3734 0000372e: JUMPI 0000372f: DUP1 00003730: DUP3 00003731: MUL 00003732: SWAP2 00003733: POP 00003734: JUMPDEST 00003735: DUP1 00003736: DUP2 00003737: MUL 00003738: SWAP1 00003739: POP 0000373a: PUSH2 0x3742 0000373d: DUP6 0000373e: PUSH2 0x36f2 00003741: JUMP 00003742: JUMPDEST 00003743: SWAP5 00003744: POP 00003745: PUSH2 0x3709 00003748: JUMP 00003749: JUMPDEST 0000374a: SWAP5 0000374b: POP 0000374c: SWAP5 0000374d: SWAP3 0000374e: POP 0000374f: POP 00003750: POP 00003751: JUMP 00003752: JUMPDEST 00003753: PUSH1 0x00 00003755: DUP3 00003756: PUSH2 0x3762 00003759: JUMPI 0000375a: PUSH1 0x01 0000375c: SWAP1 0000375d: POP 0000375e: PUSH2 0x381e 00003761: JUMP 00003762: JUMPDEST 00003763: DUP2 00003764: PUSH2 0x3770 00003767: JUMPI 00003768: PUSH1 0x00 0000376a: SWAP1 0000376b: POP 0000376c: PUSH2 0x381e 0000376f: JUMP 00003770: JUMPDEST 00003771: DUP2 00003772: PUSH1 0x01 00003774: DUP2 00003775: EQ 00003776: PUSH2 0x3786 00003779: JUMPI 0000377a: PUSH1 0x02 0000377c: DUP2 0000377d: EQ 0000377e: PUSH2 0x3790 00003781: JUMPI 00003782: PUSH2 0x37bf 00003785: JUMP 00003786: JUMPDEST 00003787: PUSH1 0x01 00003789: SWAP2 0000378a: POP 0000378b: POP 0000378c: PUSH2 0x381e 0000378f: JUMP 00003790: JUMPDEST 00003791: PUSH1 0xff 00003793: DUP5 00003794: GT 00003795: ISZERO 00003796: PUSH2 0x37a2 00003799: JUMPI 0000379a: PUSH2 0x37a1 0000379d: PUSH2 0x2b6d 000037a0: JUMP 000037a1: JUMPDEST 000037a2: JUMPDEST 000037a3: DUP4 000037a4: PUSH1 0x02 000037a6: EXP 000037a7: SWAP2 000037a8: POP 000037a9: DUP5 000037aa: DUP3 000037ab: GT 000037ac: ISZERO 000037ad: PUSH2 0x37b9 000037b0: JUMPI 000037b1: PUSH2 0x37b8 000037b4: PUSH2 0x2b6d 000037b7: JUMP 000037b8: JUMPDEST 000037b9: JUMPDEST 000037ba: POP 000037bb: PUSH2 0x381e 000037be: JUMP 000037bf: JUMPDEST 000037c0: POP 000037c1: PUSH1 0x20 000037c3: DUP4 000037c4: LT 000037c5: PUSH2 0x0133 000037c8: DUP4 000037c9: LT 000037ca: AND 000037cb: PUSH1 0x4e 000037cd: DUP5 000037ce: LT 000037cf: PUSH1 0x0b 000037d1: DUP5 000037d2: LT 000037d3: AND 000037d4: OR 000037d5: ISZERO 000037d6: PUSH2 0x37f4 000037d9: JUMPI 000037da: DUP3 000037db: DUP3 000037dc: EXP 000037dd: SWAP1 000037de: POP 000037df: DUP4 000037e0: DUP2 000037e1: GT 000037e2: ISZERO 000037e3: PUSH2 0x37ef 000037e6: JUMPI 000037e7: PUSH2 0x37ee 000037ea: PUSH2 0x2b6d 000037ed: JUMP 000037ee: JUMPDEST 000037ef: JUMPDEST 000037f0: PUSH2 0x381e 000037f3: JUMP 000037f4: JUMPDEST 000037f5: PUSH2 0x3801 000037f8: DUP5 000037f9: DUP5 000037fa: DUP5 000037fb: PUSH1 0x01 000037fd: PUSH2 0x36ff 00003800: JUMP 00003801: JUMPDEST 00003802: SWAP3 00003803: POP 00003804: SWAP1 00003805: POP 00003806: DUP2 00003807: DUP5 00003808: DIV 00003809: DUP2 0000380a: GT 0000380b: ISZERO 0000380c: PUSH2 0x3818 0000380f: JUMPI 00003810: PUSH2 0x3817 00003813: PUSH2 0x2b6d 00003816: JUMP 00003817: JUMPDEST 00003818: JUMPDEST 00003819: DUP2 0000381a: DUP2 0000381b: MUL 0000381c: SWAP1 0000381d: POP 0000381e: JUMPDEST 0000381f: SWAP4 00003820: SWAP3 00003821: POP 00003822: POP 00003823: POP 00003824: JUMP 00003825: JUMPDEST 00003826: PUSH1 0x00 00003828: PUSH2 0x3830 0000382b: DUP3 0000382c: PUSH2 0x25f6 0000382f: JUMP 00003830: JUMPDEST 00003831: SWAP2 00003832: POP 00003833: PUSH2 0x383b 00003836: DUP4 00003837: PUSH2 0x25f6 0000383a: JUMP 0000383b: JUMPDEST 0000383c: SWAP3 0000383d: POP 0000383e: PUSH2 0x3868 00003841: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003862: DUP5 00003863: DUP5 00003864: PUSH2 0x3752 00003867: JUMP 00003868: JUMPDEST 00003869: SWAP1 0000386a: POP 0000386b: SWAP3 0000386c: SWAP2 0000386d: POP 0000386e: POP 0000386f: JUMP 00003870: JUMPDEST 00003871: PUSH1 0x00 00003873: PUSH2 0x387b 00003876: DUP3 00003877: PUSH2 0x25f6 0000387a: JUMP 0000387b: JUMPDEST 0000387c: SWAP2 0000387d: POP 0000387e: PUSH2 0x3886 00003881: DUP4 00003882: PUSH2 0x25f6 00003885: JUMP 00003886: JUMPDEST 00003887: SWAP3 00003888: POP 00003889: DUP3 0000388a: PUSH2 0x3896 0000388d: JUMPI 0000388e: PUSH2 0x3895 00003891: PUSH2 0x34d4 00003894: JUMP 00003895: JUMPDEST 00003896: JUMPDEST 00003897: DUP3 00003898: DUP3 00003899: MOD 0000389a: SWAP1 0000389b: POP 0000389c: SWAP3 0000389d: SWAP2 0000389e: POP 0000389f: POP 000038a0: JUMP 000038a1: JUMPDEST 000038a2: PUSH32 0x416464726573733a20696e73756666696369656e742062616c616e636520666f 000038c3: PUSH1 0x00 000038c5: DUP3 000038c6: ADD 000038c7: MSTORE 000038c8: PUSH32 0x722063616c6c0000000000000000000000000000000000000000000000000000 000038e9: PUSH1 0x20 000038eb: DUP3 000038ec: ADD 000038ed: MSTORE 000038ee: POP 000038ef: JUMP 000038f0: JUMPDEST 000038f1: PUSH1 0x00 000038f3: PUSH2 0x38fd 000038f6: PUSH1 0x26 000038f8: DUP4 000038f9: PUSH2 0x2a18 000038fc: JUMP 000038fd: JUMPDEST 000038fe: SWAP2 000038ff: POP 00003900: PUSH2 0x3908 00003903: DUP3 00003904: PUSH2 0x38a1 00003907: JUMP 00003908: JUMPDEST 00003909: PUSH1 0x40 0000390b: DUP3 0000390c: ADD 0000390d: SWAP1 0000390e: POP 0000390f: SWAP2 00003910: SWAP1 00003911: POP 00003912: JUMP 00003913: JUMPDEST 00003914: PUSH1 0x00 00003916: PUSH1 0x20 00003918: DUP3 00003919: ADD 0000391a: SWAP1 0000391b: POP 0000391c: DUP2 0000391d: DUP2 0000391e: SUB 0000391f: PUSH1 0x00 00003921: DUP4 00003922: ADD 00003923: MSTORE 00003924: PUSH2 0x392c 00003927: DUP2 00003928: PUSH2 0x38f0 0000392b: JUMP 0000392c: JUMPDEST 0000392d: SWAP1 0000392e: POP 0000392f: SWAP2 00003930: SWAP1 00003931: POP 00003932: JUMP 00003933: JUMPDEST 00003934: PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 00003955: PUSH1 0x00 00003957: DUP3 00003958: ADD 00003959: MSTORE 0000395a: POP 0000395b: JUMP 0000395c: JUMPDEST 0000395d: PUSH1 0x00 0000395f: PUSH2 0x3969 00003962: PUSH1 0x1d 00003964: DUP4 00003965: PUSH2 0x2a18 00003968: JUMP 00003969: JUMPDEST 0000396a: SWAP2 0000396b: POP 0000396c: PUSH2 0x3974 0000396f: DUP3 00003970: PUSH2 0x3933 00003973: JUMP 00003974: JUMPDEST 00003975: PUSH1 0x20 00003977: DUP3 00003978: ADD 00003979: SWAP1 0000397a: POP 0000397b: SWAP2 0000397c: SWAP1 0000397d: POP 0000397e: JUMP 0000397f: JUMPDEST 00003980: PUSH1 0x00 00003982: PUSH1 0x20 00003984: DUP3 00003985: ADD 00003986: SWAP1 00003987: POP 00003988: DUP2 00003989: DUP2 0000398a: SUB 0000398b: PUSH1 0x00 0000398d: DUP4 0000398e: ADD 0000398f: MSTORE 00003990: PUSH2 0x3998 00003993: DUP2 00003994: PUSH2 0x395c 00003997: JUMP 00003998: JUMPDEST 00003999: SWAP1 0000399a: POP 0000399b: SWAP2 0000399c: SWAP1 0000399d: POP 0000399e: JUMP 0000399f: JUMPDEST 000039a0: PUSH1 0x00 000039a2: DUP2 000039a3: MLOAD 000039a4: SWAP1 000039a5: POP 000039a6: SWAP2 000039a7: SWAP1 000039a8: POP 000039a9: JUMP 000039aa: JUMPDEST 000039ab: PUSH1 0x00 000039ad: JUMPDEST 000039ae: DUP4 000039af: DUP2 000039b0: LT 000039b1: ISZERO 000039b2: PUSH2 0x39c8 000039b5: JUMPI 000039b6: DUP1 000039b7: DUP3 000039b8: ADD 000039b9: MLOAD 000039ba: DUP2 000039bb: DUP5 000039bc: ADD 000039bd: MSTORE 000039be: PUSH1 0x20 000039c0: DUP2 000039c1: ADD 000039c2: SWAP1 000039c3: POP 000039c4: PUSH2 0x39ad 000039c7: JUMP 000039c8: JUMPDEST 000039c9: DUP4 000039ca: DUP2 000039cb: GT 000039cc: ISZERO 000039cd: PUSH2 0x39d7 000039d0: JUMPI 000039d1: PUSH1 0x00 000039d3: DUP5 000039d4: DUP5 000039d5: ADD 000039d6: MSTORE 000039d7: JUMPDEST 000039d8: POP 000039d9: POP 000039da: POP 000039db: POP 000039dc: JUMP 000039dd: JUMPDEST 000039de: PUSH1 0x00 000039e0: PUSH2 0x39e8 000039e3: DUP3 000039e4: PUSH2 0x399f 000039e7: JUMP 000039e8: JUMPDEST 000039e9: PUSH2 0x39f2 000039ec: DUP2 000039ed: DUP6 000039ee: PUSH2 0x32f0 000039f1: JUMP 000039f2: JUMPDEST 000039f3: SWAP4 000039f4: POP 000039f5: PUSH2 0x3a02 000039f8: DUP2 000039f9: DUP6 000039fa: PUSH1 0x20 000039fc: DUP7 000039fd: ADD 000039fe: PUSH2 0x39aa 00003a01: JUMP 00003a02: JUMPDEST 00003a03: DUP1 00003a04: DUP5 00003a05: ADD 00003a06: SWAP2 00003a07: POP 00003a08: POP 00003a09: SWAP3 00003a0a: SWAP2 00003a0b: POP 00003a0c: POP 00003a0d: JUMP 00003a0e: JUMPDEST 00003a0f: PUSH1 0x00 00003a11: PUSH2 0x3a1a 00003a14: DUP3 00003a15: DUP5 00003a16: PUSH2 0x39dd 00003a19: JUMP 00003a1a: JUMPDEST 00003a1b: SWAP2 00003a1c: POP 00003a1d: DUP2 00003a1e: SWAP1 00003a1f: POP 00003a20: SWAP3 00003a21: SWAP2 00003a22: POP 00003a23: POP 00003a24: JUMP 00003a25: JUMPDEST 00003a26: PUSH1 0x00 00003a28: DUP2 00003a29: MLOAD 00003a2a: SWAP1 00003a2b: POP 00003a2c: SWAP2 00003a2d: SWAP1 00003a2e: POP 00003a2f: JUMP 00003a30: JUMPDEST 00003a31: PUSH1 0x00 00003a33: PUSH2 0x3a3b 00003a36: DUP3 00003a37: PUSH2 0x3a25 00003a3a: JUMP 00003a3b: JUMPDEST 00003a3c: PUSH2 0x3a45 00003a3f: DUP2 00003a40: DUP6 00003a41: PUSH2 0x2a18 00003a44: JUMP 00003a45: JUMPDEST 00003a46: SWAP4 00003a47: POP 00003a48: PUSH2 0x3a55 00003a4b: DUP2 00003a4c: DUP6 00003a4d: PUSH1 0x20 00003a4f: DUP7 00003a50: ADD 00003a51: PUSH2 0x39aa 00003a54: JUMP 00003a55: JUMPDEST 00003a56: PUSH2 0x3a5e 00003a59: DUP2 00003a5a: PUSH2 0x2df2 00003a5d: JUMP 00003a5e: JUMPDEST 00003a5f: DUP5 00003a60: ADD 00003a61: SWAP2 00003a62: POP 00003a63: POP 00003a64: SWAP3 00003a65: SWAP2 00003a66: POP 00003a67: POP 00003a68: JUMP 00003a69: JUMPDEST 00003a6a: PUSH1 0x00 00003a6c: PUSH1 0x20 00003a6e: DUP3 00003a6f: ADD 00003a70: SWAP1 00003a71: POP 00003a72: DUP2 00003a73: DUP2 00003a74: SUB 00003a75: PUSH1 0x00 00003a77: DUP4 00003a78: ADD 00003a79: MSTORE 00003a7a: PUSH2 0x3a83 00003a7d: DUP2 00003a7e: DUP5 00003a7f: PUSH2 0x3a30 00003a82: JUMP 00003a83: JUMPDEST 00003a84: SWAP1 00003a85: POP 00003a86: SWAP3 00003a87: SWAP2 00003a88: POP 00003a89: POP 00003a8a: JUMP 00003a8b: INVALID 00003a8c: LOG2 00003a8d: PUSH5 0x6970667358 00003a93: UNKNOWN(0x22) 00003a94: SLT 00003a95: KECCAK256 00003a96: DUP4 00003a97: LOG0 00003a98: DUP3 00003a99: AND 00003a9a: UNKNOWN(0x2F) 00003a9b: DUP8 00003a9c: MOD 00003a9d: UNKNOWN(0xB5) 00003a9e: CALLDATACOPY 00003a9f: MULMOD 00003aa0: LT 00003aa1: UNKNOWN(0x1F) 00003aa2: PUSH16 0xfc2ac0bd4614a21228577c24964f29c7 00003ab3: DUP3 00003ab4: SWAP15 00003ab5: PC 00003ab6: PUSH5 0x736f6c6343 00003abc: STOP 00003abd: ADDMOD 00003abe: UNKNOWN(0x0E) 00003abf: STOP 00003ac0: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_json{
"reason": "missing sink mapping",
"status": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xc1461d57",
"selector": "0xc1461d57",
"calldata_variants": [
"0xc1461d57",
"0xc1461d570000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcf0ef516",
"selector": "0xcf0ef516",
"calldata_variants": [
"0xcf0ef516",
"0xcf0ef5160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd147adb9",
"selector": "0xd147adb9",
"calldata_variants": [
"0xd147adb9",
"0xd147adb90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfe4b84df",
"selector": "0xfe4b84df",
"calldata_variants": [
"0xfe4b84df",
"0xfe4b84df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa3f1233e",
"selector": "0xa3f1233e",
"calldata_variants": [
"0xa3f1233e",
"0xa3f1233e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb0da8d0b",
"selector": "0xb0da8d0b",
"calldata_variants": [
"0xb0da8d0b",
"0xb0da8d0b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb47064c8",
"selector": "0xb47064c8",
"calldata_variants": [
"0xb47064c8",
"0xb47064c80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbf6b874e",
"selector": "0xbf6b874e",
"calldata_variants": [
"0xbf6b874e",
"0xbf6b874e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"guards_detected": [
{
"pc": 1792,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2360,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3233,
"type": "tx_origin_used"
}
]
}
|
| medium | other | detector | Untrusted CALL target/value reachable | 45 | no | no |
viewtrace_id: 0xd0c0e56071ff5c191411de73656ed0fb811f625c078931acd32957ffe8224067
call_targets:
0x28def88a5225fd50cdd081306be18fa7368e59f9
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xd0c0e56071ff5c191411de73656ed0fb811f625c078931acd32957ffe8224067",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x28def88a5225fd50cdd081306be18fa7368e59f9"
],
"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": "0xc1461d57",
"selector": "0xc1461d57",
"calldata_variants": [
"0xc1461d57",
"0xc1461d570000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcf0ef516",
"selector": "0xcf0ef516",
"calldata_variants": [
"0xcf0ef516",
"0xcf0ef5160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd147adb9",
"selector": "0xd147adb9",
"calldata_variants": [
"0xd147adb9",
"0xd147adb90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfe4b84df",
"selector": "0xfe4b84df",
"calldata_variants": [
"0xfe4b84df",
"0xfe4b84df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa3f1233e",
"selector": "0xa3f1233e",
"calldata_variants": [
"0xa3f1233e",
"0xa3f1233e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb0da8d0b",
"selector": "0xb0da8d0b",
"calldata_variants": [
"0xb0da8d0b",
"0xb0da8d0b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb47064c8",
"selector": "0xb47064c8",
"calldata_variants": [
"0xb47064c8",
"0xb47064c80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbf6b874e",
"selector": "0xbf6b874e",
"calldata_variants": [
"0xbf6b874e",
"0xbf6b874e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3007,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3164,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6733,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 4,
"guards_detected": [
{
"pc": 1792,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2360,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3233,
"type": "tx_origin_used"
}
],
"untrusted_call_count": 4
}
|
| medium | other | detector | ETH value transfer possible | 40 | no | no |
viewtrace_id: 0xd0c0e56071ff5c191411de73656ed0fb811f625c078931acd32957ffe8224067
call_targets:
0x28def88a5225fd50cdd081306be18fa7368e59f9
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xd0c0e56071ff5c191411de73656ed0fb811f625c078931acd32957ffe8224067",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x28def88a5225fd50cdd081306be18fa7368e59f9"
],
"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": "0xc1461d57",
"selector": "0xc1461d57",
"calldata_variants": [
"0xc1461d57",
"0xc1461d570000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcf0ef516",
"selector": "0xcf0ef516",
"calldata_variants": [
"0xcf0ef516",
"0xcf0ef5160000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd147adb9",
"selector": "0xd147adb9",
"calldata_variants": [
"0xd147adb9",
"0xd147adb90000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xfe4b84df",
"selector": "0xfe4b84df",
"calldata_variants": [
"0xfe4b84df",
"0xfe4b84df0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xa3f1233e",
"selector": "0xa3f1233e",
"calldata_variants": [
"0xa3f1233e",
"0xa3f1233e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb0da8d0b",
"selector": "0xb0da8d0b",
"calldata_variants": [
"0xb0da8d0b",
"0xb0da8d0b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xb47064c8",
"selector": "0xb47064c8",
"calldata_variants": [
"0xb47064c8",
"0xb47064c80000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xbf6b874e",
"selector": "0xbf6b874e",
"calldata_variants": [
"0xbf6b874e",
"0xbf6b874e0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3007,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 3164,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6733,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 4,
"guards_detected": [
{
"pc": 1792,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 2360,
"type": "msg_sender_eq_const",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
},
{
"pc": 3233,
"type": "tx_origin_used"
}
]
}
|
| low | math | codex | Minimum-shares invariant can lock the last withdrawal for a token | 65 | no | — |
viewevidence_json{
"evidence": "_creditUser enforces a minimum on the first mint, and _deductUser blocks withdrawals that would drop totalShares below MIN_SHARES_IN_TREASURY.",
"locations": [
"contracts/taskTreasury/TaskTreasuryUpgradable.sol:273",
"contracts/taskTreasury/TaskTreasuryUpgradable.sol:301"
],
"recommendation": "Allow full withdrawals when burning the final shares (e.g., permit totalShares to reach 0 when sharesToCharge == sharesTotal), or separate protocol-owned minimum shares from user shares so user withdrawals are not blocked.",
"exploit_scenario": "If totalShares[_token] equals MIN_SHARES_IN_TREASURY, any withdrawal that would reduce totalShares below MIN reverts. The last user(s) for that token cannot fully withdraw, leaving at least MIN_SHARES worth of funds stuck unless someone else deposits to raise totalShares. A user who makes the first deposit at the MIN threshold can also become unable to fully withdraw without another depositor."
}
|