Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SyedImam1998/504935d3fa10825174c3c3271669c2f0 to your computer and use it in GitHub Desktop.
Save SyedImam1998/504935d3fa10825174c3c3271669c2f0 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.16+commit.07a7930e.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity ^0.8.0;
/**
* @title Provides addresses of the live contracts implementing certain interfaces.
* @dev Examples are the Oracle or Store interfaces.
*/
interface FinderInterface {
/**
* @notice Updates the address of the contract that implements `interfaceName`.
* @param interfaceName bytes32 encoding of the interface name that is either changed or registered.
* @param implementationAddress address of the deployed contract that implements the interface.
*/
function changeImplementationAddress(bytes32 interfaceName, address implementationAddress) external;
/**
* @notice Gets the address of the contract that implements the given `interfaceName`.
* @param interfaceName queried interface.
* @return implementationAddress address of the deployed contract that implements the interface.
*/
function getImplementationAddress(bytes32 interfaceName) external view returns (address);
}
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "../../data-verification-mechanism/interfaces/FinderInterface.sol";
/**
* @title Financial contract facing Oracle interface.
* @dev Interface used by financial contracts to interact with the Oracle. Voters will use a different interface.
*/
abstract contract OptimisticOracleV2Interface {
event RequestPrice(
address indexed requester,
bytes32 identifier,
uint256 timestamp,
bytes ancillaryData,
address currency,
uint256 reward,
uint256 finalFee
);
event ProposePrice(
address indexed requester,
address indexed proposer,
bytes32 identifier,
uint256 timestamp,
bytes ancillaryData,
int256 proposedPrice,
uint256 expirationTimestamp,
address currency
);
event DisputePrice(
address indexed requester,
address indexed proposer,
address indexed disputer,
bytes32 identifier,
uint256 timestamp,
bytes ancillaryData,
int256 proposedPrice
);
event Settle(
address indexed requester,
address indexed proposer,
address indexed disputer,
bytes32 identifier,
uint256 timestamp,
bytes ancillaryData,
int256 price,
uint256 payout
);
// Struct representing the state of a price request.
enum State {
Invalid, // Never requested.
Requested, // Requested, no other actions taken.
Proposed, // Proposed, but not expired or disputed yet.
Expired, // Proposed, not disputed, past liveness.
Disputed, // Disputed, but no DVM price returned yet.
Resolved, // Disputed and DVM price is available.
Settled // Final price has been set in the contract (can get here from Expired or Resolved).
}
struct RequestSettings {
bool eventBased; // True if the request is set to be event-based.
bool refundOnDispute; // True if the requester should be refunded their reward on dispute.
bool callbackOnPriceProposed; // True if callbackOnPriceProposed callback is required.
bool callbackOnPriceDisputed; // True if callbackOnPriceDisputed callback is required.
bool callbackOnPriceSettled; // True if callbackOnPriceSettled callback is required.
uint256 bond; // Bond that the proposer and disputer must pay on top of the final fee.
uint256 customLiveness; // Custom liveness value set by the requester.
}
// Struct representing a price request.
struct Request {
address proposer; // Address of the proposer.
address disputer; // Address of the disputer.
IERC20 currency; // ERC20 token used to pay rewards and fees.
bool settled; // True if the request is settled.
RequestSettings requestSettings; // Custom settings associated with a request.
int256 proposedPrice; // Price that the proposer submitted.
int256 resolvedPrice; // Price resolved once the request is settled.
uint256 expirationTime; // Time at which the request auto-settles without a dispute.
uint256 reward; // Amount of the currency to pay to the proposer on settlement.
uint256 finalFee; // Final fee to pay to the Store upon request to the DVM.
}
// This value must be <= the Voting contract's `ancillaryBytesLimit` value otherwise it is possible
// that a price can be requested to this contract successfully, but cannot be disputed because the DVM refuses
// to accept a price request made with ancillary data length over a certain size.
uint256 public constant ancillaryBytesLimit = 8192;
function defaultLiveness() external view virtual returns (uint256);
function finder() external view virtual returns (FinderInterface);
function getCurrentTime() external view virtual returns (uint256);
// Note: this is required so that typechain generates a return value with named fields.
mapping(bytes32 => Request) public requests;
/**
* @notice Requests a new price.
* @param identifier price identifier being requested.
* @param timestamp timestamp of the price being requested.
* @param ancillaryData ancillary data representing additional args being passed with the price request.
* @param currency ERC20 token used for payment of rewards and fees. Must be approved for use with the DVM.
* @param reward reward offered to a successful proposer. Will be pulled from the caller. Note: this can be 0,
* which could make sense if the contract requests and proposes the value in the same call or
* provides its own reward system.
* @return totalBond default bond (final fee) + final fee that the proposer and disputer will be required to pay.
* This can be changed with a subsequent call to setBond().
*/
function requestPrice(
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData,
IERC20 currency,
uint256 reward
) external virtual returns (uint256 totalBond);
/**
* @notice Set the proposal bond associated with a price request.
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
* @param bond custom bond amount to set.
* @return totalBond new bond + final fee that the proposer and disputer will be required to pay. This can be
* changed again with a subsequent call to setBond().
*/
function setBond(
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData,
uint256 bond
) external virtual returns (uint256 totalBond);
/**
* @notice Sets the request to refund the reward if the proposal is disputed. This can help to "hedge" the caller
* in the event of a dispute-caused delay. Note: in the event of a dispute, the winner still receives the other's
* bond, so there is still profit to be made even if the reward is refunded.
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
*/
function setRefundOnDispute(
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData
) external virtual;
/**
* @notice Sets a custom liveness value for the request. Liveness is the amount of time a proposal must wait before
* being auto-resolved.
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
* @param customLiveness new custom liveness.
*/
function setCustomLiveness(
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData,
uint256 customLiveness
) external virtual;
/**
* @notice Sets the request to be an "event-based" request.
* @dev Calling this method has a few impacts on the request:
*
* 1. The timestamp at which the request is evaluated is the time of the proposal, not the timestamp associated
* with the request.
*
* 2. The proposer cannot propose the "too early" value (TOO_EARLY_RESPONSE). This is to ensure that a proposer who
* prematurely proposes a response loses their bond.
*
* 3. RefundoOnDispute is automatically set, meaning disputes trigger the reward to be automatically refunded to
* the requesting contract.
*
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
*/
function setEventBased(
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData
) external virtual;
/**
* @notice Sets which callbacks should be enabled for the request.
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
* @param callbackOnPriceProposed whether to enable the callback onPriceProposed.
* @param callbackOnPriceDisputed whether to enable the callback onPriceDisputed.
* @param callbackOnPriceSettled whether to enable the callback onPriceSettled.
*/
function setCallbacks(
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData,
bool callbackOnPriceProposed,
bool callbackOnPriceDisputed,
bool callbackOnPriceSettled
) external virtual;
/**
* @notice Proposes a price value on another address' behalf. Note: this address will receive any rewards that come
* from this proposal. However, any bonds are pulled from the caller.
* @param proposer address to set as the proposer.
* @param requester sender of the initial price request.
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
* @param proposedPrice price being proposed.
* @return totalBond the amount that's pulled from the caller's wallet as a bond. The bond will be returned to
* the proposer once settled if the proposal is correct.
*/
function proposePriceFor(
address proposer,
address requester,
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData,
int256 proposedPrice
) public virtual returns (uint256 totalBond);
/**
* @notice Proposes a price value for an existing price request.
* @param requester sender of the initial price request.
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
* @param proposedPrice price being proposed.
* @return totalBond the amount that's pulled from the proposer's wallet as a bond. The bond will be returned to
* the proposer once settled if the proposal is correct.
*/
function proposePrice(
address requester,
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData,
int256 proposedPrice
) external virtual returns (uint256 totalBond);
/**
* @notice Disputes a price request with an active proposal on another address' behalf. Note: this address will
* receive any rewards that come from this dispute. However, any bonds are pulled from the caller.
* @param disputer address to set as the disputer.
* @param requester sender of the initial price request.
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
* @return totalBond the amount that's pulled from the caller's wallet as a bond. The bond will be returned to
* the disputer once settled if the dispute was value (the proposal was incorrect).
*/
function disputePriceFor(
address disputer,
address requester,
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData
) public virtual returns (uint256 totalBond);
/**
* @notice Disputes a price value for an existing price request with an active proposal.
* @param requester sender of the initial price request.
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
* @return totalBond the amount that's pulled from the disputer's wallet as a bond. The bond will be returned to
* the disputer once settled if the dispute was valid (the proposal was incorrect).
*/
function disputePrice(
address requester,
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData
) external virtual returns (uint256 totalBond);
/**
* @notice Retrieves a price that was previously requested by a caller. Reverts if the request is not settled
* or settleable. Note: this method is not view so that this call may actually settle the price request if it
* hasn't been settled.
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
* @return resolved price.
*/
function settleAndGetPrice(
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData
) external virtual returns (int256);
/**
* @notice Attempts to settle an outstanding price request. Will revert if it isn't settleable.
* @param requester sender of the initial price request.
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
* @return payout the amount that the "winner" (proposer or disputer) receives on settlement. This amount includes
* the returned bonds as well as additional rewards.
*/
function settle(
address requester,
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData
) external virtual returns (uint256 payout);
/**
* @notice Gets the current data structure containing all information about a price request.
* @param requester sender of the initial price request.
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
* @return the Request data structure.
*/
function getRequest(
address requester,
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData
) public view virtual returns (Request memory);
/**
* @notice Returns the state of a price request.
* @param requester sender of the initial price request.
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
* @return the State enum value.
*/
function getState(
address requester,
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData
) public view virtual returns (State);
/**
* @notice Checks if a given request has resolved or been settled (i.e the optimistic oracle has a price).
* @param requester sender of the initial price request.
* @param identifier price identifier to identify the existing request.
* @param timestamp timestamp to identify the existing request.
* @param ancillaryData ancillary data of the price being requested.
* @return true if price has resolved or settled, false otherwise.
*/
function hasPrice(
address requester,
bytes32 identifier,
uint256 timestamp,
bytes memory ancillaryData
) public view virtual returns (bool);
function stampAncillaryData(bytes memory ancillaryData, address requester)
public
view
virtual
returns (bytes memory);
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `from` to `to` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address from,
address to,
uint256 amount
) external returns (bool);
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"array_dataslot_t_bytes_storage": {
"entryPoint": 350,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 192,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_bytes_storage": {
"entryPoint": 671,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_uint256": {
"entryPoint": 486,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 632,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 506,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage": {
"entryPoint": 826,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 371,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 297,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 796,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"identity": {
"entryPoint": 496,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 764,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 250,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 203,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 546,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 387,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 751,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 604,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 400,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 556,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 599,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:5222:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "65:40:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "76:22:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "92:5:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "86:5:4"
},
"nodeType": "YulFunctionCall",
"src": "86:12:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "76:6:4"
}
]
}
]
},
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "48:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "58:6:4",
"type": ""
}
],
"src": "7:98:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "139:152:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "156:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "159:77:4",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "149:6:4"
},
"nodeType": "YulFunctionCall",
"src": "149:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "149:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "253:1:4",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "256:4:4",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "246:6:4"
},
"nodeType": "YulFunctionCall",
"src": "246:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "246:15:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "277:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "280:4:4",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "270:6:4"
},
"nodeType": "YulFunctionCall",
"src": "270:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "270:15:4"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "111:180:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "325:152:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "342:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:77:4",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "335:6:4"
},
"nodeType": "YulFunctionCall",
"src": "335:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "335:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "439:1:4",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "442:4:4",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "432:6:4"
},
"nodeType": "YulFunctionCall",
"src": "432:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "432:15:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "463:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "466:4:4",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "456:6:4"
},
"nodeType": "YulFunctionCall",
"src": "456:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "456:15:4"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "297:180:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "534:269:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "544:22:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "558:4:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "564:1:4",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "554:3:4"
},
"nodeType": "YulFunctionCall",
"src": "554:12:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "544:6:4"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "575:38:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "605:4:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "611:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "601:3:4"
},
"nodeType": "YulFunctionCall",
"src": "601:12:4"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "579:18:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "652:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "666:27:4",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "680:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "688:4:4",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "676:3:4"
},
"nodeType": "YulFunctionCall",
"src": "676:17:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "666:6:4"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "632:18:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "625:6:4"
},
"nodeType": "YulFunctionCall",
"src": "625:26:4"
},
"nodeType": "YulIf",
"src": "622:81:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "755:42:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "769:16:4"
},
"nodeType": "YulFunctionCall",
"src": "769:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "769:18:4"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "719:18:4"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "742:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "750:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "739:2:4"
},
"nodeType": "YulFunctionCall",
"src": "739:14:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "716:2:4"
},
"nodeType": "YulFunctionCall",
"src": "716:38:4"
},
"nodeType": "YulIf",
"src": "713:84:4"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "518:4:4",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "527:6:4",
"type": ""
}
],
"src": "483:320:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "862:87:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "872:11:4",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "880:3:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "872:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "900:1:4",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "903:3:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "893:6:4"
},
"nodeType": "YulFunctionCall",
"src": "893:14:4"
},
"nodeType": "YulExpressionStatement",
"src": "893:14:4"
},
{
"nodeType": "YulAssignment",
"src": "916:26:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "934:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "937:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nodeType": "YulIdentifier",
"src": "924:9:4"
},
"nodeType": "YulFunctionCall",
"src": "924:18:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "916:4:4"
}
]
}
]
},
"name": "array_dataslot_t_bytes_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "849:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "857:4:4",
"type": ""
}
],
"src": "809:140:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "999:49:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1009:33:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1027:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1034:2:4",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1023:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1023:14:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1039:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "1019:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1019:23:4"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1009:6:4"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "982:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "992:6:4",
"type": ""
}
],
"src": "955:93:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1107:54:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1117:37:4",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "1142:4:4"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1148:5:4"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1138:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1138:16:4"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "1117:8:4"
}
]
}
]
},
"name": "shift_left_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "1082:4:4",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1088:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "1098:8:4",
"type": ""
}
],
"src": "1054:107:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1243:317:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1253:35:4",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nodeType": "YulIdentifier",
"src": "1274:10:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1286:1:4",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "1270:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1270:18:4"
},
"variables": [
{
"name": "shiftBits",
"nodeType": "YulTypedName",
"src": "1257:9:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1297:109:4",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "1328:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1339:66:4",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "1309:18:4"
},
"nodeType": "YulFunctionCall",
"src": "1309:97:4"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "1301:4:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1415:51:4",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "1446:9:4"
},
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "1457:8:4"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "1427:18:4"
},
"nodeType": "YulFunctionCall",
"src": "1427:39:4"
},
"variableNames": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "1415:8:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1475:30:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1488:5:4"
},
{
"arguments": [
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "1499:4:4"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1495:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1495:9:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1484:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1484:21:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1475:5:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1514:40:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1527:5:4"
},
{
"arguments": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "1538:8:4"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "1548:4:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1534:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1534:19:4"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1524:2:4"
},
"nodeType": "YulFunctionCall",
"src": "1524:30:4"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1514:6:4"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1204:5:4",
"type": ""
},
{
"name": "shiftBytes",
"nodeType": "YulTypedName",
"src": "1211:10:4",
"type": ""
},
{
"name": "toInsert",
"nodeType": "YulTypedName",
"src": "1223:8:4",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1236:6:4",
"type": ""
}
],
"src": "1167:393:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1611:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1621:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1632:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1621:7:4"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1593:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1603:7:4",
"type": ""
}
],
"src": "1566:77:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1681:28:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1691:12:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1698:5:4"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "1691:3:4"
}
]
}
]
},
"name": "identity",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1667:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "1677:3:4",
"type": ""
}
],
"src": "1649:60:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1775:82:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1785:66:4",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1843:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1825:17:4"
},
"nodeType": "YulFunctionCall",
"src": "1825:24:4"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "1816:8:4"
},
"nodeType": "YulFunctionCall",
"src": "1816:34:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1798:17:4"
},
"nodeType": "YulFunctionCall",
"src": "1798:53:4"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "1785:9:4"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1755:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "1765:9:4",
"type": ""
}
],
"src": "1715:142:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1910:28:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1920:12:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1927:5:4"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "1920:3:4"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1896:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "1906:3:4",
"type": ""
}
],
"src": "1863:75:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2020:193:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2030:63:4",
"value": {
"arguments": [
{
"name": "value_0",
"nodeType": "YulIdentifier",
"src": "2085:7:4"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "2054:30:4"
},
"nodeType": "YulFunctionCall",
"src": "2054:39:4"
},
"variables": [
{
"name": "convertedValue_0",
"nodeType": "YulTypedName",
"src": "2034:16:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "2109:4:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "2149:4:4"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "2143:5:4"
},
"nodeType": "YulFunctionCall",
"src": "2143:11:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2156:6:4"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nodeType": "YulIdentifier",
"src": "2188:16:4"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nodeType": "YulIdentifier",
"src": "2164:23:4"
},
"nodeType": "YulFunctionCall",
"src": "2164:41:4"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nodeType": "YulIdentifier",
"src": "2115:27:4"
},
"nodeType": "YulFunctionCall",
"src": "2115:91:4"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "2102:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2102:105:4"
},
"nodeType": "YulExpressionStatement",
"src": "2102:105:4"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "1997:4:4",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2003:6:4",
"type": ""
},
{
"name": "value_0",
"nodeType": "YulTypedName",
"src": "2011:7:4",
"type": ""
}
],
"src": "1944:269:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2268:24:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2278:8:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2285:1:4",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "2278:3:4"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "2264:3:4",
"type": ""
}
],
"src": "2219:73:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2351:136:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2361:46:4",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulIdentifier",
"src": "2375:30:4"
},
"nodeType": "YulFunctionCall",
"src": "2375:32:4"
},
"variables": [
{
"name": "zero_0",
"nodeType": "YulTypedName",
"src": "2365:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "2460:4:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2466:6:4"
},
{
"name": "zero_0",
"nodeType": "YulIdentifier",
"src": "2474:6:4"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "2416:43:4"
},
"nodeType": "YulFunctionCall",
"src": "2416:65:4"
},
"nodeType": "YulExpressionStatement",
"src": "2416:65:4"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "2337:4:4",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2343:6:4",
"type": ""
}
],
"src": "2298:189:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2543:136:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2610:63:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2654:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2661:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulIdentifier",
"src": "2624:29:4"
},
"nodeType": "YulFunctionCall",
"src": "2624:39:4"
},
"nodeType": "YulExpressionStatement",
"src": "2624:39:4"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2563:5:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2570:3:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2560:2:4"
},
"nodeType": "YulFunctionCall",
"src": "2560:14:4"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2575:26:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2577:22:4",
"value": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2590:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2597:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2586:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2586:13:4"
},
"variableNames": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2577:5:4"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2557:2:4",
"statements": []
},
"src": "2553:120:4"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nodeType": "YulTypedName",
"src": "2531:5:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2538:3:4",
"type": ""
}
],
"src": "2493:186:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2763:463:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2789:430:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2803:53:4",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2850:5:4"
}
],
"functionName": {
"name": "array_dataslot_t_bytes_storage",
"nodeType": "YulIdentifier",
"src": "2819:30:4"
},
"nodeType": "YulFunctionCall",
"src": "2819:37:4"
},
"variables": [
{
"name": "dataArea",
"nodeType": "YulTypedName",
"src": "2807:8:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2869:63:4",
"value": {
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "2892:8:4"
},
{
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "2920:10:4"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "2902:17:4"
},
"nodeType": "YulFunctionCall",
"src": "2902:29:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2888:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2888:44:4"
},
"variables": [
{
"name": "deleteStart",
"nodeType": "YulTypedName",
"src": "2873:11:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3089:27:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3091:23:4",
"value": {
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "3106:8:4"
},
"variableNames": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "3091:11:4"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "3073:10:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3085:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3070:2:4"
},
"nodeType": "YulFunctionCall",
"src": "3070:18:4"
},
"nodeType": "YulIf",
"src": "3067:49:4"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "3158:11:4"
},
{
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "3175:8:4"
},
{
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "3203:3:4"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "3185:17:4"
},
"nodeType": "YulFunctionCall",
"src": "3185:22:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3171:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3171:37:4"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulIdentifier",
"src": "3129:28:4"
},
"nodeType": "YulFunctionCall",
"src": "3129:80:4"
},
"nodeType": "YulExpressionStatement",
"src": "3129:80:4"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "2780:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2785:2:4",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2777:2:4"
},
"nodeType": "YulFunctionCall",
"src": "2777:11:4"
},
"nodeType": "YulIf",
"src": "2774:445:4"
}
]
},
"name": "clean_up_bytearray_end_slots_t_bytes_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2739:5:4",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "2746:3:4",
"type": ""
},
{
"name": "startIndex",
"nodeType": "YulTypedName",
"src": "2751:10:4",
"type": ""
}
],
"src": "2685:541:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3295:54:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3305:37:4",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "3330:4:4"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3336:5:4"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "3326:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3326:16:4"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "3305:8:4"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "3270:4:4",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3276:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "3286:8:4",
"type": ""
}
],
"src": "3232:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3406:118:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3416:68:4",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3465:1:4",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nodeType": "YulIdentifier",
"src": "3468:5:4"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "3461:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3461:13:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3480:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3476:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3476:6:4"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulIdentifier",
"src": "3432:28:4"
},
"nodeType": "YulFunctionCall",
"src": "3432:51:4"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3428:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3428:56:4"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "3420:4:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3493:25:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3507:4:4"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "3513:4:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3503:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3503:15:4"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "3493:6:4"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "3383:4:4",
"type": ""
},
{
"name": "bytes",
"nodeType": "YulTypedName",
"src": "3389:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "3399:6:4",
"type": ""
}
],
"src": "3355:169:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3610:214:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3743:37:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3770:4:4"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "3776:3:4"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "3751:18:4"
},
"nodeType": "YulFunctionCall",
"src": "3751:29:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3743:4:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3789:29:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3800:4:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3810:1:4",
"type": "",
"value": "2"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "3813:3:4"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "3806:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3806:11:4"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "3797:2:4"
},
"nodeType": "YulFunctionCall",
"src": "3797:21:4"
},
"variableNames": [
{
"name": "used",
"nodeType": "YulIdentifier",
"src": "3789:4:4"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "3591:4:4",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "3597:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nodeType": "YulTypedName",
"src": "3605:4:4",
"type": ""
}
],
"src": "3529:295:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3919:1300:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3930:50:4",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "3976:3:4"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3944:31:4"
},
"nodeType": "YulFunctionCall",
"src": "3944:36:4"
},
"variables": [
{
"name": "newLen",
"nodeType": "YulTypedName",
"src": "3934:6:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4065:22:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4067:16:4"
},
"nodeType": "YulFunctionCall",
"src": "4067:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "4067:18:4"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4037:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4045:18:4",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4034:2:4"
},
"nodeType": "YulFunctionCall",
"src": "4034:30:4"
},
"nodeType": "YulIf",
"src": "4031:56:4"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4097:52:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4143:4:4"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "4137:5:4"
},
"nodeType": "YulFunctionCall",
"src": "4137:11:4"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nodeType": "YulIdentifier",
"src": "4111:25:4"
},
"nodeType": "YulFunctionCall",
"src": "4111:38:4"
},
"variables": [
{
"name": "oldLen",
"nodeType": "YulTypedName",
"src": "4101:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4241:4:4"
},
{
"name": "oldLen",
"nodeType": "YulIdentifier",
"src": "4247:6:4"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4255:6:4"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_bytes_storage",
"nodeType": "YulIdentifier",
"src": "4196:44:4"
},
"nodeType": "YulFunctionCall",
"src": "4196:66:4"
},
"nodeType": "YulExpressionStatement",
"src": "4196:66:4"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4272:18:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4289:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nodeType": "YulTypedName",
"src": "4276:9:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4300:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4313:4:4",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4300:9:4"
}
]
},
{
"cases": [
{
"body": {
"nodeType": "YulBlock",
"src": "4364:610:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4378:37:4",
"value": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4397:6:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4409:4:4",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "4405:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4405:9:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4393:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4393:22:4"
},
"variables": [
{
"name": "loopEnd",
"nodeType": "YulTypedName",
"src": "4382:7:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4429:50:4",
"value": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4474:4:4"
}
],
"functionName": {
"name": "array_dataslot_t_bytes_storage",
"nodeType": "YulIdentifier",
"src": "4443:30:4"
},
"nodeType": "YulFunctionCall",
"src": "4443:36:4"
},
"variables": [
{
"name": "dstPtr",
"nodeType": "YulTypedName",
"src": "4433:6:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4492:10:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4501:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "4496:1:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4560:163:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4585:6:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4603:3:4"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4608:9:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4599:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4599:19:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4593:5:4"
},
"nodeType": "YulFunctionCall",
"src": "4593:26:4"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "4578:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4578:42:4"
},
"nodeType": "YulExpressionStatement",
"src": "4578:42:4"
},
{
"nodeType": "YulAssignment",
"src": "4637:24:4",
"value": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4651:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4659:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4647:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4647:14:4"
},
"variableNames": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4637:6:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4678:31:4",
"value": {
"arguments": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4695:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4706:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4691:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4691:18:4"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4678:9:4"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4526:1:4"
},
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "4529:7:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4523:2:4"
},
"nodeType": "YulFunctionCall",
"src": "4523:14:4"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "4538:21:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4540:17:4",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4549:1:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4552:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4545:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4545:12:4"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4540:1:4"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "4519:3:4",
"statements": []
},
"src": "4515:208:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4759:156:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4777:43:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4804:3:4"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4809:9:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4800:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4800:19:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4794:5:4"
},
"nodeType": "YulFunctionCall",
"src": "4794:26:4"
},
"variables": [
{
"name": "lastValue",
"nodeType": "YulTypedName",
"src": "4781:9:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4844:6:4"
},
{
"arguments": [
{
"name": "lastValue",
"nodeType": "YulIdentifier",
"src": "4871:9:4"
},
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4886:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4894:4:4",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4882:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4882:17:4"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "4852:18:4"
},
"nodeType": "YulFunctionCall",
"src": "4852:48:4"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "4837:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4837:64:4"
},
"nodeType": "YulExpressionStatement",
"src": "4837:64:4"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "4742:7:4"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4751:6:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4739:2:4"
},
"nodeType": "YulFunctionCall",
"src": "4739:19:4"
},
"nodeType": "YulIf",
"src": "4736:179:4"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4935:4:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4949:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4957:1:4",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "4945:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4945:14:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4961:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4941:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4941:22:4"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "4928:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4928:36:4"
},
"nodeType": "YulExpressionStatement",
"src": "4928:36:4"
}
]
},
"nodeType": "YulCase",
"src": "4357:617:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4362:1:4",
"type": "",
"value": "1"
}
},
{
"body": {
"nodeType": "YulBlock",
"src": "4991:222:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5005:14:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5018:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5009:5:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5042:67:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5060:35:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5079:3:4"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "5084:9:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5075:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5075:19:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5069:5:4"
},
"nodeType": "YulFunctionCall",
"src": "5069:26:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5060:5:4"
}
]
}
]
},
"condition": {
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "5035:6:4"
},
"nodeType": "YulIf",
"src": "5032:77:4"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "5129:4:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5188:5:4"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "5195:6:4"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulIdentifier",
"src": "5135:52:4"
},
"nodeType": "YulFunctionCall",
"src": "5135:67:4"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "5122:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5122:81:4"
},
"nodeType": "YulExpressionStatement",
"src": "5122:81:4"
}
]
},
"nodeType": "YulCase",
"src": "4983:230:4",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4337:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4345:2:4",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4334:2:4"
},
"nodeType": "YulFunctionCall",
"src": "4334:14:4"
},
"nodeType": "YulSwitch",
"src": "4327:886:4"
}
]
},
"name": "copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "3908:4:4",
"type": ""
},
{
"name": "src",
"nodeType": "YulTypedName",
"src": "3914:3:4",
"type": ""
}
],
"src": "3829:1390:4"
}
]
},
"contents": "{\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_bytes_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_bytes_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_bytes_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src) {\n\n let newLen := array_length_t_bytes_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_bytes_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_bytes_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n",
"id": 4,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405273a5b9d8a0b0fa04ba71bdd68069661ed5c08488846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5945535f4f525f4e4f5f515545525900000000000000000000000000000000006001556040518060a001604052806061815260200162000e806061913960029081620000a691906200033a565b506000600355348015620000b957600080fd5b5062000421565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200014257607f821691505b602082108103620001585762000157620000fa565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001c27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000183565b620001ce868362000183565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200021b620002156200020f84620001e6565b620001f0565b620001e6565b9050919050565b6000819050919050565b6200023783620001fa565b6200024f620002468262000222565b84845462000190565b825550505050565b600090565b6200026662000257565b620002738184846200022c565b505050565b5b818110156200029b576200028f6000826200025c565b60018101905062000279565b5050565b601f821115620002ea57620002b4816200015e565b620002bf8462000173565b81016020851015620002cf578190505b620002e7620002de8562000173565b83018262000278565b50505b505050565b600082821c905092915050565b60006200030f60001984600802620002ef565b1980831691505092915050565b60006200032a8383620002fc565b9150826002028217905092915050565b6200034582620000c0565b67ffffffffffffffff811115620003615762000360620000cb565b5b6200036d825462000129565b6200037a8282856200029f565b600060209050601f831160018114620003b257600084156200039d578287015190505b620003a985826200031c565b86555062000419565b601f198416620003c2866200015e565b60005b82811015620003ec57848901518255600182019150602085019450602081019050620003c5565b868310156200040c578489015162000408601f891682620002fc565b8355505b6001600288020188555050505b505050505050565b610a4f80620004316000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063606deecd14610046578063f25ffb2014610050578063fa7761521461006e575b600080fd5b61004e610078565b005b6100586101de565b6040516100659190610353565b60405180910390f35b610076610290565b005b42600381905550600073b4fbf271143f4fbf7b91a5ded31805e42b2208d690506000808054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311df92f1600154600354600286866040518663ffffffff1660e01b81526004016100ff959493929190610529565b6020604051808303816000875af115801561011e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014291906105be565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663473c45fe6001546003546002601e6040518563ffffffff1660e01b81526004016101a89493929190610626565b600060405180830381600087803b1580156101c257600080fd5b505af11580156101d6573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9904f9b3060015460035460026040518563ffffffff1660e01b81526004016102459493929190610693565b61020060405180830381865afa158015610263573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028791906109eb565b60c00151905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635e9a79a93060015460035460026040518563ffffffff1660e01b81526004016102f49493929190610693565b6020604051808303816000875af1158015610313573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033791906105be565b50565b6000819050919050565b61034d8161033a565b82525050565b60006020820190506103686000830184610344565b92915050565b6000819050919050565b6103818161036e565b82525050565b6000819050919050565b61039a81610387565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806103e757607f821691505b6020821081036103fa576103f96103a0565b5b50919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008154610433816103cf565b61043d8186610400565b94506001821660008114610458576001811461046e576104a1565b60ff1983168652811515602002860193506104a1565b61047785610411565b60005b838110156104995781548189015260018201915060208101905061047a565b808801955050505b50505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006104ef6104ea6104e5846104aa565b6104ca565b6104aa565b9050919050565b6000610501826104d4565b9050919050565b6000610513826104f6565b9050919050565b61052381610508565b82525050565b600060a08201905061053e6000830188610378565b61054b6020830187610391565b818103604083015261055d8186610426565b905061056c606083018561051a565b6105796080830184610391565b9695505050505050565b6000604051905090565b600080fd5b61059b81610387565b81146105a657600080fd5b50565b6000815190506105b881610592565b92915050565b6000602082840312156105d4576105d361058d565b5b60006105e2848285016105a9565b91505092915050565b6000819050919050565b600061061061060b610606846105eb565b6104ca565b610387565b9050919050565b610620816105f5565b82525050565b600060808201905061063b6000830187610378565b6106486020830186610391565b818103604083015261065a8185610426565b90506106696060830184610617565b95945050505050565b600061067d826104aa565b9050919050565b61068d81610672565b82525050565b60006080820190506106a86000830187610684565b6106b56020830186610378565b6106c26040830185610391565b81810360608301526106d48184610426565b905095945050505050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61072d826106e4565b810181811067ffffffffffffffff8211171561074c5761074b6106f5565b5b80604052505050565b600061075f610583565b905061076b8282610724565b919050565b61077981610672565b811461078457600080fd5b50565b60008151905061079681610770565b92915050565b60006107a782610672565b9050919050565b6107b78161079c565b81146107c257600080fd5b50565b6000815190506107d4816107ae565b92915050565b60008115159050919050565b6107ef816107da565b81146107fa57600080fd5b50565b60008151905061080c816107e6565b92915050565b600060e08284031215610828576108276106df565b5b61083260e0610755565b90506000610842848285016107fd565b6000830152506020610856848285016107fd565b602083015250604061086a848285016107fd565b604083015250606061087e848285016107fd565b6060830152506080610892848285016107fd565b60808301525060a06108a6848285016105a9565b60a08301525060c06108ba848285016105a9565b60c08301525092915050565b6108cf8161033a565b81146108da57600080fd5b50565b6000815190506108ec816108c6565b92915050565b60006102008284031215610909576109086106df565b5b610914610140610755565b9050600061092484828501610787565b600083015250602061093884828501610787565b602083015250604061094c848285016107c5565b6040830152506060610960848285016107fd565b606083015250608061097484828501610812565b608083015250610160610989848285016108dd565b60a08301525061018061099e848285016108dd565b60c0830152506101a06109b3848285016105a9565b60e0830152506101c06109c8848285016105a9565b610100830152506101e06109de848285016105a9565b6101208301525092915050565b60006102008284031215610a0257610a0161058d565b5b6000610a10848285016108f2565b9150509291505056fea264697066735822122022a2401c79bcff65b62264f5622b6e4876c12242030d1441667347ff996e711264736f6c63430008100033513a446964207468652074656d7065726174757265206f6e207468652032357468206f66204a756c79203230323220696e204d616e68617474616e204e5920657863656564203335633f20413a3120666f72207965732e203020666f72206e6f2e",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH20 0xA5B9D8A0B0FA04BA71BDD68069661ED5C0848884 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x5945535F4F525F4E4F5F51554552590000000000000000000000000000000000 PUSH1 0x1 SSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x61 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xE80 PUSH1 0x61 SWAP2 CODECOPY PUSH1 0x2 SWAP1 DUP2 PUSH3 0xA6 SWAP2 SWAP1 PUSH3 0x33A JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x3 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x421 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x142 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x158 JUMPI PUSH3 0x157 PUSH3 0xFA JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1C2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x183 JUMP JUMPDEST PUSH3 0x1CE DUP7 DUP4 PUSH3 0x183 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x21B PUSH3 0x215 PUSH3 0x20F DUP5 PUSH3 0x1E6 JUMP JUMPDEST PUSH3 0x1F0 JUMP JUMPDEST PUSH3 0x1E6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x237 DUP4 PUSH3 0x1FA JUMP JUMPDEST PUSH3 0x24F PUSH3 0x246 DUP3 PUSH3 0x222 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x190 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x266 PUSH3 0x257 JUMP JUMPDEST PUSH3 0x273 DUP2 DUP5 DUP5 PUSH3 0x22C JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x29B JUMPI PUSH3 0x28F PUSH1 0x0 DUP3 PUSH3 0x25C JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x279 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2EA JUMPI PUSH3 0x2B4 DUP2 PUSH3 0x15E JUMP JUMPDEST PUSH3 0x2BF DUP5 PUSH3 0x173 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2CF JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2E7 PUSH3 0x2DE DUP6 PUSH3 0x173 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x278 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x30F PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2EF JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32A DUP4 DUP4 PUSH3 0x2FC JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x345 DUP3 PUSH3 0xC0 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x361 JUMPI PUSH3 0x360 PUSH3 0xCB JUMP JUMPDEST JUMPDEST PUSH3 0x36D DUP3 SLOAD PUSH3 0x129 JUMP JUMPDEST PUSH3 0x37A DUP3 DUP3 DUP6 PUSH3 0x29F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3B2 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x39D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3A9 DUP6 DUP3 PUSH3 0x31C JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x419 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3C2 DUP7 PUSH3 0x15E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3EC JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3C5 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x40C JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x408 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2FC JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA4F DUP1 PUSH3 0x431 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x606DEECD EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xF25FFB20 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xFA776152 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x78 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x65 SWAP2 SWAP1 PUSH2 0x353 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x76 PUSH2 0x290 JUMP JUMPDEST STOP JUMPDEST TIMESTAMP PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xB4FBF271143F4FBF7B91A5DED31805E42B2208D6 SWAP1 POP PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x11DF92F1 PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x529 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x142 SWAP2 SWAP1 PUSH2 0x5BE JUMP JUMPDEST POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x473C45FE PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH1 0x1E PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x626 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9904F9B ADDRESS PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x245 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x693 JUMP JUMPDEST PUSH2 0x200 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x263 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x287 SWAP2 SWAP1 PUSH2 0x9EB JUMP JUMPDEST PUSH1 0xC0 ADD MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5E9A79A9 ADDRESS PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F4 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x313 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x337 SWAP2 SWAP1 PUSH2 0x5BE JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34D DUP2 PUSH2 0x33A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x368 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x344 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x381 DUP2 PUSH2 0x36E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x39A DUP2 PUSH2 0x387 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x3E7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3FA JUMPI PUSH2 0x3F9 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x433 DUP2 PUSH2 0x3CF JUMP JUMPDEST PUSH2 0x43D DUP2 DUP7 PUSH2 0x400 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x458 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x46E JUMPI PUSH2 0x4A1 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x4A1 JUMP JUMPDEST PUSH2 0x477 DUP6 PUSH2 0x411 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x499 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x47A JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4EF PUSH2 0x4EA PUSH2 0x4E5 DUP5 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x4AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x501 DUP3 PUSH2 0x4D4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x513 DUP3 PUSH2 0x4F6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x523 DUP2 PUSH2 0x508 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x53E PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x378 JUMP JUMPDEST PUSH2 0x54B PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x391 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x55D DUP2 DUP7 PUSH2 0x426 JUMP JUMPDEST SWAP1 POP PUSH2 0x56C PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x51A JUMP JUMPDEST PUSH2 0x579 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x391 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59B DUP2 PUSH2 0x387 JUMP JUMPDEST DUP2 EQ PUSH2 0x5A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x5B8 DUP2 PUSH2 0x592 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D4 JUMPI PUSH2 0x5D3 PUSH2 0x58D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x5E2 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x610 PUSH2 0x60B PUSH2 0x606 DUP5 PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x387 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x620 DUP2 PUSH2 0x5F5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x63B PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x378 JUMP JUMPDEST PUSH2 0x648 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x391 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x65A DUP2 DUP6 PUSH2 0x426 JUMP JUMPDEST SWAP1 POP PUSH2 0x669 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x617 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67D DUP3 PUSH2 0x4AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x68D DUP2 PUSH2 0x672 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x6A8 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x6B5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x378 JUMP JUMPDEST PUSH2 0x6C2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x391 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x6D4 DUP2 DUP5 PUSH2 0x426 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x72D DUP3 PUSH2 0x6E4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x74C JUMPI PUSH2 0x74B PUSH2 0x6F5 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x75F PUSH2 0x583 JUMP JUMPDEST SWAP1 POP PUSH2 0x76B DUP3 DUP3 PUSH2 0x724 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x779 DUP2 PUSH2 0x672 JUMP JUMPDEST DUP2 EQ PUSH2 0x784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x796 DUP2 PUSH2 0x770 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A7 DUP3 PUSH2 0x672 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7B7 DUP2 PUSH2 0x79C JUMP JUMPDEST DUP2 EQ PUSH2 0x7C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x7D4 DUP2 PUSH2 0x7AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7EF DUP2 PUSH2 0x7DA JUMP JUMPDEST DUP2 EQ PUSH2 0x7FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x80C DUP2 PUSH2 0x7E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x828 JUMPI PUSH2 0x827 PUSH2 0x6DF JUMP JUMPDEST JUMPDEST PUSH2 0x832 PUSH1 0xE0 PUSH2 0x755 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x842 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x856 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x86A DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x87E DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x892 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x8A6 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x8BA DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8CF DUP2 PUSH2 0x33A JUMP JUMPDEST DUP2 EQ PUSH2 0x8DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x8EC DUP2 PUSH2 0x8C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x909 JUMPI PUSH2 0x908 PUSH2 0x6DF JUMP JUMPDEST JUMPDEST PUSH2 0x914 PUSH2 0x140 PUSH2 0x755 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x924 DUP5 DUP3 DUP6 ADD PUSH2 0x787 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x938 DUP5 DUP3 DUP6 ADD PUSH2 0x787 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x94C DUP5 DUP3 DUP6 ADD PUSH2 0x7C5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x960 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x974 DUP5 DUP3 DUP6 ADD PUSH2 0x812 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH2 0x160 PUSH2 0x989 DUP5 DUP3 DUP6 ADD PUSH2 0x8DD JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH2 0x180 PUSH2 0x99E DUP5 DUP3 DUP6 ADD PUSH2 0x8DD JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH2 0x1A0 PUSH2 0x9B3 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x1C0 PUSH2 0x9C8 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x1E0 PUSH2 0x9DE DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA02 JUMPI PUSH2 0xA01 PUSH2 0x58D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA10 DUP5 DUP3 DUP6 ADD PUSH2 0x8F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 LOG2 BLOCKHASH SHR PUSH26 0xBCFF65B62264F5622B6E4876C12242030D1441667347FF996E71 SLT PUSH5 0x736F6C6343 STOP ADDMOD LT STOP CALLER MLOAD GASPRICE DIFFICULTY PUSH10 0x64207468652074656D70 PUSH6 0x726174757265 KECCAK256 PUSH16 0x6E207468652032357468206F66204A75 PUSH13 0x79203230323220696E204D616E PUSH9 0x617474616E204E5920 PUSH6 0x786365656420 CALLER CALLDATALOAD PUSH4 0x3F20413A BALANCE KECCAK256 PUSH7 0x6F72207965732E KECCAK256 ADDRESS KECCAK256 PUSH7 0x6F72206E6F2E00 ",
"sourceMap": "516:2168:1:-:0;;;694:42;633:104;;;;;;;;;;;;;;;;;;;;865:26;844:47;;1181:106;;;;;;;;;;;;;;;;;1151:136;;;;;;;:::i;:::-;;1316:1;1294:23;;516:2168;;;;;;;;;;;;7:98:4;58:6;92:5;86:12;76:22;;7:98;;;:::o;111:180::-;159:77;156:1;149:88;256:4;253:1;246:15;280:4;277:1;270:15;297:180;345:77;342:1;335:88;442:4;439:1;432:15;466:4;463:1;456:15;483:320;527:6;564:1;558:4;554:12;544:22;;611:1;605:4;601:12;632:18;622:81;;688:4;680:6;676:17;666:27;;622:81;750:2;742:6;739:14;719:18;716:38;713:84;;769:18;;:::i;:::-;713:84;534:269;483:320;;;:::o;809:140::-;857:4;880:3;872:11;;903:3;900:1;893:14;937:4;934:1;924:18;916:26;;809:140;;;:::o;955:93::-;992:6;1039:2;1034;1027:5;1023:14;1019:23;1009:33;;955:93;;;:::o;1054:107::-;1098:8;1148:5;1142:4;1138:16;1117:37;;1054:107;;;;:::o;1167:393::-;1236:6;1286:1;1274:10;1270:18;1309:97;1339:66;1328:9;1309:97;:::i;:::-;1427:39;1457:8;1446:9;1427:39;:::i;:::-;1415:51;;1499:4;1495:9;1488:5;1484:21;1475:30;;1548:4;1538:8;1534:19;1527:5;1524:30;1514:40;;1243:317;;1167:393;;;;;:::o;1566:77::-;1603:7;1632:5;1621:16;;1566:77;;;:::o;1649:60::-;1677:3;1698:5;1691:12;;1649:60;;;:::o;1715:142::-;1765:9;1798:53;1816:34;1825:24;1843:5;1825:24;:::i;:::-;1816:34;:::i;:::-;1798:53;:::i;:::-;1785:66;;1715:142;;;:::o;1863:75::-;1906:3;1927:5;1920:12;;1863:75;;;:::o;1944:269::-;2054:39;2085:7;2054:39;:::i;:::-;2115:91;2164:41;2188:16;2164:41;:::i;:::-;2156:6;2149:4;2143:11;2115:91;:::i;:::-;2109:4;2102:105;2020:193;1944:269;;;:::o;2219:73::-;2264:3;2219:73;:::o;2298:189::-;2375:32;;:::i;:::-;2416:65;2474:6;2466;2460:4;2416:65;:::i;:::-;2351:136;2298:189;;:::o;2493:186::-;2553:120;2570:3;2563:5;2560:14;2553:120;;;2624:39;2661:1;2654:5;2624:39;:::i;:::-;2597:1;2590:5;2586:13;2577:22;;2553:120;;;2493:186;;:::o;2685:541::-;2785:2;2780:3;2777:11;2774:445;;;2819:37;2850:5;2819:37;:::i;:::-;2902:29;2920:10;2902:29;:::i;:::-;2892:8;2888:44;3085:2;3073:10;3070:18;3067:49;;;3106:8;3091:23;;3067:49;3129:80;3185:22;3203:3;3185:22;:::i;:::-;3175:8;3171:37;3158:11;3129:80;:::i;:::-;2789:430;;2774:445;2685:541;;;:::o;3232:117::-;3286:8;3336:5;3330:4;3326:16;3305:37;;3232:117;;;;:::o;3355:169::-;3399:6;3432:51;3480:1;3476:6;3468:5;3465:1;3461:13;3432:51;:::i;:::-;3428:56;3513:4;3507;3503:15;3493:25;;3406:118;3355:169;;;;:::o;3529:295::-;3605:4;3751:29;3776:3;3770:4;3751:29;:::i;:::-;3743:37;;3813:3;3810:1;3806:11;3800:4;3797:21;3789:29;;3529:295;;;;:::o;3829:1390::-;3944:36;3976:3;3944:36;:::i;:::-;4045:18;4037:6;4034:30;4031:56;;;4067:18;;:::i;:::-;4031:56;4111:38;4143:4;4137:11;4111:38;:::i;:::-;4196:66;4255:6;4247;4241:4;4196:66;:::i;:::-;4289:1;4313:4;4300:17;;4345:2;4337:6;4334:14;4362:1;4357:617;;;;5018:1;5035:6;5032:77;;;5084:9;5079:3;5075:19;5069:26;5060:35;;5032:77;5135:67;5195:6;5188:5;5135:67;:::i;:::-;5129:4;5122:81;4991:222;4327:886;;4357:617;4409:4;4405:9;4397:6;4393:22;4443:36;4474:4;4443:36;:::i;:::-;4501:1;4515:208;4529:7;4526:1;4523:14;4515:208;;;4608:9;4603:3;4599:19;4593:26;4585:6;4578:42;4659:1;4651:6;4647:14;4637:24;;4706:2;4695:9;4691:18;4678:31;;4552:4;4549:1;4545:12;4540:17;;4515:208;;;4751:6;4742:7;4739:19;4736:179;;;4809:9;4804:3;4800:19;4794:26;4852:48;4894:4;4886:6;4882:17;4871:9;4852:48;:::i;:::-;4844:6;4837:64;4759:156;4736:179;4961:1;4957;4949:6;4945:14;4941:22;4935:4;4928:36;4364:610;;;4327:886;;3919:1300;;;3829:1390;;:::o;516:2168:1:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@getSettledData_174": {
"entryPoint": 478,
"id": 174,
"parameterSlots": 0,
"returnSlots": 1
},
"@requestData_140": {
"entryPoint": 120,
"id": 140,
"parameterSlots": 0,
"returnSlots": 0
},
"@settleRequest_156": {
"entryPoint": 656,
"id": 156,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_t_address_fromMemory": {
"entryPoint": 1927,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool_fromMemory": {
"entryPoint": 2045,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_contract$_IERC20_$77_fromMemory": {
"entryPoint": 1989,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_int256_fromMemory": {
"entryPoint": 2269,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_RequestSettings_$291_memory_ptr_fromMemory": {
"entryPoint": 2066,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_Request_$314_memory_ptr_fromMemory": {
"entryPoint": 2290,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 1449,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_struct$_Request_$314_memory_ptr_fromMemory": {
"entryPoint": 2539,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 1470,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1668,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_fromStack": {
"entryPoint": 888,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack": {
"entryPoint": 1062,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_contract$_IERC20_$77_to_t_address_fromStack": {
"entryPoint": 1306,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_int256_to_t_int256_fromStack": {
"entryPoint": 836,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_rational_30_by_1_to_t_uint256_fromStack": {
"entryPoint": 1559,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 913,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address_t_bytes32_t_uint256_t_bytes_storage__to_t_address_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 1683,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32_t_uint256_t_bytes_storage_t_contract$_IERC20_$77_t_uint256__to_t_bytes32_t_uint256_t_bytes_memory_ptr_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 1321,
"id": null,
"parameterSlots": 6,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32_t_uint256_t_bytes_storage_t_rational_30_by_1__to_t_bytes32_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed": {
"entryPoint": 1574,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed": {
"entryPoint": 851,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1877,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1411,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_dataslot_t_bytes_storage": {
"entryPoint": 1041,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": {
"entryPoint": 1024,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1650,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 2010,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 878,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_contract$_IERC20_$77": {
"entryPoint": 1948,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_int256": {
"entryPoint": 826,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_rational_30_by_1": {
"entryPoint": 1515,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1194,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 903,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_contract$_IERC20_$77_to_t_address": {
"entryPoint": 1288,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_rational_30_by_1_to_t_uint256": {
"entryPoint": 1525,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_address": {
"entryPoint": 1270,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_uint160": {
"entryPoint": 1236,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 975,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1828,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"identity": {
"entryPoint": 1226,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 928,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1781,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f": {
"entryPoint": 1759,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1421,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1764,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 1904,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bool": {
"entryPoint": 2022,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_contract$_IERC20_$77": {
"entryPoint": 1966,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_int256": {
"entryPoint": 2246,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 1426,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:13477:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "51:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "61:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "72:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "61:7:4"
}
]
}
]
},
"name": "cleanup_t_int256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "33:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "43:7:4",
"type": ""
}
],
"src": "7:76:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "152:52:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "169:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "191:5:4"
}
],
"functionName": {
"name": "cleanup_t_int256",
"nodeType": "YulIdentifier",
"src": "174:16:4"
},
"nodeType": "YulFunctionCall",
"src": "174:23:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "162:6:4"
},
"nodeType": "YulFunctionCall",
"src": "162:36:4"
},
"nodeType": "YulExpressionStatement",
"src": "162:36:4"
}
]
},
"name": "abi_encode_t_int256_to_t_int256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "140:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "147:3:4",
"type": ""
}
],
"src": "89:115:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "306:122:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "316:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "328:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "339:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "324:3:4"
},
"nodeType": "YulFunctionCall",
"src": "324:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "316:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "394:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "407:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "418:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "403:3:4"
},
"nodeType": "YulFunctionCall",
"src": "403:17:4"
}
],
"functionName": {
"name": "abi_encode_t_int256_to_t_int256_fromStack",
"nodeType": "YulIdentifier",
"src": "352:41:4"
},
"nodeType": "YulFunctionCall",
"src": "352:69:4"
},
"nodeType": "YulExpressionStatement",
"src": "352:69:4"
}
]
},
"name": "abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "278:9:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "290:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "301:4:4",
"type": ""
}
],
"src": "210:218:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "479:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "489:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "500:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "489:7:4"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "461:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "471:7:4",
"type": ""
}
],
"src": "434:77:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "582:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "599:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "622:5:4"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "604:17:4"
},
"nodeType": "YulFunctionCall",
"src": "604:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "592:6:4"
},
"nodeType": "YulFunctionCall",
"src": "592:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "592:37:4"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "570:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "577:3:4",
"type": ""
}
],
"src": "517:118:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "686:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "696:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "707:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "696:7:4"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "668:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "678:7:4",
"type": ""
}
],
"src": "641:77:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "789:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "806:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "829:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "811:17:4"
},
"nodeType": "YulFunctionCall",
"src": "811:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "799:6:4"
},
"nodeType": "YulFunctionCall",
"src": "799:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "799:37:4"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "777:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "784:3:4",
"type": ""
}
],
"src": "724:118:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "876:152:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "893:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "896:77:4",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "886:6:4"
},
"nodeType": "YulFunctionCall",
"src": "886:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "886:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "990:1:4",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "993:4:4",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "983:6:4"
},
"nodeType": "YulFunctionCall",
"src": "983:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "983:15:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1014:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1017:4:4",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1007:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1007:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "1007:15:4"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "848:180:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1085:269:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1095:22:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1109:4:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1115:1:4",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "1105:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1105:12:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1095:6:4"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1126:38:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1156:4:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1162:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1152:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1152:12:4"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "1130:18:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1203:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1217:27:4",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1231:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1239:4:4",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1227:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1227:17:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1217:6:4"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1183:18:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1176:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1176:26:4"
},
"nodeType": "YulIf",
"src": "1173:81:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1306:42:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "1320:16:4"
},
"nodeType": "YulFunctionCall",
"src": "1320:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "1320:18:4"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1270:18:4"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1293:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1301:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1290:2:4"
},
"nodeType": "YulFunctionCall",
"src": "1290:14:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1267:2:4"
},
"nodeType": "YulFunctionCall",
"src": "1267:38:4"
},
"nodeType": "YulIf",
"src": "1264:84:4"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "1069:4:4",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1078:6:4",
"type": ""
}
],
"src": "1034:320:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1455:73:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1472:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1477:6:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1465:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1465:19:4"
},
"nodeType": "YulExpressionStatement",
"src": "1465:19:4"
},
{
"nodeType": "YulAssignment",
"src": "1493:29:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1512:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1517:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1508:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1508:14:4"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1493:11:4"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1427:3:4",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1432:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1443:11:4",
"type": ""
}
],
"src": "1360:168:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1587:87:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1597:11:4",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "1605:3:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1597:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1625:1:4",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "1628:3:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1618:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1618:14:4"
},
"nodeType": "YulExpressionStatement",
"src": "1618:14:4"
},
{
"nodeType": "YulAssignment",
"src": "1641:26:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1659:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1662:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nodeType": "YulIdentifier",
"src": "1649:9:4"
},
"nodeType": "YulFunctionCall",
"src": "1649:18:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1641:4:4"
}
]
}
]
},
"name": "array_dataslot_t_bytes_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "1574:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "1582:4:4",
"type": ""
}
],
"src": "1534:140:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1789:740:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1799:29:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1822:5:4"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "1816:5:4"
},
"nodeType": "YulFunctionCall",
"src": "1816:12:4"
},
"variables": [
{
"name": "slotValue",
"nodeType": "YulTypedName",
"src": "1803:9:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1837:50:4",
"value": {
"arguments": [
{
"name": "slotValue",
"nodeType": "YulIdentifier",
"src": "1877:9:4"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nodeType": "YulIdentifier",
"src": "1851:25:4"
},
"nodeType": "YulFunctionCall",
"src": "1851:36:4"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1841:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1896:77:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1961:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1966:6:4"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1903:57:4"
},
"nodeType": "YulFunctionCall",
"src": "1903:70:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1896:3:4"
}
]
},
{
"cases": [
{
"body": {
"nodeType": "YulBlock",
"src": "2022:157:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2075:3:4"
},
{
"arguments": [
{
"name": "slotValue",
"nodeType": "YulIdentifier",
"src": "2084:9:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2099:4:4",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "2095:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2095:9:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2080:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2080:25:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2068:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2068:38:4"
},
"nodeType": "YulExpressionStatement",
"src": "2068:38:4"
},
{
"nodeType": "YulAssignment",
"src": "2119:50:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2130:3:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2139:4:4",
"type": "",
"value": "0x20"
},
{
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2159:6:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2152:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2152:14:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2145:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2145:22:4"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "2135:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2135:33:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2126:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2126:43:4"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "2119:3:4"
}
]
}
]
},
"nodeType": "YulCase",
"src": "2015:164:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2020:1:4",
"type": "",
"value": "0"
}
},
{
"body": {
"nodeType": "YulBlock",
"src": "2195:328:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2240:52:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2286:5:4"
}
],
"functionName": {
"name": "array_dataslot_t_bytes_storage",
"nodeType": "YulIdentifier",
"src": "2255:30:4"
},
"nodeType": "YulFunctionCall",
"src": "2255:37:4"
},
"variables": [
{
"name": "dataPos",
"nodeType": "YulTypedName",
"src": "2244:7:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2305:10:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2314:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "2309:1:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2372:110:4",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2401:3:4"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2406:1:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2397:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2397:11:4"
},
{
"arguments": [
{
"name": "dataPos",
"nodeType": "YulIdentifier",
"src": "2416:7:4"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "2410:5:4"
},
"nodeType": "YulFunctionCall",
"src": "2410:14:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2390:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2390:35:4"
},
"nodeType": "YulExpressionStatement",
"src": "2390:35:4"
},
{
"nodeType": "YulAssignment",
"src": "2442:26:4",
"value": {
"arguments": [
{
"name": "dataPos",
"nodeType": "YulIdentifier",
"src": "2457:7:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2466:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2453:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2453:15:4"
},
"variableNames": [
{
"name": "dataPos",
"nodeType": "YulIdentifier",
"src": "2442:7:4"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2339:1:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2342:6:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2336:2:4"
},
"nodeType": "YulFunctionCall",
"src": "2336:13:4"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2350:21:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2352:17:4",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2361:1:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2364:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2357:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2357:12:4"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2352:1:4"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2332:3:4",
"statements": []
},
"src": "2328:154:4"
},
{
"nodeType": "YulAssignment",
"src": "2495:18:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2506:3:4"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2511:1:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2502:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2502:11:4"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "2495:3:4"
}
]
}
]
},
"nodeType": "YulCase",
"src": "2188:335:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2193:1:4",
"type": "",
"value": "1"
}
}
],
"expression": {
"arguments": [
{
"name": "slotValue",
"nodeType": "YulIdentifier",
"src": "1993:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2004:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1989:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1989:17:4"
},
"nodeType": "YulSwitch",
"src": "1982:541:4"
}
]
},
"name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1770:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1777:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "1785:3:4",
"type": ""
}
],
"src": "1702:827:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2580:81:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2590:65:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2605:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2612:42:4",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2601:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2601:54:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2590:7:4"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2562:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2572:7:4",
"type": ""
}
],
"src": "2535:126:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2699:28:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2709:12:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2716:5:4"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "2709:3:4"
}
]
}
]
},
"name": "identity",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2685:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "2695:3:4",
"type": ""
}
],
"src": "2667:60:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2793:82:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2803:66:4",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2861:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2843:17:4"
},
"nodeType": "YulFunctionCall",
"src": "2843:24:4"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "2834:8:4"
},
"nodeType": "YulFunctionCall",
"src": "2834:34:4"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2816:17:4"
},
"nodeType": "YulFunctionCall",
"src": "2816:53:4"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "2803:9:4"
}
]
}
]
},
"name": "convert_t_uint160_to_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2773:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "2783:9:4",
"type": ""
}
],
"src": "2733:142:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2941:66:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2951:50:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2995:5:4"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_uint160",
"nodeType": "YulIdentifier",
"src": "2964:30:4"
},
"nodeType": "YulFunctionCall",
"src": "2964:37:4"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "2951:9:4"
}
]
}
]
},
"name": "convert_t_uint160_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2921:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "2931:9:4",
"type": ""
}
],
"src": "2881:126:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3086:66:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3096:50:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3140:5:4"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_address",
"nodeType": "YulIdentifier",
"src": "3109:30:4"
},
"nodeType": "YulFunctionCall",
"src": "3109:37:4"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "3096:9:4"
}
]
}
]
},
"name": "convert_t_contract$_IERC20_$77_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3066:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "3076:9:4",
"type": ""
}
],
"src": "3013:139:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3236:79:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3253:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3302:5:4"
}
],
"functionName": {
"name": "convert_t_contract$_IERC20_$77_to_t_address",
"nodeType": "YulIdentifier",
"src": "3258:43:4"
},
"nodeType": "YulFunctionCall",
"src": "3258:50:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3246:6:4"
},
"nodeType": "YulFunctionCall",
"src": "3246:63:4"
},
"nodeType": "YulExpressionStatement",
"src": "3246:63:4"
}
]
},
"name": "abi_encode_t_contract$_IERC20_$77_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3224:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3231:3:4",
"type": ""
}
],
"src": "3158:157:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3559:533:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3569:27:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3581:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3592:3:4",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3577:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3577:19:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3569:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3650:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3663:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3674:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3659:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3659:17:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "3606:43:4"
},
"nodeType": "YulFunctionCall",
"src": "3606:71:4"
},
"nodeType": "YulExpressionStatement",
"src": "3606:71:4"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3731:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3744:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3755:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3740:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3740:18:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "3687:43:4"
},
"nodeType": "YulFunctionCall",
"src": "3687:72:4"
},
"nodeType": "YulExpressionStatement",
"src": "3687:72:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3780:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3791:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3776:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3776:18:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3800:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3806:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3796:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3796:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3769:6:4"
},
"nodeType": "YulFunctionCall",
"src": "3769:48:4"
},
"nodeType": "YulExpressionStatement",
"src": "3769:48:4"
},
{
"nodeType": "YulAssignment",
"src": "3826:81:4",
"value": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3893:6:4"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3902:4:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3834:58:4"
},
"nodeType": "YulFunctionCall",
"src": "3834:73:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3826:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "3974:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3987:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3998:2:4",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3983:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3983:18:4"
}
],
"functionName": {
"name": "abi_encode_t_contract$_IERC20_$77_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3917:56:4"
},
"nodeType": "YulFunctionCall",
"src": "3917:85:4"
},
"nodeType": "YulExpressionStatement",
"src": "3917:85:4"
},
{
"expression": {
"arguments": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "4056:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4069:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4080:3:4",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4065:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4065:19:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "4012:43:4"
},
"nodeType": "YulFunctionCall",
"src": "4012:73:4"
},
"nodeType": "YulExpressionStatement",
"src": "4012:73:4"
}
]
},
"name": "abi_encode_tuple_t_bytes32_t_uint256_t_bytes_storage_t_contract$_IERC20_$77_t_uint256__to_t_bytes32_t_uint256_t_bytes_memory_ptr_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3499:9:4",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "3511:6:4",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "3519:6:4",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "3527:6:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3535:6:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3543:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3554:4:4",
"type": ""
}
],
"src": "3321:771:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4138:35:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4148:19:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4164:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4158:5:4"
},
"nodeType": "YulFunctionCall",
"src": "4158:9:4"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4148:6:4"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4131:6:4",
"type": ""
}
],
"src": "4098:75:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4268:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4285:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4288:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4278:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4278:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "4278:12:4"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "4179:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4391:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4408:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4411:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4401:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4401:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "4401:12:4"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "4302:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4468:79:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4525:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4534:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4537:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4527:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4527:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "4527:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4491:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4516:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4498:17:4"
},
"nodeType": "YulFunctionCall",
"src": "4498:24:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4488:2:4"
},
"nodeType": "YulFunctionCall",
"src": "4488:35:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4481:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4481:43:4"
},
"nodeType": "YulIf",
"src": "4478:63:4"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4461:5:4",
"type": ""
}
],
"src": "4425:122:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4616:80:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4626:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4641:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4635:5:4"
},
"nodeType": "YulFunctionCall",
"src": "4635:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4626:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4684:5:4"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "4657:26:4"
},
"nodeType": "YulFunctionCall",
"src": "4657:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "4657:33:4"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4594:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4602:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4610:5:4",
"type": ""
}
],
"src": "4553:143:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4779:274:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4825:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "4827:77:4"
},
"nodeType": "YulFunctionCall",
"src": "4827:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "4827:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4800:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4809:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4796:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4796:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4821:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "4792:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4792:32:4"
},
"nodeType": "YulIf",
"src": "4789:119:4"
},
{
"nodeType": "YulBlock",
"src": "4918:128:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4933:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4947:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4937:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4962:74:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5008:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5019:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5004:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5004:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5028:7:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "4972:31:4"
},
"nodeType": "YulFunctionCall",
"src": "4972:64:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4962:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4749:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "4760:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4772:6:4",
"type": ""
}
],
"src": "4702:351:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5113:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5123:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5134:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "5123:7:4"
}
]
}
]
},
"name": "cleanup_t_rational_30_by_1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5095:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "5105:7:4",
"type": ""
}
],
"src": "5059:86:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5220:91:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5230:75:4",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5297:5:4"
}
],
"functionName": {
"name": "cleanup_t_rational_30_by_1",
"nodeType": "YulIdentifier",
"src": "5270:26:4"
},
"nodeType": "YulFunctionCall",
"src": "5270:33:4"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "5261:8:4"
},
"nodeType": "YulFunctionCall",
"src": "5261:43:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "5243:17:4"
},
"nodeType": "YulFunctionCall",
"src": "5243:62:4"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "5230:9:4"
}
]
}
]
},
"name": "convert_t_rational_30_by_1_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5200:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "5210:9:4",
"type": ""
}
],
"src": "5151:160:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5391:75:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5408:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5453:5:4"
}
],
"functionName": {
"name": "convert_t_rational_30_by_1_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "5413:39:4"
},
"nodeType": "YulFunctionCall",
"src": "5413:46:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5401:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5401:59:4"
},
"nodeType": "YulExpressionStatement",
"src": "5401:59:4"
}
]
},
"name": "abi_encode_t_rational_30_by_1_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5379:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5386:3:4",
"type": ""
}
],
"src": "5317:149:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5678:446:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5688:27:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5700:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5711:3:4",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5696:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5696:19:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5688:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5769:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5782:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5793:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5778:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5778:17:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "5725:43:4"
},
"nodeType": "YulFunctionCall",
"src": "5725:71:4"
},
"nodeType": "YulExpressionStatement",
"src": "5725:71:4"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5850:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5863:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5874:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5859:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5859:18:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "5806:43:4"
},
"nodeType": "YulFunctionCall",
"src": "5806:72:4"
},
"nodeType": "YulExpressionStatement",
"src": "5806:72:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5899:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5910:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5895:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5895:18:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5919:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5925:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5915:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5915:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5888:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5888:48:4"
},
"nodeType": "YulExpressionStatement",
"src": "5888:48:4"
},
{
"nodeType": "YulAssignment",
"src": "5945:81:4",
"value": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6012:6:4"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6021:4:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5953:58:4"
},
"nodeType": "YulFunctionCall",
"src": "5953:73:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5945:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "6089:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6102:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6113:2:4",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6098:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6098:18:4"
}
],
"functionName": {
"name": "abi_encode_t_rational_30_by_1_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "6036:52:4"
},
"nodeType": "YulFunctionCall",
"src": "6036:81:4"
},
"nodeType": "YulExpressionStatement",
"src": "6036:81:4"
}
]
},
"name": "abi_encode_tuple_t_bytes32_t_uint256_t_bytes_storage_t_rational_30_by_1__to_t_bytes32_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5626:9:4",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "5638:6:4",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5646:6:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5654:6:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5662:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5673:4:4",
"type": ""
}
],
"src": "5472:652:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6175:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6185:35:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6214:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "6196:17:4"
},
"nodeType": "YulFunctionCall",
"src": "6196:24:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "6185:7:4"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6157:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "6167:7:4",
"type": ""
}
],
"src": "6130:96:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6297:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6314:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6337:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "6319:17:4"
},
"nodeType": "YulFunctionCall",
"src": "6319:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6307:6:4"
},
"nodeType": "YulFunctionCall",
"src": "6307:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "6307:37:4"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6285:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6292:3:4",
"type": ""
}
],
"src": "6232:118:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6553:437:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6563:27:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6575:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6586:3:4",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6571:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6571:19:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6563:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6644:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6657:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6668:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6653:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6653:17:4"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "6600:43:4"
},
"nodeType": "YulFunctionCall",
"src": "6600:71:4"
},
"nodeType": "YulExpressionStatement",
"src": "6600:71:4"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "6725:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6738:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6749:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6734:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6734:18:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "6681:43:4"
},
"nodeType": "YulFunctionCall",
"src": "6681:72:4"
},
"nodeType": "YulExpressionStatement",
"src": "6681:72:4"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6807:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6820:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6831:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6816:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6816:18:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "6763:43:4"
},
"nodeType": "YulFunctionCall",
"src": "6763:72:4"
},
"nodeType": "YulExpressionStatement",
"src": "6763:72:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6856:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6867:2:4",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6852:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6852:18:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6876:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6882:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6872:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6872:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6845:6:4"
},
"nodeType": "YulFunctionCall",
"src": "6845:48:4"
},
"nodeType": "YulExpressionStatement",
"src": "6845:48:4"
},
{
"nodeType": "YulAssignment",
"src": "6902:81:4",
"value": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "6969:6:4"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6978:4:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6910:58:4"
},
"nodeType": "YulFunctionCall",
"src": "6910:73:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6902:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_address_t_bytes32_t_uint256_t_bytes_storage__to_t_address_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6501:9:4",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "6513:6:4",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "6521:6:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "6529:6:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6537:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6548:4:4",
"type": ""
}
],
"src": "6356:634:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7085:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7102:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7105:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7095:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7095:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "7095:12:4"
}
]
},
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nodeType": "YulFunctionDefinition",
"src": "6996:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7167:54:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7177:38:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7195:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7202:2:4",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7191:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7191:14:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7211:2:4",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "7207:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7207:7:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7187:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7187:28:4"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "7177:6:4"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7150:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "7160:6:4",
"type": ""
}
],
"src": "7119:102:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7255:152:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7272:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7275:77:4",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7265:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7265:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "7265:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7369:1:4",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7372:4:4",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7362:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7362:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "7362:15:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7393:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7396:4:4",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7386:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7386:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "7386:15:4"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "7227:180:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7456:238:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7466:58:4",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7488:6:4"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "7518:4:4"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "7496:21:4"
},
"nodeType": "YulFunctionCall",
"src": "7496:27:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7484:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7484:40:4"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "7470:10:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7635:22:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "7637:16:4"
},
"nodeType": "YulFunctionCall",
"src": "7637:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "7637:18:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "7578:10:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7590:18:4",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7575:2:4"
},
"nodeType": "YulFunctionCall",
"src": "7575:34:4"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "7614:10:4"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7626:6:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "7611:2:4"
},
"nodeType": "YulFunctionCall",
"src": "7611:22:4"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "7572:2:4"
},
"nodeType": "YulFunctionCall",
"src": "7572:62:4"
},
"nodeType": "YulIf",
"src": "7569:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7673:2:4",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "7677:10:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7666:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7666:22:4"
},
"nodeType": "YulExpressionStatement",
"src": "7666:22:4"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "7442:6:4",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "7450:4:4",
"type": ""
}
],
"src": "7413:281:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7741:88:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7751:30:4",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "7761:18:4"
},
"nodeType": "YulFunctionCall",
"src": "7761:20:4"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7751:6:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7810:6:4"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "7818:4:4"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "7790:19:4"
},
"nodeType": "YulFunctionCall",
"src": "7790:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "7790:33:4"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "7725:4:4",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "7734:6:4",
"type": ""
}
],
"src": "7700:129:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7924:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7941:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7944:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7934:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7934:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "7934:12:4"
}
]
},
"name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421",
"nodeType": "YulFunctionDefinition",
"src": "7835:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8001:79:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8058:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8067:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8070:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8060:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8060:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "8060:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8024:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8049:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "8031:17:4"
},
"nodeType": "YulFunctionCall",
"src": "8031:24:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "8021:2:4"
},
"nodeType": "YulFunctionCall",
"src": "8021:35:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8014:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8014:43:4"
},
"nodeType": "YulIf",
"src": "8011:63:4"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7994:5:4",
"type": ""
}
],
"src": "7958:122:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8149:80:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8159:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8174:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "8168:5:4"
},
"nodeType": "YulFunctionCall",
"src": "8168:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8159:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8217:5:4"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "8190:26:4"
},
"nodeType": "YulFunctionCall",
"src": "8190:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "8190:33:4"
}
]
},
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8127:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8135:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8143:5:4",
"type": ""
}
],
"src": "8086:143:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8293:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8303:35:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8332:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "8314:17:4"
},
"nodeType": "YulFunctionCall",
"src": "8314:24:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "8303:7:4"
}
]
}
]
},
"name": "cleanup_t_contract$_IERC20_$77",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8275:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "8285:7:4",
"type": ""
}
],
"src": "8235:109:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8406:92:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8476:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8485:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8488:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8478:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8478:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "8478:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8429:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8467:5:4"
}
],
"functionName": {
"name": "cleanup_t_contract$_IERC20_$77",
"nodeType": "YulIdentifier",
"src": "8436:30:4"
},
"nodeType": "YulFunctionCall",
"src": "8436:37:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "8426:2:4"
},
"nodeType": "YulFunctionCall",
"src": "8426:48:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8419:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8419:56:4"
},
"nodeType": "YulIf",
"src": "8416:76:4"
}
]
},
"name": "validator_revert_t_contract$_IERC20_$77",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8399:5:4",
"type": ""
}
],
"src": "8350:148:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8580:93:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8590:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8605:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "8599:5:4"
},
"nodeType": "YulFunctionCall",
"src": "8599:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8590:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8661:5:4"
}
],
"functionName": {
"name": "validator_revert_t_contract$_IERC20_$77",
"nodeType": "YulIdentifier",
"src": "8621:39:4"
},
"nodeType": "YulFunctionCall",
"src": "8621:46:4"
},
"nodeType": "YulExpressionStatement",
"src": "8621:46:4"
}
]
},
"name": "abi_decode_t_contract$_IERC20_$77_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8558:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8566:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8574:5:4",
"type": ""
}
],
"src": "8504:169:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8721:48:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8731:32:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8756:5:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8749:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8749:13:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8742:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8742:21:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "8731:7:4"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8703:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "8713:7:4",
"type": ""
}
],
"src": "8679:90:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8815:76:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8869:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8878:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8881:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8871:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8871:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "8871:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8838:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8860:5:4"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "8845:14:4"
},
"nodeType": "YulFunctionCall",
"src": "8845:21:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "8835:2:4"
},
"nodeType": "YulFunctionCall",
"src": "8835:32:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8828:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8828:40:4"
},
"nodeType": "YulIf",
"src": "8825:60:4"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8808:5:4",
"type": ""
}
],
"src": "8775:116:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8957:77:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8967:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8982:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "8976:5:4"
},
"nodeType": "YulFunctionCall",
"src": "8976:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8967:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9022:5:4"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "8998:23:4"
},
"nodeType": "YulFunctionCall",
"src": "8998:30:4"
},
"nodeType": "YulExpressionStatement",
"src": "8998:30:4"
}
]
},
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8935:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8943:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8951:5:4",
"type": ""
}
],
"src": "8897:137:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9196:1447:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "9240:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nodeType": "YulIdentifier",
"src": "9242:77:4"
},
"nodeType": "YulFunctionCall",
"src": "9242:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "9242:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9217:3:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9222:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9213:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9213:19:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9234:4:4",
"type": "",
"value": "0xe0"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "9209:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9209:30:4"
},
"nodeType": "YulIf",
"src": "9206:117:4"
},
{
"nodeType": "YulAssignment",
"src": "9332:30:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9357:4:4",
"type": "",
"value": "0xe0"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "9341:15:4"
},
"nodeType": "YulFunctionCall",
"src": "9341:21:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9332:5:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "9372:164:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9413:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9427:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9417:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9453:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9460:4:4",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9449:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9449:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9500:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9511:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9496:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9496:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9520:3:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "9467:28:4"
},
"nodeType": "YulFunctionCall",
"src": "9467:57:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9442:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9442:83:4"
},
"nodeType": "YulExpressionStatement",
"src": "9442:83:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "9546:170:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9592:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9606:2:4",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9596:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9633:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9640:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9629:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9629:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9680:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9691:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9676:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9676:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9700:3:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "9647:28:4"
},
"nodeType": "YulFunctionCall",
"src": "9647:57:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9622:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9622:83:4"
},
"nodeType": "YulExpressionStatement",
"src": "9622:83:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "9726:178:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9780:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9794:2:4",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9784:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9821:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9828:4:4",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9817:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9817:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9868:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9879:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9864:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9864:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9888:3:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "9835:28:4"
},
"nodeType": "YulFunctionCall",
"src": "9835:57:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9810:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9810:83:4"
},
"nodeType": "YulExpressionStatement",
"src": "9810:83:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "9914:178:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9968:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9982:2:4",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9972:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10009:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10016:4:4",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10005:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10005:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10056:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10067:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10052:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10052:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10076:3:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "10023:28:4"
},
"nodeType": "YulFunctionCall",
"src": "10023:57:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9998:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9998:83:4"
},
"nodeType": "YulExpressionStatement",
"src": "9998:83:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "10102:178:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10155:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10169:3:4",
"type": "",
"value": "128"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10159:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10197:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10204:4:4",
"type": "",
"value": "0x80"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10193:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10193:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10244:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10255:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10240:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10240:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10264:3:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "10211:28:4"
},
"nodeType": "YulFunctionCall",
"src": "10211:57:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10186:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10186:83:4"
},
"nodeType": "YulExpressionStatement",
"src": "10186:83:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "10290:163:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10325:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10339:3:4",
"type": "",
"value": "160"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10329:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10367:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10374:4:4",
"type": "",
"value": "0xa0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10363:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10363:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10417:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10428:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10413:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10413:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10437:3:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "10381:31:4"
},
"nodeType": "YulFunctionCall",
"src": "10381:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10356:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10356:86:4"
},
"nodeType": "YulExpressionStatement",
"src": "10356:86:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "10463:173:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10508:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10522:3:4",
"type": "",
"value": "192"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10512:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10550:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10557:4:4",
"type": "",
"value": "0xc0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10546:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10546:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10600:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10611:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10596:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10596:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10620:3:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "10564:31:4"
},
"nodeType": "YulFunctionCall",
"src": "10564:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10539:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10539:86:4"
},
"nodeType": "YulExpressionStatement",
"src": "10539:86:4"
}
]
}
]
},
"name": "abi_decode_t_struct$_RequestSettings_$291_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9171:9:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "9182:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9190:5:4",
"type": ""
}
],
"src": "9098:1545:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10691:78:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "10747:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10756:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10759:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "10749:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10749:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "10749:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10714:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10738:5:4"
}
],
"functionName": {
"name": "cleanup_t_int256",
"nodeType": "YulIdentifier",
"src": "10721:16:4"
},
"nodeType": "YulFunctionCall",
"src": "10721:23:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "10711:2:4"
},
"nodeType": "YulFunctionCall",
"src": "10711:34:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "10704:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10704:42:4"
},
"nodeType": "YulIf",
"src": "10701:62:4"
}
]
},
"name": "validator_revert_t_int256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "10684:5:4",
"type": ""
}
],
"src": "10649:120:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10837:79:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10847:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10862:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "10856:5:4"
},
"nodeType": "YulFunctionCall",
"src": "10856:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10847:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10904:5:4"
}
],
"functionName": {
"name": "validator_revert_t_int256",
"nodeType": "YulIdentifier",
"src": "10878:25:4"
},
"nodeType": "YulFunctionCall",
"src": "10878:32:4"
},
"nodeType": "YulExpressionStatement",
"src": "10878:32:4"
}
]
},
"name": "abi_decode_t_int256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10815:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "10823:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "10831:5:4",
"type": ""
}
],
"src": "10775:141:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11062:2006:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11108:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nodeType": "YulIdentifier",
"src": "11110:77:4"
},
"nodeType": "YulFunctionCall",
"src": "11110:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "11110:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11083:3:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11088:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11079:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11079:19:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11100:6:4",
"type": "",
"value": "0x0200"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "11075:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11075:32:4"
},
"nodeType": "YulIf",
"src": "11072:119:4"
},
{
"nodeType": "YulAssignment",
"src": "11200:32:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11225:6:4",
"type": "",
"value": "0x0140"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "11209:15:4"
},
"nodeType": "YulFunctionCall",
"src": "11209:23:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11200:5:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "11242:165:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11281:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11295:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11285:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11321:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11328:4:4",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11317:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11317:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11371:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11382:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11367:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11367:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11391:3:4"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "11335:31:4"
},
"nodeType": "YulFunctionCall",
"src": "11335:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11310:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11310:86:4"
},
"nodeType": "YulExpressionStatement",
"src": "11310:86:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "11417:166:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11456:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11470:2:4",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11460:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11497:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11504:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11493:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11493:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11547:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11558:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11543:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11543:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11567:3:4"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "11511:31:4"
},
"nodeType": "YulFunctionCall",
"src": "11511:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11486:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11486:86:4"
},
"nodeType": "YulExpressionStatement",
"src": "11486:86:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "11593:179:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11632:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11646:2:4",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11636:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11673:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11680:4:4",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11669:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11669:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11736:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11747:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11732:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11732:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11756:3:4"
}
],
"functionName": {
"name": "abi_decode_t_contract$_IERC20_$77_fromMemory",
"nodeType": "YulIdentifier",
"src": "11687:44:4"
},
"nodeType": "YulFunctionCall",
"src": "11687:73:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11662:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11662:99:4"
},
"nodeType": "YulExpressionStatement",
"src": "11662:99:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "11782:162:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11820:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11834:2:4",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11824:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11861:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11868:4:4",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11857:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11857:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11908:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11919:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11904:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11904:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11928:3:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "11875:28:4"
},
"nodeType": "YulFunctionCall",
"src": "11875:57:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11850:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11850:83:4"
},
"nodeType": "YulExpressionStatement",
"src": "11850:83:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "11954:206:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12000:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12014:3:4",
"type": "",
"value": "128"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12004:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12042:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12049:4:4",
"type": "",
"value": "0x80"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12038:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12038:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12124:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12135:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12120:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12120:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12144:3:4"
}
],
"functionName": {
"name": "abi_decode_t_struct$_RequestSettings_$291_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "12056:63:4"
},
"nodeType": "YulFunctionCall",
"src": "12056:92:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12031:6:4"
},
"nodeType": "YulFunctionCall",
"src": "12031:118:4"
},
"nodeType": "YulExpressionStatement",
"src": "12031:118:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "12170:171:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12214:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12228:3:4",
"type": "",
"value": "352"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12218:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12256:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12263:4:4",
"type": "",
"value": "0xa0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12252:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12252:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12305:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12316:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12301:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12301:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12325:3:4"
}
],
"functionName": {
"name": "abi_decode_t_int256_fromMemory",
"nodeType": "YulIdentifier",
"src": "12270:30:4"
},
"nodeType": "YulFunctionCall",
"src": "12270:59:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12245:6:4"
},
"nodeType": "YulFunctionCall",
"src": "12245:85:4"
},
"nodeType": "YulExpressionStatement",
"src": "12245:85:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "12351:171:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12395:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12409:3:4",
"type": "",
"value": "384"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12399:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12437:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12444:4:4",
"type": "",
"value": "0xc0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12433:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12433:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12486:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12497:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12482:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12482:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12506:3:4"
}
],
"functionName": {
"name": "abi_decode_t_int256_fromMemory",
"nodeType": "YulIdentifier",
"src": "12451:30:4"
},
"nodeType": "YulFunctionCall",
"src": "12451:59:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12426:6:4"
},
"nodeType": "YulFunctionCall",
"src": "12426:85:4"
},
"nodeType": "YulExpressionStatement",
"src": "12426:85:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "12532:173:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12577:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12591:3:4",
"type": "",
"value": "416"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12581:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12619:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12626:4:4",
"type": "",
"value": "0xe0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12615:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12615:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12669:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12680:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12665:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12665:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12689:3:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "12633:31:4"
},
"nodeType": "YulFunctionCall",
"src": "12633:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12608:6:4"
},
"nodeType": "YulFunctionCall",
"src": "12608:86:4"
},
"nodeType": "YulExpressionStatement",
"src": "12608:86:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "12715:167:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12752:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12766:3:4",
"type": "",
"value": "448"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12756:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12794:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12801:6:4",
"type": "",
"value": "0x0100"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12790:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12790:18:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12846:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12857:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12842:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12842:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12866:3:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "12810:31:4"
},
"nodeType": "YulFunctionCall",
"src": "12810:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12783:6:4"
},
"nodeType": "YulFunctionCall",
"src": "12783:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "12783:88:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "12892:169:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12931:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12945:3:4",
"type": "",
"value": "480"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12935:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12973:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12980:6:4",
"type": "",
"value": "0x0120"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12969:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12969:18:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13025:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13036:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13021:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13021:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "13045:3:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "12989:31:4"
},
"nodeType": "YulFunctionCall",
"src": "12989:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12962:6:4"
},
"nodeType": "YulFunctionCall",
"src": "12962:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "12962:88:4"
}
]
}
]
},
"name": "abi_decode_t_struct$_Request_$314_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11037:9:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11048:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11056:5:4",
"type": ""
}
],
"src": "10972:2096:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13175:299:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "13222:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "13224:77:4"
},
"nodeType": "YulFunctionCall",
"src": "13224:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "13224:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "13196:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13205:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "13192:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13192:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13217:3:4",
"type": "",
"value": "512"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "13188:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13188:33:4"
},
"nodeType": "YulIf",
"src": "13185:120:4"
},
{
"nodeType": "YulBlock",
"src": "13315:152:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "13330:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "13344:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "13334:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "13359:98:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13429:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13440:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13425:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13425:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "13449:7:4"
}
],
"functionName": {
"name": "abi_decode_t_struct$_Request_$314_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "13369:55:4"
},
"nodeType": "YulFunctionCall",
"src": "13369:88:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "13359:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_struct$_Request_$314_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "13145:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "13156:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "13168:6:4",
"type": ""
}
],
"src": "13074:400:4"
}
]
},
"contents": "{\n\n function cleanup_t_int256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_int256_to_t_int256_fromStack(value, pos) {\n mstore(pos, cleanup_t_int256(value))\n }\n\n function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_int256_to_t_int256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_bytes_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n // bytes -> bytes\n function abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(0x20, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_bytes_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IERC20_$77_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IERC20_$77_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IERC20_$77_to_t_address(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_uint256_t_bytes_storage_t_contract$_IERC20_$77_t_uint256__to_t_bytes32_t_uint256_t_bytes_memory_ptr_t_address_t_uint256__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack(value2, tail)\n\n abi_encode_t_contract$_IERC20_$77_to_t_address_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_rational_30_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_rational_30_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_30_by_1(value)))\n }\n\n function abi_encode_t_rational_30_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_30_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_uint256_t_bytes_storage_t_rational_30_by_1__to_t_bytes32_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack(value2, tail)\n\n abi_encode_t_rational_30_by_1_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_bytes32_t_uint256_t_bytes_storage__to_t_address_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack(value3, tail)\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_contract$_IERC20_$77(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IERC20_$77(value) {\n if iszero(eq(value, cleanup_t_contract$_IERC20_$77(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IERC20_$77_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_IERC20_$77(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n // struct OptimisticOracleV2Interface.RequestSettings\n function abi_decode_t_struct$_RequestSettings_$291_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0xe0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0xe0)\n\n {\n // eventBased\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // refundOnDispute\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // callbackOnPriceProposed\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // callbackOnPriceDisputed\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // callbackOnPriceSettled\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // bond\n\n let offset := 160\n\n mstore(add(value, 0xa0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // customLiveness\n\n let offset := 192\n\n mstore(add(value, 0xc0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function validator_revert_t_int256(value) {\n if iszero(eq(value, cleanup_t_int256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_int256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_int256(value)\n }\n\n // struct OptimisticOracleV2Interface.Request\n function abi_decode_t_struct$_Request_$314_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x0200) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x0140)\n\n {\n // proposer\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // disputer\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // currency\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_contract$_IERC20_$77_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // settled\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // requestSettings\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_struct$_RequestSettings_$291_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // proposedPrice\n\n let offset := 352\n\n mstore(add(value, 0xa0), abi_decode_t_int256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // resolvedPrice\n\n let offset := 384\n\n mstore(add(value, 0xc0), abi_decode_t_int256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // expirationTime\n\n let offset := 416\n\n mstore(add(value, 0xe0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // reward\n\n let offset := 448\n\n mstore(add(value, 0x0100), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // finalFee\n\n let offset := 480\n\n mstore(add(value, 0x0120), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Request_$314_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 512) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_Request_$314_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 4,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063606deecd14610046578063f25ffb2014610050578063fa7761521461006e575b600080fd5b61004e610078565b005b6100586101de565b6040516100659190610353565b60405180910390f35b610076610290565b005b42600381905550600073b4fbf271143f4fbf7b91a5ded31805e42b2208d690506000808054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311df92f1600154600354600286866040518663ffffffff1660e01b81526004016100ff959493929190610529565b6020604051808303816000875af115801561011e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014291906105be565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663473c45fe6001546003546002601e6040518563ffffffff1660e01b81526004016101a89493929190610626565b600060405180830381600087803b1580156101c257600080fd5b505af11580156101d6573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9904f9b3060015460035460026040518563ffffffff1660e01b81526004016102459493929190610693565b61020060405180830381865afa158015610263573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028791906109eb565b60c00151905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635e9a79a93060015460035460026040518563ffffffff1660e01b81526004016102f49493929190610693565b6020604051808303816000875af1158015610313573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033791906105be565b50565b6000819050919050565b61034d8161033a565b82525050565b60006020820190506103686000830184610344565b92915050565b6000819050919050565b6103818161036e565b82525050565b6000819050919050565b61039a81610387565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806103e757607f821691505b6020821081036103fa576103f96103a0565b5b50919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008154610433816103cf565b61043d8186610400565b94506001821660008114610458576001811461046e576104a1565b60ff1983168652811515602002860193506104a1565b61047785610411565b60005b838110156104995781548189015260018201915060208101905061047a565b808801955050505b50505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006104ef6104ea6104e5846104aa565b6104ca565b6104aa565b9050919050565b6000610501826104d4565b9050919050565b6000610513826104f6565b9050919050565b61052381610508565b82525050565b600060a08201905061053e6000830188610378565b61054b6020830187610391565b818103604083015261055d8186610426565b905061056c606083018561051a565b6105796080830184610391565b9695505050505050565b6000604051905090565b600080fd5b61059b81610387565b81146105a657600080fd5b50565b6000815190506105b881610592565b92915050565b6000602082840312156105d4576105d361058d565b5b60006105e2848285016105a9565b91505092915050565b6000819050919050565b600061061061060b610606846105eb565b6104ca565b610387565b9050919050565b610620816105f5565b82525050565b600060808201905061063b6000830187610378565b6106486020830186610391565b818103604083015261065a8185610426565b90506106696060830184610617565b95945050505050565b600061067d826104aa565b9050919050565b61068d81610672565b82525050565b60006080820190506106a86000830187610684565b6106b56020830186610378565b6106c26040830185610391565b81810360608301526106d48184610426565b905095945050505050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61072d826106e4565b810181811067ffffffffffffffff8211171561074c5761074b6106f5565b5b80604052505050565b600061075f610583565b905061076b8282610724565b919050565b61077981610672565b811461078457600080fd5b50565b60008151905061079681610770565b92915050565b60006107a782610672565b9050919050565b6107b78161079c565b81146107c257600080fd5b50565b6000815190506107d4816107ae565b92915050565b60008115159050919050565b6107ef816107da565b81146107fa57600080fd5b50565b60008151905061080c816107e6565b92915050565b600060e08284031215610828576108276106df565b5b61083260e0610755565b90506000610842848285016107fd565b6000830152506020610856848285016107fd565b602083015250604061086a848285016107fd565b604083015250606061087e848285016107fd565b6060830152506080610892848285016107fd565b60808301525060a06108a6848285016105a9565b60a08301525060c06108ba848285016105a9565b60c08301525092915050565b6108cf8161033a565b81146108da57600080fd5b50565b6000815190506108ec816108c6565b92915050565b60006102008284031215610909576109086106df565b5b610914610140610755565b9050600061092484828501610787565b600083015250602061093884828501610787565b602083015250604061094c848285016107c5565b6040830152506060610960848285016107fd565b606083015250608061097484828501610812565b608083015250610160610989848285016108dd565b60a08301525061018061099e848285016108dd565b60c0830152506101a06109b3848285016105a9565b60e0830152506101c06109c8848285016105a9565b610100830152506101e06109de848285016105a9565b6101208301525092915050565b60006102008284031215610a0257610a0161058d565b5b6000610a10848285016108f2565b9150509291505056fea264697066735822122022a2401c79bcff65b62264f5622b6e4876c12242030d1441667347ff996e711264736f6c63430008100033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x606DEECD EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xF25FFB20 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xFA776152 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x78 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x65 SWAP2 SWAP1 PUSH2 0x353 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x76 PUSH2 0x290 JUMP JUMPDEST STOP JUMPDEST TIMESTAMP PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xB4FBF271143F4FBF7B91A5DED31805E42B2208D6 SWAP1 POP PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x11DF92F1 PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x529 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x142 SWAP2 SWAP1 PUSH2 0x5BE JUMP JUMPDEST POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x473C45FE PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH1 0x1E PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x626 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9904F9B ADDRESS PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x245 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x693 JUMP JUMPDEST PUSH2 0x200 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x263 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x287 SWAP2 SWAP1 PUSH2 0x9EB JUMP JUMPDEST PUSH1 0xC0 ADD MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5E9A79A9 ADDRESS PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F4 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x313 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x337 SWAP2 SWAP1 PUSH2 0x5BE JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34D DUP2 PUSH2 0x33A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x368 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x344 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x381 DUP2 PUSH2 0x36E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x39A DUP2 PUSH2 0x387 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x3E7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3FA JUMPI PUSH2 0x3F9 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x433 DUP2 PUSH2 0x3CF JUMP JUMPDEST PUSH2 0x43D DUP2 DUP7 PUSH2 0x400 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x458 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x46E JUMPI PUSH2 0x4A1 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x4A1 JUMP JUMPDEST PUSH2 0x477 DUP6 PUSH2 0x411 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x499 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x47A JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4EF PUSH2 0x4EA PUSH2 0x4E5 DUP5 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x4AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x501 DUP3 PUSH2 0x4D4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x513 DUP3 PUSH2 0x4F6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x523 DUP2 PUSH2 0x508 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x53E PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x378 JUMP JUMPDEST PUSH2 0x54B PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x391 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x55D DUP2 DUP7 PUSH2 0x426 JUMP JUMPDEST SWAP1 POP PUSH2 0x56C PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x51A JUMP JUMPDEST PUSH2 0x579 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x391 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59B DUP2 PUSH2 0x387 JUMP JUMPDEST DUP2 EQ PUSH2 0x5A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x5B8 DUP2 PUSH2 0x592 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D4 JUMPI PUSH2 0x5D3 PUSH2 0x58D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x5E2 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x610 PUSH2 0x60B PUSH2 0x606 DUP5 PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x387 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x620 DUP2 PUSH2 0x5F5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x63B PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x378 JUMP JUMPDEST PUSH2 0x648 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x391 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x65A DUP2 DUP6 PUSH2 0x426 JUMP JUMPDEST SWAP1 POP PUSH2 0x669 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x617 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67D DUP3 PUSH2 0x4AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x68D DUP2 PUSH2 0x672 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x6A8 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x6B5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x378 JUMP JUMPDEST PUSH2 0x6C2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x391 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x6D4 DUP2 DUP5 PUSH2 0x426 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x72D DUP3 PUSH2 0x6E4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x74C JUMPI PUSH2 0x74B PUSH2 0x6F5 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x75F PUSH2 0x583 JUMP JUMPDEST SWAP1 POP PUSH2 0x76B DUP3 DUP3 PUSH2 0x724 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x779 DUP2 PUSH2 0x672 JUMP JUMPDEST DUP2 EQ PUSH2 0x784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x796 DUP2 PUSH2 0x770 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A7 DUP3 PUSH2 0x672 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7B7 DUP2 PUSH2 0x79C JUMP JUMPDEST DUP2 EQ PUSH2 0x7C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x7D4 DUP2 PUSH2 0x7AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7EF DUP2 PUSH2 0x7DA JUMP JUMPDEST DUP2 EQ PUSH2 0x7FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x80C DUP2 PUSH2 0x7E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x828 JUMPI PUSH2 0x827 PUSH2 0x6DF JUMP JUMPDEST JUMPDEST PUSH2 0x832 PUSH1 0xE0 PUSH2 0x755 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x842 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x856 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x86A DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x87E DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x892 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x8A6 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x8BA DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8CF DUP2 PUSH2 0x33A JUMP JUMPDEST DUP2 EQ PUSH2 0x8DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x8EC DUP2 PUSH2 0x8C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x909 JUMPI PUSH2 0x908 PUSH2 0x6DF JUMP JUMPDEST JUMPDEST PUSH2 0x914 PUSH2 0x140 PUSH2 0x755 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x924 DUP5 DUP3 DUP6 ADD PUSH2 0x787 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x938 DUP5 DUP3 DUP6 ADD PUSH2 0x787 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x94C DUP5 DUP3 DUP6 ADD PUSH2 0x7C5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x960 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x974 DUP5 DUP3 DUP6 ADD PUSH2 0x812 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH2 0x160 PUSH2 0x989 DUP5 DUP3 DUP6 ADD PUSH2 0x8DD JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH2 0x180 PUSH2 0x99E DUP5 DUP3 DUP6 ADD PUSH2 0x8DD JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH2 0x1A0 PUSH2 0x9B3 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x1C0 PUSH2 0x9C8 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x1E0 PUSH2 0x9DE DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA02 JUMPI PUSH2 0xA01 PUSH2 0x58D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA10 DUP5 DUP3 DUP6 ADD PUSH2 0x8F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 LOG2 BLOCKHASH SHR PUSH26 0xBCFF65B62264F5622B6E4876C12242030D1441667347FF996E71 SLT PUSH5 0x736F6C6343 STOP ADDMOD LT STOP CALLER ",
"sourceMap": "516:2168:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1432:630;;;:::i;:::-;;2521:161;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2325:113;;;:::i;:::-;;1432:630;1486:15;1472:11;:29;;;;1562:19;1591:42;1562:72;;1685:14;1904:2;;;;;;;;;;:15;;;1920:10;;1932:11;;1945:13;1960:12;1974:6;1904:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1991:2;;;;;;;;;;:20;;;2012:10;;2024:11;;2037:13;2052:2;1991:64;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1462:600;;1432:630::o;2521:161::-;2568:6;2593:2;;;;;;;;;;;:13;;;2615:4;2622:10;;2634:11;;2647:13;2593:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:82;;;2586:89;;2521:161;:::o;2325:113::-;2367:2;;;;;;;;;;:9;;;2385:4;2392:10;;2404:11;;2417:13;2367:64;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2325:113::o;7:76:4:-;43:7;72:5;61:16;;7:76;;;:::o;89:115::-;174:23;191:5;174:23;:::i;:::-;169:3;162:36;89:115;;:::o;210:218::-;301:4;339:2;328:9;324:18;316:26;;352:69;418:1;407:9;403:17;394:6;352:69;:::i;:::-;210:218;;;;:::o;434:77::-;471:7;500:5;489:16;;434:77;;;:::o;517:118::-;604:24;622:5;604:24;:::i;:::-;599:3;592:37;517:118;;:::o;641:77::-;678:7;707:5;696:16;;641:77;;;:::o;724:118::-;811:24;829:5;811:24;:::i;:::-;806:3;799:37;724:118;;:::o;848:180::-;896:77;893:1;886:88;993:4;990:1;983:15;1017:4;1014:1;1007:15;1034:320;1078:6;1115:1;1109:4;1105:12;1095:22;;1162:1;1156:4;1152:12;1183:18;1173:81;;1239:4;1231:6;1227:17;1217:27;;1173:81;1301:2;1293:6;1290:14;1270:18;1267:38;1264:84;;1320:18;;:::i;:::-;1264:84;1085:269;1034:320;;;:::o;1360:168::-;1443:11;1477:6;1472:3;1465:19;1517:4;1512:3;1508:14;1493:29;;1360:168;;;;:::o;1534:140::-;1582:4;1605:3;1597:11;;1628:3;1625:1;1618:14;1662:4;1659:1;1649:18;1641:26;;1534:140;;;:::o;1702:827::-;1785:3;1822:5;1816:12;1851:36;1877:9;1851:36;:::i;:::-;1903:70;1966:6;1961:3;1903:70;:::i;:::-;1896:77;;2004:1;1993:9;1989:17;2020:1;2015:164;;;;2193:1;2188:335;;;;1982:541;;2015:164;2099:4;2095:9;2084;2080:25;2075:3;2068:38;2159:6;2152:14;2145:22;2139:4;2135:33;2130:3;2126:43;2119:50;;2015:164;;2188:335;2255:37;2286:5;2255:37;:::i;:::-;2314:1;2328:154;2342:6;2339:1;2336:13;2328:154;;;2416:7;2410:14;2406:1;2401:3;2397:11;2390:35;2466:1;2457:7;2453:15;2442:26;;2364:4;2361:1;2357:12;2352:17;;2328:154;;;2511:1;2506:3;2502:11;2495:18;;2195:328;;1982:541;;1789:740;;1702:827;;;;:::o;2535:126::-;2572:7;2612:42;2605:5;2601:54;2590:65;;2535:126;;;:::o;2667:60::-;2695:3;2716:5;2709:12;;2667:60;;;:::o;2733:142::-;2783:9;2816:53;2834:34;2843:24;2861:5;2843:24;:::i;:::-;2834:34;:::i;:::-;2816:53;:::i;:::-;2803:66;;2733:142;;;:::o;2881:126::-;2931:9;2964:37;2995:5;2964:37;:::i;:::-;2951:50;;2881:126;;;:::o;3013:139::-;3076:9;3109:37;3140:5;3109:37;:::i;:::-;3096:50;;3013:139;;;:::o;3158:157::-;3258:50;3302:5;3258:50;:::i;:::-;3253:3;3246:63;3158:157;;:::o;3321:771::-;3554:4;3592:3;3581:9;3577:19;3569:27;;3606:71;3674:1;3663:9;3659:17;3650:6;3606:71;:::i;:::-;3687:72;3755:2;3744:9;3740:18;3731:6;3687:72;:::i;:::-;3806:9;3800:4;3796:20;3791:2;3780:9;3776:18;3769:48;3834:73;3902:4;3893:6;3834:73;:::i;:::-;3826:81;;3917:85;3998:2;3987:9;3983:18;3974:6;3917:85;:::i;:::-;4012:73;4080:3;4069:9;4065:19;4056:6;4012:73;:::i;:::-;3321:771;;;;;;;;:::o;4098:75::-;4131:6;4164:2;4158:9;4148:19;;4098:75;:::o;4179:117::-;4288:1;4285;4278:12;4425:122;4498:24;4516:5;4498:24;:::i;:::-;4491:5;4488:35;4478:63;;4537:1;4534;4527:12;4478:63;4425:122;:::o;4553:143::-;4610:5;4641:6;4635:13;4626:22;;4657:33;4684:5;4657:33;:::i;:::-;4553:143;;;;:::o;4702:351::-;4772:6;4821:2;4809:9;4800:7;4796:23;4792:32;4789:119;;;4827:79;;:::i;:::-;4789:119;4947:1;4972:64;5028:7;5019:6;5008:9;5004:22;4972:64;:::i;:::-;4962:74;;4918:128;4702:351;;;;:::o;5059:86::-;5105:7;5134:5;5123:16;;5059:86;;;:::o;5151:160::-;5210:9;5243:62;5261:43;5270:33;5297:5;5270:33;:::i;:::-;5261:43;:::i;:::-;5243:62;:::i;:::-;5230:75;;5151:160;;;:::o;5317:149::-;5413:46;5453:5;5413:46;:::i;:::-;5408:3;5401:59;5317:149;;:::o;5472:652::-;5673:4;5711:3;5700:9;5696:19;5688:27;;5725:71;5793:1;5782:9;5778:17;5769:6;5725:71;:::i;:::-;5806:72;5874:2;5863:9;5859:18;5850:6;5806:72;:::i;:::-;5925:9;5919:4;5915:20;5910:2;5899:9;5895:18;5888:48;5953:73;6021:4;6012:6;5953:73;:::i;:::-;5945:81;;6036;6113:2;6102:9;6098:18;6089:6;6036:81;:::i;:::-;5472:652;;;;;;;:::o;6130:96::-;6167:7;6196:24;6214:5;6196:24;:::i;:::-;6185:35;;6130:96;;;:::o;6232:118::-;6319:24;6337:5;6319:24;:::i;:::-;6314:3;6307:37;6232:118;;:::o;6356:634::-;6548:4;6586:3;6575:9;6571:19;6563:27;;6600:71;6668:1;6657:9;6653:17;6644:6;6600:71;:::i;:::-;6681:72;6749:2;6738:9;6734:18;6725:6;6681:72;:::i;:::-;6763;6831:2;6820:9;6816:18;6807:6;6763:72;:::i;:::-;6882:9;6876:4;6872:20;6867:2;6856:9;6852:18;6845:48;6910:73;6978:4;6969:6;6910:73;:::i;:::-;6902:81;;6356:634;;;;;;;:::o;6996:117::-;7105:1;7102;7095:12;7119:102;7160:6;7211:2;7207:7;7202:2;7195:5;7191:14;7187:28;7177:38;;7119:102;;;:::o;7227:180::-;7275:77;7272:1;7265:88;7372:4;7369:1;7362:15;7396:4;7393:1;7386:15;7413:281;7496:27;7518:4;7496:27;:::i;:::-;7488:6;7484:40;7626:6;7614:10;7611:22;7590:18;7578:10;7575:34;7572:62;7569:88;;;7637:18;;:::i;:::-;7569:88;7677:10;7673:2;7666:22;7456:238;7413:281;;:::o;7700:129::-;7734:6;7761:20;;:::i;:::-;7751:30;;7790:33;7818:4;7810:6;7790:33;:::i;:::-;7700:129;;;:::o;7958:122::-;8031:24;8049:5;8031:24;:::i;:::-;8024:5;8021:35;8011:63;;8070:1;8067;8060:12;8011:63;7958:122;:::o;8086:143::-;8143:5;8174:6;8168:13;8159:22;;8190:33;8217:5;8190:33;:::i;:::-;8086:143;;;;:::o;8235:109::-;8285:7;8314:24;8332:5;8314:24;:::i;:::-;8303:35;;8235:109;;;:::o;8350:148::-;8436:37;8467:5;8436:37;:::i;:::-;8429:5;8426:48;8416:76;;8488:1;8485;8478:12;8416:76;8350:148;:::o;8504:169::-;8574:5;8605:6;8599:13;8590:22;;8621:46;8661:5;8621:46;:::i;:::-;8504:169;;;;:::o;8679:90::-;8713:7;8756:5;8749:13;8742:21;8731:32;;8679:90;;;:::o;8775:116::-;8845:21;8860:5;8845:21;:::i;:::-;8838:5;8835:32;8825:60;;8881:1;8878;8871:12;8825:60;8775:116;:::o;8897:137::-;8951:5;8982:6;8976:13;8967:22;;8998:30;9022:5;8998:30;:::i;:::-;8897:137;;;;:::o;9098:1545::-;9190:5;9234:4;9222:9;9217:3;9213:19;9209:30;9206:117;;;9242:79;;:::i;:::-;9206:117;9341:21;9357:4;9341:21;:::i;:::-;9332:30;;9427:1;9467:57;9520:3;9511:6;9500:9;9496:22;9467:57;:::i;:::-;9460:4;9453:5;9449:16;9442:83;9372:164;9606:2;9647:57;9700:3;9691:6;9680:9;9676:22;9647:57;:::i;:::-;9640:4;9633:5;9629:16;9622:83;9546:170;9794:2;9835:57;9888:3;9879:6;9868:9;9864:22;9835:57;:::i;:::-;9828:4;9821:5;9817:16;9810:83;9726:178;9982:2;10023:57;10076:3;10067:6;10056:9;10052:22;10023:57;:::i;:::-;10016:4;10009:5;10005:16;9998:83;9914:178;10169:3;10211:57;10264:3;10255:6;10244:9;10240:22;10211:57;:::i;:::-;10204:4;10197:5;10193:16;10186:83;10102:178;10339:3;10381:60;10437:3;10428:6;10417:9;10413:22;10381:60;:::i;:::-;10374:4;10367:5;10363:16;10356:86;10290:163;10522:3;10564:60;10620:3;10611:6;10600:9;10596:22;10564:60;:::i;:::-;10557:4;10550:5;10546:16;10539:86;10463:173;9098:1545;;;;:::o;10649:120::-;10721:23;10738:5;10721:23;:::i;:::-;10714:5;10711:34;10701:62;;10759:1;10756;10749:12;10701:62;10649:120;:::o;10775:141::-;10831:5;10862:6;10856:13;10847:22;;10878:32;10904:5;10878:32;:::i;:::-;10775:141;;;;:::o;10972:2096::-;11056:5;11100:6;11088:9;11083:3;11079:19;11075:32;11072:119;;;11110:79;;:::i;:::-;11072:119;11209:23;11225:6;11209:23;:::i;:::-;11200:32;;11295:1;11335:60;11391:3;11382:6;11371:9;11367:22;11335:60;:::i;:::-;11328:4;11321:5;11317:16;11310:86;11242:165;11470:2;11511:60;11567:3;11558:6;11547:9;11543:22;11511:60;:::i;:::-;11504:4;11497:5;11493:16;11486:86;11417:166;11646:2;11687:73;11756:3;11747:6;11736:9;11732:22;11687:73;:::i;:::-;11680:4;11673:5;11669:16;11662:99;11593:179;11834:2;11875:57;11928:3;11919:6;11908:9;11904:22;11875:57;:::i;:::-;11868:4;11861:5;11857:16;11850:83;11782:162;12014:3;12056:92;12144:3;12135:6;12124:9;12120:22;12056:92;:::i;:::-;12049:4;12042:5;12038:16;12031:118;11954:206;12228:3;12270:59;12325:3;12316:6;12305:9;12301:22;12270:59;:::i;:::-;12263:4;12256:5;12252:16;12245:85;12170:171;12409:3;12451:59;12506:3;12497:6;12486:9;12482:22;12451:59;:::i;:::-;12444:4;12437:5;12433:16;12426:85;12351:171;12591:3;12633:60;12689:3;12680:6;12669:9;12665:22;12633:60;:::i;:::-;12626:4;12619:5;12615:16;12608:86;12532:173;12766:3;12810:60;12866:3;12857:6;12846:9;12842:22;12810:60;:::i;:::-;12801:6;12794:5;12790:18;12783:88;12715:167;12945:3;12989:60;13045:3;13036:6;13025:9;13021:22;12989:60;:::i;:::-;12980:6;12973:5;12969:18;12962:88;12892:169;10972:2096;;;;:::o;13074:400::-;13168:6;13217:3;13205:9;13196:7;13192:23;13188:33;13185:120;;;13224:79;;:::i;:::-;13185:120;13344:1;13369:88;13449:7;13440:6;13429:9;13425:22;13369:88;:::i;:::-;13359:98;;13315:152;13074:400;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "527800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"getSettledData()": "infinite",
"requestData()": "infinite",
"settleRequest()": "infinite"
}
},
"methodIdentifiers": {
"getSettledData()": "f25ffb20",
"requestData()": "606deecd",
"settleRequest()": "fa776152"
}
},
"abi": [
{
"inputs": [],
"name": "getSettledData",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "requestData",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "settleRequest",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.16+commit.07a7930e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "getSettledData",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "requestData",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "settleRequest",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol": "OO_GettingStarted"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
"keccak256": "0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b",
"license": "MIT",
"urls": [
"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34",
"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"
]
},
"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol": {
"keccak256": "0xd6ec982372903a6bdf6e7d20381b6b95540304a11aa8774d229db661506f1ad5",
"license": "AGPL-3.0-only",
"urls": [
"bzz-raw://2540e1f41952b9b3a98a61e8f95ef17b45113ae4d839e165d575d85b33ce0d3d",
"dweb:/ipfs/QmZQUPFNWv6es1LsEKjPyJvVgFKFHpWw5ZJZoQ51MfzzMv"
]
},
"https://github.com/UMAprotocol/protocol/blob/master/packages/core/contracts/data-verification-mechanism/interfaces/FinderInterface.sol": {
"keccak256": "0x9166fbfe08e954eb86d33c114fcde7ce4fd0dda5d9d28b31210582bfc769fa86",
"license": "AGPL-3.0-only",
"urls": [
"bzz-raw://e611e12bcaaebfdf65b67c566ff1d34708e757f01a445bd87c55862e89383b81",
"dweb:/ipfs/QmYNSq5oopTShdS6j4VWKqoLxmQSRKmWebCxw6K4LfmKrf"
]
},
"https://github.com/UMAprotocol/protocol/blob/master/packages/core/contracts/optimistic-oracle-v2/interfaces/OptimisticOracleV2Interface.sol": {
"keccak256": "0xfd8657b45e330608fd1978812dfc1923ef157624d9f2d4b2c555f57f6234ea6f",
"license": "AGPL-3.0-only",
"urls": [
"bzz-raw://3e479707692c3f996b6bcbab944d95f3748383bbd4ce7cd614a7468415f539d9",
"dweb:/ipfs/QmZj63CBeMEaKaKSmw3D7F8B3kYEDBosaAGjH13hgE16VJ"
]
}
},
"version": 1
}
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity ^0.8.14;
import "https://github.com/UMAprotocol/protocol/blob/master/packages/core/contracts/optimistic-oracle-v2/interfaces/OptimisticOracleV2Interface.sol";
// *************************************
// * Minimum Viable OO Intergration *
// *************************************
// This contract shows how to get up and running as quickly as posible with UMA's Optimistic Oracle.
// We make a simple price request to the OO and return it to the user.
contract OO_GettingStarted {
// Create an Optimistic oracle instance at the deployed address on Görli.
OptimisticOracleV2Interface oo = OptimisticOracleV2Interface(0xA5B9d8a0B0Fa04Ba71BDD68069661ED5C0848884);
// Use the yes no idetifier to ask arbitary questions, such as the weather on a particular day.
bytes32 identifier = bytes32("YES_OR_NO_QUERY");
// Post the question in ancillary data. Note that this is a simplified form of ancillry data to work as an example. A real
// world prodition market would use something slightly more complex and would need to conform to a more robust structure.
bytes ancillaryData =
bytes("Q:Did the temperature on the 25th of July 2022 in Manhattan NY exceed 35c? A:1 for yes. 0 for no.");
uint256 requestTime = 0; // Store the request time so we can re-use it later.
// Submit a data request to the Optimistic oracle.
function requestData() public {
requestTime = block.timestamp; // Set the request time to the current block time.
IERC20 bondCurrency = IERC20(0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6); // Use Görli WETH as the bond currency.
uint256 reward = 0; // Set the reward to 0 (so we dont have to fund it from this contract).
// Now, make the price request to the Optimistic oracle and set the liveness to 30 so it will settle quickly.
oo.requestPrice(identifier, requestTime, ancillaryData, bondCurrency, reward);
oo.setCustomLiveness(identifier, requestTime, ancillaryData, 30);
}
// Settle the request once it's gone through the liveness period of 30 seconds. This acts the finalize the voted on price.
// In a real world use of the Optimistic Oracle this should be longer to give time to disputers to catch bat price proposals.
function settleRequest() public {
oo.settle(address(this), identifier, requestTime, ancillaryData);
}
// Fetch the resolved price from the Optimistic Oracle that was settled.
function getSettledData() public view returns (int256) {
return oo.getRequest(address(this), identifier, requestTime, ancillaryData).resolvedPrice;
}
}
This file has been truncated, but you can view the full file.
{
"id": "1fa8483f03f02b3144bbb2ed82b8d91b",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.16",
"solcLongVersion": "0.8.16+commit.07a7930e",
"input": {
"language": "Solidity",
"sources": {
"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol": {
"content": "// SPDX-License-Identifier: AGPL-3.0-only\npragma solidity ^0.8.14;\n\nimport \"https://github.com/UMAprotocol/protocol/blob/master/packages/core/contracts/optimistic-oracle-v2/interfaces/OptimisticOracleV2Interface.sol\";\n\n// *************************************\n// * Minimum Viable OO Intergration *\n// *************************************\n\n// This contract shows how to get up and running as quickly as posible with UMA's Optimistic Oracle.\n// We make a simple price request to the OO and return it to the user.\n\ncontract OO_GettingStarted {\n \n // Create an Optimistic oracle instance at the deployed address on Görli.\n OptimisticOracleV2Interface oo = OptimisticOracleV2Interface(0xA5B9d8a0B0Fa04Ba71BDD68069661ED5C0848884);\n\n // Use the yes no idetifier to ask arbitary questions, such as the weather on a particular day.\n bytes32 identifier = bytes32(\"YES_OR_NO_QUERY\");\n\n // Post the question in ancillary data. Note that this is a simplified form of ancillry data to work as an example. A real\n // world prodition market would use something slightly more complex and would need to conform to a more robust structure.\n bytes ancillaryData =\n bytes(\"Q:Did the temperature on the 25th of July 2022 in Manhattan NY exceed 35c? A:1 for yes. 0 for no.\");\n\n uint256 requestTime = 0; // Store the request time so we can re-use it later.\n\n // Submit a data request to the Optimistic oracle.\n function requestData() public {\n requestTime = block.timestamp; // Set the request time to the current block time.\n IERC20 bondCurrency = IERC20(0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6); // Use Görli WETH as the bond currency.\n uint256 reward = 0; // Set the reward to 0 (so we dont have to fund it from this contract).\n\n // Now, make the price request to the Optimistic oracle and set the liveness to 30 so it will settle quickly.\n oo.requestPrice(identifier, requestTime, ancillaryData, bondCurrency, reward);\n oo.setCustomLiveness(identifier, requestTime, ancillaryData, 30);\n }\n\n // Settle the request once it's gone through the liveness period of 30 seconds. This acts the finalize the voted on price.\n // In a real world use of the Optimistic Oracle this should be longer to give time to disputers to catch bat price proposals.\n function settleRequest() public {\n oo.settle(address(this), identifier, requestTime, ancillaryData);\n }\n\n // Fetch the resolved price from the Optimistic Oracle that was settled.\n function getSettledData() public view returns (int256) {\n return oo.getRequest(address(this), identifier, requestTime, ancillaryData).resolvedPrice;\n }\n}\n"
},
"https://github.com/UMAprotocol/protocol/blob/master/packages/core/contracts/optimistic-oracle-v2/interfaces/OptimisticOracleV2Interface.sol": {
"content": "// SPDX-License-Identifier: AGPL-3.0-only\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"../../data-verification-mechanism/interfaces/FinderInterface.sol\";\n\n/**\n * @title Financial contract facing Oracle interface.\n * @dev Interface used by financial contracts to interact with the Oracle. Voters will use a different interface.\n */\nabstract contract OptimisticOracleV2Interface {\n event RequestPrice(\n address indexed requester,\n bytes32 identifier,\n uint256 timestamp,\n bytes ancillaryData,\n address currency,\n uint256 reward,\n uint256 finalFee\n );\n event ProposePrice(\n address indexed requester,\n address indexed proposer,\n bytes32 identifier,\n uint256 timestamp,\n bytes ancillaryData,\n int256 proposedPrice,\n uint256 expirationTimestamp,\n address currency\n );\n event DisputePrice(\n address indexed requester,\n address indexed proposer,\n address indexed disputer,\n bytes32 identifier,\n uint256 timestamp,\n bytes ancillaryData,\n int256 proposedPrice\n );\n event Settle(\n address indexed requester,\n address indexed proposer,\n address indexed disputer,\n bytes32 identifier,\n uint256 timestamp,\n bytes ancillaryData,\n int256 price,\n uint256 payout\n );\n // Struct representing the state of a price request.\n enum State {\n Invalid, // Never requested.\n Requested, // Requested, no other actions taken.\n Proposed, // Proposed, but not expired or disputed yet.\n Expired, // Proposed, not disputed, past liveness.\n Disputed, // Disputed, but no DVM price returned yet.\n Resolved, // Disputed and DVM price is available.\n Settled // Final price has been set in the contract (can get here from Expired or Resolved).\n }\n\n struct RequestSettings {\n bool eventBased; // True if the request is set to be event-based.\n bool refundOnDispute; // True if the requester should be refunded their reward on dispute.\n bool callbackOnPriceProposed; // True if callbackOnPriceProposed callback is required.\n bool callbackOnPriceDisputed; // True if callbackOnPriceDisputed callback is required.\n bool callbackOnPriceSettled; // True if callbackOnPriceSettled callback is required.\n uint256 bond; // Bond that the proposer and disputer must pay on top of the final fee.\n uint256 customLiveness; // Custom liveness value set by the requester.\n }\n\n // Struct representing a price request.\n struct Request {\n address proposer; // Address of the proposer.\n address disputer; // Address of the disputer.\n IERC20 currency; // ERC20 token used to pay rewards and fees.\n bool settled; // True if the request is settled.\n RequestSettings requestSettings; // Custom settings associated with a request.\n int256 proposedPrice; // Price that the proposer submitted.\n int256 resolvedPrice; // Price resolved once the request is settled.\n uint256 expirationTime; // Time at which the request auto-settles without a dispute.\n uint256 reward; // Amount of the currency to pay to the proposer on settlement.\n uint256 finalFee; // Final fee to pay to the Store upon request to the DVM.\n }\n\n // This value must be <= the Voting contract's `ancillaryBytesLimit` value otherwise it is possible\n // that a price can be requested to this contract successfully, but cannot be disputed because the DVM refuses\n // to accept a price request made with ancillary data length over a certain size.\n uint256 public constant ancillaryBytesLimit = 8192;\n\n function defaultLiveness() external view virtual returns (uint256);\n\n function finder() external view virtual returns (FinderInterface);\n\n function getCurrentTime() external view virtual returns (uint256);\n\n // Note: this is required so that typechain generates a return value with named fields.\n mapping(bytes32 => Request) public requests;\n\n /**\n * @notice Requests a new price.\n * @param identifier price identifier being requested.\n * @param timestamp timestamp of the price being requested.\n * @param ancillaryData ancillary data representing additional args being passed with the price request.\n * @param currency ERC20 token used for payment of rewards and fees. Must be approved for use with the DVM.\n * @param reward reward offered to a successful proposer. Will be pulled from the caller. Note: this can be 0,\n * which could make sense if the contract requests and proposes the value in the same call or\n * provides its own reward system.\n * @return totalBond default bond (final fee) + final fee that the proposer and disputer will be required to pay.\n * This can be changed with a subsequent call to setBond().\n */\n function requestPrice(\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData,\n IERC20 currency,\n uint256 reward\n ) external virtual returns (uint256 totalBond);\n\n /**\n * @notice Set the proposal bond associated with a price request.\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n * @param bond custom bond amount to set.\n * @return totalBond new bond + final fee that the proposer and disputer will be required to pay. This can be\n * changed again with a subsequent call to setBond().\n */\n function setBond(\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData,\n uint256 bond\n ) external virtual returns (uint256 totalBond);\n\n /**\n * @notice Sets the request to refund the reward if the proposal is disputed. This can help to \"hedge\" the caller\n * in the event of a dispute-caused delay. Note: in the event of a dispute, the winner still receives the other's\n * bond, so there is still profit to be made even if the reward is refunded.\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n */\n function setRefundOnDispute(\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData\n ) external virtual;\n\n /**\n * @notice Sets a custom liveness value for the request. Liveness is the amount of time a proposal must wait before\n * being auto-resolved.\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n * @param customLiveness new custom liveness.\n */\n function setCustomLiveness(\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData,\n uint256 customLiveness\n ) external virtual;\n\n /**\n * @notice Sets the request to be an \"event-based\" request.\n * @dev Calling this method has a few impacts on the request:\n *\n * 1. The timestamp at which the request is evaluated is the time of the proposal, not the timestamp associated\n * with the request.\n *\n * 2. The proposer cannot propose the \"too early\" value (TOO_EARLY_RESPONSE). This is to ensure that a proposer who\n * prematurely proposes a response loses their bond.\n *\n * 3. RefundoOnDispute is automatically set, meaning disputes trigger the reward to be automatically refunded to\n * the requesting contract.\n *\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n */\n function setEventBased(\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData\n ) external virtual;\n\n /**\n * @notice Sets which callbacks should be enabled for the request.\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n * @param callbackOnPriceProposed whether to enable the callback onPriceProposed.\n * @param callbackOnPriceDisputed whether to enable the callback onPriceDisputed.\n * @param callbackOnPriceSettled whether to enable the callback onPriceSettled.\n */\n function setCallbacks(\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData,\n bool callbackOnPriceProposed,\n bool callbackOnPriceDisputed,\n bool callbackOnPriceSettled\n ) external virtual;\n\n /**\n * @notice Proposes a price value on another address' behalf. Note: this address will receive any rewards that come\n * from this proposal. However, any bonds are pulled from the caller.\n * @param proposer address to set as the proposer.\n * @param requester sender of the initial price request.\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n * @param proposedPrice price being proposed.\n * @return totalBond the amount that's pulled from the caller's wallet as a bond. The bond will be returned to\n * the proposer once settled if the proposal is correct.\n */\n function proposePriceFor(\n address proposer,\n address requester,\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData,\n int256 proposedPrice\n ) public virtual returns (uint256 totalBond);\n\n /**\n * @notice Proposes a price value for an existing price request.\n * @param requester sender of the initial price request.\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n * @param proposedPrice price being proposed.\n * @return totalBond the amount that's pulled from the proposer's wallet as a bond. The bond will be returned to\n * the proposer once settled if the proposal is correct.\n */\n function proposePrice(\n address requester,\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData,\n int256 proposedPrice\n ) external virtual returns (uint256 totalBond);\n\n /**\n * @notice Disputes a price request with an active proposal on another address' behalf. Note: this address will\n * receive any rewards that come from this dispute. However, any bonds are pulled from the caller.\n * @param disputer address to set as the disputer.\n * @param requester sender of the initial price request.\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n * @return totalBond the amount that's pulled from the caller's wallet as a bond. The bond will be returned to\n * the disputer once settled if the dispute was value (the proposal was incorrect).\n */\n function disputePriceFor(\n address disputer,\n address requester,\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData\n ) public virtual returns (uint256 totalBond);\n\n /**\n * @notice Disputes a price value for an existing price request with an active proposal.\n * @param requester sender of the initial price request.\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n * @return totalBond the amount that's pulled from the disputer's wallet as a bond. The bond will be returned to\n * the disputer once settled if the dispute was valid (the proposal was incorrect).\n */\n function disputePrice(\n address requester,\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData\n ) external virtual returns (uint256 totalBond);\n\n /**\n * @notice Retrieves a price that was previously requested by a caller. Reverts if the request is not settled\n * or settleable. Note: this method is not view so that this call may actually settle the price request if it\n * hasn't been settled.\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n * @return resolved price.\n */\n function settleAndGetPrice(\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData\n ) external virtual returns (int256);\n\n /**\n * @notice Attempts to settle an outstanding price request. Will revert if it isn't settleable.\n * @param requester sender of the initial price request.\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n * @return payout the amount that the \"winner\" (proposer or disputer) receives on settlement. This amount includes\n * the returned bonds as well as additional rewards.\n */\n function settle(\n address requester,\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData\n ) external virtual returns (uint256 payout);\n\n /**\n * @notice Gets the current data structure containing all information about a price request.\n * @param requester sender of the initial price request.\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n * @return the Request data structure.\n */\n function getRequest(\n address requester,\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData\n ) public view virtual returns (Request memory);\n\n /**\n * @notice Returns the state of a price request.\n * @param requester sender of the initial price request.\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n * @return the State enum value.\n */\n function getState(\n address requester,\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData\n ) public view virtual returns (State);\n\n /**\n * @notice Checks if a given request has resolved or been settled (i.e the optimistic oracle has a price).\n * @param requester sender of the initial price request.\n * @param identifier price identifier to identify the existing request.\n * @param timestamp timestamp to identify the existing request.\n * @param ancillaryData ancillary data of the price being requested.\n * @return true if price has resolved or settled, false otherwise.\n */\n function hasPrice(\n address requester,\n bytes32 identifier,\n uint256 timestamp,\n bytes memory ancillaryData\n ) public view virtual returns (bool);\n\n function stampAncillaryData(bytes memory ancillaryData, address requester)\n public\n view\n virtual\n returns (bytes memory);\n}\n"
},
"https://github.com/UMAprotocol/protocol/blob/master/packages/core/contracts/data-verification-mechanism/interfaces/FinderInterface.sol": {
"content": "// SPDX-License-Identifier: AGPL-3.0-only\npragma solidity ^0.8.0;\n\n/**\n * @title Provides addresses of the live contracts implementing certain interfaces.\n * @dev Examples are the Oracle or Store interfaces.\n */\ninterface FinderInterface {\n /**\n * @notice Updates the address of the contract that implements `interfaceName`.\n * @param interfaceName bytes32 encoding of the interface name that is either changed or registered.\n * @param implementationAddress address of the deployed contract that implements the interface.\n */\n function changeImplementationAddress(bytes32 interfaceName, address implementationAddress) external;\n\n /**\n * @notice Gets the address of the contract that implements the given `interfaceName`.\n * @param interfaceName queried interface.\n * @return implementationAddress address of the deployed contract that implements the interface.\n */\n function getImplementationAddress(bytes32 interfaceName) external view returns (address);\n}\n"
},
"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
"content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) external returns (bool);\n}\n"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
"IERC20": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Interface of the ERC20 standard as defined in the EIP.",
"events": {
"Approval(address,address,uint256)": {
"details": "Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."
},
"Transfer(address,address,uint256)": {
"details": "Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."
}
},
"kind": "dev",
"methods": {
"allowance(address,address)": {
"details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."
},
"approve(address,uint256)": {
"details": "Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."
},
"balanceOf(address)": {
"details": "Returns the amount of tokens owned by `account`."
},
"totalSupply()": {
"details": "Returns the amount of tokens in existence."
},
"transfer(address,uint256)": {
"details": "Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
},
"transferFrom(address,address,uint256)": {
"details": "Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
}
},
"version": 1
},
"evm": {
"assembly": "",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"legacyAssembly": null,
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
},
"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol": {
"OO_GettingStarted": {
"abi": [
{
"inputs": [],
"name": "getSettledData",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "requestData",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "settleRequest",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":516:2684 contract OO_GettingStarted {... */\n mstore(0x40, 0x80)\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":694:736 0xA5B9d8a0B0Fa04Ba71BDD68069661ED5C0848884 */\n 0xa5b9d8a0b0fa04ba71bdd68069661ed5c0848884\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":633:737 OptimisticOracleV2Interface oo = OptimisticOracleV2Interface(0xA5B9d8a0B0Fa04Ba71BDD68069661ED5C0848884) */\n 0x00\n dup1\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":865:891 bytes32(\"YES_OR_NO_QUERY\") */\n 0x5945535f4f525f4e4f5f51554552590000000000000000000000000000000000\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":844:891 bytes32 identifier = bytes32(\"YES_OR_NO_QUERY\") */\n 0x01\n sstore\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1181:1287 bytes(\"Q:Did the temperature on the 25th of July 2022 in Manhattan NY exceed 35c? A:1 for yes. 0 for no.\") */\n mload(0x40)\n dup1\n 0xa0\n add\n 0x40\n mstore\n dup1\n 0x61\n dup2\n mstore\n 0x20\n add\n data_211fb6934242c4a170a55409f23721024ef4610d68f86ceb2da8f56040a35d65\n 0x61\n swap2\n codecopy\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1151:1287 bytes ancillaryData =... */\n 0x02\n swap1\n dup2\n tag_1\n swap2\n swap1\n tag_2\n jump\t// in\ntag_1:\n pop\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1316:1317 0 */\n 0x00\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1294:1317 uint256 requestTime = 0 */\n 0x03\n sstore\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":516:2684 contract OO_GettingStarted {... */\n callvalue\n dup1\n iszero\n tag_3\n jumpi\n 0x00\n dup1\n revert\ntag_3:\n pop\n jump(tag_4)\n /* \"#utility.yul\":7:105 */\ntag_5:\n /* \"#utility.yul\":58:64 */\n 0x00\n /* \"#utility.yul\":92:97 */\n dup2\n /* \"#utility.yul\":86:98 */\n mload\n /* \"#utility.yul\":76:98 */\n swap1\n pop\n /* \"#utility.yul\":7:105 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":111:291 */\ntag_6:\n /* \"#utility.yul\":159:236 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":156:157 */\n 0x00\n /* \"#utility.yul\":149:237 */\n mstore\n /* \"#utility.yul\":256:260 */\n 0x41\n /* \"#utility.yul\":253:254 */\n 0x04\n /* \"#utility.yul\":246:261 */\n mstore\n /* \"#utility.yul\":280:284 */\n 0x24\n /* \"#utility.yul\":277:278 */\n 0x00\n /* \"#utility.yul\":270:285 */\n revert\n /* \"#utility.yul\":297:477 */\ntag_7:\n /* \"#utility.yul\":345:422 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":342:343 */\n 0x00\n /* \"#utility.yul\":335:423 */\n mstore\n /* \"#utility.yul\":442:446 */\n 0x22\n /* \"#utility.yul\":439:440 */\n 0x04\n /* \"#utility.yul\":432:447 */\n mstore\n /* \"#utility.yul\":466:470 */\n 0x24\n /* \"#utility.yul\":463:464 */\n 0x00\n /* \"#utility.yul\":456:471 */\n revert\n /* \"#utility.yul\":483:803 */\ntag_8:\n /* \"#utility.yul\":527:533 */\n 0x00\n /* \"#utility.yul\":564:565 */\n 0x02\n /* \"#utility.yul\":558:562 */\n dup3\n /* \"#utility.yul\":554:566 */\n div\n /* \"#utility.yul\":544:566 */\n swap1\n pop\n /* \"#utility.yul\":611:612 */\n 0x01\n /* \"#utility.yul\":605:609 */\n dup3\n /* \"#utility.yul\":601:613 */\n and\n /* \"#utility.yul\":632:650 */\n dup1\n /* \"#utility.yul\":622:703 */\n tag_30\n jumpi\n /* \"#utility.yul\":688:692 */\n 0x7f\n /* \"#utility.yul\":680:686 */\n dup3\n /* \"#utility.yul\":676:693 */\n and\n /* \"#utility.yul\":666:693 */\n swap2\n pop\n /* \"#utility.yul\":622:703 */\ntag_30:\n /* \"#utility.yul\":750:752 */\n 0x20\n /* \"#utility.yul\":742:748 */\n dup3\n /* \"#utility.yul\":739:753 */\n lt\n /* \"#utility.yul\":719:737 */\n dup2\n /* \"#utility.yul\":716:754 */\n sub\n /* \"#utility.yul\":713:797 */\n tag_31\n jumpi\n /* \"#utility.yul\":769:787 */\n tag_32\n tag_7\n jump\t// in\ntag_32:\n /* \"#utility.yul\":713:797 */\ntag_31:\n /* \"#utility.yul\":534:803 */\n pop\n /* \"#utility.yul\":483:803 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":809:949 */\ntag_9:\n /* \"#utility.yul\":857:861 */\n 0x00\n /* \"#utility.yul\":880:883 */\n dup2\n /* \"#utility.yul\":872:883 */\n swap1\n pop\n /* \"#utility.yul\":903:906 */\n dup2\n /* \"#utility.yul\":900:901 */\n 0x00\n /* \"#utility.yul\":893:907 */\n mstore\n /* \"#utility.yul\":937:941 */\n 0x20\n /* \"#utility.yul\":934:935 */\n 0x00\n /* \"#utility.yul\":924:942 */\n keccak256\n /* \"#utility.yul\":916:942 */\n swap1\n pop\n /* \"#utility.yul\":809:949 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":955:1048 */\ntag_10:\n /* \"#utility.yul\":992:998 */\n 0x00\n /* \"#utility.yul\":1039:1041 */\n 0x20\n /* \"#utility.yul\":1034:1036 */\n 0x1f\n /* \"#utility.yul\":1027:1032 */\n dup4\n /* \"#utility.yul\":1023:1037 */\n add\n /* \"#utility.yul\":1019:1042 */\n div\n /* \"#utility.yul\":1009:1042 */\n swap1\n pop\n /* \"#utility.yul\":955:1048 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1054:1161 */\ntag_11:\n /* \"#utility.yul\":1098:1106 */\n 0x00\n /* \"#utility.yul\":1148:1153 */\n dup3\n /* \"#utility.yul\":1142:1146 */\n dup3\n /* \"#utility.yul\":1138:1154 */\n shl\n /* \"#utility.yul\":1117:1154 */\n swap1\n pop\n /* \"#utility.yul\":1054:1161 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1167:1560 */\ntag_12:\n /* \"#utility.yul\":1236:1242 */\n 0x00\n /* \"#utility.yul\":1286:1287 */\n 0x08\n /* \"#utility.yul\":1274:1284 */\n dup4\n /* \"#utility.yul\":1270:1288 */\n mul\n /* \"#utility.yul\":1309:1406 */\n tag_37\n /* \"#utility.yul\":1339:1405 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1328:1337 */\n dup3\n /* \"#utility.yul\":1309:1406 */\n tag_11\n jump\t// in\ntag_37:\n /* \"#utility.yul\":1427:1466 */\n tag_38\n /* \"#utility.yul\":1457:1465 */\n dup7\n /* \"#utility.yul\":1446:1455 */\n dup4\n /* \"#utility.yul\":1427:1466 */\n tag_11\n jump\t// in\ntag_38:\n /* \"#utility.yul\":1415:1466 */\n swap6\n pop\n /* \"#utility.yul\":1499:1503 */\n dup1\n /* \"#utility.yul\":1495:1504 */\n not\n /* \"#utility.yul\":1488:1493 */\n dup5\n /* \"#utility.yul\":1484:1505 */\n and\n /* \"#utility.yul\":1475:1505 */\n swap4\n pop\n /* \"#utility.yul\":1548:1552 */\n dup1\n /* \"#utility.yul\":1538:1546 */\n dup7\n /* \"#utility.yul\":1534:1553 */\n and\n /* \"#utility.yul\":1527:1532 */\n dup5\n /* \"#utility.yul\":1524:1554 */\n or\n /* \"#utility.yul\":1514:1554 */\n swap3\n pop\n /* \"#utility.yul\":1243:1560 */\n pop\n pop\n /* \"#utility.yul\":1167:1560 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1566:1643 */\ntag_13:\n /* \"#utility.yul\":1603:1610 */\n 0x00\n /* \"#utility.yul\":1632:1637 */\n dup2\n /* \"#utility.yul\":1621:1637 */\n swap1\n pop\n /* \"#utility.yul\":1566:1643 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1649:1709 */\ntag_14:\n /* \"#utility.yul\":1677:1680 */\n 0x00\n /* \"#utility.yul\":1698:1703 */\n dup2\n /* \"#utility.yul\":1691:1703 */\n swap1\n pop\n /* \"#utility.yul\":1649:1709 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1715:1857 */\ntag_15:\n /* \"#utility.yul\":1765:1774 */\n 0x00\n /* \"#utility.yul\":1798:1851 */\n tag_42\n /* \"#utility.yul\":1816:1850 */\n tag_43\n /* \"#utility.yul\":1825:1849 */\n tag_44\n /* \"#utility.yul\":1843:1848 */\n dup5\n /* \"#utility.yul\":1825:1849 */\n tag_13\n jump\t// in\ntag_44:\n /* \"#utility.yul\":1816:1850 */\n tag_14\n jump\t// in\ntag_43:\n /* \"#utility.yul\":1798:1851 */\n tag_13\n jump\t// in\ntag_42:\n /* \"#utility.yul\":1785:1851 */\n swap1\n pop\n /* \"#utility.yul\":1715:1857 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1863:1938 */\ntag_16:\n /* \"#utility.yul\":1906:1909 */\n 0x00\n /* \"#utility.yul\":1927:1932 */\n dup2\n /* \"#utility.yul\":1920:1932 */\n swap1\n pop\n /* \"#utility.yul\":1863:1938 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1944:2213 */\ntag_17:\n /* \"#utility.yul\":2054:2093 */\n tag_47\n /* \"#utility.yul\":2085:2092 */\n dup4\n /* \"#utility.yul\":2054:2093 */\n tag_15\n jump\t// in\ntag_47:\n /* \"#utility.yul\":2115:2206 */\n tag_48\n /* \"#utility.yul\":2164:2205 */\n tag_49\n /* \"#utility.yul\":2188:2204 */\n dup3\n /* \"#utility.yul\":2164:2205 */\n tag_16\n jump\t// in\ntag_49:\n /* \"#utility.yul\":2156:2162 */\n dup5\n /* \"#utility.yul\":2149:2153 */\n dup5\n /* \"#utility.yul\":2143:2154 */\n sload\n /* \"#utility.yul\":2115:2206 */\n tag_12\n jump\t// in\ntag_48:\n /* \"#utility.yul\":2109:2113 */\n dup3\n /* \"#utility.yul\":2102:2207 */\n sstore\n /* \"#utility.yul\":2020:2213 */\n pop\n /* \"#utility.yul\":1944:2213 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2219:2292 */\ntag_18:\n /* \"#utility.yul\":2264:2267 */\n 0x00\n /* \"#utility.yul\":2219:2292 */\n swap1\n jump\t// out\n /* \"#utility.yul\":2298:2487 */\ntag_19:\n /* \"#utility.yul\":2375:2407 */\n tag_52\n tag_18\n jump\t// in\ntag_52:\n /* \"#utility.yul\":2416:2481 */\n tag_53\n /* \"#utility.yul\":2474:2480 */\n dup2\n /* \"#utility.yul\":2466:2472 */\n dup5\n /* \"#utility.yul\":2460:2464 */\n dup5\n /* \"#utility.yul\":2416:2481 */\n tag_17\n jump\t// in\ntag_53:\n /* \"#utility.yul\":2351:2487 */\n pop\n /* \"#utility.yul\":2298:2487 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2493:2679 */\ntag_20:\n /* \"#utility.yul\":2553:2673 */\ntag_55:\n /* \"#utility.yul\":2570:2573 */\n dup2\n /* \"#utility.yul\":2563:2568 */\n dup2\n /* \"#utility.yul\":2560:2574 */\n lt\n /* \"#utility.yul\":2553:2673 */\n iszero\n tag_57\n jumpi\n /* \"#utility.yul\":2624:2663 */\n tag_58\n /* \"#utility.yul\":2661:2662 */\n 0x00\n /* \"#utility.yul\":2654:2659 */\n dup3\n /* \"#utility.yul\":2624:2663 */\n tag_19\n jump\t// in\ntag_58:\n /* \"#utility.yul\":2597:2598 */\n 0x01\n /* \"#utility.yul\":2590:2595 */\n dup2\n /* \"#utility.yul\":2586:2599 */\n add\n /* \"#utility.yul\":2577:2599 */\n swap1\n pop\n /* \"#utility.yul\":2553:2673 */\n jump(tag_55)\ntag_57:\n /* \"#utility.yul\":2493:2679 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2685:3226 */\ntag_21:\n /* \"#utility.yul\":2785:2787 */\n 0x1f\n /* \"#utility.yul\":2780:2783 */\n dup3\n /* \"#utility.yul\":2777:2788 */\n gt\n /* \"#utility.yul\":2774:3219 */\n iszero\n tag_60\n jumpi\n /* \"#utility.yul\":2819:2856 */\n tag_61\n /* \"#utility.yul\":2850:2855 */\n dup2\n /* \"#utility.yul\":2819:2856 */\n tag_9\n jump\t// in\ntag_61:\n /* \"#utility.yul\":2902:2931 */\n tag_62\n /* \"#utility.yul\":2920:2930 */\n dup5\n /* \"#utility.yul\":2902:2931 */\n tag_10\n jump\t// in\ntag_62:\n /* \"#utility.yul\":2892:2900 */\n dup2\n /* \"#utility.yul\":2888:2932 */\n add\n /* \"#utility.yul\":3085:3087 */\n 0x20\n /* \"#utility.yul\":3073:3083 */\n dup6\n /* \"#utility.yul\":3070:3088 */\n lt\n /* \"#utility.yul\":3067:3116 */\n iszero\n tag_63\n jumpi\n /* \"#utility.yul\":3106:3114 */\n dup2\n /* \"#utility.yul\":3091:3114 */\n swap1\n pop\n /* \"#utility.yul\":3067:3116 */\ntag_63:\n /* \"#utility.yul\":3129:3209 */\n tag_64\n /* \"#utility.yul\":3185:3207 */\n tag_65\n /* \"#utility.yul\":3203:3206 */\n dup6\n /* \"#utility.yul\":3185:3207 */\n tag_10\n jump\t// in\ntag_65:\n /* \"#utility.yul\":3175:3183 */\n dup4\n /* \"#utility.yul\":3171:3208 */\n add\n /* \"#utility.yul\":3158:3169 */\n dup3\n /* \"#utility.yul\":3129:3209 */\n tag_20\n jump\t// in\ntag_64:\n /* \"#utility.yul\":2789:3219 */\n pop\n pop\n /* \"#utility.yul\":2774:3219 */\ntag_60:\n /* \"#utility.yul\":2685:3226 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3232:3349 */\ntag_22:\n /* \"#utility.yul\":3286:3294 */\n 0x00\n /* \"#utility.yul\":3336:3341 */\n dup3\n /* \"#utility.yul\":3330:3334 */\n dup3\n /* \"#utility.yul\":3326:3342 */\n shr\n /* \"#utility.yul\":3305:3342 */\n swap1\n pop\n /* \"#utility.yul\":3232:3349 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3355:3524 */\ntag_23:\n /* \"#utility.yul\":3399:3405 */\n 0x00\n /* \"#utility.yul\":3432:3483 */\n tag_68\n /* \"#utility.yul\":3480:3481 */\n 0x00\n /* \"#utility.yul\":3476:3482 */\n not\n /* \"#utility.yul\":3468:3473 */\n dup5\n /* \"#utility.yul\":3465:3466 */\n 0x08\n /* \"#utility.yul\":3461:3474 */\n mul\n /* \"#utility.yul\":3432:3483 */\n tag_22\n jump\t// in\ntag_68:\n /* \"#utility.yul\":3428:3484 */\n not\n /* \"#utility.yul\":3513:3517 */\n dup1\n /* \"#utility.yul\":3507:3511 */\n dup4\n /* \"#utility.yul\":3503:3518 */\n and\n /* \"#utility.yul\":3493:3518 */\n swap2\n pop\n /* \"#utility.yul\":3406:3524 */\n pop\n /* \"#utility.yul\":3355:3524 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3529:3824 */\ntag_24:\n /* \"#utility.yul\":3605:3609 */\n 0x00\n /* \"#utility.yul\":3751:3780 */\n tag_70\n /* \"#utility.yul\":3776:3779 */\n dup4\n /* \"#utility.yul\":3770:3774 */\n dup4\n /* \"#utility.yul\":3751:3780 */\n tag_23\n jump\t// in\ntag_70:\n /* \"#utility.yul\":3743:3780 */\n swap2\n pop\n /* \"#utility.yul\":3813:3816 */\n dup3\n /* \"#utility.yul\":3810:3811 */\n 0x02\n /* \"#utility.yul\":3806:3817 */\n mul\n /* \"#utility.yul\":3800:3804 */\n dup3\n /* \"#utility.yul\":3797:3818 */\n or\n /* \"#utility.yul\":3789:3818 */\n swap1\n pop\n /* \"#utility.yul\":3529:3824 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3829:5219 */\ntag_2:\n /* \"#utility.yul\":3944:3980 */\n tag_72\n /* \"#utility.yul\":3976:3979 */\n dup3\n /* \"#utility.yul\":3944:3980 */\n tag_5\n jump\t// in\ntag_72:\n /* \"#utility.yul\":4045:4063 */\n 0xffffffffffffffff\n /* \"#utility.yul\":4037:4043 */\n dup2\n /* \"#utility.yul\":4034:4064 */\n gt\n /* \"#utility.yul\":4031:4087 */\n iszero\n tag_73\n jumpi\n /* \"#utility.yul\":4067:4085 */\n tag_74\n tag_6\n jump\t// in\ntag_74:\n /* \"#utility.yul\":4031:4087 */\ntag_73:\n /* \"#utility.yul\":4111:4149 */\n tag_75\n /* \"#utility.yul\":4143:4147 */\n dup3\n /* \"#utility.yul\":4137:4148 */\n sload\n /* \"#utility.yul\":4111:4149 */\n tag_8\n jump\t// in\ntag_75:\n /* \"#utility.yul\":4196:4262 */\n tag_76\n /* \"#utility.yul\":4255:4261 */\n dup3\n /* \"#utility.yul\":4247:4253 */\n dup3\n /* \"#utility.yul\":4241:4245 */\n dup6\n /* \"#utility.yul\":4196:4262 */\n tag_21\n jump\t// in\ntag_76:\n /* \"#utility.yul\":4289:4290 */\n 0x00\n /* \"#utility.yul\":4313:4317 */\n 0x20\n /* \"#utility.yul\":4300:4317 */\n swap1\n pop\n /* \"#utility.yul\":4345:4347 */\n 0x1f\n /* \"#utility.yul\":4337:4343 */\n dup4\n /* \"#utility.yul\":4334:4348 */\n gt\n /* \"#utility.yul\":4362:4363 */\n 0x01\n /* \"#utility.yul\":4357:4974 */\n dup2\n eq\n tag_78\n jumpi\n /* \"#utility.yul\":5018:5019 */\n 0x00\n /* \"#utility.yul\":5035:5041 */\n dup5\n /* \"#utility.yul\":5032:5109 */\n iszero\n tag_79\n jumpi\n /* \"#utility.yul\":5084:5093 */\n dup3\n /* \"#utility.yul\":5079:5082 */\n dup8\n /* \"#utility.yul\":5075:5094 */\n add\n /* \"#utility.yul\":5069:5095 */\n mload\n /* \"#utility.yul\":5060:5095 */\n swap1\n pop\n /* \"#utility.yul\":5032:5109 */\ntag_79:\n /* \"#utility.yul\":5135:5202 */\n tag_80\n /* \"#utility.yul\":5195:5201 */\n dup6\n /* \"#utility.yul\":5188:5193 */\n dup3\n /* \"#utility.yul\":5135:5202 */\n tag_24\n jump\t// in\ntag_80:\n /* \"#utility.yul\":5129:5133 */\n dup7\n /* \"#utility.yul\":5122:5203 */\n sstore\n /* \"#utility.yul\":4991:5213 */\n pop\n /* \"#utility.yul\":4327:5213 */\n jump(tag_77)\n /* \"#utility.yul\":4357:4974 */\ntag_78:\n /* \"#utility.yul\":4409:4413 */\n 0x1f\n /* \"#utility.yul\":4405:4414 */\n not\n /* \"#utility.yul\":4397:4403 */\n dup5\n /* \"#utility.yul\":4393:4415 */\n and\n /* \"#utility.yul\":4443:4479 */\n tag_81\n /* \"#utility.yul\":4474:4478 */\n dup7\n /* \"#utility.yul\":4443:4479 */\n tag_9\n jump\t// in\ntag_81:\n /* \"#utility.yul\":4501:4502 */\n 0x00\n /* \"#utility.yul\":4515:4723 */\ntag_82:\n /* \"#utility.yul\":4529:4536 */\n dup3\n /* \"#utility.yul\":4526:4527 */\n dup2\n /* \"#utility.yul\":4523:4537 */\n lt\n /* \"#utility.yul\":4515:4723 */\n iszero\n tag_84\n jumpi\n /* \"#utility.yul\":4608:4617 */\n dup5\n /* \"#utility.yul\":4603:4606 */\n dup10\n /* \"#utility.yul\":4599:4618 */\n add\n /* \"#utility.yul\":4593:4619 */\n mload\n /* \"#utility.yul\":4585:4591 */\n dup3\n /* \"#utility.yul\":4578:4620 */\n sstore\n /* \"#utility.yul\":4659:4660 */\n 0x01\n /* \"#utility.yul\":4651:4657 */\n dup3\n /* \"#utility.yul\":4647:4661 */\n add\n /* \"#utility.yul\":4637:4661 */\n swap2\n pop\n /* \"#utility.yul\":4706:4708 */\n 0x20\n /* \"#utility.yul\":4695:4704 */\n dup6\n /* \"#utility.yul\":4691:4709 */\n add\n /* \"#utility.yul\":4678:4709 */\n swap5\n pop\n /* \"#utility.yul\":4552:4556 */\n 0x20\n /* \"#utility.yul\":4549:4550 */\n dup2\n /* \"#utility.yul\":4545:4557 */\n add\n /* \"#utility.yul\":4540:4557 */\n swap1\n pop\n /* \"#utility.yul\":4515:4723 */\n jump(tag_82)\ntag_84:\n /* \"#utility.yul\":4751:4757 */\n dup7\n /* \"#utility.yul\":4742:4749 */\n dup4\n /* \"#utility.yul\":4739:4758 */\n lt\n /* \"#utility.yul\":4736:4915 */\n iszero\n tag_85\n jumpi\n /* \"#utility.yul\":4809:4818 */\n dup5\n /* \"#utility.yul\":4804:4807 */\n dup10\n /* \"#utility.yul\":4800:4819 */\n add\n /* \"#utility.yul\":4794:4820 */\n mload\n /* \"#utility.yul\":4852:4900 */\n tag_86\n /* \"#utility.yul\":4894:4898 */\n 0x1f\n /* \"#utility.yul\":4886:4892 */\n dup10\n /* \"#utility.yul\":4882:4899 */\n and\n /* \"#utility.yul\":4871:4880 */\n dup3\n /* \"#utility.yul\":4852:4900 */\n tag_23\n jump\t// in\ntag_86:\n /* \"#utility.yul\":4844:4850 */\n dup4\n /* \"#utility.yul\":4837:4901 */\n sstore\n /* \"#utility.yul\":4759:4915 */\n pop\n /* \"#utility.yul\":4736:4915 */\ntag_85:\n /* \"#utility.yul\":4961:4962 */\n 0x01\n /* \"#utility.yul\":4957:4958 */\n 0x02\n /* \"#utility.yul\":4949:4955 */\n dup9\n /* \"#utility.yul\":4945:4959 */\n mul\n /* \"#utility.yul\":4941:4963 */\n add\n /* \"#utility.yul\":4935:4939 */\n dup9\n /* \"#utility.yul\":4928:4964 */\n sstore\n /* \"#utility.yul\":4364:4974 */\n pop\n pop\n pop\n /* \"#utility.yul\":4327:5213 */\ntag_77:\n pop\n /* \"#utility.yul\":3919:5219 */\n pop\n pop\n pop\n /* \"#utility.yul\":3829:5219 */\n pop\n pop\n jump\t// out\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":516:2684 contract OO_GettingStarted {... */\ntag_4:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\ndata_211fb6934242c4a170a55409f23721024ef4610d68f86ceb2da8f56040a35d65 513a446964207468652074656d7065726174757265206f6e207468652032357468206f66204a756c79203230323220696e204d616e68617474616e204e5920657863656564203335633f20413a3120666f72207965732e203020666f72206e6f2e\n\nsub_0: assembly {\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":516:2684 contract OO_GettingStarted {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x606deecd\n eq\n tag_3\n jumpi\n dup1\n 0xf25ffb20\n eq\n tag_4\n jumpi\n dup1\n 0xfa776152\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1432:2062 function requestData() public {... */\n tag_3:\n tag_6\n tag_7\n jump\t// in\n tag_6:\n stop\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2521:2682 function getSettledData() public view returns (int256) {... */\n tag_4:\n tag_8\n tag_9\n jump\t// in\n tag_8:\n mload(0x40)\n tag_10\n swap2\n swap1\n tag_11\n jump\t// in\n tag_10:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2325:2438 function settleRequest() public {... */\n tag_5:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1432:2062 function requestData() public {... */\n tag_7:\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1486:1501 block.timestamp */\n timestamp\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1472:1483 requestTime */\n 0x03\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1472:1501 requestTime = block.timestamp */\n dup2\n swap1\n sstore\n pop\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1562:1581 IERC20 bondCurrency */\n 0x00\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1591:1633 0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6 */\n 0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1562:1634 IERC20 bondCurrency = IERC20(0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6) */\n swap1\n pop\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1685:1699 uint256 reward */\n 0x00\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1904:1906 oo */\n dup1\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1904:1919 oo.requestPrice */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x11df92f1\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1920:1930 identifier */\n sload(0x01)\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1932:1943 requestTime */\n sload(0x03)\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1945:1958 ancillaryData */\n 0x02\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1960:1972 bondCurrency */\n dup7\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1974:1980 reward */\n dup7\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1904:1981 oo.requestPrice(identifier, requestTime, ancillaryData, bondCurrency, reward) */\n mload(0x40)\n dup7\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_15\n swap6\n swap5\n swap4\n swap3\n swap2\n swap1\n tag_16\n jump\t// in\n tag_15:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_18\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_18:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_19\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n pop\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1991:1993 oo */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1991:2011 oo.setCustomLiveness */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x473c45fe\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2012:2022 identifier */\n sload(0x01)\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2024:2035 requestTime */\n sload(0x03)\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2037:2050 ancillaryData */\n 0x02\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2052:2054 30 */\n 0x1e\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1991:2055 oo.setCustomLiveness(identifier, requestTime, ancillaryData, 30) */\n mload(0x40)\n dup6\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_21\n swap5\n swap4\n swap3\n swap2\n swap1\n tag_22\n jump\t// in\n tag_21:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n dup1\n extcodesize\n iszero\n dup1\n iszero\n tag_23\n jumpi\n 0x00\n dup1\n revert\n tag_23:\n pop\n gas\n call\n iszero\n dup1\n iszero\n tag_25\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_25:\n pop\n pop\n pop\n pop\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1462:2062 {... */\n pop\n pop\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":1432:2062 function requestData() public {... */\n jump\t// out\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2521:2682 function getSettledData() public view returns (int256) {... */\n tag_9:\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2568:2574 int256 */\n 0x00\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2593:2595 oo */\n dup1\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2593:2606 oo.getRequest */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xa9904f9b\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2615:2619 this */\n address\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2622:2632 identifier */\n sload(0x01)\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2634:2645 requestTime */\n sload(0x03)\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2647:2660 ancillaryData */\n 0x02\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2593:2661 oo.getRequest(address(this), identifier, requestTime, ancillaryData) */\n mload(0x40)\n dup6\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_27\n swap5\n swap4\n swap3\n swap2\n swap1\n tag_28\n jump\t// in\n tag_27:\n 0x0200\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup7\n gas\n staticcall\n iszero\n dup1\n iszero\n tag_30\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_30:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_31\n swap2\n swap1\n tag_32\n jump\t// in\n tag_31:\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2593:2675 oo.getRequest(address(this), identifier, requestTime, ancillaryData).resolvedPrice */\n 0xc0\n add\n mload\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2586:2675 return oo.getRequest(address(this), identifier, requestTime, ancillaryData).resolvedPrice */\n swap1\n pop\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2521:2682 function getSettledData() public view returns (int256) {... */\n swap1\n jump\t// out\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2325:2438 function settleRequest() public {... */\n tag_13:\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2367:2369 oo */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2367:2376 oo.settle */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0x5e9a79a9\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2385:2389 this */\n address\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2392:2402 identifier */\n sload(0x01)\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2404:2415 requestTime */\n sload(0x03)\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2417:2430 ancillaryData */\n 0x02\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2367:2431 oo.settle(address(this), identifier, requestTime, ancillaryData) */\n mload(0x40)\n dup6\n 0xffffffff\n and\n 0xe0\n shl\n dup2\n mstore\n 0x04\n add\n tag_34\n swap5\n swap4\n swap3\n swap2\n swap1\n tag_28\n jump\t// in\n tag_34:\n 0x20\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n 0x00\n dup8\n gas\n call\n iszero\n dup1\n iszero\n tag_36\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_36:\n pop\n pop\n pop\n pop\n mload(0x40)\n returndatasize\n not(0x1f)\n 0x1f\n dup3\n add\n and\n dup3\n add\n dup1\n 0x40\n mstore\n pop\n dup2\n add\n swap1\n tag_37\n swap2\n swap1\n tag_20\n jump\t// in\n tag_37:\n pop\n /* \"gist-fba5d2812d940759f4f7585741b529a4/OO_GettingStarted.sol\":2325:2438 function settleRequest() public {... */\n jump\t// out\n /* \"#utility.yul\":7:83 */\n tag_38:\n /* \"#utility.yul\":43:50 */\n 0x00\n /* \"#utility.yul\":72:77 */\n dup2\n /* \"#utility.yul\":61:77 */\n swap1\n pop\n /* \"#utility.yul\":7:83 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":89:204 */\n tag_39:\n /* \"#utility.yul\":174:197 */\n tag_86\n /* \"#utility.yul\":191:196 */\n dup2\n /* \"#utility.yul\":174:197 */\n tag_38\n jump\t// in\n tag_86:\n /* \"#utility.yul\":169:172 */\n dup3\n /* \"#utility.yul\":162:198 */\n mstore\n /* \"#utility.yul\":89:204 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":210:428 */\n tag_11:\n /* \"#utility.yul\":301:305 */\n 0x00\n /* \"#utility.yul\":339:341 */\n 0x20\n /* \"#utility.yul\":328:337 */\n dup3\n /* \"#utility.yul\":324:342 */\n add\n /* \"#utility.yul\":316:342 */\n swap1\n pop\n /* \"#utility.yul\":352:421 */\n tag_88\n /* \"#utility.yul\":418:419 */\n 0x00\n /* \"#utility.yul\":407:416 */\n dup4\n /* \"#utility.yul\":403:420 */\n add\n /* \"#utility.yul\":394:400 */\n dup5\n /* \"#utility.yul\":352:421 */\n tag_39\n jump\t// in\n tag_88:\n /* \"#utility.yul\":210:428 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":434:511 */\n tag_40:\n /* \"#utility.yul\":471:478 */\n 0x00\n /* \"#utility.yul\":500:505 */\n dup2\n /* \"#utility.yul\":489:505 */\n swap1\n pop\n /* \"#utility.yul\":434:511 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":517:635 */\n tag_41:\n /* \"#utility.yul\":604:628 */\n tag_91\n /* \"#utility.yul\":622:627 */\n dup2\n /* \"#utility.yul\":604:628 */\n tag_40\n jump\t// in\n tag_91:\n /* \"#utility.yul\":599:602 */\n dup3\n /* \"#utility.yul\":592:629 */\n mstore\n /* \"#utility.yul\":517:635 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":641:718 */\n tag_42:\n /* \"#utility.yul\":678:685 */\n 0x00\n /* \"#utility.yul\":707:712 */\n dup2\n /* \"#utility.yul\":696:712 */\n swap1\n pop\n /* \"#utility.yul\":641:718 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":724:842 */\n tag_43:\n /* \"#utility.yul\":811:835 */\n tag_94\n /* \"#utility.yul\":829:834 */\n dup2\n /* \"#utility.yul\":811:835 */\n tag_42\n jump\t// in\n tag_94:\n /* \"#utility.yul\":806:809 */\n dup3\n /* \"#utility.yul\":799:836 */\n mstore\n /* \"#utility.yul\":724:842 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":848:1028 */\n tag_44:\n /* \"#utility.yul\":896:973 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":893:894 */\n 0x00\n /* \"#utility.yul\":886:974 */\n mstore\n /* \"#utility.yul\":993:997 */\n 0x22\n /* \"#utility.yul\":990:991 */\n 0x04\n /* \"#utility.yul\":983:998 */\n mstore\n /* \"#utility.yul\":1017:1021 */\n 0x24\n /* \"#utility.yul\":1014:1015 */\n 0x00\n /* \"#utility.yul\":1007:1022 */\n revert\n /* \"#utility.yul\":1034:1354 */\n tag_45:\n /* \"#utility.yul\":1078:1084 */\n 0x00\n /* \"#utility.yul\":1115:1116 */\n 0x02\n /* \"#utility.yul\":1109:1113 */\n dup3\n /* \"#utility.yul\":1105:1117 */\n div\n /* \"#utility.yul\":1095:1117 */\n swap1\n pop\n /* \"#utility.yul\":1162:1163 */\n 0x01\n /* \"#utility.yul\":1156:1160 */\n dup3\n /* \"#utility.yul\":1152:1164 */\n and\n /* \"#utility.yul\":1183:1201 */\n dup1\n /* \"#utility.yul\":1173:1254 */\n tag_97\n jumpi\n /* \"#utility.yul\":1239:1243 */\n 0x7f\n /* \"#utility.yul\":1231:1237 */\n dup3\n /* \"#utility.yul\":1227:1244 */\n and\n /* \"#utility.yul\":1217:1244 */\n swap2\n pop\n /* \"#utility.yul\":1173:1254 */\n tag_97:\n /* \"#utility.yul\":1301:1303 */\n 0x20\n /* \"#utility.yul\":1293:1299 */\n dup3\n /* \"#utility.yul\":1290:1304 */\n lt\n /* \"#utility.yul\":1270:1288 */\n dup2\n /* \"#utility.yul\":1267:1305 */\n sub\n /* \"#utility.yul\":1264:1348 */\n tag_98\n jumpi\n /* \"#utility.yul\":1320:1338 */\n tag_99\n tag_44\n jump\t// in\n tag_99:\n /* \"#utility.yul\":1264:1348 */\n tag_98:\n /* \"#utility.yul\":1085:1354 */\n pop\n /* \"#utility.yul\":1034:1354 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1360:1528 */\n tag_46:\n /* \"#utility.yul\":1443:1454 */\n 0x00\n /* \"#utility.yul\":1477:1483 */\n dup3\n /* \"#utility.yul\":1472:1475 */\n dup3\n /* \"#utility.yul\":1465:1484 */\n mstore\n /* \"#utility.yul\":1517:1521 */\n 0x20\n /* \"#utility.yul\":1512:1515 */\n dup3\n /* \"#utility.yul\":1508:1522 */\n add\n /* \"#utility.yul\":1493:1522 */\n swap1\n pop\n /* \"#utility.yul\":1360:1528 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1534:1674 */\n tag_47:\n /* \"#utility.yul\":1582:1586 */\n 0x00\n /* \"#utility.yul\":1605:1608 */\n dup2\n /* \"#utility.yul\":1597:1608 */\n swap1\n pop\n /* \"#utility.yul\":1628:1631 */\n dup2\n /* \"#utility.yul\":1625:1626 */\n 0x00\n /* \"#utility.yul\":1618:1632 */\n mstore\n /* \"#utility.yul\":1662:1666 */\n 0x20\n /* \"#utility.yul\":1659:1660 */\n 0x00\n /* \"#utility.yul\":1649:1667 */\n keccak256\n /* \"#utility.yul\":1641:1667 */\n swap1\n pop\n /* \"#utility.yul\":1534:1674 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1702:2529 */\n tag_48:\n /* \"#utility.yul\":1785:1788 */\n 0x00\n /* \"#utility.yul\":1822:1827 */\n dup2\n /* \"#utility.yul\":1816:1828 */\n sload\n /* \"#utility.yul\":1851:1887 */\n tag_103\n /* \"#utility.yul\":1877:1886 */\n dup2\n /* \"#utility.yul\":1851:1887 */\n tag_45\n jump\t// in\n tag_103:\n /* \"#utility.yul\":1903:1973 */\n tag_104\n /* \"#utility.yul\":1966:1972 */\n dup2\n /* \"#utility.yul\":1961:1964 */\n dup7\n /* \"#utility.yul\":1903:1973 */\n tag_46\n jump\t// in\n tag_104:\n /* \"#utility.yul\":1896:1973 */\n swap5\n pop\n /* \"#utility.yul\":2004:2005 */\n 0x01\n /* \"#utility.yul\":1993:2002 */\n dup3\n /* \"#utility.yul\":1989:2006 */\n and\n /* \"#utility.yul\":2020:2021 */\n 0x00\n /* \"#utility.yul\":2015:2179 */\n dup2\n eq\n tag_106\n jumpi\n /* \"#utility.yul\":2193:2194 */\n 0x01\n /* \"#utility.yul\":2188:2523 */\n dup2\n eq\n tag_107\n jumpi\n /* \"#utility.yul\":1982:2523 */\n jump(tag_105)\n /* \"#utility.yul\":2015:2179 */\n tag_106:\n /* \"#utility.yul\":2099:2103 */\n 0xff\n /* \"#utility.yul\":2095:2104 */\n not\n /* \"#utility.yul\":2084:2093 */\n dup4\n /* \"#utility.yul\":2080:2105 */\n and\n /* \"#utility.yul\":2075:2078 */\n dup7\n /* \"#utility.yul\":2068:2106 */\n mstore\n /* \"#utility.yul\":2159:2165 */\n dup2\n /* \"#utility.yul\":2152:2166 */\n iszero\n /* \"#utility.yul\":2145:2167 */\n iszero\n /* \"#utility.yul\":2139:2143 */\n 0x20\n /* \"#utility.yul\":2135:2168 */\n mul\n /* \"#utility.yul\":2130:2133 */\n dup7\n /* \"#utility.yul\":2126:2169 */\n add\n /* \"#utility.yul\":2119:2169 */\n swap4\n pop\n /* \"#utility.yul\":2015:2179 */\n jump(tag_105)\n /* \"#utility.yul\":2188:2523 */\n tag_107:\n /* \"#utility.yul\":2255:2292 */\n tag_108\n /* \"#utility.yul\":2286:2291 */\n dup6\n /* \"#utility.yul\":2255:2292 */\n tag_47\n jump\t// in\n tag_108:\n /* \"#utility.yul\":2314:2315 */\n 0x00\n /* \"#utility.yul\":2328:2482 */\n tag_109:\n /* \"#utility.yul\":2342:2348 */\n dup4\n /* \"#utility.yul\":2339:2340 */\n dup2\n /* \"#utility.yul\":2336:2349 */\n lt\n /* \"#utility.yul\":2328:2482 */\n iszero\n tag_111\n jumpi\n /* \"#utility.yul\":2416:2423 */\n dup2\n /* \"#utility.yul\":2410:2424 */\n sload\n /* \"#utility.yul\":2406:2407 */\n dup2\n /* \"#utility.yul\":2401:2404 */\n dup10\n /* \"#utility.yul\":2397:2408 */\n add\n /* \"#utility.yul\":2390:2425 */\n mstore\n /* \"#utility.yul\":2466:2467 */\n 0x01\n /* \"#utility.yul\":2457:2464 */\n dup3\n /* \"#utility.yul\":2453:2468 */\n add\n /* \"#utility.yul\":2442:2468 */\n swap2\n pop\n /* \"#utility.yul\":2364:2368 */\n 0x20\n /* \"#utility.yul\":2361:2362 */\n dup2\n /* \"#utility.yul\":2357:2369 */\n add\n /* \"#utility.yul\":2352:2369 */\n swap1\n pop\n /* \"#utility.yul\":2328:2482 */\n jump(tag_109)\n tag_111:\n /* \"#utility.yul\":2511:2512 */\n dup1\n /* \"#utility.yul\":2506:2509 */\n dup9\n /* \"#utility.yul\":2502:2513 */\n add\n /* \"#utility.yul\":2495:2513 */\n swap6\n pop\n /* \"#utility.yul\":2195:2523 */\n pop\n pop\n /* \"#utility.yul\":1982:2523 */\n tag_105:\n pop\n /* \"#utility.yul\":1789:2529 */\n pop\n pop\n /* \"#utility.yul\":1702:2529 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2535:2661 */\n tag_49:\n /* \"#utility.yul\":2572:2579 */\n 0x00\n /* \"#utility.yul\":2612:2654 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":2605:2610 */\n dup3\n /* \"#utility.yul\":2601:2655 */\n and\n /* \"#utility.yul\":2590:2655 */\n swap1\n pop\n /* \"#utility.yul\":2535:2661 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2667:2727 */\n tag_50:\n /* \"#utility.yul\":2695:2698 */\n 0x00\n /* \"#utility.yul\":2716:2721 */\n dup2\n /* \"#utility.yul\":2709:2721 */\n swap1\n pop\n /* \"#utility.yul\":2667:2727 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2733:2875 */\n tag_51:\n /* \"#utility.yul\":2783:2792 */\n 0x00\n /* \"#utility.yul\":2816:2869 */\n tag_115\n /* \"#utility.yul\":2834:2868 */\n tag_116\n /* \"#utility.yul\":2843:2867 */\n tag_117\n /* \"#utility.yul\":2861:2866 */\n dup5\n /* \"#utility.yul\":2843:2867 */\n tag_49\n jump\t// in\n tag_117:\n /* \"#utility.yul\":2834:2868 */\n tag_50\n jump\t// in\n tag_116:\n /* \"#utility.yul\":2816:2869 */\n tag_49\n jump\t// in\n tag_115:\n /* \"#utility.yul\":2803:2869 */\n swap1\n pop\n /* \"#utility.yul\":2733:2875 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":2881:3007 */\n tag_52:\n /* \"#utility.yul\":2931:2940 */\n 0x00\n /* \"#utility.yul\":2964:3001 */\n tag_119\n /* \"#utility.yul\":2995:3000 */\n dup3\n /* \"#utility.yul\":2964:3001 */\n tag_51\n jump\t// in\n tag_119:\n /* \"#utility.yul\":2951:3001 */\n swap1\n pop\n /* \"#utility.yul\":2881:3007 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3013:3152 */\n tag_53:\n /* \"#utility.yul\":3076:3085 */\n 0x00\n /* \"#utility.yul\":3109:3146 */\n tag_121\n /* \"#utility.yul\":3140:3145 */\n dup3\n /* \"#utility.yul\":3109:3146 */\n tag_52\n jump\t// in\n tag_121:\n /* \"#utility.yul\":3096:3146 */\n swap1\n pop\n /* \"#utility.yul\":3013:3152 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":3158:3315 */\n tag_54:\n /* \"#utility.yul\":3258:3308 */\n tag_123\n /* \"#utility.yul\":3302:3307 */\n dup2\n /* \"#utility.yul\":3258:3308 */\n tag_53\n jump\t// in\n tag_123:\n /* \"#utility.yul\":3253:3256 */\n dup3\n /* \"#utility.yul\":3246:3309 */\n mstore\n /* \"#utility.yul\":3158:3315 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3321:4092 */\n tag_16:\n /* \"#utility.yul\":3554:3558 */\n 0x00\n /* \"#utility.yul\":3592:3595 */\n 0xa0\n /* \"#utility.yul\":3581:3590 */\n dup3\n /* \"#utility.yul\":3577:3596 */\n add\n /* \"#utility.yul\":3569:3596 */\n swap1\n pop\n /* \"#utility.yul\":3606:3677 */\n tag_125\n /* \"#utility.yul\":3674:3675 */\n 0x00\n /* \"#utility.yul\":3663:3672 */\n dup4\n /* \"#utility.yul\":3659:3676 */\n add\n /* \"#utility.yul\":3650:3656 */\n dup9\n /* \"#utility.yul\":3606:3677 */\n tag_41\n jump\t// in\n tag_125:\n /* \"#utility.yul\":3687:3759 */\n tag_126\n /* \"#utility.yul\":3755:3757 */\n 0x20\n /* \"#utility.yul\":3744:3753 */\n dup4\n /* \"#utility.yul\":3740:3758 */\n add\n /* \"#utility.yul\":3731:3737 */\n dup8\n /* \"#utility.yul\":3687:3759 */\n tag_43\n jump\t// in\n tag_126:\n /* \"#utility.yul\":3806:3815 */\n dup2\n /* \"#utility.yul\":3800:3804 */\n dup2\n /* \"#utility.yul\":3796:3816 */\n sub\n /* \"#utility.yul\":3791:3793 */\n 0x40\n /* \"#utility.yul\":3780:3789 */\n dup4\n /* \"#utility.yul\":3776:3794 */\n add\n /* \"#utility.yul\":3769:3817 */\n mstore\n /* \"#utility.yul\":3834:3907 */\n tag_127\n /* \"#utility.yul\":3902:3906 */\n dup2\n /* \"#utility.yul\":3893:3899 */\n dup7\n /* \"#utility.yul\":3834:3907 */\n tag_48\n jump\t// in\n tag_127:\n /* \"#utility.yul\":3826:3907 */\n swap1\n pop\n /* \"#utility.yul\":3917:4002 */\n tag_128\n /* \"#utility.yul\":3998:4000 */\n 0x60\n /* \"#utility.yul\":3987:3996 */\n dup4\n /* \"#utility.yul\":3983:4001 */\n add\n /* \"#utility.yul\":3974:3980 */\n dup6\n /* \"#utility.yul\":3917:4002 */\n tag_54\n jump\t// in\n tag_128:\n /* \"#utility.yul\":4012:4085 */\n tag_129\n /* \"#utility.yul\":4080:4083 */\n 0x80\n /* \"#utility.yul\":4069:4078 */\n dup4\n /* \"#utility.yul\":4065:4084 */\n add\n /* \"#utility.yul\":4056:4062 */\n dup5\n /* \"#utility.yul\":4012:4085 */\n tag_43\n jump\t// in\n tag_129:\n /* \"#utility.yul\":3321:4092 */\n swap7\n swap6\n pop\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4098:4173 */\n tag_55:\n /* \"#utility.yul\":4131:4137 */\n 0x00\n /* \"#utility.yul\":4164:4166 */\n 0x40\n /* \"#utility.yul\":4158:4167 */\n mload\n /* \"#utility.yul\":4148:4167 */\n swap1\n pop\n /* \"#utility.yul\":4098:4173 */\n swap1\n jump\t// out\n /* \"#utility.yul\":4179:4296 */\n tag_56:\n /* \"#utility.yul\":4288:4289 */\n 0x00\n /* \"#utility.yul\":4285:4286 */\n dup1\n /* \"#utility.yul\":4278:4290 */\n revert\n /* \"#utility.yul\":4425:4547 */\n tag_58:\n /* \"#utility.yul\":4498:4522 */\n tag_134\n /* \"#utility.yul\":4516:4521 */\n dup2\n /* \"#utility.yul\":4498:4522 */\n tag_42\n jump\t// in\n tag_134:\n /* \"#utility.yul\":4491:4496 */\n dup2\n /* \"#utility.yul\":4488:4523 */\n eq\n /* \"#utility.yul\":4478:4541 */\n tag_135\n jumpi\n /* \"#utility.yul\":4537:4538 */\n 0x00\n /* \"#utility.yul\":4534:4535 */\n dup1\n /* \"#utility.yul\":4527:4539 */\n revert\n /* \"#utility.yul\":4478:4541 */\n tag_135:\n /* \"#utility.yul\":4425:4547 */\n pop\n jump\t// out\n /* \"#utility.yul\":4553:4696 */\n tag_59:\n /* \"#utility.yul\":4610:4615 */\n 0x00\n /* \"#utility.yul\":4641:4647 */\n dup2\n /* \"#utility.yul\":4635:4648 */\n mload\n /* \"#utility.yul\":4626:4648 */\n swap1\n pop\n /* \"#utility.yul\":4657:4690 */\n tag_137\n /* \"#utility.yul\":4684:4689 */\n dup2\n /* \"#utility.yul\":4657:4690 */\n tag_58\n jump\t// in\n tag_137:\n /* \"#utility.yul\":4553:4696 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4702:5053 */\n tag_20:\n /* \"#utility.yul\":4772:4778 */\n 0x00\n /* \"#utility.yul\":4821:4823 */\n 0x20\n /* \"#utility.yul\":4809:4818 */\n dup3\n /* \"#utility.yul\":4800:4807 */\n dup5\n /* \"#utility.yul\":4796:4819 */\n sub\n /* \"#utility.yul\":4792:4824 */\n slt\n /* \"#utility.yul\":4789:4908 */\n iszero\n tag_139\n jumpi\n /* \"#utility.yul\":4827:4906 */\n tag_140\n tag_56\n jump\t// in\n tag_140:\n /* \"#utility.yul\":4789:4908 */\n tag_139:\n /* \"#utility.yul\":4947:4948 */\n 0x00\n /* \"#utility.yul\":4972:5036 */\n tag_141\n /* \"#utility.yul\":5028:5035 */\n dup5\n /* \"#utility.yul\":5019:5025 */\n dup3\n /* \"#utility.yul\":5008:5017 */\n dup6\n /* \"#utility.yul\":5004:5026 */\n add\n /* \"#utility.yul\":4972:5036 */\n tag_59\n jump\t// in\n tag_141:\n /* \"#utility.yul\":4962:5036 */\n swap2\n pop\n /* \"#utility.yul\":4918:5046 */\n pop\n /* \"#utility.yul\":4702:5053 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5059:5145 */\n tag_60:\n /* \"#utility.yul\":5105:5112 */\n 0x00\n /* \"#utility.yul\":5134:5139 */\n dup2\n /* \"#utility.yul\":5123:5139 */\n swap1\n pop\n /* \"#utility.yul\":5059:5145 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":5151:5311 */\n tag_61:\n /* \"#utility.yul\":5210:5219 */\n 0x00\n /* \"#utility.yul\":5243:5305 */\n tag_144\n /* \"#utility.yul\":5261:5304 */\n tag_145\n /* \"#utility.yul\":5270:5303 */\n tag_146\n /* \"#utility.yul\":5297:5302 */\n dup5\n /* \"#utility.yul\":5270:5303 */\n tag_60\n jump\t// in\n tag_146:\n /* \"#utility.yul\":5261:5304 */\n tag_50\n jump\t// in\n tag_145:\n /* \"#utility.yul\":5243:5305 */\n tag_42\n jump\t// in\n tag_144:\n /* \"#utility.yul\":5230:5305 */\n swap1\n pop\n /* \"#utility.yul\":5151:5311 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":5317:5466 */\n tag_62:\n /* \"#utility.yul\":5413:5459 */\n tag_148\n /* \"#utility.yul\":5453:5458 */\n dup2\n /* \"#utility.yul\":5413:5459 */\n tag_61\n jump\t// in\n tag_148:\n /* \"#utility.yul\":5408:5411 */\n dup3\n /* \"#utility.yul\":5401:5460 */\n mstore\n /* \"#utility.yul\":5317:5466 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5472:6124 */\n tag_22:\n /* \"#utility.yul\":5673:5677 */\n 0x00\n /* \"#utility.yul\":5711:5714 */\n 0x80\n /* \"#utility.yul\":5700:5709 */\n dup3\n /* \"#utility.yul\":5696:5715 */\n add\n /* \"#utility.yul\":5688:5715 */\n swap1\n pop\n /* \"#utility.yul\":5725:5796 */\n tag_150\n /* \"#utility.yul\":5793:5794 */\n 0x00\n /* \"#utility.yul\":5782:5791 */\n dup4\n /* \"#utility.yul\":5778:5795 */\n add\n /* \"#utility.yul\":5769:5775 */\n dup8\n /* \"#utility.yul\":5725:5796 */\n tag_41\n jump\t// in\n tag_150:\n /* \"#utility.yul\":5806:5878 */\n tag_151\n /* \"#utility.yul\":5874:5876 */\n 0x20\n /* \"#utility.yul\":5863:5872 */\n dup4\n /* \"#utility.yul\":5859:5877 */\n add\n /* \"#utility.yul\":5850:5856 */\n dup7\n /* \"#utility.yul\":5806:5878 */\n tag_43\n jump\t// in\n tag_151:\n /* \"#utility.yul\":5925:5934 */\n dup2\n /* \"#utility.yul\":5919:5923 */\n dup2\n /* \"#utility.yul\":5915:5935 */\n sub\n /* \"#utility.yul\":5910:5912 */\n 0x40\n /* \"#utility.yul\":5899:5908 */\n dup4\n /* \"#utility.yul\":5895:5913 */\n add\n /* \"#utility.yul\":5888:5936 */\n mstore\n /* \"#utility.yul\":5953:6026 */\n tag_152\n /* \"#utility.yul\":6021:6025 */\n dup2\n /* \"#utility.yul\":6012:6018 */\n dup6\n /* \"#utility.yul\":5953:6026 */\n tag_48\n jump\t// in\n tag_152:\n /* \"#utility.yul\":5945:6026 */\n swap1\n pop\n /* \"#utility.yul\":6036:6117 */\n tag_153\n /* \"#utility.yul\":6113:6115 */\n 0x60\n /* \"#utility.yul\":6102:6111 */\n dup4\n /* \"#utility.yul\":6098:6116 */\n add\n /* \"#utility.yul\":6089:6095 */\n dup5\n /* \"#utility.yul\":6036:6117 */\n tag_62\n jump\t// in\n tag_153:\n /* \"#utility.yul\":5472:6124 */\n swap6\n swap5\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6130:6226 */\n tag_63:\n /* \"#utility.yul\":6167:6174 */\n 0x00\n /* \"#utility.yul\":6196:6220 */\n tag_155\n /* \"#utility.yul\":6214:6219 */\n dup3\n /* \"#utility.yul\":6196:6220 */\n tag_49\n jump\t// in\n tag_155:\n /* \"#utility.yul\":6185:6220 */\n swap1\n pop\n /* \"#utility.yul\":6130:6226 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6232:6350 */\n tag_64:\n /* \"#utility.yul\":6319:6343 */\n tag_157\n /* \"#utility.yul\":6337:6342 */\n dup2\n /* \"#utility.yul\":6319:6343 */\n tag_63\n jump\t// in\n tag_157:\n /* \"#utility.yul\":6314:6317 */\n dup3\n /* \"#utility.yul\":6307:6344 */\n mstore\n /* \"#utility.yul\":6232:6350 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6356:6990 */\n tag_28:\n /* \"#utility.yul\":6548:6552 */\n 0x00\n /* \"#utility.yul\":6586:6589 */\n 0x80\n /* \"#utility.yul\":6575:6584 */\n dup3\n /* \"#utility.yul\":6571:6590 */\n add\n /* \"#utility.yul\":6563:6590 */\n swap1\n pop\n /* \"#utility.yul\":6600:6671 */\n tag_159\n /* \"#utility.yul\":6668:6669 */\n 0x00\n /* \"#utility.yul\":6657:6666 */\n dup4\n /* \"#utility.yul\":6653:6670 */\n add\n /* \"#utility.yul\":6644:6650 */\n dup8\n /* \"#utility.yul\":6600:6671 */\n tag_64\n jump\t// in\n tag_159:\n /* \"#utility.yul\":6681:6753 */\n tag_160\n /* \"#utility.yul\":6749:6751 */\n 0x20\n /* \"#utility.yul\":6738:6747 */\n dup4\n /* \"#utility.yul\":6734:6752 */\n add\n /* \"#utility.yul\":6725:6731 */\n dup7\n /* \"#utility.yul\":6681:6753 */\n tag_41\n jump\t// in\n tag_160:\n /* \"#utility.yul\":6763:6835 */\n tag_161\n /* \"#utility.yul\":6831:6833 */\n 0x40\n /* \"#utility.yul\":6820:6829 */\n dup4\n /* \"#utility.yul\":6816:6834 */\n add\n /* \"#utility.yul\":6807:6813 */\n dup6\n /* \"#utility.yul\":6763:6835 */\n tag_43\n jump\t// in\n tag_161:\n /* \"#utility.yul\":6882:6891 */\n dup2\n /* \"#utility.yul\":6876:6880 */\n dup2\n /* \"#utility.yul\":6872:6892 */\n sub\n /* \"#utility.yul\":6867:6869 */\n 0x60\n /* \"#utility.yul\":6856:6865 */\n dup4\n /* \"#utility.yul\":6852:6870 */\n add\n /* \"#utility.yul\":6845:6893 */\n mstore\n /* \"#utility.yul\":6910:6983 */\n tag_162\n /* \"#utility.yul\":6978:6982 */\n dup2\n /* \"#utility.yul\":6969:6975 */\n dup5\n /* \"#utility.yul\":6910:6983 */\n tag_48\n jump\t// in\n tag_162:\n /* \"#utility.yul\":6902:6983 */\n swap1\n pop\n /* \"#utility.yul\":6356:6990 */\n swap6\n swap5\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":6996:7113 */\n tag_65:\n /* \"#utility.yul\":7105:7106 */\n 0x00\n /* \"#utility.yul\":7102:7103 */\n dup1\n /* \"#utility.yul\":7095:7107 */\n revert\n /* \"#utility.yul\":7119:7221 */\n tag_66:\n /* \"#utility.yul\":7160:7166 */\n 0x00\n /* \"#utility.yul\":7211:7213 */\n 0x1f\n /* \"#utility.yul\":7207:7214 */\n not\n /* \"#utility.yul\":7202:7204 */\n 0x1f\n /* \"#utility.yul\":7195:7200 */\n dup4\n /* \"#utility.yul\":7191:7205 */\n add\n /* \"#utility.yul\":7187:7215 */\n and\n /* \"#utility.yul\":7177:7215 */\n swap1\n pop\n /* \"#utility.yul\":7119:7221 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7227:7407 */\n tag_67:\n /* \"#utility.yul\":7275:7352 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":7272:7273 */\n 0x00\n /* \"#utility.yul\":7265:7353 */\n mstore\n /* \"#utility.yul\":7372:7376 */\n 0x41\n /* \"#utility.yul\":7369:7370 */\n 0x04\n /* \"#utility.yul\":7362:7377 */\n mstore\n /* \"#utility.yul\":7396:7400 */\n 0x24\n /* \"#utility.yul\":7393:7394 */\n 0x00\n /* \"#utility.yul\":7386:7401 */\n revert\n /* \"#utility.yul\":7413:7694 */\n tag_68:\n /* \"#utility.yul\":7496:7523 */\n tag_167\n /* \"#utility.yul\":7518:7522 */\n dup3\n /* \"#utility.yul\":7496:7523 */\n tag_66\n jump\t// in\n tag_167:\n /* \"#utility.yul\":7488:7494 */\n dup2\n /* \"#utility.yul\":7484:7524 */\n add\n /* \"#utility.yul\":7626:7632 */\n dup2\n /* \"#utility.yul\":7614:7624 */\n dup2\n /* \"#utility.yul\":7611:7633 */\n lt\n /* \"#utility.yul\":7590:7608 */\n 0xffffffffffffffff\n /* \"#utility.yul\":7578:7588 */\n dup3\n /* \"#utility.yul\":7575:7609 */\n gt\n /* \"#utility.yul\":7572:7634 */\n or\n /* \"#utility.yul\":7569:7657 */\n iszero\n tag_168\n jumpi\n /* \"#utility.yul\":7637:7655 */\n tag_169\n tag_67\n jump\t// in\n tag_169:\n /* \"#utility.yul\":7569:7657 */\n tag_168:\n /* \"#utility.yul\":7677:7687 */\n dup1\n /* \"#utility.yul\":7673:7675 */\n 0x40\n /* \"#utility.yul\":7666:7688 */\n mstore\n /* \"#utility.yul\":7456:7694 */\n pop\n /* \"#utility.yul\":7413:7694 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":7700:7829 */\n tag_69:\n /* \"#utility.yul\":7734:7740 */\n 0x00\n /* \"#utility.yul\":7761:7781 */\n tag_171\n tag_55\n jump\t// in\n tag_171:\n /* \"#utility.yul\":7751:7781 */\n swap1\n pop\n /* \"#utility.yul\":7790:7823 */\n tag_172\n /* \"#utility.yul\":7818:7822 */\n dup3\n /* \"#utility.yul\":7810:7816 */\n dup3\n /* \"#utility.yul\":7790:7823 */\n tag_68\n jump\t// in\n tag_172:\n /* \"#utility.yul\":7700:7829 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7958:8080 */\n tag_71:\n /* \"#utility.yul\":8031:8055 */\n tag_175\n /* \"#utility.yul\":8049:8054 */\n dup2\n /* \"#utility.yul\":8031:8055 */\n tag_63\n jump\t// in\n tag_175:\n /* \"#utility.yul\":8024:8029 */\n dup2\n /* \"#utility.yul\":8021:8056 */\n eq\n /* \"#utility.yul\":8011:8074 */\n tag_176\n jumpi\n /* \"#utility.yul\":8070:8071 */\n 0x00\n /* \"#utility.yul\":8067:8068 */\n dup1\n /* \"#utility.yul\":8060:8072 */\n revert\n /* \"#utility.yul\":8011:8074 */\n tag_176:\n /* \"#utility.yul\":7958:8080 */\n pop\n jump\t// out\n /* \"#utility.yul\":8086:8229 */\n tag_72:\n /* \"#utility.yul\":8143:8148 */\n 0x00\n /* \"#utility.yul\":8174:8180 */\n dup2\n /* \"#utility.yul\":8168:8181 */\n mload\n /* \"#utility.yul\":8159:8181 */\n swap1\n pop\n /* \"#utility.yul\":8190:8223 */\n tag_178\n /* \"#utility.yul\":8217:8222 */\n dup2\n /* \"#utility.yul\":8190:8223 */\n tag_71\n jump\t// in\n tag_178:\n /* \"#utility.yul\":8086:8229 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8235:8344 */\n tag_73:\n /* \"#utility.yul\":8285:8292 */\n 0x00\n /* \"#utility.yul\":8314:8338 */\n tag_180\n /* \"#utility.yul\":8332:8337 */\n dup3\n /* \"#utility.yul\":8314:8338 */\n tag_63\n jump\t// in\n tag_180:\n /* \"#utility.yul\":8303:8338 */\n swap1\n pop\n /* \"#utility.yul\":8235:8344 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8350:8498 */\n tag_74:\n /* \"#utility.yul\":8436:8473 */\n tag_182\n /* \"#utility.yul\":8467:8472 */\n dup2\n /* \"#utility.yul\":8436:8473 */\n tag_73\n jump\t// in\n tag_182:\n /* \"#utility.yul\":8429:8434 */\n dup2\n /* \"#utility.yul\":8426:8474 */\n eq\n /* \"#utility.yul\":8416:8492 */\n tag_183\n jumpi\n /* \"#utility.yul\":8488:8489 */\n 0x00\n /* \"#utility.yul\":8485:8486 */\n dup1\n /* \"#utility.yul\":8478:8490 */\n revert\n /* \"#utility.yul\":8416:8492 */\n tag_183:\n /* \"#utility.yul\":8350:8498 */\n pop\n jump\t// out\n /* \"#utility.yul\":8504:8673 */\n tag_75:\n /* \"#utility.yul\":8574:8579 */\n 0x00\n /* \"#utility.yul\":8605:8611 */\n dup2\n /* \"#utility.yul\":8599:8612 */\n mload\n /* \"#utility.yul\":8590:8612 */\n swap1\n pop\n /* \"#utility.yul\":8621:8667 */\n tag_185\n /* \"#utility.yul\":8661:8666 */\n dup2\n /* \"#utility.yul\":8621:8667 */\n tag_74\n jump\t// in\n tag_185:\n /* \"#utility.yul\":8504:8673 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":8679:8769 */\n tag_76:\n /* \"#utility.yul\":8713:8720 */\n 0x00\n /* \"#utility.yul\":8756:8761 */\n dup2\n /* \"#utility.yul\":8749:8762 */\n iszero\n /* \"#utility.yul\":8742:8763 */\n iszero\n /* \"#utility.yul\":8731:8763 */\n swap1\n pop\n /* \"#utility.yul\":8679:8769 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":8775:8891 */\n tag_77:\n /* \"#utility.yul\":8845:8866 */\n tag_188\n /* \"#utility.yul\":8860:8865 */\n dup2\n /* \"#utility.yul\":8845:8866 */\n tag_76\n jump\t// in\n tag_188:\n /* \"#utility.yul\":8838:8843 */\n dup2\n /* \"#utility.yul\":8835:8867 */\n eq\n /* \"#utility.yul\":8825:8885 */\n tag_189\n jumpi\n /* \"#utility.yul\":8881:8882 */\n 0x00\n /* \"#utility.yul\":8878:8879 */\n dup1\n /* \"#utility.yul\":8871:8883 */\n revert\n /* \"#utility.yul\":8825:8885 */\n tag_189:\n /* \"#utility.yul\":8775:8891 */\n pop\n jump\t// out\n /* \"#utility.yul\":8897:9034 */\n tag_78:\n /* \"#utility.yul\":8951:8956 */\n 0x00\n /* \"#utility.yul\":8982:8988 */\n dup2\n /* \"#utility.yul\":8976:8989 */\n mload\n /* \"#utility.yul\":8967:8989 */\n swap1\n pop\n /* \"#utility.yul\":8998:9028 */\n tag_191\n /* \"#utility.yul\":9022:9027 */\n dup2\n /* \"#utility.yul\":8998:9028 */\n tag_77\n jump\t// in\n tag_191:\n /* \"#utility.yul\":8897:9034 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":9098:10643 */\n tag_79:\n /* \"#utility.yul\":9190:9195 */\n 0x00\n /* \"#utility.yul\":9234:9238 */\n 0xe0\n /* \"#utility.yul\":9222:9231 */\n dup3\n /* \"#utility.yul\":9217:9220 */\n dup5\n /* \"#utility.yul\":9213:9232 */\n sub\n /* \"#utility.yul\":9209:9239 */\n slt\n /* \"#utility.yul\":9206:9323 */\n iszero\n tag_193\n jumpi\n /* \"#utility.yul\":9242:9321 */\n tag_194\n tag_65\n jump\t// in\n tag_194:\n /* \"#utility.yul\":9206:9323 */\n tag_193:\n /* \"#utility.yul\":9341:9362 */\n tag_195\n /* \"#utility.yul\":9357:9361 */\n 0xe0\n /* \"#utility.yul\":9341:9362 */\n tag_69\n jump\t// in\n tag_195:\n /* \"#utility.yul\":9332:9362 */\n swap1\n pop\n /* \"#utility.yul\":9427:9428 */\n 0x00\n /* \"#utility.yul\":9467:9524 */\n tag_196\n /* \"#utility.yul\":9520:9523 */\n dup5\n /* \"#utility.yul\":9511:9517 */\n dup3\n /* \"#utility.yul\":9500:9509 */\n dup6\n /* \"#utility.yul\":9496:9518 */\n add\n /* \"#utility.yul\":9467:9524 */\n tag_78\n jump\t// in\n tag_196:\n /* \"#utility.yul\":9460:9464 */\n 0x00\n /* \"#utility.yul\":9453:9458 */\n dup4\n /* \"#utility.yul\":9449:9465 */\n add\n /* \"#utility.yul\":9442:9525 */\n mstore\n /* \"#utility.yul\":9372:9536 */\n pop\n /* \"#utility.yul\":9606:9608 */\n 0x20\n /* \"#utility.yul\":9647:9704 */\n tag_197\n /* \"#utility.yul\":9700:9703 */\n dup5\n /* \"#utility.yul\":9691:9697 */\n dup3\n /* \"#utility.yul\":9680:9689 */\n dup6\n /* \"#utility.yul\":9676:9698 */\n add\n /* \"#utility.yul\":9647:9704 */\n tag_78\n jump\t// in\n tag_197:\n /* \"#utility.yul\":9640:9644 */\n 0x20\n /* \"#utility.yul\":9633:9638 */\n dup4\n /* \"#utility.yul\":9629:9645 */\n add\n /* \"#utility.yul\":9622:9705 */\n mstore\n /* \"#utility.yul\":9546:9716 */\n pop\n /* \"#utility.yul\":9794:9796 */\n 0x40\n /* \"#utility.yul\":9835:9892 */\n tag_198\n /* \"#utility.yul\":9888:9891 */\n dup5\n /* \"#utility.yul\":9879:9885 */\n dup3\n /* \"#utility.yul\":9868:9877 */\n dup6\n /* \"#utility.yul\":9864:9886 */\n add\n /* \"#utility.yul\":9835:9892 */\n tag_78\n jump\t// in\n tag_198:\n /* \"#utility.yul\":9828:9832 */\n 0x40\n /* \"#utility.yul\":9821:9826 */\n dup4\n /* \"#utility.yul\":9817:9833 */\n add\n /* \"#utility.yul\":9810:9893 */\n mstore\n /* \"#utility.yul\":9726:9904 */\n pop\n /* \"#utility.yul\":9982:9984 */\n 0x60\n /* \"#utility.yul\":10023:10080 */\n tag_199\n /* \"#utility.yul\":10076:10079 */\n dup5\n /* \"#utility.yul\":10067:10073 */\n dup3\n /* \"#utility.yul\":10056:10065 */\n dup6\n /* \"#utility.yul\":10052:10074 */\n add\n /* \"#utility.yul\":10023:10080 */\n tag_78\n jump\t// in\n tag_199:\n /* \"#utility.yul\":10016:10020 */\n 0x60\n /* \"#utility.yul\":10009:10014 */\n dup4\n /* \"#utility.yul\":10005:10021 */\n add\n /* \"#utility.yul\":9998:10081 */\n mstore\n /* \"#utility.yul\":9914:10092 */\n pop\n /* \"#utility.yul\":10169:10172 */\n 0x80\n /* \"#utility.yul\":10211:10268 */\n tag_200\n /* \"#utility.yul\":10264:10267 */\n dup5\n /* \"#utility.yul\":10255:10261 */\n dup3\n /* \"#utility.yul\":10244:10253 */\n dup6\n /* \"#utility.yul\":10240:10262 */\n add\n /* \"#utility.yul\":10211:10268 */\n tag_78\n jump\t// in\n tag_200:\n /* \"#utility.yul\":10204:10208 */\n 0x80\n /* \"#utility.yul\":10197:10202 */\n dup4\n /* \"#utility.yul\":10193:10209 */\n add\n /* \"#utility.yul\":10186:10269 */\n mstore\n /* \"#utility.yul\":10102:10280 */\n pop\n /* \"#utility.yul\":10339:10342 */\n 0xa0\n /* \"#utility.yul\":10381:10441 */\n tag_201\n /* \"#utility.yul\":10437:10440 */\n dup5\n /* \"#utility.yul\":10428:10434 */\n dup3\n /* \"#utility.yul\":10417:10426 */\n dup6\n /* \"#utility.yul\":10413:10435 */\n add\n /* \"#utility.yul\":10381:10441 */\n tag_59\n jump\t// in\n tag_201:\n /* \"#utility.yul\":10374:10378 */\n 0xa0\n /* \"#utility.yul\":10367:10372 */\n dup4\n /* \"#utility.yul\":10363:10379 */\n add\n /* \"#utility.yul\":10356:10442 */\n mstore\n /* \"#utility.yul\":10290:10453 */\n pop\n /* \"#utility.yul\":10522:10525 */\n 0xc0\n /* \"#utility.yul\":10564:10624 */\n tag_202\n /* \"#utility.yul\":10620:10623 */\n dup5\n /* \"#utility.yul\":10611:10617 */\n dup3\n /* \"#utility.yul\":10600:10609 */\n dup6\n /* \"#utility.yul\":10596:10618 */\n add\n /* \"#utility.yul\":10564:10624 */\n tag_59\n jump\t// in\n tag_202:\n /* \"#utility.yul\":10557:10561 */\n 0xc0\n /* \"#utility.yul\":10550:10555 */\n dup4\n /* \"#utility.yul\":10546:10562 */\n add\n /* \"#utility.yul\":10539:10625 */\n mstore\n /* \"#utility.yul\":10463:10636 */\n pop\n /* \"#utility.yul\":9098:10643 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10649:10769 */\n tag_80:\n /* \"#utility.yul\":10721:10744 */\n tag_204\n /* \"#utility.yul\":10738:10743 */\n dup2\n /* \"#utility.yul\":10721:10744 */\n tag_38\n jump\t// in\n tag_204:\n /* \"#utility.yul\":10714:10719 */\n dup2\n /* \"#utility.yul\":10711:10745 */\n eq\n /* \"#utility.yul\":10701:10763 */\n tag_205\n jumpi\n /* \"#utility.yul\":10759:10760 */\n 0x00\n /* \"#utility.yul\":10756:10757 */\n dup1\n /* \"#utility.yul\":10749:10761 */\n revert\n /* \"#utility.yul\":10701:10763 */\n tag_205:\n /* \"#utility.yul\":10649:10769 */\n pop\n jump\t// out\n /* \"#utility.yul\":10775:10916 */\n tag_81:\n /* \"#utility.yul\":10831:10836 */\n 0x00\n /* \"#utility.yul\":10862:10868 */\n dup2\n /* \"#utility.yul\":10856:10869 */\n mload\n /* \"#utility.yul\":10847:10869 */\n swap1\n pop\n /* \"#utility.yul\":10878:10910 */\n tag_207\n /* \"#utility.yul\":10904:10909 */\n dup2\n /* \"#utility.yul\":10878:10910 */\n tag_80\n jump\t// in\n tag_207:\n /* \"#utility.yul\":10775:10916 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":10972:13068 */\n tag_82:\n /* \"#utility.yul\":11056:11061 */\n 0x00\n /* \"#utility.yul\":11100:11106 */\n 0x0200\n /* \"#utility.yul\":11088:11097 */\n dup3\n /* \"#utility.yul\":11083:11086 */\n dup5\n /* \"#utility.yul\":11079:11098 */\n sub\n /* \"#utility.yul\":11075:11107 */\n slt\n /* \"#utility.yul\":11072:11191 */\n iszero\n tag_209\n jumpi\n /* \"#utility.yul\":11110:11189 */\n tag_210\n tag_65\n jump\t// in\n tag_210:\n /* \"#utility.yul\":11072:11191 */\n tag_209:\n /* \"#utility.yul\":11209:11232 */\n tag_211\n /* \"#utility.yul\":11225:11231 */\n 0x0140\n /* \"#utility.yul\":11209:11232 */\n tag_69\n jump\t// in\n tag_211:\n /* \"#utility.yul\":11200:11232 */\n swap1\n pop\n /* \"#utility.yul\":11295:11296 */\n 0x00\n /* \"#utility.yul\":11335:11395 */\n tag_212\n /* \"#utility.yul\":11391:11394 */\n dup5\n /* \"#utility.yul\":11382:11388 */\n dup3\n /* \"#utility.yul\":11371:11380 */\n dup6\n /* \"#utility.yul\":11367:11389 */\n add\n /* \"#utility.yul\":11335:11395 */\n tag_72\n jump\t// in\n tag_212:\n /* \"#utility.yul\":11328:11332 */\n 0x00\n /* \"#utility.yul\":11321:11326 */\n dup4\n /* \"#utility.yul\":11317:11333 */\n add\n /* \"#utility.yul\":11310:11396 */\n mstore\n /* \"#utility.yul\":11242:11407 */\n pop\n /* \"#utility.yul\":11470:11472 */\n 0x20\n /* \"#utility.yul\":11511:11571 */\n tag_213\n /* \"#utility.yul\":11567:11570 */\n dup5\n /* \"#utility.yul\":11558:11564 */\n dup3\n /* \"#utility.yul\":11547:11556 */\n dup6\n /* \"#utility.yul\":11543:11565 */\n add\n /* \"#utility.yul\":11511:11571 */\n tag_72\n jump\t// in\n tag_213:\n /* \"#utility.yul\":11504:11508 */\n 0x20\n /* \"#utility.yul\":11497:11502 */\n dup4\n /* \"#utility.yul\":11493:11509 */\n add\n /* \"#utility.yul\":11486:11572 */\n mstore\n /* \"#utility.yul\":11417:11583 */\n pop\n /* \"#utility.yul\":11646:11648 */\n 0x40\n /* \"#utility.yul\":11687:11760 */\n tag_214\n /* \"#utility.yul\":11756:11759 */\n dup5\n /* \"#utility.yul\":11747:11753 */\n dup3\n /* \"#utility.yul\":11736:11745 */\n dup6\n /* \"#utility.yul\":11732:11754 */\n add\n /* \"#utility.yul\":11687:11760 */\n tag_75\n jump\t// in\n tag_214:\n /* \"#utility.yul\":11680:11684 */\n 0x40\n /* \"#utility.yul\":11673:11678 */\n dup4\n /* \"#utility.yul\":11669:11685 */\n add\n /* \"#utility.yul\":11662:11761 */\n mstore\n /* \"#utility.yul\":11593:11772 */\n pop\n /* \"#utility.yul\":11834:11836 */\n 0x60\n /* \"#utility.yul\":11875:11932 */\n tag_215\n /* \"#utility.yul\":11928:11931 */\n dup5\n /* \"#utility.yul\":11919:11925 */\n dup3\n /* \"#utility.yul\":11908:11917 */\n dup6\n /* \"#utility.yul\":11904:11926 */\n add\n /* \"#utility.yul\":11875:11932 */\n tag_78\n jump\t// in\n tag_215:\n /* \"#utility.yul\":11868:11872 */\n 0x60\n /* \"#utility.yul\":11861:11866 */\n dup4\n /* \"#utility.yul\":11857:11873 */\n add\n /* \"#utility.yul\":11850:11933 */\n mstore\n /* \"#utility.yul\":11782:11944 */\n pop\n /* \"#utility.yul\":12014:12017 */\n 0x80\n /* \"#utility.yul\":12056:12148 */\n tag_216\n /* \"#utility.yul\":12144:12147 */\n dup5\n /* \"#utility.yul\":12135:12141 */\n dup3\n /* \"#utility.yul\":12124:12133 */\n dup6\n /* \"#utility.yul\":12120:12142 */\n add\n /* \"#utility.yul\":12056:12148 */\n tag_79\n jump\t// in\n tag_216:\n /* \"#utility.yul\":12049:12053 */\n 0x80\n /* \"#utility.yul\":12042:12047 */\n dup4\n /* \"#utility.yul\":12038:12054 */\n add\n /* \"#utility.yul\":12031:12149 */\n mstore\n /* \"#utility.yul\":11954:12160 */\n pop\n /* \"#utility.yul\":12228:12231 */\n 0x0160\n /* \"#utility.yul\":12270:12329 */\n tag_217\n /* \"#utility.yul\":12325:12328 */\n dup5\n /* \"#utility.yul\":12316:12322 */\n dup3\n /* \"#utility.yul\":12305:12314 */\n dup6\n /* \"#utility.yul\":12301:12323 */\n add\n /* \"#utility.yul\":12270:12329 */\n tag_81\n jump\t// in\n tag_217:\n /* \"#utility.yul\":12263:12267 */\n 0xa0\n /* \"#utility.yul\":12256:12261 */\n dup4\n /* \"#utility.yul\":12252:12268 */\n add\n /* \"#utility.yul\":12245:12330 */\n mstore\n /* \"#utility.yul\":12170:12341 */\n pop\n /* \"#utility.yul\":12409:12412 */\n 0x0180\n /* \"#utility.yul\":12451:12510 */\n tag_218\n /* \"#utility.yul\":12506:12509 */\n dup5\n /* \"#utility.yul\":12497:12503 */\n dup3\n /* \"#utility.yul\":12486:12495 */\n dup6\n /* \"#utility.yul\":12482:12504 */\n add\n /* \"#utility.yul\":12451:12510 */\n tag_81\n jump\t// in\n tag_218:\n /* \"#utility.yul\":12444:12448 */\n 0xc0\n /* \"#utility.yul\":12437:12442 */\n dup4\n /* \"#utility.yul\":12433:12449 */\n add\n /* \"#utility.yul\":12426:12511 */\n mstore\n /* \"#utility.yul\":12351:12522 */\n pop\n /* \"#utility.yul\":12591:12594 */\n 0x01a0\n /* \"#utility.yul\":12633:12693 */\n tag_219\n /* \"#utility.yul\":12689:12692 */\n dup5\n /* \"#utility.yul\":12680:12686 */\n dup3\n /* \"#utility.yul\":12669:12678 */\n dup6\n /* \"#utility.yul\":12665:12687 */\n add\n /* \"#utility.yul\":12633:12693 */\n tag_59\n jump\t// in\n tag_219:\n /* \"#utility.yul\":12626:12630 */\n 0xe0\n /* \"#utility.yul\":12619:12624 */\n dup4\n /* \"#utility.yul\":12615:12631 */\n add\n /* \"#utility.yul\":12608:12694 */\n mstore\n /* \"#utility.yul\":12532:12705 */\n pop\n /* \"#utility.yul\":12766:12769 */\n 0x01c0\n /* \"#utility.yul\":12810:12870 */\n tag_220\n /* \"#utility.yul\":12866:12869 */\n dup5\n /* \"#utility.yul\":12857:12863 */\n dup3\n /* \"#utility.yul\":12846:12855 */\n dup6\n /* \"#utility.yul\":12842:12864 */\n add\n /* \"#utility.yul\":12810:12870 */\n tag_59\n jump\t// in\n tag_220:\n /* \"#utility.yul\":12801:12807 */\n 0x0100\n /* \"#utility.yul\":12794:12799 */\n dup4\n /* \"#utility.yul\":12790:12808 */\n add\n /* \"#utility.yul\":12783:12871 */\n mstore\n /* \"#utility.yul\":12715:12882 */\n pop\n /* \"#utility.yul\":12945:12948 */\n 0x01e0\n /* \"#utility.yul\":12989:13049 */\n tag_221\n /* \"#utility.yul\":13045:13048 */\n dup5\n /* \"#utility.yul\":13036:13042 */\n dup3\n /* \"#utility.yul\":13025:13034 */\n dup6\n /* \"#utility.yul\":13021:13043 */\n add\n /* \"#utility.yul\":12989:13049 */\n tag_59\n jump\t// in\n tag_221:\n /* \"#utility.yul\":12980:12986 */\n 0x0120\n /* \"#utility.yul\":12973:12978 */\n dup4\n /* \"#utility.yul\":12969:12987 */\n add\n /* \"#utility.yul\":12962:13050 */\n mstore\n /* \"#utility.yul\":12892:13061 */\n pop\n /* \"#utility.yul\":10972:13068 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":13074:13474 */\n tag_32:\n /* \"#utility.yul\":13168:13174 */\n 0x00\n /* \"#utility.yul\":13217:13220 */\n 0x0200\n /* \"#utility.yul\":13205:13214 */\n dup3\n /* \"#utility.yul\":13196:13203 */\n dup5\n /* \"#utility.yul\":13192:13215 */\n sub\n /* \"#utility.yul\":13188:13221 */\n slt\n /* \"#utility.yul\":13185:13305 */\n iszero\n tag_223\n jumpi\n /* \"#utility.yul\":13224:13303 */\n tag_224\n tag_56\n jump\t// in\n tag_224:\n /* \"#utility.yul\":13185:13305 */\n tag_223:\n /* \"#utility.yul\":13344:13345 */\n 0x00\n /* \"#utility.yul\":13369:13457 */\n tag_225\n /* \"#utility.yul\":13449:13456 */\n dup5\n /* \"#utility.yul\":13440:13446 */\n dup3\n /* \"#utility.yul\":13429:13438 */\n dup6\n /* \"#utility.yul\":13425:13447 */\n add\n /* \"#utility.yul\":13369:13457 */\n tag_82\n jump\t// in\n tag_225:\n /* \"#utility.yul\":13359:13457 */\n swap2\n pop\n /* \"#utility.yul\":13315:13467 */\n pop\n /* \"#utility.yul\":13074:13474 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa264697066735822122022a2401c79bcff65b62264f5622b6e4876c12242030d1441667347ff996e711264736f6c63430008100033\n}\n",
"bytecode": {
"functionDebugData": {
"array_dataslot_t_bytes_storage": {
"entryPoint": 350,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 192,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clean_up_bytearray_end_slots_t_bytes_storage": {
"entryPoint": 671,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"cleanup_t_uint256": {
"entryPoint": 486,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"clear_storage_range_t_bytes1": {
"entryPoint": 632,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"convert_t_uint256_to_t_uint256": {
"entryPoint": 506,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage": {
"entryPoint": 826,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"divide_by_32_ceil": {
"entryPoint": 371,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 297,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_used_part_and_set_length_of_short_byte_array": {
"entryPoint": 796,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"identity": {
"entryPoint": 496,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"mask_bytes_dynamic": {
"entryPoint": 764,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 250,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 203,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"prepare_store_t_uint256": {
"entryPoint": 546,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_left_dynamic": {
"entryPoint": 387,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"shift_right_unsigned_dynamic": {
"entryPoint": 751,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"storage_set_to_zero_t_uint256": {
"entryPoint": 604,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"update_byte_slice_dynamic32": {
"entryPoint": 400,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"update_storage_value_t_uint256_to_t_uint256": {
"entryPoint": 556,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"zero_value_for_split_t_uint256": {
"entryPoint": 599,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:5222:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "65:40:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "76:22:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "92:5:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "86:5:4"
},
"nodeType": "YulFunctionCall",
"src": "86:12:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "76:6:4"
}
]
}
]
},
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "48:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "58:6:4",
"type": ""
}
],
"src": "7:98:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "139:152:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "156:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "159:77:4",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "149:6:4"
},
"nodeType": "YulFunctionCall",
"src": "149:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "149:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "253:1:4",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "256:4:4",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "246:6:4"
},
"nodeType": "YulFunctionCall",
"src": "246:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "246:15:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "277:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "280:4:4",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "270:6:4"
},
"nodeType": "YulFunctionCall",
"src": "270:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "270:15:4"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "111:180:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "325:152:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "342:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:77:4",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "335:6:4"
},
"nodeType": "YulFunctionCall",
"src": "335:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "335:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "439:1:4",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "442:4:4",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "432:6:4"
},
"nodeType": "YulFunctionCall",
"src": "432:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "432:15:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "463:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "466:4:4",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "456:6:4"
},
"nodeType": "YulFunctionCall",
"src": "456:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "456:15:4"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "297:180:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "534:269:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "544:22:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "558:4:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "564:1:4",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "554:3:4"
},
"nodeType": "YulFunctionCall",
"src": "554:12:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "544:6:4"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "575:38:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "605:4:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "611:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "601:3:4"
},
"nodeType": "YulFunctionCall",
"src": "601:12:4"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "579:18:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "652:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "666:27:4",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "680:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "688:4:4",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "676:3:4"
},
"nodeType": "YulFunctionCall",
"src": "676:17:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "666:6:4"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "632:18:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "625:6:4"
},
"nodeType": "YulFunctionCall",
"src": "625:26:4"
},
"nodeType": "YulIf",
"src": "622:81:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "755:42:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "769:16:4"
},
"nodeType": "YulFunctionCall",
"src": "769:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "769:18:4"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "719:18:4"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "742:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "750:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "739:2:4"
},
"nodeType": "YulFunctionCall",
"src": "739:14:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "716:2:4"
},
"nodeType": "YulFunctionCall",
"src": "716:38:4"
},
"nodeType": "YulIf",
"src": "713:84:4"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "518:4:4",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "527:6:4",
"type": ""
}
],
"src": "483:320:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "862:87:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "872:11:4",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "880:3:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "872:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "900:1:4",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "903:3:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "893:6:4"
},
"nodeType": "YulFunctionCall",
"src": "893:14:4"
},
"nodeType": "YulExpressionStatement",
"src": "893:14:4"
},
{
"nodeType": "YulAssignment",
"src": "916:26:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "934:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "937:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nodeType": "YulIdentifier",
"src": "924:9:4"
},
"nodeType": "YulFunctionCall",
"src": "924:18:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "916:4:4"
}
]
}
]
},
"name": "array_dataslot_t_bytes_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "849:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "857:4:4",
"type": ""
}
],
"src": "809:140:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "999:49:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1009:33:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1027:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1034:2:4",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1023:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1023:14:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1039:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "1019:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1019:23:4"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1009:6:4"
}
]
}
]
},
"name": "divide_by_32_ceil",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "982:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "992:6:4",
"type": ""
}
],
"src": "955:93:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1107:54:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1117:37:4",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "1142:4:4"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1148:5:4"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1138:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1138:16:4"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "1117:8:4"
}
]
}
]
},
"name": "shift_left_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "1082:4:4",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1088:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "1098:8:4",
"type": ""
}
],
"src": "1054:107:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1243:317:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1253:35:4",
"value": {
"arguments": [
{
"name": "shiftBytes",
"nodeType": "YulIdentifier",
"src": "1274:10:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1286:1:4",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "1270:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1270:18:4"
},
"variables": [
{
"name": "shiftBits",
"nodeType": "YulTypedName",
"src": "1257:9:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1297:109:4",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "1328:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1339:66:4",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "1309:18:4"
},
"nodeType": "YulFunctionCall",
"src": "1309:97:4"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "1301:4:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1415:51:4",
"value": {
"arguments": [
{
"name": "shiftBits",
"nodeType": "YulIdentifier",
"src": "1446:9:4"
},
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "1457:8:4"
}
],
"functionName": {
"name": "shift_left_dynamic",
"nodeType": "YulIdentifier",
"src": "1427:18:4"
},
"nodeType": "YulFunctionCall",
"src": "1427:39:4"
},
"variableNames": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "1415:8:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1475:30:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1488:5:4"
},
{
"arguments": [
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "1499:4:4"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1495:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1495:9:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1484:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1484:21:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1475:5:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1514:40:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1527:5:4"
},
{
"arguments": [
{
"name": "toInsert",
"nodeType": "YulIdentifier",
"src": "1538:8:4"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "1548:4:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1534:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1534:19:4"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1524:2:4"
},
"nodeType": "YulFunctionCall",
"src": "1524:30:4"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1514:6:4"
}
]
}
]
},
"name": "update_byte_slice_dynamic32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1204:5:4",
"type": ""
},
{
"name": "shiftBytes",
"nodeType": "YulTypedName",
"src": "1211:10:4",
"type": ""
},
{
"name": "toInsert",
"nodeType": "YulTypedName",
"src": "1223:8:4",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1236:6:4",
"type": ""
}
],
"src": "1167:393:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1611:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1621:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1632:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1621:7:4"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1593:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1603:7:4",
"type": ""
}
],
"src": "1566:77:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1681:28:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1691:12:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1698:5:4"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "1691:3:4"
}
]
}
]
},
"name": "identity",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1667:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "1677:3:4",
"type": ""
}
],
"src": "1649:60:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1775:82:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1785:66:4",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1843:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1825:17:4"
},
"nodeType": "YulFunctionCall",
"src": "1825:24:4"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "1816:8:4"
},
"nodeType": "YulFunctionCall",
"src": "1816:34:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1798:17:4"
},
"nodeType": "YulFunctionCall",
"src": "1798:53:4"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "1785:9:4"
}
]
}
]
},
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1755:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "1765:9:4",
"type": ""
}
],
"src": "1715:142:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1910:28:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1920:12:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1927:5:4"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "1920:3:4"
}
]
}
]
},
"name": "prepare_store_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1896:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "1906:3:4",
"type": ""
}
],
"src": "1863:75:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2020:193:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2030:63:4",
"value": {
"arguments": [
{
"name": "value_0",
"nodeType": "YulIdentifier",
"src": "2085:7:4"
}
],
"functionName": {
"name": "convert_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "2054:30:4"
},
"nodeType": "YulFunctionCall",
"src": "2054:39:4"
},
"variables": [
{
"name": "convertedValue_0",
"nodeType": "YulTypedName",
"src": "2034:16:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "2109:4:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "2149:4:4"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "2143:5:4"
},
"nodeType": "YulFunctionCall",
"src": "2143:11:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2156:6:4"
},
{
"arguments": [
{
"name": "convertedValue_0",
"nodeType": "YulIdentifier",
"src": "2188:16:4"
}
],
"functionName": {
"name": "prepare_store_t_uint256",
"nodeType": "YulIdentifier",
"src": "2164:23:4"
},
"nodeType": "YulFunctionCall",
"src": "2164:41:4"
}
],
"functionName": {
"name": "update_byte_slice_dynamic32",
"nodeType": "YulIdentifier",
"src": "2115:27:4"
},
"nodeType": "YulFunctionCall",
"src": "2115:91:4"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "2102:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2102:105:4"
},
"nodeType": "YulExpressionStatement",
"src": "2102:105:4"
}
]
},
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "1997:4:4",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2003:6:4",
"type": ""
},
{
"name": "value_0",
"nodeType": "YulTypedName",
"src": "2011:7:4",
"type": ""
}
],
"src": "1944:269:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2268:24:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2278:8:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2285:1:4",
"type": "",
"value": "0"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "2278:3:4"
}
]
}
]
},
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "2264:3:4",
"type": ""
}
],
"src": "2219:73:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2351:136:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2361:46:4",
"value": {
"arguments": [],
"functionName": {
"name": "zero_value_for_split_t_uint256",
"nodeType": "YulIdentifier",
"src": "2375:30:4"
},
"nodeType": "YulFunctionCall",
"src": "2375:32:4"
},
"variables": [
{
"name": "zero_0",
"nodeType": "YulTypedName",
"src": "2365:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "2460:4:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2466:6:4"
},
{
"name": "zero_0",
"nodeType": "YulIdentifier",
"src": "2474:6:4"
}
],
"functionName": {
"name": "update_storage_value_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "2416:43:4"
},
"nodeType": "YulFunctionCall",
"src": "2416:65:4"
},
"nodeType": "YulExpressionStatement",
"src": "2416:65:4"
}
]
},
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "2337:4:4",
"type": ""
},
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2343:6:4",
"type": ""
}
],
"src": "2298:189:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2543:136:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2610:63:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2654:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2661:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "storage_set_to_zero_t_uint256",
"nodeType": "YulIdentifier",
"src": "2624:29:4"
},
"nodeType": "YulFunctionCall",
"src": "2624:39:4"
},
"nodeType": "YulExpressionStatement",
"src": "2624:39:4"
}
]
},
"condition": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2563:5:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2570:3:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2560:2:4"
},
"nodeType": "YulFunctionCall",
"src": "2560:14:4"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2575:26:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2577:22:4",
"value": {
"arguments": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2590:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2597:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2586:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2586:13:4"
},
"variableNames": [
{
"name": "start",
"nodeType": "YulIdentifier",
"src": "2577:5:4"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2557:2:4",
"statements": []
},
"src": "2553:120:4"
}
]
},
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "start",
"nodeType": "YulTypedName",
"src": "2531:5:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2538:3:4",
"type": ""
}
],
"src": "2493:186:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2763:463:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2789:430:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2803:53:4",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2850:5:4"
}
],
"functionName": {
"name": "array_dataslot_t_bytes_storage",
"nodeType": "YulIdentifier",
"src": "2819:30:4"
},
"nodeType": "YulFunctionCall",
"src": "2819:37:4"
},
"variables": [
{
"name": "dataArea",
"nodeType": "YulTypedName",
"src": "2807:8:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2869:63:4",
"value": {
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "2892:8:4"
},
{
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "2920:10:4"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "2902:17:4"
},
"nodeType": "YulFunctionCall",
"src": "2902:29:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2888:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2888:44:4"
},
"variables": [
{
"name": "deleteStart",
"nodeType": "YulTypedName",
"src": "2873:11:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3089:27:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3091:23:4",
"value": {
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "3106:8:4"
},
"variableNames": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "3091:11:4"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "startIndex",
"nodeType": "YulIdentifier",
"src": "3073:10:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3085:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3070:2:4"
},
"nodeType": "YulFunctionCall",
"src": "3070:18:4"
},
"nodeType": "YulIf",
"src": "3067:49:4"
},
{
"expression": {
"arguments": [
{
"name": "deleteStart",
"nodeType": "YulIdentifier",
"src": "3158:11:4"
},
{
"arguments": [
{
"name": "dataArea",
"nodeType": "YulIdentifier",
"src": "3175:8:4"
},
{
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "3203:3:4"
}
],
"functionName": {
"name": "divide_by_32_ceil",
"nodeType": "YulIdentifier",
"src": "3185:17:4"
},
"nodeType": "YulFunctionCall",
"src": "3185:22:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3171:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3171:37:4"
}
],
"functionName": {
"name": "clear_storage_range_t_bytes1",
"nodeType": "YulIdentifier",
"src": "3129:28:4"
},
"nodeType": "YulFunctionCall",
"src": "3129:80:4"
},
"nodeType": "YulExpressionStatement",
"src": "3129:80:4"
}
]
},
"condition": {
"arguments": [
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "2780:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2785:2:4",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2777:2:4"
},
"nodeType": "YulFunctionCall",
"src": "2777:11:4"
},
"nodeType": "YulIf",
"src": "2774:445:4"
}
]
},
"name": "clean_up_bytearray_end_slots_t_bytes_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2739:5:4",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "2746:3:4",
"type": ""
},
{
"name": "startIndex",
"nodeType": "YulTypedName",
"src": "2751:10:4",
"type": ""
}
],
"src": "2685:541:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3295:54:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3305:37:4",
"value": {
"arguments": [
{
"name": "bits",
"nodeType": "YulIdentifier",
"src": "3330:4:4"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3336:5:4"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "3326:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3326:16:4"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "3305:8:4"
}
]
}
]
},
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "bits",
"nodeType": "YulTypedName",
"src": "3270:4:4",
"type": ""
},
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3276:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "3286:8:4",
"type": ""
}
],
"src": "3232:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3406:118:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3416:68:4",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3465:1:4",
"type": "",
"value": "8"
},
{
"name": "bytes",
"nodeType": "YulIdentifier",
"src": "3468:5:4"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "3461:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3461:13:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3480:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3476:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3476:6:4"
}
],
"functionName": {
"name": "shift_right_unsigned_dynamic",
"nodeType": "YulIdentifier",
"src": "3432:28:4"
},
"nodeType": "YulFunctionCall",
"src": "3432:51:4"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3428:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3428:56:4"
},
"variables": [
{
"name": "mask",
"nodeType": "YulTypedName",
"src": "3420:4:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3493:25:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3507:4:4"
},
{
"name": "mask",
"nodeType": "YulIdentifier",
"src": "3513:4:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3503:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3503:15:4"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "3493:6:4"
}
]
}
]
},
"name": "mask_bytes_dynamic",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "3383:4:4",
"type": ""
},
{
"name": "bytes",
"nodeType": "YulTypedName",
"src": "3389:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "3399:6:4",
"type": ""
}
],
"src": "3355:169:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3610:214:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3743:37:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3770:4:4"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "3776:3:4"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "3751:18:4"
},
"nodeType": "YulFunctionCall",
"src": "3751:29:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3743:4:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3789:29:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "3800:4:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3810:1:4",
"type": "",
"value": "2"
},
{
"name": "len",
"nodeType": "YulIdentifier",
"src": "3813:3:4"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "3806:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3806:11:4"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "3797:2:4"
},
"nodeType": "YulFunctionCall",
"src": "3797:21:4"
},
"variableNames": [
{
"name": "used",
"nodeType": "YulIdentifier",
"src": "3789:4:4"
}
]
}
]
},
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "3591:4:4",
"type": ""
},
{
"name": "len",
"nodeType": "YulTypedName",
"src": "3597:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "used",
"nodeType": "YulTypedName",
"src": "3605:4:4",
"type": ""
}
],
"src": "3529:295:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3919:1300:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3930:50:4",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "3976:3:4"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3944:31:4"
},
"nodeType": "YulFunctionCall",
"src": "3944:36:4"
},
"variables": [
{
"name": "newLen",
"nodeType": "YulTypedName",
"src": "3934:6:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4065:22:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4067:16:4"
},
"nodeType": "YulFunctionCall",
"src": "4067:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "4067:18:4"
}
]
},
"condition": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4037:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4045:18:4",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4034:2:4"
},
"nodeType": "YulFunctionCall",
"src": "4034:30:4"
},
"nodeType": "YulIf",
"src": "4031:56:4"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4097:52:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4143:4:4"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "4137:5:4"
},
"nodeType": "YulFunctionCall",
"src": "4137:11:4"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nodeType": "YulIdentifier",
"src": "4111:25:4"
},
"nodeType": "YulFunctionCall",
"src": "4111:38:4"
},
"variables": [
{
"name": "oldLen",
"nodeType": "YulTypedName",
"src": "4101:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4241:4:4"
},
{
"name": "oldLen",
"nodeType": "YulIdentifier",
"src": "4247:6:4"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4255:6:4"
}
],
"functionName": {
"name": "clean_up_bytearray_end_slots_t_bytes_storage",
"nodeType": "YulIdentifier",
"src": "4196:44:4"
},
"nodeType": "YulFunctionCall",
"src": "4196:66:4"
},
"nodeType": "YulExpressionStatement",
"src": "4196:66:4"
},
{
"nodeType": "YulVariableDeclaration",
"src": "4272:18:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4289:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "srcOffset",
"nodeType": "YulTypedName",
"src": "4276:9:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4300:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4313:4:4",
"type": "",
"value": "0x20"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4300:9:4"
}
]
},
{
"cases": [
{
"body": {
"nodeType": "YulBlock",
"src": "4364:610:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4378:37:4",
"value": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4397:6:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4409:4:4",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "4405:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4405:9:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4393:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4393:22:4"
},
"variables": [
{
"name": "loopEnd",
"nodeType": "YulTypedName",
"src": "4382:7:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4429:50:4",
"value": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4474:4:4"
}
],
"functionName": {
"name": "array_dataslot_t_bytes_storage",
"nodeType": "YulIdentifier",
"src": "4443:30:4"
},
"nodeType": "YulFunctionCall",
"src": "4443:36:4"
},
"variables": [
{
"name": "dstPtr",
"nodeType": "YulTypedName",
"src": "4433:6:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4492:10:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4501:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "4496:1:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4560:163:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4585:6:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4603:3:4"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4608:9:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4599:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4599:19:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4593:5:4"
},
"nodeType": "YulFunctionCall",
"src": "4593:26:4"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "4578:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4578:42:4"
},
"nodeType": "YulExpressionStatement",
"src": "4578:42:4"
},
{
"nodeType": "YulAssignment",
"src": "4637:24:4",
"value": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4651:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4659:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4647:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4647:14:4"
},
"variableNames": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4637:6:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4678:31:4",
"value": {
"arguments": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4695:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4706:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4691:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4691:18:4"
},
"variableNames": [
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4678:9:4"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4526:1:4"
},
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "4529:7:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4523:2:4"
},
"nodeType": "YulFunctionCall",
"src": "4523:14:4"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "4538:21:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4540:17:4",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4549:1:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4552:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4545:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4545:12:4"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4540:1:4"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "4519:3:4",
"statements": []
},
"src": "4515:208:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4759:156:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4777:43:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4804:3:4"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "4809:9:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4800:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4800:19:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4794:5:4"
},
"nodeType": "YulFunctionCall",
"src": "4794:26:4"
},
"variables": [
{
"name": "lastValue",
"nodeType": "YulTypedName",
"src": "4781:9:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dstPtr",
"nodeType": "YulIdentifier",
"src": "4844:6:4"
},
{
"arguments": [
{
"name": "lastValue",
"nodeType": "YulIdentifier",
"src": "4871:9:4"
},
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4886:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4894:4:4",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4882:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4882:17:4"
}
],
"functionName": {
"name": "mask_bytes_dynamic",
"nodeType": "YulIdentifier",
"src": "4852:18:4"
},
"nodeType": "YulFunctionCall",
"src": "4852:48:4"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "4837:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4837:64:4"
},
"nodeType": "YulExpressionStatement",
"src": "4837:64:4"
}
]
},
"condition": {
"arguments": [
{
"name": "loopEnd",
"nodeType": "YulIdentifier",
"src": "4742:7:4"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4751:6:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4739:2:4"
},
"nodeType": "YulFunctionCall",
"src": "4739:19:4"
},
"nodeType": "YulIf",
"src": "4736:179:4"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "4935:4:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4949:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4957:1:4",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "4945:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4945:14:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4961:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4941:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4941:22:4"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "4928:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4928:36:4"
},
"nodeType": "YulExpressionStatement",
"src": "4928:36:4"
}
]
},
"nodeType": "YulCase",
"src": "4357:617:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4362:1:4",
"type": "",
"value": "1"
}
},
{
"body": {
"nodeType": "YulBlock",
"src": "4991:222:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5005:14:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5018:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5009:5:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5042:67:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5060:35:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5079:3:4"
},
{
"name": "srcOffset",
"nodeType": "YulIdentifier",
"src": "5084:9:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5075:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5075:19:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5069:5:4"
},
"nodeType": "YulFunctionCall",
"src": "5069:26:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5060:5:4"
}
]
}
]
},
"condition": {
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "5035:6:4"
},
"nodeType": "YulIf",
"src": "5032:77:4"
},
{
"expression": {
"arguments": [
{
"name": "slot",
"nodeType": "YulIdentifier",
"src": "5129:4:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5188:5:4"
},
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "5195:6:4"
}
],
"functionName": {
"name": "extract_used_part_and_set_length_of_short_byte_array",
"nodeType": "YulIdentifier",
"src": "5135:52:4"
},
"nodeType": "YulFunctionCall",
"src": "5135:67:4"
}
],
"functionName": {
"name": "sstore",
"nodeType": "YulIdentifier",
"src": "5122:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5122:81:4"
},
"nodeType": "YulExpressionStatement",
"src": "5122:81:4"
}
]
},
"nodeType": "YulCase",
"src": "4983:230:4",
"value": "default"
}
],
"expression": {
"arguments": [
{
"name": "newLen",
"nodeType": "YulIdentifier",
"src": "4337:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4345:2:4",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4334:2:4"
},
"nodeType": "YulFunctionCall",
"src": "4334:14:4"
},
"nodeType": "YulSwitch",
"src": "4327:886:4"
}
]
},
"name": "copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "slot",
"nodeType": "YulTypedName",
"src": "3908:4:4",
"type": ""
},
{
"name": "src",
"nodeType": "YulTypedName",
"src": "3914:3:4",
"type": ""
}
],
"src": "3829:1390:4"
}
]
},
"contents": "{\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_bytes_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_bytes_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_bytes_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src) {\n\n let newLen := array_length_t_bytes_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_bytes_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_bytes_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n",
"id": 4,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405273a5b9d8a0b0fa04ba71bdd68069661ed5c08488846000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5945535f4f525f4e4f5f515545525900000000000000000000000000000000006001556040518060a001604052806061815260200162000e806061913960029081620000a691906200033a565b506000600355348015620000b957600080fd5b5062000421565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200014257607f821691505b602082108103620001585762000157620000fa565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001c27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000183565b620001ce868362000183565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200021b620002156200020f84620001e6565b620001f0565b620001e6565b9050919050565b6000819050919050565b6200023783620001fa565b6200024f620002468262000222565b84845462000190565b825550505050565b600090565b6200026662000257565b620002738184846200022c565b505050565b5b818110156200029b576200028f6000826200025c565b60018101905062000279565b5050565b601f821115620002ea57620002b4816200015e565b620002bf8462000173565b81016020851015620002cf578190505b620002e7620002de8562000173565b83018262000278565b50505b505050565b600082821c905092915050565b60006200030f60001984600802620002ef565b1980831691505092915050565b60006200032a8383620002fc565b9150826002028217905092915050565b6200034582620000c0565b67ffffffffffffffff811115620003615762000360620000cb565b5b6200036d825462000129565b6200037a8282856200029f565b600060209050601f831160018114620003b257600084156200039d578287015190505b620003a985826200031c565b86555062000419565b601f198416620003c2866200015e565b60005b82811015620003ec57848901518255600182019150602085019450602081019050620003c5565b868310156200040c578489015162000408601f891682620002fc565b8355505b6001600288020188555050505b505050505050565b610a4f80620004316000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063606deecd14610046578063f25ffb2014610050578063fa7761521461006e575b600080fd5b61004e610078565b005b6100586101de565b6040516100659190610353565b60405180910390f35b610076610290565b005b42600381905550600073b4fbf271143f4fbf7b91a5ded31805e42b2208d690506000808054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311df92f1600154600354600286866040518663ffffffff1660e01b81526004016100ff959493929190610529565b6020604051808303816000875af115801561011e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014291906105be565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663473c45fe6001546003546002601e6040518563ffffffff1660e01b81526004016101a89493929190610626565b600060405180830381600087803b1580156101c257600080fd5b505af11580156101d6573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9904f9b3060015460035460026040518563ffffffff1660e01b81526004016102459493929190610693565b61020060405180830381865afa158015610263573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028791906109eb565b60c00151905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635e9a79a93060015460035460026040518563ffffffff1660e01b81526004016102f49493929190610693565b6020604051808303816000875af1158015610313573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033791906105be565b50565b6000819050919050565b61034d8161033a565b82525050565b60006020820190506103686000830184610344565b92915050565b6000819050919050565b6103818161036e565b82525050565b6000819050919050565b61039a81610387565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806103e757607f821691505b6020821081036103fa576103f96103a0565b5b50919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008154610433816103cf565b61043d8186610400565b94506001821660008114610458576001811461046e576104a1565b60ff1983168652811515602002860193506104a1565b61047785610411565b60005b838110156104995781548189015260018201915060208101905061047a565b808801955050505b50505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006104ef6104ea6104e5846104aa565b6104ca565b6104aa565b9050919050565b6000610501826104d4565b9050919050565b6000610513826104f6565b9050919050565b61052381610508565b82525050565b600060a08201905061053e6000830188610378565b61054b6020830187610391565b818103604083015261055d8186610426565b905061056c606083018561051a565b6105796080830184610391565b9695505050505050565b6000604051905090565b600080fd5b61059b81610387565b81146105a657600080fd5b50565b6000815190506105b881610592565b92915050565b6000602082840312156105d4576105d361058d565b5b60006105e2848285016105a9565b91505092915050565b6000819050919050565b600061061061060b610606846105eb565b6104ca565b610387565b9050919050565b610620816105f5565b82525050565b600060808201905061063b6000830187610378565b6106486020830186610391565b818103604083015261065a8185610426565b90506106696060830184610617565b95945050505050565b600061067d826104aa565b9050919050565b61068d81610672565b82525050565b60006080820190506106a86000830187610684565b6106b56020830186610378565b6106c26040830185610391565b81810360608301526106d48184610426565b905095945050505050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61072d826106e4565b810181811067ffffffffffffffff8211171561074c5761074b6106f5565b5b80604052505050565b600061075f610583565b905061076b8282610724565b919050565b61077981610672565b811461078457600080fd5b50565b60008151905061079681610770565b92915050565b60006107a782610672565b9050919050565b6107b78161079c565b81146107c257600080fd5b50565b6000815190506107d4816107ae565b92915050565b60008115159050919050565b6107ef816107da565b81146107fa57600080fd5b50565b60008151905061080c816107e6565b92915050565b600060e08284031215610828576108276106df565b5b61083260e0610755565b90506000610842848285016107fd565b6000830152506020610856848285016107fd565b602083015250604061086a848285016107fd565b604083015250606061087e848285016107fd565b6060830152506080610892848285016107fd565b60808301525060a06108a6848285016105a9565b60a08301525060c06108ba848285016105a9565b60c08301525092915050565b6108cf8161033a565b81146108da57600080fd5b50565b6000815190506108ec816108c6565b92915050565b60006102008284031215610909576109086106df565b5b610914610140610755565b9050600061092484828501610787565b600083015250602061093884828501610787565b602083015250604061094c848285016107c5565b6040830152506060610960848285016107fd565b606083015250608061097484828501610812565b608083015250610160610989848285016108dd565b60a08301525061018061099e848285016108dd565b60c0830152506101a06109b3848285016105a9565b60e0830152506101c06109c8848285016105a9565b610100830152506101e06109de848285016105a9565b6101208301525092915050565b60006102008284031215610a0257610a0161058d565b5b6000610a10848285016108f2565b9150509291505056fea264697066735822122022a2401c79bcff65b62264f5622b6e4876c12242030d1441667347ff996e711264736f6c63430008100033513a446964207468652074656d7065726174757265206f6e207468652032357468206f66204a756c79203230323220696e204d616e68617474616e204e5920657863656564203335633f20413a3120666f72207965732e203020666f72206e6f2e",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH20 0xA5B9D8A0B0FA04BA71BDD68069661ED5C0848884 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x5945535F4F525F4E4F5F51554552590000000000000000000000000000000000 PUSH1 0x1 SSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x61 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xE80 PUSH1 0x61 SWAP2 CODECOPY PUSH1 0x2 SWAP1 DUP2 PUSH3 0xA6 SWAP2 SWAP1 PUSH3 0x33A JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x3 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x421 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x142 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x158 JUMPI PUSH3 0x157 PUSH3 0xFA JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1C2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x183 JUMP JUMPDEST PUSH3 0x1CE DUP7 DUP4 PUSH3 0x183 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x21B PUSH3 0x215 PUSH3 0x20F DUP5 PUSH3 0x1E6 JUMP JUMPDEST PUSH3 0x1F0 JUMP JUMPDEST PUSH3 0x1E6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x237 DUP4 PUSH3 0x1FA JUMP JUMPDEST PUSH3 0x24F PUSH3 0x246 DUP3 PUSH3 0x222 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x190 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x266 PUSH3 0x257 JUMP JUMPDEST PUSH3 0x273 DUP2 DUP5 DUP5 PUSH3 0x22C JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x29B JUMPI PUSH3 0x28F PUSH1 0x0 DUP3 PUSH3 0x25C JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x279 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2EA JUMPI PUSH3 0x2B4 DUP2 PUSH3 0x15E JUMP JUMPDEST PUSH3 0x2BF DUP5 PUSH3 0x173 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2CF JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2E7 PUSH3 0x2DE DUP6 PUSH3 0x173 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x278 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x30F PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2EF JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32A DUP4 DUP4 PUSH3 0x2FC JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x345 DUP3 PUSH3 0xC0 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x361 JUMPI PUSH3 0x360 PUSH3 0xCB JUMP JUMPDEST JUMPDEST PUSH3 0x36D DUP3 SLOAD PUSH3 0x129 JUMP JUMPDEST PUSH3 0x37A DUP3 DUP3 DUP6 PUSH3 0x29F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3B2 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x39D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3A9 DUP6 DUP3 PUSH3 0x31C JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x419 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3C2 DUP7 PUSH3 0x15E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3EC JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3C5 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x40C JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x408 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2FC JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA4F DUP1 PUSH3 0x431 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x606DEECD EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xF25FFB20 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xFA776152 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x78 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x65 SWAP2 SWAP1 PUSH2 0x353 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x76 PUSH2 0x290 JUMP JUMPDEST STOP JUMPDEST TIMESTAMP PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xB4FBF271143F4FBF7B91A5DED31805E42B2208D6 SWAP1 POP PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x11DF92F1 PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x529 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x142 SWAP2 SWAP1 PUSH2 0x5BE JUMP JUMPDEST POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x473C45FE PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH1 0x1E PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x626 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9904F9B ADDRESS PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x245 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x693 JUMP JUMPDEST PUSH2 0x200 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x263 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x287 SWAP2 SWAP1 PUSH2 0x9EB JUMP JUMPDEST PUSH1 0xC0 ADD MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5E9A79A9 ADDRESS PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F4 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x313 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x337 SWAP2 SWAP1 PUSH2 0x5BE JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34D DUP2 PUSH2 0x33A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x368 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x344 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x381 DUP2 PUSH2 0x36E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x39A DUP2 PUSH2 0x387 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x3E7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3FA JUMPI PUSH2 0x3F9 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x433 DUP2 PUSH2 0x3CF JUMP JUMPDEST PUSH2 0x43D DUP2 DUP7 PUSH2 0x400 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x458 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x46E JUMPI PUSH2 0x4A1 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x4A1 JUMP JUMPDEST PUSH2 0x477 DUP6 PUSH2 0x411 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x499 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x47A JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4EF PUSH2 0x4EA PUSH2 0x4E5 DUP5 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x4AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x501 DUP3 PUSH2 0x4D4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x513 DUP3 PUSH2 0x4F6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x523 DUP2 PUSH2 0x508 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x53E PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x378 JUMP JUMPDEST PUSH2 0x54B PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x391 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x55D DUP2 DUP7 PUSH2 0x426 JUMP JUMPDEST SWAP1 POP PUSH2 0x56C PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x51A JUMP JUMPDEST PUSH2 0x579 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x391 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59B DUP2 PUSH2 0x387 JUMP JUMPDEST DUP2 EQ PUSH2 0x5A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x5B8 DUP2 PUSH2 0x592 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D4 JUMPI PUSH2 0x5D3 PUSH2 0x58D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x5E2 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x610 PUSH2 0x60B PUSH2 0x606 DUP5 PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x387 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x620 DUP2 PUSH2 0x5F5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x63B PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x378 JUMP JUMPDEST PUSH2 0x648 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x391 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x65A DUP2 DUP6 PUSH2 0x426 JUMP JUMPDEST SWAP1 POP PUSH2 0x669 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x617 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67D DUP3 PUSH2 0x4AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x68D DUP2 PUSH2 0x672 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x6A8 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x6B5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x378 JUMP JUMPDEST PUSH2 0x6C2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x391 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x6D4 DUP2 DUP5 PUSH2 0x426 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x72D DUP3 PUSH2 0x6E4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x74C JUMPI PUSH2 0x74B PUSH2 0x6F5 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x75F PUSH2 0x583 JUMP JUMPDEST SWAP1 POP PUSH2 0x76B DUP3 DUP3 PUSH2 0x724 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x779 DUP2 PUSH2 0x672 JUMP JUMPDEST DUP2 EQ PUSH2 0x784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x796 DUP2 PUSH2 0x770 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A7 DUP3 PUSH2 0x672 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7B7 DUP2 PUSH2 0x79C JUMP JUMPDEST DUP2 EQ PUSH2 0x7C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x7D4 DUP2 PUSH2 0x7AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7EF DUP2 PUSH2 0x7DA JUMP JUMPDEST DUP2 EQ PUSH2 0x7FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x80C DUP2 PUSH2 0x7E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x828 JUMPI PUSH2 0x827 PUSH2 0x6DF JUMP JUMPDEST JUMPDEST PUSH2 0x832 PUSH1 0xE0 PUSH2 0x755 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x842 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x856 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x86A DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x87E DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x892 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x8A6 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x8BA DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8CF DUP2 PUSH2 0x33A JUMP JUMPDEST DUP2 EQ PUSH2 0x8DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x8EC DUP2 PUSH2 0x8C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x909 JUMPI PUSH2 0x908 PUSH2 0x6DF JUMP JUMPDEST JUMPDEST PUSH2 0x914 PUSH2 0x140 PUSH2 0x755 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x924 DUP5 DUP3 DUP6 ADD PUSH2 0x787 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x938 DUP5 DUP3 DUP6 ADD PUSH2 0x787 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x94C DUP5 DUP3 DUP6 ADD PUSH2 0x7C5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x960 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x974 DUP5 DUP3 DUP6 ADD PUSH2 0x812 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH2 0x160 PUSH2 0x989 DUP5 DUP3 DUP6 ADD PUSH2 0x8DD JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH2 0x180 PUSH2 0x99E DUP5 DUP3 DUP6 ADD PUSH2 0x8DD JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH2 0x1A0 PUSH2 0x9B3 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x1C0 PUSH2 0x9C8 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x1E0 PUSH2 0x9DE DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA02 JUMPI PUSH2 0xA01 PUSH2 0x58D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA10 DUP5 DUP3 DUP6 ADD PUSH2 0x8F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 LOG2 BLOCKHASH SHR PUSH26 0xBCFF65B62264F5622B6E4876C12242030D1441667347FF996E71 SLT PUSH5 0x736F6C6343 STOP ADDMOD LT STOP CALLER MLOAD GASPRICE DIFFICULTY PUSH10 0x64207468652074656D70 PUSH6 0x726174757265 KECCAK256 PUSH16 0x6E207468652032357468206F66204A75 PUSH13 0x79203230323220696E204D616E PUSH9 0x617474616E204E5920 PUSH6 0x786365656420 CALLER CALLDATALOAD PUSH4 0x3F20413A BALANCE KECCAK256 PUSH7 0x6F72207965732E KECCAK256 ADDRESS KECCAK256 PUSH7 0x6F72206E6F2E00 ",
"sourceMap": "516:2168:1:-:0;;;694:42;633:104;;;;;;;;;;;;;;;;;;;;865:26;844:47;;1181:106;;;;;;;;;;;;;;;;;1151:136;;;;;;;:::i;:::-;;1316:1;1294:23;;516:2168;;;;;;;;;;;;7:98:4;58:6;92:5;86:12;76:22;;7:98;;;:::o;111:180::-;159:77;156:1;149:88;256:4;253:1;246:15;280:4;277:1;270:15;297:180;345:77;342:1;335:88;442:4;439:1;432:15;466:4;463:1;456:15;483:320;527:6;564:1;558:4;554:12;544:22;;611:1;605:4;601:12;632:18;622:81;;688:4;680:6;676:17;666:27;;622:81;750:2;742:6;739:14;719:18;716:38;713:84;;769:18;;:::i;:::-;713:84;534:269;483:320;;;:::o;809:140::-;857:4;880:3;872:11;;903:3;900:1;893:14;937:4;934:1;924:18;916:26;;809:140;;;:::o;955:93::-;992:6;1039:2;1034;1027:5;1023:14;1019:23;1009:33;;955:93;;;:::o;1054:107::-;1098:8;1148:5;1142:4;1138:16;1117:37;;1054:107;;;;:::o;1167:393::-;1236:6;1286:1;1274:10;1270:18;1309:97;1339:66;1328:9;1309:97;:::i;:::-;1427:39;1457:8;1446:9;1427:39;:::i;:::-;1415:51;;1499:4;1495:9;1488:5;1484:21;1475:30;;1548:4;1538:8;1534:19;1527:5;1524:30;1514:40;;1243:317;;1167:393;;;;;:::o;1566:77::-;1603:7;1632:5;1621:16;;1566:77;;;:::o;1649:60::-;1677:3;1698:5;1691:12;;1649:60;;;:::o;1715:142::-;1765:9;1798:53;1816:34;1825:24;1843:5;1825:24;:::i;:::-;1816:34;:::i;:::-;1798:53;:::i;:::-;1785:66;;1715:142;;;:::o;1863:75::-;1906:3;1927:5;1920:12;;1863:75;;;:::o;1944:269::-;2054:39;2085:7;2054:39;:::i;:::-;2115:91;2164:41;2188:16;2164:41;:::i;:::-;2156:6;2149:4;2143:11;2115:91;:::i;:::-;2109:4;2102:105;2020:193;1944:269;;;:::o;2219:73::-;2264:3;2219:73;:::o;2298:189::-;2375:32;;:::i;:::-;2416:65;2474:6;2466;2460:4;2416:65;:::i;:::-;2351:136;2298:189;;:::o;2493:186::-;2553:120;2570:3;2563:5;2560:14;2553:120;;;2624:39;2661:1;2654:5;2624:39;:::i;:::-;2597:1;2590:5;2586:13;2577:22;;2553:120;;;2493:186;;:::o;2685:541::-;2785:2;2780:3;2777:11;2774:445;;;2819:37;2850:5;2819:37;:::i;:::-;2902:29;2920:10;2902:29;:::i;:::-;2892:8;2888:44;3085:2;3073:10;3070:18;3067:49;;;3106:8;3091:23;;3067:49;3129:80;3185:22;3203:3;3185:22;:::i;:::-;3175:8;3171:37;3158:11;3129:80;:::i;:::-;2789:430;;2774:445;2685:541;;;:::o;3232:117::-;3286:8;3336:5;3330:4;3326:16;3305:37;;3232:117;;;;:::o;3355:169::-;3399:6;3432:51;3480:1;3476:6;3468:5;3465:1;3461:13;3432:51;:::i;:::-;3428:56;3513:4;3507;3503:15;3493:25;;3406:118;3355:169;;;;:::o;3529:295::-;3605:4;3751:29;3776:3;3770:4;3751:29;:::i;:::-;3743:37;;3813:3;3810:1;3806:11;3800:4;3797:21;3789:29;;3529:295;;;;:::o;3829:1390::-;3944:36;3976:3;3944:36;:::i;:::-;4045:18;4037:6;4034:30;4031:56;;;4067:18;;:::i;:::-;4031:56;4111:38;4143:4;4137:11;4111:38;:::i;:::-;4196:66;4255:6;4247;4241:4;4196:66;:::i;:::-;4289:1;4313:4;4300:17;;4345:2;4337:6;4334:14;4362:1;4357:617;;;;5018:1;5035:6;5032:77;;;5084:9;5079:3;5075:19;5069:26;5060:35;;5032:77;5135:67;5195:6;5188:5;5135:67;:::i;:::-;5129:4;5122:81;4991:222;4327:886;;4357:617;4409:4;4405:9;4397:6;4393:22;4443:36;4474:4;4443:36;:::i;:::-;4501:1;4515:208;4529:7;4526:1;4523:14;4515:208;;;4608:9;4603:3;4599:19;4593:26;4585:6;4578:42;4659:1;4651:6;4647:14;4637:24;;4706:2;4695:9;4691:18;4678:31;;4552:4;4549:1;4545:12;4540:17;;4515:208;;;4751:6;4742:7;4739:19;4736:179;;;4809:9;4804:3;4800:19;4794:26;4852:48;4894:4;4886:6;4882:17;4871:9;4852:48;:::i;:::-;4844:6;4837:64;4759:156;4736:179;4961:1;4957;4949:6;4945:14;4941:22;4935:4;4928:36;4364:610;;;4327:886;;3919:1300;;;3829:1390;;:::o;516:2168:1:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@getSettledData_174": {
"entryPoint": 478,
"id": 174,
"parameterSlots": 0,
"returnSlots": 1
},
"@requestData_140": {
"entryPoint": 120,
"id": 140,
"parameterSlots": 0,
"returnSlots": 0
},
"@settleRequest_156": {
"entryPoint": 656,
"id": 156,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_t_address_fromMemory": {
"entryPoint": 1927,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool_fromMemory": {
"entryPoint": 2045,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_contract$_IERC20_$77_fromMemory": {
"entryPoint": 1989,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_int256_fromMemory": {
"entryPoint": 2269,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_RequestSettings_$291_memory_ptr_fromMemory": {
"entryPoint": 2066,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_Request_$314_memory_ptr_fromMemory": {
"entryPoint": 2290,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 1449,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_struct$_Request_$314_memory_ptr_fromMemory": {
"entryPoint": 2539,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 1470,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1668,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_fromStack": {
"entryPoint": 888,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack": {
"entryPoint": 1062,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_contract$_IERC20_$77_to_t_address_fromStack": {
"entryPoint": 1306,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_int256_to_t_int256_fromStack": {
"entryPoint": 836,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_rational_30_by_1_to_t_uint256_fromStack": {
"entryPoint": 1559,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 913,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address_t_bytes32_t_uint256_t_bytes_storage__to_t_address_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 1683,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32_t_uint256_t_bytes_storage_t_contract$_IERC20_$77_t_uint256__to_t_bytes32_t_uint256_t_bytes_memory_ptr_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 1321,
"id": null,
"parameterSlots": 6,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32_t_uint256_t_bytes_storage_t_rational_30_by_1__to_t_bytes32_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed": {
"entryPoint": 1574,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed": {
"entryPoint": 851,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1877,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1411,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_dataslot_t_bytes_storage": {
"entryPoint": 1041,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": {
"entryPoint": 1024,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1650,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 2010,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 878,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_contract$_IERC20_$77": {
"entryPoint": 1948,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_int256": {
"entryPoint": 826,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_rational_30_by_1": {
"entryPoint": 1515,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1194,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 903,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_contract$_IERC20_$77_to_t_address": {
"entryPoint": 1288,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_rational_30_by_1_to_t_uint256": {
"entryPoint": 1525,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_address": {
"entryPoint": 1270,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_uint160_to_t_uint160": {
"entryPoint": 1236,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"extract_byte_array_length": {
"entryPoint": 975,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 1828,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"identity": {
"entryPoint": 1226,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 928,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1781,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f": {
"entryPoint": 1759,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1421,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1764,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 1904,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bool": {
"entryPoint": 2022,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_contract$_IERC20_$77": {
"entryPoint": 1966,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_int256": {
"entryPoint": 2246,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 1426,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:13477:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "51:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "61:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "72:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "61:7:4"
}
]
}
]
},
"name": "cleanup_t_int256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "33:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "43:7:4",
"type": ""
}
],
"src": "7:76:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "152:52:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "169:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "191:5:4"
}
],
"functionName": {
"name": "cleanup_t_int256",
"nodeType": "YulIdentifier",
"src": "174:16:4"
},
"nodeType": "YulFunctionCall",
"src": "174:23:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "162:6:4"
},
"nodeType": "YulFunctionCall",
"src": "162:36:4"
},
"nodeType": "YulExpressionStatement",
"src": "162:36:4"
}
]
},
"name": "abi_encode_t_int256_to_t_int256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "140:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "147:3:4",
"type": ""
}
],
"src": "89:115:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "306:122:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "316:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "328:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "339:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "324:3:4"
},
"nodeType": "YulFunctionCall",
"src": "324:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "316:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "394:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "407:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "418:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "403:3:4"
},
"nodeType": "YulFunctionCall",
"src": "403:17:4"
}
],
"functionName": {
"name": "abi_encode_t_int256_to_t_int256_fromStack",
"nodeType": "YulIdentifier",
"src": "352:41:4"
},
"nodeType": "YulFunctionCall",
"src": "352:69:4"
},
"nodeType": "YulExpressionStatement",
"src": "352:69:4"
}
]
},
"name": "abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "278:9:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "290:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "301:4:4",
"type": ""
}
],
"src": "210:218:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "479:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "489:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "500:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "489:7:4"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "461:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "471:7:4",
"type": ""
}
],
"src": "434:77:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "582:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "599:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "622:5:4"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "604:17:4"
},
"nodeType": "YulFunctionCall",
"src": "604:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "592:6:4"
},
"nodeType": "YulFunctionCall",
"src": "592:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "592:37:4"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "570:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "577:3:4",
"type": ""
}
],
"src": "517:118:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "686:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "696:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "707:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "696:7:4"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "668:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "678:7:4",
"type": ""
}
],
"src": "641:77:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "789:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "806:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "829:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "811:17:4"
},
"nodeType": "YulFunctionCall",
"src": "811:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "799:6:4"
},
"nodeType": "YulFunctionCall",
"src": "799:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "799:37:4"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "777:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "784:3:4",
"type": ""
}
],
"src": "724:118:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "876:152:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "893:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "896:77:4",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "886:6:4"
},
"nodeType": "YulFunctionCall",
"src": "886:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "886:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "990:1:4",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "993:4:4",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "983:6:4"
},
"nodeType": "YulFunctionCall",
"src": "983:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "983:15:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1014:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1017:4:4",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1007:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1007:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "1007:15:4"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "848:180:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1085:269:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1095:22:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1109:4:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1115:1:4",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "1105:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1105:12:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1095:6:4"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1126:38:4",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1156:4:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1162:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1152:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1152:12:4"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "1130:18:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1203:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1217:27:4",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1231:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1239:4:4",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1227:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1227:17:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1217:6:4"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1183:18:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1176:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1176:26:4"
},
"nodeType": "YulIf",
"src": "1173:81:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1306:42:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "1320:16:4"
},
"nodeType": "YulFunctionCall",
"src": "1320:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "1320:18:4"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1270:18:4"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1293:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1301:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1290:2:4"
},
"nodeType": "YulFunctionCall",
"src": "1290:14:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1267:2:4"
},
"nodeType": "YulFunctionCall",
"src": "1267:38:4"
},
"nodeType": "YulIf",
"src": "1264:84:4"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "1069:4:4",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1078:6:4",
"type": ""
}
],
"src": "1034:320:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1455:73:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1472:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1477:6:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1465:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1465:19:4"
},
"nodeType": "YulExpressionStatement",
"src": "1465:19:4"
},
{
"nodeType": "YulAssignment",
"src": "1493:29:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1512:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1517:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1508:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1508:14:4"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1493:11:4"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1427:3:4",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1432:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1443:11:4",
"type": ""
}
],
"src": "1360:168:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1587:87:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1597:11:4",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "1605:3:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1597:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1625:1:4",
"type": "",
"value": "0"
},
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "1628:3:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1618:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1618:14:4"
},
"nodeType": "YulExpressionStatement",
"src": "1618:14:4"
},
{
"nodeType": "YulAssignment",
"src": "1641:26:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1659:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1662:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "keccak256",
"nodeType": "YulIdentifier",
"src": "1649:9:4"
},
"nodeType": "YulFunctionCall",
"src": "1649:18:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1641:4:4"
}
]
}
]
},
"name": "array_dataslot_t_bytes_storage",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "1574:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "1582:4:4",
"type": ""
}
],
"src": "1534:140:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1789:740:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1799:29:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1822:5:4"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "1816:5:4"
},
"nodeType": "YulFunctionCall",
"src": "1816:12:4"
},
"variables": [
{
"name": "slotValue",
"nodeType": "YulTypedName",
"src": "1803:9:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1837:50:4",
"value": {
"arguments": [
{
"name": "slotValue",
"nodeType": "YulIdentifier",
"src": "1877:9:4"
}
],
"functionName": {
"name": "extract_byte_array_length",
"nodeType": "YulIdentifier",
"src": "1851:25:4"
},
"nodeType": "YulFunctionCall",
"src": "1851:36:4"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1841:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1896:77:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1961:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1966:6:4"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1903:57:4"
},
"nodeType": "YulFunctionCall",
"src": "1903:70:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1896:3:4"
}
]
},
{
"cases": [
{
"body": {
"nodeType": "YulBlock",
"src": "2022:157:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2075:3:4"
},
{
"arguments": [
{
"name": "slotValue",
"nodeType": "YulIdentifier",
"src": "2084:9:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2099:4:4",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "2095:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2095:9:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2080:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2080:25:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2068:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2068:38:4"
},
"nodeType": "YulExpressionStatement",
"src": "2068:38:4"
},
{
"nodeType": "YulAssignment",
"src": "2119:50:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2130:3:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2139:4:4",
"type": "",
"value": "0x20"
},
{
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2159:6:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2152:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2152:14:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2145:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2145:22:4"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "2135:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2135:33:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2126:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2126:43:4"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "2119:3:4"
}
]
}
]
},
"nodeType": "YulCase",
"src": "2015:164:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2020:1:4",
"type": "",
"value": "0"
}
},
{
"body": {
"nodeType": "YulBlock",
"src": "2195:328:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2240:52:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2286:5:4"
}
],
"functionName": {
"name": "array_dataslot_t_bytes_storage",
"nodeType": "YulIdentifier",
"src": "2255:30:4"
},
"nodeType": "YulFunctionCall",
"src": "2255:37:4"
},
"variables": [
{
"name": "dataPos",
"nodeType": "YulTypedName",
"src": "2244:7:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2305:10:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2314:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "2309:1:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2372:110:4",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2401:3:4"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2406:1:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2397:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2397:11:4"
},
{
"arguments": [
{
"name": "dataPos",
"nodeType": "YulIdentifier",
"src": "2416:7:4"
}
],
"functionName": {
"name": "sload",
"nodeType": "YulIdentifier",
"src": "2410:5:4"
},
"nodeType": "YulFunctionCall",
"src": "2410:14:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2390:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2390:35:4"
},
"nodeType": "YulExpressionStatement",
"src": "2390:35:4"
},
{
"nodeType": "YulAssignment",
"src": "2442:26:4",
"value": {
"arguments": [
{
"name": "dataPos",
"nodeType": "YulIdentifier",
"src": "2457:7:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2466:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2453:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2453:15:4"
},
"variableNames": [
{
"name": "dataPos",
"nodeType": "YulIdentifier",
"src": "2442:7:4"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2339:1:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2342:6:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2336:2:4"
},
"nodeType": "YulFunctionCall",
"src": "2336:13:4"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2350:21:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2352:17:4",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2361:1:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2364:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2357:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2357:12:4"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2352:1:4"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2332:3:4",
"statements": []
},
"src": "2328:154:4"
},
{
"nodeType": "YulAssignment",
"src": "2495:18:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2506:3:4"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2511:1:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2502:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2502:11:4"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "2495:3:4"
}
]
}
]
},
"nodeType": "YulCase",
"src": "2188:335:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2193:1:4",
"type": "",
"value": "1"
}
}
],
"expression": {
"arguments": [
{
"name": "slotValue",
"nodeType": "YulIdentifier",
"src": "1993:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2004:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1989:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1989:17:4"
},
"nodeType": "YulSwitch",
"src": "1982:541:4"
}
]
},
"name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1770:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1777:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "1785:3:4",
"type": ""
}
],
"src": "1702:827:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2580:81:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2590:65:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2605:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2612:42:4",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2601:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2601:54:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2590:7:4"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2562:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2572:7:4",
"type": ""
}
],
"src": "2535:126:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2699:28:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2709:12:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2716:5:4"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "2709:3:4"
}
]
}
]
},
"name": "identity",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2685:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "2695:3:4",
"type": ""
}
],
"src": "2667:60:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2793:82:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2803:66:4",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2861:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2843:17:4"
},
"nodeType": "YulFunctionCall",
"src": "2843:24:4"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "2834:8:4"
},
"nodeType": "YulFunctionCall",
"src": "2834:34:4"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2816:17:4"
},
"nodeType": "YulFunctionCall",
"src": "2816:53:4"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "2803:9:4"
}
]
}
]
},
"name": "convert_t_uint160_to_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2773:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "2783:9:4",
"type": ""
}
],
"src": "2733:142:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2941:66:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2951:50:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2995:5:4"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_uint160",
"nodeType": "YulIdentifier",
"src": "2964:30:4"
},
"nodeType": "YulFunctionCall",
"src": "2964:37:4"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "2951:9:4"
}
]
}
]
},
"name": "convert_t_uint160_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2921:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "2931:9:4",
"type": ""
}
],
"src": "2881:126:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3086:66:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3096:50:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3140:5:4"
}
],
"functionName": {
"name": "convert_t_uint160_to_t_address",
"nodeType": "YulIdentifier",
"src": "3109:30:4"
},
"nodeType": "YulFunctionCall",
"src": "3109:37:4"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "3096:9:4"
}
]
}
]
},
"name": "convert_t_contract$_IERC20_$77_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3066:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "3076:9:4",
"type": ""
}
],
"src": "3013:139:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3236:79:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3253:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3302:5:4"
}
],
"functionName": {
"name": "convert_t_contract$_IERC20_$77_to_t_address",
"nodeType": "YulIdentifier",
"src": "3258:43:4"
},
"nodeType": "YulFunctionCall",
"src": "3258:50:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3246:6:4"
},
"nodeType": "YulFunctionCall",
"src": "3246:63:4"
},
"nodeType": "YulExpressionStatement",
"src": "3246:63:4"
}
]
},
"name": "abi_encode_t_contract$_IERC20_$77_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3224:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3231:3:4",
"type": ""
}
],
"src": "3158:157:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3559:533:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3569:27:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3581:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3592:3:4",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3577:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3577:19:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3569:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3650:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3663:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3674:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3659:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3659:17:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "3606:43:4"
},
"nodeType": "YulFunctionCall",
"src": "3606:71:4"
},
"nodeType": "YulExpressionStatement",
"src": "3606:71:4"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3731:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3744:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3755:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3740:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3740:18:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "3687:43:4"
},
"nodeType": "YulFunctionCall",
"src": "3687:72:4"
},
"nodeType": "YulExpressionStatement",
"src": "3687:72:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3780:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3791:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3776:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3776:18:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3800:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3806:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3796:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3796:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3769:6:4"
},
"nodeType": "YulFunctionCall",
"src": "3769:48:4"
},
"nodeType": "YulExpressionStatement",
"src": "3769:48:4"
},
{
"nodeType": "YulAssignment",
"src": "3826:81:4",
"value": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3893:6:4"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3902:4:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3834:58:4"
},
"nodeType": "YulFunctionCall",
"src": "3834:73:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3826:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "3974:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3987:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3998:2:4",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3983:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3983:18:4"
}
],
"functionName": {
"name": "abi_encode_t_contract$_IERC20_$77_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3917:56:4"
},
"nodeType": "YulFunctionCall",
"src": "3917:85:4"
},
"nodeType": "YulExpressionStatement",
"src": "3917:85:4"
},
{
"expression": {
"arguments": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "4056:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4069:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4080:3:4",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4065:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4065:19:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "4012:43:4"
},
"nodeType": "YulFunctionCall",
"src": "4012:73:4"
},
"nodeType": "YulExpressionStatement",
"src": "4012:73:4"
}
]
},
"name": "abi_encode_tuple_t_bytes32_t_uint256_t_bytes_storage_t_contract$_IERC20_$77_t_uint256__to_t_bytes32_t_uint256_t_bytes_memory_ptr_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3499:9:4",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "3511:6:4",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "3519:6:4",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "3527:6:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3535:6:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3543:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3554:4:4",
"type": ""
}
],
"src": "3321:771:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4138:35:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4148:19:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4164:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4158:5:4"
},
"nodeType": "YulFunctionCall",
"src": "4158:9:4"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4148:6:4"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4131:6:4",
"type": ""
}
],
"src": "4098:75:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4268:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4285:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4288:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4278:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4278:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "4278:12:4"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "4179:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4391:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4408:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4411:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4401:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4401:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "4401:12:4"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "4302:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4468:79:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4525:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4534:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4537:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4527:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4527:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "4527:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4491:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4516:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4498:17:4"
},
"nodeType": "YulFunctionCall",
"src": "4498:24:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4488:2:4"
},
"nodeType": "YulFunctionCall",
"src": "4488:35:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4481:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4481:43:4"
},
"nodeType": "YulIf",
"src": "4478:63:4"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4461:5:4",
"type": ""
}
],
"src": "4425:122:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4616:80:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4626:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4641:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4635:5:4"
},
"nodeType": "YulFunctionCall",
"src": "4635:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4626:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4684:5:4"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "4657:26:4"
},
"nodeType": "YulFunctionCall",
"src": "4657:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "4657:33:4"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4594:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4602:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4610:5:4",
"type": ""
}
],
"src": "4553:143:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4779:274:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4825:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "4827:77:4"
},
"nodeType": "YulFunctionCall",
"src": "4827:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "4827:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4800:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4809:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4796:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4796:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4821:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "4792:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4792:32:4"
},
"nodeType": "YulIf",
"src": "4789:119:4"
},
{
"nodeType": "YulBlock",
"src": "4918:128:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4933:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4947:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4937:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4962:74:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5008:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5019:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5004:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5004:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5028:7:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "4972:31:4"
},
"nodeType": "YulFunctionCall",
"src": "4972:64:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4962:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4749:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "4760:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4772:6:4",
"type": ""
}
],
"src": "4702:351:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5113:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5123:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5134:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "5123:7:4"
}
]
}
]
},
"name": "cleanup_t_rational_30_by_1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5095:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "5105:7:4",
"type": ""
}
],
"src": "5059:86:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5220:91:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5230:75:4",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5297:5:4"
}
],
"functionName": {
"name": "cleanup_t_rational_30_by_1",
"nodeType": "YulIdentifier",
"src": "5270:26:4"
},
"nodeType": "YulFunctionCall",
"src": "5270:33:4"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "5261:8:4"
},
"nodeType": "YulFunctionCall",
"src": "5261:43:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "5243:17:4"
},
"nodeType": "YulFunctionCall",
"src": "5243:62:4"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "5230:9:4"
}
]
}
]
},
"name": "convert_t_rational_30_by_1_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5200:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "5210:9:4",
"type": ""
}
],
"src": "5151:160:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5391:75:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5408:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5453:5:4"
}
],
"functionName": {
"name": "convert_t_rational_30_by_1_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "5413:39:4"
},
"nodeType": "YulFunctionCall",
"src": "5413:46:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5401:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5401:59:4"
},
"nodeType": "YulExpressionStatement",
"src": "5401:59:4"
}
]
},
"name": "abi_encode_t_rational_30_by_1_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5379:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5386:3:4",
"type": ""
}
],
"src": "5317:149:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5678:446:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5688:27:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5700:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5711:3:4",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5696:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5696:19:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5688:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5769:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5782:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5793:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5778:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5778:17:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "5725:43:4"
},
"nodeType": "YulFunctionCall",
"src": "5725:71:4"
},
"nodeType": "YulExpressionStatement",
"src": "5725:71:4"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5850:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5863:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5874:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5859:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5859:18:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "5806:43:4"
},
"nodeType": "YulFunctionCall",
"src": "5806:72:4"
},
"nodeType": "YulExpressionStatement",
"src": "5806:72:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5899:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5910:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5895:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5895:18:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5919:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5925:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5915:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5915:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5888:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5888:48:4"
},
"nodeType": "YulExpressionStatement",
"src": "5888:48:4"
},
{
"nodeType": "YulAssignment",
"src": "5945:81:4",
"value": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6012:6:4"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6021:4:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5953:58:4"
},
"nodeType": "YulFunctionCall",
"src": "5953:73:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5945:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "6089:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6102:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6113:2:4",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6098:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6098:18:4"
}
],
"functionName": {
"name": "abi_encode_t_rational_30_by_1_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "6036:52:4"
},
"nodeType": "YulFunctionCall",
"src": "6036:81:4"
},
"nodeType": "YulExpressionStatement",
"src": "6036:81:4"
}
]
},
"name": "abi_encode_tuple_t_bytes32_t_uint256_t_bytes_storage_t_rational_30_by_1__to_t_bytes32_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5626:9:4",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "5638:6:4",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5646:6:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5654:6:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5662:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5673:4:4",
"type": ""
}
],
"src": "5472:652:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6175:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6185:35:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6214:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "6196:17:4"
},
"nodeType": "YulFunctionCall",
"src": "6196:24:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "6185:7:4"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6157:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "6167:7:4",
"type": ""
}
],
"src": "6130:96:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6297:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6314:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6337:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "6319:17:4"
},
"nodeType": "YulFunctionCall",
"src": "6319:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6307:6:4"
},
"nodeType": "YulFunctionCall",
"src": "6307:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "6307:37:4"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6285:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6292:3:4",
"type": ""
}
],
"src": "6232:118:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6553:437:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6563:27:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6575:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6586:3:4",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6571:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6571:19:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6563:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6644:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6657:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6668:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6653:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6653:17:4"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "6600:43:4"
},
"nodeType": "YulFunctionCall",
"src": "6600:71:4"
},
"nodeType": "YulExpressionStatement",
"src": "6600:71:4"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "6725:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6738:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6749:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6734:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6734:18:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "6681:43:4"
},
"nodeType": "YulFunctionCall",
"src": "6681:72:4"
},
"nodeType": "YulExpressionStatement",
"src": "6681:72:4"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6807:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6820:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6831:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6816:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6816:18:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "6763:43:4"
},
"nodeType": "YulFunctionCall",
"src": "6763:72:4"
},
"nodeType": "YulExpressionStatement",
"src": "6763:72:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6856:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6867:2:4",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6852:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6852:18:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6876:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6882:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6872:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6872:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6845:6:4"
},
"nodeType": "YulFunctionCall",
"src": "6845:48:4"
},
"nodeType": "YulExpressionStatement",
"src": "6845:48:4"
},
{
"nodeType": "YulAssignment",
"src": "6902:81:4",
"value": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "6969:6:4"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6978:4:4"
}
],
"functionName": {
"name": "abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6910:58:4"
},
"nodeType": "YulFunctionCall",
"src": "6910:73:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6902:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_address_t_bytes32_t_uint256_t_bytes_storage__to_t_address_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6501:9:4",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "6513:6:4",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "6521:6:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "6529:6:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6537:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6548:4:4",
"type": ""
}
],
"src": "6356:634:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7085:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7102:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7105:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7095:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7095:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "7095:12:4"
}
]
},
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nodeType": "YulFunctionDefinition",
"src": "6996:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7167:54:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7177:38:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7195:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7202:2:4",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7191:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7191:14:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7211:2:4",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "7207:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7207:7:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7187:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7187:28:4"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "7177:6:4"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7150:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "7160:6:4",
"type": ""
}
],
"src": "7119:102:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7255:152:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7272:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7275:77:4",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7265:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7265:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "7265:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7369:1:4",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7372:4:4",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7362:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7362:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "7362:15:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7393:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7396:4:4",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7386:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7386:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "7386:15:4"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "7227:180:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7456:238:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7466:58:4",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7488:6:4"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "7518:4:4"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "7496:21:4"
},
"nodeType": "YulFunctionCall",
"src": "7496:27:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7484:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7484:40:4"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "7470:10:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7635:22:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "7637:16:4"
},
"nodeType": "YulFunctionCall",
"src": "7637:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "7637:18:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "7578:10:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7590:18:4",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7575:2:4"
},
"nodeType": "YulFunctionCall",
"src": "7575:34:4"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "7614:10:4"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7626:6:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "7611:2:4"
},
"nodeType": "YulFunctionCall",
"src": "7611:22:4"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "7572:2:4"
},
"nodeType": "YulFunctionCall",
"src": "7572:62:4"
},
"nodeType": "YulIf",
"src": "7569:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7673:2:4",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "7677:10:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7666:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7666:22:4"
},
"nodeType": "YulExpressionStatement",
"src": "7666:22:4"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "7442:6:4",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "7450:4:4",
"type": ""
}
],
"src": "7413:281:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7741:88:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7751:30:4",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "7761:18:4"
},
"nodeType": "YulFunctionCall",
"src": "7761:20:4"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7751:6:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7810:6:4"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "7818:4:4"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "7790:19:4"
},
"nodeType": "YulFunctionCall",
"src": "7790:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "7790:33:4"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "7725:4:4",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "7734:6:4",
"type": ""
}
],
"src": "7700:129:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7924:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7941:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7944:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7934:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7934:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "7934:12:4"
}
]
},
"name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421",
"nodeType": "YulFunctionDefinition",
"src": "7835:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8001:79:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8058:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8067:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8070:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8060:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8060:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "8060:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8024:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8049:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "8031:17:4"
},
"nodeType": "YulFunctionCall",
"src": "8031:24:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "8021:2:4"
},
"nodeType": "YulFunctionCall",
"src": "8021:35:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8014:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8014:43:4"
},
"nodeType": "YulIf",
"src": "8011:63:4"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7994:5:4",
"type": ""
}
],
"src": "7958:122:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8149:80:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8159:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8174:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "8168:5:4"
},
"nodeType": "YulFunctionCall",
"src": "8168:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8159:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8217:5:4"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "8190:26:4"
},
"nodeType": "YulFunctionCall",
"src": "8190:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "8190:33:4"
}
]
},
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8127:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8135:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8143:5:4",
"type": ""
}
],
"src": "8086:143:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8293:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8303:35:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8332:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "8314:17:4"
},
"nodeType": "YulFunctionCall",
"src": "8314:24:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "8303:7:4"
}
]
}
]
},
"name": "cleanup_t_contract$_IERC20_$77",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8275:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "8285:7:4",
"type": ""
}
],
"src": "8235:109:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8406:92:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8476:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8485:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8488:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8478:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8478:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "8478:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8429:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8467:5:4"
}
],
"functionName": {
"name": "cleanup_t_contract$_IERC20_$77",
"nodeType": "YulIdentifier",
"src": "8436:30:4"
},
"nodeType": "YulFunctionCall",
"src": "8436:37:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "8426:2:4"
},
"nodeType": "YulFunctionCall",
"src": "8426:48:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8419:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8419:56:4"
},
"nodeType": "YulIf",
"src": "8416:76:4"
}
]
},
"name": "validator_revert_t_contract$_IERC20_$77",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8399:5:4",
"type": ""
}
],
"src": "8350:148:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8580:93:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8590:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8605:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "8599:5:4"
},
"nodeType": "YulFunctionCall",
"src": "8599:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8590:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8661:5:4"
}
],
"functionName": {
"name": "validator_revert_t_contract$_IERC20_$77",
"nodeType": "YulIdentifier",
"src": "8621:39:4"
},
"nodeType": "YulFunctionCall",
"src": "8621:46:4"
},
"nodeType": "YulExpressionStatement",
"src": "8621:46:4"
}
]
},
"name": "abi_decode_t_contract$_IERC20_$77_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8558:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8566:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8574:5:4",
"type": ""
}
],
"src": "8504:169:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8721:48:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8731:32:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8756:5:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8749:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8749:13:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8742:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8742:21:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "8731:7:4"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8703:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "8713:7:4",
"type": ""
}
],
"src": "8679:90:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8815:76:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8869:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8878:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8881:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8871:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8871:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "8871:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8838:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8860:5:4"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "8845:14:4"
},
"nodeType": "YulFunctionCall",
"src": "8845:21:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "8835:2:4"
},
"nodeType": "YulFunctionCall",
"src": "8835:32:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8828:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8828:40:4"
},
"nodeType": "YulIf",
"src": "8825:60:4"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8808:5:4",
"type": ""
}
],
"src": "8775:116:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8957:77:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8967:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8982:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "8976:5:4"
},
"nodeType": "YulFunctionCall",
"src": "8976:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8967:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9022:5:4"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "8998:23:4"
},
"nodeType": "YulFunctionCall",
"src": "8998:30:4"
},
"nodeType": "YulExpressionStatement",
"src": "8998:30:4"
}
]
},
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8935:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8943:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8951:5:4",
"type": ""
}
],
"src": "8897:137:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9196:1447:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "9240:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nodeType": "YulIdentifier",
"src": "9242:77:4"
},
"nodeType": "YulFunctionCall",
"src": "9242:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "9242:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9217:3:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9222:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9213:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9213:19:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9234:4:4",
"type": "",
"value": "0xe0"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "9209:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9209:30:4"
},
"nodeType": "YulIf",
"src": "9206:117:4"
},
{
"nodeType": "YulAssignment",
"src": "9332:30:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9357:4:4",
"type": "",
"value": "0xe0"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "9341:15:4"
},
"nodeType": "YulFunctionCall",
"src": "9341:21:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9332:5:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "9372:164:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9413:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9427:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9417:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9453:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9460:4:4",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9449:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9449:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9500:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9511:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9496:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9496:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9520:3:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "9467:28:4"
},
"nodeType": "YulFunctionCall",
"src": "9467:57:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9442:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9442:83:4"
},
"nodeType": "YulExpressionStatement",
"src": "9442:83:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "9546:170:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9592:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9606:2:4",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9596:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9633:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9640:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9629:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9629:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9680:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9691:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9676:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9676:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9700:3:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "9647:28:4"
},
"nodeType": "YulFunctionCall",
"src": "9647:57:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9622:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9622:83:4"
},
"nodeType": "YulExpressionStatement",
"src": "9622:83:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "9726:178:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9780:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9794:2:4",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9784:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9821:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9828:4:4",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9817:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9817:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9868:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9879:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9864:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9864:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9888:3:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "9835:28:4"
},
"nodeType": "YulFunctionCall",
"src": "9835:57:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9810:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9810:83:4"
},
"nodeType": "YulExpressionStatement",
"src": "9810:83:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "9914:178:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9968:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "9982:2:4",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9972:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10009:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10016:4:4",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10005:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10005:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10056:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10067:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10052:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10052:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10076:3:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "10023:28:4"
},
"nodeType": "YulFunctionCall",
"src": "10023:57:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9998:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9998:83:4"
},
"nodeType": "YulExpressionStatement",
"src": "9998:83:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "10102:178:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10155:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10169:3:4",
"type": "",
"value": "128"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10159:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10197:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10204:4:4",
"type": "",
"value": "0x80"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10193:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10193:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10244:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10255:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10240:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10240:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10264:3:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "10211:28:4"
},
"nodeType": "YulFunctionCall",
"src": "10211:57:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10186:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10186:83:4"
},
"nodeType": "YulExpressionStatement",
"src": "10186:83:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "10290:163:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10325:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10339:3:4",
"type": "",
"value": "160"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10329:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10367:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10374:4:4",
"type": "",
"value": "0xa0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10363:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10363:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10417:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10428:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10413:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10413:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10437:3:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "10381:31:4"
},
"nodeType": "YulFunctionCall",
"src": "10381:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10356:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10356:86:4"
},
"nodeType": "YulExpressionStatement",
"src": "10356:86:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "10463:173:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10508:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10522:3:4",
"type": "",
"value": "192"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10512:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10550:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10557:4:4",
"type": "",
"value": "0xc0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10546:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10546:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10600:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10611:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10596:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10596:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10620:3:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "10564:31:4"
},
"nodeType": "YulFunctionCall",
"src": "10564:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10539:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10539:86:4"
},
"nodeType": "YulExpressionStatement",
"src": "10539:86:4"
}
]
}
]
},
"name": "abi_decode_t_struct$_RequestSettings_$291_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9171:9:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "9182:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9190:5:4",
"type": ""
}
],
"src": "9098:1545:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10691:78:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "10747:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10756:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10759:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "10749:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10749:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "10749:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10714:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10738:5:4"
}
],
"functionName": {
"name": "cleanup_t_int256",
"nodeType": "YulIdentifier",
"src": "10721:16:4"
},
"nodeType": "YulFunctionCall",
"src": "10721:23:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "10711:2:4"
},
"nodeType": "YulFunctionCall",
"src": "10711:34:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "10704:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10704:42:4"
},
"nodeType": "YulIf",
"src": "10701:62:4"
}
]
},
"name": "validator_revert_t_int256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "10684:5:4",
"type": ""
}
],
"src": "10649:120:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10837:79:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10847:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10862:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "10856:5:4"
},
"nodeType": "YulFunctionCall",
"src": "10856:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10847:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10904:5:4"
}
],
"functionName": {
"name": "validator_revert_t_int256",
"nodeType": "YulIdentifier",
"src": "10878:25:4"
},
"nodeType": "YulFunctionCall",
"src": "10878:32:4"
},
"nodeType": "YulExpressionStatement",
"src": "10878:32:4"
}
]
},
"name": "abi_decode_t_int256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10815:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "10823:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "10831:5:4",
"type": ""
}
],
"src": "10775:141:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11062:2006:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11108:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nodeType": "YulIdentifier",
"src": "11110:77:4"
},
"nodeType": "YulFunctionCall",
"src": "11110:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "11110:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11083:3:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11088:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11079:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11079:19:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11100:6:4",
"type": "",
"value": "0x0200"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "11075:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11075:32:4"
},
"nodeType": "YulIf",
"src": "11072:119:4"
},
{
"nodeType": "YulAssignment",
"src": "11200:32:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11225:6:4",
"type": "",
"value": "0x0140"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "11209:15:4"
},
"nodeType": "YulFunctionCall",
"src": "11209:23:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11200:5:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "11242:165:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11281:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11295:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11285:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11321:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11328:4:4",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11317:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11317:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11371:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11382:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11367:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11367:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11391:3:4"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "11335:31:4"
},
"nodeType": "YulFunctionCall",
"src": "11335:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11310:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11310:86:4"
},
"nodeType": "YulExpressionStatement",
"src": "11310:86:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "11417:166:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11456:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11470:2:4",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11460:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11497:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11504:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11493:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11493:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11547:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11558:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11543:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11543:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11567:3:4"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "11511:31:4"
},
"nodeType": "YulFunctionCall",
"src": "11511:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11486:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11486:86:4"
},
"nodeType": "YulExpressionStatement",
"src": "11486:86:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "11593:179:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11632:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11646:2:4",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11636:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11673:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11680:4:4",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11669:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11669:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11736:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11747:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11732:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11732:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11756:3:4"
}
],
"functionName": {
"name": "abi_decode_t_contract$_IERC20_$77_fromMemory",
"nodeType": "YulIdentifier",
"src": "11687:44:4"
},
"nodeType": "YulFunctionCall",
"src": "11687:73:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11662:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11662:99:4"
},
"nodeType": "YulExpressionStatement",
"src": "11662:99:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "11782:162:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11820:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11834:2:4",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11824:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11861:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11868:4:4",
"type": "",
"value": "0x60"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11857:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11857:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11908:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11919:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11904:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11904:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11928:3:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "11875:28:4"
},
"nodeType": "YulFunctionCall",
"src": "11875:57:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11850:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11850:83:4"
},
"nodeType": "YulExpressionStatement",
"src": "11850:83:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "11954:206:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12000:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12014:3:4",
"type": "",
"value": "128"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12004:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12042:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12049:4:4",
"type": "",
"value": "0x80"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12038:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12038:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12124:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12135:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12120:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12120:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12144:3:4"
}
],
"functionName": {
"name": "abi_decode_t_struct$_RequestSettings_$291_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "12056:63:4"
},
"nodeType": "YulFunctionCall",
"src": "12056:92:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12031:6:4"
},
"nodeType": "YulFunctionCall",
"src": "12031:118:4"
},
"nodeType": "YulExpressionStatement",
"src": "12031:118:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "12170:171:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12214:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12228:3:4",
"type": "",
"value": "352"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12218:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12256:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12263:4:4",
"type": "",
"value": "0xa0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12252:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12252:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12305:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12316:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12301:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12301:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12325:3:4"
}
],
"functionName": {
"name": "abi_decode_t_int256_fromMemory",
"nodeType": "YulIdentifier",
"src": "12270:30:4"
},
"nodeType": "YulFunctionCall",
"src": "12270:59:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12245:6:4"
},
"nodeType": "YulFunctionCall",
"src": "12245:85:4"
},
"nodeType": "YulExpressionStatement",
"src": "12245:85:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "12351:171:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12395:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12409:3:4",
"type": "",
"value": "384"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12399:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12437:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12444:4:4",
"type": "",
"value": "0xc0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12433:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12433:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12486:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12497:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12482:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12482:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12506:3:4"
}
],
"functionName": {
"name": "abi_decode_t_int256_fromMemory",
"nodeType": "YulIdentifier",
"src": "12451:30:4"
},
"nodeType": "YulFunctionCall",
"src": "12451:59:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12426:6:4"
},
"nodeType": "YulFunctionCall",
"src": "12426:85:4"
},
"nodeType": "YulExpressionStatement",
"src": "12426:85:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "12532:173:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12577:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12591:3:4",
"type": "",
"value": "416"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12581:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12619:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12626:4:4",
"type": "",
"value": "0xe0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12615:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12615:16:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12669:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12680:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12665:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12665:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12689:3:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "12633:31:4"
},
"nodeType": "YulFunctionCall",
"src": "12633:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12608:6:4"
},
"nodeType": "YulFunctionCall",
"src": "12608:86:4"
},
"nodeType": "YulExpressionStatement",
"src": "12608:86:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "12715:167:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12752:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12766:3:4",
"type": "",
"value": "448"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12756:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12794:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12801:6:4",
"type": "",
"value": "0x0100"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12790:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12790:18:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12846:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12857:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12842:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12842:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "12866:3:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "12810:31:4"
},
"nodeType": "YulFunctionCall",
"src": "12810:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12783:6:4"
},
"nodeType": "YulFunctionCall",
"src": "12783:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "12783:88:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "12892:169:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12931:17:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12945:3:4",
"type": "",
"value": "480"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12935:6:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12973:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12980:6:4",
"type": "",
"value": "0x0120"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12969:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12969:18:4"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13025:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13036:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13021:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13021:22:4"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "13045:3:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "12989:31:4"
},
"nodeType": "YulFunctionCall",
"src": "12989:60:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12962:6:4"
},
"nodeType": "YulFunctionCall",
"src": "12962:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "12962:88:4"
}
]
}
]
},
"name": "abi_decode_t_struct$_Request_$314_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11037:9:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11048:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11056:5:4",
"type": ""
}
],
"src": "10972:2096:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13175:299:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "13222:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "13224:77:4"
},
"nodeType": "YulFunctionCall",
"src": "13224:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "13224:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "13196:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13205:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "13192:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13192:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13217:3:4",
"type": "",
"value": "512"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "13188:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13188:33:4"
},
"nodeType": "YulIf",
"src": "13185:120:4"
},
{
"nodeType": "YulBlock",
"src": "13315:152:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "13330:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "13344:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "13334:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "13359:98:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13429:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "13440:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13425:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13425:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "13449:7:4"
}
],
"functionName": {
"name": "abi_decode_t_struct$_Request_$314_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "13369:55:4"
},
"nodeType": "YulFunctionCall",
"src": "13369:88:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "13359:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_struct$_Request_$314_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "13145:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "13156:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "13168:6:4",
"type": ""
}
],
"src": "13074:400:4"
}
]
},
"contents": "{\n\n function cleanup_t_int256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_int256_to_t_int256_fromStack(value, pos) {\n mstore(pos, cleanup_t_int256(value))\n }\n\n function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_int256_to_t_int256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_bytes_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n // bytes -> bytes\n function abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(0x20, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_bytes_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IERC20_$77_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IERC20_$77_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IERC20_$77_to_t_address(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_uint256_t_bytes_storage_t_contract$_IERC20_$77_t_uint256__to_t_bytes32_t_uint256_t_bytes_memory_ptr_t_address_t_uint256__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack(value2, tail)\n\n abi_encode_t_contract$_IERC20_$77_to_t_address_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_rational_30_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_rational_30_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_30_by_1(value)))\n }\n\n function abi_encode_t_rational_30_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_30_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_uint256_t_bytes_storage_t_rational_30_by_1__to_t_bytes32_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack(value2, tail)\n\n abi_encode_t_rational_30_by_1_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_bytes32_t_uint256_t_bytes_storage__to_t_address_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_bytes_storage_to_t_bytes_memory_ptr_fromStack(value3, tail)\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_contract$_IERC20_$77(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IERC20_$77(value) {\n if iszero(eq(value, cleanup_t_contract$_IERC20_$77(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IERC20_$77_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_IERC20_$77(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n // struct OptimisticOracleV2Interface.RequestSettings\n function abi_decode_t_struct$_RequestSettings_$291_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0xe0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0xe0)\n\n {\n // eventBased\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // refundOnDispute\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // callbackOnPriceProposed\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // callbackOnPriceDisputed\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // callbackOnPriceSettled\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // bond\n\n let offset := 160\n\n mstore(add(value, 0xa0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // customLiveness\n\n let offset := 192\n\n mstore(add(value, 0xc0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function validator_revert_t_int256(value) {\n if iszero(eq(value, cleanup_t_int256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_int256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_int256(value)\n }\n\n // struct OptimisticOracleV2Interface.Request\n function abi_decode_t_struct$_Request_$314_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x0200) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x0140)\n\n {\n // proposer\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // disputer\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // currency\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_contract$_IERC20_$77_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // settled\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // requestSettings\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_struct$_RequestSettings_$291_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // proposedPrice\n\n let offset := 352\n\n mstore(add(value, 0xa0), abi_decode_t_int256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // resolvedPrice\n\n let offset := 384\n\n mstore(add(value, 0xc0), abi_decode_t_int256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // expirationTime\n\n let offset := 416\n\n mstore(add(value, 0xe0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // reward\n\n let offset := 448\n\n mstore(add(value, 0x0100), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // finalFee\n\n let offset := 480\n\n mstore(add(value, 0x0120), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Request_$314_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 512) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_Request_$314_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 4,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063606deecd14610046578063f25ffb2014610050578063fa7761521461006e575b600080fd5b61004e610078565b005b6100586101de565b6040516100659190610353565b60405180910390f35b610076610290565b005b42600381905550600073b4fbf271143f4fbf7b91a5ded31805e42b2208d690506000808054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166311df92f1600154600354600286866040518663ffffffff1660e01b81526004016100ff959493929190610529565b6020604051808303816000875af115801561011e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014291906105be565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663473c45fe6001546003546002601e6040518563ffffffff1660e01b81526004016101a89493929190610626565b600060405180830381600087803b1580156101c257600080fd5b505af11580156101d6573d6000803e3d6000fd5b505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9904f9b3060015460035460026040518563ffffffff1660e01b81526004016102459493929190610693565b61020060405180830381865afa158015610263573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028791906109eb565b60c00151905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635e9a79a93060015460035460026040518563ffffffff1660e01b81526004016102f49493929190610693565b6020604051808303816000875af1158015610313573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033791906105be565b50565b6000819050919050565b61034d8161033a565b82525050565b60006020820190506103686000830184610344565b92915050565b6000819050919050565b6103818161036e565b82525050565b6000819050919050565b61039a81610387565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806103e757607f821691505b6020821081036103fa576103f96103a0565b5b50919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b60008154610433816103cf565b61043d8186610400565b94506001821660008114610458576001811461046e576104a1565b60ff1983168652811515602002860193506104a1565b61047785610411565b60005b838110156104995781548189015260018201915060208101905061047a565b808801955050505b50505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006104ef6104ea6104e5846104aa565b6104ca565b6104aa565b9050919050565b6000610501826104d4565b9050919050565b6000610513826104f6565b9050919050565b61052381610508565b82525050565b600060a08201905061053e6000830188610378565b61054b6020830187610391565b818103604083015261055d8186610426565b905061056c606083018561051a565b6105796080830184610391565b9695505050505050565b6000604051905090565b600080fd5b61059b81610387565b81146105a657600080fd5b50565b6000815190506105b881610592565b92915050565b6000602082840312156105d4576105d361058d565b5b60006105e2848285016105a9565b91505092915050565b6000819050919050565b600061061061060b610606846105eb565b6104ca565b610387565b9050919050565b610620816105f5565b82525050565b600060808201905061063b6000830187610378565b6106486020830186610391565b818103604083015261065a8185610426565b90506106696060830184610617565b95945050505050565b600061067d826104aa565b9050919050565b61068d81610672565b82525050565b60006080820190506106a86000830187610684565b6106b56020830186610378565b6106c26040830185610391565b81810360608301526106d48184610426565b905095945050505050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61072d826106e4565b810181811067ffffffffffffffff8211171561074c5761074b6106f5565b5b80604052505050565b600061075f610583565b905061076b8282610724565b919050565b61077981610672565b811461078457600080fd5b50565b60008151905061079681610770565b92915050565b60006107a782610672565b9050919050565b6107b78161079c565b81146107c257600080fd5b50565b6000815190506107d4816107ae565b92915050565b60008115159050919050565b6107ef816107da565b81146107fa57600080fd5b50565b60008151905061080c816107e6565b92915050565b600060e08284031215610828576108276106df565b5b61083260e0610755565b90506000610842848285016107fd565b6000830152506020610856848285016107fd565b602083015250604061086a848285016107fd565b604083015250606061087e848285016107fd565b6060830152506080610892848285016107fd565b60808301525060a06108a6848285016105a9565b60a08301525060c06108ba848285016105a9565b60c08301525092915050565b6108cf8161033a565b81146108da57600080fd5b50565b6000815190506108ec816108c6565b92915050565b60006102008284031215610909576109086106df565b5b610914610140610755565b9050600061092484828501610787565b600083015250602061093884828501610787565b602083015250604061094c848285016107c5565b6040830152506060610960848285016107fd565b606083015250608061097484828501610812565b608083015250610160610989848285016108dd565b60a08301525061018061099e848285016108dd565b60c0830152506101a06109b3848285016105a9565b60e0830152506101c06109c8848285016105a9565b610100830152506101e06109de848285016105a9565b6101208301525092915050565b60006102008284031215610a0257610a0161058d565b5b6000610a10848285016108f2565b9150509291505056fea264697066735822122022a2401c79bcff65b62264f5622b6e4876c12242030d1441667347ff996e711264736f6c63430008100033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x606DEECD EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xF25FFB20 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xFA776152 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x78 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x65 SWAP2 SWAP1 PUSH2 0x353 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x76 PUSH2 0x290 JUMP JUMPDEST STOP JUMPDEST TIMESTAMP PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH20 0xB4FBF271143F4FBF7B91A5DED31805E42B2208D6 SWAP1 POP PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x11DF92F1 PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFF SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x529 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x11E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x142 SWAP2 SWAP1 PUSH2 0x5BE JUMP JUMPDEST POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x473C45FE PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH1 0x1E PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x626 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9904F9B ADDRESS PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x245 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x693 JUMP JUMPDEST PUSH2 0x200 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x263 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x287 SWAP2 SWAP1 PUSH2 0x9EB JUMP JUMPDEST PUSH1 0xC0 ADD MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x5E9A79A9 ADDRESS PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x2 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F4 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x693 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x313 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x337 SWAP2 SWAP1 PUSH2 0x5BE JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34D DUP2 PUSH2 0x33A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x368 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x344 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x381 DUP2 PUSH2 0x36E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x39A DUP2 PUSH2 0x387 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x3E7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3FA JUMPI PUSH2 0x3F9 PUSH2 0x3A0 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x433 DUP2 PUSH2 0x3CF JUMP JUMPDEST PUSH2 0x43D DUP2 DUP7 PUSH2 0x400 JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x458 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x46E JUMPI PUSH2 0x4A1 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x4A1 JUMP JUMPDEST PUSH2 0x477 DUP6 PUSH2 0x411 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x499 JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x47A JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4EF PUSH2 0x4EA PUSH2 0x4E5 DUP5 PUSH2 0x4AA JUMP JUMPDEST PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x4AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x501 DUP3 PUSH2 0x4D4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x513 DUP3 PUSH2 0x4F6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x523 DUP2 PUSH2 0x508 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x53E PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x378 JUMP JUMPDEST PUSH2 0x54B PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x391 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x55D DUP2 DUP7 PUSH2 0x426 JUMP JUMPDEST SWAP1 POP PUSH2 0x56C PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x51A JUMP JUMPDEST PUSH2 0x579 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x391 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59B DUP2 PUSH2 0x387 JUMP JUMPDEST DUP2 EQ PUSH2 0x5A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x5B8 DUP2 PUSH2 0x592 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D4 JUMPI PUSH2 0x5D3 PUSH2 0x58D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x5E2 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x610 PUSH2 0x60B PUSH2 0x606 DUP5 PUSH2 0x5EB JUMP JUMPDEST PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x387 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x620 DUP2 PUSH2 0x5F5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x63B PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x378 JUMP JUMPDEST PUSH2 0x648 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x391 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x65A DUP2 DUP6 PUSH2 0x426 JUMP JUMPDEST SWAP1 POP PUSH2 0x669 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x617 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x67D DUP3 PUSH2 0x4AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x68D DUP2 PUSH2 0x672 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x6A8 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x684 JUMP JUMPDEST PUSH2 0x6B5 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x378 JUMP JUMPDEST PUSH2 0x6C2 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x391 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x6D4 DUP2 DUP5 PUSH2 0x426 JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x72D DUP3 PUSH2 0x6E4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x74C JUMPI PUSH2 0x74B PUSH2 0x6F5 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x75F PUSH2 0x583 JUMP JUMPDEST SWAP1 POP PUSH2 0x76B DUP3 DUP3 PUSH2 0x724 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x779 DUP2 PUSH2 0x672 JUMP JUMPDEST DUP2 EQ PUSH2 0x784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x796 DUP2 PUSH2 0x770 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A7 DUP3 PUSH2 0x672 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7B7 DUP2 PUSH2 0x79C JUMP JUMPDEST DUP2 EQ PUSH2 0x7C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x7D4 DUP2 PUSH2 0x7AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7EF DUP2 PUSH2 0x7DA JUMP JUMPDEST DUP2 EQ PUSH2 0x7FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x80C DUP2 PUSH2 0x7E6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x828 JUMPI PUSH2 0x827 PUSH2 0x6DF JUMP JUMPDEST JUMPDEST PUSH2 0x832 PUSH1 0xE0 PUSH2 0x755 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x842 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x856 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x86A DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x87E DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x892 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x8A6 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x8BA DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8CF DUP2 PUSH2 0x33A JUMP JUMPDEST DUP2 EQ PUSH2 0x8DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x8EC DUP2 PUSH2 0x8C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x909 JUMPI PUSH2 0x908 PUSH2 0x6DF JUMP JUMPDEST JUMPDEST PUSH2 0x914 PUSH2 0x140 PUSH2 0x755 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x924 DUP5 DUP3 DUP6 ADD PUSH2 0x787 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x938 DUP5 DUP3 DUP6 ADD PUSH2 0x787 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x94C DUP5 DUP3 DUP6 ADD PUSH2 0x7C5 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x960 DUP5 DUP3 DUP6 ADD PUSH2 0x7FD JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x974 DUP5 DUP3 DUP6 ADD PUSH2 0x812 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH2 0x160 PUSH2 0x989 DUP5 DUP3 DUP6 ADD PUSH2 0x8DD JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH2 0x180 PUSH2 0x99E DUP5 DUP3 DUP6 ADD PUSH2 0x8DD JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH2 0x1A0 PUSH2 0x9B3 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x1C0 PUSH2 0x9C8 DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP PUSH2 0x1E0 PUSH2 0x9DE DUP5 DUP3 DUP6 ADD PUSH2 0x5A9 JUMP JUMPDEST PUSH2 0x120 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x200 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA02 JUMPI PUSH2 0xA01 PUSH2 0x58D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA10 DUP5 DUP3 DUP6 ADD PUSH2 0x8F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 LOG2 BLOCKHASH SHR PUSH26 0xBCFF65B62264F5622B6E4876C12242030D1441667347FF996E71 SLT PUSH5 0x736F6C6343 STOP ADDMOD LT STOP CALLER ",
"sourceMap": "516:2168:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1432:630;;;:::i;:::-;;2521:161;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2325:113;;;:::i;:::-;;1432:630;1486:15;1472:11;:29;;;;1562:19;1591:42;1562:72;;1685:14;1904:2;;;;;;;;;;:15;;;1920:10;;1932:11;;1945:13;1960:12;1974:6;1904:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1991:2;;;;;;;;;;:20;;;2012:10;;2024:11;;2037:13;2052:2;1991:64;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1462:600;;1432:630::o;2521:161::-;2568:6;2593:2;;;;;;;;;;;:13;;;2615:4;2622:10;;2634:11;;2647:13;2593:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:82;;;2586:89;;2521:161;:::o;2325:113::-;2367:2;;;;;;;;;;:9;;;2385:4;2392:10;;2404:11;;2417:13;2367:64;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2325:113::o;7:76:4:-;43:7;72:5;61:16;;7:76;;;:::o;89:115::-;174:23;191:5;174:23;:::i;:::-;169:3;162:36;89:115;;:::o;210:218::-;301:4;339:2;328:9;324:18;316:26;;352:69;418:1;407:9;403:17;394:6;352:69;:::i;:::-;210:218;;;;:::o;434:77::-;471:7;500:5;489:16;;434:77;;;:::o;517:118::-;604:24;622:5;604:24;:::i;:::-;599:3;592:37;517:118;;:::o;641:77::-;678:7;707:5;696:16;;641:77;;;:::o;724:118::-;811:24;829:5;811:24;:::i;:::-;806:3;799:37;724:118;;:::o;848:180::-;896:77;893:1;886:88;993:4;990:1;983:15;1017:4;1014:1;1007:15;1034:320;1078:6;1115:1;1109:4;1105:12;1095:22;;1162:1;1156:4;1152:12;1183:18;1173:81;;1239:4;1231:6;1227:17;1217:27;;1173:81;1301:2;1293:6;1290:14;1270:18;1267:38;1264:84;;1320:18;;:::i;:::-;1264:84;1085:269;1034:320;;;:::o;1360:168::-;1443:11;1477:6;1472:3;1465:19;1517:4;1512:3;1508:14;1493:29;;1360:168;;;;:::o;1534:140::-;1582:4;1605:3;1597:11;;1628:3;1625:1;1618:14;1662:4;1659:1;1649:18;1641:26;;1534:140;;;:::o;1702:827::-;1785:3;1822:5;1816:12;1851:36;1877:9;1851:36;:::i;:::-;1903:70;1966:6;1961:3;1903:70;:::i;:::-;1896:77;;2004:1;1993:9;1989:17;2020:1;2015:164;;;;2193:1;2188:335;;;;1982:541;;2015:164;2099:4;2095:9;2084;2080:25;2075:3;2068:38;2159:6;2152:14;2145:22;2139:4;2135:33;2130:3;2126:43;2119:50;;2015:164;;2188:335;2255:37;2286:5;2255:37;:::i;:::-;2314:1;2328:154;2342:6;2339:1;2336:13;2328:154;;;2416:7;2410:14;2406:1;2401:3;2397:11;2390:35;2466:1;2457:7;2453:15;2442:26;;2364:4;2361:1;2357:12;2352:17;;2328:154;;;2511:1;2506:3;2502:11;2495:18;;2195:328;;1982:541;;1789:740;;1702:827;;;;:::o;2535:126::-;2572:7;2612:42;2605:5;2601:54;2590:65;;2535:126;;;:::o;2667:60::-;2695:3;2716:5;2709:12;;2667:60;;;:::o;2733:142::-;2783:9;2816:53;2834:34;2843:24;2861:5;2843:24;:::i;:::-;2834:34;:::i;:::-;2816:53;:::i;:::-;2803:66;;2733:142;;;:::o;2881:126::-;2931:9;2964:37;2995:5;2964:37;:::i;:::-;2951:50;;2881:126;;;:::o;3013:139::-;3076:9;3109:37;3140:5;3109:37;:::i;:::-;3096:50;;3013:139;;;:::o;3158:157::-;3258:50;3302:5;3258:50;:::i;:::-;3253:3;3246:63;3158:157;;:::o;3321:771::-;3554:4;3592:3;3581:9;3577:19;3569:27;;3606:71;3674:1;3663:9;3659:17;3650:6;3606:71;:::i;:::-;3687:72;3755:2;3744:9;3740:18;3731:6;3687:72;:::i;:::-;3806:9;3800:4;3796:20;3791:2;3780:9;3776:18;3769:48;3834:73;3902:4;3893:6;3834:73;:::i;:::-;3826:81;;3917:85;3998:2;3987:9;3983:18;3974:6;3917:85;:::i;:::-;4012:73;4080:3;4069:9;4065:19;4056:6;4012:73;:::i;:::-;3321:771;;;;;;;;:::o;4098:75::-;4131:6;4164:2;4158:9;4148:19;;4098:75;:::o;4179:117::-;4288:1;4285;4278:12;4425:122;4498:24;4516:5;4498:24;:::i;:::-;4491:5;4488:35;4478:63;;4537:1;4534;4527:12;4478:63;4425:122;:::o;4553:143::-;4610:5;4641:6;4635:13;4626:22;;4657:33;4684:5;4657:33;:::i;:::-;4553:143;;;;:::o;4702:351::-;4772:6;4821:2;4809:9;4800:7;4796:23;4792:32;4789:119;;;4827:79;;:::i;:::-;4789:119;4947:1;4972:64;5028:7;5019:6;5008:9;5004:22;4972:64;:::i;:::-;4962:74;;4918:128;4702:351;;;;:::o;5059:86::-;5105:7;5134:5;5123:16;;5059:86;;;:::o;5151:160::-;5210:9;5243:62;5261:43;5270:33;5297:5;5270:33;:::i;:::-;5261:43;:::i;:::-;5243:62;:::i;:::-;5230:75;;5151:160;;;:::o;5317:149::-;5413:46;5453:5;5413:46;:::i;:::-;5408:3;5401:59;5317:149;;:::o;5472:652::-;5673:4;5711:3;5700:9;5696:19;5688:27;;5725:71;5793:1;5782:9;5778:17;5769:6;5725:71;:::i;:::-;5806:72;5874:2;5863:9;5859:18;5850:6;5806:72;:::i;:::-;5925:9;5919:4;5915:20;5910:2;5899:9;5895:18;5888:48;5953:73;6021:4;6012:6;5953:73;:::i;:::-;5945:81;;6036;6113:2;6102:9;6098:18;6089:6;6036:81;:::i;:::-;5472:652;;;;;;;:::o;6130:96::-;6167:7;6196:24;6214:5;6196:24;:::i;:::-;6185:35;;6130:96;;;:::o;6232:118::-;6319:24;6337:5;6319:24;:::i;:::-;6314:3;6307:37;6232:118;;:::o;6356:634::-;6548:4;6586:3;6575:9;6571:19;6563:27;;6600:71;6668:1;6657:9;6653:17;6644:6;6600:71;:::i;:::-;6681:72;6749:2;6738:9;6734:18;6725:6;6681:72;:::i;:::-;6763;6831:2;6820:9;6816:18;6807:6;6763:72;:::i;:::-;6882:9;6876:4;6872:20;6867:2;6856:9;6852:18;6845:48;6910:73;6978:4;6969:6;6910:73;:::i;:::-;6902:81;;6356:634;;;;;;;:::o;6996:117::-;7105:1;7102;7095:12;7119:102;7160:6;7211:2;7207:7;7202:2;7195:5;7191:14;7187:28;7177:38;;7119:102;;;:::o;7227:180::-;7275:77;7272:1;7265:88;7372:4;7369:1;7362:15;7396:4;7393:1;7386:15;7413:281;7496:27;7518:4;7496:27;:::i;:::-;7488:6;7484:40;7626:6;7614:10;7611:22;7590:18;7578:10;7575:34;7572:62;7569:88;;;7637:18;;:::i;:::-;7569:88;7677:10;7673:2;7666:22;7456:238;7413:281;;:::o;7700:129::-;7734:6;7761:20;;:::i;:::-;7751:30;;7790:33;7818:4;7810:6;7790:33;:::i;:::-;7700:129;;;:::o;7958:122::-;8031:24;8049:5;8031:24;:::i;:::-;8024:5;8021:35;8011:63;;8070:1;8067;8060:12;8011:63;7958:122;:::o;8086:143::-;8143:5;8174:6;8168:13;8159:22;;8190:33;8217:5;8190:33;:::i;:::-;8086:143;;;;:::o;8235:109::-;8285:7;8314:24;8332:5;8314:24;:::i;:::-;8303:35;;8235:109;;;:::o;8350:148::-;8436:37;8467:5;8436:37;:::i;:::-;8429:5;8426:48;8416:76;;8488:1;8485;8478:12;8416:76;8350:148;:::o;8504:169::-;857
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment