019bab3c-a6af-702e-81df-bc4bc14e96dc
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 |
|---|---|---|---|---|
| 38989 | artifact.fetch | complete | 1 / 3 | 3 months ago |
| 38990 | proxy.resolve | complete | 1 / 3 | 3 months ago |
| 38991 | tool.cast_disasm | complete | 1 / 3 | 3 months ago |
| 38992 | analysis.bundle | complete | 1 / 3 | 3 months ago |
| 38993 | capability.graph | complete | 1 / 3 | 3 months ago |
| 38994 | detector.run | complete | 1 / 3 | 3 months ago |
| 38995 | validation.fork | complete | 1 / 3 | 3 months ago |
| 39235 | report.consolidate | complete | 1 / 6 | 3 months ago |
| 39236 | tool.slither | failed | 2 / 2 | 3 months ago |
{
"status": "not_proxy"
}
Traceback (most recent call last):
File "/var/www/tripwire/worker/worker.py", line 199, in main
laravel_client.complete_job(job_id, payload if payload else None)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/laravel_client.py", line 27, in complete_job
return self._post(f"/internal/jobs/{job_id}/complete", payload=payload)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/tripwire/worker/laravel_client.py", line 17, in _post
response.raise_for_status()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/var/www/tripwire/.venv/lib/python3.13/site-packages/requests/models.py", line 1026, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: https://tripwire.topgun.bot/internal/jobs/39236/complete
{"no_findings":false,"summary":"Found three issues: unchecked ERC20 transfer results, BNFT cancel flow missing local ownership checks, and a scheduling edge case that lets index-0 BNFT holders bypass intended validator limits.","findings":[{"severity":"medium","category":"other","title":"Unchecked eETH.transferFrom can mint withdrawal requests without locking funds","exploit_scenario":"If eETH.transferFrom returns false (non-standard ERC20 behavior or future upgrade), requestWithdraw/requestMembershipNFTWithdraw will still mint a WithdrawRequestNFT. The caller can later claim ETH without actually transferring/burning eETH, draining LP liquidity.","recommendation":"Use SafeERC20 and require transferFrom to succeed, or move the token transfer before minting the WithdrawRequestNFT and explicitly check the return value. Consider reverting if _amount > _permit.value in requestWithdrawWithPermit.","evidence":"requestWithdraw and requestMembershipNFTWithdraw call eETH.transferFrom without checking its return value after minting the withdrawal request.","locations":["src/LiquidityPool.sol:201","src/LiquidityPool.sol:205","src/LiquidityPool.sol:207","src/LiquidityPool.sol:235","src/LiquidityPool.sol:240","src/LiquidityPool.sol:242"]},{"severity":"medium","category":"access_control","title":"BNFT cancel path refunds caller without local ownership checks","exploit_scenario":"Any caller can invoke batchCancelDeposit with arbitrary validator IDs. If StakingManager does not strictly enforce ownership (or is upgraded with relaxed checks), an attacker could cancel other BNFT deposits and receive 1–2 ETH refunds per validator to their own address.","recommendation":"Enforce ownership or BNFT-holder authorization in LiquidityPool before issuing refunds (e.g., track validatorId -> BNFT holder and require match), or require an explicit success/authorization signal from StakingManager before sending ETH.","evidence":"batchCancelDeposit is externally callable and unconditionally refunds msg.sender based on validator phases, with no local ownership verification.","locations":["src/LiquidityPool.sol:361","src/LiquidityPool.sol:367","src/LiquidityPool.sol:377","src/LiquidityPool.sol:379","src/LiquidityPool.sol:382"]},{"severity":"low","category":"access_control","title":"Scheduling edge case lets index-0 BNFT holder bypass validator spin-up limits","exploit_scenario":"When numValidatorsToSpinUp < maxValidatorsPerOwner (or ==0), dutyForWeek returns (0,0). That makes only index-0 BNFT holder ‘assigned’, letting them call batchDepositAsBnftHolder with up to maxValidatorsPerOwner validators even when the admin intended none or fewer to spin up.","recommendation":"Handle the < maxValidatorsPerOwner case explicitly (e.g., set size=1 and cap _numberOfValidators by numValidatorsToSpinUp), or revert when numValidatorsToSpinUp is 0 to prevent unauthorized deposits.","evidence":"dutyForWeek returns (0,0) on low counts, and batchDepositAsBnftHolder doesn’t enforce numValidatorsToSpinUp or cap _numberOfValidators against it.","locations":["src/LiquidityPool.sol:446","src/LiquidityPool.sol:449","src/LiquidityPool.sol:257","src/LiquidityPool.sol:258","src/LiquidityPool.sol:268"]}]}
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-9kxc7m8b
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bac23-1061-7bd2-9a88-834db6079a5b
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.
Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers
thinking
**Preparing to audit with shell read**
exec
/bin/bash -lc ls in /tmp/codex-9kxc7m8b succeeded in 5ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
lib
src
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-9kxc7m8b succeeded in 8ms:
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: src/AuctionManager.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
import "./interfaces/IAuctionManager.sol";
import "./interfaces/INodeOperatorManager.sol";
import "./interfaces/IProtocolRevenueManager.sol";
import "@openzeppelin-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol";
import "@openzeppelin-upgradeable/contracts/security/PausableUpgradeable.sol";
import "@openzeppelin-upgradeable/contracts/access/OwnableUpgradeable.sol";
import "@openzeppelin-upgradeable/contracts/proxy/utils/Initializable.sol";
import "@openzeppelin-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol";
contract AuctionManager is
Initializable,
thinking
**Planning full AUDIT_BUNDLE read**
I'm figuring out how to fully read the potentially large AUDIT_BUNDLE file despite output limits by planning to read it in line-range segments with sed or awk so I don’t miss anything important like the full LiquidityPool contents. I'll ensure I comply with instructions by processing the complete bundle gradually.
exec
/bin/bash -lc 'wc -l AUDIT_BUNDLE.txt' in /tmp/codex-9kxc7m8b succeeded in 5ms:
1733 AUDIT_BUNDLE.txt
thinking
**Reading file in segments**
exec
/bin/bash -lc "sed -n '1,400p' AUDIT_BUNDLE.txt" in /tmp/codex-9kxc7m8b succeeded in 9ms:
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: src/AuctionManager.sol
================================================================================
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
import "./interfaces/IAuctionManager.sol";
import "./interfaces/INodeOperatorManager.sol";
import "./interfaces/IProtocolRevenueManager.sol";
import "@openzeppelin-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol";
import "@openzeppelin-upgradeable/contracts/security/PausableUpgradeable.sol";
import "@openzeppelin-upgradeable/contracts/access/OwnableUpgradeable.sol";
import "@openzeppelin-upgradeable/contracts/proxy/utils/Initializable.sol";
import "@openzeppelin-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol";
contract AuctionManager is
Initializable,
thinking
**Continuing process**
exec
/bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-9kxc7m8b succeeded in 5ms:
//--------------------------------------------------------------------------------------
//--------------------------------- STATE-VARIABLES ----------------------------------
//--------------------------------------------------------------------------------------
IStakingManager public stakingManager;
IEtherFiNodesManager public nodesManager;
IRegulationsManager public DEPRECATED_regulationsManager;
IMembershipManager public membershipManager;
ITNFT public tNft;
IeETH public eETH;
bool public DEPRECATED_eEthliquidStakingOpened;
uint128 public totalValueOutOfLp;
uint128 public totalValueInLp;
address public DEPRECATED_admin;
uint32 public numPendingDeposits; // number of deposits to the staking manager, which needs 'registerValidator'
thinking
**Continuing process**
exec
/bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-9kxc7m8b succeeded in 5ms:
//Swap the end BNFT player with the BNFT player being removed
bnftHolders[index] = bnftHolders[endIndex];
bnftHoldersIndexes[endUser].index = uint32(index);
//Pop the last user as we have swapped them around
bnftHolders.pop();
delete bnftHoldersIndexes[_bNftHolder];
emit BnftHolderDeregistered(_bNftHolder, index);
}
/// @notice Calculate which BNFT players are currently scheduled and assigned to deposit as a BNFT player.
/// We don't hold any data, just have the function return a start and finish index of the selected users in the array.
/// When a user deposits, it calls this function and checks if the user depositing fits inside the first and last index returnd
/// by this function. The indices can wrap around as well. Lets look at an example of a BNFT array with size 10.
///
/// Example:
/// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] => firstIndex = 7
/// => lastIndex = 2
thinking
**Continuing previous actions**
exec
/bin/bash -lc "sed -n '1200,1600p' AUDIT_BUNDLE.txt" in /tmp/codex-9kxc7m8b succeeded in 24ms:
// |
// ↓
// FULLY_WITHDRAWN
// Transitions are only allowed as directed above.
// For instance, a transition from STAKE_DEPOSITED to either LIVE or CANCELLED is allowed,
// but a transition from STAKE_DEPOSITED to NOT_INITIALIZED, BEING_SLASHED, or EXITED is not.
//
// All phase transitions should be made through the setPhase function,
// which validates transitions based on these rules.
//
// Fully_WITHDRAWN or CANCELLED nodes can be recycled via resetWithdrawalSafe()
enum VALIDATOR_PHASE {
NOT_INITIALIZED,
STAKE_DEPOSITED,
LIVE,
EXITED,
FULLY_WITHDRAWN,
CANCELLED,
BEING_SLASHED,
EVICTED,
thinking
**Checking for duplicated interfaces**
exec
/bin/bash -lc "sed -n '1600,1733p' AUDIT_BUNDLE.txt" in /tmp/codex-9kxc7m8b succeeded in 25ms:
pragma solidity 0.8.13;
interface IRegulationsManager {
function initialize() external;
function confirmEligibility(bytes32 hash) external;
function removeFromWhitelist(address _user) external;
function initializeNewWhitelist(bytes32 _newVersionHash) external;
function isEligible(uint32 _whitelistVersion, address _user) external view returns (bool);
function whitelistVersion() external view returns (uint32);
}
================================================================================
FILE: src/interfaces/IStakingManager.sol
================================================================================
thinking
**Analyzing reentrancy and access control risks**
I’m going through LiquidityPool and AuctionManager for potential vulnerabilities, focusing heavily on reentrancy risks from external calls without guards and access control gaps. I’m weighing where external contracts trusted by admin might be exploited and noting possible denial-of-service or state inconsistency issues due to unchecked edge cases and admin misconfigurations. There’s a lot here about interplay of trust, state updates before calls, and missing return-value checks that need careful consideration.
thinking
**Examining permit usage and ETH accounting nuances**
I’m unpacking how `requestWithdrawWithPermit` handles permit values versus transfer amounts, spotting potential mismatches if transferFrom returns false without revert. I’m also looking closely at how ETH sent directly or via selfdestruct affects internal accounting in `receive()`, alongside implications for share calculations and possible manipulation through the contract’s recorded totals versus actual ETH balance.
exec
/bin/bash -lc "rg -n \"call\\{value|delegatecall|transferFrom\" src/AuctionManager.sol src/LiquidityPool.sol" in /tmp/codex-9kxc7m8b succeeded in 12ms:
src/AuctionManager.sol:214: (bool sent, ) = membershipManagerContractAddress.call{value: newAccumulatedRevenue}("");
src/AuctionManager.sol:224: (bool sent, ) = membershipManagerContractAddress.call{value: transferAmount}("");
src/AuctionManager.sol:266: (bool sent, ) = msg.sender.call{value: bid.amount}("");
src/LiquidityPool.sol:190: (bool sent, ) = _recipient.call{value: _amount}("");
src/LiquidityPool.sol:207: eETH.transferFrom(msg.sender, address(withdrawRequestNFT), amount);
src/LiquidityPool.sol:242: eETH.transferFrom(msg.sender, address(withdrawRequestNFT), amount);
src/LiquidityPool.sol:297: (bool sent, ) = msg.sender.call{value: returnAmount}("");
src/LiquidityPool.sol:382: (bool sent, ) = address(msg.sender).call{value: returnAmount}("");
thinking
**Analyzing potential vulnerabilities and risks**
I'm reviewing various contract functions for issues like division by zero, unchecked return values on token transfers, reentrancy risks, access control gaps, and potential denial-of-service scenarios due to state or accounting inconsistencies. There are some nuanced concerns around permit validations, batch operations, admin controls, and token balance logic that might pose medium-to-low severity problems depending on external contract behaviors and upgrade paths. Let's explore these areas carefully!
thinking
**Investigating accounting and logic inconsistencies**
I’m exploring the interactions between ETH sent to the contract, how it shifts balances between staked and in-pool values, and potential edge cases in validator scheduling that may allow certain holders to deposit beyond intended limits. Some arithmetic casts, zero-address calls, and missing checks could cause misbehavior or unexpected fund loss, while logic in duty assignments might let the first BNFT holder bypass the validator spin-up limits. The complexity here definitely invites a closer look!
thinking
**Highlighting nuanced logic and access control concerns**
I’m weighing several subtle issues like unchecked token transfer returns that might let withdrawals proceed without locks, relaxed caller checks on batch cancellations potentially enabling unauthorized refunds, and a scheduling logic quirk that could let the first BNFT holder monopolize validator deposits. While many depend on complementary contract behaviors, these warrant cautious attention as they could affect fairness or allow protocol misuse under certain conditions.
exec
/bin/bash -lc "nl -ba src/LiquidityPool.sol | sed -n '160,260p'" in /tmp/codex-9kxc7m8b succeeded in 33ms:
160 // Used by ether.fan staking flow
161 function deposit(address _user, address _referral) external payable whenNotPaused returns (uint256) {
162 if (msg.sender != address(membershipManager)) {
163 revert IncorrectCaller();
164 }
165 require(_user == address(membershipManager) || _isWhitelisted(_user), "Invalid User");
166
167 emit Deposit(msg.sender, msg.value, SourceOfFunds.ETHER_FAN, _referral);
168
169 return _deposit();
170 }
171
172 /// @notice withdraw from pool
173 /// @dev Burns user balance from msg.senders account & Sends equal amount of ETH back to the recipient
174 /// @param _recipient the recipient who will receives the ETH
175 /// @param _amount the amount to withdraw from contract
176 /// it returns the amount of shares burned
177 function withdraw(address _recipient, uint256 _amount) external whenNotPaused returns (uint256) {
178 uint256 share = sharesForWithdrawalAmount(_amount);
179 require(msg.sender == address(withdrawRequestNFT) || msg.sender == address(membershipManager), "Incorrect Caller");
thinking
**Adding lines for batchCancelDeposit**
exec
/bin/bash -lc "nl -ba src/LiquidityPool.sol | sed -n '300,430p'" in /tmp/codex-9kxc7m8b succeeded in 11ms:
300
301 return newValidators;
302 }
303
304 /// @notice BNFT players register validators they have deposited. This triggers a 1 ETH transaction to the beacon chain.
305 /// @dev This function can only be called by a BNFT player on IDs that have been deposited.
306 /// @param _depositRoot This is the deposit root of the beacon chain. Can send in 0x00 to bypass this check in future
307 /// @param _validatorIds The ids of the validators to register
308 /// @param _registerValidatorDepositData As in the solo staking flow, the BNFT player must send in a deposit data object (see ILiquidityPool for struct data)
309 /// to register the validators. However, the signature and deposit data root must be for a 1 ETH deposit
310 /// @param _depositDataRootApproval The deposit data roots for each validator for the 31 ETH transaction which will happen in the approval
311 /// step. See the Staking Manager for details.
312 /// @param _signaturesForApprovalDeposit Much like the deposit data root. This is the signature for each validator for the 31 ETH
313 /// transaction which will happen in the approval step.
314 function batchRegisterAsBnftHolder(
315 bytes32 _depositRoot,
316 uint256[] calldata _validatorIds,
317 IStakingManager.DepositData[] calldata _registerValidatorDepositData,
318 bytes32[] calldata _depositDataRootApproval,
319 bytes[] calldata _signaturesForApprovalDeposit
thinking
**Checking relevant code lines**
exec
/bin/bash -lc "nl -ba src/LiquidityPool.sol | sed -n '430,560p'" in /tmp/codex-9kxc7m8b succeeded in 8ms:
430
431 emit BnftHolderDeregistered(_bNftHolder, index);
432 }
433
434 /// @notice Calculate which BNFT players are currently scheduled and assigned to deposit as a BNFT player.
435 /// We don't hold any data, just have the function return a start and finish index of the selected users in the array.
436 /// When a user deposits, it calls this function and checks if the user depositing fits inside the first and last index returnd
437 /// by this function. The indices can wrap around as well. Lets look at an example of a BNFT array with size 10.
438 ///
439 /// Example:
440 /// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] => firstIndex = 7
441 /// => lastIndex = 2
442 /// Therefore: the selected range would be users [7, 8, 9, 0, 1, 2]. We use the isAssigned function to check if the user is in the selected indices.
443 ///
444 /// @return The first index that has been chosen in the array of BNFT holders
445 /// @return The last index that has been chosen in the array of BNFT holders
446 function dutyForWeek() public view returns (uint256, uint128) {
447 // Early termindation if there are no validators to spin up
448 uint32 numValidatorsToSpinUp = IEtherFiAdmin(etherFiAdminContract).numValidatorsToSpinUp();
449 if(maxValidatorsPerOwner == 0 || numValidatorsToSpinUp == 0 || numValidatorsToSpinUp / maxValidatorsPerOwner == 0) {
thinking
**Searching for allocateSourceOfFunds function location**
exec
/bin/bash -lc "nl -ba src/LiquidityPool.sol | sed -n '600,720p'" in /tmp/codex-9kxc7m8b succeeded in 7ms:
600 return uint256(keccak256(abi.encodePacked(block.timestamp / schedulingPeriodInSeconds))) % numberOfActiveSlots();
601 }
602
603 /// @notice Explain to an end user what this does
604 /// @dev Explain to a developer any extra details
605 /// @param _size how many BNFT players will be needed to fill the allotment
606 /// @param _index The first index that we need to start from
607 /// @return lastIndex the last index to be used in the selection for the current schedule
608 function _fetchLastIndex(uint128 _size, uint256 _index) internal view returns (uint128 lastIndex){
609 uint32 numSlots = numberOfActiveSlots();
610 uint128 tempLastIndex = uint128(_index) + _size - 1;
611 lastIndex = (tempLastIndex + uint128(numSlots)) % uint128(numSlots);
612 }
613
614 function _isWhitelisted(address _user) internal view returns (bool) {
615 return (!whitelistEnabled || whitelisted[_user]);
616 }
617
618 function _sharesForDepositAmount(uint256 _depositAmount) internal view returns (uint256) {
619 uint256 totalPooledEther = getTotalPooledEther() - _depositAmount;
thinking
**Summarizing audit findings and crafting JSON**
I’m gathering detailed vulnerability descriptions, severity levels, categories, exploit scenarios, recommendations, and precise evidence line numbers and files to put together a concise JSON report with three key findings around unchecked token transfers, missing ownership checks, and scheduling gate bypass in LiquidityPool.sol.
codex
{"no_findings":false,"summary":"Found three issues: unchecked ERC20 transfer results, BNFT cancel flow missing local ownership checks, and a scheduling edge case that lets index-0 BNFT holders bypass intended validator limits.","findings":[{"severity":"medium","category":"other","title":"Unchecked eETH.transferFrom can mint withdrawal requests without locking funds","exploit_scenario":"If eETH.transferFrom returns false (non-standard ERC20 behavior or future upgrade), requestWithdraw/requestMembershipNFTWithdraw will still mint a WithdrawRequestNFT. The caller can later claim ETH without actually transferring/burning eETH, draining LP liquidity.","recommendation":"Use SafeERC20 and require transferFrom to succeed, or move the token transfer before minting the WithdrawRequestNFT and explicitly check the return value. Consider reverting if _amount > _permit.value in requestWithdrawWithPermit.","evidence":"requestWithdraw and requestMembershipNFTWithdraw call eETH.transferFrom without checking its return value after minting the withdrawal request.","locations":["src/LiquidityPool.sol:201","src/LiquidityPool.sol:205","src/LiquidityPool.sol:207","src/LiquidityPool.sol:235","src/LiquidityPool.sol:240","src/LiquidityPool.sol:242"]},{"severity":"medium","category":"access_control","title":"BNFT cancel path refunds caller without local ownership checks","exploit_scenario":"Any caller can invoke batchCancelDeposit with arbitrary validator IDs. If StakingManager does not strictly enforce ownership (or is upgraded with relaxed checks), an attacker could cancel other BNFT deposits and receive 1–2 ETH refunds per validator to their own address.","recommendation":"Enforce ownership or BNFT-holder authorization in LiquidityPool before issuing refunds (e.g., track validatorId -> BNFT holder and require match), or require an explicit success/authorization signal from StakingManager before sending ETH.","evidence":"batchCancelDeposit is externally callable and unconditionally refunds msg.sender based on validator phases, with no local ownership verification.","locations":["src/LiquidityPool.sol:361","src/LiquidityPool.sol:367","src/LiquidityPool.sol:377","src/LiquidityPool.sol:379","src/LiquidityPool.sol:382"]},{"severity":"low","category":"access_control","title":"Scheduling edge case lets index-0 BNFT holder bypass validator spin-up limits","exploit_scenario":"When numValidatorsToSpinUp < maxValidatorsPerOwner (or ==0), dutyForWeek returns (0,0). That makes only index-0 BNFT holder ‘assigned’, letting them call batchDepositAsBnftHolder with up to maxValidatorsPerOwner validators even when the admin intended none or fewer to spin up.","recommendation":"Handle the < maxValidatorsPerOwner case explicitly (e.g., set size=1 and cap _numberOfValidators by numValidatorsToSpinUp), or revert when numValidatorsToSpinUp is 0 to prevent unauthorized deposits.","evidence":"dutyForWeek returns (0,0) on low counts, and batchDepositAsBnftHolder doesn’t enforce numValidatorsToSpinUp or cap _numberOfValidators against it.","locations":["src/LiquidityPool.sol:446","src/LiquidityPool.sol:449","src/LiquidityPool.sol:257","src/LiquidityPool.sol:258","src/LiquidityPool.sol:268"]}]}
tokens used
145,312
{
"codex": {
"ran_at": "2026-01-11T08:24:58.344293+00:00",
"returncode": 0
},
"project": {
"mode": "source",
"file_count": 46,
"import_count": 52,
"first_party_contracts_count": 15
},
"summary": "Found three issues: unchecked ERC20 transfer results, BNFT cancel flow missing local ownership checks, and a scheduling edge case that lets index-0 BNFT holders bypass intended validator limits.",
"raw_final": {
"summary": "Found three issues: unchecked ERC20 transfer results, BNFT cancel flow missing local ownership checks, and a scheduling edge case that lets index-0 BNFT holders bypass intended validator limits.",
"findings": [
{
"title": "Unchecked eETH.transferFrom can mint withdrawal requests without locking funds",
"category": "other",
"evidence": "requestWithdraw and requestMembershipNFTWithdraw call eETH.transferFrom without checking its return value after minting the withdrawal request.",
"severity": "medium",
"locations": [
"src/LiquidityPool.sol:201",
"src/LiquidityPool.sol:205",
"src/LiquidityPool.sol:207",
"src/LiquidityPool.sol:235",
"src/LiquidityPool.sol:240",
"src/LiquidityPool.sol:242"
],
"recommendation": "Use SafeERC20 and require transferFrom to succeed, or move the token transfer before minting the WithdrawRequestNFT and explicitly check the return value. Consider reverting if _amount > _permit.value in requestWithdrawWithPermit.",
"exploit_scenario": "If eETH.transferFrom returns false (non-standard ERC20 behavior or future upgrade), requestWithdraw/requestMembershipNFTWithdraw will still mint a WithdrawRequestNFT. The caller can later claim ETH without actually transferring/burning eETH, draining LP liquidity."
},
{
"title": "BNFT cancel path refunds caller without local ownership checks",
"category": "access_control",
"evidence": "batchCancelDeposit is externally callable and unconditionally refunds msg.sender based on validator phases, with no local ownership verification.",
"severity": "medium",
"locations": [
"src/LiquidityPool.sol:361",
"src/LiquidityPool.sol:367",
"src/LiquidityPool.sol:377",
"src/LiquidityPool.sol:379",
"src/LiquidityPool.sol:382"
],
"recommendation": "Enforce ownership or BNFT-holder authorization in LiquidityPool before issuing refunds (e.g., track validatorId -> BNFT holder and require match), or require an explicit success/authorization signal from StakingManager before sending ETH.",
"exploit_scenario": "Any caller can invoke batchCancelDeposit with arbitrary validator IDs. If StakingManager does not strictly enforce ownership (or is upgraded with relaxed checks), an attacker could cancel other BNFT deposits and receive 1\u20132 ETH refunds per validator to their own address."
},
{
"title": "Scheduling edge case lets index-0 BNFT holder bypass validator spin-up limits",
"category": "access_control",
"evidence": "dutyForWeek returns (0,0) on low counts, and batchDepositAsBnftHolder doesn\u2019t enforce numValidatorsToSpinUp or cap _numberOfValidators against it.",
"severity": "low",
"locations": [
"src/LiquidityPool.sol:446",
"src/LiquidityPool.sol:449",
"src/LiquidityPool.sol:257",
"src/LiquidityPool.sol:258",
"src/LiquidityPool.sol:268"
],
"recommendation": "Handle the < maxValidatorsPerOwner case explicitly (e.g., set size=1 and cap _numberOfValidators by numValidatorsToSpinUp), or revert when numValidatorsToSpinUp is 0 to prevent unauthorized deposits.",
"exploit_scenario": "When numValidatorsToSpinUp < maxValidatorsPerOwner (or ==0), dutyForWeek returns (0,0). That makes only index-0 BNFT holder \u2018assigned\u2019, letting them call batchDepositAsBnftHolder with up to maxValidatorsPerOwner validators even when the admin intended none or fewer to spin up."
}
],
"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 0x02f2 0000000c: JUMPI 0000000d: PUSH1 0x00 0000000f: CALLDATALOAD 00000010: PUSH1 0xe0 00000012: SHR 00000013: DUP1 00000014: PUSH4 0x7edc80fd 00000019: GT 0000001a: PUSH2 0x018f 0000001d: JUMPI 0000001e: DUP1 0000001f: PUSH4 0xb7751c71 00000024: GT 00000025: PUSH2 0x00e1 00000028: JUMPI 00000029: DUP1 0000002a: PUSH4 0xdbdcedd2 0000002f: GT 00000030: PUSH2 0x008a 00000033: JUMPI 00000034: DUP1 00000035: PUSH4 0xe30f7c4f 0000003a: GT 0000003b: PUSH2 0x0064 0000003e: JUMPI 0000003f: DUP1 00000040: PUSH4 0xe30f7c4f 00000045: EQ 00000046: PUSH2 0x0911 00000049: JUMPI 0000004a: DUP1 0000004b: PUSH4 0xf2fde38b 00000050: EQ 00000051: PUSH2 0x0932 00000054: JUMPI 00000055: DUP1 00000056: PUSH4 0xffacef08 0000005b: EQ 0000005c: PUSH2 0x0952 0000005f: JUMPI 00000060: PUSH1 0x00 00000062: DUP1 00000063: REVERT 00000064: JUMPDEST 00000065: DUP1 00000066: PUSH4 0xdbdcedd2 0000006b: EQ 0000006c: PUSH2 0x08b1 0000006f: JUMPI 00000070: DUP1 00000071: PUSH4 0xdfd269de 00000076: EQ 00000077: PUSH2 0x08d1 0000007a: JUMPI 0000007b: DUP1 0000007c: PUSH4 0xe1ce002f 00000081: EQ 00000082: PUSH2 0x08f1 00000085: JUMPI 00000086: PUSH1 0x00 00000088: DUP1 00000089: REVERT 0000008a: JUMPDEST 0000008b: DUP1 0000008c: PUSH4 0xcdfb2b4e 00000091: GT 00000092: PUSH2 0x00bb 00000095: JUMPI 00000096: DUP1 00000097: PUSH4 0xcdfb2b4e 0000009c: EQ 0000009d: PUSH2 0x0867 000000a0: JUMPI 000000a1: DUP1 000000a2: PUSH4 0xd4e01f71 000000a7: EQ 000000a8: PUSH2 0x087c 000000ab: JUMPI 000000ac: DUP1 000000ad: PUSH4 0xd6b0f484 000000b2: EQ 000000b3: PUSH2 0x089c 000000b6: JUMPI 000000b7: PUSH1 0x00 000000b9: DUP1 000000ba: REVERT 000000bb: JUMPDEST 000000bc: DUP1 000000bd: PUSH4 0xb7751c71 000000c2: EQ 000000c3: PUSH2 0x0812 000000c6: JUMPI 000000c7: DUP1 000000c8: PUSH4 0xbac15203 000000cd: EQ 000000ce: PUSH2 0x0832 000000d1: JUMPI 000000d2: DUP1 000000d3: PUSH4 0xc4d66de8 000000d8: EQ 000000d9: PUSH2 0x0847 000000dc: JUMPI 000000dd: PUSH1 0x00 000000df: DUP1 000000e0: REVERT 000000e1: JUMPDEST 000000e2: DUP1 000000e3: PUSH4 0x8da5cb5b 000000e8: GT 000000e9: PUSH2 0x0143 000000ec: JUMPI 000000ed: DUP1 000000ee: PUSH4 0xa24085e1 000000f3: GT 000000f4: PUSH2 0x011d 000000f7: JUMPI 000000f8: DUP1 000000f9: PUSH4 0xa24085e1 000000fe: EQ 000000ff: PUSH2 0x07bc 00000102: JUMPI 00000103: DUP1 00000104: PUSH4 0xaaf10f42 00000109: EQ 0000010a: PUSH2 0x07dd 0000010d: JUMPI 0000010e: DUP1 0000010f: PUSH4 0xb084eae5 00000114: EQ 00000115: PUSH2 0x07f2 00000118: JUMPI 00000119: PUSH1 0x00 0000011b: DUP1 0000011c: REVERT 0000011d: JUMPDEST 0000011e: DUP1 0000011f: PUSH4 0x8da5cb5b 00000124: EQ 00000125: PUSH2 0x0743 00000128: JUMPI 00000129: DUP1 0000012a: PUSH4 0x9703ef35 0000012f: EQ 00000130: PUSH2 0x0761 00000133: JUMPI 00000134: DUP1 00000135: PUSH4 0xa06287e6 0000013a: EQ 0000013b: PUSH2 0x0781 0000013e: JUMPI 0000013f: PUSH1 0x00 00000141: DUP1 00000142: REVERT 00000143: JUMPDEST 00000144: DUP1 00000145: PUSH4 0x860e4784 0000014a: GT 0000014b: PUSH2 0x0174 0000014e: JUMPI 0000014f: DUP1 00000150: PUSH4 0x860e4784 00000155: EQ 00000156: PUSH2 0x06c7 00000159: JUMPI 0000015a: DUP1 0000015b: PUSH4 0x861fe104 00000160: EQ 00000161: PUSH2 0x070d 00000164: JUMPI 00000165: DUP1 00000166: PUSH4 0x8af11723 0000016b: EQ 0000016c: PUSH2 0x0722 0000016f: JUMPI 00000170: PUSH1 0x00 00000172: DUP1 00000173: REVERT 00000174: JUMPDEST 00000175: DUP1 00000176: PUSH4 0x7edc80fd 0000017b: EQ 0000017c: PUSH2 0x0687 0000017f: JUMPI 00000180: DUP1 00000181: PUSH4 0x8270f552 00000186: EQ 00000187: PUSH2 0x06a7 0000018a: JUMPI 0000018b: PUSH1 0x00 0000018d: DUP1 0000018e: REVERT 0000018f: JUMPDEST 00000190: DUP1 00000191: PUSH4 0x49751788 00000196: GT 00000197: PUSH2 0x0248 0000019a: JUMPI 0000019b: DUP1 0000019c: PUSH4 0x52d1902d 000001a1: GT 000001a2: PUSH2 0x01fc 000001a5: JUMPI 000001a6: DUP1 000001a7: PUSH4 0x702685c9 000001ac: GT 000001ad: PUSH2 0x01d6 000001b0: JUMPI 000001b1: DUP1 000001b2: PUSH4 0x702685c9 000001b7: EQ 000001b8: PUSH2 0x0632 000001bb: JUMPI 000001bc: DUP1 000001bd: PUSH4 0x715018a6 000001c2: EQ 000001c3: PUSH2 0x0652 000001c6: JUMPI 000001c7: DUP1 000001c8: PUSH4 0x792f9b76 000001cd: EQ 000001ce: PUSH2 0x0667 000001d1: JUMPI 000001d2: PUSH1 0x00 000001d4: DUP1 000001d5: REVERT 000001d6: JUMPDEST 000001d7: DUP1 000001d8: PUSH4 0x52d1902d 000001dd: EQ 000001de: PUSH2 0x05e5 000001e1: JUMPI 000001e2: DUP1 000001e3: PUSH4 0x5c975abb 000001e8: EQ 000001e9: PUSH2 0x05fa 000001ec: JUMPI 000001ed: DUP1 000001ee: PUSH4 0x670a6fd9 000001f3: EQ 000001f4: PUSH2 0x0612 000001f7: JUMPI 000001f8: PUSH1 0x00 000001fa: DUP1 000001fb: REVERT 000001fc: JUMPDEST 000001fd: DUP1 000001fe: PUSH4 0x4f1ef286 00000203: GT 00000204: PUSH2 0x022d 00000207: JUMPI 00000208: DUP1 00000209: PUSH4 0x4f1ef286 0000020e: EQ 0000020f: PUSH2 0x058f 00000212: JUMPI 00000213: DUP1 00000214: PUSH4 0x50a8a553 00000219: EQ 0000021a: PUSH2 0x05a2 0000021d: JUMPI 0000021e: DUP1 0000021f: PUSH4 0x51fb012d 00000224: EQ 00000225: PUSH2 0x05c3 00000228: JUMPI 00000229: PUSH1 0x00 0000022b: DUP1 0000022c: REVERT 0000022d: JUMPDEST 0000022e: DUP1 0000022f: PUSH4 0x49751788 00000234: EQ 00000235: PUSH2 0x0524 00000238: JUMPI 00000239: DUP1 0000023a: PUSH4 0x4c9981f6 0000023f: EQ 00000240: PUSH2 0x0566 00000243: JUMPI 00000244: PUSH1 0x00 00000246: DUP1 00000247: REVERT 00000248: JUMPDEST 00000249: DUP1 0000024a: PUSH4 0x3659cfe6 0000024f: GT 00000250: PUSH2 0x02aa 00000253: JUMPI 00000254: DUP1 00000255: PUSH4 0x439766ce 0000025a: GT 0000025b: PUSH2 0x0284 0000025e: JUMPI 0000025f: DUP1 00000260: PUSH4 0x439766ce 00000265: EQ 00000266: PUSH2 0x0435 00000269: JUMPI 0000026a: DUP1 0000026b: PUSH4 0x4423c5f1 00000270: EQ 00000271: PUSH2 0x044a 00000274: JUMPI 00000275: DUP1 00000276: PUSH4 0x489b677c 0000027b: EQ 0000027c: PUSH2 0x04e4 0000027f: JUMPI 00000280: PUSH1 0x00 00000282: DUP1 00000283: REVERT 00000284: JUMPDEST 00000285: DUP1 00000286: PUSH4 0x3659cfe6 0000028b: EQ 0000028c: PUSH2 0x03b4 0000028f: JUMPI 00000290: DUP1 00000291: PUSH4 0x380c1ef5 00000296: EQ 00000297: PUSH2 0x03d4 0000029a: JUMPI 0000029b: DUP1 0000029c: PUSH4 0x429b62e5 000002a1: EQ 000002a2: PUSH2 0x03f4 000002a5: JUMPI 000002a6: PUSH1 0x00 000002a8: DUP1 000002a9: REVERT 000002aa: JUMPDEST 000002ab: DUP1 000002ac: PUSH4 0x17d531fc 000002b1: GT 000002b2: PUSH2 0x02db 000002b5: JUMPI 000002b6: DUP1 000002b7: PUSH4 0x17d531fc 000002bc: EQ 000002bd: PUSH2 0x0343 000002c0: JUMPI 000002c1: DUP1 000002c2: PUSH4 0x2f708968 000002c7: EQ 000002c8: PUSH2 0x035a 000002cb: JUMPI 000002cc: DUP1 000002cd: PUSH4 0x30453392 000002d2: EQ 000002d3: PUSH2 0x0393 000002d6: JUMPI 000002d7: PUSH1 0x00 000002d9: DUP1 000002da: REVERT 000002db: JUMPDEST 000002dc: DUP1 000002dd: PUSH4 0x048d885f 000002e2: EQ 000002e3: PUSH2 0x02f7 000002e6: JUMPI 000002e7: DUP1 000002e8: PUSH4 0x069ef863 000002ed: EQ 000002ee: PUSH2 0x0321 000002f1: JUMPI 000002f2: JUMPDEST 000002f3: PUSH1 0x00 000002f5: DUP1 000002f6: REVERT 000002f7: JUMPDEST 000002f8: CALLVALUE 000002f9: DUP1 000002fa: ISZERO 000002fb: PUSH2 0x0303 000002fe: JUMPI 000002ff: PUSH1 0x00 00000301: DUP1 00000302: REVERT 00000303: JUMPDEST 00000304: POP 00000305: PUSH2 0x030e 00000308: PUSH2 0x012f 0000030b: SLOAD 0000030c: DUP2 0000030d: JUMP 0000030e: JUMPDEST 0000030f: PUSH1 0x40 00000311: MLOAD 00000312: SWAP1 00000313: DUP2 00000314: MSTORE 00000315: PUSH1 0x20 00000317: ADD 00000318: JUMPDEST 00000319: PUSH1 0x40 0000031b: MLOAD 0000031c: DUP1 0000031d: SWAP2 0000031e: SUB 0000031f: SWAP1 00000320: RETURN 00000321: JUMPDEST 00000322: CALLVALUE 00000323: DUP1 00000324: ISZERO 00000325: PUSH2 0x032d 00000328: JUMPI 00000329: PUSH1 0x00 0000032b: DUP1 0000032c: REVERT 0000032d: JUMPDEST 0000032e: POP 0000032f: PUSH2 0x0341 00000332: PUSH2 0x033c 00000335: CALLDATASIZE 00000336: PUSH1 0x04 00000338: PUSH2 0x309c 0000033b: JUMP 0000033c: JUMPDEST 0000033d: PUSH2 0x0973 00000340: JUMP 00000341: JUMPDEST 00000342: STOP 00000343: JUMPDEST 00000344: CALLVALUE 00000345: DUP1 00000346: ISZERO 00000347: PUSH2 0x034f 0000034a: JUMPI 0000034b: PUSH1 0x00 0000034d: DUP1 0000034e: REVERT 0000034f: JUMPDEST 00000350: POP 00000351: PUSH2 0x030e 00000354: PUSH2 0x012e 00000357: SLOAD 00000358: DUP2 00000359: JUMP 0000035a: JUMPDEST 0000035b: CALLVALUE 0000035c: DUP1 0000035d: ISZERO 0000035e: PUSH2 0x0366 00000361: JUMPI 00000362: PUSH1 0x00 00000364: DUP1 00000365: REVERT 00000366: JUMPDEST 00000367: POP 00000368: PUSH2 0x0131 0000036b: SLOAD 0000036c: PUSH2 0x037b 0000036f: SWAP1 00000370: PUSH1 0x01 00000372: PUSH1 0x01 00000374: PUSH1 0xa0 00000376: SHL 00000377: SUB 00000378: AND 00000379: DUP2 0000037a: JUMP 0000037b: JUMPDEST 0000037c: PUSH1 0x40 0000037e: MLOAD 0000037f: PUSH1 0x01 00000381: PUSH1 0x01 00000383: PUSH1 0xa0 00000385: SHL 00000386: SUB 00000387: SWAP1 00000388: SWAP2 00000389: AND 0000038a: DUP2 0000038b: MSTORE 0000038c: PUSH1 0x20 0000038e: ADD 0000038f: PUSH2 0x0318 00000392: JUMP 00000393: JUMPDEST 00000394: CALLVALUE 00000395: DUP1 00000396: ISZERO 00000397: PUSH2 0x039f 0000039a: JUMPI 0000039b: PUSH1 0x00 0000039d: DUP1 0000039e: REVERT 0000039f: JUMPDEST 000003a0: POP 000003a1: PUSH2 0x0135 000003a4: SLOAD 000003a5: PUSH2 0x037b 000003a8: SWAP1 000003a9: PUSH1 0x01 000003ab: PUSH1 0x01 000003ad: PUSH1 0xa0 000003af: SHL 000003b0: SUB 000003b1: AND 000003b2: DUP2 000003b3: JUMP 000003b4: JUMPDEST 000003b5: CALLVALUE 000003b6: DUP1 000003b7: ISZERO 000003b8: PUSH2 0x03c0 000003bb: JUMPI 000003bc: PUSH1 0x00 000003be: DUP1 000003bf: REVERT 000003c0: JUMPDEST 000003c1: POP 000003c2: PUSH2 0x0341 000003c5: PUSH2 0x03cf 000003c8: CALLDATASIZE 000003c9: PUSH1 0x04 000003cb: PUSH2 0x30ce 000003ce: JUMP 000003cf: JUMPDEST 000003d0: PUSH2 0x0a2d 000003d3: JUMP 000003d4: JUMPDEST 000003d5: CALLVALUE 000003d6: DUP1 000003d7: ISZERO 000003d8: PUSH2 0x03e0 000003db: JUMPI 000003dc: PUSH1 0x00 000003de: DUP1 000003df: REVERT 000003e0: JUMPDEST 000003e1: POP 000003e2: PUSH2 0x0341 000003e5: PUSH2 0x03ef 000003e8: CALLDATASIZE 000003e9: PUSH1 0x04 000003eb: PUSH2 0x30e9 000003ee: JUMP 000003ef: JUMPDEST 000003f0: PUSH2 0x0bca 000003f3: JUMP 000003f4: JUMPDEST 000003f5: CALLVALUE 000003f6: DUP1 000003f7: ISZERO 000003f8: PUSH2 0x0400 000003fb: JUMPI 000003fc: PUSH1 0x00 000003fe: DUP1 000003ff: REVERT 00000400: JUMPDEST 00000401: POP 00000402: PUSH2 0x0425 00000405: PUSH2 0x040f 00000408: CALLDATASIZE 00000409: PUSH1 0x04 0000040b: PUSH2 0x30ce 0000040e: JUMP 0000040f: JUMPDEST 00000410: PUSH2 0x0137 00000413: PUSH1 0x20 00000415: MSTORE 00000416: PUSH1 0x00 00000418: SWAP1 00000419: DUP2 0000041a: MSTORE 0000041b: PUSH1 0x40 0000041d: SWAP1 0000041e: KECCAK256 0000041f: SLOAD 00000420: PUSH1 0xff 00000422: AND 00000423: DUP2 00000424: JUMP 00000425: JUMPDEST 00000426: PUSH1 0x40 00000428: MLOAD 00000429: SWAP1 0000042a: ISZERO 0000042b: ISZERO 0000042c: DUP2 0000042d: MSTORE 0000042e: PUSH1 0x20 00000430: ADD 00000431: PUSH2 0x0318 00000434: JUMP 00000435: JUMPDEST 00000436: CALLVALUE 00000437: DUP1 00000438: ISZERO 00000439: PUSH2 0x0441 0000043c: JUMPI 0000043d: PUSH1 0x00 0000043f: DUP1 00000440: REVERT 00000441: JUMPDEST 00000442: POP 00000443: PUSH2 0x0341 00000446: PUSH2 0x0cf9 00000449: JUMP 0000044a: JUMPDEST 0000044b: CALLVALUE 0000044c: DUP1 0000044d: ISZERO 0000044e: PUSH2 0x0456 00000451: JUMPI 00000452: PUSH1 0x00 00000454: DUP1 00000455: REVERT 00000456: JUMPDEST 00000457: POP 00000458: PUSH2 0x04ab 0000045b: PUSH2 0x0465 0000045e: CALLDATASIZE 0000045f: PUSH1 0x04 00000461: PUSH2 0x30e9 00000464: JUMP 00000465: JUMPDEST 00000466: PUSH2 0x0133 00000469: PUSH1 0x20 0000046b: MSTORE 0000046c: PUSH1 0x00 0000046e: SWAP1 0000046f: DUP2 00000470: MSTORE 00000471: PUSH1 0x40 00000473: SWAP1 00000474: KECCAK256 00000475: DUP1 00000476: SLOAD 00000477: PUSH1 0x01 00000479: SWAP1 0000047a: SWAP2 0000047b: ADD 0000047c: SLOAD 0000047d: PUSH8 0xffffffffffffffff 00000486: DUP2 00000487: AND 00000488: SWAP1 00000489: PUSH9 0x010000000000000000 00000493: DUP2 00000494: DIV 00000495: PUSH1 0x01 00000497: PUSH1 0x01 00000499: PUSH1 0xa0 0000049b: SHL 0000049c: SUB 0000049d: AND 0000049e: SWAP1 0000049f: PUSH1 0x01 000004a1: PUSH1 0xe0 000004a3: SHL 000004a4: SWAP1 000004a5: DIV 000004a6: PUSH1 0xff 000004a8: AND 000004a9: DUP5 000004aa: JUMP 000004ab: JUMPDEST 000004ac: PUSH1 0x40 000004ae: DUP1 000004af: MLOAD 000004b0: SWAP5 000004b1: DUP6 000004b2: MSTORE 000004b3: PUSH8 0xffffffffffffffff 000004bc: SWAP1 000004bd: SWAP4 000004be: AND 000004bf: PUSH1 0x20 000004c1: DUP6 000004c2: ADD 000004c3: MSTORE 000004c4: PUSH1 0x01 000004c6: PUSH1 0x01 000004c8: PUSH1 0xa0 000004ca: SHL 000004cb: SUB 000004cc: SWAP1 000004cd: SWAP2 000004ce: AND 000004cf: SWAP2 000004d0: DUP4 000004d1: ADD 000004d2: SWAP2 000004d3: SWAP1 000004d4: SWAP2 000004d5: MSTORE 000004d6: ISZERO 000004d7: ISZERO 000004d8: PUSH1 0x60 000004da: DUP3 000004db: ADD 000004dc: MSTORE 000004dd: PUSH1 0x80 000004df: ADD 000004e0: PUSH2 0x0318 000004e3: JUMP 000004e4: JUMPDEST 000004e5: CALLVALUE 000004e6: DUP1 000004e7: ISZERO 000004e8: PUSH2 0x04f0 000004eb: JUMPI 000004ec: PUSH1 0x00 000004ee: DUP1 000004ef: REVERT 000004f0: JUMPDEST 000004f1: POP 000004f2: PUSH2 0x0136 000004f5: SLOAD 000004f6: PUSH2 0x050c 000004f9: SWAP1 000004fa: PUSH1 0x01 000004fc: PUSH1 0x80 000004fe: SHL 000004ff: SWAP1 00000500: DIV 00000501: PUSH1 0x01 00000503: PUSH1 0x01 00000505: PUSH1 0x80 00000507: SHL 00000508: SUB 00000509: AND 0000050a: DUP2 0000050b: JUMP 0000050c: JUMPDEST 0000050d: PUSH1 0x40 0000050f: MLOAD 00000510: PUSH1 0x01 00000512: PUSH1 0x01 00000514: PUSH1 0x80 00000516: SHL 00000517: SUB 00000518: SWAP1 00000519: SWAP2 0000051a: AND 0000051b: DUP2 0000051c: MSTORE 0000051d: PUSH1 0x20 0000051f: ADD 00000520: PUSH2 0x0318 00000523: JUMP 00000524: JUMPDEST 00000525: CALLVALUE 00000526: DUP1 00000527: ISZERO 00000528: PUSH2 0x0530 0000052b: JUMPI 0000052c: PUSH1 0x00 0000052e: DUP1 0000052f: REVERT 00000530: JUMPDEST 00000531: POP 00000532: PUSH2 0x012d 00000535: SLOAD 00000536: PUSH2 0x054d 00000539: SWAP1 0000053a: PUSH1 0x01 0000053c: PUSH1 0x80 0000053e: SHL 0000053f: SWAP1 00000540: DIV 00000541: PUSH8 0xffffffffffffffff 0000054a: AND 0000054b: DUP2 0000054c: JUMP 0000054d: JUMPDEST 0000054e: PUSH1 0x40 00000550: MLOAD 00000551: PUSH8 0xffffffffffffffff 0000055a: SWAP1 0000055b: SWAP2 0000055c: AND 0000055d: DUP2 0000055e: MSTORE 0000055f: PUSH1 0x20 00000561: ADD 00000562: PUSH2 0x0318 00000565: JUMP 00000566: JUMPDEST 00000567: CALLVALUE 00000568: DUP1 00000569: ISZERO 0000056a: PUSH2 0x0572 0000056d: JUMPI 0000056e: PUSH1 0x00 00000570: DUP1 00000571: REVERT 00000572: JUMPDEST 00000573: POP 00000574: PUSH2 0x012d 00000577: SLOAD 00000578: PUSH2 0x054d 0000057b: SWAP1 0000057c: PUSH1 0x01 0000057e: PUSH1 0xc0 00000580: SHL 00000581: SWAP1 00000582: DIV 00000583: PUSH8 0xffffffffffffffff 0000058c: AND 0000058d: DUP2 0000058e: JUMP 0000058f: JUMPDEST 00000590: PUSH2 0x0341 00000593: PUSH2 0x059d 00000596: CALLDATASIZE 00000597: PUSH1 0x04 00000599: PUSH2 0x3118 0000059c: JUMP 0000059d: JUMPDEST 0000059e: PUSH2 0x0d63 000005a1: JUMP 000005a2: JUMPDEST 000005a3: CALLVALUE 000005a4: DUP1 000005a5: ISZERO 000005a6: PUSH2 0x05ae 000005a9: JUMPI 000005aa: PUSH1 0x00 000005ac: DUP1 000005ad: REVERT 000005ae: JUMPDEST 000005af: POP 000005b0: PUSH2 0x0134 000005b3: SLOAD 000005b4: PUSH2 0x037b 000005b7: SWAP1 000005b8: PUSH1 0x01 000005ba: PUSH1 0x01 000005bc: PUSH1 0xa0 000005be: SHL 000005bf: SUB 000005c0: AND 000005c1: DUP2 000005c2: JUMP 000005c3: JUMPDEST 000005c4: CALLVALUE 000005c5: DUP1 000005c6: ISZERO 000005c7: PUSH2 0x05cf 000005ca: JUMPI 000005cb: PUSH1 0x00 000005cd: DUP1 000005ce: REVERT 000005cf: JUMPDEST 000005d0: POP 000005d1: PUSH2 0x0132 000005d4: SLOAD 000005d5: PUSH2 0x0425 000005d8: SWAP1 000005d9: PUSH1 0x01 000005db: PUSH1 0xa0 000005dd: SHL 000005de: SWAP1 000005df: DIV 000005e0: PUSH1 0xff 000005e2: AND 000005e3: DUP2 000005e4: JUMP 000005e5: JUMPDEST 000005e6: CALLVALUE 000005e7: DUP1 000005e8: ISZERO 000005e9: PUSH2 0x05f1 000005ec: JUMPI 000005ed: PUSH1 0x00 000005ef: DUP1 000005f0: REVERT 000005f1: JUMPDEST 000005f2: POP 000005f3: PUSH2 0x030e 000005f6: PUSH2 0x0ef1 000005f9: JUMP 000005fa: JUMPDEST 000005fb: CALLVALUE 000005fc: DUP1 000005fd: ISZERO 000005fe: PUSH2 0x0606 00000601: JUMPI 00000602: PUSH1 0x00 00000604: DUP1 00000605: REVERT 00000606: JUMPDEST 00000607: POP 00000608: PUSH1 0x33 0000060a: SLOAD 0000060b: PUSH1 0xff 0000060d: AND 0000060e: PUSH2 0x0425 00000611: JUMP 00000612: JUMPDEST 00000613: CALLVALUE 00000614: DUP1 00000615: ISZERO 00000616: PUSH2 0x061e 00000619: JUMPI 0000061a: PUSH1 0x00 0000061c: DUP1 0000061d: REVERT 0000061e: JUMPDEST 0000061f: POP 00000620: PUSH2 0x0341 00000623: PUSH2 0x062d 00000626: CALLDATASIZE 00000627: PUSH1 0x04 00000629: PUSH2 0x31e8 0000062c: JUMP 0000062d: JUMPDEST 0000062e: PUSH2 0x0fb6 00000631: JUMP 00000632: JUMPDEST 00000633: CALLVALUE 00000634: DUP1 00000635: ISZERO 00000636: PUSH2 0x063e 00000639: JUMPI 0000063a: PUSH1 0x00 0000063c: DUP1 0000063d: REVERT 0000063e: JUMPDEST 0000063f: POP 00000640: PUSH2 0x0341 00000643: PUSH2 0x064d 00000646: CALLDATASIZE 00000647: PUSH1 0x04 00000649: PUSH2 0x3235 0000064c: JUMP 0000064d: JUMPDEST 0000064e: PUSH2 0x1040 00000651: JUMP 00000652: JUMPDEST 00000653: CALLVALUE 00000654: DUP1 00000655: ISZERO 00000656: PUSH2 0x065e 00000659: JUMPI 0000065a: PUSH1 0x00 0000065c: DUP1 0000065d: REVERT 0000065e: JUMPDEST 0000065f: POP 00000660: PUSH2 0x0341 00000663: PUSH2 0x11d6 00000666: JUMP 00000667: JUMPDEST 00000668: CALLVALUE 00000669: DUP1 0000066a: ISZERO 0000066b: PUSH2 0x0673 0000066e: JUMPI 0000066f: PUSH1 0x00 00000671: DUP1 00000672: REVERT 00000673: JUMPDEST 00000674: POP 00000675: PUSH2 0x0341 00000678: PUSH2 0x0682 0000067b: CALLDATASIZE 0000067c: PUSH1 0x04 0000067e: PUSH2 0x3252 00000681: JUMP 00000682: JUMPDEST 00000683: PUSH2 0x11e8 00000686: JUMP 00000687: JUMPDEST 00000688: CALLVALUE 00000689: DUP1 0000068a: ISZERO 0000068b: PUSH2 0x0693 0000068e: JUMPI 0000068f: PUSH1 0x00 00000691: DUP1 00000692: REVERT 00000693: JUMPDEST 00000694: POP 00000695: PUSH2 0x0341 00000698: PUSH2 0x06a2 0000069b: CALLDATASIZE 0000069c: PUSH1 0x04 0000069e: PUSH2 0x3235 000006a1: JUMP 000006a2: JUMPDEST 000006a3: PUSH2 0x12e2 000006a6: JUMP 000006a7: JUMPDEST 000006a8: CALLVALUE 000006a9: DUP1 000006aa: ISZERO 000006ab: PUSH2 0x06b3 000006ae: JUMPI 000006af: PUSH1 0x00 000006b1: DUP1 000006b2: REVERT 000006b3: JUMPDEST 000006b4: POP 000006b5: PUSH2 0x0341 000006b8: PUSH2 0x06c2 000006bb: CALLDATASIZE 000006bc: PUSH1 0x04 000006be: PUSH2 0x32a6 000006c1: JUMP 000006c2: JUMPDEST 000006c3: PUSH2 0x13e4 000006c6: JUMP 000006c7: JUMPDEST 000006c8: CALLVALUE 000006c9: DUP1 000006ca: ISZERO 000006cb: PUSH2 0x06d3 000006ce: JUMPI 000006cf: PUSH1 0x00 000006d1: DUP1 000006d2: REVERT 000006d3: JUMPDEST 000006d4: POP 000006d5: PUSH2 0x037b 000006d8: PUSH2 0x06e2 000006db: CALLDATASIZE 000006dc: PUSH1 0x04 000006de: PUSH2 0x30e9 000006e1: JUMP 000006e2: JUMPDEST 000006e3: PUSH1 0x00 000006e5: SWAP1 000006e6: DUP2 000006e7: MSTORE 000006e8: PUSH2 0x0133 000006eb: PUSH1 0x20 000006ed: MSTORE 000006ee: PUSH1 0x40 000006f0: SWAP1 000006f1: KECCAK256 000006f2: PUSH1 0x01 000006f4: ADD 000006f5: SLOAD 000006f6: PUSH9 0x010000000000000000 00000700: SWAP1 00000701: DIV 00000702: PUSH1 0x01 00000704: PUSH1 0x01 00000706: PUSH1 0xa0 00000708: SHL 00000709: SUB 0000070a: AND 0000070b: SWAP1 0000070c: JUMP 0000070d: JUMPDEST 0000070e: CALLVALUE 0000070f: DUP1 00000710: ISZERO 00000711: PUSH2 0x0719 00000714: JUMPI 00000715: PUSH1 0x00 00000717: DUP1 00000718: REVERT 00000719: JUMPDEST 0000071a: POP 0000071b: PUSH2 0x0341 0000071e: PUSH2 0x142f 00000721: JUMP 00000722: JUMPDEST 00000723: CALLVALUE 00000724: DUP1 00000725: ISZERO 00000726: PUSH2 0x072e 00000729: JUMPI 0000072a: PUSH1 0x00 0000072c: DUP1 0000072d: REVERT 0000072e: JUMPDEST 0000072f: POP 00000730: PUSH2 0x012d 00000733: SLOAD 00000734: PUSH2 0x050c 00000737: SWAP1 00000738: PUSH1 0x01 0000073a: PUSH1 0x01 0000073c: PUSH1 0x80 0000073e: SHL 0000073f: SUB 00000740: AND 00000741: DUP2 00000742: JUMP 00000743: JUMPDEST 00000744: CALLVALUE 00000745: DUP1 00000746: ISZERO 00000747: PUSH2 0x074f 0000074a: JUMPI 0000074b: PUSH1 0x00 0000074d: DUP1 0000074e: REVERT 0000074f: JUMPDEST 00000750: POP 00000751: PUSH1 0x65 00000753: SLOAD 00000754: PUSH1 0x01 00000756: PUSH1 0x01 00000758: PUSH1 0xa0 0000075a: SHL 0000075b: SUB 0000075c: AND 0000075d: PUSH2 0x037b 00000760: JUMP 00000761: JUMPDEST 00000762: CALLVALUE 00000763: DUP1 00000764: ISZERO 00000765: PUSH2 0x076d 00000768: JUMPI 00000769: PUSH1 0x00 0000076b: DUP1 0000076c: REVERT 0000076d: JUMPDEST 0000076e: POP 0000076f: PUSH2 0x0341 00000772: PUSH2 0x077c 00000775: CALLDATASIZE 00000776: PUSH1 0x04 00000778: PUSH2 0x30e9 0000077b: JUMP 0000077c: JUMPDEST 0000077d: PUSH2 0x155b 00000780: JUMP 00000781: JUMPDEST 00000782: CALLVALUE 00000783: DUP1 00000784: ISZERO 00000785: PUSH2 0x078d 00000788: JUMPI 00000789: PUSH1 0x00 0000078b: DUP1 0000078c: REVERT 0000078d: JUMPDEST 0000078e: POP 0000078f: PUSH2 0x0425 00000792: PUSH2 0x079c 00000795: CALLDATASIZE 00000796: PUSH1 0x04 00000798: PUSH2 0x30e9 0000079b: JUMP 0000079c: JUMPDEST 0000079d: PUSH1 0x00 0000079f: SWAP1 000007a0: DUP2 000007a1: MSTORE 000007a2: PUSH2 0x0133 000007a5: PUSH1 0x20 000007a7: MSTORE 000007a8: PUSH1 0x40 000007aa: SWAP1 000007ab: KECCAK256 000007ac: PUSH1 0x01 000007ae: ADD 000007af: SLOAD 000007b0: PUSH1 0x01 000007b2: PUSH1 0xe0 000007b4: SHL 000007b5: SWAP1 000007b6: DIV 000007b7: PUSH1 0xff 000007b9: AND 000007ba: SWAP1 000007bb: JUMP 000007bc: JUMPDEST 000007bd: CALLVALUE 000007be: DUP1 000007bf: ISZERO 000007c0: PUSH2 0x07c8 000007c3: JUMPI 000007c4: PUSH1 0x00 000007c6: DUP1 000007c7: REVERT 000007c8: JUMPDEST 000007c9: POP 000007ca: PUSH2 0x0132 000007cd: SLOAD 000007ce: PUSH2 0x037b 000007d1: SWAP1 000007d2: PUSH1 0x01 000007d4: PUSH1 0x01 000007d6: PUSH1 0xa0 000007d8: SHL 000007d9: SUB 000007da: AND 000007db: DUP2 000007dc: JUMP 000007dd: JUMPDEST 000007de: CALLVALUE 000007df: DUP1 000007e0: ISZERO 000007e1: PUSH2 0x07e9 000007e4: JUMPI 000007e5: PUSH1 0x00 000007e7: DUP1 000007e8: REVERT 000007e9: JUMPDEST 000007ea: POP 000007eb: PUSH2 0x037b 000007ee: PUSH2 0x156c 000007f1: JUMP 000007f2: JUMPDEST 000007f3: CALLVALUE 000007f4: DUP1 000007f5: ISZERO 000007f6: PUSH2 0x07fe 000007f9: JUMPI 000007fa: PUSH1 0x00 000007fc: DUP1 000007fd: REVERT 000007fe: JUMPDEST 000007ff: POP 00000800: PUSH2 0x0341 00000803: PUSH2 0x080d 00000806: CALLDATASIZE 00000807: PUSH1 0x04 00000809: PUSH2 0x30ce 0000080c: JUMP 0000080d: JUMPDEST 0000080e: PUSH2 0x15a4 00000811: JUMP 00000812: JUMPDEST 00000813: PUSH2 0x0825 00000816: PUSH2 0x0820 00000819: CALLDATASIZE 0000081a: PUSH1 0x04 0000081c: PUSH2 0x331b 0000081f: JUMP 00000820: JUMPDEST 00000821: PUSH2 0x15dc 00000824: JUMP 00000825: JUMPDEST 00000826: PUSH1 0x40 00000828: MLOAD 00000829: PUSH2 0x0318 0000082c: SWAP2 0000082d: SWAP1 0000082e: PUSH2 0x3378 00000831: JUMP 00000832: JUMPDEST 00000833: CALLVALUE 00000834: DUP1 00000835: ISZERO 00000836: PUSH2 0x083e 00000839: JUMPI 0000083a: PUSH1 0x00 0000083c: DUP1 0000083d: REVERT 0000083e: JUMPDEST 0000083f: POP 00000840: PUSH2 0x0341 00000843: PUSH2 0x1c81 00000846: JUMP 00000847: JUMPDEST 00000848: CALLVALUE 00000849: DUP1 0000084a: ISZERO 0000084b: PUSH2 0x0853 0000084e: JUMPI 0000084f: PUSH1 0x00 00000851: DUP1 00000852: REVERT 00000853: JUMPDEST 00000854: POP 00000855: PUSH2 0x0341 00000858: PUSH2 0x0862 0000085b: CALLDATASIZE 0000085c: PUSH1 0x04 0000085e: PUSH2 0x30ce 00000861: JUMP 00000862: JUMPDEST 00000863: PUSH2 0x1ce9 00000866: JUMP 00000867: JUMPDEST 00000868: CALLVALUE 00000869: DUP1 0000086a: ISZERO 0000086b: PUSH2 0x0873 0000086e: JUMPI 0000086f: PUSH1 0x00 00000871: DUP1 00000872: REVERT 00000873: JUMPDEST 00000874: POP 00000875: PUSH2 0x0341 00000878: PUSH2 0x1efc 0000087b: JUMP 0000087c: JUMPDEST 0000087d: CALLVALUE 0000087e: DUP1 0000087f: ISZERO 00000880: PUSH2 0x0888 00000883: JUMPI 00000884: PUSH1 0x00 00000886: DUP1 00000887: REVERT 00000888: JUMPDEST 00000889: POP 0000088a: PUSH2 0x0341 0000088d: PUSH2 0x0897 00000890: CALLDATASIZE 00000891: PUSH1 0x04 00000893: PUSH2 0x30e9 00000896: JUMP 00000897: JUMPDEST 00000898: PUSH2 0x1fd1 0000089b: JUMP 0000089c: JUMPDEST 0000089d: CALLVALUE 0000089e: DUP1 0000089f: ISZERO 000008a0: PUSH2 0x08a8 000008a3: JUMPI 000008a4: PUSH1 0x00 000008a6: DUP1 000008a7: REVERT 000008a8: JUMPDEST 000008a9: POP 000008aa: PUSH2 0x0341 000008ad: PUSH2 0x2173 000008b0: JUMP 000008b1: JUMPDEST 000008b2: CALLVALUE 000008b3: DUP1 000008b4: ISZERO 000008b5: PUSH2 0x08bd 000008b8: JUMPI 000008b9: PUSH1 0x00 000008bb: DUP1 000008bc: REVERT 000008bd: JUMPDEST 000008be: POP 000008bf: PUSH2 0x0341 000008c2: PUSH2 0x08cc 000008c5: CALLDATASIZE 000008c6: PUSH1 0x04 000008c8: PUSH2 0x30ce 000008cb: JUMP 000008cc: JUMPDEST 000008cd: PUSH2 0x223c 000008d0: JUMP 000008d1: JUMPDEST 000008d2: CALLVALUE 000008d3: DUP1 000008d4: ISZERO 000008d5: PUSH2 0x08dd 000008d8: JUMPI 000008d9: PUSH1 0x00 000008db: DUP1 000008dc: REVERT 000008dd: JUMPDEST 000008de: POP 000008df: PUSH2 0x0341 000008e2: PUSH2 0x08ec 000008e5: CALLDATASIZE 000008e6: PUSH1 0x04 000008e8: PUSH2 0x30e9 000008eb: JUMP 000008ec: JUMPDEST 000008ed: PUSH2 0x2324 000008f0: JUMP 000008f1: JUMPDEST 000008f2: CALLVALUE 000008f3: DUP1 000008f4: ISZERO 000008f5: PUSH2 0x08fd 000008f8: JUMPI 000008f9: PUSH1 0x00 000008fb: DUP1 000008fc: REVERT 000008fd: JUMPDEST 000008fe: POP 000008ff: PUSH2 0x0341 00000902: PUSH2 0x090c 00000905: CALLDATASIZE 00000906: PUSH1 0x04 00000908: PUSH2 0x309c 0000090b: JUMP 0000090c: JUMPDEST 0000090d: PUSH2 0x2421 00000910: JUMP 00000911: JUMPDEST 00000912: CALLVALUE 00000913: DUP1 00000914: ISZERO 00000915: PUSH2 0x091d 00000918: JUMPI 00000919: PUSH1 0x00 0000091b: DUP1 0000091c: REVERT 0000091d: JUMPDEST 0000091e: POP 0000091f: PUSH2 0x0130 00000922: SLOAD 00000923: PUSH2 0x037b 00000926: SWAP1 00000927: PUSH1 0x01 00000929: PUSH1 0x01 0000092b: PUSH1 0xa0 0000092d: SHL 0000092e: SUB 0000092f: AND 00000930: DUP2 00000931: JUMP 00000932: JUMPDEST 00000933: CALLVALUE 00000934: DUP1 00000935: ISZERO 00000936: PUSH2 0x093e 00000939: JUMPI 0000093a: PUSH1 0x00 0000093c: DUP1 0000093d: REVERT 0000093e: JUMPDEST 0000093f: POP 00000940: PUSH2 0x0341 00000943: PUSH2 0x094d 00000946: CALLDATASIZE 00000947: PUSH1 0x04 00000949: PUSH2 0x30ce 0000094c: JUMP 0000094d: JUMPDEST 0000094e: PUSH2 0x24a1 00000951: JUMP 00000952: JUMPDEST 00000953: CALLVALUE 00000954: DUP1 00000955: ISZERO 00000956: PUSH2 0x095e 00000959: JUMPI 0000095a: PUSH1 0x00 0000095c: DUP1 0000095d: REVERT 0000095e: JUMPDEST 0000095f: POP 00000960: PUSH2 0x0136 00000963: SLOAD 00000964: PUSH2 0x050c 00000967: SWAP1 00000968: PUSH1 0x01 0000096a: PUSH1 0x01 0000096c: PUSH1 0x80 0000096e: SHL 0000096f: SUB 00000970: AND 00000971: DUP2 00000972: JUMP 00000973: JUMPDEST 00000974: PUSH2 0x097b 00000977: PUSH2 0x252e 0000097a: JUMP 0000097b: JUMPDEST 0000097c: PUSH2 0x012d 0000097f: SLOAD 00000980: PUSH1 0x01 00000982: PUSH1 0x80 00000984: SHL 00000985: SWAP1 00000986: DIV 00000987: PUSH8 0xffffffffffffffff 00000990: AND 00000991: PUSH1 0x01 00000993: PUSH1 0x01 00000995: PUSH1 0x80 00000997: SHL 00000998: SUB 00000999: DUP3 0000099a: AND 0000099b: LT 0000099c: DUP1 0000099d: ISZERO 0000099e: PUSH2 0x09b0 000009a1: JUMPI 000009a2: POP 000009a3: PUSH1 0x00 000009a5: DUP2 000009a6: PUSH1 0x01 000009a8: PUSH1 0x01 000009aa: PUSH1 0x80 000009ac: SHL 000009ad: SUB 000009ae: AND 000009af: GT 000009b0: JUMPDEST 000009b1: PUSH2 0x0a01 000009b4: JUMPI 000009b5: PUSH1 0x40 000009b7: MLOAD 000009b8: PUSH3 0x461bcd 000009bc: PUSH1 0xe5 000009be: SHL 000009bf: DUP2 000009c0: MSTORE 000009c1: PUSH1 0x20 000009c3: PUSH1 0x04 000009c5: DUP3 000009c6: ADD 000009c7: MSTORE 000009c8: PUSH1 0x0e 000009ca: PUSH1 0x24 000009cc: DUP3 000009cd: ADD 000009ce: MSTORE 000009cf: PUSH32 0x496e76616c696420416d6f756e74000000000000000000000000000000000000 000009f0: PUSH1 0x44 000009f2: DUP3 000009f3: ADD 000009f4: MSTORE 000009f5: PUSH1 0x64 000009f7: ADD 000009f8: JUMPDEST 000009f9: PUSH1 0x40 000009fb: MLOAD 000009fc: DUP1 000009fd: SWAP2 000009fe: SUB 000009ff: SWAP1 00000a00: REVERT 00000a01: JUMPDEST 00000a02: PUSH2 0x012d 00000a05: DUP1 00000a06: SLOAD 00000a07: PUSH16 0xffffffffffffffffffffffffffffffff 00000a18: NOT 00000a19: AND 00000a1a: PUSH1 0x01 00000a1c: PUSH1 0x01 00000a1e: PUSH1 0x80 00000a20: SHL 00000a21: SUB 00000a22: SWAP3 00000a23: SWAP1 00000a24: SWAP3 00000a25: AND 00000a26: SWAP2 00000a27: SWAP1 00000a28: SWAP2 00000a29: OR 00000a2a: SWAP1 00000a2b: SSTORE 00000a2c: JUMP 00000a2d: JUMPDEST 00000a2e: PUSH1 0x01 00000a30: PUSH1 0x01 00000a32: PUSH1 0xa0 00000a34: SHL 00000a35: SUB 00000a36: PUSH32 0x00000000000000000000000068fe80c6e97e0c8613e2fed344358c6635ba5366 00000a57: AND 00000a58: ADDRESS 00000a59: SUB 00000a5a: PUSH2 0x0acb 00000a5d: JUMPI 00000a5e: PUSH1 0x40 00000a60: MLOAD 00000a61: PUSH3 0x461bcd 00000a65: PUSH1 0xe5 00000a67: SHL 00000a68: DUP2 00000a69: MSTORE 00000a6a: PUSH1 0x20 00000a6c: PUSH1 0x04 00000a6e: DUP3 00000a6f: ADD 00000a70: MSTORE 00000a71: PUSH1 0x2c 00000a73: PUSH1 0x24 00000a75: DUP3 00000a76: ADD 00000a77: MSTORE 00000a78: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 00000a99: PUSH1 0x44 00000a9b: DUP3 00000a9c: ADD 00000a9d: MSTORE 00000a9e: PUSH32 0x64656c656761746563616c6c0000000000000000000000000000000000000000 00000abf: PUSH1 0x64 00000ac1: DUP3 00000ac2: ADD 00000ac3: MSTORE 00000ac4: PUSH1 0x84 00000ac6: ADD 00000ac7: PUSH2 0x09f8 00000aca: JUMP 00000acb: JUMPDEST 00000acc: PUSH32 0x00000000000000000000000068fe80c6e97e0c8613e2fed344358c6635ba5366 00000aed: PUSH1 0x01 00000aef: PUSH1 0x01 00000af1: PUSH1 0xa0 00000af3: SHL 00000af4: SUB 00000af5: AND 00000af6: PUSH2 0x0b26 00000af9: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 00000b1a: SLOAD 00000b1b: PUSH1 0x01 00000b1d: PUSH1 0x01 00000b1f: PUSH1 0xa0 00000b21: SHL 00000b22: SUB 00000b23: AND 00000b24: SWAP1 00000b25: JUMP 00000b26: JUMPDEST 00000b27: PUSH1 0x01 00000b29: PUSH1 0x01 00000b2b: PUSH1 0xa0 00000b2d: SHL 00000b2e: SUB 00000b2f: AND 00000b30: EQ 00000b31: PUSH2 0x0ba2 00000b34: JUMPI 00000b35: PUSH1 0x40 00000b37: MLOAD 00000b38: PUSH3 0x461bcd 00000b3c: PUSH1 0xe5 00000b3e: SHL 00000b3f: DUP2 00000b40: MSTORE 00000b41: PUSH1 0x20 00000b43: PUSH1 0x04 00000b45: DUP3 00000b46: ADD 00000b47: MSTORE 00000b48: PUSH1 0x2c 00000b4a: PUSH1 0x24 00000b4c: DUP3 00000b4d: ADD 00000b4e: MSTORE 00000b4f: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 00000b70: PUSH1 0x44 00000b72: DUP3 00000b73: ADD 00000b74: MSTORE 00000b75: PUSH32 0x6163746976652070726f78790000000000000000000000000000000000000000 00000b96: PUSH1 0x64 00000b98: DUP3 00000b99: ADD 00000b9a: MSTORE 00000b9b: PUSH1 0x84 00000b9d: ADD 00000b9e: PUSH2 0x09f8 00000ba1: JUMP 00000ba2: JUMPDEST 00000ba3: PUSH2 0x0bab 00000ba6: DUP2 00000ba7: PUSH2 0x2588 00000baa: JUMP 00000bab: JUMPDEST 00000bac: PUSH1 0x40 00000bae: DUP1 00000baf: MLOAD 00000bb0: PUSH1 0x00 00000bb2: DUP1 00000bb3: DUP3 00000bb4: MSTORE 00000bb5: PUSH1 0x20 00000bb7: DUP3 00000bb8: ADD 00000bb9: SWAP1 00000bba: SWAP3 00000bbb: MSTORE 00000bbc: PUSH2 0x0bc7 00000bbf: SWAP2 00000bc0: DUP4 00000bc1: SWAP2 00000bc2: SWAP1 00000bc3: PUSH2 0x2590 00000bc6: JUMP 00000bc7: JUMPDEST 00000bc8: POP 00000bc9: JUMP 00000bca: JUMPDEST 00000bcb: PUSH2 0x0132 00000bce: SLOAD 00000bcf: PUSH1 0x01 00000bd1: PUSH1 0x01 00000bd3: PUSH1 0xa0 00000bd5: SHL 00000bd6: SUB 00000bd7: AND 00000bd8: CALLER 00000bd9: EQ 00000bda: PUSH2 0x0c34 00000bdd: JUMPI 00000bde: PUSH1 0x40 00000be0: MLOAD 00000be1: PUSH3 0x461bcd 00000be5: PUSH1 0xe5 00000be7: SHL 00000be8: DUP2 00000be9: MSTORE 00000bea: PUSH1 0x20 00000bec: PUSH1 0x04 00000bee: DUP3 00000bef: ADD 00000bf0: MSTORE 00000bf1: PUSH1 0x26 00000bf3: PUSH1 0x24 00000bf5: DUP3 00000bf6: ADD 00000bf7: MSTORE 00000bf8: PUSH32 0x4f6e6c79207374616b696e67206d616e6167657220636f6e7472616374206675 00000c19: PUSH1 0x44 00000c1b: DUP3 00000c1c: ADD 00000c1d: MSTORE 00000c1e: PUSH6 0x3731ba34b7b7 00000c25: PUSH1 0xd1 00000c27: SHL 00000c28: PUSH1 0x64 00000c2a: DUP3 00000c2b: ADD 00000c2c: MSTORE 00000c2d: PUSH1 0x84 00000c2f: ADD 00000c30: PUSH2 0x09f8 00000c33: JUMP 00000c34: JUMPDEST 00000c35: PUSH1 0x00 00000c37: DUP2 00000c38: DUP2 00000c39: MSTORE 00000c3a: PUSH2 0x0133 00000c3d: PUSH1 0x20 00000c3f: MSTORE 00000c40: PUSH1 0x40 00000c42: SWAP1 00000c43: KECCAK256 00000c44: PUSH1 0x01 00000c46: DUP2 00000c47: ADD 00000c48: SLOAD 00000c49: PUSH1 0x01 00000c4b: PUSH1 0xe0 00000c4d: SHL 00000c4e: SWAP1 00000c4f: DIV 00000c50: PUSH1 0xff 00000c52: AND 00000c53: ISZERO 00000c54: PUSH2 0x0c9f 00000c57: JUMPI 00000c58: PUSH1 0x40 00000c5a: MLOAD 00000c5b: PUSH3 0x461bcd 00000c5f: PUSH1 0xe5 00000c61: SHL 00000c62: DUP2 00000c63: MSTORE 00000c64: PUSH1 0x20 00000c66: PUSH1 0x04 00000c68: DUP3 00000c69: ADD 00000c6a: MSTORE 00000c6b: PUSH1 0x12 00000c6d: PUSH1 0x24 00000c6f: DUP3 00000c70: ADD 00000c71: MSTORE 00000c72: PUSH32 0x42696420616c7265616479206163746976650000000000000000000000000000 00000c93: PUSH1 0x44 00000c95: DUP3 00000c96: ADD 00000c97: MSTORE 00000c98: PUSH1 0x64 00000c9a: ADD 00000c9b: PUSH2 0x09f8 00000c9e: JUMP 00000c9f: JUMPDEST 00000ca0: PUSH1 0x01 00000ca2: DUP2 00000ca3: ADD 00000ca4: DUP1 00000ca5: SLOAD 00000ca6: PUSH1 0xff 00000ca8: PUSH1 0xe0 00000caa: SHL 00000cab: NOT 00000cac: AND 00000cad: PUSH1 0x01 00000caf: PUSH1 0xe0 00000cb1: SHL 00000cb2: OR 00000cb3: SWAP1 00000cb4: SSTORE 00000cb5: PUSH2 0x012f 00000cb8: DUP1 00000cb9: SLOAD 00000cba: SWAP1 00000cbb: PUSH1 0x00 00000cbd: PUSH2 0x0cc5 00000cc0: DUP4 00000cc1: PUSH2 0x33a1 00000cc4: JUMP 00000cc5: JUMPDEST 00000cc6: SWAP1 00000cc7: SWAP2 00000cc8: SSTORE 00000cc9: POP 00000cca: POP 00000ccb: PUSH1 0x40 00000ccd: MLOAD 00000cce: DUP3 00000ccf: SWAP1 00000cd0: PUSH32 0x1802028266951666513c5a864fe410f4b304e79bf39af3297ab000391b75c495 00000cf1: SWAP1 00000cf2: PUSH1 0x00 00000cf4: SWAP1 00000cf5: LOG2 00000cf6: POP 00000cf7: POP 00000cf8: JUMP 00000cf9: JUMPDEST 00000cfa: CALLER 00000cfb: PUSH1 0x00 00000cfd: SWAP1 00000cfe: DUP2 00000cff: MSTORE 00000d00: PUSH2 0x0137 00000d03: PUSH1 0x20 00000d05: MSTORE 00000d06: PUSH1 0x40 00000d08: SWAP1 00000d09: KECCAK256 00000d0a: SLOAD 00000d0b: PUSH1 0xff 00000d0d: AND 00000d0e: PUSH2 0x0d59 00000d11: JUMPI 00000d12: PUSH1 0x40 00000d14: MLOAD 00000d15: PUSH3 0x461bcd 00000d19: PUSH1 0xe5 00000d1b: SHL 00000d1c: DUP2 00000d1d: MSTORE 00000d1e: PUSH1 0x20 00000d20: PUSH1 0x04 00000d22: DUP3 00000d23: ADD 00000d24: MSTORE 00000d25: PUSH1 0x17 00000d27: PUSH1 0x24 00000d29: DUP3 00000d2a: ADD 00000d2b: MSTORE 00000d2c: PUSH32 0x43616c6c6572206973206e6f74207468652061646d696e000000000000000000 00000d4d: PUSH1 0x44 00000d4f: DUP3 00000d50: ADD 00000d51: MSTORE 00000d52: PUSH1 0x64 00000d54: ADD 00000d55: PUSH2 0x09f8 00000d58: JUMP 00000d59: JUMPDEST 00000d5a: PUSH2 0x0d61 00000d5d: PUSH2 0x2730 00000d60: JUMP 00000d61: JUMPDEST 00000d62: JUMP 00000d63: JUMPDEST 00000d64: PUSH1 0x01 00000d66: PUSH1 0x01 00000d68: PUSH1 0xa0 00000d6a: SHL 00000d6b: SUB 00000d6c: PUSH32 0x00000000000000000000000068fe80c6e97e0c8613e2fed344358c6635ba5366 00000d8d: AND 00000d8e: ADDRESS 00000d8f: SUB 00000d90: PUSH2 0x0e01 00000d93: JUMPI 00000d94: PUSH1 0x40 00000d96: MLOAD 00000d97: PUSH3 0x461bcd 00000d9b: PUSH1 0xe5 00000d9d: SHL 00000d9e: DUP2 00000d9f: MSTORE 00000da0: PUSH1 0x20 00000da2: PUSH1 0x04 00000da4: DUP3 00000da5: ADD 00000da6: MSTORE 00000da7: PUSH1 0x2c 00000da9: PUSH1 0x24 00000dab: DUP3 00000dac: ADD 00000dad: MSTORE 00000dae: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 00000dcf: PUSH1 0x44 00000dd1: DUP3 00000dd2: ADD 00000dd3: MSTORE 00000dd4: PUSH32 0x64656c656761746563616c6c0000000000000000000000000000000000000000 00000df5: PUSH1 0x64 00000df7: DUP3 00000df8: ADD 00000df9: MSTORE 00000dfa: PUSH1 0x84 00000dfc: ADD 00000dfd: PUSH2 0x09f8 00000e00: JUMP 00000e01: JUMPDEST 00000e02: PUSH32 0x00000000000000000000000068fe80c6e97e0c8613e2fed344358c6635ba5366 00000e23: PUSH1 0x01 00000e25: PUSH1 0x01 00000e27: PUSH1 0xa0 00000e29: SHL 00000e2a: SUB 00000e2b: AND 00000e2c: PUSH2 0x0e5c 00000e2f: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 00000e50: SLOAD 00000e51: PUSH1 0x01 00000e53: PUSH1 0x01 00000e55: PUSH1 0xa0 00000e57: SHL 00000e58: SUB 00000e59: AND 00000e5a: SWAP1 00000e5b: JUMP 00000e5c: JUMPDEST 00000e5d: PUSH1 0x01 00000e5f: PUSH1 0x01 00000e61: PUSH1 0xa0 00000e63: SHL 00000e64: SUB 00000e65: AND 00000e66: EQ 00000e67: PUSH2 0x0ed8 00000e6a: JUMPI 00000e6b: PUSH1 0x40 00000e6d: MLOAD 00000e6e: PUSH3 0x461bcd 00000e72: PUSH1 0xe5 00000e74: SHL 00000e75: DUP2 00000e76: MSTORE 00000e77: PUSH1 0x20 00000e79: PUSH1 0x04 00000e7b: DUP3 00000e7c: ADD 00000e7d: MSTORE 00000e7e: PUSH1 0x2c 00000e80: PUSH1 0x24 00000e82: DUP3 00000e83: ADD 00000e84: MSTORE 00000e85: PUSH32 0x46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820 00000ea6: PUSH1 0x44 00000ea8: DUP3 00000ea9: ADD 00000eaa: MSTORE 00000eab: PUSH32 0x6163746976652070726f78790000000000000000000000000000000000000000 00000ecc: PUSH1 0x64 00000ece: DUP3 00000ecf: ADD 00000ed0: MSTORE 00000ed1: PUSH1 0x84 00000ed3: ADD 00000ed4: PUSH2 0x09f8 00000ed7: JUMP 00000ed8: JUMPDEST 00000ed9: PUSH2 0x0ee1 00000edc: DUP3 00000edd: PUSH2 0x2588 00000ee0: JUMP 00000ee1: JUMPDEST 00000ee2: PUSH2 0x0eed 00000ee5: DUP3 00000ee6: DUP3 00000ee7: PUSH1 0x01 00000ee9: PUSH2 0x2590 00000eec: JUMP 00000eed: JUMPDEST 00000eee: POP 00000eef: POP 00000ef0: JUMP 00000ef1: JUMPDEST 00000ef2: PUSH1 0x00 00000ef4: ADDRESS 00000ef5: PUSH1 0x01 00000ef7: PUSH1 0x01 00000ef9: PUSH1 0xa0 00000efb: SHL 00000efc: SUB 00000efd: PUSH32 0x00000000000000000000000068fe80c6e97e0c8613e2fed344358c6635ba5366 00000f1e: AND 00000f1f: EQ 00000f20: PUSH2 0x0f91 00000f23: JUMPI 00000f24: PUSH1 0x40 00000f26: MLOAD 00000f27: PUSH3 0x461bcd 00000f2b: PUSH1 0xe5 00000f2d: SHL 00000f2e: DUP2 00000f2f: MSTORE 00000f30: PUSH1 0x20 00000f32: PUSH1 0x04 00000f34: DUP3 00000f35: ADD 00000f36: MSTORE 00000f37: PUSH1 0x38 00000f39: PUSH1 0x24 00000f3b: DUP3 00000f3c: ADD 00000f3d: MSTORE 00000f3e: PUSH32 0x555550535570677261646561626c653a206d757374206e6f742062652063616c 00000f5f: PUSH1 0x44 00000f61: DUP3 00000f62: ADD 00000f63: MSTORE 00000f64: PUSH32 0x6c6564207468726f7567682064656c656761746563616c6c0000000000000000 00000f85: PUSH1 0x64 00000f87: DUP3 00000f88: ADD 00000f89: MSTORE 00000f8a: PUSH1 0x84 00000f8c: ADD 00000f8d: PUSH2 0x09f8 00000f90: JUMP 00000f91: JUMPDEST 00000f92: POP 00000f93: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 00000fb4: SWAP1 00000fb5: JUMP 00000fb6: JUMPDEST 00000fb7: PUSH2 0x0fbe 00000fba: PUSH2 0x252e 00000fbd: JUMP 00000fbe: JUMPDEST 00000fbf: PUSH1 0x01 00000fc1: PUSH1 0x01 00000fc3: PUSH1 0xa0 00000fc5: SHL 00000fc6: SUB 00000fc7: DUP3 00000fc8: AND 00000fc9: PUSH2 0x1014 00000fcc: JUMPI 00000fcd: PUSH1 0x40 00000fcf: MLOAD 00000fd0: PUSH3 0x461bcd 00000fd4: PUSH1 0xe5 00000fd6: SHL 00000fd7: DUP2 00000fd8: MSTORE 00000fd9: PUSH1 0x20 00000fdb: PUSH1 0x04 00000fdd: DUP3 00000fde: ADD 00000fdf: MSTORE 00000fe0: PUSH1 0x16 00000fe2: PUSH1 0x24 00000fe4: DUP3 00000fe5: ADD 00000fe6: MSTORE 00000fe7: PUSH32 0x43616e6e6f742062652061646472657373207a65726f00000000000000000000 00001008: PUSH1 0x44 0000100a: DUP3 0000100b: ADD 0000100c: MSTORE 0000100d: PUSH1 0x64 0000100f: ADD 00001010: PUSH2 0x09f8 00001013: JUMP 00001014: JUMPDEST 00001015: PUSH1 0x01 00001017: PUSH1 0x01 00001019: PUSH1 0xa0 0000101b: SHL 0000101c: SUB 0000101d: SWAP2 0000101e: SWAP1 0000101f: SWAP2 00001020: AND 00001021: PUSH1 0x00 00001023: SWAP1 00001024: DUP2 00001025: MSTORE 00001026: PUSH2 0x0137 00001029: PUSH1 0x20 0000102b: MSTORE 0000102c: PUSH1 0x40 0000102e: SWAP1 0000102f: KECCAK256 00001030: DUP1 00001031: SLOAD 00001032: PUSH1 0xff 00001034: NOT 00001035: AND 00001036: SWAP2 00001037: ISZERO 00001038: ISZERO 00001039: SWAP2 0000103a: SWAP1 0000103b: SWAP2 0000103c: OR 0000103d: SWAP1 0000103e: SSTORE 0000103f: JUMP 00001040: JUMPDEST 00001041: CALLER 00001042: PUSH1 0x00 00001044: SWAP1 00001045: DUP2 00001046: MSTORE 00001047: PUSH2 0x0137 0000104a: PUSH1 0x20 0000104c: MSTORE 0000104d: PUSH1 0x40 0000104f: SWAP1 00001050: KECCAK256 00001051: SLOAD 00001052: PUSH1 0xff 00001054: AND 00001055: PUSH2 0x10a0 00001058: JUMPI 00001059: PUSH1 0x40 0000105b: MLOAD 0000105c: PUSH3 0x461bcd 00001060: PUSH1 0xe5 00001062: SHL 00001063: DUP2 00001064: MSTORE 00001065: PUSH1 0x20 00001067: PUSH1 0x04 00001069: DUP3 0000106a: ADD 0000106b: MSTORE 0000106c: PUSH1 0x17 0000106e: PUSH1 0x24 00001070: DUP3 00001071: ADD 00001072: MSTORE 00001073: PUSH32 0x43616c6c6572206973206e6f74207468652061646d696e000000000000000000 00001094: PUSH1 0x44 00001096: DUP3 00001097: ADD 00001098: MSTORE 00001099: PUSH1 0x64 0000109b: ADD 0000109c: PUSH2 0x09f8 0000109f: JUMP 000010a0: JUMPDEST 000010a1: PUSH2 0x012d 000010a4: SLOAD 000010a5: PUSH8 0xffffffffffffffff 000010ae: PUSH1 0x01 000010b0: PUSH1 0xc0 000010b2: SHL 000010b3: SWAP1 000010b4: SWAP2 000010b5: DIV 000010b6: DUP2 000010b7: AND 000010b8: SWAP1 000010b9: DUP3 000010ba: AND 000010bb: LT 000010bc: PUSH2 0x1107 000010bf: JUMPI 000010c0: PUSH1 0x40 000010c2: MLOAD 000010c3: PUSH3 0x461bcd 000010c7: PUSH1 0xe5 000010c9: SHL 000010ca: DUP2 000010cb: MSTORE 000010cc: PUSH1 0x20 000010ce: PUSH1 0x04 000010d0: DUP3 000010d1: ADD 000010d2: MSTORE 000010d3: PUSH1 0x17 000010d5: PUSH1 0x24 000010d7: DUP3 000010d8: ADD 000010d9: MSTORE 000010da: PUSH32 0x4d696e206269642065786365656473206d617820626964000000000000000000 000010fb: PUSH1 0x44 000010fd: DUP3 000010fe: ADD 000010ff: MSTORE 00001100: PUSH1 0x64 00001102: ADD 00001103: PUSH2 0x09f8 00001106: JUMP 00001107: JUMPDEST 00001108: PUSH2 0x012d 0000110b: SLOAD 0000110c: PUSH1 0x01 0000110e: PUSH1 0x01 00001110: PUSH1 0x80 00001112: SHL 00001113: SUB 00001114: AND 00001115: PUSH8 0xffffffffffffffff 0000111e: DUP3 0000111f: AND 00001120: LT 00001121: ISZERO 00001122: PUSH2 0x1193 00001125: JUMPI 00001126: PUSH1 0x40 00001128: MLOAD 00001129: PUSH3 0x461bcd 0000112d: PUSH1 0xe5 0000112f: SHL 00001130: DUP2 00001131: MSTORE 00001132: PUSH1 0x20 00001134: PUSH1 0x04 00001136: DUP3 00001137: ADD 00001138: MSTORE 00001139: PUSH1 0x26 0000113b: PUSH1 0x24 0000113d: DUP3 0000113e: ADD 0000113f: MSTORE 00001140: PUSH32 0x4d696e20626964206c657373207468616e2077686974656c6973742062696420 00001161: PUSH1 0x44 00001163: DUP3 00001164: ADD 00001165: MSTORE 00001166: PUSH32 0x616d6f756e740000000000000000000000000000000000000000000000000000 00001187: PUSH1 0x64 00001189: DUP3 0000118a: ADD 0000118b: MSTORE 0000118c: PUSH1 0x84 0000118e: ADD 0000118f: PUSH2 0x09f8 00001192: JUMP 00001193: JUMPDEST 00001194: PUSH2 0x012d 00001197: DUP1 00001198: SLOAD 00001199: PUSH8 0xffffffffffffffff 000011a2: SWAP1 000011a3: SWAP3 000011a4: AND 000011a5: PUSH1 0x01 000011a7: PUSH1 0x80 000011a9: SHL 000011aa: MUL 000011ab: PUSH32 0xffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff 000011cc: SWAP1 000011cd: SWAP3 000011ce: AND 000011cf: SWAP2 000011d0: SWAP1 000011d1: SWAP2 000011d2: OR 000011d3: SWAP1 000011d4: SSTORE 000011d5: JUMP 000011d6: JUMPDEST 000011d7: PUSH2 0x11de 000011da: PUSH2 0x252e 000011dd: JUMP 000011de: JUMPDEST 000011df: PUSH2 0x0d61 000011e2: PUSH1 0x00 000011e4: PUSH2 0x2785 000011e7: JUMP 000011e8: JUMPDEST 000011e9: PUSH2 0x11f0 000011ec: PUSH2 0x252e 000011ef: JUMP 000011f0: JUMPDEST 000011f1: PUSH1 0x01 000011f3: PUSH1 0x01 000011f5: PUSH1 0xa0 000011f7: SHL 000011f8: SUB 000011f9: DUP5 000011fa: AND 000011fb: ISZERO 000011fc: DUP1 000011fd: ISZERO 000011fe: SWAP1 000011ff: PUSH2 0x1210 00001202: JUMPI 00001203: POP 00001204: PUSH1 0x01 00001206: PUSH1 0x01 00001208: PUSH1 0xa0 0000120a: SHL 0000120b: SUB 0000120c: DUP3 0000120d: AND 0000120e: ISZERO 0000120f: ISZERO 00001210: JUMPDEST 00001211: DUP1 00001212: ISZERO 00001213: PUSH2 0x1224 00001216: JUMPI 00001217: POP 00001218: PUSH1 0x01 0000121a: PUSH1 0x01 0000121c: PUSH1 0xa0 0000121e: SHL 0000121f: SUB 00001220: DUP2 00001221: AND 00001222: ISZERO 00001223: ISZERO 00001224: JUMPDEST 00001225: PUSH2 0x1270 00001228: JUMPI 00001229: PUSH1 0x40 0000122b: MLOAD 0000122c: PUSH3 0x461bcd 00001230: PUSH1 0xe5 00001232: SHL 00001233: DUP2 00001234: MSTORE 00001235: PUSH1 0x20 00001237: PUSH1 0x04 00001239: DUP3 0000123a: ADD 0000123b: MSTORE 0000123c: PUSH1 0x11 0000123e: PUSH1 0x24 00001240: DUP3 00001241: ADD 00001242: MSTORE 00001243: PUSH32 0x4e6f205a65726f20416464726573736573000000000000000000000000000000 00001264: PUSH1 0x44 00001266: DUP3 00001267: ADD 00001268: MSTORE 00001269: PUSH1 0x64 0000126b: ADD 0000126c: PUSH2 0x09f8 0000126f: JUMP 00001270: JUMPDEST 00001271: PUSH2 0x0135 00001274: DUP1 00001275: SLOAD 00001276: PUSH1 0x01 00001278: PUSH1 0x01 0000127a: PUSH1 0xa0 0000127c: SHL 0000127d: SUB 0000127e: SWAP6 0000127f: DUP7 00001280: AND 00001281: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001296: NOT 00001297: SWAP2 00001298: DUP3 00001299: AND 0000129a: OR 0000129b: SWAP1 0000129c: SWAP2 0000129d: SSTORE 0000129e: PUSH2 0x0130 000012a1: DUP1 000012a2: SLOAD 000012a3: SWAP3 000012a4: DUP7 000012a5: AND 000012a6: SWAP3 000012a7: SWAP1 000012a8: SWAP2 000012a9: AND 000012aa: SWAP2 000012ab: SWAP1 000012ac: SWAP2 000012ad: OR 000012ae: SWAP1 000012af: SSTORE 000012b0: PUSH1 0x01 000012b2: PUSH1 0x01 000012b4: PUSH1 0x80 000012b6: SHL 000012b7: SUB 000012b8: SWAP2 000012b9: SWAP1 000012ba: SWAP2 000012bb: AND 000012bc: PUSH1 0x01 000012be: PUSH1 0x80 000012c0: SHL 000012c1: MUL 000012c2: PUSH2 0x0136 000012c5: SSTORE 000012c6: AND 000012c7: PUSH1 0x00 000012c9: SWAP1 000012ca: DUP2 000012cb: MSTORE 000012cc: PUSH2 0x0137 000012cf: PUSH1 0x20 000012d1: MSTORE 000012d2: PUSH1 0x40 000012d4: SWAP1 000012d5: KECCAK256 000012d6: DUP1 000012d7: SLOAD 000012d8: PUSH1 0xff 000012da: NOT 000012db: AND 000012dc: PUSH1 0x01 000012de: OR 000012df: SWAP1 000012e0: SSTORE 000012e1: JUMP 000012e2: JUMPDEST 000012e3: CALLER 000012e4: PUSH1 0x00 000012e6: SWAP1 000012e7: DUP2 000012e8: MSTORE 000012e9: PUSH2 0x0137 000012ec: PUSH1 0x20 000012ee: MSTORE 000012ef: PUSH1 0x40 000012f1: SWAP1 000012f2: KECCAK256 000012f3: SLOAD 000012f4: PUSH1 0xff 000012f6: AND 000012f7: PUSH2 0x1342 000012fa: JUMPI 000012fb: PUSH1 0x40 000012fd: MLOAD 000012fe: PUSH3 0x461bcd 00001302: PUSH1 0xe5 00001304: SHL 00001305: DUP2 00001306: MSTORE 00001307: PUSH1 0x20 00001309: PUSH1 0x04 0000130b: DUP3 0000130c: ADD 0000130d: MSTORE 0000130e: PUSH1 0x17 00001310: PUSH1 0x24 00001312: DUP3 00001313: ADD 00001314: MSTORE 00001315: PUSH32 0x43616c6c6572206973206e6f74207468652061646d696e000000000000000000 00001336: PUSH1 0x44 00001338: DUP3 00001339: ADD 0000133a: MSTORE 0000133b: PUSH1 0x64 0000133d: ADD 0000133e: PUSH2 0x09f8 00001341: JUMP 00001342: JUMPDEST 00001343: PUSH2 0x012d 00001346: SLOAD 00001347: PUSH8 0xffffffffffffffff 00001350: PUSH1 0x01 00001352: PUSH1 0x80 00001354: SHL 00001355: SWAP1 00001356: SWAP2 00001357: DIV 00001358: DUP2 00001359: AND 0000135a: SWAP1 0000135b: DUP3 0000135c: AND 0000135d: GT 0000135e: PUSH2 0x13a9 00001361: JUMPI 00001362: PUSH1 0x40 00001364: MLOAD 00001365: PUSH3 0x461bcd 00001369: PUSH1 0xe5 0000136b: SHL 0000136c: DUP2 0000136d: MSTORE 0000136e: PUSH1 0x20 00001370: PUSH1 0x04 00001372: DUP3 00001373: ADD 00001374: MSTORE 00001375: PUSH1 0x17 00001377: PUSH1 0x24 00001379: DUP3 0000137a: ADD 0000137b: MSTORE 0000137c: PUSH32 0x4d696e206269642065786365656473206d617820626964000000000000000000 0000139d: PUSH1 0x44 0000139f: DUP3 000013a0: ADD 000013a1: MSTORE 000013a2: PUSH1 0x64 000013a4: ADD 000013a5: PUSH2 0x09f8 000013a8: JUMP 000013a9: JUMPDEST 000013aa: PUSH2 0x012d 000013ad: DUP1 000013ae: SLOAD 000013af: PUSH8 0xffffffffffffffff 000013b8: SWAP1 000013b9: SWAP3 000013ba: AND 000013bb: PUSH1 0x01 000013bd: PUSH1 0xc0 000013bf: SHL 000013c0: MUL 000013c1: PUSH24 0xffffffffffffffffffffffffffffffffffffffffffffffff 000013da: SWAP1 000013db: SWAP3 000013dc: AND 000013dd: SWAP2 000013de: SWAP1 000013df: SWAP2 000013e0: OR 000013e1: SWAP1 000013e2: SSTORE 000013e3: JUMP 000013e4: JUMPDEST 000013e5: PUSH2 0x13ec 000013e8: PUSH2 0x27e4 000013eb: JUMP 000013ec: JUMPDEST 000013ed: PUSH1 0x00 000013ef: JUMPDEST 000013f0: DUP2 000013f1: DUP2 000013f2: LT 000013f3: ISZERO 000013f4: PUSH2 0x142a 000013f7: JUMPI 000013f8: PUSH2 0x1418 000013fb: DUP4 000013fc: DUP4 000013fd: DUP4 000013fe: DUP2 000013ff: DUP2 00001400: LT 00001401: PUSH2 0x140c 00001404: JUMPI 00001405: PUSH2 0x140c 00001408: PUSH2 0x33bb 0000140b: JUMP 0000140c: JUMPDEST 0000140d: SWAP1 0000140e: POP 0000140f: PUSH1 0x20 00001411: MUL 00001412: ADD 00001413: CALLDATALOAD 00001414: PUSH2 0x2837 00001417: JUMP 00001418: JUMPDEST 00001419: DUP1 0000141a: PUSH2 0x1422 0000141d: DUP2 0000141e: PUSH2 0x33a1 00001421: JUMP 00001422: JUMPDEST 00001423: SWAP2 00001424: POP 00001425: POP 00001426: PUSH2 0x13ef 00001429: JUMP 0000142a: JUMPDEST 0000142b: POP 0000142c: POP 0000142d: POP 0000142e: JUMP 0000142f: JUMPDEST 00001430: CALLER 00001431: PUSH1 0x00 00001433: SWAP1 00001434: DUP2 00001435: MSTORE 00001436: PUSH2 0x0137 00001439: PUSH1 0x20 0000143b: MSTORE 0000143c: PUSH1 0x40 0000143e: SWAP1 0000143f: KECCAK256 00001440: SLOAD 00001441: PUSH1 0xff 00001443: AND 00001444: PUSH2 0x148f 00001447: JUMPI 00001448: PUSH1 0x40 0000144a: MLOAD 0000144b: PUSH3 0x461bcd 0000144f: PUSH1 0xe5 00001451: SHL 00001452: DUP2 00001453: MSTORE 00001454: PUSH1 0x20 00001456: PUSH1 0x04 00001458: DUP3 00001459: ADD 0000145a: MSTORE 0000145b: PUSH1 0x17 0000145d: PUSH1 0x24 0000145f: DUP3 00001460: ADD 00001461: MSTORE 00001462: PUSH32 0x43616c6c6572206973206e6f74207468652061646d696e000000000000000000 00001483: PUSH1 0x44 00001485: DUP3 00001486: ADD 00001487: MSTORE 00001488: PUSH1 0x64 0000148a: ADD 0000148b: PUSH2 0x09f8 0000148e: JUMP 0000148f: JUMPDEST 00001490: PUSH2 0x0136 00001493: DUP1 00001494: SLOAD 00001495: PUSH16 0xffffffffffffffffffffffffffffffff 000014a6: NOT 000014a7: DUP2 000014a8: AND 000014a9: SWAP1 000014aa: SWAP2 000014ab: SSTORE 000014ac: PUSH2 0x0135 000014af: SLOAD 000014b0: PUSH1 0x40 000014b2: MLOAD 000014b3: PUSH1 0x01 000014b5: PUSH1 0x01 000014b7: PUSH1 0x80 000014b9: SHL 000014ba: SUB 000014bb: SWAP1 000014bc: SWAP3 000014bd: AND 000014be: SWAP2 000014bf: PUSH1 0x00 000014c1: SWAP2 000014c2: PUSH1 0x01 000014c4: PUSH1 0x01 000014c6: PUSH1 0xa0 000014c8: SHL 000014c9: SUB 000014ca: AND 000014cb: SWAP1 000014cc: DUP4 000014cd: SWAP1 000014ce: DUP4 000014cf: DUP2 000014d0: DUP2 000014d1: DUP2 000014d2: DUP6 000014d3: DUP8 000014d4: GAS 000014d5: CALL 000014d6: SWAP3 000014d7: POP 000014d8: POP 000014d9: POP 000014da: RETURNDATASIZE 000014db: DUP1 000014dc: PUSH1 0x00 000014de: DUP2 000014df: EQ 000014e0: PUSH2 0x1505 000014e3: JUMPI 000014e4: PUSH1 0x40 000014e6: MLOAD 000014e7: SWAP2 000014e8: POP 000014e9: PUSH1 0x1f 000014eb: NOT 000014ec: PUSH1 0x3f 000014ee: RETURNDATASIZE 000014ef: ADD 000014f0: AND 000014f1: DUP3 000014f2: ADD 000014f3: PUSH1 0x40 000014f5: MSTORE 000014f6: RETURNDATASIZE 000014f7: DUP3 000014f8: MSTORE 000014f9: RETURNDATASIZE 000014fa: PUSH1 0x00 000014fc: PUSH1 0x20 000014fe: DUP5 000014ff: ADD 00001500: RETURNDATACOPY 00001501: PUSH2 0x150a 00001504: JUMP 00001505: JUMPDEST 00001506: PUSH1 0x60 00001508: SWAP2 00001509: POP 0000150a: JUMPDEST 0000150b: POP 0000150c: POP 0000150d: SWAP1 0000150e: POP 0000150f: DUP1 00001510: PUSH2 0x0eed 00001513: JUMPI 00001514: PUSH1 0x40 00001516: MLOAD 00001517: PUSH3 0x461bcd 0000151b: PUSH1 0xe5 0000151d: SHL 0000151e: DUP2 0000151f: MSTORE 00001520: PUSH1 0x20 00001522: PUSH1 0x04 00001524: DUP3 00001525: ADD 00001526: MSTORE 00001527: PUSH1 0x14 00001529: PUSH1 0x24 0000152b: DUP3 0000152c: ADD 0000152d: MSTORE 0000152e: PUSH32 0x4661696c656420746f2073656e64204574686572000000000000000000000000 0000154f: PUSH1 0x44 00001551: DUP3 00001552: ADD 00001553: MSTORE 00001554: PUSH1 0x64 00001556: ADD 00001557: PUSH2 0x09f8 0000155a: JUMP 0000155b: JUMPDEST 0000155c: PUSH2 0x1563 0000155f: PUSH2 0x27e4 00001562: JUMP 00001563: JUMPDEST 00001564: PUSH2 0x0bc7 00001567: DUP2 00001568: PUSH2 0x2837 0000156b: JUMP 0000156c: JUMPDEST 0000156d: PUSH1 0x00 0000156f: PUSH2 0x159f 00001572: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 00001593: SLOAD 00001594: PUSH1 0x01 00001596: PUSH1 0x01 00001598: PUSH1 0xa0 0000159a: SHL 0000159b: SUB 0000159c: AND 0000159d: SWAP1 0000159e: JUMP 0000159f: JUMPDEST 000015a0: SWAP1 000015a1: POP 000015a2: SWAP1 000015a3: JUMP 000015a4: JUMPDEST 000015a5: PUSH2 0x15ac 000015a8: PUSH2 0x252e 000015ab: JUMP 000015ac: JUMPDEST 000015ad: PUSH2 0x0130 000015b0: DUP1 000015b1: SLOAD 000015b2: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000015c7: NOT 000015c8: AND 000015c9: PUSH1 0x01 000015cb: PUSH1 0x01 000015cd: PUSH1 0xa0 000015cf: SHL 000015d0: SUB 000015d1: SWAP3 000015d2: SWAP1 000015d3: SWAP3 000015d4: AND 000015d5: SWAP2 000015d6: SWAP1 000015d7: SWAP2 000015d8: OR 000015d9: SWAP1 000015da: SSTORE 000015db: JUMP 000015dc: JUMPDEST 000015dd: PUSH1 0x60 000015df: PUSH2 0x15e6 000015e2: PUSH2 0x27e4 000015e5: JUMP 000015e6: JUMPDEST 000015e7: PUSH2 0x15ee 000015ea: PUSH2 0x29f6 000015ed: JUMP 000015ee: JUMPDEST 000015ef: PUSH1 0x00 000015f1: DUP4 000015f2: GT 000015f3: PUSH2 0x163e 000015f6: JUMPI 000015f7: PUSH1 0x40 000015f9: MLOAD 000015fa: PUSH3 0x461bcd 000015fe: PUSH1 0xe5 00001600: SHL 00001601: DUP2 00001602: MSTORE 00001603: PUSH1 0x20 00001605: PUSH1 0x04 00001607: DUP3 00001608: ADD 00001609: MSTORE 0000160a: PUSH1 0x15 0000160c: PUSH1 0x24 0000160e: DUP3 0000160f: ADD 00001610: MSTORE 00001611: PUSH32 0x4269642073697a6520697320746f6f20736d616c6c0000000000000000000000 00001632: PUSH1 0x44 00001634: DUP3 00001635: ADD 00001636: MSTORE 00001637: PUSH1 0x64 00001639: ADD 0000163a: PUSH2 0x09f8 0000163d: JUMP 0000163e: JUMPDEST 0000163f: PUSH2 0x0132 00001642: SLOAD 00001643: PUSH1 0x01 00001645: PUSH1 0xa0 00001647: SHL 00001648: SWAP1 00001649: DIV 0000164a: PUSH1 0xff 0000164c: AND 0000164d: ISZERO 0000164e: PUSH2 0x17b8 00001651: JUMPI 00001652: PUSH2 0x0130 00001655: SLOAD 00001656: PUSH1 0x40 00001658: MLOAD 00001659: PUSH32 0x3af32abf00000000000000000000000000000000000000000000000000000000 0000167a: DUP2 0000167b: MSTORE 0000167c: CALLER 0000167d: PUSH1 0x04 0000167f: DUP3 00001680: ADD 00001681: MSTORE 00001682: PUSH1 0x01 00001684: PUSH1 0x01 00001686: PUSH1 0xa0 00001688: SHL 00001689: SUB 0000168a: SWAP1 0000168b: SWAP2 0000168c: AND 0000168d: SWAP1 0000168e: PUSH4 0x3af32abf 00001693: SWAP1 00001694: PUSH1 0x24 00001696: ADD 00001697: PUSH1 0x20 00001699: PUSH1 0x40 0000169b: MLOAD 0000169c: DUP1 0000169d: DUP4 0000169e: SUB 0000169f: DUP2 000016a0: DUP7 000016a1: GAS 000016a2: STATICCALL 000016a3: ISZERO 000016a4: DUP1 000016a5: ISZERO 000016a6: PUSH2 0x16b3 000016a9: JUMPI 000016aa: RETURNDATASIZE 000016ab: PUSH1 0x00 000016ad: DUP1 000016ae: RETURNDATACOPY 000016af: RETURNDATASIZE 000016b0: PUSH1 0x00 000016b2: REVERT 000016b3: JUMPDEST 000016b4: POP 000016b5: POP 000016b6: POP 000016b7: POP 000016b8: PUSH1 0x40 000016ba: MLOAD 000016bb: RETURNDATASIZE 000016bc: PUSH1 0x1f 000016be: NOT 000016bf: PUSH1 0x1f 000016c1: DUP3 000016c2: ADD 000016c3: AND 000016c4: DUP3 000016c5: ADD 000016c6: DUP1 000016c7: PUSH1 0x40 000016c9: MSTORE 000016ca: POP 000016cb: DUP2 000016cc: ADD 000016cd: SWAP1 000016ce: PUSH2 0x16d7 000016d1: SWAP2 000016d2: SWAP1 000016d3: PUSH2 0x33d1 000016d6: JUMP 000016d7: JUMPDEST 000016d8: PUSH2 0x1723 000016db: JUMPI 000016dc: PUSH1 0x40 000016de: MLOAD 000016df: PUSH3 0x461bcd 000016e3: PUSH1 0xe5 000016e5: SHL 000016e6: DUP2 000016e7: MSTORE 000016e8: PUSH1 0x20 000016ea: PUSH1 0x04 000016ec: DUP3 000016ed: ADD 000016ee: MSTORE 000016ef: PUSH1 0x1a 000016f1: PUSH1 0x24 000016f3: DUP3 000016f4: ADD 000016f5: MSTORE 000016f6: PUSH32 0x4f6e6c792077686974656c697374656420616464726573736573000000000000 00001717: PUSH1 0x44 00001719: DUP3 0000171a: ADD 0000171b: MSTORE 0000171c: PUSH1 0x64 0000171e: ADD 0000171f: PUSH2 0x09f8 00001722: JUMP 00001723: JUMPDEST 00001724: PUSH2 0x172d 00001727: DUP3 00001728: DUP5 00001729: PUSH2 0x33ee 0000172c: JUMP 0000172d: JUMPDEST 0000172e: CALLVALUE 0000172f: EQ 00001730: DUP1 00001731: ISZERO 00001732: PUSH2 0x1747 00001735: JUMPI 00001736: POP 00001737: PUSH2 0x012d 0000173a: SLOAD 0000173b: PUSH1 0x01 0000173d: PUSH1 0x01 0000173f: PUSH1 0x80 00001741: SHL 00001742: SUB 00001743: AND 00001744: DUP3 00001745: LT 00001746: ISZERO 00001747: JUMPDEST 00001748: DUP1 00001749: ISZERO 0000174a: PUSH2 0x1767 0000174d: JUMPI 0000174e: POP 0000174f: PUSH2 0x012d 00001752: SLOAD 00001753: PUSH1 0x01 00001755: PUSH1 0xc0 00001757: SHL 00001758: SWAP1 00001759: DIV 0000175a: PUSH8 0xffffffffffffffff 00001763: AND 00001764: DUP3 00001765: GT 00001766: ISZERO 00001767: JUMPDEST 00001768: PUSH2 0x17b3 0000176b: JUMPI 0000176c: PUSH1 0x40 0000176e: MLOAD 0000176f: PUSH3 0x461bcd 00001773: PUSH1 0xe5 00001775: SHL 00001776: DUP2 00001777: MSTORE 00001778: PUSH1 0x20 0000177a: PUSH1 0x04 0000177c: DUP3 0000177d: ADD 0000177e: MSTORE 0000177f: PUSH1 0x13 00001781: PUSH1 0x24 00001783: DUP3 00001784: ADD 00001785: MSTORE 00001786: PUSH32 0x496e636f7272656374206269642076616c756500000000000000000000000000 000017a7: PUSH1 0x44 000017a9: DUP3 000017aa: ADD 000017ab: MSTORE 000017ac: PUSH1 0x64 000017ae: ADD 000017af: PUSH2 0x09f8 000017b2: JUMP 000017b3: JUMPDEST 000017b4: PUSH2 0x18e5 000017b7: JUMP 000017b8: JUMPDEST 000017b9: PUSH2 0x0130 000017bc: SLOAD 000017bd: PUSH1 0x40 000017bf: MLOAD 000017c0: PUSH32 0x3af32abf00000000000000000000000000000000000000000000000000000000 000017e1: DUP2 000017e2: MSTORE 000017e3: CALLER 000017e4: PUSH1 0x04 000017e6: DUP3 000017e7: ADD 000017e8: MSTORE 000017e9: PUSH1 0x01 000017eb: PUSH1 0x01 000017ed: PUSH1 0xa0 000017ef: SHL 000017f0: SUB 000017f1: SWAP1 000017f2: SWAP2 000017f3: AND 000017f4: SWAP1 000017f5: PUSH4 0x3af32abf 000017fa: SWAP1 000017fb: PUSH1 0x24 000017fd: ADD 000017fe: PUSH1 0x20 00001800: PUSH1 0x40 00001802: MLOAD 00001803: DUP1 00001804: DUP4 00001805: SUB 00001806: DUP2 00001807: DUP7 00001808: GAS 00001809: STATICCALL 0000180a: ISZERO 0000180b: DUP1 0000180c: ISZERO 0000180d: PUSH2 0x181a 00001810: JUMPI 00001811: RETURNDATASIZE 00001812: PUSH1 0x00 00001814: DUP1 00001815: RETURNDATACOPY 00001816: RETURNDATASIZE 00001817: PUSH1 0x00 00001819: REVERT 0000181a: JUMPDEST 0000181b: POP 0000181c: POP 0000181d: POP 0000181e: POP 0000181f: PUSH1 0x40 00001821: MLOAD 00001822: RETURNDATASIZE 00001823: PUSH1 0x1f 00001825: NOT 00001826: PUSH1 0x1f 00001828: DUP3 00001829: ADD 0000182a: AND 0000182b: DUP3 0000182c: ADD 0000182d: DUP1 0000182e: PUSH1 0x40 00001830: MSTORE 00001831: POP 00001832: DUP2 00001833: ADD 00001834: SWAP1 00001835: PUSH2 0x183e 00001838: SWAP2 00001839: SWAP1 0000183a: PUSH2 0x33d1 0000183d: JUMP 0000183e: JUMPDEST 0000183f: ISZERO 00001840: PUSH2 0x184d 00001843: JUMPI 00001844: PUSH2 0x172d 00001847: DUP3 00001848: DUP5 00001849: PUSH2 0x33ee 0000184c: JUMP 0000184d: JUMPDEST 0000184e: PUSH2 0x1857 00001851: DUP3 00001852: DUP5 00001853: PUSH2 0x33ee 00001856: JUMP 00001857: JUMPDEST 00001858: CALLVALUE 00001859: EQ 0000185a: DUP1 0000185b: ISZERO 0000185c: PUSH2 0x1879 0000185f: JUMPI 00001860: POP 00001861: PUSH2 0x012d 00001864: SLOAD 00001865: PUSH1 0x01 00001867: PUSH1 0x80 00001869: SHL 0000186a: SWAP1 0000186b: DIV 0000186c: PUSH8 0xffffffffffffffff 00001875: AND 00001876: DUP3 00001877: LT 00001878: ISZERO 00001879: JUMPDEST 0000187a: DUP1 0000187b: ISZERO 0000187c: PUSH2 0x1899 0000187f: JUMPI 00001880: POP 00001881: PUSH2 0x012d 00001884: SLOAD 00001885: PUSH1 0x01 00001887: PUSH1 0xc0 00001889: SHL 0000188a: SWAP1 0000188b: DIV 0000188c: PUSH8 0xffffffffffffffff 00001895: AND 00001896: DUP3 00001897: GT 00001898: ISZERO 00001899: JUMPDEST 0000189a: PUSH2 0x18e5 0000189d: JUMPI 0000189e: PUSH1 0x40 000018a0: MLOAD 000018a1: PUSH3 0x461bcd 000018a5: PUSH1 0xe5 000018a7: SHL 000018a8: DUP2 000018a9: MSTORE 000018aa: PUSH1 0x20 000018ac: PUSH1 0x04 000018ae: DUP3 000018af: ADD 000018b0: MSTORE 000018b1: PUSH1 0x13 000018b3: PUSH1 0x24 000018b5: DUP3 000018b6: ADD 000018b7: MSTORE 000018b8: PUSH32 0x496e636f7272656374206269642076616c756500000000000000000000000000 000018d9: PUSH1 0x44 000018db: DUP3 000018dc: ADD 000018dd: MSTORE 000018de: PUSH1 0x64 000018e0: ADD 000018e1: PUSH2 0x09f8 000018e4: JUMP 000018e5: JUMPDEST 000018e6: PUSH2 0x0130 000018e9: SLOAD 000018ea: PUSH1 0x40 000018ec: MLOAD 000018ed: PUSH32 0x6b5e571200000000000000000000000000000000000000000000000000000000 0000190e: DUP2 0000190f: MSTORE 00001910: CALLER 00001911: PUSH1 0x04 00001913: DUP3 00001914: ADD 00001915: MSTORE 00001916: PUSH1 0x00 00001918: SWAP2 00001919: PUSH1 0x01 0000191b: PUSH1 0x01 0000191d: PUSH1 0xa0 0000191f: SHL 00001920: SUB 00001921: AND 00001922: SWAP1 00001923: PUSH4 0x6b5e5712 00001928: SWAP1 00001929: PUSH1 0x24 0000192b: ADD 0000192c: PUSH1 0x20 0000192e: PUSH1 0x40 00001930: MLOAD 00001931: DUP1 00001932: DUP4 00001933: SUB 00001934: DUP2 00001935: DUP7 00001936: GAS 00001937: STATICCALL 00001938: ISZERO 00001939: DUP1 0000193a: ISZERO 0000193b: PUSH2 0x1948 0000193e: JUMPI 0000193f: RETURNDATASIZE 00001940: PUSH1 0x00 00001942: DUP1 00001943: RETURNDATACOPY 00001944: RETURNDATASIZE 00001945: PUSH1 0x00 00001947: REVERT 00001948: JUMPDEST 00001949: POP 0000194a: POP 0000194b: POP 0000194c: POP 0000194d: PUSH1 0x40 0000194f: MLOAD 00001950: RETURNDATASIZE 00001951: PUSH1 0x1f 00001953: NOT 00001954: PUSH1 0x1f 00001956: DUP3 00001957: ADD 00001958: AND 00001959: DUP3 0000195a: ADD 0000195b: DUP1 0000195c: PUSH1 0x40 0000195e: MSTORE 0000195f: POP 00001960: DUP2 00001961: ADD 00001962: SWAP1 00001963: PUSH2 0x196c 00001966: SWAP2 00001967: SWAP1 00001968: PUSH2 0x340d 0000196b: JUMP 0000196c: JUMPDEST 0000196d: SWAP1 0000196e: POP 0000196f: DUP1 00001970: PUSH8 0xffffffffffffffff 00001979: AND 0000197a: DUP5 0000197b: GT 0000197c: ISZERO 0000197d: PUSH2 0x19c8 00001980: JUMPI 00001981: PUSH1 0x40 00001983: MLOAD 00001984: PUSH3 0x461bcd 00001988: PUSH1 0xe5 0000198a: SHL 0000198b: DUP2 0000198c: MSTORE 0000198d: PUSH1 0x20 0000198f: PUSH1 0x04 00001991: DUP3 00001992: ADD 00001993: MSTORE 00001994: PUSH1 0x18 00001996: PUSH1 0x24 00001998: DUP3 00001999: ADD 0000199a: MSTORE 0000199b: PUSH32 0x496e73756666696369656e74207075626c6963206b6579730000000000000000 000019bc: PUSH1 0x44 000019be: DUP3 000019bf: ADD 000019c0: MSTORE 000019c1: PUSH1 0x64 000019c3: ADD 000019c4: PUSH2 0x09f8 000019c7: JUMP 000019c8: JUMPDEST 000019c9: PUSH1 0x00 000019cb: DUP5 000019cc: PUSH8 0xffffffffffffffff 000019d5: DUP2 000019d6: GT 000019d7: ISZERO 000019d8: PUSH2 0x19e3 000019db: JUMPI 000019dc: PUSH2 0x19e3 000019df: PUSH2 0x3102 000019e2: JUMP 000019e3: JUMPDEST 000019e4: PUSH1 0x40 000019e6: MLOAD 000019e7: SWAP1 000019e8: DUP1 000019e9: DUP3 000019ea: MSTORE 000019eb: DUP1 000019ec: PUSH1 0x20 000019ee: MUL 000019ef: PUSH1 0x20 000019f1: ADD 000019f2: DUP3 000019f3: ADD 000019f4: PUSH1 0x40 000019f6: MSTORE 000019f7: DUP1 000019f8: ISZERO 000019f9: PUSH2 0x1a0c 000019fc: JUMPI 000019fd: DUP2 000019fe: PUSH1 0x20 00001a00: ADD 00001a01: PUSH1 0x20 00001a03: DUP3 00001a04: MUL 00001a05: DUP1 00001a06: CALLDATASIZE 00001a07: DUP4 00001a08: CALLDATACOPY 00001a09: ADD 00001a0a: SWAP1 00001a0b: POP 00001a0c: JUMPDEST 00001a0d: POP 00001a0e: SWAP1 00001a0f: POP 00001a10: PUSH1 0x00 00001a12: DUP6 00001a13: PUSH8 0xffffffffffffffff 00001a1c: DUP2 00001a1d: GT 00001a1e: ISZERO 00001a1f: PUSH2 0x1a2a 00001a22: JUMPI 00001a23: PUSH2 0x1a2a 00001a26: PUSH2 0x3102 00001a29: JUMP 00001a2a: JUMPDEST 00001a2b: PUSH1 0x40 00001a2d: MLOAD 00001a2e: SWAP1 00001a2f: DUP1 00001a30: DUP3 00001a31: MSTORE 00001a32: DUP1 00001a33: PUSH1 0x20 00001a35: MUL 00001a36: PUSH1 0x20 00001a38: ADD 00001a39: DUP3 00001a3a: ADD 00001a3b: PUSH1 0x40 00001a3d: MSTORE 00001a3e: DUP1 00001a3f: ISZERO 00001a40: PUSH2 0x1a53 00001a43: JUMPI 00001a44: DUP2 00001a45: PUSH1 0x20 00001a47: ADD 00001a48: PUSH1 0x20 00001a4a: DUP3 00001a4b: MUL 00001a4c: DUP1 00001a4d: CALLDATASIZE 00001a4e: DUP4 00001a4f: CALLDATACOPY 00001a50: ADD 00001a51: SWAP1 00001a52: POP 00001a53: JUMPDEST 00001a54: POP 00001a55: SWAP1 00001a56: POP 00001a57: PUSH1 0x00 00001a59: JUMPDEST 00001a5a: DUP7 00001a5b: DUP2 00001a5c: LT 00001a5d: ISZERO 00001a5e: PUSH2 0x1bfc 00001a61: JUMPI 00001a62: PUSH2 0x0130 00001a65: SLOAD 00001a66: PUSH1 0x40 00001a68: MLOAD 00001a69: PUSH32 0x1a5729b200000000000000000000000000000000000000000000000000000000 00001a8a: DUP2 00001a8b: MSTORE 00001a8c: CALLER 00001a8d: PUSH1 0x04 00001a8f: DUP3 00001a90: ADD 00001a91: MSTORE 00001a92: PUSH1 0x00 00001a94: SWAP2 00001a95: PUSH1 0x01 00001a97: PUSH1 0x01 00001a99: PUSH1 0xa0 00001a9b: SHL 00001a9c: SUB 00001a9d: AND 00001a9e: SWAP1 00001a9f: PUSH4 0x1a5729b2 00001aa4: SWAP1 00001aa5: PUSH1 0x24 00001aa7: ADD 00001aa8: PUSH1 0x20 00001aaa: PUSH1 0x40 00001aac: MLOAD 00001aad: DUP1 00001aae: DUP4 00001aaf: SUB 00001ab0: DUP2 00001ab1: PUSH1 0x00 00001ab3: DUP8 00001ab4: GAS 00001ab5: CALL 00001ab6: ISZERO 00001ab7: DUP1 00001ab8: ISZERO 00001ab9: PUSH2 0x1ac6 00001abc: JUMPI 00001abd: RETURNDATASIZE 00001abe: PUSH1 0x00 00001ac0: DUP1 00001ac1: RETURNDATACOPY 00001ac2: RETURNDATASIZE 00001ac3: PUSH1 0x00 00001ac5: REVERT 00001ac6: JUMPDEST 00001ac7: POP 00001ac8: POP 00001ac9: POP 00001aca: POP 00001acb: PUSH1 0x40 00001acd: MLOAD 00001ace: RETURNDATASIZE 00001acf: PUSH1 0x1f 00001ad1: NOT 00001ad2: PUSH1 0x1f 00001ad4: DUP3 00001ad5: ADD 00001ad6: AND 00001ad7: DUP3 00001ad8: ADD 00001ad9: DUP1 00001ada: PUSH1 0x40 00001adc: MSTORE 00001add: POP 00001ade: DUP2 00001adf: ADD 00001ae0: SWAP1 00001ae1: PUSH2 0x1aea 00001ae4: SWAP2 00001ae5: SWAP1 00001ae6: PUSH2 0x340d 00001ae9: JUMP 00001aea: JUMPDEST 00001aeb: SWAP1 00001aec: POP 00001aed: PUSH1 0x00 00001aef: DUP3 00001af0: PUSH2 0x012e 00001af3: SLOAD 00001af4: PUSH2 0x1afd 00001af7: SWAP2 00001af8: SWAP1 00001af9: PUSH2 0x342a 00001afc: JUMP 00001afd: JUMPDEST 00001afe: SWAP1 00001aff: POP 00001b00: DUP1 00001b01: DUP6 00001b02: DUP5 00001b03: DUP2 00001b04: MLOAD 00001b05: DUP2 00001b06: LT 00001b07: PUSH2 0x1b12 00001b0a: JUMPI 00001b0b: PUSH2 0x1b12 00001b0e: PUSH2 0x33bb 00001b11: JUMP 00001b12: JUMPDEST 00001b13: PUSH1 0x20 00001b15: MUL 00001b16: PUSH1 0x20 00001b18: ADD 00001b19: ADD 00001b1a: DUP2 00001b1b: DUP2 00001b1c: MSTORE 00001b1d: POP 00001b1e: POP 00001b1f: DUP2 00001b20: DUP5 00001b21: DUP5 00001b22: DUP2 00001b23: MLOAD 00001b24: DUP2 00001b25: LT 00001b26: PUSH2 0x1b31 00001b29: JUMPI 00001b2a: PUSH2 0x1b31 00001b2d: PUSH2 0x33bb 00001b30: JUMP 00001b31: JUMPDEST 00001b32: PUSH8 0xffffffffffffffff 00001b3b: SWAP3 00001b3c: DUP4 00001b3d: AND 00001b3e: PUSH1 0x20 00001b40: SWAP2 00001b41: DUP3 00001b42: MUL 00001b43: SWAP3 00001b44: SWAP1 00001b45: SWAP3 00001b46: ADD 00001b47: DUP2 00001b48: ADD 00001b49: SWAP2 00001b4a: SWAP1 00001b4b: SWAP2 00001b4c: MSTORE 00001b4d: PUSH1 0x40 00001b4f: DUP1 00001b50: MLOAD 00001b51: PUSH1 0x80 00001b53: DUP2 00001b54: ADD 00001b55: DUP3 00001b56: MSTORE 00001b57: DUP12 00001b58: DUP2 00001b59: MSTORE 00001b5a: SWAP5 00001b5b: DUP4 00001b5c: AND 00001b5d: DUP6 00001b5e: DUP4 00001b5f: ADD 00001b60: SWAP1 00001b61: DUP2 00001b62: MSTORE 00001b63: CALLER 00001b64: DUP7 00001b65: DUP4 00001b66: ADD 00001b67: SWAP1 00001b68: DUP2 00001b69: MSTORE 00001b6a: PUSH1 0x01 00001b6c: PUSH1 0x60 00001b6e: DUP9 00001b6f: ADD 00001b70: DUP2 00001b71: DUP2 00001b72: MSTORE 00001b73: PUSH1 0x00 00001b75: SWAP8 00001b76: DUP9 00001b77: MSTORE 00001b78: PUSH2 0x0133 00001b7b: SWAP1 00001b7c: SWAP6 00001b7d: MSTORE 00001b7e: SWAP3 00001b7f: SWAP1 00001b80: SWAP6 00001b81: KECCAK256 00001b82: SWAP6 00001b83: MLOAD 00001b84: DUP7 00001b85: SSTORE 00001b86: MLOAD 00001b87: SWAP5 00001b88: ADD 00001b89: DUP1 00001b8a: SLOAD 00001b8b: SWAP4 00001b8c: MLOAD 00001b8d: SWAP2 00001b8e: MLOAD 00001b8f: ISZERO 00001b90: ISZERO 00001b91: PUSH1 0x01 00001b93: PUSH1 0xe0 00001b95: SHL 00001b96: MUL 00001b97: PUSH1 0xff 00001b99: PUSH1 0xe0 00001b9b: SHL 00001b9c: NOT 00001b9d: PUSH1 0x01 00001b9f: PUSH1 0x01 00001ba1: PUSH1 0xa0 00001ba3: SHL 00001ba4: SUB 00001ba5: SWAP4 00001ba6: SWAP1 00001ba7: SWAP4 00001ba8: AND 00001ba9: PUSH9 0x010000000000000000 00001bb3: MUL 00001bb4: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001bd5: SWAP1 00001bd6: SWAP6 00001bd7: AND 00001bd8: SWAP6 00001bd9: SWAP1 00001bda: SWAP4 00001bdb: AND 00001bdc: SWAP5 00001bdd: SWAP1 00001bde: SWAP5 00001bdf: OR 00001be0: SWAP3 00001be1: SWAP1 00001be2: SWAP3 00001be3: OR 00001be4: SWAP2 00001be5: SWAP1 00001be6: SWAP2 00001be7: AND 00001be8: OR 00001be9: SWAP1 00001bea: SSTORE 00001beb: DUP1 00001bec: PUSH2 0x1bf4 00001bef: DUP2 00001bf0: PUSH2 0x33a1 00001bf3: JUMP 00001bf4: JUMPDEST 00001bf5: SWAP2 00001bf6: POP 00001bf7: POP 00001bf8: PUSH2 0x1a59 00001bfb: JUMP 00001bfc: JUMPDEST 00001bfd: POP 00001bfe: DUP6 00001bff: PUSH2 0x012e 00001c02: PUSH1 0x00 00001c04: DUP3 00001c05: DUP3 00001c06: SLOAD 00001c07: PUSH2 0x1c10 00001c0a: SWAP2 00001c0b: SWAP1 00001c0c: PUSH2 0x342a 00001c0f: JUMP 00001c10: JUMPDEST 00001c11: SWAP3 00001c12: POP 00001c13: POP 00001c14: DUP2 00001c15: SWAP1 00001c16: SSTORE 00001c17: POP 00001c18: DUP6 00001c19: PUSH2 0x012f 00001c1c: PUSH1 0x00 00001c1e: DUP3 00001c1f: DUP3 00001c20: SLOAD 00001c21: PUSH2 0x1c2a 00001c24: SWAP2 00001c25: SWAP1 00001c26: PUSH2 0x342a 00001c29: JUMP 00001c2a: JUMPDEST 00001c2b: SWAP1 00001c2c: SWAP2 00001c2d: SSTORE 00001c2e: POP 00001c2f: POP 00001c30: PUSH1 0x40 00001c32: MLOAD 00001c33: CALLER 00001c34: SWAP1 00001c35: PUSH32 0x5ac259179cc7e5e7986fdb545b3ac088788061a3924596f10ee30c42c79fcd4c 00001c56: SWAP1 00001c57: PUSH2 0x1c65 00001c5a: SWAP1 00001c5b: DUP9 00001c5c: SWAP1 00001c5d: DUP7 00001c5e: SWAP1 00001c5f: DUP7 00001c60: SWAP1 00001c61: PUSH2 0x3442 00001c64: JUMP 00001c65: JUMPDEST 00001c66: PUSH1 0x40 00001c68: MLOAD 00001c69: DUP1 00001c6a: SWAP2 00001c6b: SUB 00001c6c: SWAP1 00001c6d: LOG2 00001c6e: POP 00001c6f: SWAP2 00001c70: POP 00001c71: POP 00001c72: PUSH2 0x1c7b 00001c75: PUSH1 0x01 00001c77: PUSH1 0x97 00001c79: SSTORE 00001c7a: JUMP 00001c7b: JUMPDEST 00001c7c: SWAP3 00001c7d: SWAP2 00001c7e: POP 00001c7f: POP 00001c80: JUMP 00001c81: JUMPDEST 00001c82: CALLER 00001c83: PUSH1 0x00 00001c85: SWAP1 00001c86: DUP2 00001c87: MSTORE 00001c88: PUSH2 0x0137 00001c8b: PUSH1 0x20 00001c8d: MSTORE 00001c8e: PUSH1 0x40 00001c90: SWAP1 00001c91: KECCAK256 00001c92: SLOAD 00001c93: PUSH1 0xff 00001c95: AND 00001c96: PUSH2 0x1ce1 00001c99: JUMPI 00001c9a: PUSH1 0x40 00001c9c: MLOAD 00001c9d: PUSH3 0x461bcd 00001ca1: PUSH1 0xe5 00001ca3: SHL 00001ca4: DUP2 00001ca5: MSTORE 00001ca6: PUSH1 0x20 00001ca8: PUSH1 0x04 00001caa: DUP3 00001cab: ADD 00001cac: MSTORE 00001cad: PUSH1 0x17 00001caf: PUSH1 0x24 00001cb1: DUP3 00001cb2: ADD 00001cb3: MSTORE 00001cb4: PUSH32 0x43616c6c6572206973206e6f74207468652061646d696e000000000000000000 00001cd5: PUSH1 0x44 00001cd7: DUP3 00001cd8: ADD 00001cd9: MSTORE 00001cda: PUSH1 0x64 00001cdc: ADD 00001cdd: PUSH2 0x09f8 00001ce0: JUMP 00001ce1: JUMPDEST 00001ce2: PUSH2 0x0d61 00001ce5: PUSH2 0x2a56 00001ce8: JUMP 00001ce9: JUMPDEST 00001cea: PUSH1 0x00 00001cec: SLOAD 00001ced: PUSH2 0x0100 00001cf0: SWAP1 00001cf1: DIV 00001cf2: PUSH1 0xff 00001cf4: AND 00001cf5: ISZERO 00001cf6: DUP1 00001cf7: DUP1 00001cf8: ISZERO 00001cf9: PUSH2 0x1d09 00001cfc: JUMPI 00001cfd: POP 00001cfe: PUSH1 0x00 00001d00: SLOAD 00001d01: PUSH1 0x01 00001d03: PUSH1 0xff 00001d05: SWAP1 00001d06: SWAP2 00001d07: AND 00001d08: LT 00001d09: JUMPDEST 00001d0a: DUP1 00001d0b: PUSH2 0x1d23 00001d0e: JUMPI 00001d0f: POP 00001d10: ADDRESS 00001d11: EXTCODESIZE 00001d12: ISZERO 00001d13: DUP1 00001d14: ISZERO 00001d15: PUSH2 0x1d23 00001d18: JUMPI 00001d19: POP 00001d1a: PUSH1 0x00 00001d1c: SLOAD 00001d1d: PUSH1 0xff 00001d1f: AND 00001d20: PUSH1 0x01 00001d22: EQ 00001d23: JUMPDEST 00001d24: PUSH2 0x1d95 00001d27: JUMPI 00001d28: PUSH1 0x40 00001d2a: MLOAD 00001d2b: PUSH3 0x461bcd 00001d2f: PUSH1 0xe5 00001d31: SHL 00001d32: DUP2 00001d33: MSTORE 00001d34: PUSH1 0x20 00001d36: PUSH1 0x04 00001d38: DUP3 00001d39: ADD 00001d3a: MSTORE 00001d3b: PUSH1 0x2e 00001d3d: PUSH1 0x24 00001d3f: DUP3 00001d40: ADD 00001d41: MSTORE 00001d42: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 00001d63: PUSH1 0x44 00001d65: DUP3 00001d66: ADD 00001d67: MSTORE 00001d68: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000 00001d89: PUSH1 0x64 00001d8b: DUP3 00001d8c: ADD 00001d8d: MSTORE 00001d8e: PUSH1 0x84 00001d90: ADD 00001d91: PUSH2 0x09f8 00001d94: JUMP 00001d95: JUMPDEST 00001d96: PUSH1 0x00 00001d98: DUP1 00001d99: SLOAD 00001d9a: PUSH1 0xff 00001d9c: NOT 00001d9d: AND 00001d9e: PUSH1 0x01 00001da0: OR 00001da1: SWAP1 00001da2: SSTORE 00001da3: DUP1 00001da4: ISZERO 00001da5: PUSH2 0x1db8 00001da8: JUMPI 00001da9: PUSH1 0x00 00001dab: DUP1 00001dac: SLOAD 00001dad: PUSH2 0xff00 00001db0: NOT 00001db1: AND 00001db2: PUSH2 0x0100 00001db5: OR 00001db6: SWAP1 00001db7: SSTORE 00001db8: JUMPDEST 00001db9: PUSH1 0x01 00001dbb: PUSH1 0x01 00001dbd: PUSH1 0xa0 00001dbf: SHL 00001dc0: SUB 00001dc1: DUP3 00001dc2: AND 00001dc3: PUSH2 0x1e0e 00001dc6: JUMPI 00001dc7: PUSH1 0x40 00001dc9: MLOAD 00001dca: PUSH3 0x461bcd 00001dce: PUSH1 0xe5 00001dd0: SHL 00001dd1: DUP2 00001dd2: MSTORE 00001dd3: PUSH1 0x20 00001dd5: PUSH1 0x04 00001dd7: DUP3 00001dd8: ADD 00001dd9: MSTORE 00001dda: PUSH1 0x11 00001ddc: PUSH1 0x24 00001dde: DUP3 00001ddf: ADD 00001de0: MSTORE 00001de1: PUSH32 0x4e6f205a65726f20416464726573736573000000000000000000000000000000 00001e02: PUSH1 0x44 00001e04: DUP3 00001e05: ADD 00001e06: MSTORE 00001e07: PUSH1 0x64 00001e09: ADD 00001e0a: PUSH2 0x09f8 00001e0d: JUMP 00001e0e: JUMPDEST 00001e0f: PUSH32 0x4563918244f40000002386f26fc10000000000000000000000038d7ea4c68000 00001e30: PUSH2 0x012d 00001e33: SSTORE 00001e34: PUSH1 0x01 00001e36: PUSH2 0x012e 00001e39: SSTORE 00001e3a: PUSH2 0x0132 00001e3d: DUP1 00001e3e: SLOAD 00001e3f: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff 00001e60: AND 00001e61: PUSH1 0x01 00001e63: PUSH1 0xa0 00001e65: SHL 00001e66: OR 00001e67: SWAP1 00001e68: SSTORE 00001e69: PUSH2 0x0130 00001e6c: DUP1 00001e6d: SLOAD 00001e6e: PUSH1 0x01 00001e70: PUSH1 0x01 00001e72: PUSH1 0xa0 00001e74: SHL 00001e75: SUB 00001e76: DUP5 00001e77: AND 00001e78: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001e8d: NOT 00001e8e: SWAP1 00001e8f: SWAP2 00001e90: AND 00001e91: OR 00001e92: SWAP1 00001e93: SSTORE 00001e94: PUSH2 0x1e9b 00001e97: PUSH2 0x2a8f 00001e9a: JUMP 00001e9b: JUMPDEST 00001e9c: PUSH2 0x1ea3 00001e9f: PUSH2 0x2b02 00001ea2: JUMP 00001ea3: JUMPDEST 00001ea4: PUSH2 0x1eab 00001ea7: PUSH2 0x2b75 00001eaa: JUMP 00001eab: JUMPDEST 00001eac: PUSH2 0x1eb3 00001eaf: PUSH2 0x2be0 00001eb2: JUMP 00001eb3: JUMPDEST 00001eb4: DUP1 00001eb5: ISZERO 00001eb6: PUSH2 0x0eed 00001eb9: JUMPI 00001eba: PUSH1 0x00 00001ebc: DUP1 00001ebd: SLOAD 00001ebe: PUSH2 0xff00 00001ec1: NOT 00001ec2: AND 00001ec3: SWAP1 00001ec4: SSTORE 00001ec5: PUSH1 0x40 00001ec7: MLOAD 00001ec8: PUSH1 0x01 00001eca: DUP2 00001ecb: MSTORE 00001ecc: PUSH32 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498 00001eed: SWAP1 00001eee: PUSH1 0x20 00001ef0: ADD 00001ef1: PUSH1 0x40 00001ef3: MLOAD 00001ef4: DUP1 00001ef5: SWAP2 00001ef6: SUB 00001ef7: SWAP1 00001ef8: LOG1 00001ef9: POP 00001efa: POP 00001efb: JUMP 00001efc: JUMPDEST 00001efd: CALLER 00001efe: PUSH1 0x00 00001f00: SWAP1 00001f01: DUP2 00001f02: MSTORE 00001f03: PUSH2 0x0137 00001f06: PUSH1 0x20 00001f08: MSTORE 00001f09: PUSH1 0x40 00001f0b: SWAP1 00001f0c: KECCAK256 00001f0d: SLOAD 00001f0e: PUSH1 0xff 00001f10: AND 00001f11: PUSH2 0x1f5c 00001f14: JUMPI 00001f15: PUSH1 0x40 00001f17: MLOAD 00001f18: PUSH3 0x461bcd 00001f1c: PUSH1 0xe5 00001f1e: SHL 00001f1f: DUP2 00001f20: MSTORE 00001f21: PUSH1 0x20 00001f23: PUSH1 0x04 00001f25: DUP3 00001f26: ADD 00001f27: MSTORE 00001f28: PUSH1 0x17 00001f2a: PUSH1 0x24 00001f2c: DUP3 00001f2d: ADD 00001f2e: MSTORE 00001f2f: PUSH32 0x43616c6c6572206973206e6f74207468652061646d696e000000000000000000 00001f50: PUSH1 0x44 00001f52: DUP3 00001f53: ADD 00001f54: MSTORE 00001f55: PUSH1 0x64 00001f57: ADD 00001f58: PUSH2 0x09f8 00001f5b: JUMP 00001f5c: JUMPDEST 00001f5d: PUSH2 0x0132 00001f60: DUP1 00001f61: SLOAD 00001f62: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff 00001f83: AND 00001f84: PUSH1 0x01 00001f86: PUSH1 0xa0 00001f88: SHL 00001f89: SWAP1 00001f8a: DUP2 00001f8b: OR 00001f8c: SWAP2 00001f8d: DUP3 00001f8e: SWAP1 00001f8f: SSTORE 00001f90: PUSH1 0x40 00001f92: MLOAD 00001f93: PUSH32 0x9bea0dd3cae4438dc4c54c3110002aedc380f4075b6edae73ae0536105a2008a 00001fb4: SWAP3 00001fb5: PUSH2 0x1fc7 00001fb8: SWAP3 00001fb9: SWAP1 00001fba: DIV 00001fbb: PUSH1 0xff 00001fbd: AND 00001fbe: ISZERO 00001fbf: ISZERO 00001fc0: DUP2 00001fc1: MSTORE 00001fc2: PUSH1 0x20 00001fc4: ADD 00001fc5: SWAP1 00001fc6: JUMP 00001fc7: JUMPDEST 00001fc8: PUSH1 0x40 00001fca: MLOAD 00001fcb: DUP1 00001fcc: SWAP2 00001fcd: SUB 00001fce: SWAP1 00001fcf: LOG1 00001fd0: JUMP 00001fd1: JUMPDEST 00001fd2: PUSH2 0x0132 00001fd5: SLOAD 00001fd6: PUSH1 0x01 00001fd8: PUSH1 0x01 00001fda: PUSH1 0xa0 00001fdc: SHL 00001fdd: SUB 00001fde: AND 00001fdf: CALLER 00001fe0: EQ 00001fe1: PUSH2 0x203b 00001fe4: JUMPI 00001fe5: PUSH1 0x40 00001fe7: MLOAD 00001fe8: PUSH3 0x461bcd 00001fec: PUSH1 0xe5 00001fee: SHL 00001fef: DUP2 00001ff0: MSTORE 00001ff1: PUSH1 0x20 00001ff3: PUSH1 0x04 00001ff5: DUP3 00001ff6: ADD 00001ff7: MSTORE 00001ff8: PUSH1 0x26 00001ffa: PUSH1 0x24 00001ffc: DUP3 00001ffd: ADD 00001ffe: MSTORE 00001fff: PUSH32 0x4f6e6c79207374616b696e67206d616e6167657220636f6e7472616374206675 00002020: PUSH1 0x44 00002022: DUP3 00002023: ADD 00002024: MSTORE 00002025: PUSH6 0x3731ba34b7b7 0000202c: PUSH1 0xd1 0000202e: SHL 0000202f: PUSH1 0x64 00002031: DUP3 00002032: ADD 00002033: MSTORE 00002034: PUSH1 0x84 00002036: ADD 00002037: PUSH2 0x09f8 0000203a: JUMP 0000203b: JUMPDEST 0000203c: PUSH1 0x00 0000203e: DUP2 0000203f: DUP2 00002040: MSTORE 00002041: PUSH2 0x0133 00002044: PUSH1 0x20 00002046: MSTORE 00002047: PUSH1 0x40 00002049: DUP2 0000204a: KECCAK256 0000204b: SLOAD 0000204c: PUSH2 0x0136 0000204f: SLOAD 00002050: SWAP1 00002051: SWAP2 00002052: SWAP1 00002053: PUSH2 0x2066 00002056: SWAP1 00002057: DUP4 00002058: SWAP1 00002059: PUSH1 0x01 0000205b: PUSH1 0x01 0000205d: PUSH1 0x80 0000205f: SHL 00002060: SUB 00002061: AND 00002062: PUSH2 0x342a 00002065: JUMP 00002066: JUMPDEST 00002067: PUSH2 0x0136 0000206a: SLOAD 0000206b: SWAP1 0000206c: SWAP2 0000206d: POP 0000206e: PUSH1 0x01 00002070: PUSH1 0x80 00002072: SHL 00002073: SWAP1 00002074: DIV 00002075: PUSH1 0x01 00002077: PUSH1 0x01 00002079: PUSH1 0x80 0000207b: SHL 0000207c: SUB 0000207d: AND 0000207e: DUP2 0000207f: LT 00002080: PUSH2 0x2147 00002083: JUMPI 00002084: PUSH2 0x0136 00002087: DUP1 00002088: SLOAD 00002089: PUSH16 0xffffffffffffffffffffffffffffffff 0000209a: NOT 0000209b: AND 0000209c: SWAP1 0000209d: SSTORE 0000209e: PUSH2 0x0135 000020a1: SLOAD 000020a2: PUSH1 0x40 000020a4: MLOAD 000020a5: PUSH1 0x00 000020a7: SWAP2 000020a8: PUSH1 0x01 000020aa: PUSH1 0x01 000020ac: PUSH1 0xa0 000020ae: SHL 000020af: SUB 000020b0: AND 000020b1: SWAP1 000020b2: DUP4 000020b3: SWAP1 000020b4: DUP4 000020b5: DUP2 000020b6: DUP2 000020b7: DUP2 000020b8: DUP6 000020b9: DUP8 000020ba: GAS 000020bb: CALL 000020bc: SWAP3 000020bd: POP 000020be: POP 000020bf: POP 000020c0: RETURNDATASIZE 000020c1: DUP1 000020c2: PUSH1 0x00 000020c4: DUP2 000020c5: EQ 000020c6: PUSH2 0x20eb 000020c9: JUMPI 000020ca: PUSH1 0x40 000020cc: MLOAD 000020cd: SWAP2 000020ce: POP 000020cf: PUSH1 0x1f 000020d1: NOT 000020d2: PUSH1 0x3f 000020d4: RETURNDATASIZE 000020d5: ADD 000020d6: AND 000020d7: DUP3 000020d8: ADD 000020d9: PUSH1 0x40 000020db: MSTORE 000020dc: RETURNDATASIZE 000020dd: DUP3 000020de: MSTORE 000020df: RETURNDATASIZE 000020e0: PUSH1 0x00 000020e2: PUSH1 0x20 000020e4: DUP5 000020e5: ADD 000020e6: RETURNDATACOPY 000020e7: PUSH2 0x20f0 000020ea: JUMP 000020eb: JUMPDEST 000020ec: PUSH1 0x60 000020ee: SWAP2 000020ef: POP 000020f0: JUMPDEST 000020f1: POP 000020f2: POP 000020f3: SWAP1 000020f4: POP 000020f5: DUP1 000020f6: PUSH2 0x2141 000020f9: JUMPI 000020fa: PUSH1 0x40 000020fc: MLOAD 000020fd: PUSH3 0x461bcd 00002101: PUSH1 0xe5 00002103: SHL 00002104: DUP2 00002105: MSTORE 00002106: PUSH1 0x20 00002108: PUSH1 0x04 0000210a: DUP3 0000210b: ADD 0000210c: MSTORE 0000210d: PUSH1 0x14 0000210f: PUSH1 0x24 00002111: DUP3 00002112: ADD 00002113: MSTORE 00002114: PUSH32 0x4661696c656420746f2073656e64204574686572000000000000000000000000 00002135: PUSH1 0x44 00002137: DUP3 00002138: ADD 00002139: MSTORE 0000213a: PUSH1 0x64 0000213c: ADD 0000213d: PUSH2 0x09f8 00002140: JUMP 00002141: JUMPDEST 00002142: POP 00002143: POP 00002144: POP 00002145: POP 00002146: JUMP 00002147: JUMPDEST 00002148: PUSH2 0x0136 0000214b: DUP1 0000214c: SLOAD 0000214d: PUSH1 0x01 0000214f: PUSH1 0x01 00002151: PUSH1 0x80 00002153: SHL 00002154: SUB 00002155: DUP4 00002156: AND 00002157: PUSH16 0xffffffffffffffffffffffffffffffff 00002168: NOT 00002169: SWAP1 0000216a: SWAP2 0000216b: AND 0000216c: OR 0000216d: SWAP1 0000216e: SSTORE 0000216f: POP 00002170: POP 00002171: POP 00002172: JUMP 00002173: JUMPDEST 00002174: CALLER 00002175: PUSH1 0x00 00002177: SWAP1 00002178: DUP2 00002179: MSTORE 0000217a: PUSH2 0x0137 0000217d: PUSH1 0x20 0000217f: MSTORE 00002180: PUSH1 0x40 00002182: SWAP1 00002183: KECCAK256 00002184: SLOAD 00002185: PUSH1 0xff 00002187: AND 00002188: PUSH2 0x21d3 0000218b: JUMPI 0000218c: PUSH1 0x40 0000218e: MLOAD 0000218f: PUSH3 0x461bcd 00002193: PUSH1 0xe5 00002195: SHL 00002196: DUP2 00002197: MSTORE 00002198: PUSH1 0x20 0000219a: PUSH1 0x04 0000219c: DUP3 0000219d: ADD 0000219e: MSTORE 0000219f: PUSH1 0x17 000021a1: PUSH1 0x24 000021a3: DUP3 000021a4: ADD 000021a5: MSTORE 000021a6: PUSH32 0x43616c6c6572206973206e6f74207468652061646d696e000000000000000000 000021c7: PUSH1 0x44 000021c9: DUP3 000021ca: ADD 000021cb: MSTORE 000021cc: PUSH1 0x64 000021ce: ADD 000021cf: PUSH2 0x09f8 000021d2: JUMP 000021d3: JUMPDEST 000021d4: PUSH2 0x0132 000021d7: DUP1 000021d8: SLOAD 000021d9: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff 000021fa: AND 000021fb: SWAP1 000021fc: DUP2 000021fd: SWAP1 000021fe: SSTORE 000021ff: PUSH1 0x40 00002201: MLOAD 00002202: PUSH32 0x3339dbd4fb585c70a2b8d61f33bc30da050195b8b986a441dd33624b88f87970 00002223: SWAP2 00002224: PUSH2 0x1fc7 00002227: SWAP2 00002228: PUSH1 0x01 0000222a: PUSH1 0xa0 0000222c: SHL 0000222d: SWAP1 0000222e: SWAP2 0000222f: DIV 00002230: PUSH1 0xff 00002232: AND 00002233: ISZERO 00002234: ISZERO 00002235: DUP2 00002236: MSTORE 00002237: PUSH1 0x20 00002239: ADD 0000223a: SWAP1 0000223b: JUMP 0000223c: JUMPDEST 0000223d: PUSH2 0x2244 00002240: PUSH2 0x252e 00002243: JUMP 00002244: JUMPDEST 00002245: PUSH2 0x0132 00002248: SLOAD 00002249: PUSH1 0x01 0000224b: PUSH1 0x01 0000224d: PUSH1 0xa0 0000224f: SHL 00002250: SUB 00002251: AND 00002252: ISZERO 00002253: PUSH2 0x229e 00002256: JUMPI 00002257: PUSH1 0x40 00002259: MLOAD 0000225a: PUSH3 0x461bcd 0000225e: PUSH1 0xe5 00002260: SHL 00002261: DUP2 00002262: MSTORE 00002263: PUSH1 0x20 00002265: PUSH1 0x04 00002267: DUP3 00002268: ADD 00002269: MSTORE 0000226a: PUSH1 0x13 0000226c: PUSH1 0x24 0000226e: DUP3 0000226f: ADD 00002270: MSTORE 00002271: PUSH32 0x4164647265737320616c72656164792073657400000000000000000000000000 00002292: PUSH1 0x44 00002294: DUP3 00002295: ADD 00002296: MSTORE 00002297: PUSH1 0x64 00002299: ADD 0000229a: PUSH2 0x09f8 0000229d: JUMP 0000229e: JUMPDEST 0000229f: PUSH1 0x01 000022a1: PUSH1 0x01 000022a3: PUSH1 0xa0 000022a5: SHL 000022a6: SUB 000022a7: DUP2 000022a8: AND 000022a9: PUSH2 0x22f4 000022ac: JUMPI 000022ad: PUSH1 0x40 000022af: MLOAD 000022b0: PUSH3 0x461bcd 000022b4: PUSH1 0xe5 000022b6: SHL 000022b7: DUP2 000022b8: MSTORE 000022b9: PUSH1 0x20 000022bb: PUSH1 0x04 000022bd: DUP3 000022be: ADD 000022bf: MSTORE 000022c0: PUSH1 0x11 000022c2: PUSH1 0x24 000022c4: DUP3 000022c5: ADD 000022c6: MSTORE 000022c7: PUSH32 0x4e6f207a65726f20616464726573736573000000000000000000000000000000 000022e8: PUSH1 0x44 000022ea: DUP3 000022eb: ADD 000022ec: MSTORE 000022ed: PUSH1 0x64 000022ef: ADD 000022f0: PUSH2 0x09f8 000022f3: JUMP 000022f4: JUMPDEST 000022f5: PUSH2 0x0132 000022f8: DUP1 000022f9: SLOAD 000022fa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000230f: NOT 00002310: AND 00002311: PUSH1 0x01 00002313: PUSH1 0x01 00002315: PUSH1 0xa0 00002317: SHL 00002318: SUB 00002319: SWAP3 0000231a: SWAP1 0000231b: SWAP3 0000231c: AND 0000231d: SWAP2 0000231e: SWAP1 0000231f: SWAP2 00002320: OR 00002321: SWAP1 00002322: SSTORE 00002323: JUMP 00002324: JUMPDEST 00002325: PUSH2 0x0132 00002328: SLOAD 00002329: PUSH1 0x01 0000232b: PUSH1 0x01 0000232d: PUSH1 0xa0 0000232f: SHL 00002330: SUB 00002331: AND 00002332: CALLER 00002333: EQ 00002334: PUSH2 0x238e 00002337: JUMPI 00002338: PUSH1 0x40 0000233a: MLOAD 0000233b: PUSH3 0x461bcd 0000233f: PUSH1 0xe5 00002341: SHL 00002342: DUP2 00002343: MSTORE 00002344: PUSH1 0x20 00002346: PUSH1 0x04 00002348: DUP3 00002349: ADD 0000234a: MSTORE 0000234b: PUSH1 0x26 0000234d: PUSH1 0x24 0000234f: DUP3 00002350: ADD 00002351: MSTORE 00002352: PUSH32 0x4f6e6c79207374616b696e67206d616e6167657220636f6e7472616374206675 00002373: PUSH1 0x44 00002375: DUP3 00002376: ADD 00002377: MSTORE 00002378: PUSH6 0x3731ba34b7b7 0000237f: PUSH1 0xd1 00002381: SHL 00002382: PUSH1 0x64 00002384: DUP3 00002385: ADD 00002386: MSTORE 00002387: PUSH1 0x84 00002389: ADD 0000238a: PUSH2 0x09f8 0000238d: JUMP 0000238e: JUMPDEST 0000238f: PUSH1 0x00 00002391: DUP2 00002392: DUP2 00002393: MSTORE 00002394: PUSH2 0x0133 00002397: PUSH1 0x20 00002399: MSTORE 0000239a: PUSH1 0x40 0000239c: SWAP1 0000239d: KECCAK256 0000239e: PUSH1 0x01 000023a0: DUP2 000023a1: ADD 000023a2: SLOAD 000023a3: PUSH1 0x01 000023a5: PUSH1 0xe0 000023a7: SHL 000023a8: SWAP1 000023a9: DIV 000023aa: PUSH1 0xff 000023ac: AND 000023ad: PUSH2 0x23f8 000023b0: JUMPI 000023b1: PUSH1 0x40 000023b3: MLOAD 000023b4: PUSH3 0x461bcd 000023b8: PUSH1 0xe5 000023ba: SHL 000023bb: DUP2 000023bc: MSTORE 000023bd: PUSH1 0x20 000023bf: PUSH1 0x04 000023c1: DUP3 000023c2: ADD 000023c3: MSTORE 000023c4: PUSH1 0x15 000023c6: PUSH1 0x24 000023c8: DUP3 000023c9: ADD 000023ca: MSTORE 000023cb: PUSH32 0x54686520626964206973206e6f74206163746976650000000000000000000000 000023ec: PUSH1 0x44 000023ee: DUP3 000023ef: ADD 000023f0: MSTORE 000023f1: PUSH1 0x64 000023f3: ADD 000023f4: PUSH2 0x09f8 000023f7: JUMP 000023f8: JUMPDEST 000023f9: PUSH1 0x01 000023fb: DUP2 000023fc: ADD 000023fd: DUP1 000023fe: SLOAD 000023ff: PUSH1 0xff 00002401: PUSH1 0xe0 00002403: SHL 00002404: NOT 00002405: AND 00002406: SWAP1 00002407: SSTORE 00002408: PUSH2 0x012f 0000240b: DUP1 0000240c: SLOAD 0000240d: SWAP1 0000240e: PUSH1 0x00 00002410: PUSH2 0x2418 00002413: DUP4 00002414: PUSH2 0x34a7 00002417: JUMP 00002418: JUMPDEST 00002419: SWAP2 0000241a: SWAP1 0000241b: POP 0000241c: SSTORE 0000241d: POP 0000241e: POP 0000241f: POP 00002420: JUMP 00002421: JUMPDEST 00002422: CALLER 00002423: PUSH1 0x00 00002425: SWAP1 00002426: DUP2 00002427: MSTORE 00002428: PUSH2 0x0137 0000242b: PUSH1 0x20 0000242d: MSTORE 0000242e: PUSH1 0x40 00002430: SWAP1 00002431: KECCAK256 00002432: SLOAD 00002433: PUSH1 0xff 00002435: AND 00002436: PUSH2 0x2481 00002439: JUMPI 0000243a: PUSH1 0x40 0000243c: MLOAD 0000243d: PUSH3 0x461bcd 00002441: PUSH1 0xe5 00002443: SHL 00002444: DUP2 00002445: MSTORE 00002446: PUSH1 0x20 00002448: PUSH1 0x04 0000244a: DUP3 0000244b: ADD 0000244c: MSTORE 0000244d: PUSH1 0x17 0000244f: PUSH1 0x24 00002451: DUP3 00002452: ADD 00002453: MSTORE 00002454: PUSH32 0x43616c6c6572206973206e6f74207468652061646d696e000000000000000000 00002475: PUSH1 0x44 00002477: DUP3 00002478: ADD 00002479: MSTORE 0000247a: PUSH1 0x64 0000247c: ADD 0000247d: PUSH2 0x09f8 00002480: JUMP 00002481: JUMPDEST 00002482: PUSH2 0x0136 00002485: DUP1 00002486: SLOAD 00002487: PUSH1 0x01 00002489: PUSH1 0x01 0000248b: PUSH1 0x80 0000248d: SHL 0000248e: SUB 0000248f: SWAP3 00002490: DUP4 00002491: AND 00002492: PUSH1 0x01 00002494: PUSH1 0x80 00002496: SHL 00002497: MUL 00002498: SWAP3 00002499: AND 0000249a: SWAP2 0000249b: SWAP1 0000249c: SWAP2 0000249d: OR 0000249e: SWAP1 0000249f: SSTORE 000024a0: JUMP 000024a1: JUMPDEST 000024a2: PUSH2 0x24a9 000024a5: PUSH2 0x252e 000024a8: JUMP 000024a9: JUMPDEST 000024aa: PUSH1 0x01 000024ac: PUSH1 0x01 000024ae: PUSH1 0xa0 000024b0: SHL 000024b1: SUB 000024b2: DUP2 000024b3: AND 000024b4: PUSH2 0x2525 000024b7: JUMPI 000024b8: PUSH1 0x40 000024ba: MLOAD 000024bb: PUSH3 0x461bcd 000024bf: PUSH1 0xe5 000024c1: SHL 000024c2: DUP2 000024c3: MSTORE 000024c4: PUSH1 0x20 000024c6: PUSH1 0x04 000024c8: DUP3 000024c9: ADD 000024ca: MSTORE 000024cb: PUSH1 0x26 000024cd: PUSH1 0x24 000024cf: DUP3 000024d0: ADD 000024d1: MSTORE 000024d2: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 000024f3: PUSH1 0x44 000024f5: DUP3 000024f6: ADD 000024f7: MSTORE 000024f8: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 00002519: PUSH1 0x64 0000251b: DUP3 0000251c: ADD 0000251d: MSTORE 0000251e: PUSH1 0x84 00002520: ADD 00002521: PUSH2 0x09f8 00002524: JUMP 00002525: JUMPDEST 00002526: PUSH2 0x0bc7 00002529: DUP2 0000252a: PUSH2 0x2785 0000252d: JUMP 0000252e: JUMPDEST 0000252f: PUSH1 0x65 00002531: SLOAD 00002532: PUSH1 0x01 00002534: PUSH1 0x01 00002536: PUSH1 0xa0 00002538: SHL 00002539: SUB 0000253a: AND 0000253b: CALLER 0000253c: EQ 0000253d: PUSH2 0x0d61 00002540: JUMPI 00002541: PUSH1 0x40 00002543: MLOAD 00002544: PUSH3 0x461bcd 00002548: PUSH1 0xe5 0000254a: SHL 0000254b: DUP2 0000254c: MSTORE 0000254d: PUSH1 0x20 0000254f: PUSH1 0x04 00002551: DUP3 00002552: ADD 00002553: DUP2 00002554: SWAP1 00002555: MSTORE 00002556: PUSH1 0x24 00002558: DUP3 00002559: ADD 0000255a: MSTORE 0000255b: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 0000257c: PUSH1 0x44 0000257e: DUP3 0000257f: ADD 00002580: MSTORE 00002581: PUSH1 0x64 00002583: ADD 00002584: PUSH2 0x09f8 00002587: JUMP 00002588: JUMPDEST 00002589: PUSH2 0x0bc7 0000258c: PUSH2 0x252e 0000258f: JUMP 00002590: JUMPDEST 00002591: PUSH32 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143 000025b2: SLOAD 000025b3: PUSH1 0xff 000025b5: AND 000025b6: ISZERO 000025b7: PUSH2 0x25c3 000025ba: JUMPI 000025bb: PUSH2 0x142a 000025be: DUP4 000025bf: PUSH2 0x2c53 000025c2: JUMP 000025c3: JUMPDEST 000025c4: DUP3 000025c5: PUSH1 0x01 000025c7: PUSH1 0x01 000025c9: PUSH1 0xa0 000025cb: SHL 000025cc: SUB 000025cd: AND 000025ce: PUSH4 0x52d1902d 000025d3: PUSH1 0x40 000025d5: MLOAD 000025d6: DUP2 000025d7: PUSH4 0xffffffff 000025dc: AND 000025dd: PUSH1 0xe0 000025df: SHL 000025e0: DUP2 000025e1: MSTORE 000025e2: PUSH1 0x04 000025e4: ADD 000025e5: PUSH1 0x20 000025e7: PUSH1 0x40 000025e9: MLOAD 000025ea: DUP1 000025eb: DUP4 000025ec: SUB 000025ed: DUP2 000025ee: DUP7 000025ef: GAS 000025f0: STATICCALL 000025f1: SWAP3 000025f2: POP 000025f3: POP 000025f4: POP 000025f5: DUP1 000025f6: ISZERO 000025f7: PUSH2 0x261d 000025fa: JUMPI 000025fb: POP 000025fc: PUSH1 0x40 000025fe: DUP1 000025ff: MLOAD 00002600: PUSH1 0x1f 00002602: RETURNDATASIZE 00002603: SWAP1 00002604: DUP2 00002605: ADD 00002606: PUSH1 0x1f 00002608: NOT 00002609: AND 0000260a: DUP3 0000260b: ADD 0000260c: SWAP1 0000260d: SWAP3 0000260e: MSTORE 0000260f: PUSH2 0x261a 00002612: SWAP2 00002613: DUP2 00002614: ADD 00002615: SWAP1 00002616: PUSH2 0x34be 00002619: JUMP 0000261a: JUMPDEST 0000261b: PUSH1 0x01 0000261d: JUMPDEST 0000261e: PUSH2 0x268f 00002621: JUMPI 00002622: PUSH1 0x40 00002624: MLOAD 00002625: PUSH3 0x461bcd 00002629: PUSH1 0xe5 0000262b: SHL 0000262c: DUP2 0000262d: MSTORE 0000262e: PUSH1 0x20 00002630: PUSH1 0x04 00002632: DUP3 00002633: ADD 00002634: MSTORE 00002635: PUSH1 0x2e 00002637: PUSH1 0x24 00002639: DUP3 0000263a: ADD 0000263b: MSTORE 0000263c: PUSH32 0x45524331393637557067726164653a206e657720696d706c656d656e74617469 0000265d: PUSH1 0x44 0000265f: DUP3 00002660: ADD 00002661: MSTORE 00002662: PUSH32 0x6f6e206973206e6f742055555053000000000000000000000000000000000000 00002683: PUSH1 0x64 00002685: DUP3 00002686: ADD 00002687: MSTORE 00002688: PUSH1 0x84 0000268a: ADD 0000268b: PUSH2 0x09f8 0000268e: JUMP 0000268f: JUMPDEST 00002690: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 000026b1: DUP2 000026b2: EQ 000026b3: PUSH2 0x2724 000026b6: JUMPI 000026b7: PUSH1 0x40 000026b9: MLOAD 000026ba: PUSH3 0x461bcd 000026be: PUSH1 0xe5 000026c0: SHL 000026c1: DUP2 000026c2: MSTORE 000026c3: PUSH1 0x20 000026c5: PUSH1 0x04 000026c7: DUP3 000026c8: ADD 000026c9: MSTORE 000026ca: PUSH1 0x29 000026cc: PUSH1 0x24 000026ce: DUP3 000026cf: ADD 000026d0: MSTORE 000026d1: PUSH32 0x45524331393637557067726164653a20756e737570706f727465642070726f78 000026f2: PUSH1 0x44 000026f4: DUP3 000026f5: ADD 000026f6: MSTORE 000026f7: PUSH32 0x6961626c65555549440000000000000000000000000000000000000000000000 00002718: PUSH1 0x64 0000271a: DUP3 0000271b: ADD 0000271c: MSTORE 0000271d: PUSH1 0x84 0000271f: ADD 00002720: PUSH2 0x09f8 00002723: JUMP 00002724: JUMPDEST 00002725: POP 00002726: PUSH2 0x142a 00002729: DUP4 0000272a: DUP4 0000272b: DUP4 0000272c: PUSH2 0x2d1e 0000272f: JUMP 00002730: JUMPDEST 00002731: PUSH2 0x2738 00002734: PUSH2 0x27e4 00002737: JUMP 00002738: JUMPDEST 00002739: PUSH1 0x33 0000273b: DUP1 0000273c: SLOAD 0000273d: PUSH1 0xff 0000273f: NOT 00002740: AND 00002741: PUSH1 0x01 00002743: OR 00002744: SWAP1 00002745: SSTORE 00002746: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258 00002767: PUSH2 0x276d 0000276a: CALLER 0000276b: SWAP1 0000276c: JUMP 0000276d: JUMPDEST 0000276e: PUSH1 0x40 00002770: MLOAD 00002771: PUSH1 0x01 00002773: PUSH1 0x01 00002775: PUSH1 0xa0 00002777: SHL 00002778: SUB 00002779: SWAP1 0000277a: SWAP2 0000277b: AND 0000277c: DUP2 0000277d: MSTORE 0000277e: PUSH1 0x20 00002780: ADD 00002781: PUSH2 0x1fc7 00002784: JUMP 00002785: JUMPDEST 00002786: PUSH1 0x65 00002788: DUP1 00002789: SLOAD 0000278a: PUSH1 0x01 0000278c: PUSH1 0x01 0000278e: PUSH1 0xa0 00002790: SHL 00002791: SUB 00002792: DUP4 00002793: DUP2 00002794: AND 00002795: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000027aa: NOT 000027ab: DUP4 000027ac: AND 000027ad: DUP2 000027ae: OR 000027af: SWAP1 000027b0: SWAP4 000027b1: SSTORE 000027b2: PUSH1 0x40 000027b4: MLOAD 000027b5: SWAP2 000027b6: AND 000027b7: SWAP2 000027b8: SWAP1 000027b9: DUP3 000027ba: SWAP1 000027bb: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 000027dc: SWAP1 000027dd: PUSH1 0x00 000027df: SWAP1 000027e0: LOG3 000027e1: POP 000027e2: POP 000027e3: JUMP 000027e4: JUMPDEST 000027e5: PUSH1 0x33 000027e7: SLOAD 000027e8: PUSH1 0xff 000027ea: AND 000027eb: ISZERO 000027ec: PUSH2 0x0d61 000027ef: JUMPI 000027f0: PUSH1 0x40 000027f2: MLOAD 000027f3: PUSH3 0x461bcd 000027f7: PUSH1 0xe5 000027f9: SHL 000027fa: DUP2 000027fb: MSTORE 000027fc: PUSH1 0x20 000027fe: PUSH1 0x04 00002800: DUP3 00002801: ADD 00002802: MSTORE 00002803: PUSH1 0x10 00002805: PUSH1 0x24 00002807: DUP3 00002808: ADD 00002809: MSTORE 0000280a: PUSH32 0x5061757361626c653a2070617573656400000000000000000000000000000000 0000282b: PUSH1 0x44 0000282d: DUP3 0000282e: ADD 0000282f: MSTORE 00002830: PUSH1 0x64 00002832: ADD 00002833: PUSH2 0x09f8 00002836: JUMP 00002837: JUMPDEST 00002838: PUSH1 0x00 0000283a: DUP2 0000283b: DUP2 0000283c: MSTORE 0000283d: PUSH2 0x0133 00002840: PUSH1 0x20 00002842: MSTORE 00002843: PUSH1 0x40 00002845: SWAP1 00002846: KECCAK256 00002847: PUSH1 0x01 00002849: DUP2 0000284a: ADD 0000284b: SLOAD 0000284c: PUSH9 0x010000000000000000 00002856: SWAP1 00002857: DIV 00002858: PUSH1 0x01 0000285a: PUSH1 0x01 0000285c: PUSH1 0xa0 0000285e: SHL 0000285f: SUB 00002860: AND 00002861: CALLER 00002862: EQ 00002863: PUSH2 0x28ae 00002866: JUMPI 00002867: PUSH1 0x40 00002869: MLOAD 0000286a: PUSH3 0x461bcd 0000286e: PUSH1 0xe5 00002870: SHL 00002871: DUP2 00002872: MSTORE 00002873: PUSH1 0x20 00002875: PUSH1 0x04 00002877: DUP3 00002878: ADD 00002879: MSTORE 0000287a: PUSH1 0x0b 0000287c: PUSH1 0x24 0000287e: DUP3 0000287f: ADD 00002880: MSTORE 00002881: PUSH32 0x496e76616c696420626964000000000000000000000000000000000000000000 000028a2: PUSH1 0x44 000028a4: DUP3 000028a5: ADD 000028a6: MSTORE 000028a7: PUSH1 0x64 000028a9: ADD 000028aa: PUSH2 0x09f8 000028ad: JUMP 000028ae: JUMPDEST 000028af: PUSH1 0x01 000028b1: DUP2 000028b2: ADD 000028b3: SLOAD 000028b4: PUSH1 0x01 000028b6: PUSH1 0xe0 000028b8: SHL 000028b9: SWAP1 000028ba: DIV 000028bb: PUSH1 0xff 000028bd: AND 000028be: PUSH2 0x2909 000028c1: JUMPI 000028c2: PUSH1 0x40 000028c4: MLOAD 000028c5: PUSH3 0x461bcd 000028c9: PUSH1 0xe5 000028cb: SHL 000028cc: DUP2 000028cd: MSTORE 000028ce: PUSH1 0x20 000028d0: PUSH1 0x04 000028d2: DUP3 000028d3: ADD 000028d4: MSTORE 000028d5: PUSH1 0x15 000028d7: PUSH1 0x24 000028d9: DUP3 000028da: ADD 000028db: MSTORE 000028dc: PUSH32 0x42696420616c72656164792063616e63656c6c65640000000000000000000000 000028fd: PUSH1 0x44 000028ff: DUP3 00002900: ADD 00002901: MSTORE 00002902: PUSH1 0x64 00002904: ADD 00002905: PUSH2 0x09f8 00002908: JUMP 00002909: JUMPDEST 0000290a: PUSH1 0x01 0000290c: DUP2 0000290d: ADD 0000290e: DUP1 0000290f: SLOAD 00002910: PUSH1 0xff 00002912: PUSH1 0xe0 00002914: SHL 00002915: NOT 00002916: AND 00002917: SWAP1 00002918: SSTORE 00002919: PUSH2 0x012f 0000291c: DUP1 0000291d: SLOAD 0000291e: SWAP1 0000291f: PUSH1 0x00 00002921: PUSH2 0x2929 00002924: DUP4 00002925: PUSH2 0x34a7 00002928: JUMP 00002929: JUMPDEST 0000292a: SWAP1 0000292b: SWAP2 0000292c: SSTORE 0000292d: POP 0000292e: POP 0000292f: DUP1 00002930: SLOAD 00002931: PUSH1 0x40 00002933: MLOAD 00002934: PUSH1 0x00 00002936: SWAP2 00002937: CALLER 00002938: SWAP2 00002939: DUP4 0000293a: DUP2 0000293b: DUP2 0000293c: DUP2 0000293d: DUP6 0000293e: DUP8 0000293f: GAS 00002940: CALL 00002941: SWAP3 00002942: POP 00002943: POP 00002944: POP 00002945: RETURNDATASIZE 00002946: DUP1 00002947: PUSH1 0x00 00002949: DUP2 0000294a: EQ 0000294b: PUSH2 0x2970 0000294e: JUMPI 0000294f: PUSH1 0x40 00002951: MLOAD 00002952: SWAP2 00002953: POP 00002954: PUSH1 0x1f 00002956: NOT 00002957: PUSH1 0x3f 00002959: RETURNDATASIZE 0000295a: ADD 0000295b: AND 0000295c: DUP3 0000295d: ADD 0000295e: PUSH1 0x40 00002960: MSTORE 00002961: RETURNDATASIZE 00002962: DUP3 00002963: MSTORE 00002964: RETURNDATASIZE 00002965: PUSH1 0x00 00002967: PUSH1 0x20 00002969: DUP5 0000296a: ADD 0000296b: RETURNDATACOPY 0000296c: PUSH2 0x2975 0000296f: JUMP 00002970: JUMPDEST 00002971: PUSH1 0x60 00002973: SWAP2 00002974: POP 00002975: JUMPDEST 00002976: POP 00002977: POP 00002978: SWAP1 00002979: POP 0000297a: DUP1 0000297b: PUSH2 0x29c6 0000297e: JUMPI 0000297f: PUSH1 0x40 00002981: MLOAD 00002982: PUSH3 0x461bcd 00002986: PUSH1 0xe5 00002988: SHL 00002989: DUP2 0000298a: MSTORE 0000298b: PUSH1 0x20 0000298d: PUSH1 0x04 0000298f: DUP3 00002990: ADD 00002991: MSTORE 00002992: PUSH1 0x14 00002994: PUSH1 0x24 00002996: DUP3 00002997: ADD 00002998: MSTORE 00002999: PUSH32 0x4661696c656420746f2073656e64204574686572000000000000000000000000 000029ba: PUSH1 0x44 000029bc: DUP3 000029bd: ADD 000029be: MSTORE 000029bf: PUSH1 0x64 000029c1: ADD 000029c2: PUSH2 0x09f8 000029c5: JUMP 000029c6: JUMPDEST 000029c7: PUSH1 0x40 000029c9: MLOAD 000029ca: DUP4 000029cb: SWAP1 000029cc: PUSH32 0xc1546e394b1975212fe013e7e6995653585f44e568c407d1157483f7d4b94581 000029ed: SWAP1 000029ee: PUSH1 0x00 000029f0: SWAP1 000029f1: LOG2 000029f2: POP 000029f3: POP 000029f4: POP 000029f5: JUMP 000029f6: JUMPDEST 000029f7: PUSH1 0x02 000029f9: PUSH1 0x97 000029fb: SLOAD 000029fc: SUB 000029fd: PUSH2 0x2a48 00002a00: JUMPI 00002a01: PUSH1 0x40 00002a03: MLOAD 00002a04: PUSH3 0x461bcd 00002a08: PUSH1 0xe5 00002a0a: SHL 00002a0b: DUP2 00002a0c: MSTORE 00002a0d: PUSH1 0x20 00002a0f: PUSH1 0x04 00002a11: DUP3 00002a12: ADD 00002a13: MSTORE 00002a14: PUSH1 0x1f 00002a16: PUSH1 0x24 00002a18: DUP3 00002a19: ADD 00002a1a: MSTORE 00002a1b: PUSH32 0x5265656e7472616e637947756172643a207265656e7472616e742063616c6c00 00002a3c: PUSH1 0x44 00002a3e: DUP3 00002a3f: ADD 00002a40: MSTORE 00002a41: PUSH1 0x64 00002a43: ADD 00002a44: PUSH2 0x09f8 00002a47: JUMP 00002a48: JUMPDEST 00002a49: PUSH1 0x02 00002a4b: PUSH1 0x97 00002a4d: SSTORE 00002a4e: JUMP 00002a4f: JUMPDEST 00002a50: PUSH1 0x01 00002a52: PUSH1 0x97 00002a54: SSTORE 00002a55: JUMP 00002a56: JUMPDEST 00002a57: PUSH2 0x2a5e 00002a5a: PUSH2 0x2d43 00002a5d: JUMP 00002a5e: JUMPDEST 00002a5f: PUSH1 0x33 00002a61: DUP1 00002a62: SLOAD 00002a63: PUSH1 0xff 00002a65: NOT 00002a66: AND 00002a67: SWAP1 00002a68: SSTORE 00002a69: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa 00002a8a: CALLER 00002a8b: PUSH2 0x276d 00002a8e: JUMP 00002a8f: JUMPDEST 00002a90: PUSH1 0x00 00002a92: SLOAD 00002a93: PUSH2 0x0100 00002a96: SWAP1 00002a97: DIV 00002a98: PUSH1 0xff 00002a9a: AND 00002a9b: PUSH2 0x2afa 00002a9e: JUMPI 00002a9f: PUSH1 0x40 00002aa1: MLOAD 00002aa2: PUSH3 0x461bcd 00002aa6: PUSH1 0xe5 00002aa8: SHL 00002aa9: DUP2 00002aaa: MSTORE 00002aab: PUSH1 0x20 00002aad: PUSH1 0x04 00002aaf: DUP3 00002ab0: ADD 00002ab1: MSTORE 00002ab2: PUSH1 0x2b 00002ab4: PUSH1 0x24 00002ab6: DUP3 00002ab7: ADD 00002ab8: MSTORE 00002ab9: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00002ada: PUSH1 0x44 00002adc: DUP3 00002add: ADD 00002ade: MSTORE 00002adf: PUSH11 0x6e697469616c697a696e67 00002aeb: PUSH1 0xa8 00002aed: SHL 00002aee: PUSH1 0x64 00002af0: DUP3 00002af1: ADD 00002af2: MSTORE 00002af3: PUSH1 0x84 00002af5: ADD 00002af6: PUSH2 0x09f8 00002af9: JUMP 00002afa: JUMPDEST 00002afb: PUSH2 0x0d61 00002afe: PUSH2 0x2d95 00002b01: JUMP 00002b02: JUMPDEST 00002b03: PUSH1 0x00 00002b05: SLOAD 00002b06: PUSH2 0x0100 00002b09: SWAP1 00002b0a: DIV 00002b0b: PUSH1 0xff 00002b0d: AND 00002b0e: PUSH2 0x2b6d 00002b11: JUMPI 00002b12: PUSH1 0x40 00002b14: MLOAD 00002b15: PUSH3 0x461bcd 00002b19: PUSH1 0xe5 00002b1b: SHL 00002b1c: DUP2 00002b1d: MSTORE 00002b1e: PUSH1 0x20 00002b20: PUSH1 0x04 00002b22: DUP3 00002b23: ADD 00002b24: MSTORE 00002b25: PUSH1 0x2b 00002b27: PUSH1 0x24 00002b29: DUP3 00002b2a: ADD 00002b2b: MSTORE 00002b2c: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00002b4d: PUSH1 0x44 00002b4f: DUP3 00002b50: ADD 00002b51: MSTORE 00002b52: PUSH11 0x6e697469616c697a696e67 00002b5e: PUSH1 0xa8 00002b60: SHL 00002b61: PUSH1 0x64 00002b63: DUP3 00002b64: ADD 00002b65: MSTORE 00002b66: PUSH1 0x84 00002b68: ADD 00002b69: PUSH2 0x09f8 00002b6c: JUMP 00002b6d: JUMPDEST 00002b6e: PUSH2 0x0d61 00002b71: PUSH2 0x2e0c 00002b74: JUMP 00002b75: JUMPDEST 00002b76: PUSH1 0x00 00002b78: SLOAD 00002b79: PUSH2 0x0100 00002b7c: SWAP1 00002b7d: DIV 00002b7e: PUSH1 0xff 00002b80: AND 00002b81: PUSH2 0x0d61 00002b84: JUMPI 00002b85: PUSH1 0x40 00002b87: MLOAD 00002b88: PUSH3 0x461bcd 00002b8c: PUSH1 0xe5 00002b8e: SHL 00002b8f: DUP2 00002b90: MSTORE 00002b91: PUSH1 0x20 00002b93: PUSH1 0x04 00002b95: DUP3 00002b96: ADD 00002b97: MSTORE 00002b98: PUSH1 0x2b 00002b9a: PUSH1 0x24 00002b9c: DUP3 00002b9d: ADD 00002b9e: MSTORE 00002b9f: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00002bc0: PUSH1 0x44 00002bc2: DUP3 00002bc3: ADD 00002bc4: MSTORE 00002bc5: PUSH11 0x6e697469616c697a696e67 00002bd1: PUSH1 0xa8 00002bd3: SHL 00002bd4: PUSH1 0x64 00002bd6: DUP3 00002bd7: ADD 00002bd8: MSTORE 00002bd9: PUSH1 0x84 00002bdb: ADD 00002bdc: PUSH2 0x09f8 00002bdf: JUMP 00002be0: JUMPDEST 00002be1: PUSH1 0x00 00002be3: SLOAD 00002be4: PUSH2 0x0100 00002be7: SWAP1 00002be8: DIV 00002be9: PUSH1 0xff 00002beb: AND 00002bec: PUSH2 0x2c4b 00002bef: JUMPI 00002bf0: PUSH1 0x40 00002bf2: MLOAD 00002bf3: PUSH3 0x461bcd 00002bf7: PUSH1 0xe5 00002bf9: SHL 00002bfa: DUP2 00002bfb: MSTORE 00002bfc: PUSH1 0x20 00002bfe: PUSH1 0x04 00002c00: DUP3 00002c01: ADD 00002c02: MSTORE 00002c03: PUSH1 0x2b 00002c05: PUSH1 0x24 00002c07: DUP3 00002c08: ADD 00002c09: MSTORE 00002c0a: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00002c2b: PUSH1 0x44 00002c2d: DUP3 00002c2e: ADD 00002c2f: MSTORE 00002c30: PUSH11 0x6e697469616c697a696e67 00002c3c: PUSH1 0xa8 00002c3e: SHL 00002c3f: PUSH1 0x64 00002c41: DUP3 00002c42: ADD 00002c43: MSTORE 00002c44: PUSH1 0x84 00002c46: ADD 00002c47: PUSH2 0x09f8 00002c4a: JUMP 00002c4b: JUMPDEST 00002c4c: PUSH2 0x0d61 00002c4f: PUSH2 0x2e80 00002c52: JUMP 00002c53: JUMPDEST 00002c54: PUSH1 0x01 00002c56: PUSH1 0x01 00002c58: PUSH1 0xa0 00002c5a: SHL 00002c5b: SUB 00002c5c: DUP2 00002c5d: AND 00002c5e: EXTCODESIZE 00002c5f: PUSH2 0x2cd0 00002c62: JUMPI 00002c63: PUSH1 0x40 00002c65: MLOAD 00002c66: PUSH3 0x461bcd 00002c6a: PUSH1 0xe5 00002c6c: SHL 00002c6d: DUP2 00002c6e: MSTORE 00002c6f: PUSH1 0x20 00002c71: PUSH1 0x04 00002c73: DUP3 00002c74: ADD 00002c75: MSTORE 00002c76: PUSH1 0x2d 00002c78: PUSH1 0x24 00002c7a: DUP3 00002c7b: ADD 00002c7c: MSTORE 00002c7d: PUSH32 0x455243313936373a206e657720696d706c656d656e746174696f6e206973206e 00002c9e: PUSH1 0x44 00002ca0: DUP3 00002ca1: ADD 00002ca2: MSTORE 00002ca3: PUSH32 0x6f74206120636f6e747261637400000000000000000000000000000000000000 00002cc4: PUSH1 0x64 00002cc6: DUP3 00002cc7: ADD 00002cc8: MSTORE 00002cc9: PUSH1 0x84 00002ccb: ADD 00002ccc: PUSH2 0x09f8 00002ccf: JUMP 00002cd0: JUMPDEST 00002cd1: PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 00002cf2: DUP1 00002cf3: SLOAD 00002cf4: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002d09: NOT 00002d0a: AND 00002d0b: PUSH1 0x01 00002d0d: PUSH1 0x01 00002d0f: PUSH1 0xa0 00002d11: SHL 00002d12: SUB 00002d13: SWAP3 00002d14: SWAP1 00002d15: SWAP3 00002d16: AND 00002d17: SWAP2 00002d18: SWAP1 00002d19: SWAP2 00002d1a: OR 00002d1b: SWAP1 00002d1c: SSTORE 00002d1d: JUMP 00002d1e: JUMPDEST 00002d1f: PUSH2 0x2d27 00002d22: DUP4 00002d23: PUSH2 0x2eeb 00002d26: JUMP 00002d27: JUMPDEST 00002d28: PUSH1 0x00 00002d2a: DUP3 00002d2b: MLOAD 00002d2c: GT 00002d2d: DUP1 00002d2e: PUSH2 0x2d34 00002d31: JUMPI 00002d32: POP 00002d33: DUP1 00002d34: JUMPDEST 00002d35: ISZERO 00002d36: PUSH2 0x142a 00002d39: JUMPI 00002d3a: PUSH2 0x2141 00002d3d: DUP4 00002d3e: DUP4 00002d3f: PUSH2 0x2f2b 00002d42: JUMP 00002d43: JUMPDEST 00002d44: PUSH1 0x33 00002d46: SLOAD 00002d47: PUSH1 0xff 00002d49: AND 00002d4a: PUSH2 0x0d61 00002d4d: JUMPI 00002d4e: PUSH1 0x40 00002d50: MLOAD 00002d51: PUSH3 0x461bcd 00002d55: PUSH1 0xe5 00002d57: SHL 00002d58: DUP2 00002d59: MSTORE 00002d5a: PUSH1 0x20 00002d5c: PUSH1 0x04 00002d5e: DUP3 00002d5f: ADD 00002d60: MSTORE 00002d61: PUSH1 0x14 00002d63: PUSH1 0x24 00002d65: DUP3 00002d66: ADD 00002d67: MSTORE 00002d68: PUSH32 0x5061757361626c653a206e6f7420706175736564000000000000000000000000 00002d89: PUSH1 0x44 00002d8b: DUP3 00002d8c: ADD 00002d8d: MSTORE 00002d8e: PUSH1 0x64 00002d90: ADD 00002d91: PUSH2 0x09f8 00002d94: JUMP 00002d95: JUMPDEST 00002d96: PUSH1 0x00 00002d98: SLOAD 00002d99: PUSH2 0x0100 00002d9c: SWAP1 00002d9d: DIV 00002d9e: PUSH1 0xff 00002da0: AND 00002da1: PUSH2 0x2e00 00002da4: JUMPI 00002da5: PUSH1 0x40 00002da7: MLOAD 00002da8: PUSH3 0x461bcd 00002dac: PUSH1 0xe5 00002dae: SHL 00002daf: DUP2 00002db0: MSTORE 00002db1: PUSH1 0x20 00002db3: PUSH1 0x04 00002db5: DUP3 00002db6: ADD 00002db7: MSTORE 00002db8: PUSH1 0x2b 00002dba: PUSH1 0x24 00002dbc: DUP3 00002dbd: ADD 00002dbe: MSTORE 00002dbf: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00002de0: PUSH1 0x44 00002de2: DUP3 00002de3: ADD 00002de4: MSTORE 00002de5: PUSH11 0x6e697469616c697a696e67 00002df1: PUSH1 0xa8 00002df3: SHL 00002df4: PUSH1 0x64 00002df6: DUP3 00002df7: ADD 00002df8: MSTORE 00002df9: PUSH1 0x84 00002dfb: ADD 00002dfc: PUSH2 0x09f8 00002dff: JUMP 00002e00: JUMPDEST 00002e01: PUSH1 0x33 00002e03: DUP1 00002e04: SLOAD 00002e05: PUSH1 0xff 00002e07: NOT 00002e08: AND 00002e09: SWAP1 00002e0a: SSTORE 00002e0b: JUMP 00002e0c: JUMPDEST 00002e0d: PUSH1 0x00 00002e0f: SLOAD 00002e10: PUSH2 0x0100 00002e13: SWAP1 00002e14: DIV 00002e15: PUSH1 0xff 00002e17: AND 00002e18: PUSH2 0x2e77 00002e1b: JUMPI 00002e1c: PUSH1 0x40 00002e1e: MLOAD 00002e1f: PUSH3 0x461bcd 00002e23: PUSH1 0xe5 00002e25: SHL 00002e26: DUP2 00002e27: MSTORE 00002e28: PUSH1 0x20 00002e2a: PUSH1 0x04 00002e2c: DUP3 00002e2d: ADD 00002e2e: MSTORE 00002e2f: PUSH1 0x2b 00002e31: PUSH1 0x24 00002e33: DUP3 00002e34: ADD 00002e35: MSTORE 00002e36: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00002e57: PUSH1 0x44 00002e59: DUP3 00002e5a: ADD 00002e5b: MSTORE 00002e5c: PUSH11 0x6e697469616c697a696e67 00002e68: PUSH1 0xa8 00002e6a: SHL 00002e6b: PUSH1 0x64 00002e6d: DUP3 00002e6e: ADD 00002e6f: MSTORE 00002e70: PUSH1 0x84 00002e72: ADD 00002e73: PUSH2 0x09f8 00002e76: JUMP 00002e77: JUMPDEST 00002e78: PUSH2 0x0d61 00002e7b: CALLER 00002e7c: PUSH2 0x2785 00002e7f: JUMP 00002e80: JUMPDEST 00002e81: PUSH1 0x00 00002e83: SLOAD 00002e84: PUSH2 0x0100 00002e87: SWAP1 00002e88: DIV 00002e89: PUSH1 0xff 00002e8b: AND 00002e8c: PUSH2 0x2a4f 00002e8f: JUMPI 00002e90: PUSH1 0x40 00002e92: MLOAD 00002e93: PUSH3 0x461bcd 00002e97: PUSH1 0xe5 00002e99: SHL 00002e9a: DUP2 00002e9b: MSTORE 00002e9c: PUSH1 0x20 00002e9e: PUSH1 0x04 00002ea0: DUP3 00002ea1: ADD 00002ea2: MSTORE 00002ea3: PUSH1 0x2b 00002ea5: PUSH1 0x24 00002ea7: DUP3 00002ea8: ADD 00002ea9: MSTORE 00002eaa: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00002ecb: PUSH1 0x44 00002ecd: DUP3 00002ece: ADD 00002ecf: MSTORE 00002ed0: PUSH11 0x6e697469616c697a696e67 00002edc: PUSH1 0xa8 00002ede: SHL 00002edf: PUSH1 0x64 00002ee1: DUP3 00002ee2: ADD 00002ee3: MSTORE 00002ee4: PUSH1 0x84 00002ee6: ADD 00002ee7: PUSH2 0x09f8 00002eea: JUMP 00002eeb: JUMPDEST 00002eec: PUSH2 0x2ef4 00002eef: DUP2 00002ef0: PUSH2 0x2c53 00002ef3: JUMP 00002ef4: JUMPDEST 00002ef5: PUSH1 0x40 00002ef7: MLOAD 00002ef8: PUSH1 0x01 00002efa: PUSH1 0x01 00002efc: PUSH1 0xa0 00002efe: SHL 00002eff: SUB 00002f00: DUP3 00002f01: AND 00002f02: SWAP1 00002f03: PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b 00002f24: SWAP1 00002f25: PUSH1 0x00 00002f27: SWAP1 00002f28: LOG2 00002f29: POP 00002f2a: JUMP 00002f2b: JUMPDEST 00002f2c: PUSH1 0x60 00002f2e: PUSH1 0x01 00002f30: PUSH1 0x01 00002f32: PUSH1 0xa0 00002f34: SHL 00002f35: SUB 00002f36: DUP4 00002f37: AND 00002f38: EXTCODESIZE 00002f39: PUSH2 0x2faa 00002f3c: JUMPI 00002f3d: PUSH1 0x40 00002f3f: MLOAD 00002f40: PUSH3 0x461bcd 00002f44: PUSH1 0xe5 00002f46: SHL 00002f47: DUP2 00002f48: MSTORE 00002f49: PUSH1 0x20 00002f4b: PUSH1 0x04 00002f4d: DUP3 00002f4e: ADD 00002f4f: MSTORE 00002f50: PUSH1 0x26 00002f52: PUSH1 0x24 00002f54: DUP3 00002f55: ADD 00002f56: MSTORE 00002f57: PUSH32 0x416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f 00002f78: PUSH1 0x44 00002f7a: DUP3 00002f7b: ADD 00002f7c: MSTORE 00002f7d: PUSH32 0x6e74726163740000000000000000000000000000000000000000000000000000 00002f9e: PUSH1 0x64 00002fa0: DUP3 00002fa1: ADD 00002fa2: MSTORE 00002fa3: PUSH1 0x84 00002fa5: ADD 00002fa6: PUSH2 0x09f8 00002fa9: JUMP 00002faa: JUMPDEST 00002fab: PUSH1 0x00 00002fad: DUP1 00002fae: DUP5 00002faf: PUSH1 0x01 00002fb1: PUSH1 0x01 00002fb3: PUSH1 0xa0 00002fb5: SHL 00002fb6: SUB 00002fb7: AND 00002fb8: DUP5 00002fb9: PUSH1 0x40 00002fbb: MLOAD 00002fbc: PUSH2 0x2fc5 00002fbf: SWAP2 00002fc0: SWAP1 00002fc1: PUSH2 0x3503 00002fc4: JUMP 00002fc5: JUMPDEST 00002fc6: PUSH1 0x00 00002fc8: PUSH1 0x40 00002fca: MLOAD 00002fcb: DUP1 00002fcc: DUP4 00002fcd: SUB 00002fce: DUP2 00002fcf: DUP6 00002fd0: GAS 00002fd1: DELEGATECALL 00002fd2: SWAP2 00002fd3: POP 00002fd4: POP 00002fd5: RETURNDATASIZE 00002fd6: DUP1 00002fd7: PUSH1 0x00 00002fd9: DUP2 00002fda: EQ 00002fdb: PUSH2 0x3000 00002fde: JUMPI 00002fdf: PUSH1 0x40 00002fe1: MLOAD 00002fe2: SWAP2 00002fe3: POP 00002fe4: PUSH1 0x1f 00002fe6: NOT 00002fe7: PUSH1 0x3f 00002fe9: RETURNDATASIZE 00002fea: ADD 00002feb: AND 00002fec: DUP3 00002fed: ADD 00002fee: PUSH1 0x40 00002ff0: MSTORE 00002ff1: RETURNDATASIZE 00002ff2: DUP3 00002ff3: MSTORE 00002ff4: RETURNDATASIZE 00002ff5: PUSH1 0x00 00002ff7: PUSH1 0x20 00002ff9: DUP5 00002ffa: ADD 00002ffb: RETURNDATACOPY 00002ffc: PUSH2 0x3005 00002fff: JUMP 00003000: JUMPDEST 00003001: PUSH1 0x60 00003003: SWAP2 00003004: POP 00003005: JUMPDEST 00003006: POP 00003007: SWAP2 00003008: POP 00003009: SWAP2 0000300a: POP 0000300b: PUSH2 0x302d 0000300e: DUP3 0000300f: DUP3 00003010: PUSH1 0x40 00003012: MLOAD 00003013: DUP1 00003014: PUSH1 0x60 00003016: ADD 00003017: PUSH1 0x40 00003019: MSTORE 0000301a: DUP1 0000301b: PUSH1 0x27 0000301d: DUP2 0000301e: MSTORE 0000301f: PUSH1 0x20 00003021: ADD 00003022: PUSH2 0x3553 00003025: PUSH1 0x27 00003027: SWAP2 00003028: CODECOPY 00003029: PUSH2 0x3036 0000302c: JUMP 0000302d: JUMPDEST 0000302e: SWAP6 0000302f: SWAP5 00003030: POP 00003031: POP 00003032: POP 00003033: POP 00003034: POP 00003035: JUMP 00003036: JUMPDEST 00003037: PUSH1 0x60 00003039: DUP4 0000303a: ISZERO 0000303b: PUSH2 0x3045 0000303e: JUMPI 0000303f: POP 00003040: DUP2 00003041: PUSH2 0x304f 00003044: JUMP 00003045: JUMPDEST 00003046: PUSH2 0x304f 00003049: DUP4 0000304a: DUP4 0000304b: PUSH2 0x3056 0000304e: JUMP 0000304f: JUMPDEST 00003050: SWAP4 00003051: SWAP3 00003052: POP 00003053: POP 00003054: POP 00003055: JUMP 00003056: JUMPDEST 00003057: DUP2 00003058: MLOAD 00003059: ISZERO 0000305a: PUSH2 0x3066 0000305d: JUMPI 0000305e: DUP2 0000305f: MLOAD 00003060: DUP1 00003061: DUP4 00003062: PUSH1 0x20 00003064: ADD 00003065: REVERT 00003066: JUMPDEST 00003067: DUP1 00003068: PUSH1 0x40 0000306a: MLOAD 0000306b: PUSH3 0x461bcd 0000306f: PUSH1 0xe5 00003071: SHL 00003072: DUP2 00003073: MSTORE 00003074: PUSH1 0x04 00003076: ADD 00003077: PUSH2 0x09f8 0000307a: SWAP2 0000307b: SWAP1 0000307c: PUSH2 0x351f 0000307f: JUMP 00003080: JUMPDEST 00003081: DUP1 00003082: CALLDATALOAD 00003083: PUSH1 0x01 00003085: PUSH1 0x01 00003087: PUSH1 0x80 00003089: SHL 0000308a: SUB 0000308b: DUP2 0000308c: AND 0000308d: DUP2 0000308e: EQ 0000308f: PUSH2 0x3097 00003092: JUMPI 00003093: PUSH1 0x00 00003095: DUP1 00003096: REVERT 00003097: JUMPDEST 00003098: SWAP2 00003099: SWAP1 0000309a: POP 0000309b: JUMP 0000309c: JUMPDEST 0000309d: PUSH1 0x00 0000309f: PUSH1 0x20 000030a1: DUP3 000030a2: DUP5 000030a3: SUB 000030a4: SLT 000030a5: ISZERO 000030a6: PUSH2 0x30ae 000030a9: JUMPI 000030aa: PUSH1 0x00 000030ac: DUP1 000030ad: REVERT 000030ae: JUMPDEST 000030af: PUSH2 0x304f 000030b2: DUP3 000030b3: PUSH2 0x3080 000030b6: JUMP 000030b7: JUMPDEST 000030b8: DUP1 000030b9: CALLDATALOAD 000030ba: PUSH1 0x01 000030bc: PUSH1 0x01 000030be: PUSH1 0xa0 000030c0: SHL 000030c1: SUB 000030c2: DUP2 000030c3: AND 000030c4: DUP2 000030c5: EQ 000030c6: PUSH2 0x3097 000030c9: JUMPI 000030ca: PUSH1 0x00 000030cc: DUP1 000030cd: REVERT 000030ce: JUMPDEST 000030cf: PUSH1 0x00 000030d1: PUSH1 0x20 000030d3: DUP3 000030d4: DUP5 000030d5: SUB 000030d6: SLT 000030d7: ISZERO 000030d8: PUSH2 0x30e0 000030db: JUMPI 000030dc: PUSH1 0x00 000030de: DUP1 000030df: REVERT 000030e0: JUMPDEST 000030e1: PUSH2 0x304f 000030e4: DUP3 000030e5: PUSH2 0x30b7 000030e8: JUMP 000030e9: JUMPDEST 000030ea: PUSH1 0x00 000030ec: PUSH1 0x20 000030ee: DUP3 000030ef: DUP5 000030f0: SUB 000030f1: SLT 000030f2: ISZERO 000030f3: PUSH2 0x30fb 000030f6: JUMPI 000030f7: PUSH1 0x00 000030f9: DUP1 000030fa: REVERT 000030fb: JUMPDEST 000030fc: POP 000030fd: CALLDATALOAD 000030fe: SWAP2 000030ff: SWAP1 00003100: POP 00003101: JUMP 00003102: JUMPDEST 00003103: PUSH4 0x4e487b71 00003108: PUSH1 0xe0 0000310a: SHL 0000310b: PUSH1 0x00 0000310d: MSTORE 0000310e: PUSH1 0x41 00003110: PUSH1 0x04 00003112: MSTORE 00003113: PUSH1 0x24 00003115: PUSH1 0x00 00003117: REVERT 00003118: JUMPDEST 00003119: PUSH1 0x00 0000311b: DUP1 0000311c: PUSH1 0x40 0000311e: DUP4 0000311f: DUP6 00003120: SUB 00003121: SLT 00003122: ISZERO 00003123: PUSH2 0x312b 00003126: JUMPI 00003127: PUSH1 0x00 00003129: DUP1 0000312a: REVERT 0000312b: JUMPDEST 0000312c: PUSH2 0x3134 0000312f: DUP4 00003130: PUSH2 0x30b7 00003133: JUMP 00003134: JUMPDEST 00003135: SWAP2 00003136: POP 00003137: PUSH1 0x20 00003139: DUP4 0000313a: ADD 0000313b: CALLDATALOAD 0000313c: PUSH8 0xffffffffffffffff 00003145: DUP1 00003146: DUP3 00003147: GT 00003148: ISZERO 00003149: PUSH2 0x3151 0000314c: JUMPI 0000314d: PUSH1 0x00 0000314f: DUP1 00003150: REVERT 00003151: JUMPDEST 00003152: DUP2 00003153: DUP6 00003154: ADD 00003155: SWAP2 00003156: POP 00003157: DUP6 00003158: PUSH1 0x1f 0000315a: DUP4 0000315b: ADD 0000315c: SLT 0000315d: PUSH2 0x3165 00003160: JUMPI 00003161: PUSH1 0x00 00003163: DUP1 00003164: REVERT 00003165: JUMPDEST 00003166: DUP2 00003167: CALLDATALOAD 00003168: DUP2 00003169: DUP2 0000316a: GT 0000316b: ISZERO 0000316c: PUSH2 0x3177 0000316f: JUMPI 00003170: PUSH2 0x3177 00003173: PUSH2 0x3102 00003176: JUMP 00003177: JUMPDEST 00003178: PUSH1 0x40 0000317a: MLOAD 0000317b: PUSH1 0x1f 0000317d: DUP3 0000317e: ADD 0000317f: PUSH1 0x1f 00003181: NOT 00003182: SWAP1 00003183: DUP2 00003184: AND 00003185: PUSH1 0x3f 00003187: ADD 00003188: AND 00003189: DUP2 0000318a: ADD 0000318b: SWAP1 0000318c: DUP4 0000318d: DUP3 0000318e: GT 0000318f: DUP2 00003190: DUP4 00003191: LT 00003192: OR 00003193: ISZERO 00003194: PUSH2 0x319f 00003197: JUMPI 00003198: PUSH2 0x319f 0000319b: PUSH2 0x3102 0000319e: JUMP 0000319f: JUMPDEST 000031a0: DUP2 000031a1: PUSH1 0x40 000031a3: MSTORE 000031a4: DUP3 000031a5: DUP2 000031a6: MSTORE 000031a7: DUP9 000031a8: PUSH1 0x20 000031aa: DUP5 000031ab: DUP8 000031ac: ADD 000031ad: ADD 000031ae: GT 000031af: ISZERO 000031b0: PUSH2 0x31b8 000031b3: JUMPI 000031b4: PUSH1 0x00 000031b6: DUP1 000031b7: REVERT 000031b8: JUMPDEST 000031b9: DUP3 000031ba: PUSH1 0x20 000031bc: DUP7 000031bd: ADD 000031be: PUSH1 0x20 000031c0: DUP4 000031c1: ADD 000031c2: CALLDATACOPY 000031c3: PUSH1 0x00 000031c5: PUSH1 0x20 000031c7: DUP5 000031c8: DUP4 000031c9: ADD 000031ca: ADD 000031cb: MSTORE 000031cc: DUP1 000031cd: SWAP6 000031ce: POP 000031cf: POP 000031d0: POP 000031d1: POP 000031d2: POP 000031d3: POP 000031d4: SWAP3 000031d5: POP 000031d6: SWAP3 000031d7: SWAP1 000031d8: POP 000031d9: JUMP 000031da: JUMPDEST 000031db: DUP1 000031dc: ISZERO 000031dd: ISZERO 000031de: DUP2 000031df: EQ 000031e0: PUSH2 0x0bc7 000031e3: JUMPI 000031e4: PUSH1 0x00 000031e6: DUP1 000031e7: REVERT 000031e8: JUMPDEST 000031e9: PUSH1 0x00 000031eb: DUP1 000031ec: PUSH1 0x40 000031ee: DUP4 000031ef: DUP6 000031f0: SUB 000031f1: SLT 000031f2: ISZERO 000031f3: PUSH2 0x31fb 000031f6: JUMPI 000031f7: PUSH1 0x00 000031f9: DUP1 000031fa: REVERT 000031fb: JUMPDEST 000031fc: PUSH2 0x3204 000031ff: DUP4 00003200: PUSH2 0x30b7 00003203: JUMP 00003204: JUMPDEST 00003205: SWAP2 00003206: POP 00003207: PUSH1 0x20 00003209: DUP4 0000320a: ADD 0000320b: CALLDATALOAD 0000320c: PUSH2 0x3214 0000320f: DUP2 00003210: PUSH2 0x31da 00003213: JUMP 00003214: JUMPDEST 00003215: DUP1 00003216: SWAP2 00003217: POP 00003218: POP 00003219: SWAP3 0000321a: POP 0000321b: SWAP3 0000321c: SWAP1 0000321d: POP 0000321e: JUMP 0000321f: JUMPDEST 00003220: PUSH8 0xffffffffffffffff 00003229: DUP2 0000322a: AND 0000322b: DUP2 0000322c: EQ 0000322d: PUSH2 0x0bc7 00003230: JUMPI 00003231: PUSH1 0x00 00003233: DUP1 00003234: REVERT 00003235: JUMPDEST 00003236: PUSH1 0x00 00003238: PUSH1 0x20 0000323a: DUP3 0000323b: DUP5 0000323c: SUB 0000323d: SLT 0000323e: ISZERO 0000323f: PUSH2 0x3247 00003242: JUMPI 00003243: PUSH1 0x00 00003245: DUP1 00003246: REVERT 00003247: JUMPDEST 00003248: DUP2 00003249: CALLDATALOAD 0000324a: PUSH2 0x304f 0000324d: DUP2 0000324e: PUSH2 0x321f 00003251: JUMP 00003252: JUMPDEST 00003253: PUSH1 0x00 00003255: DUP1 00003256: PUSH1 0x00 00003258: DUP1 00003259: PUSH1 0x80 0000325b: DUP6 0000325c: DUP8 0000325d: SUB 0000325e: SLT 0000325f: ISZERO 00003260: PUSH2 0x3268 00003263: JUMPI 00003264: PUSH1 0x00 00003266: DUP1 00003267: REVERT 00003268: JUMPDEST 00003269: PUSH2 0x3271 0000326c: DUP6 0000326d: PUSH2 0x30b7 00003270: JUMP 00003271: JUMPDEST 00003272: SWAP4 00003273: POP 00003274: PUSH2 0x327f 00003277: PUSH1 0x20 00003279: DUP7 0000327a: ADD 0000327b: PUSH2 0x3080 0000327e: JUMP 0000327f: JUMPDEST 00003280: SWAP3 00003281: POP 00003282: PUSH2 0x328d 00003285: PUSH1 0x40 00003287: DUP7 00003288: ADD 00003289: PUSH2 0x30b7 0000328c: JUMP 0000328d: JUMPDEST 0000328e: SWAP2 0000328f: POP 00003290: PUSH2 0x329b 00003293: PUSH1 0x60 00003295: DUP7 00003296: ADD 00003297: PUSH2 0x30b7 0000329a: JUMP 0000329b: JUMPDEST 0000329c: SWAP1 0000329d: POP 0000329e: SWAP3 0000329f: SWAP6 000032a0: SWAP2 000032a1: SWAP5 000032a2: POP 000032a3: SWAP3 000032a4: POP 000032a5: JUMP 000032a6: JUMPDEST 000032a7: PUSH1 0x00 000032a9: DUP1 000032aa: PUSH1 0x20 000032ac: DUP4 000032ad: DUP6 000032ae: SUB 000032af: SLT 000032b0: ISZERO 000032b1: PUSH2 0x32b9 000032b4: JUMPI 000032b5: PUSH1 0x00 000032b7: DUP1 000032b8: REVERT 000032b9: JUMPDEST 000032ba: DUP3 000032bb: CALLDATALOAD 000032bc: PUSH8 0xffffffffffffffff 000032c5: DUP1 000032c6: DUP3 000032c7: GT 000032c8: ISZERO 000032c9: PUSH2 0x32d1 000032cc: JUMPI 000032cd: PUSH1 0x00 000032cf: DUP1 000032d0: REVERT 000032d1: JUMPDEST 000032d2: DUP2 000032d3: DUP6 000032d4: ADD 000032d5: SWAP2 000032d6: POP 000032d7: DUP6 000032d8: PUSH1 0x1f 000032da: DUP4 000032db: ADD 000032dc: SLT 000032dd: PUSH2 0x32e5 000032e0: JUMPI 000032e1: PUSH1 0x00 000032e3: DUP1 000032e4: REVERT 000032e5: JUMPDEST 000032e6: DUP2 000032e7: CALLDATALOAD 000032e8: DUP2 000032e9: DUP2 000032ea: GT 000032eb: ISZERO 000032ec: PUSH2 0x32f4 000032ef: JUMPI 000032f0: PUSH1 0x00 000032f2: DUP1 000032f3: REVERT 000032f4: JUMPDEST 000032f5: DUP7 000032f6: PUSH1 0x20 000032f8: DUP3 000032f9: PUSH1 0x05 000032fb: SHL 000032fc: DUP6 000032fd: ADD 000032fe: ADD 000032ff: GT 00003300: ISZERO 00003301: PUSH2 0x3309 00003304: JUMPI 00003305: PUSH1 0x00 00003307: DUP1 00003308: REVERT 00003309: JUMPDEST 0000330a: PUSH1 0x20 0000330c: SWAP3 0000330d: SWAP1 0000330e: SWAP3 0000330f: ADD 00003310: SWAP7 00003311: SWAP2 00003312: SWAP6 00003313: POP 00003314: SWAP1 00003315: SWAP4 00003316: POP 00003317: POP 00003318: POP 00003319: POP 0000331a: JUMP 0000331b: JUMPDEST 0000331c: PUSH1 0x00 0000331e: DUP1 0000331f: PUSH1 0x40 00003321: DUP4 00003322: DUP6 00003323: SUB 00003324: SLT 00003325: ISZERO 00003326: PUSH2 0x332e 00003329: JUMPI 0000332a: PUSH1 0x00 0000332c: DUP1 0000332d: REVERT 0000332e: JUMPDEST 0000332f: POP 00003330: POP 00003331: DUP1 00003332: CALLDATALOAD 00003333: SWAP3 00003334: PUSH1 0x20 00003336: SWAP1 00003337: SWAP2 00003338: ADD 00003339: CALLDATALOAD 0000333a: SWAP2 0000333b: POP 0000333c: JUMP 0000333d: JUMPDEST 0000333e: PUSH1 0x00 00003340: DUP2 00003341: MLOAD 00003342: DUP1 00003343: DUP5 00003344: MSTORE 00003345: PUSH1 0x20 00003347: DUP1 00003348: DUP6 00003349: ADD 0000334a: SWAP5 0000334b: POP 0000334c: DUP1 0000334d: DUP5 0000334e: ADD 0000334f: PUSH1 0x00 00003351: JUMPDEST 00003352: DUP4 00003353: DUP2 00003354: LT 00003355: ISZERO 00003356: PUSH2 0x336d 00003359: JUMPI 0000335a: DUP2 0000335b: MLOAD 0000335c: DUP8 0000335d: MSTORE 0000335e: SWAP6 0000335f: DUP3 00003360: ADD 00003361: SWAP6 00003362: SWAP1 00003363: DUP3 00003364: ADD 00003365: SWAP1 00003366: PUSH1 0x01 00003368: ADD 00003369: PUSH2 0x3351 0000336c: JUMP 0000336d: JUMPDEST 0000336e: POP 0000336f: SWAP5 00003370: SWAP6 00003371: SWAP5 00003372: POP 00003373: POP 00003374: POP 00003375: POP 00003376: POP 00003377: JUMP 00003378: JUMPDEST 00003379: PUSH1 0x20 0000337b: DUP2 0000337c: MSTORE 0000337d: PUSH1 0x00 0000337f: PUSH2 0x304f 00003382: PUSH1 0x20 00003384: DUP4 00003385: ADD 00003386: DUP5 00003387: PUSH2 0x333d 0000338a: JUMP 0000338b: JUMPDEST 0000338c: PUSH4 0x4e487b71 00003391: PUSH1 0xe0 00003393: SHL 00003394: PUSH1 0x00 00003396: MSTORE 00003397: PUSH1 0x11 00003399: PUSH1 0x04 0000339b: MSTORE 0000339c: PUSH1 0x24 0000339e: PUSH1 0x00 000033a0: REVERT 000033a1: JUMPDEST 000033a2: PUSH1 0x00 000033a4: PUSH1 0x00 000033a6: NOT 000033a7: DUP3 000033a8: SUB 000033a9: PUSH2 0x33b4 000033ac: JUMPI 000033ad: PUSH2 0x33b4 000033b0: PUSH2 0x338b 000033b3: JUMP 000033b4: JUMPDEST 000033b5: POP 000033b6: PUSH1 0x01 000033b8: ADD 000033b9: SWAP1 000033ba: JUMP 000033bb: JUMPDEST 000033bc: PUSH4 0x4e487b71 000033c1: PUSH1 0xe0 000033c3: SHL 000033c4: PUSH1 0x00 000033c6: MSTORE 000033c7: PUSH1 0x32 000033c9: PUSH1 0x04 000033cb: MSTORE 000033cc: PUSH1 0x24 000033ce: PUSH1 0x00 000033d0: REVERT 000033d1: JUMPDEST 000033d2: PUSH1 0x00 000033d4: PUSH1 0x20 000033d6: DUP3 000033d7: DUP5 000033d8: SUB 000033d9: SLT 000033da: ISZERO 000033db: PUSH2 0x33e3 000033de: JUMPI 000033df: PUSH1 0x00 000033e1: DUP1 000033e2: REVERT 000033e3: JUMPDEST 000033e4: DUP2 000033e5: MLOAD 000033e6: PUSH2 0x304f 000033e9: DUP2 000033ea: PUSH2 0x31da 000033ed: JUMP 000033ee: JUMPDEST 000033ef: PUSH1 0x00 000033f1: DUP2 000033f2: PUSH1 0x00 000033f4: NOT 000033f5: DIV 000033f6: DUP4 000033f7: GT 000033f8: DUP3 000033f9: ISZERO 000033fa: ISZERO 000033fb: AND 000033fc: ISZERO 000033fd: PUSH2 0x3408 00003400: JUMPI 00003401: PUSH2 0x3408 00003404: PUSH2 0x338b 00003407: JUMP 00003408: JUMPDEST 00003409: POP 0000340a: MUL 0000340b: SWAP1 0000340c: JUMP 0000340d: JUMPDEST 0000340e: PUSH1 0x00 00003410: PUSH1 0x20 00003412: DUP3 00003413: DUP5 00003414: SUB 00003415: SLT 00003416: ISZERO 00003417: PUSH2 0x341f 0000341a: JUMPI 0000341b: PUSH1 0x00 0000341d: DUP1 0000341e: REVERT 0000341f: JUMPDEST 00003420: DUP2 00003421: MLOAD 00003422: PUSH2 0x304f 00003425: DUP2 00003426: PUSH2 0x321f 00003429: JUMP 0000342a: JUMPDEST 0000342b: PUSH1 0x00 0000342d: DUP3 0000342e: NOT 0000342f: DUP3 00003430: GT 00003431: ISZERO 00003432: PUSH2 0x343d 00003435: JUMPI 00003436: PUSH2 0x343d 00003439: PUSH2 0x338b 0000343c: JUMP 0000343d: JUMPDEST 0000343e: POP 0000343f: ADD 00003440: SWAP1 00003441: JUMP 00003442: JUMPDEST 00003443: DUP4 00003444: DUP2 00003445: MSTORE 00003446: PUSH1 0x00 00003448: PUSH1 0x20 0000344a: PUSH1 0x60 0000344c: DUP2 0000344d: DUP5 0000344e: ADD 0000344f: MSTORE 00003450: PUSH2 0x345c 00003453: PUSH1 0x60 00003455: DUP5 00003456: ADD 00003457: DUP7 00003458: PUSH2 0x333d 0000345b: JUMP 0000345c: JUMPDEST 0000345d: DUP4 0000345e: DUP2 0000345f: SUB 00003460: PUSH1 0x40 00003462: DUP6 00003463: ADD 00003464: MSTORE 00003465: DUP5 00003466: MLOAD 00003467: DUP1 00003468: DUP3 00003469: MSTORE 0000346a: DUP3 0000346b: DUP7 0000346c: ADD 0000346d: SWAP2 0000346e: DUP4 0000346f: ADD 00003470: SWAP1 00003471: PUSH1 0x00 00003473: JUMPDEST 00003474: DUP2 00003475: DUP2 00003476: LT 00003477: ISZERO 00003478: PUSH2 0x3499 0000347b: JUMPI 0000347c: DUP4 0000347d: MLOAD 0000347e: PUSH8 0xffffffffffffffff 00003487: AND 00003488: DUP4 00003489: MSTORE 0000348a: SWAP3 0000348b: DUP5 0000348c: ADD 0000348d: SWAP3 0000348e: SWAP2 0000348f: DUP5 00003490: ADD 00003491: SWAP2 00003492: PUSH1 0x01 00003494: ADD 00003495: PUSH2 0x3473 00003498: JUMP 00003499: JUMPDEST 0000349a: POP 0000349b: SWAP1 0000349c: SWAP9 0000349d: SWAP8 0000349e: POP 0000349f: POP 000034a0: POP 000034a1: POP 000034a2: POP 000034a3: POP 000034a4: POP 000034a5: POP 000034a6: JUMP 000034a7: JUMPDEST 000034a8: PUSH1 0x00 000034aa: DUP2 000034ab: PUSH2 0x34b6 000034ae: JUMPI 000034af: PUSH2 0x34b6 000034b2: PUSH2 0x338b 000034b5: JUMP 000034b6: JUMPDEST 000034b7: POP 000034b8: PUSH1 0x00 000034ba: NOT 000034bb: ADD 000034bc: SWAP1 000034bd: JUMP 000034be: JUMPDEST 000034bf: PUSH1 0x00 000034c1: PUSH1 0x20 000034c3: DUP3 000034c4: DUP5 000034c5: SUB 000034c6: SLT 000034c7: ISZERO 000034c8: PUSH2 0x34d0 000034cb: JUMPI 000034cc: PUSH1 0x00 000034ce: DUP1 000034cf: REVERT 000034d0: JUMPDEST 000034d1: POP 000034d2: MLOAD 000034d3: SWAP2 000034d4: SWAP1 000034d5: POP 000034d6: JUMP 000034d7: JUMPDEST 000034d8: PUSH1 0x00 000034da: JUMPDEST 000034db: DUP4 000034dc: DUP2 000034dd: LT 000034de: ISZERO 000034df: PUSH2 0x34f2 000034e2: JUMPI 000034e3: DUP2 000034e4: DUP2 000034e5: ADD 000034e6: MLOAD 000034e7: DUP4 000034e8: DUP3 000034e9: ADD 000034ea: MSTORE 000034eb: PUSH1 0x20 000034ed: ADD 000034ee: PUSH2 0x34da 000034f1: JUMP 000034f2: JUMPDEST 000034f3: DUP4 000034f4: DUP2 000034f5: GT 000034f6: ISZERO 000034f7: PUSH2 0x2141 000034fa: JUMPI 000034fb: POP 000034fc: POP 000034fd: PUSH1 0x00 000034ff: SWAP2 00003500: ADD 00003501: MSTORE 00003502: JUMP 00003503: JUMPDEST 00003504: PUSH1 0x00 00003506: DUP3 00003507: MLOAD 00003508: PUSH2 0x3515 0000350b: DUP2 0000350c: DUP5 0000350d: PUSH1 0x20 0000350f: DUP8 00003510: ADD 00003511: PUSH2 0x34d7 00003514: JUMP 00003515: JUMPDEST 00003516: SWAP2 00003517: SWAP1 00003518: SWAP2 00003519: ADD 0000351a: SWAP3 0000351b: SWAP2 0000351c: POP 0000351d: POP 0000351e: JUMP 0000351f: JUMPDEST 00003520: PUSH1 0x20 00003522: DUP2 00003523: MSTORE 00003524: PUSH1 0x00 00003526: DUP3 00003527: MLOAD 00003528: DUP1 00003529: PUSH1 0x20 0000352b: DUP5 0000352c: ADD 0000352d: MSTORE 0000352e: PUSH2 0x353e 00003531: DUP2 00003532: PUSH1 0x40 00003534: DUP6 00003535: ADD 00003536: PUSH1 0x20 00003538: DUP8 00003539: ADD 0000353a: PUSH2 0x34d7 0000353d: JUMP 0000353e: JUMPDEST 0000353f: PUSH1 0x1f 00003541: ADD 00003542: PUSH1 0x1f 00003544: NOT 00003545: AND 00003546: SWAP2 00003547: SWAP1 00003548: SWAP2 00003549: ADD 0000354a: PUSH1 0x40 0000354c: ADD 0000354d: SWAP3 0000354e: SWAP2 0000354f: POP 00003550: POP 00003551: JUMP 00003552: INVALID 00003553: COINBASE 00003554: PUSH5 0x6472657373 0000355a: GASPRICE 0000355b: KECCAK256 0000355c: PUSH13 0x6f772d6c6576656c2064656c65 0000356a: PUSH8 0x6174652063616c6c 00003573: KECCAK256 00003574: PUSH7 0x61696c6564a264 0000357c: PUSH10 0x70667358221220a222f6 00003587: UNKNOWN(0x4D) 00003588: SWAP4 00003589: MSTORE 0000358a: UNKNOWN(0xB9) 0000358b: UNKNOWN(0x4E) 0000358c: UNKNOWN(0xD8) 0000358d: EXP 0000358e: DUP12 0000358f: DUP5 00003590: UNKNOWN(0xCD) 00003591: MULMOD 00003592: LOG2 00003593: UNKNOWN(0xCA) 00003594: UNKNOWN(0xC4) 00003595: SWAP12 00003596: SWAP14 00003597: UNKNOWN(0x2A) 00003598: PUSH31
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| critical | upgradeability | detector | Untrusted DELEGATECALL target reachable | 70 | no | no |
viewtrace_id: 0x7f4211765336938bb3d633f6358cc38b4ee618a277c73c332d7c8564274eea98
validation_json{
"sink": "DELEGATECALL",
"errors": 0,
"status": "unknown",
"attempts": 192,
"trace_id": "0x7f4211765336938bb3d633f6358cc38b4ee618a277c73c332d7c8564274eea98",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": null,
"matched_probe": null,
"target_varies": null,
"classification": "no_sink"
}
witness_json{
"notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
"constraints": [],
"entrypoints": [
{
"calldata": "0xe30f7c4f",
"selector": "0xe30f7c4f",
"calldata_variants": [
"0xe30f7c4f",
"0xe30f7c4f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffacef08",
"selector": "0xffacef08",
"calldata_variants": [
"0xffacef08",
"0xffacef080000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdbdcedd2",
"selector": "0xdbdcedd2",
"calldata_variants": [
"0xdbdcedd2",
"0xdbdcedd20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdfd269de",
"selector": "0xdfd269de",
"calldata_variants": [
"0xdfd269de",
"0xdfd269de0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe1ce002f",
"selector": "0xe1ce002f",
"calldata_variants": [
"0xe1ce002f",
"0xe1ce002f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcdfb2b4e",
"selector": "0xcdfb2b4e",
"calldata_variants": [
"0xcdfb2b4e",
"0xcdfb2b4e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd4e01f71",
"selector": "0xd4e01f71",
"calldata_variants": [
"0xd4e01f71",
"0xd4e01f710000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 12241,
"opcode": "DELEGATECALL",
"returndata_checked": null,
"value_expression_category": "n/a",
"target_expression_category": "computed"
}
],
"guards_detected": [],
"delegatecall_count": 1,
"untrusted_delegatecall_count": 1
}
|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xdf8ba5afd756577184514f4f40b3aa36f1ff685d8973e6d67ac661bc78a97548
call_targets:
0x68fe80c6e97e0c8613e2fed344358c6635ba5366
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xdf8ba5afd756577184514f4f40b3aa36f1ff685d8973e6d67ac661bc78a97548",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x68fe80c6e97e0c8613e2fed344358c6635ba5366"
],
"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": "0xe30f7c4f",
"selector": "0xe30f7c4f",
"calldata_variants": [
"0xe30f7c4f",
"0xe30f7c4f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffacef08",
"selector": "0xffacef08",
"calldata_variants": [
"0xffacef08",
"0xffacef080000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdbdcedd2",
"selector": "0xdbdcedd2",
"calldata_variants": [
"0xdbdcedd2",
"0xdbdcedd20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdfd269de",
"selector": "0xdfd269de",
"calldata_variants": [
"0xdfd269de",
"0xdfd269de0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe1ce002f",
"selector": "0xe1ce002f",
"calldata_variants": [
"0xe1ce002f",
"0xe1ce002f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcdfb2b4e",
"selector": "0xcdfb2b4e",
"calldata_variants": [
"0xcdfb2b4e",
"0xcdfb2b4e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd4e01f71",
"selector": "0xd4e01f71",
"calldata_variants": [
"0xd4e01f71",
"0xd4e01f710000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5333,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6837,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "constant",
"target_expression_category": "storage-derived"
},
{
"pc": 8379,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 4,
"guards_detected": [],
"untrusted_call_count": 4
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xdf8ba5afd756577184514f4f40b3aa36f1ff685d8973e6d67ac661bc78a97548
call_targets:
0x68fe80c6e97e0c8613e2fed344358c6635ba5366
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xdf8ba5afd756577184514f4f40b3aa36f1ff685d8973e6d67ac661bc78a97548",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x68fe80c6e97e0c8613e2fed344358c6635ba5366"
],
"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": "0xe30f7c4f",
"selector": "0xe30f7c4f",
"calldata_variants": [
"0xe30f7c4f",
"0xe30f7c4f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xffacef08",
"selector": "0xffacef08",
"calldata_variants": [
"0xffacef08",
"0xffacef080000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdbdcedd2",
"selector": "0xdbdcedd2",
"calldata_variants": [
"0xdbdcedd2",
"0xdbdcedd20000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdfd269de",
"selector": "0xdfd269de",
"calldata_variants": [
"0xdfd269de",
"0xdfd269de0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe1ce002f",
"selector": "0xe1ce002f",
"calldata_variants": [
"0xe1ce002f",
"0xe1ce002f0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xcdfb2b4e",
"selector": "0xcdfb2b4e",
"calldata_variants": [
"0xcdfb2b4e",
"0xcdfb2b4e0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd4e01f71",
"selector": "0xd4e01f71",
"calldata_variants": [
"0xd4e01f71",
"0xd4e01f710000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 5333,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 6837,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "constant",
"target_expression_category": "storage-derived"
},
{
"pc": 8379,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 4,
"guards_detected": []
}
|
| medium | access_control | codex | BNFT cancel path refunds caller without local ownership checks | 75 | no | — |
viewevidence_json{
"evidence": "batchCancelDeposit is externally callable and unconditionally refunds msg.sender based on validator phases, with no local ownership verification.",
"locations": [
"src/LiquidityPool.sol:361",
"src/LiquidityPool.sol:367",
"src/LiquidityPool.sol:377",
"src/LiquidityPool.sol:379",
"src/LiquidityPool.sol:382"
],
"recommendation": "Enforce ownership or BNFT-holder authorization in LiquidityPool before issuing refunds (e.g., track validatorId -> BNFT holder and require match), or require an explicit success/authorization signal from StakingManager before sending ETH.",
"exploit_scenario": "Any caller can invoke batchCancelDeposit with arbitrary validator IDs. If StakingManager does not strictly enforce ownership (or is upgraded with relaxed checks), an attacker could cancel other BNFT deposits and receive 1\u20132 ETH refunds per validator to their own address."
}
|
| medium | upgradeability | cast | DELEGATECALL present | 80 | no | — |
viewevidence_json{
"notes": "delegatecall enables execution in caller context; common in proxies/upgradeable patterns",
"delegatecall_count": 1
}
|
| medium | other | codex | Unchecked eETH.transferFrom can mint withdrawal requests without locking funds | 75 | no | — |
viewevidence_json{
"evidence": "requestWithdraw and requestMembershipNFTWithdraw call eETH.transferFrom without checking its return value after minting the withdrawal request.",
"locations": [
"src/LiquidityPool.sol:201",
"src/LiquidityPool.sol:205",
"src/LiquidityPool.sol:207",
"src/LiquidityPool.sol:235",
"src/LiquidityPool.sol:240",
"src/LiquidityPool.sol:242"
],
"recommendation": "Use SafeERC20 and require transferFrom to succeed, or move the token transfer before minting the WithdrawRequestNFT and explicitly check the return value. Consider reverting if _amount > _permit.value in requestWithdrawWithPermit.",
"exploit_scenario": "If eETH.transferFrom returns false (non-standard ERC20 behavior or future upgrade), requestWithdraw/requestMembershipNFTWithdraw will still mint a WithdrawRequestNFT. The caller can later claim ETH without actually transferring/burning eETH, draining LP liquidity."
}
|
| low | access_control | codex | Scheduling edge case lets index-0 BNFT holder bypass validator spin-up limits | 65 | no | — |
viewevidence_json{
"evidence": "dutyForWeek returns (0,0) on low counts, and batchDepositAsBnftHolder doesn\u2019t enforce numValidatorsToSpinUp or cap _numberOfValidators against it.",
"locations": [
"src/LiquidityPool.sol:446",
"src/LiquidityPool.sol:449",
"src/LiquidityPool.sol:257",
"src/LiquidityPool.sol:258",
"src/LiquidityPool.sol:268"
],
"recommendation": "Handle the < maxValidatorsPerOwner case explicitly (e.g., set size=1 and cap _numberOfValidators by numValidatorsToSpinUp), or revert when numValidatorsToSpinUp is 0 to prevent unauthorized deposits.",
"exploit_scenario": "When numValidatorsToSpinUp < maxValidatorsPerOwner (or ==0), dutyForWeek returns (0,0). That makes only index-0 BNFT holder \u2018assigned\u2019, letting them call batchDepositAsBnftHolder with up to maxValidatorsPerOwner validators even when the admin intended none or fewer to spin up."
}
|