b3b26998-7224-4497-922f-149e2a3c3073
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| ID | Type | Status | Attempts | Heartbeat |
|---|---|---|---|---|
| 30450 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 110498 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 110499 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 110500 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 110501 | capability.graph | complete | 1 / 3 | 1 week ago |
| 110502 | detector.run | complete | 1 / 3 | 1 week ago |
| 110503 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:1304167] OpenAI Codex v0.77.0 (research preview)
[codex:1304167] --------
[codex:1304167] workdir: /tmp/codex-multi-8yspaj5h
[codex:1304167] model: gpt-5.2-codex
[codex:1304167] provider: openai
[codex:1304167] approval: never
[codex:1304167] sandbox: read-only
[codex:1304167] reasoning effort: xhigh
[codex:1304167] reasoning summaries: auto
[codex:1304167] session id: 019b68ca-9a2b-7c20-ba7b-a14da3d4e8ad
[codex:1304167] --------
[codex:1304167] user
[codex:1304167] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:1304167] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:1304167] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:1304167]
[codex:1304167] Scope rules:
[codex:1304167] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:1304167] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:1304167]
[codex:1304167] Output MUST be valid JSON matching the provided schema.
[codex:1304167] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:1304167] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:1304167]
[codex:1304167] Output constraints (IMPORTANT):
[codex:1304167] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:1304167] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:1304167] mcp startup: no servers
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Preparing to read AUDIT_BUNDLE.txt**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc ls in /tmp/codex-multi-8yspaj5h succeeded in 5ms:
[codex:1304167] AUDIT_BUNDLE.txt
[codex:1304167] codex-output-schema.json
[codex:1304167] contracts
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 5ms:
[codex:1304167] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:1304167]
[codex:1304167] ================================================================================
[codex:1304167] FILE: contracts/@keep-network/bitcoin-spv-sol/contracts/BTCUtils.sol
[codex:1304167] ================================================================================
[codex:1304167] pragma solidity ^0.8.4;
[codex:1304167]
[codex:1304167] /** @title BitcoinSPV */
[codex:1304167] /** @author Summa (https://summa.one) */
[codex:1304167]
[codex:1304167] import {BytesLib} from "./BytesLib.sol";
[codex:1304167] import {SafeMath} from "./SafeMath.sol";
[codex:1304167]
[codex:1304167] library BTCUtils {
[codex:1304167] using BytesLib for bytes;
[codex:1304167] using SafeMath for uint256;
[codex:1304167]
[codex:1304167] // The target at minimum Difficulty. Also the target of the genesis block
[codex:1304167] uint256 public constant DIFF1_TARGET = 0xffff0000000000000000000000000000000000000000000000000000;
[codex:1304167]
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Reading entire AUDIT_BUNDLE file**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167] /// @return The digest
[codex:1304167] function hash160(bytes memory _b) internal pure returns (bytes memory) {
[codex:1304167] return abi.encodePacked(ripemd160(abi.encodePacked(sha256(_b))));
[codex:1304167] }
[codex:1304167]
[codex:1304167] /// @notice Implements bitcoin's hash160 (sha2 + ripemd160)
[codex:1304167] /// @dev sha2 precompile at address(2), ripemd160 at address(3)
[codex:1304167] /// @param _b The pre-image
[codex:1304167] /// @return res The digest
[codex:1304167] function hash160View(bytes memory _b) internal view returns (bytes20 res) {
[codex:1304167] // solium-disable-next-line security/no-inline-assembly
[codex:1304167] assembly {
[codex:1304167] pop(staticcall(gas(), 2, add(_b, 32), mload(_b), 0x00, 32))
[codex:1304167] pop(staticcall(gas(), 3, 0x00, 32, 0x00, 32))
[codex:1304167] // read from position 12 = 0c
[codex:1304167] res := mload(0x0c)
[codex:1304167] }
[codex:1304167] }
[codex:1304167]
[codex:1304167] /// @notice Implements bitcoin's hash256 (double sha2)
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Continuing to read large file**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '400,800p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167] /* Witness Input */
[codex:1304167] /* ************* */
[codex:1304167]
[codex:1304167] /// @notice Extracts the LE sequence bytes from an input
[codex:1304167] /// @dev Sequence is used for relative time locks
[codex:1304167] /// @param _input The WITNESS input
[codex:1304167] /// @return The sequence bytes (LE uint)
[codex:1304167] function extractSequenceLEWitness(bytes memory _input) internal pure returns (bytes4) {
[codex:1304167] return _input.slice4(37);
[codex:1304167] }
[codex:1304167]
[codex:1304167] /// @notice Extracts the sequence from the input in a tx
[codex:1304167] /// @dev Sequence is a 4-byte little-endian number
[codex:1304167] /// @param _input The WITNESS input
[codex:1304167] /// @return The sequence number (big-endian uint)
[codex:1304167] function extractSequenceWitness(bytes memory _input) internal pure returns (uint32) {
[codex:1304167] uint32 _leSeqence = uint32(extractSequenceLEWitness(_input));
[codex:1304167] uint32 _inputeSequence = reverseUint32(_leSeqence);
[codex:1304167] return _inputeSequence;
[codex:1304167] }
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Continuing task**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '800,1200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167] }
[codex:1304167]
[codex:1304167] /// @notice Concatenates and hashes two inputs for merkle proving
[codex:1304167] /// @param _a The first hash
[codex:1304167] /// @param _b The second hash
[codex:1304167] /// @return The double-sha256 of the concatenated hashes
[codex:1304167] function _hash256MerkleStep(bytes memory _a, bytes memory _b) internal view returns (bytes32) {
[codex:1304167] return hash256View(abi.encodePacked(_a, _b));
[codex:1304167] }
[codex:1304167]
[codex:1304167] /// @notice Concatenates and hashes two inputs for merkle proving
[codex:1304167] /// @param _a The first hash
[codex:1304167] /// @param _b The second hash
[codex:1304167] /// @return The double-sha256 of the concatenated hashes
[codex:1304167] function _hash256MerkleStep(bytes32 _a, bytes32 _b) internal view returns (bytes32) {
[codex:1304167] return hash256Pair(_a, _b);
[codex:1304167] }
[codex:1304167]
[codex:1304167]
[codex:1304167] /// @notice Verifies a Bitcoin-style merkle tree
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Continuing exploration**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '1200,1600p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 5ms:
[codex:1304167] /// The length of the slice will equal the length of the destination array.
[codex:1304167] /// @dev Make sure the destination array has afterspace if required.
[codex:1304167] /// @param _bytes The source array
[codex:1304167] /// @param _dest The destination array.
[codex:1304167] /// @param _start The location to start in the source array.
[codex:1304167] function sliceInPlace(
[codex:1304167] bytes memory _bytes,
[codex:1304167] bytes memory _dest,
[codex:1304167] uint _start
[codex:1304167] ) internal pure {
[codex:1304167] uint _length = _dest.length;
[codex:1304167] uint _end = _start + _length;
[codex:1304167] require(_end > _start && _bytes.length >= _end, "Slice out of bounds");
[codex:1304167]
[codex:1304167] assembly {
[codex:1304167] for {
[codex:1304167] let src := add(add(_bytes, 32), _start)
[codex:1304167] let res := add(_dest, 32)
[codex:1304167] let end := add(src, _length)
[codex:1304167] } lt(src, end) {
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Continuing current task**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '1600,2000p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167] address _tbtcVault
[codex:1304167] ) internal {
[codex:1304167] require(
[codex:1304167] address(bridge) == address(0) && address(tbtcVault) == address(0),
[codex:1304167] "AbstractTBTCDepositor already initialized"
[codex:1304167] );
[codex:1304167]
[codex:1304167] require(_bridge != address(0), "Bridge address cannot be zero");
[codex:1304167] require(_tbtcVault != address(0), "TBTCVault address cannot be zero");
[codex:1304167]
[codex:1304167] bridge = IBridge(_bridge);
[codex:1304167] tbtcVault = ITBTCVault(_tbtcVault);
[codex:1304167] }
[codex:1304167]
[codex:1304167] /// @notice Initializes a deposit by revealing it to the Bridge.
[codex:1304167] /// @param fundingTx Bitcoin funding transaction data, see `IBridgeTypes.BitcoinTxInfo`.
[codex:1304167] /// @param reveal Deposit reveal data, see `IBridgeTypes.DepositRevealInfo` struct.
[codex:1304167] /// @param extraData 32-byte deposit extra data.
[codex:1304167] /// @return depositKey Deposit key computed as
[codex:1304167] /// `keccak256(fundingTxHash | reveal.fundingOutputIndex)`. This
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Clarifying dependency handling**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '2000,2400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167] function renounceOwnership() public virtual onlyOwner {
[codex:1304167] _transferOwnership(address(0));
[codex:1304167] }
[codex:1304167]
[codex:1304167] /**
[codex:1304167] * @dev Transfers ownership of the contract to a new account (`newOwner`).
[codex:1304167] * Can only be called by the current owner.
[codex:1304167] */
[codex:1304167] function transferOwnership(address newOwner) public virtual onlyOwner {
[codex:1304167] if (newOwner == address(0)) {
[codex:1304167] revert OwnableInvalidOwner(address(0));
[codex:1304167] }
[codex:1304167] _transferOwnership(newOwner);
[codex:1304167] }
[codex:1304167]
[codex:1304167] /**
[codex:1304167] * @dev Transfers ownership of the contract to a new account (`newOwner`).
[codex:1304167] * Internal function without access restriction.
[codex:1304167] */
[codex:1304167] function _transferOwnership(address newOwner) internal virtual {
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Planning further code inspection**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167] 4:FILE: contracts/@keep-network/bitcoin-spv-sol/contracts/BTCUtils.sol
[codex:1304167] 925:FILE: contracts/@keep-network/bitcoin-spv-sol/contracts/BytesLib.sol
[codex:1304167] 1414:FILE: contracts/@keep-network/bitcoin-spv-sol/contracts/SafeMath.sol
[codex:1304167] 1495:FILE: contracts/@keep-network/tbtc-v2/contracts/integrator/AbstractTBTCDepositor.sol
[codex:1304167] 1807:FILE: contracts/@keep-network/tbtc-v2/contracts/integrator/IBridge.sol
[codex:1304167] 1891:FILE: contracts/@keep-network/tbtc-v2/contracts/integrator/ITBTCVault.sol
[codex:1304167] 1923:FILE: contracts/@openzeppelin/contracts/access/Ownable.sol
[codex:1304167] 2027:FILE: contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol
[codex:1304167] 2110:FILE: contracts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol
[codex:1304167] 2204:FILE: contracts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
[codex:1304167] 2326:FILE: contracts/@openzeppelin/contracts/utils/Address.sol
[codex:1304167] 2489:FILE: contracts/@openzeppelin/contracts/utils/Context.sol
[codex:1304167] 2521:FILE: contracts/@openzeppelin/contracts/utils/ReentrancyGuard.sol
[codex:1304167] 2609:FILE: contracts/@openzeppelin/contracts/utils/Strings.sol
[codex:1304167] 2707:FILE: contracts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol
[codex:1304167] 2885:FILE: contracts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol
[codex:1304167] 2975:FILE: contracts/@openzeppelin/contracts/utils/math/Math.sol
[codex:1304167] 3394:FILE: contracts/@openzeppelin/contracts/utils/math/SignedMath.sol
[codex:1304167] 3441:FILE: contracts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol
[codex:1304167] 3525:FILE: contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Planning audit bundle review**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '3980,4300p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167] function __ReentrancyGuard_init_unchained() internal onlyInitializing {
[codex:1304167] ReentrancyGuardStorage storage $ = _getReentrancyGuardStorage();
[codex:1304167] $._status = NOT_ENTERED;
[codex:1304167] }
[codex:1304167]
[codex:1304167] /**
[codex:1304167] * @dev Prevents a contract from calling itself, directly or indirectly.
[codex:1304167] * Calling a `nonReentrant` function from another `nonReentrant`
[codex:1304167] * function is not supported. It is possible to prevent this from happening
[codex:1304167] * by making the `nonReentrant` function external, and making it call a
[codex:1304167] * `private` function that does the actual work.
[codex:1304167] */
[codex:1304167] modifier nonReentrant() {
[codex:1304167] _nonReentrantBefore();
[codex:1304167] _;
[codex:1304167] _nonReentrantAfter();
[codex:1304167] }
[codex:1304167]
[codex:1304167] function _nonReentrantBefore() private {
[codex:1304167] ReentrancyGuardStorage storage $ = _getReentrancyGuardStorage();
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Continuing exploration**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '4300,4650p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 7ms:
[codex:1304167] r,
[codex:1304167] s
[codex:1304167] );
[codex:1304167] }
[codex:1304167]
[codex:1304167] _bridgeTBTC(amount, recipient);
[codex:1304167] }
[codex:1304167]
[codex:1304167] /// @notice Initializes the BTC deposit process after the Bitcoin P2(W)SH deposit
[codex:1304167] /// transaction is performed. Reveals the deposit to tBTC bridge and
[codex:1304167] /// marks the deposit as initialized internally. Once tBTC minting
[codex:1304167] /// is completed, this call should be followed by a call to
[codex:1304167] /// `finalizeBTCBridging`. The P2(W)SH Bitcoin script depositing
[codex:1304167] /// tokens should have the following format:
[codex:1304167] ///
[codex:1304167] /// <bridge-address> DROP
[codex:1304167] /// <recipient-extra-data> DROP
[codex:1304167] /// <blinding-factor> DROP
[codex:1304167] /// DUP HASH160 <signingGroupPubkeyHash> EQUAL
[codex:1304167] /// IF
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Continuing process**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '4650,5200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167] function enableERC20Token(
[codex:1304167] address ERC20Token,
[codex:1304167] uint256 minERC20Amount
[codex:1304167] ) external onlyOwner {
[codex:1304167] if (ERC20Token == address(0)) {
[codex:1304167] revert ERC20TokenIsZeroAddress();
[codex:1304167] }
[codex:1304167]
[codex:1304167] if (minERC20Amount == 0) {
[codex:1304167] revert MinERC20AmountIsZero();
[codex:1304167] }
[codex:1304167]
[codex:1304167] if (ERC20Tokens[ERC20Token] != 0) {
[codex:1304167] revert ERC20TokenAlreadyEnabled();
[codex:1304167] }
[codex:1304167]
[codex:1304167] if (ERC20TokensCount >= MAX_ERC20_TOKENS) {
[codex:1304167] revert MaxERC20TokensReached();
[codex:1304167] }
[codex:1304167]
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Continuing exploration**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '5200,5750p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 5ms:
[codex:1304167] bytes calldata signatures
[codex:1304167] ) external nonReentrant refundable(Refund(msg.sender, true, 13000)) {
[codex:1304167] validateAssetsUnlocked(entry);
[codex:1304167]
[codex:1304167] if (signatures.length % SIGNATURE_BYTE_SIZE != 0) {
[codex:1304167] revert MalformedSignaturesVector();
[codex:1304167] }
[codex:1304167]
[codex:1304167] uint256 signaturesCount = signatures.length / SIGNATURE_BYTE_SIZE;
[codex:1304167]
[codex:1304167] // Require a strict number of signatures equal to the attestation threshold.
[codex:1304167] // This simplifies the implementation of this method and is more gas efficient.
[codex:1304167] if (signaturesCount != attestationThreshold()) {
[codex:1304167] revert InvalidSignaturesCount(signaturesCount);
[codex:1304167] }
[codex:1304167]
[codex:1304167] // Expect the following digest to be signed by the bridge validators:
[codex:1304167] // keccak256("\x19Ethereum Signed Message:\n32" | keccak256(abi.encode(block.chainid, entry)))
[codex:1304167] // Include chain ID to prevent replay attacks using the same entry signed for another chain.
[codex:1304167] bytes32 digest = keccak256(abi.encode(block.chainid, entry))
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Continuing the process**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "sed -n '5750,6200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167] uint256 gasPrice = tx.gasprice < maxGasPrice
[codex:1304167] ? tx.gasprice
[codex:1304167] : maxGasPrice;
[codex:1304167]
[codex:1304167] uint256 refundAmount = (gasSpent + staticGas) * gasPrice;
[codex:1304167]
[codex:1304167] /* solhint-disable avoid-low-level-calls */
[codex:1304167] // slither-disable-next-line low-level-calls,unchecked-lowlevel
[codex:1304167] (bool sent, ) = receiver.call{value: refundAmount}("");
[codex:1304167] /* solhint-enable avoid-low-level-calls */
[codex:1304167] if (!sent) {
[codex:1304167] // slither-disable-next-line reentrancy-events
[codex:1304167] emit SendingEtherFailed(refundAmount, receiver);
[codex:1304167] }
[codex:1304167] }
[codex:1304167]
[codex:1304167] /// @notice Authorize a contract that can interact with this reimbursement pool.
[codex:1304167] /// Can be authorized by the owner only.
[codex:1304167] /// @param _contract Authorized contract.
[codex:1304167] function authorize(address _contract) external onlyOwner {
[codex:1304167]
[codex:1304167]
[codex:1304167]
[codex:1304167]
[codex:1304167]
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Concluding detailed vulnerability audit**
[codex:1304167]
[codex:1304167] I'm summarizing an extensive security review of multiple bridge contracts and libraries, focusing on reentrancy, access control, upgradeability, and signature validation. I carefully analyze external calls, state updates, and upgradeable initialization to identify nuanced risks, including potential reentrancy paths from refunds and token callbacks, the effects of nonReentrant guards, signature uniqueness checks, and proxy initialization safety. This helps clarify where the current implementation is safe and highlights subtle design considerations relevant to upgradeable proxy patterns and cross-contract interactions.
[codex:1304167] thinking
[codex:1304167] **Examining nuanced contract behaviors and edge cases**
[codex:1304167]
[codex:1304167] I'm carefully inspecting potential edge cases in bridge functions, focusing on token transfer ordering, signature enforcement, state updates, and initialization flows. I consider how events, external calls, and validations interplay to avoid mismatches or reentrancy risks, while also checking assumptions about trusted contracts and upgradeable patterns. This helps me understand subtle scenarios like batch attestations, fee exemptions, refund gas calculations, and initializer access, to tease out any hidden concerns in these complex flows.
[codex:1304167] thinking
[codex:1304167] **Analyzing inheritance and validator management complexities**
[codex:1304167]
[codex:1304167] I’m reviewing how multiple inheritance affects storage layout and initialization, especially with Ownable and ReentrancyGuard bases. I also explore risks around validator removal and signature validation, focusing on how ID reassignment and threshold changes might impact attestations and potential governance pitfalls. Additionally, I weigh nuanced behaviors in script validation, rebasing, and reentrancy protections to understand where subtle issues could arise.
[codex:1304167] thinking
[codex:1304167] **Identifying signature replay and bridging risks**
[codex:1304167]
[codex:1304167] I’m looking closely at how signatures are validated and spotted a key issue: the digest lacks the contract address, enabling signature replay across different bridge instances on the same chain. I’m also weighing subtle risks around token bridging with fee-on-transfer tokens and how validator set changes affect threshold and attestation validity.
[codex:1304167] thinking
[codex:1304167] **Summarizing critical contract vulnerabilities**
[codex:1304167]
[codex:1304167] I’m pinpointing a core authentication flaw where signatures can be replayed across multiple bridge contracts on the same chain due to missing contract-specific domain separation in the signed digest. Additionally, I’m noting an accounting risk where fee-on-transfer ERC20 tokens can cause the bridge to misreport locked amounts, potentially leading to funds imbalance if such tokens are enabled. These stand out as the main actionable security concerns.
[codex:1304167] thinking
[codex:1304167] **Preparing to find line numbers**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "nl -ba contracts/contracts/MezoBridge.sol | sed -n '240,360p'" in /tmp/codex-multi-8yspaj5h succeeded in 9ms:
[codex:1304167] 240 );
[codex:1304167] 241
[codex:1304167] 242 event PercentWithdrawalFeeExemptAdded(bytes recipient);
[codex:1304167] 243 event PercentWithdrawalFeeExemptRemoved(bytes recipient);
[codex:1304167] 244
[codex:1304167] 245 /// @notice Emitted along `AssetsUnlockConfirmed` event, but with the
[codex:1304167] 246 /// `recipient` field not indexed. It allows to read the full value
[codex:1304167] 247 /// of `recipient` and not just its hash. It needs to be added as a
[codex:1304167] 248 /// separate event to preserve backward compatibility.
[codex:1304167] 249 event AssetsUnlockConfirmedMetadata(
[codex:1304167] 250 uint256 indexed unlockSequenceNumber,
[codex:1304167] 251 bytes recipient
[codex:1304167] 252 );
[codex:1304167] 253
[codex:1304167] 254 error AlreadyConfirmedUnlock(uint256 unlockSequenceNumber);
[codex:1304167] 255 error InvalidAmount(uint256 amount);
[codex:1304167] 256 error InvalidBitcoinRecipient();
[codex:1304167] 257 error InvalidChain(uint8 chain);
[codex:1304167] 258 error InvalidEthereumRecipient();
[codex:1304167] 259 error AddressZeroEthereumRecipient();
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Locating signature digest lines**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "nl -ba contracts/contracts/MezoBridge.sol | sed -n '420,520p'" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167] 420 while (bitmap != 0) {
[codex:1304167] 421 bitmap &= bitmap - 1; // Clear the lowest set bit
[codex:1304167] 422 count++;
[codex:1304167] 423 }
[codex:1304167] 424 }
[codex:1304167] 425
[codex:1304167] 426 /// @notice Attests a bridge out action with a set of signatures issued by a super-majority (2/3 + 1) of bridge validators.
[codex:1304167] 427 /// @param entry The AssetsUnlocked entry holding the details of the bridge out action.
[codex:1304167] 428 /// @param signatures Concatenation of 65-byte signatures (EIP-191 personal-sign) issued by bridge validators attesting
[codex:1304167] 429 /// the bridge out action.
[codex:1304167] 430 /// @dev Requirements:
[codex:1304167] 431 /// - The entry MUST be valid. See requirements of the `validateAssetsUnlocked` function for details.
[codex:1304167] 432 /// - The signatures vector MUST be properly formed (i.e. divisible by 65 bytes).
[codex:1304167] 433 /// - The number of signatures MUST be equal to the attestation threshold (see `attestationThreshold` function).
[codex:1304167] 434 /// - Each signature MUST be made over a digest built as `keccak256("\x19Ethereum Signed Message:\n32" | keccak256(abi.encode(block.chainid, entry)))`.
[codex:1304167] 435 /// - Each signature MUST be made by a bridge validator.
[codex:1304167] 436 /// - The signatures vector MUST be sorted by signer addresses in ascending order, without duplicates.
[codex:1304167] 437 /// For example, assuming signatures [0xAA, 0xBB, 0xCC] were produced by signers [0x22, 0x11, 0x33] respectively,
[codex:1304167] 438 /// the signatures vector MUST be built as 0xBBAACC.
[codex:1304167] 439 /// @dev Refunds the gas paid by the caller, if the caller is authorized to receive refunds.
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Locating transferFrom calls in ERC20Bridge**
[codex:1304167] exec
[codex:1304167] /bin/bash -lc "nl -ba contracts/contracts/ERC20Bridge.sol | sed -n '120,220p'" in /tmp/codex-multi-8yspaj5h succeeded in 6ms:
[codex:1304167] 120 revert MinERC20AmountIsZero();
[codex:1304167] 121 }
[codex:1304167] 122
[codex:1304167] 123 if (ERC20Tokens[ERC20Token] != 0) {
[codex:1304167] 124 revert ERC20TokenAlreadyEnabled();
[codex:1304167] 125 }
[codex:1304167] 126
[codex:1304167] 127 if (ERC20TokensCount >= MAX_ERC20_TOKENS) {
[codex:1304167] 128 revert MaxERC20TokensReached();
[codex:1304167] 129 }
[codex:1304167] 130
[codex:1304167] 131 ERC20TokensCount++;
[codex:1304167] 132 ERC20Tokens[ERC20Token] = minERC20Amount;
[codex:1304167] 133
[codex:1304167] 134 emit ERC20TokenEnabled(ERC20Token, minERC20Amount);
[codex:1304167] 135 }
[codex:1304167] 136
[codex:1304167] 137 /// @notice Disabled bridging support for the given ERC20 token.
[codex:1304167] 138 /// @param ERC20Token Address of the ERC20 token to be disabled.
[codex:1304167] 139 /// @dev Requirements:
[codex:1304167]
[codex:1304167] thinking
[codex:1304167] **Summarizing bridge audit findings**
[codex:1304167]
[codex:1304167] I'm compiling two main security findings: a medium-severity signature replay risk across bridge instances due to missing contract address in signature digests, and a low-severity accounting flaw when bridging fee-on-transfer ERC20 tokens that causes over-minting. I'll produce a JSON matching the schema, carefully detailing severity, category, exploit scenarios, recommendations, evidence snippets, and exact code locations to give a clear, structured report.
[codex:1304167] codex
[codex:1304167] {"no_findings":false,"summary":"2 findings: signatures for bridge-out are replayable across same-chain bridge deployments due to missing contract domain separation, and ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize the bridge).","findings":[{"severity":"medium","category":"auth","title":"Bridge-out signatures are not bound to a specific MezoBridge instance","exploit_scenario":"If multiple MezoBridge deployments exist on the same chain (e.g., an old bridge left funded alongside a new one), an attacker can reuse validator signatures collected for a legitimate unlock on one instance to execute `attestBridgeOutWithSignatures` on another instance. Because the signed digest omits `address(this)`, the signatures validate on any contract with the same validator set and chain ID, enabling unintended withdrawals from the other contract.","recommendation":"Include `address(this)` (and ideally a version or EIP-712 domain separator) in the signed digest, and update validators to sign the new domain. For example, sign `keccak256(abi.encode(block.chainid, address(this), entry))` or use EIP-712 typed data.","evidence":"Digest is computed as `keccak256(abi.encode(block.chainid, entry))` with no contract address/domain separation before `toEthSignedMessageHash()`.","locations":["contracts/contracts/MezoBridge.sol:458"]},{"severity":"low","category":"other","title":"ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize)","exploit_scenario":"If governance enables a fee-on-transfer/deflationary ERC20, a user can bridge `amount`, receive a full `AssetsLocked` event for `amount`, but the contract will receive less than `amount`. Validators may mint/unlock the full `amount` on Mezo, leaving the Ethereum-side bridge undercollateralized and allowing value extraction.","recommendation":"Either disallow fee-on-transfer tokens in `enableERC20Token` (document/enforce allowlist) or compute the actual received amount via balance-before/after and emit/bridge that amount instead.","evidence":"The bridge emits/records `amount` before calling `safeTransferFrom` and never checks the actual received balance delta.","locations":["contracts/contracts/ERC20Bridge.sol:191","contracts/contracts/ERC20Bridge.sol:211"]}]}
[codex:1304167] tokens used
[codex:1304167] 90,802
[codex:1304167] {"no_findings":false,"summary":"2 findings: signatures for bridge-out are replayable across same-chain bridge deployments due to missing contract domain separation, and ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize the bridge).","findings":[{"severity":"medium","category":"auth","title":"Bridge-out signatures are not bound to a specific MezoBridge instance","exploit_scenario":"If multiple MezoBridge deployments exist on the same chain (e.g., an old bridge left funded alongside a new one), an attacker can reuse validator signatures collected for a legitimate unlock on one instance to execute `attestBridgeOutWithSignatures` on another instance. Because the signed digest omits `address(this)`, the signatures validate on any contract with the same validator set and chain ID, enabling unintended withdrawals from the other contract.","recommendation":"Include `address(this)` (and ideally a version or EIP-712 domain separator) in the signed digest, and update validators to sign the new domain. For example, sign `keccak256(abi.encode(block.chainid, address(this), entry))` or use EIP-712 typed data.","evidence":"Digest is computed as `keccak256(abi.encode(block.chainid, entry))` with no contract address/domain separation before `toEthSignedMessageHash()`.","locations":["contracts/contracts/MezoBridge.sol:458"]},{"severity":"low","category":"other","title":"ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize)","exploit_scenario":"If governance enables a fee-on-transfer/deflationary ERC20, a user can bridge `amount`, receive a full `AssetsLocked` event for `amount`, but the contract will receive less than `amount`. Validators may mint/unlock the full `amount` on Mezo, leaving the Ethereum-side bridge undercollateralized and allowing value extraction.","recommendation":"Either disallow fee-on-transfer tokens in `enableERC20Token` (document/enforce allowlist) or compute the actual received amount via balance-before/after and emit/bridge that amount instead.","evidence":"The bridge emits/records `amount` before calling `safeTransferFrom` and never checks the actual received balance delta.","locations":["contracts/contracts/ERC20Bridge.sol:191","contracts/contracts/ERC20Bridge.sol:211"]}]}
{
"codex": {
"ran_at": "2025-12-29T06:35:29.210317+00:00",
"returncode": 0
},
"summary": "2 findings: signatures for bridge-out are replayable across same-chain bridge deployments due to missing contract domain separation, and ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize the bridge).",
"raw_final": {
"summary": "2 findings: signatures for bridge-out are replayable across same-chain bridge deployments due to missing contract domain separation, and ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize the bridge).",
"findings": [
{
"title": "Bridge-out signatures are not bound to a specific MezoBridge instance",
"category": "auth",
"evidence": "Digest is computed as `keccak256(abi.encode(block.chainid, entry))` with no contract address/domain separation before `toEthSignedMessageHash()`.",
"severity": "medium",
"locations": [
"contracts/contracts/MezoBridge.sol:458"
],
"recommendation": "Include `address(this)` (and ideally a version or EIP-712 domain separator) in the signed digest, and update validators to sign the new domain. For example, sign `keccak256(abi.encode(block.chainid, address(this), entry))` or use EIP-712 typed data.",
"exploit_scenario": "If multiple MezoBridge deployments exist on the same chain (e.g., an old bridge left funded alongside a new one), an attacker can reuse validator signatures collected for a legitimate unlock on one instance to execute `attestBridgeOutWithSignatures` on another instance. Because the signed digest omits `address(this)`, the signatures validate on any contract with the same validator set and chain ID, enabling unintended withdrawals from the other contract."
},
{
"title": "ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize)",
"category": "other",
"evidence": "The bridge emits/records `amount` before calling `safeTransferFrom` and never checks the actual received balance delta.",
"severity": "low",
"locations": [
"contracts/contracts/ERC20Bridge.sol:191",
"contracts/contracts/ERC20Bridge.sol:211"
],
"recommendation": "Either disallow fee-on-transfer tokens in `enableERC20Token` (document/enforce allowlist) or compute the actual received amount via balance-before/after and emit/bridge that amount instead.",
"exploit_scenario": "If governance enables a fee-on-transfer/deflationary ERC20, a user can bridge `amount`, receive a full `AssetsLocked` event for `amount`, but the contract will receive less than `amount`. Validators may mint/unlock the full `amount` on Mezo, leaving the Ethereum-side bridge undercollateralized and allowing value extraction."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
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 0x0399 00000019: JUMPI 0000001a: PUSH1 0x00 0000001c: CALLDATALOAD 0000001d: PUSH1 0xe0 0000001f: SHR 00000020: DUP1 00000021: PUSH4 0x8993b5f8 00000026: GT 00000027: PUSH2 0x01e9 0000002a: JUMPI 0000002b: DUP1 0000002c: PUSH4 0xc7ba0347 00000031: GT 00000032: PUSH2 0x010f 00000035: JUMPI 00000036: DUP1 00000037: PUSH4 0xd80687ef 0000003c: GT 0000003d: PUSH2 0x00ad 00000040: JUMPI 00000041: DUP1 00000042: PUSH4 0xe5d3d714 00000047: GT 00000048: PUSH2 0x007c 0000004b: JUMPI 0000004c: DUP1 0000004d: PUSH4 0xe5d3d714 00000052: EQ 00000053: PUSH2 0x07f4 00000056: JUMPI 00000057: DUP1 00000058: PUSH4 0xe78cea92 0000005d: EQ 0000005e: PUSH2 0x0807 00000061: JUMPI 00000062: DUP1 00000063: PUSH4 0xf2fde38b 00000068: EQ 00000069: PUSH2 0x081a 0000006c: JUMPI 0000006d: DUP1 0000006e: PUSH4 0xf3407480 00000073: EQ 00000074: PUSH2 0x082d 00000077: JUMPI 00000078: PUSH1 0x00 0000007a: DUP1 0000007b: REVERT 0000007c: JUMPDEST 0000007d: DUP1 0000007e: PUSH4 0xd80687ef 00000083: EQ 00000084: PUSH2 0x07b0 00000087: JUMPI 00000088: DUP1 00000089: PUSH4 0xdab1b4bd 0000008e: EQ 0000008f: PUSH2 0x07d0 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0xdf4d4663 00000099: EQ 0000009a: PUSH2 0x07d9 0000009d: JUMPI 0000009e: DUP1 0000009f: PUSH4 0xe30c3978 000000a4: EQ 000000a5: PUSH2 0x07ec 000000a8: JUMPI 000000a9: PUSH1 0x00 000000ab: DUP1 000000ac: REVERT 000000ad: JUMPDEST 000000ae: DUP1 000000af: PUSH4 0xcfa498a3 000000b4: GT 000000b5: PUSH2 0x00e9 000000b8: JUMPI 000000b9: DUP1 000000ba: PUSH4 0xcfa498a3 000000bf: EQ 000000c0: PUSH2 0x0783 000000c3: JUMPI 000000c4: DUP1 000000c5: PUSH4 0xd252bb2c 000000ca: EQ 000000cb: PUSH2 0x078c 000000ce: JUMPI 000000cf: DUP1 000000d0: PUSH4 0xd2c35ce8 000000d5: EQ 000000d6: PUSH2 0x0795 000000d9: JUMPI 000000da: DUP1 000000db: PUSH4 0xd781bd37 000000e0: EQ 000000e1: PUSH2 0x07a8 000000e4: JUMPI 000000e5: PUSH1 0x00 000000e7: DUP1 000000e8: REVERT 000000e9: JUMPDEST 000000ea: DUP1 000000eb: PUSH4 0xc7ba0347 000000f0: EQ 000000f1: PUSH2 0x0741 000000f4: JUMPI 000000f5: DUP1 000000f6: PUSH4 0xc88d47ba 000000fb: EQ 000000fc: PUSH2 0x074d 000000ff: JUMPI 00000100: DUP1 00000101: PUSH4 0xcf756fdf 00000106: EQ 00000107: PUSH2 0x0770 0000010a: JUMPI 0000010b: PUSH1 0x00 0000010d: DUP1 0000010e: REVERT 0000010f: JUMPDEST 00000110: DUP1 00000111: PUSH4 0x9a53b070 00000116: GT 00000117: PUSH2 0x0187 0000011a: JUMPI 0000011b: DUP1 0000011c: PUSH4 0xaebc3145 00000121: GT 00000122: PUSH2 0x0156 00000125: JUMPI 00000126: DUP1 00000127: PUSH4 0xaebc3145 0000012c: EQ 0000012d: PUSH2 0x06f5 00000130: JUMPI 00000131: DUP1 00000132: PUSH4 0xc09975cd 00000137: EQ 00000138: PUSH2 0x0708 0000013b: JUMPI 0000013c: DUP1 0000013d: PUSH4 0xc415b95c 00000142: EQ 00000143: PUSH2 0x071b 00000146: JUMPI 00000147: DUP1 00000148: PUSH4 0xc49372d8 0000014d: EQ 0000014e: PUSH2 0x072e 00000151: JUMPI 00000152: PUSH1 0x00 00000154: DUP1 00000155: REVERT 00000156: JUMPDEST 00000157: DUP1 00000158: PUSH4 0x9a53b070 0000015d: EQ 0000015e: PUSH2 0x06a9 00000161: JUMPI 00000162: DUP1 00000163: PUSH4 0x9a6ac455 00000168: EQ 00000169: PUSH2 0x06bc 0000016c: JUMPI 0000016d: DUP1 0000016e: PUSH4 0x9df60d10 00000173: EQ 00000174: PUSH2 0x06cf 00000177: JUMPI 00000178: DUP1 00000179: PUSH4 0xace09eab 0000017e: EQ 0000017f: PUSH2 0x06e2 00000182: JUMPI 00000183: PUSH1 0x00 00000185: DUP1 00000186: REVERT 00000187: JUMPDEST 00000188: DUP1 00000189: PUSH4 0x8da5cb5b 0000018e: GT 0000018f: PUSH2 0x01c3 00000192: JUMPI 00000193: DUP1 00000194: PUSH4 0x8da5cb5b 00000199: EQ 0000019a: PUSH2 0x063e 0000019d: JUMPI 0000019e: DUP1 0000019f: PUSH4 0x908d272b 000001a4: EQ 000001a5: PUSH2 0x0646 000001a8: JUMPI 000001a9: DUP1 000001aa: PUSH4 0x940992a3 000001af: EQ 000001b0: PUSH2 0x0659 000001b3: JUMPI 000001b4: DUP1 000001b5: PUSH4 0x941b1f94 000001ba: EQ 000001bb: PUSH2 0x0679 000001be: JUMPI 000001bf: PUSH1 0x00 000001c1: DUP1 000001c2: REVERT 000001c3: JUMPDEST 000001c4: DUP1 000001c5: PUSH4 0x8993b5f8 000001ca: EQ 000001cb: PUSH2 0x05ff 000001ce: JUMPI 000001cf: DUP1 000001d0: PUSH4 0x8a82e3e3 000001d5: EQ 000001d6: PUSH2 0x0612 000001d9: JUMPI 000001da: DUP1 000001db: PUSH4 0x8bc7e8c4 000001e0: EQ 000001e1: PUSH2 0x0635 000001e4: JUMPI 000001e5: PUSH1 0x00 000001e7: DUP1 000001e8: REVERT 000001e9: JUMPDEST 000001ea: DUP1 000001eb: PUSH4 0x593e17e9 000001f0: GT 000001f1: PUSH2 0x02ce 000001f4: JUMPI 000001f5: DUP1 000001f6: PUSH4 0x6f64aca2 000001fb: GT 000001fc: PUSH2 0x026c 000001ff: JUMPI 00000200: DUP1 00000201: PUSH4 0x773573e2 00000206: GT 00000207: PUSH2 0x023b 0000020a: JUMPI 0000020b: DUP1 0000020c: PUSH4 0x773573e2 00000211: EQ 00000212: PUSH2 0x05be 00000215: JUMPI 00000216: DUP1 00000217: PUSH4 0x79ba5097 0000021c: EQ 0000021d: PUSH2 0x05d1 00000220: JUMPI 00000221: DUP1 00000222: PUSH4 0x7b35b4e6 00000227: EQ 00000228: PUSH2 0x05d9 0000022b: JUMPI 0000022c: DUP1 0000022d: PUSH4 0x817d00ae 00000232: EQ 00000233: PUSH2 0x05ec 00000236: JUMPI 00000237: PUSH1 0x00 00000239: DUP1 0000023a: REVERT 0000023b: JUMPDEST 0000023c: DUP1 0000023d: PUSH4 0x6f64aca2 00000242: EQ 00000243: PUSH2 0x057d 00000246: JUMPI 00000247: DUP1 00000248: PUSH4 0x715018a6 0000024d: EQ 0000024e: PUSH2 0x0590 00000251: JUMPI 00000252: DUP1 00000253: PUSH4 0x71fb661c 00000258: EQ 00000259: PUSH2 0x0598 0000025c: JUMPI 0000025d: DUP1 0000025e: PUSH4 0x74ca1279 00000263: EQ 00000264: PUSH2 0x05ab 00000267: JUMPI 00000268: PUSH1 0x00 0000026a: DUP1 0000026b: REVERT 0000026c: JUMPDEST 0000026d: DUP1 0000026e: PUSH4 0x61912174 00000273: GT 00000274: PUSH2 0x02a8 00000277: JUMPI 00000278: DUP1 00000279: PUSH4 0x61912174 0000027e: EQ 0000027f: PUSH2 0x0521 00000282: JUMPI 00000283: DUP1 00000284: PUSH4 0x61e20505 00000289: EQ 0000028a: PUSH2 0x0534 0000028d: JUMPI 0000028e: DUP1 0000028f: PUSH4 0x62fe53e1 00000294: EQ 00000295: PUSH2 0x0557 00000298: JUMPI 00000299: DUP1 0000029a: PUSH4 0x67a68320 0000029f: EQ 000002a0: PUSH2 0x056a 000002a3: JUMPI 000002a4: PUSH1 0x00 000002a6: DUP1 000002a7: REVERT 000002a8: JUMPDEST 000002a9: DUP1 000002aa: PUSH4 0x593e17e9 000002af: EQ 000002b0: PUSH2 0x04fe 000002b3: JUMPI 000002b4: DUP1 000002b5: PUSH4 0x5d7e10b0 000002ba: EQ 000002bb: PUSH2 0x0511 000002be: JUMPI 000002bf: DUP1 000002c0: PUSH4 0x5febd8eb 000002c5: EQ 000002c6: PUSH2 0x0519 000002c9: JUMPI 000002ca: PUSH1 0x00 000002cc: DUP1 000002cd: REVERT 000002ce: JUMPDEST 000002cf: DUP1 000002d0: PUSH4 0x2aa35226 000002d5: GT 000002d6: PUSH2 0x033b 000002d9: JUMPI 000002da: DUP1 000002db: PUSH4 0x50bb36c2 000002e0: GT 000002e1: PUSH2 0x0315 000002e4: JUMPI 000002e5: DUP1 000002e6: PUSH4 0x50bb36c2 000002eb: EQ 000002ec: PUSH2 0x04ba 000002ef: JUMPI 000002f0: DUP1 000002f1: PUSH4 0x529d15cc 000002f6: EQ 000002f7: PUSH2 0x04c2 000002fa: JUMPI 000002fb: DUP1 000002fc: PUSH4 0x54f190e3 00000301: EQ 00000302: PUSH2 0x04cb 00000305: JUMPI 00000306: DUP1 00000307: PUSH4 0x569b8e2c 0000030c: EQ 0000030d: PUSH2 0x04eb 00000310: JUMPI 00000311: PUSH1 0x00 00000313: DUP1 00000314: REVERT 00000315: JUMPDEST 00000316: DUP1 00000317: PUSH4 0x2aa35226 0000031c: EQ 0000031d: PUSH2 0x0487 00000320: JUMPI 00000321: DUP1 00000322: PUSH4 0x427f9568 00000327: EQ 00000328: PUSH2 0x049a 0000032b: JUMPI 0000032c: DUP1 0000032d: PUSH4 0x4835038a 00000332: EQ 00000333: PUSH2 0x04ad 00000336: JUMPI 00000337: PUSH1 0x00 00000339: DUP1 0000033a: REVERT 0000033b: JUMPDEST 0000033c: DUP1 0000033d: PUSH4 0x1d7133d6 00000342: GT 00000343: PUSH2 0x0377 00000346: JUMPI 00000347: DUP1 00000348: PUSH4 0x1d7133d6 0000034d: EQ 0000034e: PUSH2 0x0436 00000351: JUMPI 00000352: DUP1 00000353: PUSH4 0x225fbcc5 00000358: EQ 00000359: PUSH2 0x0449 0000035c: JUMPI 0000035d: DUP1 0000035e: PUSH4 0x24f90de9 00000363: EQ 00000364: PUSH2 0x045e 00000367: JUMPI 00000368: DUP1 00000369: PUSH4 0x25ed59d4 0000036e: EQ 0000036f: PUSH2 0x0471 00000372: JUMPI 00000373: PUSH1 0x00 00000375: DUP1 00000376: REVERT 00000377: JUMPDEST 00000378: DUP1 00000379: PUSH4 0x081ce969 0000037e: EQ 0000037f: PUSH2 0x039e 00000382: JUMPI 00000383: DUP1 00000384: PUSH4 0x0f36403a 00000389: EQ 0000038a: PUSH2 0x03d8 0000038d: JUMPI 0000038e: DUP1 0000038f: PUSH4 0x18b1e168 00000394: EQ 00000395: PUSH2 0x0403 00000398: JUMPI 00000399: JUMPDEST 0000039a: PUSH1 0x00 0000039c: DUP1 0000039d: REVERT 0000039e: JUMPDEST 0000039f: PUSH2 0x03c1 000003a2: PUSH2 0x03ac 000003a5: CALLDATASIZE 000003a6: PUSH1 0x04 000003a8: PUSH2 0x4567 000003ab: JUMP 000003ac: JUMPDEST 000003ad: PUSH1 0x97 000003af: PUSH1 0x20 000003b1: MSTORE 000003b2: PUSH1 0x00 000003b4: SWAP1 000003b5: DUP2 000003b6: MSTORE 000003b7: PUSH1 0x40 000003b9: SWAP1 000003ba: KECCAK256 000003bb: SLOAD 000003bc: PUSH1 0xff 000003be: AND 000003bf: DUP2 000003c0: JUMP 000003c1: JUMPDEST 000003c2: PUSH1 0x40 000003c4: MLOAD 000003c5: PUSH1 0xff 000003c7: SWAP1 000003c8: SWAP2 000003c9: AND 000003ca: DUP2 000003cb: MSTORE 000003cc: PUSH1 0x20 000003ce: ADD 000003cf: JUMPDEST 000003d0: PUSH1 0x40 000003d2: MLOAD 000003d3: DUP1 000003d4: SWAP2 000003d5: SUB 000003d6: SWAP1 000003d7: RETURN 000003d8: JUMPDEST 000003d9: PUSH1 0x01 000003db: SLOAD 000003dc: PUSH2 0x03eb 000003df: SWAP1 000003e0: PUSH1 0x01 000003e2: PUSH1 0x01 000003e4: PUSH1 0xa0 000003e6: SHL 000003e7: SUB 000003e8: AND 000003e9: DUP2 000003ea: JUMP 000003eb: JUMPDEST 000003ec: PUSH1 0x40 000003ee: MLOAD 000003ef: PUSH1 0x01 000003f1: PUSH1 0x01 000003f3: PUSH1 0xa0 000003f5: SHL 000003f6: SUB 000003f7: SWAP1 000003f8: SWAP2 000003f9: AND 000003fa: DUP2 000003fb: MSTORE 000003fc: PUSH1 0x20 000003fe: ADD 000003ff: PUSH2 0x03cf 00000402: JUMP 00000403: JUMPDEST 00000404: PUSH2 0x0426 00000407: PUSH2 0x0411 0000040a: CALLDATASIZE 0000040b: PUSH1 0x04 0000040d: PUSH2 0x4584 00000410: JUMP 00000411: JUMPDEST 00000412: PUSH1 0xa1 00000414: PUSH1 0x20 00000416: MSTORE 00000417: PUSH1 0x00 00000419: SWAP1 0000041a: DUP2 0000041b: MSTORE 0000041c: PUSH1 0x40 0000041e: SWAP1 0000041f: KECCAK256 00000420: SLOAD 00000421: PUSH1 0xff 00000423: AND 00000424: DUP2 00000425: JUMP 00000426: JUMPDEST 00000427: PUSH1 0x40 00000429: MLOAD 0000042a: SWAP1 0000042b: ISZERO 0000042c: ISZERO 0000042d: DUP2 0000042e: MSTORE 0000042f: PUSH1 0x20 00000431: ADD 00000432: PUSH2 0x03cf 00000435: JUMP 00000436: JUMPDEST 00000437: PUSH1 0x34 00000439: SLOAD 0000043a: PUSH2 0x03eb 0000043d: SWAP1 0000043e: PUSH1 0x01 00000440: PUSH1 0x01 00000442: PUSH1 0xa0 00000444: SHL 00000445: SUB 00000446: AND 00000447: DUP2 00000448: JUMP 00000449: JUMPDEST 0000044a: PUSH2 0x045c 0000044d: PUSH2 0x0457 00000450: CALLDATASIZE 00000451: PUSH1 0x04 00000453: PUSH2 0x4567 00000456: JUMP 00000457: JUMPDEST 00000458: PUSH2 0x0840 0000045b: JUMP 0000045c: JUMPDEST 0000045d: STOP 0000045e: JUMPDEST 0000045f: PUSH2 0x045c 00000462: PUSH2 0x046c 00000465: CALLDATASIZE 00000466: PUSH1 0x04 00000468: PUSH2 0x459d 0000046b: JUMP 0000046c: JUMPDEST 0000046d: PUSH2 0x0894 00000470: JUMP 00000471: JUMPDEST 00000472: PUSH2 0x0479 00000475: PUSH1 0x41 00000477: DUP2 00000478: JUMP 00000479: JUMPDEST 0000047a: PUSH1 0x40 0000047c: MLOAD 0000047d: SWAP1 0000047e: DUP2 0000047f: MSTORE 00000480: PUSH1 0x20 00000482: ADD 00000483: PUSH2 0x03cf 00000486: JUMP 00000487: JUMPDEST 00000488: PUSH2 0x03c1 0000048b: PUSH2 0x0495 0000048e: CALLDATASIZE 0000048f: PUSH1 0x04 00000491: PUSH2 0x4584 00000494: JUMP 00000495: JUMPDEST 00000496: PUSH2 0x0ace 00000499: JUMP 0000049a: JUMPDEST 0000049b: PUSH2 0x045c 0000049e: PUSH2 0x04a8 000004a1: CALLDATASIZE 000004a2: PUSH1 0x04 000004a4: PUSH2 0x45de 000004a7: JUMP 000004a8: JUMPDEST 000004a9: PUSH2 0x0aec 000004ac: JUMP 000004ad: JUMPDEST 000004ae: PUSH1 0x9f 000004b0: SLOAD 000004b1: PUSH2 0x0426 000004b4: SWAP1 000004b5: PUSH1 0xff 000004b7: AND 000004b8: DUP2 000004b9: JUMP 000004ba: JUMPDEST 000004bb: PUSH2 0x0479 000004be: PUSH2 0x0c5a 000004c1: JUMP 000004c2: JUMPDEST 000004c3: PUSH2 0x0479 000004c6: PUSH1 0x95 000004c8: SLOAD 000004c9: DUP2 000004ca: JUMP 000004cb: JUMPDEST 000004cc: PUSH2 0x0479 000004cf: PUSH2 0x04d9 000004d2: CALLDATASIZE 000004d3: PUSH1 0x04 000004d5: PUSH2 0x4567 000004d8: JUMP 000004d9: JUMPDEST 000004da: PUSH1 0xa0 000004dc: PUSH1 0x20 000004de: MSTORE 000004df: PUSH1 0x00 000004e1: SWAP1 000004e2: DUP2 000004e3: MSTORE 000004e4: PUSH1 0x40 000004e6: SWAP1 000004e7: KECCAK256 000004e8: SLOAD 000004e9: DUP2 000004ea: JUMP 000004eb: JUMPDEST 000004ec: PUSH2 0x045c 000004ef: PUSH2 0x04f9 000004f2: CALLDATASIZE 000004f3: PUSH1 0x04 000004f5: PUSH2 0x4584 000004f8: JUMP 000004f9: JUMPDEST 000004fa: PUSH2 0x0c88 000004fd: JUMP 000004fe: JUMPDEST 000004ff: PUSH2 0x045c 00000502: PUSH2 0x050c 00000505: CALLDATASIZE 00000506: PUSH1 0x04 00000508: PUSH2 0x4638 0000050b: JUMP 0000050c: JUMPDEST 0000050d: PUSH2 0x0d15 00000510: JUMP 00000511: JUMPDEST 00000512: PUSH2 0x045c 00000515: PUSH2 0x0dbc 00000518: JUMP 00000519: JUMPDEST 0000051a: PUSH2 0x0479 0000051d: PUSH1 0x14 0000051f: DUP2 00000520: JUMP 00000521: JUMPDEST 00000522: PUSH2 0x045c 00000525: PUSH2 0x052f 00000528: CALLDATASIZE 00000529: PUSH1 0x04 0000052b: PUSH2 0x4664 0000052e: JUMP 0000052f: JUMPDEST 00000530: PUSH2 0x0e39 00000533: JUMP 00000534: JUMPDEST 00000535: PUSH2 0x0426 00000538: PUSH2 0x0542 0000053b: CALLDATASIZE 0000053c: PUSH1 0x04 0000053e: PUSH2 0x4584 00000541: JUMP 00000542: JUMPDEST 00000543: PUSH1 0x9a 00000545: PUSH1 0x20 00000547: MSTORE 00000548: PUSH1 0x00 0000054a: SWAP1 0000054b: DUP2 0000054c: MSTORE 0000054d: PUSH1 0x40 0000054f: SWAP1 00000550: KECCAK256 00000551: SLOAD 00000552: PUSH1 0xff 00000554: AND 00000555: DUP2 00000556: JUMP 00000557: JUMPDEST 00000558: PUSH2 0x045c 0000055b: PUSH2 0x0565 0000055e: CALLDATASIZE 0000055f: PUSH1 0x04 00000561: PUSH2 0x4584 00000564: JUMP 00000565: JUMPDEST 00000566: PUSH2 0x0f5d 00000569: JUMP 0000056a: JUMPDEST 0000056b: PUSH2 0x045c 0000056e: PUSH2 0x0578 00000571: CALLDATASIZE 00000572: PUSH1 0x04 00000574: PUSH2 0x4638 00000577: JUMP 00000578: JUMPDEST 00000579: PUSH2 0x0fda 0000057c: JUMP 0000057d: JUMPDEST 0000057e: PUSH2 0x045c 00000581: PUSH2 0x058b 00000584: CALLDATASIZE 00000585: PUSH1 0x04 00000587: PUSH2 0x46a6 0000058a: JUMP 0000058b: JUMPDEST 0000058c: PUSH2 0x1156 0000058f: JUMP 00000590: JUMPDEST 00000591: PUSH2 0x045c 00000594: PUSH2 0x1296 00000597: JUMP 00000598: JUMPDEST 00000599: PUSH2 0x045c 0000059c: PUSH2 0x05a6 0000059f: CALLDATASIZE 000005a0: PUSH1 0x04 000005a2: PUSH2 0x4567 000005a5: JUMP 000005a6: JUMPDEST 000005a7: PUSH2 0x12aa 000005aa: JUMP 000005ab: JUMPDEST 000005ac: PUSH2 0x045c 000005af: PUSH2 0x05b9 000005b2: CALLDATASIZE 000005b3: PUSH1 0x04 000005b5: PUSH2 0x4567 000005b8: JUMP 000005b9: JUMPDEST 000005ba: PUSH2 0x1368 000005bd: JUMP 000005be: JUMPDEST 000005bf: PUSH2 0x045c 000005c2: PUSH2 0x05cc 000005c5: CALLDATASIZE 000005c6: PUSH1 0x04 000005c8: PUSH2 0x4808 000005cb: JUMP 000005cc: JUMPDEST 000005cd: PUSH2 0x141a 000005d0: JUMP 000005d1: JUMPDEST 000005d2: PUSH2 0x045c 000005d5: PUSH2 0x1669 000005d8: JUMP 000005d9: JUMPDEST 000005da: PUSH2 0x045c 000005dd: PUSH2 0x05e7 000005e0: CALLDATASIZE 000005e1: PUSH1 0x04 000005e3: PUSH2 0x4567 000005e6: JUMP 000005e7: JUMPDEST 000005e8: PUSH2 0x16ca 000005eb: JUMP 000005ec: JUMPDEST 000005ed: PUSH2 0x0426 000005f0: PUSH2 0x05fa 000005f3: CALLDATASIZE 000005f4: PUSH1 0x04 000005f6: PUSH2 0x49b2 000005f9: JUMP 000005fa: JUMPDEST 000005fb: PUSH2 0x173c 000005fe: JUMP 000005ff: JUMPDEST 00000600: PUSH2 0x045c 00000603: PUSH2 0x060d 00000606: CALLDATASIZE 00000607: PUSH1 0x04 00000609: PUSH2 0x49ef 0000060c: JUMP 0000060d: JUMPDEST 0000060e: PUSH2 0x1a75 00000611: JUMP 00000612: JUMPDEST 00000613: PUSH2 0x0426 00000616: PUSH2 0x0620 00000619: CALLDATASIZE 0000061a: PUSH1 0x04 0000061c: PUSH2 0x4584 0000061f: JUMP 00000620: JUMPDEST 00000621: PUSH1 0x99 00000623: PUSH1 0x20 00000625: MSTORE 00000626: PUSH1 0x00 00000628: SWAP1 00000629: DUP2 0000062a: MSTORE 0000062b: PUSH1 0x40 0000062d: SWAP1 0000062e: KECCAK256 0000062f: SLOAD 00000630: PUSH1 0xff 00000632: AND 00000633: DUP2 00000634: JUMP 00000635: JUMPDEST 00000636: PUSH2 0x0479 00000639: PUSH1 0x9b 0000063b: SLOAD 0000063c: DUP2 0000063d: JUMP 0000063e: JUMPDEST 0000063f: PUSH2 0x03eb 00000642: PUSH2 0x1eba 00000645: JUMP 00000646: JUMPDEST 00000647: PUSH2 0x045c 0000064a: PUSH2 0x0654 0000064d: CALLDATASIZE 0000064e: PUSH1 0x04 00000650: PUSH2 0x4638 00000653: JUMP 00000654: JUMPDEST 00000655: PUSH2 0x1eef 00000658: JUMP 00000659: JUMPDEST 0000065a: PUSH2 0x0479 0000065d: PUSH2 0x0667 00000660: CALLDATASIZE 00000661: PUSH1 0x04 00000663: PUSH2 0x4584 00000666: JUMP 00000667: JUMPDEST 00000668: PUSH1 0x98 0000066a: PUSH1 0x20 0000066c: MSTORE 0000066d: PUSH1 0x00 0000066f: SWAP1 00000670: DUP2 00000671: MSTORE 00000672: PUSH1 0x40 00000674: SWAP1 00000675: KECCAK256 00000676: SLOAD 00000677: DUP2 00000678: JUMP 00000679: JUMPDEST 0000067a: PUSH2 0x069c 0000067d: PUSH2 0x0687 00000680: CALLDATASIZE 00000681: PUSH1 0x04 00000683: PUSH2 0x4584 00000686: JUMP 00000687: JUMPDEST 00000688: PUSH1 0x32 0000068a: PUSH1 0x20 0000068c: MSTORE 0000068d: PUSH1 0x00 0000068f: SWAP1 00000690: DUP2 00000691: MSTORE 00000692: PUSH1 0x40 00000694: SWAP1 00000695: KECCAK256 00000696: SLOAD 00000697: PUSH1 0xff 00000699: AND 0000069a: DUP2 0000069b: JUMP 0000069c: JUMPDEST 0000069d: PUSH1 0x40 0000069f: MLOAD 000006a0: PUSH2 0x03cf 000006a3: SWAP2 000006a4: SWAP1 000006a5: PUSH2 0x4a8e 000006a8: JUMP 000006a9: JUMPDEST 000006aa: PUSH2 0x045c 000006ad: PUSH2 0x06b7 000006b0: CALLDATASIZE 000006b1: PUSH1 0x04 000006b3: PUSH2 0x4567 000006b6: JUMP 000006b7: JUMPDEST 000006b8: PUSH2 0x1fcf 000006bb: JUMP 000006bc: JUMPDEST 000006bd: PUSH2 0x045c 000006c0: PUSH2 0x06ca 000006c3: CALLDATASIZE 000006c4: PUSH1 0x04 000006c6: PUSH2 0x4567 000006c9: JUMP 000006ca: JUMPDEST 000006cb: PUSH2 0x2240 000006ce: JUMP 000006cf: JUMPDEST 000006d0: PUSH2 0x045c 000006d3: PUSH2 0x06dd 000006d6: CALLDATASIZE 000006d7: PUSH1 0x04 000006d9: PUSH2 0x4ae5 000006dc: JUMP 000006dd: JUMPDEST 000006de: PUSH2 0x2291 000006e1: JUMP 000006e2: JUMPDEST 000006e3: PUSH2 0x045c 000006e6: PUSH2 0x06f0 000006e9: CALLDATASIZE 000006ea: PUSH1 0x04 000006ec: PUSH2 0x4567 000006ef: JUMP 000006f0: JUMPDEST 000006f1: PUSH2 0x2617 000006f4: JUMP 000006f5: JUMPDEST 000006f6: PUSH2 0x03eb 000006f9: PUSH2 0x0703 000006fc: CALLDATASIZE 000006fd: PUSH1 0x04 000006ff: PUSH2 0x4584 00000702: JUMP 00000703: JUMPDEST 00000704: PUSH2 0x27a9 00000707: JUMP 00000708: JUMPDEST 00000709: PUSH1 0x9d 0000070b: SLOAD 0000070c: PUSH2 0x03eb 0000070f: SWAP1 00000710: PUSH1 0x01 00000712: PUSH1 0x01 00000714: PUSH1 0xa0 00000716: SHL 00000717: SUB 00000718: AND 00000719: DUP2 0000071a: JUMP 0000071b: JUMPDEST 0000071c: PUSH1 0x9c 0000071e: SLOAD 0000071f: PUSH2 0x03eb 00000722: SWAP1 00000723: PUSH1 0x01 00000725: PUSH1 0x01 00000727: PUSH1 0xa0 00000729: SHL 0000072a: SUB 0000072b: AND 0000072c: DUP2 0000072d: JUMP 0000072e: JUMPDEST 0000072f: PUSH2 0x045c 00000732: PUSH2 0x073c 00000735: CALLDATASIZE 00000736: PUSH1 0x04 00000738: PUSH2 0x4b4e 0000073b: JUMP 0000073c: JUMPDEST 0000073d: PUSH2 0x27d3 00000740: JUMP 00000741: JUMPDEST 00000742: PUSH2 0x0479 00000745: PUSH5 0x02540be400 0000074b: DUP2 0000074c: JUMP 0000074d: JUMPDEST 0000074e: PUSH2 0x0426 00000751: PUSH2 0x075b 00000754: CALLDATASIZE 00000755: PUSH1 0x04 00000757: PUSH2 0x4567 0000075a: JUMP 0000075b: JUMPDEST 0000075c: PUSH1 0x9e 0000075e: PUSH1 0x20 00000760: MSTORE 00000761: PUSH1 0x00 00000763: SWAP1 00000764: DUP2 00000765: MSTORE 00000766: PUSH1 0x40 00000768: SWAP1 00000769: KECCAK256 0000076a: SLOAD 0000076b: PUSH1 0xff 0000076d: AND 0000076e: DUP2 0000076f: JUMP 00000770: JUMPDEST 00000771: PUSH2 0x045c 00000774: PUSH2 0x077e 00000777: CALLDATASIZE 00000778: PUSH1 0x04 0000077a: PUSH2 0x4b90 0000077d: JUMP 0000077e: JUMPDEST 0000077f: PUSH2 0x288a 00000782: JUMP 00000783: JUMPDEST 00000784: PUSH2 0x0479 00000787: PUSH2 0x2710 0000078a: DUP2 0000078b: JUMP 0000078c: JUMPDEST 0000078d: PUSH2 0x0479 00000790: PUSH1 0x63 00000792: SLOAD 00000793: DUP2 00000794: JUMP 00000795: JUMPDEST 00000796: PUSH2 0x045c 00000799: PUSH2 0x07a3 0000079c: CALLDATASIZE 0000079d: PUSH1 0x04 0000079f: PUSH2 0x4567 000007a2: JUMP 000007a3: JUMPDEST 000007a4: PUSH2 0x2a1c 000007a7: JUMP 000007a8: JUMPDEST 000007a9: PUSH1 0x96 000007ab: SLOAD 000007ac: PUSH2 0x0479 000007af: JUMP 000007b0: JUMPDEST 000007b1: PUSH2 0x0479 000007b4: PUSH2 0x07be 000007b7: CALLDATASIZE 000007b8: PUSH1 0x04 000007ba: PUSH2 0x4567 000007bd: JUMP 000007be: JUMPDEST 000007bf: PUSH1 0x64 000007c1: PUSH1 0x20 000007c3: MSTORE 000007c4: PUSH1 0x00 000007c6: SWAP1 000007c7: DUP2 000007c8: MSTORE 000007c9: PUSH1 0x40 000007cb: SWAP1 000007cc: KECCAK256 000007cd: SLOAD 000007ce: DUP2 000007cf: JUMP 000007d0: JUMPDEST 000007d1: PUSH2 0x0479 000007d4: PUSH1 0x33 000007d6: SLOAD 000007d7: DUP2 000007d8: JUMP 000007d9: JUMPDEST 000007da: PUSH2 0x045c 000007dd: PUSH2 0x07e7 000007e0: CALLDATASIZE 000007e1: PUSH1 0x04 000007e3: PUSH2 0x459d 000007e6: JUMP 000007e7: JUMPDEST 000007e8: PUSH2 0x2a8e 000007eb: JUMP 000007ec: JUMPDEST 000007ed: PUSH2 0x03eb 000007f0: PUSH2 0x2acd 000007f3: JUMP 000007f4: JUMPDEST 000007f5: PUSH1 0x31 000007f7: SLOAD 000007f8: PUSH2 0x03eb 000007fb: SWAP1 000007fc: PUSH1 0x01 000007fe: PUSH1 0x01 00000800: PUSH1 0xa0 00000802: SHL 00000803: SUB 00000804: AND 00000805: DUP2 00000806: JUMP 00000807: JUMPDEST 00000808: PUSH1 0x00 0000080a: SLOAD 0000080b: PUSH2 0x03eb 0000080e: SWAP1 0000080f: PUSH1 0x01 00000811: PUSH1 0x01 00000813: PUSH1 0xa0 00000815: SHL 00000816: SUB 00000817: AND 00000818: DUP2 00000819: JUMP 0000081a: JUMPDEST 0000081b: PUSH2 0x045c 0000081e: PUSH2 0x0828 00000821: CALLDATASIZE 00000822: PUSH1 0x04 00000824: PUSH2 0x4567 00000827: JUMP 00000828: JUMPDEST 00000829: PUSH2 0x2af6 0000082c: JUMP 0000082d: JUMPDEST 0000082e: PUSH2 0x045c 00000831: PUSH2 0x083b 00000834: CALLDATASIZE 00000835: PUSH1 0x04 00000837: PUSH2 0x4b4e 0000083a: JUMP 0000083b: JUMPDEST 0000083c: PUSH2 0x2b93 0000083f: JUMP 00000840: JUMPDEST 00000841: PUSH2 0x0848 00000844: PUSH2 0x2c01 00000847: JUMP 00000848: JUMPDEST 00000849: PUSH1 0x01 0000084b: PUSH1 0x01 0000084d: PUSH1 0xa0 0000084f: SHL 00000850: SUB 00000851: DUP2 00000852: AND 00000853: PUSH1 0x00 00000855: DUP2 00000856: DUP2 00000857: MSTORE 00000858: PUSH1 0x9e 0000085a: PUSH1 0x20 0000085c: MSTORE 0000085d: PUSH1 0x40 0000085f: DUP1 00000860: DUP3 00000861: KECCAK256 00000862: DUP1 00000863: SLOAD 00000864: PUSH1 0xff 00000866: NOT 00000867: AND 00000868: PUSH1 0x01 0000086a: OR 0000086b: SWAP1 0000086c: SSTORE 0000086d: MLOAD 0000086e: PUSH32 0xc93ba6b98e36dd6aad0f4fafd13bf5befa3e2d1c3b15da811af870cb5a8e2d2d 0000088f: SWAP2 00000890: SWAP1 00000891: LOG2 00000892: POP 00000893: JUMP 00000894: JUMPDEST 00000895: PUSH1 0x01 00000897: PUSH1 0x00 00000899: DUP4 0000089a: DUP2 0000089b: MSTORE 0000089c: PUSH1 0x32 0000089e: PUSH1 0x20 000008a0: MSTORE 000008a1: PUSH1 0x40 000008a3: SWAP1 000008a4: KECCAK256 000008a5: SLOAD 000008a6: PUSH1 0xff 000008a8: AND 000008a9: PUSH1 0x02 000008ab: DUP2 000008ac: GT 000008ad: ISZERO 000008ae: PUSH2 0x08b9 000008b1: JUMPI 000008b2: PUSH2 0x08b9 000008b5: PUSH2 0x4a24 000008b8: JUMP 000008b9: JUMPDEST 000008ba: EQ 000008bb: PUSH2 0x0910 000008be: JUMPI 000008bf: PUSH1 0x00 000008c1: DUP3 000008c2: DUP2 000008c3: MSTORE 000008c4: PUSH1 0x32 000008c6: PUSH1 0x20 000008c8: MSTORE 000008c9: PUSH1 0x40 000008cb: SWAP1 000008cc: DUP2 000008cd: SWAP1 000008ce: KECCAK256 000008cf: SLOAD 000008d0: SWAP1 000008d1: MLOAD 000008d2: PUSH32 0xed33029f00000000000000000000000000000000000000000000000000000000 000008f3: DUP2 000008f4: MSTORE 000008f5: PUSH2 0x0907 000008f8: SWAP2 000008f9: PUSH1 0xff 000008fb: AND 000008fc: SWAP1 000008fd: PUSH1 0x01 000008ff: SWAP1 00000900: PUSH1 0x04 00000902: ADD 00000903: PUSH2 0x4be1 00000906: JUMP 00000907: JUMPDEST 00000908: PUSH1 0x40 0000090a: MLOAD 0000090b: DUP1 0000090c: SWAP2 0000090d: SUB 0000090e: SWAP1 0000090f: REVERT 00000910: JUMPDEST 00000911: PUSH1 0x00 00000913: DUP3 00000914: DUP2 00000915: MSTORE 00000916: PUSH1 0x32 00000918: PUSH1 0x20 0000091a: MSTORE 0000091b: PUSH1 0x40 0000091d: DUP2 0000091e: KECCAK256 0000091f: DUP1 00000920: SLOAD 00000921: PUSH1 0xff 00000923: NOT 00000924: AND 00000925: PUSH1 0x02 00000927: OR 00000928: SWAP1 00000929: SSTORE 0000092a: DUP1 0000092b: PUSH2 0x0933 0000092e: DUP5 0000092f: PUSH2 0x2c4c 00000932: JUMP 00000933: JUMPDEST 00000934: PUSH1 0x40 00000936: DUP1 00000937: MLOAD 00000938: PUSH1 0x01 0000093a: PUSH1 0x01 0000093c: PUSH1 0xa0 0000093e: SHL 0000093f: SUB 00000940: DUP9 00000941: AND 00000942: PUSH1 0x20 00000944: DUP1 00000945: DUP4 00000946: ADD 00000947: SWAP2 00000948: SWAP1 00000949: SWAP2 0000094a: MSTORE 0000094b: DUP3 0000094c: MLOAD 0000094d: DUP1 0000094e: DUP4 0000094f: SUB 00000950: DUP3 00000951: ADD 00000952: DUP2 00000953: MSTORE 00000954: SWAP2 00000955: DUP4 00000956: ADD 00000957: SWAP1 00000958: SWAP3 00000959: MSTORE 0000095a: DUP1 0000095b: MLOAD 0000095c: SWAP2 0000095d: ADD 0000095e: KECCAK256 0000095f: SWAP3 00000960: SWAP5 00000961: POP 00000962: SWAP3 00000963: POP 00000964: POP 00000965: DUP1 00000966: DUP3 00000967: EQ 00000968: PUSH2 0x09a7 0000096b: JUMPI 0000096c: PUSH1 0x40 0000096e: MLOAD 0000096f: PUSH32 0xd961e24c00000000000000000000000000000000000000000000000000000000 00000990: DUP2 00000991: MSTORE 00000992: PUSH1 0x04 00000994: DUP2 00000995: ADD 00000996: DUP3 00000997: SWAP1 00000998: MSTORE 00000999: PUSH1 0x24 0000099b: DUP2 0000099c: ADD 0000099d: DUP4 0000099e: SWAP1 0000099f: MSTORE 000009a0: PUSH1 0x44 000009a2: ADD 000009a3: PUSH2 0x0907 000009a6: JUMP 000009a7: JUMPDEST 000009a8: PUSH1 0x31 000009aa: SLOAD 000009ab: PUSH1 0x40 000009ad: MLOAD 000009ae: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 000009cf: DUP2 000009d0: MSTORE 000009d1: ADDRESS 000009d2: PUSH1 0x04 000009d4: DUP3 000009d5: ADD 000009d6: MSTORE 000009d7: PUSH1 0x00 000009d9: SWAP2 000009da: PUSH1 0x01 000009dc: PUSH1 0x01 000009de: PUSH1 0xa0 000009e0: SHL 000009e1: SUB 000009e2: AND 000009e3: SWAP1 000009e4: PUSH4 0x70a08231 000009e9: SWAP1 000009ea: PUSH1 0x24 000009ec: ADD 000009ed: PUSH1 0x20 000009ef: PUSH1 0x40 000009f1: MLOAD 000009f2: DUP1 000009f3: DUP4 000009f4: SUB 000009f5: DUP2 000009f6: DUP7 000009f7: GAS 000009f8: STATICCALL 000009f9: ISZERO 000009fa: DUP1 000009fb: ISZERO 000009fc: PUSH2 0x0a09 000009ff: JUMPI 00000a00: RETURNDATASIZE 00000a01: PUSH1 0x00 00000a03: DUP1 00000a04: RETURNDATACOPY 00000a05: RETURNDATASIZE 00000a06: PUSH1 0x00 00000a08: REVERT 00000a09: JUMPDEST 00000a0a: POP 00000a0b: POP 00000a0c: POP 00000a0d: POP 00000a0e: PUSH1 0x40 00000a10: MLOAD 00000a11: RETURNDATASIZE 00000a12: PUSH1 0x1f 00000a14: NOT 00000a15: PUSH1 0x1f 00000a17: DUP3 00000a18: ADD 00000a19: AND 00000a1a: DUP3 00000a1b: ADD 00000a1c: DUP1 00000a1d: PUSH1 0x40 00000a1f: MSTORE 00000a20: POP 00000a21: DUP2 00000a22: ADD 00000a23: SWAP1 00000a24: PUSH2 0x0a2d 00000a27: SWAP2 00000a28: SWAP1 00000a29: PUSH2 0x4bfc 00000a2c: JUMP 00000a2d: JUMPDEST 00000a2e: SWAP1 00000a2f: POP 00000a30: DUP4 00000a31: DUP2 00000a32: LT 00000a33: ISZERO 00000a34: PUSH2 0x0a73 00000a37: JUMPI 00000a38: PUSH1 0x40 00000a3a: MLOAD 00000a3b: PUSH32 0x17c7cec700000000000000000000000000000000000000000000000000000000 00000a5c: DUP2 00000a5d: MSTORE 00000a5e: PUSH1 0x04 00000a60: DUP2 00000a61: ADD 00000a62: DUP3 00000a63: SWAP1 00000a64: MSTORE 00000a65: PUSH1 0x24 00000a67: DUP2 00000a68: ADD 00000a69: DUP6 00000a6a: SWAP1 00000a6b: MSTORE 00000a6c: PUSH1 0x44 00000a6e: ADD 00000a6f: PUSH2 0x0907 00000a72: JUMP 00000a73: JUMPDEST 00000a74: PUSH1 0x40 00000a76: DUP1 00000a77: MLOAD 00000a78: DUP6 00000a79: DUP2 00000a7a: MSTORE 00000a7b: PUSH1 0x20 00000a7d: DUP2 00000a7e: ADD 00000a7f: DUP7 00000a80: SWAP1 00000a81: MSTORE 00000a82: DUP8 00000a83: SWAP2 00000a84: PUSH32 0xa81d3c9594b1f3363bfc07d9277c4624e0da8dae3b42d466f1edc0718c62ab53 00000aa5: SWAP2 00000aa6: ADD 00000aa7: PUSH1 0x40 00000aa9: MLOAD 00000aaa: DUP1 00000aab: SWAP2 00000aac: SUB 00000aad: SWAP1 00000aae: LOG2 00000aaf: PUSH1 0x31 00000ab1: SLOAD 00000ab2: PUSH2 0x0ac6 00000ab5: SWAP1 00000ab6: DUP7 00000ab7: SWAP1 00000ab8: PUSH1 0x01 00000aba: PUSH1 0x01 00000abc: PUSH1 0xa0 00000abe: SHL 00000abf: SUB 00000ac0: AND 00000ac1: DUP7 00000ac2: PUSH2 0x2ecc 00000ac5: JUMP 00000ac6: JUMPDEST 00000ac7: POP 00000ac8: POP 00000ac9: POP 00000aca: POP 00000acb: POP 00000acc: POP 00000acd: JUMP 00000ace: JUMPDEST 00000acf: PUSH1 0x00 00000ad1: DUP2 00000ad2: DUP2 00000ad3: MSTORE 00000ad4: PUSH1 0x98 00000ad6: PUSH1 0x20 00000ad8: MSTORE 00000ad9: PUSH1 0x40 00000adb: DUP2 00000adc: KECCAK256 00000add: SLOAD 00000ade: PUSH2 0x0ae6 00000ae1: SWAP1 00000ae2: PUSH2 0x2f2c 00000ae5: JUMP 00000ae6: JUMPDEST 00000ae7: SWAP3 00000ae8: SWAP2 00000ae9: POP 00000aea: POP 00000aeb: JUMP 00000aec: JUMPDEST 00000aed: PUSH2 0x0af4 00000af0: PUSH2 0x2f5b 00000af3: JUMP 00000af4: JUMPDEST 00000af5: PUSH1 0x31 00000af7: SLOAD 00000af8: PUSH1 0x40 00000afa: MLOAD 00000afb: PUSH32 0xdd62ed3e00000000000000000000000000000000000000000000000000000000 00000b1c: DUP2 00000b1d: MSTORE 00000b1e: CALLER 00000b1f: PUSH1 0x04 00000b21: DUP3 00000b22: ADD 00000b23: MSTORE 00000b24: ADDRESS 00000b25: PUSH1 0x24 00000b27: DUP3 00000b28: ADD 00000b29: MSTORE 00000b2a: DUP8 00000b2b: SWAP2 00000b2c: PUSH1 0x01 00000b2e: PUSH1 0x01 00000b30: PUSH1 0xa0 00000b32: SHL 00000b33: SUB 00000b34: AND 00000b35: SWAP1 00000b36: PUSH4 0xdd62ed3e 00000b3b: SWAP1 00000b3c: PUSH1 0x44 00000b3e: ADD 00000b3f: PUSH1 0x20 00000b41: PUSH1 0x40 00000b43: MLOAD 00000b44: DUP1 00000b45: DUP4 00000b46: SUB 00000b47: DUP2 00000b48: DUP7 00000b49: GAS 00000b4a: STATICCALL 00000b4b: ISZERO 00000b4c: DUP1 00000b4d: ISZERO 00000b4e: PUSH2 0x0b5b 00000b51: JUMPI 00000b52: RETURNDATASIZE 00000b53: PUSH1 0x00 00000b55: DUP1 00000b56: RETURNDATACOPY 00000b57: RETURNDATASIZE 00000b58: PUSH1 0x00 00000b5a: REVERT 00000b5b: JUMPDEST 00000b5c: POP 00000b5d: POP 00000b5e: POP 00000b5f: POP 00000b60: PUSH1 0x40 00000b62: MLOAD 00000b63: RETURNDATASIZE 00000b64: PUSH1 0x1f 00000b66: NOT 00000b67: PUSH1 0x1f 00000b69: DUP3 00000b6a: ADD 00000b6b: AND 00000b6c: DUP3 00000b6d: ADD 00000b6e: DUP1 00000b6f: PUSH1 0x40 00000b71: MSTORE 00000b72: POP 00000b73: DUP2 00000b74: ADD 00000b75: SWAP1 00000b76: PUSH2 0x0b7f 00000b79: SWAP2 00000b7a: SWAP1 00000b7b: PUSH2 0x4bfc 00000b7e: JUMP 00000b7f: JUMPDEST 00000b80: LT 00000b81: ISZERO 00000b82: PUSH2 0x0c27 00000b85: JUMPI 00000b86: PUSH1 0x31 00000b88: SLOAD 00000b89: PUSH1 0x40 00000b8b: MLOAD 00000b8c: PUSH32 0xd505accf00000000000000000000000000000000000000000000000000000000 00000bad: DUP2 00000bae: MSTORE 00000baf: CALLER 00000bb0: PUSH1 0x04 00000bb2: DUP3 00000bb3: ADD 00000bb4: MSTORE 00000bb5: ADDRESS 00000bb6: PUSH1 0x24 00000bb8: DUP3 00000bb9: ADD 00000bba: MSTORE 00000bbb: PUSH1 0x44 00000bbd: DUP2 00000bbe: ADD 00000bbf: DUP9 00000bc0: SWAP1 00000bc1: MSTORE 00000bc2: PUSH1 0x64 00000bc4: DUP2 00000bc5: ADD 00000bc6: DUP7 00000bc7: SWAP1 00000bc8: MSTORE 00000bc9: PUSH1 0xff 00000bcb: DUP6 00000bcc: AND 00000bcd: PUSH1 0x84 00000bcf: DUP3 00000bd0: ADD 00000bd1: MSTORE 00000bd2: PUSH1 0xa4 00000bd4: DUP2 00000bd5: ADD 00000bd6: DUP5 00000bd7: SWAP1 00000bd8: MSTORE 00000bd9: PUSH1 0xc4 00000bdb: DUP2 00000bdc: ADD 00000bdd: DUP4 00000bde: SWAP1 00000bdf: MSTORE 00000be0: PUSH1 0x01 00000be2: PUSH1 0x01 00000be4: PUSH1 0xa0 00000be6: SHL 00000be7: SUB 00000be8: SWAP1 00000be9: SWAP2 00000bea: AND 00000beb: SWAP1 00000bec: PUSH4 0xd505accf 00000bf1: SWAP1 00000bf2: PUSH1 0xe4 00000bf4: ADD 00000bf5: PUSH1 0x00 00000bf7: PUSH1 0x40 00000bf9: MLOAD 00000bfa: DUP1 00000bfb: DUP4 00000bfc: SUB 00000bfd: DUP2 00000bfe: PUSH1 0x00 00000c00: DUP8 00000c01: DUP1 00000c02: EXTCODESIZE 00000c03: ISZERO 00000c04: DUP1 00000c05: ISZERO 00000c06: PUSH2 0x0c0e 00000c09: JUMPI 00000c0a: PUSH1 0x00 00000c0c: DUP1 00000c0d: REVERT 00000c0e: JUMPDEST 00000c0f: POP 00000c10: GAS 00000c11: CALL 00000c12: ISZERO 00000c13: DUP1 00000c14: ISZERO 00000c15: PUSH2 0x0c22 00000c18: JUMPI 00000c19: RETURNDATASIZE 00000c1a: PUSH1 0x00 00000c1c: DUP1 00000c1d: RETURNDATACOPY 00000c1e: RETURNDATASIZE 00000c1f: PUSH1 0x00 00000c21: REVERT 00000c22: JUMPDEST 00000c23: POP 00000c24: POP 00000c25: POP 00000c26: POP 00000c27: JUMPDEST 00000c28: PUSH2 0x0c31 00000c2b: DUP7 00000c2c: DUP7 00000c2d: PUSH2 0x2fdc 00000c30: JUMP 00000c31: JUMPDEST 00000c32: PUSH2 0x0ac6 00000c35: PUSH1 0x01 00000c37: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00 00000c58: SSTORE 00000c59: JUMP 00000c5a: JUMPDEST 00000c5b: PUSH1 0x96 00000c5d: SLOAD 00000c5e: PUSH1 0x00 00000c60: SWAP1 00000c61: PUSH1 0x03 00000c63: SWAP1 00000c64: PUSH2 0x0c6e 00000c67: SWAP1 00000c68: PUSH1 0x02 00000c6a: PUSH2 0x4c44 00000c6d: JUMP 00000c6e: JUMPDEST 00000c6f: PUSH2 0x0c78 00000c72: SWAP2 00000c73: SWAP1 00000c74: PUSH2 0x4c8a 00000c77: JUMP 00000c78: JUMPDEST 00000c79: PUSH2 0x0c83 00000c7c: SWAP1 00000c7d: PUSH1 0x01 00000c7f: PUSH2 0x4c9e 00000c82: JUMP 00000c83: JUMPDEST 00000c84: SWAP1 00000c85: POP 00000c86: SWAP1 00000c87: JUMP 00000c88: JUMPDEST 00000c89: PUSH2 0x0c90 00000c8c: PUSH2 0x2c01 00000c8f: JUMP 00000c90: JUMPDEST 00000c91: PUSH2 0x2710 00000c94: DUP2 00000c95: GT 00000c96: ISZERO 00000c97: PUSH2 0x0ccf 00000c9a: JUMPI 00000c9b: PUSH1 0x40 00000c9d: MLOAD 00000c9e: PUSH32 0xfef6049900000000000000000000000000000000000000000000000000000000 00000cbf: DUP2 00000cc0: MSTORE 00000cc1: PUSH1 0x04 00000cc3: DUP2 00000cc4: ADD 00000cc5: DUP3 00000cc6: SWAP1 00000cc7: MSTORE 00000cc8: PUSH1 0x24 00000cca: ADD 00000ccb: PUSH2 0x0907 00000cce: JUMP 00000ccf: JUMPDEST 00000cd0: PUSH1 0x9b 00000cd2: DUP1 00000cd3: SLOAD 00000cd4: SWAP1 00000cd5: DUP3 00000cd6: SWAP1 00000cd7: SSTORE 00000cd8: PUSH1 0x40 00000cda: DUP1 00000cdb: MLOAD 00000cdc: DUP3 00000cdd: DUP2 00000cde: MSTORE 00000cdf: PUSH1 0x20 00000ce1: DUP2 00000ce2: ADD 00000ce3: DUP5 00000ce4: SWAP1 00000ce5: MSTORE 00000ce6: PUSH32 0x72aa1ef4707dfa7defd1468e6ffc70bf9517ce19e3afad93fcf4be42f2d494f5 00000d07: SWAP2 00000d08: ADD 00000d09: JUMPDEST 00000d0a: PUSH1 0x40 00000d0c: MLOAD 00000d0d: DUP1 00000d0e: SWAP2 00000d0f: SUB 00000d10: SWAP1 00000d11: LOG1 00000d12: POP 00000d13: POP 00000d14: JUMP 00000d15: JUMPDEST 00000d16: PUSH2 0x0d1d 00000d19: PUSH2 0x2c01 00000d1c: JUMP 00000d1d: JUMPDEST 00000d1e: PUSH1 0x01 00000d20: PUSH1 0x01 00000d22: PUSH1 0xa0 00000d24: SHL 00000d25: SUB 00000d26: DUP3 00000d27: AND 00000d28: PUSH2 0x0d5d 00000d2b: JUMPI 00000d2c: PUSH1 0x40 00000d2e: MLOAD 00000d2f: PUSH32 0x09efa31000000000000000000000000000000000000000000000000000000000 00000d50: DUP2 00000d51: MSTORE 00000d52: PUSH1 0x04 00000d54: ADD 00000d55: PUSH1 0x40 00000d57: MLOAD 00000d58: DUP1 00000d59: SWAP2 00000d5a: SUB 00000d5b: SWAP1 00000d5c: REVERT 00000d5d: JUMPDEST 00000d5e: PUSH1 0x01 00000d60: PUSH1 0x01 00000d62: PUSH1 0xa0 00000d64: SHL 00000d65: SUB 00000d66: DUP3 00000d67: AND 00000d68: PUSH1 0x00 00000d6a: DUP2 00000d6b: DUP2 00000d6c: MSTORE 00000d6d: PUSH1 0xa0 00000d6f: PUSH1 0x20 00000d71: SWAP1 00000d72: DUP2 00000d73: MSTORE 00000d74: PUSH1 0x40 00000d76: SWAP2 00000d77: DUP3 00000d78: SWAP1 00000d79: KECCAK256 00000d7a: DUP1 00000d7b: SLOAD 00000d7c: SWAP1 00000d7d: DUP6 00000d7e: SWAP1 00000d7f: SSTORE 00000d80: DUP3 00000d81: MLOAD 00000d82: DUP2 00000d83: DUP2 00000d84: MSTORE 00000d85: SWAP2 00000d86: DUP3 00000d87: ADD 00000d88: DUP6 00000d89: SWAP1 00000d8a: MSTORE 00000d8b: SWAP3 00000d8c: SWAP2 00000d8d: PUSH32 0x7cf495d0721b90f9bc8526386d68044b3089d9bb4f7da168c43b6ef149d01f44 00000dae: SWAP2 00000daf: ADD 00000db0: PUSH1 0x40 00000db2: MLOAD 00000db3: DUP1 00000db4: SWAP2 00000db5: SUB 00000db6: SWAP1 00000db7: LOG2 00000db8: POP 00000db9: POP 00000dba: POP 00000dbb: JUMP 00000dbc: JUMPDEST 00000dbd: PUSH2 0x0dc4 00000dc0: PUSH2 0x2c01 00000dc3: JUMP 00000dc4: JUMPDEST 00000dc5: PUSH1 0x9f 00000dc7: SLOAD 00000dc8: PUSH1 0xff 00000dca: AND 00000dcb: ISZERO 00000dcc: PUSH2 0x0e01 00000dcf: JUMPI 00000dd0: PUSH1 0x40 00000dd2: MLOAD 00000dd3: PUSH32 0x4650e20200000000000000000000000000000000000000000000000000000000 00000df4: DUP2 00000df5: MSTORE 00000df6: PUSH1 0x04 00000df8: ADD 00000df9: PUSH1 0x40 00000dfb: MLOAD 00000dfc: DUP1 00000dfd: SWAP2 00000dfe: SUB 00000dff: SWAP1 00000e00: REVERT 00000e01: JUMPDEST 00000e02: PUSH1 0x40 00000e04: MLOAD 00000e05: PUSH32 0x5fdb6462f7e6c03fd91563abe4f995cd30b93a004808b757898a267f34770058 00000e26: SWAP1 00000e27: PUSH1 0x00 00000e29: SWAP1 00000e2a: LOG1 00000e2b: PUSH1 0x9f 00000e2d: DUP1 00000e2e: SLOAD 00000e2f: PUSH1 0xff 00000e31: NOT 00000e32: AND 00000e33: PUSH1 0x01 00000e35: OR 00000e36: SWAP1 00000e37: SSTORE 00000e38: JUMP 00000e39: JUMPDEST 00000e3a: PUSH2 0x0e41 00000e3d: PUSH2 0x2f5b 00000e40: JUMP 00000e41: JUMPDEST 00000e42: PUSH1 0x01 00000e44: PUSH1 0x01 00000e46: PUSH1 0xa0 00000e48: SHL 00000e49: SUB 00000e4a: DUP4 00000e4b: AND 00000e4c: PUSH1 0x00 00000e4e: SWAP1 00000e4f: DUP2 00000e50: MSTORE 00000e51: PUSH1 0x64 00000e53: PUSH1 0x20 00000e55: MSTORE 00000e56: PUSH1 0x40 00000e58: DUP2 00000e59: KECCAK256 00000e5a: SLOAD 00000e5b: SWAP1 00000e5c: DUP2 00000e5d: SWAP1 00000e5e: SUB 00000e5f: PUSH2 0x0e94 00000e62: JUMPI 00000e63: PUSH1 0x40 00000e65: MLOAD 00000e66: PUSH32 0x881b8d7c00000000000000000000000000000000000000000000000000000000 00000e87: DUP2 00000e88: MSTORE 00000e89: PUSH1 0x04 00000e8b: ADD 00000e8c: PUSH1 0x40 00000e8e: MLOAD 00000e8f: DUP1 00000e90: SWAP2 00000e91: SUB 00000e92: SWAP1 00000e93: REVERT 00000e94: JUMPDEST 00000e95: PUSH1 0x01 00000e97: PUSH1 0x01 00000e99: PUSH1 0xa0 00000e9b: SHL 00000e9c: SUB 00000e9d: DUP3 00000e9e: AND 00000e9f: PUSH2 0x0ed4 00000ea2: JUMPI 00000ea3: PUSH1 0x40 00000ea5: MLOAD 00000ea6: PUSH32 0x478b9dda00000000000000000000000000000000000000000000000000000000 00000ec7: DUP2 00000ec8: MSTORE 00000ec9: PUSH1 0x04 00000ecb: ADD 00000ecc: PUSH1 0x40 00000ece: MLOAD 00000ecf: DUP1 00000ed0: SWAP2 00000ed1: SUB 00000ed2: SWAP1 00000ed3: REVERT 00000ed4: JUMPDEST 00000ed5: DUP1 00000ed6: DUP4 00000ed7: LT 00000ed8: ISZERO 00000ed9: PUSH2 0x0f0e 00000edc: JUMPI 00000edd: PUSH1 0x40 00000edf: MLOAD 00000ee0: PUSH32 0x542f23f600000000000000000000000000000000000000000000000000000000 00000f01: DUP2 00000f02: MSTORE 00000f03: PUSH1 0x04 00000f05: ADD 00000f06: PUSH1 0x40 00000f08: MLOAD 00000f09: DUP1 00000f0a: SWAP2 00000f0b: SUB 00000f0c: SWAP1 00000f0d: REVERT 00000f0e: JUMPDEST 00000f0f: PUSH2 0x0f19 00000f12: DUP3 00000f13: DUP6 00000f14: DUP6 00000f15: PUSH2 0x2ecc 00000f18: JUMP 00000f19: JUMPDEST 00000f1a: PUSH2 0x0f2e 00000f1d: PUSH1 0x01 00000f1f: PUSH1 0x01 00000f21: PUSH1 0xa0 00000f23: SHL 00000f24: SUB 00000f25: DUP6 00000f26: AND 00000f27: CALLER 00000f28: ADDRESS 00000f29: DUP7 00000f2a: PUSH2 0x30aa 00000f2d: JUMP 00000f2e: JUMPDEST 00000f2f: POP 00000f30: PUSH2 0x0f58 00000f33: PUSH1 0x01 00000f35: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00 00000f56: SSTORE 00000f57: JUMP 00000f58: JUMPDEST 00000f59: POP 00000f5a: POP 00000f5b: POP 00000f5c: JUMP 00000f5d: JUMPDEST 00000f5e: PUSH2 0x0f65 00000f61: PUSH2 0x2c01 00000f64: JUMP 00000f65: JUMPDEST 00000f66: DUP1 00000f67: PUSH1 0x00 00000f69: SUB 00000f6a: PUSH2 0x0f9f 00000f6d: JUMPI 00000f6e: PUSH1 0x40 00000f70: MLOAD 00000f71: PUSH32 0x4b81b6b900000000000000000000000000000000000000000000000000000000 00000f92: DUP2 00000f93: MSTORE 00000f94: PUSH1 0x04 00000f96: ADD 00000f97: PUSH1 0x40 00000f99: MLOAD 00000f9a: DUP1 00000f9b: SWAP2 00000f9c: SUB 00000f9d: SWAP1 00000f9e: REVERT 00000f9f: JUMPDEST 00000fa0: PUSH1 0x33 00000fa2: DUP2 00000fa3: SWAP1 00000fa4: SSTORE 00000fa5: PUSH1 0x40 00000fa7: MLOAD 00000fa8: DUP2 00000fa9: DUP2 00000faa: MSTORE 00000fab: PUSH32 0xe64dbc80c2152cea46e3b80ba80f3e8c125114dc79194e9c947b480cfc80e59c 00000fcc: SWAP1 00000fcd: PUSH1 0x20 00000fcf: ADD 00000fd0: PUSH1 0x40 00000fd2: MLOAD 00000fd3: DUP1 00000fd4: SWAP2 00000fd5: SUB 00000fd6: SWAP1 00000fd7: LOG1 00000fd8: POP 00000fd9: JUMP 00000fda: JUMPDEST 00000fdb: PUSH2 0x0fe2 00000fde: PUSH2 0x2c01 00000fe1: JUMP 00000fe2: JUMPDEST 00000fe3: PUSH1 0x01 00000fe5: PUSH1 0x01 00000fe7: PUSH1 0xa0 00000fe9: SHL 00000fea: SUB 00000feb: DUP3 00000fec: AND 00000fed: PUSH2 0x1022 00000ff0: JUMPI 00000ff1: PUSH1 0x40 00000ff3: MLOAD 00000ff4: PUSH32 0x09efa31000000000000000000000000000000000000000000000000000000000 00001015: DUP2 00001016: MSTORE 00001017: PUSH1 0x04 00001019: ADD 0000101a: PUSH1 0x40 0000101c: MLOAD 0000101d: DUP1 0000101e: SWAP2 0000101f: SUB 00001020: SWAP1 00001021: REVERT 00001022: JUMPDEST 00001023: DUP1 00001024: PUSH1 0x00 00001026: SUB 00001027: PUSH2 0x105c 0000102a: JUMPI 0000102b: PUSH1 0x40 0000102d: MLOAD 0000102e: PUSH32 0x47fba16a00000000000000000000000000000000000000000000000000000000 0000104f: DUP2 00001050: MSTORE 00001051: PUSH1 0x04 00001053: ADD 00001054: PUSH1 0x40 00001056: MLOAD 00001057: DUP1 00001058: SWAP2 00001059: SUB 0000105a: SWAP1 0000105b: REVERT 0000105c: JUMPDEST 0000105d: PUSH1 0x01 0000105f: PUSH1 0x01 00001061: PUSH1 0xa0 00001063: SHL 00001064: SUB 00001065: DUP3 00001066: AND 00001067: PUSH1 0x00 00001069: SWAP1 0000106a: DUP2 0000106b: MSTORE 0000106c: PUSH1 0x64 0000106e: PUSH1 0x20 00001070: MSTORE 00001071: PUSH1 0x40 00001073: SWAP1 00001074: KECCAK256 00001075: SLOAD 00001076: ISZERO 00001077: PUSH2 0x10ac 0000107a: JUMPI 0000107b: PUSH1 0x40 0000107d: MLOAD 0000107e: PUSH32 0x98f1758300000000000000000000000000000000000000000000000000000000 0000109f: DUP2 000010a0: MSTORE 000010a1: PUSH1 0x04 000010a3: ADD 000010a4: PUSH1 0x40 000010a6: MLOAD 000010a7: DUP1 000010a8: SWAP2 000010a9: SUB 000010aa: SWAP1 000010ab: REVERT 000010ac: JUMPDEST 000010ad: PUSH1 0x14 000010af: PUSH1 0x63 000010b1: SLOAD 000010b2: LT 000010b3: PUSH2 0x10e8 000010b6: JUMPI 000010b7: PUSH1 0x40 000010b9: MLOAD 000010ba: PUSH32 0x17dfdea400000000000000000000000000000000000000000000000000000000 000010db: DUP2 000010dc: MSTORE 000010dd: PUSH1 0x04 000010df: ADD 000010e0: PUSH1 0x40 000010e2: MLOAD 000010e3: DUP1 000010e4: SWAP2 000010e5: SUB 000010e6: SWAP1 000010e7: REVERT 000010e8: JUMPDEST 000010e9: PUSH1 0x63 000010eb: DUP1 000010ec: SLOAD 000010ed: SWAP1 000010ee: PUSH1 0x00 000010f0: PUSH2 0x10f8 000010f3: DUP4 000010f4: PUSH2 0x4cb1 000010f7: JUMP 000010f8: JUMPDEST 000010f9: SWAP1 000010fa: SWAP2 000010fb: SSTORE 000010fc: POP 000010fd: POP 000010fe: PUSH1 0x01 00001100: PUSH1 0x01 00001102: PUSH1 0xa0 00001104: SHL 00001105: SUB 00001106: DUP3 00001107: AND 00001108: PUSH1 0x00 0000110a: DUP2 0000110b: DUP2 0000110c: MSTORE 0000110d: PUSH1 0x64 0000110f: PUSH1 0x20 00001111: MSTORE 00001112: PUSH1 0x40 00001114: SWAP1 00001115: DUP2 00001116: SWAP1 00001117: KECCAK256 00001118: DUP4 00001119: SWAP1 0000111a: SSTORE 0000111b: MLOAD 0000111c: PUSH32 0xf17d094161c4f2776fc9caa30094c8ebe1b86cd6f2108db5d9f1d46d8f85494c 0000113d: SWAP1 0000113e: PUSH2 0x114a 00001141: SWAP1 00001142: DUP5 00001143: DUP2 00001144: MSTORE 00001145: PUSH1 0x20 00001147: ADD 00001148: SWAP1 00001149: JUMP 0000114a: JUMPDEST 0000114b: PUSH1 0x40 0000114d: MLOAD 0000114e: DUP1 0000114f: SWAP2 00001150: SUB 00001151: SWAP1 00001152: LOG2 00001153: POP 00001154: POP 00001155: JUMP 00001156: JUMPDEST 00001157: PUSH1 0x01 00001159: PUSH1 0x01 0000115b: PUSH1 0xa0 0000115d: SHL 0000115e: SUB 0000115f: DUP2 00001160: AND 00001161: PUSH2 0x1196 00001164: JUMPI 00001165: PUSH1 0x40 00001167: MLOAD 00001168: PUSH32 0xb9c50bfb00000000000000000000000000000000000000000000000000000000 00001189: DUP2 0000118a: MSTORE 0000118b: PUSH1 0x04 0000118d: ADD 0000118e: PUSH1 0x40 00001190: MLOAD 00001191: DUP1 00001192: SWAP2 00001193: SUB 00001194: SWAP1 00001195: REVERT 00001196: JUMPDEST 00001197: PUSH1 0x40 00001199: DUP1 0000119a: MLOAD 0000119b: PUSH1 0x01 0000119d: PUSH1 0x01 0000119f: PUSH1 0xa0 000011a1: SHL 000011a2: SUB 000011a3: DUP4 000011a4: AND 000011a5: PUSH1 0x20 000011a7: DUP3 000011a8: ADD 000011a9: MSTORE 000011aa: PUSH1 0x00 000011ac: SWAP2 000011ad: PUSH2 0x11d0 000011b0: SWAP2 000011b1: DUP7 000011b2: SWAP2 000011b3: DUP7 000011b4: SWAP2 000011b5: ADD 000011b6: PUSH1 0x40 000011b8: MLOAD 000011b9: PUSH1 0x20 000011bb: DUP2 000011bc: DUP4 000011bd: SUB 000011be: SUB 000011bf: DUP2 000011c0: MSTORE 000011c1: SWAP1 000011c2: PUSH1 0x40 000011c4: MSTORE 000011c5: DUP1 000011c6: MLOAD 000011c7: SWAP1 000011c8: PUSH1 0x20 000011ca: ADD 000011cb: KECCAK256 000011cc: PUSH2 0x312c 000011cf: JUMP 000011d0: JUMPDEST 000011d1: POP 000011d2: SWAP1 000011d3: POP 000011d4: PUSH1 0x00 000011d6: DUP1 000011d7: DUP3 000011d8: DUP2 000011d9: MSTORE 000011da: PUSH1 0x32 000011dc: PUSH1 0x20 000011de: MSTORE 000011df: PUSH1 0x40 000011e1: SWAP1 000011e2: KECCAK256 000011e3: SLOAD 000011e4: PUSH1 0xff 000011e6: AND 000011e7: PUSH1 0x02 000011e9: DUP2 000011ea: GT 000011eb: ISZERO 000011ec: PUSH2 0x11f7 000011ef: JUMPI 000011f0: PUSH2 0x11f7 000011f3: PUSH2 0x4a24 000011f6: JUMP 000011f7: JUMPDEST 000011f8: EQ 000011f9: PUSH2 0x1244 000011fc: JUMPI 000011fd: PUSH1 0x00 000011ff: DUP2 00001200: DUP2 00001201: MSTORE 00001202: PUSH1 0x32 00001204: PUSH1 0x20 00001206: MSTORE 00001207: PUSH1 0x40 00001209: DUP1 0000120a: DUP3 0000120b: KECCAK256 0000120c: SLOAD 0000120d: SWAP1 0000120e: MLOAD 0000120f: PUSH32 0xed33029f00000000000000000000000000000000000000000000000000000000 00001230: DUP2 00001231: MSTORE 00001232: PUSH2 0x0907 00001235: SWAP3 00001236: PUSH1 0xff 00001238: SWAP1 00001239: SWAP3 0000123a: AND 0000123b: SWAP2 0000123c: SWAP1 0000123d: PUSH1 0x04 0000123f: ADD 00001240: PUSH2 0x4be1 00001243: JUMP 00001244: JUMPDEST 00001245: PUSH1 0x00 00001247: DUP2 00001248: DUP2 00001249: MSTORE 0000124a: PUSH1 0x32 0000124c: PUSH1 0x20 0000124e: MSTORE 0000124f: PUSH1 0x40 00001251: DUP1 00001252: DUP3 00001253: KECCAK256 00001254: DUP1 00001255: SLOAD 00001256: PUSH1 0xff 00001258: NOT 00001259: AND 0000125a: PUSH1 0x01 0000125c: OR 0000125d: SWAP1 0000125e: SSTORE 0000125f: MLOAD 00001260: PUSH1 0x01 00001262: PUSH1 0x01 00001264: PUSH1 0xa0 00001266: SHL 00001267: SUB 00001268: DUP5 00001269: AND 0000126a: SWAP2 0000126b: DUP4 0000126c: SWAP2 0000126d: PUSH32 0x2fbc945bad45e66509bad2bda7b97993796881f9ac2543b827d2aaf69f186923 0000128e: SWAP2 0000128f: SWAP1 00001290: LOG3 00001291: POP 00001292: POP 00001293: POP 00001294: POP 00001295: JUMP 00001296: JUMPDEST 00001297: PUSH2 0x129e 0000129a: PUSH2 0x2c01 0000129d: JUMP 0000129e: JUMPDEST 0000129f: PUSH2 0x12a8 000012a2: PUSH1 0x00 000012a4: PUSH2 0x330a 000012a7: JUMP 000012a8: JUMPDEST 000012a9: JUMP 000012aa: JUMPDEST 000012ab: PUSH2 0x12b2 000012ae: PUSH2 0x2c01 000012b1: JUMP 000012b2: JUMPDEST 000012b3: PUSH1 0x01 000012b5: PUSH1 0x01 000012b7: PUSH1 0xa0 000012b9: SHL 000012ba: SUB 000012bb: DUP2 000012bc: AND 000012bd: PUSH2 0x12f2 000012c0: JUMPI 000012c1: PUSH1 0x40 000012c3: MLOAD 000012c4: PUSH32 0xa824775d00000000000000000000000000000000000000000000000000000000 000012e5: DUP2 000012e6: MSTORE 000012e7: PUSH1 0x04 000012e9: ADD 000012ea: PUSH1 0x40 000012ec: MLOAD 000012ed: DUP1 000012ee: SWAP2 000012ef: SUB 000012f0: SWAP1 000012f1: REVERT 000012f2: JUMPDEST 000012f3: PUSH1 0x40 000012f5: MLOAD 000012f6: PUSH1 0x01 000012f8: PUSH1 0x01 000012fa: PUSH1 0xa0 000012fc: SHL 000012fd: SUB 000012fe: DUP3 000012ff: AND 00001300: DUP2 00001301: MSTORE 00001302: PUSH32 0xddd1da2f7284499afb480d8077281643c55f73d47bf490047baf68a57c1fa450 00001323: SWAP1 00001324: PUSH1 0x20 00001326: ADD 00001327: PUSH1 0x40 00001329: MLOAD 0000132a: DUP1 0000132b: SWAP2 0000132c: SUB 0000132d: SWAP1 0000132e: LOG1 0000132f: PUSH1 0x34 00001331: DUP1 00001332: SLOAD 00001333: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00001354: AND 00001355: PUSH1 0x01 00001357: PUSH1 0x01 00001359: PUSH1 0xa0 0000135b: SHL 0000135c: SUB 0000135d: SWAP3 0000135e: SWAP1 0000135f: SWAP3 00001360: AND 00001361: SWAP2 00001362: SWAP1 00001363: SWAP2 00001364: OR 00001365: SWAP1 00001366: SSTORE 00001367: JUMP 00001368: JUMPDEST 00001369: PUSH2 0x1370 0000136c: PUSH2 0x2c01 0000136f: JUMP 00001370: JUMPDEST 00001371: PUSH1 0x01 00001373: PUSH1 0x01 00001375: PUSH1 0xa0 00001377: SHL 00001378: SUB 00001379: DUP2 0000137a: AND 0000137b: PUSH1 0x00 0000137d: SWAP1 0000137e: DUP2 0000137f: MSTORE 00001380: PUSH1 0x64 00001382: PUSH1 0x20 00001384: MSTORE 00001385: PUSH1 0x40 00001387: DUP2 00001388: KECCAK256 00001389: SLOAD 0000138a: SWAP1 0000138b: SUB 0000138c: PUSH2 0x13c1 0000138f: JUMPI 00001390: PUSH1 0x40 00001392: MLOAD 00001393: PUSH32 0x881b8d7c00000000000000000000000000000000000000000000000000000000 000013b4: DUP2 000013b5: MSTORE 000013b6: PUSH1 0x04 000013b8: ADD 000013b9: PUSH1 0x40 000013bb: MLOAD 000013bc: DUP1 000013bd: SWAP2 000013be: SUB 000013bf: SWAP1 000013c0: REVERT 000013c1: JUMPDEST 000013c2: PUSH1 0x63 000013c4: DUP1 000013c5: SLOAD 000013c6: SWAP1 000013c7: PUSH1 0x00 000013c9: PUSH2 0x13d1 000013cc: DUP4 000013cd: PUSH2 0x4ce9 000013d0: JUMP 000013d1: JUMPDEST 000013d2: SWAP1 000013d3: SWAP2 000013d4: SSTORE 000013d5: POP 000013d6: POP 000013d7: PUSH1 0x01 000013d9: PUSH1 0x01 000013db: PUSH1 0xa0 000013dd: SHL 000013de: SUB 000013df: DUP2 000013e0: AND 000013e1: PUSH1 0x00 000013e3: DUP2 000013e4: DUP2 000013e5: MSTORE 000013e6: PUSH1 0x64 000013e8: PUSH1 0x20 000013ea: MSTORE 000013eb: PUSH1 0x40 000013ed: DUP1 000013ee: DUP3 000013ef: KECCAK256 000013f0: DUP3 000013f1: SWAP1 000013f2: SSTORE 000013f3: MLOAD 000013f4: PUSH32 0x9c4edffd5782d54d432f513a2a7d944aac6f743c7ef4a83d8c6189ba21dd4299 00001415: SWAP2 00001416: SWAP1 00001417: LOG2 00001418: POP 00001419: JUMP 0000141a: JUMPDEST 0000141b: PUSH2 0x1422 0000141e: PUSH2 0x2f5b 00001421: JUMP 00001422: JUMPDEST 00001423: PUSH1 0x40 00001425: DUP1 00001426: MLOAD 00001427: PUSH1 0x60 00001429: DUP2 0000142a: ADD 0000142b: DUP3 0000142c: MSTORE 0000142d: CALLER 0000142e: DUP2 0000142f: MSTORE 00001430: PUSH1 0x01 00001432: PUSH1 0x20 00001434: DUP3 00001435: ADD 00001436: MSTORE 00001437: PUSH1 0x00 00001439: SWAP2 0000143a: DUP2 0000143b: ADD 0000143c: DUP3 0000143d: SWAP1 0000143e: MSTORE 0000143f: SWAP1 00001440: GAS 00001441: SWAP1 00001442: POP 00001443: PUSH1 0x00 00001445: DUP6 00001446: PUSH1 0x40 00001448: MLOAD 00001449: PUSH1 0x20 0000144b: ADD 0000144c: PUSH2 0x1455 0000144f: SWAP2 00001450: SWAP1 00001451: PUSH2 0x4e1c 00001454: JUMP 00001455: JUMPDEST 00001456: PUSH1 0x40 00001458: DUP1 00001459: MLOAD 0000145a: PUSH1 0x1f 0000145c: NOT 0000145d: DUP2 0000145e: DUP5 0000145f: SUB 00001460: ADD 00001461: DUP2 00001462: MSTORE 00001463: SWAP2 00001464: DUP2 00001465: MSTORE 00001466: DUP2 00001467: MLOAD 00001468: PUSH1 0x20 0000146a: SWAP3 0000146b: DUP4 0000146c: ADD 0000146d: KECCAK256 0000146e: PUSH1 0x00 00001470: DUP2 00001471: DUP2 00001472: MSTORE 00001473: PUSH1 0x9a 00001475: SWAP1 00001476: SWAP4 00001477: MSTORE 00001478: SWAP2 00001479: KECCAK256 0000147a: SLOAD 0000147b: SWAP1 0000147c: SWAP2 0000147d: POP 0000147e: PUSH1 0xff 00001480: AND 00001481: PUSH2 0x14b9 00001484: JUMPI 00001485: PUSH1 0x40 00001487: MLOAD 00001488: PUSH32 0xe198d21d00000000000000000000000000000000000000000000000000000000 000014a9: DUP2 000014aa: MSTORE 000014ab: PUSH1 0x04 000014ad: DUP2 000014ae: ADD 000014af: DUP3 000014b0: SWAP1 000014b1: MSTORE 000014b2: PUSH1 0x24 000014b4: ADD 000014b5: PUSH2 0x0907 000014b8: JUMP 000014b9: JUMPDEST 000014ba: PUSH1 0x00 000014bc: DUP2 000014bd: DUP2 000014be: MSTORE 000014bf: PUSH1 0x9a 000014c1: PUSH1 0x20 000014c3: MSTORE 000014c4: PUSH1 0x40 000014c6: DUP1 000014c7: DUP3 000014c8: KECCAK256 000014c9: DUP1 000014ca: SLOAD 000014cb: PUSH1 0xff 000014cd: NOT 000014ce: AND 000014cf: SWAP1 000014d0: SSTORE 000014d1: PUSH2 0x1530 000014d4: SWAP1 000014d5: PUSH2 0x14e4 000014d8: SWAP1 000014d9: PUSH1 0x60 000014db: DUP11 000014dc: ADD 000014dd: SWAP1 000014de: DUP11 000014df: ADD 000014e0: PUSH2 0x4567 000014e3: JUMP 000014e4: JUMPDEST 000014e5: PUSH1 0x60 000014e7: DUP10 000014e8: ADD 000014e9: CALLDATALOAD 000014ea: PUSH2 0x14f6 000014ed: PUSH1 0x20 000014ef: DUP12 000014f0: ADD 000014f1: DUP12 000014f2: PUSH2 0x4e2f 000014f5: JUMP 000014f6: JUMPDEST 000014f7: DUP1 000014f8: DUP1 000014f9: PUSH1 0x1f 000014fb: ADD 000014fc: PUSH1 0x20 000014fe: DUP1 000014ff: SWAP2 00001500: DIV 00001501: MUL 00001502: PUSH1 0x20 00001504: ADD 00001505: PUSH1 0x40 00001507: MLOAD 00001508: SWAP1 00001509: DUP2 0000150a: ADD 0000150b: PUSH1 0x40 0000150d: MSTORE 0000150e: DUP1 0000150f: SWAP4 00001510: SWAP3 00001511: SWAP2 00001512: SWAP1 00001513: DUP2 00001514: DUP2 00001515: MSTORE 00001516: PUSH1 0x20 00001518: ADD 00001519: DUP4 0000151a: DUP4 0000151b: DUP1 0000151c: DUP3 0000151d: DUP5 0000151e: CALLDATACOPY 0000151f: PUSH1 0x00 00001521: SWAP3 00001522: ADD 00001523: SWAP2 00001524: SWAP1 00001525: SWAP2 00001526: MSTORE 00001527: POP 00001528: PUSH2 0x335a 0000152b: SWAP3 0000152c: POP 0000152d: POP 0000152e: POP 0000152f: JUMP 00001530: JUMPDEST 00001531: SWAP1 00001532: POP 00001533: PUSH2 0x154a 00001536: DUP7 00001537: DUP7 00001538: PUSH2 0x1544 0000153b: PUSH1 0x20 0000153d: DUP12 0000153e: ADD 0000153f: DUP12 00001540: PUSH2 0x4e2f 00001543: JUMP 00001544: JUMPDEST 00001545: DUP6 00001546: PUSH2 0x34b1 00001549: JUMP 0000154a: JUMPDEST 0000154b: POP 0000154c: POP 0000154d: PUSH1 0x9d 0000154f: SLOAD 00001550: PUSH1 0x01 00001552: PUSH1 0x01 00001554: PUSH1 0xa0 00001556: SHL 00001557: SUB 00001558: AND 00001559: DUP1 0000155a: PUSH2 0x1564 0000155d: JUMPI 0000155e: POP 0000155f: POP 00001560: PUSH2 0x0f2e 00001563: JUMP 00001564: JUMPDEST 00001565: DUP3 00001566: PUSH1 0x20 00001568: ADD 00001569: MLOAD 0000156a: DUP1 0000156b: ISZERO 0000156c: PUSH2 0x158f 0000156f: JUMPI 00001570: POP 00001571: DUP3 00001572: MLOAD 00001573: PUSH1 0x01 00001575: PUSH1 0x01 00001577: PUSH1 0xa0 00001579: SHL 0000157a: SUB 0000157b: AND 0000157c: PUSH1 0x00 0000157e: SWAP1 0000157f: DUP2 00001580: MSTORE 00001581: PUSH1 0x9e 00001583: PUSH1 0x20 00001585: MSTORE 00001586: PUSH1 0x40 00001588: SWAP1 00001589: KECCAK256 0000158a: SLOAD 0000158b: PUSH1 0xff 0000158d: AND 0000158e: ISZERO 0000158f: JUMPDEST 00001590: ISZERO 00001591: PUSH2 0x159b 00001594: JUMPI 00001595: POP 00001596: POP 00001597: PUSH2 0x0f2e 0000159a: JUMP 0000159b: JUMPDEST 0000159c: DUP1 0000159d: PUSH1 0x01 0000159f: PUSH1 0x01 000015a1: PUSH1 0xa0 000015a3: SHL 000015a4: SUB 000015a5: AND 000015a6: PUSH4 0x7ad226dc 000015ab: DUP5 000015ac: PUSH1 0x40 000015ae: ADD 000015af: MLOAD 000015b0: GAS 000015b1: PUSH2 0x15ba 000015b4: SWAP1 000015b5: DUP7 000015b6: PUSH2 0x4e94 000015b9: JUMP 000015ba: JUMPDEST 000015bb: PUSH2 0x15c4 000015be: SWAP2 000015bf: SWAP1 000015c0: PUSH2 0x4c9e 000015c3: JUMP 000015c4: JUMPDEST 000015c5: DUP6 000015c6: MLOAD 000015c7: PUSH1 0x40 000015c9: MLOAD 000015ca: PUSH1 0xe0 000015cc: DUP5 000015cd: SWAP1 000015ce: SHL 000015cf: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000015f0: AND 000015f1: DUP2 000015f2: MSTORE 000015f3: PUSH1 0x04 000015f5: DUP2 000015f6: ADD 000015f7: SWAP3 000015f8: SWAP1 000015f9: SWAP3 000015fa: MSTORE 000015fb: PUSH1 0x01 000015fd: PUSH1 0x01 000015ff: PUSH1 0xa0 00001601: SHL 00001602: SUB 00001603: AND 00001604: PUSH1 0x24 00001606: DUP3 00001607: ADD 00001608: MSTORE 00001609: PUSH1 0x44 0000160b: ADD 0000160c: PUSH1 0x00 0000160e: PUSH1 0x40 00001610: MLOAD 00001611: DUP1 00001612: DUP4 00001613: SUB 00001614: DUP2 00001615: PUSH1 0x00 00001617: DUP8 00001618: DUP1 00001619: EXTCODESIZE 0000161a: ISZERO 0000161b: DUP1 0000161c: ISZERO 0000161d: PUSH2 0x1625 00001620: JUMPI 00001621: PUSH1 0x00 00001623: DUP1 00001624: REVERT 00001625: JUMPDEST 00001626: POP 00001627: GAS 00001628: CALL 00001629: ISZERO 0000162a: DUP1 0000162b: ISZERO 0000162c: PUSH2 0x1639 0000162f: JUMPI 00001630: RETURNDATASIZE 00001631: PUSH1 0x00 00001633: DUP1 00001634: RETURNDATACOPY 00001635: RETURNDATASIZE 00001636: PUSH1 0x00 00001638: REVERT 00001639: JUMPDEST 0000163a: POP 0000163b: POP 0000163c: POP 0000163d: POP 0000163e: POP 0000163f: POP 00001640: POP 00001641: PUSH2 0x0f58 00001644: PUSH1 0x01 00001646: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00 00001667: SSTORE 00001668: JUMP 00001669: JUMPDEST 0000166a: CALLER 0000166b: DUP1 0000166c: PUSH2 0x1673 0000166f: PUSH2 0x2acd 00001672: JUMP 00001673: JUMPDEST 00001674: PUSH1 0x01 00001676: PUSH1 0x01 00001678: PUSH1 0xa0 0000167a: SHL 0000167b: SUB 0000167c: AND 0000167d: EQ 0000167e: PUSH2 0x16be 00001681: JUMPI 00001682: PUSH1 0x40 00001684: MLOAD 00001685: PUSH32 0x118cdaa700000000000000000000000000000000000000000000000000000000 000016a6: DUP2 000016a7: MSTORE 000016a8: PUSH1 0x01 000016aa: PUSH1 0x01 000016ac: PUSH1 0xa0 000016ae: SHL 000016af: SUB 000016b0: DUP3 000016b1: AND 000016b2: PUSH1 0x04 000016b4: DUP3 000016b5: ADD 000016b6: MSTORE 000016b7: PUSH1 0x24 000016b9: ADD 000016ba: PUSH2 0x0907 000016bd: JUMP 000016be: JUMPDEST 000016bf: PUSH2 0x16c7 000016c2: DUP2 000016c3: PUSH2 0x330a 000016c6: JUMP 000016c7: JUMPDEST 000016c8: POP 000016c9: JUMP 000016ca: JUMPDEST 000016cb: PUSH2 0x16d2 000016ce: PUSH2 0x2c01 000016d1: JUMP 000016d2: JUMPDEST 000016d3: PUSH1 0x9d 000016d5: DUP1 000016d6: SLOAD 000016d7: PUSH1 0x01 000016d9: PUSH1 0x01 000016db: PUSH1 0xa0 000016dd: SHL 000016de: SUB 000016df: DUP4 000016e0: DUP2 000016e1: AND 000016e2: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00001703: DUP4 00001704: AND 00001705: DUP2 00001706: OR 00001707: SWAP1 00001708: SWAP4 00001709: SSTORE 0000170a: PUSH1 0x40 0000170c: MLOAD 0000170d: SWAP2 0000170e: AND 0000170f: SWAP2 00001710: SWAP1 00001711: DUP3 00001712: SWAP1 00001713: PUSH32 0x5bbcb3a116ba7a2cf2d8993632f77a782fb70b51720910c297a0e1261a4183a9 00001734: SWAP1 00001735: PUSH1 0x00 00001737: SWAP1 00001738: LOG3 00001739: POP 0000173a: POP 0000173b: JUMP 0000173c: JUMPDEST 0000173d: DUP1 0000173e: MLOAD 0000173f: PUSH1 0x00 00001741: SWAP1 00001742: DUP2 00001743: SUB 00001744: PUSH2 0x177f 00001747: JUMPI 00001748: DUP2 00001749: MLOAD 0000174a: PUSH1 0x40 0000174c: MLOAD 0000174d: PUSH32 0xcd5bd47300000000000000000000000000000000000000000000000000000000 0000176e: DUP2 0000176f: MSTORE 00001770: PUSH1 0x04 00001772: DUP2 00001773: ADD 00001774: SWAP2 00001775: SWAP1 00001776: SWAP2 00001777: MSTORE 00001778: PUSH1 0x24 0000177a: ADD 0000177b: PUSH2 0x0907 0000177e: JUMP 0000177f: JUMPDEST 00001780: DUP2 00001781: PUSH1 0x60 00001783: ADD 00001784: MLOAD 00001785: PUSH1 0x00 00001787: SUB 00001788: PUSH2 0x17c5 0000178b: JUMPI 0000178c: DUP2 0000178d: PUSH1 0x60 0000178f: ADD 00001790: MLOAD 00001791: PUSH1 0x40 00001793: MLOAD 00001794: PUSH32 0x3728b83d00000000000000000000000000000000000000000000000000000000 000017b5: DUP2 000017b6: MSTORE 000017b7: PUSH1 0x04 000017b9: ADD 000017ba: PUSH2 0x0907 000017bd: SWAP2 000017be: DUP2 000017bf: MSTORE 000017c0: PUSH1 0x20 000017c2: ADD 000017c3: SWAP1 000017c4: JUMP 000017c5: JUMPDEST 000017c6: PUSH1 0x31 000017c8: SLOAD 000017c9: PUSH1 0x80 000017cb: DUP4 000017cc: ADD 000017cd: MLOAD 000017ce: PUSH1 0x01 000017d0: PUSH1 0x01 000017d2: PUSH1 0xa0 000017d4: SHL 000017d5: SUB 000017d6: SWAP1 000017d7: SWAP2 000017d8: AND 000017d9: SWAP1 000017da: PUSH1 0xff 000017dc: AND 000017dd: PUSH2 0x1914 000017e0: JUMPI 000017e1: DUP3 000017e2: PUSH1 0x20 000017e4: ADD 000017e5: MLOAD 000017e6: MLOAD 000017e7: PUSH1 0x14 000017e9: EQ 000017ea: PUSH2 0x181f 000017ed: JUMPI 000017ee: PUSH1 0x40 000017f0: MLOAD 000017f1: PUSH32 0xb5ff4cea00000000000000000000000000000000000000000000000000000000 00001812: DUP2 00001813: MSTORE 00001814: PUSH1 0x04 00001816: ADD 00001817: PUSH1 0x40 00001819: MLOAD 0000181a: DUP1 0000181b: SWAP2 0000181c: SUB 0000181d: SWAP1 0000181e: REVERT 0000181f: JUMPDEST 00001820: PUSH1 0x20 00001822: DUP4 00001823: ADD 00001824: MLOAD 00001825: PUSH1 0x00 00001827: SWAP1 00001828: PUSH2 0x1830 0000182b: SWAP1 0000182c: PUSH2 0x4ea7 0000182f: JUMP 00001830: JUMPDEST 00001831: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00001852: AND 00001853: SUB 00001854: PUSH2 0x1889 00001857: JUMPI 00001858: PUSH1 0x40 0000185a: MLOAD 0000185b: PUSH32 0xfffaaa0500000000000000000000000000000000000000000000000000000000 0000187c: DUP2 0000187d: MSTORE 0000187e: PUSH1 0x04 00001880: ADD 00001881: PUSH1 0x40 00001883: MLOAD 00001884: DUP1 00001885: SWAP2 00001886: SUB 00001887: SWAP1 00001888: REVERT 00001889: JUMPDEST 0000188a: DUP1 0000188b: PUSH1 0x01 0000188d: PUSH1 0x01 0000188f: PUSH1 0xa0 00001891: SHL 00001892: SUB 00001893: AND 00001894: DUP4 00001895: PUSH1 0x40 00001897: ADD 00001898: MLOAD 00001899: PUSH1 0x01 0000189b: PUSH1 0x01 0000189d: PUSH1 0xa0 0000189f: SHL 000018a0: SUB 000018a1: AND 000018a2: EQ 000018a3: ISZERO 000018a4: DUP1 000018a5: ISZERO 000018a6: PUSH2 0x18c7 000018a9: JUMPI 000018aa: POP 000018ab: PUSH1 0x40 000018ad: DUP1 000018ae: DUP5 000018af: ADD 000018b0: MLOAD 000018b1: PUSH1 0x01 000018b3: PUSH1 0x01 000018b5: PUSH1 0xa0 000018b7: SHL 000018b8: SUB 000018b9: AND 000018ba: PUSH1 0x00 000018bc: SWAP1 000018bd: DUP2 000018be: MSTORE 000018bf: PUSH1 0x64 000018c1: PUSH1 0x20 000018c3: MSTORE 000018c4: KECCAK256 000018c5: SLOAD 000018c6: ISZERO 000018c7: JUMPDEST 000018c8: ISZERO 000018c9: PUSH2 0x190f 000018cc: JUMPI 000018cd: PUSH1 0x40 000018cf: DUP1 000018d0: DUP5 000018d1: ADD 000018d2: MLOAD 000018d3: SWAP1 000018d4: MLOAD 000018d5: PUSH32 0x961c9a4f00000000000000000000000000000000000000000000000000000000 000018f6: DUP2 000018f7: MSTORE 000018f8: PUSH1 0x01 000018fa: PUSH1 0x01 000018fc: PUSH1 0xa0 000018fe: SHL 000018ff: SUB 00001900: SWAP1 00001901: SWAP2 00001902: AND 00001903: PUSH1 0x04 00001905: DUP3 00001906: ADD 00001907: MSTORE 00001908: PUSH1 0x24 0000190a: ADD 0000190b: PUSH2 0x0907 0000190e: JUMP 0000190f: JUMPDEST 00001910: PUSH2 0x1a1b 00001913: JUMP 00001914: JUMPDEST 00001915: PUSH1 0x01 00001917: PUSH1 0xff 00001919: AND 0000191a: DUP4 0000191b: PUSH1 0x80 0000191d: ADD 0000191e: MLOAD 0000191f: PUSH1 0xff 00001921: AND 00001922: SUB 00001923: PUSH2 0x19de 00001926: JUMPI 00001927: PUSH1 0x20 00001929: DUP4 0000192a: ADD 0000192b: MLOAD 0000192c: DUP1 0000192d: MLOAD 0000192e: PUSH1 0x00 00001930: SWAP2 00001931: PUSH2 0x193b 00001934: SWAP2 00001935: DUP4 00001936: SWAP1 00001937: PUSH2 0x35c1 0000193a: JUMP 0000193b: JUMPDEST 0000193c: SWAP1 0000193d: POP 0000193e: DUP1 0000193f: MLOAD 00001940: PUSH1 0x00 00001942: SUB 00001943: PUSH2 0x1978 00001946: JUMPI 00001947: PUSH1 0x40 00001949: MLOAD 0000194a: PUSH32 0x8e4d13e100000000000000000000000000000000000000000000000000000000 0000196b: DUP2 0000196c: MSTORE 0000196d: PUSH1 0x04 0000196f: ADD 00001970: PUSH1 0x40 00001972: MLOAD 00001973: DUP1 00001974: SWAP2 00001975: SUB 00001976: SWAP1 00001977: REVERT 00001978: JUMPDEST 00001979: DUP2 0000197a: PUSH1 0x01 0000197c: PUSH1 0x01 0000197e: PUSH1 0xa0 00001980: SHL 00001981: SUB 00001982: AND 00001983: DUP5 00001984: PUSH1 0x40 00001986: ADD 00001987: MLOAD 00001988: PUSH1 0x01 0000198a: PUSH1 0x01 0000198c: PUSH1 0xa0 0000198e: SHL 0000198f: SUB 00001990: AND 00001991: EQ 00001992: PUSH2 0x19d8 00001995: JUMPI 00001996: PUSH1 0x40 00001998: DUP1 00001999: DUP6 0000199a: ADD 0000199b: MLOAD 0000199c: SWAP1 0000199d: MLOAD 0000199e: PUSH32 0x961c9a4f00000000000000000000000000000000000000000000000000000000 000019bf: DUP2 000019c0: MSTORE 000019c1: PUSH1 0x01 000019c3: PUSH1 0x01 000019c5: PUSH1 0xa0 000019c7: SHL 000019c8: SUB 000019c9: SWAP1 000019ca: SWAP2 000019cb: AND 000019cc: PUSH1 0x04 000019ce: DUP3 000019cf: ADD 000019d0: MSTORE 000019d1: PUSH1 0x24 000019d3: ADD 000019d4: PUSH2 0x0907 000019d7: JUMP 000019d8: JUMPDEST 000019d9: POP 000019da: PUSH2 0x1a1b 000019dd: JUMP 000019de: JUMPDEST 000019df: PUSH1 0x80 000019e1: DUP4 000019e2: ADD 000019e3: MLOAD 000019e4: PUSH1 0x40 000019e6: MLOAD 000019e7: PUSH32 0x4d1cb5b000000000000000000000000000000000000000000000000000000000 00001a08: DUP2 00001a09: MSTORE 00001a0a: PUSH1 0xff 00001a0c: SWAP1 00001a0d: SWAP2 00001a0e: AND 00001a0f: PUSH1 0x04 00001a11: DUP3 00001a12: ADD 00001a13: MSTORE 00001a14: PUSH1 0x24 00001a16: ADD 00001a17: PUSH2 0x0907 00001a1a: JUMP 00001a1b: JUMPDEST 00001a1c: DUP3 00001a1d: MLOAD 00001a1e: PUSH1 0x00 00001a20: SWAP1 00001a21: DUP2 00001a22: MSTORE 00001a23: PUSH1 0x99 00001a25: PUSH1 0x20 00001a27: MSTORE 00001a28: PUSH1 0x40 00001a2a: SWAP1 00001a2b: KECCAK256 00001a2c: SLOAD 00001a2d: PUSH1 0xff 00001a2f: AND 00001a30: ISZERO 00001a31: PUSH2 0x1a6c 00001a34: JUMPI 00001a35: DUP3 00001a36: MLOAD 00001a37: PUSH1 0x40 00001a39: MLOAD 00001a3a: PUSH32 0xae80077500000000000000000000000000000000000000000000000000000000 00001a5b: DUP2 00001a5c: MSTORE 00001a5d: PUSH1 0x04 00001a5f: DUP2 00001a60: ADD 00001a61: SWAP2 00001a62: SWAP1 00001a63: SWAP2 00001a64: MSTORE 00001a65: PUSH1 0x24 00001a67: ADD 00001a68: PUSH2 0x0907 00001a6b: JUMP 00001a6c: JUMPDEST 00001a6d: POP 00001a6e: PUSH1 0x01 00001a70: SWAP3 00001a71: SWAP2 00001a72: POP 00001a73: POP 00001a74: JUMP 00001a75: JUMPDEST 00001a76: PUSH2 0x1a7d 00001a79: PUSH2 0x2f5b 00001a7c: JUMP 00001a7d: JUMPDEST 00001a7e: PUSH1 0x40 00001a80: MLOAD 00001a81: DUP1 00001a82: PUSH1 0x60 00001a84: ADD 00001a85: PUSH1 0x40 00001a87: MSTORE 00001a88: DUP1 00001a89: CALLER 00001a8a: PUSH1 0x01 00001a8c: PUSH1 0x01 00001a8e: PUSH1 0xa0 00001a90: SHL 00001a91: SUB 00001a92: AND 00001a93: DUP2 00001a94: MSTORE 00001a95: PUSH1 0x20 00001a97: ADD 00001a98: PUSH1 0x00 00001a9a: ISZERO 00001a9b: ISZERO 00001a9c: DUP2 00001a9d: MSTORE 00001a9e: PUSH1 0x20 00001aa0: ADD 00001aa1: PUSH2 0x03e8 00001aa4: DUP2 00001aa5: MSTORE 00001aa6: POP 00001aa7: PUSH1 0x00 00001aa9: GAS 00001aaa: CALLER 00001aab: PUSH1 0x00 00001aad: SWAP1 00001aae: DUP2 00001aaf: MSTORE 00001ab0: PUSH1 0x97 00001ab2: PUSH1 0x20 00001ab4: MSTORE 00001ab5: PUSH1 0x40 00001ab7: DUP2 00001ab8: KECCAK256 00001ab9: SLOAD 00001aba: SWAP2 00001abb: SWAP3 00001abc: POP 00001abd: PUSH1 0xff 00001abf: SWAP1 00001ac0: SWAP2 00001ac1: AND 00001ac2: SWAP1 00001ac3: DUP2 00001ac4: SWAP1 00001ac5: SUB 00001ac6: PUSH2 0x1afd 00001ac9: JUMPI 00001aca: PUSH1 0x40 00001acc: MLOAD 00001acd: PUSH32 0x16254bd300000000000000000000000000000000000000000000000000000000 00001aee: DUP2 00001aef: MSTORE 00001af0: CALLER 00001af1: PUSH1 0x04 00001af3: DUP3 00001af4: ADD 00001af5: MSTORE 00001af6: PUSH1 0x24 00001af8: ADD 00001af9: PUSH2 0x0907 00001afc: JUMP 00001afd: JUMPDEST 00001afe: PUSH1 0x00 00001b00: DUP5 00001b01: PUSH1 0x40 00001b03: MLOAD 00001b04: PUSH1 0x20 00001b06: ADD 00001b07: PUSH2 0x1b10 00001b0a: SWAP2 00001b0b: SWAP1 00001b0c: PUSH2 0x4e1c 00001b0f: JUMP 00001b10: JUMPDEST 00001b11: PUSH1 0x40 00001b13: DUP1 00001b14: MLOAD 00001b15: PUSH1 0x1f 00001b17: NOT 00001b18: DUP2 00001b19: DUP5 00001b1a: SUB 00001b1b: ADD 00001b1c: DUP2 00001b1d: MSTORE 00001b1e: SWAP2 00001b1f: DUP2 00001b20: MSTORE 00001b21: DUP2 00001b22: MLOAD 00001b23: PUSH1 0x20 00001b25: SWAP3 00001b26: DUP4 00001b27: ADD 00001b28: KECCAK256 00001b29: PUSH1 0x00 00001b2b: DUP2 00001b2c: DUP2 00001b2d: MSTORE 00001b2e: PUSH1 0x98 00001b30: SWAP1 00001b31: SWAP4 00001b32: MSTORE 00001b33: SWAP2 00001b34: KECCAK256 00001b35: SLOAD 00001b36: SWAP1 00001b37: SWAP2 00001b38: POP 00001b39: DUP1 00001b3a: ISZERO 00001b3b: DUP1 00001b3c: ISZERO 00001b3d: PUSH2 0x1b48 00001b40: JUMPI 00001b41: POP 00001b42: PUSH1 0x9f 00001b44: SLOAD 00001b45: PUSH1 0xff 00001b47: AND 00001b48: JUMPDEST 00001b49: ISZERO 00001b4a: PUSH2 0x1b7f 00001b4d: JUMPI 00001b4e: PUSH1 0x40 00001b50: MLOAD 00001b51: PUSH32 0x4650e20200000000000000000000000000000000000000000000000000000000 00001b72: DUP2 00001b73: MSTORE 00001b74: PUSH1 0x04 00001b76: ADD 00001b77: PUSH1 0x40 00001b79: MLOAD 00001b7a: DUP1 00001b7b: SWAP2 00001b7c: SUB 00001b7d: SWAP1 00001b7e: REVERT 00001b7f: JUMPDEST 00001b80: PUSH1 0x01 00001b82: PUSH1 0xff 00001b84: DUP5 00001b85: AND 00001b86: SHL 00001b87: DUP2 00001b88: DUP2 00001b89: AND 00001b8a: ISZERO 00001b8b: PUSH2 0x1bc9 00001b8e: JUMPI 00001b8f: PUSH1 0x40 00001b91: MLOAD 00001b92: PUSH32 0xe970c16300000000000000000000000000000000000000000000000000000000 00001bb3: DUP2 00001bb4: MSTORE 00001bb5: CALLER 00001bb6: PUSH1 0x04 00001bb8: DUP3 00001bb9: ADD 00001bba: MSTORE 00001bbb: PUSH1 0x24 00001bbd: DUP2 00001bbe: ADD 00001bbf: DUP5 00001bc0: SWAP1 00001bc1: MSTORE 00001bc2: PUSH1 0x44 00001bc4: ADD 00001bc5: PUSH2 0x0907 00001bc8: JUMP 00001bc9: JUMPDEST 00001bca: PUSH1 0x00 00001bcc: DUP4 00001bcd: DUP2 00001bce: MSTORE 00001bcf: PUSH1 0x98 00001bd1: PUSH1 0x20 00001bd3: SWAP1 00001bd4: DUP2 00001bd5: MSTORE 00001bd6: PUSH1 0x40 00001bd8: SWAP1 00001bd9: SWAP2 00001bda: KECCAK256 00001bdb: DUP4 00001bdc: DUP4 00001bdd: OR 00001bde: SWAP1 00001bdf: DUP2 00001be0: SWAP1 00001be1: SSTORE 00001be2: SWAP1 00001be3: DUP9 00001be4: CALLDATALOAD 00001be5: SWAP1 00001be6: CALLER 00001be7: SWAP1 00001be8: PUSH32 0x67427a9ff7b7a8bc19eeb98172dd4c920e53f548a3854807bafd7de9c0814bb7 00001c09: SWAP1 00001c0a: PUSH2 0x1c15 00001c0d: SWAP1 00001c0e: DUP13 00001c0f: ADD 00001c10: DUP13 00001c11: PUSH2 0x4e2f 00001c14: JUMP 00001c15: JUMPDEST 00001c16: PUSH2 0x1c25 00001c19: PUSH1 0x60 00001c1b: DUP15 00001c1c: ADD 00001c1d: PUSH1 0x40 00001c1f: DUP16 00001c20: ADD 00001c21: PUSH2 0x4567 00001c24: JUMP 00001c25: JUMPDEST 00001c26: DUP14 00001c27: PUSH1 0x60 00001c29: ADD 00001c2a: CALLDATALOAD 00001c2b: DUP15 00001c2c: PUSH1 0x80 00001c2e: ADD 00001c2f: PUSH1 0x20 00001c31: DUP2 00001c32: ADD 00001c33: SWAP1 00001c34: PUSH2 0x1c3d 00001c37: SWAP2 00001c38: SWAP1 00001c39: PUSH2 0x4ef7 00001c3c: JUMP 00001c3d: JUMPDEST 00001c3e: PUSH1 0x40 00001c40: MLOAD 00001c41: PUSH2 0x1c4e 00001c44: SWAP6 00001c45: SWAP5 00001c46: SWAP4 00001c47: SWAP3 00001c48: SWAP2 00001c49: SWAP1 00001c4a: PUSH2 0x4f12 00001c4d: JUMP 00001c4e: JUMPDEST 00001c4f: PUSH1 0x40 00001c51: MLOAD 00001c52: DUP1 00001c53: SWAP2 00001c54: SUB 00001c55: SWAP1 00001c56: LOG3 00001c57: PUSH2 0x1c5e 00001c5a: PUSH2 0x0c5a 00001c5d: JUMP 00001c5e: JUMPDEST 00001c5f: PUSH2 0x1c67 00001c62: DUP3 00001c63: PUSH2 0x2f2c 00001c66: JUMP 00001c67: JUMPDEST 00001c68: PUSH1 0xff 00001c6a: AND 00001c6b: LT 00001c6c: ISZERO 00001c6d: PUSH2 0x1c7a 00001c70: JUMPI 00001c71: POP 00001c72: POP 00001c73: POP 00001c74: POP 00001c75: POP 00001c76: PUSH2 0x1d9c 00001c79: JUMP 00001c7a: JUMPDEST 00001c7b: PUSH2 0x1c86 00001c7e: PUSH2 0x05fa 00001c81: DUP10 00001c82: PUSH2 0x4f4f 00001c85: JUMP 00001c86: JUMPDEST 00001c87: POP 00001c88: PUSH2 0x1c97 00001c8b: PUSH1 0x60 00001c8d: DUP10 00001c8e: ADD 00001c8f: PUSH1 0x40 00001c91: DUP11 00001c92: ADD 00001c93: PUSH2 0x4567 00001c96: JUMP 00001c97: JUMPDEST 00001c98: PUSH1 0x01 00001c9a: PUSH1 0x01 00001c9c: PUSH1 0xa0 00001c9e: SHL 00001c9f: SUB 00001ca0: AND 00001ca1: PUSH2 0x1cad 00001ca4: PUSH1 0x20 00001ca6: DUP11 00001ca7: ADD 00001ca8: DUP11 00001ca9: PUSH2 0x4e2f 00001cac: JUMP 00001cad: JUMPDEST 00001cae: PUSH1 0x40 00001cb0: MLOAD 00001cb1: PUSH2 0x1cbb 00001cb4: SWAP3 00001cb5: SWAP2 00001cb6: SWAP1 00001cb7: PUSH2 0x4f5b 00001cba: JUMP 00001cbb: JUMPDEST 00001cbc: PUSH1 0x40 00001cbe: MLOAD 00001cbf: SWAP1 00001cc0: DUP2 00001cc1: SWAP1 00001cc2: SUB 00001cc3: SWAP1 00001cc4: KECCAK256 00001cc5: DUP10 00001cc6: CALLDATALOAD 00001cc7: PUSH32 0xf3c1d15f8136332d14fce7c55a0179e59c44cb75d928d363b05cb22a1c36e9fd 00001ce8: PUSH1 0x60 00001cea: DUP13 00001ceb: ADD 00001cec: CALLDATALOAD 00001ced: PUSH2 0x1cfc 00001cf0: PUSH1 0xa0 00001cf2: DUP15 00001cf3: ADD 00001cf4: PUSH1 0x80 00001cf6: DUP16 00001cf7: ADD 00001cf8: PUSH2 0x4ef7 00001cfb: JUMP 00001cfc: JUMPDEST 00001cfd: PUSH1 0x40 00001cff: DUP1 00001d00: MLOAD 00001d01: SWAP3 00001d02: DUP4 00001d03: MSTORE 00001d04: PUSH1 0xff 00001d06: SWAP1 00001d07: SWAP2 00001d08: AND 00001d09: PUSH1 0x20 00001d0b: DUP4 00001d0c: ADD 00001d0d: MSTORE 00001d0e: ADD 00001d0f: PUSH1 0x40 00001d11: MLOAD 00001d12: DUP1 00001d13: SWAP2 00001d14: SUB 00001d15: SWAP1 00001d16: LOG4 00001d17: DUP8 00001d18: CALLDATALOAD 00001d19: PUSH32 0x3a24d3c2a6b177a835cbf8f854944d6bd20ad08538f9d962cc63c5f59da69e73 00001d3a: PUSH2 0x1d46 00001d3d: PUSH1 0x20 00001d3f: DUP12 00001d40: ADD 00001d41: DUP12 00001d42: PUSH2 0x4e2f 00001d45: JUMP 00001d46: JUMPDEST 00001d47: PUSH1 0x40 00001d49: MLOAD 00001d4a: PUSH2 0x1d54 00001d4d: SWAP3 00001d4e: SWAP2 00001d4f: SWAP1 00001d50: PUSH2 0x4f6b 00001d53: JUMP 00001d54: JUMPDEST 00001d55: PUSH1 0x40 00001d57: MLOAD 00001d58: DUP1 00001d59: SWAP2 00001d5a: SUB 00001d5b: SWAP1 00001d5c: LOG2 00001d5d: DUP8 00001d5e: CALLDATALOAD 00001d5f: PUSH1 0x00 00001d61: SWAP1 00001d62: DUP2 00001d63: MSTORE 00001d64: PUSH1 0x99 00001d66: PUSH1 0x20 00001d68: SWAP1 00001d69: DUP2 00001d6a: MSTORE 00001d6b: PUSH1 0x40 00001d6d: DUP1 00001d6e: DUP4 00001d6f: KECCAK256 00001d70: DUP1 00001d71: SLOAD 00001d72: PUSH1 0xff 00001d74: NOT 00001d75: AND 00001d76: PUSH1 0x01 00001d78: OR 00001d79: SWAP1 00001d7a: SSTORE 00001d7b: DUP7 00001d7c: DUP4 00001d7d: MSTORE 00001d7e: PUSH1 0x98 00001d80: SWAP1 00001d81: SWAP2 00001d82: MSTORE 00001d83: DUP2 00001d84: KECCAK256 00001d85: SSTORE 00001d86: PUSH2 0x1d96 00001d89: PUSH2 0x1d91 00001d8c: DUP10 00001d8d: PUSH2 0x4f4f 00001d90: JUMP 00001d91: JUMPDEST 00001d92: PUSH2 0x38c6 00001d95: JUMP 00001d96: JUMPDEST 00001d97: POP 00001d98: POP 00001d99: POP 00001d9a: POP 00001d9b: POP 00001d9c: JUMPDEST 00001d9d: PUSH1 0x9d 00001d9f: SLOAD 00001da0: PUSH1 0x01 00001da2: PUSH1 0x01 00001da4: PUSH1 0xa0 00001da6: SHL 00001da7: SUB 00001da8: AND 00001da9: DUP1 00001daa: PUSH2 0x1db4 00001dad: JUMPI 00001dae: POP 00001daf: POP 00001db0: PUSH2 0x1e90 00001db3: JUMP 00001db4: JUMPDEST 00001db5: DUP3 00001db6: PUSH1 0x20 00001db8: ADD 00001db9: MLOAD 00001dba: DUP1 00001dbb: ISZERO 00001dbc: PUSH2 0x1ddf 00001dbf: JUMPI 00001dc0: POP 00001dc1: DUP3 00001dc2: MLOAD 00001dc3: PUSH1 0x01 00001dc5: PUSH1 0x01 00001dc7: PUSH1 0xa0 00001dc9: SHL 00001dca: SUB 00001dcb: AND 00001dcc: PUSH1 0x00 00001dce: SWAP1 00001dcf: DUP2 00001dd0: MSTORE 00001dd1: PUSH1 0x9e 00001dd3: PUSH1 0x20 00001dd5: MSTORE 00001dd6: PUSH1 0x40 00001dd8: SWAP1 00001dd9: KECCAK256 00001dda: SLOAD 00001ddb: PUSH1 0xff 00001ddd: AND 00001dde: ISZERO 00001ddf: JUMPDEST 00001de0: ISZERO 00001de1: PUSH2 0x1deb 00001de4: JUMPI 00001de5: POP 00001de6: POP 00001de7: PUSH2 0x1e90 00001dea: JUMP 00001deb: JUMPDEST 00001dec: DUP1 00001ded: PUSH1 0x01 00001def: PUSH1 0x01 00001df1: PUSH1 0xa0 00001df3: SHL 00001df4: SUB 00001df5: AND 00001df6: PUSH4 0x7ad226dc 00001dfb: DUP5 00001dfc: PUSH1 0x40 00001dfe: ADD 00001dff: MLOAD 00001e00: GAS 00001e01: PUSH2 0x1e0a 00001e04: SWAP1 00001e05: DUP7 00001e06: PUSH2 0x4e94 00001e09: JUMP 00001e0a: JUMPDEST 00001e0b: PUSH2 0x1e14 00001e0e: SWAP2 00001e0f: SWAP1 00001e10: PUSH2 0x4c9e 00001e13: JUMP 00001e14: JUMPDEST 00001e15: DUP6 00001e16: MLOAD 00001e17: PUSH1 0x40 00001e19: MLOAD 00001e1a: PUSH1 0xe0 00001e1c: DUP5 00001e1d: SWAP1 00001e1e: SHL 00001e1f: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001e40: AND 00001e41: DUP2 00001e42: MSTORE 00001e43: PUSH1 0x04 00001e45: DUP2 00001e46: ADD 00001e47: SWAP3 00001e48: SWAP1 00001e49: SWAP3 00001e4a: MSTORE 00001e4b: PUSH1 0x01 00001e4d: PUSH1 0x01 00001e4f: PUSH1 0xa0 00001e51: SHL 00001e52: SUB 00001e53: AND 00001e54: PUSH1 0x24 00001e56: DUP3 00001e57: ADD 00001e58: MSTORE 00001e59: PUSH1 0x44 00001e5b: ADD 00001e5c: PUSH1 0x00 00001e5e: PUSH1 0x40 00001e60: MLOAD 00001e61: DUP1 00001e62: DUP4 00001e63: SUB 00001e64: DUP2 00001e65: PUSH1 0x00 00001e67: DUP8 00001e68: DUP1 00001e69: EXTCODESIZE 00001e6a: ISZERO 00001e6b: DUP1 00001e6c: ISZERO 00001e6d: PUSH2 0x1e75 00001e70: JUMPI 00001e71: PUSH1 0x00 00001e73: DUP1 00001e74: REVERT 00001e75: JUMPDEST 00001e76: POP 00001e77: GAS 00001e78: CALL 00001e79: ISZERO 00001e7a: DUP1 00001e7b: ISZERO 00001e7c: PUSH2 0x1e89 00001e7f: JUMPI 00001e80: RETURNDATASIZE 00001e81: PUSH1 0x00 00001e83: DUP1 00001e84: RETURNDATACOPY 00001e85: RETURNDATASIZE 00001e86: PUSH1 0x00 00001e88: REVERT 00001e89: JUMPDEST 00001e8a: POP 00001e8b: POP 00001e8c: POP 00001e8d: POP 00001e8e: POP 00001e8f: POP 00001e90: JUMPDEST 00001e91: POP 00001e92: PUSH2 0x16c7 00001e95: PUSH1 0x01 00001e97: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00 00001eb8: SSTORE 00001eb9: JUMP 00001eba: JUMPDEST 00001ebb: PUSH1 0x00 00001ebd: DUP1 00001ebe: PUSH32 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300 00001edf: JUMPDEST 00001ee0: SLOAD 00001ee1: PUSH1 0x01 00001ee3: PUSH1 0x01 00001ee5: PUSH1 0xa0 00001ee7: SHL 00001ee8: SUB 00001ee9: AND 00001eea: SWAP3 00001eeb: SWAP2 00001eec: POP 00001eed: POP 00001eee: JUMP 00001eef: JUMPDEST 00001ef0: PUSH2 0x1ef7 00001ef3: PUSH2 0x2c01 00001ef6: JUMP 00001ef7: JUMPDEST 00001ef8: PUSH1 0x01 00001efa: PUSH1 0x01 00001efc: PUSH1 0xa0 00001efe: SHL 00001eff: SUB 00001f00: DUP3 00001f01: AND 00001f02: PUSH1 0x00 00001f04: SWAP1 00001f05: DUP2 00001f06: MSTORE 00001f07: PUSH1 0x64 00001f09: PUSH1 0x20 00001f0b: MSTORE 00001f0c: PUSH1 0x40 00001f0e: DUP2 00001f0f: KECCAK256 00001f10: SLOAD 00001f11: SWAP1 00001f12: SUB 00001f13: PUSH2 0x1f48 00001f16: JUMPI 00001f17: PUSH1 0x40 00001f19: MLOAD 00001f1a: PUSH32 0x881b8d7c00000000000000000000000000000000000000000000000000000000 00001f3b: DUP2 00001f3c: MSTORE 00001f3d: PUSH1 0x04 00001f3f: ADD 00001f40: PUSH1 0x40 00001f42: MLOAD 00001f43: DUP1 00001f44: SWAP2 00001f45: SUB 00001f46: SWAP1 00001f47: REVERT 00001f48: JUMPDEST 00001f49: DUP1 00001f4a: PUSH1 0x00 00001f4c: SUB 00001f4d: PUSH2 0x1f82 00001f50: JUMPI 00001f51: PUSH1 0x40 00001f53: MLOAD 00001f54: PUSH32 0x47fba16a00000000000000000000000000000000000000000000000000000000 00001f75: DUP2 00001f76: MSTORE 00001f77: PUSH1 0x04 00001f79: ADD 00001f7a: PUSH1 0x40 00001f7c: MLOAD 00001f7d: DUP1 00001f7e: SWAP2 00001f7f: SUB 00001f80: SWAP1 00001f81: REVERT 00001f82: JUMPDEST 00001f83: PUSH1 0x01 00001f85: PUSH1 0x01 00001f87: PUSH1 0xa0 00001f89: SHL 00001f8a: SUB 00001f8b: DUP3 00001f8c: AND 00001f8d: PUSH1 0x00 00001f8f: DUP2 00001f90: DUP2 00001f91: MSTORE 00001f92: PUSH1 0x64 00001f94: PUSH1 0x20 00001f96: MSTORE 00001f97: PUSH1 0x40 00001f99: SWAP1 00001f9a: DUP2 00001f9b: SWAP1 00001f9c: KECCAK256 00001f9d: DUP4 00001f9e: SWAP1 00001f9f: SSTORE 00001fa0: MLOAD 00001fa1: PUSH32 0x886950a2d9ce5c7d214261968375335366c8547e3e5eb5e1744c3cb581c4a672 00001fc2: SWAP1 00001fc3: PUSH2 0x114a 00001fc6: SWAP1 00001fc7: DUP5 00001fc8: DUP2 00001fc9: MSTORE 00001fca: PUSH1 0x20 00001fcc: ADD 00001fcd: SWAP1 00001fce: JUMP 00001fcf: JUMPDEST 00001fd0: PUSH2 0x1fd7 00001fd3: PUSH2 0x2c01 00001fd6: JUMP 00001fd7: JUMPDEST 00001fd8: PUSH1 0x9f 00001fda: SLOAD 00001fdb: PUSH1 0xff 00001fdd: AND 00001fde: PUSH2 0x2013 00001fe1: JUMPI 00001fe2: PUSH1 0x40 00001fe4: MLOAD 00001fe5: PUSH32 0x23951ebe00000000000000000000000000000000000000000000000000000000 00002006: DUP2 00002007: MSTORE 00002008: PUSH1 0x04 0000200a: ADD 0000200b: PUSH1 0x40 0000200d: MLOAD 0000200e: DUP1 0000200f: SWAP2 00002010: SUB 00002011: SWAP1 00002012: REVERT 00002013: JUMPDEST 00002014: PUSH1 0x01 00002016: PUSH1 0x01 00002018: PUSH1 0xa0 0000201a: SHL 0000201b: SUB 0000201c: DUP2 0000201d: AND 0000201e: PUSH1 0x00 00002020: SWAP1 00002021: DUP2 00002022: MSTORE 00002023: PUSH1 0x97 00002025: PUSH1 0x20 00002027: MSTORE 00002028: PUSH1 0x40 0000202a: DUP2 0000202b: KECCAK256 0000202c: SLOAD 0000202d: PUSH1 0xff 0000202f: AND 00002030: SWAP1 00002031: DUP2 00002032: SWAP1 00002033: SUB 00002034: PUSH2 0x2074 00002037: JUMPI 00002038: PUSH1 0x40 0000203a: MLOAD 0000203b: PUSH32 0x958b194b00000000000000000000000000000000000000000000000000000000 0000205c: DUP2 0000205d: MSTORE 0000205e: PUSH1 0x01 00002060: PUSH1 0x01 00002062: PUSH1 0xa0 00002064: SHL 00002065: SUB 00002066: DUP4 00002067: AND 00002068: PUSH1 0x04 0000206a: DUP3 0000206b: ADD 0000206c: MSTORE 0000206d: PUSH1 0x24 0000206f: ADD 00002070: PUSH2 0x0907 00002073: JUMP 00002074: JUMPDEST 00002075: PUSH1 0x00 00002077: PUSH2 0x2081 0000207a: PUSH1 0x01 0000207c: DUP4 0000207d: PUSH2 0x4f7f 00002080: JUMP 00002081: JUMPDEST 00002082: PUSH1 0xff 00002084: AND 00002085: SWAP1 00002086: POP 00002087: PUSH1 0x00 00002089: PUSH1 0x01 0000208b: PUSH1 0x96 0000208d: DUP1 0000208e: SLOAD 0000208f: SWAP1 00002090: POP 00002091: PUSH2 0x209a 00002094: SWAP2 00002095: SWAP1 00002096: PUSH2 0x4e94 00002099: JUMP 0000209a: JUMPDEST 0000209b: SWAP1 0000209c: POP 0000209d: DUP1 0000209e: DUP3 0000209f: EQ 000020a0: PUSH2 0x2144 000020a3: JUMPI 000020a4: PUSH1 0x00 000020a6: PUSH1 0x96 000020a8: DUP3 000020a9: DUP2 000020aa: SLOAD 000020ab: DUP2 000020ac: LT 000020ad: PUSH2 0x20b8 000020b0: JUMPI 000020b1: PUSH2 0x20b8 000020b4: PUSH2 0x4f98 000020b7: JUMP 000020b8: JUMPDEST 000020b9: PUSH1 0x00 000020bb: SWAP2 000020bc: DUP3 000020bd: MSTORE 000020be: PUSH1 0x20 000020c0: SWAP1 000020c1: SWAP2 000020c2: KECCAK256 000020c3: ADD 000020c4: SLOAD 000020c5: PUSH1 0x96 000020c7: DUP1 000020c8: SLOAD 000020c9: PUSH1 0x01 000020cb: PUSH1 0x01 000020cd: PUSH1 0xa0 000020cf: SHL 000020d0: SUB 000020d1: SWAP1 000020d2: SWAP3 000020d3: AND 000020d4: SWAP3 000020d5: POP 000020d6: DUP3 000020d7: SWAP2 000020d8: DUP6 000020d9: SWAP1 000020da: DUP2 000020db: LT 000020dc: PUSH2 0x20e7 000020df: JUMPI 000020e0: PUSH2 0x20e7 000020e3: PUSH2 0x4f98 000020e6: JUMP 000020e7: JUMPDEST 000020e8: PUSH1 0x00 000020ea: SWAP2 000020eb: DUP3 000020ec: MSTORE 000020ed: PUSH1 0x20 000020ef: DUP1 000020f0: DUP4 000020f1: KECCAK256 000020f2: SWAP2 000020f3: SWAP1 000020f4: SWAP2 000020f5: ADD 000020f6: DUP1 000020f7: SLOAD 000020f8: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00002119: AND 0000211a: PUSH1 0x01 0000211c: PUSH1 0x01 0000211e: PUSH1 0xa0 00002120: SHL 00002121: SUB 00002122: SWAP5 00002123: DUP6 00002124: AND 00002125: OR 00002126: SWAP1 00002127: SSTORE 00002128: SWAP3 00002129: SWAP1 0000212a: SWAP2 0000212b: AND 0000212c: DUP2 0000212d: MSTORE 0000212e: PUSH1 0x97 00002130: SWAP1 00002131: SWAP2 00002132: MSTORE 00002133: PUSH1 0x40 00002135: SWAP1 00002136: KECCAK256 00002137: DUP1 00002138: SLOAD 00002139: PUSH1 0xff 0000213b: NOT 0000213c: AND 0000213d: PUSH1 0xff 0000213f: DUP6 00002140: AND 00002141: OR 00002142: SWAP1 00002143: SSTORE 00002144: JUMPDEST 00002145: PUSH1 0x01 00002147: PUSH1 0x01 00002149: PUSH1 0xa0 0000214b: SHL 0000214c: SUB 0000214d: DUP5 0000214e: AND 0000214f: PUSH1 0x00 00002151: SWAP1 00002152: DUP2 00002153: MSTORE 00002154: PUSH1 0x97 00002156: PUSH1 0x20 00002158: MSTORE 00002159: PUSH1 0x40 0000215b: SWAP1 0000215c: KECCAK256 0000215d: DUP1 0000215e: SLOAD 0000215f: PUSH1 0xff 00002161: NOT 00002162: AND 00002163: SWAP1 00002164: SSTORE 00002165: PUSH1 0x96 00002167: DUP1 00002168: SLOAD 00002169: DUP1 0000216a: PUSH2 0x2175 0000216d: JUMPI 0000216e: PUSH2 0x2175 00002171: PUSH2 0x4fc7 00002174: JUMP 00002175: JUMPDEST 00002176: PUSH1 0x00 00002178: DUP3 00002179: DUP2 0000217a: MSTORE 0000217b: PUSH1 0x20 0000217d: DUP2 0000217e: KECCAK256 0000217f: DUP3 00002180: ADD 00002181: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000021a2: SWAP1 000021a3: DUP2 000021a4: ADD 000021a5: DUP1 000021a6: SLOAD 000021a7: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 000021c8: AND 000021c9: SWAP1 000021ca: SSTORE 000021cb: SWAP1 000021cc: SWAP2 000021cd: ADD 000021ce: SWAP1 000021cf: SWAP2 000021d0: SSTORE 000021d1: PUSH1 0x9f 000021d3: DUP1 000021d4: SLOAD 000021d5: PUSH1 0xff 000021d7: NOT 000021d8: AND 000021d9: SWAP1 000021da: SSTORE 000021db: PUSH1 0x40 000021dd: MLOAD 000021de: PUSH1 0xff 000021e0: DUP6 000021e1: AND 000021e2: SWAP2 000021e3: PUSH1 0x01 000021e5: PUSH1 0x01 000021e7: PUSH1 0xa0 000021e9: SHL 000021ea: SUB 000021eb: DUP8 000021ec: AND 000021ed: SWAP2 000021ee: PUSH32 0x554a8f601798186cfa197105ef51dde890562b8887e7f8f441c7e330f2346d6c 0000220f: SWAP2 00002210: SWAP1 00002211: LOG3 00002212: PUSH1 0x40 00002214: MLOAD 00002215: PUSH32 0x101528fcb7f3f4dfe132b7df0ba88bf1c2f0e0e6a13e518a40bac7b87f0846f6 00002236: SWAP1 00002237: PUSH1 0x00 00002239: SWAP1 0000223a: LOG1 0000223b: POP 0000223c: POP 0000223d: POP 0000223e: POP 0000223f: JUMP 00002240: JUMPDEST 00002241: PUSH2 0x2248 00002244: PUSH2 0x2c01 00002247: JUMP 00002248: JUMPDEST 00002249: PUSH1 0x01 0000224b: PUSH1 0x01 0000224d: PUSH1 0xa0 0000224f: SHL 00002250: SUB 00002251: DUP2 00002252: AND 00002253: PUSH1 0x00 00002255: DUP2 00002256: DUP2 00002257: MSTORE 00002258: PUSH1 0x9e 0000225a: PUSH1 0x20 0000225c: MSTORE 0000225d: PUSH1 0x40 0000225f: DUP1 00002260: DUP3 00002261: KECCAK256 00002262: DUP1 00002263: SLOAD 00002264: PUSH1 0xff 00002266: NOT 00002267: AND 00002268: SWAP1 00002269: SSTORE 0000226a: MLOAD 0000226b: PUSH32 0x2eed1c57963cce0faf8699139c3b5ba3114e419dd7b7655a8ebde907995a23f3 0000228c: SWAP2 0000228d: SWAP1 0000228e: LOG2 0000228f: POP 00002290: JUMP 00002291: JUMPDEST 00002292: PUSH2 0x2299 00002295: PUSH2 0x2f5b 00002298: JUMP 00002299: JUMPDEST 0000229a: PUSH1 0x40 0000229c: DUP1 0000229d: MLOAD 0000229e: PUSH1 0x60 000022a0: DUP2 000022a1: ADD 000022a2: DUP3 000022a3: MSTORE 000022a4: CALLER 000022a5: DUP2 000022a6: MSTORE 000022a7: PUSH1 0x01 000022a9: PUSH1 0x20 000022ab: DUP3 000022ac: ADD 000022ad: MSTORE 000022ae: PUSH2 0x32c8 000022b1: SWAP2 000022b2: DUP2 000022b3: ADD 000022b4: SWAP2 000022b5: SWAP1 000022b6: SWAP2 000022b7: MSTORE 000022b8: PUSH1 0x00 000022ba: GAS 000022bb: SWAP1 000022bc: POP 000022bd: PUSH2 0x22c8 000022c0: PUSH2 0x05fa 000022c3: DUP7 000022c4: PUSH2 0x4f4f 000022c7: JUMP 000022c8: JUMPDEST 000022c9: POP 000022ca: PUSH2 0x22d4 000022cd: PUSH1 0x41 000022cf: DUP5 000022d0: PUSH2 0x4ff6 000022d3: JUMP 000022d4: JUMPDEST 000022d5: ISZERO 000022d6: PUSH2 0x230b 000022d9: JUMPI 000022da: PUSH1 0x40 000022dc: MLOAD 000022dd: PUSH32 0xc32cb4d800000000000000000000000000000000000000000000000000000000 000022fe: DUP2 000022ff: MSTORE 00002300: PUSH1 0x04 00002302: ADD 00002303: PUSH1 0x40 00002305: MLOAD 00002306: DUP1 00002307: SWAP2 00002308: SUB 00002309: SWAP1 0000230a: REVERT 0000230b: JUMPDEST 0000230c: PUSH1 0x00 0000230e: PUSH2 0x2318 00002311: PUSH1 0x41 00002313: DUP6 00002314: PUSH2 0x4c8a 00002317: JUMP 00002318: JUMPDEST 00002319: SWAP1 0000231a: POP 0000231b: PUSH2 0x2322 0000231e: PUSH2 0x0c5a 00002321: JUMP 00002322: JUMPDEST 00002323: DUP2 00002324: EQ 00002325: PUSH2 0x235d 00002328: JUMPI 00002329: PUSH1 0x40 0000232b: MLOAD 0000232c: PUSH32 0x2b68e7bd00000000000000000000000000000000000000000000000000000000 0000234d: DUP2 0000234e: MSTORE 0000234f: PUSH1 0x04 00002351: DUP2 00002352: ADD 00002353: DUP3 00002354: SWAP1 00002355: MSTORE 00002356: PUSH1 0x24 00002358: ADD 00002359: PUSH2 0x0907 0000235c: JUMP 0000235d: JUMPDEST 0000235e: PUSH1 0x00 00002360: PUSH2 0x23be 00002363: CHAINID 00002364: DUP9 00002365: PUSH1 0x40 00002367: MLOAD 00002368: PUSH1 0x20 0000236a: ADD 0000236b: PUSH2 0x2375 0000236e: SWAP3 0000236f: SWAP2 00002370: SWAP1 00002371: PUSH2 0x500a 00002374: JUMP 00002375: JUMPDEST 00002376: PUSH1 0x40 00002378: MLOAD 00002379: PUSH1 0x20 0000237b: DUP2 0000237c: DUP4 0000237d: SUB 0000237e: SUB 0000237f: DUP2 00002380: MSTORE 00002381: SWAP1 00002382: PUSH1 0x40 00002384: MSTORE 00002385: DUP1 00002386: MLOAD 00002387: SWAP1 00002388: PUSH1 0x20 0000238a: ADD 0000238b: KECCAK256 0000238c: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000 000023ad: PUSH1 0x00 000023af: SWAP1 000023b0: DUP2 000023b1: MSTORE 000023b2: PUSH1 0x1c 000023b4: SWAP2 000023b5: SWAP1 000023b6: SWAP2 000023b7: MSTORE 000023b8: PUSH1 0x3c 000023ba: SWAP1 000023bb: KECCAK256 000023bc: SWAP1 000023bd: JUMP 000023be: JUMPDEST 000023bf: SWAP1 000023c0: POP 000023c1: PUSH1 0x60 000023c3: PUSH1 0x00 000023c5: DUP1 000023c6: JUMPDEST 000023c7: DUP5 000023c8: DUP2 000023c9: LT 000023ca: ISZERO 000023cb: PUSH2 0x24f7 000023ce: JUMPI 000023cf: DUP9 000023d0: DUP9 000023d1: PUSH2 0x23db 000023d4: DUP4 000023d5: PUSH1 0x41 000023d7: PUSH2 0x4c44 000023da: JUMP 000023db: JUMPDEST 000023dc: SWAP1 000023dd: PUSH2 0x23e7 000023e0: DUP5 000023e1: PUSH1 0x01 000023e3: PUSH2 0x4c9e 000023e6: JUMP 000023e7: JUMPDEST 000023e8: PUSH2 0x23f2 000023eb: SWAP1 000023ec: PUSH1 0x41 000023ee: PUSH2 0x4c44 000023f1: JUMP 000023f2: JUMPDEST 000023f3: SWAP3 000023f4: PUSH2 0x23ff 000023f7: SWAP4 000023f8: SWAP3 000023f9: SWAP2 000023fa: SWAP1 000023fb: PUSH2 0x5023 000023fe: JUMP 000023ff: JUMPDEST 00002400: DUP1 00002401: DUP1 00002402: PUSH1 0x1f 00002404: ADD 00002405: PUSH1 0x20 00002407: DUP1 00002408: SWAP2 00002409: DIV 0000240a: MUL 0000240b: PUSH1 0x20 0000240d: ADD 0000240e: PUSH1 0x40 00002410: MLOAD 00002411: SWAP1 00002412: DUP2 00002413: ADD 00002414: PUSH1 0x40 00002416: MSTORE 00002417: DUP1 00002418: SWAP4 00002419: SWAP3 0000241a: SWAP2 0000241b: SWAP1 0000241c: DUP2 0000241d: DUP2 0000241e: MSTORE 0000241f: PUSH1 0x20 00002421: ADD 00002422: DUP4 00002423: DUP4 00002424: DUP1 00002425: DUP3 00002426: DUP5 00002427: CALLDATACOPY 00002428: PUSH1 0x00 0000242a: SWAP3 0000242b: ADD 0000242c: DUP3 0000242d: SWAP1 0000242e: MSTORE 0000242f: POP 00002430: SWAP4 00002431: SWAP7 00002432: POP 00002433: PUSH2 0x2442 00002436: SWAP3 00002437: POP 00002438: DUP8 00002439: SWAP2 0000243a: POP 0000243b: DUP7 0000243c: SWAP1 0000243d: POP 0000243e: PUSH2 0x397c 00002441: JUMP 00002442: JUMPDEST 00002443: PUSH1 0x01 00002445: PUSH1 0x01 00002447: PUSH1 0xa0 00002449: SHL 0000244a: SUB 0000244b: DUP2 0000244c: AND 0000244d: PUSH1 0x00 0000244f: SWAP1 00002450: DUP2 00002451: MSTORE 00002452: PUSH1 0x97 00002454: PUSH1 0x20 00002456: MSTORE 00002457: PUSH1 0x40 00002459: DUP2 0000245a: KECCAK256 0000245b: SLOAD 0000245c: SWAP2 0000245d: SWAP3 0000245e: POP 0000245f: PUSH1 0xff 00002461: SWAP1 00002462: SWAP2 00002463: AND 00002464: SWAP1 00002465: SUB 00002466: PUSH2 0x24a6 00002469: JUMPI 0000246a: PUSH1 0x40 0000246c: MLOAD 0000246d: PUSH32 0x16254bd300000000000000000000000000000000000000000000000000000000 0000248e: DUP2 0000248f: MSTORE 00002490: PUSH1 0x01 00002492: PUSH1 0x01 00002494: PUSH1 0xa0 00002496: SHL 00002497: SUB 00002498: DUP3 00002499: AND 0000249a: PUSH1 0x04 0000249c: DUP3 0000249d: ADD 0000249e: MSTORE 0000249f: PUSH1 0x24 000024a1: ADD 000024a2: PUSH2 0x0907 000024a5: JUMP 000024a6: JUMPDEST 000024a7: PUSH1 0x01 000024a9: PUSH1 0x01 000024ab: PUSH1 0xa0 000024ad: SHL 000024ae: SUB 000024af: DUP1 000024b0: DUP5 000024b1: AND 000024b2: SWAP1 000024b3: DUP3 000024b4: AND 000024b5: GT 000024b6: DUP1 000024b7: PUSH2 0x24ec 000024ba: JUMPI 000024bb: PUSH1 0x40 000024bd: MLOAD 000024be: PUSH32 0xd02ef0e500000000000000000000000000000000000000000000000000000000 000024df: DUP2 000024e0: MSTORE 000024e1: PUSH1 0x04 000024e3: ADD 000024e4: PUSH1 0x40 000024e6: MLOAD 000024e7: DUP1 000024e8: SWAP2 000024e9: SUB 000024ea: SWAP1 000024eb: REVERT 000024ec: JUMPDEST 000024ed: POP 000024ee: SWAP2 000024ef: POP 000024f0: PUSH1 0x01 000024f2: ADD 000024f3: PUSH2 0x23c6 000024f6: JUMP 000024f7: JUMPDEST 000024f8: POP 000024f9: PUSH2 0x2508 000024fc: PUSH1 0x60 000024fe: DUP11 000024ff: ADD 00002500: PUSH1 0x40 00002502: DUP12 00002503: ADD 00002504: PUSH2 0x4567 00002507: JUMP 00002508: JUMPDEST 00002509: PUSH1 0x01 0000250b: PUSH1 0x01 0000250d: PUSH1 0xa0 0000250f: SHL 00002510: SUB 00002511: AND 00002512: PUSH2 0x251e 00002515: PUSH1 0x20 00002517: DUP12 00002518: ADD 00002519: DUP12 0000251a: PUSH2 0x4e2f 0000251d: JUMP 0000251e: JUMPDEST 0000251f: PUSH1 0x40 00002521: MLOAD 00002522: PUSH2 0x252c 00002525: SWAP3 00002526: SWAP2 00002527: SWAP1 00002528: PUSH2 0x4f5b 0000252b: JUMP 0000252c: JUMPDEST 0000252d: PUSH1 0x40 0000252f: MLOAD 00002530: DUP1 00002531: SWAP2 00002532: SUB 00002533: SWAP1 00002534: KECCAK256 00002535: DUP11 00002536: PUSH1 0x00 00002538: ADD 00002539: CALLDATALOAD 0000253a: PUSH32 0xf3c1d15f8136332d14fce7c55a0179e59c44cb75d928d363b05cb22a1c36e9fd 0000255b: DUP13 0000255c: PUSH1 0x60 0000255e: ADD 0000255f: CALLDATALOAD 00002560: DUP14 00002561: PUSH1 0x80 00002563: ADD 00002564: PUSH1 0x20 00002566: DUP2 00002567: ADD 00002568: SWAP1 00002569: PUSH2 0x2572 0000256c: SWAP2 0000256d: SWAP1 0000256e: PUSH2 0x4ef7 00002571: JUMP 00002572: JUMPDEST 00002573: PUSH1 0x40 00002575: DUP1 00002576: MLOAD 00002577: SWAP3 00002578: DUP4 00002579: MSTORE 0000257a: PUSH1 0xff 0000257c: SWAP1 0000257d: SWAP2 0000257e: AND 0000257f: PUSH1 0x20 00002581: DUP4 00002582: ADD 00002583: MSTORE 00002584: ADD 00002585: PUSH1 0x40 00002587: MLOAD 00002588: DUP1 00002589: SWAP2 0000258a: SUB 0000258b: SWAP1 0000258c: LOG4 0000258d: DUP9 0000258e: CALLDATALOAD 0000258f: PUSH32 0x3a24d3c2a6b177a835cbf8f854944d6bd20ad08538f9d962cc63c5f59da69e73 000025b0: PUSH2 0x25bc 000025b3: PUSH1 0x20 000025b5: DUP13 000025b6: ADD 000025b7: DUP13 000025b8: PUSH2 0x4e2f 000025bb: JUMP 000025bc: JUMPDEST 000025bd: PUSH1 0x40 000025bf: MLOAD 000025c0: PUSH2 0x25ca 000025c3: SWAP3 000025c4: SWAP2 000025c5: SWAP1 000025c6: PUSH2 0x4f6b 000025c9: JUMP 000025ca: JUMPDEST 000025cb: PUSH1 0x40 000025cd: MLOAD 000025ce: DUP1 000025cf: SWAP2 000025d0: SUB 000025d1: SWAP1 000025d2: LOG2 000025d3: DUP9 000025d4: CALLDATALOAD 000025d5: PUSH1 0x00 000025d7: SWAP1 000025d8: DUP2 000025d9: MSTORE 000025da: PUSH1 0x99 000025dc: PUSH1 0x20 000025de: MSTORE 000025df: PUSH1 0x40 000025e1: SWAP1 000025e2: KECCAK256 000025e3: DUP1 000025e4: SLOAD 000025e5: PUSH1 0xff 000025e7: NOT 000025e8: AND 000025e9: PUSH1 0x01 000025eb: OR 000025ec: SWAP1 000025ed: SSTORE 000025ee: PUSH2 0x25f9 000025f1: PUSH2 0x1d91 000025f4: DUP11 000025f5: PUSH2 0x4f4f 000025f8: JUMP 000025f9: JUMPDEST 000025fa: POP 000025fb: POP 000025fc: PUSH1 0x9d 000025fe: SLOAD 000025ff: PUSH1 0x01 00002601: PUSH1 0x01 00002603: PUSH1 0xa0 00002605: SHL 00002606: SUB 00002607: AND 00002608: SWAP2 00002609: POP 0000260a: DUP2 0000260b: SWAP1 0000260c: POP 0000260d: PUSH2 0x1564 00002610: JUMPI 00002611: POP 00002612: POP 00002613: PUSH2 0x0f2e 00002616: JUMP 00002617: JUMPDEST 00002618: PUSH2 0x261f 0000261b: PUSH2 0x2c01 0000261e: JUMP 0000261f: JUMPDEST 00002620: PUSH1 0x01 00002622: PUSH1 0x01 00002624: PUSH1 0xa0 00002626: SHL 00002627: SUB 00002628: DUP2 00002629: AND 0000262a: PUSH2 0x265f 0000262d: JUMPI 0000262e: PUSH1 0x40 00002630: MLOAD 00002631: PUSH32 0x67170c8b00000000000000000000000000000000000000000000000000000000 00002652: DUP2 00002653: MSTORE 00002654: PUSH1 0x04 00002656: ADD 00002657: PUSH1 0x40 00002659: MLOAD 0000265a: DUP1 0000265b: SWAP2 0000265c: SUB 0000265d: SWAP1 0000265e: REVERT 0000265f: JUMPDEST 00002660: PUSH1 0x01 00002662: PUSH1 0x01 00002664: PUSH1 0xa0 00002666: SHL 00002667: SUB 00002668: DUP2 00002669: AND 0000266a: PUSH1 0x00 0000266c: SWAP1 0000266d: DUP2 0000266e: MSTORE 0000266f: PUSH1 0x97 00002671: PUSH1 0x20 00002673: MSTORE 00002674: PUSH1 0x40 00002676: SWAP1 00002677: KECCAK256 00002678: SLOAD 00002679: PUSH1 0xff 0000267b: AND 0000267c: ISZERO 0000267d: PUSH2 0x26bd 00002680: JUMPI 00002681: PUSH1 0x40 00002683: MLOAD 00002684: PUSH32 0x591a237c00000000000000000000000000000000000000000000000000000000 000026a5: DUP2 000026a6: MSTORE 000026a7: PUSH1 0x01 000026a9: PUSH1 0x01 000026ab: PUSH1 0xa0 000026ad: SHL 000026ae: SUB 000026af: DUP3 000026b0: AND 000026b1: PUSH1 0x04 000026b3: DUP3 000026b4: ADD 000026b5: MSTORE 000026b6: PUSH1 0x24 000026b8: ADD 000026b9: PUSH2 0x0907 000026bc: JUMP 000026bd: JUMPDEST 000026be: PUSH1 0x96 000026c0: SLOAD 000026c1: PUSH1 0xff 000026c3: GT 000026c4: PUSH2 0x26f9 000026c7: JUMPI 000026c8: PUSH1 0x40 000026ca: MLOAD 000026cb: PUSH32 0xed7948d600000000000000000000000000000000000000000000000000000000 000026ec: DUP2 000026ed: MSTORE 000026ee: PUSH1 0x04 000026f0: ADD 000026f1: PUSH1 0x40 000026f3: MLOAD 000026f4: DUP1 000026f5: SWAP2 000026f6: SUB 000026f7: SWAP1 000026f8: REVERT 000026f9: JUMPDEST 000026fa: PUSH1 0x96 000026fc: DUP1 000026fd: SLOAD 000026fe: PUSH1 0x01 00002700: DUP2 00002701: ADD 00002702: DUP3 00002703: SSTORE 00002704: PUSH32 0x6aa7ec8ac2a999a90ce6c78668dffe4e487e2576a97ca366ec81ecb335af90d0 00002725: ADD 00002726: DUP1 00002727: SLOAD 00002728: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00002749: AND 0000274a: PUSH1 0x01 0000274c: PUSH1 0x01 0000274e: PUSH1 0xa0 00002750: SHL 00002751: SUB 00002752: DUP5 00002753: AND 00002754: SWAP1 00002755: DUP2 00002756: OR 00002757: SWAP1 00002758: SWAP2 00002759: SSTORE 0000275a: SWAP1 0000275b: SLOAD 0000275c: PUSH1 0x00 0000275e: DUP3 0000275f: DUP2 00002760: MSTORE 00002761: PUSH1 0x97 00002763: PUSH1 0x20 00002765: MSTORE 00002766: PUSH1 0x40 00002768: DUP1 00002769: DUP3 0000276a: KECCAK256 0000276b: DUP1 0000276c: SLOAD 0000276d: PUSH1 0xff 0000276f: NOT 00002770: AND 00002771: PUSH1 0xff 00002773: DUP6 00002774: AND 00002775: SWAP1 00002776: DUP2 00002777: OR 00002778: SWAP1 00002779: SWAP2 0000277a: SSTORE 0000277b: SWAP1 0000277c: MLOAD 0000277d: SWAP3 0000277e: SWAP4 0000277f: SWAP1 00002780: SWAP3 00002781: SWAP1 00002782: SWAP2 00002783: PUSH32 0xdde8f6ead332aad593653167d67449309db9bfb202d7d394e68fd3e1b7c16007 000027a4: SWAP2 000027a5: LOG3 000027a6: POP 000027a7: POP 000027a8: JUMP 000027a9: JUMPDEST 000027aa: PUSH1 0x96 000027ac: DUP2 000027ad: DUP2 000027ae: SLOAD 000027af: DUP2 000027b0: LT 000027b1: PUSH2 0x27b9 000027b4: JUMPI 000027b5: PUSH1 0x00 000027b7: DUP1 000027b8: REVERT 000027b9: JUMPDEST 000027ba: PUSH1 0x00 000027bc: SWAP2 000027bd: DUP3 000027be: MSTORE 000027bf: PUSH1 0x20 000027c1: SWAP1 000027c2: SWAP2 000027c3: KECCAK256 000027c4: ADD 000027c5: SLOAD 000027c6: PUSH1 0x01 000027c8: PUSH1 0x01 000027ca: PUSH1 0xa0 000027cc: SHL 000027cd: SUB 000027ce: AND 000027cf: SWAP1 000027d0: POP 000027d1: DUP2 000027d2: JUMP 000027d3: JUMPDEST 000027d4: PUSH2 0x27db 000027d7: PUSH2 0x2c01 000027da: JUMP 000027db: JUMPDEST 000027dc: PUSH1 0x00 000027de: DUP2 000027df: SWAP1 000027e0: SUB 000027e1: PUSH2 0x2816 000027e4: JUMPI 000027e5: PUSH1 0x40 000027e7: MLOAD 000027e8: PUSH32 0x9c8d2cd200000000000000000000000000000000000000000000000000000000 00002809: DUP2 0000280a: MSTORE 0000280b: PUSH1 0x04 0000280d: ADD 0000280e: PUSH1 0x40 00002810: MLOAD 00002811: DUP1 00002812: SWAP2 00002813: SUB 00002814: SWAP1 00002815: REVERT 00002816: JUMPDEST 00002817: PUSH1 0x01 00002819: PUSH1 0xa1 0000281b: PUSH1 0x00 0000281d: DUP5 0000281e: DUP5 0000281f: PUSH1 0x40 00002821: MLOAD 00002822: PUSH2 0x282c 00002825: SWAP3 00002826: SWAP2 00002827: SWAP1 00002828: PUSH2 0x4f5b 0000282b: JUMP 0000282c: JUMPDEST 0000282d: PUSH1 0x40 0000282f: MLOAD 00002830: DUP1 00002831: SWAP2 00002832: SUB 00002833: SWAP1 00002834: KECCAK256 00002835: DUP2 00002836: MSTORE 00002837: PUSH1 0x20 00002839: ADD 0000283a: SWAP1 0000283b: DUP2 0000283c: MSTORE 0000283d: PUSH1 0x20 0000283f: ADD 00002840: PUSH1 0x00 00002842: KECCAK256 00002843: PUSH1 0x00 00002845: PUSH2 0x0100 00002848: EXP 00002849: DUP2 0000284a: SLOAD 0000284b: DUP2 0000284c: PUSH1 0xff 0000284e: MUL 0000284f: NOT 00002850: AND 00002851: SWAP1 00002852: DUP4 00002853: ISZERO 00002854: ISZERO 00002855: MUL 00002856: OR 00002857: SWAP1 00002858: SSTORE 00002859: POP 0000285a: PUSH32 0x2a069e08db4526ad7f2fb1d6388a3b7292f940aa5216facd4680d8dfcb6a17fa 0000287b: DUP3 0000287c: DUP3 0000287d: PUSH1 0x40 0000287f: MLOAD 00002880: PUSH2 0x0d09 00002883: SWAP3 00002884: SWAP2 00002885: SWAP1 00002886: PUSH2 0x4f6b 00002889: JUMP 0000288a: JUMPDEST 0000288b: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 000028ac: DUP1 000028ad: SLOAD 000028ae: PUSH9 0x010000000000000000 000028b8: DUP2 000028b9: DIV 000028ba: PUSH1 0xff 000028bc: AND 000028bd: ISZERO 000028be: SWAP1 000028bf: PUSH8 0xffffffffffffffff 000028c8: AND 000028c9: PUSH1 0x00 000028cb: DUP2 000028cc: ISZERO 000028cd: DUP1 000028ce: ISZERO 000028cf: PUSH2 0x28d5 000028d2: JUMPI 000028d3: POP 000028d4: DUP3 000028d5: JUMPDEST 000028d6: SWAP1 000028d7: POP 000028d8: PUSH1 0x00 000028da: DUP3 000028db: PUSH8 0xffffffffffffffff 000028e4: AND 000028e5: PUSH1 0x01 000028e7: EQ 000028e8: DUP1 000028e9: ISZERO 000028ea: PUSH2 0x28f2 000028ed: JUMPI 000028ee: POP 000028ef: ADDRESS 000028f0: EXTCODESIZE 000028f1: ISZERO 000028f2: JUMPDEST 000028f3: SWAP1 000028f4: POP 000028f5: DUP2 000028f6: ISZERO 000028f7: DUP1 000028f8: ISZERO 000028f9: PUSH2 0x2900 000028fc: JUMPI 000028fd: POP 000028fe: DUP1 000028ff: ISZERO 00002900: JUMPDEST 00002901: ISZERO 00002902: PUSH2 0x2937 00002905: JUMPI 00002906: PUSH1 0x40 00002908: MLOAD 00002909: PUSH32 0xf92ee8a900000000000000000000000000000000000000000000000000000000 0000292a: DUP2 0000292b: MSTORE 0000292c: PUSH1 0x04 0000292e: ADD 0000292f: PUSH1 0x40 00002931: MLOAD 00002932: DUP1 00002933: SWAP2 00002934: SUB 00002935: SWAP1 00002936: REVERT 00002937: JUMPDEST 00002938: DUP5 00002939: SLOAD 0000293a: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 0000295b: AND 0000295c: PUSH1 0x01 0000295e: OR 0000295f: DUP6 00002960: SSTORE 00002961: DUP4 00002962: ISZERO 00002963: PUSH2 0x2998 00002966: JUMPI 00002967: DUP5 00002968: SLOAD 00002969: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff 0000298a: AND 0000298b: PUSH9 0x010000000000000000 00002995: OR 00002996: DUP6 00002997: SSTORE 00002998: JUMPDEST 00002999: PUSH2 0x29a3 0000299c: DUP10 0000299d: DUP10 0000299e: DUP10 0000299f: PUSH2 0x39a6 000029a2: JUMP 000029a3: JUMPDEST 000029a4: PUSH2 0x29ab 000029a7: PUSH2 0x3a48 000029aa: JUMP 000029ab: JUMPDEST 000029ac: PUSH1 0x95 000029ae: DUP7 000029af: SWAP1 000029b0: SSTORE 000029b1: DUP4 000029b2: ISZERO 000029b3: PUSH2 0x2a11 000029b6: JUMPI 000029b7: DUP5 000029b8: SLOAD 000029b9: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff 000029da: AND 000029db: DUP6 000029dc: SSTORE 000029dd: PUSH1 0x40 000029df: MLOAD 000029e0: PUSH1 0x01 000029e2: DUP2 000029e3: MSTORE 000029e4: PUSH32 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2 00002a05: SWAP1 00002a06: PUSH1 0x20 00002a08: ADD 00002a09: PUSH1 0x40 00002a0b: MLOAD 00002a0c: DUP1 00002a0d: SWAP2 00002a0e: SUB 00002a0f: SWAP1 00002a10: LOG1 00002a11: JUMPDEST 00002a12: POP 00002a13: POP 00002a14: POP 00002a15: POP 00002a16: POP 00002a17: POP 00002a18: POP 00002a19: POP 00002a1a: POP 00002a1b: JUMP 00002a1c: JUMPDEST 00002a1d: PUSH2 0x2a24 00002a20: PUSH2 0x2c01 00002a23: JUMP 00002a24: JUMPDEST 00002a25: PUSH1 0x9c 00002a27: DUP1 00002a28: SLOAD 00002a29: PUSH1 0x01 00002a2b: PUSH1 0x01 00002a2d: PUSH1 0xa0 00002a2f: SHL 00002a30: SUB 00002a31: DUP4 00002a32: DUP2 00002a33: AND 00002a34: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00002a55: DUP4 00002a56: AND 00002a57: DUP2 00002a58: OR 00002a59: SWAP1 00002a5a: SWAP4 00002a5b: SSTORE 00002a5c: PUSH1 0x40 00002a5e: MLOAD 00002a5f: SWAP2 00002a60: AND 00002a61: SWAP2 00002a62: SWAP1 00002a63: DUP3 00002a64: SWAP1 00002a65: PUSH32 0x5d16ad41baeb009cd23eb8f6c7cde5c2e0cd5acf4a33926ab488875c37c37f38 00002a86: SWAP1 00002a87: PUSH1 0x00 00002a89: SWAP1 00002a8a: LOG3 00002a8b: POP 00002a8c: POP 00002a8d: JUMP 00002a8e: JUMPDEST 00002a8f: PUSH2 0x2a96 00002a92: PUSH2 0x2f5b 00002a95: JUMP 00002a96: JUMPDEST 00002a97: PUSH2 0x2aa0 00002a9a: DUP3 00002a9b: DUP3 00002a9c: PUSH2 0x2fdc 00002a9f: JUMP 00002aa0: JUMPDEST 00002aa1: PUSH2 0x2ac9 00002aa4: PUSH1 0x01 00002aa6: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00 00002ac7: SSTORE 00002ac8: JUMP 00002ac9: JUMPDEST 00002aca: POP 00002acb: POP 00002acc: JUMP 00002acd: JUMPDEST 00002ace: PUSH1 0x00 00002ad0: DUP1 00002ad1: PUSH32 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00 00002af2: PUSH2 0x1edf 00002af5: JUMP 00002af6: JUMPDEST 00002af7: PUSH2 0x2afe 00002afa: PUSH2 0x2c01 00002afd: JUMP 00002afe: JUMPDEST 00002aff: PUSH32 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00 00002b20: DUP1 00002b21: SLOAD 00002b22: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00002b43: AND 00002b44: PUSH1 0x01 00002b46: PUSH1 0x01 00002b48: PUSH1 0xa0 00002b4a: SHL 00002b4b: SUB 00002b4c: DUP4 00002b4d: AND 00002b4e: SWAP1 00002b4f: DUP2 00002b50: OR 00002b51: DUP3 00002b52: SSTORE 00002b53: PUSH2 0x2b5a 00002b56: PUSH2 0x1eba 00002b59: JUMP 00002b5a: JUMPDEST 00002b5b: PUSH1 0x01 00002b5d: PUSH1 0x01 00002b5f: PUSH1 0xa0 00002b61: SHL 00002b62: SUB 00002b63: AND 00002b64: PUSH32 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700 00002b85: PUSH1 0x40 00002b87: MLOAD 00002b88: PUSH1 0x40 00002b8a: MLOAD 00002b8b: DUP1 00002b8c: SWAP2 00002b8d: SUB 00002b8e: SWAP1 00002b8f: LOG3 00002b90: POP 00002b91: POP 00002b92: JUMP 00002b93: JUMPDEST 00002b94: PUSH2 0x2b9b 00002b97: PUSH2 0x2c01 00002b9a: JUMP 00002b9b: JUMPDEST 00002b9c: PUSH1 0xa1 00002b9e: PUSH1 0x00 00002ba0: DUP4 00002ba1: DUP4 00002ba2: PUSH1 0x40 00002ba4: MLOAD 00002ba5: PUSH2 0x2baf 00002ba8: SWAP3 00002ba9: SWAP2 00002baa: SWAP1 00002bab: PUSH2 0x4f5b 00002bae: JUMP 00002baf: JUMPDEST 00002bb0: PUSH1 0x40 00002bb2: DUP1 00002bb3: MLOAD 00002bb4: SWAP2 00002bb5: DUP3 00002bb6: SWAP1 00002bb7: SUB 00002bb8: SWAP1 00002bb9: SWAP2 00002bba: KECCAK256 00002bbb: DUP3 00002bbc: MSTORE 00002bbd: PUSH1 0x20 00002bbf: DUP3 00002bc0: ADD 00002bc1: SWAP3 00002bc2: SWAP1 00002bc3: SWAP3 00002bc4: MSTORE 00002bc5: DUP2 00002bc6: ADD 00002bc7: PUSH1 0x00 00002bc9: KECCAK256 00002bca: DUP1 00002bcb: SLOAD 00002bcc: PUSH1 0xff 00002bce: NOT 00002bcf: AND 00002bd0: SWAP1 00002bd1: SSTORE 00002bd2: MLOAD 00002bd3: PUSH32 0x879f966987f4c630b5331c2485e6f1653598fbfe4c59652efe9dcceaaa651996 00002bf4: SWAP1 00002bf5: PUSH2 0x0d09 00002bf8: SWAP1 00002bf9: DUP5 00002bfa: SWAP1 00002bfb: DUP5 00002bfc: SWAP1 00002bfd: PUSH2 0x4f6b 00002c00: JUMP 00002c01: JUMPDEST 00002c02: CALLER 00002c03: PUSH2 0x2c0a 00002c06: PUSH2 0x1eba 00002c09: JUMP 00002c0a: JUMPDEST 00002c0b: PUSH1 0x01 00002c0d: PUSH1 0x01 00002c0f: PUSH1 0xa0 00002c11: SHL 00002c12: SUB 00002c13: AND 00002c14: EQ 00002c15: PUSH2 0x12a8 00002c18: JUMPI 00002c19: PUSH1 0x40 00002c1b: MLOAD 00002c1c: PUSH32 0x118cdaa700000000000000000000000000000000000000000000000000000000 00002c3d: DUP2 00002c3e: MSTORE 00002c3f: CALLER 00002c40: PUSH1 0x04 00002c42: DUP3 00002c43: ADD 00002c44: MSTORE 00002c45: PUSH1 0x24 00002c47: ADD 00002c48: PUSH2 0x0907 00002c4b: JUMP 00002c4c: JUMPDEST 00002c4d: PUSH1 0x00 00002c4f: DUP1 00002c50: SLOAD 00002c51: PUSH1 0x40 00002c53: MLOAD 00002c54: PUSH32 0xb02c43d000000000000000000000000000000000000000000000000000000000 00002c75: DUP2 00002c76: MSTORE 00002c77: PUSH1 0x04 00002c79: DUP2 00002c7a: ADD 00002c7b: DUP5 00002c7c: SWAP1 00002c7d: MSTORE 00002c7e: DUP3 00002c7f: SWAP2 00002c80: DUP3 00002c81: SWAP2 00002c82: DUP3 00002c83: SWAP2 00002c84: PUSH1 0x01 00002c86: PUSH1 0x01 00002c88: PUSH1 0xa0 00002c8a: SHL 00002c8b: SUB 00002c8c: AND 00002c8d: SWAP1 00002c8e: PUSH4 0xb02c43d0 00002c93: SWAP1 00002c94: PUSH1 0x24 00002c96: ADD 00002c97: PUSH1 0xe0 00002c99: PUSH1 0x40 00002c9b: MLOAD 00002c9c: DUP1 00002c9d: DUP4 00002c9e: SUB 00002c9f: DUP2 00002ca0: DUP7 00002ca1: GAS 00002ca2: STATICCALL 00002ca3: ISZERO 00002ca4: DUP1 00002ca5: ISZERO 00002ca6: PUSH2 0x2cb3 00002ca9: JUMPI 00002caa: RETURNDATASIZE 00002cab: PUSH1 0x00 00002cad: DUP1 00002cae: RETURNDATACOPY 00002caf: RETURNDATASIZE 00002cb0: PUSH1 0x00 00002cb2: REVERT 00002cb3: JUMPDEST 00002cb4: POP 00002cb5: POP 00002cb6: POP 00002cb7: POP 00002cb8: PUSH1 0x40 00002cba: MLOAD 00002cbb: RETURNDATASIZE 00002cbc: PUSH1 0x1f 00002cbe: NOT 00002cbf: PUSH1 0x1f 00002cc1: DUP3 00002cc2: ADD 00002cc3: AND 00002cc4: DUP3 00002cc5: ADD 00002cc6: DUP1 00002cc7: PUSH1 0x40 00002cc9: MSTORE 00002cca: POP 00002ccb: DUP2 00002ccc: ADD 00002ccd: SWAP1 00002cce: PUSH2 0x2cd7 00002cd1: SWAP2 00002cd2: SWAP1 00002cd3: PUSH2 0x5063 00002cd6: JUMP 00002cd7: JUMPDEST 00002cd8: SWAP1 00002cd9: POP 00002cda: DUP1 00002cdb: PUSH1 0x40 00002cdd: ADD 00002cde: MLOAD 00002cdf: PUSH4 0xffffffff 00002ce4: AND 00002ce5: PUSH1 0x00 00002ce7: SUB 00002ce8: PUSH2 0x2d4d 00002ceb: JUMPI 00002cec: PUSH1 0x40 00002cee: MLOAD 00002cef: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002d10: DUP2 00002d11: MSTORE 00002d12: PUSH1 0x20 00002d14: PUSH1 0x04 00002d16: DUP3 00002d17: ADD 00002d18: MSTORE 00002d19: PUSH1 0x17 00002d1b: PUSH1 0x24 00002d1d: DUP3 00002d1e: ADD 00002d1f: MSTORE 00002d20: PUSH32 0x4465706f736974206e6f7420696e697469616c697a6564000000000000000000 00002d41: PUSH1 0x44 00002d43: DUP3 00002d44: ADD 00002d45: MSTORE 00002d46: PUSH1 0x64 00002d48: ADD 00002d49: PUSH2 0x0907 00002d4c: JUMP 00002d4d: JUMPDEST 00002d4e: PUSH1 0x01 00002d50: SLOAD 00002d51: PUSH1 0x40 00002d53: MLOAD 00002d54: PUSH32 0x6c626aa400000000000000000000000000000000000000000000000000000000 00002d75: DUP2 00002d76: MSTORE 00002d77: PUSH1 0x04 00002d79: DUP2 00002d7a: ADD 00002d7b: DUP8 00002d7c: SWAP1 00002d7d: MSTORE 00002d7e: PUSH1 0x00 00002d80: SWAP2 00002d81: PUSH1 0x01 00002d83: PUSH1 0x01 00002d85: PUSH1 0xa0 00002d87: SHL 00002d88: SUB 00002d89: AND 00002d8a: SWAP1 00002d8b: PUSH4 0x6c626aa4 00002d90: SWAP1 00002d91: PUSH1 0x24 00002d93: ADD 00002d94: PUSH1 0x40 00002d96: DUP1 00002d97: MLOAD 00002d98: DUP1 00002d99: DUP4 00002d9a: SUB 00002d9b: DUP2 00002d9c: PUSH1 0x00 00002d9e: DUP8 00002d9f: GAS 00002da0: CALL 00002da1: ISZERO 00002da2: DUP1 00002da3: ISZERO 00002da4: PUSH2 0x2db1 00002da7: JUMPI 00002da8: RETURNDATASIZE 00002da9: PUSH1 0x00 00002dab: DUP1 00002dac: RETURNDATACOPY 00002dad: RETURNDATASIZE 00002dae: PUSH1 0x00 00002db0: REVERT 00002db1: JUMPDEST 00002db2: POP 00002db3: POP 00002db4: POP 00002db5: POP 00002db6: PUSH1 0x40 00002db8: MLOAD 00002db9: RETURNDATASIZE 00002dba: PUSH1 0x1f 00002dbc: NOT 00002dbd: PUSH1 0x1f 00002dbf: DUP3 00002dc0: ADD 00002dc1: AND 00002dc2: DUP3 00002dc3: ADD 00002dc4: DUP1 00002dc5: PUSH1 0x40 00002dc7: MSTORE 00002dc8: POP 00002dc9: DUP2 00002dca: ADD 00002dcb: SWAP1 00002dcc: PUSH2 0x2dd5 00002dcf: SWAP2 00002dd0: SWAP1 00002dd1: PUSH2 0x5117 00002dd4: JUMP 00002dd5: JUMPDEST 00002dd6: SWAP2 00002dd7: POP 00002dd8: POP 00002dd9: DUP2 00002dda: PUSH1 0xa0 00002ddc: ADD 00002ddd: MLOAD 00002dde: PUSH4 0xffffffff 00002de3: AND 00002de4: PUSH1 0x00 00002de6: EQ 00002de7: ISZERO 00002de8: DUP1 00002de9: PUSH2 0x2dfb 00002dec: JUMPI 00002ded: POP 00002dee: PUSH8 0xffffffffffffffff 00002df7: DUP2 00002df8: AND 00002df9: ISZERO 00002dfa: ISZERO 00002dfb: JUMPDEST 00002dfc: PUSH2 0x2e87 00002dff: JUMPI 00002e00: PUSH1 0x40 00002e02: MLOAD 00002e03: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00002e24: DUP2 00002e25: MSTORE 00002e26: PUSH1 0x20 00002e28: PUSH1 0x04 00002e2a: DUP3 00002e2b: ADD 00002e2c: MSTORE 00002e2d: PUSH1 0x23 00002e2f: PUSH1 0x24 00002e31: DUP3 00002e32: ADD 00002e33: MSTORE 00002e34: PUSH32 0x4465706f736974206e6f742066696e616c697a65642062792074686520627269 00002e55: PUSH1 0x44 00002e57: DUP3 00002e58: ADD 00002e59: MSTORE 00002e5a: PUSH32 0x6467650000000000000000000000000000000000000000000000000000000000 00002e7b: PUSH1 0x64 00002e7d: DUP3 00002e7e: ADD 00002e7f: MSTORE 00002e80: PUSH1 0x84 00002e82: ADD 00002e83: PUSH2 0x0907 00002e86: JUMP 00002e87: JUMPDEST 00002e88: PUSH5 0x02540be400 00002e8e: DUP3 00002e8f: PUSH1 0x20 00002e91: ADD 00002e92: MLOAD 00002e93: PUSH8 0xffffffffffffffff 00002e9c: AND 00002e9d: PUSH2 0x2ea6 00002ea0: SWAP2 00002ea1: SWAP1 00002ea2: PUSH2 0x4c44 00002ea5: JUMP 00002ea6: JUMPDEST 00002ea7: SWAP5 00002ea8: POP 00002ea9: PUSH2 0x2eba 00002eac: DUP3 00002ead: PUSH1 0x20 00002eaf: ADD 00002eb0: MLOAD 00002eb1: DUP4 00002eb2: PUSH1 0x80 00002eb4: ADD 00002eb5: MLOAD 00002eb6: PUSH2 0x3a60 00002eb9: JUMP 00002eba: JUMPDEST 00002ebb: SWAP4 00002ebc: POP 00002ebd: DUP2 00002ebe: PUSH1 0xc0 00002ec0: ADD 00002ec1: MLOAD 00002ec2: SWAP3 00002ec3: POP 00002ec4: POP 00002ec5: POP 00002ec6: SWAP2 00002ec7: SWAP4 00002ec8: SWAP1 00002ec9: SWAP3 00002eca: POP 00002ecb: JUMP 00002ecc: JUMPDEST 00002ecd: DUP2 00002ece: PUSH1 0x01 00002ed0: PUSH1 0x01 00002ed2: PUSH1 0xa0 00002ed4: SHL 00002ed5: SUB 00002ed6: AND 00002ed7: DUP4 00002ed8: PUSH1 0x01 00002eda: PUSH1 0x01 00002edc: PUSH1 0xa0 00002ede: SHL 00002edf: SUB 00002ee0: AND 00002ee1: PUSH1 0x95 00002ee3: PUSH1 0x00 00002ee5: DUP2 00002ee6: SLOAD 00002ee7: PUSH2 0x2eef 00002eea: SWAP1 00002eeb: PUSH2 0x4cb1 00002eee: JUMP 00002eef: JUMPDEST 00002ef0: SWAP2 00002ef1: DUP3 00002ef2: SWAP1 00002ef3: SSTORE 00002ef4: POP 00002ef5: PUSH1 0x40 00002ef7: MLOAD 00002ef8: DUP5 00002ef9: DUP2 00002efa: MSTORE 00002efb: PUSH32 0x75aa5616721471b8ab0c49ce59500cbad2b7ef1ad10e5eb9449c693c0a5c8fd1 00002f1c: SWAP1 00002f1d: PUSH1 0x20 00002f1f: ADD 00002f20: PUSH1 0x40 00002f22: MLOAD 00002f23: DUP1 00002f24: SWAP2 00002f25: SUB 00002f26: SWAP1 00002f27: LOG4 00002f28: POP 00002f29: POP 00002f2a: POP 00002f2b: JUMP 00002f2c: JUMPDEST 00002f2d: PUSH1 0x00 00002f2f: JUMPDEST 00002f30: DUP2 00002f31: ISZERO 00002f32: PUSH2 0x2f56 00002f35: JUMPI 00002f36: PUSH2 0x2f40 00002f39: PUSH1 0x01 00002f3b: DUP4 00002f3c: PUSH2 0x4e94 00002f3f: JUMP 00002f40: JUMPDEST 00002f41: SWAP1 00002f42: SWAP2 00002f43: AND 00002f44: SWAP1 00002f45: DUP1 00002f46: PUSH2 0x2f4e 00002f49: DUP2 00002f4a: PUSH2 0x5146 00002f4d: JUMP 00002f4e: JUMPDEST 00002f4f: SWAP2 00002f50: POP 00002f51: POP 00002f52: PUSH2 0x2f2f 00002f55: JUMP 00002f56: JUMPDEST 00002f57: SWAP2 00002f58: SWAP1 00002f59: POP 00002f5a: JUMP 00002f5b: JUMPDEST 00002f5c: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00 00002f7d: DUP1 00002f7e: SLOAD 00002f7f: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe 00002fa0: ADD 00002fa1: PUSH2 0x2fd6 00002fa4: JUMPI 00002fa5: PUSH1 0x40 00002fa7: MLOAD 00002fa8: PUSH32 0x3ee5aeb500000000000000000000000000000000000000000000000000000000 00002fc9: DUP2 00002fca: MSTORE 00002fcb: PUSH1 0x04 00002fcd: ADD 00002fce: PUSH1 0x40 00002fd0: MLOAD 00002fd1: DUP1 00002fd2: SWAP2 00002fd3: SUB 00002fd4: SWAP1 00002fd5: REVERT 00002fd6: JUMPDEST 00002fd7: PUSH1 0x02 00002fd9: SWAP1 00002fda: SSTORE 00002fdb: JUMP 00002fdc: JUMPDEST 00002fdd: PUSH1 0x01 00002fdf: PUSH1 0x01 00002fe1: PUSH1 0xa0 00002fe3: SHL 00002fe4: SUB 00002fe5: DUP2 00002fe6: AND 00002fe7: PUSH2 0x301c 00002fea: JUMPI 00002feb: PUSH1 0x40 00002fed: MLOAD 00002fee: PUSH32 0xb9c50bfb00000000000000000000000000000000000000000000000000000000 0000300f: DUP2 00003010: MSTORE 00003011: PUSH1 0x04 00003013: ADD 00003014: PUSH1 0x40 00003016: MLOAD 00003017: DUP1 00003018: SWAP2 00003019: SUB 0000301a: SWAP1 0000301b: REVERT 0000301c: JUMPDEST 0000301d: PUSH1 0x33 0000301f: SLOAD 00003020: DUP3 00003021: LT 00003022: ISZERO 00003023: PUSH2 0x3058 00003026: JUMPI 00003027: PUSH1 0x40 00003029: MLOAD 0000302a: PUSH32 0x0b84d72c00000000000000000000000000000000000000000000000000000000 0000304b: DUP2 0000304c: MSTORE 0000304d: PUSH1 0x04 0000304f: ADD 00003050: PUSH1 0x40 00003052: MLOAD 00003053: DUP1 00003054: SWAP2 00003055: SUB 00003056: SWAP1 00003057: REVERT 00003058: JUMPDEST 00003059: PUSH1 0x31 0000305b: SLOAD 0000305c: PUSH1 0x01 0000305e: PUSH1 0x01 00003060: PUSH1 0xa0 00003062: SHL 00003063: SUB 00003064: AND 00003065: PUSH2 0x306f 00003068: DUP3 00003069: DUP3 0000306a: DUP6 0000306b: PUSH2 0x2ecc 0000306e: JUMP 0000306f: JUMPDEST 00003070: PUSH2 0x0f58 00003073: PUSH1 0x01 00003075: PUSH1 0x01 00003077: PUSH1 0xa0 00003079: SHL 0000307a: SUB 0000307b: DUP3 0000307c: AND 0000307d: CALLER 0000307e: ADDRESS 0000307f: DUP7 00003080: PUSH2 0x30aa 00003083: JUMP 00003084: JUMPDEST 00003085: PUSH1 0x01 00003087: PUSH32 0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00 000030a8: SSTORE 000030a9: JUMP 000030aa: JUMPDEST 000030ab: PUSH1 0x40 000030ad: MLOAD 000030ae: PUSH1 0x01 000030b0: PUSH1 0x01 000030b2: PUSH1 0xa0 000030b4: SHL 000030b5: SUB 000030b6: DUP5 000030b7: DUP2 000030b8: AND 000030b9: PUSH1 0x24 000030bb: DUP4 000030bc: ADD 000030bd: MSTORE 000030be: DUP4 000030bf: DUP2 000030c0: AND 000030c1: PUSH1 0x44 000030c3: DUP4 000030c4: ADD 000030c5: MSTORE 000030c6: PUSH1 0x64 000030c8: DUP3 000030c9: ADD 000030ca: DUP4 000030cb: SWAP1 000030cc: MSTORE 000030cd: PUSH2 0x3126 000030d0: SWAP2 000030d1: DUP7 000030d2: SWAP2 000030d3: DUP3 000030d4: AND 000030d5: SWAP1 000030d6: PUSH4 0x23b872dd 000030db: SWAP1 000030dc: PUSH1 0x84 000030de: ADD 000030df: JUMPDEST 000030e0: PUSH1 0x40 000030e2: MLOAD 000030e3: PUSH1 0x20 000030e5: DUP2 000030e6: DUP4 000030e7: SUB 000030e8: SUB 000030e9: DUP2 000030ea: MSTORE 000030eb: SWAP1 000030ec: PUSH1 0x40 000030ee: MSTORE 000030ef: SWAP2 000030f0: POP 000030f1: PUSH1 0xe0 000030f3: SHL 000030f4: PUSH1 0x20 000030f6: DUP3 000030f7: ADD 000030f8: DUP1 000030f9: MLOAD 000030fa: PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00003117: DUP4 00003118: DUP2 00003119: DUP4 0000311a: AND 0000311b: OR 0000311c: DUP4 0000311d: MSTORE 0000311e: POP 0000311f: POP 00003120: POP 00003121: POP 00003122: PUSH2 0x3be3 00003125: JUMP 00003126: JUMPDEST 00003127: POP 00003128: POP 00003129: POP 0000312a: POP 0000312b: JUMP 0000312c: JUMPDEST 0000312d: PUSH1 0x01 0000312f: SLOAD 00003130: PUSH1 0x00 00003132: SWAP1 00003133: DUP2 00003134: SWAP1 00003135: PUSH1 0x01 00003137: PUSH1 0x01 00003139: PUSH1 0xa0 0000313b: SHL 0000313c: SUB 0000313d: AND 0000313e: PUSH2 0x314d 00003141: PUSH1 0xc0 00003143: DUP7 00003144: ADD 00003145: PUSH1 0xa0 00003147: DUP8 00003148: ADD 00003149: PUSH2 0x4567 0000314c: JUMP 0000314d: JUMPDEST 0000314e: PUSH1 0x01 00003150: PUSH1 0x01 00003152: PUSH1 0xa0 00003154: SHL 00003155: SUB 00003156: AND 00003157: EQ 00003158: PUSH2 0x31bd 0000315b: JUMPI 0000315c: PUSH1 0x40 0000315e: MLOAD 0000315f: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003180: DUP2 00003181: MSTORE 00003182: PUSH1 0x20 00003184: PUSH1 0x04 00003186: DUP3 00003187: ADD 00003188: MSTORE 00003189: PUSH1 0x16 0000318b: PUSH1 0x24 0000318d: DUP3 0000318e: ADD 0000318f: MSTORE 00003190: PUSH32 0x5661756c742061646472657373206d69736d6174636800000000000000000000 000031b1: PUSH1 0x44 000031b3: DUP3 000031b4: ADD 000031b5: MSTORE 000031b6: PUSH1 0x64 000031b8: ADD 000031b9: PUSH2 0x0907 000031bc: JUMP 000031bd: JUMPDEST 000031be: PUSH2 0x31db 000031c1: PUSH2 0x31c9 000031c4: DUP7 000031c5: PUSH2 0x3c5f 000031c8: JUMP 000031c9: JUMPDEST 000031ca: PUSH2 0x31d6 000031cd: PUSH1 0x20 000031cf: DUP8 000031d0: ADD 000031d1: DUP8 000031d2: PUSH2 0x5165 000031d5: JUMP 000031d6: JUMPDEST 000031d7: PUSH2 0x3cc4 000031da: JUMP 000031db: JUMPDEST 000031dc: PUSH1 0x00 000031de: SLOAD 000031df: PUSH1 0x40 000031e1: MLOAD 000031e2: PUSH32 0x86f0143900000000000000000000000000000000000000000000000000000000 00003203: DUP2 00003204: MSTORE 00003205: SWAP2 00003206: SWAP4 00003207: POP 00003208: PUSH1 0x01 0000320a: PUSH1 0x01 0000320c: PUSH1 0xa0 0000320e: SHL 0000320f: SUB 00003210: AND 00003211: SWAP1 00003212: PUSH4 0x86f01439 00003217: SWAP1 00003218: PUSH2 0x3229 0000321b: SWAP1 0000321c: DUP9 0000321d: SWAP1 0000321e: DUP9 0000321f: SWAP1 00003220: DUP9 00003221: SWAP1 00003222: PUSH1 0x04 00003224: ADD 00003225: PUSH2 0x51b2 00003228: JUMP 00003229: JUMPDEST 0000322a: PUSH1 0x00 0000322c: PUSH1 0x40 0000322e: MLOAD 0000322f: DUP1 00003230: DUP4 00003231: SUB 00003232: DUP2 00003233: PUSH1 0x00 00003235: DUP8 00003236: DUP1 00003237: EXTCODESIZE 00003238: ISZERO 00003239: DUP1 0000323a: ISZERO 0000323b: PUSH2 0x3243 0000323e: JUMPI 0000323f: PUSH1 0x00 00003241: DUP1 00003242: REVERT 00003243: JUMPDEST 00003244: POP 00003245: GAS 00003246: CALL 00003247: ISZERO 00003248: DUP1 00003249: ISZERO 0000324a: PUSH2 0x3257 0000324d: JUMPI 0000324e: RETURNDATASIZE 0000324f: PUSH1 0x00 00003251: DUP1 00003252: RETURNDATACOPY 00003253: RETURNDATASIZE 00003254: PUSH1 0x00 00003256: REVERT 00003257: JUMPDEST 00003258: POP 00003259: POP 0000325a: PUSH1 0x00 0000325c: SLOAD 0000325d: PUSH1 0x40 0000325f: MLOAD 00003260: PUSH32 0xb02c43d000000000000000000000000000000000000000000000000000000000 00003281: DUP2 00003282: MSTORE 00003283: PUSH1 0x04 00003285: DUP2 00003286: ADD 00003287: DUP7 00003288: SWAP1 00003289: MSTORE 0000328a: PUSH5 0x02540be400 00003290: SWAP4 00003291: POP 00003292: PUSH1 0x01 00003294: PUSH1 0x01 00003296: PUSH1 0xa0 00003298: SHL 00003299: SUB 0000329a: SWAP1 0000329b: SWAP2 0000329c: AND 0000329d: SWAP2 0000329e: POP 0000329f: PUSH4 0xb02c43d0 000032a4: SWAP1 000032a5: PUSH1 0x24 000032a7: ADD 000032a8: PUSH1 0xe0 000032aa: PUSH1 0x40 000032ac: MLOAD 000032ad: DUP1 000032ae: DUP4 000032af: SUB 000032b0: DUP2 000032b1: DUP7 000032b2: GAS 000032b3: STATICCALL 000032b4: ISZERO 000032b5: DUP1 000032b6: ISZERO 000032b7: PUSH2 0x32c4 000032ba: JUMPI 000032bb: RETURNDATASIZE 000032bc: PUSH1 0x00 000032be: DUP1 000032bf: RETURNDATACOPY 000032c0: RETURNDATASIZE 000032c1: PUSH1 0x00 000032c3: REVERT 000032c4: JUMPDEST 000032c5: POP 000032c6: POP 000032c7: POP 000032c8: POP 000032c9: PUSH1 0x40 000032cb: MLOAD 000032cc: RETURNDATASIZE 000032cd: PUSH1 0x1f 000032cf: NOT 000032d0: PUSH1 0x1f 000032d2: DUP3 000032d3: ADD 000032d4: AND 000032d5: DUP3 000032d6: ADD 000032d7: DUP1 000032d8: PUSH1 0x40 000032da: MSTORE 000032db: POP 000032dc: DUP2 000032dd: ADD 000032de: SWAP1 000032df: PUSH2 0x32e8 000032e2: SWAP2 000032e3: SWAP1 000032e4: PUSH2 0x5063 000032e7: JUMP 000032e8: JUMPDEST 000032e9: PUSH1 0x20 000032eb: ADD 000032ec: MLOAD 000032ed: PUSH8 0xffffffffffffffff 000032f6: AND 000032f7: PUSH2 0x3300 000032fa: SWAP2 000032fb: SWAP1 000032fc: PUSH2 0x4c44 000032ff: JUMP 00003300: JUMPDEST 00003301: SWAP1 00003302: POP 00003303: SWAP4 00003304: POP 00003305: SWAP4 00003306: SWAP2 00003307: POP 00003308: POP 00003309: JUMP 0000330a: JUMPDEST 0000330b: PUSH32 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00 0000332c: DUP1 0000332d: SLOAD 0000332e: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 0000334f: AND 00003350: DUP2 00003351: SSTORE 00003352: PUSH2 0x2ac9 00003355: DUP3 00003356: PUSH2 0x3d26 00003359: JUMP 0000335a: JUMPDEST 0000335b: PUSH1 0x9c 0000335d: SLOAD 0000335e: PUSH1 0x00 00003360: SWAP1 00003361: PUSH1 0x01 00003363: PUSH1 0x01 00003365: PUSH1 0xa0 00003367: SHL 00003368: SUB 00003369: AND 0000336a: DUP1 0000336b: PUSH2 0x3377 0000336e: JUMPI 0000336f: DUP4 00003370: SWAP2 00003371: POP 00003372: POP 00003373: PUSH2 0x34aa 00003376: JUMP 00003377: JUMPDEST 00003378: DUP3 00003379: MLOAD 0000337a: PUSH1 0x20 0000337c: DUP1 0000337d: DUP6 0000337e: ADD 0000337f: SWAP2 00003380: SWAP1 00003381: SWAP2 00003382: KECCAK256 00003383: PUSH1 0x00 00003385: SWAP1 00003386: DUP2 00003387: MSTORE 00003388: PUSH1 0xa1 0000338a: SWAP1 0000338b: SWAP2 0000338c: MSTORE 0000338d: PUSH1 0x40 0000338f: DUP2 00003390: KECCAK256 00003391: SLOAD 00003392: PUSH1 0xff 00003394: AND 00003395: PUSH2 0x33a0 00003398: JUMPI 00003399: PUSH1 0x9b 0000339b: SLOAD 0000339c: PUSH2 0x33a3 0000339f: JUMP 000033a0: JUMPDEST 000033a1: PUSH1 0x00 000033a3: JUMPDEST 000033a4: PUSH1 0x01 000033a6: PUSH1 0x01 000033a8: PUSH1 0xa0 000033aa: SHL 000033ab: SUB 000033ac: DUP8 000033ad: AND 000033ae: PUSH1 0x00 000033b0: SWAP1 000033b1: DUP2 000033b2: MSTORE 000033b3: PUSH1 0xa0 000033b5: PUSH1 0x20 000033b7: MSTORE 000033b8: PUSH1 0x40 000033ba: DUP2 000033bb: KECCAK256 000033bc: SLOAD 000033bd: SWAP2 000033be: SWAP3 000033bf: POP 000033c0: SWAP1 000033c1: PUSH2 0x2710 000033c4: PUSH2 0x33cd 000033c7: DUP5 000033c8: DUP10 000033c9: PUSH2 0x4c44 000033cc: JUMP 000033cd: JUMPDEST 000033ce: PUSH2 0x33d7 000033d1: SWAP2 000033d2: SWAP1 000033d3: PUSH2 0x4c8a 000033d6: JUMP 000033d7: JUMPDEST 000033d8: PUSH2 0x33e1 000033db: SWAP2 000033dc: SWAP1 000033dd: PUSH2 0x4c9e 000033e0: JUMP 000033e1: JUMPDEST 000033e2: SWAP1 000033e3: POP 000033e4: DUP1 000033e5: PUSH1 0x00 000033e7: SUB 000033e8: PUSH2 0x33f6 000033eb: JUMPI 000033ec: DUP6 000033ed: SWAP4 000033ee: POP 000033ef: POP 000033f0: POP 000033f1: POP 000033f2: PUSH2 0x34aa 000033f5: JUMP 000033f6: JUMPDEST 000033f7: DUP6 000033f8: DUP2 000033f9: LT 000033fa: PUSH2 0x3439 000033fd: JUMPI 000033fe: PUSH1 0x40 00003400: MLOAD 00003401: PUSH32 0x2fb193ac00000000000000000000000000000000000000000000000000000000 00003422: DUP2 00003423: MSTORE 00003424: PUSH1 0x04 00003426: DUP2 00003427: ADD 00003428: DUP8 00003429: SWAP1 0000342a: MSTORE 0000342b: PUSH1 0x24 0000342d: DUP2 0000342e: ADD 0000342f: DUP3 00003430: SWAP1 00003431: MSTORE 00003432: PUSH1 0x44 00003434: ADD 00003435: PUSH2 0x0907 00003438: JUMP 00003439: JUMPDEST 0000343a: DUP3 0000343b: PUSH1 0x01 0000343d: PUSH1 0x01 0000343f: PUSH1 0xa0 00003441: SHL 00003442: SUB 00003443: AND 00003444: DUP8 00003445: PUSH1 0x01 00003447: PUSH1 0x01 00003449: PUSH1 0xa0 0000344b: SHL 0000344c: SUB 0000344d: AND 0000344e: PUSH32 0xe55980a387d8b6f11ede459bd7e71fe1e0dd649c3b4caa62db722cdcf386805a 0000346f: DUP4 00003470: PUSH1 0x40 00003472: MLOAD 00003473: PUSH2 0x347e 00003476: SWAP2 00003477: DUP2 00003478: MSTORE 00003479: PUSH1 0x20 0000347b: ADD 0000347c: SWAP1 0000347d: JUMP 0000347e: JUMPDEST 0000347f: PUSH1 0x40 00003481: MLOAD 00003482: DUP1 00003483: SWAP2 00003484: SUB 00003485: SWAP1 00003486: LOG3 00003487: PUSH2 0x349a 0000348a: PUSH1 0x01 0000348c: PUSH1 0x01 0000348e: PUSH1 0xa0 00003490: SHL 00003491: SUB 00003492: DUP9 00003493: AND 00003494: DUP5 00003495: DUP4 00003496: PUSH2 0x3daf 00003499: JUMP 0000349a: JUMPDEST 0000349b: PUSH2 0x34a4 0000349e: DUP2 0000349f: DUP8 000034a0: PUSH2 0x4e94 000034a3: JUMP 000034a4: JUMPDEST 000034a5: SWAP4 000034a6: POP 000034a7: POP 000034a8: POP 000034a9: POP 000034aa: JUMPDEST 000034ab: SWAP4 000034ac: SWAP3 000034ad: POP 000034ae: POP 000034af: POP 000034b0: JUMP 000034b1: JUMPDEST 000034b2: PUSH1 0x34 000034b4: SLOAD 000034b5: DUP5 000034b6: MLOAD 000034b7: PUSH1 0x20 000034b9: DUP1 000034ba: DUP8 000034bb: ADD 000034bc: MLOAD 000034bd: PUSH1 0x40 000034bf: DUP1 000034c0: DUP10 000034c1: ADD 000034c2: MLOAD 000034c3: SWAP1 000034c4: MLOAD 000034c5: PUSH1 0x00 000034c7: SWAP6 000034c8: PUSH2 0x34e7 000034cb: SWAP6 000034cc: PUSH1 0x01 000034ce: PUSH1 0x01 000034d0: PUSH1 0xa0 000034d2: SHL 000034d3: SUB 000034d4: SWAP1 000034d5: SWAP2 000034d6: AND 000034d7: SWAP5 000034d8: DUP13 000034d9: SWAP5 000034da: SWAP2 000034db: SWAP4 000034dc: SWAP2 000034dd: SWAP3 000034de: DUP12 000034df: SWAP2 000034e0: DUP12 000034e1: SWAP2 000034e2: ADD 000034e3: PUSH2 0x536d 000034e6: JUMP 000034e7: JUMPDEST 000034e8: PUSH1 0x40 000034ea: DUP1 000034eb: MLOAD 000034ec: PUSH1 0x1f 000034ee: NOT 000034ef: DUP2 000034f0: DUP5 000034f1: SUB 000034f2: ADD 000034f3: DUP2 000034f4: MSTORE 000034f5: SWAP1 000034f6: DUP3 000034f7: SWAP1 000034f8: MSTORE 000034f9: PUSH1 0x31 000034fb: SLOAD 000034fc: PUSH1 0x01 000034fe: SLOAD 000034ff: PUSH32 0xcae9ca5100000000000000000000000000000000000000000000000000000000 00003520: DUP5 00003521: MSTORE 00003522: SWAP2 00003523: SWAP4 00003524: POP 00003525: PUSH1 0x01 00003527: PUSH1 0x01 00003529: PUSH1 0xa0 0000352b: SHL 0000352c: SUB 0000352d: SWAP1 0000352e: DUP2 0000352f: AND 00003530: SWAP3 00003531: PUSH4 0xcae9ca51 00003536: SWAP3 00003537: PUSH2 0x3548 0000353a: SWAP3 0000353b: AND 0000353c: SWAP1 0000353d: DUP7 0000353e: SWAP1 0000353f: DUP7 00003540: SWAP1 00003541: PUSH1 0x04 00003543: ADD 00003544: PUSH2 0x5437 00003547: JUMP 00003548: JUMPDEST 00003549: PUSH1 0x20 0000354b: PUSH1 0x40 0000354d: MLOAD 0000354e: DUP1 0000354f: DUP4 00003550: SUB 00003551: DUP2 00003552: PUSH1 0x00 00003554: DUP8 00003555: GAS 00003556: CALL 00003557: ISZERO 00003558: DUP1 00003559: ISZERO 0000355a: PUSH2 0x3567 0000355d: JUMPI 0000355e: RETURNDATASIZE 0000355f: PUSH1 0x00 00003561: DUP1 00003562: RETURNDATACOPY 00003563: RETURNDATASIZE 00003564: PUSH1 0x00 00003566: REVERT 00003567: JUMPDEST 00003568: POP 00003569: POP 0000356a: POP 0000356b: POP 0000356c: PUSH1 0x40 0000356e: MLOAD 0000356f: RETURNDATASIZE 00003570: PUSH1 0x1f 00003572: NOT 00003573: PUSH1 0x1f 00003575: DUP3 00003576: ADD 00003577: AND 00003578: DUP3 00003579: ADD 0000357a: DUP1 0000357b: PUSH1 0x40 0000357d: MSTORE 0000357e: POP 0000357f: DUP2 00003580: ADD 00003581: SWAP1 00003582: PUSH2 0x358b 00003585: SWAP2 00003586: SWAP1 00003587: PUSH2 0x5468 0000358a: JUMP 0000358b: JUMPDEST 0000358c: PUSH2 0x0ac6 0000358f: JUMPI 00003590: PUSH1 0x40 00003592: MLOAD 00003593: PUSH32 0x6c85d7be00000000000000000000000000000000000000000000000000000000 000035b4: DUP2 000035b5: MSTORE 000035b6: PUSH1 0x04 000035b8: ADD 000035b9: PUSH1 0x40 000035bb: MLOAD 000035bc: DUP1 000035bd: SWAP2 000035be: SUB 000035bf: SWAP1 000035c0: REVERT 000035c1: JUMPDEST 000035c2: PUSH1 0x60 000035c4: PUSH1 0x00 000035c6: DUP5 000035c7: DUP5 000035c8: DUP2 000035c9: MLOAD 000035ca: DUP2 000035cb: LT 000035cc: PUSH2 0x35d7 000035cf: JUMPI 000035d0: PUSH2 0x35d7 000035d3: PUSH2 0x4f98 000035d6: JUMP 000035d7: JUMPDEST 000035d8: ADD 000035d9: PUSH1 0x20 000035db: ADD 000035dc: MLOAD 000035dd: PUSH1 0xf8 000035df: SHR 000035e0: SWAP1 000035e1: POP 000035e2: DUP3 000035e3: PUSH2 0x35ed 000035e6: DUP3 000035e7: PUSH1 0x01 000035e9: PUSH2 0x548a 000035ec: JUMP 000035ed: JUMPDEST 000035ee: PUSH1 0xff 000035f0: AND 000035f1: EQ 000035f2: PUSH2 0x360b 000035f5: JUMPI 000035f6: POP 000035f7: POP 000035f8: PUSH1 0x40 000035fa: DUP1 000035fb: MLOAD 000035fc: PUSH1 0x20 000035fe: DUP2 000035ff: ADD 00003600: SWAP1 00003601: SWAP2 00003602: MSTORE 00003603: PUSH1 0x00 00003605: DUP2 00003606: MSTORE 00003607: PUSH2 0x34aa 0000360a: JUMP 0000360b: JUMPDEST 0000360c: DUP5 0000360d: PUSH2 0x3617 00003610: DUP6 00003611: PUSH1 0x01 00003613: PUSH2 0x4c9e 00003616: JUMP 00003617: JUMPDEST 00003618: DUP2 00003619: MLOAD 0000361a: DUP2 0000361b: LT 0000361c: PUSH2 0x3627 0000361f: JUMPI 00003620: PUSH2 0x3627 00003623: PUSH2 0x4f98 00003626: JUMP 00003627: JUMPDEST 00003628: ADD 00003629: PUSH1 0x20 0000362b: ADD 0000362c: MLOAD 0000362d: PUSH1 0xf8 0000362f: SHR 00003630: PUSH1 0x00 00003632: SUB 00003633: PUSH2 0x36e6 00003636: JUMPI 00003637: PUSH1 0x02 00003639: DUP2 0000363a: PUSH1 0xff 0000363c: AND 0000363d: LT 0000363e: ISZERO 0000363f: PUSH2 0x3658 00003642: JUMPI 00003643: POP 00003644: POP 00003645: PUSH1 0x40 00003647: DUP1 00003648: MLOAD 00003649: PUSH1 0x20 0000364b: DUP2 0000364c: ADD 0000364d: SWAP1 0000364e: SWAP2 0000364f: MSTORE 00003650: PUSH1 0x00 00003652: DUP2 00003653: MSTORE 00003654: PUSH2 0x34aa 00003657: JUMP 00003658: JUMPDEST 00003659: PUSH1 0x00 0000365b: DUP6 0000365c: PUSH2 0x3666 0000365f: DUP7 00003660: PUSH1 0x02 00003662: PUSH2 0x4c9e 00003665: JUMP 00003666: JUMPDEST 00003667: DUP2 00003668: MLOAD 00003669: DUP2 0000366a: LT 0000366b: PUSH2 0x3676 0000366e: JUMPI 0000366f: PUSH2 0x3676 00003672: PUSH2 0x4f98 00003675: JUMP 00003676: JUMPDEST 00003677: ADD 00003678: PUSH1 0x20 0000367a: ADD 0000367b: MLOAD 0000367c: PUSH1 0xf8 0000367e: SHR 0000367f: SWAP1 00003680: POP 00003681: PUSH2 0x368b 00003684: PUSH1 0x02 00003686: DUP4 00003687: PUSH2 0x4f7f 0000368a: JUMP 0000368b: JUMPDEST 0000368c: PUSH1 0xff 0000368e: AND 0000368f: DUP2 00003690: EQ 00003691: ISZERO 00003692: DUP1 00003693: PUSH2 0x36a9 00003696: JUMPI 00003697: POP 00003698: DUP1 00003699: PUSH1 0x20 0000369b: EQ 0000369c: ISZERO 0000369d: DUP1 0000369e: ISZERO 0000369f: PUSH2 0x36a9 000036a2: JUMPI 000036a3: POP 000036a4: DUP1 000036a5: PUSH1 0x14 000036a7: EQ 000036a8: ISZERO 000036a9: JUMPDEST 000036aa: ISZERO 000036ab: PUSH2 0x36c7 000036ae: JUMPI 000036af: PUSH1 0x40 000036b1: MLOAD 000036b2: DUP1 000036b3: PUSH1 0x20 000036b5: ADD 000036b6: PUSH1 0x40 000036b8: MSTORE 000036b9: DUP1 000036ba: PUSH1 0x00 000036bc: DUP2 000036bd: MSTORE 000036be: POP 000036bf: SWAP3 000036c0: POP 000036c1: POP 000036c2: POP 000036c3: PUSH2 0x34aa 000036c6: JUMP 000036c7: JUMPDEST 000036c8: PUSH2 0x36dd 000036cb: PUSH2 0x36d5 000036ce: DUP7 000036cf: PUSH1 0x03 000036d1: PUSH2 0x4c9e 000036d4: JUMP 000036d5: JUMPDEST 000036d6: DUP8 000036d7: SWAP1 000036d8: DUP4 000036d9: PUSH2 0x3de0 000036dc: JUMP 000036dd: JUMPDEST 000036de: SWAP3 000036df: POP 000036e0: POP 000036e1: POP 000036e2: PUSH2 0x34aa 000036e5: JUMP 000036e6: JUMPDEST 000036e7: PUSH1 0x00 000036e9: PUSH2 0x36f2 000036ec: DUP7 000036ed: DUP7 000036ee: PUSH2 0x3ec7 000036f1: JUMP 000036f2: JUMPDEST 000036f3: SWAP1 000036f4: POP 000036f5: PUSH32 0xffffff0000000000000000000000000000000000000000000000000000000000 00003716: DUP2 00003717: AND 00003718: PUSH32 0x1976a90000000000000000000000000000000000000000000000000000000000 00003739: SUB 0000373a: PUSH2 0x3806 0000373d: JUMPI 0000373e: DUP6 0000373f: PUSH2 0x3749 00003742: DUP7 00003743: PUSH1 0x03 00003745: PUSH2 0x4c9e 00003748: JUMP 00003749: JUMPDEST 0000374a: DUP2 0000374b: MLOAD 0000374c: DUP2 0000374d: LT 0000374e: PUSH2 0x3759 00003751: JUMPI 00003752: PUSH2 0x3759 00003755: PUSH2 0x4f98 00003758: JUMP 00003759: JUMPDEST 0000375a: PUSH1 0x20 0000375c: SWAP2 0000375d: ADD 0000375e: ADD 0000375f: MLOAD 00003760: PUSH1 0xf8 00003762: SHR 00003763: PUSH1 0x14 00003765: EQ 00003766: ISZERO 00003767: DUP1 00003768: PUSH2 0x37d1 0000376b: JUMPI 0000376c: POP 0000376d: PUSH2 0x378c 00003770: PUSH1 0x02 00003772: PUSH2 0x377b 00003775: DUP7 00003776: DUP9 00003777: PUSH2 0x4c9e 0000377a: JUMP 0000377b: JUMPDEST 0000377c: PUSH2 0x3785 0000377f: SWAP2 00003780: SWAP1 00003781: PUSH2 0x4e94 00003784: JUMP 00003785: JUMPDEST 00003786: DUP8 00003787: SWAP1 00003788: PUSH2 0x3ec7 0000378b: JUMP 0000378c: JUMPDEST 0000378d: PUSH30 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 000037ac: NOT 000037ad: AND 000037ae: PUSH32 0x88ac000000000000000000000000000000000000000000000000000000000000 000037cf: EQ 000037d0: ISZERO 000037d1: JUMPDEST 000037d2: ISZERO 000037d3: PUSH2 0x37ef 000037d6: JUMPI 000037d7: PUSH1 0x40 000037d9: MLOAD 000037da: DUP1 000037db: PUSH1 0x20 000037dd: ADD 000037de: PUSH1 0x40 000037e0: MSTORE 000037e1: DUP1 000037e2: PUSH1 0x00 000037e4: DUP2 000037e5: MSTORE 000037e6: POP 000037e7: SWAP3 000037e8: POP 000037e9: POP 000037ea: POP 000037eb: PUSH2 0x34aa 000037ee: JUMP 000037ef: JUMPDEST 000037f0: PUSH2 0x36dd 000037f3: PUSH2 0x37fd 000037f6: DUP7 000037f7: PUSH1 0x04 000037f9: PUSH2 0x4c9e 000037fc: JUMP 000037fd: JUMPDEST 000037fe: DUP8 000037ff: SWAP1 00003800: PUSH1 0x14 00003802: PUSH2 0x3de0 00003805: JUMP 00003806: JUMPDEST 00003807: PUSH32 0xffffff0000000000000000000000000000000000000000000000000000000000 00003828: DUP2 00003829: AND 0000382a: PUSH32 0x17a9140000000000000000000000000000000000000000000000000000000000 0000384b: SUB 0000384c: PUSH2 0x38ad 0000384f: JUMPI 00003850: DUP6 00003851: PUSH1 0x01 00003853: PUSH2 0x385c 00003856: DUP7 00003857: DUP9 00003858: PUSH2 0x4c9e 0000385b: JUMP 0000385c: JUMPDEST 0000385d: PUSH2 0x3866 00003860: SWAP2 00003861: SWAP1 00003862: PUSH2 0x4e94 00003865: JUMP 00003866: JUMPDEST 00003867: DUP2 00003868: MLOAD 00003869: DUP2 0000386a: LT 0000386b: PUSH2 0x3876 0000386e: JUMPI 0000386f: PUSH2 0x3876 00003872: PUSH2 0x4f98 00003875: JUMP 00003876: JUMPDEST 00003877: PUSH1 0x20 00003879: SWAP2 0000387a: ADD 0000387b: ADD 0000387c: MLOAD 0000387d: PUSH1 0xf8 0000387f: SHR 00003880: PUSH1 0x87 00003882: EQ 00003883: PUSH2 0x389f 00003886: JUMPI 00003887: PUSH1 0x40 00003889: MLOAD 0000388a: DUP1 0000388b: PUSH1 0x20 0000388d: ADD 0000388e: PUSH1 0x40 00003890: MSTORE 00003891: DUP1 00003892: PUSH1 0x00 00003894: DUP2 00003895: MSTORE 00003896: POP 00003897: SWAP3 00003898: POP 00003899: POP 0000389a: POP 0000389b: PUSH2 0x34aa 0000389e: JUMP 0000389f: JUMPDEST 000038a0: PUSH2 0x36dd 000038a3: PUSH2 0x37fd 000038a6: DUP7 000038a7: PUSH1 0x03 000038a9: PUSH2 0x4c9e 000038ac: JUMP 000038ad: JUMPDEST 000038ae: POP 000038af: POP 000038b0: POP 000038b1: PUSH1 0x40 000038b3: DUP1 000038b4: MLOAD 000038b5: PUSH1 0x20 000038b7: DUP2 000038b8: ADD 000038b9: SWAP1 000038ba: SWAP2 000038bb: MSTORE 000038bc: PUSH1 0x00 000038be: DUP2 000038bf: MSTORE 000038c0: SWAP4 000038c1: SWAP3 000038c2: POP 000038c3: POP 000038c4: POP 000038c5: JUMP 000038c6: JUMPDEST 000038c7: PUSH1 0x80 000038c9: DUP2 000038ca: ADD 000038cb: MLOAD 000038cc: PUSH1 0xff 000038ce: AND 000038cf: PUSH2 0x391c 000038d2: JUMPI 000038d3: PUSH1 0x00 000038d5: DUP2 000038d6: PUSH1 0x20 000038d8: ADD 000038d9: MLOAD 000038da: PUSH2 0x38e2 000038dd: SWAP1 000038de: PUSH2 0x4ea7 000038e1: JUMP 000038e2: JUMPDEST 000038e3: PUSH1 0x60 000038e5: SHR 000038e6: SWAP1 000038e7: POP 000038e8: PUSH1 0x00 000038ea: PUSH2 0x3900 000038ed: DUP4 000038ee: PUSH1 0x40 000038f0: ADD 000038f1: MLOAD 000038f2: DUP5 000038f3: PUSH1 0x60 000038f5: ADD 000038f6: MLOAD 000038f7: DUP6 000038f8: PUSH1 0x20 000038fa: ADD 000038fb: MLOAD 000038fc: PUSH2 0x335a 000038ff: JUMP 00003900: JUMPDEST 00003901: PUSH1 0x40 00003903: DUP5 00003904: ADD 00003905: MLOAD 00003906: SWAP1 00003907: SWAP2 00003908: POP 00003909: PUSH2 0x0f58 0000390c: SWAP1 0000390d: PUSH1 0x01 0000390f: PUSH1 0x01 00003911: PUSH1 0xa0 00003913: SHL 00003914: SUB 00003915: AND 00003916: DUP4 00003917: DUP4 00003918: PUSH2 0x3daf 0000391b: JUMP 0000391c: JUMPDEST 0000391d: PUSH1 0x01 0000391f: PUSH1 0xff 00003921: AND 00003922: DUP2 00003923: PUSH1 0x80 00003925: ADD 00003926: MLOAD 00003927: PUSH1 0xff 00003929: AND 0000392a: SUB 0000392b: PUSH2 0x16c7 0000392e: JUMPI 0000392f: PUSH1 0x01 00003931: PUSH1 0x9a 00003933: PUSH1 0x00 00003935: DUP4 00003936: PUSH1 0x40 00003938: MLOAD 00003939: PUSH1 0x20 0000393b: ADD 0000393c: PUSH2 0x3945 0000393f: SWAP2 00003940: SWAP1 00003941: PUSH2 0x54a3 00003944: JUMP 00003945: JUMPDEST 00003946: PUSH1 0x40 00003948: DUP1 00003949: MLOAD 0000394a: DUP1 0000394b: DUP4 0000394c: SUB 0000394d: PUSH1 0x1f 0000394f: NOT 00003950: ADD 00003951: DUP2 00003952: MSTORE 00003953: SWAP2 00003954: DUP2 00003955: MSTORE 00003956: DUP2 00003957: MLOAD 00003958: PUSH1 0x20 0000395a: SWAP3 0000395b: DUP4 0000395c: ADD 0000395d: KECCAK256 0000395e: DUP4 0000395f: MSTORE 00003960: SWAP1 00003961: DUP3 00003962: ADD 00003963: SWAP3 00003964: SWAP1 00003965: SWAP3 00003966: MSTORE 00003967: ADD 00003968: PUSH1 0x00 0000396a: KECCAK256 0000396b: DUP1 0000396c: SLOAD 0000396d: PUSH1 0xff 0000396f: NOT 00003970: AND 00003971: SWAP2 00003972: ISZERO 00003973: ISZERO 00003974: SWAP2 00003975: SWAP1 00003976: SWAP2 00003977: OR 00003978: SWAP1 00003979: SSTORE 0000397a: POP 0000397b: JUMP 0000397c: JUMPDEST 0000397d: PUSH1 0x00 0000397f: DUP1 00003980: PUSH1 0x00 00003982: DUP1 00003983: PUSH2 0x398c 00003986: DUP7 00003987: DUP7 00003988: PUSH2 0x3ed6 0000398b: JUMP 0000398c: JUMPDEST 0000398d: SWAP3 0000398e: POP 0000398f: SWAP3 00003990: POP 00003991: SWAP3 00003992: POP 00003993: PUSH2 0x399c 00003996: DUP3 00003997: DUP3 00003998: PUSH2 0x3f23 0000399b: JUMP 0000399c: JUMPDEST 0000399d: POP 0000399e: SWAP1 0000399f: SWAP5 000039a0: SWAP4 000039a1: POP 000039a2: POP 000039a3: POP 000039a4: POP 000039a5: JUMP 000039a6: JUMPDEST 000039a7: PUSH2 0x39b0 000039aa: DUP4 000039ab: DUP4 000039ac: PUSH2 0x4027 000039af: JUMP 000039b0: JUMPDEST 000039b1: PUSH2 0x39b9 000039b4: CALLER 000039b5: PUSH2 0x41fb 000039b8: JUMP 000039b9: JUMPDEST 000039ba: PUSH2 0x39c1 000039bd: PUSH2 0x420c 000039c0: JUMP 000039c1: JUMPDEST 000039c2: PUSH1 0x01 000039c4: PUSH1 0x01 000039c6: PUSH1 0xa0 000039c8: SHL 000039c9: SUB 000039ca: DUP2 000039cb: AND 000039cc: PUSH2 0x3a01 000039cf: JUMPI 000039d0: PUSH1 0x40 000039d2: MLOAD 000039d3: PUSH32 0xe747bdc200000000000000000000000000000000000000000000000000000000 000039f4: DUP2 000039f5: MSTORE 000039f6: PUSH1 0x04 000039f8: ADD 000039f9: PUSH1 0x40 000039fb: MLOAD 000039fc: DUP1 000039fd: SWAP2 000039fe: SUB 000039ff: SWAP1 00003a00: REVERT 00003a01: JUMPDEST 00003a02: PUSH1 0x31 00003a04: DUP1 00003a05: SLOAD 00003a06: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00003a27: AND 00003a28: PUSH1 0x01 00003a2a: PUSH1 0x01 00003a2c: PUSH1 0xa0 00003a2e: SHL 00003a2f: SUB 00003a30: SWAP3 00003a31: SWAP1 00003a32: SWAP3 00003a33: AND 00003a34: SWAP2 00003a35: SWAP1 00003a36: SWAP2 00003a37: OR 00003a38: SWAP1 00003a39: SSTORE 00003a3a: POP 00003a3b: POP 00003a3c: PUSH7 0x2386f26fc10000 00003a44: PUSH1 0x33 00003a46: SSTORE 00003a47: JUMP 00003a48: JUMPDEST 00003a49: PUSH2 0x3a51 00003a4c: CALLER 00003a4d: PUSH2 0x41fb 00003a50: JUMP 00003a51: JUMPDEST 00003a52: PUSH2 0x3a59 00003a55: PUSH2 0x420c 00003a58: JUMP 00003a59: JUMPDEST 00003a5a: PUSH1 0x00 00003a5c: PUSH1 0x63 00003a5e: SSTORE 00003a5f: JUMP 00003a60: JUMPDEST 00003a61: PUSH1 0x00 00003a63: DUP1 00003a64: PUSH5 0x02540be400 00003a6a: PUSH2 0x3a73 00003a6d: DUP5 00003a6e: DUP7 00003a6f: PUSH2 0x54ff 00003a72: JUMP 00003a73: JUMPDEST 00003a74: PUSH8 0xffffffffffffffff 00003a7d: AND 00003a7e: PUSH2 0x3a87 00003a81: SWAP2 00003a82: SWAP1 00003a83: PUSH2 0x4c44 00003a86: JUMP 00003a87: JUMPDEST 00003a88: SWAP1 00003a89: POP 00003a8a: PUSH1 0x00 00003a8c: PUSH1 0x01 00003a8e: PUSH1 0x00 00003a90: SWAP1 00003a91: SLOAD 00003a92: SWAP1 00003a93: PUSH2 0x0100 00003a96: EXP 00003a97: SWAP1 00003a98: DIV 00003a99: PUSH1 0x01 00003a9b: PUSH1 0x01 00003a9d: PUSH1 0xa0 00003a9f: SHL 00003aa0: SUB 00003aa1: AND 00003aa2: PUSH1 0x01 00003aa4: PUSH1 0x01 00003aa6: PUSH1 0xa0 00003aa8: SHL 00003aa9: SUB 00003aaa: AND 00003aab: PUSH4 0x09b53f51 00003ab0: PUSH1 0x40 00003ab2: MLOAD 00003ab3: DUP2 00003ab4: PUSH4 0xffffffff 00003ab9: AND 00003aba: PUSH1 0xe0 00003abc: SHL 00003abd: DUP2 00003abe: MSTORE 00003abf: PUSH1 0x04 00003ac1: ADD 00003ac2: PUSH1 0x20 00003ac4: PUSH1 0x40 00003ac6: MLOAD 00003ac7: DUP1 00003ac8: DUP4 00003ac9: SUB 00003aca: DUP2 00003acb: DUP7 00003acc: GAS 00003acd: STATICCALL 00003ace: ISZERO 00003acf: DUP1 00003ad0: ISZERO 00003ad1: PUSH2 0x3ade 00003ad4: JUMPI 00003ad5: RETURNDATASIZE 00003ad6: PUSH1 0x00 00003ad8: DUP1 00003ad9: RETURNDATACOPY 00003ada: RETURNDATASIZE 00003adb: PUSH1 0x00 00003add: REVERT 00003ade: JUMPDEST 00003adf: POP 00003ae0: POP 00003ae1: POP 00003ae2: POP 00003ae3: PUSH1 0x40 00003ae5: MLOAD 00003ae6: RETURNDATASIZE 00003ae7: PUSH1 0x1f 00003ae9: NOT 00003aea: PUSH1 0x1f 00003aec: DUP3 00003aed: ADD 00003aee: AND 00003aef: DUP3 00003af0: ADD 00003af1: DUP1 00003af2: PUSH1 0x40 00003af4: MSTORE 00003af5: POP 00003af6: DUP2 00003af7: ADD 00003af8: SWAP1 00003af9: PUSH2 0x3b02 00003afc: SWAP2 00003afd: SWAP1 00003afe: PUSH2 0x5527 00003b01: JUMP 00003b02: JUMPDEST 00003b03: PUSH4 0xffffffff 00003b08: AND 00003b09: SWAP1 00003b0a: POP 00003b0b: PUSH1 0x00 00003b0d: DUP1 00003b0e: DUP3 00003b0f: GT 00003b10: PUSH2 0x3b1a 00003b13: JUMPI 00003b14: PUSH1 0x00 00003b16: PUSH2 0x3b24 00003b19: JUMP 00003b1a: JUMPDEST 00003b1b: PUSH2 0x3b24 00003b1e: DUP3 00003b1f: DUP5 00003b20: PUSH2 0x4c8a 00003b23: JUMP 00003b24: JUMPDEST 00003b25: SWAP1 00003b26: POP 00003b27: PUSH1 0x00 00003b29: DUP1 00003b2a: PUSH1 0x00 00003b2c: SWAP1 00003b2d: SLOAD 00003b2e: SWAP1 00003b2f: PUSH2 0x0100 00003b32: EXP 00003b33: SWAP1 00003b34: DIV 00003b35: PUSH1 0x01 00003b37: PUSH1 0x01 00003b39: PUSH1 0xa0 00003b3b: SHL 00003b3c: SUB 00003b3d: AND 00003b3e: PUSH1 0x01 00003b40: PUSH1 0x01 00003b42: PUSH1 0xa0 00003b44: SHL 00003b45: SUB 00003b46: AND 00003b47: PUSH4 0xc42b64d0 00003b4c: PUSH1 0x40 00003b4e: MLOAD 00003b4f: DUP2 00003b50: PUSH4 0xffffffff 00003b55: AND 00003b56: PUSH1 0xe0 00003b58: SHL 00003b59: DUP2 00003b5a: MSTORE 00003b5b: PUSH1 0x04 00003b5d: ADD 00003b5e: PUSH1 0x80 00003b60: PUSH1 0x40 00003b62: MLOAD 00003b63: DUP1 00003b64: DUP4 00003b65: SUB 00003b66: DUP2 00003b67: DUP7 00003b68: GAS 00003b69: STATICCALL 00003b6a: ISZERO 00003b6b: DUP1 00003b6c: ISZERO 00003b6d: PUSH2 0x3b7a 00003b70: JUMPI 00003b71: RETURNDATASIZE 00003b72: PUSH1 0x00 00003b74: DUP1 00003b75: RETURNDATACOPY 00003b76: RETURNDATASIZE 00003b77: PUSH1 0x00 00003b79: REVERT 00003b7a: JUMPDEST 00003b7b: POP 00003b7c: POP 00003b7d: POP 00003b7e: POP 00003b7f: PUSH1 0x40 00003b81: MLOAD 00003b82: RETURNDATASIZE 00003b83: PUSH1 0x1f 00003b85: NOT 00003b86: PUSH1 0x1f 00003b88: DUP3 00003b89: ADD 00003b8a: AND 00003b8b: DUP3 00003b8c: ADD 00003b8d: DUP1 00003b8e: PUSH1 0x40 00003b90: MSTORE 00003b91: POP 00003b92: DUP2 00003b93: ADD 00003b94: SWAP1 00003b95: PUSH2 0x3b9e 00003b98: SWAP2 00003b99: SWAP1 00003b9a: PUSH2 0x5544 00003b9d: JUMP 00003b9e: JUMPDEST 00003b9f: POP 00003ba0: SWAP3 00003ba1: POP 00003ba2: POP 00003ba3: POP 00003ba4: PUSH1 0x00 00003ba6: PUSH5 0x02540be400 00003bac: DUP3 00003bad: PUSH8 0xffffffffffffffff 00003bb6: AND 00003bb7: PUSH2 0x3bc0 00003bba: SWAP2 00003bbb: SWAP1 00003bbc: PUSH2 0x4c44 00003bbf: JUMP 00003bc0: JUMPDEST 00003bc1: SWAP1 00003bc2: POP 00003bc3: DUP1 00003bc4: PUSH2 0x3bcd 00003bc7: DUP5 00003bc8: DUP8 00003bc9: PUSH2 0x4e94 00003bcc: JUMP 00003bcd: JUMPDEST 00003bce: PUSH2 0x3bd7 00003bd1: SWAP2 00003bd2: SWAP1 00003bd3: PUSH2 0x4e94 00003bd6: JUMP 00003bd7: JUMPDEST 00003bd8: SWAP9 00003bd9: SWAP8 00003bda: POP 00003bdb: POP 00003bdc: POP 00003bdd: POP 00003bde: POP 00003bdf: POP 00003be0: POP 00003be1: POP 00003be2: JUMP 00003be3: JUMPDEST 00003be4: PUSH1 0x00 00003be6: PUSH2 0x3bf8 00003be9: PUSH1 0x01 00003beb: PUSH1 0x01 00003bed: PUSH1 0xa0 00003bef: SHL 00003bf0: SUB 00003bf1: DUP5 00003bf2: AND 00003bf3: DUP4 00003bf4: PUSH2 0x421c 00003bf7: JUMP 00003bf8: JUMPDEST 00003bf9: SWAP1 00003bfa: POP 00003bfb: DUP1 00003bfc: MLOAD 00003bfd: PUSH1 0x00 00003bff: EQ 00003c00: ISZERO 00003c01: DUP1 00003c02: ISZERO 00003c03: PUSH2 0x3c1d 00003c06: JUMPI 00003c07: POP 00003c08: DUP1 00003c09: DUP1 00003c0a: PUSH1 0x20 00003c0c: ADD 00003c0d: SWAP1 00003c0e: MLOAD 00003c0f: DUP2 00003c10: ADD 00003c11: SWAP1 00003c12: PUSH2 0x3c1b 00003c15: SWAP2 00003c16: SWAP1 00003c17: PUSH2 0x5468 00003c1a: JUMP 00003c1b: JUMPDEST 00003c1c: ISZERO 00003c1d: JUMPDEST 00003c1e: ISZERO 00003c1f: PUSH2 0x0f58 00003c22: JUMPI 00003c23: PUSH1 0x40 00003c25: MLOAD 00003c26: PUSH32 0x5274afe700000000000000000000000000000000000000000000000000000000 00003c47: DUP2 00003c48: MSTORE 00003c49: PUSH1 0x01 00003c4b: PUSH1 0x01 00003c4d: PUSH1 0xa0 00003c4f: SHL 00003c50: SUB 00003c51: DUP5 00003c52: AND 00003c53: PUSH1 0x04 00003c55: DUP3 00003c56: ADD 00003c57: MSTORE 00003c58: PUSH1 0x24 00003c5a: ADD 00003c5b: PUSH2 0x0907 00003c5e: JUMP 00003c5f: JUMPDEST 00003c60: PUSH1 0x00 00003c62: PUSH2 0x0ae6 00003c65: PUSH2 0x3c71 00003c68: PUSH1 0x20 00003c6a: DUP5 00003c6b: ADD 00003c6c: DUP5 00003c6d: PUSH2 0x55a3 00003c70: JUMP 00003c71: JUMPDEST 00003c72: PUSH2 0x3c7e 00003c75: PUSH1 0x20 00003c77: DUP6 00003c78: ADD 00003c79: DUP6 00003c7a: PUSH2 0x4e2f 00003c7d: JUMP 00003c7e: JUMPDEST 00003c7f: PUSH2 0x3c8b 00003c82: PUSH1 0x40 00003c84: DUP8 00003c85: ADD 00003c86: DUP8 00003c87: PUSH2 0x4e2f 00003c8a: JUMP 00003c8b: JUMPDEST 00003c8c: PUSH2 0x3c9b 00003c8f: PUSH1 0x80 00003c91: DUP10 00003c92: ADD 00003c93: PUSH1 0x60 00003c95: DUP11 00003c96: ADD 00003c97: PUSH2 0x55a3 00003c9a: JUMP 00003c9b: JUMPDEST 00003c9c: PUSH1 0x40 00003c9e: MLOAD 00003c9f: PUSH1 0x20 00003ca1: ADD 00003ca2: PUSH2 0x3cb0 00003ca5: SWAP7 00003ca6: SWAP6 00003ca7: SWAP5 00003ca8: SWAP4 00003ca9: SWAP3 00003caa: SWAP2 00003cab: SWAP1 00003cac: PUSH2 0x55be 00003caf: JUMP 00003cb0: JUMPDEST 00003cb1: PUSH1 0x40 00003cb3: MLOAD 00003cb4: PUSH1 0x20 00003cb6: DUP2 00003cb7: DUP4 00003cb8: SUB 00003cb9: SUB 00003cba: DUP2 00003cbb: MSTORE 00003cbc: SWAP1 00003cbd: PUSH1 0x40 00003cbf: MSTORE 00003cc0: PUSH2 0x422a 00003cc3: JUMP 00003cc4: JUMPDEST 00003cc5: PUSH1 0x00 00003cc7: DUP3 00003cc8: DUP3 00003cc9: PUSH1 0x40 00003ccb: MLOAD 00003ccc: PUSH1 0x20 00003cce: ADD 00003ccf: PUSH2 0x3d07 00003cd2: SWAP3 00003cd3: SWAP2 00003cd4: SWAP1 00003cd5: SWAP2 00003cd6: DUP3 00003cd7: MSTORE 00003cd8: PUSH1 0xe0 00003cda: SHL 00003cdb: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00003cfc: AND 00003cfd: PUSH1 0x20 00003cff: DUP3 00003d00: ADD 00003d01: MSTORE 00003d02: PUSH1 0x24 00003d04: ADD 00003d05: SWAP1 00003d06: JUMP 00003d07: JUMPDEST 00003d08: PUSH1 0x40 00003d0a: DUP1 00003d0b: MLOAD 00003d0c: PUSH1 0x1f 00003d0e: NOT 00003d0f: DUP2 00003d10: DUP5 00003d11: SUB 00003d12: ADD 00003d13: DUP2 00003d14: MSTORE 00003d15: SWAP2 00003d16: SWAP1 00003d17: MSTORE 00003d18: DUP1 00003d19: MLOAD 00003d1a: PUSH1 0x20 00003d1c: SWAP1 00003d1d: SWAP2 00003d1e: ADD 00003d1f: KECCAK256 00003d20: SWAP4 00003d21: SWAP3 00003d22: POP 00003d23: POP 00003d24: POP 00003d25: JUMP 00003d26: JUMPDEST 00003d27: PUSH32 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300 00003d48: DUP1 00003d49: SLOAD 00003d4a: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 00003d6b: DUP2 00003d6c: AND 00003d6d: PUSH1 0x01 00003d6f: PUSH1 0x01 00003d71: PUSH1 0xa0 00003d73: SHL 00003d74: SUB 00003d75: DUP5 00003d76: DUP2 00003d77: AND 00003d78: SWAP2 00003d79: DUP3 00003d7a: OR 00003d7b: DUP5 00003d7c: SSTORE 00003d7d: PUSH1 0x40 00003d7f: MLOAD 00003d80: SWAP3 00003d81: AND 00003d82: SWAP2 00003d83: DUP3 00003d84: SWAP1 00003d85: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00003da6: SWAP1 00003da7: PUSH1 0x00 00003da9: SWAP1 00003daa: LOG3 00003dab: POP 00003dac: POP 00003dad: POP 00003dae: JUMP 00003daf: JUMPDEST 00003db0: PUSH1 0x40 00003db2: MLOAD 00003db3: PUSH1 0x01 00003db5: PUSH1 0x01 00003db7: PUSH1 0xa0 00003db9: SHL 00003dba: SUB 00003dbb: DUP4 00003dbc: DUP2 00003dbd: AND 00003dbe: PUSH1 0x24 00003dc0: DUP4 00003dc1: ADD 00003dc2: MSTORE 00003dc3: PUSH1 0x44 00003dc5: DUP3 00003dc6: ADD 00003dc7: DUP4 00003dc8: SWAP1 00003dc9: MSTORE 00003dca: PUSH2 0x0f58 00003dcd: SWAP2 00003dce: DUP6 00003dcf: SWAP2 00003dd0: DUP3 00003dd1: AND 00003dd2: SWAP1 00003dd3: PUSH4 0xa9059cbb 00003dd8: SWAP1 00003dd9: PUSH1 0x64 00003ddb: ADD 00003ddc: PUSH2 0x30df 00003ddf: JUMP 00003de0: JUMPDEST 00003de1: PUSH1 0x60 00003de3: DUP2 00003de4: PUSH1 0x00 00003de6: SUB 00003de7: PUSH2 0x3dff 00003dea: JUMPI 00003deb: POP 00003dec: PUSH1 0x40 00003dee: DUP1 00003def: MLOAD 00003df0: PUSH1 0x20 00003df2: DUP2 00003df3: ADD 00003df4: SWAP1 00003df5: SWAP2 00003df6: MSTORE 00003df7: PUSH1 0x00 00003df9: DUP2 00003dfa: MSTORE 00003dfb: PUSH2 0x34aa 00003dfe: JUMP 00003dff: JUMPDEST 00003e00: PUSH1 0x00 00003e02: PUSH2 0x3e0b 00003e05: DUP4 00003e06: DUP6 00003e07: PUSH2 0x4c9e 00003e0a: JUMP 00003e0b: JUMPDEST 00003e0c: SWAP1 00003e0d: POP 00003e0e: DUP4 00003e0f: DUP2 00003e10: GT 00003e11: DUP1 00003e12: ISZERO 00003e13: PUSH2 0x3e1d 00003e16: JUMPI 00003e17: POP 00003e18: DUP1 00003e19: DUP6 00003e1a: MLOAD 00003e1b: LT 00003e1c: ISZERO 00003e1d: JUMPDEST 00003e1e: PUSH2 0x3e83 00003e21: JUMPI 00003e22: PUSH1 0x40 00003e24: MLOAD 00003e25: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00003e46: DUP2 00003e47: MSTORE 00003e48: PUSH1 0x20 00003e4a: PUSH1 0x04 00003e4c: DUP3 00003e4d: ADD 00003e4e: MSTORE 00003e4f: PUSH1 0x13 00003e51: PUSH1 0x24 00003e53: DUP3 00003e54: ADD 00003e55: MSTORE 00003e56: PUSH32 0x536c696365206f7574206f6620626f756e647300000000000000000000000000 00003e77: PUSH1 0x44 00003e79: DUP3 00003e7a: ADD 00003e7b: MSTORE 00003e7c: PUSH1 0x64 00003e7e: ADD 00003e7f: PUSH2 0x0907 00003e82: JUMP 00003e83: JUMPDEST 00003e84: PUSH1 0x40 00003e86: MLOAD 00003e87: SWAP2 00003e88: POP 00003e89: DUP3 00003e8a: PUSH1 0x40 00003e8c: DUP4 00003e8d: ADD 00003e8e: ADD 00003e8f: PUSH1 0x40 00003e91: MSTORE 00003e92: DUP3 00003e93: DUP3 00003e94: MSTORE 00003e95: DUP4 00003e96: DUP6 00003e97: ADD 00003e98: DUP3 00003e99: SUB 00003e9a: DUP5 00003e9b: PUSH1 0x20 00003e9d: DUP8 00003e9e: ADD 00003e9f: ADD 00003ea0: DUP5 00003ea1: DUP2 00003ea2: ADD 00003ea3: JUMPDEST 00003ea4: DUP1 00003ea5: DUP3 00003ea6: LT 00003ea7: ISZERO 00003ea8: PUSH2 0x3ebc 00003eab: JUMPI 00003eac: DUP2 00003ead: MLOAD 00003eae: DUP4 00003eaf: DUP4 00003eb0: ADD 00003eb1: MSTORE 00003eb2: PUSH1 0x20 00003eb4: DUP3 00003eb5: ADD 00003eb6: SWAP2 00003eb7: POP 00003eb8: PUSH2 0x3ea3 00003ebb: JUMP 00003ebc: JUMPDEST 00003ebd: POP 00003ebe: POP 00003ebf: POP 00003ec0: POP 00003ec1: SWAP4 00003ec2: SWAP3 00003ec3: POP 00003ec4: POP 00003ec5: POP 00003ec6: JUMP 00003ec7: JUMPDEST 00003ec8: PUSH1 0x00 00003eca: PUSH2 0x34aa 00003ecd: DUP4 00003ece: DUP4 00003ecf: ADD 00003ed0: PUSH1 0x20 00003ed2: ADD 00003ed3: MLOAD 00003ed4: SWAP1 00003ed5: JUMP 00003ed6: JUMPDEST 00003ed7: PUSH1 0x00 00003ed9: DUP1 00003eda: PUSH1 0x00 00003edc: DUP4 00003edd: MLOAD 00003ede: PUSH1 0x41 00003ee0: SUB 00003ee1: PUSH2 0x3f10 00003ee4: JUMPI 00003ee5: PUSH1 0x20 00003ee7: DUP5 00003ee8: ADD 00003ee9: MLOAD 00003eea: PUSH1 0x40 00003eec: DUP6 00003eed: ADD 00003eee: MLOAD 00003eef: PUSH1 0x60 00003ef1: DUP7 00003ef2: ADD 00003ef3: MLOAD 00003ef4: PUSH1 0x00 00003ef6: BYTE 00003ef7: PUSH2 0x3f02 00003efa: DUP9 00003efb: DUP3 00003efc: DUP6 00003efd: DUP6 00003efe: PUSH2 0x4251 00003f01: JUMP 00003f02: JUMPDEST 00003f03: SWAP6 00003f04: POP 00003f05: SWAP6 00003f06: POP 00003f07: SWAP6 00003f08: POP 00003f09: POP 00003f0a: POP 00003f0b: POP 00003f0c: PUSH2 0x3f1c 00003f0f: JUMP 00003f10: JUMPDEST 00003f11: POP 00003f12: POP 00003f13: DUP2 00003f14: MLOAD 00003f15: PUSH1 0x00 00003f17: SWAP2 00003f18: POP 00003f19: PUSH1 0x02 00003f1b: SWAP1 00003f1c: JUMPDEST 00003f1d: SWAP3 00003f1e: POP 00003f1f: SWAP3 00003f20: POP 00003f21: SWAP3 00003f22: JUMP 00003f23: JUMPDEST 00003f24: PUSH1 0x00 00003f26: DUP3 00003f27: PUSH1 0x03 00003f29: DUP2 00003f2a: GT 00003f2b: ISZERO 00003f2c: PUSH2 0x3f37 00003f2f: JUMPI 00003f30: PUSH2 0x3f37 00003f33: PUSH2 0x4a24 00003f36: JUMP 00003f37: JUMPDEST 00003f38: SUB 00003f39: PUSH2 0x3f40 00003f3c: JUMPI 00003f3d: POP 00003f3e: POP 00003f3f: JUMP 00003f40: JUMPDEST 00003f41: PUSH1 0x01 00003f43: DUP3 00003f44: PUSH1 0x03 00003f46: DUP2 00003f47: GT 00003f48: ISZERO 00003f49: PUSH2 0x3f54 00003f4c: JUMPI 00003f4d: PUSH2 0x3f54 00003f50: PUSH2 0x4a24 00003f53: JUMP 00003f54: JUMPDEST 00003f55: SUB 00003f56: PUSH2 0x3f8b 00003f59: JUMPI 00003f5a: PUSH1 0x40 00003f5c: MLOAD 00003f5d: PUSH32 0xf645eedf00000000000000000000000000000000000000000000000000000000 00003f7e: DUP2 00003f7f: MSTORE 00003f80: PUSH1 0x04 00003f82: ADD 00003f83: PUSH1 0x40 00003f85: MLOAD 00003f86: DUP1 00003f87: SWAP2 00003f88: SUB 00003f89: SWAP1 00003f8a: REVERT 00003f8b: JUMPDEST 00003f8c: PUSH1 0x02 00003f8e: DUP3 00003f8f: PUSH1 0x03 00003f91: DUP2 00003f92: GT 00003f93: ISZERO 00003f94: PUSH2 0x3f9f 00003f97: JUMPI 00003f98: PUSH2 0x3f9f 00003f9b: PUSH2 0x4a24 00003f9e: JUMP 00003f9f: JUMPDEST 00003fa0: SUB 00003fa1: PUSH2 0x3fd9 00003fa4: JUMPI 00003fa5: PUSH1 0x40 00003fa7: MLOAD 00003fa8: PUSH32 0xfce698f700000000000000000000000000000000000000000000000000000000 00003fc9: DUP2 00003fca: MSTORE 00003fcb: PUSH1 0x04 00003fcd: DUP2 00003fce: ADD 00003fcf: DUP3 00003fd0: SWAP1 00003fd1: MSTORE 00003fd2: PUSH1 0x24 00003fd4: ADD 00003fd5: PUSH2 0x0907 00003fd8: JUMP 00003fd9: JUMPDEST 00003fda: PUSH1 0x03 00003fdc: DUP3 00003fdd: PUSH1 0x03 00003fdf: DUP2 00003fe0: GT 00003fe1: ISZERO 00003fe2: PUSH2 0x3fed 00003fe5: JUMPI 00003fe6: PUSH2 0x3fed 00003fe9: PUSH2 0x4a24 00003fec: JUMP 00003fed: JUMPDEST 00003fee: SUB 00003fef: PUSH2 0x2ac9 00003ff2: JUMPI 00003ff3: PUSH1 0x40 00003ff5: MLOAD 00003ff6: PUSH32 0xd78bce0c00000000000000000000000000000000000000000000000000000000 00004017: DUP2 00004018: MSTORE 00004019: PUSH1 0x04 0000401b: DUP2 0000401c: ADD 0000401d: DUP3 0000401e: SWAP1 0000401f: MSTORE 00004020: PUSH1 0x24 00004022: ADD 00004023: PUSH2 0x0907 00004026: JUMP 00004027: JUMPDEST 00004028: PUSH1 0x00 0000402a: SLOAD 0000402b: PUSH1 0x01 0000402d: PUSH1 0x01 0000402f: PUSH1 0xa0 00004031: SHL 00004032: SUB 00004033: AND 00004034: ISZERO 00004035: DUP1 00004036: ISZERO 00004037: PUSH2 0x4049 0000403a: JUMPI 0000403b: POP 0000403c: PUSH1 0x01 0000403e: SLOAD 0000403f: PUSH1 0x01 00004041: PUSH1 0x01 00004043: PUSH1 0xa0 00004045: SHL 00004046: SUB 00004047: AND 00004048: ISZERO 00004049: JUMPDEST 0000404a: PUSH2 0x40d5 0000404d: JUMPI 0000404e: PUSH1 0x40 00004050: MLOAD 00004051: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00004072: DUP2 00004073: MSTORE 00004074: PUSH1 0x20 00004076: PUSH1 0x04 00004078: DUP3 00004079: ADD 0000407a: MSTORE 0000407b: PUSH1 0x29 0000407d: PUSH1 0x24 0000407f: DUP3 00004080: ADD 00004081: MSTORE 00004082: PUSH32 0x4162737472616374544254434465706f7369746f7220616c726561647920696e 000040a3: PUSH1 0x44 000040a5: DUP3 000040a6: ADD 000040a7: MSTORE 000040a8: PUSH32 0x697469616c697a65640000000000000000000000000000000000000000000000 000040c9: PUSH1 0x64 000040cb: DUP3 000040cc: ADD 000040cd: MSTORE 000040ce: PUSH1 0x84 000040d0: ADD 000040d1: PUSH2 0x0907 000040d4: JUMP 000040d5: JUMPDEST 000040d6: PUSH1 0x01 000040d8: PUSH1 0x01 000040da: PUSH1 0xa0 000040dc: SHL 000040dd: SUB 000040de: DUP3 000040df: AND 000040e0: PUSH2 0x4145 000040e3: JUMPI 000040e4: PUSH1 0x40 000040e6: MLOAD 000040e7: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00004108: DUP2 00004109: MSTORE 0000410a: PUSH1 0x20 0000410c: PUSH1 0x04 0000410e: DUP3 0000410f: ADD 00004110: MSTORE 00004111: PUSH1 0x1d 00004113: PUSH1 0x24 00004115: DUP3 00004116: ADD 00004117: MSTORE 00004118: PUSH32 0x42726964676520616464726573732063616e6e6f74206265207a65726f000000 00004139: PUSH1 0x44 0000413b: DUP3 0000413c: ADD 0000413d: MSTORE 0000413e: PUSH1 0x64 00004140: ADD 00004141: PUSH2 0x0907 00004144: JUMP 00004145: JUMPDEST 00004146: PUSH1 0x01 00004148: PUSH1 0x01 0000414a: PUSH1 0xa0 0000414c: SHL 0000414d: SUB 0000414e: DUP2 0000414f: AND 00004150: PUSH2 0x41b5 00004153: JUMPI 00004154: PUSH1 0x40 00004156: MLOAD 00004157: PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 00004178: DUP2 00004179: MSTORE 0000417a: PUSH1 0x20 0000417c: PUSH1 0x04 0000417e: DUP3 0000417f: ADD 00004180: DUP2 00004181: SWAP1 00004182: MSTORE 00004183: PUSH1 0x24 00004185: DUP3 00004186: ADD 00004187: MSTORE 00004188: PUSH32 0x544254435661756c7420616464726573732063616e6e6f74206265207a65726f 000041a9: PUSH1 0x44 000041ab: DUP3 000041ac: ADD 000041ad: MSTORE 000041ae: PUSH1 0x64 000041b0: ADD 000041b1: PUSH2 0x0907 000041b4: JUMP 000041b5: JUMPDEST 000041b6: PUSH1 0x00 000041b8: DUP1 000041b9: SLOAD 000041ba: PUSH1 0x01 000041bc: PUSH1 0x01 000041be: PUSH1 0xa0 000041c0: SHL 000041c1: SUB 000041c2: SWAP4 000041c3: DUP5 000041c4: AND 000041c5: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 000041e6: SWAP2 000041e7: DUP3 000041e8: AND 000041e9: OR 000041ea: SWAP1 000041eb: SWAP2 000041ec: SSTORE 000041ed: PUSH1 0x01 000041ef: DUP1 000041f0: SLOAD 000041f1: SWAP3 000041f2: SWAP1 000041f3: SWAP4 000041f4: AND 000041f5: SWAP2 000041f6: AND 000041f7: OR 000041f8: SWAP1 000041f9: SSTORE 000041fa: JUMP 000041fb: JUMPDEST 000041fc: PUSH2 0x4203 000041ff: PUSH2 0x4320 00004202: JUMP 00004203: JUMPDEST 00004204: PUSH2 0x16c7 00004207: DUP2 00004208: PUSH2 0x4387 0000420b: JUMP 0000420c: JUMPDEST 0000420d: PUSH2 0x4214 00004210: PUSH2 0x4320 00004213: JUMP 00004214: JUMPDEST 00004215: PUSH2 0x12a8 00004218: PUSH2 0x43d2 0000421b: JUMP 0000421c: JUMPDEST 0000421d: PUSH1 0x60 0000421f: PUSH2 0x34aa 00004222: DUP4 00004223: DUP4 00004224: PUSH1 0x00 00004226: PUSH2 0x43da 00004229: JUMP 0000422a: JUMPDEST 0000422b: PUSH1 0x00 0000422d: PUSH1 0x20 0000422f: PUSH1 0x00 00004231: DUP4 00004232: MLOAD 00004233: PUSH1 0x20 00004235: DUP6 00004236: ADD 00004237: PUSH1 0x02 00004239: GAS 0000423a: STATICCALL 0000423b: POP 0000423c: PUSH1 0x20 0000423e: PUSH1 0x00 00004240: PUSH1 0x20 00004242: PUSH1 0x00 00004244: PUSH1 0x02 00004246: GAS 00004247: STATICCALL 00004248: POP 00004249: POP 0000424a: PUSH1 0x00 0000424c: MLOAD 0000424d: SWAP2 0000424e: SWAP1 0000424f: POP 00004250: JUMP 00004251: JUMPDEST 00004252: PUSH1 0x00 00004254: DUP1 00004255: DUP1 00004256: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 00004277: DUP5 00004278: GT 00004279: ISZERO 0000427a: PUSH2 0x428c 0000427d: JUMPI 0000427e: POP 0000427f: PUSH1 0x00 00004281: SWAP2 00004282: POP 00004283: PUSH1 0x03 00004285: SWAP1 00004286: POP 00004287: DUP3 00004288: PUSH2 0x4316 0000428b: JUMP 0000428c: JUMPDEST 0000428d: PUSH1 0x40 0000428f: DUP1 00004290: MLOAD 00004291: PUSH1 0x00 00004293: DUP1 00004294: DUP3 00004295: MSTORE 00004296: PUSH1 0x20 00004298: DUP3 00004299: ADD 0000429a: DUP1 0000429b: DUP5 0000429c: MSTORE 0000429d: DUP11 0000429e: SWAP1 0000429f: MSTORE 000042a0: PUSH1 0xff 000042a2: DUP10 000042a3: AND 000042a4: SWAP3 000042a5: DUP3 000042a6: ADD 000042a7: SWAP3 000042a8: SWAP1 000042a9: SWAP3 000042aa: MSTORE 000042ab: PUSH1 0x60 000042ad: DUP2 000042ae: ADD 000042af: DUP8 000042b0: SWAP1 000042b1: MSTORE 000042b2: PUSH1 0x80 000042b4: DUP2 000042b5: ADD 000042b6: DUP7 000042b7: SWAP1 000042b8: MSTORE 000042b9: PUSH1 0x01 000042bb: SWAP1 000042bc: PUSH1 0xa0 000042be: ADD 000042bf: PUSH1 0x20 000042c1: PUSH1 0x40 000042c3: MLOAD 000042c4: PUSH1 0x20 000042c6: DUP2 000042c7: SUB 000042c8: SWAP1 000042c9: DUP1 000042ca: DUP5 000042cb: SUB 000042cc: SWAP1 000042cd: DUP6 000042ce: GAS 000042cf: STATICCALL 000042d0: ISZERO 000042d1: DUP1 000042d2: ISZERO 000042d3: PUSH2 0x42e0 000042d6: JUMPI 000042d7: RETURNDATASIZE 000042d8: PUSH1 0x00 000042da: DUP1 000042db: RETURNDATACOPY 000042dc: RETURNDATASIZE 000042dd: PUSH1 0x00 000042df: REVERT 000042e0: JUMPDEST 000042e1: POP 000042e2: POP 000042e3: PUSH1 0x40 000042e5: MLOAD 000042e6: PUSH1 0x1f 000042e8: NOT 000042e9: ADD 000042ea: MLOAD 000042eb: SWAP2 000042ec: POP 000042ed: POP 000042ee: PUSH1 0x01 000042f0: PUSH1 0x01 000042f2: PUSH1 0xa0 000042f4: SHL 000042f5: SUB 000042f6: DUP2 000042f7: AND 000042f8: PUSH2 0x430c 000042fb: JUMPI 000042fc: POP 000042fd: PUSH1 0x00 000042ff: SWAP3 00004300: POP 00004301: PUSH1 0x01 00004303: SWAP2 00004304: POP 00004305: DUP3 00004306: SWAP1 00004307: POP 00004308: PUSH2 0x4316 0000430b: JUMP 0000430c: JUMPDEST 0000430d: SWAP3 0000430e: POP 0000430f: PUSH1 0x00 00004311: SWAP2 00004312: POP 00004313: DUP2 00004314: SWAP1 00004315: POP 00004316: JUMPDEST 00004317: SWAP5 00004318: POP 00004319: SWAP5 0000431a: POP 0000431b: SWAP5 0000431c: SWAP2 0000431d: POP 0000431e: POP 0000431f: JUMP 00004320: JUMPDEST 00004321: PUSH32 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00 00004342: SLOAD 00004343: PUSH9 0x010000000000000000 0000434d: SWAP1 0000434e: DIV 0000434f: PUSH1 0xff 00004351: AND 00004352: PUSH2 0x12a8 00004355: JUMPI 00004356: PUSH1 0x40 00004358: MLOAD 00004359: PUSH32 0xd7e6bcf800000000000000000000000000000000000000000000000000000000 0000437a: DUP2 0000437b: MSTORE 0000437c: PUSH1 0x04 0000437e: ADD 0000437f: PUSH1 0x40 00004381: MLOAD 00004382: DUP1 00004383: SWAP2 00004384: SUB 00004385: SWAP1 00004386: REVERT 00004387: JUMPDEST 00004388: PUSH2 0x438f 0000438b: PUSH2 0x4320 0000438e: JUMP 0000438f: JUMPDEST 00004390: PUSH1 0x01 00004392: PUSH1 0x01 00004394: PUSH1 0xa0 00004396: SHL 00004397: SUB 00004398: DUP2 00004399: AND 0000439a: PUSH2 0x16be 0000439d: JUMPI 0000439e: PUSH1 0x40 000043a0: MLOAD 000043a1: PUSH32 0x1e4fbdf700000000000000000000000000000000000000000000000000000000 000043c2: DUP2 000043c3: MSTORE 000043c4: PUSH1 0x00 000043c6: PUSH1 0x04 000043c8: DUP3 000043c9: ADD 000043ca: MSTORE 000043cb: PUSH1 0x24 000043cd: ADD 000043ce: PUSH2 0x0907 000043d1: JUMP 000043d2: JUMPDEST 000043d3: PUSH2 0x3084 000043d6: PUSH2 0x4320 000043d9: JUMP 000043da: JUMPDEST 000043db: PUSH1 0x60 000043dd: DUP2 000043de: SELFBALANCE 000043df: LT 000043e0: ISZERO 000043e1: PUSH2 0x4418 000043e4: JUMPI 000043e5: PUSH1 0x40 000043e7: MLOAD 000043e8: PUSH32 0xcd78605900000000000000000000000000000000000000000000000000000000 00004409: DUP2 0000440a: MSTORE 0000440b: ADDRESS 0000440c: PUSH1 0x04 0000440e: DUP3 0000440f: ADD 00004410: MSTORE 00004411: PUSH1 0x24 00004413: ADD 00004414: PUSH2 0x0907 00004417: JUMP 00004418: JUMPDEST 00004419: PUSH1 0x00 0000441b: DUP1 0000441c: DUP6 0000441d: PUSH1 0x01 0000441f: PUSH1 0x01 00004421: PUSH1 0xa0 00004423: SHL 00004424: SUB 00004425: AND 00004426: DUP5 00004427: DUP7 00004428: PUSH1 0x40 0000442a: MLOAD 0000442b: PUSH2 0x4434 0000442e: SWAP2 0000442f: SWAP1 00004430: PUSH2 0x5618 00004433: JUMP 00004434: JUMPDEST 00004435: PUSH1 0x00 00004437: PUSH1 0x40 00004439: MLOAD 0000443a: DUP1 0000443b: DUP4 0000443c: SUB 0000443d: DUP2 0000443e: DUP6 0000443f: DUP8 00004440: GAS 00004441: CALL 00004442: SWAP3 00004443: POP 00004444: POP 00004445: POP 00004446: RETURNDATASIZE 00004447: DUP1 00004448: PUSH1 0x00 0000444a: DUP2 0000444b: EQ 0000444c: PUSH2 0x4471 0000444f: JUMPI 00004450: PUSH1 0x40 00004452: MLOAD 00004453: SWAP2 00004454: POP 00004455: PUSH1 0x1f 00004457: NOT 00004458: PUSH1 0x3f 0000445a: RETURNDATASIZE 0000445b: ADD 0000445c: AND 0000445d: DUP3 0000445e: ADD 0000445f: PUSH1 0x40 00004461: MSTORE 00004462: RETURNDATASIZE 00004463: DUP3 00004464: MSTORE 00004465: RETURNDATASIZE 00004466: PUSH1 0x00 00004468: PUSH1 0x20 0000446a: DUP5 0000446b: ADD 0000446c: RETURNDATACOPY 0000446d: PUSH2 0x4476 00004470: JUMP 00004471: JUMPDEST 00004472: PUSH1 0x60 00004474: SWAP2 00004475: POP 00004476: JUMPDEST 00004477: POP 00004478: SWAP2 00004479: POP 0000447a: SWAP2 0000447b: POP 0000447c: PUSH2 0x4486 0000447f: DUP7 00004480: DUP4 00004481: DUP4 00004482: PUSH2 0x4490 00004485: JUMP 00004486: JUMPDEST 00004487: SWAP7 00004488: SWAP6 00004489: POP 0000448a: POP 0000448b: POP 0000448c: POP 0000448d: POP 0000448e: POP 0000448f: JUMP 00004490: JUMPDEST 00004491: PUSH1 0x60 00004493: DUP3 00004494: PUSH2 0x44a5 00004497: JUMPI 00004498: PUSH2 0x44a0 0000449b: DUP3 0000449c: PUSH2 0x4505 0000449f: JUMP 000044a0: JUMPDEST 000044a1: PUSH2 0x34aa 000044a4: JUMP 000044a5: JUMPDEST 000044a6: DUP2 000044a7: MLOAD 000044a8: ISZERO 000044a9: DUP1 000044aa: ISZERO 000044ab: PUSH2 0x44bc 000044ae: JUMPI 000044af: POP 000044b0: PUSH1 0x01 000044b2: PUSH1 0x01 000044b4: PUSH1 0xa0 000044b6: SHL 000044b7: SUB 000044b8: DUP5 000044b9: AND 000044ba: EXTCODESIZE 000044bb: ISZERO 000044bc: JUMPDEST 000044bd: ISZERO 000044be: PUSH2 0x44fe 000044c1: JUMPI 000044c2: PUSH1 0x40 000044c4: MLOAD 000044c5: PUSH32 0x9996b31500000000000000000000000000000000000000000000000000000000 000044e6: DUP2 000044e7: MSTORE 000044e8: PUSH1 0x01 000044ea: PUSH1 0x01 000044ec: PUSH1 0xa0 000044ee: SHL 000044ef: SUB 000044f0: DUP6 000044f1: AND 000044f2: PUSH1 0x04 000044f4: DUP3 000044f5: ADD 000044f6: MSTORE 000044f7: PUSH1 0x24 000044f9: ADD 000044fa: PUSH2 0x0907 000044fd: JUMP 000044fe: JUMPDEST 000044ff: POP 00004500: DUP1 00004501: PUSH2 0x34aa 00004504: JUMP 00004505: JUMPDEST 00004506: DUP1 00004507: MLOAD 00004508: ISZERO 00004509: PUSH2 0x4515 0000450c: JUMPI 0000450d: DUP1 0000450e: MLOAD 0000450f: DUP1 00004510: DUP3 00004511: PUSH1 0x20 00004513: ADD 00004514: REVERT 00004515: JUMPDEST 00004516: PUSH1 0x40 00004518: MLOAD 00004519: PUSH32 0x1425ea4200000000000000000000000000000000000000000000000000000000 0000453a: DUP2 0000453b: MSTORE 0000453c: PUSH1 0x04 0000453e: ADD 0000453f: PUSH1 0x40 00004541: MLOAD 00004542: DUP1 00004543: SWAP2 00004544: SUB 00004545: SWAP1 00004546: REVERT 00004547: JUMPDEST 00004548: PUSH1 0x01 0000454a: PUSH1 0x01 0000454c: PUSH1 0xa0 0000454e: SHL 0000454f: SUB 00004550: DUP2 00004551: AND 00004552: DUP2 00004553: EQ 00004554: PUSH2 0x16c7 00004557: JUMPI 00004558: PUSH1 0x00 0000455a: DUP1 0000455b: REVERT 0000455c: JUMPDEST 0000455d: DUP1 0000455e: CALLDATALOAD 0000455f: PUSH2 0x2f56 00004562: DUP2 00004563: PUSH2 0x4547 00004566: JUMP 00004567: JUMPDEST 00004568: PUSH1 0x00 0000456a: PUSH1 0x20 0000456c: DUP3 0000456d: DUP5 0000456e: SUB 0000456f: SLT 00004570: ISZERO 00004571: PUSH2 0x4579 00004574: JUMPI 00004575: PUSH1 0x00 00004577: DUP1 00004578: REVERT 00004579: JUMPDEST 0000457a: DUP2 0000457b: CALLDATALOAD 0000457c: PUSH2 0x34aa 0000457f: DUP2 00004580: PUSH2 0x4547 00004583: JUMP 00004584: JUMPDEST 00004585: PUSH1 0x00 00004587: PUSH1 0x20 00004589: DUP3 0000458a: DUP5 0000458b: SUB 0000458c: SLT 0000458d: ISZERO 0000458e: PUSH2 0x4596 00004591: JUMPI 00004592: PUSH1 0x00 00004594: DUP1 00004595: REVERT 00004596: JUMPDEST 00004597: POP 00004598: CALLDATALOAD 00004599: SWAP2 0000459a: SWAP1 0000459b: POP 0000459c: JUMP 0000459d: JUMPDEST 0000459e: PUSH1 0x00 000045a0: DUP1 000045a1: PUSH1 0x40 000045a3: DUP4 000045a4: DUP6 000045a5: SUB 000045a6: SLT 000045a7: ISZERO 000045a8: PUSH2 0x45b0 000045ab: JUMPI 000045ac: PUSH1 0x00 000045ae: DUP1 000045af: REVERT 000045b0: JUMPDEST 000045b1: DUP3 000045b2: CALLDATALOAD 000045b3: SWAP2 000045b4: POP 000045b5: PUSH1 0x20 000045b7: DUP4 000045b8: ADD 000045b9: CALLDATALOAD 000045ba: PUSH2 0x45c2 000045bd: DUP2 000045be: PUSH2 0x4547 000045c1: JUMP 000045c2: JUMPDEST 000045c3: DUP1 000045c4: SWAP2 000045c5: POP 000045c6: POP 000045c7: SWAP3 000045c8: POP 000045c9: SWAP3 000045ca: SWAP1 000045cb: POP 000045cc: JUMP 000045cd: JUMPDEST 000045ce: DUP1 000045cf: CALLDATALOAD 000045d0: PUSH1 0xff 000045d2: DUP2 000045d3: AND 000045d4: DUP2 000045d5: EQ 000045d6: PUSH2 0x2f56 000045d9: JUMPI 000045da: PUSH1 0x00 000045dc: DUP1 000045dd: REVERT 000045de: JUMPDEST 000045df: PUSH1 0x00 000045e1: DUP1 000045e2: PUSH1 0x00 000045e4: DUP1 000045e5: PUSH1 0x00 000045e7: DUP1 000045e8: PUSH1 0xc0 000045ea: DUP8 000045eb: DUP10 000045ec: SUB 000045ed: SLT 000045ee: ISZERO 000045ef: PUSH2 0x45f7 000045f2: JUMPI 000045f3: PUSH1 0x00 000045f5: DUP1 000045f6: REVERT 000045f7: JUMPDEST 000045f8: DUP7 000045f9: CALLDATALOAD 000045fa: SWAP6 000045fb: POP 000045fc: PUSH1 0x20 000045fe: DUP8 000045ff: ADD 00004600: CALLDATALOAD 00004601: PUSH2 0x4609 00004604: DUP2 00004605: PUSH2 0x4547 00004608: JUMP 00004609: JUMPDEST 0000460a: SWAP5 0000460b: POP 0000460c: PUSH1 0x40 0000460e: DUP8 0000460f: ADD 00004610: CALLDATALOAD 00004611: SWAP4 00004612: POP 00004613: PUSH2 0x461e 00004616: PUSH1 0x60 00004618: DUP9 00004619: ADD 0000461a: PUSH2 0x45cd 0000461d: JUMP 0000461e: JUMPDEST 0000461f: SWAP3 00004620: POP 00004621: PUSH1 0x80 00004623: DUP8 00004624: ADD 00004625: CALLDATALOAD 00004626: SWAP2 00004627: POP 00004628: PUSH1 0xa0 0000462a: DUP8 0000462b: ADD 0000462c: CALLDATALOAD 0000462d: SWAP1 0000462e: POP 0000462f: SWAP3 00004630: SWAP6 00004631: POP 00004632: SWAP3 00004633: SWAP6 00004634: POP 00004635: SWAP3 00004636: SWAP6 00004637: JUMP 00004638: JUMPDEST 00004639: PUSH1 0x00 0000463b: DUP1 0000463c: PUSH1 0x40 0000463e: DUP4 0000463f: DUP6 00004640: SUB 00004641: SLT 00004642: ISZERO 00004643: PUSH2 0x464b 00004646: JUMPI 00004647: PUSH1 0x00 00004649: DUP1 0000464a: REVERT 0000464b: JUMPDEST 0000464c: DUP3 0000464d: CALLDATALOAD 0000464e: PUSH2 0x4656 00004651: DUP2 00004652: PUSH2 0x4547 00004655: JUMP 00004656: JUMPDEST 00004657: SWAP5 00004658: PUSH1 0x20 0000465a: SWAP4 0000465b: SWAP1 0000465c: SWAP4 0000465d: ADD 0000465e: CALLDATALOAD 0000465f: SWAP4 00004660: POP 00004661: POP 00004662: POP 00004663: JUMP 00004664: JUMPDEST 00004665: PUSH1 0x00 00004667: DUP1 00004668: PUSH1 0x00 0000466a: PUSH1 0x60 0000466c: DUP5 0000466d: DUP7 0000466e: SUB 0000466f: SLT 00004670: ISZERO 00004671: PUSH2 0x4679 00004674: JUMPI 00004675: PUSH1 0x00 00004677: DUP1 00004678: REVERT 00004679: JUMPDEST 0000467a: DUP4 0000467b: CALLDATALOAD 0000467c: PUSH2 0x4684 0000467f: DUP2 00004680: PUSH2 0x4547 00004683: JUMP 00004684: JUMPDEST 00004685: SWAP3 00004686: POP 00004687: PUSH1 0x20 00004689: DUP5 0000468a: ADD 0000468b: CALLDATALOAD 0000468c: SWAP2 0000468d: POP 0000468e: PUSH1 0x40 00004690: DUP5 00004691: ADD 00004692: CALLDATALOAD 00004693: PUSH2 0x469b 00004696: DUP2 00004697: PUSH2 0x4547 0000469a: JUMP 0000469b: JUMPDEST 0000469c: DUP1 0000469d: SWAP2 0000469e: POP 0000469f: POP 000046a0: SWAP3 000046a1: POP 000046a2: SWAP3 000046a3: POP 000046a4: SWAP3 000046a5: JUMP 000046a6: JUMPDEST 000046a7: PUSH1 0x00 000046a9: DUP1 000046aa: PUSH1 0x00 000046ac: DUP4 000046ad: DUP6 000046ae: SUB 000046af: PUSH2 0x0100 000046b2: DUP2 000046b3: SLT 000046b4: ISZERO 000046b5: PUSH2 0x46bd 000046b8: JUMPI 000046b9: PUSH1 0x00 000046bb: DUP1 000046bc: REVERT 000046bd: JUMPDEST 000046be: DUP5 000046bf: CALLDATALOAD 000046c0: PUSH8 0xffffffffffffffff 000046c9: DUP2 000046ca: GT 000046cb: ISZERO 000046cc: PUSH2 0x46d4 000046cf: JUMPI 000046d0: PUSH1 0x00 000046d2: DUP1 000046d3: REVERT 000046d4: JUMPDEST 000046d5: DUP6 000046d6: ADD 000046d7: PUSH1 0x80 000046d9: DUP2 000046da: DUP9 000046db: SUB 000046dc: SLT 000046dd: ISZERO 000046de: PUSH2 0x46e6 000046e1: JUMPI 000046e2: PUSH1 0x00 000046e4: DUP1 000046e5: REVERT 000046e6: JUMPDEST 000046e7: SWAP4 000046e8: POP 000046e9: PUSH1 0xc0 000046eb: PUSH1 0x1f 000046ed: NOT 000046ee: DUP3 000046ef: ADD 000046f0: SLT 000046f1: ISZERO 000046f2: PUSH2 0x46fa 000046f5: JUMPI 000046f6: PUSH1 0x00 000046f8: DUP1 000046f9: REVERT 000046fa: JUMPDEST 000046fb: POP 000046fc: PUSH1 0x20 000046fe: DUP5 000046ff: ADD 00004700: SWAP2 00004701: POP 00004702: PUSH1 0xe0 00004704: DUP5 00004705: ADD 00004706: CALLDATALOAD 00004707: PUSH2 0x469b 0000470a: DUP2 0000470b: PUSH2 0x4547 0000470e: JUMP 0000470f: JUMPDEST 00004710: PUSH1 0x00 00004712: PUSH1 0xa0 00004714: DUP3 00004715: DUP5 00004716: SUB 00004717: SLT 00004718: ISZERO 00004719: PUSH2 0x4721 0000471c: JUMPI 0000471d: PUSH1 0x00 0000471f: DUP1 00004720: REVERT 00004721: JUMPDEST 00004722: POP 00004723: SWAP2 00004724: SWAP1 00004725: POP 00004726: JUMP 00004727: JUMPDEST 00004728: DUP1 00004729: CALLDATALOAD 0000472a: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 0000474b: DUP2 0000474c: AND 0000474d: DUP2 0000474e: EQ 0000474f: PUSH2 0x2f56 00004752: JUMPI 00004753: PUSH1 0x00 00004755: DUP1 00004756: REVERT 00004757: JUMPDEST 00004758: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00004779: PUSH1 0x00 0000477b: MSTORE 0000477c: PUSH1 0x41 0000477e: PUSH1 0x04 00004780: MSTORE 00004781: PUSH1 0x24 00004783: PUSH1 0x00 00004785: REVERT 00004786: JUMPDEST 00004787: PUSH1 0x40 00004789: MLOAD 0000478a: PUSH1 0xa0 0000478c: DUP2 0000478d: ADD 0000478e: PUSH8 0xffffffffffffffff 00004797: DUP2 00004798: GT 00004799: DUP3 0000479a: DUP3 0000479b: LT 0000479c: OR 0000479d: ISZERO 0000479e: PUSH2 0x47a9 000047a1: JUMPI 000047a2: PUSH2 0x47a9 000047a5: PUSH2 0x4757 000047a8: JUMP 000047a9: JUMPDEST 000047aa: PUSH1 0x40 000047ac: MSTORE 000047ad: SWAP1 000047ae: JUMP 000047af: JUMPDEST 000047b0: PUSH1 0x40 000047b2: MLOAD 000047b3: PUSH1 0x1f 000047b5: DUP3 000047b6: ADD 000047b7: PUSH1 0x1f 000047b9: NOT 000047ba: AND 000047bb: DUP2 000047bc: ADD 000047bd: PUSH8 0xffffffffffffffff 000047c6: DUP2 000047c7: GT 000047c8: DUP3 000047c9: DUP3 000047ca: LT 000047cb: OR 000047cc: ISZERO 000047cd: PUSH2 0x47d8 000047d0: JUMPI 000047d1: PUSH2 0x47d8 000047d4: PUSH2 0x4757 000047d7: JUMP 000047d8: JUMPDEST 000047d9: PUSH1 0x40 000047db: MSTORE 000047dc: SWAP2 000047dd: SWAP1 000047de: POP 000047df: JUMP 000047e0: JUMPDEST 000047e1: PUSH4 0xffffffff 000047e6: DUP2 000047e7: AND 000047e8: DUP2 000047e9: EQ 000047ea: PUSH2 0x16c7 000047ed: JUMPI 000047ee: PUSH1 0x00 000047f0: DUP1 000047f1: REVERT 000047f2: JUMPDEST 000047f3: PUSH8 0xffffffffffffffff 000047fc: DUP2 000047fd: AND 000047fe: DUP2 000047ff: EQ 00004800: PUSH2 0x16c7 00004803: JUMPI 00004804: PUSH1 0x00 00004806: DUP1 00004807: REVERT 00004808: JUMPDEST 00004809: PUSH1 0x00 0000480b: DUP1 0000480c: PUSH1 0x00 0000480e: DUP4 0000480f: DUP6 00004810: SUB 00004811: PUSH1 0xa0 00004813: DUP2 00004814: SLT 00004815: ISZERO 00004816: PUSH2 0x481e 00004819: JUMPI 0000481a: PUSH1 0x00 0000481c: DUP1 0000481d: REVERT 0000481e: JUMPDEST 0000481f: DUP5 00004820: CALLDATALOAD 00004821: PUSH8 0xffffffffffffffff 0000482a: DUP1 0000482b: DUP3 0000482c: GT 0000482d: ISZERO 0000482e: PUSH2 0x4836 00004831: JUMPI 00004832: PUSH1 0x00 00004834: DUP1 00004835: REVERT 00004836: JUMPDEST 00004837: PUSH2 0x4842 0000483a: DUP9 0000483b: DUP4 0000483c: DUP10 0000483d: ADD 0000483e: PUSH2 0x470f 00004841: JUMP 00004842: JUMPDEST 00004843: SWAP6 00004844: POP 00004845: PUSH2 0x4850 00004848: PUSH1 0x20 0000484a: DUP9 0000484b: ADD 0000484c: PUSH2 0x4727 0000484f: JUMP 00004850: JUMPDEST 00004851: SWAP5 00004852: POP 00004853: PUSH1 0x60 00004855: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0 00004876: DUP5 00004877: ADD 00004878: SLT 00004879: ISZERO 0000487a: PUSH2 0x4882 0000487d: JUMPI 0000487e: PUSH1 0x00 00004880: DUP1 00004881: REVERT 00004882: JUMPDEST 00004883: PUSH1 0x40 00004885: MLOAD 00004886: SWAP3 00004887: POP 00004888: PUSH1 0x60 0000488a: DUP4 0000488b: ADD 0000488c: SWAP2 0000488d: POP 0000488e: DUP3 0000488f: DUP3 00004890: LT 00004891: DUP2 00004892: DUP4 00004893: GT 00004894: OR 00004895: ISZERO 00004896: PUSH2 0x48a1 00004899: JUMPI 0000489a: PUSH2 0x48a1 0000489d: PUSH2 0x4757 000048a0: JUMP 000048a1: JUMPDEST 000048a2: POP 000048a3: PUSH1 0x40 000048a5: SWAP1 000048a6: DUP2 000048a7: MSTORE 000048a8: DUP6 000048a9: ADD 000048aa: CALLDATALOAD 000048ab: DUP2 000048ac: MSTORE 000048ad: PUSH1 0x60 000048af: DUP6 000048b0: ADD 000048b1: CALLDATALOAD 000048b2: PUSH2 0x48ba 000048b5: DUP2 000048b6: PUSH2 0x47e0 000048b9: JUMP 000048ba: JUMPDEST 000048bb: PUSH1 0x20 000048bd: DUP3 000048be: ADD 000048bf: MSTORE 000048c0: PUSH1 0x80 000048c2: DUP6 000048c3: ADD 000048c4: CALLDATALOAD 000048c5: PUSH2 0x48cd 000048c8: DUP2 000048c9: PUSH2 0x47f2 000048cc: JUMP 000048cd: JUMPDEST 000048ce: PUSH1 0x40 000048d0: DUP3 000048d1: ADD 000048d2: MSTORE 000048d3: SWAP3 000048d4: SWAP6 000048d5: SWAP2 000048d6: SWAP5 000048d7: POP 000048d8: SWAP2 000048d9: SWAP3 000048da: POP 000048db: SWAP1 000048dc: POP 000048dd: JUMP 000048de: JUMPDEST 000048df: PUSH1 0x00 000048e1: PUSH1 0xa0 000048e3: DUP3 000048e4: DUP5 000048e5: SUB 000048e6: SLT 000048e7: ISZERO 000048e8: PUSH2 0x48f0 000048eb: JUMPI 000048ec: PUSH1 0x00 000048ee: DUP1 000048ef: REVERT 000048f0: JUMPDEST 000048f1: PUSH2 0x48f8 000048f4: PUSH2 0x4786 000048f7: JUMP 000048f8: JUMPDEST 000048f9: SWAP1 000048fa: POP 000048fb: DUP2 000048fc: CALLDATALOAD 000048fd: DUP2 000048fe: MSTORE 000048ff: PUSH1 0x20 00004901: DUP1 00004902: DUP4 00004903: ADD 00004904: CALLDATALOAD 00004905: PUSH8 0xffffffffffffffff 0000490e: DUP1 0000490f: DUP3 00004910: GT 00004911: ISZERO 00004912: PUSH2 0x491a 00004915: JUMPI 00004916: PUSH1 0x00 00004918: DUP1 00004919: REVERT 0000491a: JUMPDEST 0000491b: DUP2 0000491c: DUP6 0000491d: ADD 0000491e: SWAP2 0000491f: POP 00004920: DUP6 00004921: PUSH1 0x1f 00004923: DUP4 00004924: ADD 00004925: SLT 00004926: PUSH2 0x492e 00004929: JUMPI 0000492a: PUSH1 0x00 0000492c: DUP1 0000492d: REVERT 0000492e: JUMPDEST 0000492f: DUP2 00004930: CALLDATALOAD 00004931: DUP2 00004932: DUP2 00004933: GT 00004934: ISZERO 00004935: PUSH2 0x4940 00004938: JUMPI 00004939: PUSH2 0x4940 0000493c: PUSH2 0x4757 0000493f: JUMP 00004940: JUMPDEST 00004941: PUSH2 0x4952 00004944: DUP5 00004945: PUSH1 0x1f 00004947: NOT 00004948: PUSH1 0x1f 0000494a: DUP5 0000494b: ADD 0000494c: AND 0000494d: ADD 0000494e: PUSH2 0x47af 00004951: JUMP 00004952: JUMPDEST 00004953: SWAP2 00004954: POP 00004955: DUP1 00004956: DUP3 00004957: MSTORE 00004958: DUP7 00004959: DUP5 0000495a: DUP3 0000495b: DUP6 0000495c: ADD 0000495d: ADD 0000495e: GT 0000495f: ISZERO 00004960: PUSH2 0x4968 00004963: JUMPI 00004964: PUSH1 0x00 00004966: DUP1 00004967: REVERT 00004968: JUMPDEST 00004969: DUP1 0000496a: DUP5 0000496b: DUP5 0000496c: ADD 0000496d: DUP6 0000496e: DUP5 0000496f: ADD 00004970: CALLDATACOPY 00004971: PUSH1 0x00 00004973: SWAP1 00004974: DUP3 00004975: ADD 00004976: DUP5 00004977: ADD 00004978: MSTORE 00004979: SWAP2 0000497a: DUP4 0000497b: ADD 0000497c: SWAP2 0000497d: SWAP1 0000497e: SWAP2 0000497f: MSTORE 00004980: POP 00004981: PUSH2 0x498c 00004984: PUSH1 0x40 00004986: DUP4 00004987: ADD 00004988: PUSH2 0x455c 0000498b: JUMP 0000498c: JUMPDEST 0000498d: PUSH1 0x40 0000498f: DUP3 00004990: ADD 00004991: MSTORE 00004992: PUSH1 0x60 00004994: DUP3 00004995: ADD 00004996: CALLDATALOAD 00004997: PUSH1 0x60 00004999: DUP3 0000499a: ADD 0000499b: MSTORE 0000499c: PUSH2 0x49a7 0000499f: PUSH1 0x80 000049a1: DUP4 000049a2: ADD 000049a3: PUSH2 0x45cd 000049a6: JUMP 000049a7: JUMPDEST 000049a8: PUSH1 0x80 000049aa: DUP3 000049ab: ADD 000049ac: MSTORE 000049ad: SWAP3 000049ae: SWAP2 000049af: POP 000049b0: POP 000049b1: JUMP 000049b2: JUMPDEST 000049b3: PUSH1 0x00 000049b5: PUSH1 0x20 000049b7: DUP3 000049b8: DUP5 000049b9: SUB 000049ba: SLT 000049bb: ISZERO 000049bc: PUSH2 0x49c4 000049bf: JUMPI 000049c0: PUSH1 0x00 000049c2: DUP1 000049c3: REVERT 000049c4: JUMPDEST 000049c5: DUP2 000049c6: CALLDATALOAD 000049c7: PUSH8 0xffffffffffffffff 000049d0: DUP2 000049d1: GT 000049d2: ISZERO 000049d3: PUSH2 0x49db 000049d6: JUMPI 000049d7: PUSH1 0x00 000049d9: DUP1 000049da: REVERT 000049db: JUMPDEST 000049dc: PUSH2 0x49e7 000049df: DUP5 000049e0: DUP3 000049e1: DUP6 000049e2: ADD 000049e3: PUSH2 0x48de 000049e6: JUMP 000049e7: JUMPDEST 000049e8: SWAP5 000049e9: SWAP4 000049ea: POP 000049eb: POP 000049ec: POP 000049ed: POP 000049ee: JUMP 000049ef: JUMPDEST 000049f0: PUSH1 0x00 000049f2: PUSH1 0x20 000049f4: DUP3 000049f5: DUP5 000049f6: SUB 000049f7: SLT 000049f8: ISZERO 000049f9: PUSH2 0x4a01 000049fc: JUMPI 000049fd: PUSH1 0x00 000049ff: DUP1 00004a00: REVERT 00004a01: JUMPDEST 00004a02: DUP2 00004a03: CALLDATALOAD 00004a04: PUSH8 0xffffffffffffffff 00004a0d: DUP2 00004a0e: GT 00004a0f: ISZERO 00004a10: PUSH2 0x4a18 00004a13: JUMPI 00004a14: PUSH1 0x00 00004a16: DUP1 00004a17: REVERT 00004a18: JUMPDEST 00004a19: PUSH2 0x49e7 00004a1c: DUP5 00004a1d: DUP3 00004a1e: DUP6 00004a1f: ADD 00004a20: PUSH2 0x470f 00004a23: JUMP 00004a24: JUMPDEST 00004a25: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00004a46: PUSH1 0x00 00004a48: MSTORE 00004a49: PUSH1 0x21 00004a4b: PUSH1 0x04 00004a4d: MSTORE 00004a4e: PUSH1 0x24 00004a50: PUSH1 0x00 00004a52: REVERT 00004a53: JUMPDEST 00004a54: PUSH1 0x03 00004a56: DUP2 00004a57: LT 00004a58: PUSH2 0x4a8a 00004a5b: JUMPI 00004a5c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00004a7d: PUSH1 0x00 00004a7f: MSTORE 00004a80: PUSH1 0x21 00004a82: PUSH1 0x04 00004a84: MSTORE 00004a85: PUSH1 0x24 00004a87: PUSH1 0x00 00004a89: REVERT 00004a8a: JUMPDEST 00004a8b: SWAP1 00004a8c: MSTORE 00004a8d: JUMP 00004a8e: JUMPDEST 00004a8f: PUSH1 0x20 00004a91: DUP2 00004a92: ADD 00004a93: PUSH2 0x0ae6 00004a96: DUP3 00004a97: DUP5 00004a98: PUSH2 0x4a53 00004a9b: JUMP 00004a9c: JUMPDEST 00004a9d: PUSH1 0x00 00004a9f: DUP1 00004aa0: DUP4 00004aa1: PUSH1 0x1f 00004aa3: DUP5 00004aa4: ADD 00004aa5: SLT 00004aa6: PUSH2 0x4aae 00004aa9: JUMPI 00004aaa: PUSH1 0x00 00004aac: DUP1 00004aad: REVERT 00004aae: JUMPDEST 00004aaf: POP 00004ab0: DUP2 00004ab1: CALLDATALOAD 00004ab2: PUSH8 0xffffffffffffffff 00004abb: DUP2 00004abc: GT 00004abd: ISZERO 00004abe: PUSH2 0x4ac6 00004ac1: JUMPI 00004ac2: PUSH1 0x00 00004ac4: DUP1 00004ac5: REVERT 00004ac6: JUMPDEST 00004ac7: PUSH1 0x20 00004ac9: DUP4 00004aca: ADD 00004acb: SWAP2 00004acc: POP 00004acd: DUP4 00004ace: PUSH1 0x20 00004ad0: DUP3 00004ad1: DUP6 00004ad2: ADD 00004ad3: ADD 00004ad4: GT 00004ad5: ISZERO 00004ad6: PUSH2 0x4ade 00004ad9: JUMPI 00004ada: PUSH1 0x00 00004adc: DUP1 00004add: REVERT 00004ade: JUMPDEST 00004adf: SWAP3 00004ae0: POP 00004ae1: SWAP3 00004ae2: SWAP1 00004ae3: POP 00004ae4: JUMP 00004ae5: JUMPDEST 00004ae6: PUSH1 0x00 00004ae8: DUP1 00004ae9: PUSH1 0x00 00004aeb: PUSH1 0x40 00004aed: DUP5 00004aee: DUP7 00004aef: SUB 00004af0: SLT 00004af1: ISZERO 00004af2: PUSH2 0x4afa 00004af5: JUMPI 00004af6: PUSH1 0x00 00004af8: DUP1 00004af9: REVERT 00004afa: JUMPDEST 00004afb: DUP4 00004afc: CALLDATALOAD 00004afd: PUSH8 0xffffffffffffffff 00004b06: DUP1 00004b07: DUP3 00004b08: GT 00004b09: ISZERO 00004b0a: PUSH2 0x4b12 00004b0d: JUMPI 00004b0e: PUSH1 0x00 00004b10: DUP1 00004b11: REVERT 00004b12: JUMPDEST 00004b13: PUSH2 0x4b1e 00004b16: DUP8 00004b17: DUP4 00004b18: DUP9 00004b19: ADD 00004b1a: PUSH2 0x470f 00004b1d: JUMP 00004b1e: JUMPDEST 00004b1f: SWAP5 00004b20: POP 00004b21: PUSH1 0x20 00004b23: DUP7 00004b24: ADD 00004b25: CALLDATALOAD 00004b26: SWAP2 00004b27: POP 00004b28: DUP1 00004b29: DUP3 00004b2a: GT 00004b2b: ISZERO 00004b2c: PUSH2 0x4b34 00004b2f: JUMPI 00004b30: PUSH1 0x00 00004b32: DUP1 00004b33: REVERT 00004b34: JUMPDEST 00004b35: POP 00004b36: PUSH2 0x4b41 00004b39: DUP7 00004b3a: DUP3 00004b3b: DUP8 00004b3c: ADD 00004b3d: PUSH2 0x4a9c 00004b40: JUMP 00004b41: JUMPDEST 00004b42: SWAP5 00004b43: SWAP8 00004b44: SWAP1 00004b45: SWAP7 00004b46: POP 00004b47: SWAP4 00004b48: SWAP5 00004b49: POP 00004b4a: POP 00004b4b: POP 00004b4c: POP 00004b4d: JUMP 00004b4e: JUMPDEST 00004b4f: PUSH1 0x00 00004b51: DUP1 00004b52: PUSH1 0x20 00004b54: DUP4 00004b55: DUP6 00004b56: SUB 00004b57: SLT 00004b58: ISZERO 00004b59: PUSH2 0x4b61 00004b5c: JUMPI 00004b5d: PUSH1 0x00 00004b5f: DUP1 00004b60: REVERT 00004b61: JUMPDEST 00004b62: DUP3 00004b63: CALLDATALOAD 00004b64: PUSH8 0xffffffffffffffff 00004b6d: DUP2 00004b6e: GT 00004b6f: ISZERO 00004b70: PUSH2 0x4b78 00004b73: JUMPI 00004b74: PUSH1 0x00 00004b76: DUP1 00004b77: REVERT 00004b78: JUMPDEST 00004b79: PUSH2 0x4b84 00004b7c: DUP6 00004b7d: DUP3 00004b7e: DUP7 00004b7f: ADD 00004b80: PUSH2 0x4a9c 00004b83: JUMP 00004b84: JUMPDEST 00004b85: SWAP1 00004b86: SWAP7 00004b87: SWAP1 00004b88: SWAP6 00004b89: POP 00004b8a: SWAP4 00004b8b: POP 00004b8c: POP 00004b8d: POP 00004b8e: POP 00004b8f: JUMP 00004b90: JUMPDEST 00004b91: PUSH1 0x00 00004b93: DUP1 00004b94: PUSH1 0x00 00004b96: DUP1 00004b97: PUSH1 0x80 00004b99: DUP6 00004b9a: DUP8 00004b9b: SUB 00004b9c: SLT 00004b9d: ISZERO 00004b9e: PUSH2 0x4ba6 00004ba1: JUMPI 00004ba2: PUSH1 0x00 00004ba4: DUP1 00004ba5: REVERT 00004ba6: JUMPDEST 00004ba7: DUP5 00004ba8: CALLDATALOAD 00004ba9: PUSH2 0x4bb1 00004bac: DUP2 00004bad: PUSH2 0x4547 00004bb0: JUMP 00004bb1: JUMPDEST 00004bb2: SWAP4 00004bb3: POP 00004bb4: PUSH1 0x20 00004bb6: DUP6 00004bb7: ADD 00004bb8: CALLDATALOAD 00004bb9: PUSH2 0x4bc1 00004bbc: DUP2 00004bbd: PUSH2 0x4547 00004bc0: JUMP 00004bc1: JUMPDEST 00004bc2: SWAP3 00004bc3: POP 00004bc4: PUSH1 0x40 00004bc6: DUP6 00004bc7: ADD 00004bc8: CALLDATALOAD 00004bc9: PUSH2 0x4bd1 00004bcc: DUP2 00004bcd: PUSH2 0x4547 00004bd0: JUMP 00004bd1: JUMPDEST 00004bd2: SWAP4 00004bd3: SWAP7 00004bd4: SWAP3 00004bd5: SWAP6 00004bd6: POP 00004bd7: SWAP3 00004bd8: SWAP4 00004bd9: PUSH1 0x60 00004bdb: ADD 00004bdc: CALLDATALOAD 00004bdd: SWAP3 00004bde: POP 00004bdf: POP 00004be0: JUMP 00004be1: JUMPDEST 00004be2: PUSH1 0x40 00004be4: DUP2 00004be5: ADD 00004be6: PUSH2 0x4bef 00004be9: DUP3 00004bea: DUP6 00004beb: PUSH2 0x4a53 00004bee: JUMP 00004bef: JUMPDEST 00004bf0: PUSH2 0x34aa 00004bf3: PUSH1 0x20 00004bf5: DUP4 00004bf6: ADD 00004bf7: DUP5 00004bf8: PUSH2 0x4a53 00004bfb: JUMP 00004bfc: JUMPDEST 00004bfd: PUSH1 0x00 00004bff: PUSH1 0x20 00004c01: DUP3 00004c02: DUP5 00004c03: SUB 00004c04: SLT 00004c05: ISZERO 00004c06: PUSH2 0x4c0e 00004c09: JUMPI 00004c0a: PUSH1 0x00 00004c0c: DUP1 00004c0d: REVERT 00004c0e: JUMPDEST 00004c0f: POP 00004c10: MLOAD 00004c11: SWAP2 00004c12: SWAP1 00004c13: POP 00004c14: JUMP 00004c15: JUMPDEST 00004c16: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00004c37: PUSH1 0x00 00004c39: MSTORE 00004c3a: PUSH1 0x11 00004c3c: PUSH1 0x04 00004c3e: MSTORE 00004c3f: PUSH1 0x24 00004c41: PUSH1 0x00 00004c43: REVERT 00004c44: JUMPDEST 00004c45: DUP1 00004c46: DUP3 00004c47: MUL 00004c48: DUP2 00004c49: ISZERO 00004c4a: DUP3 00004c4b: DUP3 00004c4c: DIV 00004c4d: DUP5 00004c4e: EQ 00004c4f: OR 00004c50: PUSH2 0x0ae6 00004c53: JUMPI 00004c54: PUSH2 0x0ae6 00004c57: PUSH2 0x4c15 00004c5a: JUMP 00004c5b: JUMPDEST 00004c5c: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00004c7d: PUSH1 0x00 00004c7f: MSTORE 00004c80: PUSH1 0x12 00004c82: PUSH1 0x04 00004c84: MSTORE 00004c85: PUSH1 0x24 00004c87: PUSH1 0x00 00004c89: REVERT 00004c8a: JUMPDEST 00004c8b: PUSH1 0x00 00004c8d: DUP3 00004c8e: PUSH2 0x4c99 00004c91: JUMPI 00004c92: PUSH2 0x4c99 00004c95: PUSH2 0x4c5b 00004c98: JUMP 00004c99: JUMPDEST 00004c9a: POP 00004c9b: DIV 00004c9c: SWAP1 00004c9d: JUMP 00004c9e: JUMPDEST 00004c9f: DUP1 00004ca0: DUP3 00004ca1: ADD 00004ca2: DUP1 00004ca3: DUP3 00004ca4: GT 00004ca5: ISZERO 00004ca6: PUSH2 0x0ae6 00004ca9: JUMPI 00004caa: PUSH2 0x0ae6 00004cad: PUSH2 0x4c15 00004cb0: JUMP 00004cb1: JUMPDEST 00004cb2: PUSH1 0x00 00004cb4: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00004cd5: DUP3 00004cd6: SUB 00004cd7: PUSH2 0x4ce2 00004cda: JUMPI 00004cdb: PUSH2 0x4ce2 00004cde: PUSH2 0x4c15 00004ce1: JUMP 00004ce2: JUMPDEST 00004ce3: POP 00004ce4: PUSH1 0x01 00004ce6: ADD 00004ce7: SWAP1 00004ce8: JUMP 00004ce9: JUMPDEST 00004cea: PUSH1 0x00 00004cec: DUP2 00004ced: PUSH2 0x4cf8 00004cf0: JUMPI 00004cf1: PUSH2 0x4cf8 00004cf4: PUSH2 0x4c15 00004cf7: JUMP 00004cf8: JUMPDEST 00004cf9: POP 00004cfa: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00004d1b: ADD 00004d1c: SWAP1 00004d1d: JUMP 00004d1e: JUMPDEST 00004d1f: PUSH1 0x00 00004d21: DUP1 00004d22: DUP4 00004d23: CALLDATALOAD 00004d24: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1 00004d45: DUP5 00004d46: CALLDATASIZE 00004d47: SUB 00004d48: ADD 00004d49: DUP2 00004d4a: SLT 00004d4b: PUSH2 0x4d53 00004d4e: JUMPI 00004d4f: PUSH1 0x00 00004d51: DUP1 00004d52: REVERT 00004d53: JUMPDEST 00004d54: DUP4 00004d55: ADD 00004d56: PUSH1 0x20 00004d58: DUP2 00004d59: ADD 00004d5a: SWAP3 00004d5b: POP 00004d5c: CALLDATALOAD 00004d5d: SWAP1 00004d5e: POP 00004d5f: PUSH8 0xffffffffffffffff 00004d68: DUP2 00004d69: GT 00004d6a: ISZERO 00004d6b: PUSH2 0x4d73 00004d6e: JUMPI 00004d6f: PUSH1 0x00 00004d71: DUP1 00004d72: REVERT 00004d73: JUMPDEST 00004d74: DUP1 00004d75: CALLDATASIZE 00004d76: SUB 00004d77: DUP3 00004d78: SGT 00004d79: ISZERO 00004d7a: PUSH2 0x4ade 00004d7d: JUMPI 00004d7e: PUSH1 0x00 00004d80: DUP1 00004d81: REVERT 00004d82: JUMPDEST 00004d83: DUP2 00004d84: DUP4 00004d85: MSTORE 00004d86: DUP2 00004d87: DUP2 00004d88: PUSH1 0x20 00004d8a: DUP6 00004d8b: ADD 00004d8c: CALLDATACOPY 00004d8d: POP 00004d8e: PUSH1 0x00 00004d90: PUSH1 0x20 00004d92: DUP3 00004d93: DUP5 00004d94: ADD 00004d95: ADD 00004d96: MSTORE 00004d97: PUSH1 0x00 00004d99: PUSH1 0x20 00004d9b: PUSH1 0x1f 00004d9d: NOT 00004d9e: PUSH1 0x1f 00004da0: DUP5 00004da1: ADD 00004da2: AND 00004da3: DUP5 00004da4: ADD 00004da5: ADD 00004da6: SWAP1 00004da7: POP 00004da8: SWAP3 00004da9: SWAP2 00004daa: POP 00004dab: POP 00004dac: JUMP 00004dad: JUMPDEST 00004dae: DUP1 00004daf: CALLDATALOAD 00004db0: DUP3 00004db1: MSTORE 00004db2: PUSH1 0x00 00004db4: PUSH2 0x4dc0 00004db7: PUSH1 0x20 00004db9: DUP4 00004dba: ADD 00004dbb: DUP4 00004dbc: PUSH2 0x4d1e 00004dbf: JUMP 00004dc0: JUMPDEST 00004dc1: PUSH1 0xa0 00004dc3: PUSH1 0x20 00004dc5: DUP7 00004dc6: ADD 00004dc7: MSTORE 00004dc8: PUSH2 0x4dd5 00004dcb: PUSH1 0xa0 00004dcd: DUP7 00004dce: ADD 00004dcf: DUP3 00004dd0: DUP5 00004dd1: PUSH2 0x4d82 00004dd4: JUMP 00004dd5: JUMPDEST 00004dd6: SWAP2 00004dd7: POP 00004dd8: POP 00004dd9: PUSH1 0x40 00004ddb: DUP4 00004ddc: ADD 00004ddd: CALLDATALOAD 00004dde: PUSH2 0x4de6 00004de1: DUP2 00004de2: PUSH2 0x4547 00004de5: JUMP 00004de6: JUMPDEST 00004de7: PUSH1 0x01 00004de9: PUSH1 0x01 00004deb: PUSH1 0xa0 00004ded: SHL 00004dee: SUB 00004def: AND 00004df0: PUSH1 0x40 00004df2: DUP6 00004df3: ADD 00004df4: MSTORE 00004df5: PUSH1 0x60 00004df7: DUP4 00004df8: DUP2 00004df9: ADD 00004dfa: CALLDATALOAD 00004dfb: SWAP1 00004dfc: DUP6 00004dfd: ADD 00004dfe: MSTORE 00004dff: PUSH1 0xff 00004e01: PUSH2 0x4e0c 00004e04: PUSH1 0x80 00004e06: DUP6 00004e07: ADD 00004e08: PUSH2 0x45cd 00004e0b: JUMP 00004e0c: JUMPDEST 00004e0d: AND 00004e0e: PUSH1 0x80 00004e10: DUP6 00004e11: ADD 00004e12: MSTORE 00004e13: DUP1 00004e14: SWAP2 00004e15: POP 00004e16: POP 00004e17: SWAP3 00004e18: SWAP2 00004e19: POP 00004e1a: POP 00004e1b: JUMP 00004e1c: JUMPDEST 00004e1d: PUSH1 0x20 00004e1f: DUP2 00004e20: MSTORE 00004e21: PUSH1 0x00 00004e23: PUSH2 0x34aa 00004e26: PUSH1 0x20 00004e28: DUP4 00004e29: ADD 00004e2a: DUP5 00004e2b: PUSH2 0x4dad 00004e2e: JUMP 00004e2f: JUMPDEST 00004e30: PUSH1 0x00 00004e32: DUP1 00004e33: DUP4 00004e34: CALLDATALOAD 00004e35: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1 00004e56: DUP5 00004e57: CALLDATASIZE 00004e58: SUB 00004e59: ADD 00004e5a: DUP2 00004e5b: SLT 00004e5c: PUSH2 0x4e64 00004e5f: JUMPI 00004e60: PUSH1 0x00 00004e62: DUP1 00004e63: REVERT 00004e64: JUMPDEST 00004e65: DUP4 00004e66: ADD 00004e67: DUP1 00004e68: CALLDATALOAD 00004e69: SWAP2 00004e6a: POP 00004e6b: PUSH8 0xffffffffffffffff 00004e74: DUP3 00004e75: GT 00004e76: ISZERO 00004e77: PUSH2 0x4e7f 00004e7a: JUMPI 00004e7b: PUSH1 0x00 00004e7d: DUP1 00004e7e: REVERT 00004e7f: JUMPDEST 00004e80: PUSH1 0x20 00004e82: ADD 00004e83: SWAP2 00004e84: POP 00004e85: CALLDATASIZE 00004e86: DUP2 00004e87: SWAP1 00004e88: SUB 00004e89: DUP3 00004e8a: SGT 00004e8b: ISZERO 00004e8c: PUSH2 0x4ade 00004e8f: JUMPI 00004e90: PUSH1 0x00 00004e92: DUP1 00004e93: REVERT 00004e94: JUMPDEST 00004e95: DUP2 00004e96: DUP2 00004e97: SUB 00004e98: DUP2 00004e99: DUP2 00004e9a: GT 00004e9b: ISZERO 00004e9c: PUSH2 0x0ae6 00004e9f: JUMPI 00004ea0: PUSH2 0x0ae6 00004ea3: PUSH2 0x4c15 00004ea6: JUMP 00004ea7: JUMPDEST 00004ea8: PUSH1 0x00 00004eaa: DUP2 00004eab: MLOAD 00004eac: PUSH1 0x20 00004eae: DUP4 00004eaf: ADD 00004eb0: MLOAD 00004eb1: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00004ed2: DUP1 00004ed3: DUP3 00004ed4: AND 00004ed5: SWAP4 00004ed6: POP 00004ed7: PUSH1 0x14 00004ed9: DUP4 00004eda: LT 00004edb: ISZERO 00004edc: PUSH2 0x4eef 00004edf: JUMPI 00004ee0: DUP1 00004ee1: DUP2 00004ee2: DUP5 00004ee3: PUSH1 0x14 00004ee5: SUB 00004ee6: PUSH1 0x03 00004ee8: SHL 00004ee9: SHL 00004eea: DUP4 00004eeb: AND 00004eec: AND 00004eed: SWAP4 00004eee: POP 00004eef: JUMPDEST 00004ef0: POP 00004ef1: POP 00004ef2: POP 00004ef3: SWAP2 00004ef4: SWAP1 00004ef5: POP 00004ef6: JUMP 00004ef7: JUMPDEST 00004ef8: PUSH1 0x00 00004efa: PUSH1 0x20 00004efc: DUP3 00004efd: DUP5 00004efe: SUB 00004eff: SLT 00004f00: ISZERO 00004f01: PUSH2 0x4f09 00004f04: JUMPI 00004f05: PUSH1 0x00 00004f07: DUP1 00004f08: REVERT 00004f09: JUMPDEST 00004f0a: PUSH2 0x34aa 00004f0d: DUP3 00004f0e: PUSH2 0x45cd 00004f11: JUMP 00004f12: JUMPDEST 00004f13: PUSH1 0x80 00004f15: DUP2 00004f16: MSTORE 00004f17: PUSH1 0x00 00004f19: PUSH2 0x4f26 00004f1c: PUSH1 0x80 00004f1e: DUP4 00004f1f: ADD 00004f20: DUP8 00004f21: DUP10 00004f22: PUSH2 0x4d82 00004f25: JUMP 00004f26: JUMPDEST 00004f27: PUSH1 0x01 00004f29: PUSH1 0x01 00004f2b: PUSH1 0xa0 00004f2d: SHL 00004f2e: SUB 00004f2f: SWAP6 00004f30: SWAP1 00004f31: SWAP6 00004f32: AND 00004f33: PUSH1 0x20 00004f35: DUP4 00004f36: ADD 00004f37: MSTORE 00004f38: POP 00004f39: PUSH1 0x40 00004f3b: DUP2 00004f3c: ADD 00004f3d: SWAP3 00004f3e: SWAP1 00004f3f: SWAP3 00004f40: MSTORE 00004f41: PUSH1 0xff 00004f43: AND 00004f44: PUSH1 0x60 00004f46: SWAP1 00004f47: SWAP2 00004f48: ADD 00004f49: MSTORE 00004f4a: SWAP3 00004f4b: SWAP2 00004f4c: POP 00004f4d: POP 00004f4e: JUMP 00004f4f: JUMPDEST 00004f50: PUSH1 0x00 00004f52: PUSH2 0x0ae6 00004f55: CALLDATASIZE 00004f56: DUP4 00004f57: PUSH2 0x48de 00004f5a: JUMP 00004f5b: JUMPDEST 00004f5c: DUP2 00004f5d: DUP4 00004f5e: DUP3 00004f5f: CALLDATACOPY 00004f60: PUSH1 0x00 00004f62: SWAP2 00004f63: ADD 00004f64: SWAP1 00004f65: DUP2 00004f66: MSTORE 00004f67: SWAP2 00004f68: SWAP1 00004f69: POP 00004f6a: JUMP 00004f6b: JUMPDEST 00004f6c: PUSH1 0x20 00004f6e: DUP2 00004f6f: MSTORE 00004f70: PUSH1 0x00 00004f72: PUSH2 0x49e7 00004f75: PUSH1 0x20 00004f77: DUP4 00004f78: ADD 00004f79: DUP5 00004f7a: DUP7 00004f7b: PUSH2 0x4d82 00004f7e: JUMP 00004f7f: JUMPDEST 00004f80: PUSH1 0xff 00004f82: DUP3 00004f83: DUP2 00004f84: AND 00004f85: DUP3 00004f86: DUP3 00004f87: AND 00004f88: SUB 00004f89: SWAP1 00004f8a: DUP2 00004f8b: GT 00004f8c: ISZERO 00004f8d: PUSH2 0x0ae6 00004f90: JUMPI 00004f91: PUSH2 0x0ae6 00004f94: PUSH2 0x4c15 00004f97: JUMP 00004f98: JUMPDEST 00004f99: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00004fba: PUSH1 0x00 00004fbc: MSTORE 00004fbd: PUSH1 0x32 00004fbf: PUSH1 0x04 00004fc1: MSTORE 00004fc2: PUSH1 0x24 00004fc4: PUSH1 0x00 00004fc6: REVERT 00004fc7: JUMPDEST 00004fc8: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 00004fe9: PUSH1 0x00 00004feb: MSTORE 00004fec: PUSH1 0x31 00004fee: PUSH1 0x04 00004ff0: MSTORE 00004ff1: PUSH1 0x24 00004ff3: PUSH1 0x00 00004ff5: REVERT 00004ff6: JUMPDEST 00004ff7: PUSH1 0x00 00004ff9: DUP3 00004ffa: PUSH2 0x5005 00004ffd: JUMPI 00004ffe: PUSH2 0x5005 00005001: PUSH2 0x4c5b 00005004: JUMP 00005005: JUMPDEST 00005006: POP 00005007: MOD 00005008: SWAP1 00005009: JUMP 0000500a: JUMPDEST 0000500b: DUP3 0000500c: DUP2 0000500d: MSTORE 0000500e: PUSH1 0x40 00005010: PUSH1 0x20 00005012: DUP3 00005013: ADD 00005014: MSTORE 00005015: PUSH1 0x00 00005017: PUSH2 0x49e7 0000501a: PUSH1 0x40 0000501c: DUP4 0000501d: ADD 0000501e: DUP5 0000501f: PUSH2 0x4dad 00005022: JUMP 00005023: JUMPDEST 00005024: PUSH1 0x00 00005026: DUP1 00005027: DUP6 00005028: DUP6 00005029: GT 0000502a: ISZERO 0000502b: PUSH2 0x5033 0000502e: JUMPI 0000502f: PUSH1 0x00 00005031: DUP1 00005032: REVERT 00005033: JUMPDEST 00005034: DUP4 00005035: DUP7 00005036: GT 00005037: ISZERO 00005038: PUSH2 0x5040 0000503b: JUMPI 0000503c: PUSH1 0x00 0000503e: DUP1 0000503f: REVERT 00005040: JUMPDEST 00005041: POP 00005042: POP 00005043: DUP3 00005044: ADD 00005045: SWAP4 00005046: SWAP2 00005047: SWAP1 00005048: SWAP3 00005049: SUB 0000504a: SWAP2 0000504b: POP 0000504c: JUMP 0000504d: JUMPDEST 0000504e: DUP1 0000504f: MLOAD 00005050: PUSH2 0x2f56 00005053: DUP2 00005054: PUSH2 0x47f2 00005057: JUMP 00005058: JUMPDEST 00005059: DUP1 0000505a: MLOAD 0000505b: PUSH2 0x2f56 0000505e: DUP2 0000505f: PUSH2 0x47e0 00005062: JUMP 00005063: JUMPDEST 00005064: PUSH1 0x00 00005066: PUSH1 0xe0 00005068: DUP3 00005069: DUP5 0000506a: SUB 0000506b: SLT 0000506c: ISZERO 0000506d: PUSH2 0x5075 00005070: JUMPI 00005071: PUSH1 0x00 00005073: DUP1 00005074: REVERT 00005075: JUMPDEST 00005076: PUSH1 0x40 00005078: MLOAD 00005079: PUSH1 0xe0 0000507b: DUP2 0000507c: ADD 0000507d: DUP2 0000507e: DUP2 0000507f: LT 00005080: PUSH8 0xffffffffffffffff 00005089: DUP3 0000508a: GT 0000508b: OR 0000508c: ISZERO 0000508d: PUSH2 0x5098 00005090: JUMPI 00005091: PUSH2 0x5098 00005094: PUSH2 0x4757 00005097: JUMP 00005098: JUMPDEST 00005099: PUSH1 0x40 0000509b: MSTORE 0000509c: DUP3 0000509d: MLOAD 0000509e: PUSH2 0x50a6 000050a1: DUP2 000050a2: PUSH2 0x4547 000050a5: JUMP 000050a6: JUMPDEST 000050a7: DUP2 000050a8: MSTORE 000050a9: PUSH1 0x20 000050ab: DUP4 000050ac: ADD 000050ad: MLOAD 000050ae: PUSH2 0x50b6 000050b1: DUP2 000050b2: PUSH2 0x47f2 000050b5: JUMP 000050b6: JUMPDEST 000050b7: PUSH1 0x20 000050b9: DUP3 000050ba: ADD 000050bb: MSTORE 000050bc: PUSH1 0x40 000050be: DUP4 000050bf: ADD 000050c0: MLOAD 000050c1: PUSH2 0x50c9 000050c4: DUP2 000050c5: PUSH2 0x47e0 000050c8: JUMP 000050c9: JUMPDEST 000050ca: PUSH1 0x40 000050cc: DUP3 000050cd: ADD 000050ce: MSTORE 000050cf: PUSH1 0x60 000050d1: DUP4 000050d2: ADD 000050d3: MLOAD 000050d4: PUSH2 0x50dc 000050d7: DUP2 000050d8: PUSH2 0x4547 000050db: JUMP 000050dc: JUMPDEST 000050dd: PUSH1 0x60 000050df: DUP3 000050e0: ADD 000050e1: MSTORE 000050e2: PUSH2 0x50ed 000050e5: PUSH1 0x80 000050e7: DUP5 000050e8: ADD 000050e9: PUSH2 0x504d 000050ec: JUMP 000050ed: JUMPDEST 000050ee: PUSH1 0x80 000050f0: DUP3 000050f1: ADD 000050f2: MSTORE 000050f3: PUSH2 0x50fe 000050f6: PUSH1 0xa0 000050f8: DUP5 000050f9: ADD 000050fa: PUSH2 0x5058 000050fd: JUMP 000050fe: JUMPDEST 000050ff: PUSH1 0xa0 00005101: DUP3 00005102: ADD 00005103: MSTORE 00005104: PUSH1 0xc0 00005106: DUP4 00005107: ADD 00005108: MLOAD 00005109: PUSH1 0xc0 0000510b: DUP3 0000510c: ADD 0000510d: MSTORE 0000510e: DUP1 0000510f: SWAP2 00005110: POP 00005111: POP 00005112: SWAP3 00005113: SWAP2 00005114: POP 00005115: POP 00005116: JUMP 00005117: JUMPDEST 00005118: PUSH1 0x00 0000511a: DUP1 0000511b: PUSH1 0x40 0000511d: DUP4 0000511e: DUP6 0000511f: SUB 00005120: SLT 00005121: ISZERO 00005122: PUSH2 0x512a 00005125: JUMPI 00005126: PUSH1 0x00 00005128: DUP1 00005129: REVERT 0000512a: JUMPDEST 0000512b: DUP3 0000512c: MLOAD 0000512d: PUSH2 0x5135 00005130: DUP2 00005131: PUSH2 0x47f2 00005134: JUMP 00005135: JUMPDEST 00005136: PUSH1 0x20 00005138: DUP5 00005139: ADD 0000513a: MLOAD 0000513b: SWAP1 0000513c: SWAP3 0000513d: POP 0000513e: PUSH2 0x45c2 00005141: DUP2 00005142: PUSH2 0x47f2 00005145: JUMP 00005146: JUMPDEST 00005147: PUSH1 0x00 00005149: PUSH1 0xff 0000514b: DUP3 0000514c: AND 0000514d: PUSH1 0xff 0000514f: DUP2 00005150: SUB 00005151: PUSH2 0x515c 00005154: JUMPI 00005155: PUSH2 0x515c 00005158: PUSH2 0x4c15 0000515b: JUMP 0000515c: JUMPDEST 0000515d: PUSH1 0x01 0000515f: ADD 00005160: SWAP3 00005161: SWAP2 00005162: POP 00005163: POP 00005164: JUMP 00005165: JUMPDEST 00005166: PUSH1 0x00 00005168: PUSH1 0x20 0000516a: DUP3 0000516b: DUP5 0000516c: SUB 0000516d: SLT 0000516e: ISZERO 0000516f: PUSH2 0x5177 00005172: JUMPI 00005173: PUSH1 0x00 00005175: DUP1 00005176: REVERT 00005177: JUMPDEST 00005178: DUP2 00005179: CALLDATALOAD 0000517a: PUSH2 0x34aa 0000517d: DUP2 0000517e: PUSH2 0x47e0 00005181: JUMP 00005182: JUMPDEST 00005183: DUP1 00005184: CALLDATALOAD 00005185: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000051a6: DUP2 000051a7: AND 000051a8: DUP2 000051a9: EQ 000051aa: PUSH2 0x2f56 000051ad: JUMPI 000051ae: PUSH1 0x00 000051b0: DUP1 000051b1: REVERT 000051b2: JUMPDEST 000051b3: PUSH1 0x00 000051b5: PUSH2 0x0100 000051b8: DUP1 000051b9: DUP4 000051ba: MSTORE 000051bb: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000051dc: DUP1 000051dd: PUSH2 0x51e5 000051e0: DUP9 000051e1: PUSH2 0x5182 000051e4: JUMP 000051e5: JUMPDEST 000051e6: AND 000051e7: DUP3 000051e8: DUP6 000051e9: ADD 000051ea: MSTORE 000051eb: PUSH2 0x51f7 000051ee: PUSH1 0x20 000051f0: DUP9 000051f1: ADD 000051f2: DUP9 000051f3: PUSH2 0x4d1e 000051f6: JUMP 000051f7: JUMPDEST 000051f8: SWAP3 000051f9: POP 000051fa: PUSH1 0x80 000051fc: PUSH2 0x0120 000051ff: DUP7 00005200: ADD 00005201: MSTORE 00005202: PUSH2 0x5210 00005205: PUSH2 0x0180 00005208: DUP7 00005209: ADD 0000520a: DUP5 0000520b: DUP4 0000520c: PUSH2 0x4d82 0000520f: JUMP 00005210: JUMPDEST 00005211: SWAP3 00005212: POP 00005213: POP 00005214: PUSH2 0x5220 00005217: PUSH1 0x40 00005219: DUP9 0000521a: ADD 0000521b: DUP9 0000521c: PUSH2 0x4d1e 0000521f: JUMP 00005220: JUMPDEST 00005221: PUSH1 0xff 00005223: NOT 00005224: DUP7 00005225: DUP6 00005226: SUB 00005227: ADD 00005228: PUSH2 0x0140 0000522b: DUP8 0000522c: ADD 0000522d: MSTORE 0000522e: PUSH2 0x5238 00005231: DUP5 00005232: DUP3 00005233: DUP5 00005234: PUSH2 0x4d82 00005237: JUMP 00005238: JUMPDEST 00005239: SWAP4 0000523a: POP 0000523b: POP 0000523c: POP 0000523d: DUP1 0000523e: PUSH2 0x5249 00005241: PUSH1 0x60 00005243: DUP10 00005244: ADD 00005245: PUSH2 0x5182 00005248: JUMP 00005249: JUMPDEST 0000524a: AND 0000524b: PUSH2 0x0160 0000524e: DUP6 0000524f: ADD 00005250: MSTORE 00005251: POP 00005252: SWAP1 00005253: POP 00005254: DUP4 00005255: CALLDATALOAD 00005256: PUSH2 0x525e 00005259: DUP2 0000525a: PUSH2 0x47e0 0000525d: JUMP 0000525e: JUMPDEST 0000525f: PUSH4 0xffffffff 00005264: DUP2 00005265: AND 00005266: PUSH1 0x20 00005268: DUP5 00005269: ADD 0000526a: MSTORE 0000526b: POP 0000526c: PUSH1 0x20 0000526e: DUP5 0000526f: ADD 00005270: CALLDATALOAD 00005271: PUSH32 0xffffffffffffffff000000000000000000000000000000000000000000000000 00005292: DUP2 00005293: AND 00005294: DUP1 00005295: DUP3 00005296: EQ 00005297: PUSH2 0x529f 0000529a: JUMPI 0000529b: PUSH1 0x00 0000529d: DUP1 0000529e: REVERT 0000529f: JUMPDEST 000052a0: DUP1 000052a1: PUSH1 0x40 000052a3: DUP6 000052a4: ADD 000052a5: MSTORE 000052a6: POP 000052a7: POP 000052a8: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 000052c9: PUSH2 0x52d4 000052cc: PUSH1 0x40 000052ce: DUP7 000052cf: ADD 000052d0: PUSH2 0x4727 000052d3: JUMP 000052d4: JUMPDEST 000052d5: AND 000052d6: PUSH1 0x60 000052d8: DUP4 000052d9: ADD 000052da: MSTORE 000052db: PUSH2 0x52e6 000052de: PUSH1 0x60 000052e0: DUP6 000052e1: ADD 000052e2: PUSH2 0x4727 000052e5: JUMP 000052e6: JUMPDEST 000052e7: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 00005308: DUP2 00005309: AND 0000530a: PUSH1 0x80 0000530c: DUP5 0000530d: ADD 0000530e: MSTORE 0000530f: POP 00005310: PUSH2 0x531b 00005313: PUSH1 0x80 00005315: DUP6 00005316: ADD 00005317: PUSH2 0x5182 0000531a: JUMP 0000531b: JUMPDEST 0000531c: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 0000533d: DUP2 0000533e: AND 0000533f: PUSH1 0xa0 00005341: DUP5 00005342: ADD 00005343: MSTORE 00005344: POP 00005345: PUSH2 0x5350 00005348: PUSH1 0xa0 0000534a: DUP6 0000534b: ADD 0000534c: PUSH2 0x455c 0000534f: JUMP 00005350: JUMPDEST 00005351: PUSH1 0x01 00005353: PUSH1 0x01 00005355: PUSH1 0xa0 00005357: SHL 00005358: SUB 00005359: AND 0000535a: PUSH1 0xc0 0000535c: DUP4 0000535d: ADD 0000535e: MSTORE 0000535f: PUSH1 0xe0 00005361: SWAP1 00005362: SWAP2 00005363: ADD 00005364: SWAP2 00005365: SWAP1 00005366: SWAP2 00005367: MSTORE 00005368: SWAP3 00005369: SWAP2 0000536a: POP 0000536b: POP 0000536c: JUMP 0000536d: JUMPDEST 0000536e: PUSH1 0x01 00005370: PUSH1 0x01 00005372: PUSH1 0xa0 00005374: SHL 00005375: SUB 00005376: DUP9 00005377: AND 00005378: DUP2 00005379: MSTORE 0000537a: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 0000539b: DUP8 0000539c: AND 0000539d: PUSH1 0x20 0000539f: DUP3 000053a0: ADD 000053a1: MSTORE 000053a2: DUP6 000053a3: PUSH1 0x40 000053a5: DUP3 000053a6: ADD 000053a7: MSTORE 000053a8: PUSH4 0xffffffff 000053ad: DUP6 000053ae: AND 000053af: PUSH1 0x60 000053b1: DUP3 000053b2: ADD 000053b3: MSTORE 000053b4: PUSH8 0xffffffffffffffff 000053bd: DUP5 000053be: AND 000053bf: PUSH1 0x80 000053c1: DUP3 000053c2: ADD 000053c3: MSTORE 000053c4: PUSH1 0xc0 000053c6: PUSH1 0xa0 000053c8: DUP3 000053c9: ADD 000053ca: MSTORE 000053cb: PUSH1 0x00 000053cd: PUSH2 0x53da 000053d0: PUSH1 0xc0 000053d2: DUP4 000053d3: ADD 000053d4: DUP5 000053d5: DUP7 000053d6: PUSH2 0x4d82 000053d9: JUMP 000053da: JUMPDEST 000053db: SWAP10 000053dc: SWAP9 000053dd: POP 000053de: POP 000053df: POP 000053e0: POP 000053e1: POP 000053e2: POP 000053e3: POP 000053e4: POP 000053e5: POP 000053e6: JUMP 000053e7: JUMPDEST 000053e8: PUSH1 0x00 000053ea: JUMPDEST 000053eb: DUP4 000053ec: DUP2 000053ed: LT 000053ee: ISZERO 000053ef: PUSH2 0x5402 000053f2: JUMPI 000053f3: DUP2 000053f4: DUP2 000053f5: ADD 000053f6: MLOAD 000053f7: DUP4 000053f8: DUP3 000053f9: ADD 000053fa: MSTORE 000053fb: PUSH1 0x20 000053fd: ADD 000053fe: PUSH2 0x53ea 00005401: JUMP 00005402: JUMPDEST 00005403: POP 00005404: POP 00005405: PUSH1 0x00 00005407: SWAP2 00005408: ADD 00005409: MSTORE 0000540a: JUMP 0000540b: JUMPDEST 0000540c: PUSH1 0x00 0000540e: DUP2 0000540f: MLOAD 00005410: DUP1 00005411: DUP5 00005412: MSTORE 00005413: PUSH2 0x5423 00005416: DUP2 00005417: PUSH1 0x20 00005419: DUP7 0000541a: ADD 0000541b: PUSH1 0x20 0000541d: DUP7 0000541e: ADD 0000541f: PUSH2 0x53e7 00005422: JUMP 00005423: JUMPDEST 00005424: PUSH1 0x1f 00005426: ADD 00005427: PUSH1 0x1f 00005429: NOT 0000542a: AND 0000542b: SWAP3 0000542c: SWAP1 0000542d: SWAP3 0000542e: ADD 0000542f: PUSH1 0x20 00005431: ADD 00005432: SWAP3 00005433: SWAP2 00005434: POP 00005435: POP 00005436: JUMP 00005437: JUMPDEST 00005438: PUSH1 0x01 0000543a: PUSH1 0x01 0000543c: PUSH1 0xa0 0000543e: SHL 0000543f: SUB 00005440: DUP5 00005441: AND 00005442: DUP2 00005443: MSTORE 00005444: DUP3 00005445: PUSH1 0x20 00005447: DUP3 00005448: ADD 00005449: MSTORE 0000544a: PUSH1 0x60 0000544c: PUSH1 0x40 0000544e: DUP3 0000544f: ADD 00005450: MSTORE 00005451: PUSH1 0x00 00005453: PUSH2 0x545f 00005456: PUSH1 0x60 00005458: DUP4 00005459: ADD 0000545a: DUP5 0000545b: PUSH2 0x540b 0000545e: JUMP 0000545f: JUMPDEST 00005460: SWAP6 00005461: SWAP5 00005462: POP 00005463: POP 00005464: POP 00005465: POP 00005466: POP 00005467: JUMP 00005468: JUMPDEST 00005469: PUSH1 0x00 0000546b: PUSH1 0x20 0000546d: DUP3 0000546e: DUP5 0000546f: SUB 00005470: SLT 00005471: ISZERO 00005472: PUSH2 0x547a 00005475: JUMPI 00005476: PUSH1 0x00 00005478: DUP1 00005479: REVERT 0000547a: JUMPDEST 0000547b: DUP2 0000547c: MLOAD 0000547d: DUP1 0000547e: ISZERO 0000547f: ISZERO 00005480: DUP2 00005481: EQ 00005482: PUSH2 0x34aa 00005485: JUMPI 00005486: PUSH1 0x00 00005488: DUP1 00005489: REVERT 0000548a: JUMPDEST 0000548b: PUSH1 0xff 0000548d: DUP2 0000548e: DUP2 0000548f: AND 00005490: DUP4 00005491: DUP3 00005492: AND 00005493: ADD 00005494: SWAP1 00005495: DUP2 00005496: GT 00005497: ISZERO 00005498: PUSH2 0x0ae6 0000549b: JUMPI 0000549c: PUSH2 0x0ae6 0000549f: PUSH2 0x4c15 000054a2: JUMP 000054a3: JUMPDEST 000054a4: PUSH1 0x20 000054a6: DUP2 000054a7: MSTORE 000054a8: DUP2 000054a9: MLOAD 000054aa: PUSH1 0x20 000054ac: DUP3 000054ad: ADD 000054ae: MSTORE 000054af: PUSH1 0x00 000054b1: PUSH1 0x20 000054b3: DUP4 000054b4: ADD 000054b5: MLOAD 000054b6: PUSH1 0xa0 000054b8: PUSH1 0x40 000054ba: DUP5 000054bb: ADD 000054bc: MSTORE 000054bd: PUSH2 0x54c9 000054c0: PUSH1 0xc0 000054c2: DUP5 000054c3: ADD 000054c4: DUP3 000054c5: PUSH2 0x540b 000054c8: JUMP 000054c9: JUMPDEST 000054ca: SWAP1 000054cb: POP 000054cc: PUSH1 0x01 000054ce: PUSH1 0x01 000054d0: PUSH1 0xa0 000054d2: SHL 000054d3: SUB 000054d4: PUSH1 0x40 000054d6: DUP6 000054d7: ADD 000054d8: MLOAD 000054d9: AND 000054da: PUSH1 0x60 000054dc: DUP5 000054dd: ADD 000054de: MSTORE 000054df: PUSH1 0x60 000054e1: DUP5 000054e2: ADD 000054e3: MLOAD 000054e4: PUSH1 0x80 000054e6: DUP5 000054e7: ADD 000054e8: MSTORE 000054e9: PUSH1 0xff 000054eb: PUSH1 0x80 000054ed: DUP6 000054ee: ADD 000054ef: MLOAD 000054f0: AND 000054f1: PUSH1 0xa0 000054f3: DUP5 000054f4: ADD 000054f5: MSTORE 000054f6: DUP1 000054f7: SWAP2 000054f8: POP 000054f9: POP 000054fa: SWAP3 000054fb: SWAP2 000054fc: POP 000054fd: POP 000054fe: JUMP 000054ff: JUMPDEST 00005500: PUSH8 0xffffffffffffffff 00005509: DUP3 0000550a: DUP2 0000550b: AND 0000550c: DUP3 0000550d: DUP3 0000550e: AND 0000550f: SUB 00005510: SWAP1 00005511: DUP1 00005512: DUP3 00005513: GT 00005514: ISZERO 00005515: PUSH2 0x5520 00005518: JUMPI 00005519: PUSH2 0x5520 0000551c: PUSH2 0x4c15 0000551f: JUMP 00005520: JUMPDEST 00005521: POP 00005522: SWAP3 00005523: SWAP2 00005524: POP 00005525: POP 00005526: JUMP 00005527: JUMPDEST 00005528: PUSH1 0x00 0000552a: PUSH1 0x20 0000552c: DUP3 0000552d: DUP5 0000552e: SUB 0000552f: SLT 00005530: ISZERO 00005531: PUSH2 0x5539 00005534: JUMPI 00005535: PUSH1 0x00 00005537: DUP1 00005538: REVERT 00005539: JUMPDEST 0000553a: DUP2 0000553b: MLOAD 0000553c: PUSH2 0x34aa 0000553f: DUP2 00005540: PUSH2 0x47e0 00005543: JUMP 00005544: JUMPDEST 00005545: PUSH1 0x00 00005547: DUP1 00005548: PUSH1 0x00 0000554a: DUP1 0000554b: PUSH1 0x80 0000554d: DUP6 0000554e: DUP8 0000554f: SUB 00005550: SLT 00005551: ISZERO 00005552: PUSH2 0x555a 00005555: JUMPI 00005556: PUSH1 0x00 00005558: DUP1 00005559: REVERT 0000555a: JUMPDEST 0000555b: DUP5 0000555c: MLOAD 0000555d: PUSH2 0x5565 00005560: DUP2 00005561: PUSH2 0x47f2 00005564: JUMP 00005565: JUMPDEST 00005566: PUSH1 0x20 00005568: DUP7 00005569: ADD 0000556a: MLOAD 0000556b: SWAP1 0000556c: SWAP5 0000556d: POP 0000556e: PUSH2 0x5576 00005571: DUP2 00005572: PUSH2 0x47f2 00005575: JUMP 00005576: JUMPDEST 00005577: PUSH1 0x40 00005579: DUP7 0000557a: ADD 0000557b: MLOAD 0000557c: SWAP1 0000557d: SWAP4 0000557e: POP 0000557f: PUSH2 0x5587 00005582: DUP2 00005583: PUSH2 0x47f2 00005586: JUMP 00005587: JUMPDEST 00005588: PUSH1 0x60 0000558a: DUP7 0000558b: ADD 0000558c: MLOAD 0000558d: SWAP1 0000558e: SWAP3 0000558f: POP 00005590: PUSH2 0x5598 00005593: DUP2 00005594: PUSH2 0x47e0 00005597: JUMP 00005598: JUMPDEST 00005599: SWAP4 0000559a: SWAP7 0000559b: SWAP3 0000559c: SWAP6 0000559d: POP 0000559e: SWAP1 0000559f: SWAP4 000055a0: POP 000055a1: POP 000055a2: JUMP 000055a3: JUMPDEST 000055a4: PUSH1 0x00 000055a6: PUSH1 0x20 000055a8: DUP3 000055a9: DUP5 000055aa: SUB 000055ab: SLT 000055ac: ISZERO 000055ad: PUSH2 0x55b5 000055b0: JUMPI 000055b1: PUSH1 0x00 000055b3: DUP1 000055b4: REVERT 000055b5: JUMPDEST 000055b6: PUSH2 0x34aa 000055b9: DUP3 000055ba: PUSH2 0x5182 000055bd: JUMP 000055be: JUMPDEST 000055bf: PUSH1 0x00 000055c1: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 000055e2: DUP1 000055e3: DUP10 000055e4: AND 000055e5: DUP4 000055e6: MSTORE 000055e7: DUP7 000055e8: DUP9 000055e9: PUSH1 0x04 000055eb: DUP6 000055ec: ADD 000055ed: CALLDATACOPY 000055ee: DUP7 000055ef: DUP4 000055f0: ADD 000055f1: PUSH1 0x04 000055f3: DUP2 000055f4: ADD 000055f5: PUSH1 0x00 000055f7: DUP2 000055f8: MSTORE 000055f9: DUP7 000055fa: DUP9 000055fb: DUP3 000055fc: CALLDATACOPY 000055fd: POP 000055fe: SWAP4 000055ff: AND 00005600: SWAP4 00005601: SWAP1 00005602: SWAP3 00005603: ADD 00005604: PUSH1 0x04 00005606: DUP2 00005607: ADD 00005608: SWAP4 00005609: SWAP1 0000560a: SWAP4 0000560b: MSTORE 0000560c: POP 0000560d: POP 0000560e: PUSH1 0x08 00005610: ADD 00005611: SWAP5 00005612: SWAP4 00005613: POP 00005614: POP 00005615: POP 00005616: POP 00005617: JUMP 00005618: JUMPDEST 00005619: PUSH1 0x00 0000561b: DUP3 0000561c: MLOAD 0000561d: PUSH2 0x562a 00005620: DUP2 00005621: DUP5 00005622: PUSH1 0x20 00005624: DUP8 00005625: ADD 00005626: PUSH2 0x53e7 00005629: JUMP 0000562a: JUMPDEST 0000562b: SWAP2 0000562c: SWAP1 0000562d: SWAP2 0000562e: ADD 0000562f: SWAP3 00005630: SWAP2 00005631: POP 00005632: POP 00005633: JUMP 00005634: INVALID 00005635: LOG2 00005636: PUSH5 0x6970667358 0000563c: UNKNOWN(0x22) 0000563d: SLT 0000563e: KECCAK256 0000563f: MUL 00005640: POP 00005641: UNKNOWN(0xA9) 00005642: PUSH22 0x903d028feccceeafc933f36096a5a0107b364b170dad 00005659: UNKNOWN(0xEE) 0000565a: UNKNOWN(0x25) 0000565b: UNKNOWN(0xDE) 0000565c: UNKNOWN(0xBD) 0000565d: SWAP12 0000565e: SAR 0000565f: PUSH5 0x736f6c6343 00005665: STOP 00005666: ADDMOD 00005667: XOR 00005668: STOP 00005669: CALLER
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0xaa0ed95964a76aa56f483615901de10db75e7fdbaef25cf742091af63ad8d2cc
call_targets:
0x7e994d7fc7a2c3cad2331dadb07902f3a46b6cd9
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xaa0ed95964a76aa56f483615901de10db75e7fdbaef25cf742091af63ad8d2cc",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x7e994d7fc7a2c3cad2331dadb07902f3a46b6cd9"
],
"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": "0xe5d3d714",
"selector": "0xe5d3d714",
"calldata_variants": [
"0xe5d3d714",
"0xe5d3d7140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe78cea92",
"selector": "0xe78cea92",
"calldata_variants": [
"0xe78cea92",
"0xe78cea920000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3407480",
"selector": "0xf3407480",
"calldata_variants": [
"0xf3407480",
"0xf34074800000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd80687ef",
"selector": "0xd80687ef",
"calldata_variants": [
"0xd80687ef",
"0xd80687ef0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdab1b4bd",
"selector": "0xdab1b4bd",
"calldata_variants": [
"0xdab1b4bd",
"0xdab1b4bd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdf4d4663",
"selector": "0xdf4d4663",
"calldata_variants": [
"0xdf4d4663",
"0xdf4d46630000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe30c3978",
"selector": "0xe30c3978",
"calldata_variants": [
"0xe30c3978",
"0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3089,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5672,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7800,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 7,
"guards_detected": [],
"untrusted_call_count": 7
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0xaa0ed95964a76aa56f483615901de10db75e7fdbaef25cf742091af63ad8d2cc
call_targets:
0x7e994d7fc7a2c3cad2331dadb07902f3a46b6cd9
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0xaa0ed95964a76aa56f483615901de10db75e7fdbaef25cf742091af63ad8d2cc",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x7e994d7fc7a2c3cad2331dadb07902f3a46b6cd9"
],
"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": "0xe5d3d714",
"selector": "0xe5d3d714",
"calldata_variants": [
"0xe5d3d714",
"0xe5d3d7140000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe78cea92",
"selector": "0xe78cea92",
"calldata_variants": [
"0xe78cea92",
"0xe78cea920000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf2fde38b",
"selector": "0xf2fde38b",
"calldata_variants": [
"0xf2fde38b",
"0xf2fde38b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xf3407480",
"selector": "0xf3407480",
"calldata_variants": [
"0xf3407480",
"0xf34074800000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xd80687ef",
"selector": "0xd80687ef",
"calldata_variants": [
"0xd80687ef",
"0xd80687ef0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdab1b4bd",
"selector": "0xdab1b4bd",
"calldata_variants": [
"0xdab1b4bd",
"0xdab1b4bd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xdf4d4663",
"selector": "0xdf4d4663",
"calldata_variants": [
"0xdf4d4663",
"0xdf4d46630000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0xe30c3978",
"selector": "0xe30c3978",
"calldata_variants": [
"0xe30c3978",
"0xe30c39780000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 3089,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 5672,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 7800,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 7,
"guards_detected": []
}
|
| medium | auth | codex | Bridge-out signatures are not bound to a specific MezoBridge instance | 75 | no | — |
viewevidence_json{
"evidence": "Digest is computed as `keccak256(abi.encode(block.chainid, entry))` with no contract address/domain separation before `toEthSignedMessageHash()`.",
"locations": [
"contracts/contracts/MezoBridge.sol:458"
],
"recommendation": "Include `address(this)` (and ideally a version or EIP-712 domain separator) in the signed digest, and update validators to sign the new domain. For example, sign `keccak256(abi.encode(block.chainid, address(this), entry))` or use EIP-712 typed data.",
"exploit_scenario": "If multiple MezoBridge deployments exist on the same chain (e.g., an old bridge left funded alongside a new one), an attacker can reuse validator signatures collected for a legitimate unlock on one instance to execute `attestBridgeOutWithSignatures` on another instance. Because the signed digest omits `address(this)`, the signatures validate on any contract with the same validator set and chain ID, enabling unintended withdrawals from the other contract."
}
|
| low | other | codex | ERC20 bridging assumes full transfer amount (fee-on-transfer tokens can undercollateralize) | 65 | no | — |
viewevidence_json{
"evidence": "The bridge emits/records `amount` before calling `safeTransferFrom` and never checks the actual received balance delta.",
"locations": [
"contracts/contracts/ERC20Bridge.sol:191",
"contracts/contracts/ERC20Bridge.sol:211"
],
"recommendation": "Either disallow fee-on-transfer tokens in `enableERC20Token` (document/enforce allowlist) or compute the actual received amount via balance-before/after and emit/bridge that amount instead.",
"exploit_scenario": "If governance enables a fee-on-transfer/deflationary ERC20, a user can bridge `amount`, receive a full `AssetsLocked` event for `amount`, but the contract will receive less than `amount`. Validators may mint/unlock the full `amount` on Mezo, leaving the Ethereum-side bridge undercollateralized and allowing value extraction."
}
|
| info | other | cast | Heavy EXTCODE*/BALANCE usage | 55 | no | — |
viewevidence_json{
"notes": "frequent external code or balance checks; may indicate introspection or validation logic",
"ext_balance_count": 6
}
|
| info | other | cast | Heavy CALL-family usage | 55 | no | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 16
}
|