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

Analysis Run

1d8ee4e7-546b-49b6-a785-21b6dbd061e5

failed
Chain ID
1
Address
Block Number
Created
Tue, Dec 30, 2025 7:18 PM
Review Summary

What survived the funnel

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

Confirmed
0
Validated
0
Source
Verified
Review Backing
Present
Best current signal
Authorization based on tx.origin
crit 0 high 0 proxy context implementation known
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30731 report.consolidate complete 1 / 1 3 months ago
75382 artifact.fetch failed 1 / 3 1 week ago
75383 tool.cast_disasm complete 1 / 3 1 week ago
75384 analysis.bundle complete 1 / 3 1 week ago
75385 capability.graph complete 1 / 3 1 week ago
75386 detector.run complete 1 / 3 1 week ago
75387 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
2
No findings?
no
Summary
Found 2 issues: a reentrancy window in `exit` that can double-withdraw and bypass lockup timing via token callbacks, and a division-by-zero footgun in WRN reward accounting that can lock user exits if totalMultiplier is zero.
View stderr
[codex:516611] OpenAI Codex v0.77.0 (research preview)
[codex:516611] --------
[codex:516611] workdir: /tmp/codex-multi-6_j7klpi
[codex:516611] model: gpt-5.2-codex
[codex:516611] provider: openai
[codex:516611] approval: never
[codex:516611] sandbox: read-only
[codex:516611] reasoning effort: xhigh
[codex:516611] reasoning summaries: auto
[codex:516611] session id: 019b70ac-ce5c-7ea0-b53d-f26f5eb25603
[codex:516611] --------
[codex:516611] user
[codex:516611] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:516611] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:516611] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:516611] 
[codex:516611] Scope rules:
[codex:516611] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:516611] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:516611] 
[codex:516611] Output MUST be valid JSON matching the provided schema.
[codex:516611] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:516611] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:516611] 
[codex:516611] Output constraints (IMPORTANT):
[codex:516611] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:516611] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:516611] mcp startup: no servers
[codex:516611] 
[codex:516611] thinking
[codex:516611] **Preparing to read instructions**
[codex:516611] exec
[codex:516611] /bin/bash -lc ls in /tmp/codex-multi-6_j7klpi succeeded in 5ms:
[codex:516611] AUDIT_BUNDLE.txt
[codex:516611] codex-output-schema.json
[codex:516611] contracts
[codex:516611] exec
[codex:516611] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-6_j7klpi succeeded in 5ms:
[codex:516611] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:516611] 
[codex:516611] ================================================================================
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol
[codex:516611] ================================================================================
[codex:516611] // SPDX-License-Identifier: MIT
[codex:516611] import "./openzeppelin/math/SafeMath.sol";
[codex:516611] import "./openzeppelin/token/ERC20/IERC20.sol";
[codex:516611] import "./openzeppelin/token/ERC20/SafeERC20.sol";
[codex:516611] import "./openzeppelin/access/Ownable.sol";
[codex:516611] import "./openzeppelin/utils/Address.sol";
[codex:516611] 
[codex:516611] pragma solidity ^0.7.1;
[codex:516611] 
[codex:516611] contract LockUpPool is Initializable, OwnableUpgradeSafe {
[codex:516611]   using Address for address;
[codex:516611]   using SafeMath for uint256;
[codex:516611]   using SafeERC20 for IERC20;
[codex:516611] 
[codex:516611]   // NOTE: didn't use actual constant variable just in case we may chage it on upgrades
[codex:516611] 
[codex:516611] thinking
[codex:516611] **Verifying complete AUDIT_BUNDLE content**
[codex:516611] exec
[codex:516611] /bin/bash -lc 'rg "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-6_j7klpi succeeded in 10ms:
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/GSN/Context.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/Initializable.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/access/AccessControl.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/access/Ownable.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/math/Math.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/math/SafeMath.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/presets/ERC20PresetMinterPauser.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/token/ERC20/ERC20.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/token/ERC20/ERC20Burnable.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/token/ERC20/ERC20Pausable.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/token/ERC20/IERC20.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/token/ERC20/SafeERC20.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/utils/Address.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/utils/EnumerableSet.sol
[codex:516611] FILE: contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/utils/Pausable.sol
[codex:516611] 
[codex:516611] thinking
[codex:516611] **Verifying complete WRNRewardPool contract**
[codex:516611] exec
[codex:516611] /bin/bash -lc 'rg --files' in /tmp/codex-multi-6_j7klpi succeeded in 9ms:
[codex:516611] codex-output-schema.json
[codex:516611] AUDIT_BUNDLE.txt
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/math/SafeMath.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/math/Math.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/Initializable.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/access/AccessControl.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/access/Ownable.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/presets/ERC20PresetMinterPauser.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/token/ERC20/ERC20Burnable.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/token/ERC20/SafeERC20.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/token/ERC20/ERC20Pausable.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/token/ERC20/IERC20.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/token/ERC20/ERC20.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/utils/Pausable.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/utils/EnumerableSet.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/utils/Address.sol
[codex:516611] contracts/Users/seb/repo/hunt/neverlose/contract/contracts/openzeppelin/GSN/Context.sol
[codex:516611] 
[codex:516611] thinking
[codex:516611] **Preparing to read contract files thoroughly**
[codex:516611] exec
[codex:516611] /bin/bash -lc "sed -n '1,260p' contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol" in /tmp/codex-multi-6_j7klpi succeeded in 7ms:
[codex:516611] // SPDX-License-Identifier: MIT
[codex:516611] import './openzeppelin/math/Math.sol';
[codex:516611] import './openzeppelin/presets/ERC20PresetMinterPauser.sol';
[codex:516611] import './LockUpPool.sol';
[codex:516611] 
[codex:516611] pragma solidity ^0.7.1;
[codex:516611] 
[codex:516611] contract WRNRewardPool is LockUpPool {
[codex:516611]   using SafeMath for uint256;
[codex:516611]   using SafeERC20 for ERC20PresetMinterPauserUpgradeSafe;
[codex:516611] 
[codex:516611]   ERC20PresetMinterPauserUpgradeSafe public WRNToken; // WRN Reward Token
[codex:516611] 
[codex:516611]   // NOTE: didn't use actual constant variable just in case we may chage it on upgrades
[codex:516611]   uint256 public REWARD_START_BLOCK;
[codex:516611]   uint256 public REWARD_END_BLOCK;
[codex:516611]   uint256 public REWARD_EARLY_BONUS_END_BLOCK;
[codex:516611]   uint256 public REWARD_PER_BLOCK;
[codex:516611]   uint256 public REWARD_EARLY_BONUS_BOOST;
[codex:516611] 
[codex:516611] 
[codex:516611] 
[codex:516611] 
[codex:516611] 
[codex:516611] thinking
[codex:516611] **Reviewing LockUpPool and WRNRewardPool vulnerabilities**
[codex:516611] 
[codex:516611] I’m analyzing these contracts for upgradeability patterns, reentrancy risks, access control, and other typical vulnerabilities. There’s a tricky reentrancy scenario in `exit` due to calls to `claimBonus` before state updates, which could lead to double withdrawals if a malicious token or ERC777-style hooks exist. The `initialize` functions being public without proper access checks raise ownership takeover risks if not initialized correctly. Also, division by zero errors may occur in reward calculations if multipliers are zero, potentially causing denial-of-service. Overall, I’m weighing these findings considering ownership privileges and typical usage patterns.
[codex:516611] thinking
[codex:516611] **Examining multiplier zero and reentrancy impacts**
[codex:516611] 
[codex:516611] I’m exploring how setting all pool multipliers to zero causes `claimWRN` to revert and block user exits, creating a denial-of-service risk controlled by the owner. I’m also diving into how reentrancy in `exit` combined with external token transfers might allow double withdrawals when multiple lockups exist, along with how first reward updates can skip initial rewards due to `lastRewardBlock` logic. These interplays between state updates, external calls, and access control look critical to understand thoroughly!
[codex:516611] thinking
[codex:516611] **Analyzing reentrancy effects and accounting risks**
[codex:516611] 
[codex:516611] I’m reasoning through how reentrant calls within `exit` could let users withdraw one lockup’s tokens twice by manipulating totals, effectively bypassing lockup timing on other positions, especially if tokens support hooks like ERC777. The interplay between state updates and external calls here creates a subtle vulnerability with potentially early access to locked funds. I’m also considering misconfigurations and owner actions that cause division-by-zero errors and fund locking due to multiplier settings or pool additions.
[codex:516611] thinking
[codex:516611] **Reviewing arithmetic and reentrancy details with upgradeable patterns**
[codex:516611] 
[codex:516611] I'm examining unchecked arithmetic on uint40 counters that could underflow without revert, leading to corrupted stats if reentrancy occurs, and how `exit` updates bonus debts and user totals correctly despite external calls. The analysis covers the risks from reentrancy triggered by token transfer hooks (like ERC777), suggesting a need for reentrancy guards or state updates before external calls, plus confirming that reward claims still work in emergency mode and that multiplier zero can cause division errors locking funds.
[codex:516611] exec
[codex:516611] /bin/bash -lc "nl -ba contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol | sed -n '90,210p'" in /tmp/codex-multi-6_j7klpi succeeded in 7ms:
[codex:516611]     90	
[codex:516611]     91	    PENALTY_RATE = 10;
[codex:516611]     92	    PLATFORM_FEE_RATE = 3;
[codex:516611]     93	    SECONDS_IN_MONTH = 2592000;
[codex:516611]     94	
[codex:516611]     95	    fundAddress = address(0x82CA6d313BffE56E9096b16633dfD414148D66b1);
[codex:516611]     96	  }
[codex:516611]     97	
[codex:516611]     98	  modifier _checkPoolExists(address tokenAddress) {
[codex:516611]     99	    require(tokenStats[tokenAddress].maxLockUpLimit > 0, 'POOL_NOT_FOUND');
[codex:516611]    100	    _;
[codex:516611]    101	  }
[codex:516611]    102	
[codex:516611]    103	  modifier _checkEmergencyMode() {
[codex:516611]    104	    require(!emergencyMode, 'NOT_ALLOWED_IN_EMERGENCY');
[codex:516611]    105	    _;
[codex:516611]    106	  }
[codex:516611]    107	
[codex:516611]    108	  // NOTE: This should have been an internal function, but it's defined as public for unit tests
[codex:516611]    109	  // Should be called on WRNRewardPool#addLockUpRewardPool
[codex:516611] 
[codex:516611] thinking
[codex:516611] **Continuing reading for transfer**
[codex:516611] exec
[codex:516611] /bin/bash -lc "nl -ba contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol | sed -n '210,320p'" in /tmp/codex-multi-6_j7klpi succeeded in 7ms:
[codex:516611]    210	      fee = lockUp.amount.mul(PLATFORM_FEE_RATE).div(100);
[codex:516611]    211	      // revert(string(abi.encodePacked(penalty, '+', fee)));
[codex:516611]    212	    } else if (force) {
[codex:516611]    213	      revert('MUST_NOT_BE_FORCED');
[codex:516611]    214	    }
[codex:516611]    215	
[codex:516611]    216	    uint256 refundAmount = lockUp.amount.sub(penalty).sub(fee);
[codex:516611]    217	
[codex:516611]    218	    // Update lockUp
[codex:516611]    219	    lockUp.exitedAt = block.timestamp;
[codex:516611]    220	
[codex:516611]    221	    // Update token stats
[codex:516611]    222	    TokenStats storage tokenStat = tokenStats[tokenAddress];
[codex:516611]    223	    tokenStat.totalLockUp = tokenStat.totalLockUp.sub(lockUp.amount);
[codex:516611]    224	    tokenStat.effectiveTotalLockUp = tokenStat.effectiveTotalLockUp.sub(lockUp.effectiveAmount);
[codex:516611]    225	    tokenStat.totalPenalty = tokenStat.totalPenalty.add(penalty);
[codex:516611]    226	
[codex:516611]    227	    tokenStat.activeLockUpCount = tokenStat.activeLockUpCount - 1;
[codex:516611]    228	    if (penalty > 0) {
[codex:516611]    229	      tokenStat.brokenCount = tokenStat.brokenCount + 1;
[codex:516611] 
[codex:516611] thinking
[codex:516611] **Adding line number references**
[codex:516611] exec
[codex:516611] /bin/bash -lc "nl -ba contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol | sed -n '150,270p'" in /tmp/codex-multi-6_j7klpi succeeded in 6ms:
[codex:516611]    150	      );
[codex:516611]    151	    } else { // After bonus period (from > REWARD_EARLY_BONUS_END_BLOCK)
[codex:516611]    152	      return to.sub(from).mul(REWARD_PER_BLOCK);
[codex:516611]    153	    }
[codex:516611]    154	  }
[codex:516611]    155	
[codex:516611]    156	  // Update all pools
[codex:516611]    157	  // NOTE: This could fail with out-of-gas if too many tokens are added
[codex:516611]    158	  function updateAllPools() public {
[codex:516611]    159	    uint256 length = pools.length;
[codex:516611]    160	    for (uint256 pid = 0; pid < length; ++pid) {
[codex:516611]    161	      updatePool(pools[pid]);
[codex:516611]    162	    }
[codex:516611]    163	  }
[codex:516611]    164	
[codex:516611]    165	  function updatePool(address tokenAddress) public _checkPoolExists(tokenAddress) {
[codex:516611]    166	    WRNStats storage wrnStat = wrnStats[tokenAddress];
[codex:516611]    167	    if (block.number <= wrnStat.lastRewardBlock) {
[codex:516611]    168	      return;
[codex:516611]    169	    }
[codex:516611] 
[codex:516611] thinking
[codex:516611] **Identifying claimWRN usage locations**
[codex:516611] exec
[codex:516611] /bin/bash -lc "nl -ba contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol | sed -n '90,140p'" in /tmp/codex-multi-6_j7klpi succeeded in 6ms:
[codex:516611]     90	  function updatePoolMultiplier(address tokenAddress, uint256 multiplier, bool shouldUpdate) external onlyOwner {
[codex:516611]     91	    require(multiplier >= 0, 'INVALID_MULTIPLIER');
[codex:516611]     92	
[codex:516611]     93	    if(shouldUpdate) {
[codex:516611]     94	      // NOTE: This could fail with out-of-gas if too many tokens are added.
[codex:516611]     95	      // If this fails, the owner MUST update all pools manually
[codex:516611]     96	      updateAllPools();
[codex:516611]     97	    } else if (wrnStats[tokenAddress].multiplier > multiplier) {
[codex:516611]     98	      // Decreasing multiplier shouldn't be allowed without `updateAllPools` calls because
[codex:516611]     99	      // users can temporarily withdraw a bigger WRN reward than they actually have
[codex:516611]    100	      // (caused by smaller `totalMultiplier` => bigger `accWRNPerShare`)
[codex:516611]    101	
[codex:516611]    102	      revert('UPDATE_ALL_REQUIRED');
[codex:516611]    103	    }
[codex:516611]    104	
[codex:516611]    105	    totalMultiplier = totalMultiplier - wrnStats[tokenAddress].multiplier + multiplier;
[codex:516611]    106	    wrnStats[tokenAddress].multiplier = multiplier;
[codex:516611]    107	  }
[codex:516611]    108	
[codex:516611]    109	  function _updateDebt(address tokenAddress, address account) private {
[codex:516611] 
[codex:516611] thinking
[codex:516611] **Compiling audit findings and recommendations**
[codex:516611] codex
[codex:516611] {"no_findings":false,"summary":"Found 2 issues: a reentrancy window in `exit` that can double-withdraw and bypass lockup timing via token callbacks, and a division-by-zero footgun in WRN reward accounting that can lock user exits if totalMultiplier is zero.","findings":[{"severity":"medium","category":"reentrancy","title":"Reentrant exit can double-withdraw a lockup via claimBonus external transfer","exploit_scenario":"A user deposits from a contract and the underlying token implements ERC777-style hooks (or a malicious ERC20 that calls the recipient). When `exit` is called, it first invokes `claimBonus`, which transfers tokens to `msg.sender`. The token callback reenters `exit` for the same `lockUpId` before `lockUp.exitedAt` is set. The second `exit` succeeds and updates balances; when control returns, the original `exit` continues and transfers the refund again. With multiple lockups (so totals don’t underflow), the attacker effectively withdraws more than the single lockup amount, bypassing the time lock on other deposits and corrupting accounting.","recommendation":"Apply `nonReentrant` to `exit`/`claimBonus` and/or update lockup state before any external transfer. A safer pattern is to compute bonus/refund amounts, update `lockUp.exitedAt` and totals first, then perform token transfers, or use an internal bonus-claim routine that does not transfer during `exit`.","evidence":"`exit` calls `claimBonus` before setting `lockUp.exitedAt` or updating totals, and `claimBonus` performs an external `safeTransfer` to `msg.sender`.","locations":["contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol:194","contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol:201","contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol:266"]},{"severity":"low","category":"math","title":"Division by zero in WRN reward math can block exits if totalMultiplier is zero","exploit_scenario":"If all pool multipliers are set to 0 (or a pool is added via `addLockUpPool` without setting a multiplier), `totalMultiplier` becomes 0. Any call to `claimWRN` will revert due to division by zero in `_getAccWRNTillNow`. Because `claimWRN` is invoked at the start of `doLockUp` and `exit`, users cannot deposit or withdraw, effectively locking funds until multipliers are fixed.","recommendation":"Guard against `totalMultiplier == 0` by returning 0 rewards, or enforce `multiplier > 0` and prevent configuration that sets `totalMultiplier` to zero. Consider skipping `claimWRN` when rewards are disabled so exits remain possible.","evidence":"`_getAccWRNTillNow` divides by `totalMultiplier` without a zero check; `claimWRN` is called unconditionally in `doLockUp` and `exit`.","locations":["contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol:187","contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol:114","contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol:215"]}]}
[codex:516611] tokens used
[codex:516611] 44,088
[codex:516611] {"no_findings":false,"summary":"Found 2 issues: a reentrancy window in `exit` that can double-withdraw and bypass lockup timing via token callbacks, and a division-by-zero footgun in WRN reward accounting that can lock user exits if totalMultiplier is zero.","findings":[{"severity":"medium","category":"reentrancy","title":"Reentrant exit can double-withdraw a lockup via claimBonus external transfer","exploit_scenario":"A user deposits from a contract and the underlying token implements ERC777-style hooks (or a malicious ERC20 that calls the recipient). When `exit` is called, it first invokes `claimBonus`, which transfers tokens to `msg.sender`. The token callback reenters `exit` for the same `lockUpId` before `lockUp.exitedAt` is set. The second `exit` succeeds and updates balances; when control returns, the original `exit` continues and transfers the refund again. With multiple lockups (so totals don’t underflow), the attacker effectively withdraws more than the single lockup amount, bypassing the time lock on other deposits and corrupting accounting.","recommendation":"Apply `nonReentrant` to `exit`/`claimBonus` and/or update lockup state before any external transfer. A safer pattern is to compute bonus/refund amounts, update `lockUp.exitedAt` and totals first, then perform token transfers, or use an internal bonus-claim routine that does not transfer during `exit`.","evidence":"`exit` calls `claimBonus` before setting `lockUp.exitedAt` or updating totals, and `claimBonus` performs an external `safeTransfer` to `msg.sender`.","locations":["contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol:194","contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol:201","contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol:266"]},{"severity":"low","category":"math","title":"Division by zero in WRN reward math can block exits if totalMultiplier is zero","exploit_scenario":"If all pool multipliers are set to 0 (or a pool is added via `addLockUpPool` without setting a multiplier), `totalMultiplier` becomes 0. Any call to `claimWRN` will revert due to division by zero in `_getAccWRNTillNow`. Because `claimWRN` is invoked at the start of `doLockUp` and `exit`, users cannot deposit or withdraw, effectively locking funds until multipliers are fixed.","recommendation":"Guard against `totalMultiplier == 0` by returning 0 rewards, or enforce `multiplier > 0` and prevent configuration that sets `totalMultiplier` to zero. Consider skipping `claimWRN` when rewards are disabled so exits remain possible.","evidence":"`_getAccWRNTillNow` divides by `totalMultiplier` without a zero check; `claimWRN` is called unconditionally in `doLockUp` and `exit`.","locations":["contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol:187","contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol:114","contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol:215"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-30T19:18:31.522625+00:00",
        "returncode": 0
    },
    "summary": "Found 2 issues: a reentrancy window in `exit` that can double-withdraw and bypass lockup timing via token callbacks, and a division-by-zero footgun in WRN reward accounting that can lock user exits if totalMultiplier is zero.",
    "raw_final": {
        "summary": "Found 2 issues: a reentrancy window in `exit` that can double-withdraw and bypass lockup timing via token callbacks, and a division-by-zero footgun in WRN reward accounting that can lock user exits if totalMultiplier is zero.",
        "findings": [
            {
                "title": "Reentrant exit can double-withdraw a lockup via claimBonus external transfer",
                "category": "reentrancy",
                "evidence": "`exit` calls `claimBonus` before setting `lockUp.exitedAt` or updating totals, and `claimBonus` performs an external `safeTransfer` to `msg.sender`.",
                "severity": "medium",
                "locations": [
                    "contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol:194",
                    "contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol:201",
                    "contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol:266"
                ],
                "recommendation": "Apply `nonReentrant` to `exit`/`claimBonus` and/or update lockup state before any external transfer. A safer pattern is to compute bonus/refund amounts, update `lockUp.exitedAt` and totals first, then perform token transfers, or use an internal bonus-claim routine that does not transfer during `exit`.",
                "exploit_scenario": "A user deposits from a contract and the underlying token implements ERC777-style hooks (or a malicious ERC20 that calls the recipient). When `exit` is called, it first invokes `claimBonus`, which transfers tokens to `msg.sender`. The token callback reenters `exit` for the same `lockUpId` before `lockUp.exitedAt` is set. The second `exit` succeeds and updates balances; when control returns, the original `exit` continues and transfers the refund again. With multiple lockups (so totals don\u2019t underflow), the attacker effectively withdraws more than the single lockup amount, bypassing the time lock on other deposits and corrupting accounting."
            },
            {
                "title": "Division by zero in WRN reward math can block exits if totalMultiplier is zero",
                "category": "math",
                "evidence": "`_getAccWRNTillNow` divides by `totalMultiplier` without a zero check; `claimWRN` is called unconditionally in `doLockUp` and `exit`.",
                "severity": "low",
                "locations": [
                    "contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol:187",
                    "contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol:114",
                    "contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol:215"
                ],
                "recommendation": "Guard against `totalMultiplier == 0` by returning 0 rewards, or enforce `multiplier > 0` and prevent configuration that sets `totalMultiplier` to zero. Consider skipping `claimWRN` when rewards are disabled so exits remain possible.",
                "exploit_scenario": "If all pool multipliers are set to 0 (or a pool is added via `addLockUpPool` without setting a multiplier), `totalMultiplier` becomes 0. Any call to `claimWRN` will revert due to division by zero in `_getAccWRNTillNow`. Because `claimWRN` is invoked at the start of `doLockUp` and `exit`, users cannot deposit or withdraw, effectively locking funds until multipliers are fixed."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
3
EXT*/BALANCE
4
Total opcodes
7372
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x02c8
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x85dc3004
00000026: GT
00000027: PUSH2 0x017b
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0xe2be30c3
00000031: GT
00000032: PUSH2 0x00d8
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xf344dcce
0000003c: GT
0000003d: PUSH2 0x008c
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xf42d989c
00000047: GT
00000048: PUSH2 0x0071
0000004b: JUMPI
0000004c: DUP1
0000004d: PUSH4 0xf42d989c
00000052: EQ
00000053: PUSH2 0x082f
00000056: JUMPI
00000057: DUP1
00000058: PUSH4 0xf525cb68
0000005d: EQ
0000005e: PUSH2 0x0837
00000061: JUMPI
00000062: DUP1
00000063: PUSH4 0xfebb97cd
00000068: EQ
00000069: PUSH2 0x083f
0000006c: JUMPI
0000006d: PUSH2 0x02c8
00000070: JUMP
00000071: JUMPDEST
00000072: DUP1
00000073: PUSH4 0xf344dcce
00000078: EQ
00000079: PUSH2 0x07c6
0000007c: JUMPI
0000007d: DUP1
0000007e: PUSH4 0xf39e3c53
00000083: EQ
00000084: PUSH2 0x07ce
00000087: JUMPI
00000088: PUSH2 0x02c8
0000008b: JUMP
0000008c: JUMPDEST
0000008d: DUP1
0000008e: PUSH4 0xec12a5e1
00000093: GT
00000094: PUSH2 0x00bd
00000097: JUMPI
00000098: DUP1
00000099: PUSH4 0xec12a5e1
0000009e: EQ
0000009f: PUSH2 0x0712
000000a2: JUMPI
000000a3: DUP1
000000a4: PUSH4 0xece80528
000000a9: EQ
000000aa: PUSH2 0x071a
000000ad: JUMPI
000000ae: DUP1
000000af: PUSH4 0xf2fde38b
000000b4: EQ
000000b5: PUSH2 0x07a0
000000b8: JUMPI
000000b9: PUSH2 0x02c8
000000bc: JUMP
000000bd: JUMPDEST
000000be: DUP1
000000bf: PUSH4 0xe2be30c3
000000c4: EQ
000000c5: PUSH2 0x06de
000000c8: JUMPI
000000c9: DUP1
000000ca: PUSH4 0xe82bef29
000000cf: EQ
000000d0: PUSH2 0x070a
000000d3: JUMPI
000000d4: PUSH2 0x02c8
000000d7: JUMP
000000d8: JUMPDEST
000000d9: DUP1
000000da: PUSH4 0xac4afa38
000000df: GT
000000e0: PUSH2 0x012f
000000e3: JUMPI
000000e4: DUP1
000000e5: PUSH4 0xbe32b3f8
000000ea: GT
000000eb: PUSH2 0x0114
000000ee: JUMPI
000000ef: DUP1
000000f0: PUSH4 0xbe32b3f8
000000f5: EQ
000000f6: PUSH2 0x0691
000000f9: JUMPI
000000fa: DUP1
000000fb: PUSH4 0xcd74a00e
00000100: EQ
00000101: PUSH2 0x06b0
00000104: JUMPI
00000105: DUP1
00000106: PUSH4 0xd79fb125
0000010b: EQ
0000010c: PUSH2 0x06b8
0000010f: JUMPI
00000110: PUSH2 0x02c8
00000113: JUMP
00000114: JUMPDEST
00000115: DUP1
00000116: PUSH4 0xac4afa38
0000011b: EQ
0000011c: PUSH2 0x066c
0000011f: JUMPI
00000120: DUP1
00000121: PUSH4 0xb9ec7d74
00000126: EQ
00000127: PUSH2 0x0689
0000012a: JUMPI
0000012b: PUSH2 0x02c8
0000012e: JUMP
0000012f: JUMPDEST
00000130: DUP1
00000131: PUSH4 0x975532dc
00000136: GT
00000137: PUSH2 0x0160
0000013a: JUMPI
0000013b: DUP1
0000013c: PUSH4 0x975532dc
00000141: EQ
00000142: PUSH2 0x05fa
00000145: JUMPI
00000146: DUP1
00000147: PUSH4 0xa9df60a6
0000014c: EQ
0000014d: PUSH2 0x0602
00000150: JUMPI
00000151: DUP1
00000152: PUSH4 0xaa28dce1
00000157: EQ
00000158: PUSH2 0x0628
0000015b: JUMPI
0000015c: PUSH2 0x02c8
0000015f: JUMP
00000160: JUMPDEST
00000161: DUP1
00000162: PUSH4 0x85dc3004
00000167: EQ
00000168: PUSH2 0x05b0
0000016b: JUMPI
0000016c: DUP1
0000016d: PUSH4 0x8da5cb5b
00000172: EQ
00000173: PUSH2 0x05d6
00000176: JUMPI
00000177: PUSH2 0x02c8
0000017a: JUMP
0000017b: JUMPDEST
0000017c: DUP1
0000017d: PUSH4 0x64cdba23
00000182: GT
00000183: PUSH2 0x0229
00000186: JUMPI
00000187: DUP1
00000188: PUSH4 0x7621651b
0000018d: GT
0000018e: PUSH2 0x01dd
00000191: JUMPI
00000192: DUP1
00000193: PUSH4 0x7b46c54f
00000198: GT
00000199: PUSH2 0x01c2
0000019c: JUMPI
0000019d: DUP1
0000019e: PUSH4 0x7b46c54f
000001a3: EQ
000001a4: PUSH2 0x0556
000001a7: JUMPI
000001a8: DUP1
000001a9: PUSH4 0x7fb09e19
000001ae: EQ
000001af: PUSH2 0x057c
000001b2: JUMPI
000001b3: DUP1
000001b4: PUSH4 0x8129fc1c
000001b9: EQ
000001ba: PUSH2 0x05a8
000001bd: JUMPI
000001be: PUSH2 0x02c8
000001c1: JUMP
000001c2: JUMPDEST
000001c3: DUP1
000001c4: PUSH4 0x7621651b
000001c9: EQ
000001ca: PUSH2 0x051c
000001cd: JUMPI
000001ce: DUP1
000001cf: PUSH4 0x7884d98e
000001d4: EQ
000001d5: PUSH2 0x054e
000001d8: JUMPI
000001d9: PUSH2 0x02c8
000001dc: JUMP
000001dd: JUMPDEST
000001de: DUP1
000001df: PUSH4 0x6b6da869
000001e4: GT
000001e5: PUSH2 0x020e
000001e8: JUMPI
000001e9: DUP1
000001ea: PUSH4 0x6b6da869
000001ef: EQ
000001f0: PUSH2 0x04d6
000001f3: JUMPI
000001f4: DUP1
000001f5: PUSH4 0x6c28dd47
000001fa: EQ
000001fb: PUSH2 0x050c
000001fe: JUMPI
000001ff: DUP1
00000200: PUSH4 0x715018a6
00000205: EQ
00000206: PUSH2 0x0514
00000209: JUMPI
0000020a: PUSH2 0x02c8
0000020d: JUMP
0000020e: JUMPDEST
0000020f: DUP1
00000210: PUSH4 0x64cdba23
00000215: EQ
00000216: PUSH2 0x045b
00000219: JUMPI
0000021a: DUP1
0000021b: PUSH4 0x6a38c851
00000220: EQ
00000221: PUSH2 0x048f
00000224: JUMPI
00000225: PUSH2 0x02c8
00000228: JUMP
00000229: JUMPDEST
0000022a: DUP1
0000022b: PUSH4 0x27855b13
00000230: GT
00000231: PUSH2 0x0280
00000234: JUMPI
00000235: DUP1
00000236: PUSH4 0x34fe9824
0000023b: GT
0000023c: PUSH2 0x0265
0000023f: JUMPI
00000240: DUP1
00000241: PUSH4 0x34fe9824
00000246: EQ
00000247: PUSH2 0x03c9
0000024a: JUMPI
0000024b: DUP1
0000024c: PUSH4 0x3652364d
00000251: EQ
00000252: PUSH2 0x03ef
00000255: JUMPI
00000256: DUP1
00000257: PUSH4 0x4ec81af1
0000025c: EQ
0000025d: PUSH2 0x0423
00000260: JUMPI
00000261: PUSH2 0x02c8
00000264: JUMP
00000265: JUMPDEST
00000266: DUP1
00000267: PUSH4 0x27855b13
0000026c: EQ
0000026d: PUSH2 0x03b9
00000270: JUMPI
00000271: DUP1
00000272: PUSH4 0x2930fa49
00000277: EQ
00000278: PUSH2 0x03c1
0000027b: JUMPI
0000027c: PUSH2 0x02c8
0000027f: JUMP
00000280: JUMPDEST
00000281: DUP1
00000282: PUSH4 0x0e4dc3df
00000287: GT
00000288: PUSH2 0x02b1
0000028b: JUMPI
0000028c: DUP1
0000028d: PUSH4 0x0e4dc3df
00000292: EQ
00000293: PUSH2 0x0303
00000296: JUMPI
00000297: DUP1
00000298: PUSH4 0x0e99f5e6
0000029d: EQ
0000029e: PUSH2 0x032b
000002a1: JUMPI
000002a2: DUP1
000002a3: PUSH4 0x17f121cd
000002a8: EQ
000002a9: PUSH2 0x0351
000002ac: JUMPI
000002ad: PUSH2 0x02c8
000002b0: JUMP
000002b1: JUMPDEST
000002b2: DUP1
000002b3: PUSH4 0x0905f560
000002b8: EQ
000002b9: PUSH2 0x02cd
000002bc: JUMPI
000002bd: DUP1
000002be: PUSH4 0x0ad08b86
000002c3: EQ
000002c4: PUSH2 0x02e9
000002c7: JUMPI
000002c8: JUMPDEST
000002c9: PUSH1 0x00
000002cb: DUP1
000002cc: REVERT
000002cd: JUMPDEST
000002ce: PUSH2 0x02d5
000002d1: PUSH2 0x0879
000002d4: JUMP
000002d5: JUMPDEST
000002d6: PUSH1 0x40
000002d8: DUP1
000002d9: MLOAD
000002da: SWAP2
000002db: ISZERO
000002dc: ISZERO
000002dd: DUP3
000002de: MSTORE
000002df: MLOAD
000002e0: SWAP1
000002e1: DUP2
000002e2: SWAP1
000002e3: SUB
000002e4: PUSH1 0x20
000002e6: ADD
000002e7: SWAP1
000002e8: RETURN
000002e9: JUMPDEST
000002ea: PUSH2 0x02f1
000002ed: PUSH2 0x0882
000002f0: JUMP
000002f1: JUMPDEST
000002f2: PUSH1 0x40
000002f4: DUP1
000002f5: MLOAD
000002f6: SWAP2
000002f7: DUP3
000002f8: MSTORE
000002f9: MLOAD
000002fa: SWAP1
000002fb: DUP2
000002fc: SWAP1
000002fd: SUB
000002fe: PUSH1 0x20
00000300: ADD
00000301: SWAP1
00000302: RETURN
00000303: JUMPDEST
00000304: PUSH2 0x0329
00000307: PUSH1 0x04
00000309: DUP1
0000030a: CALLDATASIZE
0000030b: SUB
0000030c: PUSH1 0x20
0000030e: DUP2
0000030f: LT
00000310: ISZERO
00000311: PUSH2 0x0319
00000314: JUMPI
00000315: PUSH1 0x00
00000317: DUP1
00000318: REVERT
00000319: JUMPDEST
0000031a: POP
0000031b: CALLDATALOAD
0000031c: PUSH1 0x01
0000031e: PUSH1 0x01
00000320: PUSH1 0xa0
00000322: SHL
00000323: SUB
00000324: AND
00000325: PUSH2 0x0888
00000328: JUMP
00000329: JUMPDEST
0000032a: STOP
0000032b: JUMPDEST
0000032c: PUSH2 0x0329
0000032f: PUSH1 0x04
00000331: DUP1
00000332: CALLDATASIZE
00000333: SUB
00000334: PUSH1 0x20
00000336: DUP2
00000337: LT
00000338: ISZERO
00000339: PUSH2 0x0341
0000033c: JUMPI
0000033d: PUSH1 0x00
0000033f: DUP1
00000340: REVERT
00000341: JUMPDEST
00000342: POP
00000343: CALLDATALOAD
00000344: PUSH1 0x01
00000346: PUSH1 0x01
00000348: PUSH1 0xa0
0000034a: SHL
0000034b: SUB
0000034c: AND
0000034d: PUSH2 0x089d
00000350: JUMP
00000351: JUMPDEST
00000352: PUSH2 0x037f
00000355: PUSH1 0x04
00000357: DUP1
00000358: CALLDATASIZE
00000359: SUB
0000035a: PUSH1 0x40
0000035c: DUP2
0000035d: LT
0000035e: ISZERO
0000035f: PUSH2 0x0367
00000362: JUMPI
00000363: PUSH1 0x00
00000365: DUP1
00000366: REVERT
00000367: JUMPDEST
00000368: POP
00000369: PUSH1 0x01
0000036b: PUSH1 0x01
0000036d: PUSH1 0xa0
0000036f: SHL
00000370: SUB
00000371: DUP2
00000372: CALLDATALOAD
00000373: DUP2
00000374: AND
00000375: SWAP2
00000376: PUSH1 0x20
00000378: ADD
00000379: CALLDATALOAD
0000037a: AND
0000037b: PUSH2 0x0a0d
0000037e: JUMP
0000037f: JUMPDEST
00000380: PUSH1 0x40
00000382: DUP1
00000383: MLOAD
00000384: SWAP7
00000385: DUP8
00000386: MSTORE
00000387: PUSH1 0x20
00000389: DUP8
0000038a: ADD
0000038b: SWAP6
0000038c: SWAP1
0000038d: SWAP6
0000038e: MSTORE
0000038f: DUP6
00000390: DUP6
00000391: ADD
00000392: SWAP4
00000393: SWAP1
00000394: SWAP4
00000395: MSTORE
00000396: PUSH1 0x60
00000398: DUP6
00000399: ADD
0000039a: SWAP2
0000039b: SWAP1
0000039c: SWAP2
0000039d: MSTORE
0000039e: PUSH1 0x80
000003a0: DUP5
000003a1: ADD
000003a2: MSTORE
000003a3: PUSH5 0xffffffffff
000003a9: AND
000003aa: PUSH1 0xa0
000003ac: DUP4
000003ad: ADD
000003ae: MSTORE
000003af: MLOAD
000003b0: SWAP1
000003b1: DUP2
000003b2: SWAP1
000003b3: SUB
000003b4: PUSH1 0xc0
000003b6: ADD
000003b7: SWAP1
000003b8: RETURN
000003b9: JUMPDEST
000003ba: PUSH2 0x02f1
000003bd: PUSH2 0x0a54
000003c0: JUMP
000003c1: JUMPDEST
000003c2: PUSH2 0x02f1
000003c5: PUSH2 0x0a5a
000003c8: JUMP
000003c9: JUMPDEST
000003ca: PUSH2 0x0329
000003cd: PUSH1 0x04
000003cf: DUP1
000003d0: CALLDATASIZE
000003d1: SUB
000003d2: PUSH1 0x20
000003d4: DUP2
000003d5: LT
000003d6: ISZERO
000003d7: PUSH2 0x03df
000003da: JUMPI
000003db: PUSH1 0x00
000003dd: DUP1
000003de: REVERT
000003df: JUMPDEST
000003e0: POP
000003e1: CALLDATALOAD
000003e2: PUSH1 0x01
000003e4: PUSH1 0x01
000003e6: PUSH1 0xa0
000003e8: SHL
000003e9: SUB
000003ea: AND
000003eb: PUSH2 0x0a60
000003ee: JUMP
000003ef: JUMPDEST
000003f0: PUSH2 0x0329
000003f3: PUSH1 0x04
000003f5: DUP1
000003f6: CALLDATASIZE
000003f7: SUB
000003f8: PUSH1 0x60
000003fa: DUP2
000003fb: LT
000003fc: ISZERO
000003fd: PUSH2 0x0405
00000400: JUMPI
00000401: PUSH1 0x00
00000403: DUP1
00000404: REVERT
00000405: JUMPDEST
00000406: POP
00000407: PUSH1 0x01
00000409: PUSH1 0x01
0000040b: PUSH1 0xa0
0000040d: SHL
0000040e: SUB
0000040f: DUP2
00000410: CALLDATALOAD
00000411: AND
00000412: SWAP1
00000413: PUSH1 0x20
00000415: DUP2
00000416: ADD
00000417: CALLDATALOAD
00000418: SWAP1
00000419: PUSH1 0x40
0000041b: ADD
0000041c: CALLDATALOAD
0000041d: ISZERO
0000041e: ISZERO
0000041f: PUSH2 0x0b1f
00000422: JUMP
00000423: JUMPDEST
00000424: PUSH2 0x0329
00000427: PUSH1 0x04
00000429: DUP1
0000042a: CALLDATASIZE
0000042b: SUB
0000042c: PUSH1 0x80
0000042e: DUP2
0000042f: LT
00000430: ISZERO
00000431: PUSH2 0x0439
00000434: JUMPI
00000435: PUSH1 0x00
00000437: DUP1
00000438: REVERT
00000439: JUMPDEST
0000043a: POP
0000043b: PUSH1 0x01
0000043d: PUSH1 0x01
0000043f: PUSH1 0xa0
00000441: SHL
00000442: SUB
00000443: DUP2
00000444: CALLDATALOAD
00000445: AND
00000446: SWAP1
00000447: PUSH1 0x20
00000449: DUP2
0000044a: ADD
0000044b: CALLDATALOAD
0000044c: SWAP1
0000044d: PUSH1 0x40
0000044f: DUP2
00000450: ADD
00000451: CALLDATALOAD
00000452: SWAP1
00000453: PUSH1 0x60
00000455: ADD
00000456: CALLDATALOAD
00000457: PUSH2 0x0c34
0000045a: JUMP
0000045b: JUMPDEST
0000045c: PUSH2 0x0329
0000045f: PUSH1 0x04
00000461: DUP1
00000462: CALLDATASIZE
00000463: SUB
00000464: PUSH1 0x60
00000466: DUP2
00000467: LT
00000468: ISZERO
00000469: PUSH2 0x0471
0000046c: JUMPI
0000046d: PUSH1 0x00
0000046f: DUP1
00000470: REVERT
00000471: JUMPDEST
00000472: POP
00000473: PUSH1 0x01
00000475: PUSH1 0x01
00000477: PUSH1 0xa0
00000479: SHL
0000047a: SUB
0000047b: DUP2
0000047c: CALLDATALOAD
0000047d: AND
0000047e: SWAP1
0000047f: PUSH1 0x20
00000481: DUP2
00000482: ADD
00000483: CALLDATALOAD
00000484: SWAP1
00000485: PUSH1 0x40
00000487: ADD
00000488: CALLDATALOAD
00000489: ISZERO
0000048a: ISZERO
0000048b: PUSH2 0x0d85
0000048e: JUMP
0000048f: JUMPDEST
00000490: PUSH2 0x04bd
00000493: PUSH1 0x04
00000495: DUP1
00000496: CALLDATASIZE
00000497: SUB
00000498: PUSH1 0x40
0000049a: DUP2
0000049b: LT
0000049c: ISZERO
0000049d: PUSH2 0x04a5
000004a0: JUMPI
000004a1: PUSH1 0x00
000004a3: DUP1
000004a4: REVERT
000004a5: JUMPDEST
000004a6: POP
000004a7: PUSH1 0x01
000004a9: PUSH1 0x01
000004ab: PUSH1 0xa0
000004ad: SHL
000004ae: SUB
000004af: DUP2
000004b0: CALLDATALOAD
000004b1: DUP2
000004b2: AND
000004b3: SWAP2
000004b4: PUSH1 0x20
000004b6: ADD
000004b7: CALLDATALOAD
000004b8: AND
000004b9: PUSH2 0x0da8
000004bc: JUMP
000004bd: JUMPDEST
000004be: PUSH1 0x40
000004c0: DUP1
000004c1: MLOAD
000004c2: SWAP3
000004c3: DUP4
000004c4: MSTORE
000004c5: PUSH1 0x20
000004c7: DUP4
000004c8: ADD
000004c9: SWAP2
000004ca: SWAP1
000004cb: SWAP2
000004cc: MSTORE
000004cd: DUP1
000004ce: MLOAD
000004cf: SWAP2
000004d0: DUP3
000004d1: SWAP1
000004d2: SUB
000004d3: ADD
000004d4: SWAP1
000004d5: RETURN
000004d6: JUMPDEST
000004d7: PUSH2 0x02f1
000004da: PUSH1 0x04
000004dc: DUP1
000004dd: CALLDATASIZE
000004de: SUB
000004df: PUSH1 0x60
000004e1: DUP2
000004e2: LT
000004e3: ISZERO
000004e4: PUSH2 0x04ec
000004e7: JUMPI
000004e8: PUSH1 0x00
000004ea: DUP1
000004eb: REVERT
000004ec: JUMPDEST
000004ed: POP
000004ee: PUSH1 0x01
000004f0: PUSH1 0x01
000004f2: PUSH1 0xa0
000004f4: SHL
000004f5: SUB
000004f6: DUP2
000004f7: CALLDATALOAD
000004f8: DUP2
000004f9: AND
000004fa: SWAP2
000004fb: PUSH1 0x20
000004fd: DUP2
000004fe: ADD
000004ff: CALLDATALOAD
00000500: SWAP1
00000501: SWAP2
00000502: AND
00000503: SWAP1
00000504: PUSH1 0x40
00000506: ADD
00000507: CALLDATALOAD
00000508: PUSH2 0x0dcc
0000050b: JUMP
0000050c: JUMPDEST
0000050d: PUSH2 0x02f1
00000510: PUSH2 0x0e3d
00000513: JUMP
00000514: JUMPDEST
00000515: PUSH2 0x0329
00000518: PUSH2 0x0e43
0000051b: JUMP
0000051c: JUMPDEST
0000051d: PUSH2 0x0329
00000520: PUSH1 0x04
00000522: DUP1
00000523: CALLDATASIZE
00000524: SUB
00000525: PUSH1 0x60
00000527: DUP2
00000528: LT
00000529: ISZERO
0000052a: PUSH2 0x0532
0000052d: JUMPI
0000052e: PUSH1 0x00
00000530: DUP1
00000531: REVERT
00000532: JUMPDEST
00000533: POP
00000534: PUSH1 0x01
00000536: PUSH1 0x01
00000538: PUSH1 0xa0
0000053a: SHL
0000053b: SUB
0000053c: DUP2
0000053d: CALLDATALOAD
0000053e: AND
0000053f: SWAP1
00000540: PUSH1 0x20
00000542: DUP2
00000543: ADD
00000544: CALLDATALOAD
00000545: SWAP1
00000546: PUSH1 0x40
00000548: ADD
00000549: CALLDATALOAD
0000054a: PUSH2 0x0ef7
0000054d: JUMP
0000054e: JUMPDEST
0000054f: PUSH2 0x02f1
00000552: PUSH2 0x0f0b
00000555: JUMP
00000556: JUMPDEST
00000557: PUSH2 0x0329
0000055a: PUSH1 0x04
0000055c: DUP1
0000055d: CALLDATASIZE
0000055e: SUB
0000055f: PUSH1 0x20
00000561: DUP2
00000562: LT
00000563: ISZERO
00000564: PUSH2 0x056c
00000567: JUMPI
00000568: PUSH1 0x00
0000056a: DUP1
0000056b: REVERT
0000056c: JUMPDEST
0000056d: POP
0000056e: CALLDATALOAD
0000056f: PUSH1 0x01
00000571: PUSH1 0x01
00000573: PUSH1 0xa0
00000575: SHL
00000576: SUB
00000577: AND
00000578: PUSH2 0x0f11
0000057b: JUMP
0000057c: JUMPDEST
0000057d: PUSH2 0x0329
00000580: PUSH1 0x04
00000582: DUP1
00000583: CALLDATASIZE
00000584: SUB
00000585: PUSH1 0x40
00000587: DUP2
00000588: LT
00000589: ISZERO
0000058a: PUSH2 0x0592
0000058d: JUMPI
0000058e: PUSH1 0x00
00000590: DUP1
00000591: REVERT
00000592: JUMPDEST
00000593: POP
00000594: PUSH1 0x01
00000596: PUSH1 0x01
00000598: PUSH1 0xa0
0000059a: SHL
0000059b: SUB
0000059c: DUP2
0000059d: CALLDATALOAD
0000059e: AND
0000059f: SWAP1
000005a0: PUSH1 0x20
000005a2: ADD
000005a3: CALLDATALOAD
000005a4: PUSH2 0x1170
000005a7: JUMP
000005a8: JUMPDEST
000005a9: PUSH2 0x0329
000005ac: PUSH2 0x1254
000005af: JUMP
000005b0: JUMPDEST
000005b1: PUSH2 0x0329
000005b4: PUSH1 0x04
000005b6: DUP1
000005b7: CALLDATASIZE
000005b8: SUB
000005b9: PUSH1 0x20
000005bb: DUP2
000005bc: LT
000005bd: ISZERO
000005be: PUSH2 0x05c6
000005c1: JUMPI
000005c2: PUSH1 0x00
000005c4: DUP1
000005c5: REVERT
000005c6: JUMPDEST
000005c7: POP
000005c8: CALLDATALOAD
000005c9: PUSH1 0x01
000005cb: PUSH1 0x01
000005cd: PUSH1 0xa0
000005cf: SHL
000005d0: SUB
000005d1: AND
000005d2: PUSH2 0x1334
000005d5: JUMP
000005d6: JUMPDEST
000005d7: PUSH2 0x05de
000005da: PUSH2 0x13c0
000005dd: JUMP
000005de: JUMPDEST
000005df: PUSH1 0x40
000005e1: DUP1
000005e2: MLOAD
000005e3: PUSH1 0x01
000005e5: PUSH1 0x01
000005e7: PUSH1 0xa0
000005e9: SHL
000005ea: SUB
000005eb: SWAP1
000005ec: SWAP3
000005ed: AND
000005ee: DUP3
000005ef: MSTORE
000005f0: MLOAD
000005f1: SWAP1
000005f2: DUP2
000005f3: SWAP1
000005f4: SUB
000005f5: PUSH1 0x20
000005f7: ADD
000005f8: SWAP1
000005f9: RETURN
000005fa: JUMPDEST
000005fb: PUSH2 0x02f1
000005fe: PUSH2 0x13cf
00000601: JUMP
00000602: JUMPDEST
00000603: PUSH2 0x02f1
00000606: PUSH1 0x04
00000608: DUP1
00000609: CALLDATASIZE
0000060a: SUB
0000060b: PUSH1 0x20
0000060d: DUP2
0000060e: LT
0000060f: ISZERO
00000610: PUSH2 0x0618
00000613: JUMPI
00000614: PUSH1 0x00
00000616: DUP1
00000617: REVERT
00000618: JUMPDEST
00000619: POP
0000061a: CALLDATALOAD
0000061b: PUSH1 0x01
0000061d: PUSH1 0x01
0000061f: PUSH1 0xa0
00000621: SHL
00000622: SUB
00000623: AND
00000624: PUSH2 0x13d5
00000627: JUMP
00000628: JUMPDEST
00000629: PUSH2 0x064e
0000062c: PUSH1 0x04
0000062e: DUP1
0000062f: CALLDATASIZE
00000630: SUB
00000631: PUSH1 0x20
00000633: DUP2
00000634: LT
00000635: ISZERO
00000636: PUSH2 0x063e
00000639: JUMPI
0000063a: PUSH1 0x00
0000063c: DUP1
0000063d: REVERT
0000063e: JUMPDEST
0000063f: POP
00000640: CALLDATALOAD
00000641: PUSH1 0x01
00000643: PUSH1 0x01
00000645: PUSH1 0xa0
00000647: SHL
00000648: SUB
00000649: AND
0000064a: PUSH2 0x1439
0000064d: JUMP
0000064e: JUMPDEST
0000064f: PUSH1 0x40
00000651: DUP1
00000652: MLOAD
00000653: SWAP4
00000654: DUP5
00000655: MSTORE
00000656: PUSH1 0x20
00000658: DUP5
00000659: ADD
0000065a: SWAP3
0000065b: SWAP1
0000065c: SWAP3
0000065d: MSTORE
0000065e: DUP3
0000065f: DUP3
00000660: ADD
00000661: MSTORE
00000662: MLOAD
00000663: SWAP1
00000664: DUP2
00000665: SWAP1
00000666: SUB
00000667: PUSH1 0x60
00000669: ADD
0000066a: SWAP1
0000066b: RETURN
0000066c: JUMPDEST
0000066d: PUSH2 0x05de
00000670: PUSH1 0x04
00000672: DUP1
00000673: CALLDATASIZE
00000674: SUB
00000675: PUSH1 0x20
00000677: DUP2
00000678: LT
00000679: ISZERO
0000067a: PUSH2 0x0682
0000067d: JUMPI
0000067e: PUSH1 0x00
00000680: DUP1
00000681: REVERT
00000682: JUMPDEST
00000683: POP
00000684: CALLDATALOAD
00000685: PUSH2 0x145a
00000688: JUMP
00000689: JUMPDEST
0000068a: PUSH2 0x0329
0000068d: PUSH2 0x1481
00000690: JUMP
00000691: JUMPDEST
00000692: PUSH2 0x0329
00000695: PUSH1 0x04
00000697: DUP1
00000698: CALLDATASIZE
00000699: SUB
0000069a: PUSH1 0x20
0000069c: DUP2
0000069d: LT
0000069e: ISZERO
0000069f: PUSH2 0x06a7
000006a2: JUMPI
000006a3: PUSH1 0x00
000006a5: DUP1
000006a6: REVERT
000006a7: JUMPDEST
000006a8: POP
000006a9: CALLDATALOAD
000006aa: ISZERO
000006ab: ISZERO
000006ac: PUSH2 0x14c1
000006af: JUMP
000006b0: JUMPDEST
000006b1: PUSH2 0x02f1
000006b4: PUSH2 0x153e
000006b7: JUMP
000006b8: JUMPDEST
000006b9: PUSH2 0x02f1
000006bc: PUSH1 0x04
000006be: DUP1
000006bf: CALLDATASIZE
000006c0: SUB
000006c1: PUSH1 0x20
000006c3: DUP2
000006c4: LT
000006c5: ISZERO
000006c6: PUSH2 0x06ce
000006c9: JUMPI
000006ca: PUSH1 0x00
000006cc: DUP1
000006cd: REVERT
000006ce: JUMPDEST
000006cf: POP
000006d0: CALLDATALOAD
000006d1: PUSH1 0x01
000006d3: PUSH1 0x01
000006d5: PUSH1 0xa0
000006d7: SHL
000006d8: SUB
000006d9: AND
000006da: PUSH2 0x1544
000006dd: JUMP
000006de: JUMPDEST
000006df: PUSH2 0x0329
000006e2: PUSH1 0x04
000006e4: DUP1
000006e5: CALLDATASIZE
000006e6: SUB
000006e7: PUSH1 0x40
000006e9: DUP2
000006ea: LT
000006eb: ISZERO
000006ec: PUSH2 0x06f4
000006ef: JUMPI
000006f0: PUSH1 0x00
000006f2: DUP1
000006f3: REVERT
000006f4: JUMPDEST
000006f5: POP
000006f6: PUSH1 0x01
000006f8: PUSH1 0x01
000006fa: PUSH1 0xa0
000006fc: SHL
000006fd: SUB
000006fe: DUP2
000006ff: CALLDATALOAD
00000700: AND
00000701: SWAP1
00000702: PUSH1 0x20
00000704: ADD
00000705: CALLDATALOAD
00000706: PUSH2 0x162b
00000709: JUMP
0000070a: JUMPDEST
0000070b: PUSH2 0x05de
0000070e: PUSH2 0x1814
00000711: JUMP
00000712: JUMPDEST
00000713: PUSH2 0x02f1
00000716: PUSH2 0x1823
00000719: JUMP
0000071a: JUMPDEST
0000071b: PUSH2 0x0740
0000071e: PUSH1 0x04
00000720: DUP1
00000721: CALLDATASIZE
00000722: SUB
00000723: PUSH1 0x20
00000725: DUP2
00000726: LT
00000727: ISZERO
00000728: PUSH2 0x0730
0000072b: JUMPI
0000072c: PUSH1 0x00
0000072e: DUP1
0000072f: REVERT
00000730: JUMPDEST
00000731: POP
00000732: CALLDATALOAD
00000733: PUSH1 0x01
00000735: PUSH1 0x01
00000737: PUSH1 0xa0
00000739: SHL
0000073a: SUB
0000073b: AND
0000073c: PUSH2 0x1829
0000073f: JUMP
00000740: JUMPDEST
00000741: PUSH1 0x40
00000743: DUP1
00000744: MLOAD
00000745: SWAP11
00000746: DUP12
00000747: MSTORE
00000748: PUSH1 0x20
0000074a: DUP12
0000074b: ADD
0000074c: SWAP10
0000074d: SWAP1
0000074e: SWAP10
0000074f: MSTORE
00000750: DUP10
00000751: DUP10
00000752: ADD
00000753: SWAP8
00000754: SWAP1
00000755: SWAP8
00000756: MSTORE
00000757: PUSH1 0x60
00000759: DUP10
0000075a: ADD
0000075b: SWAP6
0000075c: SWAP1
0000075d: SWAP6
0000075e: MSTORE
0000075f: PUSH1 0x80
00000761: DUP9
00000762: ADD
00000763: SWAP4
00000764: SWAP1
00000765: SWAP4
00000766: MSTORE
00000767: PUSH1 0xa0
00000769: DUP8
0000076a: ADD
0000076b: SWAP2
0000076c: SWAP1
0000076d: SWAP2
0000076e: MSTORE
0000076f: PUSH5 0xffffffffff
00000775: SWAP1
00000776: DUP2
00000777: AND
00000778: PUSH1 0xc0
0000077a: DUP8
0000077b: ADD
0000077c: MSTORE
0000077d: SWAP1
0000077e: DUP2
0000077f: AND
00000780: PUSH1 0xe0
00000782: DUP7
00000783: ADD
00000784: MSTORE
00000785: SWAP1
00000786: DUP2
00000787: AND
00000788: PUSH2 0x0100
0000078b: DUP6
0000078c: ADD
0000078d: MSTORE
0000078e: AND
0000078f: PUSH2 0x0120
00000792: DUP4
00000793: ADD
00000794: MSTORE
00000795: MLOAD
00000796: SWAP1
00000797: DUP2
00000798: SWAP1
00000799: SUB
0000079a: PUSH2 0x0140
0000079d: ADD
0000079e: SWAP1
0000079f: RETURN
000007a0: JUMPDEST
000007a1: PUSH2 0x0329
000007a4: PUSH1 0x04
000007a6: DUP1
000007a7: CALLDATASIZE
000007a8: SUB
000007a9: PUSH1 0x20
000007ab: DUP2
000007ac: LT
000007ad: ISZERO
000007ae: PUSH2 0x07b6
000007b1: JUMPI
000007b2: PUSH1 0x00
000007b4: DUP1
000007b5: REVERT
000007b6: JUMPDEST
000007b7: POP
000007b8: CALLDATALOAD
000007b9: PUSH1 0x01
000007bb: PUSH1 0x01
000007bd: PUSH1 0xa0
000007bf: SHL
000007c0: SUB
000007c1: AND
000007c2: PUSH2 0x18a1
000007c5: JUMP
000007c6: JUMPDEST
000007c7: PUSH2 0x02f1
000007ca: PUSH2 0x19ac
000007cd: JUMP
000007ce: JUMPDEST
000007cf: PUSH2 0x0804
000007d2: PUSH1 0x04
000007d4: DUP1
000007d5: CALLDATASIZE
000007d6: SUB
000007d7: PUSH1 0x60
000007d9: DUP2
000007da: LT
000007db: ISZERO
000007dc: PUSH2 0x07e4
000007df: JUMPI
000007e0: PUSH1 0x00
000007e2: DUP1
000007e3: REVERT
000007e4: JUMPDEST
000007e5: POP
000007e6: PUSH1 0x01
000007e8: PUSH1 0x01
000007ea: PUSH1 0xa0
000007ec: SHL
000007ed: SUB
000007ee: DUP2
000007ef: CALLDATALOAD
000007f0: DUP2
000007f1: AND
000007f2: SWAP2
000007f3: PUSH1 0x20
000007f5: DUP2
000007f6: ADD
000007f7: CALLDATALOAD
000007f8: SWAP1
000007f9: SWAP2
000007fa: AND
000007fb: SWAP1
000007fc: PUSH1 0x40
000007fe: ADD
000007ff: CALLDATALOAD
00000800: PUSH2 0x19b2
00000803: JUMP
00000804: JUMPDEST
00000805: PUSH1 0x40
00000807: DUP1
00000808: MLOAD
00000809: SWAP6
0000080a: DUP7
0000080b: MSTORE
0000080c: PUSH1 0x20
0000080e: DUP7
0000080f: ADD
00000810: SWAP5
00000811: SWAP1
00000812: SWAP5
00000813: MSTORE
00000814: DUP5
00000815: DUP5
00000816: ADD
00000817: SWAP3
00000818: SWAP1
00000819: SWAP3
0000081a: MSTORE
0000081b: PUSH1 0x60
0000081d: DUP5
0000081e: ADD
0000081f: MSTORE
00000820: PUSH1 0x80
00000822: DUP4
00000823: ADD
00000824: MSTORE
00000825: MLOAD
00000826: SWAP1
00000827: DUP2
00000828: SWAP1
00000829: SUB
0000082a: PUSH1 0xa0
0000082c: ADD
0000082d: SWAP1
0000082e: RETURN
0000082f: JUMPDEST
00000830: PUSH2 0x05de
00000833: PUSH2 0x1a2e
00000836: JUMP
00000837: JUMPDEST
00000838: PUSH2 0x02f1
0000083b: PUSH2 0x1a3d
0000083e: JUMP
0000083f: JUMPDEST
00000840: PUSH2 0x0329
00000843: PUSH1 0x04
00000845: DUP1
00000846: CALLDATASIZE
00000847: SUB
00000848: PUSH1 0x80
0000084a: DUP2
0000084b: LT
0000084c: ISZERO
0000084d: PUSH2 0x0855
00000850: JUMPI
00000851: PUSH1 0x00
00000853: DUP1
00000854: REVERT
00000855: JUMPDEST
00000856: POP
00000857: PUSH1 0x01
00000859: PUSH1 0x01
0000085b: PUSH1 0xa0
0000085d: SHL
0000085e: SUB
0000085f: DUP2
00000860: CALLDATALOAD
00000861: AND
00000862: SWAP1
00000863: PUSH1 0x20
00000865: DUP2
00000866: ADD
00000867: CALLDATALOAD
00000868: SWAP1
00000869: PUSH1 0x40
0000086b: DUP2
0000086c: ADD
0000086d: CALLDATALOAD
0000086e: SWAP1
0000086f: PUSH1 0x60
00000871: ADD
00000872: CALLDATALOAD
00000873: ISZERO
00000874: ISZERO
00000875: PUSH2 0x1a43
00000878: JUMP
00000879: JUMPDEST
0000087a: PUSH1 0x9a
0000087c: SLOAD
0000087d: PUSH1 0xff
0000087f: AND
00000880: DUP2
00000881: JUMP
00000882: JUMPDEST
00000883: PUSH1 0x97
00000885: SLOAD
00000886: DUP2
00000887: JUMP
00000888: JUMPDEST
00000889: PUSH2 0x0891
0000088c: DUP2
0000088d: PUSH2 0x0a60
00000890: JUMP
00000891: JUMPDEST
00000892: PUSH2 0x089a
00000895: DUP2
00000896: PUSH2 0x089d
00000899: JUMP
0000089a: JUMPDEST
0000089b: POP
0000089c: JUMP
0000089d: JUMPDEST
0000089e: PUSH1 0x01
000008a0: PUSH1 0x01
000008a2: PUSH1 0xa0
000008a4: SHL
000008a5: SUB
000008a6: DUP2
000008a7: AND
000008a8: PUSH1 0x00
000008aa: SWAP1
000008ab: DUP2
000008ac: MSTORE
000008ad: PUSH1 0x9b
000008af: PUSH1 0x20
000008b1: MSTORE
000008b2: PUSH1 0x40
000008b4: SWAP1
000008b5: KECCAK256
000008b6: SLOAD
000008b7: DUP2
000008b8: SWAP1
000008b9: PUSH2 0x08fa
000008bc: JUMPI
000008bd: PUSH1 0x40
000008bf: DUP1
000008c0: MLOAD
000008c1: PUSH3 0x461bcd
000008c5: PUSH1 0xe5
000008c7: SHL
000008c8: DUP2
000008c9: MSTORE
000008ca: PUSH1 0x20
000008cc: PUSH1 0x04
000008ce: DUP3
000008cf: ADD
000008d0: MSTORE
000008d1: PUSH1 0x0e
000008d3: PUSH1 0x24
000008d5: DUP3
000008d6: ADD
000008d7: MSTORE
000008d8: PUSH14 0x1413d3d317d393d517d193d55391
000008e7: PUSH1 0x92
000008e9: SHL
000008ea: PUSH1 0x44
000008ec: DUP3
000008ed: ADD
000008ee: MSTORE
000008ef: SWAP1
000008f0: MLOAD
000008f1: SWAP1
000008f2: DUP2
000008f3: SWAP1
000008f4: SUB
000008f5: PUSH1 0x64
000008f7: ADD
000008f8: SWAP1
000008f9: REVERT
000008fa: JUMPDEST
000008fb: PUSH1 0x9a
000008fd: SLOAD
000008fe: PUSH1 0xff
00000900: AND
00000901: ISZERO
00000902: PUSH2 0x0952
00000905: JUMPI
00000906: PUSH1 0x40
00000908: DUP1
00000909: MLOAD
0000090a: PUSH3 0x461bcd
0000090e: PUSH1 0xe5
00000910: SHL
00000911: DUP2
00000912: MSTORE
00000913: PUSH1 0x20
00000915: PUSH1 0x04
00000917: DUP3
00000918: ADD
00000919: MSTORE
0000091a: PUSH1 0x18
0000091c: PUSH1 0x24
0000091e: DUP3
0000091f: ADD
00000920: MSTORE
00000921: PUSH32 0x4e4f545f414c4c4f5745445f494e5f454d455247454e43590000000000000000
00000942: PUSH1 0x44
00000944: DUP3
00000945: ADD
00000946: MSTORE
00000947: SWAP1
00000948: MLOAD
00000949: SWAP1
0000094a: DUP2
0000094b: SWAP1
0000094c: SUB
0000094d: PUSH1 0x64
0000094f: ADD
00000950: SWAP1
00000951: REVERT
00000952: JUMPDEST
00000953: PUSH1 0x00
00000955: PUSH2 0x095d
00000958: DUP4
00000959: PUSH2 0x13d5
0000095c: JUMP
0000095d: JUMPDEST
0000095e: SWAP1
0000095f: POP
00000960: DUP1
00000961: PUSH2 0x096a
00000964: JUMPI
00000965: POP
00000966: PUSH2 0x0a09
00000969: JUMP
0000096a: JUMPDEST
0000096b: PUSH1 0x01
0000096d: PUSH1 0x01
0000096f: PUSH1 0xa0
00000971: SHL
00000972: SUB
00000973: DUP4
00000974: AND
00000975: PUSH1 0x00
00000977: SWAP1
00000978: DUP2
00000979: MSTORE
0000097a: PUSH1 0x9d
0000097c: PUSH1 0x20
0000097e: SWAP1
0000097f: DUP2
00000980: MSTORE
00000981: PUSH1 0x40
00000983: DUP1
00000984: DUP4
00000985: KECCAK256
00000986: CALLER
00000987: DUP5
00000988: MSTORE
00000989: SWAP1
0000098a: SWAP2
0000098b: MSTORE
0000098c: SWAP1
0000098d: KECCAK256
0000098e: PUSH1 0x03
00000990: DUP2
00000991: ADD
00000992: SLOAD
00000993: PUSH2 0x099c
00000996: SWAP1
00000997: DUP4
00000998: PUSH2 0x1b2c
0000099b: JUMP
0000099c: JUMPDEST
0000099d: PUSH1 0x03
0000099f: DUP3
000009a0: ADD
000009a1: SSTORE
000009a2: PUSH2 0x09ab
000009a5: DUP5
000009a6: CALLER
000009a7: PUSH2 0x1b8f
000009aa: JUMP
000009ab: JUMPDEST
000009ac: PUSH2 0x09bf
000009af: PUSH1 0x01
000009b1: PUSH1 0x01
000009b3: PUSH1 0xa0
000009b5: SHL
000009b6: SUB
000009b7: DUP6
000009b8: AND
000009b9: CALLER
000009ba: DUP5
000009bb: PUSH2 0x1c0f
000009be: JUMP
000009bf: JUMPDEST
000009c0: PUSH1 0x40
000009c2: DUP1
000009c3: MLOAD
000009c4: DUP4
000009c5: DUP2
000009c6: MSTORE
000009c7: TIMESTAMP
000009c8: PUSH1 0x20
000009ca: DUP3
000009cb: ADD
000009cc: MSTORE
000009cd: DUP2
000009ce: MLOAD
000009cf: CALLER
000009d0: SWAP3
000009d1: PUSH1 0x01
000009d3: PUSH1 0x01
000009d5: PUSH1 0xa0
000009d7: SHL
000009d8: SUB
000009d9: DUP9
000009da: AND
000009db: SWAP3
000009dc: PUSH32 0xd5eeb1722f31a8860bc267994791dfaa8cd4a69618a5657894ef35b5ee6a1910
000009fd: SWAP3
000009fe: SWAP1
000009ff: DUP2
00000a00: SWAP1
00000a01: SUB
00000a02: SWAP1
00000a03: SWAP2
00000a04: ADD
00000a05: SWAP1
00000a06: LOG3
00000a07: POP
00000a08: POP
00000a09: JUMPDEST
00000a0a: POP
00000a0b: POP
00000a0c: JUMP
00000a0d: JUMPDEST
00000a0e: PUSH1 0x9d
00000a10: PUSH1 0x20
00000a12: SWAP1
00000a13: DUP2
00000a14: MSTORE
00000a15: PUSH1 0x00
00000a17: SWAP3
00000a18: DUP4
00000a19: MSTORE
00000a1a: PUSH1 0x40
00000a1c: DUP1
00000a1d: DUP5
00000a1e: KECCAK256
00000a1f: SWAP1
00000a20: SWAP2
00000a21: MSTORE
00000a22: SWAP1
00000a23: DUP3
00000a24: MSTORE
00000a25: SWAP1
00000a26: KECCAK256
00000a27: DUP1
00000a28: SLOAD
00000a29: PUSH1 0x01
00000a2b: DUP3
00000a2c: ADD
00000a2d: SLOAD
00000a2e: PUSH1 0x02
00000a30: DUP4
00000a31: ADD
00000a32: SLOAD
00000a33: PUSH1 0x03
00000a35: DUP5
00000a36: ADD
00000a37: SLOAD
00000a38: PUSH1 0x04
00000a3a: DUP6
00000a3b: ADD
00000a3c: SLOAD
00000a3d: PUSH1 0x05
00000a3f: SWAP1
00000a40: SWAP6
00000a41: ADD
00000a42: SLOAD
00000a43: SWAP4
00000a44: SWAP5
00000a45: SWAP3
00000a46: SWAP4
00000a47: SWAP2
00000a48: SWAP3
00000a49: SWAP1
00000a4a: SWAP2
00000a4b: PUSH5 0xffffffffff
00000a51: AND
00000a52: DUP7
00000a53: JUMP
00000a54: JUMPDEST
00000a55: PUSH1 0x99
00000a57: SLOAD
00000a58: DUP2
00000a59: JUMP
00000a5a: JUMPDEST
00000a5b: PUSH1 0x98
00000a5d: SLOAD
00000a5e: DUP2
00000a5f: JUMP
00000a60: JUMPDEST
00000a61: PUSH2 0x0a69
00000a64: DUP2
00000a65: PUSH2 0x0f11
00000a68: JUMP
00000a69: JUMPDEST
00000a6a: PUSH1 0x00
00000a6c: PUSH2 0x0a74
00000a6f: DUP3
00000a70: PUSH2 0x1544
00000a73: JUMP
00000a74: JUMPDEST
00000a75: SWAP1
00000a76: POP
00000a77: DUP1
00000a78: PUSH2 0x0a81
00000a7b: JUMPI
00000a7c: POP
00000a7d: PUSH2 0x089a
00000a80: JUMP
00000a81: JUMPDEST
00000a82: PUSH1 0x01
00000a84: PUSH1 0x01
00000a86: PUSH1 0xa0
00000a88: SHL
00000a89: SUB
00000a8a: DUP3
00000a8b: AND
00000a8c: PUSH1 0x00
00000a8e: SWAP1
00000a8f: DUP2
00000a90: MSTORE
00000a91: PUSH1 0xd9
00000a93: PUSH1 0x20
00000a95: SWAP1
00000a96: DUP2
00000a97: MSTORE
00000a98: PUSH1 0x40
00000a9a: DUP1
00000a9b: DUP4
00000a9c: KECCAK256
00000a9d: CALLER
00000a9e: DUP5
00000a9f: MSTORE
00000aa0: SWAP1
00000aa1: SWAP2
00000aa2: MSTORE
00000aa3: SWAP1
00000aa4: KECCAK256
00000aa5: DUP1
00000aa6: SLOAD
00000aa7: PUSH2 0x0ab0
00000aaa: SWAP1
00000aab: DUP4
00000aac: PUSH2 0x1b2c
00000aaf: JUMP
00000ab0: JUMPDEST
00000ab1: DUP2
00000ab2: SSTORE
00000ab3: PUSH2 0x0abc
00000ab6: DUP4
00000ab7: CALLER
00000ab8: PUSH2 0x1c8f
00000abb: JUMP
00000abc: JUMPDEST
00000abd: PUSH1 0xd1
00000abf: SLOAD
00000ac0: PUSH2 0x0ad3
00000ac3: SWAP1
00000ac4: PUSH1 0x01
00000ac6: PUSH1 0x01
00000ac8: PUSH1 0xa0
00000aca: SHL
00000acb: SUB
00000acc: AND
00000acd: CALLER
00000ace: DUP5
00000acf: PUSH2 0x1c0f
00000ad2: JUMP
00000ad3: JUMPDEST
00000ad4: PUSH1 0x40
00000ad6: DUP1
00000ad7: MLOAD
00000ad8: DUP4
00000ad9: DUP2
00000ada: MSTORE
00000adb: TIMESTAMP
00000adc: PUSH1 0x20
00000ade: DUP3
00000adf: ADD
00000ae0: MSTORE
00000ae1: DUP2
00000ae2: MLOAD
00000ae3: CALLER
00000ae4: SWAP3
00000ae5: PUSH1 0x01
00000ae7: PUSH1 0x01
00000ae9: PUSH1 0xa0
00000aeb: SHL
00000aec: SUB
00000aed: DUP8
00000aee: AND
00000aef: SWAP3
00000af0: PUSH32 0x3a8217b8543a68a24a3237f554f6bde895eea533bb07a2fa7bd68ce790fd80fb
00000b11: SWAP3
00000b12: SWAP1
00000b13: DUP2
00000b14: SWAP1
00000b15: SUB
00000b16: SWAP1
00000b17: SWAP2
00000b18: ADD
00000b19: SWAP1
00000b1a: LOG3
00000b1b: POP
00000b1c: POP
00000b1d: POP
00000b1e: JUMP
00000b1f: JUMPDEST
00000b20: PUSH2 0x0b27
00000b23: PUSH2 0x1d11
00000b26: JUMP
00000b27: JUMPDEST
00000b28: PUSH1 0x65
00000b2a: SLOAD
00000b2b: PUSH1 0x01
00000b2d: PUSH1 0x01
00000b2f: PUSH1 0xa0
00000b31: SHL
00000b32: SUB
00000b33: SWAP1
00000b34: DUP2
00000b35: AND
00000b36: SWAP2
00000b37: AND
00000b38: EQ
00000b39: PUSH2 0x0b89
00000b3c: JUMPI
00000b3d: PUSH1 0x40
00000b3f: DUP1
00000b40: MLOAD
00000b41: PUSH3 0x461bcd
00000b45: PUSH1 0xe5
00000b47: SHL
00000b48: DUP2
00000b49: MSTORE
00000b4a: PUSH1 0x20
00000b4c: PUSH1 0x04
00000b4e: DUP3
00000b4f: ADD
00000b50: DUP2
00000b51: SWAP1
00000b52: MSTORE
00000b53: PUSH1 0x24
00000b55: DUP3
00000b56: ADD
00000b57: MSTORE
00000b58: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
00000b79: PUSH1 0x44
00000b7b: DUP3
00000b7c: ADD
00000b7d: MSTORE
00000b7e: SWAP1
00000b7f: MLOAD
00000b80: SWAP1
00000b81: DUP2
00000b82: SWAP1
00000b83: SUB
00000b84: PUSH1 0x64
00000b86: ADD
00000b87: SWAP1
00000b88: REVERT
00000b89: JUMPDEST
00000b8a: DUP1
00000b8b: ISZERO
00000b8c: PUSH2 0x0b9c
00000b8f: JUMPI
00000b90: PUSH2 0x0b97
00000b93: PUSH2 0x1481
00000b96: JUMP
00000b97: JUMPDEST
00000b98: PUSH2 0x0c09
00000b9b: JUMP
00000b9c: JUMPDEST
00000b9d: PUSH1 0x01
00000b9f: PUSH1 0x01
00000ba1: PUSH1 0xa0
00000ba3: SHL
00000ba4: SUB
00000ba5: DUP4
00000ba6: AND
00000ba7: PUSH1 0x00
00000ba9: SWAP1
00000baa: DUP2
00000bab: MSTORE
00000bac: PUSH1 0xd8
00000bae: PUSH1 0x20
00000bb0: MSTORE
00000bb1: PUSH1 0x40
00000bb3: SWAP1
00000bb4: KECCAK256
00000bb5: SLOAD
00000bb6: DUP3
00000bb7: LT
00000bb8: ISZERO
00000bb9: PUSH2 0x0c09
00000bbc: JUMPI
00000bbd: PUSH1 0x40
00000bbf: DUP1
00000bc0: MLOAD
00000bc1: PUSH3 0x461bcd
00000bc5: PUSH1 0xe5
00000bc7: SHL
00000bc8: DUP2
00000bc9: MSTORE
00000bca: PUSH1 0x20
00000bcc: PUSH1 0x04
00000bce: DUP3
00000bcf: ADD
00000bd0: MSTORE
00000bd1: PUSH1 0x13
00000bd3: PUSH1 0x24
00000bd5: DUP3
00000bd6: ADD
00000bd7: MSTORE
00000bd8: PUSH32 0x5550444154455f414c4c5f524551554952454400000000000000000000000000
00000bf9: PUSH1 0x44
00000bfb: DUP3
00000bfc: ADD
00000bfd: MSTORE
00000bfe: SWAP1
00000bff: MLOAD
00000c00: SWAP1
00000c01: DUP2
00000c02: SWAP1
00000c03: SUB
00000c04: PUSH1 0x64
00000c06: ADD
00000c07: SWAP1
00000c08: REVERT
00000c09: JUMPDEST
00000c0a: POP
00000c0b: PUSH1 0x01
00000c0d: PUSH1 0x01
00000c0f: PUSH1 0xa0
00000c11: SHL
00000c12: SUB
00000c13: SWAP1
00000c14: SWAP2
00000c15: AND
00000c16: PUSH1 0x00
00000c18: SWAP1
00000c19: DUP2
00000c1a: MSTORE
00000c1b: PUSH1 0xd8
00000c1d: PUSH1 0x20
00000c1f: MSTORE
00000c20: PUSH1 0x40
00000c22: SWAP1
00000c23: KECCAK256
00000c24: DUP1
00000c25: SLOAD
00000c26: PUSH1 0xd7
00000c28: DUP1
00000c29: SLOAD
00000c2a: SWAP2
00000c2b: SWAP1
00000c2c: SWAP2
00000c2d: SUB
00000c2e: DUP4
00000c2f: ADD
00000c30: SWAP1
00000c31: SSTORE
00000c32: SSTORE
00000c33: JUMP
00000c34: JUMPDEST
00000c35: PUSH1 0x00
00000c37: SLOAD
00000c38: PUSH2 0x0100
00000c3b: SWAP1
00000c3c: DIV
00000c3d: PUSH1 0xff
00000c3f: AND
00000c40: DUP1
00000c41: PUSH2 0x0c4d
00000c44: JUMPI
00000c45: POP
00000c46: PUSH2 0x0c4d
00000c49: PUSH2 0x1d15
00000c4c: JUMP
00000c4d: JUMPDEST
00000c4e: DUP1
00000c4f: PUSH2 0x0c5b
00000c52: JUMPI
00000c53: POP
00000c54: PUSH1 0x00
00000c56: SLOAD
00000c57: PUSH1 0xff
00000c59: AND
00000c5a: ISZERO
00000c5b: JUMPDEST
00000c5c: PUSH2 0x0c96
00000c5f: JUMPI
00000c60: PUSH1 0x40
00000c62: MLOAD
00000c63: PUSH3 0x461bcd
00000c67: PUSH1 0xe5
00000c69: SHL
00000c6a: DUP2
00000c6b: MSTORE
00000c6c: PUSH1 0x04
00000c6e: ADD
00000c6f: DUP1
00000c70: DUP1
00000c71: PUSH1 0x20
00000c73: ADD
00000c74: DUP3
00000c75: DUP2
00000c76: SUB
00000c77: DUP3
00000c78: MSTORE
00000c79: PUSH1 0x2e
00000c7b: DUP2
00000c7c: MSTORE
00000c7d: PUSH1 0x20
00000c7f: ADD
00000c80: DUP1
00000c81: PUSH2 0x2e3d
00000c84: PUSH1 0x2e
00000c86: SWAP2
00000c87: CODECOPY
00000c88: PUSH1 0x40
00000c8a: ADD
00000c8b: SWAP2
00000c8c: POP
00000c8d: POP
00000c8e: PUSH1 0x40
00000c90: MLOAD
00000c91: DUP1
00000c92: SWAP2
00000c93: SUB
00000c94: SWAP1
00000c95: REVERT
00000c96: JUMPDEST
00000c97: PUSH1 0x00
00000c99: SLOAD
00000c9a: PUSH2 0x0100
00000c9d: SWAP1
00000c9e: DIV
00000c9f: PUSH1 0xff
00000ca1: AND
00000ca2: ISZERO
00000ca3: DUP1
00000ca4: ISZERO
00000ca5: PUSH2 0x0cc1
00000ca8: JUMPI
00000ca9: PUSH1 0x00
00000cab: DUP1
00000cac: SLOAD
00000cad: PUSH1 0xff
00000caf: NOT
00000cb0: PUSH2 0xff00
00000cb3: NOT
00000cb4: SWAP1
00000cb5: SWAP2
00000cb6: AND
00000cb7: PUSH2 0x0100
00000cba: OR
00000cbb: AND
00000cbc: PUSH1 0x01
00000cbe: OR
00000cbf: SWAP1
00000cc0: SSTORE
00000cc1: JUMPDEST
00000cc2: DUP3
00000cc3: DUP3
00000cc4: GT
00000cc5: ISZERO
00000cc6: PUSH2 0x0d16
00000cc9: JUMPI
00000cca: PUSH1 0x40
00000ccc: DUP1
00000ccd: MLOAD
00000cce: PUSH3 0x461bcd
00000cd2: PUSH1 0xe5
00000cd4: SHL
00000cd5: DUP2
00000cd6: MSTORE
00000cd7: PUSH1 0x20
00000cd9: PUSH1 0x04
00000cdb: DUP3
00000cdc: ADD
00000cdd: MSTORE
00000cde: PUSH1 0x0d
00000ce0: PUSH1 0x24
00000ce2: DUP3
00000ce3: ADD
00000ce4: MSTORE
00000ce5: PUSH32 0x494e56414c49445f504152414d00000000000000000000000000000000000000
00000d06: PUSH1 0x44
00000d08: DUP3
00000d09: ADD
00000d0a: MSTORE
00000d0b: SWAP1
00000d0c: MLOAD
00000d0d: SWAP1
00000d0e: DUP2
00000d0f: SWAP1
00000d10: SUB
00000d11: PUSH1 0x64
00000d13: ADD
00000d14: SWAP1
00000d15: REVERT
00000d16: JUMPDEST
00000d17: PUSH2 0x0d1e
00000d1a: PUSH2 0x1254
00000d1d: JUMP
00000d1e: JUMPDEST
00000d1f: PUSH1 0xd1
00000d21: DUP1
00000d22: SLOAD
00000d23: PUSH1 0x01
00000d25: PUSH1 0x01
00000d27: PUSH1 0xa0
00000d29: SHL
00000d2a: SUB
00000d2b: NOT
00000d2c: AND
00000d2d: PUSH1 0x01
00000d2f: PUSH1 0x01
00000d31: PUSH1 0xa0
00000d33: SHL
00000d34: SUB
00000d35: DUP8
00000d36: AND
00000d37: OR
00000d38: SWAP1
00000d39: SSTORE
00000d3a: PUSH1 0xd2
00000d3c: DUP5
00000d3d: SWAP1
00000d3e: SSTORE
00000d3f: PUSH8 0x016345785d8a0000
00000d48: PUSH1 0xd5
00000d4a: SSTORE
00000d4b: PUSH2 0x0d54
00000d4e: DUP5
00000d4f: DUP5
00000d50: PUSH2 0x1b2c
00000d53: JUMP
00000d54: JUMPDEST
00000d55: PUSH1 0xd3
00000d57: SSTORE
00000d58: PUSH1 0xd2
00000d5a: SLOAD
00000d5b: PUSH2 0x0d64
00000d5e: SWAP1
00000d5f: DUP4
00000d60: PUSH2 0x1b2c
00000d63: JUMP
00000d64: JUMPDEST
00000d65: PUSH1 0xd4
00000d67: SSTORE
00000d68: PUSH1 0x05
00000d6a: PUSH1 0xd6
00000d6c: SSTORE
00000d6d: DUP1
00000d6e: ISZERO
00000d6f: PUSH2 0x0d7e
00000d72: JUMPI
00000d73: PUSH1 0x00
00000d75: DUP1
00000d76: SLOAD
00000d77: PUSH2 0xff00
00000d7a: NOT
00000d7b: AND
00000d7c: SWAP1
00000d7d: SSTORE
00000d7e: JUMPDEST
00000d7f: POP
00000d80: POP
00000d81: POP
00000d82: POP
00000d83: POP
00000d84: JUMP
00000d85: JUMPDEST
00000d86: PUSH2 0x0d8e
00000d89: DUP4
00000d8a: PUSH2 0x0a60
00000d8d: JUMP
00000d8e: JUMPDEST
00000d8f: PUSH2 0x0d99
00000d92: DUP4
00000d93: DUP4
00000d94: DUP4
00000d95: PUSH2 0x1d1b
00000d98: JUMP
00000d99: JUMPDEST
00000d9a: PUSH2 0x0da3
00000d9d: DUP4
00000d9e: CALLER
00000d9f: PUSH2 0x1c8f
00000da2: JUMP
00000da3: JUMPDEST
00000da4: POP
00000da5: POP
00000da6: POP
00000da7: JUMP
00000da8: JUMPDEST
00000da9: PUSH1 0xd9
00000dab: PUSH1 0x20
00000dad: SWAP1
00000dae: DUP2
00000daf: MSTORE
00000db0: PUSH1 0x00
00000db2: SWAP3
00000db3: DUP4
00000db4: MSTORE
00000db5: PUSH1 0x40
00000db7: DUP1
00000db8: DUP5
00000db9: KECCAK256
00000dba: SWAP1
00000dbb: SWAP2
00000dbc: MSTORE
00000dbd: SWAP1
00000dbe: DUP3
00000dbf: MSTORE
00000dc0: SWAP1
00000dc1: KECCAK256
00000dc2: DUP1
00000dc3: SLOAD
00000dc4: PUSH1 0x01
00000dc6: SWAP1
00000dc7: SWAP2
00000dc8: ADD
00000dc9: SLOAD
00000dca: DUP3
00000dcb: JUMP
00000dcc: JUMPDEST
00000dcd: PUSH1 0x01
00000dcf: PUSH1 0x01
00000dd1: PUSH1 0xa0
00000dd3: SHL
00000dd4: SUB
00000dd5: DUP1
00000dd6: DUP5
00000dd7: AND
00000dd8: PUSH1 0x00
00000dda: SWAP1
00000ddb: DUP2
00000ddc: MSTORE
00000ddd: PUSH1 0x9d
00000ddf: PUSH1 0x20
00000de1: SWAP1
00000de2: DUP2
00000de3: MSTORE
00000de4: PUSH1 0x40
00000de6: DUP1
00000de7: DUP4
00000de8: KECCAK256
00000de9: SWAP4
00000dea: DUP7
00000deb: AND
00000dec: DUP4
00000ded: MSTORE
00000dee: SWAP3
00000def: SWAP1
00000df0: MSTORE
00000df1: SWAP1
00000df2: DUP2
00000df3: KECCAK256
00000df4: PUSH1 0x06
00000df6: ADD
00000df7: DUP1
00000df8: SLOAD
00000df9: DUP3
00000dfa: SWAP2
00000dfb: SWAP1
00000dfc: DUP5
00000dfd: SWAP1
00000dfe: DUP2
00000dff: LT
00000e00: PUSH2 0x0e05
00000e03: JUMPI
00000e04: INVALID
00000e05: JUMPDEST
00000e06: SWAP1
00000e07: PUSH1 0x00
00000e09: MSTORE
00000e0a: PUSH1 0x20
00000e0c: PUSH1 0x00
00000e0e: KECCAK256
00000e0f: SWAP1
00000e10: PUSH1 0x05
00000e12: MUL
00000e13: ADD
00000e14: SWAP1
00000e15: POP
00000e16: PUSH2 0x0e34
00000e19: PUSH1 0x99
00000e1b: SLOAD
00000e1c: DUP3
00000e1d: PUSH1 0x00
00000e1f: ADD
00000e20: SLOAD
00000e21: MUL
00000e22: DUP3
00000e23: PUSH1 0x01
00000e25: ADD
00000e26: SLOAD
00000e27: PUSH2 0x2217
00000e2a: SWAP1
00000e2b: SWAP2
00000e2c: SWAP1
00000e2d: PUSH4 0xffffffff
00000e32: AND
00000e33: JUMP
00000e34: JUMPDEST
00000e35: SWAP6
00000e36: SWAP5
00000e37: POP
00000e38: POP
00000e39: POP
00000e3a: POP
00000e3b: POP
00000e3c: JUMP
00000e3d: JUMPDEST
00000e3e: PUSH1 0xd3
00000e40: SLOAD
00000e41: DUP2
00000e42: JUMP
00000e43: JUMPDEST
00000e44: PUSH2 0x0e4b
00000e47: PUSH2 0x1d11
00000e4a: JUMP
00000e4b: JUMPDEST
00000e4c: PUSH1 0x65
00000e4e: SLOAD
00000e4f: PUSH1 0x01
00000e51: PUSH1 0x01
00000e53: PUSH1 0xa0
00000e55: SHL
00000e56: SUB
00000e57: SWAP1
00000e58: DUP2
00000e59: AND
00000e5a: SWAP2
00000e5b: AND
00000e5c: EQ
00000e5d: PUSH2 0x0ead
00000e60: JUMPI
00000e61: PUSH1 0x40
00000e63: DUP1
00000e64: MLOAD
00000e65: PUSH3 0x461bcd
00000e69: PUSH1 0xe5
00000e6b: SHL
00000e6c: DUP2
00000e6d: MSTORE
00000e6e: PUSH1 0x20
00000e70: PUSH1 0x04
00000e72: DUP3
00000e73: ADD
00000e74: DUP2
00000e75: SWAP1
00000e76: MSTORE
00000e77: PUSH1 0x24
00000e79: DUP3
00000e7a: ADD
00000e7b: MSTORE
00000e7c: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
00000e9d: PUSH1 0x44
00000e9f: DUP3
00000ea0: ADD
00000ea1: MSTORE
00000ea2: SWAP1
00000ea3: MLOAD
00000ea4: SWAP1
00000ea5: DUP2
00000ea6: SWAP1
00000ea7: SUB
00000ea8: PUSH1 0x64
00000eaa: ADD
00000eab: SWAP1
00000eac: REVERT
00000ead: JUMPDEST
00000eae: PUSH1 0x65
00000eb0: SLOAD
00000eb1: PUSH1 0x40
00000eb3: MLOAD
00000eb4: PUSH1 0x00
00000eb6: SWAP2
00000eb7: PUSH1 0x01
00000eb9: PUSH1 0x01
00000ebb: PUSH1 0xa0
00000ebd: SHL
00000ebe: SUB
00000ebf: AND
00000ec0: SWAP1
00000ec1: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00000ee2: SWAP1
00000ee3: DUP4
00000ee4: SWAP1
00000ee5: LOG3
00000ee6: PUSH1 0x65
00000ee8: DUP1
00000ee9: SLOAD
00000eea: PUSH1 0x01
00000eec: PUSH1 0x01
00000eee: PUSH1 0xa0
00000ef0: SHL
00000ef1: SUB
00000ef2: NOT
00000ef3: AND
00000ef4: SWAP1
00000ef5: SSTORE
00000ef6: JUMP
00000ef7: JUMPDEST
00000ef8: PUSH2 0x0f00
00000efb: DUP4
00000efc: PUSH2 0x0a60
00000eff: JUMP
00000f00: JUMPDEST
00000f01: PUSH2 0x0d99
00000f04: DUP4
00000f05: DUP4
00000f06: DUP4
00000f07: PUSH2 0x2259
00000f0a: JUMP
00000f0b: JUMPDEST
00000f0c: PUSH1 0xd2
00000f0e: SLOAD
00000f0f: DUP2
00000f10: JUMP
00000f11: JUMPDEST
00000f12: PUSH1 0x01
00000f14: PUSH1 0x01
00000f16: PUSH1 0xa0
00000f18: SHL
00000f19: SUB
00000f1a: DUP2
00000f1b: AND
00000f1c: PUSH1 0x00
00000f1e: SWAP1
00000f1f: DUP2
00000f20: MSTORE
00000f21: PUSH1 0x9b
00000f23: PUSH1 0x20
00000f25: MSTORE
00000f26: PUSH1 0x40
00000f28: SWAP1
00000f29: KECCAK256
00000f2a: SLOAD
00000f2b: DUP2
00000f2c: SWAP1
00000f2d: PUSH2 0x0f6e
00000f30: JUMPI
00000f31: PUSH1 0x40
00000f33: DUP1
00000f34: MLOAD
00000f35: PUSH3 0x461bcd
00000f39: PUSH1 0xe5
00000f3b: SHL
00000f3c: DUP2
00000f3d: MSTORE
00000f3e: PUSH1 0x20
00000f40: PUSH1 0x04
00000f42: DUP3
00000f43: ADD
00000f44: MSTORE
00000f45: PUSH1 0x0e
00000f47: PUSH1 0x24
00000f49: DUP3
00000f4a: ADD
00000f4b: MSTORE
00000f4c: PUSH14 0x1413d3d317d393d517d193d55391
00000f5b: PUSH1 0x92
00000f5d: SHL
00000f5e: PUSH1 0x44
00000f60: DUP3
00000f61: ADD
00000f62: MSTORE
00000f63: SWAP1
00000f64: MLOAD
00000f65: SWAP1
00000f66: DUP2
00000f67: SWAP1
00000f68: SUB
00000f69: PUSH1 0x64
00000f6b: ADD
00000f6c: SWAP1
00000f6d: REVERT
00000f6e: JUMPDEST
00000f6f: PUSH1 0x01
00000f71: PUSH1 0x01
00000f73: PUSH1 0xa0
00000f75: SHL
00000f76: SUB
00000f77: DUP3
00000f78: AND
00000f79: PUSH1 0x00
00000f7b: SWAP1
00000f7c: DUP2
00000f7d: MSTORE
00000f7e: PUSH1 0xd8
00000f80: PUSH1 0x20
00000f82: MSTORE
00000f83: PUSH1 0x40
00000f85: SWAP1
00000f86: KECCAK256
00000f87: PUSH1 0x02
00000f89: DUP2
00000f8a: ADD
00000f8b: SLOAD
00000f8c: NUMBER
00000f8d: GT
00000f8e: PUSH2 0x0f97
00000f91: JUMPI
00000f92: POP
00000f93: PUSH2 0x0a09
00000f96: JUMP
00000f97: JUMPDEST
00000f98: PUSH1 0x01
00000f9a: PUSH1 0x01
00000f9c: PUSH1 0xa0
00000f9e: SHL
00000f9f: SUB
00000fa0: DUP4
00000fa1: AND
00000fa2: PUSH1 0x00
00000fa4: SWAP1
00000fa5: DUP2
00000fa6: MSTORE
00000fa7: PUSH1 0x9b
00000fa9: PUSH1 0x20
00000fab: MSTORE
00000fac: PUSH1 0x40
00000fae: DUP2
00000faf: KECCAK256
00000fb0: SWAP1
00000fb1: PUSH2 0x0fb9
00000fb4: DUP6
00000fb5: PUSH2 0x2654
00000fb8: JUMP
00000fb9: JUMPDEST
00000fba: SWAP1
00000fbb: POP
00000fbc: DUP3
00000fbd: PUSH1 0x02
00000fbf: ADD
00000fc0: SLOAD
00000fc1: PUSH1 0x00
00000fc3: EQ
00000fc4: ISZERO
00000fc5: DUP1
00000fc6: ISZERO
00000fc7: PUSH2 0x0fd4
00000fca: JUMPI
00000fcb: POP
00000fcc: PUSH1 0x00
00000fce: DUP3
00000fcf: PUSH1 0x02
00000fd1: ADD
00000fd2: SLOAD
00000fd3: GT
00000fd4: JUMPDEST
00000fd5: DUP1
00000fd6: ISZERO
00000fd7: PUSH2 0x0fe0
00000fda: JUMPI
00000fdb: POP
00000fdc: PUSH1 0x00
00000fde: DUP2
00000fdf: GT
00000fe0: JUMPDEST
00000fe1: ISZERO
00000fe2: PUSH2 0x1163
00000fe5: JUMPI
00000fe6: PUSH1 0xd1
00000fe8: SLOAD
00000fe9: PUSH1 0x9e
00000feb: SLOAD
00000fec: PUSH1 0x01
00000fee: PUSH1 0x01
00000ff0: PUSH1 0xa0
00000ff2: SHL
00000ff3: SUB
00000ff4: SWAP2
00000ff5: DUP3
00000ff6: AND
00000ff7: SWAP2
00000ff8: PUSH4 0x40c10f19
00000ffd: SWAP2
00000ffe: AND
00000fff: PUSH2 0x1009
00001002: DUP5
00001003: PUSH1 0x09
00001005: PUSH2 0x2696
00001008: JUMP
00001009: JUMPDEST
0000100a: PUSH1 0x40
0000100c: MLOAD
0000100d: DUP4
0000100e: PUSH4 0xffffffff
00001013: AND
00001014: PUSH1 0xe0
00001016: SHL
00001017: DUP2
00001018: MSTORE
00001019: PUSH1 0x04
0000101b: ADD
0000101c: DUP1
0000101d: DUP4
0000101e: PUSH1 0x01
00001020: PUSH1 0x01
00001022: PUSH1 0xa0
00001024: SHL
00001025: SUB
00001026: AND
00001027: DUP2
00001028: MSTORE
00001029: PUSH1 0x20
0000102b: ADD
0000102c: DUP3
0000102d: DUP2
0000102e: MSTORE
0000102f: PUSH1 0x20
00001031: ADD
00001032: SWAP3
00001033: POP
00001034: POP
00001035: POP
00001036: PUSH1 0x00
00001038: PUSH1 0x40
0000103a: MLOAD
0000103b: DUP1
0000103c: DUP4
0000103d: SUB
0000103e: DUP2
0000103f: PUSH1 0x00
00001041: DUP8
00001042: DUP1
00001043: EXTCODESIZE
00001044: ISZERO
00001045: DUP1
00001046: ISZERO
00001047: PUSH2 0x104f
0000104a: JUMPI
0000104b: PUSH1 0x00
0000104d: DUP1
0000104e: REVERT
0000104f: JUMPDEST
00001050: POP
00001051: GAS
00001052: CALL
00001053: ISZERO
00001054: DUP1
00001055: ISZERO
00001056: PUSH2 0x1063
00001059: JUMPI
0000105a: RETURNDATASIZE
0000105b: PUSH1 0x00
0000105d: DUP1
0000105e: RETURNDATACOPY
0000105f: RETURNDATASIZE
00001060: PUSH1 0x00
00001062: REVERT
00001063: JUMPDEST
00001064: POP
00001065: POP
00001066: PUSH1 0xd1
00001068: SLOAD
00001069: PUSH1 0x40
0000106b: DUP1
0000106c: MLOAD
0000106d: PUSH32 0x40c10f1900000000000000000000000000000000000000000000000000000000
0000108e: DUP2
0000108f: MSTORE
00001090: ADDRESS
00001091: PUSH1 0x04
00001093: DUP3
00001094: ADD
00001095: MSTORE
00001096: PUSH1 0x24
00001098: DUP2
00001099: ADD
0000109a: DUP7
0000109b: SWAP1
0000109c: MSTORE
0000109d: SWAP1
0000109e: MLOAD
0000109f: PUSH1 0x01
000010a1: PUSH1 0x01
000010a3: PUSH1 0xa0
000010a5: SHL
000010a6: SUB
000010a7: SWAP1
000010a8: SWAP3
000010a9: AND
000010aa: SWAP4
000010ab: POP
000010ac: PUSH4 0x40c10f19
000010b1: SWAP3
000010b2: POP
000010b3: PUSH1 0x44
000010b5: DUP1
000010b6: DUP3
000010b7: ADD
000010b8: SWAP3
000010b9: PUSH1 0x00
000010bb: SWAP3
000010bc: SWAP1
000010bd: SWAP2
000010be: SWAP1
000010bf: DUP3
000010c0: SWAP1
000010c1: SUB
000010c2: ADD
000010c3: DUP2
000010c4: DUP4
000010c5: DUP8
000010c6: DUP1
000010c7: EXTCODESIZE
000010c8: ISZERO
000010c9: DUP1
000010ca: ISZERO
000010cb: PUSH2 0x10d3
000010ce: JUMPI
000010cf: PUSH1 0x00
000010d1: DUP1
000010d2: REVERT
000010d3: JUMPDEST
000010d4: POP
000010d5: GAS
000010d6: CALL
000010d7: ISZERO
000010d8: DUP1
000010d9: ISZERO
000010da: PUSH2 0x10e7
000010dd: JUMPI
000010de: RETURNDATASIZE
000010df: PUSH1 0x00
000010e1: DUP1
000010e2: RETURNDATACOPY
000010e3: RETURNDATASIZE
000010e4: PUSH1 0x00
000010e6: REVERT
000010e7: JUMPDEST
000010e8: POP
000010e9: POP
000010ea: POP
000010eb: PUSH1 0x02
000010ed: DUP4
000010ee: ADD
000010ef: SLOAD
000010f0: PUSH2 0x111b
000010f3: SWAP2
000010f4: POP
000010f5: PUSH2 0x1110
000010f8: SWAP1
000010f9: PUSH2 0x110a
000010fc: DUP5
000010fd: PUSH8 0x0de0b6b3a7640000
00001106: PUSH2 0x26d8
00001109: JUMP
0000110a: JUMPDEST
0000110b: SWAP1
0000110c: PUSH2 0x2696
0000110f: JUMP
00001110: JUMPDEST
00001111: PUSH1 0x01
00001113: DUP6
00001114: ADD
00001115: SLOAD
00001116: SWAP1
00001117: PUSH2 0x1b2c
0000111a: JUMP
0000111b: JUMPDEST
0000111c: PUSH1 0x01
0000111e: DUP5
0000111f: ADD
00001120: SSTORE
00001121: PUSH1 0x40
00001123: DUP1
00001124: MLOAD
00001125: DUP3
00001126: DUP2
00001127: MSTORE
00001128: TIMESTAMP
00001129: PUSH1 0x20
0000112b: DUP3
0000112c: ADD
0000112d: MSTORE
0000112e: DUP2
0000112f: MLOAD
00001130: PUSH1 0x01
00001132: PUSH1 0x01
00001134: PUSH1 0xa0
00001136: SHL
00001137: SUB
00001138: DUP9
00001139: AND
0000113a: SWAP3
0000113b: PUSH32 0x67c5ec4e3f0d3ce4fdaa7d69c15fc05062c881c6f042f24be9acedc9886a32bd
0000115c: SWAP3
0000115d: DUP3
0000115e: SWAP1
0000115f: SUB
00001160: ADD
00001161: SWAP1
00001162: LOG2
00001163: JUMPDEST
00001164: POP
00001165: POP
00001166: NUMBER
00001167: PUSH1 0x02
00001169: SWAP1
0000116a: SWAP2
0000116b: ADD
0000116c: SSTORE
0000116d: POP
0000116e: POP
0000116f: JUMP
00001170: JUMPDEST
00001171: PUSH2 0x1178
00001174: PUSH2 0x1d11
00001177: JUMP
00001178: JUMPDEST
00001179: PUSH1 0x65
0000117b: SLOAD
0000117c: PUSH1 0x01
0000117e: PUSH1 0x01
00001180: PUSH1 0xa0
00001182: SHL
00001183: SUB
00001184: SWAP1
00001185: DUP2
00001186: AND
00001187: SWAP2
00001188: AND
00001189: EQ
0000118a: PUSH2 0x11da
0000118d: JUMPI
0000118e: PUSH1 0x40
00001190: DUP1
00001191: MLOAD
00001192: PUSH3 0x461bcd
00001196: PUSH1 0xe5
00001198: SHL
00001199: DUP2
0000119a: MSTORE
0000119b: PUSH1 0x20
0000119d: PUSH1 0x04
0000119f: DUP3
000011a0: ADD
000011a1: DUP2
000011a2: SWAP1
000011a3: MSTORE
000011a4: PUSH1 0x24
000011a6: DUP3
000011a7: ADD
000011a8: MSTORE
000011a9: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
000011ca: PUSH1 0x44
000011cc: DUP3
000011cd: ADD
000011ce: MSTORE
000011cf: SWAP1
000011d0: MLOAD
000011d1: SWAP1
000011d2: DUP2
000011d3: SWAP1
000011d4: SUB
000011d5: PUSH1 0x64
000011d7: ADD
000011d8: SWAP1
000011d9: REVERT
000011da: JUMPDEST
000011db: PUSH1 0x01
000011dd: PUSH1 0x01
000011df: PUSH1 0xa0
000011e1: SHL
000011e2: SUB
000011e3: DUP3
000011e4: AND
000011e5: PUSH1 0x00
000011e7: SWAP1
000011e8: DUP2
000011e9: MSTORE
000011ea: PUSH1 0x9b
000011ec: PUSH1 0x20
000011ee: MSTORE
000011ef: PUSH1 0x40
000011f1: SWAP1
000011f2: KECCAK256
000011f3: SLOAD
000011f4: DUP3
000011f5: SWAP1
000011f6: PUSH2 0x1237
000011f9: JUMPI
000011fa: PUSH1 0x40
000011fc: DUP1
000011fd: MLOAD
000011fe: PUSH3 0x461bcd
00001202: PUSH1 0xe5
00001204: SHL
00001205: DUP2
00001206: MSTORE
00001207: PUSH1 0x20
00001209: PUSH1 0x04
0000120b: DUP3
0000120c: ADD
0000120d: MSTORE
0000120e: PUSH1 0x0e
00001210: PUSH1 0x24
00001212: DUP3
00001213: ADD
00001214: MSTORE
00001215: PUSH14 0x1413d3d317d393d517d193d55391
00001224: PUSH1 0x92
00001226: SHL
00001227: PUSH1 0x44
00001229: DUP3
0000122a: ADD
0000122b: MSTORE
0000122c: SWAP1
0000122d: MLOAD
0000122e: SWAP1
0000122f: DUP2
00001230: SWAP1
00001231: SUB
00001232: PUSH1 0x64
00001234: ADD
00001235: SWAP1
00001236: REVERT
00001237: JUMPDEST
00001238: POP
00001239: PUSH1 0x01
0000123b: PUSH1 0x01
0000123d: PUSH1 0xa0
0000123f: SHL
00001240: SUB
00001241: SWAP1
00001242: SWAP2
00001243: AND
00001244: PUSH1 0x00
00001246: SWAP1
00001247: DUP2
00001248: MSTORE
00001249: PUSH1 0x9b
0000124b: PUSH1 0x20
0000124d: MSTORE
0000124e: PUSH1 0x40
00001250: SWAP1
00001251: KECCAK256
00001252: SSTORE
00001253: JUMP
00001254: JUMPDEST
00001255: PUSH1 0x00
00001257: SLOAD
00001258: PUSH2 0x0100
0000125b: SWAP1
0000125c: DIV
0000125d: PUSH1 0xff
0000125f: AND
00001260: DUP1
00001261: PUSH2 0x126d
00001264: JUMPI
00001265: POP
00001266: PUSH2 0x126d
00001269: PUSH2 0x1d15
0000126c: JUMP
0000126d: JUMPDEST
0000126e: DUP1
0000126f: PUSH2 0x127b
00001272: JUMPI
00001273: POP
00001274: PUSH1 0x00
00001276: SLOAD
00001277: PUSH1 0xff
00001279: AND
0000127a: ISZERO
0000127b: JUMPDEST
0000127c: PUSH2 0x12b6
0000127f: JUMPI
00001280: PUSH1 0x40
00001282: MLOAD
00001283: PUSH3 0x461bcd
00001287: PUSH1 0xe5
00001289: SHL
0000128a: DUP2
0000128b: MSTORE
0000128c: PUSH1 0x04
0000128e: ADD
0000128f: DUP1
00001290: DUP1
00001291: PUSH1 0x20
00001293: ADD
00001294: DUP3
00001295: DUP2
00001296: SUB
00001297: DUP3
00001298: MSTORE
00001299: PUSH1 0x2e
0000129b: DUP2
0000129c: MSTORE
0000129d: PUSH1 0x20
0000129f: ADD
000012a0: DUP1
000012a1: PUSH2 0x2e3d
000012a4: PUSH1 0x2e
000012a6: SWAP2
000012a7: CODECOPY
000012a8: PUSH1 0x40
000012aa: ADD
000012ab: SWAP2
000012ac: POP
000012ad: POP
000012ae: PUSH1 0x40
000012b0: MLOAD
000012b1: DUP1
000012b2: SWAP2
000012b3: SUB
000012b4: SWAP1
000012b5: REVERT
000012b6: JUMPDEST
000012b7: PUSH1 0x00
000012b9: SLOAD
000012ba: PUSH2 0x0100
000012bd: SWAP1
000012be: DIV
000012bf: PUSH1 0xff
000012c1: AND
000012c2: ISZERO
000012c3: DUP1
000012c4: ISZERO
000012c5: PUSH2 0x12e1
000012c8: JUMPI
000012c9: PUSH1 0x00
000012cb: DUP1
000012cc: SLOAD
000012cd: PUSH1 0xff
000012cf: NOT
000012d0: PUSH2 0xff00
000012d3: NOT
000012d4: SWAP1
000012d5: SWAP2
000012d6: AND
000012d7: PUSH2 0x0100
000012da: OR
000012db: AND
000012dc: PUSH1 0x01
000012de: OR
000012df: SWAP1
000012e0: SSTORE
000012e1: JUMPDEST
000012e2: PUSH2 0x12e9
000012e5: PUSH2 0x2731
000012e8: JUMP
000012e9: JUMPDEST
000012ea: PUSH1 0x0a
000012ec: PUSH1 0x97
000012ee: SSTORE
000012ef: PUSH1 0x03
000012f1: PUSH1 0x98
000012f3: SSTORE
000012f4: PUSH3 0x278d00
000012f8: PUSH1 0x99
000012fa: SSTORE
000012fb: PUSH1 0x9e
000012fd: DUP1
000012fe: SLOAD
000012ff: PUSH1 0x01
00001301: PUSH1 0x01
00001303: PUSH1 0xa0
00001305: SHL
00001306: SUB
00001307: NOT
00001308: AND
00001309: PUSH20 0x82ca6d313bffe56e9096b16633dfd414148d66b1
0000131e: OR
0000131f: SWAP1
00001320: SSTORE
00001321: DUP1
00001322: ISZERO
00001323: PUSH2 0x089a
00001326: JUMPI
00001327: PUSH1 0x00
00001329: DUP1
0000132a: SLOAD
0000132b: PUSH2 0xff00
0000132e: NOT
0000132f: AND
00001330: SWAP1
00001331: SSTORE
00001332: POP
00001333: JUMP
00001334: JUMPDEST
00001335: PUSH2 0x133c
00001338: PUSH2 0x1d11
0000133b: JUMP
0000133c: JUMPDEST
0000133d: PUSH1 0x65
0000133f: SLOAD
00001340: PUSH1 0x01
00001342: PUSH1 0x01
00001344: PUSH1 0xa0
00001346: SHL
00001347: SUB
00001348: SWAP1
00001349: DUP2
0000134a: AND
0000134b: SWAP2
0000134c: AND
0000134d: EQ
0000134e: PUSH2 0x139e
00001351: JUMPI
00001352: PUSH1 0x40
00001354: DUP1
00001355: MLOAD
00001356: PUSH3 0x461bcd
0000135a: PUSH1 0xe5
0000135c: SHL
0000135d: DUP2
0000135e: MSTORE
0000135f: PUSH1 0x20
00001361: PUSH1 0x04
00001363: DUP3
00001364: ADD
00001365: DUP2
00001366: SWAP1
00001367: MSTORE
00001368: PUSH1 0x24
0000136a: DUP3
0000136b: ADD
0000136c: MSTORE
0000136d: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
0000138e: PUSH1 0x44
00001390: DUP3
00001391: ADD
00001392: MSTORE
00001393: SWAP1
00001394: MLOAD
00001395: SWAP1
00001396: DUP2
00001397: SWAP1
00001398: SUB
00001399: PUSH1 0x64
0000139b: ADD
0000139c: SWAP1
0000139d: REVERT
0000139e: JUMPDEST
0000139f: PUSH1 0x9e
000013a1: DUP1
000013a2: SLOAD
000013a3: PUSH1 0x01
000013a5: PUSH1 0x01
000013a7: PUSH1 0xa0
000013a9: SHL
000013aa: SUB
000013ab: NOT
000013ac: AND
000013ad: PUSH1 0x01
000013af: PUSH1 0x01
000013b1: PUSH1 0xa0
000013b3: SHL
000013b4: SUB
000013b5: SWAP3
000013b6: SWAP1
000013b7: SWAP3
000013b8: AND
000013b9: SWAP2
000013ba: SWAP1
000013bb: SWAP2
000013bc: OR
000013bd: SWAP1
000013be: SSTORE
000013bf: JUMP
000013c0: JUMPDEST
000013c1: PUSH1 0x65
000013c3: SLOAD
000013c4: PUSH1 0x01
000013c6: PUSH1 0x01
000013c8: PUSH1 0xa0
000013ca: SHL
000013cb: SUB
000013cc: AND
000013cd: SWAP1
000013ce: JUMP
000013cf: JUMPDEST
000013d0: PUSH1 0xd5
000013d2: SLOAD
000013d3: DUP2
000013d4: JUMP
000013d5: JUMPDEST
000013d6: PUSH1 0x01
000013d8: PUSH1 0x01
000013da: PUSH1 0xa0
000013dc: SHL
000013dd: SUB
000013de: DUP2
000013df: AND
000013e0: PUSH1 0x00
000013e2: SWAP1
000013e3: DUP2
000013e4: MSTORE
000013e5: PUSH1 0x9b
000013e7: PUSH1 0x20
000013e9: SWAP1
000013ea: DUP2
000013eb: MSTORE
000013ec: PUSH1 0x40
000013ee: DUP1
000013ef: DUP4
000013f0: KECCAK256
000013f1: PUSH1 0x9d
000013f3: DUP4
000013f4: MSTORE
000013f5: DUP2
000013f6: DUP5
000013f7: KECCAK256
000013f8: CALLER
000013f9: DUP6
000013fa: MSTORE
000013fb: SWAP1
000013fc: SWAP3
000013fd: MSTORE
000013fe: DUP3
000013ff: KECCAK256
00001400: PUSH1 0x04
00001402: DUP2
00001403: ADD
00001404: SLOAD
00001405: PUSH1 0x03
00001407: DUP4
00001408: ADD
00001409: SLOAD
0000140a: PUSH1 0x01
0000140c: DUP4
0000140d: ADD
0000140e: SLOAD
0000140f: PUSH2 0x1431
00001412: SWAP3
00001413: SWAP2
00001414: PUSH2 0x142b
00001417: SWAP2
00001418: PUSH8 0x0de0b6b3a7640000
00001421: SWAP2
00001422: PUSH2 0x110a
00001425: SWAP2
00001426: SWAP1
00001427: PUSH2 0x26d8
0000142a: JUMP
0000142b: JUMPDEST
0000142c: SWAP1
0000142d: PUSH2 0x2217
00001430: JUMP
00001431: JUMPDEST
00001432: SWAP5
00001433: SWAP4
00001434: POP
00001435: POP
00001436: POP
00001437: POP
00001438: JUMP
00001439: JUMPDEST
0000143a: PUSH1 0xd8
0000143c: PUSH1 0x20
0000143e: MSTORE
0000143f: PUSH1 0x00
00001441: SWAP1
00001442: DUP2
00001443: MSTORE
00001444: PUSH1 0x40
00001446: SWAP1
00001447: KECCAK256
00001448: DUP1
00001449: SLOAD
0000144a: PUSH1 0x01
0000144c: DUP3
0000144d: ADD
0000144e: SLOAD
0000144f: PUSH1 0x02
00001451: SWAP1
00001452: SWAP3
00001453: ADD
00001454: SLOAD
00001455: SWAP1
00001456: SWAP2
00001457: SWAP1
00001458: DUP4
00001459: JUMP
0000145a: JUMPDEST
0000145b: PUSH1 0x9c
0000145d: DUP2
0000145e: DUP2
0000145f: SLOAD
00001460: DUP2
00001461: LT
00001462: PUSH2 0x1467
00001465: JUMPI
00001466: INVALID
00001467: JUMPDEST
00001468: PUSH1 0x00
0000146a: SWAP2
0000146b: DUP3
0000146c: MSTORE
0000146d: PUSH1 0x20
0000146f: SWAP1
00001470: SWAP2
00001471: KECCAK256
00001472: ADD
00001473: SLOAD
00001474: PUSH1 0x01
00001476: PUSH1 0x01
00001478: PUSH1 0xa0
0000147a: SHL
0000147b: SUB
0000147c: AND
0000147d: SWAP1
0000147e: POP
0000147f: DUP2
00001480: JUMP
00001481: JUMPDEST
00001482: PUSH1 0x9c
00001484: SLOAD
00001485: PUSH1 0x00
00001487: JUMPDEST
00001488: DUP2
00001489: DUP2
0000148a: LT
0000148b: ISZERO
0000148c: PUSH2 0x0a09
0000148f: JUMPI
00001490: PUSH2 0x14b9
00001493: PUSH1 0x9c
00001495: DUP3
00001496: DUP2
00001497: SLOAD
00001498: DUP2
00001499: LT
0000149a: PUSH2 0x149f
0000149d: JUMPI
0000149e: INVALID
0000149f: JUMPDEST
000014a0: PUSH1 0x00
000014a2: SWAP2
000014a3: DUP3
000014a4: MSTORE
000014a5: PUSH1 0x20
000014a7: SWAP1
000014a8: SWAP2
000014a9: KECCAK256
000014aa: ADD
000014ab: SLOAD
000014ac: PUSH1 0x01
000014ae: PUSH1 0x01
000014b0: PUSH1 0xa0
000014b2: SHL
000014b3: SUB
000014b4: AND
000014b5: PUSH2 0x0f11
000014b8: JUMP
000014b9: JUMPDEST
000014ba: PUSH1 0x01
000014bc: ADD
000014bd: PUSH2 0x1487
000014c0: JUMP
000014c1: JUMPDEST
000014c2: PUSH2 0x14c9
000014c5: PUSH2 0x1d11
000014c8: JUMP
000014c9: JUMPDEST
000014ca: PUSH1 0x65
000014cc: SLOAD
000014cd: PUSH1 0x01
000014cf: PUSH1 0x01
000014d1: PUSH1 0xa0
000014d3: SHL
000014d4: SUB
000014d5: SWAP1
000014d6: DUP2
000014d7: AND
000014d8: SWAP2
000014d9: AND
000014da: EQ
000014db: PUSH2 0x152b
000014de: JUMPI
000014df: PUSH1 0x40
000014e1: DUP1
000014e2: MLOAD
000014e3: PUSH3 0x461bcd
000014e7: PUSH1 0xe5
000014e9: SHL
000014ea: DUP2
000014eb: MSTORE
000014ec: PUSH1 0x20
000014ee: PUSH1 0x04
000014f0: DUP3
000014f1: ADD
000014f2: DUP2
000014f3: SWAP1
000014f4: MSTORE
000014f5: PUSH1 0x24
000014f7: DUP3
000014f8: ADD
000014f9: MSTORE
000014fa: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
0000151b: PUSH1 0x44
0000151d: DUP3
0000151e: ADD
0000151f: MSTORE
00001520: SWAP1
00001521: MLOAD
00001522: SWAP1
00001523: DUP2
00001524: SWAP1
00001525: SUB
00001526: PUSH1 0x64
00001528: ADD
00001529: SWAP1
0000152a: REVERT
0000152b: JUMPDEST
0000152c: PUSH1 0x9a
0000152e: DUP1
0000152f: SLOAD
00001530: PUSH1 0xff
00001532: NOT
00001533: AND
00001534: SWAP2
00001535: ISZERO
00001536: ISZERO
00001537: SWAP2
00001538: SWAP1
00001539: SWAP2
0000153a: OR
0000153b: SWAP1
0000153c: SSTORE
0000153d: JUMP
0000153e: JUMPDEST
0000153f: PUSH1 0xd6
00001541: SLOAD
00001542: DUP2
00001543: JUMP
00001544: JUMPDEST
00001545: PUSH1 0x01
00001547: PUSH1 0x01
00001549: PUSH1 0xa0
0000154b: SHL
0000154c: SUB
0000154d: DUP2
0000154e: AND
0000154f: PUSH1 0x00
00001551: SWAP1
00001552: DUP2
00001553: MSTORE
00001554: PUSH1 0x9b
00001556: PUSH1 0x20
00001558: SWAP1
00001559: DUP2
0000155a: MSTORE
0000155b: PUSH1 0x40
0000155d: DUP1
0000155e: DUP4
0000155f: KECCAK256
00001560: PUSH1 0xd8
00001562: DUP4
00001563: MSTORE
00001564: DUP2
00001565: DUP5
00001566: KECCAK256
00001567: PUSH1 0xd9
00001569: DUP5
0000156a: MSTORE
0000156b: DUP3
0000156c: DUP6
0000156d: KECCAK256
0000156e: CALLER
0000156f: DUP7
00001570: MSTORE
00001571: SWAP1
00001572: SWAP4
00001573: MSTORE
00001574: SWAP1
00001575: DUP4
00001576: KECCAK256
00001577: PUSH1 0x01
00001579: DUP4
0000157a: ADD
0000157b: SLOAD
0000157c: PUSH1 0x02
0000157e: DUP5
0000157f: ADD
00001580: SLOAD
00001581: SWAP3
00001582: SWAP4
00001583: SWAP3
00001584: NUMBER
00001585: GT
00001586: DUP1
00001587: ISZERO
00001588: PUSH2 0x1594
0000158b: JUMPI
0000158c: POP
0000158d: PUSH1 0x02
0000158f: DUP5
00001590: ADD
00001591: SLOAD
00001592: ISZERO
00001593: ISZERO
00001594: JUMPDEST
00001595: ISZERO
00001596: PUSH2 0x15d7
00001599: JUMPI
0000159a: PUSH1 0x00
0000159c: PUSH2 0x15a4
0000159f: DUP8
000015a0: PUSH2 0x2654
000015a3: JUMP
000015a4: JUMPDEST
000015a5: SWAP1
000015a6: POP
000015a7: PUSH2 0x15d3
000015aa: PUSH2 0x15cc
000015ad: DUP7
000015ae: PUSH1 0x02
000015b0: ADD
000015b1: SLOAD
000015b2: PUSH2 0x110a
000015b5: PUSH8 0x0de0b6b3a7640000
000015be: DUP6
000015bf: PUSH2 0x26d8
000015c2: SWAP1
000015c3: SWAP2
000015c4: SWAP1
000015c5: PUSH4 0xffffffff
000015ca: AND
000015cb: JUMP
000015cc: JUMPDEST
000015cd: DUP4
000015ce: SWAP1
000015cf: PUSH2 0x1b2c
000015d2: JUMP
000015d3: JUMPDEST
000015d4: SWAP2
000015d5: POP
000015d6: POP
000015d7: JUMPDEST
000015d8: PUSH1 0x01
000015da: DUP1
000015db: DUP4
000015dc: ADD
000015dd: SLOAD
000015de: PUSH1 0x01
000015e0: PUSH1 0x01
000015e2: PUSH1 0xa0
000015e4: SHL
000015e5: SUB
000015e6: DUP9
000015e7: AND
000015e8: PUSH1 0x00
000015ea: SWAP1
000015eb: DUP2
000015ec: MSTORE
000015ed: PUSH1 0x9d
000015ef: PUSH1 0x20
000015f1: SWAP1
000015f2: DUP2
000015f3: MSTORE
000015f4: PUSH1 0x40
000015f6: DUP1
000015f7: DUP4
000015f8: KECCAK256
000015f9: CALLER
000015fa: DUP5
000015fb: MSTORE
000015fc: SWAP1
000015fd: SWAP2
000015fe: MSTORE
000015ff: SWAP1
00001600: KECCAK256
00001601: SWAP1
00001602: SWAP2
00001603: ADD
00001604: SLOAD
00001605: PUSH2 0x1621
00001608: SWAP2
00001609: SWAP1
0000160a: PUSH2 0x142b
0000160d: SWAP1
0000160e: PUSH8 0x0de0b6b3a7640000
00001617: SWAP1
00001618: PUSH2 0x110a
0000161b: SWAP1
0000161c: DUP7
0000161d: PUSH2 0x26d8
00001620: JUMP
00001621: JUMPDEST
00001622: SWAP7
00001623: SWAP6
00001624: POP
00001625: POP
00001626: POP
00001627: POP
00001628: POP
00001629: POP
0000162a: JUMP
0000162b: JUMPDEST
0000162c: PUSH2 0x1633
0000162f: PUSH2 0x1d11
00001632: JUMP
00001633: JUMPDEST
00001634: PUSH1 0x65
00001636: SLOAD
00001637: PUSH1 0x01
00001639: PUSH1 0x01
0000163b: PUSH1 0xa0
0000163d: SHL
0000163e: SUB
0000163f: SWAP1
00001640: DUP2
00001641: AND
00001642: SWAP2
00001643: AND
00001644: EQ
00001645: PUSH2 0x1695
00001648: JUMPI
00001649: PUSH1 0x40
0000164b: DUP1
0000164c: MLOAD
0000164d: PUSH3 0x461bcd
00001651: PUSH1 0xe5
00001653: SHL
00001654: DUP2
00001655: MSTORE
00001656: PUSH1 0x20
00001658: PUSH1 0x04
0000165a: DUP3
0000165b: ADD
0000165c: DUP2
0000165d: SWAP1
0000165e: MSTORE
0000165f: PUSH1 0x24
00001661: DUP3
00001662: ADD
00001663: MSTORE
00001664: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
00001685: PUSH1 0x44
00001687: DUP3
00001688: ADD
00001689: MSTORE
0000168a: SWAP1
0000168b: MLOAD
0000168c: SWAP1
0000168d: DUP2
0000168e: SWAP1
0000168f: SUB
00001690: PUSH1 0x64
00001692: ADD
00001693: SWAP1
00001694: REVERT
00001695: JUMPDEST
00001696: PUSH2 0x16a7
00001699: DUP3
0000169a: PUSH1 0x01
0000169c: PUSH1 0x01
0000169e: PUSH1 0xa0
000016a0: SHL
000016a1: SUB
000016a2: AND
000016a3: PUSH2 0x27e2
000016a6: JUMP
000016a7: JUMPDEST
000016a8: PUSH2 0x16f8
000016ab: JUMPI
000016ac: PUSH1 0x40
000016ae: DUP1
000016af: MLOAD
000016b0: PUSH3 0x461bcd
000016b4: PUSH1 0xe5
000016b6: SHL
000016b7: DUP2
000016b8: MSTORE
000016b9: PUSH1 0x20
000016bb: PUSH1 0x04
000016bd: DUP3
000016be: ADD
000016bf: MSTORE
000016c0: PUSH1 0x0d
000016c2: PUSH1 0x24
000016c4: DUP3
000016c5: ADD
000016c6: MSTORE
000016c7: PUSH32 0x494e56414c49445f544f4b454e00000000000000000000000000000000000000
000016e8: PUSH1 0x44
000016ea: DUP3
000016eb: ADD
000016ec: MSTORE
000016ed: SWAP1
000016ee: MLOAD
000016ef: SWAP1
000016f0: DUP2
000016f1: SWAP1
000016f2: SUB
000016f3: PUSH1 0x64
000016f5: ADD
000016f6: SWAP1
000016f7: REVERT
000016f8: JUMPDEST
000016f9: PUSH1 0x01
000016fb: PUSH1 0x01
000016fd: PUSH1 0xa0
000016ff: SHL
00001700: SUB
00001701: DUP3
00001702: AND
00001703: PUSH1 0x00
00001705: SWAP1
00001706: DUP2
00001707: MSTORE
00001708: PUSH1 0x9b
0000170a: PUSH1 0x20
0000170c: MSTORE
0000170d: PUSH1 0x40
0000170f: SWAP1
00001710: KECCAK256
00001711: SLOAD
00001712: ISZERO
00001713: PUSH2 0x1763
00001716: JUMPI
00001717: PUSH1 0x40
00001719: DUP1
0000171a: MLOAD
0000171b: PUSH3 0x461bcd
0000171f: PUSH1 0xe5
00001721: SHL
00001722: DUP2
00001723: MSTORE
00001724: PUSH1 0x20
00001726: PUSH1 0x04
00001728: DUP3
00001729: ADD
0000172a: MSTORE
0000172b: PUSH1 0x13
0000172d: PUSH1 0x24
0000172f: DUP3
00001730: ADD
00001731: MSTORE
00001732: PUSH32 0x504f4f4c5f414c52454144595f45584953545300000000000000000000000000
00001753: PUSH1 0x44
00001755: DUP3
00001756: ADD
00001757: MSTORE
00001758: SWAP1
00001759: MLOAD
0000175a: SWAP1
0000175b: DUP2
0000175c: SWAP1
0000175d: SUB
0000175e: PUSH1 0x64
00001760: ADD
00001761: SWAP1
00001762: REVERT
00001763: JUMPDEST
00001764: PUSH1 0x00
00001766: DUP2
00001767: GT
00001768: PUSH2 0x17b8
0000176b: JUMPI
0000176c: PUSH1 0x40
0000176e: DUP1
0000176f: MLOAD
00001770: PUSH3 0x461bcd
00001774: PUSH1 0xe5
00001776: SHL
00001777: DUP2
00001778: MSTORE
00001779: PUSH1 0x20
0000177b: PUSH1 0x04
0000177d: DUP3
0000177e: ADD
0000177f: MSTORE
00001780: PUSH1 0x0d
00001782: PUSH1 0x24
00001784: DUP3
00001785: ADD
00001786: MSTORE
00001787: PUSH32 0x494e56414c49445f4c494d495400000000000000000000000000000000000000
000017a8: PUSH1 0x44
000017aa: DUP3
000017ab: ADD
000017ac: MSTORE
000017ad: SWAP1
000017ae: MLOAD
000017af: SWAP1
000017b0: DUP2
000017b1: SWAP1
000017b2: SUB
000017b3: PUSH1 0x64
000017b5: ADD
000017b6: SWAP1
000017b7: REVERT
000017b8: JUMPDEST
000017b9: PUSH1 0x9c
000017bb: DUP1
000017bc: SLOAD
000017bd: PUSH1 0x01
000017bf: DUP2
000017c0: ADD
000017c1: SWAP1
000017c2: SWAP2
000017c3: SSTORE
000017c4: PUSH32 0xaf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c
000017e5: ADD
000017e6: DUP1
000017e7: SLOAD
000017e8: PUSH1 0x01
000017ea: PUSH1 0x01
000017ec: PUSH1 0xa0
000017ee: SHL
000017ef: SUB
000017f0: SWAP1
000017f1: SWAP4
000017f2: AND
000017f3: PUSH1 0x01
000017f5: PUSH1 0x01
000017f7: PUSH1 0xa0
000017f9: SHL
000017fa: SUB
000017fb: NOT
000017fc: SWAP1
000017fd: SWAP4
000017fe: AND
000017ff: DUP4
00001800: OR
00001801: SWAP1
00001802: SSTORE
00001803: PUSH1 0x00
00001805: SWAP2
00001806: DUP3
00001807: MSTORE
00001808: PUSH1 0x9b
0000180a: PUSH1 0x20
0000180c: MSTORE
0000180d: PUSH1 0x40
0000180f: SWAP1
00001810: SWAP2
00001811: KECCAK256
00001812: SSTORE
00001813: JUMP
00001814: JUMPDEST
00001815: PUSH1 0x9e
00001817: SLOAD
00001818: PUSH1 0x01
0000181a: PUSH1 0x01
0000181c: PUSH1 0xa0
0000181e: SHL
0000181f: SUB
00001820: AND
00001821: DUP2
00001822: JUMP
00001823: JUMPDEST
00001824: PUSH1 0xd4
00001826: SLOAD
00001827: DUP2
00001828: JUMP
00001829: JUMPDEST
0000182a: PUSH1 0x9b
0000182c: PUSH1 0x20
0000182e: MSTORE
0000182f: PUSH1 0x00
00001831: SWAP1
00001832: DUP2
00001833: MSTORE
00001834: PUSH1 0x40
00001836: SWAP1
00001837: KECCAK256
00001838: DUP1
00001839: SLOAD
0000183a: PUSH1 0x01
0000183c: DUP3
0000183d: ADD
0000183e: SLOAD
0000183f: PUSH1 0x02
00001841: DUP4
00001842: ADD
00001843: SLOAD
00001844: PUSH1 0x03
00001846: DUP5
00001847: ADD
00001848: SLOAD
00001849: PUSH1 0x04
0000184b: DUP6
0000184c: ADD
0000184d: SLOAD
0000184e: PUSH1 0x05
00001850: DUP7
00001851: ADD
00001852: SLOAD
00001853: PUSH1 0x06
00001855: SWAP1
00001856: SWAP7
00001857: ADD
00001858: SLOAD
00001859: SWAP5
0000185a: SWAP6
0000185b: SWAP4
0000185c: SWAP5
0000185d: SWAP3
0000185e: SWAP4
0000185f: SWAP2
00001860: SWAP3
00001861: SWAP1
00001862: SWAP2
00001863: SWAP1
00001864: PUSH5 0xffffffffff
0000186a: DUP1
0000186b: DUP3
0000186c: AND
0000186d: SWAP2
0000186e: PUSH6 0x010000000000
00001875: DUP2
00001876: DIV
00001877: DUP3
00001878: AND
00001879: SWAP2
0000187a: PUSH11 0x0100000000000000000000
00001886: DUP3
00001887: DIV
00001888: DUP2
00001889: AND
0000188a: SWAP2
0000188b: PUSH16 0x01000000000000000000000000000000
0000189c: SWAP1
0000189d: DIV
0000189e: AND
0000189f: DUP11
000018a0: JUMP
000018a1: JUMPDEST
000018a2: PUSH2 0x18a9
000018a5: PUSH2 0x1d11
000018a8: JUMP
000018a9: JUMPDEST
000018aa: PUSH1 0x65
000018ac: SLOAD
000018ad: PUSH1 0x01
000018af: PUSH1 0x01
000018b1: PUSH1 0xa0
000018b3: SHL
000018b4: SUB
000018b5: SWAP1
000018b6: DUP2
000018b7: AND
000018b8: SWAP2
000018b9: AND
000018ba: EQ
000018bb: PUSH2 0x190b
000018be: JUMPI
000018bf: PUSH1 0x40
000018c1: DUP1
000018c2: MLOAD
000018c3: PUSH3 0x461bcd
000018c7: PUSH1 0xe5
000018c9: SHL
000018ca: DUP2
000018cb: MSTORE
000018cc: PUSH1 0x20
000018ce: PUSH1 0x04
000018d0: DUP3
000018d1: ADD
000018d2: DUP2
000018d3: SWAP1
000018d4: MSTORE
000018d5: PUSH1 0x24
000018d7: DUP3
000018d8: ADD
000018d9: MSTORE
000018da: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
000018fb: PUSH1 0x44
000018fd: DUP3
000018fe: ADD
000018ff: MSTORE
00001900: SWAP1
00001901: MLOAD
00001902: SWAP1
00001903: DUP2
00001904: SWAP1
00001905: SUB
00001906: PUSH1 0x64
00001908: ADD
00001909: SWAP1
0000190a: REVERT
0000190b: JUMPDEST
0000190c: PUSH1 0x01
0000190e: PUSH1 0x01
00001910: PUSH1 0xa0
00001912: SHL
00001913: SUB
00001914: DUP2
00001915: AND
00001916: PUSH2 0x1950
00001919: JUMPI
0000191a: PUSH1 0x40
0000191c: MLOAD
0000191d: PUSH3 0x461bcd
00001921: PUSH1 0xe5
00001923: SHL
00001924: DUP2
00001925: MSTORE
00001926: PUSH1 0x04
00001928: ADD
00001929: DUP1
0000192a: DUP1
0000192b: PUSH1 0x20
0000192d: ADD
0000192e: DUP3
0000192f: DUP2
00001930: SUB
00001931: DUP3
00001932: MSTORE
00001933: PUSH1 0x26
00001935: DUP2
00001936: MSTORE
00001937: PUSH1 0x20
00001939: ADD
0000193a: DUP1
0000193b: PUSH2 0x2df6
0000193e: PUSH1 0x26
00001940: SWAP2
00001941: CODECOPY
00001942: PUSH1 0x40
00001944: ADD
00001945: SWAP2
00001946: POP
00001947: POP
00001948: PUSH1 0x40
0000194a: MLOAD
0000194b: DUP1
0000194c: SWAP2
0000194d: SUB
0000194e: SWAP1
0000194f: REVERT
00001950: JUMPDEST
00001951: PUSH1 0x65
00001953: SLOAD
00001954: PUSH1 0x40
00001956: MLOAD
00001957: PUSH1 0x01
00001959: PUSH1 0x01
0000195b: PUSH1 0xa0
0000195d: SHL
0000195e: SUB
0000195f: DUP1
00001960: DUP5
00001961: AND
00001962: SWAP3
00001963: AND
00001964: SWAP1
00001965: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00001986: SWAP1
00001987: PUSH1 0x00
00001989: SWAP1
0000198a: LOG3
0000198b: PUSH1 0x65
0000198d: DUP1
0000198e: SLOAD
0000198f: PUSH1 0x01
00001991: PUSH1 0x01
00001993: PUSH1 0xa0
00001995: SHL
00001996: SUB
00001997: NOT
00001998: AND
00001999: PUSH1 0x01
0000199b: PUSH1 0x01
0000199d: PUSH1 0xa0
0000199f: SHL
000019a0: SUB
000019a1: SWAP3
000019a2: SWAP1
000019a3: SWAP3
000019a4: AND
000019a5: SWAP2
000019a6: SWAP1
000019a7: SWAP2
000019a8: OR
000019a9: SWAP1
000019aa: SSTORE
000019ab: JUMP
000019ac: JUMPDEST
000019ad: PUSH1 0xd7
000019af: SLOAD
000019b0: DUP2
000019b1: JUMP
000019b2: JUMPDEST
000019b3: PUSH1 0x01
000019b5: PUSH1 0x01
000019b7: PUSH1 0xa0
000019b9: SHL
000019ba: SUB
000019bb: DUP1
000019bc: DUP5
000019bd: AND
000019be: PUSH1 0x00
000019c0: SWAP1
000019c1: DUP2
000019c2: MSTORE
000019c3: PUSH1 0x9d
000019c5: PUSH1 0x20
000019c7: SWAP1
000019c8: DUP2
000019c9: MSTORE
000019ca: PUSH1 0x40
000019cc: DUP1
000019cd: DUP4
000019ce: KECCAK256
000019cf: SWAP4
000019d0: DUP7
000019d1: AND
000019d2: DUP4
000019d3: MSTORE
000019d4: SWAP3
000019d5: SWAP1
000019d6: MSTORE
000019d7: SWAP1
000019d8: DUP2
000019d9: KECCAK256
000019da: PUSH1 0x06
000019dc: ADD
000019dd: DUP1
000019de: SLOAD
000019df: DUP3
000019e0: SWAP2
000019e1: DUP3
000019e2: SWAP2
000019e3: DUP3
000019e4: SWAP2
000019e5: DUP3
000019e6: SWAP2
000019e7: DUP3
000019e8: SWAP2
000019e9: SWAP1
000019ea: DUP9
000019eb: SWAP1
000019ec: DUP2
000019ed: LT
000019ee: PUSH2 0x19f3
000019f1: JUMPI
000019f2: INVALID
000019f3: JUMPDEST
000019f4: PUSH1 0x00
000019f6: SWAP2
000019f7: DUP3
000019f8: MSTORE
000019f9: PUSH1 0x20
000019fb: SWAP1
000019fc: SWAP2
000019fd: KECCAK256
000019fe: PUSH1 0x05
00001a00: SWAP1
00001a01: SWAP2
00001a02: MUL
00001a03: ADD
00001a04: DUP1
00001a05: SLOAD
00001a06: PUSH1 0x01
00001a08: DUP3
00001a09: ADD
00001a0a: SLOAD
00001a0b: PUSH1 0x02
00001a0d: DUP4
00001a0e: ADD
00001a0f: SLOAD
00001a10: PUSH1 0x03
00001a12: DUP5
00001a13: ADD
00001a14: SLOAD
00001a15: PUSH1 0x04
00001a17: SWAP1
00001a18: SWAP5
00001a19: ADD
00001a1a: SLOAD
00001a1b: SWAP3
00001a1c: SWAP14
00001a1d: SWAP2
00001a1e: SWAP13
00001a1f: POP
00001a20: SWAP11
00001a21: POP
00001a22: SWAP2
00001a23: SWAP9
00001a24: POP
00001a25: SWAP7
00001a26: POP
00001a27: SWAP5
00001a28: POP
00001a29: POP
00001a2a: POP
00001a2b: POP
00001a2c: POP
00001a2d: JUMP
00001a2e: JUMPDEST
00001a2f: PUSH1 0xd1
00001a31: SLOAD
00001a32: PUSH1 0x01
00001a34: PUSH1 0x01
00001a36: PUSH1 0xa0
00001a38: SHL
00001a39: SUB
00001a3a: AND
00001a3b: DUP2
00001a3c: JUMP
00001a3d: JUMPDEST
00001a3e: PUSH1 0x9c
00001a40: SLOAD
00001a41: SWAP1
00001a42: JUMP
00001a43: JUMPDEST
00001a44: PUSH2 0x1a4b
00001a47: PUSH2 0x1d11
00001a4a: JUMP
00001a4b: JUMPDEST
00001a4c: PUSH1 0x65
00001a4e: SLOAD
00001a4f: PUSH1 0x01
00001a51: PUSH1 0x01
00001a53: PUSH1 0xa0
00001a55: SHL
00001a56: SUB
00001a57: SWAP1
00001a58: DUP2
00001a59: AND
00001a5a: SWAP2
00001a5b: AND
00001a5c: EQ
00001a5d: PUSH2 0x1aad
00001a60: JUMPI
00001a61: PUSH1 0x40
00001a63: DUP1
00001a64: MLOAD
00001a65: PUSH3 0x461bcd
00001a69: PUSH1 0xe5
00001a6b: SHL
00001a6c: DUP2
00001a6d: MSTORE
00001a6e: PUSH1 0x20
00001a70: PUSH1 0x04
00001a72: DUP3
00001a73: ADD
00001a74: DUP2
00001a75: SWAP1
00001a76: MSTORE
00001a77: PUSH1 0x24
00001a79: DUP3
00001a7a: ADD
00001a7b: MSTORE
00001a7c: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
00001a9d: PUSH1 0x44
00001a9f: DUP3
00001aa0: ADD
00001aa1: MSTORE
00001aa2: SWAP1
00001aa3: MLOAD
00001aa4: SWAP1
00001aa5: DUP2
00001aa6: SWAP1
00001aa7: SUB
00001aa8: PUSH1 0x64
00001aaa: ADD
00001aab: SWAP1
00001aac: REVERT
00001aad: JUMPDEST
00001aae: DUP1
00001aaf: ISZERO
00001ab0: PUSH2 0x1abb
00001ab3: JUMPI
00001ab4: PUSH2 0x1abb
00001ab7: PUSH2 0x1481
00001aba: JUMP
00001abb: JUMPDEST
00001abc: PUSH2 0x1ac5
00001abf: DUP5
00001ac0: DUP4
00001ac1: PUSH2 0x162b
00001ac4: JUMP
00001ac5: JUMPDEST
00001ac6: PUSH1 0x01
00001ac8: PUSH1 0x01
00001aca: PUSH1 0xa0
00001acc: SHL
00001acd: SUB
00001ace: DUP5
00001acf: AND
00001ad0: PUSH1 0x00
00001ad2: DUP2
00001ad3: DUP2
00001ad4: MSTORE
00001ad5: PUSH1 0xd8
00001ad7: PUSH1 0x20
00001ad9: SWAP1
00001ada: DUP2
00001adb: MSTORE
00001adc: PUSH1 0x40
00001ade: SWAP2
00001adf: DUP3
00001ae0: SWAP1
00001ae1: KECCAK256
00001ae2: DUP7
00001ae3: SWAP1
00001ae4: SSTORE
00001ae5: PUSH1 0xd7
00001ae7: DUP1
00001ae8: SLOAD
00001ae9: DUP8
00001aea: ADD
00001aeb: SWAP1
00001aec: SSTORE
00001aed: DUP2
00001aee: MLOAD
00001aef: DUP7
00001af0: DUP2
00001af1: MSTORE
00001af2: TIMESTAMP
00001af3: SWAP2
00001af4: DUP2
00001af5: ADD
00001af6: SWAP2
00001af7: SWAP1
00001af8: SWAP2
00001af9: MSTORE
00001afa: DUP2
00001afb: MLOAD
00001afc: PUSH32 0x09f4ecfc148afa46d7c66093530f34af617875df3897405026a6f13425a67709
00001b1d: SWAP3
00001b1e: SWAP2
00001b1f: DUP2
00001b20: SWAP1
00001b21: SUB
00001b22: SWAP1
00001b23: SWAP2
00001b24: ADD
00001b25: SWAP1
00001b26: LOG2
00001b27: POP
00001b28: POP
00001b29: POP
00001b2a: POP
00001b2b: JUMP
00001b2c: JUMPDEST
00001b2d: PUSH1 0x00
00001b2f: DUP3
00001b30: DUP3
00001b31: ADD
00001b32: DUP4
00001b33: DUP2
00001b34: LT
00001b35: ISZERO
00001b36: PUSH2 0x1b86
00001b39: JUMPI
00001b3a: PUSH1 0x40
00001b3c: DUP1
00001b3d: MLOAD
00001b3e: PUSH3 0x461bcd
00001b42: PUSH1 0xe5
00001b44: SHL
00001b45: DUP2
00001b46: MSTORE
00001b47: PUSH1 0x20
00001b49: PUSH1 0x04
00001b4b: DUP3
00001b4c: ADD
00001b4d: MSTORE
00001b4e: PUSH1 0x1b
00001b50: PUSH1 0x24
00001b52: DUP3
00001b53: ADD
00001b54: MSTORE
00001b55: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000
00001b76: PUSH1 0x44
00001b78: DUP3
00001b79: ADD
00001b7a: MSTORE
00001b7b: SWAP1
00001b7c: MLOAD
00001b7d: SWAP1
00001b7e: DUP2
00001b7f: SWAP1
00001b80: SUB
00001b81: PUSH1 0x64
00001b83: ADD
00001b84: SWAP1
00001b85: REVERT
00001b86: JUMPDEST
00001b87: SWAP1
00001b88: POP
00001b89: JUMPDEST
00001b8a: SWAP3
00001b8b: SWAP2
00001b8c: POP
00001b8d: POP
00001b8e: JUMP
00001b8f: JUMPDEST
00001b90: PUSH1 0x01
00001b92: PUSH1 0x01
00001b94: PUSH1 0xa0
00001b96: SHL
00001b97: SUB
00001b98: DUP1
00001b99: DUP4
00001b9a: AND
00001b9b: PUSH1 0x00
00001b9d: DUP2
00001b9e: DUP2
00001b9f: MSTORE
00001ba0: PUSH1 0x9d
00001ba2: PUSH1 0x20
00001ba4: SWAP1
00001ba5: DUP2
00001ba6: MSTORE
00001ba7: PUSH1 0x40
00001ba9: DUP1
00001baa: DUP4
00001bab: KECCAK256
00001bac: SWAP5
00001bad: DUP7
00001bae: AND
00001baf: DUP4
00001bb0: MSTORE
00001bb1: SWAP4
00001bb2: DUP2
00001bb3: MSTORE
00001bb4: DUP4
00001bb5: DUP3
00001bb6: KECCAK256
00001bb7: PUSH1 0x01
00001bb9: ADD
00001bba: SLOAD
00001bbb: SWAP3
00001bbc: DUP3
00001bbd: MSTORE
00001bbe: PUSH1 0x9b
00001bc0: SWAP1
00001bc1: MSTORE
00001bc2: SWAP2
00001bc3: SWAP1
00001bc4: SWAP2
00001bc5: KECCAK256
00001bc6: PUSH1 0x03
00001bc8: ADD
00001bc9: SLOAD
00001bca: PUSH2 0x1be0
00001bcd: SWAP2
00001bce: PUSH8 0x0de0b6b3a7640000
00001bd7: SWAP2
00001bd8: PUSH2 0x110a
00001bdb: SWAP2
00001bdc: PUSH2 0x26d8
00001bdf: JUMP
00001be0: JUMPDEST
00001be1: PUSH1 0x01
00001be3: PUSH1 0x01
00001be5: PUSH1 0xa0
00001be7: SHL
00001be8: SUB
00001be9: SWAP3
00001bea: DUP4
00001beb: AND
00001bec: PUSH1 0x00
00001bee: SWAP1
00001bef: DUP2
00001bf0: MSTORE
00001bf1: PUSH1 0x9d
00001bf3: PUSH1 0x20
00001bf5: SWAP1
00001bf6: DUP2
00001bf7: MSTORE
00001bf8: PUSH1 0x40
00001bfa: DUP1
00001bfb: DUP4
00001bfc: KECCAK256
00001bfd: SWAP5
00001bfe: SWAP1
00001bff: SWAP6
00001c00: AND
00001c01: DUP3
00001c02: MSTORE
00001c03: SWAP3
00001c04: SWAP1
00001c05: SWAP3
00001c06: MSTORE
00001c07: SWAP2
00001c08: SWAP1
00001c09: KECCAK256
00001c0a: PUSH1 0x04
00001c0c: ADD
00001c0d: SSTORE
00001c0e: JUMP
00001c0f: JUMPDEST
00001c10: PUSH1 0x40
00001c12: DUP1
00001c13: MLOAD
00001c14: PUSH1 0x01
00001c16: PUSH1 0x01
00001c18: PUSH1 0xa0
00001c1a: SHL
00001c1b: SUB
00001c1c: DUP5
00001c1d: AND
00001c1e: PUSH1 0x24
00001c20: DUP3
00001c21: ADD
00001c22: MSTORE
00001c23: PUSH1 0x44
00001c25: DUP1
00001c26: DUP3
00001c27: ADD
00001c28: DUP5
00001c29: SWAP1
00001c2a: MSTORE
00001c2b: DUP3
00001c2c: MLOAD
00001c2d: DUP1
00001c2e: DUP4
00001c2f: SUB
00001c30: SWAP1
00001c31: SWAP2
00001c32: ADD
00001c33: DUP2
00001c34: MSTORE
00001c35: PUSH1 0x64
00001c37: SWAP1
00001c38: SWAP2
00001c39: ADD
00001c3a: SWAP1
00001c3b: SWAP2
00001c3c: MSTORE
00001c3d: PUSH1 0x20
00001c3f: DUP2
00001c40: ADD
00001c41: DUP1
00001c42: MLOAD
00001c43: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001c60: AND
00001c61: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00001c82: OR
00001c83: SWAP1
00001c84: MSTORE
00001c85: PUSH2 0x0da3
00001c88: SWAP1
00001c89: DUP5
00001c8a: SWAP1
00001c8b: PUSH2 0x281b
00001c8e: JUMP
00001c8f: JUMPDEST
00001c90: PUSH1 0x01
00001c92: PUSH1 0x01
00001c94: PUSH1 0xa0
00001c96: SHL
00001c97: SUB
00001c98: DUP1
00001c99: DUP4
00001c9a: AND
00001c9b: PUSH1 0x00
00001c9d: DUP2
00001c9e: DUP2
00001c9f: MSTORE
00001ca0: PUSH1 0x9d
00001ca2: PUSH1 0x20
00001ca4: SWAP1
00001ca5: DUP2
00001ca6: MSTORE
00001ca7: PUSH1 0x40
00001ca9: DUP1
00001caa: DUP4
00001cab: KECCAK256
00001cac: SWAP5
00001cad: DUP7
00001cae: AND
00001caf: DUP4
00001cb0: MSTORE
00001cb1: SWAP4
00001cb2: DUP2
00001cb3: MSTORE
00001cb4: DUP4
00001cb5: DUP3
00001cb6: KECCAK256
00001cb7: PUSH1 0x01
00001cb9: SWAP1
00001cba: DUP2
00001cbb: ADD
00001cbc: SLOAD
00001cbd: SWAP4
00001cbe: DUP4
00001cbf: MSTORE
00001cc0: PUSH1 0xd8
00001cc2: SWAP1
00001cc3: SWAP2
00001cc4: MSTORE
00001cc5: SWAP3
00001cc6: SWAP1
00001cc7: KECCAK256
00001cc8: SWAP1
00001cc9: SWAP2
00001cca: ADD
00001ccb: SLOAD
00001ccc: PUSH2 0x1ce2
00001ccf: SWAP2
00001cd0: PUSH8 0x0de0b6b3a7640000
00001cd9: SWAP2
00001cda: PUSH2 0x110a
00001cdd: SWAP2
00001cde: PUSH2 0x26d8
00001ce1: JUMP
00001ce2: JUMPDEST
00001ce3: PUSH1 0x01
00001ce5: PUSH1 0x01
00001ce7: PUSH1 0xa0
00001ce9: SHL
00001cea: SUB
00001ceb: SWAP3
00001cec: DUP4
00001ced: AND
00001cee: PUSH1 0x00
00001cf0: SWAP1
00001cf1: DUP2
00001cf2: MSTORE
00001cf3: PUSH1 0xd9
00001cf5: PUSH1 0x20
00001cf7: SWAP1
00001cf8: DUP2
00001cf9: MSTORE
00001cfa: PUSH1 0x40
00001cfc: DUP1
00001cfd: DUP4
00001cfe: KECCAK256
00001cff: SWAP5
00001d00: SWAP1
00001d01: SWAP6
00001d02: AND
00001d03: DUP3
00001d04: MSTORE
00001d05: SWAP3
00001d06: SWAP1
00001d07: SWAP3
00001d08: MSTORE
00001d09: SWAP2
00001d0a: SWAP1
00001d0b: KECCAK256
00001d0c: PUSH1 0x01
00001d0e: ADD
00001d0f: SSTORE
00001d10: JUMP
00001d11: JUMPDEST
00001d12: CALLER
00001d13: SWAP1
00001d14: JUMP
00001d15: JUMPDEST
00001d16: ADDRESS
00001d17: EXTCODESIZE
00001d18: ISZERO
00001d19: SWAP1
00001d1a: JUMP
00001d1b: JUMPDEST
00001d1c: PUSH1 0x01
00001d1e: PUSH1 0x01
00001d20: PUSH1 0xa0
00001d22: SHL
00001d23: SUB
00001d24: DUP4
00001d25: AND
00001d26: PUSH1 0x00
00001d28: SWAP1
00001d29: DUP2
00001d2a: MSTORE
00001d2b: PUSH1 0x9b
00001d2d: PUSH1 0x20
00001d2f: MSTORE
00001d30: PUSH1 0x40
00001d32: SWAP1
00001d33: KECCAK256
00001d34: SLOAD
00001d35: DUP4
00001d36: SWAP1
00001d37: PUSH2 0x1d78
00001d3a: JUMPI
00001d3b: PUSH1 0x40
00001d3d: DUP1
00001d3e: MLOAD
00001d3f: PUSH3 0x461bcd
00001d43: PUSH1 0xe5
00001d45: SHL
00001d46: DUP2
00001d47: MSTORE
00001d48: PUSH1 0x20
00001d4a: PUSH1 0x04
00001d4c: DUP3
00001d4d: ADD
00001d4e: MSTORE
00001d4f: PUSH1 0x0e
00001d51: PUSH1 0x24
00001d53: DUP3
00001d54: ADD
00001d55: MSTORE
00001d56: PUSH14 0x1413d3d317d393d517d193d55391
00001d65: PUSH1 0x92
00001d67: SHL
00001d68: PUSH1 0x44
00001d6a: DUP3
00001d6b: ADD
00001d6c: MSTORE
00001d6d: SWAP1
00001d6e: MLOAD
00001d6f: SWAP1
00001d70: DUP2
00001d71: SWAP1
00001d72: SUB
00001d73: PUSH1 0x64
00001d75: ADD
00001d76: SWAP1
00001d77: REVERT
00001d78: JUMPDEST
00001d79: PUSH1 0x9a
00001d7b: SLOAD
00001d7c: PUSH1 0xff
00001d7e: AND
00001d7f: ISZERO
00001d80: PUSH2 0x1dd0
00001d83: JUMPI
00001d84: PUSH1 0x40
00001d86: DUP1
00001d87: MLOAD
00001d88: PUSH3 0x461bcd
00001d8c: PUSH1 0xe5
00001d8e: SHL
00001d8f: DUP2
00001d90: MSTORE
00001d91: PUSH1 0x20
00001d93: PUSH1 0x04
00001d95: DUP3
00001d96: ADD
00001d97: MSTORE
00001d98: PUSH1 0x18
00001d9a: PUSH1 0x24
00001d9c: DUP3
00001d9d: ADD
00001d9e: MSTORE
00001d9f: PUSH32 0x4e4f545f414c4c4f5745445f494e5f454d455247454e43590000000000000000
00001dc0: PUSH1 0x44
00001dc2: DUP3
00001dc3: ADD
00001dc4: MSTORE
00001dc5: SWAP1
00001dc6: MLOAD
00001dc7: SWAP1
00001dc8: DUP2
00001dc9: SWAP1
00001dca: SUB
00001dcb: PUSH1 0x64
00001dcd: ADD
00001dce: SWAP1
00001dcf: REVERT
00001dd0: JUMPDEST
00001dd1: PUSH1 0x01
00001dd3: PUSH1 0x01
00001dd5: PUSH1 0xa0
00001dd7: SHL
00001dd8: SUB
00001dd9: DUP5
00001dda: AND
00001ddb: PUSH1 0x00
00001ddd: SWAP1
00001dde: DUP2
00001ddf: MSTORE
00001de0: PUSH1 0x9d
00001de2: PUSH1 0x20
00001de4: SWAP1
00001de5: DUP2
00001de6: MSTORE
00001de7: PUSH1 0x40
00001de9: DUP1
00001dea: DUP4
00001deb: KECCAK256
00001dec: CALLER
00001ded: DUP5
00001dee: MSTORE
00001def: SWAP1
00001df0: SWAP2
00001df1: MSTORE
00001df2: DUP2
00001df3: KECCAK256
00001df4: PUSH1 0x06
00001df6: DUP2
00001df7: ADD
00001df8: DUP1
00001df9: SLOAD
00001dfa: SWAP2
00001dfb: SWAP3
00001dfc: SWAP2
00001dfd: DUP7
00001dfe: SWAP1
00001dff: DUP2
00001e00: LT
00001e01: PUSH2 0x1e06
00001e04: JUMPI
00001e05: INVALID
00001e06: JUMPDEST
00001e07: SWAP1
00001e08: PUSH1 0x00
00001e0a: MSTORE
00001e0b: PUSH1 0x20
00001e0d: PUSH1 0x00
00001e0f: KECCAK256
00001e10: SWAP1
00001e11: PUSH1 0x05
00001e13: MUL
00001e14: ADD
00001e15: SWAP1
00001e16: POP
00001e17: DUP1
00001e18: PUSH1 0x04
00001e1a: ADD
00001e1b: SLOAD
00001e1c: PUSH1 0x00
00001e1e: EQ
00001e1f: PUSH2 0x1e6f
00001e22: JUMPI
00001e23: PUSH1 0x40
00001e25: DUP1
00001e26: MLOAD
00001e27: PUSH3 0x461bcd
00001e2b: PUSH1 0xe5
00001e2d: SHL
00001e2e: DUP2
00001e2f: MSTORE
00001e30: PUSH1 0x20
00001e32: PUSH1 0x04
00001e34: DUP3
00001e35: ADD
00001e36: MSTORE
00001e37: PUSH1 0x0e
00001e39: PUSH1 0x24
00001e3b: DUP3
00001e3c: ADD
00001e3d: MSTORE
00001e3e: PUSH32 0x414c52454144595f455849544544000000000000000000000000000000000000
00001e5f: PUSH1 0x44
00001e61: DUP3
00001e62: ADD
00001e63: MSTORE
00001e64: SWAP1
00001e65: MLOAD
00001e66: SWAP1
00001e67: DUP2
00001e68: SWAP1
00001e69: SUB
00001e6a: PUSH1 0x64
00001e6c: ADD
00001e6d: SWAP1
00001e6e: REVERT
00001e6f: JUMPDEST
00001e70: DUP4
00001e71: DUP1
00001e72: PUSH2 0x1e7f
00001e75: JUMPI
00001e76: POP
00001e77: DUP1
00001e78: PUSH1 0x01
00001e7a: ADD
00001e7b: SLOAD
00001e7c: TIMESTAMP
00001e7d: LT
00001e7e: ISZERO
00001e7f: JUMPDEST
00001e80: PUSH2 0x1ed0
00001e83: JUMPI
00001e84: PUSH1 0x40
00001e86: DUP1
00001e87: MLOAD
00001e88: PUSH3 0x461bcd
00001e8c: PUSH1 0xe5
00001e8e: SHL
00001e8f: DUP2
00001e90: MSTORE
00001e91: PUSH1 0x20
00001e93: PUSH1 0x04
00001e95: DUP3
00001e96: ADD
00001e97: MSTORE
00001e98: PUSH1 0x0e
00001e9a: PUSH1 0x24
00001e9c: DUP3
00001e9d: ADD
00001e9e: MSTORE
00001e9f: PUSH32 0x4d5553545f42455f464f52434544000000000000000000000000000000000000
00001ec0: PUSH1 0x44
00001ec2: DUP3
00001ec3: ADD
00001ec4: MSTORE
00001ec5: SWAP1
00001ec6: MLOAD
00001ec7: SWAP1
00001ec8: DUP2
00001ec9: SWAP1
00001eca: SUB
00001ecb: PUSH1 0x64
00001ecd: ADD
00001ece: SWAP1
00001ecf: REVERT
00001ed0: JUMPDEST
00001ed1: PUSH2 0x1ed9
00001ed4: DUP7
00001ed5: PUSH2 0x089d
00001ed8: JUMP
00001ed9: JUMPDEST
00001eda: PUSH1 0x00
00001edc: DUP1
00001edd: DUP6
00001ede: DUP1
00001edf: ISZERO
00001ee0: PUSH2 0x1eec
00001ee3: JUMPI
00001ee4: POP
00001ee5: DUP3
00001ee6: PUSH1 0x01
00001ee8: ADD
00001ee9: SLOAD
00001eea: TIMESTAMP
00001eeb: LT
00001eec: JUMPDEST
00001eed: ISZERO
00001eee: PUSH2 0x1f36
00001ef1: JUMPI
00001ef2: PUSH2 0x1f0f
00001ef5: PUSH1 0x64
00001ef7: PUSH2 0x110a
00001efa: PUSH1 0x97
00001efc: SLOAD
00001efd: DUP7
00001efe: PUSH1 0x02
00001f00: ADD
00001f01: SLOAD
00001f02: PUSH2 0x26d8
00001f05: SWAP1
00001f06: SWAP2
00001f07: SWAP1
00001f08: PUSH4 0xffffffff
00001f0d: AND
00001f0e: JUMP
00001f0f: JUMPDEST
00001f10: SWAP2
00001f11: POP
00001f12: PUSH2 0x1f2f
00001f15: PUSH1 0x64
00001f17: PUSH2 0x110a
00001f1a: PUSH1 0x98
00001f1c: SLOAD
00001f1d: DUP7
00001f1e: PUSH1 0x02
00001f20: ADD
00001f21: SLOAD
00001f22: PUSH2 0x26d8
00001f25: SWAP1
00001f26: SWAP2
00001f27: SWAP1
00001f28: PUSH4 0xffffffff
00001f2d: AND
00001f2e: JUMP
00001f2f: JUMPDEST
00001f30: SWAP1
00001f31: POP
00001f32: PUSH2 0x1f89
00001f35: JUMP
00001f36: JUMPDEST
00001f37: DUP6
00001f38: ISZERO
00001f39: PUSH2 0x1f89
00001f3c: JUMPI
00001f3d: PUSH1 0x40
00001f3f: DUP1
00001f40: MLOAD
00001f41: PUSH3 0x461bcd
00001f45: PUSH1 0xe5
00001f47: SHL
00001f48: DUP2
00001f49: MSTORE
00001f4a: PUSH1 0x20
00001f4c: PUSH1 0x04
00001f4e: DUP3
00001f4f: ADD
00001f50: MSTORE
00001f51: PUSH1 0x12
00001f53: PUSH1 0x24
00001f55: DUP3
00001f56: ADD
00001f57: MSTORE
00001f58: PUSH32 0x4d5553545f4e4f545f42455f464f524345440000000000000000000000000000
00001f79: PUSH1 0x44
00001f7b: DUP3
00001f7c: ADD
00001f7d: MSTORE
00001f7e: SWAP1
00001f7f: MLOAD
00001f80: SWAP1
00001f81: DUP2
00001f82: SWAP1
00001f83: SUB
00001f84: PUSH1 0x64
00001f86: ADD
00001f87: SWAP1
00001f88: REVERT
00001f89: JUMPDEST
00001f8a: PUSH1 0x00
00001f8c: PUSH2 0x1fa6
00001f8f: DUP3
00001f90: PUSH2 0x142b
00001f93: DUP6
00001f94: DUP8
00001f95: PUSH1 0x02
00001f97: ADD
00001f98: SLOAD
00001f99: PUSH2 0x2217
00001f9c: SWAP1
00001f9d: SWAP2
00001f9e: SWAP1
00001f9f: PUSH4 0xffffffff
00001fa4: AND
00001fa5: JUMP
00001fa6: JUMPDEST
00001fa7: TIMESTAMP
00001fa8: PUSH1 0x04
00001faa: DUP7
00001fab: ADD
00001fac: SSTORE
00001fad: PUSH1 0x01
00001faf: PUSH1 0x01
00001fb1: PUSH1 0xa0
00001fb3: SHL
00001fb4: SUB
00001fb5: DUP11
00001fb6: AND
00001fb7: PUSH1 0x00
00001fb9: SWAP1
00001fba: DUP2
00001fbb: MSTORE
00001fbc: PUSH1 0x9b
00001fbe: PUSH1 0x20
00001fc0: MSTORE
00001fc1: PUSH1 0x40
00001fc3: SWAP1
00001fc4: KECCAK256
00001fc5: PUSH1 0x02
00001fc7: DUP7
00001fc8: ADD
00001fc9: SLOAD
00001fca: PUSH1 0x01
00001fcc: DUP3
00001fcd: ADD
00001fce: SLOAD
00001fcf: SWAP3
00001fd0: SWAP4
00001fd1: POP
00001fd2: SWAP1
00001fd3: SWAP2
00001fd4: PUSH2 0x1fdc
00001fd7: SWAP2
00001fd8: PUSH2 0x2217
00001fdb: JUMP
00001fdc: JUMPDEST
00001fdd: PUSH1 0x01
00001fdf: DUP3
00001fe0: ADD
00001fe1: SSTORE
00001fe2: PUSH1 0x03
00001fe4: DUP6
00001fe5: ADD
00001fe6: SLOAD
00001fe7: PUSH1 0x02
00001fe9: DUP3
00001fea: ADD
00001feb: SLOAD
00001fec: PUSH2 0x1ff4
00001fef: SWAP2
00001ff0: PUSH2 0x2217
00001ff3: JUMP
00001ff4: JUMPDEST
00001ff5: PUSH1 0x02
00001ff7: DUP3
00001ff8: ADD
00001ff9: SSTORE
00001ffa: PUSH1 0x04
00001ffc: DUP2
00001ffd: ADD
00001ffe: SLOAD
00001fff: PUSH2 0x2008
00002002: SWAP1
00002003: DUP6
00002004: PUSH2 0x1b2c
00002007: JUMP
00002008: JUMPDEST
00002009: PUSH1 0x04
0000200b: DUP3
0000200c: ADD
0000200d: SSTORE
0000200e: PUSH1 0x06
00002010: DUP2
00002011: ADD
00002012: DUP1
00002013: SLOAD
00002014: PUSH1 0x00
00002016: NOT
00002017: PUSH5 0xffffffffff
0000201d: PUSH6 0x010000000000
00002024: DUP1
00002025: DUP5
00002026: DIV
00002027: DUP3
00002028: AND
00002029: SWAP3
0000202a: SWAP1
0000202b: SWAP3
0000202c: ADD
0000202d: AND
0000202e: MUL
0000202f: PUSH10 0xffffffffff0000000000
0000203a: NOT
0000203b: SWAP1
0000203c: SWAP2
0000203d: AND
0000203e: OR
0000203f: SWAP1
00002040: SSTORE
00002041: DUP4
00002042: ISZERO
00002043: PUSH2 0x209c
00002046: JUMPI
00002047: PUSH1 0x06
00002049: DUP2
0000204a: ADD
0000204b: DUP1
0000204c: SLOAD
0000204d: PUSH1 0x01
0000204f: PUSH5 0xffffffffff
00002055: PUSH16 0x01000000000000000000000000000000
00002066: DUP1
00002067: DUP5
00002068: DIV
00002069: DUP3
0000206a: AND
0000206b: SWAP3
0000206c: SWAP1
0000206d: SWAP3
0000206e: ADD
0000206f: AND
00002070: MUL
00002071: PUSH32 0xffffffffffffffffffffffff0000000000ffffffffffffffffffffffffffffff
00002092: SWAP1
00002093: SWAP2
00002094: AND
00002095: OR
00002096: SWAP1
00002097: SSTORE
00002098: PUSH2 0x20e9
0000209b: JUMP
0000209c: JUMPDEST
0000209d: PUSH1 0x06
0000209f: DUP2
000020a0: ADD
000020a1: DUP1
000020a2: SLOAD
000020a3: PUSH1 0x01
000020a5: PUSH5 0xffffffffff
000020ab: PUSH11 0x0100000000000000000000
000020b7: DUP1
000020b8: DUP5
000020b9: DIV
000020ba: DUP3
000020bb: AND
000020bc: SWAP3
000020bd: SWAP1
000020be: SWAP3
000020bf: ADD
000020c0: AND
000020c1: MUL
000020c2: PUSH32 0xffffffffffffffffffffffffffffffffff0000000000ffffffffffffffffffff
000020e3: SWAP1
000020e4: SWAP2
000020e5: AND
000020e6: OR
000020e7: SWAP1
000020e8: SSTORE
000020e9: JUMPDEST
000020ea: PUSH1 0x02
000020ec: DUP6
000020ed: ADD
000020ee: SLOAD
000020ef: DUP7
000020f0: SLOAD
000020f1: PUSH2 0x20f9
000020f4: SWAP2
000020f5: PUSH2 0x2217
000020f8: JUMP
000020f9: JUMPDEST
000020fa: DUP7
000020fb: SSTORE
000020fc: PUSH1 0x03
000020fe: DUP6
000020ff: ADD
00002100: SLOAD
00002101: PUSH1 0x01
00002103: DUP8
00002104: ADD
00002105: SLOAD
00002106: PUSH2 0x210e
00002109: SWAP2
0000210a: PUSH2 0x2217
0000210d: JUMP
0000210e: JUMPDEST
0000210f: PUSH1 0x01
00002111: DUP8
00002112: ADD
00002113: SSTORE
00002114: PUSH2 0x211d
00002117: DUP11
00002118: CALLER
00002119: PUSH2 0x1b8f
0000211c: JUMP
0000211d: JUMPDEST
0000211e: PUSH1 0x00
00002120: DUP5
00002121: GT
00002122: DUP1
00002123: ISZERO
00002124: PUSH2 0x2131
00002127: JUMPI
00002128: POP
00002129: PUSH1 0x00
0000212b: DUP2
0000212c: PUSH1 0x02
0000212e: ADD
0000212f: SLOAD
00002130: GT
00002131: JUMPDEST
00002132: ISZERO
00002133: PUSH2 0x2166
00002136: JUMPI
00002137: PUSH1 0x02
00002139: DUP2
0000213a: ADD
0000213b: SLOAD
0000213c: PUSH2 0x2160
0000213f: SWAP1
00002140: PUSH2 0x2155
00002143: SWAP1
00002144: PUSH2 0x110a
00002147: DUP8
00002148: PUSH8 0x0de0b6b3a7640000
00002151: PUSH2 0x26d8
00002154: JUMP
00002155: JUMPDEST
00002156: PUSH1 0x03
00002158: DUP4
00002159: ADD
0000215a: SLOAD
0000215b: SWAP1
0000215c: PUSH2 0x1b2c
0000215f: JUMP
00002160: JUMPDEST
00002161: PUSH1 0x03
00002163: DUP3
00002164: ADD
00002165: SSTORE
00002166: JUMPDEST
00002167: DUP10
00002168: PUSH2 0x217b
0000216b: PUSH1 0x01
0000216d: PUSH1 0x01
0000216f: PUSH1 0xa0
00002171: SHL
00002172: SUB
00002173: DUP3
00002174: AND
00002175: CALLER
00002176: DUP6
00002177: PUSH2 0x1c0f
0000217a: JUMP
0000217b: JUMPDEST
0000217c: DUP4
0000217d: ISZERO
0000217e: PUSH2 0x219b
00002181: JUMPI
00002182: PUSH1 0x9e
00002184: SLOAD
00002185: PUSH2 0x219b
00002188: SWAP1
00002189: PUSH1 0x01
0000218b: PUSH1 0x01
0000218d: PUSH1 0xa0
0000218f: SHL
00002190: SUB
00002191: DUP4
00002192: DUP2
00002193: AND
00002194: SWAP2
00002195: AND
00002196: DUP7
00002197: PUSH2 0x1c0f
0000219a: JUMP
0000219b: JUMPDEST
0000219c: PUSH1 0x02
0000219e: DUP7
0000219f: ADD
000021a0: SLOAD
000021a1: DUP8
000021a2: SLOAD
000021a3: DUP8
000021a4: SLOAD
000021a5: PUSH1 0x40
000021a7: DUP1
000021a8: MLOAD
000021a9: SWAP4
000021aa: DUP5
000021ab: MSTORE
000021ac: PUSH1 0x20
000021ae: DUP5
000021af: ADD
000021b0: DUP8
000021b1: SWAP1
000021b2: MSTORE
000021b3: DUP4
000021b4: DUP2
000021b5: ADD
000021b6: DUP10
000021b7: SWAP1
000021b8: MSTORE
000021b9: PUSH1 0x60
000021bb: DUP5
000021bc: ADD
000021bd: DUP9
000021be: SWAP1
000021bf: MSTORE
000021c0: PUSH1 0x80
000021c2: DUP5
000021c3: ADD
000021c4: SWAP3
000021c5: SWAP1
000021c6: SWAP3
000021c7: MSTORE
000021c8: PUSH1 0xa0
000021ca: DUP4
000021cb: ADD
000021cc: MSTORE
000021cd: TIMESTAMP
000021ce: PUSH1 0xc0
000021d0: DUP4
000021d1: ADD
000021d2: MSTORE
000021d3: MLOAD
000021d4: CALLER
000021d5: SWAP2
000021d6: PUSH1 0x01
000021d8: PUSH1 0x01
000021da: PUSH1 0xa0
000021dc: SHL
000021dd: SUB
000021de: DUP15
000021df: AND
000021e0: SWAP2
000021e1: PUSH32 0x2307620f84836a4cfc6aaccd2426db79fd0b2a502534c24c1447f6574640cda5
00002202: SWAP2
00002203: DUP2
00002204: SWAP1
00002205: SUB
00002206: PUSH1 0xe0
00002208: ADD
00002209: SWAP1
0000220a: LOG3
0000220b: POP
0000220c: POP
0000220d: POP
0000220e: POP
0000220f: POP
00002210: POP
00002211: POP
00002212: POP
00002213: POP
00002214: POP
00002215: POP
00002216: JUMP
00002217: JUMPDEST
00002218: PUSH1 0x00
0000221a: PUSH2 0x1b86
0000221d: DUP4
0000221e: DUP4
0000221f: PUSH1 0x40
00002221: MLOAD
00002222: DUP1
00002223: PUSH1 0x40
00002225: ADD
00002226: PUSH1 0x40
00002228: MSTORE
00002229: DUP1
0000222a: PUSH1 0x1e
0000222c: DUP2
0000222d: MSTORE
0000222e: PUSH1 0x20
00002230: ADD
00002231: PUSH32 0x536166654d6174683a207375627472616374696f6e206f766572666c6f770000
00002252: DUP2
00002253: MSTORE
00002254: POP
00002255: PUSH2 0x29d9
00002258: JUMP
00002259: JUMPDEST
0000225a: PUSH1 0x01
0000225c: PUSH1 0x01
0000225e: PUSH1 0xa0
00002260: SHL
00002261: SUB
00002262: DUP4
00002263: AND
00002264: PUSH1 0x00
00002266: SWAP1
00002267: DUP2
00002268: MSTORE
00002269: PUSH1 0x9b
0000226b: PUSH1 0x20
0000226d: MSTORE
0000226e: PUSH1 0x40
00002270: SWAP1
00002271: KECCAK256
00002272: SLOAD
00002273: DUP4
00002274: SWAP1
00002275: PUSH2 0x22b6
00002278: JUMPI
00002279: PUSH1 0x40
0000227b: DUP1
0000227c: MLOAD
0000227d: PUSH3 0x461bcd
00002281: PUSH1 0xe5
00002283: SHL
00002284: DUP2
00002285: MSTORE
00002286: PUSH1 0x20
00002288: PUSH1 0x04
0000228a: DUP3
0000228b: ADD
0000228c: MSTORE
0000228d: PUSH1 0x0e
0000228f: PUSH1 0x24
00002291: DUP3
00002292: ADD
00002293: MSTORE
00002294: PUSH14 0x1413d3d317d393d517d193d55391
000022a3: PUSH1 0x92
000022a5: SHL
000022a6: PUSH1 0x44
000022a8: DUP3
000022a9: ADD
000022aa: MSTORE
000022ab: SWAP1
000022ac: MLOAD
000022ad: SWAP1
000022ae: DUP2
000022af: SWAP1
000022b0: SUB
000022b1: PUSH1 0x64
000022b3: ADD
000022b4: SWAP1
000022b5: REVERT
000022b6: JUMPDEST
000022b7: PUSH1 0x9a
000022b9: SLOAD
000022ba: PUSH1 0xff
000022bc: AND
000022bd: ISZERO
000022be: PUSH2 0x230e
000022c1: JUMPI
000022c2: PUSH1 0x40
000022c4: DUP1
000022c5: MLOAD
000022c6: PUSH3 0x461bcd
000022ca: PUSH1 0xe5
000022cc: SHL
000022cd: DUP2
000022ce: MSTORE
000022cf: PUSH1 0x20
000022d1: PUSH1 0x04
000022d3: DUP3
000022d4: ADD
000022d5: MSTORE
000022d6: PUSH1 0x18
000022d8: PUSH1 0x24
000022da: DUP3
000022db: ADD
000022dc: MSTORE
000022dd: PUSH32 0x4e4f545f414c4c4f5745445f494e5f454d455247454e43590000000000000000
000022fe: PUSH1 0x44
00002300: DUP3
00002301: ADD
00002302: MSTORE
00002303: SWAP1
00002304: MLOAD
00002305: SWAP1
00002306: DUP2
00002307: SWAP1
00002308: SUB
00002309: PUSH1 0x64
0000230b: ADD
0000230c: SWAP1
0000230d: REVERT
0000230e: JUMPDEST
0000230f: PUSH1 0x00
00002311: DUP4
00002312: GT
00002313: PUSH2 0x2363
00002316: JUMPI
00002317: PUSH1 0x40
00002319: DUP1
0000231a: MLOAD
0000231b: PUSH3 0x461bcd
0000231f: PUSH1 0xe5
00002321: SHL
00002322: DUP2
00002323: MSTORE
00002324: PUSH1 0x20
00002326: PUSH1 0x04
00002328: DUP3
00002329: ADD
0000232a: MSTORE
0000232b: PUSH1 0x0e
0000232d: PUSH1 0x24
0000232f: DUP3
00002330: ADD
00002331: MSTORE
00002332: PUSH32 0x494e56414c49445f414d4f554e54000000000000000000000000000000000000
00002353: PUSH1 0x44
00002355: DUP3
00002356: ADD
00002357: MSTORE
00002358: SWAP1
00002359: MLOAD
0000235a: SWAP1
0000235b: DUP2
0000235c: SWAP1
0000235d: SUB
0000235e: PUSH1 0x64
00002360: ADD
00002361: SWAP1
00002362: REVERT
00002363: JUMPDEST
00002364: PUSH1 0x03
00002366: DUP3
00002367: LT
00002368: ISZERO
00002369: DUP1
0000236a: ISZERO
0000236b: PUSH2 0x2375
0000236e: JUMPI
0000236f: POP
00002370: PUSH1 0x78
00002372: DUP3
00002373: GT
00002374: ISZERO
00002375: JUMPDEST
00002376: PUSH2 0x23c6
00002379: JUMPI
0000237a: PUSH1 0x40
0000237c: DUP1
0000237d: MLOAD
0000237e: PUSH3 0x461bcd
00002382: PUSH1 0xe5
00002384: SHL
00002385: DUP2
00002386: MSTORE
00002387: PUSH1 0x20
00002389: PUSH1 0x04
0000238b: DUP3
0000238c: ADD
0000238d: MSTORE
0000238e: PUSH1 0x10
00002390: PUSH1 0x24
00002392: DUP3
00002393: ADD
00002394: MSTORE
00002395: PUSH32 0x494e56414c49445f4455524154494f4e00000000000000000000000000000000
000023b6: PUSH1 0x44
000023b8: DUP3
000023b9: ADD
000023ba: MSTORE
000023bb: SWAP1
000023bc: MLOAD
000023bd: SWAP1
000023be: DUP2
000023bf: SWAP1
000023c0: SUB
000023c1: PUSH1 0x64
000023c3: ADD
000023c4: SWAP1
000023c5: REVERT
000023c6: JUMPDEST
000023c7: PUSH1 0x01
000023c9: PUSH1 0x01
000023cb: PUSH1 0xa0
000023cd: SHL
000023ce: SUB
000023cf: DUP5
000023d0: AND
000023d1: PUSH1 0x00
000023d3: DUP2
000023d4: DUP2
000023d5: MSTORE
000023d6: PUSH1 0x9d
000023d8: PUSH1 0x20
000023da: SWAP1
000023db: DUP2
000023dc: MSTORE
000023dd: PUSH1 0x40
000023df: DUP1
000023e0: DUP4
000023e1: KECCAK256
000023e2: CALLER
000023e3: DUP5
000023e4: MSTORE
000023e5: DUP3
000023e6: MSTORE
000023e7: DUP1
000023e8: DUP4
000023e9: KECCAK256
000023ea: SWAP4
000023eb: DUP4
000023ec: MSTORE
000023ed: PUSH1 0x9b
000023ef: SWAP1
000023f0: SWAP2
000023f1: MSTORE
000023f2: SWAP1
000023f3: KECCAK256
000023f4: DUP2
000023f5: SLOAD
000023f6: DUP2
000023f7: SLOAD
000023f8: DUP8
000023f9: SWAP4
000023fa: SWAP3
000023fb: SWAP2
000023fc: DUP8
000023fd: ADD
000023fe: GT
000023ff: ISZERO
00002400: PUSH2 0x2450
00002403: JUMPI
00002404: PUSH1 0x40
00002406: DUP1
00002407: MLOAD
00002408: PUSH3 0x461bcd
0000240c: PUSH1 0xe5
0000240e: SHL
0000240f: DUP2
00002410: MSTORE
00002411: PUSH1 0x20
00002413: PUSH1 0x04
00002415: DUP3
00002416: ADD
00002417: MSTORE
00002418: PUSH1 0x12
0000241a: PUSH1 0x24
0000241c: DUP3
0000241d: ADD
0000241e: MSTORE
0000241f: PUSH32 0x4d41585f4c494d49545f45584345454445440000000000000000000000000000
00002440: PUSH1 0x44
00002442: DUP3
00002443: ADD
00002444: MSTORE
00002445: SWAP1
00002446: MLOAD
00002447: SWAP1
00002448: DUP2
00002449: SWAP1
0000244a: SUB
0000244b: PUSH1 0x64
0000244d: ADD
0000244e: SWAP1
0000244f: REVERT
00002450: JUMPDEST
00002451: PUSH2 0x2465
00002454: PUSH1 0x01
00002456: PUSH1 0x01
00002458: PUSH1 0xa0
0000245a: SHL
0000245b: SUB
0000245c: DUP5
0000245d: AND
0000245e: CALLER
0000245f: ADDRESS
00002460: DUP10
00002461: PUSH2 0x2a70
00002464: JUMP
00002465: JUMPDEST
00002466: PUSH2 0x246e
00002469: DUP8
0000246a: PUSH2 0x089d
0000246d: JUMP
0000246e: JUMPDEST
0000246f: PUSH1 0x00
00002471: PUSH2 0x2483
00002474: PUSH2 0x247c
00002477: DUP8
00002478: PUSH2 0x2af8
0000247b: JUMP
0000247c: JUMPDEST
0000247d: DUP9
0000247e: SWAP1
0000247f: PUSH2 0x26d8
00002482: JUMP
00002483: JUMPDEST
00002484: SWAP1
00002485: POP
00002486: DUP3
00002487: PUSH1 0x06
00002489: ADD
0000248a: PUSH1 0x40
0000248c: MLOAD
0000248d: DUP1
0000248e: PUSH1 0xa0
00002490: ADD
00002491: PUSH1 0x40
00002493: MSTORE
00002494: DUP1
00002495: DUP9
00002496: DUP2
00002497: MSTORE
00002498: PUSH1 0x20
0000249a: ADD
0000249b: PUSH2 0x24b1
0000249e: PUSH1 0x99
000024a0: SLOAD
000024a1: DUP11
000024a2: MUL
000024a3: TIMESTAMP
000024a4: PUSH2 0x1b2c
000024a7: SWAP1
000024a8: SWAP2
000024a9: SWAP1
000024aa: PUSH4 0xffffffff
000024af: AND
000024b0: JUMP
000024b1: JUMPDEST
000024b2: DUP2
000024b3: MSTORE
000024b4: PUSH1 0x20
000024b6: DUP1
000024b7: DUP3
000024b8: ADD
000024b9: DUP12
000024ba: SWAP1
000024bb: MSTORE
000024bc: PUSH1 0x40
000024be: DUP1
000024bf: DUP4
000024c0: ADD
000024c1: DUP7
000024c2: SWAP1
000024c3: MSTORE
000024c4: PUSH1 0x00
000024c6: PUSH1 0x60
000024c8: SWAP4
000024c9: DUP5
000024ca: ADD
000024cb: DUP2
000024cc: SWAP1
000024cd: MSTORE
000024ce: DUP6
000024cf: SLOAD
000024d0: PUSH1 0x01
000024d2: DUP2
000024d3: DUP2
000024d4: ADD
000024d5: DUP9
000024d6: SSTORE
000024d7: SWAP7
000024d8: DUP3
000024d9: MSTORE
000024da: SWAP1
000024db: DUP4
000024dc: SWAP1
000024dd: KECCAK256
000024de: DUP6
000024df: MLOAD
000024e0: PUSH1 0x05
000024e2: SWAP1
000024e3: SWAP3
000024e4: MUL
000024e5: ADD
000024e6: SWAP1
000024e7: DUP2
000024e8: SSTORE
000024e9: SWAP2
000024ea: DUP5
000024eb: ADD
000024ec: MLOAD
000024ed: SWAP5
000024ee: DUP3
000024ef: ADD
000024f0: SWAP5
000024f1: SWAP1
000024f2: SWAP5
000024f3: SSTORE
000024f4: SWAP3
000024f5: DUP3
000024f6: ADD
000024f7: MLOAD
000024f8: PUSH1 0x02
000024fa: DUP5
000024fb: ADD
000024fc: SSTORE
000024fd: DUP2
000024fe: ADD
000024ff: MLOAD
00002500: PUSH1 0x03
00002502: DUP4
00002503: ADD
00002504: SSTORE
00002505: PUSH1 0x80
00002507: ADD
00002508: MLOAD
00002509: PUSH1 0x04
0000250b: SWAP1
0000250c: SWAP2
0000250d: ADD
0000250e: SSTORE
0000250f: DUP3
00002510: SLOAD
00002511: PUSH2 0x251a
00002514: SWAP1
00002515: DUP9
00002516: PUSH2 0x1b2c
00002519: JUMP
0000251a: JUMPDEST
0000251b: DUP4
0000251c: SSTORE
0000251d: PUSH1 0x02
0000251f: DUP4
00002520: ADD
00002521: SLOAD
00002522: PUSH2 0x252b
00002525: SWAP1
00002526: DUP9
00002527: PUSH2 0x1b2c
0000252a: JUMP
0000252b: JUMPDEST
0000252c: PUSH1 0x02
0000252e: DUP5
0000252f: ADD
00002530: SSTORE
00002531: PUSH1 0x01
00002533: DUP4
00002534: ADD
00002535: SLOAD
00002536: PUSH2 0x253f
00002539: SWAP1
0000253a: DUP3
0000253b: PUSH2 0x1b2c
0000253e: JUMP
0000253f: JUMPDEST
00002540: PUSH1 0x01
00002542: DUP1
00002543: DUP6
00002544: ADD
00002545: SWAP2
00002546: SWAP1
00002547: SWAP2
00002548: SSTORE
00002549: PUSH1 0x05
0000254b: DUP5
0000254c: ADD
0000254d: DUP1
0000254e: SLOAD
0000254f: PUSH5 0xffffffffff
00002555: DUP1
00002556: DUP3
00002557: AND
00002558: DUP5
00002559: ADD
0000255a: AND
0000255b: PUSH5 0xffffffffff
00002561: NOT
00002562: SWAP1
00002563: SWAP2
00002564: AND
00002565: OR
00002566: SWAP1
00002567: SSTORE
00002568: DUP3
00002569: ADD
0000256a: SLOAD
0000256b: PUSH2 0x2574
0000256e: SWAP1
0000256f: DUP9
00002570: PUSH2 0x1b2c
00002573: JUMP
00002574: JUMPDEST
00002575: PUSH1 0x01
00002577: DUP4
00002578: ADD
00002579: SSTORE
0000257a: PUSH1 0x05
0000257c: DUP3
0000257d: ADD
0000257e: SLOAD
0000257f: PUSH2 0x2588
00002582: SWAP1
00002583: DUP9
00002584: PUSH2 0x1b2c
00002587: JUMP
00002588: JUMPDEST
00002589: PUSH1 0x05
0000258b: DUP4
0000258c: ADD
0000258d: SSTORE
0000258e: PUSH1 0x06
00002590: DUP3
00002591: ADD
00002592: DUP1
00002593: SLOAD
00002594: PUSH6 0x010000000000
0000259b: PUSH5 0xffffffffff
000025a1: DUP1
000025a2: DUP4
000025a3: AND
000025a4: PUSH1 0x01
000025a6: SWAP1
000025a7: DUP2
000025a8: ADD
000025a9: DUP3
000025aa: AND
000025ab: PUSH5 0xffffffffff
000025b1: NOT
000025b2: SWAP1
000025b3: SWAP5
000025b4: AND
000025b5: SWAP4
000025b6: SWAP1
000025b7: SWAP4
000025b8: OR
000025b9: DUP3
000025ba: DUP2
000025bb: DIV
000025bc: DUP3
000025bd: AND
000025be: SWAP1
000025bf: SWAP4
000025c0: ADD
000025c1: AND
000025c2: MUL
000025c3: PUSH10 0xffffffffff0000000000
000025ce: NOT
000025cf: SWAP1
000025d0: SWAP2
000025d1: AND
000025d2: OR
000025d3: SWAP1
000025d4: SSTORE
000025d5: PUSH1 0x02
000025d7: DUP3
000025d8: ADD
000025d9: SLOAD
000025da: PUSH2 0x25e3
000025dd: SWAP1
000025de: DUP3
000025df: PUSH2 0x1b2c
000025e2: JUMP
000025e3: JUMPDEST
000025e4: PUSH1 0x02
000025e6: DUP4
000025e7: ADD
000025e8: SSTORE
000025e9: PUSH2 0x25f2
000025ec: DUP9
000025ed: CALLER
000025ee: PUSH2 0x1b8f
000025f1: JUMP
000025f2: JUMPDEST
000025f3: PUSH1 0x01
000025f5: DUP3
000025f6: ADD
000025f7: SLOAD
000025f8: PUSH1 0x40
000025fa: DUP1
000025fb: MLOAD
000025fc: DUP10
000025fd: DUP2
000025fe: MSTORE
000025ff: PUSH1 0x20
00002601: DUP2
00002602: ADD
00002603: SWAP3
00002604: SWAP1
00002605: SWAP3
00002606: MSTORE
00002607: DUP2
00002608: DUP2
00002609: ADD
0000260a: DUP9
0000260b: SWAP1
0000260c: MSTORE
0000260d: TIMESTAMP
0000260e: PUSH1 0x60
00002610: DUP4
00002611: ADD
00002612: MSTORE
00002613: MLOAD
00002614: CALLER
00002615: SWAP2
00002616: PUSH1 0x01
00002618: PUSH1 0x01
0000261a: PUSH1 0xa0
0000261c: SHL
0000261d: SUB
0000261e: DUP12
0000261f: AND
00002620: SWAP2
00002621: PUSH32 0xadfc2e4057350132d546d5412da81ae54c03dff8a9abb9ab2385d848b3ab5b35
00002642: SWAP2
00002643: DUP2
00002644: SWAP1
00002645: SUB
00002646: PUSH1 0x80
00002648: ADD
00002649: SWAP1
0000264a: LOG3
0000264b: POP
0000264c: POP
0000264d: POP
0000264e: POP
0000264f: POP
00002650: POP
00002651: POP
00002652: POP
00002653: JUMP
00002654: JUMPDEST
00002655: PUSH1 0x01
00002657: PUSH1 0x01
00002659: PUSH1 0xa0
0000265b: SHL
0000265c: SUB
0000265d: DUP2
0000265e: AND
0000265f: PUSH1 0x00
00002661: SWAP1
00002662: DUP2
00002663: MSTORE
00002664: PUSH1 0xd8
00002666: PUSH1 0x20
00002668: MSTORE
00002669: PUSH1 0x40
0000266b: DUP2
0000266c: KECCAK256
0000266d: PUSH1 0xd7
0000266f: SLOAD
00002670: DUP2
00002671: SLOAD
00002672: PUSH1 0x02
00002674: DUP4
00002675: ADD
00002676: SLOAD
00002677: PUSH2 0x268f
0000267a: SWAP3
0000267b: SWAP2
0000267c: PUSH2 0x110a
0000267f: SWAP2
00002680: PUSH2 0x2689
00002683: SWAP1
00002684: NUMBER
00002685: PUSH2 0x2b1a
00002688: JUMP
00002689: JUMPDEST
0000268a: SWAP1
0000268b: PUSH2 0x26d8
0000268e: JUMP
0000268f: JUMPDEST
00002690: SWAP4
00002691: SWAP3
00002692: POP
00002693: POP
00002694: POP
00002695: JUMP
00002696: JUMPDEST
00002697: PUSH1 0x00
00002699: PUSH2 0x1b86
0000269c: DUP4
0000269d: DUP4
0000269e: PUSH1 0x40
000026a0: MLOAD
000026a1: DUP1
000026a2: PUSH1 0x40
000026a4: ADD
000026a5: PUSH1 0x40
000026a7: MSTORE
000026a8: DUP1
000026a9: PUSH1 0x1a
000026ab: DUP2
000026ac: MSTORE
000026ad: PUSH1 0x20
000026af: ADD
000026b0: PUSH32 0x536166654d6174683a206469766973696f6e206279207a65726f000000000000
000026d1: DUP2
000026d2: MSTORE
000026d3: POP
000026d4: PUSH2 0x2bf7
000026d7: JUMP
000026d8: JUMPDEST
000026d9: PUSH1 0x00
000026db: DUP3
000026dc: PUSH2 0x26e7
000026df: JUMPI
000026e0: POP
000026e1: PUSH1 0x00
000026e3: PUSH2 0x1b89
000026e6: JUMP
000026e7: JUMPDEST
000026e8: DUP3
000026e9: DUP3
000026ea: MUL
000026eb: DUP3
000026ec: DUP5
000026ed: DUP3
000026ee: DUP2
000026ef: PUSH2 0x26f4
000026f2: JUMPI
000026f3: INVALID
000026f4: JUMPDEST
000026f5: DIV
000026f6: EQ
000026f7: PUSH2 0x1b86
000026fa: JUMPI
000026fb: PUSH1 0x40
000026fd: MLOAD
000026fe: PUSH3 0x461bcd
00002702: PUSH1 0xe5
00002704: SHL
00002705: DUP2
00002706: MSTORE
00002707: PUSH1 0x04
00002709: ADD
0000270a: DUP1
0000270b: DUP1
0000270c: PUSH1 0x20
0000270e: ADD
0000270f: DUP3
00002710: DUP2
00002711: SUB
00002712: DUP3
00002713: MSTORE
00002714: PUSH1 0x21
00002716: DUP2
00002717: MSTORE
00002718: PUSH1 0x20
0000271a: ADD
0000271b: DUP1
0000271c: PUSH2 0x2e1c
0000271f: PUSH1 0x21
00002721: SWAP2
00002722: CODECOPY
00002723: PUSH1 0x40
00002725: ADD
00002726: SWAP2
00002727: POP
00002728: POP
00002729: PUSH1 0x40
0000272b: MLOAD
0000272c: DUP1
0000272d: SWAP2
0000272e: SUB
0000272f: SWAP1
00002730: REVERT
00002731: JUMPDEST
00002732: PUSH1 0x00
00002734: SLOAD
00002735: PUSH2 0x0100
00002738: SWAP1
00002739: DIV
0000273a: PUSH1 0xff
0000273c: AND
0000273d: DUP1
0000273e: PUSH2 0x274a
00002741: JUMPI
00002742: POP
00002743: PUSH2 0x274a
00002746: PUSH2 0x1d15
00002749: JUMP
0000274a: JUMPDEST
0000274b: DUP1
0000274c: PUSH2 0x2758
0000274f: JUMPI
00002750: POP
00002751: PUSH1 0x00
00002753: SLOAD
00002754: PUSH1 0xff
00002756: AND
00002757: ISZERO
00002758: JUMPDEST
00002759: PUSH2 0x2793
0000275c: JUMPI
0000275d: PUSH1 0x40
0000275f: MLOAD
00002760: PUSH3 0x461bcd
00002764: PUSH1 0xe5
00002766: SHL
00002767: DUP2
00002768: MSTORE
00002769: PUSH1 0x04
0000276b: ADD
0000276c: DUP1
0000276d: DUP1
0000276e: PUSH1 0x20
00002770: ADD
00002771: DUP3
00002772: DUP2
00002773: SUB
00002774: DUP3
00002775: MSTORE
00002776: PUSH1 0x2e
00002778: DUP2
00002779: MSTORE
0000277a: PUSH1 0x20
0000277c: ADD
0000277d: DUP1
0000277e: PUSH2 0x2e3d
00002781: PUSH1 0x2e
00002783: SWAP2
00002784: CODECOPY
00002785: PUSH1 0x40
00002787: ADD
00002788: SWAP2
00002789: POP
0000278a: POP
0000278b: PUSH1 0x40
0000278d: MLOAD
0000278e: DUP1
0000278f: SWAP2
00002790: SUB
00002791: SWAP1
00002792: REVERT
00002793: JUMPDEST
00002794: PUSH1 0x00
00002796: SLOAD
00002797: PUSH2 0x0100
0000279a: SWAP1
0000279b: DIV
0000279c: PUSH1 0xff
0000279e: AND
0000279f: ISZERO
000027a0: DUP1
000027a1: ISZERO
000027a2: PUSH2 0x27be
000027a5: JUMPI
000027a6: PUSH1 0x00
000027a8: DUP1
000027a9: SLOAD
000027aa: PUSH1 0xff
000027ac: NOT
000027ad: PUSH2 0xff00
000027b0: NOT
000027b1: SWAP1
000027b2: SWAP2
000027b3: AND
000027b4: PUSH2 0x0100
000027b7: OR
000027b8: AND
000027b9: PUSH1 0x01
000027bb: OR
000027bc: SWAP1
000027bd: SSTORE
000027be: JUMPDEST
000027bf: PUSH2 0x27c6
000027c2: PUSH2 0x2c5c
000027c5: JUMP
000027c6: JUMPDEST
000027c7: PUSH2 0x27ce
000027ca: PUSH2 0x2cfc
000027cd: JUMP
000027ce: JUMPDEST
000027cf: DUP1
000027d0: ISZERO
000027d1: PUSH2 0x089a
000027d4: JUMPI
000027d5: PUSH1 0x00
000027d7: DUP1
000027d8: SLOAD
000027d9: PUSH2 0xff00
000027dc: NOT
000027dd: AND
000027de: SWAP1
000027df: SSTORE
000027e0: POP
000027e1: JUMP
000027e2: JUMPDEST
000027e3: PUSH1 0x00
000027e5: DUP2
000027e6: EXTCODEHASH
000027e7: PUSH32 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
00002808: DUP2
00002809: DUP2
0000280a: EQ
0000280b: DUP1
0000280c: ISZERO
0000280d: SWAP1
0000280e: PUSH2 0x1431
00002811: JUMPI
00002812: POP
00002813: POP
00002814: ISZERO
00002815: ISZERO
00002816: SWAP3
00002817: SWAP2
00002818: POP
00002819: POP
0000281a: JUMP
0000281b: JUMPDEST
0000281c: PUSH2 0x282d
0000281f: DUP3
00002820: PUSH1 0x01
00002822: PUSH1 0x01
00002824: PUSH1 0xa0
00002826: SHL
00002827: SUB
00002828: AND
00002829: PUSH2 0x27e2
0000282c: JUMP
0000282d: JUMPDEST
0000282e: PUSH2 0x287e
00002831: JUMPI
00002832: PUSH1 0x40
00002834: DUP1
00002835: MLOAD
00002836: PUSH3 0x461bcd
0000283a: PUSH1 0xe5
0000283c: SHL
0000283d: DUP2
0000283e: MSTORE
0000283f: PUSH1 0x20
00002841: PUSH1 0x04
00002843: DUP3
00002844: ADD
00002845: MSTORE
00002846: PUSH1 0x1f
00002848: PUSH1 0x24
0000284a: DUP3
0000284b: ADD
0000284c: MSTORE
0000284d: PUSH32 0x5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400
0000286e: PUSH1 0x44
00002870: DUP3
00002871: ADD
00002872: MSTORE
00002873: SWAP1
00002874: MLOAD
00002875: SWAP1
00002876: DUP2
00002877: SWAP1
00002878: SUB
00002879: PUSH1 0x64
0000287b: ADD
0000287c: SWAP1
0000287d: REVERT
0000287e: JUMPDEST
0000287f: PUSH1 0x00
00002881: PUSH1 0x60
00002883: DUP4
00002884: PUSH1 0x01
00002886: PUSH1 0x01
00002888: PUSH1 0xa0
0000288a: SHL
0000288b: SUB
0000288c: AND
0000288d: DUP4
0000288e: PUSH1 0x40
00002890: MLOAD
00002891: DUP1
00002892: DUP3
00002893: DUP1
00002894: MLOAD
00002895: SWAP1
00002896: PUSH1 0x20
00002898: ADD
00002899: SWAP1
0000289a: DUP1
0000289b: DUP4
0000289c: DUP4
0000289d: JUMPDEST
0000289e: PUSH1 0x20
000028a0: DUP4
000028a1: LT
000028a2: PUSH2 0x28bc
000028a5: JUMPI
000028a6: DUP1
000028a7: MLOAD
000028a8: DUP3
000028a9: MSTORE
000028aa: PUSH1 0x1f
000028ac: NOT
000028ad: SWAP1
000028ae: SWAP3
000028af: ADD
000028b0: SWAP2
000028b1: PUSH1 0x20
000028b3: SWAP2
000028b4: DUP3
000028b5: ADD
000028b6: SWAP2
000028b7: ADD
000028b8: PUSH2 0x289d
000028bb: JUMP
000028bc: JUMPDEST
000028bd: PUSH1 0x01
000028bf: DUP4
000028c0: PUSH1 0x20
000028c2: SUB
000028c3: PUSH2 0x0100
000028c6: EXP
000028c7: SUB
000028c8: DUP1
000028c9: NOT
000028ca: DUP3
000028cb: MLOAD
000028cc: AND
000028cd: DUP2
000028ce: DUP5
000028cf: MLOAD
000028d0: AND
000028d1: DUP1
000028d2: DUP3
000028d3: OR
000028d4: DUP6
000028d5: MSTORE
000028d6: POP
000028d7: POP
000028d8: POP
000028d9: POP
000028da: POP
000028db: POP
000028dc: SWAP1
000028dd: POP
000028de: ADD
000028df: SWAP2
000028e0: POP
000028e1: POP
000028e2: PUSH1 0x00
000028e4: PUSH1 0x40
000028e6: MLOAD
000028e7: DUP1
000028e8: DUP4
000028e9: SUB
000028ea: DUP2
000028eb: PUSH1 0x00
000028ed: DUP7
000028ee: GAS
000028ef: CALL
000028f0: SWAP2
000028f1: POP
000028f2: POP
000028f3: RETURNDATASIZE
000028f4: DUP1
000028f5: PUSH1 0x00
000028f7: DUP2
000028f8: EQ
000028f9: PUSH2 0x291e
000028fc: JUMPI
000028fd: PUSH1 0x40
000028ff: MLOAD
00002900: SWAP2
00002901: POP
00002902: PUSH1 0x1f
00002904: NOT
00002905: PUSH1 0x3f
00002907: RETURNDATASIZE
00002908: ADD
00002909: AND
0000290a: DUP3
0000290b: ADD
0000290c: PUSH1 0x40
0000290e: MSTORE
0000290f: RETURNDATASIZE
00002910: DUP3
00002911: MSTORE
00002912: RETURNDATASIZE
00002913: PUSH1 0x00
00002915: PUSH1 0x20
00002917: DUP5
00002918: ADD
00002919: RETURNDATACOPY
0000291a: PUSH2 0x2923
0000291d: JUMP
0000291e: JUMPDEST
0000291f: PUSH1 0x60
00002921: SWAP2
00002922: POP
00002923: JUMPDEST
00002924: POP
00002925: SWAP2
00002926: POP
00002927: SWAP2
00002928: POP
00002929: DUP2
0000292a: PUSH2 0x297a
0000292d: JUMPI
0000292e: PUSH1 0x40
00002930: DUP1
00002931: MLOAD
00002932: PUSH3 0x461bcd
00002936: PUSH1 0xe5
00002938: SHL
00002939: DUP2
0000293a: MSTORE
0000293b: PUSH1 0x20
0000293d: PUSH1 0x04
0000293f: DUP3
00002940: ADD
00002941: DUP2
00002942: SWAP1
00002943: MSTORE
00002944: PUSH1 0x24
00002946: DUP3
00002947: ADD
00002948: MSTORE
00002949: PUSH32 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564
0000296a: PUSH1 0x44
0000296c: DUP3
0000296d: ADD
0000296e: MSTORE
0000296f: SWAP1
00002970: MLOAD
00002971: SWAP1
00002972: DUP2
00002973: SWAP1
00002974: SUB
00002975: PUSH1 0x64
00002977: ADD
00002978: SWAP1
00002979: REVERT
0000297a: JUMPDEST
0000297b: DUP1
0000297c: MLOAD
0000297d: ISZERO
0000297e: PUSH2 0x29d3
00002981: JUMPI
00002982: DUP1
00002983: DUP1
00002984: PUSH1 0x20
00002986: ADD
00002987: SWAP1
00002988: MLOAD
00002989: PUSH1 0x20
0000298b: DUP2
0000298c: LT
0000298d: ISZERO
0000298e: PUSH2 0x2996
00002991: JUMPI
00002992: PUSH1 0x00
00002994: DUP1
00002995: REVERT
00002996: JUMPDEST
00002997: POP
00002998: MLOAD
00002999: PUSH2 0x29d3
0000299c: JUMPI
0000299d: PUSH1 0x40
0000299f: MLOAD
000029a0: PUSH3 0x461bcd
000029a4: PUSH1 0xe5
000029a6: SHL
000029a7: DUP2
000029a8: MSTORE
000029a9: PUSH1 0x04
000029ab: ADD
000029ac: DUP1
000029ad: DUP1
000029ae: PUSH1 0x20
000029b0: ADD
000029b1: DUP3
000029b2: DUP2
000029b3: SUB
000029b4: DUP3
000029b5: MSTORE
000029b6: PUSH1 0x2a
000029b8: DUP2
000029b9: MSTORE
000029ba: PUSH1 0x20
000029bc: ADD
000029bd: DUP1
000029be: PUSH2 0x2e6b
000029c1: PUSH1 0x2a
000029c3: SWAP2
000029c4: CODECOPY
000029c5: PUSH1 0x40
000029c7: ADD
000029c8: SWAP2
000029c9: POP
000029ca: POP
000029cb: PUSH1 0x40
000029cd: MLOAD
000029ce: DUP1
000029cf: SWAP2
000029d0: SUB
000029d1: SWAP1
000029d2: REVERT
000029d3: JUMPDEST
000029d4: POP
000029d5: POP
000029d6: POP
000029d7: POP
000029d8: JUMP
000029d9: JUMPDEST
000029da: PUSH1 0x00
000029dc: DUP2
000029dd: DUP5
000029de: DUP5
000029df: GT
000029e0: ISZERO
000029e1: PUSH2 0x2a68
000029e4: JUMPI
000029e5: PUSH1 0x40
000029e7: MLOAD
000029e8: PUSH3 0x461bcd
000029ec: PUSH1 0xe5
000029ee: SHL
000029ef: DUP2
000029f0: MSTORE
000029f1: PUSH1 0x04
000029f3: ADD
000029f4: DUP1
000029f5: DUP1
000029f6: PUSH1 0x20
000029f8: ADD
000029f9: DUP3
000029fa: DUP2
000029fb: SUB
000029fc: DUP3
000029fd: MSTORE
000029fe: DUP4
000029ff: DUP2
00002a00: DUP2
00002a01: MLOAD
00002a02: DUP2
00002a03: MSTORE
00002a04: PUSH1 0x20
00002a06: ADD
00002a07: SWAP2
00002a08: POP
00002a09: DUP1
00002a0a: MLOAD
00002a0b: SWAP1
00002a0c: PUSH1 0x20
00002a0e: ADD
00002a0f: SWAP1
00002a10: DUP1
00002a11: DUP4
00002a12: DUP4
00002a13: PUSH1 0x00
00002a15: JUMPDEST
00002a16: DUP4
00002a17: DUP2
00002a18: LT
00002a19: ISZERO
00002a1a: PUSH2 0x2a2d
00002a1d: JUMPI
00002a1e: DUP2
00002a1f: DUP2
00002a20: ADD
00002a21: MLOAD
00002a22: DUP4
00002a23: DUP3
00002a24: ADD
00002a25: MSTORE
00002a26: PUSH1 0x20
00002a28: ADD
00002a29: PUSH2 0x2a15
00002a2c: JUMP
00002a2d: JUMPDEST
00002a2e: POP
00002a2f: POP
00002a30: POP
00002a31: POP
00002a32: SWAP1
00002a33: POP
00002a34: SWAP1
00002a35: DUP2
00002a36: ADD
00002a37: SWAP1
00002a38: PUSH1 0x1f
00002a3a: AND
00002a3b: DUP1
00002a3c: ISZERO
00002a3d: PUSH2 0x2a5a
00002a40: JUMPI
00002a41: DUP1
00002a42: DUP3
00002a43: SUB
00002a44: DUP1
00002a45: MLOAD
00002a46: PUSH1 0x01
00002a48: DUP4
00002a49: PUSH1 0x20
00002a4b: SUB
00002a4c: PUSH2 0x0100
00002a4f: EXP
00002a50: SUB
00002a51: NOT
00002a52: AND
00002a53: DUP2
00002a54: MSTORE
00002a55: PUSH1 0x20
00002a57: ADD
00002a58: SWAP2
00002a59: POP
00002a5a: JUMPDEST
00002a5b: POP
00002a5c: SWAP3
00002a5d: POP
00002a5e: POP
00002a5f: POP
00002a60: PUSH1 0x40
00002a62: MLOAD
00002a63: DUP1
00002a64: SWAP2
00002a65: SUB
00002a66: SWAP1
00002a67: REVERT
00002a68: JUMPDEST
00002a69: POP
00002a6a: POP
00002a6b: POP
00002a6c: SWAP1
00002a6d: SUB
00002a6e: SWAP1
00002a6f: JUMP
00002a70: JUMPDEST
00002a71: PUSH1 0x40
00002a73: DUP1
00002a74: MLOAD
00002a75: PUSH1 0x01
00002a77: PUSH1 0x01
00002a79: PUSH1 0xa0
00002a7b: SHL
00002a7c: SUB
00002a7d: DUP1
00002a7e: DUP7
00002a7f: AND
00002a80: PUSH1 0x24
00002a82: DUP4
00002a83: ADD
00002a84: MSTORE
00002a85: DUP5
00002a86: AND
00002a87: PUSH1 0x44
00002a89: DUP3
00002a8a: ADD
00002a8b: MSTORE
00002a8c: PUSH1 0x64
00002a8e: DUP1
00002a8f: DUP3
00002a90: ADD
00002a91: DUP5
00002a92: SWAP1
00002a93: MSTORE
00002a94: DUP3
00002a95: MLOAD
00002a96: DUP1
00002a97: DUP4
00002a98: SUB
00002a99: SWAP1
00002a9a: SWAP2
00002a9b: ADD
00002a9c: DUP2
00002a9d: MSTORE
00002a9e: PUSH1 0x84
00002aa0: SWAP1
00002aa1: SWAP2
00002aa2: ADD
00002aa3: SWAP1
00002aa4: SWAP2
00002aa5: MSTORE
00002aa6: PUSH1 0x20
00002aa8: DUP2
00002aa9: ADD
00002aaa: DUP1
00002aab: MLOAD
00002aac: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00002ac9: AND
00002aca: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000
00002aeb: OR
00002aec: SWAP1
00002aed: MSTORE
00002aee: PUSH2 0x29d3
00002af1: SWAP1
00002af2: DUP6
00002af3: SWAP1
00002af4: PUSH2 0x281b
00002af7: JUMP
00002af8: JUMPDEST
00002af9: PUSH1 0x00
00002afb: DUP1
00002afc: PUSH2 0x2b06
00002aff: DUP4
00002b00: PUSH1 0x03
00002b02: PUSH2 0x2696
00002b05: JUMP
00002b06: JUMPDEST
00002b07: SWAP1
00002b08: POP
00002b09: PUSH1 0x28
00002b0b: DUP2
00002b0c: GT
00002b0d: ISZERO
00002b0e: PUSH2 0x1b89
00002b11: JUMPI
00002b12: POP
00002b13: PUSH1 0x28
00002b15: SWAP3
00002b16: SWAP2
00002b17: POP
00002b18: POP
00002b19: JUMP
00002b1a: JUMPDEST
00002b1b: PUSH1 0x00
00002b1d: PUSH1 0xd2
00002b1f: SLOAD
00002b20: DUP3
00002b21: LT
00002b22: DUP1
00002b23: PUSH2 0x2b2d
00002b26: JUMPI
00002b27: POP
00002b28: PUSH1 0xd3
00002b2a: SLOAD
00002b2b: DUP4
00002b2c: GT
00002b2d: JUMPDEST
00002b2e: ISZERO
00002b2f: PUSH2 0x2b3a
00002b32: JUMPI
00002b33: POP
00002b34: PUSH1 0x00
00002b36: PUSH2 0x1b89
00002b39: JUMP
00002b3a: JUMPDEST
00002b3b: PUSH1 0xd2
00002b3d: SLOAD
00002b3e: DUP4
00002b3f: LT
00002b40: ISZERO
00002b41: PUSH2 0x2b4a
00002b44: JUMPI
00002b45: PUSH1 0xd2
00002b47: SLOAD
00002b48: SWAP3
00002b49: POP
00002b4a: JUMPDEST
00002b4b: PUSH1 0xd3
00002b4d: SLOAD
00002b4e: DUP3
00002b4f: GT
00002b50: ISZERO
00002b51: PUSH2 0x2b5a
00002b54: JUMPI
00002b55: PUSH1 0xd3
00002b57: SLOAD
00002b58: SWAP2
00002b59: POP
00002b5a: JUMPDEST
00002b5b: PUSH1 0xd4
00002b5d: SLOAD
00002b5e: DUP3
00002b5f: GT
00002b60: PUSH2 0x2b89
00002b63: JUMPI
00002b64: PUSH2 0x2b82
00002b67: PUSH1 0xd5
00002b69: SLOAD
00002b6a: PUSH2 0x2689
00002b6d: PUSH1 0xd6
00002b6f: SLOAD
00002b70: PUSH2 0x2689
00002b73: DUP8
00002b74: DUP8
00002b75: PUSH2 0x2217
00002b78: SWAP1
00002b79: SWAP2
00002b7a: SWAP1
00002b7b: PUSH4 0xffffffff
00002b80: AND
00002b81: JUMP
00002b82: JUMPDEST
00002b83: SWAP1
00002b84: POP
00002b85: PUSH2 0x1b89
00002b88: JUMP
00002b89: JUMPDEST
00002b8a: PUSH1 0xd4
00002b8c: SLOAD
00002b8d: DUP4
00002b8e: GT
00002b8f: ISZERO
00002b90: DUP1
00002b91: ISZERO
00002b92: PUSH2 0x2b9c
00002b95: JUMPI
00002b96: POP
00002b97: PUSH1 0xd4
00002b99: SLOAD
00002b9a: DUP3
00002b9b: GT
00002b9c: JUMPDEST
00002b9d: ISZERO
00002b9e: PUSH2 0x2be6
00002ba1: JUMPI
00002ba2: PUSH2 0x2b82
00002ba5: PUSH2 0x2bbf
00002ba8: PUSH1 0xd5
00002baa: SLOAD
00002bab: PUSH2 0x2689
00002bae: PUSH1 0xd4
00002bb0: SLOAD
00002bb1: DUP7
00002bb2: PUSH2 0x2217
00002bb5: SWAP1
00002bb6: SWAP2
00002bb7: SWAP1
00002bb8: PUSH4 0xffffffff
00002bbd: AND
00002bbe: JUMP
00002bbf: JUMPDEST
00002bc0: PUSH2 0x2be0
00002bc3: PUSH1 0xd5
00002bc5: SLOAD
00002bc6: PUSH2 0x2689
00002bc9: PUSH1 0xd6
00002bcb: SLOAD
00002bcc: PUSH2 0x2689
00002bcf: DUP10
00002bd0: PUSH1 0xd4
00002bd2: SLOAD
00002bd3: PUSH2 0x2217
00002bd6: SWAP1
00002bd7: SWAP2
00002bd8: SWAP1
00002bd9: PUSH4 0xffffffff
00002bde: AND
00002bdf: JUMP
00002be0: JUMPDEST
00002be1: SWAP1
00002be2: PUSH2 0x1b2c
00002be5: JUMP
00002be6: JUMPDEST
00002be7: PUSH1 0xd5
00002be9: SLOAD
00002bea: PUSH2 0x2b82
00002bed: SWAP1
00002bee: PUSH2 0x2689
00002bf1: DUP5
00002bf2: DUP7
00002bf3: PUSH2 0x2217
00002bf6: JUMP
00002bf7: JUMPDEST
00002bf8: PUSH1 0x00
00002bfa: DUP2
00002bfb: DUP4
00002bfc: PUSH2 0x2c46
00002bff: JUMPI
00002c00: PUSH1 0x40
00002c02: MLOAD
00002c03: PUSH3 0x461bcd
00002c07: PUSH1 0xe5
00002c09: SHL
00002c0a: DUP2
00002c0b: MSTORE
00002c0c: PUSH1 0x20
00002c0e: PUSH1 0x04
00002c10: DUP3
00002c11: ADD
00002c12: DUP2
00002c13: DUP2
00002c14: MSTORE
00002c15: DUP4
00002c16: MLOAD
00002c17: PUSH1 0x24
00002c19: DUP5
00002c1a: ADD
00002c1b: MSTORE
00002c1c: DUP4
00002c1d: MLOAD
00002c1e: SWAP1
00002c1f: SWAP3
00002c20: DUP4
00002c21: SWAP3
00002c22: PUSH1 0x44
00002c24: SWAP1
00002c25: SWAP2
00002c26: ADD
00002c27: SWAP2
00002c28: SWAP1
00002c29: DUP6
00002c2a: ADD
00002c2b: SWAP1
00002c2c: DUP1
00002c2d: DUP4
00002c2e: DUP4
00002c2f: PUSH1 0x00
00002c31: DUP4
00002c32: ISZERO
00002c33: PUSH2 0x2a2d
00002c36: JUMPI
00002c37: DUP2
00002c38: DUP2
00002c39: ADD
00002c3a: MLOAD
00002c3b: DUP4
00002c3c: DUP3
00002c3d: ADD
00002c3e: MSTORE
00002c3f: PUSH1 0x20
00002c41: ADD
00002c42: PUSH2 0x2a15
00002c45: JUMP
00002c46: JUMPDEST
00002c47: POP
00002c48: PUSH1 0x00
00002c4a: DUP4
00002c4b: DUP6
00002c4c: DUP2
00002c4d: PUSH2 0x2c52
00002c50: JUMPI
00002c51: INVALID
00002c52: JUMPDEST
00002c53: DIV
00002c54: SWAP6
00002c55: SWAP5
00002c56: POP
00002c57: POP
00002c58: POP
00002c59: POP
00002c5a: POP
00002c5b: JUMP
00002c5c: JUMPDEST
00002c5d: PUSH1 0x00
00002c5f: SLOAD
00002c60: PUSH2 0x0100
00002c63: SWAP1
00002c64: DIV
00002c65: PUSH1 0xff
00002c67: AND
00002c68: DUP1
00002c69: PUSH2 0x2c75
00002c6c: JUMPI
00002c6d: POP
00002c6e: PUSH2 0x2c75
00002c71: PUSH2 0x1d15
00002c74: JUMP
00002c75: JUMPDEST
00002c76: DUP1
00002c77: PUSH2 0x2c83
00002c7a: JUMPI
00002c7b: POP
00002c7c: PUSH1 0x00
00002c7e: SLOAD
00002c7f: PUSH1 0xff
00002c81: AND
00002c82: ISZERO
00002c83: JUMPDEST
00002c84: PUSH2 0x2cbe
00002c87: JUMPI
00002c88: PUSH1 0x40
00002c8a: MLOAD
00002c8b: PUSH3 0x461bcd
00002c8f: PUSH1 0xe5
00002c91: SHL
00002c92: DUP2
00002c93: MSTORE
00002c94: PUSH1 0x04
00002c96: ADD
00002c97: DUP1
00002c98: DUP1
00002c99: PUSH1 0x20
00002c9b: ADD
00002c9c: DUP3
00002c9d: DUP2
00002c9e: SUB
00002c9f: DUP3
00002ca0: MSTORE
00002ca1: PUSH1 0x2e
00002ca3: DUP2
00002ca4: MSTORE
00002ca5: PUSH1 0x20
00002ca7: ADD
00002ca8: DUP1
00002ca9: PUSH2 0x2e3d
00002cac: PUSH1 0x2e
00002cae: SWAP2
00002caf: CODECOPY
00002cb0: PUSH1 0x40
00002cb2: ADD
00002cb3: SWAP2
00002cb4: POP
00002cb5: POP
00002cb6: PUSH1 0x40
00002cb8: MLOAD
00002cb9: DUP1
00002cba: SWAP2
00002cbb: SUB
00002cbc: SWAP1
00002cbd: REVERT
00002cbe: JUMPDEST
00002cbf: PUSH1 0x00
00002cc1: SLOAD
00002cc2: PUSH2 0x0100
00002cc5: SWAP1
00002cc6: DIV
00002cc7: PUSH1 0xff
00002cc9: AND
00002cca: ISZERO
00002ccb: DUP1
00002ccc: ISZERO
00002ccd: PUSH2 0x27ce
00002cd0: JUMPI
00002cd1: PUSH1 0x00
00002cd3: DUP1
00002cd4: SLOAD
00002cd5: PUSH1 0xff
00002cd7: NOT
00002cd8: PUSH2 0xff00
00002cdb: NOT
00002cdc: SWAP1
00002cdd: SWAP2
00002cde: AND
00002cdf: PUSH2 0x0100
00002ce2: OR
00002ce3: AND
00002ce4: PUSH1 0x01
00002ce6: OR
00002ce7: SWAP1
00002ce8: SSTORE
00002ce9: DUP1
00002cea: ISZERO
00002ceb: PUSH2 0x089a
00002cee: JUMPI
00002cef: PUSH1 0x00
00002cf1: DUP1
00002cf2: SLOAD
00002cf3: PUSH2 0xff00
00002cf6: NOT
00002cf7: AND
00002cf8: SWAP1
00002cf9: SSTORE
00002cfa: POP
00002cfb: JUMP
00002cfc: JUMPDEST
00002cfd: PUSH1 0x00
00002cff: SLOAD
00002d00: PUSH2 0x0100
00002d03: SWAP1
00002d04: DIV
00002d05: PUSH1 0xff
00002d07: AND
00002d08: DUP1
00002d09: PUSH2 0x2d15
00002d0c: JUMPI
00002d0d: POP
00002d0e: PUSH2 0x2d15
00002d11: PUSH2 0x1d15
00002d14: JUMP
00002d15: JUMPDEST
00002d16: DUP1
00002d17: PUSH2 0x2d23
00002d1a: JUMPI
00002d1b: POP
00002d1c: PUSH1 0x00
00002d1e: SLOAD
00002d1f: PUSH1 0xff
00002d21: AND
00002d22: ISZERO
00002d23: JUMPDEST
00002d24: PUSH2 0x2d5e
00002d27: JUMPI
00002d28: PUSH1 0x40
00002d2a: MLOAD
00002d2b: PUSH3 0x461bcd
00002d2f: PUSH1 0xe5
00002d31: SHL
00002d32: DUP2
00002d33: MSTORE
00002d34: PUSH1 0x04
00002d36: ADD
00002d37: DUP1
00002d38: DUP1
00002d39: PUSH1 0x20
00002d3b: ADD
00002d3c: DUP3
00002d3d: DUP2
00002d3e: SUB
00002d3f: DUP3
00002d40: MSTORE
00002d41: PUSH1 0x2e
00002d43: DUP2
00002d44: MSTORE
00002d45: PUSH1 0x20
00002d47: ADD
00002d48: DUP1
00002d49: PUSH2 0x2e3d
00002d4c: PUSH1 0x2e
00002d4e: SWAP2
00002d4f: CODECOPY
00002d50: PUSH1 0x40
00002d52: ADD
00002d53: SWAP2
00002d54: POP
00002d55: POP
00002d56: PUSH1 0x40
00002d58: MLOAD
00002d59: DUP1
00002d5a: SWAP2
00002d5b: SUB
00002d5c: SWAP1
00002d5d: REVERT
00002d5e: JUMPDEST
00002d5f: PUSH1 0x00
00002d61: SLOAD
00002d62: PUSH2 0x0100
00002d65: SWAP1
00002d66: DIV
00002d67: PUSH1 0xff
00002d69: AND
00002d6a: ISZERO
00002d6b: DUP1
00002d6c: ISZERO
00002d6d: PUSH2 0x2d89
00002d70: JUMPI
00002d71: PUSH1 0x00
00002d73: DUP1
00002d74: SLOAD
00002d75: PUSH1 0xff
00002d77: NOT
00002d78: PUSH2 0xff00
00002d7b: NOT
00002d7c: SWAP1
00002d7d: SWAP2
00002d7e: AND
00002d7f: PUSH2 0x0100
00002d82: OR
00002d83: AND
00002d84: PUSH1 0x01
00002d86: OR
00002d87: SWAP1
00002d88: SSTORE
00002d89: JUMPDEST
00002d8a: PUSH1 0x00
00002d8c: PUSH2 0x2d93
00002d8f: PUSH2 0x1d11
00002d92: JUMP
00002d93: JUMPDEST
00002d94: PUSH1 0x65
00002d96: DUP1
00002d97: SLOAD
00002d98: PUSH1 0x01
00002d9a: PUSH1 0x01
00002d9c: PUSH1 0xa0
00002d9e: SHL
00002d9f: SUB
00002da0: NOT
00002da1: AND
00002da2: PUSH1 0x01
00002da4: PUSH1 0x01
00002da6: PUSH1 0xa0
00002da8: SHL
00002da9: SUB
00002daa: DUP4
00002dab: AND
00002dac: SWAP1
00002dad: DUP2
00002dae: OR
00002daf: SWAP1
00002db0: SWAP2
00002db1: SSTORE
00002db2: PUSH1 0x40
00002db4: MLOAD
00002db5: SWAP2
00002db6: SWAP3
00002db7: POP
00002db8: SWAP1
00002db9: PUSH1 0x00
00002dbb: SWAP1
00002dbc: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
00002ddd: SWAP1
00002dde: DUP3
00002ddf: SWAP1
00002de0: LOG3
00002de1: POP
00002de2: DUP1
00002de3: ISZERO
00002de4: PUSH2 0x089a
00002de7: JUMPI
00002de8: PUSH1 0x00
00002dea: DUP1
00002deb: SLOAD
00002dec: PUSH2 0xff00
00002def: NOT
00002df0: AND
00002df1: SWAP1
00002df2: SSTORE
00002df3: POP
00002df4: JUMP
00002df5: INVALID
00002df6: UNKNOWN(0x4F)
00002df7: PUSH24 0x6e61626c653a206e6577206f776e65722069732074686520
00002e10: PUSH27 0x65726f2061646472657373536166654d6174683a206d756c746970
00002e2c: PUSH13 0x69636174696f6e206f76657266
00002e3a: PUSH13 0x6f77436f6e747261637420696e
00002e48: PUSH20 0x74616e63652068617320616c7265616479206265
00002e5d: PUSH6 0x6e20696e6974
00002e64: PUSH10 0x616c697a656453616665
00002e6f: GASLIMIT
00002e70: MSTORE
00002e71: NUMBER
00002e72: ORIGIN
00002e73: ADDRESS
00002e74: GASPRICE
00002e75: KECCAK256
00002e76: GASLIMIT
00002e77: MSTORE
00002e78: NUMBER
00002e79: ORIGIN
00002e7a: ADDRESS
00002e7b: KECCAK256
00002e7c: PUSH16 0x7065726174696f6e20646964206e6f74
00002e8d: KECCAK256
00002e8e: PUSH20 0x756363656564a2646970667358221220dee13a29
00002ea3: UNKNOWN(0xCF)
00002ea4: UNKNOWN(0x2C)
00002ea5: COINBASE
00002ea6: SWAP10
00002ea7: UNKNOWN(0xE3)
00002ea8: SGT
00002ea9: UNKNOWN(0xE3)
00002eaa: INVALID
00002eab: MSTORE8
00002eac: UNKNOWN(0xB8)
00002ead: UNKNOWN(0xFB)
00002eae: UNKNOWN(0xDB)
00002eaf: SWAP14
00002eb0: SWAP5
00002eb1: UNKNOWN(0x4C)
00002eb2: BLOBHASH
00002eb3: UNKNOWN(0xAB)
00002eb4: UNKNOWN(0xF7)
00002eb5: BLOCKHASH
00002eb6: UNKNOWN(0xCA)
00002eb7: UNKNOWN(0xD3)
00002eb8: EXP
00002eb9: UNKNOWN(0xEE)
00002eba: UNKNOWN(0xEF)
00002ebb: UNKNOWN(0xBB)
00002ebc: UNKNOWN(0x23)
00002ebd: UNKNOWN(0xCA)
00002ebe: UNKNOWN(0xE2)
00002ebf: PUSH5 0x736f6c6343
00002ec5: STOP
00002ec6: SMOD
00002ec7: ADD
00002ec8: STOP
00002ec9: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0xf42d989c",
            "selector": "0xf42d989c",
            "calldata_variants": [
                "0xf42d989c",
                "0xf42d989c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf525cb68",
            "selector": "0xf525cb68",
            "calldata_variants": [
                "0xf525cb68",
                "0xf525cb680000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfebb97cd",
            "selector": "0xfebb97cd",
            "calldata_variants": [
                "0xfebb97cd",
                "0xfebb97cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf344dcce",
            "selector": "0xf344dcce",
            "calldata_variants": [
                "0xf344dcce",
                "0xf344dcce0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf39e3c53",
            "selector": "0xf39e3c53",
            "calldata_variants": [
                "0xf39e3c53",
                "0xf39e3c530000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec12a5e1",
            "selector": "0xec12a5e1",
            "calldata_variants": [
                "0xec12a5e1",
                "0xec12a5e10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xece80528",
            "selector": "0xece80528",
            "calldata_variants": [
                "0xece80528",
                "0xece805280000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 11890,
            "type": "tx_origin_used"
        },
        {
            "pc": 11897,
            "type": "tx_origin_used"
        }
    ]
}
medium reentrancy codex Reentrant exit can double-withdraw a lockup via claimBonus external transfer 75 no
view
evidence_json
{
    "evidence": "`exit` calls `claimBonus` before setting `lockUp.exitedAt` or updating totals, and `claimBonus` performs an external `safeTransfer` to `msg.sender`.",
    "locations": [
        "contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol:194",
        "contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol:201",
        "contracts/Users/seb/repo/hunt/neverlose/contract/contracts/LockUpPool.sol:266"
    ],
    "recommendation": "Apply `nonReentrant` to `exit`/`claimBonus` and/or update lockup state before any external transfer. A safer pattern is to compute bonus/refund amounts, update `lockUp.exitedAt` and totals first, then perform token transfers, or use an internal bonus-claim routine that does not transfer during `exit`.",
    "exploit_scenario": "A user deposits from a contract and the underlying token implements ERC777-style hooks (or a malicious ERC20 that calls the recipient). When `exit` is called, it first invokes `claimBonus`, which transfers tokens to `msg.sender`. The token callback reenters `exit` for the same `lockUpId` before `lockUp.exitedAt` is set. The second `exit` succeeds and updates balances; when control returns, the original `exit` continues and transfers the refund again. With multiple lockups (so totals don\u2019t underflow), the attacker effectively withdraws more than the single lockup amount, bypassing the time lock on other deposits and corrupting accounting."
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x630b6ba6e4206c3d96cbd3a4467a7c46622bc1472e4a7a87fe947e2260f9c743
call_targets: 0x65c0dfbb89a35e3e514e0b02eca34ac2e3bbf7ef
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x630b6ba6e4206c3d96cbd3a4467a7c46622bc1472e4a7a87fe947e2260f9c743",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x65c0dfbb89a35e3e514e0b02eca34ac2e3bbf7ef"
    ],
    "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": "0xf42d989c",
            "selector": "0xf42d989c",
            "calldata_variants": [
                "0xf42d989c",
                "0xf42d989c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf525cb68",
            "selector": "0xf525cb68",
            "calldata_variants": [
                "0xf525cb68",
                "0xf525cb680000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfebb97cd",
            "selector": "0xfebb97cd",
            "calldata_variants": [
                "0xfebb97cd",
                "0xfebb97cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf344dcce",
            "selector": "0xf344dcce",
            "calldata_variants": [
                "0xf344dcce",
                "0xf344dcce0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf39e3c53",
            "selector": "0xf39e3c53",
            "calldata_variants": [
                "0xf39e3c53",
                "0xf39e3c530000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec12a5e1",
            "selector": "0xec12a5e1",
            "calldata_variants": [
                "0xec12a5e1",
                "0xec12a5e10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xece80528",
            "selector": "0xece80528",
            "calldata_variants": [
                "0xece80528",
                "0xece805280000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4178,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4310,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10479,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 3,
    "guards_detected": [
        {
            "pc": 11890,
            "type": "tx_origin_used"
        },
        {
            "pc": 11897,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 3
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x630b6ba6e4206c3d96cbd3a4467a7c46622bc1472e4a7a87fe947e2260f9c743
call_targets: 0x65c0dfbb89a35e3e514e0b02eca34ac2e3bbf7ef
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x630b6ba6e4206c3d96cbd3a4467a7c46622bc1472e4a7a87fe947e2260f9c743",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x65c0dfbb89a35e3e514e0b02eca34ac2e3bbf7ef"
    ],
    "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": "0xf42d989c",
            "selector": "0xf42d989c",
            "calldata_variants": [
                "0xf42d989c",
                "0xf42d989c0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf525cb68",
            "selector": "0xf525cb68",
            "calldata_variants": [
                "0xf525cb68",
                "0xf525cb680000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xfebb97cd",
            "selector": "0xfebb97cd",
            "calldata_variants": [
                "0xfebb97cd",
                "0xfebb97cd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf344dcce",
            "selector": "0xf344dcce",
            "calldata_variants": [
                "0xf344dcce",
                "0xf344dcce0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf39e3c53",
            "selector": "0xf39e3c53",
            "calldata_variants": [
                "0xf39e3c53",
                "0xf39e3c530000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xec12a5e1",
            "selector": "0xec12a5e1",
            "calldata_variants": [
                "0xec12a5e1",
                "0xec12a5e10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xece80528",
            "selector": "0xece80528",
            "calldata_variants": [
                "0xece80528",
                "0xece805280000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf2fde38b",
            "selector": "0xf2fde38b",
            "calldata_variants": [
                "0xf2fde38b",
                "0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 4178,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 4310,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 10479,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 3,
    "guards_detected": [
        {
            "pc": 11890,
            "type": "tx_origin_used"
        },
        {
            "pc": 11897,
            "type": "tx_origin_used"
        }
    ]
}
low math codex Division by zero in WRN reward math can block exits if totalMultiplier is zero 65 no
view
evidence_json
{
    "evidence": "`_getAccWRNTillNow` divides by `totalMultiplier` without a zero check; `claimWRN` is called unconditionally in `doLockUp` and `exit`.",
    "locations": [
        "contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol:187",
        "contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol:114",
        "contracts/Users/seb/repo/hunt/neverlose/contract/contracts/WRNRewardPool.sol:215"
    ],
    "recommendation": "Guard against `totalMultiplier == 0` by returning 0 rewards, or enforce `multiplier > 0` and prevent configuration that sets `totalMultiplier` to zero. Consider skipping `claimWRN` when rewards are disabled so exits remain possible.",
    "exploit_scenario": "If all pool multipliers are set to 0 (or a pool is added via `addLockUpPool` without setting a multiplier), `totalMultiplier` becomes 0. Any call to `claimWRN` will revert due to division by zero in `_getAccWRNTillNow`. Because `claimWRN` is invoked at the start of `doLockUp` and `exit`, users cannot deposit or withdraw, effectively locking funds until multipliers are fixed."
}