9ddbf2b4-3560-4207-aba0-175d63d7e610
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 |
|---|---|---|---|---|
| 30298 | report.consolidate | complete | 1 / 1 | 3 months ago |
| 73972 | artifact.fetch | failed | 1 / 3 | 1 week ago |
| 73973 | tool.cast_disasm | complete | 1 / 3 | 1 week ago |
| 73974 | analysis.bundle | complete | 1 / 3 | 1 week ago |
| 73975 | capability.graph | complete | 1 / 3 | 1 week ago |
| 73976 | detector.run | complete | 1 / 3 | 1 week ago |
| 73977 | validation.fork | complete | 1 / 3 | 1 week ago |
No slither job recorded yet.
[codex:772943] OpenAI Codex v0.77.0 (research preview)
[codex:772943] --------
[codex:772943] workdir: /tmp/codex-multi-t07hntsb
[codex:772943] model: gpt-5.2-codex
[codex:772943] provider: openai
[codex:772943] approval: never
[codex:772943] sandbox: read-only
[codex:772943] reasoning effort: xhigh
[codex:772943] reasoning summaries: auto
[codex:772943] session id: 019b652e-bfec-7b52-8c5b-ef79f2d6324d
[codex:772943] --------
[codex:772943] user
[codex:772943] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:772943] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:772943] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:772943]
[codex:772943] Scope rules:
[codex:772943] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:772943] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:772943]
[codex:772943] Output MUST be valid JSON matching the provided schema.
[codex:772943] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:772943] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:772943]
[codex:772943] Output constraints (IMPORTANT):
[codex:772943] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:772943] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:772943] mcp startup: no servers
[codex:772943]
[codex:772943] thinking
[codex:772943] **Preparing to read instruction files**
[codex:772943] exec
[codex:772943] /bin/bash -lc ls in /tmp/codex-multi-t07hntsb succeeded in 5ms:
[codex:772943] AUDIT_BUNDLE.txt
[codex:772943] codex-output-schema.json
[codex:772943] contracts
[codex:772943]
[codex:772943] thinking
[codex:772943] **Checking user skills and preparing to read audit file**
[codex:772943] exec
[codex:772943] /bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-multi-t07hntsb succeeded in 6ms:
[codex:772943] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:772943]
[codex:772943] ================================================================================
[codex:772943] FILE: contracts/@openzeppelin/contracts/access/Ownable.sol
[codex:772943] ================================================================================
[codex:772943] // SPDX-License-Identifier: MIT
[codex:772943] // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)
[codex:772943]
[codex:772943] pragma solidity ^0.8.0;
[codex:772943]
[codex:772943] import "../utils/Context.sol";
[codex:772943]
[codex:772943] /**
[codex:772943] * @dev Contract module which provides a basic access control mechanism, where
[codex:772943] * there is an account (an owner) that can be granted exclusive access to
[codex:772943] * specific functions.
[codex:772943] *
[codex:772943] * By default, the owner account will be the one that deploys the contract. This
[codex:772943] * can later be changed with {transferOwnership}.
[codex:772943] *
[codex:772943]
[codex:772943] thinking
[codex:772943] **Planning segmented file parsing**
[codex:772943] exec
[codex:772943] /bin/bash -lc 'rg -n "''^FILE:" AUDIT_BUNDLE.txt' in /tmp/codex-multi-t07hntsb succeeded in 6ms:
[codex:772943] 4:FILE: contracts/@openzeppelin/contracts/access/Ownable.sol
[codex:772943] 84:FILE: contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol
[codex:772943] 170:FILE: contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol
[codex:772943] 234:FILE: contracts/@openzeppelin/contracts/utils/Context.sol
[codex:772943] 262:FILE: contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol
[codex:772943] 349:FILE: contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol
[codex:772943] 433:FILE: contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol
[codex:772943] 627:FILE: contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol
[codex:772943] 663:FILE: contracts/@uniswap/lib/contracts/libraries/TransferHelper.sol
[codex:772943] 718:FILE: contracts/contracts/synth-core/Portal.sol
[codex:772943] 1411:FILE: contracts/contracts/synth-core/interfaces/IBridge.sol
[codex:772943] 1441:FILE: contracts/contracts/synth-core/interfaces/IWrapper.sol
[codex:772943] 1453:FILE: contracts/contracts/synth-core/metarouter/MetaRouteStructs.sol
[codex:772943] 1558:FILE: contracts/contracts/synth-core/metarouter/interfaces/IMetaRouter.sol
[codex:772943] 1607:FILE: contracts/contracts/synth-core/types/BtcSerial.sol
[codex:772943] 1626:FILE: contracts/contracts/utils/RelayRecipientUpgradeable.sol
[codex:772943]
[codex:772943] thinking
[codex:772943] **Examining main contract Portal.sol**
[codex:772943] exec
[codex:772943] /bin/bash -lc "sed -n '718,1100p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-t07hntsb succeeded in 7ms:
[codex:772943] FILE: contracts/contracts/synth-core/Portal.sol
[codex:772943] ================================================================================
[codex:772943] // SPDX-License-Identifier: GPL-3.0
[codex:772943]
[codex:772943] pragma solidity ^0.8.0;
[codex:772943]
[codex:772943] import "@openzeppelin/contracts/access/Ownable.sol";
[codex:772943] import "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol";
[codex:772943] import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:772943] import "./interfaces/IBridge.sol";
[codex:772943] import "@uniswap/lib/contracts/libraries/TransferHelper.sol";
[codex:772943] import "../utils/RelayRecipientUpgradeable.sol";
[codex:772943] import "./interfaces/IWrapper.sol";
[codex:772943] import "./metarouter/interfaces/IMetaRouter.sol";
[codex:772943]
[codex:772943] /**
[codex:772943] * @title A contract that synthesizes tokens
[codex:772943] * @notice In order to create a synthetic representation on another network, the user must call synthesize function here
[codex:772943] * @dev All function calls are currently implemented without side effects
[codex:772943] */
[codex:772943] exec
[codex:772943] /bin/bash -lc "sed -n '1100,1415p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-t07hntsb succeeded in 5ms:
[codex:772943] );
[codex:772943] IBridge(bridge).transmitRequestV2(
[codex:772943] out,
[codex:772943] _receiveSide,
[codex:772943] _oppositeBridge,
[codex:772943] _chainId
[codex:772943] );
[codex:772943] }
[codex:772943]
[codex:772943] emit RevertBurnRequest(_internalID, _msgSender());
[codex:772943] emit ClientIdLog(_internalID, _clientID);
[codex:772943] }
[codex:772943]
[codex:772943] function metaRevertRequest(
[codex:772943] MetaRouteStructs.MetaRevertTransaction memory _metaRevertTransaction
[codex:772943] ) external whenNotPaused {
[codex:772943] if (_metaRevertTransaction.swapCalldata.length != 0){
[codex:772943] bytes32 externalID = keccak256(abi.encodePacked(_metaRevertTransaction.internalID, address(this), _msgSender(), block.chainid));
[codex:772943]
[codex:772943] require(
[codex:772943]
[codex:772943] thinking
[codex:772943] **Reviewing upgradeable contract and reentrancy risks**
[codex:772943]
[codex:772943] I'm examining the Portal and RelayRecipientUpgradeable contracts for vulnerabilities like uninitialized implementations, external call patterns, and reentrancy concerns, especially around state updates before external calls and access controls on sensitive functions. I'm also considering if public initializer exposure or missing constructor safeguards pose real risks given typical proxy usage.
[codex:772943] exec
[codex:772943] /bin/bash -lc 'rg -n "synthesizeNative|permit|wrapper|native" AUDIT_BUNDLE.txt' in /tmp/codex-multi-t07hntsb succeeded in 6ms:
[codex:772943] 181: * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by
[codex:772943] 207: function permit(
[codex:772943] 219: * included whenever a signature is generated for {permit}.
[codex:772943] 221: * Every successful call to {permit} increases ``owner``'s nonce by one. This
[codex:772943] 227: * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.
[codex:772943] 741: address public wrapper;
[codex:772943] 832: event SetWrapper(address wrapper);
[codex:772943] 856: address _wrapper,
[codex:772943] 861: wrapper = _wrapper;
[codex:772943] 1237: function setWrapper(address _wrapper) external onlyOwner {
[codex:772943] 1238: wrapper = _wrapper;
[codex:772943] 1239: emit SetWrapper(_wrapper);
[codex:772943] 1264: * @dev Internal function used in synthesize, synthesizeNative, synthesizeWithPermit
[codex:772943] 1516: bool nativeIn;
[codex:772943]
[codex:772943] thinking
[codex:772943] **Analyzing contract code and potential risks**
[codex:772943] exec
[codex:772943] /bin/bash -lc 'rg --files' in /tmp/codex-multi-t07hntsb succeeded in 10ms:
[codex:772943] codex-output-schema.json
[codex:772943] AUDIT_BUNDLE.txt
[codex:772943] contracts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol
[codex:772943] contracts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol
[codex:772943] contracts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol
[codex:772943] contracts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol
[codex:772943] contracts/@uniswap/lib/contracts/libraries/TransferHelper.sol
[codex:772943] contracts/@openzeppelin/contracts/access/Ownable.sol
[codex:772943] contracts/contracts/utils/RelayRecipientUpgradeable.sol
[codex:772943] contracts/contracts/synth-core/Portal.sol
[codex:772943] contracts/@openzeppelin/contracts/utils/Context.sol
[codex:772943] contracts/contracts/synth-core/interfaces/IWrapper.sol
[codex:772943] contracts/contracts/synth-core/interfaces/IBridge.sol
[codex:772943] contracts/contracts/synth-core/types/BtcSerial.sol
[codex:772943] contracts/contracts/synth-core/metarouter/MetaRouteStructs.sol
[codex:772943] contracts/@openzeppelin/contracts/token/ERC20/IERC20.sol
[codex:772943] contracts/contracts/synth-core/metarouter/interfaces/IMetaRouter.sol
[codex:772943] contracts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol
[codex:772943]
[codex:772943] thinking
[codex:772943] **Preparing to inspect Portal.sol**
[codex:772943] exec
[codex:772943] /bin/bash -lc 'nl -ba contracts/contracts/synth-core/Portal.sol' in /tmp/codex-multi-t07hntsb succeeded in 5ms:
[codex:772943] 1 // SPDX-License-Identifier: GPL-3.0
[codex:772943] 2
[codex:772943] 3 pragma solidity ^0.8.0;
[codex:772943] 4
[codex:772943] 5 import "@openzeppelin/contracts/access/Ownable.sol";
[codex:772943] 6 import "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol";
[codex:772943] 7 import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
[codex:772943] 8 import "./interfaces/IBridge.sol";
[codex:772943] 9 import "@uniswap/lib/contracts/libraries/TransferHelper.sol";
[codex:772943] 10 import "../utils/RelayRecipientUpgradeable.sol";
[codex:772943] 11 import "./interfaces/IWrapper.sol";
[codex:772943] 12 import "./metarouter/interfaces/IMetaRouter.sol";
[codex:772943] 13
[codex:772943] 14 /**
[codex:772943] 15 * @title A contract that synthesizes tokens
[codex:772943] 16 * @notice In order to create a synthetic representation on another network, the user must call synthesize function here
[codex:772943] 17 * @dev All function calls are currently implemented without side effects
[codex:772943] 18 */
[codex:772943] 19 contract Portal is RelayRecipientUpgradeable {
[codex:772943] 20 /// ** PUBLIC states **
[codex:772943]
[codex:772943]
[codex:772943] thinking
[codex:772943] **Analyzing potential security concerns**
[codex:772943] thinking
[codex:772943] **Examining upgrade and cross-chain message risks**
[codex:772943]
[codex:772943] I’m looking closely at upgrade initialization risks and how user-supplied cross-chain target addresses could allow arbitrary messages if the bridge doesn’t enforce whitelists. There’s also some subtle reentrancy possible during token transfers that might complicate state, plus behavior around meta transactions and externalID consistency that seems correct but deserves attention. This is a neat mix of design assumptions and possible security angles to sort through!
[codex:772943] exec
[codex:772943] /bin/bash -lc 'nl -ba contracts/contracts/utils/RelayRecipientUpgradeable.sol' in /tmp/codex-multi-t07hntsb succeeded in 5ms:
[codex:772943] 1 // SPDX-License-Identifier: GPL-3.0
[codex:772943] 2
[codex:772943] 3 pragma solidity ^0.8.0;
[codex:772943] 4
[codex:772943] 5 import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
[codex:772943] 6
[codex:772943] 7 abstract contract RelayRecipientUpgradeable is OwnableUpgradeable {
[codex:772943] 8 address private _trustedForwarder;
[codex:772943] 9
[codex:772943] 10 function __RelayRecipient_init(address trustedForwarder)
[codex:772943] 11 internal
[codex:772943] 12 onlyInitializing
[codex:772943] 13 {
[codex:772943] 14 __Ownable_init();
[codex:772943] 15 _trustedForwarder = trustedForwarder;
[codex:772943] 16 }
[codex:772943] 17
[codex:772943] 18 function isTrustedForwarder(address forwarder)
[codex:772943] 19 public
[codex:772943] 20 view
[codex:772943]
[codex:772943]
[codex:772943] thinking
[codex:772943] **Analyzing potential vulnerabilities and upgradeability risks**
[codex:772943]
[codex:772943] I’m carefully reviewing upgradeability patterns, access controls, and token handling to spot risks like unprotected initialization, fee-on-transfer token accounting issues, and repeated revert requests that might cause spam or double refunds. There’s a lot to unpack around external call patterns, state management, and trust assumptions with the forwarder and bridge contracts. I’m narrowing down the most meaningful issues while filtering out intended behaviors.
[codex:772943] thinking
[codex:772943] **Evaluating state management and externalID logic**
[codex:772943]
[codex:772943] I’m examining how revert requests and unsynthesize states interact, especially around externalID computations and their effect on user funds or potential locks. The interplay between revert and burn externalIDs is complex and unclear without more contract context, so I’m cautious about claiming serious issues but noting some possible self-imposed fund locks or edge cases in state persistence.
[codex:772943] exec
[codex:772943] /bin/bash -lc 'cat codex-output-schema.json' in /tmp/codex-multi-t07hntsb succeeded in 6ms:
[codex:772943] {"type": "object", "additionalProperties": false, "required": ["no_findings", "summary", "findings"], "properties": {"no_findings": {"type": "boolean"}, "summary": {"type": "string"}, "findings": {"type": "array", "items": {"type": "object", "additionalProperties": false, "required": ["severity", "category", "title", "evidence", "locations", "exploit_scenario", "recommendation"], "properties": {"severity": {"type": "string", "enum": ["info", "low", "medium", "high", "critical"]}, "category": {"type": "string", "enum": ["access_control", "reentrancy", "math", "oracle", "upgradeability", "auth", "other"]}, "title": {"type": "string"}, "exploit_scenario": {"type": "string"}, "recommendation": {"type": "string"}, "evidence": {"type": "string"}, "locations": {"type": "array", "items": {"type": "string"}}}}}}}
[codex:772943]
[codex:772943]
[codex:772943] thinking
[codex:772943] **Summarizing vulnerability findings**
[codex:772943]
[codex:772943] I'm preparing a JSON report with findings on upgradeability initialization risk, fee-on-transfer accounting issues, and replayable revert requests, including their severity, categories, locations, and exploit scenarios based on the Solidity contract analysis.
[codex:772943] thinking
[codex:772943] **Detailing vulnerability exploit scenarios**
[codex:772943]
[codex:772943] I’m organizing clear exploit scenarios and recommendations for the identified issues, including initializer misuse for ownership takeover, fee-on-transfer token undercollateralization, and replayable revert requests that could spam the bridge. I’ll include relevant evidence lines and suggested mitigations in the final JSON output.
[codex:772943] codex
[codex:772943] {"no_findings":false,"summary":"Found three issues: upgradeable initialization not locked, fee-on-transfer accounting mismatch, and replayable revert requests.","findings":[{"severity":"medium","category":"upgradeability","title":"Upgradeable Portal can be initialized by anyone if proxy/implementation is left uninitialized","exploit_scenario":"If a proxy is deployed without an immediate initialize call (or the implementation is deployed and funded directly), an attacker can call initialize, become owner, set bridge/metaRouter, and then use onlyBridge paths (after setting bridge to themselves) to withdraw locked tokens.","recommendation":"Add a constructor that calls `_disableInitializers()` on the implementation and ensure deployment scripts initialize the proxy atomically (e.g., constructor data).","evidence":"`initialize` is `public` and guarded only by `initializer`, with no constructor disabling initializers in the implementation.","locations":["contracts/contracts/synth-core/Portal.sol:134","contracts/contracts/utils/RelayRecipientUpgradeable.sol:10"]},{"severity":"medium","category":"math","title":"Fee-on-transfer/rebasing tokens can undercollateralize synths","exploit_scenario":"If a whitelisted token takes a transfer fee or rebases, `synthesize`/`metaSynthesize` use the requested `_amount` rather than the actual received amount. A user can mint synthetic assets for more than the contract actually locked, then later redeem full value, leaving the pool undercollateralized or causing insolvency on redeem.","recommendation":"Whitelist only vanilla ERC20s or calculate the actual received amount by checking token balance before/after transfer and use that value for accounting and mint requests.","evidence":"`balanceOf` is incremented by the user-supplied `_amount` after `safeTransferFrom`, without verifying actual tokens received.","locations":["contracts/contracts/synth-core/Portal.sol:174","contracts/contracts/synth-core/Portal.sol:187","contracts/contracts/synth-core/Portal.sol:558","contracts/contracts/synth-core/Portal.sol:213","contracts/contracts/synth-core/Portal.sol:624"]},{"severity":"low","category":"other","title":"Revert request functions are replayable, allowing repeated bridge calls","exploit_scenario":"An attacker can call `revertBurnRequest` or `metaRevertRequest` repeatedly for the same `internalID`. The functions only block the `Unsynthesized` state, so each call sends a new `transmitRequestV2` to the bridge. If the remote side is not idempotent, this can lead to duplicate processing; otherwise it can be used to spam or waste bridge resources.","recommendation":"Require `unsynthesizeStates[externalID] == Default` before sending a revert request and consider adding explicit replay protection or an idempotency check.","evidence":"The guard only checks `!= Unsynthesized` and does not prevent repeated calls once state is `RevertRequest`.","locations":["contracts/contracts/synth-core/Portal.sol:360","contracts/contracts/synth-core/Portal.sol:370","contracts/contracts/synth-core/Portal.sol:394","contracts/contracts/synth-core/Portal.sol:400"]}]}
[codex:772943] tokens used
[codex:772943] 54,748
[codex:772943] {"no_findings":false,"summary":"Found three issues: upgradeable initialization not locked, fee-on-transfer accounting mismatch, and replayable revert requests.","findings":[{"severity":"medium","category":"upgradeability","title":"Upgradeable Portal can be initialized by anyone if proxy/implementation is left uninitialized","exploit_scenario":"If a proxy is deployed without an immediate initialize call (or the implementation is deployed and funded directly), an attacker can call initialize, become owner, set bridge/metaRouter, and then use onlyBridge paths (after setting bridge to themselves) to withdraw locked tokens.","recommendation":"Add a constructor that calls `_disableInitializers()` on the implementation and ensure deployment scripts initialize the proxy atomically (e.g., constructor data).","evidence":"`initialize` is `public` and guarded only by `initializer`, with no constructor disabling initializers in the implementation.","locations":["contracts/contracts/synth-core/Portal.sol:134","contracts/contracts/utils/RelayRecipientUpgradeable.sol:10"]},{"severity":"medium","category":"math","title":"Fee-on-transfer/rebasing tokens can undercollateralize synths","exploit_scenario":"If a whitelisted token takes a transfer fee or rebases, `synthesize`/`metaSynthesize` use the requested `_amount` rather than the actual received amount. A user can mint synthetic assets for more than the contract actually locked, then later redeem full value, leaving the pool undercollateralized or causing insolvency on redeem.","recommendation":"Whitelist only vanilla ERC20s or calculate the actual received amount by checking token balance before/after transfer and use that value for accounting and mint requests.","evidence":"`balanceOf` is incremented by the user-supplied `_amount` after `safeTransferFrom`, without verifying actual tokens received.","locations":["contracts/contracts/synth-core/Portal.sol:174","contracts/contracts/synth-core/Portal.sol:187","contracts/contracts/synth-core/Portal.sol:558","contracts/contracts/synth-core/Portal.sol:213","contracts/contracts/synth-core/Portal.sol:624"]},{"severity":"low","category":"other","title":"Revert request functions are replayable, allowing repeated bridge calls","exploit_scenario":"An attacker can call `revertBurnRequest` or `metaRevertRequest` repeatedly for the same `internalID`. The functions only block the `Unsynthesized` state, so each call sends a new `transmitRequestV2` to the bridge. If the remote side is not idempotent, this can lead to duplicate processing; otherwise it can be used to spam or waste bridge resources.","recommendation":"Require `unsynthesizeStates[externalID] == Default` before sending a revert request and consider adding explicit replay protection or an idempotency check.","evidence":"The guard only checks `!= Unsynthesized` and does not prevent repeated calls once state is `RevertRequest`.","locations":["contracts/contracts/synth-core/Portal.sol:360","contracts/contracts/synth-core/Portal.sol:370","contracts/contracts/synth-core/Portal.sol:394","contracts/contracts/synth-core/Portal.sol:400"]}]}
{
"codex": {
"ran_at": "2025-12-28T13:45:36.489475+00:00",
"returncode": 0
},
"summary": "Found three issues: upgradeable initialization not locked, fee-on-transfer accounting mismatch, and replayable revert requests.",
"raw_final": {
"summary": "Found three issues: upgradeable initialization not locked, fee-on-transfer accounting mismatch, and replayable revert requests.",
"findings": [
{
"title": "Upgradeable Portal can be initialized by anyone if proxy/implementation is left uninitialized",
"category": "upgradeability",
"evidence": "`initialize` is `public` and guarded only by `initializer`, with no constructor disabling initializers in the implementation.",
"severity": "medium",
"locations": [
"contracts/contracts/synth-core/Portal.sol:134",
"contracts/contracts/utils/RelayRecipientUpgradeable.sol:10"
],
"recommendation": "Add a constructor that calls `_disableInitializers()` on the implementation and ensure deployment scripts initialize the proxy atomically (e.g., constructor data).",
"exploit_scenario": "If a proxy is deployed without an immediate initialize call (or the implementation is deployed and funded directly), an attacker can call initialize, become owner, set bridge/metaRouter, and then use onlyBridge paths (after setting bridge to themselves) to withdraw locked tokens."
},
{
"title": "Fee-on-transfer/rebasing tokens can undercollateralize synths",
"category": "math",
"evidence": "`balanceOf` is incremented by the user-supplied `_amount` after `safeTransferFrom`, without verifying actual tokens received.",
"severity": "medium",
"locations": [
"contracts/contracts/synth-core/Portal.sol:174",
"contracts/contracts/synth-core/Portal.sol:187",
"contracts/contracts/synth-core/Portal.sol:558",
"contracts/contracts/synth-core/Portal.sol:213",
"contracts/contracts/synth-core/Portal.sol:624"
],
"recommendation": "Whitelist only vanilla ERC20s or calculate the actual received amount by checking token balance before/after transfer and use that value for accounting and mint requests.",
"exploit_scenario": "If a whitelisted token takes a transfer fee or rebases, `synthesize`/`metaSynthesize` use the requested `_amount` rather than the actual received amount. A user can mint synthetic assets for more than the contract actually locked, then later redeem full value, leaving the pool undercollateralized or causing insolvency on redeem."
},
{
"title": "Revert request functions are replayable, allowing repeated bridge calls",
"category": "other",
"evidence": "The guard only checks `!= Unsynthesized` and does not prevent repeated calls once state is `RevertRequest`.",
"severity": "low",
"locations": [
"contracts/contracts/synth-core/Portal.sol:360",
"contracts/contracts/synth-core/Portal.sol:370",
"contracts/contracts/synth-core/Portal.sol:394",
"contracts/contracts/synth-core/Portal.sol:400"
],
"recommendation": "Require `unsynthesizeStates[externalID] == Default` before sending a revert request and consider adding explicit replay protection or an idempotency check.",
"exploit_scenario": "An attacker can call `revertBurnRequest` or `metaRevertRequest` repeatedly for the same `internalID`. The functions only block the `Unsynthesized` state, so each call sends a new `transmitRequestV2` to the bridge. If the remote side is not idempotent, this can lead to duplicate processing; otherwise it can be used to spam or waste bridge resources."
}
],
"no_findings": false
},
"no_findings": false,
"schema_version": 1
}
00000000: PUSH1 0x80 00000002: PUSH1 0x40 00000004: MSTORE 00000005: PUSH1 0x04 00000007: CALLDATASIZE 00000008: LT 00000009: ISZERO 0000000a: PUSH2 0x0012 0000000d: JUMPI 0000000e: PUSH1 0x00 00000010: DUP1 00000011: REVERT 00000012: JUMPDEST 00000013: PUSH1 0x00 00000015: DUP1 00000016: CALLDATALOAD 00000017: PUSH1 0xe0 00000019: SHR 0000001a: DUP1 0000001b: PUSH4 0x08759e9b 00000020: EQ 00000021: PUSH2 0x23e3 00000024: JUMPI 00000025: DUP1 00000026: PUSH4 0x1459457a 0000002b: EQ 0000002c: PUSH2 0x2203 0000002f: JUMPI 00000030: DUP1 00000031: PUSH4 0x1ebe53ef 00000036: EQ 00000037: PUSH2 0x20cb 0000003a: JUMPI 0000003b: DUP1 0000003c: PUSH4 0x3f4ba83a 00000041: EQ 00000042: PUSH2 0x206c 00000045: JUMPI 00000046: DUP1 00000047: PUSH4 0x486ff0cd 0000004c: EQ 0000004d: PUSH2 0x200a 00000050: JUMPI 00000051: DUP1 00000052: PUSH4 0x4a913664 00000057: EQ 00000058: PUSH2 0x1eb1 0000005b: JUMPI 0000005c: DUP1 0000005d: PUSH4 0x572b6c05 00000062: EQ 00000063: PUSH2 0x1e7d 00000066: JUMPI 00000067: DUP1 00000068: PUSH4 0x5badbe4c 0000006d: EQ 0000006e: PUSH2 0x1e5f 00000071: JUMPI 00000072: DUP1 00000073: PUSH4 0x5c975abb 00000078: EQ 00000079: PUSH2 0x1e3c 0000007c: JUMPI 0000007d: DUP1 0000007e: PUSH4 0x68775278 00000083: EQ 00000084: PUSH2 0x1e04 00000087: JUMPI 00000088: DUP1 00000089: PUSH4 0x70a08231 0000008e: EQ 0000008f: PUSH2 0x1dcc 00000092: JUMPI 00000093: DUP1 00000094: PUSH4 0x715018a6 00000099: EQ 0000009a: PUSH2 0x1d55 0000009d: JUMPI 0000009e: DUP1 0000009f: PUSH4 0x753d7563 000000a4: EQ 000000a5: PUSH2 0x1d18 000000a8: JUMPI 000000a9: DUP1 000000aa: PUSH4 0x7c374f99 000000af: EQ 000000b0: PUSH2 0x1c89 000000b3: JUMPI 000000b4: DUP1 000000b5: PUSH4 0x8456cb59 000000ba: EQ 000000bb: PUSH2 0x1c1c 000000be: JUMPI 000000bf: DUP1 000000c0: PUSH4 0x8bb39802 000000c5: EQ 000000c6: PUSH2 0x1b8a 000000c9: JUMPI 000000ca: DUP1 000000cb: PUSH4 0x8da5cb5b 000000d0: EQ 000000d1: PUSH2 0x1b63 000000d4: JUMPI 000000d5: DUP1 000000d6: PUSH4 0x9d866985 000000db: EQ 000000dc: PUSH2 0x1af3 000000df: JUMPI 000000e0: DUP1 000000e1: PUSH4 0xac210cc7 000000e6: EQ 000000e7: PUSH2 0x1acc 000000ea: JUMPI 000000eb: DUP1 000000ec: PUSH4 0xb1659a3c 000000f1: EQ 000000f2: PUSH2 0x168f 000000f5: JUMPI 000000f6: DUP1 000000f7: PUSH4 0xc2167d93 000000fc: EQ 000000fd: PUSH2 0x160e 00000100: JUMPI 00000101: DUP1 00000102: PUSH4 0xc23a4c88 00000107: EQ 00000108: PUSH2 0x157c 0000010b: JUMPI 0000010c: DUP1 0000010d: PUSH4 0xc42a2894 00000112: EQ 00000113: PUSH2 0x13ab 00000116: JUMPI 00000117: DUP1 00000118: PUSH4 0xce654c17 0000011d: EQ 0000011e: PUSH2 0x0c31 00000121: JUMPI 00000122: DUP1 00000123: PUSH4 0xdbec15bb 00000128: EQ 00000129: PUSH2 0x0c0a 0000012c: JUMPI 0000012d: DUP1 0000012e: PUSH4 0xe78cea92 00000133: EQ 00000134: PUSH2 0x0be3 00000137: JUMPI 00000138: DUP1 00000139: PUSH4 0xeadd5c34 0000013e: EQ 0000013f: PUSH2 0x0af1 00000142: JUMPI 00000143: DUP1 00000144: PUSH4 0xf2fde38b 00000149: EQ 0000014a: PUSH2 0x0a3a 0000014d: JUMPI 0000014e: DUP1 0000014f: PUSH4 0xfab92894 00000154: EQ 00000155: PUSH2 0x0a04 00000158: JUMPI 00000159: PUSH4 0xfce633c2 0000015e: EQ 0000015f: PUSH2 0x0167 00000162: JUMPI 00000163: PUSH1 0x00 00000165: DUP1 00000166: REVERT 00000167: JUMPDEST 00000168: CALLVALUE 00000169: PUSH2 0x0a01 0000016c: JUMPI 0000016d: PUSH1 0x03 0000016f: NOT 00000170: PUSH1 0x20 00000172: DUP2 00000173: CALLDATASIZE 00000174: ADD 00000175: SLT 00000176: PUSH2 0x05ee 00000179: JUMPI 0000017a: PUSH8 0xffffffffffffffff 00000183: PUSH1 0x04 00000185: CALLDATALOAD 00000186: GT 00000187: PUSH2 0x05ee 0000018a: JUMPI 0000018b: PUSH2 0x01a0 0000018e: SWAP1 0000018f: PUSH1 0x04 00000191: CALLDATALOAD 00000192: CALLDATASIZE 00000193: SUB 00000194: ADD 00000195: SLT 00000196: PUSH2 0x0a01 00000199: JUMPI 0000019a: PUSH1 0x40 0000019c: MLOAD 0000019d: PUSH2 0x01a5 000001a0: DUP2 000001a1: PUSH2 0x2727 000001a4: JUMP 000001a5: JUMPDEST 000001a6: PUSH1 0x04 000001a8: CALLDATALOAD 000001a9: PUSH1 0x04 000001ab: ADD 000001ac: CALLDATALOAD 000001ad: DUP2 000001ae: MSTORE 000001af: PUSH1 0x24 000001b1: PUSH1 0x04 000001b3: CALLDATALOAD 000001b4: ADD 000001b5: CALLDATALOAD 000001b6: PUSH1 0x20 000001b8: DUP3 000001b9: ADD 000001ba: MSTORE 000001bb: PUSH2 0x01c8 000001be: PUSH1 0x44 000001c0: PUSH1 0x04 000001c2: CALLDATALOAD 000001c3: ADD 000001c4: PUSH2 0x26a3 000001c7: JUMP 000001c8: JUMPDEST 000001c9: PUSH1 0x40 000001cb: DUP3 000001cc: ADD 000001cd: MSTORE 000001ce: PUSH2 0x01db 000001d1: PUSH1 0x64 000001d3: PUSH1 0x04 000001d5: CALLDATALOAD 000001d6: ADD 000001d7: PUSH2 0x26a3 000001da: JUMP 000001db: JUMPDEST 000001dc: PUSH1 0x60 000001de: DUP3 000001df: ADD 000001e0: MSTORE 000001e1: PUSH2 0x01ee 000001e4: PUSH1 0x84 000001e6: PUSH1 0x04 000001e8: CALLDATALOAD 000001e9: ADD 000001ea: PUSH2 0x26a3 000001ed: JUMP 000001ee: JUMPDEST 000001ef: PUSH1 0x80 000001f1: DUP3 000001f2: ADD 000001f3: MSTORE 000001f4: PUSH1 0x04 000001f6: CALLDATALOAD 000001f7: PUSH1 0xa4 000001f9: DUP2 000001fa: ADD 000001fb: CALLDATALOAD 000001fc: PUSH1 0xa0 000001fe: DUP4 000001ff: ADD 00000200: MSTORE 00000201: PUSH1 0xc4 00000203: DUP2 00000204: ADD 00000205: CALLDATALOAD 00000206: PUSH1 0xc0 00000208: DUP4 00000209: ADD 0000020a: MSTORE 0000020b: PUSH2 0x0216 0000020e: SWAP1 0000020f: PUSH1 0xe4 00000211: ADD 00000212: PUSH2 0x26a3 00000215: JUMP 00000216: JUMPDEST 00000217: PUSH1 0xe0 00000219: DUP3 0000021a: ADD 0000021b: MSTORE 0000021c: PUSH2 0x0104 0000021f: PUSH1 0x04 00000221: CALLDATALOAD 00000222: ADD 00000223: CALLDATALOAD 00000224: PUSH8 0xffffffffffffffff 0000022d: DUP2 0000022e: GT 0000022f: PUSH2 0x09fd 00000232: JUMPI 00000233: PUSH2 0x0243 00000236: SWAP1 00000237: PUSH1 0x04 00000239: CALLDATASIZE 0000023a: SWAP2 0000023b: DUP2 0000023c: CALLDATALOAD 0000023d: ADD 0000023e: ADD 0000023f: PUSH2 0x2867 00000242: JUMP 00000243: JUMPDEST 00000244: PUSH2 0x0100 00000247: DUP3 00000248: ADD 00000249: MSTORE 0000024a: PUSH2 0x0258 0000024d: PUSH2 0x0124 00000250: PUSH1 0x04 00000252: CALLDATALOAD 00000253: ADD 00000254: PUSH2 0x26a3 00000257: JUMP 00000258: JUMPDEST 00000259: PUSH2 0x0120 0000025c: DUP3 0000025d: ADD 0000025e: MSTORE 0000025f: PUSH2 0x026d 00000262: PUSH2 0x0144 00000265: PUSH1 0x04 00000267: CALLDATALOAD 00000268: ADD 00000269: PUSH2 0x26a3 0000026c: JUMP 0000026d: JUMPDEST 0000026e: PUSH2 0x0140 00000271: DUP3 00000272: ADD 00000273: MSTORE 00000274: PUSH2 0x0164 00000277: PUSH1 0x04 00000279: CALLDATALOAD 0000027a: ADD 0000027b: CALLDATALOAD 0000027c: PUSH8 0xffffffffffffffff 00000285: DUP2 00000286: GT 00000287: PUSH2 0x09fd 0000028a: JUMPI 0000028b: PUSH2 0x029b 0000028e: SWAP1 0000028f: PUSH1 0x04 00000291: CALLDATASIZE 00000292: SWAP2 00000293: DUP2 00000294: CALLDATALOAD 00000295: ADD 00000296: ADD 00000297: PUSH2 0x2867 0000029a: JUMP 0000029b: JUMPDEST 0000029c: PUSH2 0x0160 0000029f: DUP3 000002a0: ADD 000002a1: MSTORE 000002a2: PUSH2 0x0184 000002a5: PUSH1 0x04 000002a7: CALLDATALOAD 000002a8: ADD 000002a9: CALLDATALOAD 000002aa: PUSH2 0x0180 000002ad: DUP3 000002ae: ADD 000002af: MSTORE 000002b0: PUSH2 0x02be 000002b3: PUSH1 0xff 000002b5: PUSH1 0x69 000002b7: SLOAD 000002b8: AND 000002b9: ISZERO 000002ba: PUSH2 0x294e 000002bd: JUMP 000002be: JUMPDEST 000002bf: PUSH2 0x0100 000002c2: DUP2 000002c3: ADD 000002c4: MLOAD 000002c5: MLOAD 000002c6: ISZERO 000002c7: PUSH2 0x0601 000002ca: JUMPI 000002cb: DUP2 000002cc: PUSH1 0x20 000002ce: DUP3 000002cf: ADD 000002d0: MLOAD 000002d1: PUSH2 0x0322 000002d4: PUSH2 0x0330 000002d7: PUSH2 0x02de 000002da: PUSH2 0x316e 000002dd: JUMP 000002de: JUMPDEST 000002df: SWAP3 000002e0: PUSH1 0x40 000002e2: MLOAD 000002e3: SWAP3 000002e4: DUP4 000002e5: SWAP2 000002e6: PUSH1 0x20 000002e8: DUP4 000002e9: ADD 000002ea: SWAP6 000002eb: CHAINID 000002ec: SWAP2 000002ed: ADDRESS 000002ee: SWAP1 000002ef: DUP9 000002f0: SWAP3 000002f1: PUSH1 0x68 000002f3: SWAP5 000002f4: SWAP3 000002f5: SWAP2 000002f6: DUP5 000002f7: MSTORE 000002f8: PUSH12 0xffffffffffffffffffffffff 00000305: NOT 00000306: DUP1 00000307: SWAP3 00000308: PUSH1 0x60 0000030a: SHL 0000030b: AND 0000030c: PUSH1 0x20 0000030e: DUP6 0000030f: ADD 00000310: MSTORE 00000311: PUSH1 0x60 00000313: SHL 00000314: AND 00000315: PUSH1 0x34 00000317: DUP4 00000318: ADD 00000319: MSTORE 0000031a: PUSH1 0x48 0000031c: DUP3 0000031d: ADD 0000031e: MSTORE 0000031f: ADD 00000320: SWAP1 00000321: JUMP 00000322: JUMPDEST 00000323: SUB 00000324: PUSH1 0x1f 00000326: NOT 00000327: DUP2 00000328: ADD 00000329: DUP4 0000032a: MSTORE 0000032b: DUP3 0000032c: PUSH2 0x2799 0000032f: JUMP 00000330: JUMPDEST 00000331: MLOAD 00000332: SWAP1 00000333: KECCAK256 00000334: DUP1 00000335: DUP3 00000336: MSTORE 00000337: PUSH1 0x6b 00000339: PUSH1 0x20 0000033b: MSTORE 0000033c: PUSH2 0x0358 0000033f: PUSH1 0x01 00000341: PUSH1 0xff 00000343: PUSH1 0x40 00000345: DUP6 00000346: KECCAK256 00000347: SLOAD 00000348: AND 00000349: PUSH2 0x0351 0000034c: DUP2 0000034d: PUSH2 0x282b 00000350: JUMP 00000351: JUMPDEST 00000352: EQ 00000353: ISZERO 00000354: PUSH2 0x2fb7 00000357: JUMP 00000358: JUMPDEST 00000359: DUP1 0000035a: DUP3 0000035b: MSTORE 0000035c: PUSH1 0x6b 0000035e: PUSH1 0x20 00000360: MSTORE 00000361: PUSH1 0x40 00000363: DUP3 00000364: KECCAK256 00000365: PUSH1 0x02 00000367: PUSH1 0xff 00000369: NOT 0000036a: DUP3 0000036b: SLOAD 0000036c: AND 0000036d: OR 0000036e: SWAP1 0000036f: SSTORE 00000370: PUSH2 0x04c5 00000373: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000394: PUSH1 0x43 00000396: PUSH1 0x40 00000398: MLOAD 00000399: PUSH2 0x03a1 0000039c: DUP2 0000039d: PUSH2 0x2760 000003a0: JUMP 000003a1: JUMPDEST 000003a2: DUP2 000003a3: DUP2 000003a4: MSTORE 000003a5: PUSH32 0x6573290000000000000000000000000000000000000000000000000000000000 000003c6: PUSH1 0x60 000003c8: PUSH1 0x20 000003ca: DUP4 000003cb: ADD 000003cc: SWAP3 000003cd: PUSH32 0x7265766572744d6574614275726e2875696e743235362c627974657333322c61 000003ee: DUP5 000003ef: MSTORE 000003f0: PUSH32 0x6464726573732c62797465732c616464726573732c616464726573732c627974 00000411: PUSH1 0x40 00000413: DUP3 00000414: ADD 00000415: MSTORE 00000416: ADD 00000417: MSTORE 00000418: KECCAK256 00000419: AND 0000041a: PUSH2 0x0322 0000041d: DUP6 0000041e: MLOAD 0000041f: SWAP4 00000420: PUSH1 0x01 00000422: PUSH1 0x01 00000424: PUSH1 0xa0 00000426: SHL 00000427: SUB 00000428: PUSH1 0xe0 0000042a: DUP9 0000042b: ADD 0000042c: MLOAD 0000042d: AND 0000042e: SWAP1 0000042f: PUSH2 0x0100 00000432: DUP9 00000433: ADD 00000434: MLOAD 00000435: SWAP2 00000436: PUSH2 0x048b 00000439: PUSH1 0x01 0000043b: PUSH1 0x01 0000043d: PUSH1 0xa0 0000043f: SHL 00000440: SUB 00000441: PUSH2 0x0120 00000444: DUP12 00000445: ADD 00000446: MLOAD 00000447: AND 00000448: SWAP4 00000449: PUSH1 0x01 0000044b: PUSH1 0x01 0000044d: PUSH1 0xa0 0000044f: SHL 00000450: SUB 00000451: PUSH2 0x0140 00000454: DUP13 00000455: ADD 00000456: MLOAD 00000457: AND 00000458: SWAP3 00000459: PUSH2 0x0160 0000045c: DUP13 0000045d: ADD 0000045e: MLOAD 0000045f: SWAP5 00000460: PUSH1 0x40 00000462: MLOAD 00000463: SWAP11 00000464: DUP12 00000465: SWAP10 00000466: PUSH1 0x20 00000468: DUP12 00000469: ADD 0000046a: MSTORE 0000046b: PUSH1 0x24 0000046d: DUP11 0000046e: ADD 0000046f: MSTORE 00000470: PUSH1 0x44 00000472: DUP10 00000473: ADD 00000474: MSTORE 00000475: PUSH1 0x64 00000477: DUP9 00000478: ADD 00000479: MSTORE 0000047a: PUSH1 0xe0 0000047c: PUSH1 0x84 0000047e: DUP9 0000047f: ADD 00000480: MSTORE 00000481: PUSH2 0x0104 00000484: DUP8 00000485: ADD 00000486: SWAP1 00000487: PUSH2 0x26b7 0000048a: JUMP 0000048b: JUMPDEST 0000048c: SWAP3 0000048d: PUSH1 0xa4 0000048f: DUP7 00000490: ADD 00000491: MSTORE 00000492: PUSH1 0xc4 00000494: DUP6 00000495: ADD 00000496: MSTORE 00000497: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc 000004b8: DUP5 000004b9: DUP4 000004ba: SUB 000004bb: ADD 000004bc: PUSH1 0xe4 000004be: DUP6 000004bf: ADD 000004c0: MSTORE 000004c1: PUSH2 0x26b7 000004c4: JUMP 000004c5: JUMPDEST 000004c6: PUSH1 0x01 000004c8: PUSH1 0x01 000004ca: PUSH1 0xa0 000004cc: SHL 000004cd: SUB 000004ce: PUSH1 0x67 000004d0: SLOAD 000004d1: AND 000004d2: SWAP1 000004d3: PUSH1 0x01 000004d5: PUSH1 0x01 000004d7: PUSH1 0xa0 000004d9: SHL 000004da: SUB 000004db: PUSH1 0x40 000004dd: DUP6 000004de: ADD 000004df: MLOAD 000004e0: AND 000004e1: SWAP2 000004e2: PUSH1 0x01 000004e4: PUSH1 0x01 000004e6: PUSH1 0xa0 000004e8: SHL 000004e9: SUB 000004ea: PUSH1 0x60 000004ec: DUP7 000004ed: ADD 000004ee: MLOAD 000004ef: AND 000004f0: SWAP1 000004f1: PUSH1 0xa0 000004f3: DUP7 000004f4: ADD 000004f5: MLOAD 000004f6: SWAP4 000004f7: DUP2 000004f8: EXTCODESIZE 000004f9: ISZERO 000004fa: PUSH2 0x05fd 000004fd: JUMPI 000004fe: DUP6 000004ff: DUP1 00000500: SWAP5 00000501: PUSH2 0x0520 00000504: PUSH1 0x40 00000506: MLOAD 00000507: SWAP8 00000508: DUP9 00000509: SWAP7 0000050a: DUP8 0000050b: SWAP6 0000050c: DUP7 0000050d: SWAP5 0000050e: PUSH4 0x3675e4e1 00000513: PUSH1 0xe1 00000515: SHL 00000516: DUP7 00000517: MSTORE 00000518: PUSH1 0x04 0000051a: DUP7 0000051b: ADD 0000051c: PUSH2 0x3027 0000051f: JUMP 00000520: JUMPDEST 00000521: SUB 00000522: SWAP3 00000523: GAS 00000524: CALL 00000525: DUP1 00000526: ISZERO 00000527: PUSH2 0x05f2 0000052a: JUMPI 0000052b: PUSH2 0x05da 0000052e: JUMPI 0000052f: JUMPDEST 00000530: POP 00000531: POP 00000532: DUP1 00000533: PUSH1 0x20 00000535: DUP1 00000536: SWAP3 00000537: ADD 00000538: MLOAD 00000539: PUSH32 0x5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5 0000055a: DUP4 0000055b: PUSH1 0x01 0000055d: PUSH1 0x01 0000055f: PUSH1 0xa0 00000561: SHL 00000562: SUB 00000563: PUSH2 0x056a 00000566: PUSH2 0x316e 00000569: JUMP 0000056a: JUMPDEST 0000056b: AND 0000056c: PUSH1 0x40 0000056e: MLOAD 0000056f: SWAP1 00000570: DUP5 00000571: PUSH32 0x40590cc12db0488520ce425059f83f8caed91bdf98de5ff829dc57c63843161b 00000592: DUP10 00000593: DUP1 00000594: LOG3 00000595: PUSH2 0x0180 00000598: DUP6 00000599: ADD 0000059a: MLOAD 0000059b: SWAP4 0000059c: DUP2 0000059d: MSTORE 0000059e: LOG2 0000059f: JUMPDEST 000005a0: ADD 000005a1: MLOAD 000005a2: PUSH1 0x01 000005a4: PUSH1 0x01 000005a6: PUSH1 0xa0 000005a8: SHL 000005a9: SUB 000005aa: PUSH2 0x05b1 000005ad: PUSH2 0x316e 000005b0: JUMP 000005b1: JUMPDEST 000005b2: AND 000005b3: SWAP1 000005b4: PUSH32 0xbd03c66ec5bd3d01fbf22bc794f68ac88b693023b438724019205a4b42aefb20 000005d5: DUP4 000005d6: DUP1 000005d7: LOG3 000005d8: DUP1 000005d9: RETURN 000005da: JUMPDEST 000005db: PUSH2 0x05e3 000005de: SWAP1 000005df: PUSH2 0x26f7 000005e2: JUMP 000005e3: JUMPDEST 000005e4: PUSH2 0x05ee 000005e7: JUMPI 000005e8: DUP2 000005e9: CODESIZE 000005ea: PUSH2 0x052f 000005ed: JUMP 000005ee: JUMPDEST 000005ef: POP 000005f0: DUP1 000005f1: REVERT 000005f2: JUMPDEST 000005f3: PUSH1 0x40 000005f5: MLOAD 000005f6: RETURNDATASIZE 000005f7: DUP5 000005f8: DUP3 000005f9: RETURNDATACOPY 000005fa: RETURNDATASIZE 000005fb: SWAP1 000005fc: REVERT 000005fd: JUMPDEST 000005fe: DUP6 000005ff: DUP1 00000600: REVERT 00000601: JUMPDEST 00000602: PUSH2 0x0160 00000605: DUP2 00000606: ADD 00000607: MLOAD 00000608: MLOAD 00000609: ISZERO 0000060a: PUSH2 0x0876 0000060d: JUMPI 0000060e: PUSH1 0x20 00000610: DUP2 00000611: ADD 00000612: MLOAD 00000613: PUSH2 0x0322 00000616: PUSH2 0x0620 00000619: PUSH2 0x02de 0000061c: PUSH2 0x316e 0000061f: JUMP 00000620: JUMPDEST 00000621: MLOAD 00000622: SWAP1 00000623: KECCAK256 00000624: DUP1 00000625: DUP4 00000626: MSTORE 00000627: PUSH1 0x6b 00000629: PUSH1 0x20 0000062b: MSTORE 0000062c: PUSH2 0x0641 0000062f: PUSH1 0x01 00000631: PUSH1 0xff 00000633: PUSH1 0x40 00000635: DUP7 00000636: KECCAK256 00000637: SLOAD 00000638: AND 00000639: PUSH2 0x0351 0000063c: DUP2 0000063d: PUSH2 0x282b 00000640: JUMP 00000641: JUMPDEST 00000642: DUP1 00000643: DUP4 00000644: MSTORE 00000645: PUSH1 0x6b 00000647: PUSH1 0x20 00000649: MSTORE 0000064a: PUSH1 0x40 0000064c: DUP4 0000064d: KECCAK256 0000064e: PUSH1 0x02 00000650: PUSH1 0xff 00000652: NOT 00000653: DUP3 00000654: SLOAD 00000655: AND 00000656: OR 00000657: SWAP1 00000658: SSTORE 00000659: PUSH1 0x01 0000065b: PUSH1 0x01 0000065d: PUSH1 0xa0 0000065f: SHL 00000660: SUB 00000661: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000682: PUSH1 0x42 00000684: PUSH1 0x40 00000686: MLOAD 00000687: PUSH2 0x068f 0000068a: DUP2 0000068b: PUSH2 0x2760 0000068e: JUMP 0000068f: JUMPDEST 00000690: DUP2 00000691: DUP2 00000692: MSTORE 00000693: PUSH32 0x7329000000000000000000000000000000000000000000000000000000000000 000006b4: PUSH1 0x60 000006b6: PUSH1 0x20 000006b8: DUP4 000006b9: ADD 000006ba: SWAP3 000006bb: PUSH32 0x7265766572744275726e416e644275726e2875696e743235362c627974657333 000006dc: DUP5 000006dd: MSTORE 000006de: PUSH32 0x322c616464726573732c616464726573732c75696e743235362c616464726573 000006ff: PUSH1 0x40 00000701: DUP3 00000702: ADD 00000703: MSTORE 00000704: ADD 00000705: MSTORE 00000706: KECCAK256 00000707: AND 00000708: SWAP2 00000709: DUP4 0000070a: MLOAD 0000070b: SWAP1 0000070c: DUP3 0000070d: PUSH1 0x80 0000070f: DUP7 00000710: ADD 00000711: MLOAD 00000712: AND 00000713: SWAP1 00000714: PUSH2 0x071b 00000717: PUSH2 0x316e 0000071a: JUMP 0000071b: JUMPDEST 0000071c: SWAP3 0000071d: PUSH1 0x40 0000071f: MLOAD 00000720: SWAP6 00000721: PUSH1 0x20 00000723: DUP8 00000724: ADD 00000725: MSTORE 00000726: PUSH1 0x24 00000728: DUP7 00000729: ADD 0000072a: MSTORE 0000072b: PUSH1 0x44 0000072d: DUP6 0000072e: ADD 0000072f: MSTORE 00000730: ADDRESS 00000731: PUSH1 0x64 00000733: DUP6 00000734: ADD 00000735: MSTORE 00000736: PUSH1 0x84 00000738: DUP5 00000739: ADD 0000073a: MSTORE 0000073b: CHAINID 0000073c: PUSH1 0xa4 0000073e: DUP5 0000073f: ADD 00000740: MSTORE 00000741: AND 00000742: PUSH1 0xc4 00000744: DUP3 00000745: ADD 00000746: MSTORE 00000747: PUSH1 0xc4 00000749: DUP2 0000074a: MSTORE 0000074b: PUSH2 0x0100 0000074e: DUP2 0000074f: ADD 00000750: DUP2 00000751: DUP2 00000752: LT 00000753: PUSH8 0xffffffffffffffff 0000075c: DUP3 0000075d: GT 0000075e: OR 0000075f: PUSH2 0x0860 00000762: JUMPI 00000763: DUP4 00000764: SWAP2 00000765: DUP2 00000766: PUSH1 0x40 00000768: MSTORE 00000769: PUSH1 0x01 0000076b: PUSH1 0x01 0000076d: PUSH1 0xa0 0000076f: SHL 00000770: SUB 00000771: PUSH1 0x67 00000773: SLOAD 00000774: AND 00000775: SWAP1 00000776: PUSH1 0x01 00000778: PUSH1 0x01 0000077a: PUSH1 0xa0 0000077c: SHL 0000077d: SUB 0000077e: PUSH2 0x0120 00000781: DUP7 00000782: ADD 00000783: MLOAD 00000784: AND 00000785: SWAP2 00000786: PUSH1 0x01 00000788: PUSH1 0x01 0000078a: PUSH1 0xa0 0000078c: SHL 0000078d: SUB 0000078e: PUSH1 0x60 00000790: DUP8 00000791: ADD 00000792: MLOAD 00000793: AND 00000794: SWAP3 00000795: PUSH1 0xa0 00000797: DUP8 00000798: ADD 00000799: MLOAD 0000079a: DUP3 0000079b: EXTCODESIZE 0000079c: ISZERO 0000079d: PUSH2 0x085c 000007a0: JUMPI 000007a1: PUSH1 0xff 000007a3: NOT 000007a4: DUP7 000007a5: SWAP5 000007a6: PUSH2 0x07c4 000007a9: DUP10 000007aa: SWAP8 000007ab: SWAP4 000007ac: DUP9 000007ad: SWAP5 000007ae: DUP9 000007af: SWAP7 000007b0: PUSH4 0x3675e4e1 000007b5: PUSH1 0xe1 000007b7: SHL 000007b8: DUP9 000007b9: MSTORE 000007ba: DUP5 000007bb: PUSH2 0x0104 000007be: DUP2 000007bf: ADD 000007c0: PUSH2 0x3027 000007c3: JUMP 000007c4: JUMPDEST 000007c5: SUB 000007c6: ADD 000007c7: SWAP3 000007c8: GAS 000007c9: CALL 000007ca: DUP1 000007cb: ISZERO 000007cc: PUSH2 0x05f2 000007cf: JUMPI 000007d0: PUSH2 0x0848 000007d3: JUMPI 000007d4: JUMPDEST 000007d5: POP 000007d6: POP 000007d7: DUP1 000007d8: PUSH1 0x20 000007da: DUP1 000007db: SWAP3 000007dc: ADD 000007dd: MLOAD 000007de: PUSH32 0x5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5 000007ff: DUP4 00000800: PUSH1 0x01 00000802: PUSH1 0x01 00000804: PUSH1 0xa0 00000806: SHL 00000807: SUB 00000808: PUSH2 0x080f 0000080b: PUSH2 0x316e 0000080e: JUMP 0000080f: JUMPDEST 00000810: AND 00000811: PUSH1 0x40 00000813: MLOAD 00000814: SWAP1 00000815: DUP5 00000816: PUSH32 0x40590cc12db0488520ce425059f83f8caed91bdf98de5ff829dc57c63843161b 00000837: DUP10 00000838: DUP1 00000839: LOG3 0000083a: PUSH2 0x0180 0000083d: DUP6 0000083e: ADD 0000083f: MLOAD 00000840: SWAP4 00000841: DUP2 00000842: MSTORE 00000843: LOG2 00000844: PUSH2 0x059f 00000847: JUMP 00000848: JUMPDEST 00000849: PUSH2 0x0851 0000084c: SWAP1 0000084d: PUSH2 0x26f7 00000850: JUMP 00000851: JUMPDEST 00000852: PUSH2 0x05ee 00000855: JUMPI 00000856: DUP2 00000857: CODESIZE 00000858: PUSH2 0x07d4 0000085b: JUMP 0000085c: JUMPDEST 0000085d: DUP7 0000085e: DUP1 0000085f: REVERT 00000860: JUMPDEST 00000861: PUSH4 0x4e487b71 00000866: PUSH1 0xe0 00000868: SHL 00000869: PUSH1 0x00 0000086b: MSTORE 0000086c: PUSH1 0x41 0000086e: PUSH1 0x04 00000870: MSTORE 00000871: PUSH1 0x24 00000873: PUSH1 0x00 00000875: REVERT 00000876: JUMPDEST 00000877: DUP2 00000878: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00000899: PUSH1 0x58 0000089b: PUSH1 0x40 0000089d: MLOAD 0000089e: PUSH2 0x08a6 000008a1: DUP2 000008a2: PUSH2 0x2760 000008a5: JUMP 000008a6: JUMPDEST 000008a7: DUP2 000008a8: DUP2 000008a9: MSTORE 000008aa: PUSH32 0x75696e743235362c616464726573732c62797465733332290000000000000000 000008cb: PUSH1 0x60 000008cd: PUSH1 0x20 000008cf: DUP4 000008d0: ADD 000008d1: SWAP3 000008d2: PUSH32 0x72657665727453796e74686573697a6552657175657374427942726964676528 000008f3: DUP5 000008f4: MSTORE 000008f5: PUSH32 0x75696e743235362c627974657333322c616464726573732c616464726573732c 00000916: PUSH1 0x40 00000918: DUP3 00000919: ADD 0000091a: MSTORE 0000091b: ADD 0000091c: MSTORE 0000091d: KECCAK256 0000091e: AND 0000091f: DUP3 00000920: MLOAD 00000921: SWAP1 00000922: PUSH1 0x20 00000924: DUP5 00000925: ADD 00000926: MLOAD 00000927: SWAP2 00000928: PUSH1 0x01 0000092a: PUSH1 0x01 0000092c: PUSH1 0xa0 0000092e: SHL 0000092f: SUB 00000930: DUP1 00000931: SWAP4 00000932: DUP2 00000933: PUSH1 0x40 00000935: DUP9 00000936: ADD 00000937: MLOAD 00000938: AND 00000939: DUP3 0000093a: PUSH1 0x80 0000093c: DUP10 0000093d: ADD 0000093e: MLOAD 0000093f: AND 00000940: SWAP1 00000941: PUSH2 0x0948 00000944: PUSH2 0x316e 00000947: JUMP 00000948: JUMPDEST 00000949: SWAP3 0000094a: PUSH2 0x0180 0000094d: DUP11 0000094e: ADD 0000094f: MLOAD 00000950: SWAP6 00000951: PUSH1 0x40 00000953: MLOAD 00000954: SWAP8 00000955: PUSH1 0x20 00000957: DUP10 00000958: ADD 00000959: MSTORE 0000095a: PUSH1 0x24 0000095c: DUP9 0000095d: ADD 0000095e: MSTORE 0000095f: PUSH1 0x44 00000961: DUP8 00000962: ADD 00000963: MSTORE 00000964: PUSH1 0x64 00000966: DUP7 00000967: ADD 00000968: MSTORE 00000969: PUSH1 0x84 0000096b: DUP6 0000096c: ADD 0000096d: MSTORE 0000096e: CHAINID 0000096f: PUSH1 0xa4 00000971: DUP6 00000972: ADD 00000973: MSTORE 00000974: AND 00000975: PUSH1 0xc4 00000977: DUP4 00000978: ADD 00000979: MSTORE 0000097a: PUSH1 0xe4 0000097c: DUP3 0000097d: ADD 0000097e: MSTORE 0000097f: PUSH1 0xe4 00000981: DUP2 00000982: MSTORE 00000983: PUSH2 0x098b 00000986: DUP2 00000987: PUSH2 0x277c 0000098a: JUMP 0000098b: JUMPDEST 0000098c: DUP2 0000098d: PUSH1 0x67 0000098f: SLOAD 00000990: AND 00000991: DUP3 00000992: PUSH2 0x0120 00000995: DUP7 00000996: ADD 00000997: MLOAD 00000998: AND 00000999: SWAP3 0000099a: PUSH1 0x60 0000099c: DUP7 0000099d: ADD 0000099e: MLOAD 0000099f: AND 000009a0: SWAP1 000009a1: PUSH1 0xa0 000009a3: DUP7 000009a4: ADD 000009a5: MLOAD 000009a6: SWAP4 000009a7: DUP2 000009a8: EXTCODESIZE 000009a9: ISZERO 000009aa: PUSH2 0x05fd 000009ad: JUMPI 000009ae: DUP6 000009af: DUP1 000009b0: SWAP5 000009b1: PUSH2 0x09d0 000009b4: PUSH1 0x40 000009b6: MLOAD 000009b7: SWAP8 000009b8: DUP9 000009b9: SWAP7 000009ba: DUP8 000009bb: SWAP6 000009bc: DUP7 000009bd: SWAP5 000009be: PUSH4 0x3675e4e1 000009c3: PUSH1 0xe1 000009c5: SHL 000009c6: DUP7 000009c7: MSTORE 000009c8: PUSH1 0x04 000009ca: DUP7 000009cb: ADD 000009cc: PUSH2 0x3027 000009cf: JUMP 000009d0: JUMPDEST 000009d1: SUB 000009d2: SWAP3 000009d3: GAS 000009d4: CALL 000009d5: DUP1 000009d6: ISZERO 000009d7: PUSH2 0x05f2 000009da: JUMPI 000009db: PUSH2 0x09e9 000009de: JUMPI 000009df: JUMPDEST 000009e0: POP 000009e1: POP 000009e2: PUSH1 0x20 000009e4: SWAP1 000009e5: PUSH2 0x059f 000009e8: JUMP 000009e9: JUMPDEST 000009ea: PUSH2 0x09f2 000009ed: SWAP1 000009ee: PUSH2 0x26f7 000009f1: JUMP 000009f2: JUMPDEST 000009f3: PUSH2 0x05ee 000009f6: JUMPI 000009f7: DUP2 000009f8: CODESIZE 000009f9: PUSH2 0x09df 000009fc: JUMP 000009fd: JUMPDEST 000009fe: DUP3 000009ff: DUP1 00000a00: REVERT 00000a01: JUMPDEST 00000a02: DUP1 00000a03: REVERT 00000a04: JUMPDEST 00000a05: POP 00000a06: CALLVALUE 00000a07: PUSH2 0x0a01 00000a0a: JUMPI 00000a0b: PUSH1 0x20 00000a0d: PUSH1 0x03 00000a0f: NOT 00000a10: CALLDATASIZE 00000a11: ADD 00000a12: SLT 00000a13: PUSH2 0x0a01 00000a16: JUMPI 00000a17: PUSH1 0xff 00000a19: PUSH1 0x40 00000a1b: PUSH1 0x20 00000a1d: SWAP3 00000a1e: PUSH1 0x04 00000a20: CALLDATALOAD 00000a21: DUP2 00000a22: MSTORE 00000a23: PUSH1 0x6b 00000a25: DUP5 00000a26: MSTORE 00000a27: KECCAK256 00000a28: SLOAD 00000a29: AND 00000a2a: PUSH1 0x40 00000a2c: MLOAD 00000a2d: SWAP1 00000a2e: PUSH2 0x0a36 00000a31: DUP2 00000a32: PUSH2 0x282b 00000a35: JUMP 00000a36: JUMPDEST 00000a37: DUP2 00000a38: MSTORE 00000a39: RETURN 00000a3a: JUMPDEST 00000a3b: POP 00000a3c: CALLVALUE 00000a3d: PUSH2 0x0a01 00000a40: JUMPI 00000a41: PUSH1 0x20 00000a43: PUSH1 0x03 00000a45: NOT 00000a46: CALLDATASIZE 00000a47: ADD 00000a48: SLT 00000a49: PUSH2 0x0a01 00000a4c: JUMPI 00000a4d: PUSH2 0x0a54 00000a50: PUSH2 0x2635 00000a53: JUMP 00000a54: JUMPDEST 00000a55: PUSH1 0x01 00000a57: PUSH1 0x01 00000a59: PUSH1 0xa0 00000a5b: SHL 00000a5c: SUB 00000a5d: PUSH2 0x0a74 00000a60: DUP2 00000a61: PUSH1 0x33 00000a63: SLOAD 00000a64: AND 00000a65: DUP3 00000a66: PUSH2 0x0a6d 00000a69: PUSH2 0x316e 00000a6c: JUMP 00000a6d: JUMPDEST 00000a6e: AND 00000a6f: EQ 00000a70: PUSH2 0x28ae 00000a73: JUMP 00000a74: JUMPDEST 00000a75: DUP2 00000a76: AND 00000a77: ISZERO 00000a78: PUSH2 0x0a87 00000a7b: JUMPI 00000a7c: PUSH2 0x0a84 00000a7f: SWAP1 00000a80: PUSH2 0x28f9 00000a83: JUMP 00000a84: JUMPDEST 00000a85: DUP1 00000a86: RETURN 00000a87: JUMPDEST 00000a88: PUSH1 0x84 00000a8a: PUSH1 0x40 00000a8c: MLOAD 00000a8d: PUSH3 0x461bcd 00000a91: PUSH1 0xe5 00000a93: SHL 00000a94: DUP2 00000a95: MSTORE 00000a96: PUSH1 0x20 00000a98: PUSH1 0x04 00000a9a: DUP3 00000a9b: ADD 00000a9c: MSTORE 00000a9d: PUSH1 0x26 00000a9f: PUSH1 0x24 00000aa1: DUP3 00000aa2: ADD 00000aa3: MSTORE 00000aa4: PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 00000ac5: PUSH1 0x44 00000ac7: DUP3 00000ac8: ADD 00000ac9: MSTORE 00000aca: PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 00000aeb: PUSH1 0x64 00000aed: DUP3 00000aee: ADD 00000aef: MSTORE 00000af0: REVERT 00000af1: JUMPDEST 00000af2: POP 00000af3: CALLVALUE 00000af4: PUSH2 0x0a01 00000af7: JUMPI 00000af8: PUSH1 0x20 00000afa: PUSH1 0x03 00000afc: NOT 00000afd: CALLDATASIZE 00000afe: ADD 00000aff: SLT 00000b00: PUSH2 0x0a01 00000b03: JUMPI 00000b04: PUSH2 0x0b0b 00000b07: PUSH2 0x2635 00000b0a: JUMP 00000b0b: JUMPDEST 00000b0c: PUSH1 0x01 00000b0e: PUSH1 0x01 00000b10: PUSH1 0xa0 00000b12: SHL 00000b13: SUB 00000b14: SWAP1 00000b15: PUSH2 0x0b25 00000b18: DUP3 00000b19: PUSH1 0x33 00000b1b: SLOAD 00000b1c: AND 00000b1d: DUP4 00000b1e: PUSH2 0x0a6d 00000b21: PUSH2 0x316e 00000b24: JUMP 00000b25: JUMPDEST 00000b26: AND 00000b27: DUP1 00000b28: ISZERO 00000b29: PUSH2 0x0b79 00000b2c: JUMPI 00000b2d: PUSH1 0x20 00000b2f: DUP2 00000b30: PUSH32 0xd5c54ab1d37bfef4dd2253d9d73c292e46f5bd8a67ca5920aab4c2e1993178e7 00000b51: SWAP3 00000b52: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00000b67: NOT 00000b68: PUSH1 0x6f 00000b6a: SLOAD 00000b6b: AND 00000b6c: OR 00000b6d: PUSH1 0x6f 00000b6f: SSTORE 00000b70: PUSH1 0x40 00000b72: MLOAD 00000b73: SWAP1 00000b74: DUP2 00000b75: MSTORE 00000b76: LOG1 00000b77: DUP1 00000b78: RETURN 00000b79: JUMPDEST 00000b7a: PUSH1 0x84 00000b7c: PUSH1 0x40 00000b7e: MLOAD 00000b7f: PUSH3 0x461bcd 00000b83: PUSH1 0xe5 00000b85: SHL 00000b86: DUP2 00000b87: MSTORE 00000b88: PUSH1 0x20 00000b8a: PUSH1 0x04 00000b8c: DUP3 00000b8d: ADD 00000b8e: MSTORE 00000b8f: PUSH1 0x27 00000b91: PUSH1 0x24 00000b93: DUP3 00000b94: ADD 00000b95: MSTORE 00000b96: PUSH32 0x53796d623a206d657461526f757465722063616e6e6f74206265207a65726f20 00000bb7: PUSH1 0x44 00000bb9: DUP3 00000bba: ADD 00000bbb: MSTORE 00000bbc: PUSH32 0x6164647265737300000000000000000000000000000000000000000000000000 00000bdd: PUSH1 0x64 00000bdf: DUP3 00000be0: ADD 00000be1: MSTORE 00000be2: REVERT 00000be3: JUMPDEST 00000be4: POP 00000be5: CALLVALUE 00000be6: PUSH2 0x0a01 00000be9: JUMPI 00000bea: DUP1 00000beb: PUSH1 0x03 00000bed: NOT 00000bee: CALLDATASIZE 00000bef: ADD 00000bf0: SLT 00000bf1: PUSH2 0x0a01 00000bf4: JUMPI 00000bf5: PUSH1 0x20 00000bf7: PUSH1 0x01 00000bf9: PUSH1 0x01 00000bfb: PUSH1 0xa0 00000bfd: SHL 00000bfe: SUB 00000bff: PUSH1 0x67 00000c01: SLOAD 00000c02: AND 00000c03: PUSH1 0x40 00000c05: MLOAD 00000c06: SWAP1 00000c07: DUP2 00000c08: MSTORE 00000c09: RETURN 00000c0a: JUMPDEST 00000c0b: POP 00000c0c: CALLVALUE 00000c0d: PUSH2 0x0a01 00000c10: JUMPI 00000c11: DUP1 00000c12: PUSH1 0x03 00000c14: NOT 00000c15: CALLDATASIZE 00000c16: ADD 00000c17: SLT 00000c18: PUSH2 0x0a01 00000c1b: JUMPI 00000c1c: PUSH1 0x20 00000c1e: PUSH1 0x01 00000c20: PUSH1 0x01 00000c22: PUSH1 0xa0 00000c24: SHL 00000c25: SUB 00000c26: PUSH1 0x6f 00000c28: SLOAD 00000c29: AND 00000c2a: PUSH1 0x40 00000c2c: MLOAD 00000c2d: SWAP1 00000c2e: DUP2 00000c2f: MSTORE 00000c30: RETURN 00000c31: JUMPDEST 00000c32: POP 00000c33: CALLVALUE 00000c34: PUSH2 0x0a01 00000c37: JUMPI 00000c38: PUSH1 0x03 00000c3a: NOT 00000c3b: SWAP1 00000c3c: PUSH1 0x20 00000c3e: DUP3 00000c3f: CALLDATASIZE 00000c40: ADD 00000c41: SLT 00000c42: PUSH2 0x0a01 00000c45: JUMPI 00000c46: PUSH8 0xffffffffffffffff 00000c4f: PUSH1 0x04 00000c51: CALLDATALOAD 00000c52: GT 00000c53: PUSH2 0x0a01 00000c56: JUMPI 00000c57: PUSH2 0x0200 00000c5a: DUP1 00000c5b: SWAP3 00000c5c: PUSH1 0x04 00000c5e: CALLDATALOAD 00000c5f: CALLDATASIZE 00000c60: SUB 00000c61: ADD 00000c62: SLT 00000c63: PUSH2 0x0a01 00000c66: JUMPI 00000c67: PUSH1 0x40 00000c69: MLOAD 00000c6a: SWAP2 00000c6b: DUP3 00000c6c: ADD 00000c6d: DUP3 00000c6e: DUP2 00000c6f: LT 00000c70: PUSH8 0xffffffffffffffff 00000c79: DUP3 00000c7a: GT 00000c7b: OR 00000c7c: PUSH2 0x0860 00000c7f: JUMPI 00000c80: PUSH1 0x40 00000c82: MSTORE 00000c83: PUSH1 0x04 00000c85: CALLDATALOAD 00000c86: PUSH1 0x04 00000c88: ADD 00000c89: CALLDATALOAD 00000c8a: DUP3 00000c8b: MSTORE 00000c8c: PUSH1 0x24 00000c8e: PUSH1 0x04 00000c90: CALLDATALOAD 00000c91: ADD 00000c92: CALLDATALOAD 00000c93: PUSH1 0x20 00000c95: DUP4 00000c96: ADD 00000c97: MSTORE 00000c98: PUSH2 0x0ca5 00000c9b: PUSH1 0x44 00000c9d: PUSH1 0x04 00000c9f: CALLDATALOAD 00000ca0: ADD 00000ca1: PUSH2 0x26a3 00000ca4: JUMP 00000ca5: JUMPDEST 00000ca6: PUSH1 0x40 00000ca8: DUP4 00000ca9: ADD 00000caa: MSTORE 00000cab: PUSH2 0x0cb8 00000cae: PUSH1 0x64 00000cb0: PUSH1 0x04 00000cb2: CALLDATALOAD 00000cb3: ADD 00000cb4: PUSH2 0x26a3 00000cb7: JUMP 00000cb8: JUMPDEST 00000cb9: PUSH1 0x60 00000cbb: DUP4 00000cbc: ADD 00000cbd: MSTORE 00000cbe: PUSH2 0x0ccb 00000cc1: PUSH1 0x84 00000cc3: PUSH1 0x04 00000cc5: CALLDATALOAD 00000cc6: ADD 00000cc7: PUSH2 0x26a3 00000cca: JUMP 00000ccb: JUMPDEST 00000ccc: PUSH1 0x80 00000cce: DUP4 00000ccf: ADD 00000cd0: MSTORE 00000cd1: PUSH2 0x0cde 00000cd4: PUSH1 0xa4 00000cd6: PUSH1 0x04 00000cd8: CALLDATALOAD 00000cd9: ADD 00000cda: PUSH2 0x26a3 00000cdd: JUMP 00000cde: JUMPDEST 00000cdf: PUSH1 0xa0 00000ce1: DUP4 00000ce2: ADD 00000ce3: MSTORE 00000ce4: PUSH2 0x0cf1 00000ce7: PUSH1 0xc4 00000ce9: PUSH1 0x04 00000ceb: CALLDATALOAD 00000cec: ADD 00000ced: PUSH2 0x26a3 00000cf0: JUMP 00000cf1: JUMPDEST 00000cf2: PUSH1 0xc0 00000cf4: DUP4 00000cf5: ADD 00000cf6: MSTORE 00000cf7: PUSH1 0xe4 00000cf9: PUSH1 0x04 00000cfb: CALLDATALOAD 00000cfc: ADD 00000cfd: CALLDATALOAD 00000cfe: PUSH1 0xe0 00000d00: DUP4 00000d01: ADD 00000d02: MSTORE 00000d03: PUSH8 0xffffffffffffffff 00000d0c: PUSH2 0x0104 00000d0f: PUSH1 0x04 00000d11: CALLDATALOAD 00000d12: ADD 00000d13: CALLDATALOAD 00000d14: GT 00000d15: PUSH2 0x0a01 00000d18: JUMPI 00000d19: PUSH2 0x0d2d 00000d1c: CALLDATASIZE 00000d1d: PUSH1 0x04 00000d1f: DUP1 00000d20: CALLDATALOAD 00000d21: PUSH2 0x0104 00000d24: DUP2 00000d25: ADD 00000d26: CALLDATALOAD 00000d27: ADD 00000d28: ADD 00000d29: PUSH2 0x27bc 00000d2c: JUMP 00000d2d: JUMPDEST 00000d2e: PUSH2 0x0100 00000d31: DUP4 00000d32: ADD 00000d33: MSTORE 00000d34: PUSH2 0x0d42 00000d37: PUSH2 0x0124 00000d3a: PUSH1 0x04 00000d3c: CALLDATALOAD 00000d3d: ADD 00000d3e: PUSH2 0x26a3 00000d41: JUMP 00000d42: JUMPDEST 00000d43: PUSH2 0x0120 00000d46: DUP4 00000d47: ADD 00000d48: MSTORE 00000d49: PUSH8 0xffffffffffffffff 00000d52: PUSH2 0x0144 00000d55: PUSH1 0x04 00000d57: CALLDATALOAD 00000d58: ADD 00000d59: CALLDATALOAD 00000d5a: GT 00000d5b: PUSH2 0x0a01 00000d5e: JUMPI 00000d5f: PUSH2 0x0d73 00000d62: CALLDATASIZE 00000d63: PUSH1 0x04 00000d65: DUP1 00000d66: CALLDATALOAD 00000d67: PUSH2 0x0144 00000d6a: DUP2 00000d6b: ADD 00000d6c: CALLDATALOAD 00000d6d: ADD 00000d6e: ADD 00000d6f: PUSH2 0x2867 00000d72: JUMP 00000d73: JUMPDEST 00000d74: PUSH2 0x0140 00000d77: DUP4 00000d78: ADD 00000d79: MSTORE 00000d7a: PUSH2 0x0d88 00000d7d: PUSH2 0x0164 00000d80: PUSH1 0x04 00000d82: CALLDATALOAD 00000d83: ADD 00000d84: PUSH2 0x26a3 00000d87: JUMP 00000d88: JUMPDEST 00000d89: PUSH2 0x0160 00000d8c: DUP4 00000d8d: ADD 00000d8e: MSTORE 00000d8f: PUSH8 0xffffffffffffffff 00000d98: PUSH2 0x0184 00000d9b: PUSH1 0x04 00000d9d: CALLDATALOAD 00000d9e: ADD 00000d9f: CALLDATALOAD 00000da0: GT 00000da1: PUSH2 0x0a01 00000da4: JUMPI 00000da5: PUSH2 0x0db9 00000da8: CALLDATASIZE 00000da9: PUSH1 0x04 00000dab: DUP1 00000dac: CALLDATALOAD 00000dad: PUSH2 0x0184 00000db0: DUP2 00000db1: ADD 00000db2: CALLDATALOAD 00000db3: ADD 00000db4: ADD 00000db5: PUSH2 0x2867 00000db8: JUMP 00000db9: JUMPDEST 00000dba: PUSH2 0x0180 00000dbd: DUP4 00000dbe: ADD 00000dbf: MSTORE 00000dc0: PUSH2 0x01a4 00000dc3: PUSH1 0x04 00000dc5: CALLDATALOAD 00000dc6: ADD 00000dc7: CALLDATALOAD 00000dc8: PUSH2 0x01a0 00000dcb: DUP4 00000dcc: ADD 00000dcd: MSTORE 00000dce: PUSH2 0x0ddc 00000dd1: PUSH2 0x01c4 00000dd4: PUSH1 0x04 00000dd6: CALLDATALOAD 00000dd7: ADD 00000dd8: PUSH2 0x26a3 00000ddb: JUMP 00000ddc: JUMPDEST 00000ddd: PUSH2 0x01c0 00000de0: DUP4 00000de1: ADD 00000de2: MSTORE 00000de3: PUSH2 0x01e4 00000de6: PUSH1 0x04 00000de8: CALLDATALOAD 00000de9: ADD 00000dea: CALLDATALOAD 00000deb: PUSH2 0x01e0 00000dee: DUP4 00000def: ADD 00000df0: MSTORE 00000df1: PUSH2 0x0dff 00000df4: PUSH1 0xff 00000df6: PUSH1 0x69 00000df8: SLOAD 00000df9: AND 00000dfa: ISZERO 00000dfb: PUSH2 0x294e 00000dfe: JUMP 00000dff: JUMPDEST 00000e00: PUSH1 0x01 00000e02: PUSH1 0x01 00000e04: PUSH1 0xa0 00000e06: SHL 00000e07: SUB 00000e08: PUSH1 0x40 00000e0a: DUP4 00000e0b: ADD 00000e0c: MLOAD 00000e0d: AND 00000e0e: DUP2 00000e0f: MSTORE 00000e10: PUSH1 0x6e 00000e12: PUSH1 0x20 00000e14: MSTORE 00000e15: PUSH2 0x0e24 00000e18: PUSH1 0xff 00000e1a: PUSH1 0x40 00000e1c: DUP4 00000e1d: KECCAK256 00000e1e: SLOAD 00000e1f: AND 00000e20: PUSH2 0x2999 00000e23: JUMP 00000e24: JUMPDEST 00000e25: PUSH2 0x0e4d 00000e28: PUSH1 0x20 00000e2a: DUP4 00000e2b: ADD 00000e2c: MLOAD 00000e2d: PUSH1 0x01 00000e2f: PUSH1 0x01 00000e31: PUSH1 0xa0 00000e33: SHL 00000e34: SUB 00000e35: PUSH1 0x40 00000e37: DUP6 00000e38: ADD 00000e39: MLOAD 00000e3a: AND 00000e3b: DUP4 00000e3c: MSTORE 00000e3d: PUSH1 0x6d 00000e3f: PUSH1 0x20 00000e41: MSTORE 00000e42: PUSH1 0x40 00000e44: DUP4 00000e45: KECCAK256 00000e46: SLOAD 00000e47: GT 00000e48: ISZERO 00000e49: PUSH2 0x29e4 00000e4c: JUMP 00000e4d: JUMPDEST 00000e4e: PUSH2 0x0e74 00000e51: PUSH1 0x01 00000e53: PUSH1 0x01 00000e55: PUSH1 0xa0 00000e57: SHL 00000e58: SUB 00000e59: PUSH1 0x40 00000e5b: DUP5 00000e5c: ADD 00000e5d: MLOAD 00000e5e: AND 00000e5f: PUSH2 0x0e66 00000e62: PUSH2 0x316e 00000e65: JUMP 00000e66: JUMPDEST 00000e67: SWAP1 00000e68: PUSH1 0x20 00000e6a: DUP6 00000e6b: ADD 00000e6c: MLOAD 00000e6d: SWAP2 00000e6e: ADDRESS 00000e6f: SWAP2 00000e70: PUSH2 0x2a77 00000e73: JUMP 00000e74: JUMPDEST 00000e75: PUSH1 0x01 00000e77: PUSH1 0x01 00000e79: PUSH1 0xa0 00000e7b: SHL 00000e7c: SUB 00000e7d: PUSH1 0x40 00000e7f: DUP4 00000e80: ADD 00000e81: MLOAD 00000e82: AND 00000e83: DUP2 00000e84: MSTORE 00000e85: PUSH1 0x6c 00000e87: PUSH1 0x20 00000e89: MSTORE 00000e8a: PUSH2 0x0e9c 00000e8d: PUSH1 0x40 00000e8f: DUP3 00000e90: KECCAK256 00000e91: SLOAD 00000e92: PUSH1 0x20 00000e94: DUP5 00000e95: ADD 00000e96: MLOAD 00000e97: SWAP1 00000e98: PUSH2 0x30f0 00000e9b: JUMP 00000e9c: JUMPDEST 00000e9d: PUSH1 0x01 00000e9f: PUSH1 0x01 00000ea1: PUSH1 0xa0 00000ea3: SHL 00000ea4: SUB 00000ea5: PUSH1 0x40 00000ea7: DUP5 00000ea8: ADD 00000ea9: MLOAD 00000eaa: AND 00000eab: DUP3 00000eac: MSTORE 00000ead: PUSH1 0x6c 00000eaf: PUSH1 0x20 00000eb1: MSTORE 00000eb2: PUSH1 0x40 00000eb4: DUP3 00000eb5: KECCAK256 00000eb6: SSTORE 00000eb7: PUSH1 0x01 00000eb9: PUSH1 0x01 00000ebb: PUSH1 0xa0 00000ebd: SHL 00000ebe: SUB 00000ebf: PUSH2 0x01c0 00000ec2: DUP4 00000ec3: ADD 00000ec4: MLOAD 00000ec5: AND 00000ec6: ISZERO 00000ec7: PUSH2 0x1392 00000eca: JUMPI 00000ecb: JUMPDEST 00000ecc: PUSH1 0x68 00000ece: SLOAD 00000ecf: PUSH1 0x40 00000ed1: MLOAD 00000ed2: ADDRESS 00000ed3: PUSH1 0x60 00000ed5: SHL 00000ed6: PUSH12 0xffffffffffffffffffffffff 00000ee3: NOT 00000ee4: AND 00000ee5: PUSH1 0x20 00000ee7: DUP3 00000ee8: ADD 00000ee9: MSTORE 00000eea: PUSH1 0x34 00000eec: DUP2 00000eed: ADD 00000eee: SWAP2 00000eef: SWAP1 00000ef0: SWAP2 00000ef1: MSTORE 00000ef2: CHAINID 00000ef3: PUSH1 0x54 00000ef5: DUP3 00000ef6: ADD 00000ef7: MSTORE 00000ef8: PUSH2 0x0f04 00000efb: DUP2 00000efc: PUSH1 0x74 00000efe: DUP2 00000eff: ADD 00000f00: PUSH2 0x0322 00000f03: JUMP 00000f04: JUMPDEST 00000f05: PUSH1 0x20 00000f07: DUP2 00000f08: MLOAD 00000f09: SWAP2 00000f0a: ADD 00000f0b: KECCAK256 00000f0c: SWAP1 00000f0d: PUSH1 0x01 00000f0f: PUSH1 0x01 00000f11: PUSH1 0xa0 00000f13: SHL 00000f14: SUB 00000f15: PUSH1 0x80 00000f17: DUP5 00000f18: ADD 00000f19: MLOAD 00000f1a: AND 00000f1b: PUSH1 0x01 00000f1d: PUSH1 0x01 00000f1f: PUSH1 0xa0 00000f21: SHL 00000f22: SUB 00000f23: PUSH2 0x01c0 00000f26: DUP6 00000f27: ADD 00000f28: MLOAD 00000f29: AND 00000f2a: PUSH2 0x0f75 00000f2d: PUSH1 0xe0 00000f2f: DUP7 00000f30: ADD 00000f31: MLOAD 00000f32: SWAP2 00000f33: PUSH2 0x0322 00000f36: PUSH1 0x40 00000f38: MLOAD 00000f39: SWAP4 00000f3a: DUP5 00000f3b: SWAP3 00000f3c: PUSH1 0x20 00000f3e: DUP5 00000f3f: ADD 00000f40: SWAP7 00000f41: DUP10 00000f42: DUP9 00000f43: SWAP3 00000f44: PUSH1 0x68 00000f46: SWAP5 00000f47: SWAP3 00000f48: SWAP2 00000f49: DUP5 00000f4a: MSTORE 00000f4b: PUSH12 0xffffffffffffffffffffffff 00000f58: NOT 00000f59: DUP1 00000f5a: SWAP3 00000f5b: PUSH1 0x60 00000f5d: SHL 00000f5e: AND 00000f5f: PUSH1 0x20 00000f61: DUP6 00000f62: ADD 00000f63: MSTORE 00000f64: PUSH1 0x60 00000f66: SHL 00000f67: AND 00000f68: PUSH1 0x34 00000f6a: DUP4 00000f6b: ADD 00000f6c: MSTORE 00000f6d: PUSH1 0x48 00000f6f: DUP3 00000f70: ADD 00000f71: MSTORE 00000f72: ADD 00000f73: SWAP1 00000f74: JUMP 00000f75: JUMPDEST 00000f76: MLOAD 00000f77: SWAP1 00000f78: KECCAK256 00000f79: PUSH2 0x122d 00000f7c: DUP5 00000f7d: MLOAD 00000f7e: SWAP2 00000f7f: PUSH1 0x20 00000f81: DUP7 00000f82: ADD 00000f83: MLOAD 00000f84: DUP7 00000f85: PUSH1 0x01 00000f87: PUSH1 0x01 00000f89: PUSH1 0xa0 00000f8b: SHL 00000f8c: SUB 00000f8d: PUSH1 0x40 00000f8f: DUP3 00000f90: ADD 00000f91: MLOAD 00000f92: AND 00000f93: PUSH1 0x01 00000f95: PUSH1 0x01 00000f97: PUSH1 0xa0 00000f99: SHL 00000f9a: SUB 00000f9b: PUSH1 0x60 00000f9d: DUP4 00000f9e: ADD 00000f9f: MLOAD 00000fa0: AND 00000fa1: PUSH2 0x0100 00000fa4: DUP4 00000fa5: ADD 00000fa6: MLOAD 00000fa7: PUSH1 0x01 00000fa9: PUSH1 0x01 00000fab: PUSH1 0xa0 00000fad: SHL 00000fae: SUB 00000faf: PUSH2 0x0120 00000fb2: DUP6 00000fb3: ADD 00000fb4: MLOAD 00000fb5: AND 00000fb6: SWAP1 00000fb7: PUSH2 0x0140 00000fba: DUP6 00000fbb: ADD 00000fbc: MLOAD 00000fbd: SWAP3 00000fbe: PUSH1 0x01 00000fc0: PUSH1 0x01 00000fc2: PUSH1 0xa0 00000fc4: SHL 00000fc5: SUB 00000fc6: PUSH2 0x0160 00000fc9: DUP8 00000fca: ADD 00000fcb: MLOAD 00000fcc: AND 00000fcd: SWAP5 00000fce: PUSH2 0x01a0 00000fd1: PUSH2 0x0180 00000fd4: DUP9 00000fd5: ADD 00000fd6: MLOAD 00000fd7: SWAP8 00000fd8: ADD 00000fd9: MLOAD 00000fda: SWAP8 00000fdb: PUSH1 0x40 00000fdd: MLOAD 00000fde: SWAP12 00000fdf: PUSH2 0x0fe7 00000fe2: DUP14 00000fe3: PUSH2 0x2727 00000fe6: JUMP 00000fe7: JUMPDEST 00000fe8: DUP13 00000fe9: MSTORE 00000fea: PUSH1 0x20 00000fec: DUP13 00000fed: ADD 00000fee: MSTORE 00000fef: DUP13 00000ff0: PUSH1 0x40 00000ff2: DUP13 00000ff3: ADD 00000ff4: MSTORE 00000ff5: DUP9 00000ff6: PUSH1 0x60 00000ff8: DUP13 00000ff9: ADD 00000ffa: MSTORE 00000ffb: PUSH1 0x80 00000ffd: DUP12 00000ffe: ADD 00000fff: MSTORE 00001000: CHAINID 00001001: PUSH1 0xa0 00001003: DUP12 00001004: ADD 00001005: MSTORE 00001006: PUSH1 0xc0 00001008: DUP11 00001009: ADD 0000100a: MSTORE 0000100b: PUSH1 0xe0 0000100d: DUP10 0000100e: ADD 0000100f: MSTORE 00001010: PUSH2 0x0100 00001013: DUP9 00001014: ADD 00001015: MSTORE 00001016: PUSH2 0x0120 00001019: DUP8 0000101a: ADD 0000101b: MSTORE 0000101c: PUSH2 0x0140 0000101f: DUP7 00001020: ADD 00001021: MSTORE 00001022: PUSH2 0x0160 00001025: DUP6 00001026: ADD 00001027: MSTORE 00001028: PUSH2 0x0180 0000102b: DUP5 0000102c: ADD 0000102d: MSTORE 0000102e: PUSH2 0x116e 00001031: PUSH1 0x40 00001033: MLOAD 00001034: DUP1 00001035: SWAP5 00001036: PUSH32 0xc29a91bc00000000000000000000000000000000000000000000000000000000 00001057: PUSH1 0x20 00001059: DUP4 0000105a: ADD 0000105b: MSTORE 0000105c: PUSH1 0x20 0000105e: PUSH1 0x24 00001060: DUP4 00001061: ADD 00001062: MSTORE 00001063: DUP1 00001064: MLOAD 00001065: PUSH1 0x44 00001067: DUP4 00001068: ADD 00001069: MSTORE 0000106a: PUSH1 0x20 0000106c: DUP2 0000106d: ADD 0000106e: MLOAD 0000106f: PUSH1 0x64 00001071: DUP4 00001072: ADD 00001073: MSTORE 00001074: PUSH1 0x40 00001076: DUP2 00001077: ADD 00001078: MLOAD 00001079: PUSH1 0x84 0000107b: DUP4 0000107c: ADD 0000107d: MSTORE 0000107e: PUSH1 0x60 00001080: DUP2 00001081: ADD 00001082: MLOAD 00001083: PUSH1 0xa4 00001085: DUP4 00001086: ADD 00001087: MSTORE 00001088: PUSH1 0x01 0000108a: PUSH1 0x01 0000108c: PUSH1 0xa0 0000108e: SHL 0000108f: SUB 00001090: PUSH1 0x80 00001092: DUP3 00001093: ADD 00001094: MLOAD 00001095: AND 00001096: PUSH1 0xc4 00001098: DUP4 00001099: ADD 0000109a: MSTORE 0000109b: PUSH1 0xa0 0000109d: DUP2 0000109e: ADD 0000109f: MLOAD 000010a0: PUSH1 0xe4 000010a2: DUP4 000010a3: ADD 000010a4: MSTORE 000010a5: PUSH1 0x01 000010a7: PUSH1 0x01 000010a9: PUSH1 0xa0 000010ab: SHL 000010ac: SUB 000010ad: PUSH1 0xc0 000010af: DUP3 000010b0: ADD 000010b1: MLOAD 000010b2: AND 000010b3: PUSH2 0x0104 000010b6: DUP4 000010b7: ADD 000010b8: MSTORE 000010b9: PUSH2 0x0180 000010bc: PUSH2 0x1157 000010bf: PUSH2 0x10da 000010c2: PUSH1 0xe0 000010c4: DUP5 000010c5: ADD 000010c6: MLOAD 000010c7: PUSH2 0x01a0 000010ca: PUSH2 0x0124 000010cd: DUP8 000010ce: ADD 000010cf: MSTORE 000010d0: PUSH2 0x01e4 000010d3: DUP7 000010d4: ADD 000010d5: SWAP1 000010d6: PUSH2 0x30b3 000010d9: JUMP 000010da: JUMPDEST 000010db: PUSH1 0x01 000010dd: PUSH1 0x01 000010df: PUSH1 0xa0 000010e1: SHL 000010e2: SUB 000010e3: PUSH2 0x0100 000010e6: DUP6 000010e7: ADD 000010e8: MLOAD 000010e9: AND 000010ea: PUSH2 0x0144 000010ed: DUP7 000010ee: ADD 000010ef: MSTORE 000010f0: PUSH2 0x112b 000010f3: PUSH2 0x0120 000010f6: DUP6 000010f7: ADD 000010f8: MLOAD 000010f9: SWAP2 000010fa: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc 0000111b: SWAP3 0000111c: DUP4 0000111d: DUP9 0000111e: DUP4 0000111f: SUB 00001120: ADD 00001121: PUSH2 0x0164 00001124: DUP10 00001125: ADD 00001126: MSTORE 00001127: PUSH2 0x26b7 0000112a: JUMP 0000112b: JUMPDEST 0000112c: SWAP1 0000112d: PUSH1 0x01 0000112f: PUSH1 0x01 00001131: PUSH1 0xa0 00001133: SHL 00001134: SUB 00001135: PUSH2 0x0140 00001138: DUP7 00001139: ADD 0000113a: MLOAD 0000113b: AND 0000113c: PUSH2 0x0184 0000113f: DUP8 00001140: ADD 00001141: MSTORE 00001142: PUSH2 0x0160 00001145: DUP6 00001146: ADD 00001147: MLOAD 00001148: SWAP1 00001149: DUP7 0000114a: DUP4 0000114b: SUB 0000114c: ADD 0000114d: PUSH2 0x01a4 00001150: DUP8 00001151: ADD 00001152: MSTORE 00001153: PUSH2 0x26b7 00001156: JUMP 00001157: JUMPDEST 00001158: SWAP2 00001159: ADD 0000115a: MLOAD 0000115b: PUSH2 0x01c4 0000115e: DUP4 0000115f: ADD 00001160: MSTORE 00001161: SUB 00001162: PUSH1 0x1f 00001164: NOT 00001165: DUP2 00001166: ADD 00001167: DUP6 00001168: MSTORE 00001169: DUP5 0000116a: PUSH2 0x2799 0000116d: JUMP 0000116e: JUMPDEST 0000116f: PUSH1 0x01 00001171: PUSH1 0x01 00001173: PUSH1 0xa0 00001175: SHL 00001176: SUB 00001177: PUSH1 0xc0 00001179: DUP8 0000117a: ADD 0000117b: MLOAD 0000117c: AND 0000117d: SWAP1 0000117e: PUSH1 0x01 00001180: PUSH1 0x01 00001182: PUSH1 0xa0 00001184: SHL 00001185: SUB 00001186: PUSH1 0x60 00001188: DUP9 00001189: ADD 0000118a: MLOAD 0000118b: AND 0000118c: PUSH1 0x01 0000118e: PUSH1 0x01 00001190: PUSH1 0xa0 00001192: SHL 00001193: SUB 00001194: PUSH1 0x03 00001196: DUP2 00001197: PUSH1 0x40 00001199: DUP12 0000119a: ADD 0000119b: MLOAD 0000119c: AND 0000119d: SWAP5 0000119e: PUSH1 0x20 000011a0: DUP12 000011a1: ADD 000011a2: MLOAD 000011a3: PUSH1 0x40 000011a5: MLOAD 000011a6: SWAP2 000011a7: PUSH2 0x11af 000011aa: DUP4 000011ab: PUSH2 0x270b 000011ae: JUMP 000011af: JUMPDEST 000011b0: DUP3 000011b1: MSTORE 000011b2: PUSH1 0x20 000011b4: DUP3 000011b5: ADD 000011b6: SWAP5 000011b7: DUP6 000011b8: MSTORE 000011b9: PUSH1 0x40 000011bb: DUP3 000011bc: ADD 000011bd: SWAP1 000011be: DUP2 000011bf: MSTORE 000011c0: PUSH1 0x60 000011c2: DUP3 000011c3: ADD 000011c4: SWAP7 000011c5: DUP8 000011c6: MSTORE 000011c7: PUSH1 0x80 000011c9: DUP3 000011ca: ADD 000011cb: SWAP6 000011cc: PUSH1 0x01 000011ce: DUP8 000011cf: MSTORE 000011d0: DUP11 000011d1: MSTORE 000011d2: PUSH1 0x6a 000011d4: PUSH1 0x20 000011d6: MSTORE 000011d7: DUP4 000011d8: PUSH1 0x40 000011da: DUP12 000011db: KECCAK256 000011dc: SWAP3 000011dd: MLOAD 000011de: AND 000011df: SWAP5 000011e0: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000011f5: NOT 000011f6: SWAP6 000011f7: DUP7 000011f8: DUP5 000011f9: SLOAD 000011fa: AND 000011fb: OR 000011fc: DUP4 000011fd: SSTORE 000011fe: DUP5 000011ff: PUSH1 0x01 00001201: DUP5 00001202: ADD 00001203: SWAP2 00001204: MLOAD 00001205: AND 00001206: DUP7 00001207: DUP3 00001208: SLOAD 00001209: AND 0000120a: OR 0000120b: SWAP1 0000120c: SSTORE 0000120d: MLOAD 0000120e: PUSH1 0x02 00001210: DUP3 00001211: ADD 00001212: SSTORE 00001213: ADD 00001214: SWAP4 00001215: MLOAD 00001216: AND 00001217: SWAP1 00001218: DUP4 00001219: SLOAD 0000121a: AND 0000121b: OR 0000121c: DUP3 0000121d: SSTORE 0000121e: MLOAD 0000121f: SWAP1 00001220: PUSH2 0x1228 00001223: DUP3 00001224: PUSH2 0x282b 00001227: JUMP 00001228: JUMPDEST 00001229: PUSH2 0x2bd2 0000122c: JUMP 0000122d: JUMPDEST 0000122e: PUSH2 0x1238 00001231: PUSH1 0x68 00001233: SLOAD 00001234: PUSH2 0x305c 00001237: JUMP 00001238: JUMPDEST 00001239: PUSH1 0x68 0000123b: SSTORE 0000123c: PUSH1 0x01 0000123e: PUSH1 0x01 00001240: PUSH1 0xa0 00001242: SHL 00001243: SUB 00001244: PUSH1 0x67 00001246: SLOAD 00001247: AND 00001248: PUSH1 0x01 0000124a: PUSH1 0x01 0000124c: PUSH1 0xa0 0000124e: SHL 0000124f: SUB 00001250: PUSH1 0x80 00001252: DUP7 00001253: ADD 00001254: MLOAD 00001255: AND 00001256: SWAP1 00001257: PUSH1 0x01 00001259: PUSH1 0x01 0000125b: PUSH1 0xa0 0000125d: SHL 0000125e: SUB 0000125f: PUSH1 0xa0 00001261: DUP8 00001262: ADD 00001263: MLOAD 00001264: AND 00001265: SWAP2 00001266: PUSH1 0xe0 00001268: DUP8 00001269: ADD 0000126a: MLOAD 0000126b: SWAP4 0000126c: DUP3 0000126d: EXTCODESIZE 0000126e: ISZERO 0000126f: PUSH2 0x05fd 00001272: JUMPI 00001273: SWAP1 00001274: DUP6 00001275: DUP1 00001276: SWAP5 00001277: SWAP4 00001278: SWAP3 00001279: PUSH2 0x1298 0000127c: PUSH1 0x40 0000127e: MLOAD 0000127f: SWAP8 00001280: DUP9 00001281: SWAP7 00001282: DUP8 00001283: SWAP6 00001284: DUP7 00001285: SWAP5 00001286: PUSH4 0x3675e4e1 0000128b: PUSH1 0xe1 0000128d: SHL 0000128e: DUP7 0000128f: MSTORE 00001290: PUSH1 0x04 00001292: DUP7 00001293: ADD 00001294: PUSH2 0x3027 00001297: JUMP 00001298: JUMPDEST 00001299: SUB 0000129a: SWAP3 0000129b: GAS 0000129c: CALL 0000129d: DUP1 0000129e: ISZERO 0000129f: PUSH2 0x05f2 000012a2: JUMPI 000012a3: PUSH2 0x137e 000012a6: JUMPI 000012a7: JUMPDEST 000012a8: PUSH1 0x20 000012aa: DUP4 000012ab: PUSH2 0x01e0 000012ae: DUP7 000012af: PUSH1 0x01 000012b1: PUSH1 0x01 000012b3: PUSH1 0xa0 000012b5: SHL 000012b6: SUB 000012b7: PUSH1 0xc0 000012b9: DUP3 000012ba: ADD 000012bb: MLOAD 000012bc: AND 000012bd: PUSH1 0xe0 000012bf: DUP3 000012c0: ADD 000012c1: MLOAD 000012c2: PUSH1 0x01 000012c4: PUSH1 0x01 000012c6: PUSH1 0xa0 000012c8: SHL 000012c9: SUB 000012ca: PUSH2 0x01c0 000012cd: DUP5 000012ce: ADD 000012cf: MLOAD 000012d0: AND 000012d1: SWAP2 000012d2: PUSH32 0x31325fe0a1a2e6a5b1e41572156ba5b4e94f0fae7e7f63ec21e9b5ce1e4b3eab 000012f3: PUSH1 0x01 000012f5: PUSH1 0x01 000012f7: PUSH1 0xa0 000012f9: SHL 000012fa: SUB 000012fb: PUSH1 0x60 000012fd: DUP7 000012fe: ADD 000012ff: MLOAD 00001300: AND 00001301: DUP9 00001302: DUP7 00001303: ADD 00001304: MLOAD 00001305: SWAP1 00001306: PUSH2 0x1348 00001309: PUSH1 0x01 0000130b: PUSH1 0x01 0000130d: PUSH1 0xa0 0000130f: SHL 00001310: SUB 00001311: PUSH1 0x40 00001313: DUP10 00001314: ADD 00001315: MLOAD 00001316: AND 00001317: PUSH1 0x40 00001319: MLOAD 0000131a: SWAP4 0000131b: DUP5 0000131c: SWAP4 0000131d: DUP13 0000131e: DUP6 0000131f: SWAP3 00001320: SWAP4 00001321: PUSH1 0x60 00001323: SWAP3 00001324: SWAP2 00001325: SWAP6 00001326: SWAP5 00001327: PUSH1 0x80 00001329: DUP6 0000132a: ADD 0000132b: SWAP7 0000132c: DUP6 0000132d: MSTORE 0000132e: PUSH1 0x01 00001330: PUSH1 0x01 00001332: PUSH1 0xa0 00001334: SHL 00001335: SUB 00001336: DUP1 00001337: SWAP4 00001338: AND 00001339: PUSH1 0x20 0000133b: DUP7 0000133c: ADD 0000133d: MSTORE 0000133e: PUSH1 0x40 00001340: DUP6 00001341: ADD 00001342: MSTORE 00001343: AND 00001344: SWAP2 00001345: ADD 00001346: MSTORE 00001347: JUMP 00001348: JUMPDEST 00001349: SUB 0000134a: SWAP1 0000134b: LOG4 0000134c: ADD 0000134d: MLOAD 0000134e: PUSH32 0x5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5 0000136f: DUP4 00001370: PUSH1 0x40 00001372: MLOAD 00001373: DUP5 00001374: DUP2 00001375: MSTORE 00001376: LOG2 00001377: PUSH1 0x40 00001379: MLOAD 0000137a: SWAP1 0000137b: DUP2 0000137c: MSTORE 0000137d: RETURN 0000137e: JUMPDEST 0000137f: PUSH2 0x1388 00001382: DUP3 00001383: SWAP2 00001384: PUSH2 0x26f7 00001387: JUMP 00001388: JUMPDEST 00001389: PUSH2 0x0a01 0000138c: JUMPI 0000138d: DUP1 0000138e: PUSH2 0x12a7 00001391: JUMP 00001392: JUMPDEST 00001393: PUSH1 0x01 00001395: PUSH1 0x01 00001397: PUSH1 0xa0 00001399: SHL 0000139a: SUB 0000139b: PUSH1 0x60 0000139d: DUP4 0000139e: ADD 0000139f: MLOAD 000013a0: AND 000013a1: PUSH2 0x01c0 000013a4: DUP4 000013a5: ADD 000013a6: MSTORE 000013a7: PUSH2 0x0ecb 000013aa: JUMP 000013ab: JUMPDEST 000013ac: POP 000013ad: CALLVALUE 000013ae: PUSH2 0x0a01 000013b1: JUMPI 000013b2: PUSH1 0x40 000013b4: PUSH1 0x03 000013b6: NOT 000013b7: CALLDATASIZE 000013b8: ADD 000013b9: SLT 000013ba: PUSH2 0x0a01 000013bd: JUMPI 000013be: PUSH1 0x04 000013c0: CALLDATALOAD 000013c1: PUSH1 0x24 000013c3: CALLDATALOAD 000013c4: PUSH1 0x01 000013c6: PUSH1 0x01 000013c8: PUSH1 0xa0 000013ca: SHL 000013cb: SUB 000013cc: PUSH2 0x13da 000013cf: DUP2 000013d0: PUSH1 0x67 000013d2: SLOAD 000013d3: AND 000013d4: CALLER 000013d5: EQ 000013d6: PUSH2 0x2b87 000013d9: JUMP 000013da: JUMPDEST 000013db: PUSH2 0x13e9 000013de: PUSH1 0xff 000013e0: PUSH1 0x69 000013e2: SLOAD 000013e3: AND 000013e4: ISZERO 000013e5: PUSH2 0x294e 000013e8: JUMP 000013e9: JUMPDEST 000013ea: DUP2 000013eb: DUP5 000013ec: MSTORE 000013ed: PUSH1 0x6a 000013ef: PUSH1 0x20 000013f1: MSTORE 000013f2: PUSH1 0x40 000013f4: DUP5 000013f5: KECCAK256 000013f6: SWAP3 000013f7: PUSH1 0x03 000013f9: DUP5 000013fa: ADD 000013fb: DUP1 000013fc: SLOAD 000013fd: PUSH1 0x01 000013ff: PUSH1 0xff 00001401: DUP3 00001402: PUSH1 0xa0 00001404: SHR 00001405: AND 00001406: PUSH2 0x140e 00001409: DUP2 0000140a: PUSH2 0x282b 0000140d: JUMP 0000140e: JUMPDEST 0000140f: SUB 00001410: PUSH2 0x1512 00001413: JUMPI 00001414: DUP4 00001415: PUSH2 0x14e1 00001418: DUP5 00001419: DUP3 0000141a: PUSH32 0xefcdf9ea4e65571d2ce9c030c46954e950662df8a7d8bd039fc4417e37b2f88c 0000143b: SWAP8 0000143c: DUP6 0000143d: PUSH21 0x020000000000000000000000000000000000000000 00001453: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff 00001474: PUSH2 0x150c 00001477: SWAP9 00001478: AND 00001479: OR 0000147a: DUP9 0000147b: SSTORE 0000147c: AND 0000147d: SWAP10 0000147e: DUP11 0000147f: DUP13 00001480: MSTORE 00001481: PUSH1 0x6c 00001483: PUSH1 0x20 00001485: MSTORE 00001486: PUSH1 0x40 00001488: DUP13 00001489: KECCAK256 0000148a: SLOAD 0000148b: SWAP11 0000148c: PUSH2 0x149b 0000148f: PUSH1 0x02 00001491: DUP4 00001492: ADD 00001493: SWAP13 00001494: DUP14 00001495: SLOAD 00001496: SWAP1 00001497: PUSH2 0x2c21 0000149a: JUMP 0000149b: JUMPDEST 0000149c: SWAP1 0000149d: DUP14 0000149e: MSTORE 0000149f: PUSH1 0x6c 000014a1: PUSH1 0x20 000014a3: MSTORE 000014a4: PUSH1 0x40 000014a6: DUP14 000014a7: KECCAK256 000014a8: SSTORE 000014a9: PUSH2 0x14c5 000014ac: DUP3 000014ad: DUP9 000014ae: SLOAD 000014af: AND 000014b0: DUP13 000014b1: PUSH2 0x14bf 000014b4: DUP7 000014b5: DUP7 000014b6: DUP7 000014b7: SLOAD 000014b8: AND 000014b9: SWAP3 000014ba: SLOAD 000014bb: PUSH2 0x2c21 000014be: JUMP 000014bf: JUMPDEST 000014c0: SWAP2 000014c1: PUSH2 0x2c44 000014c4: JUMP 000014c5: JUMPDEST 000014c6: PUSH2 0x14d8 000014c9: DUP4 000014ca: DUP4 000014cb: DUP10 000014cc: SLOAD 000014cd: AND 000014ce: DUP5 000014cf: PUSH1 0x67 000014d1: SLOAD 000014d2: AND 000014d3: SWAP1 000014d4: PUSH2 0x2c44 000014d7: JUMP 000014d8: JUMPDEST 000014d9: SLOAD 000014da: AND 000014db: SWAP9 000014dc: SLOAD 000014dd: PUSH2 0x2c21 000014e0: JUMP 000014e1: JUMPDEST 000014e2: SWAP3 000014e3: SLOAD 000014e4: AND 000014e5: PUSH1 0x40 000014e7: MLOAD 000014e8: SWAP4 000014e9: DUP5 000014ea: SWAP4 000014eb: DUP5 000014ec: SWAP2 000014ed: PUSH1 0x40 000014ef: SWAP2 000014f0: SWAP5 000014f1: SWAP4 000014f2: PUSH1 0x01 000014f4: PUSH1 0x01 000014f6: PUSH1 0xa0 000014f8: SHL 000014f9: SUB 000014fa: SWAP2 000014fb: PUSH1 0x60 000014fd: DUP6 000014fe: ADD 000014ff: SWAP7 00001500: DUP6 00001501: MSTORE 00001502: PUSH1 0x20 00001504: DUP6 00001505: ADD 00001506: MSTORE 00001507: AND 00001508: SWAP2 00001509: ADD 0000150a: MSTORE 0000150b: JUMP 0000150c: JUMPDEST 0000150d: SUB 0000150e: SWAP1 0000150f: LOG3 00001510: DUP1 00001511: RETURN 00001512: JUMPDEST 00001513: PUSH1 0x84 00001515: PUSH1 0x40 00001517: MLOAD 00001518: PUSH3 0x461bcd 0000151c: PUSH1 0xe5 0000151e: SHL 0000151f: DUP2 00001520: MSTORE 00001521: PUSH1 0x20 00001523: PUSH1 0x04 00001525: DUP3 00001526: ADD 00001527: MSTORE 00001528: PUSH1 0x29 0000152a: PUSH1 0x24 0000152c: DUP3 0000152d: ADD 0000152e: MSTORE 0000152f: PUSH32 0x53796d623a207374617465206e6f74206f70656e206f7220747820646f657320 00001550: PUSH1 0x44 00001552: DUP3 00001553: ADD 00001554: MSTORE 00001555: PUSH32 0x6e6f742065786973740000000000000000000000000000000000000000000000 00001576: PUSH1 0x64 00001578: DUP3 00001579: ADD 0000157a: MSTORE 0000157b: REVERT 0000157c: JUMPDEST 0000157d: POP 0000157e: CALLVALUE 0000157f: PUSH2 0x0a01 00001582: JUMPI 00001583: PUSH2 0x0120 00001586: PUSH1 0x03 00001588: NOT 00001589: CALLDATASIZE 0000158a: ADD 0000158b: SLT 0000158c: PUSH2 0x0a01 0000158f: JUMPI 00001590: PUSH2 0x1597 00001593: PUSH2 0x261f 00001596: JUMP 00001597: JUMPDEST 00001598: PUSH2 0x159f 0000159b: PUSH2 0x2661 0000159e: JUMP 0000159f: JUMPDEST 000015a0: SWAP1 000015a1: PUSH2 0x15a8 000015a4: PUSH2 0x268d 000015a7: JUMP 000015a8: JUMPDEST 000015a9: SWAP2 000015aa: PUSH1 0xe4 000015ac: CALLDATALOAD 000015ad: SWAP3 000015ae: PUSH8 0xffffffffffffffff 000015b7: DUP5 000015b8: GT 000015b9: PUSH2 0x160a 000015bc: JUMPI 000015bd: PUSH2 0x15cd 000015c0: PUSH2 0x0a84 000015c3: SWAP5 000015c4: CALLDATASIZE 000015c5: SWAP1 000015c6: PUSH1 0x04 000015c8: ADD 000015c9: PUSH2 0x2867 000015cc: JUMP 000015cd: JUMPDEST 000015ce: SWAP2 000015cf: PUSH2 0x15e4 000015d2: PUSH1 0x01 000015d4: PUSH1 0x01 000015d6: PUSH1 0xa0 000015d8: SHL 000015d9: SUB 000015da: PUSH1 0x67 000015dc: SLOAD 000015dd: AND 000015de: CALLER 000015df: EQ 000015e0: PUSH2 0x2b87 000015e3: JUMP 000015e4: JUMPDEST 000015e5: PUSH2 0x15f3 000015e8: PUSH1 0xff 000015ea: PUSH1 0x69 000015ec: SLOAD 000015ed: AND 000015ee: ISZERO 000015ef: PUSH2 0x294e 000015f2: JUMP 000015f3: JUMPDEST 000015f4: PUSH2 0x0104 000015f7: CALLDATALOAD 000015f8: SWAP4 000015f9: PUSH1 0x84 000015fb: CALLDATALOAD 000015fc: SWAP1 000015fd: PUSH1 0x44 000015ff: CALLDATALOAD 00001600: PUSH1 0x24 00001602: CALLDATALOAD 00001603: PUSH1 0x04 00001605: CALLDATALOAD 00001606: PUSH2 0x2dc0 00001609: JUMP 0000160a: JUMPDEST 0000160b: DUP5 0000160c: DUP1 0000160d: REVERT 0000160e: JUMPDEST 0000160f: POP 00001610: CALLVALUE 00001611: PUSH2 0x0a01 00001614: JUMPI 00001615: PUSH1 0x20 00001617: PUSH1 0x03 00001619: NOT 0000161a: CALLDATASIZE 0000161b: ADD 0000161c: SLT 0000161d: PUSH2 0x0a01 00001620: JUMPI 00001621: PUSH32 0xce42f6a6b3d7a9e5602623686f752d848285a87b22f0168a666c9c6064d2d230 00001642: PUSH1 0x20 00001644: PUSH2 0x164b 00001647: PUSH2 0x2635 0000164a: JUMP 0000164b: JUMPDEST 0000164c: PUSH1 0x01 0000164e: PUSH1 0x01 00001650: PUSH1 0xa0 00001652: SHL 00001653: SUB 00001654: SWAP1 00001655: PUSH2 0x1665 00001658: DUP3 00001659: PUSH1 0x33 0000165b: SLOAD 0000165c: AND 0000165d: DUP4 0000165e: PUSH2 0x0a6d 00001661: PUSH2 0x316e 00001664: JUMP 00001665: JUMPDEST 00001666: AND 00001667: DUP1 00001668: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0000167d: NOT 0000167e: PUSH1 0x66 00001680: SLOAD 00001681: AND 00001682: OR 00001683: PUSH1 0x66 00001685: SSTORE 00001686: PUSH1 0x40 00001688: MLOAD 00001689: SWAP1 0000168a: DUP2 0000168b: MSTORE 0000168c: LOG1 0000168d: DUP1 0000168e: RETURN 0000168f: JUMPDEST 00001690: POP 00001691: CALLVALUE 00001692: PUSH2 0x0a01 00001695: JUMPI 00001696: PUSH2 0x0120 00001699: PUSH1 0x03 0000169b: NOT 0000169c: CALLDATASIZE 0000169d: ADD 0000169e: SLT 0000169f: PUSH2 0x0a01 000016a2: JUMPI 000016a3: PUSH2 0x16aa 000016a6: PUSH2 0x264b 000016a9: JUMP 000016aa: JUMPDEST 000016ab: PUSH2 0x16b2 000016ae: PUSH2 0x261f 000016b1: JUMP 000016b2: JUMPDEST 000016b3: SWAP1 000016b4: PUSH2 0x16bb 000016b7: PUSH2 0x2677 000016ba: JUMP 000016bb: JUMPDEST 000016bc: SWAP2 000016bd: PUSH2 0x16c4 000016c0: PUSH2 0x2661 000016c3: JUMP 000016c4: JUMPDEST 000016c5: SWAP3 000016c6: PUSH2 0x16cd 000016c9: PUSH2 0x268d 000016cc: JUMP 000016cd: JUMPDEST 000016ce: SWAP1 000016cf: PUSH2 0x16dd 000016d2: PUSH1 0xff 000016d4: PUSH1 0x69 000016d6: SLOAD 000016d7: AND 000016d8: ISZERO 000016d9: PUSH2 0x294e 000016dc: JUMP 000016dd: JUMPDEST 000016de: PUSH1 0x01 000016e0: PUSH1 0x01 000016e2: PUSH1 0xa0 000016e4: SHL 000016e5: SUB 000016e6: DUP5 000016e7: AND 000016e8: DUP7 000016e9: MSTORE 000016ea: PUSH1 0x6e 000016ec: PUSH1 0x20 000016ee: MSTORE 000016ef: PUSH2 0x16fe 000016f2: PUSH1 0xff 000016f4: PUSH1 0x40 000016f6: DUP9 000016f7: KECCAK256 000016f8: SLOAD 000016f9: AND 000016fa: PUSH2 0x2999 000016fd: JUMP 000016fe: JUMPDEST 000016ff: PUSH1 0x01 00001701: PUSH1 0x01 00001703: PUSH1 0xa0 00001705: SHL 00001706: SUB 00001707: DUP5 00001708: AND 00001709: DUP7 0000170a: MSTORE 0000170b: PUSH1 0x6d 0000170d: PUSH1 0x20 0000170f: MSTORE 00001710: PUSH2 0x1721 00001713: PUSH1 0x40 00001715: DUP8 00001716: KECCAK256 00001717: SLOAD 00001718: PUSH1 0x44 0000171a: CALLDATALOAD 0000171b: LT 0000171c: ISZERO 0000171d: PUSH2 0x29e4 00001720: JUMP 00001721: JUMPDEST 00001722: PUSH2 0x1738 00001725: PUSH2 0x172c 00001728: PUSH2 0x316e 0000172b: JUMP 0000172c: JUMPDEST 0000172d: PUSH1 0x44 0000172f: CALLDATALOAD 00001730: SWAP1 00001731: ADDRESS 00001732: SWAP1 00001733: DUP8 00001734: PUSH2 0x2a77 00001737: JUMP 00001738: JUMPDEST 00001739: PUSH1 0x01 0000173b: PUSH1 0x01 0000173d: PUSH1 0xa0 0000173f: SHL 00001740: SUB 00001741: DUP3 00001742: DUP2 00001743: DUP7 00001744: AND 00001745: DUP9 00001746: MSTORE 00001747: PUSH1 0x6c 00001749: PUSH1 0x20 0000174b: MSTORE 0000174c: PUSH2 0x175b 0000174f: PUSH1 0x44 00001751: CALLDATALOAD 00001752: PUSH1 0x40 00001754: DUP11 00001755: KECCAK256 00001756: SLOAD 00001757: PUSH2 0x30f0 0000175a: JUMP 0000175b: JUMPDEST 0000175c: DUP3 0000175d: DUP8 0000175e: AND 0000175f: DUP10 00001760: MSTORE 00001761: PUSH1 0x6c 00001763: PUSH1 0x20 00001765: MSTORE 00001766: PUSH1 0x40 00001768: DUP10 00001769: KECCAK256 0000176a: SSTORE 0000176b: AND 0000176c: ISZERO 0000176d: PUSH2 0x1ac4 00001770: JUMPI 00001771: JUMPDEST 00001772: DUP6 00001773: PUSH1 0x68 00001775: SLOAD 00001776: PUSH1 0x40 00001778: MLOAD 00001779: PUSH2 0x17af 0000177c: DUP2 0000177d: PUSH2 0x0322 00001780: PUSH1 0x20 00001782: DUP3 00001783: ADD 00001784: SWAP5 00001785: CHAINID 00001786: SWAP1 00001787: ADDRESS 00001788: DUP8 00001789: SWAP2 0000178a: PUSH12 0xffffffffffffffffffffffff 00001797: NOT 00001798: PUSH1 0x54 0000179a: SWAP5 0000179b: SWAP3 0000179c: PUSH1 0x60 0000179e: SHL 0000179f: AND 000017a0: DUP4 000017a1: MSTORE 000017a2: PUSH1 0x14 000017a4: DUP4 000017a5: ADD 000017a6: MSTORE 000017a7: PUSH1 0x34 000017a9: DUP3 000017aa: ADD 000017ab: MSTORE 000017ac: ADD 000017ad: SWAP1 000017ae: JUMP 000017af: JUMPDEST 000017b0: MLOAD 000017b1: SWAP1 000017b2: KECCAK256 000017b3: SWAP6 000017b4: PUSH1 0x40 000017b6: MLOAD 000017b7: PUSH2 0x17fa 000017ba: DUP2 000017bb: PUSH2 0x0322 000017be: PUSH1 0xe4 000017c0: CALLDATALOAD 000017c1: DUP9 000017c2: DUP9 000017c3: DUP14 000017c4: PUSH1 0x20 000017c6: DUP7 000017c7: ADD 000017c8: SWAP3 000017c9: PUSH1 0x68 000017cb: SWAP5 000017cc: SWAP3 000017cd: SWAP2 000017ce: DUP5 000017cf: MSTORE 000017d0: PUSH12 0xffffffffffffffffffffffff 000017dd: NOT 000017de: DUP1 000017df: SWAP3 000017e0: PUSH1 0x60 000017e2: SHL 000017e3: AND 000017e4: PUSH1 0x20 000017e6: DUP6 000017e7: ADD 000017e8: MSTORE 000017e9: PUSH1 0x60 000017eb: SHL 000017ec: AND 000017ed: PUSH1 0x34 000017ef: DUP4 000017f0: ADD 000017f1: MSTORE 000017f2: PUSH1 0x48 000017f4: DUP3 000017f5: ADD 000017f6: MSTORE 000017f7: ADD 000017f8: SWAP1 000017f9: JUMP 000017fa: JUMPDEST 000017fb: PUSH1 0x20 000017fd: DUP2 000017fe: MLOAD 000017ff: SWAP2 00001800: ADD 00001801: KECCAK256 00001802: SWAP1 00001803: PUSH2 0x19a3 00001806: DUP8 00001807: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 00001828: PUSH1 0x4b 0000182a: PUSH1 0x40 0000182c: MLOAD 0000182d: PUSH2 0x1835 00001830: DUP2 00001831: PUSH2 0x2760 00001834: JUMP 00001835: JUMPDEST 00001836: DUP2 00001837: DUP2 00001838: MSTORE 00001839: PUSH32 0x35362c6164647265737329000000000000000000000000000000000000000000 0000185a: PUSH1 0x60 0000185c: PUSH1 0x20 0000185e: DUP4 0000185f: ADD 00001860: SWAP3 00001861: PUSH32 0x6d696e7453796e746865746963546f6b656e2875696e743235362c6279746573 00001882: DUP5 00001883: MSTORE 00001884: PUSH32 0x33322c627974657333322c616464726573732c75696e743235362c75696e7432 000018a5: PUSH1 0x40 000018a7: DUP3 000018a8: ADD 000018a9: MSTORE 000018aa: ADD 000018ab: MSTORE 000018ac: KECCAK256 000018ad: AND 000018ae: SWAP4 000018af: PUSH1 0x40 000018b1: MLOAD 000018b2: SWAP5 000018b3: PUSH1 0x20 000018b5: DUP7 000018b6: ADD 000018b7: MSTORE 000018b8: PUSH1 0x04 000018ba: CALLDATALOAD 000018bb: PUSH1 0x24 000018bd: DUP7 000018be: ADD 000018bf: MSTORE 000018c0: DUP1 000018c1: PUSH1 0x44 000018c3: DUP7 000018c4: ADD 000018c5: MSTORE 000018c6: DUP11 000018c7: PUSH1 0x64 000018c9: DUP7 000018ca: ADD 000018cb: MSTORE 000018cc: PUSH1 0x01 000018ce: PUSH1 0x01 000018d0: PUSH1 0xa0 000018d2: SHL 000018d3: SUB 000018d4: DUP3 000018d5: AND 000018d6: PUSH1 0x84 000018d8: DUP7 000018d9: ADD 000018da: MSTORE 000018db: CHAINID 000018dc: PUSH1 0xa4 000018de: DUP7 000018df: ADD 000018e0: MSTORE 000018e1: PUSH1 0x44 000018e3: CALLDATALOAD 000018e4: PUSH1 0xc4 000018e6: DUP7 000018e7: ADD 000018e8: MSTORE 000018e9: PUSH1 0x01 000018eb: PUSH1 0x01 000018ed: PUSH1 0xa0 000018ef: SHL 000018f0: SUB 000018f1: DUP10 000018f2: AND 000018f3: DUP1 000018f4: PUSH1 0xe4 000018f6: DUP8 000018f7: ADD 000018f8: MSTORE 000018f9: PUSH1 0xe4 000018fb: DUP7 000018fc: MSTORE 000018fd: PUSH2 0x1905 00001900: DUP7 00001901: PUSH2 0x277c 00001904: JUMP 00001905: JUMPDEST 00001906: PUSH1 0x01 00001908: PUSH1 0x01 0000190a: PUSH1 0xa0 0000190c: SHL 0000190d: SUB 0000190e: PUSH1 0x03 00001910: PUSH2 0x1917 00001913: PUSH2 0x316e 00001916: JUMP 00001917: JUMPDEST 00001918: DUP3 00001919: PUSH1 0x40 0000191b: MLOAD 0000191c: SWAP2 0000191d: PUSH2 0x1925 00001920: DUP4 00001921: PUSH2 0x270b 00001924: JUMP 00001925: JUMPDEST 00001926: AND 00001927: DUP2 00001928: MSTORE 00001929: PUSH1 0x20 0000192b: DUP2 0000192c: ADD 0000192d: SWAP4 0000192e: DUP5 0000192f: MSTORE 00001930: PUSH1 0x40 00001932: DUP2 00001933: ADD 00001934: PUSH1 0x44 00001936: CALLDATALOAD 00001937: DUP2 00001938: MSTORE 00001939: DUP4 0000193a: PUSH1 0x60 0000193c: DUP4 0000193d: ADD 0000193e: SWAP8 0000193f: AND 00001940: DUP8 00001941: MSTORE 00001942: PUSH1 0x80 00001944: DUP3 00001945: ADD 00001946: SWAP6 00001947: PUSH1 0x01 00001949: DUP8 0000194a: MSTORE 0000194b: DUP12 0000194c: MSTORE 0000194d: PUSH1 0x6a 0000194f: PUSH1 0x20 00001951: MSTORE 00001952: DUP4 00001953: PUSH1 0x40 00001955: DUP13 00001956: KECCAK256 00001957: SWAP3 00001958: MLOAD 00001959: AND 0000195a: SWAP5 0000195b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001970: NOT 00001971: SWAP6 00001972: DUP7 00001973: DUP5 00001974: SLOAD 00001975: AND 00001976: OR 00001977: DUP4 00001978: SSTORE 00001979: DUP5 0000197a: PUSH1 0x01 0000197c: DUP5 0000197d: ADD 0000197e: SWAP2 0000197f: MLOAD 00001980: AND 00001981: DUP7 00001982: DUP3 00001983: SLOAD 00001984: AND 00001985: OR 00001986: SWAP1 00001987: SSTORE 00001988: MLOAD 00001989: PUSH1 0x02 0000198b: DUP3 0000198c: ADD 0000198d: SSTORE 0000198e: ADD 0000198f: SWAP4 00001990: MLOAD 00001991: AND 00001992: SWAP1 00001993: DUP4 00001994: SLOAD 00001995: AND 00001996: OR 00001997: DUP3 00001998: SSTORE 00001999: MLOAD 0000199a: SWAP1 0000199b: PUSH2 0x1228 0000199e: DUP3 0000199f: PUSH2 0x282b 000019a2: JUMP 000019a3: JUMPDEST 000019a4: PUSH2 0x19ae 000019a7: PUSH1 0x68 000019a9: SLOAD 000019aa: PUSH2 0x305c 000019ad: JUMP 000019ae: JUMPDEST 000019af: PUSH1 0x68 000019b1: SSTORE 000019b2: PUSH1 0x01 000019b4: PUSH1 0x01 000019b6: PUSH1 0xa0 000019b8: SHL 000019b9: SUB 000019ba: PUSH1 0x67 000019bc: SLOAD 000019bd: AND 000019be: SWAP1 000019bf: DUP2 000019c0: EXTCODESIZE 000019c1: ISZERO 000019c2: PUSH2 0x1ac0 000019c5: JUMPI 000019c6: DUP4 000019c7: PUSH2 0x19eb 000019ca: SWAP6 000019cb: PUSH1 0x40 000019cd: MLOAD 000019ce: SWAP7 000019cf: DUP8 000019d0: SWAP6 000019d1: DUP7 000019d2: SWAP5 000019d3: DUP6 000019d4: SWAP4 000019d5: PUSH4 0x3675e4e1 000019da: PUSH1 0xe1 000019dc: SHL 000019dd: DUP6 000019de: MSTORE 000019df: PUSH1 0xe4 000019e1: CALLDATALOAD 000019e2: SWAP3 000019e3: PUSH1 0x04 000019e5: DUP7 000019e6: ADD 000019e7: PUSH2 0x3027 000019ea: JUMP 000019eb: JUMPDEST 000019ec: SUB 000019ed: SWAP3 000019ee: GAS 000019ef: CALL 000019f0: DUP1 000019f1: ISZERO 000019f2: PUSH2 0x1ab5 000019f5: JUMPI 000019f6: PUSH2 0x1aa1 000019f9: JUMPI 000019fa: JUMPDEST 000019fb: POP 000019fc: PUSH1 0x20 000019fe: SWAP5 000019ff: POP 00001a00: PUSH32 0x31325fe0a1a2e6a5b1e41572156ba5b4e94f0fae7e7f63ec21e9b5ce1e4b3eab 00001a21: PUSH1 0x01 00001a23: PUSH1 0x01 00001a25: PUSH1 0xa0 00001a27: SHL 00001a28: SUB 00001a29: DUP1 00001a2a: PUSH2 0x1a31 00001a2d: PUSH2 0x316e 00001a30: JUMP 00001a31: JUMPDEST 00001a32: PUSH1 0x40 00001a34: DUP1 00001a35: MLOAD 00001a36: DUP10 00001a37: DUP2 00001a38: MSTORE 00001a39: PUSH1 0x01 00001a3b: PUSH1 0x01 00001a3d: PUSH1 0xa0 00001a3f: SHL 00001a40: SUB 00001a41: SWAP8 00001a42: DUP9 00001a43: AND 00001a44: PUSH1 0x20 00001a46: DUP3 00001a47: ADD 00001a48: MSTORE 00001a49: PUSH1 0x44 00001a4b: CALLDATALOAD 00001a4c: SWAP2 00001a4d: DUP2 00001a4e: ADD 00001a4f: SWAP2 00001a50: SWAP1 00001a51: SWAP2 00001a52: MSTORE 00001a53: SWAP7 00001a54: SWAP1 00001a55: SWAP6 00001a56: AND 00001a57: PUSH1 0x60 00001a59: DUP8 00001a5a: ADD 00001a5b: MSTORE 00001a5c: SWAP3 00001a5d: AND 00001a5e: SWAP4 00001a5f: PUSH1 0xe4 00001a61: CALLDATALOAD 00001a62: SWAP4 00001a63: SWAP3 00001a64: SWAP1 00001a65: SWAP3 00001a66: AND 00001a67: SWAP2 00001a68: PUSH1 0x80 00001a6a: SWAP1 00001a6b: LOG4 00001a6c: PUSH1 0x40 00001a6e: MLOAD 00001a6f: DUP2 00001a70: DUP2 00001a71: MSTORE 00001a72: PUSH32 0x5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5 00001a93: DUP4 00001a94: PUSH2 0x0104 00001a97: CALLDATALOAD 00001a98: SWAP3 00001a99: LOG2 00001a9a: PUSH1 0x40 00001a9c: MLOAD 00001a9d: SWAP1 00001a9e: DUP2 00001a9f: MSTORE 00001aa0: RETURN 00001aa1: JUMPDEST 00001aa2: PUSH2 0x1aab 00001aa5: DUP7 00001aa6: SWAP2 00001aa7: PUSH2 0x26f7 00001aaa: JUMP 00001aab: JUMPDEST 00001aac: PUSH2 0x160a 00001aaf: JUMPI 00001ab0: DUP5 00001ab1: PUSH2 0x19fa 00001ab4: JUMP 00001ab5: JUMPDEST 00001ab6: PUSH1 0x40 00001ab8: MLOAD 00001ab9: RETURNDATASIZE 00001aba: DUP9 00001abb: DUP3 00001abc: RETURNDATACOPY 00001abd: RETURNDATASIZE 00001abe: SWAP1 00001abf: REVERT 00001ac0: JUMPDEST 00001ac1: DUP4 00001ac2: DUP1 00001ac3: REVERT 00001ac4: JUMPDEST 00001ac5: DUP3 00001ac6: SWAP2 00001ac7: POP 00001ac8: PUSH2 0x1771 00001acb: JUMP 00001acc: JUMPDEST 00001acd: POP 00001ace: CALLVALUE 00001acf: PUSH2 0x0a01 00001ad2: JUMPI 00001ad3: DUP1 00001ad4: PUSH1 0x03 00001ad6: NOT 00001ad7: CALLDATASIZE 00001ad8: ADD 00001ad9: SLT 00001ada: PUSH2 0x0a01 00001add: JUMPI 00001ade: PUSH1 0x20 00001ae0: PUSH1 0x01 00001ae2: PUSH1 0x01 00001ae4: PUSH1 0xa0 00001ae6: SHL 00001ae7: SUB 00001ae8: PUSH1 0x66 00001aea: SLOAD 00001aeb: AND 00001aec: PUSH1 0x40 00001aee: MLOAD 00001aef: SWAP1 00001af0: DUP2 00001af1: MSTORE 00001af2: RETURN 00001af3: JUMPDEST 00001af4: POP 00001af5: CALLVALUE 00001af6: PUSH2 0x0a01 00001af9: JUMPI 00001afa: PUSH1 0x20 00001afc: PUSH1 0x03 00001afe: NOT 00001aff: CALLDATASIZE 00001b00: ADD 00001b01: SLT 00001b02: PUSH2 0x0a01 00001b05: JUMPI 00001b06: PUSH1 0x40 00001b08: PUSH1 0xa0 00001b0a: SWAP2 00001b0b: PUSH1 0x04 00001b0d: CALLDATALOAD 00001b0e: DUP2 00001b0f: MSTORE 00001b10: PUSH1 0x6a 00001b12: PUSH1 0x20 00001b14: MSTORE 00001b15: KECCAK256 00001b16: PUSH1 0x01 00001b18: PUSH1 0x01 00001b1a: PUSH1 0xa0 00001b1c: SHL 00001b1d: SUB 00001b1e: SWAP1 00001b1f: DUP2 00001b20: DUP2 00001b21: SLOAD 00001b22: AND 00001b23: SWAP2 00001b24: DUP1 00001b25: PUSH1 0x01 00001b27: DUP4 00001b28: ADD 00001b29: SLOAD 00001b2a: AND 00001b2b: SWAP2 00001b2c: PUSH1 0x03 00001b2e: PUSH1 0x02 00001b30: DUP3 00001b31: ADD 00001b32: SLOAD 00001b33: SWAP2 00001b34: ADD 00001b35: SLOAD 00001b36: SWAP1 00001b37: PUSH1 0xff 00001b39: DUP3 00001b3a: DUP8 00001b3b: SHR 00001b3c: AND 00001b3d: SWAP4 00001b3e: PUSH1 0x40 00001b40: MLOAD 00001b41: SWAP6 00001b42: DUP7 00001b43: MSTORE 00001b44: PUSH1 0x20 00001b46: DUP7 00001b47: ADD 00001b48: MSTORE 00001b49: PUSH1 0x40 00001b4b: DUP6 00001b4c: ADD 00001b4d: MSTORE 00001b4e: AND 00001b4f: PUSH1 0x60 00001b51: DUP4 00001b52: ADD 00001b53: MSTORE 00001b54: PUSH2 0x1b5c 00001b57: DUP2 00001b58: PUSH2 0x282b 00001b5b: JUMP 00001b5c: JUMPDEST 00001b5d: PUSH1 0x80 00001b5f: DUP3 00001b60: ADD 00001b61: MSTORE 00001b62: RETURN 00001b63: JUMPDEST 00001b64: POP 00001b65: CALLVALUE 00001b66: PUSH2 0x0a01 00001b69: JUMPI 00001b6a: DUP1 00001b6b: PUSH1 0x03 00001b6d: NOT 00001b6e: CALLDATASIZE 00001b6f: ADD 00001b70: SLT 00001b71: PUSH2 0x0a01 00001b74: JUMPI 00001b75: PUSH1 0x20 00001b77: PUSH1 0x01 00001b79: PUSH1 0x01 00001b7b: PUSH1 0xa0 00001b7d: SHL 00001b7e: SUB 00001b7f: PUSH1 0x33 00001b81: SLOAD 00001b82: AND 00001b83: PUSH1 0x40 00001b85: MLOAD 00001b86: SWAP1 00001b87: DUP2 00001b88: MSTORE 00001b89: RETURN 00001b8a: JUMPDEST 00001b8b: POP 00001b8c: CALLVALUE 00001b8d: PUSH2 0x0a01 00001b90: JUMPI 00001b91: PUSH1 0x40 00001b93: PUSH1 0x03 00001b95: NOT 00001b96: CALLDATASIZE 00001b97: ADD 00001b98: SLT 00001b99: PUSH2 0x0a01 00001b9c: JUMPI 00001b9d: PUSH32 0xa6742efd4f410d6fd9688a6cf6a15b6d51121097a263056a3576baaacdc4a9ae 00001bbe: PUSH2 0x1bc5 00001bc1: PUSH2 0x2635 00001bc4: JUMP 00001bc5: JUMPDEST 00001bc6: PUSH1 0x24 00001bc8: CALLDATALOAD 00001bc9: SWAP1 00001bca: PUSH1 0x01 00001bcc: PUSH1 0x01 00001bce: PUSH1 0xa0 00001bd0: SHL 00001bd1: SUB 00001bd2: PUSH2 0x1be2 00001bd5: DUP2 00001bd6: PUSH1 0x33 00001bd8: SLOAD 00001bd9: AND 00001bda: DUP3 00001bdb: PUSH2 0x0a6d 00001bde: PUSH2 0x316e 00001be1: JUMP 00001be2: JUMPDEST 00001be3: DUP2 00001be4: AND 00001be5: DUP5 00001be6: MSTORE 00001be7: PUSH1 0x6d 00001be9: PUSH1 0x20 00001beb: MSTORE 00001bec: DUP2 00001bed: PUSH1 0x40 00001bef: DUP6 00001bf0: KECCAK256 00001bf1: SSTORE 00001bf2: PUSH2 0x1c16 00001bf5: PUSH1 0x40 00001bf7: MLOAD 00001bf8: SWAP3 00001bf9: DUP4 00001bfa: SWAP3 00001bfb: DUP4 00001bfc: PUSH1 0x20 00001bfe: SWAP1 00001bff: SWAP4 00001c00: SWAP3 00001c01: SWAP2 00001c02: SWAP4 00001c03: PUSH1 0x01 00001c05: PUSH1 0x01 00001c07: PUSH1 0xa0 00001c09: SHL 00001c0a: SUB 00001c0b: PUSH1 0x40 00001c0d: DUP3 00001c0e: ADD 00001c0f: SWAP6 00001c10: AND 00001c11: DUP2 00001c12: MSTORE 00001c13: ADD 00001c14: MSTORE 00001c15: JUMP 00001c16: JUMPDEST 00001c17: SUB 00001c18: SWAP1 00001c19: LOG1 00001c1a: DUP1 00001c1b: RETURN 00001c1c: JUMPDEST 00001c1d: POP 00001c1e: CALLVALUE 00001c1f: PUSH2 0x0a01 00001c22: JUMPI 00001c23: DUP1 00001c24: PUSH1 0x03 00001c26: NOT 00001c27: CALLDATASIZE 00001c28: ADD 00001c29: SLT 00001c2a: PUSH2 0x0a01 00001c2d: JUMPI 00001c2e: PUSH32 0x62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258 00001c4f: PUSH1 0x20 00001c51: PUSH1 0x01 00001c53: PUSH1 0x01 00001c55: PUSH1 0xa0 00001c57: SHL 00001c58: SUB 00001c59: PUSH2 0x1c69 00001c5c: DUP2 00001c5d: PUSH1 0x33 00001c5f: SLOAD 00001c60: AND 00001c61: DUP3 00001c62: PUSH2 0x0a6d 00001c65: PUSH2 0x316e 00001c68: JUMP 00001c69: JUMPDEST 00001c6a: PUSH1 0x01 00001c6c: PUSH1 0xff 00001c6e: NOT 00001c6f: PUSH1 0x69 00001c71: SLOAD 00001c72: AND 00001c73: OR 00001c74: PUSH1 0x69 00001c76: SSTORE 00001c77: PUSH2 0x1c7e 00001c7a: PUSH2 0x316e 00001c7d: JUMP 00001c7e: JUMPDEST 00001c7f: PUSH1 0x40 00001c81: MLOAD 00001c82: SWAP2 00001c83: AND 00001c84: DUP2 00001c85: MSTORE 00001c86: LOG1 00001c87: DUP1 00001c88: RETURN 00001c89: JUMPDEST 00001c8a: POP 00001c8b: CALLVALUE 00001c8c: PUSH2 0x0a01 00001c8f: JUMPI 00001c90: PUSH1 0x40 00001c92: PUSH1 0x03 00001c94: NOT 00001c95: CALLDATASIZE 00001c96: ADD 00001c97: SLT 00001c98: PUSH2 0x0a01 00001c9b: JUMPI 00001c9c: PUSH2 0x1ca3 00001c9f: PUSH2 0x2635 00001ca2: JUMP 00001ca3: JUMPDEST 00001ca4: PUSH1 0x24 00001ca6: CALLDATALOAD 00001ca7: SWAP1 00001ca8: DUP2 00001ca9: ISZERO 00001caa: ISZERO 00001cab: DUP1 00001cac: SWAP3 00001cad: SUB 00001cae: PUSH2 0x09fd 00001cb1: JUMPI 00001cb2: PUSH32 0x0a4552f1105808db6a44587c9ef0a7c4064bf620b9d843b514ad7365bd52239a 00001cd3: SWAP2 00001cd4: PUSH1 0x40 00001cd6: SWAP2 00001cd7: PUSH1 0x01 00001cd9: PUSH1 0x01 00001cdb: PUSH1 0xa0 00001cdd: SHL 00001cde: SUB 00001cdf: SWAP1 00001ce0: PUSH2 0x1cf0 00001ce3: DUP3 00001ce4: PUSH1 0x33 00001ce6: SLOAD 00001ce7: AND 00001ce8: DUP4 00001ce9: PUSH2 0x0a6d 00001cec: PUSH2 0x316e 00001cef: JUMP 00001cf0: JUMPDEST 00001cf1: AND 00001cf2: SWAP1 00001cf3: DUP2 00001cf4: DUP6 00001cf5: MSTORE 00001cf6: PUSH1 0x6e 00001cf8: PUSH1 0x20 00001cfa: MSTORE 00001cfb: DUP3 00001cfc: DUP6 00001cfd: KECCAK256 00001cfe: PUSH1 0xff 00001d00: NOT 00001d01: DUP2 00001d02: SLOAD 00001d03: AND 00001d04: PUSH1 0xff 00001d06: DUP4 00001d07: AND 00001d08: OR 00001d09: SWAP1 00001d0a: SSTORE 00001d0b: DUP3 00001d0c: MLOAD 00001d0d: SWAP2 00001d0e: DUP3 00001d0f: MSTORE 00001d10: PUSH1 0x20 00001d12: DUP3 00001d13: ADD 00001d14: MSTORE 00001d15: LOG1 00001d16: DUP1 00001d17: RETURN 00001d18: JUMPDEST 00001d19: POP 00001d1a: CALLVALUE 00001d1b: PUSH2 0x0a01 00001d1e: JUMPI 00001d1f: PUSH1 0x20 00001d21: PUSH1 0x03 00001d23: NOT 00001d24: CALLDATASIZE 00001d25: ADD 00001d26: SLT 00001d27: PUSH2 0x0a01 00001d2a: JUMPI 00001d2b: PUSH1 0xff 00001d2d: PUSH1 0x40 00001d2f: PUSH1 0x20 00001d31: SWAP3 00001d32: PUSH1 0x01 00001d34: PUSH1 0x01 00001d36: PUSH1 0xa0 00001d38: SHL 00001d39: SUB 00001d3a: PUSH2 0x1d41 00001d3d: PUSH2 0x2635 00001d40: JUMP 00001d41: JUMPDEST 00001d42: AND 00001d43: DUP2 00001d44: MSTORE 00001d45: PUSH1 0x6e 00001d47: DUP5 00001d48: MSTORE 00001d49: KECCAK256 00001d4a: SLOAD 00001d4b: AND 00001d4c: PUSH1 0x40 00001d4e: MLOAD 00001d4f: SWAP1 00001d50: ISZERO 00001d51: ISZERO 00001d52: DUP2 00001d53: MSTORE 00001d54: RETURN 00001d55: JUMPDEST 00001d56: POP 00001d57: CALLVALUE 00001d58: PUSH2 0x0a01 00001d5b: JUMPI 00001d5c: DUP1 00001d5d: PUSH1 0x03 00001d5f: NOT 00001d60: CALLDATASIZE 00001d61: ADD 00001d62: SLT 00001d63: PUSH2 0x0a01 00001d66: JUMPI 00001d67: PUSH1 0x00 00001d69: PUSH1 0x33 00001d6b: SLOAD 00001d6c: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00001d81: NOT 00001d82: PUSH1 0x01 00001d84: PUSH1 0x01 00001d86: PUSH1 0xa0 00001d88: SHL 00001d89: SUB 00001d8a: SWAP2 00001d8b: PUSH2 0x1da1 00001d8e: DUP4 00001d8f: DUP3 00001d90: AND 00001d91: SWAP4 00001d92: PUSH2 0x1d99 00001d95: PUSH2 0x316e 00001d98: JUMP 00001d99: JUMPDEST 00001d9a: AND 00001d9b: DUP5 00001d9c: EQ 00001d9d: PUSH2 0x28ae 00001da0: JUMP 00001da1: JUMPDEST 00001da2: AND 00001da3: PUSH1 0x33 00001da5: SSTORE 00001da6: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00001dc7: DUP3 00001dc8: DUP1 00001dc9: LOG3 00001dca: DUP1 00001dcb: RETURN 00001dcc: JUMPDEST 00001dcd: POP 00001dce: CALLVALUE 00001dcf: PUSH2 0x0a01 00001dd2: JUMPI 00001dd3: PUSH1 0x20 00001dd5: PUSH1 0x03 00001dd7: NOT 00001dd8: CALLDATASIZE 00001dd9: ADD 00001dda: SLT 00001ddb: PUSH2 0x0a01 00001dde: JUMPI 00001ddf: PUSH1 0x40 00001de1: PUSH1 0x20 00001de3: SWAP2 00001de4: PUSH1 0x01 00001de6: PUSH1 0x01 00001de8: PUSH1 0xa0 00001dea: SHL 00001deb: SUB 00001dec: PUSH2 0x1df3 00001def: PUSH2 0x2635 00001df2: JUMP 00001df3: JUMPDEST 00001df4: AND 00001df5: DUP2 00001df6: MSTORE 00001df7: PUSH1 0x6c 00001df9: DUP4 00001dfa: MSTORE 00001dfb: KECCAK256 00001dfc: SLOAD 00001dfd: PUSH1 0x40 00001dff: MLOAD 00001e00: SWAP1 00001e01: DUP2 00001e02: MSTORE 00001e03: RETURN 00001e04: JUMPDEST 00001e05: POP 00001e06: CALLVALUE 00001e07: PUSH2 0x0a01 00001e0a: JUMPI 00001e0b: PUSH1 0x20 00001e0d: PUSH1 0x03 00001e0f: NOT 00001e10: CALLDATASIZE 00001e11: ADD 00001e12: SLT 00001e13: PUSH2 0x0a01 00001e16: JUMPI 00001e17: PUSH1 0x40 00001e19: PUSH1 0x20 00001e1b: SWAP2 00001e1c: PUSH1 0x01 00001e1e: PUSH1 0x01 00001e20: PUSH1 0xa0 00001e22: SHL 00001e23: SUB 00001e24: PUSH2 0x1e2b 00001e27: PUSH2 0x2635 00001e2a: JUMP 00001e2b: JUMPDEST 00001e2c: AND 00001e2d: DUP2 00001e2e: MSTORE 00001e2f: PUSH1 0x6d 00001e31: DUP4 00001e32: MSTORE 00001e33: KECCAK256 00001e34: SLOAD 00001e35: PUSH1 0x40 00001e37: MLOAD 00001e38: SWAP1 00001e39: DUP2 00001e3a: MSTORE 00001e3b: RETURN 00001e3c: JUMPDEST 00001e3d: POP 00001e3e: CALLVALUE 00001e3f: PUSH2 0x0a01 00001e42: JUMPI 00001e43: DUP1 00001e44: PUSH1 0x03 00001e46: NOT 00001e47: CALLDATASIZE 00001e48: ADD 00001e49: SLT 00001e4a: PUSH2 0x0a01 00001e4d: JUMPI 00001e4e: PUSH1 0x20 00001e50: PUSH1 0xff 00001e52: PUSH1 0x69 00001e54: SLOAD 00001e55: AND 00001e56: PUSH1 0x40 00001e58: MLOAD 00001e59: SWAP1 00001e5a: ISZERO 00001e5b: ISZERO 00001e5c: DUP2 00001e5d: MSTORE 00001e5e: RETURN 00001e5f: JUMPDEST 00001e60: POP 00001e61: CALLVALUE 00001e62: PUSH2 0x0a01 00001e65: JUMPI 00001e66: DUP1 00001e67: PUSH1 0x03 00001e69: NOT 00001e6a: CALLDATASIZE 00001e6b: ADD 00001e6c: SLT 00001e6d: PUSH2 0x0a01 00001e70: JUMPI 00001e71: PUSH1 0x20 00001e73: PUSH1 0x68 00001e75: SLOAD 00001e76: PUSH1 0x40 00001e78: MLOAD 00001e79: SWAP1 00001e7a: DUP2 00001e7b: MSTORE 00001e7c: RETURN 00001e7d: JUMPDEST 00001e7e: POP 00001e7f: CALLVALUE 00001e80: PUSH2 0x0a01 00001e83: JUMPI 00001e84: PUSH1 0x20 00001e86: PUSH1 0x03 00001e88: NOT 00001e89: CALLDATASIZE 00001e8a: ADD 00001e8b: SLT 00001e8c: PUSH2 0x0a01 00001e8f: JUMPI 00001e90: PUSH1 0x20 00001e92: PUSH2 0x1e99 00001e95: PUSH2 0x2635 00001e98: JUMP 00001e99: JUMPDEST 00001e9a: PUSH1 0x01 00001e9c: PUSH1 0x01 00001e9e: PUSH1 0xa0 00001ea0: SHL 00001ea1: SUB 00001ea2: DUP1 00001ea3: PUSH1 0x65 00001ea5: SLOAD 00001ea6: AND 00001ea7: SWAP2 00001ea8: AND 00001ea9: EQ 00001eaa: PUSH1 0x40 00001eac: MLOAD 00001ead: SWAP1 00001eae: DUP2 00001eaf: MSTORE 00001eb0: RETURN 00001eb1: JUMPDEST 00001eb2: POP 00001eb3: CALLVALUE 00001eb4: PUSH2 0x0a01 00001eb7: JUMPI 00001eb8: PUSH1 0x20 00001eba: DUP1 00001ebb: PUSH1 0x03 00001ebd: NOT 00001ebe: CALLDATASIZE 00001ebf: ADD 00001ec0: SLT 00001ec1: PUSH2 0x05ee 00001ec4: JUMPI 00001ec5: PUSH1 0x04 00001ec7: CALLDATALOAD 00001ec8: PUSH8 0xffffffffffffffff 00001ed1: DUP2 00001ed2: GT 00001ed3: PUSH2 0x09fd 00001ed6: JUMPI 00001ed7: PUSH2 0x1ee4 00001eda: SWAP1 00001edb: CALLDATASIZE 00001edc: SWAP1 00001edd: PUSH1 0x04 00001edf: ADD 00001ee0: PUSH2 0x27bc 00001ee3: JUMP 00001ee4: JUMPDEST 00001ee5: SWAP1 00001ee6: PUSH1 0x01 00001ee8: PUSH1 0x01 00001eea: PUSH1 0xa0 00001eec: SHL 00001eed: SUB 00001eee: SWAP1 00001eef: PUSH2 0x1eff 00001ef2: DUP3 00001ef3: PUSH1 0x33 00001ef5: SLOAD 00001ef6: AND 00001ef7: DUP4 00001ef8: PUSH2 0x0a6d 00001efb: PUSH2 0x316e 00001efe: JUMP 00001eff: JUMPDEST 00001f00: DUP4 00001f01: JUMPDEST 00001f02: DUP4 00001f03: MLOAD 00001f04: DUP2 00001f05: LT 00001f06: ISZERO 00001f07: PUSH2 0x1fd3 00001f0a: JUMPI 00001f0b: DUP1 00001f0c: DUP4 00001f0d: PUSH2 0x1f18 00001f10: PUSH1 0x24 00001f12: SWAP4 00001f13: DUP8 00001f14: PUSH2 0x3089 00001f17: JUMP 00001f18: JUMPDEST 00001f19: MLOAD 00001f1a: AND 00001f1b: DUP7 00001f1c: MSTORE 00001f1d: PUSH1 0x6e 00001f1f: DUP4 00001f20: MSTORE 00001f21: PUSH2 0x1f30 00001f24: PUSH1 0xff 00001f26: PUSH1 0x40 00001f28: DUP9 00001f29: KECCAK256 00001f2a: SLOAD 00001f2b: AND 00001f2c: PUSH2 0x2999 00001f2f: JUMP 00001f30: JUMPDEST 00001f31: DUP3 00001f32: DUP5 00001f33: PUSH2 0x1f3c 00001f36: DUP4 00001f37: DUP9 00001f38: PUSH2 0x3089 00001f3b: JUMP 00001f3c: JUMPDEST 00001f3d: MLOAD 00001f3e: AND 00001f3f: PUSH1 0x40 00001f41: MLOAD 00001f42: SWAP4 00001f43: DUP5 00001f44: DUP1 00001f45: SWAP3 00001f46: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000 00001f67: DUP3 00001f68: MSTORE 00001f69: ADDRESS 00001f6a: PUSH1 0x04 00001f6c: DUP4 00001f6d: ADD 00001f6e: MSTORE 00001f6f: GAS 00001f70: STATICCALL 00001f71: DUP1 00001f72: ISZERO 00001f73: PUSH2 0x1ab5 00001f76: JUMPI 00001f77: DUP7 00001f78: SWAP1 00001f79: PUSH2 0x1fa4 00001f7c: JUMPI 00001f7d: JUMPDEST 00001f7e: PUSH2 0x1f9f 00001f81: SWAP3 00001f82: POP 00001f83: DUP5 00001f84: PUSH2 0x1f8d 00001f87: DUP4 00001f88: DUP9 00001f89: PUSH2 0x3089 00001f8c: JUMP 00001f8d: JUMPDEST 00001f8e: MLOAD 00001f8f: AND 00001f90: DUP8 00001f91: MSTORE 00001f92: PUSH1 0x6c 00001f94: DUP5 00001f95: MSTORE 00001f96: PUSH1 0x40 00001f98: DUP8 00001f99: KECCAK256 00001f9a: SSTORE 00001f9b: PUSH2 0x305c 00001f9e: JUMP 00001f9f: JUMPDEST 00001fa0: PUSH2 0x1f01 00001fa3: JUMP 00001fa4: JUMPDEST 00001fa5: POP 00001fa6: DUP3 00001fa7: DUP3 00001fa8: DUP2 00001fa9: RETURNDATASIZE 00001faa: DUP4 00001fab: GT 00001fac: PUSH2 0x1fcc 00001faf: JUMPI 00001fb0: JUMPDEST 00001fb1: PUSH2 0x1fba 00001fb4: DUP2 00001fb5: DUP4 00001fb6: PUSH2 0x2799 00001fb9: JUMP 00001fba: JUMPDEST 00001fbb: DUP2 00001fbc: ADD 00001fbd: SUB 00001fbe: SLT 00001fbf: PUSH2 0x05fd 00001fc2: JUMPI 00001fc3: PUSH2 0x1f9f 00001fc6: SWAP2 00001fc7: MLOAD 00001fc8: PUSH2 0x1f7d 00001fcb: JUMP 00001fcc: JUMPDEST 00001fcd: POP 00001fce: RETURNDATASIZE 00001fcf: PUSH2 0x1fb0 00001fd2: JUMP 00001fd3: JUMPDEST 00001fd4: PUSH1 0x40 00001fd6: MLOAD 00001fd7: DUP3 00001fd8: DUP2 00001fd9: MSTORE 00001fda: DUP6 00001fdb: SWAP1 00001fdc: PUSH32 0x5a980ed3bb4dd09162988674fd35c7002fa70e44dd03d2942ac38c074b1a638e 00001ffd: SWAP1 00001ffe: DUP1 00001fff: PUSH2 0x1c16 00002002: DUP2 00002003: DUP8 00002004: ADD 00002005: DUP10 00002006: PUSH2 0x30b3 00002009: JUMP 0000200a: JUMPDEST 0000200b: POP 0000200c: CALLVALUE 0000200d: PUSH2 0x0a01 00002010: JUMPI 00002011: DUP1 00002012: PUSH1 0x03 00002014: NOT 00002015: CALLDATASIZE 00002016: ADD 00002017: SLT 00002018: PUSH2 0x0a01 0000201b: JUMPI 0000201c: PUSH2 0x2068 0000201f: PUSH1 0x40 00002021: MLOAD 00002022: PUSH2 0x202a 00002025: DUP2 00002026: PUSH2 0x2744 00002029: JUMP 0000202a: JUMPDEST 0000202b: PUSH1 0x05 0000202d: DUP2 0000202e: MSTORE 0000202f: PUSH32 0x322e302e31000000000000000000000000000000000000000000000000000000 00002050: PUSH1 0x20 00002052: DUP3 00002053: ADD 00002054: MSTORE 00002055: PUSH1 0x40 00002057: MLOAD 00002058: SWAP2 00002059: DUP3 0000205a: SWAP2 0000205b: PUSH1 0x20 0000205d: DUP4 0000205e: MSTORE 0000205f: PUSH1 0x20 00002061: DUP4 00002062: ADD 00002063: SWAP1 00002064: PUSH2 0x26b7 00002067: JUMP 00002068: JUMPDEST 00002069: SUB 0000206a: SWAP1 0000206b: RETURN 0000206c: JUMPDEST 0000206d: POP 0000206e: CALLVALUE 0000206f: PUSH2 0x0a01 00002072: JUMPI 00002073: DUP1 00002074: PUSH1 0x03 00002076: NOT 00002077: CALLDATASIZE 00002078: ADD 00002079: SLT 0000207a: PUSH2 0x0a01 0000207d: JUMPI 0000207e: PUSH32 0x5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa 0000209f: PUSH1 0x20 000020a1: PUSH1 0x01 000020a3: PUSH1 0x01 000020a5: PUSH1 0xa0 000020a7: SHL 000020a8: SUB 000020a9: PUSH2 0x20b9 000020ac: DUP2 000020ad: PUSH1 0x33 000020af: SLOAD 000020b0: AND 000020b1: DUP3 000020b2: PUSH2 0x0a6d 000020b5: PUSH2 0x316e 000020b8: JUMP 000020b9: JUMPDEST 000020ba: PUSH1 0xff 000020bc: NOT 000020bd: PUSH1 0x69 000020bf: SLOAD 000020c0: AND 000020c1: PUSH1 0x69 000020c3: SSTORE 000020c4: PUSH2 0x1c7e 000020c7: PUSH2 0x316e 000020ca: JUMP 000020cb: JUMPDEST 000020cc: POP 000020cd: CALLVALUE 000020ce: PUSH2 0x0a01 000020d1: JUMPI 000020d2: PUSH1 0xc0 000020d4: PUSH1 0x03 000020d6: NOT 000020d7: CALLDATASIZE 000020d8: ADD 000020d9: SLT 000020da: PUSH2 0x0a01 000020dd: JUMPI 000020de: PUSH1 0x04 000020e0: CALLDATALOAD 000020e1: PUSH1 0x24 000020e3: CALLDATALOAD 000020e4: PUSH2 0x20eb 000020e7: PUSH2 0x261f 000020ea: JUMP 000020eb: JUMPDEST 000020ec: SWAP1 000020ed: PUSH32 0xaeef64b7687b985665b6620c7fa271b6f051a3fbe2bfc366fb9c964602eb6d26 0000210e: PUSH1 0x84 00002110: CALLDATALOAD 00002111: PUSH2 0x2118 00002114: PUSH2 0x2661 00002117: JUMP 00002118: JUMPDEST 00002119: PUSH2 0x21fd 0000211c: PUSH2 0x21ce 0000211f: DUP8 00002120: PUSH1 0x01 00002122: PUSH1 0x01 00002124: PUSH1 0xa0 00002126: SHL 00002127: SUB 00002128: SWAP5 00002129: PUSH2 0x2137 0000212c: DUP7 0000212d: PUSH1 0x67 0000212f: SLOAD 00002130: AND 00002131: CALLER 00002132: EQ 00002133: PUSH2 0x2b87 00002136: JUMP 00002137: JUMPDEST 00002138: PUSH2 0x2146 0000213b: PUSH1 0xff 0000213d: PUSH1 0x69 0000213f: SLOAD 00002140: AND 00002141: ISZERO 00002142: PUSH2 0x294e 00002145: JUMP 00002146: JUMPDEST 00002147: DUP8 00002148: DUP12 00002149: MSTORE 0000214a: PUSH1 0x6b 0000214c: PUSH1 0x20 0000214e: MSTORE 0000214f: PUSH2 0x2168 00002152: PUSH1 0xff 00002154: PUSH1 0x40 00002156: DUP14 00002157: KECCAK256 00002158: SLOAD 00002159: AND 0000215a: PUSH2 0x2162 0000215d: DUP2 0000215e: PUSH2 0x282b 00002161: JUMP 00002162: JUMPDEST 00002163: ISZERO 00002164: PUSH2 0x2d4f 00002167: JUMP 00002168: JUMPDEST 00002169: DUP11 0000216a: PUSH2 0x2182 0000216d: DUP3 0000216e: PUSH1 0x40 00002170: DUP10 00002171: DUP14 00002172: AND 00002173: SWAP4 00002174: DUP5 00002175: DUP2 00002176: MSTORE 00002177: PUSH1 0x6c 00002179: PUSH1 0x20 0000217b: MSTORE 0000217c: KECCAK256 0000217d: SLOAD 0000217e: PUSH2 0x2c21 00002181: JUMP 00002182: JUMPDEST 00002183: SWAP1 00002184: DUP13 00002185: MSTORE 00002186: PUSH1 0x6c 00002188: PUSH1 0x20 0000218a: MSTORE 0000218b: PUSH1 0x40 0000218d: DUP13 0000218e: KECCAK256 0000218f: SSTORE 00002190: DUP8 00002191: DUP12 00002192: MSTORE 00002193: PUSH1 0x6b 00002195: PUSH1 0x20 00002197: MSTORE 00002198: PUSH1 0x40 0000219a: DUP12 0000219b: KECCAK256 0000219c: PUSH1 0x01 0000219e: PUSH1 0xff 000021a0: NOT 000021a1: DUP3 000021a2: SLOAD 000021a3: AND 000021a4: OR 000021a5: SWAP1 000021a6: SSTORE 000021a7: PUSH2 0x21b5 000021aa: DUP3 000021ab: DUP8 000021ac: PUSH1 0x67 000021ae: SLOAD 000021af: AND 000021b0: DUP12 000021b1: PUSH2 0x2c44 000021b4: JUMP 000021b5: JUMPDEST 000021b6: PUSH2 0x21c9 000021b9: PUSH2 0x21c2 000021bc: DUP4 000021bd: DUP4 000021be: PUSH2 0x2c21 000021c1: JUMP 000021c2: JUMPDEST 000021c3: DUP7 000021c4: DUP12 000021c5: PUSH2 0x2c44 000021c8: JUMP 000021c9: JUMPDEST 000021ca: PUSH2 0x2c21 000021cd: JUMP 000021ce: JUMPDEST 000021cf: SWAP6 000021d0: PUSH1 0x40 000021d2: MLOAD 000021d3: SWAP4 000021d4: DUP5 000021d5: SWAP4 000021d6: AND 000021d7: SWAP8 000021d8: PUSH1 0x44 000021da: CALLDATALOAD 000021db: SWAP8 000021dc: DUP5 000021dd: SWAP2 000021de: PUSH1 0x40 000021e0: SWAP2 000021e1: SWAP5 000021e2: SWAP4 000021e3: PUSH1 0x01 000021e5: PUSH1 0x01 000021e7: PUSH1 0xa0 000021e9: SHL 000021ea: SUB 000021eb: SWAP2 000021ec: PUSH1 0x60 000021ee: DUP6 000021ef: ADD 000021f0: SWAP7 000021f1: DUP6 000021f2: MSTORE 000021f3: PUSH1 0x20 000021f5: DUP6 000021f6: ADD 000021f7: MSTORE 000021f8: AND 000021f9: SWAP2 000021fa: ADD 000021fb: MSTORE 000021fc: JUMP 000021fd: JUMPDEST 000021fe: SUB 000021ff: SWAP1 00002200: LOG4 00002201: DUP1 00002202: RETURN 00002203: JUMPDEST 00002204: POP 00002205: CALLVALUE 00002206: PUSH2 0x0a01 00002209: JUMPI 0000220a: PUSH1 0xa0 0000220c: PUSH1 0x03 0000220e: NOT 0000220f: CALLDATASIZE 00002210: ADD 00002211: SLT 00002212: PUSH2 0x0a01 00002215: JUMPI 00002216: PUSH2 0x221d 00002219: PUSH2 0x2635 0000221c: JUMP 0000221d: JUMPDEST 0000221e: PUSH2 0x2225 00002221: PUSH2 0x264b 00002224: JUMP 00002225: JUMPDEST 00002226: SWAP1 00002227: PUSH2 0x222e 0000222a: PUSH2 0x2604 0000222d: JUMP 0000222e: JUMPDEST 0000222f: SWAP2 00002230: PUSH2 0x2237 00002233: PUSH2 0x261f 00002236: JUMP 00002237: JUMPDEST 00002238: SWAP1 00002239: PUSH2 0x2240 0000223c: PUSH2 0x2677 0000223f: JUMP 00002240: JUMPDEST 00002241: SWAP4 00002242: DUP6 00002243: SLOAD 00002244: SWAP5 00002245: PUSH1 0xff 00002247: DUP7 00002248: PUSH1 0x08 0000224a: SHR 0000224b: AND 0000224c: DUP1 0000224d: PUSH1 0x00 0000224f: EQ 00002250: PUSH2 0x23d9 00002253: JUMPI 00002254: ADDRESS 00002255: EXTCODESIZE 00002256: ISZERO 00002257: JUMPDEST 00002258: ISZERO 00002259: PUSH2 0x236f 0000225c: JUMPI 0000225d: ISZERO 0000225e: SWAP6 0000225f: DUP7 00002260: PUSH2 0x2341 00002263: JUMPI 00002264: JUMPDEST 00002265: POP 00002266: PUSH2 0x2290 00002269: PUSH1 0xff 0000226b: DUP9 0000226c: SLOAD 0000226d: PUSH1 0x08 0000226f: SHR 00002270: AND 00002271: PUSH2 0x2279 00002274: DUP2 00002275: PUSH2 0x30fd 00002278: JUMP 00002279: JUMPDEST 0000227a: PUSH2 0x2282 0000227d: DUP2 0000227e: PUSH2 0x30fd 00002281: JUMP 00002282: JUMPDEST 00002283: PUSH2 0x228b 00002286: DUP2 00002287: PUSH2 0x30fd 0000228a: JUMP 0000228b: JUMPDEST 0000228c: PUSH2 0x30fd 0000228f: JUMP 00002290: JUMPDEST 00002291: PUSH2 0x22a0 00002294: PUSH2 0x229b 00002297: PUSH2 0x316e 0000229a: JUMP 0000229b: JUMPDEST 0000229c: PUSH2 0x28f9 0000229f: JUMP 000022a0: JUMPDEST 000022a1: PUSH1 0x01 000022a3: PUSH1 0x01 000022a5: PUSH1 0xa0 000022a7: SHL 000022a8: SUB 000022a9: DUP1 000022aa: SWAP6 000022ab: DUP2 000022ac: DUP1 000022ad: SWAP5 000022ae: DUP2 000022af: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 000022c4: NOT 000022c5: SWAP8 000022c6: AND 000022c7: DUP8 000022c8: PUSH1 0x65 000022ca: SLOAD 000022cb: AND 000022cc: OR 000022cd: PUSH1 0x65 000022cf: SSTORE 000022d0: AND 000022d1: DUP6 000022d2: PUSH1 0x66 000022d4: SLOAD 000022d5: AND 000022d6: OR 000022d7: PUSH1 0x66 000022d9: SSTORE 000022da: AND 000022db: DUP4 000022dc: PUSH1 0x67 000022de: SLOAD 000022df: AND 000022e0: OR 000022e1: PUSH1 0x67 000022e3: SSTORE 000022e4: AND 000022e5: SWAP1 000022e6: PUSH1 0x6f 000022e8: SLOAD 000022e9: AND 000022ea: OR 000022eb: PUSH1 0x6f 000022ed: SSTORE 000022ee: AND 000022ef: DUP1 000022f0: PUSH2 0x2325 000022f3: JUMPI 000022f4: JUMPDEST 000022f5: POP 000022f6: PUSH2 0x22fc 000022f9: JUMPI 000022fa: DUP1 000022fb: RETURN 000022fc: JUMPDEST 000022fd: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff 0000231e: DUP2 0000231f: SLOAD 00002320: AND 00002321: DUP2 00002322: SSTORE 00002323: DUP1 00002324: RETURN 00002325: JUMPDEST 00002326: DUP3 00002327: MSTORE 00002328: PUSH1 0x6e 0000232a: PUSH1 0x20 0000232c: MSTORE 0000232d: PUSH1 0x40 0000232f: DUP3 00002330: KECCAK256 00002331: PUSH1 0x01 00002333: PUSH1 0xff 00002335: NOT 00002336: DUP3 00002337: SLOAD 00002338: AND 00002339: OR 0000233a: SWAP1 0000233b: SSTORE 0000233c: CODESIZE 0000233d: PUSH2 0x22f4 00002340: JUMP 00002341: JUMPDEST 00002342: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000 00002363: AND 00002364: PUSH2 0x0101 00002367: OR 00002368: DUP8 00002369: SSTORE 0000236a: CODESIZE 0000236b: PUSH2 0x2264 0000236e: JUMP 0000236f: JUMPDEST 00002370: PUSH1 0x84 00002372: PUSH1 0x40 00002374: MLOAD 00002375: PUSH3 0x461bcd 00002379: PUSH1 0xe5 0000237b: SHL 0000237c: DUP2 0000237d: MSTORE 0000237e: PUSH1 0x20 00002380: PUSH1 0x04 00002382: DUP3 00002383: ADD 00002384: MSTORE 00002385: PUSH1 0x2e 00002387: PUSH1 0x24 00002389: DUP3 0000238a: ADD 0000238b: MSTORE 0000238c: PUSH32 0x496e697469616c697a61626c653a20636f6e747261637420697320616c726561 000023ad: PUSH1 0x44 000023af: DUP3 000023b0: ADD 000023b1: MSTORE 000023b2: PUSH32 0x647920696e697469616c697a6564000000000000000000000000000000000000 000023d3: PUSH1 0x64 000023d5: DUP3 000023d6: ADD 000023d7: MSTORE 000023d8: REVERT 000023d9: JUMPDEST 000023da: PUSH1 0xff 000023dc: DUP8 000023dd: AND 000023de: ISZERO 000023df: PUSH2 0x2257 000023e2: JUMP 000023e3: JUMPDEST 000023e4: POP 000023e5: CALLVALUE 000023e6: PUSH2 0x0a01 000023e9: JUMPI 000023ea: PUSH1 0xc0 000023ec: PUSH1 0x03 000023ee: NOT 000023ef: CALLDATASIZE 000023f0: ADD 000023f1: SLT 000023f2: PUSH2 0x0a01 000023f5: JUMPI 000023f6: PUSH1 0x24 000023f8: CALLDATALOAD 000023f9: PUSH2 0x2400 000023fc: PUSH2 0x2604 000023ff: JUMP 00002400: JUMPDEST 00002401: PUSH2 0x2408 00002404: PUSH2 0x261f 00002407: JUMP 00002408: JUMPDEST 00002409: PUSH2 0x2417 0000240c: PUSH1 0xff 0000240e: PUSH1 0x69 00002410: SLOAD 00002411: AND 00002412: ISZERO 00002413: PUSH2 0x294e 00002416: JUMP 00002417: JUMPDEST 00002418: PUSH2 0x241f 0000241b: PUSH2 0x316e 0000241e: JUMP 0000241f: JUMPDEST 00002420: SWAP2 00002421: DUP5 00002422: PUSH1 0x40 00002424: MLOAD 00002425: SWAP4 00002426: PUSH1 0x20 00002428: SWAP5 00002429: PUSH2 0x246b 0000242c: DUP2 0000242d: PUSH2 0x0322 00002430: DUP9 00002431: DUP3 00002432: ADD 00002433: SWAP5 00002434: CHAINID 00002435: SWAP1 00002436: ADDRESS 00002437: DUP13 00002438: DUP9 00002439: SWAP3 0000243a: PUSH1 0x68 0000243c: SWAP5 0000243d: SWAP3 0000243e: SWAP2 0000243f: DUP5 00002440: MSTORE 00002441: PUSH12 0xffffffffffffffffffffffff 0000244e: NOT 0000244f: DUP1 00002450: SWAP3 00002451: PUSH1 0x60 00002453: SHL 00002454: AND 00002455: PUSH1 0x20 00002457: DUP6 00002458: ADD 00002459: MSTORE 0000245a: PUSH1 0x60 0000245c: SHL 0000245d: AND 0000245e: PUSH1 0x34 00002460: DUP4 00002461: ADD 00002462: MSTORE 00002463: PUSH1 0x48 00002465: DUP3 00002466: ADD 00002467: MSTORE 00002468: ADD 00002469: SWAP1 0000246a: JUMP 0000246b: JUMPDEST 0000246c: MLOAD 0000246d: SWAP1 0000246e: KECCAK256 0000246f: DUP1 00002470: DUP3 00002471: MSTORE 00002472: PUSH1 0x6b 00002474: DUP6 00002475: MSTORE 00002476: PUSH2 0x248b 00002479: PUSH1 0x01 0000247b: PUSH1 0xff 0000247d: PUSH1 0x40 0000247f: DUP6 00002480: KECCAK256 00002481: SLOAD 00002482: AND 00002483: PUSH2 0x0351 00002486: DUP2 00002487: PUSH2 0x282b 0000248a: JUMP 0000248b: JUMPDEST 0000248c: DUP1 0000248d: DUP3 0000248e: MSTORE 0000248f: PUSH1 0x6b 00002491: DUP6 00002492: MSTORE 00002493: PUSH1 0x40 00002495: DUP3 00002496: KECCAK256 00002497: PUSH1 0x02 00002499: PUSH1 0xff 0000249b: NOT 0000249c: DUP3 0000249d: SLOAD 0000249e: AND 0000249f: OR 000024a0: SWAP1 000024a1: SSTORE 000024a2: PUSH32 0x7265766572744275726e2875696e743235362c62797465733332290000000000 000024c3: DUP6 000024c4: PUSH1 0x40 000024c6: MLOAD 000024c7: PUSH2 0x24cf 000024ca: DUP2 000024cb: PUSH2 0x2744 000024ce: JUMP 000024cf: JUMPDEST 000024d0: PUSH1 0x1b 000024d2: DUP2 000024d3: MSTORE 000024d4: ADD 000024d5: MSTORE 000024d6: PUSH1 0x40 000024d8: MLOAD 000024d9: SWAP1 000024da: PUSH32 0xf70519ae00000000000000000000000000000000000000000000000000000000 000024fb: DUP7 000024fc: DUP4 000024fd: ADD 000024fe: MSTORE 000024ff: PUSH1 0x04 00002501: CALLDATALOAD 00002502: PUSH1 0x24 00002504: DUP4 00002505: ADD 00002506: MSTORE 00002507: PUSH1 0x44 00002509: DUP3 0000250a: ADD 0000250b: MSTORE 0000250c: PUSH1 0x44 0000250e: DUP2 0000250f: MSTORE 00002510: PUSH2 0x2518 00002513: DUP2 00002514: PUSH2 0x2760 00002517: JUMP 00002518: JUMPDEST 00002519: PUSH1 0x01 0000251b: PUSH1 0x01 0000251d: PUSH1 0xa0 0000251f: SHL 00002520: SUB 00002521: SWAP4 00002522: DUP5 00002523: PUSH1 0x67 00002525: SLOAD 00002526: AND 00002527: SWAP1 00002528: DUP2 00002529: EXTCODESIZE 0000252a: ISZERO 0000252b: PUSH2 0x1ac0 0000252e: JUMPI 0000252f: DUP4 00002530: PUSH2 0x2554 00002533: SWAP6 00002534: PUSH1 0x40 00002536: MLOAD 00002537: SWAP7 00002538: DUP8 00002539: SWAP6 0000253a: DUP7 0000253b: SWAP5 0000253c: DUP6 0000253d: SWAP4 0000253e: PUSH4 0x3675e4e1 00002543: PUSH1 0xe1 00002545: SHL 00002546: DUP6 00002547: MSTORE 00002548: PUSH1 0x84 0000254a: CALLDATALOAD 0000254b: SWAP3 0000254c: PUSH1 0x04 0000254e: DUP7 0000254f: ADD 00002550: PUSH2 0x3027 00002553: JUMP 00002554: JUMPDEST 00002555: SUB 00002556: SWAP3 00002557: GAS 00002558: CALL 00002559: DUP1 0000255a: ISZERO 0000255b: PUSH2 0x25f9 0000255e: JUMPI 0000255f: PUSH2 0x25c4 00002562: JUMPI 00002563: JUMPDEST 00002564: POP 00002565: SWAP1 00002566: PUSH32 0x5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5 00002587: SWAP2 00002588: PUSH2 0x258f 0000258b: PUSH2 0x316e 0000258e: JUMP 0000258f: JUMPDEST 00002590: AND 00002591: SWAP3 00002592: PUSH1 0x40 00002594: MLOAD 00002595: SWAP4 00002596: DUP2 00002597: PUSH32 0x40590cc12db0488520ce425059f83f8caed91bdf98de5ff829dc57c63843161b 000025b8: DUP8 000025b9: DUP1 000025ba: LOG3 000025bb: DUP4 000025bc: MSTORE 000025bd: PUSH1 0xa4 000025bf: CALLDATALOAD 000025c0: SWAP3 000025c1: LOG2 000025c2: DUP1 000025c3: RETURN 000025c4: JUMPDEST 000025c5: SWAP4 000025c6: PUSH2 0x25f1 000025c9: PUSH32 0x5a297b2c9a9f94a0f4e5a796c74ad38e219d1185fccf5f79c18726a830c2b6f5 000025ea: SWAP4 000025eb: SWAP3 000025ec: SWAP6 000025ed: PUSH2 0x26f7 000025f0: JUMP 000025f1: JUMPDEST 000025f2: SWAP4 000025f3: SWAP1 000025f4: SWAP2 000025f5: PUSH2 0x2563 000025f8: JUMP 000025f9: JUMPDEST 000025fa: PUSH1 0x40 000025fc: MLOAD 000025fd: RETURNDATASIZE 000025fe: DUP8 000025ff: DUP3 00002600: RETURNDATACOPY 00002601: RETURNDATASIZE 00002602: SWAP1 00002603: REVERT 00002604: JUMPDEST 00002605: PUSH1 0x44 00002607: CALLDATALOAD 00002608: SWAP1 00002609: PUSH1 0x01 0000260b: PUSH1 0x01 0000260d: PUSH1 0xa0 0000260f: SHL 00002610: SUB 00002611: DUP3 00002612: AND 00002613: DUP3 00002614: SUB 00002615: PUSH2 0x261a 00002618: JUMPI 00002619: JUMP 0000261a: JUMPDEST 0000261b: PUSH1 0x00 0000261d: DUP1 0000261e: REVERT 0000261f: JUMPDEST 00002620: PUSH1 0x64 00002622: CALLDATALOAD 00002623: SWAP1 00002624: PUSH1 0x01 00002626: PUSH1 0x01 00002628: PUSH1 0xa0 0000262a: SHL 0000262b: SUB 0000262c: DUP3 0000262d: AND 0000262e: DUP3 0000262f: SUB 00002630: PUSH2 0x261a 00002633: JUMPI 00002634: JUMP 00002635: JUMPDEST 00002636: PUSH1 0x04 00002638: CALLDATALOAD 00002639: SWAP1 0000263a: PUSH1 0x01 0000263c: PUSH1 0x01 0000263e: PUSH1 0xa0 00002640: SHL 00002641: SUB 00002642: DUP3 00002643: AND 00002644: DUP3 00002645: SUB 00002646: PUSH2 0x261a 00002649: JUMPI 0000264a: JUMP 0000264b: JUMPDEST 0000264c: PUSH1 0x24 0000264e: CALLDATALOAD 0000264f: SWAP1 00002650: PUSH1 0x01 00002652: PUSH1 0x01 00002654: PUSH1 0xa0 00002656: SHL 00002657: SUB 00002658: DUP3 00002659: AND 0000265a: DUP3 0000265b: SUB 0000265c: PUSH2 0x261a 0000265f: JUMPI 00002660: JUMP 00002661: JUMPDEST 00002662: PUSH1 0xa4 00002664: CALLDATALOAD 00002665: SWAP1 00002666: PUSH1 0x01 00002668: PUSH1 0x01 0000266a: PUSH1 0xa0 0000266c: SHL 0000266d: SUB 0000266e: DUP3 0000266f: AND 00002670: DUP3 00002671: SUB 00002672: PUSH2 0x261a 00002675: JUMPI 00002676: JUMP 00002677: JUMPDEST 00002678: PUSH1 0x84 0000267a: CALLDATALOAD 0000267b: SWAP1 0000267c: PUSH1 0x01 0000267e: PUSH1 0x01 00002680: PUSH1 0xa0 00002682: SHL 00002683: SUB 00002684: DUP3 00002685: AND 00002686: DUP3 00002687: SUB 00002688: PUSH2 0x261a 0000268b: JUMPI 0000268c: JUMP 0000268d: JUMPDEST 0000268e: PUSH1 0xc4 00002690: CALLDATALOAD 00002691: SWAP1 00002692: PUSH1 0x01 00002694: PUSH1 0x01 00002696: PUSH1 0xa0 00002698: SHL 00002699: SUB 0000269a: DUP3 0000269b: AND 0000269c: DUP3 0000269d: SUB 0000269e: PUSH2 0x261a 000026a1: JUMPI 000026a2: JUMP 000026a3: JUMPDEST 000026a4: CALLDATALOAD 000026a5: SWAP1 000026a6: PUSH1 0x01 000026a8: PUSH1 0x01 000026aa: PUSH1 0xa0 000026ac: SHL 000026ad: SUB 000026ae: DUP3 000026af: AND 000026b0: DUP3 000026b1: SUB 000026b2: PUSH2 0x261a 000026b5: JUMPI 000026b6: JUMP 000026b7: JUMPDEST 000026b8: SWAP2 000026b9: SWAP1 000026ba: DUP3 000026bb: MLOAD 000026bc: SWAP3 000026bd: DUP4 000026be: DUP3 000026bf: MSTORE 000026c0: PUSH1 0x00 000026c2: JUMPDEST 000026c3: DUP5 000026c4: DUP2 000026c5: LT 000026c6: PUSH2 0x26e3 000026c9: JUMPI 000026ca: POP 000026cb: POP 000026cc: PUSH1 0x1f 000026ce: NOT 000026cf: PUSH1 0x1f 000026d1: DUP5 000026d2: PUSH1 0x00 000026d4: PUSH1 0x20 000026d6: DUP1 000026d7: SWAP7 000026d8: SWAP8 000026d9: DUP7 000026da: ADD 000026db: ADD 000026dc: MSTORE 000026dd: ADD 000026de: AND 000026df: ADD 000026e0: ADD 000026e1: SWAP1 000026e2: JUMP 000026e3: JUMPDEST 000026e4: PUSH1 0x20 000026e6: DUP2 000026e7: DUP4 000026e8: ADD 000026e9: DUP2 000026ea: ADD 000026eb: MLOAD 000026ec: DUP5 000026ed: DUP4 000026ee: ADD 000026ef: DUP3 000026f0: ADD 000026f1: MSTORE 000026f2: ADD 000026f3: PUSH2 0x26c2 000026f6: JUMP 000026f7: JUMPDEST 000026f8: PUSH8 0xffffffffffffffff 00002701: DUP2 00002702: GT 00002703: PUSH2 0x0860 00002706: JUMPI 00002707: PUSH1 0x40 00002709: MSTORE 0000270a: JUMP 0000270b: JUMPDEST 0000270c: PUSH1 0xa0 0000270e: DUP2 0000270f: ADD 00002710: SWAP1 00002711: DUP2 00002712: LT 00002713: PUSH8 0xffffffffffffffff 0000271c: DUP3 0000271d: GT 0000271e: OR 0000271f: PUSH2 0x0860 00002722: JUMPI 00002723: PUSH1 0x40 00002725: MSTORE 00002726: JUMP 00002727: JUMPDEST 00002728: PUSH2 0x01a0 0000272b: DUP2 0000272c: ADD 0000272d: SWAP1 0000272e: DUP2 0000272f: LT 00002730: PUSH8 0xffffffffffffffff 00002739: DUP3 0000273a: GT 0000273b: OR 0000273c: PUSH2 0x0860 0000273f: JUMPI 00002740: PUSH1 0x40 00002742: MSTORE 00002743: JUMP 00002744: JUMPDEST 00002745: PUSH1 0x40 00002747: DUP2 00002748: ADD 00002749: SWAP1 0000274a: DUP2 0000274b: LT 0000274c: PUSH8 0xffffffffffffffff 00002755: DUP3 00002756: GT 00002757: OR 00002758: PUSH2 0x0860 0000275b: JUMPI 0000275c: PUSH1 0x40 0000275e: MSTORE 0000275f: JUMP 00002760: JUMPDEST 00002761: PUSH1 0x80 00002763: DUP2 00002764: ADD 00002765: SWAP1 00002766: DUP2 00002767: LT 00002768: PUSH8 0xffffffffffffffff 00002771: DUP3 00002772: GT 00002773: OR 00002774: PUSH2 0x0860 00002777: JUMPI 00002778: PUSH1 0x40 0000277a: MSTORE 0000277b: JUMP 0000277c: JUMPDEST 0000277d: PUSH2 0x0120 00002780: DUP2 00002781: ADD 00002782: SWAP1 00002783: DUP2 00002784: LT 00002785: PUSH8 0xffffffffffffffff 0000278e: DUP3 0000278f: GT 00002790: OR 00002791: PUSH2 0x0860 00002794: JUMPI 00002795: PUSH1 0x40 00002797: MSTORE 00002798: JUMP 00002799: JUMPDEST 0000279a: SWAP1 0000279b: PUSH1 0x1f 0000279d: PUSH1 0x1f 0000279f: NOT 000027a0: SWAP2 000027a1: ADD 000027a2: AND 000027a3: DUP2 000027a4: ADD 000027a5: SWAP1 000027a6: DUP2 000027a7: LT 000027a8: PUSH8 0xffffffffffffffff 000027b1: DUP3 000027b2: GT 000027b3: OR 000027b4: PUSH2 0x0860 000027b7: JUMPI 000027b8: PUSH1 0x40 000027ba: MSTORE 000027bb: JUMP 000027bc: JUMPDEST 000027bd: SWAP1 000027be: DUP1 000027bf: PUSH1 0x1f 000027c1: DUP4 000027c2: ADD 000027c3: SLT 000027c4: ISZERO 000027c5: PUSH2 0x261a 000027c8: JUMPI 000027c9: DUP2 000027ca: CALLDATALOAD 000027cb: SWAP1 000027cc: PUSH8 0xffffffffffffffff 000027d5: DUP3 000027d6: GT 000027d7: PUSH2 0x0860 000027da: JUMPI 000027db: DUP2 000027dc: PUSH1 0x05 000027de: SHL 000027df: PUSH1 0x40 000027e1: MLOAD 000027e2: SWAP4 000027e3: PUSH1 0x20 000027e5: SWAP4 000027e6: PUSH2 0x27f1 000027e9: DUP6 000027ea: DUP5 000027eb: ADD 000027ec: DUP8 000027ed: PUSH2 0x2799 000027f0: JUMP 000027f1: JUMPDEST 000027f2: DUP6 000027f3: MSTORE 000027f4: DUP4 000027f5: DUP1 000027f6: DUP7 000027f7: ADD 000027f8: SWAP3 000027f9: DUP3 000027fa: ADD 000027fb: ADD 000027fc: SWAP3 000027fd: DUP4 000027fe: GT 000027ff: PUSH2 0x261a 00002802: JUMPI 00002803: DUP4 00002804: ADD 00002805: SWAP1 00002806: JUMPDEST 00002807: DUP3 00002808: DUP3 00002809: LT 0000280a: PUSH2 0x2814 0000280d: JUMPI 0000280e: POP 0000280f: POP 00002810: POP 00002811: POP 00002812: SWAP1 00002813: JUMP 00002814: JUMPDEST 00002815: DUP4 00002816: DUP1 00002817: SWAP2 00002818: PUSH2 0x2820 0000281b: DUP5 0000281c: PUSH2 0x26a3 0000281f: JUMP 00002820: JUMPDEST 00002821: DUP2 00002822: MSTORE 00002823: ADD 00002824: SWAP2 00002825: ADD 00002826: SWAP1 00002827: PUSH2 0x2806 0000282a: JUMP 0000282b: JUMPDEST 0000282c: PUSH1 0x03 0000282e: GT 0000282f: ISZERO 00002830: PUSH2 0x2835 00002833: JUMPI 00002834: JUMP 00002835: JUMPDEST 00002836: PUSH4 0x4e487b71 0000283b: PUSH1 0xe0 0000283d: SHL 0000283e: PUSH1 0x00 00002840: MSTORE 00002841: PUSH1 0x21 00002843: PUSH1 0x04 00002845: MSTORE 00002846: PUSH1 0x24 00002848: PUSH1 0x00 0000284a: REVERT 0000284b: JUMPDEST 0000284c: PUSH8 0xffffffffffffffff 00002855: DUP2 00002856: GT 00002857: PUSH2 0x0860 0000285a: JUMPI 0000285b: PUSH1 0x1f 0000285d: ADD 0000285e: PUSH1 0x1f 00002860: NOT 00002861: AND 00002862: PUSH1 0x20 00002864: ADD 00002865: SWAP1 00002866: JUMP 00002867: JUMPDEST 00002868: DUP2 00002869: PUSH1 0x1f 0000286b: DUP3 0000286c: ADD 0000286d: SLT 0000286e: ISZERO 0000286f: PUSH2 0x261a 00002872: JUMPI 00002873: DUP1 00002874: CALLDATALOAD 00002875: SWAP1 00002876: PUSH2 0x287e 00002879: DUP3 0000287a: PUSH2 0x284b 0000287d: JUMP 0000287e: JUMPDEST 0000287f: SWAP3 00002880: PUSH2 0x288c 00002883: PUSH1 0x40 00002885: MLOAD 00002886: SWAP5 00002887: DUP6 00002888: PUSH2 0x2799 0000288b: JUMP 0000288c: JUMPDEST 0000288d: DUP3 0000288e: DUP5 0000288f: MSTORE 00002890: PUSH1 0x20 00002892: DUP4 00002893: DUP4 00002894: ADD 00002895: ADD 00002896: GT 00002897: PUSH2 0x261a 0000289a: JUMPI 0000289b: DUP2 0000289c: PUSH1 0x00 0000289e: SWAP3 0000289f: PUSH1 0x20 000028a1: DUP1 000028a2: SWAP4 000028a3: ADD 000028a4: DUP4 000028a5: DUP7 000028a6: ADD 000028a7: CALLDATACOPY 000028a8: DUP4 000028a9: ADD 000028aa: ADD 000028ab: MSTORE 000028ac: SWAP1 000028ad: JUMP 000028ae: JUMPDEST 000028af: ISZERO 000028b0: PUSH2 0x28b5 000028b3: JUMPI 000028b4: JUMP 000028b5: JUMPDEST 000028b6: PUSH1 0x64 000028b8: PUSH1 0x40 000028ba: MLOAD 000028bb: PUSH3 0x461bcd 000028bf: PUSH1 0xe5 000028c1: SHL 000028c2: DUP2 000028c3: MSTORE 000028c4: PUSH1 0x20 000028c6: PUSH1 0x04 000028c8: DUP3 000028c9: ADD 000028ca: MSTORE 000028cb: PUSH1 0x20 000028cd: PUSH1 0x24 000028cf: DUP3 000028d0: ADD 000028d1: MSTORE 000028d2: PUSH32 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572 000028f3: PUSH1 0x44 000028f5: DUP3 000028f6: ADD 000028f7: MSTORE 000028f8: REVERT 000028f9: JUMPDEST 000028fa: PUSH1 0x33 000028fc: SLOAD 000028fd: SWAP1 000028fe: PUSH1 0x01 00002900: PUSH1 0x01 00002902: PUSH1 0xa0 00002904: SHL 00002905: SUB 00002906: DUP1 00002907: SWAP2 00002908: AND 00002909: SWAP2 0000290a: DUP3 0000290b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff 00002920: NOT 00002921: DUP3 00002922: AND 00002923: OR 00002924: PUSH1 0x33 00002926: SSTORE 00002927: AND 00002928: PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 00002949: PUSH1 0x00 0000294b: DUP1 0000294c: LOG3 0000294d: JUMP 0000294e: JUMPDEST 0000294f: ISZERO 00002950: PUSH2 0x2955 00002953: JUMPI 00002954: JUMP 00002955: JUMPDEST 00002956: PUSH1 0x64 00002958: PUSH1 0x40 0000295a: MLOAD 0000295b: PUSH3 0x461bcd 0000295f: PUSH1 0xe5 00002961: SHL 00002962: DUP2 00002963: MSTORE 00002964: PUSH1 0x20 00002966: PUSH1 0x04 00002968: DUP3 00002969: ADD 0000296a: MSTORE 0000296b: PUSH1 0x0c 0000296d: PUSH1 0x24 0000296f: DUP3 00002970: ADD 00002971: MSTORE 00002972: PUSH32 0x53796d623a207061757365640000000000000000000000000000000000000000 00002993: PUSH1 0x44 00002995: DUP3 00002996: ADD 00002997: MSTORE 00002998: REVERT 00002999: JUMPDEST 0000299a: ISZERO 0000299b: PUSH2 0x29a0 0000299e: JUMPI 0000299f: JUMP 000029a0: JUMPDEST 000029a1: PUSH1 0x64 000029a3: PUSH1 0x40 000029a5: MLOAD 000029a6: PUSH3 0x461bcd 000029aa: PUSH1 0xe5 000029ac: SHL 000029ad: DUP2 000029ae: MSTORE 000029af: PUSH1 0x20 000029b1: PUSH1 0x04 000029b3: DUP3 000029b4: ADD 000029b5: MSTORE 000029b6: PUSH1 0x18 000029b8: PUSH1 0x24 000029ba: DUP3 000029bb: ADD 000029bc: MSTORE 000029bd: PUSH32 0x53796d623a20756e617574686f72697a656420746f6b656e0000000000000000 000029de: PUSH1 0x44 000029e0: DUP3 000029e1: ADD 000029e2: MSTORE 000029e3: REVERT 000029e4: JUMPDEST 000029e5: ISZERO 000029e6: PUSH2 0x29eb 000029e9: JUMPI 000029ea: JUMP 000029eb: JUMPDEST 000029ec: PUSH1 0x64 000029ee: PUSH1 0x40 000029f0: MLOAD 000029f1: PUSH3 0x461bcd 000029f5: PUSH1 0xe5 000029f7: SHL 000029f8: DUP2 000029f9: MSTORE 000029fa: PUSH1 0x20 000029fc: PUSH1 0x04 000029fe: DUP3 000029ff: ADD 00002a00: MSTORE 00002a01: PUSH1 0x1c 00002a03: PUSH1 0x24 00002a05: DUP3 00002a06: ADD 00002a07: MSTORE 00002a08: PUSH32 0x53796d623a20616d6f756e7420756e646572207468726573686f6c6400000000 00002a29: PUSH1 0x44 00002a2b: DUP3 00002a2c: ADD 00002a2d: MSTORE 00002a2e: REVERT 00002a2f: JUMPDEST 00002a30: RETURNDATASIZE 00002a31: ISZERO 00002a32: PUSH2 0x2a5a 00002a35: JUMPI 00002a36: RETURNDATASIZE 00002a37: SWAP1 00002a38: PUSH2 0x2a40 00002a3b: DUP3 00002a3c: PUSH2 0x284b 00002a3f: JUMP 00002a40: JUMPDEST 00002a41: SWAP2 00002a42: PUSH2 0x2a4e 00002a45: PUSH1 0x40 00002a47: MLOAD 00002a48: SWAP4 00002a49: DUP5 00002a4a: PUSH2 0x2799 00002a4d: JUMP 00002a4e: JUMPDEST 00002a4f: DUP3 00002a50: MSTORE 00002a51: RETURNDATASIZE 00002a52: PUSH1 0x00 00002a54: PUSH1 0x20 00002a56: DUP5 00002a57: ADD 00002a58: RETURNDATACOPY 00002a59: JUMP 00002a5a: JUMPDEST 00002a5b: PUSH1 0x60 00002a5d: SWAP1 00002a5e: JUMP 00002a5f: JUMPDEST 00002a60: SWAP1 00002a61: DUP2 00002a62: PUSH1 0x20 00002a64: SWAP2 00002a65: SUB 00002a66: SLT 00002a67: PUSH2 0x261a 00002a6a: JUMPI 00002a6b: MLOAD 00002a6c: DUP1 00002a6d: ISZERO 00002a6e: ISZERO 00002a6f: DUP2 00002a70: SUB 00002a71: PUSH2 0x261a 00002a74: JUMPI 00002a75: SWAP1 00002a76: JUMP 00002a77: JUMPDEST 00002a78: SWAP1 00002a79: SWAP2 00002a7a: PUSH1 0x00 00002a7c: DUP1 00002a7d: SWAP5 00002a7e: SWAP4 00002a7f: DUP2 00002a80: SWAP5 00002a81: PUSH1 0x40 00002a83: MLOAD 00002a84: SWAP2 00002a85: PUSH1 0x20 00002a87: DUP4 00002a88: ADD 00002a89: SWAP5 00002a8a: PUSH32 0x23b872dd00000000000000000000000000000000000000000000000000000000 00002aab: DUP7 00002aac: MSTORE 00002aad: PUSH1 0x01 00002aaf: PUSH1 0x01 00002ab1: PUSH1 0xa0 00002ab3: SHL 00002ab4: SUB 00002ab5: DUP1 00002ab6: SWAP3 00002ab7: AND 00002ab8: PUSH1 0x24 00002aba: DUP6 00002abb: ADD 00002abc: MSTORE 00002abd: AND 00002abe: PUSH1 0x44 00002ac0: DUP4 00002ac1: ADD 00002ac2: MSTORE 00002ac3: PUSH1 0x64 00002ac5: DUP3 00002ac6: ADD 00002ac7: MSTORE 00002ac8: PUSH1 0x64 00002aca: DUP2 00002acb: MSTORE 00002acc: PUSH2 0x2ad4 00002acf: DUP2 00002ad0: PUSH2 0x270b 00002ad3: JUMP 00002ad4: JUMPDEST 00002ad5: MLOAD 00002ad6: SWAP3 00002ad7: GAS 00002ad8: CALL 00002ad9: PUSH2 0x2ae0 00002adc: PUSH2 0x2a2f 00002adf: JUMP 00002ae0: JUMPDEST 00002ae1: DUP2 00002ae2: PUSH2 0x2b58 00002ae5: JUMPI 00002ae6: JUMPDEST 00002ae7: POP 00002ae8: ISZERO 00002ae9: PUSH2 0x2aee 00002aec: JUMPI 00002aed: JUMP 00002aee: JUMPDEST 00002aef: PUSH1 0x84 00002af1: PUSH1 0x40 00002af3: MLOAD 00002af4: PUSH3 0x461bcd 00002af8: PUSH1 0xe5 00002afa: SHL 00002afb: DUP2 00002afc: MSTORE 00002afd: PUSH1 0x20 00002aff: PUSH1 0x04 00002b01: DUP3 00002b02: ADD 00002b03: MSTORE 00002b04: PUSH1 0x31 00002b06: PUSH1 0x24 00002b08: DUP3 00002b09: ADD 00002b0a: MSTORE 00002b0b: PUSH32 0x5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472 00002b2c: PUSH1 0x44 00002b2e: DUP3 00002b2f: ADD 00002b30: MSTORE 00002b31: PUSH32 0x616e7366657246726f6d206661696c6564000000000000000000000000000000 00002b52: PUSH1 0x64 00002b54: DUP3 00002b55: ADD 00002b56: MSTORE 00002b57: REVERT 00002b58: JUMPDEST 00002b59: DUP1 00002b5a: MLOAD 00002b5b: DUP1 00002b5c: ISZERO 00002b5d: SWAP3 00002b5e: POP 00002b5f: DUP3 00002b60: ISZERO 00002b61: PUSH2 0x2b6d 00002b64: JUMPI 00002b65: JUMPDEST 00002b66: POP 00002b67: POP 00002b68: CODESIZE 00002b69: PUSH2 0x2ae6 00002b6c: JUMP 00002b6d: JUMPDEST 00002b6e: PUSH2 0x2b80 00002b71: SWAP3 00002b72: POP 00002b73: PUSH1 0x20 00002b75: DUP1 00002b76: SWAP2 00002b77: DUP4 00002b78: ADD 00002b79: ADD 00002b7a: SWAP2 00002b7b: ADD 00002b7c: PUSH2 0x2a5f 00002b7f: JUMP 00002b80: JUMPDEST 00002b81: CODESIZE 00002b82: DUP1 00002b83: PUSH2 0x2b65 00002b86: JUMP 00002b87: JUMPDEST 00002b88: ISZERO 00002b89: PUSH2 0x2b8e 00002b8c: JUMPI 00002b8d: JUMP 00002b8e: JUMPDEST 00002b8f: PUSH1 0x64 00002b91: PUSH1 0x40 00002b93: MLOAD 00002b94: PUSH3 0x461bcd 00002b98: PUSH1 0xe5 00002b9a: SHL 00002b9b: DUP2 00002b9c: MSTORE 00002b9d: PUSH1 0x20 00002b9f: PUSH1 0x04 00002ba1: DUP3 00002ba2: ADD 00002ba3: MSTORE 00002ba4: PUSH1 0x1e 00002ba6: PUSH1 0x24 00002ba8: DUP3 00002ba9: ADD 00002baa: MSTORE 00002bab: PUSH32 0x53796d623a2063616c6c6572206973206e6f7420746865206272696467650000 00002bcc: PUSH1 0x44 00002bce: DUP3 00002bcf: ADD 00002bd0: MSTORE 00002bd1: REVERT 00002bd2: JUMPDEST 00002bd3: SWAP1 00002bd4: PUSH2 0x2bdc 00002bd7: DUP2 00002bd8: PUSH2 0x282b 00002bdb: JUMP 00002bdc: JUMPDEST 00002bdd: PUSH32 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff 00002bfe: PUSH21 0xff0000000000000000000000000000000000000000 00002c14: DUP4 00002c15: SLOAD 00002c16: SWAP3 00002c17: PUSH1 0xa0 00002c19: SHL 00002c1a: AND 00002c1b: SWAP2 00002c1c: AND 00002c1d: OR 00002c1e: SWAP1 00002c1f: SSTORE 00002c20: JUMP 00002c21: JUMPDEST 00002c22: SWAP2 00002c23: SWAP1 00002c24: DUP3 00002c25: SUB 00002c26: SWAP2 00002c27: DUP3 00002c28: GT 00002c29: PUSH2 0x2c2e 00002c2c: JUMPI 00002c2d: JUMP 00002c2e: JUMPDEST 00002c2f: PUSH4 0x4e487b71 00002c34: PUSH1 0xe0 00002c36: SHL 00002c37: PUSH1 0x00 00002c39: MSTORE 00002c3a: PUSH1 0x11 00002c3c: PUSH1 0x04 00002c3e: MSTORE 00002c3f: PUSH1 0x24 00002c41: PUSH1 0x00 00002c43: REVERT 00002c44: JUMPDEST 00002c45: PUSH1 0x40 00002c47: MLOAD 00002c48: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000 00002c69: PUSH1 0x20 00002c6b: DUP3 00002c6c: ADD 00002c6d: SWAP1 00002c6e: DUP2 00002c6f: MSTORE 00002c70: PUSH1 0x01 00002c72: PUSH1 0x01 00002c74: PUSH1 0xa0 00002c76: SHL 00002c77: SUB 00002c78: SWAP1 00002c79: SWAP4 00002c7a: AND 00002c7b: PUSH1 0x24 00002c7d: DUP3 00002c7e: ADD 00002c7f: MSTORE 00002c80: PUSH1 0x44 00002c82: DUP2 00002c83: ADD 00002c84: SWAP4 00002c85: SWAP1 00002c86: SWAP4 00002c87: MSTORE 00002c88: PUSH1 0x00 00002c8a: SWAP3 00002c8b: DUP4 00002c8c: SWAP3 00002c8d: SWAP1 00002c8e: DUP4 00002c8f: SWAP1 00002c90: PUSH2 0x2c9c 00002c93: DUP2 00002c94: PUSH1 0x64 00002c96: DUP2 00002c97: ADD 00002c98: PUSH2 0x0322 00002c9b: JUMP 00002c9c: JUMPDEST 00002c9d: MLOAD 00002c9e: SWAP3 00002c9f: GAS 00002ca0: CALL 00002ca1: PUSH2 0x2ca8 00002ca4: PUSH2 0x2a2f 00002ca7: JUMP 00002ca8: JUMPDEST 00002ca9: DUP2 00002caa: PUSH2 0x2d20 00002cad: JUMPI 00002cae: JUMPDEST 00002caf: POP 00002cb0: ISZERO 00002cb1: PUSH2 0x2cb6 00002cb4: JUMPI 00002cb5: JUMP 00002cb6: JUMPDEST 00002cb7: PUSH1 0x84 00002cb9: PUSH1 0x40 00002cbb: MLOAD 00002cbc: PUSH3 0x461bcd 00002cc0: PUSH1 0xe5 00002cc2: SHL 00002cc3: DUP2 00002cc4: MSTORE 00002cc5: PUSH1 0x20 00002cc7: PUSH1 0x04 00002cc9: DUP3 00002cca: ADD 00002ccb: MSTORE 00002ccc: PUSH1 0x2d 00002cce: PUSH1 0x24 00002cd0: DUP3 00002cd1: ADD 00002cd2: MSTORE 00002cd3: PUSH32 0x5472616e7366657248656c7065723a3a736166655472616e736665723a207472 00002cf4: PUSH1 0x44 00002cf6: DUP3 00002cf7: ADD 00002cf8: MSTORE 00002cf9: PUSH32 0x616e73666572206661696c656400000000000000000000000000000000000000 00002d1a: PUSH1 0x64 00002d1c: DUP3 00002d1d: ADD 00002d1e: MSTORE 00002d1f: REVERT 00002d20: JUMPDEST 00002d21: DUP1 00002d22: MLOAD 00002d23: DUP1 00002d24: ISZERO 00002d25: SWAP3 00002d26: POP 00002d27: DUP3 00002d28: ISZERO 00002d29: PUSH2 0x2d35 00002d2c: JUMPI 00002d2d: JUMPDEST 00002d2e: POP 00002d2f: POP 00002d30: CODESIZE 00002d31: PUSH2 0x2cae 00002d34: JUMP 00002d35: JUMPDEST 00002d36: PUSH2 0x2d48 00002d39: SWAP3 00002d3a: POP 00002d3b: PUSH1 0x20 00002d3d: DUP1 00002d3e: SWAP2 00002d3f: DUP4 00002d40: ADD 00002d41: ADD 00002d42: SWAP2 00002d43: ADD 00002d44: PUSH2 0x2a5f 00002d47: JUMP 00002d48: JUMPDEST 00002d49: CODESIZE 00002d4a: DUP1 00002d4b: PUSH2 0x2d2d 00002d4e: JUMP 00002d4f: JUMPDEST 00002d50: ISZERO 00002d51: PUSH2 0x2d56 00002d54: JUMPI 00002d55: JUMP 00002d56: JUMPDEST 00002d57: PUSH1 0x84 00002d59: PUSH1 0x40 00002d5b: MLOAD 00002d5c: PUSH3 0x461bcd 00002d60: PUSH1 0xe5 00002d62: SHL 00002d63: DUP2 00002d64: MSTORE 00002d65: PUSH1 0x20 00002d67: PUSH1 0x04 00002d69: DUP3 00002d6a: ADD 00002d6b: MSTORE 00002d6c: PUSH1 0x26 00002d6e: PUSH1 0x24 00002d70: DUP3 00002d71: ADD 00002d72: MSTORE 00002d73: PUSH32 0x53796d623a2073796e74686574696320746f6b656e7320656d657267656e6379 00002d94: PUSH1 0x44 00002d96: DUP3 00002d97: ADD 00002d98: MSTORE 00002d99: PUSH32 0x556e6275726e0000000000000000000000000000000000000000000000000000 00002dba: PUSH1 0x64 00002dbc: DUP3 00002dbd: ADD 00002dbe: MSTORE 00002dbf: REVERT 00002dc0: JUMPDEST 00002dc1: SWAP5 00002dc2: SWAP3 00002dc3: SWAP4 00002dc4: SWAP2 00002dc5: SWAP6 00002dc6: SWAP7 00002dc7: SWAP1 00002dc8: SWAP7 00002dc9: PUSH1 0x00 00002dcb: SWAP2 00002dcc: DUP8 00002dcd: DUP4 00002dce: MSTORE 00002dcf: PUSH1 0x6b 00002dd1: PUSH1 0x20 00002dd3: MSTORE 00002dd4: PUSH2 0x2de7 00002dd7: PUSH1 0xff 00002dd9: PUSH1 0x40 00002ddb: DUP6 00002ddc: KECCAK256 00002ddd: SLOAD 00002dde: AND 00002ddf: PUSH2 0x2162 00002de2: DUP2 00002de3: PUSH2 0x282b 00002de6: JUMP 00002de7: JUMPDEST 00002de8: PUSH1 0x01 00002dea: PUSH1 0x01 00002dec: PUSH1 0xa0 00002dee: SHL 00002def: SUB 00002df0: SWAP4 00002df1: PUSH2 0x2e41 00002df4: DUP9 00002df5: DUP7 00002df6: DUP9 00002df7: AND 00002df8: SWAP3 00002df9: DUP4 00002dfa: DUP8 00002dfb: MSTORE 00002dfc: PUSH1 0x6c 00002dfe: PUSH1 0x20 00002e00: MSTORE 00002e01: PUSH2 0x2e0e 00002e04: DUP2 00002e05: PUSH1 0x40 00002e07: DUP10 00002e08: KECCAK256 00002e09: SLOAD 00002e0a: PUSH2 0x2c21 00002e0d: JUMP 00002e0e: JUMPDEST 00002e0f: DUP5 00002e10: DUP9 00002e11: MSTORE 00002e12: PUSH1 0x6c 00002e14: PUSH1 0x20 00002e16: MSTORE 00002e17: PUSH1 0x40 00002e19: DUP9 00002e1a: KECCAK256 00002e1b: SSTORE 00002e1c: DUP12 00002e1d: DUP8 00002e1e: MSTORE 00002e1f: PUSH1 0x6b 00002e21: PUSH1 0x20 00002e23: MSTORE 00002e24: PUSH1 0x40 00002e26: DUP8 00002e27: KECCAK256 00002e28: PUSH1 0x01 00002e2a: PUSH1 0xff 00002e2c: NOT 00002e2d: DUP3 00002e2e: SLOAD 00002e2f: AND 00002e30: OR 00002e31: SWAP1 00002e32: SSTORE 00002e33: PUSH2 0x21c9 00002e36: DUP3 00002e37: DUP10 00002e38: PUSH1 0x67 00002e3a: SLOAD 00002e3b: AND 00002e3c: DUP12 00002e3d: PUSH2 0x2c44 00002e40: JUMP 00002e41: JUMPDEST 00002e42: SWAP7 00002e43: DUP3 00002e44: MLOAD 00002e45: ISZERO 00002e46: PUSH2 0x2f50 00002e49: JUMPI 00002e4a: PUSH2 0x2e58 00002e4d: DUP9 00002e4e: DUP8 00002e4f: PUSH1 0x6f 00002e51: SLOAD 00002e52: AND 00002e53: DUP10 00002e54: PUSH2 0x2c44 00002e57: JUMP 00002e58: JUMPDEST 00002e59: DUP6 00002e5a: PUSH1 0x6f 00002e5c: SLOAD 00002e5d: AND 00002e5e: SWAP3 00002e5f: DUP4 00002e60: EXTCODESIZE 00002e61: ISZERO 00002e62: PUSH2 0x05fd 00002e65: JUMPI 00002e66: DUP6 00002e67: SWAP5 00002e68: SWAP4 00002e69: SWAP3 00002e6a: DUP8 00002e6b: DUP11 00002e6c: SWAP4 00002e6d: PUSH2 0x2ebf 00002e70: DUP9 00002e71: SWAP5 00002e72: PUSH1 0x40 00002e74: MLOAD 00002e75: SWAP12 00002e76: DUP13 00002e77: SWAP10 00002e78: DUP11 00002e79: SWAP9 00002e7a: DUP10 00002e7b: SWAP8 00002e7c: PUSH32 0xf5b697a500000000000000000000000000000000000000000000000000000000 00002e9d: DUP10 00002e9e: MSTORE 00002e9f: PUSH1 0x04 00002ea1: DUP10 00002ea2: ADD 00002ea3: MSTORE 00002ea4: PUSH1 0x24 00002ea6: DUP9 00002ea7: ADD 00002ea8: MSTORE 00002ea9: AND 00002eaa: PUSH1 0x44 00002eac: DUP7 00002ead: ADD 00002eae: MSTORE 00002eaf: PUSH1 0xc0 00002eb1: PUSH1 0x64 00002eb3: DUP7 00002eb4: ADD 00002eb5: MSTORE 00002eb6: PUSH1 0xc4 00002eb8: DUP6 00002eb9: ADD 00002eba: SWAP1 00002ebb: PUSH2 0x26b7 00002ebe: JUMP 00002ebf: JUMPDEST 00002ec0: SWAP16 00002ec1: PUSH1 0x84 00002ec3: DUP5 00002ec4: ADD 00002ec5: MSTORE 00002ec6: AND 00002ec7: SWAP14 00002ec8: DUP15 00002ec9: PUSH1 0xa4 00002ecb: DUP4 00002ecc: ADD 00002ecd: MSTORE 00002ece: SUB 00002ecf: SWAP3 00002ed0: GAS 00002ed1: CALL 00002ed2: SWAP1 00002ed3: DUP2 00002ed4: ISZERO 00002ed5: PUSH2 0x2f44 00002ed8: JUMPI 00002ed9: POP 00002eda: SWAP2 00002edb: PUSH2 0x2f30 00002ede: SWAP2 00002edf: PUSH32 0xaeef64b7687b985665b6620c7fa271b6f051a3fbe2bfc366fb9c964602eb6d26 00002f00: SWAP6 00002f01: SWAP5 00002f02: SWAP4 00002f03: PUSH2 0x2f35 00002f06: JUMPI 00002f07: JUMPDEST 00002f08: POP 00002f09: PUSH1 0x40 00002f0b: MLOAD 00002f0c: SWAP4 00002f0d: DUP5 00002f0e: SWAP4 00002f0f: DUP5 00002f10: SWAP2 00002f11: PUSH1 0x40 00002f13: SWAP2 00002f14: SWAP5 00002f15: SWAP4 00002f16: PUSH1 0x01 00002f18: PUSH1 0x01 00002f1a: PUSH1 0xa0 00002f1c: SHL 00002f1d: SUB 00002f1e: SWAP2 00002f1f: PUSH1 0x60 00002f21: DUP6 00002f22: ADD 00002f23: SWAP7 00002f24: DUP6 00002f25: MSTORE 00002f26: PUSH1 0x20 00002f28: DUP6 00002f29: ADD 00002f2a: MSTORE 00002f2b: AND 00002f2c: SWAP2 00002f2d: ADD 00002f2e: MSTORE 00002f2f: JUMP 00002f30: JUMPDEST 00002f31: SUB 00002f32: SWAP1 00002f33: LOG4 00002f34: JUMP 00002f35: JUMPDEST 00002f36: PUSH2 0x2f3e 00002f39: SWAP1 00002f3a: PUSH2 0x26f7 00002f3d: JUMP 00002f3e: JUMPDEST 00002f3f: CODESIZE 00002f40: PUSH2 0x2f07 00002f43: JUMP 00002f44: JUMPDEST 00002f45: PUSH1 0x40 00002f47: MLOAD 00002f48: SWAP1 00002f49: RETURNDATASIZE 00002f4a: SWAP1 00002f4b: DUP3 00002f4c: RETURNDATACOPY 00002f4d: RETURNDATASIZE 00002f4e: SWAP1 00002f4f: REVERT 00002f50: JUMPDEST 00002f51: DUP8 00002f52: SWAP12 00002f53: POP 00002f54: DUP7 00002f55: DUP2 00002f56: SWAP8 00002f57: SWAP6 00002f58: POP 00002f59: PUSH32 0xaeef64b7687b985665b6620c7fa271b6f051a3fbe2bfc366fb9c964602eb6d26 00002f7a: SWAP10 00002f7b: SWAP5 00002f7c: POP 00002f7d: PUSH2 0x2f8d 00002f80: SWAP4 00002f81: POP 00002f82: PUSH2 0x2f30 00002f85: SWAP7 00002f86: SWAP9 00002f87: SWAP3 00002f88: POP 00002f89: PUSH2 0x2c44 00002f8c: JUMP 00002f8d: JUMPDEST 00002f8e: PUSH1 0x40 00002f90: MLOAD 00002f91: SWAP5 00002f92: DUP6 00002f93: SWAP5 00002f94: AND 00002f95: SWAP9 00002f96: DUP5 00002f97: SWAP2 00002f98: PUSH1 0x40 00002f9a: SWAP2 00002f9b: SWAP5 00002f9c: SWAP4 00002f9d: PUSH1 0x01 00002f9f: PUSH1 0x01 00002fa1: PUSH1 0xa0 00002fa3: SHL 00002fa4: SUB 00002fa5: SWAP2 00002fa6: PUSH1 0x60 00002fa8: DUP6 00002fa9: ADD 00002faa: SWAP7 00002fab: DUP6 00002fac: MSTORE 00002fad: PUSH1 0x20 00002faf: DUP6 00002fb0: ADD 00002fb1: MSTORE 00002fb2: AND 00002fb3: SWAP2 00002fb4: ADD 00002fb5: MSTORE 00002fb6: JUMP 00002fb7: JUMPDEST 00002fb8: ISZERO 00002fb9: PUSH2 0x2fbe 00002fbc: JUMPI 00002fbd: JUMP 00002fbe: JUMPDEST 00002fbf: PUSH1 0x84 00002fc1: PUSH1 0x40 00002fc3: MLOAD 00002fc4: PUSH3 0x461bcd 00002fc8: PUSH1 0xe5 00002fca: SHL 00002fcb: DUP2 00002fcc: MSTORE 00002fcd: PUSH1 0x20 00002fcf: PUSH1 0x04 00002fd1: DUP3 00002fd2: ADD 00002fd3: MSTORE 00002fd4: PUSH1 0x24 00002fd6: DUP1 00002fd7: DUP3 00002fd8: ADD 00002fd9: MSTORE 00002fda: PUSH32 0x53796d623a205265616c20746f6b656e7320616c7265616479207472616e7366 00002ffb: PUSH1 0x44 00002ffd: DUP3 00002ffe: ADD 00002fff: MSTORE 00003000: PUSH32 0x6572656400000000000000000000000000000000000000000000000000000000 00003021: PUSH1 0x64 00003023: DUP3 00003024: ADD 00003025: MSTORE 00003026: REVERT 00003027: JUMPDEST 00003028: SWAP1 00003029: SWAP2 0000302a: PUSH2 0x3041 0000302d: PUSH1 0x60 0000302f: SWAP4 00003030: SWAP7 00003031: SWAP6 00003032: SWAP5 00003033: SWAP7 00003034: PUSH1 0x80 00003036: DUP5 00003037: MSTORE 00003038: PUSH1 0x80 0000303a: DUP5 0000303b: ADD 0000303c: SWAP1 0000303d: PUSH2 0x26b7 00003040: JUMP 00003041: JUMPDEST 00003042: SWAP6 00003043: PUSH1 0x01 00003045: PUSH1 0x01 00003047: PUSH1 0xa0 00003049: SHL 0000304a: SUB 0000304b: DUP1 0000304c: SWAP3 0000304d: AND 0000304e: PUSH1 0x20 00003050: DUP5 00003051: ADD 00003052: MSTORE 00003053: AND 00003054: PUSH1 0x40 00003056: DUP3 00003057: ADD 00003058: MSTORE 00003059: ADD 0000305a: MSTORE 0000305b: JUMP 0000305c: JUMPDEST 0000305d: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0000307e: DUP2 0000307f: EQ 00003080: PUSH2 0x2c2e 00003083: JUMPI 00003084: PUSH1 0x01 00003086: ADD 00003087: SWAP1 00003088: JUMP 00003089: JUMPDEST 0000308a: DUP1 0000308b: MLOAD 0000308c: DUP3 0000308d: LT 0000308e: ISZERO 0000308f: PUSH2 0x309d 00003092: JUMPI 00003093: PUSH1 0x20 00003095: SWAP2 00003096: PUSH1 0x05 00003098: SHL 00003099: ADD 0000309a: ADD 0000309b: SWAP1 0000309c: JUMP 0000309d: JUMPDEST 0000309e: PUSH4 0x4e487b71 000030a3: PUSH1 0xe0 000030a5: SHL 000030a6: PUSH1 0x00 000030a8: MSTORE 000030a9: PUSH1 0x32 000030ab: PUSH1 0x04 000030ad: MSTORE 000030ae: PUSH1 0x24 000030b0: PUSH1 0x00 000030b2: REVERT 000030b3: JUMPDEST 000030b4: SWAP1 000030b5: DUP2 000030b6: MLOAD 000030b7: DUP1 000030b8: DUP3 000030b9: MSTORE 000030ba: PUSH1 0x20 000030bc: DUP1 000030bd: DUP1 000030be: SWAP4 000030bf: ADD 000030c0: SWAP4 000030c1: ADD 000030c2: SWAP2 000030c3: PUSH1 0x00 000030c5: JUMPDEST 000030c6: DUP3 000030c7: DUP2 000030c8: LT 000030c9: PUSH2 0x30d3 000030cc: JUMPI 000030cd: POP 000030ce: POP 000030cf: POP 000030d0: POP 000030d1: SWAP1 000030d2: JUMP 000030d3: JUMPDEST 000030d4: DUP4 000030d5: MLOAD 000030d6: PUSH1 0x01 000030d8: PUSH1 0x01 000030da: PUSH1 0xa0 000030dc: SHL 000030dd: SUB 000030de: AND 000030df: DUP6 000030e0: MSTORE 000030e1: SWAP4 000030e2: DUP2 000030e3: ADD 000030e4: SWAP4 000030e5: SWAP3 000030e6: DUP2 000030e7: ADD 000030e8: SWAP3 000030e9: PUSH1 0x01 000030eb: ADD 000030ec: PUSH2 0x30c5 000030ef: JUMP 000030f0: JUMPDEST 000030f1: SWAP2 000030f2: SWAP1 000030f3: DUP3 000030f4: ADD 000030f5: DUP1 000030f6: SWAP3 000030f7: GT 000030f8: PUSH2 0x2c2e 000030fb: JUMPI 000030fc: JUMP 000030fd: JUMPDEST 000030fe: ISZERO 000030ff: PUSH2 0x3104 00003102: JUMPI 00003103: JUMP 00003104: JUMPDEST 00003105: PUSH1 0x84 00003107: PUSH1 0x40 00003109: MLOAD 0000310a: PUSH3 0x461bcd 0000310e: PUSH1 0xe5 00003110: SHL 00003111: DUP2 00003112: MSTORE 00003113: PUSH1 0x20 00003115: PUSH1 0x04 00003117: DUP3 00003118: ADD 00003119: MSTORE 0000311a: PUSH1 0x2b 0000311c: PUSH1 0x24 0000311e: DUP3 0000311f: ADD 00003120: MSTORE 00003121: PUSH32 0x496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069 00003142: PUSH1 0x44 00003144: DUP3 00003145: ADD 00003146: MSTORE 00003147: PUSH32 0x6e697469616c697a696e67000000000000000000000000000000000000000000 00003168: PUSH1 0x64 0000316a: DUP3 0000316b: ADD 0000316c: MSTORE 0000316d: REVERT 0000316e: JUMPDEST 0000316f: PUSH1 0x01 00003171: PUSH1 0x01 00003173: PUSH1 0xa0 00003175: SHL 00003176: SUB 00003177: PUSH1 0x65 00003179: SLOAD 0000317a: AND 0000317b: CALLER 0000317c: EQ 0000317d: PUSH1 0x00 0000317f: EQ 00003180: PUSH2 0x31ad 00003183: JUMPI 00003184: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec 000031a5: CALLDATASIZE 000031a6: ADD 000031a7: CALLDATALOAD 000031a8: PUSH1 0x60 000031aa: SHR 000031ab: SWAP1 000031ac: JUMP 000031ad: JUMPDEST 000031ae: CALLER 000031af: SWAP1 000031b0: JUMP 000031b1: INVALID 000031b2: LOG2 000031b3: PUSH5 0x6970667358 000031b9: UNKNOWN(0x22) 000031ba: SLT 000031bb: KECCAK256 000031bc: EXTCODEHASH 000031bd: PUSH12 0x08c062226a7398e9665e2cce 000031ca: CLZ 000031cb: PUSH17 0x4a2a05444ff0560313d259f80580967964 000031dd: PUSH20
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | other | detector | Untrusted CALL target/value reachable | 60 | no | no |
viewtrace_id: 0x660538a96472f458a53486d9283bda8d0b0b59d77ee46e09b50b624eac3ac734
call_targets:
0x57dbcb192fa64bf07eab76941d1dae5177c8f4f3
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x660538a96472f458a53486d9283bda8d0b0b59d77ee46e09b50b624eac3ac734",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x57dbcb192fa64bf07eab76941d1dae5177c8f4f3"
],
"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": "0x08759e9b",
"selector": "0x08759e9b",
"calldata_variants": [
"0x08759e9b",
"0x08759e9b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1459457a",
"selector": "0x1459457a",
"calldata_variants": [
"0x1459457a",
"0x1459457a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1ebe53ef",
"selector": "0x1ebe53ef",
"calldata_variants": [
"0x1ebe53ef",
"0x1ebe53ef0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3f4ba83a",
"selector": "0x3f4ba83a",
"calldata_variants": [
"0x3f4ba83a",
"0x3f4ba83a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x486ff0cd",
"selector": "0x486ff0cd",
"calldata_variants": [
"0x486ff0cd",
"0x486ff0cd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4a913664",
"selector": "0x4a913664",
"calldata_variants": [
"0x4a913664",
"0x4a9136640000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x572b6c05",
"selector": "0x572b6c05",
"calldata_variants": [
"0x572b6c05",
"0x572b6c050000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5badbe4c",
"selector": "0x5badbe4c",
"calldata_variants": [
"0x5badbe4c",
"0x5badbe4c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1316,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1993,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2516,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"call_count": 9,
"guards_detected": [],
"untrusted_call_count": 9
}
|
| high | other | detector | ETH value transfer possible | 55 | no | no |
viewtrace_id: 0x660538a96472f458a53486d9283bda8d0b0b59d77ee46e09b50b624eac3ac734
call_targets:
0x57dbcb192fa64bf07eab76941d1dae5177c8f4f3
target_varies:
no
classification:
constant_target
validation_json{
"sink": "CALL",
"errors": 0,
"status": "sink_reached",
"attempts": 1,
"trace_id": "0x660538a96472f458a53486d9283bda8d0b0b59d77ee46e09b50b624eac3ac734",
"confirmed": false,
"trace_mode": "callTracer",
"call_targets": [
"0x57dbcb192fa64bf07eab76941d1dae5177c8f4f3"
],
"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": "0x08759e9b",
"selector": "0x08759e9b",
"calldata_variants": [
"0x08759e9b",
"0x08759e9b0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1459457a",
"selector": "0x1459457a",
"calldata_variants": [
"0x1459457a",
"0x1459457a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x1ebe53ef",
"selector": "0x1ebe53ef",
"calldata_variants": [
"0x1ebe53ef",
"0x1ebe53ef0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x3f4ba83a",
"selector": "0x3f4ba83a",
"calldata_variants": [
"0x3f4ba83a",
"0x3f4ba83a0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x486ff0cd",
"selector": "0x486ff0cd",
"calldata_variants": [
"0x486ff0cd",
"0x486ff0cd0000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x4a913664",
"selector": "0x4a913664",
"calldata_variants": [
"0x4a913664",
"0x4a9136640000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x572b6c05",
"selector": "0x572b6c05",
"calldata_variants": [
"0x572b6c05",
"0x572b6c050000000000000000000000000000000000000000000000000000000000000000"
]
},
{
"calldata": "0x5badbe4c",
"selector": "0x5badbe4c",
"calldata_variants": [
"0x5badbe4c",
"0x5badbe4c0000000000000000000000000000000000000000000000000000000000000000"
]
}
]
}
evidence_json{
"examples": [
{
"pc": 1316,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 1993,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
},
{
"pc": 2516,
"opcode": "CALL",
"returndata_checked": null,
"value_expression_category": "computed",
"target_expression_category": "computed"
}
],
"eth_value_calls": 9,
"guards_detected": []
}
|
| medium | upgradeability | codex | Upgradeable Portal can be initialized by anyone if proxy/implementation is left uninitialized | 75 | no | — |
viewevidence_json{
"evidence": "`initialize` is `public` and guarded only by `initializer`, with no constructor disabling initializers in the implementation.",
"locations": [
"contracts/contracts/synth-core/Portal.sol:134",
"contracts/contracts/utils/RelayRecipientUpgradeable.sol:10"
],
"recommendation": "Add a constructor that calls `_disableInitializers()` on the implementation and ensure deployment scripts initialize the proxy atomically (e.g., constructor data).",
"exploit_scenario": "If a proxy is deployed without an immediate initialize call (or the implementation is deployed and funded directly), an attacker can call initialize, become owner, set bridge/metaRouter, and then use onlyBridge paths (after setting bridge to themselves) to withdraw locked tokens."
}
|
| medium | math | codex | Fee-on-transfer/rebasing tokens can undercollateralize synths | 75 | no | — |
viewevidence_json{
"evidence": "`balanceOf` is incremented by the user-supplied `_amount` after `safeTransferFrom`, without verifying actual tokens received.",
"locations": [
"contracts/contracts/synth-core/Portal.sol:174",
"contracts/contracts/synth-core/Portal.sol:187",
"contracts/contracts/synth-core/Portal.sol:558",
"contracts/contracts/synth-core/Portal.sol:213",
"contracts/contracts/synth-core/Portal.sol:624"
],
"recommendation": "Whitelist only vanilla ERC20s or calculate the actual received amount by checking token balance before/after transfer and use that value for accounting and mint requests.",
"exploit_scenario": "If a whitelisted token takes a transfer fee or rebases, `synthesize`/`metaSynthesize` use the requested `_amount` rather than the actual received amount. A user can mint synthetic assets for more than the contract actually locked, then later redeem full value, leaving the pool undercollateralized or causing insolvency on redeem."
}
|
| low | other | codex | Revert request functions are replayable, allowing repeated bridge calls | 65 | no | — |
viewevidence_json{
"evidence": "The guard only checks `!= Unsynthesized` and does not prevent repeated calls once state is `RevertRequest`.",
"locations": [
"contracts/contracts/synth-core/Portal.sol:360",
"contracts/contracts/synth-core/Portal.sol:370",
"contracts/contracts/synth-core/Portal.sol:394",
"contracts/contracts/synth-core/Portal.sol:400"
],
"recommendation": "Require `unsynthesizeStates[externalID] == Default` before sending a revert request and consider adding explicit replay protection or an idempotency check.",
"exploit_scenario": "An attacker can call `revertBurnRequest` or `metaRevertRequest` repeatedly for the same `internalID`. The functions only block the `Unsynthesized` state, so each call sends a new `transmitRequestV2` to the bridge. If the remote side is not idempotent, this can lead to duplicate processing; otherwise it can be used to spam or waste bridge resources."
}
|
| 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": 9
}
|